summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--.github/workflows/linux_builds.yml10
-rw-r--r--.github/workflows/macos_builds.yml7
-rw-r--r--.github/workflows/windows_builds.yml9
-rw-r--r--.gitignore3
-rw-r--r--.mailmap6
-rw-r--r--AUTHORS.md8
-rw-r--r--COPYRIGHT.txt12
-rw-r--r--DONORS.md104
-rw-r--r--SConstruct1
-rw-r--r--core/core_bind.cpp47
-rw-r--r--core/core_bind.h5
-rw-r--r--core/extension/gdnative_interface.cpp10
-rw-r--r--core/extension/gdnative_interface.h4
-rw-r--r--core/input/input_event.cpp6
-rw-r--r--core/input/input_map.cpp56
-rw-r--r--core/input/input_map.h2
-rw-r--r--core/io/image.cpp8
-rw-r--r--core/io/packet_peer.cpp46
-rw-r--r--core/io/packet_peer.h23
-rw-r--r--core/io/resource_uid.cpp3
-rw-r--r--core/io/stream_peer.cpp57
-rw-r--r--core/io/stream_peer.h25
-rw-r--r--core/math/aabb.cpp4
-rw-r--r--core/math/aabb.h4
-rw-r--r--core/math/bvh_cull.inc2
-rw-r--r--core/math/bvh_debug.inc27
-rw-r--r--core/math/bvh_split.inc16
-rw-r--r--core/math/delaunay_2d.h2
-rw-r--r--core/math/face3.cpp4
-rw-r--r--core/math/rect2.h6
-rw-r--r--core/math/transform_2d.cpp2
-rw-r--r--core/math/triangle_mesh.cpp4
-rw-r--r--core/math/vector2.cpp2
-rw-r--r--core/multiplayer/multiplayer_peer.cpp181
-rw-r--r--core/multiplayer/multiplayer_peer.h80
-rw-r--r--core/object/class_db.cpp9
-rw-r--r--core/object/class_db.h1
-rw-r--r--core/os/thread.cpp6
-rw-r--r--core/os/thread.h9
-rw-r--r--core/register_core_types.cpp3
-rw-r--r--core/string/translation.cpp13
-rw-r--r--core/string/translation.h5
-rw-r--r--core/templates/pooled_list.h14
-rw-r--r--core/templates/rid_owner.h16
-rw-r--r--core/variant/callable.cpp4
-rw-r--r--core/variant/callable.h2
-rw-r--r--core/variant/native_ptr.h3
-rw-r--r--core/variant/variant_call.cpp5
-rw-r--r--core/variant/variant_utility.cpp43
-rw-r--r--doc/classes/@GlobalScope.xml61
-rw-r--r--doc/classes/AABB.xml8
-rw-r--r--doc/classes/AStar.xml2
-rw-r--r--doc/classes/AStar2D.xml2
-rw-r--r--doc/classes/AcceptDialog.xml2
-rw-r--r--doc/classes/AnimatableBody2D.xml6
-rw-r--r--doc/classes/AnimatableBody3D.xml6
-rw-r--r--doc/classes/AnimatedSprite2D.xml2
-rw-r--r--doc/classes/AnimatedSprite3D.xml2
-rw-r--r--doc/classes/AnimationNodeAdd2.xml4
-rw-r--r--doc/classes/AnimationNodeAdd3.xml4
-rw-r--r--doc/classes/AnimationNodeAnimation.xml4
-rw-r--r--doc/classes/AnimationNodeBlend2.xml4
-rw-r--r--doc/classes/AnimationNodeBlend3.xml4
-rw-r--r--doc/classes/AnimationNodeBlendSpace1D.xml2
-rw-r--r--doc/classes/AnimationNodeOutput.xml4
-rw-r--r--doc/classes/AnimationNodeStateMachine.xml2
-rw-r--r--doc/classes/AnimationNodeStateMachinePlayback.xml2
-rw-r--r--doc/classes/AnimationNodeStateMachineTransition.xml2
-rw-r--r--doc/classes/AnimationNodeTimeScale.xml4
-rw-r--r--doc/classes/AnimationNodeTimeSeek.xml4
-rw-r--r--doc/classes/AnimationNodeTransition.xml2
-rw-r--r--doc/classes/AnimationRootNode.xml4
-rw-r--r--doc/classes/AnimationTrackEditPlugin.xml4
-rw-r--r--doc/classes/Array.xml2
-rw-r--r--doc/classes/ArrayMesh.xml2
-rw-r--r--doc/classes/AspectRatioContainer.xml2
-rw-r--r--doc/classes/AtlasTexture.xml4
-rw-r--r--doc/classes/AudioBusLayout.xml4
-rw-r--r--doc/classes/AudioEffect.xml4
-rw-r--r--doc/classes/AudioEffectAmplify.xml4
-rw-r--r--doc/classes/AudioEffectBandLimitFilter.xml4
-rw-r--r--doc/classes/AudioEffectBandPassFilter.xml4
-rw-r--r--doc/classes/AudioEffectCapture.xml2
-rw-r--r--doc/classes/AudioEffectChorus.xml2
-rw-r--r--doc/classes/AudioEffectCompressor.xml4
-rw-r--r--doc/classes/AudioEffectDelay.xml4
-rw-r--r--doc/classes/AudioEffectDistortion.xml2
-rw-r--r--doc/classes/AudioEffectEQ.xml2
-rw-r--r--doc/classes/AudioEffectEQ10.xml4
-rw-r--r--doc/classes/AudioEffectEQ21.xml4
-rw-r--r--doc/classes/AudioEffectEQ6.xml4
-rw-r--r--doc/classes/AudioEffectFilter.xml2
-rw-r--r--doc/classes/AudioEffectHighPassFilter.xml4
-rw-r--r--doc/classes/AudioEffectHighShelfFilter.xml4
-rw-r--r--doc/classes/AudioEffectInstance.xml4
-rw-r--r--doc/classes/AudioEffectLimiter.xml4
-rw-r--r--doc/classes/AudioEffectLowPassFilter.xml4
-rw-r--r--doc/classes/AudioEffectLowShelfFilter.xml4
-rw-r--r--doc/classes/AudioEffectNotchFilter.xml4
-rw-r--r--doc/classes/AudioEffectPanner.xml4
-rw-r--r--doc/classes/AudioEffectPhaser.xml4
-rw-r--r--doc/classes/AudioEffectPitchShift.xml2
-rw-r--r--doc/classes/AudioEffectRecord.xml2
-rw-r--r--doc/classes/AudioEffectReverb.xml4
-rw-r--r--doc/classes/AudioEffectSpectrumAnalyzer.xml2
-rw-r--r--doc/classes/AudioEffectStereoEnhance.xml4
-rw-r--r--doc/classes/AudioListener2D.xml2
-rw-r--r--doc/classes/AudioListener3D.xml2
-rw-r--r--doc/classes/AudioStream.xml2
-rw-r--r--doc/classes/AudioStreamGenerator.xml4
-rw-r--r--doc/classes/AudioStreamGeneratorPlayback.xml2
-rw-r--r--doc/classes/AudioStreamMicrophone.xml4
-rw-r--r--doc/classes/AudioStreamPlayback.xml2
-rw-r--r--doc/classes/AudioStreamPlaybackResampled.xml4
-rw-r--r--doc/classes/AudioStreamPlayer2D.xml2
-rw-r--r--doc/classes/AudioStreamRandomPitch.xml4
-rw-r--r--doc/classes/BackBufferCopy.xml2
-rw-r--r--doc/classes/BitMap.xml2
-rw-r--r--doc/classes/Bone2D.xml2
-rw-r--r--doc/classes/BoneAttachment3D.xml2
-rw-r--r--doc/classes/BoxMesh.xml4
-rw-r--r--doc/classes/BoxShape3D.xml4
-rw-r--r--doc/classes/ButtonGroup.xml2
-rw-r--r--doc/classes/Callable.xml2
-rw-r--r--doc/classes/CallbackTweener.xml2
-rw-r--r--doc/classes/CameraEffects.xml4
-rw-r--r--doc/classes/CameraTexture.xml4
-rw-r--r--doc/classes/CanvasGroup.xml4
-rw-r--r--doc/classes/CanvasItemMaterial.xml2
-rw-r--r--doc/classes/CanvasLayer.xml2
-rw-r--r--doc/classes/CanvasModulate.xml4
-rw-r--r--doc/classes/CanvasTexture.xml4
-rw-r--r--doc/classes/CapsuleMesh.xml4
-rw-r--r--doc/classes/CapsuleShape2D.xml4
-rw-r--r--doc/classes/CapsuleShape3D.xml4
-rw-r--r--doc/classes/CenterContainer.xml4
-rw-r--r--doc/classes/CharFXTransform.xml10
-rw-r--r--doc/classes/CharacterBody2D.xml6
-rw-r--r--doc/classes/CharacterBody3D.xml74
-rw-r--r--doc/classes/CheckBox.xml4
-rw-r--r--doc/classes/CheckButton.xml4
-rw-r--r--doc/classes/CircleShape2D.xml4
-rw-r--r--doc/classes/ClassDB.xml2
-rw-r--r--doc/classes/CodeEdit.xml6
-rw-r--r--doc/classes/CodeHighlighter.xml2
-rw-r--r--doc/classes/CollisionPolygon2D.xml2
-rw-r--r--doc/classes/CollisionPolygon3D.xml4
-rw-r--r--doc/classes/CollisionShape2D.xml4
-rw-r--r--doc/classes/CollisionShape3D.xml2
-rw-r--r--doc/classes/ColorPicker.xml1
-rw-r--r--doc/classes/ColorPickerButton.xml3
-rw-r--r--doc/classes/ColorRect.xml4
-rw-r--r--doc/classes/ConcavePolygonShape2D.xml4
-rw-r--r--doc/classes/ConcavePolygonShape3D.xml2
-rw-r--r--doc/classes/ConfigFile.xml2
-rw-r--r--doc/classes/ConfirmationDialog.xml2
-rw-r--r--doc/classes/Control.xml1
-rw-r--r--doc/classes/ConvexPolygonShape2D.xml2
-rw-r--r--doc/classes/ConvexPolygonShape3D.xml4
-rw-r--r--doc/classes/Crypto.xml2
-rw-r--r--doc/classes/CryptoKey.xml2
-rw-r--r--doc/classes/Cubemap.xml4
-rw-r--r--doc/classes/CubemapArray.xml4
-rw-r--r--doc/classes/Curve2D.xml2
-rw-r--r--doc/classes/Curve3D.xml2
-rw-r--r--doc/classes/CurveTexture.xml2
-rw-r--r--doc/classes/CurveXYZTexture.xml4
-rw-r--r--doc/classes/CylinderMesh.xml4
-rw-r--r--doc/classes/CylinderShape3D.xml4
-rw-r--r--doc/classes/DTLSServer.xml2
-rw-r--r--doc/classes/DampedSpringJoint2D.xml4
-rw-r--r--doc/classes/Dictionary.xml5
-rw-r--r--doc/classes/DirectionalLight2D.xml4
-rw-r--r--doc/classes/DirectionalLight3D.xml2
-rw-r--r--doc/classes/Directory.xml2
-rw-r--r--doc/classes/EditorCommandPalette.xml2
-rw-r--r--doc/classes/EditorDebuggerPlugin.xml2
-rw-r--r--doc/classes/EditorExportPlugin.xml2
-rw-r--r--doc/classes/EditorFileSystem.xml2
-rw-r--r--doc/classes/EditorFileSystemDirectory.xml2
-rw-r--r--doc/classes/EditorImportPlugin.xml2
-rw-r--r--doc/classes/EditorInspector.xml4
-rw-r--r--doc/classes/EditorInspectorPlugin.xml2
-rw-r--r--doc/classes/EditorInterface.xml2
-rw-r--r--doc/classes/EditorNode3DGizmo.xml2
-rw-r--r--doc/classes/EditorNode3DGizmoPlugin.xml2
-rw-r--r--doc/classes/EditorPaths.xml2
-rw-r--r--doc/classes/EditorProperty.xml2
-rw-r--r--doc/classes/EditorResourceConversionPlugin.xml2
-rw-r--r--doc/classes/EditorResourcePicker.xml2
-rw-r--r--doc/classes/EditorResourcePreview.xml2
-rw-r--r--doc/classes/EditorResourcePreviewGenerator.xml2
-rw-r--r--doc/classes/EditorSceneImporterMesh.xml2
-rw-r--r--doc/classes/EditorSceneImporterMeshNode3D.xml4
-rw-r--r--doc/classes/EditorScenePostImport.xml2
-rw-r--r--doc/classes/EditorScript.xml2
-rw-r--r--doc/classes/EditorScriptPicker.xml4
-rw-r--r--doc/classes/EditorSelection.xml2
-rw-r--r--doc/classes/EditorSpinSlider.xml4
-rw-r--r--doc/classes/EditorSyntaxHighlighter.xml2
-rw-r--r--doc/classes/EditorTranslationParserPlugin.xml2
-rw-r--r--doc/classes/EditorVCSInterface.xml2
-rw-r--r--doc/classes/EncodedObjectAsID.xml4
-rw-r--r--doc/classes/Engine.xml27
-rw-r--r--doc/classes/EngineDebugger.xml2
-rw-r--r--doc/classes/Expression.xml2
-rw-r--r--doc/classes/FileSystemDock.xml2
-rw-r--r--doc/classes/Font.xml2
-rw-r--r--doc/classes/FontData.xml2
-rw-r--r--doc/classes/GPUParticlesAttractor3D.xml4
-rw-r--r--doc/classes/GPUParticlesAttractorBox.xml4
-rw-r--r--doc/classes/GPUParticlesAttractorSphere.xml4
-rw-r--r--doc/classes/GPUParticlesAttractorVectorField.xml4
-rw-r--r--doc/classes/GPUParticlesCollision3D.xml4
-rw-r--r--doc/classes/GPUParticlesCollisionBox.xml4
-rw-r--r--doc/classes/GPUParticlesCollisionHeightField.xml2
-rw-r--r--doc/classes/GPUParticlesCollisionSDF.xml2
-rw-r--r--doc/classes/GPUParticlesCollisionSphere.xml4
-rw-r--r--doc/classes/Geometry3D.xml2
-rw-r--r--doc/classes/Gradient.xml2
-rw-r--r--doc/classes/GradientTexture.xml4
-rw-r--r--doc/classes/GraphEdit.xml2
-rw-r--r--doc/classes/GridContainer.xml4
-rw-r--r--doc/classes/GrooveJoint2D.xml4
-rw-r--r--doc/classes/HBoxContainer.xml4
-rw-r--r--doc/classes/HMACContext.xml2
-rw-r--r--doc/classes/HScrollBar.xml4
-rw-r--r--doc/classes/HSeparator.xml4
-rw-r--r--doc/classes/HSlider.xml4
-rw-r--r--doc/classes/HSplitContainer.xml4
-rw-r--r--doc/classes/HTTPClient.xml1
-rw-r--r--doc/classes/HTTPRequest.xml2
-rw-r--r--doc/classes/HeightMapShape3D.xml4
-rw-r--r--doc/classes/ImageTexture.xml2
-rw-r--r--doc/classes/ImageTexture3D.xml2
-rw-r--r--doc/classes/ImageTextureLayered.xml2
-rw-r--r--doc/classes/ImmediateMesh.xml2
-rw-r--r--doc/classes/InputEvent.xml2
-rw-r--r--doc/classes/InputEventAction.xml4
-rw-r--r--doc/classes/InputEventFromWindow.xml4
-rw-r--r--doc/classes/InputEventGesture.xml4
-rw-r--r--doc/classes/InputEventJoypadButton.xml4
-rw-r--r--doc/classes/InputEventJoypadMotion.xml4
-rw-r--r--doc/classes/InputEventKey.xml2
-rw-r--r--doc/classes/InputEventMIDI.xml4
-rw-r--r--doc/classes/InputEventMagnifyGesture.xml4
-rw-r--r--doc/classes/InputEventMouse.xml4
-rw-r--r--doc/classes/InputEventMouseButton.xml4
-rw-r--r--doc/classes/InputEventMouseMotion.xml4
-rw-r--r--doc/classes/InputEventPanGesture.xml4
-rw-r--r--doc/classes/InputEventScreenDrag.xml4
-rw-r--r--doc/classes/InputEventScreenTouch.xml4
-rw-r--r--doc/classes/InputEventShortcut.xml4
-rw-r--r--doc/classes/InputEventWithModifiers.xml4
-rw-r--r--doc/classes/InputMap.xml2
-rw-r--r--doc/classes/InstancePlaceholder.xml2
-rw-r--r--doc/classes/IntervalTweener.xml4
-rw-r--r--doc/classes/JNISingleton.xml4
-rw-r--r--doc/classes/JSON.xml2
-rw-r--r--doc/classes/JavaClass.xml4
-rw-r--r--doc/classes/JavaClassWrapper.xml2
-rw-r--r--doc/classes/JavaScript.xml2
-rw-r--r--doc/classes/JavaScriptObject.xml4
-rw-r--r--doc/classes/Joint2D.xml4
-rw-r--r--doc/classes/Joint3D.xml4
-rw-r--r--doc/classes/KinematicCollision2D.xml2
-rw-r--r--doc/classes/KinematicCollision3D.xml97
-rw-r--r--doc/classes/LightOccluder2D.xml4
-rw-r--r--doc/classes/LightmapGI.xml2
-rw-r--r--doc/classes/LightmapGIData.xml2
-rw-r--r--doc/classes/LightmapProbe.xml4
-rw-r--r--doc/classes/Lightmapper.xml4
-rw-r--r--doc/classes/LightmapperRD.xml4
-rw-r--r--doc/classes/LineEdit.xml18
-rw-r--r--doc/classes/MarginContainer.xml4
-rw-r--r--doc/classes/Marshalls.xml2
-rw-r--r--doc/classes/MenuButton.xml2
-rw-r--r--doc/classes/MeshDataTool.xml2
-rw-r--r--doc/classes/MeshInstance2D.xml4
-rw-r--r--doc/classes/MeshInstance3D.xml2
-rw-r--r--doc/classes/MeshLibrary.xml2
-rw-r--r--doc/classes/MeshTexture.xml4
-rw-r--r--doc/classes/MethodTweener.xml2
-rw-r--r--doc/classes/MultiMeshInstance2D.xml4
-rw-r--r--doc/classes/MultiMeshInstance3D.xml4
-rw-r--r--doc/classes/MultiplayerAPI.xml3
-rw-r--r--doc/classes/MultiplayerPeer.xml5
-rw-r--r--doc/classes/MultiplayerPeerExtension.xml99
-rw-r--r--doc/classes/Mutex.xml2
-rw-r--r--doc/classes/NavigationAgent2D.xml2
-rw-r--r--doc/classes/NavigationAgent3D.xml2
-rw-r--r--doc/classes/NavigationMeshGenerator.xml2
-rw-r--r--doc/classes/NavigationObstacle2D.xml4
-rw-r--r--doc/classes/NavigationObstacle3D.xml4
-rw-r--r--doc/classes/NavigationPolygon.xml2
-rw-r--r--doc/classes/NavigationRegion2D.xml4
-rw-r--r--doc/classes/NavigationRegion3D.xml2
-rw-r--r--doc/classes/NavigationServer2D.xml2
-rw-r--r--doc/classes/NavigationServer3D.xml2
-rw-r--r--doc/classes/Node.xml2
-rw-r--r--doc/classes/Node2D.xml2
-rw-r--r--doc/classes/Node3DGizmo.xml4
-rw-r--r--doc/classes/NodePath.xml2
-rw-r--r--doc/classes/ORMMaterial3D.xml4
-rw-r--r--doc/classes/OS.xml12
-rw-r--r--doc/classes/Occluder3D.xml4
-rw-r--r--doc/classes/OccluderInstance3D.xml2
-rw-r--r--doc/classes/OccluderPolygon2D.xml2
-rw-r--r--doc/classes/OmniLight3D.xml2
-rw-r--r--doc/classes/OptimizedTranslation.xml2
-rw-r--r--doc/classes/OptionButton.xml2
-rw-r--r--doc/classes/PCKPacker.xml2
-rw-r--r--doc/classes/PackedByteArray.xml2
-rw-r--r--doc/classes/PackedColorArray.xml2
-rw-r--r--doc/classes/PackedDataContainer.xml2
-rw-r--r--doc/classes/PackedDataContainerRef.xml2
-rw-r--r--doc/classes/PackedFloat32Array.xml2
-rw-r--r--doc/classes/PackedFloat64Array.xml2
-rw-r--r--doc/classes/PackedInt32Array.xml2
-rw-r--r--doc/classes/PackedInt64Array.xml2
-rw-r--r--doc/classes/PackedStringArray.xml2
-rw-r--r--doc/classes/PackedVector2Array.xml2
-rw-r--r--doc/classes/PackedVector3Array.xml2
-rw-r--r--doc/classes/PacketPeer.xml3
-rw-r--r--doc/classes/PacketPeerDTLS.xml1
-rw-r--r--doc/classes/PacketPeerExtension.xml35
-rw-r--r--doc/classes/PacketPeerStream.xml5
-rw-r--r--doc/classes/PacketPeerUDP.xml3
-rw-r--r--doc/classes/Panel.xml2
-rw-r--r--doc/classes/PanelContainer.xml4
-rw-r--r--doc/classes/PanoramaSkyMaterial.xml4
-rw-r--r--doc/classes/ParallaxBackground.xml4
-rw-r--r--doc/classes/ParallaxLayer.xml4
-rw-r--r--doc/classes/Path2D.xml4
-rw-r--r--doc/classes/Path3D.xml4
-rw-r--r--doc/classes/PathFollow2D.xml4
-rw-r--r--doc/classes/PathFollow3D.xml2
-rw-r--r--doc/classes/PhysicalBone2D.xml2
-rw-r--r--doc/classes/PhysicalSkyMaterial.xml4
-rw-r--r--doc/classes/PhysicsBody2D.xml12
-rw-r--r--doc/classes/PhysicsBody3D.xml16
-rw-r--r--doc/classes/PhysicsDirectBodyState2D.xml2
-rw-r--r--doc/classes/PhysicsDirectBodyState3D.xml2
-rw-r--r--doc/classes/PhysicsDirectSpaceState2D.xml2
-rw-r--r--doc/classes/PhysicsDirectSpaceState3D.xml2
-rw-r--r--doc/classes/PhysicsMaterial.xml4
-rw-r--r--doc/classes/PhysicsServer2D.xml6
-rw-r--r--doc/classes/PhysicsServer3D.xml7
-rw-r--r--doc/classes/PhysicsShapeQueryParameters2D.xml4
-rw-r--r--doc/classes/PhysicsShapeQueryParameters3D.xml4
-rw-r--r--doc/classes/PhysicsTestMotionResult2D.xml4
-rw-r--r--doc/classes/PhysicsTestMotionResult3D.xml74
-rw-r--r--doc/classes/PinJoint2D.xml4
-rw-r--r--doc/classes/PlaneMesh.xml4
-rw-r--r--doc/classes/PointLight2D.xml4
-rw-r--r--doc/classes/PointMesh.xml4
-rw-r--r--doc/classes/Polygon2D.xml2
-rw-r--r--doc/classes/PolygonPathFinder.xml2
-rw-r--r--doc/classes/Popup.xml4
-rw-r--r--doc/classes/PopupMenu.xml2
-rw-r--r--doc/classes/PopupPanel.xml4
-rw-r--r--doc/classes/Position2D.xml4
-rw-r--r--doc/classes/Position3D.xml4
-rw-r--r--doc/classes/PrimitiveMesh.xml2
-rw-r--r--doc/classes/PrismMesh.xml4
-rw-r--r--doc/classes/ProceduralSkyMaterial.xml4
-rw-r--r--doc/classes/ProgressBar.xml4
-rw-r--r--doc/classes/ProjectSettings.xml4
-rw-r--r--doc/classes/PropertyTweener.xml2
-rw-r--r--doc/classes/ProxyTexture.xml4
-rw-r--r--doc/classes/QuadMesh.xml4
-rw-r--r--doc/classes/RDAttachmentFormat.xml4
-rw-r--r--doc/classes/RDFramebufferPass.xml2
-rw-r--r--doc/classes/RDPipelineColorBlendState.xml4
-rw-r--r--doc/classes/RDPipelineColorBlendStateAttachment.xml2
-rw-r--r--doc/classes/RDPipelineDepthStencilState.xml4
-rw-r--r--doc/classes/RDPipelineMultisampleState.xml4
-rw-r--r--doc/classes/RDPipelineRasterizationState.xml4
-rw-r--r--doc/classes/RDPipelineSpecializationConstant.xml4
-rw-r--r--doc/classes/RDSamplerState.xml4
-rw-r--r--doc/classes/RDShaderFile.xml2
-rw-r--r--doc/classes/RDShaderSPIRV.xml2
-rw-r--r--doc/classes/RDShaderSource.xml2
-rw-r--r--doc/classes/RDTextureFormat.xml2
-rw-r--r--doc/classes/RDTextureView.xml4
-rw-r--r--doc/classes/RDUniform.xml2
-rw-r--r--doc/classes/RDVertexAttribute.xml4
-rw-r--r--doc/classes/RID.xml2
-rw-r--r--doc/classes/RandomNumberGenerator.xml2
-rw-r--r--doc/classes/Range.xml2
-rw-r--r--doc/classes/RayCast2D.xml2
-rw-r--r--doc/classes/RayCast3D.xml2
-rw-r--r--doc/classes/Rect2.xml8
-rw-r--r--doc/classes/Rect2i.xml9
-rw-r--r--doc/classes/RectangleShape2D.xml4
-rw-r--r--doc/classes/RefCounted.xml2
-rw-r--r--doc/classes/ReferenceRect.xml4
-rw-r--r--doc/classes/ReflectionProbe.xml2
-rw-r--r--doc/classes/RemoteTransform2D.xml2
-rw-r--r--doc/classes/RemoteTransform3D.xml2
-rw-r--r--doc/classes/Resource.xml2
-rw-r--r--doc/classes/ResourceFormatSaver.xml2
-rw-r--r--doc/classes/ResourceImporter.xml2
-rw-r--r--doc/classes/ResourcePreloader.xml2
-rw-r--r--doc/classes/RibbonTrailMesh.xml2
-rw-r--r--doc/classes/RichTextEffect.xml2
-rw-r--r--doc/classes/RigidDynamicBody2D.xml33
-rw-r--r--doc/classes/RigidDynamicBody3D.xml33
-rw-r--r--doc/classes/RootMotionView.xml4
-rw-r--r--doc/classes/SceneTree.xml6
-rw-r--r--doc/classes/SceneTreeTimer.xml4
-rw-r--r--doc/classes/Script.xml2
-rw-r--r--doc/classes/ScriptCreateDialog.xml2
-rw-r--r--doc/classes/ScriptEditor.xml2
-rw-r--r--doc/classes/ScriptEditorBase.xml2
-rw-r--r--doc/classes/ScrollBar.xml4
-rw-r--r--doc/classes/ScrollContainer.xml2
-rw-r--r--doc/classes/SegmentShape2D.xml4
-rw-r--r--doc/classes/Semaphore.xml2
-rw-r--r--doc/classes/SeparationRayShape2D.xml4
-rw-r--r--doc/classes/SeparationRayShape3D.xml4
-rw-r--r--doc/classes/Separator.xml4
-rw-r--r--doc/classes/ShaderGlobalsOverride.xml4
-rw-r--r--doc/classes/ShaderMaterial.xml2
-rw-r--r--doc/classes/Shape2D.xml2
-rw-r--r--doc/classes/Shape3D.xml2
-rw-r--r--doc/classes/Shortcut.xml2
-rw-r--r--doc/classes/Signal.xml14
-rw-r--r--doc/classes/Skeleton2D.xml2
-rw-r--r--doc/classes/SkeletonIK3D.xml2
-rw-r--r--doc/classes/SkeletonModification2D.xml2
-rw-r--r--doc/classes/SkeletonModification2DCCDIK.xml2
-rw-r--r--doc/classes/SkeletonModification2DFABRIK.xml2
-rw-r--r--doc/classes/SkeletonModification2DJiggle.xml2
-rw-r--r--doc/classes/SkeletonModification2DLookAt.xml2
-rw-r--r--doc/classes/SkeletonModification2DPhysicalBones.xml2
-rw-r--r--doc/classes/SkeletonModification2DStackHolder.xml2
-rw-r--r--doc/classes/SkeletonModification2DTwoBoneIK.xml2
-rw-r--r--doc/classes/SkeletonModification3D.xml2
-rw-r--r--doc/classes/SkeletonModification3DCCDIK.xml2
-rw-r--r--doc/classes/SkeletonModification3DFABRIK.xml2
-rw-r--r--doc/classes/SkeletonModification3DJiggle.xml2
-rw-r--r--doc/classes/SkeletonModification3DLookAt.xml2
-rw-r--r--doc/classes/SkeletonModification3DStackHolder.xml2
-rw-r--r--doc/classes/SkeletonModification3DTwoBoneIK.xml2
-rw-r--r--doc/classes/SkeletonModificationStack2D.xml2
-rw-r--r--doc/classes/SkeletonModificationStack3D.xml2
-rw-r--r--doc/classes/Skin.xml2
-rw-r--r--doc/classes/SkinReference.xml2
-rw-r--r--doc/classes/Sky.xml2
-rw-r--r--doc/classes/Slider.xml4
-rw-r--r--doc/classes/SphereMesh.xml4
-rw-r--r--doc/classes/SphereShape3D.xml4
-rw-r--r--doc/classes/SpinBox.xml5
-rw-r--r--doc/classes/SpotLight3D.xml4
-rw-r--r--doc/classes/SpringArm3D.xml2
-rw-r--r--doc/classes/Sprite2D.xml2
-rw-r--r--doc/classes/Sprite3D.xml4
-rw-r--r--doc/classes/SpriteFrames.xml2
-rw-r--r--doc/classes/StandardMaterial3D.xml4
-rw-r--r--doc/classes/StaticBody2D.xml4
-rw-r--r--doc/classes/StaticBody3D.xml4
-rw-r--r--doc/classes/StreamCubemap.xml4
-rw-r--r--doc/classes/StreamCubemapArray.xml4
-rw-r--r--doc/classes/StreamPeer.xml3
-rw-r--r--doc/classes/StreamPeerBuffer.xml2
-rw-r--r--doc/classes/StreamPeerExtension.xml48
-rw-r--r--doc/classes/StreamPeerSSL.xml1
-rw-r--r--doc/classes/StreamPeerTCP.xml1
-rw-r--r--doc/classes/StreamTexture2D.xml2
-rw-r--r--doc/classes/StreamTexture2DArray.xml4
-rw-r--r--doc/classes/StreamTexture3D.xml2
-rw-r--r--doc/classes/StreamTextureLayered.xml2
-rw-r--r--doc/classes/String.xml2
-rw-r--r--doc/classes/StringName.xml2
-rw-r--r--doc/classes/StyleBox.xml2
-rw-r--r--doc/classes/StyleBoxEmpty.xml4
-rw-r--r--doc/classes/StyleBoxFlat.xml2
-rw-r--r--doc/classes/StyleBoxLine.xml4
-rw-r--r--doc/classes/SubViewport.xml2
-rw-r--r--doc/classes/SubViewportContainer.xml4
-rw-r--r--doc/classes/SyntaxHighlighter.xml2
-rw-r--r--doc/classes/TCPServer.xml3
-rw-r--r--doc/classes/TabContainer.xml24
-rw-r--r--doc/classes/Tabs.xml7
-rw-r--r--doc/classes/TextEdit.xml6
-rw-r--r--doc/classes/TextServer.xml6
-rw-r--r--doc/classes/TextServerManager.xml2
-rw-r--r--doc/classes/Texture.xml4
-rw-r--r--doc/classes/Texture2D.xml2
-rw-r--r--doc/classes/Texture2DArray.xml4
-rw-r--r--doc/classes/Texture3D.xml2
-rw-r--r--doc/classes/TextureButton.xml2
-rw-r--r--doc/classes/TextureRect.xml2
-rw-r--r--doc/classes/Thread.xml9
-rw-r--r--doc/classes/TileData.xml32
-rw-r--r--doc/classes/TileMap.xml18
-rw-r--r--doc/classes/TileSetAtlasSource.xml113
-rw-r--r--doc/classes/TileSetScenesCollectionSource.xml2
-rw-r--r--doc/classes/TileSetSource.xml2
-rw-r--r--doc/classes/Translation.xml20
-rw-r--r--doc/classes/TranslationServer.xml2
-rw-r--r--doc/classes/TriangleMesh.xml4
-rw-r--r--doc/classes/TubeTrailMesh.xml4
-rw-r--r--doc/classes/Tween.xml1
-rw-r--r--doc/classes/Tweener.xml4
-rw-r--r--doc/classes/UDPServer.xml2
-rw-r--r--doc/classes/VBoxContainer.xml4
-rw-r--r--doc/classes/VScrollBar.xml4
-rw-r--r--doc/classes/VSeparator.xml4
-rw-r--r--doc/classes/VSlider.xml4
-rw-r--r--doc/classes/VSplitContainer.xml4
-rw-r--r--doc/classes/Variant.xml4
-rw-r--r--doc/classes/VehicleBody3D.xml4
-rw-r--r--doc/classes/VehicleWheel3D.xml2
-rw-r--r--doc/classes/VelocityTracker3D.xml2
-rw-r--r--doc/classes/VideoPlayer.xml2
-rw-r--r--doc/classes/VideoStream.xml4
-rw-r--r--doc/classes/ViewportTexture.xml4
-rw-r--r--doc/classes/VisibleOnScreenEnabler2D.xml2
-rw-r--r--doc/classes/VisibleOnScreenEnabler3D.xml2
-rw-r--r--doc/classes/VisibleOnScreenNotifier2D.xml2
-rw-r--r--doc/classes/VisibleOnScreenNotifier3D.xml2
-rw-r--r--doc/classes/VisualInstance3D.xml2
-rw-r--r--doc/classes/VisualScriptCustomNodes.xml2
-rw-r--r--doc/classes/VisualShaderNodeBillboard.xml2
-rw-r--r--doc/classes/VisualShaderNodeBooleanConstant.xml4
-rw-r--r--doc/classes/VisualShaderNodeBooleanUniform.xml4
-rw-r--r--doc/classes/VisualShaderNodeClamp.xml2
-rw-r--r--doc/classes/VisualShaderNodeColorConstant.xml4
-rw-r--r--doc/classes/VisualShaderNodeColorFunc.xml2
-rw-r--r--doc/classes/VisualShaderNodeColorOp.xml2
-rw-r--r--doc/classes/VisualShaderNodeColorUniform.xml4
-rw-r--r--doc/classes/VisualShaderNodeComment.xml4
-rw-r--r--doc/classes/VisualShaderNodeCompare.xml2
-rw-r--r--doc/classes/VisualShaderNodeConstant.xml4
-rw-r--r--doc/classes/VisualShaderNodeCubemap.xml2
-rw-r--r--doc/classes/VisualShaderNodeCubemapUniform.xml4
-rw-r--r--doc/classes/VisualShaderNodeCurveTexture.xml4
-rw-r--r--doc/classes/VisualShaderNodeCurveXYZTexture.xml4
-rw-r--r--doc/classes/VisualShaderNodeCustom.xml2
-rw-r--r--doc/classes/VisualShaderNodeDeterminant.xml4
-rw-r--r--doc/classes/VisualShaderNodeDotProduct.xml4
-rw-r--r--doc/classes/VisualShaderNodeExpression.xml4
-rw-r--r--doc/classes/VisualShaderNodeFaceForward.xml4
-rw-r--r--doc/classes/VisualShaderNodeFloatConstant.xml4
-rw-r--r--doc/classes/VisualShaderNodeFloatFunc.xml2
-rw-r--r--doc/classes/VisualShaderNodeFloatOp.xml2
-rw-r--r--doc/classes/VisualShaderNodeFloatUniform.xml2
-rw-r--r--doc/classes/VisualShaderNodeFresnel.xml4
-rw-r--r--doc/classes/VisualShaderNodeGlobalExpression.xml4
-rw-r--r--doc/classes/VisualShaderNodeGroupBase.xml2
-rw-r--r--doc/classes/VisualShaderNodeIf.xml4
-rw-r--r--doc/classes/VisualShaderNodeInput.xml2
-rw-r--r--doc/classes/VisualShaderNodeIntConstant.xml4
-rw-r--r--doc/classes/VisualShaderNodeIntFunc.xml2
-rw-r--r--doc/classes/VisualShaderNodeIntOp.xml2
-rw-r--r--doc/classes/VisualShaderNodeIntUniform.xml2
-rw-r--r--doc/classes/VisualShaderNodeIs.xml2
-rw-r--r--doc/classes/VisualShaderNodeMix.xml2
-rw-r--r--doc/classes/VisualShaderNodeMultiplyAdd.xml2
-rw-r--r--doc/classes/VisualShaderNodeOuterProduct.xml4
-rw-r--r--doc/classes/VisualShaderNodeOutput.xml4
-rw-r--r--doc/classes/VisualShaderNodeParticleAccelerator.xml2
-rw-r--r--doc/classes/VisualShaderNodeParticleBoxEmitter.xml4
-rw-r--r--doc/classes/VisualShaderNodeParticleConeVelocity.xml4
-rw-r--r--doc/classes/VisualShaderNodeParticleEmit.xml2
-rw-r--r--doc/classes/VisualShaderNodeParticleEmitter.xml4
-rw-r--r--doc/classes/VisualShaderNodeParticleMultiplyByAxisAngle.xml4
-rw-r--r--doc/classes/VisualShaderNodeParticleOutput.xml4
-rw-r--r--doc/classes/VisualShaderNodeParticleRandomness.xml2
-rw-r--r--doc/classes/VisualShaderNodeParticleRingEmitter.xml4
-rw-r--r--doc/classes/VisualShaderNodeParticleSphereEmitter.xml4
-rw-r--r--doc/classes/VisualShaderNodeResizableBase.xml4
-rw-r--r--doc/classes/VisualShaderNodeSDFRaymarch.xml4
-rw-r--r--doc/classes/VisualShaderNodeSDFToScreenUV.xml4
-rw-r--r--doc/classes/VisualShaderNodeSample3D.xml2
-rw-r--r--doc/classes/VisualShaderNodeScalarDerivativeFunc.xml2
-rw-r--r--doc/classes/VisualShaderNodeScreenUVToSDF.xml4
-rw-r--r--doc/classes/VisualShaderNodeSmoothStep.xml2
-rw-r--r--doc/classes/VisualShaderNodeStep.xml2
-rw-r--r--doc/classes/VisualShaderNodeSwitch.xml2
-rw-r--r--doc/classes/VisualShaderNodeTexture.xml2
-rw-r--r--doc/classes/VisualShaderNodeTexture2DArray.xml4
-rw-r--r--doc/classes/VisualShaderNodeTexture2DArrayUniform.xml4
-rw-r--r--doc/classes/VisualShaderNodeTexture3D.xml4
-rw-r--r--doc/classes/VisualShaderNodeTexture3DUniform.xml4
-rw-r--r--doc/classes/VisualShaderNodeTextureSDF.xml4
-rw-r--r--doc/classes/VisualShaderNodeTextureSDFNormal.xml4
-rw-r--r--doc/classes/VisualShaderNodeTextureUniform.xml2
-rw-r--r--doc/classes/VisualShaderNodeTextureUniformTriplanar.xml4
-rw-r--r--doc/classes/VisualShaderNodeTransformCompose.xml4
-rw-r--r--doc/classes/VisualShaderNodeTransformConstant.xml4
-rw-r--r--doc/classes/VisualShaderNodeTransformDecompose.xml4
-rw-r--r--doc/classes/VisualShaderNodeTransformFunc.xml2
-rw-r--r--doc/classes/VisualShaderNodeTransformOp.xml2
-rw-r--r--doc/classes/VisualShaderNodeTransformUniform.xml4
-rw-r--r--doc/classes/VisualShaderNodeTransformVecMult.xml2
-rw-r--r--doc/classes/VisualShaderNodeUVFunc.xml2
-rw-r--r--doc/classes/VisualShaderNodeUniform.xml2
-rw-r--r--doc/classes/VisualShaderNodeUniformRef.xml4
-rw-r--r--doc/classes/VisualShaderNodeVec3Constant.xml4
-rw-r--r--doc/classes/VisualShaderNodeVec3Uniform.xml4
-rw-r--r--doc/classes/VisualShaderNodeVectorCompose.xml4
-rw-r--r--doc/classes/VisualShaderNodeVectorDecompose.xml4
-rw-r--r--doc/classes/VisualShaderNodeVectorDerivativeFunc.xml2
-rw-r--r--doc/classes/VisualShaderNodeVectorDistance.xml4
-rw-r--r--doc/classes/VisualShaderNodeVectorFunc.xml2
-rw-r--r--doc/classes/VisualShaderNodeVectorLen.xml4
-rw-r--r--doc/classes/VisualShaderNodeVectorOp.xml2
-rw-r--r--doc/classes/VisualShaderNodeVectorRefract.xml4
-rw-r--r--doc/classes/VoxelGIData.xml2
-rw-r--r--doc/classes/WeakRef.xml2
-rw-r--r--doc/classes/World2D.xml4
-rw-r--r--doc/classes/World3D.xml4
-rw-r--r--doc/classes/WorldBoundaryShape2D.xml4
-rw-r--r--doc/classes/WorldBoundaryShape3D.xml4
-rw-r--r--doc/classes/WorldEnvironment.xml4
-rw-r--r--doc/classes/X509Certificate.xml2
-rw-r--r--doc/classes/XRAnchor3D.xml2
-rw-r--r--doc/classes/XRCamera3D.xml4
-rw-r--r--doc/classes/XRController3D.xml2
-rw-r--r--doc/classes/XRInterfaceExtension.xml2
-rw-r--r--doc/classes/XROrigin3D.xml4
-rw-r--r--doc/classes/bool.xml2
-rw-r--r--doc/classes/float.xml2
-rw-r--r--doc/classes/int.xml2
-rw-r--r--drivers/vulkan/rendering_device_vulkan.cpp206
-rw-r--r--drivers/vulkan/vulkan_context.cpp8
-rw-r--r--editor/action_map_editor.cpp47
-rw-r--r--editor/action_map_editor.h2
-rw-r--r--editor/animation_bezier_editor.cpp4
-rw-r--r--editor/code_editor.cpp9
-rw-r--r--editor/code_editor.h2
-rw-r--r--editor/debugger/script_editor_debugger.cpp14
-rw-r--r--editor/doc_tools.cpp167
-rw-r--r--editor/editor_audio_buses.cpp2
-rw-r--r--editor/editor_command_palette.cpp6
-rw-r--r--editor/editor_dir_dialog.cpp1
-rw-r--r--editor/editor_file_dialog.cpp2
-rw-r--r--editor/editor_node.cpp167
-rw-r--r--editor/editor_node.h2
-rw-r--r--editor/editor_plugin.cpp2
-rw-r--r--editor/editor_properties.cpp8
-rw-r--r--editor/editor_properties_array_dict.cpp4
-rw-r--r--editor/editor_resource_picker.cpp4
-rw-r--r--editor/editor_settings.cpp61
-rw-r--r--editor/editor_settings.h1
-rw-r--r--editor/editor_spin_slider.cpp59
-rw-r--r--editor/editor_spin_slider.h1
-rw-r--r--editor/export_template_manager.cpp2
-rw-r--r--editor/import/dynamicfont_import_settings.cpp33
-rw-r--r--editor/import/resource_importer_texture_atlas.cpp6
-rw-r--r--editor/import/scene_import_settings.cpp2
-rw-r--r--editor/import_dock.cpp18
-rw-r--r--editor/import_dock.h1
-rw-r--r--editor/plugins/animation_blend_space_2d_editor.cpp15
-rw-r--r--editor/plugins/animation_player_editor_plugin.cpp2
-rw-r--r--editor/plugins/canvas_item_editor_plugin.cpp15
-rw-r--r--editor/plugins/cpu_particles_2d_editor_plugin.cpp2
-rw-r--r--editor/plugins/editor_preview_plugins.cpp2
-rw-r--r--editor/plugins/gpu_particles_2d_editor_plugin.cpp2
-rw-r--r--editor/plugins/gpu_particles_3d_editor_plugin.cpp2
-rw-r--r--editor/plugins/item_list_editor_plugin.cpp12
-rw-r--r--editor/plugins/item_list_editor_plugin.h2
-rw-r--r--editor/plugins/mesh_editor_plugin.cpp2
-rw-r--r--editor/plugins/node_3d_editor_gizmos.cpp12
-rw-r--r--editor/plugins/node_3d_editor_plugin.cpp52
-rw-r--r--editor/plugins/path_3d_editor_plugin.cpp9
-rw-r--r--editor/plugins/polygon_2d_editor_plugin.cpp26
-rw-r--r--editor/plugins/script_editor_plugin.cpp30
-rw-r--r--editor/plugins/script_editor_plugin.h1
-rw-r--r--editor/plugins/script_text_editor.cpp34
-rw-r--r--editor/plugins/sprite_2d_editor_plugin.cpp4
-rw-r--r--editor/plugins/texture_editor_plugin.cpp27
-rw-r--r--editor/plugins/texture_editor_plugin.h2
-rw-r--r--editor/plugins/texture_region_editor_plugin.cpp17
-rw-r--r--editor/plugins/theme_editor_preview.cpp4
-rw-r--r--editor/plugins/tiles/atlas_merging_dialog.cpp12
-rw-r--r--editor/plugins/tiles/tile_atlas_view.cpp41
-rw-r--r--editor/plugins/tiles/tile_data_editors.cpp117
-rw-r--r--editor/plugins/tiles/tile_map_editor.cpp22
-rw-r--r--editor/plugins/tiles/tile_set_atlas_source_editor.cpp265
-rw-r--r--editor/plugins/tiles/tile_set_atlas_source_editor.h1
-rw-r--r--editor/plugins/tiles/tiles_editor_plugin.cpp2
-rw-r--r--editor/plugins/visual_shader_editor_plugin.cpp2
-rw-r--r--editor/scene_tree_dock.cpp12
-rw-r--r--editor/scene_tree_editor.cpp6
-rw-r--r--editor/settings_config_dialog.cpp4
-rw-r--r--editor/shader_create_dialog.cpp12
-rw-r--r--editor/translations/af.po324
-rw-r--r--editor/translations/ar.po722
-rw-r--r--editor/translations/az.po350
-rw-r--r--editor/translations/bg.po985
-rw-r--r--editor/translations/bn.po366
-rw-r--r--editor/translations/br.po316
-rw-r--r--editor/translations/ca.po368
-rw-r--r--editor/translations/cs.po399
-rw-r--r--editor/translations/da.po329
-rw-r--r--editor/translations/de.po454
-rw-r--r--editor/translations/editor.pot315
-rw-r--r--editor/translations/el.po387
-rw-r--r--editor/translations/eo.po552
-rw-r--r--editor/translations/es.po460
-rw-r--r--editor/translations/es_AR.po803
-rw-r--r--editor/translations/et.po329
-rw-r--r--editor/translations/eu.po322
-rw-r--r--editor/translations/fa.po369
-rw-r--r--editor/translations/fi.po1160
-rw-r--r--editor/translations/fil.po317
-rw-r--r--editor/translations/fr.po515
-rw-r--r--editor/translations/ga.po316
-rw-r--r--editor/translations/gl.po373
-rw-r--r--editor/translations/he.po364
-rw-r--r--editor/translations/hi.po329
-rw-r--r--editor/translations/hr.po349
-rw-r--r--editor/translations/hu.po346
-rw-r--r--editor/translations/id.po816
-rw-r--r--editor/translations/is.po321
-rw-r--r--editor/translations/it.po587
-rw-r--r--editor/translations/ja.po1453
-rw-r--r--editor/translations/ka.po324
-rw-r--r--editor/translations/km.po316
-rw-r--r--editor/translations/ko.po1996
-rw-r--r--editor/translations/lt.po324
-rw-r--r--editor/translations/lv.po323
-rw-r--r--editor/translations/mi.po315
-rw-r--r--editor/translations/mk.po315
-rw-r--r--editor/translations/ml.po316
-rw-r--r--editor/translations/mr.po316
-rw-r--r--editor/translations/ms.po355
-rw-r--r--editor/translations/nb.po362
-rw-r--r--editor/translations/nl.po387
-rw-r--r--editor/translations/or.po315
-rw-r--r--editor/translations/pl.po1372
-rw-r--r--editor/translations/pr.po326
-rw-r--r--editor/translations/pt.po1374
-rw-r--r--editor/translations/pt_BR.po532
-rw-r--r--editor/translations/ro.po334
-rw-r--r--editor/translations/ru.po440
-rw-r--r--editor/translations/si.po318
-rw-r--r--editor/translations/sk.po331
-rw-r--r--editor/translations/sl.po329
-rw-r--r--editor/translations/sq.po327
-rw-r--r--editor/translations/sr_Cyrl.po368
-rw-r--r--editor/translations/sr_Latn.po324
-rw-r--r--editor/translations/sv.po355
-rw-r--r--editor/translations/ta.po320
-rw-r--r--editor/translations/te.po315
-rw-r--r--editor/translations/th.po383
-rw-r--r--editor/translations/tr.po763
-rw-r--r--editor/translations/tt.po315
-rw-r--r--editor/translations/tzm.po315
-rw-r--r--editor/translations/uk.po434
-rw-r--r--editor/translations/ur_PK.po324
-rw-r--r--editor/translations/vi.po483
-rw-r--r--editor/translations/zh_CN.po524
-rw-r--r--editor/translations/zh_HK.po331
-rw-r--r--editor/translations/zh_TW.po387
-rw-r--r--main/main.cpp9
-rw-r--r--methods.py11
-rw-r--r--modules/bullet/SCsub11
-rw-r--r--modules/bullet/bullet_physics_server.cpp360
-rw-r--r--modules/bullet/rigid_body_bullet.cpp12
-rw-r--r--modules/bullet/space_bullet.cpp10
-rw-r--r--modules/csg/csg.cpp44
-rw-r--r--modules/csg/csg_shape.cpp450
-rw-r--r--modules/csg/csg_shape.h18
-rw-r--r--modules/csg/doc_classes/CSGBox3D.xml4
-rw-r--r--modules/csg/doc_classes/CSGCombiner3D.xml4
-rw-r--r--modules/csg/doc_classes/CSGCylinder3D.xml4
-rw-r--r--modules/csg/doc_classes/CSGMesh3D.xml4
-rw-r--r--modules/csg/doc_classes/CSGPolygon3D.xml17
-rw-r--r--modules/csg/doc_classes/CSGPrimitive3D.xml4
-rw-r--r--modules/csg/doc_classes/CSGSphere3D.xml4
-rw-r--r--modules/csg/doc_classes/CSGTorus3D.xml4
-rw-r--r--modules/enet/doc_classes/ENetMultiplayerPeer.xml4
-rw-r--r--modules/enet/doc_classes/ENetPacketPeer.xml1
-rw-r--r--modules/enet/enet_multiplayer_peer.cpp39
-rw-r--r--modules/enet/enet_multiplayer_peer.h40
-rw-r--r--modules/etcpak/image_compress_etcpak.cpp4
-rw-r--r--modules/fbx/doc_classes/EditorSceneImporterFBX.xml4
-rw-r--r--modules/gdnative/SCsub1
-rw-r--r--modules/gdnative/config.py5
-rw-r--r--modules/gdnative/doc_classes/GDNative.xml2
-rw-r--r--modules/gdnative/doc_classes/GDNativeLibrary.xml2
-rw-r--r--modules/gdnative/doc_classes/MultiplayerPeerGDNative.xml13
-rw-r--r--modules/gdnative/doc_classes/NativeScript.xml2
-rw-r--r--modules/gdnative/doc_classes/PacketPeerGDNative.xml13
-rw-r--r--modules/gdnative/doc_classes/PluginScript.xml2
-rw-r--r--modules/gdnative/doc_classes/StreamPeerGDNative.xml13
-rw-r--r--modules/gdnative/doc_classes/VideoStreamGDNative.xml2
-rw-r--r--modules/gdnative/doc_classes/WebRTCDataChannelGDNative.xml13
-rw-r--r--modules/gdnative/doc_classes/WebRTCPeerConnectionGDNative.xml13
-rw-r--r--modules/gdnative/gdnative_api.json91
-rw-r--r--modules/gdnative/gdnative_builders.py1
-rw-r--r--modules/gdnative/include/net/godot_net.h122
-rw-r--r--modules/gdnative/include/net/godot_webrtc.h123
-rw-r--r--modules/gdnative/net/SCsub12
-rw-r--r--modules/gdnative/net/multiplayer_peer_gdnative.cpp136
-rw-r--r--modules/gdnative/net/multiplayer_peer_gdnative.h79
-rw-r--r--modules/gdnative/net/packet_peer_gdnative.cpp72
-rw-r--r--modules/gdnative/net/packet_peer_gdnative.h59
-rw-r--r--modules/gdnative/net/register_types.cpp43
-rw-r--r--modules/gdnative/net/register_types.h37
-rw-r--r--modules/gdnative/net/stream_peer_gdnative.cpp77
-rw-r--r--modules/gdnative/net/stream_peer_gdnative.h60
-rw-r--r--modules/gdnative/net/webrtc_gdnative.cpp60
-rw-r--r--modules/gdnative/register_types.cpp3
-rw-r--r--modules/gdscript/doc_classes/GDScript.xml2
-rw-r--r--modules/gdscript/editor/gdscript_highlighter.cpp8
-rw-r--r--modules/gdscript/editor/gdscript_highlighter.h4
-rw-r--r--modules/gdscript/gdscript_analyzer.cpp6
-rw-r--r--modules/gdscript/gdscript_compiler.cpp36
-rw-r--r--modules/gdscript/gdscript_editor.cpp5
-rw-r--r--modules/gdscript/gdscript_parser.cpp35
-rw-r--r--modules/gdscript/gdscript_parser.h3
-rw-r--r--modules/gdscript/gdscript_vm.cpp12
-rw-r--r--modules/gdscript/language_server/gdscript_language_protocol.cpp17
-rw-r--r--modules/gdscript/language_server/gdscript_language_protocol.h3
-rw-r--r--modules/gdscript/language_server/gdscript_workspace.cpp59
-rw-r--r--modules/gdscript/language_server/gdscript_workspace.h4
-rw-r--r--modules/gdscript/language_server/lsp.hpp22
-rw-r--r--modules/gdscript/tests/scripts/analyzer/errors/bitwise_float_right_operand.gd2
-rw-r--r--modules/gdscript/tests/scripts/analyzer/errors/bitwise_float_right_operand.out2
-rw-r--r--modules/gdscript/tests/scripts/analyzer/errors/class_name_shadows_builtin_type.gd5
-rw-r--r--modules/gdscript/tests/scripts/analyzer/errors/class_name_shadows_builtin_type.out2
-rw-r--r--modules/gdscript/tests/scripts/analyzer/errors/constant_name_shadows_builtin_type.gd4
-rw-r--r--modules/gdscript/tests/scripts/analyzer/errors/constant_name_shadows_builtin_type.out2
-rw-r--r--modules/gdscript/tests/scripts/analyzer/errors/enum_name_shadows_builtin_type.gd4
-rw-r--r--modules/gdscript/tests/scripts/analyzer/errors/enum_name_shadows_builtin_type.out2
-rw-r--r--modules/gdscript/tests/scripts/analyzer/errors/variable_name_shadows_builtin_type.gd4
-rw-r--r--modules/gdscript/tests/scripts/analyzer/errors/variable_name_shadows_builtin_type.out2
-rw-r--r--modules/gdscript/tests/scripts/analyzer/features/static_method_builtin_type.gd2
-rw-r--r--modules/gdscript/tests/scripts/analyzer/features/static_method_builtin_type.out2
-rw-r--r--modules/gdscript/tests/scripts/parser/errors/brace_syntax.gd3
-rw-r--r--modules/gdscript/tests/scripts/parser/errors/brace_syntax.out2
-rw-r--r--modules/gdscript/tests/scripts/parser/errors/invalid_escape_sequence.gd2
-rw-r--r--modules/gdscript/tests/scripts/parser/errors/invalid_escape_sequence.out2
-rw-r--r--modules/gdscript/tests/scripts/parser/errors/invalid_ternary_operator.gd5
-rw-r--r--modules/gdscript/tests/scripts/parser/errors/invalid_ternary_operator.out2
-rw-r--r--modules/gdscript/tests/scripts/parser/errors/vcs_conflict_marker.gd13
-rw-r--r--modules/gdscript/tests/scripts/parser/errors/vcs_conflict_marker.out2
-rw-r--r--modules/gdscript/tests/scripts/parser/errors/yield_instead_of_await.gd6
-rw-r--r--modules/gdscript/tests/scripts/parser/errors/yield_instead_of_await.out2
-rw-r--r--modules/gdscript/tests/scripts/parser/features/export_variable.gd7
-rw-r--r--modules/gdscript/tests/scripts/parser/features/export_variable.out3
-rw-r--r--modules/gdscript/tests/scripts/parser/features/function_default_parameter_type_inference.gd5
-rw-r--r--modules/gdscript/tests/scripts/parser/features/function_default_parameter_type_inference.out2
-rw-r--r--modules/gdscript/tests/scripts/parser/features/function_many_parameters.gd5
-rw-r--r--modules/gdscript/tests/scripts/parser/features/function_many_parameters.out2
-rw-r--r--modules/gdscript/tests/scripts/parser/features/lambda_callable.gd4
-rw-r--r--modules/gdscript/tests/scripts/parser/features/lambda_callable.out2
-rw-r--r--modules/gdscript/tests/scripts/parser/features/lambda_capture_callable.gd4
-rw-r--r--modules/gdscript/tests/scripts/parser/features/lambda_capture_callable.out2
-rw-r--r--modules/gdscript/tests/scripts/parser/features/lambda_named_callable.gd10
-rw-r--r--modules/gdscript/tests/scripts/parser/features/lambda_named_callable.out3
-rw-r--r--modules/gdscript/tests/scripts/parser/features/nested_function_calls.gd5
-rw-r--r--modules/gdscript/tests/scripts/parser/features/nested_function_calls.out2
-rw-r--r--modules/gdscript/tests/scripts/parser/features/semicolon_as_terminator.gd22
-rw-r--r--modules/gdscript/tests/scripts/parser/features/semicolon_as_terminator.out10
-rw-r--r--modules/gdscript/tests/scripts/parser/features/signal_declaration.gd20
-rw-r--r--modules/gdscript/tests/scripts/parser/features/signal_declaration.out2
-rw-r--r--modules/gdscript/tests/scripts/parser/features/single_line_declaration.gd11
-rw-r--r--modules/gdscript/tests/scripts/parser/features/single_line_declaration.out3
-rw-r--r--modules/gdscript/tests/scripts/parser/features/typed_arrays.gd5
-rw-r--r--modules/gdscript/tests/scripts/parser/features/typed_arrays.out3
-rw-r--r--modules/gdscript/tests/scripts/runtime/features/property_with_operator_assignment.gd11
-rw-r--r--modules/gdscript/tests/scripts/runtime/features/property_with_operator_assignment.out8
-rw-r--r--modules/gdscript/tests/scripts/runtime/features/recursion.gd19
-rw-r--r--modules/gdscript/tests/scripts/runtime/features/recursion.out125
-rw-r--r--modules/glslang/SCsub53
-rw-r--r--modules/gltf/doc_classes/EditorSceneImporterGLTF.xml4
-rw-r--r--modules/gltf/doc_classes/GLTFAccessor.xml4
-rw-r--r--modules/gltf/doc_classes/GLTFAnimation.xml4
-rw-r--r--modules/gltf/doc_classes/GLTFBufferView.xml4
-rw-r--r--modules/gltf/doc_classes/GLTFCamera.xml4
-rw-r--r--modules/gltf/doc_classes/GLTFDocument.xml2
-rw-r--r--modules/gltf/doc_classes/GLTFLight.xml20
-rw-r--r--modules/gltf/doc_classes/GLTFMesh.xml4
-rw-r--r--modules/gltf/doc_classes/GLTFNode.xml4
-rw-r--r--modules/gltf/doc_classes/GLTFSkeleton.xml2
-rw-r--r--modules/gltf/doc_classes/GLTFSkin.xml2
-rw-r--r--modules/gltf/doc_classes/GLTFSpecGloss.xml4
-rw-r--r--modules/gltf/doc_classes/GLTFState.xml2
-rw-r--r--modules/gltf/doc_classes/GLTFTexture.xml4
-rw-r--r--modules/gltf/gltf_document.cpp642
-rw-r--r--modules/gltf/gltf_document.h63
-rw-r--r--modules/gltf/gltf_light.h8
-rw-r--r--modules/gltf/gltf_state.h5
-rw-r--r--modules/gridmap/grid_map.cpp5
-rw-r--r--modules/minimp3/doc_classes/AudioStreamMP3.xml4
-rw-r--r--modules/mobile_vr/doc_classes/MobileVRInterface.xml4
-rw-r--r--modules/mobile_vr/mobile_vr_interface.cpp30
-rw-r--r--modules/mobile_vr/mobile_vr_interface.h46
-rw-r--r--modules/mobile_vr/register_types.cpp17
-rw-r--r--modules/mono/csharp_script.cpp4
-rw-r--r--modules/mono/glue/GodotSharp/GodotSharp/Core/AABB.cs10
-rw-r--r--modules/mono/glue/GodotSharp/GodotSharp/Core/Attributes/RPCAttributes.cs4
-rw-r--r--modules/mono/glue/GodotSharp/GodotSharp/Core/Rect2.cs10
-rw-r--r--modules/mono/glue/GodotSharp/GodotSharp/Core/Rect2i.cs14
-rw-r--r--modules/mono/mono_gd/gd_mono_cache.cpp8
-rw-r--r--modules/mono/mono_gd/gd_mono_cache.h4
-rw-r--r--modules/navigation/godot_navigation_server.cpp82
-rw-r--r--modules/navigation/nav_map.cpp4
-rw-r--r--modules/ogg/doc_classes/OGGPacketSequence.xml2
-rw-r--r--modules/ogg/doc_classes/OGGPacketSequencePlayback.xml4
-rw-r--r--modules/opensimplex/doc_classes/NoiseTexture.xml4
-rw-r--r--modules/opensimplex/doc_classes/OpenSimplexNoise.xml2
-rw-r--r--modules/raycast/SCsub1
-rw-r--r--modules/raycast/raycast_occlusion_cull.cpp14
-rw-r--r--modules/regex/doc_classes/RegEx.xml2
-rw-r--r--modules/regex/doc_classes/RegExMatch.xml2
-rw-r--r--modules/text_server_adv/text_server_adv.cpp282
-rw-r--r--modules/text_server_adv/text_server_adv.h1
-rw-r--r--modules/text_server_fb/text_server_fb.cpp268
-rw-r--r--modules/theora/doc_classes/VideoStreamTheora.xml2
-rw-r--r--modules/visual_script/doc_classes/VisualScript.xml2
-rw-r--r--modules/visual_script/doc_classes/VisualScriptBasicTypeConstant.xml4
-rw-r--r--modules/visual_script/doc_classes/VisualScriptBuiltinFunc.xml22
-rw-r--r--modules/visual_script/doc_classes/VisualScriptClassConstant.xml4
-rw-r--r--modules/visual_script/doc_classes/VisualScriptComment.xml4
-rw-r--r--modules/visual_script/doc_classes/VisualScriptComposeArray.xml4
-rw-r--r--modules/visual_script/doc_classes/VisualScriptCondition.xml4
-rw-r--r--modules/visual_script/doc_classes/VisualScriptConstant.xml4
-rw-r--r--modules/visual_script/doc_classes/VisualScriptConstructor.xml2
-rw-r--r--modules/visual_script/doc_classes/VisualScriptDeconstruct.xml4
-rw-r--r--modules/visual_script/doc_classes/VisualScriptEmitSignal.xml4
-rw-r--r--modules/visual_script/doc_classes/VisualScriptEngineSingleton.xml4
-rw-r--r--modules/visual_script/doc_classes/VisualScriptExpression.xml4
-rw-r--r--modules/visual_script/doc_classes/VisualScriptFunction.xml4
-rw-r--r--modules/visual_script/doc_classes/VisualScriptFunctionCall.xml2
-rw-r--r--modules/visual_script/doc_classes/VisualScriptFunctionState.xml2
-rw-r--r--modules/visual_script/doc_classes/VisualScriptGlobalConstant.xml4
-rw-r--r--modules/visual_script/doc_classes/VisualScriptIndexGet.xml4
-rw-r--r--modules/visual_script/doc_classes/VisualScriptIndexSet.xml4
-rw-r--r--modules/visual_script/doc_classes/VisualScriptInputAction.xml2
-rw-r--r--modules/visual_script/doc_classes/VisualScriptIterator.xml4
-rw-r--r--modules/visual_script/doc_classes/VisualScriptLists.xml2
-rw-r--r--modules/visual_script/doc_classes/VisualScriptLocalVar.xml4
-rw-r--r--modules/visual_script/doc_classes/VisualScriptLocalVarSet.xml4
-rw-r--r--modules/visual_script/doc_classes/VisualScriptMathConstant.xml2
-rw-r--r--modules/visual_script/doc_classes/VisualScriptNode.xml2
-rw-r--r--modules/visual_script/doc_classes/VisualScriptOperator.xml4
-rw-r--r--modules/visual_script/doc_classes/VisualScriptPreload.xml4
-rw-r--r--modules/visual_script/doc_classes/VisualScriptPropertyGet.xml2
-rw-r--r--modules/visual_script/doc_classes/VisualScriptPropertySet.xml2
-rw-r--r--modules/visual_script/doc_classes/VisualScriptResourcePath.xml4
-rw-r--r--modules/visual_script/doc_classes/VisualScriptReturn.xml4
-rw-r--r--modules/visual_script/doc_classes/VisualScriptSceneNode.xml4
-rw-r--r--modules/visual_script/doc_classes/VisualScriptSceneTree.xml4
-rw-r--r--modules/visual_script/doc_classes/VisualScriptSelect.xml4
-rw-r--r--modules/visual_script/doc_classes/VisualScriptSelf.xml4
-rw-r--r--modules/visual_script/doc_classes/VisualScriptSequence.xml4
-rw-r--r--modules/visual_script/doc_classes/VisualScriptSubCall.xml4
-rw-r--r--modules/visual_script/doc_classes/VisualScriptSwitch.xml4
-rw-r--r--modules/visual_script/doc_classes/VisualScriptTypeCast.xml4
-rw-r--r--modules/visual_script/doc_classes/VisualScriptVariableGet.xml4
-rw-r--r--modules/visual_script/doc_classes/VisualScriptVariableSet.xml4
-rw-r--r--modules/visual_script/doc_classes/VisualScriptWhile.xml4
-rw-r--r--modules/visual_script/doc_classes/VisualScriptYield.xml2
-rw-r--r--modules/visual_script/doc_classes/VisualScriptYieldSignal.xml2
-rw-r--r--modules/visual_script/visual_script_builtin_funcs.cpp15
-rw-r--r--modules/visual_script/visual_script_builtin_funcs.h1
-rw-r--r--modules/vorbis/doc_classes/AudioStreamOGGVorbis.xml4
-rw-r--r--modules/vorbis/doc_classes/AudioStreamPlaybackOGGVorbis.xml4
-rw-r--r--modules/webm/doc_classes/VideoStreamWebm.xml2
-rw-r--r--modules/webrtc/SCsub5
-rw-r--r--modules/webrtc/config.py2
-rw-r--r--modules/webrtc/doc_classes/WebRTCDataChannelExtension.xml106
-rw-r--r--modules/webrtc/doc_classes/WebRTCMultiplayerPeer.xml7
-rw-r--r--modules/webrtc/doc_classes/WebRTCPeerConnectionExtension.xml71
-rw-r--r--modules/webrtc/register_types.cpp26
-rw-r--r--modules/webrtc/webrtc_data_channel_extension.cpp215
-rw-r--r--modules/webrtc/webrtc_data_channel_extension.h (renamed from modules/webrtc/webrtc_data_channel_gdnative.h)53
-rw-r--r--modules/webrtc/webrtc_data_channel_gdnative.cpp143
-rw-r--r--modules/webrtc/webrtc_multiplayer_peer.cpp30
-rw-r--r--modules/webrtc/webrtc_multiplayer_peer.h10
-rw-r--r--modules/webrtc/webrtc_peer_connection.cpp24
-rw-r--r--modules/webrtc/webrtc_peer_connection.h7
-rw-r--r--modules/webrtc/webrtc_peer_connection_extension.cpp131
-rw-r--r--modules/webrtc/webrtc_peer_connection_extension.h (renamed from modules/webrtc/webrtc_peer_connection_gdnative.h)47
-rw-r--r--modules/webrtc/webrtc_peer_connection_gdnative.cpp121
-rw-r--r--modules/webrtc/webrtc_peer_connection_js.h3
-rw-r--r--modules/websocket/doc_classes/WebSocketClient.xml3
-rw-r--r--modules/websocket/doc_classes/WebSocketMultiplayerPeer.xml7
-rw-r--r--modules/websocket/doc_classes/WebSocketServer.xml3
-rw-r--r--modules/websocket/websocket_multiplayer_peer.cpp25
-rw-r--r--modules/websocket/websocket_multiplayer_peer.h7
-rw-r--r--modules/webxr/doc_classes/WebXRInterface.xml2
-rw-r--r--modules/webxr/register_types.cpp21
-rw-r--r--modules/webxr/webxr_interface_js.cpp2
-rw-r--r--modules/webxr/webxr_interface_js.h2
-rw-r--r--platform/javascript/.eslintrc.js8
-rw-r--r--platform/javascript/audio_driver_javascript.cpp141
-rw-r--r--platform/javascript/audio_driver_javascript.h157
-rw-r--r--platform/javascript/display_server_javascript.cpp7
-rw-r--r--platform/javascript/display_server_javascript.h2
-rw-r--r--platform/javascript/godot_audio.h7
-rw-r--r--platform/javascript/js/libs/audio.worklet.js49
-rw-r--r--platform/javascript/js/libs/library_godot_audio.js120
-rw-r--r--platform/javascript/os_javascript.cpp19
-rw-r--r--platform/javascript/os_javascript.h2
-rw-r--r--platform/osx/export/export_plugin.cpp53
-rw-r--r--platform/uwp/SCsub2
-rw-r--r--platform/uwp/app_uwp.cpp (renamed from platform/uwp/app.cpp)4
-rw-r--r--platform/uwp/app_uwp.h (renamed from platform/uwp/app.h)6
-rw-r--r--platform/windows/os_windows.cpp23
-rw-r--r--scene/2d/camera_2d.cpp2
-rw-r--r--scene/2d/cpu_particles_2d.cpp4
-rw-r--r--scene/2d/navigation_region_2d.cpp2
-rw-r--r--scene/2d/physical_bone_2d.cpp20
-rw-r--r--scene/2d/physics_body_2d.cpp135
-rw-r--r--scene/2d/physics_body_2d.h32
-rw-r--r--scene/2d/skeleton_2d.cpp2
-rw-r--r--scene/2d/tile_map.cpp326
-rw-r--r--scene/2d/tile_map.h15
-rw-r--r--scene/3d/bone_attachment_3d.cpp4
-rw-r--r--scene/3d/collision_shape_3d.cpp3
-rw-r--r--scene/3d/gpu_particles_3d.cpp2
-rw-r--r--scene/3d/gpu_particles_collision_3d.cpp4
-rw-r--r--scene/3d/lightmap_gi.cpp4
-rw-r--r--scene/3d/physics_body_3d.cpp951
-rw-r--r--scene/3d/physics_body_3d.h228
-rw-r--r--scene/3d/skeleton_3d.cpp1
-rw-r--r--scene/3d/skeleton_ik_3d.cpp4
-rw-r--r--scene/3d/vehicle_body_3d.cpp6
-rw-r--r--scene/3d/voxelizer.cpp8
-rw-r--r--scene/animation/SCsub3
-rw-r--r--scene/animation/animation_blend_tree.cpp13
-rw-r--r--scene/animation/easing_equations.h405
-rw-r--r--scene/animation/tween.cpp25
-rw-r--r--scene/gui/code_edit.cpp10
-rw-r--r--scene/gui/color_picker.cpp10
-rw-r--r--scene/gui/container.cpp5
-rw-r--r--scene/gui/graph_edit.cpp11
-rw-r--r--scene/gui/graph_node.cpp26
-rw-r--r--scene/gui/graph_node.h5
-rw-r--r--scene/gui/label.cpp17
-rw-r--r--scene/gui/line_edit.cpp30
-rw-r--r--scene/gui/line_edit.h7
-rw-r--r--scene/gui/menu_button.cpp8
-rw-r--r--scene/gui/popup.cpp8
-rw-r--r--scene/gui/rich_text_effect.cpp8
-rw-r--r--scene/gui/rich_text_effect.h14
-rw-r--r--scene/gui/rich_text_label.cpp111
-rw-r--r--scene/gui/rich_text_label.h3
-rw-r--r--scene/gui/scroll_bar.cpp2
-rw-r--r--scene/gui/scroll_container.cpp2
-rw-r--r--scene/gui/spin_box.cpp31
-rw-r--r--scene/gui/spin_box.h6
-rw-r--r--scene/gui/tab_container.cpp6
-rw-r--r--scene/gui/tabs.cpp32
-rw-r--r--scene/gui/text_edit.cpp27
-rw-r--r--scene/gui/texture_progress_bar.cpp5
-rw-r--r--scene/gui/tree.cpp127
-rw-r--r--scene/gui/tree.h6
-rw-r--r--scene/main/http_request.cpp8
-rw-r--r--scene/main/viewport.cpp17
-rw-r--r--scene/resources/bit_map.cpp2
-rw-r--r--scene/resources/canvas_item_material.cpp3
-rw-r--r--scene/resources/canvas_item_material.h1
-rw-r--r--scene/resources/default_theme/default_theme.cpp8
-rw-r--r--scene/resources/font.cpp16
-rw-r--r--scene/resources/material.cpp3
-rw-r--r--scene/resources/material.h1
-rw-r--r--scene/resources/packed_scene.cpp3
-rw-r--r--scene/resources/particles_material.cpp3
-rw-r--r--scene/resources/particles_material.h1
-rw-r--r--scene/resources/primitive_meshes.cpp8
-rw-r--r--scene/resources/primitive_meshes.h2
-rw-r--r--scene/resources/skeleton_modification_2d.cpp42
-rw-r--r--scene/resources/skeleton_modification_2d_fabrik.cpp4
-rw-r--r--scene/resources/skeleton_modification_2d_twoboneik.cpp2
-rw-r--r--scene/resources/skeleton_modification_3d.cpp40
-rw-r--r--scene/resources/skeleton_modification_3d_fabrik.cpp4
-rw-r--r--scene/resources/surface_tool.cpp1
-rw-r--r--scene/resources/texture.cpp8
-rw-r--r--scene/resources/texture.h2
-rw-r--r--scene/resources/tile_set.cpp493
-rw-r--r--scene/resources/tile_set.h44
-rw-r--r--servers/physics_2d/body_2d_sw.cpp4
-rw-r--r--servers/physics_2d/body_direct_state_2d_sw.cpp10
-rw-r--r--servers/physics_2d/physics_server_2d_sw.cpp272
-rw-r--r--servers/physics_2d/space_2d_sw.cpp32
-rw-r--r--servers/physics_2d/space_2d_sw.h1
-rw-r--r--servers/physics_3d/body_3d_sw.cpp4
-rw-r--r--servers/physics_3d/body_direct_state_3d_sw.cpp8
-rw-r--r--servers/physics_3d/physics_server_3d_sw.cpp378
-rw-r--r--servers/physics_3d/physics_server_3d_sw.h2
-rw-r--r--servers/physics_3d/physics_server_3d_wrap_mt.h4
-rw-r--r--servers/physics_3d/shape_3d_sw.cpp2
-rw-r--r--servers/physics_3d/soft_body_3d_sw.cpp6
-rw-r--r--servers/physics_3d/space_3d_sw.cpp203
-rw-r--r--servers/physics_3d/space_3d_sw.h3
-rw-r--r--servers/physics_server_2d.cpp3
-rw-r--r--servers/physics_server_2d.h3
-rw-r--r--servers/physics_server_3d.cpp144
-rw-r--r--servers/physics_server_3d.h68
-rw-r--r--servers/rendering/rasterizer_dummy.h6
-rw-r--r--servers/rendering/renderer_canvas_cull.cpp202
-rw-r--r--servers/rendering/renderer_rd/forward_clustered/render_forward_clustered.cpp2
-rw-r--r--servers/rendering/renderer_rd/forward_mobile/render_forward_mobile.cpp2
-rw-r--r--servers/rendering/renderer_rd/renderer_canvas_render_rd.cpp27
-rw-r--r--servers/rendering/renderer_rd/renderer_compositor_rd.cpp2
-rw-r--r--servers/rendering/renderer_rd/renderer_scene_gi_rd.cpp20
-rw-r--r--servers/rendering/renderer_rd/renderer_scene_gi_rd.h2
-rw-r--r--servers/rendering/renderer_rd/renderer_scene_render_rd.cpp327
-rw-r--r--servers/rendering/renderer_rd/renderer_scene_render_rd.h75
-rw-r--r--servers/rendering/renderer_rd/renderer_scene_sky_rd.cpp2
-rw-r--r--servers/rendering/renderer_rd/renderer_storage_rd.cpp667
-rw-r--r--servers/rendering/renderer_rd/renderer_storage_rd.h101
-rw-r--r--servers/rendering/renderer_rd/shader_rd.cpp10
-rw-r--r--servers/rendering/renderer_rd/shader_rd.h2
-rw-r--r--servers/rendering/renderer_rd/shaders/scene_forward_clustered.glsl2
-rw-r--r--servers/rendering/renderer_rd/shaders/scene_forward_mobile.glsl2
-rw-r--r--servers/rendering/renderer_scene_cull.cpp112
-rw-r--r--servers/rendering/renderer_viewport.cpp90
-rw-r--r--servers/rendering/shader_language.cpp4
-rw-r--r--servers/text_server.cpp2
-rw-r--r--servers/text_server.h1
-rw-r--r--servers/xr/xr_interface.h2
-rw-r--r--servers/xr/xr_interface_extension.cpp21
-rw-r--r--servers/xr/xr_interface_extension.h6
-rw-r--r--servers/xr_server.cpp4
-rw-r--r--servers/xr_server.h6
-rw-r--r--tests/test_aabb.h3
-rw-r--r--tests/test_physics_2d.cpp2
-rw-r--r--tests/test_physics_3d.cpp2
-rw-r--r--tests/test_rect2.h12
-rw-r--r--tests/test_translation.h31
-rw-r--r--thirdparty/README.md44
-rw-r--r--thirdparty/bullet/BulletCollision/CollisionDispatch/btBox2dBox2dCollisionAlgorithm.cpp1
-rw-r--r--thirdparty/bullet/BulletCollision/CollisionDispatch/btCollisionObject.h3
-rw-r--r--thirdparty/bullet/BulletCollision/CollisionDispatch/btCollisionWorld.cpp6
-rw-r--r--thirdparty/bullet/BulletCollision/CollisionShapes/btHeightfieldTerrainShape.cpp135
-rw-r--r--thirdparty/bullet/BulletCollision/CollisionShapes/btHeightfieldTerrainShape.h47
-rw-r--r--thirdparty/bullet/BulletDynamics/Featherstone/btMultiBody.cpp13
-rw-r--r--thirdparty/bullet/BulletDynamics/Featherstone/btMultiBody.h20
-rw-r--r--thirdparty/bullet/BulletDynamics/Featherstone/btMultiBodyConstraint.cpp5
-rw-r--r--thirdparty/bullet/BulletDynamics/Featherstone/btMultiBodyConstraint.h2
-rw-r--r--thirdparty/bullet/BulletDynamics/Featherstone/btMultiBodyDynamicsWorld.cpp9
-rw-r--r--thirdparty/bullet/BulletDynamics/Featherstone/btMultiBodyJointMotor.cpp1
-rw-r--r--thirdparty/bullet/BulletDynamics/Featherstone/btMultiBodySphericalJointMotor.cpp21
-rw-r--r--thirdparty/bullet/BulletDynamics/Featherstone/btMultiBodySphericalJointMotor.h49
-rw-r--r--thirdparty/bullet/BulletDynamics/MLCPSolvers/btMLCPSolver.cpp4
-rw-r--r--thirdparty/bullet/BulletSoftBody/btDeformableBodySolver.cpp8
-rw-r--r--thirdparty/bullet/BulletSoftBody/btDeformableMousePickingForce.h2
-rw-r--r--thirdparty/bullet/BulletSoftBody/btSoftBody.h4
-rw-r--r--thirdparty/bullet/LinearMath/btIDebugDraw.h6
-rw-r--r--thirdparty/bullet/LinearMath/btScalar.h2
-rw-r--r--thirdparty/bullet/LinearMath/btSerializer.h7
-rw-r--r--thirdparty/bullet/VERSION.txt1
-rw-r--r--thirdparty/bullet/patches/bullet-fix-warnings.patch42
-rw-r--r--thirdparty/etcpak/ProcessRGB.cpp699
-rw-r--r--thirdparty/etcpak/ProcessRGB.hpp6
-rw-r--r--thirdparty/glslang/SPIRV/GLSL.ext.EXT.h2
-rw-r--r--thirdparty/glslang/SPIRV/GLSL.ext.KHR.h2
-rw-r--r--thirdparty/glslang/SPIRV/GLSL.ext.NV.h3
-rw-r--r--thirdparty/glslang/SPIRV/GlslangToSpv.cpp548
-rw-r--r--thirdparty/glslang/SPIRV/SPVRemapper.cpp3
-rw-r--r--thirdparty/glslang/SPIRV/SpvBuilder.cpp124
-rw-r--r--thirdparty/glslang/SPIRV/SpvBuilder.h4
-rw-r--r--thirdparty/glslang/SPIRV/SpvPostProcess.cpp32
-rw-r--r--thirdparty/glslang/SPIRV/SpvTools.cpp3
-rw-r--r--thirdparty/glslang/SPIRV/doc.cpp41
-rw-r--r--thirdparty/glslang/SPIRV/spirv.hpp115
-rw-r--r--thirdparty/glslang/StandAlone/DirStackFileIncluder.h8
-rw-r--r--thirdparty/glslang/glslang/Include/BaseTypes.h12
-rw-r--r--thirdparty/glslang/glslang/Include/Common.h16
-rw-r--r--thirdparty/glslang/glslang/Include/SpirvIntrinsics.h136
-rw-r--r--thirdparty/glslang/glslang/Include/Types.h230
-rw-r--r--thirdparty/glslang/glslang/Include/glslang_c_shader_types.h5
-rw-r--r--thirdparty/glslang/glslang/Include/intermediate.h34
-rw-r--r--thirdparty/glslang/glslang/MachineIndependent/Constant.cpp21
-rw-r--r--thirdparty/glslang/glslang/MachineIndependent/Initialize.cpp454
-rw-r--r--thirdparty/glslang/glslang/MachineIndependent/Intermediate.cpp29
-rw-r--r--thirdparty/glslang/glslang/MachineIndependent/ParseContextBase.cpp63
-rw-r--r--thirdparty/glslang/glslang/MachineIndependent/ParseHelper.cpp693
-rw-r--r--thirdparty/glslang/glslang/MachineIndependent/ParseHelper.h66
-rw-r--r--thirdparty/glslang/glslang/MachineIndependent/Scan.cpp27
-rw-r--r--thirdparty/glslang/glslang/MachineIndependent/ShaderLang.cpp106
-rw-r--r--thirdparty/glslang/glslang/MachineIndependent/SpirvIntrinsics.cpp355
-rw-r--r--thirdparty/glslang/glslang/MachineIndependent/SymbolTable.cpp6
-rw-r--r--thirdparty/glslang/glslang/MachineIndependent/SymbolTable.h51
-rw-r--r--thirdparty/glslang/glslang/MachineIndependent/Versions.cpp54
-rw-r--r--thirdparty/glslang/glslang/MachineIndependent/Versions.h10
-rw-r--r--thirdparty/glslang/glslang/MachineIndependent/attribute.cpp25
-rw-r--r--thirdparty/glslang/glslang/MachineIndependent/attribute.h3
-rw-r--r--thirdparty/glslang/glslang/MachineIndependent/gl_types.h6
-rw-r--r--thirdparty/glslang/glslang/MachineIndependent/glslang.y356
-rw-r--r--thirdparty/glslang/glslang/MachineIndependent/glslang_tab.cpp7146
-rw-r--r--thirdparty/glslang/glslang/MachineIndependent/glslang_tab.cpp.h271
-rw-r--r--thirdparty/glslang/glslang/MachineIndependent/intermOut.cpp13
-rw-r--r--thirdparty/glslang/glslang/MachineIndependent/iomapper.cpp184
-rw-r--r--thirdparty/glslang/glslang/MachineIndependent/iomapper.h43
-rw-r--r--thirdparty/glslang/glslang/MachineIndependent/limits.cpp6
-rw-r--r--thirdparty/glslang/glslang/MachineIndependent/linkValidate.cpp428
-rw-r--r--thirdparty/glslang/glslang/MachineIndependent/localintermediate.h120
-rw-r--r--thirdparty/glslang/glslang/MachineIndependent/parseConst.cpp37
-rw-r--r--thirdparty/glslang/glslang/MachineIndependent/preprocessor/PpScanner.cpp8
-rw-r--r--thirdparty/glslang/glslang/MachineIndependent/reflection.cpp6
-rw-r--r--thirdparty/glslang/glslang/Public/ShaderLang.h32
-rw-r--r--thirdparty/glslang/glslang/build_info.h2
-rw-r--r--thirdparty/misc/easing_equations.cpp319
-rw-r--r--thirdparty/nanosvg/nanosvg.h44
-rw-r--r--thirdparty/volk/volk.c33
-rw-r--r--thirdparty/volk/volk.h29
-rw-r--r--thirdparty/vulkan/include/vulkan/vulkan.hpp6759
-rw-r--r--thirdparty/vulkan/include/vulkan/vulkan_beta.h96
-rw-r--r--thirdparty/vulkan/include/vulkan/vulkan_core.h253
-rw-r--r--thirdparty/vulkan/include/vulkan/vulkan_enums.hpp897
-rw-r--r--thirdparty/vulkan/include/vulkan/vulkan_funcs.hpp1245
-rw-r--r--thirdparty/vulkan/include/vulkan/vulkan_handles.hpp2217
-rw-r--r--thirdparty/vulkan/include/vulkan/vulkan_raii.hpp4854
-rw-r--r--thirdparty/vulkan/include/vulkan/vulkan_structs.hpp3527
-rw-r--r--thirdparty/vulkan/patches/VKEnumStringHelper-use-volk.patch2
-rw-r--r--thirdparty/vulkan/patches/VMA-use-volk.patch8
-rw-r--r--thirdparty/vulkan/vk_enum_string_helper.h126
1219 files changed, 53314 insertions, 30813 deletions
diff --git a/.github/workflows/linux_builds.yml b/.github/workflows/linux_builds.yml
index 54e9ef4c66..8a49959a30 100644
--- a/.github/workflows/linux_builds.yml
+++ b/.github/workflows/linux_builds.yml
@@ -4,7 +4,7 @@ on: [push, pull_request]
# Global Settings
env:
GODOT_BASE_BRANCH: master
- SCONSFLAGS: verbose=yes warnings=extra werror=yes debug_symbols=no module_text_server_fb_enabled=yes
+ SCONSFLAGS: verbose=yes warnings=extra werror=yes module_text_server_fb_enabled=yes
concurrency:
group: ci-${{github.actor}}-${{github.head_ref || github.run_number}}-${{github.ref}}-linux
@@ -23,7 +23,6 @@ jobs:
target: release_debug
tools: true
tests: true
- sconsflags: ""
doc-test: true
bin: "./bin/godot.linuxbsd.opt.tools.64"
artifact: true
@@ -44,7 +43,7 @@ jobs:
target: release
tools: false
tests: false
- sconsflags: module_mono_enabled=yes mono_glue=no
+ sconsflags: module_mono_enabled=yes mono_glue=no debug_symbols=no
artifact: true
steps:
@@ -127,6 +126,11 @@ jobs:
VK_ICD_FILENAMES=$(pwd)/vk_swiftshader_icd.json DRI_PRIME=0 xvfb-run ${{ matrix.bin }} 40 --audio-driver Dummy --path test_project 2>&1 | tee sanitizers_log.txt || true
misc/scripts/check_ci_log.py sanitizers_log.txt
+ - name: Prepare artifact
+ if: ${{ matrix.artifact }}
+ run: |
+ strip bin/godot.*
+
- name: Upload artifact
uses: ./.github/actions/upload-artifact
if: ${{ matrix.artifact }}
diff --git a/.github/workflows/macos_builds.yml b/.github/workflows/macos_builds.yml
index 38d43a4b94..dec3abe52b 100644
--- a/.github/workflows/macos_builds.yml
+++ b/.github/workflows/macos_builds.yml
@@ -4,7 +4,7 @@ on: [push, pull_request]
# Global Settings
env:
GODOT_BASE_BRANCH: master
- SCONSFLAGS: verbose=yes warnings=extra werror=yes debug_symbols=no module_text_server_fb_enabled=yes
+ SCONSFLAGS: verbose=yes warnings=extra werror=yes module_text_server_fb_enabled=yes
concurrency:
group: ci-${{github.actor}}-${{github.head_ref || github.run_number}}-${{github.ref}}-macos
@@ -30,6 +30,7 @@ jobs:
target: release
tools: false
tests: false
+ sconsflags: debug_symbols=no
steps:
- uses: actions/checkout@v2
@@ -58,6 +59,10 @@ jobs:
run: |
${{ matrix.bin }} --test
+ - name: Prepare artifact
+ run: |
+ strip bin/godot.*
+
- name: Upload artifact
uses: ./.github/actions/upload-artifact
with:
diff --git a/.github/workflows/windows_builds.yml b/.github/workflows/windows_builds.yml
index ee689612f5..ad870ae58f 100644
--- a/.github/workflows/windows_builds.yml
+++ b/.github/workflows/windows_builds.yml
@@ -5,7 +5,7 @@ on: [push, pull_request]
# SCONS_CACHE for windows must be set in the build environment
env:
GODOT_BASE_BRANCH: master
- SCONSFLAGS: verbose=yes warnings=all werror=yes debug_symbols=no module_text_server_fb_enabled=yes
+ SCONSFLAGS: verbose=yes warnings=all werror=yes module_text_server_fb_enabled=yes
SCONS_CACHE_MSVC_CONFIG: true
concurrency:
@@ -33,6 +33,7 @@ jobs:
target: release
tools: false
tests: false
+ sconsflags: debug_symbols=no
steps:
- uses: actions/checkout@v2
@@ -50,7 +51,7 @@ jobs:
- name: Compilation
uses: ./.github/actions/godot-build
with:
- sconsflags: ${{ env.SCONSFLAGS }}
+ sconsflags: ${{ env.SCONSFLAGS }} ${{ matrix.sconsflags }}
platform: windows
target: ${{ matrix.target }}
tools: ${{ matrix.tools }}
@@ -63,6 +64,10 @@ jobs:
run: |
${{ matrix.bin }} --test
+ - name: Prepare artifact
+ run: |
+ Remove-Item bin/* -Include *.exp,*.lib,*.pdb -Force
+
- name: Upload artifact
uses: ./.github/actions/upload-artifact
with:
diff --git a/.gitignore b/.gitignore
index 00d87b6bf6..5b3414fe7e 100644
--- a/.gitignore
+++ b/.gitignore
@@ -390,3 +390,6 @@ gcov.css
# https://clangd.llvm.org/ cache folder
.clangd/
.cache/
+
+# Generated by unit tests files
+tests/data/*.translation
diff --git a/.mailmap b/.mailmap
index 28bd3c8e56..d303b81396 100644
--- a/.mailmap
+++ b/.mailmap
@@ -29,6 +29,8 @@ Eric M <itsjusteza@gmail.com>
Eric Rybicki <info@ericrybicki.com> <stratos695@googlemail.com>
Erik Selecký <35656626+rxlecky@users.noreply.github.com>
Erik Selecký <35656626+rxlecky@users.noreply.github.com> <35656626+SeleckyErik@users.noreply.github.com>
+Eveline Jarosz <marqin.pl@gmail.com>
+Eveline Jarosz <marqin.pl@gmail.com> <marqin.pl+git@gmail.com>
Fabian <supagu@gmail.com>
Ferenc Arn <tagcup@yahoo.com>
Ferenc Arn <tagcup@yahoo.com> <tagcup@users.noreply.github.com>
@@ -43,8 +45,6 @@ Guilherme Felipe <guilhermefelipecgs@gmail.com>
Hanif Bin Ariffin <hanif.ariffin.4326@gmail.com>
HaSa1002 <johawitt@outlook.de>
Hein-Pieter van Braam-Stewart <hp@tmm.cx>
-Hubert Jarosz <marqin.pl@gmail.com>
-Hubert Jarosz <marqin.pl@gmail.com> <marqin.pl+git@gmail.com>
Hugo Locurcio <hugo.locurcio@hugo.pro> <hugo.l@openmailbox.org>
Hugo Locurcio <hugo.locurcio@hugo.pro> <Calinou@users.noreply.github.com>
Hugo Locurcio <hugo.locurcio@hugo.pro> Calinou <calinou@opmbx.org>
@@ -107,6 +107,7 @@ Pieter-Jan Briers <pieterjan.briers+git@gmail.com>
Pieter-Jan Briers <pieterjan.briers+git@gmail.com> <pieterjan.briers@gmail.com>
Poommetee Ketson <poommetee@protonmail.com>
Przemysław Gołąb (n-pigeon) <golab.przemyslaw@gmail.com>
+Rafał Mikrut <mikrutrafal@protonmail.com>
Rafał Mikrut <mikrutrafal@protonmail.com> <mikrutrafal54@gmail.com>
Ralf Hölzemer <r.hoelzemer@posteo.de> <rollenrolm@posteo.de>
Ralf Hölzemer <r.hoelzemer@posteo.de> <rollenrolm@users.noreply.github.com>
@@ -116,6 +117,7 @@ RaphaelHunter <raphael10241024@gmail.com> <Raphael10241024@gmail.com>
RaphaelHunter <raphael10241024@gmail.com> <raphael20141024@gmail.com>
Rémi Verschelde <rverschelde@gmail.com> <remi@verschelde.fr>
Rhody Lugo <rhodylugo@gmail.com> <rhodylugo@me.com>
+Ricardo Subtil <ricasubtil@gmail.com>
Robin Hübner <profan@prfn.se> <robinhubner@gmail.com>
romulox_x <romulox_x@yahoo.com>
Ruslan Mustakov <r.mustakov@gmail.com> <ruslan.mustakov@xored.com>
diff --git a/AUTHORS.md b/AUTHORS.md
index 5147da3700..0a0e3a9c21 100644
--- a/AUTHORS.md
+++ b/AUTHORS.md
@@ -36,6 +36,7 @@ name is available.
Andrii Doroshenko (Xrayez)
Andy Moss (MillionOstrich)
Angad Kambli (angad-k)
+ Anilforextra (AnilBK)
Anish Bhobe (KidRigger)
Anton Yabchinskiy (a12n)
Anutrix
@@ -76,6 +77,7 @@ name is available.
Eric Rybicki (ericrybick)
Erik Selecký (rxlecky)
est31
+ Eveline Jarosz (Marqin)
Fabian Mathews (supagu)
Fabio Alessandrelli (Faless)
fabriceci
@@ -99,7 +101,6 @@ name is available.
Hiroshi Ogawa (hi-ogawa)
homer666
hoontee
- Hubert Jarosz (Marqin)
Hugo Locurcio (Calinou)
Ian Bishop (ianb96)
Ibrahn Sahir (ibrahn)
@@ -109,9 +110,9 @@ name is available.
J08nY
Jakub Grzesik (kubecz3k)
James Buck (jbuck3)
+ Jean-Michel Bernard (jmb462)
Jérôme Gully (Nutriz)
Jia Jun Chai (SkyLucilfer)
- jmb462
Joan Fons Sanchez (JFonS)
Johannes Witt (HaSa1002)
Johan Manuel (29jm)
@@ -119,6 +120,7 @@ name is available.
Juan Linietsky (reduz)
Julian Murgia (StraToN)
Julien Nguyen (Blackiris)
+ Jummit
Justo Delgado (mrcdk)
Kelly Thomas (KellyThomas)
kleonc
@@ -137,7 +139,7 @@ name is available.
Marc Gilleron (Zylann)
Marcin Zawiejski (dragmz)
Marcus Brummer (mbrlabs)
- Marcus (MCrafterzz)
+ Marcus Elg (MCrafterzz)
Mariano Javier Suligoy (MarianoGnu)
Mario Schlack (hurikhan)
Martin Capitanio (capnm)
diff --git a/COPYRIGHT.txt b/COPYRIGHT.txt
index da60213038..e84302620e 100644
--- a/COPYRIGHT.txt
+++ b/COPYRIGHT.txt
@@ -80,6 +80,13 @@ Copyright: 2008-2016, The Android Open Source Project
2002, Google, Inc.
License: Apache-2.0
+Files: ./scene/animation/easing_equations.h
+Comment: Robert Penner's Easing Functions
+Copyright: 2001, Robert Penner
+ 2007-2021 Juan Linietsky, Ariel Manzur.
+ 2014-2021 Godot Engine contributors.
+License: Expat
+
Files: ./servers/physics_3d/collision_solver_3d_sat.cpp
Comment: Open Dynamics Engine
Copyright: 2001-2003, Russell L. Smith, Alen Ladavac, Nguyen Binh
@@ -307,11 +314,6 @@ Comment: Fast Filtering of Reflection Probes
Copyright: 2016, Activision Publishing, Inc.
License: Expat
-Files: ./thirdparty/misc/easing_equations.cpp
-Comment: Robert Penner's Easing Functions
-Copyright: 2001, Robert Penner
-License: BSD-3-clause
-
Files: ./thirdparty/misc/fastlz.c
./thirdparty/misc/fastlz.h
Comment: FastLZ
diff --git a/DONORS.md b/DONORS.md
index 1a49465e83..c1e034f67e 100644
--- a/DONORS.md
+++ b/DONORS.md
@@ -23,7 +23,6 @@ generous deed immortalized in the next stable release of Godot Engine.
## Silver sponsors
ASIFA-Hollywood <https://www.asifa-hollywood.org>
- LITSLINK <https://litslink.com>
## Bronze sponsors
@@ -41,6 +40,7 @@ generous deed immortalized in the next stable release of Godot Engine.
AD Ford
alex brown
+ Andrew Bowen
Andrew Dunai
Angry Skull
anti666
@@ -65,7 +65,6 @@ generous deed immortalized in the next stable release of Godot Engine.
Jonah Stich
Justin Arnold
Justo Delgado Baudí
- Kamil Brzezinskip
Marcel Kräml
Marek Belski
Matthieu Huvé
@@ -93,24 +92,26 @@ generous deed immortalized in the next stable release of Godot Engine.
Acheron
Adam Brown
albinaask
- Alvaro A Baena R
Andres Hernandez
+ Arisaka Mayuki
Asher Glick
Barugon
+ Benito
Carlo Cabanilla
Daniel James
David Gehrig
David Graham
David Snopek
- Don B
Ed Morley
Ellen Poe
Florian Rämisch
Gamejunkey
+ Jacobus Dens
Jakub Grzesik
Javier Roman
Joan Fons
Johnny IV Young
+ Jonathan Wright
Jon Woodward
Karl Werf
Klavdij Voncina
@@ -119,13 +120,14 @@ generous deed immortalized in the next stable release of Godot Engine.
Maciej Pendolski
Manuele Finocchiaro
Markus Wiesner
- Mason Bially
Matthew Hillier
Michael
+ Mick
Monster Vial
Officine Pixel S.n.c.
+ Patrick Brock
+ Pedro Silva
Petrus Prinsloo
- Rene
Retro Village
Rob Messick
Roland Fredenhagen
@@ -133,8 +135,10 @@ generous deed immortalized in the next stable release of Godot Engine.
Sarksus
Scott B
Sean
+ segfault-god
Sergey
Sofox
+ Stephan Kessler
Stephen Molyneaux
Taylor Ritenour
Tom Langwaldt
@@ -142,22 +146,21 @@ generous deed immortalized in the next stable release of Godot Engine.
tukon
Vagabond Arcade
Vitaliy Sapronenko
- William Wold
Xeno Coliseum
Zaven Muradyan
Adam Nakonieczny
+ Adam Nelson
+ Alexander Erlemann
Alexander J Maynard
- Alex de la Mare
- Alexey Dyadchenko
Alex Khayrullin
alice gambrell
Andrew Cunningham
Andrew Farr
+ Andriy
Antanas Paskauskas
Antoni Batchelli
Arch Henderson III
- Arisaka Mayuki
Arthur S. Muszynski
Ben Botwin
Brandon Hawkinson
@@ -181,11 +184,8 @@ generous deed immortalized in the next stable release of Godot Engine.
Daniel Tebbutt
Darrian Little
Dennis Belfrage
- Dev To be curious
- Digital Denizen
Dimitri Nüscheler
Donn Eddy
- Easypete
Edgar Sun
Eric
Eric Brand
@@ -200,6 +200,7 @@ generous deed immortalized in the next stable release of Godot Engine.
General Chicken
Geoffroy Warin
GGGames.org
+ gisora
GrayDwarf
Guilherme Felipe de C. G. da Silva
Harvey Fong
@@ -210,22 +211,22 @@ generous deed immortalized in the next stable release of Godot Engine.
Hunter Barabas
Jake Burga
James Couzens
+ James Zahn
Jan Sælid
Jared
Jared White
- Jeppe Zapp
+ Jennifer Wilcox
Jesús Chicharro
Joel Fivat
Johnathan Kupferer
- John Knight
Jonathan Turner
+ Josef Stumpfegger
Jose Malheiro
Jose Manuel Muñoz Perez
Joseph Crane
Joshie Sparks
Joshua Flores
Joshua Lesperance
- Juan T Chen
Juan Velandia
Judd
Julián Absatz
@@ -237,13 +238,13 @@ generous deed immortalized in the next stable release of Godot Engine.
kinfox
Kis Levente Lorand
Kos
- Lain Ballard
Laszlo Kiss
leetNightshade
Leo Fidel R Liban
Liam Smyth
LoparPanda
Luca Vazzano
+ Luke
MadScientistCarl
Marcus Dobler
Marcus Richter
@@ -253,6 +254,7 @@ generous deed immortalized in the next stable release of Godot Engine.
Martin Soucek
matt
Matt Greene
+ Matthew Hall
Matthias Toepp
Mecha Kaiju X
medecau
@@ -264,27 +266,24 @@ generous deed immortalized in the next stable release of Godot Engine.
MikadoSC
Mike Barbee
minz1
- MuffinManKen
nate etan
Nick Abousselam
+ Nicola Cocchiaro
Nicole Barovic
+ Nikita Bliznyuk
Oliver Dick
Oscar Campos
- Patrick Ting
Paul Hocker
Paul Von Zimmerman
Pavel Kotlyar
- Pedro Silva
Pete Goodwin
- Peter Richmond
Petr Malac
PhaineOfCatz
- pl
+ Piotr Wyszyński
+ Pyxl
Raymond Harris
- Renato Fontes
Rene Tailleur
Rhodochrone
- Ricardo Alcantara
Rob
Robert McDermott
Robert Willes
@@ -295,6 +294,7 @@ generous deed immortalized in the next stable release of Godot Engine.
Ronnie Ashlock
Ronny Mühle
Ryan Scott
+ Samuel Hummerstone
Samuel Judd
Samuel Smart
Sean Morgan
@@ -304,6 +304,7 @@ generous deed immortalized in the next stable release of Godot Engine.
Sergey Fonaryov
Sergey Minakov
Shishir Tandale
+ Sing Chun Lee
SKison
Song Junwoo
spacechase0
@@ -316,6 +317,7 @@ generous deed immortalized in the next stable release of Godot Engine.
Thomas Kurz
Tim Howard
Tobias Bocanegra
+ Tobias Raggl
Todd Smith
Torbulous
toto bibi
@@ -333,37 +335,36 @@ generous deed immortalized in the next stable release of Godot Engine.
Yifan Lai
Yuancheng Zhang
Zie Weaver
- Zoran Kukulj
## Silver donors
1D_Inc
Aaron Oldenburg
+ A. B.
Actual_Dio
Adam Brunnmeier
Adam Carr
Adam Long
Adam McCurdy
Adam N Webber
+ Adam R Pope
Adam Smeltzer
Adam Szymański
Adisibio
Adrien de Pierres
- Agar3s - Giovanny Beltrán
Ahmet Kalyoncu
Aidan O'Flannagain
Aki Mimoto
Alan Beauchamp
+ Alberto Salazar Muñoz
Alberto Vilches
Albin Jonasson Svärdsby
Alder Stefano
AleMax
+ Ales Jelovcan
Alessandro Senese
- Alexander Erlemann
Alexander Ravenheart
- Alexander Ryndin
Alexander Walter (SilvanuZ)
- Alexandre Beaudoin
Alex Chan
Alex Clavelle
alex raeside
@@ -379,6 +380,7 @@ generous deed immortalized in the next stable release of Godot Engine.
Ano Nim
Anthony Avina
Anton Bouwer
+ Antti Vesanen
Arch Toasty
Arda Erol
Armin Preiml
@@ -394,14 +396,17 @@ generous deed immortalized in the next stable release of Godot Engine.
Bartosz Bielecki
Benedikt
Benoit Jauvin-Girard
+ Ben Ridley
Ben Vercammen
Bernd Jänichen
Bernhard Werner
Bill Thibault
+ bitbrain
Bjarne Voigtländer
Black Block
blackjacksike
Blair Allen
+ Blunderjack
Bobby CC Wong
Borkzilla
Bram
@@ -409,19 +414,19 @@ generous deed immortalized in the next stable release of Godot Engine.
Brian Klein
Brodie Fairhall
Bronson Zgeb
- Bùi Việt Thành
+ Bruno Hurth
Burney Waring
bwhirt
Caleb Gartner
Caleb Makela
Cameron Meyer
Carlos Cejudo
+ Carlos Rios
Carl van der Geest
Casey
Cassidy James
Cédric Givord
Chad Steadman
- Charles Alston
Chris Chapin
Chris Langford
Christian Clavet
@@ -447,13 +452,16 @@ generous deed immortalized in the next stable release of Godot Engine.
David Bôle
David May
David Maziarka
+ David Rapisarda
deadwithbread
Devin Carraway
Diego Pereira
Dima Fedotov
+ Dimitri Roche
Dmitry Fisher
Dmytro Korchynskyi
Dominik Wetzel
+ Don B
Douglas Plumley
Dragontrapper
Dr Ewan Murray
@@ -473,12 +481,12 @@ generous deed immortalized in the next stable release of Godot Engine.
Eric Walkingshaw
Eric Williams
Erkki Seppälä
- Evan Rose
Faisal Alkubaisi
Fancy Ants Studios
fby
Fekinox
Felix Bohmann
+ Filip Lundby
Forty Doubleu
Francisco Garcia Florez
Francois Holland
@@ -489,6 +497,7 @@ generous deed immortalized in the next stable release of Godot Engine.
George Marques
Georgi Petkov
Graham Overby
+ Green Fox
Greg Lincoln
Greg Olson
Greyson Richey
@@ -503,7 +512,6 @@ generous deed immortalized in the next stable release of Godot Engine.
Hunter Jones
Ian ORourke
Ian Williams
- Iiari
IndustrialRobot
Ivan Nikolaev
iveks
@@ -515,6 +523,7 @@ generous deed immortalized in the next stable release of Godot Engine.
Jako Danar
James
James A F Manley
+ James Gary
James Guardino
James Quincy
James Thomas
@@ -546,7 +555,6 @@ generous deed immortalized in the next stable release of Godot Engine.
Jonatan R
Jonathan Bieber
Jonathan G
- Jonathan Wright
Jon Bonazza
Jon Sully
Jordan West
@@ -565,9 +573,9 @@ generous deed immortalized in the next stable release of Godot Engine.
Julian Murgia
June Little
Justin Hamilton
+ Justin Hurst
Justin Oaksford
Justin Spedding
- Justin W. Flory
KaDokta
Karol Porzycki
Keedong Park
@@ -575,7 +583,6 @@ generous deed immortalized in the next stable release of Godot Engine.
Keith Bradner
Kenji Kawabata
Ken Minardo
- Kenneth Lee
Kent Jofur
Ketafuki
Kevin van Rooijen
@@ -585,6 +592,7 @@ generous deed immortalized in the next stable release of Godot Engine.
Kolandrious
Konstantin Goncharov
kormai
+ Kquona
Krishna Nadoor
Kristian Nygaard Jensen
KR McGinley
@@ -596,7 +604,6 @@ generous deed immortalized in the next stable release of Godot Engine.
Kyuppin
Lasse le Dous
Laurent CHEA
- Laurent Tréguier
Laxman Pradhan
LEMMiNO
Leonardo Dimano
@@ -614,11 +621,12 @@ generous deed immortalized in the next stable release of Godot Engine.
Mark Malone
Markus Martin
Markus Michael Egger
+ Markus Ort
Martin FIbik
Martin Holas
Martin Liška
Martin Trbola
- Marvin
+ Martin Zabinski
Mathieu
Matt Edwards
Matthew Booe
@@ -642,6 +650,7 @@ generous deed immortalized in the next stable release of Godot Engine.
Mike
Mike Birkhead
Mike Copley
+ Mitchell
Mitchell J. Wagner
MJacred
ModularMind
@@ -666,25 +675,21 @@ generous deed immortalized in the next stable release of Godot Engine.
Nicolas Goll-Perrier
Nicolas Rosset
Nicolas SAN AGUSTIN
+ Nils Nordmark
Nima Farid
Noel Billig
- Nuno Dionísio
NZ
oceoh
Okatima
Oleg Reva
- Omar Delarosa
- Orfist
Oriol Muñoz Princep
oscar1000108
Oscar Domingo
Pascal
- Patrick Brock
Patrick Nafarrete
Paul Gieske
Paweł Kowal
PaweÅ‚ Åyczkowski
- p_brighenti
Peter Höglund
Philip Cohoe
Philip Ludington (MrPhil)
@@ -695,43 +700,44 @@ generous deed immortalized in the next stable release of Godot Engine.
pwab
RabidTunes
Rackat
+ RackBar Dingum
Rad Cat
Rafa Laguna
Raffaele Aramo
Rainer Amler
Rami Hanano
Rammeow
- RAMupgrade
Remi Rampin
Reneator
+ René Habermann
Riccardo Marini
Richard Hayes
Richard Ivánek
Richard Néveri
Riley
- Robert Farr (Larington)
Rob Ruana
Rodrigo Loli
Roger Smith
+ Roglozor
Roland RzÄ…sa
Roman Tinkov
Ronald Ho Hip (CrimsonZA)
Ronan
- Ross Squires
Roy Scayged
+ Ryan
Ryan Groom
Sam Caulfield
Sam Edson
Scott Longley
Sean Lynch
Sebastian Michailidis
- segfault-god
SeongWan Kim
SeungJong k
Shaidak
Shane
Shane Sicienski
Shane Spoor
+ Silver1063
simdee
Simon Jonas Larsen
Simon Schoenenberger
@@ -741,10 +747,12 @@ generous deed immortalized in the next stable release of Godot Engine.
smbe19
smo1704
Solene Waked
+ Sophie Winter
Spencer Everhart
Squirrel
Stéphane Roussel
Steve Cloete
+ Steven Drovie
summerblind
Sung soo Choi
Svenne Krap
@@ -753,6 +761,7 @@ generous deed immortalized in the next stable release of Godot Engine.
Tarch
Terry
the9thdude
+ The Domis4
Theodore Lindsey
TheVoiceInMyHead
thomas
@@ -790,6 +799,7 @@ generous deed immortalized in the next stable release of Godot Engine.
Vi Watch
Vladimir Savin
Vladislav Smirnov
+ VoxelVisions.com
Vytenis Narušis
werner mendizabal
Wiley Thompson
diff --git a/SConstruct b/SConstruct
index b6c98eea77..b539dc59b7 100644
--- a/SConstruct
+++ b/SConstruct
@@ -91,6 +91,7 @@ env_base.__class__.add_program = methods.add_program
env_base.__class__.CommandNoCache = methods.CommandNoCache
env_base.__class__.Run = methods.Run
env_base.__class__.disable_warnings = methods.disable_warnings
+env_base.__class__.force_optimization_on_debug = methods.force_optimization_on_debug
env_base.__class__.module_check_dependencies = methods.module_check_dependencies
env_base["x86_libtheora_opt_gcc"] = False
diff --git a/core/core_bind.cpp b/core/core_bind.cpp
index e029b85450..1f028702f6 100644
--- a/core/core_bind.cpp
+++ b/core/core_bind.cpp
@@ -1786,13 +1786,13 @@ void Thread::_start_func(void *ud) {
// We must check if we are in case b).
int target_param_count = 0;
int target_default_arg_count = 0;
- Ref<Script> script = t->target_instance->get_script();
+ Ref<Script> script = t->target_callable.get_object()->get_script();
if (script.is_valid()) {
- MethodInfo mi = script->get_method_info(t->target_method);
+ MethodInfo mi = script->get_method_info(t->target_callable.get_method());
target_param_count = mi.arguments.size();
target_default_arg_count = mi.default_arguments.size();
} else {
- MethodBind *method = ClassDB::get_method(t->target_instance->get_class_name(), t->target_method);
+ MethodBind *method = ClassDB::get_method(t->target_callable.get_object()->get_class_name(), t->target_callable.get_method());
target_param_count = method->get_argument_count();
target_default_arg_count = method->get_default_argument_count();
}
@@ -1801,41 +1801,21 @@ void Thread::_start_func(void *ud) {
}
}
- ::Thread::set_name(t->target_method);
+ ::Thread::set_name(t->target_callable.get_method());
- t->ret = t->target_instance->call(t->target_method, arg, argc, ce);
+ t->target_callable.call(arg, argc, t->ret, ce);
if (ce.error != Callable::CallError::CALL_OK) {
- String reason;
- switch (ce.error) {
- case Callable::CallError::CALL_ERROR_INVALID_ARGUMENT: {
- reason = "Invalid Argument #" + itos(ce.argument);
- } break;
- case Callable::CallError::CALL_ERROR_TOO_MANY_ARGUMENTS: {
- reason = "Too Many Arguments";
- } break;
- case Callable::CallError::CALL_ERROR_TOO_FEW_ARGUMENTS: {
- reason = "Too Few Arguments";
- } break;
- case Callable::CallError::CALL_ERROR_INVALID_METHOD: {
- reason = "Method Not Found";
- } break;
- default: {
- }
- }
-
- ERR_FAIL_MSG("Could not call function '" + t->target_method.operator String() + "' to start thread " + t->get_id() + ": " + reason + ".");
+ ERR_FAIL_MSG("Could not call function '" + t->target_callable.get_method().operator String() + "' to start thread " + t->get_id() + ": " + Variant::get_callable_error_text(t->target_callable, arg, argc, ce) + ".");
}
}
-Error Thread::start(Object *p_instance, const StringName &p_method, const Variant &p_userdata, Priority p_priority) {
+Error Thread::start(const Callable &p_callable, const Variant &p_userdata, Priority p_priority) {
ERR_FAIL_COND_V_MSG(active.is_set(), ERR_ALREADY_IN_USE, "Thread already started.");
- ERR_FAIL_COND_V(!p_instance, ERR_INVALID_PARAMETER);
- ERR_FAIL_COND_V(p_method == StringName(), ERR_INVALID_PARAMETER);
+ ERR_FAIL_COND_V(p_callable.is_null(), ERR_INVALID_PARAMETER);
ERR_FAIL_INDEX_V(p_priority, PRIORITY_MAX, ERR_INVALID_PARAMETER);
ret = Variant();
- target_method = p_method;
- target_instance = p_instance;
+ target_callable = p_callable;
userdata = p_userdata;
active.set();
@@ -1861,15 +1841,14 @@ Variant Thread::wait_to_finish() {
thread.wait_to_finish();
Variant r = ret;
active.clear();
- target_method = StringName();
- target_instance = nullptr;
+ target_callable = Callable();
userdata = Variant();
return r;
}
void Thread::_bind_methods() {
- ClassDB::bind_method(D_METHOD("start", "instance", "method", "userdata", "priority"), &Thread::start, DEFVAL(Variant()), DEFVAL(PRIORITY_NORMAL));
+ ClassDB::bind_method(D_METHOD("start", "callable", "userdata", "priority"), &Thread::start, DEFVAL(Variant()), DEFVAL(PRIORITY_NORMAL));
ClassDB::bind_method(D_METHOD("get_id"), &Thread::get_id);
ClassDB::bind_method(D_METHOD("is_active"), &Thread::is_active);
ClassDB::bind_method(D_METHOD("wait_to_finish"), &Thread::wait_to_finish);
@@ -2221,7 +2200,7 @@ Object *Engine::get_singleton_object(const StringName &p_name) const {
void Engine::register_singleton(const StringName &p_name, Object *p_object) {
ERR_FAIL_COND_MSG(has_singleton(p_name), "Singleton already registered: " + String(p_name));
- ERR_FAIL_COND_MSG(p_name.operator String().is_valid_identifier(), "Singleton name is not a valid identifier: " + String(p_name));
+ ERR_FAIL_COND_MSG(!String(p_name).is_valid_identifier(), "Singleton name is not a valid identifier: " + p_name);
::Engine::Singleton s;
s.class_name = p_name;
s.name = p_name;
@@ -2297,13 +2276,11 @@ void Engine::_bind_methods() {
ClassDB::bind_method(D_METHOD("unregister_singleton", "name"), &Engine::unregister_singleton);
ClassDB::bind_method(D_METHOD("get_singleton_list"), &Engine::get_singleton_list);
- ClassDB::bind_method(D_METHOD("set_editor_hint", "enabled"), &Engine::set_editor_hint);
ClassDB::bind_method(D_METHOD("is_editor_hint"), &Engine::is_editor_hint);
ClassDB::bind_method(D_METHOD("set_print_error_messages", "enabled"), &Engine::set_print_error_messages);
ClassDB::bind_method(D_METHOD("is_printing_error_messages"), &Engine::is_printing_error_messages);
- ADD_PROPERTY(PropertyInfo(Variant::BOOL, "editor_hint"), "set_editor_hint", "is_editor_hint");
ADD_PROPERTY(PropertyInfo(Variant::BOOL, "print_error_messages"), "set_print_error_messages", "is_printing_error_messages");
ADD_PROPERTY(PropertyInfo(Variant::INT, "physics_ticks_per_second"), "set_physics_ticks_per_second", "get_physics_ticks_per_second");
ADD_PROPERTY(PropertyInfo(Variant::INT, "target_fps"), "set_target_fps", "get_target_fps");
diff --git a/core/core_bind.h b/core/core_bind.h
index a5d5a7c8ce..84a284f948 100644
--- a/core/core_bind.h
+++ b/core/core_bind.h
@@ -539,8 +539,7 @@ protected:
Variant ret;
Variant userdata;
SafeFlag active;
- Object *target_instance = nullptr;
- StringName target_method;
+ Callable target_callable;
::Thread thread;
static void _bind_methods();
static void _start_func(void *ud);
@@ -553,7 +552,7 @@ public:
PRIORITY_MAX
};
- Error start(Object *p_instance, const StringName &p_method, const Variant &p_userdata = Variant(), Priority p_priority = PRIORITY_NORMAL);
+ Error start(const Callable &p_callable, const Variant &p_userdata = Variant(), Priority p_priority = PRIORITY_NORMAL);
String get_id() const;
bool is_active() const;
Variant wait_to_finish();
diff --git a/core/extension/gdnative_interface.cpp b/core/extension/gdnative_interface.cpp
index b41f74a4bc..ff09b0b86c 100644
--- a/core/extension/gdnative_interface.cpp
+++ b/core/extension/gdnative_interface.cpp
@@ -854,14 +854,21 @@ static GDNativeMethodBindPtr gdnative_classdb_get_method_bind(const char *p_clas
return (GDNativeMethodBindPtr)mb;
}
-static GDNativeClassConstructor gdnative_classdb_get_constructor(const char *p_classname) {
+static GDNativeClassConstructor gdnative_classdb_get_constructor(const char *p_classname, GDNativeExtensionPtr *r_extension) {
ClassDB::ClassInfo *class_info = ClassDB::classes.getptr(StringName(p_classname));
if (class_info) {
+ if (r_extension) {
+ *r_extension = class_info->native_extension;
+ }
return (GDNativeClassConstructor)class_info->creation_func;
}
return nullptr;
}
+static GDNativeObjectPtr gdnative_classdb_construct_object(GDNativeClassConstructor p_constructor, GDNativeExtensionPtr p_extension) {
+ return (GDNativeObjectPtr)ClassDB::construct_object((Object * (*)()) p_constructor, (ObjectNativeExtension *)p_extension);
+}
+
static void *gdnative_classdb_get_class_tag(const char *p_classname) {
ClassDB::ClassInfo *class_info = ClassDB::classes.getptr(p_classname);
return class_info ? class_info->class_ptr : nullptr;
@@ -1010,6 +1017,7 @@ void gdnative_setup_interface(GDNativeInterface *p_interface) {
/* CLASSDB */
gdni.classdb_get_constructor = gdnative_classdb_get_constructor;
+ gdni.classdb_construct_object = gdnative_classdb_construct_object;
gdni.classdb_get_method_bind = gdnative_classdb_get_method_bind;
gdni.classdb_get_class_tag = gdnative_classdb_get_class_tag;
diff --git a/core/extension/gdnative_interface.h b/core/extension/gdnative_interface.h
index df735db9b6..73f78bde54 100644
--- a/core/extension/gdnative_interface.h
+++ b/core/extension/gdnative_interface.h
@@ -137,6 +137,7 @@ typedef void *GDNativeStringNamePtr;
typedef void *GDNativeStringPtr;
typedef void *GDNativeObjectPtr;
typedef void *GDNativeTypePtr;
+typedef void *GDNativeExtensionPtr;
typedef void *GDNativeMethodBindPtr;
typedef int64_t GDNativeInt;
typedef uint8_t GDNativeBool;
@@ -431,7 +432,8 @@ typedef struct {
/* CLASSDB */
- GDNativeClassConstructor (*classdb_get_constructor)(const char *p_classname);
+ GDNativeClassConstructor (*classdb_get_constructor)(const char *p_classname, GDNativeExtensionPtr *r_extension);
+ GDNativeObjectPtr (*classdb_construct_object)(GDNativeClassConstructor p_constructor, GDNativeExtensionPtr p_extension);
GDNativeMethodBindPtr (*classdb_get_method_bind)(const char *p_classname, const char *p_methodname, GDNativeInt p_hash);
void *(*classdb_get_class_tag)(const char *p_classname);
diff --git a/core/input/input_event.cpp b/core/input/input_event.cpp
index 50b2099236..1d2b5f19ee 100644
--- a/core/input/input_event.cpp
+++ b/core/input/input_event.cpp
@@ -864,6 +864,8 @@ void InputEventMouseMotion::_bind_methods() {
///////////////////////////////////
void InputEventJoypadMotion::set_axis(JoyAxis p_axis) {
+ ERR_FAIL_INDEX(p_axis, JOY_AXIS_MAX);
+
axis = p_axis;
emit_changed();
}
@@ -1557,9 +1559,13 @@ bool InputEventShortcut::is_pressed() const {
}
String InputEventShortcut::as_text() const {
+ ERR_FAIL_COND_V(shortcut.is_null(), "None");
+
return vformat(RTR("Input Event with Shortcut=%s"), shortcut->get_as_text());
}
String InputEventShortcut::to_string() {
+ ERR_FAIL_COND_V(shortcut.is_null(), "None");
+
return vformat("InputEventShortcut: shortcut=%s", shortcut->get_as_text());
}
diff --git a/core/input/input_map.cpp b/core/input/input_map.cpp
index c6db7be53a..1ec4299093 100644
--- a/core/input/input_map.cpp
+++ b/core/input/input_map.cpp
@@ -33,6 +33,7 @@
#include "core/config/project_settings.h"
#include "core/input/input.h"
#include "core/os/keyboard.h"
+#include "core/os/os.h"
InputMap *InputMap::singleton = nullptr;
@@ -466,7 +467,7 @@ const OrderedHashMap<String, List<Ref<InputEvent>>> &InputMap::get_builtins() {
// ///// UI Text Input Shortcuts /////
inputs = List<Ref<InputEvent>>();
- inputs.push_back(InputEventKey::create_reference(KEY_SPACE | KEY_MASK_CMD));
+ inputs.push_back(InputEventKey::create_reference(KEY_SPACE | KEY_MASK_CTRL));
default_builtin_cache.insert("ui_text_completion_query", inputs);
inputs = List<Ref<InputEvent>>();
@@ -699,34 +700,57 @@ const OrderedHashMap<String, List<Ref<InputEvent>>> &InputMap::get_builtins() {
return default_builtin_cache;
}
-void InputMap::load_default() {
+const OrderedHashMap<String, List<Ref<InputEvent>>> &InputMap::get_builtins_with_feature_overrides_applied() {
+ if (default_builtin_with_overrides_cache.size() > 0) {
+ return default_builtin_with_overrides_cache;
+ }
+
OrderedHashMap<String, List<Ref<InputEvent>>> builtins = get_builtins();
- // List of Builtins which have an override for macOS.
- Vector<String> macos_builtins;
+ // Get a list of all built in inputs which are valid overrides for the OS
+ // Key = builtin name (e.g. ui_accept)
+ // Value = override/feature names (e.g. macos, if it was defined as "ui_accept.macos" and the platform supports that feature)
+ Map<String, Vector<String>> builtins_with_overrides;
for (OrderedHashMap<String, List<Ref<InputEvent>>>::Element E = builtins.front(); E; E = E.next()) {
- if (String(E.key()).ends_with(".macos")) {
- // Strip .macos from name: some_input_name.macos -> some_input_name
- macos_builtins.push_back(String(E.key()).split(".")[0]);
+ String fullname = E.key();
+
+ Vector<String> split = fullname.split(".");
+ String name = split[0];
+ String override_for = split.size() > 1 ? split[1] : String();
+
+ if (override_for != String() && OS::get_singleton()->has_feature(override_for)) {
+ builtins_with_overrides[name].push_back(override_for);
}
}
for (OrderedHashMap<String, List<Ref<InputEvent>>>::Element E = builtins.front(); E; E = E.next()) {
String fullname = E.key();
- String name = fullname.split(".")[0];
- String override_for = fullname.split(".").size() > 1 ? fullname.split(".")[1] : "";
-#ifdef APPLE_STYLE_KEYS
- if (macos_builtins.has(name) && override_for != "macos") {
- // Name has `macos` builtin but this particular one is for non-macOS systems - so skip.
+ Vector<String> split = fullname.split(".");
+ String name = split[0];
+ String override_for = split.size() > 1 ? split[1] : String();
+
+ if (builtins_with_overrides.has(name) && override_for == String()) {
+ // Builtin has an override but this particular one is not an override, so skip.
continue;
}
-#else
- if (override_for == "macos") {
- // Override for macOS - not needed on non-macOS platforms.
+
+ if (override_for != String() && !OS::get_singleton()->has_feature(override_for)) {
+ // OS does not support this override - skip.
continue;
}
-#endif
+
+ default_builtin_with_overrides_cache.insert(name, E.value());
+ }
+
+ return default_builtin_with_overrides_cache;
+}
+
+void InputMap::load_default() {
+ OrderedHashMap<String, List<Ref<InputEvent>>> builtins = get_builtins_with_feature_overrides_applied();
+
+ for (OrderedHashMap<String, List<Ref<InputEvent>>>::Element E = builtins.front(); E; E = E.next()) {
+ String name = E.key();
add_action(name);
diff --git a/core/input/input_map.h b/core/input/input_map.h
index c724fdb142..8bef722089 100644
--- a/core/input/input_map.h
+++ b/core/input/input_map.h
@@ -56,6 +56,7 @@ private:
mutable OrderedHashMap<StringName, Action> input_map;
OrderedHashMap<String, List<Ref<InputEvent>>> default_builtin_cache;
+ OrderedHashMap<String, List<Ref<InputEvent>>> default_builtin_with_overrides_cache;
List<Ref<InputEvent>>::Element *_find_event(Action &p_action, const Ref<InputEvent> &p_event, bool p_exact_match = false, bool *p_pressed = nullptr, float *p_strength = nullptr, float *p_raw_strength = nullptr) const;
@@ -93,6 +94,7 @@ public:
String get_builtin_display_name(const String &p_name) const;
// Use an Ordered Map so insertion order is preserved. We want the elements to be 'grouped' somewhat.
const OrderedHashMap<String, List<Ref<InputEvent>>> &get_builtins();
+ const OrderedHashMap<String, List<Ref<InputEvent>>> &get_builtins_with_feature_overrides_applied();
InputMap();
~InputMap();
diff --git a/core/io/image.cpp b/core/io/image.cpp
index 3112dd217f..c70f4b86bd 100644
--- a/core/io/image.cpp
+++ b/core/io/image.cpp
@@ -2506,7 +2506,7 @@ void Image::blit_rect(const Ref<Image> &p_src, const Rect2 &p_src_rect, const Po
clipped_src_rect.position.y = ABS(p_dest.y);
}
- if (clipped_src_rect.size.x <= 0 || clipped_src_rect.size.y <= 0) {
+ if (clipped_src_rect.has_no_area()) {
return;
}
@@ -2561,7 +2561,7 @@ void Image::blit_rect_mask(const Ref<Image> &p_src, const Ref<Image> &p_mask, co
clipped_src_rect.position.y = ABS(p_dest.y);
}
- if (clipped_src_rect.size.x <= 0 || clipped_src_rect.size.y <= 0) {
+ if (clipped_src_rect.has_no_area()) {
return;
}
@@ -2615,7 +2615,7 @@ void Image::blend_rect(const Ref<Image> &p_src, const Rect2 &p_src_rect, const P
clipped_src_rect.position.y = ABS(p_dest.y);
}
- if (clipped_src_rect.size.x <= 0 || clipped_src_rect.size.y <= 0) {
+ if (clipped_src_rect.has_no_area()) {
return;
}
@@ -2664,7 +2664,7 @@ void Image::blend_rect_mask(const Ref<Image> &p_src, const Ref<Image> &p_mask, c
clipped_src_rect.position.y = ABS(p_dest.y);
}
- if (clipped_src_rect.size.x <= 0 || clipped_src_rect.size.y <= 0) {
+ if (clipped_src_rect.has_no_area()) {
return;
}
diff --git a/core/io/packet_peer.cpp b/core/io/packet_peer.cpp
index 8da44fd290..87d2b66e5b 100644
--- a/core/io/packet_peer.cpp
+++ b/core/io/packet_peer.cpp
@@ -138,6 +138,7 @@ Error PacketPeer::_get_packet_error() const {
void PacketPeer::_bind_methods() {
ClassDB::bind_method(D_METHOD("get_var", "allow_objects"), &PacketPeer::_bnd_get_var, DEFVAL(false));
ClassDB::bind_method(D_METHOD("put_var", "var", "full_objects"), &PacketPeer::put_var, DEFVAL(false));
+
ClassDB::bind_method(D_METHOD("get_packet"), &PacketPeer::_get_packet);
ClassDB::bind_method(D_METHOD("put_packet", "buffer"), &PacketPeer::_put_packet);
ClassDB::bind_method(D_METHOD("get_packet_error"), &PacketPeer::_get_packet_error);
@@ -151,6 +152,51 @@ void PacketPeer::_bind_methods() {
/***************/
+int PacketPeerExtension::get_available_packet_count() const {
+ int count;
+ if (GDVIRTUAL_CALL(_get_available_packet_count, count)) {
+ return count;
+ }
+ WARN_PRINT_ONCE("PacketPeerExtension::_get_available_packet_count is unimplemented!");
+ return -1;
+}
+
+Error PacketPeerExtension::get_packet(const uint8_t **r_buffer, int &r_buffer_size) {
+ int err;
+ if (GDVIRTUAL_CALL(_get_packet, r_buffer, &r_buffer_size, err)) {
+ return (Error)err;
+ }
+ WARN_PRINT_ONCE("PacketPeerExtension::_get_packet_native is unimplemented!");
+ return FAILED;
+}
+
+Error PacketPeerExtension::put_packet(const uint8_t *p_buffer, int p_buffer_size) {
+ int err;
+ if (GDVIRTUAL_CALL(_put_packet, p_buffer, p_buffer_size, err)) {
+ return (Error)err;
+ }
+ WARN_PRINT_ONCE("PacketPeerExtension::_put_packet_native is unimplemented!");
+ return FAILED;
+}
+
+int PacketPeerExtension::get_max_packet_size() const {
+ int size;
+ if (GDVIRTUAL_CALL(_get_max_packet_size, size)) {
+ return size;
+ }
+ WARN_PRINT_ONCE("PacketPeerExtension::_get_max_packet_size is unimplemented!");
+ return 0;
+}
+
+void PacketPeerExtension::_bind_methods() {
+ GDVIRTUAL_BIND(_get_packet, "r_buffer", "r_buffer_size");
+ GDVIRTUAL_BIND(_put_packet, "p_buffer", "p_buffer_size");
+ GDVIRTUAL_BIND(_get_available_packet_count);
+ GDVIRTUAL_BIND(_get_max_packet_size);
+}
+
+/***************/
+
void PacketPeerStream::_bind_methods() {
ClassDB::bind_method(D_METHOD("set_stream_peer", "peer"), &PacketPeerStream::set_stream_peer);
ClassDB::bind_method(D_METHOD("get_stream_peer"), &PacketPeerStream::get_stream_peer);
diff --git a/core/io/packet_peer.h b/core/io/packet_peer.h
index 9a345af3d0..bc1f4aaabf 100644
--- a/core/io/packet_peer.h
+++ b/core/io/packet_peer.h
@@ -35,6 +35,10 @@
#include "core/object/class_db.h"
#include "core/templates/ring_buffer.h"
+#include "core/object/gdvirtual.gen.inc"
+#include "core/object/script_language.h"
+#include "core/variant/native_ptr.h"
+
class PacketPeer : public RefCounted {
GDCLASS(PacketPeer, RefCounted);
@@ -73,6 +77,25 @@ public:
~PacketPeer() {}
};
+class PacketPeerExtension : public PacketPeer {
+ GDCLASS(PacketPeerExtension, PacketPeer);
+
+protected:
+ static void _bind_methods();
+
+public:
+ virtual int get_available_packet_count() const override;
+ virtual Error get_packet(const uint8_t **r_buffer, int &r_buffer_size) override; ///< buffer is GONE after next get_packet
+ virtual Error put_packet(const uint8_t *p_buffer, int p_buffer_size) override;
+ virtual int get_max_packet_size() const override;
+
+ /* GDExtension */
+ GDVIRTUAL0RC(int, _get_available_packet_count);
+ GDVIRTUAL2R(int, _get_packet, GDNativeConstPtr<const uint8_t *>, GDNativePtr<int>);
+ GDVIRTUAL2R(int, _put_packet, GDNativeConstPtr<const uint8_t>, int);
+ GDVIRTUAL0RC(int, _get_max_packet_size);
+};
+
class PacketPeerStream : public PacketPeer {
GDCLASS(PacketPeerStream, PacketPeer);
diff --git a/core/io/resource_uid.cpp b/core/io/resource_uid.cpp
index 97d683f415..290a71043c 100644
--- a/core/io/resource_uid.cpp
+++ b/core/io/resource_uid.cpp
@@ -126,8 +126,7 @@ String ResourceUID::get_id_path(ID p_id) const {
MutexLock l(mutex);
ERR_FAIL_COND_V(!unique_ids.has(p_id), String());
const CharString &cs = unique_ids[p_id].cs;
- String s(cs.ptr());
- return s;
+ return String::utf8(cs.ptr());
}
void ResourceUID::remove_id(ID p_id) {
MutexLock l(mutex);
diff --git a/core/io/stream_peer.cpp b/core/io/stream_peer.cpp
index 27f8d4e88f..8ab025dda1 100644
--- a/core/io/stream_peer.cpp
+++ b/core/io/stream_peer.cpp
@@ -410,6 +410,63 @@ void StreamPeer::_bind_methods() {
////////////////////////////////
+int StreamPeerExtension::get_available_bytes() const {
+ int count;
+ if (GDVIRTUAL_CALL(_get_available_bytes, count)) {
+ return count;
+ }
+ WARN_PRINT_ONCE("StreamPeerExtension::_get_available_bytes is unimplemented!");
+ return -1;
+}
+
+Error StreamPeerExtension::get_data(uint8_t *r_buffer, int p_bytes) {
+ int err;
+ int received = 0;
+ if (GDVIRTUAL_CALL(_get_data, r_buffer, p_bytes, &received, err)) {
+ return (Error)err;
+ }
+ WARN_PRINT_ONCE("StreamPeerExtension::_get_data is unimplemented!");
+ return FAILED;
+}
+
+Error StreamPeerExtension::get_partial_data(uint8_t *r_buffer, int p_bytes, int &r_received) {
+ int err;
+ if (GDVIRTUAL_CALL(_get_partial_data, r_buffer, p_bytes, &r_received, err)) {
+ return (Error)err;
+ }
+ WARN_PRINT_ONCE("StreamPeerExtension::_get_partial_data is unimplemented!");
+ return FAILED;
+}
+
+Error StreamPeerExtension::put_data(const uint8_t *p_data, int p_bytes) {
+ int err;
+ int sent = 0;
+ if (GDVIRTUAL_CALL(_put_data, p_data, p_bytes, &sent, err)) {
+ return (Error)err;
+ }
+ WARN_PRINT_ONCE("StreamPeerExtension::_put_data is unimplemented!");
+ return FAILED;
+}
+
+Error StreamPeerExtension::put_partial_data(const uint8_t *p_data, int p_bytes, int &r_sent) {
+ int err;
+ if (GDVIRTUAL_CALL(_put_data, p_data, p_bytes, &r_sent, err)) {
+ return (Error)err;
+ }
+ WARN_PRINT_ONCE("StreamPeerExtension::_put_partial_data is unimplemented!");
+ return FAILED;
+}
+
+void StreamPeerExtension::_bind_methods() {
+ GDVIRTUAL_BIND(_get_data, "r_buffer", "r_bytes", "r_received");
+ GDVIRTUAL_BIND(_get_partial_data, "r_buffer", "r_bytes", "r_received");
+ GDVIRTUAL_BIND(_put_data, "p_data", "p_bytes", "r_sent");
+ GDVIRTUAL_BIND(_put_partial_data, "p_data", "p_bytes", "r_sent");
+ GDVIRTUAL_BIND(_get_available_bytes);
+}
+
+////////////////////////////////
+
void StreamPeerBuffer::_bind_methods() {
ClassDB::bind_method(D_METHOD("seek", "position"), &StreamPeerBuffer::seek);
ClassDB::bind_method(D_METHOD("get_size"), &StreamPeerBuffer::get_size);
diff --git a/core/io/stream_peer.h b/core/io/stream_peer.h
index effc3850af..89432951c5 100644
--- a/core/io/stream_peer.h
+++ b/core/io/stream_peer.h
@@ -33,6 +33,10 @@
#include "core/object/ref_counted.h"
+#include "core/object/gdvirtual.gen.inc"
+#include "core/object/script_language.h"
+#include "core/variant/native_ptr.h"
+
class StreamPeer : public RefCounted {
GDCLASS(StreamPeer, RefCounted);
OBJ_CATEGORY("Networking");
@@ -58,6 +62,7 @@ public:
virtual int get_available_bytes() const = 0;
+ /* helpers */
void set_big_endian(bool p_big_endian);
bool is_big_endian_enabled() const;
@@ -92,6 +97,26 @@ public:
StreamPeer() {}
};
+class StreamPeerExtension : public StreamPeer {
+ GDCLASS(StreamPeerExtension, StreamPeer);
+
+protected:
+ static void _bind_methods();
+
+public:
+ virtual Error put_data(const uint8_t *p_data, int p_bytes) override;
+ virtual Error put_partial_data(const uint8_t *p_data, int p_bytes, int &r_sent) override;
+ virtual Error get_data(uint8_t *p_buffer, int p_bytes) override;
+ virtual Error get_partial_data(uint8_t *p_buffer, int p_bytes, int &r_received) override;
+ virtual int get_available_bytes() const override;
+
+ GDVIRTUAL3R(int, _put_data, GDNativeConstPtr<const uint8_t>, int, GDNativePtr<int>);
+ GDVIRTUAL3R(int, _put_partial_data, GDNativeConstPtr<const uint8_t>, int, GDNativePtr<int>);
+ GDVIRTUAL3R(int, _get_data, GDNativePtr<uint8_t>, int, GDNativePtr<int>);
+ GDVIRTUAL3R(int, _get_partial_data, GDNativePtr<uint8_t>, int, GDNativePtr<int>);
+ GDVIRTUAL0RC(int, _get_available_bytes);
+};
+
class StreamPeerBuffer : public StreamPeer {
GDCLASS(StreamPeerBuffer, StreamPeer);
diff --git a/core/math/aabb.cpp b/core/math/aabb.cpp
index 33aa65f15d..51a1309f0e 100644
--- a/core/math/aabb.cpp
+++ b/core/math/aabb.cpp
@@ -52,8 +52,8 @@ void AABB::merge_with(const AABB &p_aabb) {
beg_1 = position;
beg_2 = p_aabb.position;
- end_1 = Vector3(size.x, size.y, size.z) + beg_1;
- end_2 = Vector3(p_aabb.size.x, p_aabb.size.y, p_aabb.size.z) + beg_2;
+ end_1 = size + beg_1;
+ end_2 = p_aabb.size + beg_2;
min.x = (beg_1.x < beg_2.x) ? beg_1.x : beg_2.x;
min.y = (beg_1.y < beg_2.y) ? beg_1.y : beg_2.y;
diff --git a/core/math/aabb.h b/core/math/aabb.h
index e16246902a..97d92fbe37 100644
--- a/core/math/aabb.h
+++ b/core/math/aabb.h
@@ -118,6 +118,10 @@ public:
return position + size;
}
+ _FORCE_INLINE_ Vector3 get_center() const {
+ return position + (size * 0.5);
+ }
+
operator String() const;
_FORCE_INLINE_ AABB() {}
diff --git a/core/math/bvh_cull.inc b/core/math/bvh_cull.inc
index cba8ea6cb3..d7edc8a884 100644
--- a/core/math/bvh_cull.inc
+++ b/core/math/bvh_cull.inc
@@ -14,7 +14,7 @@ struct CullParams {
uint32_t pairable_type;
// optional components for different tests
- Vector3 point;
+ Point point;
BVHABB_CLASS abb;
typename BVHABB_CLASS::ConvexHull hull;
typename BVHABB_CLASS::Segment segment;
diff --git a/core/math/bvh_debug.inc b/core/math/bvh_debug.inc
index a97304334c..55db794ee3 100644
--- a/core/math/bvh_debug.inc
+++ b/core/math/bvh_debug.inc
@@ -6,24 +6,21 @@ void _debug_recursive_print_tree(int p_tree_id) const {
}
String _debug_aabb_to_string(const BVHABB_CLASS &aabb) const {
- String sz = "(";
- sz += itos(aabb.min.x);
- sz += " ~ ";
- sz += itos(-aabb.neg_max.x);
- sz += ") (";
+ Point size = aabb.calculate_size();
- sz += itos(aabb.min.y);
- sz += " ~ ";
- sz += itos(-aabb.neg_max.y);
- sz += ") (";
+ String sz;
+ float vol = 0.0;
- sz += itos(aabb.min.z);
- sz += " ~ ";
- sz += itos(-aabb.neg_max.z);
- sz += ") ";
+ for (int i = 0; i < Point::AXES_COUNT; ++i) {
+ sz += "(";
+ sz += itos(aabb.min[i]);
+ sz += " ~ ";
+ sz += itos(-aabb.neg_max[i]);
+ sz += ") ";
+
+ vol += size[i];
+ }
- Vector3 size = aabb.calculate_size();
- float vol = size.x * size.y * size.z;
sz += "vol " + itos(vol);
return sz;
diff --git a/core/math/bvh_split.inc b/core/math/bvh_split.inc
index 3fcc4c7b10..6f54d06ce7 100644
--- a/core/math/bvh_split.inc
+++ b/core/math/bvh_split.inc
@@ -28,11 +28,15 @@ void _split_leaf_sort_groups_simple(int &num_a, int &num_b, uint16_t *group_a, u
Point centre = full_bound.calculate_centre();
Point size = full_bound.calculate_size();
- int order[3];
+ int order[Point::AXIS_COUNT];
order[0] = size.min_axis();
- order[2] = size.max_axis();
- order[1] = 3 - (order[0] + order[2]);
+ order[Point::AXIS_COUNT - 1] = size.max_axis();
+
+ static_assert(Point::AXIS_COUNT <= 3);
+ if (Point::AXIS_COUNT == 3) {
+ order[1] = 3 - (order[0] + order[2]);
+ }
// simplest case, split on the longest axis
int split_axis = order[0];
@@ -54,7 +58,7 @@ void _split_leaf_sort_groups_simple(int &num_a, int &num_b, uint16_t *group_a, u
// detect when split on longest axis failed
int min_threshold = MAX_ITEMS / 4;
- int min_group_size[3];
+ int min_group_size[Point::AXIS_COUNT];
min_group_size[0] = MIN(num_a, num_b);
if (min_group_size[0] < min_threshold) {
// slow but sure .. first move everything back into a
@@ -64,7 +68,7 @@ void _split_leaf_sort_groups_simple(int &num_a, int &num_b, uint16_t *group_a, u
num_b = 0;
// now calculate the best split
- for (int axis = 1; axis < 3; axis++) {
+ for (int axis = 1; axis < Point::AXIS_COUNT; axis++) {
split_axis = order[axis];
int count = 0;
@@ -82,7 +86,7 @@ void _split_leaf_sort_groups_simple(int &num_a, int &num_b, uint16_t *group_a, u
// best axis
int best_axis = 0;
int best_min = min_group_size[0];
- for (int axis = 1; axis < 3; axis++) {
+ for (int axis = 1; axis < Point::AXIS_COUNT; axis++) {
if (min_group_size[axis] > best_min) {
best_min = min_group_size[axis];
best_axis = axis;
diff --git a/core/math/delaunay_2d.h b/core/math/delaunay_2d.h
index 95064e5700..2f80cb5634 100644
--- a/core/math/delaunay_2d.h
+++ b/core/math/delaunay_2d.h
@@ -101,7 +101,7 @@ public:
}
float delta_max = MAX(rect.size.width, rect.size.height);
- Vector2 center = rect.position + rect.size * 0.5;
+ Vector2 center = rect.get_center();
points.push_back(Vector2(center.x - 20 * delta_max, center.y - delta_max));
points.push_back(Vector2(center.x, center.y + 20 * delta_max));
diff --git a/core/math/face3.cpp b/core/math/face3.cpp
index 9af3f868d2..045ab67ce8 100644
--- a/core/math/face3.cpp
+++ b/core/math/face3.cpp
@@ -151,8 +151,8 @@ Face3::Side Face3::get_side_of(const Face3 &p_face, ClockDirection p_clock_dir)
}
Vector3 Face3::get_random_point_inside() const {
- real_t a = Math::random(0, 1);
- real_t b = Math::random(0, 1);
+ real_t a = Math::random(0.0, 1.0);
+ real_t b = Math::random(0.0, 1.0);
if (a > b) {
SWAP(a, b);
}
diff --git a/core/math/rect2.h b/core/math/rect2.h
index ab0b489b4a..2557959fa2 100644
--- a/core/math/rect2.h
+++ b/core/math/rect2.h
@@ -46,6 +46,8 @@ struct Rect2 {
real_t get_area() const { return size.width * size.height; }
+ _FORCE_INLINE_ Vector2 get_center() const { return position + (size * 0.5); }
+
inline bool intersects(const Rect2 &p_rect, const bool p_include_borders = false) const {
if (p_include_borders) {
if (position.x > (p_rect.position.x + p_rect.size.width)) {
@@ -259,7 +261,7 @@ struct Rect2 {
}
_FORCE_INLINE_ bool intersects_filled_polygon(const Vector2 *p_points, int p_point_count) const {
- Vector2 center = position + size * 0.5;
+ Vector2 center = get_center();
int side_plus = 0;
int side_minus = 0;
Vector2 end = position + size;
@@ -344,6 +346,8 @@ struct Rect2i {
int get_area() const { return size.width * size.height; }
+ _FORCE_INLINE_ Vector2i get_center() const { return position + (size / 2); }
+
inline bool intersects(const Rect2i &p_rect) const {
if (position.x > (p_rect.position.x + p_rect.size.width)) {
return false;
diff --git a/core/math/transform_2d.cpp b/core/math/transform_2d.cpp
index 060b619892..496a557844 100644
--- a/core/math/transform_2d.cpp
+++ b/core/math/transform_2d.cpp
@@ -279,7 +279,7 @@ Transform2D Transform2D::interpolate_with(const Transform2D &p_transform, const
}
//construct matrix
- Transform2D res(Math::atan2(v.y, v.x), p1.lerp(p2, p_c));
+ Transform2D res(v.angle(), p1.lerp(p2, p_c));
res.scale_basis(s1.lerp(s2, p_c));
return res;
}
diff --git a/core/math/triangle_mesh.cpp b/core/math/triangle_mesh.cpp
index bf06c848c5..16d9652ef2 100644
--- a/core/math/triangle_mesh.cpp
+++ b/core/math/triangle_mesh.cpp
@@ -76,7 +76,7 @@ int TriangleMesh::_create_bvh(BVH *p_bvh, BVH **p_bb, int p_from, int p_size, in
int index = r_max_alloc++;
BVH *_new = &p_bvh[index];
_new->aabb = aabb;
- _new->center = aabb.position + aabb.size * 0.5;
+ _new->center = aabb.get_center();
_new->face_index = -1;
_new->left = left;
_new->right = right;
@@ -152,7 +152,7 @@ void TriangleMesh::create(const Vector<Vector3> &p_faces) {
bw[i].left = -1;
bw[i].right = -1;
bw[i].face_index = i;
- bw[i].center = bw[i].aabb.position + bw[i].aabb.size * 0.5;
+ bw[i].center = bw[i].aabb.get_center();
}
vertices.resize(db.size());
diff --git a/core/math/vector2.cpp b/core/math/vector2.cpp
index b53dc05a00..16e43d7d06 100644
--- a/core/math/vector2.cpp
+++ b/core/math/vector2.cpp
@@ -79,7 +79,7 @@ real_t Vector2::angle_to(const Vector2 &p_vector2) const {
}
real_t Vector2::angle_to_point(const Vector2 &p_vector2) const {
- return Math::atan2(y - p_vector2.y, x - p_vector2.x);
+ return (*this - p_vector2).angle();
}
real_t Vector2::dot(const Vector2 &p_other) const {
diff --git a/core/multiplayer/multiplayer_peer.cpp b/core/multiplayer/multiplayer_peer.cpp
index 40847102d8..3c33948e2f 100644
--- a/core/multiplayer/multiplayer_peer.cpp
+++ b/core/multiplayer/multiplayer_peer.cpp
@@ -53,6 +53,30 @@ uint32_t MultiplayerPeer::generate_unique_id() const {
return hash;
}
+void MultiplayerPeer::set_transfer_channel(int p_channel) {
+ transfer_channel = p_channel;
+}
+
+int MultiplayerPeer::get_transfer_channel() const {
+ return transfer_channel;
+}
+
+void MultiplayerPeer::set_transfer_mode(Multiplayer::TransferMode p_mode) {
+ transfer_mode = p_mode;
+}
+
+Multiplayer::TransferMode MultiplayerPeer::get_transfer_mode() const {
+ return transfer_mode;
+}
+
+void MultiplayerPeer::set_refuse_new_connections(bool p_enable) {
+ refuse_connections = p_enable;
+}
+
+bool MultiplayerPeer::is_refusing_new_connections() const {
+ return refuse_connections;
+}
+
void MultiplayerPeer::_bind_methods() {
ClassDB::bind_method(D_METHOD("set_transfer_channel", "channel"), &MultiplayerPeer::set_transfer_channel);
ClassDB::bind_method(D_METHOD("get_transfer_channel"), &MultiplayerPeer::get_transfer_channel);
@@ -88,3 +112,160 @@ void MultiplayerPeer::_bind_methods() {
ADD_SIGNAL(MethodInfo("connection_succeeded"));
ADD_SIGNAL(MethodInfo("connection_failed"));
}
+
+/*************/
+
+int MultiplayerPeerExtension::get_available_packet_count() const {
+ int count;
+ if (GDVIRTUAL_CALL(_get_available_packet_count, count)) {
+ return count;
+ }
+ WARN_PRINT_ONCE("MultiplayerPeerExtension::_get_available_packet_count is unimplemented!");
+ return -1;
+}
+
+Error MultiplayerPeerExtension::get_packet(const uint8_t **r_buffer, int &r_buffer_size) {
+ int err;
+ if (GDVIRTUAL_CALL(_get_packet, r_buffer, &r_buffer_size, err)) {
+ return (Error)err;
+ }
+ WARN_PRINT_ONCE("MultiplayerPeerExtension::_get_packet_native is unimplemented!");
+ return FAILED;
+}
+
+Error MultiplayerPeerExtension::put_packet(const uint8_t *p_buffer, int p_buffer_size) {
+ int err;
+ if (GDVIRTUAL_CALL(_put_packet, p_buffer, p_buffer_size, err)) {
+ return (Error)err;
+ }
+ WARN_PRINT_ONCE("MultiplayerPeerExtension::_put_packet_native is unimplemented!");
+ return FAILED;
+}
+
+int MultiplayerPeerExtension::get_max_packet_size() const {
+ int size;
+ if (GDVIRTUAL_CALL(_get_max_packet_size, size)) {
+ return size;
+ }
+ WARN_PRINT_ONCE("MultiplayerPeerExtension::_get_max_packet_size is unimplemented!");
+ return 0;
+}
+
+void MultiplayerPeerExtension::set_transfer_channel(int p_channel) {
+ if (GDVIRTUAL_CALL(_set_transfer_channel, p_channel)) {
+ return;
+ }
+ MultiplayerPeer::set_transfer_channel(p_channel);
+}
+
+int MultiplayerPeerExtension::get_transfer_channel() const {
+ int channel;
+ if (GDVIRTUAL_CALL(_get_transfer_channel, channel)) {
+ return channel;
+ }
+ return MultiplayerPeer::get_transfer_channel();
+}
+
+void MultiplayerPeerExtension::set_transfer_mode(Multiplayer::TransferMode p_mode) {
+ if (GDVIRTUAL_CALL(_set_transfer_mode, p_mode)) {
+ return;
+ }
+ MultiplayerPeer::set_transfer_mode(p_mode);
+}
+
+Multiplayer::TransferMode MultiplayerPeerExtension::get_transfer_mode() const {
+ int mode;
+ if (GDVIRTUAL_CALL(_get_transfer_mode, mode)) {
+ return (Multiplayer::TransferMode)mode;
+ }
+ return MultiplayerPeer::get_transfer_mode();
+}
+
+void MultiplayerPeerExtension::set_target_peer(int p_peer_id) {
+ if (GDVIRTUAL_CALL(_set_target_peer, p_peer_id)) {
+ return;
+ }
+ WARN_PRINT_ONCE("MultiplayerPeerExtension::_set_target_peer is unimplemented!");
+}
+
+int MultiplayerPeerExtension::get_packet_peer() const {
+ int peer;
+ if (GDVIRTUAL_CALL(_get_packet_peer, peer)) {
+ return peer;
+ }
+ WARN_PRINT_ONCE("MultiplayerPeerExtension::_get_packet_peer is unimplemented!");
+ return 0;
+}
+
+bool MultiplayerPeerExtension::is_server() const {
+ bool server;
+ if (GDVIRTUAL_CALL(_is_server, server)) {
+ return server;
+ }
+ WARN_PRINT_ONCE("MultiplayerPeerExtension::_is_server is unimplemented!");
+ return false;
+}
+
+void MultiplayerPeerExtension::poll() {
+ int err;
+ if (GDVIRTUAL_CALL(_poll, err)) {
+ return;
+ }
+ WARN_PRINT_ONCE("MultiplayerPeerExtension::_poll is unimplemented!");
+}
+
+int MultiplayerPeerExtension::get_unique_id() const {
+ int id;
+ if (GDVIRTUAL_CALL(_get_unique_id, id)) {
+ return id;
+ }
+ WARN_PRINT_ONCE("MultiplayerPeerExtension::_get_unique_id is unimplemented!");
+ return 0;
+}
+
+void MultiplayerPeerExtension::set_refuse_new_connections(bool p_enable) {
+ if (GDVIRTUAL_CALL(_set_refuse_new_connections, p_enable)) {
+ return;
+ }
+ MultiplayerPeer::set_refuse_new_connections(p_enable);
+}
+
+bool MultiplayerPeerExtension::is_refusing_new_connections() const {
+ bool refusing;
+ if (GDVIRTUAL_CALL(_is_refusing_new_connections, refusing)) {
+ return refusing;
+ }
+ return MultiplayerPeer::is_refusing_new_connections();
+}
+
+MultiplayerPeer::ConnectionStatus MultiplayerPeerExtension::get_connection_status() const {
+ int status;
+ if (GDVIRTUAL_CALL(_get_connection_status, status)) {
+ return (ConnectionStatus)status;
+ }
+ WARN_PRINT_ONCE("MultiplayerPeerExtension::_get_connection_status is unimplemented!");
+ return CONNECTION_DISCONNECTED;
+}
+
+void MultiplayerPeerExtension::_bind_methods() {
+ GDVIRTUAL_BIND(_get_packet, "r_buffer", "r_buffer_size");
+ GDVIRTUAL_BIND(_put_packet, "p_buffer", "p_buffer_size");
+ GDVIRTUAL_BIND(_get_available_packet_count);
+ GDVIRTUAL_BIND(_get_max_packet_size);
+
+ GDVIRTUAL_BIND(_set_transfer_channel, "p_channel");
+ GDVIRTUAL_BIND(_get_transfer_channel);
+
+ GDVIRTUAL_BIND(_set_transfer_mode, "p_mode");
+ GDVIRTUAL_BIND(_get_transfer_mode);
+
+ GDVIRTUAL_BIND(_set_target_peer, "p_peer");
+
+ GDVIRTUAL_BIND(_get_packet_peer);
+ GDVIRTUAL_BIND(_is_server);
+ GDVIRTUAL_BIND(_poll);
+ GDVIRTUAL_BIND(_get_unique_id);
+ GDVIRTUAL_BIND(_set_refuse_new_connections, "p_enable");
+ GDVIRTUAL_BIND(_is_refusing_new_connections);
+ GDVIRTUAL_BIND(_get_connection_status);
+}
diff --git a/core/multiplayer/multiplayer_peer.h b/core/multiplayer/multiplayer_peer.h
index ba00c3b41b..126ba9e645 100644
--- a/core/multiplayer/multiplayer_peer.h
+++ b/core/multiplayer/multiplayer_peer.h
@@ -34,12 +34,21 @@
#include "core/io/packet_peer.h"
#include "core/multiplayer/multiplayer.h"
+#include "core/object/gdvirtual.gen.inc"
+#include "core/object/script_language.h"
+#include "core/variant/native_ptr.h"
+
class MultiplayerPeer : public PacketPeer {
GDCLASS(MultiplayerPeer, PacketPeer);
protected:
static void _bind_methods();
+private:
+ int transfer_channel = 0;
+ Multiplayer::TransferMode transfer_mode = Multiplayer::TRANSFER_MODE_RELIABLE;
+ bool refuse_connections = false;
+
public:
enum {
TARGET_PEER_BROADCAST = 0,
@@ -52,10 +61,13 @@ public:
CONNECTION_CONNECTED,
};
- virtual void set_transfer_channel(int p_channel) = 0;
- virtual int get_transfer_channel() const = 0;
- virtual void set_transfer_mode(Multiplayer::TransferMode p_mode) = 0;
- virtual Multiplayer::TransferMode get_transfer_mode() const = 0;
+ virtual void set_transfer_channel(int p_channel);
+ virtual int get_transfer_channel() const;
+ virtual void set_transfer_mode(Multiplayer::TransferMode p_mode);
+ virtual Multiplayer::TransferMode get_transfer_mode() const;
+ virtual void set_refuse_new_connections(bool p_enable);
+ virtual bool is_refusing_new_connections() const;
+
virtual void set_target_peer(int p_peer_id) = 0;
virtual int get_packet_peer() const = 0;
@@ -66,15 +78,67 @@ public:
virtual int get_unique_id() const = 0;
- virtual void set_refuse_new_connections(bool p_enable) = 0;
- virtual bool is_refusing_new_connections() const = 0;
-
virtual ConnectionStatus get_connection_status() const = 0;
+
uint32_t generate_unique_id() const;
MultiplayerPeer() {}
};
-VARIANT_ENUM_CAST(MultiplayerPeer::ConnectionStatus)
+VARIANT_ENUM_CAST(MultiplayerPeer::ConnectionStatus);
+
+class MultiplayerPeerExtension : public MultiplayerPeer {
+ GDCLASS(MultiplayerPeerExtension, MultiplayerPeer);
+
+protected:
+ static void _bind_methods();
+
+public:
+ /* PacketPeer */
+ virtual int get_available_packet_count() const override;
+ virtual Error get_packet(const uint8_t **r_buffer, int &r_buffer_size) override; ///< buffer is GONE after next get_packet
+ virtual Error put_packet(const uint8_t *p_buffer, int p_buffer_size) override;
+ virtual int get_max_packet_size() const override;
+
+ /* MultiplayerPeer */
+ virtual void set_transfer_channel(int p_channel) override;
+ virtual int get_transfer_channel() const override;
+ virtual void set_transfer_mode(Multiplayer::TransferMode p_mode) override;
+ virtual Multiplayer::TransferMode get_transfer_mode() const override;
+ virtual void set_target_peer(int p_peer_id) override;
+
+ virtual int get_packet_peer() const override;
+
+ virtual bool is_server() const override;
+
+ virtual void poll() override;
+
+ virtual int get_unique_id() const override;
+
+ virtual void set_refuse_new_connections(bool p_enable) override;
+ virtual bool is_refusing_new_connections() const override;
+
+ virtual ConnectionStatus get_connection_status() const override;
+
+ /* PacketPeer GDExtension */
+ GDVIRTUAL0RC(int, _get_available_packet_count);
+ GDVIRTUAL2R(int, _get_packet, GDNativeConstPtr<const uint8_t *>, GDNativePtr<int>);
+ GDVIRTUAL2R(int, _put_packet, GDNativeConstPtr<const uint8_t>, int);
+ GDVIRTUAL0RC(int, _get_max_packet_size);
+
+ /* MultiplayerPeer GDExtension */
+ GDVIRTUAL1(_set_transfer_channel, int);
+ GDVIRTUAL0RC(int, _get_transfer_channel);
+ GDVIRTUAL1(_set_transfer_mode, int);
+ GDVIRTUAL0RC(int, _get_transfer_mode);
+ GDVIRTUAL1(_set_target_peer, int);
+ GDVIRTUAL0RC(int, _get_packet_peer);
+ GDVIRTUAL0RC(bool, _is_server);
+ GDVIRTUAL0R(int, _poll);
+ GDVIRTUAL0RC(int, _get_unique_id);
+ GDVIRTUAL1(_set_refuse_new_connections, bool);
+ GDVIRTUAL0RC(bool, _is_refusing_new_connections);
+ GDVIRTUAL0RC(int, _get_connection_status);
+};
#endif // NETWORKED_MULTIPLAYER_PEER_H
diff --git a/core/object/class_db.cpp b/core/object/class_db.cpp
index 8e92340c1e..8ba46e49eb 100644
--- a/core/object/class_db.cpp
+++ b/core/object/class_db.cpp
@@ -545,6 +545,15 @@ Object *ClassDB::instantiate(const StringName &p_class) {
return ti->creation_func();
}
+Object *ClassDB::construct_object(Object *(*p_create_func)(), ObjectNativeExtension *p_extension) {
+ if (p_extension) {
+ initializing_with_extension = true;
+ initializing_extension = p_extension;
+ initializing_extension_instance = p_extension->create_instance(p_extension->class_userdata);
+ }
+ return p_create_func();
+}
+
bool ClassDB::can_instantiate(const StringName &p_class) {
OBJTYPE_RLOCK;
diff --git a/core/object/class_db.h b/core/object/class_db.h
index e89c7fffd7..3a1cbf8559 100644
--- a/core/object/class_db.h
+++ b/core/object/class_db.h
@@ -234,6 +234,7 @@ public:
static bool is_parent_class(const StringName &p_class, const StringName &p_inherits);
static bool can_instantiate(const StringName &p_class);
static Object *instantiate(const StringName &p_class);
+ static Object *construct_object(Object *(*p_create_func)(), ObjectNativeExtension *p_extension);
static void instance_get_native_extension_data(ObjectNativeExtension **r_extension, GDExtensionClassInstancePtr *r_extension_instance, Object *p_base);
static APIType get_api_type(const StringName &p_class);
diff --git a/core/os/thread.cpp b/core/os/thread.cpp
index 92e43963d2..27aefc98de 100644
--- a/core/os/thread.cpp
+++ b/core/os/thread.cpp
@@ -28,9 +28,7 @@
/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
/*************************************************************************/
-// Define PLATFORM_CUSTOM_THREAD_H in platform_config.h
-// Overriding the platform implementation is required in some proprietary platforms
-#ifndef PLATFORM_CUSTOM_THREAD_H
+#ifndef PLATFORM_THREAD_OVERRIDE // See details in thread.h
#include "thread.h"
@@ -130,4 +128,4 @@ Thread::~Thread() {
}
#endif
-#endif // PLATFORM_CUSTOM_THREAD_H
+#endif // PLATFORM_THREAD_OVERRIDE
diff --git a/core/os/thread.h b/core/os/thread.h
index 3a0938c7f7..59cb58ac57 100644
--- a/core/os/thread.h
+++ b/core/os/thread.h
@@ -28,10 +28,11 @@
/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
/*************************************************************************/
-// Define PLATFORM_CUSTOM_THREAD_H in platform_config.h
+// Define PLATFORM_THREAD_OVERRIDE in your platform's `platform_config.h`
+// to use a custom Thread implementation defined in `platform/[your_platform]/platform_thread.h`
// Overriding the platform implementation is required in some proprietary platforms
-#ifdef PLATFORM_CUSTOM_THREAD_H
-#include PLATFORM_CUSTOM_THREAD_H
+#ifdef PLATFORM_THREAD_OVERRIDE
+#include "platform_thread.h"
#else
#ifndef THREAD_H
#define THREAD_H
@@ -121,4 +122,4 @@ public:
};
#endif // THREAD_H
-#endif // PLATFORM_CUSTOM_THREAD_H
+#endif // PLATFORM_THREAD_OVERRIDE
diff --git a/core/register_core_types.cpp b/core/register_core_types.cpp
index 3a037f9dd1..e33c21cc00 100644
--- a/core/register_core_types.cpp
+++ b/core/register_core_types.cpp
@@ -169,11 +169,13 @@ void register_core_types() {
GDREGISTER_VIRTUAL_CLASS(IP);
GDREGISTER_VIRTUAL_CLASS(StreamPeer);
+ GDREGISTER_CLASS(StreamPeerExtension);
GDREGISTER_CLASS(StreamPeerBuffer);
GDREGISTER_CLASS(StreamPeerTCP);
GDREGISTER_CLASS(TCPServer);
GDREGISTER_VIRTUAL_CLASS(PacketPeer);
+ GDREGISTER_CLASS(PacketPeerExtension);
GDREGISTER_CLASS(PacketPeerStream);
GDREGISTER_CLASS(PacketPeerUDP);
GDREGISTER_CLASS(UDPServer);
@@ -197,6 +199,7 @@ void register_core_types() {
ResourceLoader::add_resource_format_loader(resource_format_loader_crypto);
GDREGISTER_VIRTUAL_CLASS(MultiplayerPeer);
+ GDREGISTER_VIRTUAL_CLASS(MultiplayerPeerExtension);
GDREGISTER_VIRTUAL_CLASS(MultiplayerReplicator);
GDREGISTER_CLASS(MultiplayerAPI);
GDREGISTER_CLASS(MainLoop);
diff --git a/core/string/translation.cpp b/core/string/translation.cpp
index cb7d924556..5c0eb388f5 100644
--- a/core/string/translation.cpp
+++ b/core/string/translation.cpp
@@ -875,6 +875,11 @@ void Translation::add_plural_message(const StringName &p_src_text, const Vector<
}
StringName Translation::get_message(const StringName &p_src_text, const StringName &p_context) const {
+ StringName ret;
+ if (GDVIRTUAL_CALL(_get_message, p_src_text, p_context, ret)) {
+ return ret;
+ }
+
if (p_context != StringName()) {
WARN_PRINT("Translation class doesn't handle context. Using context in get_message() on a Translation instance is probably a mistake. \nUse a derived Translation class that handles context, such as TranslationPO class");
}
@@ -888,6 +893,11 @@ StringName Translation::get_message(const StringName &p_src_text, const StringNa
}
StringName Translation::get_plural_message(const StringName &p_src_text, const StringName &p_plural_text, int p_n, const StringName &p_context) const {
+ StringName ret;
+ if (GDVIRTUAL_CALL(_get_plural_message, p_src_text, p_plural_text, p_n, p_context, ret)) {
+ return ret;
+ }
+
WARN_PRINT("Translation class doesn't handle plural messages. Calling get_plural_message() on a Translation instance is probably a mistake. \nUse a derived Translation class that handles plurals, such as TranslationPO class");
return get_message(p_src_text);
}
@@ -923,6 +933,9 @@ void Translation::_bind_methods() {
ClassDB::bind_method(D_METHOD("_set_messages"), &Translation::_set_messages);
ClassDB::bind_method(D_METHOD("_get_messages"), &Translation::_get_messages);
+ GDVIRTUAL_BIND(_get_plural_message, "src_message", "src_plural_message", "n", "context");
+ GDVIRTUAL_BIND(_get_message, "src_message", "context");
+
ADD_PROPERTY(PropertyInfo(Variant::DICTIONARY, "messages", PROPERTY_HINT_NONE, "", PROPERTY_USAGE_NOEDITOR | PROPERTY_USAGE_INTERNAL), "_set_messages", "_get_messages");
ADD_PROPERTY(PropertyInfo(Variant::STRING, "locale"), "set_locale", "get_locale");
}
diff --git a/core/string/translation.h b/core/string/translation.h
index 4f179ac0fe..6aec0bb8ea 100644
--- a/core/string/translation.h
+++ b/core/string/translation.h
@@ -32,6 +32,8 @@
#define TRANSLATION_H
#include "core/io/resource.h"
+#include "core/object/gdvirtual.gen.inc"
+#include "core/object/script_language.h"
class Translation : public Resource {
GDCLASS(Translation, Resource);
@@ -48,6 +50,9 @@ class Translation : public Resource {
protected:
static void _bind_methods();
+ GDVIRTUAL2RC(StringName, _get_message, StringName, StringName);
+ GDVIRTUAL4RC(StringName, _get_plural_message, StringName, StringName, int, StringName);
+
public:
void set_locale(const String &p_locale);
_FORCE_INLINE_ String get_locale() const { return locale; }
diff --git a/core/templates/pooled_list.h b/core/templates/pooled_list.h
index b4a6d2d1dd..b139dadb75 100644
--- a/core/templates/pooled_list.h
+++ b/core/templates/pooled_list.h
@@ -28,13 +28,16 @@
/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
/*************************************************************************/
-#pragma once
+#ifndef POOLED_LIST_H
+#define POOLED_LIST_H
+
+#include "core/templates/local_vector.h"
// Simple template to provide a pool with O(1) allocate and free.
// The freelist could alternatively be a linked list placed within the unused elements
// to use less memory, however a separate freelist is probably more cache friendly.
-
-// NOTE : Take great care when using this with non POD types. The construction and destruction
+//
+// NOTE: Take great care when using this with non POD types. The construction and destruction
// is done in the LocalVector, NOT as part of the pool. So requesting a new item does not guarantee
// a constructor is run, and free does not guarantee a destructor.
// You should generally handle clearing
@@ -42,9 +45,6 @@
// This is by design for fastest use in the BVH. If you want a more general pool
// that does call constructors / destructors on request / free, this should probably be
// a separate template.
-
-#include "core/templates/local_vector.h"
-
template <class T, bool force_trivial = false>
class PooledList {
LocalVector<T, uint32_t, force_trivial> list;
@@ -93,3 +93,5 @@ public:
_used_size--;
}
};
+
+#endif // POOLED_LIST_H
diff --git a/core/templates/rid_owner.h b/core/templates/rid_owner.h
index e947d2211c..71d41eacc4 100644
--- a/core/templates/rid_owner.h
+++ b/core/templates/rid_owner.h
@@ -151,7 +151,7 @@ public:
return _allocate_rid();
}
- _FORCE_INLINE_ T *getornull(const RID &p_rid, bool p_initialize = false) {
+ _FORCE_INLINE_ T *get_or_null(const RID &p_rid, bool p_initialize = false) {
if (p_rid == RID()) {
return nullptr;
}
@@ -210,12 +210,12 @@ public:
return ptr;
}
void initialize_rid(RID p_rid) {
- T *mem = getornull(p_rid, true);
+ T *mem = get_or_null(p_rid, true);
ERR_FAIL_COND(!mem);
memnew_placement(mem, T);
}
void initialize_rid(RID p_rid, const T &p_value) {
- T *mem = getornull(p_rid, true);
+ T *mem = get_or_null(p_rid, true);
ERR_FAIL_COND(!mem);
memnew_placement(mem, T(p_value));
}
@@ -399,8 +399,8 @@ public:
alloc.initialize_rid(p_rid, p_ptr);
}
- _FORCE_INLINE_ T *getornull(const RID &p_rid) {
- T **ptr = alloc.getornull(p_rid);
+ _FORCE_INLINE_ T *get_or_null(const RID &p_rid) {
+ T **ptr = alloc.get_or_null(p_rid);
if (unlikely(!ptr)) {
return nullptr;
}
@@ -408,7 +408,7 @@ public:
}
_FORCE_INLINE_ void replace(const RID &p_rid, T *p_new_ptr) {
- T **ptr = alloc.getornull(p_rid);
+ T **ptr = alloc.get_or_null(p_rid);
ERR_FAIL_COND(!ptr);
*ptr = p_new_ptr;
}
@@ -469,8 +469,8 @@ public:
alloc.initialize_rid(p_rid, p_ptr);
}
- _FORCE_INLINE_ T *getornull(const RID &p_rid) {
- return alloc.getornull(p_rid);
+ _FORCE_INLINE_ T *get_or_null(const RID &p_rid) {
+ return alloc.get_or_null(p_rid);
}
_FORCE_INLINE_ bool owns(const RID &p_rid) {
diff --git a/core/variant/callable.cpp b/core/variant/callable.cpp
index f487e718f4..dcded6e61f 100644
--- a/core/variant/callable.cpp
+++ b/core/variant/callable.cpp
@@ -377,11 +377,11 @@ Error Signal::emit(const Variant **p_arguments, int p_argcount) const {
return obj->emit_signal(name, p_arguments, p_argcount);
}
-Error Signal::connect(const Callable &p_callable, const Vector<Variant> &p_binds, uint32_t p_flags) {
+Error Signal::connect(const Callable &p_callable, uint32_t p_flags) {
Object *object = get_object();
ERR_FAIL_COND_V(!object, ERR_UNCONFIGURED);
- return object->connect(name, p_callable, p_binds, p_flags);
+ return object->connect(name, p_callable, varray(), p_flags);
}
void Signal::disconnect(const Callable &p_callable) {
diff --git a/core/variant/callable.h b/core/variant/callable.h
index 52094af3aa..de886492ea 100644
--- a/core/variant/callable.h
+++ b/core/variant/callable.h
@@ -159,7 +159,7 @@ public:
operator String() const;
Error emit(const Variant **p_arguments, int p_argcount) const;
- Error connect(const Callable &p_callable, const Vector<Variant> &p_binds = Vector<Variant>(), uint32_t p_flags = 0);
+ Error connect(const Callable &p_callable, uint32_t p_flags = 0);
void disconnect(const Callable &p_callable);
bool is_connected(const Callable &p_callable) const;
diff --git a/core/variant/native_ptr.h b/core/variant/native_ptr.h
index b4ec0df7d6..913d4d8f7c 100644
--- a/core/variant/native_ptr.h
+++ b/core/variant/native_ptr.h
@@ -55,7 +55,7 @@ struct GDNativePtr {
#define GDVIRTUAL_NATIVE_PTR(m_type) \
template <> \
- struct GDNativeConstPtr<m_type> { \
+ struct GDNativeConstPtr<const m_type> { \
const m_type *data = nullptr; \
GDNativeConstPtr(const m_type *p_assign) { data = p_assign; } \
static const char *get_name() { return "const " #m_type; } \
@@ -117,6 +117,7 @@ GDVIRTUAL_NATIVE_PTR(char16_t)
GDVIRTUAL_NATIVE_PTR(char32_t)
GDVIRTUAL_NATIVE_PTR(wchar_t)
GDVIRTUAL_NATIVE_PTR(uint8_t)
+GDVIRTUAL_NATIVE_PTR(uint8_t *)
GDVIRTUAL_NATIVE_PTR(int8_t)
GDVIRTUAL_NATIVE_PTR(uint16_t)
GDVIRTUAL_NATIVE_PTR(int16_t)
diff --git a/core/variant/variant_call.cpp b/core/variant/variant_call.cpp
index 4a7d6761d8..32d6778a2b 100644
--- a/core/variant/variant_call.cpp
+++ b/core/variant/variant_call.cpp
@@ -1513,6 +1513,7 @@ static void _register_variant_builtin_methods() {
/* Rect2 */
+ bind_method(Rect2, get_center, sarray(), varray());
bind_method(Rect2, get_area, sarray(), varray());
bind_method(Rect2, has_no_area, sarray(), varray());
bind_method(Rect2, has_point, sarray("point"), varray());
@@ -1529,6 +1530,7 @@ static void _register_variant_builtin_methods() {
/* Rect2i */
+ bind_method(Rect2i, get_center, sarray(), varray());
bind_method(Rect2i, get_area, sarray(), varray());
bind_method(Rect2i, has_no_area, sarray(), varray());
bind_method(Rect2i, has_point, sarray("point"), varray());
@@ -1688,7 +1690,7 @@ static void _register_variant_builtin_methods() {
bind_method(Signal, get_object_id, sarray(), varray());
bind_method(Signal, get_name, sarray(), varray());
- bind_method(Signal, connect, sarray("callable", "binds", "flags"), varray(Array(), 0));
+ bind_method(Signal, connect, sarray("callable", "flags"), varray(0));
bind_method(Signal, disconnect, sarray("callable"), varray());
bind_method(Signal, is_connected, sarray("callable"), varray());
bind_method(Signal, get_connections, sarray(), varray());
@@ -1739,6 +1741,7 @@ static void _register_variant_builtin_methods() {
/* AABB */
bind_method(AABB, abs, sarray(), varray());
+ bind_method(AABB, get_center, sarray(), varray());
bind_method(AABB, get_area, sarray(), varray());
bind_method(AABB, has_no_area, sarray(), varray());
bind_method(AABB, has_no_surface, sarray(), varray());
diff --git a/core/variant/variant_utility.cpp b/core/variant/variant_utility.cpp
index 232054d0ca..55c1376031 100644
--- a/core/variant/variant_utility.cpp
+++ b/core/variant/variant_utility.cpp
@@ -487,10 +487,6 @@ struct VariantUtilityFunctions {
}
static inline void print(const Variant **p_args, int p_arg_count, Callable::CallError &r_error) {
- if (p_arg_count < 1) {
- r_error.error = Callable::CallError::CALL_ERROR_TOO_FEW_ARGUMENTS;
- r_error.argument = 1;
- }
String str;
for (int i = 0; i < p_arg_count; i++) {
String os = p_args[i]->operator String();
@@ -506,11 +502,29 @@ struct VariantUtilityFunctions {
r_error.error = Callable::CallError::CALL_OK;
}
- static inline void printerr(const Variant **p_args, int p_arg_count, Callable::CallError &r_error) {
- if (p_arg_count < 1) {
- r_error.error = Callable::CallError::CALL_ERROR_TOO_FEW_ARGUMENTS;
- r_error.argument = 1;
+ static inline void print_verbose(const Variant **p_args, int p_arg_count, Callable::CallError &r_error) {
+ if (OS::get_singleton()->is_stdout_verbose()) {
+ String str;
+ for (int i = 0; i < p_arg_count; i++) {
+ String os = p_args[i]->operator String();
+
+ if (i == 0) {
+ str = os;
+ } else {
+ str += os;
+ }
+ }
+
+ // No need to use `print_verbose()` as this call already only happens
+ // when verbose mode is enabled. This avoids performing string argument concatenation
+ // when not needed.
+ print_line(str);
}
+
+ r_error.error = Callable::CallError::CALL_OK;
+ }
+
+ static inline void printerr(const Variant **p_args, int p_arg_count, Callable::CallError &r_error) {
String str;
for (int i = 0; i < p_arg_count; i++) {
String os = p_args[i]->operator String();
@@ -527,10 +541,6 @@ struct VariantUtilityFunctions {
}
static inline void printt(const Variant **p_args, int p_arg_count, Callable::CallError &r_error) {
- if (p_arg_count < 1) {
- r_error.error = Callable::CallError::CALL_ERROR_TOO_FEW_ARGUMENTS;
- r_error.argument = 1;
- }
String str;
for (int i = 0; i < p_arg_count; i++) {
if (i) {
@@ -544,10 +554,6 @@ struct VariantUtilityFunctions {
}
static inline void prints(const Variant **p_args, int p_arg_count, Callable::CallError &r_error) {
- if (p_arg_count < 1) {
- r_error.error = Callable::CallError::CALL_ERROR_TOO_FEW_ARGUMENTS;
- r_error.argument = 1;
- }
String str;
for (int i = 0; i < p_arg_count; i++) {
if (i) {
@@ -561,10 +567,6 @@ struct VariantUtilityFunctions {
}
static inline void printraw(const Variant **p_args, int p_arg_count, Callable::CallError &r_error) {
- if (p_arg_count < 1) {
- r_error.error = Callable::CallError::CALL_ERROR_TOO_FEW_ARGUMENTS;
- r_error.argument = 1;
- }
String str;
for (int i = 0; i < p_arg_count; i++) {
String os = p_args[i]->operator String();
@@ -1246,6 +1248,7 @@ void Variant::_register_variant_utility_functions() {
FUNCBINDVARARGV(printt, sarray(), Variant::UTILITY_FUNC_TYPE_GENERAL);
FUNCBINDVARARGV(prints, sarray(), Variant::UTILITY_FUNC_TYPE_GENERAL);
FUNCBINDVARARGV(printraw, sarray(), Variant::UTILITY_FUNC_TYPE_GENERAL);
+ FUNCBINDVARARGV(print_verbose, sarray(), Variant::UTILITY_FUNC_TYPE_GENERAL);
FUNCBINDVARARGV(push_error, sarray(), Variant::UTILITY_FUNC_TYPE_GENERAL);
FUNCBINDVARARGV(push_warning, sarray(), Variant::UTILITY_FUNC_TYPE_GENERAL);
diff --git a/doc/classes/@GlobalScope.xml b/doc/classes/@GlobalScope.xml
index aee9bf0be5..fe0d7e4408 100644
--- a/doc/classes/@GlobalScope.xml
+++ b/doc/classes/@GlobalScope.xml
@@ -23,7 +23,7 @@
Returns the absolute value of float parameter [code]x[/code] (i.e. positive value).
[codeblock]
# a is 1.2
- a = absf(-1.2)
+ var a = absf(-1.2)
[/codeblock]
</description>
</method>
@@ -34,7 +34,7 @@
Returns the absolute value of int parameter [code]x[/code] (i.e. positive value).
[codeblock]
# a is 1
- a = absi(-1)
+ var a = absi(-1)
[/codeblock]
</description>
</method>
@@ -45,7 +45,7 @@
Returns the arc cosine of [code]x[/code] in radians. Use to get the angle of cosine [code]x[/code]. [code]x[/code] must be between [code]-1.0[/code] and [code]1.0[/code] (inclusive), otherwise, [method acos] will return [constant @GDScript.NAN].
[codeblock]
# c is 0.523599 or 30 degrees if converted with rad2deg(c)
- c = acos(0.866025)
+ var c = acos(0.866025)
[/codeblock]
</description>
</method>
@@ -56,7 +56,7 @@
Returns the arc sine of [code]x[/code] in radians. Use to get the angle of sine [code]x[/code]. [code]x[/code] must be between [code]-1.0[/code] and [code]1.0[/code] (inclusive), otherwise, [method asin] will return [constant @GDScript.NAN].
[codeblock]
# s is 0.523599 or 30 degrees if converted with rad2deg(s)
- s = asin(0.5)
+ var s = asin(0.5)
[/codeblock]
</description>
</method>
@@ -64,11 +64,12 @@
<return type="float" />
<argument index="0" name="x" type="float" />
<description>
- Returns the arc tangent of [code]x[/code] in radians. Use it to get the angle from an angle's tangent in trigonometry: [code]atan(tan(angle)) == angle[/code].
+ Returns the arc tangent of [code]x[/code] in radians. Use it to get the angle from an angle's tangent in trigonometry.
The method cannot know in which quadrant the angle should fall. See [method atan2] if you have both [code]y[/code] and [code]x[/code].
[codeblock]
- a = atan(0.5) # a is 0.463648
+ var a = atan(0.5) # a is 0.463648
[/codeblock]
+ If [code]x[/code] is between [code]-PI / 2[/code] and [code]PI / 2[/code] (inclusive), [code]atan(tan(x))[/code] is equal to [code]x[/code].
</description>
</method>
<method name="atan2">
@@ -79,7 +80,7 @@
Returns the arc tangent of [code]y/x[/code] in radians. Use to get the angle of tangent [code]y/x[/code]. To compute the value, the method takes into account the sign of both arguments in order to determine the quadrant.
Important note: The Y coordinate comes first, by convention.
[codeblock]
- a = atan2(0, -1) # a is 3.141593
+ var a = atan2(0, -1) # a is 3.141593
[/codeblock]
</description>
</method>
@@ -105,8 +106,8 @@
<description>
Rounds [code]x[/code] upward (towards positive infinity), returning the smallest whole number that is not less than [code]x[/code].
[codeblock]
- i = ceil(1.45) # i is 2
- i = ceil(1.001) # i is 2
+ var i = ceil(1.45) # i is 2.0
+ i = ceil(1.001) # i is 2.0
[/codeblock]
See also [method floor], [method round], and [method snapped].
</description>
@@ -127,9 +128,9 @@
<description>
Clamps the float [code]value[/code] and returns a value not less than [code]min[/code] and not more than [code]max[/code].
[codeblock]
- speed = 42.1
+ var speed = 42.1
# a is 20.0
- a = clampf(speed, 1.0, 20.0)
+ var a = clampf(speed, 1.0, 20.0)
speed = -10.0
# a is -1.0
@@ -145,9 +146,9 @@
<description>
Clamps the integer [code]value[/code] and returns a value not less than [code]min[/code] and not more than [code]max[/code].
[codeblock]
- speed = 42
+ var speed = 42
# a is 20
- a = clampi(speed, 1, 20)
+ var a = clampi(speed, 1, 20)
speed = -10
# a is -1
@@ -161,9 +162,9 @@
<description>
Returns the cosine of angle [code]angle_rad[/code] in radians.
[codeblock]
- # Prints 1 then -1
- print(cos(PI * 2))
- print(cos(PI))
+ cos(PI * 2) # Returns 1.0
+ cos(PI) # Returns -1.0
+ cos(deg2rad(90)) # Returns 0.0
[/codeblock]
</description>
</method>
@@ -192,7 +193,7 @@
Converts an angle expressed in degrees to radians.
[codeblock]
# r is 3.141593
- r = deg2rad(180)
+ var r = deg2rad(180)
[/codeblock]
</description>
</method>
@@ -230,7 +231,7 @@
[b]e[/b] has an approximate value of 2.71828, and can be obtained with [code]exp(1)[/code].
For exponents to other bases use the method [method pow].
[codeblock]
- a = exp(2) # Approximately 7.39
+ var a = exp(2) # Approximately 7.39
[/codeblock]
</description>
</method>
@@ -241,7 +242,7 @@
Rounds [code]x[/code] downward (towards negative infinity), returning the largest whole number that is not more than [code]x[/code].
[codeblock]
# a is 2.0
- a = floor(2.99)
+ var a = floor(2.99)
# a is -3.0
a = floor(-2.99)
[/codeblock]
@@ -561,12 +562,17 @@
<description>
Converts one or more arguments of any type to string in the best way possible and prints them to the console.
[codeblock]
- a = [1, 2, 3]
+ var a = [1, 2, 3]
print("a", "b", a) # Prints ab[1, 2, 3]
[/codeblock]
[b]Note:[/b] Consider using [method push_error] and [method push_warning] to print error and warning messages instead of [method print]. This distinguishes them from print messages used for debugging purposes, while also displaying a stack trace when an error or warning is printed.
</description>
</method>
+ <method name="print_verbose" qualifiers="vararg">
+ <description>
+ If verbose mode is enabled ([method OS.is_stdout_verbose] returning [code]true[/code]), converts one or more arguments of any type to string in the best way possible and prints them to the console.
+ </description>
+ </method>
<method name="printerr" qualifiers="vararg">
<description>
Prints one or more arguments to strings in the best way possible to standard error line.
@@ -735,7 +741,7 @@
<description>
Sets seed for the random number generator.
[codeblock]
- my_seed = "Godot Rocks"
+ var my_seed = "Godot Rocks"
seed(my_seed.hash())
[/codeblock]
</description>
@@ -776,7 +782,8 @@
<description>
Returns the sine of angle [code]angle_rad[/code] in radians.
[codeblock]
- sin(0.523599) # Returns 0.5
+ sin(0.523599) # Returns 0.5
+ sin(deg2rad(90)) # Returns 1.0
[/codeblock]
</description>
</method>
@@ -786,7 +793,7 @@
<description>
Returns the hyperbolic sine of [code]x[/code].
[codeblock]
- a = log(2.0) # Returns 0.693147
+ var a = log(2.0) # Returns 0.693147
sinh(a) # Returns 0.75
[/codeblock]
</description>
@@ -841,7 +848,7 @@
Returns the position of the first non-zero digit, after the decimal point. Note that the maximum return value is 10, which is a design decision in the implementation.
[codeblock]
# n is 0
- n = step_decimals(5)
+ var n = step_decimals(5)
# n is 4
n = step_decimals(1.0005)
# n is 9
@@ -861,8 +868,8 @@
<description>
Converts a formatted string that was returned by [method var2str] to the original value.
[codeblock]
- a = '{ "a": 1, "b": 2 }'
- b = str2var(a)
+ var a = '{ "a": 1, "b": 2 }'
+ var b = str2var(a)
print(b["a"]) # Prints 1
[/codeblock]
</description>
@@ -883,7 +890,7 @@
<description>
Returns the hyperbolic tangent of [code]x[/code].
[codeblock]
- a = log(2.0) # Returns 0.693147
+ var a = log(2.0) # Returns 0.693147
tanh(a) # Returns 0.6
[/codeblock]
</description>
diff --git a/doc/classes/AABB.xml b/doc/classes/AABB.xml
index 46fb446881..5d18f69409 100644
--- a/doc/classes/AABB.xml
+++ b/doc/classes/AABB.xml
@@ -61,6 +61,12 @@
Returns the volume of the [AABB].
</description>
</method>
+ <method name="get_center" qualifiers="const">
+ <return type="Vector3" />
+ <description>
+ Returns the center of the [AABB], which is equal to [member position] + ([member size] / 2).
+ </description>
+ </method>
<method name="get_endpoint" qualifiers="const">
<return type="Vector3" />
<argument index="0" name="idx" type="int" />
@@ -228,6 +234,4 @@
If the size is negative, you can use [method abs] to fix it.
</member>
</members>
- <constants>
- </constants>
</class>
diff --git a/doc/classes/AStar.xml b/doc/classes/AStar.xml
index 3e91184a65..11c0fc33b8 100644
--- a/doc/classes/AStar.xml
+++ b/doc/classes/AStar.xml
@@ -326,6 +326,4 @@
</description>
</method>
</methods>
- <constants>
- </constants>
</class>
diff --git a/doc/classes/AStar2D.xml b/doc/classes/AStar2D.xml
index 453e8b6315..43e7d59665 100644
--- a/doc/classes/AStar2D.xml
+++ b/doc/classes/AStar2D.xml
@@ -297,6 +297,4 @@
</description>
</method>
</methods>
- <constants>
- </constants>
</class>
diff --git a/doc/classes/AcceptDialog.xml b/doc/classes/AcceptDialog.xml
index 077c062d6b..c753b341d2 100644
--- a/doc/classes/AcceptDialog.xml
+++ b/doc/classes/AcceptDialog.xml
@@ -90,8 +90,6 @@
</description>
</signal>
</signals>
- <constants>
- </constants>
<theme_items>
<theme_item name="panel" data_type="style" type="StyleBox">
Panel that fills up the background of the window.
diff --git a/doc/classes/AnimatableBody2D.xml b/doc/classes/AnimatableBody2D.xml
index 731c702549..bc169cf9c9 100644
--- a/doc/classes/AnimatableBody2D.xml
+++ b/doc/classes/AnimatableBody2D.xml
@@ -10,13 +10,9 @@
</description>
<tutorials>
</tutorials>
- <methods>
- </methods>
<members>
- <member name="sync_to_physics" type="bool" setter="set_sync_to_physics" getter="is_sync_to_physics_enabled" default="false">
+ <member name="sync_to_physics" type="bool" setter="set_sync_to_physics" getter="is_sync_to_physics_enabled" default="true">
If [code]true[/code], the body's movement will be synchronized to the physics frame. This is useful when animating movement via [AnimationPlayer], for example on moving platforms. Do [b]not[/b] use together with [method PhysicsBody2D.move_and_collide].
</member>
</members>
- <constants>
- </constants>
</class>
diff --git a/doc/classes/AnimatableBody3D.xml b/doc/classes/AnimatableBody3D.xml
index 8192f26057..86cff38c51 100644
--- a/doc/classes/AnimatableBody3D.xml
+++ b/doc/classes/AnimatableBody3D.xml
@@ -13,13 +13,9 @@
<link title="Third Person Shooter Demo">https://godotengine.org/asset-library/asset/678</link>
<link title="3D Voxel Demo">https://godotengine.org/asset-library/asset/676</link>
</tutorials>
- <methods>
- </methods>
<members>
- <member name="sync_to_physics" type="bool" setter="set_sync_to_physics" getter="is_sync_to_physics_enabled" default="false">
+ <member name="sync_to_physics" type="bool" setter="set_sync_to_physics" getter="is_sync_to_physics_enabled" default="true">
If [code]true[/code], the body's movement will be synchronized to the physics frame. This is useful when animating movement via [AnimationPlayer], for example on moving platforms. Do [b]not[/b] use together with [method PhysicsBody3D.move_and_collide].
</member>
</members>
- <constants>
- </constants>
</class>
diff --git a/doc/classes/AnimatedSprite2D.xml b/doc/classes/AnimatedSprite2D.xml
index 14e19b4c9a..b468e1d109 100644
--- a/doc/classes/AnimatedSprite2D.xml
+++ b/doc/classes/AnimatedSprite2D.xml
@@ -74,6 +74,4 @@
</description>
</signal>
</signals>
- <constants>
- </constants>
</class>
diff --git a/doc/classes/AnimatedSprite3D.xml b/doc/classes/AnimatedSprite3D.xml
index 6b3d426cef..59d7553ef4 100644
--- a/doc/classes/AnimatedSprite3D.xml
+++ b/doc/classes/AnimatedSprite3D.xml
@@ -56,6 +56,4 @@
</description>
</signal>
</signals>
- <constants>
- </constants>
</class>
diff --git a/doc/classes/AnimationNodeAdd2.xml b/doc/classes/AnimationNodeAdd2.xml
index 63127ade9a..20ee33209b 100644
--- a/doc/classes/AnimationNodeAdd2.xml
+++ b/doc/classes/AnimationNodeAdd2.xml
@@ -9,13 +9,9 @@
<tutorials>
<link title="AnimationTree">https://docs.godotengine.org/en/latest/tutorials/animation/animation_tree.html</link>
</tutorials>
- <methods>
- </methods>
<members>
<member name="sync" type="bool" setter="set_use_sync" getter="is_using_sync" default="false">
If [code]true[/code], sets the [code]optimization[/code] to [code]false[/code] when calling [method AnimationNode.blend_input], forcing the blended animations to update every frame.
</member>
</members>
- <constants>
- </constants>
</class>
diff --git a/doc/classes/AnimationNodeAdd3.xml b/doc/classes/AnimationNodeAdd3.xml
index 0e49ac7bbf..26738499bb 100644
--- a/doc/classes/AnimationNodeAdd3.xml
+++ b/doc/classes/AnimationNodeAdd3.xml
@@ -14,13 +14,9 @@
<link title="AnimationTree">https://docs.godotengine.org/en/latest/tutorials/animation/animation_tree.html</link>
<link title="Third Person Shooter Demo">https://godotengine.org/asset-library/asset/678</link>
</tutorials>
- <methods>
- </methods>
<members>
<member name="sync" type="bool" setter="set_use_sync" getter="is_using_sync" default="false">
If [code]true[/code], sets the [code]optimization[/code] to [code]false[/code] when calling [method AnimationNode.blend_input], forcing the blended animations to update every frame.
</member>
</members>
- <constants>
- </constants>
</class>
diff --git a/doc/classes/AnimationNodeAnimation.xml b/doc/classes/AnimationNodeAnimation.xml
index 75dae6a48e..668a35226f 100644
--- a/doc/classes/AnimationNodeAnimation.xml
+++ b/doc/classes/AnimationNodeAnimation.xml
@@ -11,13 +11,9 @@
<link title="3D Platformer Demo">https://godotengine.org/asset-library/asset/125</link>
<link title="Third Person Shooter Demo">https://godotengine.org/asset-library/asset/678</link>
</tutorials>
- <methods>
- </methods>
<members>
<member name="animation" type="StringName" setter="set_animation" getter="get_animation" default="&amp;&quot;&quot;">
Animation to use as an output. It is one of the animations provided by [member AnimationTree.anim_player].
</member>
</members>
- <constants>
- </constants>
</class>
diff --git a/doc/classes/AnimationNodeBlend2.xml b/doc/classes/AnimationNodeBlend2.xml
index e509a2df6c..1f7a4c91c8 100644
--- a/doc/classes/AnimationNodeBlend2.xml
+++ b/doc/classes/AnimationNodeBlend2.xml
@@ -11,13 +11,9 @@
<link title="3D Platformer Demo">https://godotengine.org/asset-library/asset/125</link>
<link title="Third Person Shooter Demo">https://godotengine.org/asset-library/asset/678</link>
</tutorials>
- <methods>
- </methods>
<members>
<member name="sync" type="bool" setter="set_use_sync" getter="is_using_sync" default="false">
If [code]true[/code], sets the [code]optimization[/code] to [code]false[/code] when calling [method AnimationNode.blend_input], forcing the blended animations to update every frame.
</member>
</members>
- <constants>
- </constants>
</class>
diff --git a/doc/classes/AnimationNodeBlend3.xml b/doc/classes/AnimationNodeBlend3.xml
index 7c81b37663..ed827e2535 100644
--- a/doc/classes/AnimationNodeBlend3.xml
+++ b/doc/classes/AnimationNodeBlend3.xml
@@ -13,13 +13,9 @@
<tutorials>
<link title="AnimationTree">https://docs.godotengine.org/en/latest/tutorials/animation/animation_tree.html</link>
</tutorials>
- <methods>
- </methods>
<members>
<member name="sync" type="bool" setter="set_use_sync" getter="is_using_sync" default="false">
If [code]true[/code], sets the [code]optimization[/code] to [code]false[/code] when calling [method AnimationNode.blend_input], forcing the blended animations to update every frame.
</member>
</members>
- <constants>
- </constants>
</class>
diff --git a/doc/classes/AnimationNodeBlendSpace1D.xml b/doc/classes/AnimationNodeBlendSpace1D.xml
index c47d84fe37..6e55a79fd2 100644
--- a/doc/classes/AnimationNodeBlendSpace1D.xml
+++ b/doc/classes/AnimationNodeBlendSpace1D.xml
@@ -80,6 +80,4 @@
Label of the virtual axis of the blend space.
</member>
</members>
- <constants>
- </constants>
</class>
diff --git a/doc/classes/AnimationNodeOutput.xml b/doc/classes/AnimationNodeOutput.xml
index c4150d7e82..34c96d13ea 100644
--- a/doc/classes/AnimationNodeOutput.xml
+++ b/doc/classes/AnimationNodeOutput.xml
@@ -10,8 +10,4 @@
<link title="3D Platformer Demo">https://godotengine.org/asset-library/asset/125</link>
<link title="Third Person Shooter Demo">https://godotengine.org/asset-library/asset/678</link>
</tutorials>
- <methods>
- </methods>
- <constants>
- </constants>
</class>
diff --git a/doc/classes/AnimationNodeStateMachine.xml b/doc/classes/AnimationNodeStateMachine.xml
index 9921e157f2..17ef565b3a 100644
--- a/doc/classes/AnimationNodeStateMachine.xml
+++ b/doc/classes/AnimationNodeStateMachine.xml
@@ -187,6 +187,4 @@
</description>
</method>
</methods>
- <constants>
- </constants>
</class>
diff --git a/doc/classes/AnimationNodeStateMachinePlayback.xml b/doc/classes/AnimationNodeStateMachinePlayback.xml
index 5c11adfaf0..15c6c96302 100644
--- a/doc/classes/AnimationNodeStateMachinePlayback.xml
+++ b/doc/classes/AnimationNodeStateMachinePlayback.xml
@@ -74,6 +74,4 @@
<members>
<member name="resource_local_to_scene" type="bool" setter="set_local_to_scene" getter="is_local_to_scene" override="true" default="true" />
</members>
- <constants>
- </constants>
</class>
diff --git a/doc/classes/AnimationNodeStateMachineTransition.xml b/doc/classes/AnimationNodeStateMachineTransition.xml
index 7f07afecee..763bba6e93 100644
--- a/doc/classes/AnimationNodeStateMachineTransition.xml
+++ b/doc/classes/AnimationNodeStateMachineTransition.xml
@@ -7,8 +7,6 @@
<tutorials>
<link title="AnimationTree">https://docs.godotengine.org/en/latest/tutorials/animation/animation_tree.html</link>
</tutorials>
- <methods>
- </methods>
<members>
<member name="advance_condition" type="StringName" setter="set_advance_condition" getter="get_advance_condition" default="&amp;&quot;&quot;">
Turn on auto advance when this condition is set. The provided name will become a boolean parameter on the [AnimationTree] that can be controlled from code (see [url=https://docs.godotengine.org/en/latest/tutorials/animation/animation_tree.html#controlling-from-code][/url]). For example, if [member AnimationTree.tree_root] is an [AnimationNodeStateMachine] and [member advance_condition] is set to [code]"idle"[/code]:
diff --git a/doc/classes/AnimationNodeTimeScale.xml b/doc/classes/AnimationNodeTimeScale.xml
index 2ce8309418..5b40b39bca 100644
--- a/doc/classes/AnimationNodeTimeScale.xml
+++ b/doc/classes/AnimationNodeTimeScale.xml
@@ -10,8 +10,4 @@
<link title="AnimationTree">https://docs.godotengine.org/en/latest/tutorials/animation/animation_tree.html</link>
<link title="3D Platformer Demo">https://godotengine.org/asset-library/asset/125</link>
</tutorials>
- <methods>
- </methods>
- <constants>
- </constants>
</class>
diff --git a/doc/classes/AnimationNodeTimeSeek.xml b/doc/classes/AnimationNodeTimeSeek.xml
index 171d65fbe0..d927c663c8 100644
--- a/doc/classes/AnimationNodeTimeSeek.xml
+++ b/doc/classes/AnimationNodeTimeSeek.xml
@@ -29,8 +29,4 @@
<tutorials>
<link title="AnimationTree">https://docs.godotengine.org/en/latest/tutorials/animation/animation_tree.html</link>
</tutorials>
- <methods>
- </methods>
- <constants>
- </constants>
</class>
diff --git a/doc/classes/AnimationNodeTransition.xml b/doc/classes/AnimationNodeTransition.xml
index 8c859e43be..b297832ac0 100644
--- a/doc/classes/AnimationNodeTransition.xml
+++ b/doc/classes/AnimationNodeTransition.xml
@@ -47,6 +47,4 @@
Cross-fading time (in seconds) between each animation connected to the inputs.
</member>
</members>
- <constants>
- </constants>
</class>
diff --git a/doc/classes/AnimationRootNode.xml b/doc/classes/AnimationRootNode.xml
index 46759b7f4d..056edbd230 100644
--- a/doc/classes/AnimationRootNode.xml
+++ b/doc/classes/AnimationRootNode.xml
@@ -6,8 +6,4 @@
</description>
<tutorials>
</tutorials>
- <methods>
- </methods>
- <constants>
- </constants>
</class>
diff --git a/doc/classes/AnimationTrackEditPlugin.xml b/doc/classes/AnimationTrackEditPlugin.xml
index 7b96808581..4a4c7157d2 100644
--- a/doc/classes/AnimationTrackEditPlugin.xml
+++ b/doc/classes/AnimationTrackEditPlugin.xml
@@ -6,8 +6,4 @@
</description>
<tutorials>
</tutorials>
- <methods>
- </methods>
- <constants>
- </constants>
</class>
diff --git a/doc/classes/Array.xml b/doc/classes/Array.xml
index 84e123d712..44e27643bb 100644
--- a/doc/classes/Array.xml
+++ b/doc/classes/Array.xml
@@ -550,6 +550,4 @@
</description>
</method>
</methods>
- <constants>
- </constants>
</class>
diff --git a/doc/classes/ArrayMesh.xml b/doc/classes/ArrayMesh.xml
index 670a25ab83..49ce2588c5 100644
--- a/doc/classes/ArrayMesh.xml
+++ b/doc/classes/ArrayMesh.xml
@@ -203,6 +203,4 @@
<member name="shadow_mesh" type="ArrayMesh" setter="set_shadow_mesh" getter="get_shadow_mesh">
</member>
</members>
- <constants>
- </constants>
</class>
diff --git a/doc/classes/AspectRatioContainer.xml b/doc/classes/AspectRatioContainer.xml
index 7b41133139..4c0af0b997 100644
--- a/doc/classes/AspectRatioContainer.xml
+++ b/doc/classes/AspectRatioContainer.xml
@@ -8,8 +8,6 @@
</description>
<tutorials>
</tutorials>
- <methods>
- </methods>
<members>
<member name="alignment_horizontal" type="int" setter="set_alignment_horizontal" getter="get_alignment_horizontal" enum="AspectRatioContainer.AlignMode" default="1">
Specifies the horizontal relative position of child controls.
diff --git a/doc/classes/AtlasTexture.xml b/doc/classes/AtlasTexture.xml
index b49c0e4278..3435bbec59 100644
--- a/doc/classes/AtlasTexture.xml
+++ b/doc/classes/AtlasTexture.xml
@@ -9,8 +9,6 @@
</description>
<tutorials>
</tutorials>
- <methods>
- </methods>
<members>
<member name="atlas" type="Texture2D" setter="set_atlas" getter="get_atlas">
The texture that contains the atlas. Can be any [Texture2D] subtype.
@@ -25,6 +23,4 @@
The AtlasTexture's used region.
</member>
</members>
- <constants>
- </constants>
</class>
diff --git a/doc/classes/AudioBusLayout.xml b/doc/classes/AudioBusLayout.xml
index 09746913bd..b7e8d8932c 100644
--- a/doc/classes/AudioBusLayout.xml
+++ b/doc/classes/AudioBusLayout.xml
@@ -8,8 +8,4 @@
</description>
<tutorials>
</tutorials>
- <methods>
- </methods>
- <constants>
- </constants>
</class>
diff --git a/doc/classes/AudioEffect.xml b/doc/classes/AudioEffect.xml
index 955285bd2e..fd2bab073f 100644
--- a/doc/classes/AudioEffect.xml
+++ b/doc/classes/AudioEffect.xml
@@ -9,8 +9,4 @@
<tutorials>
<link title="Audio Mic Record Demo">https://godotengine.org/asset-library/asset/527</link>
</tutorials>
- <methods>
- </methods>
- <constants>
- </constants>
</class>
diff --git a/doc/classes/AudioEffectAmplify.xml b/doc/classes/AudioEffectAmplify.xml
index 1334a81661..7fcfe24d97 100644
--- a/doc/classes/AudioEffectAmplify.xml
+++ b/doc/classes/AudioEffectAmplify.xml
@@ -9,13 +9,9 @@
</description>
<tutorials>
</tutorials>
- <methods>
- </methods>
<members>
<member name="volume_db" type="float" setter="set_volume_db" getter="get_volume_db" default="0.0">
Amount of amplification in decibels. Positive values make the sound louder, negative values make it quieter. Value can range from -80 to 24.
</member>
</members>
- <constants>
- </constants>
</class>
diff --git a/doc/classes/AudioEffectBandLimitFilter.xml b/doc/classes/AudioEffectBandLimitFilter.xml
index e8b398c8f4..ed0a33deb1 100644
--- a/doc/classes/AudioEffectBandLimitFilter.xml
+++ b/doc/classes/AudioEffectBandLimitFilter.xml
@@ -8,8 +8,4 @@
</description>
<tutorials>
</tutorials>
- <methods>
- </methods>
- <constants>
- </constants>
</class>
diff --git a/doc/classes/AudioEffectBandPassFilter.xml b/doc/classes/AudioEffectBandPassFilter.xml
index ad3dbc5256..642b70428e 100644
--- a/doc/classes/AudioEffectBandPassFilter.xml
+++ b/doc/classes/AudioEffectBandPassFilter.xml
@@ -8,8 +8,4 @@
</description>
<tutorials>
</tutorials>
- <methods>
- </methods>
- <constants>
- </constants>
</class>
diff --git a/doc/classes/AudioEffectCapture.xml b/doc/classes/AudioEffectCapture.xml
index 8e46acbd07..6aecaa170a 100644
--- a/doc/classes/AudioEffectCapture.xml
+++ b/doc/classes/AudioEffectCapture.xml
@@ -61,6 +61,4 @@
Length of the internal ring buffer, in seconds. Setting the buffer length will have no effect if already initialized.
</member>
</members>
- <constants>
- </constants>
</class>
diff --git a/doc/classes/AudioEffectChorus.xml b/doc/classes/AudioEffectChorus.xml
index cc93a8fc03..e3ab141e3d 100644
--- a/doc/classes/AudioEffectChorus.xml
+++ b/doc/classes/AudioEffectChorus.xml
@@ -171,6 +171,4 @@
The effect's processed signal.
</member>
</members>
- <constants>
- </constants>
</class>
diff --git a/doc/classes/AudioEffectCompressor.xml b/doc/classes/AudioEffectCompressor.xml
index 4e924bcb65..28a5587377 100644
--- a/doc/classes/AudioEffectCompressor.xml
+++ b/doc/classes/AudioEffectCompressor.xml
@@ -14,8 +14,6 @@
</description>
<tutorials>
</tutorials>
- <methods>
- </methods>
<members>
<member name="attack_us" type="float" setter="set_attack_us" getter="get_attack_us" default="20.0">
Compressor's reaction time when the signal exceeds the threshold, in microseconds. Value can range from 20 to 2000.
@@ -39,6 +37,4 @@
The level above which compression is applied to the audio. Value can range from -60 to 0.
</member>
</members>
- <constants>
- </constants>
</class>
diff --git a/doc/classes/AudioEffectDelay.xml b/doc/classes/AudioEffectDelay.xml
index e55e0cb2ad..96bd43bc3b 100644
--- a/doc/classes/AudioEffectDelay.xml
+++ b/doc/classes/AudioEffectDelay.xml
@@ -9,8 +9,6 @@
</description>
<tutorials>
</tutorials>
- <methods>
- </methods>
<members>
<member name="dry" type="float" setter="set_dry" getter="get_dry" default="1.0">
Output percent of original sound. At 0, only delayed sounds are output. Value can range from 0 to 1.
@@ -52,6 +50,4 @@
Pan position for [code]tap2[/code]. Value can range from -1 (fully left) to 1 (fully right).
</member>
</members>
- <constants>
- </constants>
</class>
diff --git a/doc/classes/AudioEffectDistortion.xml b/doc/classes/AudioEffectDistortion.xml
index 24a145b0f3..600ca93028 100644
--- a/doc/classes/AudioEffectDistortion.xml
+++ b/doc/classes/AudioEffectDistortion.xml
@@ -11,8 +11,6 @@
<tutorials>
<link title="Audio buses">https://docs.godotengine.org/en/latest/tutorials/audio/audio_buses.html</link>
</tutorials>
- <methods>
- </methods>
<members>
<member name="drive" type="float" setter="set_drive" getter="get_drive" default="0.0">
Distortion power. Value can range from 0 to 1.
diff --git a/doc/classes/AudioEffectEQ.xml b/doc/classes/AudioEffectEQ.xml
index ddc1af0618..9d84f87cbe 100644
--- a/doc/classes/AudioEffectEQ.xml
+++ b/doc/classes/AudioEffectEQ.xml
@@ -32,6 +32,4 @@
</description>
</method>
</methods>
- <constants>
- </constants>
</class>
diff --git a/doc/classes/AudioEffectEQ10.xml b/doc/classes/AudioEffectEQ10.xml
index c9fb03e23c..be89a0c4d6 100644
--- a/doc/classes/AudioEffectEQ10.xml
+++ b/doc/classes/AudioEffectEQ10.xml
@@ -20,8 +20,4 @@
</description>
<tutorials>
</tutorials>
- <methods>
- </methods>
- <constants>
- </constants>
</class>
diff --git a/doc/classes/AudioEffectEQ21.xml b/doc/classes/AudioEffectEQ21.xml
index 7ff8a1756e..0b1a8b2a1d 100644
--- a/doc/classes/AudioEffectEQ21.xml
+++ b/doc/classes/AudioEffectEQ21.xml
@@ -31,8 +31,4 @@
</description>
<tutorials>
</tutorials>
- <methods>
- </methods>
- <constants>
- </constants>
</class>
diff --git a/doc/classes/AudioEffectEQ6.xml b/doc/classes/AudioEffectEQ6.xml
index b47da5ed2a..9f7efad375 100644
--- a/doc/classes/AudioEffectEQ6.xml
+++ b/doc/classes/AudioEffectEQ6.xml
@@ -16,8 +16,4 @@
</description>
<tutorials>
</tutorials>
- <methods>
- </methods>
- <constants>
- </constants>
</class>
diff --git a/doc/classes/AudioEffectFilter.xml b/doc/classes/AudioEffectFilter.xml
index 293848d204..5b43646077 100644
--- a/doc/classes/AudioEffectFilter.xml
+++ b/doc/classes/AudioEffectFilter.xml
@@ -9,8 +9,6 @@
<tutorials>
<link title="Audio buses">https://docs.godotengine.org/en/latest/tutorials/audio/audio_buses.html</link>
</tutorials>
- <methods>
- </methods>
<members>
<member name="cutoff_hz" type="float" setter="set_cutoff" getter="get_cutoff" default="2000.0">
Threshold frequency for the filter, in Hz.
diff --git a/doc/classes/AudioEffectHighPassFilter.xml b/doc/classes/AudioEffectHighPassFilter.xml
index 82a3c74941..e1bd7a3ff5 100644
--- a/doc/classes/AudioEffectHighPassFilter.xml
+++ b/doc/classes/AudioEffectHighPassFilter.xml
@@ -8,8 +8,4 @@
</description>
<tutorials>
</tutorials>
- <methods>
- </methods>
- <constants>
- </constants>
</class>
diff --git a/doc/classes/AudioEffectHighShelfFilter.xml b/doc/classes/AudioEffectHighShelfFilter.xml
index 4ba31f9fc8..c572824448 100644
--- a/doc/classes/AudioEffectHighShelfFilter.xml
+++ b/doc/classes/AudioEffectHighShelfFilter.xml
@@ -8,8 +8,4 @@
<tutorials>
<link title="Audio buses">https://docs.godotengine.org/en/latest/tutorials/audio/audio_buses.html</link>
</tutorials>
- <methods>
- </methods>
- <constants>
- </constants>
</class>
diff --git a/doc/classes/AudioEffectInstance.xml b/doc/classes/AudioEffectInstance.xml
index 9ab6028901..f9836226fc 100644
--- a/doc/classes/AudioEffectInstance.xml
+++ b/doc/classes/AudioEffectInstance.xml
@@ -6,8 +6,4 @@
</description>
<tutorials>
</tutorials>
- <methods>
- </methods>
- <constants>
- </constants>
</class>
diff --git a/doc/classes/AudioEffectLimiter.xml b/doc/classes/AudioEffectLimiter.xml
index 2fbea06aed..813429e42f 100644
--- a/doc/classes/AudioEffectLimiter.xml
+++ b/doc/classes/AudioEffectLimiter.xml
@@ -9,8 +9,6 @@
</description>
<tutorials>
</tutorials>
- <methods>
- </methods>
<members>
<member name="ceiling_db" type="float" setter="set_ceiling_db" getter="get_ceiling_db" default="-0.1">
The waveform's maximum allowed value, in decibels. Value can range from -20 to -0.1.
@@ -24,6 +22,4 @@
Threshold from which the limiter begins to be active, in decibels. Value can range from -30 to 0.
</member>
</members>
- <constants>
- </constants>
</class>
diff --git a/doc/classes/AudioEffectLowPassFilter.xml b/doc/classes/AudioEffectLowPassFilter.xml
index e7a66d03bd..ece2e57c96 100644
--- a/doc/classes/AudioEffectLowPassFilter.xml
+++ b/doc/classes/AudioEffectLowPassFilter.xml
@@ -8,8 +8,4 @@
</description>
<tutorials>
</tutorials>
- <methods>
- </methods>
- <constants>
- </constants>
</class>
diff --git a/doc/classes/AudioEffectLowShelfFilter.xml b/doc/classes/AudioEffectLowShelfFilter.xml
index 078e7bf1a1..e78dbf9732 100644
--- a/doc/classes/AudioEffectLowShelfFilter.xml
+++ b/doc/classes/AudioEffectLowShelfFilter.xml
@@ -8,8 +8,4 @@
<tutorials>
<link title="Audio buses">https://docs.godotengine.org/en/latest/tutorials/audio/audio_buses.html</link>
</tutorials>
- <methods>
- </methods>
- <constants>
- </constants>
</class>
diff --git a/doc/classes/AudioEffectNotchFilter.xml b/doc/classes/AudioEffectNotchFilter.xml
index 2393674a2e..f5e4abae96 100644
--- a/doc/classes/AudioEffectNotchFilter.xml
+++ b/doc/classes/AudioEffectNotchFilter.xml
@@ -8,8 +8,4 @@
</description>
<tutorials>
</tutorials>
- <methods>
- </methods>
- <constants>
- </constants>
</class>
diff --git a/doc/classes/AudioEffectPanner.xml b/doc/classes/AudioEffectPanner.xml
index 19c4cd1457..858c48c3b6 100644
--- a/doc/classes/AudioEffectPanner.xml
+++ b/doc/classes/AudioEffectPanner.xml
@@ -8,13 +8,9 @@
</description>
<tutorials>
</tutorials>
- <methods>
- </methods>
<members>
<member name="pan" type="float" setter="set_pan" getter="get_pan" default="0.0">
Pan position. Value can range from -1 (fully left) to 1 (fully right).
</member>
</members>
- <constants>
- </constants>
</class>
diff --git a/doc/classes/AudioEffectPhaser.xml b/doc/classes/AudioEffectPhaser.xml
index b1d229e150..2855d12d51 100644
--- a/doc/classes/AudioEffectPhaser.xml
+++ b/doc/classes/AudioEffectPhaser.xml
@@ -9,8 +9,6 @@
</description>
<tutorials>
</tutorials>
- <methods>
- </methods>
<members>
<member name="depth" type="float" setter="set_depth" getter="get_depth" default="1.0">
Governs how high the filter frequencies sweep. Low value will primarily affect bass frequencies. High value can sweep high into the treble. Value can range from 0.1 to 4.
@@ -28,6 +26,4 @@
Adjusts the rate in Hz at which the effect sweeps up and down across the frequency range.
</member>
</members>
- <constants>
- </constants>
</class>
diff --git a/doc/classes/AudioEffectPitchShift.xml b/doc/classes/AudioEffectPitchShift.xml
index 9c28a01650..0c323fd85c 100644
--- a/doc/classes/AudioEffectPitchShift.xml
+++ b/doc/classes/AudioEffectPitchShift.xml
@@ -9,8 +9,6 @@
</description>
<tutorials>
</tutorials>
- <methods>
- </methods>
<members>
<member name="fft_size" type="int" setter="set_fft_size" getter="get_fft_size" enum="AudioEffectPitchShift.FFTSize" default="3">
The size of the [url=https://en.wikipedia.org/wiki/Fast_Fourier_transform]Fast Fourier transform[/url] buffer. Higher values smooth out the effect over time, but have greater latency. The effects of this higher latency are especially noticeable on sounds that have sudden amplitude changes.
diff --git a/doc/classes/AudioEffectRecord.xml b/doc/classes/AudioEffectRecord.xml
index 9656718ee8..b32206726d 100644
--- a/doc/classes/AudioEffectRecord.xml
+++ b/doc/classes/AudioEffectRecord.xml
@@ -36,6 +36,4 @@
Specifies the format in which the sample will be recorded. See [enum AudioStreamSample.Format] for available formats.
</member>
</members>
- <constants>
- </constants>
</class>
diff --git a/doc/classes/AudioEffectReverb.xml b/doc/classes/AudioEffectReverb.xml
index fbe68cde0e..d931720e88 100644
--- a/doc/classes/AudioEffectReverb.xml
+++ b/doc/classes/AudioEffectReverb.xml
@@ -10,8 +10,6 @@
<tutorials>
<link title="Third Person Shooter Demo">https://godotengine.org/asset-library/asset/678</link>
</tutorials>
- <methods>
- </methods>
<members>
<member name="damping" type="float" setter="set_damping" getter="get_damping" default="0.5">
Defines how reflective the imaginary room's walls are. Value can range from 0 to 1.
@@ -38,6 +36,4 @@
Output percent of modified sound. At 0, only original sound is outputted. Value can range from 0 to 1.
</member>
</members>
- <constants>
- </constants>
</class>
diff --git a/doc/classes/AudioEffectSpectrumAnalyzer.xml b/doc/classes/AudioEffectSpectrumAnalyzer.xml
index 10d29ff8ab..b2f2c55aa2 100644
--- a/doc/classes/AudioEffectSpectrumAnalyzer.xml
+++ b/doc/classes/AudioEffectSpectrumAnalyzer.xml
@@ -11,8 +11,6 @@
<link title="https://godotengine.org/asset-library/asset/528">Audio Spectrum Demo</link>
<link title="https://godotengine.org/article/godot-32-will-get-new-audio-features">Godot 3.2 will get new audio features</link>
</tutorials>
- <methods>
- </methods>
<members>
<member name="buffer_length" type="float" setter="set_buffer_length" getter="get_buffer_length" default="2.0">
The length of the buffer to keep (in seconds). Higher values keep data around for longer, but require more memory.
diff --git a/doc/classes/AudioEffectStereoEnhance.xml b/doc/classes/AudioEffectStereoEnhance.xml
index 663e3e982c..e82892f355 100644
--- a/doc/classes/AudioEffectStereoEnhance.xml
+++ b/doc/classes/AudioEffectStereoEnhance.xml
@@ -6,8 +6,6 @@
</description>
<tutorials>
</tutorials>
- <methods>
- </methods>
<members>
<member name="pan_pullout" type="float" setter="set_pan_pullout" getter="get_pan_pullout" default="1.0">
</member>
@@ -16,6 +14,4 @@
<member name="time_pullout_ms" type="float" setter="set_time_pullout" getter="get_time_pullout" default="0.0">
</member>
</members>
- <constants>
- </constants>
</class>
diff --git a/doc/classes/AudioListener2D.xml b/doc/classes/AudioListener2D.xml
index 86dc870926..a7cdd0348c 100644
--- a/doc/classes/AudioListener2D.xml
+++ b/doc/classes/AudioListener2D.xml
@@ -30,6 +30,4 @@
</description>
</method>
</methods>
- <constants>
- </constants>
</class>
diff --git a/doc/classes/AudioListener3D.xml b/doc/classes/AudioListener3D.xml
index ed1f7fcc8f..4a56071b57 100644
--- a/doc/classes/AudioListener3D.xml
+++ b/doc/classes/AudioListener3D.xml
@@ -35,6 +35,4 @@
</description>
</method>
</methods>
- <constants>
- </constants>
</class>
diff --git a/doc/classes/AudioStream.xml b/doc/classes/AudioStream.xml
index 32e51603ee..cff7199c4a 100644
--- a/doc/classes/AudioStream.xml
+++ b/doc/classes/AudioStream.xml
@@ -46,6 +46,4 @@
</description>
</method>
</methods>
- <constants>
- </constants>
</class>
diff --git a/doc/classes/AudioStreamGenerator.xml b/doc/classes/AudioStreamGenerator.xml
index 8464bc8a85..05406846ce 100644
--- a/doc/classes/AudioStreamGenerator.xml
+++ b/doc/classes/AudioStreamGenerator.xml
@@ -12,8 +12,6 @@
<link title="Audio Generator Demo">https://godotengine.org/asset-library/asset/526</link>
<link title="https://godotengine.org/article/godot-32-will-get-new-audio-features">Godot 3.2 will get new audio features</link>
</tutorials>
- <methods>
- </methods>
<members>
<member name="buffer_length" type="float" setter="set_buffer_length" getter="get_buffer_length" default="0.5">
The length of the buffer to generate (in seconds). Lower values result in less latency, but require the script to generate audio data faster, resulting in increased CPU usage and more risk for audio cracking if the CPU can't keep up.
@@ -24,6 +22,4 @@
According to the [url=https://en.wikipedia.org/wiki/Nyquist%E2%80%93Shannon_sampling_theorem]Nyquist-Shannon sampling theorem[/url], there is no quality difference to human hearing when going past 40,000 Hz (since most humans can only hear up to ~20,000 Hz, often less). If you are generating lower-pitched sounds such as voices, lower sample rates such as [code]32000[/code] or [code]22050[/code] may be usable with no loss in quality.
</member>
</members>
- <constants>
- </constants>
</class>
diff --git a/doc/classes/AudioStreamGeneratorPlayback.xml b/doc/classes/AudioStreamGeneratorPlayback.xml
index d99d041053..7520d5d97a 100644
--- a/doc/classes/AudioStreamGeneratorPlayback.xml
+++ b/doc/classes/AudioStreamGeneratorPlayback.xml
@@ -50,6 +50,4 @@
</description>
</method>
</methods>
- <constants>
- </constants>
</class>
diff --git a/doc/classes/AudioStreamMicrophone.xml b/doc/classes/AudioStreamMicrophone.xml
index e73e50e3a9..13b0c2cd67 100644
--- a/doc/classes/AudioStreamMicrophone.xml
+++ b/doc/classes/AudioStreamMicrophone.xml
@@ -6,8 +6,4 @@
</description>
<tutorials>
</tutorials>
- <methods>
- </methods>
- <constants>
- </constants>
</class>
diff --git a/doc/classes/AudioStreamPlayback.xml b/doc/classes/AudioStreamPlayback.xml
index 25f3e076b4..bcf0b55b31 100644
--- a/doc/classes/AudioStreamPlayback.xml
+++ b/doc/classes/AudioStreamPlayback.xml
@@ -51,6 +51,4 @@
</description>
</method>
</methods>
- <constants>
- </constants>
</class>
diff --git a/doc/classes/AudioStreamPlaybackResampled.xml b/doc/classes/AudioStreamPlaybackResampled.xml
index faa563fdd8..d60d1acb7a 100644
--- a/doc/classes/AudioStreamPlaybackResampled.xml
+++ b/doc/classes/AudioStreamPlaybackResampled.xml
@@ -6,8 +6,4 @@
</description>
<tutorials>
</tutorials>
- <methods>
- </methods>
- <constants>
- </constants>
</class>
diff --git a/doc/classes/AudioStreamPlayer2D.xml b/doc/classes/AudioStreamPlayer2D.xml
index e36a428499..9c76eefbf9 100644
--- a/doc/classes/AudioStreamPlayer2D.xml
+++ b/doc/classes/AudioStreamPlayer2D.xml
@@ -87,6 +87,4 @@
</description>
</signal>
</signals>
- <constants>
- </constants>
</class>
diff --git a/doc/classes/AudioStreamRandomPitch.xml b/doc/classes/AudioStreamRandomPitch.xml
index 7e93b3267c..0f580699e9 100644
--- a/doc/classes/AudioStreamRandomPitch.xml
+++ b/doc/classes/AudioStreamRandomPitch.xml
@@ -8,8 +8,6 @@
</description>
<tutorials>
</tutorials>
- <methods>
- </methods>
<members>
<member name="audio_stream" type="AudioStream" setter="set_audio_stream" getter="get_audio_stream">
The current [AudioStream].
@@ -18,6 +16,4 @@
The intensity of random pitch variation.
</member>
</members>
- <constants>
- </constants>
</class>
diff --git a/doc/classes/BackBufferCopy.xml b/doc/classes/BackBufferCopy.xml
index 55ee573811..6f1dd9fc76 100644
--- a/doc/classes/BackBufferCopy.xml
+++ b/doc/classes/BackBufferCopy.xml
@@ -9,8 +9,6 @@
</description>
<tutorials>
</tutorials>
- <methods>
- </methods>
<members>
<member name="copy_mode" type="int" setter="set_copy_mode" getter="get_copy_mode" enum="BackBufferCopy.CopyMode" default="1">
Buffer mode. See [enum CopyMode] constants.
diff --git a/doc/classes/BitMap.xml b/doc/classes/BitMap.xml
index 9a349c957f..0997896260 100644
--- a/doc/classes/BitMap.xml
+++ b/doc/classes/BitMap.xml
@@ -81,6 +81,4 @@
</description>
</method>
</methods>
- <constants>
- </constants>
</class>
diff --git a/doc/classes/Bone2D.xml b/doc/classes/Bone2D.xml
index f9f3ea21f1..ef0778682f 100644
--- a/doc/classes/Bone2D.xml
+++ b/doc/classes/Bone2D.xml
@@ -90,6 +90,4 @@
Rest transform of the bone. You can reset the node's transforms to this value using [method apply_rest].
</member>
</members>
- <constants>
- </constants>
</class>
diff --git a/doc/classes/BoneAttachment3D.xml b/doc/classes/BoneAttachment3D.xml
index b493002c70..a1670430e6 100644
--- a/doc/classes/BoneAttachment3D.xml
+++ b/doc/classes/BoneAttachment3D.xml
@@ -78,6 +78,4 @@
The name of the attached bone.
</member>
</members>
- <constants>
- </constants>
</class>
diff --git a/doc/classes/BoxMesh.xml b/doc/classes/BoxMesh.xml
index dda5e2f1e5..af3365b6ea 100644
--- a/doc/classes/BoxMesh.xml
+++ b/doc/classes/BoxMesh.xml
@@ -10,8 +10,6 @@
</description>
<tutorials>
</tutorials>
- <methods>
- </methods>
<members>
<member name="size" type="Vector3" setter="set_size" getter="get_size" default="Vector3(2, 2, 2)">
The box's width, height and depth.
@@ -26,6 +24,4 @@
Number of extra edge loops inserted along the X axis.
</member>
</members>
- <constants>
- </constants>
</class>
diff --git a/doc/classes/BoxShape3D.xml b/doc/classes/BoxShape3D.xml
index 5704de905b..3bfded6512 100644
--- a/doc/classes/BoxShape3D.xml
+++ b/doc/classes/BoxShape3D.xml
@@ -11,13 +11,9 @@
<link title="3D Kinematic Character Demo">https://godotengine.org/asset-library/asset/126</link>
<link title="3D Platformer Demo">https://godotengine.org/asset-library/asset/125</link>
</tutorials>
- <methods>
- </methods>
<members>
<member name="size" type="Vector3" setter="set_size" getter="get_size" default="Vector3(2, 2, 2)">
The box's width, height and depth.
</member>
</members>
- <constants>
- </constants>
</class>
diff --git a/doc/classes/ButtonGroup.xml b/doc/classes/ButtonGroup.xml
index 302a213836..9229e69fa7 100644
--- a/doc/classes/ButtonGroup.xml
+++ b/doc/classes/ButtonGroup.xml
@@ -34,6 +34,4 @@
</description>
</signal>
</signals>
- <constants>
- </constants>
</class>
diff --git a/doc/classes/Callable.xml b/doc/classes/Callable.xml
index 5f5ef4f964..0a95836e96 100644
--- a/doc/classes/Callable.xml
+++ b/doc/classes/Callable.xml
@@ -168,6 +168,4 @@
</description>
</method>
</methods>
- <constants>
- </constants>
</class>
diff --git a/doc/classes/CallbackTweener.xml b/doc/classes/CallbackTweener.xml
index fab5f06ba8..70709d269c 100644
--- a/doc/classes/CallbackTweener.xml
+++ b/doc/classes/CallbackTweener.xml
@@ -22,6 +22,4 @@
</description>
</method>
</methods>
- <constants>
- </constants>
</class>
diff --git a/doc/classes/CameraEffects.xml b/doc/classes/CameraEffects.xml
index 7a874d31db..5cbd489143 100644
--- a/doc/classes/CameraEffects.xml
+++ b/doc/classes/CameraEffects.xml
@@ -9,8 +9,6 @@
</description>
<tutorials>
</tutorials>
- <methods>
- </methods>
<members>
<member name="dof_blur_amount" type="float" setter="set_dof_blur_amount" getter="get_dof_blur_amount" default="0.1">
The amount of blur for both near and far depth-of-field effects. The amount of blur increases the radius of the blur effect, making the affected area blurrier. However, If the amount is too high, you might start to see lines appearing, especially when using a low quality blur.
@@ -40,6 +38,4 @@
If [code]true[/code], overrides the manual or automatic exposure defined in the [Environment] with the value in [member override_exposure].
</member>
</members>
- <constants>
- </constants>
</class>
diff --git a/doc/classes/CameraTexture.xml b/doc/classes/CameraTexture.xml
index c0730129a9..2030d3bb45 100644
--- a/doc/classes/CameraTexture.xml
+++ b/doc/classes/CameraTexture.xml
@@ -9,8 +9,6 @@
</description>
<tutorials>
</tutorials>
- <methods>
- </methods>
<members>
<member name="camera_feed_id" type="int" setter="set_camera_feed_id" getter="get_camera_feed_id" default="0">
The ID of the [CameraFeed] for which we want to display the image.
@@ -22,6 +20,4 @@
Which image within the [CameraFeed] we want access to, important if the camera image is split in a Y and CbCr component.
</member>
</members>
- <constants>
- </constants>
</class>
diff --git a/doc/classes/CanvasGroup.xml b/doc/classes/CanvasGroup.xml
index ceeda6c3f5..e9b2c9a915 100644
--- a/doc/classes/CanvasGroup.xml
+++ b/doc/classes/CanvasGroup.xml
@@ -6,8 +6,6 @@
</description>
<tutorials>
</tutorials>
- <methods>
- </methods>
<members>
<member name="clear_margin" type="float" setter="set_clear_margin" getter="get_clear_margin" default="10.0">
</member>
@@ -16,6 +14,4 @@
<member name="use_mipmaps" type="bool" setter="set_use_mipmaps" getter="is_using_mipmaps" default="false">
</member>
</members>
- <constants>
- </constants>
</class>
diff --git a/doc/classes/CanvasItemMaterial.xml b/doc/classes/CanvasItemMaterial.xml
index 780899bff7..3f9dd02e4c 100644
--- a/doc/classes/CanvasItemMaterial.xml
+++ b/doc/classes/CanvasItemMaterial.xml
@@ -8,8 +8,6 @@
</description>
<tutorials>
</tutorials>
- <methods>
- </methods>
<members>
<member name="blend_mode" type="int" setter="set_blend_mode" getter="get_blend_mode" enum="CanvasItemMaterial.BlendMode" default="0">
The manner in which a material's rendering is applied to underlying textures.
diff --git a/doc/classes/CanvasLayer.xml b/doc/classes/CanvasLayer.xml
index 616fb24a6f..2f99f94893 100644
--- a/doc/classes/CanvasLayer.xml
+++ b/doc/classes/CanvasLayer.xml
@@ -45,6 +45,4 @@
The layer's transform.
</member>
</members>
- <constants>
- </constants>
</class>
diff --git a/doc/classes/CanvasModulate.xml b/doc/classes/CanvasModulate.xml
index 3540fa423f..d5f85132a5 100644
--- a/doc/classes/CanvasModulate.xml
+++ b/doc/classes/CanvasModulate.xml
@@ -8,13 +8,9 @@
</description>
<tutorials>
</tutorials>
- <methods>
- </methods>
<members>
<member name="color" type="Color" setter="set_color" getter="get_color" default="Color(1, 1, 1, 1)">
The tint color to apply.
</member>
</members>
- <constants>
- </constants>
</class>
diff --git a/doc/classes/CanvasTexture.xml b/doc/classes/CanvasTexture.xml
index f7147d9f0b..28a62ae1e1 100644
--- a/doc/classes/CanvasTexture.xml
+++ b/doc/classes/CanvasTexture.xml
@@ -6,8 +6,6 @@
</description>
<tutorials>
</tutorials>
- <methods>
- </methods>
<members>
<member name="diffuse_texture" type="Texture2D" setter="set_diffuse_texture" getter="get_diffuse_texture">
</member>
@@ -24,6 +22,4 @@
<member name="texture_repeat" type="int" setter="set_texture_repeat" getter="get_texture_repeat" enum="CanvasItem.TextureRepeat" default="0">
</member>
</members>
- <constants>
- </constants>
</class>
diff --git a/doc/classes/CapsuleMesh.xml b/doc/classes/CapsuleMesh.xml
index b8605ccaec..3b4e60ce93 100644
--- a/doc/classes/CapsuleMesh.xml
+++ b/doc/classes/CapsuleMesh.xml
@@ -8,8 +8,6 @@
</description>
<tutorials>
</tutorials>
- <methods>
- </methods>
<members>
<member name="height" type="float" setter="set_height" getter="get_height" default="3.0">
Total height of the capsule mesh (including the hemispherical ends).
@@ -24,6 +22,4 @@
Number of rings along the height of the capsule.
</member>
</members>
- <constants>
- </constants>
</class>
diff --git a/doc/classes/CapsuleShape2D.xml b/doc/classes/CapsuleShape2D.xml
index 8ed7d56557..74db0da033 100644
--- a/doc/classes/CapsuleShape2D.xml
+++ b/doc/classes/CapsuleShape2D.xml
@@ -8,8 +8,6 @@
</description>
<tutorials>
</tutorials>
- <methods>
- </methods>
<members>
<member name="height" type="float" setter="set_height" getter="get_height" default="30.0">
The capsule's height.
@@ -18,6 +16,4 @@
The capsule's radius.
</member>
</members>
- <constants>
- </constants>
</class>
diff --git a/doc/classes/CapsuleShape3D.xml b/doc/classes/CapsuleShape3D.xml
index c2b13224cf..8856ec3779 100644
--- a/doc/classes/CapsuleShape3D.xml
+++ b/doc/classes/CapsuleShape3D.xml
@@ -9,8 +9,6 @@
<tutorials>
<link title="3D Physics Tests Demo">https://godotengine.org/asset-library/asset/675</link>
</tutorials>
- <methods>
- </methods>
<members>
<member name="height" type="float" setter="set_height" getter="get_height" default="3.0">
The capsule's height.
@@ -19,6 +17,4 @@
The capsule's radius.
</member>
</members>
- <constants>
- </constants>
</class>
diff --git a/doc/classes/CenterContainer.xml b/doc/classes/CenterContainer.xml
index 435f4eb06b..8f8a978f9e 100644
--- a/doc/classes/CenterContainer.xml
+++ b/doc/classes/CenterContainer.xml
@@ -8,13 +8,9 @@
</description>
<tutorials>
</tutorials>
- <methods>
- </methods>
<members>
<member name="use_top_left" type="bool" setter="set_use_top_left" getter="is_using_top_left" default="false">
If [code]true[/code], centers children relative to the [CenterContainer]'s top left corner.
</member>
</members>
- <constants>
- </constants>
</class>
diff --git a/doc/classes/CharFXTransform.xml b/doc/classes/CharFXTransform.xml
index 1f63b530b1..b00031edf6 100644
--- a/doc/classes/CharFXTransform.xml
+++ b/doc/classes/CharFXTransform.xml
@@ -10,8 +10,6 @@
<link title="BBCode in RichTextLabel">https://docs.godotengine.org/en/latest/tutorials/gui/bbcode_in_richtextlabel.html</link>
<link title="RichTextEffect test project (third-party)">https://github.com/Eoin-ONeill-Yokai/Godot-Rich-Text-Effect-Test-Project</link>
</tutorials>
- <methods>
- </methods>
<members>
<member name="color" type="Color" setter="set_color" getter="get_color" default="Color(0, 0, 0, 1)">
The color the character will be drawn with.
@@ -30,6 +28,12 @@
<member name="font" type="RID" setter="set_font" getter="get_font">
Font resource used to render glyph.
</member>
+ <member name="glyph_count" type="int" setter="set_glyph_count" getter="get_glyph_count" default="0">
+ Number of glyphs in the grapheme cluster. This value is set in the first glyph of a cluster. Setting this property won't affect drawing.
+ </member>
+ <member name="glyph_flags" type="int" setter="set_glyph_flags" getter="get_glyph_flags" default="0">
+ Glyph flags. See [enum TextServer.GraphemeFlag] for more info. Setting this property won't affect drawing.
+ </member>
<member name="glyph_index" type="int" setter="set_glyph_index" getter="get_glyph_index" default="0">
Font specific glyph index.
</member>
@@ -46,6 +50,4 @@
If [code]true[/code], the character will be drawn. If [code]false[/code], the character will be hidden. Characters around hidden characters will reflow to take the space of hidden characters. If this is not desired, set their [member color] to [code]Color(1, 1, 1, 0)[/code] instead.
</member>
</members>
- <constants>
- </constants>
</class>
diff --git a/doc/classes/CharacterBody2D.xml b/doc/classes/CharacterBody2D.xml
index 7637356f63..35702070be 100644
--- a/doc/classes/CharacterBody2D.xml
+++ b/doc/classes/CharacterBody2D.xml
@@ -133,11 +133,11 @@
<member name="floor_max_angle" type="float" setter="set_floor_max_angle" getter="get_floor_max_angle" default="0.785398">
Maximum angle (in radians) where a slope is still considered a floor (or a ceiling), rather than a wall, when calling [method move_and_slide]. The default value equals 45 degrees.
</member>
- <member name="floor_snap_length" type="float" setter="set_floor_snap_length" getter="get_floor_snap_length" default="0.0">
+ <member name="floor_snap_length" type="float" setter="set_floor_snap_length" getter="get_floor_snap_length" default="1.0">
Sets a snapping distance. When set to a value different from [code]0.0[/code], the body is kept attached to slopes when calling [method move_and_slide]. The snapping vector is determined by the given distance along the opposite direction of the [member up_direction].
As long as the snapping vector is in contact with the ground and the body moves against `up_direction`, the body will remain attached to the surface. Snapping is not applied if the body moves along `up_direction`, so it will be able to detach from the ground when jumping.
</member>
- <member name="floor_stop_on_slope" type="bool" setter="set_floor_stop_on_slope_enabled" getter="is_floor_stop_on_slope_enabled" default="false">
+ <member name="floor_stop_on_slope" type="bool" setter="set_floor_stop_on_slope_enabled" getter="is_floor_stop_on_slope_enabled" default="true">
If [code]true[/code], the body will not slide on floor's slopes when you include gravity in [code]linear_velocity[/code] when calling [method move_and_slide] and the body is standing still.
</member>
<member name="free_mode_min_slide_angle" type="float" setter="set_free_mode_min_slide_angle" getter="get_free_mode_min_slide_angle" default="0.261799">
@@ -170,7 +170,7 @@
Apply when notions of walls, ceiling and floor are relevant. In this mode the body motion will react to slopes (acceleration/slowdown). This mode is suitable for sided games like platformers.
</constant>
<constant name="MOTION_MODE_FREE" value="1" enum="MotionMode">
- Apply when there is no notion of floor or ceiling. All collisions will be reported as [code]on_wall[/code]. In this mode, when you slide, the speed will be always constant. This mode is suitable for top-down games.
+ Apply when there is no notion of floor or ceiling. All collisions will be reported as [code]on_wall[/code]. In this mode, when you slide, the speed will always be constant. This mode is suitable for top-down games.
</constant>
</constants>
</class>
diff --git a/doc/classes/CharacterBody3D.xml b/doc/classes/CharacterBody3D.xml
index f08a2cafea..66d9940b60 100644
--- a/doc/classes/CharacterBody3D.xml
+++ b/doc/classes/CharacterBody3D.xml
@@ -29,6 +29,12 @@
Returns the surface normal of the floor at the last collision point. Only valid after calling [method move_and_slide] and when [method is_on_floor] returns [code]true[/code].
</description>
</method>
+ <method name="get_last_motion" qualifiers="const">
+ <return type="Vector3" />
+ <description>
+ Returns the last motion applied to the [CharacterBody3D] during the last call to [method move_and_slide]. The movement can be split if needed into multiple motion, this method return the last one, it's useful to retrieve the current direction of the movement.
+ </description>
+ </method>
<method name="get_last_slide_collision">
<return type="KinematicCollision3D" />
<description>
@@ -41,6 +47,18 @@
Returns the linear velocity of the floor at the last collision point. Only valid after calling [method move_and_slide] and when [method is_on_floor] returns [code]true[/code].
</description>
</method>
+ <method name="get_position_delta" qualifiers="const">
+ <return type="Vector3" />
+ <description>
+ Returns the travel (position delta) that occurred during the last call to [method move_and_slide].
+ </description>
+ </method>
+ <method name="get_real_velocity" qualifiers="const">
+ <return type="Vector3" />
+ <description>
+ Returns the current real velocity since the last call to [method move_and_slide]. For example, when you climb a slope, you will move diagonally even though the velocity is horizontal. This method returns the diagonal movement, as opposed to [member linear_velocity] which returns the requested velocity.
+ </description>
+ </method>
<method name="get_slide_collision">
<return type="KinematicCollision3D" />
<argument index="0" name="slide_idx" type="int" />
@@ -54,6 +72,12 @@
Returns the number of times the body collided and changed direction during the last call to [method move_and_slide].
</description>
</method>
+ <method name="get_wall_normal" qualifiers="const">
+ <return type="Vector3" />
+ <description>
+ Returns the surface normal of the wall at the last collision point. Only valid after calling [method move_and_slide] and when [method is_on_wall] returns [code]true[/code].
+ </description>
+ </method>
<method name="is_on_ceiling" qualifiers="const">
<return type="bool" />
<description>
@@ -108,26 +132,66 @@
A higher value means it's more flexible for detecting collision, which helps with consistently detecting walls and floors.
A lower value forces the collision algorithm to use more exact detection, so it can be used in cases that specifically require precision, e.g at very low scale to avoid visible jittering, or for stability with a stack of character bodies.
</member>
+ <member name="floor_block_on_wall" type="bool" setter="set_floor_block_on_wall_enabled" getter="is_floor_block_on_wall_enabled" default="true">
+ If [code]true[/code], the body will be able to move on the floor only. This option avoids to be able to walk on walls, it will however allow to slide down along them.
+ </member>
+ <member name="floor_constant_speed" type="bool" setter="set_floor_constant_speed_enabled" getter="is_floor_constant_speed_enabled" default="false">
+ If [code]false[/code] (by default), the body will move faster on downward slopes and slower on upward slopes.
+ If [code]true[/code], the body will always move at the same speed on the ground no matter the slope. Note that you need to use [member floor_snap_length] to stick along a downward slope at constant speed.
+ </member>
<member name="floor_max_angle" type="float" setter="set_floor_max_angle" getter="get_floor_max_angle" default="0.785398">
Maximum angle (in radians) where a slope is still considered a floor (or a ceiling), rather than a wall, when calling [method move_and_slide]. The default value equals 45 degrees.
</member>
- <member name="floor_stop_on_slope" type="bool" setter="set_floor_stop_on_slope_enabled" getter="is_floor_stop_on_slope_enabled" default="false">
+ <member name="floor_snap_length" type="float" setter="set_floor_snap_length" getter="get_floor_snap_length" default="0.1">
+ Sets a snapping distance. When set to a value different from [code]0.0[/code], the body is kept attached to slopes when calling [method move_and_slide]. The snapping vector is determined by the given distance along the opposite direction of the [member up_direction].
+ As long as the snapping vector is in contact with the ground and the body moves against `up_direction`, the body will remain attached to the surface. Snapping is not applied if the body moves along `up_direction`, so it will be able to detach from the ground when jumping.
+ </member>
+ <member name="floor_stop_on_slope" type="bool" setter="set_floor_stop_on_slope_enabled" getter="is_floor_stop_on_slope_enabled" default="true">
If [code]true[/code], the body will not slide on slopes when you include gravity in [code]linear_velocity[/code] when calling [method move_and_slide] and the body is standing still.
</member>
<member name="linear_velocity" type="Vector3" setter="set_linear_velocity" getter="get_linear_velocity" default="Vector3(0, 0, 0)">
Current velocity vector (typically meters per second), used and modified during calls to [method move_and_slide].
</member>
- <member name="max_slides" type="int" setter="set_max_slides" getter="get_max_slides" default="4">
+ <member name="max_slides" type="int" setter="set_max_slides" getter="get_max_slides" default="6">
Maximum number of times the body can change direction before it stops when calling [method move_and_slide].
</member>
- <member name="snap" type="Vector3" setter="set_snap" getter="get_snap" default="Vector3(0, 0, 0)">
- When set to a value different from [code]Vector3(0, 0, 0)[/code], the body is kept attached to slopes when calling [method move_and_slide].
- As long as the [code]snap[/code] vector is in contact with the ground, the body will remain attached to the surface. This means you must disable snap in order to jump, for example. You can do this by setting [code]snap[/code] to [code]Vector3(0, 0, 0)[/code].
+ <member name="motion_mode" type="int" setter="set_motion_mode" getter="get_motion_mode" enum="CharacterBody3D.MotionMode" default="0">
+ Sets the motion mode which defines the behaviour of [method move_and_slide]. See [enum MotionMode] constants for available modes.
+ </member>
+ <member name="moving_platform_apply_velocity_on_leave" type="int" setter="set_moving_platform_apply_velocity_on_leave" getter="get_moving_platform_apply_velocity_on_leave" enum="CharacterBody3D.MovingPlatformApplyVelocityOnLeave" default="0">
+ Sets the behaviour to apply when you leave a moving platform. By default, to be physically accurate, when you leave the last platform velocity is applied. See [enum MovingPlatformApplyVelocityOnLeave] constants for available behaviour.
+ </member>
+ <member name="moving_platform_floor_layers" type="int" setter="set_moving_platform_floor_layers" getter="get_moving_platform_floor_layers" default="4294967295">
+ Collision layers that will be included for detecting floor bodies that will act as moving platforms to be followed by the [CharacterBody2D]. By default, all floor bodies are detected and propagate their velocity.
+ </member>
+ <member name="moving_platform_wall_layers" type="int" setter="set_moving_platform_wall_layers" getter="get_moving_platform_wall_layers" default="0">
+ Collision layers that will be included for detecting wall bodies that will act as moving platforms to be followed by the [CharacterBody2D]. By default, all wall bodies are ignored.
+ </member>
+ <member name="slide_on_ceiling" type="bool" setter="set_slide_on_ceiling_enabled" getter="is_slide_on_ceiling_enabled" default="true">
+ If [code]true[/code], during a jump against the ceiling, the body will slide, if [code]false[/code] it will be stopped and will fall vertically.
</member>
<member name="up_direction" type="Vector3" setter="set_up_direction" getter="get_up_direction" default="Vector3(0, 1, 0)">
Direction vector used to determine what is a wall and what is a floor (or a ceiling), rather than a wall, when calling [method move_and_slide]. Defaults to [code]Vector3.UP[/code]. If set to [code]Vector3(0, 0, 0)[/code], everything is considered a wall. This is useful for topdown games.
</member>
+ <member name="wall_min_slide_angle" type="float" setter="set_wall_min_slide_angle" getter="get_wall_min_slide_angle" default="0.261799">
+ Minimum angle (in radians) where the body is allowed to slide when it encounters a slope. The default value equals 15 degrees. In [code]MOTION_MODE_GROUNDED[/code], it works only when [member floor_block_on_wall] is [code]true[/code].
+ </member>
</members>
<constants>
+ <constant name="MOTION_MODE_GROUNDED" value="0" enum="MotionMode">
+ Apply when notions of walls, ceiling and floor are relevant. In this mode the body motion will react to slopes (acceleration/slowdown). This mode is suitable for grounded games like platformers.
+ </constant>
+ <constant name="MOTION_MODE_FREE" value="1" enum="MotionMode">
+ Apply when there is no notion of floor or ceiling. All collisions will be reported as [code]on_wall[/code]. In this mode, when you slide, the speed will always be constant. This mode is suitable for games without ground like space games.
+ </constant>
+ <constant name="PLATFORM_VEL_ON_LEAVE_ALWAYS" value="0" enum="MovingPlatformApplyVelocityOnLeave">
+ Add the last platform velocity to the [member linear_velocity] when you leave a moving platform.
+ </constant>
+ <constant name="PLATFORM_VEL_ON_LEAVE_UPWARD_ONLY" value="1" enum="MovingPlatformApplyVelocityOnLeave">
+ Add the last platform velocity to the [member linear_velocity] when you leave a moving platform, but any downward motion is ignored. It's useful to keep full jump height even when the platform is moving down.
+ </constant>
+ <constant name="PLATFORM_VEL_ON_LEAVE_NEVER" value="2" enum="MovingPlatformApplyVelocityOnLeave">
+ Do nothing when leaving a platform.
+ </constant>
</constants>
</class>
diff --git a/doc/classes/CheckBox.xml b/doc/classes/CheckBox.xml
index f13a6ea34a..a674fa8339 100644
--- a/doc/classes/CheckBox.xml
+++ b/doc/classes/CheckBox.xml
@@ -9,14 +9,10 @@
</description>
<tutorials>
</tutorials>
- <methods>
- </methods>
<members>
<member name="align" type="int" setter="set_text_align" getter="get_text_align" override="true" enum="Button.TextAlign" default="0" />
<member name="toggle_mode" type="bool" setter="set_toggle_mode" getter="is_toggle_mode" override="true" default="true" />
</members>
- <constants>
- </constants>
<theme_items>
<theme_item name="check_vadjust" data_type="constant" type="int" default="0">
The vertical offset used when rendering the check icons (in pixels).
diff --git a/doc/classes/CheckButton.xml b/doc/classes/CheckButton.xml
index a0a05bcb79..12bd493ae1 100644
--- a/doc/classes/CheckButton.xml
+++ b/doc/classes/CheckButton.xml
@@ -9,14 +9,10 @@
</description>
<tutorials>
</tutorials>
- <methods>
- </methods>
<members>
<member name="align" type="int" setter="set_text_align" getter="get_text_align" override="true" enum="Button.TextAlign" default="0" />
<member name="toggle_mode" type="bool" setter="set_toggle_mode" getter="is_toggle_mode" override="true" default="true" />
</members>
- <constants>
- </constants>
<theme_items>
<theme_item name="check_vadjust" data_type="constant" type="int" default="0">
The vertical offset used when rendering the toggle icons (in pixels).
diff --git a/doc/classes/CircleShape2D.xml b/doc/classes/CircleShape2D.xml
index db889b0f1b..3969734d3f 100644
--- a/doc/classes/CircleShape2D.xml
+++ b/doc/classes/CircleShape2D.xml
@@ -8,13 +8,9 @@
</description>
<tutorials>
</tutorials>
- <methods>
- </methods>
<members>
<member name="radius" type="float" setter="set_radius" getter="get_radius" default="10.0">
The circle's radius.
</member>
</members>
- <constants>
- </constants>
</class>
diff --git a/doc/classes/ClassDB.xml b/doc/classes/ClassDB.xml
index 62165a5fce..5f39fc48e0 100644
--- a/doc/classes/ClassDB.xml
+++ b/doc/classes/ClassDB.xml
@@ -199,6 +199,4 @@
</description>
</method>
</methods>
- <constants>
- </constants>
</class>
diff --git a/doc/classes/CodeEdit.xml b/doc/classes/CodeEdit.xml
index 93f72d45ae..d856990ff8 100644
--- a/doc/classes/CodeEdit.xml
+++ b/doc/classes/CodeEdit.xml
@@ -671,6 +671,12 @@
<theme_item name="read_only" data_type="style" type="StyleBox">
Sets the [StyleBox] when [member TextEdit.editable] is disabled.
</theme_item>
+ <theme_item name="search_result_border_color" data_type="color" type="Color" default="Color(0.3, 0.3, 0.3, 0.4)">
+ [Color] of the border around text that matches the search query.
+ </theme_item>
+ <theme_item name="search_result_color" data_type="color" type="Color" default="Color(0.3, 0.3, 0.3, 1)">
+ [Color] behind the text that matches the search query.
+ </theme_item>
<theme_item name="selection_color" data_type="color" type="Color" default="Color(0.49, 0.49, 0.49, 1)">
Sets the highlight [Color] of text selections.
</theme_item>
diff --git a/doc/classes/CodeHighlighter.xml b/doc/classes/CodeHighlighter.xml
index 2b93188d10..064be0c29d 100644
--- a/doc/classes/CodeHighlighter.xml
+++ b/doc/classes/CodeHighlighter.xml
@@ -138,6 +138,4 @@
Sets the color for symbols.
</member>
</members>
- <constants>
- </constants>
</class>
diff --git a/doc/classes/CollisionPolygon2D.xml b/doc/classes/CollisionPolygon2D.xml
index 4607ab3fbd..cdaa0638ba 100644
--- a/doc/classes/CollisionPolygon2D.xml
+++ b/doc/classes/CollisionPolygon2D.xml
@@ -8,8 +8,6 @@
</description>
<tutorials>
</tutorials>
- <methods>
- </methods>
<members>
<member name="build_mode" type="int" setter="set_build_mode" getter="get_build_mode" enum="CollisionPolygon2D.BuildMode" default="0">
Collision build mode. Use one of the [enum BuildMode] constants.
diff --git a/doc/classes/CollisionPolygon3D.xml b/doc/classes/CollisionPolygon3D.xml
index cf0e55e712..b70f517da1 100644
--- a/doc/classes/CollisionPolygon3D.xml
+++ b/doc/classes/CollisionPolygon3D.xml
@@ -8,8 +8,6 @@
</description>
<tutorials>
</tutorials>
- <methods>
- </methods>
<members>
<member name="depth" type="float" setter="set_depth" getter="get_depth" default="1.0">
Length that the resulting collision extends in either direction perpendicular to its polygon.
@@ -25,6 +23,4 @@
[b]Note:[/b] The returned value is a copy of the original. Methods which mutate the size or properties of the return value will not impact the original polygon. To change properties of the polygon, assign it to a temporary variable and make changes before reassigning the [code]polygon[/code] member.
</member>
</members>
- <constants>
- </constants>
</class>
diff --git a/doc/classes/CollisionShape2D.xml b/doc/classes/CollisionShape2D.xml
index c03eba82ff..5159b2b15b 100644
--- a/doc/classes/CollisionShape2D.xml
+++ b/doc/classes/CollisionShape2D.xml
@@ -12,8 +12,6 @@
<link title="2D Pong Demo">https://godotengine.org/asset-library/asset/121</link>
<link title="2D Kinematic Character Demo">https://godotengine.org/asset-library/asset/113</link>
</tutorials>
- <methods>
- </methods>
<members>
<member name="disabled" type="bool" setter="set_disabled" getter="is_disabled" default="false">
A disabled collision shape has no effect in the world. This property should be changed with [method Object.set_deferred].
@@ -28,6 +26,4 @@
The actual shape owned by this collision shape.
</member>
</members>
- <constants>
- </constants>
</class>
diff --git a/doc/classes/CollisionShape3D.xml b/doc/classes/CollisionShape3D.xml
index 9184b672ff..84e362c38b 100644
--- a/doc/classes/CollisionShape3D.xml
+++ b/doc/classes/CollisionShape3D.xml
@@ -35,6 +35,4 @@
The actual shape owned by this collision shape.
</member>
</members>
- <constants>
- </constants>
</class>
diff --git a/doc/classes/ColorPicker.xml b/doc/classes/ColorPicker.xml
index 571ffd592a..f33016cc6c 100644
--- a/doc/classes/ColorPicker.xml
+++ b/doc/classes/ColorPicker.xml
@@ -5,6 +5,7 @@
</brief_description>
<description>
Displays a color picker widget. Useful for selecting a color from an RGB/RGBA colorspace.
+ [b]Note:[/b] This control is the color picker widget itself. You can use a [ColorPickerButton] instead if you need a button that brings up a [ColorPicker] in a pop-up.
</description>
<tutorials>
<link title="Tween Demo">https://godotengine.org/asset-library/asset/146</link>
diff --git a/doc/classes/ColorPickerButton.xml b/doc/classes/ColorPickerButton.xml
index 6b5a9f2503..1cdfbd760e 100644
--- a/doc/classes/ColorPickerButton.xml
+++ b/doc/classes/ColorPickerButton.xml
@@ -6,6 +6,7 @@
<description>
Encapsulates a [ColorPicker] making it accessible by pressing a button. Pressing the button will toggle the [ColorPicker] visibility.
See also [BaseButton] which contains common properties and methods associated with this node.
+ [b]Note:[/b] By default, the button may not be wide enough for the color preview swatch to be visible. Make sure to set [member Control.rect_min_size] to a big enough value to give the button enough space.
</description>
<tutorials>
<link title="GUI Drag And Drop Demo">https://godotengine.org/asset-library/asset/133</link>
@@ -52,8 +53,6 @@
</description>
</signal>
</signals>
- <constants>
- </constants>
<theme_items>
<theme_item name="bg" data_type="icon" type="Texture2D">
The background of the color preview rect on the button.
diff --git a/doc/classes/ColorRect.xml b/doc/classes/ColorRect.xml
index 84955fed8a..db0dfc705e 100644
--- a/doc/classes/ColorRect.xml
+++ b/doc/classes/ColorRect.xml
@@ -9,8 +9,6 @@
<tutorials>
<link title="2D Dodge The Creeps Demo">https://godotengine.org/asset-library/asset/515</link>
</tutorials>
- <methods>
- </methods>
<members>
<member name="color" type="Color" setter="set_color" getter="get_color" default="Color(1, 1, 1, 1)">
The fill color.
@@ -24,6 +22,4 @@
[/codeblocks]
</member>
</members>
- <constants>
- </constants>
</class>
diff --git a/doc/classes/ConcavePolygonShape2D.xml b/doc/classes/ConcavePolygonShape2D.xml
index 50632cd2c8..2ace8c72d7 100644
--- a/doc/classes/ConcavePolygonShape2D.xml
+++ b/doc/classes/ConcavePolygonShape2D.xml
@@ -9,13 +9,9 @@
</description>
<tutorials>
</tutorials>
- <methods>
- </methods>
<members>
<member name="segments" type="PackedVector2Array" setter="set_segments" getter="get_segments" default="PackedVector2Array()">
The array of points that make up the [ConcavePolygonShape2D]'s line segments.
</member>
</members>
- <constants>
- </constants>
</class>
diff --git a/doc/classes/ConcavePolygonShape3D.xml b/doc/classes/ConcavePolygonShape3D.xml
index 907afa6367..ac569a8992 100644
--- a/doc/classes/ConcavePolygonShape3D.xml
+++ b/doc/classes/ConcavePolygonShape3D.xml
@@ -30,6 +30,4 @@
If set to [code]true[/code], collisions occur on both sides of the concave shape faces. Otherwise they occur only along the face normals.
</member>
</members>
- <constants>
- </constants>
</class>
diff --git a/doc/classes/ConfigFile.xml b/doc/classes/ConfigFile.xml
index ce976e3d8b..4f6f099ebd 100644
--- a/doc/classes/ConfigFile.xml
+++ b/doc/classes/ConfigFile.xml
@@ -222,6 +222,4 @@
</description>
</method>
</methods>
- <constants>
- </constants>
</class>
diff --git a/doc/classes/ConfirmationDialog.xml b/doc/classes/ConfirmationDialog.xml
index 871082696c..352631da1d 100644
--- a/doc/classes/ConfirmationDialog.xml
+++ b/doc/classes/ConfirmationDialog.xml
@@ -30,6 +30,4 @@
<member name="size" type="Vector2i" setter="set_size" getter="get_size" override="true" default="Vector2i(200, 100)" />
<member name="title" type="String" setter="set_title" getter="get_title" override="true" default="&quot;Please Confirm...&quot;" />
</members>
- <constants>
- </constants>
</class>
diff --git a/doc/classes/Control.xml b/doc/classes/Control.xml
index 6602764cd4..c9a2de66a8 100644
--- a/doc/classes/Control.xml
+++ b/doc/classes/Control.xml
@@ -137,6 +137,7 @@
* control is obstructed by another [Control] on top of it, which doesn't have [member mouse_filter] set to [constant MOUSE_FILTER_IGNORE];
* control's parent has [member mouse_filter] set to [constant MOUSE_FILTER_STOP] or has accepted the event;
* it happens outside the parent's rectangle and the parent has either [member rect_clip_content] enabled.
+ [b]Note:[/b] Event position is relative to the control origin.
</description>
</method>
<method name="_has_point" qualifiers="virtual const">
diff --git a/doc/classes/ConvexPolygonShape2D.xml b/doc/classes/ConvexPolygonShape2D.xml
index 243605e2b7..ec7583e68b 100644
--- a/doc/classes/ConvexPolygonShape2D.xml
+++ b/doc/classes/ConvexPolygonShape2D.xml
@@ -23,6 +23,4 @@
The polygon's list of vertices. Can be in either clockwise or counterclockwise order.
</member>
</members>
- <constants>
- </constants>
</class>
diff --git a/doc/classes/ConvexPolygonShape3D.xml b/doc/classes/ConvexPolygonShape3D.xml
index a5c86526b0..832e073665 100644
--- a/doc/classes/ConvexPolygonShape3D.xml
+++ b/doc/classes/ConvexPolygonShape3D.xml
@@ -9,13 +9,9 @@
<tutorials>
<link title="3D Physics Tests Demo">https://godotengine.org/asset-library/asset/675</link>
</tutorials>
- <methods>
- </methods>
<members>
<member name="points" type="PackedVector3Array" setter="set_points" getter="get_points" default="PackedVector3Array()">
The list of 3D points forming the convex polygon shape.
</member>
</members>
- <constants>
- </constants>
</class>
diff --git a/doc/classes/Crypto.xml b/doc/classes/Crypto.xml
index 3d7ca956da..a87c8bfab2 100644
--- a/doc/classes/Crypto.xml
+++ b/doc/classes/Crypto.xml
@@ -171,6 +171,4 @@
</description>
</method>
</methods>
- <constants>
- </constants>
</class>
diff --git a/doc/classes/CryptoKey.xml b/doc/classes/CryptoKey.xml
index afe2c6b301..5665c629a8 100644
--- a/doc/classes/CryptoKey.xml
+++ b/doc/classes/CryptoKey.xml
@@ -51,6 +51,4 @@
</description>
</method>
</methods>
- <constants>
- </constants>
</class>
diff --git a/doc/classes/Cubemap.xml b/doc/classes/Cubemap.xml
index 9e31ee8a92..886dc36bdf 100644
--- a/doc/classes/Cubemap.xml
+++ b/doc/classes/Cubemap.xml
@@ -10,8 +10,4 @@
</description>
<tutorials>
</tutorials>
- <methods>
- </methods>
- <constants>
- </constants>
</class>
diff --git a/doc/classes/CubemapArray.xml b/doc/classes/CubemapArray.xml
index 627baf79e0..9f2231886d 100644
--- a/doc/classes/CubemapArray.xml
+++ b/doc/classes/CubemapArray.xml
@@ -6,8 +6,4 @@
</description>
<tutorials>
</tutorials>
- <methods>
- </methods>
- <constants>
- </constants>
</class>
diff --git a/doc/classes/Curve2D.xml b/doc/classes/Curve2D.xml
index c02b0f7ead..8c5b39a895 100644
--- a/doc/classes/Curve2D.xml
+++ b/doc/classes/Curve2D.xml
@@ -156,6 +156,4 @@
The distance in pixels between two adjacent cached points. Changing it forces the cache to be recomputed the next time the [method get_baked_points] or [method get_baked_length] function is called. The smaller the distance, the more points in the cache and the more memory it will consume, so use with care.
</member>
</members>
- <constants>
- </constants>
</class>
diff --git a/doc/classes/Curve3D.xml b/doc/classes/Curve3D.xml
index 5839ccba02..30e9e2ac68 100644
--- a/doc/classes/Curve3D.xml
+++ b/doc/classes/Curve3D.xml
@@ -198,6 +198,4 @@
If [code]true[/code], the curve will bake up vectors used for orientation. This is used when [member PathFollow3D.rotation_mode] is set to [constant PathFollow3D.ROTATION_ORIENTED]. Changing it forces the cache to be recomputed.
</member>
</members>
- <constants>
- </constants>
</class>
diff --git a/doc/classes/CurveTexture.xml b/doc/classes/CurveTexture.xml
index 54065fe0f9..fe75f029f0 100644
--- a/doc/classes/CurveTexture.xml
+++ b/doc/classes/CurveTexture.xml
@@ -8,8 +8,6 @@
</description>
<tutorials>
</tutorials>
- <methods>
- </methods>
<members>
<member name="curve" type="Curve" setter="set_curve" getter="get_curve">
The [code]curve[/code] rendered onto the texture.
diff --git a/doc/classes/CurveXYZTexture.xml b/doc/classes/CurveXYZTexture.xml
index 9afeb58060..815653e987 100644
--- a/doc/classes/CurveXYZTexture.xml
+++ b/doc/classes/CurveXYZTexture.xml
@@ -6,8 +6,6 @@
</description>
<tutorials>
</tutorials>
- <methods>
- </methods>
<members>
<member name="curve_x" type="Curve" setter="set_curve_x" getter="get_curve_x">
</member>
@@ -18,6 +16,4 @@
<member name="width" type="int" setter="set_width" getter="get_width" default="2048">
</member>
</members>
- <constants>
- </constants>
</class>
diff --git a/doc/classes/CylinderMesh.xml b/doc/classes/CylinderMesh.xml
index 827fb5c10c..077435990b 100644
--- a/doc/classes/CylinderMesh.xml
+++ b/doc/classes/CylinderMesh.xml
@@ -8,8 +8,6 @@
</description>
<tutorials>
</tutorials>
- <methods>
- </methods>
<members>
<member name="bottom_radius" type="float" setter="set_bottom_radius" getter="get_bottom_radius" default="1.0">
Bottom radius of the cylinder. If set to [code]0.0[/code], the bottom faces will not be generated, resulting in a conic shape.
@@ -27,6 +25,4 @@
Top radius of the cylinder. If set to [code]0.0[/code], the top faces will not be generated, resulting in a conic shape.
</member>
</members>
- <constants>
- </constants>
</class>
diff --git a/doc/classes/CylinderShape3D.xml b/doc/classes/CylinderShape3D.xml
index 99334ceae6..d40b96710b 100644
--- a/doc/classes/CylinderShape3D.xml
+++ b/doc/classes/CylinderShape3D.xml
@@ -11,8 +11,6 @@
<link title="3D Physics Tests Demo">https://godotengine.org/asset-library/asset/675</link>
<link title="3D Voxel Demo">https://godotengine.org/asset-library/asset/676</link>
</tutorials>
- <methods>
- </methods>
<members>
<member name="height" type="float" setter="set_height" getter="get_height" default="2.0">
The cylinder's height.
@@ -21,6 +19,4 @@
The cylinder's radius.
</member>
</members>
- <constants>
- </constants>
</class>
diff --git a/doc/classes/DTLSServer.xml b/doc/classes/DTLSServer.xml
index 627a7a65a5..16e65eaadf 100644
--- a/doc/classes/DTLSServer.xml
+++ b/doc/classes/DTLSServer.xml
@@ -164,6 +164,4 @@
</description>
</method>
</methods>
- <constants>
- </constants>
</class>
diff --git a/doc/classes/DampedSpringJoint2D.xml b/doc/classes/DampedSpringJoint2D.xml
index e1b6bb6866..76e38d5271 100644
--- a/doc/classes/DampedSpringJoint2D.xml
+++ b/doc/classes/DampedSpringJoint2D.xml
@@ -8,8 +8,6 @@
</description>
<tutorials>
</tutorials>
- <methods>
- </methods>
<members>
<member name="damping" type="float" setter="set_damping" getter="get_damping" default="1.0">
The spring joint's damping ratio. A value between [code]0[/code] and [code]1[/code]. When the two bodies move into different directions the system tries to align them to the spring axis again. A high [code]damping[/code] value forces the attached bodies to align faster.
@@ -24,6 +22,4 @@
The higher the value, the less the bodies attached to the joint will deform it. The joint applies an opposing force to the bodies, the product of the stiffness multiplied by the size difference from its resting length.
</member>
</members>
- <constants>
- </constants>
</class>
diff --git a/doc/classes/Dictionary.xml b/doc/classes/Dictionary.xml
index a6b97f3a75..2eb75d48a3 100644
--- a/doc/classes/Dictionary.xml
+++ b/doc/classes/Dictionary.xml
@@ -213,7 +213,8 @@
<return type="bool" />
<argument index="0" name="key" type="Variant" />
<description>
- Erase a dictionary key/value pair by key. Returns [code]true[/code] if the given key was present in the dictionary, [code]false[/code] otherwise. Does not erase elements while iterating over the dictionary.
+ Erase a dictionary key/value pair by key. Returns [code]true[/code] if the given key was present in the dictionary, [code]false[/code] otherwise.
+ [b]Note:[/b] Don't erase elements while iterating over the dictionary. You can iterate over the [method keys] array instead.
</description>
</method>
<method name="get" qualifiers="const">
@@ -329,6 +330,4 @@
</description>
</method>
</methods>
- <constants>
- </constants>
</class>
diff --git a/doc/classes/DirectionalLight2D.xml b/doc/classes/DirectionalLight2D.xml
index a6eb780159..317cf6e66c 100644
--- a/doc/classes/DirectionalLight2D.xml
+++ b/doc/classes/DirectionalLight2D.xml
@@ -6,8 +6,6 @@
</description>
<tutorials>
</tutorials>
- <methods>
- </methods>
<members>
<member name="height" type="float" setter="set_height" getter="get_height" default="0.0">
The height of the light. Used with 2D normal mapping.
@@ -15,6 +13,4 @@
<member name="max_distance" type="float" setter="set_max_distance" getter="get_max_distance" default="10000.0">
</member>
</members>
- <constants>
- </constants>
</class>
diff --git a/doc/classes/DirectionalLight3D.xml b/doc/classes/DirectionalLight3D.xml
index e3badea0f4..7c006ad3a6 100644
--- a/doc/classes/DirectionalLight3D.xml
+++ b/doc/classes/DirectionalLight3D.xml
@@ -9,8 +9,6 @@
<tutorials>
<link title="Lights and shadows">https://docs.godotengine.org/en/latest/tutorials/3d/lights_and_shadows.html</link>
</tutorials>
- <methods>
- </methods>
<members>
<member name="directional_shadow_blend_splits" type="bool" setter="set_blend_splits" getter="is_blend_splits_enabled" default="false">
If [code]true[/code], shadow detail is sacrificed in exchange for smoother transitions between splits.
diff --git a/doc/classes/Directory.xml b/doc/classes/Directory.xml
index e8e5a286b4..c8fda27989 100644
--- a/doc/classes/Directory.xml
+++ b/doc/classes/Directory.xml
@@ -192,6 +192,4 @@
</description>
</method>
</methods>
- <constants>
- </constants>
</class>
diff --git a/doc/classes/EditorCommandPalette.xml b/doc/classes/EditorCommandPalette.xml
index 1d3b21255f..01b8593f89 100644
--- a/doc/classes/EditorCommandPalette.xml
+++ b/doc/classes/EditorCommandPalette.xml
@@ -51,6 +51,4 @@
<members>
<member name="dialog_hide_on_ok" type="bool" setter="set_hide_on_ok" getter="get_hide_on_ok" override="true" default="false" />
</members>
- <constants>
- </constants>
</class>
diff --git a/doc/classes/EditorDebuggerPlugin.xml b/doc/classes/EditorDebuggerPlugin.xml
index d67df8dfee..0773e176b3 100644
--- a/doc/classes/EditorDebuggerPlugin.xml
+++ b/doc/classes/EditorDebuggerPlugin.xml
@@ -84,6 +84,4 @@
</description>
</signal>
</signals>
- <constants>
- </constants>
</class>
diff --git a/doc/classes/EditorExportPlugin.xml b/doc/classes/EditorExportPlugin.xml
index 16c50b4d3e..fca7bb350d 100644
--- a/doc/classes/EditorExportPlugin.xml
+++ b/doc/classes/EditorExportPlugin.xml
@@ -110,6 +110,4 @@
</description>
</method>
</methods>
- <constants>
- </constants>
</class>
diff --git a/doc/classes/EditorFileSystem.xml b/doc/classes/EditorFileSystem.xml
index 6befe32e7a..859480078b 100644
--- a/doc/classes/EditorFileSystem.xml
+++ b/doc/classes/EditorFileSystem.xml
@@ -93,6 +93,4 @@
</description>
</signal>
</signals>
- <constants>
- </constants>
</class>
diff --git a/doc/classes/EditorFileSystemDirectory.xml b/doc/classes/EditorFileSystemDirectory.xml
index a8f94101a7..6a0a94a4c4 100644
--- a/doc/classes/EditorFileSystemDirectory.xml
+++ b/doc/classes/EditorFileSystemDirectory.xml
@@ -103,6 +103,4 @@
</description>
</method>
</methods>
- <constants>
- </constants>
</class>
diff --git a/doc/classes/EditorImportPlugin.xml b/doc/classes/EditorImportPlugin.xml
index da6738d6b7..f20f4adcdf 100644
--- a/doc/classes/EditorImportPlugin.xml
+++ b/doc/classes/EditorImportPlugin.xml
@@ -219,6 +219,4 @@
</description>
</method>
</methods>
- <constants>
- </constants>
</class>
diff --git a/doc/classes/EditorInspector.xml b/doc/classes/EditorInspector.xml
index 515c4b4d32..0c47298180 100644
--- a/doc/classes/EditorInspector.xml
+++ b/doc/classes/EditorInspector.xml
@@ -9,8 +9,6 @@
</description>
<tutorials>
</tutorials>
- <methods>
- </methods>
<members>
<member name="scroll_horizontal_enabled" type="bool" setter="set_enable_h_scroll" getter="is_h_scroll_enabled" override="true" default="false" />
</members>
@@ -66,6 +64,4 @@
</description>
</signal>
</signals>
- <constants>
- </constants>
</class>
diff --git a/doc/classes/EditorInspectorPlugin.xml b/doc/classes/EditorInspectorPlugin.xml
index ee93379210..17397b80bf 100644
--- a/doc/classes/EditorInspectorPlugin.xml
+++ b/doc/classes/EditorInspectorPlugin.xml
@@ -80,6 +80,4 @@
</description>
</method>
</methods>
- <constants>
- </constants>
</class>
diff --git a/doc/classes/EditorInterface.xml b/doc/classes/EditorInterface.xml
index 8558f4b9f7..ad878aad80 100644
--- a/doc/classes/EditorInterface.xml
+++ b/doc/classes/EditorInterface.xml
@@ -238,6 +238,4 @@
If [code]true[/code], enables distraction-free mode which hides side docks to increase the space available for the main view.
</member>
</members>
- <constants>
- </constants>
</class>
diff --git a/doc/classes/EditorNode3DGizmo.xml b/doc/classes/EditorNode3DGizmo.xml
index 91e024cc1c..a2eac01ae8 100644
--- a/doc/classes/EditorNode3DGizmo.xml
+++ b/doc/classes/EditorNode3DGizmo.xml
@@ -198,6 +198,4 @@
</description>
</method>
</methods>
- <constants>
- </constants>
</class>
diff --git a/doc/classes/EditorNode3DGizmoPlugin.xml b/doc/classes/EditorNode3DGizmoPlugin.xml
index 4ba455a336..424d5dd310 100644
--- a/doc/classes/EditorNode3DGizmoPlugin.xml
+++ b/doc/classes/EditorNode3DGizmoPlugin.xml
@@ -195,6 +195,4 @@
</description>
</method>
</methods>
- <constants>
- </constants>
</class>
diff --git a/doc/classes/EditorPaths.xml b/doc/classes/EditorPaths.xml
index 28a8314857..92a2cff27f 100644
--- a/doc/classes/EditorPaths.xml
+++ b/doc/classes/EditorPaths.xml
@@ -33,6 +33,4 @@
</description>
</method>
</methods>
- <constants>
- </constants>
</class>
diff --git a/doc/classes/EditorProperty.xml b/doc/classes/EditorProperty.xml
index 822bcfd255..6af6507606 100644
--- a/doc/classes/EditorProperty.xml
+++ b/doc/classes/EditorProperty.xml
@@ -149,6 +149,4 @@
</description>
</signal>
</signals>
- <constants>
- </constants>
</class>
diff --git a/doc/classes/EditorResourceConversionPlugin.xml b/doc/classes/EditorResourceConversionPlugin.xml
index 8543afa4ae..820c7775f7 100644
--- a/doc/classes/EditorResourceConversionPlugin.xml
+++ b/doc/classes/EditorResourceConversionPlugin.xml
@@ -25,6 +25,4 @@
</description>
</method>
</methods>
- <constants>
- </constants>
</class>
diff --git a/doc/classes/EditorResourcePicker.xml b/doc/classes/EditorResourcePicker.xml
index a0f2df1f0c..9c490cbb3e 100644
--- a/doc/classes/EditorResourcePicker.xml
+++ b/doc/classes/EditorResourcePicker.xml
@@ -67,6 +67,4 @@
</description>
</signal>
</signals>
- <constants>
- </constants>
</class>
diff --git a/doc/classes/EditorResourcePreview.xml b/doc/classes/EditorResourcePreview.xml
index c2693b4e1e..4dc46945cf 100644
--- a/doc/classes/EditorResourcePreview.xml
+++ b/doc/classes/EditorResourcePreview.xml
@@ -62,6 +62,4 @@
</description>
</signal>
</signals>
- <constants>
- </constants>
</class>
diff --git a/doc/classes/EditorResourcePreviewGenerator.xml b/doc/classes/EditorResourcePreviewGenerator.xml
index 033e03c5b5..53c692aad9 100644
--- a/doc/classes/EditorResourcePreviewGenerator.xml
+++ b/doc/classes/EditorResourcePreviewGenerator.xml
@@ -51,6 +51,4 @@
</description>
</method>
</methods>
- <constants>
- </constants>
</class>
diff --git a/doc/classes/EditorSceneImporterMesh.xml b/doc/classes/EditorSceneImporterMesh.xml
index c0c53ff255..5d57a76d5f 100644
--- a/doc/classes/EditorSceneImporterMesh.xml
+++ b/doc/classes/EditorSceneImporterMesh.xml
@@ -181,6 +181,4 @@
<member name="_data" type="Dictionary" setter="_set_data" getter="_get_data" default="{&quot;surfaces&quot;: []}">
</member>
</members>
- <constants>
- </constants>
</class>
diff --git a/doc/classes/EditorSceneImporterMeshNode3D.xml b/doc/classes/EditorSceneImporterMeshNode3D.xml
index 1e459c1cee..848448110e 100644
--- a/doc/classes/EditorSceneImporterMeshNode3D.xml
+++ b/doc/classes/EditorSceneImporterMeshNode3D.xml
@@ -6,8 +6,6 @@
</description>
<tutorials>
</tutorials>
- <methods>
- </methods>
<members>
<member name="mesh" type="EditorSceneImporterMesh" setter="set_mesh" getter="get_mesh">
</member>
@@ -16,6 +14,4 @@
<member name="skin" type="Skin" setter="set_skin" getter="get_skin">
</member>
</members>
- <constants>
- </constants>
</class>
diff --git a/doc/classes/EditorScenePostImport.xml b/doc/classes/EditorScenePostImport.xml
index 43ca3db5fa..241531c35f 100644
--- a/doc/classes/EditorScenePostImport.xml
+++ b/doc/classes/EditorScenePostImport.xml
@@ -69,6 +69,4 @@
</description>
</method>
</methods>
- <constants>
- </constants>
</class>
diff --git a/doc/classes/EditorScript.xml b/doc/classes/EditorScript.xml
index 6d793fe961..a2508118c6 100644
--- a/doc/classes/EditorScript.xml
+++ b/doc/classes/EditorScript.xml
@@ -61,6 +61,4 @@
</description>
</method>
</methods>
- <constants>
- </constants>
</class>
diff --git a/doc/classes/EditorScriptPicker.xml b/doc/classes/EditorScriptPicker.xml
index 8334676d92..6c0538a5ab 100644
--- a/doc/classes/EditorScriptPicker.xml
+++ b/doc/classes/EditorScriptPicker.xml
@@ -9,13 +9,9 @@
</description>
<tutorials>
</tutorials>
- <methods>
- </methods>
<members>
<member name="script_owner" type="Node" setter="set_script_owner" getter="get_script_owner">
The owner [Node] of the script property that holds the edited resource.
</member>
</members>
- <constants>
- </constants>
</class>
diff --git a/doc/classes/EditorSelection.xml b/doc/classes/EditorSelection.xml
index 69ae865d5d..28c8ff7d7f 100644
--- a/doc/classes/EditorSelection.xml
+++ b/doc/classes/EditorSelection.xml
@@ -51,6 +51,4 @@
</description>
</signal>
</signals>
- <constants>
- </constants>
</class>
diff --git a/doc/classes/EditorSpinSlider.xml b/doc/classes/EditorSpinSlider.xml
index b86e5e5c6e..9341b514c7 100644
--- a/doc/classes/EditorSpinSlider.xml
+++ b/doc/classes/EditorSpinSlider.xml
@@ -8,8 +8,6 @@
</description>
<tutorials>
</tutorials>
- <methods>
- </methods>
<members>
<member name="flat" type="bool" setter="set_flat" getter="is_flat" default="false">
</member>
@@ -22,6 +20,4 @@
The suffix to display after the value (in a faded color). This should generally be a plural word. You may have to use an abbreviation if the suffix is too long to be displayed.
</member>
</members>
- <constants>
- </constants>
</class>
diff --git a/doc/classes/EditorSyntaxHighlighter.xml b/doc/classes/EditorSyntaxHighlighter.xml
index 394a4ada46..8880ce4d44 100644
--- a/doc/classes/EditorSyntaxHighlighter.xml
+++ b/doc/classes/EditorSyntaxHighlighter.xml
@@ -23,6 +23,4 @@
</description>
</method>
</methods>
- <constants>
- </constants>
</class>
diff --git a/doc/classes/EditorTranslationParserPlugin.xml b/doc/classes/EditorTranslationParserPlugin.xml
index 94e96e985f..de8204def3 100644
--- a/doc/classes/EditorTranslationParserPlugin.xml
+++ b/doc/classes/EditorTranslationParserPlugin.xml
@@ -118,6 +118,4 @@
</description>
</method>
</methods>
- <constants>
- </constants>
</class>
diff --git a/doc/classes/EditorVCSInterface.xml b/doc/classes/EditorVCSInterface.xml
index 5dd4901e3e..bd932bede4 100644
--- a/doc/classes/EditorVCSInterface.xml
+++ b/doc/classes/EditorVCSInterface.xml
@@ -94,6 +94,4 @@
</description>
</method>
</methods>
- <constants>
- </constants>
</class>
diff --git a/doc/classes/EncodedObjectAsID.xml b/doc/classes/EncodedObjectAsID.xml
index e3e36590a3..fb056f4631 100644
--- a/doc/classes/EncodedObjectAsID.xml
+++ b/doc/classes/EncodedObjectAsID.xml
@@ -9,13 +9,9 @@
</description>
<tutorials>
</tutorials>
- <methods>
- </methods>
<members>
<member name="object_id" type="int" setter="set_object_id" getter="get_object_id" default="0">
The [Object] identifier stored in this [EncodedObjectAsID] instance. The object instance can be retrieved with [method @GlobalScope.instance_from_id].
</member>
</members>
- <constants>
- </constants>
</class>
diff --git a/doc/classes/Engine.xml b/doc/classes/Engine.xml
index 36590093bd..f05a216301 100644
--- a/doc/classes/Engine.xml
+++ b/doc/classes/Engine.xml
@@ -147,6 +147,20 @@
Returns [code]true[/code] if a singleton with given [code]name[/code] exists in global scope.
</description>
</method>
+ <method name="is_editor_hint" qualifiers="const">
+ <return type="bool" />
+ <description>
+ Returns [code]true[/code] if the script is currently running inside the editor, [code]false[/code] otherwise. This is useful for [code]@tool[/code] scripts to conditionally draw editor helpers, or prevent accidentally running "game" code that would affect the scene state while in the editor:
+ [codeblock]
+ if Engine.is_editor_hint():
+ draw_gizmos()
+ else:
+ simulate_physics()
+ [/codeblock]
+ See [url=https://docs.godotengine.org/en/latest/tutorials/plugins/running_code_in_the_editor.html]Running code in the editor[/url] in the documentation for more information.
+ [b]Note:[/b] To detect whether the script is run from an editor [i]build[/i] (e.g. when pressing [kbd]F5[/kbd]), use [method OS.has_feature] with the [code]"editor"[/code] argument instead. [code]OS.has_feature("editor")[/code] will evaluate to [code]true[/code] both when the code is running in the editor and when running the project from the editor, but it will evaluate to [code]false[/code] when the code is run from an exported project.
+ </description>
+ </method>
<method name="is_in_physics_frame" qualifiers="const">
<return type="bool" />
<description>
@@ -168,17 +182,6 @@
</method>
</methods>
<members>
- <member name="editor_hint" type="bool" setter="set_editor_hint" getter="is_editor_hint" default="true">
- If [code]true[/code], the script is currently running inside the editor. This is useful for [code]@tool[/code] scripts to conditionally draw editor helpers, or prevent accidentally running "game" code that would affect the scene state while in the editor:
- [codeblock]
- if Engine.editor_hint:
- draw_gizmos()
- else:
- simulate_physics()
- [/codeblock]
- See [url=https://docs.godotengine.org/en/latest/tutorials/plugins/running_code_in_the_editor.html]Running code in the editor[/url] in the documentation for more information.
- [b]Note:[/b] To detect whether the script is run from an editor [i]build[/i] (e.g. when pressing [kbd]F5[/kbd]), use [method OS.has_feature] with the [code]"editor"[/code] argument instead. [code]OS.has_feature("editor")[/code] will evaluate to [code]true[/code] both when the code is running in the editor and when running the project from the editor, but it will evaluate to [code]false[/code] when the code is run from an exported project.
- </member>
<member name="physics_jitter_fix" type="float" setter="set_physics_jitter_fix" getter="get_physics_jitter_fix" default="0.5">
Controls how much physics ticks are synchronized with real time. For 0 or less, the ticks are synchronized. Such values are recommended for network games, where clock synchronization matters. Higher values cause higher deviation of the in-game clock and real clock but smooth out framerate jitters. The default value of 0.5 should be fine for most; values above 2 could cause the game to react to dropped frames with a noticeable delay and are not recommended.
[b]Note:[/b] For best results, when using a custom physics interpolation solution, the physics jitter fix should be disabled by setting [member physics_jitter_fix] to [code]0[/code].
@@ -198,6 +201,4 @@
Controls how fast or slow the in-game clock ticks versus the real life one. It defaults to 1.0. A value of 2.0 means the game moves twice as fast as real life, whilst a value of 0.5 means the game moves at half the regular speed.
</member>
</members>
- <constants>
- </constants>
</class>
diff --git a/doc/classes/EngineDebugger.xml b/doc/classes/EngineDebugger.xml
index 30d5193384..861053b1c9 100644
--- a/doc/classes/EngineDebugger.xml
+++ b/doc/classes/EngineDebugger.xml
@@ -98,6 +98,4 @@
</description>
</method>
</methods>
- <constants>
- </constants>
</class>
diff --git a/doc/classes/Expression.xml b/doc/classes/Expression.xml
index 809a5bb80c..f0b0775753 100644
--- a/doc/classes/Expression.xml
+++ b/doc/classes/Expression.xml
@@ -83,6 +83,4 @@
</description>
</method>
</methods>
- <constants>
- </constants>
</class>
diff --git a/doc/classes/FileSystemDock.xml b/doc/classes/FileSystemDock.xml
index a164415245..b6e708cc03 100644
--- a/doc/classes/FileSystemDock.xml
+++ b/doc/classes/FileSystemDock.xml
@@ -52,6 +52,4 @@
</description>
</signal>
</signals>
- <constants>
- </constants>
</class>
diff --git a/doc/classes/Font.xml b/doc/classes/Font.xml
index aa70856e32..e8ff0f60ec 100644
--- a/doc/classes/Font.xml
+++ b/doc/classes/Font.xml
@@ -285,6 +285,4 @@
Default font [url=https://docs.microsoft.com/en-us/typography/opentype/spec/dvaraxisreg]variation coordinates[/url].
</member>
</members>
- <constants>
- </constants>
</class>
diff --git a/doc/classes/FontData.xml b/doc/classes/FontData.xml
index 384d7c81f4..a814685388 100644
--- a/doc/classes/FontData.xml
+++ b/doc/classes/FontData.xml
@@ -643,6 +643,4 @@
</description>
</method>
</methods>
- <constants>
- </constants>
</class>
diff --git a/doc/classes/GPUParticlesAttractor3D.xml b/doc/classes/GPUParticlesAttractor3D.xml
index 111827d294..7de52eedd7 100644
--- a/doc/classes/GPUParticlesAttractor3D.xml
+++ b/doc/classes/GPUParticlesAttractor3D.xml
@@ -6,8 +6,6 @@
</description>
<tutorials>
</tutorials>
- <methods>
- </methods>
<members>
<member name="attenuation" type="float" setter="set_attenuation" getter="get_attenuation" default="1.0">
</member>
@@ -18,6 +16,4 @@
<member name="strength" type="float" setter="set_strength" getter="get_strength" default="1.0">
</member>
</members>
- <constants>
- </constants>
</class>
diff --git a/doc/classes/GPUParticlesAttractorBox.xml b/doc/classes/GPUParticlesAttractorBox.xml
index 49e6111c29..93fdc45e56 100644
--- a/doc/classes/GPUParticlesAttractorBox.xml
+++ b/doc/classes/GPUParticlesAttractorBox.xml
@@ -6,12 +6,8 @@
</description>
<tutorials>
</tutorials>
- <methods>
- </methods>
<members>
<member name="extents" type="Vector3" setter="set_extents" getter="get_extents" default="Vector3(1, 1, 1)">
</member>
</members>
- <constants>
- </constants>
</class>
diff --git a/doc/classes/GPUParticlesAttractorSphere.xml b/doc/classes/GPUParticlesAttractorSphere.xml
index 6984427a96..4398de55e9 100644
--- a/doc/classes/GPUParticlesAttractorSphere.xml
+++ b/doc/classes/GPUParticlesAttractorSphere.xml
@@ -6,12 +6,8 @@
</description>
<tutorials>
</tutorials>
- <methods>
- </methods>
<members>
<member name="radius" type="float" setter="set_radius" getter="get_radius" default="1.0">
</member>
</members>
- <constants>
- </constants>
</class>
diff --git a/doc/classes/GPUParticlesAttractorVectorField.xml b/doc/classes/GPUParticlesAttractorVectorField.xml
index 7364a4b09f..e164343528 100644
--- a/doc/classes/GPUParticlesAttractorVectorField.xml
+++ b/doc/classes/GPUParticlesAttractorVectorField.xml
@@ -6,14 +6,10 @@
</description>
<tutorials>
</tutorials>
- <methods>
- </methods>
<members>
<member name="extents" type="Vector3" setter="set_extents" getter="get_extents" default="Vector3(1, 1, 1)">
</member>
<member name="texture" type="Texture3D" setter="set_texture" getter="get_texture">
</member>
</members>
- <constants>
- </constants>
</class>
diff --git a/doc/classes/GPUParticlesCollision3D.xml b/doc/classes/GPUParticlesCollision3D.xml
index dce9a32fc4..1a7901839c 100644
--- a/doc/classes/GPUParticlesCollision3D.xml
+++ b/doc/classes/GPUParticlesCollision3D.xml
@@ -6,12 +6,8 @@
</description>
<tutorials>
</tutorials>
- <methods>
- </methods>
<members>
<member name="cull_mask" type="int" setter="set_cull_mask" getter="get_cull_mask" default="4294967295">
</member>
</members>
- <constants>
- </constants>
</class>
diff --git a/doc/classes/GPUParticlesCollisionBox.xml b/doc/classes/GPUParticlesCollisionBox.xml
index 58de18556e..d2bf4ef538 100644
--- a/doc/classes/GPUParticlesCollisionBox.xml
+++ b/doc/classes/GPUParticlesCollisionBox.xml
@@ -6,12 +6,8 @@
</description>
<tutorials>
</tutorials>
- <methods>
- </methods>
<members>
<member name="extents" type="Vector3" setter="set_extents" getter="get_extents" default="Vector3(1, 1, 1)">
</member>
</members>
- <constants>
- </constants>
</class>
diff --git a/doc/classes/GPUParticlesCollisionHeightField.xml b/doc/classes/GPUParticlesCollisionHeightField.xml
index 0ddddda8e4..99b2ad3ce0 100644
--- a/doc/classes/GPUParticlesCollisionHeightField.xml
+++ b/doc/classes/GPUParticlesCollisionHeightField.xml
@@ -6,8 +6,6 @@
</description>
<tutorials>
</tutorials>
- <methods>
- </methods>
<members>
<member name="extents" type="Vector3" setter="set_extents" getter="get_extents" default="Vector3(1, 1, 1)">
</member>
diff --git a/doc/classes/GPUParticlesCollisionSDF.xml b/doc/classes/GPUParticlesCollisionSDF.xml
index 7ef6f5f3cd..8d798a9d28 100644
--- a/doc/classes/GPUParticlesCollisionSDF.xml
+++ b/doc/classes/GPUParticlesCollisionSDF.xml
@@ -6,8 +6,6 @@
</description>
<tutorials>
</tutorials>
- <methods>
- </methods>
<members>
<member name="extents" type="Vector3" setter="set_extents" getter="get_extents" default="Vector3(1, 1, 1)">
</member>
diff --git a/doc/classes/GPUParticlesCollisionSphere.xml b/doc/classes/GPUParticlesCollisionSphere.xml
index 41150960d2..ddb2391fd9 100644
--- a/doc/classes/GPUParticlesCollisionSphere.xml
+++ b/doc/classes/GPUParticlesCollisionSphere.xml
@@ -6,12 +6,8 @@
</description>
<tutorials>
</tutorials>
- <methods>
- </methods>
<members>
<member name="radius" type="float" setter="set_radius" getter="get_radius" default="1.0">
</member>
</members>
- <constants>
- </constants>
</class>
diff --git a/doc/classes/Geometry3D.xml b/doc/classes/Geometry3D.xml
index 9d0234529a..5b2e065d1a 100644
--- a/doc/classes/Geometry3D.xml
+++ b/doc/classes/Geometry3D.xml
@@ -125,6 +125,4 @@
</description>
</method>
</methods>
- <constants>
- </constants>
</class>
diff --git a/doc/classes/Gradient.xml b/doc/classes/Gradient.xml
index a9577fda90..93cef07b79 100644
--- a/doc/classes/Gradient.xml
+++ b/doc/classes/Gradient.xml
@@ -76,6 +76,4 @@
Gradient's offsets returned as a [PackedFloat32Array].
</member>
</members>
- <constants>
- </constants>
</class>
diff --git a/doc/classes/GradientTexture.xml b/doc/classes/GradientTexture.xml
index 44da042dd4..0f0f0b1a37 100644
--- a/doc/classes/GradientTexture.xml
+++ b/doc/classes/GradientTexture.xml
@@ -8,8 +8,6 @@
</description>
<tutorials>
</tutorials>
- <methods>
- </methods>
<members>
<member name="gradient" type="Gradient" setter="set_gradient" getter="get_gradient">
The [Gradient] that will be used to fill the texture.
@@ -21,6 +19,4 @@
The number of color samples that will be obtained from the [Gradient].
</member>
</members>
- <constants>
- </constants>
</class>
diff --git a/doc/classes/GraphEdit.xml b/doc/classes/GraphEdit.xml
index c870026d58..2213b9b8b2 100644
--- a/doc/classes/GraphEdit.xml
+++ b/doc/classes/GraphEdit.xml
@@ -287,8 +287,6 @@
</description>
</signal>
</signals>
- <constants>
- </constants>
<theme_items>
<theme_item name="activity" data_type="color" type="Color" default="Color(1, 1, 1, 1)">
</theme_item>
diff --git a/doc/classes/GridContainer.xml b/doc/classes/GridContainer.xml
index 34e7cbcd79..758bab465d 100644
--- a/doc/classes/GridContainer.xml
+++ b/doc/classes/GridContainer.xml
@@ -11,15 +11,11 @@
<tutorials>
<link title="OS Test Demo">https://godotengine.org/asset-library/asset/677</link>
</tutorials>
- <methods>
- </methods>
<members>
<member name="columns" type="int" setter="set_columns" getter="get_columns" default="1">
The number of columns in the [GridContainer]. If modified, [GridContainer] reorders its Control-derived children to accommodate the new layout.
</member>
</members>
- <constants>
- </constants>
<theme_items>
<theme_item name="hseparation" data_type="constant" type="int" default="4">
The horizontal separation of children nodes.
diff --git a/doc/classes/GrooveJoint2D.xml b/doc/classes/GrooveJoint2D.xml
index 643b7aefea..1683842d65 100644
--- a/doc/classes/GrooveJoint2D.xml
+++ b/doc/classes/GrooveJoint2D.xml
@@ -8,8 +8,6 @@
</description>
<tutorials>
</tutorials>
- <methods>
- </methods>
<members>
<member name="initial_offset" type="float" setter="set_initial_offset" getter="get_initial_offset" default="25.0">
The body B's initial anchor position defined by the joint's origin and a local offset [member initial_offset] along the joint's Y axis (along the groove).
@@ -18,6 +16,4 @@
The groove's length. The groove is from the joint's origin towards [member length] along the joint's local Y axis.
</member>
</members>
- <constants>
- </constants>
</class>
diff --git a/doc/classes/HBoxContainer.xml b/doc/classes/HBoxContainer.xml
index 9c3efb384e..ce254d8a15 100644
--- a/doc/classes/HBoxContainer.xml
+++ b/doc/classes/HBoxContainer.xml
@@ -8,10 +8,6 @@
</description>
<tutorials>
</tutorials>
- <methods>
- </methods>
- <constants>
- </constants>
<theme_items>
<theme_item name="separation" data_type="constant" type="int" default="4">
The horizontal space between the [HBoxContainer]'s elements.
diff --git a/doc/classes/HMACContext.xml b/doc/classes/HMACContext.xml
index 88d3c5e2f3..69ad194fe0 100644
--- a/doc/classes/HMACContext.xml
+++ b/doc/classes/HMACContext.xml
@@ -77,6 +77,4 @@
</description>
</method>
</methods>
- <constants>
- </constants>
</class>
diff --git a/doc/classes/HScrollBar.xml b/doc/classes/HScrollBar.xml
index 36ff070a37..fa9961710f 100644
--- a/doc/classes/HScrollBar.xml
+++ b/doc/classes/HScrollBar.xml
@@ -8,10 +8,6 @@
</description>
<tutorials>
</tutorials>
- <methods>
- </methods>
- <constants>
- </constants>
<theme_items>
<theme_item name="decrement" data_type="icon" type="Texture2D">
Icon used as a button to scroll the [ScrollBar] left. Supports custom step using the [member ScrollBar.custom_step] property.
diff --git a/doc/classes/HSeparator.xml b/doc/classes/HSeparator.xml
index 24495d208e..5a1011525c 100644
--- a/doc/classes/HSeparator.xml
+++ b/doc/classes/HSeparator.xml
@@ -8,10 +8,6 @@
</description>
<tutorials>
</tutorials>
- <methods>
- </methods>
- <constants>
- </constants>
<theme_items>
<theme_item name="separation" data_type="constant" type="int" default="4">
The height of the area covered by the separator. Effectively works like a minimum height.
diff --git a/doc/classes/HSlider.xml b/doc/classes/HSlider.xml
index 37aa968161..fa88085a70 100644
--- a/doc/classes/HSlider.xml
+++ b/doc/classes/HSlider.xml
@@ -9,10 +9,6 @@
</description>
<tutorials>
</tutorials>
- <methods>
- </methods>
- <constants>
- </constants>
<theme_items>
<theme_item name="grabber" data_type="icon" type="Texture2D">
The texture for the grabber (the draggable element).
diff --git a/doc/classes/HSplitContainer.xml b/doc/classes/HSplitContainer.xml
index 6bc9913344..379d4cfbdb 100644
--- a/doc/classes/HSplitContainer.xml
+++ b/doc/classes/HSplitContainer.xml
@@ -8,10 +8,6 @@
</description>
<tutorials>
</tutorials>
- <methods>
- </methods>
- <constants>
- </constants>
<theme_items>
<theme_item name="autohide" data_type="constant" type="int" default="1">
Boolean value. If 1 ([code]true[/code]), the grabber will hide automatically when it isn't under the cursor. If 0 ([code]false[/code]), it's always visible.
diff --git a/doc/classes/HTTPClient.xml b/doc/classes/HTTPClient.xml
index 29aaf3c756..9f33c400f4 100644
--- a/doc/classes/HTTPClient.xml
+++ b/doc/classes/HTTPClient.xml
@@ -8,6 +8,7 @@
[b]Note:[/b] This client only needs to connect to a host once (see [method connect_to_host]) to send multiple requests. Because of this, methods that take URLs usually take just the part after the host instead of the full URL, as the client is already connected to a host. See [method request] for a full example and to get started.
A [HTTPClient] should be reused between multiple requests or to connect to different hosts instead of creating one client per request. Supports SSL and SSL server certificate verification. HTTP status codes in the 2xx range indicate success, 3xx redirection (i.e. "try again, but over here"), 4xx something was wrong with the request, and 5xx something went wrong on the server's side.
For more information on HTTP, see https://developer.mozilla.org/en-US/docs/Web/HTTP (or read RFC 2616 to get it straight from the source: https://tools.ietf.org/html/rfc2616).
+ [b]Note:[/b] When exporting to Android, make sure to enable the [code]INTERNET[/code] permission in the Android export preset before exporting the project or using one-click deploy. Otherwise, network communication of any kind will be blocked by Android.
[b]Note:[/b] It's recommended to use transport encryption (SSL/TLS) and to avoid sending sensitive information (such as login credentials) in HTTP GET URL parameters. Consider using HTTP POST requests or HTTP headers for such information instead.
[b]Note:[/b] When performing HTTP requests from a project exported to HTML5, keep in mind the remote server may not allow requests from foreign origins due to [url=https://developer.mozilla.org/en-US/docs/Web/HTTP/CORS]CORS[/url]. If you host the server in question, you should modify its backend to allow requests from foreign origins by adding the [code]Access-Control-Allow-Origin: *[/code] HTTP header.
[b]Note:[/b] SSL/TLS support is currently limited to TLS 1.0, TLS 1.1, and TLS 1.2. Attempting to connect to a TLS 1.3-only server will return an error.
diff --git a/doc/classes/HTTPRequest.xml b/doc/classes/HTTPRequest.xml
index 00927b98c5..558e51aefe 100644
--- a/doc/classes/HTTPRequest.xml
+++ b/doc/classes/HTTPRequest.xml
@@ -7,6 +7,7 @@
A node with the ability to send HTTP requests. Uses [HTTPClient] internally.
Can be used to make HTTP requests, i.e. download or upload files or web content via HTTP.
[b]Warning:[/b] See the notes and warnings on [HTTPClient] for limitations, especially regarding SSL security.
+ [b]Note:[/b] When exporting to Android, make sure to enable the [code]INTERNET[/code] permission in the Android export preset before exporting the project or using one-click deploy. Otherwise, network communication of any kind will be blocked by Android.
[b]Example of contacting a REST API and printing one of its returned fields:[/b]
[codeblocks]
[gdscript]
@@ -149,7 +150,6 @@
}
[/csharp]
[/codeblocks]
-
[b]Gzipped response bodies[/b]: HTTPRequest will automatically handle decompression of response bodies. A [code]Accept-Encoding[/code] header will be automatically added to each of your requests, unless one is already specified. Any response with a [code]Content-Encoding: gzip[/code] header will automatically be decompressed and delivered to you as uncompressed bytes.
</description>
<tutorials>
diff --git a/doc/classes/HeightMapShape3D.xml b/doc/classes/HeightMapShape3D.xml
index 9a9d3bf8f4..705415171f 100644
--- a/doc/classes/HeightMapShape3D.xml
+++ b/doc/classes/HeightMapShape3D.xml
@@ -8,8 +8,6 @@
</description>
<tutorials>
</tutorials>
- <methods>
- </methods>
<members>
<member name="map_data" type="PackedFloat32Array" setter="set_map_data" getter="get_map_data" default="PackedFloat32Array(0, 0, 0, 0)">
Height map data, pool array must be of [member map_width] * [member map_depth] size.
@@ -21,6 +19,4 @@
Width of the height map data. Changing this will resize the [member map_data].
</member>
</members>
- <constants>
- </constants>
</class>
diff --git a/doc/classes/ImageTexture.xml b/doc/classes/ImageTexture.xml
index 435fec6a50..af7178db95 100644
--- a/doc/classes/ImageTexture.xml
+++ b/doc/classes/ImageTexture.xml
@@ -61,6 +61,4 @@
</description>
</method>
</methods>
- <constants>
- </constants>
</class>
diff --git a/doc/classes/ImageTexture3D.xml b/doc/classes/ImageTexture3D.xml
index 538a836c1c..ca4178f97a 100644
--- a/doc/classes/ImageTexture3D.xml
+++ b/doc/classes/ImageTexture3D.xml
@@ -25,6 +25,4 @@
</description>
</method>
</methods>
- <constants>
- </constants>
</class>
diff --git a/doc/classes/ImageTextureLayered.xml b/doc/classes/ImageTextureLayered.xml
index 1b7400803d..f6ebc43d13 100644
--- a/doc/classes/ImageTextureLayered.xml
+++ b/doc/classes/ImageTextureLayered.xml
@@ -21,6 +21,4 @@
</description>
</method>
</methods>
- <constants>
- </constants>
</class>
diff --git a/doc/classes/ImmediateMesh.xml b/doc/classes/ImmediateMesh.xml
index 69637d5bdd..75a3ec65c2 100644
--- a/doc/classes/ImmediateMesh.xml
+++ b/doc/classes/ImmediateMesh.xml
@@ -79,6 +79,4 @@
</description>
</method>
</methods>
- <constants>
- </constants>
</class>
diff --git a/doc/classes/InputEvent.xml b/doc/classes/InputEvent.xml
index cd14965d1b..9dc8fbeffa 100644
--- a/doc/classes/InputEvent.xml
+++ b/doc/classes/InputEvent.xml
@@ -106,6 +106,4 @@
[b]Note:[/b] This device ID will always be [code]-1[/code] for emulated mouse input from a touchscreen. This can be used to distinguish emulated mouse input from physical mouse input.
</member>
</members>
- <constants>
- </constants>
</class>
diff --git a/doc/classes/InputEventAction.xml b/doc/classes/InputEventAction.xml
index 42326f344f..f09af1a34d 100644
--- a/doc/classes/InputEventAction.xml
+++ b/doc/classes/InputEventAction.xml
@@ -11,8 +11,6 @@
<link title="2D Dodge The Creeps Demo">https://godotengine.org/asset-library/asset/515</link>
<link title="3D Voxel Demo">https://godotengine.org/asset-library/asset/676</link>
</tutorials>
- <methods>
- </methods>
<members>
<member name="action" type="StringName" setter="set_action" getter="get_action" default="&amp;&quot;&quot;">
The action's name. Actions are accessed via this [String].
@@ -24,6 +22,4 @@
The action's strength between 0 and 1. This value is considered as equal to 0 if pressed is [code]false[/code]. The event strength allows faking analog joypad motion events, by specifying how strongly the joypad axis is bent or pressed.
</member>
</members>
- <constants>
- </constants>
</class>
diff --git a/doc/classes/InputEventFromWindow.xml b/doc/classes/InputEventFromWindow.xml
index 7cd5b7d179..0d897b9699 100644
--- a/doc/classes/InputEventFromWindow.xml
+++ b/doc/classes/InputEventFromWindow.xml
@@ -6,12 +6,8 @@
</description>
<tutorials>
</tutorials>
- <methods>
- </methods>
<members>
<member name="window_id" type="int" setter="set_window_id" getter="get_window_id" default="0">
</member>
</members>
- <constants>
- </constants>
</class>
diff --git a/doc/classes/InputEventGesture.xml b/doc/classes/InputEventGesture.xml
index fbde318ada..2d57b84cc8 100644
--- a/doc/classes/InputEventGesture.xml
+++ b/doc/classes/InputEventGesture.xml
@@ -7,13 +7,9 @@
</description>
<tutorials>
</tutorials>
- <methods>
- </methods>
<members>
<member name="position" type="Vector2" setter="set_position" getter="get_position" default="Vector2(0, 0)">
The local gesture position relative to the [Viewport]. If used in [method Control._gui_input], the position is relative to the current [Control] that received this gesture.
</member>
</members>
- <constants>
- </constants>
</class>
diff --git a/doc/classes/InputEventJoypadButton.xml b/doc/classes/InputEventJoypadButton.xml
index f9afe42a7a..ff82913385 100644
--- a/doc/classes/InputEventJoypadButton.xml
+++ b/doc/classes/InputEventJoypadButton.xml
@@ -9,8 +9,6 @@
<tutorials>
<link title="InputEvent">https://docs.godotengine.org/en/latest/tutorials/inputs/inputevent.html</link>
</tutorials>
- <methods>
- </methods>
<members>
<member name="button_index" type="int" setter="set_button_index" getter="get_button_index" enum="JoyButton" default="0">
Button identifier. One of the [enum JoyButton] button constants.
@@ -22,6 +20,4 @@
Represents the pressure the user puts on the button with his finger, if the controller supports it. Ranges from [code]0[/code] to [code]1[/code].
</member>
</members>
- <constants>
- </constants>
</class>
diff --git a/doc/classes/InputEventJoypadMotion.xml b/doc/classes/InputEventJoypadMotion.xml
index 398b9eb6f6..92161974ba 100644
--- a/doc/classes/InputEventJoypadMotion.xml
+++ b/doc/classes/InputEventJoypadMotion.xml
@@ -9,8 +9,6 @@
<tutorials>
<link title="InputEvent">https://docs.godotengine.org/en/latest/tutorials/inputs/inputevent.html</link>
</tutorials>
- <methods>
- </methods>
<members>
<member name="axis" type="int" setter="set_axis" getter="get_axis" enum="JoyAxis" default="0">
Axis identifier. Use one of the [enum JoyAxis] axis constants.
@@ -19,6 +17,4 @@
Current position of the joystick on the given axis. The value ranges from [code]-1.0[/code] to [code]1.0[/code]. A value of [code]0[/code] means the axis is in its resting position.
</member>
</members>
- <constants>
- </constants>
</class>
diff --git a/doc/classes/InputEventKey.xml b/doc/classes/InputEventKey.xml
index f670d907fc..9cf6872655 100644
--- a/doc/classes/InputEventKey.xml
+++ b/doc/classes/InputEventKey.xml
@@ -44,6 +44,4 @@
The key Unicode identifier (when relevant). Unicode identifiers for the composite characters and complex scripts may not be available unless IME input mode is active. See [method Window.set_ime_active] for more information.
</member>
</members>
- <constants>
- </constants>
</class>
diff --git a/doc/classes/InputEventMIDI.xml b/doc/classes/InputEventMIDI.xml
index afc9d476da..040eee7b98 100644
--- a/doc/classes/InputEventMIDI.xml
+++ b/doc/classes/InputEventMIDI.xml
@@ -6,8 +6,6 @@
</description>
<tutorials>
</tutorials>
- <methods>
- </methods>
<members>
<member name="channel" type="int" setter="set_channel" getter="get_channel" default="0">
</member>
@@ -26,6 +24,4 @@
<member name="velocity" type="int" setter="set_velocity" getter="get_velocity" default="0">
</member>
</members>
- <constants>
- </constants>
</class>
diff --git a/doc/classes/InputEventMagnifyGesture.xml b/doc/classes/InputEventMagnifyGesture.xml
index 3e539b2f97..ed0860a63a 100644
--- a/doc/classes/InputEventMagnifyGesture.xml
+++ b/doc/classes/InputEventMagnifyGesture.xml
@@ -6,12 +6,8 @@
</description>
<tutorials>
</tutorials>
- <methods>
- </methods>
<members>
<member name="factor" type="float" setter="set_factor" getter="get_factor" default="1.0">
</member>
</members>
- <constants>
- </constants>
</class>
diff --git a/doc/classes/InputEventMouse.xml b/doc/classes/InputEventMouse.xml
index b8043118b7..b06068aff3 100644
--- a/doc/classes/InputEventMouse.xml
+++ b/doc/classes/InputEventMouse.xml
@@ -9,8 +9,6 @@
<tutorials>
<link title="InputEvent">https://docs.godotengine.org/en/latest/tutorials/inputs/inputevent.html</link>
</tutorials>
- <methods>
- </methods>
<members>
<member name="button_mask" type="int" setter="set_button_mask" getter="get_button_mask" default="0">
The mouse button mask identifier, one of or a bitwise combination of the [enum MouseButton] button masks.
@@ -22,6 +20,4 @@
The local mouse position relative to the [Viewport]. If used in [method Control._gui_input], the position is relative to the current [Control] which is under the mouse.
</member>
</members>
- <constants>
- </constants>
</class>
diff --git a/doc/classes/InputEventMouseButton.xml b/doc/classes/InputEventMouseButton.xml
index 7a6c7410ef..dcfe0d6c71 100644
--- a/doc/classes/InputEventMouseButton.xml
+++ b/doc/classes/InputEventMouseButton.xml
@@ -9,8 +9,6 @@
<tutorials>
<link title="Mouse and input coordinates">https://docs.godotengine.org/en/latest/tutorials/inputs/mouse_and_input_coordinates.html</link>
</tutorials>
- <methods>
- </methods>
<members>
<member name="button_index" type="int" setter="set_button_index" getter="get_button_index" enum="MouseButton" default="0">
The mouse button identifier, one of the [enum MouseButton] button or button wheel constants.
@@ -25,6 +23,4 @@
If [code]true[/code], the mouse button's state is pressed. If [code]false[/code], the mouse button's state is released.
</member>
</members>
- <constants>
- </constants>
</class>
diff --git a/doc/classes/InputEventMouseMotion.xml b/doc/classes/InputEventMouseMotion.xml
index 881d74ac7b..9a0156510e 100644
--- a/doc/classes/InputEventMouseMotion.xml
+++ b/doc/classes/InputEventMouseMotion.xml
@@ -11,8 +11,6 @@
<link title="Mouse and input coordinates">https://docs.godotengine.org/en/latest/tutorials/inputs/mouse_and_input_coordinates.html</link>
<link title="3D Voxel Demo">https://godotengine.org/asset-library/asset/676</link>
</tutorials>
- <methods>
- </methods>
<members>
<member name="pressure" type="float" setter="set_pressure" getter="get_pressure" default="0.0">
Represents the pressure the user puts on the pen. Ranges from [code]0.0[/code] to [code]1.0[/code].
@@ -28,6 +26,4 @@
Represents the angles of tilt of the pen. Positive X-coordinate value indicates a tilt to the right. Positive Y-coordinate value indicates a tilt toward the user. Ranges from [code]-1.0[/code] to [code]1.0[/code] for both axes.
</member>
</members>
- <constants>
- </constants>
</class>
diff --git a/doc/classes/InputEventPanGesture.xml b/doc/classes/InputEventPanGesture.xml
index ffb1901dad..2de3459df7 100644
--- a/doc/classes/InputEventPanGesture.xml
+++ b/doc/classes/InputEventPanGesture.xml
@@ -6,12 +6,8 @@
</description>
<tutorials>
</tutorials>
- <methods>
- </methods>
<members>
<member name="delta" type="Vector2" setter="set_delta" getter="get_delta" default="Vector2(0, 0)">
</member>
</members>
- <constants>
- </constants>
</class>
diff --git a/doc/classes/InputEventScreenDrag.xml b/doc/classes/InputEventScreenDrag.xml
index 079ac03f45..373936225b 100644
--- a/doc/classes/InputEventScreenDrag.xml
+++ b/doc/classes/InputEventScreenDrag.xml
@@ -9,8 +9,6 @@
<tutorials>
<link title="InputEvent">https://docs.godotengine.org/en/latest/tutorials/inputs/inputevent.html</link>
</tutorials>
- <methods>
- </methods>
<members>
<member name="index" type="int" setter="set_index" getter="get_index" default="0">
The drag event index in the case of a multi-drag event.
@@ -25,6 +23,4 @@
The drag speed.
</member>
</members>
- <constants>
- </constants>
</class>
diff --git a/doc/classes/InputEventScreenTouch.xml b/doc/classes/InputEventScreenTouch.xml
index 7aa5f62b05..c731044c98 100644
--- a/doc/classes/InputEventScreenTouch.xml
+++ b/doc/classes/InputEventScreenTouch.xml
@@ -10,8 +10,6 @@
<tutorials>
<link title="InputEvent">https://docs.godotengine.org/en/latest/tutorials/inputs/inputevent.html</link>
</tutorials>
- <methods>
- </methods>
<members>
<member name="index" type="int" setter="set_index" getter="get_index" default="0">
The touch index in the case of a multi-touch event. One index = one finger.
@@ -23,6 +21,4 @@
If [code]true[/code], the touch's state is pressed. If [code]false[/code], the touch's state is released.
</member>
</members>
- <constants>
- </constants>
</class>
diff --git a/doc/classes/InputEventShortcut.xml b/doc/classes/InputEventShortcut.xml
index 35cca02cf7..ea84db541c 100644
--- a/doc/classes/InputEventShortcut.xml
+++ b/doc/classes/InputEventShortcut.xml
@@ -6,12 +6,8 @@
</description>
<tutorials>
</tutorials>
- <methods>
- </methods>
<members>
<member name="shortcut" type="Shortcut" setter="set_shortcut" getter="get_shortcut">
</member>
</members>
- <constants>
- </constants>
</class>
diff --git a/doc/classes/InputEventWithModifiers.xml b/doc/classes/InputEventWithModifiers.xml
index 3beea7f9a0..1b9212bf65 100644
--- a/doc/classes/InputEventWithModifiers.xml
+++ b/doc/classes/InputEventWithModifiers.xml
@@ -9,8 +9,6 @@
<tutorials>
<link title="InputEvent">https://docs.godotengine.org/en/latest/tutorials/inputs/inputevent.html</link>
</tutorials>
- <methods>
- </methods>
<members>
<member name="alt_pressed" type="bool" setter="set_alt_pressed" getter="is_alt_pressed" default="false">
State of the [kbd]Alt[/kbd] modifier.
@@ -32,6 +30,4 @@
This aids with cross-platform compatibility when developing e.g. on Windows for macOS, or vice-versa.
</member>
</members>
- <constants>
- </constants>
</class>
diff --git a/doc/classes/InputMap.xml b/doc/classes/InputMap.xml
index 16c2695613..855d5b5d71 100644
--- a/doc/classes/InputMap.xml
+++ b/doc/classes/InputMap.xml
@@ -109,6 +109,4 @@
</description>
</method>
</methods>
- <constants>
- </constants>
</class>
diff --git a/doc/classes/InstancePlaceholder.xml b/doc/classes/InstancePlaceholder.xml
index 75892895d7..e67232ebac 100644
--- a/doc/classes/InstancePlaceholder.xml
+++ b/doc/classes/InstancePlaceholder.xml
@@ -31,6 +31,4 @@
</description>
</method>
</methods>
- <constants>
- </constants>
</class>
diff --git a/doc/classes/IntervalTweener.xml b/doc/classes/IntervalTweener.xml
index 1c59003c70..f2f58b4ca6 100644
--- a/doc/classes/IntervalTweener.xml
+++ b/doc/classes/IntervalTweener.xml
@@ -9,8 +9,4 @@
</description>
<tutorials>
</tutorials>
- <methods>
- </methods>
- <constants>
- </constants>
</class>
diff --git a/doc/classes/JNISingleton.xml b/doc/classes/JNISingleton.xml
index fbf18ddc03..ce39e1f567 100644
--- a/doc/classes/JNISingleton.xml
+++ b/doc/classes/JNISingleton.xml
@@ -9,8 +9,4 @@
<tutorials>
<link title="Creating Android plugins">https://docs.godotengine.org/en/latest/tutorials/platform/android/android_plugin.html#doc-android-plugin</link>
</tutorials>
- <methods>
- </methods>
- <constants>
- </constants>
</class>
diff --git a/doc/classes/JSON.xml b/doc/classes/JSON.xml
index cee7db08e9..63e6307b39 100644
--- a/doc/classes/JSON.xml
+++ b/doc/classes/JSON.xml
@@ -91,6 +91,4 @@
</description>
</method>
</methods>
- <constants>
- </constants>
</class>
diff --git a/doc/classes/JavaClass.xml b/doc/classes/JavaClass.xml
index 0b6a44fe14..b024f0ccd4 100644
--- a/doc/classes/JavaClass.xml
+++ b/doc/classes/JavaClass.xml
@@ -6,8 +6,4 @@
</description>
<tutorials>
</tutorials>
- <methods>
- </methods>
- <constants>
- </constants>
</class>
diff --git a/doc/classes/JavaClassWrapper.xml b/doc/classes/JavaClassWrapper.xml
index 90d988f9bb..f532207f03 100644
--- a/doc/classes/JavaClassWrapper.xml
+++ b/doc/classes/JavaClassWrapper.xml
@@ -14,6 +14,4 @@
</description>
</method>
</methods>
- <constants>
- </constants>
</class>
diff --git a/doc/classes/JavaScript.xml b/doc/classes/JavaScript.xml
index d68b4492c7..5865ad734e 100644
--- a/doc/classes/JavaScript.xml
+++ b/doc/classes/JavaScript.xml
@@ -54,6 +54,4 @@
</description>
</method>
</methods>
- <constants>
- </constants>
</class>
diff --git a/doc/classes/JavaScriptObject.xml b/doc/classes/JavaScriptObject.xml
index 087fe163b4..5aa54a7d0c 100644
--- a/doc/classes/JavaScriptObject.xml
+++ b/doc/classes/JavaScriptObject.xml
@@ -35,8 +35,4 @@
</description>
<tutorials>
</tutorials>
- <methods>
- </methods>
- <constants>
- </constants>
</class>
diff --git a/doc/classes/Joint2D.xml b/doc/classes/Joint2D.xml
index b055293b9d..b003224ad4 100644
--- a/doc/classes/Joint2D.xml
+++ b/doc/classes/Joint2D.xml
@@ -8,8 +8,6 @@
</description>
<tutorials>
</tutorials>
- <methods>
- </methods>
<members>
<member name="bias" type="float" setter="set_bias" getter="get_bias" default="0.0">
When [member node_a] and [member node_b] move in different directions the [code]bias[/code] controls how fast the joint pulls them back to their original position. The lower the [code]bias[/code] the more the two bodies can pull on the joint.
@@ -24,6 +22,4 @@
The second body attached to the joint. Must derive from [PhysicsBody2D].
</member>
</members>
- <constants>
- </constants>
</class>
diff --git a/doc/classes/Joint3D.xml b/doc/classes/Joint3D.xml
index 94cdda586c..4b2c1ab4cb 100644
--- a/doc/classes/Joint3D.xml
+++ b/doc/classes/Joint3D.xml
@@ -9,8 +9,6 @@
<tutorials>
<link title="3D Truck Town Demo">https://godotengine.org/asset-library/asset/524</link>
</tutorials>
- <methods>
- </methods>
<members>
<member name="collision/exclude_nodes" type="bool" setter="set_exclude_nodes_from_collision" getter="get_exclude_nodes_from_collision" default="true">
If [code]true[/code], the two bodies of the nodes are not able to collide with each other.
@@ -25,6 +23,4 @@
The priority used to define which solver is executed first for multiple joints. The lower the value, the higher the priority.
</member>
</members>
- <constants>
- </constants>
</class>
diff --git a/doc/classes/KinematicCollision2D.xml b/doc/classes/KinematicCollision2D.xml
index 721b840e99..c558c541ad 100644
--- a/doc/classes/KinematicCollision2D.xml
+++ b/doc/classes/KinematicCollision2D.xml
@@ -56,6 +56,4 @@
The distance the moving object traveled before collision.
</member>
</members>
- <constants>
- </constants>
</class>
diff --git a/doc/classes/KinematicCollision3D.xml b/doc/classes/KinematicCollision3D.xml
index 5477736c25..db32cf57bc 100644
--- a/doc/classes/KinematicCollision3D.xml
+++ b/doc/classes/KinematicCollision3D.xml
@@ -12,41 +12,114 @@
<methods>
<method name="get_angle" qualifiers="const">
<return type="float" />
- <argument index="0" name="up_direction" type="Vector3" default="Vector3(0, 1, 0)" />
+ <argument index="0" name="collision_index" type="int" default="0" />
+ <argument index="1" name="up_direction" type="Vector3" default="Vector3(0, 1, 0)" />
<description>
The collision angle according to [code]up_direction[/code], which is [code]Vector3.UP[/code] by default. This value is always positive.
</description>
</method>
+ <method name="get_collider" qualifiers="const">
+ <return type="Object" />
+ <argument index="0" name="collision_index" type="int" default="0" />
+ <description>
+ Returns the collider by index (the latest by default).
+ </description>
+ </method>
+ <method name="get_collider_id" qualifiers="const">
+ <return type="int" />
+ <argument index="0" name="collision_index" type="int" default="0" />
+ <description>
+ Returns the collider ID by index (the latest by default).
+ </description>
+ </method>
+ <method name="get_collider_metadata" qualifiers="const">
+ <return type="Variant" />
+ <argument index="0" name="collision_index" type="int" default="0" />
+ <description>
+ Returns the collider metadata by index (the latest by default).
+ </description>
+ </method>
+ <method name="get_collider_rid" qualifiers="const">
+ <return type="RID" />
+ <argument index="0" name="collision_index" type="int" default="0" />
+ <description>
+ Returns the collider RID by index (the latest by default).
+ </description>
+ </method>
+ <method name="get_collider_shape" qualifiers="const">
+ <return type="Object" />
+ <argument index="0" name="collision_index" type="int" default="0" />
+ <description>
+ Returns the collider shape by index (the latest by default).
+ </description>
+ </method>
+ <method name="get_collider_shape_index" qualifiers="const">
+ <return type="int" />
+ <argument index="0" name="collision_index" type="int" default="0" />
+ <description>
+ Returns the collider shape index by index (the latest by default).
+ </description>
+ </method>
+ <method name="get_collider_velocity" qualifiers="const">
+ <return type="Vector3" />
+ <argument index="0" name="collision_index" type="int" default="0" />
+ <description>
+ Returns the collider velocity by index (the latest by default).
+ </description>
+ </method>
+ <method name="get_local_shape" qualifiers="const">
+ <return type="Object" />
+ <argument index="0" name="collision_index" type="int" default="0" />
+ <description>
+ Returns the collider velocity by index (the latest by default).
+ </description>
+ </method>
+ <method name="get_normal" qualifiers="const">
+ <return type="Vector3" />
+ <argument index="0" name="collision_index" type="int" default="0" />
+ <description>
+ Returns the collider normal by index (the latest by default).
+ </description>
+ </method>
+ <method name="get_position" qualifiers="const">
+ <return type="Vector3" />
+ <argument index="0" name="collision_index" type="int" default="0" />
+ <description>
+ Returns the collider collision point by index (the latest by default).
+ </description>
+ </method>
</methods>
<members>
- <member name="collider" type="Object" setter="" getter="get_collider">
+ <member name="collider" type="Object" setter="" getter="get_best_collider">
The colliding body.
</member>
- <member name="collider_id" type="int" setter="" getter="get_collider_id" default="0">
+ <member name="collider_id" type="int" setter="" getter="get_best_collider_id" default="0">
The colliding body's unique instance ID. See [method Object.get_instance_id].
</member>
- <member name="collider_metadata" type="Variant" setter="" getter="get_collider_metadata">
+ <member name="collider_metadata" type="Variant" setter="" getter="get_best_collider_metadata">
The colliding body's metadata. See [Object].
</member>
- <member name="collider_rid" type="RID" setter="" getter="get_collider_rid">
+ <member name="collider_rid" type="RID" setter="" getter="get_best_collider_rid">
The colliding body's [RID] used by the [PhysicsServer3D].
</member>
- <member name="collider_shape" type="Object" setter="" getter="get_collider_shape">
+ <member name="collider_shape" type="Object" setter="" getter="get_best_collider_shape">
The colliding body's shape.
</member>
- <member name="collider_shape_index" type="int" setter="" getter="get_collider_shape_index" default="0">
+ <member name="collider_shape_index" type="int" setter="" getter="get_best_collider_shape_index" default="0">
The colliding shape's index. See [CollisionObject3D].
</member>
- <member name="collider_velocity" type="Vector3" setter="" getter="get_collider_velocity" default="Vector3(0, 0, 0)">
+ <member name="collider_velocity" type="Vector3" setter="" getter="get_best_collider_velocity" default="Vector3(0, 0, 0)">
The colliding object's velocity.
</member>
- <member name="local_shape" type="Object" setter="" getter="get_local_shape">
+ <member name="collision_count" type="int" setter="" getter="get_collision_count" default="0">
+ </member>
+ <member name="local_shape" type="Object" setter="" getter="get_best_local_shape">
The moving object's colliding shape.
</member>
- <member name="normal" type="Vector3" setter="" getter="get_normal" default="Vector3(0, 0, 0)">
+ <member name="normal" type="Vector3" setter="" getter="get_best_normal" default="Vector3(0, 0, 0)">
The colliding body's shape's normal at the point of collision.
</member>
- <member name="position" type="Vector3" setter="" getter="get_position" default="Vector3(0, 0, 0)">
+ <member name="position" type="Vector3" setter="" getter="get_best_position" default="Vector3(0, 0, 0)">
The point of collision, in global coordinates.
</member>
<member name="remainder" type="Vector3" setter="" getter="get_remainder" default="Vector3(0, 0, 0)">
@@ -56,6 +129,4 @@
The distance the moving object traveled before collision.
</member>
</members>
- <constants>
- </constants>
</class>
diff --git a/doc/classes/LightOccluder2D.xml b/doc/classes/LightOccluder2D.xml
index 550daf9225..ba795a29a1 100644
--- a/doc/classes/LightOccluder2D.xml
+++ b/doc/classes/LightOccluder2D.xml
@@ -9,8 +9,6 @@
<tutorials>
<link title="2D lights and shadows">https://docs.godotengine.org/en/latest/tutorials/2d/2d_lights_and_shadows.html</link>
</tutorials>
- <methods>
- </methods>
<members>
<member name="occluder" type="OccluderPolygon2D" setter="set_occluder_polygon" getter="get_occluder_polygon">
The [OccluderPolygon2D] used to compute the shadow.
@@ -21,6 +19,4 @@
<member name="sdf_collision" type="bool" setter="set_as_sdf_collision" getter="is_set_as_sdf_collision" default="true">
</member>
</members>
- <constants>
- </constants>
</class>
diff --git a/doc/classes/LightmapGI.xml b/doc/classes/LightmapGI.xml
index d7722a83b0..0cdf9f820f 100644
--- a/doc/classes/LightmapGI.xml
+++ b/doc/classes/LightmapGI.xml
@@ -6,8 +6,6 @@
</description>
<tutorials>
</tutorials>
- <methods>
- </methods>
<members>
<member name="bias" type="float" setter="set_bias" getter="get_bias" default="0.0005">
</member>
diff --git a/doc/classes/LightmapGIData.xml b/doc/classes/LightmapGIData.xml
index c577439c8f..f678ae48d9 100644
--- a/doc/classes/LightmapGIData.xml
+++ b/doc/classes/LightmapGIData.xml
@@ -48,6 +48,4 @@
<member name="light_texture" type="TextureLayered" setter="set_light_texture" getter="get_light_texture">
</member>
</members>
- <constants>
- </constants>
</class>
diff --git a/doc/classes/LightmapProbe.xml b/doc/classes/LightmapProbe.xml
index 3af71f3774..465e645216 100644
--- a/doc/classes/LightmapProbe.xml
+++ b/doc/classes/LightmapProbe.xml
@@ -6,8 +6,4 @@
</description>
<tutorials>
</tutorials>
- <methods>
- </methods>
- <constants>
- </constants>
</class>
diff --git a/doc/classes/Lightmapper.xml b/doc/classes/Lightmapper.xml
index 79fae42d68..d9a9a55f6a 100644
--- a/doc/classes/Lightmapper.xml
+++ b/doc/classes/Lightmapper.xml
@@ -6,8 +6,4 @@
</description>
<tutorials>
</tutorials>
- <methods>
- </methods>
- <constants>
- </constants>
</class>
diff --git a/doc/classes/LightmapperRD.xml b/doc/classes/LightmapperRD.xml
index 0993b28f19..cfa9a4e2df 100644
--- a/doc/classes/LightmapperRD.xml
+++ b/doc/classes/LightmapperRD.xml
@@ -6,8 +6,4 @@
</description>
<tutorials>
</tutorials>
- <methods>
- </methods>
- <constants>
- </constants>
</class>
diff --git a/doc/classes/LineEdit.xml b/doc/classes/LineEdit.xml
index 834b5a41db..83e3f5b05a 100644
--- a/doc/classes/LineEdit.xml
+++ b/doc/classes/LineEdit.xml
@@ -82,6 +82,24 @@
Returns the scroll offset due to [member caret_column], as a number of characters.
</description>
</method>
+ <method name="get_selection_from_column" qualifiers="const">
+ <return type="int" />
+ <description>
+ Returns the selection begin column.
+ </description>
+ </method>
+ <method name="get_selection_to_column" qualifiers="const">
+ <return type="int" />
+ <description>
+ Returns the selection end column.
+ </description>
+ </method>
+ <method name="has_selection" qualifiers="const">
+ <return type="bool" />
+ <description>
+ Returns [code]true[/code] if the user has selected text.
+ </description>
+ </method>
<method name="insert_text_at_caret">
<return type="void" />
<argument index="0" name="text" type="String" />
diff --git a/doc/classes/MarginContainer.xml b/doc/classes/MarginContainer.xml
index 419857c13f..2948e58f50 100644
--- a/doc/classes/MarginContainer.xml
+++ b/doc/classes/MarginContainer.xml
@@ -27,10 +27,6 @@
</description>
<tutorials>
</tutorials>
- <methods>
- </methods>
- <constants>
- </constants>
<theme_items>
<theme_item name="margin_bottom" data_type="constant" type="int" default="0">
All direct children of [MarginContainer] will have a bottom margin of [code]margin_bottom[/code] pixels.
diff --git a/doc/classes/Marshalls.xml b/doc/classes/Marshalls.xml
index 0f36dd11ca..eb6635f03f 100644
--- a/doc/classes/Marshalls.xml
+++ b/doc/classes/Marshalls.xml
@@ -55,6 +55,4 @@
</description>
</method>
</methods>
- <constants>
- </constants>
</class>
diff --git a/doc/classes/MenuButton.xml b/doc/classes/MenuButton.xml
index 1c7e6f1f19..5bdc9cccd9 100644
--- a/doc/classes/MenuButton.xml
+++ b/doc/classes/MenuButton.xml
@@ -41,8 +41,6 @@
</description>
</signal>
</signals>
- <constants>
- </constants>
<theme_items>
<theme_item name="disabled" data_type="style" type="StyleBox">
[StyleBox] used when the [MenuButton] is disabled.
diff --git a/doc/classes/MeshDataTool.xml b/doc/classes/MeshDataTool.xml
index 338deed0be..35e4451918 100644
--- a/doc/classes/MeshDataTool.xml
+++ b/doc/classes/MeshDataTool.xml
@@ -332,6 +332,4 @@
</description>
</method>
</methods>
- <constants>
- </constants>
</class>
diff --git a/doc/classes/MeshInstance2D.xml b/doc/classes/MeshInstance2D.xml
index 59b312f69a..c7b66c8ea3 100644
--- a/doc/classes/MeshInstance2D.xml
+++ b/doc/classes/MeshInstance2D.xml
@@ -9,8 +9,6 @@
<tutorials>
<link title="2D meshes">https://docs.godotengine.org/en/latest/tutorials/2d/2d_meshes.html</link>
</tutorials>
- <methods>
- </methods>
<members>
<member name="mesh" type="Mesh" setter="set_mesh" getter="get_mesh">
The [Mesh] that will be drawn by the [MeshInstance2D].
@@ -30,6 +28,4 @@
</description>
</signal>
</signals>
- <constants>
- </constants>
</class>
diff --git a/doc/classes/MeshInstance3D.xml b/doc/classes/MeshInstance3D.xml
index 665d5d3c77..507a76197a 100644
--- a/doc/classes/MeshInstance3D.xml
+++ b/doc/classes/MeshInstance3D.xml
@@ -81,6 +81,4 @@
Sets the skin to be used by this instance.
</member>
</members>
- <constants>
- </constants>
</class>
diff --git a/doc/classes/MeshLibrary.xml b/doc/classes/MeshLibrary.xml
index 1d07647ea7..9fde19588a 100644
--- a/doc/classes/MeshLibrary.xml
+++ b/doc/classes/MeshLibrary.xml
@@ -160,6 +160,4 @@
</description>
</method>
</methods>
- <constants>
- </constants>
</class>
diff --git a/doc/classes/MeshTexture.xml b/doc/classes/MeshTexture.xml
index 57f2397874..eb0451fea6 100644
--- a/doc/classes/MeshTexture.xml
+++ b/doc/classes/MeshTexture.xml
@@ -8,8 +8,6 @@
</description>
<tutorials>
</tutorials>
- <methods>
- </methods>
<members>
<member name="base_texture" type="Texture2D" setter="set_base_texture" getter="get_base_texture">
Sets the base texture that the Mesh will use to draw.
@@ -21,6 +19,4 @@
Sets the mesh used to draw. It must be a mesh using 2D vertices.
</member>
</members>
- <constants>
- </constants>
</class>
diff --git a/doc/classes/MethodTweener.xml b/doc/classes/MethodTweener.xml
index 1b93b20d9f..5780aa00d9 100644
--- a/doc/classes/MethodTweener.xml
+++ b/doc/classes/MethodTweener.xml
@@ -32,6 +32,4 @@
</description>
</method>
</methods>
- <constants>
- </constants>
</class>
diff --git a/doc/classes/MultiMeshInstance2D.xml b/doc/classes/MultiMeshInstance2D.xml
index a461c8e056..328ddff0eb 100644
--- a/doc/classes/MultiMeshInstance2D.xml
+++ b/doc/classes/MultiMeshInstance2D.xml
@@ -9,8 +9,6 @@
</description>
<tutorials>
</tutorials>
- <methods>
- </methods>
<members>
<member name="multimesh" type="MultiMesh" setter="set_multimesh" getter="get_multimesh">
The [MultiMesh] that will be drawn by the [MultiMeshInstance2D].
@@ -30,6 +28,4 @@
</description>
</signal>
</signals>
- <constants>
- </constants>
</class>
diff --git a/doc/classes/MultiMeshInstance3D.xml b/doc/classes/MultiMeshInstance3D.xml
index 7d8035ba77..7bf05d2d34 100644
--- a/doc/classes/MultiMeshInstance3D.xml
+++ b/doc/classes/MultiMeshInstance3D.xml
@@ -12,13 +12,9 @@
<link title="Using MultiMeshInstance">https://docs.godotengine.org/en/latest/tutorials/3d/using_multi_mesh_instance.html</link>
<link title="Optimization using MultiMeshes">https://docs.godotengine.org/en/latest/tutorials/optimization/using_multimesh.html</link>
</tutorials>
- <methods>
- </methods>
<members>
<member name="multimesh" type="MultiMesh" setter="set_multimesh" getter="get_multimesh">
The [MultiMesh] resource that will be used and shared among all instances of the [MultiMeshInstance3D].
</member>
</members>
- <constants>
- </constants>
</class>
diff --git a/doc/classes/MultiplayerAPI.xml b/doc/classes/MultiplayerAPI.xml
index 647233f679..e0da08f5bd 100644
--- a/doc/classes/MultiplayerAPI.xml
+++ b/doc/classes/MultiplayerAPI.xml
@@ -8,6 +8,7 @@
By default, [SceneTree] has a reference to this class that is used to provide multiplayer capabilities (i.e. RPCs) across the whole scene.
It is possible to override the MultiplayerAPI instance used by specific Nodes by setting the [member Node.custom_multiplayer] property, effectively allowing to run both client and server in the same scene.
[b]Note:[/b] The high-level multiplayer API protocol is an implementation detail and isn't meant to be used by non-Godot servers. It may change without notice.
+ [b]Note:[/b] When exporting to Android, make sure to enable the [code]INTERNET[/code] permission in the Android export preset before exporting the project or using one-click deploy. Otherwise, network communication of any kind will be blocked by Android.
</description>
<tutorials>
</tutorials>
@@ -121,6 +122,4 @@
</description>
</signal>
</signals>
- <constants>
- </constants>
</class>
diff --git a/doc/classes/MultiplayerPeer.xml b/doc/classes/MultiplayerPeer.xml
index 411317cdc8..15517f7c2f 100644
--- a/doc/classes/MultiplayerPeer.xml
+++ b/doc/classes/MultiplayerPeer.xml
@@ -6,6 +6,7 @@
<description>
Manages the connection to multiplayer peers. Assigns unique IDs to each client connected to the server. See also [MultiplayerAPI].
[b]Note:[/b] The high-level multiplayer API protocol is an implementation detail and isn't meant to be used by non-Godot servers. It may change without notice.
+ [b]Note:[/b] When exporting to Android, make sure to enable the [code]INTERNET[/code] permission in the Android export preset before exporting the project or using one-click deploy. Otherwise, network communication of any kind will be blocked by Android.
</description>
<tutorials>
<link title="High-level multiplayer">https://docs.godotengine.org/en/latest/tutorials/networking/high_level_multiplayer.html</link>
@@ -52,14 +53,14 @@
</method>
</methods>
<members>
- <member name="refuse_new_connections" type="bool" setter="set_refuse_new_connections" getter="is_refusing_new_connections" default="true">
+ <member name="refuse_new_connections" type="bool" setter="set_refuse_new_connections" getter="is_refusing_new_connections" default="false">
If [code]true[/code], this [MultiplayerPeer] refuses new connections.
</member>
<member name="transfer_channel" type="int" setter="set_transfer_channel" getter="get_transfer_channel" default="0">
The channel to use to send packets. Many network APIs such as ENet and WebRTC allow the creation of multiple independent channels which behaves, in a way, like separate connections. This means that reliable data will only block delivery of other packets on that channel, and ordering will only be in respect to the channel the packet is being sent on. Using different channels to send [b]different and independent[/b] state updates is a common way to optimize network usage and decrease latency in fast-paced games.
[b]Note:[/b] The default channel ([code]0[/code]) actually works as 3 separate channels (one for each [enum TransferMode]) so that [constant TRANSFER_MODE_RELIABLE] and [constant TRANSFER_MODE_ORDERED] does not interact with each other by default. Refer to the specific network API documentation (e.g. ENet or WebRTC) to learn how to set up channels correctly.
</member>
- <member name="transfer_mode" type="int" setter="set_transfer_mode" getter="get_transfer_mode" enum="TransferMode" default="0">
+ <member name="transfer_mode" type="int" setter="set_transfer_mode" getter="get_transfer_mode" enum="TransferMode" default="2">
The manner in which to send packets to the [code]target_peer[/code]. See [enum TransferMode].
</member>
</members>
diff --git a/doc/classes/MultiplayerPeerExtension.xml b/doc/classes/MultiplayerPeerExtension.xml
new file mode 100644
index 0000000000..46f9b22758
--- /dev/null
+++ b/doc/classes/MultiplayerPeerExtension.xml
@@ -0,0 +1,99 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<class name="MultiplayerPeerExtension" inherits="MultiplayerPeer" version="4.0">
+ <brief_description>
+ </brief_description>
+ <description>
+ </description>
+ <tutorials>
+ </tutorials>
+ <methods>
+ <method name="_get_available_packet_count" qualifiers="virtual const">
+ <return type="int" />
+ <description>
+ </description>
+ </method>
+ <method name="_get_connection_status" qualifiers="virtual const">
+ <return type="int" />
+ <description>
+ </description>
+ </method>
+ <method name="_get_max_packet_size" qualifiers="virtual const">
+ <return type="int" />
+ <description>
+ </description>
+ </method>
+ <method name="_get_packet" qualifiers="virtual">
+ <return type="int" />
+ <argument index="0" name="r_buffer" type="const uint8_t **" />
+ <argument index="1" name="r_buffer_size" type="int32_t*" />
+ <description>
+ </description>
+ </method>
+ <method name="_get_packet_peer" qualifiers="virtual const">
+ <return type="int" />
+ <description>
+ </description>
+ </method>
+ <method name="_get_transfer_channel" qualifiers="virtual const">
+ <return type="int" />
+ <description>
+ </description>
+ </method>
+ <method name="_get_transfer_mode" qualifiers="virtual const">
+ <return type="int" />
+ <description>
+ </description>
+ </method>
+ <method name="_get_unique_id" qualifiers="virtual const">
+ <return type="int" />
+ <description>
+ </description>
+ </method>
+ <method name="_is_refusing_new_connections" qualifiers="virtual const">
+ <return type="bool" />
+ <description>
+ </description>
+ </method>
+ <method name="_is_server" qualifiers="virtual const">
+ <return type="bool" />
+ <description>
+ </description>
+ </method>
+ <method name="_poll" qualifiers="virtual">
+ <return type="int" />
+ <description>
+ </description>
+ </method>
+ <method name="_put_packet" qualifiers="virtual">
+ <return type="int" />
+ <argument index="0" name="p_buffer" type="const uint8_t*" />
+ <argument index="1" name="p_buffer_size" type="int" />
+ <description>
+ </description>
+ </method>
+ <method name="_set_refuse_new_connections" qualifiers="virtual">
+ <return type="void" />
+ <argument index="0" name="p_enable" type="bool" />
+ <description>
+ </description>
+ </method>
+ <method name="_set_target_peer" qualifiers="virtual">
+ <return type="void" />
+ <argument index="0" name="p_peer" type="int" />
+ <description>
+ </description>
+ </method>
+ <method name="_set_transfer_channel" qualifiers="virtual">
+ <return type="void" />
+ <argument index="0" name="p_channel" type="int" />
+ <description>
+ </description>
+ </method>
+ <method name="_set_transfer_mode" qualifiers="virtual">
+ <return type="void" />
+ <argument index="0" name="p_mode" type="int" />
+ <description>
+ </description>
+ </method>
+ </methods>
+</class>
diff --git a/doc/classes/Mutex.xml b/doc/classes/Mutex.xml
index 0e6b1e3e44..eb9bec1104 100644
--- a/doc/classes/Mutex.xml
+++ b/doc/classes/Mutex.xml
@@ -32,6 +32,4 @@
</description>
</method>
</methods>
- <constants>
- </constants>
</class>
diff --git a/doc/classes/NavigationAgent2D.xml b/doc/classes/NavigationAgent2D.xml
index c05f7c2094..068854024c 100644
--- a/doc/classes/NavigationAgent2D.xml
+++ b/doc/classes/NavigationAgent2D.xml
@@ -129,6 +129,4 @@
</description>
</signal>
</signals>
- <constants>
- </constants>
</class>
diff --git a/doc/classes/NavigationAgent3D.xml b/doc/classes/NavigationAgent3D.xml
index af4a058489..f429134a71 100644
--- a/doc/classes/NavigationAgent3D.xml
+++ b/doc/classes/NavigationAgent3D.xml
@@ -135,6 +135,4 @@
</description>
</signal>
</signals>
- <constants>
- </constants>
</class>
diff --git a/doc/classes/NavigationMeshGenerator.xml b/doc/classes/NavigationMeshGenerator.xml
index 9931033260..ca285c030c 100644
--- a/doc/classes/NavigationMeshGenerator.xml
+++ b/doc/classes/NavigationMeshGenerator.xml
@@ -21,6 +21,4 @@
</description>
</method>
</methods>
- <constants>
- </constants>
</class>
diff --git a/doc/classes/NavigationObstacle2D.xml b/doc/classes/NavigationObstacle2D.xml
index 2e94eb0bba..462532d49a 100644
--- a/doc/classes/NavigationObstacle2D.xml
+++ b/doc/classes/NavigationObstacle2D.xml
@@ -8,8 +8,4 @@
</description>
<tutorials>
</tutorials>
- <methods>
- </methods>
- <constants>
- </constants>
</class>
diff --git a/doc/classes/NavigationObstacle3D.xml b/doc/classes/NavigationObstacle3D.xml
index d7454a7bea..c0cb7befef 100644
--- a/doc/classes/NavigationObstacle3D.xml
+++ b/doc/classes/NavigationObstacle3D.xml
@@ -8,8 +8,4 @@
</description>
<tutorials>
</tutorials>
- <methods>
- </methods>
- <constants>
- </constants>
</class>
diff --git a/doc/classes/NavigationPolygon.xml b/doc/classes/NavigationPolygon.xml
index e1e2c34a63..5b5b7c42ef 100644
--- a/doc/classes/NavigationPolygon.xml
+++ b/doc/classes/NavigationPolygon.xml
@@ -141,6 +141,4 @@
</description>
</method>
</methods>
- <constants>
- </constants>
</class>
diff --git a/doc/classes/NavigationRegion2D.xml b/doc/classes/NavigationRegion2D.xml
index 33a3f04c3d..6c78b25744 100644
--- a/doc/classes/NavigationRegion2D.xml
+++ b/doc/classes/NavigationRegion2D.xml
@@ -10,8 +10,6 @@
</description>
<tutorials>
</tutorials>
- <methods>
- </methods>
<members>
<member name="enabled" type="bool" setter="set_enabled" getter="is_enabled" default="true">
Determines if the [NavigationRegion2D] is enabled or disabled.
@@ -23,6 +21,4 @@
The [NavigationPolygon] resource to use.
</member>
</members>
- <constants>
- </constants>
</class>
diff --git a/doc/classes/NavigationRegion3D.xml b/doc/classes/NavigationRegion3D.xml
index da06641b48..f91069fa9d 100644
--- a/doc/classes/NavigationRegion3D.xml
+++ b/doc/classes/NavigationRegion3D.xml
@@ -40,6 +40,4 @@
</description>
</signal>
</signals>
- <constants>
- </constants>
</class>
diff --git a/doc/classes/NavigationServer2D.xml b/doc/classes/NavigationServer2D.xml
index 042ab06e6f..1740093eb2 100644
--- a/doc/classes/NavigationServer2D.xml
+++ b/doc/classes/NavigationServer2D.xml
@@ -272,6 +272,4 @@
</description>
</signal>
</signals>
- <constants>
- </constants>
</class>
diff --git a/doc/classes/NavigationServer3D.xml b/doc/classes/NavigationServer3D.xml
index 73ca18655a..3e10657838 100644
--- a/doc/classes/NavigationServer3D.xml
+++ b/doc/classes/NavigationServer3D.xml
@@ -329,6 +329,4 @@
</description>
</signal>
</signals>
- <constants>
- </constants>
</class>
diff --git a/doc/classes/Node.xml b/doc/classes/Node.xml
index 608d76cd9f..f5766c87c0 100644
--- a/doc/classes/Node.xml
+++ b/doc/classes/Node.xml
@@ -701,7 +701,7 @@
The override to the default [MultiplayerAPI]. Set to [code]null[/code] to use the default [SceneTree] one.
</member>
<member name="filename" type="String" setter="set_filename" getter="get_filename">
- When a scene is instantiated from a file, its topmost node contains the filename from which it was loaded.
+ If a scene is instantiated from a file, its topmost node contains the absolute file path from which it was loaded in [member filename] (e.g. [code]res://levels/1.tscn[/code]). Otherwise, [member filename] is set to an empty string.
</member>
<member name="multiplayer" type="MultiplayerAPI" setter="" getter="get_multiplayer">
The [MultiplayerAPI] instance associated with this node. Either the [member custom_multiplayer], or the default SceneTree one (if inside tree).
diff --git a/doc/classes/Node2D.xml b/doc/classes/Node2D.xml
index 4f5c2bbd6e..ef5f9ee5c9 100644
--- a/doc/classes/Node2D.xml
+++ b/doc/classes/Node2D.xml
@@ -130,6 +130,4 @@
Z index. Controls the order in which the nodes render. A node with a higher Z index will display in front of others. Must be between [constant RenderingServer.CANVAS_ITEM_Z_MIN] and [constant RenderingServer.CANVAS_ITEM_Z_MAX] (inclusive).
</member>
</members>
- <constants>
- </constants>
</class>
diff --git a/doc/classes/Node3DGizmo.xml b/doc/classes/Node3DGizmo.xml
index c561047332..00298976a8 100644
--- a/doc/classes/Node3DGizmo.xml
+++ b/doc/classes/Node3DGizmo.xml
@@ -6,8 +6,4 @@
</description>
<tutorials>
</tutorials>
- <methods>
- </methods>
- <constants>
- </constants>
</class>
diff --git a/doc/classes/NodePath.xml b/doc/classes/NodePath.xml
index 87b3e39f48..17c6ba38b7 100644
--- a/doc/classes/NodePath.xml
+++ b/doc/classes/NodePath.xml
@@ -189,6 +189,4 @@
</description>
</method>
</methods>
- <constants>
- </constants>
</class>
diff --git a/doc/classes/ORMMaterial3D.xml b/doc/classes/ORMMaterial3D.xml
index d275f93196..7ca4f5d363 100644
--- a/doc/classes/ORMMaterial3D.xml
+++ b/doc/classes/ORMMaterial3D.xml
@@ -6,8 +6,4 @@
</description>
<tutorials>
</tutorials>
- <methods>
- </methods>
- <constants>
- </constants>
</class>
diff --git a/doc/classes/OS.xml b/doc/classes/OS.xml
index 305258c8c5..9d0d185c42 100644
--- a/doc/classes/OS.xml
+++ b/doc/classes/OS.xml
@@ -49,20 +49,25 @@
[/codeblocks]
See [method execute] if you wish to run an external command and retrieve the results.
[b]Note:[/b] This method is implemented on Android, iOS, Linux, macOS and Windows.
+ [b]Note:[/b] On macOS, sandboxed applications are limited to run only embedded helper executables, specified during export.
</description>
</method>
<method name="delay_msec" qualifiers="const">
<return type="void" />
<argument index="0" name="msec" type="int" />
<description>
- Delay execution of the current thread by [code]msec[/code] milliseconds. [code]msec[/code] must be greater than or equal to [code]0[/code]. Otherwise, [method delay_msec] will do nothing and will print an error message.
+ Delays execution of the current thread by [code]msec[/code] milliseconds. [code]msec[/code] must be greater than or equal to [code]0[/code]. Otherwise, [method delay_msec] will do nothing and will print an error message.
+ [b]Note:[/b] [method delay_msec] is a [i]blocking[/i] way to delay code execution. To delay code execution in a non-blocking way, see [method SceneTree.create_timer]. Yielding with [method SceneTree.create_timer] will delay the execution of code placed below the [code]yield[/code] without affecting the rest of the project (or editor, for [EditorPlugin]s and [EditorScript]s).
+ [b]Note:[/b] When [method delay_msec] is called on the main thread, it will freeze the project and will prevent it from redrawing and registering input until the delay has passed. When using [method delay_msec] as part of an [EditorPlugin] or [EditorScript], it will freeze the editor but won't freeze the project if it is currently running (since the project is an independent child process).
</description>
</method>
<method name="delay_usec" qualifiers="const">
<return type="void" />
<argument index="0" name="usec" type="int" />
<description>
- Delay execution of the current thread by [code]usec[/code] microseconds. [code]usec[/code] must be greater than or equal to [code]0[/code]. Otherwise, [method delay_usec] will do nothing and will print an error message.
+ Delays execution of the current thread by [code]usec[/code] microseconds. [code]usec[/code] must be greater than or equal to [code]0[/code]. Otherwise, [method delay_usec] will do nothing and will print an error message.
+ [b]Note:[/b] [method delay_usec] is a [i]blocking[/i] way to delay code execution. To delay code execution in a non-blocking way, see [method SceneTree.create_timer]. Yielding with [method SceneTree.create_timer] will delay the execution of code placed below the [code]yield[/code] without affecting the rest of the project (or editor, for [EditorPlugin]s and [EditorScript]s).
+ [b]Note:[/b] When [method delay_usec] is called on the main thread, it will freeze the project and will prevent it from redrawing and registering input until the delay has passed. When using [method delay_usec] as part of an [EditorPlugin] or [EditorScript], it will freeze the editor but won't freeze the project if it is currently running (since the project is an independent child process).
</description>
</method>
<method name="dump_memory_to_file">
@@ -115,6 +120,7 @@
[/csharp]
[/codeblocks]
[b]Note:[/b] This method is implemented on Android, iOS, Linux, macOS and Windows.
+ [b]Note:[/b] On macOS, sandboxed applications are limited to run only embedded helper executables, specified during export.
</description>
</method>
<method name="find_keycode_from_string" qualifiers="const">
@@ -338,7 +344,7 @@
<method name="is_stdout_verbose" qualifiers="const">
<return type="bool" />
<description>
- Returns [code]true[/code] if the engine was executed with [code]-v[/code] (verbose stdout).
+ Returns [code]true[/code] if the engine was executed with the [code]--verbose[/code] or [code]-v[/code] command line argument, or if [member ProjectSettings.debug/settings/stdout/verbose_stdout] is [code]true[/code]. See also [method @GlobalScope.print_verbose].
</description>
</method>
<method name="is_userfs_persistent" qualifiers="const">
diff --git a/doc/classes/Occluder3D.xml b/doc/classes/Occluder3D.xml
index 501c4a3ccf..69fb3002e3 100644
--- a/doc/classes/Occluder3D.xml
+++ b/doc/classes/Occluder3D.xml
@@ -6,14 +6,10 @@
</description>
<tutorials>
</tutorials>
- <methods>
- </methods>
<members>
<member name="indices" type="PackedInt32Array" setter="set_indices" getter="get_indices" default="PackedInt32Array()">
</member>
<member name="vertices" type="PackedVector3Array" setter="set_vertices" getter="get_vertices" default="PackedVector3Array()">
</member>
</members>
- <constants>
- </constants>
</class>
diff --git a/doc/classes/OccluderInstance3D.xml b/doc/classes/OccluderInstance3D.xml
index cc4bddc229..d97aa4312f 100644
--- a/doc/classes/OccluderInstance3D.xml
+++ b/doc/classes/OccluderInstance3D.xml
@@ -29,6 +29,4 @@
<member name="occluder" type="Occluder3D" setter="set_occluder" getter="get_occluder">
</member>
</members>
- <constants>
- </constants>
</class>
diff --git a/doc/classes/OccluderPolygon2D.xml b/doc/classes/OccluderPolygon2D.xml
index 28d3ed433a..e347888414 100644
--- a/doc/classes/OccluderPolygon2D.xml
+++ b/doc/classes/OccluderPolygon2D.xml
@@ -8,8 +8,6 @@
</description>
<tutorials>
</tutorials>
- <methods>
- </methods>
<members>
<member name="closed" type="bool" setter="set_closed" getter="is_closed" default="true">
If [code]true[/code], closes the polygon. A closed OccluderPolygon2D occludes the light coming from any direction. An opened OccluderPolygon2D occludes the light only at its outline's direction.
diff --git a/doc/classes/OmniLight3D.xml b/doc/classes/OmniLight3D.xml
index dfcb19a287..e8d5977199 100644
--- a/doc/classes/OmniLight3D.xml
+++ b/doc/classes/OmniLight3D.xml
@@ -9,8 +9,6 @@
<tutorials>
<link title="3D lights and shadows">https://docs.godotengine.org/en/latest/tutorials/3d/lights_and_shadows.html</link>
</tutorials>
- <methods>
- </methods>
<members>
<member name="omni_attenuation" type="float" setter="set_param" getter="get_param" default="1.0">
The light's attenuation (drop-off) curve. A number of presets are available in the [b]Inspector[/b] by right-clicking the curve.
diff --git a/doc/classes/OptimizedTranslation.xml b/doc/classes/OptimizedTranslation.xml
index 195fa28188..8302a564ed 100644
--- a/doc/classes/OptimizedTranslation.xml
+++ b/doc/classes/OptimizedTranslation.xml
@@ -17,6 +17,4 @@
</description>
</method>
</methods>
- <constants>
- </constants>
</class>
diff --git a/doc/classes/OptionButton.xml b/doc/classes/OptionButton.xml
index 8aa0ad073d..264ef9975a 100644
--- a/doc/classes/OptionButton.xml
+++ b/doc/classes/OptionButton.xml
@@ -183,8 +183,6 @@
</description>
</signal>
</signals>
- <constants>
- </constants>
<theme_items>
<theme_item name="arrow" data_type="icon" type="Texture2D">
The arrow icon to be drawn on the right end of the button.
diff --git a/doc/classes/PCKPacker.xml b/doc/classes/PCKPacker.xml
index 0af329983d..28508c85e0 100644
--- a/doc/classes/PCKPacker.xml
+++ b/doc/classes/PCKPacker.xml
@@ -51,6 +51,4 @@
</description>
</method>
</methods>
- <constants>
- </constants>
</class>
diff --git a/doc/classes/PackedByteArray.xml b/doc/classes/PackedByteArray.xml
index 9b8057d91a..8e94254a1f 100644
--- a/doc/classes/PackedByteArray.xml
+++ b/doc/classes/PackedByteArray.xml
@@ -436,6 +436,4 @@
</description>
</method>
</methods>
- <constants>
- </constants>
</class>
diff --git a/doc/classes/PackedColorArray.xml b/doc/classes/PackedColorArray.xml
index fb744d7534..4bccdcd939 100644
--- a/doc/classes/PackedColorArray.xml
+++ b/doc/classes/PackedColorArray.xml
@@ -171,6 +171,4 @@
</description>
</method>
</methods>
- <constants>
- </constants>
</class>
diff --git a/doc/classes/PackedDataContainer.xml b/doc/classes/PackedDataContainer.xml
index 0a765fcc75..2454e565e6 100644
--- a/doc/classes/PackedDataContainer.xml
+++ b/doc/classes/PackedDataContainer.xml
@@ -23,6 +23,4 @@
<member name="__data__" type="PackedByteArray" setter="_set_data" getter="_get_data" default="PackedByteArray()">
</member>
</members>
- <constants>
- </constants>
</class>
diff --git a/doc/classes/PackedDataContainerRef.xml b/doc/classes/PackedDataContainerRef.xml
index 5e42079b97..131a6be4e2 100644
--- a/doc/classes/PackedDataContainerRef.xml
+++ b/doc/classes/PackedDataContainerRef.xml
@@ -14,6 +14,4 @@
</description>
</method>
</methods>
- <constants>
- </constants>
</class>
diff --git a/doc/classes/PackedFloat32Array.xml b/doc/classes/PackedFloat32Array.xml
index 0c05e8f3c2..51e14ea3d4 100644
--- a/doc/classes/PackedFloat32Array.xml
+++ b/doc/classes/PackedFloat32Array.xml
@@ -174,6 +174,4 @@
</description>
</method>
</methods>
- <constants>
- </constants>
</class>
diff --git a/doc/classes/PackedFloat64Array.xml b/doc/classes/PackedFloat64Array.xml
index e55bc0e657..25c9c025f7 100644
--- a/doc/classes/PackedFloat64Array.xml
+++ b/doc/classes/PackedFloat64Array.xml
@@ -174,6 +174,4 @@
</description>
</method>
</methods>
- <constants>
- </constants>
</class>
diff --git a/doc/classes/PackedInt32Array.xml b/doc/classes/PackedInt32Array.xml
index 887a7a1e51..1a61ce0ead 100644
--- a/doc/classes/PackedInt32Array.xml
+++ b/doc/classes/PackedInt32Array.xml
@@ -174,6 +174,4 @@
</description>
</method>
</methods>
- <constants>
- </constants>
</class>
diff --git a/doc/classes/PackedInt64Array.xml b/doc/classes/PackedInt64Array.xml
index da661b12c3..06f7900237 100644
--- a/doc/classes/PackedInt64Array.xml
+++ b/doc/classes/PackedInt64Array.xml
@@ -174,6 +174,4 @@
</description>
</method>
</methods>
- <constants>
- </constants>
</class>
diff --git a/doc/classes/PackedStringArray.xml b/doc/classes/PackedStringArray.xml
index 8f16abaf37..763ed0cc55 100644
--- a/doc/classes/PackedStringArray.xml
+++ b/doc/classes/PackedStringArray.xml
@@ -172,6 +172,4 @@
</description>
</method>
</methods>
- <constants>
- </constants>
</class>
diff --git a/doc/classes/PackedVector2Array.xml b/doc/classes/PackedVector2Array.xml
index 3678222da4..3f0797bb59 100644
--- a/doc/classes/PackedVector2Array.xml
+++ b/doc/classes/PackedVector2Array.xml
@@ -178,6 +178,4 @@
</description>
</method>
</methods>
- <constants>
- </constants>
</class>
diff --git a/doc/classes/PackedVector3Array.xml b/doc/classes/PackedVector3Array.xml
index 84d4297a3b..6b950cad61 100644
--- a/doc/classes/PackedVector3Array.xml
+++ b/doc/classes/PackedVector3Array.xml
@@ -177,6 +177,4 @@
</description>
</method>
</methods>
- <constants>
- </constants>
</class>
diff --git a/doc/classes/PacketPeer.xml b/doc/classes/PacketPeer.xml
index 8d0aa89287..7c02ccc250 100644
--- a/doc/classes/PacketPeer.xml
+++ b/doc/classes/PacketPeer.xml
@@ -5,6 +5,7 @@
</brief_description>
<description>
PacketPeer is an abstraction and base class for packet-based protocols (such as UDP). It provides an API for sending and receiving packets both as raw data or variables. This makes it easy to transfer data over a protocol, without having to encode data as low-level bytes or having to worry about network ordering.
+ [b]Note:[/b] When exporting to Android, make sure to enable the [code]INTERNET[/code] permission in the Android export preset before exporting the project or using one-click deploy. Otherwise, network communication of any kind will be blocked by Android.
</description>
<tutorials>
</tutorials>
@@ -57,6 +58,4 @@
The [method put_var] method allocates memory on the stack, and the buffer used will grow automatically to the closest power of two to match the size of the [Variant]. If the [Variant] is bigger than [code]encode_buffer_max_size[/code], the method will error out with [constant ERR_OUT_OF_MEMORY].
</member>
</members>
- <constants>
- </constants>
</class>
diff --git a/doc/classes/PacketPeerDTLS.xml b/doc/classes/PacketPeerDTLS.xml
index b05743fb5a..4d1c83afe7 100644
--- a/doc/classes/PacketPeerDTLS.xml
+++ b/doc/classes/PacketPeerDTLS.xml
@@ -5,6 +5,7 @@
</brief_description>
<description>
This class represents a DTLS peer connection. It can be used to connect to a DTLS server, and is returned by [method DTLSServer.take_connection].
+ [b]Note:[/b] When exporting to Android, make sure to enable the [code]INTERNET[/code] permission in the Android export preset before exporting the project or using one-click deploy. Otherwise, network communication of any kind will be blocked by Android.
[b]Warning:[/b] SSL/TLS certificate revocation and certificate pinning are currently not supported. Revoked certificates are accepted as long as they are otherwise valid. If this is a concern, you may want to use automatically managed certificates with a short validity period.
</description>
<tutorials>
diff --git a/doc/classes/PacketPeerExtension.xml b/doc/classes/PacketPeerExtension.xml
new file mode 100644
index 0000000000..f6b925eb30
--- /dev/null
+++ b/doc/classes/PacketPeerExtension.xml
@@ -0,0 +1,35 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<class name="PacketPeerExtension" inherits="PacketPeer" version="4.0">
+ <brief_description>
+ </brief_description>
+ <description>
+ </description>
+ <tutorials>
+ </tutorials>
+ <methods>
+ <method name="_get_available_packet_count" qualifiers="virtual const">
+ <return type="int" />
+ <description>
+ </description>
+ </method>
+ <method name="_get_max_packet_size" qualifiers="virtual const">
+ <return type="int" />
+ <description>
+ </description>
+ </method>
+ <method name="_get_packet" qualifiers="virtual">
+ <return type="int" />
+ <argument index="0" name="r_buffer" type="const uint8_t **" />
+ <argument index="1" name="r_buffer_size" type="int32_t*" />
+ <description>
+ </description>
+ </method>
+ <method name="_put_packet" qualifiers="virtual">
+ <return type="int" />
+ <argument index="0" name="p_buffer" type="const uint8_t*" />
+ <argument index="1" name="p_buffer_size" type="int" />
+ <description>
+ </description>
+ </method>
+ </methods>
+</class>
diff --git a/doc/classes/PacketPeerStream.xml b/doc/classes/PacketPeerStream.xml
index ec1ee175f7..1c5bec297c 100644
--- a/doc/classes/PacketPeerStream.xml
+++ b/doc/classes/PacketPeerStream.xml
@@ -5,11 +5,10 @@
</brief_description>
<description>
PacketStreamPeer provides a wrapper for working using packets over a stream. This allows for using packet based code with StreamPeers. PacketPeerStream implements a custom protocol over the StreamPeer, so the user should not read or write to the wrapped StreamPeer directly.
+ [b]Note:[/b] When exporting to Android, make sure to enable the [code]INTERNET[/code] permission in the Android export preset before exporting the project or using one-click deploy. Otherwise, network communication of any kind will be blocked by Android.
</description>
<tutorials>
</tutorials>
- <methods>
- </methods>
<members>
<member name="input_buffer_max_size" type="int" setter="set_input_buffer_max_size" getter="get_input_buffer_max_size" default="65532">
</member>
@@ -19,6 +18,4 @@
The wrapped [StreamPeer] object.
</member>
</members>
- <constants>
- </constants>
</class>
diff --git a/doc/classes/PacketPeerUDP.xml b/doc/classes/PacketPeerUDP.xml
index e2acb91058..9b77859b50 100644
--- a/doc/classes/PacketPeerUDP.xml
+++ b/doc/classes/PacketPeerUDP.xml
@@ -5,6 +5,7 @@
</brief_description>
<description>
UDP packet peer. Can be used to send raw UDP packets as well as [Variant]s.
+ [b]Note:[/b] When exporting to Android, make sure to enable the [code]INTERNET[/code] permission in the Android export preset before exporting the project or using one-click deploy. Otherwise, network communication of any kind will be blocked by Android.
</description>
<tutorials>
</tutorials>
@@ -139,6 +140,4 @@
</description>
</method>
</methods>
- <constants>
- </constants>
</class>
diff --git a/doc/classes/Panel.xml b/doc/classes/Panel.xml
index 9906abf895..21ac7dfac1 100644
--- a/doc/classes/Panel.xml
+++ b/doc/classes/Panel.xml
@@ -11,8 +11,6 @@
<link title="2D Finite State Machine Demo">https://godotengine.org/asset-library/asset/516</link>
<link title="3D Inverse Kinematics Demo">https://godotengine.org/asset-library/asset/523</link>
</tutorials>
- <methods>
- </methods>
<members>
<member name="mode" type="int" setter="set_mode" getter="get_mode" enum="Panel.Mode" default="0">
</member>
diff --git a/doc/classes/PanelContainer.xml b/doc/classes/PanelContainer.xml
index f3f2f6839a..95d038e2af 100644
--- a/doc/classes/PanelContainer.xml
+++ b/doc/classes/PanelContainer.xml
@@ -9,13 +9,9 @@
<tutorials>
<link title="2D Role Playing Game Demo">https://godotengine.org/asset-library/asset/520</link>
</tutorials>
- <methods>
- </methods>
<members>
<member name="mouse_filter" type="int" setter="set_mouse_filter" getter="get_mouse_filter" override="true" enum="Control.MouseFilter" default="0" />
</members>
- <constants>
- </constants>
<theme_items>
<theme_item name="panel" data_type="style" type="StyleBox">
The style of [PanelContainer]'s background.
diff --git a/doc/classes/PanoramaSkyMaterial.xml b/doc/classes/PanoramaSkyMaterial.xml
index 905a2dd506..6707c03fac 100644
--- a/doc/classes/PanoramaSkyMaterial.xml
+++ b/doc/classes/PanoramaSkyMaterial.xml
@@ -10,13 +10,9 @@
</description>
<tutorials>
</tutorials>
- <methods>
- </methods>
<members>
<member name="panorama" type="Texture2D" setter="set_panorama" getter="get_panorama">
[Texture2D] to be applied to the [PanoramaSkyMaterial].
</member>
</members>
- <constants>
- </constants>
</class>
diff --git a/doc/classes/ParallaxBackground.xml b/doc/classes/ParallaxBackground.xml
index b8097343f4..5670660d01 100644
--- a/doc/classes/ParallaxBackground.xml
+++ b/doc/classes/ParallaxBackground.xml
@@ -8,8 +8,6 @@
</description>
<tutorials>
</tutorials>
- <methods>
- </methods>
<members>
<member name="layer" type="int" setter="set_layer" getter="get_layer" override="true" default="-100" />
<member name="scroll_base_offset" type="Vector2" setter="set_scroll_base_offset" getter="get_scroll_base_offset" default="Vector2(0, 0)">
@@ -31,6 +29,4 @@
The ParallaxBackground's scroll value. Calculated automatically when using a [Camera2D], but can be used to manually manage scrolling when no camera is present.
</member>
</members>
- <constants>
- </constants>
</class>
diff --git a/doc/classes/ParallaxLayer.xml b/doc/classes/ParallaxLayer.xml
index 6b1e013851..459518ab1c 100644
--- a/doc/classes/ParallaxLayer.xml
+++ b/doc/classes/ParallaxLayer.xml
@@ -10,8 +10,6 @@
</description>
<tutorials>
</tutorials>
- <methods>
- </methods>
<members>
<member name="motion_mirroring" type="Vector2" setter="set_mirroring" getter="get_mirroring" default="Vector2(0, 0)">
The ParallaxLayer's [Texture2D] mirroring. Useful for creating an infinite scrolling background. If an axis is set to [code]0[/code], the [Texture2D] will not be mirrored.
@@ -23,6 +21,4 @@
Multiplies the ParallaxLayer's motion. If an axis is set to [code]0[/code], it will not scroll.
</member>
</members>
- <constants>
- </constants>
</class>
diff --git a/doc/classes/Path2D.xml b/doc/classes/Path2D.xml
index 57e2091268..297fe69986 100644
--- a/doc/classes/Path2D.xml
+++ b/doc/classes/Path2D.xml
@@ -9,13 +9,9 @@
</description>
<tutorials>
</tutorials>
- <methods>
- </methods>
<members>
<member name="curve" type="Curve2D" setter="set_curve" getter="get_curve">
A [Curve2D] describing the path.
</member>
</members>
- <constants>
- </constants>
</class>
diff --git a/doc/classes/Path3D.xml b/doc/classes/Path3D.xml
index b97e7efd5d..ce5774acab 100644
--- a/doc/classes/Path3D.xml
+++ b/doc/classes/Path3D.xml
@@ -9,8 +9,6 @@
</description>
<tutorials>
</tutorials>
- <methods>
- </methods>
<members>
<member name="curve" type="Curve3D" setter="set_curve" getter="get_curve">
A [Curve3D] describing the path.
@@ -23,6 +21,4 @@
</description>
</signal>
</signals>
- <constants>
- </constants>
</class>
diff --git a/doc/classes/PathFollow2D.xml b/doc/classes/PathFollow2D.xml
index 4b55e7b781..98106fd580 100644
--- a/doc/classes/PathFollow2D.xml
+++ b/doc/classes/PathFollow2D.xml
@@ -9,8 +9,6 @@
</description>
<tutorials>
</tutorials>
- <methods>
- </methods>
<members>
<member name="cubic_interp" type="bool" setter="set_cubic_interpolation" getter="get_cubic_interpolation" default="true">
If [code]true[/code], the position between two cached points is interpolated cubically, and linearly otherwise.
@@ -39,6 +37,4 @@
The node's offset perpendicular to the curve.
</member>
</members>
- <constants>
- </constants>
</class>
diff --git a/doc/classes/PathFollow3D.xml b/doc/classes/PathFollow3D.xml
index f405bdedfc..781e861203 100644
--- a/doc/classes/PathFollow3D.xml
+++ b/doc/classes/PathFollow3D.xml
@@ -9,8 +9,6 @@
</description>
<tutorials>
</tutorials>
- <methods>
- </methods>
<members>
<member name="cubic_interp" type="bool" setter="set_cubic_interpolation" getter="get_cubic_interpolation" default="true">
If [code]true[/code], the position between two cached points is interpolated cubically, and linearly otherwise.
diff --git a/doc/classes/PhysicalBone2D.xml b/doc/classes/PhysicalBone2D.xml
index 8fa42a9596..339739b267 100644
--- a/doc/classes/PhysicalBone2D.xml
+++ b/doc/classes/PhysicalBone2D.xml
@@ -42,6 +42,4 @@
[b]Note:[/b] To have the Bone2D nodes visually follow the [code]PhysicalBone2D[/code] node, use a [SkeletonModification2DPhysicalBones] modification on the [Skeleton2D] node with the [Bone2D] nodes.
</member>
</members>
- <constants>
- </constants>
</class>
diff --git a/doc/classes/PhysicalSkyMaterial.xml b/doc/classes/PhysicalSkyMaterial.xml
index 20ab998d35..b90f52a70d 100644
--- a/doc/classes/PhysicalSkyMaterial.xml
+++ b/doc/classes/PhysicalSkyMaterial.xml
@@ -10,8 +10,6 @@
</description>
<tutorials>
</tutorials>
- <methods>
- </methods>
<members>
<member name="dither_strength" type="float" setter="set_dither_strength" getter="get_dither_strength" default="1.0">
Sets the amount of dithering to use. Dithering helps reduce banding that appears from the smooth changes in color in the sky. Use the lowest value possible, higher amounts may add fuzziness to the sky.
@@ -47,6 +45,4 @@
Sets the thickness of the atmosphere. High turbidity creates a foggy looking atmosphere, while a low turbidity results in a clearer atmosphere.
</member>
</members>
- <constants>
- </constants>
</class>
diff --git a/doc/classes/PhysicsBody2D.xml b/doc/classes/PhysicsBody2D.xml
index e00c473bcd..e108ab6298 100644
--- a/doc/classes/PhysicsBody2D.xml
+++ b/doc/classes/PhysicsBody2D.xml
@@ -25,11 +25,12 @@
</method>
<method name="move_and_collide">
<return type="KinematicCollision2D" />
- <argument index="0" name="rel_vec" type="Vector2" />
+ <argument index="0" name="linear_velocity" type="Vector2" />
<argument index="1" name="test_only" type="bool" default="false" />
<argument index="2" name="safe_margin" type="float" default="0.08" />
<description>
- Moves the body along the vector [code]rel_vec[/code]. The body will stop if it collides. Returns a [KinematicCollision2D], which contains information about the collision.
+ Moves the body along the vector [code]linear_velocity[/code]. This method should be used in [method Node._physics_process] (or in a method called by [method Node._physics_process]), as it uses the physics step's [code]delta[/code] value automatically in calculations. Otherwise, the simulation will run at an incorrect speed.
+ The body will stop if it collides. Returns a [KinematicCollision2D], which contains information about the collision.
If [code]test_only[/code] is [code]true[/code], the body does not move but the would-be collision information is given.
[code]safe_margin[/code] is the extra margin used for collision recovery (see [member CharacterBody2D.collision/safe_margin] for more details).
</description>
@@ -44,11 +45,12 @@
<method name="test_move">
<return type="bool" />
<argument index="0" name="from" type="Transform2D" />
- <argument index="1" name="rel_vec" type="Vector2" />
+ <argument index="1" name="linear_velocity" type="Vector2" />
<argument index="2" name="collision" type="KinematicCollision2D" default="null" />
<argument index="3" name="safe_margin" type="float" default="0.08" />
<description>
- Checks for collisions without moving the body. Virtually sets the node's position, scale and rotation to that of the given [Transform2D], then tries to move the body along the vector [code]rel_vec[/code]. Returns [code]true[/code] if a collision would occur.
+ Checks for collisions without moving the body. This method should be used in [method Node._physics_process] (or in a method called by [method Node._physics_process]), as it uses the physics step's [code]delta[/code] value automatically in calculations. Otherwise, the simulation will run at an incorrect speed.
+ Virtually sets the node's position, scale and rotation to that of the given [Transform2D], then tries to move the body along the vector [code]linear_velocity[/code]. Returns [code]true[/code] if a collision would occur.
[code]collision[/code] is an optional object of type [KinematicCollision2D], which contains additional information about the collision (should there be one).
[code]safe_margin[/code] is the extra margin used for collision recovery (see [member CharacterBody2D.collision/safe_margin] for more details).
</description>
@@ -57,6 +59,4 @@
<members>
<member name="input_pickable" type="bool" setter="set_pickable" getter="is_pickable" override="true" default="false" />
</members>
- <constants>
- </constants>
</class>
diff --git a/doc/classes/PhysicsBody3D.xml b/doc/classes/PhysicsBody3D.xml
index ea2553e28a..8718c0caa2 100644
--- a/doc/classes/PhysicsBody3D.xml
+++ b/doc/classes/PhysicsBody3D.xml
@@ -32,13 +32,16 @@
</method>
<method name="move_and_collide">
<return type="KinematicCollision3D" />
- <argument index="0" name="rel_vec" type="Vector3" />
+ <argument index="0" name="linear_velocity" type="Vector3" />
<argument index="1" name="test_only" type="bool" default="false" />
<argument index="2" name="safe_margin" type="float" default="0.001" />
+ <argument index="3" name="max_collisions" type="int" default="1" />
<description>
- Moves the body along the vector [code]rel_vec[/code]. The body will stop if it collides. Returns a [KinematicCollision3D], which contains information about the collision.
+ Moves the body along the vector [code]linear_velocity[/code]. This method should be used in [method Node._physics_process] (or in a method called by [method Node._physics_process]), as it uses the physics step's [code]delta[/code] value automatically in calculations. Otherwise, the simulation will run at an incorrect speed.
+ The body will stop if it collides. Returns a [KinematicCollision3D], which contains information about the collision.
If [code]test_only[/code] is [code]true[/code], the body does not move but the would-be collision information is given.
[code]safe_margin[/code] is the extra margin used for collision recovery (see [member CharacterBody3D.collision/safe_margin] for more details).
+ [code]max_collisions[/code] allows to retrieve more than one collision result.
</description>
</method>
<method name="remove_collision_exception_with">
@@ -59,13 +62,16 @@
<method name="test_move">
<return type="bool" />
<argument index="0" name="from" type="Transform3D" />
- <argument index="1" name="rel_vec" type="Vector3" />
+ <argument index="1" name="linear_velocity" type="Vector3" />
<argument index="2" name="collision" type="KinematicCollision3D" default="null" />
<argument index="3" name="safe_margin" type="float" default="0.001" />
+ <argument index="4" name="max_collisions" type="int" default="1" />
<description>
- Checks for collisions without moving the body. Virtually sets the node's position, scale and rotation to that of the given [Transform3D], then tries to move the body along the vector [code]rel_vec[/code]. Returns [code]true[/code] if a collision would occur.
+ Checks for collisions without moving the body. This method should be used in [method Node._physics_process] (or in a method called by [method Node._physics_process]), as it uses the physics step's [code]delta[/code] value automatically in calculations. Otherwise, the simulation will run at an incorrect speed.
+ Virtually sets the node's position, scale and rotation to that of the given [Transform3D], then tries to move the body along the vector [code]linear_velocity[/code]. Returns [code]true[/code] if a collision would occur.
[code]collision[/code] is an optional object of type [KinematicCollision3D], which contains additional information about the collision (should there be one).
[code]safe_margin[/code] is the extra margin used for collision recovery (see [member CharacterBody3D.collision/safe_margin] for more details).
+ [code]max_collisions[/code] allows to retrieve more than one collision result.
</description>
</method>
</methods>
@@ -89,6 +95,4 @@
Lock the body's linear movement in the Z axis.
</member>
</members>
- <constants>
- </constants>
</class>
diff --git a/doc/classes/PhysicsDirectBodyState2D.xml b/doc/classes/PhysicsDirectBodyState2D.xml
index 56c34615ce..bbb708c9b4 100644
--- a/doc/classes/PhysicsDirectBodyState2D.xml
+++ b/doc/classes/PhysicsDirectBodyState2D.xml
@@ -187,6 +187,4 @@
The body's transformation matrix.
</member>
</members>
- <constants>
- </constants>
</class>
diff --git a/doc/classes/PhysicsDirectBodyState3D.xml b/doc/classes/PhysicsDirectBodyState3D.xml
index a7458ff495..9bc5dbd6b9 100644
--- a/doc/classes/PhysicsDirectBodyState3D.xml
+++ b/doc/classes/PhysicsDirectBodyState3D.xml
@@ -191,6 +191,4 @@
The body's transformation matrix.
</member>
</members>
- <constants>
- </constants>
</class>
diff --git a/doc/classes/PhysicsDirectSpaceState2D.xml b/doc/classes/PhysicsDirectSpaceState2D.xml
index 536c7e4e04..0264249dab 100644
--- a/doc/classes/PhysicsDirectSpaceState2D.xml
+++ b/doc/classes/PhysicsDirectSpaceState2D.xml
@@ -119,6 +119,4 @@
</description>
</method>
</methods>
- <constants>
- </constants>
</class>
diff --git a/doc/classes/PhysicsDirectSpaceState3D.xml b/doc/classes/PhysicsDirectSpaceState3D.xml
index 4e6bd8456f..137e7bbf39 100644
--- a/doc/classes/PhysicsDirectSpaceState3D.xml
+++ b/doc/classes/PhysicsDirectSpaceState3D.xml
@@ -77,6 +77,4 @@
</description>
</method>
</methods>
- <constants>
- </constants>
</class>
diff --git a/doc/classes/PhysicsMaterial.xml b/doc/classes/PhysicsMaterial.xml
index 0889c238dc..b557b083c7 100644
--- a/doc/classes/PhysicsMaterial.xml
+++ b/doc/classes/PhysicsMaterial.xml
@@ -8,8 +8,6 @@
</description>
<tutorials>
</tutorials>
- <methods>
- </methods>
<members>
<member name="absorbent" type="bool" setter="set_absorbent" getter="is_absorbent" default="false">
If [code]true[/code], subtracts the bounciness from the colliding object's bounciness instead of adding it.
@@ -24,6 +22,4 @@
If [code]true[/code], the physics engine will use the friction of the object marked as "rough" when two objects collide. If [code]false[/code], the physics engine will use the lowest friction of all colliding objects instead. If [code]true[/code] for both colliding objects, the physics engine will use the highest friction.
</member>
</members>
- <constants>
- </constants>
</class>
diff --git a/doc/classes/PhysicsServer2D.xml b/doc/classes/PhysicsServer2D.xml
index 7e5d7ca704..791a04e4c2 100644
--- a/doc/classes/PhysicsServer2D.xml
+++ b/doc/classes/PhysicsServer2D.xml
@@ -851,8 +851,6 @@
<constant name="SPACE_PARAM_CONSTRAINT_DEFAULT_BIAS" value="6" enum="SpaceParameter">
Constant to set/get the default solver bias for all physics constraints. A solver bias is a factor controlling how much two objects "rebound", after violating a constraint, to avoid leaving them in that state because of numerical imprecision.
</constant>
- <constant name="SPACE_PARAM_TEST_MOTION_MIN_CONTACT_DEPTH" value="7" enum="SpaceParameter">
- </constant>
<constant name="SHAPE_WORLD_BOUNDARY" value="0" enum="ShapeType">
This is the constant for creating world boundary shapes. A world boundary shape is an [i]infinite[/i] line with an origin point, and a normal. Thus, it can be used for front/behind checks.
</constant>
@@ -928,8 +926,8 @@
<constant name="BODY_MODE_DYNAMIC" value="2" enum="BodyMode">
Constant for dynamic bodies. In this mode, a body can be pushed by other bodies and has forces applied.
</constant>
- <constant name="BODY_MODE_DYNAMIC_LOCKED" value="3" enum="BodyMode">
- Constant for locked dynamic bodies. In this mode, a body is dynamic but can not rotate, and only its linear velocity is affected by external forces.
+ <constant name="BODY_MODE_DYNAMIC_LINEAR" value="3" enum="BodyMode">
+ Constant for linear dynamic bodies. In this mode, a body is dynamic but can not rotate, and only its linear velocity is affected by external forces.
</constant>
<constant name="BODY_PARAM_BOUNCE" value="0" enum="BodyParameter">
Constant to set/get a body's bounce factor.
diff --git a/doc/classes/PhysicsServer3D.xml b/doc/classes/PhysicsServer3D.xml
index 5497ae7412..1d1ca54dbb 100644
--- a/doc/classes/PhysicsServer3D.xml
+++ b/doc/classes/PhysicsServer3D.xml
@@ -583,6 +583,7 @@
<argument index="4" name="result" type="PhysicsTestMotionResult3D" default="null" />
<argument index="5" name="collide_separation_ray" type="bool" default="false" />
<argument index="6" name="exclude" type="Array" default="[]" />
+ <argument index="7" name="max_collisions" type="int" default="1" />
<description>
Returns [code]true[/code] if a collision would result from moving in the given direction from a given point in space. Margin increases the size of the shapes involved in the collision detection. [PhysicsTestMotionResult3D] can be passed to return additional information in.
</description>
@@ -1277,8 +1278,8 @@
<constant name="BODY_MODE_DYNAMIC" value="2" enum="BodyMode">
Constant for dynamic bodies. In this mode, a body can be pushed by other bodies and has forces applied.
</constant>
- <constant name="BODY_MODE_DYNAMIC_LOCKED" value="3" enum="BodyMode">
- Constant for locked dynamic bodies. In this mode, a body is dynamic but can not rotate, and only its linear velocity is affected by external forces.
+ <constant name="BODY_MODE_DYNAMIC_LINEAR" value="3" enum="BodyMode">
+ Constant for linear dynamic bodies. In this mode, a body is dynamic but can not rotate, and only its linear velocity is affected by external forces.
</constant>
<constant name="BODY_PARAM_BOUNCE" value="0" enum="BodyParameter">
Constant to set/get a body's bounce factor.
@@ -1360,8 +1361,6 @@
<constant name="SPACE_PARAM_CONSTRAINT_DEFAULT_BIAS" value="7" enum="SpaceParameter">
Constant to set/get the default solver bias for all physics constraints. A solver bias is a factor controlling how much two objects "rebound", after violating a constraint, to avoid leaving them in that state because of numerical imprecision.
</constant>
- <constant name="SPACE_PARAM_TEST_MOTION_MIN_CONTACT_DEPTH" value="8" enum="SpaceParameter">
- </constant>
<constant name="BODY_AXIS_LINEAR_X" value="1" enum="BodyAxis">
</constant>
<constant name="BODY_AXIS_LINEAR_Y" value="2" enum="BodyAxis">
diff --git a/doc/classes/PhysicsShapeQueryParameters2D.xml b/doc/classes/PhysicsShapeQueryParameters2D.xml
index b54de15d15..6035b662ea 100644
--- a/doc/classes/PhysicsShapeQueryParameters2D.xml
+++ b/doc/classes/PhysicsShapeQueryParameters2D.xml
@@ -8,8 +8,6 @@
</description>
<tutorials>
</tutorials>
- <methods>
- </methods>
<members>
<member name="collide_with_areas" type="bool" setter="set_collide_with_areas" getter="is_collide_with_areas_enabled" default="false">
If [code]true[/code], the query will take [Area2D]s into account.
@@ -67,6 +65,4 @@
The queried shape's transform matrix.
</member>
</members>
- <constants>
- </constants>
</class>
diff --git a/doc/classes/PhysicsShapeQueryParameters3D.xml b/doc/classes/PhysicsShapeQueryParameters3D.xml
index f74d1b5e48..1a289ff9d0 100644
--- a/doc/classes/PhysicsShapeQueryParameters3D.xml
+++ b/doc/classes/PhysicsShapeQueryParameters3D.xml
@@ -8,8 +8,6 @@
</description>
<tutorials>
</tutorials>
- <methods>
- </methods>
<members>
<member name="collide_with_areas" type="bool" setter="set_collide_with_areas" getter="is_collide_with_areas_enabled" default="false">
If [code]true[/code], the query will take [Area3D]s into account.
@@ -64,6 +62,4 @@
The queried shape's transform matrix.
</member>
</members>
- <constants>
- </constants>
</class>
diff --git a/doc/classes/PhysicsTestMotionResult2D.xml b/doc/classes/PhysicsTestMotionResult2D.xml
index 9c5d525f85..8d594af673 100644
--- a/doc/classes/PhysicsTestMotionResult2D.xml
+++ b/doc/classes/PhysicsTestMotionResult2D.xml
@@ -6,8 +6,6 @@
</description>
<tutorials>
</tutorials>
- <methods>
- </methods>
<members>
<member name="collider" type="Object" setter="" getter="get_collider">
</member>
@@ -34,6 +32,4 @@
<member name="travel" type="Vector2" setter="" getter="get_travel" default="Vector2(0, 0)">
</member>
</members>
- <constants>
- </constants>
</class>
diff --git a/doc/classes/PhysicsTestMotionResult3D.xml b/doc/classes/PhysicsTestMotionResult3D.xml
index 6c18a097a1..8aa087e99a 100644
--- a/doc/classes/PhysicsTestMotionResult3D.xml
+++ b/doc/classes/PhysicsTestMotionResult3D.xml
@@ -7,33 +7,81 @@
<tutorials>
</tutorials>
<methods>
+ <method name="get_collider" qualifiers="const">
+ <return type="Object" />
+ <argument index="0" name="collision_index" type="int" default="0" />
+ <description>
+ </description>
+ </method>
+ <method name="get_collider_id" qualifiers="const">
+ <return type="int" />
+ <argument index="0" name="collision_index" type="int" default="0" />
+ <description>
+ </description>
+ </method>
+ <method name="get_collider_rid" qualifiers="const">
+ <return type="RID" />
+ <argument index="0" name="collision_index" type="int" default="0" />
+ <description>
+ </description>
+ </method>
+ <method name="get_collider_shape" qualifiers="const">
+ <return type="int" />
+ <argument index="0" name="collision_index" type="int" default="0" />
+ <description>
+ </description>
+ </method>
+ <method name="get_collider_velocity" qualifiers="const">
+ <return type="Vector3" />
+ <argument index="0" name="collision_index" type="int" default="0" />
+ <description>
+ </description>
+ </method>
+ <method name="get_collision_depth" qualifiers="const">
+ <return type="float" />
+ <argument index="0" name="collision_index" type="int" default="0" />
+ <description>
+ </description>
+ </method>
+ <method name="get_collision_normal" qualifiers="const">
+ <return type="Vector3" />
+ <argument index="0" name="collision_index" type="int" default="0" />
+ <description>
+ </description>
+ </method>
+ <method name="get_collision_point" qualifiers="const">
+ <return type="Vector3" />
+ <argument index="0" name="collision_index" type="int" default="0" />
+ <description>
+ </description>
+ </method>
</methods>
<members>
- <member name="collider" type="Object" setter="" getter="get_collider">
+ <member name="collider" type="Object" setter="" getter="get_best_collider">
</member>
- <member name="collider_id" type="int" setter="" getter="get_collider_id" default="0">
+ <member name="collider_id" type="int" setter="" getter="get_best_collider_id" default="0">
</member>
- <member name="collider_rid" type="RID" setter="" getter="get_collider_rid">
+ <member name="collider_rid" type="RID" setter="" getter="get_best_collider_rid">
</member>
- <member name="collider_shape" type="int" setter="" getter="get_collider_shape" default="0">
+ <member name="collider_shape" type="int" setter="" getter="get_best_collider_shape" default="0">
</member>
- <member name="collider_velocity" type="Vector3" setter="" getter="get_collider_velocity" default="Vector3(0, 0, 0)">
+ <member name="collider_velocity" type="Vector3" setter="" getter="get_best_collider_velocity" default="Vector3(0, 0, 0)">
</member>
- <member name="collision_depth" type="float" setter="" getter="get_collision_depth" default="0.0">
+ <member name="collision_count" type="int" setter="" getter="get_collision_count" default="0">
</member>
- <member name="collision_normal" type="Vector3" setter="" getter="get_collision_normal" default="Vector3(0, 0, 0)">
+ <member name="collision_depth" type="float" setter="" getter="get_best_collision_depth" default="0.0">
</member>
- <member name="collision_point" type="Vector3" setter="" getter="get_collision_point" default="Vector3(0, 0, 0)">
+ <member name="collision_normal" type="Vector3" setter="" getter="get_best_collision_normal" default="Vector3(0, 0, 0)">
</member>
- <member name="collision_safe_fraction" type="float" setter="" getter="get_collision_safe_fraction" default="0.0">
- </member>
- <member name="collision_unsafe_fraction" type="float" setter="" getter="get_collision_unsafe_fraction" default="0.0">
+ <member name="collision_point" type="Vector3" setter="" getter="get_best_collision_point" default="Vector3(0, 0, 0)">
</member>
<member name="remainder" type="Vector3" setter="" getter="get_remainder" default="Vector3(0, 0, 0)">
</member>
+ <member name="safe_fraction" type="float" setter="" getter="get_safe_fraction" default="0.0">
+ </member>
<member name="travel" type="Vector3" setter="" getter="get_travel" default="Vector3(0, 0, 0)">
</member>
+ <member name="unsafe_fraction" type="float" setter="" getter="get_unsafe_fraction" default="0.0">
+ </member>
</members>
- <constants>
- </constants>
</class>
diff --git a/doc/classes/PinJoint2D.xml b/doc/classes/PinJoint2D.xml
index ed45149cdf..d5890fe912 100644
--- a/doc/classes/PinJoint2D.xml
+++ b/doc/classes/PinJoint2D.xml
@@ -8,13 +8,9 @@
</description>
<tutorials>
</tutorials>
- <methods>
- </methods>
<members>
<member name="softness" type="float" setter="set_softness" getter="get_softness" default="0.0">
The higher this value, the more the bond to the pinned partner can flex.
</member>
</members>
- <constants>
- </constants>
</class>
diff --git a/doc/classes/PlaneMesh.xml b/doc/classes/PlaneMesh.xml
index 56bf98772b..ff0385dbdb 100644
--- a/doc/classes/PlaneMesh.xml
+++ b/doc/classes/PlaneMesh.xml
@@ -9,8 +9,6 @@
</description>
<tutorials>
</tutorials>
- <methods>
- </methods>
<members>
<member name="center_offset" type="Vector3" setter="set_center_offset" getter="get_center_offset" default="Vector3(0, 0, 0)">
Offset of the generated plane. Useful for particles.
@@ -25,6 +23,4 @@
Number of subdivision along the X axis.
</member>
</members>
- <constants>
- </constants>
</class>
diff --git a/doc/classes/PointLight2D.xml b/doc/classes/PointLight2D.xml
index a7207a3c80..9c13179056 100644
--- a/doc/classes/PointLight2D.xml
+++ b/doc/classes/PointLight2D.xml
@@ -6,8 +6,6 @@
</description>
<tutorials>
</tutorials>
- <methods>
- </methods>
<members>
<member name="height" type="float" setter="set_height" getter="get_height" default="0.0">
The height of the light. Used with 2D normal mapping.
@@ -22,6 +20,4 @@
The [member texture]'s scale factor.
</member>
</members>
- <constants>
- </constants>
</class>
diff --git a/doc/classes/PointMesh.xml b/doc/classes/PointMesh.xml
index 266ab2a898..7d1fa6ac35 100644
--- a/doc/classes/PointMesh.xml
+++ b/doc/classes/PointMesh.xml
@@ -10,8 +10,4 @@
</description>
<tutorials>
</tutorials>
- <methods>
- </methods>
- <constants>
- </constants>
</class>
diff --git a/doc/classes/Polygon2D.xml b/doc/classes/Polygon2D.xml
index 23106cddf7..cbffd9e554 100644
--- a/doc/classes/Polygon2D.xml
+++ b/doc/classes/Polygon2D.xml
@@ -114,6 +114,4 @@
Color for each vertex. Colors are interpolated between vertices, resulting in smooth gradients. There should be one per polygon vertex. If there are fewer, undefined vertices will use [code]color[/code].
</member>
</members>
- <constants>
- </constants>
</class>
diff --git a/doc/classes/PolygonPathFinder.xml b/doc/classes/PolygonPathFinder.xml
index f77912bafe..945849e4df 100644
--- a/doc/classes/PolygonPathFinder.xml
+++ b/doc/classes/PolygonPathFinder.xml
@@ -59,6 +59,4 @@
</description>
</method>
</methods>
- <constants>
- </constants>
</class>
diff --git a/doc/classes/Popup.xml b/doc/classes/Popup.xml
index 89695989c8..a47f72b2b6 100644
--- a/doc/classes/Popup.xml
+++ b/doc/classes/Popup.xml
@@ -8,8 +8,6 @@
</description>
<tutorials>
</tutorials>
- <methods>
- </methods>
<members>
<member name="borderless" type="bool" setter="set_flag" getter="get_flag" override="true" default="true" />
<member name="close_on_parent_focus" type="bool" setter="set_close_on_parent_focus" getter="get_close_on_parent_focus" default="true">
@@ -27,6 +25,4 @@
</description>
</signal>
</signals>
- <constants>
- </constants>
</class>
diff --git a/doc/classes/PopupMenu.xml b/doc/classes/PopupMenu.xml
index 61b5aa89a6..2208c12e56 100644
--- a/doc/classes/PopupMenu.xml
+++ b/doc/classes/PopupMenu.xml
@@ -535,8 +535,6 @@
</description>
</signal>
</signals>
- <constants>
- </constants>
<theme_items>
<theme_item name="checked" data_type="icon" type="Texture2D">
[Texture2D] icon for the checked checkbox items.
diff --git a/doc/classes/PopupPanel.xml b/doc/classes/PopupPanel.xml
index 56833f3f79..71753ffcc6 100644
--- a/doc/classes/PopupPanel.xml
+++ b/doc/classes/PopupPanel.xml
@@ -8,10 +8,6 @@
</description>
<tutorials>
</tutorials>
- <methods>
- </methods>
- <constants>
- </constants>
<theme_items>
<theme_item name="panel" data_type="style" type="StyleBox">
The background panel style of this [PopupPanel].
diff --git a/doc/classes/Position2D.xml b/doc/classes/Position2D.xml
index 9fadb73a15..03d94b5db9 100644
--- a/doc/classes/Position2D.xml
+++ b/doc/classes/Position2D.xml
@@ -8,8 +8,4 @@
</description>
<tutorials>
</tutorials>
- <methods>
- </methods>
- <constants>
- </constants>
</class>
diff --git a/doc/classes/Position3D.xml b/doc/classes/Position3D.xml
index ca61a57483..22dc261520 100644
--- a/doc/classes/Position3D.xml
+++ b/doc/classes/Position3D.xml
@@ -8,8 +8,4 @@
</description>
<tutorials>
</tutorials>
- <methods>
- </methods>
- <constants>
- </constants>
</class>
diff --git a/doc/classes/PrimitiveMesh.xml b/doc/classes/PrimitiveMesh.xml
index 36bec3ff61..6d63f56f1c 100644
--- a/doc/classes/PrimitiveMesh.xml
+++ b/doc/classes/PrimitiveMesh.xml
@@ -40,6 +40,4 @@
The current [Material] of the primitive mesh.
</member>
</members>
- <constants>
- </constants>
</class>
diff --git a/doc/classes/PrismMesh.xml b/doc/classes/PrismMesh.xml
index 0e66281fd1..e369bfe1b2 100644
--- a/doc/classes/PrismMesh.xml
+++ b/doc/classes/PrismMesh.xml
@@ -8,8 +8,6 @@
</description>
<tutorials>
</tutorials>
- <methods>
- </methods>
<members>
<member name="left_to_right" type="float" setter="set_left_to_right" getter="get_left_to_right" default="0.5">
Displacement of the upper edge along the X axis. 0.0 positions edge straight above the bottom-left edge.
@@ -27,6 +25,4 @@
Number of added edge loops along the X axis.
</member>
</members>
- <constants>
- </constants>
</class>
diff --git a/doc/classes/ProceduralSkyMaterial.xml b/doc/classes/ProceduralSkyMaterial.xml
index c598a2c266..02e6a2d9f8 100644
--- a/doc/classes/ProceduralSkyMaterial.xml
+++ b/doc/classes/ProceduralSkyMaterial.xml
@@ -10,8 +10,6 @@
</description>
<tutorials>
</tutorials>
- <methods>
- </methods>
<members>
<member name="ground_bottom_color" type="Color" setter="set_ground_bottom_color" getter="get_ground_bottom_color" default="Color(0.12, 0.12, 0.13, 1)">
Color of the ground at the bottom. Blends with [member ground_horizon_color].
@@ -44,6 +42,4 @@
How quickly the sun fades away between the edge of the sun disk and [member sun_angle_max].
</member>
</members>
- <constants>
- </constants>
</class>
diff --git a/doc/classes/ProgressBar.xml b/doc/classes/ProgressBar.xml
index 8bd013c86c..88132967a0 100644
--- a/doc/classes/ProgressBar.xml
+++ b/doc/classes/ProgressBar.xml
@@ -8,8 +8,6 @@
</description>
<tutorials>
</tutorials>
- <methods>
- </methods>
<members>
<member name="percent_visible" type="bool" setter="set_percent_visible" getter="is_percent_visible" default="true">
If [code]true[/code], the fill percentage is displayed on the bar.
@@ -17,8 +15,6 @@
<member name="size_flags_vertical" type="int" setter="set_v_size_flags" getter="get_v_size_flags" override="true" default="0" />
<member name="step" type="float" setter="set_step" getter="get_step" override="true" default="0.01" />
</members>
- <constants>
- </constants>
<theme_items>
<theme_item name="bg" data_type="style" type="StyleBox">
The style of the background.
diff --git a/doc/classes/ProjectSettings.xml b/doc/classes/ProjectSettings.xml
index 22ed14743a..b3872121bf 100644
--- a/doc/classes/ProjectSettings.xml
+++ b/doc/classes/ProjectSettings.xml
@@ -432,7 +432,7 @@
<member name="debug/settings/stdout/print_gpu_profile" type="bool" setter="" getter="" default="false">
</member>
<member name="debug/settings/stdout/verbose_stdout" type="bool" setter="" getter="" default="false">
- Print more information to standard output when running. It displays information such as memory leaks, which scenes and resources are being loaded, etc.
+ Print more information to standard output when running. It displays information such as memory leaks, which scenes and resources are being loaded, etc. This can also be enabled using the [code]--verbose[/code] or [code]-v[/code] command line argument, even on an exported project. See also [method OS.is_stdout_verbose] and [method @GlobalScope.print_verbose].
</member>
<member name="debug/settings/visual_script/max_call_stack" type="int" setter="" getter="" default="1024">
Maximum call stack in visual scripting, to avoid infinite recursion.
@@ -1778,6 +1778,4 @@
If [code]true[/code], XR support is enabled in Godot, this ensures required shaders are compiled.
</member>
</members>
- <constants>
- </constants>
</class>
diff --git a/doc/classes/PropertyTweener.xml b/doc/classes/PropertyTweener.xml
index 7914b26676..71f56690d5 100644
--- a/doc/classes/PropertyTweener.xml
+++ b/doc/classes/PropertyTweener.xml
@@ -63,6 +63,4 @@
</description>
</method>
</methods>
- <constants>
- </constants>
</class>
diff --git a/doc/classes/ProxyTexture.xml b/doc/classes/ProxyTexture.xml
index 4f25fbcdf9..09a9efaa7a 100644
--- a/doc/classes/ProxyTexture.xml
+++ b/doc/classes/ProxyTexture.xml
@@ -6,12 +6,8 @@
</description>
<tutorials>
</tutorials>
- <methods>
- </methods>
<members>
<member name="base" type="Texture2D" setter="set_base" getter="get_base">
</member>
</members>
- <constants>
- </constants>
</class>
diff --git a/doc/classes/QuadMesh.xml b/doc/classes/QuadMesh.xml
index 4209e3db14..da7e74537a 100644
--- a/doc/classes/QuadMesh.xml
+++ b/doc/classes/QuadMesh.xml
@@ -10,8 +10,6 @@
<link title="GUI in 3D Demo">https://godotengine.org/asset-library/asset/127</link>
<link title="2D in 3D Demo">https://godotengine.org/asset-library/asset/129</link>
</tutorials>
- <methods>
- </methods>
<members>
<member name="center_offset" type="Vector3" setter="set_center_offset" getter="get_center_offset" default="Vector3(0, 0, 0)">
Offset of the generated Quad. Useful for particles.
@@ -20,6 +18,4 @@
Size on the X and Y axes.
</member>
</members>
- <constants>
- </constants>
</class>
diff --git a/doc/classes/RDAttachmentFormat.xml b/doc/classes/RDAttachmentFormat.xml
index b73377bf77..0dea57b4ce 100644
--- a/doc/classes/RDAttachmentFormat.xml
+++ b/doc/classes/RDAttachmentFormat.xml
@@ -6,8 +6,6 @@
</description>
<tutorials>
</tutorials>
- <methods>
- </methods>
<members>
<member name="format" type="int" setter="set_format" getter="get_format" enum="RenderingDevice.DataFormat" default="36">
</member>
@@ -16,6 +14,4 @@
<member name="usage_flags" type="int" setter="set_usage_flags" getter="get_usage_flags" default="0">
</member>
</members>
- <constants>
- </constants>
</class>
diff --git a/doc/classes/RDFramebufferPass.xml b/doc/classes/RDFramebufferPass.xml
index c26c41f93f..4469a5d447 100644
--- a/doc/classes/RDFramebufferPass.xml
+++ b/doc/classes/RDFramebufferPass.xml
@@ -9,8 +9,6 @@
</description>
<tutorials>
</tutorials>
- <methods>
- </methods>
<members>
<member name="color_attachments" type="PackedInt32Array" setter="set_color_attachments" getter="get_color_attachments" default="PackedInt32Array()">
Color attachments in order starting from 0. If this attachment is not used by the shader, pass ATTACHMENT_UNUSED to skip.
diff --git a/doc/classes/RDPipelineColorBlendState.xml b/doc/classes/RDPipelineColorBlendState.xml
index b672a053c7..6c740fb672 100644
--- a/doc/classes/RDPipelineColorBlendState.xml
+++ b/doc/classes/RDPipelineColorBlendState.xml
@@ -6,8 +6,6 @@
</description>
<tutorials>
</tutorials>
- <methods>
- </methods>
<members>
<member name="attachments" type="RDPipelineColorBlendStateAttachment[]" setter="set_attachments" getter="get_attachments" default="[]">
</member>
@@ -18,6 +16,4 @@
<member name="logic_op" type="int" setter="set_logic_op" getter="get_logic_op" enum="RenderingDevice.LogicOperation" default="0">
</member>
</members>
- <constants>
- </constants>
</class>
diff --git a/doc/classes/RDPipelineColorBlendStateAttachment.xml b/doc/classes/RDPipelineColorBlendStateAttachment.xml
index 30430d6670..c81da31367 100644
--- a/doc/classes/RDPipelineColorBlendStateAttachment.xml
+++ b/doc/classes/RDPipelineColorBlendStateAttachment.xml
@@ -37,6 +37,4 @@
<member name="write_r" type="bool" setter="set_write_r" getter="get_write_r" default="true">
</member>
</members>
- <constants>
- </constants>
</class>
diff --git a/doc/classes/RDPipelineDepthStencilState.xml b/doc/classes/RDPipelineDepthStencilState.xml
index 76e0506bca..678b576dea 100644
--- a/doc/classes/RDPipelineDepthStencilState.xml
+++ b/doc/classes/RDPipelineDepthStencilState.xml
@@ -6,8 +6,6 @@
</description>
<tutorials>
</tutorials>
- <methods>
- </methods>
<members>
<member name="back_op_compare" type="int" setter="set_back_op_compare" getter="get_back_op_compare" enum="RenderingDevice.CompareOperator" default="7">
</member>
@@ -52,6 +50,4 @@
<member name="front_op_write_mask" type="int" setter="set_front_op_write_mask" getter="get_front_op_write_mask" default="0">
</member>
</members>
- <constants>
- </constants>
</class>
diff --git a/doc/classes/RDPipelineMultisampleState.xml b/doc/classes/RDPipelineMultisampleState.xml
index b4345f1f8b..fc9b617956 100644
--- a/doc/classes/RDPipelineMultisampleState.xml
+++ b/doc/classes/RDPipelineMultisampleState.xml
@@ -6,8 +6,6 @@
</description>
<tutorials>
</tutorials>
- <methods>
- </methods>
<members>
<member name="enable_alpha_to_coverage" type="bool" setter="set_enable_alpha_to_coverage" getter="get_enable_alpha_to_coverage" default="false">
</member>
@@ -22,6 +20,4 @@
<member name="sample_masks" type="int[]" setter="set_sample_masks" getter="get_sample_masks" default="[]">
</member>
</members>
- <constants>
- </constants>
</class>
diff --git a/doc/classes/RDPipelineRasterizationState.xml b/doc/classes/RDPipelineRasterizationState.xml
index 3f8c50cf42..54a6923f87 100644
--- a/doc/classes/RDPipelineRasterizationState.xml
+++ b/doc/classes/RDPipelineRasterizationState.xml
@@ -6,8 +6,6 @@
</description>
<tutorials>
</tutorials>
- <methods>
- </methods>
<members>
<member name="cull_mode" type="int" setter="set_cull_mode" getter="get_cull_mode" enum="RenderingDevice.PolygonCullMode" default="0">
</member>
@@ -32,6 +30,4 @@
<member name="wireframe" type="bool" setter="set_wireframe" getter="get_wireframe" default="false">
</member>
</members>
- <constants>
- </constants>
</class>
diff --git a/doc/classes/RDPipelineSpecializationConstant.xml b/doc/classes/RDPipelineSpecializationConstant.xml
index 4d9481b846..301a860f26 100644
--- a/doc/classes/RDPipelineSpecializationConstant.xml
+++ b/doc/classes/RDPipelineSpecializationConstant.xml
@@ -6,14 +6,10 @@
</description>
<tutorials>
</tutorials>
- <methods>
- </methods>
<members>
<member name="constant_id" type="int" setter="set_constant_id" getter="get_constant_id" default="0">
</member>
<member name="value" type="Variant" setter="set_value" getter="get_value">
</member>
</members>
- <constants>
- </constants>
</class>
diff --git a/doc/classes/RDSamplerState.xml b/doc/classes/RDSamplerState.xml
index 9a9d55948c..259bf159a3 100644
--- a/doc/classes/RDSamplerState.xml
+++ b/doc/classes/RDSamplerState.xml
@@ -6,8 +6,6 @@
</description>
<tutorials>
</tutorials>
- <methods>
- </methods>
<members>
<member name="anisotropy_max" type="float" setter="set_anisotropy_max" getter="get_anisotropy_max" default="1.0">
</member>
@@ -40,6 +38,4 @@
<member name="use_anisotropy" type="bool" setter="set_use_anisotropy" getter="get_use_anisotropy" default="false">
</member>
</members>
- <constants>
- </constants>
</class>
diff --git a/doc/classes/RDShaderFile.xml b/doc/classes/RDShaderFile.xml
index 22fcf9867c..c46ab55b57 100644
--- a/doc/classes/RDShaderFile.xml
+++ b/doc/classes/RDShaderFile.xml
@@ -30,6 +30,4 @@
<member name="base_error" type="String" setter="set_base_error" getter="get_base_error" default="&quot;&quot;">
</member>
</members>
- <constants>
- </constants>
</class>
diff --git a/doc/classes/RDShaderSPIRV.xml b/doc/classes/RDShaderSPIRV.xml
index 20de8230aa..434b09b188 100644
--- a/doc/classes/RDShaderSPIRV.xml
+++ b/doc/classes/RDShaderSPIRV.xml
@@ -56,6 +56,4 @@
<member name="compile_error_vertex" type="String" setter="set_stage_compile_error" getter="get_stage_compile_error" default="&quot;&quot;">
</member>
</members>
- <constants>
- </constants>
</class>
diff --git a/doc/classes/RDShaderSource.xml b/doc/classes/RDShaderSource.xml
index 2d37ce37f2..4788bca7f4 100644
--- a/doc/classes/RDShaderSource.xml
+++ b/doc/classes/RDShaderSource.xml
@@ -35,6 +35,4 @@
<member name="source_vertex" type="String" setter="set_stage_source" getter="get_stage_source" default="&quot;&quot;">
</member>
</members>
- <constants>
- </constants>
</class>
diff --git a/doc/classes/RDTextureFormat.xml b/doc/classes/RDTextureFormat.xml
index 2588dcfc40..e4a6df199f 100644
--- a/doc/classes/RDTextureFormat.xml
+++ b/doc/classes/RDTextureFormat.xml
@@ -40,6 +40,4 @@
<member name="width" type="int" setter="set_width" getter="get_width" default="1">
</member>
</members>
- <constants>
- </constants>
</class>
diff --git a/doc/classes/RDTextureView.xml b/doc/classes/RDTextureView.xml
index db140ae775..441d1f4079 100644
--- a/doc/classes/RDTextureView.xml
+++ b/doc/classes/RDTextureView.xml
@@ -6,8 +6,6 @@
</description>
<tutorials>
</tutorials>
- <methods>
- </methods>
<members>
<member name="format_override" type="int" setter="set_format_override" getter="get_format_override" enum="RenderingDevice.DataFormat" default="226">
</member>
@@ -20,6 +18,4 @@
<member name="swizzle_r" type="int" setter="set_swizzle_r" getter="get_swizzle_r" enum="RenderingDevice.TextureSwizzle" default="3">
</member>
</members>
- <constants>
- </constants>
</class>
diff --git a/doc/classes/RDUniform.xml b/doc/classes/RDUniform.xml
index 93adecc7de..4de90aa3dc 100644
--- a/doc/classes/RDUniform.xml
+++ b/doc/classes/RDUniform.xml
@@ -30,6 +30,4 @@
<member name="uniform_type" type="int" setter="set_uniform_type" getter="get_uniform_type" enum="RenderingDevice.UniformType" default="3">
</member>
</members>
- <constants>
- </constants>
</class>
diff --git a/doc/classes/RDVertexAttribute.xml b/doc/classes/RDVertexAttribute.xml
index 3499918cc8..17a55260c7 100644
--- a/doc/classes/RDVertexAttribute.xml
+++ b/doc/classes/RDVertexAttribute.xml
@@ -6,8 +6,6 @@
</description>
<tutorials>
</tutorials>
- <methods>
- </methods>
<members>
<member name="format" type="int" setter="set_format" getter="get_format" enum="RenderingDevice.DataFormat" default="226">
</member>
@@ -20,6 +18,4 @@
<member name="stride" type="int" setter="set_stride" getter="get_stride" default="0">
</member>
</members>
- <constants>
- </constants>
</class>
diff --git a/doc/classes/RID.xml b/doc/classes/RID.xml
index 424a76ee44..b4ba74f7e5 100644
--- a/doc/classes/RID.xml
+++ b/doc/classes/RID.xml
@@ -75,6 +75,4 @@
</description>
</method>
</methods>
- <constants>
- </constants>
</class>
diff --git a/doc/classes/RandomNumberGenerator.xml b/doc/classes/RandomNumberGenerator.xml
index fed6568d22..c011755df1 100644
--- a/doc/classes/RandomNumberGenerator.xml
+++ b/doc/classes/RandomNumberGenerator.xml
@@ -86,6 +86,4 @@
[b]Note:[/b] Do not set state to arbitrary values, since the random number generator requires the state to have certain qualities to behave properly. It should only be set to values that came from the state property itself. To initialize the random number generator with arbitrary input, use [member seed] instead.
</member>
</members>
- <constants>
- </constants>
</class>
diff --git a/doc/classes/Range.xml b/doc/classes/Range.xml
index 30b915b437..2926f93c8a 100644
--- a/doc/classes/Range.xml
+++ b/doc/classes/Range.xml
@@ -68,6 +68,4 @@
</description>
</signal>
</signals>
- <constants>
- </constants>
</class>
diff --git a/doc/classes/RayCast2D.xml b/doc/classes/RayCast2D.xml
index 1d32db8078..ce5d48cfa4 100644
--- a/doc/classes/RayCast2D.xml
+++ b/doc/classes/RayCast2D.xml
@@ -122,6 +122,4 @@
The ray's destination point, relative to the RayCast's [code]position[/code].
</member>
</members>
- <constants>
- </constants>
</class>
diff --git a/doc/classes/RayCast3D.xml b/doc/classes/RayCast3D.xml
index 8628ab7dac..c7253e81c4 100644
--- a/doc/classes/RayCast3D.xml
+++ b/doc/classes/RayCast3D.xml
@@ -131,6 +131,4 @@
The ray's destination point, relative to the RayCast's [code]position[/code].
</member>
</members>
- <constants>
- </constants>
</class>
diff --git a/doc/classes/Rect2.xml b/doc/classes/Rect2.xml
index 915099dc1c..e585224818 100644
--- a/doc/classes/Rect2.xml
+++ b/doc/classes/Rect2.xml
@@ -78,6 +78,12 @@
Returns the area of the [Rect2].
</description>
</method>
+ <method name="get_center" qualifiers="const">
+ <return type="Vector2" />
+ <description>
+ Returns the center of the [Rect2], which is equal to [member position] + ([member size] / 2).
+ </description>
+ </method>
<method name="grow" qualifiers="const">
<return type="Rect2" />
<argument index="0" name="amount" type="float" />
@@ -188,6 +194,4 @@
If the size is negative, you can use [method abs] to fix it.
</member>
</members>
- <constants>
- </constants>
</class>
diff --git a/doc/classes/Rect2i.xml b/doc/classes/Rect2i.xml
index 2a98e0c087..2f6f4de66d 100644
--- a/doc/classes/Rect2i.xml
+++ b/doc/classes/Rect2i.xml
@@ -76,6 +76,13 @@
Returns the area of the [Rect2i].
</description>
</method>
+ <method name="get_center" qualifiers="const">
+ <return type="Vector2i" />
+ <description>
+ Returns the center of the [Rect2i], which is equal to [member position] + ([member size] / 2).
+ If [member size] is an odd number, the returned center value will be rounded towards [member position].
+ </description>
+ </method>
<method name="grow" qualifiers="const">
<return type="Rect2i" />
<argument index="0" name="amount" type="int" />
@@ -172,6 +179,4 @@
If the size is negative, you can use [method abs] to fix it.
</member>
</members>
- <constants>
- </constants>
</class>
diff --git a/doc/classes/RectangleShape2D.xml b/doc/classes/RectangleShape2D.xml
index f2795ae4a1..add8da181a 100644
--- a/doc/classes/RectangleShape2D.xml
+++ b/doc/classes/RectangleShape2D.xml
@@ -10,13 +10,9 @@
<link title="2D Pong Demo">https://godotengine.org/asset-library/asset/121</link>
<link title="2D Kinematic Character Demo">https://godotengine.org/asset-library/asset/113</link>
</tutorials>
- <methods>
- </methods>
<members>
<member name="size" type="Vector2" setter="set_size" getter="get_size" default="Vector2(20, 20)">
The rectangle's width and height.
</member>
</members>
- <constants>
- </constants>
</class>
diff --git a/doc/classes/RefCounted.xml b/doc/classes/RefCounted.xml
index bf52c34777..5f18ccc14d 100644
--- a/doc/classes/RefCounted.xml
+++ b/doc/classes/RefCounted.xml
@@ -35,6 +35,4 @@
</description>
</method>
</methods>
- <constants>
- </constants>
</class>
diff --git a/doc/classes/ReferenceRect.xml b/doc/classes/ReferenceRect.xml
index df9a6f0a46..1db6879b45 100644
--- a/doc/classes/ReferenceRect.xml
+++ b/doc/classes/ReferenceRect.xml
@@ -8,8 +8,6 @@
</description>
<tutorials>
</tutorials>
- <methods>
- </methods>
<members>
<member name="border_color" type="Color" setter="set_border_color" getter="get_border_color" default="Color(1, 0, 0, 1)">
Sets the border [Color] of the [ReferenceRect].
@@ -21,6 +19,4 @@
If set to [code]true[/code], the [ReferenceRect] will only be visible while in editor. Otherwise, [ReferenceRect] will be visible in game.
</member>
</members>
- <constants>
- </constants>
</class>
diff --git a/doc/classes/ReflectionProbe.xml b/doc/classes/ReflectionProbe.xml
index db01faced8..7f2bd118d6 100644
--- a/doc/classes/ReflectionProbe.xml
+++ b/doc/classes/ReflectionProbe.xml
@@ -10,8 +10,6 @@
<tutorials>
<link title="Reflection probes">https://docs.godotengine.org/en/latest/tutorials/3d/reflection_probes.html</link>
</tutorials>
- <methods>
- </methods>
<members>
<member name="ambient_color" type="Color" setter="set_ambient_color" getter="get_ambient_color" default="Color(0, 0, 0, 1)">
</member>
diff --git a/doc/classes/RemoteTransform2D.xml b/doc/classes/RemoteTransform2D.xml
index 613726b555..c9be26a985 100644
--- a/doc/classes/RemoteTransform2D.xml
+++ b/doc/classes/RemoteTransform2D.xml
@@ -34,6 +34,4 @@
If [code]true[/code], global coordinates are used. If [code]false[/code], local coordinates are used.
</member>
</members>
- <constants>
- </constants>
</class>
diff --git a/doc/classes/RemoteTransform3D.xml b/doc/classes/RemoteTransform3D.xml
index cc19d5c25d..de727e719d 100644
--- a/doc/classes/RemoteTransform3D.xml
+++ b/doc/classes/RemoteTransform3D.xml
@@ -34,6 +34,4 @@
If [code]true[/code], global coordinates are used. If [code]false[/code], local coordinates are used.
</member>
</members>
- <constants>
- </constants>
</class>
diff --git a/doc/classes/Resource.xml b/doc/classes/Resource.xml
index efb0339aa7..45b68f342c 100644
--- a/doc/classes/Resource.xml
+++ b/doc/classes/Resource.xml
@@ -84,6 +84,4 @@
</description>
</signal>
</signals>
- <constants>
- </constants>
</class>
diff --git a/doc/classes/ResourceFormatSaver.xml b/doc/classes/ResourceFormatSaver.xml
index 7ee8875321..8d48de9378 100644
--- a/doc/classes/ResourceFormatSaver.xml
+++ b/doc/classes/ResourceFormatSaver.xml
@@ -35,6 +35,4 @@
</description>
</method>
</methods>
- <constants>
- </constants>
</class>
diff --git a/doc/classes/ResourceImporter.xml b/doc/classes/ResourceImporter.xml
index 03d47ee518..9f551ad1d2 100644
--- a/doc/classes/ResourceImporter.xml
+++ b/doc/classes/ResourceImporter.xml
@@ -9,8 +9,6 @@
<tutorials>
<link title="Import plugins">https://docs.godotengine.org/en/latest/tutorials/plugins/editor/import_plugins.html</link>
</tutorials>
- <methods>
- </methods>
<constants>
<constant name="IMPORT_ORDER_DEFAULT" value="0" enum="ImportOrder">
The default import order.
diff --git a/doc/classes/ResourcePreloader.xml b/doc/classes/ResourcePreloader.xml
index 8ac8717581..565578cb22 100644
--- a/doc/classes/ResourcePreloader.xml
+++ b/doc/classes/ResourcePreloader.xml
@@ -54,6 +54,4 @@
</description>
</method>
</methods>
- <constants>
- </constants>
</class>
diff --git a/doc/classes/RibbonTrailMesh.xml b/doc/classes/RibbonTrailMesh.xml
index 771f2e444b..c2e9c14bab 100644
--- a/doc/classes/RibbonTrailMesh.xml
+++ b/doc/classes/RibbonTrailMesh.xml
@@ -6,8 +6,6 @@
</description>
<tutorials>
</tutorials>
- <methods>
- </methods>
<members>
<member name="curve" type="Curve" setter="set_curve" getter="get_curve">
</member>
diff --git a/doc/classes/RichTextEffect.xml b/doc/classes/RichTextEffect.xml
index fd93f6be56..cf4b4f4a48 100644
--- a/doc/classes/RichTextEffect.xml
+++ b/doc/classes/RichTextEffect.xml
@@ -31,6 +31,4 @@
</description>
</method>
</methods>
- <constants>
- </constants>
</class>
diff --git a/doc/classes/RigidDynamicBody2D.xml b/doc/classes/RigidDynamicBody2D.xml
index 059379242b..9baed392eb 100644
--- a/doc/classes/RigidDynamicBody2D.xml
+++ b/doc/classes/RigidDynamicBody2D.xml
@@ -5,11 +5,10 @@
</brief_description>
<description>
This node implements simulated 2D physics. You do not control a RigidDynamicBody2D directly. Instead, you apply forces to it (gravity, impulses, etc.) and the physics simulation calculates the resulting movement based on its mass, friction, and other physical properties.
- A RigidDynamicBody2D has 4 behavior [member mode]s: Dynamic, Static, DynamicLocked, and Kinematic.
+ You can switch the body's behavior using [member lock_rotation], [member freeze], and [member freeze_mode].
[b]Note:[/b] You should not change a RigidDynamicBody2D's [code]position[/code] or [code]linear_velocity[/code] every frame or even very often. If you need to directly affect the body's state, use [method _integrate_forces], which allows you to directly access the physics state.
Please also keep in mind that physics bodies manage their own transform which overwrites the ones you set. So any direct or indirect transformation (including scaling of the node or its parent) will be visible in the editor only, and immediately reset at runtime.
If you need to override the default physics behavior or add a transformation at runtime, you can write a custom force integration. See [member custom_integrator].
- The center of mass is always located at the node's origin without taking into account the [CollisionShape2D] centroid offsets.
</description>
<tutorials>
<link title="2D Physics Platformer Demo">https://godotengine.org/asset-library/asset/119</link>
@@ -120,6 +119,15 @@
<member name="custom_integrator" type="bool" setter="set_use_custom_integrator" getter="is_using_custom_integrator" default="false">
If [code]true[/code], internal force integration is disabled for this body. Aside from collision response, the body will only move as determined by the [method _integrate_forces] function.
</member>
+ <member name="freeze" type="bool" setter="set_freeze_enabled" getter="is_freeze_enabled" default="false">
+ If [code]true[/code], the body is frozen. Gravity and forces are not applied anymore.
+ See [member freeze_mode] to set the body's behavior when frozen.
+ For a body that is always frozen, use [StaticBody2D] or [AnimatableBody2D] instead.
+ </member>
+ <member name="freeze_mode" type="int" setter="set_freeze_mode" getter="get_freeze_mode" enum="RigidDynamicBody2D.FreezeMode" default="0">
+ The body's freeze mode. Can be used to set the body's behavior when [member freeze] is enabled. See [enum FreezeMode] for possible values.
+ For a body that is always frozen, use [StaticBody2D] or [AnimatableBody2D] instead.
+ </member>
<member name="gravity_scale" type="float" setter="set_gravity_scale" getter="get_gravity_scale" default="1.0">
Multiplies the gravity applied to the body. The body's gravity is calculated from the [b]Default Gravity[/b] value in [b]Project &gt; Project Settings &gt; Physics &gt; 2d[/b] and/or any additional gravity vector applied by [Area2D]s.
</member>
@@ -134,13 +142,12 @@
<member name="linear_velocity" type="Vector2" setter="set_linear_velocity" getter="get_linear_velocity" default="Vector2(0, 0)">
The body's linear velocity.
</member>
+ <member name="lock_rotation" type="bool" setter="set_lock_rotation_enabled" getter="is_lock_rotation_enabled" default="false">
+ If [code]true[/code], the body cannot rotate. Gravity and forces only apply linear movement.
+ </member>
<member name="mass" type="float" setter="set_mass" getter="get_mass" default="1.0">
The body's mass.
</member>
- <member name="mode" type="int" setter="set_mode" getter="get_mode" enum="RigidDynamicBody2D.Mode" default="0">
- The body's mode. See [enum Mode] for possible values.
- For a body that uses only Static or Kinematic mode, use [StaticBody2D] or [AnimatableBody2D] instead.
- </member>
<member name="physics_material_override" type="PhysicsMaterial" setter="set_physics_material_override" getter="get_physics_material_override">
The physics material override for the body.
If a material is assigned to this property, it will be used instead of any other physics material, such as an inherited one.
@@ -198,17 +205,11 @@
</signal>
</signals>
<constants>
- <constant name="MODE_DYNAMIC" value="0" enum="Mode">
- Dynamic body mode. This is the default mode of a rigid body. It is affected by forces, and can move, rotate, and be affected by user code.
- </constant>
- <constant name="MODE_STATIC" value="1" enum="Mode">
- Static body mode. The body behaves like a [StaticBody2D], and must be moved by code.
- </constant>
- <constant name="MODE_DYNAMIC_LOCKED" value="2" enum="Mode">
- Locked dynamic body mode. Similar to [constant MODE_DYNAMIC], but the body can not rotate.
+ <constant name="FREEZE_MODE_STATIC" value="0" enum="FreezeMode">
+ Static body freeze mode (default). The body is not affected by gravity and forces. It can be only moved by user code and doesn't collide with other bodies along its path.
</constant>
- <constant name="MODE_KINEMATIC" value="3" enum="Mode">
- Kinematic body mode. The body behaves like a [AnimatableBody2D], and must be moved by code.
+ <constant name="FREEZE_MODE_KINEMATIC" value="1" enum="FreezeMode">
+ Kinematic body freeze mode. Similar to [constant FREEZE_MODE_STATIC], but collides with other bodies along its path when moved. Useful for a frozen body that needs to be animated.
</constant>
<constant name="CENTER_OF_MASS_MODE_AUTO" value="0" enum="CenterOfMassMode">
In this mode, the body's center of mass is calculated automatically based on its shapes.
diff --git a/doc/classes/RigidDynamicBody3D.xml b/doc/classes/RigidDynamicBody3D.xml
index 9b6bcd840b..7d1c7fecfa 100644
--- a/doc/classes/RigidDynamicBody3D.xml
+++ b/doc/classes/RigidDynamicBody3D.xml
@@ -5,10 +5,9 @@
</brief_description>
<description>
This is the node that implements full 3D physics. This means that you do not control a RigidDynamicBody3D directly. Instead, you can apply forces to it (gravity, impulses, etc.), and the physics simulation will calculate the resulting movement, collision, bouncing, rotating, etc.
- A RigidDynamicBody3D has 4 behavior [member mode]s: Dynamic, Static, DynamicLocked, and Kinematic.
+ You can switch the body's behavior using [member lock_rotation], [member freeze], and [member freeze_mode].
[b]Note:[/b] Don't change a RigidDynamicBody3D's position every frame or very often. Sporadic changes work fine, but physics runs at a different granularity (fixed Hz) than usual rendering (process callback) and maybe even in a separate thread, so changing this from a process loop may result in strange behavior. If you need to directly affect the body's state, use [method _integrate_forces], which allows you to directly access the physics state.
If you need to override the default physics behavior, you can write a custom force integration function. See [member custom_integrator].
- With Bullet physics (the default), the center of mass is the RigidDynamicBody3D center. With GodotPhysics, the center of mass is the average of the [CollisionShape3D] centers.
</description>
<tutorials>
<link title="Physics introduction">https://docs.godotengine.org/en/latest/tutorials/physics/physics_introduction.html</link>
@@ -123,6 +122,15 @@
<member name="custom_integrator" type="bool" setter="set_use_custom_integrator" getter="is_using_custom_integrator" default="false">
If [code]true[/code], internal force integration will be disabled (like gravity or air friction) for this body. Other than collision response, the body will only move as determined by the [method _integrate_forces] function, if defined.
</member>
+ <member name="freeze" type="bool" setter="set_freeze_enabled" getter="is_freeze_enabled" default="false">
+ If [code]true[/code], the body is frozen. Gravity and forces are not applied anymore.
+ See [member freeze_mode] to set the body's behavior when frozen.
+ For a body that is always frozen, use [StaticBody3D] or [AnimatableBody3D] instead.
+ </member>
+ <member name="freeze_mode" type="int" setter="set_freeze_mode" getter="get_freeze_mode" enum="RigidDynamicBody3D.FreezeMode" default="0">
+ The body's freeze mode. Can be used to set the body's behavior when [member freeze] is enabled. See [enum FreezeMode] for possible values.
+ For a body that is always frozen, use [StaticBody3D] or [AnimatableBody3D] instead.
+ </member>
<member name="gravity_scale" type="float" setter="set_gravity_scale" getter="get_gravity_scale" default="1.0">
This is multiplied by the global 3D gravity setting found in [b]Project &gt; Project Settings &gt; Physics &gt; 3d[/b] to produce RigidDynamicBody3D's gravity. For example, a value of 1 will be normal gravity, 2 will apply double gravity, and 0.5 will apply half gravity to this object.
</member>
@@ -137,13 +145,12 @@
<member name="linear_velocity" type="Vector3" setter="set_linear_velocity" getter="get_linear_velocity" default="Vector3(0, 0, 0)">
The body's linear velocity. Can be used sporadically, but [b]don't set this every frame[/b], because physics may run in another thread and runs at a different granularity. Use [method _integrate_forces] as your process loop for precise control of the body state.
</member>
+ <member name="lock_rotation" type="bool" setter="set_lock_rotation_enabled" getter="is_lock_rotation_enabled" default="false">
+ If [code]true[/code], the body cannot rotate. Gravity and forces only apply linear movement.
+ </member>
<member name="mass" type="float" setter="set_mass" getter="get_mass" default="1.0">
The body's mass.
</member>
- <member name="mode" type="int" setter="set_mode" getter="get_mode" enum="RigidDynamicBody3D.Mode" default="0">
- The body's mode. See [enum Mode] for possible values.
- For a body that uses only Static or Kinematic mode, use [StaticBody3D] or [AnimatableBody3D] instead.
- </member>
<member name="physics_material_override" type="PhysicsMaterial" setter="set_physics_material_override" getter="get_physics_material_override">
The physics material override for the body.
If a material is assigned to this property, it will be used instead of any other physics material, such as an inherited one.
@@ -203,17 +210,11 @@
</signal>
</signals>
<constants>
- <constant name="MODE_DYNAMIC" value="0" enum="Mode">
- Dynamic body mode. This is the default mode of a rigid body. It is affected by forces, and can move, rotate, and be affected by user code.
- </constant>
- <constant name="MODE_STATIC" value="1" enum="Mode">
- Static body mode. The body behaves like a [StaticBody3D], and can only move by user code.
- </constant>
- <constant name="MODE_DYNAMIC_LOCKED" value="2" enum="Mode">
- Locked dynamic body mode. Similar to [constant MODE_DYNAMIC], but the body can not rotate.
+ <constant name="FREEZE_MODE_STATIC" value="0" enum="FreezeMode">
+ Static body freeze mode (default). The body is not affected by gravity and forces. It can be only moved by user code and doesn't collide with other bodies along its path.
</constant>
- <constant name="MODE_KINEMATIC" value="3" enum="Mode">
- Kinematic body mode. The body behaves like a [AnimatableBody3D], and can only move by user code.
+ <constant name="FREEZE_MODE_KINEMATIC" value="1" enum="FreezeMode">
+ Kinematic body freeze mode. Similar to [constant FREEZE_MODE_STATIC], but collides with other bodies along its path when moved. Useful for a frozen body that needs to be animated.
</constant>
<constant name="CENTER_OF_MASS_MODE_AUTO" value="0" enum="CenterOfMassMode">
In this mode, the body's center of mass is calculated automatically based on its shapes.
diff --git a/doc/classes/RootMotionView.xml b/doc/classes/RootMotionView.xml
index e31ea9265e..5db13de44f 100644
--- a/doc/classes/RootMotionView.xml
+++ b/doc/classes/RootMotionView.xml
@@ -10,8 +10,6 @@
<tutorials>
<link title="Using AnimationTree - Root motion">https://docs.godotengine.org/en/latest/tutorials/animation/animation_tree.html#root-motion</link>
</tutorials>
- <methods>
- </methods>
<members>
<member name="animation_path" type="NodePath" setter="set_animation_path" getter="get_animation_path">
Path to an [AnimationTree] node to use as a basis for root motion.
@@ -29,6 +27,4 @@
If [code]true[/code], the grid's points will all be on the same Y coordinate ([i]local[/i] Y = 0). If [code]false[/code], the points' original Y coordinate is preserved.
</member>
</members>
- <constants>
- </constants>
</class>
diff --git a/doc/classes/SceneTree.xml b/doc/classes/SceneTree.xml
index 9a38e52b23..8d7427611a 100644
--- a/doc/classes/SceneTree.xml
+++ b/doc/classes/SceneTree.xml
@@ -18,7 +18,7 @@
<argument index="0" name="group" type="StringName" />
<argument index="1" name="method" type="StringName" />
<description>
- Calls [code]method[/code] on each member of the given group. You can pass arguments to [code]method[/code] by specifying them at the end of the method call.
+ Calls [code]method[/code] on each member of the given group. You can pass arguments to [code]method[/code] by specifying them at the end of the method call. This method is equivalent of calling [method call_group_flags] with [constant GROUP_CALL_DEFAULT] flag.
[b]Note:[/b] [method call_group] will always call methods with an one-frame delay, in a way similar to [method Object.call_deferred]. To call methods immediately, use [method call_group_flags] with the [constant GROUP_CALL_REALTIME] flag.
</description>
</method>
@@ -29,7 +29,9 @@
<argument index="2" name="method" type="StringName" />
<description>
Calls [code]method[/code] on each member of the given group, respecting the given [enum GroupCallFlags]. You can pass arguments to [code]method[/code] by specifying them at the end of the method call.
- [b]Note:[/b] Group call flags are used to control the method calling behavior. If the [constant GROUP_CALL_REALTIME] flag is present in the [code]flags[/code] argument, methods will be called immediately. If this flag isn't present in [code]flags[/code], methods will be called with a one-frame delay in a way similar to [method call_group].
+ [codeblock]
+ get_tree().call_group_flags(SceneTree.GROUP_CALL_REALTIME | SceneTree.GROUP_CALL_REVERSE, "bases", "destroy") # Call the method immediately and in reverse order.
+ [/codeblock]
</description>
</method>
<method name="change_scene">
diff --git a/doc/classes/SceneTreeTimer.xml b/doc/classes/SceneTreeTimer.xml
index 4eef754345..f97c5e42b5 100644
--- a/doc/classes/SceneTreeTimer.xml
+++ b/doc/classes/SceneTreeTimer.xml
@@ -25,8 +25,6 @@
</description>
<tutorials>
</tutorials>
- <methods>
- </methods>
<members>
<member name="time_left" type="float" setter="set_time_left" getter="get_time_left">
The time remaining.
@@ -39,6 +37,4 @@
</description>
</signal>
</signals>
- <constants>
- </constants>
</class>
diff --git a/doc/classes/Script.xml b/doc/classes/Script.xml
index 843d8ef9cb..b7a4f448b0 100644
--- a/doc/classes/Script.xml
+++ b/doc/classes/Script.xml
@@ -99,6 +99,4 @@
The script source code or an empty string if source code is not available. When set, does not reload the class implementation automatically.
</member>
</members>
- <constants>
- </constants>
</class>
diff --git a/doc/classes/ScriptCreateDialog.xml b/doc/classes/ScriptCreateDialog.xml
index 189bfdc3b8..349adb9111 100644
--- a/doc/classes/ScriptCreateDialog.xml
+++ b/doc/classes/ScriptCreateDialog.xml
@@ -50,6 +50,4 @@
</description>
</signal>
</signals>
- <constants>
- </constants>
</class>
diff --git a/doc/classes/ScriptEditor.xml b/doc/classes/ScriptEditor.xml
index 628be54e1d..faad8f8cae 100644
--- a/doc/classes/ScriptEditor.xml
+++ b/doc/classes/ScriptEditor.xml
@@ -79,6 +79,4 @@
</description>
</signal>
</signals>
- <constants>
- </constants>
</class>
diff --git a/doc/classes/ScriptEditorBase.xml b/doc/classes/ScriptEditorBase.xml
index 08baa705e8..1e72fe9090 100644
--- a/doc/classes/ScriptEditorBase.xml
+++ b/doc/classes/ScriptEditorBase.xml
@@ -64,6 +64,4 @@
</description>
</signal>
</signals>
- <constants>
- </constants>
</class>
diff --git a/doc/classes/ScrollBar.xml b/doc/classes/ScrollBar.xml
index b1eb9c012b..1f1415bebe 100644
--- a/doc/classes/ScrollBar.xml
+++ b/doc/classes/ScrollBar.xml
@@ -8,8 +8,6 @@
</description>
<tutorials>
</tutorials>
- <methods>
- </methods>
<members>
<member name="custom_step" type="float" setter="set_custom_step" getter="get_custom_step" default="-1.0">
Overrides the step used when clicking increment and decrement buttons or when using arrow keys when the [ScrollBar] is focused.
@@ -24,6 +22,4 @@
</description>
</signal>
</signals>
- <constants>
- </constants>
</class>
diff --git a/doc/classes/ScrollContainer.xml b/doc/classes/ScrollContainer.xml
index 953ab24748..1cf8c6cb54 100644
--- a/doc/classes/ScrollContainer.xml
+++ b/doc/classes/ScrollContainer.xml
@@ -69,8 +69,6 @@
</description>
</signal>
</signals>
- <constants>
- </constants>
<theme_items>
<theme_item name="bg" data_type="style" type="StyleBox">
The background [StyleBox] of the [ScrollContainer].
diff --git a/doc/classes/SegmentShape2D.xml b/doc/classes/SegmentShape2D.xml
index 341c5e9d20..799884257f 100644
--- a/doc/classes/SegmentShape2D.xml
+++ b/doc/classes/SegmentShape2D.xml
@@ -8,8 +8,6 @@
</description>
<tutorials>
</tutorials>
- <methods>
- </methods>
<members>
<member name="a" type="Vector2" setter="set_a" getter="get_a" default="Vector2(0, 0)">
The segment's first point position.
@@ -18,6 +16,4 @@
The segment's second point position.
</member>
</members>
- <constants>
- </constants>
</class>
diff --git a/doc/classes/Semaphore.xml b/doc/classes/Semaphore.xml
index 7794161ac4..2f3fa021d4 100644
--- a/doc/classes/Semaphore.xml
+++ b/doc/classes/Semaphore.xml
@@ -29,6 +29,4 @@
</description>
</method>
</methods>
- <constants>
- </constants>
</class>
diff --git a/doc/classes/SeparationRayShape2D.xml b/doc/classes/SeparationRayShape2D.xml
index fb90606577..ccb7a12882 100644
--- a/doc/classes/SeparationRayShape2D.xml
+++ b/doc/classes/SeparationRayShape2D.xml
@@ -8,8 +8,6 @@
</description>
<tutorials>
</tutorials>
- <methods>
- </methods>
<members>
<member name="length" type="float" setter="set_length" getter="get_length" default="20.0">
The ray's length.
@@ -19,6 +17,4 @@
If [code]true[/code], the shape can return the correct normal and separate in any direction, allowing sliding motion on slopes.
</member>
</members>
- <constants>
- </constants>
</class>
diff --git a/doc/classes/SeparationRayShape3D.xml b/doc/classes/SeparationRayShape3D.xml
index ea57e4eb59..877e8545eb 100644
--- a/doc/classes/SeparationRayShape3D.xml
+++ b/doc/classes/SeparationRayShape3D.xml
@@ -8,8 +8,6 @@
</description>
<tutorials>
</tutorials>
- <methods>
- </methods>
<members>
<member name="length" type="float" setter="set_length" getter="get_length" default="1.0">
The ray's length.
@@ -19,6 +17,4 @@
If [code]true[/code], the shape can return the correct normal and separate in any direction, allowing sliding motion on slopes.
</member>
</members>
- <constants>
- </constants>
</class>
diff --git a/doc/classes/Separator.xml b/doc/classes/Separator.xml
index ef79851aab..80310e912f 100644
--- a/doc/classes/Separator.xml
+++ b/doc/classes/Separator.xml
@@ -8,8 +8,4 @@
</description>
<tutorials>
</tutorials>
- <methods>
- </methods>
- <constants>
- </constants>
</class>
diff --git a/doc/classes/ShaderGlobalsOverride.xml b/doc/classes/ShaderGlobalsOverride.xml
index 2aa00aa5a9..babda1707e 100644
--- a/doc/classes/ShaderGlobalsOverride.xml
+++ b/doc/classes/ShaderGlobalsOverride.xml
@@ -6,8 +6,4 @@
</description>
<tutorials>
</tutorials>
- <methods>
- </methods>
- <constants>
- </constants>
</class>
diff --git a/doc/classes/ShaderMaterial.xml b/doc/classes/ShaderMaterial.xml
index fe3ddc1b60..13f2e2fe5f 100644
--- a/doc/classes/ShaderMaterial.xml
+++ b/doc/classes/ShaderMaterial.xml
@@ -45,6 +45,4 @@
The [Shader] program used to render this material.
</member>
</members>
- <constants>
- </constants>
</class>
diff --git a/doc/classes/Shape2D.xml b/doc/classes/Shape2D.xml
index c1191aa9de..04f91d19da 100644
--- a/doc/classes/Shape2D.xml
+++ b/doc/classes/Shape2D.xml
@@ -68,6 +68,4 @@
The shape's custom solver bias.
</member>
</members>
- <constants>
- </constants>
</class>
diff --git a/doc/classes/Shape3D.xml b/doc/classes/Shape3D.xml
index 5fd16d8d36..96f8833486 100644
--- a/doc/classes/Shape3D.xml
+++ b/doc/classes/Shape3D.xml
@@ -23,6 +23,4 @@
Collision margins allow collision detection to be more efficient by adding an extra shell around shapes. Collision algorithms are more expensive when objects overlap by more than their margin, so a higher value for margins is better for performance, at the cost of accuracy around edges as it makes them less sharp.
</member>
</members>
- <constants>
- </constants>
</class>
diff --git a/doc/classes/Shortcut.xml b/doc/classes/Shortcut.xml
index d9f7f98888..9fbe91f38b 100644
--- a/doc/classes/Shortcut.xml
+++ b/doc/classes/Shortcut.xml
@@ -36,6 +36,4 @@
Generally the [InputEvent] is a keyboard key, though it can be any [InputEvent], including an [InputEventAction].
</member>
</members>
- <constants>
- </constants>
</class>
diff --git a/doc/classes/Signal.xml b/doc/classes/Signal.xml
index 11107c093d..f78266a20c 100644
--- a/doc/classes/Signal.xml
+++ b/doc/classes/Signal.xml
@@ -32,10 +32,16 @@
<method name="connect">
<return type="int" />
<argument index="0" name="callable" type="Callable" />
- <argument index="1" name="binds" type="Array" default="[]" />
- <argument index="2" name="flags" type="int" default="0" />
+ <argument index="1" name="flags" type="int" default="0" />
<description>
- Connects this signal to the specified [Callable], optionally providing binds and connection flags.
+ Connects this signal to the specified [Callable], optionally providing connection flags. You can provide additional arguments to the connected method call by using [method Callable.bind].
+ [codeblock]
+ for button in $Buttons.get_children():
+ button.pressed.connect(on_pressed.bind(button))
+
+ func on_pressed(button):
+ print(button.name, " was pressed")
+ [/codeblock]
</description>
</method>
<method name="disconnect">
@@ -110,6 +116,4 @@
</description>
</method>
</methods>
- <constants>
- </constants>
</class>
diff --git a/doc/classes/Skeleton2D.xml b/doc/classes/Skeleton2D.xml
index 839193fb61..7aa06985bf 100644
--- a/doc/classes/Skeleton2D.xml
+++ b/doc/classes/Skeleton2D.xml
@@ -78,6 +78,4 @@
</description>
</signal>
</signals>
- <constants>
- </constants>
</class>
diff --git a/doc/classes/SkeletonIK3D.xml b/doc/classes/SkeletonIK3D.xml
index 93cdd770cc..6673e0657c 100644
--- a/doc/classes/SkeletonIK3D.xml
+++ b/doc/classes/SkeletonIK3D.xml
@@ -52,6 +52,4 @@
<member name="use_magnet" type="bool" setter="set_use_magnet" getter="is_using_magnet" default="false">
</member>
</members>
- <constants>
- </constants>
</class>
diff --git a/doc/classes/SkeletonModification2D.xml b/doc/classes/SkeletonModification2D.xml
index cff55b6a17..815b97a271 100644
--- a/doc/classes/SkeletonModification2D.xml
+++ b/doc/classes/SkeletonModification2D.xml
@@ -82,6 +82,4 @@
The execution mode for the modification. This tells the modification stack when to execute the modification. Some modifications have settings that are only available in certain execution modes.
</member>
</members>
- <constants>
- </constants>
</class>
diff --git a/doc/classes/SkeletonModification2DCCDIK.xml b/doc/classes/SkeletonModification2DCCDIK.xml
index f876615de7..ab9a482609 100644
--- a/doc/classes/SkeletonModification2DCCDIK.xml
+++ b/doc/classes/SkeletonModification2DCCDIK.xml
@@ -130,6 +130,4 @@
The end position of the CCDIK chain. Typically, this should be a child of a [Bone2D] node attached to the final [Bone2D] in the CCDIK chain.
</member>
</members>
- <constants>
- </constants>
</class>
diff --git a/doc/classes/SkeletonModification2DFABRIK.xml b/doc/classes/SkeletonModification2DFABRIK.xml
index 314405498a..16c22a45d3 100644
--- a/doc/classes/SkeletonModification2DFABRIK.xml
+++ b/doc/classes/SkeletonModification2DFABRIK.xml
@@ -83,6 +83,4 @@
The NodePath to the node that is the target for the FABRIK modification. This node is what the FABRIK chain will attempt to rotate the bone chain to.
</member>
</members>
- <constants>
- </constants>
</class>
diff --git a/doc/classes/SkeletonModification2DJiggle.xml b/doc/classes/SkeletonModification2DJiggle.xml
index 8d3732e225..13dfbc0633 100644
--- a/doc/classes/SkeletonModification2DJiggle.xml
+++ b/doc/classes/SkeletonModification2DJiggle.xml
@@ -181,6 +181,4 @@
Whether the gravity vector, [member gravity], should be applied to the Jiggle joints, assuming they are not overriding the default settings.
</member>
</members>
- <constants>
- </constants>
</class>
diff --git a/doc/classes/SkeletonModification2DLookAt.xml b/doc/classes/SkeletonModification2DLookAt.xml
index 998a897d20..90b727e194 100644
--- a/doc/classes/SkeletonModification2DLookAt.xml
+++ b/doc/classes/SkeletonModification2DLookAt.xml
@@ -87,6 +87,4 @@
The NodePath to the node that is the target for the LookAt modification. This node is what the modification will rotate the [Bone2D] to.
</member>
</members>
- <constants>
- </constants>
</class>
diff --git a/doc/classes/SkeletonModification2DPhysicalBones.xml b/doc/classes/SkeletonModification2DPhysicalBones.xml
index e6bcb3c9d7..44572f2c67 100644
--- a/doc/classes/SkeletonModification2DPhysicalBones.xml
+++ b/doc/classes/SkeletonModification2DPhysicalBones.xml
@@ -53,6 +53,4 @@
The amount of [PhysicalBone2D] nodes linked in this modification.
</member>
</members>
- <constants>
- </constants>
</class>
diff --git a/doc/classes/SkeletonModification2DStackHolder.xml b/doc/classes/SkeletonModification2DStackHolder.xml
index e5d9f2194a..35ab52ea99 100644
--- a/doc/classes/SkeletonModification2DStackHolder.xml
+++ b/doc/classes/SkeletonModification2DStackHolder.xml
@@ -24,6 +24,4 @@
</description>
</method>
</methods>
- <constants>
- </constants>
</class>
diff --git a/doc/classes/SkeletonModification2DTwoBoneIK.xml b/doc/classes/SkeletonModification2DTwoBoneIK.xml
index 25ee981d5d..b7a2faedbb 100644
--- a/doc/classes/SkeletonModification2DTwoBoneIK.xml
+++ b/doc/classes/SkeletonModification2DTwoBoneIK.xml
@@ -77,6 +77,4 @@
The NodePath to the node that is the target for the TwoBoneIK modification. This node is what the modification will use when bending the [Bone2D] nodes.
</member>
</members>
- <constants>
- </constants>
</class>
diff --git a/doc/classes/SkeletonModification3D.xml b/doc/classes/SkeletonModification3D.xml
index 48b8a905b9..c544473163 100644
--- a/doc/classes/SkeletonModification3D.xml
+++ b/doc/classes/SkeletonModification3D.xml
@@ -63,6 +63,4 @@
The execution mode for the modification. This tells the modification stack when to execute the modification. Some modifications have settings that are only availible in certain execution modes.
</member>
</members>
- <constants>
- </constants>
</class>
diff --git a/doc/classes/SkeletonModification3DCCDIK.xml b/doc/classes/SkeletonModification3DCCDIK.xml
index aa7ddad56e..ef3200a07a 100644
--- a/doc/classes/SkeletonModification3DCCDIK.xml
+++ b/doc/classes/SkeletonModification3DCCDIK.xml
@@ -133,6 +133,4 @@
The end position of the CCDIK chain. Typically, this should be a child of a [BoneAttachment3D] node attached to the final bone in the CCDIK chain, where the child node is offset so it is at the end of the final bone.
</member>
</members>
- <constants>
- </constants>
</class>
diff --git a/doc/classes/SkeletonModification3DFABRIK.xml b/doc/classes/SkeletonModification3DFABRIK.xml
index 7058e37e94..4c4e01e9d1 100644
--- a/doc/classes/SkeletonModification3DFABRIK.xml
+++ b/doc/classes/SkeletonModification3DFABRIK.xml
@@ -158,6 +158,4 @@
The NodePath to the node that is the target for the FABRIK modification. This node is what the FABRIK chain will attempt to rotate the bone chain to.
</member>
</members>
- <constants>
- </constants>
</class>
diff --git a/doc/classes/SkeletonModification3DJiggle.xml b/doc/classes/SkeletonModification3DJiggle.xml
index 6cc1c0b266..3c724229bd 100644
--- a/doc/classes/SkeletonModification3DJiggle.xml
+++ b/doc/classes/SkeletonModification3DJiggle.xml
@@ -196,6 +196,4 @@
Whether the gravity vector, [member gravity], should be applied to the Jiggle joints, assuming they are not overriding the default settings.
</member>
</members>
- <constants>
- </constants>
</class>
diff --git a/doc/classes/SkeletonModification3DLookAt.xml b/doc/classes/SkeletonModification3DLookAt.xml
index c01d764cff..9b34644757 100644
--- a/doc/classes/SkeletonModification3DLookAt.xml
+++ b/doc/classes/SkeletonModification3DLookAt.xml
@@ -61,6 +61,4 @@
The NodePath to the node that is the target for the modification.
</member>
</members>
- <constants>
- </constants>
</class>
diff --git a/doc/classes/SkeletonModification3DStackHolder.xml b/doc/classes/SkeletonModification3DStackHolder.xml
index bb923b680d..138f9818ab 100644
--- a/doc/classes/SkeletonModification3DStackHolder.xml
+++ b/doc/classes/SkeletonModification3DStackHolder.xml
@@ -24,6 +24,4 @@
</description>
</method>
</methods>
- <constants>
- </constants>
</class>
diff --git a/doc/classes/SkeletonModification3DTwoBoneIK.xml b/doc/classes/SkeletonModification3DTwoBoneIK.xml
index 5c863367df..80f8ba4e5b 100644
--- a/doc/classes/SkeletonModification3DTwoBoneIK.xml
+++ b/doc/classes/SkeletonModification3DTwoBoneIK.xml
@@ -188,6 +188,4 @@
The NodePath to the node that is the target for the TwoBoneIK modification. This node is what the modification will attempt to rotate the bones to reach.
</member>
</members>
- <constants>
- </constants>
</class>
diff --git a/doc/classes/SkeletonModificationStack2D.xml b/doc/classes/SkeletonModificationStack2D.xml
index 97b8e3b945..9b96c9e6d5 100644
--- a/doc/classes/SkeletonModificationStack2D.xml
+++ b/doc/classes/SkeletonModificationStack2D.xml
@@ -86,6 +86,4 @@
The interpolation strength of the modifications in stack. A value of [code]0[/code] will make it where the modifications are not applied, a strength of [code]0.5[/code] will be half applied, and a strength of [code]1[/code] will allow the modifications to be fully applied and override the [Skeleton2D] [Bone2D] poses.
</member>
</members>
- <constants>
- </constants>
</class>
diff --git a/doc/classes/SkeletonModificationStack3D.xml b/doc/classes/SkeletonModificationStack3D.xml
index 4e5e9d72d8..4035e39410 100644
--- a/doc/classes/SkeletonModificationStack3D.xml
+++ b/doc/classes/SkeletonModificationStack3D.xml
@@ -85,6 +85,4 @@
The interpolation strength of the modifications in stack. A value of [code]0[/code] will make it where the modifications are not applied, a strength of [code]0.5[/code] will be half applied, and a strength of [code]1[/code] will allow the modifications to be fully applied and override the skeleton bone poses.
</member>
</members>
- <constants>
- </constants>
</class>
diff --git a/doc/classes/Skin.xml b/doc/classes/Skin.xml
index 67ca36f4d6..d24963a887 100644
--- a/doc/classes/Skin.xml
+++ b/doc/classes/Skin.xml
@@ -70,6 +70,4 @@
</description>
</method>
</methods>
- <constants>
- </constants>
</class>
diff --git a/doc/classes/SkinReference.xml b/doc/classes/SkinReference.xml
index d0634c543c..f8bbc27363 100644
--- a/doc/classes/SkinReference.xml
+++ b/doc/classes/SkinReference.xml
@@ -18,6 +18,4 @@
</description>
</method>
</methods>
- <constants>
- </constants>
</class>
diff --git a/doc/classes/Sky.xml b/doc/classes/Sky.xml
index d9553a3be3..79a9bd4b31 100644
--- a/doc/classes/Sky.xml
+++ b/doc/classes/Sky.xml
@@ -8,8 +8,6 @@
</description>
<tutorials>
</tutorials>
- <methods>
- </methods>
<members>
<member name="process_mode" type="int" setter="set_process_mode" getter="get_process_mode" enum="Sky.ProcessMode" default="0">
Sets the method for generating the radiance map from the sky. The radiance map is a cubemap with increasingly blurry versions of the sky corresponding to different levels of roughness. Radiance maps can be expensive to calculate. See [enum ProcessMode] for options.
diff --git a/doc/classes/Slider.xml b/doc/classes/Slider.xml
index f18b2ce39f..21a45645b8 100644
--- a/doc/classes/Slider.xml
+++ b/doc/classes/Slider.xml
@@ -9,8 +9,6 @@
</description>
<tutorials>
</tutorials>
- <methods>
- </methods>
<members>
<member name="editable" type="bool" setter="set_editable" getter="is_editable" default="true">
If [code]true[/code], the slider can be interacted with. If [code]false[/code], the value can be changed only by code.
@@ -27,6 +25,4 @@
If [code]true[/code], the slider will display ticks for minimum and maximum values.
</member>
</members>
- <constants>
- </constants>
</class>
diff --git a/doc/classes/SphereMesh.xml b/doc/classes/SphereMesh.xml
index 439fe11861..674b583e3d 100644
--- a/doc/classes/SphereMesh.xml
+++ b/doc/classes/SphereMesh.xml
@@ -8,8 +8,6 @@
</description>
<tutorials>
</tutorials>
- <methods>
- </methods>
<members>
<member name="height" type="float" setter="set_height" getter="get_height" default="2.0">
Full height of the sphere.
@@ -28,6 +26,4 @@
Number of segments along the height of the sphere.
</member>
</members>
- <constants>
- </constants>
</class>
diff --git a/doc/classes/SphereShape3D.xml b/doc/classes/SphereShape3D.xml
index e90493fca2..5f0f5c1052 100644
--- a/doc/classes/SphereShape3D.xml
+++ b/doc/classes/SphereShape3D.xml
@@ -9,13 +9,9 @@
<tutorials>
<link title="3D Physics Tests Demo">https://godotengine.org/asset-library/asset/675</link>
</tutorials>
- <methods>
- </methods>
<members>
<member name="radius" type="float" setter="set_radius" getter="get_radius" default="1.0">
The sphere's radius. The shape's diameter is double the radius.
</member>
</members>
- <constants>
- </constants>
</class>
diff --git a/doc/classes/SpinBox.xml b/doc/classes/SpinBox.xml
index 4303fa52f1..33d2b472b5 100644
--- a/doc/classes/SpinBox.xml
+++ b/doc/classes/SpinBox.xml
@@ -55,9 +55,10 @@
<member name="suffix" type="String" setter="set_suffix" getter="get_suffix" default="&quot;&quot;">
Adds the specified [code]suffix[/code] string after the numerical value of the [SpinBox].
</member>
+ <member name="update_on_text_changed" type="bool" setter="set_update_on_text_changed" getter="get_update_on_text_changed" default="false">
+ Sets the value of the [Range] for this [SpinBox] when the [LineEdit] text is [i]changed[/i] instead of [i]submitted[/i]. See [signal LineEdit.text_changed] and [signal LineEdit.text_submitted].
+ </member>
</members>
- <constants>
- </constants>
<theme_items>
<theme_item name="updown" data_type="icon" type="Texture2D">
Sets a custom [Texture2D] for up and down arrows of the [SpinBox].
diff --git a/doc/classes/SpotLight3D.xml b/doc/classes/SpotLight3D.xml
index fde40ba6de..8c10ec36a8 100644
--- a/doc/classes/SpotLight3D.xml
+++ b/doc/classes/SpotLight3D.xml
@@ -10,8 +10,6 @@
<link title="3D lights and shadows">https://docs.godotengine.org/en/latest/tutorials/3d/lights_and_shadows.html</link>
<link title="Third Person Shooter Demo">https://godotengine.org/asset-library/asset/678</link>
</tutorials>
- <methods>
- </methods>
<members>
<member name="shadow_bias" type="float" setter="set_param" getter="get_param" override="true" default="0.03" />
<member name="spot_angle" type="float" setter="set_param" getter="get_param" default="45.0">
@@ -27,6 +25,4 @@
The maximal range that can be reached by the spotlight. Note that the effectively lit area may appear to be smaller depending on the [member spot_attenuation] in use. No matter the [member spot_attenuation] in use, the light will never reach anything outside this range.
</member>
</members>
- <constants>
- </constants>
</class>
diff --git a/doc/classes/SpringArm3D.xml b/doc/classes/SpringArm3D.xml
index 50aa3d39b8..2cd8fa71cf 100644
--- a/doc/classes/SpringArm3D.xml
+++ b/doc/classes/SpringArm3D.xml
@@ -57,6 +57,4 @@
To know more about how to perform a shape cast or a ray cast, please consult the [PhysicsDirectSpaceState3D] documentation.
</member>
</members>
- <constants>
- </constants>
</class>
diff --git a/doc/classes/Sprite2D.xml b/doc/classes/Sprite2D.xml
index 0b26fdc055..b9d13a1287 100644
--- a/doc/classes/Sprite2D.xml
+++ b/doc/classes/Sprite2D.xml
@@ -98,6 +98,4 @@
</description>
</signal>
</signals>
- <constants>
- </constants>
</class>
diff --git a/doc/classes/Sprite3D.xml b/doc/classes/Sprite3D.xml
index ddb9d543e8..5a7fd537e0 100644
--- a/doc/classes/Sprite3D.xml
+++ b/doc/classes/Sprite3D.xml
@@ -8,8 +8,6 @@
</description>
<tutorials>
</tutorials>
- <methods>
- </methods>
<members>
<member name="frame" type="int" setter="set_frame" getter="get_frame" default="0">
Current frame to display from sprite sheet. [member hframes] or [member vframes] must be greater than 1.
@@ -39,6 +37,4 @@
</description>
</signal>
</signals>
- <constants>
- </constants>
</class>
diff --git a/doc/classes/SpriteFrames.xml b/doc/classes/SpriteFrames.xml
index 3bd40ff6f4..660afb5a89 100644
--- a/doc/classes/SpriteFrames.xml
+++ b/doc/classes/SpriteFrames.xml
@@ -135,6 +135,4 @@
Compatibility property, always equals to an empty array.
</member>
</members>
- <constants>
- </constants>
</class>
diff --git a/doc/classes/StandardMaterial3D.xml b/doc/classes/StandardMaterial3D.xml
index 4ed9146e0f..8a36a734f1 100644
--- a/doc/classes/StandardMaterial3D.xml
+++ b/doc/classes/StandardMaterial3D.xml
@@ -6,8 +6,4 @@
</description>
<tutorials>
</tutorials>
- <methods>
- </methods>
- <constants>
- </constants>
</class>
diff --git a/doc/classes/StaticBody2D.xml b/doc/classes/StaticBody2D.xml
index 9cbe0bdb40..0a90f430e6 100644
--- a/doc/classes/StaticBody2D.xml
+++ b/doc/classes/StaticBody2D.xml
@@ -12,8 +12,6 @@
</description>
<tutorials>
</tutorials>
- <methods>
- </methods>
<members>
<member name="constant_angular_velocity" type="float" setter="set_constant_angular_velocity" getter="get_constant_angular_velocity" default="0.0">
The body's constant angular velocity. This does not rotate the body, but affects touching bodies, as if it were rotating.
@@ -26,6 +24,4 @@
If a material is assigned to this property, it will be used instead of any other physics material, such as an inherited one.
</member>
</members>
- <constants>
- </constants>
</class>
diff --git a/doc/classes/StaticBody3D.xml b/doc/classes/StaticBody3D.xml
index 6e2377def0..d1ef8cd321 100644
--- a/doc/classes/StaticBody3D.xml
+++ b/doc/classes/StaticBody3D.xml
@@ -15,8 +15,6 @@
<link title="Third Person Shooter Demo">https://godotengine.org/asset-library/asset/678</link>
<link title="3D Voxel Demo">https://godotengine.org/asset-library/asset/676</link>
</tutorials>
- <methods>
- </methods>
<members>
<member name="constant_angular_velocity" type="Vector3" setter="set_constant_angular_velocity" getter="get_constant_angular_velocity" default="Vector3(0, 0, 0)">
The body's constant angular velocity. This does not rotate the body, but affects touching bodies, as if it were rotating.
@@ -29,6 +27,4 @@
If a material is assigned to this property, it will be used instead of any other physics material, such as an inherited one.
</member>
</members>
- <constants>
- </constants>
</class>
diff --git a/doc/classes/StreamCubemap.xml b/doc/classes/StreamCubemap.xml
index 16648266eb..2e7ee8e6db 100644
--- a/doc/classes/StreamCubemap.xml
+++ b/doc/classes/StreamCubemap.xml
@@ -6,8 +6,4 @@
</description>
<tutorials>
</tutorials>
- <methods>
- </methods>
- <constants>
- </constants>
</class>
diff --git a/doc/classes/StreamCubemapArray.xml b/doc/classes/StreamCubemapArray.xml
index b84973fd14..326226b5ab 100644
--- a/doc/classes/StreamCubemapArray.xml
+++ b/doc/classes/StreamCubemapArray.xml
@@ -6,8 +6,4 @@
</description>
<tutorials>
</tutorials>
- <methods>
- </methods>
- <constants>
- </constants>
</class>
diff --git a/doc/classes/StreamPeer.xml b/doc/classes/StreamPeer.xml
index e3d77d22c5..0622626846 100644
--- a/doc/classes/StreamPeer.xml
+++ b/doc/classes/StreamPeer.xml
@@ -5,6 +5,7 @@
</brief_description>
<description>
StreamPeer is an abstraction and base class for stream-based protocols (such as TCP). It provides an API for sending and receiving data through streams as raw data or strings.
+ [b]Note:[/b] When exporting to Android, make sure to enable the [code]INTERNET[/code] permission in the Android export preset before exporting the project or using one-click deploy. Otherwise, network communication of any kind will be blocked by Android.
</description>
<tutorials>
</tutorials>
@@ -241,6 +242,4 @@
If [code]true[/code], this [StreamPeer] will using big-endian format for encoding and decoding.
</member>
</members>
- <constants>
- </constants>
</class>
diff --git a/doc/classes/StreamPeerBuffer.xml b/doc/classes/StreamPeerBuffer.xml
index 62476ca166..989864760f 100644
--- a/doc/classes/StreamPeerBuffer.xml
+++ b/doc/classes/StreamPeerBuffer.xml
@@ -44,6 +44,4 @@
<member name="data_array" type="PackedByteArray" setter="set_data_array" getter="get_data_array" default="PackedByteArray()">
</member>
</members>
- <constants>
- </constants>
</class>
diff --git a/doc/classes/StreamPeerExtension.xml b/doc/classes/StreamPeerExtension.xml
new file mode 100644
index 0000000000..ceb9486a33
--- /dev/null
+++ b/doc/classes/StreamPeerExtension.xml
@@ -0,0 +1,48 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<class name="StreamPeerExtension" inherits="StreamPeer" version="4.0">
+ <brief_description>
+ </brief_description>
+ <description>
+ </description>
+ <tutorials>
+ </tutorials>
+ <methods>
+ <method name="_get_available_bytes" qualifiers="virtual const">
+ <return type="int" />
+ <description>
+ </description>
+ </method>
+ <method name="_get_data" qualifiers="virtual">
+ <return type="int" />
+ <argument index="0" name="r_buffer" type="uint8_t*" />
+ <argument index="1" name="r_bytes" type="int" />
+ <argument index="2" name="r_received" type="int32_t*" />
+ <description>
+ </description>
+ </method>
+ <method name="_get_partial_data" qualifiers="virtual">
+ <return type="int" />
+ <argument index="0" name="r_buffer" type="uint8_t*" />
+ <argument index="1" name="r_bytes" type="int" />
+ <argument index="2" name="r_received" type="int32_t*" />
+ <description>
+ </description>
+ </method>
+ <method name="_put_data" qualifiers="virtual">
+ <return type="int" />
+ <argument index="0" name="p_data" type="const uint8_t*" />
+ <argument index="1" name="p_bytes" type="int" />
+ <argument index="2" name="r_sent" type="int32_t*" />
+ <description>
+ </description>
+ </method>
+ <method name="_put_partial_data" qualifiers="virtual">
+ <return type="int" />
+ <argument index="0" name="p_data" type="const uint8_t*" />
+ <argument index="1" name="p_bytes" type="int" />
+ <argument index="2" name="r_sent" type="int32_t*" />
+ <description>
+ </description>
+ </method>
+ </methods>
+</class>
diff --git a/doc/classes/StreamPeerSSL.xml b/doc/classes/StreamPeerSSL.xml
index 034168c2a0..50389f912d 100644
--- a/doc/classes/StreamPeerSSL.xml
+++ b/doc/classes/StreamPeerSSL.xml
@@ -5,6 +5,7 @@
</brief_description>
<description>
SSL stream peer. This object can be used to connect to an SSL server or accept a single SSL client connection.
+ [b]Note:[/b] When exporting to Android, make sure to enable the [code]INTERNET[/code] permission in the Android export preset before exporting the project or using one-click deploy. Otherwise, network communication of any kind will be blocked by Android.
</description>
<tutorials>
<link title="SSL certificates">https://docs.godotengine.org/en/latest/tutorials/networking/ssl_certificates.html</link>
diff --git a/doc/classes/StreamPeerTCP.xml b/doc/classes/StreamPeerTCP.xml
index bba48e7275..6b700593a2 100644
--- a/doc/classes/StreamPeerTCP.xml
+++ b/doc/classes/StreamPeerTCP.xml
@@ -5,6 +5,7 @@
</brief_description>
<description>
TCP stream peer. This object can be used to connect to TCP servers, or also is returned by a TCP server.
+ [b]Note:[/b] When exporting to Android, make sure to enable the [code]INTERNET[/code] permission in the Android export preset before exporting the project or using one-click deploy. Otherwise, network communication of any kind will be blocked by Android.
</description>
<tutorials>
</tutorials>
diff --git a/doc/classes/StreamTexture2D.xml b/doc/classes/StreamTexture2D.xml
index 7b6c594786..fb32f1e5d9 100644
--- a/doc/classes/StreamTexture2D.xml
+++ b/doc/classes/StreamTexture2D.xml
@@ -22,6 +22,4 @@
The StreamTexture's file path to a [code].stex[/code] file.
</member>
</members>
- <constants>
- </constants>
</class>
diff --git a/doc/classes/StreamTexture2DArray.xml b/doc/classes/StreamTexture2DArray.xml
index ec545b24d0..7ecd3734f7 100644
--- a/doc/classes/StreamTexture2DArray.xml
+++ b/doc/classes/StreamTexture2DArray.xml
@@ -6,8 +6,4 @@
</description>
<tutorials>
</tutorials>
- <methods>
- </methods>
- <constants>
- </constants>
</class>
diff --git a/doc/classes/StreamTexture3D.xml b/doc/classes/StreamTexture3D.xml
index 4b2eb16ba3..1892676935 100644
--- a/doc/classes/StreamTexture3D.xml
+++ b/doc/classes/StreamTexture3D.xml
@@ -18,6 +18,4 @@
<member name="load_path" type="String" setter="load" getter="get_load_path" default="&quot;&quot;">
</member>
</members>
- <constants>
- </constants>
</class>
diff --git a/doc/classes/StreamTextureLayered.xml b/doc/classes/StreamTextureLayered.xml
index 888fb339db..7793bf8420 100644
--- a/doc/classes/StreamTextureLayered.xml
+++ b/doc/classes/StreamTextureLayered.xml
@@ -18,6 +18,4 @@
<member name="load_path" type="String" setter="load" getter="get_load_path" default="&quot;&quot;">
</member>
</members>
- <constants>
- </constants>
</class>
diff --git a/doc/classes/String.xml b/doc/classes/String.xml
index dceaf87afa..0991788483 100644
--- a/doc/classes/String.xml
+++ b/doc/classes/String.xml
@@ -843,6 +843,4 @@
</description>
</method>
</methods>
- <constants>
- </constants>
</class>
diff --git a/doc/classes/StringName.xml b/doc/classes/StringName.xml
index b4289b5564..113195d91c 100644
--- a/doc/classes/StringName.xml
+++ b/doc/classes/StringName.xml
@@ -64,6 +64,4 @@
</description>
</method>
</methods>
- <constants>
- </constants>
</class>
diff --git a/doc/classes/StyleBox.xml b/doc/classes/StyleBox.xml
index 024524251d..6bcd485656 100644
--- a/doc/classes/StyleBox.xml
+++ b/doc/classes/StyleBox.xml
@@ -95,6 +95,4 @@
Refer to [member content_margin_bottom] for extra considerations.
</member>
</members>
- <constants>
- </constants>
</class>
diff --git a/doc/classes/StyleBoxEmpty.xml b/doc/classes/StyleBoxEmpty.xml
index 8781cdcde3..91a9f37f53 100644
--- a/doc/classes/StyleBoxEmpty.xml
+++ b/doc/classes/StyleBoxEmpty.xml
@@ -8,8 +8,4 @@
</description>
<tutorials>
</tutorials>
- <methods>
- </methods>
- <constants>
- </constants>
</class>
diff --git a/doc/classes/StyleBoxFlat.xml b/doc/classes/StyleBoxFlat.xml
index 40f6075528..7bd68aa583 100644
--- a/doc/classes/StyleBoxFlat.xml
+++ b/doc/classes/StyleBoxFlat.xml
@@ -188,6 +188,4 @@
The shadow size in pixels.
</member>
</members>
- <constants>
- </constants>
</class>
diff --git a/doc/classes/StyleBoxLine.xml b/doc/classes/StyleBoxLine.xml
index 850c656720..f2f8679b3e 100644
--- a/doc/classes/StyleBoxLine.xml
+++ b/doc/classes/StyleBoxLine.xml
@@ -8,8 +8,6 @@
</description>
<tutorials>
</tutorials>
- <methods>
- </methods>
<members>
<member name="color" type="Color" setter="set_color" getter="get_color" default="Color(0, 0, 0, 1)">
The line's color.
@@ -27,6 +25,4 @@
If [code]true[/code], the line will be vertical. If [code]false[/code], the line will be horizontal.
</member>
</members>
- <constants>
- </constants>
</class>
diff --git a/doc/classes/SubViewport.xml b/doc/classes/SubViewport.xml
index 9c5610e2c7..28866699f6 100644
--- a/doc/classes/SubViewport.xml
+++ b/doc/classes/SubViewport.xml
@@ -15,8 +15,6 @@
<link title="Dynamic Split Screen Demo">https://godotengine.org/asset-library/asset/541</link>
<link title="3D Viewport Scaling Demo">https://godotengine.org/asset-library/asset/586</link>
</tutorials>
- <methods>
- </methods>
<members>
<member name="render_target_clear_mode" type="int" setter="set_clear_mode" getter="get_clear_mode" enum="SubViewport.ClearMode" default="0">
The clear mode when the sub-viewport is used as a render target.
diff --git a/doc/classes/SubViewportContainer.xml b/doc/classes/SubViewportContainer.xml
index 16d483e7f8..9a4985c98c 100644
--- a/doc/classes/SubViewportContainer.xml
+++ b/doc/classes/SubViewportContainer.xml
@@ -9,8 +9,6 @@
</description>
<tutorials>
</tutorials>
- <methods>
- </methods>
<members>
<member name="stretch" type="bool" setter="set_stretch" getter="is_stretch_enabled" default="false">
If [code]true[/code], the sub-viewport will be scaled to the control's size.
@@ -21,6 +19,4 @@
[b]Note:[/b] [member stretch] must be [code]true[/code] for this property to work.
</member>
</members>
- <constants>
- </constants>
</class>
diff --git a/doc/classes/SyntaxHighlighter.xml b/doc/classes/SyntaxHighlighter.xml
index c478cb0eb6..9bb8aabb1f 100644
--- a/doc/classes/SyntaxHighlighter.xml
+++ b/doc/classes/SyntaxHighlighter.xml
@@ -72,6 +72,4 @@
</description>
</method>
</methods>
- <constants>
- </constants>
</class>
diff --git a/doc/classes/TCPServer.xml b/doc/classes/TCPServer.xml
index 9692693eff..4fbaf9412f 100644
--- a/doc/classes/TCPServer.xml
+++ b/doc/classes/TCPServer.xml
@@ -5,6 +5,7 @@
</brief_description>
<description>
A TCP server. Listens to connections on a port and returns a [StreamPeerTCP] when it gets an incoming connection.
+ [b]Note:[/b] When exporting to Android, make sure to enable the [code]INTERNET[/code] permission in the Android export preset before exporting the project or using one-click deploy. Otherwise, network communication of any kind will be blocked by Android.
</description>
<tutorials>
</tutorials>
@@ -51,6 +52,4 @@
</description>
</method>
</methods>
- <constants>
- </constants>
</class>
diff --git a/doc/classes/TabContainer.xml b/doc/classes/TabContainer.xml
index 77bd7b1a0a..4c50aa4e1f 100644
--- a/doc/classes/TabContainer.xml
+++ b/doc/classes/TabContainer.xml
@@ -6,8 +6,6 @@
<description>
Sets the active tab's [code]visible[/code] property to the value [code]true[/code]. Sets all other children's to [code]false[/code].
Ignores non-[Control] children.
- Individual tabs are always visible unless you use [method set_tab_disabled] and [method set_tab_title] to hide it.
- To hide only a tab's content, nest the content inside a child [Control], so it receives the [TabContainer]'s visibility setting instead.
</description>
<tutorials>
</tutorials>
@@ -50,6 +48,13 @@
Returns [code]true[/code] if the tab at index [code]tab_idx[/code] is disabled.
</description>
</method>
+ <method name="get_tab_hidden" qualifiers="const">
+ <return type="bool" />
+ <argument index="0" name="tab_idx" type="int" />
+ <description>
+ Returns [code]true[/code] if the tab at index [code]tab_idx[/code] is hidden.
+ </description>
+ </method>
<method name="get_tab_icon" qualifiers="const">
<return type="Texture2D" />
<argument index="0" name="tab_idx" type="int" />
@@ -89,8 +94,15 @@
<argument index="0" name="tab_idx" type="int" />
<argument index="1" name="disabled" type="bool" />
<description>
- If [code]disabled[/code] is [code]false[/code], hides the tab at index [code]tab_idx[/code].
- [b]Note:[/b] Its title text will remain, unless also removed with [method set_tab_title].
+ If [code]disabled[/code] is [code]true[/code], disables the tab at index [code]tab_idx[/code], making it non-interactable.
+ </description>
+ </method>
+ <method name="set_tab_hidden">
+ <return type="void" />
+ <argument index="0" name="tab_idx" type="int" />
+ <argument index="1" name="hidden" type="bool" />
+ <description>
+ If [code]hidden[/code] is [code]true[/code], hides the tab at index [code]tab_idx[/code], making it disappear from the tab area.
</description>
</method>
<method name="set_tab_icon">
@@ -106,14 +118,14 @@
<argument index="0" name="tab_idx" type="int" />
<argument index="1" name="title" type="String" />
<description>
- Sets a title for the tab at index [code]tab_idx[/code]. Tab titles default to the name of the indexed child node, but this can be overridden with [method set_tab_title].
+ Sets a title for the tab at index [code]tab_idx[/code]. Tab titles default to the name of the indexed child node.
</description>
</method>
<method name="set_tabs_rearrange_group">
<return type="void" />
<argument index="0" name="group_id" type="int" />
<description>
- Defines rearrange group id, choose for each [TabContainer] the same value to enable tab drag between [TabContainer]. Enable drag with [code]set_drag_to_rearrange_enabled(true)[/code].
+ Defines rearrange group id, choose for each [TabContainer] the same value to enable tab drag between [TabContainer]. Enable drag with [member drag_to_rearrange_enabled].
</description>
</method>
</methods>
diff --git a/doc/classes/Tabs.xml b/doc/classes/Tabs.xml
index f4c89a8b16..3ee3feb365 100644
--- a/doc/classes/Tabs.xml
+++ b/doc/classes/Tabs.xml
@@ -108,7 +108,7 @@
<return type="String" />
<argument index="0" name="tab_idx" type="int" />
<description>
- Returns the title of the tab at index [code]tab_idx[/code]. Tab titles default to the name of the indexed child node, but this can be overridden with [method set_tab_title].
+ Returns the title of the tab at index [code]tab_idx[/code].
</description>
</method>
<method name="get_tabs_rearrange_group" qualifiers="const">
@@ -144,8 +144,7 @@
<argument index="0" name="tab_idx" type="int" />
<argument index="1" name="disabled" type="bool" />
<description>
- If [code]disabled[/code] is [code]false[/code], hides the tab at index [code]tab_idx[/code].
- [b]Note:[/b] Its title text will remain unless it is also removed with [method set_tab_title].
+ If [code]disabled[/code] is [code]true[/code], disables the tab at index [code]tab_idx[/code], making it non-interactable.
</description>
</method>
<method name="set_tab_icon">
@@ -193,7 +192,7 @@
<return type="void" />
<argument index="0" name="group_id" type="int" />
<description>
- Defines the rearrange group ID. Choose for each [Tabs] the same value to dragging tabs between [Tabs]. Enable drag with [code]set_drag_to_rearrange_enabled(true)[/code].
+ Defines the rearrange group ID. Choose for each [Tabs] the same value to dragging tabs between [Tabs]. Enable drag with [member drag_to_rearrange_enabled].
</description>
</method>
</methods>
diff --git a/doc/classes/TextEdit.xml b/doc/classes/TextEdit.xml
index abb4119584..6a38c1a117 100644
--- a/doc/classes/TextEdit.xml
+++ b/doc/classes/TextEdit.xml
@@ -1212,6 +1212,12 @@
<theme_item name="read_only" data_type="style" type="StyleBox">
Sets the [StyleBox] of this [TextEdit] when [member editable] is disabled.
</theme_item>
+ <theme_item name="search_result_border_color" data_type="color" type="Color" default="Color(0.3, 0.3, 0.3, 0.4)">
+ [Color] of the border around text that matches the search query.
+ </theme_item>
+ <theme_item name="search_result_color" data_type="color" type="Color" default="Color(0.3, 0.3, 0.3, 1)">
+ [Color] behind the text that matches the search query.
+ </theme_item>
<theme_item name="selection_color" data_type="color" type="Color" default="Color(0.49, 0.49, 0.49, 1)">
Sets the highlight [Color] of text selections.
</theme_item>
diff --git a/doc/classes/TextServer.xml b/doc/classes/TextServer.xml
index 661c4f05ef..7fe9278f2c 100644
--- a/doc/classes/TextServer.xml
+++ b/doc/classes/TextServer.xml
@@ -1247,6 +1247,12 @@
<constant name="GRAPHEME_IS_PUNCTUATION" value="256" enum="GraphemeFlag">
Grapheme is punctuation character.
</constant>
+ <constant name="GRAPHEME_IS_UNDERSCORE" value="512" enum="GraphemeFlag">
+ Grapheme is underscore character.
+ </constant>
+ <constant name="GRAPHEME_IS_CONNECTED" value="1024" enum="GraphemeFlag">
+ Grapheme is connected to the previous grapheme. Breaking line before this grapheme is not safe.
+ </constant>
<constant name="HINTING_NONE" value="0" enum="Hinting">
Disables font hinting (smoother but less crisp).
</constant>
diff --git a/doc/classes/TextServerManager.xml b/doc/classes/TextServerManager.xml
index b1dd314544..0e7b6d15d3 100644
--- a/doc/classes/TextServerManager.xml
+++ b/doc/classes/TextServerManager.xml
@@ -64,6 +64,4 @@
</description>
</method>
</methods>
- <constants>
- </constants>
</class>
diff --git a/doc/classes/Texture.xml b/doc/classes/Texture.xml
index e19d611ea9..3387de30b7 100644
--- a/doc/classes/Texture.xml
+++ b/doc/classes/Texture.xml
@@ -6,8 +6,4 @@
</description>
<tutorials>
</tutorials>
- <methods>
- </methods>
- <constants>
- </constants>
</class>
diff --git a/doc/classes/Texture2D.xml b/doc/classes/Texture2D.xml
index bf5ddeb4ab..b77365e2df 100644
--- a/doc/classes/Texture2D.xml
+++ b/doc/classes/Texture2D.xml
@@ -76,6 +76,4 @@
</description>
</method>
</methods>
- <constants>
- </constants>
</class>
diff --git a/doc/classes/Texture2DArray.xml b/doc/classes/Texture2DArray.xml
index bb9283803d..bbadbc29a1 100644
--- a/doc/classes/Texture2DArray.xml
+++ b/doc/classes/Texture2DArray.xml
@@ -6,8 +6,4 @@
</description>
<tutorials>
</tutorials>
- <methods>
- </methods>
- <constants>
- </constants>
</class>
diff --git a/doc/classes/Texture3D.xml b/doc/classes/Texture3D.xml
index 8ba0d7d4b9..51cd377648 100644
--- a/doc/classes/Texture3D.xml
+++ b/doc/classes/Texture3D.xml
@@ -38,6 +38,4 @@
</description>
</method>
</methods>
- <constants>
- </constants>
</class>
diff --git a/doc/classes/TextureButton.xml b/doc/classes/TextureButton.xml
index 70bf138f27..2be27617ab 100644
--- a/doc/classes/TextureButton.xml
+++ b/doc/classes/TextureButton.xml
@@ -11,8 +11,6 @@
<tutorials>
<link title="3D Voxel Demo">https://godotengine.org/asset-library/asset/676</link>
</tutorials>
- <methods>
- </methods>
<members>
<member name="expand" type="bool" setter="set_expand" getter="get_expand" default="false">
If [code]true[/code], the texture stretches to the edges of the node's bounding rectangle using the [member stretch_mode]. If [code]false[/code], the texture will not scale with the node.
diff --git a/doc/classes/TextureRect.xml b/doc/classes/TextureRect.xml
index 743e7f6d1e..4f18f43ddf 100644
--- a/doc/classes/TextureRect.xml
+++ b/doc/classes/TextureRect.xml
@@ -9,8 +9,6 @@
<tutorials>
<link title="3D Voxel Demo">https://godotengine.org/asset-library/asset/676</link>
</tutorials>
- <methods>
- </methods>
<members>
<member name="expand" type="bool" setter="set_expand" getter="has_expand" default="false">
If [code]true[/code], the texture scales to fit its bounding rectangle.
diff --git a/doc/classes/Thread.xml b/doc/classes/Thread.xml
index 9c9119c664..ae5c0761b1 100644
--- a/doc/classes/Thread.xml
+++ b/doc/classes/Thread.xml
@@ -27,12 +27,11 @@
</method>
<method name="start">
<return type="int" enum="Error" />
- <argument index="0" name="instance" type="Object" />
- <argument index="1" name="method" type="StringName" />
- <argument index="2" name="userdata" type="Variant" default="null" />
- <argument index="3" name="priority" type="int" enum="Thread.Priority" default="1" />
+ <argument index="0" name="callable" type="Callable" />
+ <argument index="1" name="userdata" type="Variant" default="null" />
+ <argument index="2" name="priority" type="int" enum="Thread.Priority" default="1" />
<description>
- Starts a new [Thread] that runs [code]method[/code] on object [code]instance[/code] with [code]userdata[/code] passed as an argument. Even if no userdata is passed, [code]method[/code] must accept one argument and it will be null. The [code]priority[/code] of the [Thread] can be changed by passing a value from the [enum Priority] enum.
+ Starts a new [Thread] that calls [code]callable[/code] with [code]userdata[/code] passed as an argument. Even if no userdata is passed, [code]method[/code] must accept one argument and it will be null. The [code]priority[/code] of the [Thread] can be changed by passing a value from the [enum Priority] enum.
Returns [constant OK] on success, or [constant ERR_CANT_CREATE] on failure.
</description>
</method>
diff --git a/doc/classes/TileData.xml b/doc/classes/TileData.xml
index b18ca29a8c..81c5743ccc 100644
--- a/doc/classes/TileData.xml
+++ b/doc/classes/TileData.xml
@@ -37,6 +37,20 @@
Returns how many polygons the tile has for TileSet physics layer with index [code]layer_id[/code].
</description>
</method>
+ <method name="get_constant_angular_velocity" qualifiers="const">
+ <return type="float" />
+ <argument index="0" name="layer_id" type="int" />
+ <description>
+ Returns the constant angular velocity applied to objects colliding with this tile.
+ </description>
+ </method>
+ <method name="get_constant_linear_velocity" qualifiers="const">
+ <return type="Vector2" />
+ <argument index="0" name="layer_id" type="int" />
+ <description>
+ Returns the constant linear velocity applied to objects colliding with this tile.
+ </description>
+ </method>
<method name="get_custom_data" qualifiers="const">
<return type="Variant" />
<argument index="0" name="layer_name" type="String" />
@@ -123,6 +137,22 @@
Sets the polygons count for TileSet physics layer with index [code]layer_id[/code].
</description>
</method>
+ <method name="set_constant_angular_velocity">
+ <return type="void" />
+ <argument index="0" name="layer_id" type="int" />
+ <argument index="1" name="velocity" type="float" />
+ <description>
+ Sets the constant angular velocity. This does not rotate the tile. This angular velocity is applied to objects colliding with this tile.
+ </description>
+ </method>
+ <method name="set_constant_linear_velocity">
+ <return type="void" />
+ <argument index="0" name="layer_id" type="int" />
+ <argument index="1" name="velocity" type="Vector2" />
+ <description>
+ Sets the constant linear velocity. This does not move the tile. This linear velocity is applied to objects colliding with this tile. This is useful to create conveyor belts.
+ </description>
+ </method>
<method name="set_custom_data">
<return type="void" />
<argument index="0" name="layer_name" type="String" />
@@ -192,6 +222,4 @@
</description>
</signal>
</signals>
- <constants>
- </constants>
</class>
diff --git a/doc/classes/TileMap.xml b/doc/classes/TileMap.xml
index 4621d138ac..e5fe823be6 100644
--- a/doc/classes/TileMap.xml
+++ b/doc/classes/TileMap.xml
@@ -29,6 +29,13 @@
Clears all cells.
</description>
</method>
+ <method name="clear_layer">
+ <return type="void" />
+ <argument index="0" name="layer" type="int" />
+ <description>
+ Clears all cells on the given layer.
+ </description>
+ </method>
<method name="fix_invalid_tiles">
<return type="void" />
<description>
@@ -62,6 +69,13 @@
Returns the tile source ID of the cell on layer [code]layer[/code] at coordinates [code]coords[/code]. If [code]use_proxies[/code] is [code]false[/code], ignores the [TileSet]'s tile proxies, returning the raw alternative identifier. See [method TileSet.map_tile_proxy].
</description>
</method>
+ <method name="get_coords_for_body_rid">
+ <return type="Vector2i" />
+ <argument index="0" name="body" type="RID" />
+ <description>
+ Returns the coodinates of the tile for given physics body RID. Such RID can be retrieved from [member KinematicCollision2D.collider_rid], when colliding with a tile.
+ </description>
+ </method>
<method name="get_layer_name" qualifiers="const">
<return type="String" />
<argument index="0" name="layer" type="int" />
@@ -220,6 +234,10 @@
<member name="cell_quadrant_size" type="int" setter="set_quadrant_size" getter="get_quadrant_size" default="16">
The TileMap's quadrant size. Optimizes drawing by batching, using chunks of this size.
</member>
+ <member name="collision_animatable" type="bool" setter="set_collision_animatable" getter="is_collision_animatable" default="false">
+ If enabled, the TileMap will see its collisions synced to the physics tick and change its collision type from static to kinematic. This is required to create TileMap-based moving platform.
+ [b]Note:[/b] Enabling [code]collision_animatable[/code] may have a small performance impact, only do it if the TileMap is moving and has colliding tiles.
+ </member>
<member name="collision_visibility_mode" type="int" setter="set_collision_visibility_mode" getter="get_collision_visibility_mode" enum="TileMap.VisibilityMode" default="0">
Show or hide the TileMap's collision shapes. If set to [code]VISIBILITY_MODE_DEFAULT[/code], this depends on the show collision debug settings.
</member>
diff --git a/doc/classes/TileSetAtlasSource.xml b/doc/classes/TileSetAtlasSource.xml
index fd3dbd1e4d..d12ac840f4 100644
--- a/doc/classes/TileSetAtlasSource.xml
+++ b/doc/classes/TileSetAtlasSource.xml
@@ -15,16 +15,6 @@
<tutorials>
</tutorials>
<methods>
- <method name="can_move_tile_in_atlas" qualifiers="const">
- <return type="bool" />
- <argument index="0" name="atlas_coords" type="Vector2i" />
- <argument index="1" name="new_atlas_coords" type="Vector2i" default="Vector2i(-1, -1)" />
- <argument index="2" name="new_size" type="Vector2i" default="Vector2i(-1, -1)" />
- <description>
- Returns true if the tile at the [code]atlas_coords[/code] coordinates can be moved to the [code]new_atlas_coords[/code] coordinates with the [code]new_size[/code] size. This functions returns false if a tile is already present in the given area, or if this area is outside the atlas boundaries.
- If [code]new_atlas_coords[/code] is [code]Vector2i(-1, -1)[/code], keeps the tile's coordinates. If [code]new_size[/code] is [code]Vector2i(-1, -1)[/code], keeps the tile's size.
- </description>
- </method>
<method name="clear_tiles_outside_texture">
<return type="void" />
<description>
@@ -61,6 +51,49 @@
Returns the alternative ID a following call to [method create_alternative_tile] would return.
</description>
</method>
+ <method name="get_tile_animation_columns" qualifiers="const">
+ <return type="int" />
+ <argument index="0" name="atlas_coords" type="Vector2i" />
+ <description>
+ Returns how many columns the tile at [code]atlas_coords[/code] has in its animation layout.
+ </description>
+ </method>
+ <method name="get_tile_animation_frame_duration" qualifiers="const">
+ <return type="float" />
+ <argument index="0" name="atlas_coords" type="Vector2i" />
+ <argument index="1" name="frame_index" type="int" />
+ <description>
+ Returns the animation frame duration of frame [code]frame_index[/code] for the tile at coordinates [code]atlas_coords[/code].
+ </description>
+ </method>
+ <method name="get_tile_animation_frames_count" qualifiers="const">
+ <return type="int" />
+ <argument index="0" name="atlas_coords" type="Vector2i" />
+ <description>
+ Returns how many animation frames has the tile at coordinates [code]atlas_coords[/code].
+ </description>
+ </method>
+ <method name="get_tile_animation_separation" qualifiers="const">
+ <return type="Vector2i" />
+ <argument index="0" name="atlas_coords" type="Vector2i" />
+ <description>
+ Returns the separation (as in the atlas grid) between each frame of an animated tile at coordinates [code]atlas_coords[/code].
+ </description>
+ </method>
+ <method name="get_tile_animation_speed" qualifiers="const">
+ <return type="float" />
+ <argument index="0" name="atlas_coords" type="Vector2i" />
+ <description>
+ Returns the animation speed of the tile at coordinates [code]atlas_coords[/code].
+ </description>
+ </method>
+ <method name="get_tile_animation_total_duration" qualifiers="const">
+ <return type="float" />
+ <argument index="0" name="atlas_coords" type="Vector2i" />
+ <description>
+ Returns the sum of the sum of the frame durations of the tile at coordinates [code]atlas_coords[/code]. This value needs to be divided by the animation speed to get the actual animation loop duration.
+ </description>
+ </method>
<method name="get_tile_at_coords" qualifiers="const">
<return type="Vector2i" />
<argument index="0" name="atlas_coords" type="Vector2i" />
@@ -86,8 +119,21 @@
<method name="get_tile_texture_region" qualifiers="const">
<return type="Rect2i" />
<argument index="0" name="atlas_coords" type="Vector2i" />
+ <argument index="1" name="frame" type="int" default="0" />
+ <description>
+ Returns a tile's texture region in the atlas texture. For animated tiles, a [code]frame[/code] argument might be provided for the different frames of the animation.
+ </description>
+ </method>
+ <method name="has_room_for_tile" qualifiers="const">
+ <return type="bool" />
+ <argument index="0" name="atlas_coords" type="Vector2i" />
+ <argument index="1" name="size" type="Vector2i" />
+ <argument index="2" name="animation_columns" type="int" />
+ <argument index="3" name="animation_separation" type="Vector2i" />
+ <argument index="4" name="frames_count" type="int" />
+ <argument index="5" name="ignored_tile" type="Vector2i" default="Vector2i(-1, -1)" />
<description>
- Returns a tile's texture region in the atlas texture.
+ Returns whether there is enough room in an atlas to create/modify a tile with the given properties. If [code]ignored_tile[/code] is provided, act as is the given tile was not present in the atlas. This may be used when you want to modify a tile's properties.
</description>
</method>
<method name="has_tiles_outside_texture">
@@ -104,7 +150,7 @@
<description>
Move the tile and its alternatives at the [code]atlas_coords[/code] coordinates to the [code]new_atlas_coords[/code] coordinates with the [code]new_size[/code] size. This functions will fail if a tile is already present in the given area.
If [code]new_atlas_coords[/code] is [code]Vector2i(-1, -1)[/code], keeps the tile's coordinates. If [code]new_size[/code] is [code]Vector2i(-1, -1)[/code], keeps the tile's size.
- To avoid an error, first check if a move is possible using [method can_move_tile_in_atlas].
+ To avoid an error, first check if a move is possible using [method has_room_for_tile].
</description>
</method>
<method name="remove_alternative_tile">
@@ -133,6 +179,47 @@
Calling this function with [code]alternative_id[/code] equals to 0 will fail, as the base tile alternative cannot be moved.
</description>
</method>
+ <method name="set_tile_animation_columns">
+ <return type="void" />
+ <argument index="0" name="atlas_coords" type="Vector2i" />
+ <argument index="1" name="frame_columns" type="int" />
+ <description>
+ Sets the number of columns in the animation layout of the tile at coordinates [code]atlas_coords[/code]. If set to 0, then the different frames of the animation are laid out as a single horizontal line in the atlas.
+ </description>
+ </method>
+ <method name="set_tile_animation_frame_duration">
+ <return type="void" />
+ <argument index="0" name="atlas_coords" type="Vector2i" />
+ <argument index="1" name="frame_index" type="int" />
+ <argument index="2" name="duration" type="float" />
+ <description>
+ Sets the animation frame duration of frame [code]frame_index[/code] for the tile at coordinates [code]atlas_coords[/code].
+ </description>
+ </method>
+ <method name="set_tile_animation_frames_count">
+ <return type="void" />
+ <argument index="0" name="atlas_coords" type="Vector2i" />
+ <argument index="1" name="frames_count" type="int" />
+ <description>
+ Sets how many animation frames the tile at coordinates [code]atlas_coords[/code] has.
+ </description>
+ </method>
+ <method name="set_tile_animation_separation">
+ <return type="void" />
+ <argument index="0" name="atlas_coords" type="Vector2i" />
+ <argument index="1" name="separation" type="Vector2i" />
+ <description>
+ Sets the margin (in grid tiles) between each tile in the animation layout of the tile at coordinates [code]atlas_coords[/code] has.
+ </description>
+ </method>
+ <method name="set_tile_animation_speed">
+ <return type="void" />
+ <argument index="0" name="atlas_coords" type="Vector2i" />
+ <argument index="1" name="speed" type="float" />
+ <description>
+ Sets the animation speed of the tile at coordinates [code]atlas_coords[/code] has.
+ </description>
+ </method>
</methods>
<members>
<member name="margins" type="Vector2i" setter="set_margins" getter="get_margins" default="Vector2i(0, 0)">
@@ -148,6 +235,4 @@
The base tile size in the texture (in pixel). This size must be bigger than the TileSet's [code]tile_size[/code] value.
</member>
</members>
- <constants>
- </constants>
</class>
diff --git a/doc/classes/TileSetScenesCollectionSource.xml b/doc/classes/TileSetScenesCollectionSource.xml
index 119a04c25f..3451519ff6 100644
--- a/doc/classes/TileSetScenesCollectionSource.xml
+++ b/doc/classes/TileSetScenesCollectionSource.xml
@@ -91,6 +91,4 @@
</description>
</method>
</methods>
- <constants>
- </constants>
</class>
diff --git a/doc/classes/TileSetSource.xml b/doc/classes/TileSetSource.xml
index 442d845f6c..ed47684f14 100644
--- a/doc/classes/TileSetSource.xml
+++ b/doc/classes/TileSetSource.xml
@@ -59,6 +59,4 @@
</description>
</method>
</methods>
- <constants>
- </constants>
</class>
diff --git a/doc/classes/Translation.xml b/doc/classes/Translation.xml
index 4b83a2abf5..2a0695d42e 100644
--- a/doc/classes/Translation.xml
+++ b/doc/classes/Translation.xml
@@ -11,6 +11,24 @@
<link title="Locales">https://docs.godotengine.org/en/latest/tutorials/i18n/locales.html</link>
</tutorials>
<methods>
+ <method name="_get_message" qualifiers="virtual const">
+ <return type="StringName" />
+ <argument index="0" name="src_message" type="StringName" />
+ <argument index="1" name="context" type="StringName" />
+ <description>
+ Virtual method to override [method get_message].
+ </description>
+ </method>
+ <method name="_get_plural_message" qualifiers="virtual const">
+ <return type="StringName" />
+ <argument index="0" name="src_message" type="StringName" />
+ <argument index="1" name="src_plural_message" type="StringName" />
+ <argument index="2" name="n" type="int" />
+ <argument index="3" name="context" type="StringName" />
+ <description>
+ Virtual method to override [method get_plural_message].
+ </description>
+ </method>
<method name="add_message">
<return type="void" />
<argument index="0" name="src_message" type="StringName" />
@@ -76,6 +94,4 @@
The locale of the translation.
</member>
</members>
- <constants>
- </constants>
</class>
diff --git a/doc/classes/TranslationServer.xml b/doc/classes/TranslationServer.xml
index a002166664..8a6fa3571a 100644
--- a/doc/classes/TranslationServer.xml
+++ b/doc/classes/TranslationServer.xml
@@ -105,6 +105,4 @@
If [code]true[/code], enables the use of pseudolocalization. See [member ProjectSettings.internationalization/pseudolocalization/use_pseudolocalization] for details.
</member>
</members>
- <constants>
- </constants>
</class>
diff --git a/doc/classes/TriangleMesh.xml b/doc/classes/TriangleMesh.xml
index cfdb6fe33e..f615f7965f 100644
--- a/doc/classes/TriangleMesh.xml
+++ b/doc/classes/TriangleMesh.xml
@@ -8,8 +8,4 @@
</description>
<tutorials>
</tutorials>
- <methods>
- </methods>
- <constants>
- </constants>
</class>
diff --git a/doc/classes/TubeTrailMesh.xml b/doc/classes/TubeTrailMesh.xml
index 2782791a62..2c84a79557 100644
--- a/doc/classes/TubeTrailMesh.xml
+++ b/doc/classes/TubeTrailMesh.xml
@@ -6,8 +6,6 @@
</description>
<tutorials>
</tutorials>
- <methods>
- </methods>
<members>
<member name="curve" type="Curve" setter="set_curve" getter="get_curve">
</member>
@@ -22,6 +20,4 @@
<member name="sections" type="int" setter="set_sections" getter="get_sections" default="5">
</member>
</members>
- <constants>
- </constants>
</class>
diff --git a/doc/classes/Tween.xml b/doc/classes/Tween.xml
index ede6e2fdd5..f94018c96b 100644
--- a/doc/classes/Tween.xml
+++ b/doc/classes/Tween.xml
@@ -86,6 +86,7 @@
[code]initial_value[/code] is the starting value of the interpolation.
[code]delta_value[/code] is the change of the value in the interpolation, i.e. it's equal to [code]final_value - initial_value[/code].
[code]duration[/code] is the total time of the interpolation.
+ [b]Note:[/b] If [code]duration[/code] is equal to [code]0[/code], the method will always return the final value, regardless of [code]elapsed_time[/code] provided.
</description>
</method>
<method name="is_running">
diff --git a/doc/classes/Tweener.xml b/doc/classes/Tweener.xml
index a3279502e0..ad599c4d02 100644
--- a/doc/classes/Tweener.xml
+++ b/doc/classes/Tweener.xml
@@ -8,8 +8,6 @@
</description>
<tutorials>
</tutorials>
- <methods>
- </methods>
<signals>
<signal name="finished">
<description>
@@ -17,6 +15,4 @@
</description>
</signal>
</signals>
- <constants>
- </constants>
</class>
diff --git a/doc/classes/UDPServer.xml b/doc/classes/UDPServer.xml
index eb6d42fb0f..66f752b97a 100644
--- a/doc/classes/UDPServer.xml
+++ b/doc/classes/UDPServer.xml
@@ -173,6 +173,4 @@
Define the maximum number of pending connections, during [method poll], any new pending connection exceeding that value will be automatically dropped. Setting this value to [code]0[/code] effectively prevents any new pending connection to be accepted (e.g. when all your players have connected).
</member>
</members>
- <constants>
- </constants>
</class>
diff --git a/doc/classes/VBoxContainer.xml b/doc/classes/VBoxContainer.xml
index aa6c5fc8a4..b62fb4707e 100644
--- a/doc/classes/VBoxContainer.xml
+++ b/doc/classes/VBoxContainer.xml
@@ -9,10 +9,6 @@
<tutorials>
<link title="3D Voxel Demo">https://godotengine.org/asset-library/asset/676</link>
</tutorials>
- <methods>
- </methods>
- <constants>
- </constants>
<theme_items>
<theme_item name="separation" data_type="constant" type="int" default="4">
The vertical space between the [VBoxContainer]'s elements.
diff --git a/doc/classes/VScrollBar.xml b/doc/classes/VScrollBar.xml
index 519cc9c137..0cf06576f6 100644
--- a/doc/classes/VScrollBar.xml
+++ b/doc/classes/VScrollBar.xml
@@ -8,14 +8,10 @@
</description>
<tutorials>
</tutorials>
- <methods>
- </methods>
<members>
<member name="size_flags_horizontal" type="int" setter="set_h_size_flags" getter="get_h_size_flags" override="true" default="0" />
<member name="size_flags_vertical" type="int" setter="set_v_size_flags" getter="get_v_size_flags" override="true" default="1" />
</members>
- <constants>
- </constants>
<theme_items>
<theme_item name="decrement" data_type="icon" type="Texture2D">
Icon used as a button to scroll the [ScrollBar] up. Supports custom step using the [member ScrollBar.custom_step] property.
diff --git a/doc/classes/VSeparator.xml b/doc/classes/VSeparator.xml
index d59c7229ac..d9299bfe92 100644
--- a/doc/classes/VSeparator.xml
+++ b/doc/classes/VSeparator.xml
@@ -8,10 +8,6 @@
</description>
<tutorials>
</tutorials>
- <methods>
- </methods>
- <constants>
- </constants>
<theme_items>
<theme_item name="separation" data_type="constant" type="int" default="4">
The width of the area covered by the separator. Effectively works like a minimum width.
diff --git a/doc/classes/VSlider.xml b/doc/classes/VSlider.xml
index becf3d1052..286674a9b4 100644
--- a/doc/classes/VSlider.xml
+++ b/doc/classes/VSlider.xml
@@ -9,14 +9,10 @@
</description>
<tutorials>
</tutorials>
- <methods>
- </methods>
<members>
<member name="size_flags_horizontal" type="int" setter="set_h_size_flags" getter="get_h_size_flags" override="true" default="0" />
<member name="size_flags_vertical" type="int" setter="set_v_size_flags" getter="get_v_size_flags" override="true" default="1" />
</members>
- <constants>
- </constants>
<theme_items>
<theme_item name="grabber" data_type="icon" type="Texture2D">
The texture for the grabber (the draggable element).
diff --git a/doc/classes/VSplitContainer.xml b/doc/classes/VSplitContainer.xml
index 143f5b6b0a..323ce1fe80 100644
--- a/doc/classes/VSplitContainer.xml
+++ b/doc/classes/VSplitContainer.xml
@@ -8,10 +8,6 @@
</description>
<tutorials>
</tutorials>
- <methods>
- </methods>
- <constants>
- </constants>
<theme_items>
<theme_item name="autohide" data_type="constant" type="int" default="1">
Boolean value. If 1 ([code]true[/code]), the grabber will hide automatically when it isn't under the cursor. If 0 ([code]false[/code]), it's always visible.
diff --git a/doc/classes/Variant.xml b/doc/classes/Variant.xml
index 240c1c909f..88644e2f8a 100644
--- a/doc/classes/Variant.xml
+++ b/doc/classes/Variant.xml
@@ -74,8 +74,4 @@
<tutorials>
<link title="Variant class">https://docs.godotengine.org/en/latest/development/cpp/variant_class.html</link>
</tutorials>
- <methods>
- </methods>
- <constants>
- </constants>
</class>
diff --git a/doc/classes/VehicleBody3D.xml b/doc/classes/VehicleBody3D.xml
index 21a37f7b53..9315f6e6ad 100644
--- a/doc/classes/VehicleBody3D.xml
+++ b/doc/classes/VehicleBody3D.xml
@@ -11,8 +11,6 @@
<tutorials>
<link title="3D Truck Town Demo">https://godotengine.org/asset-library/asset/524</link>
</tutorials>
- <methods>
- </methods>
<members>
<member name="brake" type="float" setter="set_brake" getter="get_brake" default="0.0">
Slows down the vehicle by applying a braking force. The vehicle is only slowed down if the wheels are in contact with a surface. The force you need to apply to adequately slow down your vehicle depends on the [member RigidDynamicBody3D.mass] of the vehicle. For a vehicle with a mass set to 1000, try a value in the 25 - 30 range for hard braking.
@@ -27,6 +25,4 @@
The steering angle for the vehicle. Setting this to a non-zero value will result in the vehicle turning when it's moving. Wheels that have [member VehicleWheel3D.use_as_steering] set to [code]true[/code] will automatically be rotated.
</member>
</members>
- <constants>
- </constants>
</class>
diff --git a/doc/classes/VehicleWheel3D.xml b/doc/classes/VehicleWheel3D.xml
index 5b4511beab..951f4f8275 100644
--- a/doc/classes/VehicleWheel3D.xml
+++ b/doc/classes/VehicleWheel3D.xml
@@ -77,6 +77,4 @@
This value affects the roll of your vehicle. If set to 1.0 for all wheels, your vehicle will be prone to rolling over, while a value of 0.0 will resist body roll.
</member>
</members>
- <constants>
- </constants>
</class>
diff --git a/doc/classes/VelocityTracker3D.xml b/doc/classes/VelocityTracker3D.xml
index 7e97cad5bf..5d8dcc6742 100644
--- a/doc/classes/VelocityTracker3D.xml
+++ b/doc/classes/VelocityTracker3D.xml
@@ -29,6 +29,4 @@
<member name="track_physics_step" type="bool" setter="set_track_physics_step" getter="is_tracking_physics_step" default="false">
</member>
</members>
- <constants>
- </constants>
</class>
diff --git a/doc/classes/VideoPlayer.xml b/doc/classes/VideoPlayer.xml
index 86b2dd102b..4f60b9d567 100644
--- a/doc/classes/VideoPlayer.xml
+++ b/doc/classes/VideoPlayer.xml
@@ -85,6 +85,4 @@
</description>
</signal>
</signals>
- <constants>
- </constants>
</class>
diff --git a/doc/classes/VideoStream.xml b/doc/classes/VideoStream.xml
index 7f522bfdf0..39fefa8d95 100644
--- a/doc/classes/VideoStream.xml
+++ b/doc/classes/VideoStream.xml
@@ -8,8 +8,4 @@
</description>
<tutorials>
</tutorials>
- <methods>
- </methods>
- <constants>
- </constants>
</class>
diff --git a/doc/classes/ViewportTexture.xml b/doc/classes/ViewportTexture.xml
index 393f1bb0b8..c0cf3b3c7b 100644
--- a/doc/classes/ViewportTexture.xml
+++ b/doc/classes/ViewportTexture.xml
@@ -13,14 +13,10 @@
<link title="2D in 3D Demo">https://godotengine.org/asset-library/asset/129</link>
<link title="3D Viewport Scaling Demo">https://godotengine.org/asset-library/asset/586</link>
</tutorials>
- <methods>
- </methods>
<members>
<member name="resource_local_to_scene" type="bool" setter="set_local_to_scene" getter="is_local_to_scene" override="true" default="true" />
<member name="viewport_path" type="NodePath" setter="set_viewport_path_in_scene" getter="get_viewport_path_in_scene" default="NodePath(&quot;&quot;)">
The path to the [Viewport] node to display. This is relative to the scene root, not to the node which uses the texture.
</member>
</members>
- <constants>
- </constants>
</class>
diff --git a/doc/classes/VisibleOnScreenEnabler2D.xml b/doc/classes/VisibleOnScreenEnabler2D.xml
index c6ae8227d2..523a3a2578 100644
--- a/doc/classes/VisibleOnScreenEnabler2D.xml
+++ b/doc/classes/VisibleOnScreenEnabler2D.xml
@@ -6,8 +6,6 @@
</description>
<tutorials>
</tutorials>
- <methods>
- </methods>
<members>
<member name="enable_mode" type="int" setter="set_enable_mode" getter="get_enable_mode" enum="VisibleOnScreenEnabler2D.EnableMode" default="0">
</member>
diff --git a/doc/classes/VisibleOnScreenEnabler3D.xml b/doc/classes/VisibleOnScreenEnabler3D.xml
index f781ef9749..2000d54d74 100644
--- a/doc/classes/VisibleOnScreenEnabler3D.xml
+++ b/doc/classes/VisibleOnScreenEnabler3D.xml
@@ -11,8 +11,6 @@
</description>
<tutorials>
</tutorials>
- <methods>
- </methods>
<members>
<member name="enable_mode" type="int" setter="set_enable_mode" getter="get_enable_mode" enum="VisibleOnScreenEnabler3D.EnableMode" default="0">
</member>
diff --git a/doc/classes/VisibleOnScreenNotifier2D.xml b/doc/classes/VisibleOnScreenNotifier2D.xml
index 995bd9e9d7..d82e64fa91 100644
--- a/doc/classes/VisibleOnScreenNotifier2D.xml
+++ b/doc/classes/VisibleOnScreenNotifier2D.xml
@@ -36,6 +36,4 @@
</description>
</signal>
</signals>
- <constants>
- </constants>
</class>
diff --git a/doc/classes/VisibleOnScreenNotifier3D.xml b/doc/classes/VisibleOnScreenNotifier3D.xml
index 03db449c80..328db15231 100644
--- a/doc/classes/VisibleOnScreenNotifier3D.xml
+++ b/doc/classes/VisibleOnScreenNotifier3D.xml
@@ -36,6 +36,4 @@
</description>
</signal>
</signals>
- <constants>
- </constants>
</class>
diff --git a/doc/classes/VisualInstance3D.xml b/doc/classes/VisualInstance3D.xml
index f949fbe7c0..bbcf2f4730 100644
--- a/doc/classes/VisualInstance3D.xml
+++ b/doc/classes/VisualInstance3D.xml
@@ -63,6 +63,4 @@
This object will only be visible for [Camera3D]s whose cull mask includes the render object this [VisualInstance3D] is set to.
</member>
</members>
- <constants>
- </constants>
</class>
diff --git a/doc/classes/VisualScriptCustomNodes.xml b/doc/classes/VisualScriptCustomNodes.xml
index 3ef8022f5e..1681da7653 100644
--- a/doc/classes/VisualScriptCustomNodes.xml
+++ b/doc/classes/VisualScriptCustomNodes.xml
@@ -34,6 +34,4 @@
</description>
</signal>
</signals>
- <constants>
- </constants>
</class>
diff --git a/doc/classes/VisualShaderNodeBillboard.xml b/doc/classes/VisualShaderNodeBillboard.xml
index 53bcfa7b5c..77069975ef 100644
--- a/doc/classes/VisualShaderNodeBillboard.xml
+++ b/doc/classes/VisualShaderNodeBillboard.xml
@@ -8,8 +8,6 @@
</description>
<tutorials>
</tutorials>
- <methods>
- </methods>
<members>
<member name="billboard_type" type="int" setter="set_billboard_type" getter="get_billboard_type" enum="VisualShaderNodeBillboard.BillboardType" default="1">
Controls how the object faces the camera. See [enum BillboardType].
diff --git a/doc/classes/VisualShaderNodeBooleanConstant.xml b/doc/classes/VisualShaderNodeBooleanConstant.xml
index 688679f2a3..73a423b93a 100644
--- a/doc/classes/VisualShaderNodeBooleanConstant.xml
+++ b/doc/classes/VisualShaderNodeBooleanConstant.xml
@@ -9,13 +9,9 @@
</description>
<tutorials>
</tutorials>
- <methods>
- </methods>
<members>
<member name="constant" type="bool" setter="set_constant" getter="get_constant" default="false">
A boolean constant which represents a state of this node.
</member>
</members>
- <constants>
- </constants>
</class>
diff --git a/doc/classes/VisualShaderNodeBooleanUniform.xml b/doc/classes/VisualShaderNodeBooleanUniform.xml
index 7d72f13f9d..86f61dde83 100644
--- a/doc/classes/VisualShaderNodeBooleanUniform.xml
+++ b/doc/classes/VisualShaderNodeBooleanUniform.xml
@@ -8,8 +8,6 @@
</description>
<tutorials>
</tutorials>
- <methods>
- </methods>
<members>
<member name="default_value" type="bool" setter="set_default_value" getter="get_default_value" default="false">
A default value to be assigned within the shader.
@@ -18,6 +16,4 @@
Enables usage of the [member default_value].
</member>
</members>
- <constants>
- </constants>
</class>
diff --git a/doc/classes/VisualShaderNodeClamp.xml b/doc/classes/VisualShaderNodeClamp.xml
index 504171bb13..a68cbbec49 100644
--- a/doc/classes/VisualShaderNodeClamp.xml
+++ b/doc/classes/VisualShaderNodeClamp.xml
@@ -8,8 +8,6 @@
</description>
<tutorials>
</tutorials>
- <methods>
- </methods>
<members>
<member name="op_type" type="int" setter="set_op_type" getter="get_op_type" enum="VisualShaderNodeClamp.OpType" default="0">
A type of operands and returned value.
diff --git a/doc/classes/VisualShaderNodeColorConstant.xml b/doc/classes/VisualShaderNodeColorConstant.xml
index fa1a11c488..d9f5167bd6 100644
--- a/doc/classes/VisualShaderNodeColorConstant.xml
+++ b/doc/classes/VisualShaderNodeColorConstant.xml
@@ -9,13 +9,9 @@
</description>
<tutorials>
</tutorials>
- <methods>
- </methods>
<members>
<member name="constant" type="Color" setter="set_constant" getter="get_constant" default="Color(1, 1, 1, 1)">
A [Color] constant which represents a state of this node.
</member>
</members>
- <constants>
- </constants>
</class>
diff --git a/doc/classes/VisualShaderNodeColorFunc.xml b/doc/classes/VisualShaderNodeColorFunc.xml
index 8d410104b8..0d7698f755 100644
--- a/doc/classes/VisualShaderNodeColorFunc.xml
+++ b/doc/classes/VisualShaderNodeColorFunc.xml
@@ -8,8 +8,6 @@
</description>
<tutorials>
</tutorials>
- <methods>
- </methods>
<members>
<member name="function" type="int" setter="set_function" getter="get_function" enum="VisualShaderNodeColorFunc.Function" default="0">
A function to be applied to the input color. See [enum Function] for options.
diff --git a/doc/classes/VisualShaderNodeColorOp.xml b/doc/classes/VisualShaderNodeColorOp.xml
index 55b006b098..378897d3cc 100644
--- a/doc/classes/VisualShaderNodeColorOp.xml
+++ b/doc/classes/VisualShaderNodeColorOp.xml
@@ -8,8 +8,6 @@
</description>
<tutorials>
</tutorials>
- <methods>
- </methods>
<members>
<member name="operator" type="int" setter="set_operator" getter="get_operator" enum="VisualShaderNodeColorOp.Operator" default="0">
An operator to be applied to the inputs. See [enum Operator] for options.
diff --git a/doc/classes/VisualShaderNodeColorUniform.xml b/doc/classes/VisualShaderNodeColorUniform.xml
index bdaf301f09..9c126fe700 100644
--- a/doc/classes/VisualShaderNodeColorUniform.xml
+++ b/doc/classes/VisualShaderNodeColorUniform.xml
@@ -8,8 +8,6 @@
</description>
<tutorials>
</tutorials>
- <methods>
- </methods>
<members>
<member name="default_value" type="Color" setter="set_default_value" getter="get_default_value" default="Color(1, 1, 1, 1)">
A default value to be assigned within the shader.
@@ -18,6 +16,4 @@
Enables usage of the [member default_value].
</member>
</members>
- <constants>
- </constants>
</class>
diff --git a/doc/classes/VisualShaderNodeComment.xml b/doc/classes/VisualShaderNodeComment.xml
index 8970e2fabb..daffd24f93 100644
--- a/doc/classes/VisualShaderNodeComment.xml
+++ b/doc/classes/VisualShaderNodeComment.xml
@@ -8,8 +8,6 @@
</description>
<tutorials>
</tutorials>
- <methods>
- </methods>
<members>
<member name="description" type="String" setter="set_description" getter="get_description" default="&quot;&quot;">
An additional description which placed below the title.
@@ -18,6 +16,4 @@
A title of the node.
</member>
</members>
- <constants>
- </constants>
</class>
diff --git a/doc/classes/VisualShaderNodeCompare.xml b/doc/classes/VisualShaderNodeCompare.xml
index 96bb3df494..49bf952b31 100644
--- a/doc/classes/VisualShaderNodeCompare.xml
+++ b/doc/classes/VisualShaderNodeCompare.xml
@@ -8,8 +8,6 @@
</description>
<tutorials>
</tutorials>
- <methods>
- </methods>
<members>
<member name="condition" type="int" setter="set_condition" getter="get_condition" enum="VisualShaderNodeCompare.Condition" default="0">
Extra condition which is applied if [member type] is set to [constant CTYPE_VECTOR].
diff --git a/doc/classes/VisualShaderNodeConstant.xml b/doc/classes/VisualShaderNodeConstant.xml
index 8c61529dd1..d5f63be691 100644
--- a/doc/classes/VisualShaderNodeConstant.xml
+++ b/doc/classes/VisualShaderNodeConstant.xml
@@ -7,8 +7,4 @@
</description>
<tutorials>
</tutorials>
- <methods>
- </methods>
- <constants>
- </constants>
</class>
diff --git a/doc/classes/VisualShaderNodeCubemap.xml b/doc/classes/VisualShaderNodeCubemap.xml
index 4a5f58261d..23d98ee4be 100644
--- a/doc/classes/VisualShaderNodeCubemap.xml
+++ b/doc/classes/VisualShaderNodeCubemap.xml
@@ -8,8 +8,6 @@
</description>
<tutorials>
</tutorials>
- <methods>
- </methods>
<members>
<member name="cube_map" type="Cubemap" setter="set_cube_map" getter="get_cube_map">
The [Cubemap] texture to sample when using [constant SOURCE_TEXTURE] as [member source].
diff --git a/doc/classes/VisualShaderNodeCubemapUniform.xml b/doc/classes/VisualShaderNodeCubemapUniform.xml
index d4bcdc9006..bfc62469a8 100644
--- a/doc/classes/VisualShaderNodeCubemapUniform.xml
+++ b/doc/classes/VisualShaderNodeCubemapUniform.xml
@@ -8,8 +8,4 @@
</description>
<tutorials>
</tutorials>
- <methods>
- </methods>
- <constants>
- </constants>
</class>
diff --git a/doc/classes/VisualShaderNodeCurveTexture.xml b/doc/classes/VisualShaderNodeCurveTexture.xml
index 4839ceab92..b039da1671 100644
--- a/doc/classes/VisualShaderNodeCurveTexture.xml
+++ b/doc/classes/VisualShaderNodeCurveTexture.xml
@@ -8,13 +8,9 @@
</description>
<tutorials>
</tutorials>
- <methods>
- </methods>
<members>
<member name="texture" type="CurveTexture" setter="set_texture" getter="get_texture">
The source texture.
</member>
</members>
- <constants>
- </constants>
</class>
diff --git a/doc/classes/VisualShaderNodeCurveXYZTexture.xml b/doc/classes/VisualShaderNodeCurveXYZTexture.xml
index 11cdc541bb..48ff6ba800 100644
--- a/doc/classes/VisualShaderNodeCurveXYZTexture.xml
+++ b/doc/classes/VisualShaderNodeCurveXYZTexture.xml
@@ -8,13 +8,9 @@
</description>
<tutorials>
</tutorials>
- <methods>
- </methods>
<members>
<member name="texture" type="CurveXYZTexture" setter="set_texture" getter="get_texture">
The source texture.
</member>
</members>
- <constants>
- </constants>
</class>
diff --git a/doc/classes/VisualShaderNodeCustom.xml b/doc/classes/VisualShaderNodeCustom.xml
index 3a489419c1..b87b59c3e4 100644
--- a/doc/classes/VisualShaderNodeCustom.xml
+++ b/doc/classes/VisualShaderNodeCustom.xml
@@ -122,6 +122,4 @@
</description>
</method>
</methods>
- <constants>
- </constants>
</class>
diff --git a/doc/classes/VisualShaderNodeDeterminant.xml b/doc/classes/VisualShaderNodeDeterminant.xml
index 06b05addfa..47afbbb11c 100644
--- a/doc/classes/VisualShaderNodeDeterminant.xml
+++ b/doc/classes/VisualShaderNodeDeterminant.xml
@@ -8,8 +8,4 @@
</description>
<tutorials>
</tutorials>
- <methods>
- </methods>
- <constants>
- </constants>
</class>
diff --git a/doc/classes/VisualShaderNodeDotProduct.xml b/doc/classes/VisualShaderNodeDotProduct.xml
index 51166ab58f..49c26735c8 100644
--- a/doc/classes/VisualShaderNodeDotProduct.xml
+++ b/doc/classes/VisualShaderNodeDotProduct.xml
@@ -8,8 +8,4 @@
</description>
<tutorials>
</tutorials>
- <methods>
- </methods>
- <constants>
- </constants>
</class>
diff --git a/doc/classes/VisualShaderNodeExpression.xml b/doc/classes/VisualShaderNodeExpression.xml
index c2cbf41f45..4fde6d3aaf 100644
--- a/doc/classes/VisualShaderNodeExpression.xml
+++ b/doc/classes/VisualShaderNodeExpression.xml
@@ -9,13 +9,9 @@
</description>
<tutorials>
</tutorials>
- <methods>
- </methods>
<members>
<member name="expression" type="String" setter="set_expression" getter="get_expression" default="&quot;&quot;">
An expression in Godot Shading Language, which will be injected at the start of the graph's matching shader function ([code]vertex[/code], [code]fragment[/code], or [code]light[/code]), and thus cannot be used to declare functions, varyings, uniforms, or global constants.
</member>
</members>
- <constants>
- </constants>
</class>
diff --git a/doc/classes/VisualShaderNodeFaceForward.xml b/doc/classes/VisualShaderNodeFaceForward.xml
index 48f84e5495..80cb8aea4e 100644
--- a/doc/classes/VisualShaderNodeFaceForward.xml
+++ b/doc/classes/VisualShaderNodeFaceForward.xml
@@ -8,8 +8,4 @@
</description>
<tutorials>
</tutorials>
- <methods>
- </methods>
- <constants>
- </constants>
</class>
diff --git a/doc/classes/VisualShaderNodeFloatConstant.xml b/doc/classes/VisualShaderNodeFloatConstant.xml
index a71563af54..581155b013 100644
--- a/doc/classes/VisualShaderNodeFloatConstant.xml
+++ b/doc/classes/VisualShaderNodeFloatConstant.xml
@@ -8,13 +8,9 @@
</description>
<tutorials>
</tutorials>
- <methods>
- </methods>
<members>
<member name="constant" type="float" setter="set_constant" getter="get_constant" default="0.0">
A floating-point constant which represents a state of this node.
</member>
</members>
- <constants>
- </constants>
</class>
diff --git a/doc/classes/VisualShaderNodeFloatFunc.xml b/doc/classes/VisualShaderNodeFloatFunc.xml
index ff499d25a6..884954e85e 100644
--- a/doc/classes/VisualShaderNodeFloatFunc.xml
+++ b/doc/classes/VisualShaderNodeFloatFunc.xml
@@ -8,8 +8,6 @@
</description>
<tutorials>
</tutorials>
- <methods>
- </methods>
<members>
<member name="function" type="int" setter="set_function" getter="get_function" enum="VisualShaderNodeFloatFunc.Function" default="13">
A function to be applied to the scalar. See [enum Function] for options.
diff --git a/doc/classes/VisualShaderNodeFloatOp.xml b/doc/classes/VisualShaderNodeFloatOp.xml
index ba000f258b..3b16363f70 100644
--- a/doc/classes/VisualShaderNodeFloatOp.xml
+++ b/doc/classes/VisualShaderNodeFloatOp.xml
@@ -8,8 +8,6 @@
</description>
<tutorials>
</tutorials>
- <methods>
- </methods>
<members>
<member name="operator" type="int" setter="set_operator" getter="get_operator" enum="VisualShaderNodeFloatOp.Operator" default="0">
An operator to be applied to the inputs. See [enum Operator] for options.
diff --git a/doc/classes/VisualShaderNodeFloatUniform.xml b/doc/classes/VisualShaderNodeFloatUniform.xml
index fcfd78dbea..244b8c9830 100644
--- a/doc/classes/VisualShaderNodeFloatUniform.xml
+++ b/doc/classes/VisualShaderNodeFloatUniform.xml
@@ -8,8 +8,6 @@
</description>
<tutorials>
</tutorials>
- <methods>
- </methods>
<members>
<member name="default_value" type="float" setter="set_default_value" getter="get_default_value" default="0.0">
A default value to be assigned within the shader.
diff --git a/doc/classes/VisualShaderNodeFresnel.xml b/doc/classes/VisualShaderNodeFresnel.xml
index c396b4574c..1e4479f841 100644
--- a/doc/classes/VisualShaderNodeFresnel.xml
+++ b/doc/classes/VisualShaderNodeFresnel.xml
@@ -8,8 +8,4 @@
</description>
<tutorials>
</tutorials>
- <methods>
- </methods>
- <constants>
- </constants>
</class>
diff --git a/doc/classes/VisualShaderNodeGlobalExpression.xml b/doc/classes/VisualShaderNodeGlobalExpression.xml
index 8023ba1890..0d95824158 100644
--- a/doc/classes/VisualShaderNodeGlobalExpression.xml
+++ b/doc/classes/VisualShaderNodeGlobalExpression.xml
@@ -8,8 +8,4 @@
</description>
<tutorials>
</tutorials>
- <methods>
- </methods>
- <constants>
- </constants>
</class>
diff --git a/doc/classes/VisualShaderNodeGroupBase.xml b/doc/classes/VisualShaderNodeGroupBase.xml
index a692d47638..cbe4dc2ae6 100644
--- a/doc/classes/VisualShaderNodeGroupBase.xml
+++ b/doc/classes/VisualShaderNodeGroupBase.xml
@@ -157,6 +157,4 @@
</description>
</method>
</methods>
- <constants>
- </constants>
</class>
diff --git a/doc/classes/VisualShaderNodeIf.xml b/doc/classes/VisualShaderNodeIf.xml
index 418999863b..75fd797a06 100644
--- a/doc/classes/VisualShaderNodeIf.xml
+++ b/doc/classes/VisualShaderNodeIf.xml
@@ -8,8 +8,4 @@
</description>
<tutorials>
</tutorials>
- <methods>
- </methods>
- <constants>
- </constants>
</class>
diff --git a/doc/classes/VisualShaderNodeInput.xml b/doc/classes/VisualShaderNodeInput.xml
index dd62d668eb..68f64ad98e 100644
--- a/doc/classes/VisualShaderNodeInput.xml
+++ b/doc/classes/VisualShaderNodeInput.xml
@@ -29,6 +29,4 @@
</description>
</signal>
</signals>
- <constants>
- </constants>
</class>
diff --git a/doc/classes/VisualShaderNodeIntConstant.xml b/doc/classes/VisualShaderNodeIntConstant.xml
index 18d6e96ab5..e4a8a4447f 100644
--- a/doc/classes/VisualShaderNodeIntConstant.xml
+++ b/doc/classes/VisualShaderNodeIntConstant.xml
@@ -8,13 +8,9 @@
</description>
<tutorials>
</tutorials>
- <methods>
- </methods>
<members>
<member name="constant" type="int" setter="set_constant" getter="get_constant" default="0">
An integer constant which represents a state of this node.
</member>
</members>
- <constants>
- </constants>
</class>
diff --git a/doc/classes/VisualShaderNodeIntFunc.xml b/doc/classes/VisualShaderNodeIntFunc.xml
index 358a3f3512..d2782efa96 100644
--- a/doc/classes/VisualShaderNodeIntFunc.xml
+++ b/doc/classes/VisualShaderNodeIntFunc.xml
@@ -8,8 +8,6 @@
</description>
<tutorials>
</tutorials>
- <methods>
- </methods>
<members>
<member name="function" type="int" setter="set_function" getter="get_function" enum="VisualShaderNodeIntFunc.Function" default="2">
A function to be applied to the scalar. See [enum Function] for options.
diff --git a/doc/classes/VisualShaderNodeIntOp.xml b/doc/classes/VisualShaderNodeIntOp.xml
index 2d55cdaf78..e5fcafca81 100644
--- a/doc/classes/VisualShaderNodeIntOp.xml
+++ b/doc/classes/VisualShaderNodeIntOp.xml
@@ -8,8 +8,6 @@
</description>
<tutorials>
</tutorials>
- <methods>
- </methods>
<members>
<member name="operator" type="int" setter="set_operator" getter="get_operator" enum="VisualShaderNodeIntOp.Operator" default="0">
An operator to be applied to the inputs. See [enum Operator] for options.
diff --git a/doc/classes/VisualShaderNodeIntUniform.xml b/doc/classes/VisualShaderNodeIntUniform.xml
index 4070553884..36a3fbd4c1 100644
--- a/doc/classes/VisualShaderNodeIntUniform.xml
+++ b/doc/classes/VisualShaderNodeIntUniform.xml
@@ -8,8 +8,6 @@
</description>
<tutorials>
</tutorials>
- <methods>
- </methods>
<members>
<member name="default_value" type="int" setter="set_default_value" getter="get_default_value" default="0">
A default value to be assigned within the shader.
diff --git a/doc/classes/VisualShaderNodeIs.xml b/doc/classes/VisualShaderNodeIs.xml
index f46267677e..1f52e25d50 100644
--- a/doc/classes/VisualShaderNodeIs.xml
+++ b/doc/classes/VisualShaderNodeIs.xml
@@ -8,8 +8,6 @@
</description>
<tutorials>
</tutorials>
- <methods>
- </methods>
<members>
<member name="function" type="int" setter="set_function" getter="get_function" enum="VisualShaderNodeIs.Function" default="0">
The comparison function. See [enum Function] for options.
diff --git a/doc/classes/VisualShaderNodeMix.xml b/doc/classes/VisualShaderNodeMix.xml
index c70ac7e599..1ef580a983 100644
--- a/doc/classes/VisualShaderNodeMix.xml
+++ b/doc/classes/VisualShaderNodeMix.xml
@@ -8,8 +8,6 @@
</description>
<tutorials>
</tutorials>
- <methods>
- </methods>
<members>
<member name="op_type" type="int" setter="set_op_type" getter="get_op_type" enum="VisualShaderNodeMix.OpType" default="0">
A type of operands and returned value.
diff --git a/doc/classes/VisualShaderNodeMultiplyAdd.xml b/doc/classes/VisualShaderNodeMultiplyAdd.xml
index daa9e02753..a0e9aef703 100644
--- a/doc/classes/VisualShaderNodeMultiplyAdd.xml
+++ b/doc/classes/VisualShaderNodeMultiplyAdd.xml
@@ -8,8 +8,6 @@
</description>
<tutorials>
</tutorials>
- <methods>
- </methods>
<members>
<member name="op_type" type="int" setter="set_op_type" getter="get_op_type" enum="VisualShaderNodeMultiplyAdd.OpType" default="0">
A type of operands and returned value.
diff --git a/doc/classes/VisualShaderNodeOuterProduct.xml b/doc/classes/VisualShaderNodeOuterProduct.xml
index ba6822bfce..adc32aff10 100644
--- a/doc/classes/VisualShaderNodeOuterProduct.xml
+++ b/doc/classes/VisualShaderNodeOuterProduct.xml
@@ -8,8 +8,4 @@
</description>
<tutorials>
</tutorials>
- <methods>
- </methods>
- <constants>
- </constants>
</class>
diff --git a/doc/classes/VisualShaderNodeOutput.xml b/doc/classes/VisualShaderNodeOutput.xml
index 83da6f29f9..8193ed6167 100644
--- a/doc/classes/VisualShaderNodeOutput.xml
+++ b/doc/classes/VisualShaderNodeOutput.xml
@@ -8,8 +8,4 @@
</description>
<tutorials>
</tutorials>
- <methods>
- </methods>
- <constants>
- </constants>
</class>
diff --git a/doc/classes/VisualShaderNodeParticleAccelerator.xml b/doc/classes/VisualShaderNodeParticleAccelerator.xml
index 2f3f58c0cf..da8c505719 100644
--- a/doc/classes/VisualShaderNodeParticleAccelerator.xml
+++ b/doc/classes/VisualShaderNodeParticleAccelerator.xml
@@ -6,8 +6,6 @@
</description>
<tutorials>
</tutorials>
- <methods>
- </methods>
<members>
<member name="mode" type="int" setter="set_mode" getter="get_mode" enum="VisualShaderNodeParticleAccelerator.Mode" default="0">
</member>
diff --git a/doc/classes/VisualShaderNodeParticleBoxEmitter.xml b/doc/classes/VisualShaderNodeParticleBoxEmitter.xml
index af33b285d2..acfd8e5572 100644
--- a/doc/classes/VisualShaderNodeParticleBoxEmitter.xml
+++ b/doc/classes/VisualShaderNodeParticleBoxEmitter.xml
@@ -6,8 +6,4 @@
</description>
<tutorials>
</tutorials>
- <methods>
- </methods>
- <constants>
- </constants>
</class>
diff --git a/doc/classes/VisualShaderNodeParticleConeVelocity.xml b/doc/classes/VisualShaderNodeParticleConeVelocity.xml
index 7a40c2a7d0..4755b19046 100644
--- a/doc/classes/VisualShaderNodeParticleConeVelocity.xml
+++ b/doc/classes/VisualShaderNodeParticleConeVelocity.xml
@@ -6,8 +6,4 @@
</description>
<tutorials>
</tutorials>
- <methods>
- </methods>
- <constants>
- </constants>
</class>
diff --git a/doc/classes/VisualShaderNodeParticleEmit.xml b/doc/classes/VisualShaderNodeParticleEmit.xml
index 120b12d643..d6e4c384aa 100644
--- a/doc/classes/VisualShaderNodeParticleEmit.xml
+++ b/doc/classes/VisualShaderNodeParticleEmit.xml
@@ -6,8 +6,6 @@
</description>
<tutorials>
</tutorials>
- <methods>
- </methods>
<members>
<member name="flags" type="int" setter="set_flags" getter="get_flags" enum="VisualShaderNodeParticleEmit.EmitFlags" default="31">
</member>
diff --git a/doc/classes/VisualShaderNodeParticleEmitter.xml b/doc/classes/VisualShaderNodeParticleEmitter.xml
index 3a25fc1c7f..03ceb3adea 100644
--- a/doc/classes/VisualShaderNodeParticleEmitter.xml
+++ b/doc/classes/VisualShaderNodeParticleEmitter.xml
@@ -6,8 +6,4 @@
</description>
<tutorials>
</tutorials>
- <methods>
- </methods>
- <constants>
- </constants>
</class>
diff --git a/doc/classes/VisualShaderNodeParticleMultiplyByAxisAngle.xml b/doc/classes/VisualShaderNodeParticleMultiplyByAxisAngle.xml
index 89a53699c9..5cd3d8f0b8 100644
--- a/doc/classes/VisualShaderNodeParticleMultiplyByAxisAngle.xml
+++ b/doc/classes/VisualShaderNodeParticleMultiplyByAxisAngle.xml
@@ -6,12 +6,8 @@
</description>
<tutorials>
</tutorials>
- <methods>
- </methods>
<members>
<member name="degrees_mode" type="bool" setter="set_degrees_mode" getter="is_degrees_mode" default="true">
</member>
</members>
- <constants>
- </constants>
</class>
diff --git a/doc/classes/VisualShaderNodeParticleOutput.xml b/doc/classes/VisualShaderNodeParticleOutput.xml
index c8fc66f2ff..24eb6bf825 100644
--- a/doc/classes/VisualShaderNodeParticleOutput.xml
+++ b/doc/classes/VisualShaderNodeParticleOutput.xml
@@ -6,8 +6,4 @@
</description>
<tutorials>
</tutorials>
- <methods>
- </methods>
- <constants>
- </constants>
</class>
diff --git a/doc/classes/VisualShaderNodeParticleRandomness.xml b/doc/classes/VisualShaderNodeParticleRandomness.xml
index 75736992ee..2dec41105c 100644
--- a/doc/classes/VisualShaderNodeParticleRandomness.xml
+++ b/doc/classes/VisualShaderNodeParticleRandomness.xml
@@ -6,8 +6,6 @@
</description>
<tutorials>
</tutorials>
- <methods>
- </methods>
<members>
<member name="op_type" type="int" setter="set_op_type" getter="get_op_type" enum="VisualShaderNodeParticleRandomness.OpType" default="0">
</member>
diff --git a/doc/classes/VisualShaderNodeParticleRingEmitter.xml b/doc/classes/VisualShaderNodeParticleRingEmitter.xml
index ee3fbe7faf..9aabf1ed27 100644
--- a/doc/classes/VisualShaderNodeParticleRingEmitter.xml
+++ b/doc/classes/VisualShaderNodeParticleRingEmitter.xml
@@ -6,8 +6,4 @@
</description>
<tutorials>
</tutorials>
- <methods>
- </methods>
- <constants>
- </constants>
</class>
diff --git a/doc/classes/VisualShaderNodeParticleSphereEmitter.xml b/doc/classes/VisualShaderNodeParticleSphereEmitter.xml
index d43ac518cf..e2db81ff17 100644
--- a/doc/classes/VisualShaderNodeParticleSphereEmitter.xml
+++ b/doc/classes/VisualShaderNodeParticleSphereEmitter.xml
@@ -6,8 +6,4 @@
</description>
<tutorials>
</tutorials>
- <methods>
- </methods>
- <constants>
- </constants>
</class>
diff --git a/doc/classes/VisualShaderNodeResizableBase.xml b/doc/classes/VisualShaderNodeResizableBase.xml
index f42289a10e..ef734ef857 100644
--- a/doc/classes/VisualShaderNodeResizableBase.xml
+++ b/doc/classes/VisualShaderNodeResizableBase.xml
@@ -8,13 +8,9 @@
</description>
<tutorials>
</tutorials>
- <methods>
- </methods>
<members>
<member name="size" type="Vector2" setter="set_size" getter="get_size" default="Vector2(0, 0)">
The size of the node in the visual shader graph.
</member>
</members>
- <constants>
- </constants>
</class>
diff --git a/doc/classes/VisualShaderNodeSDFRaymarch.xml b/doc/classes/VisualShaderNodeSDFRaymarch.xml
index 775f2814c2..64a3e5a310 100644
--- a/doc/classes/VisualShaderNodeSDFRaymarch.xml
+++ b/doc/classes/VisualShaderNodeSDFRaymarch.xml
@@ -8,8 +8,4 @@
</description>
<tutorials>
</tutorials>
- <methods>
- </methods>
- <constants>
- </constants>
</class>
diff --git a/doc/classes/VisualShaderNodeSDFToScreenUV.xml b/doc/classes/VisualShaderNodeSDFToScreenUV.xml
index 40fb66e364..07e267b990 100644
--- a/doc/classes/VisualShaderNodeSDFToScreenUV.xml
+++ b/doc/classes/VisualShaderNodeSDFToScreenUV.xml
@@ -8,8 +8,4 @@
</description>
<tutorials>
</tutorials>
- <methods>
- </methods>
- <constants>
- </constants>
</class>
diff --git a/doc/classes/VisualShaderNodeSample3D.xml b/doc/classes/VisualShaderNodeSample3D.xml
index 82bcac5f69..85d2367eac 100644
--- a/doc/classes/VisualShaderNodeSample3D.xml
+++ b/doc/classes/VisualShaderNodeSample3D.xml
@@ -8,8 +8,6 @@
</description>
<tutorials>
</tutorials>
- <methods>
- </methods>
<members>
<member name="source" type="int" setter="set_source" getter="get_source" enum="VisualShaderNodeSample3D.Source" default="0">
An input source type.
diff --git a/doc/classes/VisualShaderNodeScalarDerivativeFunc.xml b/doc/classes/VisualShaderNodeScalarDerivativeFunc.xml
index 305586ac49..8d108a5d28 100644
--- a/doc/classes/VisualShaderNodeScalarDerivativeFunc.xml
+++ b/doc/classes/VisualShaderNodeScalarDerivativeFunc.xml
@@ -8,8 +8,6 @@
</description>
<tutorials>
</tutorials>
- <methods>
- </methods>
<members>
<member name="function" type="int" setter="set_function" getter="get_function" enum="VisualShaderNodeScalarDerivativeFunc.Function" default="0">
The derivative type. See [enum Function] for options.
diff --git a/doc/classes/VisualShaderNodeScreenUVToSDF.xml b/doc/classes/VisualShaderNodeScreenUVToSDF.xml
index 2e121ffc54..8f1f4f486c 100644
--- a/doc/classes/VisualShaderNodeScreenUVToSDF.xml
+++ b/doc/classes/VisualShaderNodeScreenUVToSDF.xml
@@ -8,8 +8,4 @@
</description>
<tutorials>
</tutorials>
- <methods>
- </methods>
- <constants>
- </constants>
</class>
diff --git a/doc/classes/VisualShaderNodeSmoothStep.xml b/doc/classes/VisualShaderNodeSmoothStep.xml
index 0ed53a8c26..2f8c7e0f33 100644
--- a/doc/classes/VisualShaderNodeSmoothStep.xml
+++ b/doc/classes/VisualShaderNodeSmoothStep.xml
@@ -9,8 +9,6 @@
</description>
<tutorials>
</tutorials>
- <methods>
- </methods>
<members>
<member name="op_type" type="int" setter="set_op_type" getter="get_op_type" enum="VisualShaderNodeSmoothStep.OpType" default="0">
A type of operands and returned value.
diff --git a/doc/classes/VisualShaderNodeStep.xml b/doc/classes/VisualShaderNodeStep.xml
index 694c144445..5d8b464814 100644
--- a/doc/classes/VisualShaderNodeStep.xml
+++ b/doc/classes/VisualShaderNodeStep.xml
@@ -9,8 +9,6 @@
</description>
<tutorials>
</tutorials>
- <methods>
- </methods>
<members>
<member name="op_type" type="int" setter="set_op_type" getter="get_op_type" enum="VisualShaderNodeStep.OpType" default="0">
A type of operands and returned value.
diff --git a/doc/classes/VisualShaderNodeSwitch.xml b/doc/classes/VisualShaderNodeSwitch.xml
index 3961070a74..921092cd07 100644
--- a/doc/classes/VisualShaderNodeSwitch.xml
+++ b/doc/classes/VisualShaderNodeSwitch.xml
@@ -8,8 +8,6 @@
</description>
<tutorials>
</tutorials>
- <methods>
- </methods>
<members>
<member name="op_type" type="int" setter="set_op_type" getter="get_op_type" enum="VisualShaderNodeSwitch.OpType" default="0">
A type of operands and returned value.
diff --git a/doc/classes/VisualShaderNodeTexture.xml b/doc/classes/VisualShaderNodeTexture.xml
index 17c079f385..0a2af30f67 100644
--- a/doc/classes/VisualShaderNodeTexture.xml
+++ b/doc/classes/VisualShaderNodeTexture.xml
@@ -8,8 +8,6 @@
</description>
<tutorials>
</tutorials>
- <methods>
- </methods>
<members>
<member name="source" type="int" setter="set_source" getter="get_source" enum="VisualShaderNodeTexture.Source" default="0">
Determines the source for the lookup. See [enum Source] for options.
diff --git a/doc/classes/VisualShaderNodeTexture2DArray.xml b/doc/classes/VisualShaderNodeTexture2DArray.xml
index 3c6d328ed0..cd7c526e1f 100644
--- a/doc/classes/VisualShaderNodeTexture2DArray.xml
+++ b/doc/classes/VisualShaderNodeTexture2DArray.xml
@@ -8,13 +8,9 @@
</description>
<tutorials>
</tutorials>
- <methods>
- </methods>
<members>
<member name="texture_array" type="Texture2DArray" setter="set_texture_array" getter="get_texture_array">
A source texture array. Used if [member VisualShaderNodeSample3D.source] is set to [constant VisualShaderNodeSample3D.SOURCE_TEXTURE].
</member>
</members>
- <constants>
- </constants>
</class>
diff --git a/doc/classes/VisualShaderNodeTexture2DArrayUniform.xml b/doc/classes/VisualShaderNodeTexture2DArrayUniform.xml
index 976fcf26c8..ba320afd18 100644
--- a/doc/classes/VisualShaderNodeTexture2DArrayUniform.xml
+++ b/doc/classes/VisualShaderNodeTexture2DArrayUniform.xml
@@ -6,8 +6,4 @@
</description>
<tutorials>
</tutorials>
- <methods>
- </methods>
- <constants>
- </constants>
</class>
diff --git a/doc/classes/VisualShaderNodeTexture3D.xml b/doc/classes/VisualShaderNodeTexture3D.xml
index 17929e823e..2f5b750ce1 100644
--- a/doc/classes/VisualShaderNodeTexture3D.xml
+++ b/doc/classes/VisualShaderNodeTexture3D.xml
@@ -8,13 +8,9 @@
</description>
<tutorials>
</tutorials>
- <methods>
- </methods>
<members>
<member name="texture" type="Texture3D" setter="set_texture" getter="get_texture">
A source texture. Used if [member VisualShaderNodeSample3D.source] is set to [constant VisualShaderNodeSample3D.SOURCE_TEXTURE].
</member>
</members>
- <constants>
- </constants>
</class>
diff --git a/doc/classes/VisualShaderNodeTexture3DUniform.xml b/doc/classes/VisualShaderNodeTexture3DUniform.xml
index d9e9acf117..3b002c5449 100644
--- a/doc/classes/VisualShaderNodeTexture3DUniform.xml
+++ b/doc/classes/VisualShaderNodeTexture3DUniform.xml
@@ -8,8 +8,4 @@
</description>
<tutorials>
</tutorials>
- <methods>
- </methods>
- <constants>
- </constants>
</class>
diff --git a/doc/classes/VisualShaderNodeTextureSDF.xml b/doc/classes/VisualShaderNodeTextureSDF.xml
index b5c89c2c31..09a5851ef7 100644
--- a/doc/classes/VisualShaderNodeTextureSDF.xml
+++ b/doc/classes/VisualShaderNodeTextureSDF.xml
@@ -8,8 +8,4 @@
</description>
<tutorials>
</tutorials>
- <methods>
- </methods>
- <constants>
- </constants>
</class>
diff --git a/doc/classes/VisualShaderNodeTextureSDFNormal.xml b/doc/classes/VisualShaderNodeTextureSDFNormal.xml
index 25fe1c4b28..e66492cebf 100644
--- a/doc/classes/VisualShaderNodeTextureSDFNormal.xml
+++ b/doc/classes/VisualShaderNodeTextureSDFNormal.xml
@@ -8,8 +8,4 @@
</description>
<tutorials>
</tutorials>
- <methods>
- </methods>
- <constants>
- </constants>
</class>
diff --git a/doc/classes/VisualShaderNodeTextureUniform.xml b/doc/classes/VisualShaderNodeTextureUniform.xml
index 492c6010df..26c72d2714 100644
--- a/doc/classes/VisualShaderNodeTextureUniform.xml
+++ b/doc/classes/VisualShaderNodeTextureUniform.xml
@@ -8,8 +8,6 @@
</description>
<tutorials>
</tutorials>
- <methods>
- </methods>
<members>
<member name="color_default" type="int" setter="set_color_default" getter="get_color_default" enum="VisualShaderNodeTextureUniform.ColorDefault" default="0">
Sets the default color if no texture is assigned to the uniform.
diff --git a/doc/classes/VisualShaderNodeTextureUniformTriplanar.xml b/doc/classes/VisualShaderNodeTextureUniformTriplanar.xml
index 28504cc7ac..76b5506cba 100644
--- a/doc/classes/VisualShaderNodeTextureUniformTriplanar.xml
+++ b/doc/classes/VisualShaderNodeTextureUniformTriplanar.xml
@@ -8,8 +8,4 @@
</description>
<tutorials>
</tutorials>
- <methods>
- </methods>
- <constants>
- </constants>
</class>
diff --git a/doc/classes/VisualShaderNodeTransformCompose.xml b/doc/classes/VisualShaderNodeTransformCompose.xml
index b82ce9bdd8..4ec59962e9 100644
--- a/doc/classes/VisualShaderNodeTransformCompose.xml
+++ b/doc/classes/VisualShaderNodeTransformCompose.xml
@@ -8,8 +8,4 @@
</description>
<tutorials>
</tutorials>
- <methods>
- </methods>
- <constants>
- </constants>
</class>
diff --git a/doc/classes/VisualShaderNodeTransformConstant.xml b/doc/classes/VisualShaderNodeTransformConstant.xml
index 30178752d0..66eda94fbe 100644
--- a/doc/classes/VisualShaderNodeTransformConstant.xml
+++ b/doc/classes/VisualShaderNodeTransformConstant.xml
@@ -8,13 +8,9 @@
</description>
<tutorials>
</tutorials>
- <methods>
- </methods>
<members>
<member name="constant" type="Transform3D" setter="set_constant" getter="get_constant" default="Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0)">
A [Transform3D] constant which represents the state of this node.
</member>
</members>
- <constants>
- </constants>
</class>
diff --git a/doc/classes/VisualShaderNodeTransformDecompose.xml b/doc/classes/VisualShaderNodeTransformDecompose.xml
index b815efc67a..e1bfa94a07 100644
--- a/doc/classes/VisualShaderNodeTransformDecompose.xml
+++ b/doc/classes/VisualShaderNodeTransformDecompose.xml
@@ -8,8 +8,4 @@
</description>
<tutorials>
</tutorials>
- <methods>
- </methods>
- <constants>
- </constants>
</class>
diff --git a/doc/classes/VisualShaderNodeTransformFunc.xml b/doc/classes/VisualShaderNodeTransformFunc.xml
index 51b1100e22..bbc36fc8d5 100644
--- a/doc/classes/VisualShaderNodeTransformFunc.xml
+++ b/doc/classes/VisualShaderNodeTransformFunc.xml
@@ -8,8 +8,6 @@
</description>
<tutorials>
</tutorials>
- <methods>
- </methods>
<members>
<member name="function" type="int" setter="set_function" getter="get_function" enum="VisualShaderNodeTransformFunc.Function" default="0">
The function to be computed. See [enum Function] for options.
diff --git a/doc/classes/VisualShaderNodeTransformOp.xml b/doc/classes/VisualShaderNodeTransformOp.xml
index 02debd890f..65d5b9cbbd 100644
--- a/doc/classes/VisualShaderNodeTransformOp.xml
+++ b/doc/classes/VisualShaderNodeTransformOp.xml
@@ -8,8 +8,6 @@
</description>
<tutorials>
</tutorials>
- <methods>
- </methods>
<members>
<member name="operator" type="int" setter="set_operator" getter="get_operator" enum="VisualShaderNodeTransformOp.Operator" default="0">
The type of the operation to be performed on the transforms. See [enum Operator] for options.
diff --git a/doc/classes/VisualShaderNodeTransformUniform.xml b/doc/classes/VisualShaderNodeTransformUniform.xml
index 2f7818ec8a..b6d8801932 100644
--- a/doc/classes/VisualShaderNodeTransformUniform.xml
+++ b/doc/classes/VisualShaderNodeTransformUniform.xml
@@ -8,8 +8,6 @@
</description>
<tutorials>
</tutorials>
- <methods>
- </methods>
<members>
<member name="default_value" type="Transform3D" setter="set_default_value" getter="get_default_value" default="Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0)">
A default value to be assigned within the shader.
@@ -18,6 +16,4 @@
Enables usage of the [member default_value].
</member>
</members>
- <constants>
- </constants>
</class>
diff --git a/doc/classes/VisualShaderNodeTransformVecMult.xml b/doc/classes/VisualShaderNodeTransformVecMult.xml
index d8f7ebbd55..02fe18c7a0 100644
--- a/doc/classes/VisualShaderNodeTransformVecMult.xml
+++ b/doc/classes/VisualShaderNodeTransformVecMult.xml
@@ -8,8 +8,6 @@
</description>
<tutorials>
</tutorials>
- <methods>
- </methods>
<members>
<member name="operator" type="int" setter="set_operator" getter="get_operator" enum="VisualShaderNodeTransformVecMult.Operator" default="0">
The multiplication type to be performed. See [enum Operator] for options.
diff --git a/doc/classes/VisualShaderNodeUVFunc.xml b/doc/classes/VisualShaderNodeUVFunc.xml
index 042644feb0..26bcea07e8 100644
--- a/doc/classes/VisualShaderNodeUVFunc.xml
+++ b/doc/classes/VisualShaderNodeUVFunc.xml
@@ -7,8 +7,6 @@
</description>
<tutorials>
</tutorials>
- <methods>
- </methods>
<members>
<member name="function" type="int" setter="set_function" getter="get_function" enum="VisualShaderNodeUVFunc.Function" default="0">
A function to be applied to the texture coordinates. See [enum Function] for options.
diff --git a/doc/classes/VisualShaderNodeUniform.xml b/doc/classes/VisualShaderNodeUniform.xml
index 561d87af45..15c760656e 100644
--- a/doc/classes/VisualShaderNodeUniform.xml
+++ b/doc/classes/VisualShaderNodeUniform.xml
@@ -8,8 +8,6 @@
</description>
<tutorials>
</tutorials>
- <methods>
- </methods>
<members>
<member name="qualifier" type="int" setter="set_qualifier" getter="get_qualifier" enum="VisualShaderNodeUniform.Qualifier" default="0">
</member>
diff --git a/doc/classes/VisualShaderNodeUniformRef.xml b/doc/classes/VisualShaderNodeUniformRef.xml
index db02e398ab..44a28ed53c 100644
--- a/doc/classes/VisualShaderNodeUniformRef.xml
+++ b/doc/classes/VisualShaderNodeUniformRef.xml
@@ -8,13 +8,9 @@
</description>
<tutorials>
</tutorials>
- <methods>
- </methods>
<members>
<member name="uniform_name" type="String" setter="set_uniform_name" getter="get_uniform_name" default="&quot;[None]&quot;">
The name of the uniform which this reference points to.
</member>
</members>
- <constants>
- </constants>
</class>
diff --git a/doc/classes/VisualShaderNodeVec3Constant.xml b/doc/classes/VisualShaderNodeVec3Constant.xml
index 28c3d22345..0a64357962 100644
--- a/doc/classes/VisualShaderNodeVec3Constant.xml
+++ b/doc/classes/VisualShaderNodeVec3Constant.xml
@@ -8,13 +8,9 @@
</description>
<tutorials>
</tutorials>
- <methods>
- </methods>
<members>
<member name="constant" type="Vector3" setter="set_constant" getter="get_constant" default="Vector3(0, 0, 0)">
A [Vector3] constant which represents the state of this node.
</member>
</members>
- <constants>
- </constants>
</class>
diff --git a/doc/classes/VisualShaderNodeVec3Uniform.xml b/doc/classes/VisualShaderNodeVec3Uniform.xml
index 215e2cfbea..2b72e5252a 100644
--- a/doc/classes/VisualShaderNodeVec3Uniform.xml
+++ b/doc/classes/VisualShaderNodeVec3Uniform.xml
@@ -8,8 +8,6 @@
</description>
<tutorials>
</tutorials>
- <methods>
- </methods>
<members>
<member name="default_value" type="Vector3" setter="set_default_value" getter="get_default_value" default="Vector3(0, 0, 0)">
A default value to be assigned within the shader.
@@ -18,6 +16,4 @@
Enables usage of the [member default_value].
</member>
</members>
- <constants>
- </constants>
</class>
diff --git a/doc/classes/VisualShaderNodeVectorCompose.xml b/doc/classes/VisualShaderNodeVectorCompose.xml
index c9ff3cd38e..ebc30d03f4 100644
--- a/doc/classes/VisualShaderNodeVectorCompose.xml
+++ b/doc/classes/VisualShaderNodeVectorCompose.xml
@@ -8,8 +8,4 @@
</description>
<tutorials>
</tutorials>
- <methods>
- </methods>
- <constants>
- </constants>
</class>
diff --git a/doc/classes/VisualShaderNodeVectorDecompose.xml b/doc/classes/VisualShaderNodeVectorDecompose.xml
index 95af323c9b..09986bf969 100644
--- a/doc/classes/VisualShaderNodeVectorDecompose.xml
+++ b/doc/classes/VisualShaderNodeVectorDecompose.xml
@@ -8,8 +8,4 @@
</description>
<tutorials>
</tutorials>
- <methods>
- </methods>
- <constants>
- </constants>
</class>
diff --git a/doc/classes/VisualShaderNodeVectorDerivativeFunc.xml b/doc/classes/VisualShaderNodeVectorDerivativeFunc.xml
index 9fd8ba2806..e0c7c8618c 100644
--- a/doc/classes/VisualShaderNodeVectorDerivativeFunc.xml
+++ b/doc/classes/VisualShaderNodeVectorDerivativeFunc.xml
@@ -8,8 +8,6 @@
</description>
<tutorials>
</tutorials>
- <methods>
- </methods>
<members>
<member name="function" type="int" setter="set_function" getter="get_function" enum="VisualShaderNodeVectorDerivativeFunc.Function" default="0">
A derivative type. See [enum Function] for options.
diff --git a/doc/classes/VisualShaderNodeVectorDistance.xml b/doc/classes/VisualShaderNodeVectorDistance.xml
index 2da04b122e..098787e583 100644
--- a/doc/classes/VisualShaderNodeVectorDistance.xml
+++ b/doc/classes/VisualShaderNodeVectorDistance.xml
@@ -9,8 +9,4 @@
</description>
<tutorials>
</tutorials>
- <methods>
- </methods>
- <constants>
- </constants>
</class>
diff --git a/doc/classes/VisualShaderNodeVectorFunc.xml b/doc/classes/VisualShaderNodeVectorFunc.xml
index 79bf3f6a07..27ae82e11b 100644
--- a/doc/classes/VisualShaderNodeVectorFunc.xml
+++ b/doc/classes/VisualShaderNodeVectorFunc.xml
@@ -8,8 +8,6 @@
</description>
<tutorials>
</tutorials>
- <methods>
- </methods>
<members>
<member name="function" type="int" setter="set_function" getter="get_function" enum="VisualShaderNodeVectorFunc.Function" default="0">
The function to be performed. See [enum Function] for options.
diff --git a/doc/classes/VisualShaderNodeVectorLen.xml b/doc/classes/VisualShaderNodeVectorLen.xml
index 77261d3190..165455e622 100644
--- a/doc/classes/VisualShaderNodeVectorLen.xml
+++ b/doc/classes/VisualShaderNodeVectorLen.xml
@@ -8,8 +8,4 @@
</description>
<tutorials>
</tutorials>
- <methods>
- </methods>
- <constants>
- </constants>
</class>
diff --git a/doc/classes/VisualShaderNodeVectorOp.xml b/doc/classes/VisualShaderNodeVectorOp.xml
index 263485d38e..5e8f0abda3 100644
--- a/doc/classes/VisualShaderNodeVectorOp.xml
+++ b/doc/classes/VisualShaderNodeVectorOp.xml
@@ -8,8 +8,6 @@
</description>
<tutorials>
</tutorials>
- <methods>
- </methods>
<members>
<member name="operator" type="int" setter="set_operator" getter="get_operator" enum="VisualShaderNodeVectorOp.Operator" default="0">
The operator to be used. See [enum Operator] for options.
diff --git a/doc/classes/VisualShaderNodeVectorRefract.xml b/doc/classes/VisualShaderNodeVectorRefract.xml
index 178c35f49a..59e98fb000 100644
--- a/doc/classes/VisualShaderNodeVectorRefract.xml
+++ b/doc/classes/VisualShaderNodeVectorRefract.xml
@@ -8,8 +8,4 @@
</description>
<tutorials>
</tutorials>
- <methods>
- </methods>
- <constants>
- </constants>
</class>
diff --git a/doc/classes/VoxelGIData.xml b/doc/classes/VoxelGIData.xml
index 5c2c7f9dc6..f0bd2a0601 100644
--- a/doc/classes/VoxelGIData.xml
+++ b/doc/classes/VoxelGIData.xml
@@ -67,6 +67,4 @@
<member name="use_two_bounces" type="bool" setter="set_use_two_bounces" getter="is_using_two_bounces" default="false">
</member>
</members>
- <constants>
- </constants>
</class>
diff --git a/doc/classes/WeakRef.xml b/doc/classes/WeakRef.xml
index 339c1620bf..56617b581f 100644
--- a/doc/classes/WeakRef.xml
+++ b/doc/classes/WeakRef.xml
@@ -16,6 +16,4 @@
</description>
</method>
</methods>
- <constants>
- </constants>
</class>
diff --git a/doc/classes/World2D.xml b/doc/classes/World2D.xml
index 20b3afbd0b..a6a4701dd4 100644
--- a/doc/classes/World2D.xml
+++ b/doc/classes/World2D.xml
@@ -9,8 +9,6 @@
<tutorials>
<link title="Ray-casting">https://docs.godotengine.org/en/latest/tutorials/physics/ray-casting.html</link>
</tutorials>
- <methods>
- </methods>
<members>
<member name="canvas" type="RID" setter="" getter="get_canvas">
The [RID] of this world's canvas resource. Used by the [RenderingServer] for 2D drawing.
@@ -25,6 +23,4 @@
The [RID] of this world's physics space resource. Used by the [PhysicsServer2D] for 2D physics, treating it as both a space and an area.
</member>
</members>
- <constants>
- </constants>
</class>
diff --git a/doc/classes/World3D.xml b/doc/classes/World3D.xml
index 610ecacff4..136ca2c598 100644
--- a/doc/classes/World3D.xml
+++ b/doc/classes/World3D.xml
@@ -9,8 +9,6 @@
<tutorials>
<link title="Ray-casting">https://docs.godotengine.org/en/latest/tutorials/physics/ray-casting.html</link>
</tutorials>
- <methods>
- </methods>
<members>
<member name="camera_effects" type="CameraEffects" setter="set_camera_effects" getter="get_camera_effects">
</member>
@@ -33,6 +31,4 @@
The World3D's physics space.
</member>
</members>
- <constants>
- </constants>
</class>
diff --git a/doc/classes/WorldBoundaryShape2D.xml b/doc/classes/WorldBoundaryShape2D.xml
index 190f289601..cfbab4dcf8 100644
--- a/doc/classes/WorldBoundaryShape2D.xml
+++ b/doc/classes/WorldBoundaryShape2D.xml
@@ -8,8 +8,6 @@
</description>
<tutorials>
</tutorials>
- <methods>
- </methods>
<members>
<member name="distance" type="float" setter="set_distance" getter="get_distance" default="0.0">
The line's distance from the origin.
@@ -18,6 +16,4 @@
The line's normal. Defaults to [code]Vector2.UP[/code].
</member>
</members>
- <constants>
- </constants>
</class>
diff --git a/doc/classes/WorldBoundaryShape3D.xml b/doc/classes/WorldBoundaryShape3D.xml
index 837b023a58..a916ac03d0 100644
--- a/doc/classes/WorldBoundaryShape3D.xml
+++ b/doc/classes/WorldBoundaryShape3D.xml
@@ -8,13 +8,9 @@
</description>
<tutorials>
</tutorials>
- <methods>
- </methods>
<members>
<member name="plane" type="Plane" setter="set_plane" getter="get_plane" default="Plane(0, 1, 0, 0)">
The [Plane] used by the [WorldBoundaryShape3D] for collision.
</member>
</members>
- <constants>
- </constants>
</class>
diff --git a/doc/classes/WorldEnvironment.xml b/doc/classes/WorldEnvironment.xml
index 6aa2db00b4..bd25a74c5b 100644
--- a/doc/classes/WorldEnvironment.xml
+++ b/doc/classes/WorldEnvironment.xml
@@ -14,8 +14,6 @@
<link title="2D HDR Demo">https://godotengine.org/asset-library/asset/110</link>
<link title="Third Person Shooter Demo">https://godotengine.org/asset-library/asset/678</link>
</tutorials>
- <methods>
- </methods>
<members>
<member name="camera_effects" type="CameraEffects" setter="set_camera_effects" getter="get_camera_effects">
</member>
@@ -23,6 +21,4 @@
The [Environment] resource used by this [WorldEnvironment], defining the default properties.
</member>
</members>
- <constants>
- </constants>
</class>
diff --git a/doc/classes/X509Certificate.xml b/doc/classes/X509Certificate.xml
index 5900e68339..0af7094ee1 100644
--- a/doc/classes/X509Certificate.xml
+++ b/doc/classes/X509Certificate.xml
@@ -26,6 +26,4 @@
</description>
</method>
</methods>
- <constants>
- </constants>
</class>
diff --git a/doc/classes/XRAnchor3D.xml b/doc/classes/XRAnchor3D.xml
index ccbfab1273..94fc8fc13d 100644
--- a/doc/classes/XRAnchor3D.xml
+++ b/doc/classes/XRAnchor3D.xml
@@ -55,6 +55,4 @@
</description>
</signal>
</signals>
- <constants>
- </constants>
</class>
diff --git a/doc/classes/XRCamera3D.xml b/doc/classes/XRCamera3D.xml
index b2682f7a90..682a797b5e 100644
--- a/doc/classes/XRCamera3D.xml
+++ b/doc/classes/XRCamera3D.xml
@@ -10,8 +10,4 @@
<tutorials>
<link title="VR tutorial index">https://docs.godotengine.org/en/latest/tutorials/vr/index.html</link>
</tutorials>
- <methods>
- </methods>
- <constants>
- </constants>
</class>
diff --git a/doc/classes/XRController3D.xml b/doc/classes/XRController3D.xml
index 47ddc22823..1a05a7b651 100644
--- a/doc/classes/XRController3D.xml
+++ b/doc/classes/XRController3D.xml
@@ -89,6 +89,4 @@
</description>
</signal>
</signals>
- <constants>
- </constants>
</class>
diff --git a/doc/classes/XRInterfaceExtension.xml b/doc/classes/XRInterfaceExtension.xml
index fb79926043..84b46e0ddd 100644
--- a/doc/classes/XRInterfaceExtension.xml
+++ b/doc/classes/XRInterfaceExtension.xml
@@ -128,6 +128,4 @@
</description>
</method>
</methods>
- <constants>
- </constants>
</class>
diff --git a/doc/classes/XROrigin3D.xml b/doc/classes/XROrigin3D.xml
index 3e075e99b9..cdf319093c 100644
--- a/doc/classes/XROrigin3D.xml
+++ b/doc/classes/XROrigin3D.xml
@@ -12,14 +12,10 @@
<tutorials>
<link title="VR tutorial index">https://docs.godotengine.org/en/latest/tutorials/vr/index.html</link>
</tutorials>
- <methods>
- </methods>
<members>
<member name="world_scale" type="float" setter="set_world_scale" getter="get_world_scale" default="1.0">
Allows you to adjust the scale to your game's units. Most AR/VR platforms assume a scale of 1 game world unit = 1 real world meter.
[b]Note:[/b] This method is a passthrough to the [XRServer] itself.
</member>
</members>
- <constants>
- </constants>
</class>
diff --git a/doc/classes/bool.xml b/doc/classes/bool.xml
index 2d4ba8872e..39e34a7b96 100644
--- a/doc/classes/bool.xml
+++ b/doc/classes/bool.xml
@@ -158,6 +158,4 @@
</description>
</method>
</methods>
- <constants>
- </constants>
</class>
diff --git a/doc/classes/float.xml b/doc/classes/float.xml
index be8e1638e4..b45cdd2099 100644
--- a/doc/classes/float.xml
+++ b/doc/classes/float.xml
@@ -255,6 +255,4 @@
</description>
</method>
</methods>
- <constants>
- </constants>
</class>
diff --git a/doc/classes/int.xml b/doc/classes/int.xml
index dd523185df..a75d11ba4a 100644
--- a/doc/classes/int.xml
+++ b/doc/classes/int.xml
@@ -375,6 +375,4 @@
</description>
</method>
</methods>
- <constants>
- </constants>
</class>
diff --git a/drivers/vulkan/rendering_device_vulkan.cpp b/drivers/vulkan/rendering_device_vulkan.cpp
index f8fc949220..086d3b4284 100644
--- a/drivers/vulkan/rendering_device_vulkan.cpp
+++ b/drivers/vulkan/rendering_device_vulkan.cpp
@@ -47,7 +47,7 @@
RenderingDeviceVulkan::Buffer *RenderingDeviceVulkan::_get_buffer_from_owner(RID p_buffer, VkPipelineStageFlags &r_stage_mask, VkAccessFlags &r_access_mask, uint32_t p_post_barrier) {
Buffer *buffer = nullptr;
if (vertex_buffer_owner.owns(p_buffer)) {
- buffer = vertex_buffer_owner.getornull(p_buffer);
+ buffer = vertex_buffer_owner.get_or_null(p_buffer);
r_stage_mask |= VK_PIPELINE_STAGE_VERTEX_INPUT_BIT;
r_access_mask |= VK_ACCESS_VERTEX_ATTRIBUTE_READ_BIT;
@@ -64,7 +64,7 @@ RenderingDeviceVulkan::Buffer *RenderingDeviceVulkan::_get_buffer_from_owner(RID
} else if (index_buffer_owner.owns(p_buffer)) {
r_stage_mask |= VK_PIPELINE_STAGE_VERTEX_INPUT_BIT;
r_access_mask |= VK_ACCESS_INDEX_READ_BIT;
- buffer = index_buffer_owner.getornull(p_buffer);
+ buffer = index_buffer_owner.get_or_null(p_buffer);
} else if (uniform_buffer_owner.owns(p_buffer)) {
if (p_post_barrier & BARRIER_MASK_RASTER) {
r_stage_mask |= VK_PIPELINE_STAGE_VERTEX_SHADER_BIT | VK_PIPELINE_STAGE_FRAGMENT_SHADER_BIT;
@@ -73,7 +73,7 @@ RenderingDeviceVulkan::Buffer *RenderingDeviceVulkan::_get_buffer_from_owner(RID
r_stage_mask |= VK_PIPELINE_STAGE_COMPUTE_SHADER_BIT;
}
r_access_mask |= VK_ACCESS_UNIFORM_READ_BIT;
- buffer = uniform_buffer_owner.getornull(p_buffer);
+ buffer = uniform_buffer_owner.get_or_null(p_buffer);
} else if (texture_buffer_owner.owns(p_buffer)) {
if (p_post_barrier & BARRIER_MASK_RASTER) {
r_stage_mask |= VK_PIPELINE_STAGE_VERTEX_SHADER_BIT | VK_PIPELINE_STAGE_FRAGMENT_SHADER_BIT;
@@ -84,9 +84,9 @@ RenderingDeviceVulkan::Buffer *RenderingDeviceVulkan::_get_buffer_from_owner(RID
r_access_mask |= VK_ACCESS_SHADER_READ_BIT;
}
- buffer = &texture_buffer_owner.getornull(p_buffer)->buffer;
+ buffer = &texture_buffer_owner.get_or_null(p_buffer)->buffer;
} else if (storage_buffer_owner.owns(p_buffer)) {
- buffer = storage_buffer_owner.getornull(p_buffer);
+ buffer = storage_buffer_owner.get_or_null(p_buffer);
if (p_post_barrier & BARRIER_MASK_RASTER) {
r_stage_mask |= VK_PIPELINE_STAGE_VERTEX_SHADER_BIT | VK_PIPELINE_STAGE_FRAGMENT_SHADER_BIT;
r_access_mask |= VK_ACCESS_SHADER_READ_BIT | VK_ACCESS_SHADER_WRITE_BIT;
@@ -2048,12 +2048,12 @@ RID RenderingDeviceVulkan::texture_create(const TextureFormat &p_format, const T
RID RenderingDeviceVulkan::texture_create_shared(const TextureView &p_view, RID p_with_texture) {
_THREAD_SAFE_METHOD_
- Texture *src_texture = texture_owner.getornull(p_with_texture);
+ Texture *src_texture = texture_owner.get_or_null(p_with_texture);
ERR_FAIL_COND_V(!src_texture, RID());
if (src_texture->owner.is_valid()) { //ahh this is a share
p_with_texture = src_texture->owner;
- src_texture = texture_owner.getornull(src_texture->owner);
+ src_texture = texture_owner.get_or_null(src_texture->owner);
ERR_FAIL_COND_V(!src_texture, RID()); //this is a bug
}
@@ -2173,12 +2173,12 @@ RID RenderingDeviceVulkan::texture_create_shared(const TextureView &p_view, RID
RID RenderingDeviceVulkan::texture_create_shared_from_slice(const TextureView &p_view, RID p_with_texture, uint32_t p_layer, uint32_t p_mipmap, TextureSliceType p_slice_type) {
_THREAD_SAFE_METHOD_
- Texture *src_texture = texture_owner.getornull(p_with_texture);
+ Texture *src_texture = texture_owner.get_or_null(p_with_texture);
ERR_FAIL_COND_V(!src_texture, RID());
if (src_texture->owner.is_valid()) { //ahh this is a share
p_with_texture = src_texture->owner;
- src_texture = texture_owner.getornull(src_texture->owner);
+ src_texture = texture_owner.get_or_null(src_texture->owner);
ERR_FAIL_COND_V(!src_texture, RID()); //this is a bug
}
@@ -2299,12 +2299,12 @@ Error RenderingDeviceVulkan::_texture_update(RID p_texture, uint32_t p_layer, co
ERR_FAIL_COND_V_MSG((draw_list || compute_list) && !p_use_setup_queue, ERR_INVALID_PARAMETER,
"Updating textures is forbidden during creation of a draw or compute list");
- Texture *texture = texture_owner.getornull(p_texture);
+ Texture *texture = texture_owner.get_or_null(p_texture);
ERR_FAIL_COND_V(!texture, ERR_INVALID_PARAMETER);
if (texture->owner != RID()) {
p_texture = texture->owner;
- texture = texture_owner.getornull(texture->owner);
+ texture = texture_owner.get_or_null(texture->owner);
ERR_FAIL_COND_V(!texture, ERR_BUG); //this is a bug
}
@@ -2601,7 +2601,7 @@ Vector<uint8_t> RenderingDeviceVulkan::_texture_get_data_from_image(Texture *tex
Vector<uint8_t> RenderingDeviceVulkan::texture_get_data(RID p_texture, uint32_t p_layer) {
_THREAD_SAFE_METHOD_
- Texture *tex = texture_owner.getornull(p_texture);
+ Texture *tex = texture_owner.get_or_null(p_texture);
ERR_FAIL_COND_V(!tex, Vector<uint8_t>());
ERR_FAIL_COND_V_MSG(tex->bound, Vector<uint8_t>(),
@@ -2731,7 +2731,7 @@ Vector<uint8_t> RenderingDeviceVulkan::texture_get_data(RID p_texture, uint32_t
bool RenderingDeviceVulkan::texture_is_shared(RID p_texture) {
_THREAD_SAFE_METHOD_
- Texture *tex = texture_owner.getornull(p_texture);
+ Texture *tex = texture_owner.get_or_null(p_texture);
ERR_FAIL_COND_V(!tex, false);
return tex->owner.is_valid();
}
@@ -2743,7 +2743,7 @@ bool RenderingDeviceVulkan::texture_is_valid(RID p_texture) {
Size2i RenderingDeviceVulkan::texture_size(RID p_texture) {
_THREAD_SAFE_METHOD_
- Texture *tex = texture_owner.getornull(p_texture);
+ Texture *tex = texture_owner.get_or_null(p_texture);
ERR_FAIL_COND_V(!tex, Size2i());
return Size2i(tex->width, tex->height);
}
@@ -2751,7 +2751,7 @@ Size2i RenderingDeviceVulkan::texture_size(RID p_texture) {
Error RenderingDeviceVulkan::texture_copy(RID p_from_texture, RID p_to_texture, const Vector3 &p_from, const Vector3 &p_to, const Vector3 &p_size, uint32_t p_src_mipmap, uint32_t p_dst_mipmap, uint32_t p_src_layer, uint32_t p_dst_layer, uint32_t p_post_barrier) {
_THREAD_SAFE_METHOD_
- Texture *src_tex = texture_owner.getornull(p_from_texture);
+ Texture *src_tex = texture_owner.get_or_null(p_from_texture);
ERR_FAIL_COND_V(!src_tex, ERR_INVALID_PARAMETER);
ERR_FAIL_COND_V_MSG(src_tex->bound, ERR_INVALID_PARAMETER,
@@ -2772,7 +2772,7 @@ Error RenderingDeviceVulkan::texture_copy(RID p_from_texture, RID p_to_texture,
ERR_FAIL_COND_V(p_src_mipmap >= src_tex->mipmaps, ERR_INVALID_PARAMETER);
ERR_FAIL_COND_V(p_src_layer >= src_layer_count, ERR_INVALID_PARAMETER);
- Texture *dst_tex = texture_owner.getornull(p_to_texture);
+ Texture *dst_tex = texture_owner.get_or_null(p_to_texture);
ERR_FAIL_COND_V(!dst_tex, ERR_INVALID_PARAMETER);
ERR_FAIL_COND_V_MSG(dst_tex->bound, ERR_INVALID_PARAMETER,
@@ -2939,7 +2939,7 @@ Error RenderingDeviceVulkan::texture_copy(RID p_from_texture, RID p_to_texture,
Error RenderingDeviceVulkan::texture_resolve_multisample(RID p_from_texture, RID p_to_texture, uint32_t p_post_barrier) {
_THREAD_SAFE_METHOD_
- Texture *src_tex = texture_owner.getornull(p_from_texture);
+ Texture *src_tex = texture_owner.get_or_null(p_from_texture);
ERR_FAIL_COND_V(!src_tex, ERR_INVALID_PARAMETER);
ERR_FAIL_COND_V_MSG(src_tex->bound, ERR_INVALID_PARAMETER,
@@ -2950,7 +2950,7 @@ Error RenderingDeviceVulkan::texture_resolve_multisample(RID p_from_texture, RID
ERR_FAIL_COND_V_MSG(src_tex->type != TEXTURE_TYPE_2D, ERR_INVALID_PARAMETER, "Source texture must be 2D (or a slice of a 3D/Cube texture)");
ERR_FAIL_COND_V_MSG(src_tex->samples == TEXTURE_SAMPLES_1, ERR_INVALID_PARAMETER, "Source texture must be multisampled.");
- Texture *dst_tex = texture_owner.getornull(p_to_texture);
+ Texture *dst_tex = texture_owner.get_or_null(p_to_texture);
ERR_FAIL_COND_V(!dst_tex, ERR_INVALID_PARAMETER);
ERR_FAIL_COND_V_MSG(dst_tex->bound, ERR_INVALID_PARAMETER,
@@ -3110,7 +3110,7 @@ Error RenderingDeviceVulkan::texture_resolve_multisample(RID p_from_texture, RID
Error RenderingDeviceVulkan::texture_clear(RID p_texture, const Color &p_color, uint32_t p_base_mipmap, uint32_t p_mipmaps, uint32_t p_base_layer, uint32_t p_layers, uint32_t p_post_barrier) {
_THREAD_SAFE_METHOD_
- Texture *src_tex = texture_owner.getornull(p_texture);
+ Texture *src_tex = texture_owner.get_or_null(p_texture);
ERR_FAIL_COND_V(!src_tex, ERR_INVALID_PARAMETER);
ERR_FAIL_COND_V_MSG(src_tex->bound, ERR_INVALID_PARAMETER,
@@ -3880,7 +3880,7 @@ RID RenderingDeviceVulkan::framebuffer_create(const Vector<RID> &p_texture_attac
FramebufferPass pass;
for (int i = 0; i < p_texture_attachments.size(); i++) {
- Texture *texture = texture_owner.getornull(p_texture_attachments[i]);
+ Texture *texture = texture_owner.get_or_null(p_texture_attachments[i]);
ERR_FAIL_COND_V_MSG(!texture, RID(), "Texture index supplied for framebuffer (" + itos(i) + ") is not a valid texture.");
ERR_FAIL_COND_V_MSG(texture->layers != p_view_count, RID(), "Layers of our texture doesn't match view count for this framebuffer");
@@ -3905,7 +3905,7 @@ RID RenderingDeviceVulkan::framebuffer_create_multipass(const Vector<RID> &p_tex
Size2i size;
for (int i = 0; i < p_texture_attachments.size(); i++) {
- Texture *texture = texture_owner.getornull(p_texture_attachments[i]);
+ Texture *texture = texture_owner.get_or_null(p_texture_attachments[i]);
ERR_FAIL_COND_V_MSG(!texture, RID(), "Texture index supplied for framebuffer (" + itos(i) + ") is not a valid texture.");
ERR_FAIL_COND_V_MSG(texture->layers != p_view_count, RID(), "Layers of our texture doesn't match view count for this framebuffer");
@@ -3951,7 +3951,7 @@ RID RenderingDeviceVulkan::framebuffer_create_multipass(const Vector<RID> &p_tex
RenderingDevice::FramebufferFormatID RenderingDeviceVulkan::framebuffer_get_format(RID p_framebuffer) {
_THREAD_SAFE_METHOD_
- Framebuffer *framebuffer = framebuffer_owner.getornull(p_framebuffer);
+ Framebuffer *framebuffer = framebuffer_owner.get_or_null(p_framebuffer);
ERR_FAIL_COND_V(!framebuffer, INVALID_ID);
return framebuffer->format_id;
@@ -4101,7 +4101,7 @@ RID RenderingDeviceVulkan::vertex_array_create(uint32_t p_vertex_count, VertexFo
vertex_array.description = p_vertex_format;
vertex_array.max_instances_allowed = 0xFFFFFFFF; //by default as many as you want
for (int i = 0; i < p_src_buffers.size(); i++) {
- Buffer *buffer = vertex_buffer_owner.getornull(p_src_buffers[i]);
+ Buffer *buffer = vertex_buffer_owner.get_or_null(p_src_buffers[i]);
//validate with buffer
{
@@ -4197,7 +4197,7 @@ RID RenderingDeviceVulkan::index_array_create(RID p_index_buffer, uint32_t p_ind
ERR_FAIL_COND_V(!index_buffer_owner.owns(p_index_buffer), RID());
- IndexBuffer *index_buffer = index_buffer_owner.getornull(p_index_buffer);
+ IndexBuffer *index_buffer = index_buffer_owner.get_or_null(p_index_buffer);
ERR_FAIL_COND_V(p_index_count == 0, RID());
ERR_FAIL_COND_V(p_index_offset + p_index_count > index_buffer->index_count, RID());
@@ -4241,7 +4241,7 @@ static VkShaderStageFlagBits shader_stage_masks[RenderingDevice::SHADER_STAGE_MA
String RenderingDeviceVulkan::_shader_uniform_debug(RID p_shader, int p_set) {
String ret;
- const Shader *shader = shader_owner.getornull(p_shader);
+ const Shader *shader = shader_owner.get_or_null(p_shader);
ERR_FAIL_COND_V(!shader, String());
for (int i = 0; i < shader->sets.size(); i++) {
if (p_set >= 0 && i != p_set) {
@@ -5272,7 +5272,7 @@ RID RenderingDeviceVulkan::shader_create_from_bytecode(const Vector<uint8_t> &p_
uint32_t RenderingDeviceVulkan::shader_get_vertex_input_attribute_mask(RID p_shader) {
_THREAD_SAFE_METHOD_
- const Shader *shader = shader_owner.getornull(p_shader);
+ const Shader *shader = shader_owner.get_or_null(p_shader);
ERR_FAIL_COND_V(!shader, 0);
return shader->vertex_input_mask;
}
@@ -5494,7 +5494,7 @@ RID RenderingDeviceVulkan::uniform_set_create(const Vector<Uniform> &p_uniforms,
ERR_FAIL_COND_V(p_uniforms.size() == 0, RID());
- Shader *shader = shader_owner.getornull(p_shader);
+ Shader *shader = shader_owner.get_or_null(p_shader);
ERR_FAIL_COND_V(!shader, RID());
ERR_FAIL_COND_V_MSG(p_shader_set >= (uint32_t)shader->sets.size() || shader->sets[p_shader_set].uniform_info.size() == 0, RID(),
@@ -5563,7 +5563,7 @@ RID RenderingDeviceVulkan::uniform_set_create(const Vector<Uniform> &p_uniforms,
Vector<VkDescriptorImageInfo> image_info;
for (int j = 0; j < uniform.ids.size(); j++) {
- VkSampler *sampler = sampler_owner.getornull(uniform.ids[j]);
+ VkSampler *sampler = sampler_owner.get_or_null(uniform.ids[j]);
ERR_FAIL_COND_V_MSG(!sampler, RID(), "Sampler (binding: " + itos(uniform.binding) + ", index " + itos(j) + ") is not a valid sampler.");
VkDescriptorImageInfo img_info;
@@ -5596,10 +5596,10 @@ RID RenderingDeviceVulkan::uniform_set_create(const Vector<Uniform> &p_uniforms,
Vector<VkDescriptorImageInfo> image_info;
for (int j = 0; j < uniform.ids.size(); j += 2) {
- VkSampler *sampler = sampler_owner.getornull(uniform.ids[j + 0]);
+ VkSampler *sampler = sampler_owner.get_or_null(uniform.ids[j + 0]);
ERR_FAIL_COND_V_MSG(!sampler, RID(), "SamplerBuffer (binding: " + itos(uniform.binding) + ", index " + itos(j + 1) + ") is not a valid sampler.");
- Texture *texture = texture_owner.getornull(uniform.ids[j + 1]);
+ Texture *texture = texture_owner.get_or_null(uniform.ids[j + 1]);
ERR_FAIL_COND_V_MSG(!texture, RID(), "Texture (binding: " + itos(uniform.binding) + ", index " + itos(j) + ") is not a valid texture.");
ERR_FAIL_COND_V_MSG(!(texture->usage_flags & TEXTURE_USAGE_SAMPLING_BIT), RID(),
@@ -5621,7 +5621,7 @@ RID RenderingDeviceVulkan::uniform_set_create(const Vector<Uniform> &p_uniforms,
mutable_sampled_textures.push_back(texture);
}
if (texture->owner.is_valid()) {
- texture = texture_owner.getornull(texture->owner);
+ texture = texture_owner.get_or_null(texture->owner);
ERR_FAIL_COND_V(!texture, RID()); //bug, should never happen
}
@@ -5652,7 +5652,7 @@ RID RenderingDeviceVulkan::uniform_set_create(const Vector<Uniform> &p_uniforms,
Vector<VkDescriptorImageInfo> image_info;
for (int j = 0; j < uniform.ids.size(); j++) {
- Texture *texture = texture_owner.getornull(uniform.ids[j]);
+ Texture *texture = texture_owner.get_or_null(uniform.ids[j]);
ERR_FAIL_COND_V_MSG(!texture, RID(), "Texture (binding: " + itos(uniform.binding) + ", index " + itos(j) + ") is not a valid texture.");
ERR_FAIL_COND_V_MSG(!(texture->usage_flags & TEXTURE_USAGE_SAMPLING_BIT), RID(),
@@ -5675,7 +5675,7 @@ RID RenderingDeviceVulkan::uniform_set_create(const Vector<Uniform> &p_uniforms,
}
if (texture->owner.is_valid()) {
- texture = texture_owner.getornull(texture->owner);
+ texture = texture_owner.get_or_null(texture->owner);
ERR_FAIL_COND_V(!texture, RID()); //bug, should never happen
}
@@ -5705,7 +5705,7 @@ RID RenderingDeviceVulkan::uniform_set_create(const Vector<Uniform> &p_uniforms,
Vector<VkDescriptorImageInfo> image_info;
for (int j = 0; j < uniform.ids.size(); j++) {
- Texture *texture = texture_owner.getornull(uniform.ids[j]);
+ Texture *texture = texture_owner.get_or_null(uniform.ids[j]);
ERR_FAIL_COND_V_MSG(!texture, RID(),
"Image (binding: " + itos(uniform.binding) + ", index " + itos(j) + ") is not a valid texture.");
@@ -5723,7 +5723,7 @@ RID RenderingDeviceVulkan::uniform_set_create(const Vector<Uniform> &p_uniforms,
}
if (texture->owner.is_valid()) {
- texture = texture_owner.getornull(texture->owner);
+ texture = texture_owner.get_or_null(texture->owner);
ERR_FAIL_COND_V(!texture, RID()); //bug, should never happen
}
@@ -5755,7 +5755,7 @@ RID RenderingDeviceVulkan::uniform_set_create(const Vector<Uniform> &p_uniforms,
Vector<VkBufferView> buffer_view;
for (int j = 0; j < uniform.ids.size(); j++) {
- TextureBuffer *buffer = texture_buffer_owner.getornull(uniform.ids[j]);
+ TextureBuffer *buffer = texture_buffer_owner.get_or_null(uniform.ids[j]);
ERR_FAIL_COND_V_MSG(!buffer, RID(), "Texture Buffer (binding: " + itos(uniform.binding) + ", index " + itos(j) + ") is not a valid texture buffer.");
buffer_info.push_back(buffer->buffer.buffer_info);
@@ -5786,10 +5786,10 @@ RID RenderingDeviceVulkan::uniform_set_create(const Vector<Uniform> &p_uniforms,
Vector<VkBufferView> buffer_view;
for (int j = 0; j < uniform.ids.size(); j += 2) {
- VkSampler *sampler = sampler_owner.getornull(uniform.ids[j + 0]);
+ VkSampler *sampler = sampler_owner.get_or_null(uniform.ids[j + 0]);
ERR_FAIL_COND_V_MSG(!sampler, RID(), "SamplerBuffer (binding: " + itos(uniform.binding) + ", index " + itos(j + 1) + ") is not a valid sampler.");
- TextureBuffer *buffer = texture_buffer_owner.getornull(uniform.ids[j + 1]);
+ TextureBuffer *buffer = texture_buffer_owner.get_or_null(uniform.ids[j + 1]);
VkDescriptorImageInfo img_info;
img_info.sampler = *sampler;
@@ -5821,7 +5821,7 @@ RID RenderingDeviceVulkan::uniform_set_create(const Vector<Uniform> &p_uniforms,
ERR_FAIL_COND_V_MSG(uniform.ids.size() != 1, RID(),
"Uniform buffer supplied (binding: " + itos(uniform.binding) + ") must provide one ID (" + itos(uniform.ids.size()) + " provided).");
- Buffer *buffer = uniform_buffer_owner.getornull(uniform.ids[0]);
+ Buffer *buffer = uniform_buffer_owner.get_or_null(uniform.ids[0]);
ERR_FAIL_COND_V_MSG(!buffer, RID(), "Uniform buffer supplied (binding: " + itos(uniform.binding) + ") is invalid.");
ERR_FAIL_COND_V_MSG(buffer->size != (uint32_t)set_uniform.length, RID(),
@@ -5842,9 +5842,9 @@ RID RenderingDeviceVulkan::uniform_set_create(const Vector<Uniform> &p_uniforms,
Buffer *buffer = nullptr;
if (storage_buffer_owner.owns(uniform.ids[0])) {
- buffer = storage_buffer_owner.getornull(uniform.ids[0]);
+ buffer = storage_buffer_owner.get_or_null(uniform.ids[0]);
} else if (vertex_buffer_owner.owns(uniform.ids[0])) {
- buffer = vertex_buffer_owner.getornull(uniform.ids[0]);
+ buffer = vertex_buffer_owner.get_or_null(uniform.ids[0]);
ERR_FAIL_COND_V_MSG(!(buffer->usage & VK_BUFFER_USAGE_STORAGE_BUFFER_BIT), RID(), "Vertex buffer supplied (binding: " + itos(uniform.binding) + ") was not created with storage flag.");
}
@@ -5875,7 +5875,7 @@ RID RenderingDeviceVulkan::uniform_set_create(const Vector<Uniform> &p_uniforms,
Vector<VkDescriptorImageInfo> image_info;
for (int j = 0; j < uniform.ids.size(); j++) {
- Texture *texture = texture_owner.getornull(uniform.ids[j]);
+ Texture *texture = texture_owner.get_or_null(uniform.ids[j]);
ERR_FAIL_COND_V_MSG(!texture, RID(),
"InputAttachment (binding: " + itos(uniform.binding) + ", index " + itos(j) + ") is not a valid texture.");
@@ -5888,7 +5888,7 @@ RID RenderingDeviceVulkan::uniform_set_create(const Vector<Uniform> &p_uniforms,
img_info.imageView = texture->view;
if (texture->owner.is_valid()) {
- texture = texture_owner.getornull(texture->owner);
+ texture = texture_owner.get_or_null(texture->owner);
ERR_FAIL_COND_V(!texture, RID()); //bug, should never happen
}
@@ -5977,7 +5977,7 @@ bool RenderingDeviceVulkan::uniform_set_is_valid(RID p_uniform_set) {
}
void RenderingDeviceVulkan::uniform_set_set_invalidation_callback(RID p_uniform_set, UniformSetInvalidatedCallback p_callback, void *p_userdata) {
- UniformSet *us = uniform_set_owner.getornull(p_uniform_set);
+ UniformSet *us = uniform_set_owner.get_or_null(p_uniform_set);
ERR_FAIL_COND(!us);
us->invalidated_callback = p_callback;
us->invalidated_callback_userdata = p_userdata;
@@ -6126,7 +6126,7 @@ RID RenderingDeviceVulkan::render_pipeline_create(RID p_shader, FramebufferForma
_THREAD_SAFE_METHOD_
//needs a shader
- Shader *shader = shader_owner.getornull(p_shader);
+ Shader *shader = shader_owner.get_or_null(p_shader);
ERR_FAIL_COND_V(!shader, RID());
ERR_FAIL_COND_V_MSG(shader->is_compute, RID(),
@@ -6568,7 +6568,7 @@ RID RenderingDeviceVulkan::compute_pipeline_create(RID p_shader, const Vector<Pi
_THREAD_SAFE_METHOD_
//needs a shader
- Shader *shader = shader_owner.getornull(p_shader);
+ Shader *shader = shader_owner.get_or_null(p_shader);
ERR_FAIL_COND_V(!shader, RID());
ERR_FAIL_COND_V_MSG(!shader->is_compute, RID(),
@@ -6779,7 +6779,7 @@ Error RenderingDeviceVulkan::_draw_list_setup_framebuffer(Framebuffer *p_framebu
framebuffer_create_info.renderPass = version.render_pass;
Vector<VkImageView> attachments;
for (int i = 0; i < p_framebuffer->texture_ids.size(); i++) {
- Texture *texture = texture_owner.getornull(p_framebuffer->texture_ids[i]);
+ Texture *texture = texture_owner.get_or_null(p_framebuffer->texture_ids[i]);
ERR_FAIL_COND_V(!texture, ERR_BUG);
attachments.push_back(texture->view);
ERR_FAIL_COND_V(texture->width != p_framebuffer->size.width, ERR_BUG);
@@ -6831,7 +6831,7 @@ Error RenderingDeviceVulkan::_draw_list_render_pass_begin(Framebuffer *framebuff
{
int color_index = 0;
for (int i = 0; i < framebuffer->texture_ids.size(); i++) {
- Texture *texture = texture_owner.getornull(framebuffer->texture_ids[i]);
+ Texture *texture = texture_owner.get_or_null(framebuffer->texture_ids[i]);
VkClearValue clear_value;
if (color_index < p_clear_colors.size() && texture->usage_flags & TEXTURE_USAGE_COLOR_ATTACHMENT_BIT) {
@@ -6859,7 +6859,7 @@ Error RenderingDeviceVulkan::_draw_list_render_pass_begin(Framebuffer *framebuff
render_pass_begin.pClearValues = clear_values.ptr();
for (int i = 0; i < p_storage_textures.size(); i++) {
- Texture *texture = texture_owner.getornull(p_storage_textures[i]);
+ Texture *texture = texture_owner.get_or_null(p_storage_textures[i]);
ERR_CONTINUE_MSG(!(texture->usage_flags & TEXTURE_USAGE_STORAGE_BIT), "Supplied storage texture " + itos(i) + " for draw list is not set to be used for storage.");
if (texture->usage_flags & TEXTURE_USAGE_SAMPLING_BIT) {
@@ -6897,7 +6897,7 @@ Error RenderingDeviceVulkan::_draw_list_render_pass_begin(Framebuffer *framebuff
draw_list_unbind_depth_textures = p_final_depth_action != FINAL_ACTION_CONTINUE;
for (int i = 0; i < framebuffer->texture_ids.size(); i++) {
- Texture *texture = texture_owner.getornull(framebuffer->texture_ids[i]);
+ Texture *texture = texture_owner.get_or_null(framebuffer->texture_ids[i]);
texture->bound = true;
draw_list_bound_textures.push_back(framebuffer->texture_ids[i]);
}
@@ -6909,7 +6909,7 @@ void RenderingDeviceVulkan::_draw_list_insert_clear_region(DrawList *draw_list,
Vector<VkClearAttachment> clear_attachments;
int color_index = 0;
for (int i = 0; i < framebuffer->texture_ids.size(); i++) {
- Texture *texture = texture_owner.getornull(framebuffer->texture_ids[i]);
+ Texture *texture = texture_owner.get_or_null(framebuffer->texture_ids[i]);
VkClearAttachment clear_at = {};
if (p_clear_color && texture->usage_flags & TEXTURE_USAGE_COLOR_ATTACHMENT_BIT) {
@@ -6952,7 +6952,7 @@ RenderingDevice::DrawListID RenderingDeviceVulkan::draw_list_begin(RID p_framebu
ERR_FAIL_COND_V_MSG(draw_list != nullptr, INVALID_ID, "Only one draw list can be active at the same time.");
ERR_FAIL_COND_V_MSG(compute_list != nullptr && !compute_list->state.allow_draw_overlap, INVALID_ID, "Only one draw/compute list can be active at the same time.");
- Framebuffer *framebuffer = framebuffer_owner.getornull(p_framebuffer);
+ Framebuffer *framebuffer = framebuffer_owner.get_or_null(p_framebuffer);
ERR_FAIL_COND_V(!framebuffer, INVALID_ID);
Point2i viewport_offset;
@@ -6993,7 +6993,7 @@ RenderingDevice::DrawListID RenderingDeviceVulkan::draw_list_begin(RID p_framebu
int color_count = 0;
for (int i = 0; i < framebuffer->texture_ids.size(); i++) {
- Texture *texture = texture_owner.getornull(framebuffer->texture_ids[i]);
+ Texture *texture = texture_owner.get_or_null(framebuffer->texture_ids[i]);
if (texture->usage_flags & TEXTURE_USAGE_COLOR_ATTACHMENT_BIT) {
color_count++;
@@ -7056,7 +7056,7 @@ Error RenderingDeviceVulkan::draw_list_begin_split(RID p_framebuffer, uint32_t p
ERR_FAIL_COND_V(p_splits < 1, ERR_INVALID_DECLARATION);
- Framebuffer *framebuffer = framebuffer_owner.getornull(p_framebuffer);
+ Framebuffer *framebuffer = framebuffer_owner.get_or_null(p_framebuffer);
ERR_FAIL_COND_V(!framebuffer, ERR_INVALID_DECLARATION);
Point2i viewport_offset;
@@ -7091,7 +7091,7 @@ Error RenderingDeviceVulkan::draw_list_begin_split(RID p_framebuffer, uint32_t p
int color_count = 0;
for (int i = 0; i < framebuffer->texture_ids.size(); i++) {
- Texture *texture = texture_owner.getornull(framebuffer->texture_ids[i]);
+ Texture *texture = texture_owner.get_or_null(framebuffer->texture_ids[i]);
if (texture->usage_flags & TEXTURE_USAGE_COLOR_ATTACHMENT_BIT) {
color_count++;
@@ -7192,7 +7192,7 @@ void RenderingDeviceVulkan::draw_list_bind_render_pipeline(DrawListID p_list, RI
ERR_FAIL_COND_MSG(!dl->validation.active, "Submitted Draw Lists can no longer be modified.");
#endif
- const RenderPipeline *pipeline = render_pipeline_owner.getornull(p_render_pipeline);
+ const RenderPipeline *pipeline = render_pipeline_owner.get_or_null(p_render_pipeline);
ERR_FAIL_COND(!pipeline);
#ifdef DEBUG_ENABLED
ERR_FAIL_COND(pipeline->validation.framebuffer_format != draw_list_framebuffer_format && pipeline->validation.render_pass != draw_list_current_subpass);
@@ -7267,7 +7267,7 @@ void RenderingDeviceVulkan::draw_list_bind_uniform_set(DrawListID p_list, RID p_
ERR_FAIL_COND_MSG(!dl->validation.active, "Submitted Draw Lists can no longer be modified.");
#endif
- const UniformSet *uniform_set = uniform_set_owner.getornull(p_uniform_set);
+ const UniformSet *uniform_set = uniform_set_owner.get_or_null(p_uniform_set);
ERR_FAIL_COND(!uniform_set);
if (p_index > dl->state.set_count) {
@@ -7315,7 +7315,7 @@ void RenderingDeviceVulkan::draw_list_bind_vertex_array(DrawListID p_list, RID p
ERR_FAIL_COND_MSG(!dl->validation.active, "Submitted Draw Lists can no longer be modified.");
#endif
- const VertexArray *vertex_array = vertex_array_owner.getornull(p_vertex_array);
+ const VertexArray *vertex_array = vertex_array_owner.get_or_null(p_vertex_array);
ERR_FAIL_COND(!vertex_array);
if (dl->state.vertex_array == p_vertex_array) {
@@ -7339,7 +7339,7 @@ void RenderingDeviceVulkan::draw_list_bind_index_array(DrawListID p_list, RID p_
ERR_FAIL_COND_MSG(!dl->validation.active, "Submitted Draw Lists can no longer be modified.");
#endif
- const IndexArray *index_array = index_array_owner.getornull(p_index_array);
+ const IndexArray *index_array = index_array_owner.get_or_null(p_index_array);
ERR_FAIL_COND(!index_array);
if (dl->state.index_array == p_index_array) {
@@ -7425,7 +7425,7 @@ void RenderingDeviceVulkan::draw_list_draw(DrawListID p_list, bool p_use_indices
if (dl->state.sets[i].uniform_set_format == 0) {
ERR_FAIL_MSG("Uniforms were never supplied for set (" + itos(i) + ") at the time of drawing, which are required by the pipeline");
} else if (uniform_set_owner.owns(dl->state.sets[i].uniform_set)) {
- UniformSet *us = uniform_set_owner.getornull(dl->state.sets[i].uniform_set);
+ UniformSet *us = uniform_set_owner.get_or_null(dl->state.sets[i].uniform_set);
ERR_FAIL_MSG("Uniforms supplied for set (" + itos(i) + "):\n" + _shader_uniform_debug(us->shader_id, us->shader_set) + "\nare not the same format as required by the pipeline shader. Pipeline shader requires the following bindings:\n" + _shader_uniform_debug(dl->state.pipeline_shader));
} else {
ERR_FAIL_MSG("Uniforms supplied for set (" + itos(i) + ", which was was just freed) are not the same format as required by the pipeline shader. Pipeline shader requires the following bindings:\n" + _shader_uniform_debug(dl->state.pipeline_shader));
@@ -7696,7 +7696,7 @@ void RenderingDeviceVulkan::draw_list_end(uint32_t p_post_barrier) {
vkCmdEndRenderPass(frames[frame].draw_command_buffer);
for (int i = 0; i < draw_list_bound_textures.size(); i++) {
- Texture *texture = texture_owner.getornull(draw_list_bound_textures[i]);
+ Texture *texture = texture_owner.get_or_null(draw_list_bound_textures[i]);
ERR_CONTINUE(!texture); //wtf
if (draw_list_unbind_color_textures && (texture->usage_flags & TEXTURE_USAGE_COLOR_ATTACHMENT_BIT)) {
texture->bound = false;
@@ -7744,7 +7744,7 @@ void RenderingDeviceVulkan::draw_list_end(uint32_t p_post_barrier) {
}
for (uint32_t i = 0; i < image_barrier_count; i++) {
- Texture *texture = texture_owner.getornull(draw_list_storage_textures[i]);
+ Texture *texture = texture_owner.get_or_null(draw_list_storage_textures[i]);
VkImageMemoryBarrier &image_memory_barrier = image_barriers[i];
image_memory_barrier.sType = VK_STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER;
@@ -7810,7 +7810,7 @@ void RenderingDeviceVulkan::compute_list_bind_compute_pipeline(ComputeListID p_l
ComputeList *cl = compute_list;
- const ComputePipeline *pipeline = compute_pipeline_owner.getornull(p_compute_pipeline);
+ const ComputePipeline *pipeline = compute_pipeline_owner.get_or_null(p_compute_pipeline);
ERR_FAIL_COND(!pipeline);
if (p_compute_pipeline == cl->state.pipeline) {
@@ -7883,7 +7883,7 @@ void RenderingDeviceVulkan::compute_list_bind_uniform_set(ComputeListID p_list,
ERR_FAIL_COND_MSG(!cl->validation.active, "Submitted Compute Lists can no longer be modified.");
#endif
- UniformSet *uniform_set = uniform_set_owner.getornull(p_uniform_set);
+ UniformSet *uniform_set = uniform_set_owner.get_or_null(p_uniform_set);
ERR_FAIL_COND(!uniform_set);
if (p_index > cl->state.set_count) {
@@ -8082,7 +8082,7 @@ void RenderingDeviceVulkan::compute_list_dispatch(ComputeListID p_list, uint32_t
if (cl->state.sets[i].uniform_set_format == 0) {
ERR_FAIL_MSG("Uniforms were never supplied for set (" + itos(i) + ") at the time of drawing, which are required by the pipeline");
} else if (uniform_set_owner.owns(cl->state.sets[i].uniform_set)) {
- UniformSet *us = uniform_set_owner.getornull(cl->state.sets[i].uniform_set);
+ UniformSet *us = uniform_set_owner.get_or_null(cl->state.sets[i].uniform_set);
ERR_FAIL_MSG("Uniforms supplied for set (" + itos(i) + "):\n" + _shader_uniform_debug(us->shader_id, us->shader_set) + "\nare not the same format as required by the pipeline shader. Pipeline shader requires the following bindings:\n" + _shader_uniform_debug(cl->state.pipeline_shader));
} else {
ERR_FAIL_MSG("Uniforms supplied for set (" + itos(i) + ", which was was just freed) are not the same format as required by the pipeline shader. Pipeline shader requires the following bindings:\n" + _shader_uniform_debug(cl->state.pipeline_shader));
@@ -8125,7 +8125,7 @@ void RenderingDeviceVulkan::compute_list_dispatch_indirect(ComputeListID p_list,
ERR_FAIL_COND(!compute_list);
ComputeList *cl = compute_list;
- Buffer *buffer = storage_buffer_owner.getornull(p_buffer);
+ Buffer *buffer = storage_buffer_owner.get_or_null(p_buffer);
ERR_FAIL_COND(!buffer);
ERR_FAIL_COND_MSG(!(buffer->usage & STORAGE_BUFFER_USAGE_DISPATCH_INDIRECT), "Buffer provided was not created to do indirect dispatch.");
@@ -8159,7 +8159,7 @@ void RenderingDeviceVulkan::compute_list_dispatch_indirect(ComputeListID p_list,
if (cl->state.sets[i].uniform_set_format == 0) {
ERR_FAIL_MSG("Uniforms were never supplied for set (" + itos(i) + ") at the time of drawing, which are required by the pipeline");
} else if (uniform_set_owner.owns(cl->state.sets[i].uniform_set)) {
- UniformSet *us = uniform_set_owner.getornull(cl->state.sets[i].uniform_set);
+ UniformSet *us = uniform_set_owner.get_or_null(cl->state.sets[i].uniform_set);
ERR_FAIL_MSG("Uniforms supplied for set (" + itos(i) + "):\n" + _shader_uniform_debug(us->shader_id, us->shader_set) + "\nare not the same format as required by the pipeline shader. Pipeline shader requires the following bindings:\n" + _shader_uniform_debug(cl->state.pipeline_shader));
} else {
ERR_FAIL_MSG("Uniforms supplied for set (" + itos(i) + ", which was was just freed) are not the same format as required by the pipeline shader. Pipeline shader requires the following bindings:\n" + _shader_uniform_debug(cl->state.pipeline_shader));
@@ -8371,25 +8371,25 @@ void RenderingDeviceVulkan::draw_list_render_secondary_to_framebuffer(ID p_frame
void RenderingDeviceVulkan::_free_internal(RID p_id) {
//push everything so it's disposed of next time this frame index is processed (means, it's safe to do it)
if (texture_owner.owns(p_id)) {
- Texture *texture = texture_owner.getornull(p_id);
+ Texture *texture = texture_owner.get_or_null(p_id);
frames[frame].textures_to_dispose_of.push_back(*texture);
texture_owner.free(p_id);
} else if (framebuffer_owner.owns(p_id)) {
- Framebuffer *framebuffer = framebuffer_owner.getornull(p_id);
+ Framebuffer *framebuffer = framebuffer_owner.get_or_null(p_id);
frames[frame].framebuffers_to_dispose_of.push_back(*framebuffer);
framebuffer_owner.free(p_id);
} else if (sampler_owner.owns(p_id)) {
- VkSampler *sampler = sampler_owner.getornull(p_id);
+ VkSampler *sampler = sampler_owner.get_or_null(p_id);
frames[frame].samplers_to_dispose_of.push_back(*sampler);
sampler_owner.free(p_id);
} else if (vertex_buffer_owner.owns(p_id)) {
- Buffer *vertex_buffer = vertex_buffer_owner.getornull(p_id);
+ Buffer *vertex_buffer = vertex_buffer_owner.get_or_null(p_id);
frames[frame].buffers_to_dispose_of.push_back(*vertex_buffer);
vertex_buffer_owner.free(p_id);
} else if (vertex_array_owner.owns(p_id)) {
vertex_array_owner.free(p_id);
} else if (index_buffer_owner.owns(p_id)) {
- IndexBuffer *index_buffer = index_buffer_owner.getornull(p_id);
+ IndexBuffer *index_buffer = index_buffer_owner.get_or_null(p_id);
Buffer b;
b.allocation = index_buffer->allocation;
b.buffer = index_buffer->buffer;
@@ -8400,24 +8400,24 @@ void RenderingDeviceVulkan::_free_internal(RID p_id) {
} else if (index_array_owner.owns(p_id)) {
index_array_owner.free(p_id);
} else if (shader_owner.owns(p_id)) {
- Shader *shader = shader_owner.getornull(p_id);
+ Shader *shader = shader_owner.get_or_null(p_id);
frames[frame].shaders_to_dispose_of.push_back(*shader);
shader_owner.free(p_id);
} else if (uniform_buffer_owner.owns(p_id)) {
- Buffer *uniform_buffer = uniform_buffer_owner.getornull(p_id);
+ Buffer *uniform_buffer = uniform_buffer_owner.get_or_null(p_id);
frames[frame].buffers_to_dispose_of.push_back(*uniform_buffer);
uniform_buffer_owner.free(p_id);
} else if (texture_buffer_owner.owns(p_id)) {
- TextureBuffer *texture_buffer = texture_buffer_owner.getornull(p_id);
+ TextureBuffer *texture_buffer = texture_buffer_owner.get_or_null(p_id);
frames[frame].buffers_to_dispose_of.push_back(texture_buffer->buffer);
frames[frame].buffer_views_to_dispose_of.push_back(texture_buffer->view);
texture_buffer_owner.free(p_id);
} else if (storage_buffer_owner.owns(p_id)) {
- Buffer *storage_buffer = storage_buffer_owner.getornull(p_id);
+ Buffer *storage_buffer = storage_buffer_owner.get_or_null(p_id);
frames[frame].buffers_to_dispose_of.push_back(*storage_buffer);
storage_buffer_owner.free(p_id);
} else if (uniform_set_owner.owns(p_id)) {
- UniformSet *uniform_set = uniform_set_owner.getornull(p_id);
+ UniformSet *uniform_set = uniform_set_owner.get_or_null(p_id);
frames[frame].uniform_sets_to_dispose_of.push_back(*uniform_set);
if (uniform_set->invalidated_callback != nullptr) {
uniform_set->invalidated_callback(p_id, uniform_set->invalidated_callback_userdata);
@@ -8425,11 +8425,11 @@ void RenderingDeviceVulkan::_free_internal(RID p_id) {
uniform_set_owner.free(p_id);
} else if (render_pipeline_owner.owns(p_id)) {
- RenderPipeline *pipeline = render_pipeline_owner.getornull(p_id);
+ RenderPipeline *pipeline = render_pipeline_owner.get_or_null(p_id);
frames[frame].render_pipelines_to_dispose_of.push_back(*pipeline);
render_pipeline_owner.free(p_id);
} else if (compute_pipeline_owner.owns(p_id)) {
- ComputePipeline *pipeline = compute_pipeline_owner.getornull(p_id);
+ ComputePipeline *pipeline = compute_pipeline_owner.get_or_null(p_id);
frames[frame].compute_pipelines_to_dispose_of.push_back(*pipeline);
compute_pipeline_owner.free(p_id);
} else {
@@ -8448,49 +8448,49 @@ void RenderingDeviceVulkan::free(RID p_id) {
// We just expose the resources that are owned and can be accessed easily.
void RenderingDeviceVulkan::set_resource_name(RID p_id, const String p_name) {
if (texture_owner.owns(p_id)) {
- Texture *texture = texture_owner.getornull(p_id);
+ Texture *texture = texture_owner.get_or_null(p_id);
if (texture->owner.is_null()) {
// Don't set the source texture's name when calling on a texture view
context->set_object_name(VK_OBJECT_TYPE_IMAGE, uint64_t(texture->image), p_name);
}
context->set_object_name(VK_OBJECT_TYPE_IMAGE_VIEW, uint64_t(texture->view), p_name + " View");
} else if (framebuffer_owner.owns(p_id)) {
- //Framebuffer *framebuffer = framebuffer_owner.getornull(p_id);
+ //Framebuffer *framebuffer = framebuffer_owner.get_or_null(p_id);
// Not implemented for now as the relationship between Framebuffer and RenderPass is very complex
} else if (sampler_owner.owns(p_id)) {
- VkSampler *sampler = sampler_owner.getornull(p_id);
+ VkSampler *sampler = sampler_owner.get_or_null(p_id);
context->set_object_name(VK_OBJECT_TYPE_SAMPLER, uint64_t(*sampler), p_name);
} else if (vertex_buffer_owner.owns(p_id)) {
- Buffer *vertex_buffer = vertex_buffer_owner.getornull(p_id);
+ Buffer *vertex_buffer = vertex_buffer_owner.get_or_null(p_id);
context->set_object_name(VK_OBJECT_TYPE_BUFFER, uint64_t(vertex_buffer->buffer), p_name);
} else if (index_buffer_owner.owns(p_id)) {
- IndexBuffer *index_buffer = index_buffer_owner.getornull(p_id);
+ IndexBuffer *index_buffer = index_buffer_owner.get_or_null(p_id);
context->set_object_name(VK_OBJECT_TYPE_BUFFER, uint64_t(index_buffer->buffer), p_name);
} else if (shader_owner.owns(p_id)) {
- Shader *shader = shader_owner.getornull(p_id);
+ Shader *shader = shader_owner.get_or_null(p_id);
context->set_object_name(VK_OBJECT_TYPE_PIPELINE_LAYOUT, uint64_t(shader->pipeline_layout), p_name + " Pipeline Layout");
for (int i = 0; i < shader->sets.size(); i++) {
context->set_object_name(VK_OBJECT_TYPE_DESCRIPTOR_SET_LAYOUT, uint64_t(shader->sets[i].descriptor_set_layout), p_name);
}
} else if (uniform_buffer_owner.owns(p_id)) {
- Buffer *uniform_buffer = uniform_buffer_owner.getornull(p_id);
+ Buffer *uniform_buffer = uniform_buffer_owner.get_or_null(p_id);
context->set_object_name(VK_OBJECT_TYPE_BUFFER, uint64_t(uniform_buffer->buffer), p_name);
} else if (texture_buffer_owner.owns(p_id)) {
- TextureBuffer *texture_buffer = texture_buffer_owner.getornull(p_id);
+ TextureBuffer *texture_buffer = texture_buffer_owner.get_or_null(p_id);
context->set_object_name(VK_OBJECT_TYPE_BUFFER, uint64_t(texture_buffer->buffer.buffer), p_name);
context->set_object_name(VK_OBJECT_TYPE_BUFFER_VIEW, uint64_t(texture_buffer->view), p_name + " View");
} else if (storage_buffer_owner.owns(p_id)) {
- Buffer *storage_buffer = storage_buffer_owner.getornull(p_id);
+ Buffer *storage_buffer = storage_buffer_owner.get_or_null(p_id);
context->set_object_name(VK_OBJECT_TYPE_BUFFER, uint64_t(storage_buffer->buffer), p_name);
} else if (uniform_set_owner.owns(p_id)) {
- UniformSet *uniform_set = uniform_set_owner.getornull(p_id);
+ UniformSet *uniform_set = uniform_set_owner.get_or_null(p_id);
context->set_object_name(VK_OBJECT_TYPE_DESCRIPTOR_SET, uint64_t(uniform_set->descriptor_set), p_name);
} else if (render_pipeline_owner.owns(p_id)) {
- RenderPipeline *pipeline = render_pipeline_owner.getornull(p_id);
+ RenderPipeline *pipeline = render_pipeline_owner.get_or_null(p_id);
context->set_object_name(VK_OBJECT_TYPE_PIPELINE, uint64_t(pipeline->pipeline), p_name);
context->set_object_name(VK_OBJECT_TYPE_PIPELINE_LAYOUT, uint64_t(pipeline->pipeline_layout), p_name + " Layout");
} else if (compute_pipeline_owner.owns(p_id)) {
- ComputePipeline *pipeline = compute_pipeline_owner.getornull(p_id);
+ ComputePipeline *pipeline = compute_pipeline_owner.get_or_null(p_id);
context->set_object_name(VK_OBJECT_TYPE_PIPELINE, uint64_t(pipeline->pipeline), p_name);
context->set_object_name(VK_OBJECT_TYPE_PIPELINE_LAYOUT, uint64_t(pipeline->pipeline_layout), p_name + " Layout");
} else {
@@ -9037,31 +9037,31 @@ uint64_t RenderingDeviceVulkan::get_driver_resource(DriverResource p_resource, R
return context->get_graphics_queue_family_index();
}; break;
case DRIVER_RESOURCE_VULKAN_IMAGE: {
- Texture *tex = texture_owner.getornull(p_rid);
+ Texture *tex = texture_owner.get_or_null(p_rid);
ERR_FAIL_NULL_V(tex, 0);
return (uint64_t)tex->image;
}; break;
case DRIVER_RESOURCE_VULKAN_IMAGE_VIEW: {
- Texture *tex = texture_owner.getornull(p_rid);
+ Texture *tex = texture_owner.get_or_null(p_rid);
ERR_FAIL_NULL_V(tex, 0);
return (uint64_t)tex->view;
}; break;
case DRIVER_RESOURCE_VULKAN_IMAGE_NATIVE_TEXTURE_FORMAT: {
- Texture *tex = texture_owner.getornull(p_rid);
+ Texture *tex = texture_owner.get_or_null(p_rid);
ERR_FAIL_NULL_V(tex, 0);
return vulkan_formats[tex->format];
}; break;
case DRIVER_RESOURCE_VULKAN_SAMPLER: {
- VkSampler *sampler = sampler_owner.getornull(p_rid);
+ VkSampler *sampler = sampler_owner.get_or_null(p_rid);
ERR_FAIL_NULL_V(sampler, 0);
return uint64_t(*sampler);
}; break;
case DRIVER_RESOURCE_VULKAN_DESCRIPTOR_SET: {
- UniformSet *uniform_set = uniform_set_owner.getornull(p_rid);
+ UniformSet *uniform_set = uniform_set_owner.get_or_null(p_rid);
ERR_FAIL_NULL_V(uniform_set, 0);
return uint64_t(uniform_set->descriptor_set);
@@ -9069,15 +9069,15 @@ uint64_t RenderingDeviceVulkan::get_driver_resource(DriverResource p_resource, R
case DRIVER_RESOURCE_VULKAN_BUFFER: {
Buffer *buffer = nullptr;
if (vertex_buffer_owner.owns(p_rid)) {
- buffer = vertex_buffer_owner.getornull(p_rid);
+ buffer = vertex_buffer_owner.get_or_null(p_rid);
} else if (index_buffer_owner.owns(p_rid)) {
- buffer = index_buffer_owner.getornull(p_rid);
+ buffer = index_buffer_owner.get_or_null(p_rid);
} else if (uniform_buffer_owner.owns(p_rid)) {
- buffer = uniform_buffer_owner.getornull(p_rid);
+ buffer = uniform_buffer_owner.get_or_null(p_rid);
} else if (texture_buffer_owner.owns(p_rid)) {
- buffer = &texture_buffer_owner.getornull(p_rid)->buffer;
+ buffer = &texture_buffer_owner.get_or_null(p_rid)->buffer;
} else if (storage_buffer_owner.owns(p_rid)) {
- buffer = storage_buffer_owner.getornull(p_rid);
+ buffer = storage_buffer_owner.get_or_null(p_rid);
}
ERR_FAIL_NULL_V(buffer, 0);
@@ -9085,13 +9085,13 @@ uint64_t RenderingDeviceVulkan::get_driver_resource(DriverResource p_resource, R
return uint64_t(buffer->buffer);
}; break;
case DRIVER_RESOURCE_VULKAN_COMPUTE_PIPELINE: {
- ComputePipeline *compute_pipeline = compute_pipeline_owner.getornull(p_rid);
+ ComputePipeline *compute_pipeline = compute_pipeline_owner.get_or_null(p_rid);
ERR_FAIL_NULL_V(compute_pipeline, 0);
return uint64_t(compute_pipeline->pipeline);
}; break;
case DRIVER_RESOURCE_VULKAN_RENDER_PIPELINE: {
- RenderPipeline *render_pipeline = render_pipeline_owner.getornull(p_rid);
+ RenderPipeline *render_pipeline = render_pipeline_owner.get_or_null(p_rid);
ERR_FAIL_NULL_V(render_pipeline, 0);
return uint64_t(render_pipeline->pipeline);
diff --git a/drivers/vulkan/vulkan_context.cpp b/drivers/vulkan/vulkan_context.cpp
index bb0123e536..1c7e83af21 100644
--- a/drivers/vulkan/vulkan_context.cpp
+++ b/drivers/vulkan/vulkan_context.cpp
@@ -2084,12 +2084,12 @@ RID VulkanContext::local_device_create() {
}
VkDevice VulkanContext::local_device_get_vk_device(RID p_local_device) {
- LocalDevice *ld = local_device_owner.getornull(p_local_device);
+ LocalDevice *ld = local_device_owner.get_or_null(p_local_device);
return ld->device;
}
void VulkanContext::local_device_push_command_buffers(RID p_local_device, const VkCommandBuffer *p_buffers, int p_count) {
- LocalDevice *ld = local_device_owner.getornull(p_local_device);
+ LocalDevice *ld = local_device_owner.get_or_null(p_local_device);
ERR_FAIL_COND(ld->waiting);
VkSubmitInfo submit_info;
@@ -2119,7 +2119,7 @@ void VulkanContext::local_device_push_command_buffers(RID p_local_device, const
}
void VulkanContext::local_device_sync(RID p_local_device) {
- LocalDevice *ld = local_device_owner.getornull(p_local_device);
+ LocalDevice *ld = local_device_owner.get_or_null(p_local_device);
ERR_FAIL_COND(!ld->waiting);
vkDeviceWaitIdle(ld->device);
@@ -2127,7 +2127,7 @@ void VulkanContext::local_device_sync(RID p_local_device) {
}
void VulkanContext::local_device_free(RID p_local_device) {
- LocalDevice *ld = local_device_owner.getornull(p_local_device);
+ LocalDevice *ld = local_device_owner.get_or_null(p_local_device);
vkDestroyDevice(ld->device, nullptr);
local_device_owner.free(p_local_device);
}
diff --git a/editor/action_map_editor.cpp b/editor/action_map_editor.cpp
index 6789b5be00..38db48a4d4 100644
--- a/editor/action_map_editor.cpp
+++ b/editor/action_map_editor.cpp
@@ -120,8 +120,8 @@ void InputEventConfigurationDialog::_set_event(const Ref<InputEvent> &p_event) {
physical_key_checkbox->set_visible(show_phys_key);
additional_options_container->show();
- // Update selected item in input list for keys, joybuttons and joyaxis only (since the mouse cannot be "listened" for).
- if (k.is_valid() || joyb.is_valid() || joym.is_valid()) {
+ // Update selected item in input list.
+ if (k.is_valid() || joyb.is_valid() || joym.is_valid() || mb.is_valid()) {
TreeItem *category = input_list_tree->get_root()->get_first_child();
while (category) {
TreeItem *input_item = category->get_first_child();
@@ -134,13 +134,14 @@ void InputEventConfigurationDialog::_set_event(const Ref<InputEvent> &p_event) {
}
// If event type matches input types of this category.
- if ((k.is_valid() && input_type == INPUT_KEY) || (joyb.is_valid() && input_type == INPUT_JOY_BUTTON) || (joym.is_valid() && input_type == INPUT_JOY_MOTION)) {
+ if ((k.is_valid() && input_type == INPUT_KEY) || (joyb.is_valid() && input_type == INPUT_JOY_BUTTON) || (joym.is_valid() && input_type == INPUT_JOY_MOTION) || (mb.is_valid() && input_type == INPUT_MOUSE_BUTTON)) {
// Loop through all items of this category until one matches.
while (input_item) {
bool key_match = k.is_valid() && (Variant(k->get_keycode()) == input_item->get_meta("__keycode") || Variant(k->get_physical_keycode()) == input_item->get_meta("__keycode"));
bool joyb_match = joyb.is_valid() && Variant(joyb->get_button_index()) == input_item->get_meta("__index");
bool joym_match = joym.is_valid() && Variant(joym->get_axis()) == input_item->get_meta("__axis") && joym->get_axis_value() == (float)input_item->get_meta("__value");
- if (key_match || joyb_match || joym_match) {
+ bool mb_match = mb.is_valid() && Variant(mb->get_button_index()) == input_item->get_meta("__index");
+ if (key_match || joyb_match || joym_match || mb_match) {
category->set_collapsed(false);
input_item->select(0);
input_list_tree->ensure_cursor_is_visible();
@@ -165,7 +166,6 @@ void InputEventConfigurationDialog::_set_event(const Ref<InputEvent> &p_event) {
if (allowed_input_types & INPUT_KEY) {
strings.append(TTR("Key"));
}
- // We don't check for INPUT_MOUSE_BUTTON since it is ignored in the "Listen Window Input" method.
if (allowed_input_types & INPUT_JOY_BUTTON) {
strings.append(TTR("Joypad Button"));
@@ -173,7 +173,9 @@ void InputEventConfigurationDialog::_set_event(const Ref<InputEvent> &p_event) {
if (allowed_input_types & INPUT_JOY_MOTION) {
strings.append(TTR("Joypad Axis"));
}
-
+ if (allowed_input_types & INPUT_MOUSE_BUTTON) {
+ strings.append(TTR("Mouse Button in area below"));
+ }
if (strings.size() == 0) {
text = TTR("Input Event dialog has been misconfigured: No input types are allowed.");
event_as_text->set_text(text);
@@ -214,12 +216,21 @@ void InputEventConfigurationDialog::_listen_window_input(const Ref<InputEvent> &
return;
}
- // Ignore mouse
- Ref<InputEventMouse> m = p_event;
- if (m.is_valid()) {
+ // Ignore mouse motion
+ Ref<InputEventMouseMotion> mm = p_event;
+ if (mm.is_valid()) {
return;
}
+ // Ignore mouse button if not in the detection rect
+ Ref<InputEventMouseButton> mb = p_event;
+ if (mb.is_valid()) {
+ Rect2 r = mouse_detection_rect->get_rect();
+ if (!r.has_point(mouse_detection_rect->get_local_mouse_position() + r.get_position())) {
+ return;
+ }
+ }
+
// Check what the type is and if it is allowed.
Ref<InputEventKey> k = p_event;
Ref<InputEventJoypadButton> joyb = p_event;
@@ -227,6 +238,7 @@ void InputEventConfigurationDialog::_listen_window_input(const Ref<InputEvent> &
int type = k.is_valid() ? INPUT_KEY : joyb.is_valid() ? INPUT_JOY_BUTTON :
joym.is_valid() ? INPUT_JOY_MOTION :
+ mb.is_valid() ? INPUT_MOUSE_BUTTON :
0;
if (!(allowed_input_types & type)) {
@@ -537,6 +549,8 @@ void InputEventConfigurationDialog::_notification(int p_what) {
icon_cache.joypad_button = get_theme_icon(SNAME("JoyButton"), SNAME("EditorIcons"));
icon_cache.joypad_axis = get_theme_icon(SNAME("JoyAxis"), SNAME("EditorIcons"));
+ mouse_detection_rect->set_color(get_theme_color(SNAME("dark_color_2"), SNAME("Editor")));
+
_update_input_list();
} break;
default:
@@ -575,7 +589,7 @@ void InputEventConfigurationDialog::set_allowed_input_types(int p_type_masks) {
}
InputEventConfigurationDialog::InputEventConfigurationDialog() {
- allowed_input_types = INPUT_KEY | INPUT_MOUSE_BUTTON | INPUT_JOY_BUTTON | INPUT_JOY_MOTION;
+ allowed_input_types = INPUT_KEY | INPUT_MOUSE_BUTTON | INPUT_JOY_BUTTON | INPUT_JOY_MOTION | INPUT_MOUSE_BUTTON;
set_title(TTR("Event Configuration"));
set_min_size(Size2i(550 * EDSCALE, 0)); // Min width
@@ -590,12 +604,17 @@ InputEventConfigurationDialog::InputEventConfigurationDialog() {
tab_container->connect("tab_selected", callable_mp(this, &InputEventConfigurationDialog::_tab_selected));
main_vbox->add_child(tab_container);
- CenterContainer *cc = memnew(CenterContainer);
- cc->set_name(TTR("Listen for Input"));
+ // Listen to input tab
+ VBoxContainer *vb = memnew(VBoxContainer);
+ vb->set_name(TTR("Listen for Input"));
event_as_text = memnew(Label);
event_as_text->set_align(Label::ALIGN_CENTER);
- cc->add_child(event_as_text);
- tab_container->add_child(cc);
+ vb->add_child(event_as_text);
+ // Mouse button detection rect (Mouse button event outside this ColorRect will be ignored)
+ mouse_detection_rect = memnew(ColorRect);
+ mouse_detection_rect->set_v_size_flags(Control::SIZE_EXPAND_FILL);
+ vb->add_child(mouse_detection_rect);
+ tab_container->add_child(vb);
// List of all input options to manually select from.
diff --git a/editor/action_map_editor.h b/editor/action_map_editor.h
index aff3e6e957..e55cab3510 100644
--- a/editor/action_map_editor.h
+++ b/editor/action_map_editor.h
@@ -32,6 +32,7 @@
#define ACTION_MAP_EDITOR_H
#include "editor/editor_data.h"
+#include <scene/gui/color_rect.h>
// Confirmation Dialog used when configuring an input event.
// Separate from ActionMapEditor for code cleanliness and separation of responsibilities.
@@ -60,6 +61,7 @@ private:
// Listening for input
Label *event_as_text;
+ ColorRect *mouse_detection_rect;
// List of All Key/Mouse/Joypad input options.
int allowed_input_types;
diff --git a/editor/animation_bezier_editor.cpp b/editor/animation_bezier_editor.cpp
index fca69f34f3..28642f1bb4 100644
--- a/editor/animation_bezier_editor.cpp
+++ b/editor/animation_bezier_editor.cpp
@@ -491,10 +491,10 @@ void AnimationBezierTrackEdit::_notification(int p_what) {
}
draw_rect(
Rect2(bs_from, bs_to - bs_from),
- get_theme_color("box_selection_fill_color", "Editor"));
+ get_theme_color(SNAME("box_selection_fill_color"), SNAME("Editor")));
draw_rect(
Rect2(bs_from, bs_to - bs_from),
- get_theme_color("box_selection_stroke_color", "Editor"),
+ get_theme_color(SNAME("box_selection_stroke_color"), SNAME("Editor")),
false,
Math::round(EDSCALE));
}
diff --git a/editor/code_editor.cpp b/editor/code_editor.cpp
index 2944dd9991..7bf82fbd1b 100644
--- a/editor/code_editor.cpp
+++ b/editor/code_editor.cpp
@@ -1579,17 +1579,10 @@ void CodeTextEditor::_update_text_editor_theme() {
}
void CodeTextEditor::_on_settings_change() {
- if (settings_changed) {
- return;
- }
-
- settings_changed = true;
- MessageQueue::get_singleton()->push_callable(callable_mp(this, &CodeTextEditor::_apply_settings_change));
+ _apply_settings_change();
}
void CodeTextEditor::_apply_settings_change() {
- settings_changed = false;
-
_update_text_editor_theme();
font_size = EditorSettings::get_singleton()->get("interface/editor/code_font_size");
diff --git a/editor/code_editor.h b/editor/code_editor.h
index dfe6561f13..3c52a0c6e8 100644
--- a/editor/code_editor.h
+++ b/editor/code_editor.h
@@ -162,8 +162,6 @@ class CodeTextEditor : public VBoxContainer {
int error_line;
int error_column;
- bool settings_changed = false;
-
void _on_settings_change();
void _apply_settings_change();
diff --git a/editor/debugger/script_editor_debugger.cpp b/editor/debugger/script_editor_debugger.cpp
index 989774e943..d6650c3319 100644
--- a/editor/debugger/script_editor_debugger.cpp
+++ b/editor/debugger/script_editor_debugger.cpp
@@ -147,7 +147,7 @@ void ScriptEditorDebugger::update_tabs() {
}
void ScriptEditorDebugger::clear_style() {
- tabs->add_theme_style_override("panel", nullptr);
+ tabs->remove_theme_style_override("panel");
}
void ScriptEditorDebugger::save_node(ObjectID p_id, const String &p_file) {
@@ -397,15 +397,15 @@ void ScriptEditorDebugger::_parse_message(const String &p_msg, const Array &p_da
s->select(0);
}
}
- emit_signal("stack_dump", stack_dump_info);
+ emit_signal(SNAME("stack_dump"), stack_dump_info);
} else if (p_msg == "stack_frame_vars") {
inspector->clear_stack_variables();
ERR_FAIL_COND(p_data.size() != 1);
- emit_signal("stack_frame_vars", p_data[0]);
+ emit_signal(SNAME("stack_frame_vars"), p_data[0]);
} else if (p_msg == "stack_frame_var") {
inspector->add_stack_variable(p_data);
- emit_signal("stack_frame_var", p_data);
+ emit_signal(SNAME("stack_frame_var"), p_data);
} else if (p_msg == "output") {
ERR_FAIL_COND(p_data.size() != 2);
@@ -434,7 +434,7 @@ void ScriptEditorDebugger::_parse_message(const String &p_msg, const Array &p_da
} break;
}
EditorNode::get_log()->add_message(output_strings[i], msg_type);
- emit_signal("output", output_strings[i]);
+ emit_signal(SNAME("output"), output_strings[i]);
}
} else if (p_msg == "performance:profile_frame") {
Vector<float> frame_data;
@@ -501,6 +501,10 @@ void ScriptEditorDebugger::_parse_message(const String &p_msg, const Array &p_da
error->set_text(0, time);
error->set_text_align(0, TreeItem::ALIGN_LEFT);
+ const Color color = get_theme_color(oe.warning ? SNAME("warning_color") : SNAME("error_color"), SNAME("Editor"));
+ error->set_custom_color(0, color);
+ error->set_custom_color(1, color);
+
String error_title;
if (oe.callstack.size() > 0) {
// If available, use the script's stack in the error title.
diff --git a/editor/doc_tools.cpp b/editor/doc_tools.cpp
index d04875f188..ec162231e9 100644
--- a/editor/doc_tools.cpp
+++ b/editor/doc_tools.cpp
@@ -1173,6 +1173,59 @@ static void _write_string(FileAccess *f, int p_tablevel, const String &p_string)
f->store_string(tab + p_string + "\n");
}
+static void _write_method_doc(FileAccess *f, const String &p_name, Vector<DocData::MethodDoc> &p_method_docs) {
+ if (!p_method_docs.is_empty()) {
+ p_method_docs.sort();
+ _write_string(f, 1, "<" + p_name + "s>");
+ for (int i = 0; i < p_method_docs.size(); i++) {
+ const DocData::MethodDoc &m = p_method_docs[i];
+
+ String qualifiers;
+ if (m.qualifiers != "") {
+ qualifiers += " qualifiers=\"" + m.qualifiers.xml_escape() + "\"";
+ }
+
+ _write_string(f, 2, "<" + p_name + " name=\"" + m.name.xml_escape() + "\"" + qualifiers + ">");
+
+ if (m.return_type != "") {
+ String enum_text;
+ if (m.return_enum != String()) {
+ enum_text = " enum=\"" + m.return_enum + "\"";
+ }
+ _write_string(f, 3, "<return type=\"" + m.return_type + "\"" + enum_text + " />");
+ }
+ if (m.errors_returned.size() > 0) {
+ for (int j = 0; j < m.errors_returned.size(); j++) {
+ _write_string(f, 3, "<returns_error number=\"" + itos(m.errors_returned[j]) + "\"/>");
+ }
+ }
+
+ for (int j = 0; j < m.arguments.size(); j++) {
+ const DocData::ArgumentDoc &a = m.arguments[j];
+
+ String enum_text;
+ if (a.enumeration != String()) {
+ enum_text = " enum=\"" + a.enumeration + "\"";
+ }
+
+ if (a.default_value != "") {
+ _write_string(f, 3, "<argument index=\"" + itos(j) + "\" name=\"" + a.name.xml_escape() + "\" type=\"" + a.type.xml_escape() + "\"" + enum_text + " default=\"" + a.default_value.xml_escape(true) + "\" />");
+ } else {
+ _write_string(f, 3, "<argument index=\"" + itos(j) + "\" name=\"" + a.name.xml_escape() + "\" type=\"" + a.type.xml_escape() + "\"" + enum_text + " />");
+ }
+ }
+
+ _write_string(f, 3, "<description>");
+ _write_string(f, 4, m.description.strip_edges().xml_escape());
+ _write_string(f, 3, "</description>");
+
+ _write_string(f, 2, "</" + p_name + ">");
+ }
+
+ _write_string(f, 1, "</" + p_name + "s>");
+ }
+}
+
Error DocTools::save_classes(const String &p_default_path, const Map<String, String> &p_class_path) {
for (Map<String, DocData::ClassDoc>::Element *E = class_list.front(); E; E = E->next()) {
DocData::ClassDoc &c = E->get();
@@ -1216,58 +1269,9 @@ Error DocTools::save_classes(const String &p_default_path, const Map<String, Str
}
_write_string(f, 1, "</tutorials>");
- _write_string(f, 1, "<methods>");
-
- c.methods.sort();
-
- for (int i = 0; i < c.methods.size(); i++) {
- const DocData::MethodDoc &m = c.methods[i];
-
- String qualifiers;
- if (m.qualifiers != "") {
- qualifiers += " qualifiers=\"" + m.qualifiers.xml_escape() + "\"";
- }
-
- _write_string(f, 2, "<method name=\"" + m.name.xml_escape() + "\"" + qualifiers + ">");
+ _write_method_doc(f, "method", c.methods);
- if (m.return_type != "") {
- String enum_text;
- if (m.return_enum != String()) {
- enum_text = " enum=\"" + m.return_enum + "\"";
- }
- _write_string(f, 3, "<return type=\"" + m.return_type + "\"" + enum_text + " />");
- }
- if (m.errors_returned.size() > 0) {
- for (int j = 0; j < m.errors_returned.size(); j++) {
- _write_string(f, 3, "<returns_error number=\"" + itos(m.errors_returned[j]) + "\"/>");
- }
- }
-
- for (int j = 0; j < m.arguments.size(); j++) {
- const DocData::ArgumentDoc &a = m.arguments[j];
-
- String enum_text;
- if (a.enumeration != String()) {
- enum_text = " enum=\"" + a.enumeration + "\"";
- }
-
- if (a.default_value != "") {
- _write_string(f, 3, "<argument index=\"" + itos(j) + "\" name=\"" + a.name.xml_escape() + "\" type=\"" + a.type.xml_escape() + "\"" + enum_text + " default=\"" + a.default_value.xml_escape(true) + "\" />");
- } else {
- _write_string(f, 3, "<argument index=\"" + itos(j) + "\" name=\"" + a.name.xml_escape() + "\" type=\"" + a.type.xml_escape() + "\"" + enum_text + " />");
- }
- }
-
- _write_string(f, 3, "<description>");
- _write_string(f, 4, m.description.strip_edges().xml_escape());
- _write_string(f, 3, "</description>");
-
- _write_string(f, 2, "</method>");
- }
-
- _write_string(f, 1, "</methods>");
-
- if (c.properties.size()) {
+ if (!c.properties.is_empty()) {
_write_string(f, 1, "<members>");
c.properties.sort();
@@ -1294,52 +1298,33 @@ Error DocTools::save_classes(const String &p_default_path, const Map<String, Str
_write_string(f, 1, "</members>");
}
- if (c.signals.size()) {
- c.signals.sort();
-
- _write_string(f, 1, "<signals>");
- for (int i = 0; i < c.signals.size(); i++) {
- const DocData::MethodDoc &m = c.signals[i];
- _write_string(f, 2, "<signal name=\"" + m.name + "\">");
- for (int j = 0; j < m.arguments.size(); j++) {
- const DocData::ArgumentDoc &a = m.arguments[j];
- _write_string(f, 3, "<argument index=\"" + itos(j) + "\" name=\"" + a.name.xml_escape() + "\" type=\"" + a.type.xml_escape() + "\" />");
- }
-
- _write_string(f, 3, "<description>");
- _write_string(f, 4, m.description.strip_edges().xml_escape());
- _write_string(f, 3, "</description>");
-
- _write_string(f, 2, "</signal>");
- }
-
- _write_string(f, 1, "</signals>");
- }
-
- _write_string(f, 1, "<constants>");
+ _write_method_doc(f, "signal", c.signals);
- for (int i = 0; i < c.constants.size(); i++) {
- const DocData::ConstantDoc &k = c.constants[i];
- if (k.is_value_valid) {
- if (k.enumeration != String()) {
- _write_string(f, 2, "<constant name=\"" + k.name + "\" value=\"" + k.value + "\" enum=\"" + k.enumeration + "\">");
- } else {
- _write_string(f, 2, "<constant name=\"" + k.name + "\" value=\"" + k.value + "\">");
- }
- } else {
- if (k.enumeration != String()) {
- _write_string(f, 2, "<constant name=\"" + k.name + "\" value=\"platform-dependent\" enum=\"" + k.enumeration + "\">");
+ if (!c.constants.is_empty()) {
+ _write_string(f, 1, "<constants>");
+ for (int i = 0; i < c.constants.size(); i++) {
+ const DocData::ConstantDoc &k = c.constants[i];
+ if (k.is_value_valid) {
+ if (k.enumeration != String()) {
+ _write_string(f, 2, "<constant name=\"" + k.name + "\" value=\"" + k.value + "\" enum=\"" + k.enumeration + "\">");
+ } else {
+ _write_string(f, 2, "<constant name=\"" + k.name + "\" value=\"" + k.value + "\">");
+ }
} else {
- _write_string(f, 2, "<constant name=\"" + k.name + "\" value=\"platform-dependent\">");
+ if (k.enumeration != String()) {
+ _write_string(f, 2, "<constant name=\"" + k.name + "\" value=\"platform-dependent\" enum=\"" + k.enumeration + "\">");
+ } else {
+ _write_string(f, 2, "<constant name=\"" + k.name + "\" value=\"platform-dependent\">");
+ }
}
+ _write_string(f, 3, k.description.strip_edges().xml_escape());
+ _write_string(f, 2, "</constant>");
}
- _write_string(f, 3, k.description.strip_edges().xml_escape());
- _write_string(f, 2, "</constant>");
- }
- _write_string(f, 1, "</constants>");
+ _write_string(f, 1, "</constants>");
+ }
- if (c.theme_properties.size()) {
+ if (!c.theme_properties.is_empty()) {
c.theme_properties.sort();
_write_string(f, 1, "<theme_items>");
diff --git a/editor/editor_audio_buses.cpp b/editor/editor_audio_buses.cpp
index 88087664d7..b9f1c1af54 100644
--- a/editor/editor_audio_buses.cpp
+++ b/editor/editor_audio_buses.cpp
@@ -535,7 +535,7 @@ void EditorAudioBus::gui_input(const Ref<InputEvent> &p_event) {
Ref<InputEventMouseButton> mb = p_event;
if (mb.is_valid() && mb->get_button_index() == MOUSE_BUTTON_RIGHT && mb->is_pressed()) {
- Vector2 pos = Vector2(mb->get_position().x, mb->get_position().y);
+ Vector2 pos = mb->get_position();
bus_popup->set_position(get_global_position() + pos);
bus_popup->popup();
}
diff --git a/editor/editor_command_palette.cpp b/editor/editor_command_palette.cpp
index 4ad45f9649..e69ced8522 100644
--- a/editor/editor_command_palette.cpp
+++ b/editor/editor_command_palette.cpp
@@ -118,8 +118,8 @@ void EditorCommandPalette::_update_command_search(const String &search_text) {
section->set_text(0, item_name);
section->set_selectable(0, false);
section->set_selectable(1, false);
- section->set_custom_bg_color(0, search_options->get_theme_color("prop_subsection", "Editor"));
- section->set_custom_bg_color(1, search_options->get_theme_color("prop_subsection", "Editor"));
+ section->set_custom_bg_color(0, search_options->get_theme_color(SNAME("prop_subsection"), SNAME("Editor")));
+ section->set_custom_bg_color(1, search_options->get_theme_color(SNAME("prop_subsection"), SNAME("Editor")));
sections[section_name] = section;
}
@@ -263,7 +263,7 @@ Ref<Shortcut> EditorCommandPalette::add_shortcut_command(const String &p_command
}
void EditorCommandPalette::_theme_changed() {
- command_search_box->set_right_icon(search_options->get_theme_icon("Search", "EditorIcons"));
+ command_search_box->set_right_icon(search_options->get_theme_icon(SNAME("Search"), SNAME("EditorIcons")));
}
void EditorCommandPalette::_save_history() const {
diff --git a/editor/editor_dir_dialog.cpp b/editor/editor_dir_dialog.cpp
index 5df392b91e..f91dedf25d 100644
--- a/editor/editor_dir_dialog.cpp
+++ b/editor/editor_dir_dialog.cpp
@@ -44,6 +44,7 @@ void EditorDirDialog::_update_dir(TreeItem *p_item, EditorFileSystemDirectory *p
p_item->set_metadata(0, p_dir->get_path());
p_item->set_icon(0, tree->get_theme_icon(SNAME("Folder"), SNAME("EditorIcons")));
+ p_item->set_icon_modulate(0, tree->get_theme_color(SNAME("folder_icon_modulate"), SNAME("FileDialog")));
if (!p_item->get_parent()) {
p_item->set_text(0, "res://");
diff --git a/editor/editor_file_dialog.cpp b/editor/editor_file_dialog.cpp
index bf95e6cf62..8956983646 100644
--- a/editor/editor_file_dialog.cpp
+++ b/editor/editor_file_dialog.cpp
@@ -86,7 +86,7 @@ void EditorFileDialog::_notification(int p_what) {
if (preview_wheel_index >= 8) {
preview_wheel_index = 0;
}
- Ref<Texture2D> frame = item_list->get_theme_icon("Progress" + itos(preview_wheel_index + 1), "EditorIcons");
+ Ref<Texture2D> frame = item_list->get_theme_icon("Progress" + itos(preview_wheel_index + 1), SNAME("EditorIcons"));
preview->set_texture(frame);
preview_wheel_timeout = 0.1;
}
diff --git a/editor/editor_node.cpp b/editor/editor_node.cpp
index d8f0367b33..9a79e1f942 100644
--- a/editor/editor_node.cpp
+++ b/editor/editor_node.cpp
@@ -576,7 +576,7 @@ void EditorNode::_notification(int p_what) {
// update the icon itself only when the spinner is visible
if (EditorSettings::get_singleton()->get("interface/editor/show_update_spinner")) {
- update_spinner->set_icon(gui_base->get_theme_icon("Progress" + itos(update_spinner_step + 1), "EditorIcons"));
+ update_spinner->set_icon(gui_base->get_theme_icon("Progress" + itos(update_spinner_step + 1), SNAME("EditorIcons")));
}
}
@@ -767,7 +767,7 @@ void EditorNode::_update_update_spinner() {
// On a light theme, icons are dark, so we need to modulate them with an even brighter color.
const bool dark_theme = EditorSettings::get_singleton()->is_dark_theme();
update_spinner->set_self_modulate(
- gui_base->get_theme_color("error_color", "Editor") * (dark_theme ? Color(1.1, 1.1, 1.1) : Color(4.25, 4.25, 4.25)));
+ gui_base->get_theme_color(SNAME("error_color"), SNAME("Editor")) * (dark_theme ? Color(1.1, 1.1, 1.1) : Color(4.25, 4.25, 4.25)));
} else {
update_spinner->set_tooltip(TTR("Spins when the editor window redraws."));
update_spinner->set_self_modulate(Color(1, 1, 1));
@@ -1757,13 +1757,15 @@ void EditorNode::restart_editor() {
void EditorNode::_save_all_scenes() {
for (int i = 0; i < editor_data.get_edited_scene_count(); i++) {
Node *scene = editor_data.get_edited_scene_root(i);
- if (scene && scene->get_filename() != "") {
+ if (scene && scene->get_filename() != "" && DirAccess::exists(scene->get_filename().get_base_dir())) {
if (i != editor_data.get_edited_scene()) {
_save_scene(scene->get_filename(), i);
} else {
_save_scene_with_preview(scene->get_filename());
}
- } // else: ignore new scenes
+ } else {
+ show_warning(TTR("Could not save one or more scenes!"), TTR("Save All Scenes"));
+ }
}
_save_default_environment();
@@ -2484,20 +2486,22 @@ void EditorNode::_menu_option_confirm(int p_option, bool p_confirmed) {
case SCENE_TAB_CLOSE:
case FILE_SAVE_SCENE: {
int scene_idx = (p_option == FILE_SAVE_SCENE) ? -1 : tab_closing;
-
Node *scene = editor_data.get_edited_scene_root(scene_idx);
if (scene && scene->get_filename() != "") {
- if (scene_idx != editor_data.get_edited_scene()) {
- _save_scene_with_preview(scene->get_filename(), scene_idx);
- } else {
- _save_scene_with_preview(scene->get_filename());
- }
+ if (DirAccess::exists(scene->get_filename().get_base_dir())) {
+ if (scene_idx != editor_data.get_edited_scene()) {
+ _save_scene_with_preview(scene->get_filename(), scene_idx);
+ } else {
+ _save_scene_with_preview(scene->get_filename());
+ }
- if (scene_idx != -1) {
- _discard_changes();
+ if (scene_idx != -1) {
+ _discard_changes();
+ }
+ save_layout();
+ } else {
+ show_save_accept(vformat(TTR("%s no longer exists! Please specify a new save location."), scene->get_filename().get_base_dir()), TTR("OK"));
}
- save_layout();
-
break;
}
[[fallthrough]];
@@ -4150,6 +4154,13 @@ void EditorNode::show_accept(const String &p_text, const String &p_title) {
accept->popup_centered();
}
+void EditorNode::show_save_accept(const String &p_text, const String &p_title) {
+ current_option = -1;
+ save_accept->get_ok_button()->set_text(p_title);
+ save_accept->set_text(p_text);
+ save_accept->popup_centered();
+}
+
void EditorNode::show_warning(const String &p_text, const String &p_title) {
if (warning->is_inside_tree()) {
warning->set_text(p_text);
@@ -5967,7 +5978,7 @@ EditorNode::EditorNode() {
EDITOR_DEF_RST("interface/editor/save_each_scene_on_quit", true);
EDITOR_DEF("interface/editor/show_update_spinner", false);
EDITOR_DEF("interface/editor/update_continuously", false);
- EDITOR_DEF_RST("interface/scene_tabs/restore_scenes_on_load", false);
+ EDITOR_DEF_RST("interface/scene_tabs/restore_scenes_on_load", true);
EDITOR_DEF_RST("interface/scene_tabs/show_thumbnail_on_hover", true);
EDITOR_DEF_RST("interface/inspector/capitalize_properties", true);
EDITOR_DEF_RST("interface/inspector/default_float_step", 0.001);
@@ -6105,9 +6116,9 @@ EditorNode::EditorNode() {
dock_tab_move_right = memnew(Button);
dock_tab_move_right->set_flat(true);
if (gui_base->is_layout_rtl()) {
- dock_tab_move_right->set_icon(theme->get_icon("Forward", "EditorIcons"));
- } else {
dock_tab_move_right->set_icon(theme->get_icon("Back", "EditorIcons"));
+ } else {
+ dock_tab_move_right->set_icon(theme->get_icon("Forward", "EditorIcons"));
}
dock_tab_move_right->set_focus_mode(Control::FOCUS_NONE);
dock_tab_move_right->connect("pressed", callable_mp(this, &EditorNode::_dock_move_right));
@@ -6203,11 +6214,9 @@ EditorNode::EditorNode() {
tabbar_container->add_child(scene_tabs);
distraction_free = memnew(Button);
distraction_free->set_flat(true);
-#ifdef OSX_ENABLED
- distraction_free->set_shortcut(ED_SHORTCUT_AND_COMMAND("editor/distraction_free_mode", TTR("Distraction Free Mode"), KEY_MASK_CMD | KEY_MASK_CTRL | KEY_D));
-#else
- distraction_free->set_shortcut(ED_SHORTCUT_AND_COMMAND("editor/distraction_free_mode", TTR("Distraction Free Mode"), KEY_MASK_CMD | KEY_MASK_SHIFT | KEY_F11));
-#endif
+ ED_SHORTCUT_AND_COMMAND("editor/distraction_free_mode", TTR("Distraction Free Mode"), KEY_MASK_CMD | KEY_MASK_SHIFT | KEY_F11);
+ ED_SHORTCUT_OVERRIDE("editor/distraction_free_mode", "macos", KEY_MASK_CMD | KEY_MASK_CTRL | KEY_D);
+ distraction_free->set_shortcut(ED_GET_SHORTCUT("editor/distraction_free_mode"));
distraction_free->set_tooltip(TTR("Toggle distraction-free mode."));
distraction_free->connect("pressed", callable_mp(this, &EditorNode::_toggle_distraction_free_mode));
distraction_free->set_icon(gui_base->get_theme_icon(SNAME("DistractionFree"), SNAME("EditorIcons")));
@@ -6265,6 +6274,10 @@ EditorNode::EditorNode() {
gui_base->add_child(accept);
accept->connect("confirmed", callable_mp(this, &EditorNode::_menu_confirm_current));
+ save_accept = memnew(AcceptDialog);
+ gui_base->add_child(save_accept);
+ save_accept->connect("confirmed", callable_mp(this, &EditorNode::_menu_option), make_binds((int)MenuOptions::FILE_SAVE_AS_SCENE));
+
project_export = memnew(ProjectExportDialog);
gui_base->add_child(project_export);
@@ -6395,11 +6408,9 @@ EditorNode::EditorNode() {
p->add_separator();
p->add_shortcut(ED_SHORTCUT("editor/reload_current_project", TTR("Reload Current Project")), RUN_RELOAD_CURRENT_PROJECT);
-#ifdef OSX_ENABLED
- p->add_shortcut(ED_SHORTCUT_AND_COMMAND("editor/quit_to_project_list", TTR("Quit to Project List"), KEY_MASK_SHIFT + KEY_MASK_ALT + KEY_Q), RUN_PROJECT_MANAGER, true);
-#else
- p->add_shortcut(ED_SHORTCUT_AND_COMMAND("editor/quit_to_project_list", TTR("Quit to Project List"), KEY_MASK_CMD + KEY_MASK_SHIFT + KEY_Q), RUN_PROJECT_MANAGER, true);
-#endif
+ ED_SHORTCUT_AND_COMMAND("editor/quit_to_project_list", TTR("Quit to Project List"), KEY_MASK_CMD + KEY_MASK_SHIFT + KEY_Q);
+ ED_SHORTCUT_OVERRIDE("editor/quit_to_project_list", "macos", KEY_MASK_SHIFT + KEY_MASK_ALT + KEY_Q);
+ p->add_shortcut(ED_GET_SHORTCUT("editor/quit_to_project_list"), RUN_PROJECT_MANAGER, true);
menu_hb->add_spacer();
@@ -6424,11 +6435,10 @@ EditorNode::EditorNode() {
left_menu_hb->add_child(settings_menu);
p = settings_menu->get_popup();
-#ifdef OSX_ENABLED
- p->add_shortcut(ED_SHORTCUT_AND_COMMAND("editor/editor_settings", TTR("Editor Settings..."), KEY_MASK_CMD + KEY_COMMA), SETTINGS_PREFERENCES);
-#else
- p->add_shortcut(ED_SHORTCUT_AND_COMMAND("editor/editor_settings", TTR("Editor Settings...")), SETTINGS_PREFERENCES);
-#endif
+
+ ED_SHORTCUT_AND_COMMAND("editor/editor_settings", TTR("Editor Settings..."));
+ ED_SHORTCUT_OVERRIDE("editor/editor_settings", "macos", KEY_MASK_CMD + KEY_COMMA);
+ p->add_shortcut(ED_GET_SHORTCUT("editor/editor_settings"), SETTINGS_PREFERENCES);
p->add_shortcut(ED_SHORTCUT("editor/command_palette", TTR("Command Palette..."), KEY_MASK_CMD | KEY_MASK_SHIFT | KEY_P), HELP_COMMAND_PALETTE);
p->add_separator();
@@ -6438,17 +6448,17 @@ EditorNode::EditorNode() {
editor_layouts->connect("id_pressed", callable_mp(this, &EditorNode::_layout_menu_option));
p->add_submenu_item(TTR("Editor Layout"), "Layouts");
p->add_separator();
-#ifdef OSX_ENABLED
- p->add_shortcut(ED_SHORTCUT_AND_COMMAND("editor/take_screenshot", TTR("Take Screenshot"), KEY_MASK_CMD | KEY_F12), EDITOR_SCREENSHOT);
-#else
- p->add_shortcut(ED_SHORTCUT_AND_COMMAND("editor/take_screenshot", TTR("Take Screenshot"), KEY_MASK_CTRL | KEY_F12), EDITOR_SCREENSHOT);
-#endif
+
+ ED_SHORTCUT_AND_COMMAND("editor/take_screenshot", TTR("Take Screenshot"), KEY_MASK_CTRL | KEY_F12);
+ ED_SHORTCUT_OVERRIDE("editor/take_screenshot", "macos", KEY_MASK_CMD | KEY_F12);
+ p->add_shortcut(ED_GET_SHORTCUT("editor/take_screenshot"), EDITOR_SCREENSHOT);
+
p->set_item_tooltip(p->get_item_count() - 1, TTR("Screenshots are stored in the Editor Data/Settings Folder."));
-#ifdef OSX_ENABLED
- p->add_shortcut(ED_SHORTCUT_AND_COMMAND("editor/fullscreen_mode", TTR("Toggle Fullscreen"), KEY_MASK_CMD | KEY_MASK_CTRL | KEY_F), SETTINGS_TOGGLE_FULLSCREEN);
-#else
- p->add_shortcut(ED_SHORTCUT_AND_COMMAND("editor/fullscreen_mode", TTR("Toggle Fullscreen"), KEY_MASK_SHIFT | KEY_F11), SETTINGS_TOGGLE_FULLSCREEN);
-#endif
+
+ ED_SHORTCUT_AND_COMMAND("editor/fullscreen_mode", TTR("Toggle Fullscreen"), KEY_MASK_SHIFT | KEY_F11);
+ ED_SHORTCUT_OVERRIDE("editor/fullscreen_mode", "macos", KEY_MASK_CMD | KEY_MASK_CTRL | KEY_F);
+ p->add_shortcut(ED_GET_SHORTCUT("editor/fullscreen_mode"), SETTINGS_TOGGLE_FULLSCREEN);
+
#if defined(WINDOWS_ENABLED) && defined(WINDOWS_SUBSYSTEM_CONSOLE)
// The console can only be toggled if the application was built for the console subsystem,
// not the GUI subsystem.
@@ -6457,7 +6467,7 @@ EditorNode::EditorNode() {
p->add_separator();
if (OS::get_singleton()->get_data_path() == OS::get_singleton()->get_config_path()) {
- // Configuration and data folders are located in the same place (Windows/macOS)
+ // Configuration and data folders are located in the same place (Windows/macos)
p->add_item(TTR("Open Editor Data/Settings Folder"), SETTINGS_EDITOR_DATA_FOLDER);
} else {
// Separate configuration and data folders (Linux)
@@ -6479,11 +6489,10 @@ EditorNode::EditorNode() {
p = help_menu->get_popup();
p->connect("id_pressed", callable_mp(this, &EditorNode::_menu_option));
-#ifdef OSX_ENABLED
- p->add_icon_shortcut(gui_base->get_theme_icon(SNAME("HelpSearch"), SNAME("EditorIcons")), ED_SHORTCUT_AND_COMMAND("editor/editor_help", TTR("Search Help"), KEY_MASK_ALT | KEY_SPACE), HELP_SEARCH);
-#else
- p->add_icon_shortcut(gui_base->get_theme_icon(SNAME("HelpSearch"), SNAME("EditorIcons")), ED_SHORTCUT_AND_COMMAND("editor/editor_help", TTR("Search Help"), KEY_F1), HELP_SEARCH);
-#endif
+
+ ED_SHORTCUT_AND_COMMAND("editor/editor_help", TTR("Search Help"), KEY_F1);
+ ED_SHORTCUT_OVERRIDE("editor/editor_help", "macos", KEY_MASK_ALT | KEY_SPACE);
+ p->add_icon_shortcut(gui_base->get_theme_icon(SNAME("HelpSearch"), SNAME("EditorIcons")), ED_GET_SHORTCUT("editor/editor_help"), HELP_SEARCH);
p->add_separator();
p->add_icon_shortcut(gui_base->get_theme_icon(SNAME("Instance"), SNAME("EditorIcons")), ED_SHORTCUT_AND_COMMAND("editor/online_docs", TTR("Online Documentation")), HELP_DOCS);
p->add_icon_shortcut(gui_base->get_theme_icon(SNAME("Instance"), SNAME("EditorIcons")), ED_SHORTCUT_AND_COMMAND("editor/q&a", TTR("Questions & Answers")), HELP_QA);
@@ -6506,11 +6515,10 @@ EditorNode::EditorNode() {
play_button->set_focus_mode(Control::FOCUS_NONE);
play_button->connect("pressed", callable_mp(this, &EditorNode::_menu_option), make_binds(RUN_PLAY));
play_button->set_tooltip(TTR("Play the project."));
-#ifdef OSX_ENABLED
- play_button->set_shortcut(ED_SHORTCUT_AND_COMMAND("editor/play", TTR("Play"), KEY_MASK_CMD | KEY_B));
-#else
- play_button->set_shortcut(ED_SHORTCUT_AND_COMMAND("editor/play", TTR("Play"), KEY_F5));
-#endif
+
+ ED_SHORTCUT_AND_COMMAND("editor/play", TTR("Play"), KEY_F5);
+ ED_SHORTCUT_OVERRIDE("editor/play", "macos", KEY_MASK_CMD | KEY_B);
+ play_button->set_shortcut(ED_GET_SHORTCUT("editor/play"));
pause_button = memnew(Button);
pause_button->set_flat(true);
@@ -6520,11 +6528,10 @@ EditorNode::EditorNode() {
pause_button->set_tooltip(TTR("Pause the scene execution for debugging."));
pause_button->set_disabled(true);
play_hb->add_child(pause_button);
-#ifdef OSX_ENABLED
- pause_button->set_shortcut(ED_SHORTCUT("editor/pause_scene", TTR("Pause Scene"), KEY_MASK_CMD | KEY_MASK_CTRL | KEY_Y));
-#else
- pause_button->set_shortcut(ED_SHORTCUT("editor/pause_scene", TTR("Pause Scene"), KEY_F7));
-#endif
+
+ ED_SHORTCUT("editor/pause_scene", TTR("Pause Scene"), KEY_F7);
+ ED_SHORTCUT_OVERRIDE("editor/pause_scene", "macos", KEY_MASK_CMD | KEY_MASK_CTRL | KEY_Y);
+ pause_button->set_shortcut(ED_GET_SHORTCUT("editor/pause_scene"));
stop_button = memnew(Button);
stop_button->set_flat(true);
@@ -6534,11 +6541,10 @@ EditorNode::EditorNode() {
stop_button->connect("pressed", callable_mp(this, &EditorNode::_menu_option), make_binds(RUN_STOP));
stop_button->set_tooltip(TTR("Stop the scene."));
stop_button->set_disabled(true);
-#ifdef OSX_ENABLED
- stop_button->set_shortcut(ED_SHORTCUT("editor/stop", TTR("Stop"), KEY_MASK_CMD | KEY_PERIOD));
-#else
- stop_button->set_shortcut(ED_SHORTCUT("editor/stop", TTR("Stop"), KEY_F8));
-#endif
+
+ ED_SHORTCUT("editor/stop", TTR("Stop"), KEY_F8);
+ ED_SHORTCUT_OVERRIDE("editor/stop", "macos", KEY_MASK_CMD | KEY_PERIOD);
+ stop_button->set_shortcut(ED_GET_SHORTCUT("editor/stop"));
run_native = memnew(EditorRunNative);
play_hb->add_child(run_native);
@@ -6552,11 +6558,10 @@ EditorNode::EditorNode() {
play_scene_button->set_icon(gui_base->get_theme_icon(SNAME("PlayScene"), SNAME("EditorIcons")));
play_scene_button->connect("pressed", callable_mp(this, &EditorNode::_menu_option), make_binds(RUN_PLAY_SCENE));
play_scene_button->set_tooltip(TTR("Play the edited scene."));
-#ifdef OSX_ENABLED
- play_scene_button->set_shortcut(ED_SHORTCUT_AND_COMMAND("editor/play_scene", TTR("Play Scene"), KEY_MASK_CMD | KEY_R));
-#else
- play_scene_button->set_shortcut(ED_SHORTCUT_AND_COMMAND("editor/play_scene", TTR("Play Scene"), KEY_F6));
-#endif
+
+ ED_SHORTCUT_AND_COMMAND("editor/play_scene", TTR("Play Scene"), KEY_F6);
+ ED_SHORTCUT_OVERRIDE("editor/play_scene", "macos", KEY_MASK_CMD | KEY_R);
+ play_scene_button->set_shortcut(ED_GET_SHORTCUT("editor/play_scene"));
play_custom_scene_button = memnew(Button);
play_custom_scene_button->set_flat(true);
@@ -6566,11 +6571,10 @@ EditorNode::EditorNode() {
play_custom_scene_button->set_icon(gui_base->get_theme_icon(SNAME("PlayCustom"), SNAME("EditorIcons")));
play_custom_scene_button->connect("pressed", callable_mp(this, &EditorNode::_menu_option), make_binds(RUN_PLAY_CUSTOM_SCENE));
play_custom_scene_button->set_tooltip(TTR("Play custom scene"));
-#ifdef OSX_ENABLED
- play_custom_scene_button->set_shortcut(ED_SHORTCUT_AND_COMMAND("editor/play_custom_scene", TTR("Play Custom Scene"), KEY_MASK_CMD | KEY_MASK_SHIFT | KEY_R));
-#else
- play_custom_scene_button->set_shortcut(ED_SHORTCUT_AND_COMMAND("editor/play_custom_scene", TTR("Play Custom Scene"), KEY_MASK_CMD | KEY_MASK_SHIFT | KEY_F5));
-#endif
+
+ ED_SHORTCUT_AND_COMMAND("editor/play_custom_scene", TTR("Play Custom Scene"), KEY_MASK_CMD | KEY_MASK_SHIFT | KEY_F5);
+ ED_SHORTCUT_OVERRIDE("editor/play_custom_scene", "macos", KEY_MASK_CMD | KEY_MASK_SHIFT | KEY_R);
+ play_custom_scene_button->set_shortcut(ED_GET_SHORTCUT("editor/play_custom_scene"));
HBoxContainer *right_menu_hb = memnew(HBoxContainer);
menu_hb->add_child(right_menu_hb);
@@ -7106,20 +7110,19 @@ EditorNode::EditorNode() {
ResourceSaver::set_save_callback(_resource_saved);
ResourceLoader::set_load_callback(_resource_loaded);
-#ifdef OSX_ENABLED
- ED_SHORTCUT_AND_COMMAND("editor/editor_2d", TTR("Open 2D Editor"), KEY_MASK_ALT | KEY_1);
- ED_SHORTCUT_AND_COMMAND("editor/editor_3d", TTR("Open 3D Editor"), KEY_MASK_ALT | KEY_2);
- ED_SHORTCUT_AND_COMMAND("editor/editor_script", TTR("Open Script Editor"), KEY_MASK_ALT | KEY_3);
- ED_SHORTCUT_AND_COMMAND("editor/editor_assetlib", TTR("Open Asset Library"), KEY_MASK_ALT | KEY_4);
-#else
// Use the Ctrl modifier so F2 can be used to rename nodes in the scene tree dock.
ED_SHORTCUT_AND_COMMAND("editor/editor_2d", TTR("Open 2D Editor"), KEY_MASK_CTRL | KEY_F1);
ED_SHORTCUT_AND_COMMAND("editor/editor_3d", TTR("Open 3D Editor"), KEY_MASK_CTRL | KEY_F2);
ED_SHORTCUT_AND_COMMAND("editor/editor_script", TTR("Open Script Editor"), KEY_MASK_CTRL | KEY_F3);
ED_SHORTCUT_AND_COMMAND("editor/editor_assetlib", TTR("Open Asset Library"), KEY_MASK_CTRL | KEY_F4);
-#endif
- ED_SHORTCUT_AND_COMMAND("editor/editor_next", TTR("Next Editor Tab"));
- ED_SHORTCUT_AND_COMMAND("editor/editor_prev", TTR("Previous Editor Tab"));
+
+ ED_SHORTCUT_OVERRIDE("editor/editor_2d", "macos", KEY_MASK_ALT | KEY_1);
+ ED_SHORTCUT_OVERRIDE("editor/editor_3d", "macos", KEY_MASK_ALT | KEY_2);
+ ED_SHORTCUT_OVERRIDE("editor/editor_script", "macos", KEY_MASK_ALT | KEY_3);
+ ED_SHORTCUT_OVERRIDE("editor/editor_assetlib", "macos", KEY_MASK_ALT | KEY_4);
+
+ ED_SHORTCUT_AND_COMMAND("editor/editor_next", TTR("Open the next Editor"));
+ ED_SHORTCUT_AND_COMMAND("editor/editor_prev", TTR("Open the previous Editor"));
screenshot_timer = memnew(Timer);
screenshot_timer->set_one_shot(true);
diff --git a/editor/editor_node.h b/editor/editor_node.h
index 2e8b850c7b..d1f4cf8452 100644
--- a/editor/editor_node.h
+++ b/editor/editor_node.h
@@ -308,6 +308,7 @@ private:
ConfirmationDialog *pick_main_scene;
Button *select_current_scene_button;
AcceptDialog *accept;
+ AcceptDialog *save_accept;
EditorAbout *about;
AcceptDialog *warning;
@@ -814,6 +815,7 @@ public:
Ref<Texture2D> get_class_icon(const String &p_class, const String &p_fallback = "Object") const;
void show_accept(const String &p_text, const String &p_title);
+ void show_save_accept(const String &p_text, const String &p_title);
void show_warning(const String &p_text, const String &p_title = TTR("Warning!"));
void _copy_warning(const String &p_str);
diff --git a/editor/editor_plugin.cpp b/editor/editor_plugin.cpp
index 5baffb6f9d..99b917107e 100644
--- a/editor/editor_plugin.cpp
+++ b/editor/editor_plugin.cpp
@@ -104,7 +104,7 @@ Vector<Ref<Texture2D>> EditorInterface::make_mesh_previews(const Vector<Ref<Mesh
RS::get_singleton()->instance_set_transform(inst, mesh_xform);
AABB aabb = mesh->get_aabb();
- Vector3 ofs = aabb.position + aabb.size * 0.5;
+ Vector3 ofs = aabb.get_center();
aabb.position -= ofs;
Transform3D xform;
xform.basis = Basis().rotated(Vector3(0, 1, 0), -Math_PI / 6);
diff --git a/editor/editor_properties.cpp b/editor/editor_properties.cpp
index c1e60e141c..c0dadc4484 100644
--- a/editor/editor_properties.cpp
+++ b/editor/editor_properties.cpp
@@ -901,7 +901,7 @@ public:
if (layer_index >= layer_count) {
if (!flag_rects.is_empty() && (expansion_rows == 0)) {
const Rect2 &last_rect = flag_rects[flag_rects.size() - 1];
- arrow_pos = last_rect.position + last_rect.size;
+ arrow_pos = last_rect.get_end();
}
break;
}
@@ -913,7 +913,7 @@ public:
// Keep last valid cell position for the expansion icon.
if (!flag_rects.is_empty() && (expansion_rows == 0)) {
const Rect2 &last_rect = flag_rects[flag_rects.size() - 1];
- arrow_pos = last_rect.position + last_rect.size;
+ arrow_pos = last_rect.get_end();
}
++expansion_rows;
@@ -2951,8 +2951,8 @@ void EditorPropertyResource::_update_property_bg() {
count_subinspectors = MIN(15, count_subinspectors);
add_theme_color_override("property_color", get_theme_color(SNAME("sub_inspector_property_color"), SNAME("Editor")));
- add_theme_style_override("bg_selected", get_theme_stylebox("sub_inspector_property_bg_selected" + itos(count_subinspectors), "Editor"));
- add_theme_style_override("bg", get_theme_stylebox("sub_inspector_property_bg" + itos(count_subinspectors), "Editor"));
+ add_theme_style_override("bg_selected", get_theme_stylebox("sub_inspector_property_bg_selected" + itos(count_subinspectors), SNAME("Editor")));
+ add_theme_style_override("bg", get_theme_stylebox("sub_inspector_property_bg" + itos(count_subinspectors), SNAME("Editor")));
add_theme_constant_override("font_offset", get_theme_constant(SNAME("sub_inspector_font_offset"), SNAME("Editor")));
add_theme_constant_override("vseparation", 0);
diff --git a/editor/editor_properties_array_dict.cpp b/editor/editor_properties_array_dict.cpp
index 596f515067..9cecb62c66 100644
--- a/editor/editor_properties_array_dict.cpp
+++ b/editor/editor_properties_array_dict.cpp
@@ -176,7 +176,7 @@ void EditorPropertyArray::_change_type(Object *p_button, int p_index) {
changing_type_index = p_index;
Rect2 rect = button->get_screen_rect();
change_type->set_as_minsize();
- change_type->set_position(rect.position + rect.size - Vector2(change_type->get_contents_minimum_size().x, 0));
+ change_type->set_position(rect.get_end() - Vector2(change_type->get_contents_minimum_size().x, 0));
change_type->popup();
}
@@ -726,7 +726,7 @@ void EditorPropertyDictionary::_change_type(Object *p_button, int p_index) {
Rect2 rect = button->get_screen_rect();
change_type->set_as_minsize();
- change_type->set_position(rect.position + rect.size - Vector2(change_type->get_contents_minimum_size().x, 0));
+ change_type->set_position(rect.get_end() - Vector2(change_type->get_contents_minimum_size().x, 0));
change_type->popup();
changing_type_index = p_index;
}
diff --git a/editor/editor_resource_picker.cpp b/editor/editor_resource_picker.cpp
index 31c62880e2..9dbf69a779 100644
--- a/editor/editor_resource_picker.cpp
+++ b/editor/editor_resource_picker.cpp
@@ -145,7 +145,7 @@ void EditorResourcePicker::_update_menu() {
Rect2 gt = edit_button->get_screen_rect();
edit_menu->set_as_minsize();
int ms = edit_menu->get_contents_minimum_size().width;
- Vector2 popup_pos = gt.position + gt.size - Vector2(ms, 0);
+ Vector2 popup_pos = gt.get_end() - Vector2(ms, 0);
edit_menu->set_position(popup_pos);
edit_menu->popup();
}
@@ -924,7 +924,7 @@ void EditorShaderPicker::set_create_options(Object *p_menu_node) {
return;
}
- menu_node->add_icon_item(get_theme_icon("Shader", "EditorIcons"), TTR("New Shader"), OBJ_MENU_NEW_SHADER);
+ menu_node->add_icon_item(get_theme_icon(SNAME("Shader"), SNAME("EditorIcons")), TTR("New Shader"), OBJ_MENU_NEW_SHADER);
menu_node->add_separator();
}
diff --git a/editor/editor_settings.cpp b/editor/editor_settings.cpp
index 1953270b08..70f43e01cf 100644
--- a/editor/editor_settings.cpp
+++ b/editor/editor_settings.cpp
@@ -411,6 +411,7 @@ void EditorSettings::_load_defaults(Ref<ConfigFile> p_extra_config) {
_initial_set("interface/editor/automatically_open_screenshots", true);
EDITOR_SETTING_USAGE(Variant::BOOL, PROPERTY_HINT_NONE, "interface/editor/single_window_mode", false, "", PROPERTY_USAGE_DEFAULT | PROPERTY_USAGE_RESTART_IF_CHANGED)
_initial_set("interface/editor/hide_console_window", false);
+ _initial_set("interface/editor/mouse_extra_buttons_navigate_history", true);
_initial_set("interface/editor/save_each_scene_on_quit", true); // Regression
// Inspector
@@ -592,18 +593,16 @@ void EditorSettings::_load_defaults(Ref<ConfigFile> p_extra_config) {
_initial_set("editors/3d/navigation/warped_mouse_panning", true);
// 3D: Navigation feel
- EDITOR_SETTING(Variant::FLOAT, PROPERTY_HINT_RANGE, "editors/3d/navigation_feel/orbit_sensitivity", 0.4, "0.0,2,0.01")
- EDITOR_SETTING(Variant::FLOAT, PROPERTY_HINT_RANGE, "editors/3d/navigation_feel/orbit_inertia", 0.05, "0.0,1,0.01")
- EDITOR_SETTING(Variant::FLOAT, PROPERTY_HINT_RANGE, "editors/3d/navigation_feel/translation_inertia", 0.15, "0.0,1,0.01")
- EDITOR_SETTING(Variant::FLOAT, PROPERTY_HINT_RANGE, "editors/3d/navigation_feel/zoom_inertia", 0.075, "0.0,1,0.01")
- EDITOR_SETTING(Variant::FLOAT, PROPERTY_HINT_RANGE, "editors/3d/navigation_feel/manipulation_orbit_inertia", 0.075, "0.0,1,0.01")
- EDITOR_SETTING(Variant::FLOAT, PROPERTY_HINT_RANGE, "editors/3d/navigation_feel/manipulation_translation_inertia", 0.075, "0.0,1,0.01")
+ EDITOR_SETTING(Variant::FLOAT, PROPERTY_HINT_RANGE, "editors/3d/navigation_feel/orbit_sensitivity", 0.25, "0.01,2,0.001")
+ EDITOR_SETTING(Variant::FLOAT, PROPERTY_HINT_RANGE, "editors/3d/navigation_feel/orbit_inertia", 0.0, "0,1,0.001")
+ EDITOR_SETTING(Variant::FLOAT, PROPERTY_HINT_RANGE, "editors/3d/navigation_feel/translation_inertia", 0.05, "0,1,0.001")
+ EDITOR_SETTING(Variant::FLOAT, PROPERTY_HINT_RANGE, "editors/3d/navigation_feel/zoom_inertia", 0.05, "0,1,0.001")
// 3D: Freelook
EDITOR_SETTING(Variant::INT, PROPERTY_HINT_ENUM, "editors/3d/freelook/freelook_navigation_scheme", 0, "Default,Partially Axis-Locked (id Tech),Fully Axis-Locked (Minecraft)")
- EDITOR_SETTING(Variant::FLOAT, PROPERTY_HINT_RANGE, "editors/3d/freelook/freelook_sensitivity", 0.4, "0.0,2,0.01")
- EDITOR_SETTING(Variant::FLOAT, PROPERTY_HINT_RANGE, "editors/3d/freelook/freelook_inertia", 0.1, "0.0,1,0.01")
- EDITOR_SETTING(Variant::FLOAT, PROPERTY_HINT_RANGE, "editors/3d/freelook/freelook_base_speed", 5.0, "0.0,10,0.01")
+ EDITOR_SETTING(Variant::FLOAT, PROPERTY_HINT_RANGE, "editors/3d/freelook/freelook_sensitivity", 0.25, "0.01,2,0.001")
+ EDITOR_SETTING(Variant::FLOAT, PROPERTY_HINT_RANGE, "editors/3d/freelook/freelook_inertia", 0.0, "0,1,0.001")
+ EDITOR_SETTING(Variant::FLOAT, PROPERTY_HINT_RANGE, "editors/3d/freelook/freelook_base_speed", 5.0, "0,10,0.01")
EDITOR_SETTING(Variant::INT, PROPERTY_HINT_ENUM, "editors/3d/freelook/freelook_activation_modifier", 0, "None,Shift,Alt,Meta,Ctrl")
_initial_set("editors/3d/freelook/freelook_speed_zoom_link", false);
@@ -712,7 +711,7 @@ void EditorSettings::_load_godot2_text_editor_theme() {
_initial_set("text_editor/theme/highlighting/background_color", Color(0.13, 0.12, 0.15));
_initial_set("text_editor/theme/highlighting/completion_background_color", Color(0.17, 0.16, 0.2));
_initial_set("text_editor/theme/highlighting/completion_selected_color", Color(0.26, 0.26, 0.27));
- _initial_set("text_editor/theme/highlighting/completion_existing_color", Color(0.13, 0.87, 0.87, 0.87));
+ _initial_set("text_editor/theme/highlighting/completion_existing_color", Color(0.87, 0.87, 0.87, 0.13));
_initial_set("text_editor/theme/highlighting/completion_scroll_color", Color(1, 1, 1));
_initial_set("text_editor/theme/highlighting/completion_font_color", Color(0.67, 0.67, 0.67));
_initial_set("text_editor/theme/highlighting/text_color", Color(0.67, 0.67, 0.67));
@@ -1411,7 +1410,7 @@ Ref<Shortcut> EditorSettings::get_shortcut(const String &p_name) const {
// If there was no override, check the default builtins to see if it has an InputEvent for the provided name.
if (sc.is_null()) {
- const OrderedHashMap<String, List<Ref<InputEvent>>>::ConstElement builtin_default = InputMap::get_singleton()->get_builtins().find(p_name);
+ const OrderedHashMap<String, List<Ref<InputEvent>>>::ConstElement builtin_default = InputMap::get_singleton()->get_builtins_with_feature_overrides_applied().find(p_name);
if (builtin_default) {
sc.instantiate();
sc->set_event(builtin_default.get().front()->get());
@@ -1446,6 +1445,23 @@ Ref<Shortcut> ED_GET_SHORTCUT(const String &p_path) {
return sc;
}
+void ED_SHORTCUT_OVERRIDE(const String &p_path, const String &p_feature, Key p_keycode) {
+ Ref<Shortcut> sc = EditorSettings::get_singleton()->get_shortcut(p_path);
+ ERR_FAIL_COND_MSG(!sc.is_valid(), "Used ED_SHORTCUT_OVERRIDE with invalid shortcut: " + p_path + ".");
+
+ // Only add the override if the OS supports the provided feature.
+ if (OS::get_singleton()->has_feature(p_feature)) {
+ Ref<InputEventKey> ie;
+ if (p_keycode) {
+ ie = InputEventKey::create_reference(p_keycode);
+ }
+
+ // Directly override the existing shortcut.
+ sc->set_event(ie);
+ sc->set_meta("original", ie);
+ }
+}
+
Ref<Shortcut> ED_SHORTCUT(const String &p_path, const String &p_name, Key p_keycode) {
#ifdef OSX_ENABLED
// Use Cmd+Backspace as a general replacement for Delete shortcuts on macOS
@@ -1456,14 +1472,7 @@ Ref<Shortcut> ED_SHORTCUT(const String &p_path, const String &p_name, Key p_keyc
Ref<InputEventKey> ie;
if (p_keycode) {
- ie.instantiate();
-
- ie->set_unicode(p_keycode & KEY_CODE_MASK);
- ie->set_keycode(p_keycode & KEY_CODE_MASK);
- ie->set_shift_pressed(bool(p_keycode & KEY_MASK_SHIFT));
- ie->set_alt_pressed(bool(p_keycode & KEY_MASK_ALT));
- ie->set_ctrl_pressed(bool(p_keycode & KEY_MASK_CTRL));
- ie->set_meta_pressed(bool(p_keycode & KEY_MASK_META));
+ ie = InputEventKey::create_reference(p_keycode);
}
if (!EditorSettings::get_singleton()) {
@@ -1504,15 +1513,23 @@ void EditorSettings::set_builtin_action_override(const String &p_name, const Arr
// Check if the provided event array is same as built-in. If it is, it does not need to be added to the overrides.
// Note that event order must also be the same.
bool same_as_builtin = true;
- OrderedHashMap<String, List<Ref<InputEvent>>>::ConstElement builtin_default = InputMap::get_singleton()->get_builtins().find(p_name);
+ OrderedHashMap<String, List<Ref<InputEvent>>>::ConstElement builtin_default = InputMap::get_singleton()->get_builtins_with_feature_overrides_applied().find(p_name);
if (builtin_default) {
List<Ref<InputEvent>> builtin_events = builtin_default.get();
- if (p_events.size() == builtin_events.size()) {
+ // In the editor we only care about key events.
+ List<Ref<InputEventKey>> builtin_key_events;
+ for (Ref<InputEventKey> iek : builtin_events) {
+ if (iek.is_valid()) {
+ builtin_key_events.push_back(iek);
+ }
+ }
+
+ if (p_events.size() == builtin_key_events.size()) {
int event_idx = 0;
// Check equality of each event.
- for (const Ref<InputEvent> &E : builtin_events) {
+ for (const Ref<InputEventKey> &E : builtin_key_events) {
if (!E->is_match(p_events[event_idx])) {
same_as_builtin = false;
break;
diff --git a/editor/editor_settings.h b/editor/editor_settings.h
index 86e15f5ff5..9067539e29 100644
--- a/editor/editor_settings.h
+++ b/editor/editor_settings.h
@@ -201,6 +201,7 @@ Variant _EDITOR_GET(const String &p_setting);
#define ED_IS_SHORTCUT(p_name, p_ev) (EditorSettings::get_singleton()->is_shortcut(p_name, p_ev))
Ref<Shortcut> ED_SHORTCUT(const String &p_path, const String &p_name, Key p_keycode = KEY_NONE);
+void ED_SHORTCUT_OVERRIDE(const String &p_path, const String &p_feature, Key p_keycode = KEY_NONE);
Ref<Shortcut> ED_GET_SHORTCUT(const String &p_path);
#endif // EDITOR_SETTINGS_H
diff --git a/editor/editor_spin_slider.cpp b/editor/editor_spin_slider.cpp
index 8cd636ddf3..1890814da9 100644
--- a/editor/editor_spin_slider.cpp
+++ b/editor/editor_spin_slider.cpp
@@ -191,6 +191,59 @@ void EditorSpinSlider::_grabber_gui_input(const Ref<InputEvent> &p_event) {
}
}
+void EditorSpinSlider::_value_input_gui_input(const Ref<InputEvent> &p_event) {
+ Ref<InputEventKey> k = p_event;
+ if (k.is_valid() && k->is_pressed()) {
+ double step = get_step();
+ double real_step = step;
+ if (step < 1) {
+ double divisor = 1.0 / get_step();
+
+ if (trunc(divisor) == divisor) {
+ step = 1.0;
+ }
+ }
+
+ if (k->is_ctrl_pressed()) {
+ step *= 100.0;
+ } else if (k->is_shift_pressed()) {
+ step *= 10.0;
+ } else if (k->is_alt_pressed()) {
+ step *= 0.1;
+ }
+
+ uint32_t code = k->get_keycode();
+ switch (code) {
+ case KEY_UP: {
+ _evaluate_input_text();
+
+ double last_value = get_value();
+ set_value(last_value + step);
+ double new_value = get_value();
+
+ if (new_value < CLAMP(last_value + step, get_min(), get_max())) {
+ set_value(last_value + real_step);
+ }
+
+ value_input->set_text(get_text_value());
+ } break;
+ case KEY_DOWN: {
+ _evaluate_input_text();
+
+ double last_value = get_value();
+ set_value(last_value - step);
+ double new_value = get_value();
+
+ if (new_value > CLAMP(last_value - step, get_min(), get_max())) {
+ set_value(last_value - real_step);
+ }
+
+ value_input->set_text(get_text_value());
+ } break;
+ }
+ }
+}
+
void EditorSpinSlider::_update_value_input_stylebox() {
if (!value_input) {
return;
@@ -328,7 +381,7 @@ void EditorSpinSlider::_draw_spin_slider() {
Rect2 grabber_rect = Rect2(ofs + gofs, svofs + 1, grabber_w, 2 * EDSCALE);
draw_rect(grabber_rect, c);
- grabbing_spinner_mouse_pos = get_global_position() + grabber_rect.position + grabber_rect.size * 0.5;
+ grabbing_spinner_mouse_pos = get_global_position() + grabber_rect.get_center();
bool display_grabber = (mouse_over_spin || mouse_over_grabber) && !grabbing_spinner && !(value_input_popup && value_input_popup->is_visible());
if (grabber->is_visible() != display_grabber) {
@@ -354,7 +407,7 @@ void EditorSpinSlider::_draw_spin_slider() {
Vector2 scale = get_global_transform_with_canvas().get_scale();
grabber->set_scale(scale);
grabber->set_size(Size2(0, 0));
- grabber->set_position(get_global_position() + (grabber_rect.position + grabber_rect.size * 0.5 - grabber->get_size() * 0.5) * scale);
+ grabber->set_position(get_global_position() + (grabber_rect.get_center() - grabber->get_size() * 0.5) * scale);
if (mousewheel_over_grabber) {
Input::get_singleton()->warp_mouse_position(grabber->get_position() + grabber_rect.size);
@@ -585,11 +638,13 @@ void EditorSpinSlider::_ensure_input_popup() {
value_input_popup->connect("popup_hide", callable_mp(this, &EditorSpinSlider::_value_input_closed));
value_input->connect("text_submitted", callable_mp(this, &EditorSpinSlider::_value_input_submitted));
value_input->connect("focus_exited", callable_mp(this, &EditorSpinSlider::_value_focus_exited));
+ value_input->connect("gui_input", callable_mp(this, &EditorSpinSlider::_value_input_gui_input));
if (is_inside_tree()) {
_update_value_input_stylebox();
}
}
+
EditorSpinSlider::EditorSpinSlider() {
flat = false;
grabbing_spinner_attempt = false;
diff --git a/editor/editor_spin_slider.h b/editor/editor_spin_slider.h
index 1bf8e8eef9..7e10764491 100644
--- a/editor/editor_spin_slider.h
+++ b/editor/editor_spin_slider.h
@@ -71,6 +71,7 @@ class EditorSpinSlider : public Range {
void _value_input_closed();
void _value_input_submitted(const String &);
void _value_focus_exited();
+ void _value_input_gui_input(const Ref<InputEvent> &p_event);
bool hide_slider;
bool flat;
diff --git a/editor/export_template_manager.cpp b/editor/export_template_manager.cpp
index b646b3361d..cb88e9d75e 100644
--- a/editor/export_template_manager.cpp
+++ b/editor/export_template_manager.cpp
@@ -743,7 +743,7 @@ void ExportTemplateManager::_notification(int p_what) {
current_missing_label->add_theme_color_override("font_color", get_theme_color(SNAME("error_color"), SNAME("Editor")));
current_installed_label->add_theme_color_override("font_color", get_theme_color(SNAME("disabled_font_color"), SNAME("Editor")));
- mirror_options_button->set_icon(get_theme_icon(SNAME("GuiTabMenu"), SNAME("EditorIcons")));
+ mirror_options_button->set_icon(get_theme_icon(SNAME("GuiTabMenuHl"), SNAME("EditorIcons")));
} break;
case NOTIFICATION_VISIBILITY_CHANGED: {
diff --git a/editor/import/dynamicfont_import_settings.cpp b/editor/import/dynamicfont_import_settings.cpp
index 37ca40287f..9a8abfa5c6 100644
--- a/editor/import/dynamicfont_import_settings.cpp
+++ b/editor/import/dynamicfont_import_settings.cpp
@@ -92,6 +92,8 @@ struct UniRange {
String name;
};
+// Unicode Character Blocks
+// Source: https://www.unicode.org/Public/14.0.0/ucd/Blocks.txt
static UniRange unicode_ranges[] = {
{ 0x0000, 0x007F, U"Basic Latin" },
{ 0x0080, 0x00FF, U"Latin-1 Supplement" },
@@ -109,10 +111,11 @@ static UniRange unicode_ranges[] = {
{ 0x0700, 0x074F, U"Syriac" },
{ 0x0750, 0x077F, U"Arabic Supplement" },
{ 0x0780, 0x07BF, U"Thaana" },
- { 0x07C0, 0x07FF, U"N'Ko" },
+ { 0x07C0, 0x07FF, U"NKo" },
{ 0x0800, 0x083F, U"Samaritan" },
{ 0x0840, 0x085F, U"Mandaic" },
{ 0x0860, 0x086F, U"Syriac Supplement" },
+ { 0x0870, 0x089F, U"Arabic Extended-B" },
{ 0x08A0, 0x08FF, U"Arabic Extended-A" },
{ 0x0900, 0x097F, U"Devanagari" },
{ 0x0980, 0x09FF, U"Bengali" },
@@ -239,9 +242,12 @@ static UniRange unicode_ranges[] = {
{ 0xAB30, 0xAB6F, U"Latin Extended-E" },
{ 0xAB70, 0xABBF, U"Cherokee Supplement" },
{ 0xABC0, 0xABFF, U"Meetei Mayek" },
+ { 0xAC00, 0xD7AF, U"Hangul Syllables" },
{ 0xD7B0, 0xD7FF, U"Hangul Jamo Extended-B" },
- //{ 0xF800, 0xDFFF, U"Surrogates" },
- { 0xE000, 0xE2FE, U"Private Use Area" },
+ //{ 0xD800, 0xDB7F, U"High Surrogates" },
+ //{ 0xDB80, 0xDBFF, U"High Private Use Surrogates" },
+ //{ 0xDC00, 0xDFFF, U"Low Surrogates" },
+ { 0xE000, 0xF8FF, U"Private Use Area" },
{ 0xF900, 0xFAFF, U"CJK Compatibility Ideographs" },
{ 0xFB00, 0xFB4F, U"Alphabetic Presentation Forms" },
{ 0xFB50, 0xFDFF, U"Arabic Presentation Forms-A" },
@@ -273,7 +279,9 @@ static UniRange unicode_ranges[] = {
{ 0x104B0, 0x104FF, U"Osage" },
{ 0x10500, 0x1052F, U"Elbasan" },
{ 0x10530, 0x1056F, U"Caucasian Albanian" },
+ { 0x10570, 0x105BF, U"Vithkuqi" },
{ 0x10600, 0x1077F, U"Linear A" },
+ { 0x10780, 0x107BF, U"Latin Extended-F" },
{ 0x10800, 0x1083F, U"Cypriot Syllabary" },
{ 0x10840, 0x1085F, U"Imperial Aramaic" },
{ 0x10860, 0x1087F, U"Palmyrene" },
@@ -298,6 +306,7 @@ static UniRange unicode_ranges[] = {
{ 0x10E80, 0x10EBF, U"Yezidi" },
{ 0x10F00, 0x10F2F, U"Old Sogdian" },
{ 0x10F30, 0x10F6F, U"Sogdian" },
+ { 0x10F70, 0x10FAF, U"Old Uyghur" },
{ 0x10FB0, 0x10FDF, U"Chorasmian" },
{ 0x10FE0, 0x10FFF, U"Elymaic" },
{ 0x11000, 0x1107F, U"Brahmi" },
@@ -317,13 +326,14 @@ static UniRange unicode_ranges[] = {
{ 0x11600, 0x1165F, U"Modi" },
{ 0x11660, 0x1167F, U"Mongolian Supplement" },
{ 0x11680, 0x116CF, U"Takri" },
- { 0x11700, 0x1173F, U"Ahom" },
+ { 0x11700, 0x1174F, U"Ahom" },
{ 0x11800, 0x1184F, U"Dogra" },
{ 0x118A0, 0x118FF, U"Warang Citi" },
{ 0x11900, 0x1195F, U"Dives Akuru" },
{ 0x119A0, 0x119FF, U"Nandinagari" },
{ 0x11A00, 0x11A4F, U"Zanabazar Square" },
{ 0x11A50, 0x11AAF, U"Soyombo" },
+ { 0x11AB0, 0x11ABF, U"Unified Canadian Aboriginal Syllabics Extended-A" },
{ 0x11AC0, 0x11AFF, U"Pau Cin Hau" },
{ 0x11C00, 0x11C6F, U"Bhaiksuki" },
{ 0x11C70, 0x11CBF, U"Marchen" },
@@ -335,11 +345,13 @@ static UniRange unicode_ranges[] = {
{ 0x12000, 0x123FF, U"Cuneiform" },
{ 0x12400, 0x1247F, U"Cuneiform Numbers and Punctuation" },
{ 0x12480, 0x1254F, U"Early Dynastic Cuneiform" },
+ { 0x12F90, 0x12FFF, U"Cypro-Minoan" },
{ 0x13000, 0x1342F, U"Egyptian Hieroglyphs" },
{ 0x13430, 0x1343F, U"Egyptian Hieroglyph Format Controls" },
{ 0x14400, 0x1467F, U"Anatolian Hieroglyphs" },
{ 0x16800, 0x16A3F, U"Bamum Supplement" },
{ 0x16A40, 0x16A6F, U"Mro" },
+ { 0x16A70, 0x16ACF, U"Tangsa" },
{ 0x16AD0, 0x16AFF, U"Bassa Vah" },
{ 0x16B00, 0x16B8F, U"Pahawh Hmong" },
{ 0x16E40, 0x16E9F, U"Medefaidrin" },
@@ -348,13 +360,15 @@ static UniRange unicode_ranges[] = {
{ 0x17000, 0x187FF, U"Tangut" },
{ 0x18800, 0x18AFF, U"Tangut Components" },
{ 0x18B00, 0x18CFF, U"Khitan Small Script" },
- { 0x18D00, 0x18D8F, U"Tangut Supplement" },
+ { 0x18D00, 0x18D7F, U"Tangut Supplement" },
+ { 0x1AFF0, 0x1AFFF, U"Kana Extended-B" },
{ 0x1B000, 0x1B0FF, U"Kana Supplement" },
{ 0x1B100, 0x1B12F, U"Kana Extended-A" },
{ 0x1B130, 0x1B16F, U"Small Kana Extension" },
{ 0x1B170, 0x1B2FF, U"Nushu" },
{ 0x1BC00, 0x1BC9F, U"Duployan" },
{ 0x1BCA0, 0x1BCAF, U"Shorthand Format Controls" },
+ { 0x1CF00, 0x1CFCF, U"Znamenny Musical Notation" },
{ 0x1D000, 0x1D0FF, U"Byzantine Musical Symbols" },
{ 0x1D100, 0x1D1FF, U"Musical Symbols" },
{ 0x1D200, 0x1D24F, U"Ancient Greek Musical Notation" },
@@ -363,9 +377,12 @@ static UniRange unicode_ranges[] = {
{ 0x1D360, 0x1D37F, U"Counting Rod Numerals" },
{ 0x1D400, 0x1D7FF, U"Mathematical Alphanumeric Symbols" },
{ 0x1D800, 0x1DAAF, U"Sutton SignWriting" },
+ { 0x1DF00, 0x1DFFF, U"Latin Extended-G" },
{ 0x1E000, 0x1E02F, U"Glagolitic Supplement" },
{ 0x1E100, 0x1E14F, U"Nyiakeng Puachue Hmong" },
+ { 0x1E290, 0x1E2BF, U"Toto" },
{ 0x1E2C0, 0x1E2FF, U"Wancho" },
+ { 0x1E7E0, 0x1E7FF, U"Ethiopic Extended-B" },
{ 0x1E800, 0x1E8DF, U"Mende Kikakui" },
{ 0x1E900, 0x1E95F, U"Adlam" },
{ 0x1EC70, 0x1ECBF, U"Indic Siyaq Numbers" },
@@ -396,8 +413,8 @@ static UniRange unicode_ranges[] = {
{ 0x30000, 0x3134F, U"CJK Unified Ideographs Extension G" },
//{ 0xE0000, 0xE007F, U"Tags" },
//{ 0xE0100, 0xE01EF, U"Variation Selectors Supplement" },
- { 0xF0000, 0xFFFFD, U"Supplementary Private Use Area-A" },
- { 0x100000, 0x10FFFD, U"Supplementary Private Use Area-B" },
+ { 0xF0000, 0xFFFFF, U"Supplementary Private Use Area-A" },
+ { 0x100000, 0x10FFFF, U"Supplementary Private Use Area-B" },
{ 0x10FFFF, 0x10FFFF, String() }
};
@@ -1799,7 +1816,7 @@ DynamicFontImportSettings::DynamicFontImportSettings() {
glyph_tree = memnew(Tree);
glyphs_split->add_child(glyph_tree);
glyph_tree->set_custom_minimum_size(Size2(300 * EDSCALE, 0));
- glyph_tree->set_columns(3);
+ glyph_tree->set_columns(2);
glyph_tree->set_hide_root(true);
glyph_tree->set_column_expand(0, false);
glyph_tree->set_column_expand(1, true);
diff --git a/editor/import/resource_importer_texture_atlas.cpp b/editor/import/resource_importer_texture_atlas.cpp
index dec1466da1..36fd161c35 100644
--- a/editor/import/resource_importer_texture_atlas.cpp
+++ b/editor/import/resource_importer_texture_atlas.cpp
@@ -131,9 +131,9 @@ static void _plot_triangle(Vector2i *vertices, const Vector2i &p_offset, bool p_
double xf = x[0];
double xt = x[0] + dx_upper; // if y[0] == y[1], special case
int max_y = MIN(y[2], height - p_offset.y - 1);
- for (int yi = y[0]; yi <= max_y; yi++) {
+ for (int yi = y[0]; yi < max_y; yi++) {
if (yi >= 0) {
- for (int xi = (xf > 0 ? int(xf) : 0); xi <= (xt < width ? xt : width - 1); xi++) {
+ for (int xi = (xf > 0 ? int(xf) : 0); xi < (xt < width ? xt : width - 1); xi++) {
int px = xi, py = yi;
int sx = px, sy = py;
sx = CLAMP(sx, 0, src_width - 1);
@@ -324,7 +324,7 @@ Error ResourceImporterTextureAtlas::import_group_file(const String &p_group_file
atlas_texture.instantiate();
atlas_texture->set_atlas(cache);
atlas_texture->set_region(Rect2(offset, pack_data.region.size));
- atlas_texture->set_margin(Rect2(pack_data.region.position, Size2(pack_data.image->get_width(), pack_data.image->get_height()) - pack_data.region.size));
+ atlas_texture->set_margin(Rect2(pack_data.region.position, pack_data.image->get_size() - pack_data.region.size));
texture = atlas_texture;
} else {
diff --git a/editor/import/scene_import_settings.cpp b/editor/import/scene_import_settings.cpp
index 4bcb6863fb..f99ab9888a 100644
--- a/editor/import/scene_import_settings.cpp
+++ b/editor/import/scene_import_settings.cpp
@@ -434,7 +434,7 @@ void SceneImportSettings::_update_camera() {
}
}
- Vector3 center = camera_aabb.position + camera_aabb.size * 0.5;
+ Vector3 center = camera_aabb.get_center();
float camera_size = camera_aabb.get_longest_axis_size();
camera->set_orthogonal(camera_size * zoom, 0.0001, camera_size * 2);
diff --git a/editor/import_dock.cpp b/editor/import_dock.cpp
index 648e60a554..5b52554335 100644
--- a/editor/import_dock.cpp
+++ b/editor/import_dock.cpp
@@ -127,12 +127,7 @@ void ImportDock::set_edit_path(const String &p_path) {
}
}
- import_as->add_separator();
- import_as->add_item(TTR("Keep File (No Import)"));
- import_as->set_item_metadata(import_as->get_item_count() - 1, "keep");
- if (importer_name == "keep") {
- import_as->select(import_as->get_item_count() - 1);
- }
+ _add_keep_import_option(importer_name);
import->set_disabled(false);
import_as->set_disabled(false);
@@ -141,6 +136,15 @@ void ImportDock::set_edit_path(const String &p_path) {
imported->set_text(p_path.get_file());
}
+void ImportDock::_add_keep_import_option(const String &p_importer_name) {
+ import_as->add_separator();
+ import_as->add_item(TTR("Keep File (No Import)"));
+ import_as->set_item_metadata(import_as->get_item_count() - 1, "keep");
+ if (p_importer_name == "keep") {
+ import_as->select(import_as->get_item_count() - 1);
+ }
+}
+
void ImportDock::_update_options(const Ref<ConfigFile> &p_config) {
List<ResourceImporter::ImportOption> options;
@@ -270,6 +274,8 @@ void ImportDock::set_edit_multiple_paths(const Vector<String> &p_paths) {
}
}
+ _add_keep_import_option(params->importer->get_importer_name());
+
_update_preset_menu();
params->paths = p_paths;
diff --git a/editor/import_dock.h b/editor/import_dock.h
index 2be48dd505..3c28bbcd89 100644
--- a/editor/import_dock.h
+++ b/editor/import_dock.h
@@ -66,6 +66,7 @@ class ImportDock : public VBoxContainer {
void _importer_selected(int i_idx);
void _update_options(const Ref<ConfigFile> &p_config = Ref<ConfigFile>());
void _update_preset_menu();
+ void _add_keep_import_option(const String &p_importer_name);
void _property_toggled(const StringName &p_prop, bool p_checked);
void _reimport_attempt();
diff --git a/editor/plugins/animation_blend_space_2d_editor.cpp b/editor/plugins/animation_blend_space_2d_editor.cpp
index 49fcac512b..686a35e442 100644
--- a/editor/plugins/animation_blend_space_2d_editor.cpp
+++ b/editor/plugins/animation_blend_space_2d_editor.cpp
@@ -129,8 +129,7 @@ void AnimationNodeBlendSpace2DEditor::_blend_space_gui_input(const Ref<InputEven
add_point_pos += blend_space->get_min_space();
if (snap->is_pressed()) {
- add_point_pos.x = Math::snapped(add_point_pos.x, blend_space->get_snap().x);
- add_point_pos.y = Math::snapped(add_point_pos.y, blend_space->get_snap().y);
+ add_point_pos = add_point_pos.snapped(blend_space->get_snap());
}
}
@@ -215,8 +214,7 @@ void AnimationNodeBlendSpace2DEditor::_blend_space_gui_input(const Ref<InputEven
Vector2 point = blend_space->get_blend_point_position(selected_point);
point += drag_ofs;
if (snap->is_pressed()) {
- point.x = Math::snapped(point.x, blend_space->get_snap().x);
- point.y = Math::snapped(point.y, blend_space->get_snap().y);
+ point = point.snapped(blend_space->get_snap());
}
updating = true;
@@ -467,8 +465,7 @@ void AnimationNodeBlendSpace2DEditor::_blend_space_draw() {
if (dragging_selected && selected_point == point_idx) {
point += drag_ofs;
if (snap->is_pressed()) {
- point.x = Math::snapped(point.x, blend_space->get_snap().x);
- point.y = Math::snapped(point.y, blend_space->get_snap().y);
+ point = point.snapped(blend_space->get_snap());
}
}
point = (point - blend_space->get_min_space()) / (blend_space->get_max_space() - blend_space->get_min_space());
@@ -503,8 +500,7 @@ void AnimationNodeBlendSpace2DEditor::_blend_space_draw() {
if (dragging_selected && selected_point == i) {
point += drag_ofs;
if (snap->is_pressed()) {
- point.x = Math::snapped(point.x, blend_space->get_snap().x);
- point.y = Math::snapped(point.y, blend_space->get_snap().y);
+ point = point.snapped(blend_space->get_snap());
}
}
point = (point - blend_space->get_min_space()) / (blend_space->get_max_space() - blend_space->get_min_space());
@@ -702,8 +698,7 @@ void AnimationNodeBlendSpace2DEditor::_update_edited_point_pos() {
if (dragging_selected) {
pos += drag_ofs;
if (snap->is_pressed()) {
- pos.x = Math::snapped(pos.x, blend_space->get_snap().x);
- pos.y = Math::snapped(pos.y, blend_space->get_snap().y);
+ pos = pos.snapped(blend_space->get_snap());
}
}
updating = true;
diff --git a/editor/plugins/animation_player_editor_plugin.cpp b/editor/plugins/animation_player_editor_plugin.cpp
index 18b4966f80..68b143358a 100644
--- a/editor/plugins/animation_player_editor_plugin.cpp
+++ b/editor/plugins/animation_player_editor_plugin.cpp
@@ -120,7 +120,7 @@ void AnimationPlayerEditor::_notification(int p_what) {
Ref<Image> autoplay_img = autoplay_icon->get_image();
Ref<Image> reset_img = reset_icon->get_image();
Ref<Image> autoplay_reset_img;
- Size2 icon_size = Size2(autoplay_img->get_width(), autoplay_img->get_height());
+ Size2 icon_size = autoplay_img->get_size();
autoplay_reset_img.instantiate();
autoplay_reset_img->create(icon_size.x * 2, icon_size.y, false, autoplay_img->get_format());
autoplay_reset_img->blit_rect(autoplay_img, Rect2(Point2(), icon_size), Point2());
diff --git a/editor/plugins/canvas_item_editor_plugin.cpp b/editor/plugins/canvas_item_editor_plugin.cpp
index db5be94fd2..66a1719ff3 100644
--- a/editor/plugins/canvas_item_editor_plugin.cpp
+++ b/editor/plugins/canvas_item_editor_plugin.cpp
@@ -387,7 +387,7 @@ Point2 CanvasItemEditor::snap_point(Point2 p_target, unsigned int p_modes, unsig
// Self center
if ((is_snap_active && snap_node_center && (p_modes & SNAP_NODE_CENTER)) || (p_forced_modes & SNAP_NODE_CENTER)) {
if (p_self_canvas_item->_edit_use_rect()) {
- Point2 center = p_self_canvas_item->get_global_transform_with_canvas().xform(p_self_canvas_item->_edit_get_rect().get_position() + p_self_canvas_item->_edit_get_rect().get_size() / 2.0);
+ Point2 center = p_self_canvas_item->get_global_transform_with_canvas().xform(p_self_canvas_item->_edit_get_rect().get_center());
_snap_if_closer_point(p_target, output, snap_target, center, SNAP_TARGET_SELF, rotation);
} else {
Point2 position = p_self_canvas_item->get_global_transform_with_canvas().xform(Point2());
@@ -525,7 +525,7 @@ Rect2 CanvasItemEditor::_get_encompassing_rect_from_list(List<CanvasItem *> p_li
// Handles the first element
CanvasItem *canvas_item = p_list.front()->get();
- Rect2 rect = Rect2(canvas_item->get_global_transform_with_canvas().xform(canvas_item->_edit_get_rect().position + canvas_item->_edit_get_rect().size / 2), Size2());
+ Rect2 rect = Rect2(canvas_item->get_global_transform_with_canvas().xform(canvas_item->_edit_get_rect().get_center()), Size2());
// Expand with the other ones
for (CanvasItem *canvas_item2 : p_list) {
@@ -564,7 +564,7 @@ void CanvasItemEditor::_expand_encompassing_rect_using_children(Rect2 &r_rect, c
Transform2D xform = p_parent_xform * p_canvas_xform * canvas_item->get_transform();
Rect2 rect = canvas_item->_edit_get_rect();
if (r_first) {
- r_rect = Rect2(xform.xform(rect.position + rect.size / 2), Size2());
+ r_rect = Rect2(xform.xform(rect.get_center()), Size2());
r_first = false;
}
r_rect.expand_to(xform.xform(rect.position));
@@ -2927,7 +2927,7 @@ void CanvasItemEditor::_draw_ruler_tool() {
viewport->draw_string(font, text_pos, TS->format_number(vformat("%.1f px", length_vector.length())), HALIGN_LEFT, -1, font_size, font_color, outline_size, outline_color);
if (draw_secondary_lines) {
- const real_t horizontal_angle_rad = atan2(length_vector.y, length_vector.x);
+ const real_t horizontal_angle_rad = length_vector.angle();
const real_t vertical_angle_rad = Math_PI / 2.0 - horizontal_angle_rad;
const int horizontal_angle = round(180 * horizontal_angle_rad / Math_PI);
const int vertical_angle = round(180 * vertical_angle_rad / Math_PI);
@@ -3968,7 +3968,7 @@ void CanvasItemEditor::edit(CanvasItem *p_canvas_item) {
void CanvasItemEditor::_update_context_menu_stylebox() {
// This must be called when the theme changes to follow the new accent color.
Ref<StyleBoxFlat> context_menu_stylebox = memnew(StyleBoxFlat);
- const Color accent_color = EditorNode::get_singleton()->get_gui_base()->get_theme_color("accent_color", "Editor");
+ const Color accent_color = EditorNode::get_singleton()->get_gui_base()->get_theme_color(SNAME("accent_color"), SNAME("Editor"));
context_menu_stylebox->set_bg_color(accent_color * Color(1, 1, 1, 0.1));
// Add an underline to the StyleBox, but prevent its minimum vertical size from changing.
context_menu_stylebox->set_border_color(accent_color);
@@ -4896,10 +4896,9 @@ void CanvasItemEditor::_focus_selection(int p_op) {
};
if (p_op == VIEW_CENTER_TO_SELECTION) {
- center = rect.position + rect.size / 2;
+ center = rect.get_center();
Vector2 offset = viewport->get_size() / 2 - editor->get_scene_root()->get_global_canvas_transform().xform(center);
- view_offset.x -= Math::round(offset.x / zoom);
- view_offset.y -= Math::round(offset.y / zoom);
+ view_offset -= (offset / zoom).round();
update_viewport();
} else { // VIEW_FRAME_TO_SELECTION
diff --git a/editor/plugins/cpu_particles_2d_editor_plugin.cpp b/editor/plugins/cpu_particles_2d_editor_plugin.cpp
index 6f246c1661..fb9f8696fe 100644
--- a/editor/plugins/cpu_particles_2d_editor_plugin.cpp
+++ b/editor/plugins/cpu_particles_2d_editor_plugin.cpp
@@ -83,7 +83,7 @@ void CPUParticles2DEditorPlugin::_generate_emission_mask() {
}
img->convert(Image::FORMAT_RGBA8);
ERR_FAIL_COND(img->get_format() != Image::FORMAT_RGBA8);
- Size2i s = Size2(img->get_width(), img->get_height());
+ Size2i s = img->get_size();
ERR_FAIL_COND(s.width == 0 || s.height == 0);
Vector<Point2> valid_positions;
diff --git a/editor/plugins/editor_preview_plugins.cpp b/editor/plugins/editor_preview_plugins.cpp
index 415832ab3b..4cb2c0a76b 100644
--- a/editor/plugins/editor_preview_plugins.cpp
+++ b/editor/plugins/editor_preview_plugins.cpp
@@ -718,7 +718,7 @@ Ref<Texture2D> EditorMeshPreviewPlugin::generate(const RES &p_from, const Size2
RS::get_singleton()->instance_set_base(mesh_instance, mesh->get_rid());
AABB aabb = mesh->get_aabb();
- Vector3 ofs = aabb.position + aabb.size * 0.5;
+ Vector3 ofs = aabb.get_center();
aabb.position -= ofs;
Transform3D xform;
xform.basis = Basis().rotated(Vector3(0, 1, 0), -Math_PI * 0.125);
diff --git a/editor/plugins/gpu_particles_2d_editor_plugin.cpp b/editor/plugins/gpu_particles_2d_editor_plugin.cpp
index dd91df747a..44c789b145 100644
--- a/editor/plugins/gpu_particles_2d_editor_plugin.cpp
+++ b/editor/plugins/gpu_particles_2d_editor_plugin.cpp
@@ -158,7 +158,7 @@ void GPUParticles2DEditorPlugin::_generate_emission_mask() {
}
img->convert(Image::FORMAT_RGBA8);
ERR_FAIL_COND(img->get_format() != Image::FORMAT_RGBA8);
- Size2i s = Size2(img->get_width(), img->get_height());
+ Size2i s = img->get_size();
ERR_FAIL_COND(s.width == 0 || s.height == 0);
Vector<Point2> valid_positions;
diff --git a/editor/plugins/gpu_particles_3d_editor_plugin.cpp b/editor/plugins/gpu_particles_3d_editor_plugin.cpp
index 903a3689b0..5ac58795d1 100644
--- a/editor/plugins/gpu_particles_3d_editor_plugin.cpp
+++ b/editor/plugins/gpu_particles_3d_editor_plugin.cpp
@@ -362,6 +362,7 @@ void GPUParticles3DEditor::_generate_emission_points() {
Ref<ImageTexture> tex;
tex.instantiate();
+ tex->create_from_image(image);
Ref<ParticlesMaterial> material = node->get_process_material();
ERR_FAIL_COND(material.is_null());
@@ -390,6 +391,7 @@ void GPUParticles3DEditor::_generate_emission_points() {
Ref<ImageTexture> tex2;
tex2.instantiate();
+ tex2->create_from_image(image2);
material->set_emission_normal_texture(tex2);
} else {
diff --git a/editor/plugins/item_list_editor_plugin.cpp b/editor/plugins/item_list_editor_plugin.cpp
index 3207a989bd..16cafda899 100644
--- a/editor/plugins/item_list_editor_plugin.cpp
+++ b/editor/plugins/item_list_editor_plugin.cpp
@@ -244,6 +244,7 @@ void ItemListEditor::_node_removed(Node *p_node) {
void ItemListEditor::_notification(int p_notification) {
if (p_notification == NOTIFICATION_ENTER_TREE || p_notification == NOTIFICATION_THEME_CHANGED) {
add_button->set_icon(get_theme_icon(SNAME("Add"), SNAME("EditorIcons")));
+ clear_button->set_icon(get_theme_icon(SNAME("Remove"), SNAME("EditorIcons")));
del_button->set_icon(get_theme_icon(SNAME("Remove"), SNAME("EditorIcons")));
} else if (p_notification == NOTIFICATION_READY) {
get_tree()->connect("node_removed", callable_mp(this, &ItemListEditor::_node_removed));
@@ -258,6 +259,12 @@ void ItemListEditor::_add_pressed() {
item_plugins[selected_idx]->add_item();
}
+void ItemListEditor::_clear_pressed() {
+ for (int i = item_plugins[selected_idx]->get_item_count() - 1; i >= 0; i--) {
+ item_plugins[selected_idx]->erase(i);
+ }
+}
+
void ItemListEditor::_delete_pressed() {
if (selected_idx == -1) {
return;
@@ -350,6 +357,11 @@ ItemListEditor::ItemListEditor() {
hbc->add_spacer();
+ clear_button = memnew(Button);
+ clear_button->set_text(TTR("Delete All"));
+ hbc->add_child(clear_button);
+ clear_button->connect("pressed", callable_mp(this, &ItemListEditor::_clear_pressed));
+
del_button = memnew(Button);
del_button->set_text(TTR("Delete"));
hbc->add_child(del_button);
diff --git a/editor/plugins/item_list_editor_plugin.h b/editor/plugins/item_list_editor_plugin.h
index 8c77f3d952..8f61aef083 100644
--- a/editor/plugins/item_list_editor_plugin.h
+++ b/editor/plugins/item_list_editor_plugin.h
@@ -204,6 +204,7 @@ class ItemListEditor : public HBoxContainer {
Tree *tree;
Button *add_button;
Button *del_button;
+ Button *clear_button;
int selected_idx;
@@ -213,6 +214,7 @@ class ItemListEditor : public HBoxContainer {
void _add_pressed();
void _delete_pressed();
+ void _clear_pressed();
void _node_removed(Node *p_node);
diff --git a/editor/plugins/mesh_editor_plugin.cpp b/editor/plugins/mesh_editor_plugin.cpp
index 768f29e15a..dc16a7a325 100644
--- a/editor/plugins/mesh_editor_plugin.cpp
+++ b/editor/plugins/mesh_editor_plugin.cpp
@@ -80,7 +80,7 @@ void MeshEditor::edit(Ref<Mesh> p_mesh) {
_update_rotation();
AABB aabb = mesh->get_aabb();
- Vector3 ofs = aabb.position + aabb.size * 0.5;
+ Vector3 ofs = aabb.get_center();
float m = aabb.get_longest_axis_size();
if (m != 0) {
m = 1.0 / m;
diff --git a/editor/plugins/node_3d_editor_gizmos.cpp b/editor/plugins/node_3d_editor_gizmos.cpp
index 0f98629370..eb771f2bc4 100644
--- a/editor/plugins/node_3d_editor_gizmos.cpp
+++ b/editor/plugins/node_3d_editor_gizmos.cpp
@@ -2652,7 +2652,7 @@ void VisibleOnScreenNotifier3DGizmoPlugin::set_handle(const EditorNode3DGizmo *p
Vector3 sg[2] = { gi.xform(ray_from), gi.xform(ray_from + ray_dir * 4096) };
- Vector3 ofs = aabb.position + aabb.size * 0.5;
+ Vector3 ofs = aabb.get_center();
Vector3 axis;
axis[p_id] = 1.0;
@@ -2728,7 +2728,7 @@ void VisibleOnScreenNotifier3DGizmoPlugin::redraw(EditorNode3DGizmo *p_gizmo) {
handles.push_back(ax);
}
- Vector3 center = aabb.position + aabb.size * 0.5;
+ Vector3 center = aabb.get_center();
for (int i = 0; i < 3; i++) {
Vector3 ax;
ax[i] = 1.0;
@@ -2744,7 +2744,7 @@ void VisibleOnScreenNotifier3DGizmoPlugin::redraw(EditorNode3DGizmo *p_gizmo) {
if (p_gizmo->is_selected()) {
Ref<Material> solid_material = get_material("visibility_notifier_solid_material", p_gizmo);
- p_gizmo->add_solid_box(solid_material, aabb.get_size(), aabb.get_position() + aabb.get_size() / 2.0);
+ p_gizmo->add_solid_box(solid_material, aabb.get_size(), aabb.get_center());
}
p_gizmo->add_handles(handles, get_material("handles"));
@@ -2843,7 +2843,7 @@ void GPUParticles3DGizmoPlugin::set_handle(const EditorNode3DGizmo *p_gizmo, int
Vector3 sg[2] = { gi.xform(ray_from), gi.xform(ray_from + ray_dir * 4096) };
- Vector3 ofs = aabb.position + aabb.size * 0.5;
+ Vector3 ofs = aabb.get_center();
Vector3 axis;
axis[p_id] = 1.0;
@@ -2919,7 +2919,7 @@ void GPUParticles3DGizmoPlugin::redraw(EditorNode3DGizmo *p_gizmo) {
handles.push_back(ax);
}
- Vector3 center = aabb.position + aabb.size * 0.5;
+ Vector3 center = aabb.get_center();
for (int i = 0; i < 3; i++) {
Vector3 ax;
ax[i] = 1.0;
@@ -2935,7 +2935,7 @@ void GPUParticles3DGizmoPlugin::redraw(EditorNode3DGizmo *p_gizmo) {
if (p_gizmo->is_selected()) {
Ref<Material> solid_material = get_material("particles_solid_material", p_gizmo);
- p_gizmo->add_solid_box(solid_material, aabb.get_size(), aabb.get_position() + aabb.get_size() / 2.0);
+ p_gizmo->add_solid_box(solid_material, aabb.get_size(), aabb.get_center());
}
p_gizmo->add_handles(handles, get_material("handles"));
diff --git a/editor/plugins/node_3d_editor_plugin.cpp b/editor/plugins/node_3d_editor_plugin.cpp
index cf451dce91..fdd4baaf7d 100644
--- a/editor/plugins/node_3d_editor_plugin.cpp
+++ b/editor/plugins/node_3d_editor_plugin.cpp
@@ -128,7 +128,7 @@ void ViewportRotationControl::_draw_axis(const Axis2D &p_axis) {
const Color axis_color = axis_colors[direction];
const double alpha = focused ? 1.0 : ((p_axis.z_axis + 1.0) / 2.0) * 0.5 + 0.5;
- const Color c = focused ? Color(0.9, 0.9, 0.9) : Color(axis_color.r, axis_color.g, axis_color.b, alpha);
+ const Color c = focused ? Color(0.9, 0.9, 0.9) : Color(axis_color, alpha);
if (positive) {
// Draw axis lines for the positive axes.
@@ -265,15 +265,13 @@ void Node3DEditorViewport::_update_camera(real_t p_interp_delta) {
if (is_freelook_active()) {
// Higher inertia should increase "lag" (lerp with factor between 0 and 1)
// Inertia of zero should produce instant movement (lerp with factor of 1) in this case it returns a really high value and gets clamped to 1.
- real_t inertia = EDITOR_GET("editors/3d/freelook/freelook_inertia");
- inertia = MAX(0.001, inertia);
+ const real_t inertia = EDITOR_GET("editors/3d/freelook/freelook_inertia");
real_t factor = (1.0 / inertia) * p_interp_delta;
// We interpolate a different point here, because in freelook mode the focus point (cursor.pos) orbits around eye_pos
camera_cursor.eye_pos = old_camera_cursor.eye_pos.lerp(cursor.eye_pos, CLAMP(factor, 0, 1));
- real_t orbit_inertia = EDITOR_GET("editors/3d/navigation_feel/orbit_inertia");
- orbit_inertia = MAX(0.0001, orbit_inertia);
+ const real_t orbit_inertia = EDITOR_GET("editors/3d/navigation_feel/orbit_inertia");
camera_cursor.x_rot = Math::lerp(old_camera_cursor.x_rot, cursor.x_rot, MIN(1.f, p_interp_delta * (1 / orbit_inertia)));
camera_cursor.y_rot = Math::lerp(old_camera_cursor.y_rot, cursor.y_rot, MIN(1.f, p_interp_delta * (1 / orbit_inertia)));
@@ -289,24 +287,9 @@ void Node3DEditorViewport::_update_camera(real_t p_interp_delta) {
camera_cursor.pos = camera_cursor.eye_pos + forward * camera_cursor.distance;
} else {
- //when not being manipulated, move softly
- real_t free_orbit_inertia = EDITOR_GET("editors/3d/navigation_feel/orbit_inertia");
- real_t free_translation_inertia = EDITOR_GET("editors/3d/navigation_feel/translation_inertia");
- //when being manipulated, move more quickly
- real_t manip_orbit_inertia = EDITOR_GET("editors/3d/navigation_feel/manipulation_orbit_inertia");
- real_t manip_translation_inertia = EDITOR_GET("editors/3d/navigation_feel/manipulation_translation_inertia");
-
- real_t zoom_inertia = EDITOR_GET("editors/3d/navigation_feel/zoom_inertia");
-
- //determine if being manipulated
- bool manipulated = Input::get_singleton()->get_mouse_button_mask() & (2 | 4);
- manipulated |= Input::get_singleton()->is_key_pressed(KEY_SHIFT);
- manipulated |= Input::get_singleton()->is_key_pressed(KEY_ALT);
- manipulated |= Input::get_singleton()->is_key_pressed(KEY_CTRL);
-
- real_t orbit_inertia = MAX(0.00001, manipulated ? manip_orbit_inertia : free_orbit_inertia);
- real_t translation_inertia = MAX(0.0001, manipulated ? manip_translation_inertia : free_translation_inertia);
- zoom_inertia = MAX(0.0001, zoom_inertia);
+ const real_t orbit_inertia = EDITOR_GET("editors/3d/navigation_feel/orbit_inertia");
+ const real_t translation_inertia = EDITOR_GET("editors/3d/navigation_feel/translation_inertia");
+ const real_t zoom_inertia = EDITOR_GET("editors/3d/navigation_feel/zoom_inertia");
camera_cursor.x_rot = Math::lerp(old_camera_cursor.x_rot, cursor.x_rot, MIN(1.f, p_interp_delta * (1 / orbit_inertia)));
camera_cursor.y_rot = Math::lerp(old_camera_cursor.y_rot, cursor.y_rot, MIN(1.f, p_interp_delta * (1 / orbit_inertia)));
@@ -835,7 +818,7 @@ void Node3DEditorViewport::_update_name() {
if (orthogonal) {
name = TTR("Left Orthogonal");
} else {
- name = TTR("Right Perspective");
+ name = TTR("Left Perspective");
}
} break;
case VIEW_TYPE_RIGHT: {
@@ -871,8 +854,8 @@ void Node3DEditorViewport::_update_name() {
}
void Node3DEditorViewport::_compute_edit(const Point2 &p_point) {
- _edit.click_ray = _get_ray(Vector2(p_point.x, p_point.y));
- _edit.click_ray_pos = _get_ray_pos(Vector2(p_point.x, p_point.y));
+ _edit.click_ray = _get_ray(p_point);
+ _edit.click_ray_pos = _get_ray_pos(p_point);
_edit.plane = TRANSFORM_VIEW;
spatial_editor->update_transform_gizmo();
_edit.center = spatial_editor->get_gizmo_transform().origin;
@@ -951,8 +934,8 @@ bool Node3DEditorViewport::_transform_gizmo_select(const Vector2 &p_screenpos, b
return false;
}
- Vector3 ray_pos = _get_ray_pos(Vector2(p_screenpos.x, p_screenpos.y));
- Vector3 ray = _get_ray(Vector2(p_screenpos.x, p_screenpos.y));
+ Vector3 ray_pos = _get_ray_pos(p_screenpos);
+ Vector3 ray = _get_ray(p_screenpos);
Transform3D gt = spatial_editor->get_gizmo_transform();
@@ -1015,7 +998,7 @@ bool Node3DEditorViewport::_transform_gizmo_select(const Vector2 &p_screenpos, b
} else {
//handle plane translate
_edit.mode = TRANSFORM_TRANSLATE;
- _compute_edit(Point2(p_screenpos.x, p_screenpos.y));
+ _compute_edit(p_screenpos);
_edit.plane = TransformPlane(TRANSFORM_X_AXIS + col_axis + (is_plane_translate ? 3 : 0));
}
return true;
@@ -1053,7 +1036,7 @@ bool Node3DEditorViewport::_transform_gizmo_select(const Vector2 &p_screenpos, b
} else {
//handle rotate
_edit.mode = TRANSFORM_ROTATE;
- _compute_edit(Point2(p_screenpos.x, p_screenpos.y));
+ _compute_edit(p_screenpos);
_edit.plane = TransformPlane(TRANSFORM_X_AXIS + col_axis);
}
return true;
@@ -1119,7 +1102,7 @@ bool Node3DEditorViewport::_transform_gizmo_select(const Vector2 &p_screenpos, b
} else {
//handle scale
_edit.mode = TRANSFORM_SCALE;
- _compute_edit(Point2(p_screenpos.x, p_screenpos.y));
+ _compute_edit(p_screenpos);
_edit.plane = TransformPlane(TRANSFORM_X_AXIS + col_axis + (is_plane_scale ? 3 : 0));
}
return true;
@@ -4196,7 +4179,8 @@ Node3DEditorViewport::Node3DEditorViewport(Node3DEditor *p_spatial_editor, Edito
VBoxContainer *vbox = memnew(VBoxContainer);
surface->add_child(vbox);
- vbox->set_position(Point2(10, 10) * EDSCALE);
+ vbox->set_offset(SIDE_LEFT, 10 * EDSCALE);
+ vbox->set_offset(SIDE_TOP, 10 * EDSCALE);
view_menu = memnew(MenuButton);
view_menu->set_flat(false);
@@ -6030,7 +6014,7 @@ void fragment() {
void Node3DEditor::_update_context_menu_stylebox() {
// This must be called when the theme changes to follow the new accent color.
Ref<StyleBoxFlat> context_menu_stylebox = memnew(StyleBoxFlat);
- const Color accent_color = EditorNode::get_singleton()->get_gui_base()->get_theme_color("accent_color", "Editor");
+ const Color accent_color = EditorNode::get_singleton()->get_gui_base()->get_theme_color(SNAME("accent_color"), SNAME("Editor"));
context_menu_stylebox->set_bg_color(accent_color * Color(1, 1, 1, 0.1));
// Add an underline to the StyleBox, but prevent its minimum vertical size from changing.
context_menu_stylebox->set_border_color(accent_color);
@@ -6296,7 +6280,7 @@ void Node3DEditor::update_grid() {
// Gets a orthogonal or perspective position correctly (for the grid comparison)
const Vector3 camera_position = get_editor_viewport(0)->camera->get_position();
- if (!grid_init_draw || (camera_position - grid_camera_last_update_position).length() >= 10.0f) {
+ if (!grid_init_draw || grid_camera_last_update_position.distance_squared_to(camera_position) >= 100.0f) {
_finish_grid();
_init_grid();
grid_init_draw = true;
diff --git a/editor/plugins/path_3d_editor_plugin.cpp b/editor/plugins/path_3d_editor_plugin.cpp
index 13f7908170..bb0c270baa 100644
--- a/editor/plugins/path_3d_editor_plugin.cpp
+++ b/editor/plugins/path_3d_editor_plugin.cpp
@@ -510,7 +510,14 @@ void Path3DEditorPlugin::_close_curve() {
if (c->get_point_count() < 2) {
return;
}
- c->add_point(c->get_point_position(0), c->get_point_in(0), c->get_point_out(0));
+ if (c->get_point_position(0) == c->get_point_position(c->get_point_count() - 1)) {
+ return;
+ }
+ UndoRedo *ur = editor->get_undo_redo();
+ ur->create_action(TTR("Close Curve"));
+ ur->add_do_method(c.ptr(), "add_point", c->get_point_position(0), c->get_point_in(0), c->get_point_out(0), -1);
+ ur->add_undo_method(c.ptr(), "remove_point", c->get_point_count());
+ ur->commit_action();
}
void Path3DEditorPlugin::_handle_option_pressed(int p_option) {
diff --git a/editor/plugins/polygon_2d_editor_plugin.cpp b/editor/plugins/polygon_2d_editor_plugin.cpp
index 782152b002..5afe9ed60c 100644
--- a/editor/plugins/polygon_2d_editor_plugin.cpp
+++ b/editor/plugins/polygon_2d_editor_plugin.cpp
@@ -449,7 +449,7 @@ void Polygon2DEditor::_uv_input(const Ref<InputEvent> &p_input) {
if (mb.is_valid()) {
if (mb->get_button_index() == MOUSE_BUTTON_LEFT) {
if (mb->is_pressed()) {
- uv_drag_from = snap_point(Vector2(mb->get_position().x, mb->get_position().y));
+ uv_drag_from = snap_point(mb->get_position());
uv_drag = true;
points_prev = node->get_uv();
@@ -463,7 +463,7 @@ void Polygon2DEditor::_uv_input(const Ref<InputEvent> &p_input) {
if (uv_move_current == UV_MODE_CREATE) {
if (!uv_create) {
points_prev.resize(0);
- Vector2 tuv = mtx.affine_inverse().xform(snap_point(Vector2(mb->get_position().x, mb->get_position().y)));
+ Vector2 tuv = mtx.affine_inverse().xform(snap_point(mb->get_position()));
points_prev.push_back(tuv);
uv_create_to = tuv;
point_drag_index = 0;
@@ -483,7 +483,7 @@ void Polygon2DEditor::_uv_input(const Ref<InputEvent> &p_input) {
uv_edit_draw->update();
} else {
- Vector2 tuv = mtx.affine_inverse().xform(snap_point(Vector2(mb->get_position().x, mb->get_position().y)));
+ Vector2 tuv = mtx.affine_inverse().xform(snap_point(mb->get_position()));
// Close the polygon if selected point is near start. Threshold for closing scaled by zoom level
if (points_prev.size() > 2 && tuv.distance_to(points_prev[0]) < (8 / uv_draw_zoom)) {
@@ -527,7 +527,7 @@ void Polygon2DEditor::_uv_input(const Ref<InputEvent> &p_input) {
uv_create_bones_prev = node->call("_get_bones");
int internal_vertices = node->get_internal_vertex_count();
- Vector2 pos = mtx.affine_inverse().xform(snap_point(Vector2(mb->get_position().x, mb->get_position().y)));
+ Vector2 pos = mtx.affine_inverse().xform(snap_point(mb->get_position()));
uv_create_poly_prev.push_back(pos);
uv_create_uv_prev.push_back(pos);
@@ -573,7 +573,7 @@ void Polygon2DEditor::_uv_input(const Ref<InputEvent> &p_input) {
for (int i = points_prev.size() - internal_vertices; i < points_prev.size(); i++) {
Vector2 tuv = mtx.xform(uv_create_poly_prev[i]);
- real_t dist = tuv.distance_to(Vector2(mb->get_position().x, mb->get_position().y));
+ real_t dist = tuv.distance_to(mb->get_position());
if (dist < 8 && dist < closest_dist) {
closest = i;
closest_dist = dist;
@@ -626,7 +626,7 @@ void Polygon2DEditor::_uv_input(const Ref<InputEvent> &p_input) {
point_drag_index = -1;
for (int i = 0; i < points_prev.size(); i++) {
Vector2 tuv = mtx.xform(points_prev[i]);
- if (tuv.distance_to(Vector2(mb->get_position().x, mb->get_position().y)) < 8) {
+ if (tuv.distance_to(mb->get_position()) < 8) {
uv_drag_from = tuv;
point_drag_index = i;
}
@@ -643,7 +643,7 @@ void Polygon2DEditor::_uv_input(const Ref<InputEvent> &p_input) {
for (int i = 0; i < points_prev.size(); i++) {
Vector2 tuv = mtx.xform(points_prev[i]);
- real_t dist = tuv.distance_to(Vector2(mb->get_position().x, mb->get_position().y));
+ real_t dist = tuv.distance_to(mb->get_position());
if (dist < 8 && dist < closest_dist) {
closest = i;
closest_dist = dist;
@@ -695,7 +695,7 @@ void Polygon2DEditor::_uv_input(const Ref<InputEvent> &p_input) {
polys.write[j] = mtx.xform(points_prev[idx]);
}
- if (Geometry2D::is_point_in_polygon(Vector2(mb->get_position().x, mb->get_position().y), polys)) {
+ if (Geometry2D::is_point_in_polygon(mb->get_position(), polys)) {
erase_index = i;
break;
}
@@ -779,7 +779,7 @@ void Polygon2DEditor::_uv_input(const Ref<InputEvent> &p_input) {
if (mm.is_valid()) {
if ((mm->get_button_mask() & MOUSE_BUTTON_MASK_MIDDLE) || Input::get_singleton()->is_key_pressed(KEY_SPACE)) {
- Vector2 drag(mm->get_relative().x, mm->get_relative().y);
+ Vector2 drag = mm->get_relative();
uv_hscroll->set_value(uv_hscroll->get_value() - drag.x);
uv_vscroll->set_value(uv_vscroll->get_value() - drag.y);
@@ -791,7 +791,7 @@ void Polygon2DEditor::_uv_input(const Ref<InputEvent> &p_input) {
switch (uv_move_current) {
case UV_MODE_CREATE: {
if (uv_create) {
- uv_create_to = mtx.affine_inverse().xform(snap_point(Vector2(mm->get_position().x, mm->get_position().y)));
+ uv_create_to = mtx.affine_inverse().xform(snap_point(mm->get_position()));
}
} break;
case UV_MODE_EDIT_POINT: {
@@ -870,7 +870,7 @@ void Polygon2DEditor::_uv_input(const Ref<InputEvent> &p_input) {
} break;
case UV_MODE_PAINT_WEIGHT:
case UV_MODE_CLEAR_WEIGHT: {
- bone_paint_pos = Vector2(mm->get_position().x, mm->get_position().y);
+ bone_paint_pos = mm->get_position();
} break;
default: {
}
@@ -905,10 +905,10 @@ void Polygon2DEditor::_uv_input(const Ref<InputEvent> &p_input) {
uv_edit_draw->update();
CanvasItemEditor::get_singleton()->update_viewport();
} else if (polygon_create.size()) {
- uv_create_to = mtx.affine_inverse().xform(Vector2(mm->get_position().x, mm->get_position().y));
+ uv_create_to = mtx.affine_inverse().xform(mm->get_position());
uv_edit_draw->update();
} else if (uv_mode == UV_MODE_PAINT_WEIGHT || uv_mode == UV_MODE_CLEAR_WEIGHT) {
- bone_paint_pos = Vector2(mm->get_position().x, mm->get_position().y);
+ bone_paint_pos = mm->get_position();
uv_edit_draw->update();
}
}
diff --git a/editor/plugins/script_editor_plugin.cpp b/editor/plugins/script_editor_plugin.cpp
index 07e4d4ebf0..6922a48a50 100644
--- a/editor/plugins/script_editor_plugin.cpp
+++ b/editor/plugins/script_editor_plugin.cpp
@@ -2750,6 +2750,29 @@ void ScriptEditor::drop_data_fw(const Point2 &p_point, const Variant &p_data, Co
}
}
+void ScriptEditor::input(const Ref<InputEvent> &p_event) {
+ // This is implemented in `input()` rather than `unhandled_input()` to allow
+ // the shortcut to be used regardless of the click location.
+ // This feature can be disabled to avoid interfering with other uses of the additional
+ // mouse buttons, such as push-to-talk in a VoIP program.
+ if (EDITOR_GET("interface/editor/mouse_extra_buttons_navigate_history")) {
+ const Ref<InputEventMouseButton> mb = p_event;
+
+ // Navigate the script history using additional mouse buttons present on some mice.
+ // This must be hardcoded as the editor shortcuts dialog doesn't allow assigning
+ // more than one shortcut per action.
+ if (mb.is_valid() && mb->is_pressed() && is_visible_in_tree()) {
+ if (mb->get_button_index() == MOUSE_BUTTON_XBUTTON1) {
+ _history_back();
+ }
+
+ if (mb->get_button_index() == MOUSE_BUTTON_XBUTTON2) {
+ _history_forward();
+ }
+ }
+ }
+}
+
void ScriptEditor::unhandled_key_input(const Ref<InputEvent> &p_event) {
ERR_FAIL_COND(p_event.is_null());
@@ -3294,7 +3317,6 @@ void ScriptEditor::_bind_methods() {
ClassDB::bind_method("_update_script_connections", &ScriptEditor::_update_script_connections);
ClassDB::bind_method("_help_class_open", &ScriptEditor::_help_class_open);
ClassDB::bind_method("_live_auto_reload_running_scripts", &ScriptEditor::_live_auto_reload_running_scripts);
-
ClassDB::bind_method("_update_members_overview", &ScriptEditor::_update_members_overview);
ClassDB::bind_method("_update_recent_scripts", &ScriptEditor::_update_recent_scripts);
@@ -3427,9 +3449,11 @@ ScriptEditor::ScriptEditor(EditorNode *p_editor) {
ED_SHORTCUT("script_editor/window_sort", TTR("Sort"));
ED_SHORTCUT("script_editor/window_move_up", TTR("Move Up"), KEY_MASK_SHIFT | KEY_MASK_ALT | KEY_UP);
ED_SHORTCUT("script_editor/window_move_down", TTR("Move Down"), KEY_MASK_SHIFT | KEY_MASK_ALT | KEY_DOWN);
- ED_SHORTCUT("script_editor/next_script", TTR("Next Script"), KEY_MASK_CMD | KEY_MASK_SHIFT | KEY_PERIOD); // these should be KEY_GREATER and KEY_LESS but those don't work
+ // FIXME: These should be `KEY_GREATER` and `KEY_LESS` but those don't work.
+ ED_SHORTCUT("script_editor/next_script", TTR("Next Script"), KEY_MASK_CMD | KEY_MASK_SHIFT | KEY_PERIOD);
ED_SHORTCUT("script_editor/prev_script", TTR("Previous Script"), KEY_MASK_CMD | KEY_MASK_SHIFT | KEY_COMMA);
- set_process_unhandled_key_input(true);
+ set_process_input(true);
+ set_process_unhandled_input(true);
file_menu = memnew(MenuButton);
file_menu->set_text(TTR("File"));
diff --git a/editor/plugins/script_editor_plugin.h b/editor/plugins/script_editor_plugin.h
index 7620605570..6d9b27e0be 100644
--- a/editor/plugins/script_editor_plugin.h
+++ b/editor/plugins/script_editor_plugin.h
@@ -418,6 +418,7 @@ class ScriptEditor : public PanelContainer {
bool can_drop_data_fw(const Point2 &p_point, const Variant &p_data, Control *p_from) const;
void drop_data_fw(const Point2 &p_point, const Variant &p_data, Control *p_from);
+ virtual void input(const Ref<InputEvent> &p_event) override;
virtual void unhandled_key_input(const Ref<InputEvent> &p_event) override;
void _script_list_gui_input(const Ref<InputEvent> &ev);
diff --git a/editor/plugins/script_text_editor.cpp b/editor/plugins/script_text_editor.cpp
index ebd46be3b4..2b1ca068ee 100644
--- a/editor/plugins/script_text_editor.cpp
+++ b/editor/plugins/script_text_editor.cpp
@@ -1961,11 +1961,8 @@ void ScriptTextEditor::register_editor() {
ED_SHORTCUT("script_text_editor/toggle_fold_line", TTR("Fold/Unfold Line"), KEY_MASK_ALT | KEY_F);
ED_SHORTCUT("script_text_editor/fold_all_lines", TTR("Fold All Lines"), KEY_NONE);
ED_SHORTCUT("script_text_editor/unfold_all_lines", TTR("Unfold All Lines"), KEY_NONE);
-#ifdef OSX_ENABLED
- ED_SHORTCUT("script_text_editor/duplicate_selection", TTR("Duplicate Selection"), KEY_MASK_SHIFT | KEY_MASK_CMD | KEY_C);
-#else
ED_SHORTCUT("script_text_editor/duplicate_selection", TTR("Duplicate Selection"), KEY_MASK_SHIFT | KEY_MASK_CMD | KEY_D);
-#endif
+ ED_SHORTCUT_OVERRIDE("script_text_editor/duplicate_selection", "macos", KEY_MASK_SHIFT | KEY_MASK_CMD | KEY_C);
ED_SHORTCUT("script_text_editor/evaluate_selection", TTR("Evaluate Selection"), KEY_MASK_CMD | KEY_MASK_SHIFT | KEY_E);
ED_SHORTCUT("script_text_editor/trim_trailing_whitespace", TTR("Trim Trailing Whitespace"), KEY_MASK_CMD | KEY_MASK_ALT | KEY_T);
ED_SHORTCUT("script_text_editor/convert_indent_to_spaces", TTR("Convert Indent to Spaces"), KEY_MASK_CMD | KEY_MASK_SHIFT | KEY_Y);
@@ -1973,42 +1970,35 @@ void ScriptTextEditor::register_editor() {
ED_SHORTCUT("script_text_editor/auto_indent", TTR("Auto Indent"), KEY_MASK_CMD | KEY_I);
ED_SHORTCUT_AND_COMMAND("script_text_editor/find", TTR("Find..."), KEY_MASK_CMD | KEY_F);
-#ifdef OSX_ENABLED
- ED_SHORTCUT("script_text_editor/find_next", TTR("Find Next"), KEY_MASK_CMD | KEY_G);
- ED_SHORTCUT("script_text_editor/find_previous", TTR("Find Previous"), KEY_MASK_CMD | KEY_MASK_SHIFT | KEY_G);
- ED_SHORTCUT_AND_COMMAND("script_text_editor/replace", TTR("Replace..."), KEY_MASK_ALT | KEY_MASK_CMD | KEY_F);
-#else
+
ED_SHORTCUT("script_text_editor/find_next", TTR("Find Next"), KEY_F3);
+ ED_SHORTCUT_OVERRIDE("script_text_editor/find_next", "macos", KEY_MASK_CMD | KEY_G);
+
ED_SHORTCUT("script_text_editor/find_previous", TTR("Find Previous"), KEY_MASK_SHIFT | KEY_F3);
+ ED_SHORTCUT_OVERRIDE("script_text_editor/find_previous", "macos", KEY_MASK_CMD | KEY_MASK_SHIFT | KEY_G);
+
ED_SHORTCUT_AND_COMMAND("script_text_editor/replace", TTR("Replace..."), KEY_MASK_CMD | KEY_R);
-#endif
+ ED_SHORTCUT_OVERRIDE("script_text_editor/replace", "macos", KEY_MASK_ALT | KEY_MASK_CMD | KEY_F);
ED_SHORTCUT("script_text_editor/find_in_files", TTR("Find in Files..."), KEY_MASK_CMD | KEY_MASK_SHIFT | KEY_F);
ED_SHORTCUT("script_text_editor/replace_in_files", TTR("Replace in Files..."), KEY_MASK_CMD | KEY_MASK_SHIFT | KEY_R);
-#ifdef OSX_ENABLED
- ED_SHORTCUT("script_text_editor/contextual_help", TTR("Contextual Help"), KEY_MASK_ALT | KEY_MASK_SHIFT | KEY_SPACE);
-#else
ED_SHORTCUT("script_text_editor/contextual_help", TTR("Contextual Help"), KEY_MASK_ALT | KEY_F1);
-#endif
+ ED_SHORTCUT_OVERRIDE("script_text_editor/contextual_help", "macos", KEY_MASK_ALT | KEY_MASK_SHIFT | KEY_SPACE);
ED_SHORTCUT("script_text_editor/toggle_bookmark", TTR("Toggle Bookmark"), KEY_MASK_CMD | KEY_MASK_ALT | KEY_B);
ED_SHORTCUT("script_text_editor/goto_next_bookmark", TTR("Go to Next Bookmark"), KEY_MASK_CMD | KEY_B);
ED_SHORTCUT("script_text_editor/goto_previous_bookmark", TTR("Go to Previous Bookmark"), KEY_MASK_CMD | KEY_MASK_SHIFT | KEY_B);
ED_SHORTCUT("script_text_editor/remove_all_bookmarks", TTR("Remove All Bookmarks"), KEY_NONE);
-#ifdef OSX_ENABLED
- ED_SHORTCUT("script_text_editor/goto_function", TTR("Go to Function..."), KEY_MASK_CTRL | KEY_MASK_CMD | KEY_J);
-#else
ED_SHORTCUT("script_text_editor/goto_function", TTR("Go to Function..."), KEY_MASK_ALT | KEY_MASK_CMD | KEY_F);
-#endif
+ ED_SHORTCUT_OVERRIDE("script_text_editor/goto_function", "macos", KEY_MASK_CTRL | KEY_MASK_CMD | KEY_J);
+
ED_SHORTCUT("script_text_editor/goto_line", TTR("Go to Line..."), KEY_MASK_CMD | KEY_L);
-#ifdef OSX_ENABLED
- ED_SHORTCUT("script_text_editor/toggle_breakpoint", TTR("Toggle Breakpoint"), KEY_MASK_CMD | KEY_MASK_SHIFT | KEY_B);
-#else
ED_SHORTCUT("script_text_editor/toggle_breakpoint", TTR("Toggle Breakpoint"), KEY_F9);
-#endif
+ ED_SHORTCUT_OVERRIDE("script_text_editor/toggle_breakpoint", "macos", KEY_MASK_CMD | KEY_MASK_SHIFT | KEY_B);
+
ED_SHORTCUT("script_text_editor/remove_all_breakpoints", TTR("Remove All Breakpoints"), KEY_MASK_CMD | KEY_MASK_SHIFT | KEY_F9);
ED_SHORTCUT("script_text_editor/goto_next_breakpoint", TTR("Go to Next Breakpoint"), KEY_MASK_CMD | KEY_PERIOD);
ED_SHORTCUT("script_text_editor/goto_previous_breakpoint", TTR("Go to Previous Breakpoint"), KEY_MASK_CMD | KEY_COMMA);
diff --git a/editor/plugins/sprite_2d_editor_plugin.cpp b/editor/plugins/sprite_2d_editor_plugin.cpp
index 0f889ce33d..eb5e527640 100644
--- a/editor/plugins/sprite_2d_editor_plugin.cpp
+++ b/editor/plugins/sprite_2d_editor_plugin.cpp
@@ -182,7 +182,7 @@ void Sprite2DEditor::_update_mesh_data() {
if (node->is_region_enabled()) {
rect = node->get_region_rect();
} else {
- rect.size = Size2(image->get_width(), image->get_height());
+ rect.size = image->get_size();
}
Ref<BitMap> bm;
@@ -209,7 +209,7 @@ void Sprite2DEditor::_update_mesh_data() {
computed_uv.clear();
computed_indices.clear();
- Size2 img_size = Vector2(image->get_width(), image->get_height());
+ Size2 img_size = image->get_size();
for (int i = 0; i < lines.size(); i++) {
lines.write[i] = expand(lines[i], rect, epsilon);
}
diff --git a/editor/plugins/texture_editor_plugin.cpp b/editor/plugins/texture_editor_plugin.cpp
index 44db06bcfd..b9ec6bf5ab 100644
--- a/editor/plugins/texture_editor_plugin.cpp
+++ b/editor/plugins/texture_editor_plugin.cpp
@@ -58,6 +58,21 @@ void TexturePreview::_notification(int p_what) {
}
}
+void TexturePreview::_update_metadata_label_text() {
+ Ref<Texture2D> texture = texture_display->get_texture();
+
+ String format;
+ if (Object::cast_to<ImageTexture>(*texture)) {
+ format = Image::get_format_name(Object::cast_to<ImageTexture>(*texture)->get_format());
+ } else if (Object::cast_to<StreamTexture2D>(*texture)) {
+ format = Image::get_format_name(Object::cast_to<StreamTexture2D>(*texture)->get_format());
+ } else {
+ format = texture->get_class();
+ }
+
+ metadata_label->set_text(itos(texture->get_width()) + "x" + itos(texture->get_height()) + " " + format);
+}
+
TexturePreview::TexturePreview(Ref<Texture2D> p_texture, bool p_show_metadata) {
checkerboard = memnew(TextureRect);
checkerboard->set_stretch_mode(TextureRect::STRETCH_TILE);
@@ -75,16 +90,8 @@ TexturePreview::TexturePreview(Ref<Texture2D> p_texture, bool p_show_metadata) {
if (p_show_metadata) {
metadata_label = memnew(Label);
- String format;
- if (Object::cast_to<ImageTexture>(*p_texture)) {
- format = Image::get_format_name(Object::cast_to<ImageTexture>(*p_texture)->get_format());
- } else if (Object::cast_to<StreamTexture2D>(*p_texture)) {
- format = Image::get_format_name(Object::cast_to<StreamTexture2D>(*p_texture)->get_format());
- } else {
- format = p_texture->get_class();
- }
-
- metadata_label->set_text(itos(p_texture->get_width()) + "x" + itos(p_texture->get_height()) + " " + format);
+ _update_metadata_label_text();
+ p_texture->connect("changed", callable_mp(this, &TexturePreview::_update_metadata_label_text));
// It's okay that these colors are static since the grid color is static too.
metadata_label->add_theme_color_override("font_color", Color::named("white"));
diff --git a/editor/plugins/texture_editor_plugin.h b/editor/plugins/texture_editor_plugin.h
index 36a5513ea6..60349febd7 100644
--- a/editor/plugins/texture_editor_plugin.h
+++ b/editor/plugins/texture_editor_plugin.h
@@ -44,6 +44,8 @@ private:
TextureRect *checkerboard = nullptr;
Label *metadata_label = nullptr;
+ void _update_metadata_label_text();
+
protected:
void _notification(int p_what);
diff --git a/editor/plugins/texture_region_editor_plugin.cpp b/editor/plugins/texture_region_editor_plugin.cpp
index 50ad12635b..ce90d61616 100644
--- a/editor/plugins/texture_region_editor_plugin.cpp
+++ b/editor/plugins/texture_region_editor_plugin.cpp
@@ -50,7 +50,7 @@ void draw_margin_line(Control *edit_draw, Vector2 from, Vector2 to) {
EditorNode::get_singleton()->get_theme_base()->get_theme_color(SNAME("mono_color"), SNAME("Editor")).inverted() * Color(1, 1, 1, 0.5),
Math::round(2 * EDSCALE));
- while ((to - from).length_squared() > 200) {
+ while (from.distance_squared_to(to) > 200) {
edit_draw->draw_line(
from,
from + line,
@@ -321,12 +321,12 @@ void TextureRegionEditor::_region_input(const Ref<InputEvent> &p_input) {
prev_margin = margins[3];
}
if (edited_margin >= 0) {
- drag_from = Vector2(mb->get_position().x, mb->get_position().y);
+ drag_from = mb->get_position();
drag = true;
}
}
if (edited_margin < 0 && snap_mode == SNAP_AUTOSLICE) {
- Vector2 point = mtx.affine_inverse().xform(Vector2(mb->get_position().x, mb->get_position().y));
+ Vector2 point = mtx.affine_inverse().xform(mb->get_position());
for (const Rect2 &E : autoslice_cache) {
if (E.has_point(point)) {
rect = E;
@@ -344,7 +344,7 @@ void TextureRegionEditor::_region_input(const Ref<InputEvent> &p_input) {
r = obj_styleBox->get_region_rect();
}
rect.expand_to(r.position);
- rect.expand_to(r.position + r.size);
+ rect.expand_to(r.get_end());
}
undo_redo->create_action(TTR("Set Region Rect"));
if (atlas_tex.is_valid()) {
@@ -372,7 +372,7 @@ void TextureRegionEditor::_region_input(const Ref<InputEvent> &p_input) {
}
}
} else if (edited_margin < 0) {
- drag_from = mtx.affine_inverse().xform(Vector2(mb->get_position().x, mb->get_position().y));
+ drag_from = mtx.affine_inverse().xform(mb->get_position());
if (snap_mode == SNAP_PIXEL) {
drag_from = drag_from.snapped(Vector2(1, 1));
} else if (snap_mode == SNAP_GRID) {
@@ -393,7 +393,7 @@ void TextureRegionEditor::_region_input(const Ref<InputEvent> &p_input) {
for (int i = 0; i < 8; i++) {
Vector2 tuv = endpoints[i];
- if (tuv.distance_to(Vector2(mb->get_position().x, mb->get_position().y)) < handle_radius) {
+ if (tuv.distance_to(mb->get_position()) < handle_radius) {
drag_index = i;
}
}
@@ -544,7 +544,7 @@ void TextureRegionEditor::_region_input(const Ref<InputEvent> &p_input) {
switch (drag_index) {
case 0: {
- Vector2 p = rect_prev.position + rect_prev.size;
+ Vector2 p = rect_prev.get_end();
rect = Rect2(p, Size2());
rect.expand_to(new_pos);
apply_rect(rect);
@@ -674,8 +674,7 @@ void TextureRegionEditor::_zoom_on_position(float p_zoom, Point2 p_position) {
draw_zoom = p_zoom;
Point2 ofs = p_position;
ofs = ofs / prev_zoom - ofs / draw_zoom;
- draw_ofs.x = Math::round(draw_ofs.x + ofs.x);
- draw_ofs.y = Math::round(draw_ofs.y + ofs.y);
+ draw_ofs = (draw_ofs + ofs).round();
edit_draw->update();
}
diff --git a/editor/plugins/theme_editor_preview.cpp b/editor/plugins/theme_editor_preview.cpp
index 801ee0eac2..d26d0ec39d 100644
--- a/editor/plugins/theme_editor_preview.cpp
+++ b/editor/plugins/theme_editor_preview.cpp
@@ -126,8 +126,8 @@ void ThemeEditorPreview::_draw_picker_overlay() {
highlight_label_rect.size.x += margin_left + margin_right;
highlight_label_rect.size.y += margin_top + margin_bottom;
- highlight_label_rect.position.x = CLAMP(highlight_label_rect.position.x, 0.0, picker_overlay->get_size().width);
- highlight_label_rect.position.y = CLAMP(highlight_label_rect.position.y, 0.0, picker_overlay->get_size().height);
+ highlight_label_rect.position = highlight_label_rect.position.clamp(Vector2(), picker_overlay->get_size());
+
picker_overlay->draw_style_box(theme_cache.preview_picker_label, highlight_label_rect);
Point2 label_pos = highlight_label_rect.position;
diff --git a/editor/plugins/tiles/atlas_merging_dialog.cpp b/editor/plugins/tiles/atlas_merging_dialog.cpp
index d54906c98c..2a8a3216ed 100644
--- a/editor/plugins/tiles/atlas_merging_dialog.cpp
+++ b/editor/plugins/tiles/atlas_merging_dialog.cpp
@@ -94,12 +94,14 @@ void AtlasMergingDialog::_generate_merged(Vector<Ref<TileSetAtlasSource>> p_atla
}
// Copy the texture.
- Rect2i src_rect = atlas_source->get_tile_texture_region(tile_id);
- Rect2 dst_rect_wide = Rect2i(new_tile_rect_in_altas.position * new_texture_region_size, new_tile_rect_in_altas.size * new_texture_region_size);
- if (dst_rect_wide.get_end().x > output_image->get_width() || dst_rect_wide.get_end().y > output_image->get_height()) {
- output_image->crop(MAX(dst_rect_wide.get_end().x, output_image->get_width()), MAX(dst_rect_wide.get_end().y, output_image->get_height()));
+ for (int frame = 0; frame < atlas_source->get_tile_animation_frames_count(tile_id); frame++) {
+ Rect2i src_rect = atlas_source->get_tile_texture_region(tile_id, frame);
+ Rect2 dst_rect_wide = Rect2i(new_tile_rect_in_altas.position * new_texture_region_size, new_tile_rect_in_altas.size * new_texture_region_size);
+ if (dst_rect_wide.get_end().x > output_image->get_width() || dst_rect_wide.get_end().y > output_image->get_height()) {
+ output_image->crop(MAX(dst_rect_wide.get_end().x, output_image->get_width()), MAX(dst_rect_wide.get_end().y, output_image->get_height()));
+ }
+ output_image->blit_rect(atlas_source->get_texture()->get_image(), src_rect, dst_rect_wide.get_center() - src_rect.size / 2);
}
- output_image->blit_rect(atlas_source->get_texture()->get_image(), src_rect, (dst_rect_wide.get_position() + dst_rect_wide.get_end()) / 2 - src_rect.size / 2);
}
// Compute the atlas offset.
diff --git a/editor/plugins/tiles/tile_atlas_view.cpp b/editor/plugins/tiles/tile_atlas_view.cpp
index 6e0a5b00b9..e98bd74b62 100644
--- a/editor/plugins/tiles/tile_atlas_view.cpp
+++ b/editor/plugins/tiles/tile_atlas_view.cpp
@@ -256,11 +256,15 @@ void TileAtlasView::_draw_base_tiles() {
for (int i = 0; i < tile_set_atlas_source->get_tiles_count(); i++) {
Vector2i atlas_coords = tile_set_atlas_source->get_tile_id(i);
- // Update the y to max value.
- Vector2i offset_pos = (margins + (atlas_coords * texture_region_size) + tile_set_atlas_source->get_tile_texture_region(atlas_coords).size / 2 + tile_set_atlas_source->get_tile_effective_texture_offset(atlas_coords, 0));
+ for (int frame = 0; frame < tile_set_atlas_source->get_tile_animation_frames_count(atlas_coords); frame++) {
+ // Update the y to max value.
+ int animation_columns = tile_set_atlas_source->get_tile_animation_columns(atlas_coords);
+ Vector2i frame_coords = atlas_coords + (tile_set_atlas_source->get_tile_size_in_atlas(atlas_coords) + tile_set_atlas_source->get_tile_animation_separation(atlas_coords)) * ((animation_columns > 0) ? Vector2i(frame % animation_columns, frame / animation_columns) : Vector2i(frame, 0));
+ Vector2i offset_pos = (margins + (frame_coords * texture_region_size) + tile_set_atlas_source->get_tile_texture_region(atlas_coords, frame).size / 2 + tile_set_atlas_source->get_tile_effective_texture_offset(atlas_coords, 0));
- // Draw the tile.
- TileMap::draw_tile(base_tiles_draw->get_canvas_item(), offset_pos, tile_set, source_id, atlas_coords, 0);
+ // Draw the tile.
+ TileMap::draw_tile(base_tiles_draw->get_canvas_item(), offset_pos, tile_set, source_id, atlas_coords, 0, frame);
+ }
}
}
}
@@ -326,13 +330,18 @@ void TileAtlasView::_draw_base_tiles_shape_grid() {
for (int i = 0; i < tile_set_atlas_source->get_tiles_count(); i++) {
Vector2i tile_id = tile_set_atlas_source->get_tile_id(i);
Vector2 in_tile_base_offset = tile_set_atlas_source->get_tile_effective_texture_offset(tile_id, 0);
- Rect2i texture_region = tile_set_atlas_source->get_tile_texture_region(tile_id);
- // Draw only if the tile shape fits in the texture region
- Transform2D tile_xform;
- tile_xform.set_origin(texture_region.position + texture_region.size / 2 + in_tile_base_offset);
- tile_xform.set_scale(tile_shape_size);
- tile_set->draw_tile_shape(base_tiles_shape_grid, tile_xform, grid_color);
+ for (int frame = 0; frame < tile_set_atlas_source->get_tile_animation_frames_count(tile_id); frame++) {
+ Color color = grid_color;
+ if (frame > 0) {
+ color.a *= 0.3;
+ }
+ Rect2i texture_region = tile_set_atlas_source->get_tile_texture_region(tile_id);
+ Transform2D tile_xform;
+ tile_xform.set_origin(texture_region.get_center() + in_tile_base_offset);
+ tile_xform.set_scale(tile_shape_size);
+ tile_set->draw_tile_shape(base_tiles_shape_grid, tile_xform, color);
+ }
}
}
@@ -360,7 +369,7 @@ void TileAtlasView::_draw_alternatives() {
Vector2i atlas_coords = tile_set_atlas_source->get_tile_id(i);
current_pos.x = 0;
int y_increment = 0;
- Rect2i texture_region = tile_set_atlas_source->get_tile_texture_region(atlas_coords);
+ Size2i texture_region_size = tile_set_atlas_source->get_tile_texture_region(atlas_coords).size;
int alternatives_count = tile_set_atlas_source->get_alternative_tiles_count(atlas_coords);
for (int j = 1; j < alternatives_count; j++) {
int alternative_id = tile_set_atlas_source->get_alternative_tile_id(atlas_coords, j);
@@ -370,18 +379,18 @@ void TileAtlasView::_draw_alternatives() {
// Update the y to max value.
Vector2i offset_pos = current_pos;
if (transposed) {
- offset_pos = (current_pos + Vector2(texture_region.size.y, texture_region.size.x) / 2 + tile_set_atlas_source->get_tile_effective_texture_offset(atlas_coords, alternative_id));
- y_increment = MAX(y_increment, texture_region.size.x);
+ offset_pos = (current_pos + Vector2(texture_region_size.y, texture_region_size.x) / 2 + tile_set_atlas_source->get_tile_effective_texture_offset(atlas_coords, alternative_id));
+ y_increment = MAX(y_increment, texture_region_size.x);
} else {
- offset_pos = (current_pos + texture_region.size / 2 + tile_set_atlas_source->get_tile_effective_texture_offset(atlas_coords, alternative_id));
- y_increment = MAX(y_increment, texture_region.size.y);
+ offset_pos = (current_pos + texture_region_size / 2 + tile_set_atlas_source->get_tile_effective_texture_offset(atlas_coords, alternative_id));
+ y_increment = MAX(y_increment, texture_region_size.y);
}
// Draw the tile.
TileMap::draw_tile(alternatives_draw->get_canvas_item(), offset_pos, tile_set, source_id, atlas_coords, alternative_id);
// Increment the x position.
- current_pos.x += transposed ? texture_region.size.y : texture_region.size.x;
+ current_pos.x += transposed ? texture_region_size.y : texture_region_size.x;
}
if (alternatives_count > 1) {
current_pos.y += y_increment;
diff --git a/editor/plugins/tiles/tile_data_editors.cpp b/editor/plugins/tiles/tile_data_editors.cpp
index 2a75a743a7..5f72cfe313 100644
--- a/editor/plugins/tiles/tile_data_editors.cpp
+++ b/editor/plugins/tiles/tile_data_editors.cpp
@@ -231,10 +231,14 @@ void GenericTilePolygonEditor::_zoom_changed() {
void GenericTilePolygonEditor::_advanced_menu_item_pressed(int p_item_pressed) {
switch (p_item_pressed) {
- case RESET_TO_DEFAULT_TILE:
+ case RESET_TO_DEFAULT_TILE: {
undo_redo->create_action(TTR("Edit Polygons"));
undo_redo->add_do_method(this, "clear_polygons");
- undo_redo->add_do_method(this, "add_polygon", tile_set->get_tile_shape_polygon());
+ Vector<Vector2> polygon = tile_set->get_tile_shape_polygon();
+ for (int i = 0; i < polygon.size(); i++) {
+ polygon.write[i] = polygon[i] * tile_set->get_tile_size();
+ }
+ undo_redo->add_do_method(this, "add_polygon", polygon);
undo_redo->add_do_method(base_control, "update");
undo_redo->add_do_method(this, "emit_signal", "polygons_changed");
undo_redo->add_undo_method(this, "clear_polygons");
@@ -244,8 +248,8 @@ void GenericTilePolygonEditor::_advanced_menu_item_pressed(int p_item_pressed) {
undo_redo->add_undo_method(base_control, "update");
undo_redo->add_undo_method(this, "emit_signal", "polygons_changed");
undo_redo->commit_action(true);
- break;
- case CLEAR_TILE:
+ } break;
+ case CLEAR_TILE: {
undo_redo->create_action(TTR("Edit Polygons"));
undo_redo->add_do_method(this, "clear_polygons");
undo_redo->add_do_method(base_control, "update");
@@ -257,7 +261,7 @@ void GenericTilePolygonEditor::_advanced_menu_item_pressed(int p_item_pressed) {
undo_redo->add_undo_method(base_control, "update");
undo_redo->add_undo_method(this, "emit_signal", "polygons_changed");
undo_redo->commit_action(true);
- break;
+ } break;
default:
break;
}
@@ -308,6 +312,9 @@ void GenericTilePolygonEditor::_snap_to_tile_shape(Point2 &r_point, float &r_cur
ERR_FAIL_COND(!tile_set.is_valid());
Vector<Point2> polygon = tile_set->get_tile_shape_polygon();
+ for (int i = 0; i < polygon.size(); i++) {
+ polygon.write[i] = polygon[i] * tile_set->get_tile_size();
+ }
Point2 snapped_point = r_point;
// Snap to polygon vertices.
@@ -539,7 +546,11 @@ void GenericTilePolygonEditor::set_tile_set(Ref<TileSet> p_tile_set) {
// Set the default tile shape
clear_polygons();
if (p_tile_set.is_valid()) {
- add_polygon(p_tile_set->get_tile_shape_polygon());
+ Vector<Vector2> polygon = p_tile_set->get_tile_shape_polygon();
+ for (int i = 0; i < polygon.size(); i++) {
+ polygon.write[i] = polygon[i] * p_tile_set->get_tile_size();
+ }
+ add_polygon(polygon);
}
}
tile_set = p_tile_set;
@@ -622,7 +633,7 @@ void GenericTilePolygonEditor::_notification(int p_what) {
button_delete->set_icon(EditorNode::get_singleton()->get_gui_base()->get_theme_icon(SNAME("CurveDelete"), SNAME("EditorIcons")));
button_center_view->set_icon(EditorNode::get_singleton()->get_gui_base()->get_theme_icon(SNAME("CenterView"), SNAME("EditorIcons")));
button_pixel_snap->set_icon(EditorNode::get_singleton()->get_gui_base()->get_theme_icon(SNAME("Snap"), SNAME("EditorIcons")));
- button_advanced_menu->set_icon(EditorNode::get_singleton()->get_gui_base()->get_theme_icon(SNAME("GuiTabMenu"), SNAME("EditorIcons")));
+ button_advanced_menu->set_icon(EditorNode::get_singleton()->get_gui_base()->get_theme_icon(SNAME("GuiTabMenuHl"), SNAME("EditorIcons")));
break;
}
}
@@ -1265,17 +1276,21 @@ void TileDataCollisionEditor::_polygons_changed() {
}
Variant TileDataCollisionEditor::_get_painted_value() {
+ Dictionary dict;
+ dict["linear_velocity"] = dummy_object->get("linear_velocity");
+ dict["angular_velocity"] = dummy_object->get("angular_velocity");
Array array;
for (int i = 0; i < polygon_editor->get_polygon_count(); i++) {
ERR_FAIL_COND_V(polygon_editor->get_polygon(i).size() < 3, Variant());
- Dictionary dict;
- dict["points"] = polygon_editor->get_polygon(i);
- dict["one_way"] = dummy_object->get(vformat("polygon_%d_one_way", i));
- dict["one_way_margin"] = dummy_object->get(vformat("polygon_%d_one_way_margin", i));
- array.push_back(dict);
+ Dictionary polygon_dict;
+ polygon_dict["points"] = polygon_editor->get_polygon(i);
+ polygon_dict["one_way"] = dummy_object->get(vformat("polygon_%d_one_way", i));
+ polygon_dict["one_way_margin"] = dummy_object->get(vformat("polygon_%d_one_way_margin", i));
+ array.push_back(polygon_dict);
}
+ dict["polygons"] = array;
- return array;
+ return dict;
}
void TileDataCollisionEditor::_set_painted_value(TileSetAtlasSource *p_tile_set_atlas_source, Vector2 p_coords, int p_alternative_tile) {
@@ -1291,6 +1306,8 @@ void TileDataCollisionEditor::_set_painted_value(TileSetAtlasSource *p_tile_set_
}
_polygons_changed();
+ dummy_object->set("linear_velocity", tile_data->get_constant_linear_velocity(physics_layer));
+ dummy_object->set("angular_velocity", tile_data->get_constant_angular_velocity(physics_layer));
for (int i = 0; i < tile_data->get_collision_polygons_count(physics_layer); i++) {
dummy_object->set(vformat("polygon_%d_one_way", i), tile_data->is_collision_polygon_one_way(physics_layer, i));
dummy_object->set(vformat("polygon_%d_one_way_margin", i), tile_data->get_collision_polygon_one_way_margin(physics_layer, i));
@@ -1306,13 +1323,16 @@ void TileDataCollisionEditor::_set_value(TileSetAtlasSource *p_tile_set_atlas_so
TileData *tile_data = Object::cast_to<TileData>(p_tile_set_atlas_source->get_tile_data(p_coords, p_alternative_tile));
ERR_FAIL_COND(!tile_data);
- Array array = p_value;
+ Dictionary dict = p_value;
+ tile_data->set_constant_linear_velocity(physics_layer, dict["linear_velocity"]);
+ tile_data->set_constant_angular_velocity(physics_layer, dict["angular_velocity"]);
+ Array array = dict["polygons"];
tile_data->set_collision_polygons_count(physics_layer, array.size());
for (int i = 0; i < array.size(); i++) {
- Dictionary dict = array[i];
- tile_data->set_collision_polygon_points(physics_layer, i, dict["points"]);
- tile_data->set_collision_polygon_one_way(physics_layer, i, dict["one_way"]);
- tile_data->set_collision_polygon_one_way_margin(physics_layer, i, dict["one_way_margin"]);
+ Dictionary polygon_dict = array[i];
+ tile_data->set_collision_polygon_points(physics_layer, i, polygon_dict["points"]);
+ tile_data->set_collision_polygon_one_way(physics_layer, i, polygon_dict["one_way"]);
+ tile_data->set_collision_polygon_one_way_margin(physics_layer, i, polygon_dict["one_way_margin"]);
}
polygon_editor->set_background(p_tile_set_atlas_source->get_texture(), p_tile_set_atlas_source->get_tile_texture_region(p_coords), p_tile_set_atlas_source->get_tile_effective_texture_offset(p_coords, p_alternative_tile), tile_data->get_flip_h(), tile_data->get_flip_v(), tile_data->get_transpose(), tile_data->get_modulate());
@@ -1322,15 +1342,19 @@ Variant TileDataCollisionEditor::_get_value(TileSetAtlasSource *p_tile_set_atlas
TileData *tile_data = Object::cast_to<TileData>(p_tile_set_atlas_source->get_tile_data(p_coords, p_alternative_tile));
ERR_FAIL_COND_V(!tile_data, Variant());
+ Dictionary dict;
+ dict["linear_velocity"] = tile_data->get_constant_linear_velocity(physics_layer);
+ dict["angular_velocity"] = tile_data->get_constant_angular_velocity(physics_layer);
Array array;
for (int i = 0; i < tile_data->get_collision_polygons_count(physics_layer); i++) {
- Dictionary dict;
- dict["points"] = tile_data->get_collision_polygon_points(physics_layer, i);
- dict["one_way"] = tile_data->is_collision_polygon_one_way(physics_layer, i);
- dict["one_way_margin"] = tile_data->get_collision_polygon_one_way_margin(physics_layer, i);
- array.push_back(dict);
+ Dictionary polygon_dict;
+ polygon_dict["points"] = tile_data->get_collision_polygon_points(physics_layer, i);
+ polygon_dict["one_way"] = tile_data->is_collision_polygon_one_way(physics_layer, i);
+ polygon_dict["one_way_margin"] = tile_data->get_collision_polygon_one_way_margin(physics_layer, i);
+ array.push_back(polygon_dict);
}
- return array;
+ dict["polygons"] = array;
+ return dict;
}
void TileDataCollisionEditor::_setup_undo_redo_action(TileSetAtlasSource *p_tile_set_atlas_source, Map<TileMapCell, Variant> p_previous_values, Variant p_new_value) {
@@ -1378,6 +1402,27 @@ TileDataCollisionEditor::TileDataCollisionEditor() {
polygon_editor->connect("polygons_changed", callable_mp(this, &TileDataCollisionEditor::_polygons_changed));
add_child(polygon_editor);
+ dummy_object->add_dummy_property("linear_velocity");
+ dummy_object->set("linear_velocity", Vector2());
+ dummy_object->add_dummy_property("angular_velocity");
+ dummy_object->set("angular_velocity", 0.0);
+
+ EditorProperty *linear_velocity_editor = EditorInspectorDefaultPlugin::get_editor_for_property(dummy_object, Variant::VECTOR2, "linear_velocity", PROPERTY_HINT_NONE, "", PROPERTY_USAGE_DEFAULT);
+ linear_velocity_editor->set_object_and_property(dummy_object, "linear_velocity");
+ linear_velocity_editor->set_label("linear_velocity");
+ linear_velocity_editor->connect("property_changed", callable_mp(this, &TileDataCollisionEditor::_property_value_changed).unbind(1));
+ linear_velocity_editor->update_property();
+ add_child(linear_velocity_editor);
+ property_editors["linear_velocity"] = linear_velocity_editor;
+
+ EditorProperty *angular_velocity_editor = EditorInspectorDefaultPlugin::get_editor_for_property(dummy_object, Variant::FLOAT, "angular_velocity", PROPERTY_HINT_NONE, "", PROPERTY_USAGE_DEFAULT);
+ angular_velocity_editor->set_object_and_property(dummy_object, "angular_velocity");
+ angular_velocity_editor->set_label("angular_velocity");
+ angular_velocity_editor->connect("property_changed", callable_mp(this, &TileDataCollisionEditor::_property_value_changed).unbind(1));
+ angular_velocity_editor->update_property();
+ add_child(angular_velocity_editor);
+ property_editors["angular_velocity"] = linear_velocity_editor;
+
_polygons_changed();
}
@@ -1495,7 +1540,7 @@ void TileDataTerrainsEditor::forward_draw_over_atlas(TileAtlasView *p_tile_atlas
TileData *tile_data = Object::cast_to<TileData>(p_tile_set_atlas_source->get_tile_data(hovered_coords, 0));
int terrain_set = tile_data->get_terrain_set();
Rect2i texture_region = p_tile_set_atlas_source->get_tile_texture_region(hovered_coords);
- Vector2i position = (texture_region.position + texture_region.get_end()) / 2 + p_tile_set_atlas_source->get_tile_effective_texture_offset(hovered_coords, 0);
+ Vector2i position = texture_region.get_center() + p_tile_set_atlas_source->get_tile_effective_texture_offset(hovered_coords, 0);
if (terrain_set >= 0 && terrain_set == int(dummy_object->get("terrain_set"))) {
// Draw hovered bit.
@@ -1540,7 +1585,7 @@ void TileDataTerrainsEditor::forward_draw_over_atlas(TileAtlasView *p_tile_atlas
// Text
p_canvas_item->draw_set_transform_matrix(Transform2D());
Rect2i texture_region = p_tile_set_atlas_source->get_tile_texture_region(coords);
- Vector2i position = (texture_region.position + texture_region.get_end()) / 2 + p_tile_set_atlas_source->get_tile_effective_texture_offset(coords, 0);
+ Vector2i position = texture_region.get_center() + p_tile_set_atlas_source->get_tile_effective_texture_offset(coords, 0);
Color color = Color(1, 1, 1);
String text;
@@ -1632,7 +1677,7 @@ void TileDataTerrainsEditor::forward_draw_over_atlas(TileAtlasView *p_tile_atlas
Vector2i coords = E->get().get_atlas_coords();
Rect2i texture_region = p_tile_set_atlas_source->get_tile_texture_region(coords);
- Vector2i position = (texture_region.position + texture_region.get_end()) / 2 + p_tile_set_atlas_source->get_tile_effective_texture_offset(coords, 0);
+ Vector2i position = texture_region.get_center() + p_tile_set_atlas_source->get_tile_effective_texture_offset(coords, 0);
for (int i = 0; i < TileSet::CELL_NEIGHBOR_MAX; i++) {
TileSet::CellNeighbor bit = TileSet::CellNeighbor(i);
@@ -1668,7 +1713,7 @@ void TileDataTerrainsEditor::forward_draw_over_alternatives(TileAtlasView *p_til
TileData *tile_data = Object::cast_to<TileData>(p_tile_set_atlas_source->get_tile_data(hovered_coords, hovered_alternative));
int terrain_set = tile_data->get_terrain_set();
Rect2i texture_region = p_tile_atlas_view->get_alternative_tile_rect(hovered_coords, hovered_alternative);
- Vector2i position = (texture_region.position + texture_region.get_end()) / 2 + p_tile_set_atlas_source->get_tile_effective_texture_offset(hovered_coords, hovered_alternative);
+ Vector2i position = texture_region.get_center() + p_tile_set_atlas_source->get_tile_effective_texture_offset(hovered_coords, hovered_alternative);
if (terrain_set == int(dummy_object->get("terrain_set"))) {
// Draw hovered bit.
@@ -1715,7 +1760,7 @@ void TileDataTerrainsEditor::forward_draw_over_alternatives(TileAtlasView *p_til
// Text
p_canvas_item->draw_set_transform_matrix(Transform2D());
Rect2i texture_region = p_tile_atlas_view->get_alternative_tile_rect(coords, alternative_tile);
- Vector2i position = (texture_region.position + texture_region.get_end()) / 2 + p_tile_set_atlas_source->get_tile_effective_texture_offset(coords, 0);
+ Vector2i position = texture_region.get_center() + p_tile_set_atlas_source->get_tile_effective_texture_offset(coords, 0);
Color color = Color(1, 1, 1);
String text;
@@ -1796,7 +1841,7 @@ void TileDataTerrainsEditor::forward_painting_atlas_gui_input(TileAtlasView *p_t
// Set the terrains bits.
Rect2i texture_region = p_tile_set_atlas_source->get_tile_texture_region(coords);
- Vector2i position = (texture_region.position + texture_region.get_end()) / 2 + p_tile_set_atlas_source->get_tile_effective_texture_offset(coords, 0);
+ Vector2i position = texture_region.get_center() + p_tile_set_atlas_source->get_tile_effective_texture_offset(coords, 0);
for (int j = 0; j < TileSet::CELL_NEIGHBOR_MAX; j++) {
TileSet::CellNeighbor bit = TileSet::CellNeighbor(j);
if (tile_data->is_valid_peering_bit_terrain(bit)) {
@@ -1824,7 +1869,7 @@ void TileDataTerrainsEditor::forward_painting_atlas_gui_input(TileAtlasView *p_t
TileData *tile_data = Object::cast_to<TileData>(p_tile_set_atlas_source->get_tile_data(coords, 0));
int terrain_set = tile_data->get_terrain_set();
Rect2i texture_region = p_tile_set_atlas_source->get_tile_texture_region(coords);
- Vector2i position = (texture_region.position + texture_region.get_end()) / 2 + p_tile_set_atlas_source->get_tile_effective_texture_offset(coords, 0);
+ Vector2i position = texture_region.get_center() + p_tile_set_atlas_source->get_tile_effective_texture_offset(coords, 0);
dummy_object->set("terrain_set", terrain_set);
dummy_object->set("terrain", -1);
for (int i = 0; i < TileSet::CELL_NEIGHBOR_MAX; i++) {
@@ -1922,7 +1967,7 @@ void TileDataTerrainsEditor::forward_painting_atlas_gui_input(TileAtlasView *p_t
// Set the terrain bit.
Rect2i texture_region = p_tile_set_atlas_source->get_tile_texture_region(coords);
- Vector2i position = (texture_region.position + texture_region.get_end()) / 2 + p_tile_set_atlas_source->get_tile_effective_texture_offset(coords, 0);
+ Vector2i position = texture_region.get_center() + p_tile_set_atlas_source->get_tile_effective_texture_offset(coords, 0);
for (int i = 0; i < TileSet::CELL_NEIGHBOR_MAX; i++) {
TileSet::CellNeighbor bit = TileSet::CellNeighbor(i);
@@ -2055,7 +2100,7 @@ void TileDataTerrainsEditor::forward_painting_atlas_gui_input(TileAtlasView *p_t
TileSet::CellNeighbor bit = TileSet::CellNeighbor(i);
if (tile_set->is_valid_peering_bit_terrain(terrain_set, bit)) {
Rect2i texture_region = p_tile_set_atlas_source->get_tile_texture_region(coords);
- Vector2i position = (texture_region.position + texture_region.get_end()) / 2 + p_tile_set_atlas_source->get_tile_effective_texture_offset(coords, 0);
+ Vector2i position = texture_region.get_center() + p_tile_set_atlas_source->get_tile_effective_texture_offset(coords, 0);
Vector<Vector2> polygon = tile_set->get_terrain_bit_polygon(terrain_set, bit);
for (int j = 0; j < polygon.size(); j++) {
@@ -2138,7 +2183,7 @@ void TileDataTerrainsEditor::forward_painting_alternatives_gui_input(TileAtlasVi
// Set the terrains bits.
Rect2i texture_region = p_tile_atlas_view->get_alternative_tile_rect(coords, alternative_tile);
- Vector2i position = (texture_region.position + texture_region.get_end()) / 2 + p_tile_set_atlas_source->get_tile_effective_texture_offset(coords, alternative_tile);
+ Vector2i position = texture_region.get_center() + p_tile_set_atlas_source->get_tile_effective_texture_offset(coords, alternative_tile);
for (int j = 0; j < TileSet::CELL_NEIGHBOR_MAX; j++) {
TileSet::CellNeighbor bit = TileSet::CellNeighbor(j);
if (tile_data->is_valid_peering_bit_terrain(bit)) {
@@ -2167,7 +2212,7 @@ void TileDataTerrainsEditor::forward_painting_alternatives_gui_input(TileAtlasVi
TileData *tile_data = Object::cast_to<TileData>(p_tile_set_atlas_source->get_tile_data(coords, alternative_tile));
int terrain_set = tile_data->get_terrain_set();
Rect2i texture_region = p_tile_atlas_view->get_alternative_tile_rect(coords, alternative_tile);
- Vector2i position = (texture_region.position + texture_region.get_end()) / 2 + p_tile_set_atlas_source->get_tile_effective_texture_offset(coords, alternative_tile);
+ Vector2i position = texture_region.get_center() + p_tile_set_atlas_source->get_tile_effective_texture_offset(coords, alternative_tile);
dummy_object->set("terrain_set", terrain_set);
dummy_object->set("terrain", -1);
for (int i = 0; i < TileSet::CELL_NEIGHBOR_MAX; i++) {
@@ -2242,7 +2287,7 @@ void TileDataTerrainsEditor::forward_painting_alternatives_gui_input(TileAtlasVi
// Set the terrain bit.
Rect2i texture_region = p_tile_atlas_view->get_alternative_tile_rect(coords, alternative_tile);
- Vector2i position = (texture_region.position + texture_region.get_end()) / 2 + p_tile_set_atlas_source->get_tile_effective_texture_offset(coords, alternative_tile);
+ Vector2i position = texture_region.get_center() + p_tile_set_atlas_source->get_tile_effective_texture_offset(coords, alternative_tile);
for (int i = 0; i < TileSet::CELL_NEIGHBOR_MAX; i++) {
TileSet::CellNeighbor bit = TileSet::CellNeighbor(i);
if (tile_set->is_valid_peering_bit_terrain(terrain_set, bit)) {
diff --git a/editor/plugins/tiles/tile_map_editor.cpp b/editor/plugins/tiles/tile_map_editor.cpp
index acbd5d70ff..a248f23517 100644
--- a/editor/plugins/tiles/tile_map_editor.cpp
+++ b/editor/plugins/tiles/tile_map_editor.cpp
@@ -790,7 +790,7 @@ void TileMapEditorTilesPlugin::forward_canvas_draw_over_viewport(Control *p_over
// Get the tile modulation.
Color modulate = tile_data->get_modulate();
Color self_modulate = tile_map->get_self_modulate();
- modulate = Color(modulate.r * self_modulate.r, modulate.g * self_modulate.g, modulate.b * self_modulate.b, modulate.a * self_modulate.a);
+ modulate *= self_modulate;
// Draw the tile.
p_overlay->draw_texture_rect_region(atlas_source->get_texture(), dest_rect, source_rect, modulate * Color(1.0, 1.0, 1.0, 0.5), transpose, tile_set->is_uv_clipping());
@@ -1041,7 +1041,7 @@ Map<Vector2i, TileMapCell> TileMapEditorTilesPlugin::_draw_bucket_fill(Vector2i
TypedArray<Vector2i> to_check;
if (source.source_id == TileSet::INVALID_SOURCE) {
Rect2i rect = tile_map->get_used_rect();
- if (rect.size.x <= 0 || rect.size.y <= 0) {
+ if (rect.has_no_area()) {
rect = Rect2i(p_coords, Vector2i(1, 1));
}
for (int x = boundaries.position.x; x < boundaries.get_end().x; x++) {
@@ -1456,13 +1456,25 @@ void TileMapEditorTilesPlugin::_tile_atlas_control_draw() {
Color selection_color = Color().from_hsv(Math::fposmod(grid_color.get_h() + 0.5, 1.0), grid_color.get_s(), grid_color.get_v(), 1.0);
for (Set<TileMapCell>::Element *E = tile_set_selection.front(); E; E = E->next()) {
if (E->get().source_id == source_id && E->get().alternative_tile == 0) {
- tile_atlas_control->draw_rect(atlas->get_tile_texture_region(E->get().get_atlas_coords()), selection_color, false);
+ for (int frame = 0; frame < atlas->get_tile_animation_frames_count(E->get().get_atlas_coords()); frame++) {
+ Color color = selection_color;
+ if (frame > 0) {
+ color.a *= 0.3;
+ }
+ tile_atlas_control->draw_rect(atlas->get_tile_texture_region(E->get().get_atlas_coords(), frame), color, false);
+ }
}
}
// Draw the hovered tile.
if (hovered_tile.get_atlas_coords() != TileSetSource::INVALID_ATLAS_COORDS && hovered_tile.alternative_tile == 0 && !tile_set_dragging_selection) {
- tile_atlas_control->draw_rect(atlas->get_tile_texture_region(hovered_tile.get_atlas_coords()), Color(1.0, 1.0, 1.0), false);
+ for (int frame = 0; frame < atlas->get_tile_animation_frames_count(hovered_tile.get_atlas_coords()); frame++) {
+ Color color = Color(1.0, 1.0, 1.0);
+ if (frame > 0) {
+ color.a *= 0.3;
+ }
+ tile_atlas_control->draw_rect(atlas->get_tile_texture_region(hovered_tile.get_atlas_coords(), frame), color, false);
+ }
}
// Draw the selection rect.
@@ -3181,7 +3193,7 @@ TileMapEditorTerrainsPlugin::TileMapEditorTerrainsPlugin() {
paint_tool_button->set_toggle_mode(true);
paint_tool_button->set_button_group(tool_buttons_group);
paint_tool_button->set_pressed(true);
- paint_tool_button->set_shortcut(ED_SHORTCUT("tiles_editor/paint_tool", "Paint", KEY_E));
+ paint_tool_button->set_shortcut(ED_SHORTCUT("tiles_editor/paint_tool", "Paint", KEY_D));
paint_tool_button->connect("pressed", callable_mp(this, &TileMapEditorTerrainsPlugin::_update_toolbar));
tilemap_tiles_tools_buttons->add_child(paint_tool_button);
diff --git a/editor/plugins/tiles/tile_set_atlas_source_editor.cpp b/editor/plugins/tiles/tile_set_atlas_source_editor.cpp
index c3a3f40e00..1f1408016b 100644
--- a/editor/plugins/tiles/tile_set_atlas_source_editor.cpp
+++ b/editor/plugins/tiles/tile_set_atlas_source_editor.cpp
@@ -87,7 +87,7 @@ void TileSetAtlasSourceEditor::TileSetAtlasSourceProxyObject::_get_property_list
p_list->push_back(PropertyInfo(Variant::OBJECT, "texture", PROPERTY_HINT_RESOURCE_TYPE, "Texture2D"));
p_list->push_back(PropertyInfo(Variant::VECTOR2I, "margins", PROPERTY_HINT_NONE, ""));
p_list->push_back(PropertyInfo(Variant::VECTOR2I, "separation", PROPERTY_HINT_NONE, ""));
- p_list->push_back(PropertyInfo(Variant::VECTOR2I, "tile_size", PROPERTY_HINT_NONE, ""));
+ p_list->push_back(PropertyInfo(Variant::VECTOR2I, "texture_region_size", PROPERTY_HINT_NONE, ""));
}
void TileSetAtlasSourceEditor::TileSetAtlasSourceProxyObject::_bind_methods() {
@@ -135,45 +135,81 @@ bool TileSetAtlasSourceEditor::AtlasTileProxyObject::_set(const StringName &p_na
const Vector2i &coords = tiles.front()->get().tile;
const int &alternative = tiles.front()->get().alternative;
- if (alternative == 0 && p_name == "atlas_coords") {
- Vector2i as_vector2i = Vector2i(p_value);
- ERR_FAIL_COND_V(!tile_set_atlas_source->can_move_tile_in_atlas(coords, as_vector2i), false);
+ if (alternative == 0) {
+ Vector<String> components = String(p_name).split("/", true, 2);
+ if (p_name == "atlas_coords") {
+ Vector2i as_vector2i = Vector2i(p_value);
+ bool has_room_for_tile = tile_set_atlas_source->has_room_for_tile(as_vector2i, tile_set_atlas_source->get_tile_size_in_atlas(coords), tile_set_atlas_source->get_tile_animation_columns(coords), tile_set_atlas_source->get_tile_animation_separation(coords), tile_set_atlas_source->get_tile_animation_frames_count(coords), coords);
+ ERR_FAIL_COND_V(!has_room_for_tile, false);
+
+ if (tiles_set_atlas_source_editor->selection.front()->get().tile == coords) {
+ tiles_set_atlas_source_editor->selection.clear();
+ tiles_set_atlas_source_editor->selection.insert({ as_vector2i, 0 });
+ tiles_set_atlas_source_editor->_update_tile_id_label();
+ }
- if (tiles_set_atlas_source_editor->selection.front()->get().tile == coords) {
- tiles_set_atlas_source_editor->selection.clear();
- tiles_set_atlas_source_editor->selection.insert({ as_vector2i, 0 });
- tiles_set_atlas_source_editor->_update_tile_id_label();
+ tile_set_atlas_source->move_tile_in_atlas(coords, as_vector2i);
+ tiles.clear();
+ tiles.insert({ as_vector2i, 0 });
+ emit_signal(SNAME("changed"), "atlas_coords");
+ return true;
+ } else if (p_name == "size_in_atlas") {
+ Vector2i as_vector2i = Vector2i(p_value);
+ bool has_room_for_tile = tile_set_atlas_source->has_room_for_tile(coords, as_vector2i, tile_set_atlas_source->get_tile_animation_columns(coords), tile_set_atlas_source->get_tile_animation_separation(coords), tile_set_atlas_source->get_tile_animation_frames_count(coords), coords);
+ ERR_FAIL_COND_V(!has_room_for_tile, false);
+ tile_set_atlas_source->move_tile_in_atlas(coords, TileSetSource::INVALID_ATLAS_COORDS, as_vector2i);
+ emit_signal(SNAME("changed"), "size_in_atlas");
+ return true;
+ } else if (p_name == "animation_columns") {
+ bool has_room_for_tile = tile_set_atlas_source->has_room_for_tile(coords, tile_set_atlas_source->get_tile_size_in_atlas(coords), p_value, tile_set_atlas_source->get_tile_animation_separation(coords), tile_set_atlas_source->get_tile_animation_frames_count(coords), coords);
+ ERR_FAIL_COND_V(!has_room_for_tile, false);
+ tile_set_atlas_source->set_tile_animation_columns(coords, p_value);
+ emit_signal(SNAME("changed"), "animation_columns");
+ return true;
+ } else if (p_name == "animation_separation") {
+ bool has_room_for_tile = tile_set_atlas_source->has_room_for_tile(coords, tile_set_atlas_source->get_tile_size_in_atlas(coords), tile_set_atlas_source->get_tile_animation_columns(coords), p_value, tile_set_atlas_source->get_tile_animation_frames_count(coords), coords);
+ ERR_FAIL_COND_V(!has_room_for_tile, false);
+ tile_set_atlas_source->set_tile_animation_separation(coords, p_value);
+ emit_signal(SNAME("changed"), "animation_separation");
+ return true;
+ } else if (p_name == "animation_speed") {
+ tile_set_atlas_source->set_tile_animation_speed(coords, p_value);
+ emit_signal(SNAME("changed"), "animation_speed");
+ return true;
+ } else if (p_name == "animation_frames_count") {
+ bool has_room_for_tile = tile_set_atlas_source->has_room_for_tile(coords, tile_set_atlas_source->get_tile_size_in_atlas(coords), tile_set_atlas_source->get_tile_animation_columns(coords), tile_set_atlas_source->get_tile_animation_separation(coords), p_value, coords);
+ ERR_FAIL_COND_V(!has_room_for_tile, false);
+ tile_set_atlas_source->set_tile_animation_frames_count(coords, p_value);
+ notify_property_list_changed();
+ emit_signal(SNAME("changed"), "animation_separation");
+ return true;
+ } else if (components.size() == 2 && components[0].begins_with("animation_frame_") && components[0].trim_prefix("animation_frame_").is_valid_int()) {
+ int frame = components[0].trim_prefix("animation_frame_").to_int();
+ ERR_FAIL_INDEX_V(frame, tile_set_atlas_source->get_tile_animation_frames_count(coords), false);
+ if (components[1] == "duration") {
+ tile_set_atlas_source->set_tile_animation_frame_duration(coords, frame, p_value);
+ return true;
+ }
}
+ } else if (alternative > 0) {
+ if (p_name == "alternative_id") {
+ int as_int = int(p_value);
+ ERR_FAIL_COND_V(as_int < 0, false);
+ ERR_FAIL_COND_V_MSG(tile_set_atlas_source->has_alternative_tile(coords, as_int), false, vformat("Cannot change alternative tile ID. Another alternative exists with id %d for tile at coords %s.", as_int, coords));
+
+ if (tiles_set_atlas_source_editor->selection.front()->get().alternative == alternative) {
+ tiles_set_atlas_source_editor->selection.clear();
+ tiles_set_atlas_source_editor->selection.insert({ coords, as_int });
+ }
- tile_set_atlas_source->move_tile_in_atlas(coords, as_vector2i);
- tiles.clear();
- tiles.insert({ as_vector2i, 0 });
- emit_signal(SNAME("changed"), "atlas_coords");
- return true;
- } else if (alternative == 0 && p_name == "size_in_atlas") {
- Vector2i as_vector2i = Vector2i(p_value);
- ERR_FAIL_COND_V(!tile_set_atlas_source->can_move_tile_in_atlas(coords, TileSetSource::INVALID_ATLAS_COORDS, as_vector2i), false);
+ int previous_alternative_tile = alternative;
+ tiles.clear();
+ tiles.insert({ coords, as_int }); // tiles must be updated before.
+ tile_set_atlas_source->set_alternative_tile_id(coords, previous_alternative_tile, as_int);
- tile_set_atlas_source->move_tile_in_atlas(coords, TileSetSource::INVALID_ATLAS_COORDS, as_vector2i);
- emit_signal(SNAME("changed"), "size_in_atlas");
- return true;
- } else if (alternative > 0 && p_name == "alternative_id") {
- int as_int = int(p_value);
- ERR_FAIL_COND_V(as_int < 0, false);
- ERR_FAIL_COND_V_MSG(tile_set_atlas_source->has_alternative_tile(coords, as_int), false, vformat("Cannot change alternative tile ID. Another alternative exists with id %d for tile at coords %s.", as_int, coords));
-
- if (tiles_set_atlas_source_editor->selection.front()->get().alternative == alternative) {
- tiles_set_atlas_source_editor->selection.clear();
- tiles_set_atlas_source_editor->selection.insert({ coords, as_int });
+ emit_signal(SNAME("changed"), "alternative_id");
+ return true;
}
-
- int previous_alternative_tile = alternative;
- tiles.clear();
- tiles.insert({ coords, as_int }); // tiles must be updated before.
- tile_set_atlas_source->set_alternative_tile_id(coords, previous_alternative_tile, as_int);
-
- emit_signal(SNAME("changed"), "alternative_id");
- return true;
}
}
@@ -206,15 +242,41 @@ bool TileSetAtlasSourceEditor::AtlasTileProxyObject::_get(const StringName &p_na
const Vector2i &coords = tiles.front()->get().tile;
const int &alternative = tiles.front()->get().alternative;
- if (alternative == 0 && p_name == "atlas_coords") {
- r_ret = coords;
- return true;
- } else if (alternative == 0 && p_name == "size_in_atlas") {
- r_ret = tile_set_atlas_source->get_tile_size_in_atlas(coords);
- return true;
- } else if (alternative > 0 && p_name == "alternative_id") {
- r_ret = alternative;
- return true;
+ if (alternative == 0) {
+ Vector<String> components = String(p_name).split("/", true, 2);
+ if (p_name == "atlas_coords") {
+ r_ret = coords;
+ return true;
+ } else if (p_name == "size_in_atlas") {
+ r_ret = tile_set_atlas_source->get_tile_size_in_atlas(coords);
+ return true;
+ } else if (p_name == "animation_columns") {
+ r_ret = tile_set_atlas_source->get_tile_animation_columns(coords);
+ return true;
+ } else if (p_name == "animation_separation") {
+ r_ret = tile_set_atlas_source->get_tile_animation_separation(coords);
+ return true;
+ } else if (p_name == "animation_speed") {
+ r_ret = tile_set_atlas_source->get_tile_animation_speed(coords);
+ return true;
+ } else if (p_name == "animation_frames_count") {
+ r_ret = tile_set_atlas_source->get_tile_animation_frames_count(coords);
+ return true;
+ } else if (components.size() == 2 && components[0].begins_with("animation_frame_") && components[0].trim_prefix("animation_frame_").is_valid_int()) {
+ int frame = components[0].trim_prefix("animation_frame_").to_int();
+ if (components[1] == "duration") {
+ if (frame < 0 || frame >= tile_set_atlas_source->get_tile_animation_frames_count(coords)) {
+ return false;
+ }
+ r_ret = tile_set_atlas_source->get_tile_animation_frame_duration(coords, frame);
+ return true;
+ }
+ }
+ } else if (alternative > 0) {
+ if (p_name == "alternative_id") {
+ r_ret = alternative;
+ return true;
+ }
}
}
@@ -246,6 +308,20 @@ void TileSetAtlasSourceEditor::AtlasTileProxyObject::_get_property_list(List<Pro
if (tiles.front()->get().alternative == 0) {
p_list->push_back(PropertyInfo(Variant::VECTOR2I, "atlas_coords", PROPERTY_HINT_NONE, ""));
p_list->push_back(PropertyInfo(Variant::VECTOR2I, "size_in_atlas", PROPERTY_HINT_NONE, ""));
+
+ // Animation.
+ p_list->push_back(PropertyInfo(Variant::NIL, "Animation", PROPERTY_HINT_NONE, "animation_", PROPERTY_USAGE_GROUP));
+ p_list->push_back(PropertyInfo(Variant::INT, "animation_columns", PROPERTY_HINT_NONE, ""));
+ p_list->push_back(PropertyInfo(Variant::VECTOR2I, "animation_separation", PROPERTY_HINT_NONE, ""));
+ p_list->push_back(PropertyInfo(Variant::FLOAT, "animation_speed", PROPERTY_HINT_NONE, ""));
+ p_list->push_back(PropertyInfo(Variant::INT, "animation_frames_count", PROPERTY_HINT_NONE, "", PROPERTY_USAGE_EDITOR | PROPERTY_USAGE_ARRAY, "Frames,animation_frame_"));
+ if (tile_set_atlas_source->get_tile_animation_frames_count(tiles.front()->get().tile) == 1) {
+ p_list->push_back(PropertyInfo(Variant::FLOAT, "animation_frame_0/duration", PROPERTY_HINT_NONE, "", PROPERTY_USAGE_DEFAULT | PROPERTY_USAGE_READ_ONLY));
+ } else {
+ for (int i = 0; i < tile_set_atlas_source->get_tile_animation_frames_count(tiles.front()->get().tile); i++) {
+ p_list->push_back(PropertyInfo(Variant::FLOAT, vformat("animation_frame_%d/duration", i), PROPERTY_HINT_NONE, ""));
+ }
+ }
} else {
p_list->push_back(PropertyInfo(Variant::INT, "alternative_id", PROPERTY_HINT_NONE, ""));
}
@@ -846,15 +922,15 @@ void TileSetAtlasSourceEditor::_tile_atlas_control_gui_input(const Ref<InputEven
CursorShape cursor_shape = CURSOR_ARROW;
bool can_grow[4];
for (int i = 0; i < 4; i++) {
- can_grow[i] = tile_set_atlas_source->can_move_tile_in_atlas(selected.tile, selected.tile + directions[i]);
+ can_grow[i] = tile_set_atlas_source->has_room_for_tile(selected.tile + directions[i], tile_set_atlas_source->get_tile_size_in_atlas(selected.tile), tile_set_atlas_source->get_tile_animation_columns(selected.tile), tile_set_atlas_source->get_tile_animation_separation(selected.tile), tile_set_atlas_source->get_tile_animation_frames_count(selected.tile), selected.tile);
can_grow[i] |= (i % 2 == 0) ? size_in_atlas.y > 1 : size_in_atlas.x > 1;
}
for (int i = 0; i < 4; i++) {
- Vector2 pos = rect.position + Vector2(rect.size.x, rect.size.y) * coords[i];
+ Vector2 pos = rect.position + rect.size * coords[i];
if (can_grow[i] && can_grow[(i + 3) % 4] && Rect2(pos, zoomed_size).has_point(mouse_local_pos)) {
cursor_shape = (i % 2) ? CURSOR_BDIAGSIZE : CURSOR_FDIAGSIZE;
}
- Vector2 next_pos = rect.position + Vector2(rect.size.x, rect.size.y) * coords[(i + 1) % 4];
+ Vector2 next_pos = rect.position + rect.size * coords[(i + 1) % 4];
if (can_grow[i] && Rect2((pos + next_pos) / 2.0, zoomed_size).has_point(mouse_local_pos)) {
cursor_shape = (i % 2) ? CURSOR_HSIZE : CURSOR_VSIZE;
}
@@ -869,7 +945,7 @@ void TileSetAtlasSourceEditor::_tile_atlas_control_gui_input(const Ref<InputEven
Rect2i new_rect = Rect2i(start_base_tiles_coords, new_base_tiles_coords - start_base_tiles_coords).abs();
new_rect.size += Vector2i(1, 1);
// Check if the new tile can fit in the new rect.
- if (tile_set_atlas_source->can_move_tile_in_atlas(drag_current_tile, new_rect.position, new_rect.size)) {
+ if (tile_set_atlas_source->has_room_for_tile(new_rect.position, new_rect.size, tile_set_atlas_source->get_tile_animation_columns(drag_current_tile), tile_set_atlas_source->get_tile_animation_separation(drag_current_tile), tile_set_atlas_source->get_tile_animation_frames_count(drag_current_tile), drag_current_tile)) {
// Move and resize the tile.
tile_set_atlas_source->move_tile_in_atlas(drag_current_tile, new_rect.position, new_rect.size);
drag_current_tile = new_rect.position;
@@ -908,7 +984,7 @@ void TileSetAtlasSourceEditor::_tile_atlas_control_gui_input(const Ref<InputEven
Vector2 mouse_offset = (Vector2(tile_set_atlas_source->get_tile_size_in_atlas(drag_current_tile)) / 2.0 - Vector2(0.5, 0.5)) * tile_set->get_tile_size();
Vector2i coords = tile_atlas_view->get_atlas_tile_coords_at_pos(tile_atlas_control->get_local_mouse_position() - mouse_offset);
coords = coords.max(Vector2i(0, 0)).min(grid_size - Vector2i(1, 1));
- if (drag_current_tile != coords && tile_set_atlas_source->can_move_tile_in_atlas(drag_current_tile, coords)) {
+ if (drag_current_tile != coords && tile_set_atlas_source->has_room_for_tile(coords, tile_set_atlas_source->get_tile_size_in_atlas(drag_current_tile), tile_set_atlas_source->get_tile_animation_columns(drag_current_tile), tile_set_atlas_source->get_tile_animation_separation(drag_current_tile), tile_set_atlas_source->get_tile_animation_frames_count(drag_current_tile), drag_current_tile)) {
tile_set_atlas_source->move_tile_in_atlas(drag_current_tile, coords);
selection.clear();
selection.insert({ coords, 0 });
@@ -948,7 +1024,7 @@ void TileSetAtlasSourceEditor::_tile_atlas_control_gui_input(const Ref<InputEven
new_rect.set_end(Vector2i(new_rect.get_end().x, MAX(new_base_tiles_coords.y, old_rect.position.y + 1)));
}
- if (tile_set_atlas_source->can_move_tile_in_atlas(drag_current_tile, new_rect.position, new_rect.size)) {
+ if (tile_set_atlas_source->has_room_for_tile(new_rect.position, new_rect.size, tile_set_atlas_source->get_tile_animation_columns(drag_current_tile), tile_set_atlas_source->get_tile_animation_separation(drag_current_tile), tile_set_atlas_source->get_tile_animation_frames_count(drag_current_tile), drag_current_tile)) {
tile_set_atlas_source->move_tile_in_atlas(drag_current_tile, new_rect.position, new_rect.size);
selection.clear();
selection.insert({ new_rect.position, 0 });
@@ -1056,11 +1132,11 @@ void TileSetAtlasSourceEditor::_tile_atlas_control_gui_input(const Ref<InputEven
CursorShape cursor_shape = CURSOR_ARROW;
bool can_grow[4];
for (int i = 0; i < 4; i++) {
- can_grow[i] = tile_set_atlas_source->can_move_tile_in_atlas(selected.tile, selected.tile + directions[i]);
+ can_grow[i] = tile_set_atlas_source->has_room_for_tile(selected.tile + directions[i], tile_set_atlas_source->get_tile_size_in_atlas(selected.tile), tile_set_atlas_source->get_tile_animation_columns(selected.tile), tile_set_atlas_source->get_tile_animation_separation(selected.tile), tile_set_atlas_source->get_tile_animation_frames_count(selected.tile), selected.tile);
can_grow[i] |= (i % 2 == 0) ? size_in_atlas.y > 1 : size_in_atlas.x > 1;
}
for (int i = 0; i < 4; i++) {
- Vector2 pos = rect.position + Vector2(rect.size.x, rect.size.y) * coords[i];
+ Vector2 pos = rect.position + rect.size * coords[i];
if (can_grow[i] && can_grow[(i + 3) % 4] && Rect2(pos, zoomed_size).has_point(mouse_local_pos)) {
drag_type = (DragType)((int)DRAG_TYPE_RESIZE_TOP_LEFT + i * 2);
drag_start_mouse_pos = mouse_local_pos;
@@ -1069,7 +1145,7 @@ void TileSetAtlasSourceEditor::_tile_atlas_control_gui_input(const Ref<InputEven
drag_start_tile_shape = Rect2i(selected.tile, tile_set_atlas_source->get_tile_size_in_atlas(selected.tile));
cursor_shape = (i % 2) ? CURSOR_BDIAGSIZE : CURSOR_FDIAGSIZE;
}
- Vector2 next_pos = rect.position + Vector2(rect.size.x, rect.size.y) * coords[(i + 1) % 4];
+ Vector2 next_pos = rect.position + rect.size * coords[(i + 1) % 4];
if (can_grow[i] && Rect2((pos + next_pos) / 2.0, zoomed_size).has_point(mouse_local_pos)) {
drag_type = (DragType)((int)DRAG_TYPE_RESIZE_TOP + i * 2);
drag_start_mouse_pos = mouse_local_pos;
@@ -1511,37 +1587,45 @@ void TileSetAtlasSourceEditor::_tile_atlas_control_draw() {
TileSelection selected = E->get();
if (selected.alternative == 0) {
// Draw the rect.
- Rect2 region = tile_set_atlas_source->get_tile_texture_region(selected.tile);
- tile_atlas_control->draw_rect(region, selection_color, false);
+ for (int frame = 0; frame < tile_set_atlas_source->get_tile_animation_frames_count(selected.tile); frame++) {
+ Color color = selection_color;
+ if (frame > 0) {
+ color.a *= 0.3;
+ }
+ Rect2 region = tile_set_atlas_source->get_tile_texture_region(selected.tile, frame);
+ tile_atlas_control->draw_rect(region, color, false);
+ }
}
}
if (selection.size() == 1) {
// Draw the resize handles (only when it's possible to expand).
TileSelection selected = selection.front()->get();
- Vector2i size_in_atlas = tile_set_atlas_source->get_tile_size_in_atlas(selected.tile);
- Size2 zoomed_size = resize_handle->get_size() / tile_atlas_view->get_zoom();
- Rect2 region = tile_set_atlas_source->get_tile_texture_region(selected.tile);
- Rect2 rect = region.grow_individual(zoomed_size.x, zoomed_size.y, 0, 0);
- Vector2i coords[] = { Vector2i(0, 0), Vector2i(1, 0), Vector2i(1, 1), Vector2i(0, 1) };
- Vector2i directions[] = { Vector2i(0, -1), Vector2i(1, 0), Vector2i(0, 1), Vector2i(-1, 0) };
- bool can_grow[4];
- for (int i = 0; i < 4; i++) {
- can_grow[i] = tile_set_atlas_source->can_move_tile_in_atlas(selected.tile, selected.tile + directions[i]);
- can_grow[i] |= (i % 2 == 0) ? size_in_atlas.y > 1 : size_in_atlas.x > 1;
- }
- for (int i = 0; i < 4; i++) {
- Vector2 pos = rect.position + Vector2(rect.size.x, rect.size.y) * coords[i];
- if (can_grow[i] && can_grow[(i + 3) % 4]) {
- tile_atlas_control->draw_texture_rect(resize_handle, Rect2(pos, zoomed_size), false);
- } else {
- tile_atlas_control->draw_texture_rect(resize_handle_disabled, Rect2(pos, zoomed_size), false);
+ if (selected.alternative == 0) {
+ Vector2i size_in_atlas = tile_set_atlas_source->get_tile_size_in_atlas(selected.tile);
+ Size2 zoomed_size = resize_handle->get_size() / tile_atlas_view->get_zoom();
+ Rect2 region = tile_set_atlas_source->get_tile_texture_region(selected.tile);
+ Rect2 rect = region.grow_individual(zoomed_size.x, zoomed_size.y, 0, 0);
+ Vector2i coords[] = { Vector2i(0, 0), Vector2i(1, 0), Vector2i(1, 1), Vector2i(0, 1) };
+ Vector2i directions[] = { Vector2i(0, -1), Vector2i(1, 0), Vector2i(0, 1), Vector2i(-1, 0) };
+ bool can_grow[4];
+ for (int i = 0; i < 4; i++) {
+ can_grow[i] = tile_set_atlas_source->has_room_for_tile(selected.tile + directions[i], tile_set_atlas_source->get_tile_size_in_atlas(selected.tile), tile_set_atlas_source->get_tile_animation_columns(selected.tile), tile_set_atlas_source->get_tile_animation_separation(selected.tile), tile_set_atlas_source->get_tile_animation_frames_count(selected.tile), selected.tile);
+ can_grow[i] |= (i % 2 == 0) ? size_in_atlas.y > 1 : size_in_atlas.x > 1;
}
- Vector2 next_pos = rect.position + Vector2(rect.size.x, rect.size.y) * coords[(i + 1) % 4];
- if (can_grow[i]) {
- tile_atlas_control->draw_texture_rect(resize_handle, Rect2((pos + next_pos) / 2.0, zoomed_size), false);
- } else {
- tile_atlas_control->draw_texture_rect(resize_handle_disabled, Rect2((pos + next_pos) / 2.0, zoomed_size), false);
+ for (int i = 0; i < 4; i++) {
+ Vector2 pos = rect.position + rect.size * coords[i];
+ if (can_grow[i] && can_grow[(i + 3) % 4]) {
+ tile_atlas_control->draw_texture_rect(resize_handle, Rect2(pos, zoomed_size), false);
+ } else {
+ tile_atlas_control->draw_texture_rect(resize_handle_disabled, Rect2(pos, zoomed_size), false);
+ }
+ Vector2 next_pos = rect.position + rect.size * coords[(i + 1) % 4];
+ if (can_grow[i]) {
+ tile_atlas_control->draw_texture_rect(resize_handle, Rect2((pos + next_pos) / 2.0, zoomed_size), false);
+ } else {
+ tile_atlas_control->draw_texture_rect(resize_handle_disabled, Rect2((pos + next_pos) / 2.0, zoomed_size), false);
+ }
}
}
}
@@ -1550,7 +1634,9 @@ void TileSetAtlasSourceEditor::_tile_atlas_control_draw() {
if (drag_type == DRAG_TYPE_REMOVE_TILES) {
// Draw the tiles to be removed.
for (Set<Vector2i>::Element *E = drag_modified_tiles.front(); E; E = E->next()) {
- tile_atlas_control->draw_rect(tile_set_atlas_source->get_tile_texture_region(E->get()), Color(0.0, 0.0, 0.0), false);
+ for (int frame = 0; frame < tile_set_atlas_source->get_tile_animation_frames_count(E->get()); frame++) {
+ tile_atlas_control->draw_rect(tile_set_atlas_source->get_tile_texture_region(E->get(), frame), Color(0.0, 0.0, 0.0), false);
+ }
}
} else if (drag_type == DRAG_TYPE_RECT_SELECT || drag_type == DRAG_TYPE_REMOVE_TILES_USING_RECT) {
// Draw tiles to be removed.
@@ -1617,7 +1703,13 @@ void TileSetAtlasSourceEditor::_tile_atlas_control_draw() {
Vector2i hovered_tile = tile_set_atlas_source->get_tile_at_coords(hovered_base_tile_coords);
if (hovered_tile != TileSetSource::INVALID_ATLAS_COORDS) {
// Draw existing hovered tile.
- tile_atlas_control->draw_rect(tile_set_atlas_source->get_tile_texture_region(hovered_tile), Color(1.0, 1.0, 1.0), false);
+ for (int frame = 0; frame < tile_set_atlas_source->get_tile_animation_frames_count(hovered_tile); frame++) {
+ Color color = Color(1.0, 1.0, 1.0);
+ if (frame > 0) {
+ color.a *= 0.3;
+ }
+ tile_atlas_control->draw_rect(tile_set_atlas_source->get_tile_texture_region(hovered_tile, frame), color, false);
+ }
} else {
// Draw empty tile, only in add/remove tiles mode.
if (tools_button_group->get_pressed_button() == tool_setup_atlas_source_button) {
@@ -1638,7 +1730,7 @@ void TileSetAtlasSourceEditor::_tile_atlas_control_unscaled_draw() {
for (int i = 0; i < tile_set_atlas_source->get_tiles_count(); i++) {
Vector2i coords = tile_set_atlas_source->get_tile_id(i);
Rect2i texture_region = tile_set_atlas_source->get_tile_texture_region(coords);
- Vector2i position = (texture_region.position + texture_region.get_end()) / 2 + tile_set_atlas_source->get_tile_effective_texture_offset(coords, 0);
+ Vector2i position = texture_region.get_center() + tile_set_atlas_source->get_tile_effective_texture_offset(coords, 0);
Transform2D xform = tile_atlas_control->get_parent_control()->get_transform();
xform.translate(position);
@@ -1661,7 +1753,7 @@ void TileSetAtlasSourceEditor::_tile_atlas_control_unscaled_draw() {
continue;
}
Rect2i texture_region = tile_set_atlas_source->get_tile_texture_region(E->get().tile);
- Vector2i position = (texture_region.position + texture_region.get_end()) / 2 + tile_set_atlas_source->get_tile_effective_texture_offset(E->get().tile, 0);
+ Vector2i position = texture_region.get_center() + tile_set_atlas_source->get_tile_effective_texture_offset(E->get().tile, 0);
Transform2D xform = tile_atlas_control->get_parent_control()->get_transform();
xform.translate(position);
@@ -1805,7 +1897,7 @@ void TileSetAtlasSourceEditor::_tile_alternatives_control_unscaled_draw() {
continue;
}
Rect2i rect = tile_atlas_view->get_alternative_tile_rect(coords, alternative_tile);
- Vector2 position = (rect.get_position() + rect.get_end()) / 2;
+ Vector2 position = rect.get_center();
Transform2D xform = alternative_tiles_control->get_parent_control()->get_transform();
xform.translate(position);
@@ -1829,7 +1921,7 @@ void TileSetAtlasSourceEditor::_tile_alternatives_control_unscaled_draw() {
continue;
}
Rect2i rect = tile_atlas_view->get_alternative_tile_rect(E->get().tile, E->get().alternative);
- Vector2 position = (rect.get_position() + rect.get_end()) / 2;
+ Vector2 position = rect.get_center();
Transform2D xform = alternative_tiles_control->get_parent_control()->get_transform();
xform.translate(position);
@@ -1854,6 +1946,11 @@ void TileSetAtlasSourceEditor::_tile_set_atlas_source_changed() {
tile_set_atlas_source_changed_needs_update = true;
}
+void TileSetAtlasSourceEditor::_tile_proxy_object_changed(String p_what) {
+ tile_set_atlas_source_changed_needs_update = false; // Avoid updating too many things.
+ _update_atlas_view();
+}
+
void TileSetAtlasSourceEditor::_atlas_source_proxy_object_changed(String p_what) {
if (p_what == "texture" && !atlas_source_proxy_object->get("texture").is_null()) {
confirm_auto_create_tiles->popup_centered();
@@ -2114,7 +2211,7 @@ TileSetAtlasSourceEditor::TileSetAtlasSourceEditor() {
middle_vbox_container->add_child(tile_inspector_label);
tile_proxy_object = memnew(AtlasTileProxyObject(this));
- tile_proxy_object->connect("changed", callable_mp(this, &TileSetAtlasSourceEditor::_update_atlas_view).unbind(1));
+ tile_proxy_object->connect("changed", callable_mp(this, &TileSetAtlasSourceEditor::_tile_proxy_object_changed));
tile_inspector = memnew(EditorInspector);
tile_inspector->set_undo_redo(undo_redo);
diff --git a/editor/plugins/tiles/tile_set_atlas_source_editor.h b/editor/plugins/tiles/tile_set_atlas_source_editor.h
index 501416c340..6448b55feb 100644
--- a/editor/plugins/tiles/tile_set_atlas_source_editor.h
+++ b/editor/plugins/tiles/tile_set_atlas_source_editor.h
@@ -264,6 +264,7 @@ private:
AcceptDialog *confirm_auto_create_tiles;
void _tile_set_atlas_source_changed();
+ void _tile_proxy_object_changed(String p_what);
void _atlas_source_proxy_object_changed(String p_what);
void _undo_redo_inspector_callback(Object *p_undo_redo, Object *p_edited, String p_property, Variant p_new_value);
diff --git a/editor/plugins/tiles/tiles_editor_plugin.cpp b/editor/plugins/tiles/tiles_editor_plugin.cpp
index 79b869b511..f51f4625a9 100644
--- a/editor/plugins/tiles/tiles_editor_plugin.cpp
+++ b/editor/plugins/tiles/tiles_editor_plugin.cpp
@@ -146,7 +146,7 @@ void TilesEditor::synchronize_atlas_view(Object *p_current) {
ERR_FAIL_COND(!tile_atlas_view);
if (tile_atlas_view->is_visible_in_tree()) {
- tile_atlas_view->set_transform(atlas_view_zoom, Vector2(atlas_view_scroll.x, atlas_view_scroll.y));
+ tile_atlas_view->set_transform(atlas_view_zoom, atlas_view_scroll);
}
}
diff --git a/editor/plugins/visual_shader_editor_plugin.cpp b/editor/plugins/visual_shader_editor_plugin.cpp
index aaa085675c..27f30479cf 100644
--- a/editor/plugins/visual_shader_editor_plugin.cpp
+++ b/editor/plugins/visual_shader_editor_plugin.cpp
@@ -1945,7 +1945,7 @@ void VisualShaderEditor::_set_node_size(int p_type, int p_node, const Vector2 &p
box_size.x -= 28 * EDSCALE;
box_size.y -= text_box->get_offset(SIDE_TOP);
box_size.y -= 28 * EDSCALE;
- text_box->set_custom_minimum_size(Size2(box_size.x, box_size.y));
+ text_box->set_custom_minimum_size(box_size);
text_box->set_size(Size2(1, 1));
}
}
diff --git a/editor/scene_tree_dock.cpp b/editor/scene_tree_dock.cpp
index 4bc0905163..5ce88949ef 100644
--- a/editor/scene_tree_dock.cpp
+++ b/editor/scene_tree_dock.cpp
@@ -848,7 +848,7 @@ void SceneTreeDock::_tool_selected(int p_tool, bool p_confirm_override) {
break;
}
Ref<MultiNodeEdit> mne = memnew(MultiNodeEdit);
- for (const Map<Node *, Object *>::Element *E = EditorNode::get_singleton()->get_editor_selection()->get_selection().front(); E; E = E->next()) {
+ for (const Map<Node *, Object *>::Element *E = editor_selection->get_selection().front(); E; E = E->next()) {
mne->add_node(root->get_path_to(E->key()));
}
@@ -2101,11 +2101,11 @@ void SceneTreeDock::_update_script_button() {
if (!profile_allow_script_editing) {
button_create_script->hide();
button_detach_script->hide();
- } else if (EditorNode::get_singleton()->get_editor_selection()->get_selection().size() == 0) {
+ } else if (editor_selection->get_selection().size() == 0) {
button_create_script->hide();
button_detach_script->hide();
- } else if (EditorNode::get_singleton()->get_editor_selection()->get_selection().size() == 1) {
- Node *n = EditorNode::get_singleton()->get_editor_selection()->get_selected_node_list()[0];
+ } else if (editor_selection->get_selection().size() == 1) {
+ Node *n = editor_selection->get_selected_node_list()[0];
if (n->get_script().is_null()) {
button_create_script->show();
button_detach_script->hide();
@@ -2128,10 +2128,12 @@ void SceneTreeDock::_update_script_button() {
}
void SceneTreeDock::_selection_changed() {
- int selection_size = EditorNode::get_singleton()->get_editor_selection()->get_selection().size();
+ int selection_size = editor_selection->get_selection().size();
if (selection_size > 1) {
//automatically turn on multi-edit
_tool_selected(TOOL_MULTI_EDIT);
+ } else if (selection_size == 1) {
+ editor->push_item(editor_selection->get_selection().front()->key());
} else if (selection_size == 0) {
editor->push_item(nullptr);
}
diff --git a/editor/scene_tree_editor.cpp b/editor/scene_tree_editor.cpp
index d54bf73028..3de87d9df7 100644
--- a/editor/scene_tree_editor.cpp
+++ b/editor/scene_tree_editor.cpp
@@ -522,7 +522,7 @@ void SceneTreeEditor::_node_removed(Node *p_node) {
if (p_node == selected) {
selected = nullptr;
- emit_signal("node_selected");
+ emit_signal(SNAME("node_selected"));
}
}
@@ -630,7 +630,7 @@ void SceneTreeEditor::_selected_changed() {
selected = get_node(np);
blocked++;
- emit_signal("node_selected");
+ emit_signal(SNAME("node_selected"));
blocked--;
}
@@ -757,7 +757,7 @@ void SceneTreeEditor::set_selected(Node *p_node, bool p_emit_selected) {
}
if (p_emit_selected) {
- emit_signal("node_selected");
+ emit_signal(SNAME("node_selected"));
}
}
diff --git a/editor/settings_config_dialog.cpp b/editor/settings_config_dialog.cpp
index 649caf5373..f024589ef1 100644
--- a/editor/settings_config_dialog.cpp
+++ b/editor/settings_config_dialog.cpp
@@ -268,7 +268,7 @@ void EditorSettingsDialog::_update_shortcuts() {
Array events; // Need to get the list of events into an array so it can be set as metadata on the item.
Vector<String> event_strings;
- List<Ref<InputEvent>> all_default_events = InputMap::get_singleton()->get_builtins().find(action_name).value();
+ List<Ref<InputEvent>> all_default_events = InputMap::get_singleton()->get_builtins_with_feature_overrides_applied().find(action_name).value();
List<Ref<InputEventKey>> key_default_events;
// Remove all non-key events from the defaults. Only check keys, since we are in the editor.
for (List<Ref<InputEvent>>::Element *I = all_default_events.front(); I; I = I->next()) {
@@ -404,7 +404,7 @@ void EditorSettingsDialog::_shortcut_button_pressed(Object *p_item, int p_column
switch (button_idx) {
case SHORTCUT_REVERT: {
Array events;
- List<Ref<InputEvent>> defaults = InputMap::get_singleton()->get_builtins()[current_action];
+ List<Ref<InputEvent>> defaults = InputMap::get_singleton()->get_builtins_with_feature_overrides_applied()[current_action];
// Convert the list to an array, and only keep key events as this is for the editor.
for (const Ref<InputEvent> &k : defaults) {
diff --git a/editor/shader_create_dialog.cpp b/editor/shader_create_dialog.cpp
index 7e6f154fab..6bbefb3bb2 100644
--- a/editor/shader_create_dialog.cpp
+++ b/editor/shader_create_dialog.cpp
@@ -190,7 +190,7 @@ void ShaderCreateDialog::_create_new() {
}
}
- emit_signal("shader_created", shader);
+ emit_signal(SNAME("shader_created"), shader);
hide();
}
@@ -203,7 +203,7 @@ void ShaderCreateDialog::_load_exist() {
return;
}
- emit_signal("shader_created", p_shader);
+ emit_signal(SNAME("shader_created"), p_shader);
hide();
}
@@ -404,18 +404,18 @@ String ShaderCreateDialog::_validate_path(const String &p_path) {
void ShaderCreateDialog::_msg_script_valid(bool valid, const String &p_msg) {
error_label->set_text("- " + p_msg);
if (valid) {
- error_label->add_theme_color_override("font_color", gc->get_theme_color("success_color", "Editor"));
+ error_label->add_theme_color_override("font_color", gc->get_theme_color(SNAME("success_color"), SNAME("Editor")));
} else {
- error_label->add_theme_color_override("font_color", gc->get_theme_color("error_color", "Editor"));
+ error_label->add_theme_color_override("font_color", gc->get_theme_color(SNAME("error_color"), SNAME("Editor")));
}
}
void ShaderCreateDialog::_msg_path_valid(bool valid, const String &p_msg) {
path_error_label->set_text("- " + p_msg);
if (valid) {
- path_error_label->add_theme_color_override("font_color", gc->get_theme_color("success_color", "Editor"));
+ path_error_label->add_theme_color_override("font_color", gc->get_theme_color(SNAME("success_color"), SNAME("Editor")));
} else {
- path_error_label->add_theme_color_override("font_color", gc->get_theme_color("error_color", "Editor"));
+ path_error_label->add_theme_color_override("font_color", gc->get_theme_color(SNAME("error_color"), SNAME("Editor")));
}
}
diff --git a/editor/translations/af.po b/editor/translations/af.po
index 70e016ee65..223a1b1c45 100644
--- a/editor/translations/af.po
+++ b/editor/translations/af.po
@@ -1057,7 +1057,7 @@ msgstr ""
msgid "Dependencies"
msgstr "Afhanklikhede"
-#: editor/dependency_editor.cpp
+#: editor/dependency_editor.cpp editor/editor_resource_picker.cpp
msgid "Resource"
msgstr "Hulpbron"
@@ -1720,14 +1720,14 @@ msgid ""
"Enabled'."
msgstr ""
-#: editor/editor_export.cpp platform/android/export/export.cpp
+#: editor/editor_export.cpp platform/android/export/export_plugin.cpp
#: platform/iphone/export/export.cpp platform/javascript/export/export.cpp
#: platform/osx/export/export.cpp platform/uwp/export/export.cpp
#, fuzzy
msgid "Custom debug template not found."
msgstr "Sjabloon lêer nie gevind nie:\n"
-#: editor/editor_export.cpp platform/android/export/export.cpp
+#: editor/editor_export.cpp platform/android/export/export_plugin.cpp
#: platform/iphone/export/export.cpp platform/javascript/export/export.cpp
#: platform/osx/export/export.cpp platform/uwp/export/export.cpp
msgid "Custom release template not found."
@@ -2129,7 +2129,7 @@ msgstr ""
msgid "(Re)Importing Assets"
msgstr "(Her)Invoer van Bates"
-#: editor/editor_help.cpp editor/plugins/spatial_editor_plugin.cpp
+#: editor/editor_help.cpp
msgid "Top"
msgstr "Bo"
@@ -2632,6 +2632,30 @@ msgid "Current scene not saved. Open anyway?"
msgstr ""
#: editor/editor_node.cpp
+msgid "Can't undo while mouse buttons are pressed."
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "Nothing to undo."
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "Undo: %s"
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "Can't redo while mouse buttons are pressed."
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "Nothing to redo."
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "Redo: %s"
+msgstr ""
+
+#: editor/editor_node.cpp
msgid "Can't reload a scene that was never saved."
msgstr ""
@@ -3271,6 +3295,11 @@ msgid "Merge With Existing"
msgstr ""
#: editor/editor_node.cpp
+#, fuzzy
+msgid "Apply MeshInstance Transforms"
+msgstr "Anim Verander Transformasie"
+
+#: editor/editor_node.cpp
msgid "Open & Run a Script"
msgstr ""
@@ -3519,6 +3548,10 @@ msgid ""
"property (%s)."
msgstr ""
+#: editor/editor_resource_picker.cpp
+msgid "Quick Load"
+msgstr ""
+
#: editor/editor_resource_picker.cpp editor/property_editor.cpp
msgid "Make Unique"
msgstr ""
@@ -5675,6 +5708,17 @@ msgid "Move CanvasItem \"%s\" to (%d, %d)"
msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Locked"
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Grouped"
+msgstr "Verwyder Seleksie"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
msgid ""
"Children of containers have their anchors and margins values overridden by "
"their parent."
@@ -6614,7 +6658,11 @@ msgid "Remove Selected Item"
msgstr ""
#: editor/plugins/mesh_library_editor_plugin.cpp
-msgid "Import from Scene"
+msgid "Import from Scene (Ignore Transforms)"
+msgstr ""
+
+#: editor/plugins/mesh_library_editor_plugin.cpp
+msgid "Import from Scene (Apply Transforms)"
msgstr ""
#: editor/plugins/mesh_library_editor_plugin.cpp
@@ -7211,6 +7259,16 @@ msgstr "Skep"
msgid "Flip Portal"
msgstr ""
+#: editor/plugins/room_manager_editor_plugin.cpp
+#, fuzzy
+msgid "Occluder Set Transform"
+msgstr "Anim Verander Transform"
+
+#: editor/plugins/room_manager_editor_plugin.cpp
+#, fuzzy
+msgid "Center Node"
+msgstr "Skrap"
+
#: editor/plugins/root_motion_editor_plugin.cpp
msgid "AnimationTree has no path set to an AnimationPlayer"
msgstr ""
@@ -7739,11 +7797,12 @@ msgid "Skeleton2D"
msgstr "EnkelHouer"
#: editor/plugins/skeleton_2d_editor_plugin.cpp
-msgid "Make Rest Pose (From Bones)"
-msgstr ""
+#, fuzzy
+msgid "Reset to Rest Pose"
+msgstr "Laai Verstek"
#: editor/plugins/skeleton_2d_editor_plugin.cpp
-msgid "Set Bones to Rest Pose"
+msgid "Overwrite Rest Pose"
msgstr ""
#: editor/plugins/skeleton_editor_plugin.cpp
@@ -7773,6 +7832,60 @@ msgid "Perspective"
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Top Orthogonal"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Top Perspective"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Bottom Orthogonal"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Bottom Perspective"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Left Orthogonal"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Right Perspective"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Right Orthogonal"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Front Orthogonal"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Front Perspective"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Rear Orthogonal"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Rear Perspective"
+msgstr ""
+
+#. TRANSLATORS: This will be appended to the view name when Auto Orthogonal is enabled.
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid " [auto]"
+msgstr ""
+
+#. TRANSLATORS: This will be appended to the view name when Portal Occulusion is enabled.
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid " [portals active]"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
msgid "Transform Aborted."
msgstr ""
@@ -7884,42 +7997,22 @@ msgid "Bottom View."
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
-msgid "Bottom"
-msgstr ""
-
-#: editor/plugins/spatial_editor_plugin.cpp
msgid "Left View."
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
-msgid "Left"
-msgstr ""
-
-#: editor/plugins/spatial_editor_plugin.cpp
msgid "Right View."
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
-msgid "Right"
-msgstr ""
-
-#: editor/plugins/spatial_editor_plugin.cpp
msgid "Front View."
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
-msgid "Front"
-msgstr ""
-
-#: editor/plugins/spatial_editor_plugin.cpp
msgid "Rear View."
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
-msgid "Rear"
-msgstr ""
-
-#: editor/plugins/spatial_editor_plugin.cpp
msgid "Align Transform with View"
msgstr ""
@@ -8184,6 +8277,11 @@ msgid "View Portal Culling"
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "View Occlusion Culling"
+msgstr "Skep Intekening"
+
+#: editor/plugins/spatial_editor_plugin.cpp
#: modules/gridmap/grid_map_editor_plugin.cpp
msgid "Settings..."
msgstr ""
@@ -8249,7 +8347,7 @@ msgid "Post"
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
-msgid "Nameless gizmo"
+msgid "Unnamed Gizmo"
msgstr ""
#: editor/plugins/sprite_editor_plugin.cpp
@@ -12344,6 +12442,14 @@ msgstr ""
msgid "Set Portal Point Position"
msgstr ""
+#: editor/spatial_editor_gizmos.cpp
+msgid "Set Occluder Sphere Radius"
+msgstr ""
+
+#: editor/spatial_editor_gizmos.cpp
+msgid "Set Occluder Sphere Position"
+msgstr ""
+
#: modules/csg/csg_gizmos.cpp
msgid "Change Cylinder Radius"
msgstr ""
@@ -12633,6 +12739,11 @@ msgstr ""
msgid "Class name can't be a reserved keyword"
msgstr ""
+#: modules/mono/csharp_script.cpp
+#, fuzzy
+msgid "Build Solution"
+msgstr "Alle Seleksie"
+
#: modules/mono/mono_gd/gd_mono_utils.cpp
msgid "End of inner exception stack trace"
msgstr ""
@@ -13123,164 +13234,153 @@ msgstr "Deursoek Hulp"
msgid "Get %s"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Package name is missing."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Package segments must be of non-zero length."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "The character '%s' is not allowed in Android application package names."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "A digit cannot be the first character in a package segment."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "The character '%s' cannot be the first character in a package segment."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "The package must have at least one '.' separator."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Select device from the list"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Running on %s"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Exporting APK..."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
#, fuzzy
msgid "Uninstalling..."
msgstr "Installeer"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
#, fuzzy
msgid "Installing to device, please wait..."
msgstr "Laai"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
#, fuzzy
msgid "Could not install to device: %s"
msgstr "Kon nie vouer skep nie."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Running on device..."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
#, fuzzy
msgid "Could not execute on device."
msgstr "Kon nie vouer skep nie."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Unable to find the 'apksigner' tool."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Android build template not installed in the project. Install it from the "
"Project menu."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Either Debug Keystore, Debug User AND Debug Password settings must be "
"configured OR none of them."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Debug keystore not configured in the Editor Settings nor in the preset."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Either Release Keystore, Release User AND Release Password settings must be "
"configured OR none of them."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Release keystore incorrectly configured in the export preset."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "A valid Android SDK path is required in Editor Settings."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Invalid Android SDK path in Editor Settings."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Missing 'platform-tools' directory!"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Unable to find Android SDK platform-tools' adb command."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Please check in the Android SDK directory specified in Editor Settings."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Missing 'build-tools' directory!"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Unable to find Android SDK build-tools' apksigner command."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Invalid public key for APK expansion."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
#, fuzzy
msgid "Invalid package name:"
msgstr "Ongeldige naam."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Invalid \"GodotPaymentV3\" module included in the \"android/modules\" "
"project setting (changed in Godot 3.2.2).\n"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "\"Use Custom Build\" must be enabled to use the plugins."
msgstr ""
-#: platform/android/export/export.cpp
-msgid ""
-"\"Degrees Of Freedom\" is only valid when \"Xr Mode\" is \"Oculus Mobile VR"
-"\"."
-msgstr ""
-
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"\"Hand Tracking\" is only valid when \"Xr Mode\" is \"Oculus Mobile VR\"."
msgstr ""
-#: platform/android/export/export.cpp
-msgid ""
-"\"Focus Awareness\" is only valid when \"Xr Mode\" is \"Oculus Mobile VR\"."
-msgstr ""
-
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "\"Export AAB\" is only valid when \"Use Custom Build\" is enabled."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"'apksigner' could not be found.\n"
"Please check the command is available in the Android SDK build-tools "
@@ -13288,58 +13388,58 @@ msgid ""
"The resulting %s is unsigned."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Signing debug %s..."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Signing release %s..."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
#, fuzzy
msgid "Could not find keystore, unable to export."
msgstr "Kon nie vouer skep nie."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "'apksigner' returned with error #%d"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Verifying %s..."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "'apksigner' verification of %s failed."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Exporting for Android"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Invalid filename! Android App Bundle requires the *.aab extension."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "APK Expansion not compatible with Android App Bundle."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Invalid filename! Android APK requires the *.apk extension."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Unsupported export format!\n"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Trying to build from a custom built template, but no version info for it "
"exists. Please reinstall from the 'Project' menu."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Android build version mismatch:\n"
" Template installed: %s\n"
@@ -13347,57 +13447,57 @@ msgid ""
"Please reinstall Android build template from 'Project' menu."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Unable to overwrite res://android/build/res/*.xml files with project name"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Could not export project files to gradle project\n"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
#, fuzzy
msgid "Could not write expansion package file!"
msgstr "Kon nie vouer skep nie."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Building Android Project (gradle)"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Building of Android project failed, check output for the error.\n"
"Alternatively visit docs.godotengine.org for Android build documentation."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Moving output"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Unable to copy and rename export file, check gradle project directory for "
"outputs."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
#, fuzzy
msgid "Package not found: %s"
msgstr "Animasie lengte (in sekondes)."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Creating APK..."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
#, fuzzy
msgid ""
"Could not find template APK to export:\n"
"%s"
msgstr "Kon nie vouer skep nie."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Missing libraries in the export template for the selected architectures: "
"%s.\n"
@@ -13405,21 +13505,21 @@ msgid ""
"architectures in the export preset."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
#, fuzzy
msgid "Adding files..."
msgstr "Vind"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
#, fuzzy
msgid "Could not export project files"
msgstr "Kon nie vouer skep nie."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Aligning APK..."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Could not unzip temporary unaligned APK."
msgstr ""
@@ -13883,6 +13983,14 @@ msgid ""
"It only provides navigation data."
msgstr ""
+#: scene/3d/occluder.cpp
+msgid "No shape is set."
+msgstr ""
+
+#: scene/3d/occluder.cpp
+msgid "Only uniform scales are supported."
+msgstr ""
+
#: scene/3d/particles.cpp
msgid ""
"GPU-based particles are not supported by the GLES2 video driver.\n"
@@ -14176,6 +14284,14 @@ msgstr "Moet 'n geldige uitbreiding gebruik."
msgid "Enable grid minimap."
msgstr ""
+#: scene/gui/nine_patch_rect.cpp
+msgid ""
+"The Tile and Tile Fit options for Axis Stretch properties are only effective "
+"when using the GLES3 rendering backend.\n"
+"The GLES2 backend is currently in use, so these modes will act like Stretch "
+"instead."
+msgstr ""
+
#: scene/gui/popup.cpp
msgid ""
"Popups will hide by default unless you call popup() or any of the popup*() "
@@ -14216,6 +14332,10 @@ msgstr ""
msgid "Viewport size must be greater than 0 to render anything."
msgstr ""
+#: scene/resources/occluder_shape.cpp
+msgid "OccluderShapeSphere Set Spheres"
+msgstr ""
+
#: scene/resources/visual_shader_nodes.cpp
msgid ""
"The sampler port is connected but not used. Consider changing the source to "
diff --git a/editor/translations/ar.po b/editor/translations/ar.po
index eb11aa27b6..16cc1fd0a7 100644
--- a/editor/translations/ar.po
+++ b/editor/translations/ar.po
@@ -34,7 +34,7 @@
# Ahmed Shahwan <dev.ahmed.shahwan@gmail.com>, 2019.
# hshw <shw@tutanota.com>, 2020.
# Youssef Harmal <the.coder.crab@gmail.com>, 2020.
-# Nabeel20 <nabeelandnizam@gmail.com>, 2020.
+# Nabeel20 <nabeelandnizam@gmail.com>, 2020, 2021.
# merouche djallal <kbordora@gmail.com>, 2020.
# Airbus5717 <Abdussamadf350@gmail.com>, 2020.
# tamsamani mohamed <tamsmoha@gmail.com>, 2020.
@@ -54,12 +54,14 @@
# HASSAN GAMER - حسن جيمر <gamerhassan55@gmail.com>, 2021.
# abubakrAlsaab <madeinsudan19@gmail.com>, 2021.
# Hafid Talbi <atalbiie@gmail.com>, 2021.
+# Hareth Mohammed <harethpy@gmail.com>, 2021.
+# Mohammed Mubarak <modymu9@gmail.com>, 2021.
msgid ""
msgstr ""
"Project-Id-Version: Godot Engine editor\n"
"POT-Creation-Date: \n"
-"PO-Revision-Date: 2021-07-29 02:33+0000\n"
-"Last-Translator: Hafid Talbi <atalbiie@gmail.com>\n"
+"PO-Revision-Date: 2021-09-19 11:14+0000\n"
+"Last-Translator: Mohammed Mubarak <modymu9@gmail.com>\n"
"Language-Team: Arabic <https://hosted.weblate.org/projects/godot-engine/"
"godot/ar/>\n"
"Language: ar\n"
@@ -68,7 +70,7 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=6; plural=n==0 ? 0 : n==1 ? 1 : n==2 ? 2 : n%100>=3 "
"&& n%100<=10 ? 3 : n%100>=11 ? 4 : 5;\n"
-"X-Generator: Weblate 4.7.2-dev\n"
+"X-Generator: Weblate 4.9-dev\n"
#: core/math/expression.cpp modules/gdscript/gdscript_functions.cpp
#: modules/visual_script/visual_script_builtin_funcs.cpp
@@ -416,13 +418,11 @@ msgstr "إدخال حركة"
#. TRANSLATORS: This describes the target of new animation track, will be inserted into another string.
#: editor/animation_track_editor.cpp
-#, fuzzy
msgid "node '%s'"
-msgstr "لا يمكن ÙØªØ­ '%s'."
+msgstr "العقدة (node) '%s'"
#. TRANSLATORS: This describes the target of new animation track, will be inserted into another string.
#: editor/animation_track_editor.cpp
-#, fuzzy
msgid "animation"
msgstr "رسوم متحركة"
@@ -432,9 +432,8 @@ msgstr "اللأعب المتحرك لا يستطيع تحريك Ù†ÙØ³Ù‡ ,ÙÙ‚Ø
#. TRANSLATORS: This describes the target of new animation track, will be inserted into another string.
#: editor/animation_track_editor.cpp
-#, fuzzy
msgid "property '%s'"
-msgstr "لا خاصية '%s' موجودة."
+msgstr "الخاصية '%s'"
#: editor/animation_track_editor.cpp
msgid "Anim Create & Insert"
@@ -662,9 +661,8 @@ msgid "Use Bezier Curves"
msgstr "إستعمل منحنيات بيزر"
#: editor/animation_track_editor.cpp
-#, fuzzy
msgid "Create RESET Track(s)"
-msgstr "لصق المقاطع"
+msgstr "إنشاء مسار/ات إعادة التعيين (RESET)"
#: editor/animation_track_editor.cpp
msgid "Anim. Optimizer"
@@ -1009,7 +1007,7 @@ msgstr "لا نتائج من أجل \"%s\"."
#: editor/create_dialog.cpp editor/property_selector.cpp
msgid "No description available for %s."
-msgstr ""
+msgstr "ليس هناك وص٠مناسب لأجل s%."
#: editor/create_dialog.cpp editor/editor_file_dialog.cpp
#: editor/filesystem_dock.cpp
@@ -1069,7 +1067,7 @@ msgstr ""
msgid "Dependencies"
msgstr "التبعيات"
-#: editor/dependency_editor.cpp
+#: editor/dependency_editor.cpp editor/editor_resource_picker.cpp
msgid "Resource"
msgstr "مورد"
@@ -1304,36 +1302,32 @@ msgid "Error opening asset file for \"%s\" (not in ZIP format)."
msgstr "حدث خطأ Ø¹Ù†Ø¯ÙØªØ­ مل٠الحزمة بسبب أن المل٠ليس ÙÙŠ صيغة \"ZIP\"."
#: editor/editor_asset_installer.cpp
-#, fuzzy
msgid "%s (already exists)"
-msgstr "%s (موجود Ø¨Ø§Ù„ÙØ¹Ù„!)"
+msgstr "%s (موجود Ø¨Ø§Ù„ÙØ¹Ù„)"
#: editor/editor_asset_installer.cpp
msgid "Contents of asset \"%s\" - %d file(s) conflict with your project:"
-msgstr ""
+msgstr "تتعارض محتويات المصدر \"%s\" - من الملÙ(ات) %d مع مشروعك:"
#: editor/editor_asset_installer.cpp
msgid "Contents of asset \"%s\" - No files conflict with your project:"
-msgstr ""
+msgstr "محتويات المصدر \"%s\" - لا تتعارض مع مشروعك:"
#: editor/editor_asset_installer.cpp
msgid "Uncompressing Assets"
msgstr "ÙŠÙكك الضغط عن الأصول"
#: editor/editor_asset_installer.cpp
-#, fuzzy
msgid "The following files failed extraction from asset \"%s\":"
-msgstr "ÙØ´Ù„ استخراج Ø§Ù„Ù…Ù„ÙØ§Øª التالية من الحزمة:"
+msgstr "ÙØ´Ù„ استخراج Ø§Ù„Ù…Ù„ÙØ§Øª التالية من الحزمة \"Ùª s\":"
#: editor/editor_asset_installer.cpp
-#, fuzzy
msgid "(and %s more files)"
-msgstr "Ùˆ %s أيضاً من Ø§Ù„Ù…Ù„ÙØ§Øª."
+msgstr "و %s مل٠أكثر."
#: editor/editor_asset_installer.cpp
-#, fuzzy
msgid "Asset \"%s\" installed successfully!"
-msgstr "تم تتبيث الحزمة بنجاح!"
+msgstr "تم تثبيت الحزمة \"%s\" بنجاح!"
#: editor/editor_asset_installer.cpp
#: editor/plugins/asset_library_editor_plugin.cpp
@@ -1345,7 +1339,6 @@ msgid "Install"
msgstr "تثبيت"
#: editor/editor_asset_installer.cpp
-#, fuzzy
msgid "Asset Installer"
msgstr "مثبت الحزم"
@@ -1410,9 +1403,8 @@ msgid "Bypass"
msgstr "تخطي"
#: editor/editor_audio_buses.cpp
-#, fuzzy
msgid "Bus Options"
-msgstr "إعدادات مسار الصوت"
+msgstr "‎خيارات مسار الصوت (BUS)"
#: editor/editor_audio_buses.cpp editor/filesystem_dock.cpp
#: editor/plugins/animation_player_editor_plugin.cpp editor/scene_tree_dock.cpp
@@ -1578,13 +1570,12 @@ msgid "Can't add autoload:"
msgstr "لا يمكن Ø¥Ø¶Ø§ÙØ© التحميل التلقائي:"
#: editor/editor_autoload_settings.cpp
-#, fuzzy
msgid "%s is an invalid path. File does not exist."
-msgstr "المل٠غير موجود."
+msgstr "%s مسار غير صالح. المل٠غير موجود."
#: editor/editor_autoload_settings.cpp
msgid "%s is an invalid path. Not in resource path (res://)."
-msgstr ""
+msgstr "المسار %s غير صالح. غير موجود ÙÙŠ مسار الموارد (//:res)."
#: editor/editor_autoload_settings.cpp
msgid "Add AutoLoad"
@@ -1608,9 +1599,8 @@ msgid "Name"
msgstr "الأسم"
#: editor/editor_autoload_settings.cpp
-#, fuzzy
msgid "Global Variable"
-msgstr "إعادة تسمية Ø§Ù„Ù…ÙØªØºÙŠÙ‘ر"
+msgstr "Ù…ÙØªØºÙŠÙ‘ر عام (Global Variable)"
#: editor/editor_data.cpp
msgid "Paste Params"
@@ -1734,13 +1724,13 @@ msgstr ""
"مَكّÙÙ† 'استيراد Etc' ÙÙŠ إعدادات المشروع، أو عطّل 'تمكين التواÙÙ‚ الرجعي Ù„Ù„ØªØ¹Ø±ÙŠÙØ§Øª "
"Driver Fallback Enabled'."
-#: editor/editor_export.cpp platform/android/export/export.cpp
+#: editor/editor_export.cpp platform/android/export/export_plugin.cpp
#: platform/iphone/export/export.cpp platform/javascript/export/export.cpp
#: platform/osx/export/export.cpp platform/uwp/export/export.cpp
msgid "Custom debug template not found."
msgstr "نمودج تصحيح الأخطاء غير موجود."
-#: editor/editor_export.cpp platform/android/export/export.cpp
+#: editor/editor_export.cpp platform/android/export/export_plugin.cpp
#: platform/iphone/export/export.cpp platform/javascript/export/export.cpp
#: platform/osx/export/export.cpp platform/uwp/export/export.cpp
msgid "Custom release template not found."
@@ -1784,35 +1774,37 @@ msgstr "رصي٠الاستيراد"
#: editor/editor_feature_profile.cpp
msgid "Allows to view and edit 3D scenes."
-msgstr ""
+msgstr "يسمح لعرض وتحرير المشاهد ثلاثية الأبعاد."
#: editor/editor_feature_profile.cpp
msgid "Allows to edit scripts using the integrated script editor."
-msgstr ""
+msgstr "يسمح بتحرير النصوص البرمجية عن طريق المحرر المدمج."
#: editor/editor_feature_profile.cpp
msgid "Provides built-in access to the Asset Library."
-msgstr ""
+msgstr "يؤمن وصول لمكتبة الملحقات من داخل المحرر."
#: editor/editor_feature_profile.cpp
msgid "Allows editing the node hierarchy in the Scene dock."
-msgstr ""
+msgstr "يسمح بتحرير تراتبية العقد عن طريق رصي٠المشهد."
#: editor/editor_feature_profile.cpp
msgid ""
"Allows to work with signals and groups of the node selected in the Scene "
"dock."
-msgstr ""
+msgstr "يسمح بالعمل مع إشارات ومجموعات العقد المحددة ÙÙŠ رصي٠المشهد."
#: editor/editor_feature_profile.cpp
msgid "Allows to browse the local file system via a dedicated dock."
-msgstr ""
+msgstr "يسمح Ø¨ØªØµÙØ­ Ù…Ù„ÙØ§Øª النظام المحلية عن طريق رصي٠خاص بذلك."
#: editor/editor_feature_profile.cpp
msgid ""
"Allows to configure import settings for individual assets. Requires the "
"FileSystem dock to function."
msgstr ""
+"يسمح بتحديد خصائص الاستيراد المتعلقة بالوسائط على حدى. يتطلب عمله رصي٠"
+"Ø§Ù„Ù…Ù„ÙØ§Øª."
#: editor/editor_feature_profile.cpp
#, fuzzy
@@ -1821,11 +1813,11 @@ msgstr "(الحالي)"
#: editor/editor_feature_profile.cpp
msgid "(none)"
-msgstr ""
+msgstr "(لاشيء)"
#: editor/editor_feature_profile.cpp
msgid "Remove currently selected profile, '%s'? Cannot be undone."
-msgstr ""
+msgstr "أترغب بإزالة المل٠المحدد '%s'؟ لا يمكنك التراجع عن ذلك."
#: editor/editor_feature_profile.cpp
msgid "Profile must be a valid filename and must not contain '.'"
@@ -1856,19 +1848,16 @@ msgid "Enable Contextual Editor"
msgstr "مكّن المحرر السياقي Contextual"
#: editor/editor_feature_profile.cpp
-#, fuzzy
msgid "Class Properties:"
-msgstr "خصائص:"
+msgstr "خصائص Ø§Ù„ÙØ¦Ø© (Class):"
#: editor/editor_feature_profile.cpp
-#, fuzzy
msgid "Main Features:"
-msgstr "المزايا"
+msgstr "المزايا الرئيسية:"
#: editor/editor_feature_profile.cpp
-#, fuzzy
msgid "Nodes and Classes:"
-msgstr "الصÙو٠المÙمكّنة:"
+msgstr "العÙقد (Nodes) ÙˆØ§Ù„ÙØ¦Ø§Øª (Classes):"
#: editor/editor_feature_profile.cpp
msgid "File '%s' format is invalid, import aborted."
@@ -1885,9 +1874,8 @@ msgid "Error saving profile to path: '%s'."
msgstr "خطأ ÙÙŠ Ø­ÙØ¸ المل٠إلى المسار: '%s'."
#: editor/editor_feature_profile.cpp
-#, fuzzy
msgid "Reset to Default"
-msgstr "اعادة التعيين Ù„Ù„Ø¥ÙØªØ±Ø§Ø¶ÙŠØ§Øª"
+msgstr "إعادة التعيين إلى Ø§Ù„Ø§ÙØªØ±Ø§Ø¶ÙŠ"
#: editor/editor_feature_profile.cpp
msgid "Current Profile:"
@@ -1932,7 +1920,7 @@ msgstr "إعدادات الص٠(Class):"
#: editor/editor_feature_profile.cpp
msgid "Create or import a profile to edit available classes and properties."
-msgstr ""
+msgstr "أنشئ أو استورد Ù…Ù„ÙØ§Ù‹ لتحرير الصÙو٠والخصائص Ø§Ù„Ù…ØªÙˆÙØ±Ø©."
#: editor/editor_feature_profile.cpp
msgid "New profile name:"
@@ -2120,7 +2108,7 @@ msgstr "هناك عدة مستوردات مخصوصة لعدة أنواع حدد
msgid "(Re)Importing Assets"
msgstr "إعادة إستيراد الأصول"
-#: editor/editor_help.cpp editor/plugins/spatial_editor_plugin.cpp
+#: editor/editor_help.cpp
msgid "Top"
msgstr "Ùوق"
@@ -2357,6 +2345,9 @@ msgid ""
"Update Continuously is enabled, which can increase power usage. Click to "
"disable it."
msgstr ""
+"يدور عندما يعاد رسم Ù†Ø§ÙØ°Ø© المحرر.\n"
+"التحديث المستمر ممكن، الأمر الذي يعني استهلاك أكبر للطاقة. اضغط لإزالة "
+"التمكين."
#: editor/editor_node.cpp
msgid "Spins when the editor window redraws."
@@ -2590,6 +2581,8 @@ msgid ""
"The current scene has no root node, but %d modified external resource(s) "
"were saved anyway."
msgstr ""
+"المشهد الحالي لا يملك عقدة رئيسة، ولكن %d عدّل المصدر(مصادر) خارجياً وتم Ø§Ù„Ø­ÙØ¸ "
+"عموما."
#: editor/editor_node.cpp
#, fuzzy
@@ -2627,6 +2620,32 @@ msgid "Current scene not saved. Open anyway?"
msgstr "لم يتم Ø­ÙØ¸ المشهد الحالي. Ø¥ÙØªØ­Ù‡ علي أية حال؟"
#: editor/editor_node.cpp
+msgid "Can't undo while mouse buttons are pressed."
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "Nothing to undo."
+msgstr ""
+
+#: editor/editor_node.cpp
+#, fuzzy
+msgid "Undo: %s"
+msgstr "تراجع"
+
+#: editor/editor_node.cpp
+msgid "Can't redo while mouse buttons are pressed."
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "Nothing to redo."
+msgstr ""
+
+#: editor/editor_node.cpp
+#, fuzzy
+msgid "Redo: %s"
+msgstr "إعادة تراجع"
+
+#: editor/editor_node.cpp
msgid "Can't reload a scene that was never saved."
msgstr "لا يمكن إعادة تحميل مشهد لم يتم Ø­ÙØ¸Ù‡ من قبل."
@@ -3144,7 +3163,7 @@ msgstr "ÙØªØ­ الوثائق"
#: editor/editor_node.cpp
msgid "Questions & Answers"
-msgstr ""
+msgstr "أسئلة وإجابات"
#: editor/editor_node.cpp
msgid "Report a Bug"
@@ -3152,7 +3171,7 @@ msgstr "إرسال تقرير عن خلل برمجي"
#: editor/editor_node.cpp
msgid "Suggest a Feature"
-msgstr ""
+msgstr "اقترح ميزة"
#: editor/editor_node.cpp
msgid "Send Docs Feedback"
@@ -3257,14 +3276,12 @@ msgid "Manage Templates"
msgstr "إدارة القوالب"
#: editor/editor_node.cpp
-#, fuzzy
msgid "Install from file"
msgstr "تثبيت من ملÙ"
#: editor/editor_node.cpp
-#, fuzzy
msgid "Select android sources file"
-msgstr "حدد مصدر ميش:"
+msgstr "تحديد مصدر Ù…Ù„ÙØ§Øª الاندرويد"
#: editor/editor_node.cpp
msgid ""
@@ -3276,8 +3293,8 @@ msgid ""
"the \"Use Custom Build\" option should be enabled in the Android export "
"preset."
msgstr ""
-"بهذه الطريقة سيتم إعداد المشروع الخاص بك لأجل نسخ بناء أندريد مخصوصة عن طريق "
-"تنزيل قوالب المصدر البرمجي ÙÙŠ \"res://android/build\".\n"
+"بهذه الطريقة سيتم إعداد المشروع الخاص بك لأجل نسخ بناء أندرويد مخصص عن طريق "
+"تثبيت قوالب المصدر البرمجي ÙÙŠ \"res://android/build\".\n"
"يمكنك تطبيق تعديلات الخاصة على نسخة البناء للحصول على حزمة تطبيق أندرويد APK "
"معدّلة عند التصدير (زيادة Ù…Ùلحقات، تعديل مل٠AndroidManifest.xml إلخ..).\n"
"ضع ÙÙŠ بالك أنه من أجل إنشاء نسخ بناء مخصوصة بدلاً من الحزم APKs المبنية Ø³Ù„ÙØ§Ù‹ØŒ "
@@ -3291,7 +3308,7 @@ msgid ""
"Remove the \"res://android/build\" directory manually before attempting this "
"operation again."
msgstr ""
-"إن قالب البناء الخاص بالأندرويد تم تنزيله Ø³Ù„ÙØ§Ù‹ لأجل هذا المشروع ولا يمكنه "
+"قالب البناء الخاص بالأندرويد تم تنزيله Ø³Ù„ÙØ§Ù‹ لأجل هذا المشروع ولا يمكنه "
"الكتابة Ùوق البيانات السابقة.\n"
"قم بإزالة \"res://android/build\" يدوياً قبل الشروع بهذه العملية مرة أخرى."
@@ -3312,6 +3329,11 @@ msgid "Merge With Existing"
msgstr "دمج مع الموجود"
#: editor/editor_node.cpp
+#, fuzzy
+msgid "Apply MeshInstance Transforms"
+msgstr "تحويل تغيير التحريك"
+
+#: editor/editor_node.cpp
msgid "Open & Run a Script"
msgstr "ÙØªØ­ Ùˆ تشغيل كود"
@@ -3348,7 +3370,7 @@ msgstr "حدد"
#: editor/editor_node.cpp
#, fuzzy
msgid "Select Current"
-msgstr "تحديد المجلد الحالي"
+msgstr "تحديد الحالي"
#: editor/editor_node.cpp
msgid "Open 2D Editor"
@@ -3383,9 +3405,8 @@ msgid "No sub-resources found."
msgstr "لا مصدر للسطح تم تحديده."
#: editor/editor_path.cpp
-#, fuzzy
msgid "Open a list of sub-resources."
-msgstr "لا مصدر للسطح تم تحديده."
+msgstr "ÙØªØ­ قائمة الموارد Ø§Ù„ÙØ±Ø¹ÙŠØ©."
#: editor/editor_plugin.cpp
msgid "Creating Mesh Previews"
@@ -3412,14 +3433,13 @@ msgid "Update"
msgstr "تحديث"
#: editor/editor_plugin_settings.cpp
-#, fuzzy
msgid "Version"
-msgstr "النسخة:"
+msgstr "الإصدار"
#: editor/editor_plugin_settings.cpp
#, fuzzy
msgid "Author"
-msgstr "المالكون"
+msgstr "المالك"
#: editor/editor_plugin_settings.cpp
#: editor/plugins/version_control_editor_plugin.cpp
@@ -3434,12 +3454,12 @@ msgstr "قياس:"
#: editor/editor_profiler.cpp
#, fuzzy
msgid "Frame Time (ms)"
-msgstr "وقت الاطار (ثانية)"
+msgstr "وقت الاطار (ميلي ثانية)"
#: editor/editor_profiler.cpp
#, fuzzy
msgid "Average Time (ms)"
-msgstr "متوسط الوقت (ثانية)"
+msgstr "متوسط الوقت (ميلي ثانية)"
#: editor/editor_profiler.cpp
msgid "Frame %"
@@ -3567,6 +3587,10 @@ msgid ""
msgstr ""
"يلا يتطابق نوع المورد المختار (%s) مع أي نوع متوقع لأجل هذه الخاصية (%s)."
+#: editor/editor_resource_picker.cpp
+msgid "Quick Load"
+msgstr ""
+
#: editor/editor_resource_picker.cpp editor/property_editor.cpp
msgid "Make Unique"
msgstr "إجعلة مميزاً"
@@ -3660,11 +3684,11 @@ msgstr "إستيراد من عقدة:"
#: editor/export_template_manager.cpp
msgid "Open the folder containing these templates."
-msgstr ""
+msgstr "Ø§ÙØªØ­ المجلد الحاوي هذه القوالب."
#: editor/export_template_manager.cpp
msgid "Uninstall these templates."
-msgstr ""
+msgstr "إزالة تثبيت هذه القوالب."
#: editor/export_template_manager.cpp
#, fuzzy
@@ -3678,7 +3702,7 @@ msgstr "يستقبل المرايا، من ÙØ¶Ù„Ùƒ إنتظر..."
#: editor/export_template_manager.cpp
msgid "Starting the download..."
-msgstr ""
+msgstr "الشروع بالتنزيل..."
#: editor/export_template_manager.cpp
msgid "Error requesting URL:"
@@ -3721,7 +3745,7 @@ msgstr "ÙØ´Ù„ الطلب."
#: editor/export_template_manager.cpp
msgid "Download complete; extracting templates..."
-msgstr ""
+msgstr "اكتمل التحميل؛ استخراج القوالب..."
#: editor/export_template_manager.cpp
msgid "Cannot remove temporary file:"
@@ -3748,7 +3772,7 @@ msgstr ""
#: editor/export_template_manager.cpp
msgid "Best available mirror"
-msgstr ""
+msgstr "Ø£ÙØ¶Ù„ بديل Ù…ØªÙˆØ§ÙØ±"
#: editor/export_template_manager.cpp
msgid ""
@@ -3847,11 +3871,11 @@ msgstr "النسخة الحالية:"
#: editor/export_template_manager.cpp
msgid "Export templates are missing. Download them or install from a file."
-msgstr ""
+msgstr "قوالب التصدير Ù…Ùقودة. حمّلها أو نصبّها من ملÙ."
#: editor/export_template_manager.cpp
msgid "Export templates are installed and ready to be used."
-msgstr ""
+msgstr "تم تنصيب قوالب التصدير وهي جاهزة للاستعمال."
#: editor/export_template_manager.cpp
#, fuzzy
@@ -3860,7 +3884,7 @@ msgstr "Ø§ÙØªØ­ الملÙ"
#: editor/export_template_manager.cpp
msgid "Open the folder containing installed templates for the current version."
-msgstr ""
+msgstr "Ø§ÙØªØ­ المجلد الحاوي على القوالب المنصبة بالنسبة للإصدار الحالي."
#: editor/export_template_manager.cpp
msgid "Uninstall"
@@ -3888,13 +3912,13 @@ msgstr "خطأ ÙÙŠ نسخ"
#: editor/export_template_manager.cpp
msgid "Download and Install"
-msgstr ""
+msgstr "حمّل ونصّب"
#: editor/export_template_manager.cpp
msgid ""
"Download and install templates for the current version from the best "
"possible mirror."
-msgstr ""
+msgstr "حمّل ونصّب قوالب الإصدار الحالي من Ø£ÙØ¶Ù„ مصدر Ù…ØªÙˆÙØ±."
#: editor/export_template_manager.cpp
msgid "Official export templates aren't available for development builds."
@@ -3943,6 +3967,8 @@ msgid ""
"The templates will continue to download.\n"
"You may experience a short editor freeze when they finish."
msgstr ""
+"ستستمر القوالب بالتحميل.\n"
+"ربما تلاحظ تجمداً بسيطاً بالمحرر عندما ينتهي تحميلهم."
#: editor/filesystem_dock.cpp
msgid "Favorites"
@@ -4088,19 +4114,19 @@ msgstr "بحث Ø§Ù„Ù…Ù„ÙØ§Øª"
#: editor/filesystem_dock.cpp
msgid "Sort by Name (Ascending)"
-msgstr ""
+msgstr "صن٠وÙقا للاسم (تصاعدياً)"
#: editor/filesystem_dock.cpp
msgid "Sort by Name (Descending)"
-msgstr ""
+msgstr "صن٠وÙقاً للاسم (تنازلياً)"
#: editor/filesystem_dock.cpp
msgid "Sort by Type (Ascending)"
-msgstr ""
+msgstr "صنّ٠وÙقاً للنوع (تصاعدياً)"
#: editor/filesystem_dock.cpp
msgid "Sort by Type (Descending)"
-msgstr ""
+msgstr "صنّ٠وÙقاً للنوع (تنازلياً)"
#: editor/filesystem_dock.cpp
#, fuzzy
@@ -4122,7 +4148,7 @@ msgstr "إعادة تسمية..."
#: editor/filesystem_dock.cpp
msgid "Focus the search box"
-msgstr ""
+msgstr "حدد صندوق البحث"
#: editor/filesystem_dock.cpp
msgid "Previous Folder/File"
@@ -5484,11 +5510,11 @@ msgstr "الكل"
#: editor/plugins/asset_library_editor_plugin.cpp
msgid "Search templates, projects, and demos"
-msgstr ""
+msgstr "ابحث ÙÙŠ القوالب، والمشاريع والنماذج"
#: editor/plugins/asset_library_editor_plugin.cpp
msgid "Search assets (excluding templates, projects, and demos)"
-msgstr ""
+msgstr "ابحث ÙÙŠ الوسائط (عدا القوالب، والمشاريع، والنماذج)"
#: editor/plugins/asset_library_editor_plugin.cpp
msgid "Import..."
@@ -5532,7 +5558,7 @@ msgstr "مل٠أصول مضغوط"
#: editor/plugins/audio_stream_editor_plugin.cpp
msgid "Audio Preview Play/Pause"
-msgstr ""
+msgstr "معاينة الصوت شغّل/أوقÙ"
#: editor/plugins/baked_lightmap_editor_plugin.cpp
#, fuzzy
@@ -5696,6 +5722,18 @@ msgid "Move CanvasItem \"%s\" to (%d, %d)"
msgstr "تحريك العنصر القماشي"
#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Locked"
+msgstr "Ø­ÙØ¯Ø¯ القÙÙ„"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Grouped"
+msgstr "المجموعات"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
msgid ""
"Children of containers have their anchors and margins values overridden by "
"their parent."
@@ -5805,11 +5843,14 @@ msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
msgid ""
"Project Camera Override\n"
"No project instance running. Run the project from the editor to use this "
"feature."
msgstr ""
+"تجاوز كاميرا المشروع.\n"
+"ليس هناك مشروع يعمل حالياً. شغل المشروع من المحرر لاستعمال هذه الميزة."
#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp
@@ -5899,7 +5940,7 @@ msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "RMB: Add node at position clicked."
-msgstr ""
+msgstr "زر-Ø§Ù„ÙØ£Ø±Ø©-الأيمن: ض٠العقد عند موقع الضغط."
#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp
@@ -6159,15 +6200,15 @@ msgstr "إظهار شامل"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Zoom to 3.125%"
-msgstr ""
+msgstr "التكبير حتى 3.125%"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Zoom to 6.25%"
-msgstr ""
+msgstr "التكبير حتى 6.25%"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Zoom to 12.5%"
-msgstr ""
+msgstr "التكبير حتى 12.5%"
#: editor/plugins/canvas_item_editor_plugin.cpp
#, fuzzy
@@ -6201,7 +6242,7 @@ msgstr "تصغير"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Zoom to 1600%"
-msgstr ""
+msgstr "التكبير حتى 1600%"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Add %s"
@@ -6331,7 +6372,7 @@ msgstr "السطح 0"
#: editor/plugins/curve_editor_plugin.cpp
msgid "Flat 1"
-msgstr "السطح 1"
+msgstr "المستوى 1"
#: editor/plugins/curve_editor_plugin.cpp editor/property_editor.cpp
msgid "Ease In"
@@ -6639,7 +6680,13 @@ msgid "Remove Selected Item"
msgstr "مسح العنصر المحدد"
#: editor/plugins/mesh_library_editor_plugin.cpp
-msgid "Import from Scene"
+#, fuzzy
+msgid "Import from Scene (Ignore Transforms)"
+msgstr "إستيراد من المشهد"
+
+#: editor/plugins/mesh_library_editor_plugin.cpp
+#, fuzzy
+msgid "Import from Scene (Apply Transforms)"
msgstr "إستيراد من المشهد"
#: editor/plugins/mesh_library_editor_plugin.cpp
@@ -7239,6 +7286,16 @@ msgstr "عدد النقاط المولدة:"
msgid "Flip Portal"
msgstr "القلب Ø£Ùقياً"
+#: editor/plugins/room_manager_editor_plugin.cpp
+#, fuzzy
+msgid "Occluder Set Transform"
+msgstr "محو التَحَوّل"
+
+#: editor/plugins/room_manager_editor_plugin.cpp
+#, fuzzy
+msgid "Center Node"
+msgstr "إنشاء عقدة"
+
#: editor/plugins/root_motion_editor_plugin.cpp
msgid "AnimationTree has no path set to an AnimationPlayer"
msgstr "لا تملك شجرة الرسومات المتحركة مساراً لمشغل الرسومات المتحركة"
@@ -7740,12 +7797,14 @@ msgid "Skeleton2D"
msgstr "هيكل ثنائي Ø§Ù„Ø¨ÙØ¹Ø¯"
#: editor/plugins/skeleton_2d_editor_plugin.cpp
-msgid "Make Rest Pose (From Bones)"
-msgstr "إنشاء وضعية الراحة (من العظام)"
+#, fuzzy
+msgid "Reset to Rest Pose"
+msgstr "تحديد العظام لتكون ÙÙŠ وضعية الراحة"
#: editor/plugins/skeleton_2d_editor_plugin.cpp
-msgid "Set Bones to Rest Pose"
-msgstr "تحديد العظام لتكون ÙÙŠ وضعية الراحة"
+#, fuzzy
+msgid "Overwrite Rest Pose"
+msgstr "الكتابة Ø§Ù„Ù…ÙØªØ±Ø§ÙƒØ¨Ø© Overwrite"
#: editor/plugins/skeleton_editor_plugin.cpp
msgid "Create physical bones"
@@ -7772,6 +7831,71 @@ msgid "Perspective"
msgstr "منظوري"
#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Top Orthogonal"
+msgstr "متعامد"
+
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Top Perspective"
+msgstr "منظوري"
+
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Bottom Orthogonal"
+msgstr "متعامد"
+
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Bottom Perspective"
+msgstr "منظوري"
+
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Left Orthogonal"
+msgstr "متعامد"
+
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Right Perspective"
+msgstr "منظوري"
+
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Right Orthogonal"
+msgstr "متعامد"
+
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Front Orthogonal"
+msgstr "متعامد"
+
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Front Perspective"
+msgstr "منظوري"
+
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Rear Orthogonal"
+msgstr "متعامد"
+
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Rear Perspective"
+msgstr "منظوري"
+
+#. TRANSLATORS: This will be appended to the view name when Auto Orthogonal is enabled.
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid " [auto]"
+msgstr ""
+
+#. TRANSLATORS: This will be appended to the view name when Portal Occulusion is enabled.
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid " [portals active]"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
msgid "Transform Aborted."
msgstr "أجهض التحول."
@@ -7879,7 +8003,7 @@ msgstr "القمم"
#: editor/plugins/spatial_editor_plugin.cpp
msgid "FPS: %d (%s ms)"
-msgstr ""
+msgstr "FPS: %d (%s جزء من الثانية)"
#: editor/plugins/spatial_editor_plugin.cpp
msgid "Top View."
@@ -7890,42 +8014,22 @@ msgid "Bottom View."
msgstr "الواجهة السÙلية."
#: editor/plugins/spatial_editor_plugin.cpp
-msgid "Bottom"
-msgstr "الأسÙÙ„"
-
-#: editor/plugins/spatial_editor_plugin.cpp
msgid "Left View."
msgstr "الواجهة Ø§Ù„ÙŠÙØ³Ø±Ù‰."
#: editor/plugins/spatial_editor_plugin.cpp
-msgid "Left"
-msgstr "اليسار"
-
-#: editor/plugins/spatial_editor_plugin.cpp
msgid "Right View."
msgstr "الواجهة اليÙمنى."
#: editor/plugins/spatial_editor_plugin.cpp
-msgid "Right"
-msgstr "اليمين"
-
-#: editor/plugins/spatial_editor_plugin.cpp
msgid "Front View."
msgstr "الواجهة الأمامية."
#: editor/plugins/spatial_editor_plugin.cpp
-msgid "Front"
-msgstr "الأمام"
-
-#: editor/plugins/spatial_editor_plugin.cpp
msgid "Rear View."
msgstr "الواجهة الخلÙية."
#: editor/plugins/spatial_editor_plugin.cpp
-msgid "Rear"
-msgstr "الخلÙ"
-
-#: editor/plugins/spatial_editor_plugin.cpp
msgid "Align Transform with View"
msgstr "محاذاة التحوّل مع الواجهة"
@@ -8200,6 +8304,11 @@ msgid "View Portal Culling"
msgstr "إعدادات إطار العرض"
#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "View Occlusion Culling"
+msgstr "إعدادات إطار العرض"
+
+#: editor/plugins/spatial_editor_plugin.cpp
#: modules/gridmap/grid_map_editor_plugin.cpp
msgid "Settings..."
msgstr "اعدادات..."
@@ -8265,8 +8374,9 @@ msgid "Post"
msgstr "لاحق"
#: editor/plugins/spatial_editor_plugin.cpp
-msgid "Nameless gizmo"
-msgstr "أداة (gizmo) غير مسماة"
+#, fuzzy
+msgid "Unnamed Gizmo"
+msgstr "مشروع غير مسمى"
#: editor/plugins/sprite_editor_plugin.cpp
msgid "Create Mesh2D"
@@ -8542,7 +8652,7 @@ msgstr "الأسلوب"
#: editor/plugins/theme_editor_plugin.cpp
msgid "{num} color(s)"
-msgstr ""
+msgstr "{num} لون (ألوان)"
#: editor/plugins/theme_editor_plugin.cpp
#, fuzzy
@@ -8561,7 +8671,7 @@ msgstr "ثابت اللون."
#: editor/plugins/theme_editor_plugin.cpp
msgid "{num} font(s)"
-msgstr ""
+msgstr "{num} خط (خطوط)"
#: editor/plugins/theme_editor_plugin.cpp
#, fuzzy
@@ -8570,7 +8680,7 @@ msgstr "لم يوجد!"
#: editor/plugins/theme_editor_plugin.cpp
msgid "{num} icon(s)"
-msgstr ""
+msgstr "{num} أيقونة (أيقونات)"
#: editor/plugins/theme_editor_plugin.cpp
#, fuzzy
@@ -8588,11 +8698,11 @@ msgstr "لا مصدر للسطح تم تحديده."
#: editor/plugins/theme_editor_plugin.cpp
msgid "{num} currently selected"
-msgstr ""
+msgstr "{num} المختارة حالياً"
#: editor/plugins/theme_editor_plugin.cpp
msgid "Nothing was selected for the import."
-msgstr ""
+msgstr "لم يتم اختيار شيء لأجل عملية الاستيراد."
#: editor/plugins/theme_editor_plugin.cpp
#, fuzzy
@@ -8601,7 +8711,7 @@ msgstr "استيراد الموضوع Theme"
#: editor/plugins/theme_editor_plugin.cpp
msgid "Importing items {n}/{n}"
-msgstr ""
+msgstr "استيراد العناصر {n}/{n}"
#: editor/plugins/theme_editor_plugin.cpp
#, fuzzy
@@ -8620,7 +8730,7 @@ msgstr "تنقيات:"
#: editor/plugins/theme_editor_plugin.cpp
msgid "With Data"
-msgstr ""
+msgstr "مع البيانات"
#: editor/plugins/theme_editor_plugin.cpp
#, fuzzy
@@ -8629,15 +8739,15 @@ msgstr "اختر عÙقدة"
#: editor/plugins/theme_editor_plugin.cpp
msgid "Select all visible color items."
-msgstr ""
+msgstr "اختيار جميع العناصر اللونية المرئية."
#: editor/plugins/theme_editor_plugin.cpp
msgid "Select all visible color items and their data."
-msgstr ""
+msgstr "اختر جميع العناصر المرئية الملونة والبيانات المتعلقة بها."
#: editor/plugins/theme_editor_plugin.cpp
msgid "Deselect all visible color items."
-msgstr ""
+msgstr "أزل اختيار العناصر الملونة المرئية."
#: editor/plugins/theme_editor_plugin.cpp
#, fuzzy
@@ -8646,11 +8756,11 @@ msgstr "اختر عنصر إعدادات بدايةً!"
#: editor/plugins/theme_editor_plugin.cpp
msgid "Select all visible constant items and their data."
-msgstr ""
+msgstr "اختر جميع العناصر الثابتة المرئية والبيانات المتعلقة بها."
#: editor/plugins/theme_editor_plugin.cpp
msgid "Deselect all visible constant items."
-msgstr ""
+msgstr "أزل اختيار العناصر الثابتة المرئية."
#: editor/plugins/theme_editor_plugin.cpp
#, fuzzy
@@ -8659,11 +8769,11 @@ msgstr "اختر عنصر إعدادات بدايةً!"
#: editor/plugins/theme_editor_plugin.cpp
msgid "Select all visible font items and their data."
-msgstr ""
+msgstr "اختر جميع عناصر الخط المرئية والبيانات المتعلقة بها."
#: editor/plugins/theme_editor_plugin.cpp
msgid "Deselect all visible font items."
-msgstr ""
+msgstr "أزل اختيار جميع عناصر الخط المرئية."
#: editor/plugins/theme_editor_plugin.cpp
#, fuzzy
@@ -8682,21 +8792,23 @@ msgstr "اختر عنصر إعدادات بدايةً!"
#: editor/plugins/theme_editor_plugin.cpp
msgid "Select all visible stylebox items."
-msgstr ""
+msgstr "اختر جميع عناصر صندوق المظهر المرئية."
#: editor/plugins/theme_editor_plugin.cpp
msgid "Select all visible stylebox items and their data."
-msgstr ""
+msgstr "اختر جميع عناصر صندوق المصدر المرئية والبيانات المتعلقة بها."
#: editor/plugins/theme_editor_plugin.cpp
msgid "Deselect all visible stylebox items."
-msgstr ""
+msgstr "أزل اختيار جميع عناصر صندوق المظهر المرئية."
#: editor/plugins/theme_editor_plugin.cpp
msgid ""
"Caution: Adding icon data may considerably increase the size of your Theme "
"resource."
msgstr ""
+"تحذير: إن Ø¥Ø¶Ø§ÙØ© بيانات الأيقونة من الممكن أن تزيد حجم مورد الثيم الخاص بك "
+"بصورة معتبرة."
#: editor/plugins/theme_editor_plugin.cpp
#, fuzzy
@@ -8720,7 +8832,7 @@ msgstr "إختر النقاط"
#: editor/plugins/theme_editor_plugin.cpp
msgid "Select all Theme items with item data."
-msgstr ""
+msgstr "اختر جميع عناصر الثيم والبيانات المتعلقة بهم."
#: editor/plugins/theme_editor_plugin.cpp
#, fuzzy
@@ -8729,7 +8841,7 @@ msgstr "تحديد الكل"
#: editor/plugins/theme_editor_plugin.cpp
msgid "Deselect all Theme items."
-msgstr ""
+msgstr "أزل اختيار جميع عناصر الثيم."
#: editor/plugins/theme_editor_plugin.cpp
#, fuzzy
@@ -8742,12 +8854,17 @@ msgid ""
"closing this window.\n"
"Close anyway?"
msgstr ""
+"تبويب استيراد العناصر يحوي عناصر مختارة. بإغلاقك Ø§Ù„Ù†Ø§ÙØ°Ø© ستخسر جميع العناصر "
+"المختارة.\n"
+"الإغلاق على أية حال؟"
#: editor/plugins/theme_editor_plugin.cpp
msgid ""
"Select a theme type from the list to edit its items.\n"
"You can add a custom type or import a type with its items from another theme."
msgstr ""
+"اختر نوعاً للثيم من القائمة جانباً لتحرير عناصره.\n"
+"يمكنك Ø¥Ø¶Ø§ÙØ© نوع خاص أو استيراد نوع آخر متراÙÙ‚ من عناصره من ثيم آخر."
#: editor/plugins/theme_editor_plugin.cpp
#, fuzzy
@@ -8784,6 +8901,8 @@ msgid ""
"This theme type is empty.\n"
"Add more items to it manually or by importing from another theme."
msgstr ""
+"نوع الثيم هذا ÙØ§Ø±Øº.\n"
+"ض٠المزيد من العناصر يدوياً أو عن طريق استيرادها من ثيم آخر."
#: editor/plugins/theme_editor_plugin.cpp
#, fuzzy
@@ -8842,7 +8961,7 @@ msgstr "مل٠خطأ، ليس مل٠نسق مسار الصوت."
#: editor/plugins/theme_editor_plugin.cpp
msgid "Invalid file, same as the edited Theme resource."
-msgstr ""
+msgstr "مل٠غير صالح، مماثل لمصدر الثيم المحرر."
#: editor/plugins/theme_editor_plugin.cpp
#, fuzzy
@@ -8938,29 +9057,28 @@ msgid "Cancel Item Rename"
msgstr "إعادة تسمية Ø§Ù„Ø¯ÙØ¹Ø©"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Override Item"
-msgstr "يتجاوز"
+msgstr "تجاوز العنصر"
#: editor/plugins/theme_editor_plugin.cpp
msgid "Unpin this StyleBox as a main style."
-msgstr ""
+msgstr "أزل تثبيت صندوق المظهر هذا على أنه المظهر الرئيس."
#: editor/plugins/theme_editor_plugin.cpp
msgid ""
"Pin this StyleBox as a main style. Editing its properties will update the "
"same properties in all other StyleBoxes of this type."
msgstr ""
+"ثبّت صندوق المظهر هذا ليكون المظهر الرئيس. تحرير خاصياته سيحدث جميع الخاصيات "
+"المشابهة ÙÙŠ جميع صناديق المظهر من هذا النوع."
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Add Type"
-msgstr "النوع"
+msgstr "Ø¥Ø¶Ø§ÙØ© نوع"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Add Item Type"
-msgstr "Ø¥Ø¶Ø§ÙØ© عنصر"
+msgstr "Ø¥Ø¶Ø§ÙØ© نوع للعنصر"
#: editor/plugins/theme_editor_plugin.cpp
#, fuzzy
@@ -8974,7 +9092,7 @@ msgstr "تحميل Ø§Ù„Ø¥ÙØªØ±Ø§Ø¶ÙŠ"
#: editor/plugins/theme_editor_plugin.cpp
msgid "Show default type items alongside items that have been overridden."
-msgstr ""
+msgstr "أظهر عناصر النمط Ø§Ù„Ø§ÙØªØ±Ø§Ø¶ÙŠ Ø¥Ù„Ù‰ جانب العناصر التي تم تجاوزها."
#: editor/plugins/theme_editor_plugin.cpp
#, fuzzy
@@ -8983,7 +9101,7 @@ msgstr "يتجاوز"
#: editor/plugins/theme_editor_plugin.cpp
msgid "Override all default type items."
-msgstr ""
+msgstr "تجاوز جميع أنواع العناصر Ø§Ù„Ø§ÙØªØ±Ø§Ø¶ÙŠØ©."
#: editor/plugins/theme_editor_plugin.cpp
#, fuzzy
@@ -8997,7 +9115,7 @@ msgstr "إدارة قوالب التصدير..."
#: editor/plugins/theme_editor_plugin.cpp
msgid "Add, remove, organize and import Theme items."
-msgstr ""
+msgstr "Ø£Ø¶ÙØŒ أزل، رتّب واستورد عناصر القالب."
#: editor/plugins/theme_editor_plugin.cpp
#, fuzzy
@@ -9018,7 +9136,7 @@ msgstr "حدد مصدر ميش:"
msgid ""
"Toggle the control picker, allowing to visually select control types for "
"edit."
-msgstr ""
+msgstr "ÙØ¹Ù‘Ù„ Ù…ÙØ®ØªØ§Ø± التحديد، مما يسمح لك باختيار أنواع التحديد بصرياً لتحريرها."
#: editor/plugins/theme_editor_preview.cpp
msgid "Toggle Button"
@@ -9108,10 +9226,13 @@ msgstr "يمتلك، خيارات، عديدة"
#: editor/plugins/theme_editor_preview.cpp
msgid "Invalid path, the PackedScene resource was probably moved or removed."
msgstr ""
+"مسار غير صالح، غالباً مصدر المشهد الموضب PackedScene قد تمت إزالته أو نقله."
#: editor/plugins/theme_editor_preview.cpp
msgid "Invalid PackedScene resource, must have a Control node at its root."
msgstr ""
+"مصدر للمشهد الموضب PackedScene غير صالح، يجب أن يملك عقدة تحكم Control node "
+"كعقدة رئيسة."
#: editor/plugins/theme_editor_preview.cpp
#, fuzzy
@@ -9120,7 +9241,7 @@ msgstr "مل٠خطأ، ليس مل٠نسق مسار الصوت."
#: editor/plugins/theme_editor_preview.cpp
msgid "Reload the scene to reflect its most actual state."
-msgstr ""
+msgstr "أعد تحميل المشهد لإظهار الشكل الأقرب لحالته."
#: editor/plugins/tile_map_editor_plugin.cpp
msgid "Erase Selection"
@@ -11086,7 +11207,7 @@ msgstr "مسح الكل"
#: editor/project_manager.cpp
msgid "Also delete project contents (no undo!)"
-msgstr ""
+msgstr "كذلك ستحذ٠محتويات المشروع (لا تراجع!)"
#: editor/project_manager.cpp
msgid "Can't run project"
@@ -11122,7 +11243,7 @@ msgstr "زر "
#: editor/project_settings_editor.cpp
msgid "Physical Key"
-msgstr ""
+msgstr "الزر الÙيزيائي"
#: editor/project_settings_editor.cpp
msgid "Joy Button"
@@ -11170,7 +11291,7 @@ msgstr "الجهاز"
#: editor/project_settings_editor.cpp
msgid " (Physical)"
-msgstr ""
+msgstr " (Ùيزيائي)"
#: editor/project_settings_editor.cpp editor/settings_config_dialog.cpp
msgid "Press a Key..."
@@ -11772,13 +11893,13 @@ msgstr "حذ٠العقدة \"%s\"؟"
#: editor/scene_tree_dock.cpp
msgid ""
"Saving the branch as a scene requires having a scene open in the editor."
-msgstr ""
+msgstr "يتطلب Ø­ÙØ¸ المشهد ÙƒÙØ±Ø¹ وجود مشهد Ù…ÙØªÙˆØ­ ÙÙŠ المحرر."
#: editor/scene_tree_dock.cpp
msgid ""
"Saving the branch as a scene requires selecting only one node, but you have "
"selected %d nodes."
-msgstr ""
+msgstr "يتطلب Ø­ÙØ¸ المشهد ÙƒÙØ±Ø¹ اختيارك عقدة واحدة Ùقط، ولكنك اخترت %d من العقد."
#: editor/scene_tree_dock.cpp
msgid ""
@@ -11787,6 +11908,10 @@ msgid ""
"FileSystem dock context menu\n"
"or create an inherited scene using Scene > New Inherited Scene... instead."
msgstr ""
+"ÙØ´Ù„ت عملية Ø­ÙØ¸ العقدة الرئيسة ÙƒÙØ±Ø¹ ÙÙŠ المشهد الموروث instanced scene.\n"
+"لإنشاء نسخة قابلة للتحرير من المشهد الحالي، ضاع٠المشهد مستخدماً قائمة رصي٠"
+"Ø§Ù„Ù…Ù„ÙØ§Øª FileSystem\n"
+"أو أنشئ مشهداً موروثاً مستعملاً مشهد > مشهد موروث جديد... بدلاً عما قمت Ø¨ÙØ¹Ù„Ù‡."
#: editor/scene_tree_dock.cpp
msgid ""
@@ -11794,6 +11919,9 @@ msgid ""
"To create a variation of a scene, you can make an inherited scene based on "
"the instanced scene using Scene > New Inherited Scene... instead."
msgstr ""
+"لا يمكن Ø­ÙØ¸ Ø§Ù„ÙØ±Ø¹ باستخدام مشهد منسوخ أساساً.\n"
+"لإنشاء تعديلة عن المشهد، يمكنك إنشاء مشهد موروث عن مشهد منسوخ مستخدماً مشهد > "
+"مشهد جديد موروث… بدلاً عن ذلك."
#: editor/scene_tree_dock.cpp
msgid "Save New Scene As..."
@@ -12199,6 +12327,8 @@ msgid ""
"Warning: Having the script name be the same as a built-in type is usually "
"not desired."
msgstr ""
+"تحذير: من غير المستحسن امتلاك النص البرمجي اسماً مماثلاً للأنواع المشابهة "
+"المدمجة بالمحرر."
#: editor/script_create_dialog.cpp
msgid "Class Name:"
@@ -12270,7 +12400,7 @@ msgstr "خطأ ÙÙŠ نسخ"
#: editor/script_editor_debugger.cpp
msgid "Open C++ Source on GitHub"
-msgstr ""
+msgstr "Ø§ÙØªØ­ مصدر ++C على GitHub"
#: editor/script_editor_debugger.cpp
msgid "Video RAM"
@@ -12459,6 +12589,16 @@ msgstr "حدد موقع نقطة الإنحناء"
msgid "Set Portal Point Position"
msgstr "حدد موقع نقطة الإنحناء"
+#: editor/spatial_editor_gizmos.cpp
+#, fuzzy
+msgid "Set Occluder Sphere Radius"
+msgstr "تعديل نص٠قطر الشكل الأسطواني"
+
+#: editor/spatial_editor_gizmos.cpp
+#, fuzzy
+msgid "Set Occluder Sphere Position"
+msgstr "ضع الإنحناء ÙÙŠ الموقع"
+
#: modules/csg/csg_gizmos.cpp
msgid "Change Cylinder Radius"
msgstr "تغيير نص٠قطر الاسطوانة"
@@ -12748,6 +12888,11 @@ msgstr "تخطيط الإضاءات"
msgid "Class name can't be a reserved keyword"
msgstr "لا يمكن أن يكون اسم الص٠كلمة محجوزة"
+#: modules/mono/csharp_script.cpp
+#, fuzzy
+msgid "Build Solution"
+msgstr "تعبئة Ø§Ù„Ù…ÙØ­Ø¯Ø¯"
+
#: modules/mono/mono_gd/gd_mono_utils.cpp
msgid "End of inner exception stack trace"
msgstr "نهاية تتبع مكدس الاستثناء الداخلي"
@@ -13230,144 +13375,151 @@ msgstr "بحث VisualScript"
msgid "Get %s"
msgstr "جلب %s"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Package name is missing."
msgstr "اسم Ø§Ù„Ø±ÙØ²Ù…Ø© Ù…Ùقود."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Package segments must be of non-zero length."
msgstr "أقسام Ø§Ù„Ø±ÙØ²Ù…Ø© ينبغي أن تكون ذات Ù…Ø³Ø§ÙØ§Øª غير-ØµÙØ±ÙŠØ© non-zero length."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "The character '%s' is not allowed in Android application package names."
msgstr "إن الحر٠'%s' غير مسموح ÙÙŠ أسماء Ø­ÙØ²Ù… تطبيقات الأندرويد."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "A digit cannot be the first character in a package segment."
msgstr "لا يمكن أن يكون الرقم هو أول حر٠ÙÙŠ مقطع Ø§Ù„Ø±ÙØ²Ù…Ø©."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "The character '%s' cannot be the first character in a package segment."
msgstr "الحر٠'%s' لا يمكن أن يكون الحر٠الأول من مقطع Ø§Ù„Ø±ÙØ²Ù…Ø©."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "The package must have at least one '.' separator."
msgstr "يجب أن تتضمن الرزمة على الأقل واحد من الÙواصل '.' ."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Select device from the list"
msgstr "اختر جهازاً من القائمة"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Running on %s"
-msgstr ""
+msgstr "يعمل على %s"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
#, fuzzy
msgid "Exporting APK..."
msgstr "تصدير الكÙÙ„"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
#, fuzzy
msgid "Uninstalling..."
msgstr "إلغاء التثبيت"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
#, fuzzy
msgid "Installing to device, please wait..."
msgstr "يستقبل المرايا، من ÙØ¶Ù„Ùƒ إنتظر..."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
#, fuzzy
msgid "Could not install to device: %s"
msgstr "لا يمكن بدء عملية جانبية!"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
#, fuzzy
msgid "Running on device..."
msgstr "تشغيل النص البرمجي Ø§Ù„Ù…ÙØ®ØµØµ..."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
#, fuzzy
msgid "Could not execute on device."
msgstr "لا يمكن إنشاء المجلد."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Unable to find the 'apksigner' tool."
msgstr "تعذر العثور على أداة توقيع تطبيق اندرويد\"apksigner\"."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Android build template not installed in the project. Install it from the "
"Project menu."
msgstr ""
"لم يتم تنزيل قالب بناء Android لهذا المشروع. نزّل واحداً من قائمة المشروع."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Either Debug Keystore, Debug User AND Debug Password settings must be "
"configured OR none of them."
msgstr ""
+"إما أن يتم يتكوين Ù…ÙØªØ§Ø­-المتجر للتنقيح البرمجي debug keystoreØŒ أو إعدادات "
+"مل٠وكلمة مرور التنقيح البرمجي سويةً debug user AND debug password، أو لاشيء "
+"مما سبق."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Debug keystore not configured in the Editor Settings nor in the preset."
msgstr ""
"Ù…Ùنقح أخطاء Ù…ÙØªØ§Ø­ المتجر keystore غير Ù…Ùهيئ ÙÙŠ إعدادت Ø§Ù„Ù…ÙØ­Ø±Ø± أو ÙÙŠ الإعدادات "
"الموضوعة Ø³Ù„ÙØ§Ù‹."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Either Release Keystore, Release User AND Release Password settings must be "
"configured OR none of them."
msgstr ""
+"إم أن يتم تكوين إعدادات Ù…ÙØªØ§Ø­ التصدير release keystoreØŒ أو مل٠وكلمة مرور "
+"التصدير سوية Release User AND Release Password، أو من دونهم جميعاً."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Release keystore incorrectly configured in the export preset."
msgstr "تحرر مخزن Ø§Ù„Ù…ÙØ§ØªÙŠØ­ غير Ù…Ùهيئ بشكل صحيح ÙÙŠ إعدادت المسبقة للتصدير."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
#, fuzzy
msgid "A valid Android SDK path is required in Editor Settings."
msgstr ""
"مسار حزمة تطوير Android SDK للبÙنى المخصوصة، غير صالح ÙÙŠ إعدادات Ø§Ù„Ù…ÙØ­Ø±Ø±."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
#, fuzzy
msgid "Invalid Android SDK path in Editor Settings."
msgstr ""
"مسار حزمة تطوير Android SDK للبÙنى المخصوصة، غير صالح ÙÙŠ إعدادات Ø§Ù„Ù…ÙØ­Ø±Ø±."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Missing 'platform-tools' directory!"
-msgstr ""
+msgstr "دليل Ù…Ù„ÙØ§Øª \"أدوات-المنصة platform-tools\" Ù…Ùقود!"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Unable to find Android SDK platform-tools' adb command."
-msgstr ""
+msgstr "تعذر العثور على أمر adb الخاص بأدوات النظام الأساسي لـ Android SDK."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
#, fuzzy
msgid "Please check in the Android SDK directory specified in Editor Settings."
msgstr ""
"مسار حزمة تطوير Android SDK للبÙنى المخصوصة، غير صالح ÙÙŠ إعدادات Ø§Ù„Ù…ÙØ­Ø±Ø±."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Missing 'build-tools' directory!"
-msgstr ""
+msgstr "مل٠\"أدوات البناء\"build-tools Ù…Ùقود!"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Unable to find Android SDK build-tools' apksigner command."
msgstr ""
+"تعذر العثور على أمر أدوات البناء الخاص بالأندرويد Android SDK build-tools "
+"الخاص بتوقيع مل٠apk (apksigner)."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Invalid public key for APK expansion."
msgstr "Ù…ÙØªØ§Ø­ عام غير صالح لأجل تصدير حزمة تطبيق أندرويد APK."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Invalid package name:"
msgstr "اسم Ø±ÙØ²Ù…Ø© غير صالح:"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Invalid \"GodotPaymentV3\" module included in the \"android/modules\" "
"project setting (changed in Godot 3.2.2).\n"
@@ -13375,95 +13527,87 @@ msgstr ""
"وحدة \"GodotPaymentV3\" المضمنة ÙÙŠ إعدادات المشروع \"android / modules\" غير "
"صالحة (تم تغييره ÙÙŠ Godot 3.2.2).\n"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "\"Use Custom Build\" must be enabled to use the plugins."
msgstr "يجب ØªÙØ¹ÙŠÙ„ \"Use Custom Build\" لإستخدام Ø§Ù„Ø¥Ø¶Ø§ÙØ§Øª."
-#: platform/android/export/export.cpp
-msgid ""
-"\"Degrees Of Freedom\" is only valid when \"Xr Mode\" is \"Oculus Mobile VR"
-"\"."
-msgstr ""
-"\"Degrees Of Freedom\" تكون صالحة Ùقط عندما يكون وضع ال \"Xr Mode\"هو "
-"\"Oculus Mobile VR\"."
-
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"\"Hand Tracking\" is only valid when \"Xr Mode\" is \"Oculus Mobile VR\"."
msgstr ""
"\"Hand Tracking\" تكون صالحة Ùقط عندما يكون وضع ال \"Xr Mode\"هو \"Oculus "
"Mobile VR\"."
-#: platform/android/export/export.cpp
-msgid ""
-"\"Focus Awareness\" is only valid when \"Xr Mode\" is \"Oculus Mobile VR\"."
-msgstr ""
-"\"Focus Awareness\" تكون صالحة Ùقط عندما يكون وضع ال \"Xr Mode\"هو \"Oculus "
-"Mobile VR\"."
-
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "\"Export AAB\" is only valid when \"Use Custom Build\" is enabled."
msgstr ""
+"يصبح خيار \"تصدير ABB\" صالحاً Ùقط عندما يتم اختيار \"استعمال تصدير مخصص "
+"Custom Build\"."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"'apksigner' could not be found.\n"
"Please check the command is available in the Android SDK build-tools "
"directory.\n"
"The resulting %s is unsigned."
msgstr ""
+"تعذر العثور على 'apksigner'.\n"
+"تأكد من ÙØ¶Ù„Ùƒ إن كان الأمر موجوداً ÙÙŠ دليل Ù…Ù„ÙØ§Øª أدوات-بناء الأندرويد Android "
+"SDK build-tools.\n"
+"لم يتم توقيع الناتج %s."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Signing debug %s..."
-msgstr ""
+msgstr "يتم توقيع نسخة التنقيح البرمجي %s..."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
#, fuzzy
msgid "Signing release %s..."
msgstr ""
"ÙŠÙØ­Øµ Ø§Ù„Ù…Ù„ÙØ§ØªØŒ\n"
"من ÙØ¶Ù„Ùƒ إنتظر..."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
#, fuzzy
msgid "Could not find keystore, unable to export."
msgstr "لا يمكن ÙØªØ­ القالب من أجل التصدير:"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "'apksigner' returned with error #%d"
-msgstr ""
+msgstr "أعاد 'apksigner' الخطأ التالي #%d"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
#, fuzzy
msgid "Verifying %s..."
msgstr "Ø¥Ø¶Ø§ÙØ© %s..."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "'apksigner' verification of %s failed."
-msgstr ""
+msgstr "ÙØ´Ù„ت عملية توثيق 'apksigner' Ù„ %s."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
#, fuzzy
msgid "Exporting for Android"
msgstr "تصدير الكÙÙ„"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Invalid filename! Android App Bundle requires the *.aab extension."
msgstr ""
+"اسم مل٠غير صالح! تتطلب حزمة تطبيق الأندرويد Android App Bundle لاحقة *.aab."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "APK Expansion not compatible with Android App Bundle."
-msgstr ""
+msgstr "توسيع APK غير متواÙÙ‚ مع حزمة تطبيق الأندرويد Android App Bundle."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Invalid filename! Android APK requires the *.apk extension."
-msgstr ""
+msgstr "إسم مل٠غير صالح! يتطلب مل٠APK اللاحقة ‭*.apk"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Unsupported export format!\n"
-msgstr ""
+msgstr "صيغة تصدير غير مدعومة!\n"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Trying to build from a custom built template, but no version info for it "
"exists. Please reinstall from the 'Project' menu."
@@ -13471,7 +13615,7 @@ msgstr ""
"تتم محاولة البناء من قالب بناء Ù…ÙØ®ØµØµØŒ ولكن لا تتواجد معلومات النسخة. من ÙØ¶Ù„Ùƒ "
"أعد التحميل من قائمة \"المشروع\"."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Android build version mismatch:\n"
" Template installed: %s\n"
@@ -13483,26 +13627,27 @@ msgstr ""
"\tإصدار غودوت: %s\n"
"من ÙØ¶Ù„Ùƒ أعد تنصيب قالب بناء الأندرويد Android من قائمة \"المشروع\"."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Unable to overwrite res://android/build/res/*.xml files with project name"
msgstr ""
+"تعذرت كتابة overwrite Ù…Ù„ÙØ§Øª res://android/build/res/*.xml مع اسم المشروع"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
#, fuzzy
msgid "Could not export project files to gradle project\n"
msgstr "لا قدرة على تحرير project.godot ÙÙŠ مسار المشروع."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
#, fuzzy
msgid "Could not write expansion package file!"
msgstr "لا يمكن كتابة الملÙ:"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Building Android Project (gradle)"
msgstr "بناء مشروع الأندرويد (gradle)"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Building of Android project failed, check output for the error.\n"
"Alternatively visit docs.godotengine.org for Android build documentation."
@@ -13510,58 +13655,61 @@ msgstr ""
"أخÙÙ‚ بناء مشروع الأندرويد، تÙقد Ø§Ù„Ù…ÙØ®Ø±Ø¬Ø§Øª للإطلاع على الخطأ.\n"
"بصورة بديلة يمكنك زيارة docs.godotengine.org لأجل مستندات البناء للأندرويد."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Moving output"
-msgstr ""
+msgstr "نقل المخرجات"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Unable to copy and rename export file, check gradle project directory for "
"outputs."
-msgstr ""
+msgstr "تعذر نسخ وإعادة تسمية المل٠المصدر، تÙقد مل٠مشروع gradle للمخرجات."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
#, fuzzy
msgid "Package not found: %s"
msgstr "لم يتم إيجاد الرسم المتحرك: '%s'"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
#, fuzzy
msgid "Creating APK..."
msgstr "إنشاء المحيط..."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
#, fuzzy
msgid ""
"Could not find template APK to export:\n"
"%s"
msgstr "لا يمكن ÙØªØ­ القالب من أجل التصدير:"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Missing libraries in the export template for the selected architectures: "
"%s.\n"
"Please build a template with all required libraries, or uncheck the missing "
"architectures in the export preset."
msgstr ""
+"هنالك مكاتب قوالب تصدير ناقصة بالنسبة للمعمارية المختارة: %s.\n"
+"ابن قالب التصدير متضمناً جميع المكتبات الضرورية، أو أزال اختيار المعماريات "
+"الناقصة من خيارات التصدير المعدّة مسبقاً."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
#, fuzzy
msgid "Adding files..."
msgstr "Ø¥Ø¶Ø§ÙØ© %s..."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
#, fuzzy
msgid "Could not export project files"
msgstr "لا يمكن كتابة الملÙ:"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Aligning APK..."
-msgstr ""
+msgstr "محاذاة مل٠APK..."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Could not unzip temporary unaligned APK."
-msgstr ""
+msgstr "تعذر إزالة ضغط مل٠APK المؤقت غير المصÙÙˆÙ unaligned."
#: platform/iphone/export/export.cpp platform/osx/export/export.cpp
msgid "Identifier is missing."
@@ -13636,19 +13784,19 @@ msgstr "Ù…ÙØ­Ø¯Ø¯ غير صالح:"
#: platform/osx/export/export.cpp
msgid "Notarization: code signing required."
-msgstr ""
+msgstr "التوثيق: إن توقيع Ø§Ù„Ø´ÙØ±Ø© البرمجية مطلوب."
#: platform/osx/export/export.cpp
msgid "Notarization: hardened runtime required."
-msgstr ""
+msgstr "التوثيق: إن تمكين وقت التشغيل hardened runtime مطلوب."
#: platform/osx/export/export.cpp
msgid "Notarization: Apple ID name not specified."
-msgstr ""
+msgstr "التوثيق: لم يتم تحديد اسم معر٠Apple ID."
#: platform/osx/export/export.cpp
msgid "Notarization: Apple ID password not specified."
-msgstr ""
+msgstr "التوثيق: لم يتم تحديد كلمة مرور Apple ID."
#: platform/uwp/export/export.cpp
msgid "Invalid package short name."
@@ -13751,10 +13899,14 @@ msgstr ""
#: scene/2d/collision_polygon_2d.cpp
msgid "Invalid polygon. At least 3 points are needed in 'Solids' build mode."
msgstr ""
+"مضلع غير صالح. يتطلب الأمر 3 نقاط على الأقل ÙÙŠ نمط بناء \"المواد الصلبة "
+"Solids\"."
#: scene/2d/collision_polygon_2d.cpp
msgid "Invalid polygon. At least 2 points are needed in 'Segments' build mode."
msgstr ""
+"مضلع غير صالح. يتطلب الأمر على الأقل نقطتين ÙÙŠ نمط البناء \"المتجزئ Segments"
+"\"."
#: scene/2d/collision_shape_2d.cpp
msgid ""
@@ -13798,22 +13950,25 @@ msgstr ""
#: scene/2d/joints_2d.cpp
msgid "Node A and Node B must be PhysicsBody2Ds"
msgstr ""
+"يجب على العقدة A والعقدة B أن يكونا PhysicsBody2Ds (جسم Ùيزيائي ثنائي Ø§Ù„Ø¨ÙØ¹Ø¯)"
#: scene/2d/joints_2d.cpp
msgid "Node A must be a PhysicsBody2D"
-msgstr ""
+msgstr "يجب أن تكون العقدة A من النوع PhysicsBody2D (جسم Ùيزيائي ثنائي Ø§Ù„Ø¨ÙØ¹Ø¯)"
#: scene/2d/joints_2d.cpp
msgid "Node B must be a PhysicsBody2D"
-msgstr ""
+msgstr "يجب أن تكون العقدة B من النوع PhysicsBody2D (جسم Ùيزيائي ثنائي Ø§Ù„Ø¨ÙØ¹Ø¯)"
#: scene/2d/joints_2d.cpp
msgid "Joint is not connected to two PhysicsBody2Ds"
msgstr ""
+"إن Ø§Ù„Ù…ÙØµÙ„ غير متصل مع اثنين من PhysicsBody2Ds (الأجسام الÙيزيائية ثنائية "
+"البعد)"
#: scene/2d/joints_2d.cpp
msgid "Node A and Node B must be different PhysicsBody2Ds"
-msgstr ""
+msgstr "على العقدة A وكذلك العقدة B أن يكونا PhysicsBody2Ds مختلÙين"
#: scene/2d/light_2d.cpp
msgid ""
@@ -13979,7 +14134,7 @@ msgstr ""
#: scene/3d/baked_lightmap.cpp
msgid "Finding meshes and lights"
-msgstr ""
+msgstr "إيجاد السطوح meshes والأضواء"
#: scene/3d/baked_lightmap.cpp
msgid "Preparing geometry (%d/%d)"
@@ -14115,6 +14270,14 @@ msgstr ""
"يجب أن يكون نموذج-مجسم-التنقل (NavigationMeshInstance) تابعًا أو Ø­Ùيدًا لعقدة "
"التنقل (Navigation node). انه ÙŠÙˆÙØ± Ùقط بيانات التنقل."
+#: scene/3d/occluder.cpp
+msgid "No shape is set."
+msgstr ""
+
+#: scene/3d/occluder.cpp
+msgid "Only uniform scales are supported."
+msgstr ""
+
#: scene/3d/particles.cpp
msgid ""
"GPU-based particles are not supported by the GLES2 video driver.\n"
@@ -14442,6 +14605,14 @@ msgstr "يجب أن يستخدم صيغة صحيحة."
msgid "Enable grid minimap."
msgstr "ØªÙØ¹ÙŠÙ„ الخريطة المصغرة للشبكة."
+#: scene/gui/nine_patch_rect.cpp
+msgid ""
+"The Tile and Tile Fit options for Axis Stretch properties are only effective "
+"when using the GLES3 rendering backend.\n"
+"The GLES2 backend is currently in use, so these modes will act like Stretch "
+"instead."
+msgstr ""
+
#: scene/gui/popup.cpp
msgid ""
"Popups will hide by default unless you call popup() or any of the popup*() "
@@ -14492,6 +14663,10 @@ msgstr ""
msgid "Viewport size must be greater than 0 to render anything."
msgstr "ينبغي أن يكون حجم إطار العرض أكبر من 0 ليتم الإخراج البصري لأي شيء."
+#: scene/resources/occluder_shape.cpp
+msgid "OccluderShapeSphere Set Spheres"
+msgstr ""
+
#: scene/resources/visual_shader_nodes.cpp
msgid ""
"The sampler port is connected but not used. Consider changing the source to "
@@ -14543,6 +14718,41 @@ msgstr "التعين للإنتظام."
msgid "Constants cannot be modified."
msgstr "لا يمكن تعديل الثوابت."
+#~ msgid "Make Rest Pose (From Bones)"
+#~ msgstr "إنشاء وضعية الراحة (من العظام)"
+
+#~ msgid "Bottom"
+#~ msgstr "الأسÙÙ„"
+
+#~ msgid "Left"
+#~ msgstr "اليسار"
+
+#~ msgid "Right"
+#~ msgstr "اليمين"
+
+#~ msgid "Front"
+#~ msgstr "الأمام"
+
+#~ msgid "Rear"
+#~ msgstr "الخلÙ"
+
+#~ msgid "Nameless gizmo"
+#~ msgstr "أداة (gizmo) غير مسماة"
+
+#~ msgid ""
+#~ "\"Degrees Of Freedom\" is only valid when \"Xr Mode\" is \"Oculus Mobile "
+#~ "VR\"."
+#~ msgstr ""
+#~ "\"Degrees Of Freedom\" تكون صالحة Ùقط عندما يكون وضع ال \"Xr Mode\"هو "
+#~ "\"Oculus Mobile VR\"."
+
+#~ msgid ""
+#~ "\"Focus Awareness\" is only valid when \"Xr Mode\" is \"Oculus Mobile VR"
+#~ "\"."
+#~ msgstr ""
+#~ "\"Focus Awareness\" تكون صالحة Ùقط عندما يكون وضع ال \"Xr Mode\"هو "
+#~ "\"Oculus Mobile VR\"."
+
#~ msgid "Package Contents:"
#~ msgstr "محتويات الرزمة:"
diff --git a/editor/translations/az.po b/editor/translations/az.po
index 6c07f98d38..1965e41921 100644
--- a/editor/translations/az.po
+++ b/editor/translations/az.po
@@ -4,18 +4,19 @@
# This file is distributed under the same license as the Godot source code.
#
# Jafar Tarverdiyev <cefertarverdiyevv@gmail.com>, 2021.
+# Lucifer25x <umudyt2006@gmail.com>, 2021.
msgid ""
msgstr ""
"Project-Id-Version: Godot Engine editor\n"
-"PO-Revision-Date: 2021-05-14 11:20+0000\n"
-"Last-Translator: Jafar Tarverdiyev <cefertarverdiyevv@gmail.com>\n"
+"PO-Revision-Date: 2021-09-16 14:36+0000\n"
+"Last-Translator: Lucifer25x <umudyt2006@gmail.com>\n"
"Language-Team: Azerbaijani <https://hosted.weblate.org/projects/godot-engine/"
"godot/az/>\n"
"Language: az\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8-bit\n"
"Plural-Forms: nplurals=2; plural=n != 1;\n"
-"X-Generator: Weblate 4.7-dev\n"
+"X-Generator: Weblate 4.9-dev\n"
#: core/math/expression.cpp modules/gdscript/gdscript_functions.cpp
#: modules/visual_script/visual_script_builtin_funcs.cpp
@@ -402,8 +403,9 @@ msgstr "AnimationPlayer özünü canlandıra bilməz, yalnız digər playerlər.
#. TRANSLATORS: This describes the target of new animation track, will be inserted into another string.
#: editor/animation_track_editor.cpp
+#, fuzzy
msgid "property '%s'"
-msgstr ""
+msgstr "özəllik '%s'"
#: editor/animation_track_editor.cpp
msgid "Anim Create & Insert"
@@ -497,7 +499,7 @@ msgstr "Animasya Köçürmə Açarları"
#: editor/animation_track_editor.cpp
#: modules/visual_script/visual_script_editor.cpp
msgid "Clipboard is empty!"
-msgstr ""
+msgstr "Pano boÅŸdur!"
#: editor/animation_track_editor.cpp
#, fuzzy
@@ -621,7 +623,7 @@ msgstr "ÆvvÉ™lki addıma keç"
#: editor/animation_track_editor.cpp
msgid "Apply Reset"
-msgstr ""
+msgstr "Sıfırla"
#: editor/animation_track_editor.cpp
msgid "Optimize Animation"
@@ -990,11 +992,11 @@ msgstr "Yeni %s yarat"
#: editor/create_dialog.cpp editor/plugins/asset_library_editor_plugin.cpp
msgid "No results for \"%s\"."
-msgstr ""
+msgstr "\"%s\" üçün nəticə yoxdur."
#: editor/create_dialog.cpp editor/property_selector.cpp
msgid "No description available for %s."
-msgstr ""
+msgstr "%s üçün heç bir təsvir yoxdur."
#: editor/create_dialog.cpp editor/editor_file_dialog.cpp
#: editor/filesystem_dock.cpp
@@ -1054,7 +1056,7 @@ msgstr ""
msgid "Dependencies"
msgstr "Asılılıqlar"
-#: editor/dependency_editor.cpp
+#: editor/dependency_editor.cpp editor/editor_resource_picker.cpp
msgid "Resource"
msgstr "Mənbə"
@@ -1189,7 +1191,7 @@ msgstr "Godot topluluğundan təşəkkürlər!"
#: editor/editor_about.cpp editor/editor_node.cpp editor/project_manager.cpp
msgid "Click to copy."
-msgstr ""
+msgstr "Kopyalamaq üçün vurun."
#: editor/editor_about.cpp
msgid "Godot Engine contributors"
@@ -1287,20 +1289,24 @@ msgid "Licenses"
msgstr "Lisenziyalar"
#: editor/editor_asset_installer.cpp
+#, fuzzy
msgid "Error opening asset file for \"%s\" (not in ZIP format)."
-msgstr ""
+msgstr "\"%S\" üçün aktiv faylını açarkən xəta oldu (ZIP formatında deyil)."
#: editor/editor_asset_installer.cpp
msgid "%s (already exists)"
-msgstr ""
+msgstr "%s (artıq mövcuddur)"
#: editor/editor_asset_installer.cpp
msgid "Contents of asset \"%s\" - %d file(s) conflict with your project:"
msgstr ""
+"\" %S\" aktivinin məzmunu - %d fayl(lar) layihənizlə ziddiyyət təşkil edir:"
#: editor/editor_asset_installer.cpp
+#, fuzzy
msgid "Contents of asset \"%s\" - No files conflict with your project:"
msgstr ""
+"\"%s\" aktivinin məzmunu - Layihənizlə heç bir fayl ziddiyyət təşkil etmir:"
#: editor/editor_asset_installer.cpp
msgid "Uncompressing Assets"
@@ -1321,11 +1327,11 @@ msgstr ""
#: editor/editor_asset_installer.cpp
#: editor/plugins/asset_library_editor_plugin.cpp
msgid "Success!"
-msgstr ""
+msgstr "UÄŸur!"
#: editor/editor_asset_installer.cpp editor/editor_node.cpp
msgid "Install"
-msgstr ""
+msgstr "Quraşdır"
#: editor/editor_asset_installer.cpp
msgid "Asset Installer"
@@ -1385,7 +1391,7 @@ msgstr ""
#: editor/editor_audio_buses.cpp
msgid "Mute"
-msgstr ""
+msgstr "Səssiz"
#: editor/editor_audio_buses.cpp
msgid "Bypass"
@@ -1697,13 +1703,13 @@ msgid ""
"Enabled'."
msgstr ""
-#: editor/editor_export.cpp platform/android/export/export.cpp
+#: editor/editor_export.cpp platform/android/export/export_plugin.cpp
#: platform/iphone/export/export.cpp platform/javascript/export/export.cpp
#: platform/osx/export/export.cpp platform/uwp/export/export.cpp
msgid "Custom debug template not found."
msgstr ""
-#: editor/editor_export.cpp platform/android/export/export.cpp
+#: editor/editor_export.cpp platform/android/export/export_plugin.cpp
#: platform/iphone/export/export.cpp platform/javascript/export/export.cpp
#: platform/osx/export/export.cpp platform/uwp/export/export.cpp
msgid "Custom release template not found."
@@ -2075,7 +2081,7 @@ msgstr ""
msgid "(Re)Importing Assets"
msgstr ""
-#: editor/editor_help.cpp editor/plugins/spatial_editor_plugin.cpp
+#: editor/editor_help.cpp
msgid "Top"
msgstr ""
@@ -2553,6 +2559,30 @@ msgid "Current scene not saved. Open anyway?"
msgstr ""
#: editor/editor_node.cpp
+msgid "Can't undo while mouse buttons are pressed."
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "Nothing to undo."
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "Undo: %s"
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "Can't redo while mouse buttons are pressed."
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "Nothing to redo."
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "Redo: %s"
+msgstr ""
+
+#: editor/editor_node.cpp
msgid "Can't reload a scene that was never saved."
msgstr ""
@@ -3176,6 +3206,11 @@ msgid "Merge With Existing"
msgstr ""
#: editor/editor_node.cpp
+#, fuzzy
+msgid "Apply MeshInstance Transforms"
+msgstr "Animasya transformasiyasını dəyiş"
+
+#: editor/editor_node.cpp
msgid "Open & Run a Script"
msgstr ""
@@ -3418,6 +3453,10 @@ msgid ""
"property (%s)."
msgstr ""
+#: editor/editor_resource_picker.cpp
+msgid "Quick Load"
+msgstr ""
+
#: editor/editor_resource_picker.cpp editor/property_editor.cpp
msgid "Make Unique"
msgstr ""
@@ -5462,6 +5501,16 @@ msgid "Move CanvasItem \"%s\" to (%d, %d)"
msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Locked"
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Grouped"
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
msgid ""
"Children of containers have their anchors and margins values overridden by "
"their parent."
@@ -6367,7 +6416,11 @@ msgid "Remove Selected Item"
msgstr ""
#: editor/plugins/mesh_library_editor_plugin.cpp
-msgid "Import from Scene"
+msgid "Import from Scene (Ignore Transforms)"
+msgstr ""
+
+#: editor/plugins/mesh_library_editor_plugin.cpp
+msgid "Import from Scene (Apply Transforms)"
msgstr ""
#: editor/plugins/mesh_library_editor_plugin.cpp
@@ -6953,6 +7006,14 @@ msgstr "Bezier Nöqtələrini Köçür"
msgid "Flip Portal"
msgstr ""
+#: editor/plugins/room_manager_editor_plugin.cpp
+msgid "Occluder Set Transform"
+msgstr ""
+
+#: editor/plugins/room_manager_editor_plugin.cpp
+msgid "Center Node"
+msgstr ""
+
#: editor/plugins/root_motion_editor_plugin.cpp
msgid "AnimationTree has no path set to an AnimationPlayer"
msgstr ""
@@ -7447,11 +7508,11 @@ msgid "Skeleton2D"
msgstr ""
#: editor/plugins/skeleton_2d_editor_plugin.cpp
-msgid "Make Rest Pose (From Bones)"
+msgid "Reset to Rest Pose"
msgstr ""
#: editor/plugins/skeleton_2d_editor_plugin.cpp
-msgid "Set Bones to Rest Pose"
+msgid "Overwrite Rest Pose"
msgstr ""
#: editor/plugins/skeleton_editor_plugin.cpp
@@ -7479,6 +7540,60 @@ msgid "Perspective"
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Top Orthogonal"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Top Perspective"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Bottom Orthogonal"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Bottom Perspective"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Left Orthogonal"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Right Perspective"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Right Orthogonal"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Front Orthogonal"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Front Perspective"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Rear Orthogonal"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Rear Perspective"
+msgstr ""
+
+#. TRANSLATORS: This will be appended to the view name when Auto Orthogonal is enabled.
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid " [auto]"
+msgstr ""
+
+#. TRANSLATORS: This will be appended to the view name when Portal Occulusion is enabled.
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid " [portals active]"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
msgid "Transform Aborted."
msgstr ""
@@ -7586,42 +7701,22 @@ msgid "Bottom View."
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
-msgid "Bottom"
-msgstr ""
-
-#: editor/plugins/spatial_editor_plugin.cpp
msgid "Left View."
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
-msgid "Left"
-msgstr ""
-
-#: editor/plugins/spatial_editor_plugin.cpp
msgid "Right View."
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
-msgid "Right"
-msgstr ""
-
-#: editor/plugins/spatial_editor_plugin.cpp
msgid "Front View."
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
-msgid "Front"
-msgstr ""
-
-#: editor/plugins/spatial_editor_plugin.cpp
msgid "Rear View."
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
-msgid "Rear"
-msgstr ""
-
-#: editor/plugins/spatial_editor_plugin.cpp
msgid "Align Transform with View"
msgstr ""
@@ -7883,6 +7978,10 @@ msgid "View Portal Culling"
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
+msgid "View Occlusion Culling"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
#: modules/gridmap/grid_map_editor_plugin.cpp
msgid "Settings..."
msgstr ""
@@ -7948,7 +8047,7 @@ msgid "Post"
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
-msgid "Nameless gizmo"
+msgid "Unnamed Gizmo"
msgstr ""
#: editor/plugins/sprite_editor_plugin.cpp
@@ -11854,6 +11953,14 @@ msgstr ""
msgid "Set Portal Point Position"
msgstr ""
+#: editor/spatial_editor_gizmos.cpp
+msgid "Set Occluder Sphere Radius"
+msgstr ""
+
+#: editor/spatial_editor_gizmos.cpp
+msgid "Set Occluder Sphere Position"
+msgstr ""
+
#: modules/csg/csg_gizmos.cpp
msgid "Change Cylinder Radius"
msgstr ""
@@ -12135,6 +12242,10 @@ msgstr ""
msgid "Class name can't be a reserved keyword"
msgstr ""
+#: modules/mono/csharp_script.cpp
+msgid "Build Solution"
+msgstr ""
+
#: modules/mono/mono_gd/gd_mono_utils.cpp
msgid "End of inner exception stack trace"
msgstr ""
@@ -12603,159 +12714,148 @@ msgstr ""
msgid "Get %s"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Package name is missing."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Package segments must be of non-zero length."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "The character '%s' is not allowed in Android application package names."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "A digit cannot be the first character in a package segment."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "The character '%s' cannot be the first character in a package segment."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "The package must have at least one '.' separator."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Select device from the list"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Running on %s"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Exporting APK..."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Uninstalling..."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Installing to device, please wait..."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Could not install to device: %s"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Running on device..."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Could not execute on device."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Unable to find the 'apksigner' tool."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Android build template not installed in the project. Install it from the "
"Project menu."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Either Debug Keystore, Debug User AND Debug Password settings must be "
"configured OR none of them."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Debug keystore not configured in the Editor Settings nor in the preset."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Either Release Keystore, Release User AND Release Password settings must be "
"configured OR none of them."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Release keystore incorrectly configured in the export preset."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "A valid Android SDK path is required in Editor Settings."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Invalid Android SDK path in Editor Settings."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Missing 'platform-tools' directory!"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Unable to find Android SDK platform-tools' adb command."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Please check in the Android SDK directory specified in Editor Settings."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Missing 'build-tools' directory!"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Unable to find Android SDK build-tools' apksigner command."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Invalid public key for APK expansion."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Invalid package name:"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Invalid \"GodotPaymentV3\" module included in the \"android/modules\" "
"project setting (changed in Godot 3.2.2).\n"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "\"Use Custom Build\" must be enabled to use the plugins."
msgstr ""
-#: platform/android/export/export.cpp
-msgid ""
-"\"Degrees Of Freedom\" is only valid when \"Xr Mode\" is \"Oculus Mobile VR"
-"\"."
-msgstr ""
-
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"\"Hand Tracking\" is only valid when \"Xr Mode\" is \"Oculus Mobile VR\"."
msgstr ""
-#: platform/android/export/export.cpp
-msgid ""
-"\"Focus Awareness\" is only valid when \"Xr Mode\" is \"Oculus Mobile VR\"."
-msgstr ""
-
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "\"Export AAB\" is only valid when \"Use Custom Build\" is enabled."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"'apksigner' could not be found.\n"
"Please check the command is available in the Android SDK build-tools "
@@ -12763,57 +12863,57 @@ msgid ""
"The resulting %s is unsigned."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Signing debug %s..."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Signing release %s..."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Could not find keystore, unable to export."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "'apksigner' returned with error #%d"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Verifying %s..."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "'apksigner' verification of %s failed."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Exporting for Android"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Invalid filename! Android App Bundle requires the *.aab extension."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "APK Expansion not compatible with Android App Bundle."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Invalid filename! Android APK requires the *.apk extension."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Unsupported export format!\n"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Trying to build from a custom built template, but no version info for it "
"exists. Please reinstall from the 'Project' menu."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Android build version mismatch:\n"
" Template installed: %s\n"
@@ -12821,54 +12921,54 @@ msgid ""
"Please reinstall Android build template from 'Project' menu."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Unable to overwrite res://android/build/res/*.xml files with project name"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Could not export project files to gradle project\n"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Could not write expansion package file!"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Building Android Project (gradle)"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Building of Android project failed, check output for the error.\n"
"Alternatively visit docs.godotengine.org for Android build documentation."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Moving output"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Unable to copy and rename export file, check gradle project directory for "
"outputs."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Package not found: %s"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Creating APK..."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Could not find template APK to export:\n"
"%s"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Missing libraries in the export template for the selected architectures: "
"%s.\n"
@@ -12876,19 +12976,19 @@ msgid ""
"architectures in the export preset."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Adding files..."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Could not export project files"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Aligning APK..."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Could not unzip temporary unaligned APK."
msgstr ""
@@ -13338,6 +13438,14 @@ msgid ""
"It only provides navigation data."
msgstr ""
+#: scene/3d/occluder.cpp
+msgid "No shape is set."
+msgstr ""
+
+#: scene/3d/occluder.cpp
+msgid "Only uniform scales are supported."
+msgstr ""
+
#: scene/3d/particles.cpp
msgid ""
"GPU-based particles are not supported by the GLES2 video driver.\n"
@@ -13627,6 +13735,14 @@ msgstr ""
msgid "Enable grid minimap."
msgstr ""
+#: scene/gui/nine_patch_rect.cpp
+msgid ""
+"The Tile and Tile Fit options for Axis Stretch properties are only effective "
+"when using the GLES3 rendering backend.\n"
+"The GLES2 backend is currently in use, so these modes will act like Stretch "
+"instead."
+msgstr ""
+
#: scene/gui/popup.cpp
msgid ""
"Popups will hide by default unless you call popup() or any of the popup*() "
@@ -13667,6 +13783,10 @@ msgstr ""
msgid "Viewport size must be greater than 0 to render anything."
msgstr ""
+#: scene/resources/occluder_shape.cpp
+msgid "OccluderShapeSphere Set Spheres"
+msgstr ""
+
#: scene/resources/visual_shader_nodes.cpp
msgid ""
"The sampler port is connected but not used. Consider changing the source to "
diff --git a/editor/translations/bg.po b/editor/translations/bg.po
index 3045c7b781..7aab99c847 100644
--- a/editor/translations/bg.po
+++ b/editor/translations/bg.po
@@ -17,7 +17,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Godot Engine editor\n"
"POT-Creation-Date: \n"
-"PO-Revision-Date: 2021-03-10 22:14+0000\n"
+"PO-Revision-Date: 2021-09-20 14:46+0000\n"
"Last-Translator: Любомир ВаÑилев <lyubomirv@gmx.com>\n"
"Language-Team: Bulgarian <https://hosted.weblate.org/projects/godot-engine/"
"godot/bg/>\n"
@@ -26,7 +26,7 @@ msgstr ""
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=n != 1;\n"
-"X-Generator: Weblate 4.5.2-dev\n"
+"X-Generator: Weblate 4.9-dev\n"
#: core/math/expression.cpp modules/gdscript/gdscript_functions.cpp
#: modules/visual_script/visual_script_builtin_funcs.cpp
@@ -377,15 +377,13 @@ msgstr ""
#. TRANSLATORS: This describes the target of new animation track, will be inserted into another string.
#: editor/animation_track_editor.cpp
-#, fuzzy
msgid "node '%s'"
-msgstr "Избиране на вÑичко"
+msgstr "възел „%s“"
#. TRANSLATORS: This describes the target of new animation track, will be inserted into another string.
#: editor/animation_track_editor.cpp
-#, fuzzy
msgid "animation"
-msgstr "ÐнимациÑ"
+msgstr "анимациÑ"
#: editor/animation_track_editor.cpp
msgid "AnimationPlayer can't animate itself, only other players."
@@ -393,9 +391,8 @@ msgstr ""
#. TRANSLATORS: This describes the target of new animation track, will be inserted into another string.
#: editor/animation_track_editor.cpp
-#, fuzzy
msgid "property '%s'"
-msgstr "СвойÑтво"
+msgstr "ÑвойÑтво „%s“"
#: editor/animation_track_editor.cpp
msgid "Anim Create & Insert"
@@ -610,9 +607,8 @@ msgid "Use Bezier Curves"
msgstr ""
#: editor/animation_track_editor.cpp
-#, fuzzy
msgid "Create RESET Track(s)"
-msgstr "ПоÑтавÑне на пътечки"
+msgstr "Създаване на пътечка/и за ÐУЛИРÐÐЕ"
#: editor/animation_track_editor.cpp
msgid "Anim. Optimizer"
@@ -933,9 +929,8 @@ msgid "Edit..."
msgstr "Редактиране..."
#: editor/connections_dialog.cpp
-#, fuzzy
msgid "Go to Method"
-msgstr "Преминаване към метода"
+msgstr "Към метода"
#: editor/create_dialog.cpp
msgid "Change %s Type"
@@ -1011,7 +1006,7 @@ msgstr ""
msgid "Dependencies"
msgstr "ЗавиÑимоÑти"
-#: editor/dependency_editor.cpp
+#: editor/dependency_editor.cpp editor/editor_resource_picker.cpp
msgid "Resource"
msgstr ""
@@ -1051,14 +1046,14 @@ msgid "Owners Of:"
msgstr ""
#: editor/dependency_editor.cpp
-#, fuzzy
msgid ""
"Remove the selected files from the project? (Cannot be undone.)\n"
"Depending on your filesystem configuration, the files will either be moved "
"to the system trash or deleted permanently."
msgstr ""
-"Да Ñе премахнат ли избраните файлове от проекта? (ДейÑтвието е необратимо)\n"
-"Ще можете да ги откриете в кошчето, ако иÑкате да ги възÑтановите."
+"Да Ñе премахнат ли избраните файлове от проекта? (ДейÑтвието е необратимо.)\n"
+"Според наÑтройката на файловата Ви ÑиÑтема, файловете ще бъдат или "
+"премеÑтени в кошчето, или окончателно изтрити."
#: editor/dependency_editor.cpp
msgid ""
@@ -1237,9 +1232,8 @@ msgid "Error opening asset file for \"%s\" (not in ZIP format)."
msgstr ""
#: editor/editor_asset_installer.cpp
-#, fuzzy
msgid "%s (already exists)"
-msgstr "%s (Вече ÑъщеÑтвува)"
+msgstr "%s (вече ÑъщеÑтвува)"
#: editor/editor_asset_installer.cpp
msgid "Contents of asset \"%s\" - %d file(s) conflict with your project:"
@@ -1254,16 +1248,12 @@ msgid "Uncompressing Assets"
msgstr "Разархивиране на реÑурÑите"
#: editor/editor_asset_installer.cpp
-#, fuzzy
msgid "The following files failed extraction from asset \"%s\":"
-msgstr ""
-"Следните файлове Ñа по-нови на диÑка.\n"
-"Кое дейÑтвие трÑбва да Ñе предприеме?:"
+msgstr "Следните файлове не уÑпÑха да бъдат изнеÑени от материала „%s“:"
#: editor/editor_asset_installer.cpp
-#, fuzzy
msgid "(and %s more files)"
-msgstr "И още %s файл(а)."
+msgstr "(и още %s файла)"
#: editor/editor_asset_installer.cpp
msgid "Asset \"%s\" installed successfully!"
@@ -1279,9 +1269,8 @@ msgid "Install"
msgstr "ИнÑталиране"
#: editor/editor_asset_installer.cpp
-#, fuzzy
msgid "Asset Installer"
-msgstr "ИнÑталиране"
+msgstr "ИнÑталатор на реÑурÑи"
#: editor/editor_audio_buses.cpp
msgid "Speakers"
@@ -1344,7 +1333,6 @@ msgid "Bypass"
msgstr ""
#: editor/editor_audio_buses.cpp
-#, fuzzy
msgid "Bus Options"
msgstr "ÐаÑтройки на шината"
@@ -1541,9 +1529,8 @@ msgid "Name"
msgstr ""
#: editor/editor_autoload_settings.cpp
-#, fuzzy
msgid "Global Variable"
-msgstr "Преименуване на променливата"
+msgstr "Глобална променлива"
#: editor/editor_data.cpp
msgid "Paste Params"
@@ -1651,13 +1638,13 @@ msgid ""
"Enabled'."
msgstr ""
-#: editor/editor_export.cpp platform/android/export/export.cpp
+#: editor/editor_export.cpp platform/android/export/export_plugin.cpp
#: platform/iphone/export/export.cpp platform/javascript/export/export.cpp
#: platform/osx/export/export.cpp platform/uwp/export/export.cpp
msgid "Custom debug template not found."
msgstr ""
-#: editor/editor_export.cpp platform/android/export/export.cpp
+#: editor/editor_export.cpp platform/android/export/export_plugin.cpp
#: platform/iphone/export/export.cpp platform/javascript/export/export.cpp
#: platform/osx/export/export.cpp platform/uwp/export/export.cpp
msgid "Custom release template not found."
@@ -1772,18 +1759,16 @@ msgid "Enable Contextual Editor"
msgstr ""
#: editor/editor_feature_profile.cpp
-#, fuzzy
msgid "Class Properties:"
-msgstr "Свиване на вÑички ÑвойÑтва"
+msgstr "СвойÑтва на клаÑа:"
#: editor/editor_feature_profile.cpp
msgid "Main Features:"
msgstr ""
#: editor/editor_feature_profile.cpp
-#, fuzzy
msgid "Nodes and Classes:"
-msgstr "Включени клаÑове:"
+msgstr "Възли и клаÑове:"
#: editor/editor_feature_profile.cpp
msgid "File '%s' format is invalid, import aborted."
@@ -1800,7 +1785,6 @@ msgid "Error saving profile to path: '%s'."
msgstr "Грешка при запазването на профила в: „%s“."
#: editor/editor_feature_profile.cpp
-#, fuzzy
msgid "Reset to Default"
msgstr "Връщане на Ñтандартните наÑтройки"
@@ -1809,14 +1793,12 @@ msgid "Current Profile:"
msgstr "Текущ профил:"
#: editor/editor_feature_profile.cpp
-#, fuzzy
msgid "Create Profile"
-msgstr "Изтриване на профила"
+msgstr "Създаване на профил"
#: editor/editor_feature_profile.cpp
-#, fuzzy
msgid "Remove Profile"
-msgstr "Премахване на плочката"
+msgstr "Изтриване на профила"
#: editor/editor_feature_profile.cpp
msgid "Available Profiles:"
@@ -1836,14 +1818,12 @@ msgid "Export"
msgstr "ИзнаÑÑне"
#: editor/editor_feature_profile.cpp
-#, fuzzy
msgid "Configure Selected Profile:"
-msgstr "Текущ профил:"
+msgstr "ÐаÑтройка на Ð¸Ð·Ð±Ñ€Ð°Ð½Ð¸Ñ Ð¿Ñ€Ð¾Ñ„Ð¸Ð»:"
#: editor/editor_feature_profile.cpp
-#, fuzzy
msgid "Extra Options:"
-msgstr "ÐаÑтройки на клаÑа:"
+msgstr "Допълнителни наÑтройки:"
#: editor/editor_feature_profile.cpp
msgid "Create or import a profile to edit available classes and properties."
@@ -1874,7 +1854,6 @@ msgid "Select Current Folder"
msgstr "Избиране на текущата папка"
#: editor/editor_file_dialog.cpp scene/gui/file_dialog.cpp
-#, fuzzy
msgid "File exists, overwrite?"
msgstr "Файлът ÑъщеÑтвува. ИÑкате ли да го презапишете?"
@@ -2035,7 +2014,7 @@ msgstr ""
msgid "(Re)Importing Assets"
msgstr "(Повторно) внаÑÑне на реÑурÑите"
-#: editor/editor_help.cpp editor/plugins/spatial_editor_plugin.cpp
+#: editor/editor_help.cpp
msgid "Top"
msgstr ""
@@ -2513,6 +2492,30 @@ msgid "Current scene not saved. Open anyway?"
msgstr "Текущата Ñцена не е запазена. ОтварÑне въпреки това?"
#: editor/editor_node.cpp
+msgid "Can't undo while mouse buttons are pressed."
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "Nothing to undo."
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "Undo: %s"
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "Can't redo while mouse buttons are pressed."
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "Nothing to redo."
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "Redo: %s"
+msgstr ""
+
+#: editor/editor_node.cpp
msgid "Can't reload a scene that was never saved."
msgstr "Сцена, коÑто никога не е била запазвана, не може да бъде презаредена."
@@ -2589,14 +2592,14 @@ msgid "Unable to load addon script from path: '%s'."
msgstr "Ðе може да Ñе зареди добавката-Ñкрипт от: „%s“."
#: editor/editor_node.cpp
-#, fuzzy
msgid ""
"Unable to load addon script from path: '%s'. This might be due to a code "
"error in that script.\n"
"Disabling the addon at '%s' to prevent further errors."
msgstr ""
-"Ðе може да Ñе зареди добавката-Ñкрипт от: „%s“. Изглежда има грешка в кода. "
-"МолÑ, проверете ÑинтакÑиÑа."
+"Ðе може да Ñе зареди добавката-Ñкрипт от: „%s“. Възможно е да има грешка в "
+"кода.\n"
+"Добавката „%s“ ще бъде изключена, за да Ñе предотвратÑÑ‚ поÑледващи проблеми."
#: editor/editor_node.cpp
msgid ""
@@ -2861,9 +2864,8 @@ msgid "Orphan Resource Explorer..."
msgstr ""
#: editor/editor_node.cpp
-#, fuzzy
msgid "Reload Current Project"
-msgstr "Преименуване на проекта"
+msgstr "Презареждане на Ñ‚ÐµÐºÑƒÑ‰Ð¸Ñ Ð¿Ñ€Ð¾ÐµÐºÑ‚"
#: editor/editor_node.cpp
msgid "Quit to Project List"
@@ -3001,9 +3003,8 @@ msgid "Help"
msgstr ""
#: editor/editor_node.cpp
-#, fuzzy
msgid "Online Documentation"
-msgstr "ОтварÑне на документациÑта"
+msgstr "Ð”Ð¾ÐºÑƒÐ¼ÐµÐ½Ñ‚Ð°Ñ†Ð¸Ñ Ð² Интернет"
#: editor/editor_node.cpp
msgid "Questions & Answers"
@@ -3026,9 +3027,8 @@ msgid "Community"
msgstr ""
#: editor/editor_node.cpp
-#, fuzzy
msgid "About Godot"
-msgstr "ОтноÑно"
+msgstr "ОтноÑно Godot"
#: editor/editor_node.cpp
msgid "Support Godot Development"
@@ -3120,9 +3120,8 @@ msgid "Manage Templates"
msgstr "Управление на шаблоните"
#: editor/editor_node.cpp
-#, fuzzy
msgid "Install from file"
-msgstr "ИнÑталиране и редактиране"
+msgstr "ИнÑталиране от файл"
#: editor/editor_node.cpp
#, fuzzy
@@ -3165,6 +3164,11 @@ msgid "Merge With Existing"
msgstr ""
#: editor/editor_node.cpp
+#, fuzzy
+msgid "Apply MeshInstance Transforms"
+msgstr "ПромÑна на транÑÑ„Ð¾Ñ€Ð¼Ð°Ñ†Ð¸Ñ (ÐнимациÑ)"
+
+#: editor/editor_node.cpp
msgid "Open & Run a Script"
msgstr ""
@@ -3187,9 +3191,8 @@ msgid "Resave"
msgstr "ПрезапиÑване"
#: editor/editor_node.cpp
-#, fuzzy
msgid "New Inherited"
-msgstr "Ðов Ñкрипт"
+msgstr "Ðова наÑледена Ñцена"
#: editor/editor_node.cpp
msgid "Load Errors"
@@ -3200,9 +3203,8 @@ msgid "Select"
msgstr ""
#: editor/editor_node.cpp
-#, fuzzy
msgid "Select Current"
-msgstr "Избиране на текущата папка"
+msgstr "Избиране на текущото"
#: editor/editor_node.cpp
msgid "Open 2D Editor"
@@ -3265,14 +3267,12 @@ msgid "Update"
msgstr ""
#: editor/editor_plugin_settings.cpp
-#, fuzzy
msgid "Version"
-msgstr "ВерÑиÑ:"
+msgstr "ВерÑиÑ"
#: editor/editor_plugin_settings.cpp
-#, fuzzy
msgid "Author"
-msgstr "Ðвтори"
+msgstr "Ðвтор"
#: editor/editor_plugin_settings.cpp
#: editor/plugins/version_control_editor_plugin.cpp
@@ -3285,9 +3285,8 @@ msgid "Measure:"
msgstr ""
#: editor/editor_profiler.cpp
-#, fuzzy
msgid "Frame Time (ms)"
-msgstr "Време (Ñек): "
+msgstr "ПродължителноÑÑ‚ на кадъра (мÑек)"
#: editor/editor_profiler.cpp
msgid "Average Time (ms)"
@@ -3412,6 +3411,10 @@ msgid ""
"property (%s)."
msgstr ""
+#: editor/editor_resource_picker.cpp
+msgid "Quick Load"
+msgstr ""
+
#: editor/editor_resource_picker.cpp editor/property_editor.cpp
msgid "Make Unique"
msgstr ""
@@ -3431,9 +3434,8 @@ msgid "Paste"
msgstr "ПоÑтавÑне"
#: editor/editor_resource_picker.cpp editor/property_editor.cpp
-#, fuzzy
msgid "Convert to %s"
-msgstr "Преобразуване в Mesh2D"
+msgstr "Преобразуване в %s"
#: editor/editor_resource_picker.cpp editor/property_editor.cpp
msgid "New %s"
@@ -3511,9 +3513,8 @@ msgid "There are no mirrors available."
msgstr ""
#: editor/export_template_manager.cpp
-#, fuzzy
msgid "Retrieving the mirror list..."
-msgstr "Свързване Ñ Ð¾Ð³Ð»ÐµÐ´Ð°Ð»Ð½Ð¾Ñ‚Ð¾ меÑтоположение..."
+msgstr "Получаване на ÑпиÑъка Ñ Ð¾Ð³Ð»ÐµÐ´Ð°Ð»Ð½Ð¸ меÑтоположениÑ..."
#: editor/export_template_manager.cpp
msgid "Starting the download..."
@@ -3524,7 +3525,6 @@ msgid "Error requesting URL:"
msgstr "Грешка при заÑвката за адреÑ:"
#: editor/export_template_manager.cpp
-#, fuzzy
msgid "Connecting to the mirror..."
msgstr "Свързване Ñ Ð¾Ð³Ð»ÐµÐ´Ð°Ð»Ð½Ð¾Ñ‚Ð¾ меÑтоположение..."
@@ -3533,9 +3533,8 @@ msgid "Can't resolve the requested address."
msgstr ""
#: editor/export_template_manager.cpp
-#, fuzzy
msgid "Can't connect to the mirror."
-msgstr "Свързване Ñ Ð¾Ð³Ð»ÐµÐ´Ð°Ð»Ð½Ð¾Ñ‚Ð¾ меÑтоположение..."
+msgstr "Огледалното меÑтоположение е недоÑтъпно."
#: editor/export_template_manager.cpp
msgid "No response from the mirror."
@@ -3547,14 +3546,12 @@ msgid "Request failed."
msgstr "ЗаÑвката беше неуÑпешна."
#: editor/export_template_manager.cpp
-#, fuzzy
msgid "Request ended up in a redirect loop."
-msgstr "ЗаÑвката Ñе провали. Твърде много пренаÑочваниÑ"
+msgstr "ЗаÑвката попадна в цикъл от пренаÑочваниÑ."
#: editor/export_template_manager.cpp
-#, fuzzy
msgid "Request failed:"
-msgstr "ЗаÑвката беше неуÑпешна."
+msgstr "ЗаÑвката беше неуÑпешна:"
#: editor/export_template_manager.cpp
msgid "Download complete; extracting templates..."
@@ -3631,9 +3628,8 @@ msgid "SSL Handshake Error"
msgstr ""
#: editor/export_template_manager.cpp
-#, fuzzy
msgid "Can't open the export templates file."
-msgstr "Управление на шаблоните за изнаÑÑне..."
+msgstr "Файлът Ñ ÑˆÐ°Ð±Ð»Ð¾Ð½Ð¸Ñ‚Ðµ за изнаÑÑне не може да Ñе отвори."
#: editor/export_template_manager.cpp
msgid "Invalid version.txt format inside the export templates file: %s."
@@ -3644,9 +3640,8 @@ msgid "No version.txt found inside the export templates file."
msgstr ""
#: editor/export_template_manager.cpp
-#, fuzzy
msgid "Error creating path for extracting templates:"
-msgstr "Грешка при Ñъздаването на път за шаблоните:"
+msgstr "Грешка при Ñъздаването на път за разархивиране на шаблоните:"
#: editor/export_template_manager.cpp
msgid "Extracting Export Templates"
@@ -3681,9 +3676,8 @@ msgid "Export templates are installed and ready to be used."
msgstr ""
#: editor/export_template_manager.cpp
-#, fuzzy
msgid "Open Folder"
-msgstr "ОтварÑне на файл"
+msgstr "ОтварÑне на папката"
#: editor/export_template_manager.cpp
msgid "Open the folder containing installed templates for the current version."
@@ -3698,19 +3692,16 @@ msgid "Uninstall templates for the current version."
msgstr ""
#: editor/export_template_manager.cpp
-#, fuzzy
msgid "Download from:"
-msgstr "Грешка при ÑвалÑнето"
+msgstr "СвалÑне от:"
#: editor/export_template_manager.cpp
-#, fuzzy
msgid "Open in Web Browser"
-msgstr "ОтварÑне във Ñ„Ð°Ð¹Ð»Ð¾Ð²Ð¸Ñ Ð¼ÐµÐ½Ð¸Ð´Ð¶ÑŠÑ€"
+msgstr "ОтварÑне в уеб браузъра"
#: editor/export_template_manager.cpp
-#, fuzzy
msgid "Copy Mirror URL"
-msgstr "Копиране на грешката"
+msgstr "Копиране на адреÑа на огледалното меÑтоположение"
#: editor/export_template_manager.cpp
msgid "Download and Install"
@@ -3727,14 +3718,12 @@ msgid "Official export templates aren't available for development builds."
msgstr ""
#: editor/export_template_manager.cpp
-#, fuzzy
msgid "Install from File"
-msgstr "ИнÑталиране и редактиране"
+msgstr "ИнÑталиране от файл"
#: editor/export_template_manager.cpp
-#, fuzzy
msgid "Install templates from a local file."
-msgstr "ВнаÑÑне на шаблони от архив във формат ZIP"
+msgstr "ВнаÑÑне на шаблони от локален файл."
#: editor/export_template_manager.cpp editor/find_in_files.cpp
#: editor/progress_dialog.cpp scene/gui/dialogs.cpp
@@ -3746,14 +3735,12 @@ msgid "Cancel the download of the templates."
msgstr ""
#: editor/export_template_manager.cpp
-#, fuzzy
msgid "Other Installed Versions:"
-msgstr "ИнÑталирани верÑии:"
+msgstr "Други инÑталирани верÑии:"
#: editor/export_template_manager.cpp
-#, fuzzy
msgid "Uninstall Template"
-msgstr "Управление на шаблоните"
+msgstr "ДеинÑталиране на шаблона"
#: editor/export_template_manager.cpp
msgid "Select Template File"
@@ -3905,9 +3892,8 @@ msgid "Collapse All"
msgstr "Свиване на вÑичко"
#: editor/filesystem_dock.cpp
-#, fuzzy
msgid "Sort files"
-msgstr "ТърÑене на файлове"
+msgstr "Сортиране на файлове"
#: editor/filesystem_dock.cpp
msgid "Sort by Name (Ascending)"
@@ -4245,14 +4231,12 @@ msgid "Failed to load resource."
msgstr "РеÑурÑÑŠÑ‚ не може да бъде зареден."
#: editor/inspector_dock.cpp
-#, fuzzy
msgid "Copy Properties"
-msgstr "Свиване на вÑички ÑвойÑтва"
+msgstr "Копиране на ÑвойÑтвата"
#: editor/inspector_dock.cpp
-#, fuzzy
msgid "Paste Properties"
-msgstr "СвойÑтва на темата"
+msgstr "ПоÑтавÑне на ÑвойÑтвата"
#: editor/inspector_dock.cpp
msgid "Make Sub-Resources Unique"
@@ -4277,14 +4261,12 @@ msgid "Save As..."
msgstr "Запазване като..."
#: editor/inspector_dock.cpp
-#, fuzzy
msgid "Extra resource options."
-msgstr "Ðе е в Ð¿ÑŠÑ‚Ñ Ð½Ð° реÑурÑите."
+msgstr "Допълнителни наÑтройки на реÑурÑа."
#: editor/inspector_dock.cpp
-#, fuzzy
msgid "Edit Resource from Clipboard"
-msgstr "ÐÑма реÑурÑâ€“Ð°Ð½Ð¸Ð¼Ð°Ñ†Ð¸Ñ Ð² буфера за обмен!"
+msgstr "Редактиране на реÑÑƒÑ€Ñ Ð¾Ñ‚ буфера за обмен"
#: editor/inspector_dock.cpp
msgid "Copy Resource"
@@ -4307,9 +4289,8 @@ msgid "History of recently edited objects."
msgstr "ИÑÑ‚Ð¾Ñ€Ð¸Ñ Ð½Ð° поÑледно редактираните обекти."
#: editor/inspector_dock.cpp
-#, fuzzy
msgid "Open documentation for this object."
-msgstr "ОтварÑне на документациÑта"
+msgstr "ОтварÑне на документациÑта за този обект."
#: editor/inspector_dock.cpp editor/scene_tree_dock.cpp
msgid "Open Documentation"
@@ -4320,9 +4301,8 @@ msgid "Filter properties"
msgstr "Филтриране на ÑвойÑтвата"
#: editor/inspector_dock.cpp
-#, fuzzy
msgid "Manage object properties."
-msgstr "СвойÑтва на обекта."
+msgstr "Управление на ÑвойÑтвата на обекта."
#: editor/inspector_dock.cpp
msgid "Changes may be lost!"
@@ -4567,9 +4547,8 @@ msgid "Blend:"
msgstr "СмеÑване:"
#: editor/plugins/animation_blend_tree_editor_plugin.cpp
-#, fuzzy
msgid "Parameter Changed:"
-msgstr "Параметърът е променен"
+msgstr "Параметърът е променен:"
#: editor/plugins/animation_blend_tree_editor_plugin.cpp
#: editor/plugins/animation_tree_player_editor_plugin.cpp
@@ -5203,9 +5182,8 @@ msgid "Got:"
msgstr "Получено:"
#: editor/plugins/asset_library_editor_plugin.cpp
-#, fuzzy
msgid "Failed SHA-256 hash check"
-msgstr "ÐеуÑпешна проверка на хеш от вид „sha256“"
+msgstr "ÐеуÑпешна проверка на хеш от вид SHA-256"
#: editor/plugins/asset_library_editor_plugin.cpp
msgid "Asset Download Error:"
@@ -5353,13 +5331,13 @@ msgstr ""
"Запазете Ñцената и опитайте отново."
#: editor/plugins/baked_lightmap_editor_plugin.cpp
-#, fuzzy
msgid ""
"No meshes to bake. Make sure they contain an UV2 channel and that the 'Use "
"In Baked Light' and 'Generate Lightmap' flags are on."
msgstr ""
"ÐÑма полигонни мрежи за изпичане. Уверете Ñе, че те Ñъдържат канал UV2 и че "
-"флагът „Изпичане на Ñветлината“ е включен."
+"флаговете „Използване при изпичане на Ñветлината“ и „Създаване на карта на "
+"оÑветеноÑт“ Ñа включени."
#: editor/plugins/baked_lightmap_editor_plugin.cpp
msgid "Failed creating lightmap images, make sure path is writable."
@@ -5382,7 +5360,6 @@ msgstr ""
"принадлежат на квадратната облаÑÑ‚ [0.0,1.0]."
#: editor/plugins/baked_lightmap_editor_plugin.cpp
-#, fuzzy
msgid ""
"Godot editor was built without ray tracing support, lightmaps can't be baked."
msgstr ""
@@ -5503,6 +5480,18 @@ msgid "Move CanvasItem \"%s\" to (%d, %d)"
msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Locked"
+msgstr "Заключване на избраното"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Grouped"
+msgstr "Групи"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
msgid ""
"Children of containers have their anchors and margins values overridden by "
"their parent."
@@ -5677,27 +5666,23 @@ msgstr "Режим на избиране"
#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp
-#, fuzzy
msgid "Drag: Rotate selected node around pivot."
-msgstr "Премахване на Ð¸Ð·Ð±Ñ€Ð°Ð½Ð¸Ñ Ð²ÑŠÐ·ÐµÐ» или преход."
+msgstr "Влачене: Въртене на Ð¸Ð·Ð±Ñ€Ð°Ð½Ð¸Ñ Ð²ÑŠÐ·ÐµÐ» около централната му точка."
#: editor/plugins/canvas_item_editor_plugin.cpp
-#, fuzzy
msgid "Alt+Drag: Move selected node."
-msgstr "Alt+Влачене: премеÑтване"
+msgstr "Alt+Влачене: премеÑтване на Ð¸Ð·Ð±Ñ€Ð°Ð½Ð¸Ñ Ð²ÑŠÐ·ÐµÐ»."
#: editor/plugins/canvas_item_editor_plugin.cpp
-#, fuzzy
msgid "V: Set selected node's pivot position."
-msgstr "Премахване на Ð¸Ð·Ð±Ñ€Ð°Ð½Ð¸Ñ Ð²ÑŠÐ·ÐµÐ» или преход."
+msgstr "V: Задаване на централната точка на възела."
#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp
-#, fuzzy
msgid "Alt+RMB: Show list of all nodes at position clicked, including locked."
msgstr ""
-"Показване на ÑпиÑък Ñ Ð²Ñички обекти на щракнатата позициÑ\n"
-"(Ñъщото като Alt+ДеÑен бутон в режим на избиране)."
+"Alt+ДеÑен бутон: Показване на ÑпиÑък Ñ Ð²Ñички обекти на щракнатата позициÑ, "
+"включително заключените."
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "RMB: Add node at position clicked."
@@ -5729,7 +5714,7 @@ msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Click to change object's rotation pivot."
-msgstr ""
+msgstr "Щракнете, за да промените централната точка за въртене на обекта."
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Pan Mode"
@@ -5934,14 +5919,12 @@ msgid "Clear Pose"
msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
-#, fuzzy
msgid "Add Node Here"
-msgstr "ДобавÑне на възел"
+msgstr "ДобавÑне на възел тук"
#: editor/plugins/canvas_item_editor_plugin.cpp
-#, fuzzy
msgid "Instance Scene Here"
-msgstr "Вмъкване на ключ тук"
+msgstr "ИнÑтанциране на Ñцената тук"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Multiply grid step by 2"
@@ -5968,34 +5951,28 @@ msgid "Zoom to 12.5%"
msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
-#, fuzzy
msgid "Zoom to 25%"
-msgstr "Отдалечаване"
+msgstr "Мащабиране на 25%"
#: editor/plugins/canvas_item_editor_plugin.cpp
-#, fuzzy
msgid "Zoom to 50%"
-msgstr "Отдалечаване"
+msgstr "Мащабиране на 50%"
#: editor/plugins/canvas_item_editor_plugin.cpp
-#, fuzzy
msgid "Zoom to 100%"
-msgstr "Отдалечаване"
+msgstr "Мащабиране на 100%"
#: editor/plugins/canvas_item_editor_plugin.cpp
-#, fuzzy
msgid "Zoom to 200%"
-msgstr "Отдалечаване"
+msgstr "Мащабиране на 200%"
#: editor/plugins/canvas_item_editor_plugin.cpp
-#, fuzzy
msgid "Zoom to 400%"
-msgstr "Отдалечаване"
+msgstr "Мащабиране на 400%"
#: editor/plugins/canvas_item_editor_plugin.cpp
-#, fuzzy
msgid "Zoom to 800%"
-msgstr "Отдалечаване"
+msgstr "Мащабиране на 800%"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Zoom to 1600%"
@@ -6162,9 +6139,8 @@ msgid "Remove Point"
msgstr "Премахване на точката"
#: editor/plugins/curve_editor_plugin.cpp
-#, fuzzy
msgid "Left Linear"
-msgstr "Линейно"
+msgstr "Линейно отлÑво"
#: editor/plugins/curve_editor_plugin.cpp
msgid "Right Linear"
@@ -6219,9 +6195,9 @@ msgid "Mesh is empty!"
msgstr "Полигонната мрежа е празна!"
#: editor/plugins/mesh_instance_editor_plugin.cpp
-#, fuzzy
msgid "Couldn't create a Trimesh collision shape."
-msgstr "ÐеуÑпешно Ñъздаване на папка."
+msgstr ""
+"Ðе може да Ñе Ñъздаде форма за ÐºÐ¾Ð»Ð¸Ð·Ð¸Ñ Ð¾Ñ‚ тип полигонна мрежа от триъгълници."
#: editor/plugins/mesh_instance_editor_plugin.cpp
msgid "Create Static Trimesh Body"
@@ -6244,9 +6220,8 @@ msgid "Couldn't create a single convex collision shape."
msgstr ""
#: editor/plugins/mesh_instance_editor_plugin.cpp
-#, fuzzy
msgid "Create Simplified Convex Shape"
-msgstr "Създаване на единична изпъкнала форма"
+msgstr "Създаване на опроÑтена изпъкнала форма"
#: editor/plugins/mesh_instance_editor_plugin.cpp
msgid "Create Single Convex Shape"
@@ -6431,7 +6406,13 @@ msgid "Remove Selected Item"
msgstr ""
#: editor/plugins/mesh_library_editor_plugin.cpp
-msgid "Import from Scene"
+#, fuzzy
+msgid "Import from Scene (Ignore Transforms)"
+msgstr "ВнаÑÑне от Ñцена"
+
+#: editor/plugins/mesh_library_editor_plugin.cpp
+#, fuzzy
+msgid "Import from Scene (Apply Transforms)"
msgstr "ВнаÑÑне от Ñцена"
#: editor/plugins/mesh_library_editor_plugin.cpp
@@ -7009,19 +6990,27 @@ msgid "Flip Portals"
msgstr ""
#: editor/plugins/room_manager_editor_plugin.cpp
-#, fuzzy
msgid "Room Generate Points"
-msgstr "ПремеÑтване на точки на Безие"
+msgstr "Точки за генериране на ÑтаÑ"
#: editor/plugins/room_manager_editor_plugin.cpp
-#, fuzzy
msgid "Generate Points"
-msgstr "Изтриване на точка"
+msgstr "Генериране на точки"
#: editor/plugins/room_manager_editor_plugin.cpp
msgid "Flip Portal"
msgstr ""
+#: editor/plugins/room_manager_editor_plugin.cpp
+#, fuzzy
+msgid "Occluder Set Transform"
+msgstr "ИзчиÑтване на транÑформациÑта"
+
+#: editor/plugins/room_manager_editor_plugin.cpp
+#, fuzzy
+msgid "Center Node"
+msgstr "Създаване на възел"
+
#: editor/plugins/root_motion_editor_plugin.cpp
msgid "AnimationTree has no path set to an AnimationPlayer"
msgstr ""
@@ -7520,11 +7509,12 @@ msgid "Skeleton2D"
msgstr ""
#: editor/plugins/skeleton_2d_editor_plugin.cpp
-msgid "Make Rest Pose (From Bones)"
-msgstr ""
+#, fuzzy
+msgid "Reset to Rest Pose"
+msgstr "Връщане на Ñтандартните наÑтройки"
#: editor/plugins/skeleton_2d_editor_plugin.cpp
-msgid "Set Bones to Rest Pose"
+msgid "Overwrite Rest Pose"
msgstr ""
#: editor/plugins/skeleton_editor_plugin.cpp
@@ -7552,6 +7542,63 @@ msgid "Perspective"
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Top Orthogonal"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Top Perspective"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Bottom Orthogonal"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Bottom Perspective"
+msgstr "Долу влÑво"
+
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Left Orthogonal"
+msgstr "ЛÑв бутон"
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Right Perspective"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Right Orthogonal"
+msgstr "ДеÑен бутон"
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Front Orthogonal"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Front Perspective"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Rear Orthogonal"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Rear Perspective"
+msgstr ""
+
+#. TRANSLATORS: This will be appended to the view name when Auto Orthogonal is enabled.
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid " [auto]"
+msgstr ""
+
+#. TRANSLATORS: This will be appended to the view name when Portal Occulusion is enabled.
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid " [portals active]"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
msgid "Transform Aborted."
msgstr ""
@@ -7578,24 +7625,21 @@ msgid "None"
msgstr "ÐÑма"
#: editor/plugins/spatial_editor_plugin.cpp
-#, fuzzy
msgid "Rotate"
-msgstr "Режим на завъртане"
+msgstr "РотациÑ"
#. TRANSLATORS: This refers to the movement that changes the position of an object.
#: editor/plugins/spatial_editor_plugin.cpp
-#, fuzzy
msgid "Translate"
-msgstr "ТранÑлиране: "
+msgstr "ТранÑлиране"
#: editor/plugins/spatial_editor_plugin.cpp
-#, fuzzy
msgid "Scale"
-msgstr "Мащаб:"
+msgstr "Скалиране"
#: editor/plugins/spatial_editor_plugin.cpp
msgid "Scaling: "
-msgstr ""
+msgstr "Скалиране: "
#: editor/plugins/spatial_editor_plugin.cpp
msgid "Translating: "
@@ -7603,7 +7647,7 @@ msgstr "ТранÑлиране: "
#: editor/plugins/spatial_editor_plugin.cpp
msgid "Rotating %s degrees."
-msgstr ""
+msgstr "Завъртане на %s градуÑа."
#: editor/plugins/spatial_editor_plugin.cpp
msgid "Keying is disabled (no key inserted)."
@@ -7622,37 +7666,32 @@ msgid "Yaw:"
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
-#, fuzzy
msgid "Size:"
-msgstr "Изглед Отпред."
+msgstr "Размер:"
#: editor/plugins/spatial_editor_plugin.cpp
msgid "Objects Drawn:"
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
-#, fuzzy
msgid "Material Changes:"
-msgstr "Параметърът е променен"
+msgstr "Промени в материала:"
#: editor/plugins/spatial_editor_plugin.cpp
-#, fuzzy
msgid "Shader Changes:"
-msgstr "Параметърът е променен"
+msgstr "Промени в шейдъра:"
#: editor/plugins/spatial_editor_plugin.cpp
-#, fuzzy
msgid "Surface Changes:"
-msgstr "Точки на повърхноÑтта"
+msgstr "Промени в повърхнината:"
#: editor/plugins/spatial_editor_plugin.cpp
msgid "Draw Calls:"
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
-#, fuzzy
msgid "Vertices:"
-msgstr "Вертикала:"
+msgstr "ВертекÑи:"
#: editor/plugins/spatial_editor_plugin.cpp
msgid "FPS: %d (%s ms)"
@@ -7667,42 +7706,22 @@ msgid "Bottom View."
msgstr "Изглед отдолу."
#: editor/plugins/spatial_editor_plugin.cpp
-msgid "Bottom"
-msgstr ""
-
-#: editor/plugins/spatial_editor_plugin.cpp
msgid "Left View."
msgstr "Изглед отлÑво."
#: editor/plugins/spatial_editor_plugin.cpp
-msgid "Left"
-msgstr ""
-
-#: editor/plugins/spatial_editor_plugin.cpp
msgid "Right View."
msgstr "Изглед отдÑÑно."
#: editor/plugins/spatial_editor_plugin.cpp
-msgid "Right"
-msgstr ""
-
-#: editor/plugins/spatial_editor_plugin.cpp
msgid "Front View."
msgstr "Изглед отпред."
#: editor/plugins/spatial_editor_plugin.cpp
-msgid "Front"
-msgstr ""
-
-#: editor/plugins/spatial_editor_plugin.cpp
msgid "Rear View."
msgstr "Изглед отзад."
#: editor/plugins/spatial_editor_plugin.cpp
-msgid "Rear"
-msgstr ""
-
-#: editor/plugins/spatial_editor_plugin.cpp
msgid "Align Transform with View"
msgstr "ПодравнÑване на транÑформациÑта Ñ Ð¸Ð·Ð³Ð»ÐµÐ´Ð°"
@@ -7811,9 +7830,8 @@ msgid "Freelook Slow Modifier"
msgstr "Модификатор за забавÑне на ÑÐ²Ð¾Ð±Ð¾Ð´Ð½Ð¸Ñ Ð¸Ð·Ð³Ð»ÐµÐ´"
#: editor/plugins/spatial_editor_plugin.cpp
-#, fuzzy
msgid "Toggle Camera Preview"
-msgstr "Превключване на любимите"
+msgstr "Превключване на изгледа за преглед на камерата"
#: editor/plugins/spatial_editor_plugin.cpp
msgid "View Rotation Locked"
@@ -7831,9 +7849,8 @@ msgid ""
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
-#, fuzzy
msgid "Convert Rooms"
-msgstr "Преобразуване в Mesh2D"
+msgstr "Преобразуване на Ñтаите"
#: editor/plugins/spatial_editor_plugin.cpp
msgid "XForm Dialog"
@@ -7849,9 +7866,8 @@ msgid ""
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
-#, fuzzy
msgid "Snap Nodes to Floor"
-msgstr "Следващ под"
+msgstr "Прилепване на възлите към пода"
#: editor/plugins/spatial_editor_plugin.cpp
msgid "Couldn't find a solid floor to snap the selection to."
@@ -7967,6 +7983,11 @@ msgid "View Portal Culling"
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "View Occlusion Culling"
+msgstr "Редактиране на полигона за прикриване"
+
+#: editor/plugins/spatial_editor_plugin.cpp
#: modules/gridmap/grid_map_editor_plugin.cpp
msgid "Settings..."
msgstr "ÐаÑтройки…"
@@ -8032,7 +8053,7 @@ msgid "Post"
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
-msgid "Nameless gizmo"
+msgid "Unnamed Gizmo"
msgstr ""
#: editor/plugins/sprite_editor_plugin.cpp
@@ -8276,33 +8297,28 @@ msgid "Step:"
msgstr "Стъпка:"
#: editor/plugins/texture_region_editor_plugin.cpp
-#, fuzzy
msgid "Separation:"
-msgstr "ВерÑиÑ:"
+msgstr "Разделение:"
#: editor/plugins/texture_region_editor_plugin.cpp
msgid "TextureRegion"
msgstr "ТекÑтурна облаÑÑ‚"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Colors"
-msgstr "Цват"
+msgstr "Цветове"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Fonts"
-msgstr "Шрифт"
+msgstr "Шрифтове"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Icons"
-msgstr "Иконка"
+msgstr "Иконки"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Styleboxes"
-msgstr "Стил"
+msgstr "Стилове"
#: editor/plugins/theme_editor_plugin.cpp
msgid "{num} color(s)"
@@ -8313,14 +8329,12 @@ msgid "No colors found."
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "{num} constant(s)"
-msgstr "КонÑтанти"
+msgstr "{num} конÑтанта/и"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "No constants found."
-msgstr "КонÑтанта за цвÑÑ‚."
+msgstr "ÐÑма намерени конÑтанти."
#: editor/plugins/theme_editor_plugin.cpp
msgid "{num} font(s)"
@@ -8355,28 +8369,24 @@ msgid "Nothing was selected for the import."
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Importing Theme Items"
-msgstr "ВнаÑÑне на тема"
+msgstr "ВнаÑÑне на елементите на темата"
#: editor/plugins/theme_editor_plugin.cpp
msgid "Importing items {n}/{n}"
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Updating the editor"
-msgstr "ОбновÑване на Ñцената"
+msgstr "ОбновÑване на редактора"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Finalizing"
-msgstr "Ðнализиране"
+msgstr "Завършване"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Filter:"
-msgstr "Филтри:"
+msgstr "Филтриране:"
#: editor/plugins/theme_editor_plugin.cpp
msgid "With Data"
@@ -8387,9 +8397,8 @@ msgid "Select by data type:"
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Select all visible color items."
-msgstr "Избери разделение и го изтрий"
+msgstr "Избиране на вÑички видими цветни елементи."
#: editor/plugins/theme_editor_plugin.cpp
msgid "Select all visible color items and their data."
@@ -8454,23 +8463,20 @@ msgid ""
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Collapse types."
-msgstr "Свиване на вÑичко"
+msgstr "Свиване на типовете."
#: editor/plugins/theme_editor_plugin.cpp
msgid "Expand types."
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Select all Theme items."
-msgstr "Избор на шаблонен файл"
+msgstr "Избиране на вÑички елементи – теми."
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Select With Data"
-msgstr "Избиране на метод"
+msgstr "Избиране Ñ Ð´Ð°Ð½Ð½Ð¸Ñ‚Ðµ"
#: editor/plugins/theme_editor_plugin.cpp
msgid "Select all Theme items with item data."
@@ -8486,9 +8492,8 @@ msgid "Deselect all Theme items."
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Import Selected"
-msgstr "ВнаÑÑне на Ñцена"
+msgstr "ВнаÑÑне на избраното"
#: editor/plugins/theme_editor_plugin.cpp
msgid ""
@@ -8504,34 +8509,28 @@ msgid ""
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Remove All Color Items"
-msgstr "Премахване на вÑички елементи"
+msgstr "Премахване на вÑички елементи – цветове"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Rename Item"
-msgstr "Преименуван"
+msgstr "Преименуване на елемента"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Remove All Constant Items"
-msgstr "Премахване на вÑички елементи"
+msgstr "Премахване на вÑички елементи – конÑтанти"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Remove All Font Items"
-msgstr "Премахване на вÑички елементи"
+msgstr "Премахване на вÑички елементи – шрифтове"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Remove All Icon Items"
-msgstr "Премахване на вÑички елементи"
+msgstr "Премахване на вÑички елементи – иконки"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Remove All StyleBox Items"
-msgstr "Премахване на вÑички елементи"
+msgstr "Премахване на вÑички елементи – Ñтилове"
#: editor/plugins/theme_editor_plugin.cpp
msgid ""
@@ -8540,149 +8539,124 @@ msgid ""
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Add Color Item"
-msgstr "ДобавÑне на вÑички елементи"
+msgstr "ДобавÑне на елемент – цвÑÑ‚"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Add Constant Item"
-msgstr "КонÑтанта"
+msgstr "ДобавÑне на елемент – конÑтанта"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Add Font Item"
-msgstr "ДобавÑне на вÑички елементи"
+msgstr "ДобавÑне на елемент – шрифт"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Add Icon Item"
-msgstr "ДобавÑне на вÑички елементи"
+msgstr "ДобавÑне на елемент – иконка"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Add Stylebox Item"
-msgstr "ДобавÑне на вÑички елементи"
+msgstr "ДобавÑне на елемент – Ñтил"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Rename Color Item"
-msgstr "Премахване на вÑички елементи"
+msgstr "Преименуване на елемента – цвÑÑ‚"
#: editor/plugins/theme_editor_plugin.cpp
msgid "Rename Constant Item"
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Rename Font Item"
-msgstr "Преименуване на функциÑта"
+msgstr "Преименуване на елемента – шрифт"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Rename Icon Item"
-msgstr "Преименуване на функциÑта"
+msgstr "Преименуване на елемента – иконка"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Rename Stylebox Item"
-msgstr "Премахване на вÑички елементи"
+msgstr "Преименуване на елемента – Ñтил"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Invalid file, not a Theme resource."
-msgstr "РеÑурÑÑŠÑ‚ не може да бъде зареден."
+msgstr "Ðеправилен файл – не е реÑÑƒÑ€Ñ Ð¾Ñ‚ тип тема."
#: editor/plugins/theme_editor_plugin.cpp
msgid "Invalid file, same as the edited Theme resource."
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Manage Theme Items"
-msgstr "Управление на шаблоните"
+msgstr "Управление на елементите на темата"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Edit Items"
-msgstr "Редактируем елемент"
+msgstr "Редактиране на елементите"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Types:"
-msgstr "Тип:"
+msgstr "Типове:"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Add Type:"
-msgstr "Тип:"
+msgstr "ДобавÑне на тип:"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Add Item:"
-msgstr "ДобавÑне на вÑички елементи"
+msgstr "ДобавÑне на елемент:"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Add StyleBox Item"
-msgstr "ДобавÑне на вÑички елементи"
+msgstr "ДобавÑне на елемент на Ñтила"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Remove Items:"
-msgstr "Премахване на вÑички елементи"
+msgstr "Премахване на елементи:"
#: editor/plugins/theme_editor_plugin.cpp
msgid "Remove Class Items"
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Remove Custom Items"
-msgstr "Премахване на вÑички елементи"
+msgstr "Премахване на перÑонализираните елементи"
#: editor/plugins/theme_editor_plugin.cpp
msgid "Remove All Items"
msgstr "Премахване на вÑички елементи"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Add Theme Item"
-msgstr "ДобавÑне на вÑички елементи"
+msgstr "ДобавÑне на елемент на темата"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Old Name:"
-msgstr "Име:"
+msgstr "Старо име:"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Import Items"
-msgstr "ВнаÑÑне на тема"
+msgstr "ВнаÑÑне на елементи"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Default Theme"
-msgstr "Презареждане на темата"
+msgstr "Тема по подразбиране"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Editor Theme"
-msgstr "Редактиране на темата"
+msgstr "Тема на редактора"
#: editor/plugins/theme_editor_plugin.cpp
msgid "Select Another Theme Resource:"
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Another Theme"
-msgstr "ВнаÑÑне на тема"
+msgstr "Друга тема"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Confirm Item Rename"
-msgstr "ÐаÑтройване на прилепването"
+msgstr "Потвърждаване на преименуването на елемента"
#: editor/plugins/theme_editor_plugin.cpp
msgid "Cancel Item Rename"
@@ -8703,66 +8677,56 @@ msgid ""
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Add Type"
-msgstr "ДобавÑне на възел"
+msgstr "ДобавÑне на тип"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Add Item Type"
-msgstr "ДобавÑне на вÑички елементи"
+msgstr "ДобавÑне на тип елемент"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Node Types:"
-msgstr "Тип на възела"
+msgstr "Типове на възлите:"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Show Default"
-msgstr "ВнаÑÑне на преводи"
+msgstr "Показване на Ñтандартните"
#: editor/plugins/theme_editor_plugin.cpp
msgid "Show default type items alongside items that have been overridden."
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Override All"
-msgstr "Запазване на вÑичко"
+msgstr "ЗамÑна на вÑичко"
#: editor/plugins/theme_editor_plugin.cpp
msgid "Override all default type items."
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Theme:"
-msgstr "Тема"
+msgstr "Тема:"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Manage Items..."
-msgstr "Управление на шаблоните за изнаÑÑне..."
+msgstr "Управление на елементите..."
#: editor/plugins/theme_editor_plugin.cpp
msgid "Add, remove, organize and import Theme items."
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Add Preview"
-msgstr "Преглед"
+msgstr "ДобавÑне на преглед"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Default Preview"
-msgstr "ОбновÑване на Ð¿Ñ€ÐµÐ´Ð²Ð°Ñ€Ð¸Ñ‚ÐµÐ»Ð½Ð¸Ñ Ð¿Ñ€ÐµÐ³Ð»ÐµÐ´"
+msgstr "Стандартен предварителен преглед"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Select UI Scene:"
-msgstr "Изберете източник за полигонна мрежа:"
+msgstr "Изберете Ñцена за потребителÑки интерфейÑ:"
#: editor/plugins/theme_editor_preview.cpp
msgid ""
@@ -8803,9 +8767,8 @@ msgid "Checked Radio Item"
msgstr ""
#: editor/plugins/theme_editor_preview.cpp
-#, fuzzy
msgid "Named Separator"
-msgstr "Именуван разд."
+msgstr "Именуван разделител"
#: editor/plugins/theme_editor_preview.cpp
msgid "Submenu"
@@ -9021,9 +8984,8 @@ msgid "Collision"
msgstr "КолизиÑ"
#: editor/plugins/tile_set_editor_plugin.cpp
-#, fuzzy
msgid "Occlusion"
-msgstr "ПриÑтавки"
+msgstr "Прикриване"
#: editor/plugins/tile_set_editor_plugin.cpp
msgid "Navigation"
@@ -9054,9 +9016,8 @@ msgid "Collision Mode"
msgstr "Режим на колизии"
#: editor/plugins/tile_set_editor_plugin.cpp
-#, fuzzy
msgid "Occlusion Mode"
-msgstr "ПриÑтавки"
+msgstr "Режим на прикриване"
#: editor/plugins/tile_set_editor_plugin.cpp
msgid "Navigation Mode"
@@ -10190,9 +10151,8 @@ msgid "VisualShader"
msgstr ""
#: editor/plugins/visual_shader_editor_plugin.cpp
-#, fuzzy
msgid "Edit Visual Property:"
-msgstr "Редактиране на визуалното ÑвойÑтво"
+msgstr "Редактиране на визуално ÑвойÑтво:"
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Visual Shader Mode Changed"
@@ -10233,7 +10193,7 @@ msgstr ""
#: editor/project_export.cpp
msgid "Export templates for this platform are missing/corrupted:"
-msgstr ""
+msgstr "Шаблоните за изнаÑÑне за тази платформа липÑват или Ñа повредени:"
#: editor/project_export.cpp
msgid "Presets"
@@ -10241,7 +10201,7 @@ msgstr ""
#: editor/project_export.cpp editor/project_settings_editor.cpp
msgid "Add..."
-msgstr ""
+msgstr "ДобавÑне..."
#: editor/project_export.cpp
msgid ""
@@ -10255,7 +10215,7 @@ msgstr "Път за изнаÑÑне"
#: editor/project_export.cpp
msgid "Resources"
-msgstr ""
+msgstr "РеÑурÑи"
#: editor/project_export.cpp
msgid "Export all resources in the project"
@@ -10282,12 +10242,16 @@ msgid ""
"Filters to export non-resource files/folders\n"
"(comma-separated, e.g: *.json, *.txt, docs/*)"
msgstr ""
+"Филтри за изнаÑÑне на нереÑурÑни файлове/папки\n"
+"(разделени ÑÑŠÑ Ð·Ð°Ð¿ÐµÑ‚Ð°Ñ, например: *.json, *.txt, docs/*)"
#: editor/project_export.cpp
msgid ""
"Filters to exclude files/folders from project\n"
"(comma-separated, e.g: *.json, *.txt, docs/*)"
msgstr ""
+"Филтри за изключване на файлове/папки от проекта\n"
+"(разделени ÑÑŠÑ Ð·Ð°Ð¿ÐµÑ‚Ð°Ñ, например: *.json, *.txt, docs/*)"
#: editor/project_export.cpp
msgid "Features"
@@ -10306,29 +10270,30 @@ msgid "Script"
msgstr "Скрипт"
#: editor/project_export.cpp
-#, fuzzy
msgid "GDScript Export Mode:"
-msgstr "Режим на изнаÑÑне на Ñкриптове:"
+msgstr "Режим на изнаÑÑне на файловете Ñ ÐºÐ¾Ð´ на GDScript:"
#: editor/project_export.cpp
msgid "Text"
-msgstr ""
+msgstr "Като текÑÑ‚"
#: editor/project_export.cpp
msgid "Compiled Bytecode (Faster Loading)"
-msgstr ""
+msgstr "Компилиран байт-код (по-бързо зареждане)"
#: editor/project_export.cpp
msgid "Encrypted (Provide Key Below)"
-msgstr ""
+msgstr "Шифровани (въведете ключ по-долу)"
#: editor/project_export.cpp
msgid "Invalid Encryption Key (must be 64 hexadecimal characters long)"
msgstr ""
+"Ðеправилен ключ за шифроване (трÑбва да бъде Ñ Ð´ÑŠÐ»Ð¶Ð¸Ð½Ð° 64 шеÑтнадеÑетични "
+"знака)"
#: editor/project_export.cpp
msgid "GDScript Encryption Key (256-bits as hexadecimal):"
-msgstr ""
+msgstr "Ключ за шифроване на GDScript (256 бита, в шеÑтнадеÑетичен формат):"
#: editor/project_export.cpp
msgid "Export PCK/Zip"
@@ -10352,32 +10317,33 @@ msgstr "Файл ZIP"
#: editor/project_export.cpp
msgid "Godot Game Pack"
-msgstr ""
+msgstr "Игрален пакет на Godot"
#: editor/project_export.cpp
msgid "Export templates for this platform are missing:"
-msgstr ""
+msgstr "Шаблоните за изнаÑÑне за тази ÑиÑтема липÑват:"
#: editor/project_export.cpp
msgid "Manage Export Templates"
-msgstr ""
+msgstr "Управление на шаблоните за изнаÑÑне"
#: editor/project_export.cpp
msgid "Export With Debug"
-msgstr ""
+msgstr "ИзнаÑÑне Ñ Ð´Ð°Ð½Ð½Ð¸ за дебъгване"
#: editor/project_manager.cpp
msgid "The path specified doesn't exist."
-msgstr ""
+msgstr "ПоÑочениÑÑ‚ път не ÑъщеÑтвува."
#: editor/project_manager.cpp
msgid "Error opening package file (it's not in ZIP format)."
-msgstr ""
+msgstr "Грешка при отварÑне на пакета (не е във формат ZIP)."
#: editor/project_manager.cpp
msgid ""
"Invalid \".zip\" project file; it doesn't contain a \"project.godot\" file."
msgstr ""
+"Ðеправилен проектен файл „.zip“. Ð’ него не Ñе Ñъдържа файл „project.godot“."
#: editor/project_manager.cpp
msgid "Please choose an empty folder."
@@ -10389,20 +10355,19 @@ msgstr "МолÑ, изберете файл от тип „project.godot“ ил
#: editor/project_manager.cpp
msgid "This directory already contains a Godot project."
-msgstr ""
+msgstr "Тази папка вече Ñъдържа проект на Godot."
#: editor/project_manager.cpp
msgid "New Game Project"
-msgstr ""
+msgstr "Ðов игрален проект"
#: editor/project_manager.cpp
msgid "Imported Project"
msgstr "ВнеÑен проект"
#: editor/project_manager.cpp
-#, fuzzy
msgid "Invalid project name."
-msgstr "Ðеправилно име на проект."
+msgstr "Ðеправилно име на проекта."
#: editor/project_manager.cpp
msgid "Couldn't create folder."
@@ -10410,21 +10375,23 @@ msgstr "Папката не може да бъде Ñъздадена."
#: editor/project_manager.cpp
msgid "There is already a folder in this path with the specified name."
-msgstr ""
+msgstr "Ð’ този път вече ÑъщеÑтвува папка Ñ Ñ‚Ð¾Ð²Ð° име."
#: editor/project_manager.cpp
msgid "It would be a good idea to name your project."
-msgstr ""
+msgstr "ÐÑма да е лошо да дадете име на проекта Ñи."
#: editor/project_manager.cpp
msgid "Invalid project path (changed anything?)."
-msgstr ""
+msgstr "Ðеправилен път до проекта (ПроменÑли ли Ñте нещо?)."
#: editor/project_manager.cpp
msgid ""
"Couldn't load project.godot in project path (error %d). It may be missing or "
"corrupted."
msgstr ""
+"Файлът „project.godot“ не може да бъде зареден от Ð¿ÑŠÑ‚Ñ Ð½Ð° проекта (грешка "
+"%d). Възможно е той да липÑва или да е повреден."
#: editor/project_manager.cpp
msgid "Couldn't edit project.godot in project path."
@@ -10622,37 +10589,32 @@ msgid "Project Manager"
msgstr "Управление на проектите"
#: editor/project_manager.cpp
-#, fuzzy
msgid "Local Projects"
-msgstr "Проекти"
+msgstr "Локални проекти"
#: editor/project_manager.cpp
-#, fuzzy
msgid "Loading, please wait..."
-msgstr "Зареждане…"
+msgstr "Зареждане. МолÑ, изчакайте…"
#: editor/project_manager.cpp
msgid "Last Modified"
msgstr ""
#: editor/project_manager.cpp
-#, fuzzy
msgid "Edit Project"
-msgstr "ИзнаÑÑне на проекта"
+msgstr "Редактиране на проекта"
#: editor/project_manager.cpp
-#, fuzzy
msgid "Run Project"
-msgstr "Преименуване на проекта"
+msgstr "ПуÑкане на проекта"
#: editor/project_manager.cpp
msgid "Scan"
msgstr "Сканиране"
#: editor/project_manager.cpp
-#, fuzzy
msgid "Scan Projects"
-msgstr "Проекти"
+msgstr "Сканиране за проекти"
#: editor/project_manager.cpp
msgid "Select a Folder to Scan"
@@ -10663,14 +10625,12 @@ msgid "New Project"
msgstr "Ðов проект"
#: editor/project_manager.cpp
-#, fuzzy
msgid "Import Project"
-msgstr "ВнеÑен проект"
+msgstr "ВнаÑÑне на проект"
#: editor/project_manager.cpp
-#, fuzzy
msgid "Remove Project"
-msgstr "Преименуване на проекта"
+msgstr "Премахване на проекта"
#: editor/project_manager.cpp
msgid "Remove Missing"
@@ -10681,9 +10641,8 @@ msgid "About"
msgstr "ОтноÑно"
#: editor/project_manager.cpp
-#, fuzzy
msgid "Asset Library Projects"
-msgstr "Библиотека Ñ Ñ€ÐµÑурÑи"
+msgstr "Проекти от Библиотеката Ñ Ñ€ÐµÑурÑи"
#: editor/project_manager.cpp
msgid "Restart Now"
@@ -10708,9 +10667,8 @@ msgid ""
msgstr ""
#: editor/project_manager.cpp
-#, fuzzy
msgid "Filter projects"
-msgstr "Филтриране на ÑвойÑтвата"
+msgstr "Филтриране на проектите"
#: editor/project_manager.cpp
msgid ""
@@ -10912,9 +10870,8 @@ msgid "Override for Feature"
msgstr ""
#: editor/project_settings_editor.cpp
-#, fuzzy
msgid "Add %d Translations"
-msgstr "ДобавÑне на превод"
+msgstr "ДобавÑне на %d превода"
#: editor/project_settings_editor.cpp
msgid "Remove Translation"
@@ -11300,9 +11257,8 @@ msgid "Can't paste root node into the same scene."
msgstr ""
#: editor/scene_tree_dock.cpp
-#, fuzzy
msgid "Paste Node(s)"
-msgstr "ПоÑтавÑне на възлите"
+msgstr "ПоÑтавÑне на възела(възлите)"
#: editor/scene_tree_dock.cpp
msgid "Detach Script"
@@ -11447,9 +11403,8 @@ msgid "Attach Script"
msgstr "Закачане на Ñкрипт"
#: editor/scene_tree_dock.cpp
-#, fuzzy
msgid "Cut Node(s)"
-msgstr "ИзрÑзване на възлите"
+msgstr "ИзрÑзване на възела(възлите)"
#: editor/scene_tree_dock.cpp
msgid "Remove Node(s)"
@@ -12021,6 +11976,14 @@ msgstr ""
msgid "Set Portal Point Position"
msgstr ""
+#: editor/spatial_editor_gizmos.cpp
+msgid "Set Occluder Sphere Radius"
+msgstr ""
+
+#: editor/spatial_editor_gizmos.cpp
+msgid "Set Occluder Sphere Position"
+msgstr ""
+
#: modules/csg/csg_gizmos.cpp
msgid "Change Cylinder Radius"
msgstr ""
@@ -12098,7 +12061,6 @@ msgid "Step argument is zero!"
msgstr "Ðргументът за Ñтъпката е нула!"
#: modules/gdscript/gdscript_functions.cpp
-#, fuzzy
msgid "Not a script with an instance"
msgstr "Скриптът нÑма инÑтанциÑ"
@@ -12134,14 +12096,12 @@ msgid "Object can't provide a length."
msgstr ""
#: modules/gltf/editor_scene_exporter_gltf_plugin.cpp
-#, fuzzy
msgid "Export Mesh GLTF2"
-msgstr "ИзнаÑÑне на библиотека Ñ Ð¿Ð¾Ð»Ð¸Ð³Ð¾Ð½Ð½Ð¸ мрежи"
+msgstr "ИзнаÑÑне на полигонна мрежа като GLTF2"
#: modules/gltf/editor_scene_exporter_gltf_plugin.cpp
-#, fuzzy
msgid "Export GLTF..."
-msgstr "ИзнаÑÑне..."
+msgstr "ИзнаÑÑне на GLTF..."
#: modules/gridmap/grid_map_editor_plugin.cpp
msgid "Next Plane"
@@ -12200,29 +12160,28 @@ msgid "Snap View"
msgstr ""
#: modules/gridmap/grid_map_editor_plugin.cpp
-#, fuzzy
msgid "Clip Disabled"
-msgstr "Изключено"
+msgstr "ОтрÑзването е изключено"
#: modules/gridmap/grid_map_editor_plugin.cpp
msgid "Clip Above"
-msgstr ""
+msgstr "ОтрÑзване над"
#: modules/gridmap/grid_map_editor_plugin.cpp
msgid "Clip Below"
-msgstr ""
+msgstr "ОтрÑзване под"
#: modules/gridmap/grid_map_editor_plugin.cpp
msgid "Edit X Axis"
-msgstr ""
+msgstr "Редактиране на оÑта X"
#: modules/gridmap/grid_map_editor_plugin.cpp
msgid "Edit Y Axis"
-msgstr ""
+msgstr "Редактиране на оÑта Y"
#: modules/gridmap/grid_map_editor_plugin.cpp
msgid "Edit Z Axis"
-msgstr ""
+msgstr "Редактиране на оÑта Z"
#: modules/gridmap/grid_map_editor_plugin.cpp
msgid "Cursor Rotate X"
@@ -12303,9 +12262,8 @@ msgid "Indirect lighting"
msgstr ""
#: modules/lightmapper_cpu/lightmapper_cpu.cpp
-#, fuzzy
msgid "Post processing"
-msgstr "Задаване на израз"
+msgstr "ПоÑтобработка"
#: modules/lightmapper_cpu/lightmapper_cpu.cpp
msgid "Plotting lightmaps"
@@ -12315,6 +12273,11 @@ msgstr ""
msgid "Class name can't be a reserved keyword"
msgstr ""
+#: modules/mono/csharp_script.cpp
+#, fuzzy
+msgid "Build Solution"
+msgstr "Запълване на избраното"
+
#: modules/mono/mono_gd/gd_mono_utils.cpp
msgid "End of inner exception stack trace"
msgstr ""
@@ -12438,14 +12401,12 @@ msgid "Add Output Port"
msgstr "ДобавÑне на изходÑщ порт"
#: modules/visual_script/visual_script_editor.cpp
-#, fuzzy
msgid "Change Port Type"
-msgstr "ПромÑна на типа на входÑÑ‰Ð¸Ñ Ð¿Ð¾Ñ€Ñ‚"
+msgstr "ПромÑна на типа на порта"
#: modules/visual_script/visual_script_editor.cpp
-#, fuzzy
msgid "Change Port Name"
-msgstr "ПромÑна на името на входÑÑ‰Ð¸Ñ Ð¿Ð¾Ñ€Ñ‚"
+msgstr "ПромÑна на името на порт"
#: modules/visual_script/visual_script_editor.cpp
msgid "Override an existing built-in function."
@@ -12556,9 +12517,8 @@ msgid "Add Preload Node"
msgstr ""
#: modules/visual_script/visual_script_editor.cpp
-#, fuzzy
msgid "Add Node(s)"
-msgstr "ДобавÑне на възел"
+msgstr "ДобавÑне на възел(възли)"
#: modules/visual_script/visual_script_editor.cpp
msgid "Add Node(s) From Tree"
@@ -12599,14 +12559,12 @@ msgid "Disconnect Nodes"
msgstr "Разкачане на възлите"
#: modules/visual_script/visual_script_editor.cpp
-#, fuzzy
msgid "Connect Node Data"
-msgstr "ИзрÑзване на възелите"
+msgstr "Свързване на данните на възела"
#: modules/visual_script/visual_script_editor.cpp
-#, fuzzy
msgid "Connect Node Sequence"
-msgstr "ИзрÑзване на възелите"
+msgstr "Свързване на поÑледователноÑÑ‚ от възли"
#: modules/visual_script/visual_script_editor.cpp
msgid "Script already has function '%s'"
@@ -12786,225 +12744,215 @@ msgstr "ТърÑене във VisualScript"
msgid "Get %s"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Package name is missing."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Package segments must be of non-zero length."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "The character '%s' is not allowed in Android application package names."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "A digit cannot be the first character in a package segment."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "The character '%s' cannot be the first character in a package segment."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "The package must have at least one '.' separator."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Select device from the list"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Running on %s"
msgstr ""
-#: platform/android/export/export.cpp
-#, fuzzy
+#: platform/android/export/export_plugin.cpp
msgid "Exporting APK..."
-msgstr "ИзнаÑÑне на вÑичко"
+msgstr "ИзнаÑÑне на APK..."
-#: platform/android/export/export.cpp
-#, fuzzy
+#: platform/android/export/export_plugin.cpp
msgid "Uninstalling..."
-msgstr "ИнÑталирате..."
+msgstr "ДеинÑталиране..."
-#: platform/android/export/export.cpp
-#, fuzzy
+#: platform/android/export/export_plugin.cpp
msgid "Installing to device, please wait..."
-msgstr "Зареждане…"
+msgstr "ИнÑталиране на уÑтройÑтвото. МолÑ, изчакайте…"
-#: platform/android/export/export.cpp
-#, fuzzy
+#: platform/android/export/export_plugin.cpp
msgid "Could not install to device: %s"
-msgstr "Файлът не може да бъде запиÑан:"
+msgstr "Ðе може да Ñе инÑталира на уÑтройÑтво: %s"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Running on device..."
msgstr ""
-#: platform/android/export/export.cpp
-#, fuzzy
+#: platform/android/export/export_plugin.cpp
msgid "Could not execute on device."
-msgstr "Папката не може да бъде Ñъздадена."
+msgstr "Изпълнението на уÑтройÑтвото е невъзможно."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Unable to find the 'apksigner' tool."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Android build template not installed in the project. Install it from the "
"Project menu."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Either Debug Keystore, Debug User AND Debug Password settings must be "
"configured OR none of them."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Debug keystore not configured in the Editor Settings nor in the preset."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Either Release Keystore, Release User AND Release Password settings must be "
"configured OR none of them."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Release keystore incorrectly configured in the export preset."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "A valid Android SDK path is required in Editor Settings."
msgstr ""
+"Ð’ наÑтройките на редактора трÑбва да бъде поÑочен правилен път към Android "
+"SDK."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Invalid Android SDK path in Editor Settings."
-msgstr ""
+msgstr "ПътÑÑ‚ до Android SDK в наÑтройките на редактора е грешен."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Missing 'platform-tools' directory!"
-msgstr ""
+msgstr "ЛипÑва папката „platform-tools“!"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Unable to find Android SDK platform-tools' adb command."
-msgstr ""
+msgstr "Ðе е намерена командата „adb“ от Android SDK – platform-tools."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Please check in the Android SDK directory specified in Editor Settings."
msgstr ""
+"МолÑ, проверете папката на Android SDK, коÑто е поÑочена в наÑтройките на "
+"редактора."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Missing 'build-tools' directory!"
-msgstr ""
+msgstr "ЛипÑва папката „build-tools“!"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Unable to find Android SDK build-tools' apksigner command."
-msgstr ""
+msgstr "Ðе е намерена командата „apksigner “ от Android SDK – build-tools."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Invalid public key for APK expansion."
-msgstr ""
+msgstr "Ðеправилен публичен ключ за разширение към APK."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Invalid package name:"
msgstr "Ðеправилно име на пакет:"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Invalid \"GodotPaymentV3\" module included in the \"android/modules\" "
"project setting (changed in Godot 3.2.2).\n"
msgstr ""
+"Ð’ наÑтройките на проекта, раздел „android/modules“, приÑÑŠÑтва неправилен "
+"модул „GodotPaymentV3“ (това е променено във Godot 3.2.2).\n"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "\"Use Custom Build\" must be enabled to use the plugins."
msgstr ""
-#: platform/android/export/export.cpp
-msgid ""
-"\"Degrees Of Freedom\" is only valid when \"Xr Mode\" is \"Oculus Mobile VR"
-"\"."
-msgstr ""
-
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"\"Hand Tracking\" is only valid when \"Xr Mode\" is \"Oculus Mobile VR\"."
msgstr ""
-#: platform/android/export/export.cpp
-msgid ""
-"\"Focus Awareness\" is only valid when \"Xr Mode\" is \"Oculus Mobile VR\"."
-msgstr ""
-
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "\"Export AAB\" is only valid when \"Use Custom Build\" is enabled."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"'apksigner' could not be found.\n"
"Please check the command is available in the Android SDK build-tools "
"directory.\n"
"The resulting %s is unsigned."
msgstr ""
+"Командата „apksigner“ не може да бъде намерена.\n"
+"Проверете дали командата е налична в папката „build-tools“ на Android SDK.\n"
+"РезултатниÑÑ‚ файл „%s“ не е подпиÑан."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Signing debug %s..."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Signing release %s..."
msgstr ""
-#: platform/android/export/export.cpp
-#, fuzzy
+#: platform/android/export/export_plugin.cpp
msgid "Could not find keystore, unable to export."
-msgstr "Шаблонът не може да Ñе отвори за изнаÑÑне:"
+msgstr "Ðе е намерено хранилище за ключове. ИзнаÑÑнето е невъзможно."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "'apksigner' returned with error #%d"
msgstr ""
-#: platform/android/export/export.cpp
-#, fuzzy
+#: platform/android/export/export_plugin.cpp
msgid "Verifying %s..."
-msgstr "ДобавÑне на %s..."
+msgstr "Потвърждаване на %s..."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "'apksigner' verification of %s failed."
msgstr ""
-#: platform/android/export/export.cpp
-#, fuzzy
+#: platform/android/export/export_plugin.cpp
msgid "Exporting for Android"
-msgstr "ИзнаÑÑне на вÑичко"
+msgstr "ИзнаÑÑне за Android"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Invalid filename! Android App Bundle requires the *.aab extension."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "APK Expansion not compatible with Android App Bundle."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Invalid filename! Android APK requires the *.apk extension."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Unsupported export format!\n"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Trying to build from a custom built template, but no version info for it "
"exists. Please reinstall from the 'Project' menu."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Android build version mismatch:\n"
" Template installed: %s\n"
@@ -13012,58 +12960,56 @@ msgid ""
"Please reinstall Android build template from 'Project' menu."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Unable to overwrite res://android/build/res/*.xml files with project name"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Could not export project files to gradle project\n"
msgstr ""
-#: platform/android/export/export.cpp
-#, fuzzy
+#: platform/android/export/export_plugin.cpp
msgid "Could not write expansion package file!"
-msgstr "Файлът не може да бъде запиÑан:"
+msgstr "Файлът Ñ Ð¿Ð°ÐºÐµÑ‚Ð° за разширение не може да бъде запиÑан!"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Building Android Project (gradle)"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Building of Android project failed, check output for the error.\n"
"Alternatively visit docs.godotengine.org for Android build documentation."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Moving output"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Unable to copy and rename export file, check gradle project directory for "
"outputs."
msgstr ""
-#: platform/android/export/export.cpp
-#, fuzzy
+#: platform/android/export/export_plugin.cpp
msgid "Package not found: %s"
-msgstr "Съдържание на пакета:"
+msgstr "Пакетът не е намерен: %s"
-#: platform/android/export/export.cpp
-#, fuzzy
+#: platform/android/export/export_plugin.cpp
msgid "Creating APK..."
-msgstr "Създаване на полигонна мрежа…"
+msgstr "Създаване на APK…"
-#: platform/android/export/export.cpp
-#, fuzzy
+#: platform/android/export/export_plugin.cpp
msgid ""
"Could not find template APK to export:\n"
"%s"
-msgstr "Шаблонът не може да Ñе отвори за изнаÑÑне:"
+msgstr ""
+"Ðе е намерен шаблонен файл APK за изнаÑÑне:\n"
+"%s"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Missing libraries in the export template for the selected architectures: "
"%s.\n"
@@ -13071,21 +13017,19 @@ msgid ""
"architectures in the export preset."
msgstr ""
-#: platform/android/export/export.cpp
-#, fuzzy
+#: platform/android/export/export_plugin.cpp
msgid "Adding files..."
-msgstr "ДобавÑне на %s..."
+msgstr "ДобавÑне на файлове..."
-#: platform/android/export/export.cpp
-#, fuzzy
+#: platform/android/export/export_plugin.cpp
msgid "Could not export project files"
-msgstr "Файлът не може да бъде запиÑан:"
+msgstr "Файловете на проекта не могат да бъдат изнеÑени"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Aligning APK..."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Could not unzip temporary unaligned APK."
msgstr ""
@@ -13134,29 +13078,24 @@ msgid "Could not write file:"
msgstr "Файлът не може да бъде запиÑан:"
#: platform/javascript/export/export.cpp
-#, fuzzy
msgid "Could not read file:"
-msgstr "Файлът не може да бъде запиÑан:"
+msgstr "Файлът не може да бъде прочетен:"
#: platform/javascript/export/export.cpp
-#, fuzzy
msgid "Could not read HTML shell:"
-msgstr "Ðе може да Ñе прочете перÑонализирана HTML-обвивка:"
+msgstr "ПерÑонализираната HTML-обвивка не може да бъде прочетена:"
#: platform/javascript/export/export.cpp
-#, fuzzy
msgid "Could not create HTTP server directory:"
-msgstr "Папката не може да бъде Ñъздадена."
+msgstr "Папката на HTTP-Ñървъра не може да бъде Ñъздадена:"
#: platform/javascript/export/export.cpp
-#, fuzzy
msgid "Error starting HTTP server:"
-msgstr "Грешка при запиÑването:"
+msgstr "Грешка при Ñтартирането на HTTP-Ñървър:"
#: platform/osx/export/export.cpp
-#, fuzzy
msgid "Invalid bundle identifier:"
-msgstr "Името не е правилен идентификатор:"
+msgstr "Ðеправилен идентификатор на пакета:"
#: platform/osx/export/export.cpp
msgid "Notarization: code signing required."
@@ -13576,6 +13515,14 @@ msgstr ""
"NavigationMeshInstance трÑбва да бъде дъщерен или под-дъщерен на възел от "
"тип Navigation. Той Ñамо предоÑÑ‚Ð°Ð²Ñ Ð´Ð°Ð½Ð½Ð¸Ñ‚Ðµ за навигирането."
+#: scene/3d/occluder.cpp
+msgid "No shape is set."
+msgstr ""
+
+#: scene/3d/occluder.cpp
+msgid "Only uniform scales are supported."
+msgstr ""
+
#: scene/3d/particles.cpp
msgid ""
"GPU-based particles are not supported by the GLES2 video driver.\n"
@@ -13871,6 +13818,14 @@ msgstr "ТрÑбва да Ñе използва правилно разширеÐ
msgid "Enable grid minimap."
msgstr ""
+#: scene/gui/nine_patch_rect.cpp
+msgid ""
+"The Tile and Tile Fit options for Axis Stretch properties are only effective "
+"when using the GLES3 rendering backend.\n"
+"The GLES2 backend is currently in use, so these modes will act like Stretch "
+"instead."
+msgstr ""
+
#: scene/gui/popup.cpp
msgid ""
"Popups will hide by default unless you call popup() or any of the popup*() "
@@ -13911,6 +13866,10 @@ msgstr ""
msgid "Viewport size must be greater than 0 to render anything."
msgstr ""
+#: scene/resources/occluder_shape.cpp
+msgid "OccluderShapeSphere Set Spheres"
+msgstr ""
+
#: scene/resources/visual_shader_nodes.cpp
msgid ""
"The sampler port is connected but not used. Consider changing the source to "
diff --git a/editor/translations/bn.po b/editor/translations/bn.po
index 6cd9e3a81c..6c958956bc 100644
--- a/editor/translations/bn.po
+++ b/editor/translations/bn.po
@@ -1052,7 +1052,7 @@ msgstr ""
msgid "Dependencies"
msgstr "নিরà§à¦­à¦°à¦¤à¦¾-সমূহ"
-#: editor/dependency_editor.cpp
+#: editor/dependency_editor.cpp editor/editor_resource_picker.cpp
msgid "Resource"
msgstr "রিসোরà§à¦¸"
@@ -1723,14 +1723,14 @@ msgid ""
"Enabled'."
msgstr ""
-#: editor/editor_export.cpp platform/android/export/export.cpp
+#: editor/editor_export.cpp platform/android/export/export_plugin.cpp
#: platform/iphone/export/export.cpp platform/javascript/export/export.cpp
#: platform/osx/export/export.cpp platform/uwp/export/export.cpp
#, fuzzy
msgid "Custom debug template not found."
msgstr "সà§à¦¬à¦¨à¦¿à¦°à§à¦®à¦¿à¦¤ ডিবাগ (debug) পà§à¦¯à¦¾à¦•েজ খà§à¦à¦œà§‡ পাওয়া যায়নি।"
-#: editor/editor_export.cpp platform/android/export/export.cpp
+#: editor/editor_export.cpp platform/android/export/export_plugin.cpp
#: platform/iphone/export/export.cpp platform/javascript/export/export.cpp
#: platform/osx/export/export.cpp platform/uwp/export/export.cpp
#, fuzzy
@@ -2147,7 +2147,7 @@ msgstr ""
msgid "(Re)Importing Assets"
msgstr "পà§à¦¨à¦°à¦¾à§Ÿ ইমà§à¦ªà§‹à¦°à§à¦Ÿ হচà§à¦›à§‡"
-#: editor/editor_help.cpp editor/plugins/spatial_editor_plugin.cpp
+#: editor/editor_help.cpp
msgid "Top"
msgstr "শীরà§à¦·"
@@ -2689,6 +2689,32 @@ msgid "Current scene not saved. Open anyway?"
msgstr "বরà§à¦¤à¦®à¦¾à¦¨ দৃশà§à¦¯à¦Ÿà¦¿ সংরকà§à¦·à¦¿à¦¤ হয়নি। তবà§à¦“ খà§à¦²à¦¬à§‡à¦¨?"
#: editor/editor_node.cpp
+msgid "Can't undo while mouse buttons are pressed."
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "Nothing to undo."
+msgstr ""
+
+#: editor/editor_node.cpp
+#, fuzzy
+msgid "Undo: %s"
+msgstr "সাবেক অবসà§à¦¥à¦¾à§Ÿ যান/আনডà§"
+
+#: editor/editor_node.cpp
+msgid "Can't redo while mouse buttons are pressed."
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "Nothing to redo."
+msgstr ""
+
+#: editor/editor_node.cpp
+#, fuzzy
+msgid "Redo: %s"
+msgstr "পà§à¦¨à¦°à¦¾à¦¯à¦¼ করà§à¦¨"
+
+#: editor/editor_node.cpp
msgid "Can't reload a scene that was never saved."
msgstr "পূরà§à¦¬à§‡ কখনোই সংরকà§à¦·à¦¿à¦¤ হয়নি à¦à¦®à¦¨ দৃশà§à¦¯ পà§à¦¨à¦°à¦¾à§Ÿ-লোড (রিলোড) করা অসমà§à¦­à¦¬à¥¤"
@@ -3407,6 +3433,11 @@ msgid "Merge With Existing"
msgstr "বিদà§à¦¯à¦®à¦¾à¦¨à§‡à¦° সাথে à¦à¦•তà§à¦°à¦¿à¦¤ করà§à¦¨"
#: editor/editor_node.cpp
+#, fuzzy
+msgid "Apply MeshInstance Transforms"
+msgstr "অà§à¦¯à¦¾à¦¨à¦¿à¦®à§‡à¦¶à¦¨ (Anim) টà§à¦°à¦¾à¦¨à§à¦¸à¦«à¦°à§à¦® পরিবরà§à¦¤à¦¨ করà§à¦¨"
+
+#: editor/editor_node.cpp
msgid "Open & Run a Script"
msgstr "à¦à¦•টি সà§à¦•à§à¦°à¦¿à¦ªà§à¦Ÿ খà§à¦²à§à¦¨ à¦à¦¬à¦‚ চালান"
@@ -3681,6 +3712,10 @@ msgid ""
"property (%s)."
msgstr ""
+#: editor/editor_resource_picker.cpp
+msgid "Quick Load"
+msgstr ""
+
#: editor/editor_resource_picker.cpp editor/property_editor.cpp
#, fuzzy
msgid "Make Unique"
@@ -5971,6 +6006,18 @@ msgid "Move CanvasItem \"%s\" to (%d, %d)"
msgstr "CanvasItem সমà§à¦ªà¦¾à¦¦à¦¨ করà§à¦¨"
#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Locked"
+msgstr "নিরà§à¦¬à¦¾à¦šà¦¨ করà§à¦¨"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Grouped"
+msgstr "গà§à¦°à§à¦ª"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
msgid ""
"Children of containers have their anchors and margins values overridden by "
"their parent."
@@ -6977,7 +7024,13 @@ msgid "Remove Selected Item"
msgstr "নিরà§à¦¬à¦¾à¦šà¦¿à¦¤ বসà§à¦¤à§à¦Ÿà¦¿ অপসারণ করà§à¦¨"
#: editor/plugins/mesh_library_editor_plugin.cpp
-msgid "Import from Scene"
+#, fuzzy
+msgid "Import from Scene (Ignore Transforms)"
+msgstr "দৃশà§à¦¯ হতে ইমà§à¦ªà§‹à¦°à§à¦Ÿ করà§à¦¨"
+
+#: editor/plugins/mesh_library_editor_plugin.cpp
+#, fuzzy
+msgid "Import from Scene (Apply Transforms)"
msgstr "দৃশà§à¦¯ হতে ইমà§à¦ªà§‹à¦°à§à¦Ÿ করà§à¦¨"
#: editor/plugins/mesh_library_editor_plugin.cpp
@@ -7609,6 +7662,16 @@ msgstr "উৎপাদিত বিনà§à¦¦à§à¦° সংখà§à¦¯à¦¾:"
msgid "Flip Portal"
msgstr ""
+#: editor/plugins/room_manager_editor_plugin.cpp
+#, fuzzy
+msgid "Occluder Set Transform"
+msgstr "রà§à¦ªà¦¾à¦¨à§à¦¤à¦°"
+
+#: editor/plugins/room_manager_editor_plugin.cpp
+#, fuzzy
+msgid "Center Node"
+msgstr "নোড তৈরি করà§à¦¨"
+
#: editor/plugins/root_motion_editor_plugin.cpp
msgid "AnimationTree has no path set to an AnimationPlayer"
msgstr ""
@@ -8158,12 +8221,14 @@ msgid "Skeleton2D"
msgstr "সà§à¦•েলেটন/কাঠাম..."
#: editor/plugins/skeleton_2d_editor_plugin.cpp
-msgid "Make Rest Pose (From Bones)"
-msgstr ""
+#, fuzzy
+msgid "Reset to Rest Pose"
+msgstr "পà§à¦°à¦¾à¦¥à¦®à¦¿à¦• sRGB বà§à¦¯à¦¬à¦¹à¦¾à¦° করà§à¦¨"
#: editor/plugins/skeleton_2d_editor_plugin.cpp
-msgid "Set Bones to Rest Pose"
-msgstr ""
+#, fuzzy
+msgid "Overwrite Rest Pose"
+msgstr "পà§à¦°à¦¤à¦¿à¦¸à§à¦¥à¦¾à¦ªà¦¨"
#: editor/plugins/skeleton_editor_plugin.cpp
#, fuzzy
@@ -8194,6 +8259,71 @@ msgid "Perspective"
msgstr "পরিপà§à¦°à§‡à¦•à§à¦·à¦¿à¦¤ (Perspective)"
#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Top Orthogonal"
+msgstr "সমকোণীয় (Orthogonal)"
+
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Top Perspective"
+msgstr "পরিপà§à¦°à§‡à¦•à§à¦·à¦¿à¦¤ (Perspective)"
+
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Bottom Orthogonal"
+msgstr "সমকোণীয় (Orthogonal)"
+
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Bottom Perspective"
+msgstr "পরিপà§à¦°à§‡à¦•à§à¦·à¦¿à¦¤ (Perspective)"
+
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Left Orthogonal"
+msgstr "সমকোণীয় (Orthogonal)"
+
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Right Perspective"
+msgstr "পরিপà§à¦°à§‡à¦•à§à¦·à¦¿à¦¤ (Perspective)"
+
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Right Orthogonal"
+msgstr "সমকোণীয় (Orthogonal)"
+
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Front Orthogonal"
+msgstr "সমকোণীয় (Orthogonal)"
+
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Front Perspective"
+msgstr "পরিপà§à¦°à§‡à¦•à§à¦·à¦¿à¦¤ (Perspective)"
+
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Rear Orthogonal"
+msgstr "সমকোণীয় (Orthogonal)"
+
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Rear Perspective"
+msgstr "পরিপà§à¦°à§‡à¦•à§à¦·à¦¿à¦¤ (Perspective)"
+
+#. TRANSLATORS: This will be appended to the view name when Auto Orthogonal is enabled.
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid " [auto]"
+msgstr ""
+
+#. TRANSLATORS: This will be appended to the view name when Portal Occulusion is enabled.
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid " [portals active]"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
msgid "Transform Aborted."
msgstr "রà§à¦ªà¦¾à¦¨à§à¦¤à¦° নিষà§à¦«à¦²à¦¾ করা হয়েছে।"
@@ -8315,42 +8445,22 @@ msgid "Bottom View."
msgstr "নিমà§à¦¨ দরà§à¦¶à¦¨à¥¤"
#: editor/plugins/spatial_editor_plugin.cpp
-msgid "Bottom"
-msgstr "নিমà§à¦¨"
-
-#: editor/plugins/spatial_editor_plugin.cpp
msgid "Left View."
msgstr "বাম দরà§à¦¶à¦¨à¥¤"
#: editor/plugins/spatial_editor_plugin.cpp
-msgid "Left"
-msgstr "বাম"
-
-#: editor/plugins/spatial_editor_plugin.cpp
msgid "Right View."
msgstr "ডান দরà§à¦¶à¦¨à¥¤"
#: editor/plugins/spatial_editor_plugin.cpp
-msgid "Right"
-msgstr "ডান"
-
-#: editor/plugins/spatial_editor_plugin.cpp
msgid "Front View."
msgstr "সনà§à¦®à§à¦– দরà§à¦¶à¦¨à¥¤"
#: editor/plugins/spatial_editor_plugin.cpp
-msgid "Front"
-msgstr "সনà§à¦®à§à¦–"
-
-#: editor/plugins/spatial_editor_plugin.cpp
msgid "Rear View."
msgstr "পশà§à¦šà¦¾à§Ž দরà§à¦¶à¦¨à¥¤"
#: editor/plugins/spatial_editor_plugin.cpp
-msgid "Rear"
-msgstr "পশà§à¦šà¦¾à§Ž"
-
-#: editor/plugins/spatial_editor_plugin.cpp
#, fuzzy
msgid "Align Transform with View"
msgstr "দরà§à¦¶à¦¨à§‡à¦° সাথে সারিবদà§à¦§ করà§à¦¨"
@@ -8637,6 +8747,11 @@ msgid "View Portal Culling"
msgstr "Viewport সেটিংস"
#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "View Occlusion Culling"
+msgstr "Viewport সেটিংস"
+
+#: editor/plugins/spatial_editor_plugin.cpp
#: modules/gridmap/grid_map_editor_plugin.cpp
#, fuzzy
msgid "Settings..."
@@ -8703,8 +8818,9 @@ msgid "Post"
msgstr "পরবরà§à¦¤à§€ (Post)"
#: editor/plugins/spatial_editor_plugin.cpp
-msgid "Nameless gizmo"
-msgstr ""
+#, fuzzy
+msgid "Unnamed Gizmo"
+msgstr "নামহীন পà§à¦°à¦•লà§à¦ª"
#: editor/plugins/sprite_editor_plugin.cpp
#, fuzzy
@@ -13073,6 +13189,16 @@ msgstr "বকà§à¦°à¦°à§‡à¦–ার বিনà§à¦¦à§à¦° সà§à¦¥à¦¾à¦¨ নি
msgid "Set Portal Point Position"
msgstr "বকà§à¦°à¦°à§‡à¦–ার বিনà§à¦¦à§à¦° সà§à¦¥à¦¾à¦¨ নিরà§à¦§à¦¾à¦°à¦£ করà§à¦¨"
+#: editor/spatial_editor_gizmos.cpp
+#, fuzzy
+msgid "Set Occluder Sphere Radius"
+msgstr "Capsule Shape à¦à¦° বà§à¦¯à¦¾à¦¸à¦¾à¦°à§à¦§ পরিবরà§à¦¤à¦¨ করà§à¦¨"
+
+#: editor/spatial_editor_gizmos.cpp
+#, fuzzy
+msgid "Set Occluder Sphere Position"
+msgstr "আনà§à¦¤-বকà§à¦°à¦°à§‡à¦–ার সà§à¦¥à¦¾à¦¨ নিরà§à¦§à¦¾à¦°à¦£ করà§à¦¨"
+
#: modules/csg/csg_gizmos.cpp
#, fuzzy
msgid "Change Cylinder Radius"
@@ -13391,6 +13517,11 @@ msgstr "ছবিসমূহ বà§à¦²à¦¿à¦Ÿà¦¿à¦‚ (Blitting) করা হচà
msgid "Class name can't be a reserved keyword"
msgstr ""
+#: modules/mono/csharp_script.cpp
+#, fuzzy
+msgid "Build Solution"
+msgstr "সব সিলেকà§à¦Ÿ করà§à¦¨"
+
#: modules/mono/mono_gd/gd_mono_utils.cpp
msgid "End of inner exception stack trace"
msgstr ""
@@ -13927,166 +14058,155 @@ msgstr "Shader Graph Node অপসারণ করà§à¦¨"
msgid "Get %s"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Package name is missing."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Package segments must be of non-zero length."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "The character '%s' is not allowed in Android application package names."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "A digit cannot be the first character in a package segment."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "The character '%s' cannot be the first character in a package segment."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "The package must have at least one '.' separator."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Select device from the list"
msgstr "লিসà§à¦Ÿ থেকে ডিভাইস সিলেকà§à¦Ÿ করà§à¦¨"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Running on %s"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
#, fuzzy
msgid "Exporting APK..."
msgstr "%s à¦à¦° জনà§à¦¯ à¦à¦•à§à¦¸à¦ªà§‹à¦°à§à¦Ÿ (export) হচà§à¦›à§‡"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
#, fuzzy
msgid "Uninstalling..."
msgstr "ইনà§à¦¸à¦Ÿà¦²"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
#, fuzzy
msgid "Installing to device, please wait..."
msgstr "মিরর রিটà§à¦°à¦¾à¦‡à¦­ করা হচà§à¦›à§‡, দযা করে অপেকà§à¦·à¦¾ করà§à¦¨..."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
#, fuzzy
msgid "Could not install to device: %s"
msgstr "দৃশà§à¦¯ ইনà§à¦¸à¦Ÿà§à¦¯à¦¾à¦¨à§à¦¸ করা সমà§à¦­à¦¬ হয়নি!"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
#, fuzzy
msgid "Running on device..."
msgstr "সà§à¦¬à¦¨à¦¿à¦°à§à¦®à¦¿à¦¤ সà§à¦•à§à¦°à¦¿à¦ªà§à¦Ÿ চালানো হচà§à¦›à§‡..."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
#, fuzzy
msgid "Could not execute on device."
msgstr "ফোলà§à¦¡à¦¾à¦° তৈরী করা সমà§à¦­à¦¬ হয়নি।"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Unable to find the 'apksigner' tool."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Android build template not installed in the project. Install it from the "
"Project menu."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Either Debug Keystore, Debug User AND Debug Password settings must be "
"configured OR none of them."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Debug keystore not configured in the Editor Settings nor in the preset."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Either Release Keystore, Release User AND Release Password settings must be "
"configured OR none of them."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Release keystore incorrectly configured in the export preset."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "A valid Android SDK path is required in Editor Settings."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Invalid Android SDK path in Editor Settings."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Missing 'platform-tools' directory!"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Unable to find Android SDK platform-tools' adb command."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Please check in the Android SDK directory specified in Editor Settings."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Missing 'build-tools' directory!"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Unable to find Android SDK build-tools' apksigner command."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Invalid public key for APK expansion."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
#, fuzzy
msgid "Invalid package name:"
msgstr "অগà§à¦°à¦¹à¦£à¦¯à§‹à¦—à§à¦¯ কà§à¦²à¦¾à¦¸ নাম"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Invalid \"GodotPaymentV3\" module included in the \"android/modules\" "
"project setting (changed in Godot 3.2.2).\n"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "\"Use Custom Build\" must be enabled to use the plugins."
msgstr ""
-#: platform/android/export/export.cpp
-msgid ""
-"\"Degrees Of Freedom\" is only valid when \"Xr Mode\" is \"Oculus Mobile VR"
-"\"."
-msgstr ""
-
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"\"Hand Tracking\" is only valid when \"Xr Mode\" is \"Oculus Mobile VR\"."
msgstr ""
-#: platform/android/export/export.cpp
-msgid ""
-"\"Focus Awareness\" is only valid when \"Xr Mode\" is \"Oculus Mobile VR\"."
-msgstr ""
-
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "\"Export AAB\" is only valid when \"Use Custom Build\" is enabled."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"'apksigner' could not be found.\n"
"Please check the command is available in the Android SDK build-tools "
@@ -14094,63 +14214,63 @@ msgid ""
"The resulting %s is unsigned."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Signing debug %s..."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
#, fuzzy
msgid "Signing release %s..."
msgstr ""
"ফাইল সà§à¦•à§à¦¯à¦¾à¦¨ করা হচà§à¦›à§‡,\n"
"অনà§à¦—à§à¦°à¦¹à¦ªà§‚রà§à¦¬à¦• অপেকà§à¦·à¦¾ করà§à¦¨..."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
#, fuzzy
msgid "Could not find keystore, unable to export."
msgstr "ফোলà§à¦¡à¦¾à¦° তৈরী করা সমà§à¦­à¦¬ হয়নি।"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "'apksigner' returned with error #%d"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
#, fuzzy
msgid "Verifying %s..."
msgstr "%s সংযà§à¦•à§à¦¤ হচà§à¦›à§‡..."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "'apksigner' verification of %s failed."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
#, fuzzy
msgid "Exporting for Android"
msgstr "%s à¦à¦° জনà§à¦¯ à¦à¦•à§à¦¸à¦ªà§‹à¦°à§à¦Ÿ (export) হচà§à¦›à§‡"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Invalid filename! Android App Bundle requires the *.aab extension."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "APK Expansion not compatible with Android App Bundle."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Invalid filename! Android APK requires the *.apk extension."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Unsupported export format!\n"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Trying to build from a custom built template, but no version info for it "
"exists. Please reinstall from the 'Project' menu."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Android build version mismatch:\n"
" Template installed: %s\n"
@@ -14158,59 +14278,59 @@ msgid ""
"Please reinstall Android build template from 'Project' menu."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Unable to overwrite res://android/build/res/*.xml files with project name"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
#, fuzzy
msgid "Could not export project files to gradle project\n"
msgstr "পà§à¦°à¦•লà§à¦ªà§‡à¦° পথে engine.cfg তৈরি করা সমà§à¦­à¦¬ হয়নি।"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
#, fuzzy
msgid "Could not write expansion package file!"
msgstr "টাইলটি খà§à¦à¦œà§‡ পাওয়া যায়নি:"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Building Android Project (gradle)"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Building of Android project failed, check output for the error.\n"
"Alternatively visit docs.godotengine.org for Android build documentation."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Moving output"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Unable to copy and rename export file, check gradle project directory for "
"outputs."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
#, fuzzy
msgid "Package not found: %s"
msgstr "অà§à¦¯à¦¾à¦¨à¦¿à¦®à§‡à¦¶à¦¨à§‡à¦° সরঞà§à¦œà¦¾à¦®à¦¸à¦®à§‚হ"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
#, fuzzy
msgid "Creating APK..."
msgstr "ওকটà§à¦°à§€ (octree) গঠনবিনà§à¦¯à¦¾à¦¸ তৈরি করা হচà§à¦›à§‡"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
#, fuzzy
msgid ""
"Could not find template APK to export:\n"
"%s"
msgstr "ফোলà§à¦¡à¦¾à¦° তৈরী করা সমà§à¦­à¦¬ হয়নি।"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Missing libraries in the export template for the selected architectures: "
"%s.\n"
@@ -14218,21 +14338,21 @@ msgid ""
"architectures in the export preset."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
#, fuzzy
msgid "Adding files..."
msgstr "%s সংযà§à¦•à§à¦¤ হচà§à¦›à§‡..."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
#, fuzzy
msgid "Could not export project files"
msgstr "টাইলটি খà§à¦à¦œà§‡ পাওয়া যায়নি:"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Aligning APK..."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Could not unzip temporary unaligned APK."
msgstr ""
@@ -14744,6 +14864,14 @@ msgstr ""
"NavigationMeshInstance-কে অবশà§à¦¯à¦‡ Navigation-à¦à¦° অংশ অথবা অংশের অংশ হতে হবে। "
"à¦à¦Ÿà¦¾ শà§à¦§à§à¦®à¦¾à¦¤à§à¦° নà§à¦¯à¦¾à¦­à¦¿à¦—েশনের তথà§à¦¯ পà§à¦°à¦¦à¦¾à¦¨ করে।"
+#: scene/3d/occluder.cpp
+msgid "No shape is set."
+msgstr ""
+
+#: scene/3d/occluder.cpp
+msgid "Only uniform scales are supported."
+msgstr ""
+
#: scene/3d/particles.cpp
msgid ""
"GPU-based particles are not supported by the GLES2 video driver.\n"
@@ -15047,6 +15175,14 @@ msgstr "à¦à¦•টি কারà§à¦¯à¦•র à¦à¦•à§à¦¸à¦Ÿà§‡à¦¨à¦¶à¦¨ বà§à¦¯
msgid "Enable grid minimap."
msgstr "সà§à¦¨à§à¦¯à¦¾à¦ª সকà§à¦°à¦¿à§Ÿ করà§à¦¨"
+#: scene/gui/nine_patch_rect.cpp
+msgid ""
+"The Tile and Tile Fit options for Axis Stretch properties are only effective "
+"when using the GLES3 rendering backend.\n"
+"The GLES2 backend is currently in use, so these modes will act like Stretch "
+"instead."
+msgstr ""
+
#: scene/gui/popup.cpp
#, fuzzy
msgid ""
@@ -15095,6 +15231,10 @@ msgstr ""
msgid "Viewport size must be greater than 0 to render anything."
msgstr ""
+#: scene/resources/occluder_shape.cpp
+msgid "OccluderShapeSphere Set Spheres"
+msgstr ""
+
#: scene/resources/visual_shader_nodes.cpp
msgid ""
"The sampler port is connected but not used. Consider changing the source to "
@@ -15148,6 +15288,21 @@ msgstr ""
msgid "Constants cannot be modified."
msgstr ""
+#~ msgid "Bottom"
+#~ msgstr "নিমà§à¦¨"
+
+#~ msgid "Left"
+#~ msgstr "বাম"
+
+#~ msgid "Right"
+#~ msgstr "ডান"
+
+#~ msgid "Front"
+#~ msgstr "সনà§à¦®à§à¦–"
+
+#~ msgid "Rear"
+#~ msgstr "পশà§à¦šà¦¾à§Ž"
+
#, fuzzy
#~ msgid "Package Contents:"
#~ msgstr "ধà§à¦°à§à¦¬à¦•সমূহ:"
@@ -17072,9 +17227,6 @@ msgstr ""
#~ msgid "Images:"
#~ msgstr "ছবিসমূহ:"
-#~ msgid "Group"
-#~ msgstr "গà§à¦°à§à¦ª"
-
#~ msgid "Sample Conversion Mode: (.wav files):"
#~ msgstr "নমà§à¦¨à¦¾ রূপানà§à¦¤à¦° মোড: (.wav ফাইল):"
diff --git a/editor/translations/br.po b/editor/translations/br.po
index adee6daaba..4db566b371 100644
--- a/editor/translations/br.po
+++ b/editor/translations/br.po
@@ -1009,7 +1009,7 @@ msgstr ""
msgid "Dependencies"
msgstr ""
-#: editor/dependency_editor.cpp
+#: editor/dependency_editor.cpp editor/editor_resource_picker.cpp
msgid "Resource"
msgstr ""
@@ -1638,13 +1638,13 @@ msgid ""
"Enabled'."
msgstr ""
-#: editor/editor_export.cpp platform/android/export/export.cpp
+#: editor/editor_export.cpp platform/android/export/export_plugin.cpp
#: platform/iphone/export/export.cpp platform/javascript/export/export.cpp
#: platform/osx/export/export.cpp platform/uwp/export/export.cpp
msgid "Custom debug template not found."
msgstr ""
-#: editor/editor_export.cpp platform/android/export/export.cpp
+#: editor/editor_export.cpp platform/android/export/export_plugin.cpp
#: platform/iphone/export/export.cpp platform/javascript/export/export.cpp
#: platform/osx/export/export.cpp platform/uwp/export/export.cpp
msgid "Custom release template not found."
@@ -2015,7 +2015,7 @@ msgstr ""
msgid "(Re)Importing Assets"
msgstr ""
-#: editor/editor_help.cpp editor/plugins/spatial_editor_plugin.cpp
+#: editor/editor_help.cpp
msgid "Top"
msgstr ""
@@ -2493,6 +2493,30 @@ msgid "Current scene not saved. Open anyway?"
msgstr ""
#: editor/editor_node.cpp
+msgid "Can't undo while mouse buttons are pressed."
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "Nothing to undo."
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "Undo: %s"
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "Can't redo while mouse buttons are pressed."
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "Nothing to redo."
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "Redo: %s"
+msgstr ""
+
+#: editor/editor_node.cpp
msgid "Can't reload a scene that was never saved."
msgstr ""
@@ -3116,6 +3140,11 @@ msgid "Merge With Existing"
msgstr ""
#: editor/editor_node.cpp
+#, fuzzy
+msgid "Apply MeshInstance Transforms"
+msgstr "Cheñch Treuzfurmadur ar Fiñvskeudenn"
+
+#: editor/editor_node.cpp
msgid "Open & Run a Script"
msgstr ""
@@ -3357,6 +3386,10 @@ msgid ""
"property (%s)."
msgstr ""
+#: editor/editor_resource_picker.cpp
+msgid "Quick Load"
+msgstr ""
+
#: editor/editor_resource_picker.cpp editor/property_editor.cpp
msgid "Make Unique"
msgstr ""
@@ -5397,6 +5430,16 @@ msgid "Move CanvasItem \"%s\" to (%d, %d)"
msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Locked"
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Grouped"
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
msgid ""
"Children of containers have their anchors and margins values overridden by "
"their parent."
@@ -6296,7 +6339,11 @@ msgid "Remove Selected Item"
msgstr ""
#: editor/plugins/mesh_library_editor_plugin.cpp
-msgid "Import from Scene"
+msgid "Import from Scene (Ignore Transforms)"
+msgstr ""
+
+#: editor/plugins/mesh_library_editor_plugin.cpp
+msgid "Import from Scene (Apply Transforms)"
msgstr ""
#: editor/plugins/mesh_library_editor_plugin.cpp
@@ -6882,6 +6929,14 @@ msgstr "Fiñval ar Poentoù Bezier"
msgid "Flip Portal"
msgstr ""
+#: editor/plugins/room_manager_editor_plugin.cpp
+msgid "Occluder Set Transform"
+msgstr ""
+
+#: editor/plugins/room_manager_editor_plugin.cpp
+msgid "Center Node"
+msgstr ""
+
#: editor/plugins/root_motion_editor_plugin.cpp
msgid "AnimationTree has no path set to an AnimationPlayer"
msgstr ""
@@ -7376,11 +7431,11 @@ msgid "Skeleton2D"
msgstr ""
#: editor/plugins/skeleton_2d_editor_plugin.cpp
-msgid "Make Rest Pose (From Bones)"
+msgid "Reset to Rest Pose"
msgstr ""
#: editor/plugins/skeleton_2d_editor_plugin.cpp
-msgid "Set Bones to Rest Pose"
+msgid "Overwrite Rest Pose"
msgstr ""
#: editor/plugins/skeleton_editor_plugin.cpp
@@ -7408,6 +7463,60 @@ msgid "Perspective"
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Top Orthogonal"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Top Perspective"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Bottom Orthogonal"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Bottom Perspective"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Left Orthogonal"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Right Perspective"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Right Orthogonal"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Front Orthogonal"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Front Perspective"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Rear Orthogonal"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Rear Perspective"
+msgstr ""
+
+#. TRANSLATORS: This will be appended to the view name when Auto Orthogonal is enabled.
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid " [auto]"
+msgstr ""
+
+#. TRANSLATORS: This will be appended to the view name when Portal Occulusion is enabled.
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid " [portals active]"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
msgid "Transform Aborted."
msgstr ""
@@ -7515,42 +7624,22 @@ msgid "Bottom View."
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
-msgid "Bottom"
-msgstr ""
-
-#: editor/plugins/spatial_editor_plugin.cpp
msgid "Left View."
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
-msgid "Left"
-msgstr ""
-
-#: editor/plugins/spatial_editor_plugin.cpp
msgid "Right View."
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
-msgid "Right"
-msgstr ""
-
-#: editor/plugins/spatial_editor_plugin.cpp
msgid "Front View."
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
-msgid "Front"
-msgstr ""
-
-#: editor/plugins/spatial_editor_plugin.cpp
msgid "Rear View."
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
-msgid "Rear"
-msgstr ""
-
-#: editor/plugins/spatial_editor_plugin.cpp
msgid "Align Transform with View"
msgstr ""
@@ -7812,6 +7901,10 @@ msgid "View Portal Culling"
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
+msgid "View Occlusion Culling"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
#: modules/gridmap/grid_map_editor_plugin.cpp
msgid "Settings..."
msgstr ""
@@ -7877,7 +7970,7 @@ msgid "Post"
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
-msgid "Nameless gizmo"
+msgid "Unnamed Gizmo"
msgstr ""
#: editor/plugins/sprite_editor_plugin.cpp
@@ -11777,6 +11870,14 @@ msgstr ""
msgid "Set Portal Point Position"
msgstr ""
+#: editor/spatial_editor_gizmos.cpp
+msgid "Set Occluder Sphere Radius"
+msgstr ""
+
+#: editor/spatial_editor_gizmos.cpp
+msgid "Set Occluder Sphere Position"
+msgstr ""
+
#: modules/csg/csg_gizmos.cpp
msgid "Change Cylinder Radius"
msgstr ""
@@ -12057,6 +12158,10 @@ msgstr ""
msgid "Class name can't be a reserved keyword"
msgstr ""
+#: modules/mono/csharp_script.cpp
+msgid "Build Solution"
+msgstr ""
+
#: modules/mono/mono_gd/gd_mono_utils.cpp
msgid "End of inner exception stack trace"
msgstr ""
@@ -12524,159 +12629,148 @@ msgstr ""
msgid "Get %s"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Package name is missing."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Package segments must be of non-zero length."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "The character '%s' is not allowed in Android application package names."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "A digit cannot be the first character in a package segment."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "The character '%s' cannot be the first character in a package segment."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "The package must have at least one '.' separator."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Select device from the list"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Running on %s"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Exporting APK..."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Uninstalling..."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Installing to device, please wait..."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Could not install to device: %s"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Running on device..."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Could not execute on device."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Unable to find the 'apksigner' tool."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Android build template not installed in the project. Install it from the "
"Project menu."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Either Debug Keystore, Debug User AND Debug Password settings must be "
"configured OR none of them."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Debug keystore not configured in the Editor Settings nor in the preset."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Either Release Keystore, Release User AND Release Password settings must be "
"configured OR none of them."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Release keystore incorrectly configured in the export preset."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "A valid Android SDK path is required in Editor Settings."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Invalid Android SDK path in Editor Settings."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Missing 'platform-tools' directory!"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Unable to find Android SDK platform-tools' adb command."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Please check in the Android SDK directory specified in Editor Settings."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Missing 'build-tools' directory!"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Unable to find Android SDK build-tools' apksigner command."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Invalid public key for APK expansion."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Invalid package name:"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Invalid \"GodotPaymentV3\" module included in the \"android/modules\" "
"project setting (changed in Godot 3.2.2).\n"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "\"Use Custom Build\" must be enabled to use the plugins."
msgstr ""
-#: platform/android/export/export.cpp
-msgid ""
-"\"Degrees Of Freedom\" is only valid when \"Xr Mode\" is \"Oculus Mobile VR"
-"\"."
-msgstr ""
-
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"\"Hand Tracking\" is only valid when \"Xr Mode\" is \"Oculus Mobile VR\"."
msgstr ""
-#: platform/android/export/export.cpp
-msgid ""
-"\"Focus Awareness\" is only valid when \"Xr Mode\" is \"Oculus Mobile VR\"."
-msgstr ""
-
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "\"Export AAB\" is only valid when \"Use Custom Build\" is enabled."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"'apksigner' could not be found.\n"
"Please check the command is available in the Android SDK build-tools "
@@ -12684,57 +12778,57 @@ msgid ""
"The resulting %s is unsigned."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Signing debug %s..."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Signing release %s..."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Could not find keystore, unable to export."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "'apksigner' returned with error #%d"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Verifying %s..."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "'apksigner' verification of %s failed."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Exporting for Android"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Invalid filename! Android App Bundle requires the *.aab extension."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "APK Expansion not compatible with Android App Bundle."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Invalid filename! Android APK requires the *.apk extension."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Unsupported export format!\n"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Trying to build from a custom built template, but no version info for it "
"exists. Please reinstall from the 'Project' menu."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Android build version mismatch:\n"
" Template installed: %s\n"
@@ -12742,54 +12836,54 @@ msgid ""
"Please reinstall Android build template from 'Project' menu."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Unable to overwrite res://android/build/res/*.xml files with project name"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Could not export project files to gradle project\n"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Could not write expansion package file!"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Building Android Project (gradle)"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Building of Android project failed, check output for the error.\n"
"Alternatively visit docs.godotengine.org for Android build documentation."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Moving output"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Unable to copy and rename export file, check gradle project directory for "
"outputs."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Package not found: %s"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Creating APK..."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Could not find template APK to export:\n"
"%s"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Missing libraries in the export template for the selected architectures: "
"%s.\n"
@@ -12797,19 +12891,19 @@ msgid ""
"architectures in the export preset."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Adding files..."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Could not export project files"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Aligning APK..."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Could not unzip temporary unaligned APK."
msgstr ""
@@ -13259,6 +13353,14 @@ msgid ""
"It only provides navigation data."
msgstr ""
+#: scene/3d/occluder.cpp
+msgid "No shape is set."
+msgstr ""
+
+#: scene/3d/occluder.cpp
+msgid "Only uniform scales are supported."
+msgstr ""
+
#: scene/3d/particles.cpp
msgid ""
"GPU-based particles are not supported by the GLES2 video driver.\n"
@@ -13548,6 +13650,14 @@ msgstr ""
msgid "Enable grid minimap."
msgstr ""
+#: scene/gui/nine_patch_rect.cpp
+msgid ""
+"The Tile and Tile Fit options for Axis Stretch properties are only effective "
+"when using the GLES3 rendering backend.\n"
+"The GLES2 backend is currently in use, so these modes will act like Stretch "
+"instead."
+msgstr ""
+
#: scene/gui/popup.cpp
msgid ""
"Popups will hide by default unless you call popup() or any of the popup*() "
@@ -13588,6 +13698,10 @@ msgstr ""
msgid "Viewport size must be greater than 0 to render anything."
msgstr ""
+#: scene/resources/occluder_shape.cpp
+msgid "OccluderShapeSphere Set Spheres"
+msgstr ""
+
#: scene/resources/visual_shader_nodes.cpp
msgid ""
"The sampler port is connected but not used. Consider changing the source to "
diff --git a/editor/translations/ca.po b/editor/translations/ca.po
index 347fea679b..e2580e35d9 100644
--- a/editor/translations/ca.po
+++ b/editor/translations/ca.po
@@ -1039,7 +1039,7 @@ msgstr ""
msgid "Dependencies"
msgstr "Dependències"
-#: editor/dependency_editor.cpp
+#: editor/dependency_editor.cpp editor/editor_resource_picker.cpp
msgid "Resource"
msgstr "Recurs"
@@ -1708,13 +1708,13 @@ msgstr ""
"Activeu \"Import Etc\" a Configuració del Projecte o desactiveu la opció "
"'Driver Fallback Enabled''."
-#: editor/editor_export.cpp platform/android/export/export.cpp
+#: editor/editor_export.cpp platform/android/export/export_plugin.cpp
#: platform/iphone/export/export.cpp platform/javascript/export/export.cpp
#: platform/osx/export/export.cpp platform/uwp/export/export.cpp
msgid "Custom debug template not found."
msgstr "No s'ha trobat cap plantilla de depuració personalitzada."
-#: editor/editor_export.cpp platform/android/export/export.cpp
+#: editor/editor_export.cpp platform/android/export/export_plugin.cpp
#: platform/iphone/export/export.cpp platform/javascript/export/export.cpp
#: platform/osx/export/export.cpp platform/uwp/export/export.cpp
msgid "Custom release template not found."
@@ -2100,7 +2100,7 @@ msgstr ""
msgid "(Re)Importing Assets"
msgstr "(Re)Important Recursos"
-#: editor/editor_help.cpp editor/plugins/spatial_editor_plugin.cpp
+#: editor/editor_help.cpp
msgid "Top"
msgstr "Dalt"
@@ -2611,6 +2611,32 @@ msgid "Current scene not saved. Open anyway?"
msgstr "L'escena actual no s'ha desat. Voleu obrir-la igualment?"
#: editor/editor_node.cpp
+msgid "Can't undo while mouse buttons are pressed."
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "Nothing to undo."
+msgstr ""
+
+#: editor/editor_node.cpp
+#, fuzzy
+msgid "Undo: %s"
+msgstr "Desfés"
+
+#: editor/editor_node.cpp
+msgid "Can't redo while mouse buttons are pressed."
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "Nothing to redo."
+msgstr ""
+
+#: editor/editor_node.cpp
+#, fuzzy
+msgid "Redo: %s"
+msgstr "Refés"
+
+#: editor/editor_node.cpp
msgid "Can't reload a scene that was never saved."
msgstr "No es pot recarregar una escena mai desada."
@@ -3320,6 +3346,11 @@ msgid "Merge With Existing"
msgstr "Combina amb Existents"
#: editor/editor_node.cpp
+#, fuzzy
+msgid "Apply MeshInstance Transforms"
+msgstr "Modifica la Transformació de l'Animació"
+
+#: editor/editor_node.cpp
msgid "Open & Run a Script"
msgstr "Obre i Executa un Script"
@@ -3579,6 +3610,10 @@ msgstr ""
"El recurs seleccionat (%s) no coincideix amb cap tipus esperat per aquesta "
"propietat (%s)."
+#: editor/editor_resource_picker.cpp
+msgid "Quick Load"
+msgstr ""
+
#: editor/editor_resource_picker.cpp editor/property_editor.cpp
msgid "Make Unique"
msgstr "Fes-lo Únic"
@@ -5758,6 +5793,18 @@ msgid "Move CanvasItem \"%s\" to (%d, %d)"
msgstr "Modifica el elementCanvas"
#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Locked"
+msgstr "Bloca la selecció"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Grouped"
+msgstr "Grups"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
msgid ""
"Children of containers have their anchors and margins values overridden by "
"their parent."
@@ -6741,7 +6788,13 @@ msgid "Remove Selected Item"
msgstr "Elimina l'Element Seleccionat"
#: editor/plugins/mesh_library_editor_plugin.cpp
-msgid "Import from Scene"
+#, fuzzy
+msgid "Import from Scene (Ignore Transforms)"
+msgstr "Importa des de l'Escena"
+
+#: editor/plugins/mesh_library_editor_plugin.cpp
+#, fuzzy
+msgid "Import from Scene (Apply Transforms)"
msgstr "Importa des de l'Escena"
#: editor/plugins/mesh_library_editor_plugin.cpp
@@ -7350,6 +7403,16 @@ msgstr "Recompte de punts generats:"
msgid "Flip Portal"
msgstr "Invertir Horitzontalment"
+#: editor/plugins/room_manager_editor_plugin.cpp
+#, fuzzy
+msgid "Occluder Set Transform"
+msgstr "Restablir Transformació"
+
+#: editor/plugins/room_manager_editor_plugin.cpp
+#, fuzzy
+msgid "Center Node"
+msgstr "Crea un Node"
+
#: editor/plugins/root_motion_editor_plugin.cpp
msgid "AnimationTree has no path set to an AnimationPlayer"
msgstr "L'AnimationTree no té ruta assignada cap a un AnimationPlayer"
@@ -7869,13 +7932,13 @@ msgstr "Esquelet2D"
#: editor/plugins/skeleton_2d_editor_plugin.cpp
#, fuzzy
-msgid "Make Rest Pose (From Bones)"
-msgstr "Crear Pose de Repòs (A partir dels Ossos)"
+msgid "Reset to Rest Pose"
+msgstr "Establir els ossos a la postura de repós"
#: editor/plugins/skeleton_2d_editor_plugin.cpp
#, fuzzy
-msgid "Set Bones to Rest Pose"
-msgstr "Establir els ossos a la postura de repós"
+msgid "Overwrite Rest Pose"
+msgstr "Sobreescriu"
#: editor/plugins/skeleton_editor_plugin.cpp
msgid "Create physical bones"
@@ -7903,6 +7966,71 @@ msgid "Perspective"
msgstr "Perspectiva"
#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Top Orthogonal"
+msgstr "Ortogonal"
+
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Top Perspective"
+msgstr "Perspectiva"
+
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Bottom Orthogonal"
+msgstr "Ortogonal"
+
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Bottom Perspective"
+msgstr "Perspectiva"
+
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Left Orthogonal"
+msgstr "Ortogonal"
+
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Right Perspective"
+msgstr "Perspectiva"
+
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Right Orthogonal"
+msgstr "Ortogonal"
+
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Front Orthogonal"
+msgstr "Ortogonal"
+
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Front Perspective"
+msgstr "Perspectiva"
+
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Rear Orthogonal"
+msgstr "Ortogonal"
+
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Rear Perspective"
+msgstr "Perspectiva"
+
+#. TRANSLATORS: This will be appended to the view name when Auto Orthogonal is enabled.
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid " [auto]"
+msgstr ""
+
+#. TRANSLATORS: This will be appended to the view name when Portal Occulusion is enabled.
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid " [portals active]"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
msgid "Transform Aborted."
msgstr "S'ha interromput la Transformació ."
@@ -8021,42 +8149,22 @@ msgid "Bottom View."
msgstr "Vista inferior."
#: editor/plugins/spatial_editor_plugin.cpp
-msgid "Bottom"
-msgstr "Part inferior"
-
-#: editor/plugins/spatial_editor_plugin.cpp
msgid "Left View."
msgstr "Vista esquerra."
#: editor/plugins/spatial_editor_plugin.cpp
-msgid "Left"
-msgstr "Esquerra"
-
-#: editor/plugins/spatial_editor_plugin.cpp
msgid "Right View."
msgstr "Vista Dreta."
#: editor/plugins/spatial_editor_plugin.cpp
-msgid "Right"
-msgstr "Dreta"
-
-#: editor/plugins/spatial_editor_plugin.cpp
msgid "Front View."
msgstr "Vista Frontal."
#: editor/plugins/spatial_editor_plugin.cpp
-msgid "Front"
-msgstr "Davant"
-
-#: editor/plugins/spatial_editor_plugin.cpp
msgid "Rear View."
msgstr "Vista Posterior."
#: editor/plugins/spatial_editor_plugin.cpp
-msgid "Rear"
-msgstr "Darrere"
-
-#: editor/plugins/spatial_editor_plugin.cpp
#, fuzzy
msgid "Align Transform with View"
msgstr "Alinear amb la Vista"
@@ -8334,6 +8442,11 @@ msgid "View Portal Culling"
msgstr "Configuració de la Vista"
#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "View Occlusion Culling"
+msgstr "Configuració de la Vista"
+
+#: editor/plugins/spatial_editor_plugin.cpp
#: modules/gridmap/grid_map_editor_plugin.cpp
msgid "Settings..."
msgstr "Configuració..."
@@ -8403,8 +8516,8 @@ msgstr "Post"
#: editor/plugins/spatial_editor_plugin.cpp
#, fuzzy
-msgid "Nameless gizmo"
-msgstr "Gizmo sense nom"
+msgid "Unnamed Gizmo"
+msgstr "Projecte sense nom"
#: editor/plugins/sprite_editor_plugin.cpp
msgid "Create Mesh2D"
@@ -12771,6 +12884,16 @@ msgstr "Estableix la Posició del Punt de la Corba"
msgid "Set Portal Point Position"
msgstr "Estableix la Posició del Punt de la Corba"
+#: editor/spatial_editor_gizmos.cpp
+#, fuzzy
+msgid "Set Occluder Sphere Radius"
+msgstr "Modifica el radi d'una Forma Càpsula"
+
+#: editor/spatial_editor_gizmos.cpp
+#, fuzzy
+msgid "Set Occluder Sphere Position"
+msgstr "Estableix la Posició d'Entrada de la Corba"
+
#: modules/csg/csg_gizmos.cpp
msgid "Change Cylinder Radius"
msgstr "Canviar Radi del Cilindre"
@@ -13073,6 +13196,11 @@ msgstr "S'està traçant l'Il·luminació:"
msgid "Class name can't be a reserved keyword"
msgstr "El nom de la classe no pot ser una paraula clau reservada"
+#: modules/mono/csharp_script.cpp
+#, fuzzy
+msgid "Build Solution"
+msgstr "Omplir la Selecció"
+
#: modules/mono/mono_gd/gd_mono_utils.cpp
msgid "End of inner exception stack trace"
msgstr "Final de la traça de la pila d'excepció interna"
@@ -13584,78 +13712,78 @@ msgstr "Elimina el Node de VisualScript"
msgid "Get %s"
msgstr "Obtenir %s"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Package name is missing."
msgstr "El nom del paquet falta."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
#, fuzzy
msgid "Package segments must be of non-zero length."
msgstr "Els segments de paquets han de ser de longitud no zero."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "The character '%s' is not allowed in Android application package names."
msgstr ""
"El caràcter '%s' no està permès als noms de paquets d'aplicacions Android."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
#, fuzzy
msgid "A digit cannot be the first character in a package segment."
msgstr "Un dígit no pot ser el primer caràcter d'un segment de paquets."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
#, fuzzy
msgid "The character '%s' cannot be the first character in a package segment."
msgstr ""
"El caràcter '%s' no pot ser el primer caràcter d'un segment de paquets."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "The package must have at least one '.' separator."
msgstr "El paquet ha de tenir com a mínim un separador '. '."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Select device from the list"
msgstr "Selecciona un dispositiu de la llista"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Running on %s"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
#, fuzzy
msgid "Exporting APK..."
msgstr "Exportant tot"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
#, fuzzy
msgid "Uninstalling..."
msgstr "Desinstal·lar"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
#, fuzzy
msgid "Installing to device, please wait..."
msgstr "S'estan buscant rèpliques..."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
#, fuzzy
msgid "Could not install to device: %s"
msgstr "No s'ha pogut començar el subprocés!"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
#, fuzzy
msgid "Running on device..."
msgstr "Executant Script Personalitzat..."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
#, fuzzy
msgid "Could not execute on device."
msgstr "No s'ha pogut crear el directori."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Unable to find the 'apksigner' tool."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
#, fuzzy
msgid ""
"Android build template not installed in the project. Install it from the "
@@ -13664,102 +13792,91 @@ msgstr ""
"El projecte Android no està instal·lat per a la compilació. Instal·leu-lo "
"des del menú Editor."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Either Debug Keystore, Debug User AND Debug Password settings must be "
"configured OR none of them."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Debug keystore not configured in the Editor Settings nor in the preset."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Either Release Keystore, Release User AND Release Password settings must be "
"configured OR none of them."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Release keystore incorrectly configured in the export preset."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
#, fuzzy
msgid "A valid Android SDK path is required in Editor Settings."
msgstr ""
"El camí de l'SDK d'Android no és vàlid per a la compilació personalitzada en "
"la configuració de l'editor."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
#, fuzzy
msgid "Invalid Android SDK path in Editor Settings."
msgstr ""
"El camí de l'SDK d'Android no és vàlid per a la compilació personalitzada en "
"la configuració de l'editor."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Missing 'platform-tools' directory!"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Unable to find Android SDK platform-tools' adb command."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
#, fuzzy
msgid "Please check in the Android SDK directory specified in Editor Settings."
msgstr ""
"El camí de l'SDK d'Android no és vàlid per a la compilació personalitzada en "
"la configuració de l'editor."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Missing 'build-tools' directory!"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Unable to find Android SDK build-tools' apksigner command."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Invalid public key for APK expansion."
msgstr "Clau pública no vàlida per a l'expansió de l'APK."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Invalid package name:"
msgstr "El nom del paquet no és vàlid:"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Invalid \"GodotPaymentV3\" module included in the \"android/modules\" "
"project setting (changed in Godot 3.2.2).\n"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "\"Use Custom Build\" must be enabled to use the plugins."
msgstr ""
-#: platform/android/export/export.cpp
-msgid ""
-"\"Degrees Of Freedom\" is only valid when \"Xr Mode\" is \"Oculus Mobile VR"
-"\"."
-msgstr ""
-
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"\"Hand Tracking\" is only valid when \"Xr Mode\" is \"Oculus Mobile VR\"."
msgstr ""
-#: platform/android/export/export.cpp
-msgid ""
-"\"Focus Awareness\" is only valid when \"Xr Mode\" is \"Oculus Mobile VR\"."
-msgstr ""
-
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "\"Export AAB\" is only valid when \"Use Custom Build\" is enabled."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"'apksigner' could not be found.\n"
"Please check the command is available in the Android SDK build-tools "
@@ -13767,57 +13884,57 @@ msgid ""
"The resulting %s is unsigned."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Signing debug %s..."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
#, fuzzy
msgid "Signing release %s..."
msgstr ""
"Analitzant Fitxers,\n"
"Si Us Plau Espereu..."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
#, fuzzy
msgid "Could not find keystore, unable to export."
msgstr "No es pot obrir la plantilla per exportar:"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "'apksigner' returned with error #%d"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
#, fuzzy
msgid "Verifying %s..."
msgstr "Afegint %s..."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "'apksigner' verification of %s failed."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
#, fuzzy
msgid "Exporting for Android"
msgstr "Exportant tot"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Invalid filename! Android App Bundle requires the *.aab extension."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "APK Expansion not compatible with Android App Bundle."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Invalid filename! Android APK requires the *.apk extension."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Unsupported export format!\n"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
#, fuzzy
msgid ""
"Trying to build from a custom built template, but no version info for it "
@@ -13826,7 +13943,7 @@ msgstr ""
"Intentant construir des d'una plantilla personalitzada, però no existeix "
"informació de versió per a això. Torneu a instal·lar des del menú 'projecte'."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
#, fuzzy
msgid ""
"Android build version mismatch:\n"
@@ -13840,27 +13957,27 @@ msgstr ""
"Torneu a instal·lar la plantilla de compilació d'Android des del menú "
"'Projecte'."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Unable to overwrite res://android/build/res/*.xml files with project name"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
#, fuzzy
msgid "Could not export project files to gradle project\n"
msgstr "No es pot trobat el el fitxer 'project.godot' en el camí del projecte."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
#, fuzzy
msgid "Could not write expansion package file!"
msgstr "No s'ha pogut escriure el fitxer:"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
#, fuzzy
msgid "Building Android Project (gradle)"
msgstr "Construint Projecte Android (gradle)"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
#, fuzzy
msgid ""
"Building of Android project failed, check output for the error.\n"
@@ -13871,34 +13988,34 @@ msgstr ""
"Alternativament visiteu docs.godotengine.org per a la documentació de "
"compilació d'Android."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Moving output"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Unable to copy and rename export file, check gradle project directory for "
"outputs."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
#, fuzzy
msgid "Package not found: %s"
msgstr "Animació no trobada: '%s'"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
#, fuzzy
msgid "Creating APK..."
msgstr "Creant els contorns..."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
#, fuzzy
msgid ""
"Could not find template APK to export:\n"
"%s"
msgstr "No es pot obrir la plantilla per exportar:"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Missing libraries in the export template for the selected architectures: "
"%s.\n"
@@ -13906,21 +14023,21 @@ msgid ""
"architectures in the export preset."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
#, fuzzy
msgid "Adding files..."
msgstr "Afegint %s..."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
#, fuzzy
msgid "Could not export project files"
msgstr "No s'ha pogut escriure el fitxer:"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Aligning APK..."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Could not unzip temporary unaligned APK."
msgstr ""
@@ -14467,6 +14584,14 @@ msgstr ""
"NavigationMeshInstance ha de ser fill o nét d'un node Navigation. Només "
"proporciona dades de navegació."
+#: scene/3d/occluder.cpp
+msgid "No shape is set."
+msgstr ""
+
+#: scene/3d/occluder.cpp
+msgid "Only uniform scales are supported."
+msgstr ""
+
#: scene/3d/particles.cpp
msgid ""
"GPU-based particles are not supported by the GLES2 video driver.\n"
@@ -14787,6 +14912,14 @@ msgstr "Cal utilitzar una extensió vàlida."
msgid "Enable grid minimap."
msgstr "Activar graella del minimapa"
+#: scene/gui/nine_patch_rect.cpp
+msgid ""
+"The Tile and Tile Fit options for Axis Stretch properties are only effective "
+"when using the GLES3 rendering backend.\n"
+"The GLES2 backend is currently in use, so these modes will act like Stretch "
+"instead."
+msgstr ""
+
#: scene/gui/popup.cpp
#, fuzzy
msgid ""
@@ -14842,6 +14975,10 @@ msgstr ""
msgid "Viewport size must be greater than 0 to render anything."
msgstr ""
+#: scene/resources/occluder_shape.cpp
+msgid "OccluderShapeSphere Set Spheres"
+msgstr ""
+
#: scene/resources/visual_shader_nodes.cpp
msgid ""
"The sampler port is connected but not used. Consider changing the source to "
@@ -14894,6 +15031,29 @@ msgstr ""
msgid "Constants cannot be modified."
msgstr "Les constants no es poden modificar."
+#, fuzzy
+#~ msgid "Make Rest Pose (From Bones)"
+#~ msgstr "Crear Pose de Repòs (A partir dels Ossos)"
+
+#~ msgid "Bottom"
+#~ msgstr "Part inferior"
+
+#~ msgid "Left"
+#~ msgstr "Esquerra"
+
+#~ msgid "Right"
+#~ msgstr "Dreta"
+
+#~ msgid "Front"
+#~ msgstr "Davant"
+
+#~ msgid "Rear"
+#~ msgstr "Darrere"
+
+#, fuzzy
+#~ msgid "Nameless gizmo"
+#~ msgstr "Gizmo sense nom"
+
#~ msgid "Package Contents:"
#~ msgstr "Contingut del Paquet:"
diff --git a/editor/translations/cs.po b/editor/translations/cs.po
index 266614bf96..eb257b0af6 100644
--- a/editor/translations/cs.po
+++ b/editor/translations/cs.po
@@ -30,7 +30,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Godot Engine editor\n"
"POT-Creation-Date: \n"
-"PO-Revision-Date: 2021-07-26 14:18+0000\n"
+"PO-Revision-Date: 2021-09-15 00:46+0000\n"
"Last-Translator: Zbyněk <zbynek.fiala@gmail.com>\n"
"Language-Team: Czech <https://hosted.weblate.org/projects/godot-engine/godot/"
"cs/>\n"
@@ -39,7 +39,7 @@ msgstr ""
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;\n"
-"X-Generator: Weblate 4.7.2-dev\n"
+"X-Generator: Weblate 4.9-dev\n"
#: core/math/expression.cpp modules/gdscript/gdscript_functions.cpp
#: modules/visual_script/visual_script_builtin_funcs.cpp
@@ -63,8 +63,7 @@ msgstr "Neplatný vstup %i (nepředán) ve výrazu"
#: core/math/expression.cpp
msgid "self can't be used because instance is null (not passed)"
-msgstr ""
-"\"self\" nemůže být použito, protože instance je \"null\" (není předána)"
+msgstr "self nemůže být použit, protože jeho instance je null (není platná)"
#: core/math/expression.cpp
msgid "Invalid operands to operator %s, %s and %s."
@@ -1047,7 +1046,7 @@ msgstr ""
msgid "Dependencies"
msgstr "Závislosti"
-#: editor/dependency_editor.cpp
+#: editor/dependency_editor.cpp editor/editor_resource_picker.cpp
msgid "Resource"
msgstr "Zdroj"
@@ -1712,13 +1711,13 @@ msgstr ""
"Povolte 'Import Pvrtc' v nastavení projektu, nebo vypněte 'Driver Fallback "
"Enabled'."
-#: editor/editor_export.cpp platform/android/export/export.cpp
+#: editor/editor_export.cpp platform/android/export/export_plugin.cpp
#: platform/iphone/export/export.cpp platform/javascript/export/export.cpp
#: platform/osx/export/export.cpp platform/uwp/export/export.cpp
msgid "Custom debug template not found."
msgstr "Vlastní ladící šablona nebyla nalezena."
-#: editor/editor_export.cpp platform/android/export/export.cpp
+#: editor/editor_export.cpp platform/android/export/export_plugin.cpp
#: platform/iphone/export/export.cpp platform/javascript/export/export.cpp
#: platform/osx/export/export.cpp platform/uwp/export/export.cpp
msgid "Custom release template not found."
@@ -2100,7 +2099,7 @@ msgstr ""
msgid "(Re)Importing Assets"
msgstr "(Re)Importování assetů"
-#: editor/editor_help.cpp editor/plugins/spatial_editor_plugin.cpp
+#: editor/editor_help.cpp
msgid "Top"
msgstr "Horní"
@@ -2608,6 +2607,32 @@ msgid "Current scene not saved. Open anyway?"
msgstr "Aktuální scéna neuložena. Přesto otevřít?"
#: editor/editor_node.cpp
+msgid "Can't undo while mouse buttons are pressed."
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "Nothing to undo."
+msgstr ""
+
+#: editor/editor_node.cpp
+#, fuzzy
+msgid "Undo: %s"
+msgstr "Zpět"
+
+#: editor/editor_node.cpp
+msgid "Can't redo while mouse buttons are pressed."
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "Nothing to redo."
+msgstr ""
+
+#: editor/editor_node.cpp
+#, fuzzy
+msgid "Redo: %s"
+msgstr "Znovu"
+
+#: editor/editor_node.cpp
msgid "Can't reload a scene that was never saved."
msgstr "Nelze naÄíst scénu, která nebyla nikdy uložena."
@@ -3291,6 +3316,11 @@ msgid "Merge With Existing"
msgstr "SlouÄit s existující"
#: editor/editor_node.cpp
+#, fuzzy
+msgid "Apply MeshInstance Transforms"
+msgstr "Animace: Změna transformace"
+
+#: editor/editor_node.cpp
msgid "Open & Run a Script"
msgstr "Otevřít a spustit skript"
@@ -3547,6 +3577,10 @@ msgstr ""
"Vybraný zdroj (%s) neodpovídá žádnému oÄekávanému typu pro tuto vlastnost "
"(%s)."
+#: editor/editor_resource_picker.cpp
+msgid "Quick Load"
+msgstr ""
+
#: editor/editor_resource_picker.cpp editor/property_editor.cpp
msgid "Make Unique"
msgstr "Vytvořit unikátní"
@@ -5674,6 +5708,18 @@ msgid "Move CanvasItem \"%s\" to (%d, %d)"
msgstr "Přemístit CanvasItem \"%s\" na (%d, %d)"
#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Locked"
+msgstr "UzamÄít vybraný"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Grouped"
+msgstr "Skupiny"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
msgid ""
"Children of containers have their anchors and margins values overridden by "
"their parent."
@@ -6492,7 +6538,7 @@ msgstr "Vytvořit obrys"
#: editor/plugins/mesh_instance_editor_plugin.cpp
msgid "Mesh"
-msgstr "Mesh"
+msgstr "Sítě (Mesh)"
#: editor/plugins/mesh_instance_editor_plugin.cpp
msgid "Create Trimesh Static Body"
@@ -6623,7 +6669,13 @@ msgid "Remove Selected Item"
msgstr "Odstranit vybranou položku"
#: editor/plugins/mesh_library_editor_plugin.cpp
-msgid "Import from Scene"
+#, fuzzy
+msgid "Import from Scene (Ignore Transforms)"
+msgstr "Importovat ze scény"
+
+#: editor/plugins/mesh_library_editor_plugin.cpp
+#, fuzzy
+msgid "Import from Scene (Apply Transforms)"
msgstr "Importovat ze scény"
#: editor/plugins/mesh_library_editor_plugin.cpp
@@ -7216,6 +7268,16 @@ msgstr "PoÄet vygenerovaných bodů:"
msgid "Flip Portal"
msgstr "Převrátit horizontálně"
+#: editor/plugins/room_manager_editor_plugin.cpp
+#, fuzzy
+msgid "Occluder Set Transform"
+msgstr "Promazat transformaci"
+
+#: editor/plugins/room_manager_editor_plugin.cpp
+#, fuzzy
+msgid "Center Node"
+msgstr "Vytvořit uzel"
+
#: editor/plugins/root_motion_editor_plugin.cpp
msgid "AnimationTree has no path set to an AnimationPlayer"
msgstr "AnimationTree nemá nastavenou cestu k AnimstionPlayer"
@@ -7716,12 +7778,14 @@ msgid "Skeleton2D"
msgstr "Skeleton2D (Kostra 2D)"
#: editor/plugins/skeleton_2d_editor_plugin.cpp
-msgid "Make Rest Pose (From Bones)"
-msgstr "Vytvořit klidovou pózu (z kostí)"
+#, fuzzy
+msgid "Reset to Rest Pose"
+msgstr "Umístit kosti do klidové pózy"
#: editor/plugins/skeleton_2d_editor_plugin.cpp
-msgid "Set Bones to Rest Pose"
-msgstr "Umístit kosti do klidové pózy"
+#, fuzzy
+msgid "Overwrite Rest Pose"
+msgstr "Přepsat"
#: editor/plugins/skeleton_editor_plugin.cpp
msgid "Create physical bones"
@@ -7748,6 +7812,71 @@ msgid "Perspective"
msgstr "Perspektivní"
#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Top Orthogonal"
+msgstr "Ortogonální"
+
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Top Perspective"
+msgstr "Perspektivní"
+
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Bottom Orthogonal"
+msgstr "Ortogonální"
+
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Bottom Perspective"
+msgstr "Perspektivní"
+
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Left Orthogonal"
+msgstr "Ortogonální"
+
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Right Perspective"
+msgstr "Perspektivní"
+
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Right Orthogonal"
+msgstr "Ortogonální"
+
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Front Orthogonal"
+msgstr "Ortogonální"
+
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Front Perspective"
+msgstr "Perspektivní"
+
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Rear Orthogonal"
+msgstr "Ortogonální"
+
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Rear Perspective"
+msgstr "Perspektivní"
+
+#. TRANSLATORS: This will be appended to the view name when Auto Orthogonal is enabled.
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid " [auto]"
+msgstr ""
+
+#. TRANSLATORS: This will be appended to the view name when Portal Occulusion is enabled.
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid " [portals active]"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
msgid "Transform Aborted."
msgstr "Transformace zrušena."
@@ -7866,42 +7995,22 @@ msgid "Bottom View."
msgstr "Pohled zdola."
#: editor/plugins/spatial_editor_plugin.cpp
-msgid "Bottom"
-msgstr "Dolní"
-
-#: editor/plugins/spatial_editor_plugin.cpp
msgid "Left View."
msgstr "Pohled zleva."
#: editor/plugins/spatial_editor_plugin.cpp
-msgid "Left"
-msgstr "Levý"
-
-#: editor/plugins/spatial_editor_plugin.cpp
msgid "Right View."
msgstr "Pohled zprava."
#: editor/plugins/spatial_editor_plugin.cpp
-msgid "Right"
-msgstr "Pravý"
-
-#: editor/plugins/spatial_editor_plugin.cpp
msgid "Front View."
msgstr "Čelní pohled."
#: editor/plugins/spatial_editor_plugin.cpp
-msgid "Front"
-msgstr "Přední"
-
-#: editor/plugins/spatial_editor_plugin.cpp
msgid "Rear View."
msgstr "Pohled zezadu."
#: editor/plugins/spatial_editor_plugin.cpp
-msgid "Rear"
-msgstr "Zadní"
-
-#: editor/plugins/spatial_editor_plugin.cpp
msgid "Align Transform with View"
msgstr "Zarovnat se zobrazením"
@@ -8174,6 +8283,11 @@ msgid "View Portal Culling"
msgstr "Nastavení viewportu"
#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "View Occlusion Culling"
+msgstr "Nastavení viewportu"
+
+#: editor/plugins/spatial_editor_plugin.cpp
#: modules/gridmap/grid_map_editor_plugin.cpp
msgid "Settings..."
msgstr "Nastavení..."
@@ -8239,8 +8353,9 @@ msgid "Post"
msgstr "Po"
#: editor/plugins/spatial_editor_plugin.cpp
-msgid "Nameless gizmo"
-msgstr "Gizmo beze jména"
+#, fuzzy
+msgid "Unnamed Gizmo"
+msgstr "Nepojmenovaný projekt"
#: editor/plugins/sprite_editor_plugin.cpp
msgid "Create Mesh2D"
@@ -12411,6 +12526,16 @@ msgstr "Nastavit pozici bodu křivky"
msgid "Set Portal Point Position"
msgstr "Nastavit pozici bodu křivky"
+#: editor/spatial_editor_gizmos.cpp
+#, fuzzy
+msgid "Set Occluder Sphere Radius"
+msgstr "Změnit poloměr Cylinder Shape"
+
+#: editor/spatial_editor_gizmos.cpp
+#, fuzzy
+msgid "Set Occluder Sphere Position"
+msgstr "Nastavit bod do křivky"
+
#: modules/csg/csg_gizmos.cpp
msgid "Change Cylinder Radius"
msgstr "Změnit poloměr Cylinder"
@@ -12694,6 +12819,11 @@ msgstr "Vykreslování světelných map"
msgid "Class name can't be a reserved keyword"
msgstr "Název třídy nemůže být rezervované klíÄové slovo"
+#: modules/mono/csharp_script.cpp
+#, fuzzy
+msgid "Build Solution"
+msgstr "Vyplnit výběr"
+
#: modules/mono/mono_gd/gd_mono_utils.cpp
msgid "End of inner exception stack trace"
msgstr "Konec zásobníku trasování vnitřní výjimky"
@@ -13173,73 +13303,73 @@ msgstr "Hledat VisualScript"
msgid "Get %s"
msgstr "Přijmi %d"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Package name is missing."
msgstr "Chybí jméno balíÄku."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Package segments must be of non-zero length."
msgstr "Jméno balíÄku musí být neprázdné."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "The character '%s' is not allowed in Android application package names."
msgstr "Znak '%s' není povolen v názvu balíÄku Android aplikace."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "A digit cannot be the first character in a package segment."
msgstr "Číslice nemůže být prvním znakem segmentu balíÄku."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "The character '%s' cannot be the first character in a package segment."
msgstr "Znak '%s' nemůže být prvním znakem segmentu balíÄku."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "The package must have at least one '.' separator."
msgstr "BalíÄek musí mít alespoň jeden '.' oddÄ›lovaÄ."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Select device from the list"
msgstr "Vyberte zařízení ze seznamu"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Running on %s"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
#, fuzzy
msgid "Exporting APK..."
msgstr "Exportování všeho"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
#, fuzzy
msgid "Uninstalling..."
msgstr "Odinstalovat"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
#, fuzzy
msgid "Installing to device, please wait..."
msgstr "NaÄítání, prosím Äekejte..."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
#, fuzzy
msgid "Could not install to device: %s"
msgstr "Nelze spustit podproces!"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
#, fuzzy
msgid "Running on device..."
msgstr "Spouštím skript..."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
#, fuzzy
msgid "Could not execute on device."
msgstr "Nelze vytvořit složku."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Unable to find the 'apksigner' tool."
msgstr "Nelze najít nástroj 'apksigner'."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Android build template not installed in the project. Install it from the "
"Project menu."
@@ -13247,66 +13377,66 @@ msgstr ""
"Šablona sestavení Androidu není pro projekt nainstalována. Nainstalujte jej "
"z nabídky Projekt."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Either Debug Keystore, Debug User AND Debug Password settings must be "
"configured OR none of them."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Debug keystore not configured in the Editor Settings nor in the preset."
msgstr ""
"ÚložiÅ¡tÄ› klíÄů k ladÄ›ní není nakonfigurováno v Nastavení editoru nebo v "
"export profilu."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Either Release Keystore, Release User AND Release Password settings must be "
"configured OR none of them."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Release keystore incorrectly configured in the export preset."
msgstr ""
"ÚložiÅ¡tÄ› klíÄů pro vydání je nakonfigurováno nesprávnÄ› v profilu exportu."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "A valid Android SDK path is required in Editor Settings."
msgstr "Je vyžadována platná cesta Android SDK v Nastavení editoru."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Invalid Android SDK path in Editor Settings."
msgstr "Neplatná cesta k Android SDK v Nastavení editoru."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Missing 'platform-tools' directory!"
msgstr "Chybí složka \"platform-tools\"!"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Unable to find Android SDK platform-tools' adb command."
msgstr "Nelze najít příkaz adb z nástrojů platformy Android SDK."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Please check in the Android SDK directory specified in Editor Settings."
msgstr "Zkontrolujte ve složce Android SDK uvedené v Nastavení editoru."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Missing 'build-tools' directory!"
msgstr "Chybí složka \"build-tools\"!"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Unable to find Android SDK build-tools' apksigner command."
msgstr "Nelze najít apksigner, nástrojů Android SDK."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Invalid public key for APK expansion."
msgstr "Neplatný veÅ™ejný klÃ­Ä pro rozšíření APK."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Invalid package name:"
msgstr "Neplatné jméno balíÄku:"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Invalid \"GodotPaymentV3\" module included in the \"android/modules\" "
"project setting (changed in Godot 3.2.2).\n"
@@ -13314,40 +13444,25 @@ msgstr ""
"Neplatný modul \"GodotPaymentV3\" v nastavení projektu \"Android / moduly"
"\" (změněno v Godot 3.2.2).\n"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "\"Use Custom Build\" must be enabled to use the plugins."
msgstr ""
"Chcete-li používat doplňky, musí být povoleno \"použít vlastní build\"."
-#: platform/android/export/export.cpp
-msgid ""
-"\"Degrees Of Freedom\" is only valid when \"Xr Mode\" is \"Oculus Mobile VR"
-"\"."
-msgstr ""
-"\"Stupně svobody\" je platné pouze v případě, že \"Xr Mode\" je \"Oculus "
-"Mobile VR\"."
-
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"\"Hand Tracking\" is only valid when \"Xr Mode\" is \"Oculus Mobile VR\"."
msgstr ""
"\"Hand Tracking\" je platné pouze v případě, že \"Režim Xr\" má hodnotu "
"\"Oculus Mobile VR\"."
-#: platform/android/export/export.cpp
-msgid ""
-"\"Focus Awareness\" is only valid when \"Xr Mode\" is \"Oculus Mobile VR\"."
-msgstr ""
-"\"Focus Awareness\" je platné pouze v případě, že \"Režim Xr\" má hodnotu "
-"\"Oculus Mobile VR\"."
-
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "\"Export AAB\" is only valid when \"Use Custom Build\" is enabled."
msgstr ""
"\"Export AAB\" je validní pouze v případě, že je povolena možnost \"Použít "
"vlastní sestavu\"."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"'apksigner' could not be found.\n"
"Please check the command is available in the Android SDK build-tools "
@@ -13355,57 +13470,56 @@ msgid ""
"The resulting %s is unsigned."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Signing debug %s..."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
#, fuzzy
msgid "Signing release %s..."
msgstr ""
"Skenování souborů,\n"
"Prosím, Äekejte..."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
#, fuzzy
msgid "Could not find keystore, unable to export."
msgstr "Nelze otevřít šablonu pro export:"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "'apksigner' returned with error #%d"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
#, fuzzy
msgid "Verifying %s..."
msgstr "Přidávám %s..."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "'apksigner' verification of %s failed."
msgstr ""
-#: platform/android/export/export.cpp
-#, fuzzy
+#: platform/android/export/export_plugin.cpp
msgid "Exporting for Android"
-msgstr "Exportování všeho"
+msgstr "Export pro systém Android"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Invalid filename! Android App Bundle requires the *.aab extension."
msgstr "Neplatné jméno souboru! Android App Bundle vyžaduje příponu *.aab."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "APK Expansion not compatible with Android App Bundle."
msgstr "Rozšíření APK není kompatibilní s Android App Bundle."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Invalid filename! Android APK requires the *.apk extension."
msgstr "Neplatné jméno souboru! Android APK vyžaduje příponu *.apk."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Unsupported export format!\n"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Trying to build from a custom built template, but no version info for it "
"exists. Please reinstall from the 'Project' menu."
@@ -13413,7 +13527,7 @@ msgstr ""
"Pokus o sestavení z vlastní šablony, ale neexistují pro ni žádné informace o "
"verzi. Přeinstalujte jej z nabídky \"Projekt\"."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Android build version mismatch:\n"
" Template installed: %s\n"
@@ -13425,26 +13539,26 @@ msgstr ""
" Verze Godot: %s\n"
"Přeinstalujte šablonu pro sestavení systému Android z nabídky \"Projekt\"."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Unable to overwrite res://android/build/res/*.xml files with project name"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
#, fuzzy
msgid "Could not export project files to gradle project\n"
msgstr "Nelze upravit project.godot v umístění projektu."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
#, fuzzy
msgid "Could not write expansion package file!"
msgstr "Nelze zapsat soubor:"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Building Android Project (gradle)"
msgstr "Buildování projektu pro Android (gradle)"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Building of Android project failed, check output for the error.\n"
"Alternatively visit docs.godotengine.org for Android build documentation."
@@ -13452,11 +13566,11 @@ msgstr ""
"Buildování projektu pro Android se nezdařilo, zkontrolujte chybový výstup.\n"
"Případně navštivte dokumentaci o build pro Android na docs.godotengine.org."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Moving output"
msgstr "Přesunout výstup"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Unable to copy and rename export file, check gradle project directory for "
"outputs."
@@ -13464,24 +13578,24 @@ msgstr ""
"Nelze kopírovat Äi pÅ™ejmenovat exportovaný soubor, zkontrolujte výstupy v "
"adresáři projektu gradle."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
#, fuzzy
msgid "Package not found: %s"
msgstr "Animace nenalezena: '%s'"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
#, fuzzy
msgid "Creating APK..."
msgstr "Vytvářím kontury..."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
#, fuzzy
msgid ""
"Could not find template APK to export:\n"
"%s"
msgstr "Nelze otevřít šablonu pro export:"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Missing libraries in the export template for the selected architectures: "
"%s.\n"
@@ -13489,21 +13603,21 @@ msgid ""
"architectures in the export preset."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
#, fuzzy
msgid "Adding files..."
msgstr "Přidávám %s..."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
#, fuzzy
msgid "Could not export project files"
msgstr "Nelze zapsat soubor:"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Aligning APK..."
msgstr "Zarovnávání APK..."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Could not unzip temporary unaligned APK."
msgstr ""
@@ -14029,6 +14143,14 @@ msgstr ""
"NavigationMeshInstance musí být dítÄ›tem nebo vnouÄetem uzlu Navigation. "
"Poskytuje pouze data pro navigaci."
+#: scene/3d/occluder.cpp
+msgid "No shape is set."
+msgstr ""
+
+#: scene/3d/occluder.cpp
+msgid "Only uniform scales are supported."
+msgstr ""
+
#: scene/3d/particles.cpp
msgid ""
"GPU-based particles are not supported by the GLES2 video driver.\n"
@@ -14352,6 +14474,14 @@ msgstr "Je nutné použít platnou příponu."
msgid "Enable grid minimap."
msgstr "Povolit minimapu mřížky."
+#: scene/gui/nine_patch_rect.cpp
+msgid ""
+"The Tile and Tile Fit options for Axis Stretch properties are only effective "
+"when using the GLES3 rendering backend.\n"
+"The GLES2 backend is currently in use, so these modes will act like Stretch "
+"instead."
+msgstr ""
+
#: scene/gui/popup.cpp
msgid ""
"Popups will hide by default unless you call popup() or any of the popup*() "
@@ -14406,6 +14536,10 @@ msgid "Viewport size must be greater than 0 to render anything."
msgstr ""
"Velikost pohledu musí být větší než 0, aby bylo možné cokoliv renderovat."
+#: scene/resources/occluder_shape.cpp
+msgid "OccluderShapeSphere Set Spheres"
+msgstr ""
+
#: scene/resources/visual_shader_nodes.cpp
msgid ""
"The sampler port is connected but not used. Consider changing the source to "
@@ -14459,6 +14593,41 @@ msgstr "Přiřazeno uniformu."
msgid "Constants cannot be modified."
msgstr "Konstanty není možné upravovat."
+#~ msgid "Make Rest Pose (From Bones)"
+#~ msgstr "Vytvořit klidovou pózu (z kostí)"
+
+#~ msgid "Bottom"
+#~ msgstr "Dolní"
+
+#~ msgid "Left"
+#~ msgstr "Levý"
+
+#~ msgid "Right"
+#~ msgstr "Pravý"
+
+#~ msgid "Front"
+#~ msgstr "Přední"
+
+#~ msgid "Rear"
+#~ msgstr "Zadní"
+
+#~ msgid "Nameless gizmo"
+#~ msgstr "Gizmo beze jména"
+
+#~ msgid ""
+#~ "\"Degrees Of Freedom\" is only valid when \"Xr Mode\" is \"Oculus Mobile "
+#~ "VR\"."
+#~ msgstr ""
+#~ "\"Stupně svobody\" je platné pouze v případě, že \"Xr Mode\" je \"Oculus "
+#~ "Mobile VR\"."
+
+#~ msgid ""
+#~ "\"Focus Awareness\" is only valid when \"Xr Mode\" is \"Oculus Mobile VR"
+#~ "\"."
+#~ msgstr ""
+#~ "\"Focus Awareness\" je platné pouze v případě, že \"Režim Xr\" má hodnotu "
+#~ "\"Oculus Mobile VR\"."
+
#~ msgid "Package Contents:"
#~ msgstr "Obsah balíÄku:"
diff --git a/editor/translations/da.po b/editor/translations/da.po
index 2ab69b5f05..008f3b947c 100644
--- a/editor/translations/da.po
+++ b/editor/translations/da.po
@@ -1078,7 +1078,7 @@ msgstr ""
msgid "Dependencies"
msgstr "Afhængigheder"
-#: editor/dependency_editor.cpp
+#: editor/dependency_editor.cpp editor/editor_resource_picker.cpp
msgid "Resource"
msgstr "Ressource"
@@ -1757,13 +1757,13 @@ msgstr ""
"Aktivér 'Import Pvrtc' i Projektindstillingerne, eller deaktivér 'Driver "
"Fallback Aktiveret'."
-#: editor/editor_export.cpp platform/android/export/export.cpp
+#: editor/editor_export.cpp platform/android/export/export_plugin.cpp
#: platform/iphone/export/export.cpp platform/javascript/export/export.cpp
#: platform/osx/export/export.cpp platform/uwp/export/export.cpp
msgid "Custom debug template not found."
msgstr "Brugerdefineret debug skabelonfil ikke fundet."
-#: editor/editor_export.cpp platform/android/export/export.cpp
+#: editor/editor_export.cpp platform/android/export/export_plugin.cpp
#: platform/iphone/export/export.cpp platform/javascript/export/export.cpp
#: platform/osx/export/export.cpp platform/uwp/export/export.cpp
msgid "Custom release template not found."
@@ -2171,7 +2171,7 @@ msgstr ""
msgid "(Re)Importing Assets"
msgstr "(Gen)Importér Aktiver"
-#: editor/editor_help.cpp editor/plugins/spatial_editor_plugin.cpp
+#: editor/editor_help.cpp
msgid "Top"
msgstr "Top"
@@ -2685,6 +2685,32 @@ msgid "Current scene not saved. Open anyway?"
msgstr "Nuværende scene er ikke gemt. Åbn alligevel?"
#: editor/editor_node.cpp
+msgid "Can't undo while mouse buttons are pressed."
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "Nothing to undo."
+msgstr ""
+
+#: editor/editor_node.cpp
+#, fuzzy
+msgid "Undo: %s"
+msgstr "Fortryd"
+
+#: editor/editor_node.cpp
+msgid "Can't redo while mouse buttons are pressed."
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "Nothing to redo."
+msgstr ""
+
+#: editor/editor_node.cpp
+#, fuzzy
+msgid "Redo: %s"
+msgstr "Annuller Fortyd"
+
+#: editor/editor_node.cpp
msgid "Can't reload a scene that was never saved."
msgstr "Kan ikke genindlæse en scene, der aldrig blev gemt."
@@ -3383,6 +3409,11 @@ msgid "Merge With Existing"
msgstr "Flet Med Eksisterende"
#: editor/editor_node.cpp
+#, fuzzy
+msgid "Apply MeshInstance Transforms"
+msgstr "Anim Skift Transformering"
+
+#: editor/editor_node.cpp
msgid "Open & Run a Script"
msgstr "Åben & Kør et Script"
@@ -3635,6 +3666,10 @@ msgid ""
"property (%s)."
msgstr ""
+#: editor/editor_resource_picker.cpp
+msgid "Quick Load"
+msgstr ""
+
#: editor/editor_resource_picker.cpp editor/property_editor.cpp
msgid "Make Unique"
msgstr ""
@@ -5847,6 +5882,18 @@ msgid "Move CanvasItem \"%s\" to (%d, %d)"
msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Locked"
+msgstr "Vælg værktøj"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Grouped"
+msgstr "Grupper"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
msgid ""
"Children of containers have their anchors and margins values overridden by "
"their parent."
@@ -6799,7 +6846,11 @@ msgid "Remove Selected Item"
msgstr ""
#: editor/plugins/mesh_library_editor_plugin.cpp
-msgid "Import from Scene"
+msgid "Import from Scene (Ignore Transforms)"
+msgstr ""
+
+#: editor/plugins/mesh_library_editor_plugin.cpp
+msgid "Import from Scene (Apply Transforms)"
msgstr ""
#: editor/plugins/mesh_library_editor_plugin.cpp
@@ -7407,6 +7458,16 @@ msgstr "Indsæt Punkt"
msgid "Flip Portal"
msgstr ""
+#: editor/plugins/room_manager_editor_plugin.cpp
+#, fuzzy
+msgid "Occluder Set Transform"
+msgstr "Anim Skift Transformering"
+
+#: editor/plugins/room_manager_editor_plugin.cpp
+#, fuzzy
+msgid "Center Node"
+msgstr "Vælg Node"
+
#: editor/plugins/root_motion_editor_plugin.cpp
msgid "AnimationTree has no path set to an AnimationPlayer"
msgstr ""
@@ -7943,11 +8004,12 @@ msgid "Skeleton2D"
msgstr "Singleton"
#: editor/plugins/skeleton_2d_editor_plugin.cpp
-msgid "Make Rest Pose (From Bones)"
-msgstr ""
+#, fuzzy
+msgid "Reset to Rest Pose"
+msgstr "Indlæs Default"
#: editor/plugins/skeleton_2d_editor_plugin.cpp
-msgid "Set Bones to Rest Pose"
+msgid "Overwrite Rest Pose"
msgstr ""
#: editor/plugins/skeleton_editor_plugin.cpp
@@ -7978,6 +8040,61 @@ msgid "Perspective"
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Top Orthogonal"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Top Perspective"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Bottom Orthogonal"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Bottom Perspective"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Left Orthogonal"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Right Perspective"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Right Orthogonal"
+msgstr "Højre knap."
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Front Orthogonal"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Front Perspective"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Rear Orthogonal"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Rear Perspective"
+msgstr ""
+
+#. TRANSLATORS: This will be appended to the view name when Auto Orthogonal is enabled.
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid " [auto]"
+msgstr ""
+
+#. TRANSLATORS: This will be appended to the view name when Portal Occulusion is enabled.
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid " [portals active]"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
msgid "Transform Aborted."
msgstr ""
@@ -8093,42 +8210,22 @@ msgid "Bottom View."
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
-msgid "Bottom"
-msgstr ""
-
-#: editor/plugins/spatial_editor_plugin.cpp
msgid "Left View."
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
-msgid "Left"
-msgstr ""
-
-#: editor/plugins/spatial_editor_plugin.cpp
msgid "Right View."
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
-msgid "Right"
-msgstr ""
-
-#: editor/plugins/spatial_editor_plugin.cpp
msgid "Front View."
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
-msgid "Front"
-msgstr ""
-
-#: editor/plugins/spatial_editor_plugin.cpp
msgid "Rear View."
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
-msgid "Rear"
-msgstr ""
-
-#: editor/plugins/spatial_editor_plugin.cpp
msgid "Align Transform with View"
msgstr ""
@@ -8395,6 +8492,11 @@ msgid "View Portal Culling"
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "View Occlusion Culling"
+msgstr "Rediger Poly"
+
+#: editor/plugins/spatial_editor_plugin.cpp
#: modules/gridmap/grid_map_editor_plugin.cpp
#, fuzzy
msgid "Settings..."
@@ -8461,7 +8563,7 @@ msgid "Post"
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
-msgid "Nameless gizmo"
+msgid "Unnamed Gizmo"
msgstr ""
#: editor/plugins/sprite_editor_plugin.cpp
@@ -12655,6 +12757,15 @@ msgstr "Fjern Kurve Punktets Position"
msgid "Set Portal Point Position"
msgstr "Fjern Kurve Punktets Position"
+#: editor/spatial_editor_gizmos.cpp
+msgid "Set Occluder Sphere Radius"
+msgstr ""
+
+#: editor/spatial_editor_gizmos.cpp
+#, fuzzy
+msgid "Set Occluder Sphere Position"
+msgstr "Fjern Signal"
+
#: modules/csg/csg_gizmos.cpp
msgid "Change Cylinder Radius"
msgstr ""
@@ -12952,6 +13063,11 @@ msgstr "Generering af lightmaps"
msgid "Class name can't be a reserved keyword"
msgstr ""
+#: modules/mono/csharp_script.cpp
+#, fuzzy
+msgid "Build Solution"
+msgstr "All selection"
+
#: modules/mono/mono_gd/gd_mono_utils.cpp
msgid "End of inner exception stack trace"
msgstr ""
@@ -13456,166 +13572,155 @@ msgstr "Fjern VisualScript Node"
msgid "Get %s"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Package name is missing."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Package segments must be of non-zero length."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "The character '%s' is not allowed in Android application package names."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "A digit cannot be the first character in a package segment."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "The character '%s' cannot be the first character in a package segment."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "The package must have at least one '.' separator."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Select device from the list"
msgstr "Vælg enhed fra listen"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Running on %s"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
#, fuzzy
msgid "Exporting APK..."
msgstr "Eksporter"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
#, fuzzy
msgid "Uninstalling..."
msgstr "Afinstaller"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
#, fuzzy
msgid "Installing to device, please wait..."
msgstr "Henter spejle, vent venligst ..."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
#, fuzzy
msgid "Could not install to device: %s"
msgstr "Kunne ikke starte underproces!"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
#, fuzzy
msgid "Running on device..."
msgstr "Kører Brugerdefineret Script..."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
#, fuzzy
msgid "Could not execute on device."
msgstr "Kunne ikke oprette mappe."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Unable to find the 'apksigner' tool."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Android build template not installed in the project. Install it from the "
"Project menu."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Either Debug Keystore, Debug User AND Debug Password settings must be "
"configured OR none of them."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Debug keystore not configured in the Editor Settings nor in the preset."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Either Release Keystore, Release User AND Release Password settings must be "
"configured OR none of them."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Release keystore incorrectly configured in the export preset."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "A valid Android SDK path is required in Editor Settings."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Invalid Android SDK path in Editor Settings."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Missing 'platform-tools' directory!"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Unable to find Android SDK platform-tools' adb command."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Please check in the Android SDK directory specified in Editor Settings."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Missing 'build-tools' directory!"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Unable to find Android SDK build-tools' apksigner command."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Invalid public key for APK expansion."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
#, fuzzy
msgid "Invalid package name:"
msgstr "Ugyldigt navn."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Invalid \"GodotPaymentV3\" module included in the \"android/modules\" "
"project setting (changed in Godot 3.2.2).\n"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "\"Use Custom Build\" must be enabled to use the plugins."
msgstr ""
-#: platform/android/export/export.cpp
-msgid ""
-"\"Degrees Of Freedom\" is only valid when \"Xr Mode\" is \"Oculus Mobile VR"
-"\"."
-msgstr ""
-
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"\"Hand Tracking\" is only valid when \"Xr Mode\" is \"Oculus Mobile VR\"."
msgstr ""
-#: platform/android/export/export.cpp
-msgid ""
-"\"Focus Awareness\" is only valid when \"Xr Mode\" is \"Oculus Mobile VR\"."
-msgstr ""
-
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "\"Export AAB\" is only valid when \"Use Custom Build\" is enabled."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"'apksigner' could not be found.\n"
"Please check the command is available in the Android SDK build-tools "
@@ -13623,63 +13728,63 @@ msgid ""
"The resulting %s is unsigned."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Signing debug %s..."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
#, fuzzy
msgid "Signing release %s..."
msgstr ""
"Scanner Filer,\n"
"Vent Venligst..."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
#, fuzzy
msgid "Could not find keystore, unable to export."
msgstr "Kan ikke åbne skabelon til eksport:\n"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "'apksigner' returned with error #%d"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
#, fuzzy
msgid "Verifying %s..."
msgstr "Tester"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "'apksigner' verification of %s failed."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
#, fuzzy
msgid "Exporting for Android"
msgstr "Eksporter"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Invalid filename! Android App Bundle requires the *.aab extension."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "APK Expansion not compatible with Android App Bundle."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Invalid filename! Android APK requires the *.apk extension."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Unsupported export format!\n"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Trying to build from a custom built template, but no version info for it "
"exists. Please reinstall from the 'Project' menu."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Android build version mismatch:\n"
" Template installed: %s\n"
@@ -13687,58 +13792,58 @@ msgid ""
"Please reinstall Android build template from 'Project' menu."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Unable to overwrite res://android/build/res/*.xml files with project name"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Could not export project files to gradle project\n"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
#, fuzzy
msgid "Could not write expansion package file!"
msgstr "Kunne ikke skrive til fil:\n"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Building Android Project (gradle)"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Building of Android project failed, check output for the error.\n"
"Alternatively visit docs.godotengine.org for Android build documentation."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Moving output"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Unable to copy and rename export file, check gradle project directory for "
"outputs."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
#, fuzzy
msgid "Package not found: %s"
msgstr "Animations Længde (i sekunder)."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
#, fuzzy
msgid "Creating APK..."
msgstr "Forbinder..."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
#, fuzzy
msgid ""
"Could not find template APK to export:\n"
"%s"
msgstr "Kan ikke åbne skabelon til eksport:\n"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Missing libraries in the export template for the selected architectures: "
"%s.\n"
@@ -13746,21 +13851,21 @@ msgid ""
"architectures in the export preset."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
#, fuzzy
msgid "Adding files..."
msgstr "Filtrer filer..."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
#, fuzzy
msgid "Could not export project files"
msgstr "Kunne ikke skrive til fil:\n"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Aligning APK..."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Could not unzip temporary unaligned APK."
msgstr ""
@@ -14273,6 +14378,14 @@ msgstr ""
"NavigationMeshInstance skal være et barn eller barnebarn til en Navigation "
"node. Det giver kun navigationsdata."
+#: scene/3d/occluder.cpp
+msgid "No shape is set."
+msgstr ""
+
+#: scene/3d/occluder.cpp
+msgid "Only uniform scales are supported."
+msgstr ""
+
#: scene/3d/particles.cpp
msgid ""
"GPU-based particles are not supported by the GLES2 video driver.\n"
@@ -14575,6 +14688,14 @@ msgstr "Du skal bruge en gyldig udvidelse."
msgid "Enable grid minimap."
msgstr ""
+#: scene/gui/nine_patch_rect.cpp
+msgid ""
+"The Tile and Tile Fit options for Axis Stretch properties are only effective "
+"when using the GLES3 rendering backend.\n"
+"The GLES2 backend is currently in use, so these modes will act like Stretch "
+"instead."
+msgstr ""
+
#: scene/gui/popup.cpp
#, fuzzy
msgid ""
@@ -14623,6 +14744,10 @@ msgstr ""
msgid "Viewport size must be greater than 0 to render anything."
msgstr ""
+#: scene/resources/occluder_shape.cpp
+msgid "OccluderShapeSphere Set Spheres"
+msgstr ""
+
#: scene/resources/visual_shader_nodes.cpp
msgid ""
"The sampler port is connected but not used. Consider changing the source to "
diff --git a/editor/translations/de.po b/editor/translations/de.po
index 6d57f3dcad..b0ca136093 100644
--- a/editor/translations/de.po
+++ b/editor/translations/de.po
@@ -71,12 +71,13 @@
# Stephan Kerbl <stephankerbl@gmail.com>, 2021.
# Philipp Wabnitz <philipp.wabnitz@s2011.tu-chemnitz.de>, 2021.
# jmih03 <joerni@mail.de>, 2021.
+# Dominik Moos <dominik.moos@protonmail.com>, 2021.
msgid ""
msgstr ""
"Project-Id-Version: Godot Engine editor\n"
"POT-Creation-Date: \n"
-"PO-Revision-Date: 2021-08-06 06:47+0000\n"
-"Last-Translator: So Wieso <sowieso@dukun.de>\n"
+"PO-Revision-Date: 2021-08-27 08:25+0000\n"
+"Last-Translator: Dominik Moos <dominik.moos@protonmail.com>\n"
"Language-Team: German <https://hosted.weblate.org/projects/godot-engine/"
"godot/de/>\n"
"Language: de\n"
@@ -84,7 +85,7 @@ msgstr ""
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=n != 1;\n"
-"X-Generator: Weblate 4.8-dev\n"
+"X-Generator: Weblate 4.8.1-dev\n"
#: core/math/expression.cpp modules/gdscript/gdscript_functions.cpp
#: modules/visual_script/visual_script_builtin_funcs.cpp
@@ -433,13 +434,11 @@ msgstr "Einfügen"
#. TRANSLATORS: This describes the target of new animation track, will be inserted into another string.
#: editor/animation_track_editor.cpp
-#, fuzzy
msgid "node '%s'"
-msgstr "‚%s‘ kann nicht geöffnet werden."
+msgstr "Node ‚%s‘"
#. TRANSLATORS: This describes the target of new animation track, will be inserted into another string.
#: editor/animation_track_editor.cpp
-#, fuzzy
msgid "animation"
msgstr "Animation"
@@ -449,9 +448,8 @@ msgstr "AnimationPlayer kann sich nicht selbst animieren, nur andere Objekte."
#. TRANSLATORS: This describes the target of new animation track, will be inserted into another string.
#: editor/animation_track_editor.cpp
-#, fuzzy
msgid "property '%s'"
-msgstr "Eigenschaft ‚%s‘ existiert nicht."
+msgstr "Eigenschaft ‚%s‘"
#: editor/animation_track_editor.cpp
msgid "Anim Create & Insert"
@@ -1092,7 +1090,7 @@ msgstr ""
msgid "Dependencies"
msgstr "Abhängigkeiten"
-#: editor/dependency_editor.cpp
+#: editor/dependency_editor.cpp editor/editor_resource_picker.cpp
msgid "Resource"
msgstr "Ressource"
@@ -1756,13 +1754,13 @@ msgstr ""
"Bitte ‚Import Pvrtc‘ in den Projekteinstellungen aktivieren oder ‚Driver "
"Fallback Enabled‘ ausschalten."
-#: editor/editor_export.cpp platform/android/export/export.cpp
+#: editor/editor_export.cpp platform/android/export/export_plugin.cpp
#: platform/iphone/export/export.cpp platform/javascript/export/export.cpp
#: platform/osx/export/export.cpp platform/uwp/export/export.cpp
msgid "Custom debug template not found."
msgstr "Selbst konfigurierte Debug-Exportvorlage nicht gefunden."
-#: editor/editor_export.cpp platform/android/export/export.cpp
+#: editor/editor_export.cpp platform/android/export/export_plugin.cpp
#: platform/iphone/export/export.cpp platform/javascript/export/export.cpp
#: platform/osx/export/export.cpp platform/uwp/export/export.cpp
msgid "Custom release template not found."
@@ -1942,7 +1940,7 @@ msgstr "Als aktuell auswählen"
#: editor/editor_feature_profile.cpp editor/editor_node.cpp
#: editor/plugins/theme_editor_plugin.cpp editor/project_manager.cpp
msgid "Import"
-msgstr "Import"
+msgstr "Importieren"
#: editor/editor_feature_profile.cpp editor/project_export.cpp
msgid "Export"
@@ -2149,7 +2147,7 @@ msgstr ""
msgid "(Re)Importing Assets"
msgstr "Importiere Nutzerinhalte erneut"
-#: editor/editor_help.cpp editor/plugins/spatial_editor_plugin.cpp
+#: editor/editor_help.cpp
msgid "Top"
msgstr "Oben"
@@ -2386,6 +2384,9 @@ msgid ""
"Update Continuously is enabled, which can increase power usage. Click to "
"disable it."
msgstr ""
+"Dreht sich wenn das Editorfenster neu gezeichnet wird.\n"
+"Fortlaufendes Aktualisieren ist aktiviert, was den Energieverbrauch erhöht. "
+"Zum Deaktivieren klicken."
#: editor/editor_node.cpp
msgid "Spins when the editor window redraws."
@@ -2664,6 +2665,32 @@ msgid "Current scene not saved. Open anyway?"
msgstr "Die aktuelle Szene ist nicht gespeichert. Trotzdem öffnen?"
#: editor/editor_node.cpp
+msgid "Can't undo while mouse buttons are pressed."
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "Nothing to undo."
+msgstr ""
+
+#: editor/editor_node.cpp
+#, fuzzy
+msgid "Undo: %s"
+msgstr "Rückgängig machen"
+
+#: editor/editor_node.cpp
+msgid "Can't redo while mouse buttons are pressed."
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "Nothing to redo."
+msgstr ""
+
+#: editor/editor_node.cpp
+#, fuzzy
+msgid "Redo: %s"
+msgstr "Wiederherstellen"
+
+#: editor/editor_node.cpp
msgid "Can't reload a scene that was never saved."
msgstr ""
"Szene kann nicht neu geladen werden, wenn sie vorher nicht gespeichert wurde."
@@ -3361,6 +3388,11 @@ msgid "Merge With Existing"
msgstr "Mit existierendem vereinen"
#: editor/editor_node.cpp
+#, fuzzy
+msgid "Apply MeshInstance Transforms"
+msgstr "Transformation bearbeiten"
+
+#: editor/editor_node.cpp
msgid "Open & Run a Script"
msgstr "Skript öffnen und ausführen"
@@ -3395,9 +3427,8 @@ msgid "Select"
msgstr "Auswählen"
#: editor/editor_node.cpp
-#, fuzzy
msgid "Select Current"
-msgstr "Aktuelles auswählen"
+msgstr "Aktuelle auswählen"
#: editor/editor_node.cpp
msgid "Open 2D Editor"
@@ -3620,6 +3651,10 @@ msgstr ""
"Die ausgewählte Ressource (%s) stimmt mit keinem erwarteten Typ dieser "
"Eigenschaft (%s) überein."
+#: editor/editor_resource_picker.cpp
+msgid "Quick Load"
+msgstr ""
+
#: editor/editor_resource_picker.cpp editor/property_editor.cpp
msgid "Make Unique"
msgstr "Einzigartig machen"
@@ -3912,14 +3947,12 @@ msgid "Download from:"
msgstr "Herunterladen von:"
#: editor/export_template_manager.cpp
-#, fuzzy
msgid "Open in Web Browser"
-msgstr "Im Browser ausführen"
+msgstr "In Web-Browser öffnen"
#: editor/export_template_manager.cpp
-#, fuzzy
msgid "Copy Mirror URL"
-msgstr "Fehlermeldung kopieren"
+msgstr "Mirror-URL kopieren"
#: editor/export_template_manager.cpp
msgid "Download and Install"
@@ -5730,6 +5763,18 @@ msgid "Move CanvasItem \"%s\" to (%d, %d)"
msgstr "CanvasItem „%s“ zu (%d, d%) verschieben"
#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Locked"
+msgstr "Sperren ausgewählt"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Grouped"
+msgstr "Gruppe"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
msgid ""
"Children of containers have their anchors and margins values overridden by "
"their parent."
@@ -6589,7 +6634,6 @@ msgid "Create Simplified Convex Collision Sibling"
msgstr "Vereinfachtes konvexes Kollisionsnachbarelement erzeugen"
#: editor/plugins/mesh_instance_editor_plugin.cpp
-#, fuzzy
msgid ""
"Creates a simplified convex collision shape.\n"
"This is similar to single collision shape, but can result in a simpler "
@@ -6604,7 +6648,6 @@ msgid "Create Multiple Convex Collision Siblings"
msgstr "Mehrere konvexe Kollisionsunterelemente erzeugen"
#: editor/plugins/mesh_instance_editor_plugin.cpp
-#, fuzzy
msgid ""
"Creates a polygon-based collision shape.\n"
"This is a performance middle-ground between a single convex collision and a "
@@ -6679,7 +6722,13 @@ msgid "Remove Selected Item"
msgstr "Ausgewähltes Element entfernen"
#: editor/plugins/mesh_library_editor_plugin.cpp
-msgid "Import from Scene"
+#, fuzzy
+msgid "Import from Scene (Ignore Transforms)"
+msgstr "Aus Szene importieren"
+
+#: editor/plugins/mesh_library_editor_plugin.cpp
+#, fuzzy
+msgid "Import from Scene (Apply Transforms)"
msgstr "Aus Szene importieren"
#: editor/plugins/mesh_library_editor_plugin.cpp
@@ -7273,6 +7322,16 @@ msgstr "Generiere Punkte"
msgid "Flip Portal"
msgstr "Portal umdrehen"
+#: editor/plugins/room_manager_editor_plugin.cpp
+#, fuzzy
+msgid "Occluder Set Transform"
+msgstr "Transform leeren"
+
+#: editor/plugins/room_manager_editor_plugin.cpp
+#, fuzzy
+msgid "Center Node"
+msgstr "Erzeuge Node"
+
#: editor/plugins/root_motion_editor_plugin.cpp
msgid "AnimationTree has no path set to an AnimationPlayer"
msgstr ""
@@ -7779,12 +7838,14 @@ msgid "Skeleton2D"
msgstr "Skelett2D"
#: editor/plugins/skeleton_2d_editor_plugin.cpp
-msgid "Make Rest Pose (From Bones)"
-msgstr "Ruhe-Pose erstellen (aus Knochen)"
+#, fuzzy
+msgid "Reset to Rest Pose"
+msgstr "Kochen in Ruhe-Pose setzen"
#: editor/plugins/skeleton_2d_editor_plugin.cpp
-msgid "Set Bones to Rest Pose"
-msgstr "Kochen in Ruhe-Pose setzen"
+#, fuzzy
+msgid "Overwrite Rest Pose"
+msgstr "Überschreiben"
#: editor/plugins/skeleton_editor_plugin.cpp
msgid "Create physical bones"
@@ -7811,6 +7872,71 @@ msgid "Perspective"
msgstr "Perspektivisch"
#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Top Orthogonal"
+msgstr "Senkrecht"
+
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Top Perspective"
+msgstr "Perspektivisch"
+
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Bottom Orthogonal"
+msgstr "Senkrecht"
+
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Bottom Perspective"
+msgstr "Perspektivisch"
+
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Left Orthogonal"
+msgstr "Senkrecht"
+
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Right Perspective"
+msgstr "Perspektivisch"
+
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Right Orthogonal"
+msgstr "Senkrecht"
+
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Front Orthogonal"
+msgstr "Senkrecht"
+
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Front Perspective"
+msgstr "Perspektivisch"
+
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Rear Orthogonal"
+msgstr "Senkrecht"
+
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Rear Perspective"
+msgstr "Perspektivisch"
+
+#. TRANSLATORS: This will be appended to the view name when Auto Orthogonal is enabled.
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid " [auto]"
+msgstr ""
+
+#. TRANSLATORS: This will be appended to the view name when Portal Occulusion is enabled.
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid " [portals active]"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
msgid "Transform Aborted."
msgstr "Transformation abgebrochen."
@@ -7918,42 +8044,22 @@ msgid "Bottom View."
msgstr "Sicht von unten."
#: editor/plugins/spatial_editor_plugin.cpp
-msgid "Bottom"
-msgstr "Unten"
-
-#: editor/plugins/spatial_editor_plugin.cpp
msgid "Left View."
msgstr "Sicht von links."
#: editor/plugins/spatial_editor_plugin.cpp
-msgid "Left"
-msgstr "Links"
-
-#: editor/plugins/spatial_editor_plugin.cpp
msgid "Right View."
msgstr "Sicht von Rechts."
#: editor/plugins/spatial_editor_plugin.cpp
-msgid "Right"
-msgstr "Rechts"
-
-#: editor/plugins/spatial_editor_plugin.cpp
msgid "Front View."
msgstr "Sicht von vorne."
#: editor/plugins/spatial_editor_plugin.cpp
-msgid "Front"
-msgstr "Vorne"
-
-#: editor/plugins/spatial_editor_plugin.cpp
msgid "Rear View."
msgstr "Sicht von hinten."
#: editor/plugins/spatial_editor_plugin.cpp
-msgid "Rear"
-msgstr "Hinten"
-
-#: editor/plugins/spatial_editor_plugin.cpp
msgid "Align Transform with View"
msgstr "Transform auf Sicht ausrichten"
@@ -8228,6 +8334,11 @@ msgid "View Portal Culling"
msgstr "Portal-Culling anzeigen"
#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "View Occlusion Culling"
+msgstr "Portal-Culling anzeigen"
+
+#: editor/plugins/spatial_editor_plugin.cpp
#: modules/gridmap/grid_map_editor_plugin.cpp
msgid "Settings..."
msgstr "Einstellungen…"
@@ -8293,8 +8404,9 @@ msgid "Post"
msgstr "Nachher"
#: editor/plugins/spatial_editor_plugin.cpp
-msgid "Nameless gizmo"
-msgstr "Namenloser Manipulator"
+#, fuzzy
+msgid "Unnamed Gizmo"
+msgstr "Unbenanntes Projekt"
#: editor/plugins/sprite_editor_plugin.cpp
msgid "Create Mesh2D"
@@ -8620,7 +8732,7 @@ msgstr "Am Importieren von Elementen {n}/{n}"
#: editor/plugins/theme_editor_plugin.cpp
msgid "Updating the editor"
-msgstr "Den Editor aktualisieren?"
+msgstr "Am Aktualisieren des Editors"
#: editor/plugins/theme_editor_plugin.cpp
msgid "Finalizing"
@@ -8753,6 +8865,9 @@ msgid ""
"Select a theme type from the list to edit its items.\n"
"You can add a custom type or import a type with its items from another theme."
msgstr ""
+"Einen Thementyp aus der Liste auswählen um dessen Elementen zu bearbeiten.\n"
+"Weiter kann ein eigener Typ hinzugefügt oder ein Typ inklusive seiner "
+"Elemente aus einem andern Thema importiert werden."
#: editor/plugins/theme_editor_plugin.cpp
msgid "Remove All Color Items"
@@ -8783,6 +8898,9 @@ msgid ""
"This theme type is empty.\n"
"Add more items to it manually or by importing from another theme."
msgstr ""
+"Dieser Thementyp ist leer.\n"
+"Zusätzliche Elemente können manuell oder durch Importieren aus einem andern "
+"Thema hinzugefügt werden."
#: editor/plugins/theme_editor_plugin.cpp
msgid "Add Color Item"
@@ -9715,7 +9833,7 @@ msgstr "UniformRef-Name geändert"
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Vertex"
-msgstr "Eckpunkt"
+msgstr "Vertex"
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Fragment"
@@ -11001,7 +11119,7 @@ msgstr "Projekt ausführen"
#: editor/project_manager.cpp
msgid "Scan"
-msgstr "Scannen"
+msgstr "Durchsuchen"
#: editor/project_manager.cpp
msgid "Scan Projects"
@@ -11297,7 +11415,7 @@ msgstr "Ressourcen-Umleitung entfernen"
#: editor/project_settings_editor.cpp
msgid "Remove Resource Remap Option"
-msgstr "Ressourcen-Umleitungsoption entfernen"
+msgstr "Ressourcen-Neuzuordungsoption entfernen"
#: editor/project_settings_editor.cpp
msgid "Changed Locale Filter"
@@ -12426,14 +12544,22 @@ msgid "Change Ray Shape Length"
msgstr "Ändere Länge der Strahlenform"
#: editor/spatial_editor_gizmos.cpp
-#, fuzzy
msgid "Set Room Point Position"
-msgstr "Kurvenpunktposition festlegen"
+msgstr "Room-Point-Position festlegen"
#: editor/spatial_editor_gizmos.cpp
-#, fuzzy
msgid "Set Portal Point Position"
-msgstr "Kurvenpunktposition festlegen"
+msgstr "Portal-Point-Position festlegen"
+
+#: editor/spatial_editor_gizmos.cpp
+#, fuzzy
+msgid "Set Occluder Sphere Radius"
+msgstr "Zylinderformradius ändern"
+
+#: editor/spatial_editor_gizmos.cpp
+#, fuzzy
+msgid "Set Occluder Sphere Position"
+msgstr "Kurven-Eingangsposition festlegen"
#: modules/csg/csg_gizmos.cpp
msgid "Change Cylinder Radius"
@@ -12717,6 +12843,11 @@ msgstr "Lightmaps auftragen"
msgid "Class name can't be a reserved keyword"
msgstr "Der Klassenname kann nicht ein reserviertes Schlüsselwort sein"
+#: modules/mono/csharp_script.cpp
+#, fuzzy
+msgid "Build Solution"
+msgstr "Auswahl füllen"
+
#: modules/mono/mono_gd/gd_mono_utils.cpp
msgid "End of inner exception stack trace"
msgstr "Ende des inneren Exception-Stack-Traces"
@@ -13205,68 +13336,68 @@ msgstr "VisualScript suchen"
msgid "Get %s"
msgstr "%s abrufen"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Package name is missing."
msgstr "Paketname fehlt."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Package segments must be of non-zero length."
msgstr "Paketsegmente dürfen keine Länge gleich Null haben."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "The character '%s' is not allowed in Android application package names."
msgstr "Das Zeichen ‚%s‘ ist in Android-Anwendungspaketnamen nicht gestattet."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "A digit cannot be the first character in a package segment."
msgstr "Eine Ziffer kann nicht das erste Zeichen eines Paketsegments sein."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "The character '%s' cannot be the first character in a package segment."
msgstr ""
"Das Zeichen ‚%s‘ kann nicht das erste Zeichen in einem Paketsegment sein."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "The package must have at least one '.' separator."
msgstr "Das Paket muss mindestens einen Punkt-Unterteiler ‚.‘ haben."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Select device from the list"
msgstr "Gerät aus Liste auswählen"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Running on %s"
msgstr "Läuft auf %s"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Exporting APK..."
msgstr "APK exportieren…"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Uninstalling..."
msgstr "Am Deinstallieren…"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Installing to device, please wait..."
msgstr "Am Installieren auf Gerät, bitte warten..."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Could not install to device: %s"
msgstr "Konnte Installation auf Gerät nicht durchführen: %s"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Running on device..."
msgstr "Auf Gerät ausführen…"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Could not execute on device."
msgstr "Ließ sich nicht auf Gerät ausführen."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Unable to find the 'apksigner' tool."
msgstr "Das ‚apksigner‘-Hilfswerkzeug konnte nicht gefunden werden."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Android build template not installed in the project. Install it from the "
"Project menu."
@@ -13274,7 +13405,7 @@ msgstr ""
"Es wurde keine Android-Buildvorlage für dieses Projekt installiert. Es kann "
"im Projektmenü installiert werden."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Either Debug Keystore, Debug User AND Debug Password settings must be "
"configured OR none of them."
@@ -13282,13 +13413,13 @@ msgstr ""
"Die drei Einstellungen Debug Keystore, Debug User und Debug Password müssen "
"entweder alle angegeben, oder alle nicht angegeben sein."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Debug keystore not configured in the Editor Settings nor in the preset."
msgstr ""
"Debug-Keystore wurde weder in den Editoreinstellungen noch in der Vorlage "
"konfiguriert."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Either Release Keystore, Release User AND Release Password settings must be "
"configured OR none of them."
@@ -13296,54 +13427,54 @@ msgstr ""
"Die drei Einstellungen Release Keystore, Release User und Release Password "
"müssen entweder alle angegeben, oder alle nicht angegeben sein."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Release keystore incorrectly configured in the export preset."
msgstr ""
"Release-Keystore wurde nicht korrekt konfiguriert in den Exporteinstellungen."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "A valid Android SDK path is required in Editor Settings."
msgstr ""
"Es wird ein gültiger Android-SDK-Pfad in den Editoreinstellungen benötigt."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Invalid Android SDK path in Editor Settings."
msgstr "Ungültiger Android-SDK-Pfad in den Editoreinstellungen."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Missing 'platform-tools' directory!"
msgstr "‚platform-tools‘-Verzeichnis fehlt!"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Unable to find Android SDK platform-tools' adb command."
msgstr ""
"‚adb‘-Anwendung der Android-SDK-Platform-Tools konnte nicht gefunden werden."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Please check in the Android SDK directory specified in Editor Settings."
msgstr ""
"Schauen Sie im Android-SDK-Verzeichnis das in den Editoreinstellungen "
"angegeben wurde nach."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Missing 'build-tools' directory!"
msgstr "‚build-tools‘-Verzeichnis fehlt!"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Unable to find Android SDK build-tools' apksigner command."
msgstr ""
"‚apksigner‘-Anwendung der Android-SDK-Build-Tools konnte nicht gefunden "
"werden."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Invalid public key for APK expansion."
msgstr "Ungültiger öffentlicher Schlüssel für APK-Erweiterung."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Invalid package name:"
msgstr "Ungültiger Paketname:"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Invalid \"GodotPaymentV3\" module included in the \"android/modules\" "
"project setting (changed in Godot 3.2.2).\n"
@@ -13351,38 +13482,23 @@ msgstr ""
"Ungültiges „GodotPaymentV3“-Modul eingebunden in den „android/modules“-"
"Projekteinstellungen (wurde in Godot 3.2.2 geändert).\n"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "\"Use Custom Build\" must be enabled to use the plugins."
msgstr ""
"„Use Custom Build“ muss aktiviert werden um die Plugins nutzen zu können."
-#: platform/android/export/export.cpp
-msgid ""
-"\"Degrees Of Freedom\" is only valid when \"Xr Mode\" is \"Oculus Mobile VR"
-"\"."
-msgstr ""
-"„Degrees Of Freedom“ ist nur gültig wenn „Xr Mode“ als „Occulus Mobile VR“ "
-"gesetzt wurde."
-
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"\"Hand Tracking\" is only valid when \"Xr Mode\" is \"Oculus Mobile VR\"."
msgstr ""
"„Hand Tracking“ ist nur gültig wenn „Xr Mode“ als „Occulus Mobile VR“ "
"gesetzt wurde."
-#: platform/android/export/export.cpp
-msgid ""
-"\"Focus Awareness\" is only valid when \"Xr Mode\" is \"Oculus Mobile VR\"."
-msgstr ""
-"„Focus Awareness“ ist nur gültig wenn „Xr Mode“ als „Occulus Mobile VR“ "
-"gesetzt wurde."
-
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "\"Export AAB\" is only valid when \"Use Custom Build\" is enabled."
msgstr "„Export AAB“ ist nur gültig wenn „Use Custom Build“ aktiviert ist."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"'apksigner' could not be found.\n"
"Please check the command is available in the Android SDK build-tools "
@@ -13393,54 +13509,54 @@ msgstr ""
"Ist das Programm im Android SDK build-tools-Verzeichnis vorhanden?\n"
"Das resultierende %s ist nicht signiert."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Signing debug %s..."
msgstr "Signiere Debug-Build %s…"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Signing release %s..."
msgstr "Signiere Release-Build %s…"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Could not find keystore, unable to export."
msgstr "Keystore konnte nicht gefunden werden, Export fehlgeschlagen."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "'apksigner' returned with error #%d"
msgstr "‚apksigner‘ gab Fehlercode #%d zurück"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Verifying %s..."
msgstr "Verifiziere %s…"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "'apksigner' verification of %s failed."
msgstr "‚apksigner‘-Verifizierung von %s fehlgeschlagen."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Exporting for Android"
msgstr "Exportiere für Android"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Invalid filename! Android App Bundle requires the *.aab extension."
msgstr ""
"Ungültiger Dateiname. Android App Bundles benötigen .aab als "
"Dateinamenendung."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "APK Expansion not compatible with Android App Bundle."
msgstr "APK-Expansion ist nicht kompatibel mit Android App Bundles."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Invalid filename! Android APK requires the *.apk extension."
msgstr ""
"Ungültiger Dateiname. Android APKs benötigen .apk als Dateinamenendung."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Unsupported export format!\n"
msgstr "Nicht unterstütztes Exportformat!\n"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Trying to build from a custom built template, but no version info for it "
"exists. Please reinstall from the 'Project' menu."
@@ -13449,7 +13565,7 @@ msgstr ""
"existieren keine Versionsinformation für sie. Neuinstallation im ‚Projekt‘-"
"Menü benötigt."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Android build version mismatch:\n"
" Template installed: %s\n"
@@ -13461,26 +13577,26 @@ msgstr ""
" Godot-Version: %s\n"
"Bitte Android-Build-Vorlage im ‚Projekt‘-Menü neu installieren."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Unable to overwrite res://android/build/res/*.xml files with project name"
msgstr ""
"Kann res://android/build/res/*.xml Dateien nicht mit Projektnamen "
"überschreiben"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Could not export project files to gradle project\n"
msgstr "Konnte Projektdateien nicht als Gradle-Projekt exportieren\n"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Could not write expansion package file!"
msgstr "Konnte Expansion-Package-Datei nicht schreiben!"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Building Android Project (gradle)"
msgstr "Baue Android-Projekt (gradle)"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Building of Android project failed, check output for the error.\n"
"Alternatively visit docs.godotengine.org for Android build documentation."
@@ -13490,11 +13606,11 @@ msgstr ""
"Alternativ befindet sich die Android-Build-Dokumentation auf docs."
"godotengine.org."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Moving output"
msgstr "Verschiebe Ausgabe"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Unable to copy and rename export file, check gradle project directory for "
"outputs."
@@ -13502,15 +13618,15 @@ msgstr ""
"Exportdatei kann nicht kopiert und umbenannt werden. Fehlermeldungen sollten "
"im Gradle Projektverzeichnis erscheinen."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Package not found: %s"
msgstr "Paket nicht gefunden: %s"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Creating APK..."
msgstr "Erzeuge APK…"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Could not find template APK to export:\n"
"%s"
@@ -13518,7 +13634,7 @@ msgstr ""
"Konnte keine APK-Vorlage zum Exportieren finden:\n"
"%s"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Missing libraries in the export template for the selected architectures: "
"%s.\n"
@@ -13530,19 +13646,19 @@ msgstr ""
"Es muss entweder eine Exportvorlage mit den allen benötigten Bibliotheken "
"gebaut werden oder die angegebenen Architekturen müssen abgewählt werden."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Adding files..."
msgstr "Füge Dateien hinzu…"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Could not export project files"
msgstr "Projektdateien konnten nicht exportiert werden"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Aligning APK..."
msgstr "Richte APK aus..."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Could not unzip temporary unaligned APK."
msgstr "Temporäres unausgerichtetes APK konnte nicht entpackt werden."
@@ -14093,6 +14209,14 @@ msgstr ""
"NavigationMeshInstance muss ein Unterobjekt erster oder zweiter Ordnung "
"eines Navigation-Nodes sein. Es liefert nur Navigationsinformationen."
+#: scene/3d/occluder.cpp
+msgid "No shape is set."
+msgstr ""
+
+#: scene/3d/occluder.cpp
+msgid "Only uniform scales are supported."
+msgstr ""
+
#: scene/3d/particles.cpp
msgid ""
"GPU-based particles are not supported by the GLES2 video driver.\n"
@@ -14237,36 +14361,46 @@ msgid ""
"RoomList path is invalid.\n"
"Please check the RoomList branch has been assigned in the RoomManager."
msgstr ""
+"RoomList-Pfad ist ungültig.\n"
+"Wurde der RoomList-Zweig im RoomManager zugewiesen?"
#: scene/3d/room_manager.cpp
msgid "RoomList contains no Rooms, aborting."
-msgstr ""
+msgstr "RoomList einhält keine Rooms, breche ab."
#: scene/3d/room_manager.cpp
msgid "Misnamed nodes detected, check output log for details. Aborting."
msgstr ""
+"Falsch benannte Nodes entdeckt, siehe Log-Ausgabe für Details. Breche ab."
#: scene/3d/room_manager.cpp
msgid "Portal link room not found, check output log for details."
-msgstr ""
+msgstr "Portal-Link-Room nicht gefunden, siehe Log-Ausgabe für Details."
#: scene/3d/room_manager.cpp
msgid ""
"Portal autolink failed, check output log for details.\n"
"Check the portal is facing outwards from the source room."
msgstr ""
+"Portal-Autolink fehlgeschlagen, siehe Log-Ausgabe für Details.\n"
+"Zeigt das Portal nach außen vom Quellraum ausgesehen?"
#: scene/3d/room_manager.cpp
msgid ""
"Room overlap detected, cameras may work incorrectly in overlapping area.\n"
"Check output log for details."
msgstr ""
+"Raumüberlappung festgestellt, Kameras werden im Überlappungsbereich "
+"wahrscheinlich nicht richtig funktionieren.\n"
+"Siehe Log-Ausgabe für Details."
#: scene/3d/room_manager.cpp
msgid ""
"Error calculating room bounds.\n"
"Ensure all rooms contain geometry or manual bounds."
msgstr ""
+"Fehler beim Berechnen der Raumbegrenzungen.\n"
+"Enthalten alle Räume Geometrie oder manuelle Begrenzungen?"
#: scene/3d/soft_body.cpp
msgid "This body will be ignored until you set a mesh."
@@ -14440,6 +14574,14 @@ msgstr "Eine gültige Datei-Endung muss verwendet werden."
msgid "Enable grid minimap."
msgstr "Gitterübersichtskarte aktivieren."
+#: scene/gui/nine_patch_rect.cpp
+msgid ""
+"The Tile and Tile Fit options for Axis Stretch properties are only effective "
+"when using the GLES3 rendering backend.\n"
+"The GLES2 backend is currently in use, so these modes will act like Stretch "
+"instead."
+msgstr ""
+
#: scene/gui/popup.cpp
msgid ""
"Popups will hide by default unless you call popup() or any of the popup*() "
@@ -14497,6 +14639,10 @@ msgid "Viewport size must be greater than 0 to render anything."
msgstr ""
"Die Größe des Viewports muss größer als 0 sein um etwas rendern zu können."
+#: scene/resources/occluder_shape.cpp
+msgid "OccluderShapeSphere Set Spheres"
+msgstr ""
+
#: scene/resources/visual_shader_nodes.cpp
msgid ""
"The sampler port is connected but not used. Consider changing the source to "
@@ -14555,6 +14701,41 @@ msgstr "Zuweisung an Uniform."
msgid "Constants cannot be modified."
msgstr "Konstanten können nicht verändert werden."
+#~ msgid "Make Rest Pose (From Bones)"
+#~ msgstr "Ruhe-Pose erstellen (aus Knochen)"
+
+#~ msgid "Bottom"
+#~ msgstr "Unten"
+
+#~ msgid "Left"
+#~ msgstr "Links"
+
+#~ msgid "Right"
+#~ msgstr "Rechts"
+
+#~ msgid "Front"
+#~ msgstr "Vorne"
+
+#~ msgid "Rear"
+#~ msgstr "Hinten"
+
+#~ msgid "Nameless gizmo"
+#~ msgstr "Namenloser Manipulator"
+
+#~ msgid ""
+#~ "\"Degrees Of Freedom\" is only valid when \"Xr Mode\" is \"Oculus Mobile "
+#~ "VR\"."
+#~ msgstr ""
+#~ "„Degrees Of Freedom“ ist nur gültig wenn „Xr Mode“ als „Occulus Mobile "
+#~ "VR“ gesetzt wurde."
+
+#~ msgid ""
+#~ "\"Focus Awareness\" is only valid when \"Xr Mode\" is \"Oculus Mobile VR"
+#~ "\"."
+#~ msgstr ""
+#~ "„Focus Awareness“ ist nur gültig wenn „Xr Mode“ als „Occulus Mobile VR“ "
+#~ "gesetzt wurde."
+
#~ msgid "Package Contents:"
#~ msgstr "Paketinhalte:"
@@ -16714,9 +16895,6 @@ msgstr "Konstanten können nicht verändert werden."
#~ msgid "Images:"
#~ msgstr "Bilder:"
-#~ msgid "Group"
-#~ msgstr "Gruppe"
-
#~ msgid "Sample Conversion Mode: (.wav files):"
#~ msgstr "Audio-Umwandlungs-Modus: (.wav-Dateien):"
diff --git a/editor/translations/editor.pot b/editor/translations/editor.pot
index 0f3b125484..47aa1d3a22 100644
--- a/editor/translations/editor.pot
+++ b/editor/translations/editor.pot
@@ -987,7 +987,7 @@ msgstr ""
msgid "Dependencies"
msgstr ""
-#: editor/dependency_editor.cpp
+#: editor/dependency_editor.cpp editor/editor_resource_picker.cpp
msgid "Resource"
msgstr ""
@@ -1616,13 +1616,13 @@ msgid ""
"Enabled'."
msgstr ""
-#: editor/editor_export.cpp platform/android/export/export.cpp
+#: editor/editor_export.cpp platform/android/export/export_plugin.cpp
#: platform/iphone/export/export.cpp platform/javascript/export/export.cpp
#: platform/osx/export/export.cpp platform/uwp/export/export.cpp
msgid "Custom debug template not found."
msgstr ""
-#: editor/editor_export.cpp platform/android/export/export.cpp
+#: editor/editor_export.cpp platform/android/export/export_plugin.cpp
#: platform/iphone/export/export.cpp platform/javascript/export/export.cpp
#: platform/osx/export/export.cpp platform/uwp/export/export.cpp
msgid "Custom release template not found."
@@ -1992,7 +1992,7 @@ msgstr ""
msgid "(Re)Importing Assets"
msgstr ""
-#: editor/editor_help.cpp editor/plugins/spatial_editor_plugin.cpp
+#: editor/editor_help.cpp
msgid "Top"
msgstr ""
@@ -2470,6 +2470,30 @@ msgid "Current scene not saved. Open anyway?"
msgstr ""
#: editor/editor_node.cpp
+msgid "Can't undo while mouse buttons are pressed."
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "Nothing to undo."
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "Undo: %s"
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "Can't redo while mouse buttons are pressed."
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "Nothing to redo."
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "Redo: %s"
+msgstr ""
+
+#: editor/editor_node.cpp
msgid "Can't reload a scene that was never saved."
msgstr ""
@@ -3093,6 +3117,10 @@ msgid "Merge With Existing"
msgstr ""
#: editor/editor_node.cpp
+msgid "Apply MeshInstance Transforms"
+msgstr ""
+
+#: editor/editor_node.cpp
msgid "Open & Run a Script"
msgstr ""
@@ -3333,6 +3361,10 @@ msgid ""
"property (%s)."
msgstr ""
+#: editor/editor_resource_picker.cpp
+msgid "Quick Load"
+msgstr ""
+
#: editor/editor_resource_picker.cpp editor/property_editor.cpp
msgid "Make Unique"
msgstr ""
@@ -5373,6 +5405,16 @@ msgid "Move CanvasItem \"%s\" to (%d, %d)"
msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Locked"
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Grouped"
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
msgid ""
"Children of containers have their anchors and margins values overridden by "
"their parent."
@@ -6271,7 +6313,11 @@ msgid "Remove Selected Item"
msgstr ""
#: editor/plugins/mesh_library_editor_plugin.cpp
-msgid "Import from Scene"
+msgid "Import from Scene (Ignore Transforms)"
+msgstr ""
+
+#: editor/plugins/mesh_library_editor_plugin.cpp
+msgid "Import from Scene (Apply Transforms)"
msgstr ""
#: editor/plugins/mesh_library_editor_plugin.cpp
@@ -6855,6 +6901,14 @@ msgstr ""
msgid "Flip Portal"
msgstr ""
+#: editor/plugins/room_manager_editor_plugin.cpp
+msgid "Occluder Set Transform"
+msgstr ""
+
+#: editor/plugins/room_manager_editor_plugin.cpp
+msgid "Center Node"
+msgstr ""
+
#: editor/plugins/root_motion_editor_plugin.cpp
msgid "AnimationTree has no path set to an AnimationPlayer"
msgstr ""
@@ -7349,11 +7403,11 @@ msgid "Skeleton2D"
msgstr ""
#: editor/plugins/skeleton_2d_editor_plugin.cpp
-msgid "Make Rest Pose (From Bones)"
+msgid "Reset to Rest Pose"
msgstr ""
#: editor/plugins/skeleton_2d_editor_plugin.cpp
-msgid "Set Bones to Rest Pose"
+msgid "Overwrite Rest Pose"
msgstr ""
#: editor/plugins/skeleton_editor_plugin.cpp
@@ -7381,6 +7435,60 @@ msgid "Perspective"
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Top Orthogonal"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Top Perspective"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Bottom Orthogonal"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Bottom Perspective"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Left Orthogonal"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Right Perspective"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Right Orthogonal"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Front Orthogonal"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Front Perspective"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Rear Orthogonal"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Rear Perspective"
+msgstr ""
+
+#. TRANSLATORS: This will be appended to the view name when Auto Orthogonal is enabled.
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid " [auto]"
+msgstr ""
+
+#. TRANSLATORS: This will be appended to the view name when Portal Occulusion is enabled.
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid " [portals active]"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
msgid "Transform Aborted."
msgstr ""
@@ -7488,42 +7596,22 @@ msgid "Bottom View."
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
-msgid "Bottom"
-msgstr ""
-
-#: editor/plugins/spatial_editor_plugin.cpp
msgid "Left View."
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
-msgid "Left"
-msgstr ""
-
-#: editor/plugins/spatial_editor_plugin.cpp
msgid "Right View."
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
-msgid "Right"
-msgstr ""
-
-#: editor/plugins/spatial_editor_plugin.cpp
msgid "Front View."
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
-msgid "Front"
-msgstr ""
-
-#: editor/plugins/spatial_editor_plugin.cpp
msgid "Rear View."
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
-msgid "Rear"
-msgstr ""
-
-#: editor/plugins/spatial_editor_plugin.cpp
msgid "Align Transform with View"
msgstr ""
@@ -7785,6 +7873,10 @@ msgid "View Portal Culling"
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
+msgid "View Occlusion Culling"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
#: modules/gridmap/grid_map_editor_plugin.cpp
msgid "Settings..."
msgstr ""
@@ -7850,7 +7942,7 @@ msgid "Post"
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
-msgid "Nameless gizmo"
+msgid "Unnamed Gizmo"
msgstr ""
#: editor/plugins/sprite_editor_plugin.cpp
@@ -11750,6 +11842,14 @@ msgstr ""
msgid "Set Portal Point Position"
msgstr ""
+#: editor/spatial_editor_gizmos.cpp
+msgid "Set Occluder Sphere Radius"
+msgstr ""
+
+#: editor/spatial_editor_gizmos.cpp
+msgid "Set Occluder Sphere Position"
+msgstr ""
+
#: modules/csg/csg_gizmos.cpp
msgid "Change Cylinder Radius"
msgstr ""
@@ -12030,6 +12130,10 @@ msgstr ""
msgid "Class name can't be a reserved keyword"
msgstr ""
+#: modules/mono/csharp_script.cpp
+msgid "Build Solution"
+msgstr ""
+
#: modules/mono/mono_gd/gd_mono_utils.cpp
msgid "End of inner exception stack trace"
msgstr ""
@@ -12496,159 +12600,148 @@ msgstr ""
msgid "Get %s"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Package name is missing."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Package segments must be of non-zero length."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "The character '%s' is not allowed in Android application package names."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "A digit cannot be the first character in a package segment."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "The character '%s' cannot be the first character in a package segment."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "The package must have at least one '.' separator."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Select device from the list"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Running on %s"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Exporting APK..."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Uninstalling..."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Installing to device, please wait..."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Could not install to device: %s"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Running on device..."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Could not execute on device."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Unable to find the 'apksigner' tool."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Android build template not installed in the project. Install it from the "
"Project menu."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Either Debug Keystore, Debug User AND Debug Password settings must be "
"configured OR none of them."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Debug keystore not configured in the Editor Settings nor in the preset."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Either Release Keystore, Release User AND Release Password settings must be "
"configured OR none of them."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Release keystore incorrectly configured in the export preset."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "A valid Android SDK path is required in Editor Settings."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Invalid Android SDK path in Editor Settings."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Missing 'platform-tools' directory!"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Unable to find Android SDK platform-tools' adb command."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Please check in the Android SDK directory specified in Editor Settings."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Missing 'build-tools' directory!"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Unable to find Android SDK build-tools' apksigner command."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Invalid public key for APK expansion."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Invalid package name:"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Invalid \"GodotPaymentV3\" module included in the \"android/modules\" "
"project setting (changed in Godot 3.2.2).\n"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "\"Use Custom Build\" must be enabled to use the plugins."
msgstr ""
-#: platform/android/export/export.cpp
-msgid ""
-"\"Degrees Of Freedom\" is only valid when \"Xr Mode\" is \"Oculus Mobile VR"
-"\"."
-msgstr ""
-
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"\"Hand Tracking\" is only valid when \"Xr Mode\" is \"Oculus Mobile VR\"."
msgstr ""
-#: platform/android/export/export.cpp
-msgid ""
-"\"Focus Awareness\" is only valid when \"Xr Mode\" is \"Oculus Mobile VR\"."
-msgstr ""
-
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "\"Export AAB\" is only valid when \"Use Custom Build\" is enabled."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"'apksigner' could not be found.\n"
"Please check the command is available in the Android SDK build-tools "
@@ -12656,57 +12749,57 @@ msgid ""
"The resulting %s is unsigned."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Signing debug %s..."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Signing release %s..."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Could not find keystore, unable to export."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "'apksigner' returned with error #%d"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Verifying %s..."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "'apksigner' verification of %s failed."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Exporting for Android"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Invalid filename! Android App Bundle requires the *.aab extension."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "APK Expansion not compatible with Android App Bundle."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Invalid filename! Android APK requires the *.apk extension."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Unsupported export format!\n"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Trying to build from a custom built template, but no version info for it "
"exists. Please reinstall from the 'Project' menu."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Android build version mismatch:\n"
" Template installed: %s\n"
@@ -12714,54 +12807,54 @@ msgid ""
"Please reinstall Android build template from 'Project' menu."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Unable to overwrite res://android/build/res/*.xml files with project name"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Could not export project files to gradle project\n"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Could not write expansion package file!"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Building Android Project (gradle)"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Building of Android project failed, check output for the error.\n"
"Alternatively visit docs.godotengine.org for Android build documentation."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Moving output"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Unable to copy and rename export file, check gradle project directory for "
"outputs."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Package not found: %s"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Creating APK..."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Could not find template APK to export:\n"
"%s"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Missing libraries in the export template for the selected architectures: "
"%s.\n"
@@ -12769,19 +12862,19 @@ msgid ""
"architectures in the export preset."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Adding files..."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Could not export project files"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Aligning APK..."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Could not unzip temporary unaligned APK."
msgstr ""
@@ -13231,6 +13324,14 @@ msgid ""
"It only provides navigation data."
msgstr ""
+#: scene/3d/occluder.cpp
+msgid "No shape is set."
+msgstr ""
+
+#: scene/3d/occluder.cpp
+msgid "Only uniform scales are supported."
+msgstr ""
+
#: scene/3d/particles.cpp
msgid ""
"GPU-based particles are not supported by the GLES2 video driver.\n"
@@ -13520,6 +13621,14 @@ msgstr ""
msgid "Enable grid minimap."
msgstr ""
+#: scene/gui/nine_patch_rect.cpp
+msgid ""
+"The Tile and Tile Fit options for Axis Stretch properties are only effective "
+"when using the GLES3 rendering backend.\n"
+"The GLES2 backend is currently in use, so these modes will act like Stretch "
+"instead."
+msgstr ""
+
#: scene/gui/popup.cpp
msgid ""
"Popups will hide by default unless you call popup() or any of the popup*() "
@@ -13560,6 +13669,10 @@ msgstr ""
msgid "Viewport size must be greater than 0 to render anything."
msgstr ""
+#: scene/resources/occluder_shape.cpp
+msgid "OccluderShapeSphere Set Spheres"
+msgstr ""
+
#: scene/resources/visual_shader_nodes.cpp
msgid ""
"The sampler port is connected but not used. Consider changing the source to "
diff --git a/editor/translations/el.po b/editor/translations/el.po
index 93b5941f64..ea1c91f4b5 100644
--- a/editor/translations/el.po
+++ b/editor/translations/el.po
@@ -1041,7 +1041,7 @@ msgstr ""
msgid "Dependencies"
msgstr "ΕξαÏτήσεις"
-#: editor/dependency_editor.cpp
+#: editor/dependency_editor.cpp editor/editor_resource_picker.cpp
msgid "Resource"
msgstr "ΠόÏος"
@@ -1709,13 +1709,13 @@ msgstr ""
"ΕνεÏγοποιήστε το 'Εισαγωγή PVRTC' στις Ρυθμίσεις ΈÏγου, ή απενεÏγοποιήστε το "
"'ΕνεÏγοποίηση εναλλαγής οδηγοÏ'."
-#: editor/editor_export.cpp platform/android/export/export.cpp
+#: editor/editor_export.cpp platform/android/export/export_plugin.cpp
#: platform/iphone/export/export.cpp platform/javascript/export/export.cpp
#: platform/osx/export/export.cpp platform/uwp/export/export.cpp
msgid "Custom debug template not found."
msgstr "Δεν βÏέθηκε Ï€ÏοσαÏμοσμένο πακέτο αποσφαλμάτωσης."
-#: editor/editor_export.cpp platform/android/export/export.cpp
+#: editor/editor_export.cpp platform/android/export/export_plugin.cpp
#: platform/iphone/export/export.cpp platform/javascript/export/export.cpp
#: platform/osx/export/export.cpp platform/uwp/export/export.cpp
msgid "Custom release template not found."
@@ -2099,7 +2099,7 @@ msgstr ""
msgid "(Re)Importing Assets"
msgstr "(Επαν)εισαγωγή"
-#: editor/editor_help.cpp editor/plugins/spatial_editor_plugin.cpp
+#: editor/editor_help.cpp
msgid "Top"
msgstr "ΚοÏυφή"
@@ -2614,6 +2614,32 @@ msgid "Current scene not saved. Open anyway?"
msgstr "Η Ï„Ïέχουσα σκηνή δεν έχει αποθηκευτεί. Συνέχεια με το άνοιγμα;"
#: editor/editor_node.cpp
+msgid "Can't undo while mouse buttons are pressed."
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "Nothing to undo."
+msgstr ""
+
+#: editor/editor_node.cpp
+#, fuzzy
+msgid "Undo: %s"
+msgstr "ΑναίÏεση"
+
+#: editor/editor_node.cpp
+msgid "Can't redo while mouse buttons are pressed."
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "Nothing to redo."
+msgstr ""
+
+#: editor/editor_node.cpp
+#, fuzzy
+msgid "Redo: %s"
+msgstr "ΑκÏÏωση αναίÏεσης"
+
+#: editor/editor_node.cpp
msgid "Can't reload a scene that was never saved."
msgstr ""
"Δεν είναι δυνατό να φοÏτώσετε εκ νέου μια σκηνή που δεν αποθηκεÏτηκε ποτέ."
@@ -3319,6 +3345,11 @@ msgid "Merge With Existing"
msgstr "Συγχώνευση με υπάÏχων"
#: editor/editor_node.cpp
+#, fuzzy
+msgid "Apply MeshInstance Transforms"
+msgstr "Αλλαγή ÎœÎµÏ„Î±ÏƒÏ‡Î·Î¼Î±Ï„Î¹ÏƒÎ¼Î¿Ï ÎšÎ¯Î½Î·ÏƒÎ·Ï‚"
+
+#: editor/editor_node.cpp
msgid "Open & Run a Script"
msgstr "Άνοιξε & ΤÏέξε μία δέσμη ενεÏγειών"
@@ -3575,6 +3606,10 @@ msgstr ""
"Ο επιλεγμένος πόÏος (%s) δεν ταιÏιάζει σε κανέναν αναμενόμενο Ï„Ïπο γι'αυτήν "
"την ιδιότητα (%s)."
+#: editor/editor_resource_picker.cpp
+msgid "Quick Load"
+msgstr ""
+
#: editor/editor_resource_picker.cpp editor/property_editor.cpp
msgid "Make Unique"
msgstr "Κάνε μοναδικό"
@@ -5722,6 +5757,18 @@ msgid "Move CanvasItem \"%s\" to (%d, %d)"
msgstr "Μετακίνηση CanvasItem"
#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Locked"
+msgstr "Κλείδωσε το Επιλεγμένο"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Grouped"
+msgstr "Ομάδες"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
msgid ""
"Children of containers have their anchors and margins values overridden by "
"their parent."
@@ -6678,7 +6725,13 @@ msgid "Remove Selected Item"
msgstr "ΑφαίÏεση του επιλεγμένου στοιοχείου"
#: editor/plugins/mesh_library_editor_plugin.cpp
-msgid "Import from Scene"
+#, fuzzy
+msgid "Import from Scene (Ignore Transforms)"
+msgstr "Εισαγωγή από την σκηνή"
+
+#: editor/plugins/mesh_library_editor_plugin.cpp
+#, fuzzy
+msgid "Import from Scene (Apply Transforms)"
msgstr "Εισαγωγή από την σκηνή"
#: editor/plugins/mesh_library_editor_plugin.cpp
@@ -7283,6 +7336,16 @@ msgstr "ΑÏιθμός δημιουÏγημένων σημείων:"
msgid "Flip Portal"
msgstr "ΑναστÏοφή ΟÏιζόντια"
+#: editor/plugins/room_manager_editor_plugin.cpp
+#, fuzzy
+msgid "Occluder Set Transform"
+msgstr "ΕκκαθάÏιση ΜετασχηματισμοÏ"
+
+#: editor/plugins/room_manager_editor_plugin.cpp
+#, fuzzy
+msgid "Center Node"
+msgstr "ΔημιουÏγία κόμβου"
+
#: editor/plugins/root_motion_editor_plugin.cpp
msgid "AnimationTree has no path set to an AnimationPlayer"
msgstr "Το AnimationTree δεν έχει διαδÏομή σε AnimationPlayer"
@@ -7792,12 +7855,14 @@ msgid "Skeleton2D"
msgstr "Skeleton2D"
#: editor/plugins/skeleton_2d_editor_plugin.cpp
-msgid "Make Rest Pose (From Bones)"
-msgstr "Κάνε Στάση ΑδÏάνειας (Από Οστά)"
+#, fuzzy
+msgid "Reset to Rest Pose"
+msgstr "Θέσε Οστά σε Στάση ΑδÏάνειας"
#: editor/plugins/skeleton_2d_editor_plugin.cpp
-msgid "Set Bones to Rest Pose"
-msgstr "Θέσε Οστά σε Στάση ΑδÏάνειας"
+#, fuzzy
+msgid "Overwrite Rest Pose"
+msgstr "Αντικατάσταση"
#: editor/plugins/skeleton_editor_plugin.cpp
msgid "Create physical bones"
@@ -7824,6 +7889,71 @@ msgid "Perspective"
msgstr "ΠÏοοπτική"
#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Top Orthogonal"
+msgstr "ΑξονομετÏική"
+
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Top Perspective"
+msgstr "ΠÏοοπτική"
+
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Bottom Orthogonal"
+msgstr "ΑξονομετÏική"
+
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Bottom Perspective"
+msgstr "ΠÏοοπτική"
+
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Left Orthogonal"
+msgstr "ΑξονομετÏική"
+
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Right Perspective"
+msgstr "ΠÏοοπτική"
+
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Right Orthogonal"
+msgstr "ΑξονομετÏική"
+
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Front Orthogonal"
+msgstr "ΑξονομετÏική"
+
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Front Perspective"
+msgstr "ΠÏοοπτική"
+
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Rear Orthogonal"
+msgstr "ΑξονομετÏική"
+
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Rear Perspective"
+msgstr "ΠÏοοπτική"
+
+#. TRANSLATORS: This will be appended to the view name when Auto Orthogonal is enabled.
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid " [auto]"
+msgstr ""
+
+#. TRANSLATORS: This will be appended to the view name when Portal Occulusion is enabled.
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid " [portals active]"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
msgid "Transform Aborted."
msgstr "Ο μετασχηματισμός ματαιώθηκε."
@@ -7943,42 +8073,22 @@ msgid "Bottom View."
msgstr "Κάτω όψη."
#: editor/plugins/spatial_editor_plugin.cpp
-msgid "Bottom"
-msgstr "Κάτω"
-
-#: editor/plugins/spatial_editor_plugin.cpp
msgid "Left View."
msgstr "ΑÏιστεÏή όψη."
#: editor/plugins/spatial_editor_plugin.cpp
-msgid "Left"
-msgstr "ΑÏιστεÏά"
-
-#: editor/plugins/spatial_editor_plugin.cpp
msgid "Right View."
msgstr "Δεξιά όψη."
#: editor/plugins/spatial_editor_plugin.cpp
-msgid "Right"
-msgstr "Δεξιά"
-
-#: editor/plugins/spatial_editor_plugin.cpp
msgid "Front View."
msgstr "ΕμπÏόσθια όψη."
#: editor/plugins/spatial_editor_plugin.cpp
-msgid "Front"
-msgstr "ΜπÏοστά"
-
-#: editor/plugins/spatial_editor_plugin.cpp
msgid "Rear View."
msgstr "Πίσω όψη."
#: editor/plugins/spatial_editor_plugin.cpp
-msgid "Rear"
-msgstr "Πίσω"
-
-#: editor/plugins/spatial_editor_plugin.cpp
msgid "Align Transform with View"
msgstr "Στοίχιση ÎœÎµÏ„Î±ÏƒÏ‡Î·Î¼Î±Ï„Î¹ÏƒÎ¼Î¿Ï Î¼Îµ ΠÏοβολή"
@@ -8254,6 +8364,11 @@ msgid "View Portal Culling"
msgstr "Ρυθμίσεις οπτικής γωνίας"
#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "View Occlusion Culling"
+msgstr "Ρυθμίσεις οπτικής γωνίας"
+
+#: editor/plugins/spatial_editor_plugin.cpp
#: modules/gridmap/grid_map_editor_plugin.cpp
msgid "Settings..."
msgstr "Ρυθμίσεις..."
@@ -8319,8 +8434,9 @@ msgid "Post"
msgstr "Μετά"
#: editor/plugins/spatial_editor_plugin.cpp
-msgid "Nameless gizmo"
-msgstr "Ανώνυμο μαÏαφέτι"
+#, fuzzy
+msgid "Unnamed Gizmo"
+msgstr "Ανώνυμο έÏγο"
#: editor/plugins/sprite_editor_plugin.cpp
msgid "Create Mesh2D"
@@ -12528,6 +12644,16 @@ msgstr "ΟÏισμός θέσης σημείου καμπÏλης"
msgid "Set Portal Point Position"
msgstr "ΟÏισμός θέσης σημείου καμπÏλης"
+#: editor/spatial_editor_gizmos.cpp
+#, fuzzy
+msgid "Set Occluder Sphere Radius"
+msgstr "Αλλαγή Ακτίνας Σχήματος ΚυλίνδÏου"
+
+#: editor/spatial_editor_gizmos.cpp
+#, fuzzy
+msgid "Set Occluder Sphere Position"
+msgstr "ΟÏισμός θέσης εισόδου καμπÏλης"
+
#: modules/csg/csg_gizmos.cpp
msgid "Change Cylinder Radius"
msgstr "Αλλαγή Ακτίνας ΚυλίνδÏου"
@@ -12818,6 +12944,11 @@ msgstr "Τοποθέτηση φώτων:"
msgid "Class name can't be a reserved keyword"
msgstr "Το όνομα της κλάσης δεν μποÏεί να είναι λέξη-κλειδί"
+#: modules/mono/csharp_script.cpp
+#, fuzzy
+msgid "Build Solution"
+msgstr "Γέμισμα Επιλογής"
+
#: modules/mono/mono_gd/gd_mono_utils.cpp
msgid "End of inner exception stack trace"
msgstr "Τέλος ιχνηλάτησης στοίβας εσωτεÏικής εξαίÏεσης"
@@ -13309,77 +13440,77 @@ msgstr "Αναζήτηση VisualScript"
msgid "Get %s"
msgstr "Διάβασε %s"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Package name is missing."
msgstr "Το όνομα του πακέτου λείπει."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Package segments must be of non-zero length."
msgstr "Τα τμήματα του πακέτου Ï€Ïέπει να έχουν μη μηδενικό μήκος."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "The character '%s' is not allowed in Android application package names."
msgstr ""
"Ο χαÏακτήÏας «%s» απαγοÏεÏεται στο όνομα πακέτου των εφαÏμογών Android."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "A digit cannot be the first character in a package segment."
msgstr ""
"Ένα ψηφίο δεν μποÏεί να είναι ο Ï€Ïώτος χαÏακτήÏας σε ένα τμήμα πακέτου."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "The character '%s' cannot be the first character in a package segment."
msgstr ""
"Ο χαÏακτήÏας '%s' δεν μποÏεί να είναι ο Ï€Ïώτος χαÏακτήÏας σε ένα τμήμα "
"πακέτου."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "The package must have at least one '.' separator."
msgstr "Το πακέτο Ï€Ïέπει να έχει τουλάχιστον έναν '.' διαχωÏιστή."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Select device from the list"
msgstr "Επιλέξτε συσκευή από την λίστα"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Running on %s"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
#, fuzzy
msgid "Exporting APK..."
msgstr "Εξαγωγή Όλων"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
#, fuzzy
msgid "Uninstalling..."
msgstr "Απεγκατάσταση"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
#, fuzzy
msgid "Installing to device, please wait..."
msgstr "Ανάκτηση δεδοένων κατοπτÏισμοÏ, παÏακαλώ πεÏιμένετε..."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
#, fuzzy
msgid "Could not install to device: %s"
msgstr "Δεν ήταν δυνατή η δημιουÏγία στιγμιοτÏπου της σκηνής!"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
#, fuzzy
msgid "Running on device..."
msgstr "Εκτέλεση ΠÏοσαÏμοσμένης Δέσμης ΕνεÏγειών..."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
#, fuzzy
msgid "Could not execute on device."
msgstr "ΑδÏνατη η δημιουÏγία φακέλου."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Unable to find the 'apksigner' tool."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Android build template not installed in the project. Install it from the "
"Project menu."
@@ -13387,75 +13518,75 @@ msgstr ""
"Λείπει το Ï€Ïότυπο δόμησης Android από το έÏγο. Εγκαταστήστε το από το Î¼ÎµÎ½Î¿Ï "
"«ΈÏγο»."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Either Debug Keystore, Debug User AND Debug Password settings must be "
"configured OR none of them."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Debug keystore not configured in the Editor Settings nor in the preset."
msgstr ""
"Το «debug keystore» δεν έχει καθοÏιστεί στις Ρυθμίσεις ΕπεξεÏγαστή ή την "
"διαμόÏφωση."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Either Release Keystore, Release User AND Release Password settings must be "
"configured OR none of them."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Release keystore incorrectly configured in the export preset."
msgstr ""
"Εσφαλμένη ÏÏθμιση αποθετηÏίου κλειδιών διανομής στην διαμόÏφωση εξαγωγής."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
#, fuzzy
msgid "A valid Android SDK path is required in Editor Settings."
msgstr ""
"Μη έγκυÏη διαδÏομή Android SDK για Ï€ÏοσαÏμοσμένη δόμηση στις Ρυθμίσεις "
"ΕπεξεÏγαστή."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
#, fuzzy
msgid "Invalid Android SDK path in Editor Settings."
msgstr ""
"Μη έγκυÏη διαδÏομή Android SDK για Ï€ÏοσαÏμοσμένη δόμηση στις Ρυθμίσεις "
"ΕπεξεÏγαστή."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Missing 'platform-tools' directory!"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Unable to find Android SDK platform-tools' adb command."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
#, fuzzy
msgid "Please check in the Android SDK directory specified in Editor Settings."
msgstr ""
"Μη έγκυÏη διαδÏομή Android SDK για Ï€ÏοσαÏμοσμένη δόμηση στις Ρυθμίσεις "
"ΕπεξεÏγαστή."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Missing 'build-tools' directory!"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Unable to find Android SDK build-tools' apksigner command."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Invalid public key for APK expansion."
msgstr "Μη έγκυÏο δημόσιο κλειδί (public key) για επέκταση APK."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Invalid package name:"
msgstr "ΆκυÏο όνομα πακέτου:"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Invalid \"GodotPaymentV3\" module included in the \"android/modules\" "
"project setting (changed in Godot 3.2.2).\n"
@@ -13463,38 +13594,23 @@ msgstr ""
"Εσφαλμένη λειτουÏγική μονάδα «GodotPaymentV3» στην ÏÏθμιση εÏγου «Android/"
"Modules» (άλλαξε στην Godot 3.2.2).\n"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "\"Use Custom Build\" must be enabled to use the plugins."
msgstr ""
"Η επιλογή «Use Custom Build» Ï€Ïέπει να ενεÏγοποιηθεί για χÏήση Ï€Ïοσθέτων."
-#: platform/android/export/export.cpp
-msgid ""
-"\"Degrees Of Freedom\" is only valid when \"Xr Mode\" is \"Oculus Mobile VR"
-"\"."
-msgstr ""
-"Το «Degrees Of Freedom» είναι έγκυÏο μόνο όταν το «Xr Mode» είναι «Oculus "
-"Mobile VR»."
-
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"\"Hand Tracking\" is only valid when \"Xr Mode\" is \"Oculus Mobile VR\"."
msgstr ""
"Το «Hand Tracking» είναι έγκυÏο μόνο όταν το «Xr Mode» είναι «Oculus Mobile "
"VR»."
-#: platform/android/export/export.cpp
-msgid ""
-"\"Focus Awareness\" is only valid when \"Xr Mode\" is \"Oculus Mobile VR\"."
-msgstr ""
-"Το «Focus Awareness» είναι έγκυÏο μόνο όταν το «Xr Mode» είναι «Oculus "
-"Mobile VR»."
-
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "\"Export AAB\" is only valid when \"Use Custom Build\" is enabled."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"'apksigner' could not be found.\n"
"Please check the command is available in the Android SDK build-tools "
@@ -13502,57 +13618,57 @@ msgid ""
"The resulting %s is unsigned."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Signing debug %s..."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
#, fuzzy
msgid "Signing release %s..."
msgstr ""
"ΣάÏωση αÏχείων,\n"
"ΠαÏακαλώ πεÏιμένετε..."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
#, fuzzy
msgid "Could not find keystore, unable to export."
msgstr "Σφάλμα κατά το άνοιγμα Ï€ÏοτÏπου για εξαγωγή:"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "'apksigner' returned with error #%d"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
#, fuzzy
msgid "Verifying %s..."
msgstr "ΠÏοσθήκη %s..."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "'apksigner' verification of %s failed."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
#, fuzzy
msgid "Exporting for Android"
msgstr "Εξαγωγή Όλων"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Invalid filename! Android App Bundle requires the *.aab extension."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "APK Expansion not compatible with Android App Bundle."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Invalid filename! Android APK requires the *.apk extension."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Unsupported export format!\n"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Trying to build from a custom built template, but no version info for it "
"exists. Please reinstall from the 'Project' menu."
@@ -13560,7 +13676,7 @@ msgstr ""
"Δοκιμή δόμησης από Ï€ÏοσαÏμοσμένο Ï€Ïότυπο δόμησης, αλλά δεν υπάÏχουν "
"πληÏοφοÏίες έκδοσης. ΠαÏακαλοÏμε κάντε επανεγκατάσταση από το Î¼ÎµÎ½Î¿Ï Â«ÎˆÏγο»."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Android build version mismatch:\n"
" Template installed: %s\n"
@@ -13573,26 +13689,26 @@ msgstr ""
"ΠαÏακαλοÏμε να επανεγκαταστήσετε το Ï€Ïότυπο δόμησης Android από το Î¼ÎµÎ½Î¿Ï "
"«ΈÏγο»."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Unable to overwrite res://android/build/res/*.xml files with project name"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
#, fuzzy
msgid "Could not export project files to gradle project\n"
msgstr "Δεν βÏέθηκε το project.godot στη διαδÏομή του έÏγου."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
#, fuzzy
msgid "Could not write expansion package file!"
msgstr "Απέτυχε η εγγÏαφή σε αÏχείο:"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Building Android Project (gradle)"
msgstr "Δόμηση ΈÏγου Android (gradle)"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Building of Android project failed, check output for the error.\n"
"Alternatively visit docs.godotengine.org for Android build documentation."
@@ -13601,34 +13717,34 @@ msgstr ""
"Εναλλακτικά, επισκεφτείτε τη σελίδα docs.godotengine.org για τεκμηÏίωση "
"δόμησης Android."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Moving output"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Unable to copy and rename export file, check gradle project directory for "
"outputs."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
#, fuzzy
msgid "Package not found: %s"
msgstr "Δεν βÏέθηκε η κίνηση: «%s»"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
#, fuzzy
msgid "Creating APK..."
msgstr "ΔημιουÏγία πεÏιγÏαμμάτων..."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
#, fuzzy
msgid ""
"Could not find template APK to export:\n"
"%s"
msgstr "Σφάλμα κατά το άνοιγμα Ï€ÏοτÏπου για εξαγωγή:"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Missing libraries in the export template for the selected architectures: "
"%s.\n"
@@ -13636,21 +13752,21 @@ msgid ""
"architectures in the export preset."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
#, fuzzy
msgid "Adding files..."
msgstr "ΠÏοσθήκη %s..."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
#, fuzzy
msgid "Could not export project files"
msgstr "Απέτυχε η εγγÏαφή σε αÏχείο:"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Aligning APK..."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Could not unzip temporary unaligned APK."
msgstr ""
@@ -14197,6 +14313,14 @@ msgstr ""
"Ένας κόμβος Ï„Ïπου στιγμιοτÏπου πλέγματος πλοήγησης Ï€Ïέπει να κληÏονομεί έναν "
"κόμβο Ï„Ïπου πλοήγηση, διότι διαθέτει μόνο δεδομένα πλοήγησης."
+#: scene/3d/occluder.cpp
+msgid "No shape is set."
+msgstr ""
+
+#: scene/3d/occluder.cpp
+msgid "Only uniform scales are supported."
+msgstr ""
+
#: scene/3d/particles.cpp
msgid ""
"GPU-based particles are not supported by the GLES2 video driver.\n"
@@ -14525,6 +14649,14 @@ msgstr "Απαιτείται η χÏήση έγκυÏης επέκτασης."
msgid "Enable grid minimap."
msgstr "ΕνεÏγοποίηση κουμπώματος"
+#: scene/gui/nine_patch_rect.cpp
+msgid ""
+"The Tile and Tile Fit options for Axis Stretch properties are only effective "
+"when using the GLES3 rendering backend.\n"
+"The GLES2 backend is currently in use, so these modes will act like Stretch "
+"instead."
+msgstr ""
+
#: scene/gui/popup.cpp
msgid ""
"Popups will hide by default unless you call popup() or any of the popup*() "
@@ -14582,6 +14714,10 @@ msgstr ""
"Το μέγεθος της οπτικής γωνίας Ï€Ïέπει να είναι μεγαλÏτεÏο του 0 για να γίνει "
"απόδοση."
+#: scene/resources/occluder_shape.cpp
+msgid "OccluderShapeSphere Set Spheres"
+msgstr ""
+
#: scene/resources/visual_shader_nodes.cpp
msgid ""
"The sampler port is connected but not used. Consider changing the source to "
@@ -14633,6 +14769,41 @@ msgstr "Ανάθεση σε ενιαία μεταβλητή."
msgid "Constants cannot be modified."
msgstr "Οι σταθεÏές δεν μποÏοÏν να Ï„ÏοποποιηθοÏν."
+#~ msgid "Make Rest Pose (From Bones)"
+#~ msgstr "Κάνε Στάση ΑδÏάνειας (Από Οστά)"
+
+#~ msgid "Bottom"
+#~ msgstr "Κάτω"
+
+#~ msgid "Left"
+#~ msgstr "ΑÏιστεÏά"
+
+#~ msgid "Right"
+#~ msgstr "Δεξιά"
+
+#~ msgid "Front"
+#~ msgstr "ΜπÏοστά"
+
+#~ msgid "Rear"
+#~ msgstr "Πίσω"
+
+#~ msgid "Nameless gizmo"
+#~ msgstr "Ανώνυμο μαÏαφέτι"
+
+#~ msgid ""
+#~ "\"Degrees Of Freedom\" is only valid when \"Xr Mode\" is \"Oculus Mobile "
+#~ "VR\"."
+#~ msgstr ""
+#~ "Το «Degrees Of Freedom» είναι έγκυÏο μόνο όταν το «Xr Mode» είναι «Oculus "
+#~ "Mobile VR»."
+
+#~ msgid ""
+#~ "\"Focus Awareness\" is only valid when \"Xr Mode\" is \"Oculus Mobile VR"
+#~ "\"."
+#~ msgstr ""
+#~ "Το «Focus Awareness» είναι έγκυÏο μόνο όταν το «Xr Mode» είναι «Oculus "
+#~ "Mobile VR»."
+
#~ msgid "Package Contents:"
#~ msgstr "ΠεÏιεχόμενα Πακέτου:"
diff --git a/editor/translations/eo.po b/editor/translations/eo.po
index 9f8c869bee..5987003cb7 100644
--- a/editor/translations/eo.po
+++ b/editor/translations/eo.po
@@ -17,7 +17,7 @@
msgid ""
msgstr ""
"Project-Id-Version: Godot Engine editor\n"
-"PO-Revision-Date: 2021-07-31 19:44+0000\n"
+"PO-Revision-Date: 2021-08-14 19:04+0000\n"
"Last-Translator: mourning20s <mourning20s@protonmail.com>\n"
"Language-Team: Esperanto <https://hosted.weblate.org/projects/godot-engine/"
"godot/eo/>\n"
@@ -374,13 +374,12 @@ msgstr "Animado Enmetu"
#. TRANSLATORS: This describes the target of new animation track, will be inserted into another string.
#: editor/animation_track_editor.cpp
msgid "node '%s'"
-msgstr ""
+msgstr "nodo '%s'"
#. TRANSLATORS: This describes the target of new animation track, will be inserted into another string.
#: editor/animation_track_editor.cpp
-#, fuzzy
msgid "animation"
-msgstr "Animacio"
+msgstr "animacio"
#: editor/animation_track_editor.cpp
msgid "AnimationPlayer can't animate itself, only other players."
@@ -388,9 +387,8 @@ msgstr "AnimationPlayer ne povas animi si mem, nur aliajn ludantojn."
#. TRANSLATORS: This describes the target of new animation track, will be inserted into another string.
#: editor/animation_track_editor.cpp
-#, fuzzy
msgid "property '%s'"
-msgstr "Atributo"
+msgstr "atributo"
#: editor/animation_track_editor.cpp
msgid "Anim Create & Insert"
@@ -601,7 +599,7 @@ msgstr "Iri al AntaÅ­a PaÅo"
#: editor/animation_track_editor.cpp
msgid "Apply Reset"
-msgstr ""
+msgstr "Almeti rekomencigon"
#: editor/animation_track_editor.cpp
msgid "Optimize Animation"
@@ -620,9 +618,8 @@ msgid "Use Bezier Curves"
msgstr "Uzu Bezier-kurbojn"
#: editor/animation_track_editor.cpp
-#, fuzzy
msgid "Create RESET Track(s)"
-msgstr "Alglui trakojn"
+msgstr "Krei RESET-trako(j)n"
#: editor/animation_track_editor.cpp
msgid "Anim. Optimizer"
@@ -947,9 +944,8 @@ msgid "Edit..."
msgstr "Redakti..."
#: editor/connections_dialog.cpp
-#, fuzzy
msgid "Go to Method"
-msgstr "Iru al metodo"
+msgstr "Iri al metodo"
#: editor/create_dialog.cpp
msgid "Change %s Type"
@@ -969,7 +965,7 @@ msgstr "Ne rezultoj por \"%s\"."
#: editor/create_dialog.cpp editor/property_selector.cpp
msgid "No description available for %s."
-msgstr ""
+msgstr "Ne priskribo disponeblas por %s."
#: editor/create_dialog.cpp editor/editor_file_dialog.cpp
#: editor/filesystem_dock.cpp
@@ -1029,7 +1025,7 @@ msgstr ""
msgid "Dependencies"
msgstr "Dependecoj"
-#: editor/dependency_editor.cpp
+#: editor/dependency_editor.cpp editor/editor_resource_picker.cpp
msgid "Resource"
msgstr "Rimedo"
@@ -1069,17 +1065,16 @@ msgid "Owners Of:"
msgstr "Proprietuloj de:"
#: editor/dependency_editor.cpp
-#, fuzzy
msgid ""
"Remove the selected files from the project? (Cannot be undone.)\n"
"Depending on your filesystem configuration, the files will either be moved "
"to the system trash or deleted permanently."
msgstr ""
-"Forigi selektajn dosierojn el la projekto? (ne malfaro)\n"
-"Vi povas trovi la forigajn dosierojn en la sistema rubujo por restaÅ­ri ilin."
+"Forigi la elektitajn dosierojn el la projekto? (ne malfareblas)\n"
+"Depende de la agordo de via dosiersistemo, la dosierojn aÅ­ movos al rubujo "
+"de la sistemo aŭ forigos ĉiame."
#: editor/dependency_editor.cpp
-#, fuzzy
msgid ""
"The files being removed are required by other resources in order for them to "
"work.\n"
@@ -1087,9 +1082,11 @@ msgid ""
"Depending on your filesystem configuration, the files will either be moved "
"to the system trash or deleted permanently."
msgstr ""
-"La forigotaj dosieroj bezonas por ke aliaj risurcoj funkciadi.\n"
-"Forigu ilin iel? (ne malfaro)\n"
-"Vi povas trovi la forigajn dosierojn en la sistema rubujo por restaÅ­ri ilin."
+"La forigotaj dosieroj estas bezoni de aliaj risurcoj por ke ili eblas "
+"funkciadi.\n"
+"Forigi ilin iel? (ne malfareblas)\n"
+"Depende de la agordo de via dosiersistemo, la dosierojn aÅ­ movos al rubujo "
+"de la sistemo aŭ forigos ĉiame."
#: editor/dependency_editor.cpp
msgid "Cannot remove:"
@@ -1259,55 +1256,51 @@ msgid "Licenses"
msgstr "Permesiloj"
#: editor/editor_asset_installer.cpp
-#, fuzzy
msgid "Error opening asset file for \"%s\" (not in ZIP format)."
-msgstr "Eraro dum malfermi pakaĵan dosieron (ne estas en ZIP-formo)."
+msgstr ""
+"Eraro dum malfermi pakaĵan dosieron por \"%s\" (ne estas de ZIP-formo)."
#: editor/editor_asset_installer.cpp
-#, fuzzy
msgid "%s (already exists)"
msgstr "%s (jam ekzistante)"
#: editor/editor_asset_installer.cpp
msgid "Contents of asset \"%s\" - %d file(s) conflict with your project:"
msgstr ""
+"Enhavaĵoj de pakaĵo \"%s\" - %d dosiero(j) konfliktas kun via projekto:"
#: editor/editor_asset_installer.cpp
msgid "Contents of asset \"%s\" - No files conflict with your project:"
-msgstr ""
+msgstr "Enhavaĵoj de pakaĵo \"%s\" - Ne dosiero konfliktas kun via projekto:"
#: editor/editor_asset_installer.cpp
msgid "Uncompressing Assets"
-msgstr "Maldensigas havaĵojn"
+msgstr "Malkompaktigas havaĵojn"
#: editor/editor_asset_installer.cpp
-#, fuzzy
msgid "The following files failed extraction from asset \"%s\":"
-msgstr "La jenaj dosieroj malplenumis malkompaktigi el la pakaĵo:"
+msgstr "La jenajn dosierojn malsukcesis malkompaktigi el la pakaĵo \"%s\":"
#: editor/editor_asset_installer.cpp
-#, fuzzy
msgid "(and %s more files)"
-msgstr "Kaj %s pli dosieroj."
+msgstr "(kaj %s pli dosieroj)"
#: editor/editor_asset_installer.cpp
-#, fuzzy
msgid "Asset \"%s\" installed successfully!"
-msgstr "Pakaĵo instalis sukcese!"
+msgstr "Pakaĵo \"%s\" instalis sukcese!"
#: editor/editor_asset_installer.cpp
#: editor/plugins/asset_library_editor_plugin.cpp
msgid "Success!"
-msgstr "Sukcese!"
+msgstr "Sukceso!"
#: editor/editor_asset_installer.cpp editor/editor_node.cpp
msgid "Install"
msgstr "Instali"
#: editor/editor_asset_installer.cpp
-#, fuzzy
msgid "Asset Installer"
-msgstr "Pakaĵa instalilo"
+msgstr "Instalilo de pakaĵo"
#: editor/editor_audio_buses.cpp
msgid "Speakers"
@@ -1334,9 +1327,8 @@ msgid "Toggle Audio Bus Mute"
msgstr "Baskuli la muta reÄimo de la aÅ­dia buso"
#: editor/editor_audio_buses.cpp
-#, fuzzy
msgid "Toggle Audio Bus Bypass Effects"
-msgstr "Baskuli preterpasajn efektojn de aÅ­dia buso"
+msgstr "Baskuli la preterpasajn efektojn de aÅ­dbuso"
#: editor/editor_audio_buses.cpp
msgid "Select Audio Bus Send"
@@ -1371,9 +1363,8 @@ msgid "Bypass"
msgstr "Preterpase"
#: editor/editor_audio_buses.cpp
-#, fuzzy
msgid "Bus Options"
-msgstr "Busaj agordoj"
+msgstr "Agordoj de buso"
#: editor/editor_audio_buses.cpp editor/filesystem_dock.cpp
#: editor/plugins/animation_player_editor_plugin.cpp editor/scene_tree_dock.cpp
@@ -1539,13 +1530,13 @@ msgid "Can't add autoload:"
msgstr "Ne aldoneblas aÅ­toÅargon:"
#: editor/editor_autoload_settings.cpp
-#, fuzzy
msgid "%s is an invalid path. File does not exist."
-msgstr "Dosiero ne ekzistas."
+msgstr "%s estas invalida dosierindiko. Dosiero ne ekzistas."
#: editor/editor_autoload_settings.cpp
msgid "%s is an invalid path. Not in resource path (res://)."
msgstr ""
+"%s estas invalida dosierindiko. Ne estas ĉe risurca dosierindiko (res://)."
#: editor/editor_autoload_settings.cpp
msgid "Add AutoLoad"
@@ -1569,9 +1560,8 @@ msgid "Name"
msgstr "Nomo"
#: editor/editor_autoload_settings.cpp
-#, fuzzy
msgid "Global Variable"
-msgstr "Renomi variablon"
+msgstr "Malloka variablo"
#: editor/editor_data.cpp
msgid "Paste Params"
@@ -1695,22 +1685,21 @@ msgstr ""
"Ebligu 'Import Pvrtc' en projektaj agordoj, aÅ­ malÅalti 'Driver Fallback "
"Enabled'."
-#: editor/editor_export.cpp platform/android/export/export.cpp
+#: editor/editor_export.cpp platform/android/export/export_plugin.cpp
#: platform/iphone/export/export.cpp platform/javascript/export/export.cpp
#: platform/osx/export/export.cpp platform/uwp/export/export.cpp
msgid "Custom debug template not found."
msgstr "Propra sencimiga Åablonon ne trovitis."
-#: editor/editor_export.cpp platform/android/export/export.cpp
+#: editor/editor_export.cpp platform/android/export/export_plugin.cpp
#: platform/iphone/export/export.cpp platform/javascript/export/export.cpp
#: platform/osx/export/export.cpp platform/uwp/export/export.cpp
msgid "Custom release template not found."
msgstr "Propra eldona Åablono ne trovitis."
#: editor/editor_export.cpp platform/javascript/export/export.cpp
-#, fuzzy
msgid "Template file not found:"
-msgstr "Åœablonan dosieron ne trovitis:"
+msgstr "Åœablonan dosieron ne trovis:"
#: editor/editor_export.cpp
msgid "On 32-bit exports the embedded PCK cannot be bigger than 4 GiB."
@@ -1731,7 +1720,7 @@ msgstr "Biblioteko de havaĵoj"
#: editor/editor_feature_profile.cpp
msgid "Scene Tree Editing"
-msgstr "Redaktado de scena arbo"
+msgstr "Redaktado de scenoarbo"
#: editor/editor_feature_profile.cpp
msgid "Node Dock"
@@ -1747,48 +1736,51 @@ msgstr "Doko de enporto"
#: editor/editor_feature_profile.cpp
msgid "Allows to view and edit 3D scenes."
-msgstr ""
+msgstr "Permesas vidi kaj redakti 3D-scenojn."
#: editor/editor_feature_profile.cpp
msgid "Allows to edit scripts using the integrated script editor."
-msgstr ""
+msgstr "Permesas redakti skriptojn per la integrita skript-redaktilo."
#: editor/editor_feature_profile.cpp
msgid "Provides built-in access to the Asset Library."
-msgstr ""
+msgstr "Provizas integritan atingon al la Biblioteko de havaĵoj."
#: editor/editor_feature_profile.cpp
msgid "Allows editing the node hierarchy in the Scene dock."
-msgstr ""
+msgstr "Permesas redakti la hierarkion de nodoj en la Sceno-doko."
#: editor/editor_feature_profile.cpp
msgid ""
"Allows to work with signals and groups of the node selected in the Scene "
"dock."
msgstr ""
+"Permesas labori la signalojn kaj la grupojn de la nodo elektitas en la Sceno-"
+"doko."
#: editor/editor_feature_profile.cpp
msgid "Allows to browse the local file system via a dedicated dock."
-msgstr ""
+msgstr "Permesas esplori la lokan dosiersistemon per dediĉita doko."
#: editor/editor_feature_profile.cpp
msgid ""
"Allows to configure import settings for individual assets. Requires the "
"FileSystem dock to function."
msgstr ""
+"Permesas agordi enportajn agordojn por individuaj havaĵoj. Bezonas ke la "
+"doko Dosiersistemo funkcias."
#: editor/editor_feature_profile.cpp
-#, fuzzy
msgid "(current)"
-msgstr "(Aktuala)"
+msgstr "(aktuale)"
#: editor/editor_feature_profile.cpp
msgid "(none)"
-msgstr ""
+msgstr "(nenio)"
#: editor/editor_feature_profile.cpp
msgid "Remove currently selected profile, '%s'? Cannot be undone."
-msgstr ""
+msgstr "Forigi aktuale elektitan profilon '%s'? Ne malfareblas."
#: editor/editor_feature_profile.cpp
msgid "Profile must be a valid filename and must not contain '.'"
@@ -1819,19 +1811,16 @@ msgid "Enable Contextual Editor"
msgstr "Åœalti kuntekstan redaktilon"
#: editor/editor_feature_profile.cpp
-#, fuzzy
msgid "Class Properties:"
-msgstr "Maletendi ĉiajn atributojn"
+msgstr "Atributoj de la klaso:"
#: editor/editor_feature_profile.cpp
-#, fuzzy
msgid "Main Features:"
-msgstr "Åœaltitaj eblecoj:"
+msgstr "Ĉefa eblaĵoj:"
#: editor/editor_feature_profile.cpp
-#, fuzzy
msgid "Nodes and Classes:"
-msgstr "Åœaltitaj klasoj:"
+msgstr "Nodoj kaj klasoj:"
#: editor/editor_feature_profile.cpp
msgid "File '%s' format is invalid, import aborted."
@@ -1848,7 +1837,6 @@ msgid "Error saving profile to path: '%s'."
msgstr "Eraras konservi profilon al dosierindiko: '%s'."
#: editor/editor_feature_profile.cpp
-#, fuzzy
msgid "Reset to Default"
msgstr "Rekomencigi al defaÅ­ltoj"
@@ -1857,14 +1845,12 @@ msgid "Current Profile:"
msgstr "Aktuala profilo:"
#: editor/editor_feature_profile.cpp
-#, fuzzy
msgid "Create Profile"
-msgstr "ViÅi profilon"
+msgstr "Krei profilon"
#: editor/editor_feature_profile.cpp
-#, fuzzy
msgid "Remove Profile"
-msgstr "Forigi punkton"
+msgstr "Forigi profilon"
#: editor/editor_feature_profile.cpp
msgid "Available Profiles:"
@@ -1884,18 +1870,17 @@ msgid "Export"
msgstr "Eksporti"
#: editor/editor_feature_profile.cpp
-#, fuzzy
msgid "Configure Selected Profile:"
-msgstr "Aktuala profilo:"
+msgstr "Agordi elektitan profilon:"
#: editor/editor_feature_profile.cpp
-#, fuzzy
msgid "Extra Options:"
-msgstr "Agordoj de klaso:"
+msgstr "Pli agordoj:"
#: editor/editor_feature_profile.cpp
msgid "Create or import a profile to edit available classes and properties."
msgstr ""
+"Krei aÅ­ enporti profilon por redakti disponeblajn klasojn kaj atributojn."
#: editor/editor_feature_profile.cpp
msgid "New profile name:"
@@ -1922,7 +1907,6 @@ msgid "Select Current Folder"
msgstr "Elekti aktualan dosierujon"
#: editor/editor_file_dialog.cpp scene/gui/file_dialog.cpp
-#, fuzzy
msgid "File exists, overwrite?"
msgstr "Dosiero ekzistas, superskribi?"
@@ -2085,7 +2069,7 @@ msgstr ""
msgid "(Re)Importing Assets"
msgstr "(Re)enportas havaĵoj"
-#: editor/editor_help.cpp editor/plugins/spatial_editor_plugin.cpp
+#: editor/editor_help.cpp
msgid "Top"
msgstr "Supro"
@@ -2242,7 +2226,7 @@ msgstr "Atributo:"
#: editor/editor_inspector.cpp editor/scene_tree_dock.cpp
#: modules/visual_script/visual_script_property_selector.cpp
msgid "Set %s"
-msgstr ""
+msgstr "Agordis %s"
#: editor/editor_inspector.cpp
msgid "Set Multiple:"
@@ -2322,6 +2306,9 @@ msgid ""
"Update Continuously is enabled, which can increase power usage. Click to "
"disable it."
msgstr ""
+"Rotacius kiam la fenestro de la redaktilo redesegniÄus.\n"
+"'Äœisdatigi konstante' estas Åaltita, kiu eblas pliiÄi kurentuzado. Alklaku "
+"por malÅalti Äin."
#: editor/editor_node.cpp
msgid "Spins when the editor window redraws."
@@ -2358,19 +2345,16 @@ msgid "Can't open file for writing:"
msgstr "Ne malfermeblas dosieron por skribi:"
#: editor/editor_node.cpp
-#, fuzzy
msgid "Requested file format unknown:"
-msgstr "Petitan dosierformon senkonatas:"
+msgstr "Petitan dosierformon nekonas:"
#: editor/editor_node.cpp
-#, fuzzy
msgid "Error while saving."
-msgstr "Eraro dum la konservo."
+msgstr "Eraro dum la konservado."
#: editor/editor_node.cpp editor/plugins/script_editor_plugin.cpp
-#, fuzzy
msgid "Can't open '%s'. The file could have been moved or deleted."
-msgstr "Ne malfermeblas '%s'. La dosiero estus movita aÅ­ forigita."
+msgstr "Ne malfermeblas '%s'. La dosiero eble estis movita aÅ­ forigita."
#: editor/editor_node.cpp
msgid "Error while parsing '%s'."
@@ -2559,35 +2543,34 @@ msgid ""
"The current scene has no root node, but %d modified external resource(s) "
"were saved anyway."
msgstr ""
+"La aktula sceno havas ne radika nodo, sed %d modifita(j) ekstera(j) "
+"risurco(j) konserviÄis iel."
#: editor/editor_node.cpp
-#, fuzzy
msgid ""
"A root node is required to save the scene. You can add a root node using the "
"Scene tree dock."
-msgstr "Radika nodo estas necesita por konservi la scenon."
+msgstr ""
+"Radikan nodon bezonas por konservi la scenon. Vi eblas aldoni radikan nodon "
+"per la Scenoarbo-doko."
#: editor/editor_node.cpp
msgid "Save Scene As..."
msgstr "Konservi sceno kiel..."
#: editor/editor_node.cpp modules/gltf/editor_scene_exporter_gltf_plugin.cpp
-#, fuzzy
msgid "This operation can't be done without a scene."
-msgstr "Ĉi tiu funkciado ne povas fari sen sceno."
+msgstr "Ĉi tian operacion ne povas fari sen sceno."
#: editor/editor_node.cpp
-#, fuzzy
msgid "Export Mesh Library"
-msgstr "Eksporti maÅajn bibliotekon"
+msgstr "Eksporti bibliotekon de maÅoj"
#: editor/editor_node.cpp
-#, fuzzy
msgid "This operation can't be done without a root node."
-msgstr "Ĉi tiu funkciado ne povas fari sen radika nodo."
+msgstr "Ĉi tian operacion ne povas fari sen radika nodo."
#: editor/editor_node.cpp
-#, fuzzy
msgid "Export Tile Set"
msgstr "Eksporti kahelaron"
@@ -2600,13 +2583,38 @@ msgid "Current scene not saved. Open anyway?"
msgstr "Nuna sceno ne estas konservita. Malfermi ĉuikaze?"
#: editor/editor_node.cpp
+msgid "Can't undo while mouse buttons are pressed."
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "Nothing to undo."
+msgstr ""
+
+#: editor/editor_node.cpp
+#, fuzzy
+msgid "Undo: %s"
+msgstr "Malfari"
+
+#: editor/editor_node.cpp
+msgid "Can't redo while mouse buttons are pressed."
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "Nothing to redo."
+msgstr ""
+
+#: editor/editor_node.cpp
+#, fuzzy
+msgid "Redo: %s"
+msgstr "Refari"
+
+#: editor/editor_node.cpp
msgid "Can't reload a scene that was never saved."
msgstr "Ne povas reÅarÄi scenon, kiu konservis neniam."
#: editor/editor_node.cpp
-#, fuzzy
msgid "Reload Saved Scene"
-msgstr "Konservi scenon"
+msgstr "ReÅargi konservitan scenon"
#: editor/editor_node.cpp
msgid ""
@@ -2650,13 +2658,12 @@ msgstr ""
"Konservi ÅanÄojn al la jena(j) sceno(j) antaÅ­ malfermi projektan mastrumilon?"
#: editor/editor_node.cpp
-#, fuzzy
msgid ""
"This option is deprecated. Situations where refresh must be forced are now "
"considered a bug. Please report."
msgstr ""
-"Tiu ĉi opcio estas evitinda. Statoj en kiu aktualigo deviÄi estas nun "
-"konsideri kiel cimo. Bonvolu raporti."
+"Tia ĉi opcio estas evitinda. Statoj en kiu bezonus Äisdatigo nun konsideras "
+"kiel cimo. Bonvolu raporti."
#: editor/editor_node.cpp
msgid "Pick a Main Scene"
@@ -2707,13 +2714,12 @@ msgstr ""
"estas en ila reÄimo."
#: editor/editor_node.cpp
-#, fuzzy
msgid ""
"Scene '%s' was automatically imported, so it can't be modified.\n"
"To make changes to it, a new inherited scene can be created."
msgstr ""
-"Sceno '%s' aÅ­tomate enportiÄis, do ne eblas redakti Äin.\n"
-"Por ÅanÄu Äin, nova heredita sceno povas kreiÄi."
+"Sceno '%s' aÅ­tomate enportiÄis, do Äin ne eblas modifi.\n"
+"Por ÅanÄi Äin, povas krei novan hereditan scenon."
#: editor/editor_node.cpp
msgid ""
@@ -2908,9 +2914,8 @@ msgid "Redo"
msgstr "Refari"
#: editor/editor_node.cpp
-#, fuzzy
msgid "Miscellaneous project or scene-wide tools."
-msgstr "Diversa projekto aÅ­ sceno-abundaj iloj."
+msgstr "Diversa projekto aÅ­ tut-scenaj iloj."
#: editor/editor_node.cpp editor/project_manager.cpp
#: editor/script_create_dialog.cpp
@@ -2922,14 +2927,12 @@ msgid "Project Settings..."
msgstr "Projektaj agordoj..."
#: editor/editor_node.cpp editor/plugins/version_control_editor_plugin.cpp
-#, fuzzy
msgid "Version Control"
msgstr "Versikontrolo"
#: editor/editor_node.cpp editor/plugins/version_control_editor_plugin.cpp
-#, fuzzy
msgid "Set Up Version Control"
-msgstr "Altlevi versitenan sistemon"
+msgstr "Agordi versikontrolon"
#: editor/editor_node.cpp
msgid "Shut Down Version Control"
@@ -2952,14 +2955,12 @@ msgid "Tools"
msgstr "Iloj"
#: editor/editor_node.cpp
-#, fuzzy
msgid "Orphan Resource Explorer..."
-msgstr "Eksplorilo da orfaj risurcoj..."
+msgstr "Eksplorilo de orfaj risurcoj..."
#: editor/editor_node.cpp
-#, fuzzy
msgid "Reload Current Project"
-msgstr "Renomi projekton"
+msgstr "Renomi aktualan projekton"
#: editor/editor_node.cpp
msgid "Quit to Project List"
@@ -2983,14 +2984,17 @@ msgid ""
"mobile device).\n"
"You don't need to enable it to use the GDScript debugger locally."
msgstr ""
+"Kiam ĉi tiu opcio Åaltus, uzado de unu-alklaka disponigo igos la "
+"komandodosieron provus konekti al la IP-adreso de ĉi tiu komputilo por ke la "
+"rulata projekto eblus sencimigi.\n"
+"Ĉi tiu opcio destiniÄas por fora sencimigado (tipe kun portebla aparato).\n"
+"Vi ne devas Åalti Äin por uzi la GDScript-sencimigilon loke."
#: editor/editor_node.cpp
-#, fuzzy
msgid "Small Deploy with Network Filesystem"
-msgstr "Eta disponigo kun reta dosiersistemo"
+msgstr "Malgranda disponigo kun reta dosiersistemo"
#: editor/editor_node.cpp
-#, fuzzy
msgid ""
"When this option is enabled, using one-click deploy for Android will only "
"export an executable without the project data.\n"
@@ -2999,53 +3003,51 @@ msgid ""
"On Android, deploying will use the USB cable for faster performance. This "
"option speeds up testing for projects with large assets."
msgstr ""
-"Kiam ĉi tiun agordon estas Åaltita, eksporti aÅ­ malfaldi produktos minimuman "
-"plenumeblan dosieron.\n"
-"La dosiersistemon disponigas el la projekto fare de editilo per la reto.\n"
-"En Android, malfaldo uzantos la USB-kablon por pli rapida rendimento. Ĉi tui "
-"agordo rapidigas testadon por ludoj kun larÄa areo."
+"Kiam ĉi tiun agordon Åaltus, uzado de unu-alklaka disponigo por Android nur "
+"eksportos komandodosieron sen la datumoj de projekto.\n"
+"La dosiersistemo proviziÄos el la projekto per la redaktilo per la reto.\n"
+"Per Android, disponigado uzos la USB-kablon por pli rapida rendimento. Ĉi "
+"tiu opcio rapidigas testadon por projektoj kun grandaj havaĵoj."
#: editor/editor_node.cpp
msgid "Visible Collision Shapes"
msgstr "Videblaj koliziaj formoj"
#: editor/editor_node.cpp
-#, fuzzy
msgid ""
"When this option is enabled, collision shapes and raycast nodes (for 2D and "
"3D) will be visible in the running project."
msgstr ""
-"Koliziaj formoj kaj radĵetaj nodoj (por 2D kaj 3D) estos videblaj en la "
-"rulas ludo, se ĉi tiu agordo estas Åaltita."
+"Kiam ĉi tia opcio Åaltus, koliziaj formoj kaj radĵetaj nodoj (por 2D kaj 3D) "
+"estos videblaj en la rula projekto."
#: editor/editor_node.cpp
msgid "Visible Navigation"
msgstr "Videbla navigacio"
#: editor/editor_node.cpp
-#, fuzzy
msgid ""
"When this option is enabled, navigation meshes and polygons will be visible "
"in the running project."
msgstr ""
-"Navigaciaj maÅoj kaj poligonoj estos videblaj en la rulas ludo, se ĉi tiu "
-"agordo estas Åaltita."
+"Kiam ĉi tiu opcio Åaltus, navigaciaj maÅoj kaj plurlateroj estos videblaj en "
+"la rula projekto."
#: editor/editor_node.cpp
msgid "Synchronize Scene Changes"
msgstr "Sinkronigi ÅanÄojn en sceno"
#: editor/editor_node.cpp
-#, fuzzy
msgid ""
"When this option is enabled, any changes made to the scene in the editor "
"will be replicated in the running project.\n"
"When used remotely on a device, this is more efficient when the network "
"filesystem option is enabled."
msgstr ""
-"Kiam tuin ĉi agordo estas Åaltita, iuj ÅanÄoj ke faris al la scenon en la "
-"editilo replikos en la rulas ludo.\n"
-"Kiam uzantis malproksime en aparato, estas pli efika kun reta dosiersistemo."
+"Kiam ĉi tiu opcio Åaltus, iuj ÅanÄoj ke faris al la scenon en la redaktilo "
+"replikos en la rula projekto.\n"
+"Kiam uzantus fore en aparato, tiu estas pli efika kiam la reta dosiersistema "
+"opcio estas Åaltita."
#: editor/editor_node.cpp
msgid "Synchronize Script Changes"
@@ -3284,6 +3286,11 @@ msgid "Merge With Existing"
msgstr "Kunfandi kun ekzistanta"
#: editor/editor_node.cpp
+#, fuzzy
+msgid "Apply MeshInstance Transforms"
+msgstr "Aliigi Transformon de Animado"
+
+#: editor/editor_node.cpp
msgid "Open & Run a Script"
msgstr "Malfermi & ruli skripto"
@@ -3541,6 +3548,10 @@ msgstr ""
"La elektinta risurco (%s) ne kongruas ian atenditan tipon por ĉi tiu "
"atributo (%s)."
+#: editor/editor_resource_picker.cpp
+msgid "Quick Load"
+msgstr ""
+
#: editor/editor_resource_picker.cpp editor/property_editor.cpp
msgid "Make Unique"
msgstr "Farigi unikan"
@@ -5670,6 +5681,18 @@ msgid "Move CanvasItem \"%s\" to (%d, %d)"
msgstr "Movi CanvasItem \"%s\" al (%d, %d)"
#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Locked"
+msgstr "Åœlosi elektiton"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Grouped"
+msgstr "Grupoj"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
msgid ""
"Children of containers have their anchors and margins values overridden by "
"their parent."
@@ -6619,7 +6642,11 @@ msgid "Remove Selected Item"
msgstr ""
#: editor/plugins/mesh_library_editor_plugin.cpp
-msgid "Import from Scene"
+msgid "Import from Scene (Ignore Transforms)"
+msgstr ""
+
+#: editor/plugins/mesh_library_editor_plugin.cpp
+msgid "Import from Scene (Apply Transforms)"
msgstr ""
#: editor/plugins/mesh_library_editor_plugin.cpp
@@ -7207,6 +7234,15 @@ msgstr "Nombrado de generintaj punktoj:"
msgid "Flip Portal"
msgstr ""
+#: editor/plugins/room_manager_editor_plugin.cpp
+msgid "Occluder Set Transform"
+msgstr ""
+
+#: editor/plugins/room_manager_editor_plugin.cpp
+#, fuzzy
+msgid "Center Node"
+msgstr "Krei nodon"
+
#: editor/plugins/root_motion_editor_plugin.cpp
msgid "AnimationTree has no path set to an AnimationPlayer"
msgstr ""
@@ -7703,12 +7739,14 @@ msgid "Skeleton2D"
msgstr ""
#: editor/plugins/skeleton_2d_editor_plugin.cpp
-msgid "Make Rest Pose (From Bones)"
-msgstr ""
+#, fuzzy
+msgid "Reset to Rest Pose"
+msgstr "Rekomencigi al defaÅ­ltoj"
#: editor/plugins/skeleton_2d_editor_plugin.cpp
-msgid "Set Bones to Rest Pose"
-msgstr ""
+#, fuzzy
+msgid "Overwrite Rest Pose"
+msgstr "Superskribi"
#: editor/plugins/skeleton_editor_plugin.cpp
msgid "Create physical bones"
@@ -7735,6 +7773,63 @@ msgid "Perspective"
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Top Orthogonal"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Top Perspective"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Bottom Orthogonal"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Bottom Perspective"
+msgstr "Malsupre maldekstre"
+
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Left Orthogonal"
+msgstr "Maldekstra butono"
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Right Perspective"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Right Orthogonal"
+msgstr "Dekstra butono"
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Front Orthogonal"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Front Perspective"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Rear Orthogonal"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Rear Perspective"
+msgstr ""
+
+#. TRANSLATORS: This will be appended to the view name when Auto Orthogonal is enabled.
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid " [auto]"
+msgstr ""
+
+#. TRANSLATORS: This will be appended to the view name when Portal Occulusion is enabled.
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid " [portals active]"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
msgid "Transform Aborted."
msgstr ""
@@ -7851,42 +7946,22 @@ msgid "Bottom View."
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
-msgid "Bottom"
-msgstr ""
-
-#: editor/plugins/spatial_editor_plugin.cpp
msgid "Left View."
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
-msgid "Left"
-msgstr ""
-
-#: editor/plugins/spatial_editor_plugin.cpp
msgid "Right View."
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
-msgid "Right"
-msgstr ""
-
-#: editor/plugins/spatial_editor_plugin.cpp
msgid "Front View."
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
-msgid "Front"
-msgstr ""
-
-#: editor/plugins/spatial_editor_plugin.cpp
msgid "Rear View."
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
-msgid "Rear"
-msgstr ""
-
-#: editor/plugins/spatial_editor_plugin.cpp
msgid "Align Transform with View"
msgstr ""
@@ -8157,6 +8232,10 @@ msgid "View Portal Culling"
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
+msgid "View Occlusion Culling"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
#: modules/gridmap/grid_map_editor_plugin.cpp
msgid "Settings..."
msgstr ""
@@ -8222,8 +8301,9 @@ msgid "Post"
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
-msgid "Nameless gizmo"
-msgstr ""
+#, fuzzy
+msgid "Unnamed Gizmo"
+msgstr "Sennoma projekto"
#: editor/plugins/sprite_editor_plugin.cpp
msgid "Create Mesh2D"
@@ -11881,7 +11961,7 @@ msgstr "Renomi nodon"
#: editor/scene_tree_editor.cpp
msgid "Scene Tree (Nodes):"
-msgstr "Scena arbo (nodoj):"
+msgstr "Scenoarbo (nodoj):"
#: editor/scene_tree_editor.cpp
msgid "Node Configuration Warning!"
@@ -12263,6 +12343,15 @@ msgstr ""
msgid "Set Portal Point Position"
msgstr ""
+#: editor/spatial_editor_gizmos.cpp
+msgid "Set Occluder Sphere Radius"
+msgstr ""
+
+#: editor/spatial_editor_gizmos.cpp
+#, fuzzy
+msgid "Set Occluder Sphere Position"
+msgstr "Krei okludan plurlateron"
+
#: modules/csg/csg_gizmos.cpp
msgid "Change Cylinder Radius"
msgstr ""
@@ -12547,6 +12636,10 @@ msgstr ""
msgid "Class name can't be a reserved keyword"
msgstr ""
+#: modules/mono/csharp_script.cpp
+msgid "Build Solution"
+msgstr ""
+
#: modules/mono/mono_gd/gd_mono_utils.cpp
msgid "End of inner exception stack trace"
msgstr ""
@@ -13026,165 +13119,154 @@ msgstr ""
msgid "Get %s"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Package name is missing."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Package segments must be of non-zero length."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "The character '%s' is not allowed in Android application package names."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "A digit cannot be the first character in a package segment."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "The character '%s' cannot be the first character in a package segment."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "The package must have at least one '.' separator."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Select device from the list"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Running on %s"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
#, fuzzy
msgid "Exporting APK..."
msgstr "Eksporti..."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
#, fuzzy
msgid "Uninstalling..."
msgstr "Malinstali"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
#, fuzzy
msgid "Installing to device, please wait..."
msgstr "Åœargas, bonvolu atendi..."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
#, fuzzy
msgid "Could not install to device: %s"
msgstr "Ne eble komencas subprocezon!"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
#, fuzzy
msgid "Running on device..."
msgstr "Rulas propran skripton..."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
#, fuzzy
msgid "Could not execute on device."
msgstr "Ne povis krei dosierujon."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Unable to find the 'apksigner' tool."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Android build template not installed in the project. Install it from the "
"Project menu."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Either Debug Keystore, Debug User AND Debug Password settings must be "
"configured OR none of them."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Debug keystore not configured in the Editor Settings nor in the preset."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Either Release Keystore, Release User AND Release Password settings must be "
"configured OR none of them."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Release keystore incorrectly configured in the export preset."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "A valid Android SDK path is required in Editor Settings."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Invalid Android SDK path in Editor Settings."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Missing 'platform-tools' directory!"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Unable to find Android SDK platform-tools' adb command."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Please check in the Android SDK directory specified in Editor Settings."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Missing 'build-tools' directory!"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Unable to find Android SDK build-tools' apksigner command."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Invalid public key for APK expansion."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Invalid package name:"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Invalid \"GodotPaymentV3\" module included in the \"android/modules\" "
"project setting (changed in Godot 3.2.2).\n"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "\"Use Custom Build\" must be enabled to use the plugins."
msgstr ""
-#: platform/android/export/export.cpp
-msgid ""
-"\"Degrees Of Freedom\" is only valid when \"Xr Mode\" is \"Oculus Mobile VR"
-"\"."
-msgstr ""
-
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"\"Hand Tracking\" is only valid when \"Xr Mode\" is \"Oculus Mobile VR\"."
msgstr ""
-#: platform/android/export/export.cpp
-msgid ""
-"\"Focus Awareness\" is only valid when \"Xr Mode\" is \"Oculus Mobile VR\"."
-msgstr ""
-
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "\"Export AAB\" is only valid when \"Use Custom Build\" is enabled."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"'apksigner' could not be found.\n"
"Please check the command is available in the Android SDK build-tools "
@@ -13192,61 +13274,61 @@ msgid ""
"The resulting %s is unsigned."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Signing debug %s..."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
#, fuzzy
msgid "Signing release %s..."
msgstr ""
"Skanas dosierojn,\n"
"Bonvolu atendi..."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Could not find keystore, unable to export."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "'apksigner' returned with error #%d"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
#, fuzzy
msgid "Verifying %s..."
msgstr "Aldonas %s..."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "'apksigner' verification of %s failed."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Exporting for Android"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Invalid filename! Android App Bundle requires the *.aab extension."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "APK Expansion not compatible with Android App Bundle."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Invalid filename! Android APK requires the *.apk extension."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Unsupported export format!\n"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Trying to build from a custom built template, but no version info for it "
"exists. Please reinstall from the 'Project' menu."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Android build version mismatch:\n"
" Template installed: %s\n"
@@ -13254,57 +13336,57 @@ msgid ""
"Please reinstall Android build template from 'Project' menu."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Unable to overwrite res://android/build/res/*.xml files with project name"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
#, fuzzy
msgid "Could not export project files to gradle project\n"
msgstr "Ne eblas redakti project.godot en projekta dosierindiko."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Could not write expansion package file!"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Building Android Project (gradle)"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Building of Android project failed, check output for the error.\n"
"Alternatively visit docs.godotengine.org for Android build documentation."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Moving output"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Unable to copy and rename export file, check gradle project directory for "
"outputs."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
#, fuzzy
msgid "Package not found: %s"
msgstr "Enhavo de pakaĵo:"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
#, fuzzy
msgid "Creating APK..."
msgstr "Konektas..."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Could not find template APK to export:\n"
"%s"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Missing libraries in the export template for the selected architectures: "
"%s.\n"
@@ -13312,21 +13394,21 @@ msgid ""
"architectures in the export preset."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
#, fuzzy
msgid "Adding files..."
msgstr "Aldonas %s..."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
#, fuzzy
msgid "Could not export project files"
msgstr "Ne eble komencas subprocezon!"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Aligning APK..."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Could not unzip temporary unaligned APK."
msgstr ""
@@ -13781,6 +13863,14 @@ msgid ""
"It only provides navigation data."
msgstr ""
+#: scene/3d/occluder.cpp
+msgid "No shape is set."
+msgstr ""
+
+#: scene/3d/occluder.cpp
+msgid "Only uniform scales are supported."
+msgstr ""
+
#: scene/3d/particles.cpp
msgid ""
"GPU-based particles are not supported by the GLES2 video driver.\n"
@@ -14070,6 +14160,14 @@ msgstr ""
msgid "Enable grid minimap."
msgstr ""
+#: scene/gui/nine_patch_rect.cpp
+msgid ""
+"The Tile and Tile Fit options for Axis Stretch properties are only effective "
+"when using the GLES3 rendering backend.\n"
+"The GLES2 backend is currently in use, so these modes will act like Stretch "
+"instead."
+msgstr ""
+
#: scene/gui/popup.cpp
msgid ""
"Popups will hide by default unless you call popup() or any of the popup*() "
@@ -14110,6 +14208,10 @@ msgstr ""
msgid "Viewport size must be greater than 0 to render anything."
msgstr ""
+#: scene/resources/occluder_shape.cpp
+msgid "OccluderShapeSphere Set Spheres"
+msgstr ""
+
#: scene/resources/visual_shader_nodes.cpp
msgid ""
"The sampler port is connected but not used. Consider changing the source to "
diff --git a/editor/translations/es.po b/editor/translations/es.po
index eef4affde3..95a4a08bfd 100644
--- a/editor/translations/es.po
+++ b/editor/translations/es.po
@@ -69,11 +69,12 @@
# pabloggomez <pgg2733@gmail.com>, 2021.
# Erick Figueroa <querecuto@hotmail.com>, 2021.
# jonagamerpro1234 ss <js398704@gmail.com>, 2021.
+# davidrogel <david.rogel.pernas@icloud.com>, 2021.
msgid ""
msgstr ""
"Project-Id-Version: Godot Engine editor\n"
"POT-Creation-Date: \n"
-"PO-Revision-Date: 2021-08-12 14:48+0000\n"
+"PO-Revision-Date: 2021-08-27 08:25+0000\n"
"Last-Translator: Javier Ocampos <xavier.ocampos@gmail.com>\n"
"Language-Team: Spanish <https://hosted.weblate.org/projects/godot-engine/"
"godot/es/>\n"
@@ -82,7 +83,7 @@ msgstr ""
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=n != 1;\n"
-"X-Generator: Weblate 4.8-dev\n"
+"X-Generator: Weblate 4.8.1-dev\n"
#: core/math/expression.cpp modules/gdscript/gdscript_functions.cpp
#: modules/visual_script/visual_script_builtin_funcs.cpp
@@ -433,15 +434,13 @@ msgstr "Insertar Animación"
#. TRANSLATORS: This describes the target of new animation track, will be inserted into another string.
#: editor/animation_track_editor.cpp
-#, fuzzy
msgid "node '%s'"
-msgstr "No se puede abrir '%s'."
+msgstr "nodo '%s'"
#. TRANSLATORS: This describes the target of new animation track, will be inserted into another string.
#: editor/animation_track_editor.cpp
-#, fuzzy
msgid "animation"
-msgstr "Animación"
+msgstr "animación"
#: editor/animation_track_editor.cpp
msgid "AnimationPlayer can't animate itself, only other players."
@@ -449,9 +448,8 @@ msgstr "Un AnimationPlayer no puede animarse a sí mismo, solo a otros players."
#. TRANSLATORS: This describes the target of new animation track, will be inserted into another string.
#: editor/animation_track_editor.cpp
-#, fuzzy
msgid "property '%s'"
-msgstr "No existe la propiedad '%s'."
+msgstr "propiedad '%s'"
#: editor/animation_track_editor.cpp
msgid "Anim Create & Insert"
@@ -690,7 +688,7 @@ msgstr "Crear pista(s) RESET"
#: editor/animation_track_editor.cpp
msgid "Anim. Optimizer"
-msgstr "Optimizar animación"
+msgstr "Optimizar Animación"
#: editor/animation_track_editor.cpp
msgid "Max. Linear Error:"
@@ -795,7 +793,7 @@ msgstr "%d coincidencias."
#: editor/code_editor.cpp editor/find_in_files.cpp
msgid "Match Case"
-msgstr "Distinguir mayúsculas y minúsculas"
+msgstr "Coincidir Mayus./Minus."
#: editor/code_editor.cpp editor/find_in_files.cpp
msgid "Whole Words"
@@ -1094,7 +1092,7 @@ msgstr ""
msgid "Dependencies"
msgstr "Dependencias"
-#: editor/dependency_editor.cpp
+#: editor/dependency_editor.cpp editor/editor_resource_picker.cpp
msgid "Resource"
msgstr "Recursos"
@@ -1755,13 +1753,13 @@ msgstr ""
"Activa Import Pvrtc' en Configuración del Proyecto, o desactiva 'Driver "
"Fallback Enabled'."
-#: editor/editor_export.cpp platform/android/export/export.cpp
+#: editor/editor_export.cpp platform/android/export/export_plugin.cpp
#: platform/iphone/export/export.cpp platform/javascript/export/export.cpp
#: platform/osx/export/export.cpp platform/uwp/export/export.cpp
msgid "Custom debug template not found."
msgstr "No se encontró la plantilla de depuración personalizada."
-#: editor/editor_export.cpp platform/android/export/export.cpp
+#: editor/editor_export.cpp platform/android/export/export_plugin.cpp
#: platform/iphone/export/export.cpp platform/javascript/export/export.cpp
#: platform/osx/export/export.cpp platform/uwp/export/export.cpp
msgid "Custom release template not found."
@@ -2146,7 +2144,7 @@ msgstr ""
msgid "(Re)Importing Assets"
msgstr "(Re)Importación de Assets"
-#: editor/editor_help.cpp editor/plugins/spatial_editor_plugin.cpp
+#: editor/editor_help.cpp
msgid "Top"
msgstr "Superior"
@@ -2234,7 +2232,7 @@ msgstr "Buscar en la Ayuda"
#: editor/editor_help_search.cpp
msgid "Case Sensitive"
-msgstr "Respetar mayús/minúsculas"
+msgstr "Respetar Mayus./Minus."
#: editor/editor_help_search.cpp
msgid "Show Hierarchy"
@@ -2383,6 +2381,9 @@ msgid ""
"Update Continuously is enabled, which can increase power usage. Click to "
"disable it."
msgstr ""
+"Gira cuando la ventana del editor se vuelve a dibujar.\n"
+"Si Update Continuously está habilitado puede incrementarse el consumo. Clica "
+"para deshabilitarlo."
#: editor/editor_node.cpp
msgid "Spins when the editor window redraws."
@@ -2661,6 +2662,32 @@ msgid "Current scene not saved. Open anyway?"
msgstr "Escena actual no guardada ¿Abrir de todos modos?"
#: editor/editor_node.cpp
+msgid "Can't undo while mouse buttons are pressed."
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "Nothing to undo."
+msgstr ""
+
+#: editor/editor_node.cpp
+#, fuzzy
+msgid "Undo: %s"
+msgstr "Deshacer"
+
+#: editor/editor_node.cpp
+msgid "Can't redo while mouse buttons are pressed."
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "Nothing to redo."
+msgstr ""
+
+#: editor/editor_node.cpp
+#, fuzzy
+msgid "Redo: %s"
+msgstr "Rehacer"
+
+#: editor/editor_node.cpp
msgid "Can't reload a scene that was never saved."
msgstr "No se puede volver a cargar una escena que nunca se guardó."
@@ -3215,7 +3242,7 @@ msgstr "Apoyar el desarrollo de Godot"
#: editor/editor_node.cpp
msgid "Play the project."
-msgstr "Ejecutar el proyecto."
+msgstr "Reproducir el proyecto."
#: editor/editor_node.cpp
msgid "Play"
@@ -3356,6 +3383,11 @@ msgid "Merge With Existing"
msgstr "Combinar Con Existentes"
#: editor/editor_node.cpp
+#, fuzzy
+msgid "Apply MeshInstance Transforms"
+msgstr "Cambiar Transformación de la Animación"
+
+#: editor/editor_node.cpp
msgid "Open & Run a Script"
msgstr "Abrir y Ejecutar un Script"
@@ -3613,6 +3645,10 @@ msgstr ""
"El recurso seleccionado (%s) no coincide con ningún tipo esperado para esta "
"propiedad (%s)."
+#: editor/editor_resource_picker.cpp
+msgid "Quick Load"
+msgstr ""
+
#: editor/editor_resource_picker.cpp editor/property_editor.cpp
msgid "Make Unique"
msgstr "Hacer Único"
@@ -3911,14 +3947,12 @@ msgid "Download from:"
msgstr "Descargar desde:"
#: editor/export_template_manager.cpp
-#, fuzzy
msgid "Open in Web Browser"
-msgstr "Ejecutar en Navegador"
+msgstr "Abrir en el Navegador Web"
#: editor/export_template_manager.cpp
-#, fuzzy
msgid "Copy Mirror URL"
-msgstr "Copiar Error"
+msgstr "Copiar Mirror URL"
#: editor/export_template_manager.cpp
msgid "Download and Install"
@@ -5731,6 +5765,18 @@ msgid "Move CanvasItem \"%s\" to (%d, %d)"
msgstr "Mover CanvasItem \"%s\" a (%d, %d)"
#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Locked"
+msgstr "Bloqueo Seleccionado"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Grouped"
+msgstr "Grupo"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
msgid ""
"Children of containers have their anchors and margins values overridden by "
"their parent."
@@ -6676,7 +6722,13 @@ msgid "Remove Selected Item"
msgstr "Eliminar Elemento Seleccionado"
#: editor/plugins/mesh_library_editor_plugin.cpp
-msgid "Import from Scene"
+#, fuzzy
+msgid "Import from Scene (Ignore Transforms)"
+msgstr "Importar desde escena"
+
+#: editor/plugins/mesh_library_editor_plugin.cpp
+#, fuzzy
+msgid "Import from Scene (Apply Transforms)"
msgstr "Importar desde escena"
#: editor/plugins/mesh_library_editor_plugin.cpp
@@ -7274,6 +7326,16 @@ msgstr "Generar puntos"
msgid "Flip Portal"
msgstr "Voltear Portal"
+#: editor/plugins/room_manager_editor_plugin.cpp
+#, fuzzy
+msgid "Occluder Set Transform"
+msgstr "Reestablecer Transformación"
+
+#: editor/plugins/room_manager_editor_plugin.cpp
+#, fuzzy
+msgid "Center Node"
+msgstr "Crear Nodo"
+
#: editor/plugins/root_motion_editor_plugin.cpp
msgid "AnimationTree has no path set to an AnimationPlayer"
msgstr "El AnimationTree no tiene una ruta asignada a un AnimationPlayer"
@@ -7605,15 +7667,15 @@ msgstr "Seleccionar Color"
#: editor/plugins/script_text_editor.cpp editor/plugins/text_editor.cpp
msgid "Convert Case"
-msgstr "Convertir Mayús./Minús."
+msgstr "Convertir Mayus./Minus."
#: editor/plugins/script_text_editor.cpp editor/plugins/text_editor.cpp
msgid "Uppercase"
-msgstr "Mayúscula"
+msgstr "Mayúsculas"
#: editor/plugins/script_text_editor.cpp editor/plugins/text_editor.cpp
msgid "Lowercase"
-msgstr "Minúscula"
+msgstr "Minúsculas"
#: editor/plugins/script_text_editor.cpp editor/plugins/text_editor.cpp
msgid "Capitalize"
@@ -7777,12 +7839,14 @@ msgid "Skeleton2D"
msgstr "Skeleton2D"
#: editor/plugins/skeleton_2d_editor_plugin.cpp
-msgid "Make Rest Pose (From Bones)"
-msgstr "Crear Pose de Descanso (Desde Huesos)"
+#, fuzzy
+msgid "Reset to Rest Pose"
+msgstr "Asignar Pose de Descanso a Huesos"
#: editor/plugins/skeleton_2d_editor_plugin.cpp
-msgid "Set Bones to Rest Pose"
-msgstr "Asignar Pose de Descanso a Huesos"
+#, fuzzy
+msgid "Overwrite Rest Pose"
+msgstr "Sobreescribir"
#: editor/plugins/skeleton_editor_plugin.cpp
msgid "Create physical bones"
@@ -7809,6 +7873,71 @@ msgid "Perspective"
msgstr "Perspectiva"
#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Top Orthogonal"
+msgstr "Ortogonal"
+
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Top Perspective"
+msgstr "Perspectiva"
+
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Bottom Orthogonal"
+msgstr "Ortogonal"
+
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Bottom Perspective"
+msgstr "Perspectiva"
+
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Left Orthogonal"
+msgstr "Ortogonal"
+
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Right Perspective"
+msgstr "Perspectiva"
+
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Right Orthogonal"
+msgstr "Ortogonal"
+
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Front Orthogonal"
+msgstr "Ortogonal"
+
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Front Perspective"
+msgstr "Perspectiva"
+
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Rear Orthogonal"
+msgstr "Ortogonal"
+
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Rear Perspective"
+msgstr "Perspectiva"
+
+#. TRANSLATORS: This will be appended to the view name when Auto Orthogonal is enabled.
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid " [auto]"
+msgstr ""
+
+#. TRANSLATORS: This will be appended to the view name when Portal Occulusion is enabled.
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid " [portals active]"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
msgid "Transform Aborted."
msgstr "Transformación Abortada."
@@ -7916,42 +8045,22 @@ msgid "Bottom View."
msgstr "Vista Inferior."
#: editor/plugins/spatial_editor_plugin.cpp
-msgid "Bottom"
-msgstr "Abajo"
-
-#: editor/plugins/spatial_editor_plugin.cpp
msgid "Left View."
msgstr "Vista Izquierda."
#: editor/plugins/spatial_editor_plugin.cpp
-msgid "Left"
-msgstr "Izquierda"
-
-#: editor/plugins/spatial_editor_plugin.cpp
msgid "Right View."
msgstr "Vista Derecha."
#: editor/plugins/spatial_editor_plugin.cpp
-msgid "Right"
-msgstr "Derecha"
-
-#: editor/plugins/spatial_editor_plugin.cpp
msgid "Front View."
msgstr "Vista Frontal."
#: editor/plugins/spatial_editor_plugin.cpp
-msgid "Front"
-msgstr "Frente"
-
-#: editor/plugins/spatial_editor_plugin.cpp
msgid "Rear View."
msgstr "Vista Posterior."
#: editor/plugins/spatial_editor_plugin.cpp
-msgid "Rear"
-msgstr "Detrás"
-
-#: editor/plugins/spatial_editor_plugin.cpp
msgid "Align Transform with View"
msgstr "Alinear la Transformación con la Vista"
@@ -8223,6 +8332,11 @@ msgid "View Portal Culling"
msgstr "Ver Eliminación de Portales"
#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "View Occlusion Culling"
+msgstr "Ver Eliminación de Portales"
+
+#: editor/plugins/spatial_editor_plugin.cpp
#: modules/gridmap/grid_map_editor_plugin.cpp
msgid "Settings..."
msgstr "Configuración..."
@@ -8288,8 +8402,9 @@ msgid "Post"
msgstr "Posterior"
#: editor/plugins/spatial_editor_plugin.cpp
-msgid "Nameless gizmo"
-msgstr "Gizmo sin nombre"
+#, fuzzy
+msgid "Unnamed Gizmo"
+msgstr "Proyecto Sin Nombre"
#: editor/plugins/sprite_editor_plugin.cpp
msgid "Create Mesh2D"
@@ -8747,6 +8862,9 @@ msgid ""
"Select a theme type from the list to edit its items.\n"
"You can add a custom type or import a type with its items from another theme."
msgstr ""
+"Selecciona un Theme de la lista para editar sus propiedades.\n"
+"Puedes añadir un Theme personalizado o importar un Theme con sus propiedades "
+"desde otro Theme."
#: editor/plugins/theme_editor_plugin.cpp
msgid "Remove All Color Items"
@@ -8777,6 +8895,8 @@ msgid ""
"This theme type is empty.\n"
"Add more items to it manually or by importing from another theme."
msgstr ""
+"Este Theme está vacío.\n"
+"Añade más propiedades manualmente o impórtalas desde otro Theme."
#: editor/plugins/theme_editor_plugin.cpp
msgid "Add Color Item"
@@ -11567,15 +11687,15 @@ msgstr "snake_case a PascalCase"
#: editor/rename_dialog.cpp
msgid "Case"
-msgstr "Mayús./Minús."
+msgstr "Mayus./Minus."
#: editor/rename_dialog.cpp
msgid "To Lowercase"
-msgstr "A minúsculas"
+msgstr "A Minúsculas"
#: editor/rename_dialog.cpp
msgid "To Uppercase"
-msgstr "A mayúsculas"
+msgstr "A Mayúsculas"
#: editor/rename_dialog.cpp
msgid "Reset"
@@ -12417,14 +12537,22 @@ msgid "Change Ray Shape Length"
msgstr "Cambiar Longitud de la Forma del Rayo"
#: editor/spatial_editor_gizmos.cpp
-#, fuzzy
msgid "Set Room Point Position"
-msgstr "Establecer Posición de Punto de Curva"
+msgstr "Establecer Posición del Room Point"
#: editor/spatial_editor_gizmos.cpp
-#, fuzzy
msgid "Set Portal Point Position"
-msgstr "Establecer Posición de Punto de Curva"
+msgstr "Establecer Posición del Portal Point"
+
+#: editor/spatial_editor_gizmos.cpp
+#, fuzzy
+msgid "Set Occluder Sphere Radius"
+msgstr "Cambiar Radio de la Forma del Cilindro"
+
+#: editor/spatial_editor_gizmos.cpp
+#, fuzzy
+msgid "Set Occluder Sphere Position"
+msgstr "Establecer Posición de Entrada de Curva"
#: modules/csg/csg_gizmos.cpp
msgid "Change Cylinder Radius"
@@ -12711,6 +12839,11 @@ msgstr "Trazar lightmaps"
msgid "Class name can't be a reserved keyword"
msgstr "El nombre de la clase no puede ser una palabra reservada"
+#: modules/mono/csharp_script.cpp
+#, fuzzy
+msgid "Build Solution"
+msgstr "Rellenar Selección"
+
#: modules/mono/mono_gd/gd_mono_utils.cpp
msgid "End of inner exception stack trace"
msgstr "Fin del reporte de la pila de excepciones"
@@ -13197,70 +13330,70 @@ msgstr "Buscar en VisualScript"
msgid "Get %s"
msgstr "Obtener %s"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Package name is missing."
msgstr "Falta el nombre del paquete."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Package segments must be of non-zero length."
msgstr "Los segmentos del paquete deben ser de largo no nulo."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "The character '%s' is not allowed in Android application package names."
msgstr ""
"El carácter '%s' no está permitido en nombres de paquete de aplicación "
"Android."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "A digit cannot be the first character in a package segment."
msgstr "Un dígito no puede ser el primer carácter en un segmento de paquete."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "The character '%s' cannot be the first character in a package segment."
msgstr ""
"El carácter '%s' no puede ser el primer carácter en un segmento de paquete."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "The package must have at least one '.' separator."
msgstr "El paquete debe tener al menos un '.' como separador."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Select device from the list"
msgstr "Seleccionar dispositivo de la lista"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Running on %s"
msgstr "Ejecutar en %s"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Exporting APK..."
msgstr "Exportar APK..."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Uninstalling..."
msgstr "Desinstalando..."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Installing to device, please wait..."
msgstr "Instalando en el dispositivo, espera por favor..."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Could not install to device: %s"
msgstr "No se pudo instalar en el dispositivo: %s"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Running on device..."
msgstr "Ejecutando en el dispositivo..."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Could not execute on device."
msgstr "No se ha podido ejecutar en el dispositivo."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Unable to find the 'apksigner' tool."
msgstr "No se pudo encontrar la herramienta 'apksigner'."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Android build template not installed in the project. Install it from the "
"Project menu."
@@ -13268,7 +13401,7 @@ msgstr ""
"La plantilla de exportación de Android no esta instalada en el proyecto. "
"Instalala desde el menú de Proyecto."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Either Debug Keystore, Debug User AND Debug Password settings must be "
"configured OR none of them."
@@ -13276,12 +13409,12 @@ msgstr ""
"Deben configurarse los ajustes de Depuración de Claves, Depuración de "
"Usuarios Y Depuración de Contraseñas O ninguno de ellos."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Debug keystore not configured in the Editor Settings nor in the preset."
msgstr ""
"Debug keystore no configurada en Configuración del Editor ni en el preset."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Either Release Keystore, Release User AND Release Password settings must be "
"configured OR none of them."
@@ -13289,57 +13422,57 @@ msgstr ""
"Deben configurarse los ajustes de Liberación del Almacén de Claves, "
"Liberación del Usuario Y Liberación de la Contraseña O ninguno de ellos."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Release keystore incorrectly configured in the export preset."
msgstr ""
"Release keystore no está configurado correctamente en el preset de "
"exportación."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "A valid Android SDK path is required in Editor Settings."
msgstr ""
"Se requiere una ruta válida del SDK de Android en la Configuración del "
"Editor."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Invalid Android SDK path in Editor Settings."
msgstr "Ruta del SDK de Android inválida en la Configuración del Editor."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Missing 'platform-tools' directory!"
msgstr "¡No se encontró el directorio 'platform-tools'!"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Unable to find Android SDK platform-tools' adb command."
msgstr ""
"No se pudo encontrar el comando adb de las herramientas de la plataforma SDK "
"de Android."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Please check in the Android SDK directory specified in Editor Settings."
msgstr ""
"Por favor, comprueba el directorio del SDK de Android especificado en la "
"Configuración del Editor."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Missing 'build-tools' directory!"
msgstr "¡No se encontró el directorio 'build-tools'!"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Unable to find Android SDK build-tools' apksigner command."
msgstr ""
"No se pudo encontrar el comando apksigner de las herramientas de "
"construcción del SDK de Android."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Invalid public key for APK expansion."
msgstr "Clave pública inválida para la expansión de APK."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Invalid package name:"
msgstr "Nombre de paquete inválido:"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Invalid \"GodotPaymentV3\" module included in the \"android/modules\" "
"project setting (changed in Godot 3.2.2).\n"
@@ -13347,37 +13480,22 @@ msgstr ""
"El módulo \"GodotPaymentV3\" incluido en los ajustes del proyecto \"android/"
"modules\" es inválido (cambiado en Godot 3.2.2).\n"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "\"Use Custom Build\" must be enabled to use the plugins."
msgstr "\"Use Custom Build\" debe estar activado para usar los plugins."
-#: platform/android/export/export.cpp
-msgid ""
-"\"Degrees Of Freedom\" is only valid when \"Xr Mode\" is \"Oculus Mobile VR"
-"\"."
-msgstr ""
-"\"Degrees Of Freedom\" sólo es válido cuando \"Xr Mode\" es \"Oculus Mobile "
-"VR\"."
-
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"\"Hand Tracking\" is only valid when \"Xr Mode\" is \"Oculus Mobile VR\"."
msgstr ""
"\"Hand Tracking\" sólo es válido cuando \"Xr Mode\" es \"Oculus Mobile VR\"."
-#: platform/android/export/export.cpp
-msgid ""
-"\"Focus Awareness\" is only valid when \"Xr Mode\" is \"Oculus Mobile VR\"."
-msgstr ""
-"\"Focus Awareness\" sólo es válido cuando \"Xr Mode\" es \"Oculus Mobile VR"
-"\"."
-
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "\"Export AAB\" is only valid when \"Use Custom Build\" is enabled."
msgstr ""
"\"Export AAB\" sólo es válido cuando \"Use Custom Build\" está activado."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"'apksigner' could not be found.\n"
"Please check the command is available in the Android SDK build-tools "
@@ -13389,52 +13507,52 @@ msgstr ""
"SDK build-tools.\n"
"El resultado %s es sin firma."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Signing debug %s..."
msgstr "Firma de depuración %s..."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Signing release %s..."
msgstr "Firmando liberación %s..."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Could not find keystore, unable to export."
msgstr "No se pudo encontrar la keystore, no se puedo exportar."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "'apksigner' returned with error #%d"
msgstr "'apksigner' ha retornado con error #%d"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Verifying %s..."
msgstr "Verificando %s..."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "'apksigner' verification of %s failed."
msgstr "La verificación de 'apksigner' de %s ha fallado."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Exporting for Android"
msgstr "Exportando para Android"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Invalid filename! Android App Bundle requires the *.aab extension."
msgstr ""
"¡Nombre del archivo inválido! Android App Bundle requiere la extensión *.aab."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "APK Expansion not compatible with Android App Bundle."
msgstr "La Expansión APK no es compatible con Android App Bundle."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Invalid filename! Android APK requires the *.apk extension."
msgstr "¡Nombre de archivo inválido! Android APK requiere la extensión *.apk."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Unsupported export format!\n"
msgstr "¡Formato de exportación no compatible!\n"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Trying to build from a custom built template, but no version info for it "
"exists. Please reinstall from the 'Project' menu."
@@ -13443,7 +13561,7 @@ msgstr ""
"información de la versión para ello. Por favor, reinstala desde el menú "
"'Proyecto'."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Android build version mismatch:\n"
" Template installed: %s\n"
@@ -13456,26 +13574,26 @@ msgstr ""
"Por favor, reinstala la plantilla de compilación de Android desde el menú "
"'Proyecto'."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Unable to overwrite res://android/build/res/*.xml files with project name"
msgstr ""
"No se puede sobrescribir los archivos res://android/build/res/*.xml con el "
"nombre del proyecto"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Could not export project files to gradle project\n"
msgstr "No se pueden exportar los archivos del proyecto a un proyecto gradle\n"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Could not write expansion package file!"
msgstr "¡No se pudo escribir el archivo del paquete de expansión!"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Building Android Project (gradle)"
msgstr "Construir Proyecto Android (gradle)"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Building of Android project failed, check output for the error.\n"
"Alternatively visit docs.godotengine.org for Android build documentation."
@@ -13484,11 +13602,11 @@ msgstr ""
"También puedes visitar docs.godotengine.org para consultar la documentación "
"de compilación de Android."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Moving output"
msgstr "Moviendo salida"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Unable to copy and rename export file, check gradle project directory for "
"outputs."
@@ -13496,15 +13614,15 @@ msgstr ""
"No se puede copiar y renombrar el archivo de exportación, comprueba el "
"directorio del proyecto de gradle para ver los resultados."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Package not found: %s"
msgstr "Paquete no encontrado:% s"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Creating APK..."
msgstr "Creando APK..."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Could not find template APK to export:\n"
"%s"
@@ -13512,7 +13630,7 @@ msgstr ""
"No se pudo encontrar la plantilla APK para exportar:\n"
"%s"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Missing libraries in the export template for the selected architectures: "
"%s.\n"
@@ -13524,19 +13642,19 @@ msgstr ""
"Por favor, construya una plantilla con todas las bibliotecas necesarias, o "
"desmarque las arquitecturas que faltan en el preajuste de exportación."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Adding files..."
msgstr "Añadiendo archivos ..."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Could not export project files"
msgstr "No se pudieron exportar los archivos del proyecto"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Aligning APK..."
msgstr "Alineando APK..."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Could not unzip temporary unaligned APK."
msgstr "No se pudo descomprimir el APK no alineado temporal."
@@ -14090,6 +14208,14 @@ msgstr ""
"NavigationMeshInstance debe ser hijo o nieto de un nodo Navigation. Ya que "
"sólo proporciona los datos de navegación."
+#: scene/3d/occluder.cpp
+msgid "No shape is set."
+msgstr ""
+
+#: scene/3d/occluder.cpp
+msgid "Only uniform scales are supported."
+msgstr ""
+
#: scene/3d/particles.cpp
msgid ""
"GPU-based particles are not supported by the GLES2 video driver.\n"
@@ -14229,36 +14355,50 @@ msgid ""
"RoomList path is invalid.\n"
"Please check the RoomList branch has been assigned in the RoomManager."
msgstr ""
+"La ruta del RoomList no es válida.\n"
+"Por favor, comprueba que la rama de la RoomList ha sido asignada al "
+"RoomManager."
#: scene/3d/room_manager.cpp
msgid "RoomList contains no Rooms, aborting."
-msgstr ""
+msgstr "La RoomList no contiene Rooms, abortando."
#: scene/3d/room_manager.cpp
msgid "Misnamed nodes detected, check output log for details. Aborting."
msgstr ""
+"Nodos con nombres incorrectos detectados, comprueba la salida del Log para "
+"más detalles. Abortando."
#: scene/3d/room_manager.cpp
msgid "Portal link room not found, check output log for details."
msgstr ""
+"No se encuentra Portal link room, comprueba la salida del Log para más "
+"detalles."
#: scene/3d/room_manager.cpp
msgid ""
"Portal autolink failed, check output log for details.\n"
"Check the portal is facing outwards from the source room."
msgstr ""
+"Fallo en el Portal autolink, comprueba la salida del Log para más detalles.\n"
+"Comprueba si el portal está mirando hacia fuera de la room de origen."
#: scene/3d/room_manager.cpp
msgid ""
"Room overlap detected, cameras may work incorrectly in overlapping area.\n"
"Check output log for details."
msgstr ""
+"Detectada superposición de la Room, las cámaras pueden funcionar "
+"incorrectamente en las zonas donde hay superposición.\n"
+"Comrpueba la salida del Log para más detalles."
#: scene/3d/room_manager.cpp
msgid ""
"Error calculating room bounds.\n"
"Ensure all rooms contain geometry or manual bounds."
msgstr ""
+"Error al calcular los límites de la room.\n"
+"Asegúrate de que todas las rooms contienen geometría o límites manuales."
#: scene/3d/soft_body.cpp
msgid "This body will be ignored until you set a mesh."
@@ -14426,6 +14566,14 @@ msgstr "Debe tener una extensión válida."
msgid "Enable grid minimap."
msgstr "Activar minimapa de cuadrícula."
+#: scene/gui/nine_patch_rect.cpp
+msgid ""
+"The Tile and Tile Fit options for Axis Stretch properties are only effective "
+"when using the GLES3 rendering backend.\n"
+"The GLES2 backend is currently in use, so these modes will act like Stretch "
+"instead."
+msgstr ""
+
#: scene/gui/popup.cpp
msgid ""
"Popups will hide by default unless you call popup() or any of the popup*() "
@@ -14481,6 +14629,10 @@ msgstr ""
"El tamaño del Viewport debe ser mayor que 0 para poder renderizar cualquier "
"cosa."
+#: scene/resources/occluder_shape.cpp
+msgid "OccluderShapeSphere Set Spheres"
+msgstr ""
+
#: scene/resources/visual_shader_nodes.cpp
msgid ""
"The sampler port is connected but not used. Consider changing the source to "
@@ -14539,6 +14691,41 @@ msgstr "Asignación a uniform."
msgid "Constants cannot be modified."
msgstr "Las constantes no pueden modificarse."
+#~ msgid "Make Rest Pose (From Bones)"
+#~ msgstr "Crear Pose de Descanso (Desde Huesos)"
+
+#~ msgid "Bottom"
+#~ msgstr "Abajo"
+
+#~ msgid "Left"
+#~ msgstr "Izquierda"
+
+#~ msgid "Right"
+#~ msgstr "Derecha"
+
+#~ msgid "Front"
+#~ msgstr "Frente"
+
+#~ msgid "Rear"
+#~ msgstr "Detrás"
+
+#~ msgid "Nameless gizmo"
+#~ msgstr "Gizmo sin nombre"
+
+#~ msgid ""
+#~ "\"Degrees Of Freedom\" is only valid when \"Xr Mode\" is \"Oculus Mobile "
+#~ "VR\"."
+#~ msgstr ""
+#~ "\"Degrees Of Freedom\" sólo es válido cuando \"Xr Mode\" es \"Oculus "
+#~ "Mobile VR\"."
+
+#~ msgid ""
+#~ "\"Focus Awareness\" is only valid when \"Xr Mode\" is \"Oculus Mobile VR"
+#~ "\"."
+#~ msgstr ""
+#~ "\"Focus Awareness\" sólo es válido cuando \"Xr Mode\" es \"Oculus Mobile "
+#~ "VR\"."
+
#~ msgid "Package Contents:"
#~ msgstr "Contenido del Paquete:"
@@ -16735,9 +16922,6 @@ msgstr "Las constantes no pueden modificarse."
#~ msgid "Images:"
#~ msgstr "Imágenes:"
-#~ msgid "Group"
-#~ msgstr "Grupo"
-
#~ msgid "Sample Conversion Mode: (.wav files):"
#~ msgstr "Modo de conversión de muestreo: (archivos .wav):"
diff --git a/editor/translations/es_AR.po b/editor/translations/es_AR.po
index d5c955a347..0decc83e9f 100644
--- a/editor/translations/es_AR.po
+++ b/editor/translations/es_AR.po
@@ -17,12 +17,13 @@
# Cristian Yepez <cristianyepez@gmail.com>, 2020.
# Skarline <lihue-molina@hotmail.com>, 2020.
# Joakker <joaquinandresleon108@gmail.com>, 2020.
+# M3CG <cgmario1999@gmail.com>, 2021.
msgid ""
msgstr ""
"Project-Id-Version: Godot Engine editor\n"
"POT-Creation-Date: \n"
-"PO-Revision-Date: 2021-08-06 06:47+0000\n"
-"Last-Translator: Lisandro Lorea <lisandrolorea@gmail.com>\n"
+"PO-Revision-Date: 2021-09-06 16:32+0000\n"
+"Last-Translator: M3CG <cgmario1999@gmail.com>\n"
"Language-Team: Spanish (Argentina) <https://hosted.weblate.org/projects/"
"godot-engine/godot/es_AR/>\n"
"Language: es_AR\n"
@@ -30,7 +31,7 @@ msgstr ""
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=n != 1;\n"
-"X-Generator: Weblate 4.8-dev\n"
+"X-Generator: Weblate 4.8.1-dev\n"
#: core/math/expression.cpp modules/gdscript/gdscript_functions.cpp
#: modules/visual_script/visual_script_builtin_funcs.cpp
@@ -380,15 +381,13 @@ msgstr "Insertar Anim"
#. TRANSLATORS: This describes the target of new animation track, will be inserted into another string.
#: editor/animation_track_editor.cpp
-#, fuzzy
msgid "node '%s'"
-msgstr "No se puede abrir '%s'."
+msgstr "nodo '%s'"
#. TRANSLATORS: This describes the target of new animation track, will be inserted into another string.
#: editor/animation_track_editor.cpp
-#, fuzzy
msgid "animation"
-msgstr "Animación"
+msgstr "animación"
#: editor/animation_track_editor.cpp
msgid "AnimationPlayer can't animate itself, only other players."
@@ -396,9 +395,8 @@ msgstr "Un AnimationPlayer no puede animarse a sí mismo, solo a otros players."
#. TRANSLATORS: This describes the target of new animation track, will be inserted into another string.
#: editor/animation_track_editor.cpp
-#, fuzzy
msgid "property '%s'"
-msgstr "No existe la propiedad '%s'."
+msgstr "propiedad '%s'"
#: editor/animation_track_editor.cpp
msgid "Anim Create & Insert"
@@ -1038,7 +1036,7 @@ msgstr ""
msgid "Dependencies"
msgstr "Dependencias"
-#: editor/dependency_editor.cpp
+#: editor/dependency_editor.cpp editor/editor_resource_picker.cpp
msgid "Resource"
msgstr "Recursos"
@@ -1078,18 +1076,16 @@ msgid "Owners Of:"
msgstr "Dueños De:"
#: editor/dependency_editor.cpp
-#, fuzzy
msgid ""
"Remove the selected files from the project? (Cannot be undone.)\n"
"Depending on your filesystem configuration, the files will either be moved "
"to the system trash or deleted permanently."
msgstr ""
-"¿Eliminar los archivos seleccionados del proyecto? (irreversible)\n"
-"Podés encontrar los archivos eliminados en la papelera de reciclaje del "
-"sistema para restaurarlos."
+"¿Eliminar los archivos seleccionados del proyecto? (No se puede deshacer).\n"
+"Dependiendo de la configuración de tu sistema de archivos, los archivos se "
+"moverán a la papelera del sistema o se eliminarán permanentemente."
#: editor/dependency_editor.cpp
-#, fuzzy
msgid ""
"The files being removed are required by other resources in order for them to "
"work.\n"
@@ -1097,11 +1093,11 @@ msgid ""
"Depending on your filesystem configuration, the files will either be moved "
"to the system trash or deleted permanently."
msgstr ""
-"Los archivos que se están removiendo son requeridos por otros recursos para "
+"Los archivos que se están eliminando son requeridos por otros recursos para "
"funcionar.\n"
-"¿Eliminarlos de todos modos? (irreversible)\n"
-"Podés encontrar los archivos eliminados en la papelera de reciclaje del "
-"sistema para restaurarlos."
+"¿Eliminarlos de todos modos? (No se puede deshacer).\n"
+"Dependiendo de la configuración de tu sistema de archivos, los archivos se "
+"moverán a la papelera del sistema o se eliminarán permanentemente."
#: editor/dependency_editor.cpp
msgid "Cannot remove:"
@@ -1271,9 +1267,10 @@ msgid "Licenses"
msgstr "Licencias"
#: editor/editor_asset_installer.cpp
-#, fuzzy
msgid "Error opening asset file for \"%s\" (not in ZIP format)."
-msgstr "Error al abrir el archivo de paquete (no esta en formato ZIP)."
+msgstr ""
+"Error al abrir el archivo de assets para \"%s\" (no se encuentra en formato "
+"ZIP)."
#: editor/editor_asset_installer.cpp
msgid "%s (already exists)"
@@ -1282,10 +1279,12 @@ msgstr "%s (ya existe)"
#: editor/editor_asset_installer.cpp
msgid "Contents of asset \"%s\" - %d file(s) conflict with your project:"
msgstr ""
+"Contenido del asset \"%s\" - %d archivo(s) en conflicto con tu proyecto:"
#: editor/editor_asset_installer.cpp
msgid "Contents of asset \"%s\" - No files conflict with your project:"
msgstr ""
+"Contenido del asset \"%s\" - No hay archivos en conflicto con tu proyecto:"
#: editor/editor_asset_installer.cpp
msgid "Uncompressing Assets"
@@ -1699,13 +1698,13 @@ msgstr ""
"Activá Import Pvrtc' en la Ajustes del Proyecto, o desactiva 'Driver "
"Fallback Enabled'."
-#: editor/editor_export.cpp platform/android/export/export.cpp
+#: editor/editor_export.cpp platform/android/export/export_plugin.cpp
#: platform/iphone/export/export.cpp platform/javascript/export/export.cpp
#: platform/osx/export/export.cpp platform/uwp/export/export.cpp
msgid "Custom debug template not found."
msgstr "Plantilla debug personalizada no encontrada."
-#: editor/editor_export.cpp platform/android/export/export.cpp
+#: editor/editor_export.cpp platform/android/export/export_plugin.cpp
#: platform/iphone/export/export.cpp platform/javascript/export/export.cpp
#: platform/osx/export/export.cpp platform/uwp/export/export.cpp
msgid "Custom release template not found."
@@ -1782,6 +1781,8 @@ msgid ""
"Allows to configure import settings for individual assets. Requires the "
"FileSystem dock to function."
msgstr ""
+"Permite ajustar los parámetros de importación para assets individuales. "
+"Requiere del panel Sistema de Archivos para funcionar."
#: editor/editor_feature_profile.cpp
msgid "(current)"
@@ -1793,7 +1794,7 @@ msgstr "(ninguno)"
#: editor/editor_feature_profile.cpp
msgid "Remove currently selected profile, '%s'? Cannot be undone."
-msgstr ""
+msgstr "¿Eliminar el perfil seleccionado, '%s'? No se puede deshacer."
#: editor/editor_feature_profile.cpp
msgid "Profile must be a valid filename and must not contain '.'"
@@ -1897,6 +1898,7 @@ msgstr "Opciones Extra:"
#: editor/editor_feature_profile.cpp
msgid "Create or import a profile to edit available classes and properties."
msgstr ""
+"Crear o importar un perfil para editar las clases y propiedades disponibles."
#: editor/editor_feature_profile.cpp
msgid "New profile name:"
@@ -2085,7 +2087,7 @@ msgstr ""
msgid "(Re)Importing Assets"
msgstr "(Re)Importando Assets"
-#: editor/editor_help.cpp editor/plugins/spatial_editor_plugin.cpp
+#: editor/editor_help.cpp
msgid "Top"
msgstr "Cima"
@@ -2322,6 +2324,9 @@ msgid ""
"Update Continuously is enabled, which can increase power usage. Click to "
"disable it."
msgstr ""
+"Gira cuando la ventana del editor se redibuja.\n"
+"Update Continuously está habilitado, lo que puede aumentar el consumo "
+"eléctrico. Click para desactivarlo."
#: editor/editor_node.cpp
msgid "Spins when the editor window redraws."
@@ -2561,13 +2566,16 @@ msgid ""
"The current scene has no root node, but %d modified external resource(s) "
"were saved anyway."
msgstr ""
+"La escena actual no contiene un nodo raíz, pero %d resource(s) externo(s) "
+"modificado(s) fueron guardados de todos modos."
#: editor/editor_node.cpp
-#, fuzzy
msgid ""
"A root node is required to save the scene. You can add a root node using the "
"Scene tree dock."
-msgstr "Se necesita un nodo raíz para guardar la escena."
+msgstr ""
+"Se requiere un nodo raíz para guardar la escena. Podés agregar un nodo raíz "
+"usando el dock de árbol de Escenas."
#: editor/editor_node.cpp
msgid "Save Scene As..."
@@ -2598,6 +2606,32 @@ msgid "Current scene not saved. Open anyway?"
msgstr "Escena actual sin guardar. Abrir de todos modos?"
#: editor/editor_node.cpp
+msgid "Can't undo while mouse buttons are pressed."
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "Nothing to undo."
+msgstr ""
+
+#: editor/editor_node.cpp
+#, fuzzy
+msgid "Undo: %s"
+msgstr "Deshacer"
+
+#: editor/editor_node.cpp
+msgid "Can't redo while mouse buttons are pressed."
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "Nothing to redo."
+msgstr ""
+
+#: editor/editor_node.cpp
+#, fuzzy
+msgid "Redo: %s"
+msgstr "Rehacer"
+
+#: editor/editor_node.cpp
msgid "Can't reload a scene that was never saved."
msgstr "No se puede volver a cargar una escena que nunca se guardó."
@@ -3240,9 +3274,8 @@ msgid "Install from file"
msgstr "Instalar desde archivo"
#: editor/editor_node.cpp
-#, fuzzy
msgid "Select android sources file"
-msgstr "Seleccioná una Mesh de Origen:"
+msgstr "Seleccionar archivo de fuentes de Android"
#: editor/editor_node.cpp
msgid ""
@@ -3292,6 +3325,11 @@ msgid "Merge With Existing"
msgstr "Mergear Con Existentes"
#: editor/editor_node.cpp
+#, fuzzy
+msgid "Apply MeshInstance Transforms"
+msgstr "Cambiar Transform de Anim"
+
+#: editor/editor_node.cpp
msgid "Open & Run a Script"
msgstr "Abrir y Correr un Script"
@@ -3362,9 +3400,8 @@ msgid "No sub-resources found."
msgstr "No se encontró ningún sub-recurso."
#: editor/editor_path.cpp
-#, fuzzy
msgid "Open a list of sub-resources."
-msgstr "No se encontró ningún sub-recurso."
+msgstr "Abra una lista de sub-recursos."
#: editor/editor_plugin.cpp
msgid "Creating Mesh Previews"
@@ -3409,9 +3446,8 @@ msgid "Measure:"
msgstr "Medida:"
#: editor/editor_profiler.cpp
-#, fuzzy
msgid "Frame Time (ms)"
-msgstr "Duración de Frame (seg)"
+msgstr "Duración de Frame (ms)"
#: editor/editor_profiler.cpp
msgid "Average Time (ms)"
@@ -3442,6 +3478,12 @@ msgid ""
"functions called by that function.\n"
"Use this to find individual functions to optimize."
msgstr ""
+"Inclusivo: Incluye el tiempo de otras funciones llamadas por esta función.\n"
+"Usalo para detectar cuellos de botella.\n"
+"\n"
+"Propio: Sólo contabiliza el tiempo empleado en la propia función, no en "
+"otras funciones llamadas por esa función.\n"
+"Utilizalo para buscar funciones individuales que optimizar."
#: editor/editor_profiler.cpp
msgid "Frame #:"
@@ -3544,6 +3586,10 @@ msgstr ""
"El recurso seleccionado (%s) no concuerda con ningún tipo esperado para esta "
"propiedad (%s)."
+#: editor/editor_resource_picker.cpp
+msgid "Quick Load"
+msgstr ""
+
#: editor/editor_resource_picker.cpp editor/property_editor.cpp
msgid "Make Unique"
msgstr "Convertir en Unico"
@@ -3614,11 +3660,10 @@ msgid "Did you forget the '_run' method?"
msgstr "Te olvidaste del método '_run'?"
#: editor/editor_spin_slider.cpp
-#, fuzzy
msgid "Hold %s to round to integers. Hold Shift for more precise changes."
msgstr ""
-"Mantené pulsado Ctrl para redondear a enteros. Mantené pulsado Shift para "
-"cambios más precisos."
+"Mantené %s para redondear a números enteros. Mantené Mayús para cambios más "
+"precisos."
#: editor/editor_sub_scene.cpp
msgid "Select Node(s) to Import"
@@ -3710,10 +3755,9 @@ msgid "Error getting the list of mirrors."
msgstr "Error al obtener la lista de mirrors."
#: editor/export_template_manager.cpp
-#, fuzzy
msgid "Error parsing JSON with the list of mirrors. Please report this issue!"
msgstr ""
-"Error al parsear el JSON de la lista de mirrors. ¡Por favor reportá este "
+"Error al parsear el JSON con la lista de mirrors. ¡Por favor, reportá este "
"problema!"
#: editor/export_template_manager.cpp
@@ -3771,24 +3815,21 @@ msgid "SSL Handshake Error"
msgstr "Error de Handshake SSL"
#: editor/export_template_manager.cpp
-#, fuzzy
msgid "Can't open the export templates file."
-msgstr "No se puede abir el zip de plantillas de exportación."
+msgstr "No se puede abrir el archivo de plantillas de exportación."
#: editor/export_template_manager.cpp
-#, fuzzy
msgid "Invalid version.txt format inside the export templates file: %s."
-msgstr "Formato de version.txt inválido dentro de plantillas: %s."
+msgstr "Formato de version.txt inválido dentro de archivo de plantillas: %s."
#: editor/export_template_manager.cpp
-#, fuzzy
msgid "No version.txt found inside the export templates file."
-msgstr "No se encontro ningún version.txt dentro de las plantillas."
+msgstr ""
+"No se ha encontrado el archivo version.txt dentro del archivo de plantillas."
#: editor/export_template_manager.cpp
-#, fuzzy
msgid "Error creating path for extracting templates:"
-msgstr "Error creando rutas para las plantillas:"
+msgstr "Error al crear la ruta para extraer las plantillas:"
#: editor/export_template_manager.cpp
msgid "Extracting Export Templates"
@@ -3799,9 +3840,8 @@ msgid "Importing:"
msgstr "Importando:"
#: editor/export_template_manager.cpp
-#, fuzzy
msgid "Remove templates for the version '%s'?"
-msgstr "Quitar plantilla version '%s'?"
+msgstr "¿Quitar plantillas para la versión '%s'?"
#: editor/export_template_manager.cpp
msgid "Uncompressing Android Build Sources"
@@ -3833,29 +3873,28 @@ msgstr "Abrir Carpeta"
#: editor/export_template_manager.cpp
msgid "Open the folder containing installed templates for the current version."
msgstr ""
+"Abra la carpeta que contiene las plantillas instaladas para la versión "
+"actual."
#: editor/export_template_manager.cpp
msgid "Uninstall"
msgstr "Desinstalar"
#: editor/export_template_manager.cpp
-#, fuzzy
msgid "Uninstall templates for the current version."
-msgstr "Valor inicial para el contador"
+msgstr "Desinstalar las plantillas de la versión actual."
#: editor/export_template_manager.cpp
msgid "Download from:"
msgstr "Descargar desde:"
#: editor/export_template_manager.cpp
-#, fuzzy
msgid "Open in Web Browser"
-msgstr "Ejecutar en el Navegador"
+msgstr "Abrir en el Navegador Web"
#: editor/export_template_manager.cpp
-#, fuzzy
msgid "Copy Mirror URL"
-msgstr "Copiar Error"
+msgstr "Copiar URL del Mirror"
#: editor/export_template_manager.cpp
msgid "Download and Install"
@@ -3866,6 +3905,8 @@ msgid ""
"Download and install templates for the current version from the best "
"possible mirror."
msgstr ""
+"Descargar e instalar plantillas para la versión actual de el mejor mirror "
+"posible."
#: editor/export_template_manager.cpp
msgid "Official export templates aren't available for development builds."
@@ -3911,6 +3952,8 @@ msgid ""
"The templates will continue to download.\n"
"You may experience a short editor freeze when they finish."
msgstr ""
+"Las plantillas seguirán descargándose.\n"
+"Puede que el editor se frice brevemente cuando terminen."
#: editor/filesystem_dock.cpp
msgid "Favorites"
@@ -5504,7 +5547,7 @@ msgstr "Archivo ZIP de Assets"
#: editor/plugins/audio_stream_editor_plugin.cpp
msgid "Audio Preview Play/Pause"
-msgstr ""
+msgstr "Reproducir/Pausar Previsualización de Audio"
#: editor/plugins/baked_lightmap_editor_plugin.cpp
msgid ""
@@ -5664,6 +5707,18 @@ msgid "Move CanvasItem \"%s\" to (%d, %d)"
msgstr "Mover CanvasItem \"%s\" a (%d, %d)"
#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Locked"
+msgstr "Bloqueo Seleccionado"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Grouped"
+msgstr "Grupo"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
msgid ""
"Children of containers have their anchors and margins values overridden by "
"their parent."
@@ -5765,13 +5820,13 @@ msgstr "Cambiar Anclas"
#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp
-#, fuzzy
msgid ""
"Project Camera Override\n"
"Overrides the running project's camera with the editor viewport camera."
msgstr ""
-"Reemplazar Cámara del Juego\n"
-"Reemplaza la cámara del juego con la cámara del viewport del editor."
+"Reemplazar Cámara del Proyecto\n"
+"Reemplaza la cámara del proyecto en ejecución con la cámara del viewport del "
+"editor."
#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp
@@ -5780,6 +5835,9 @@ msgid ""
"No project instance running. Run the project from the editor to use this "
"feature."
msgstr ""
+"Reemplazo de la Cámara de Proyecto\n"
+"No se está ejecutando ninguna instancia del proyecto. Ejecutá el proyecto "
+"desde el editor para utilizar esta función."
#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp
@@ -5847,31 +5905,27 @@ msgstr "Modo Seleccionar"
#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp
-#, fuzzy
msgid "Drag: Rotate selected node around pivot."
-msgstr "Quitar el nodo o transición seleccionado/a."
+msgstr "Arrastrar: Rotar el nodo seleccionado alrededor del pivote."
#: editor/plugins/canvas_item_editor_plugin.cpp
-#, fuzzy
msgid "Alt+Drag: Move selected node."
-msgstr "Alt+Arrastrae: Mover"
+msgstr "Alt+Arrastrar: Mover el nodo seleccionado"
#: editor/plugins/canvas_item_editor_plugin.cpp
-#, fuzzy
msgid "V: Set selected node's pivot position."
-msgstr "Quitar el nodo o transición seleccionado/a."
+msgstr "V: Establecer la posición de pivote del nodo seleccionado."
#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp
-#, fuzzy
msgid "Alt+RMB: Show list of all nodes at position clicked, including locked."
msgstr ""
-"Mostrar una lista de todos los objetos en la posicion cliqueada\n"
-"(igual que Alt+Click Der. en modo selección)."
+"Alt+Click Der.: Mostrar una lista de todos los nodos en la posición "
+"clickeada, incluyendo bloqueados."
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "RMB: Add node at position clicked."
-msgstr ""
+msgstr "Click Der.: Añadir un nodo en la posición clickeada."
#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp
@@ -6412,9 +6466,8 @@ msgid "Couldn't create a single convex collision shape."
msgstr "No se pudo crear una forma de colisión única."
#: editor/plugins/mesh_instance_editor_plugin.cpp
-#, fuzzy
msgid "Create Simplified Convex Shape"
-msgstr "Crear Forma Convexa Única"
+msgstr "Crear una Figura Convexa Simplificada"
#: editor/plugins/mesh_instance_editor_plugin.cpp
msgid "Create Single Convex Shape"
@@ -6451,9 +6504,8 @@ msgid "No mesh to debug."
msgstr "No hay meshes para depurar."
#: editor/plugins/mesh_instance_editor_plugin.cpp
-#, fuzzy
msgid "Mesh has no UV in layer %d."
-msgstr "El modelo no tiene UV en esta capa"
+msgstr "La malla no tiene UV en la capa %d."
#: editor/plugins/mesh_instance_editor_plugin.cpp
msgid "MeshInstance lacks a Mesh!"
@@ -6518,9 +6570,8 @@ msgstr ""
"Esta es la opción mas rápida (pero menos exacta) para detectar colisiones."
#: editor/plugins/mesh_instance_editor_plugin.cpp
-#, fuzzy
msgid "Create Simplified Convex Collision Sibling"
-msgstr "Crear Colisión Convexa Única Hermana"
+msgstr "Crear Colisión Convexa Simplificada Hermana"
#: editor/plugins/mesh_instance_editor_plugin.cpp
msgid ""
@@ -6528,20 +6579,23 @@ msgid ""
"This is similar to single collision shape, but can result in a simpler "
"geometry in some cases, at the cost of accuracy."
msgstr ""
+"Crea una forma de colisión convexa simplificada.\n"
+"Esto es similar a la forma de colisión única, pero puede resultar en una "
+"geometría más simple en algunos casos, a costa de precisión."
#: editor/plugins/mesh_instance_editor_plugin.cpp
msgid "Create Multiple Convex Collision Siblings"
msgstr "Crear Múltiples Colisiones Convexas como Nodos Hermanos"
#: editor/plugins/mesh_instance_editor_plugin.cpp
-#, fuzzy
msgid ""
"Creates a polygon-based collision shape.\n"
"This is a performance middle-ground between a single convex collision and a "
"polygon-based collision."
msgstr ""
"Crea una forma de colisión basada en polígonos.\n"
-"Esto está en un punto medio de rendimiento entre las dos opciones de arriba."
+"Esto es un punto medio de rendimiento entre una colisión convexa única y una "
+"colisión basada en polígonos."
#: editor/plugins/mesh_instance_editor_plugin.cpp
msgid "Create Outline Mesh..."
@@ -6608,7 +6662,13 @@ msgid "Remove Selected Item"
msgstr "Remover Item Seleccionado"
#: editor/plugins/mesh_library_editor_plugin.cpp
-msgid "Import from Scene"
+#, fuzzy
+msgid "Import from Scene (Ignore Transforms)"
+msgstr "Importar desde Escena"
+
+#: editor/plugins/mesh_library_editor_plugin.cpp
+#, fuzzy
+msgid "Import from Scene (Apply Transforms)"
msgstr "Importar desde Escena"
#: editor/plugins/mesh_library_editor_plugin.cpp
@@ -7187,24 +7247,30 @@ msgid "ResourcePreloader"
msgstr "ResourcePreloader"
#: editor/plugins/room_manager_editor_plugin.cpp
-#, fuzzy
msgid "Flip Portals"
-msgstr "Espejar Horizontalmente"
+msgstr "Invertir Portales"
#: editor/plugins/room_manager_editor_plugin.cpp
-#, fuzzy
msgid "Room Generate Points"
-msgstr "Conteo de Puntos Generados:"
+msgstr "Generar Puntos en la Room"
#: editor/plugins/room_manager_editor_plugin.cpp
-#, fuzzy
msgid "Generate Points"
msgstr "Conteo de Puntos Generados:"
#: editor/plugins/room_manager_editor_plugin.cpp
-#, fuzzy
msgid "Flip Portal"
-msgstr "Espejar Horizontalmente"
+msgstr "Invertir Portal"
+
+#: editor/plugins/room_manager_editor_plugin.cpp
+#, fuzzy
+msgid "Occluder Set Transform"
+msgstr "Reestablecer Transform"
+
+#: editor/plugins/room_manager_editor_plugin.cpp
+#, fuzzy
+msgid "Center Node"
+msgstr "Crear Nodo"
#: editor/plugins/root_motion_editor_plugin.cpp
msgid "AnimationTree has no path set to an AnimationPlayer"
@@ -7709,12 +7775,14 @@ msgid "Skeleton2D"
msgstr "Skeleton2D"
#: editor/plugins/skeleton_2d_editor_plugin.cpp
-msgid "Make Rest Pose (From Bones)"
-msgstr "Crear Pose de Descanso"
+#, fuzzy
+msgid "Reset to Rest Pose"
+msgstr "Setear Huesos a la Pose de Descanso"
#: editor/plugins/skeleton_2d_editor_plugin.cpp
-msgid "Set Bones to Rest Pose"
-msgstr "Setear Huesos a la Pose de Descanso"
+#, fuzzy
+msgid "Overwrite Rest Pose"
+msgstr "Sobreescribir"
#: editor/plugins/skeleton_editor_plugin.cpp
msgid "Create physical bones"
@@ -7741,6 +7809,71 @@ msgid "Perspective"
msgstr "Perspectiva"
#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Top Orthogonal"
+msgstr "Ortogonal"
+
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Top Perspective"
+msgstr "Perspectiva"
+
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Bottom Orthogonal"
+msgstr "Ortogonal"
+
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Bottom Perspective"
+msgstr "Perspectiva"
+
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Left Orthogonal"
+msgstr "Ortogonal"
+
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Right Perspective"
+msgstr "Perspectiva"
+
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Right Orthogonal"
+msgstr "Ortogonal"
+
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Front Orthogonal"
+msgstr "Ortogonal"
+
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Front Perspective"
+msgstr "Perspectiva"
+
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Rear Orthogonal"
+msgstr "Ortogonal"
+
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Rear Perspective"
+msgstr "Perspectiva"
+
+#. TRANSLATORS: This will be appended to the view name when Auto Orthogonal is enabled.
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid " [auto]"
+msgstr ""
+
+#. TRANSLATORS: This will be appended to the view name when Portal Occulusion is enabled.
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid " [portals active]"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
msgid "Transform Aborted."
msgstr "Transformación Abortada."
@@ -7767,20 +7900,17 @@ msgid "None"
msgstr "Ninguno"
#: editor/plugins/spatial_editor_plugin.cpp
-#, fuzzy
msgid "Rotate"
-msgstr "Estado"
+msgstr "Rotar"
#. TRANSLATORS: This refers to the movement that changes the position of an object.
#: editor/plugins/spatial_editor_plugin.cpp
-#, fuzzy
msgid "Translate"
-msgstr "Trasladar:"
+msgstr "Trasladar"
#: editor/plugins/spatial_editor_plugin.cpp
-#, fuzzy
msgid "Scale"
-msgstr "Escala:"
+msgstr "Escalar"
#: editor/plugins/spatial_editor_plugin.cpp
msgid "Scaling: "
@@ -7803,48 +7933,40 @@ msgid "Animation Key Inserted."
msgstr "Clave de Animación Insertada."
#: editor/plugins/spatial_editor_plugin.cpp
-#, fuzzy
msgid "Pitch:"
-msgstr "Altura"
+msgstr "Cabeceo:"
#: editor/plugins/spatial_editor_plugin.cpp
msgid "Yaw:"
-msgstr ""
+msgstr "Guiñada:"
#: editor/plugins/spatial_editor_plugin.cpp
-#, fuzzy
msgid "Size:"
-msgstr "Tamaño: "
+msgstr "Tamaño:"
#: editor/plugins/spatial_editor_plugin.cpp
-#, fuzzy
msgid "Objects Drawn:"
-msgstr "Objetos Dibujados"
+msgstr "Objetos Dibujados:"
#: editor/plugins/spatial_editor_plugin.cpp
-#, fuzzy
msgid "Material Changes:"
-msgstr "Cambios de Material"
+msgstr "Cambios de Material:"
#: editor/plugins/spatial_editor_plugin.cpp
-#, fuzzy
msgid "Shader Changes:"
-msgstr "Cambios de Shader"
+msgstr "Cambios de Shaders:"
#: editor/plugins/spatial_editor_plugin.cpp
-#, fuzzy
msgid "Surface Changes:"
-msgstr "Cambios de Superficie"
+msgstr "Cambios de Superficies:"
#: editor/plugins/spatial_editor_plugin.cpp
-#, fuzzy
msgid "Draw Calls:"
-msgstr "Llamadas de Dibujado"
+msgstr "Llamadas de Dibujado:"
#: editor/plugins/spatial_editor_plugin.cpp
-#, fuzzy
msgid "Vertices:"
-msgstr "Vértices"
+msgstr "Vértices:"
#: editor/plugins/spatial_editor_plugin.cpp
msgid "FPS: %d (%s ms)"
@@ -7859,42 +7981,22 @@ msgid "Bottom View."
msgstr "Vista Inferior."
#: editor/plugins/spatial_editor_plugin.cpp
-msgid "Bottom"
-msgstr "Fondo"
-
-#: editor/plugins/spatial_editor_plugin.cpp
msgid "Left View."
msgstr "Vista Izquierda."
#: editor/plugins/spatial_editor_plugin.cpp
-msgid "Left"
-msgstr "Izquierda"
-
-#: editor/plugins/spatial_editor_plugin.cpp
msgid "Right View."
msgstr "Vista Derecha."
#: editor/plugins/spatial_editor_plugin.cpp
-msgid "Right"
-msgstr "Derecha"
-
-#: editor/plugins/spatial_editor_plugin.cpp
msgid "Front View."
msgstr "Vista Frontal."
#: editor/plugins/spatial_editor_plugin.cpp
-msgid "Front"
-msgstr "Frente"
-
-#: editor/plugins/spatial_editor_plugin.cpp
msgid "Rear View."
msgstr "Vista Anterior."
#: editor/plugins/spatial_editor_plugin.cpp
-msgid "Rear"
-msgstr "Detrás"
-
-#: editor/plugins/spatial_editor_plugin.cpp
msgid "Align Transform with View"
msgstr "Alinear Transform con Vista"
@@ -8003,9 +8105,8 @@ msgid "Freelook Slow Modifier"
msgstr "Modificador de Velocidad de Vista Libre"
#: editor/plugins/spatial_editor_plugin.cpp
-#, fuzzy
msgid "Toggle Camera Preview"
-msgstr "Cambiar Tamaño de Cámara"
+msgstr "Alternar Vista Previa de la Cámara"
#: editor/plugins/spatial_editor_plugin.cpp
msgid "View Rotation Locked"
@@ -8027,9 +8128,8 @@ msgstr ""
"No se puede utilizar como un indicador fiable del rendimiento en el juego."
#: editor/plugins/spatial_editor_plugin.cpp
-#, fuzzy
msgid "Convert Rooms"
-msgstr "Convertir A %s"
+msgstr "Convertir Rooms"
#: editor/plugins/spatial_editor_plugin.cpp
msgid "XForm Dialog"
@@ -8051,7 +8151,6 @@ msgstr ""
"opacas (\"x-ray\")."
#: editor/plugins/spatial_editor_plugin.cpp
-#, fuzzy
msgid "Snap Nodes to Floor"
msgstr "Ajustar Nodos al Suelo"
@@ -8069,7 +8168,7 @@ msgstr "Usar Ajuste"
#: editor/plugins/spatial_editor_plugin.cpp
msgid "Converts rooms for portal culling."
-msgstr ""
+msgstr "Convertir rooms para hacer culling de portales."
#: editor/plugins/spatial_editor_plugin.cpp
msgid "Bottom View"
@@ -8165,9 +8264,13 @@ msgid "View Grid"
msgstr "Ver Grilla"
#: editor/plugins/spatial_editor_plugin.cpp
-#, fuzzy
msgid "View Portal Culling"
-msgstr "Ajustes de Viewport"
+msgstr "Ver Culling de Portales"
+
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "View Occlusion Culling"
+msgstr "Ver Culling de Portales"
#: editor/plugins/spatial_editor_plugin.cpp
#: modules/gridmap/grid_map_editor_plugin.cpp
@@ -8235,8 +8338,9 @@ msgid "Post"
msgstr "Post"
#: editor/plugins/spatial_editor_plugin.cpp
-msgid "Nameless gizmo"
-msgstr "Gizmo sin nombre"
+#, fuzzy
+msgid "Unnamed Gizmo"
+msgstr "Proyecto Sin Nombre"
#: editor/plugins/sprite_editor_plugin.cpp
msgid "Create Mesh2D"
@@ -8487,129 +8591,112 @@ msgid "TextureRegion"
msgstr "Región de Textura"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Colors"
-msgstr "Color"
+msgstr "Colores"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Fonts"
-msgstr "Tipografía"
+msgstr "Fuentes"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Icons"
-msgstr "Icono"
+msgstr "Iconos"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Styleboxes"
-msgstr "StyleBox"
+msgstr "Styleboxes"
#: editor/plugins/theme_editor_plugin.cpp
msgid "{num} color(s)"
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "No colors found."
-msgstr "No se encontró ningún sub-recurso."
+msgstr "No se encontraron colores."
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "{num} constant(s)"
-msgstr "Constantes"
+msgstr "{num} constante(s)"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "No constants found."
-msgstr "Constante de color."
+msgstr "No se encontraron constantes."
#: editor/plugins/theme_editor_plugin.cpp
msgid "{num} font(s)"
-msgstr ""
+msgstr "{num} fuente(s)"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "No fonts found."
-msgstr "No se encontró!"
+msgstr "No se encontraron fuentes."
#: editor/plugins/theme_editor_plugin.cpp
msgid "{num} icon(s)"
-msgstr ""
+msgstr "{num} ícono(s)"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "No icons found."
-msgstr "No se encontró!"
+msgstr "No se encontraron íconos."
#: editor/plugins/theme_editor_plugin.cpp
msgid "{num} stylebox(es)"
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "No styleboxes found."
-msgstr "No se encontró ningún sub-recurso."
+msgstr "No se encontraron styleboxes."
#: editor/plugins/theme_editor_plugin.cpp
msgid "{num} currently selected"
-msgstr ""
+msgstr "{num} seleccionado(s) actualmente"
#: editor/plugins/theme_editor_plugin.cpp
msgid "Nothing was selected for the import."
-msgstr ""
+msgstr "No se seleccionó nada para la importación."
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Importing Theme Items"
-msgstr "Importar Tema"
+msgstr "Importando Items de Tema"
#: editor/plugins/theme_editor_plugin.cpp
msgid "Importing items {n}/{n}"
-msgstr ""
+msgstr "Importando items {n}/{n}"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Updating the editor"
-msgstr "Salir del editor?"
+msgstr "Actualizando el editor"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Finalizing"
-msgstr "Analizando"
+msgstr "Finalizando"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Filter:"
-msgstr "Filtro: "
+msgstr "Filtro:"
#: editor/plugins/theme_editor_plugin.cpp
msgid "With Data"
-msgstr ""
+msgstr "Con Data"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Select by data type:"
-msgstr "Seleccionar un Nodo"
+msgstr "Seleccionar por tipo de datos:"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Select all visible color items."
-msgstr "Seleccioná una división para borrarla."
+msgstr "Seleccionar todos los elementos color visibles."
#: editor/plugins/theme_editor_plugin.cpp
msgid "Select all visible color items and their data."
-msgstr ""
+msgstr "Seleccione todos los elementos visibles de color y sus datos."
#: editor/plugins/theme_editor_plugin.cpp
msgid "Deselect all visible color items."
-msgstr ""
+msgstr "Quitar selección a todos los elementos visibles de color."
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Select all visible constant items."
-msgstr "Selecciona un ítem primero!"
+msgstr "Seleccionar todos elementos constant visibles."
#: editor/plugins/theme_editor_plugin.cpp
msgid "Select all visible constant items and their data."
@@ -8620,9 +8707,8 @@ msgid "Deselect all visible constant items."
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Select all visible font items."
-msgstr "Selecciona un ítem primero!"
+msgstr "Seleccionar todos los elementos font visibles."
#: editor/plugins/theme_editor_plugin.cpp
msgid "Select all visible font items and their data."
@@ -8633,19 +8719,16 @@ msgid "Deselect all visible font items."
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Select all visible icon items."
-msgstr "Selecciona un ítem primero!"
+msgstr "Seleccionar todos los elementos icon visibles."
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Select all visible icon items and their data."
-msgstr "Selecciona un ítem primero!"
+msgstr "Seleccionar todos los elementos icon visibles y sus datos."
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Deselect all visible icon items."
-msgstr "Selecciona un ítem primero!"
+msgstr "Deseleccionar todos los elementos icon visibles."
#: editor/plugins/theme_editor_plugin.cpp
msgid "Select all visible stylebox items."
@@ -8666,42 +8749,36 @@ msgid ""
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Collapse types."
-msgstr "Colapsar Todos"
+msgstr "Colapsar tipos."
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Expand types."
-msgstr "Expandir Todos"
+msgstr "Expandir tipos."
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Select all Theme items."
-msgstr "Elegir Archivo de Plantilla"
+msgstr "Seleccionar todos los elementos del Tema."
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Select With Data"
-msgstr "Seleccionar Puntos"
+msgstr "Seleccionar Con Datos"
#: editor/plugins/theme_editor_plugin.cpp
msgid "Select all Theme items with item data."
-msgstr ""
+msgstr "Seleccionar todos los elementos del Tema con los datos del elemento."
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Deselect All"
-msgstr "Seleccionar Todo"
+msgstr "Deseleccionar Todo"
#: editor/plugins/theme_editor_plugin.cpp
msgid "Deselect all Theme items."
-msgstr ""
+msgstr "Deseleccionar todos los elementos del Tema."
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Import Selected"
-msgstr "Importar Escena"
+msgstr "Importar Seleccionado"
#: editor/plugins/theme_editor_plugin.cpp
msgid ""
@@ -8715,36 +8792,33 @@ msgid ""
"Select a theme type from the list to edit its items.\n"
"You can add a custom type or import a type with its items from another theme."
msgstr ""
+"Selecciona un tipo de tema de la list para editar sus elementos.\n"
+"Podés agregar un tipo customizado o importar un tipo con sus elementos desde "
+"otro tema."
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Remove All Color Items"
msgstr "Quitar Todos los Ãtems"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Rename Item"
-msgstr "Remover Item"
+msgstr "Renombrar Item"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Remove All Constant Items"
-msgstr "Quitar Todos los Ãtems"
+msgstr "Eliminar Todos los Elementos Constant"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Remove All Font Items"
-msgstr "Quitar Todos los Ãtems"
+msgstr "Eliminar Todos los Elementos Font"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Remove All Icon Items"
-msgstr "Quitar Todos los Ãtems"
+msgstr "Eliminar Todos los Elementos de Iconos"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Remove All StyleBox Items"
-msgstr "Quitar Todos los Ãtems"
+msgstr "Eliminar Todos los Elementos de StyleBox"
#: editor/plugins/theme_editor_plugin.cpp
msgid ""
@@ -8753,161 +8827,132 @@ msgid ""
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Add Color Item"
-msgstr "Agregar Items de Clases"
+msgstr "Añadir Elemento Color"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Add Constant Item"
-msgstr "Agregar Items de Clases"
+msgstr "Añadir Elemento Constant"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Add Font Item"
-msgstr "Agregar Item"
+msgstr "Añadir Elemento Font"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Add Icon Item"
msgstr "Agregar Item"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Add Stylebox Item"
-msgstr "Agregar Todos los Items"
+msgstr "Añadir Elemento Stylebox"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Rename Color Item"
-msgstr "Quitar Ãtems de Clases"
+msgstr "Cambiar Nombre del Elemento Color"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Rename Constant Item"
-msgstr "Quitar Ãtems de Clases"
+msgstr "Cambiar Nombre del Elemento Constant"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Rename Font Item"
-msgstr "Renombrar Nodo"
+msgstr "Renombrar Elemento Font"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Rename Icon Item"
-msgstr "Renombrar Nodo"
+msgstr "Renombrar Elemento Icon"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Rename Stylebox Item"
-msgstr "Remover Item Seleccionado"
+msgstr "Renombrar Elemento Stylebox"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Invalid file, not a Theme resource."
-msgstr "Archivo inválido. No es un layout de bus de audio."
+msgstr "Archivo inválido, no es un recurso del Theme."
#: editor/plugins/theme_editor_plugin.cpp
msgid "Invalid file, same as the edited Theme resource."
-msgstr ""
+msgstr "Archivo inválido, idéntico al recurso del Theme editado."
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Manage Theme Items"
-msgstr "Administrar Plantillas"
+msgstr "Administrar Elementos del Theme"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Edit Items"
-msgstr "Ãtem Editable"
+msgstr "Editar Elementos"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Types:"
-msgstr "Tipo:"
+msgstr "Tipos:"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Add Type:"
-msgstr "Tipo:"
+msgstr "Añadir Tipo:"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Add Item:"
-msgstr "Agregar Item"
+msgstr "Añadir Elemento:"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Add StyleBox Item"
-msgstr "Agregar Todos los Items"
+msgstr "Añadir Elemento StyleBox"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Remove Items:"
-msgstr "Remover Item"
+msgstr "Eliminar Elementos:"
#: editor/plugins/theme_editor_plugin.cpp
msgid "Remove Class Items"
msgstr "Quitar Ãtems de Clases"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Remove Custom Items"
-msgstr "Quitar Ãtems de Clases"
+msgstr "Eliminar Elementos Personalizados"
#: editor/plugins/theme_editor_plugin.cpp
msgid "Remove All Items"
msgstr "Quitar Todos los Ãtems"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Add Theme Item"
-msgstr "Items de Tema de la GUI"
+msgstr "Agregar Elemento del Theme"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Old Name:"
-msgstr "Nombre de Nodo:"
+msgstr "Nombre Antiguo:"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Import Items"
-msgstr "Importar Tema"
+msgstr "Importar Elementos"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Default Theme"
-msgstr "Por Defecto"
+msgstr "Theme Predeterminado"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Editor Theme"
msgstr "Editar Tema"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Select Another Theme Resource:"
-msgstr "Eliminar Recurso"
+msgstr "Seleccionar Otro Recurso del Theme:"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Another Theme"
-msgstr "Importar Tema"
+msgstr "Otro Theme"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Confirm Item Rename"
-msgstr "Renombrar pista de animación"
+msgstr "Confirmar Cambio de Nombre del Elemento"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Cancel Item Rename"
-msgstr "Renombrar en Masa"
+msgstr "Cancelar Renombrado de Elemento"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Override Item"
-msgstr "Reemplazos(Overrides)"
+msgstr "Reemplazar Elemento"
#: editor/plugins/theme_editor_plugin.cpp
msgid "Unpin this StyleBox as a main style."
@@ -12438,6 +12483,16 @@ msgstr "Setear Posición de Punto de Curva"
msgid "Set Portal Point Position"
msgstr "Setear Posición de Punto de Curva"
+#: editor/spatial_editor_gizmos.cpp
+#, fuzzy
+msgid "Set Occluder Sphere Radius"
+msgstr "Cambiar Radio de Shape Cilindro"
+
+#: editor/spatial_editor_gizmos.cpp
+#, fuzzy
+msgid "Set Occluder Sphere Position"
+msgstr "Setear Posición de Entrada de Curva"
+
#: modules/csg/csg_gizmos.cpp
msgid "Change Cylinder Radius"
msgstr "Cambiar Radio de Cilindro"
@@ -12724,6 +12779,11 @@ msgstr "Trazando lightmatps"
msgid "Class name can't be a reserved keyword"
msgstr "El nombre de la clase no puede ser una palabra reservada"
+#: modules/mono/csharp_script.cpp
+#, fuzzy
+msgid "Build Solution"
+msgstr "Llenar la Selección"
+
#: modules/mono/mono_gd/gd_mono_utils.cpp
msgid "End of inner exception stack trace"
msgstr "Fin del stack trace de excepción interna"
@@ -13212,76 +13272,76 @@ msgstr "Buscar en VisualScript"
msgid "Get %s"
msgstr "Obtener %s"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Package name is missing."
msgstr "Nombre de paquete faltante."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Package segments must be of non-zero length."
msgstr "Los segmentos del paquete deben ser de largo no nulo."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "The character '%s' is not allowed in Android application package names."
msgstr ""
"El caracter '%s' no está permitido en nombres de paquete de aplicación "
"Android."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "A digit cannot be the first character in a package segment."
msgstr "Un dígito no puede ser el primer caracter en un segmento de paquete."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "The character '%s' cannot be the first character in a package segment."
msgstr ""
"El caracter '%s' no puede ser el primer caracter en un segmento de paquete."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "The package must have at least one '.' separator."
msgstr "El paquete debe tener al menos un '.' como separador."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Select device from the list"
msgstr "Seleccionar dispositivo de la lista"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Running on %s"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
#, fuzzy
msgid "Exporting APK..."
msgstr "Exportar Todo"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
#, fuzzy
msgid "Uninstalling..."
msgstr "Desinstalar"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
#, fuzzy
msgid "Installing to device, please wait..."
msgstr "Cargando, esperá, por favor..."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
#, fuzzy
msgid "Could not install to device: %s"
msgstr "No se pudo instanciar la escena!"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
#, fuzzy
msgid "Running on device..."
msgstr "Ejecutando Script Personalizado..."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
#, fuzzy
msgid "Could not execute on device."
msgstr "No se pudo crear la carpeta."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Unable to find the 'apksigner' tool."
msgstr "No se pudo encontrar la herramienta 'apksigner'."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Android build template not installed in the project. Install it from the "
"Project menu."
@@ -13289,7 +13349,7 @@ msgstr ""
"La plantilla de exportación de Android no esta instalada en el proyecto. "
"Instalala desde el menú de Proyecto."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Either Debug Keystore, Debug User AND Debug Password settings must be "
"configured OR none of them."
@@ -13297,12 +13357,12 @@ msgstr ""
"Deben estar configurados o bien Debug Keystore, Debug User Y Debug Password "
"o bien ninguno de ellos."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Debug keystore not configured in the Editor Settings nor in the preset."
msgstr ""
"Keystore debug no configurada en Configuración del Editor ni en el preset."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Either Release Keystore, Release User AND Release Password settings must be "
"configured OR none of them."
@@ -13310,53 +13370,53 @@ msgstr ""
"Deben estar configurados o bien Release Keystore, Release User y Release "
"Passoword o bien ninguno de ellos."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Release keystore incorrectly configured in the export preset."
msgstr ""
"Release keystore no está configurado correctamente en el preset de "
"exportación."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "A valid Android SDK path is required in Editor Settings."
msgstr ""
"Se requiere una ruta válida al SDK de Android en la Configuración del Editor."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Invalid Android SDK path in Editor Settings."
msgstr "Ruta del SDK de Android inválida en la Configuración del Editor."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Missing 'platform-tools' directory!"
msgstr "¡No se encontró el directorio 'platform-tools'!"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Unable to find Android SDK platform-tools' adb command."
msgstr "No se pudo encontrar el comando adb en las Android SDK platform-tools."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Please check in the Android SDK directory specified in Editor Settings."
msgstr ""
"Por favor, comprueba el directorio del SDK de Android especificado en la "
"Configuración del Editor."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Missing 'build-tools' directory!"
msgstr "¡No se encontró el directorio 'build-tools'!"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Unable to find Android SDK build-tools' apksigner command."
msgstr ""
"No se pudo encontrar el comando apksigner en las Android SDK build-tools."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Invalid public key for APK expansion."
msgstr "Clave pública inválida para la expansión de APK."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Invalid package name:"
msgstr "Nombre de paquete inválido:"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Invalid \"GodotPaymentV3\" module included in the \"android/modules\" "
"project setting (changed in Godot 3.2.2).\n"
@@ -13364,37 +13424,22 @@ msgstr ""
"El módulo \"GodotPaymentV3\" incluido en el ajuste de proyecto \"android/"
"modules\" es inválido (cambiado en Godot 3.2.2).\n"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "\"Use Custom Build\" must be enabled to use the plugins."
msgstr "\"Use Custom Build\" debe estar activado para usar los plugins."
-#: platform/android/export/export.cpp
-msgid ""
-"\"Degrees Of Freedom\" is only valid when \"Xr Mode\" is \"Oculus Mobile VR"
-"\"."
-msgstr ""
-"\"Degrees Of Freedom\" sólo es válido cuando \"Xr Mode\" es \"Oculus Mobile "
-"VR\"."
-
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"\"Hand Tracking\" is only valid when \"Xr Mode\" is \"Oculus Mobile VR\"."
msgstr ""
"\"Hand Tracking\" sólo es válido cuando \"Xr Mode\" es \"Oculus Mobile VR\"."
-#: platform/android/export/export.cpp
-msgid ""
-"\"Focus Awareness\" is only valid when \"Xr Mode\" is \"Oculus Mobile VR\"."
-msgstr ""
-"\"Focus Awareness\" sólo es válido cuando \"Xr Mode\" es \"Oculus Mobile VR"
-"\"."
-
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "\"Export AAB\" is only valid when \"Use Custom Build\" is enabled."
msgstr ""
"\"Export AAB\" sólo es válido cuando \"Use Custom Build\" está activado."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"'apksigner' could not be found.\n"
"Please check the command is available in the Android SDK build-tools "
@@ -13402,58 +13447,58 @@ msgid ""
"The resulting %s is unsigned."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Signing debug %s..."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
#, fuzzy
msgid "Signing release %s..."
msgstr ""
"Examinando Archivos,\n"
"Aguardá, por favor."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
#, fuzzy
msgid "Could not find keystore, unable to export."
msgstr "No se pudo abrir la plantilla para exportar:"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "'apksigner' returned with error #%d"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
#, fuzzy
msgid "Verifying %s..."
msgstr "Agregando %s..."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "'apksigner' verification of %s failed."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
#, fuzzy
msgid "Exporting for Android"
msgstr "Exportar Todo"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Invalid filename! Android App Bundle requires the *.aab extension."
msgstr ""
"¡Nombre de archivo inválido! Android App Bundle requiere la extensión *.aab."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "APK Expansion not compatible with Android App Bundle."
msgstr "La Expansión APK no es compatible con Android App Bundle."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Invalid filename! Android APK requires the *.apk extension."
msgstr "¡Nombre de archivo inválido! Android APK requiere la extensión *.apk."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Unsupported export format!\n"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Trying to build from a custom built template, but no version info for it "
"exists. Please reinstall from the 'Project' menu."
@@ -13462,7 +13507,7 @@ msgstr ""
"información de la versión para ello. Por favor, reinstalá desde el menú "
"'Proyecto'."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Android build version mismatch:\n"
" Template installed: %s\n"
@@ -13475,26 +13520,26 @@ msgstr ""
"Por favor, reinstalá la plantilla de compilación de Android desde el menú "
"'Proyecto'."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Unable to overwrite res://android/build/res/*.xml files with project name"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
#, fuzzy
msgid "Could not export project files to gradle project\n"
msgstr "No se pudo obtener project.godot en la ruta de proyecto."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
#, fuzzy
msgid "Could not write expansion package file!"
msgstr "No se pudo escribir el archivo:"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Building Android Project (gradle)"
msgstr "Construir Proyecto Android (gradle)"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Building of Android project failed, check output for the error.\n"
"Alternatively visit docs.godotengine.org for Android build documentation."
@@ -13503,11 +13548,11 @@ msgstr ""
"También podés visitar docs.godotengine.org para consultar la documentación "
"de compilación de Android."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Moving output"
msgstr "Moviendo salida"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Unable to copy and rename export file, check gradle project directory for "
"outputs."
@@ -13515,24 +13560,24 @@ msgstr ""
"No se puede copiar y renombrar el archivo de exportación, comprobá el "
"directorio del proyecto de gradle para ver los resultados."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
#, fuzzy
msgid "Package not found: %s"
msgstr "No se encontró la animación: '%s'"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
#, fuzzy
msgid "Creating APK..."
msgstr "Creando contornos..."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
#, fuzzy
msgid ""
"Could not find template APK to export:\n"
"%s"
msgstr "No se pudo abrir la plantilla para exportar:"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Missing libraries in the export template for the selected architectures: "
"%s.\n"
@@ -13540,21 +13585,21 @@ msgid ""
"architectures in the export preset."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
#, fuzzy
msgid "Adding files..."
msgstr "Agregando %s..."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
#, fuzzy
msgid "Could not export project files"
msgstr "No se pudo escribir el archivo:"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Aligning APK..."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Could not unzip temporary unaligned APK."
msgstr ""
@@ -14107,6 +14152,14 @@ msgstr ""
"NavigationMeshInstance debe ser un hijo o nieto de un nodo Navigation. Solo "
"provee datos de navegación."
+#: scene/3d/occluder.cpp
+msgid "No shape is set."
+msgstr ""
+
+#: scene/3d/occluder.cpp
+msgid "Only uniform scales are supported."
+msgstr ""
+
#: scene/3d/particles.cpp
msgid ""
"GPU-based particles are not supported by the GLES2 video driver.\n"
@@ -14436,6 +14489,14 @@ msgstr "Debe ser una extensión válida."
msgid "Enable grid minimap."
msgstr "Activar minimapa de grilla."
+#: scene/gui/nine_patch_rect.cpp
+msgid ""
+"The Tile and Tile Fit options for Axis Stretch properties are only effective "
+"when using the GLES3 rendering backend.\n"
+"The GLES2 backend is currently in use, so these modes will act like Stretch "
+"instead."
+msgstr ""
+
#: scene/gui/popup.cpp
msgid ""
"Popups will hide by default unless you call popup() or any of the popup*() "
@@ -14488,6 +14549,10 @@ msgstr ""
msgid "Viewport size must be greater than 0 to render anything."
msgstr "El tamaño del viewport debe ser mayor a 0 para poder renderizar."
+#: scene/resources/occluder_shape.cpp
+msgid "OccluderShapeSphere Set Spheres"
+msgstr ""
+
#: scene/resources/visual_shader_nodes.cpp
msgid ""
"The sampler port is connected but not used. Consider changing the source to "
@@ -14541,6 +14606,41 @@ msgstr "Asignación a uniform."
msgid "Constants cannot be modified."
msgstr "Las constantes no pueden modificarse."
+#~ msgid "Make Rest Pose (From Bones)"
+#~ msgstr "Crear Pose de Descanso"
+
+#~ msgid "Bottom"
+#~ msgstr "Fondo"
+
+#~ msgid "Left"
+#~ msgstr "Izquierda"
+
+#~ msgid "Right"
+#~ msgstr "Derecha"
+
+#~ msgid "Front"
+#~ msgstr "Frente"
+
+#~ msgid "Rear"
+#~ msgstr "Detrás"
+
+#~ msgid "Nameless gizmo"
+#~ msgstr "Gizmo sin nombre"
+
+#~ msgid ""
+#~ "\"Degrees Of Freedom\" is only valid when \"Xr Mode\" is \"Oculus Mobile "
+#~ "VR\"."
+#~ msgstr ""
+#~ "\"Degrees Of Freedom\" sólo es válido cuando \"Xr Mode\" es \"Oculus "
+#~ "Mobile VR\"."
+
+#~ msgid ""
+#~ "\"Focus Awareness\" is only valid when \"Xr Mode\" is \"Oculus Mobile VR"
+#~ "\"."
+#~ msgstr ""
+#~ "\"Focus Awareness\" sólo es válido cuando \"Xr Mode\" es \"Oculus Mobile "
+#~ "VR\"."
+
#~ msgid "Package Contents:"
#~ msgstr "Contenido del Paquete:"
@@ -16517,9 +16617,6 @@ msgstr "Las constantes no pueden modificarse."
#~ msgid "Images:"
#~ msgstr "Imágenes:"
-#~ msgid "Group"
-#~ msgstr "Grupo"
-
#~ msgid "Sample Conversion Mode: (.wav files):"
#~ msgstr "Modo de Conversión de Muestras: (archivos .wav):"
diff --git a/editor/translations/et.po b/editor/translations/et.po
index 13019cd9e3..2c59035681 100644
--- a/editor/translations/et.po
+++ b/editor/translations/et.po
@@ -1006,7 +1006,7 @@ msgstr ""
msgid "Dependencies"
msgstr "Sõltuvused"
-#: editor/dependency_editor.cpp
+#: editor/dependency_editor.cpp editor/editor_resource_picker.cpp
msgid "Resource"
msgstr "Ressurss"
@@ -1659,13 +1659,13 @@ msgstr ""
"Lülitage projekti sätetes sisse „Impordi ETC†või keelake „Draiveri "
"tagasilangemine lubatudâ€."
-#: editor/editor_export.cpp platform/android/export/export.cpp
+#: editor/editor_export.cpp platform/android/export/export_plugin.cpp
#: platform/iphone/export/export.cpp platform/javascript/export/export.cpp
#: platform/osx/export/export.cpp platform/uwp/export/export.cpp
msgid "Custom debug template not found."
msgstr ""
-#: editor/editor_export.cpp platform/android/export/export.cpp
+#: editor/editor_export.cpp platform/android/export/export_plugin.cpp
#: platform/iphone/export/export.cpp platform/javascript/export/export.cpp
#: platform/osx/export/export.cpp platform/uwp/export/export.cpp
msgid "Custom release template not found."
@@ -2051,7 +2051,7 @@ msgstr ""
msgid "(Re)Importing Assets"
msgstr "(Taas)impordin varasid"
-#: editor/editor_help.cpp editor/plugins/spatial_editor_plugin.cpp
+#: editor/editor_help.cpp
msgid "Top"
msgstr "Ülaosa"
@@ -2534,6 +2534,32 @@ msgid "Current scene not saved. Open anyway?"
msgstr ""
#: editor/editor_node.cpp
+msgid "Can't undo while mouse buttons are pressed."
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "Nothing to undo."
+msgstr ""
+
+#: editor/editor_node.cpp
+#, fuzzy
+msgid "Undo: %s"
+msgstr "Võta tagasi"
+
+#: editor/editor_node.cpp
+msgid "Can't redo while mouse buttons are pressed."
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "Nothing to redo."
+msgstr ""
+
+#: editor/editor_node.cpp
+#, fuzzy
+msgid "Redo: %s"
+msgstr "Tee uuesti"
+
+#: editor/editor_node.cpp
msgid "Can't reload a scene that was never saved."
msgstr ""
@@ -3169,6 +3195,10 @@ msgid "Merge With Existing"
msgstr "Liida olemasolevaga"
#: editor/editor_node.cpp
+msgid "Apply MeshInstance Transforms"
+msgstr ""
+
+#: editor/editor_node.cpp
msgid "Open & Run a Script"
msgstr ""
@@ -3414,6 +3444,10 @@ msgid ""
"property (%s)."
msgstr ""
+#: editor/editor_resource_picker.cpp
+msgid "Quick Load"
+msgstr ""
+
#: editor/editor_resource_picker.cpp editor/property_editor.cpp
msgid "Make Unique"
msgstr ""
@@ -5470,6 +5504,17 @@ msgid "Move CanvasItem \"%s\" to (%d, %d)"
msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Locked"
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Grouped"
+msgstr "Rühmad"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
msgid ""
"Children of containers have their anchors and margins values overridden by "
"their parent."
@@ -6369,7 +6414,11 @@ msgid "Remove Selected Item"
msgstr ""
#: editor/plugins/mesh_library_editor_plugin.cpp
-msgid "Import from Scene"
+msgid "Import from Scene (Ignore Transforms)"
+msgstr ""
+
+#: editor/plugins/mesh_library_editor_plugin.cpp
+msgid "Import from Scene (Apply Transforms)"
msgstr ""
#: editor/plugins/mesh_library_editor_plugin.cpp
@@ -6955,6 +7004,15 @@ msgstr "Liiguta Bezieri punkte"
msgid "Flip Portal"
msgstr ""
+#: editor/plugins/room_manager_editor_plugin.cpp
+msgid "Occluder Set Transform"
+msgstr ""
+
+#: editor/plugins/room_manager_editor_plugin.cpp
+#, fuzzy
+msgid "Center Node"
+msgstr "Kustuta sõlm(ed)"
+
#: editor/plugins/root_motion_editor_plugin.cpp
msgid "AnimationTree has no path set to an AnimationPlayer"
msgstr ""
@@ -7449,11 +7507,12 @@ msgid "Skeleton2D"
msgstr ""
#: editor/plugins/skeleton_2d_editor_plugin.cpp
-msgid "Make Rest Pose (From Bones)"
-msgstr ""
+#, fuzzy
+msgid "Reset to Rest Pose"
+msgstr "Laadi vaikimisi"
#: editor/plugins/skeleton_2d_editor_plugin.cpp
-msgid "Set Bones to Rest Pose"
+msgid "Overwrite Rest Pose"
msgstr ""
#: editor/plugins/skeleton_editor_plugin.cpp
@@ -7481,6 +7540,65 @@ msgid "Perspective"
msgstr "Perspektiiv"
#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Top Orthogonal"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Top Perspective"
+msgstr "Perspektiiv"
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Bottom Orthogonal"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Bottom Perspective"
+msgstr "Perspektiiv"
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Left Orthogonal"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Right Perspective"
+msgstr "Perspektiiv"
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Right Orthogonal"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Front Orthogonal"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Front Perspective"
+msgstr "Perspektiiv"
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Rear Orthogonal"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Rear Perspective"
+msgstr "Perspektiiv"
+
+#. TRANSLATORS: This will be appended to the view name when Auto Orthogonal is enabled.
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid " [auto]"
+msgstr ""
+
+#. TRANSLATORS: This will be appended to the view name when Portal Occulusion is enabled.
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid " [portals active]"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
msgid "Transform Aborted."
msgstr ""
@@ -7599,42 +7717,22 @@ msgid "Bottom View."
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
-msgid "Bottom"
-msgstr ""
-
-#: editor/plugins/spatial_editor_plugin.cpp
msgid "Left View."
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
-msgid "Left"
-msgstr ""
-
-#: editor/plugins/spatial_editor_plugin.cpp
msgid "Right View."
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
-msgid "Right"
-msgstr ""
-
-#: editor/plugins/spatial_editor_plugin.cpp
msgid "Front View."
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
-msgid "Front"
-msgstr ""
-
-#: editor/plugins/spatial_editor_plugin.cpp
msgid "Rear View."
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
-msgid "Rear"
-msgstr ""
-
-#: editor/plugins/spatial_editor_plugin.cpp
msgid "Align Transform with View"
msgstr ""
@@ -7898,6 +7996,11 @@ msgid "View Portal Culling"
msgstr "Vaateakna sätted"
#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "View Occlusion Culling"
+msgstr "Vaateakna sätted"
+
+#: editor/plugins/spatial_editor_plugin.cpp
#: modules/gridmap/grid_map_editor_plugin.cpp
msgid "Settings..."
msgstr "Sätted..."
@@ -7963,7 +8066,7 @@ msgid "Post"
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
-msgid "Nameless gizmo"
+msgid "Unnamed Gizmo"
msgstr ""
#: editor/plugins/sprite_editor_plugin.cpp
@@ -11923,6 +12026,14 @@ msgstr ""
msgid "Set Portal Point Position"
msgstr ""
+#: editor/spatial_editor_gizmos.cpp
+msgid "Set Occluder Sphere Radius"
+msgstr ""
+
+#: editor/spatial_editor_gizmos.cpp
+msgid "Set Occluder Sphere Position"
+msgstr ""
+
#: modules/csg/csg_gizmos.cpp
msgid "Change Cylinder Radius"
msgstr ""
@@ -12206,6 +12317,11 @@ msgstr ""
msgid "Class name can't be a reserved keyword"
msgstr ""
+#: modules/mono/csharp_script.cpp
+#, fuzzy
+msgid "Build Solution"
+msgstr "Poolresolutioon"
+
#: modules/mono/mono_gd/gd_mono_utils.cpp
msgid "End of inner exception stack trace"
msgstr ""
@@ -12675,161 +12791,150 @@ msgstr ""
msgid "Get %s"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Package name is missing."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Package segments must be of non-zero length."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "The character '%s' is not allowed in Android application package names."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "A digit cannot be the first character in a package segment."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "The character '%s' cannot be the first character in a package segment."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "The package must have at least one '.' separator."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Select device from the list"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Running on %s"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
#, fuzzy
msgid "Exporting APK..."
msgstr "Ekspordi..."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Uninstalling..."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Installing to device, please wait..."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Could not install to device: %s"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Running on device..."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
#, fuzzy
msgid "Could not execute on device."
msgstr "Ei saanud luua kausta."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Unable to find the 'apksigner' tool."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Android build template not installed in the project. Install it from the "
"Project menu."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Either Debug Keystore, Debug User AND Debug Password settings must be "
"configured OR none of them."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Debug keystore not configured in the Editor Settings nor in the preset."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Either Release Keystore, Release User AND Release Password settings must be "
"configured OR none of them."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Release keystore incorrectly configured in the export preset."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "A valid Android SDK path is required in Editor Settings."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Invalid Android SDK path in Editor Settings."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Missing 'platform-tools' directory!"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Unable to find Android SDK platform-tools' adb command."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Please check in the Android SDK directory specified in Editor Settings."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Missing 'build-tools' directory!"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Unable to find Android SDK build-tools' apksigner command."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Invalid public key for APK expansion."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Invalid package name:"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Invalid \"GodotPaymentV3\" module included in the \"android/modules\" "
"project setting (changed in Godot 3.2.2).\n"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "\"Use Custom Build\" must be enabled to use the plugins."
msgstr ""
-#: platform/android/export/export.cpp
-msgid ""
-"\"Degrees Of Freedom\" is only valid when \"Xr Mode\" is \"Oculus Mobile VR"
-"\"."
-msgstr ""
-
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"\"Hand Tracking\" is only valid when \"Xr Mode\" is \"Oculus Mobile VR\"."
msgstr ""
-#: platform/android/export/export.cpp
-msgid ""
-"\"Focus Awareness\" is only valid when \"Xr Mode\" is \"Oculus Mobile VR\"."
-msgstr ""
-
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "\"Export AAB\" is only valid when \"Use Custom Build\" is enabled."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"'apksigner' could not be found.\n"
"Please check the command is available in the Android SDK build-tools "
@@ -12837,58 +12942,58 @@ msgid ""
"The resulting %s is unsigned."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Signing debug %s..."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Signing release %s..."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Could not find keystore, unable to export."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "'apksigner' returned with error #%d"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
#, fuzzy
msgid "Verifying %s..."
msgstr "Sätted..."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "'apksigner' verification of %s failed."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Exporting for Android"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Invalid filename! Android App Bundle requires the *.aab extension."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "APK Expansion not compatible with Android App Bundle."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Invalid filename! Android APK requires the *.apk extension."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Unsupported export format!\n"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Trying to build from a custom built template, but no version info for it "
"exists. Please reinstall from the 'Project' menu."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Android build version mismatch:\n"
" Template installed: %s\n"
@@ -12896,56 +13001,56 @@ msgid ""
"Please reinstall Android build template from 'Project' menu."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Unable to overwrite res://android/build/res/*.xml files with project name"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Could not export project files to gradle project\n"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Could not write expansion package file!"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Building Android Project (gradle)"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Building of Android project failed, check output for the error.\n"
"Alternatively visit docs.godotengine.org for Android build documentation."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Moving output"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Unable to copy and rename export file, check gradle project directory for "
"outputs."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
#, fuzzy
msgid "Package not found: %s"
msgstr "Paigutuse nime ei leitud!"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
#, fuzzy
msgid "Creating APK..."
msgstr "Sätted..."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Could not find template APK to export:\n"
"%s"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Missing libraries in the export template for the selected architectures: "
"%s.\n"
@@ -12953,20 +13058,20 @@ msgid ""
"architectures in the export preset."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Adding files..."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
#, fuzzy
msgid "Could not export project files"
msgstr "Ei saanud luua kausta."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Aligning APK..."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Could not unzip temporary unaligned APK."
msgstr ""
@@ -13421,6 +13526,14 @@ msgid ""
"It only provides navigation data."
msgstr ""
+#: scene/3d/occluder.cpp
+msgid "No shape is set."
+msgstr ""
+
+#: scene/3d/occluder.cpp
+msgid "Only uniform scales are supported."
+msgstr ""
+
#: scene/3d/particles.cpp
msgid ""
"GPU-based particles are not supported by the GLES2 video driver.\n"
@@ -13710,6 +13823,14 @@ msgstr "Peab kasutama kehtivat laiendit."
msgid "Enable grid minimap."
msgstr ""
+#: scene/gui/nine_patch_rect.cpp
+msgid ""
+"The Tile and Tile Fit options for Axis Stretch properties are only effective "
+"when using the GLES3 rendering backend.\n"
+"The GLES2 backend is currently in use, so these modes will act like Stretch "
+"instead."
+msgstr ""
+
#: scene/gui/popup.cpp
msgid ""
"Popups will hide by default unless you call popup() or any of the popup*() "
@@ -13750,6 +13871,10 @@ msgstr ""
msgid "Viewport size must be greater than 0 to render anything."
msgstr "Vaateakne suurus peab olema suurem kui 0, et kuvada."
+#: scene/resources/occluder_shape.cpp
+msgid "OccluderShapeSphere Set Spheres"
+msgstr ""
+
#: scene/resources/visual_shader_nodes.cpp
msgid ""
"The sampler port is connected but not used. Consider changing the source to "
diff --git a/editor/translations/eu.po b/editor/translations/eu.po
index 7b6934ff33..ddcf8f5d37 100644
--- a/editor/translations/eu.po
+++ b/editor/translations/eu.po
@@ -1005,7 +1005,7 @@ msgstr ""
msgid "Dependencies"
msgstr "Mendekotasunak"
-#: editor/dependency_editor.cpp
+#: editor/dependency_editor.cpp editor/editor_resource_picker.cpp
msgid "Resource"
msgstr "Baliabidea"
@@ -1649,13 +1649,13 @@ msgid ""
"Enabled'."
msgstr ""
-#: editor/editor_export.cpp platform/android/export/export.cpp
+#: editor/editor_export.cpp platform/android/export/export_plugin.cpp
#: platform/iphone/export/export.cpp platform/javascript/export/export.cpp
#: platform/osx/export/export.cpp platform/uwp/export/export.cpp
msgid "Custom debug template not found."
msgstr ""
-#: editor/editor_export.cpp platform/android/export/export.cpp
+#: editor/editor_export.cpp platform/android/export/export_plugin.cpp
#: platform/iphone/export/export.cpp platform/javascript/export/export.cpp
#: platform/osx/export/export.cpp platform/uwp/export/export.cpp
msgid "Custom release template not found."
@@ -2032,7 +2032,7 @@ msgstr ""
msgid "(Re)Importing Assets"
msgstr "Aktiboak (bir)inportatzen"
-#: editor/editor_help.cpp editor/plugins/spatial_editor_plugin.cpp
+#: editor/editor_help.cpp
msgid "Top"
msgstr ""
@@ -2510,6 +2510,32 @@ msgid "Current scene not saved. Open anyway?"
msgstr ""
#: editor/editor_node.cpp
+msgid "Can't undo while mouse buttons are pressed."
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "Nothing to undo."
+msgstr ""
+
+#: editor/editor_node.cpp
+#, fuzzy
+msgid "Undo: %s"
+msgstr "Desegin"
+
+#: editor/editor_node.cpp
+msgid "Can't redo while mouse buttons are pressed."
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "Nothing to redo."
+msgstr ""
+
+#: editor/editor_node.cpp
+#, fuzzy
+msgid "Redo: %s"
+msgstr "Berregin"
+
+#: editor/editor_node.cpp
msgid "Can't reload a scene that was never saved."
msgstr ""
@@ -3138,6 +3164,11 @@ msgid "Merge With Existing"
msgstr ""
#: editor/editor_node.cpp
+#, fuzzy
+msgid "Apply MeshInstance Transforms"
+msgstr "Animazioaren transformazioa aldatu"
+
+#: editor/editor_node.cpp
msgid "Open & Run a Script"
msgstr ""
@@ -3382,6 +3413,10 @@ msgid ""
"property (%s)."
msgstr ""
+#: editor/editor_resource_picker.cpp
+msgid "Quick Load"
+msgstr ""
+
#: editor/editor_resource_picker.cpp editor/property_editor.cpp
msgid "Make Unique"
msgstr ""
@@ -5447,6 +5482,16 @@ msgid "Move CanvasItem \"%s\" to (%d, %d)"
msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Locked"
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Grouped"
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
msgid ""
"Children of containers have their anchors and margins values overridden by "
"their parent."
@@ -6347,7 +6392,11 @@ msgid "Remove Selected Item"
msgstr ""
#: editor/plugins/mesh_library_editor_plugin.cpp
-msgid "Import from Scene"
+msgid "Import from Scene (Ignore Transforms)"
+msgstr ""
+
+#: editor/plugins/mesh_library_editor_plugin.cpp
+msgid "Import from Scene (Apply Transforms)"
msgstr ""
#: editor/plugins/mesh_library_editor_plugin.cpp
@@ -6933,6 +6982,15 @@ msgstr "Mugitu Bezier puntuak"
msgid "Flip Portal"
msgstr ""
+#: editor/plugins/room_manager_editor_plugin.cpp
+msgid "Occluder Set Transform"
+msgstr ""
+
+#: editor/plugins/room_manager_editor_plugin.cpp
+#, fuzzy
+msgid "Center Node"
+msgstr "Blend4 nodoa"
+
#: editor/plugins/root_motion_editor_plugin.cpp
msgid "AnimationTree has no path set to an AnimationPlayer"
msgstr ""
@@ -7427,12 +7485,13 @@ msgid "Skeleton2D"
msgstr ""
#: editor/plugins/skeleton_2d_editor_plugin.cpp
-msgid "Make Rest Pose (From Bones)"
+msgid "Reset to Rest Pose"
msgstr ""
#: editor/plugins/skeleton_2d_editor_plugin.cpp
-msgid "Set Bones to Rest Pose"
-msgstr ""
+#, fuzzy
+msgid "Overwrite Rest Pose"
+msgstr "gainidatzi:"
#: editor/plugins/skeleton_editor_plugin.cpp
msgid "Create physical bones"
@@ -7459,6 +7518,60 @@ msgid "Perspective"
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Top Orthogonal"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Top Perspective"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Bottom Orthogonal"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Bottom Perspective"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Left Orthogonal"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Right Perspective"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Right Orthogonal"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Front Orthogonal"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Front Perspective"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Rear Orthogonal"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Rear Perspective"
+msgstr ""
+
+#. TRANSLATORS: This will be appended to the view name when Auto Orthogonal is enabled.
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid " [auto]"
+msgstr ""
+
+#. TRANSLATORS: This will be appended to the view name when Portal Occulusion is enabled.
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid " [portals active]"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
msgid "Transform Aborted."
msgstr ""
@@ -7568,42 +7681,22 @@ msgid "Bottom View."
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
-msgid "Bottom"
-msgstr ""
-
-#: editor/plugins/spatial_editor_plugin.cpp
msgid "Left View."
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
-msgid "Left"
-msgstr ""
-
-#: editor/plugins/spatial_editor_plugin.cpp
msgid "Right View."
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
-msgid "Right"
-msgstr ""
-
-#: editor/plugins/spatial_editor_plugin.cpp
msgid "Front View."
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
-msgid "Front"
-msgstr ""
-
-#: editor/plugins/spatial_editor_plugin.cpp
msgid "Rear View."
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
-msgid "Rear"
-msgstr ""
-
-#: editor/plugins/spatial_editor_plugin.cpp
msgid "Align Transform with View"
msgstr ""
@@ -7867,6 +7960,10 @@ msgid "View Portal Culling"
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
+msgid "View Occlusion Culling"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
#: modules/gridmap/grid_map_editor_plugin.cpp
msgid "Settings..."
msgstr ""
@@ -7932,7 +8029,7 @@ msgid "Post"
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
-msgid "Nameless gizmo"
+msgid "Unnamed Gizmo"
msgstr ""
#: editor/plugins/sprite_editor_plugin.cpp
@@ -11889,6 +11986,14 @@ msgstr ""
msgid "Set Portal Point Position"
msgstr ""
+#: editor/spatial_editor_gizmos.cpp
+msgid "Set Occluder Sphere Radius"
+msgstr ""
+
+#: editor/spatial_editor_gizmos.cpp
+msgid "Set Occluder Sphere Position"
+msgstr ""
+
#: modules/csg/csg_gizmos.cpp
msgid "Change Cylinder Radius"
msgstr ""
@@ -12170,6 +12275,10 @@ msgstr ""
msgid "Class name can't be a reserved keyword"
msgstr ""
+#: modules/mono/csharp_script.cpp
+msgid "Build Solution"
+msgstr ""
+
#: modules/mono/mono_gd/gd_mono_utils.cpp
msgid "End of inner exception stack trace"
msgstr ""
@@ -12637,164 +12746,153 @@ msgstr ""
msgid "Get %s"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Package name is missing."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Package segments must be of non-zero length."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "The character '%s' is not allowed in Android application package names."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "A digit cannot be the first character in a package segment."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "The character '%s' cannot be the first character in a package segment."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "The package must have at least one '.' separator."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Select device from the list"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Running on %s"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
#, fuzzy
msgid "Exporting APK..."
msgstr "Esportatu..."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
#, fuzzy
msgid "Uninstalling..."
msgstr "Desinstalatu"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
#, fuzzy
msgid "Installing to device, please wait..."
msgstr ""
"Fitxategiak arakatzen,\n"
"Itxaron mesedez..."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Could not install to device: %s"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Running on device..."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Could not execute on device."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Unable to find the 'apksigner' tool."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Android build template not installed in the project. Install it from the "
"Project menu."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Either Debug Keystore, Debug User AND Debug Password settings must be "
"configured OR none of them."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Debug keystore not configured in the Editor Settings nor in the preset."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Either Release Keystore, Release User AND Release Password settings must be "
"configured OR none of them."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Release keystore incorrectly configured in the export preset."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "A valid Android SDK path is required in Editor Settings."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Invalid Android SDK path in Editor Settings."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Missing 'platform-tools' directory!"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Unable to find Android SDK platform-tools' adb command."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Please check in the Android SDK directory specified in Editor Settings."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Missing 'build-tools' directory!"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Unable to find Android SDK build-tools' apksigner command."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Invalid public key for APK expansion."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Invalid package name:"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Invalid \"GodotPaymentV3\" module included in the \"android/modules\" "
"project setting (changed in Godot 3.2.2).\n"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "\"Use Custom Build\" must be enabled to use the plugins."
msgstr ""
-#: platform/android/export/export.cpp
-msgid ""
-"\"Degrees Of Freedom\" is only valid when \"Xr Mode\" is \"Oculus Mobile VR"
-"\"."
-msgstr ""
-
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"\"Hand Tracking\" is only valid when \"Xr Mode\" is \"Oculus Mobile VR\"."
msgstr ""
-#: platform/android/export/export.cpp
-msgid ""
-"\"Focus Awareness\" is only valid when \"Xr Mode\" is \"Oculus Mobile VR\"."
-msgstr ""
-
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "\"Export AAB\" is only valid when \"Use Custom Build\" is enabled."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"'apksigner' could not be found.\n"
"Please check the command is available in the Android SDK build-tools "
@@ -12802,60 +12900,60 @@ msgid ""
"The resulting %s is unsigned."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Signing debug %s..."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
#, fuzzy
msgid "Signing release %s..."
msgstr ""
"Fitxategiak arakatzen,\n"
"Itxaron mesedez..."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Could not find keystore, unable to export."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "'apksigner' returned with error #%d"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Verifying %s..."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "'apksigner' verification of %s failed."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Exporting for Android"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Invalid filename! Android App Bundle requires the *.aab extension."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "APK Expansion not compatible with Android App Bundle."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Invalid filename! Android APK requires the *.apk extension."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Unsupported export format!\n"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Trying to build from a custom built template, but no version info for it "
"exists. Please reinstall from the 'Project' menu."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Android build version mismatch:\n"
" Template installed: %s\n"
@@ -12863,55 +12961,55 @@ msgid ""
"Please reinstall Android build template from 'Project' menu."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Unable to overwrite res://android/build/res/*.xml files with project name"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Could not export project files to gradle project\n"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Could not write expansion package file!"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Building Android Project (gradle)"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Building of Android project failed, check output for the error.\n"
"Alternatively visit docs.godotengine.org for Android build documentation."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Moving output"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Unable to copy and rename export file, check gradle project directory for "
"outputs."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
#, fuzzy
msgid "Package not found: %s"
msgstr "Paketearen edukia:"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Creating APK..."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Could not find template APK to export:\n"
"%s"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Missing libraries in the export template for the selected architectures: "
"%s.\n"
@@ -12919,19 +13017,19 @@ msgid ""
"architectures in the export preset."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Adding files..."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Could not export project files"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Aligning APK..."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Could not unzip temporary unaligned APK."
msgstr ""
@@ -13382,6 +13480,14 @@ msgid ""
"It only provides navigation data."
msgstr ""
+#: scene/3d/occluder.cpp
+msgid "No shape is set."
+msgstr ""
+
+#: scene/3d/occluder.cpp
+msgid "Only uniform scales are supported."
+msgstr ""
+
#: scene/3d/particles.cpp
msgid ""
"GPU-based particles are not supported by the GLES2 video driver.\n"
@@ -13672,6 +13778,14 @@ msgstr "Baliozko luzapena erabili behar du."
msgid "Enable grid minimap."
msgstr "Gaitu atxikitzea"
+#: scene/gui/nine_patch_rect.cpp
+msgid ""
+"The Tile and Tile Fit options for Axis Stretch properties are only effective "
+"when using the GLES3 rendering backend.\n"
+"The GLES2 backend is currently in use, so these modes will act like Stretch "
+"instead."
+msgstr ""
+
#: scene/gui/popup.cpp
msgid ""
"Popups will hide by default unless you call popup() or any of the popup*() "
@@ -13712,6 +13826,10 @@ msgstr ""
msgid "Viewport size must be greater than 0 to render anything."
msgstr ""
+#: scene/resources/occluder_shape.cpp
+msgid "OccluderShapeSphere Set Spheres"
+msgstr ""
+
#: scene/resources/visual_shader_nodes.cpp
msgid ""
"The sampler port is connected but not used. Consider changing the source to "
diff --git a/editor/translations/fa.po b/editor/translations/fa.po
index bb761cf137..2d086fe827 100644
--- a/editor/translations/fa.po
+++ b/editor/translations/fa.po
@@ -21,12 +21,13 @@
# ItzMiad44909858f5774b6d <maidggg@gmail.com>, 2020.
# YASAN <yasandev@gmail.com>, 2021.
# duniyal ras <duniyalr@gmail.com>, 2021.
+# عبدالرئو٠عابدی <abdolraoofabedi@gmail.com>, 2021.
msgid ""
msgstr ""
"Project-Id-Version: Godot Engine editor\n"
"POT-Creation-Date: \n"
-"PO-Revision-Date: 2021-07-13 06:13+0000\n"
-"Last-Translator: duniyal ras <duniyalr@gmail.com>\n"
+"PO-Revision-Date: 2021-08-27 08:25+0000\n"
+"Last-Translator: عبدالرئو٠عابدی <abdolraoofabedi@gmail.com>\n"
"Language-Team: Persian <https://hosted.weblate.org/projects/godot-engine/"
"godot/fa/>\n"
"Language: fa\n"
@@ -34,7 +35,7 @@ msgstr ""
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=n > 1;\n"
-"X-Generator: Weblate 4.7.2-dev\n"
+"X-Generator: Weblate 4.8.1-dev\n"
#: core/math/expression.cpp modules/gdscript/gdscript_functions.cpp
#: modules/visual_script/visual_script_builtin_funcs.cpp
@@ -390,7 +391,6 @@ msgstr "در حال اتصال..."
#. TRANSLATORS: This describes the target of new animation track, will be inserted into another string.
#: editor/animation_track_editor.cpp
-#, fuzzy
msgid "animation"
msgstr "انیمیشن"
@@ -400,9 +400,8 @@ msgstr "انیمیشن پلیر نمی تواند خود را انیمیت Ú©Ù†Ø
#. TRANSLATORS: This describes the target of new animation track, will be inserted into another string.
#: editor/animation_track_editor.cpp
-#, fuzzy
msgid "property '%s'"
-msgstr "ویژگی '%s' موجود نیست."
+msgstr "ویژگی \"٪ s\""
#: editor/animation_track_editor.cpp
msgid "Anim Create & Insert"
@@ -610,9 +609,8 @@ msgid "Go to Previous Step"
msgstr "برو به گام پیشین"
#: editor/animation_track_editor.cpp
-#, fuzzy
msgid "Apply Reset"
-msgstr "بازنشانی بزرگنمایی"
+msgstr "بازنشانی را اعمال کنید"
#: editor/animation_track_editor.cpp
msgid "Optimize Animation"
@@ -631,9 +629,8 @@ msgid "Use Bezier Curves"
msgstr "بکارگیری منحنی Ø¨ÙØ²ÛŒÙر"
#: editor/animation_track_editor.cpp
-#, fuzzy
msgid "Create RESET Track(s)"
-msgstr "جاگذاری مسیر ها"
+msgstr "ایجاد آهنگ (های) بازنشانی"
#: editor/animation_track_editor.cpp
msgid "Anim. Optimizer"
@@ -975,12 +972,13 @@ msgid "Create New %s"
msgstr "ساختن %s جدید"
#: editor/create_dialog.cpp editor/plugins/asset_library_editor_plugin.cpp
+#, fuzzy
msgid "No results for \"%s\"."
-msgstr ""
+msgstr "هیچ نتیجه ای برای \"٪ s\" وجود ندارد."
#: editor/create_dialog.cpp editor/property_selector.cpp
msgid "No description available for %s."
-msgstr ""
+msgstr "توضیحی برای٪ s در دسترس نیست."
#: editor/create_dialog.cpp editor/editor_file_dialog.cpp
#: editor/filesystem_dock.cpp
@@ -1040,7 +1038,7 @@ msgstr ""
msgid "Dependencies"
msgstr "بستگی‌ها"
-#: editor/dependency_editor.cpp
+#: editor/dependency_editor.cpp editor/editor_resource_picker.cpp
msgid "Resource"
msgstr "منبع"
@@ -1085,7 +1083,10 @@ msgid ""
"Remove the selected files from the project? (Cannot be undone.)\n"
"Depending on your filesystem configuration, the files will either be moved "
"to the system trash or deleted permanently."
-msgstr "آیا پرونده‌های انتخاب شده از طرح حذ٠شوند؟ (غیر قابل بازیابی)"
+msgstr ""
+"ÙØ§ÛŒÙ„های انتخابی از پروژه حذ٠شوند؟ (قابل واگرد نیست.)\n"
+"بسته به پیکربندی سیستم ÙØ§ÛŒÙ„ شما ØŒ ÙØ§ÛŒÙ„ ها یا به سطل زباله سیستم منتقل Ù…ÛŒ "
+"شوند و یا برای همیشه حذ٠می شوند."
#: editor/dependency_editor.cpp
#, fuzzy
@@ -1096,10 +1097,10 @@ msgid ""
"Depending on your filesystem configuration, the files will either be moved "
"to the system trash or deleted permanently."
msgstr ""
-"پرونده‌هایی که می‌خواهید حذ٠شوند برای منابع دیگر مورد نیاز هستند تا کار "
-"کنند.\n"
-"آیا در هر صورت حذ٠شوند؟(بدون برگشت)\n"
-"شما میتوانید ÙØ§ÛŒÙ„ های حذ٠شده را در سطل زباله سیستم عامل خود بیابید ."
+"ÙØ§ÛŒÙ„ های در حال حذ٠توسط منابع دیگر مورد نیاز است تا بتوانند کار کنند.\n"
+"به هر حال آنها را حذ٠کنم؟ (قابل واگرد نیست.)\n"
+"بسته به پیکربندی سیستم ÙØ§ÛŒÙ„ شما ØŒ ÙØ§ÛŒÙ„ ها یا به سطل زباله سیستم منتقل Ù…ÛŒ "
+"شوند و یا برای همیشه حذ٠می شوند."
#: editor/dependency_editor.cpp
msgid "Cannot remove:"
@@ -1687,13 +1688,13 @@ msgid ""
"Enabled'."
msgstr ""
-#: editor/editor_export.cpp platform/android/export/export.cpp
+#: editor/editor_export.cpp platform/android/export/export_plugin.cpp
#: platform/iphone/export/export.cpp platform/javascript/export/export.cpp
#: platform/osx/export/export.cpp platform/uwp/export/export.cpp
msgid "Custom debug template not found."
msgstr ""
-#: editor/editor_export.cpp platform/android/export/export.cpp
+#: editor/editor_export.cpp platform/android/export/export_plugin.cpp
#: platform/iphone/export/export.cpp platform/javascript/export/export.cpp
#: platform/osx/export/export.cpp platform/uwp/export/export.cpp
msgid "Custom release template not found."
@@ -2073,7 +2074,7 @@ msgstr ""
msgid "(Re)Importing Assets"
msgstr "(در حال) وارد کردن دوباره عست ها"
-#: editor/editor_help.cpp editor/plugins/spatial_editor_plugin.cpp
+#: editor/editor_help.cpp
msgid "Top"
msgstr ""
@@ -2551,6 +2552,32 @@ msgid "Current scene not saved. Open anyway?"
msgstr ""
#: editor/editor_node.cpp
+msgid "Can't undo while mouse buttons are pressed."
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "Nothing to undo."
+msgstr ""
+
+#: editor/editor_node.cpp
+#, fuzzy
+msgid "Undo: %s"
+msgstr "عقب‌گرد"
+
+#: editor/editor_node.cpp
+msgid "Can't redo while mouse buttons are pressed."
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "Nothing to redo."
+msgstr ""
+
+#: editor/editor_node.cpp
+#, fuzzy
+msgid "Redo: %s"
+msgstr "جلوگرد"
+
+#: editor/editor_node.cpp
msgid "Can't reload a scene that was never saved."
msgstr ""
@@ -3194,6 +3221,11 @@ msgid "Merge With Existing"
msgstr "ترکیب کردن با نمونه ی موجود"
#: editor/editor_node.cpp
+#, fuzzy
+msgid "Apply MeshInstance Transforms"
+msgstr "تغییر دگرشکل متحرک"
+
+#: editor/editor_node.cpp
msgid "Open & Run a Script"
msgstr "گشودن و اجرای یک اسکریپت"
@@ -3448,6 +3480,10 @@ msgid ""
"property (%s)."
msgstr ""
+#: editor/editor_resource_picker.cpp
+msgid "Quick Load"
+msgstr ""
+
#: editor/editor_resource_picker.cpp editor/property_editor.cpp
msgid "Make Unique"
msgstr ""
@@ -5645,6 +5681,18 @@ msgid "Move CanvasItem \"%s\" to (%d, %d)"
msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Locked"
+msgstr "همه‌ی انتخاب ها"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Grouped"
+msgstr "گروه ها"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
msgid ""
"Children of containers have their anchors and margins values overridden by "
"their parent."
@@ -6598,7 +6646,13 @@ msgid "Remove Selected Item"
msgstr "حذ٠مورد انتخاب‌شده"
#: editor/plugins/mesh_library_editor_plugin.cpp
-msgid "Import from Scene"
+#, fuzzy
+msgid "Import from Scene (Ignore Transforms)"
+msgstr "وارد کردن از صحنه"
+
+#: editor/plugins/mesh_library_editor_plugin.cpp
+#, fuzzy
+msgid "Import from Scene (Apply Transforms)"
msgstr "وارد کردن از صحنه"
#: editor/plugins/mesh_library_editor_plugin.cpp
@@ -7204,6 +7258,16 @@ msgstr "حذ٠کن"
msgid "Flip Portal"
msgstr ""
+#: editor/plugins/room_manager_editor_plugin.cpp
+#, fuzzy
+msgid "Occluder Set Transform"
+msgstr "انتقال را در انیمیشن تغییر بده"
+
+#: editor/plugins/room_manager_editor_plugin.cpp
+#, fuzzy
+msgid "Center Node"
+msgstr "ساختن گره"
+
#: editor/plugins/root_motion_editor_plugin.cpp
msgid "AnimationTree has no path set to an AnimationPlayer"
msgstr ""
@@ -7743,11 +7807,12 @@ msgid "Skeleton2D"
msgstr ""
#: editor/plugins/skeleton_2d_editor_plugin.cpp
-msgid "Make Rest Pose (From Bones)"
-msgstr ""
+#, fuzzy
+msgid "Reset to Rest Pose"
+msgstr "بارگیری پیش ÙØ±Ø¶"
#: editor/plugins/skeleton_2d_editor_plugin.cpp
-msgid "Set Bones to Rest Pose"
+msgid "Overwrite Rest Pose"
msgstr ""
#: editor/plugins/skeleton_editor_plugin.cpp
@@ -7777,6 +7842,61 @@ msgid "Perspective"
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Top Orthogonal"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Top Perspective"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Bottom Orthogonal"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Bottom Perspective"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Left Orthogonal"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Right Perspective"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Right Orthogonal"
+msgstr "دکمهٔ راست."
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Front Orthogonal"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Front Perspective"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Rear Orthogonal"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Rear Perspective"
+msgstr ""
+
+#. TRANSLATORS: This will be appended to the view name when Auto Orthogonal is enabled.
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid " [auto]"
+msgstr ""
+
+#. TRANSLATORS: This will be appended to the view name when Portal Occulusion is enabled.
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid " [portals active]"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
msgid "Transform Aborted."
msgstr ""
@@ -7894,42 +8014,22 @@ msgid "Bottom View."
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
-msgid "Bottom"
-msgstr ""
-
-#: editor/plugins/spatial_editor_plugin.cpp
msgid "Left View."
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
-msgid "Left"
-msgstr ""
-
-#: editor/plugins/spatial_editor_plugin.cpp
msgid "Right View."
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
-msgid "Right"
-msgstr ""
-
-#: editor/plugins/spatial_editor_plugin.cpp
msgid "Front View."
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
-msgid "Front"
-msgstr ""
-
-#: editor/plugins/spatial_editor_plugin.cpp
msgid "Rear View."
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
-msgid "Rear"
-msgstr ""
-
-#: editor/plugins/spatial_editor_plugin.cpp
msgid "Align Transform with View"
msgstr ""
@@ -8201,6 +8301,11 @@ msgid "View Portal Culling"
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "View Occlusion Culling"
+msgstr "ویرایش سیگنال"
+
+#: editor/plugins/spatial_editor_plugin.cpp
#: modules/gridmap/grid_map_editor_plugin.cpp
#, fuzzy
msgid "Settings..."
@@ -8267,8 +8372,9 @@ msgid "Post"
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
-msgid "Nameless gizmo"
-msgstr ""
+#, fuzzy
+msgid "Unnamed Gizmo"
+msgstr "پروژه بی نام"
#: editor/plugins/sprite_editor_plugin.cpp
#, fuzzy
@@ -12485,6 +12591,15 @@ msgstr "برداشتن موج"
msgid "Set Portal Point Position"
msgstr "برداشتن موج"
+#: editor/spatial_editor_gizmos.cpp
+msgid "Set Occluder Sphere Radius"
+msgstr ""
+
+#: editor/spatial_editor_gizmos.cpp
+#, fuzzy
+msgid "Set Occluder Sphere Position"
+msgstr "برداشتن موج"
+
#: modules/csg/csg_gizmos.cpp
msgid "Change Cylinder Radius"
msgstr ""
@@ -12791,6 +12906,11 @@ msgstr ""
msgid "Class name can't be a reserved keyword"
msgstr ""
+#: modules/mono/csharp_script.cpp
+#, fuzzy
+msgid "Build Solution"
+msgstr "همه‌ی انتخاب ها"
+
#: modules/mono/mono_gd/gd_mono_utils.cpp
msgid "End of inner exception stack trace"
msgstr ""
@@ -13304,165 +13424,154 @@ msgstr "حذ٠گره اسکریپت٠دیداری"
msgid "Get %s"
msgstr "Ú¯Ø±ÙØªÙ† %s"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Package name is missing."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Package segments must be of non-zero length."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "The character '%s' is not allowed in Android application package names."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "A digit cannot be the first character in a package segment."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "The character '%s' cannot be the first character in a package segment."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "The package must have at least one '.' separator."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Select device from the list"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Running on %s"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
#, fuzzy
msgid "Exporting APK..."
msgstr "صدور"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
#, fuzzy
msgid "Uninstalling..."
msgstr "نصب کردن"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
#, fuzzy
msgid "Installing to device, please wait..."
msgstr "بارگیری"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
#, fuzzy
msgid "Could not install to device: %s"
msgstr "نمی‌تواند یک پوشه ایجاد شود."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Running on device..."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
#, fuzzy
msgid "Could not execute on device."
msgstr "ناتوان در ساختن پوشه."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Unable to find the 'apksigner' tool."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Android build template not installed in the project. Install it from the "
"Project menu."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Either Debug Keystore, Debug User AND Debug Password settings must be "
"configured OR none of them."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Debug keystore not configured in the Editor Settings nor in the preset."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Either Release Keystore, Release User AND Release Password settings must be "
"configured OR none of them."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Release keystore incorrectly configured in the export preset."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "A valid Android SDK path is required in Editor Settings."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Invalid Android SDK path in Editor Settings."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Missing 'platform-tools' directory!"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Unable to find Android SDK platform-tools' adb command."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Please check in the Android SDK directory specified in Editor Settings."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Missing 'build-tools' directory!"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Unable to find Android SDK build-tools' apksigner command."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Invalid public key for APK expansion."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
#, fuzzy
msgid "Invalid package name:"
msgstr "نام نامعتبر."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Invalid \"GodotPaymentV3\" module included in the \"android/modules\" "
"project setting (changed in Godot 3.2.2).\n"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "\"Use Custom Build\" must be enabled to use the plugins."
msgstr ""
-#: platform/android/export/export.cpp
-msgid ""
-"\"Degrees Of Freedom\" is only valid when \"Xr Mode\" is \"Oculus Mobile VR"
-"\"."
-msgstr ""
-
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"\"Hand Tracking\" is only valid when \"Xr Mode\" is \"Oculus Mobile VR\"."
msgstr ""
-#: platform/android/export/export.cpp
-msgid ""
-"\"Focus Awareness\" is only valid when \"Xr Mode\" is \"Oculus Mobile VR\"."
-msgstr ""
-
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "\"Export AAB\" is only valid when \"Use Custom Build\" is enabled."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"'apksigner' could not be found.\n"
"Please check the command is available in the Android SDK build-tools "
@@ -13470,60 +13579,60 @@ msgid ""
"The resulting %s is unsigned."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Signing debug %s..."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Signing release %s..."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
#, fuzzy
msgid "Could not find keystore, unable to export."
msgstr "نمی‌تواند یک پوشه ایجاد شود."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "'apksigner' returned with error #%d"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
#, fuzzy
msgid "Verifying %s..."
msgstr "ترجیحات"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "'apksigner' verification of %s failed."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
#, fuzzy
msgid "Exporting for Android"
msgstr "صدور"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Invalid filename! Android App Bundle requires the *.aab extension."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "APK Expansion not compatible with Android App Bundle."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Invalid filename! Android APK requires the *.apk extension."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Unsupported export format!\n"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Trying to build from a custom built template, but no version info for it "
"exists. Please reinstall from the 'Project' menu."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Android build version mismatch:\n"
" Template installed: %s\n"
@@ -13531,58 +13640,58 @@ msgid ""
"Please reinstall Android build template from 'Project' menu."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Unable to overwrite res://android/build/res/*.xml files with project name"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Could not export project files to gradle project\n"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
#, fuzzy
msgid "Could not write expansion package file!"
msgstr "نمی‌تواند یک پوشه ایجاد شود."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Building Android Project (gradle)"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Building of Android project failed, check output for the error.\n"
"Alternatively visit docs.godotengine.org for Android build documentation."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Moving output"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Unable to copy and rename export file, check gradle project directory for "
"outputs."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
#, fuzzy
msgid "Package not found: %s"
msgstr "طول انیمیشن (به ثانیه)."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
#, fuzzy
msgid "Creating APK..."
msgstr "در حال اتصال..."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
#, fuzzy
msgid ""
"Could not find template APK to export:\n"
"%s"
msgstr "نمی‌تواند یک پوشه ایجاد شود."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Missing libraries in the export template for the selected architectures: "
"%s.\n"
@@ -13590,21 +13699,21 @@ msgid ""
"architectures in the export preset."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
#, fuzzy
msgid "Adding files..."
msgstr "ÛŒØ§ÙØªÙ†"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
#, fuzzy
msgid "Could not export project files"
msgstr "نمی‌تواند یک پوشه ایجاد شود."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Aligning APK..."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Could not unzip temporary unaligned APK."
msgstr ""
@@ -14117,6 +14226,14 @@ msgstr ""
"NavigationMeshInstance باید یک ÙØ±Ø²Ù†Ø¯ یا نوه‌ی یک گره Navigation باشد. این "
"تنها داده‌ی پیمایش را ÙØ±Ø§Ù‡Ù… می‌کند."
+#: scene/3d/occluder.cpp
+msgid "No shape is set."
+msgstr ""
+
+#: scene/3d/occluder.cpp
+msgid "Only uniform scales are supported."
+msgstr ""
+
#: scene/3d/particles.cpp
msgid ""
"GPU-based particles are not supported by the GLES2 video driver.\n"
@@ -14422,6 +14539,14 @@ msgstr "باید یک پسوند معتبر بکار گیرید."
msgid "Enable grid minimap."
msgstr ""
+#: scene/gui/nine_patch_rect.cpp
+msgid ""
+"The Tile and Tile Fit options for Axis Stretch properties are only effective "
+"when using the GLES3 rendering backend.\n"
+"The GLES2 backend is currently in use, so these modes will act like Stretch "
+"instead."
+msgstr ""
+
#: scene/gui/popup.cpp
#, fuzzy
msgid ""
@@ -14470,6 +14595,10 @@ msgstr ""
msgid "Viewport size must be greater than 0 to render anything."
msgstr ""
+#: scene/resources/occluder_shape.cpp
+msgid "OccluderShapeSphere Set Spheres"
+msgstr ""
+
#: scene/resources/visual_shader_nodes.cpp
msgid ""
"The sampler port is connected but not used. Consider changing the source to "
diff --git a/editor/translations/fi.po b/editor/translations/fi.po
index ffedccec28..79a1e722b5 100644
--- a/editor/translations/fi.po
+++ b/editor/translations/fi.po
@@ -16,7 +16,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Godot Engine editor\n"
"POT-Creation-Date: \n"
-"PO-Revision-Date: 2021-08-10 21:40+0000\n"
+"PO-Revision-Date: 2021-09-21 15:22+0000\n"
"Last-Translator: Tapani Niemi <tapani.niemi@kapsi.fi>\n"
"Language-Team: Finnish <https://hosted.weblate.org/projects/godot-engine/"
"godot/fi/>\n"
@@ -25,7 +25,7 @@ msgstr ""
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=n != 1;\n"
-"X-Generator: Weblate 4.8-dev\n"
+"X-Generator: Weblate 4.9-dev\n"
#: core/math/expression.cpp modules/gdscript/gdscript_functions.cpp
#: modules/visual_script/visual_script_builtin_funcs.cpp
@@ -374,15 +374,13 @@ msgstr "Animaatio: lisää"
#. TRANSLATORS: This describes the target of new animation track, will be inserted into another string.
#: editor/animation_track_editor.cpp
-#, fuzzy
msgid "node '%s'"
-msgstr "Ei voida avata tiedostoa '%s'."
+msgstr "solmu '%s'"
#. TRANSLATORS: This describes the target of new animation track, will be inserted into another string.
#: editor/animation_track_editor.cpp
-#, fuzzy
msgid "animation"
-msgstr "Animaatio"
+msgstr "animaatio"
#: editor/animation_track_editor.cpp
msgid "AnimationPlayer can't animate itself, only other players."
@@ -390,9 +388,8 @@ msgstr "AnimationPlayer ei voi animoida itseään, vain muita toistimia."
#. TRANSLATORS: This describes the target of new animation track, will be inserted into another string.
#: editor/animation_track_editor.cpp
-#, fuzzy
msgid "property '%s'"
-msgstr "Ominaisuutta '%s' ei löytynyt."
+msgstr "ominaisuus '%s'"
#: editor/animation_track_editor.cpp
msgid "Anim Create & Insert"
@@ -1025,7 +1022,7 @@ msgstr ""
msgid "Dependencies"
msgstr "Riippuvuudet"
-#: editor/dependency_editor.cpp
+#: editor/dependency_editor.cpp editor/editor_resource_picker.cpp
msgid "Resource"
msgstr "Resurssi"
@@ -1685,13 +1682,13 @@ msgstr ""
"Kytke 'Import Pvrtc' päälle projektin asetuksista tai poista 'Driver "
"Fallback Enabled' asetus."
-#: editor/editor_export.cpp platform/android/export/export.cpp
+#: editor/editor_export.cpp platform/android/export/export_plugin.cpp
#: platform/iphone/export/export.cpp platform/javascript/export/export.cpp
#: platform/osx/export/export.cpp platform/uwp/export/export.cpp
msgid "Custom debug template not found."
msgstr "Mukautettua debug-vientimallia ei löytynyt."
-#: editor/editor_export.cpp platform/android/export/export.cpp
+#: editor/editor_export.cpp platform/android/export/export_plugin.cpp
#: platform/iphone/export/export.cpp platform/javascript/export/export.cpp
#: platform/osx/export/export.cpp platform/uwp/export/export.cpp
msgid "Custom release template not found."
@@ -2072,7 +2069,7 @@ msgstr ""
msgid "(Re)Importing Assets"
msgstr "Tuodaan (uudelleen) assetteja"
-#: editor/editor_help.cpp editor/plugins/spatial_editor_plugin.cpp
+#: editor/editor_help.cpp
msgid "Top"
msgstr "Yläpuoli"
@@ -2309,6 +2306,9 @@ msgid ""
"Update Continuously is enabled, which can increase power usage. Click to "
"disable it."
msgstr ""
+"Pyörii editori-ikkunan piirtäessä.\n"
+"Päivitä jatkuvasti -asetus on päällä, mikä voi lisätä virrankulutusta. "
+"Napsauta kytkeäksesi se pois päältä."
#: editor/editor_node.cpp
msgid "Spins when the editor window redraws."
@@ -2584,6 +2584,32 @@ msgid "Current scene not saved. Open anyway?"
msgstr "Nykyistä skeneä ei ole tallennettu. Avaa joka tapauksessa?"
#: editor/editor_node.cpp
+msgid "Can't undo while mouse buttons are pressed."
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "Nothing to undo."
+msgstr ""
+
+#: editor/editor_node.cpp
+#, fuzzy
+msgid "Undo: %s"
+msgstr "Peru"
+
+#: editor/editor_node.cpp
+msgid "Can't redo while mouse buttons are pressed."
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "Nothing to redo."
+msgstr ""
+
+#: editor/editor_node.cpp
+#, fuzzy
+msgid "Redo: %s"
+msgstr "Tee uudelleen"
+
+#: editor/editor_node.cpp
msgid "Can't reload a scene that was never saved."
msgstr "Ei voida ladata uudelleen skeneä, jota ei ole koskaan tallennettu."
@@ -3263,6 +3289,11 @@ msgid "Merge With Existing"
msgstr "Yhdistä olemassaolevaan"
#: editor/editor_node.cpp
+#, fuzzy
+msgid "Apply MeshInstance Transforms"
+msgstr "Animaatio: muuta muunnosta"
+
+#: editor/editor_node.cpp
msgid "Open & Run a Script"
msgstr "Avaa ja suorita skripti"
@@ -3521,6 +3552,10 @@ msgstr ""
"Valittu resurssi (%s) ei vastaa mitään odotettua tyyppiä tälle "
"ominaisuudelle (%s)."
+#: editor/editor_resource_picker.cpp
+msgid "Quick Load"
+msgstr ""
+
#: editor/editor_resource_picker.cpp editor/property_editor.cpp
msgid "Make Unique"
msgstr "Tee yksilölliseksi"
@@ -3590,10 +3625,9 @@ msgid "Did you forget the '_run' method?"
msgstr "Unohditko '_run' metodin?"
#: editor/editor_spin_slider.cpp
-#, fuzzy
msgid "Hold %s to round to integers. Hold Shift for more precise changes."
msgstr ""
-"Pidä Ctrl pohjassa pyöristääksesi kokonaislukuun. Pidä Shift pohjassa "
+"Pidä %s pohjassa pyöristääksesi kokonaislukuun. Pidä Shift pohjassa "
"tarkempia muutoksia varten."
#: editor/editor_sub_scene.cpp
@@ -3614,21 +3648,19 @@ msgstr "Tuo solmusta:"
#: editor/export_template_manager.cpp
msgid "Open the folder containing these templates."
-msgstr ""
+msgstr "Avaa kansio, joka sisältää nämä vientimallit."
#: editor/export_template_manager.cpp
msgid "Uninstall these templates."
-msgstr ""
+msgstr "Poista näiden vientimallien asennus."
#: editor/export_template_manager.cpp
-#, fuzzy
msgid "There are no mirrors available."
-msgstr "Tiedostoa '%s' ei ole."
+msgstr "Peilipalvelimia ei ole saatavilla."
#: editor/export_template_manager.cpp
-#, fuzzy
msgid "Retrieving the mirror list..."
-msgstr "Noudetaan peilipalvelimia, hetkinen..."
+msgstr "Noudetaan luetteloa peilipalvelimista..."
#: editor/export_template_manager.cpp
msgid "Starting the download..."
@@ -3688,7 +3720,6 @@ msgid "Error getting the list of mirrors."
msgstr "Virhe peilipalvelimien listan haussa."
#: editor/export_template_manager.cpp
-#, fuzzy
msgid "Error parsing JSON with the list of mirrors. Please report this issue!"
msgstr ""
"Virhe jäsennettäessä peilipalvelimien JSON-listaa. Raportoi tämä ongelma, "
@@ -3753,19 +3784,16 @@ msgid "Can't open the export templates file."
msgstr "Vientimallien tiedostoa ei voida avata."
#: editor/export_template_manager.cpp
-#, fuzzy
msgid "Invalid version.txt format inside the export templates file: %s."
-msgstr "Vientimalli sisältää virheellisen version.txt tiedoston: %s."
+msgstr "Vientimalli sisältää virheellisen version.txt tallennusmuodon: %s."
#: editor/export_template_manager.cpp
-#, fuzzy
msgid "No version.txt found inside the export templates file."
-msgstr "Vientimalleista ei löytynyt version.txt tiedostoa."
+msgstr "Vientimallista ei löytynyt version.txt tiedostoa."
#: editor/export_template_manager.cpp
-#, fuzzy
msgid "Error creating path for extracting templates:"
-msgstr "Virhe luotaessa polkua malleille:"
+msgstr "Virhe luotaessa polkua vientimallien purkamista varten:"
#: editor/export_template_manager.cpp
msgid "Extracting Export Templates"
@@ -3776,9 +3804,8 @@ msgid "Importing:"
msgstr "Tuodaan:"
#: editor/export_template_manager.cpp
-#, fuzzy
msgid "Remove templates for the version '%s'?"
-msgstr "Poista mallin versio '%s'?"
+msgstr "Poista vientimallit versiolle '%s'?"
#: editor/export_template_manager.cpp
msgid "Uncompressing Android Build Sources"
@@ -3794,11 +3821,11 @@ msgstr "Nykyinen versio:"
#: editor/export_template_manager.cpp
msgid "Export templates are missing. Download them or install from a file."
-msgstr ""
+msgstr "Vientimallit puuttuvat. Lataa ne tai asenna ne tiedostosta."
#: editor/export_template_manager.cpp
msgid "Export templates are installed and ready to be used."
-msgstr ""
+msgstr "Vientimallit ovat asennettu ja valmiita käyttöä varten."
#: editor/export_template_manager.cpp
msgid "Open Folder"
@@ -3806,30 +3833,27 @@ msgstr "Avaa kansio"
#: editor/export_template_manager.cpp
msgid "Open the folder containing installed templates for the current version."
-msgstr ""
+msgstr "Avaa kansio, joka sisältää vientimallit nykyistä versiota varten."
#: editor/export_template_manager.cpp
msgid "Uninstall"
msgstr "Poista asennus"
#: editor/export_template_manager.cpp
-#, fuzzy
msgid "Uninstall templates for the current version."
-msgstr "Laskurin alkuarvo"
+msgstr "Poista vientimallien asennus nykyiseltä versiolta."
#: editor/export_template_manager.cpp
msgid "Download from:"
msgstr "Lataa sijannista:"
#: editor/export_template_manager.cpp
-#, fuzzy
msgid "Open in Web Browser"
-msgstr "Suorita selaimessa"
+msgstr "Avaa selaimessa"
#: editor/export_template_manager.cpp
-#, fuzzy
msgid "Copy Mirror URL"
-msgstr "Kopioi virhe"
+msgstr "Kopioi peilipalvelimen web-osoite"
#: editor/export_template_manager.cpp
msgid "Download and Install"
@@ -4070,7 +4094,7 @@ msgstr "Nimeä uudelleen..."
#: editor/filesystem_dock.cpp
msgid "Focus the search box"
-msgstr ""
+msgstr "Kohdista hakukenttään"
#: editor/filesystem_dock.cpp
msgid "Previous Folder/File"
@@ -4416,18 +4440,16 @@ msgid "Extra resource options."
msgstr "Ylimääräiset resurssivalinnat."
#: editor/inspector_dock.cpp
-#, fuzzy
msgid "Edit Resource from Clipboard"
-msgstr "Muokkaa resurssien leikepöytää"
+msgstr "Muokkaa leikepöydän resurssia"
#: editor/inspector_dock.cpp
msgid "Copy Resource"
msgstr "Kopioi resurssi"
#: editor/inspector_dock.cpp
-#, fuzzy
msgid "Make Resource Built-In"
-msgstr "Tee sisäänrakennettu"
+msgstr "Tee resurssista sisäänrakennettu"
#: editor/inspector_dock.cpp
msgid "Go to the previous edited object in history."
@@ -4442,9 +4464,8 @@ msgid "History of recently edited objects."
msgstr "Viimeisimmin muokatut objektit."
#: editor/inspector_dock.cpp
-#, fuzzy
msgid "Open documentation for this object."
-msgstr "Avaa dokumentaatio"
+msgstr "Avaa dokumentaatio tälle objektille."
#: editor/inspector_dock.cpp editor/scene_tree_dock.cpp
msgid "Open Documentation"
@@ -4455,9 +4476,8 @@ msgid "Filter properties"
msgstr "Suodata ominaisuuksia"
#: editor/inspector_dock.cpp
-#, fuzzy
msgid "Manage object properties."
-msgstr "Objektin ominaisuudet."
+msgstr "Hallitse objektin ominaisuuksia."
#: editor/inspector_dock.cpp
msgid "Changes may be lost!"
@@ -4702,9 +4722,8 @@ msgid "Blend:"
msgstr "Sulautus:"
#: editor/plugins/animation_blend_tree_editor_plugin.cpp
-#, fuzzy
msgid "Parameter Changed:"
-msgstr "Parametri muutettu"
+msgstr "Parametri muutettu:"
#: editor/plugins/animation_blend_tree_editor_plugin.cpp
#: editor/plugins/animation_tree_player_editor_plugin.cpp
@@ -5434,7 +5453,7 @@ msgstr "Kaikki"
#: editor/plugins/asset_library_editor_plugin.cpp
msgid "Search templates, projects, and demos"
-msgstr ""
+msgstr "Hae malleja, projekteja ja esimerkkejä"
#: editor/plugins/asset_library_editor_plugin.cpp
msgid "Search assets (excluding templates, projects, and demos)"
@@ -5641,6 +5660,18 @@ msgid "Move CanvasItem \"%s\" to (%d, %d)"
msgstr "Siirrä CanvasItem \"%s\" koordinaattiin (%d, %d)"
#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Locked"
+msgstr "Lukitse valitut"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Grouped"
+msgstr "Ryhmät"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
msgid ""
"Children of containers have their anchors and margins values overridden by "
"their parent."
@@ -5826,31 +5857,27 @@ msgstr "Valintatila"
#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp
-#, fuzzy
msgid "Drag: Rotate selected node around pivot."
-msgstr "Poista valittu solmu tai siirtymä."
+msgstr "Vedä: kierrä valittua solmua kääntökeskiön ympäri."
#: editor/plugins/canvas_item_editor_plugin.cpp
-#, fuzzy
msgid "Alt+Drag: Move selected node."
-msgstr "Alt+Vedä: Siirrä"
+msgstr "Alt+Vedä: Siirrä valittua solmua."
#: editor/plugins/canvas_item_editor_plugin.cpp
-#, fuzzy
msgid "V: Set selected node's pivot position."
-msgstr "Poista valittu solmu tai siirtymä."
+msgstr "V: Aseta nykyisen solmun kääntökeskiön sijainti."
#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp
-#, fuzzy
msgid "Alt+RMB: Show list of all nodes at position clicked, including locked."
msgstr ""
-"Näytä lista kaikista napsautetussa kohdassa olevista objekteista\n"
-"(sama kuin Alt + Hiiren oikea painike valintatilassa)."
+"Alt+Hiiren oikea painike: Näytä lista kaikista napsautetussa kohdassa "
+"olevista solmuista, mukaan lukien lukituista."
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "RMB: Add node at position clicked."
-msgstr ""
+msgstr "Hiiren oikea painike: Lisää solmu napsautettuun paikkaan."
#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp
@@ -6088,14 +6115,12 @@ msgid "Clear Pose"
msgstr "Tyhjennä asento"
#: editor/plugins/canvas_item_editor_plugin.cpp
-#, fuzzy
msgid "Add Node Here"
-msgstr "Lisää solmu"
+msgstr "Lisää solmu tähän"
#: editor/plugins/canvas_item_editor_plugin.cpp
-#, fuzzy
msgid "Instance Scene Here"
-msgstr "Luo ilmentymä skenestä tai skeneistä"
+msgstr "Luo ilmentymä skenestä tähän"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Multiply grid step by 2"
@@ -6111,49 +6136,43 @@ msgstr "Panorointinäkymä"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Zoom to 3.125%"
-msgstr ""
+msgstr "Aseta lähennystasoksi 3.125%"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Zoom to 6.25%"
-msgstr ""
+msgstr "Aseta lähennystasoksi 6.25%"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Zoom to 12.5%"
-msgstr ""
+msgstr "Aseta lähennystasoksi 12.5%"
#: editor/plugins/canvas_item_editor_plugin.cpp
-#, fuzzy
msgid "Zoom to 25%"
-msgstr "Loitonna"
+msgstr "Aseta lähennystasoksi 25%"
#: editor/plugins/canvas_item_editor_plugin.cpp
-#, fuzzy
msgid "Zoom to 50%"
-msgstr "Loitonna"
+msgstr "Aseta lähennystasoksi 50%"
#: editor/plugins/canvas_item_editor_plugin.cpp
-#, fuzzy
msgid "Zoom to 100%"
-msgstr "Loitonna"
+msgstr "Aseta lähennystasoksi 100%"
#: editor/plugins/canvas_item_editor_plugin.cpp
-#, fuzzy
msgid "Zoom to 200%"
-msgstr "Loitonna"
+msgstr "Aseta lähennystasoksi 200%"
#: editor/plugins/canvas_item_editor_plugin.cpp
-#, fuzzy
msgid "Zoom to 400%"
-msgstr "Loitonna"
+msgstr "Aseta lähennystasoksi 400%"
#: editor/plugins/canvas_item_editor_plugin.cpp
-#, fuzzy
msgid "Zoom to 800%"
-msgstr "Loitonna"
+msgstr "Aseta lähennystasoksi 800%"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Zoom to 1600%"
-msgstr ""
+msgstr "Aseta lähennystasoksi 1600%"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Add %s"
@@ -6398,9 +6417,8 @@ msgid "Couldn't create a single convex collision shape."
msgstr "Ei voitu luoda yksittäistä konveksia törmäysmuotoa."
#: editor/plugins/mesh_instance_editor_plugin.cpp
-#, fuzzy
msgid "Create Simplified Convex Shape"
-msgstr "Luo yksittäinen konveksi muoto"
+msgstr "Luo pelkistetty konveksi muoto"
#: editor/plugins/mesh_instance_editor_plugin.cpp
msgid "Create Single Convex Shape"
@@ -6435,9 +6453,8 @@ msgid "No mesh to debug."
msgstr "Ei meshiä debugattavaksi."
#: editor/plugins/mesh_instance_editor_plugin.cpp
-#, fuzzy
msgid "Mesh has no UV in layer %d."
-msgstr "Mallilla ei ole UV-kanavaa tällä kerroksella"
+msgstr "Meshillä ei ole UV-kanavaa kerroksella %d."
#: editor/plugins/mesh_instance_editor_plugin.cpp
msgid "MeshInstance lacks a Mesh!"
@@ -6502,9 +6519,8 @@ msgstr ""
"Tämä on nopein (mutta epätarkin) vaihtoehto törmäystunnistukselle."
#: editor/plugins/mesh_instance_editor_plugin.cpp
-#, fuzzy
msgid "Create Simplified Convex Collision Sibling"
-msgstr "Luo yksittäisen konveksin törmäyksen sisar"
+msgstr "Luo pelkistetty konveksin törmäyksen sisar"
#: editor/plugins/mesh_instance_editor_plugin.cpp
msgid ""
@@ -6512,20 +6528,24 @@ msgid ""
"This is similar to single collision shape, but can result in a simpler "
"geometry in some cases, at the cost of accuracy."
msgstr ""
+"Luo pelkistetyn konveksin törmäysmuodon.\n"
+"Tämä on samankaltainen kuin yksittäinen törmäysmuoto, mutta voi johtaa "
+"joissakin tapauksissa yksinkertaisempaan geometriaan tarkkuuden "
+"kustannuksella."
#: editor/plugins/mesh_instance_editor_plugin.cpp
msgid "Create Multiple Convex Collision Siblings"
msgstr "Luo useita konvekseja törmäysmuotojen sisaria"
#: editor/plugins/mesh_instance_editor_plugin.cpp
-#, fuzzy
msgid ""
"Creates a polygon-based collision shape.\n"
"This is a performance middle-ground between a single convex collision and a "
"polygon-based collision."
msgstr ""
"Luo polygonipohjaisen törmäysmuodon.\n"
-"Tämä on suorituskyvyltään välimaastoa kahdelle yllä olevalle vaihtoehdolle."
+"Tämä on suorituskyvyltään yksittäisen konveksin törmäyksen ja "
+"polygonipohjaisen törmäyksen välimaastoa."
#: editor/plugins/mesh_instance_editor_plugin.cpp
msgid "Create Outline Mesh..."
@@ -6592,7 +6612,13 @@ msgid "Remove Selected Item"
msgstr "Poista valitut kohteet"
#: editor/plugins/mesh_library_editor_plugin.cpp
-msgid "Import from Scene"
+#, fuzzy
+msgid "Import from Scene (Ignore Transforms)"
+msgstr "Tuo skenestä"
+
+#: editor/plugins/mesh_library_editor_plugin.cpp
+#, fuzzy
+msgid "Import from Scene (Apply Transforms)"
msgstr "Tuo skenestä"
#: editor/plugins/mesh_library_editor_plugin.cpp
@@ -7171,24 +7197,30 @@ msgid "ResourcePreloader"
msgstr "Resurssien esilataaja"
#: editor/plugins/room_manager_editor_plugin.cpp
-#, fuzzy
msgid "Flip Portals"
-msgstr "Käännä vaakasuorasti"
+msgstr "Käännä portaalit"
#: editor/plugins/room_manager_editor_plugin.cpp
-#, fuzzy
msgid "Room Generate Points"
-msgstr "Luotujen pisteiden määrä:"
+msgstr "Luo huoneen pisteet"
#: editor/plugins/room_manager_editor_plugin.cpp
-#, fuzzy
msgid "Generate Points"
-msgstr "Luotujen pisteiden määrä:"
+msgstr "Luo pisteet"
#: editor/plugins/room_manager_editor_plugin.cpp
-#, fuzzy
msgid "Flip Portal"
-msgstr "Käännä vaakasuorasti"
+msgstr "Käännä portaali"
+
+#: editor/plugins/room_manager_editor_plugin.cpp
+#, fuzzy
+msgid "Occluder Set Transform"
+msgstr "Tyhjennä muunnos"
+
+#: editor/plugins/room_manager_editor_plugin.cpp
+#, fuzzy
+msgid "Center Node"
+msgstr "Luo solmu"
#: editor/plugins/root_motion_editor_plugin.cpp
msgid "AnimationTree has no path set to an AnimationPlayer"
@@ -7693,12 +7725,14 @@ msgid "Skeleton2D"
msgstr "Skeleton2D"
#: editor/plugins/skeleton_2d_editor_plugin.cpp
-msgid "Make Rest Pose (From Bones)"
-msgstr "Tee lepoasento (luista)"
+#, fuzzy
+msgid "Reset to Rest Pose"
+msgstr "Aseta luut lepoasentoon"
#: editor/plugins/skeleton_2d_editor_plugin.cpp
-msgid "Set Bones to Rest Pose"
-msgstr "Aseta luut lepoasentoon"
+#, fuzzy
+msgid "Overwrite Rest Pose"
+msgstr "Ylikirjoita"
#: editor/plugins/skeleton_editor_plugin.cpp
msgid "Create physical bones"
@@ -7725,6 +7759,71 @@ msgid "Perspective"
msgstr "Perspektiivi"
#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Top Orthogonal"
+msgstr "Ortogonaalinen"
+
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Top Perspective"
+msgstr "Perspektiivi"
+
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Bottom Orthogonal"
+msgstr "Ortogonaalinen"
+
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Bottom Perspective"
+msgstr "Perspektiivi"
+
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Left Orthogonal"
+msgstr "Ortogonaalinen"
+
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Right Perspective"
+msgstr "Perspektiivi"
+
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Right Orthogonal"
+msgstr "Ortogonaalinen"
+
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Front Orthogonal"
+msgstr "Ortogonaalinen"
+
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Front Perspective"
+msgstr "Perspektiivi"
+
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Rear Orthogonal"
+msgstr "Ortogonaalinen"
+
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Rear Perspective"
+msgstr "Perspektiivi"
+
+#. TRANSLATORS: This will be appended to the view name when Auto Orthogonal is enabled.
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid " [auto]"
+msgstr ""
+
+#. TRANSLATORS: This will be appended to the view name when Portal Occulusion is enabled.
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid " [portals active]"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
msgid "Transform Aborted."
msgstr "Muunnos keskeytetty."
@@ -7751,20 +7850,17 @@ msgid "None"
msgstr "Ei mitään"
#: editor/plugins/spatial_editor_plugin.cpp
-#, fuzzy
msgid "Rotate"
-msgstr "Kiertotila"
+msgstr "Kierrä"
#. TRANSLATORS: This refers to the movement that changes the position of an object.
#: editor/plugins/spatial_editor_plugin.cpp
-#, fuzzy
msgid "Translate"
-msgstr "Siirrä:"
+msgstr "Siirrä"
#: editor/plugins/spatial_editor_plugin.cpp
-#, fuzzy
msgid "Scale"
-msgstr "Skaalaus:"
+msgstr "Skaalaa"
#: editor/plugins/spatial_editor_plugin.cpp
msgid "Scaling: "
@@ -7787,52 +7883,44 @@ msgid "Animation Key Inserted."
msgstr "Animaatioavain lisätty."
#: editor/plugins/spatial_editor_plugin.cpp
-#, fuzzy
msgid "Pitch:"
-msgstr "Nyökkäys (pitch)"
+msgstr "Nyökkäyskulma:"
#: editor/plugins/spatial_editor_plugin.cpp
msgid "Yaw:"
-msgstr ""
+msgstr "Kääntymiskulma:"
#: editor/plugins/spatial_editor_plugin.cpp
-#, fuzzy
msgid "Size:"
-msgstr "Koko: "
+msgstr "Koko:"
#: editor/plugins/spatial_editor_plugin.cpp
-#, fuzzy
msgid "Objects Drawn:"
-msgstr "Objekteja piirretty"
+msgstr "Objekteja piirretty:"
#: editor/plugins/spatial_editor_plugin.cpp
-#, fuzzy
msgid "Material Changes:"
-msgstr "Materiaalimuutokset"
+msgstr "Materiaalimuutokset:"
#: editor/plugins/spatial_editor_plugin.cpp
-#, fuzzy
msgid "Shader Changes:"
-msgstr "Sävytinmuutokset"
+msgstr "Sävytinmuutokset:"
#: editor/plugins/spatial_editor_plugin.cpp
-#, fuzzy
msgid "Surface Changes:"
-msgstr "Pintamuutokset"
+msgstr "Pintamuutokset:"
#: editor/plugins/spatial_editor_plugin.cpp
-#, fuzzy
msgid "Draw Calls:"
-msgstr "Piirtokutsuja"
+msgstr "Piirtokutsuja:"
#: editor/plugins/spatial_editor_plugin.cpp
-#, fuzzy
msgid "Vertices:"
-msgstr "Kärkipisteet"
+msgstr "Kärkipisteitä:"
#: editor/plugins/spatial_editor_plugin.cpp
msgid "FPS: %d (%s ms)"
-msgstr ""
+msgstr "FPS: %d (%s ms)"
#: editor/plugins/spatial_editor_plugin.cpp
msgid "Top View."
@@ -7843,42 +7931,22 @@ msgid "Bottom View."
msgstr "Pohjanäkymä."
#: editor/plugins/spatial_editor_plugin.cpp
-msgid "Bottom"
-msgstr "Pohja"
-
-#: editor/plugins/spatial_editor_plugin.cpp
msgid "Left View."
msgstr "Vasen näkymä."
#: editor/plugins/spatial_editor_plugin.cpp
-msgid "Left"
-msgstr "Vasen"
-
-#: editor/plugins/spatial_editor_plugin.cpp
msgid "Right View."
msgstr "Oikea näkymä."
#: editor/plugins/spatial_editor_plugin.cpp
-msgid "Right"
-msgstr "Oikea"
-
-#: editor/plugins/spatial_editor_plugin.cpp
msgid "Front View."
msgstr "Etunäkymä."
#: editor/plugins/spatial_editor_plugin.cpp
-msgid "Front"
-msgstr "Etu"
-
-#: editor/plugins/spatial_editor_plugin.cpp
msgid "Rear View."
msgstr "Takanäkymä."
#: editor/plugins/spatial_editor_plugin.cpp
-msgid "Rear"
-msgstr "Taka"
-
-#: editor/plugins/spatial_editor_plugin.cpp
msgid "Align Transform with View"
msgstr "Kohdista muunnos näkymään"
@@ -7987,9 +8055,8 @@ msgid "Freelook Slow Modifier"
msgstr "Liikkumisen hitauskerroin"
#: editor/plugins/spatial_editor_plugin.cpp
-#, fuzzy
msgid "Toggle Camera Preview"
-msgstr "Muuta kameran kokoa"
+msgstr "Aseta kameran esikatselu"
#: editor/plugins/spatial_editor_plugin.cpp
msgid "View Rotation Locked"
@@ -8011,9 +8078,8 @@ msgstr ""
"Sitä ei voi käyttää luotettavana pelin sisäisenä tehokkuuden ilmaisimena."
#: editor/plugins/spatial_editor_plugin.cpp
-#, fuzzy
msgid "Convert Rooms"
-msgstr "Muunna muotoon %s"
+msgstr "Muunna huoneet"
#: editor/plugins/spatial_editor_plugin.cpp
msgid "XForm Dialog"
@@ -8035,7 +8101,6 @@ msgstr ""
"läpi (\"röntgen\")."
#: editor/plugins/spatial_editor_plugin.cpp
-#, fuzzy
msgid "Snap Nodes to Floor"
msgstr "Tarraa solmut lattiaan"
@@ -8053,7 +8118,7 @@ msgstr "Käytä tarttumista"
#: editor/plugins/spatial_editor_plugin.cpp
msgid "Converts rooms for portal culling."
-msgstr ""
+msgstr "Muunna huoneet portaalien harvennukseen."
#: editor/plugins/spatial_editor_plugin.cpp
msgid "Bottom View"
@@ -8149,9 +8214,13 @@ msgid "View Grid"
msgstr "Näytä ruudukko"
#: editor/plugins/spatial_editor_plugin.cpp
-#, fuzzy
msgid "View Portal Culling"
-msgstr "Näyttöruudun asetukset"
+msgstr "Näytä portaalien harvennus"
+
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "View Occlusion Culling"
+msgstr "Näytä portaalien harvennus"
#: editor/plugins/spatial_editor_plugin.cpp
#: modules/gridmap/grid_map_editor_plugin.cpp
@@ -8219,8 +8288,9 @@ msgid "Post"
msgstr "Jälki"
#: editor/plugins/spatial_editor_plugin.cpp
-msgid "Nameless gizmo"
-msgstr "Nimetön muokkain"
+#, fuzzy
+msgid "Unnamed Gizmo"
+msgstr "Nimetön projekti"
#: editor/plugins/sprite_editor_plugin.cpp
msgid "Create Mesh2D"
@@ -8471,221 +8541,196 @@ msgid "TextureRegion"
msgstr "Tekstuurialue"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Colors"
-msgstr "Väri"
+msgstr "Värit"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Fonts"
-msgstr "Fontti"
+msgstr "Fontit"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Icons"
-msgstr "Kuvake"
+msgstr "Kuvakkeet"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Styleboxes"
-msgstr "StyleBox"
+msgstr "Tyylilaatikot"
#: editor/plugins/theme_editor_plugin.cpp
msgid "{num} color(s)"
-msgstr ""
+msgstr "{num} väriä"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "No colors found."
-msgstr "Aliresursseja ei löydetty."
+msgstr "Värejä ei löytynyt."
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "{num} constant(s)"
-msgstr "Vakiot"
+msgstr "{num} vakiota"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "No constants found."
-msgstr "Värivakio."
+msgstr "Vakioita ei löytynyt."
#: editor/plugins/theme_editor_plugin.cpp
msgid "{num} font(s)"
-msgstr ""
+msgstr "{num} fonttia"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "No fonts found."
-msgstr "Ei löytynyt!"
+msgstr "Fontteja ei löytynyt."
#: editor/plugins/theme_editor_plugin.cpp
msgid "{num} icon(s)"
-msgstr ""
+msgstr "{num} kuvaketta"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "No icons found."
-msgstr "Ei löytynyt!"
+msgstr "Kuvakkeita ei löytynyt."
#: editor/plugins/theme_editor_plugin.cpp
msgid "{num} stylebox(es)"
-msgstr ""
+msgstr "{num} tyylilaatikkoa"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "No styleboxes found."
-msgstr "Aliresursseja ei löydetty."
+msgstr "Tyylilaatikkoja ei löytynyt."
#: editor/plugins/theme_editor_plugin.cpp
msgid "{num} currently selected"
-msgstr ""
+msgstr "{num} tällä hetkellä valittuna"
#: editor/plugins/theme_editor_plugin.cpp
msgid "Nothing was selected for the import."
-msgstr ""
+msgstr "Mitään ei ollut valittuna tuontia varten."
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Importing Theme Items"
-msgstr "Tuo teema"
+msgstr "Teeman osien tuonti"
#: editor/plugins/theme_editor_plugin.cpp
msgid "Importing items {n}/{n}"
-msgstr ""
+msgstr "Tuodaan teeman osia {n}/{n}"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Updating the editor"
-msgstr "Poistu editorista?"
+msgstr "Päivitetään editoria"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Finalizing"
-msgstr "Analysoidaan"
+msgstr "Viimeistellään"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Filter:"
-msgstr "Suodatin: "
+msgstr "Suodatin:"
#: editor/plugins/theme_editor_plugin.cpp
msgid "With Data"
-msgstr ""
+msgstr "Datan kanssa"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Select by data type:"
-msgstr "Valitse solmu"
+msgstr "Valitse datatyypin mukaan:"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Select all visible color items."
-msgstr "Valitse jako poistaaksesi sen."
+msgstr "Valitse kaikki näkyvät värit."
#: editor/plugins/theme_editor_plugin.cpp
msgid "Select all visible color items and their data."
-msgstr ""
+msgstr "Valitse kaikki näkyvät värit ja niiden data."
#: editor/plugins/theme_editor_plugin.cpp
msgid "Deselect all visible color items."
-msgstr ""
+msgstr "Poista kaikkien näkyvien värien valinta."
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Select all visible constant items."
-msgstr "Valitse asetus ensin!"
+msgstr "Valitse kaikki näkyvät vakiot."
#: editor/plugins/theme_editor_plugin.cpp
msgid "Select all visible constant items and their data."
-msgstr ""
+msgstr "Valitse kaikki näkyvät vakiot ja niiden data."
#: editor/plugins/theme_editor_plugin.cpp
msgid "Deselect all visible constant items."
-msgstr ""
+msgstr "Poista kaikkien näkyvien vakioiden valinta."
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Select all visible font items."
-msgstr "Valitse asetus ensin!"
+msgstr "Valitse kaikki näkyvät fontit."
#: editor/plugins/theme_editor_plugin.cpp
msgid "Select all visible font items and their data."
-msgstr ""
+msgstr "Valitse kaikki näkyvät fontit ja niiden data."
#: editor/plugins/theme_editor_plugin.cpp
msgid "Deselect all visible font items."
-msgstr ""
+msgstr "Poista kaikkien näkyvien fonttien valinta."
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Select all visible icon items."
-msgstr "Valitse asetus ensin!"
+msgstr "Valitse kaikki näkyvät kuvakkeet."
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Select all visible icon items and their data."
-msgstr "Valitse asetus ensin!"
+msgstr "Valitse kaikki näkyvät kuvakkeet ja niiden data."
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Deselect all visible icon items."
-msgstr "Valitse asetus ensin!"
+msgstr "Poista kaikkien näkyvien kuvakkeiden valinta."
#: editor/plugins/theme_editor_plugin.cpp
msgid "Select all visible stylebox items."
-msgstr ""
+msgstr "Valitse kaikki näkyvät tyylilaatikot."
#: editor/plugins/theme_editor_plugin.cpp
msgid "Select all visible stylebox items and their data."
-msgstr ""
+msgstr "Valitse kaikki näkyvät tyylilaatikot ja niiden data."
#: editor/plugins/theme_editor_plugin.cpp
msgid "Deselect all visible stylebox items."
-msgstr ""
+msgstr "Poista kaikkien näkyvien tyylilaatikoiden valinta."
#: editor/plugins/theme_editor_plugin.cpp
msgid ""
"Caution: Adding icon data may considerably increase the size of your Theme "
"resource."
msgstr ""
+"Varoitus: kuvakkeiden datan lisäys voi kasvattaa teemaresurssisi kokoa "
+"merkittävästi."
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Collapse types."
-msgstr "Tiivistä kaikki"
+msgstr "Tiivistä tyypit."
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Expand types."
-msgstr "Laajenna kaikki"
+msgstr "Laajenna tyypit."
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Select all Theme items."
-msgstr "Valitse mallitiedosto"
+msgstr "Valitse kaikki teeman osat."
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Select With Data"
-msgstr "Valitse pisteet"
+msgstr "Valitse datan kanssa"
#: editor/plugins/theme_editor_plugin.cpp
msgid "Select all Theme items with item data."
-msgstr ""
+msgstr "Valitse kaikki teeman osat datan kanssa."
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Deselect All"
-msgstr "Valitse kaikki"
+msgstr "Poista kaikki valinnat"
#: editor/plugins/theme_editor_plugin.cpp
msgid "Deselect all Theme items."
-msgstr ""
+msgstr "Poista kaikkien teeman osien valinta."
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Import Selected"
-msgstr "Tuo skene"
+msgstr "Tuo valittu"
#: editor/plugins/theme_editor_plugin.cpp
msgid ""
@@ -8693,283 +8738,249 @@ msgid ""
"closing this window.\n"
"Close anyway?"
msgstr ""
+"Tuo osat -välilehdellä on joitakin osia valittuna. Valinta menetetään tämän "
+"ikkunan sulkeuduttua.\n"
+"Suljetaanko silti?"
#: editor/plugins/theme_editor_plugin.cpp
msgid ""
"Select a theme type from the list to edit its items.\n"
"You can add a custom type or import a type with its items from another theme."
msgstr ""
+"Valitse teeman tyyppi luettelosta muokataksesi sen osia.\n"
+"Voit lisätä mukautetun tyypin tai tuoda tyypin osineen toisesta teemasta."
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Remove All Color Items"
-msgstr "Poista kaikki"
+msgstr "Poista kaikki värit"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Rename Item"
-msgstr "Poista"
+msgstr "Nimeä osa uudellen"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Remove All Constant Items"
-msgstr "Poista kaikki"
+msgstr "Poista kaikki vakiot"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Remove All Font Items"
-msgstr "Poista kaikki"
+msgstr "Poista kaikki fontit"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Remove All Icon Items"
-msgstr "Poista kaikki"
+msgstr "Poista kaikki kuvakkeet"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Remove All StyleBox Items"
-msgstr "Poista kaikki"
+msgstr "Poista kaikki tyylilaatikot"
#: editor/plugins/theme_editor_plugin.cpp
msgid ""
"This theme type is empty.\n"
"Add more items to it manually or by importing from another theme."
msgstr ""
+"Tämä teema on tyhjä.\n"
+"Lisää siihen osia käsin tai tuomalla niitä toisesta teemasta."
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Add Color Item"
-msgstr "Lisää luokka"
+msgstr "Lisää väri"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Add Constant Item"
-msgstr "Lisää luokka"
+msgstr "Lisää vakio"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Add Font Item"
-msgstr "Lisää kohde"
+msgstr "Lisää fontti"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Add Icon Item"
-msgstr "Lisää kohde"
+msgstr "Lisää kuvake"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Add Stylebox Item"
-msgstr "Lisää kaikki"
+msgstr "Lisää tyylilaatikko"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Rename Color Item"
-msgstr "Poista luokka"
+msgstr "Nimeä väri uudelleen"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Rename Constant Item"
-msgstr "Poista luokka"
+msgstr "Nimeä vakio uudelleen"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Rename Font Item"
-msgstr "Nimeä solmu uudelleen"
+msgstr "Nimeä fontti uudelleen"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Rename Icon Item"
-msgstr "Nimeä solmu uudelleen"
+msgstr "Nimeä kuvake uudelleen"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Rename Stylebox Item"
-msgstr "Poista valitut kohteet"
+msgstr "Nimeä tyylilaatikko uudelleen"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Invalid file, not a Theme resource."
-msgstr "Virheellinen tiedosto. Tämä ei ole ääniväylän asettelu ensinkään."
+msgstr "Virheellinen tiedosto, ei ole teemaresurssi."
#: editor/plugins/theme_editor_plugin.cpp
msgid "Invalid file, same as the edited Theme resource."
-msgstr ""
+msgstr "Virheellinen tiedosto, sama kuin muokattu teemaresurssi."
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Manage Theme Items"
-msgstr "Hallinnoi malleja"
+msgstr "Hallinnoi teeman osia"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Edit Items"
-msgstr "Muokattava osanen"
+msgstr "Muokkaa osia"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Types:"
-msgstr "Tyyppi:"
+msgstr "Tyypit:"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Add Type:"
-msgstr "Tyyppi:"
+msgstr "Lisää tyyppi:"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Add Item:"
-msgstr "Lisää kohde"
+msgstr "Lisää osa:"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Add StyleBox Item"
-msgstr "Lisää kaikki"
+msgstr "Lisää tyylilaatikko"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Remove Items:"
-msgstr "Poista"
+msgstr "Poista osia:"
#: editor/plugins/theme_editor_plugin.cpp
msgid "Remove Class Items"
msgstr "Poista luokka"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Remove Custom Items"
-msgstr "Poista luokka"
+msgstr "Poista mukautettuja osia"
#: editor/plugins/theme_editor_plugin.cpp
msgid "Remove All Items"
msgstr "Poista kaikki"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Add Theme Item"
-msgstr "Käyttöliittymäteeman osat"
+msgstr "Lisää teeman osa"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Old Name:"
-msgstr "Solmun nimi:"
+msgstr "Vanha nimi:"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Import Items"
-msgstr "Tuo teema"
+msgstr "Tuo osia"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Default Theme"
-msgstr "Oletus"
+msgstr "Oletusteema"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Editor Theme"
-msgstr "Muokkaa teemaa"
+msgstr "Editorin teema"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Select Another Theme Resource:"
-msgstr "Poista resurssi"
+msgstr "Valitse toinen teemaresurssi:"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Another Theme"
-msgstr "Tuo teema"
+msgstr "Toinen teema"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Confirm Item Rename"
-msgstr "Animaatioraita: nimeä uudelleen"
+msgstr "Vahvista osan uudelleen nimeäminen"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Cancel Item Rename"
-msgstr "Niputettu uudelleennimeäminen"
+msgstr "Peruuta osan uudelleen nimeäminen"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Override Item"
-msgstr "Ylikirjoittaa"
+msgstr "Ylikirjoita osa"
#: editor/plugins/theme_editor_plugin.cpp
msgid "Unpin this StyleBox as a main style."
-msgstr ""
+msgstr "Irrota tämä tyylilaatikko päätyylistä."
#: editor/plugins/theme_editor_plugin.cpp
msgid ""
"Pin this StyleBox as a main style. Editing its properties will update the "
"same properties in all other StyleBoxes of this type."
msgstr ""
+"Kiinnitä tämä tyylilaatikko päätyyliksi. Sen ominaisuuksien muokkaaminen "
+"päivittää kaikkien muiden tämän tyyppisten tyylilaatikoiden ominaisuuksia."
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Add Type"
-msgstr "Tyyppi"
+msgstr "Lisää tyyppi"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Add Item Type"
-msgstr "Lisää kohde"
+msgstr "Lisää osan tyyppi"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Node Types:"
-msgstr "Solmun tyyppi"
+msgstr "Solmutyypit:"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Show Default"
-msgstr "Lataa oletus"
+msgstr "Näytä oletus"
#: editor/plugins/theme_editor_plugin.cpp
msgid "Show default type items alongside items that have been overridden."
-msgstr ""
+msgstr "Näytä oletustyypin osat ylikirjoitettujen osien ohella."
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Override All"
-msgstr "Ylikirjoittaa"
+msgstr "Ylikirjoita kaikki"
#: editor/plugins/theme_editor_plugin.cpp
msgid "Override all default type items."
-msgstr ""
+msgstr "Ylikirjoita kaikki oletustyypin osat."
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Theme:"
-msgstr "Teema"
+msgstr "Teema:"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Manage Items..."
-msgstr "Hallinnoi vientimalleja..."
+msgstr "Hallinnoi osia..."
#: editor/plugins/theme_editor_plugin.cpp
msgid "Add, remove, organize and import Theme items."
-msgstr ""
+msgstr "Lisää, poista, järjestele ja tuo teeman osia."
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Add Preview"
-msgstr "Esikatselu"
+msgstr "Lisää esikatselu"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Default Preview"
-msgstr "Päivitä esikatselu"
+msgstr "Oletusesikatselu"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Select UI Scene:"
-msgstr "Valitse lähdemesh:"
+msgstr "Valitse käyttöliittymäskene:"
#: editor/plugins/theme_editor_preview.cpp
msgid ""
"Toggle the control picker, allowing to visually select control types for "
"edit."
msgstr ""
+"Kytke päälle tai pois kontrollien valitsija, joka antaa valita "
+"kontrollityypit muokkausta varten visuaalisesti."
#: editor/plugins/theme_editor_preview.cpp
msgid "Toggle Button"
@@ -9004,7 +9015,6 @@ msgid "Checked Radio Item"
msgstr "Valittu valintapainike"
#: editor/plugins/theme_editor_preview.cpp
-#, fuzzy
msgid "Named Separator"
msgstr "Nimetty erotin"
@@ -9059,19 +9069,21 @@ msgstr "On,Useita,Asetuksia"
#: editor/plugins/theme_editor_preview.cpp
msgid "Invalid path, the PackedScene resource was probably moved or removed."
msgstr ""
+"Virheellinen polku, PackedScene resurssi oli todennäköisesti siirretty tai "
+"poistettu."
#: editor/plugins/theme_editor_preview.cpp
msgid "Invalid PackedScene resource, must have a Control node at its root."
msgstr ""
+"Virheellinen PackedScene resurssi, juurisolmuna täytyy olla Control solmu."
#: editor/plugins/theme_editor_preview.cpp
-#, fuzzy
msgid "Invalid file, not a PackedScene resource."
-msgstr "Virheellinen tiedosto. Tämä ei ole ääniväylän asettelu ensinkään."
+msgstr "Virheellinen tiedosto, ei ole PackedScene resurssi."
#: editor/plugins/theme_editor_preview.cpp
msgid "Reload the scene to reflect its most actual state."
-msgstr ""
+msgstr "Lataa skenen uudelleen vastaamaan sen varsinaista tilaa."
#: editor/plugins/tile_map_editor_plugin.cpp
msgid "Erase Selection"
@@ -9658,7 +9670,7 @@ msgstr "Aseta lauseke"
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Resize VisualShader node"
-msgstr "Muuta VisualShader solmun kokoa"
+msgstr "Muuta visuaalisen sävyttimen solmun kokoa"
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Set Uniform Name"
@@ -9670,7 +9682,7 @@ msgstr "Aseta oletustuloportti"
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Add Node to Visual Shader"
-msgstr "Lisää solmu Visual Shaderiin"
+msgstr "Lisää solmu visuaaliseen sävyttimeen"
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Node(s) Moved"
@@ -9691,7 +9703,7 @@ msgstr "Poista solmut"
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Visual Shader Input Type Changed"
-msgstr "Visual Shaderin syötteen tyyppi vaihdettu"
+msgstr "Visuaalisen sävyttimen syötteen tyyppi vaihdettu"
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "UniformRef Name Changed"
@@ -9703,7 +9715,7 @@ msgstr "Kärkipiste"
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Fragment"
-msgstr "Fragmentti"
+msgstr "Kuvapiste"
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Light"
@@ -9715,7 +9727,7 @@ msgstr "Näytä syntyvä sävytinkoodi."
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Create Shader Node"
-msgstr "Luo Shader solmu"
+msgstr "Luo sävytinsolmu"
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Color function."
@@ -10412,18 +10424,18 @@ msgstr "Viittaus olemassa olevaan uniformiin."
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "(Fragment/Light mode only) Scalar derivative function."
-msgstr "(Vain Fragment/Light tilat) Skalaariderivaattafunktio."
+msgstr "(Vain kuvapiste- tai valotilassa) Skalaariderivaattafunktio."
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "(Fragment/Light mode only) Vector derivative function."
-msgstr "(Vain Fragment/Light tilat) Vektoriderivaattafunktio."
+msgstr "(Vain kuvapiste- tai valotilassa) Vektoriderivaattafunktio."
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid ""
"(Fragment/Light mode only) (Vector) Derivative in 'x' using local "
"differencing."
msgstr ""
-"(Vain Fragment/Light tilat) (Vektori) 'x' derivaatta käyttäen "
+"(Vain kuvapiste- tai valotilassa) (Vektori) 'x' derivaatta käyttäen "
"paikallisdifferentiaalia."
#: editor/plugins/visual_shader_editor_plugin.cpp
@@ -10431,7 +10443,7 @@ msgid ""
"(Fragment/Light mode only) (Scalar) Derivative in 'x' using local "
"differencing."
msgstr ""
-"(Vain Fragment/Light tilat) (Skalaari) 'x' derivaatta käyttäen "
+"(Vain kuvapiste- tai valotilassa) (Skalaari) 'x' derivaatta käyttäen "
"paikallisdifferentiaalia."
#: editor/plugins/visual_shader_editor_plugin.cpp
@@ -10439,7 +10451,7 @@ msgid ""
"(Fragment/Light mode only) (Vector) Derivative in 'y' using local "
"differencing."
msgstr ""
-"(Vain Fragment/Light tilat) (Vektori) 'y' derivaatta käyttäen "
+"(Vain kuvapiste- tai valotilassa) (Vektori) 'y' derivaatta käyttäen "
"paikallisdifferentiaalia."
#: editor/plugins/visual_shader_editor_plugin.cpp
@@ -10447,7 +10459,7 @@ msgid ""
"(Fragment/Light mode only) (Scalar) Derivative in 'y' using local "
"differencing."
msgstr ""
-"(Vain Fragment/Light tilat) (Skalaari) 'y' derivaatta käyttäen "
+"(Vain kuvapiste- tai valotilassa) (Skalaari) 'y' derivaatta käyttäen "
"paikallisdifferentiaalia."
#: editor/plugins/visual_shader_editor_plugin.cpp
@@ -10455,15 +10467,15 @@ msgid ""
"(Fragment/Light mode only) (Vector) Sum of absolute derivative in 'x' and "
"'y'."
msgstr ""
-"(Vain Fragment/Light tilat) (Vektori) 'x' ja 'y' derivaattojen itseisarvojen "
-"summa."
+"(Vain kuvapiste- tai valotilassa) (Vektori) 'x' ja 'y' derivaattojen "
+"itseisarvojen summa."
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid ""
"(Fragment/Light mode only) (Scalar) Sum of absolute derivative in 'x' and "
"'y'."
msgstr ""
-"(Vain Fragment/Light tilat) (Skalaari) 'x' ja 'y' derivaattojen "
+"(Vain kuvapiste- tai valotilassa) (Skalaari) 'x' ja 'y' derivaattojen "
"itseisarvojen summa."
#: editor/plugins/visual_shader_editor_plugin.cpp
@@ -10471,13 +10483,12 @@ msgid "VisualShader"
msgstr "VisualShader"
#: editor/plugins/visual_shader_editor_plugin.cpp
-#, fuzzy
msgid "Edit Visual Property:"
-msgstr "Muokkaa visuaalista ominaisuutta"
+msgstr "Muokkaa visuaalista ominaisuutta:"
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Visual Shader Mode Changed"
-msgstr "Visual Shaderin tila vaihdettu"
+msgstr "Visuaalisen sävyttimen tila vaihdettu"
#: editor/project_export.cpp
msgid "Runnable"
@@ -10539,7 +10550,7 @@ msgstr ""
#: editor/project_export.cpp
msgid "Export Path"
-msgstr "Vie polku"
+msgstr "Vientipolku"
#: editor/project_export.cpp
msgid "Resources"
@@ -10599,9 +10610,8 @@ msgid "Script"
msgstr "Skripti"
#: editor/project_export.cpp
-#, fuzzy
msgid "GDScript Export Mode:"
-msgstr "Skriptin vientitila:"
+msgstr "GDScriptin vientitila:"
#: editor/project_export.cpp
msgid "Text"
@@ -10609,21 +10619,19 @@ msgstr "Teksti"
#: editor/project_export.cpp
msgid "Compiled Bytecode (Faster Loading)"
-msgstr ""
+msgstr "Käännetty bytekoodi (nopeampi latautuminen)"
#: editor/project_export.cpp
msgid "Encrypted (Provide Key Below)"
msgstr "Salattu (syötä avain alla)"
#: editor/project_export.cpp
-#, fuzzy
msgid "Invalid Encryption Key (must be 64 hexadecimal characters long)"
-msgstr "Virheellinen salausavain (oltava 64 merkkiä pitkä)"
+msgstr "Virheellinen salausavain (oltava 64 heksadesimaalimerkkiä pitkä)"
#: editor/project_export.cpp
-#, fuzzy
msgid "GDScript Encryption Key (256-bits as hexadecimal):"
-msgstr "Skriptin salausavain (256-bittinen heksana):"
+msgstr "GDScriptin salausavain (256-bittinen heksadesimaalina):"
#: editor/project_export.cpp
msgid "Export PCK/Zip"
@@ -10697,7 +10705,6 @@ msgid "Imported Project"
msgstr "Tuotu projekti"
#: editor/project_manager.cpp
-#, fuzzy
msgid "Invalid project name."
msgstr "Virheellinen projektin nimi."
@@ -10921,14 +10928,12 @@ msgid "Are you sure to run %d projects at once?"
msgstr "Haluatko varmasti suorittaa %d projektia yhdenaikaisesti?"
#: editor/project_manager.cpp
-#, fuzzy
msgid "Remove %d projects from the list?"
-msgstr "Valitse laite listasta"
+msgstr "Poista %d projektia listasta?"
#: editor/project_manager.cpp
-#, fuzzy
msgid "Remove this project from the list?"
-msgstr "Valitse laite listasta"
+msgstr "Poistetaanko tämä projekti listasta?"
#: editor/project_manager.cpp
msgid ""
@@ -10961,9 +10966,8 @@ msgid "Project Manager"
msgstr "Projektinhallinta"
#: editor/project_manager.cpp
-#, fuzzy
msgid "Local Projects"
-msgstr "Projektit"
+msgstr "Paikalliset projektit"
#: editor/project_manager.cpp
msgid "Loading, please wait..."
@@ -10974,23 +10978,20 @@ msgid "Last Modified"
msgstr "Viimeksi muutettu"
#: editor/project_manager.cpp
-#, fuzzy
msgid "Edit Project"
-msgstr "Vie projekti"
+msgstr "Muokkaa projektia"
#: editor/project_manager.cpp
-#, fuzzy
msgid "Run Project"
-msgstr "Nimetä projekti"
+msgstr "Aja projekti"
#: editor/project_manager.cpp
msgid "Scan"
msgstr "Tutki"
#: editor/project_manager.cpp
-#, fuzzy
msgid "Scan Projects"
-msgstr "Projektit"
+msgstr "Skannaa projektit"
#: editor/project_manager.cpp
msgid "Select a Folder to Scan"
@@ -11001,14 +11002,12 @@ msgid "New Project"
msgstr "Uusi projekti"
#: editor/project_manager.cpp
-#, fuzzy
msgid "Import Project"
-msgstr "Tuotu projekti"
+msgstr "Tuo projekti"
#: editor/project_manager.cpp
-#, fuzzy
msgid "Remove Project"
-msgstr "Nimetä projekti"
+msgstr "Poista projekti"
#: editor/project_manager.cpp
msgid "Remove Missing"
@@ -11019,9 +11018,8 @@ msgid "About"
msgstr "Tietoja"
#: editor/project_manager.cpp
-#, fuzzy
msgid "Asset Library Projects"
-msgstr "Asset-kirjasto"
+msgstr "Asset-kirjaston projektit"
#: editor/project_manager.cpp
msgid "Restart Now"
@@ -11033,7 +11031,7 @@ msgstr "Poista kaikki"
#: editor/project_manager.cpp
msgid "Also delete project contents (no undo!)"
-msgstr ""
+msgstr "Poista myös projektien sisältö (ei voi kumota!)"
#: editor/project_manager.cpp
msgid "Can't run project"
@@ -11048,18 +11046,16 @@ msgstr ""
"Haluaisitko selata virallisia esimerkkiprojekteja Asset-kirjastosta?"
#: editor/project_manager.cpp
-#, fuzzy
msgid "Filter projects"
-msgstr "Suodata ominaisuuksia"
+msgstr "Suodata projekteja"
#: editor/project_manager.cpp
-#, fuzzy
msgid ""
"This field filters projects by name and last path component.\n"
"To filter projects by name and full path, the query must contain at least "
"one `/` character."
msgstr ""
-"Hakulaatikko suodattaa projektit nimen ja polun loppuosan mukaan.\n"
+"Tämä kenttä suodattaa projektit nimen ja polun loppuosan mukaan.\n"
"Suodattaaksesi projektit nimen ja koko polun mukaan, haussa tulee olla "
"mukana vähintään yksi `/` merkki."
@@ -11069,7 +11065,7 @@ msgstr "Näppäin "
#: editor/project_settings_editor.cpp
msgid "Physical Key"
-msgstr ""
+msgstr "Fyysinen avain"
#: editor/project_settings_editor.cpp
msgid "Joy Button"
@@ -11117,7 +11113,7 @@ msgstr "Laite"
#: editor/project_settings_editor.cpp
msgid " (Physical)"
-msgstr ""
+msgstr " (fyysinen)"
#: editor/project_settings_editor.cpp editor/settings_config_dialog.cpp
msgid "Press a Key..."
@@ -11260,23 +11256,20 @@ msgid "Override for Feature"
msgstr "Ominaisuuden ohitus"
#: editor/project_settings_editor.cpp
-#, fuzzy
msgid "Add %d Translations"
-msgstr "Lisää käännös"
+msgstr "Lisää %d käännöstä"
#: editor/project_settings_editor.cpp
msgid "Remove Translation"
msgstr "Poista käännös"
#: editor/project_settings_editor.cpp
-#, fuzzy
msgid "Translation Resource Remap: Add %d Path(s)"
-msgstr "Lisää resurssin korvaavuus"
+msgstr "Käännösresurssin uudelleenmäppäys: lisää %d polkua"
#: editor/project_settings_editor.cpp
-#, fuzzy
msgid "Translation Resource Remap: Add %d Remap(s)"
-msgstr "Lisää resurssin korvaavuus"
+msgstr "Käännösresurssin uudelleenmäppäys: lisää %d uudelleenmäppäystä"
#: editor/project_settings_editor.cpp
msgid "Change Resource Remap Language"
@@ -11722,12 +11715,15 @@ msgstr "Poista solmu \"%s\"?"
msgid ""
"Saving the branch as a scene requires having a scene open in the editor."
msgstr ""
+"Haaran tallentaminen skenenä edellyttää, että skene on avoinna editorissa."
#: editor/scene_tree_dock.cpp
msgid ""
"Saving the branch as a scene requires selecting only one node, but you have "
"selected %d nodes."
msgstr ""
+"Haaran tallentaminen skenenä edellyttää, että vain yksi solmu on valittuna, "
+"mutta olet valinnut %d solmua."
#: editor/scene_tree_dock.cpp
msgid ""
@@ -11736,6 +11732,11 @@ msgid ""
"FileSystem dock context menu\n"
"or create an inherited scene using Scene > New Inherited Scene... instead."
msgstr ""
+"Ei voida tallentaa juurisolmun haaraa skenen ilmentymänä.\n"
+"Luodaksesi muokattavan kopion nykyisestä skenestä, monista se "
+"Tiedostojärjestelmä-telakan pikavalikosta\n"
+"tai luo vaihtoehtoisesti periytetty skene Skene > Uusi periytetty skene... "
+"valikosta."
#: editor/scene_tree_dock.cpp
msgid ""
@@ -11743,6 +11744,9 @@ msgid ""
"To create a variation of a scene, you can make an inherited scene based on "
"the instanced scene using Scene > New Inherited Scene... instead."
msgstr ""
+"Skenestä, joka on jo ilmentymä, ei voida luoda haaraa.\n"
+"Luodaksesi muunnelman skenestä voit sen sijaan tehdä periytetyn skenen "
+"skeneilmentymästä Skene > Uusi periytetty skene... valikosta."
#: editor/scene_tree_dock.cpp
msgid "Save New Scene As..."
@@ -12150,6 +12154,8 @@ msgid ""
"Warning: Having the script name be the same as a built-in type is usually "
"not desired."
msgstr ""
+"Varoitus: skriptin nimeäminen sisäänrakennetun tyypin nimiseksi ei ole "
+"yleensä toivottua."
#: editor/script_create_dialog.cpp
msgid "Class Name:"
@@ -12221,7 +12227,7 @@ msgstr "Kopioi virhe"
#: editor/script_editor_debugger.cpp
msgid "Open C++ Source on GitHub"
-msgstr ""
+msgstr "Avaa C++ lähdekoodi GitHubissa"
#: editor/script_editor_debugger.cpp
msgid "Video RAM"
@@ -12400,14 +12406,22 @@ msgid "Change Ray Shape Length"
msgstr "Vaihda säteen muodon pituutta"
#: editor/spatial_editor_gizmos.cpp
-#, fuzzy
msgid "Set Room Point Position"
-msgstr "Aseta käyräpisteen sijainti"
+msgstr "Aseta huoneen pisteen sijainti"
#: editor/spatial_editor_gizmos.cpp
-#, fuzzy
msgid "Set Portal Point Position"
-msgstr "Aseta käyräpisteen sijainti"
+msgstr "Aseta portaalin pisteen sijainti"
+
+#: editor/spatial_editor_gizmos.cpp
+#, fuzzy
+msgid "Set Occluder Sphere Radius"
+msgstr "Muuta sylinterimuodon sädettä"
+
+#: editor/spatial_editor_gizmos.cpp
+#, fuzzy
+msgid "Set Occluder Sphere Position"
+msgstr "Aseta käyrän aloitussijainti"
#: modules/csg/csg_gizmos.cpp
msgid "Change Cylinder Radius"
@@ -12522,14 +12536,12 @@ msgid "Object can't provide a length."
msgstr "Objektille ei voida määrittää pituutta."
#: modules/gltf/editor_scene_exporter_gltf_plugin.cpp
-#, fuzzy
msgid "Export Mesh GLTF2"
-msgstr "Vie mesh-kirjasto"
+msgstr "Vie mesh GLTF2:na"
#: modules/gltf/editor_scene_exporter_gltf_plugin.cpp
-#, fuzzy
msgid "Export GLTF..."
-msgstr "Vie..."
+msgstr "Vie GLTF..."
#: modules/gridmap/grid_map_editor_plugin.cpp
msgid "Next Plane"
@@ -12572,9 +12584,8 @@ msgid "GridMap Paint"
msgstr "Ruudukon maalaus"
#: modules/gridmap/grid_map_editor_plugin.cpp
-#, fuzzy
msgid "GridMap Selection"
-msgstr "Täytä valinta"
+msgstr "Ruudukon valinta"
#: modules/gridmap/grid_map_editor_plugin.cpp
msgid "Grid Map"
@@ -12697,6 +12708,11 @@ msgstr "Piirretään lightmappeja"
msgid "Class name can't be a reserved keyword"
msgstr "Luokan nimi ei voi olla varattu avainsana"
+#: modules/mono/csharp_script.cpp
+#, fuzzy
+msgid "Build Solution"
+msgstr "Täytä valinta"
+
#: modules/mono/mono_gd/gd_mono_utils.cpp
msgid "End of inner exception stack trace"
msgstr "Sisemmän poikkeuksen kutsupinon loppu"
@@ -12826,14 +12842,12 @@ msgid "Add Output Port"
msgstr "Lisää lähtöportti"
#: modules/visual_script/visual_script_editor.cpp
-#, fuzzy
msgid "Change Port Type"
-msgstr "Muuta tyyppiä"
+msgstr "Vaihda portin tyyppi"
#: modules/visual_script/visual_script_editor.cpp
-#, fuzzy
msgid "Change Port Name"
-msgstr "Vaihda tuloportin nimi"
+msgstr "Vaihda portin nimi"
#: modules/visual_script/visual_script_editor.cpp
msgid "Override an existing built-in function."
@@ -12949,9 +12963,8 @@ msgid "Add Preload Node"
msgstr "Lisää esiladattu solmu"
#: modules/visual_script/visual_script_editor.cpp
-#, fuzzy
msgid "Add Node(s)"
-msgstr "Lisää solmu"
+msgstr "Lisää solmuja"
#: modules/visual_script/visual_script_editor.cpp
msgid "Add Node(s) From Tree"
@@ -13183,73 +13196,67 @@ msgstr "Hae VisualScriptistä"
msgid "Get %s"
msgstr "Hae %s"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Package name is missing."
msgstr "Paketin nimi puuttuu."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Package segments must be of non-zero length."
msgstr "Paketin osioiden pituuksien täytyy olla nollasta poikkeavia."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "The character '%s' is not allowed in Android application package names."
msgstr "Merkki '%s' ei ole sallittu Android-sovellusten pakettien nimissä."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "A digit cannot be the first character in a package segment."
msgstr "Paketin osion ensimmäinen merkki ei voi olla numero."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "The character '%s' cannot be the first character in a package segment."
msgstr "Merkki '%s' ei voi olla paketin osion ensimmäinen merkki."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "The package must have at least one '.' separator."
msgstr "Paketilla on oltava ainakin yksi '.' erotinmerkki."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Select device from the list"
msgstr "Valitse laite listasta"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Running on %s"
-msgstr ""
+msgstr "Ajetaan %s"
-#: platform/android/export/export.cpp
-#, fuzzy
+#: platform/android/export/export_plugin.cpp
msgid "Exporting APK..."
-msgstr "Viedään kaikki"
+msgstr "Viedään APK:ta..."
-#: platform/android/export/export.cpp
-#, fuzzy
+#: platform/android/export/export_plugin.cpp
msgid "Uninstalling..."
-msgstr "Poista asennus"
+msgstr "Poistetaan asennusta..."
-#: platform/android/export/export.cpp
-#, fuzzy
+#: platform/android/export/export_plugin.cpp
msgid "Installing to device, please wait..."
-msgstr "Ladataan, hetkinen..."
+msgstr "Asennetaan laitteelle, hetkinen..."
-#: platform/android/export/export.cpp
-#, fuzzy
+#: platform/android/export/export_plugin.cpp
msgid "Could not install to device: %s"
-msgstr "Aliprosessia ei voitu käynnistää!"
+msgstr "Ei voitu asentaa laitteelle: %s"
-#: platform/android/export/export.cpp
-#, fuzzy
+#: platform/android/export/export_plugin.cpp
msgid "Running on device..."
-msgstr "Suoritetaan mukautettua skriptiä..."
+msgstr "Ajetaan laitteella..."
-#: platform/android/export/export.cpp
-#, fuzzy
+#: platform/android/export/export_plugin.cpp
msgid "Could not execute on device."
-msgstr "Kansiota ei voitu luoda."
+msgstr "Ei voitu suorittaa laitteella."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Unable to find the 'apksigner' tool."
msgstr "'apksigner' työkalua ei löydy."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Android build template not installed in the project. Install it from the "
"Project menu."
@@ -13257,7 +13264,7 @@ msgstr ""
"Android-käännösmallia ei ole asennettu projektiin. Asenna se Projekti-"
"valikosta."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Either Debug Keystore, Debug User AND Debug Password settings must be "
"configured OR none of them."
@@ -13265,12 +13272,12 @@ msgstr ""
"Joko Debug Keystore, Debug User JA Debug Password asetukset on kaikki "
"konfiguroitava TAI ei mitään niistä."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Debug keystore not configured in the Editor Settings nor in the preset."
msgstr ""
"Debug keystore ei ole määritettynä editorin asetuksissa eikä esiasetuksissa."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Either Release Keystore, Release User AND Release Password settings must be "
"configured OR none of them."
@@ -13278,48 +13285,48 @@ msgstr ""
"Joko Release Keystore, Release User JA Release Password asetukset on kaikki "
"konfiguroitava TAI ei mitään niistä."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Release keystore incorrectly configured in the export preset."
msgstr "Release keystore on konfiguroitu väärin viennin esiasetuksissa."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "A valid Android SDK path is required in Editor Settings."
msgstr "Editorin asetuksiin tarvitaan kelvollinen Android SDK -polku."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Invalid Android SDK path in Editor Settings."
msgstr "Editorin asetuksissa on virheellinen Android SDK -polku."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Missing 'platform-tools' directory!"
msgstr "'platform-tools' hakemisto puuttuu!"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Unable to find Android SDK platform-tools' adb command."
msgstr "Android SDK platform-tools adb-komentoa ei löydy."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Please check in the Android SDK directory specified in Editor Settings."
msgstr ""
"Ole hyvä ja tarkista editorin asetuksissa määritelty Android SDK -hakemisto."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Missing 'build-tools' directory!"
msgstr "'build-tools' hakemisto puuttuu!"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Unable to find Android SDK build-tools' apksigner command."
msgstr "Android SDK build-tools apksigner-komentoa ei löydy."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Invalid public key for APK expansion."
msgstr "Virheellinen julkinen avain APK-laajennosta varten."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Invalid package name:"
msgstr "Virheellinen paketin nimi:"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Invalid \"GodotPaymentV3\" module included in the \"android/modules\" "
"project setting (changed in Godot 3.2.2).\n"
@@ -13327,102 +13334,85 @@ msgstr ""
"\"android/modules\" projektiasetukseen on liitetty virheellinen "
"\"GodotPaymentV3\" moduuli (muuttunut Godotin versiossa 3.2.2).\n"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "\"Use Custom Build\" must be enabled to use the plugins."
msgstr ""
"\"Use Custom Build\" asetuksen täytyy olla päällä, jotta liittännäisiä voi "
"käyttää."
-#: platform/android/export/export.cpp
-msgid ""
-"\"Degrees Of Freedom\" is only valid when \"Xr Mode\" is \"Oculus Mobile VR"
-"\"."
-msgstr ""
-"\"Degrees Of Freedom\" on käyttökelpoinen ainoastaan kun \"Xr Mode\" asetus "
-"on \"Oculus Mobile VR\"."
-
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"\"Hand Tracking\" is only valid when \"Xr Mode\" is \"Oculus Mobile VR\"."
msgstr ""
"\"Hand Tracking\" on käyttökelpoinen ainoastaan kun \"Xr Mode\" asetus on "
"\"Oculus Mobile VR\"."
-#: platform/android/export/export.cpp
-msgid ""
-"\"Focus Awareness\" is only valid when \"Xr Mode\" is \"Oculus Mobile VR\"."
-msgstr ""
-"\"Focus Awareness\" on käyttökelpoinen ainoastaan kun \"Xr Mode\" asetus on "
-"\"Oculus Mobile VR\"."
-
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "\"Export AAB\" is only valid when \"Use Custom Build\" is enabled."
msgstr ""
"\"Export AAB\" on käyttökelpoinen vain, kun \"Use Custom Build\" asetus on "
"päällä."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"'apksigner' could not be found.\n"
"Please check the command is available in the Android SDK build-tools "
"directory.\n"
"The resulting %s is unsigned."
msgstr ""
+"'apksigner' ei löydy.\n"
+"Ole hyvä ja tarkista, että komento on saatavilla Android SDK build-tools "
+"hakemistossa.\n"
+"Tuloksena syntynyt %s on allekirjoittamaton."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Signing debug %s..."
-msgstr ""
+msgstr "Allekirjoitetaan debug %s..."
-#: platform/android/export/export.cpp
-#, fuzzy
+#: platform/android/export/export_plugin.cpp
msgid "Signing release %s..."
-msgstr ""
-"Selataan tiedostoja,\n"
-"Hetkinen…"
+msgstr "Allekirjoitetaan release %s..."
-#: platform/android/export/export.cpp
-#, fuzzy
+#: platform/android/export/export_plugin.cpp
msgid "Could not find keystore, unable to export."
-msgstr "Mallin avaus vientiin epäonnistui:"
+msgstr "Keystorea ei löytynyt, ei voida viedä."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "'apksigner' returned with error #%d"
-msgstr ""
+msgstr "'apksigner' palautti virheen #%d"
-#: platform/android/export/export.cpp
-#, fuzzy
+#: platform/android/export/export_plugin.cpp
msgid "Verifying %s..."
-msgstr "Lisätään %s..."
+msgstr "Todennetaan %s..."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "'apksigner' verification of %s failed."
-msgstr ""
+msgstr "'apksigner' todennus kohteelle %s epäonnistui."
-#: platform/android/export/export.cpp
-#, fuzzy
+#: platform/android/export/export_plugin.cpp
msgid "Exporting for Android"
-msgstr "Viedään kaikki"
+msgstr "Viedään Androidille"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Invalid filename! Android App Bundle requires the *.aab extension."
msgstr ""
"Virheellinen tiedostonimi! Android App Bundle tarvitsee *.aab "
"tiedostopäätteen."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "APK Expansion not compatible with Android App Bundle."
msgstr "APK Expansion ei ole yhteensopiva Android App Bundlen kanssa."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Invalid filename! Android APK requires the *.apk extension."
msgstr ""
"Virheellinen tiedostonimi! Android APK tarvitsee *.apk tiedostopäätteen."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Unsupported export format!\n"
-msgstr ""
+msgstr "Vientiformaatti ei ole tuettu!\n"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Trying to build from a custom built template, but no version info for it "
"exists. Please reinstall from the 'Project' menu."
@@ -13430,7 +13420,7 @@ msgstr ""
"Yritetään kääntää mukautetulla käännösmallilla, mutta sillä ei ole "
"versiotietoa. Ole hyvä ja uudelleenasenna se 'Projekti'-valikosta."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Android build version mismatch:\n"
" Template installed: %s\n"
@@ -13442,26 +13432,26 @@ msgstr ""
" Godotin versio: %s\n"
"Ole hyvä ja uudelleenasenna Androidin käännösmalli 'Projekti'-valikosta."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Unable to overwrite res://android/build/res/*.xml files with project name"
msgstr ""
+"Ei voitu ylikirjoittaa res://android/build/res/*.xml tiedostoja projektin "
+"nimellä"
-#: platform/android/export/export.cpp
-#, fuzzy
+#: platform/android/export/export_plugin.cpp
msgid "Could not export project files to gradle project\n"
-msgstr "Ei voitu luoda godot.cfg -tiedostoa projektin polkuun."
+msgstr "Ei voitu viedä projektitiedostoja gradle-projektiksi.\n"
-#: platform/android/export/export.cpp
-#, fuzzy
+#: platform/android/export/export_plugin.cpp
msgid "Could not write expansion package file!"
-msgstr "Ei voitu kirjoittaa tiedostoa:"
+msgstr "Ei voitu kirjoittaa laajennuspakettitiedostoa!"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Building Android Project (gradle)"
msgstr "Käännetään Android-projektia (gradle)"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Building of Android project failed, check output for the error.\n"
"Alternatively visit docs.godotengine.org for Android build documentation."
@@ -13470,11 +13460,11 @@ msgstr ""
"Vaihtoehtoisesti, lue docs.godotengine.org sivustolta Androidin "
"käännösdokumentaatio."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Moving output"
msgstr "Siirretään tulostetta"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Unable to copy and rename export file, check gradle project directory for "
"outputs."
@@ -13482,48 +13472,48 @@ msgstr ""
"Vientitiedoston kopiointi ja uudelleennimeäminen ei onnistu, tarkista "
"tulosteet gradle-projektin hakemistosta."
-#: platform/android/export/export.cpp
-#, fuzzy
+#: platform/android/export/export_plugin.cpp
msgid "Package not found: %s"
-msgstr "Animaatio ei löytynyt: '%s'"
+msgstr "Pakettia ei löytynyt: %s"
-#: platform/android/export/export.cpp
-#, fuzzy
+#: platform/android/export/export_plugin.cpp
msgid "Creating APK..."
-msgstr "Luodaan korkeuskäyriä..."
+msgstr "Luodaan APK:ta..."
-#: platform/android/export/export.cpp
-#, fuzzy
+#: platform/android/export/export_plugin.cpp
msgid ""
"Could not find template APK to export:\n"
"%s"
-msgstr "Mallin avaus vientiin epäonnistui:"
+msgstr ""
+"Ei löydetty APK-vientimallia vientiä varten:\n"
+"%s"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Missing libraries in the export template for the selected architectures: "
"%s.\n"
"Please build a template with all required libraries, or uncheck the missing "
"architectures in the export preset."
msgstr ""
+"Vientimalleista puuttuu kirjastoja valituille arkkitehtuureille: %s.\n"
+"Ole hyvä ja kokoa malli, jossa on kaikki tarvittavat kirjastot, tai poista "
+"puuttuvien arkkitehtuurien valinta viennin esiasetuksista."
-#: platform/android/export/export.cpp
-#, fuzzy
+#: platform/android/export/export_plugin.cpp
msgid "Adding files..."
-msgstr "Lisätään %s..."
+msgstr "Lisätään tiedostoja..."
-#: platform/android/export/export.cpp
-#, fuzzy
+#: platform/android/export/export_plugin.cpp
msgid "Could not export project files"
-msgstr "Ei voitu kirjoittaa tiedostoa:"
+msgstr "Ei voitu viedä projektin tiedostoja"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Aligning APK..."
msgstr "Tasataan APK:ta..."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Could not unzip temporary unaligned APK."
-msgstr ""
+msgstr "Ei voitu purkaa väliaikaista unaligned APK:ta."
#: platform/iphone/export/export.cpp platform/osx/export/export.cpp
msgid "Identifier is missing."
@@ -13570,45 +13560,40 @@ msgid "Could not write file:"
msgstr "Ei voitu kirjoittaa tiedostoa:"
#: platform/javascript/export/export.cpp
-#, fuzzy
msgid "Could not read file:"
-msgstr "Ei voitu kirjoittaa tiedostoa:"
+msgstr "Ei voitu lukea tiedostoa:"
#: platform/javascript/export/export.cpp
-#, fuzzy
msgid "Could not read HTML shell:"
-msgstr "Ei voitu lukea mukautettua HTML tulkkia:"
+msgstr "Ei voitu lukea HTML tulkkia:"
#: platform/javascript/export/export.cpp
-#, fuzzy
msgid "Could not create HTTP server directory:"
-msgstr "Kansiota ei voitu luoda."
+msgstr "Ei voitu luoda HTTP-palvelimen hakemistoa:"
#: platform/javascript/export/export.cpp
-#, fuzzy
msgid "Error starting HTTP server:"
-msgstr "Virhe tallennettaessa skeneä."
+msgstr "Virhe käynnistettäessä HTTP-palvelinta:"
#: platform/osx/export/export.cpp
-#, fuzzy
msgid "Invalid bundle identifier:"
-msgstr "Virheellinen Identifier osio:"
+msgstr "Virheellinen bundle-tunniste:"
#: platform/osx/export/export.cpp
msgid "Notarization: code signing required."
-msgstr ""
+msgstr "Notarisointi: koodin allekirjoitus tarvitaan."
#: platform/osx/export/export.cpp
msgid "Notarization: hardened runtime required."
-msgstr ""
+msgstr "Notarisointi: hardened runtime tarvitaan."
#: platform/osx/export/export.cpp
msgid "Notarization: Apple ID name not specified."
-msgstr ""
+msgstr "Notarointi: Apple ID nimeä ei ole määritetty."
#: platform/osx/export/export.cpp
msgid "Notarization: Apple ID password not specified."
-msgstr ""
+msgstr "Notarointi: Apple ID salasanaa ei ole määritetty."
#: platform/uwp/export/export.cpp
msgid "Invalid package short name."
@@ -14041,6 +14026,9 @@ msgid ""
"longer has any effect.\n"
"To remove this warning, disable the GIProbe's Compress property."
msgstr ""
+"GIProben Compress-ominaisuus on poistettu käytöstä tiedossa olevien bugien "
+"vuoksi, eikä sillä ole enää mitään vaikutusta.\n"
+"Poista GIProben Compress-ominaisuus käytöstä poistaaksesi tämän varoituksen."
#: scene/3d/light.cpp
msgid "A SpotLight with an angle wider than 90 degrees cannot cast shadows."
@@ -14061,6 +14049,14 @@ msgstr ""
"NavigationMeshInstance solmun täytyy olla Navigation solmun alaisuudessa. Se "
"tarjoaa vain navigointidataa."
+#: scene/3d/occluder.cpp
+msgid "No shape is set."
+msgstr ""
+
+#: scene/3d/occluder.cpp
+msgid "Only uniform scales are supported."
+msgstr ""
+
#: scene/3d/particles.cpp
msgid ""
"GPU-based particles are not supported by the GLES2 video driver.\n"
@@ -14130,15 +14126,15 @@ msgstr "Solmujen A ja B tulee olla eri PhysicsBody solmut"
#: scene/3d/portal.cpp
msgid "The RoomManager should not be a child or grandchild of a Portal."
-msgstr ""
+msgstr "RoomManager solmun ei pitäisi sijaita Portal solmun alla."
#: scene/3d/portal.cpp
msgid "A Room should not be a child or grandchild of a Portal."
-msgstr ""
+msgstr "Room solmun ei pitäisi sijaita Portal solmun alla."
#: scene/3d/portal.cpp
msgid "A RoomGroup should not be a child or grandchild of a Portal."
-msgstr ""
+msgstr "RoomGroup solmun ei pitäisi sijaita Portal solmun alla."
#: scene/3d/remote_transform.cpp
msgid ""
@@ -14150,79 +14146,96 @@ msgstr ""
#: scene/3d/room.cpp
msgid "A Room cannot have another Room as a child or grandchild."
-msgstr ""
+msgstr "Room solmun alla ei voi olla toista Room solmua."
#: scene/3d/room.cpp
msgid "The RoomManager should not be placed inside a Room."
-msgstr ""
+msgstr "RoomManager solmua ei pitäisi sijoittaa Room solmun sisään."
#: scene/3d/room.cpp
msgid "A RoomGroup should not be placed inside a Room."
-msgstr ""
+msgstr "RoomGroup solmua ei pitäisi sijoittaa Room solmun sisään."
#: scene/3d/room.cpp
msgid ""
"Room convex hull contains a large number of planes.\n"
"Consider simplifying the room bound in order to increase performance."
msgstr ""
+"Huoneen konveksi runko sisältää suuren määrän tasoja.\n"
+"Harkitse huoneen rajojen yksinkertaistamista suorituskyvyn lisäämiseksi."
#: scene/3d/room_group.cpp
msgid "The RoomManager should not be placed inside a RoomGroup."
-msgstr ""
+msgstr "RoomManager solmua ei pitäisi sijoittaa RoomGroup solmun sisään."
#: scene/3d/room_manager.cpp
msgid "The RoomList has not been assigned."
-msgstr ""
+msgstr "RoomList solmua ei ole määrätty."
#: scene/3d/room_manager.cpp
msgid "The RoomList node should be a Spatial (or derived from Spatial)."
-msgstr ""
+msgstr "RoomList solmun tulisi olla Spatial (tai periytynyt Spatial solmusta)."
#: scene/3d/room_manager.cpp
msgid ""
"Portal Depth Limit is set to Zero.\n"
"Only the Room that the Camera is in will render."
msgstr ""
+"Portaalin Depth Limit on asetettu nollaksi.\n"
+"Vain se huone, jossa kamera on, piirretään."
#: scene/3d/room_manager.cpp
msgid "There should only be one RoomManager in the SceneTree."
-msgstr ""
+msgstr "Skenepuussa pitäisi olla vain yksi RoomManager solmu."
#: scene/3d/room_manager.cpp
msgid ""
"RoomList path is invalid.\n"
"Please check the RoomList branch has been assigned in the RoomManager."
msgstr ""
+"RoomList solmun polku on virheellinen.\n"
+"Ole hyvä ja tarkista, että RoomList haara on määrätty RoomManager solmussa."
#: scene/3d/room_manager.cpp
msgid "RoomList contains no Rooms, aborting."
-msgstr ""
+msgstr "RoomList solmulla ei ole Room solmuja, keskeytetään."
#: scene/3d/room_manager.cpp
msgid "Misnamed nodes detected, check output log for details. Aborting."
msgstr ""
+"Havaittiin väärin nimettyjä solmuja, tarkista yksityiskohdat tulostelokista. "
+"Keskeytetään."
#: scene/3d/room_manager.cpp
msgid "Portal link room not found, check output log for details."
msgstr ""
+"Portaalin linkkihuonetta ei löydetty, tarkista yksityiskohdat tulostelokista."
#: scene/3d/room_manager.cpp
msgid ""
"Portal autolink failed, check output log for details.\n"
"Check the portal is facing outwards from the source room."
msgstr ""
+"Portaalin automaatinen linkitys epäonnistui, tarkista yksityiskohdat "
+"tulostelokista.\n"
+"Tarkista, että portaali on suunnattu ulospäin lähtöhuoneesta katsottuna."
#: scene/3d/room_manager.cpp
msgid ""
"Room overlap detected, cameras may work incorrectly in overlapping area.\n"
"Check output log for details."
msgstr ""
+"Havaittiin päällekkäisiä huoneita, kamerat saattavat toimia virheellisesti "
+"päällekkäisillä alueilla.\n"
+"Tarkista yksityiskohdat tulostelokista."
#: scene/3d/room_manager.cpp
msgid ""
"Error calculating room bounds.\n"
"Ensure all rooms contain geometry or manual bounds."
msgstr ""
+"Virhe laskettaessa huoneen rajoja.\n"
+"Varmista, että kaikki huoneet sisältävät geometrian tai käsin syötetyt rajat."
#: scene/3d/soft_body.cpp
msgid "This body will be ignored until you set a mesh."
@@ -14287,7 +14300,7 @@ msgstr "Animaatio ei löytynyt: '%s'"
#: scene/animation/animation_player.cpp
msgid "Anim Apply Reset"
-msgstr ""
+msgstr "Tee animaation palautus"
#: scene/animation/animation_tree.cpp
msgid "In node '%s', invalid animation: '%s'."
@@ -14388,6 +14401,14 @@ msgstr "Käytä sopivaa tiedostopäätettä."
msgid "Enable grid minimap."
msgstr "Käytä ruudukon pienoiskarttaa."
+#: scene/gui/nine_patch_rect.cpp
+msgid ""
+"The Tile and Tile Fit options for Axis Stretch properties are only effective "
+"when using the GLES3 rendering backend.\n"
+"The GLES2 backend is currently in use, so these modes will act like Stretch "
+"instead."
+msgstr ""
+
#: scene/gui/popup.cpp
msgid ""
"Popups will hide by default unless you call popup() or any of the popup*() "
@@ -14441,6 +14462,10 @@ msgid "Viewport size must be greater than 0 to render anything."
msgstr ""
"Näyttöruudun koko on oltava suurempi kuin 0, jotta mitään renderöidään."
+#: scene/resources/occluder_shape.cpp
+msgid "OccluderShapeSphere Set Spheres"
+msgstr ""
+
#: scene/resources/visual_shader_nodes.cpp
msgid ""
"The sampler port is connected but not used. Consider changing the source to "
@@ -14462,25 +14487,29 @@ msgid "Invalid comparison function for that type."
msgstr "Virheellinen vertailufunktio tälle tyypille."
#: servers/visual/shader_language.cpp
-#, fuzzy
msgid "Varying may not be assigned in the '%s' function."
-msgstr "Varying tyypin voi sijoittaa vain vertex-funktiossa."
+msgstr "Varying tyyppiä ei voi sijoittaa '%s' funktiossa."
#: servers/visual/shader_language.cpp
msgid ""
"Varyings which assigned in 'vertex' function may not be reassigned in "
"'fragment' or 'light'."
msgstr ""
+"Varying muuttujia, jotka on sijoitettu 'vertex' funktiossa, ei voi "
+"uudelleensijoittaa 'fragment' tai 'light' funktioissa."
#: servers/visual/shader_language.cpp
msgid ""
"Varyings which assigned in 'fragment' function may not be reassigned in "
"'vertex' or 'light'."
msgstr ""
+"Varying muuttujia, jotka on sijoitettu 'fragment' funktiossa, ei voi "
+"uudelleensijoittaa 'vertex' tai 'light' funktioissa."
#: servers/visual/shader_language.cpp
msgid "Fragment-stage varying could not been accessed in custom function!"
msgstr ""
+"Kuvapistevaiheen varying muuttujaa ei voitu käyttää mukautetussa funktiossa!"
#: servers/visual/shader_language.cpp
msgid "Assignment to function."
@@ -14494,6 +14523,41 @@ msgstr "Sijoitus uniformille."
msgid "Constants cannot be modified."
msgstr "Vakioita ei voi muokata."
+#~ msgid "Make Rest Pose (From Bones)"
+#~ msgstr "Tee lepoasento (luista)"
+
+#~ msgid "Bottom"
+#~ msgstr "Pohja"
+
+#~ msgid "Left"
+#~ msgstr "Vasen"
+
+#~ msgid "Right"
+#~ msgstr "Oikea"
+
+#~ msgid "Front"
+#~ msgstr "Etu"
+
+#~ msgid "Rear"
+#~ msgstr "Taka"
+
+#~ msgid "Nameless gizmo"
+#~ msgstr "Nimetön muokkain"
+
+#~ msgid ""
+#~ "\"Degrees Of Freedom\" is only valid when \"Xr Mode\" is \"Oculus Mobile "
+#~ "VR\"."
+#~ msgstr ""
+#~ "\"Degrees Of Freedom\" on käyttökelpoinen ainoastaan kun \"Xr Mode\" "
+#~ "asetus on \"Oculus Mobile VR\"."
+
+#~ msgid ""
+#~ "\"Focus Awareness\" is only valid when \"Xr Mode\" is \"Oculus Mobile VR"
+#~ "\"."
+#~ msgstr ""
+#~ "\"Focus Awareness\" on käyttökelpoinen ainoastaan kun \"Xr Mode\" asetus "
+#~ "on \"Oculus Mobile VR\"."
+
#~ msgid "Package Contents:"
#~ msgstr "Paketin sisältö:"
diff --git a/editor/translations/fil.po b/editor/translations/fil.po
index e53b7bb1a7..c227244f65 100644
--- a/editor/translations/fil.po
+++ b/editor/translations/fil.po
@@ -1003,7 +1003,7 @@ msgstr ""
msgid "Dependencies"
msgstr ""
-#: editor/dependency_editor.cpp
+#: editor/dependency_editor.cpp editor/editor_resource_picker.cpp
msgid "Resource"
msgstr ""
@@ -1632,13 +1632,13 @@ msgid ""
"Enabled'."
msgstr ""
-#: editor/editor_export.cpp platform/android/export/export.cpp
+#: editor/editor_export.cpp platform/android/export/export_plugin.cpp
#: platform/iphone/export/export.cpp platform/javascript/export/export.cpp
#: platform/osx/export/export.cpp platform/uwp/export/export.cpp
msgid "Custom debug template not found."
msgstr ""
-#: editor/editor_export.cpp platform/android/export/export.cpp
+#: editor/editor_export.cpp platform/android/export/export_plugin.cpp
#: platform/iphone/export/export.cpp platform/javascript/export/export.cpp
#: platform/osx/export/export.cpp platform/uwp/export/export.cpp
msgid "Custom release template not found."
@@ -2010,7 +2010,7 @@ msgstr ""
msgid "(Re)Importing Assets"
msgstr ""
-#: editor/editor_help.cpp editor/plugins/spatial_editor_plugin.cpp
+#: editor/editor_help.cpp
msgid "Top"
msgstr ""
@@ -2489,6 +2489,30 @@ msgid "Current scene not saved. Open anyway?"
msgstr ""
#: editor/editor_node.cpp
+msgid "Can't undo while mouse buttons are pressed."
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "Nothing to undo."
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "Undo: %s"
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "Can't redo while mouse buttons are pressed."
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "Nothing to redo."
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "Redo: %s"
+msgstr ""
+
+#: editor/editor_node.cpp
msgid "Can't reload a scene that was never saved."
msgstr ""
@@ -3114,6 +3138,11 @@ msgid "Merge With Existing"
msgstr ""
#: editor/editor_node.cpp
+#, fuzzy
+msgid "Apply MeshInstance Transforms"
+msgstr "Pagbago ng Transform ng Animation"
+
+#: editor/editor_node.cpp
msgid "Open & Run a Script"
msgstr ""
@@ -3356,6 +3385,10 @@ msgid ""
"property (%s)."
msgstr ""
+#: editor/editor_resource_picker.cpp
+msgid "Quick Load"
+msgstr ""
+
#: editor/editor_resource_picker.cpp editor/property_editor.cpp
msgid "Make Unique"
msgstr ""
@@ -5401,6 +5434,16 @@ msgid "Move CanvasItem \"%s\" to (%d, %d)"
msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Locked"
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Grouped"
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
msgid ""
"Children of containers have their anchors and margins values overridden by "
"their parent."
@@ -6302,7 +6345,11 @@ msgid "Remove Selected Item"
msgstr ""
#: editor/plugins/mesh_library_editor_plugin.cpp
-msgid "Import from Scene"
+msgid "Import from Scene (Ignore Transforms)"
+msgstr ""
+
+#: editor/plugins/mesh_library_editor_plugin.cpp
+msgid "Import from Scene (Apply Transforms)"
msgstr ""
#: editor/plugins/mesh_library_editor_plugin.cpp
@@ -6889,6 +6936,15 @@ msgstr "Maglipat ng (mga) Bezier Point"
msgid "Flip Portal"
msgstr ""
+#: editor/plugins/room_manager_editor_plugin.cpp
+#, fuzzy
+msgid "Occluder Set Transform"
+msgstr "3D Transform Track"
+
+#: editor/plugins/room_manager_editor_plugin.cpp
+msgid "Center Node"
+msgstr ""
+
#: editor/plugins/root_motion_editor_plugin.cpp
msgid "AnimationTree has no path set to an AnimationPlayer"
msgstr ""
@@ -7383,11 +7439,11 @@ msgid "Skeleton2D"
msgstr ""
#: editor/plugins/skeleton_2d_editor_plugin.cpp
-msgid "Make Rest Pose (From Bones)"
+msgid "Reset to Rest Pose"
msgstr ""
#: editor/plugins/skeleton_2d_editor_plugin.cpp
-msgid "Set Bones to Rest Pose"
+msgid "Overwrite Rest Pose"
msgstr ""
#: editor/plugins/skeleton_editor_plugin.cpp
@@ -7415,6 +7471,60 @@ msgid "Perspective"
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Top Orthogonal"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Top Perspective"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Bottom Orthogonal"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Bottom Perspective"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Left Orthogonal"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Right Perspective"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Right Orthogonal"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Front Orthogonal"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Front Perspective"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Rear Orthogonal"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Rear Perspective"
+msgstr ""
+
+#. TRANSLATORS: This will be appended to the view name when Auto Orthogonal is enabled.
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid " [auto]"
+msgstr ""
+
+#. TRANSLATORS: This will be appended to the view name when Portal Occulusion is enabled.
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid " [portals active]"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
msgid "Transform Aborted."
msgstr ""
@@ -7522,42 +7632,22 @@ msgid "Bottom View."
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
-msgid "Bottom"
-msgstr ""
-
-#: editor/plugins/spatial_editor_plugin.cpp
msgid "Left View."
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
-msgid "Left"
-msgstr ""
-
-#: editor/plugins/spatial_editor_plugin.cpp
msgid "Right View."
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
-msgid "Right"
-msgstr ""
-
-#: editor/plugins/spatial_editor_plugin.cpp
msgid "Front View."
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
-msgid "Front"
-msgstr ""
-
-#: editor/plugins/spatial_editor_plugin.cpp
msgid "Rear View."
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
-msgid "Rear"
-msgstr ""
-
-#: editor/plugins/spatial_editor_plugin.cpp
msgid "Align Transform with View"
msgstr ""
@@ -7819,6 +7909,10 @@ msgid "View Portal Culling"
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
+msgid "View Occlusion Culling"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
#: modules/gridmap/grid_map_editor_plugin.cpp
msgid "Settings..."
msgstr ""
@@ -7884,7 +7978,7 @@ msgid "Post"
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
-msgid "Nameless gizmo"
+msgid "Unnamed Gizmo"
msgstr ""
#: editor/plugins/sprite_editor_plugin.cpp
@@ -11801,6 +11895,14 @@ msgstr ""
msgid "Set Portal Point Position"
msgstr ""
+#: editor/spatial_editor_gizmos.cpp
+msgid "Set Occluder Sphere Radius"
+msgstr ""
+
+#: editor/spatial_editor_gizmos.cpp
+msgid "Set Occluder Sphere Position"
+msgstr ""
+
#: modules/csg/csg_gizmos.cpp
msgid "Change Cylinder Radius"
msgstr ""
@@ -12082,6 +12184,10 @@ msgstr ""
msgid "Class name can't be a reserved keyword"
msgstr ""
+#: modules/mono/csharp_script.cpp
+msgid "Build Solution"
+msgstr ""
+
#: modules/mono/mono_gd/gd_mono_utils.cpp
msgid "End of inner exception stack trace"
msgstr ""
@@ -12554,159 +12660,148 @@ msgstr ""
msgid "Get %s"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Package name is missing."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Package segments must be of non-zero length."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "The character '%s' is not allowed in Android application package names."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "A digit cannot be the first character in a package segment."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "The character '%s' cannot be the first character in a package segment."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "The package must have at least one '.' separator."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Select device from the list"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Running on %s"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Exporting APK..."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Uninstalling..."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Installing to device, please wait..."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Could not install to device: %s"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Running on device..."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Could not execute on device."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Unable to find the 'apksigner' tool."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Android build template not installed in the project. Install it from the "
"Project menu."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Either Debug Keystore, Debug User AND Debug Password settings must be "
"configured OR none of them."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Debug keystore not configured in the Editor Settings nor in the preset."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Either Release Keystore, Release User AND Release Password settings must be "
"configured OR none of them."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Release keystore incorrectly configured in the export preset."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "A valid Android SDK path is required in Editor Settings."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Invalid Android SDK path in Editor Settings."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Missing 'platform-tools' directory!"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Unable to find Android SDK platform-tools' adb command."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Please check in the Android SDK directory specified in Editor Settings."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Missing 'build-tools' directory!"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Unable to find Android SDK build-tools' apksigner command."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Invalid public key for APK expansion."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Invalid package name:"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Invalid \"GodotPaymentV3\" module included in the \"android/modules\" "
"project setting (changed in Godot 3.2.2).\n"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "\"Use Custom Build\" must be enabled to use the plugins."
msgstr ""
-#: platform/android/export/export.cpp
-msgid ""
-"\"Degrees Of Freedom\" is only valid when \"Xr Mode\" is \"Oculus Mobile VR"
-"\"."
-msgstr ""
-
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"\"Hand Tracking\" is only valid when \"Xr Mode\" is \"Oculus Mobile VR\"."
msgstr ""
-#: platform/android/export/export.cpp
-msgid ""
-"\"Focus Awareness\" is only valid when \"Xr Mode\" is \"Oculus Mobile VR\"."
-msgstr ""
-
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "\"Export AAB\" is only valid when \"Use Custom Build\" is enabled."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"'apksigner' could not be found.\n"
"Please check the command is available in the Android SDK build-tools "
@@ -12714,57 +12809,57 @@ msgid ""
"The resulting %s is unsigned."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Signing debug %s..."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Signing release %s..."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Could not find keystore, unable to export."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "'apksigner' returned with error #%d"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Verifying %s..."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "'apksigner' verification of %s failed."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Exporting for Android"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Invalid filename! Android App Bundle requires the *.aab extension."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "APK Expansion not compatible with Android App Bundle."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Invalid filename! Android APK requires the *.apk extension."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Unsupported export format!\n"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Trying to build from a custom built template, but no version info for it "
"exists. Please reinstall from the 'Project' menu."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Android build version mismatch:\n"
" Template installed: %s\n"
@@ -12772,54 +12867,54 @@ msgid ""
"Please reinstall Android build template from 'Project' menu."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Unable to overwrite res://android/build/res/*.xml files with project name"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Could not export project files to gradle project\n"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Could not write expansion package file!"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Building Android Project (gradle)"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Building of Android project failed, check output for the error.\n"
"Alternatively visit docs.godotengine.org for Android build documentation."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Moving output"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Unable to copy and rename export file, check gradle project directory for "
"outputs."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Package not found: %s"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Creating APK..."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Could not find template APK to export:\n"
"%s"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Missing libraries in the export template for the selected architectures: "
"%s.\n"
@@ -12827,19 +12922,19 @@ msgid ""
"architectures in the export preset."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Adding files..."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Could not export project files"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Aligning APK..."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Could not unzip temporary unaligned APK."
msgstr ""
@@ -13289,6 +13384,14 @@ msgid ""
"It only provides navigation data."
msgstr ""
+#: scene/3d/occluder.cpp
+msgid "No shape is set."
+msgstr ""
+
+#: scene/3d/occluder.cpp
+msgid "Only uniform scales are supported."
+msgstr ""
+
#: scene/3d/particles.cpp
msgid ""
"GPU-based particles are not supported by the GLES2 video driver.\n"
@@ -13578,6 +13681,14 @@ msgstr ""
msgid "Enable grid minimap."
msgstr ""
+#: scene/gui/nine_patch_rect.cpp
+msgid ""
+"The Tile and Tile Fit options for Axis Stretch properties are only effective "
+"when using the GLES3 rendering backend.\n"
+"The GLES2 backend is currently in use, so these modes will act like Stretch "
+"instead."
+msgstr ""
+
#: scene/gui/popup.cpp
msgid ""
"Popups will hide by default unless you call popup() or any of the popup*() "
@@ -13618,6 +13729,10 @@ msgstr ""
msgid "Viewport size must be greater than 0 to render anything."
msgstr ""
+#: scene/resources/occluder_shape.cpp
+msgid "OccluderShapeSphere Set Spheres"
+msgstr ""
+
#: scene/resources/visual_shader_nodes.cpp
msgid ""
"The sampler port is connected but not used. Consider changing the source to "
diff --git a/editor/translations/fr.po b/editor/translations/fr.po
index e6e2c9021e..9416a14cdc 100644
--- a/editor/translations/fr.po
+++ b/editor/translations/fr.po
@@ -66,7 +66,7 @@
# Fabrice <fabricecipolla@gmail.com>, 2019.
# Romain Paquet <titou.paquet@gmail.com>, 2019.
# Xavier Sellier <contact@binogure-studio.com>, 2019.
-# Sofiane <Sofiane-77@caramail.fr>, 2019.
+# Sofiane <Sofiane-77@caramail.fr>, 2019, 2021.
# Camille Mohr-Daurat <pouleyketchoup@gmail.com>, 2019.
# Pierre Stempin <pierre.stempin@gmail.com>, 2019.
# Pierre Caye <pierrecaye@laposte.net>, 2020, 2021.
@@ -87,8 +87,8 @@ msgid ""
msgstr ""
"Project-Id-Version: Godot Engine editor\n"
"POT-Creation-Date: \n"
-"PO-Revision-Date: 2021-08-12 14:48+0000\n"
-"Last-Translator: Blackiris <divjvc@free.fr>\n"
+"PO-Revision-Date: 2021-08-20 06:04+0000\n"
+"Last-Translator: Pierre Caye <pierrecaye@laposte.net>\n"
"Language-Team: French <https://hosted.weblate.org/projects/godot-engine/"
"godot/fr/>\n"
"Language: fr\n"
@@ -445,15 +445,13 @@ msgstr "Insérer une animation"
#. TRANSLATORS: This describes the target of new animation track, will be inserted into another string.
#: editor/animation_track_editor.cpp
-#, fuzzy
msgid "node '%s'"
-msgstr "Mode d'aimantation (%s)"
+msgstr "nœud '%s'"
#. TRANSLATORS: This describes the target of new animation track, will be inserted into another string.
#: editor/animation_track_editor.cpp
-#, fuzzy
msgid "animation"
-msgstr "Animation"
+msgstr "animation"
#: editor/animation_track_editor.cpp
msgid "AnimationPlayer can't animate itself, only other players."
@@ -462,9 +460,8 @@ msgstr ""
#. TRANSLATORS: This describes the target of new animation track, will be inserted into another string.
#: editor/animation_track_editor.cpp
-#, fuzzy
msgid "property '%s'"
-msgstr "Il n'y a pas de propriété « %s »."
+msgstr "propriété « %s »"
#: editor/animation_track_editor.cpp
msgid "Anim Create & Insert"
@@ -1108,7 +1105,7 @@ msgstr ""
msgid "Dependencies"
msgstr "Dépendances"
-#: editor/dependency_editor.cpp
+#: editor/dependency_editor.cpp editor/editor_resource_picker.cpp
msgid "Resource"
msgstr "Ressource"
@@ -1774,13 +1771,13 @@ msgstr ""
"Activez 'Import Pvrtc' dans les paramètres du projet, ou désactivez 'Driver "
"Fallback Enabled'."
-#: editor/editor_export.cpp platform/android/export/export.cpp
+#: editor/editor_export.cpp platform/android/export/export_plugin.cpp
#: platform/iphone/export/export.cpp platform/javascript/export/export.cpp
#: platform/osx/export/export.cpp platform/uwp/export/export.cpp
msgid "Custom debug template not found."
msgstr "Modèle de débogage personnalisé introuvable."
-#: editor/editor_export.cpp platform/android/export/export.cpp
+#: editor/editor_export.cpp platform/android/export/export_plugin.cpp
#: platform/iphone/export/export.cpp platform/javascript/export/export.cpp
#: platform/osx/export/export.cpp platform/uwp/export/export.cpp
msgid "Custom release template not found."
@@ -2165,7 +2162,7 @@ msgstr ""
msgid "(Re)Importing Assets"
msgstr "Ré-importation des assets"
-#: editor/editor_help.cpp editor/plugins/spatial_editor_plugin.cpp
+#: editor/editor_help.cpp
msgid "Top"
msgstr "Dessus"
@@ -2402,6 +2399,9 @@ msgid ""
"Update Continuously is enabled, which can increase power usage. Click to "
"disable it."
msgstr ""
+"Tourne lorsque la fenêtre de l'éditeur est redessinée.\n"
+"L'option Mettre à jour en Permanence est activée, ce qui peut augmenter la "
+"consommation de puissance. Cliquez pour le désactiver."
#: editor/editor_node.cpp
msgid "Spins when the editor window redraws."
@@ -2684,6 +2684,32 @@ msgid "Current scene not saved. Open anyway?"
msgstr "La scène actuelle n'est pas enregistrée. Ouvrir quand même ?"
#: editor/editor_node.cpp
+msgid "Can't undo while mouse buttons are pressed."
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "Nothing to undo."
+msgstr ""
+
+#: editor/editor_node.cpp
+#, fuzzy
+msgid "Undo: %s"
+msgstr "Annuler"
+
+#: editor/editor_node.cpp
+msgid "Can't redo while mouse buttons are pressed."
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "Nothing to redo."
+msgstr ""
+
+#: editor/editor_node.cpp
+#, fuzzy
+msgid "Redo: %s"
+msgstr "Refaire"
+
+#: editor/editor_node.cpp
msgid "Can't reload a scene that was never saved."
msgstr "Impossible de recharger une scène qui n'a jamais été sauvegardée."
@@ -3382,6 +3408,11 @@ msgid "Merge With Existing"
msgstr "Fusionner avec l'existant"
#: editor/editor_node.cpp
+#, fuzzy
+msgid "Apply MeshInstance Transforms"
+msgstr "Changer la transformation de l’animation"
+
+#: editor/editor_node.cpp
msgid "Open & Run a Script"
msgstr "Ouvrir et exécuter un script"
@@ -3640,6 +3671,10 @@ msgstr ""
"La ressource sélectionnée (%s) ne correspond à aucun des types attendus pour "
"cette propriété (%s)."
+#: editor/editor_resource_picker.cpp
+msgid "Quick Load"
+msgstr ""
+
#: editor/editor_resource_picker.cpp editor/property_editor.cpp
msgid "Make Unique"
msgstr "Rendre unique"
@@ -3935,14 +3970,12 @@ msgid "Download from:"
msgstr "Télécharger depuis :"
#: editor/export_template_manager.cpp
-#, fuzzy
msgid "Open in Web Browser"
-msgstr "Exécuter dans le navigateur"
+msgstr "Ouvrir dans le navigateur Web"
#: editor/export_template_manager.cpp
-#, fuzzy
msgid "Copy Mirror URL"
-msgstr "Copier l'erreur"
+msgstr "Copier l'URL du miroir"
#: editor/export_template_manager.cpp
msgid "Download and Install"
@@ -5760,6 +5793,18 @@ msgid "Move CanvasItem \"%s\" to (%d, %d)"
msgstr "Déplacer le CanvasItem « %s » vers (%d, %d)"
#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Locked"
+msgstr "Verrouillage Sélectionné"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Grouped"
+msgstr "Groupes"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
msgid ""
"Children of containers have their anchors and margins values overridden by "
"their parent."
@@ -6710,7 +6755,13 @@ msgid "Remove Selected Item"
msgstr "Supprimer l'élément sélectionné"
#: editor/plugins/mesh_library_editor_plugin.cpp
-msgid "Import from Scene"
+#, fuzzy
+msgid "Import from Scene (Ignore Transforms)"
+msgstr "Importer depuis la scène"
+
+#: editor/plugins/mesh_library_editor_plugin.cpp
+#, fuzzy
+msgid "Import from Scene (Apply Transforms)"
msgstr "Importer depuis la scène"
#: editor/plugins/mesh_library_editor_plugin.cpp
@@ -7308,6 +7359,16 @@ msgstr "Générer des points"
msgid "Flip Portal"
msgstr "Retourner le Portal"
+#: editor/plugins/room_manager_editor_plugin.cpp
+#, fuzzy
+msgid "Occluder Set Transform"
+msgstr "Supprimer la transformation"
+
+#: editor/plugins/room_manager_editor_plugin.cpp
+#, fuzzy
+msgid "Center Node"
+msgstr "Créer un nœud"
+
#: editor/plugins/root_motion_editor_plugin.cpp
msgid "AnimationTree has no path set to an AnimationPlayer"
msgstr "AnimationTree n'a pas de chemin défini vers un AnimationPlayer"
@@ -7812,12 +7873,14 @@ msgid "Skeleton2D"
msgstr "Squelette 2D"
#: editor/plugins/skeleton_2d_editor_plugin.cpp
-msgid "Make Rest Pose (From Bones)"
-msgstr "Créer la position de repos (d'après les os)"
+#, fuzzy
+msgid "Reset to Rest Pose"
+msgstr "Assigner les os à la position de repos"
#: editor/plugins/skeleton_2d_editor_plugin.cpp
-msgid "Set Bones to Rest Pose"
-msgstr "Assigner les os à la position de repos"
+#, fuzzy
+msgid "Overwrite Rest Pose"
+msgstr "Écraser"
#: editor/plugins/skeleton_editor_plugin.cpp
msgid "Create physical bones"
@@ -7844,6 +7907,71 @@ msgid "Perspective"
msgstr "Perspective"
#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Top Orthogonal"
+msgstr "Orthogonale"
+
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Top Perspective"
+msgstr "Perspective"
+
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Bottom Orthogonal"
+msgstr "Orthogonale"
+
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Bottom Perspective"
+msgstr "Perspective"
+
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Left Orthogonal"
+msgstr "Orthogonale"
+
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Right Perspective"
+msgstr "Perspective"
+
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Right Orthogonal"
+msgstr "Orthogonale"
+
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Front Orthogonal"
+msgstr "Orthogonale"
+
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Front Perspective"
+msgstr "Perspective"
+
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Rear Orthogonal"
+msgstr "Orthogonale"
+
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Rear Perspective"
+msgstr "Perspective"
+
+#. TRANSLATORS: This will be appended to the view name when Auto Orthogonal is enabled.
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid " [auto]"
+msgstr ""
+
+#. TRANSLATORS: This will be appended to the view name when Portal Occulusion is enabled.
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid " [portals active]"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
msgid "Transform Aborted."
msgstr "Transformation annulée."
@@ -7951,42 +8079,22 @@ msgid "Bottom View."
msgstr "Vue de dessous."
#: editor/plugins/spatial_editor_plugin.cpp
-msgid "Bottom"
-msgstr "Dessous"
-
-#: editor/plugins/spatial_editor_plugin.cpp
msgid "Left View."
msgstr "Vue de gauche."
#: editor/plugins/spatial_editor_plugin.cpp
-msgid "Left"
-msgstr "Gauche"
-
-#: editor/plugins/spatial_editor_plugin.cpp
msgid "Right View."
msgstr "Vue de droite."
#: editor/plugins/spatial_editor_plugin.cpp
-msgid "Right"
-msgstr "Droite"
-
-#: editor/plugins/spatial_editor_plugin.cpp
msgid "Front View."
msgstr "Vue avant."
#: editor/plugins/spatial_editor_plugin.cpp
-msgid "Front"
-msgstr "Avant"
-
-#: editor/plugins/spatial_editor_plugin.cpp
msgid "Rear View."
msgstr "Vue arrière."
#: editor/plugins/spatial_editor_plugin.cpp
-msgid "Rear"
-msgstr "Arrière"
-
-#: editor/plugins/spatial_editor_plugin.cpp
msgid "Align Transform with View"
msgstr "Aligner Transform avec la vue"
@@ -8261,6 +8369,11 @@ msgid "View Portal Culling"
msgstr "Afficher le Portal culling"
#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "View Occlusion Culling"
+msgstr "Afficher le Portal culling"
+
+#: editor/plugins/spatial_editor_plugin.cpp
#: modules/gridmap/grid_map_editor_plugin.cpp
msgid "Settings..."
msgstr "Paramètres..."
@@ -8326,8 +8439,9 @@ msgid "Post"
msgstr "Post"
#: editor/plugins/spatial_editor_plugin.cpp
-msgid "Nameless gizmo"
-msgstr "Gadget sans nom"
+#, fuzzy
+msgid "Unnamed Gizmo"
+msgstr "Projet sans titre"
#: editor/plugins/sprite_editor_plugin.cpp
msgid "Create Mesh2D"
@@ -8790,6 +8904,9 @@ msgid ""
"Select a theme type from the list to edit its items.\n"
"You can add a custom type or import a type with its items from another theme."
msgstr ""
+"Sélectionnez un type de thème dans la liste pour modifier ses éléments. \n"
+"Vous pouvez ajouter un type personnalisé ou importer un type avec ses "
+"éléments à partir d’un autre thème."
#: editor/plugins/theme_editor_plugin.cpp
msgid "Remove All Color Items"
@@ -8820,6 +8937,9 @@ msgid ""
"This theme type is empty.\n"
"Add more items to it manually or by importing from another theme."
msgstr ""
+"Ce type de thème est vide.\n"
+"Ajoutez-lui des éléments manuellement ou en important à partir d'un autre "
+"thème."
#: editor/plugins/theme_editor_plugin.cpp
msgid "Add Color Item"
@@ -12474,14 +12594,22 @@ msgid "Change Ray Shape Length"
msgstr "Changer la longueur d'une forme en rayon"
#: editor/spatial_editor_gizmos.cpp
-#, fuzzy
msgid "Set Room Point Position"
-msgstr "Définir la position du point de la courbe"
+msgstr "Définir la position du point de la pièce"
#: editor/spatial_editor_gizmos.cpp
-#, fuzzy
msgid "Set Portal Point Position"
-msgstr "Définir la position du point de la courbe"
+msgstr "Définir la position du point du Portal"
+
+#: editor/spatial_editor_gizmos.cpp
+#, fuzzy
+msgid "Set Occluder Sphere Radius"
+msgstr "Changer le rayon de la forme du cylindre"
+
+#: editor/spatial_editor_gizmos.cpp
+#, fuzzy
+msgid "Set Occluder Sphere Position"
+msgstr "Définir position d'entrée de la courbe"
#: modules/csg/csg_gizmos.cpp
msgid "Change Cylinder Radius"
@@ -12596,9 +12724,8 @@ msgid "Object can't provide a length."
msgstr "L'objet ne peut fournir une longueur."
#: modules/gltf/editor_scene_exporter_gltf_plugin.cpp
-#, fuzzy
msgid "Export Mesh GLTF2"
-msgstr "Exporter le Maillage GLTF2"
+msgstr "Exporter le Maillage en GLTF2"
#: modules/gltf/editor_scene_exporter_gltf_plugin.cpp
msgid "Export GLTF..."
@@ -12769,6 +12896,11 @@ msgstr "Tracer des lightmaps"
msgid "Class name can't be a reserved keyword"
msgstr "Le nom de classe ne peut pas être un mot-clé réservé"
+#: modules/mono/csharp_script.cpp
+#, fuzzy
+msgid "Build Solution"
+msgstr "Remplir la sélection"
+
#: modules/mono/mono_gd/gd_mono_utils.cpp
msgid "End of inner exception stack trace"
msgstr "Fin de la trace d'appel (stack trace) intrinsèque"
@@ -13020,9 +13152,8 @@ msgid "Add Preload Node"
msgstr "Ajouter un nœud préchargé"
#: modules/visual_script/visual_script_editor.cpp
-#, fuzzy
msgid "Add Node(s)"
-msgstr "Ajouter un nœud"
+msgstr "Ajouter Node(s)"
#: modules/visual_script/visual_script_editor.cpp
msgid "Add Node(s) From Tree"
@@ -13257,73 +13388,72 @@ msgstr "Rechercher VisualScript"
msgid "Get %s"
msgstr "Obtenir %s"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Package name is missing."
msgstr "Nom du paquet manquant."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Package segments must be of non-zero length."
msgstr "Les segments du paquet doivent être de longueur non nulle."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "The character '%s' is not allowed in Android application package names."
msgstr ""
"Le caractère « %s » n'est pas autorisé dans les noms de paquet "
"d'applications Android."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "A digit cannot be the first character in a package segment."
msgstr ""
"Un chiffre ne peut pas être le premier caractère d'un segment de paquet."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "The character '%s' cannot be the first character in a package segment."
msgstr ""
"Le caractère \"%s\" ne peut pas être le premier caractère d'un segment de "
"paquet."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "The package must have at least one '.' separator."
msgstr "Le paquet doit comporter au moins un séparateur « . »."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Select device from the list"
msgstr "Sélectionner appareil depuis la liste"
-#: platform/android/export/export.cpp
-#, fuzzy
+#: platform/android/export/export_plugin.cpp
msgid "Running on %s"
-msgstr "En cours d'exécution sur %s"
+msgstr "Exécution sur %s"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Exporting APK..."
msgstr "Exportation de l'APK..."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Uninstalling..."
msgstr "Désinstallation..."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Installing to device, please wait..."
msgstr "Installation sur l'appareil, veuillez patienter..."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Could not install to device: %s"
msgstr "Impossible d'installer sur l'appareil : %s"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Running on device..."
msgstr "En cours d'exécution sur l'appareil..."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Could not execute on device."
msgstr "Impossible d'exécuter sur l'appareil."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Unable to find the 'apksigner' tool."
msgstr "Impossible de trouver l'outil 'apksigner'."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Android build template not installed in the project. Install it from the "
"Project menu."
@@ -13331,7 +13461,7 @@ msgstr ""
"Le modèle de compilation Android n'est pas installé dans le projet. "
"Installez-le à partir du menu Projet."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Either Debug Keystore, Debug User AND Debug Password settings must be "
"configured OR none of them."
@@ -13339,13 +13469,13 @@ msgstr ""
"Il faut configurer soit les paramètres Debug Keystore, Debug User ET Debug "
"Password, soit aucun d'entre eux."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Debug keystore not configured in the Editor Settings nor in the preset."
msgstr ""
"Le Debug keystore n'est pas configuré dans les Paramètres de l'éditeur, ni "
"dans le préréglage."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Either Release Keystore, Release User AND Release Password settings must be "
"configured OR none of them."
@@ -13353,55 +13483,55 @@ msgstr ""
"Il faut configurer soit les paramètres Release Keystore, Release User ET "
"Release Password, soit aucun d'entre eux."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Release keystore incorrectly configured in the export preset."
msgstr ""
"La clé de version n'est pas configurée correctement dans le préréglage "
"d'exportation."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "A valid Android SDK path is required in Editor Settings."
msgstr ""
"Un chemin d'accès valide au SDK Android est requis dans les paramètres de "
"l'éditeur."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Invalid Android SDK path in Editor Settings."
msgstr ""
"Chemin d'accès invalide au SDK Android dans les paramètres de l'éditeur."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Missing 'platform-tools' directory!"
msgstr "Dossier « platform-tools » manquant !"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Unable to find Android SDK platform-tools' adb command."
msgstr "Impossible de trouver la commande adb du SDK Android platform-tools."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Please check in the Android SDK directory specified in Editor Settings."
msgstr ""
"Veuillez vérifier le répertoire du SDK Android spécifié dans les paramètres "
"de l'éditeur."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Missing 'build-tools' directory!"
msgstr "Dossier « build-tools » manquant !"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Unable to find Android SDK build-tools' apksigner command."
msgstr ""
"Impossible de trouver la commande apksigner du SDK Android build-tools."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Invalid public key for APK expansion."
msgstr "Clé publique invalide pour l'expansion APK."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Invalid package name:"
msgstr "Nom de paquet invalide :"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Invalid \"GodotPaymentV3\" module included in the \"android/modules\" "
"project setting (changed in Godot 3.2.2).\n"
@@ -13409,40 +13539,24 @@ msgstr ""
"Module \"GodotPaymentV3\" invalide inclus dans le paramétrage du projet "
"\"android/modules\" (modifié dans Godot 3.2.2).\n"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "\"Use Custom Build\" must be enabled to use the plugins."
msgstr "« Use Custom Build » doit être activé pour utiliser les plugins."
-#: platform/android/export/export.cpp
-msgid ""
-"\"Degrees Of Freedom\" is only valid when \"Xr Mode\" is \"Oculus Mobile VR"
-"\"."
-msgstr ""
-"« Degrés de liberté » est valide uniquement lorsque le « Mode Xr » est « "
-"Oculus Mobile VR »."
-
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"\"Hand Tracking\" is only valid when \"Xr Mode\" is \"Oculus Mobile VR\"."
msgstr ""
"« Suivi de la main » est valide uniquement lorsque le « Mode Xr » est « "
"Oculus Mobile VR »."
-#: platform/android/export/export.cpp
-msgid ""
-"\"Focus Awareness\" is only valid when \"Xr Mode\" is \"Oculus Mobile VR\"."
-msgstr ""
-"« Sensibilité de la mise au point » est valide uniquement lorsque le « Mode "
-"Xr » est « Oculus Mobile VR »."
-
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "\"Export AAB\" is only valid when \"Use Custom Build\" is enabled."
msgstr ""
"« Export AAB » est valide uniquement lorsque l'option « Use Custom Build » "
"est activée."
-#: platform/android/export/export.cpp
-#, fuzzy
+#: platform/android/export/export_plugin.cpp
msgid ""
"'apksigner' could not be found.\n"
"Please check the command is available in the Android SDK build-tools "
@@ -13454,61 +13568,57 @@ msgstr ""
"du SDK Android.\n"
"Le paquet sortant %s est non signé."
-#: platform/android/export/export.cpp
-#, fuzzy
+#: platform/android/export/export_plugin.cpp
msgid "Signing debug %s..."
msgstr "Signature du debug %s..."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Signing release %s..."
msgstr "Signature de la version %s..."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Could not find keystore, unable to export."
msgstr "Impossible de trouver le keystore, impossible d'exporter."
-#: platform/android/export/export.cpp
-#, fuzzy
+#: platform/android/export/export_plugin.cpp
msgid "'apksigner' returned with error #%d"
-msgstr "'apksigner' a terminé avec l'erreur #%d"
+msgstr "'apksigner' est retourné avec l'erreur #%d"
-#: platform/android/export/export.cpp
-#, fuzzy
+#: platform/android/export/export_plugin.cpp
msgid "Verifying %s..."
msgstr "Vérification de %s..."
-#: platform/android/export/export.cpp
-#, fuzzy
+#: platform/android/export/export_plugin.cpp
msgid "'apksigner' verification of %s failed."
-msgstr "La vérification de %s avec 'apksigner' a échoué."
+msgstr "La vérification de %s par 'apksigner' a échoué."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Exporting for Android"
msgstr "Exportation vers Android"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Invalid filename! Android App Bundle requires the *.aab extension."
msgstr ""
"Nom de fichier invalide ! Le bundle d'application Android nécessite "
"l'extension *.aab."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "APK Expansion not compatible with Android App Bundle."
msgstr ""
"L'expansion de fichier APK n'est pas compatible avec le bundle d'application "
"Android."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Invalid filename! Android APK requires the *.apk extension."
msgstr ""
"Nom de fichier invalide ! Les fichiers APK d'Android nécessitent l'extension "
"*.apk."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Unsupported export format!\n"
msgstr "Format d'export non supporté !\n"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Trying to build from a custom built template, but no version info for it "
"exists. Please reinstall from the 'Project' menu."
@@ -13517,7 +13627,7 @@ msgstr ""
"information de version n'existe pour lui. Veuillez réinstaller à partir du "
"menu 'Projet'."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Android build version mismatch:\n"
" Template installed: %s\n"
@@ -13529,27 +13639,26 @@ msgstr ""
" Version Godot : %s\n"
"Veuillez réinstaller la version d'Android depuis le menu 'Projet'."
-#: platform/android/export/export.cpp
-#, fuzzy
+#: platform/android/export/export_plugin.cpp
msgid ""
"Unable to overwrite res://android/build/res/*.xml files with project name"
msgstr ""
"Impossible d'écraser les fichiers res://android/build/res/*.xml avec le nom "
"du projet"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Could not export project files to gradle project\n"
msgstr "Impossible d'exporter les fichiers du projet vers le projet gradle\n"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Could not write expansion package file!"
msgstr "Impossible d'écrire le fichier du paquet d'expansion !"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Building Android Project (gradle)"
msgstr "Construire le Project Android (gradle)"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Building of Android project failed, check output for the error.\n"
"Alternatively visit docs.godotengine.org for Android build documentation."
@@ -13559,11 +13668,11 @@ msgstr ""
"Sinon, visitez docs.godotengine.org pour la documentation de construction "
"Android."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Moving output"
msgstr "Déplacement du résultat"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Unable to copy and rename export file, check gradle project directory for "
"outputs."
@@ -13571,17 +13680,15 @@ msgstr ""
"Impossible de copier et de renommer le fichier d'export, vérifiez le dossier "
"du projet gradle pour les journaux."
-#: platform/android/export/export.cpp
-#, fuzzy
+#: platform/android/export/export_plugin.cpp
msgid "Package not found: %s"
-msgstr "Paquet introuvable : « %s »"
+msgstr "Paquet non trouvé : %s"
-#: platform/android/export/export.cpp
-#, fuzzy
+#: platform/android/export/export_plugin.cpp
msgid "Creating APK..."
-msgstr "Création du fichier APK..."
+msgstr "Création de l'APK..."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Could not find template APK to export:\n"
"%s"
@@ -13589,33 +13696,31 @@ msgstr ""
"Impossible de trouver le modèle de l'APK à exporter :\n"
"%s"
-#: platform/android/export/export.cpp
-#, fuzzy
+#: platform/android/export/export_plugin.cpp
msgid ""
"Missing libraries in the export template for the selected architectures: "
"%s.\n"
"Please build a template with all required libraries, or uncheck the missing "
"architectures in the export preset."
msgstr ""
-"Bibliothèques manquantes dans le modèle d'export pour les architectures "
+"Bibliothèques manquantes dans le modèle d'exportation pour les architectures "
"sélectionnées : %s.\n"
"Veuillez construire un modèle avec toutes les bibliothèques requises, ou "
-"désélectionner les architectures manquantes dans le préréglage de l'export."
+"désélectionner les architectures manquantes dans le préréglage d'exportation."
-#: platform/android/export/export.cpp
-#, fuzzy
+#: platform/android/export/export_plugin.cpp
msgid "Adding files..."
msgstr "Ajout de fichiers..."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Could not export project files"
msgstr "Impossible d'exporter les fichiers du projet"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Aligning APK..."
msgstr "Alignement de l'APK…"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Could not unzip temporary unaligned APK."
msgstr "Impossible de décompresser l'APK temporaire non aligné."
@@ -13668,9 +13773,8 @@ msgid "Could not read file:"
msgstr "Impossible de lire le fichier :"
#: platform/javascript/export/export.cpp
-#, fuzzy
msgid "Could not read HTML shell:"
-msgstr "Impossible de lire le shell HTML personnalisé :"
+msgstr "Impossible de lire le shell HTML :"
#: platform/javascript/export/export.cpp
msgid "Could not create HTTP server directory:"
@@ -13681,26 +13785,24 @@ msgid "Error starting HTTP server:"
msgstr "Erreur de démarrage du serveur HTTP :"
#: platform/osx/export/export.cpp
-#, fuzzy
msgid "Invalid bundle identifier:"
-msgstr "Identifiant invalide :"
+msgstr "Identificateur de bundle non valide :"
#: platform/osx/export/export.cpp
-#, fuzzy
msgid "Notarization: code signing required."
msgstr "Certification : signature du code requise."
#: platform/osx/export/export.cpp
msgid "Notarization: hardened runtime required."
-msgstr ""
+msgstr "Certification : exécution renforcée requise."
#: platform/osx/export/export.cpp
msgid "Notarization: Apple ID name not specified."
-msgstr ""
+msgstr "Certification : Identifiant Apple ID non spécifié."
#: platform/osx/export/export.cpp
msgid "Notarization: Apple ID password not specified."
-msgstr ""
+msgstr "Certification : Mot de passe Apple ID non spécifié."
#: platform/uwp/export/export.cpp
msgid "Invalid package short name."
@@ -14145,7 +14247,6 @@ msgstr ""
"A la place utilisez une BakedLightMap."
#: scene/3d/gi_probe.cpp
-#, fuzzy
msgid ""
"The GIProbe Compress property has been deprecated due to known bugs and no "
"longer has any effect.\n"
@@ -14176,6 +14277,14 @@ msgstr ""
"Un NavigationMeshInstance doit être enfant ou sous-enfant d'un nœud de type "
"Navigation. Il fournit uniquement des données de navigation."
+#: scene/3d/occluder.cpp
+msgid "No shape is set."
+msgstr ""
+
+#: scene/3d/occluder.cpp
+msgid "Only uniform scales are supported."
+msgstr ""
+
#: scene/3d/particles.cpp
msgid ""
"GPU-based particles are not supported by the GLES2 video driver.\n"
@@ -14269,78 +14378,100 @@ msgstr ""
#: scene/3d/room.cpp
msgid "A Room cannot have another Room as a child or grandchild."
msgstr ""
+"Une pièce ne peut pas avoir une autre pièce comme enfant ou petit-enfant."
#: scene/3d/room.cpp
msgid "The RoomManager should not be placed inside a Room."
-msgstr ""
+msgstr "Le RoomManager ne doit pas être placé à l'intérieur d'une pièce."
#: scene/3d/room.cpp
msgid "A RoomGroup should not be placed inside a Room."
-msgstr ""
+msgstr "Un RoomGroup ne doit pas être placé à l'intérieur d'une pièce."
#: scene/3d/room.cpp
msgid ""
"Room convex hull contains a large number of planes.\n"
"Consider simplifying the room bound in order to increase performance."
msgstr ""
+"La coque convexe de la pièce contient un grand nombre de plans.\n"
+"Envisagez de simplifier la limite de la pièce afin d'augmenter les "
+"performances."
#: scene/3d/room_group.cpp
msgid "The RoomManager should not be placed inside a RoomGroup."
-msgstr ""
+msgstr "Le RoomManager ne doit pas être placé à l'intérieur d'un RoomGroup."
#: scene/3d/room_manager.cpp
msgid "The RoomList has not been assigned."
-msgstr ""
+msgstr "La RoomList n'a pas été assignée."
#: scene/3d/room_manager.cpp
msgid "The RoomList node should be a Spatial (or derived from Spatial)."
-msgstr ""
+msgstr "Le nœud RoomList doit être un Spatial (ou un dérivé de Spatial)."
#: scene/3d/room_manager.cpp
msgid ""
"Portal Depth Limit is set to Zero.\n"
"Only the Room that the Camera is in will render."
msgstr ""
+"La limite de profondeur du portail est fixée à zéro.\n"
+"Seule la pièce dans laquelle se trouve la caméra sera rendue."
#: scene/3d/room_manager.cpp
msgid "There should only be one RoomManager in the SceneTree."
-msgstr ""
+msgstr "Il ne doit y avoir qu'un seul RoomManager dans le SceneTree."
#: scene/3d/room_manager.cpp
msgid ""
"RoomList path is invalid.\n"
"Please check the RoomList branch has been assigned in the RoomManager."
msgstr ""
+"Le chemin de la RoomList est invalide.\n"
+"Veuillez vérifier que la branche RoomList a été attribuée dans le "
+"RoomManager."
#: scene/3d/room_manager.cpp
msgid "RoomList contains no Rooms, aborting."
-msgstr ""
+msgstr "RoomList ne contient aucune pièce, abandon."
#: scene/3d/room_manager.cpp
msgid "Misnamed nodes detected, check output log for details. Aborting."
msgstr ""
+"Des nœuds mal nommés ont été détectés, vérifiez le journal de sortie pour "
+"plus de détails. Abandon."
#: scene/3d/room_manager.cpp
msgid "Portal link room not found, check output log for details."
msgstr ""
+"Lien entre le portail et la pièce introuvable, vérifiez le journal de sortie "
+"pour plus de détails."
#: scene/3d/room_manager.cpp
msgid ""
"Portal autolink failed, check output log for details.\n"
"Check the portal is facing outwards from the source room."
msgstr ""
+"La liaison automatique du portail a échoué, vérifiez le journal de sortie "
+"pour plus de détails.\n"
+"Vérifiez que le portail est orienté vers l'extérieur de la pièce source."
#: scene/3d/room_manager.cpp
msgid ""
"Room overlap detected, cameras may work incorrectly in overlapping area.\n"
"Check output log for details."
msgstr ""
+"Chevauchement de pièces détecté, les caméras peuvent fonctionner de manière "
+"incorrecte dans la zone de chevauchement.\n"
+"Consultez le journal de sortie pour plus de détails."
#: scene/3d/room_manager.cpp
msgid ""
"Error calculating room bounds.\n"
"Ensure all rooms contain geometry or manual bounds."
msgstr ""
+"Erreur de calcul des limites de la pièce.\n"
+"Assurez-vous que toutes les pièces contiennent une géométrie ou des limites "
+"manuelles."
#: scene/3d/soft_body.cpp
msgid "This body will be ignored until you set a mesh."
@@ -14406,7 +14537,7 @@ msgstr "Animation introuvable : « %s »"
#: scene/animation/animation_player.cpp
msgid "Anim Apply Reset"
-msgstr ""
+msgstr "Animer Appliquer Réinitialiser"
#: scene/animation/animation_tree.cpp
msgid "In node '%s', invalid animation: '%s'."
@@ -14509,6 +14640,14 @@ msgstr "Utilisez une extension valide."
msgid "Enable grid minimap."
msgstr "Activer l'alignement."
+#: scene/gui/nine_patch_rect.cpp
+msgid ""
+"The Tile and Tile Fit options for Axis Stretch properties are only effective "
+"when using the GLES3 rendering backend.\n"
+"The GLES2 backend is currently in use, so these modes will act like Stretch "
+"instead."
+msgstr ""
+
#: scene/gui/popup.cpp
msgid ""
"Popups will hide by default unless you call popup() or any of the popup*() "
@@ -14565,6 +14704,10 @@ msgstr ""
"La taille de la fenêtre d'affichage doit être supérieure à 0 pour pouvoir "
"afficher quoi que ce soit."
+#: scene/resources/occluder_shape.cpp
+msgid "OccluderShapeSphere Set Spheres"
+msgstr ""
+
#: scene/resources/visual_shader_nodes.cpp
msgid ""
"The sampler port is connected but not used. Consider changing the source to "
@@ -14586,25 +14729,30 @@ msgid "Invalid comparison function for that type."
msgstr "Fonction de comparaison invalide pour ce type."
#: servers/visual/shader_language.cpp
-#, fuzzy
msgid "Varying may not be assigned in the '%s' function."
-msgstr "Les variations ne peuvent être affectées que dans la fonction vertex."
+msgstr "Varying ne peut pas être assigné dans la fonction '%s'."
#: servers/visual/shader_language.cpp
msgid ""
"Varyings which assigned in 'vertex' function may not be reassigned in "
"'fragment' or 'light'."
msgstr ""
+"Les Varyings assignées dans la fonction \"vertex\" ne peuvent pas être "
+"réassignées dans 'fragment' ou 'light'."
#: servers/visual/shader_language.cpp
msgid ""
"Varyings which assigned in 'fragment' function may not be reassigned in "
"'vertex' or 'light'."
msgstr ""
+"Les Varyings attribuées dans la fonction 'fragment' ne peuvent pas être "
+"réattribuées dans 'vertex' ou 'light'."
#: servers/visual/shader_language.cpp
msgid "Fragment-stage varying could not been accessed in custom function!"
msgstr ""
+"La varying de l'étape fragment n'a pas pu être accédée dans la fonction "
+"personnalisée !"
#: servers/visual/shader_language.cpp
msgid "Assignment to function."
@@ -14618,6 +14766,41 @@ msgstr "Affectation à la variable uniform."
msgid "Constants cannot be modified."
msgstr "Les constantes ne peuvent être modifiées."
+#~ msgid "Make Rest Pose (From Bones)"
+#~ msgstr "Créer la position de repos (d'après les os)"
+
+#~ msgid "Bottom"
+#~ msgstr "Dessous"
+
+#~ msgid "Left"
+#~ msgstr "Gauche"
+
+#~ msgid "Right"
+#~ msgstr "Droite"
+
+#~ msgid "Front"
+#~ msgstr "Avant"
+
+#~ msgid "Rear"
+#~ msgstr "Arrière"
+
+#~ msgid "Nameless gizmo"
+#~ msgstr "Gadget sans nom"
+
+#~ msgid ""
+#~ "\"Degrees Of Freedom\" is only valid when \"Xr Mode\" is \"Oculus Mobile "
+#~ "VR\"."
+#~ msgstr ""
+#~ "« Degrés de liberté » est valide uniquement lorsque le « Mode Xr » est « "
+#~ "Oculus Mobile VR »."
+
+#~ msgid ""
+#~ "\"Focus Awareness\" is only valid when \"Xr Mode\" is \"Oculus Mobile VR"
+#~ "\"."
+#~ msgstr ""
+#~ "« Sensibilité de la mise au point » est valide uniquement lorsque le « "
+#~ "Mode Xr » est « Oculus Mobile VR »."
+
#~ msgid "Package Contents:"
#~ msgstr "Contenu du paquetage :"
diff --git a/editor/translations/ga.po b/editor/translations/ga.po
index 872463b1a9..da5c9051ed 100644
--- a/editor/translations/ga.po
+++ b/editor/translations/ga.po
@@ -995,7 +995,7 @@ msgstr ""
msgid "Dependencies"
msgstr ""
-#: editor/dependency_editor.cpp
+#: editor/dependency_editor.cpp editor/editor_resource_picker.cpp
msgid "Resource"
msgstr "Acmhainn"
@@ -1625,13 +1625,13 @@ msgid ""
"Enabled'."
msgstr ""
-#: editor/editor_export.cpp platform/android/export/export.cpp
+#: editor/editor_export.cpp platform/android/export/export_plugin.cpp
#: platform/iphone/export/export.cpp platform/javascript/export/export.cpp
#: platform/osx/export/export.cpp platform/uwp/export/export.cpp
msgid "Custom debug template not found."
msgstr ""
-#: editor/editor_export.cpp platform/android/export/export.cpp
+#: editor/editor_export.cpp platform/android/export/export_plugin.cpp
#: platform/iphone/export/export.cpp platform/javascript/export/export.cpp
#: platform/osx/export/export.cpp platform/uwp/export/export.cpp
msgid "Custom release template not found."
@@ -2002,7 +2002,7 @@ msgstr ""
msgid "(Re)Importing Assets"
msgstr ""
-#: editor/editor_help.cpp editor/plugins/spatial_editor_plugin.cpp
+#: editor/editor_help.cpp
msgid "Top"
msgstr ""
@@ -2481,6 +2481,30 @@ msgid "Current scene not saved. Open anyway?"
msgstr ""
#: editor/editor_node.cpp
+msgid "Can't undo while mouse buttons are pressed."
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "Nothing to undo."
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "Undo: %s"
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "Can't redo while mouse buttons are pressed."
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "Nothing to redo."
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "Redo: %s"
+msgstr ""
+
+#: editor/editor_node.cpp
msgid "Can't reload a scene that was never saved."
msgstr ""
@@ -3105,6 +3129,10 @@ msgid "Merge With Existing"
msgstr ""
#: editor/editor_node.cpp
+msgid "Apply MeshInstance Transforms"
+msgstr ""
+
+#: editor/editor_node.cpp
msgid "Open & Run a Script"
msgstr ""
@@ -3345,6 +3373,10 @@ msgid ""
"property (%s)."
msgstr ""
+#: editor/editor_resource_picker.cpp
+msgid "Quick Load"
+msgstr ""
+
#: editor/editor_resource_picker.cpp editor/property_editor.cpp
msgid "Make Unique"
msgstr ""
@@ -5391,6 +5423,16 @@ msgid "Move CanvasItem \"%s\" to (%d, %d)"
msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Locked"
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Grouped"
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
msgid ""
"Children of containers have their anchors and margins values overridden by "
"their parent."
@@ -6289,7 +6331,11 @@ msgid "Remove Selected Item"
msgstr ""
#: editor/plugins/mesh_library_editor_plugin.cpp
-msgid "Import from Scene"
+msgid "Import from Scene (Ignore Transforms)"
+msgstr ""
+
+#: editor/plugins/mesh_library_editor_plugin.cpp
+msgid "Import from Scene (Apply Transforms)"
msgstr ""
#: editor/plugins/mesh_library_editor_plugin.cpp
@@ -6873,6 +6919,15 @@ msgstr ""
msgid "Flip Portal"
msgstr ""
+#: editor/plugins/room_manager_editor_plugin.cpp
+msgid "Occluder Set Transform"
+msgstr ""
+
+#: editor/plugins/room_manager_editor_plugin.cpp
+#, fuzzy
+msgid "Center Node"
+msgstr "Nód Cumaisc2"
+
#: editor/plugins/root_motion_editor_plugin.cpp
msgid "AnimationTree has no path set to an AnimationPlayer"
msgstr ""
@@ -7367,11 +7422,11 @@ msgid "Skeleton2D"
msgstr ""
#: editor/plugins/skeleton_2d_editor_plugin.cpp
-msgid "Make Rest Pose (From Bones)"
+msgid "Reset to Rest Pose"
msgstr ""
#: editor/plugins/skeleton_2d_editor_plugin.cpp
-msgid "Set Bones to Rest Pose"
+msgid "Overwrite Rest Pose"
msgstr ""
#: editor/plugins/skeleton_editor_plugin.cpp
@@ -7399,6 +7454,60 @@ msgid "Perspective"
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Top Orthogonal"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Top Perspective"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Bottom Orthogonal"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Bottom Perspective"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Left Orthogonal"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Right Perspective"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Right Orthogonal"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Front Orthogonal"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Front Perspective"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Rear Orthogonal"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Rear Perspective"
+msgstr ""
+
+#. TRANSLATORS: This will be appended to the view name when Auto Orthogonal is enabled.
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid " [auto]"
+msgstr ""
+
+#. TRANSLATORS: This will be appended to the view name when Portal Occulusion is enabled.
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid " [portals active]"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
msgid "Transform Aborted."
msgstr ""
@@ -7507,42 +7616,22 @@ msgid "Bottom View."
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
-msgid "Bottom"
-msgstr ""
-
-#: editor/plugins/spatial_editor_plugin.cpp
msgid "Left View."
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
-msgid "Left"
-msgstr ""
-
-#: editor/plugins/spatial_editor_plugin.cpp
msgid "Right View."
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
-msgid "Right"
-msgstr ""
-
-#: editor/plugins/spatial_editor_plugin.cpp
msgid "Front View."
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
-msgid "Front"
-msgstr ""
-
-#: editor/plugins/spatial_editor_plugin.cpp
msgid "Rear View."
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
-msgid "Rear"
-msgstr ""
-
-#: editor/plugins/spatial_editor_plugin.cpp
msgid "Align Transform with View"
msgstr ""
@@ -7804,6 +7893,10 @@ msgid "View Portal Culling"
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
+msgid "View Occlusion Culling"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
#: modules/gridmap/grid_map_editor_plugin.cpp
msgid "Settings..."
msgstr ""
@@ -7869,7 +7962,7 @@ msgid "Post"
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
-msgid "Nameless gizmo"
+msgid "Unnamed Gizmo"
msgstr ""
#: editor/plugins/sprite_editor_plugin.cpp
@@ -11782,6 +11875,14 @@ msgstr ""
msgid "Set Portal Point Position"
msgstr ""
+#: editor/spatial_editor_gizmos.cpp
+msgid "Set Occluder Sphere Radius"
+msgstr ""
+
+#: editor/spatial_editor_gizmos.cpp
+msgid "Set Occluder Sphere Position"
+msgstr ""
+
#: modules/csg/csg_gizmos.cpp
msgid "Change Cylinder Radius"
msgstr ""
@@ -12063,6 +12164,10 @@ msgstr ""
msgid "Class name can't be a reserved keyword"
msgstr ""
+#: modules/mono/csharp_script.cpp
+msgid "Build Solution"
+msgstr ""
+
#: modules/mono/mono_gd/gd_mono_utils.cpp
msgid "End of inner exception stack trace"
msgstr ""
@@ -12533,159 +12638,148 @@ msgstr ""
msgid "Get %s"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Package name is missing."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Package segments must be of non-zero length."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "The character '%s' is not allowed in Android application package names."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "A digit cannot be the first character in a package segment."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "The character '%s' cannot be the first character in a package segment."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "The package must have at least one '.' separator."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Select device from the list"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Running on %s"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Exporting APK..."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Uninstalling..."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Installing to device, please wait..."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Could not install to device: %s"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Running on device..."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Could not execute on device."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Unable to find the 'apksigner' tool."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Android build template not installed in the project. Install it from the "
"Project menu."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Either Debug Keystore, Debug User AND Debug Password settings must be "
"configured OR none of them."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Debug keystore not configured in the Editor Settings nor in the preset."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Either Release Keystore, Release User AND Release Password settings must be "
"configured OR none of them."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Release keystore incorrectly configured in the export preset."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "A valid Android SDK path is required in Editor Settings."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Invalid Android SDK path in Editor Settings."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Missing 'platform-tools' directory!"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Unable to find Android SDK platform-tools' adb command."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Please check in the Android SDK directory specified in Editor Settings."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Missing 'build-tools' directory!"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Unable to find Android SDK build-tools' apksigner command."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Invalid public key for APK expansion."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Invalid package name:"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Invalid \"GodotPaymentV3\" module included in the \"android/modules\" "
"project setting (changed in Godot 3.2.2).\n"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "\"Use Custom Build\" must be enabled to use the plugins."
msgstr ""
-#: platform/android/export/export.cpp
-msgid ""
-"\"Degrees Of Freedom\" is only valid when \"Xr Mode\" is \"Oculus Mobile VR"
-"\"."
-msgstr ""
-
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"\"Hand Tracking\" is only valid when \"Xr Mode\" is \"Oculus Mobile VR\"."
msgstr ""
-#: platform/android/export/export.cpp
-msgid ""
-"\"Focus Awareness\" is only valid when \"Xr Mode\" is \"Oculus Mobile VR\"."
-msgstr ""
-
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "\"Export AAB\" is only valid when \"Use Custom Build\" is enabled."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"'apksigner' could not be found.\n"
"Please check the command is available in the Android SDK build-tools "
@@ -12693,57 +12787,57 @@ msgid ""
"The resulting %s is unsigned."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Signing debug %s..."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Signing release %s..."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Could not find keystore, unable to export."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "'apksigner' returned with error #%d"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Verifying %s..."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "'apksigner' verification of %s failed."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Exporting for Android"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Invalid filename! Android App Bundle requires the *.aab extension."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "APK Expansion not compatible with Android App Bundle."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Invalid filename! Android APK requires the *.apk extension."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Unsupported export format!\n"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Trying to build from a custom built template, but no version info for it "
"exists. Please reinstall from the 'Project' menu."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Android build version mismatch:\n"
" Template installed: %s\n"
@@ -12751,55 +12845,55 @@ msgid ""
"Please reinstall Android build template from 'Project' menu."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Unable to overwrite res://android/build/res/*.xml files with project name"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Could not export project files to gradle project\n"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Could not write expansion package file!"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Building Android Project (gradle)"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Building of Android project failed, check output for the error.\n"
"Alternatively visit docs.godotengine.org for Android build documentation."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Moving output"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Unable to copy and rename export file, check gradle project directory for "
"outputs."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
#, fuzzy
msgid "Package not found: %s"
msgstr "Ãbhar:"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Creating APK..."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Could not find template APK to export:\n"
"%s"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Missing libraries in the export template for the selected architectures: "
"%s.\n"
@@ -12807,19 +12901,19 @@ msgid ""
"architectures in the export preset."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Adding files..."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Could not export project files"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Aligning APK..."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Could not unzip temporary unaligned APK."
msgstr ""
@@ -13269,6 +13363,14 @@ msgid ""
"It only provides navigation data."
msgstr ""
+#: scene/3d/occluder.cpp
+msgid "No shape is set."
+msgstr ""
+
+#: scene/3d/occluder.cpp
+msgid "Only uniform scales are supported."
+msgstr ""
+
#: scene/3d/particles.cpp
msgid ""
"GPU-based particles are not supported by the GLES2 video driver.\n"
@@ -13558,6 +13660,14 @@ msgstr ""
msgid "Enable grid minimap."
msgstr ""
+#: scene/gui/nine_patch_rect.cpp
+msgid ""
+"The Tile and Tile Fit options for Axis Stretch properties are only effective "
+"when using the GLES3 rendering backend.\n"
+"The GLES2 backend is currently in use, so these modes will act like Stretch "
+"instead."
+msgstr ""
+
#: scene/gui/popup.cpp
msgid ""
"Popups will hide by default unless you call popup() or any of the popup*() "
@@ -13598,6 +13708,10 @@ msgstr ""
msgid "Viewport size must be greater than 0 to render anything."
msgstr ""
+#: scene/resources/occluder_shape.cpp
+msgid "OccluderShapeSphere Set Spheres"
+msgstr ""
+
#: scene/resources/visual_shader_nodes.cpp
msgid ""
"The sampler port is connected but not used. Consider changing the source to "
diff --git a/editor/translations/gl.po b/editor/translations/gl.po
index 054b62690d..285cdf4e3b 100644
--- a/editor/translations/gl.po
+++ b/editor/translations/gl.po
@@ -10,7 +10,7 @@
msgid ""
msgstr ""
"Project-Id-Version: Godot Engine editor\n"
-"PO-Revision-Date: 2021-08-12 14:48+0000\n"
+"PO-Revision-Date: 2021-08-12 21:32+0000\n"
"Last-Translator: davidrogel <david.rogel.pernas@icloud.com>\n"
"Language-Team: Galician <https://hosted.weblate.org/projects/godot-engine/"
"godot/gl/>\n"
@@ -368,13 +368,12 @@ msgstr "Engadir Animación"
#. TRANSLATORS: This describes the target of new animation track, will be inserted into another string.
#: editor/animation_track_editor.cpp
msgid "node '%s'"
-msgstr ""
+msgstr "nodo '%s'"
#. TRANSLATORS: This describes the target of new animation track, will be inserted into another string.
#: editor/animation_track_editor.cpp
-#, fuzzy
msgid "animation"
-msgstr "Animación"
+msgstr "animación"
#: editor/animation_track_editor.cpp
msgid "AnimationPlayer can't animate itself, only other players."
@@ -382,9 +381,8 @@ msgstr "Un AnimationPlayer non pode animarse a si mesmo, só a outros players."
#. TRANSLATORS: This describes the target of new animation track, will be inserted into another string.
#: editor/animation_track_editor.cpp
-#, fuzzy
msgid "property '%s'"
-msgstr "Non existe a propiedade '%s'."
+msgstr "propiedade '%s'"
#: editor/animation_track_editor.cpp
msgid "Anim Create & Insert"
@@ -1024,7 +1022,7 @@ msgstr ""
msgid "Dependencies"
msgstr "Dependencias"
-#: editor/dependency_editor.cpp
+#: editor/dependency_editor.cpp editor/editor_resource_picker.cpp
msgid "Resource"
msgstr "Recurso"
@@ -1693,13 +1691,13 @@ msgstr ""
"Active 'Importar Pvrtc' na 'Configuración do Proxecto' ou desactive "
"'Controlador de Respaldo Activado'."
-#: editor/editor_export.cpp platform/android/export/export.cpp
+#: editor/editor_export.cpp platform/android/export/export_plugin.cpp
#: platform/iphone/export/export.cpp platform/javascript/export/export.cpp
#: platform/osx/export/export.cpp platform/uwp/export/export.cpp
msgid "Custom debug template not found."
msgstr "Non se encontrou un modelo de depuración personalizado."
-#: editor/editor_export.cpp platform/android/export/export.cpp
+#: editor/editor_export.cpp platform/android/export/export_plugin.cpp
#: platform/iphone/export/export.cpp platform/javascript/export/export.cpp
#: platform/osx/export/export.cpp platform/uwp/export/export.cpp
msgid "Custom release template not found."
@@ -2080,7 +2078,7 @@ msgstr ""
msgid "(Re)Importing Assets"
msgstr "(Re)Importando Assets"
-#: editor/editor_help.cpp editor/plugins/spatial_editor_plugin.cpp
+#: editor/editor_help.cpp
msgid "Top"
msgstr "Superior"
@@ -2592,6 +2590,32 @@ msgid "Current scene not saved. Open anyway?"
msgstr "Escena actual non gardada ¿Abrir de todos os modos?"
#: editor/editor_node.cpp
+msgid "Can't undo while mouse buttons are pressed."
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "Nothing to undo."
+msgstr ""
+
+#: editor/editor_node.cpp
+#, fuzzy
+msgid "Undo: %s"
+msgstr "Desfacer"
+
+#: editor/editor_node.cpp
+msgid "Can't redo while mouse buttons are pressed."
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "Nothing to redo."
+msgstr ""
+
+#: editor/editor_node.cpp
+#, fuzzy
+msgid "Redo: %s"
+msgstr "Refacer"
+
+#: editor/editor_node.cpp
msgid "Can't reload a scene that was never saved."
msgstr "Non se pode volver a cargar unha escena que nunca foi gardada."
@@ -3275,6 +3299,11 @@ msgid "Merge With Existing"
msgstr "Combinar Con Existentes"
#: editor/editor_node.cpp
+#, fuzzy
+msgid "Apply MeshInstance Transforms"
+msgstr "Cambiar Transformación da Animación"
+
+#: editor/editor_node.cpp
msgid "Open & Run a Script"
msgstr "Abrir e Executar un Script"
@@ -3528,6 +3557,10 @@ msgstr ""
"O recurso seleccionado (%s) non coincide con ningún tipo esperado para esta "
"propiedade (%s)."
+#: editor/editor_resource_picker.cpp
+msgid "Quick Load"
+msgstr ""
+
#: editor/editor_resource_picker.cpp editor/property_editor.cpp
msgid "Make Unique"
msgstr "Facer Único"
@@ -5616,6 +5649,17 @@ msgid "Move CanvasItem \"%s\" to (%d, %d)"
msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Locked"
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Grouped"
+msgstr "Grupos"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
msgid ""
"Children of containers have their anchors and margins values overridden by "
"their parent."
@@ -6555,7 +6599,11 @@ msgid "Remove Selected Item"
msgstr ""
#: editor/plugins/mesh_library_editor_plugin.cpp
-msgid "Import from Scene"
+msgid "Import from Scene (Ignore Transforms)"
+msgstr ""
+
+#: editor/plugins/mesh_library_editor_plugin.cpp
+msgid "Import from Scene (Apply Transforms)"
msgstr ""
#: editor/plugins/mesh_library_editor_plugin.cpp
@@ -7145,6 +7193,15 @@ msgstr "Número de Puntos Xerados:"
msgid "Flip Portal"
msgstr ""
+#: editor/plugins/room_manager_editor_plugin.cpp
+msgid "Occluder Set Transform"
+msgstr ""
+
+#: editor/plugins/room_manager_editor_plugin.cpp
+#, fuzzy
+msgid "Center Node"
+msgstr "Crear Nodo"
+
#: editor/plugins/root_motion_editor_plugin.cpp
msgid "AnimationTree has no path set to an AnimationPlayer"
msgstr ""
@@ -7641,12 +7698,14 @@ msgid "Skeleton2D"
msgstr "Skeleton2D"
#: editor/plugins/skeleton_2d_editor_plugin.cpp
-msgid "Make Rest Pose (From Bones)"
-msgstr "Crear Pose de Repouso (a partir dos Ósos)"
+#, fuzzy
+msgid "Reset to Rest Pose"
+msgstr "Asignar Pose de Repouso aos Ósos"
#: editor/plugins/skeleton_2d_editor_plugin.cpp
-msgid "Set Bones to Rest Pose"
-msgstr "Asignar Pose de Repouso aos Ósos"
+#, fuzzy
+msgid "Overwrite Rest Pose"
+msgstr "Sobreescribir"
#: editor/plugins/skeleton_editor_plugin.cpp
msgid "Create physical bones"
@@ -7673,6 +7732,71 @@ msgid "Perspective"
msgstr "Perspetiva"
#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Top Orthogonal"
+msgstr "Ortogonal"
+
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Top Perspective"
+msgstr "Perspetiva"
+
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Bottom Orthogonal"
+msgstr "Ortogonal"
+
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Bottom Perspective"
+msgstr "Perspetiva"
+
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Left Orthogonal"
+msgstr "Ortogonal"
+
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Right Perspective"
+msgstr "Perspetiva"
+
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Right Orthogonal"
+msgstr "Ortogonal"
+
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Front Orthogonal"
+msgstr "Ortogonal"
+
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Front Perspective"
+msgstr "Perspetiva"
+
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Rear Orthogonal"
+msgstr "Ortogonal"
+
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Rear Perspective"
+msgstr "Perspetiva"
+
+#. TRANSLATORS: This will be appended to the view name when Auto Orthogonal is enabled.
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid " [auto]"
+msgstr ""
+
+#. TRANSLATORS: This will be appended to the view name when Portal Occulusion is enabled.
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid " [portals active]"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
msgid "Transform Aborted."
msgstr ""
@@ -7791,42 +7915,22 @@ msgid "Bottom View."
msgstr "Vista Inferior."
#: editor/plugins/spatial_editor_plugin.cpp
-msgid "Bottom"
-msgstr "Inferior"
-
-#: editor/plugins/spatial_editor_plugin.cpp
msgid "Left View."
msgstr "Vista Esquerda."
#: editor/plugins/spatial_editor_plugin.cpp
-msgid "Left"
-msgstr "Esquerda"
-
-#: editor/plugins/spatial_editor_plugin.cpp
msgid "Right View."
msgstr "Vista Dereita."
#: editor/plugins/spatial_editor_plugin.cpp
-msgid "Right"
-msgstr "Dereita"
-
-#: editor/plugins/spatial_editor_plugin.cpp
msgid "Front View."
msgstr "Vista Frontal."
#: editor/plugins/spatial_editor_plugin.cpp
-msgid "Front"
-msgstr "Frontal"
-
-#: editor/plugins/spatial_editor_plugin.cpp
msgid "Rear View."
msgstr "Vista Traseria."
#: editor/plugins/spatial_editor_plugin.cpp
-msgid "Rear"
-msgstr "Traseira"
-
-#: editor/plugins/spatial_editor_plugin.cpp
msgid "Align Transform with View"
msgstr "Aliñar Transformación con Perspectiva"
@@ -8100,6 +8204,11 @@ msgid "View Portal Culling"
msgstr "Axustes de Visión"
#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "View Occlusion Culling"
+msgstr "Axustes de Visión"
+
+#: editor/plugins/spatial_editor_plugin.cpp
#: modules/gridmap/grid_map_editor_plugin.cpp
msgid "Settings..."
msgstr "Axustes..."
@@ -8165,8 +8274,9 @@ msgid "Post"
msgstr "Posterior (Post)"
#: editor/plugins/spatial_editor_plugin.cpp
-msgid "Nameless gizmo"
-msgstr "Gizmo sen nome"
+#, fuzzy
+msgid "Unnamed Gizmo"
+msgstr "Proxecto Sen Nome"
#: editor/plugins/sprite_editor_plugin.cpp
msgid "Create Mesh2D"
@@ -12240,6 +12350,14 @@ msgstr ""
msgid "Set Portal Point Position"
msgstr ""
+#: editor/spatial_editor_gizmos.cpp
+msgid "Set Occluder Sphere Radius"
+msgstr ""
+
+#: editor/spatial_editor_gizmos.cpp
+msgid "Set Occluder Sphere Position"
+msgstr ""
+
#: modules/csg/csg_gizmos.cpp
msgid "Change Cylinder Radius"
msgstr ""
@@ -12523,6 +12641,11 @@ msgstr ""
msgid "Class name can't be a reserved keyword"
msgstr ""
+#: modules/mono/csharp_script.cpp
+#, fuzzy
+msgid "Build Solution"
+msgstr "Resolución á Metade"
+
#: modules/mono/mono_gd/gd_mono_utils.cpp
msgid "End of inner exception stack trace"
msgstr ""
@@ -12992,170 +13115,159 @@ msgstr "Buscar en VisualScript"
msgid "Get %s"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Package name is missing."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Package segments must be of non-zero length."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "The character '%s' is not allowed in Android application package names."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "A digit cannot be the first character in a package segment."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "The character '%s' cannot be the first character in a package segment."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "The package must have at least one '.' separator."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Select device from the list"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Running on %s"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
#, fuzzy
msgid "Exporting APK..."
msgstr "Exportar..."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
#, fuzzy
msgid "Uninstalling..."
msgstr "Desinstalar"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
#, fuzzy
msgid "Installing to device, please wait..."
msgstr "Cargando, por favor agarde..."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
#, fuzzy
msgid "Could not install to device: %s"
msgstr "Non se puido iniciar subproceso!"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Running on device..."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
#, fuzzy
msgid "Could not execute on device."
msgstr "Non se puido crear cartafol."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Unable to find the 'apksigner' tool."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Android build template not installed in the project. Install it from the "
"Project menu."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Either Debug Keystore, Debug User AND Debug Password settings must be "
"configured OR none of them."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Debug keystore not configured in the Editor Settings nor in the preset."
msgstr ""
"Non está configurado o Keystore de depuración nin na configuración do "
"editor, nin nos axustes de exportación."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Either Release Keystore, Release User AND Release Password settings must be "
"configured OR none of them."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Release keystore incorrectly configured in the export preset."
msgstr ""
"O Keystore Release non está configurado correctamente nos axustes de "
"exportación."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "A valid Android SDK path is required in Editor Settings."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Invalid Android SDK path in Editor Settings."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Missing 'platform-tools' directory!"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Unable to find Android SDK platform-tools' adb command."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Please check in the Android SDK directory specified in Editor Settings."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Missing 'build-tools' directory!"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Unable to find Android SDK build-tools' apksigner command."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Invalid public key for APK expansion."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Invalid package name:"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Invalid \"GodotPaymentV3\" module included in the \"android/modules\" "
"project setting (changed in Godot 3.2.2).\n"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "\"Use Custom Build\" must be enabled to use the plugins."
msgstr ""
"\"Use Custom Build\" debe estar activado para usar estas características "
"adicionais (plugins)."
-#: platform/android/export/export.cpp
-msgid ""
-"\"Degrees Of Freedom\" is only valid when \"Xr Mode\" is \"Oculus Mobile VR"
-"\"."
-msgstr ""
-
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"\"Hand Tracking\" is only valid when \"Xr Mode\" is \"Oculus Mobile VR\"."
msgstr ""
-#: platform/android/export/export.cpp
-msgid ""
-"\"Focus Awareness\" is only valid when \"Xr Mode\" is \"Oculus Mobile VR\"."
-msgstr ""
-
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "\"Export AAB\" is only valid when \"Use Custom Build\" is enabled."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"'apksigner' could not be found.\n"
"Please check the command is available in the Android SDK build-tools "
@@ -13163,61 +13275,61 @@ msgid ""
"The resulting %s is unsigned."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Signing debug %s..."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
#, fuzzy
msgid "Signing release %s..."
msgstr ""
"Examinando arquivos,\n"
"Por favor, espere..."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Could not find keystore, unable to export."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "'apksigner' returned with error #%d"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
#, fuzzy
msgid "Verifying %s..."
msgstr "Engadindo %s..."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "'apksigner' verification of %s failed."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Exporting for Android"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Invalid filename! Android App Bundle requires the *.aab extension."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "APK Expansion not compatible with Android App Bundle."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Invalid filename! Android APK requires the *.apk extension."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Unsupported export format!\n"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Trying to build from a custom built template, but no version info for it "
"exists. Please reinstall from the 'Project' menu."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Android build version mismatch:\n"
" Template installed: %s\n"
@@ -13225,25 +13337,25 @@ msgid ""
"Please reinstall Android build template from 'Project' menu."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Unable to overwrite res://android/build/res/*.xml files with project name"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
#, fuzzy
msgid "Could not export project files to gradle project\n"
msgstr "Non se pudo editar o arquivo 'project.godot' na ruta do proxecto."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Could not write expansion package file!"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Building Android Project (gradle)"
msgstr "Construir Proxecto Android (gradle)"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Building of Android project failed, check output for the error.\n"
"Alternatively visit docs.godotengine.org for Android build documentation."
@@ -13253,33 +13365,33 @@ msgstr ""
"Ou visita docs.godotengine.org para ver a documentación sobre compilación "
"para Android."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Moving output"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Unable to copy and rename export file, check gradle project directory for "
"outputs."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
#, fuzzy
msgid "Package not found: %s"
msgstr "Contenido do Paquete:"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
#, fuzzy
msgid "Creating APK..."
msgstr "Conectando..."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Could not find template APK to export:\n"
"%s"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Missing libraries in the export template for the selected architectures: "
"%s.\n"
@@ -13287,21 +13399,21 @@ msgid ""
"architectures in the export preset."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
#, fuzzy
msgid "Adding files..."
msgstr "Engadindo %s..."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
#, fuzzy
msgid "Could not export project files"
msgstr "Non se puido iniciar subproceso!"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Aligning APK..."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Could not unzip temporary unaligned APK."
msgstr ""
@@ -13794,6 +13906,14 @@ msgid ""
"It only provides navigation data."
msgstr ""
+#: scene/3d/occluder.cpp
+msgid "No shape is set."
+msgstr ""
+
+#: scene/3d/occluder.cpp
+msgid "Only uniform scales are supported."
+msgstr ""
+
#: scene/3d/particles.cpp
msgid ""
"GPU-based particles are not supported by the GLES2 video driver.\n"
@@ -14101,6 +14221,14 @@ msgstr ""
msgid "Enable grid minimap."
msgstr ""
+#: scene/gui/nine_patch_rect.cpp
+msgid ""
+"The Tile and Tile Fit options for Axis Stretch properties are only effective "
+"when using the GLES3 rendering backend.\n"
+"The GLES2 backend is currently in use, so these modes will act like Stretch "
+"instead."
+msgstr ""
+
#: scene/gui/popup.cpp
msgid ""
"Popups will hide by default unless you call popup() or any of the popup*() "
@@ -14150,6 +14278,10 @@ msgstr ""
"As dimensións da Mini-Ventá (Viewport) deben de ser maior que 0 para poder "
"renderizar nada."
+#: scene/resources/occluder_shape.cpp
+msgid "OccluderShapeSphere Set Spheres"
+msgstr ""
+
#: scene/resources/visual_shader_nodes.cpp
msgid ""
"The sampler port is connected but not used. Consider changing the source to "
@@ -14200,6 +14332,27 @@ msgstr ""
msgid "Constants cannot be modified."
msgstr ""
+#~ msgid "Make Rest Pose (From Bones)"
+#~ msgstr "Crear Pose de Repouso (a partir dos Ósos)"
+
+#~ msgid "Bottom"
+#~ msgstr "Inferior"
+
+#~ msgid "Left"
+#~ msgstr "Esquerda"
+
+#~ msgid "Right"
+#~ msgstr "Dereita"
+
+#~ msgid "Front"
+#~ msgstr "Frontal"
+
+#~ msgid "Rear"
+#~ msgstr "Traseira"
+
+#~ msgid "Nameless gizmo"
+#~ msgstr "Gizmo sen nome"
+
#~ msgid "Singleton"
#~ msgstr "Singleton"
diff --git a/editor/translations/he.po b/editor/translations/he.po
index d0a09565de..15c4694949 100644
--- a/editor/translations/he.po
+++ b/editor/translations/he.po
@@ -1041,7 +1041,7 @@ msgstr ""
msgid "Dependencies"
msgstr "תלויות"
-#: editor/dependency_editor.cpp
+#: editor/dependency_editor.cpp editor/editor_resource_picker.cpp
msgid "Resource"
msgstr "מש×ב"
@@ -1692,13 +1692,13 @@ msgid ""
"Enabled'."
msgstr ""
-#: editor/editor_export.cpp platform/android/export/export.cpp
+#: editor/editor_export.cpp platform/android/export/export_plugin.cpp
#: platform/iphone/export/export.cpp platform/javascript/export/export.cpp
#: platform/osx/export/export.cpp platform/uwp/export/export.cpp
msgid "Custom debug template not found."
msgstr "תבנית ניפוי שגי×ות מות×מת ×ישית ×œ× × ×ž×¦××”."
-#: editor/editor_export.cpp platform/android/export/export.cpp
+#: editor/editor_export.cpp platform/android/export/export_plugin.cpp
#: platform/iphone/export/export.cpp platform/javascript/export/export.cpp
#: platform/osx/export/export.cpp platform/uwp/export/export.cpp
msgid "Custom release template not found."
@@ -2096,7 +2096,7 @@ msgstr "יש מספר מייב××™× ×œ×¡×•×’×™× ×©×•× ×™× ×”×ž×¦×‘×™×¢×™× ×œ
msgid "(Re)Importing Assets"
msgstr "×™×™×‘×•× ×ž×©××‘×™× (מחדש)"
-#: editor/editor_help.cpp editor/plugins/spatial_editor_plugin.cpp
+#: editor/editor_help.cpp
msgid "Top"
msgstr "עליון"
@@ -2594,6 +2594,32 @@ msgid "Current scene not saved. Open anyway?"
msgstr "הסצנה הנוכחית ×œ× × ×©×ž×¨×”. לפתוח בכל ×–×ת?"
#: editor/editor_node.cpp
+msgid "Can't undo while mouse buttons are pressed."
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "Nothing to undo."
+msgstr ""
+
+#: editor/editor_node.cpp
+#, fuzzy
+msgid "Undo: %s"
+msgstr "ביטול"
+
+#: editor/editor_node.cpp
+msgid "Can't redo while mouse buttons are pressed."
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "Nothing to redo."
+msgstr ""
+
+#: editor/editor_node.cpp
+#, fuzzy
+msgid "Redo: %s"
+msgstr "ביצוע חוזר"
+
+#: editor/editor_node.cpp
msgid "Can't reload a scene that was never saved."
msgstr "×œ× × ×™×ª×Ÿ לרענן סצנה ×©×ž×¢×•×œ× ×œ× × ×©×ž×¨×”."
@@ -3265,6 +3291,11 @@ msgid "Merge With Existing"
msgstr "מיזוג ×¢× × ×•×›×—×™×™×"
#: editor/editor_node.cpp
+#, fuzzy
+msgid "Apply MeshInstance Transforms"
+msgstr "החלפת הנפשת ×פקט שינוי צורה"
+
+#: editor/editor_node.cpp
msgid "Open & Run a Script"
msgstr "פתיחה והרצה של סקריפט"
@@ -3516,6 +3547,10 @@ msgid ""
"property (%s)."
msgstr ""
+#: editor/editor_resource_picker.cpp
+msgid "Quick Load"
+msgstr ""
+
#: editor/editor_resource_picker.cpp editor/property_editor.cpp
msgid "Make Unique"
msgstr ""
@@ -5673,6 +5708,18 @@ msgid "Move CanvasItem \"%s\" to (%d, %d)"
msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Locked"
+msgstr "בחירת מיקוד"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Grouped"
+msgstr "קבוצות"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
msgid ""
"Children of containers have their anchors and margins values overridden by "
"their parent."
@@ -6633,7 +6680,11 @@ msgid "Remove Selected Item"
msgstr ""
#: editor/plugins/mesh_library_editor_plugin.cpp
-msgid "Import from Scene"
+msgid "Import from Scene (Ignore Transforms)"
+msgstr ""
+
+#: editor/plugins/mesh_library_editor_plugin.cpp
+msgid "Import from Scene (Apply Transforms)"
msgstr ""
#: editor/plugins/mesh_library_editor_plugin.cpp
@@ -7237,6 +7288,16 @@ msgstr "מחיקת נקודה"
msgid "Flip Portal"
msgstr ""
+#: editor/plugins/room_manager_editor_plugin.cpp
+#, fuzzy
+msgid "Occluder Set Transform"
+msgstr "התמרה"
+
+#: editor/plugins/room_manager_editor_plugin.cpp
+#, fuzzy
+msgid "Center Node"
+msgstr "מפרק ×חר"
+
#: editor/plugins/root_motion_editor_plugin.cpp
msgid "AnimationTree has no path set to an AnimationPlayer"
msgstr ""
@@ -7764,12 +7825,14 @@ msgid "Skeleton2D"
msgstr "יחידני"
#: editor/plugins/skeleton_2d_editor_plugin.cpp
-msgid "Make Rest Pose (From Bones)"
-msgstr ""
+#, fuzzy
+msgid "Reset to Rest Pose"
+msgstr "טעינת בררת המחדל"
#: editor/plugins/skeleton_2d_editor_plugin.cpp
-msgid "Set Bones to Rest Pose"
-msgstr ""
+#, fuzzy
+msgid "Overwrite Rest Pose"
+msgstr "דריסה"
#: editor/plugins/skeleton_editor_plugin.cpp
msgid "Create physical bones"
@@ -7799,6 +7862,63 @@ msgid "Perspective"
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Top Orthogonal"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Top Perspective"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Bottom Orthogonal"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Bottom Perspective"
+msgstr "מבט תחתי"
+
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Left Orthogonal"
+msgstr "כפתור שמ×לי"
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Right Perspective"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Right Orthogonal"
+msgstr "כפתור ימני"
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Front Orthogonal"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Front Perspective"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Rear Orthogonal"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Rear Perspective"
+msgstr ""
+
+#. TRANSLATORS: This will be appended to the view name when Auto Orthogonal is enabled.
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid " [auto]"
+msgstr ""
+
+#. TRANSLATORS: This will be appended to the view name when Portal Occulusion is enabled.
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid " [portals active]"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
msgid "Transform Aborted."
msgstr ""
@@ -7914,42 +8034,22 @@ msgid "Bottom View."
msgstr "מבט מתחת."
#: editor/plugins/spatial_editor_plugin.cpp
-msgid "Bottom"
-msgstr "מתחת"
-
-#: editor/plugins/spatial_editor_plugin.cpp
msgid "Left View."
msgstr "מבט משמ×ל."
#: editor/plugins/spatial_editor_plugin.cpp
-msgid "Left"
-msgstr "שמ×ל"
-
-#: editor/plugins/spatial_editor_plugin.cpp
msgid "Right View."
msgstr "מבט מימין."
#: editor/plugins/spatial_editor_plugin.cpp
-msgid "Right"
-msgstr "ימין"
-
-#: editor/plugins/spatial_editor_plugin.cpp
msgid "Front View."
msgstr "מבט קדמי."
#: editor/plugins/spatial_editor_plugin.cpp
-msgid "Front"
-msgstr "קדמי"
-
-#: editor/plugins/spatial_editor_plugin.cpp
msgid "Rear View."
msgstr "מבט ×חורי."
#: editor/plugins/spatial_editor_plugin.cpp
-msgid "Rear"
-msgstr "×חורי"
-
-#: editor/plugins/spatial_editor_plugin.cpp
#, fuzzy
msgid "Align Transform with View"
msgstr "יישור ×¢× ×”×ª×¦×•×’×”"
@@ -8221,6 +8321,11 @@ msgid "View Portal Culling"
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "View Occlusion Culling"
+msgstr "עריכת מצולע"
+
+#: editor/plugins/spatial_editor_plugin.cpp
#: modules/gridmap/grid_map_editor_plugin.cpp
#, fuzzy
msgid "Settings..."
@@ -8287,7 +8392,7 @@ msgid "Post"
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
-msgid "Nameless gizmo"
+msgid "Unnamed Gizmo"
msgstr ""
#: editor/plugins/sprite_editor_plugin.cpp
@@ -12444,6 +12549,15 @@ msgstr ""
msgid "Set Portal Point Position"
msgstr ""
+#: editor/spatial_editor_gizmos.cpp
+#, fuzzy
+msgid "Set Occluder Sphere Radius"
+msgstr "שינוי רדיוס לצורת גליל"
+
+#: editor/spatial_editor_gizmos.cpp
+msgid "Set Occluder Sphere Position"
+msgstr ""
+
#: modules/csg/csg_gizmos.cpp
msgid "Change Cylinder Radius"
msgstr "שינוי רדיוס גליל"
@@ -12731,6 +12845,11 @@ msgstr "מדפיס ת×ורות:"
msgid "Class name can't be a reserved keyword"
msgstr "×©× ×ž×—×œ×§×” ×œ× ×™×›×•×œ להיות מילת מפתח שמורה"
+#: modules/mono/csharp_script.cpp
+#, fuzzy
+msgid "Build Solution"
+msgstr "מילוי הבחירה"
+
#: modules/mono/mono_gd/gd_mono_utils.cpp
msgid "End of inner exception stack trace"
msgstr "סוף מחסנית מעקב לחריגה פנימית"
@@ -13208,143 +13327,143 @@ msgstr "חיפוש VisualScript"
msgid "Get %s"
msgstr "קבלת %s"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Package name is missing."
msgstr "×©× ×”×—×‘×™×œ×” חסר."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Package segments must be of non-zero length."
msgstr "מקטעי החבילה ×—×™×™×‘×™× ×œ×”×™×•×ª ב×ורך ש×ינו ×פס."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "The character '%s' is not allowed in Android application package names."
msgstr "התו '%s' ×ינו מותר בשמות חבילת ×™×™×©×•× ×נדרו×יד."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "A digit cannot be the first character in a package segment."
msgstr "ספרה ××™× ×” יכולה להיות התו הר×שון במקטע חבילה."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "The character '%s' cannot be the first character in a package segment."
msgstr "התו '%s' ×ינו יכול להיות התו הר×שון במקטע חבילה."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "The package must have at least one '.' separator."
msgstr "החבילה חייבת לכלול לפחות מפריד '.' ×חד."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Select device from the list"
msgstr "× × ×œ×‘×—×•×¨ התקן מהרשימה"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Running on %s"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
#, fuzzy
msgid "Exporting APK..."
msgstr "ייצו×"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
#, fuzzy
msgid "Uninstalling..."
msgstr "הסרה"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
#, fuzzy
msgid "Installing to device, please wait..."
msgstr ""
"×”×§×‘×¦×™× × ×¡×¨×§×™×,\n"
"× × ×œ×”×ž×ª×™×Ÿâ€¦"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
#, fuzzy
msgid "Could not install to device: %s"
msgstr "×œ× × ×™×ª×Ÿ להפעיל תהליך משנה!"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
#, fuzzy
msgid "Running on device..."
msgstr "מופעל סקריפט מות×× ×ישית…"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
#, fuzzy
msgid "Could not execute on device."
msgstr "×œ× × ×™×ª×Ÿ ליצור תיקייה."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Unable to find the 'apksigner' tool."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Android build template not installed in the project. Install it from the "
"Project menu."
msgstr "תבנית בנייה ל×נדרו×יד ×œ× ×ž×•×ª×§× ×ª בפרוייקט. ההתקנה ×”×™× ×ž×ª×¤×¨×™×˜ המיז×."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Either Debug Keystore, Debug User AND Debug Password settings must be "
"configured OR none of them."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Debug keystore not configured in the Editor Settings nor in the preset."
msgstr "מפתח לניפוי שגי×ות ×œ× × ×§×‘×¢ בהגדרות העורך ×•×œ× ×‘×”×’×“×¨×•×ª הייצו×."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Either Release Keystore, Release User AND Release Password settings must be "
"configured OR none of them."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Release keystore incorrectly configured in the export preset."
msgstr "מפתח גירסת שיחרור נקבע ב×ופן שגוי בהגדרות הייצו×."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
#, fuzzy
msgid "A valid Android SDK path is required in Editor Settings."
msgstr ""
"נתיב ×œ× ×—×•×§×™ לערכת פיתוח ×נדרו×יד עבור בנייה מות×מת ×ישית בהגדרות העורך."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
#, fuzzy
msgid "Invalid Android SDK path in Editor Settings."
msgstr ""
"נתיב ×œ× ×—×•×§×™ לערכת פיתוח ×נדרו×יד עבור בנייה מות×מת ×ישית בהגדרות העורך."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Missing 'platform-tools' directory!"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Unable to find Android SDK platform-tools' adb command."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
#, fuzzy
msgid "Please check in the Android SDK directory specified in Editor Settings."
msgstr ""
"נתיב ×œ× ×—×•×§×™ לערכת פיתוח ×נדרו×יד עבור בנייה מות×מת ×ישית בהגדרות העורך."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Missing 'build-tools' directory!"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Unable to find Android SDK build-tools' apksigner command."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Invalid public key for APK expansion."
msgstr "מפתח ציבורי ×œ× ×—×•×§×™ להרחבת APK."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Invalid package name:"
msgstr "×©× ×—×‘×™×œ×” ×œ× ×—×•×§×™:"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Invalid \"GodotPaymentV3\" module included in the \"android/modules\" "
"project setting (changed in Godot 3.2.2).\n"
@@ -13352,34 +13471,21 @@ msgstr ""
"מודול \"GodotPaymentV3\" ×œ× ×—×•×§×™ × ×ž×¦× ×‘×”×’×“×¨×ª ×”×ž×™×–× ×‘-\"×נדרו×יד/מודולי×"
"\" (שינוי בגודו 3.2.2).\n"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "\"Use Custom Build\" must be enabled to use the plugins."
msgstr "חובה ל×פשר ״שימוש בבניה מות×מת ×ישית״ כדי להשתמש בתוספי×."
-#: platform/android/export/export.cpp
-#, fuzzy
-msgid ""
-"\"Degrees Of Freedom\" is only valid when \"Xr Mode\" is \"Oculus Mobile VR"
-"\"."
-msgstr "\"דרגות של חופש\" תקף רק ×›×שר \"מצב Xr\" ×”×•× \"Oculus Mobile VR\"."
-
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
#, fuzzy
msgid ""
"\"Hand Tracking\" is only valid when \"Xr Mode\" is \"Oculus Mobile VR\"."
msgstr "\"Hand Tracking\" תקף רק ×›×שר \"מצב Xr\" ×”×•× \"Oculus Mobile VR\"."
-#: platform/android/export/export.cpp
-#, fuzzy
-msgid ""
-"\"Focus Awareness\" is only valid when \"Xr Mode\" is \"Oculus Mobile VR\"."
-msgstr "\"Focus Awareness\" תקף רק ×›×שר \"מצב Xr\" ×”×•× \"Oculus Mobile VR\"."
-
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "\"Export AAB\" is only valid when \"Use Custom Build\" is enabled."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"'apksigner' could not be found.\n"
"Please check the command is available in the Android SDK build-tools "
@@ -13387,57 +13493,57 @@ msgid ""
"The resulting %s is unsigned."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Signing debug %s..."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
#, fuzzy
msgid "Signing release %s..."
msgstr ""
"×”×§×‘×¦×™× × ×¡×¨×§×™×,\n"
"× × ×œ×”×ž×ª×™×Ÿâ€¦"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
#, fuzzy
msgid "Could not find keystore, unable to export."
msgstr "×œ× × ×™×ª×Ÿ לפתוח תבנית לייצו×:"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "'apksigner' returned with error #%d"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
#, fuzzy
msgid "Verifying %s..."
msgstr "הגדרות"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "'apksigner' verification of %s failed."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
#, fuzzy
msgid "Exporting for Android"
msgstr "ייצו×"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Invalid filename! Android App Bundle requires the *.aab extension."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "APK Expansion not compatible with Android App Bundle."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Invalid filename! Android APK requires the *.apk extension."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Unsupported export format!\n"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Trying to build from a custom built template, but no version info for it "
"exists. Please reinstall from the 'Project' menu."
@@ -13445,7 +13551,7 @@ msgstr ""
"מנסה לבנות מתבנית מות×מת ×ישית, ×ך ×œ× ×§×™×™× ×ž×™×“×¢ על גירסת הבניה. × × ×œ×”×ª×§×™×Ÿ "
"מחדש מתפריט 'Project'."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
#, fuzzy
msgid ""
"Android build version mismatch:\n"
@@ -13458,25 +13564,25 @@ msgstr ""
" גרסת גודו: %s\n"
"× × ×œ×”×ª×§×™×Ÿ מחדש ×ת תבנית בניית ×נדרו×יד מתפריט 'Project'."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Unable to overwrite res://android/build/res/*.xml files with project name"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Could not export project files to gradle project\n"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
#, fuzzy
msgid "Could not write expansion package file!"
msgstr "×œ× × ×™×ª×Ÿ לכתוב קובץ:"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Building Android Project (gradle)"
msgstr "בניית ×ž×™×–× ×נדרו×יד (gradle)"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Building of Android project failed, check output for the error.\n"
"Alternatively visit docs.godotengine.org for Android build documentation."
@@ -13484,34 +13590,34 @@ msgstr ""
"בניית ×ž×™×–× ×נדרו×יד נכשלה, ניתן לבדוק ×ת הפלט ל×יתור השגי××”.\n"
"לחלופין, ×§×™×™× ×‘- docs.godotengine.org תיעוד לבניית ×נדרו×יד."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Moving output"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Unable to copy and rename export file, check gradle project directory for "
"outputs."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
#, fuzzy
msgid "Package not found: %s"
msgstr "הנפשה ×œ× × ×ž×¦××”: '%s'"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
#, fuzzy
msgid "Creating APK..."
msgstr "יצירת קווי מת×ר..."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
#, fuzzy
msgid ""
"Could not find template APK to export:\n"
"%s"
msgstr "×œ× × ×™×ª×Ÿ לפתוח תבנית לייצו×:"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Missing libraries in the export template for the selected architectures: "
"%s.\n"
@@ -13519,21 +13625,21 @@ msgid ""
"architectures in the export preset."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
#, fuzzy
msgid "Adding files..."
msgstr "×יתור…"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
#, fuzzy
msgid "Could not export project files"
msgstr "×œ× × ×™×ª×Ÿ לכתוב קובץ:"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Aligning APK..."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Could not unzip temporary unaligned APK."
msgstr ""
@@ -14044,6 +14150,14 @@ msgstr ""
"NavigationMeshInstance חייב להיות ילד ×ו נכד למפרק Navigation. ×”×•× ×ž×¡×¤×§ רק "
"נתוני ניווט."
+#: scene/3d/occluder.cpp
+msgid "No shape is set."
+msgstr ""
+
+#: scene/3d/occluder.cpp
+msgid "Only uniform scales are supported."
+msgstr ""
+
#: scene/3d/particles.cpp
msgid ""
"GPU-based particles are not supported by the GLES2 video driver.\n"
@@ -14363,6 +14477,14 @@ msgstr "יש להשתמש בסיומת תקנית."
msgid "Enable grid minimap."
msgstr "הפעלת הצמדה"
+#: scene/gui/nine_patch_rect.cpp
+msgid ""
+"The Tile and Tile Fit options for Axis Stretch properties are only effective "
+"when using the GLES3 rendering backend.\n"
+"The GLES2 backend is currently in use, so these modes will act like Stretch "
+"instead."
+msgstr ""
+
#: scene/gui/popup.cpp
msgid ""
"Popups will hide by default unless you call popup() or any of the popup*() "
@@ -14413,6 +14535,10 @@ msgstr ""
msgid "Viewport size must be greater than 0 to render anything."
msgstr "גודל חלון התצוגה חייב להיות גדול מ-0 על מנת להציג משהו."
+#: scene/resources/occluder_shape.cpp
+msgid "OccluderShapeSphere Set Spheres"
+msgstr ""
+
#: scene/resources/visual_shader_nodes.cpp
msgid ""
"The sampler port is connected but not used. Consider changing the source to "
@@ -14464,6 +14590,34 @@ msgstr "השמה ל-uniform."
msgid "Constants cannot be modified."
msgstr "××™ ×פשר לשנות קבועי×."
+#~ msgid "Bottom"
+#~ msgstr "מתחת"
+
+#~ msgid "Left"
+#~ msgstr "שמ×ל"
+
+#~ msgid "Right"
+#~ msgstr "ימין"
+
+#~ msgid "Front"
+#~ msgstr "קדמי"
+
+#~ msgid "Rear"
+#~ msgstr "×חורי"
+
+#, fuzzy
+#~ msgid ""
+#~ "\"Degrees Of Freedom\" is only valid when \"Xr Mode\" is \"Oculus Mobile "
+#~ "VR\"."
+#~ msgstr "\"דרגות של חופש\" תקף רק ×›×שר \"מצב Xr\" ×”×•× \"Oculus Mobile VR\"."
+
+#, fuzzy
+#~ msgid ""
+#~ "\"Focus Awareness\" is only valid when \"Xr Mode\" is \"Oculus Mobile VR"
+#~ "\"."
+#~ msgstr ""
+#~ "\"Focus Awareness\" תקף רק ×›×שר \"מצב Xr\" ×”×•× \"Oculus Mobile VR\"."
+
#~ msgid "Package Contents:"
#~ msgstr "תוכן החבילה:"
diff --git a/editor/translations/hi.po b/editor/translations/hi.po
index 916e6fd01d..e6a2a76f37 100644
--- a/editor/translations/hi.po
+++ b/editor/translations/hi.po
@@ -1027,7 +1027,7 @@ msgstr ""
msgid "Dependencies"
msgstr "निरà¥à¤­à¤°à¤¤à¤¾à¤à¤"
-#: editor/dependency_editor.cpp
+#: editor/dependency_editor.cpp editor/editor_resource_picker.cpp
msgid "Resource"
msgstr "संसाधन"
@@ -1688,13 +1688,13 @@ msgstr ""
"आवशà¥à¤¯à¤•ता होती है।\n"
"पà¥à¤°à¥‹à¤œà¥‡à¤•à¥à¤Ÿ सेटिंगà¥à¤¸ में \"आयात Pvrtc\" सकà¥à¤·à¤® करें, या \"डà¥à¤°à¤¾à¤‡à¤µà¤° फ़ॉलबैक सकà¥à¤·à¤®\" अकà¥à¤·à¤® करें।"
-#: editor/editor_export.cpp platform/android/export/export.cpp
+#: editor/editor_export.cpp platform/android/export/export_plugin.cpp
#: platform/iphone/export/export.cpp platform/javascript/export/export.cpp
#: platform/osx/export/export.cpp platform/uwp/export/export.cpp
msgid "Custom debug template not found."
msgstr "कसà¥à¤Ÿà¤® डिबग टेमà¥à¤ªà¥à¤²à¥‡à¤Ÿ नहीं मिला."
-#: editor/editor_export.cpp platform/android/export/export.cpp
+#: editor/editor_export.cpp platform/android/export/export_plugin.cpp
#: platform/iphone/export/export.cpp platform/javascript/export/export.cpp
#: platform/osx/export/export.cpp platform/uwp/export/export.cpp
msgid "Custom release template not found."
@@ -2075,7 +2075,7 @@ msgstr ""
msgid "(Re)Importing Assets"
msgstr "असà¥à¤¸à¥‡à¤Ÿ (पà¥à¤¨:) इंपोरà¥à¤Ÿ"
-#: editor/editor_help.cpp editor/plugins/spatial_editor_plugin.cpp
+#: editor/editor_help.cpp
msgid "Top"
msgstr "सरà¥à¤µà¥‹à¤šà¥à¤š"
@@ -2578,6 +2578,32 @@ msgid "Current scene not saved. Open anyway?"
msgstr "वरà¥à¤¤à¤®à¤¾à¤¨ दृशà¥à¤¯ को बचाया नहीं गया । वैसे भी खà¥à¤²à¤¾?"
#: editor/editor_node.cpp
+msgid "Can't undo while mouse buttons are pressed."
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "Nothing to undo."
+msgstr ""
+
+#: editor/editor_node.cpp
+#, fuzzy
+msgid "Undo: %s"
+msgstr "पूरà¥à¤µà¤µà¤¤à¥"
+
+#: editor/editor_node.cpp
+msgid "Can't redo while mouse buttons are pressed."
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "Nothing to redo."
+msgstr ""
+
+#: editor/editor_node.cpp
+#, fuzzy
+msgid "Redo: %s"
+msgstr "दोहराà¤à¤"
+
+#: editor/editor_node.cpp
msgid "Can't reload a scene that was never saved."
msgstr "à¤à¤• दृशà¥à¤¯ है कि कभी नहीं बचाया गया था फिर से लोड नहीं कर सकते ।"
@@ -3253,6 +3279,11 @@ msgid "Merge With Existing"
msgstr "मौजूदा के साथ विलय"
#: editor/editor_node.cpp
+#, fuzzy
+msgid "Apply MeshInstance Transforms"
+msgstr "Anim परिवरà¥à¤¤à¤¨ परिणत"
+
+#: editor/editor_node.cpp
msgid "Open & Run a Script"
msgstr "ओपन à¤à¤‚ड रन à¤à¤• सà¥à¤•à¥à¤°à¤¿à¤ªà¥à¤Ÿ"
@@ -3506,6 +3537,10 @@ msgid ""
msgstr ""
"चयनित संसाधन (%s) इस संपतà¥à¤¤à¤¿ (% à¤à¤¸) के लिठअपेकà¥à¤·à¤¿à¤¤ किसी भी पà¥à¤°à¤•ार से मेल नहीं खाता है।"
+#: editor/editor_resource_picker.cpp
+msgid "Quick Load"
+msgstr ""
+
#: editor/editor_resource_picker.cpp editor/property_editor.cpp
msgid "Make Unique"
msgstr "अदà¥à¤µà¤¿à¤¤à¥€à¤¯ बनाओ"
@@ -5595,6 +5630,17 @@ msgid "Move CanvasItem \"%s\" to (%d, %d)"
msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Locked"
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Grouped"
+msgstr "अनेक गà¥à¤°à¥à¤ª"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
msgid ""
"Children of containers have their anchors and margins values overridden by "
"their parent."
@@ -6511,7 +6557,11 @@ msgid "Remove Selected Item"
msgstr ""
#: editor/plugins/mesh_library_editor_plugin.cpp
-msgid "Import from Scene"
+msgid "Import from Scene (Ignore Transforms)"
+msgstr ""
+
+#: editor/plugins/mesh_library_editor_plugin.cpp
+msgid "Import from Scene (Apply Transforms)"
msgstr ""
#: editor/plugins/mesh_library_editor_plugin.cpp
@@ -7105,6 +7155,16 @@ msgstr "अंक बनाà¤à¤‚।"
msgid "Flip Portal"
msgstr ""
+#: editor/plugins/room_manager_editor_plugin.cpp
+#, fuzzy
+msgid "Occluder Set Transform"
+msgstr "à¤à¤¨à¥€à¤®à¥‡à¤¶à¤¨ परिवरà¥à¤¤à¤¨ परिणत"
+
+#: editor/plugins/room_manager_editor_plugin.cpp
+#, fuzzy
+msgid "Center Node"
+msgstr "को हटा दें"
+
#: editor/plugins/root_motion_editor_plugin.cpp
msgid "AnimationTree has no path set to an AnimationPlayer"
msgstr ""
@@ -7610,12 +7670,14 @@ msgid "Skeleton2D"
msgstr ""
#: editor/plugins/skeleton_2d_editor_plugin.cpp
-msgid "Make Rest Pose (From Bones)"
-msgstr ""
+#, fuzzy
+msgid "Reset to Rest Pose"
+msgstr "पà¥à¤°à¤¾à¤¯à¤¿à¤• लोड कीजिये"
#: editor/plugins/skeleton_2d_editor_plugin.cpp
-msgid "Set Bones to Rest Pose"
-msgstr ""
+#, fuzzy
+msgid "Overwrite Rest Pose"
+msgstr "मौजूदा के ऊपर लिखे"
#: editor/plugins/skeleton_editor_plugin.cpp
msgid "Create physical bones"
@@ -7643,6 +7705,60 @@ msgid "Perspective"
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Top Orthogonal"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Top Perspective"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Bottom Orthogonal"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Bottom Perspective"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Left Orthogonal"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Right Perspective"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Right Orthogonal"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Front Orthogonal"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Front Perspective"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Rear Orthogonal"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Rear Perspective"
+msgstr ""
+
+#. TRANSLATORS: This will be appended to the view name when Auto Orthogonal is enabled.
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid " [auto]"
+msgstr ""
+
+#. TRANSLATORS: This will be appended to the view name when Portal Occulusion is enabled.
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid " [portals active]"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
msgid "Transform Aborted."
msgstr ""
@@ -7753,42 +7869,22 @@ msgid "Bottom View."
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
-msgid "Bottom"
-msgstr ""
-
-#: editor/plugins/spatial_editor_plugin.cpp
msgid "Left View."
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
-msgid "Left"
-msgstr ""
-
-#: editor/plugins/spatial_editor_plugin.cpp
msgid "Right View."
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
-msgid "Right"
-msgstr ""
-
-#: editor/plugins/spatial_editor_plugin.cpp
msgid "Front View."
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
-msgid "Front"
-msgstr ""
-
-#: editor/plugins/spatial_editor_plugin.cpp
msgid "Rear View."
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
-msgid "Rear"
-msgstr ""
-
-#: editor/plugins/spatial_editor_plugin.cpp
msgid "Align Transform with View"
msgstr ""
@@ -8053,6 +8149,11 @@ msgid "View Portal Culling"
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "View Occlusion Culling"
+msgstr "सदसà¥à¤¯à¤¤à¤¾ बनाà¤à¤‚"
+
+#: editor/plugins/spatial_editor_plugin.cpp
#: modules/gridmap/grid_map_editor_plugin.cpp
msgid "Settings..."
msgstr ""
@@ -8118,7 +8219,7 @@ msgid "Post"
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
-msgid "Nameless gizmo"
+msgid "Unnamed Gizmo"
msgstr ""
#: editor/plugins/sprite_editor_plugin.cpp
@@ -12178,6 +12279,14 @@ msgstr ""
msgid "Set Portal Point Position"
msgstr ""
+#: editor/spatial_editor_gizmos.cpp
+msgid "Set Occluder Sphere Radius"
+msgstr ""
+
+#: editor/spatial_editor_gizmos.cpp
+msgid "Set Occluder Sphere Position"
+msgstr ""
+
#: modules/csg/csg_gizmos.cpp
msgid "Change Cylinder Radius"
msgstr ""
@@ -12467,6 +12576,11 @@ msgstr "लाईटमॅप बना रहा है"
msgid "Class name can't be a reserved keyword"
msgstr ""
+#: modules/mono/csharp_script.cpp
+#, fuzzy
+msgid "Build Solution"
+msgstr "सभी खंड"
+
#: modules/mono/mono_gd/gd_mono_utils.cpp
msgid "End of inner exception stack trace"
msgstr ""
@@ -12950,166 +13064,155 @@ msgstr ""
msgid "Get %s"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Package name is missing."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Package segments must be of non-zero length."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "The character '%s' is not allowed in Android application package names."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "A digit cannot be the first character in a package segment."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "The character '%s' cannot be the first character in a package segment."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "The package must have at least one '.' separator."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Select device from the list"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Running on %s"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
#, fuzzy
msgid "Exporting APK..."
msgstr "निरà¥à¤¯à¤¾à¤¤..."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
#, fuzzy
msgid "Uninstalling..."
msgstr "अनइंसà¥à¤Ÿà¤¾à¤² करें"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
#, fuzzy
msgid "Installing to device, please wait..."
msgstr "दरà¥à¤ªà¤£ को पà¥à¤¨à¤ƒ पà¥à¤°à¤¾à¤ªà¥à¤¤ करना, कृपया पà¥à¤°à¤¤à¥€à¤•à¥à¤·à¤¾ करें ..."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
#, fuzzy
msgid "Could not install to device: %s"
msgstr "उपपà¥à¤°à¤•à¥à¤°à¤¿à¤¯à¤¾ शà¥à¤°à¥‚ नहीं कर सका!"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
#, fuzzy
msgid "Running on device..."
msgstr "कसà¥à¤Ÿà¤® सà¥à¤•à¥à¤°à¤¿à¤ªà¥à¤Ÿ चला रहा है..."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
#, fuzzy
msgid "Could not execute on device."
msgstr "फ़ोलà¥à¤¡à¤° नही बना सकते."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Unable to find the 'apksigner' tool."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Android build template not installed in the project. Install it from the "
"Project menu."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Either Debug Keystore, Debug User AND Debug Password settings must be "
"configured OR none of them."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Debug keystore not configured in the Editor Settings nor in the preset."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Either Release Keystore, Release User AND Release Password settings must be "
"configured OR none of them."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Release keystore incorrectly configured in the export preset."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "A valid Android SDK path is required in Editor Settings."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Invalid Android SDK path in Editor Settings."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Missing 'platform-tools' directory!"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Unable to find Android SDK platform-tools' adb command."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Please check in the Android SDK directory specified in Editor Settings."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Missing 'build-tools' directory!"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Unable to find Android SDK build-tools' apksigner command."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Invalid public key for APK expansion."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
#, fuzzy
msgid "Invalid package name:"
msgstr "गलत फॉणà¥à¤Ÿ का आकार |"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Invalid \"GodotPaymentV3\" module included in the \"android/modules\" "
"project setting (changed in Godot 3.2.2).\n"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "\"Use Custom Build\" must be enabled to use the plugins."
msgstr ""
-#: platform/android/export/export.cpp
-msgid ""
-"\"Degrees Of Freedom\" is only valid when \"Xr Mode\" is \"Oculus Mobile VR"
-"\"."
-msgstr ""
-
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"\"Hand Tracking\" is only valid when \"Xr Mode\" is \"Oculus Mobile VR\"."
msgstr ""
-#: platform/android/export/export.cpp
-msgid ""
-"\"Focus Awareness\" is only valid when \"Xr Mode\" is \"Oculus Mobile VR\"."
-msgstr ""
-
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "\"Export AAB\" is only valid when \"Use Custom Build\" is enabled."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"'apksigner' could not be found.\n"
"Please check the command is available in the Android SDK build-tools "
@@ -13117,60 +13220,60 @@ msgid ""
"The resulting %s is unsigned."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Signing debug %s..."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
#, fuzzy
msgid "Signing release %s..."
msgstr ""
"फ़ाइले सà¥à¤•ैन कर रहा है,\n"
"कृपया रà¥à¤•िये..."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Could not find keystore, unable to export."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "'apksigner' returned with error #%d"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Verifying %s..."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "'apksigner' verification of %s failed."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Exporting for Android"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Invalid filename! Android App Bundle requires the *.aab extension."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "APK Expansion not compatible with Android App Bundle."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Invalid filename! Android APK requires the *.apk extension."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Unsupported export format!\n"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Trying to build from a custom built template, but no version info for it "
"exists. Please reinstall from the 'Project' menu."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Android build version mismatch:\n"
" Template installed: %s\n"
@@ -13178,56 +13281,56 @@ msgid ""
"Please reinstall Android build template from 'Project' menu."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Unable to overwrite res://android/build/res/*.xml files with project name"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Could not export project files to gradle project\n"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Could not write expansion package file!"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Building Android Project (gradle)"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Building of Android project failed, check output for the error.\n"
"Alternatively visit docs.godotengine.org for Android build documentation."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Moving output"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Unable to copy and rename export file, check gradle project directory for "
"outputs."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
#, fuzzy
msgid "Package not found: %s"
msgstr "पैकेज में है:"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
#, fuzzy
msgid "Creating APK..."
msgstr "जोड़ने..."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Could not find template APK to export:\n"
"%s"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Missing libraries in the export template for the selected architectures: "
"%s.\n"
@@ -13235,21 +13338,21 @@ msgid ""
"architectures in the export preset."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
#, fuzzy
msgid "Adding files..."
msgstr "पसंदीदा:"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
#, fuzzy
msgid "Could not export project files"
msgstr "उपपà¥à¤°à¤•à¥à¤°à¤¿à¤¯à¤¾ शà¥à¤°à¥‚ नहीं कर सका!"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Aligning APK..."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Could not unzip temporary unaligned APK."
msgstr ""
@@ -13712,6 +13815,14 @@ msgid ""
"It only provides navigation data."
msgstr ""
+#: scene/3d/occluder.cpp
+msgid "No shape is set."
+msgstr ""
+
+#: scene/3d/occluder.cpp
+msgid "Only uniform scales are supported."
+msgstr ""
+
#: scene/3d/particles.cpp
msgid ""
"GPU-based particles are not supported by the GLES2 video driver.\n"
@@ -14003,6 +14114,14 @@ msgstr "मानà¥à¤¯ à¤à¤•à¥à¤¸à¤Ÿà¥‡à¤¨à¤¶à¤¨ इसà¥à¤¤à¥‡à¤®à¤¾à¤² क
msgid "Enable grid minimap."
msgstr ""
+#: scene/gui/nine_patch_rect.cpp
+msgid ""
+"The Tile and Tile Fit options for Axis Stretch properties are only effective "
+"when using the GLES3 rendering backend.\n"
+"The GLES2 backend is currently in use, so these modes will act like Stretch "
+"instead."
+msgstr ""
+
#: scene/gui/popup.cpp
msgid ""
"Popups will hide by default unless you call popup() or any of the popup*() "
@@ -14043,6 +14162,10 @@ msgstr ""
msgid "Viewport size must be greater than 0 to render anything."
msgstr ""
+#: scene/resources/occluder_shape.cpp
+msgid "OccluderShapeSphere Set Spheres"
+msgstr ""
+
#: scene/resources/visual_shader_nodes.cpp
msgid ""
"The sampler port is connected but not used. Consider changing the source to "
diff --git a/editor/translations/hr.po b/editor/translations/hr.po
index 37d517cba0..c5fcf3ab6e 100644
--- a/editor/translations/hr.po
+++ b/editor/translations/hr.po
@@ -9,7 +9,7 @@
msgid ""
msgstr ""
"Project-Id-Version: Godot Engine editor\n"
-"PO-Revision-Date: 2021-07-16 05:47+0000\n"
+"PO-Revision-Date: 2021-08-13 19:05+0000\n"
"Last-Translator: LeoClose <leoclose575@gmail.com>\n"
"Language-Team: Croatian <https://hosted.weblate.org/projects/godot-engine/"
"godot/hr/>\n"
@@ -18,7 +18,7 @@ msgstr ""
"Content-Transfer-Encoding: 8-bit\n"
"Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && n"
"%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n"
-"X-Generator: Weblate 4.7.2-dev\n"
+"X-Generator: Weblate 4.8-dev\n"
#: core/math/expression.cpp modules/gdscript/gdscript_functions.cpp
#: modules/visual_script/visual_script_builtin_funcs.cpp
@@ -149,7 +149,7 @@ msgstr "Animacija - Promijeni prijelaz"
#: editor/animation_track_editor.cpp
msgid "Anim Change Transform"
-msgstr ""
+msgstr "Anim Promijeni Transform"
#: editor/animation_track_editor.cpp
msgid "Anim Change Keyframe Value"
@@ -213,9 +213,8 @@ msgid "Animation Playback Track"
msgstr ""
#: editor/animation_track_editor.cpp
-#, fuzzy
msgid "Animation length (frames)"
-msgstr "Trajanje animacije (u sekundama)"
+msgstr "Trajanje animacije (frames)"
#: editor/animation_track_editor.cpp
msgid "Animation length (seconds)"
@@ -523,12 +522,12 @@ msgstr ""
#: editor/animation_track_editor.cpp
msgid "Seconds"
-msgstr ""
+msgstr "Sekunde"
#: editor/animation_track_editor.cpp
#: editor/plugins/sprite_frames_editor_plugin.cpp
msgid "FPS"
-msgstr ""
+msgstr "FPS"
#: editor/animation_track_editor.cpp editor/editor_plugin_settings.cpp
#: editor/editor_resource_picker.cpp
@@ -539,15 +538,15 @@ msgstr ""
#: editor/project_settings_editor.cpp editor/property_editor.cpp
#: modules/visual_script/visual_script_editor.cpp
msgid "Edit"
-msgstr ""
+msgstr "Uredi"
#: editor/animation_track_editor.cpp
msgid "Animation properties."
-msgstr ""
+msgstr "Svojstva animacije."
#: editor/animation_track_editor.cpp
msgid "Copy Tracks"
-msgstr ""
+msgstr "Kopiraj Zapise"
#: editor/animation_track_editor.cpp
msgid "Scale Selection"
@@ -942,11 +941,11 @@ msgstr "Napravi novi %s"
#: editor/create_dialog.cpp editor/plugins/asset_library_editor_plugin.cpp
msgid "No results for \"%s\"."
-msgstr ""
+msgstr "Nema rezultata za \"%s\"."
#: editor/create_dialog.cpp editor/property_selector.cpp
msgid "No description available for %s."
-msgstr ""
+msgstr "Opis za %s nije dostupan."
#: editor/create_dialog.cpp editor/editor_file_dialog.cpp
#: editor/filesystem_dock.cpp
@@ -1006,7 +1005,7 @@ msgstr ""
msgid "Dependencies"
msgstr "Ovisnosti"
-#: editor/dependency_editor.cpp
+#: editor/dependency_editor.cpp editor/editor_resource_picker.cpp
msgid "Resource"
msgstr "Resurs"
@@ -1645,13 +1644,13 @@ msgid ""
"Enabled'."
msgstr ""
-#: editor/editor_export.cpp platform/android/export/export.cpp
+#: editor/editor_export.cpp platform/android/export/export_plugin.cpp
#: platform/iphone/export/export.cpp platform/javascript/export/export.cpp
#: platform/osx/export/export.cpp platform/uwp/export/export.cpp
msgid "Custom debug template not found."
msgstr ""
-#: editor/editor_export.cpp platform/android/export/export.cpp
+#: editor/editor_export.cpp platform/android/export/export_plugin.cpp
#: platform/iphone/export/export.cpp platform/javascript/export/export.cpp
#: platform/osx/export/export.cpp platform/uwp/export/export.cpp
msgid "Custom release template not found."
@@ -2029,7 +2028,7 @@ msgstr ""
msgid "(Re)Importing Assets"
msgstr ""
-#: editor/editor_help.cpp editor/plugins/spatial_editor_plugin.cpp
+#: editor/editor_help.cpp
msgid "Top"
msgstr ""
@@ -2507,6 +2506,30 @@ msgid "Current scene not saved. Open anyway?"
msgstr ""
#: editor/editor_node.cpp
+msgid "Can't undo while mouse buttons are pressed."
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "Nothing to undo."
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "Undo: %s"
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "Can't redo while mouse buttons are pressed."
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "Nothing to redo."
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "Redo: %s"
+msgstr ""
+
+#: editor/editor_node.cpp
msgid "Can't reload a scene that was never saved."
msgstr ""
@@ -3132,6 +3155,11 @@ msgid "Merge With Existing"
msgstr ""
#: editor/editor_node.cpp
+#, fuzzy
+msgid "Apply MeshInstance Transforms"
+msgstr "Anim Promijeni Transform"
+
+#: editor/editor_node.cpp
msgid "Open & Run a Script"
msgstr ""
@@ -3375,6 +3403,10 @@ msgid ""
"property (%s)."
msgstr ""
+#: editor/editor_resource_picker.cpp
+msgid "Quick Load"
+msgstr ""
+
#: editor/editor_resource_picker.cpp editor/property_editor.cpp
msgid "Make Unique"
msgstr ""
@@ -5429,6 +5461,16 @@ msgid "Move CanvasItem \"%s\" to (%d, %d)"
msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Locked"
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Grouped"
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
msgid ""
"Children of containers have their anchors and margins values overridden by "
"their parent."
@@ -6334,7 +6376,11 @@ msgid "Remove Selected Item"
msgstr ""
#: editor/plugins/mesh_library_editor_plugin.cpp
-msgid "Import from Scene"
+msgid "Import from Scene (Ignore Transforms)"
+msgstr ""
+
+#: editor/plugins/mesh_library_editor_plugin.cpp
+msgid "Import from Scene (Apply Transforms)"
msgstr ""
#: editor/plugins/mesh_library_editor_plugin.cpp
@@ -6920,6 +6966,15 @@ msgstr "Pomakni Bezier ToÄke"
msgid "Flip Portal"
msgstr ""
+#: editor/plugins/room_manager_editor_plugin.cpp
+msgid "Occluder Set Transform"
+msgstr ""
+
+#: editor/plugins/room_manager_editor_plugin.cpp
+#, fuzzy
+msgid "Center Node"
+msgstr "Premjesti Ävor(node)"
+
#: editor/plugins/root_motion_editor_plugin.cpp
msgid "AnimationTree has no path set to an AnimationPlayer"
msgstr ""
@@ -7414,11 +7469,12 @@ msgid "Skeleton2D"
msgstr ""
#: editor/plugins/skeleton_2d_editor_plugin.cpp
-msgid "Make Rest Pose (From Bones)"
-msgstr ""
+#, fuzzy
+msgid "Reset to Rest Pose"
+msgstr "UÄitaj Zadano"
#: editor/plugins/skeleton_2d_editor_plugin.cpp
-msgid "Set Bones to Rest Pose"
+msgid "Overwrite Rest Pose"
msgstr ""
#: editor/plugins/skeleton_editor_plugin.cpp
@@ -7446,6 +7502,60 @@ msgid "Perspective"
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Top Orthogonal"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Top Perspective"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Bottom Orthogonal"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Bottom Perspective"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Left Orthogonal"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Right Perspective"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Right Orthogonal"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Front Orthogonal"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Front Perspective"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Rear Orthogonal"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Rear Perspective"
+msgstr ""
+
+#. TRANSLATORS: This will be appended to the view name when Auto Orthogonal is enabled.
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid " [auto]"
+msgstr ""
+
+#. TRANSLATORS: This will be appended to the view name when Portal Occulusion is enabled.
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid " [portals active]"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
msgid "Transform Aborted."
msgstr ""
@@ -7555,42 +7665,22 @@ msgid "Bottom View."
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
-msgid "Bottom"
-msgstr ""
-
-#: editor/plugins/spatial_editor_plugin.cpp
msgid "Left View."
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
-msgid "Left"
-msgstr ""
-
-#: editor/plugins/spatial_editor_plugin.cpp
msgid "Right View."
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
-msgid "Right"
-msgstr ""
-
-#: editor/plugins/spatial_editor_plugin.cpp
msgid "Front View."
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
-msgid "Front"
-msgstr ""
-
-#: editor/plugins/spatial_editor_plugin.cpp
msgid "Rear View."
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
-msgid "Rear"
-msgstr ""
-
-#: editor/plugins/spatial_editor_plugin.cpp
msgid "Align Transform with View"
msgstr ""
@@ -7853,6 +7943,10 @@ msgid "View Portal Culling"
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
+msgid "View Occlusion Culling"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
#: modules/gridmap/grid_map_editor_plugin.cpp
msgid "Settings..."
msgstr ""
@@ -7918,7 +8012,7 @@ msgid "Post"
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
-msgid "Nameless gizmo"
+msgid "Unnamed Gizmo"
msgstr ""
#: editor/plugins/sprite_editor_plugin.cpp
@@ -8904,9 +8998,8 @@ msgid "Occlusion Mode"
msgstr ""
#: editor/plugins/tile_set_editor_plugin.cpp
-#, fuzzy
msgid "Navigation Mode"
-msgstr "NaÄin Interpolacije"
+msgstr "NaÄin Navigacije"
#: editor/plugins/tile_set_editor_plugin.cpp
msgid "Bitmask Mode"
@@ -9174,9 +9267,8 @@ msgid "Detect new changes"
msgstr ""
#: editor/plugins/version_control_editor_plugin.cpp
-#, fuzzy
msgid "Changes"
-msgstr "Promijeni"
+msgstr "Promjene"
#: editor/plugins/version_control_editor_plugin.cpp
msgid "Modified"
@@ -11858,6 +11950,14 @@ msgstr ""
msgid "Set Portal Point Position"
msgstr ""
+#: editor/spatial_editor_gizmos.cpp
+msgid "Set Occluder Sphere Radius"
+msgstr ""
+
+#: editor/spatial_editor_gizmos.cpp
+msgid "Set Occluder Sphere Position"
+msgstr ""
+
#: modules/csg/csg_gizmos.cpp
msgid "Change Cylinder Radius"
msgstr ""
@@ -12142,6 +12242,10 @@ msgstr ""
msgid "Class name can't be a reserved keyword"
msgstr ""
+#: modules/mono/csharp_script.cpp
+msgid "Build Solution"
+msgstr ""
+
#: modules/mono/mono_gd/gd_mono_utils.cpp
msgid "End of inner exception stack trace"
msgstr ""
@@ -12617,159 +12721,148 @@ msgstr ""
msgid "Get %s"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Package name is missing."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Package segments must be of non-zero length."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "The character '%s' is not allowed in Android application package names."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "A digit cannot be the first character in a package segment."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "The character '%s' cannot be the first character in a package segment."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "The package must have at least one '.' separator."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Select device from the list"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Running on %s"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Exporting APK..."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Uninstalling..."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Installing to device, please wait..."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Could not install to device: %s"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Running on device..."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Could not execute on device."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Unable to find the 'apksigner' tool."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Android build template not installed in the project. Install it from the "
"Project menu."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Either Debug Keystore, Debug User AND Debug Password settings must be "
"configured OR none of them."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Debug keystore not configured in the Editor Settings nor in the preset."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Either Release Keystore, Release User AND Release Password settings must be "
"configured OR none of them."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Release keystore incorrectly configured in the export preset."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "A valid Android SDK path is required in Editor Settings."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Invalid Android SDK path in Editor Settings."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Missing 'platform-tools' directory!"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Unable to find Android SDK platform-tools' adb command."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Please check in the Android SDK directory specified in Editor Settings."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Missing 'build-tools' directory!"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Unable to find Android SDK build-tools' apksigner command."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Invalid public key for APK expansion."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Invalid package name:"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Invalid \"GodotPaymentV3\" module included in the \"android/modules\" "
"project setting (changed in Godot 3.2.2).\n"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "\"Use Custom Build\" must be enabled to use the plugins."
msgstr ""
-#: platform/android/export/export.cpp
-msgid ""
-"\"Degrees Of Freedom\" is only valid when \"Xr Mode\" is \"Oculus Mobile VR"
-"\"."
-msgstr ""
-
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"\"Hand Tracking\" is only valid when \"Xr Mode\" is \"Oculus Mobile VR\"."
msgstr ""
-#: platform/android/export/export.cpp
-msgid ""
-"\"Focus Awareness\" is only valid when \"Xr Mode\" is \"Oculus Mobile VR\"."
-msgstr ""
-
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "\"Export AAB\" is only valid when \"Use Custom Build\" is enabled."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"'apksigner' could not be found.\n"
"Please check the command is available in the Android SDK build-tools "
@@ -12777,57 +12870,57 @@ msgid ""
"The resulting %s is unsigned."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Signing debug %s..."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Signing release %s..."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Could not find keystore, unable to export."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "'apksigner' returned with error #%d"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Verifying %s..."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "'apksigner' verification of %s failed."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Exporting for Android"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Invalid filename! Android App Bundle requires the *.aab extension."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "APK Expansion not compatible with Android App Bundle."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Invalid filename! Android APK requires the *.apk extension."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Unsupported export format!\n"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Trying to build from a custom built template, but no version info for it "
"exists. Please reinstall from the 'Project' menu."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Android build version mismatch:\n"
" Template installed: %s\n"
@@ -12835,54 +12928,54 @@ msgid ""
"Please reinstall Android build template from 'Project' menu."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Unable to overwrite res://android/build/res/*.xml files with project name"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Could not export project files to gradle project\n"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Could not write expansion package file!"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Building Android Project (gradle)"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Building of Android project failed, check output for the error.\n"
"Alternatively visit docs.godotengine.org for Android build documentation."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Moving output"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Unable to copy and rename export file, check gradle project directory for "
"outputs."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Package not found: %s"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Creating APK..."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Could not find template APK to export:\n"
"%s"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Missing libraries in the export template for the selected architectures: "
"%s.\n"
@@ -12890,19 +12983,19 @@ msgid ""
"architectures in the export preset."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Adding files..."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Could not export project files"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Aligning APK..."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Could not unzip temporary unaligned APK."
msgstr ""
@@ -13353,6 +13446,14 @@ msgid ""
"It only provides navigation data."
msgstr ""
+#: scene/3d/occluder.cpp
+msgid "No shape is set."
+msgstr ""
+
+#: scene/3d/occluder.cpp
+msgid "Only uniform scales are supported."
+msgstr ""
+
#: scene/3d/particles.cpp
msgid ""
"GPU-based particles are not supported by the GLES2 video driver.\n"
@@ -13642,6 +13743,14 @@ msgstr "Nastavak mora biti ispravan."
msgid "Enable grid minimap."
msgstr ""
+#: scene/gui/nine_patch_rect.cpp
+msgid ""
+"The Tile and Tile Fit options for Axis Stretch properties are only effective "
+"when using the GLES3 rendering backend.\n"
+"The GLES2 backend is currently in use, so these modes will act like Stretch "
+"instead."
+msgstr ""
+
#: scene/gui/popup.cpp
msgid ""
"Popups will hide by default unless you call popup() or any of the popup*() "
@@ -13682,6 +13791,10 @@ msgstr ""
msgid "Viewport size must be greater than 0 to render anything."
msgstr ""
+#: scene/resources/occluder_shape.cpp
+msgid "OccluderShapeSphere Set Spheres"
+msgstr ""
+
#: scene/resources/visual_shader_nodes.cpp
msgid ""
"The sampler port is connected but not used. Consider changing the source to "
diff --git a/editor/translations/hu.po b/editor/translations/hu.po
index c822f5bd53..2df1fc98b0 100644
--- a/editor/translations/hu.po
+++ b/editor/translations/hu.po
@@ -1039,7 +1039,7 @@ msgstr ""
msgid "Dependencies"
msgstr "Függőségek"
-#: editor/dependency_editor.cpp
+#: editor/dependency_editor.cpp editor/editor_resource_picker.cpp
msgid "Resource"
msgstr "Forrás"
@@ -1705,13 +1705,13 @@ msgstr ""
"Engedélyezze az 'Import Pvrtc' beállítást a Projekt Beállításokban, vagy "
"kapcsolja ki a 'Driver Fallback Enabled' beállítást."
-#: editor/editor_export.cpp platform/android/export/export.cpp
+#: editor/editor_export.cpp platform/android/export/export_plugin.cpp
#: platform/iphone/export/export.cpp platform/javascript/export/export.cpp
#: platform/osx/export/export.cpp platform/uwp/export/export.cpp
msgid "Custom debug template not found."
msgstr "Az egyéni hibakeresési sablon nem található."
-#: editor/editor_export.cpp platform/android/export/export.cpp
+#: editor/editor_export.cpp platform/android/export/export_plugin.cpp
#: platform/iphone/export/export.cpp platform/javascript/export/export.cpp
#: platform/osx/export/export.cpp platform/uwp/export/export.cpp
msgid "Custom release template not found."
@@ -2095,7 +2095,7 @@ msgstr ""
msgid "(Re)Importing Assets"
msgstr "Eszközök (Újra) Betöltése"
-#: editor/editor_help.cpp editor/plugins/spatial_editor_plugin.cpp
+#: editor/editor_help.cpp
msgid "Top"
msgstr "Eleje"
@@ -2612,6 +2612,32 @@ msgid "Current scene not saved. Open anyway?"
msgstr "Még nem mentette az aktuális jelenetet. Megnyitja mindenképp?"
#: editor/editor_node.cpp
+msgid "Can't undo while mouse buttons are pressed."
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "Nothing to undo."
+msgstr ""
+
+#: editor/editor_node.cpp
+#, fuzzy
+msgid "Undo: %s"
+msgstr "Visszavonás"
+
+#: editor/editor_node.cpp
+msgid "Can't redo while mouse buttons are pressed."
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "Nothing to redo."
+msgstr ""
+
+#: editor/editor_node.cpp
+#, fuzzy
+msgid "Redo: %s"
+msgstr "Újra"
+
+#: editor/editor_node.cpp
msgid "Can't reload a scene that was never saved."
msgstr "Nem lehet újratölteni egy olyan jelenetet, amit soha nem mentett el."
@@ -3297,6 +3323,11 @@ msgid "Merge With Existing"
msgstr "Egyesítés Meglévővel"
#: editor/editor_node.cpp
+#, fuzzy
+msgid "Apply MeshInstance Transforms"
+msgstr "Animáció - Transzformáció Változtatása"
+
+#: editor/editor_node.cpp
msgid "Open & Run a Script"
msgstr "Szkriptet Megnyit és Futtat"
@@ -3545,6 +3576,10 @@ msgid ""
"property (%s)."
msgstr ""
+#: editor/editor_resource_picker.cpp
+msgid "Quick Load"
+msgstr ""
+
#: editor/editor_resource_picker.cpp editor/property_editor.cpp
msgid "Make Unique"
msgstr "Egyedivé tétel"
@@ -5652,6 +5687,18 @@ msgid "Move CanvasItem \"%s\" to (%d, %d)"
msgstr "%s CanvasItem mozgatása (%d, %d)-ra/re"
#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Locked"
+msgstr "Kijelölés zárolása"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Grouped"
+msgstr "Csoportok"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
msgid ""
"Children of containers have their anchors and margins values overridden by "
"their parent."
@@ -6577,7 +6624,13 @@ msgid "Remove Selected Item"
msgstr "Kijelölt Elem Eltávolítása"
#: editor/plugins/mesh_library_editor_plugin.cpp
-msgid "Import from Scene"
+#, fuzzy
+msgid "Import from Scene (Ignore Transforms)"
+msgstr "Importálás Jelenetből"
+
+#: editor/plugins/mesh_library_editor_plugin.cpp
+#, fuzzy
+msgid "Import from Scene (Apply Transforms)"
msgstr "Importálás Jelenetből"
#: editor/plugins/mesh_library_editor_plugin.cpp
@@ -7164,6 +7217,16 @@ msgstr "Generált Pontok Száma:"
msgid "Flip Portal"
msgstr ""
+#: editor/plugins/room_manager_editor_plugin.cpp
+#, fuzzy
+msgid "Occluder Set Transform"
+msgstr "Megnéz a Síklap transzformációját."
+
+#: editor/plugins/room_manager_editor_plugin.cpp
+#, fuzzy
+msgid "Center Node"
+msgstr "Node létrehozás"
+
#: editor/plugins/root_motion_editor_plugin.cpp
msgid "AnimationTree has no path set to an AnimationPlayer"
msgstr ""
@@ -7660,12 +7723,14 @@ msgid "Skeleton2D"
msgstr "Csontváz2D"
#: editor/plugins/skeleton_2d_editor_plugin.cpp
-msgid "Make Rest Pose (From Bones)"
-msgstr ""
+#, fuzzy
+msgid "Reset to Rest Pose"
+msgstr "Visszaállítás Alapértelmezettre"
#: editor/plugins/skeleton_2d_editor_plugin.cpp
-msgid "Set Bones to Rest Pose"
-msgstr ""
+#, fuzzy
+msgid "Overwrite Rest Pose"
+msgstr "Felülírás"
#: editor/plugins/skeleton_editor_plugin.cpp
msgid "Create physical bones"
@@ -7692,6 +7757,71 @@ msgid "Perspective"
msgstr "Perspektíva"
#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Top Orthogonal"
+msgstr "Ortogonális"
+
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Top Perspective"
+msgstr "Perspektíva"
+
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Bottom Orthogonal"
+msgstr "Ortogonális"
+
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Bottom Perspective"
+msgstr "Perspektíva"
+
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Left Orthogonal"
+msgstr "Ortogonális"
+
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Right Perspective"
+msgstr "Perspektíva"
+
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Right Orthogonal"
+msgstr "Ortogonális"
+
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Front Orthogonal"
+msgstr "Ortogonális"
+
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Front Perspective"
+msgstr "Perspektíva"
+
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Rear Orthogonal"
+msgstr "Ortogonális"
+
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Rear Perspective"
+msgstr "Perspektíva"
+
+#. TRANSLATORS: This will be appended to the view name when Auto Orthogonal is enabled.
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid " [auto]"
+msgstr ""
+
+#. TRANSLATORS: This will be appended to the view name when Portal Occulusion is enabled.
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid " [portals active]"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
msgid "Transform Aborted."
msgstr "Ãtalakítás Megszakítva."
@@ -7809,42 +7939,22 @@ msgid "Bottom View."
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
-msgid "Bottom"
-msgstr ""
-
-#: editor/plugins/spatial_editor_plugin.cpp
msgid "Left View."
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
-msgid "Left"
-msgstr ""
-
-#: editor/plugins/spatial_editor_plugin.cpp
msgid "Right View."
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
-msgid "Right"
-msgstr ""
-
-#: editor/plugins/spatial_editor_plugin.cpp
msgid "Front View."
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
-msgid "Front"
-msgstr ""
-
-#: editor/plugins/spatial_editor_plugin.cpp
msgid "Rear View."
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
-msgid "Rear"
-msgstr ""
-
-#: editor/plugins/spatial_editor_plugin.cpp
msgid "Align Transform with View"
msgstr ""
@@ -8109,6 +8219,10 @@ msgid "View Portal Culling"
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
+msgid "View Occlusion Culling"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
#: modules/gridmap/grid_map_editor_plugin.cpp
msgid "Settings..."
msgstr "Beállítások..."
@@ -8174,8 +8288,9 @@ msgid "Post"
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
-msgid "Nameless gizmo"
-msgstr ""
+#, fuzzy
+msgid "Unnamed Gizmo"
+msgstr "Névtelen projekt"
#: editor/plugins/sprite_editor_plugin.cpp
msgid "Create Mesh2D"
@@ -12161,6 +12276,15 @@ msgstr "Görbe Pont Pozíció Beállítása"
msgid "Set Portal Point Position"
msgstr "Görbe Pont Pozíció Beállítása"
+#: editor/spatial_editor_gizmos.cpp
+msgid "Set Occluder Sphere Radius"
+msgstr ""
+
+#: editor/spatial_editor_gizmos.cpp
+#, fuzzy
+msgid "Set Occluder Sphere Position"
+msgstr "Be-Görbe Pozíció Beállítása"
+
#: modules/csg/csg_gizmos.cpp
msgid "Change Cylinder Radius"
msgstr ""
@@ -12446,6 +12570,11 @@ msgstr "Fénytérképek Ãbrázolása"
msgid "Class name can't be a reserved keyword"
msgstr ""
+#: modules/mono/csharp_script.cpp
+#, fuzzy
+msgid "Build Solution"
+msgstr "Kijelölés kitöltése"
+
#: modules/mono/mono_gd/gd_mono_utils.cpp
msgid "End of inner exception stack trace"
msgstr ""
@@ -12921,165 +13050,154 @@ msgstr ""
msgid "Get %s"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Package name is missing."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Package segments must be of non-zero length."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "The character '%s' is not allowed in Android application package names."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "A digit cannot be the first character in a package segment."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "The character '%s' cannot be the first character in a package segment."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "The package must have at least one '.' separator."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Select device from the list"
msgstr "Válasszon készüléket a listából"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Running on %s"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
#, fuzzy
msgid "Exporting APK..."
msgstr "Összes exportálása"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
#, fuzzy
msgid "Uninstalling..."
msgstr "Eltávolítás"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
#, fuzzy
msgid "Installing to device, please wait..."
msgstr "Betöltés, kérem várjon..."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
#, fuzzy
msgid "Could not install to device: %s"
msgstr "Az alprocesszt nem lehetett elindítani!"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
#, fuzzy
msgid "Running on device..."
msgstr "Tetszőleges Szkript Futtatása..."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
#, fuzzy
msgid "Could not execute on device."
msgstr "Nem sikerült létrehozni a mappát."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Unable to find the 'apksigner' tool."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Android build template not installed in the project. Install it from the "
"Project menu."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Either Debug Keystore, Debug User AND Debug Password settings must be "
"configured OR none of them."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Debug keystore not configured in the Editor Settings nor in the preset."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Either Release Keystore, Release User AND Release Password settings must be "
"configured OR none of them."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Release keystore incorrectly configured in the export preset."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "A valid Android SDK path is required in Editor Settings."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Invalid Android SDK path in Editor Settings."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Missing 'platform-tools' directory!"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Unable to find Android SDK platform-tools' adb command."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Please check in the Android SDK directory specified in Editor Settings."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Missing 'build-tools' directory!"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Unable to find Android SDK build-tools' apksigner command."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Invalid public key for APK expansion."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Invalid package name:"
msgstr "Érvénytelen csomagnév:"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Invalid \"GodotPaymentV3\" module included in the \"android/modules\" "
"project setting (changed in Godot 3.2.2).\n"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "\"Use Custom Build\" must be enabled to use the plugins."
msgstr ""
-#: platform/android/export/export.cpp
-msgid ""
-"\"Degrees Of Freedom\" is only valid when \"Xr Mode\" is \"Oculus Mobile VR"
-"\"."
-msgstr ""
-
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"\"Hand Tracking\" is only valid when \"Xr Mode\" is \"Oculus Mobile VR\"."
msgstr ""
-#: platform/android/export/export.cpp
-msgid ""
-"\"Focus Awareness\" is only valid when \"Xr Mode\" is \"Oculus Mobile VR\"."
-msgstr ""
-
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "\"Export AAB\" is only valid when \"Use Custom Build\" is enabled."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"'apksigner' could not be found.\n"
"Please check the command is available in the Android SDK build-tools "
@@ -13087,62 +13205,62 @@ msgid ""
"The resulting %s is unsigned."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Signing debug %s..."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
#, fuzzy
msgid "Signing release %s..."
msgstr ""
"Fájlok vizsgálata,\n"
"kérjük várjon..."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Could not find keystore, unable to export."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "'apksigner' returned with error #%d"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
#, fuzzy
msgid "Verifying %s..."
msgstr "%s Hozzáadása..."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "'apksigner' verification of %s failed."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
#, fuzzy
msgid "Exporting for Android"
msgstr "Összes exportálása"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Invalid filename! Android App Bundle requires the *.aab extension."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "APK Expansion not compatible with Android App Bundle."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Invalid filename! Android APK requires the *.apk extension."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Unsupported export format!\n"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Trying to build from a custom built template, but no version info for it "
"exists. Please reinstall from the 'Project' menu."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Android build version mismatch:\n"
" Template installed: %s\n"
@@ -13150,56 +13268,56 @@ msgid ""
"Please reinstall Android build template from 'Project' menu."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Unable to overwrite res://android/build/res/*.xml files with project name"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Could not export project files to gradle project\n"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Could not write expansion package file!"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Building Android Project (gradle)"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Building of Android project failed, check output for the error.\n"
"Alternatively visit docs.godotengine.org for Android build documentation."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Moving output"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Unable to copy and rename export file, check gradle project directory for "
"outputs."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
#, fuzzy
msgid "Package not found: %s"
msgstr "Az animáció nem található: '%s'"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
#, fuzzy
msgid "Creating APK..."
msgstr "Kontúrok létrehozása…"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Could not find template APK to export:\n"
"%s"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Missing libraries in the export template for the selected architectures: "
"%s.\n"
@@ -13207,21 +13325,21 @@ msgid ""
"architectures in the export preset."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
#, fuzzy
msgid "Adding files..."
msgstr "%s Hozzáadása..."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
#, fuzzy
msgid "Could not export project files"
msgstr "Az alprocesszt nem lehetett elindítani!"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Aligning APK..."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Could not unzip temporary unaligned APK."
msgstr ""
@@ -13678,6 +13796,14 @@ msgid ""
"It only provides navigation data."
msgstr ""
+#: scene/3d/occluder.cpp
+msgid "No shape is set."
+msgstr ""
+
+#: scene/3d/occluder.cpp
+msgid "Only uniform scales are supported."
+msgstr ""
+
#: scene/3d/particles.cpp
msgid ""
"GPU-based particles are not supported by the GLES2 video driver.\n"
@@ -13967,6 +14093,14 @@ msgstr "Használjon érvényes kiterjesztést."
msgid "Enable grid minimap."
msgstr "Rács kistérkép engedélyezése."
+#: scene/gui/nine_patch_rect.cpp
+msgid ""
+"The Tile and Tile Fit options for Axis Stretch properties are only effective "
+"when using the GLES3 rendering backend.\n"
+"The GLES2 backend is currently in use, so these modes will act like Stretch "
+"instead."
+msgstr ""
+
#: scene/gui/popup.cpp
msgid ""
"Popups will hide by default unless you call popup() or any of the popup*() "
@@ -14011,6 +14145,10 @@ msgstr ""
msgid "Viewport size must be greater than 0 to render anything."
msgstr ""
+#: scene/resources/occluder_shape.cpp
+msgid "OccluderShapeSphere Set Spheres"
+msgstr ""
+
#: scene/resources/visual_shader_nodes.cpp
msgid ""
"The sampler port is connected but not used. Consider changing the source to "
diff --git a/editor/translations/id.po b/editor/translations/id.po
index 3426bd0962..83b80592b1 100644
--- a/editor/translations/id.po
+++ b/editor/translations/id.po
@@ -10,7 +10,7 @@
# Fajar Ru <kzofajar@gmail.com>, 2018.
# Khairul Hidayat <khairulcyber4rt@gmail.com>, 2016.
# Reza Hidayat Bayu Prabowo <rh.bayu.prabowo@gmail.com>, 2018, 2019.
-# Romi Kusuma Bakti <romikusumab@gmail.com>, 2017, 2018.
+# Romi Kusuma Bakti <romikusumab@gmail.com>, 2017, 2018, 2021.
# Sofyan Sugianto <sofyanartem@gmail.com>, 2017-2018, 2019, 2020, 2021.
# Tito <ijavadroid@gmail.com>, 2018.
# Tom My <tom.asadinawan@gmail.com>, 2017.
@@ -32,12 +32,13 @@
# Reza Almanda <rezaalmanda27@gmail.com>, 2021.
# Naufal Adriansyah <naufaladrn90@gmail.com>, 2021.
# undisputedgoose <diablodvorak@gmail.com>, 2021.
+# Tsaqib Fadhlurrahman Soka <sokatsaqib@gmail.com>, 2021.
msgid ""
msgstr ""
"Project-Id-Version: Godot Engine editor\n"
"POT-Creation-Date: \n"
-"PO-Revision-Date: 2021-07-05 14:32+0000\n"
-"Last-Translator: undisputedgoose <diablodvorak@gmail.com>\n"
+"PO-Revision-Date: 2021-09-20 14:46+0000\n"
+"Last-Translator: Sofyan Sugianto <sofyanartem@gmail.com>\n"
"Language-Team: Indonesian <https://hosted.weblate.org/projects/godot-engine/"
"godot/id/>\n"
"Language: id\n"
@@ -45,12 +46,12 @@ msgstr ""
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=1; plural=0;\n"
-"X-Generator: Weblate 4.8-dev\n"
+"X-Generator: Weblate 4.9-dev\n"
#: core/math/expression.cpp modules/gdscript/gdscript_functions.cpp
#: modules/visual_script/visual_script_builtin_funcs.cpp
msgid "Invalid type argument to convert(), use TYPE_* constants."
-msgstr "Tipe argumen salah dalam penggunaan convert(), gunakan konstan TYPE_*."
+msgstr "Tipe argumen tidak valid untuk convert(), gunakan konstanta TYPE_*."
#: core/math/expression.cpp modules/gdscript/gdscript_functions.cpp
msgid "Expected a string of length 1 (a character)."
@@ -60,9 +61,7 @@ msgstr "String dengan panjang 1 (karakter) yang diharapkan."
#: modules/mono/glue/gd_glue.cpp
#: modules/visual_script/visual_script_builtin_funcs.cpp
msgid "Not enough bytes for decoding bytes, or invalid format."
-msgstr ""
-"Tidak memiliki bytes yang cukup untuk merubah bytes ke nilai asal, atau "
-"format tidak valid."
+msgstr "Tidak cukup byte untuk mendekode byte, atau format tidak valid."
#: core/math/expression.cpp
msgid "Invalid input %i (not passed) in expression"
@@ -70,7 +69,8 @@ msgstr "Masukkan tidak sah %i (tidak diberikan) dalam ekspresi"
#: core/math/expression.cpp
msgid "self can't be used because instance is null (not passed)"
-msgstr "self tidak dapat digunakan karena instansi adalah null"
+msgstr ""
+"self tidak dapat digunakan karena instance bernilai null (tidak di-passing)"
#: core/math/expression.cpp
msgid "Invalid operands to operator %s, %s and %s."
@@ -395,15 +395,13 @@ msgstr "Sisipkan Anim"
#. TRANSLATORS: This describes the target of new animation track, will be inserted into another string.
#: editor/animation_track_editor.cpp
-#, fuzzy
msgid "node '%s'"
-msgstr "Tidak dapat membuka '%s'."
+msgstr "node '%s'"
#. TRANSLATORS: This describes the target of new animation track, will be inserted into another string.
#: editor/animation_track_editor.cpp
-#, fuzzy
msgid "animation"
-msgstr "Animasi"
+msgstr "animasi"
#: editor/animation_track_editor.cpp
msgid "AnimationPlayer can't animate itself, only other players."
@@ -412,9 +410,8 @@ msgstr ""
#. TRANSLATORS: This describes the target of new animation track, will be inserted into another string.
#: editor/animation_track_editor.cpp
-#, fuzzy
msgid "property '%s'"
-msgstr "Tidak ada properti '%s'."
+msgstr "properti '%s'"
#: editor/animation_track_editor.cpp
msgid "Anim Create & Insert"
@@ -584,7 +581,7 @@ msgstr "FPS"
#: editor/project_settings_editor.cpp editor/property_editor.cpp
#: modules/visual_script/visual_script_editor.cpp
msgid "Edit"
-msgstr "Sunting"
+msgstr "Edit"
#: editor/animation_track_editor.cpp
msgid "Animation properties."
@@ -624,9 +621,8 @@ msgid "Go to Previous Step"
msgstr "Pergi ke Langkah Sebelumnya"
#: editor/animation_track_editor.cpp
-#, fuzzy
msgid "Apply Reset"
-msgstr "Reset"
+msgstr "Terapkan Reset"
#: editor/animation_track_editor.cpp
msgid "Optimize Animation"
@@ -645,9 +641,8 @@ msgid "Use Bezier Curves"
msgstr "Gunakan Lengkungan Bezier"
#: editor/animation_track_editor.cpp
-#, fuzzy
msgid "Create RESET Track(s)"
-msgstr "Tempel Trek-trek"
+msgstr "Buat RESET Track"
#: editor/animation_track_editor.cpp
msgid "Anim. Optimizer"
@@ -971,9 +966,8 @@ msgid "Edit..."
msgstr "sunting..."
#: editor/connections_dialog.cpp
-#, fuzzy
msgid "Go to Method"
-msgstr "Menuju Ke Fungsi"
+msgstr "Menuju Ke Metode"
#: editor/create_dialog.cpp
msgid "Change %s Type"
@@ -993,7 +987,7 @@ msgstr "Tidak ada hasil untuk \"%s\"."
#: editor/create_dialog.cpp editor/property_selector.cpp
msgid "No description available for %s."
-msgstr ""
+msgstr "Tidak ada deskripsi tersedia untuk %s."
#: editor/create_dialog.cpp editor/editor_file_dialog.cpp
#: editor/filesystem_dock.cpp
@@ -1053,7 +1047,7 @@ msgstr ""
msgid "Dependencies"
msgstr "Ketergantungan"
-#: editor/dependency_editor.cpp
+#: editor/dependency_editor.cpp editor/editor_resource_picker.cpp
msgid "Resource"
msgstr "Resource"
@@ -1093,17 +1087,16 @@ msgid "Owners Of:"
msgstr "Pemilik Dari:"
#: editor/dependency_editor.cpp
-#, fuzzy
msgid ""
"Remove the selected files from the project? (Cannot be undone.)\n"
"Depending on your filesystem configuration, the files will either be moved "
"to the system trash or deleted permanently."
msgstr ""
"Hapus berkas yang dipilih dari proyek? (tidak bisa dibatalkan)\n"
-"Anda bisa menemukan berkas yang telah dihapus di tong sampah."
+"Tergantung pada konfigurasi sistem file Anda, file akan dipindahkan ke "
+"tempat sampah sistem atau dihapus secara permanen."
#: editor/dependency_editor.cpp
-#, fuzzy
msgid ""
"The files being removed are required by other resources in order for them to "
"work.\n"
@@ -1111,10 +1104,11 @@ msgid ""
"Depending on your filesystem configuration, the files will either be moved "
"to the system trash or deleted permanently."
msgstr ""
-"File-file yang telah dihapus diperlukan oleh resource lain agar mereka dapat "
-"bekerja.\n"
+"File-file yang telah dihapus diperlukan oleh sumber daya lain agar mereka "
+"dapat bekerja.\n"
"Hapus saja? (tidak bisa dibatalkan)\n"
-"Anda bisa menemukan berkas yang telah dihapus di tong sampah."
+"Tergantung pada konfigurasi sistem file Anda, file akan dipindahkan ke "
+"tempat sampah sistem atau dihapus secara permanen."
#: editor/dependency_editor.cpp
msgid "Cannot remove:"
@@ -1284,41 +1278,36 @@ msgid "Licenses"
msgstr "Lisensi"
#: editor/editor_asset_installer.cpp
-#, fuzzy
msgid "Error opening asset file for \"%s\" (not in ZIP format)."
-msgstr "Galat saat membuka berkas paket (tidak dalam format ZIP)."
+msgstr "Gagal saat membuka berkas aset untuk \"%s\" (tidak dalam format ZIP)."
#: editor/editor_asset_installer.cpp
-#, fuzzy
msgid "%s (already exists)"
-msgstr "%s (Sudah Ada)"
+msgstr "%s (sudah ada)"
#: editor/editor_asset_installer.cpp
msgid "Contents of asset \"%s\" - %d file(s) conflict with your project:"
-msgstr ""
+msgstr "Konten dari aset \"%s\" - %d berkas-berkas konflik dengan proyek anda:"
#: editor/editor_asset_installer.cpp
msgid "Contents of asset \"%s\" - No files conflict with your project:"
-msgstr ""
+msgstr "Konten dari aset \"%s\" - Tidak ada konflik dengan proyek anda:"
#: editor/editor_asset_installer.cpp
msgid "Uncompressing Assets"
msgstr "Membuka Aset Terkompresi"
#: editor/editor_asset_installer.cpp
-#, fuzzy
msgid "The following files failed extraction from asset \"%s\":"
-msgstr "Berkas berikut gagal diekstrak dari paket:"
+msgstr "Berkas ini gagal mengekstrak dari aset \"%s\":"
#: editor/editor_asset_installer.cpp
-#, fuzzy
msgid "(and %s more files)"
-msgstr "Dan %s berkas lebih banyak."
+msgstr "(dan %s berkas lebih banyak)"
#: editor/editor_asset_installer.cpp
-#, fuzzy
msgid "Asset \"%s\" installed successfully!"
-msgstr "Paket Sukses Terpasang!"
+msgstr "Aset \"%s\" sukses terpasang!"
#: editor/editor_asset_installer.cpp
#: editor/plugins/asset_library_editor_plugin.cpp
@@ -1330,9 +1319,8 @@ msgid "Install"
msgstr "Pasang"
#: editor/editor_asset_installer.cpp
-#, fuzzy
msgid "Asset Installer"
-msgstr "Paket Instalasi"
+msgstr "Aset Instalasi"
#: editor/editor_audio_buses.cpp
msgid "Speakers"
@@ -1395,9 +1383,8 @@ msgid "Bypass"
msgstr "Jalan Lingkar"
#: editor/editor_audio_buses.cpp
-#, fuzzy
msgid "Bus Options"
-msgstr "Opsi Bus"
+msgstr "Pilihan Bus"
#: editor/editor_audio_buses.cpp editor/filesystem_dock.cpp
#: editor/plugins/animation_player_editor_plugin.cpp editor/scene_tree_dock.cpp
@@ -1563,13 +1550,13 @@ msgid "Can't add autoload:"
msgstr "Tidak dapat menambahkan autoload"
#: editor/editor_autoload_settings.cpp
-#, fuzzy
msgid "%s is an invalid path. File does not exist."
-msgstr "File tidak ada."
+msgstr "%s adalah jalur yang tidak valid. Berkas tidak ada."
#: editor/editor_autoload_settings.cpp
msgid "%s is an invalid path. Not in resource path (res://)."
msgstr ""
+"%s adalah jalur yang tidak valid. Tidak dalam jalur sumber daya (res://)."
#: editor/editor_autoload_settings.cpp
msgid "Add AutoLoad"
@@ -1593,9 +1580,8 @@ msgid "Name"
msgstr "Nama"
#: editor/editor_autoload_settings.cpp
-#, fuzzy
msgid "Global Variable"
-msgstr "Namai kembali Variabel"
+msgstr "Variabel Global"
#: editor/editor_data.cpp
msgid "Paste Params"
@@ -1719,13 +1705,13 @@ msgstr ""
"Aktifkan 'Impor Pvrtc' di Pengaturan Proyek, atau matikan 'Driver Fallback "
"Enabled'."
-#: editor/editor_export.cpp platform/android/export/export.cpp
+#: editor/editor_export.cpp platform/android/export/export_plugin.cpp
#: platform/iphone/export/export.cpp platform/javascript/export/export.cpp
#: platform/osx/export/export.cpp platform/uwp/export/export.cpp
msgid "Custom debug template not found."
msgstr "Templat awakutu kustom tidak ditemukan."
-#: editor/editor_export.cpp platform/android/export/export.cpp
+#: editor/editor_export.cpp platform/android/export/export_plugin.cpp
#: platform/iphone/export/export.cpp platform/javascript/export/export.cpp
#: platform/osx/export/export.cpp platform/uwp/export/export.cpp
msgid "Custom release template not found."
@@ -1769,48 +1755,52 @@ msgstr "Dok Impor"
#: editor/editor_feature_profile.cpp
msgid "Allows to view and edit 3D scenes."
-msgstr ""
+msgstr "Memungkinkan untuk melihat dan mengedit scene 3D."
#: editor/editor_feature_profile.cpp
msgid "Allows to edit scripts using the integrated script editor."
msgstr ""
+"Memungkinkan untuk mengedit skrip menggunakan editor skrip terintegrasi."
#: editor/editor_feature_profile.cpp
msgid "Provides built-in access to the Asset Library."
-msgstr ""
+msgstr "Menyediakan akses bawaan ke Perpustakaan Aset."
#: editor/editor_feature_profile.cpp
msgid "Allows editing the node hierarchy in the Scene dock."
-msgstr ""
+msgstr "Memungkinkan pengeditan hierarki node di dock Scene."
#: editor/editor_feature_profile.cpp
msgid ""
"Allows to work with signals and groups of the node selected in the Scene "
"dock."
msgstr ""
+"Memungkinkan untuk bekerja dengan sinyal dan kelompok node yang dipilih di "
+"dock Scene."
#: editor/editor_feature_profile.cpp
msgid "Allows to browse the local file system via a dedicated dock."
-msgstr ""
+msgstr "Memungkinkan untuk menelusuri sistem file lokal melalui dock khusus."
#: editor/editor_feature_profile.cpp
msgid ""
"Allows to configure import settings for individual assets. Requires the "
"FileSystem dock to function."
msgstr ""
+"Memungkinkan untuk mengkonfigurasi pengaturan impor untuk aset individu. "
+"Membutuhkan dock FileSystem untuk berfungsi."
#: editor/editor_feature_profile.cpp
-#, fuzzy
msgid "(current)"
-msgstr "(Kondisi Saat Ini)"
+msgstr "(saat ini)"
#: editor/editor_feature_profile.cpp
msgid "(none)"
-msgstr ""
+msgstr "(tidak ada)"
#: editor/editor_feature_profile.cpp
msgid "Remove currently selected profile, '%s'? Cannot be undone."
-msgstr ""
+msgstr "Menghapus profil yang dipilih saat ini, '%s'? Tidak bisa dibatalkan."
#: editor/editor_feature_profile.cpp
msgid "Profile must be a valid filename and must not contain '.'"
@@ -1841,19 +1831,16 @@ msgid "Enable Contextual Editor"
msgstr "Aktifkan Editor Kontekstual"
#: editor/editor_feature_profile.cpp
-#, fuzzy
msgid "Class Properties:"
-msgstr "Properti:"
+msgstr "Properti Kelas:"
#: editor/editor_feature_profile.cpp
-#, fuzzy
msgid "Main Features:"
-msgstr "Fitur-fitur"
+msgstr "Fitur Utama:"
#: editor/editor_feature_profile.cpp
-#, fuzzy
msgid "Nodes and Classes:"
-msgstr "Kelas yang Diaktifkan:"
+msgstr "Node dan Kelas:"
#: editor/editor_feature_profile.cpp
msgid "File '%s' format is invalid, import aborted."
@@ -1872,23 +1859,20 @@ msgid "Error saving profile to path: '%s'."
msgstr "Galat saat menyimpan profil ke: '%s'."
#: editor/editor_feature_profile.cpp
-#, fuzzy
msgid "Reset to Default"
-msgstr "Kembalikan ke Nilai Baku"
+msgstr "Reset ke Default"
#: editor/editor_feature_profile.cpp
msgid "Current Profile:"
msgstr "Profil Sekarang:"
#: editor/editor_feature_profile.cpp
-#, fuzzy
msgid "Create Profile"
-msgstr "Hapus Profil"
+msgstr "Membuat Profil"
#: editor/editor_feature_profile.cpp
-#, fuzzy
msgid "Remove Profile"
-msgstr "Hapus Tile"
+msgstr "Hapus Profil"
#: editor/editor_feature_profile.cpp
msgid "Available Profiles:"
@@ -1908,18 +1892,17 @@ msgid "Export"
msgstr "Ekspor"
#: editor/editor_feature_profile.cpp
-#, fuzzy
msgid "Configure Selected Profile:"
-msgstr "Profil Sekarang:"
+msgstr "Konfigurasi Profil Saat Ini:"
#: editor/editor_feature_profile.cpp
-#, fuzzy
msgid "Extra Options:"
-msgstr "Opsi Tekstur"
+msgstr "Opsi Ekstra:"
#: editor/editor_feature_profile.cpp
msgid "Create or import a profile to edit available classes and properties."
msgstr ""
+"Buat atau impor profil untuk mengedit kelas dan properti yang tersedia."
#: editor/editor_feature_profile.cpp
msgid "New profile name:"
@@ -1946,9 +1929,8 @@ msgid "Select Current Folder"
msgstr "Pilih Folder Saat Ini"
#: editor/editor_file_dialog.cpp scene/gui/file_dialog.cpp
-#, fuzzy
msgid "File exists, overwrite?"
-msgstr "File telah ada, Overwrite?"
+msgstr "File sudah ada, timpa?"
#: editor/editor_file_dialog.cpp scene/gui/file_dialog.cpp
msgid "Select This Folder"
@@ -2109,7 +2091,7 @@ msgstr ""
msgid "(Re)Importing Assets"
msgstr "Mengimpor ulang Aset"
-#: editor/editor_help.cpp editor/plugins/spatial_editor_plugin.cpp
+#: editor/editor_help.cpp
msgid "Top"
msgstr "Atas"
@@ -2346,6 +2328,9 @@ msgid ""
"Update Continuously is enabled, which can increase power usage. Click to "
"disable it."
msgstr ""
+"Berputar saat jendela editor menggambar ulang.\n"
+"Perbarui Berkelanjutan diaktifkan, yang dapat meningkatkan penggunaan daya. "
+"Klik untuk menonaktifkannya."
#: editor/editor_node.cpp
msgid "Spins when the editor window redraws."
@@ -2582,13 +2567,16 @@ msgid ""
"The current scene has no root node, but %d modified external resource(s) "
"were saved anyway."
msgstr ""
+"Scene saat ini tidak memiliki node root, tetapi %d sumber daya eksternal "
+"yang diubah tetap disimpan."
#: editor/editor_node.cpp
-#, fuzzy
msgid ""
"A root node is required to save the scene. You can add a root node using the "
"Scene tree dock."
-msgstr "Node akar diperlukan untuk menyimpan skena."
+msgstr ""
+"Node root diperlukan untuk menyimpan scene. Anda dapat menambahkan node root "
+"menggunakan dok pohon Scene."
#: editor/editor_node.cpp
msgid "Save Scene As..."
@@ -2619,6 +2607,32 @@ msgid "Current scene not saved. Open anyway?"
msgstr "Skena saat ini belum disimpan. Buka saja?"
#: editor/editor_node.cpp
+msgid "Can't undo while mouse buttons are pressed."
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "Nothing to undo."
+msgstr ""
+
+#: editor/editor_node.cpp
+#, fuzzy
+msgid "Undo: %s"
+msgstr "Batal"
+
+#: editor/editor_node.cpp
+msgid "Can't redo while mouse buttons are pressed."
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "Nothing to redo."
+msgstr ""
+
+#: editor/editor_node.cpp
+#, fuzzy
+msgid "Redo: %s"
+msgstr "Ulangi"
+
+#: editor/editor_node.cpp
msgid "Can't reload a scene that was never saved."
msgstr "Tidak bisa memuat ulang skena yang belum pernah disimpan."
@@ -2970,9 +2984,8 @@ msgid "Orphan Resource Explorer..."
msgstr "Penjelajah Resource Orphan..."
#: editor/editor_node.cpp
-#, fuzzy
msgid "Reload Current Project"
-msgstr "Ubah Nama Proyek"
+msgstr "Muat Ulang Project Saat Ini"
#: editor/editor_node.cpp
msgid "Quit to Project List"
@@ -3131,13 +3144,12 @@ msgid "Help"
msgstr "Bantuan"
#: editor/editor_node.cpp
-#, fuzzy
msgid "Online Documentation"
-msgstr "Buka Dokumentasi"
+msgstr "Dokumentasi Online"
#: editor/editor_node.cpp
msgid "Questions & Answers"
-msgstr ""
+msgstr "Pertanyaan & Jawaban"
#: editor/editor_node.cpp
msgid "Report a Bug"
@@ -3145,7 +3157,7 @@ msgstr "Laporkan Kutu"
#: editor/editor_node.cpp
msgid "Suggest a Feature"
-msgstr ""
+msgstr "Sarankan Fitur"
#: editor/editor_node.cpp
msgid "Send Docs Feedback"
@@ -3156,9 +3168,8 @@ msgid "Community"
msgstr "Komunitas"
#: editor/editor_node.cpp
-#, fuzzy
msgid "About Godot"
-msgstr "Tentang"
+msgstr "Tentang Godot"
#: editor/editor_node.cpp
msgid "Support Godot Development"
@@ -3250,14 +3261,12 @@ msgid "Manage Templates"
msgstr "Kelola Templat"
#: editor/editor_node.cpp
-#, fuzzy
msgid "Install from file"
-msgstr "Memasang dari berkas"
+msgstr "Install dari file"
#: editor/editor_node.cpp
-#, fuzzy
msgid "Select android sources file"
-msgstr "Pilih Mesh Sumber:"
+msgstr "Pilih file sumber android"
#: editor/editor_node.cpp
msgid ""
@@ -3306,6 +3315,11 @@ msgid "Merge With Existing"
msgstr "Gabung dengan yang Ada"
#: editor/editor_node.cpp
+#, fuzzy
+msgid "Apply MeshInstance Transforms"
+msgstr "Ubah Transformasi Animasi"
+
+#: editor/editor_node.cpp
msgid "Open & Run a Script"
msgstr "Buka & Jalankan Skrip"
@@ -3340,9 +3354,8 @@ msgid "Select"
msgstr "Pilih"
#: editor/editor_node.cpp
-#, fuzzy
msgid "Select Current"
-msgstr "Pilih Folder Saat Ini"
+msgstr "Pilih Saat Ini"
#: editor/editor_node.cpp
msgid "Open 2D Editor"
@@ -3377,9 +3390,8 @@ msgid "No sub-resources found."
msgstr "Tidak ada sub-resourc yang ditemukan."
#: editor/editor_path.cpp
-#, fuzzy
msgid "Open a list of sub-resources."
-msgstr "Tidak ada sub-resourc yang ditemukan."
+msgstr "Buka daftar sub-sumber daya."
#: editor/editor_plugin.cpp
msgid "Creating Mesh Previews"
@@ -3406,14 +3418,12 @@ msgid "Update"
msgstr "Perbarui"
#: editor/editor_plugin_settings.cpp
-#, fuzzy
msgid "Version"
-msgstr "Versi:"
+msgstr "Versi"
#: editor/editor_plugin_settings.cpp
-#, fuzzy
msgid "Author"
-msgstr "Pengarang"
+msgstr "Pencipta"
#: editor/editor_plugin_settings.cpp
#: editor/plugins/version_control_editor_plugin.cpp
@@ -3426,14 +3436,12 @@ msgid "Measure:"
msgstr "Ukuran:"
#: editor/editor_profiler.cpp
-#, fuzzy
msgid "Frame Time (ms)"
-msgstr "Waktu Frame (sec)"
+msgstr "Waktu Frame (ms)"
#: editor/editor_profiler.cpp
-#, fuzzy
msgid "Average Time (ms)"
-msgstr "Waktu Rata-rata (sec)"
+msgstr "Waktu Rata-rata (ms)"
#: editor/editor_profiler.cpp
msgid "Frame %"
@@ -3563,6 +3571,10 @@ msgstr ""
"Resource yang terpilih (%s) tidak sesuai dengan tipe apapun yang diharapkan "
"untuk properti ini (%s)."
+#: editor/editor_resource_picker.cpp
+msgid "Quick Load"
+msgstr ""
+
#: editor/editor_resource_picker.cpp editor/property_editor.cpp
msgid "Make Unique"
msgstr "Jadikan Unik"
@@ -3582,9 +3594,8 @@ msgid "Paste"
msgstr "Tempel"
#: editor/editor_resource_picker.cpp editor/property_editor.cpp
-#, fuzzy
msgid "Convert to %s"
-msgstr "Konversikan ke %s"
+msgstr "Konversi ke %s"
#: editor/editor_resource_picker.cpp editor/property_editor.cpp
msgid "New %s"
@@ -3632,11 +3643,10 @@ msgid "Did you forget the '_run' method?"
msgstr "Apakah anda lupa dengan fungsi '_run' ?"
#: editor/editor_spin_slider.cpp
-#, fuzzy
msgid "Hold %s to round to integers. Hold Shift for more precise changes."
msgstr ""
-"Tahan Ctrl untuk membulatkan bilangan. Tahan Shift untuk meletakkan bilangan "
-"yang lebih presisi."
+"Tahan %s untuk membulatkan ke integer. Tahan Shift untuk perubahan yang "
+"lebih presisi."
#: editor/editor_sub_scene.cpp
msgid "Select Node(s) to Import"
@@ -3656,49 +3666,43 @@ msgstr "Impor dari Node:"
#: editor/export_template_manager.cpp
msgid "Open the folder containing these templates."
-msgstr ""
+msgstr "Buka folder yang berisi template ini."
#: editor/export_template_manager.cpp
msgid "Uninstall these templates."
-msgstr ""
+msgstr "Uninstall template ini."
#: editor/export_template_manager.cpp
-#, fuzzy
msgid "There are no mirrors available."
-msgstr "Tidak ada berkas '%s'."
+msgstr "Tidak ada mirror yang tersedia."
#: editor/export_template_manager.cpp
-#, fuzzy
msgid "Retrieving the mirror list..."
-msgstr "Mendapatkan informasi cermin, silakan tunggu..."
+msgstr "Mengambil daftar mirror..."
#: editor/export_template_manager.cpp
msgid "Starting the download..."
-msgstr ""
+msgstr "Memulai download..."
#: editor/export_template_manager.cpp
msgid "Error requesting URL:"
msgstr "Galat saat meminta URL:"
#: editor/export_template_manager.cpp
-#, fuzzy
msgid "Connecting to the mirror..."
-msgstr "Menyambungkan..."
+msgstr "Menghubungkan ke mirror..."
#: editor/export_template_manager.cpp
-#, fuzzy
msgid "Can't resolve the requested address."
-msgstr "Tidak dapat menjelaskan hostname:"
+msgstr "Tidak dapat menyelesaikan alamat yang diminta."
#: editor/export_template_manager.cpp
-#, fuzzy
msgid "Can't connect to the mirror."
-msgstr "Tidak dapat terhubung ke host:"
+msgstr "Tidak dapat terhubung ke mirror."
#: editor/export_template_manager.cpp
-#, fuzzy
msgid "No response from the mirror."
-msgstr "Tidak ada respon dari host:"
+msgstr "Tidak ada respon dari mirror."
#: editor/export_template_manager.cpp
#: editor/plugins/asset_library_editor_plugin.cpp
@@ -3706,18 +3710,16 @@ msgid "Request failed."
msgstr "Permintaan gagal."
#: editor/export_template_manager.cpp
-#, fuzzy
msgid "Request ended up in a redirect loop."
-msgstr "Permintaan gagal, terlalu banyak pengalihan"
+msgstr "Permintaan berakhir di loop pengalihan."
#: editor/export_template_manager.cpp
-#, fuzzy
msgid "Request failed:"
-msgstr "Permintaan gagal."
+msgstr "Permintaan gagal:"
#: editor/export_template_manager.cpp
msgid "Download complete; extracting templates..."
-msgstr ""
+msgstr "Download selesai; mengekstrak template..."
#: editor/export_template_manager.cpp
msgid "Cannot remove temporary file:"
@@ -3736,13 +3738,14 @@ msgid "Error getting the list of mirrors."
msgstr "Galat dalam mendapatkan daftar mirror."
#: editor/export_template_manager.cpp
-#, fuzzy
msgid "Error parsing JSON with the list of mirrors. Please report this issue!"
-msgstr "Galat mengurai JSON dari daftar mirror. Silakan laporkan masalah ini!"
+msgstr ""
+"Kesalahan saat mengurai JSON dengan daftar mirror. Silakan laporkan masalah "
+"ini!"
#: editor/export_template_manager.cpp
msgid "Best available mirror"
-msgstr ""
+msgstr "Mirror terbaik yang tersedia"
#: editor/export_template_manager.cpp
msgid ""
@@ -3795,24 +3798,20 @@ msgid "SSL Handshake Error"
msgstr "Kesalahan jabat tangan SSL"
#: editor/export_template_manager.cpp
-#, fuzzy
msgid "Can't open the export templates file."
-msgstr "Tidak dapat membuka ekspor template-template zip."
+msgstr "Tidak dapat membuka file template ekspor."
#: editor/export_template_manager.cpp
-#, fuzzy
msgid "Invalid version.txt format inside the export templates file: %s."
-msgstr "Format version.txt tidak valid dalam berkas templat: %s."
+msgstr "Format version.txt tidak valid di dalam file template ekspor: %s."
#: editor/export_template_manager.cpp
-#, fuzzy
msgid "No version.txt found inside the export templates file."
-msgstr "Berkas version.txt tidak ditemukan dalam templat."
+msgstr "Tidak ada version.txt yang ditemukan di dalam file template ekspor."
#: editor/export_template_manager.cpp
-#, fuzzy
msgid "Error creating path for extracting templates:"
-msgstr "Kesalahan saat membuat lokasi untuk templat:"
+msgstr "Kesalahan saat membuat jalur untuk mengekstrak template:"
#: editor/export_template_manager.cpp
msgid "Extracting Export Templates"
@@ -3823,9 +3822,8 @@ msgid "Importing:"
msgstr "Mengimpor:"
#: editor/export_template_manager.cpp
-#, fuzzy
msgid "Remove templates for the version '%s'?"
-msgstr "Hapus templat versi '%s'?"
+msgstr "Hapus template untuk versi '%s'?"
#: editor/export_template_manager.cpp
msgid "Uncompressing Android Build Sources"
@@ -3841,68 +3839,61 @@ msgstr "Versi sekarang:"
#: editor/export_template_manager.cpp
msgid "Export templates are missing. Download them or install from a file."
-msgstr ""
+msgstr "Template ekspor tidak ada. Download atau instal dari file."
#: editor/export_template_manager.cpp
msgid "Export templates are installed and ready to be used."
-msgstr ""
+msgstr "Template ekspor sudah terinstal dan siap digunakan."
#: editor/export_template_manager.cpp
-#, fuzzy
msgid "Open Folder"
-msgstr "Buka Berkas"
+msgstr "Buka Folder"
#: editor/export_template_manager.cpp
msgid "Open the folder containing installed templates for the current version."
-msgstr ""
+msgstr "Buka folder yang berisi template yang diinstal untuk versi saat ini."
#: editor/export_template_manager.cpp
msgid "Uninstall"
msgstr "Copot Pemasangan"
#: editor/export_template_manager.cpp
-#, fuzzy
msgid "Uninstall templates for the current version."
-msgstr "Nilai awal untuk penghitung"
+msgstr "Uninstall template untuk versi saat ini."
#: editor/export_template_manager.cpp
-#, fuzzy
msgid "Download from:"
-msgstr "Unduhan Gagal"
+msgstr "Download dari:"
#: editor/export_template_manager.cpp
-#, fuzzy
msgid "Open in Web Browser"
-msgstr "Jalankan di Peramban"
+msgstr "Buka di Browser Web"
#: editor/export_template_manager.cpp
-#, fuzzy
msgid "Copy Mirror URL"
-msgstr "Salin Galat"
+msgstr "Salin URL Mirror"
#: editor/export_template_manager.cpp
msgid "Download and Install"
-msgstr ""
+msgstr "Download dan Instal"
#: editor/export_template_manager.cpp
msgid ""
"Download and install templates for the current version from the best "
"possible mirror."
-msgstr ""
+msgstr "Download dan instal template untuk versi saat ini dari mirror terbaik."
#: editor/export_template_manager.cpp
msgid "Official export templates aren't available for development builds."
msgstr "Templat ekspor resmi tidak tersedia untuk build pengembangan."
#: editor/export_template_manager.cpp
-#, fuzzy
msgid "Install from File"
-msgstr "Memasang dari berkas"
+msgstr "Install dari File"
#: editor/export_template_manager.cpp
-#, fuzzy
msgid "Install templates from a local file."
-msgstr "Impor Templat dari Berkas ZIP"
+msgstr "Instal template dari file lokal."
#: editor/export_template_manager.cpp editor/find_in_files.cpp
#: editor/progress_dialog.cpp scene/gui/dialogs.cpp
@@ -3910,19 +3901,16 @@ msgid "Cancel"
msgstr "Batal"
#: editor/export_template_manager.cpp
-#, fuzzy
msgid "Cancel the download of the templates."
-msgstr "Tidak dapat membuka ekspor template-template zip."
+msgstr "Batalkan download template."
#: editor/export_template_manager.cpp
-#, fuzzy
msgid "Other Installed Versions:"
-msgstr "Versi Terpasang:"
+msgstr "Versi Terinstal Lainnya:"
#: editor/export_template_manager.cpp
-#, fuzzy
msgid "Uninstall Template"
-msgstr "Copot Pemasangan"
+msgstr "Uninstal Template"
#: editor/export_template_manager.cpp
msgid "Select Template File"
@@ -3937,6 +3925,8 @@ msgid ""
"The templates will continue to download.\n"
"You may experience a short editor freeze when they finish."
msgstr ""
+"Templat akan dilanjutkan untuk diunduh.\n"
+"Editor Anda mungkin mengalami pembekuan sementara saat unduhan selesai."
#: editor/filesystem_dock.cpp
msgid "Favorites"
@@ -4036,7 +4026,7 @@ msgstr "Buka Skena"
#: editor/filesystem_dock.cpp
msgid "Instance"
-msgstr "hal"
+msgstr "Instance"
#: editor/filesystem_dock.cpp
msgid "Add to Favorites"
@@ -4083,35 +4073,32 @@ msgid "Collapse All"
msgstr "Lipat Semua"
#: editor/filesystem_dock.cpp
-#, fuzzy
msgid "Sort files"
-msgstr "Cari berkas"
+msgstr "Urutkan berkas"
#: editor/filesystem_dock.cpp
msgid "Sort by Name (Ascending)"
-msgstr ""
+msgstr "Urutkan berdasarkan Nama (Ascending)"
#: editor/filesystem_dock.cpp
msgid "Sort by Name (Descending)"
-msgstr ""
+msgstr "Urutkan berdasarkan Nama (Descending)"
#: editor/filesystem_dock.cpp
msgid "Sort by Type (Ascending)"
-msgstr ""
+msgstr "Urutkan berdasarkan Jenis (Ascending)"
#: editor/filesystem_dock.cpp
msgid "Sort by Type (Descending)"
-msgstr ""
+msgstr "Urutkan berdasarkan Jenis (Descending)"
#: editor/filesystem_dock.cpp
-#, fuzzy
msgid "Sort by Last Modified"
-msgstr "Terakhir Diubah"
+msgstr "Urut dari Terakhir Diubah"
#: editor/filesystem_dock.cpp
-#, fuzzy
msgid "Sort by First Modified"
-msgstr "Terakhir Diubah"
+msgstr "Urut dari Pertama Diubah"
#: editor/filesystem_dock.cpp
msgid "Duplicate..."
@@ -4123,7 +4110,7 @@ msgstr "Ubah Nama..."
#: editor/filesystem_dock.cpp
msgid "Focus the search box"
-msgstr ""
+msgstr "Memfokuskan kotak pencarian"
#: editor/filesystem_dock.cpp
msgid "Previous Folder/File"
@@ -4432,14 +4419,12 @@ msgid "Failed to load resource."
msgstr "Gagal memuat resource."
#: editor/inspector_dock.cpp
-#, fuzzy
msgid "Copy Properties"
-msgstr "Properti"
+msgstr "Salin Properti"
#: editor/inspector_dock.cpp
-#, fuzzy
msgid "Paste Properties"
-msgstr "Properti"
+msgstr "Tempel Properti"
#: editor/inspector_dock.cpp
msgid "Make Sub-Resources Unique"
@@ -4464,23 +4449,20 @@ msgid "Save As..."
msgstr "Simpan Sebagai..."
#: editor/inspector_dock.cpp
-#, fuzzy
msgid "Extra resource options."
-msgstr "Tidak dalam lokasi resource."
+msgstr "Opsi resource tambahan."
#: editor/inspector_dock.cpp
-#, fuzzy
msgid "Edit Resource from Clipboard"
-msgstr "Sunting Papan Klip Resource"
+msgstr "Edit Resource dari Papan Klip"
#: editor/inspector_dock.cpp
msgid "Copy Resource"
msgstr "Salin Resource"
#: editor/inspector_dock.cpp
-#, fuzzy
msgid "Make Resource Built-In"
-msgstr "Buat Menjadi Bawaan"
+msgstr "Buat Resource Menjadi Bawaan"
#: editor/inspector_dock.cpp
msgid "Go to the previous edited object in history."
@@ -4495,9 +4477,8 @@ msgid "History of recently edited objects."
msgstr "Histori dari objek terdireksi baru-baru saja."
#: editor/inspector_dock.cpp
-#, fuzzy
msgid "Open documentation for this object."
-msgstr "Buka Dokumentasi"
+msgstr "Buka Dokumentasi objek ini."
#: editor/inspector_dock.cpp editor/scene_tree_dock.cpp
msgid "Open Documentation"
@@ -4508,9 +4489,8 @@ msgid "Filter properties"
msgstr "Filter properti"
#: editor/inspector_dock.cpp
-#, fuzzy
msgid "Manage object properties."
-msgstr "Properti Objek."
+msgstr "Atur properti objek."
#: editor/inspector_dock.cpp
msgid "Changes may be lost!"
@@ -4754,9 +4734,8 @@ msgid "Blend:"
msgstr "Campur:"
#: editor/plugins/animation_blend_tree_editor_plugin.cpp
-#, fuzzy
msgid "Parameter Changed:"
-msgstr "Parameter Berubah"
+msgstr "Parameter Berubah:"
#: editor/plugins/animation_blend_tree_editor_plugin.cpp
#: editor/plugins/animation_tree_player_editor_plugin.cpp
@@ -5483,11 +5462,11 @@ msgstr "Semua"
#: editor/plugins/asset_library_editor_plugin.cpp
msgid "Search templates, projects, and demos"
-msgstr ""
+msgstr "Cari templat, proyek, dan demo"
#: editor/plugins/asset_library_editor_plugin.cpp
msgid "Search assets (excluding templates, projects, and demos)"
-msgstr ""
+msgstr "Cari aset (kecuali templat, proyek, dan demo)"
#: editor/plugins/asset_library_editor_plugin.cpp
msgid "Import..."
@@ -5531,7 +5510,7 @@ msgstr "Berkas Aset ZIP"
#: editor/plugins/audio_stream_editor_plugin.cpp
msgid "Audio Preview Play/Pause"
-msgstr ""
+msgstr "Putar/Jeda Pratinjau Audio"
#: editor/plugins/baked_lightmap_editor_plugin.cpp
msgid ""
@@ -5568,11 +5547,10 @@ msgstr ""
"persegi [0.0,1.0]."
#: editor/plugins/baked_lightmap_editor_plugin.cpp
-#, fuzzy
msgid ""
"Godot editor was built without ray tracing support, lightmaps can't be baked."
msgstr ""
-"Editor Godot di-build tanpa dukungan ray tracing, sehingga lightmaps tidak "
+"Editor Godot di-build tanpa dukungan ray tracing, sehingga lightmap tidak "
"dapat di-bake."
#: editor/plugins/baked_lightmap_editor_plugin.cpp
@@ -5689,6 +5667,18 @@ msgid "Move CanvasItem \"%s\" to (%d, %d)"
msgstr "Pindahkan CanvasItem \"%s\" ke (%d,%d)"
#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Locked"
+msgstr "Kunci yang Dipilih"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Grouped"
+msgstr "Kelompok"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
msgid ""
"Children of containers have their anchors and margins values overridden by "
"their parent."
@@ -5790,13 +5780,12 @@ msgstr "Ubah Jangkar-jangkar"
#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp
-#, fuzzy
msgid ""
"Project Camera Override\n"
"Overrides the running project's camera with the editor viewport camera."
msgstr ""
-"Timpa Kamera Gim\n"
-"Menimpa kamera gim dengan kamera viewport editor."
+"Timpa Kamera Proyek\n"
+"Menimpa kamera proyek yang dijalankan dengan kamera viewport editor."
#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp
@@ -5805,6 +5794,9 @@ msgid ""
"No project instance running. Run the project from the editor to use this "
"feature."
msgstr ""
+"Timpa Kamera Proyek\n"
+"Tidak ada instance proyek yang berjalan. Jalankan proyek dari editor untuk "
+"menggunakan fitur ini."
#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp
@@ -5872,31 +5864,27 @@ msgstr "Mode Seleksi"
#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp
-#, fuzzy
msgid "Drag: Rotate selected node around pivot."
-msgstr "Hapus node atau transisi terpilih."
+msgstr "Seret: Putar node terpilih sekitar pivot."
#: editor/plugins/canvas_item_editor_plugin.cpp
-#, fuzzy
msgid "Alt+Drag: Move selected node."
-msgstr "Alt+Geser: Pindah"
+msgstr "Alt+Seret: Pindahkan node terpilih."
#: editor/plugins/canvas_item_editor_plugin.cpp
-#, fuzzy
msgid "V: Set selected node's pivot position."
-msgstr "Hapus node atau transisi terpilih."
+msgstr "V: Atur posisi pivot node terpilih."
#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp
-#, fuzzy
msgid "Alt+RMB: Show list of all nodes at position clicked, including locked."
msgstr ""
-"Tampilkan semua objek dalam posisi klik ke sebuah daftar\n"
-"(sama seperti Alt+Klik kanan dalam mode seleksi)."
+"Alt+Klik Kanan: Tampilkan semua daftar node di posisi yang diklik, termasuk "
+"yang dikunci."
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "RMB: Add node at position clicked."
-msgstr ""
+msgstr "Klik Kanan: Tambah node di posisi yang diklik."
#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp
@@ -6134,14 +6122,12 @@ msgid "Clear Pose"
msgstr "Hapus Pose"
#: editor/plugins/canvas_item_editor_plugin.cpp
-#, fuzzy
msgid "Add Node Here"
-msgstr "Tambahkan Node"
+msgstr "Tambahkan Node Di sini"
#: editor/plugins/canvas_item_editor_plugin.cpp
-#, fuzzy
msgid "Instance Scene Here"
-msgstr "Instansi Skena"
+msgstr "Instansi Skena Di sini"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Multiply grid step by 2"
@@ -6157,49 +6143,43 @@ msgstr "Geser Tampilan"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Zoom to 3.125%"
-msgstr ""
+msgstr "Perbesar 3.125%"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Zoom to 6.25%"
-msgstr ""
+msgstr "Perbesar 6.25%"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Zoom to 12.5%"
-msgstr ""
+msgstr "Perbesar 12.5%"
#: editor/plugins/canvas_item_editor_plugin.cpp
-#, fuzzy
msgid "Zoom to 25%"
-msgstr "Perkecil Pandangan"
+msgstr "Perbesar 25%"
#: editor/plugins/canvas_item_editor_plugin.cpp
-#, fuzzy
msgid "Zoom to 50%"
-msgstr "Perkecil Pandangan"
+msgstr "Perbesar 50%"
#: editor/plugins/canvas_item_editor_plugin.cpp
-#, fuzzy
msgid "Zoom to 100%"
-msgstr "Perkecil Pandangan"
+msgstr "Perbesar 100%"
#: editor/plugins/canvas_item_editor_plugin.cpp
-#, fuzzy
msgid "Zoom to 200%"
-msgstr "Perkecil Pandangan"
+msgstr "Perbesar 200%"
#: editor/plugins/canvas_item_editor_plugin.cpp
-#, fuzzy
msgid "Zoom to 400%"
-msgstr "Perkecil Pandangan"
+msgstr "Perbesar 400%"
#: editor/plugins/canvas_item_editor_plugin.cpp
-#, fuzzy
msgid "Zoom to 800%"
-msgstr "Perkecil Pandangan"
+msgstr "Perbesar 800%"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Zoom to 1600%"
-msgstr ""
+msgstr "Perbesar 1600%"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Add %s"
@@ -6444,9 +6424,8 @@ msgid "Couldn't create a single convex collision shape."
msgstr "Tidak dapat membuat convex collision shape tunggal."
#: editor/plugins/mesh_instance_editor_plugin.cpp
-#, fuzzy
msgid "Create Simplified Convex Shape"
-msgstr "Buat Bentuk Cembung"
+msgstr "Buat Bentuk Cembung yang Disederhanakan"
#: editor/plugins/mesh_instance_editor_plugin.cpp
msgid "Create Single Convex Shape"
@@ -6481,9 +6460,8 @@ msgid "No mesh to debug."
msgstr "Tidak ada mesh untuk diawakutu."
#: editor/plugins/mesh_instance_editor_plugin.cpp
-#, fuzzy
msgid "Mesh has no UV in layer %d."
-msgstr "Model tidak memiliki UV dalam lapisan ini"
+msgstr "Mesh tidak memiliki UV di layer %d."
#: editor/plugins/mesh_instance_editor_plugin.cpp
msgid "MeshInstance lacks a Mesh!"
@@ -6641,7 +6619,13 @@ msgid "Remove Selected Item"
msgstr "Hapus Item yang Dipilih"
#: editor/plugins/mesh_library_editor_plugin.cpp
-msgid "Import from Scene"
+#, fuzzy
+msgid "Import from Scene (Ignore Transforms)"
+msgstr "Impor dari Skena"
+
+#: editor/plugins/mesh_library_editor_plugin.cpp
+#, fuzzy
+msgid "Import from Scene (Apply Transforms)"
msgstr "Impor dari Skena"
#: editor/plugins/mesh_library_editor_plugin.cpp
@@ -6925,7 +6909,7 @@ msgstr "Cermin Pengatur Panjang"
#: editor/plugins/path_editor_plugin.cpp
msgid "Curve Point #"
-msgstr "Titik # Curve"
+msgstr "Titik Kurva #"
#: editor/plugins/path_editor_plugin.cpp
msgid "Set Curve Point Position"
@@ -7219,9 +7203,8 @@ msgid "ResourcePreloader"
msgstr "ResourcePreloader"
#: editor/plugins/room_manager_editor_plugin.cpp
-#, fuzzy
msgid "Flip Portals"
-msgstr "Balik secara Horizontal"
+msgstr "Balikkan Portal"
#: editor/plugins/room_manager_editor_plugin.cpp
#, fuzzy
@@ -7234,9 +7217,18 @@ msgid "Generate Points"
msgstr "Jumlah Titik yang Dihasilkan:"
#: editor/plugins/room_manager_editor_plugin.cpp
-#, fuzzy
msgid "Flip Portal"
-msgstr "Balik secara Horizontal"
+msgstr "Balikkan Portal"
+
+#: editor/plugins/room_manager_editor_plugin.cpp
+#, fuzzy
+msgid "Occluder Set Transform"
+msgstr "Bersihkan Transformasi"
+
+#: editor/plugins/room_manager_editor_plugin.cpp
+#, fuzzy
+msgid "Center Node"
+msgstr "Buat Node"
#: editor/plugins/root_motion_editor_plugin.cpp
msgid "AnimationTree has no path set to an AnimationPlayer"
@@ -7743,12 +7735,14 @@ msgid "Skeleton2D"
msgstr "Skeleton2D"
#: editor/plugins/skeleton_2d_editor_plugin.cpp
-msgid "Make Rest Pose (From Bones)"
-msgstr "Buat Pose Istirahat (Dari Pertulangan)"
+#, fuzzy
+msgid "Reset to Rest Pose"
+msgstr "Atur Tulang ke Pose Istirahat"
#: editor/plugins/skeleton_2d_editor_plugin.cpp
-msgid "Set Bones to Rest Pose"
-msgstr "Atur Tulang ke Pose Istirahat"
+#, fuzzy
+msgid "Overwrite Rest Pose"
+msgstr "Timpa"
#: editor/plugins/skeleton_editor_plugin.cpp
msgid "Create physical bones"
@@ -7775,6 +7769,71 @@ msgid "Perspective"
msgstr "Perspektif"
#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Top Orthogonal"
+msgstr "Ortogonal"
+
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Top Perspective"
+msgstr "Perspektif"
+
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Bottom Orthogonal"
+msgstr "Ortogonal"
+
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Bottom Perspective"
+msgstr "Perspektif"
+
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Left Orthogonal"
+msgstr "Ortogonal"
+
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Right Perspective"
+msgstr "Perspektif"
+
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Right Orthogonal"
+msgstr "Ortogonal"
+
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Front Orthogonal"
+msgstr "Ortogonal"
+
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Front Perspective"
+msgstr "Perspektif"
+
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Rear Orthogonal"
+msgstr "Ortogonal"
+
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Rear Perspective"
+msgstr "Perspektif"
+
+#. TRANSLATORS: This will be appended to the view name when Auto Orthogonal is enabled.
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid " [auto]"
+msgstr ""
+
+#. TRANSLATORS: This will be appended to the view name when Portal Occulusion is enabled.
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid " [portals active]"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
msgid "Transform Aborted."
msgstr "Transformasi Dibatalkan."
@@ -7801,20 +7860,17 @@ msgid "None"
msgstr "Tidak ada"
#: editor/plugins/spatial_editor_plugin.cpp
-#, fuzzy
msgid "Rotate"
-msgstr "Mode Putar"
+msgstr "Putar"
#. TRANSLATORS: This refers to the movement that changes the position of an object.
#: editor/plugins/spatial_editor_plugin.cpp
-#, fuzzy
msgid "Translate"
-msgstr "Translasi:"
+msgstr "Translasi"
#: editor/plugins/spatial_editor_plugin.cpp
-#, fuzzy
msgid "Scale"
-msgstr "Skala:"
+msgstr "Skala"
#: editor/plugins/spatial_editor_plugin.cpp
msgid "Scaling: "
@@ -7846,9 +7902,8 @@ msgid "Yaw:"
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
-#, fuzzy
msgid "Size:"
-msgstr "Ukuran: "
+msgstr "Ukuran:"
#: editor/plugins/spatial_editor_plugin.cpp
#, fuzzy
@@ -7893,42 +7948,22 @@ msgid "Bottom View."
msgstr "Tampilan Bawah."
#: editor/plugins/spatial_editor_plugin.cpp
-msgid "Bottom"
-msgstr "Bawah"
-
-#: editor/plugins/spatial_editor_plugin.cpp
msgid "Left View."
msgstr "Tampilan Kiri."
#: editor/plugins/spatial_editor_plugin.cpp
-msgid "Left"
-msgstr "Kiri"
-
-#: editor/plugins/spatial_editor_plugin.cpp
msgid "Right View."
msgstr "Tampilan Kanan."
#: editor/plugins/spatial_editor_plugin.cpp
-msgid "Right"
-msgstr "Kanan"
-
-#: editor/plugins/spatial_editor_plugin.cpp
msgid "Front View."
msgstr "Tampilan Depan."
#: editor/plugins/spatial_editor_plugin.cpp
-msgid "Front"
-msgstr "Depan"
-
-#: editor/plugins/spatial_editor_plugin.cpp
msgid "Rear View."
msgstr "Tampilan Belakang."
#: editor/plugins/spatial_editor_plugin.cpp
-msgid "Rear"
-msgstr "Belakang"
-
-#: editor/plugins/spatial_editor_plugin.cpp
msgid "Align Transform with View"
msgstr "Sejajarkan Transformasi dengan Tampilan"
@@ -8046,12 +8081,11 @@ msgid "View Rotation Locked"
msgstr "Rotasi Tampilan Terkunci"
#: editor/plugins/spatial_editor_plugin.cpp
-#, fuzzy
msgid ""
"To zoom further, change the camera's clipping planes (View -> Settings...)"
msgstr ""
-"Untuk memperbesar lebih jauh, ganti kamera clipping planes (Tinjau -> "
-"Setelan...)"
+"Untuk memperbesar lebih lanjut, ubah bidang kliping kamera (View -> "
+"Setting...)"
#: editor/plugins/spatial_editor_plugin.cpp
msgid ""
@@ -8206,6 +8240,11 @@ msgid "View Portal Culling"
msgstr "Pengaturan Viewport"
#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "View Occlusion Culling"
+msgstr "Pengaturan Viewport"
+
+#: editor/plugins/spatial_editor_plugin.cpp
#: modules/gridmap/grid_map_editor_plugin.cpp
msgid "Settings..."
msgstr "Pengaturan…"
@@ -8271,8 +8310,9 @@ msgid "Post"
msgstr "Sesudah"
#: editor/plugins/spatial_editor_plugin.cpp
-msgid "Nameless gizmo"
-msgstr "Gizmo tak bernama"
+#, fuzzy
+msgid "Unnamed Gizmo"
+msgstr "Proyek Tanpa Nama"
#: editor/plugins/sprite_editor_plugin.cpp
msgid "Create Mesh2D"
@@ -11391,7 +11431,7 @@ msgstr "Aksi"
#: editor/project_settings_editor.cpp
msgid "Deadzone"
-msgstr "Zona tidak aktif"
+msgstr "Zona mati"
#: editor/project_settings_editor.cpp
msgid "Device:"
@@ -12470,6 +12510,16 @@ msgstr "Atur Posisi Titik Kurva"
msgid "Set Portal Point Position"
msgstr "Atur Posisi Titik Kurva"
+#: editor/spatial_editor_gizmos.cpp
+#, fuzzy
+msgid "Set Occluder Sphere Radius"
+msgstr "Ubah Radius Bentuk Silinder"
+
+#: editor/spatial_editor_gizmos.cpp
+#, fuzzy
+msgid "Set Occluder Sphere Position"
+msgstr "Atur Posisi Kurva Dalam"
+
#: modules/csg/csg_gizmos.cpp
msgid "Change Cylinder Radius"
msgstr "Ubah Radius Silinder"
@@ -12754,6 +12804,11 @@ msgstr "Memetakan lightmap"
msgid "Class name can't be a reserved keyword"
msgstr "Nama kelas tidak boleh reserved keyword"
+#: modules/mono/csharp_script.cpp
+#, fuzzy
+msgid "Build Solution"
+msgstr "Isi Pilihan"
+
#: modules/mono/mono_gd/gd_mono_utils.cpp
msgid "End of inner exception stack trace"
msgstr "Akhir dari inner exception stack trace"
@@ -13241,73 +13296,73 @@ msgstr "Cari VisualScript"
msgid "Get %s"
msgstr "Dapatkan %s"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Package name is missing."
msgstr "Nama paket tidak ada."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Package segments must be of non-zero length."
msgstr "Segmen paket panjangnya harus tidak boleh nol."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "The character '%s' is not allowed in Android application package names."
msgstr "Karakter '%s' tidak diizinkan dalam penamaan paket aplikasi Android."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "A digit cannot be the first character in a package segment."
msgstr "Digit tidak boleh diletakkan sebagai karakter awal di segmen paket."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "The character '%s' cannot be the first character in a package segment."
msgstr "Karakter '%s' tidak bisa dijadikan karakter awal dalam segmen paket."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "The package must have at least one '.' separator."
msgstr "Package setidaknya harus memiliki sebuah pemisah '.'."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Select device from the list"
msgstr "Pilih perangkat pada daftar"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Running on %s"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
#, fuzzy
msgid "Exporting APK..."
msgstr "Mengekspor Semua"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
#, fuzzy
msgid "Uninstalling..."
msgstr "Copot Pemasangan"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
#, fuzzy
msgid "Installing to device, please wait..."
msgstr "Memuat, tunggu sejenak..."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
#, fuzzy
msgid "Could not install to device: %s"
msgstr "Tidak dapat memulai subproses!"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
#, fuzzy
msgid "Running on device..."
msgstr "Menjalankan Script Khusus..."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
#, fuzzy
msgid "Could not execute on device."
msgstr "Tidak dapat membuat folder."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Unable to find the 'apksigner' tool."
msgstr "Tak dapat menemukan perkakas 'apksigner'."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Android build template not installed in the project. Install it from the "
"Project menu."
@@ -13315,66 +13370,66 @@ msgstr ""
"Templat build Android belum terpasang dalam proyek. Pasanglah dari menu "
"Proyek."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Either Debug Keystore, Debug User AND Debug Password settings must be "
"configured OR none of them."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Debug keystore not configured in the Editor Settings nor in the preset."
msgstr ""
"Berkas debug keystore belum dikonfigurasi dalam Pengaturan Editor maupun di "
"prasetel proyek."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Either Release Keystore, Release User AND Release Password settings must be "
"configured OR none of them."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Release keystore incorrectly configured in the export preset."
msgstr "Berkas keystore rilis belum dikonfigurasi di prasetel ekspor."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "A valid Android SDK path is required in Editor Settings."
msgstr "Lokasi Android SDK yang valid dibutuhkan di Pengaturan Editor."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Invalid Android SDK path in Editor Settings."
msgstr "Lokasi Android SDK tidak valid di Pengaturan Editor."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Missing 'platform-tools' directory!"
msgstr "Direktori 'platform-tools' tidak ada!"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Unable to find Android SDK platform-tools' adb command."
msgstr "Tidak dapat menemukan perintah adb di Android SDK platform-tools."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Please check in the Android SDK directory specified in Editor Settings."
msgstr ""
"Silakan cek direktori Android SDK yang diisikan dalam Pengaturan Editor."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Missing 'build-tools' directory!"
msgstr "Direktori 'build-tools' tidak ditemukan!"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Unable to find Android SDK build-tools' apksigner command."
msgstr "Tidak dapat menemukan apksigner dalam Android SDK build-tools."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Invalid public key for APK expansion."
msgstr "Kunci Publik untuk ekspansi APK tidak valid."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Invalid package name:"
msgstr "Nama paket tidak valid:"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Invalid \"GodotPaymentV3\" module included in the \"android/modules\" "
"project setting (changed in Godot 3.2.2).\n"
@@ -13382,38 +13437,23 @@ msgstr ""
"Modul \"GodotPaymentV3\" tidak valid yang dimasukkan dalam pengaturan proyek "
"\"android/modules\" (diubah di Godot 3.2.2)\n"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "\"Use Custom Build\" must be enabled to use the plugins."
msgstr "\"Gunakan Build Custom\" harus diaktifkan untuk menggunakan plugin."
-#: platform/android/export/export.cpp
-msgid ""
-"\"Degrees Of Freedom\" is only valid when \"Xr Mode\" is \"Oculus Mobile VR"
-"\"."
-msgstr ""
-"\"Derajat Kebebasan\" hanya valid ketika \"Mode Xr\" bernilai \"Occulus "
-"Mobile VR\"."
-
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"\"Hand Tracking\" is only valid when \"Xr Mode\" is \"Oculus Mobile VR\"."
msgstr ""
"\"Pelacakan Tangan\" hanya valid ketika \"Mode Xr\" bernilai \"Oculus Mobile "
"VR\"."
-#: platform/android/export/export.cpp
-msgid ""
-"\"Focus Awareness\" is only valid when \"Xr Mode\" is \"Oculus Mobile VR\"."
-msgstr ""
-"\"Focus Awareness\" hanya valid ketika \"Mode Xr\" bernilai \"Oculus Mobile "
-"VR\"."
-
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "\"Export AAB\" is only valid when \"Use Custom Build\" is enabled."
msgstr ""
"\"Expor AAB\" hanya bisa valid ketika \"Gunakan Build Custom\" diaktifkan."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"'apksigner' could not be found.\n"
"Please check the command is available in the Android SDK build-tools "
@@ -13421,57 +13461,57 @@ msgid ""
"The resulting %s is unsigned."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Signing debug %s..."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
#, fuzzy
msgid "Signing release %s..."
msgstr ""
"Memindai Berkas,\n"
"Silakan Tunggu..."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
#, fuzzy
msgid "Could not find keystore, unable to export."
msgstr "Tidak dapat membuka templat untuk ekspor:"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "'apksigner' returned with error #%d"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
#, fuzzy
msgid "Verifying %s..."
msgstr "Menambahkan %s..."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "'apksigner' verification of %s failed."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
#, fuzzy
msgid "Exporting for Android"
msgstr "Mengekspor Semua"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Invalid filename! Android App Bundle requires the *.aab extension."
msgstr "Nama berkas tak valid! Android App Bundle memerlukan ekstensi *.aab ."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "APK Expansion not compatible with Android App Bundle."
msgstr "Ekspansi APK tidak kompatibel dengan Android App Bundle."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Invalid filename! Android APK requires the *.apk extension."
msgstr "Nama berkas tidak valid! APK Android memerlukan ekstensi *.apk ."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Unsupported export format!\n"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Trying to build from a custom built template, but no version info for it "
"exists. Please reinstall from the 'Project' menu."
@@ -13479,7 +13519,7 @@ msgstr ""
"Mencoba untuk membangun dari templat build khusus, tapi tidak ada informasi "
"versinya. Silakan pasang ulang dari menu 'Proyek'."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Android build version mismatch:\n"
" Template installed: %s\n"
@@ -13491,26 +13531,25 @@ msgstr ""
" Versi Godot: %s\n"
"Silakan pasang ulang templat build Android dari menu 'Project'."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Unable to overwrite res://android/build/res/*.xml files with project name"
msgstr ""
-#: platform/android/export/export.cpp
-#, fuzzy
+#: platform/android/export/export_plugin.cpp
msgid "Could not export project files to gradle project\n"
-msgstr "Tidak dapat menyunting project.godot dalam lokasi proyek."
+msgstr "Tidak dapat menyunting proyek gradle dalam lokasi proyek\n"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
#, fuzzy
msgid "Could not write expansion package file!"
msgstr "Tidak dapat menulis berkas:"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Building Android Project (gradle)"
msgstr "Membangun Proyek Android (gradle)"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Building of Android project failed, check output for the error.\n"
"Alternatively visit docs.godotengine.org for Android build documentation."
@@ -13518,11 +13557,11 @@ msgstr ""
"Pembangunan proyek Android gagal, periksa output untuk galatnya.\n"
"Atau kunjungi docs.godotengine.org untuk dokumentasi build Android."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Moving output"
msgstr "Memindahkan keluaran"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Unable to copy and rename export file, check gradle project directory for "
"outputs."
@@ -13530,24 +13569,24 @@ msgstr ""
"Tidak dapat menyalin dan mengubah nama berkas ekspor, cek direktori proyek "
"gradle untuk hasilnya."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
#, fuzzy
msgid "Package not found: %s"
msgstr "Animasi tidak ditemukan: '%s'"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
#, fuzzy
msgid "Creating APK..."
msgstr "Membuat kontur..."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
#, fuzzy
msgid ""
"Could not find template APK to export:\n"
"%s"
msgstr "Tidak dapat membuka templat untuk ekspor:"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Missing libraries in the export template for the selected architectures: "
"%s.\n"
@@ -13555,21 +13594,21 @@ msgid ""
"architectures in the export preset."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
#, fuzzy
msgid "Adding files..."
msgstr "Menambahkan %s..."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
#, fuzzy
msgid "Could not export project files"
msgstr "Tidak dapat menulis berkas:"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Aligning APK..."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Could not unzip temporary unaligned APK."
msgstr ""
@@ -14115,6 +14154,14 @@ msgstr ""
"NavigationMeshInstance harus menjadi child atau grandchild untuk sebuah node "
"Navigation. Ini hanya menyediakan data navigasi."
+#: scene/3d/occluder.cpp
+msgid "No shape is set."
+msgstr ""
+
+#: scene/3d/occluder.cpp
+msgid "Only uniform scales are supported."
+msgstr ""
+
#: scene/3d/particles.cpp
msgid ""
"GPU-based particles are not supported by the GLES2 video driver.\n"
@@ -14445,6 +14492,14 @@ msgstr "Harus menggunakan ekstensi yang sah."
msgid "Enable grid minimap."
msgstr "Aktifkan peta mini grid."
+#: scene/gui/nine_patch_rect.cpp
+msgid ""
+"The Tile and Tile Fit options for Axis Stretch properties are only effective "
+"when using the GLES3 rendering backend.\n"
+"The GLES2 backend is currently in use, so these modes will act like Stretch "
+"instead."
+msgstr ""
+
#: scene/gui/popup.cpp
msgid ""
"Popups will hide by default unless you call popup() or any of the popup*() "
@@ -14501,6 +14556,10 @@ msgstr ""
msgid "Viewport size must be greater than 0 to render anything."
msgstr "Ukuran viewport harus lebih besar dari 0 untuk me-render apa pun."
+#: scene/resources/occluder_shape.cpp
+msgid "OccluderShapeSphere Set Spheres"
+msgstr ""
+
#: scene/resources/visual_shader_nodes.cpp
msgid ""
"The sampler port is connected but not used. Consider changing the source to "
@@ -14554,6 +14613,41 @@ msgstr "Pemberian nilai untuk uniform."
msgid "Constants cannot be modified."
msgstr "Konstanta tidak dapat dimodifikasi."
+#~ msgid "Make Rest Pose (From Bones)"
+#~ msgstr "Buat Pose Istirahat (Dari Pertulangan)"
+
+#~ msgid "Bottom"
+#~ msgstr "Bawah"
+
+#~ msgid "Left"
+#~ msgstr "Kiri"
+
+#~ msgid "Right"
+#~ msgstr "Kanan"
+
+#~ msgid "Front"
+#~ msgstr "Depan"
+
+#~ msgid "Rear"
+#~ msgstr "Belakang"
+
+#~ msgid "Nameless gizmo"
+#~ msgstr "Gizmo tak bernama"
+
+#~ msgid ""
+#~ "\"Degrees Of Freedom\" is only valid when \"Xr Mode\" is \"Oculus Mobile "
+#~ "VR\"."
+#~ msgstr ""
+#~ "\"Derajat Kebebasan\" hanya valid ketika \"Mode Xr\" bernilai \"Occulus "
+#~ "Mobile VR\"."
+
+#~ msgid ""
+#~ "\"Focus Awareness\" is only valid when \"Xr Mode\" is \"Oculus Mobile VR"
+#~ "\"."
+#~ msgstr ""
+#~ "\"Focus Awareness\" hanya valid ketika \"Mode Xr\" bernilai \"Oculus "
+#~ "Mobile VR\"."
+
#~ msgid "Package Contents:"
#~ msgstr "Isi Paket:"
diff --git a/editor/translations/is.po b/editor/translations/is.po
index e536b0a8f6..33fee00267 100644
--- a/editor/translations/is.po
+++ b/editor/translations/is.po
@@ -1029,7 +1029,7 @@ msgstr ""
msgid "Dependencies"
msgstr ""
-#: editor/dependency_editor.cpp
+#: editor/dependency_editor.cpp editor/editor_resource_picker.cpp
msgid "Resource"
msgstr ""
@@ -1660,13 +1660,13 @@ msgid ""
"Enabled'."
msgstr ""
-#: editor/editor_export.cpp platform/android/export/export.cpp
+#: editor/editor_export.cpp platform/android/export/export_plugin.cpp
#: platform/iphone/export/export.cpp platform/javascript/export/export.cpp
#: platform/osx/export/export.cpp platform/uwp/export/export.cpp
msgid "Custom debug template not found."
msgstr ""
-#: editor/editor_export.cpp platform/android/export/export.cpp
+#: editor/editor_export.cpp platform/android/export/export_plugin.cpp
#: platform/iphone/export/export.cpp platform/javascript/export/export.cpp
#: platform/osx/export/export.cpp platform/uwp/export/export.cpp
msgid "Custom release template not found."
@@ -2041,7 +2041,7 @@ msgstr ""
msgid "(Re)Importing Assets"
msgstr ""
-#: editor/editor_help.cpp editor/plugins/spatial_editor_plugin.cpp
+#: editor/editor_help.cpp
msgid "Top"
msgstr ""
@@ -2520,6 +2520,30 @@ msgid "Current scene not saved. Open anyway?"
msgstr ""
#: editor/editor_node.cpp
+msgid "Can't undo while mouse buttons are pressed."
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "Nothing to undo."
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "Undo: %s"
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "Can't redo while mouse buttons are pressed."
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "Nothing to redo."
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "Redo: %s"
+msgstr ""
+
+#: editor/editor_node.cpp
msgid "Can't reload a scene that was never saved."
msgstr ""
@@ -3148,6 +3172,11 @@ msgid "Merge With Existing"
msgstr ""
#: editor/editor_node.cpp
+#, fuzzy
+msgid "Apply MeshInstance Transforms"
+msgstr "Breyta umbreytingu"
+
+#: editor/editor_node.cpp
msgid "Open & Run a Script"
msgstr ""
@@ -3390,6 +3419,10 @@ msgid ""
"property (%s)."
msgstr ""
+#: editor/editor_resource_picker.cpp
+msgid "Quick Load"
+msgstr ""
+
#: editor/editor_resource_picker.cpp editor/property_editor.cpp
msgid "Make Unique"
msgstr ""
@@ -5454,6 +5487,17 @@ msgid "Move CanvasItem \"%s\" to (%d, %d)"
msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Locked"
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Grouped"
+msgstr "Fjarlægja val"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
msgid ""
"Children of containers have their anchors and margins values overridden by "
"their parent."
@@ -6364,7 +6408,11 @@ msgid "Remove Selected Item"
msgstr ""
#: editor/plugins/mesh_library_editor_plugin.cpp
-msgid "Import from Scene"
+msgid "Import from Scene (Ignore Transforms)"
+msgstr ""
+
+#: editor/plugins/mesh_library_editor_plugin.cpp
+msgid "Import from Scene (Apply Transforms)"
msgstr ""
#: editor/plugins/mesh_library_editor_plugin.cpp
@@ -6953,6 +7001,16 @@ msgstr ""
msgid "Flip Portal"
msgstr ""
+#: editor/plugins/room_manager_editor_plugin.cpp
+#, fuzzy
+msgid "Occluder Set Transform"
+msgstr "Breyta umbreytingu"
+
+#: editor/plugins/room_manager_editor_plugin.cpp
+#, fuzzy
+msgid "Center Node"
+msgstr "Anim DELETE-lyklar"
+
#: editor/plugins/root_motion_editor_plugin.cpp
msgid "AnimationTree has no path set to an AnimationPlayer"
msgstr ""
@@ -7448,11 +7506,11 @@ msgid "Skeleton2D"
msgstr ""
#: editor/plugins/skeleton_2d_editor_plugin.cpp
-msgid "Make Rest Pose (From Bones)"
+msgid "Reset to Rest Pose"
msgstr ""
#: editor/plugins/skeleton_2d_editor_plugin.cpp
-msgid "Set Bones to Rest Pose"
+msgid "Overwrite Rest Pose"
msgstr ""
#: editor/plugins/skeleton_editor_plugin.cpp
@@ -7480,6 +7538,60 @@ msgid "Perspective"
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Top Orthogonal"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Top Perspective"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Bottom Orthogonal"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Bottom Perspective"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Left Orthogonal"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Right Perspective"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Right Orthogonal"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Front Orthogonal"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Front Perspective"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Rear Orthogonal"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Rear Perspective"
+msgstr ""
+
+#. TRANSLATORS: This will be appended to the view name when Auto Orthogonal is enabled.
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid " [auto]"
+msgstr ""
+
+#. TRANSLATORS: This will be appended to the view name when Portal Occulusion is enabled.
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid " [portals active]"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
msgid "Transform Aborted."
msgstr ""
@@ -7588,42 +7700,22 @@ msgid "Bottom View."
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
-msgid "Bottom"
-msgstr ""
-
-#: editor/plugins/spatial_editor_plugin.cpp
msgid "Left View."
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
-msgid "Left"
-msgstr ""
-
-#: editor/plugins/spatial_editor_plugin.cpp
msgid "Right View."
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
-msgid "Right"
-msgstr ""
-
-#: editor/plugins/spatial_editor_plugin.cpp
msgid "Front View."
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
-msgid "Front"
-msgstr ""
-
-#: editor/plugins/spatial_editor_plugin.cpp
msgid "Rear View."
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
-msgid "Rear"
-msgstr ""
-
-#: editor/plugins/spatial_editor_plugin.cpp
msgid "Align Transform with View"
msgstr ""
@@ -7885,6 +7977,11 @@ msgid "View Portal Culling"
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "View Occlusion Culling"
+msgstr "Breyta Viðbót"
+
+#: editor/plugins/spatial_editor_plugin.cpp
#: modules/gridmap/grid_map_editor_plugin.cpp
msgid "Settings..."
msgstr ""
@@ -7950,7 +8047,7 @@ msgid "Post"
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
-msgid "Nameless gizmo"
+msgid "Unnamed Gizmo"
msgstr ""
#: editor/plugins/sprite_editor_plugin.cpp
@@ -11926,6 +12023,14 @@ msgstr ""
msgid "Set Portal Point Position"
msgstr ""
+#: editor/spatial_editor_gizmos.cpp
+msgid "Set Occluder Sphere Radius"
+msgstr ""
+
+#: editor/spatial_editor_gizmos.cpp
+msgid "Set Occluder Sphere Position"
+msgstr ""
+
#: modules/csg/csg_gizmos.cpp
msgid "Change Cylinder Radius"
msgstr ""
@@ -12212,6 +12317,11 @@ msgstr ""
msgid "Class name can't be a reserved keyword"
msgstr ""
+#: modules/mono/csharp_script.cpp
+#, fuzzy
+msgid "Build Solution"
+msgstr "Allt úrvalið"
+
#: modules/mono/mono_gd/gd_mono_utils.cpp
msgid "End of inner exception stack trace"
msgstr ""
@@ -12691,160 +12801,149 @@ msgstr ""
msgid "Get %s"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Package name is missing."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Package segments must be of non-zero length."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "The character '%s' is not allowed in Android application package names."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "A digit cannot be the first character in a package segment."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "The character '%s' cannot be the first character in a package segment."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "The package must have at least one '.' separator."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Select device from the list"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Running on %s"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
#, fuzzy
msgid "Exporting APK..."
msgstr "Breyta..."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Uninstalling..."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Installing to device, please wait..."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Could not install to device: %s"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Running on device..."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Could not execute on device."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Unable to find the 'apksigner' tool."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Android build template not installed in the project. Install it from the "
"Project menu."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Either Debug Keystore, Debug User AND Debug Password settings must be "
"configured OR none of them."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Debug keystore not configured in the Editor Settings nor in the preset."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Either Release Keystore, Release User AND Release Password settings must be "
"configured OR none of them."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Release keystore incorrectly configured in the export preset."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "A valid Android SDK path is required in Editor Settings."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Invalid Android SDK path in Editor Settings."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Missing 'platform-tools' directory!"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Unable to find Android SDK platform-tools' adb command."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Please check in the Android SDK directory specified in Editor Settings."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Missing 'build-tools' directory!"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Unable to find Android SDK build-tools' apksigner command."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Invalid public key for APK expansion."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Invalid package name:"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Invalid \"GodotPaymentV3\" module included in the \"android/modules\" "
"project setting (changed in Godot 3.2.2).\n"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "\"Use Custom Build\" must be enabled to use the plugins."
msgstr ""
-#: platform/android/export/export.cpp
-msgid ""
-"\"Degrees Of Freedom\" is only valid when \"Xr Mode\" is \"Oculus Mobile VR"
-"\"."
-msgstr ""
-
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"\"Hand Tracking\" is only valid when \"Xr Mode\" is \"Oculus Mobile VR\"."
msgstr ""
-#: platform/android/export/export.cpp
-msgid ""
-"\"Focus Awareness\" is only valid when \"Xr Mode\" is \"Oculus Mobile VR\"."
-msgstr ""
-
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "\"Export AAB\" is only valid when \"Use Custom Build\" is enabled."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"'apksigner' could not be found.\n"
"Please check the command is available in the Android SDK build-tools "
@@ -12852,57 +12951,57 @@ msgid ""
"The resulting %s is unsigned."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Signing debug %s..."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Signing release %s..."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Could not find keystore, unable to export."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "'apksigner' returned with error #%d"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Verifying %s..."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "'apksigner' verification of %s failed."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Exporting for Android"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Invalid filename! Android App Bundle requires the *.aab extension."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "APK Expansion not compatible with Android App Bundle."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Invalid filename! Android APK requires the *.apk extension."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Unsupported export format!\n"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Trying to build from a custom built template, but no version info for it "
"exists. Please reinstall from the 'Project' menu."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Android build version mismatch:\n"
" Template installed: %s\n"
@@ -12910,54 +13009,54 @@ msgid ""
"Please reinstall Android build template from 'Project' menu."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Unable to overwrite res://android/build/res/*.xml files with project name"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Could not export project files to gradle project\n"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Could not write expansion package file!"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Building Android Project (gradle)"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Building of Android project failed, check output for the error.\n"
"Alternatively visit docs.godotengine.org for Android build documentation."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Moving output"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Unable to copy and rename export file, check gradle project directory for "
"outputs."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Package not found: %s"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Creating APK..."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Could not find template APK to export:\n"
"%s"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Missing libraries in the export template for the selected architectures: "
"%s.\n"
@@ -12965,19 +13064,19 @@ msgid ""
"architectures in the export preset."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Adding files..."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Could not export project files"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Aligning APK..."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Could not unzip temporary unaligned APK."
msgstr ""
@@ -13427,6 +13526,14 @@ msgid ""
"It only provides navigation data."
msgstr ""
+#: scene/3d/occluder.cpp
+msgid "No shape is set."
+msgstr ""
+
+#: scene/3d/occluder.cpp
+msgid "Only uniform scales are supported."
+msgstr ""
+
#: scene/3d/particles.cpp
msgid ""
"GPU-based particles are not supported by the GLES2 video driver.\n"
@@ -13716,6 +13823,14 @@ msgstr ""
msgid "Enable grid minimap."
msgstr ""
+#: scene/gui/nine_patch_rect.cpp
+msgid ""
+"The Tile and Tile Fit options for Axis Stretch properties are only effective "
+"when using the GLES3 rendering backend.\n"
+"The GLES2 backend is currently in use, so these modes will act like Stretch "
+"instead."
+msgstr ""
+
#: scene/gui/popup.cpp
msgid ""
"Popups will hide by default unless you call popup() or any of the popup*() "
@@ -13756,6 +13871,10 @@ msgstr ""
msgid "Viewport size must be greater than 0 to render anything."
msgstr ""
+#: scene/resources/occluder_shape.cpp
+msgid "OccluderShapeSphere Set Spheres"
+msgstr ""
+
#: scene/resources/visual_shader_nodes.cpp
msgid ""
"The sampler port is connected but not used. Consider changing the source to "
diff --git a/editor/translations/it.po b/editor/translations/it.po
index c3aa84d4b6..0b25d41fa0 100644
--- a/editor/translations/it.po
+++ b/editor/translations/it.po
@@ -64,8 +64,8 @@ msgid ""
msgstr ""
"Project-Id-Version: Godot Engine editor\n"
"POT-Creation-Date: \n"
-"PO-Revision-Date: 2021-08-10 21:39+0000\n"
-"Last-Translator: Mirko <miknsop@gmail.com>\n"
+"PO-Revision-Date: 2021-08-22 22:46+0000\n"
+"Last-Translator: Riteo Siuga <riteo@posteo.net>\n"
"Language-Team: Italian <https://hosted.weblate.org/projects/godot-engine/"
"godot/it/>\n"
"Language: it\n"
@@ -73,7 +73,7 @@ msgstr ""
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=n != 1;\n"
-"X-Generator: Weblate 4.8-dev\n"
+"X-Generator: Weblate 4.8.1-dev\n"
#: core/math/expression.cpp modules/gdscript/gdscript_functions.cpp
#: modules/visual_script/visual_script_builtin_funcs.cpp
@@ -96,7 +96,7 @@ msgstr "Input %i non valido (assente) nell'espressione"
#: core/math/expression.cpp
msgid "self can't be used because instance is null (not passed)"
-msgstr "self non può essere utilizzato perché l'istanza è nulla (non passata)"
+msgstr "self non può essere usato perché l'istanza è nulla (non passata)"
#: core/math/expression.cpp
msgid "Invalid operands to operator %s, %s and %s."
@@ -421,15 +421,13 @@ msgstr "Inserisci un'animazione"
#. TRANSLATORS: This describes the target of new animation track, will be inserted into another string.
#: editor/animation_track_editor.cpp
-#, fuzzy
msgid "node '%s'"
-msgstr "Impossibile aprire '%s'."
+msgstr "nodo \"%s\""
#. TRANSLATORS: This describes the target of new animation track, will be inserted into another string.
#: editor/animation_track_editor.cpp
-#, fuzzy
msgid "animation"
-msgstr "Animazione"
+msgstr "animazione"
#: editor/animation_track_editor.cpp
msgid "AnimationPlayer can't animate itself, only other players."
@@ -437,9 +435,8 @@ msgstr "AnimationPlayer non può animare se stesso, solo altri nodi."
#. TRANSLATORS: This describes the target of new animation track, will be inserted into another string.
#: editor/animation_track_editor.cpp
-#, fuzzy
msgid "property '%s'"
-msgstr "Non esiste nessuna proprietà \"%s\"."
+msgstr "proprietà \"%s\""
#: editor/animation_track_editor.cpp
msgid "Anim Create & Insert"
@@ -657,7 +654,7 @@ msgstr "Vai al passo precedente"
#: editor/animation_track_editor.cpp
#, fuzzy
msgid "Apply Reset"
-msgstr "Reset"
+msgstr "Applica reset"
#: editor/animation_track_editor.cpp
msgid "Optimize Animation"
@@ -678,7 +675,7 @@ msgstr "Usa le curve di Bézier"
#: editor/animation_track_editor.cpp
#, fuzzy
msgid "Create RESET Track(s)"
-msgstr "Incolla delle tracce"
+msgstr "Crea delle tracce di reimpostazione"
#: editor/animation_track_editor.cpp
msgid "Anim. Optimizer"
@@ -908,7 +905,6 @@ msgid "Deferred"
msgstr "Differita"
#: editor/connections_dialog.cpp
-#, fuzzy
msgid ""
"Defers the signal, storing it in a queue and only firing it at idle time."
msgstr ""
@@ -1004,7 +1000,6 @@ msgid "Edit..."
msgstr "Modifica..."
#: editor/connections_dialog.cpp
-#, fuzzy
msgid "Go to Method"
msgstr "Vai al metodo"
@@ -1026,7 +1021,7 @@ msgstr "Nessun risultato per \"%s\"."
#: editor/create_dialog.cpp editor/property_selector.cpp
msgid "No description available for %s."
-msgstr ""
+msgstr "Nessuna descrizione disponibile per %s."
#: editor/create_dialog.cpp editor/editor_file_dialog.cpp
#: editor/filesystem_dock.cpp
@@ -1086,7 +1081,7 @@ msgstr ""
msgid "Dependencies"
msgstr "Dipendenze"
-#: editor/dependency_editor.cpp
+#: editor/dependency_editor.cpp editor/editor_resource_picker.cpp
msgid "Resource"
msgstr "Risorsa"
@@ -1126,17 +1121,16 @@ msgid "Owners Of:"
msgstr "Proprietari di:"
#: editor/dependency_editor.cpp
-#, fuzzy
msgid ""
"Remove the selected files from the project? (Cannot be undone.)\n"
"Depending on your filesystem configuration, the files will either be moved "
"to the system trash or deleted permanently."
msgstr ""
"Rimuovere i file selezionati dal progetto? (non annullabile)\n"
-"Sarà possibile ripristinarli accedendo al cestino di sistema."
+"A seconda della propria configurazione di sistema, essi saranno spostati nel "
+"cestino di sistema oppure eliminati permanentemente."
#: editor/dependency_editor.cpp
-#, fuzzy
msgid ""
"The files being removed are required by other resources in order for them to "
"work.\n"
@@ -1147,7 +1141,8 @@ msgstr ""
"I file che stanno per essere rimossi sono richiesti per il funzionamento di "
"altre risorse.\n"
"Rimuoverli comunque? (non annullabile)\n"
-"Sarà possibile ripristinarli accedendo al cestino di sistema."
+"A seconda della propria configurazione di sistema, essi saranno spostati nel "
+"cestino di sistema oppure eliminati permanentemente."
#: editor/dependency_editor.cpp
msgid "Cannot remove:"
@@ -1317,41 +1312,38 @@ msgid "Licenses"
msgstr "Licenze"
#: editor/editor_asset_installer.cpp
-#, fuzzy
msgid "Error opening asset file for \"%s\" (not in ZIP format)."
-msgstr "Errore nell'apertura del file package (non è in formato ZIP)."
+msgstr ""
+"Errore nell'apertura del file del contenuto per \"%s\" (non è in formato "
+"ZIP)."
#: editor/editor_asset_installer.cpp
-#, fuzzy
msgid "%s (already exists)"
msgstr "%s (già esistente)"
#: editor/editor_asset_installer.cpp
msgid "Contents of asset \"%s\" - %d file(s) conflict with your project:"
-msgstr ""
+msgstr "File del contenuto \"%s\" - %d file sono in conflitto col progetto:"
#: editor/editor_asset_installer.cpp
msgid "Contents of asset \"%s\" - No files conflict with your project:"
-msgstr ""
+msgstr "File del contenuto \"%s\" - Nessun file è in conflitto col progetto:"
#: editor/editor_asset_installer.cpp
msgid "Uncompressing Assets"
-msgstr "Estrazione asset"
+msgstr "Estraendo i contenuti"
#: editor/editor_asset_installer.cpp
-#, fuzzy
msgid "The following files failed extraction from asset \"%s\":"
-msgstr "Impossibile estrarre i seguenti file dal pacchetto:"
+msgstr "L'estrazione dei seguenti file dal contenuto \"%s\" è fallita:"
#: editor/editor_asset_installer.cpp
-#, fuzzy
msgid "(and %s more files)"
-msgstr "E %s altri file."
+msgstr "(e %s altri file)"
#: editor/editor_asset_installer.cpp
-#, fuzzy
msgid "Asset \"%s\" installed successfully!"
-msgstr "Pacchetto installato con successo!"
+msgstr "Contenuto \"%s\" installato con successo!"
#: editor/editor_asset_installer.cpp
#: editor/plugins/asset_library_editor_plugin.cpp
@@ -1363,9 +1355,8 @@ msgid "Install"
msgstr "Installa"
#: editor/editor_asset_installer.cpp
-#, fuzzy
msgid "Asset Installer"
-msgstr "Installatore di pacchetti"
+msgstr "Installatore di contenuti"
#: editor/editor_audio_buses.cpp
msgid "Speakers"
@@ -1610,7 +1601,7 @@ msgstr "File inesistente."
#: editor/editor_autoload_settings.cpp
msgid "%s is an invalid path. Not in resource path (res://)."
-msgstr ""
+msgstr "%s non è una strada valida. Essa non punta nelle risorse (res://)."
#: editor/editor_autoload_settings.cpp
msgid "Add AutoLoad"
@@ -1761,13 +1752,13 @@ msgstr ""
"Attiva \"Import Pvrtc\" nelle impostazioni del progetto, oppure disattiva "
"\"Driver Fallback Enabled\"."
-#: editor/editor_export.cpp platform/android/export/export.cpp
+#: editor/editor_export.cpp platform/android/export/export_plugin.cpp
#: platform/iphone/export/export.cpp platform/javascript/export/export.cpp
#: platform/osx/export/export.cpp platform/uwp/export/export.cpp
msgid "Custom debug template not found."
msgstr "Modello di sviluppo personalizzato non trovato."
-#: editor/editor_export.cpp platform/android/export/export.cpp
+#: editor/editor_export.cpp platform/android/export/export_plugin.cpp
#: platform/iphone/export/export.cpp platform/javascript/export/export.cpp
#: platform/osx/export/export.cpp platform/uwp/export/export.cpp
msgid "Custom release template not found."
@@ -1792,9 +1783,8 @@ msgid "Script Editor"
msgstr "Editor degli script"
#: editor/editor_feature_profile.cpp
-#, fuzzy
msgid "Asset Library"
-msgstr "Libreria degli asset"
+msgstr "Libreria dei contenuti"
#: editor/editor_feature_profile.cpp
msgid "Scene Tree Editing"
@@ -1814,35 +1804,40 @@ msgstr "Pannello d'importazione"
#: editor/editor_feature_profile.cpp
msgid "Allows to view and edit 3D scenes."
-msgstr ""
+msgstr "Permette di visuallizzare e modificare le scene 3D."
#: editor/editor_feature_profile.cpp
msgid "Allows to edit scripts using the integrated script editor."
-msgstr ""
+msgstr "Permette di modificare gli script usando l'editor di script integrato."
#: editor/editor_feature_profile.cpp
msgid "Provides built-in access to the Asset Library."
-msgstr ""
+msgstr "Offre un accesso alla libreria dei contenuti integrato."
#: editor/editor_feature_profile.cpp
msgid "Allows editing the node hierarchy in the Scene dock."
-msgstr ""
+msgstr "Permette di modificare la gerarchia dei nodi nel pannello della scena."
#: editor/editor_feature_profile.cpp
msgid ""
"Allows to work with signals and groups of the node selected in the Scene "
"dock."
msgstr ""
+"Permette di lavorare coi segnali e i gruppi del nodo selezionato nel "
+"pannello della scena."
#: editor/editor_feature_profile.cpp
msgid "Allows to browse the local file system via a dedicated dock."
msgstr ""
+"Permette di esplorare il file system locale tramite un pannello dedicato."
#: editor/editor_feature_profile.cpp
msgid ""
"Allows to configure import settings for individual assets. Requires the "
"FileSystem dock to function."
msgstr ""
+"Permette di configurare le impostazioni d'importazione di contenuti "
+"individuali. Richiede il pannello del file system per funzionare."
#: editor/editor_feature_profile.cpp
#, fuzzy
@@ -1851,11 +1846,13 @@ msgstr "(Corrente)"
#: editor/editor_feature_profile.cpp
msgid "(none)"
-msgstr ""
+msgstr "(nulla)"
#: editor/editor_feature_profile.cpp
msgid "Remove currently selected profile, '%s'? Cannot be undone."
msgstr ""
+"Rimuovere il profilo '%s' attualmente selezionato? Ciò non potrà essere "
+"annullato."
#: editor/editor_feature_profile.cpp
#, fuzzy
@@ -1967,6 +1964,8 @@ msgstr "Opzioni Texture"
#: editor/editor_feature_profile.cpp
msgid "Create or import a profile to edit available classes and properties."
msgstr ""
+"Creare o importare un profilo per modificare le classi e le proprietà "
+"disponibili."
#: editor/editor_feature_profile.cpp
msgid "New profile name:"
@@ -2153,11 +2152,10 @@ msgstr ""
"importazione annullata"
#: editor/editor_file_system.cpp
-#, fuzzy
msgid "(Re)Importing Assets"
-msgstr "Reimportazione degli asset"
+msgstr "Reimportando i contenuti"
-#: editor/editor_help.cpp editor/plugins/spatial_editor_plugin.cpp
+#: editor/editor_help.cpp
msgid "Top"
msgstr "In cima"
@@ -2396,6 +2394,9 @@ msgid ""
"Update Continuously is enabled, which can increase power usage. Click to "
"disable it."
msgstr ""
+"Gira quando la finestra dell'editor si aggiorna.\n"
+"Aggiorna continuamente è attivo, il che può aumentare il consumo di "
+"corrente. Cliccare per disabilitarlo."
#: editor/editor_node.cpp
msgid "Spins when the editor window redraws."
@@ -2636,6 +2637,8 @@ msgid ""
"The current scene has no root node, but %d modified external resource(s) "
"were saved anyway."
msgstr ""
+"La scena attuale non ha un nodo radice, ma %d risorse esterne modificate "
+"sono state salvate comunque."
#: editor/editor_node.cpp
#, fuzzy
@@ -2673,6 +2676,32 @@ msgid "Current scene not saved. Open anyway?"
msgstr "Scena attuale non salvata. Aprire comunque?"
#: editor/editor_node.cpp
+msgid "Can't undo while mouse buttons are pressed."
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "Nothing to undo."
+msgstr ""
+
+#: editor/editor_node.cpp
+#, fuzzy
+msgid "Undo: %s"
+msgstr "Annulla"
+
+#: editor/editor_node.cpp
+msgid "Can't redo while mouse buttons are pressed."
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "Nothing to redo."
+msgstr ""
+
+#: editor/editor_node.cpp
+#, fuzzy
+msgid "Redo: %s"
+msgstr "Rifai"
+
+#: editor/editor_node.cpp
msgid "Can't reload a scene that was never saved."
msgstr "Impossibile ricaricare una scena che non è mai stata salvata."
@@ -3081,7 +3110,7 @@ msgstr ""
"esporterà un eseguibile senza i dati del progetto.\n"
"Il filesystem verrà provvisto dall'editor attraverso la rete.\n"
"Su Android, esso userà il cavo USB per ottenere delle prestazioni migliori. "
-"Questa impostazione rende più veloci i progetti con risorse pesanti."
+"Questa impostazione rende più veloci i progetti con contenuti pesanti."
#: editor/editor_node.cpp
msgid "Visible Collision Shapes"
@@ -3202,7 +3231,7 @@ msgstr "Apri la documentazione"
#: editor/editor_node.cpp
msgid "Questions & Answers"
-msgstr ""
+msgstr "Domande e risposte"
#: editor/editor_node.cpp
msgid "Report a Bug"
@@ -3380,6 +3409,11 @@ msgid "Merge With Existing"
msgstr "Unisci con una esistente"
#: editor/editor_node.cpp
+#, fuzzy
+msgid "Apply MeshInstance Transforms"
+msgstr "Cambia la trasformazione di un'animazione"
+
+#: editor/editor_node.cpp
msgid "Open & Run a Script"
msgstr "Apri ed esegui uno script"
@@ -3431,9 +3465,8 @@ msgid "Open Script Editor"
msgstr "Apri l'editor degli script"
#: editor/editor_node.cpp editor/project_manager.cpp
-#, fuzzy
msgid "Open Asset Library"
-msgstr "Apri la libreria degli Asset"
+msgstr "Apri la libreria dei contenuti"
#: editor/editor_node.cpp
msgid "Open the next Editor"
@@ -3526,7 +3559,7 @@ msgstr "Inclusivo"
#: editor/editor_profiler.cpp
msgid "Self"
-msgstr "Se stesso"
+msgstr "Proprio"
#: editor/editor_profiler.cpp
msgid ""
@@ -3537,6 +3570,12 @@ msgid ""
"functions called by that function.\n"
"Use this to find individual functions to optimize."
msgstr ""
+"Inclusivo: include il tempo speso dalle altre funzioni chiamate da questa.\n"
+"Utilizzare questa opzione per trovare dei colli di bottiglia.\n"
+"\n"
+"Proprio: conta solo il tempo speso dalla funzione stessa, non in altre "
+"chiamate da essa.\n"
+"Utilizzare questa opzione per trovare delle funzioni singole da ottimizzare."
#: editor/editor_profiler.cpp
msgid "Frame #:"
@@ -3641,6 +3680,10 @@ msgstr ""
"La risorsa selezionata (%s) non corrisponde ad alcun tipo previsto per "
"questa proprietà (%s)."
+#: editor/editor_resource_picker.cpp
+msgid "Quick Load"
+msgstr ""
+
#: editor/editor_resource_picker.cpp editor/property_editor.cpp
#, fuzzy
msgid "Make Unique"
@@ -3738,11 +3781,11 @@ msgstr "Importa Da Nodo:"
#: editor/export_template_manager.cpp
msgid "Open the folder containing these templates."
-msgstr ""
+msgstr "Apre la cartella che contiene questi modelli."
#: editor/export_template_manager.cpp
msgid "Uninstall these templates."
-msgstr ""
+msgstr "Disinstalla questi modelli."
#: editor/export_template_manager.cpp
#, fuzzy
@@ -3756,7 +3799,7 @@ msgstr "Recupero dei mirror, attendi..."
#: editor/export_template_manager.cpp
msgid "Starting the download..."
-msgstr ""
+msgstr "Avviando lo scaricamento..."
#: editor/export_template_manager.cpp
msgid "Error requesting URL:"
@@ -3799,7 +3842,7 @@ msgstr "Richiesta fallita."
#: editor/export_template_manager.cpp
msgid "Download complete; extracting templates..."
-msgstr ""
+msgstr "Scaricamento completato; estraendo i modelli..."
#: editor/export_template_manager.cpp
msgid "Cannot remove temporary file:"
@@ -3826,7 +3869,7 @@ msgstr ""
#: editor/export_template_manager.cpp
msgid "Best available mirror"
-msgstr ""
+msgstr "Miglior mirror disponibile"
#: editor/export_template_manager.cpp
msgid ""
@@ -3925,11 +3968,11 @@ msgstr "Versione Corrente:"
#: editor/export_template_manager.cpp
msgid "Export templates are missing. Download them or install from a file."
-msgstr ""
+msgstr "Modelli d'eportazione mancanti. Scaricarli o installarli da un file."
#: editor/export_template_manager.cpp
msgid "Export templates are installed and ready to be used."
-msgstr ""
+msgstr "I modelli d'esportazione sono installati e pronti all'uso."
#: editor/export_template_manager.cpp
#, fuzzy
@@ -3939,6 +3982,7 @@ msgstr "Apri file"
#: editor/export_template_manager.cpp
msgid "Open the folder containing installed templates for the current version."
msgstr ""
+"Apre la cartella contenente i modelli installati per la versione corrente."
#: editor/export_template_manager.cpp
msgid "Uninstall"
@@ -3966,13 +4010,15 @@ msgstr "Copia Errore"
#: editor/export_template_manager.cpp
msgid "Download and Install"
-msgstr ""
+msgstr "Scarica e installa"
#: editor/export_template_manager.cpp
msgid ""
"Download and install templates for the current version from the best "
"possible mirror."
msgstr ""
+"Scarica e installa i modelli per la versione corrente dal miglior mirror "
+"possibile."
#: editor/export_template_manager.cpp
msgid "Official export templates aren't available for development builds."
@@ -4023,6 +4069,8 @@ msgid ""
"The templates will continue to download.\n"
"You may experience a short editor freeze when they finish."
msgstr ""
+"I modelli continueranno a scaricare.\n"
+"L'editor potrebbe bloccarsi brevemente a scaricamento finito."
#: editor/filesystem_dock.cpp
msgid "Favorites"
@@ -4176,19 +4224,19 @@ msgstr "Cerca file"
#: editor/filesystem_dock.cpp
msgid "Sort by Name (Ascending)"
-msgstr ""
+msgstr "Ordina per nome (crescente)"
#: editor/filesystem_dock.cpp
msgid "Sort by Name (Descending)"
-msgstr ""
+msgstr "Ordina per nome (decrescente)"
#: editor/filesystem_dock.cpp
msgid "Sort by Type (Ascending)"
-msgstr ""
+msgstr "Ordina per tipo (crescente)"
#: editor/filesystem_dock.cpp
msgid "Sort by Type (Descending)"
-msgstr ""
+msgstr "Ordina per tipo (decrescente)"
#: editor/filesystem_dock.cpp
#, fuzzy
@@ -4210,7 +4258,7 @@ msgstr "Rinomina..."
#: editor/filesystem_dock.cpp
msgid "Focus the search box"
-msgstr ""
+msgstr "Seleziona la barra di ricerca"
#: editor/filesystem_dock.cpp
msgid "Previous Folder/File"
@@ -4511,8 +4559,8 @@ msgstr "Cambiare il tipo di un file importato richiede il riavvio dell'editor."
msgid ""
"WARNING: Assets exist that use this resource, they may stop loading properly."
msgstr ""
-"ATTENZIONE: Esistono degli elementi che utilizzano questa risorsa, "
-"potrebbero non essere più caricati correttamente."
+"ATTENZIONE: Esistono dei contenuti che utilizzano questa risorsa, potrebbero "
+"non essere più caricati correttamente."
#: editor/inspector_dock.cpp
msgid "Failed to load resource."
@@ -5495,7 +5543,7 @@ msgstr "Check has SHA-256 fallito"
#: editor/plugins/asset_library_editor_plugin.cpp
msgid "Asset Download Error:"
-msgstr "Errore di Download Asset:"
+msgstr "Errore di scaricamento del contenuto:"
#: editor/plugins/asset_library_editor_plugin.cpp
msgid "Downloading (%s / %s)..."
@@ -5531,7 +5579,7 @@ msgstr "Errore durante il download"
#: editor/plugins/asset_library_editor_plugin.cpp
msgid "Download for this asset is already in progress!"
-msgstr "Il download per questo asset è già in corso!"
+msgstr "Lo scaricamento di questo contenuto è già in corso!"
#: editor/plugins/asset_library_editor_plugin.cpp
msgid "Recently Updated"
@@ -5579,11 +5627,11 @@ msgstr "Tutti"
#: editor/plugins/asset_library_editor_plugin.cpp
msgid "Search templates, projects, and demos"
-msgstr ""
+msgstr "Cerca tra modelli, progetti e demo"
#: editor/plugins/asset_library_editor_plugin.cpp
msgid "Search assets (excluding templates, projects, and demos)"
-msgstr ""
+msgstr "Cerca tra i contenuti (escludendo modelli, progetti e demo)"
#: editor/plugins/asset_library_editor_plugin.cpp
msgid "Import..."
@@ -5623,11 +5671,11 @@ msgstr "Caricamento…"
#: editor/plugins/asset_library_editor_plugin.cpp
msgid "Assets ZIP File"
-msgstr "ZIP File degli Asset"
+msgstr "File ZIP dei contenuti"
#: editor/plugins/audio_stream_editor_plugin.cpp
msgid "Audio Preview Play/Pause"
-msgstr ""
+msgstr "Avvia/Pausa l'anteprima audio"
#: editor/plugins/baked_lightmap_editor_plugin.cpp
msgid ""
@@ -5791,6 +5839,18 @@ msgid "Move CanvasItem \"%s\" to (%d, %d)"
msgstr "Sposta CanvasItem \"%s\" a (%d, %d)"
#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Locked"
+msgstr "Blocca selezionato"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Grouped"
+msgstr "Gruppo"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
msgid ""
"Children of containers have their anchors and margins values overridden by "
"their parent."
@@ -5907,6 +5967,9 @@ msgid ""
"No project instance running. Run the project from the editor to use this "
"feature."
msgstr ""
+"Sovrascrivi la camera del progetto\n"
+"Nessuna istanza del progetto avviata. Eseguire il progetto dall'editor per "
+"utilizzare questa funzionalità."
#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp
@@ -5998,7 +6061,7 @@ msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "RMB: Add node at position clicked."
-msgstr ""
+msgstr "Click destro: aggiungi un nodo sulla posizione cliccata."
#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp
@@ -6276,15 +6339,15 @@ msgstr "Trasla Visuale"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Zoom to 3.125%"
-msgstr ""
+msgstr "Ingrandisci al 3.125%"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Zoom to 6.25%"
-msgstr ""
+msgstr "Ingrandisci al 6.25%"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Zoom to 12.5%"
-msgstr ""
+msgstr "Ingrandisci al 12.5%"
#: editor/plugins/canvas_item_editor_plugin.cpp
#, fuzzy
@@ -6318,7 +6381,7 @@ msgstr "Rimpicciolisci"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Zoom to 1600%"
-msgstr ""
+msgstr "Ingrandisci al 1600%"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Add %s"
@@ -6447,6 +6510,7 @@ msgid "Flat 0"
msgstr "Flat 0"
#: editor/plugins/curve_editor_plugin.cpp
+#, fuzzy
msgid "Flat 1"
msgstr "Flat 1"
@@ -6686,6 +6750,9 @@ msgid ""
"This is similar to single collision shape, but can result in a simpler "
"geometry in some cases, at the cost of accuracy."
msgstr ""
+"Crea una forma di collisione convessa semplificata.\n"
+"Essa è simile a una forma di collisione singola ma in alcuni casi può "
+"risultare in una geometria più semplice al costo di risultare inaccurata."
#: editor/plugins/mesh_instance_editor_plugin.cpp
msgid "Create Multiple Convex Collision Siblings"
@@ -6767,7 +6834,13 @@ msgid "Remove Selected Item"
msgstr "Rimuovi Elementi Selezionati"
#: editor/plugins/mesh_library_editor_plugin.cpp
-msgid "Import from Scene"
+#, fuzzy
+msgid "Import from Scene (Ignore Transforms)"
+msgstr "Importa da Scena"
+
+#: editor/plugins/mesh_library_editor_plugin.cpp
+#, fuzzy
+msgid "Import from Scene (Apply Transforms)"
msgstr "Importa da Scena"
#: editor/plugins/mesh_library_editor_plugin.cpp
@@ -7367,6 +7440,16 @@ msgstr "Conteggio Punti Generati:"
msgid "Flip Portal"
msgstr "Ribalta orizzontalmente"
+#: editor/plugins/room_manager_editor_plugin.cpp
+#, fuzzy
+msgid "Occluder Set Transform"
+msgstr "Azzera la trasformazione"
+
+#: editor/plugins/room_manager_editor_plugin.cpp
+#, fuzzy
+msgid "Center Node"
+msgstr "Crea Nodo"
+
#: editor/plugins/root_motion_editor_plugin.cpp
msgid "AnimationTree has no path set to an AnimationPlayer"
msgstr "AnimationTree non ha nessun percorso impostato a un AnimationPlayer"
@@ -7874,12 +7957,14 @@ msgid "Skeleton2D"
msgstr "Skeleton2D"
#: editor/plugins/skeleton_2d_editor_plugin.cpp
-msgid "Make Rest Pose (From Bones)"
-msgstr "Crea Posizione di Riposo (Dalle Ossa)"
+#, fuzzy
+msgid "Reset to Rest Pose"
+msgstr "Imposta Ossa in Posizione di Riposo"
#: editor/plugins/skeleton_2d_editor_plugin.cpp
-msgid "Set Bones to Rest Pose"
-msgstr "Imposta Ossa in Posizione di Riposo"
+#, fuzzy
+msgid "Overwrite Rest Pose"
+msgstr "Sovrascrivi Scena esistente"
#: editor/plugins/skeleton_editor_plugin.cpp
msgid "Create physical bones"
@@ -7906,6 +7991,71 @@ msgid "Perspective"
msgstr "Prospettiva"
#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Top Orthogonal"
+msgstr "Ortogonale"
+
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Top Perspective"
+msgstr "Prospettiva"
+
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Bottom Orthogonal"
+msgstr "Ortogonale"
+
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Bottom Perspective"
+msgstr "Prospettiva"
+
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Left Orthogonal"
+msgstr "Ortogonale"
+
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Right Perspective"
+msgstr "Prospettiva"
+
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Right Orthogonal"
+msgstr "Ortogonale"
+
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Front Orthogonal"
+msgstr "Ortogonale"
+
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Front Perspective"
+msgstr "Prospettiva"
+
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Rear Orthogonal"
+msgstr "Ortogonale"
+
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Rear Perspective"
+msgstr "Prospettiva"
+
+#. TRANSLATORS: This will be appended to the view name when Auto Orthogonal is enabled.
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid " [auto]"
+msgstr ""
+
+#. TRANSLATORS: This will be appended to the view name when Portal Occulusion is enabled.
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid " [portals active]"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
msgid "Transform Aborted."
msgstr "Transform Abortito."
@@ -7973,7 +8123,7 @@ msgstr "Inclinazione"
#: editor/plugins/spatial_editor_plugin.cpp
msgid "Yaw:"
-msgstr ""
+msgstr "Imbardata:"
#: editor/plugins/spatial_editor_plugin.cpp
#, fuzzy
@@ -8012,7 +8162,7 @@ msgstr "Vertici"
#: editor/plugins/spatial_editor_plugin.cpp
msgid "FPS: %d (%s ms)"
-msgstr ""
+msgstr "FPS: %d (%s ms)"
#: editor/plugins/spatial_editor_plugin.cpp
msgid "Top View."
@@ -8023,42 +8173,22 @@ msgid "Bottom View."
msgstr "Vista dal basso."
#: editor/plugins/spatial_editor_plugin.cpp
-msgid "Bottom"
-msgstr "Basso"
-
-#: editor/plugins/spatial_editor_plugin.cpp
msgid "Left View."
msgstr "Vista da sinistra."
#: editor/plugins/spatial_editor_plugin.cpp
-msgid "Left"
-msgstr "Sinistra"
-
-#: editor/plugins/spatial_editor_plugin.cpp
msgid "Right View."
msgstr "Vista da destra."
#: editor/plugins/spatial_editor_plugin.cpp
-msgid "Right"
-msgstr "Destra"
-
-#: editor/plugins/spatial_editor_plugin.cpp
msgid "Front View."
msgstr "Vista frontale."
#: editor/plugins/spatial_editor_plugin.cpp
-msgid "Front"
-msgstr "Fronte"
-
-#: editor/plugins/spatial_editor_plugin.cpp
msgid "Rear View."
msgstr "Vista dal retro."
#: editor/plugins/spatial_editor_plugin.cpp
-msgid "Rear"
-msgstr "Retro"
-
-#: editor/plugins/spatial_editor_plugin.cpp
msgid "Align Transform with View"
msgstr "Allinea la trasformazione con la vista"
@@ -8340,6 +8470,11 @@ msgid "View Portal Culling"
msgstr "Impostazioni Viewport"
#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "View Occlusion Culling"
+msgstr "Impostazioni Viewport"
+
+#: editor/plugins/spatial_editor_plugin.cpp
#: modules/gridmap/grid_map_editor_plugin.cpp
msgid "Settings..."
msgstr "Impostazioni…"
@@ -8409,8 +8544,9 @@ msgid "Post"
msgstr "Post"
#: editor/plugins/spatial_editor_plugin.cpp
-msgid "Nameless gizmo"
-msgstr "Gizmo senza nome"
+#, fuzzy
+msgid "Unnamed Gizmo"
+msgstr "Progetto Senza Nome"
#: editor/plugins/sprite_editor_plugin.cpp
msgid "Create Mesh2D"
@@ -8686,7 +8822,7 @@ msgstr "Stile Box"
#: editor/plugins/theme_editor_plugin.cpp
msgid "{num} color(s)"
-msgstr ""
+msgstr "{num} colori"
#: editor/plugins/theme_editor_plugin.cpp
#, fuzzy
@@ -8704,8 +8840,9 @@ msgid "No constants found."
msgstr "Costante di colore."
#: editor/plugins/theme_editor_plugin.cpp
+#, fuzzy
msgid "{num} font(s)"
-msgstr ""
+msgstr "{num} caratteri"
#: editor/plugins/theme_editor_plugin.cpp
#, fuzzy
@@ -8714,7 +8851,7 @@ msgstr "Non trovato!"
#: editor/plugins/theme_editor_plugin.cpp
msgid "{num} icon(s)"
-msgstr ""
+msgstr "{num} icone"
#: editor/plugins/theme_editor_plugin.cpp
#, fuzzy
@@ -8723,7 +8860,7 @@ msgstr "Non trovato!"
#: editor/plugins/theme_editor_plugin.cpp
msgid "{num} stylebox(es)"
-msgstr ""
+msgstr "{num} stylebox"
#: editor/plugins/theme_editor_plugin.cpp
#, fuzzy
@@ -8732,7 +8869,7 @@ msgstr "Nessuna sottorisorsa trovata."
#: editor/plugins/theme_editor_plugin.cpp
msgid "{num} currently selected"
-msgstr ""
+msgstr "{num} selezionati"
#: editor/plugins/theme_editor_plugin.cpp
msgid "Nothing was selected for the import."
@@ -11134,8 +11271,8 @@ msgid ""
"Can't run project: Assets need to be imported.\n"
"Please edit the project to trigger the initial import."
msgstr ""
-"Impossibile eseguire il progetto: le Risorse devono essere importate.\n"
-"Per favore modifica il progetto per azionare l'importo iniziale."
+"Impossibile eseguire il progetto: i contenuti devono essere importati.\n"
+"Per favore modifica il progetto per avviare l'importazione iniziale."
#: editor/project_manager.cpp
msgid "Are you sure to run %d projects at once?"
@@ -11241,9 +11378,8 @@ msgid "About"
msgstr "Informazioni su Godot"
#: editor/project_manager.cpp
-#, fuzzy
msgid "Asset Library Projects"
-msgstr "Libreria degli asset"
+msgstr "Progetti della libreria dei contenuti"
#: editor/project_manager.cpp
msgid "Restart Now"
@@ -11266,8 +11402,8 @@ msgid ""
"You currently don't have any projects.\n"
"Would you like to explore official example projects in the Asset Library?"
msgstr ""
-"Al momento non hai nessun progetto.\n"
-"Ti piacerebbe esplorare gli esempi ufficiali nella libreria degli Asset?"
+"Al momento non esiste alcun progetto.\n"
+"Esplorare i progetti di esempio ufficiali nella libreria dei contenuti?"
#: editor/project_manager.cpp
#, fuzzy
@@ -12630,6 +12766,16 @@ msgstr "Imposta Posizione Punto Curva"
msgid "Set Portal Point Position"
msgstr "Imposta Posizione Punto Curva"
+#: editor/spatial_editor_gizmos.cpp
+#, fuzzy
+msgid "Set Occluder Sphere Radius"
+msgstr "Modifica Raggio di Forma del Cilindro"
+
+#: editor/spatial_editor_gizmos.cpp
+#, fuzzy
+msgid "Set Occluder Sphere Position"
+msgstr "Imposta Curva In Posizione"
+
#: modules/csg/csg_gizmos.cpp
msgid "Change Cylinder Radius"
msgstr "Modifica Raggio del Cilindro"
@@ -12916,6 +13062,11 @@ msgstr "Stampando le lightmap"
msgid "Class name can't be a reserved keyword"
msgstr "Il nome della classe non può essere una parola chiave riservata"
+#: modules/mono/csharp_script.cpp
+#, fuzzy
+msgid "Build Solution"
+msgstr "Riempi Selezione"
+
#: modules/mono/mono_gd/gd_mono_utils.cpp
msgid "End of inner exception stack trace"
msgstr "Fine dell'analisi dell’eccezione interna dello stack"
@@ -13402,78 +13553,78 @@ msgstr "Ricerca VisualScript"
msgid "Get %s"
msgstr "Ottieni %s"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Package name is missing."
msgstr "Il nome del pacchetto è mancante."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Package segments must be of non-zero length."
msgstr "I segmenti del pacchetto devono essere di lunghezza diversa da zero."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "The character '%s' is not allowed in Android application package names."
msgstr ""
"Il carattere \"%s\" non è consentito nei nomi dei pacchetti delle "
"applicazioni Android."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "A digit cannot be the first character in a package segment."
msgstr ""
"Una cifra non può essere il primo carattere di un segmento di un pacchetto."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "The character '%s' cannot be the first character in a package segment."
msgstr ""
"Il carattere \"%s\" non può essere il primo carattere di un segmento di "
"pacchetto."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "The package must have at least one '.' separator."
msgstr "Il pacchetto deve avere almeno un \".\" separatore."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Select device from the list"
msgstr "Seleziona il dispositivo dall'elenco"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Running on %s"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
#, fuzzy
msgid "Exporting APK..."
msgstr "Esportando Tutto"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
#, fuzzy
msgid "Uninstalling..."
msgstr "Disinstalla"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
#, fuzzy
msgid "Installing to device, please wait..."
msgstr "Caricamento, per favore attendere..."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
#, fuzzy
msgid "Could not install to device: %s"
msgstr "Impossibile istanziare la scena!"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
#, fuzzy
msgid "Running on device..."
msgstr "Eseguendo Script Personalizzato..."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
#, fuzzy
msgid "Could not execute on device."
msgstr "Impossibile creare la cartella."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Unable to find the 'apksigner' tool."
msgstr "Impossibile trovare lo strumento \"apksigner\"."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Android build template not installed in the project. Install it from the "
"Project menu."
@@ -13481,72 +13632,72 @@ msgstr ""
"Il template build di Android non è installato in questo progetto. Installalo "
"dal menu Progetto."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Either Debug Keystore, Debug User AND Debug Password settings must be "
"configured OR none of them."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Debug keystore not configured in the Editor Settings nor in the preset."
msgstr ""
"Debug keystore non configurato nelle Impostazioni dell'Editor né nel preset."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Either Release Keystore, Release User AND Release Password settings must be "
"configured OR none of them."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Release keystore incorrectly configured in the export preset."
msgstr ""
"Release keystore non configurato correttamente nel preset di esportazione."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "A valid Android SDK path is required in Editor Settings."
msgstr ""
"Un percorso valido per il SDK Android è richiesto nelle Impostazioni Editor."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Invalid Android SDK path in Editor Settings."
msgstr "Un percorso invalido per il SDK Android nelle Impostazioni Editor."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Missing 'platform-tools' directory!"
msgstr "Cartella \"platform-tools\" inesistente!"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Unable to find Android SDK platform-tools' adb command."
msgstr ""
"Impossibile trovare il comando adb negli strumenti di piattaforma del SDK "
"Android."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Please check in the Android SDK directory specified in Editor Settings."
msgstr ""
"Per favore, controlla la directory specificata del SDK Android nelle "
"Impostazioni Editor."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Missing 'build-tools' directory!"
msgstr "Cartella \"build-tools\" inesistente!"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Unable to find Android SDK build-tools' apksigner command."
msgstr ""
"Impossibile trovare il comando apksigner negli strumenti di piattaforma del "
"SDK Android."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Invalid public key for APK expansion."
msgstr "Chiave pubblica non valida per l'espansione dell'APK."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Invalid package name:"
msgstr "Nome del pacchetto non valido:"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Invalid \"GodotPaymentV3\" module included in the \"android/modules\" "
"project setting (changed in Godot 3.2.2).\n"
@@ -13554,38 +13705,23 @@ msgstr ""
"Modulo \"GodotPaymentV3\" non valido incluso nelle impostazione del progetto "
"\"android/moduli\" (modificato in Godot 3.2.2).\n"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "\"Use Custom Build\" must be enabled to use the plugins."
msgstr "Per utilizzare i plugin \"Use Custom Build\" deve essere abilitato."
-#: platform/android/export/export.cpp
-msgid ""
-"\"Degrees Of Freedom\" is only valid when \"Xr Mode\" is \"Oculus Mobile VR"
-"\"."
-msgstr ""
-"\"Degrees Of Freedom\" è valido solamente quando \"Xr Mode\" è \"Oculus "
-"Mobile VR\"."
-
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"\"Hand Tracking\" is only valid when \"Xr Mode\" is \"Oculus Mobile VR\"."
msgstr ""
"\"Hand Tracking\" è valido solo quando \"Xr Mode\" è impostato su \"Oculus "
"Mobile VR\"."
-#: platform/android/export/export.cpp
-msgid ""
-"\"Focus Awareness\" is only valid when \"Xr Mode\" is \"Oculus Mobile VR\"."
-msgstr ""
-"\"Focus Awareness\" è valido solo quando \"Xr Mode\" è impostato su \"Oculus "
-"Mobile VR\"."
-
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "\"Export AAB\" is only valid when \"Use Custom Build\" is enabled."
msgstr ""
"\"Export AAB\" è valido soltanto quanto \"Use Custom Build\" è abilitato."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"'apksigner' could not be found.\n"
"Please check the command is available in the Android SDK build-tools "
@@ -13593,57 +13729,57 @@ msgid ""
"The resulting %s is unsigned."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Signing debug %s..."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
#, fuzzy
msgid "Signing release %s..."
msgstr ""
"Scansione File,\n"
"Si prega di attendere..."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
#, fuzzy
msgid "Could not find keystore, unable to export."
msgstr "Impossibile aprire il template per l'esportazione:"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "'apksigner' returned with error #%d"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
#, fuzzy
msgid "Verifying %s..."
msgstr "Aggiungendo %s..."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "'apksigner' verification of %s failed."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
#, fuzzy
msgid "Exporting for Android"
msgstr "Esportazione per Android"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Invalid filename! Android App Bundle requires the *.aab extension."
msgstr "Nome file invalido! Il Bundle Android App richiede l'estensione *.aab."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "APK Expansion not compatible with Android App Bundle."
msgstr "L'estensione APK non è compatibile con il Bundle Android App."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Invalid filename! Android APK requires the *.apk extension."
msgstr "Nome file invalido! L'APK Android richiede l'estensione *.apk."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Unsupported export format!\n"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Trying to build from a custom built template, but no version info for it "
"exists. Please reinstall from the 'Project' menu."
@@ -13652,7 +13788,7 @@ msgstr ""
"informazione sulla sua versione esiste. Perfavore, reinstallalo dal menu "
"\"Progetto\"."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Android build version mismatch:\n"
" Template installed: %s\n"
@@ -13664,26 +13800,26 @@ msgstr ""
" Versione Godot: %s\n"
"Perfavore, reinstalla il build template di Android dal menu \"Progetto\"."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Unable to overwrite res://android/build/res/*.xml files with project name"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
#, fuzzy
msgid "Could not export project files to gradle project\n"
msgstr "Impossibile creare project.godot nel percorso di progetto."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
#, fuzzy
msgid "Could not write expansion package file!"
msgstr "Impossibile scrivere il file:"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Building Android Project (gradle)"
msgstr "Compilazione di un progetto Android (gradle)"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Building of Android project failed, check output for the error.\n"
"Alternatively visit docs.godotengine.org for Android build documentation."
@@ -13693,11 +13829,11 @@ msgstr ""
"In alternativa, visita docs.godotengine.org per la documentazione della "
"build Android."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Moving output"
msgstr "Spostando l'output"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Unable to copy and rename export file, check gradle project directory for "
"outputs."
@@ -13705,24 +13841,24 @@ msgstr ""
"Impossibile copiare e rinominare il file di esportazione, controlla la "
"directory del progetto gradle per gli output."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
#, fuzzy
msgid "Package not found: %s"
msgstr "Animazione non trovata: \"%s\""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
#, fuzzy
msgid "Creating APK..."
msgstr "Creazione contorni..."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
#, fuzzy
msgid ""
"Could not find template APK to export:\n"
"%s"
msgstr "Impossibile aprire il template per l'esportazione:"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Missing libraries in the export template for the selected architectures: "
"%s.\n"
@@ -13730,21 +13866,21 @@ msgid ""
"architectures in the export preset."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
#, fuzzy
msgid "Adding files..."
msgstr "Aggiungendo %s..."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
#, fuzzy
msgid "Could not export project files"
msgstr "Impossibile scrivere il file:"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Aligning APK..."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Could not unzip temporary unaligned APK."
msgstr ""
@@ -14308,6 +14444,14 @@ msgstr ""
"NavigationMeshInstance deve essere un figlio o nipote di un nodo Navigation. "
"Fornisce solamente dati per la navigazione."
+#: scene/3d/occluder.cpp
+msgid "No shape is set."
+msgstr ""
+
+#: scene/3d/occluder.cpp
+msgid "Only uniform scales are supported."
+msgstr ""
+
#: scene/3d/particles.cpp
msgid ""
"GPU-based particles are not supported by the GLES2 video driver.\n"
@@ -14633,6 +14777,14 @@ msgstr "È necessaria un'estensione valida."
msgid "Enable grid minimap."
msgstr "Abilita mini-mappa griglia."
+#: scene/gui/nine_patch_rect.cpp
+msgid ""
+"The Tile and Tile Fit options for Axis Stretch properties are only effective "
+"when using the GLES3 rendering backend.\n"
+"The GLES2 backend is currently in use, so these modes will act like Stretch "
+"instead."
+msgstr ""
+
#: scene/gui/popup.cpp
msgid ""
"Popups will hide by default unless you call popup() or any of the popup*() "
@@ -14688,6 +14840,10 @@ msgstr ""
"La dimensione del Viewport deve essere maggiore di 0 affinché qualcosa sia "
"visibile."
+#: scene/resources/occluder_shape.cpp
+msgid "OccluderShapeSphere Set Spheres"
+msgstr ""
+
#: scene/resources/visual_shader_nodes.cpp
msgid ""
"The sampler port is connected but not used. Consider changing the source to "
@@ -14742,6 +14898,41 @@ msgstr "Assegnazione all'uniforme."
msgid "Constants cannot be modified."
msgstr "Le constanti non possono essere modificate."
+#~ msgid "Make Rest Pose (From Bones)"
+#~ msgstr "Crea Posizione di Riposo (Dalle Ossa)"
+
+#~ msgid "Bottom"
+#~ msgstr "Basso"
+
+#~ msgid "Left"
+#~ msgstr "Sinistra"
+
+#~ msgid "Right"
+#~ msgstr "Destra"
+
+#~ msgid "Front"
+#~ msgstr "Fronte"
+
+#~ msgid "Rear"
+#~ msgstr "Retro"
+
+#~ msgid "Nameless gizmo"
+#~ msgstr "Gizmo senza nome"
+
+#~ msgid ""
+#~ "\"Degrees Of Freedom\" is only valid when \"Xr Mode\" is \"Oculus Mobile "
+#~ "VR\"."
+#~ msgstr ""
+#~ "\"Degrees Of Freedom\" è valido solamente quando \"Xr Mode\" è \"Oculus "
+#~ "Mobile VR\"."
+
+#~ msgid ""
+#~ "\"Focus Awareness\" is only valid when \"Xr Mode\" is \"Oculus Mobile VR"
+#~ "\"."
+#~ msgstr ""
+#~ "\"Focus Awareness\" è valido solo quando \"Xr Mode\" è impostato su "
+#~ "\"Oculus Mobile VR\"."
+
#~ msgid "Package Contents:"
#~ msgstr "Contenuti del pacchetto:"
@@ -16709,9 +16900,6 @@ msgstr "Le constanti non possono essere modificate."
#~ msgid "Images:"
#~ msgstr "Immagini:"
-#~ msgid "Group"
-#~ msgstr "Gruppo"
-
#~ msgid "Sample Conversion Mode: (.wav files):"
#~ msgstr "Modalità Conversione Sample (file .wav):"
@@ -16845,9 +17033,6 @@ msgstr "Le constanti non possono essere modificate."
#~ "le opzioni di esportazione successivamente. Gli atlas possono essere "
#~ "anche generati in esportazione."
-#~ msgid "Overwrite Existing Scene"
-#~ msgstr "Sovrascrivi Scena esistente"
-
#~ msgid "Overwrite Existing, Keep Materials"
#~ msgstr "Sovrascrivi Esistente, Mantieni Materiali"
diff --git a/editor/translations/ja.po b/editor/translations/ja.po
index 3ee6d0b49d..20cd8fc7da 100644
--- a/editor/translations/ja.po
+++ b/editor/translations/ja.po
@@ -33,12 +33,13 @@
# sporeball <sporeballdev@gmail.com>, 2020.
# BinotaLIU <me@binota.org>, 2020, 2021.
# 都築 æœ¬æˆ <motonari728@gmail.com>, 2021.
+# Nanjakkun <nanjakkun@gmail.com>, 2021.
msgid ""
msgstr ""
"Project-Id-Version: Godot Engine editor\n"
"POT-Creation-Date: \n"
-"PO-Revision-Date: 2021-08-12 14:48+0000\n"
-"Last-Translator: sugusan <sugusan.development@gmail.com>\n"
+"PO-Revision-Date: 2021-09-11 20:05+0000\n"
+"Last-Translator: nitenook <admin@alterbaum.net>\n"
"Language-Team: Japanese <https://hosted.weblate.org/projects/godot-engine/"
"godot/ja/>\n"
"Language: ja\n"
@@ -46,7 +47,7 @@ msgstr ""
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=1; plural=0;\n"
-"X-Generator: Weblate 4.8-dev\n"
+"X-Generator: Weblate 4.9-dev\n"
#: core/math/expression.cpp modules/gdscript/gdscript_functions.cpp
#: modules/visual_script/visual_script_builtin_funcs.cpp
@@ -55,7 +56,7 @@ msgstr "convert() ã®å¼•æ•°ã®åž‹ãŒç„¡åйã§ã™ã€‚TYPE_* 定数を使用ã—ã¦ã
#: core/math/expression.cpp modules/gdscript/gdscript_functions.cpp
msgid "Expected a string of length 1 (a character)."
-msgstr "é•·ã•㌠1 ã®æ–‡å­—列 (文字) ãŒå¿…è¦ã§ã™ã€‚"
+msgstr "é•·ã•ãŒ1ã®æ–‡å­—列 (文字) ãŒå¿…è¦ã§ã™ã€‚"
#: core/math/expression.cpp modules/gdscript/gdscript_functions.cpp
#: modules/mono/glue/gd_glue.cpp
@@ -394,13 +395,11 @@ msgstr "アニメーション挿入"
#. TRANSLATORS: This describes the target of new animation track, will be inserted into another string.
#: editor/animation_track_editor.cpp
-#, fuzzy
msgid "node '%s'"
-msgstr "'..'を処ç†ã§ãã¾ã›ã‚“"
+msgstr "ノード '%s'"
#. TRANSLATORS: This describes the target of new animation track, will be inserted into another string.
#: editor/animation_track_editor.cpp
-#, fuzzy
msgid "animation"
msgstr "アニメーション"
@@ -412,9 +411,8 @@ msgstr ""
#. TRANSLATORS: This describes the target of new animation track, will be inserted into another string.
#: editor/animation_track_editor.cpp
-#, fuzzy
msgid "property '%s'"
-msgstr "プロパティ '%s' ã¯å­˜åœ¨ã—ã¾ã›ã‚“。"
+msgstr "プロパティ '%s'"
#: editor/animation_track_editor.cpp
msgid "Anim Create & Insert"
@@ -459,7 +457,7 @@ msgstr ""
#: editor/animation_track_editor.cpp
msgid "Not possible to add a new track without a root"
-msgstr "root ãŒç„¡ã‘ã‚Œã°æ–°è¦ãƒˆãƒ©ãƒƒã‚¯ã¯è¿½åŠ ã§ãã¾ã›ã‚“"
+msgstr "ルートãªã—ã§æ–°è¦ãƒˆãƒ©ãƒƒã‚¯ã¯è¿½åŠ ã§ãã¾ã›ã‚“"
#: editor/animation_track_editor.cpp
msgid "Invalid track for Bezier (no suitable sub-properties)"
@@ -504,7 +502,7 @@ msgstr "アニメーションキーã®ç§»å‹•"
#: editor/animation_track_editor.cpp
#: modules/visual_script/visual_script_editor.cpp
msgid "Clipboard is empty!"
-msgstr "クリップボードã¯ç©ºã§ã™!"
+msgstr "クリップボードã¯ç©ºã§ã™ï¼"
#: editor/animation_track_editor.cpp
msgid "Paste Tracks"
@@ -625,7 +623,6 @@ msgid "Go to Previous Step"
msgstr "å‰ã®ã‚¹ãƒ†ãƒƒãƒ—ã¸"
#: editor/animation_track_editor.cpp
-#, fuzzy
msgid "Apply Reset"
msgstr "リセット"
@@ -684,7 +681,7 @@ msgstr "ã™ã¹ã¦ã®ã‚¢ãƒ‹ãƒ¡ãƒ¼ã‚·ãƒ§ãƒ³ã‚’クリーンアップ"
#: editor/animation_track_editor.cpp
msgid "Clean-Up Animation(s) (NO UNDO!)"
-msgstr "アニメーションをクリーンアップ (å…ƒã«æˆ»ã›ã¾ã›ã‚“!)"
+msgstr "アニメーションをクリーンアップ (å…ƒã«æˆ»ã›ã¾ã›ã‚“ï¼)"
#: editor/animation_track_editor.cpp
msgid "Clean-Up"
@@ -971,9 +968,8 @@ msgid "Edit..."
msgstr "編集..."
#: editor/connections_dialog.cpp
-#, fuzzy
msgid "Go to Method"
-msgstr "メソッドã¸è¡Œã"
+msgstr "メソッドã¸ç§»å‹•"
#: editor/create_dialog.cpp
msgid "Change %s Type"
@@ -1053,7 +1049,7 @@ msgstr ""
msgid "Dependencies"
msgstr "ä¾å­˜é–¢ä¿‚"
-#: editor/dependency_editor.cpp
+#: editor/dependency_editor.cpp editor/editor_resource_picker.cpp
msgid "Resource"
msgstr "リソース"
@@ -1093,17 +1089,16 @@ msgid "Owners Of:"
msgstr "次ã®ã‚ªãƒ¼ãƒŠãƒ¼:"
#: editor/dependency_editor.cpp
-#, fuzzy
msgid ""
"Remove the selected files from the project? (Cannot be undone.)\n"
"Depending on your filesystem configuration, the files will either be moved "
"to the system trash or deleted permanently."
msgstr ""
-"é¸æŠžã—ãŸãƒ•ァイルをプロジェクトã‹ã‚‰å‰Šé™¤ã—ã¾ã™ã‹ï¼Ÿ(å–り消ã—ã¯ã§ãã¾ã›ã‚“)\n"
-"削除ã•れãŸãƒ•ァイルã¯ã€ã‚·ã‚¹ãƒ†ãƒ ã®ã‚´ãƒŸç®±ã«ã‚ã‚‹ã®ã§å¾©å…ƒã§ãã¾ã™ã€‚"
+"é¸æŠžã—ãŸãƒ•ァイルをプロジェクトã‹ã‚‰å‰Šé™¤ã—ã¾ã™ã‹ï¼Ÿ (å–り消ã—ã¯ã§ãã¾ã›ã‚“。)\n"
+"ファイルシステムã®è¨­å®šã«å¿œã˜ã¦ã€ãã®ãƒ•ァイルã¯ã‚·ã‚¹ãƒ†ãƒ ã®ã‚´ãƒŸç®±ã«ç§»å‹•ã•れる"
+"ã‹ã€æ°¸ä¹…ã«å‰Šé™¤ã•れã¾ã™ã€‚"
#: editor/dependency_editor.cpp
-#, fuzzy
msgid ""
"The files being removed are required by other resources in order for them to "
"work.\n"
@@ -1112,8 +1107,9 @@ msgid ""
"to the system trash or deleted permanently."
msgstr ""
"除去ã—よã†ã¨ã—ã¦ã„るファイルã¯ä»–ã®ãƒªã‚½ãƒ¼ã‚¹ã®å‹•作ã«å¿…è¦ã§ã™ã€‚\n"
-"無視ã—ã¦é™¤åŽ»ã—ã¾ã™ã‹ï¼Ÿ(å–り消ã—ã¯ã§ãã¾ã›ã‚“)\n"
-"削除ã•れãŸãƒ•ァイルã¯ã€ã‚·ã‚¹ãƒ†ãƒ ã®ã‚´ãƒŸç®±ã«ã‚ã‚‹ã®ã§å¾©å…ƒã§ãã¾ã™ã€‚"
+"ãれã§ã‚‚除去ã—ã¾ã™ã‹ï¼Ÿ(å–り消ã—ã¯ã§ãã¾ã›ã‚“。)\n"
+"ファイルシステムã®è¨­å®šã«å¿œã˜ã¦ã€ãã®ãƒ•ァイルã¯ã‚·ã‚¹ãƒ†ãƒ ã®ã‚´ãƒŸç®±ã«ç§»å‹•ã•れる"
+"ã‹ã€æ°¸ä¹…ã«å‰Šé™¤ã•れã¾ã™ã€‚"
#: editor/dependency_editor.cpp
msgid "Cannot remove:"
@@ -1133,7 +1129,7 @@ msgstr "ã¨ã«ã‹ãé–‹ã"
#: editor/dependency_editor.cpp
msgid "Which action should be taken?"
-msgstr "ã©ã®ã‚¢ã‚¯ã‚·ãƒ§ãƒ³ã‚’実行ã—ã¾ã™ã‹?"
+msgstr "ã©ã®ã‚¢ã‚¯ã‚·ãƒ§ãƒ³ã‚’実行ã—ã¾ã™ã‹ï¼Ÿ"
#: editor/dependency_editor.cpp
msgid "Fix Dependencies"
@@ -1169,7 +1165,7 @@ msgstr "所有"
#: editor/dependency_editor.cpp
msgid "Resources Without Explicit Ownership:"
-msgstr "æ‰€æœ‰æ¨©ãŒæ˜Žç¤ºã•れã¦ã„ãªã„リソース:"
+msgstr "æ‰€æœ‰æ¨©ãŒæ˜Žç¤ºçš„ã§ãªã„リソース:"
#: editor/dictionary_property_edit.cpp
msgid "Change Dictionary Key"
@@ -1283,42 +1279,36 @@ msgid "Licenses"
msgstr "ライセンス文書"
#: editor/editor_asset_installer.cpp
-#, fuzzy
msgid "Error opening asset file for \"%s\" (not in ZIP format)."
-msgstr ""
-"パッケージ ファイルを開ãã¨ãã«ã‚¨ãƒ©ãƒ¼ãŒç™ºç”Ÿã—ã¾ã—㟠(ZIPå½¢å¼ã§ã¯ã‚りã¾ã›ã‚“)。"
+msgstr "\"%s\" ã®ã‚¢ã‚»ãƒƒãƒˆãƒ•ァイルを開ã‘ã¾ã›ã‚“ (ZIPå½¢å¼ã§ã¯ã‚りã¾ã›ã‚“)。"
#: editor/editor_asset_installer.cpp
-#, fuzzy
msgid "%s (already exists)"
-msgstr "%s (ã™ã§ã«å­˜åœ¨ã—ã¾ã™)"
+msgstr "%s (ã™ã§ã«å­˜åœ¨ã™ã‚‹)"
#: editor/editor_asset_installer.cpp
msgid "Contents of asset \"%s\" - %d file(s) conflict with your project:"
-msgstr ""
+msgstr "アセットã®å†…容 \"%s\" - %d 個ã®ãƒ•ァイルãŒãƒ—ロジェクトã¨ç«¶åˆã—ã¾ã™:"
#: editor/editor_asset_installer.cpp
msgid "Contents of asset \"%s\" - No files conflict with your project:"
-msgstr ""
+msgstr "アセットã®å†…容 \"%s\" - %d 個ã®ãƒ•ァイルãŒãƒ—ロジェクトã¨ç«¶åˆã—ã¾ã™:"
#: editor/editor_asset_installer.cpp
msgid "Uncompressing Assets"
msgstr "アセットを展開"
#: editor/editor_asset_installer.cpp
-#, fuzzy
msgid "The following files failed extraction from asset \"%s\":"
-msgstr "次ã®ãƒ•ァイルをパッケージã‹ã‚‰æŠ½å‡ºã§ãã¾ã›ã‚“ã§ã—ãŸ:"
+msgstr "次ã®ãƒ•ァイルをアセット \"%s\" ã‹ã‚‰å±•é–‹ã§ãã¾ã›ã‚“ã§ã—ãŸ:"
#: editor/editor_asset_installer.cpp
-#, fuzzy
msgid "(and %s more files)"
-msgstr "ãŠã‚ˆã³ %s 個ã®ãƒ•ァイル。"
+msgstr "(ãŠã‚ˆã³ %s 個ã®ãƒ•ァイル)"
#: editor/editor_asset_installer.cpp
-#, fuzzy
msgid "Asset \"%s\" installed successfully!"
-msgstr "パッケージã®ã‚¤ãƒ³ã‚¹ãƒˆãƒ¼ãƒ«ã«æˆåŠŸã—ã¾ã—ãŸ!"
+msgstr "アセット \"%s\" ã®ã‚¤ãƒ³ã‚¹ãƒˆãƒ¼ãƒ«ã«æˆåŠŸã—ã¾ã—ãŸï¼"
#: editor/editor_asset_installer.cpp
#: editor/plugins/asset_library_editor_plugin.cpp
@@ -1330,9 +1320,8 @@ msgid "Install"
msgstr "インストール"
#: editor/editor_asset_installer.cpp
-#, fuzzy
msgid "Asset Installer"
-msgstr "パッケージインストーラ"
+msgstr "アセットインストーラー"
#: editor/editor_audio_buses.cpp
msgid "Speakers"
@@ -1395,7 +1384,6 @@ msgid "Bypass"
msgstr "ãƒã‚¤ãƒ‘ス"
#: editor/editor_audio_buses.cpp
-#, fuzzy
msgid "Bus Options"
msgstr "ãƒã‚¹ オプション"
@@ -1563,13 +1551,12 @@ msgid "Can't add autoload:"
msgstr "自動読ã¿è¾¼ã¿ã‚’追加出æ¥ã¾ã›ã‚“:"
#: editor/editor_autoload_settings.cpp
-#, fuzzy
msgid "%s is an invalid path. File does not exist."
-msgstr "ファイルãŒå­˜åœ¨ã—ã¾ã›ã‚“。"
+msgstr "%s ã¯ç„¡åйãªãƒ‘スã§ã™ã€‚ファイルãŒå­˜åœ¨ã—ã¾ã›ã‚“。"
#: editor/editor_autoload_settings.cpp
msgid "%s is an invalid path. Not in resource path (res://)."
-msgstr ""
+msgstr "%s ã¯ç„¡åйãªãƒ‘スã§ã™ã€‚リソースパス (res://) ã«å­˜åœ¨ã—ã¾ã›ã‚“。"
#: editor/editor_autoload_settings.cpp
msgid "Add AutoLoad"
@@ -1593,9 +1580,8 @@ msgid "Name"
msgstr "åå‰"
#: editor/editor_autoload_settings.cpp
-#, fuzzy
msgid "Global Variable"
-msgstr "変数"
+msgstr "グローãƒãƒ«å¤‰æ•°"
#: editor/editor_data.cpp
msgid "Paste Params"
@@ -1688,8 +1674,8 @@ msgid ""
msgstr ""
"対象プラットフォームã§ã¯GLES2ã¸ãƒ•ォールãƒãƒƒã‚¯ã™ã‚‹ãŸã‚ã«'ETC'テクスãƒãƒ£åœ§ç¸®ãŒ"
"å¿…è¦ã§ã™ã€‚\n"
-"プロジェクト設定より 'Import Etc' をオンã«ã™ã‚‹ã‹ã€'Fallback To Gles 2' をオフ"
-"ã«ã—ã¦ãã ã•ã„。"
+"プロジェクト設定より 'Import Etc' をオンã«ã™ã‚‹ã‹ã€'Driver Fallback Enabled' "
+"をオフã«ã—ã¦ãã ã•ã„。"
#: editor/editor_export.cpp
msgid ""
@@ -1720,13 +1706,13 @@ msgstr ""
"プロジェクト設定より 'Import Pvrtc' をオンã«ã™ã‚‹ã‹ã€'Driver Fallback "
"Enabled' をオフã«ã—ã¦ãã ã•ã„。"
-#: editor/editor_export.cpp platform/android/export/export.cpp
+#: editor/editor_export.cpp platform/android/export/export_plugin.cpp
#: platform/iphone/export/export.cpp platform/javascript/export/export.cpp
#: platform/osx/export/export.cpp platform/uwp/export/export.cpp
msgid "Custom debug template not found."
msgstr "カスタム デãƒãƒƒã‚°ãƒ†ãƒ³ãƒ—レートãŒè¦‹ã¤ã‹ã‚Šã¾ã›ã‚“。"
-#: editor/editor_export.cpp platform/android/export/export.cpp
+#: editor/editor_export.cpp platform/android/export/export_plugin.cpp
#: platform/iphone/export/export.cpp platform/javascript/export/export.cpp
#: platform/osx/export/export.cpp platform/uwp/export/export.cpp
msgid "Custom release template not found."
@@ -1771,48 +1757,50 @@ msgstr "インãƒãƒ¼ãƒˆãƒ‰ãƒƒã‚¯"
#: editor/editor_feature_profile.cpp
msgid "Allows to view and edit 3D scenes."
-msgstr ""
+msgstr "3Dシーンã®è¡¨ç¤ºã¨ç·¨é›†ãŒã§ãã¾ã™ã€‚"
#: editor/editor_feature_profile.cpp
msgid "Allows to edit scripts using the integrated script editor."
-msgstr ""
+msgstr "内臓ã®ã‚¹ã‚¯ãƒªãƒ—トエディタを使用ã—ã¦ã‚¹ã‚¯ãƒªãƒ—トを編集ã§ãã¾ã™ã€‚"
#: editor/editor_feature_profile.cpp
msgid "Provides built-in access to the Asset Library."
-msgstr ""
+msgstr "アセットライブラリã¸ã®çµ„ã¿è¾¼ã¿ã®ã‚¢ã‚¯ã‚»ã‚¹æ©Ÿèƒ½ã‚’æä¾›ã—ã¾ã™ã€‚"
#: editor/editor_feature_profile.cpp
msgid "Allows editing the node hierarchy in the Scene dock."
-msgstr ""
+msgstr "シーンドックã®ãƒŽãƒ¼ãƒ‰éšŽå±¤ã‚’編集ã§ãã¾ã™ã€‚"
#: editor/editor_feature_profile.cpp
msgid ""
"Allows to work with signals and groups of the node selected in the Scene "
"dock."
-msgstr ""
+msgstr "シーンドックã§é¸æŠžã•れãŸãƒŽãƒ¼ãƒ‰ã®ã‚·ã‚°ãƒŠãƒ«ã¨ã‚°ãƒ«ãƒ¼ãƒ—ã‚’æ“作ã§ãã¾ã™ã€‚"
#: editor/editor_feature_profile.cpp
msgid "Allows to browse the local file system via a dedicated dock."
-msgstr ""
+msgstr "専用ã®ãƒ‰ãƒƒã‚¯ã‚’使用ã—ã¦ã€ãƒ­ãƒ¼ã‚«ãƒ«ãƒ•ァイルシステムを閲覧ã§ãã¾ã™ã€‚"
#: editor/editor_feature_profile.cpp
msgid ""
"Allows to configure import settings for individual assets. Requires the "
"FileSystem dock to function."
msgstr ""
+"å„アセットã®ã‚¤ãƒ³ãƒãƒ¼ãƒˆè¨­å®šã‚’æ§‹æˆã§ãã¾ã™ã€‚動作ã«ã¯ãƒ•ァイルシステム ドッグãŒå¿…"
+"è¦ã§ã™ã€‚"
#: editor/editor_feature_profile.cpp
-#, fuzzy
msgid "(current)"
msgstr "(ç¾åœ¨)"
#: editor/editor_feature_profile.cpp
msgid "(none)"
-msgstr ""
+msgstr "(ãªã—)"
#: editor/editor_feature_profile.cpp
msgid "Remove currently selected profile, '%s'? Cannot be undone."
msgstr ""
+"é¸æŠžã•れã¦ã„るプロファイル '%s' を除去ã—ã¾ã™ã‹ï¼Ÿ å–り消ã—ã¯ã§ãã¾ã›ã‚“。"
#: editor/editor_feature_profile.cpp
msgid "Profile must be a valid filename and must not contain '.'"
@@ -1844,19 +1832,16 @@ msgid "Enable Contextual Editor"
msgstr "コンテキストエディタを有効ã«ã™ã‚‹"
#: editor/editor_feature_profile.cpp
-#, fuzzy
msgid "Class Properties:"
-msgstr "プロパティ:"
+msgstr "クラス プロパティ:"
#: editor/editor_feature_profile.cpp
-#, fuzzy
msgid "Main Features:"
-msgstr "機能"
+msgstr "ä¸»è¦æ©Ÿèƒ½:"
#: editor/editor_feature_profile.cpp
-#, fuzzy
msgid "Nodes and Classes:"
-msgstr "クラスを有効ã«ã™ã‚‹:"
+msgstr "ノードã¨ã‚¯ãƒ©ã‚¹:"
#: editor/editor_feature_profile.cpp
msgid "File '%s' format is invalid, import aborted."
@@ -1875,23 +1860,20 @@ msgid "Error saving profile to path: '%s'."
msgstr "指定ã•れãŸãƒ‘スã¸ã®ä¿å­˜ä¸­ã«ã‚¨ãƒ©ãƒ¼ãŒç™ºç”Ÿã—ã¾ã—ãŸ: '%s'."
#: editor/editor_feature_profile.cpp
-#, fuzzy
msgid "Reset to Default"
-msgstr "デフォルトã«ãƒªã‚»ãƒƒãƒˆã™ã‚‹"
+msgstr "ãƒ‡ãƒ•ã‚©ãƒ«ãƒˆã«æˆ»ã™"
#: editor/editor_feature_profile.cpp
msgid "Current Profile:"
msgstr "ç¾åœ¨ã®ãƒ—ロファイル:"
#: editor/editor_feature_profile.cpp
-#, fuzzy
msgid "Create Profile"
-msgstr "プロファイルを消去"
+msgstr "プロファイルを作æˆ"
#: editor/editor_feature_profile.cpp
-#, fuzzy
msgid "Remove Profile"
-msgstr "タイルを除去"
+msgstr "プロファイルを除去"
#: editor/editor_feature_profile.cpp
msgid "Available Profiles:"
@@ -1899,7 +1881,7 @@ msgstr "利用å¯èƒ½ãªãƒ—ロファイル:"
#: editor/editor_feature_profile.cpp
msgid "Make Current"
-msgstr "最新ã«ã™ã‚‹"
+msgstr "使用ã™ã‚‹"
#: editor/editor_feature_profile.cpp editor/editor_node.cpp
#: editor/plugins/theme_editor_plugin.cpp editor/project_manager.cpp
@@ -1911,18 +1893,18 @@ msgid "Export"
msgstr "エクスãƒãƒ¼ãƒˆ"
#: editor/editor_feature_profile.cpp
-#, fuzzy
msgid "Configure Selected Profile:"
-msgstr "ç¾åœ¨ã®ãƒ—ロファイル:"
+msgstr "é¸æŠžã•れãŸãƒ—ロファイルã®è¨­å®š:"
#: editor/editor_feature_profile.cpp
-#, fuzzy
msgid "Extra Options:"
-msgstr "テクスãƒãƒ£ã€€ã‚ªãƒ—ション"
+msgstr "追加ã®ã‚ªãƒ—ション:"
#: editor/editor_feature_profile.cpp
msgid "Create or import a profile to edit available classes and properties."
msgstr ""
+"プロファイルを作æˆã¾ãŸã¯ã‚¤ãƒ³ãƒãƒ¼ãƒˆã—ã¦ã€åˆ©ç”¨å¯èƒ½ãªã‚¯ãƒ©ã‚¹ã‚„プロパティを編集ã§"
+"ãã¾ã™ã€‚"
#: editor/editor_feature_profile.cpp
msgid "New profile name:"
@@ -1949,7 +1931,6 @@ msgid "Select Current Folder"
msgstr "ç¾åœ¨ã®ãƒ•ã‚©ãƒ«ãƒ€ã‚’é¸æŠž"
#: editor/editor_file_dialog.cpp scene/gui/file_dialog.cpp
-#, fuzzy
msgid "File exists, overwrite?"
msgstr "ãƒ•ã‚¡ã‚¤ãƒ«ãŒæ—¢ã«å­˜åœ¨ã—ã¾ã™ã€‚上書ãã—ã¾ã™ã‹ï¼Ÿ"
@@ -2065,7 +2046,7 @@ msgstr "親フォルダã¸ç§»å‹•ã™ã‚‹ã€‚"
#: editor/editor_file_dialog.cpp scene/gui/file_dialog.cpp
msgid "Refresh files."
-msgstr "ファイル更新。"
+msgstr "ファイルã®ä¸€è¦§ã‚’リフレッシュã™ã‚‹ã€‚"
#: editor/editor_file_dialog.cpp
msgid "(Un)favorite current folder."
@@ -2112,7 +2093,7 @@ msgstr ""
msgid "(Re)Importing Assets"
msgstr "アセットを(å†)インãƒãƒ¼ãƒˆä¸­"
-#: editor/editor_help.cpp editor/plugins/spatial_editor_plugin.cpp
+#: editor/editor_help.cpp
msgid "Top"
msgstr "トップ"
@@ -2179,7 +2160,7 @@ msgid ""
"[color=$color][url=$url]contributing one[/url][/color]!"
msgstr ""
"ç¾åœ¨ã€ã“ã®ãƒ—ロパティã®èª¬æ˜Žã¯ã‚りã¾ã›ã‚“。[color=$color][url=$url]貢献[/url][/"
-"color]ã—ã¦ç§ãŸã¡ã‚’助ã‘ã¦ãã ã•ã„!"
+"color]ã—ã¦ç§ãŸã¡ã‚’助ã‘ã¦ãã ã•ã„ï¼"
#: editor/editor_help.cpp
msgid "Method Descriptions"
@@ -2191,7 +2172,7 @@ msgid ""
"$color][url=$url]contributing one[/url][/color]!"
msgstr ""
"ç¾åœ¨ã€ã“ã®ãƒ¡ã‚½ãƒƒãƒ‰ã®èª¬æ˜Žã¯ã‚りã¾ã›ã‚“。[color=$color][url=$url]貢献[/url][/"
-"color]ã—ã¦ç§ãŸã¡ã‚’助ã‘ã¦ãã ã•ã„!"
+"color]ã—ã¦ç§ãŸã¡ã‚’助ã‘ã¦ãã ã•ã„ï¼"
#: editor/editor_help_search.cpp editor/editor_node.cpp
#: editor/plugins/script_editor_plugin.cpp
@@ -2349,6 +2330,9 @@ msgid ""
"Update Continuously is enabled, which can increase power usage. Click to "
"disable it."
msgstr ""
+"エディタウィンドウã®å†æç”»æ™‚ã«ã‚¹ãƒ”ンã—ã¾ã™ã€‚\n"
+"ç¶™ç¶šçš„ã«æ›´æ–° ãŒæœ‰åйã«ãªã£ã¦ãŠã‚Šã€é›»åŠ›æ¶ˆè²»é‡ãŒå¢—加ã™ã‚‹å¯èƒ½æ€§ãŒã‚りã¾ã™ã€‚クリッ"
+"クã§ç„¡åŠ¹åŒ–ã—ã¾ã™ã€‚"
#: editor/editor_node.cpp
msgid "Spins when the editor window redraws."
@@ -2427,7 +2411,7 @@ msgstr "サムãƒã‚¤ãƒ«ã‚’作æˆ"
#: editor/editor_node.cpp
msgid "This operation can't be done without a tree root."
-msgstr "ã“ã®æ“作ã¯ã€ãƒ„リー㮠root ãªã—ã§ã¯å®Ÿè¡Œã§ãã¾ã›ã‚“。"
+msgstr "ã“ã®æ“作ã¯ã€ãƒ„リーã®ãƒ«ãƒ¼ãƒˆãªã—ã§å®Ÿè¡Œã§ãã¾ã›ã‚“。"
#: editor/editor_node.cpp
msgid ""
@@ -2447,7 +2431,7 @@ msgstr ""
#: editor/editor_node.cpp editor/scene_tree_dock.cpp
msgid "Can't overwrite scene that is still open!"
-msgstr "é–‹ã„ã¦ã„るシーンを上書ãã™ã‚‹ã“ã¨ã¯ã§ãã¾ã›ã‚“!"
+msgstr "é–‹ã„ã¦ã„るシーンを上書ãã™ã‚‹ã“ã¨ã¯ã§ãã¾ã›ã‚“ï¼"
#: editor/editor_node.cpp
msgid "Can't load MeshLibrary for merging!"
@@ -2455,7 +2439,7 @@ msgstr "マージã™ã‚‹ãƒ¡ãƒƒã‚·ãƒ¥ãƒ©ã‚¤ãƒ–ラリーãŒèª­è¾¼ã‚ã¾ã›ã‚“ï¼"
#: editor/editor_node.cpp
msgid "Error saving MeshLibrary!"
-msgstr "メッシュライブラリーã®ä¿å­˜ã‚¨ãƒ©ãƒ¼!"
+msgstr "メッシュライブラリーã®ä¿å­˜ã‚¨ãƒ©ãƒ¼ï¼"
#: editor/editor_node.cpp
msgid "Can't load TileSet for merging!"
@@ -2550,7 +2534,7 @@ msgstr "実行å‰ã«ã‚·ãƒ¼ãƒ³ã‚’ä¿å­˜..."
#: editor/editor_node.cpp
msgid "Could not start subprocess!"
-msgstr "サブプロセスを開始ã§ãã¾ã›ã‚“ã§ã—ãŸ!"
+msgstr "サブプロセスを開始ã§ãã¾ã›ã‚“ã§ã—ãŸï¼"
#: editor/editor_node.cpp editor/filesystem_dock.cpp
msgid "Open Scene"
@@ -2585,13 +2569,16 @@ msgid ""
"The current scene has no root node, but %d modified external resource(s) "
"were saved anyway."
msgstr ""
+"ç¾åœ¨ã®ã‚·ãƒ¼ãƒ³ã«ã¯ãƒ«ãƒ¼ãƒˆãƒŽãƒ¼ãƒ‰ãŒã‚りã¾ã›ã‚“ãŒã€%d 個ã®å¤‰æ›´ã•れãŸå¤–部リソースãŒä¿"
+"å­˜ã•れã¾ã—ãŸã€‚"
#: editor/editor_node.cpp
-#, fuzzy
msgid ""
"A root node is required to save the scene. You can add a root node using the "
"Scene tree dock."
-msgstr "シーンをä¿å­˜ã™ã‚‹ã«ã¯ãƒ«ãƒ¼ãƒˆãƒŽãƒ¼ãƒ‰ãŒå¿…è¦ã§ã™ã€‚"
+msgstr ""
+"シーンをä¿å­˜ã™ã‚‹ã«ã¯ãƒ«ãƒ¼ãƒˆãƒŽãƒ¼ãƒ‰ãŒå¿…è¦ã§ã™ã€‚シーンツリーã®ãƒ‰ãƒƒã‚¯ã‹ã‚‰ã€ãƒ«ãƒ¼ãƒˆ"
+"ノードを追加ã™ã‚‹ã“ã¨ãŒã§ãã¾ã™ã€‚"
#: editor/editor_node.cpp
msgid "Save Scene As..."
@@ -2622,6 +2609,32 @@ msgid "Current scene not saved. Open anyway?"
msgstr "ç¾åœ¨ã®ã‚·ãƒ¼ãƒ³ã¯ä¿å­˜ã•れã¦ã„ã¾ã›ã‚“。ãれã§ã‚‚é–‹ãã¾ã™ã‹ï¼Ÿ"
#: editor/editor_node.cpp
+msgid "Can't undo while mouse buttons are pressed."
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "Nothing to undo."
+msgstr ""
+
+#: editor/editor_node.cpp
+#, fuzzy
+msgid "Undo: %s"
+msgstr "å…ƒã«æˆ»ã™"
+
+#: editor/editor_node.cpp
+msgid "Can't redo while mouse buttons are pressed."
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "Nothing to redo."
+msgstr ""
+
+#: editor/editor_node.cpp
+#, fuzzy
+msgid "Redo: %s"
+msgstr "やり直ã™"
+
+#: editor/editor_node.cpp
msgid "Can't reload a scene that was never saved."
msgstr "ä¿å­˜ã•れã¦ã„ãªã„シーンを読ã¿è¾¼ã‚€ã“ã¨ã¯ã§ãã¾ã›ã‚“。"
@@ -2703,15 +2716,14 @@ msgid "Unable to load addon script from path: '%s'."
msgstr "パス '%s' ã‹ã‚‰ã‚¢ãƒ‰ã‚ªãƒ³ã‚¹ã‚¯ãƒªãƒ—トを読込ã‚ã¾ã›ã‚“。"
#: editor/editor_node.cpp
-#, fuzzy
msgid ""
"Unable to load addon script from path: '%s'. This might be due to a code "
"error in that script.\n"
"Disabling the addon at '%s' to prevent further errors."
msgstr ""
-"パス '%s' ã‹ã‚‰ã‚¢ãƒ‰ã‚ªãƒ³ã‚¹ã‚¯ãƒªãƒ—トを読ã¿è¾¼ã‚ã¾ã›ã‚“。コードã«ã‚¨ãƒ©ãƒ¼ãŒã‚ã‚‹å¯èƒ½æ€§"
-"ãŒã‚りã¾ã™ã€‚\n"
-"構文を確èªã—ã¦ãã ã•ã„。"
+"アドオンスクリプト パス: '%s' をロードã§ãã¾ã›ã‚“。ã“れã¯ã€ãã®ã‚¹ã‚¯ãƒªãƒ—トã®"
+"コードエラーãŒåŽŸå› ã®å¯èƒ½æ€§ãŒã‚りã¾ã™ã€‚\n"
+"ã•らãªã‚‹ã‚¨ãƒ©ãƒ¼ã‚’防ããŸã‚ã€%s ã®ã‚¢ãƒ‰ã‚ªãƒ³ã‚’無効化ã—ã¾ã™ã€‚"
#: editor/editor_node.cpp
msgid ""
@@ -2757,7 +2769,7 @@ msgid ""
"You can change it later in \"Project Settings\" under the 'application' "
"category."
msgstr ""
-"メインシーンãŒå®šç¾©ã•れã¦ã„ã¾ã›ã‚“ã€‚é¸æŠžã—ã¾ã™ã‹?\n"
+"メインシーンãŒå®šç¾©ã•れã¦ã„ã¾ã›ã‚“ã€‚é¸æŠžã—ã¾ã™ã‹ï¼Ÿ\n"
"'アプリケーション' カテゴリã®ä¸‹ã® \"プロジェクト設定\" ã‹ã‚‰ã‚‚変更ã§ãã¾ã™ã€‚"
#: editor/editor_node.cpp
@@ -2766,7 +2778,7 @@ msgid ""
"You can change it later in \"Project Settings\" under the 'application' "
"category."
msgstr ""
-"é¸æŠžã—ãŸã‚·ãƒ¼ãƒ³ '%s' ã¯å­˜åœ¨ã—ã¾ã›ã‚“。有効ãªã‚·ãƒ¼ãƒ³ã‚’é¸æŠžã—ã¾ã™ã‹?\n"
+"é¸æŠžã—ãŸã‚·ãƒ¼ãƒ³ '%s' ã¯å­˜åœ¨ã—ã¾ã›ã‚“。有効ãªã‚·ãƒ¼ãƒ³ã‚’é¸æŠžã—ã¾ã™ã‹ï¼Ÿ\n"
"'アプリケーション' カテゴリã®ä¸‹ã® \"プロジェクト設定\" ã§å¾Œã‹ã‚‰å¤‰æ›´ã§ãã¾ã™ã€‚"
#: editor/editor_node.cpp
@@ -2776,7 +2788,7 @@ msgid ""
"category."
msgstr ""
"é¸æŠžã—ãŸã‚·ãƒ¼ãƒ³ '%s' ã¯ã‚·ãƒ¼ãƒ³ãƒ•ァイルã§ã¯ã‚りã¾ã›ã‚“。有効ãªã‚·ãƒ¼ãƒ³ã‚’é¸æŠžã—ã¾ã™"
-"ã‹?\n"
+"ã‹ï¼Ÿ\n"
"'アプリケーション' カテゴリã®ä¸‹ã® \"プロジェクト設定\" ã§å¾Œã‹ã‚‰å¤‰æ›´ã§ãã¾ã™ã€‚"
#: editor/editor_node.cpp
@@ -2785,7 +2797,7 @@ msgstr "レイアウトをä¿å­˜"
#: editor/editor_node.cpp
msgid "Delete Layout"
-msgstr "レイアウトã®å‰Šé™¤"
+msgstr "レイアウトを削除"
#: editor/editor_node.cpp editor/import_dock.cpp
#: editor/script_create_dialog.cpp
@@ -2973,9 +2985,8 @@ msgid "Orphan Resource Explorer..."
msgstr "孤立リソースエクスプローラー..."
#: editor/editor_node.cpp
-#, fuzzy
msgid "Reload Current Project"
-msgstr "プロジェクトåã®å¤‰æ›´"
+msgstr "ç¾åœ¨ã®ãƒ—ロジェクトをリロード"
#: editor/editor_node.cpp
msgid "Quit to Project List"
@@ -3135,22 +3146,20 @@ msgid "Help"
msgstr "ヘルプ"
#: editor/editor_node.cpp
-#, fuzzy
msgid "Online Documentation"
-msgstr "ドキュメントを開ã"
+msgstr "オンラインドキュメント"
#: editor/editor_node.cpp
msgid "Questions & Answers"
-msgstr ""
+msgstr "è³ªå• & 回答"
#: editor/editor_node.cpp
msgid "Report a Bug"
msgstr "ãƒã‚°ã‚’報告"
#: editor/editor_node.cpp
-#, fuzzy
msgid "Suggest a Feature"
-msgstr "値を設定ã™ã‚‹"
+msgstr "æ©Ÿèƒ½ã‚’ææ¡ˆã™ã‚‹"
#: editor/editor_node.cpp
msgid "Send Docs Feedback"
@@ -3161,9 +3170,8 @@ msgid "Community"
msgstr "コミュニティ"
#: editor/editor_node.cpp
-#, fuzzy
msgid "About Godot"
-msgstr "概è¦"
+msgstr "Godotã«ã¤ã„ã¦"
#: editor/editor_node.cpp
msgid "Support Godot Development"
@@ -3257,14 +3265,12 @@ msgid "Manage Templates"
msgstr "テンプレートã®ç®¡ç†"
#: editor/editor_node.cpp
-#, fuzzy
msgid "Install from file"
msgstr "ファイルã‹ã‚‰ã‚¤ãƒ³ã‚¹ãƒˆãƒ¼ãƒ«"
#: editor/editor_node.cpp
-#, fuzzy
msgid "Select android sources file"
-msgstr "ã‚½ãƒ¼ã‚¹ãƒ¡ãƒƒã‚·ãƒ¥ã‚’é¸æŠž:"
+msgstr "Androidã®ã‚½ãƒ¼ã‚¹ãƒ•ã‚¡ã‚¤ãƒ«ã‚’é¸æŠž"
#: editor/editor_node.cpp
msgid ""
@@ -3312,6 +3318,11 @@ msgid "Merge With Existing"
msgstr "既存ã®(ライブラリを)マージ"
#: editor/editor_node.cpp
+#, fuzzy
+msgid "Apply MeshInstance Transforms"
+msgstr "アニメーションã®ãƒˆãƒ©ãƒ³ã‚¹ãƒ•ォームを変更"
+
+#: editor/editor_node.cpp
msgid "Open & Run a Script"
msgstr "スクリプトを開ã„ã¦å®Ÿè¡Œ"
@@ -3321,7 +3332,7 @@ msgid ""
"What action should be taken?"
msgstr ""
"以下ã®ãƒ•ァイルより新ã—ã„ã‚‚ã®ãŒãƒ‡ã‚£ã‚¹ã‚¯ä¸Šã«å­˜åœ¨ã—ã¾ã™ã€‚\n"
-"ã©ã†ã—ã¾ã™ã‹?"
+"ã©ã†ã—ã¾ã™ã‹ï¼Ÿ"
#: editor/editor_node.cpp editor/plugins/script_editor_plugin.cpp
#: editor/plugins/shader_editor_plugin.cpp
@@ -3383,9 +3394,8 @@ msgid "No sub-resources found."
msgstr "サブリソースãŒè¦‹ã¤ã‹ã‚Šã¾ã›ã‚“ã§ã—ãŸã€‚"
#: editor/editor_path.cpp
-#, fuzzy
msgid "Open a list of sub-resources."
-msgstr "サブリソースãŒè¦‹ã¤ã‹ã‚Šã¾ã›ã‚“ã§ã—ãŸã€‚"
+msgstr "サブリソースã®ãƒªã‚¹ãƒˆã‚’é–‹ã。"
#: editor/editor_plugin.cpp
msgid "Creating Mesh Previews"
@@ -3409,15 +3419,13 @@ msgstr "インストール済プラグイン:"
#: editor/editor_plugin_settings.cpp editor/plugin_config_dialog.cpp
msgid "Update"
-msgstr "アップデート"
+msgstr "æ›´æ–°"
#: editor/editor_plugin_settings.cpp
-#, fuzzy
msgid "Version"
-msgstr "ãƒãƒ¼ã‚¸ãƒ§ãƒ³:"
+msgstr "ãƒãƒ¼ã‚¸ãƒ§ãƒ³"
#: editor/editor_plugin_settings.cpp
-#, fuzzy
msgid "Author"
msgstr "作者"
@@ -3432,14 +3440,12 @@ msgid "Measure:"
msgstr "測定:"
#: editor/editor_profiler.cpp
-#, fuzzy
msgid "Frame Time (ms)"
-msgstr "フレーム時間(秒)"
+msgstr "フレーム時間 (ms)"
#: editor/editor_profiler.cpp
-#, fuzzy
msgid "Average Time (ms)"
-msgstr "平凿™‚é–“(ç§’)"
+msgstr "平凿™‚é–“ (ms)"
#: editor/editor_profiler.cpp
msgid "Frame %"
@@ -3451,11 +3457,11 @@ msgstr "物ç†ãƒ•レーム %"
#: editor/editor_profiler.cpp
msgid "Inclusive"
-msgstr "å«"
+msgstr "包括"
#: editor/editor_profiler.cpp
msgid "Self"
-msgstr "セルフ(Self)"
+msgstr "自己"
#: editor/editor_profiler.cpp
msgid ""
@@ -3466,6 +3472,12 @@ msgid ""
"functions called by that function.\n"
"Use this to find individual functions to optimize."
msgstr ""
+"包括: ã“ã®é–¢æ•°ãŒå‘¼ã³å‡ºã™ã€ä»–ã®é–¢æ•°ã®æ™‚é–“ã‚’å«ã¿ã¾ã™ã€‚\n"
+"ボトルãƒãƒƒã‚¯ã‚’見ã¤ã‘ã‚‹ãŸã‚ã«ä½¿ç”¨ã—ã¾ã™ã€‚\n"
+"\n"
+"自己: ã“ã®é–¢æ•°ãŒå‘¼ã³å‡ºã™ä»–ã®é–¢æ•°ã®æ™‚é–“ã‚’å«ã¾ãšã€ã“ã®é–¢æ•°è‡ªä½“ã«è²»ã‚„ã•ã‚ŒãŸæ™‚é–“"
+"ã®ã¿ã‚’カウントã—ã¾ã™ã€‚\n"
+"最é©åŒ–ã™ã‚‹å€‹ã€…ã®é–¢æ•°ã‚’見ã¤ã‘ã‚‹ãŸã‚ã«ä½¿ç”¨ã—ã¾ã™ã€‚"
#: editor/editor_profiler.cpp
msgid "Frame #:"
@@ -3568,6 +3580,10 @@ msgstr ""
"é¸æŠžã•れãŸãƒªã‚½ãƒ¼ã‚¹ (%s) ã¯ã€ã“ã®ãƒ—ロパティ (%s) ãŒæ±‚ã‚ã‚‹åž‹ã«ä¸€è‡´ã—ã¦ã„ã¾ã›"
"ん。"
+#: editor/editor_resource_picker.cpp
+msgid "Quick Load"
+msgstr ""
+
#: editor/editor_resource_picker.cpp editor/property_editor.cpp
msgid "Make Unique"
msgstr "ユニーク化"
@@ -3587,7 +3603,6 @@ msgid "Paste"
msgstr "貼り付ã‘"
#: editor/editor_resource_picker.cpp editor/property_editor.cpp
-#, fuzzy
msgid "Convert to %s"
msgstr "%s ã«å¤‰æ›"
@@ -3638,9 +3653,8 @@ msgid "Did you forget the '_run' method?"
msgstr "'_run' メソッドを忘れã¦ã„ã¾ã›ã‚“ã‹ï¼Ÿ"
#: editor/editor_spin_slider.cpp
-#, fuzzy
msgid "Hold %s to round to integers. Hold Shift for more precise changes."
-msgstr "Ctrlを押ã—ãŸã¾ã¾ã§æ•´æ•°å€¤ã«ä¸¸ã‚る。Shiftを押ã—ãŸã¾ã¾ã§ç²¾å¯†èª¿æ•´ã€‚"
+msgstr "%s を押ã—ãŸã¾ã¾ã§æ•´æ•°å€¤ã«ä¸¸ã‚る。Shiftを押ã—ãŸã¾ã¾ã§ç²¾å¯†èª¿æ•´ã€‚"
#: editor/editor_sub_scene.cpp
msgid "Select Node(s) to Import"
@@ -3667,14 +3681,12 @@ msgid "Uninstall these templates."
msgstr "ã“れらã®ãƒ†ãƒ³ãƒ—レートをアンインストールã—ã¾ã™ã€‚"
#: editor/export_template_manager.cpp
-#, fuzzy
msgid "There are no mirrors available."
-msgstr "'%s' ファイルãŒã‚りã¾ã›ã‚“。"
+msgstr "有効ãªãƒŸãƒ©ãƒ¼ã¯ã‚りã¾ã›ã‚“。"
#: editor/export_template_manager.cpp
-#, fuzzy
msgid "Retrieving the mirror list..."
-msgstr "ミラーをå–å¾—ã—ã¦ã„ã¾ã™ã€‚ã—ã°ã‚‰ããŠå¾…ã¡ãã ã•ã„..."
+msgstr "ミラーリストをå–得中..."
#: editor/export_template_manager.cpp
msgid "Starting the download..."
@@ -3685,24 +3697,20 @@ msgid "Error requesting URL:"
msgstr "URL リクエストã®ã‚¨ãƒ©ãƒ¼:"
#: editor/export_template_manager.cpp
-#, fuzzy
msgid "Connecting to the mirror..."
msgstr "ãƒŸãƒ©ãƒ¼ã«æŽ¥ç¶šä¸­..."
#: editor/export_template_manager.cpp
-#, fuzzy
msgid "Can't resolve the requested address."
-msgstr "ホストåを解決ã§ãã¾ã›ã‚“:"
+msgstr "è¦æ±‚ã•れãŸã‚¢ãƒ‰ãƒ¬ã‚¹ã‚’解決ã§ãã¾ã›ã‚“。"
#: editor/export_template_manager.cpp
-#, fuzzy
msgid "Can't connect to the mirror."
-msgstr "ãƒ›ã‚¹ãƒˆã«æŽ¥ç¶šã§ãã¾ã›ã‚“:"
+msgstr "ãƒŸãƒ©ãƒ¼ã«æŽ¥ç¶šã§ãã¾ã›ã‚“。"
#: editor/export_template_manager.cpp
-#, fuzzy
msgid "No response from the mirror."
-msgstr "ホストã‹ã‚‰å¿œç­”ãŒã‚りã¾ã›ã‚“:"
+msgstr "ミラーã‹ã‚‰å¿œç­”ãŒã‚りã¾ã›ã‚“。"
#: editor/export_template_manager.cpp
#: editor/plugins/asset_library_editor_plugin.cpp
@@ -3710,14 +3718,12 @@ msgid "Request failed."
msgstr "リクエストã¯å¤±æ•—ã—ã¾ã—ãŸã€‚"
#: editor/export_template_manager.cpp
-#, fuzzy
msgid "Request ended up in a redirect loop."
-msgstr "リクエスト失敗。リダイレクトéŽå¤š"
+msgstr "リクエストã¯ãƒªãƒ€ã‚¤ãƒ¬ã‚¯ãƒˆãƒ«ãƒ¼ãƒ—ã®ãŸã‚終了ã—ã¾ã—ãŸã€‚"
#: editor/export_template_manager.cpp
-#, fuzzy
msgid "Request failed:"
-msgstr "リクエストã¯å¤±æ•—ã—ã¾ã—ãŸã€‚"
+msgstr "リクエスト失敗:"
#: editor/export_template_manager.cpp
msgid "Download complete; extracting templates..."
@@ -3740,13 +3746,12 @@ msgid "Error getting the list of mirrors."
msgstr "ミラーリストã®å–得エラー。"
#: editor/export_template_manager.cpp
-#, fuzzy
msgid "Error parsing JSON with the list of mirrors. Please report this issue!"
-msgstr "ミラーリストã®JSONを読ã¿è¾¼ã¿å¤±æ•—。ã“ã®å•題ã®å ±å‘Šã‚’ãŠé¡˜ã„ã—ã¾ã™ï¼"
+msgstr "ミラーリストã®JSONã®è§£æžã«å¤±æ•—ã—ã¾ã—ãŸã€‚ã“ã®å•題ã®å ±å‘Šã‚’ãŠé¡˜ã„ã—ã¾ã™ï¼"
#: editor/export_template_manager.cpp
msgid "Best available mirror"
-msgstr ""
+msgstr "æœ‰åŠ¹ãªæœ€è‰¯ã®ãƒŸãƒ©ãƒ¼"
#: editor/export_template_manager.cpp
msgid ""
@@ -3799,24 +3804,20 @@ msgid "SSL Handshake Error"
msgstr "SSL ãƒãƒ³ãƒ‰ã‚·ã‚§ã‚¤ã‚¯ã‚¨ãƒ©ãƒ¼"
#: editor/export_template_manager.cpp
-#, fuzzy
msgid "Can't open the export templates file."
-msgstr "エクスãƒãƒ¼ãƒˆ テンプレート ZIP ファイルを開ã‘ã¾ã›ã‚“。"
+msgstr "エクスãƒãƒ¼ãƒˆãƒ†ãƒ³ãƒ—レート ファイルを開ã‘ã¾ã›ã‚“。"
#: editor/export_template_manager.cpp
-#, fuzzy
msgid "Invalid version.txt format inside the export templates file: %s."
-msgstr "テンプレート内㮠version.txt フォーマットãŒä¸æ­£ã§ã™: %s。"
+msgstr "エクスãƒãƒ¼ãƒˆãƒ†ãƒ³ãƒ—レート内㮠version.txt フォーマットãŒä¸æ­£ã§ã™: %s。"
#: editor/export_template_manager.cpp
-#, fuzzy
msgid "No version.txt found inside the export templates file."
-msgstr "テンプレート内㫠version.txt ãŒè¦‹ã¤ã‹ã‚Šã¾ã›ã‚“。"
+msgstr "エクスãƒãƒ¼ãƒˆãƒ†ãƒ³ãƒ—レート内㫠version.txt ãŒè¦‹ã¤ã‹ã‚Šã¾ã›ã‚“。"
#: editor/export_template_manager.cpp
-#, fuzzy
msgid "Error creating path for extracting templates:"
-msgstr "テンプレートã®ãƒ‘ス生æˆã‚¨ãƒ©ãƒ¼:"
+msgstr "テンプレート展開ã®ãŸã‚ã®ãƒ‘スã®ä½œæˆã‚¨ãƒ©ãƒ¼:"
#: editor/export_template_manager.cpp
msgid "Extracting Export Templates"
@@ -3827,9 +3828,8 @@ msgid "Importing:"
msgstr "インãƒãƒ¼ãƒˆä¸­:"
#: editor/export_template_manager.cpp
-#, fuzzy
msgid "Remove templates for the version '%s'?"
-msgstr "テンプレート ãƒãƒ¼ã‚¸ãƒ§ãƒ³ '%s' を除去ã—ã¾ã™ã‹ï¼Ÿ"
+msgstr "ãƒãƒ¼ã‚¸ãƒ§ãƒ³ '%s' ã®ãƒ†ãƒ³ãƒ—レートを削除ã—ã¾ã™ã‹ï¼Ÿ"
#: editor/export_template_manager.cpp
msgid "Uncompressing Android Build Sources"
@@ -3837,7 +3837,7 @@ msgstr "Androidビルドソースã®è§£å‡"
#: editor/export_template_manager.cpp
msgid "Export Template Manager"
-msgstr "テンプレートã®ã‚¨ã‚¯ã‚¹ãƒãƒ¼ãƒˆ マãƒãƒ¼ã‚¸ãƒ£ãƒ¼"
+msgstr "エクスãƒãƒ¼ãƒˆãƒ†ãƒ³ãƒ—レート マãƒãƒ¼ã‚¸ãƒ£ãƒ¼"
#: editor/export_template_manager.cpp
msgid "Current Version:"
@@ -3854,37 +3854,32 @@ msgid "Export templates are installed and ready to be used."
msgstr "エクスãƒãƒ¼ãƒˆ テンプレートã¯ã‚¤ãƒ³ã‚¹ãƒˆãƒ¼ãƒ«ã•れã¦ãŠã‚Šã€åˆ©ç”¨ã§ãã¾ã™ã€‚"
#: editor/export_template_manager.cpp
-#, fuzzy
msgid "Open Folder"
-msgstr "ファイルを開ã"
+msgstr "フォルダを開ã"
#: editor/export_template_manager.cpp
msgid "Open the folder containing installed templates for the current version."
-msgstr ""
+msgstr "ç¾åœ¨ã®ãƒãƒ¼ã‚¸ãƒ§ãƒ³ã®ãƒ†ãƒ³ãƒ—レートãŒã‚¤ãƒ³ã‚¹ãƒˆãƒ¼ãƒ«ã•れãŸãƒ•ォルダを開ãã¾ã™ã€‚"
#: editor/export_template_manager.cpp
msgid "Uninstall"
msgstr "アンインストール"
#: editor/export_template_manager.cpp
-#, fuzzy
msgid "Uninstall templates for the current version."
-msgstr "カウンタã®åˆæœŸå€¤"
+msgstr "ç¾åœ¨ã®ãƒãƒ¼ã‚¸ãƒ§ãƒ³ã®ãƒ†ãƒ³ãƒ—レートをアンインストールã™ã‚‹ã€‚"
#: editor/export_template_manager.cpp
-#, fuzzy
msgid "Download from:"
-msgstr "ダウンロードエラー"
+msgstr "ダウンロード元:"
#: editor/export_template_manager.cpp
-#, fuzzy
msgid "Open in Web Browser"
-msgstr "ブラウザã§å®Ÿè¡Œ"
+msgstr "Webブラウザã§é–‹ã"
#: editor/export_template_manager.cpp
-#, fuzzy
msgid "Copy Mirror URL"
-msgstr "エラーをコピー"
+msgstr "エラーã®URLをコピー"
#: editor/export_template_manager.cpp
msgid "Download and Install"
@@ -3895,20 +3890,20 @@ msgid ""
"Download and install templates for the current version from the best "
"possible mirror."
msgstr ""
+"ç¾åœ¨ã®ãƒãƒ¼ã‚¸ãƒ§ãƒ³ã®ãƒ†ãƒ³ãƒ—レートを最é©ãªãƒŸãƒ©ãƒ¼ã‹ã‚‰ãƒ€ã‚¦ãƒ³ãƒ­ãƒ¼ãƒ‰ã—ã¦ã‚¤ãƒ³ã‚¹ãƒˆãƒ¼ãƒ«"
+"ã—ã¾ã™ã€‚"
#: editor/export_template_manager.cpp
msgid "Official export templates aren't available for development builds."
msgstr "å…¬å¼ã®æ›¸ã出ã—テンプレートã¯é–‹ç™ºç”¨ãƒ“ルドã®å ´åˆã¯ä½¿ç”¨ã§ãã¾ã›ã‚“。"
#: editor/export_template_manager.cpp
-#, fuzzy
msgid "Install from File"
msgstr "ファイルã‹ã‚‰ã‚¤ãƒ³ã‚¹ãƒˆãƒ¼ãƒ«"
#: editor/export_template_manager.cpp
-#, fuzzy
msgid "Install templates from a local file."
-msgstr "ZIPファイルã‹ã‚‰ãƒ†ãƒ³ãƒ—レートをインãƒãƒ¼ãƒˆ"
+msgstr "ローカルファイルã‹ã‚‰ãƒ†ãƒ³ãƒ—レートをインストールã™ã‚‹ã€‚"
#: editor/export_template_manager.cpp editor/find_in_files.cpp
#: editor/progress_dialog.cpp scene/gui/dialogs.cpp
@@ -3916,19 +3911,16 @@ msgid "Cancel"
msgstr "キャンセル"
#: editor/export_template_manager.cpp
-#, fuzzy
msgid "Cancel the download of the templates."
-msgstr "エクスãƒãƒ¼ãƒˆ テンプレート ZIP ファイルを開ã‘ã¾ã›ã‚“。"
+msgstr "テンプレートã®ãƒ€ã‚¦ãƒ³ãƒ­ãƒ¼ãƒ‰ã‚’キャンセルã™ã‚‹ã€‚"
#: editor/export_template_manager.cpp
-#, fuzzy
msgid "Other Installed Versions:"
-msgstr "インストールã•れãŸãƒãƒ¼ã‚¸ãƒ§ãƒ³:"
+msgstr "ä»–ã®ã‚¤ãƒ³ã‚¹ãƒˆãƒ¼ãƒ«ã•れãŸãƒãƒ¼ã‚¸ãƒ§ãƒ³:"
#: editor/export_template_manager.cpp
-#, fuzzy
msgid "Uninstall Template"
-msgstr "アンインストール"
+msgstr "テンプレートをアンインストール"
#: editor/export_template_manager.cpp
msgid "Select Template File"
@@ -3943,6 +3935,8 @@ msgid ""
"The templates will continue to download.\n"
"You may experience a short editor freeze when they finish."
msgstr ""
+"テンプレートã®ãƒ€ã‚¦ãƒ³ãƒ­ãƒ¼ãƒ‰ã¯ç¶™ç¶šã•れã¾ã™ã€‚\n"
+"完了時ã«ã€çŸ­ã„間エディタãŒãƒ•リーズã™ã‚‹å¯èƒ½æ€§ãŒã‚りã¾ã™ã€‚"
#: editor/filesystem_dock.cpp
msgid "Favorites"
@@ -4127,7 +4121,7 @@ msgstr "åå‰ã‚’変更..."
#: editor/filesystem_dock.cpp
msgid "Focus the search box"
-msgstr ""
+msgstr "検索ボックスã«ãƒ•ォーカス"
#: editor/filesystem_dock.cpp
msgid "Previous Folder/File"
@@ -4275,7 +4269,7 @@ msgstr "グループãŒãƒŽãƒ¼ãƒ‰ã‚りã¾ã›ã‚“"
#: editor/groups_editor.cpp editor/scene_tree_dock.cpp
#: editor/scene_tree_editor.cpp
msgid "Filter nodes"
-msgstr "フィルタノード"
+msgstr "ノードã®ãƒ•ィルタ"
#: editor/groups_editor.cpp
msgid "Nodes in Group"
@@ -4376,18 +4370,16 @@ msgid "Saving..."
msgstr "ä¿å­˜ä¸­..."
#: editor/import_defaults_editor.cpp
-#, fuzzy
msgid "Select Importer"
-msgstr "é¸æŠžãƒ¢ãƒ¼ãƒ‰"
+msgstr "インãƒãƒ¼ã‚¿ã‚’é¸æŠž"
#: editor/import_defaults_editor.cpp
-#, fuzzy
msgid "Importer:"
-msgstr "インãƒãƒ¼ãƒˆ"
+msgstr "インãƒãƒ¼ã‚¿:"
#: editor/import_defaults_editor.cpp
msgid "Reset to Defaults"
-msgstr "デフォルトã«ãƒªã‚»ãƒƒãƒˆã™ã‚‹"
+msgstr "ãƒ‡ãƒ•ã‚©ãƒ«ãƒˆã«æˆ»ã™"
#: editor/import_dock.cpp
msgid "Keep File (No Import)"
@@ -4437,14 +4429,12 @@ msgid "Failed to load resource."
msgstr "リソースã®èª­è¾¼ã¿ã«å¤±æ•—ã—ã¾ã—ãŸã€‚"
#: editor/inspector_dock.cpp
-#, fuzzy
msgid "Copy Properties"
-msgstr "プロパティ"
+msgstr "プロパティをコピー"
#: editor/inspector_dock.cpp
-#, fuzzy
msgid "Paste Properties"
-msgstr "プロパティ"
+msgstr "プロパティを貼り付ã‘"
#: editor/inspector_dock.cpp
msgid "Make Sub-Resources Unique"
@@ -4469,23 +4459,20 @@ msgid "Save As..."
msgstr "åå‰ã‚’付ã‘ã¦ä¿å­˜..."
#: editor/inspector_dock.cpp
-#, fuzzy
msgid "Extra resource options."
-msgstr "リソースパスã«ã‚りã¾ã›ã‚“。"
+msgstr "追加ã®ãƒªã‚½ãƒ¼ã‚¹ã‚ªãƒ—ション。"
#: editor/inspector_dock.cpp
-#, fuzzy
msgid "Edit Resource from Clipboard"
-msgstr "リソースã®ã‚¯ãƒªãƒƒãƒ—ボードを編集"
+msgstr "クリップボードã‹ã‚‰ãƒªã‚½ãƒ¼ã‚¹ã‚’編集"
#: editor/inspector_dock.cpp
msgid "Copy Resource"
msgstr "リソースをコピー"
#: editor/inspector_dock.cpp
-#, fuzzy
msgid "Make Resource Built-In"
-msgstr "組ã¿è¾¼ã¿ã«ã™ã‚‹"
+msgstr "リソースを組ã¿è¾¼ã¿ã«ã™ã‚‹"
#: editor/inspector_dock.cpp
msgid "Go to the previous edited object in history."
@@ -4500,9 +4487,8 @@ msgid "History of recently edited objects."
msgstr "最近編集ã—ãŸã‚ªãƒ–ジェクトã®å±¥æ­´ã€‚"
#: editor/inspector_dock.cpp
-#, fuzzy
msgid "Open documentation for this object."
-msgstr "ドキュメントを開ã"
+msgstr "ã“ã®ã‚ªãƒ–ジェクトã®ãƒ‰ã‚­ãƒ¥ãƒ¡ãƒ³ãƒˆã‚’é–‹ã。"
#: editor/inspector_dock.cpp editor/scene_tree_dock.cpp
msgid "Open Documentation"
@@ -4513,9 +4499,8 @@ msgid "Filter properties"
msgstr "フィルタプロパティ"
#: editor/inspector_dock.cpp
-#, fuzzy
msgid "Manage object properties."
-msgstr "オブジェクトã®ãƒ—ロパティ。"
+msgstr "オブジェクトã®ãƒ—ロパティを管ç†ã€‚"
#: editor/inspector_dock.cpp
msgid "Changes may be lost!"
@@ -4759,9 +4744,8 @@ msgid "Blend:"
msgstr "ブレンド:"
#: editor/plugins/animation_blend_tree_editor_plugin.cpp
-#, fuzzy
msgid "Parameter Changed:"
-msgstr "パラメータãŒå¤‰æ›´ã•れã¾ã—ãŸ"
+msgstr "パラメータãŒå¤‰æ›´ã•れã¾ã—ãŸ:"
#: editor/plugins/animation_blend_tree_editor_plugin.cpp
#: editor/plugins/animation_tree_player_editor_plugin.cpp
@@ -5445,11 +5429,11 @@ msgstr "ã“ã®ã‚¢ã‚»ãƒƒãƒˆã®ãƒ€ã‚¦ãƒ³ãƒ­ãƒ¼ãƒ‰ã¯æ—¢ã«é€²è¡Œä¸­ï¼"
#: editor/plugins/asset_library_editor_plugin.cpp
msgid "Recently Updated"
-msgstr "更新日時"
+msgstr "æœ€æ–°ã®æ›´æ–°æ—¥"
#: editor/plugins/asset_library_editor_plugin.cpp
msgid "Least Recently Updated"
-msgstr "更新日時 (逆)"
+msgstr "最å¤ã®æ›´æ–°æ—¥"
#: editor/plugins/asset_library_editor_plugin.cpp
msgid "Name (A-Z)"
@@ -5489,11 +5473,11 @@ msgstr "ã™ã¹ã¦"
#: editor/plugins/asset_library_editor_plugin.cpp
msgid "Search templates, projects, and demos"
-msgstr ""
+msgstr "テンプレートã€ãƒ—ロジェクトã€ãƒ‡ãƒ¢ã‚’検索"
#: editor/plugins/asset_library_editor_plugin.cpp
msgid "Search assets (excluding templates, projects, and demos)"
-msgstr ""
+msgstr "アセットを検索 (テンプレートã€ãƒ—ロジェクトã€ãƒ‡ãƒ¢ã‚’除ã)"
#: editor/plugins/asset_library_editor_plugin.cpp
msgid "Import..."
@@ -5525,7 +5509,7 @@ msgstr "å…¬å¼"
#: editor/plugins/asset_library_editor_plugin.cpp
msgid "Testing"
-msgstr "テストã™ã‚‹"
+msgstr "試験的"
#: editor/plugins/asset_library_editor_plugin.cpp
msgid "Loading..."
@@ -5537,7 +5521,7 @@ msgstr "アセットã®zipファイル"
#: editor/plugins/audio_stream_editor_plugin.cpp
msgid "Audio Preview Play/Pause"
-msgstr ""
+msgstr "オーディオプレビューã®å†ç”Ÿ/ä¸€æ™‚åœæ­¢"
#: editor/plugins/baked_lightmap_editor_plugin.cpp
msgid ""
@@ -5548,13 +5532,13 @@ msgstr ""
"シーンをä¿å­˜ã—ã¦ã‹ã‚‰å†åº¦è¡Œã£ã¦ãã ã•ã„。"
#: editor/plugins/baked_lightmap_editor_plugin.cpp
-#, fuzzy
msgid ""
"No meshes to bake. Make sure they contain an UV2 channel and that the 'Use "
"In Baked Light' and 'Generate Lightmap' flags are on."
msgstr ""
-"ベイクã™ã‚‹ãƒ¡ãƒƒã‚·ãƒ¥ãŒã‚りã¾ã›ã‚“。メッシュ㫠UV2ãƒãƒ£ãƒ³ãƒãƒ«ãŒå«ã¾ã‚Œã¦ãŠ"
-"りã€'Bake Light' フラグãŒã‚ªãƒ³ã«ãªã£ã¦ã„ã‚‹ã“ã¨ã‚’確èªã—ã¦ãã ã•ã„。"
+"ベイクã™ã‚‹ãƒ¡ãƒƒã‚·ãƒ¥ãŒã‚りã¾ã›ã‚“。メッシュ㫠UV2ãƒãƒ£ãƒ³ãƒãƒ«ãŒå«ã¾ã‚Œã¦ãŠã‚Šã€Use "
+"In Baked Light' 㨠'Generate Lightmap' フラグãŒã‚ªãƒ³ã«ãªã£ã¦ã„ã‚‹ã“ã¨ã‚’確èªã—ã¦"
+"ãã ã•ã„。"
#: editor/plugins/baked_lightmap_editor_plugin.cpp
msgid "Failed creating lightmap images, make sure path is writable."
@@ -5697,6 +5681,18 @@ msgid "Move CanvasItem \"%s\" to (%d, %d)"
msgstr "CanvasItem \"%s\" ã‚’ (%d, %d) ã«ç§»å‹•"
#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Locked"
+msgstr "é¸æŠžå¯¾è±¡ã‚’ãƒ­ãƒƒã‚¯"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Grouped"
+msgstr "グループ"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
msgid ""
"Children of containers have their anchors and margins values overridden by "
"their parent."
@@ -5797,13 +5793,13 @@ msgstr "アンカーを変更"
#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp
-#, fuzzy
msgid ""
"Project Camera Override\n"
"Overrides the running project's camera with the editor viewport camera."
msgstr ""
-"ゲームカメラã®ç½®ãæ›ãˆ\n"
-"エディタã®ãƒ“ューãƒãƒ¼ãƒˆã‚«ãƒ¡ãƒ©ã§ã‚²ãƒ¼ãƒ ã‚«ãƒ¡ãƒ©ã‚’ç½®ãæ›ãˆã‚‹ã€‚"
+"プロジェクトã®ã‚«ãƒ¡ãƒ©ã®ã‚ªãƒ¼ãƒãƒ¼ãƒ©ã‚¤ãƒ‰\n"
+"実行中ã®ãƒ—ロジェクトã®ã‚«ãƒ¡ãƒ©ã‚’ã€ã‚¨ãƒ‡ã‚£ã‚¿ã®ãƒ“ューãƒãƒ¼ãƒˆã‚«ãƒ¡ãƒ©ã§ã‚ªãƒ¼ãƒãƒ¼ãƒ©ã‚¤ãƒ‰"
+"ã—ã¾ã™ã€‚"
#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp
@@ -5812,6 +5808,9 @@ msgid ""
"No project instance running. Run the project from the editor to use this "
"feature."
msgstr ""
+"プロジェクトã®ã‚«ãƒ¡ãƒ©ã®ã‚ªãƒ¼ãƒãƒ¼ãƒ©ã‚¤ãƒ‰\n"
+"実行中ã®ãƒ—ロジェクトã®ã‚¤ãƒ³ã‚¹ã‚¿ãƒ³ã‚¹ã¯ã‚りã¾ã›ã‚“。ã“ã®æ©Ÿèƒ½ã‚’使用ã™ã‚‹ã«ã¯ã€ã‚¨"
+"ディターã‹ã‚‰ãƒ—ロジェクトを実行ã—ã¾ã™ã€‚"
#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp
@@ -5877,31 +5876,27 @@ msgstr "é¸æŠžãƒ¢ãƒ¼ãƒ‰"
#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp
-#, fuzzy
msgid "Drag: Rotate selected node around pivot."
-msgstr "é¸æŠžã—ãŸãƒŽãƒ¼ãƒ‰ã¾ãŸã¯ãƒˆãƒ©ãƒ³ã‚¸ã‚·ãƒ§ãƒ³ã‚’除去。"
+msgstr "ドラッグ: é¸æŠžã—ãŸãƒŽãƒ¼ãƒ‰ã‚’ピボットを中心ã«å›žè»¢ã™ã‚‹ã€‚"
#: editor/plugins/canvas_item_editor_plugin.cpp
-#, fuzzy
msgid "Alt+Drag: Move selected node."
-msgstr "Alt+ドラッグ: 移動"
+msgstr "Alt+ドラッグ: é¸æŠžã—ãŸãƒŽãƒ¼ãƒ‰ã‚’移動。"
#: editor/plugins/canvas_item_editor_plugin.cpp
-#, fuzzy
msgid "V: Set selected node's pivot position."
-msgstr "é¸æŠžã—ãŸãƒŽãƒ¼ãƒ‰ã¾ãŸã¯ãƒˆãƒ©ãƒ³ã‚¸ã‚·ãƒ§ãƒ³ã‚’除去。"
+msgstr "V: é¸æŠžã—ãŸãƒŽãƒ¼ãƒ‰ã®ãƒ”ボットã®ä½ç½®ã‚’設定ã™ã‚‹ã€‚"
#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp
-#, fuzzy
msgid "Alt+RMB: Show list of all nodes at position clicked, including locked."
msgstr ""
-"クリックã—ãŸä½ç½®ã«ã‚るオブジェクトã®ãƒªã‚¹ãƒˆã‚’表示\n"
-"(é¸æŠžãƒ¢ãƒ¼ãƒ‰ã§ã®Alt+å³ã‚¯ãƒªãƒƒã‚¯ã¨åŒã˜)。"
+"Alt+å³ã‚¯ãƒªãƒƒã‚¯: クリックã—ãŸä½ç½®ã®ã™ã¹ã¦ã®ãƒŽãƒ¼ãƒ‰ã‚’一覧ã§è¡¨ç¤ºã€‚ロックã•れãŸã‚‚"
+"ã®ã‚‚å«ã‚€ã€‚"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "RMB: Add node at position clicked."
-msgstr ""
+msgstr "å³ã‚¯ãƒªãƒƒã‚¯: クリックã—ãŸä½ç½®ã«ãƒŽãƒ¼ãƒ‰ã‚’追加。"
#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp
@@ -6011,7 +6006,7 @@ msgstr "ガイドã«ã‚¹ãƒŠãƒƒãƒ—"
#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp
msgid "Lock the selected object in place (can't be moved)."
-msgstr "é¸æŠžã—ãŸã‚ªãƒ–ジェクトをç¾åœ¨ä½ç½®ã§ãƒ­ãƒƒã‚¯ (移動ä¸å¯èƒ½ã«ã™ã‚‹)。"
+msgstr "é¸æŠžã—ãŸã‚ªãƒ–ジェクトã®ä½ç½®ã‚’ロック (移動ä¸å¯èƒ½ã«ã™ã‚‹)。"
#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp
@@ -6138,14 +6133,12 @@ msgid "Clear Pose"
msgstr "ãƒãƒ¼ã‚ºã‚’クリアã™ã‚‹"
#: editor/plugins/canvas_item_editor_plugin.cpp
-#, fuzzy
msgid "Add Node Here"
-msgstr "ノードを追加"
+msgstr "ã“ã“ã«ãƒŽãƒ¼ãƒ‰ã‚’追加"
#: editor/plugins/canvas_item_editor_plugin.cpp
-#, fuzzy
msgid "Instance Scene Here"
-msgstr "シーンã®ã‚¤ãƒ³ã‚¹ã‚¿ãƒ³ã‚¹åŒ–"
+msgstr "ã“ã“ã«ã‚·ãƒ¼ãƒ³ã‚’インスタンス化ã™ã‚‹"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Multiply grid step by 2"
@@ -6161,49 +6154,43 @@ msgstr "ビューをパン"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Zoom to 3.125%"
-msgstr ""
+msgstr "3.125%ã«ã‚ºãƒ¼ãƒ "
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Zoom to 6.25%"
-msgstr ""
+msgstr "6.25%ã«ã‚ºãƒ¼ãƒ "
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Zoom to 12.5%"
-msgstr ""
+msgstr "12.5%ã«ã‚ºãƒ¼ãƒ "
#: editor/plugins/canvas_item_editor_plugin.cpp
-#, fuzzy
msgid "Zoom to 25%"
-msgstr "ズームアウト"
+msgstr "25%ã«ã‚ºãƒ¼ãƒ "
#: editor/plugins/canvas_item_editor_plugin.cpp
-#, fuzzy
msgid "Zoom to 50%"
-msgstr "ズームアウト"
+msgstr "50%ã«ã‚ºãƒ¼ãƒ "
#: editor/plugins/canvas_item_editor_plugin.cpp
-#, fuzzy
msgid "Zoom to 100%"
-msgstr "ズームアウト"
+msgstr "100%ã«ã‚ºãƒ¼ãƒ "
#: editor/plugins/canvas_item_editor_plugin.cpp
-#, fuzzy
msgid "Zoom to 200%"
-msgstr "ズームアウト"
+msgstr "200%ã«ã‚ºãƒ¼ãƒ "
#: editor/plugins/canvas_item_editor_plugin.cpp
-#, fuzzy
msgid "Zoom to 400%"
-msgstr "ズームアウト"
+msgstr "400%ã«ã‚ºãƒ¼ãƒ "
#: editor/plugins/canvas_item_editor_plugin.cpp
-#, fuzzy
msgid "Zoom to 800%"
-msgstr "ズームアウト"
+msgstr "800%ã«ã‚ºãƒ¼ãƒ "
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Zoom to 1600%"
-msgstr ""
+msgstr "1600%ã«ã‚ºãƒ¼ãƒ "
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Add %s"
@@ -6276,7 +6263,7 @@ msgstr "放出マスクをクリア"
#: editor/plugins/particles_2d_editor_plugin.cpp
#: editor/plugins/particles_editor_plugin.cpp
msgid "Particles"
-msgstr "パーティクル"
+msgstr "Particles"
#: editor/plugins/cpu_particles_2d_editor_plugin.cpp
#: editor/plugins/particles_2d_editor_plugin.cpp
@@ -6315,7 +6302,7 @@ msgstr "放出色"
#: editor/plugins/cpu_particles_editor_plugin.cpp
msgid "CPUParticles"
-msgstr "CPUパーティクル"
+msgstr "CPUParticles"
#: editor/plugins/cpu_particles_editor_plugin.cpp
#: editor/plugins/particles_editor_plugin.cpp
@@ -6421,7 +6408,7 @@ msgstr "オクルーダーãƒãƒªã‚´ãƒ³ã‚’生æˆ"
#: editor/plugins/mesh_instance_editor_plugin.cpp
msgid "Mesh is empty!"
-msgstr "メッシュãŒã‚りã¾ã›ã‚“!"
+msgstr "メッシュãŒã‚りã¾ã›ã‚“ï¼"
#: editor/plugins/mesh_instance_editor_plugin.cpp
msgid "Couldn't create a Trimesh collision shape."
@@ -6433,7 +6420,7 @@ msgstr "三角形メッシュé™çš„ボディを作æˆ"
#: editor/plugins/mesh_instance_editor_plugin.cpp
msgid "This doesn't work on scene root!"
-msgstr "ã“れã¯ã‚·ãƒ¼ãƒ³ã®ãƒ«ãƒ¼ãƒˆã§ã¯æ©Ÿèƒ½ã—ã¾ã›ã‚“!"
+msgstr "ã“れã¯ã‚·ãƒ¼ãƒ³ã®ãƒ«ãƒ¼ãƒˆã§ã¯æ©Ÿèƒ½ã—ã¾ã›ã‚“ï¼"
#: editor/plugins/mesh_instance_editor_plugin.cpp
msgid "Create Trimesh Static Shape"
@@ -6449,9 +6436,8 @@ msgid "Couldn't create a single convex collision shape."
msgstr "å˜ä¸€ã®å‡¸åž‹ã‚³ãƒªã‚¸ãƒ§ãƒ³ã‚·ã‚§ã‚¤ãƒ—を作æˆã§ãã¾ã›ã‚“ã§ã—ãŸã€‚"
#: editor/plugins/mesh_instance_editor_plugin.cpp
-#, fuzzy
msgid "Create Simplified Convex Shape"
-msgstr "å˜ä¸€ã®å‡¸åž‹ã‚·ã‚§ã‚¤ãƒ—を作æˆã™ã‚‹"
+msgstr "簡略化ã•れãŸå‡¸åž‹ã‚·ã‚§ã‚¤ãƒ—を作æˆã™ã‚‹"
#: editor/plugins/mesh_instance_editor_plugin.cpp
msgid "Create Single Convex Shape"
@@ -6480,16 +6466,15 @@ msgstr "å«ã¾ã‚Œã¦ã„るメッシュãŒArrayMeshåž‹ã§ã¯ã‚りã¾ã›ã‚“。"
#: editor/plugins/mesh_instance_editor_plugin.cpp
msgid "UV Unwrap failed, mesh may not be manifold?"
-msgstr "UV展開ã«å¤±æ•—ã—ã¾ã—ãŸã€‚メッシュãŒéžå¤šæ§˜ä½“ã§ã¯ã‚りã¾ã›ã‚“ã‹?"
+msgstr "UV展開ã«å¤±æ•—ã—ã¾ã—ãŸã€‚メッシュãŒéžå¤šæ§˜ä½“ã§ã¯ã‚りã¾ã›ã‚“ã‹ï¼Ÿ"
#: editor/plugins/mesh_instance_editor_plugin.cpp
msgid "No mesh to debug."
msgstr "デãƒãƒƒã‚°ã™ã‚‹ãƒ¡ãƒƒã‚·ãƒ¥ãŒã‚りã¾ã›ã‚“。"
#: editor/plugins/mesh_instance_editor_plugin.cpp
-#, fuzzy
msgid "Mesh has no UV in layer %d."
-msgstr "モデルã«ã¯ã“ã®ãƒ¬ã‚¤ãƒ¤ãƒ¼ã«UVãŒã‚りã¾ã›ã‚“"
+msgstr "メッシュã®ãƒ¬ã‚¤ãƒ¤ãƒ¼ %dã«UVãŒã‚りã¾ã›ã‚“。"
#: editor/plugins/mesh_instance_editor_plugin.cpp
msgid "MeshInstance lacks a Mesh!"
@@ -6497,15 +6482,15 @@ msgstr "MeshInstanceã«ãƒ¡ãƒƒã‚·ãƒ¥ãŒã‚りã¾ã›ã‚“ï¼"
#: editor/plugins/mesh_instance_editor_plugin.cpp
msgid "Mesh has not surface to create outlines from!"
-msgstr "メッシュã«ã‚¢ã‚¦ãƒˆãƒ©ã‚¤ãƒ³ã‚’作æˆã™ã‚‹ãŸã‚ã®ã‚µãƒ¼ãƒ•ェスãŒå­˜åœ¨ã—ã¾ã›ã‚“!"
+msgstr "メッシュã«ã‚¢ã‚¦ãƒˆãƒ©ã‚¤ãƒ³ã‚’作æˆã™ã‚‹ãŸã‚ã®ã‚µãƒ¼ãƒ•ェスãŒå­˜åœ¨ã—ã¾ã›ã‚“ï¼"
#: editor/plugins/mesh_instance_editor_plugin.cpp
msgid "Mesh primitive type is not PRIMITIVE_TRIANGLES!"
-msgstr "メッシュã®ãƒ—リミティブ型㌠PRIMITIVE_TRIANGLES ã§ã¯ã‚りã¾ã›ã‚“!"
+msgstr "メッシュã®ãƒ—リミティブ型㌠PRIMITIVE_TRIANGLES ã§ã¯ã‚りã¾ã›ã‚“ï¼"
#: editor/plugins/mesh_instance_editor_plugin.cpp
msgid "Could not create outline!"
-msgstr "アウトラインを生æˆã§ãã¾ã›ã‚“ã§ã—ãŸ!"
+msgstr "アウトラインを生æˆã§ãã¾ã›ã‚“ã§ã—ãŸï¼"
#: editor/plugins/mesh_instance_editor_plugin.cpp
msgid "Create Outline"
@@ -6554,9 +6539,8 @@ msgstr ""
"ã“れã¯ã€è¡çªæ¤œå‡ºã®æœ€é€Ÿã®(ãŸã ã—ç²¾åº¦ãŒæœ€ã‚‚低ã„)オプションã§ã™ã€‚"
#: editor/plugins/mesh_instance_editor_plugin.cpp
-#, fuzzy
msgid "Create Simplified Convex Collision Sibling"
-msgstr "å˜ä¸€ã®å‡¸åž‹ã‚³ãƒªã‚¸ãƒ§ãƒ³ã®å…„弟を作æˆ"
+msgstr "簡略化ã•れãŸå‡¸åž‹ã‚³ãƒªã‚¸ãƒ§ãƒ³ã®å…„弟を作æˆ"
#: editor/plugins/mesh_instance_editor_plugin.cpp
msgid ""
@@ -6564,6 +6548,9 @@ msgid ""
"This is similar to single collision shape, but can result in a simpler "
"geometry in some cases, at the cost of accuracy."
msgstr ""
+"簡略化ã•れãŸå‡¸åž‹ã‚³ãƒªã‚¸ãƒ§ãƒ³ã‚·ã‚§ã‚¤ãƒ—を作æˆã—ã¾ã™ã€‚\n"
+"ã“れã¯å˜ä¸€ã®å‡¸åž‹ã‚³ãƒªã‚¸ãƒ§ãƒ³ã‚·ã‚§ã‚¤ãƒ—ã¨ä¼¼ã¦ã„ã¾ã™ãŒã€ç²¾åº¦ã‚’犠牲ã«ã‚ˆã‚Šå˜ç´”ãªã‚¸ã‚ª"
+"メトリã«ãªã‚‹ã“ã¨ãŒã‚りã¾ã™ã€‚"
#: editor/plugins/mesh_instance_editor_plugin.cpp
msgid "Create Multiple Convex Collision Siblings"
@@ -6644,7 +6631,13 @@ msgid "Remove Selected Item"
msgstr "é¸æŠžã—ãŸã‚¢ã‚¤ãƒ†ãƒ ã‚’å–り除ã"
#: editor/plugins/mesh_library_editor_plugin.cpp
-msgid "Import from Scene"
+#, fuzzy
+msgid "Import from Scene (Ignore Transforms)"
+msgstr "シーンã‹ã‚‰ã‚¤ãƒ³ãƒãƒ¼ãƒˆ"
+
+#: editor/plugins/mesh_library_editor_plugin.cpp
+#, fuzzy
+msgid "Import from Scene (Apply Transforms)"
msgstr "シーンã‹ã‚‰ã‚¤ãƒ³ãƒãƒ¼ãƒˆ"
#: editor/plugins/mesh_library_editor_plugin.cpp
@@ -7171,7 +7164,7 @@ msgstr "ボーンをãƒãƒªã‚´ãƒ³ã«åŒæœŸã•ã›ã‚‹"
#: editor/plugins/resource_preloader_editor_plugin.cpp
msgid "ERROR: Couldn't load resource!"
-msgstr "エラー: リソースを読ã¿è¾¼ã‚ã¾ã›ã‚“ã§ã—ãŸ!"
+msgstr "エラー: リソースを読ã¿è¾¼ã‚ã¾ã›ã‚“ã§ã—ãŸï¼"
#: editor/plugins/resource_preloader_editor_plugin.cpp
msgid "Add Resource"
@@ -7188,7 +7181,7 @@ msgstr "リソースを削除"
#: editor/plugins/resource_preloader_editor_plugin.cpp
msgid "Resource clipboard is empty!"
-msgstr "リソースクリップボードãŒç©ºã§ã™!"
+msgstr "リソースクリップボードãŒç©ºã§ã™ï¼"
#: editor/plugins/resource_preloader_editor_plugin.cpp
msgid "Paste Resource"
@@ -7220,9 +7213,8 @@ msgid "ResourcePreloader"
msgstr "ResourcePreloader"
#: editor/plugins/room_manager_editor_plugin.cpp
-#, fuzzy
msgid "Flip Portals"
-msgstr "å·¦å³å転"
+msgstr "ãƒãƒ¼ã‚¿ãƒ«ã‚’å転"
#: editor/plugins/room_manager_editor_plugin.cpp
#, fuzzy
@@ -7235,9 +7227,18 @@ msgid "Generate Points"
msgstr "生æˆã—ãŸãƒã‚¤ãƒ³ãƒˆã®æ•°:"
#: editor/plugins/room_manager_editor_plugin.cpp
-#, fuzzy
msgid "Flip Portal"
-msgstr "å·¦å³å転"
+msgstr "ãƒãƒ¼ã‚¿ãƒ«ã‚’å転"
+
+#: editor/plugins/room_manager_editor_plugin.cpp
+#, fuzzy
+msgid "Occluder Set Transform"
+msgstr "トランスフォームをクリア"
+
+#: editor/plugins/room_manager_editor_plugin.cpp
+#, fuzzy
+msgid "Center Node"
+msgstr "ノードを生æˆ"
#: editor/plugins/root_motion_editor_plugin.cpp
msgid "AnimationTree has no path set to an AnimationPlayer"
@@ -7253,7 +7254,7 @@ msgstr "最近開ã„ãŸãƒ•ァイルã®å±¥æ­´ã‚’クリア"
#: editor/plugins/script_editor_plugin.cpp
msgid "Close and save changes?"
-msgstr "変更をä¿å­˜ã—ã¦é–‰ã˜ã¾ã™ã‹?"
+msgstr "変更をä¿å­˜ã—ã¦é–‰ã˜ã¾ã™ã‹ï¼Ÿ"
#: editor/plugins/script_editor_plugin.cpp
msgid "Error writing TextFile:"
@@ -7265,7 +7266,7 @@ msgstr "ファイルãŒèª­ã¿è¾¼ã‚ã¾ã›ã‚“ã§ã—ãŸ:"
#: editor/plugins/script_editor_plugin.cpp
msgid "Error saving file!"
-msgstr "ファイルã®ä¿å­˜ã‚¨ãƒ©ãƒ¼!"
+msgstr "ファイルã®ä¿å­˜ã‚¨ãƒ©ãƒ¼ï¼"
#: editor/plugins/script_editor_plugin.cpp
msgid "Error while saving theme."
@@ -7347,7 +7348,7 @@ msgstr "å‰ã‚’検索"
#: editor/plugins/script_editor_plugin.cpp
msgid "Filter scripts"
-msgstr "フィルタスクリプト"
+msgstr "スクリプトã®ãƒ•ィルタ"
#: editor/plugins/script_editor_plugin.cpp
msgid "Toggle alphabetical sorting of the method list."
@@ -7469,7 +7470,7 @@ msgstr "続行"
#: editor/plugins/script_editor_plugin.cpp
msgid "Keep Debugger Open"
-msgstr "デãƒãƒƒã‚¬ã‚’é–‹ã„ãŸã¾ã¾ã«"
+msgstr "デãƒãƒƒã‚¬ã‚’é–‹ã„ãŸã¾ã¾ã«ã™ã‚‹"
#: editor/plugins/script_editor_plugin.cpp
msgid "Debug with External Editor"
@@ -7506,7 +7507,7 @@ msgid ""
"What action should be taken?:"
msgstr ""
"以下ã®ãƒ•ァイルより新ã—ã„ã‚‚ã®ãŒãƒ‡ã‚£ã‚¹ã‚¯ä¸Šã«å­˜åœ¨ã—ã¾ã™ã€‚\n"
-"ã©ã†ã—ã¾ã™ã‹?:"
+"ã©ã†ã—ã¾ã™ã‹ï¼Ÿ:"
#: editor/plugins/script_editor_plugin.cpp editor/script_editor_debugger.cpp
msgid "Debugger"
@@ -7721,7 +7722,7 @@ msgid ""
"What action should be taken?"
msgstr ""
"ã“ã®ã‚·ã‚§ãƒ¼ãƒ€ãƒ¼ã¯ãƒ‡ã‚£ã‚¹ã‚¯ä¸Šã§ä¿®æ­£ã•れã¦ã„ã¾ã™ã€‚\n"
-"ã©ã†ã—ã¾ã™ã‹?"
+"ã©ã†ã—ã¾ã™ã‹ï¼Ÿ"
#: editor/plugins/shader_editor_plugin.cpp
msgid "Shader"
@@ -7744,12 +7745,14 @@ msgid "Skeleton2D"
msgstr "Skeleton2D"
#: editor/plugins/skeleton_2d_editor_plugin.cpp
-msgid "Make Rest Pose (From Bones)"
-msgstr "レスト・ãƒãƒ¼ã‚ºã®ä½œæˆ(ボーンã‹ã‚‰)"
+#, fuzzy
+msgid "Reset to Rest Pose"
+msgstr "レスト・ãƒãƒ¼ã‚ºã¸ãƒœãƒ¼ãƒ³ã‚’設定ã™ã‚‹"
#: editor/plugins/skeleton_2d_editor_plugin.cpp
-msgid "Set Bones to Rest Pose"
-msgstr "レスト・ãƒãƒ¼ã‚ºã¸ãƒœãƒ¼ãƒ³ã‚’設定ã™ã‚‹"
+#, fuzzy
+msgid "Overwrite Rest Pose"
+msgstr "上書ã"
#: editor/plugins/skeleton_editor_plugin.cpp
msgid "Create physical bones"
@@ -7776,6 +7779,71 @@ msgid "Perspective"
msgstr "é€è¦–投影"
#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Top Orthogonal"
+msgstr "平行投影"
+
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Top Perspective"
+msgstr "é€è¦–投影"
+
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Bottom Orthogonal"
+msgstr "平行投影"
+
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Bottom Perspective"
+msgstr "é€è¦–投影"
+
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Left Orthogonal"
+msgstr "平行投影"
+
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Right Perspective"
+msgstr "é€è¦–投影"
+
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Right Orthogonal"
+msgstr "平行投影"
+
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Front Orthogonal"
+msgstr "平行投影"
+
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Front Perspective"
+msgstr "é€è¦–投影"
+
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Rear Orthogonal"
+msgstr "平行投影"
+
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Rear Perspective"
+msgstr "é€è¦–投影"
+
+#. TRANSLATORS: This will be appended to the view name when Auto Orthogonal is enabled.
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid " [auto]"
+msgstr ""
+
+#. TRANSLATORS: This will be appended to the view name when Portal Occulusion is enabled.
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid " [portals active]"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
msgid "Transform Aborted."
msgstr "トランスフォームã¯ä¸­æ­¢ã•れã¾ã—ãŸã€‚"
@@ -7802,20 +7870,17 @@ msgid "None"
msgstr "None"
#: editor/plugins/spatial_editor_plugin.cpp
-#, fuzzy
msgid "Rotate"
-msgstr "回転モード"
+msgstr "回転"
#. TRANSLATORS: This refers to the movement that changes the position of an object.
#: editor/plugins/spatial_editor_plugin.cpp
-#, fuzzy
msgid "Translate"
-msgstr "移動:"
+msgstr "移動"
#: editor/plugins/spatial_editor_plugin.cpp
-#, fuzzy
msgid "Scale"
-msgstr "スケール:"
+msgstr "スケール"
#: editor/plugins/spatial_editor_plugin.cpp
msgid "Scaling: "
@@ -7838,52 +7903,44 @@ msgid "Animation Key Inserted."
msgstr "ã‚¢ãƒ‹ãƒ¡ãƒ¼ã‚·ãƒ§ãƒ³ã‚­ãƒ¼ãŒæŒ¿å…¥ã•れã¾ã—ãŸã€‚"
#: editor/plugins/spatial_editor_plugin.cpp
-#, fuzzy
msgid "Pitch:"
-msgstr "ピッãƒ"
+msgstr "ピッãƒ:"
#: editor/plugins/spatial_editor_plugin.cpp
msgid "Yaw:"
-msgstr ""
+msgstr "ヨー:"
#: editor/plugins/spatial_editor_plugin.cpp
-#, fuzzy
msgid "Size:"
-msgstr "サイズ: "
+msgstr "サイズ:"
#: editor/plugins/spatial_editor_plugin.cpp
-#, fuzzy
msgid "Objects Drawn:"
-msgstr "æç”»ã•れãŸã‚ªãƒ–ジェクト"
+msgstr "æç”»ã•れãŸã‚ªãƒ–ジェクト:"
#: editor/plugins/spatial_editor_plugin.cpp
-#, fuzzy
msgid "Material Changes:"
-msgstr "マテリアルã®å¤‰æ›´"
+msgstr "マテリアルã®å¤‰æ›´:"
#: editor/plugins/spatial_editor_plugin.cpp
-#, fuzzy
msgid "Shader Changes:"
-msgstr "シェーダーã®å¤‰æ›´"
+msgstr "シェーダーã®å¤‰æ›´:"
#: editor/plugins/spatial_editor_plugin.cpp
-#, fuzzy
msgid "Surface Changes:"
-msgstr "サーフェスã®å¤‰æ›´"
+msgstr "サーフェスã®å¤‰æ›´:"
#: editor/plugins/spatial_editor_plugin.cpp
-#, fuzzy
msgid "Draw Calls:"
-msgstr "ドローコール"
+msgstr "ドローコール:"
#: editor/plugins/spatial_editor_plugin.cpp
-#, fuzzy
msgid "Vertices:"
-msgstr "頂点"
+msgstr "頂点:"
#: editor/plugins/spatial_editor_plugin.cpp
msgid "FPS: %d (%s ms)"
-msgstr ""
+msgstr "FPS: %d (%s ms)"
#: editor/plugins/spatial_editor_plugin.cpp
msgid "Top View."
@@ -7894,42 +7951,22 @@ msgid "Bottom View."
msgstr "下é¢å›³ã€‚"
#: editor/plugins/spatial_editor_plugin.cpp
-msgid "Bottom"
-msgstr "下é¢"
-
-#: editor/plugins/spatial_editor_plugin.cpp
msgid "Left View."
msgstr "å·¦å´é¢å›³ã€‚"
#: editor/plugins/spatial_editor_plugin.cpp
-msgid "Left"
-msgstr "å·¦å´é¢"
-
-#: editor/plugins/spatial_editor_plugin.cpp
msgid "Right View."
msgstr "å³å´é¢å›³ã€‚"
#: editor/plugins/spatial_editor_plugin.cpp
-msgid "Right"
-msgstr "å³å´é¢"
-
-#: editor/plugins/spatial_editor_plugin.cpp
msgid "Front View."
msgstr "å‰é¢å›³ã€‚"
#: editor/plugins/spatial_editor_plugin.cpp
-msgid "Front"
-msgstr "å‰é¢"
-
-#: editor/plugins/spatial_editor_plugin.cpp
msgid "Rear View."
msgstr "後é¢å›³."
#: editor/plugins/spatial_editor_plugin.cpp
-msgid "Rear"
-msgstr "後é¢"
-
-#: editor/plugins/spatial_editor_plugin.cpp
msgid "Align Transform with View"
msgstr "トランスフォームをビューã«åˆã‚ã›ã‚‹"
@@ -8038,9 +8075,8 @@ msgid "Freelook Slow Modifier"
msgstr "ãƒ•ãƒªãƒ¼ãƒ«ãƒƒã‚¯ã®æ¸›é€Ÿèª¿æ•´"
#: editor/plugins/spatial_editor_plugin.cpp
-#, fuzzy
msgid "Toggle Camera Preview"
-msgstr "カメラサイズを変更"
+msgstr "カメラã®ãƒ—レビューを切り替ãˆ"
#: editor/plugins/spatial_editor_plugin.cpp
msgid "View Rotation Locked"
@@ -8050,6 +8086,8 @@ msgstr "ビューã®å›žè»¢ã‚’固定中"
msgid ""
"To zoom further, change the camera's clipping planes (View -> Settings...)"
msgstr ""
+"ã•らã«ã‚ºãƒ¼ãƒ ã™ã‚‹ã«ã¯ã€ã‚«ãƒ¡ãƒ©ã®ã‚¯ãƒªãƒƒãƒ”ングé¢ã‚’変更ã—ã¦ãã ã•ã„ (ビュー -> 設"
+"定...)"
#: editor/plugins/spatial_editor_plugin.cpp
msgid ""
@@ -8083,7 +8121,6 @@ msgstr ""
"åŠé–‹ãã®ç›®: ギズモã¯éžé€æ˜Žãªé¢ã‚’通ã—ã¦ã‚‚å¯è¦– (「Xç·šã€)。"
#: editor/plugins/spatial_editor_plugin.cpp
-#, fuzzy
msgid "Snap Nodes to Floor"
msgstr "ノードをフロアã«ã‚¹ãƒŠãƒƒãƒ—"
@@ -8190,16 +8227,20 @@ msgstr "ギズモ"
#: editor/plugins/spatial_editor_plugin.cpp
msgid "View Origin"
-msgstr "ビューã®åŽŸç‚¹"
+msgstr "原点を表示"
#: editor/plugins/spatial_editor_plugin.cpp
msgid "View Grid"
-msgstr "ビューã®ã‚°ãƒªãƒƒãƒ‰"
+msgstr "グリッドを表示"
#: editor/plugins/spatial_editor_plugin.cpp
-#, fuzzy
msgid "View Portal Culling"
-msgstr "ビューãƒãƒ¼ãƒˆã®è¨­å®š"
+msgstr "ãƒãƒ¼ã‚¿ãƒ«ã‚«ãƒªãƒ³ã‚°ã‚’表示"
+
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "View Occlusion Culling"
+msgstr "ãƒãƒ¼ã‚¿ãƒ«ã‚«ãƒªãƒ³ã‚°ã‚’表示"
#: editor/plugins/spatial_editor_plugin.cpp
#: modules/gridmap/grid_map_editor_plugin.cpp
@@ -8232,11 +8273,11 @@ msgstr "視野角(度):"
#: editor/plugins/spatial_editor_plugin.cpp
msgid "View Z-Near:"
-msgstr "Z-Nearを表示:"
+msgstr "Z-Nearã®è¡¨ç¤º:"
#: editor/plugins/spatial_editor_plugin.cpp
msgid "View Z-Far:"
-msgstr "Z-Farを表示:"
+msgstr "Z-Farã®è¡¨ç¤º:"
#: editor/plugins/spatial_editor_plugin.cpp
msgid "Transform Change"
@@ -8267,8 +8308,9 @@ msgid "Post"
msgstr "後"
#: editor/plugins/spatial_editor_plugin.cpp
-msgid "Nameless gizmo"
-msgstr "ç„¡åã®ã‚®ã‚ºãƒ¢"
+#, fuzzy
+msgid "Unnamed Gizmo"
+msgstr "åç„¡ã—ã®ãƒ—ロジェクト"
#: editor/plugins/sprite_editor_plugin.cpp
msgid "Create Mesh2D"
@@ -8304,7 +8346,7 @@ msgstr "LightOccluder2D プレビュー"
#: editor/plugins/sprite_editor_plugin.cpp
msgid "Sprite is empty!"
-msgstr "スプライトã¯ç©ºã§ã™!"
+msgstr "スプライトã¯ç©ºã§ã™ï¼"
#: editor/plugins/sprite_editor_plugin.cpp
msgid "Can't convert a sprite using animation frames to mesh."
@@ -8384,11 +8426,11 @@ msgstr "ç”»åƒã‚’読ã¿è¾¼ã‚ã¾ã›ã‚“ã§ã—ãŸ:"
#: editor/plugins/sprite_frames_editor_plugin.cpp
msgid "ERROR: Couldn't load frame resource!"
-msgstr "エラー:フレームリソースを読ã¿è¾¼ã‚ã¾ã›ã‚“ã§ã—ãŸ!"
+msgstr "エラー:フレームリソースを読ã¿è¾¼ã‚ã¾ã›ã‚“ã§ã—ãŸï¼"
#: editor/plugins/sprite_frames_editor_plugin.cpp
msgid "Resource clipboard is empty or not a texture!"
-msgstr "リソースクリップボードã¯ç©ºã‹ã€ãƒ†ã‚¯ã‚¹ãƒãƒ£ä»¥å¤–ã®ã‚‚ã®ã§ã™!"
+msgstr "リソースクリップボードã¯ç©ºã‹ã€ãƒ†ã‚¯ã‚¹ãƒãƒ£ä»¥å¤–ã®ã‚‚ã®ã§ã™ï¼"
#: editor/plugins/sprite_frames_editor_plugin.cpp
msgid "Paste Frame"
@@ -8519,106 +8561,92 @@ msgid "TextureRegion"
msgstr "テクスãƒãƒ£é ˜åŸŸ"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Colors"
-msgstr "Color"
+msgstr "カラー"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Fonts"
msgstr "フォント"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Icons"
msgstr "アイコン"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Styleboxes"
-msgstr "スタイル"
+msgstr "StyleBox"
#: editor/plugins/theme_editor_plugin.cpp
msgid "{num} color(s)"
-msgstr ""
+msgstr "{num} 個ã®ã‚«ãƒ©ãƒ¼"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "No colors found."
-msgstr "サブリソースãŒè¦‹ã¤ã‹ã‚Šã¾ã›ã‚“ã§ã—ãŸã€‚"
+msgstr "カラーãŒè¦‹ã¤ã‹ã‚Šã¾ã›ã‚“ã§ã—ãŸã€‚"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "{num} constant(s)"
-msgstr "定数"
+msgstr "{num} 個ã®å®šæ•°"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "No constants found."
-msgstr "Color定数。"
+msgstr "定数ãŒè¦‹ã¤ã‹ã‚Šã¾ã›ã‚“ã§ã—ãŸã€‚"
#: editor/plugins/theme_editor_plugin.cpp
msgid "{num} font(s)"
-msgstr ""
+msgstr "{num} 個ã®ãƒ•ォント"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "No fonts found."
-msgstr "見ã¤ã‹ã‚Šã¾ã›ã‚“!"
+msgstr "フォントãŒè¦‹ã¤ã‹ã‚Šã¾ã›ã‚“ã§ã—ãŸã€‚"
#: editor/plugins/theme_editor_plugin.cpp
msgid "{num} icon(s)"
-msgstr ""
+msgstr "{num} 個ã®ã‚¢ã‚¤ã‚³ãƒ³"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "No icons found."
-msgstr "見ã¤ã‹ã‚Šã¾ã›ã‚“!"
+msgstr "アイコンãŒè¦‹ã¤ã‹ã‚Šã¾ã›ã‚“ã§ã—ãŸã€‚"
#: editor/plugins/theme_editor_plugin.cpp
msgid "{num} stylebox(es)"
-msgstr ""
+msgstr "{num} 個ã®ã‚¹ã‚«ã‚¤ãƒœãƒƒã‚¯ã‚¹"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "No styleboxes found."
-msgstr "サブリソースãŒè¦‹ã¤ã‹ã‚Šã¾ã›ã‚“ã§ã—ãŸã€‚"
+msgstr "StyleBoxãŒè¦‹ã¤ã‹ã‚Šã¾ã›ã‚“ã§ã—ãŸã€‚"
#: editor/plugins/theme_editor_plugin.cpp
msgid "{num} currently selected"
-msgstr ""
+msgstr "{num} 個 ç¾åœ¨é¸æŠžä¸­"
#: editor/plugins/theme_editor_plugin.cpp
msgid "Nothing was selected for the import."
-msgstr ""
+msgstr "インãƒãƒ¼ãƒˆã™ã‚‹ã‚‚ã®ãŒé¸æŠžã•れã¦ã„ã¾ã›ã‚“。"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Importing Theme Items"
-msgstr "テーマã®ã‚¤ãƒ³ãƒãƒ¼ãƒˆ"
+msgstr "テーマã®ã‚¢ã‚¤ãƒ†ãƒ ã‚’インãƒãƒ¼ãƒˆä¸­"
#: editor/plugins/theme_editor_plugin.cpp
msgid "Importing items {n}/{n}"
-msgstr ""
+msgstr "アイテムをインãƒãƒ¼ãƒˆä¸­ {n}/{n}"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Updating the editor"
-msgstr "エディタを終了ã—ã¾ã™ã‹ï¼Ÿ"
+msgstr "エディタをアップデート中"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Finalizing"
-msgstr "分æžä¸­"
+msgstr "終了処ç†ä¸­"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Filter:"
-msgstr "フィルタ: "
+msgstr "フィルタ:"
#: editor/plugins/theme_editor_plugin.cpp
msgid "With Data"
-msgstr ""
+msgstr "データ付"
#: editor/plugins/theme_editor_plugin.cpp
#, fuzzy
@@ -8626,76 +8654,71 @@ msgid "Select by data type:"
msgstr "ãƒŽãƒ¼ãƒ‰ã‚’é¸æŠž"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Select all visible color items."
-msgstr "設定項目を設定ã—ã¦ãã ã•ã„!"
+msgstr "表示中ã®ã™ã¹ã¦ã®ã‚«ãƒ©ãƒ¼ã‚¢ã‚¤ãƒ†ãƒ ã‚’é¸æŠžã™ã‚‹ã€‚"
#: editor/plugins/theme_editor_plugin.cpp
msgid "Select all visible color items and their data."
-msgstr ""
+msgstr "表示中ã®ã™ã¹ã¦ã®ã‚«ãƒ©ãƒ¼ã‚¢ã‚¤ãƒ†ãƒ ã¨ãã®ãƒ‡ãƒ¼ã‚¿ã‚’é¸æŠžã™ã‚‹ã€‚"
#: editor/plugins/theme_editor_plugin.cpp
msgid "Deselect all visible color items."
-msgstr ""
+msgstr "表示中ã®ã™ã¹ã¦ã®ã‚«ãƒ©ãƒ¼ã‚¢ã‚¤ãƒ†ãƒ ã‚’é¸æŠžè§£é™¤ã™ã‚‹ã€‚"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Select all visible constant items."
-msgstr "è¨­å®šé …ç›®ã‚’é¸æŠžã—ã¦ãã ã•ã„!"
+msgstr "表示中ã®ã™ã¹ã¦ã®å®šæ•°ã‚¢ã‚¤ãƒ†ãƒ ã‚’é¸æŠžã™ã‚‹ã€‚"
#: editor/plugins/theme_editor_plugin.cpp
msgid "Select all visible constant items and their data."
-msgstr ""
+msgstr "表示中ã®ã™ã¹ã¦ã®å®šæ•°ã‚¢ã‚¤ãƒ†ãƒ ã¨ãã®ãƒ‡ãƒ¼ã‚¿ã‚’é¸æŠžã™ã‚‹ã€‚"
#: editor/plugins/theme_editor_plugin.cpp
msgid "Deselect all visible constant items."
-msgstr ""
+msgstr "表示中ã®ã™ã¹ã¦ã®å®šæ•°ã‚¢ã‚¤ãƒ†ãƒ ã‚’é¸æŠžè§£é™¤ã™ã‚‹ã€‚"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Select all visible font items."
-msgstr "è¨­å®šé …ç›®ã‚’é¸æŠžã—ã¦ãã ã•ã„!"
+msgstr "表示中ã®ã™ã¹ã¦ã®ãƒ•ã‚©ãƒ³ãƒˆã‚¢ã‚¤ãƒ†ãƒ ã‚’é¸æŠžã™ã‚‹ã€‚"
#: editor/plugins/theme_editor_plugin.cpp
msgid "Select all visible font items and their data."
-msgstr ""
+msgstr "表示中ã®ã™ã¹ã¦ã®ãƒ•ォントアイテムã¨ãã®ãƒ‡ãƒ¼ã‚¿ã‚’é¸æŠžã™ã‚‹ã€‚"
#: editor/plugins/theme_editor_plugin.cpp
msgid "Deselect all visible font items."
-msgstr ""
+msgstr "表示中ã®ã™ã¹ã¦ã®ãƒ•ã‚©ãƒ³ãƒˆã‚¢ã‚¤ãƒ†ãƒ ã‚’é¸æŠžè§£é™¤ã™ã‚‹ã€‚"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Select all visible icon items."
-msgstr "è¨­å®šé …ç›®ã‚’é¸æŠžã—ã¦ãã ã•ã„!"
+msgstr "表示中ã®ã™ã¹ã¦ã®ã‚¢ã‚¤ã‚³ãƒ³ã‚¢ã‚¤ãƒ†ãƒ ã‚’é¸æŠžã™ã‚‹ã€‚"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Select all visible icon items and their data."
-msgstr "è¨­å®šé …ç›®ã‚’é¸æŠžã—ã¦ãã ã•ã„!"
+msgstr "表示中ã®ã™ã¹ã¦ã®ã‚¢ã‚¤ã‚³ãƒ³ã‚¢ã‚¤ãƒ†ãƒ ã¨ãã®ãƒ‡ãƒ¼ã‚¿ã‚’é¸æŠžã™ã‚‹ã€‚"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Deselect all visible icon items."
-msgstr "è¨­å®šé …ç›®ã‚’é¸æŠžã—ã¦ãã ã•ã„!"
+msgstr "表示中ã®ã™ã¹ã¦ã®ã‚¢ã‚¤ã‚³ãƒ³ã‚¢ã‚¤ãƒ†ãƒ ã‚’é¸æŠžè§£é™¤ã™ã‚‹ã€‚"
#: editor/plugins/theme_editor_plugin.cpp
msgid "Select all visible stylebox items."
-msgstr ""
+msgstr "表示中ã®ã™ã¹ã¦ã® StyleBox ã‚¢ã‚¤ãƒ†ãƒ ã‚’é¸æŠžã™ã‚‹ã€‚"
#: editor/plugins/theme_editor_plugin.cpp
msgid "Select all visible stylebox items and their data."
-msgstr ""
+msgstr "表示中ã®ã™ã¹ã¦ã® StyleBox アイテムã¨ãã®ãƒ‡ãƒ¼ã‚¿ã‚’é¸æŠžã™ã‚‹ã€‚"
#: editor/plugins/theme_editor_plugin.cpp
msgid "Deselect all visible stylebox items."
-msgstr ""
+msgstr "表示中ã®ã™ã¹ã¦ã® StyleBox ã‚¢ã‚¤ãƒ†ãƒ ã‚’é¸æŠžè§£é™¤ã™ã‚‹ã€‚"
#: editor/plugins/theme_editor_plugin.cpp
msgid ""
"Caution: Adding icon data may considerably increase the size of your Theme "
"resource."
msgstr ""
+"注æ„: アイコンデータを追加ã™ã‚‹ã¨ãƒ†ãƒ¼ãƒž リソースã®ã‚µã‚¤ã‚ºãŒå¤§å¹…ã«å¢—加ã—ã¾ã™ã€‚"
#: editor/plugins/theme_editor_plugin.cpp
#, fuzzy
@@ -8708,27 +8731,24 @@ msgid "Expand types."
msgstr "ã™ã¹ã¦å±•é–‹"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Select all Theme items."
-msgstr "ãƒ†ãƒ³ãƒ—ãƒ¬ãƒ¼ãƒˆãƒ•ã‚¡ã‚¤ãƒ«ã‚’é¸æŠž"
+msgstr "ã™ã¹ã¦ã®ãƒ†ãƒ¼ãƒž ã‚¢ã‚¤ãƒ†ãƒ ã‚’é¸æŠžã™ã‚‹ã€‚"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Select With Data"
-msgstr "ç‚¹ã‚’é¸æŠž"
+msgstr "データ付ãã§é¸æŠž"
#: editor/plugins/theme_editor_plugin.cpp
msgid "Select all Theme items with item data."
-msgstr ""
+msgstr "ã™ã¹ã¦ã®ãƒ†ãƒ¼ãƒž アイテムをã€ã‚¢ã‚¤ãƒ†ãƒ ã®ãƒ‡ãƒ¼ã‚¿ä»˜ãã§é¸æŠžã™ã‚‹ã€‚"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Deselect All"
-msgstr "ã™ã¹ã¦é¸æŠž"
+msgstr "ã™ã¹ã¦é¸æŠžè§£é™¤"
#: editor/plugins/theme_editor_plugin.cpp
msgid "Deselect all Theme items."
-msgstr ""
+msgstr "ã™ã¹ã¦ã®ãƒ†ãƒ¼ãƒž アイテムã®é¸æŠžã‚’解除ã™ã‚‹ã€‚"
#: editor/plugins/theme_editor_plugin.cpp
#, fuzzy
@@ -8749,34 +8769,28 @@ msgid ""
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Remove All Color Items"
-msgstr "ã™ã¹ã¦ã®ã‚¢ã‚¤ãƒ†ãƒ ã‚’除去"
+msgstr "ã™ã¹ã¦ã®ã‚«ãƒ©ãƒ¼ã‚¢ã‚¤ãƒ†ãƒ ã‚’除去"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Rename Item"
-msgstr "アイテムを除去"
+msgstr "アイテムåを変更"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Remove All Constant Items"
-msgstr "ã™ã¹ã¦ã®ã‚¢ã‚¤ãƒ†ãƒ ã‚’除去"
+msgstr "ã™ã¹ã¦ã®å®šæ•°ã‚¢ã‚¤ãƒ†ãƒ ã‚’除去"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Remove All Font Items"
-msgstr "ã™ã¹ã¦ã®ã‚¢ã‚¤ãƒ†ãƒ ã‚’除去"
+msgstr "ã™ã¹ã¦ã®ãƒ•ォントアイテムを除去"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Remove All Icon Items"
-msgstr "ã™ã¹ã¦ã®ã‚¢ã‚¤ãƒ†ãƒ ã‚’除去"
+msgstr "ã™ã¹ã¦ã®ã‚¢ã‚¤ã‚³ãƒ³ã‚¢ã‚¤ãƒ†ãƒ ã‚’除去"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Remove All StyleBox Items"
-msgstr "ã™ã¹ã¦ã®ã‚¢ã‚¤ãƒ†ãƒ ã‚’除去"
+msgstr "ã™ã¹ã¦ã® StyleBox アイテムを除去"
#: editor/plugins/theme_editor_plugin.cpp
msgid ""
@@ -8785,161 +8799,132 @@ msgid ""
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Add Color Item"
-msgstr "クラスアイテム追加"
+msgstr "カラーアイテムã®è¿½åŠ "
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Add Constant Item"
-msgstr "クラスアイテム追加"
+msgstr "定数アイテムã®è¿½åŠ "
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Add Font Item"
-msgstr "アイテムを追加"
+msgstr "フォントアイテムã®è¿½åŠ "
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Add Icon Item"
-msgstr "アイテムを追加"
+msgstr "アイコンアイテムã®è¿½åŠ "
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Add Stylebox Item"
-msgstr "ã™ã¹ã¦ã®ã‚¢ã‚¤ãƒ†ãƒ ã‚’追加"
+msgstr "StyleBox アイテムã®è¿½åŠ "
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Rename Color Item"
-msgstr "クラスアイテム削除"
+msgstr "カラーアイテムåã®å¤‰æ›´"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Rename Constant Item"
-msgstr "クラスアイテム削除"
+msgstr "定数アイテムåã®å¤‰æ›´"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Rename Font Item"
-msgstr "ノードã®åå‰ã‚’変更"
+msgstr "フォントアイテムåã®å¤‰æ›´"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Rename Icon Item"
-msgstr "ノードã®åå‰ã‚’変更"
+msgstr "アイコンアイテムåã®å¤‰æ›´"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Rename Stylebox Item"
-msgstr "é¸æŠžã—ãŸã‚¢ã‚¤ãƒ†ãƒ ã‚’å–り除ã"
+msgstr "StyleBox アイテムåã®å¤‰æ›´"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Invalid file, not a Theme resource."
-msgstr "無効ãªãƒ•ァイルã§ã™ã€‚オーディオãƒã‚¹ã®ãƒ¬ã‚¤ã‚¢ã‚¦ãƒˆã§ã¯ã‚りã¾ã›ã‚“。"
+msgstr "無効ãªãƒ•ァイルã§ã™ã€‚テーマ リソースã§ã¯ã‚りã¾ã›ã‚“。"
#: editor/plugins/theme_editor_plugin.cpp
msgid "Invalid file, same as the edited Theme resource."
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Manage Theme Items"
-msgstr "テンプレートã®ç®¡ç†"
+msgstr "テーマ アイテムã®ç®¡ç†"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Edit Items"
-msgstr "編集å¯èƒ½ãªã‚¢ã‚¤ãƒ†ãƒ "
+msgstr "アイテムを編集"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Types:"
msgstr "åž‹:"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Add Type:"
-msgstr "åž‹:"
+msgstr "型を追加:"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Add Item:"
-msgstr "アイテムを追加"
+msgstr "アイテムを追加:"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Add StyleBox Item"
-msgstr "ã™ã¹ã¦ã®ã‚¢ã‚¤ãƒ†ãƒ ã‚’追加"
+msgstr "StyleBox アイテムã®è¿½åŠ "
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Remove Items:"
-msgstr "アイテムを除去"
+msgstr "アイテムを除去:"
#: editor/plugins/theme_editor_plugin.cpp
msgid "Remove Class Items"
msgstr "クラスアイテム削除"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Remove Custom Items"
-msgstr "クラスアイテム削除"
+msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
msgid "Remove All Items"
msgstr "ã™ã¹ã¦ã®ã‚¢ã‚¤ãƒ†ãƒ ã‚’除去"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Add Theme Item"
-msgstr "GUIテーマã®ã‚¢ã‚¤ãƒ†ãƒ "
+msgstr "テーマ アイテムを追加"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Old Name:"
-msgstr "ノードå:"
+msgstr "æ—§å:"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Import Items"
-msgstr "テーマã®ã‚¤ãƒ³ãƒãƒ¼ãƒˆ"
+msgstr "アイテムã®ã‚¤ãƒ³ãƒãƒ¼ãƒˆ"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Default Theme"
-msgstr "デフォルト"
+msgstr "デフォルトã®ãƒ†ãƒ¼ãƒž"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Editor Theme"
-msgstr "テーマを編集"
+msgstr "エディターã®ãƒ†ãƒ¼ãƒž"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Select Another Theme Resource:"
-msgstr "リソースを削除"
+msgstr "ä»–ã®ãƒ†ãƒ¼ãƒžãƒªã‚½ãƒ¼ã‚¹ã®é¸æŠž:"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Another Theme"
-msgstr "テーマã®ã‚¤ãƒ³ãƒãƒ¼ãƒˆ"
+msgstr "ä»–ã®ãƒ†ãƒ¼ãƒž"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Confirm Item Rename"
-msgstr "Anim トラックåã®å¤‰æ›´"
+msgstr "アイテムå変更ã®ç¢ºèª"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Cancel Item Rename"
-msgstr "åå‰ã®ä¸€æ‹¬å¤‰æ›´"
+msgstr "アイテムå変更をキャンセル"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Override Item"
-msgstr "上書ã"
+msgstr "アイテムを上書ã"
#: editor/plugins/theme_editor_plugin.cpp
msgid "Unpin this StyleBox as a main style."
@@ -8967,51 +8952,44 @@ msgid "Node Types:"
msgstr "ノードタイプ"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Show Default"
-msgstr "デフォルトを読込む"
+msgstr "デフォルトã®è¡¨ç¤º"
#: editor/plugins/theme_editor_plugin.cpp
msgid "Show default type items alongside items that have been overridden."
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Override All"
-msgstr "上書ã"
+msgstr "ã™ã¹ã¦ä¸Šæ›¸ã"
#: editor/plugins/theme_editor_plugin.cpp
msgid "Override all default type items."
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Theme:"
-msgstr "テーマ"
+msgstr "テーマ:"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Manage Items..."
-msgstr "エクスãƒãƒ¼ãƒˆãƒ†ãƒ³ãƒ—レートã®ç®¡ç†..."
+msgstr "アイテムを管ç†..."
#: editor/plugins/theme_editor_plugin.cpp
msgid "Add, remove, organize and import Theme items."
-msgstr ""
+msgstr "テーマアイテムã®è¿½åŠ ã€å‰Šé™¤ã€æ•´ç†ã€ã‚¤ãƒ³ãƒãƒ¼ãƒˆã‚’ã™ã‚‹ã€‚"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Add Preview"
-msgstr "プレビュー"
+msgstr "プレビューを追加"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Default Preview"
-msgstr "プレビューを更新"
+msgstr "デフォルトã®ãƒ—レビュー"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Select UI Scene:"
-msgstr "ã‚½ãƒ¼ã‚¹ãƒ¡ãƒƒã‚·ãƒ¥ã‚’é¸æŠž:"
+msgstr "UIシーンã®é¸æŠž:"
#: editor/plugins/theme_editor_preview.cpp
msgid ""
@@ -9025,7 +9003,7 @@ msgstr "切り替ãˆãƒœã‚¿ãƒ³"
#: editor/plugins/theme_editor_preview.cpp
msgid "Disabled Button"
-msgstr "ボタンを無効ã«ã™ã‚‹"
+msgstr "無効ãªãƒœã‚¿ãƒ³"
#: editor/plugins/theme_editor_preview.cpp
msgid "Item"
@@ -9070,15 +9048,15 @@ msgstr "サブアイテム 2"
#: editor/plugins/theme_editor_preview.cpp
msgid "Has"
-msgstr "å«ã‚“ã§ã„ã‚‹"
+msgstr "Has"
#: editor/plugins/theme_editor_preview.cpp
msgid "Many"
-msgstr "多ãã®"
+msgstr "Many"
#: editor/plugins/theme_editor_preview.cpp
msgid "Disabled LineEdit"
-msgstr "ライン編集を無効ã«ã™ã‚‹"
+msgstr "無効㪠LineEdit"
#: editor/plugins/theme_editor_preview.cpp
msgid "Tab 1"
@@ -9110,12 +9088,11 @@ msgstr ""
#: editor/plugins/theme_editor_preview.cpp
msgid "Invalid PackedScene resource, must have a Control node at its root."
-msgstr ""
+msgstr "無効㪠PackedScene リソースã§ã™ã€‚ルートã«ã¯ Control ノードãŒå¿…è¦ã§ã™ã€‚"
#: editor/plugins/theme_editor_preview.cpp
-#, fuzzy
msgid "Invalid file, not a PackedScene resource."
-msgstr "無効ãªãƒ•ァイルã§ã™ã€‚オーディオãƒã‚¹ã®ãƒ¬ã‚¤ã‚¢ã‚¦ãƒˆã§ã¯ã‚りã¾ã›ã‚“。"
+msgstr "無効ãªãƒ•ァイルã§ã™ã€‚PackedScene ã®ãƒªã‚½ãƒ¼ã‚¹ã§ã¯ã‚りã¾ã›ã‚“。"
#: editor/plugins/theme_editor_preview.cpp
msgid "Reload the scene to reflect its most actual state."
@@ -9189,16 +9166,16 @@ msgid ""
"Shift+LMB: Line Draw\n"
"Shift+Command+LMB: Rectangle Paint"
msgstr ""
-"Shift+左マウスボタン: ç›´ç·šã«æã\n"
-"Shift+Command+左マウスボタン: 長方形ペイント"
+"Shift+左クリック: ç›´ç·šã«æã\n"
+"Shift+Command+左クリック: 長方形ペイント"
#: editor/plugins/tile_map_editor_plugin.cpp
msgid ""
"Shift+LMB: Line Draw\n"
"Shift+Ctrl+LMB: Rectangle Paint"
msgstr ""
-"Shift+左マウスボタン: ç›´ç·šã«æã\n"
-"Shift+Ctrl+左マウスボタン: 長方形ペイント"
+"Shift+左クリック: ç›´ç·šã«æã\n"
+"Shift+Ctrl+左クリック: 長方形ペイント"
#: editor/plugins/tile_map_editor_plugin.cpp
msgid "Pick Tile"
@@ -9386,7 +9363,7 @@ msgstr ""
#: editor/plugins/tile_set_editor_plugin.cpp
msgid "Remove selected texture? This will remove all tiles which use it."
msgstr ""
-"é¸æŠžã—ãŸãƒ†ã‚¯ã‚¹ãƒãƒ£ã‚’除去ã—ã¾ã™ã‹? ã“れを使用ã—ã¦ã„ã‚‹ã™ã¹ã¦ã®ã‚¿ã‚¤ãƒ«ã¯é™¤åŽ»ã•れ"
+"é¸æŠžã—ãŸãƒ†ã‚¯ã‚¹ãƒãƒ£ã‚’除去ã—ã¾ã™ã‹ï¼Ÿ ã“れを使用ã—ã¦ã„ã‚‹ã™ã¹ã¦ã®ã‚¿ã‚¤ãƒ«ã¯é™¤åŽ»ã•れ"
"ã¾ã™ã€‚"
#: editor/plugins/tile_set_editor_plugin.cpp
@@ -9578,7 +9555,7 @@ msgstr "ステージã«è¿½åŠ ã•れã¦ã„るファイルãŒã‚りã¾ã›ã‚“"
#: editor/plugins/version_control_editor_plugin.cpp
msgid "Commit"
-msgstr "委託"
+msgstr "コミット"
#: editor/plugins/version_control_editor_plugin.cpp
msgid "VCS Addon is not initialized"
@@ -9718,7 +9695,7 @@ msgstr "入力デフォルトãƒãƒ¼ãƒˆã®è¨­å®š"
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Add Node to Visual Shader"
-msgstr "ビジュアルシェーダã«ãƒŽãƒ¼ãƒ‰ã‚’追加"
+msgstr "ビジュアルシェーダーã«ãƒŽãƒ¼ãƒ‰ã‚’追加"
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Node(s) Moved"
@@ -9739,7 +9716,7 @@ msgstr "ノードを削除"
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Visual Shader Input Type Changed"
-msgstr "ビジュアルシェーダã®å…¥åŠ›ã‚¿ã‚¤ãƒ—ãŒå¤‰æ›´ã•れã¾ã—ãŸ"
+msgstr "ビジュアルシェーダーã®å…¥åŠ›ã‚¿ã‚¤ãƒ—ãŒå¤‰æ›´ã•れã¾ã—ãŸ"
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "UniformRef Name Changed"
@@ -9879,7 +9856,7 @@ msgstr "ãれ以下(<=)"
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Not Equal (!=)"
-msgstr "ç­‰ã—ããªã„(!=)"
+msgstr "ç­‰ã—ããªã„ (!=)"
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid ""
@@ -9926,7 +9903,7 @@ msgstr ""
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "'%s' input parameter for fragment and light shader modes."
-msgstr "フラグメントモードã¨ãƒ©ã‚¤ãƒˆã‚·ã‚§ãƒ¼ãƒ€ãƒ¢ãƒ¼ãƒ‰ã® '%s' 入力パラメーター。"
+msgstr "フラグメントモードã¨ãƒ©ã‚¤ãƒˆã‚·ã‚§ãƒ¼ãƒ€ãƒ¼ãƒ¢ãƒ¼ãƒ‰ã® '%s' 入力パラメーター。"
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "'%s' input parameter for fragment shader mode."
@@ -9938,7 +9915,7 @@ msgstr "ライトシェーダーモード㮠'%s' 入力パラメータ。"
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "'%s' input parameter for vertex shader mode."
-msgstr "頂点シェーダモード㮠'%s' 入力パラメータ。"
+msgstr "頂点シェーダーモード㮠'%s' 入力パラメータ。"
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "'%s' input parameter for vertex and fragment shader mode."
@@ -10511,13 +10488,12 @@ msgid "VisualShader"
msgstr "VisualShader"
#: editor/plugins/visual_shader_editor_plugin.cpp
-#, fuzzy
msgid "Edit Visual Property:"
-msgstr "ビジュアルプロパティを編集"
+msgstr "ビジュアルプロパティを編集:"
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Visual Shader Mode Changed"
-msgstr "ビジュアルシェーダモードãŒå¤‰æ›´ã•れã¾ã—ãŸ"
+msgstr "ビジュアルシェーダーモードãŒå¤‰æ›´ã•れã¾ã—ãŸ"
#: editor/project_export.cpp
msgid "Runnable"
@@ -10525,7 +10501,7 @@ msgstr "実行å¯èƒ½"
#: editor/project_export.cpp
msgid "Delete preset '%s'?"
-msgstr "プリセット '%s' を削除ã—ã¾ã™ã‹?"
+msgstr "プリセット '%s' を削除ã—ã¾ã™ã‹ï¼Ÿ"
#: editor/project_export.cpp
msgid ""
@@ -10615,7 +10591,7 @@ msgid ""
"(comma-separated, e.g: *.json, *.txt, docs/*)"
msgstr ""
"リソース以外ã®ãƒ•ァイル/フォルダをエクスãƒãƒ¼ãƒˆã™ã‚‹ãŸã‚ã®ãƒ•ィルタ\n"
-"(コンマã§åŒºåˆ‡ã‚‹ã€ 例: *.json,*.txt,docs/*)"
+"(コンマ区切り〠例: *.json, *.txt, docs/*)"
#: editor/project_export.cpp
msgid ""
@@ -10623,7 +10599,7 @@ msgid ""
"(comma-separated, e.g: *.json, *.txt, docs/*)"
msgstr ""
"プロジェクトã‹ã‚‰ãƒ•ァイル/フォルダを除外ã™ã‚‹ãƒ•ィルタ\n"
-"(コンマã§åŒºåˆ‡ã‚‹ã€ 例: *.json,*.txt,docs/*)"
+"(コンマ区切り〠例: *.json, *.txt, docs/*)"
#: editor/project_export.cpp
msgid "Features"
@@ -10642,9 +10618,8 @@ msgid "Script"
msgstr "スクリプト"
#: editor/project_export.cpp
-#, fuzzy
msgid "GDScript Export Mode:"
-msgstr "スクリプトã®ã‚¨ã‚¯ã‚¹ãƒãƒ¼ãƒˆãƒ¢ãƒ¼ãƒ‰:"
+msgstr "GDScript ã®ã‚¨ã‚¯ã‚¹ãƒãƒ¼ãƒˆãƒ¢ãƒ¼ãƒ‰:"
#: editor/project_export.cpp
msgid "Text"
@@ -10652,21 +10627,19 @@ msgstr "テキスト"
#: editor/project_export.cpp
msgid "Compiled Bytecode (Faster Loading)"
-msgstr ""
+msgstr "コンパイルã•れãŸãƒã‚¤ãƒˆã‚³ãƒ¼ãƒ‰ (より高速ãªãƒ­ãƒ¼ãƒ‡ã‚£ãƒ³ã‚°)"
#: editor/project_export.cpp
msgid "Encrypted (Provide Key Below)"
msgstr "æš—å·åŒ–(下ã«ã‚­ãƒ¼ã‚’入力)"
#: editor/project_export.cpp
-#, fuzzy
msgid "Invalid Encryption Key (must be 64 hexadecimal characters long)"
-msgstr "ç„¡åŠ¹ãªæš—å·åŒ–キー(64文字ã§ã‚ã‚‹å¿…è¦ãŒã‚りã¾ã™)"
+msgstr "ç„¡åŠ¹ãªæš—å·åŒ–キー (16進数ã§64文字ã§ã‚ã‚‹å¿…è¦ãŒã‚りã¾ã™)"
#: editor/project_export.cpp
-#, fuzzy
msgid "GDScript Encryption Key (256-bits as hexadecimal):"
-msgstr "スクリプト暗å·åŒ–キー(16進数ã§256ビット):"
+msgstr "GDScript æš—å·åŒ–キー (16進数ã§256ビット):"
#: editor/project_export.cpp
msgid "Export PCK/Zip"
@@ -10741,7 +10714,6 @@ msgid "Imported Project"
msgstr "インãƒãƒ¼ãƒˆã•れãŸãƒ—ロジェクト"
#: editor/project_manager.cpp
-#, fuzzy
msgid "Invalid project name."
msgstr "無効ãªãƒ—ロジェクトåã§ã™ã€‚"
@@ -10787,7 +10759,7 @@ msgstr "次ã®ãƒ•ァイルをパッケージã‹ã‚‰æŠ½å‡ºã§ãã¾ã›ã‚“ã§ã—ãŸ
#: editor/project_manager.cpp
msgid "Package installed successfully!"
-msgstr "パッケージã®ã‚¤ãƒ³ã‚¹ãƒˆãƒ¼ãƒ«ã«æˆåŠŸã—ã¾ã—ãŸ!"
+msgstr "パッケージã®ã‚¤ãƒ³ã‚¹ãƒˆãƒ¼ãƒ«ã«æˆåŠŸã—ã¾ã—ãŸï¼"
#: editor/project_manager.cpp
msgid "Rename Project"
@@ -10892,7 +10864,7 @@ msgstr "次ã®å ´æ‰€ã®ãƒ—ロジェクトを開ã‘ã¾ã›ã‚“ '%s'。"
#: editor/project_manager.cpp
msgid "Are you sure to open more than one project?"
-msgstr "複数ã®ãƒ—ロジェクトを開ã„ã¦ã‚‚よã‚ã—ã„ã§ã™ã‹?"
+msgstr "複数ã®ãƒ—ロジェクトを開ã„ã¦ã‚‚よã‚ã—ã„ã§ã™ã‹ï¼Ÿ"
#: editor/project_manager.cpp
msgid ""
@@ -10930,7 +10902,7 @@ msgstr ""
"\n"
"%s\n"
"\n"
-"変æ›ã—ã¾ã™ã‹?\n"
+"変æ›ã—ã¾ã™ã‹ï¼Ÿ\n"
"警告: ãƒ—ãƒ­ã‚¸ã‚§ã‚¯ãƒˆã¯æ—§ãƒãƒ¼ã‚¸ãƒ§ãƒ³ã®ã‚¨ãƒ³ã‚¸ãƒ³ã§é–‹ãã“ã¨ãŒã§ããªããªã‚Šã¾ã™ã€‚"
#: editor/project_manager.cpp
@@ -10961,24 +10933,22 @@ msgstr ""
#: editor/project_manager.cpp
msgid "Are you sure to run %d projects at once?"
-msgstr "%d個ã®ãƒ—ãƒ­ã‚¸ã‚§ã‚¯ãƒˆã‚’åŒæ™‚ã«å®Ÿè¡Œã—ã¦ã‚‚よã‚ã—ã„ã§ã™ã‹?"
+msgstr "%d個ã®ãƒ—ãƒ­ã‚¸ã‚§ã‚¯ãƒˆã‚’åŒæ™‚ã«å®Ÿè¡Œã—ã¦ã‚‚よã‚ã—ã„ã§ã™ã‹ï¼Ÿ"
#: editor/project_manager.cpp
-#, fuzzy
msgid "Remove %d projects from the list?"
-msgstr "一覧ã‹ã‚‰ãƒ‡ãƒã‚¤ã‚¹ã‚’é¸æŠž"
+msgstr "リストã‹ã‚‰ %d 個ã®ãƒ—ロジェクトを除去ã—ã¾ã™ã‹ï¼Ÿ"
#: editor/project_manager.cpp
-#, fuzzy
msgid "Remove this project from the list?"
-msgstr "一覧ã‹ã‚‰ãƒ‡ãƒã‚¤ã‚¹ã‚’é¸æŠž"
+msgstr "ã“ã®ãƒ—ロジェクトをリストã‹ã‚‰é™¤åŽ»ã—ã¾ã™ã‹ï¼Ÿ"
#: editor/project_manager.cpp
msgid ""
"Remove all missing projects from the list?\n"
"The project folders' contents won't be modified."
msgstr ""
-"見ã¤ã‹ã‚‰ãªã„ã™ã¹ã¦ã®ãƒ—ロジェクトを一覧ã‹ã‚‰å‰Šé™¤ã—ã¾ã™ã‹?\n"
+"見ã¤ã‹ã‚‰ãªã„ã™ã¹ã¦ã®ãƒ—ロジェクトを一覧ã‹ã‚‰å‰Šé™¤ã—ã¾ã™ã‹ï¼Ÿ\n"
"プロジェクトフォルダã®å†…容ã¯å¤‰æ›´ã•れã¾ã›ã‚“。"
#: editor/project_manager.cpp
@@ -10995,7 +10965,7 @@ msgid ""
"Are you sure to scan %s folders for existing Godot projects?\n"
"This could take a while."
msgstr ""
-"既存ã®Godotプロジェクトã®%sフォルダをスキャンã—ã¾ã™ã‹?\n"
+"既存ã®Godotプロジェクトã®%sフォルダをスキャンã—ã¾ã™ã‹ï¼Ÿ\n"
"ã“れã«ã¯ã—ã°ã‚‰ã時間ãŒã‹ã‹ã‚Šã¾ã™ã€‚"
#. TRANSLATORS: This refers to the application where users manage their Godot projects.
@@ -11004,9 +10974,8 @@ msgid "Project Manager"
msgstr "プロジェクトマãƒãƒ¼ã‚¸ãƒ£ãƒ¼"
#: editor/project_manager.cpp
-#, fuzzy
msgid "Local Projects"
-msgstr "プロジェクト"
+msgstr "ローカル プロジェクト"
#: editor/project_manager.cpp
msgid "Loading, please wait..."
@@ -11017,23 +10986,20 @@ msgid "Last Modified"
msgstr "最終更新"
#: editor/project_manager.cpp
-#, fuzzy
msgid "Edit Project"
-msgstr "プロジェクトã®ã‚¨ã‚¯ã‚¹ãƒãƒ¼ãƒˆ"
+msgstr "プロジェクトを編集"
#: editor/project_manager.cpp
-#, fuzzy
msgid "Run Project"
-msgstr "プロジェクトåã®å¤‰æ›´"
+msgstr "プロジェクトを実行"
#: editor/project_manager.cpp
msgid "Scan"
msgstr "スキャン"
#: editor/project_manager.cpp
-#, fuzzy
msgid "Scan Projects"
-msgstr "プロジェクト"
+msgstr "プロジェクトをスキャン"
#: editor/project_manager.cpp
msgid "Select a Folder to Scan"
@@ -11044,14 +11010,12 @@ msgid "New Project"
msgstr "æ–°è¦ãƒ—ロジェクト"
#: editor/project_manager.cpp
-#, fuzzy
msgid "Import Project"
-msgstr "インãƒãƒ¼ãƒˆã•れãŸãƒ—ロジェクト"
+msgstr "プロジェクトをインãƒãƒ¼ãƒˆ"
#: editor/project_manager.cpp
-#, fuzzy
msgid "Remove Project"
-msgstr "プロジェクトåã®å¤‰æ›´"
+msgstr "プロジェクトを除去"
#: editor/project_manager.cpp
msgid "Remove Missing"
@@ -11062,9 +11026,8 @@ msgid "About"
msgstr "概è¦"
#: editor/project_manager.cpp
-#, fuzzy
msgid "Asset Library Projects"
-msgstr "アセットライブラリ"
+msgstr "アセットライブラリã®ãƒ—ロジェクト"
#: editor/project_manager.cpp
msgid "Restart Now"
@@ -11076,7 +11039,7 @@ msgstr "ã™ã¹ã¦é™¤åŽ»"
#: editor/project_manager.cpp
msgid "Also delete project contents (no undo!)"
-msgstr ""
+msgstr "プロジェクトã®å†…容も削除ã•れã¾ã™ (ã‚‚ã¨ã«æˆ»ã›ã¾ã›ã‚“ï¼)"
#: editor/project_manager.cpp
msgid "Can't run project"
@@ -11091,19 +11054,17 @@ msgstr ""
"アセットライブラリã§å…¬å¼ã®ã‚µãƒ³ãƒ—ルプロジェクトをãƒã‚§ãƒƒã‚¯ã—ã¾ã™ã‹ï¼Ÿ"
#: editor/project_manager.cpp
-#, fuzzy
msgid "Filter projects"
-msgstr "フィルタプロパティ"
+msgstr "プロジェクトã®ãƒ•ィルタ"
#: editor/project_manager.cpp
-#, fuzzy
msgid ""
"This field filters projects by name and last path component.\n"
"To filter projects by name and full path, the query must contain at least "
"one `/` character."
msgstr ""
-"検索ボックスã§ã¯ã€ãƒ—ロジェクトã¯åå‰ãŠã‚ˆã³ãƒ‘ã‚¹ã®æœ€å¾Œã®éƒ¨åˆ†ã§ãƒ•ィルターã•れã¾"
-"ã™ã€‚\n"
+"ã“ã®ãƒ•ィールドã¯ã€ãƒ—ロジェクトåã¨ãƒ‘ã‚¹ã®æœ€å¾Œã®éƒ¨åˆ†ã§ãƒ—ロジェクトをフィルタリ"
+"ングã—ã¾ã™ã€‚\n"
"プロジェクトåãŠã‚ˆã³å®Œå…¨ãƒ‘スã§ãƒ•ィルターã™ã‚‹ã«ã¯ã€ã‚¯ã‚¨ãƒªã«ã¯ `/` 文字ãŒå°‘ãªã"
"ã¨ã‚‚1ã¤å¿…è¦ã§ã™ã€‚"
@@ -11261,7 +11222,7 @@ msgstr "グローãƒãƒ«ãƒ—ロパティを追加"
#: editor/project_settings_editor.cpp
msgid "Select a setting item first!"
-msgstr "è¨­å®šé …ç›®ã‚’é¸æŠžã—ã¦ãã ã•ã„!"
+msgstr "è¨­å®šé …ç›®ã‚’é¸æŠžã—ã¦ãã ã•ã„ï¼"
#: editor/project_settings_editor.cpp
msgid "No property '%s' exists."
@@ -11304,9 +11265,8 @@ msgid "Override for Feature"
msgstr "機能ã®ã‚ªãƒ¼ãƒãƒ¼ãƒ©ã‚¤ãƒ‰"
#: editor/project_settings_editor.cpp
-#, fuzzy
msgid "Add %d Translations"
-msgstr "翻訳を追加"
+msgstr "%d 個ã®ç¿»è¨³ã‚’追加"
#: editor/project_settings_editor.cpp
msgid "Remove Translation"
@@ -11439,9 +11399,8 @@ msgid "Plugins"
msgstr "プラグイン"
#: editor/project_settings_editor.cpp
-#, fuzzy
msgid "Import Defaults"
-msgstr "デフォルトを読込む"
+msgstr "インãƒãƒ¼ãƒˆã®æ—¢å®šå€¤"
#: editor/property_editor.cpp
msgid "Preset..."
@@ -11477,7 +11436,7 @@ msgstr "ãƒŽãƒ¼ãƒ‰ã‚’é¸æŠž"
#: editor/property_editor.cpp
msgid "Error loading file: Not a resource!"
-msgstr "ファイル読ã¿è¾¼ã¿ã‚¨ãƒ©ãƒ¼: リソースã§ã¯ã‚りã¾ã›ã‚“!"
+msgstr "ファイル読ã¿è¾¼ã¿ã‚¨ãƒ©ãƒ¼: リソースã§ã¯ã‚りã¾ã›ã‚“ï¼"
#: editor/property_editor.cpp
msgid "Pick a Node"
@@ -11750,7 +11709,7 @@ msgstr "%d ノードを削除ã—ã¾ã™ã‹ï¼Ÿ"
#: editor/scene_tree_dock.cpp
msgid "Delete the root node \"%s\"?"
-msgstr "ルートノード \"%s\" を削除ã—ã¾ã™ã‹?"
+msgstr "ルートノード \"%s\" を削除ã—ã¾ã™ã‹ï¼Ÿ"
#: editor/scene_tree_dock.cpp
msgid "Delete node \"%s\" and its children?"
@@ -11764,12 +11723,16 @@ msgstr "\"%s\" ノードを削除ã—ã¾ã™ã‹ï¼Ÿ"
msgid ""
"Saving the branch as a scene requires having a scene open in the editor."
msgstr ""
+"ブランãƒã‚’シーンã¨ã—ã¦ä¿å­˜ã™ã‚‹ã«ã¯ã€ã‚¨ãƒ‡ã‚£ã‚¿ã§ã‚·ãƒ¼ãƒ³ã‚’é–‹ã„ã¦ã„ã‚‹å¿…è¦ãŒã‚りã¾"
+"ã™ã€‚"
#: editor/scene_tree_dock.cpp
msgid ""
"Saving the branch as a scene requires selecting only one node, but you have "
"selected %d nodes."
msgstr ""
+"ブランãƒã‚’シーンã¨ã—ã¦ä¿å­˜ã™ã‚‹ã«ã¯ã€1ã¤ã ã‘ãƒŽãƒ¼ãƒ‰ã‚’é¸æŠžã™ã‚‹å¿…è¦ãŒã‚りã¾"
+"ã™ã€‚%d 個ã®ãƒŽãƒ¼ãƒ‰ãŒé¸æŠžã•れã¦ã„ã¾ã™ã€‚"
#: editor/scene_tree_dock.cpp
msgid ""
@@ -11836,11 +11799,11 @@ msgstr "ãã®ä»–ã®ãƒŽãƒ¼ãƒ‰"
#: editor/scene_tree_dock.cpp
msgid "Can't operate on nodes from a foreign scene!"
-msgstr "別ã®ã‚·ãƒ¼ãƒ³ã‹ã‚‰ãƒŽãƒ¼ãƒ‰ã‚’æ“作ã™ã‚‹ã“ã¨ã¯ã§ãã¾ã›ã‚“!"
+msgstr "別ã®ã‚·ãƒ¼ãƒ³ã‹ã‚‰ãƒŽãƒ¼ãƒ‰ã‚’æ“作ã™ã‚‹ã“ã¨ã¯ã§ãã¾ã›ã‚“ï¼"
#: editor/scene_tree_dock.cpp
msgid "Can't operate on nodes the current scene inherits from!"
-msgstr "ç¾åœ¨ã®ã‚·ãƒ¼ãƒ³ãŒç¶™æ‰¿ã—ã¦ã„るノードをæ“作ã™ã‚‹ã“ã¨ã¯ã§ãã¾ã›ã‚“!"
+msgstr "ç¾åœ¨ã®ã‚·ãƒ¼ãƒ³ãŒç¶™æ‰¿ã—ã¦ã„るノードをæ“作ã™ã‚‹ã“ã¨ã¯ã§ãã¾ã›ã‚“ï¼"
#: editor/scene_tree_dock.cpp
msgid "This operation can't be done on instanced scenes."
@@ -11977,7 +11940,7 @@ msgstr "ローカル"
#: editor/scene_tree_dock.cpp
msgid "Clear Inheritance? (No Undo!)"
-msgstr "継承をクリアã—ã¾ã™ã‹? (å…ƒã«æˆ»ã›ã¾ã›ã‚“!)"
+msgstr "継承をクリアã—ã¾ã™ã‹ï¼Ÿ (å…ƒã«æˆ»ã›ã¾ã›ã‚“ï¼)"
#: editor/scene_tree_editor.cpp
msgid "Toggle Visible"
@@ -12041,7 +12004,7 @@ msgid ""
"Click to make selectable."
msgstr ""
"å­ã‚’é¸æŠžã§ãã¾ã›ã‚“。\n"
-"クリックã—ã¦é¸æŠžå¯èƒ½ã«ã—ã¦ãã ã•ã„。"
+"クリックã§é¸æŠžå¯èƒ½ã«ã™ã‚‹ã€‚"
#: editor/scene_tree_editor.cpp
msgid "Toggle Visibility"
@@ -12069,7 +12032,7 @@ msgstr "シーンツリー(ノード):"
#: editor/scene_tree_editor.cpp
msgid "Node Configuration Warning!"
-msgstr "ノードã®è¨­å®šã«é–¢ã™ã‚‹è­¦å‘Š!"
+msgstr "ノードã®è¨­å®šã«é–¢ã™ã‚‹è­¦å‘Šï¼"
#: editor/scene_tree_editor.cpp
msgid "Select a Node"
@@ -12188,6 +12151,7 @@ msgid ""
"Warning: Having the script name be the same as a built-in type is usually "
"not desired."
msgstr ""
+"警告: スクリプトåを組ã¿è¾¼ã¿åž‹ã¨åŒã˜ã«ã™ã‚‹ã“ã¨ã¯ã€é€šå¸¸ã¯æœ›ã¾ã—ãã‚りã¾ã›ã‚“。"
#: editor/script_create_dialog.cpp
msgid "Class Name:"
@@ -12259,7 +12223,7 @@ msgstr "エラーをコピー"
#: editor/script_editor_debugger.cpp
msgid "Open C++ Source on GitHub"
-msgstr ""
+msgstr "C++ã®ã‚½ãƒ¼ã‚¹ã‚’GitHubã§é–‹ã"
#: editor/script_editor_debugger.cpp
msgid "Video RAM"
@@ -12438,14 +12402,22 @@ msgid "Change Ray Shape Length"
msgstr "レイシェイプã®é•·ã•を変更"
#: editor/spatial_editor_gizmos.cpp
-#, fuzzy
msgid "Set Room Point Position"
-msgstr "カーブãƒã‚¤ãƒ³ãƒˆã®ä½ç½®ã‚’設定"
+msgstr "Room ãƒã‚¤ãƒ³ãƒˆã®ä½ç½®ã‚’設定"
#: editor/spatial_editor_gizmos.cpp
-#, fuzzy
msgid "Set Portal Point Position"
-msgstr "カーブãƒã‚¤ãƒ³ãƒˆã®ä½ç½®ã‚’設定"
+msgstr "Portal ãƒã‚¤ãƒ³ãƒˆã®ä½ç½®ã‚’設定"
+
+#: editor/spatial_editor_gizmos.cpp
+#, fuzzy
+msgid "Set Occluder Sphere Radius"
+msgstr "円柱シェイプã®åŠå¾„を変更"
+
+#: editor/spatial_editor_gizmos.cpp
+#, fuzzy
+msgid "Set Occluder Sphere Position"
+msgstr "曲線ã®In-Controlã®ä½ç½®ã‚’指定"
#: modules/csg/csg_gizmos.cpp
msgid "Change Cylinder Radius"
@@ -12521,7 +12493,7 @@ msgstr "GDNative"
#: modules/gdscript/gdscript_functions.cpp
msgid "Step argument is zero!"
-msgstr "ステップ引数ã¯ã‚¼ãƒ­ã§ã™!"
+msgstr "ステップ引数ã¯ã‚¼ãƒ­ã§ã™ï¼"
#: modules/gdscript/gdscript_functions.cpp
msgid "Not a script with an instance"
@@ -12556,14 +12528,12 @@ msgid "Object can't provide a length."
msgstr "オブジェクトã«é•·ã•ãŒã‚りã¾ã›ã‚“."
#: modules/gltf/editor_scene_exporter_gltf_plugin.cpp
-#, fuzzy
msgid "Export Mesh GLTF2"
-msgstr "メッシュライブラリã®ã‚¨ã‚¯ã‚¹ãƒãƒ¼ãƒˆ"
+msgstr "メッシュ㮠GLTF2 エクスãƒãƒ¼ãƒˆ"
#: modules/gltf/editor_scene_exporter_gltf_plugin.cpp
-#, fuzzy
msgid "Export GLTF..."
-msgstr "エクスãƒãƒ¼ãƒˆ..."
+msgstr "GLTF をエクスãƒãƒ¼ãƒˆ..."
#: modules/gridmap/grid_map_editor_plugin.cpp
msgid "Next Plane"
@@ -12606,9 +12576,8 @@ msgid "GridMap Paint"
msgstr "GridMap ペイント"
#: modules/gridmap/grid_map_editor_plugin.cpp
-#, fuzzy
msgid "GridMap Selection"
-msgstr "GridMap é¸æŠžç¯„å›²ã‚’åŸ‹ã‚ã‚‹"
+msgstr "GridMap ã®é¸æŠž"
#: modules/gridmap/grid_map_editor_plugin.cpp
msgid "Grid Map"
@@ -12725,14 +12694,18 @@ msgid "Post processing"
msgstr "後処ç†"
#: modules/lightmapper_cpu/lightmapper_cpu.cpp
-#, fuzzy
msgid "Plotting lightmaps"
-msgstr "å…‰æºã‚’æç”»ä¸­:"
+msgstr "ライトマップをæç”»ä¸­:"
#: modules/mono/csharp_script.cpp
msgid "Class name can't be a reserved keyword"
msgstr "クラスåを予約キーワードã«ã™ã‚‹ã“ã¨ã¯ã§ãã¾ã›ã‚“"
+#: modules/mono/csharp_script.cpp
+#, fuzzy
+msgid "Build Solution"
+msgstr "é¸æŠžéƒ¨ã®å¡—り潰ã—"
+
#: modules/mono/mono_gd/gd_mono_utils.cpp
msgid "End of inner exception stack trace"
msgstr "内部例外スタックトレースã®çµ‚了"
@@ -12795,7 +12768,7 @@ msgstr "ジオメトリを解æžã—ã¦ã„ã¾ã™..."
#: modules/recast/navigation_mesh_generator.cpp
msgid "Done!"
-msgstr "完了!"
+msgstr "完了ï¼"
#: modules/visual_script/visual_script.cpp
msgid ""
@@ -12803,7 +12776,7 @@ msgid ""
"properly!"
msgstr ""
"作業メモリãªã—ã§ãƒŽãƒ¼ãƒ‰ãŒç”Ÿæˆã•れã¾ã—ãŸã€‚æ­£ã—ã生æˆã™ã‚‹æ–¹æ³•ã«ã¤ã„ã¦ã¯ã€ãƒ‰ã‚­ãƒ¥"
-"メントをå‚ç…§ã—ã¦ãã ã•ã„!"
+"メントをå‚ç…§ã—ã¦ãã ã•ã„ï¼"
#: modules/visual_script/visual_script.cpp
msgid ""
@@ -12828,7 +12801,7 @@ msgstr "ノードã¯ç„¡åйãªã‚·ãƒ¼ã‚¯ã‚¨ãƒ³ã‚¹å‡ºåŠ›ã‚’è¿”ã—ã¾ã—ãŸ: "
msgid "Found sequence bit but not the node in the stack, report bug!"
msgstr ""
"スタックã«ã‚·ãƒ¼ã‚¯ã‚¨ãƒ³ã‚¹ãƒ“ットを見ã¤ã‘ã¾ã—ãŸãŒã€ãƒŽãƒ¼ãƒ‰ã§ã¯ã‚りã¾ã›ã‚“。ãƒã‚°å ±å‘Š"
-"ã‚’!"
+"ã‚’ï¼"
#: modules/visual_script/visual_script.cpp
msgid "Stack overflow with stack depth: "
@@ -12863,14 +12836,12 @@ msgid "Add Output Port"
msgstr "出力ãƒãƒ¼ãƒˆã‚’追加"
#: modules/visual_script/visual_script_editor.cpp
-#, fuzzy
msgid "Change Port Type"
-msgstr "型を変更"
+msgstr "ãƒãƒ¼ãƒˆã®åž‹ã‚’変更"
#: modules/visual_script/visual_script_editor.cpp
-#, fuzzy
msgid "Change Port Name"
-msgstr "入力ãƒãƒ¼ãƒˆåã®å¤‰æ›´"
+msgstr "ãƒãƒ¼ãƒˆåを変更"
#: modules/visual_script/visual_script_editor.cpp
msgid "Override an existing built-in function."
@@ -12988,7 +12959,6 @@ msgid "Add Preload Node"
msgstr "プリロードノードを追加"
#: modules/visual_script/visual_script_editor.cpp
-#, fuzzy
msgid "Add Node(s)"
msgstr "ノードを追加"
@@ -13175,7 +13145,7 @@ msgstr "インデックスプロパティåãŒç„¡åйã§ã™ã€‚"
#: modules/visual_script/visual_script_func_nodes.cpp
msgid "Base object is not a Node!"
-msgstr "ベースオブジェクトã¯ãƒŽãƒ¼ãƒ‰ã§ã¯ã‚りã¾ã›ã‚“!"
+msgstr "ベースオブジェクトã¯ãƒŽãƒ¼ãƒ‰ã§ã¯ã‚りã¾ã›ã‚“ï¼"
#: modules/visual_script/visual_script_func_nodes.cpp
msgid "Path does not lead Node!"
@@ -13221,73 +13191,67 @@ msgstr "VisualScriptを検索"
msgid "Get %s"
msgstr "%s ã‚’å–å¾—"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Package name is missing."
msgstr "パッケージåãŒã‚りã¾ã›ã‚“。"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Package segments must be of non-zero length."
msgstr "パッケージセグメントã®é•·ã•ã¯0以外ã§ãªã‘れã°ãªã‚Šã¾ã›ã‚“。"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "The character '%s' is not allowed in Android application package names."
msgstr "文字 '%s' ã¯Androidアプリケーション パッケージåã«ä½¿ç”¨ã§ãã¾ã›ã‚“。"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "A digit cannot be the first character in a package segment."
msgstr "数字をパッケージセグメントã®å…ˆé ­ã«ä½¿ç”¨ã§ãã¾ã›ã‚“。"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "The character '%s' cannot be the first character in a package segment."
msgstr "文字 '%s' ã¯ãƒ‘ッケージ セグメントã®å…ˆé ­ã«ä½¿ç”¨ã§ãã¾ã›ã‚“。"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "The package must have at least one '.' separator."
msgstr "パッケージã«ã¯ä¸€ã¤ä»¥ä¸Šã®åŒºåˆ‡ã‚Šæ–‡å­— '.' ãŒå¿…è¦ã§ã™ã€‚"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Select device from the list"
msgstr "一覧ã‹ã‚‰ãƒ‡ãƒã‚¤ã‚¹ã‚’é¸æŠž"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Running on %s"
-msgstr ""
+msgstr "%s ã§å®Ÿè¡Œä¸­"
-#: platform/android/export/export.cpp
-#, fuzzy
+#: platform/android/export/export_plugin.cpp
msgid "Exporting APK..."
-msgstr "ã™ã¹ã¦ã‚¨ã‚¯ã‚¹ãƒãƒ¼ãƒˆ"
+msgstr "APKをエクスãƒãƒ¼ãƒˆä¸­..."
-#: platform/android/export/export.cpp
-#, fuzzy
+#: platform/android/export/export_plugin.cpp
msgid "Uninstalling..."
-msgstr "アンインストール"
+msgstr "アンインストール中..."
-#: platform/android/export/export.cpp
-#, fuzzy
+#: platform/android/export/export_plugin.cpp
msgid "Installing to device, please wait..."
-msgstr "読ã¿è¾¼ã¿ä¸­ã€ã—ã°ã‚‰ããŠå¾…ã¡ãã ã•ã„..."
+msgstr "デãƒã‚¤ã‚¹ã«ã‚¤ãƒ³ã‚¹ãƒˆãƒ¼ãƒ«ä¸­ã€ã—ã°ã‚‰ããŠå¾…ã¡ãã ã•ã„..."
-#: platform/android/export/export.cpp
-#, fuzzy
+#: platform/android/export/export_plugin.cpp
msgid "Could not install to device: %s"
-msgstr "サブプロセスを開始ã§ãã¾ã›ã‚“ã§ã—ãŸ!"
+msgstr "デãƒã‚¤ã‚¹ã«ã‚¤ãƒ³ã‚¹ãƒˆãƒ¼ãƒ«ã§ãã¾ã›ã‚“ã§ã—ãŸ: %s"
-#: platform/android/export/export.cpp
-#, fuzzy
+#: platform/android/export/export_plugin.cpp
msgid "Running on device..."
-msgstr "カスタムスクリプトã®å®Ÿè¡Œä¸­..."
+msgstr "デãƒã‚¤ã‚¹ã§å®Ÿè¡Œä¸­..."
-#: platform/android/export/export.cpp
-#, fuzzy
+#: platform/android/export/export_plugin.cpp
msgid "Could not execute on device."
-msgstr "フォルダを作æˆã§ãã¾ã›ã‚“ã§ã—ãŸã€‚"
+msgstr "デãƒã‚¤ã‚¹ã§å®Ÿè¡Œã§ãã¾ã›ã‚“ã§ã—ãŸã€‚"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Unable to find the 'apksigner' tool."
msgstr "'apksigner' ツールãŒè¦‹ã¤ã‹ã‚Šã¾ã›ã‚“。"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Android build template not installed in the project. Install it from the "
"Project menu."
@@ -13295,63 +13259,63 @@ msgstr ""
"Android ビルド テンプレートãŒãƒ—ロジェクトã«ã‚¤ãƒ³ã‚¹ãƒˆãƒ¼ãƒ«ã•れã¦ã„ã¾ã›ã‚“。[プロ"
"ジェクト] メニューã‹ã‚‰ã‚¤ãƒ³ã‚¹ãƒˆãƒ¼ãƒ«ã—ã¾ã™ã€‚"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Either Debug Keystore, Debug User AND Debug Password settings must be "
"configured OR none of them."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Debug keystore not configured in the Editor Settings nor in the preset."
msgstr "デãƒãƒƒã‚°ã‚­ãƒ¼ã‚¹ãƒˆã‚¢ãŒã‚¨ãƒ‡ã‚£ã‚¿è¨­å®šã«ã‚‚プリセットã«ã‚‚設定ã•れã¦ã„ã¾ã›ã‚“。"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Either Release Keystore, Release User AND Release Password settings must be "
"configured OR none of them."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Release keystore incorrectly configured in the export preset."
msgstr "エクスãƒãƒ¼ãƒˆè¨­å®šã«ã¦ãƒªãƒªãƒ¼ã‚¹ キーストアãŒèª¤ã£ã¦è¨­å®šã•れã¦ã„ã¾ã™ã€‚"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "A valid Android SDK path is required in Editor Settings."
msgstr "エディタ設定ã§Android SDKãƒ‘ã‚¹ã®æŒ‡å®šãŒå¿…è¦ã§ã™ã€‚"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Invalid Android SDK path in Editor Settings."
msgstr "エディタ設定ã®Android SDKパスãŒç„¡åйã§ã™ã€‚"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Missing 'platform-tools' directory!"
msgstr "'platform-tools' ディレクトリãŒã‚りã¾ã›ã‚“ï¼"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Unable to find Android SDK platform-tools' adb command."
msgstr "Android SDK platform-toolsã®adbコマンドãŒè¦‹ã¤ã‹ã‚Šã¾ã›ã‚“。"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Please check in the Android SDK directory specified in Editor Settings."
msgstr "ã‚¨ãƒ‡ã‚£ã‚¿è¨­å®šã§æŒ‡å®šã•れãŸAndroid SDKã®ãƒ‡ã‚£ãƒ¬ã‚¯ãƒˆãƒªã‚’確èªã—ã¦ãã ã•ã„。"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Missing 'build-tools' directory!"
msgstr "'build-tools' ディレクトリãŒã‚りã¾ã›ã‚“ï¼"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Unable to find Android SDK build-tools' apksigner command."
msgstr "Android SDK build-toolsã®apksignerコマンドãŒè¦‹ã¤ã‹ã‚Šã¾ã›ã‚“。"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Invalid public key for APK expansion."
msgstr "APK expansion ã®å…¬é–‹éµãŒç„¡åйã§ã™ã€‚"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Invalid package name:"
msgstr "無効ãªãƒ‘ッケージå:"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Invalid \"GodotPaymentV3\" module included in the \"android/modules\" "
"project setting (changed in Godot 3.2.2).\n"
@@ -13359,99 +13323,82 @@ msgstr ""
"「android/modulesã€ã«å«ã¾ã‚Œã‚‹ã€ŒGodotPaymentV3ã€ãƒ¢ã‚¸ãƒ¥ãƒ¼ãƒ«ã®ãƒ—ロジェクト設定ãŒ"
"無効ã§ã™ (Godot 3.2.2 ã«ã¦å¤‰æ›´)。\n"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "\"Use Custom Build\" must be enabled to use the plugins."
msgstr ""
"プラグインを利用ã™ã‚‹ã«ã¯ã€ŒUse Custom Build (カスタムビルドを使用ã™ã‚‹)ã€ãŒæœ‰åй"
"ã«ãªã£ã¦ã„ã‚‹å¿…è¦ãŒã‚りã¾ã™ã€‚"
-#: platform/android/export/export.cpp
-msgid ""
-"\"Degrees Of Freedom\" is only valid when \"Xr Mode\" is \"Oculus Mobile VR"
-"\"."
-msgstr ""
-"\"Degrees Of Freedom\" 㯠\"Xr Mode\" ㌠\"Oculus Mobile VR\" ã®å ´åˆã«ã®ã¿æœ‰"
-"効ã«ãªã‚Šã¾ã™ã€‚"
-
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"\"Hand Tracking\" is only valid when \"Xr Mode\" is \"Oculus Mobile VR\"."
msgstr ""
"\"Hand Tracking\" 㯠\"Xr Mode\" ㌠\"Oculus Mobile VR\" ã®å ´åˆã«ã®ã¿æœ‰åйã«ãª"
"りã¾ã™ã€‚"
-#: platform/android/export/export.cpp
-msgid ""
-"\"Focus Awareness\" is only valid when \"Xr Mode\" is \"Oculus Mobile VR\"."
-msgstr ""
-"\"Focus Awareness\" 㯠\"Xr Mode\" ㌠\"Oculus Mobile VR\" ã®å ´åˆã«ã®ã¿æœ‰åйã«"
-"ãªã‚Šã¾ã™ã€‚"
-
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "\"Export AAB\" is only valid when \"Use Custom Build\" is enabled."
msgstr ""
"\"Export AAB\" 㯠\"Use Custom Build\" ãŒæœ‰åйã§ã‚ã‚‹å ´åˆã«ã®ã¿æœ‰åйã«ãªã‚Šã¾ã™ã€‚"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"'apksigner' could not be found.\n"
"Please check the command is available in the Android SDK build-tools "
"directory.\n"
"The resulting %s is unsigned."
msgstr ""
+"'apksigner' ãŒè¦‹ã¤ã‹ã‚Šã¾ã›ã‚“ã§ã—ãŸã€‚\n"
+"ã“ã®ã‚³ãƒžãƒ³ãƒ‰ãŒ Android SDK build-tools ディレクトリã«ã‚ã‚‹ã‹ç¢ºèªã—ã¦ãã ã•"
+"ã„。\n"
+"%s ã¯ç½²åã•れã¾ã›ã‚“ã§ã—ãŸã€‚"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Signing debug %s..."
-msgstr ""
+msgstr "デãƒãƒƒã‚° %s ã«ç½²å中..."
-#: platform/android/export/export.cpp
-#, fuzzy
+#: platform/android/export/export_plugin.cpp
msgid "Signing release %s..."
-msgstr ""
-"ファイルã®ã‚¹ã‚­ãƒ£ãƒ³ä¸­\n"
-"ã—ã°ã‚‰ããŠå¾…ã¡ä¸‹ã•ã„..."
+msgstr "リリース %s ã«ç½²å中..."
-#: platform/android/export/export.cpp
-#, fuzzy
+#: platform/android/export/export_plugin.cpp
msgid "Could not find keystore, unable to export."
-msgstr "エクスãƒãƒ¼ãƒˆç”¨ã®ãƒ†ãƒ³ãƒ—レートを開ã‘ã¾ã›ã‚“ã§ã—ãŸ:"
+msgstr "キーストアãŒè¦‹ã¤ã‹ã‚‰ãªã„ãŸã‚ã€ã‚¨ã‚¯ã‚¹ãƒãƒ¼ãƒˆã§ãã¾ã›ã‚“。"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "'apksigner' returned with error #%d"
-msgstr ""
+msgstr "'apksigner' ãŒã‚¨ãƒ©ãƒ¼ #%d ã§çµ‚了ã—ã¾ã—ãŸ"
-#: platform/android/export/export.cpp
-#, fuzzy
+#: platform/android/export/export_plugin.cpp
msgid "Verifying %s..."
-msgstr "%s を追加中..."
+msgstr "%s を検証中..."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "'apksigner' verification of %s failed."
-msgstr ""
+msgstr "'apksigner' ã«ã‚ˆã‚‹ %s ã®æ¤œè¨¼ã«å¤±æ•—ã—ã¾ã—ãŸã€‚"
-#: platform/android/export/export.cpp
-#, fuzzy
+#: platform/android/export/export_plugin.cpp
msgid "Exporting for Android"
-msgstr "ã™ã¹ã¦ã‚¨ã‚¯ã‚¹ãƒãƒ¼ãƒˆ"
+msgstr "Android用ã«ã‚¨ã‚¯ã‚¹ãƒãƒ¼ãƒˆä¸­"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Invalid filename! Android App Bundle requires the *.aab extension."
msgstr ""
"無効ãªãƒ•ァイルåã§ã™ï¼ Android App Bundle ã«ã¯æ‹¡å¼µå­ *.aab ãŒå¿…è¦ã§ã™ã€‚"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "APK Expansion not compatible with Android App Bundle."
msgstr "APK Expansion 㯠Android App Bundle ã¨ã¯äº’æ›æ€§ãŒã‚りã¾ã›ã‚“。"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Invalid filename! Android APK requires the *.apk extension."
msgstr "無効ãªãƒ•ァイルåã§ã™ï¼ Android APKã«ã¯æ‹¡å¼µå­ *.apk ãŒå¿…è¦ã§ã™ã€‚"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Unsupported export format!\n"
-msgstr ""
+msgstr "サãƒãƒ¼ãƒˆã•れã¦ã„ãªã„エクスãƒãƒ¼ãƒˆãƒ•ォーマットã§ã™ï¼\n"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Trying to build from a custom built template, but no version info for it "
"exists. Please reinstall from the 'Project' menu."
@@ -13459,7 +13406,7 @@ msgstr ""
"カスタムビルドã•れãŸãƒ†ãƒ³ãƒ—レートã‹ã‚‰ãƒ“ルドã—よã†ã¨ã—ã¾ã—ãŸãŒã€ãã®ãƒãƒ¼ã‚¸ãƒ§ãƒ³"
"情報ãŒå­˜åœ¨ã—ã¾ã›ã‚“。 「プロジェクトã€ãƒ¡ãƒ‹ãƒ¥ãƒ¼ã‹ã‚‰å†ã‚¤ãƒ³ã‚¹ãƒˆãƒ¼ãƒ«ã—ã¦ãã ã•ã„。"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Android build version mismatch:\n"
" Template installed: %s\n"
@@ -13472,26 +13419,25 @@ msgstr ""
"「プロジェクト ã€ãƒ¡ãƒ‹ãƒ¥ãƒ¼ã‹ã‚‰Androidビルドテンプレートをå†ã‚¤ãƒ³ã‚¹ãƒˆãƒ¼ãƒ«ã—ã¦ã"
"ã ã•ã„。"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Unable to overwrite res://android/build/res/*.xml files with project name"
msgstr ""
-#: platform/android/export/export.cpp
-#, fuzzy
+#: platform/android/export/export_plugin.cpp
msgid "Could not export project files to gradle project\n"
-msgstr "project.godotをプロジェクトパスã«ç”Ÿæˆã§ãã¾ã›ã‚“ã§ã—ãŸ"
+msgstr ""
+"プロジェクトファイルをgladleプロジェクトã«ã‚¨ã‚¯ã‚¹ãƒãƒ¼ãƒˆã§ãã¾ã›ã‚“ã§ã—ãŸ\n"
-#: platform/android/export/export.cpp
-#, fuzzy
+#: platform/android/export/export_plugin.cpp
msgid "Could not write expansion package file!"
-msgstr "ファイルを書ãè¾¼ã‚ã¾ã›ã‚“ã§ã—ãŸ:"
+msgstr "拡張パッケージファイルを書ãè¾¼ã‚ã¾ã›ã‚“ã§ã—ãŸï¼"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Building Android Project (gradle)"
msgstr "Androidãƒ—ãƒ­ã‚¸ã‚§ã‚¯ãƒˆã®æ§‹ç¯‰(gradle)"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Building of Android project failed, check output for the error.\n"
"Alternatively visit docs.godotengine.org for Android build documentation."
@@ -13500,11 +13446,11 @@ msgstr ""
"ã¾ãŸã€Androidビルドã«ã¤ã„ã¦ã®ãƒ‰ã‚­ãƒ¥ãƒ¡ãƒ³ãƒˆã¯ docs.godotengine.org ã‚’ã”覧ãã ã•"
"ã„。"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Moving output"
msgstr "å‡ºåŠ›çµæžœã®ç§»å‹•中"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Unable to copy and rename export file, check gradle project directory for "
"outputs."
@@ -13512,24 +13458,23 @@ msgstr ""
"エクスãƒãƒ¼ãƒˆãƒ•ァイルã®ã‚³ãƒ”ーã¨åå‰ã®å¤‰æ›´ãŒã§ãã¾ã›ã‚“ã€‚å‡ºåŠ›çµæžœã‚’ã¿ã‚‹ã«ã¯"
"gradleã®ãƒ—ロジェクトディレクトリを確èªã—ã¦ãã ã•ã„。"
-#: platform/android/export/export.cpp
-#, fuzzy
+#: platform/android/export/export_plugin.cpp
msgid "Package not found: %s"
-msgstr "見ã¤ã‹ã‚‰ãªã„アニメーション: '%s'"
+msgstr "見ã¤ã‹ã‚‰ãªã„パッケージ: %s"
-#: platform/android/export/export.cpp
-#, fuzzy
+#: platform/android/export/export_plugin.cpp
msgid "Creating APK..."
-msgstr "輪郭を作æˆã—ã¦ã„ã¾ã™..."
+msgstr "APK を作æˆã—ã¦ã„ã¾ã™..."
-#: platform/android/export/export.cpp
-#, fuzzy
+#: platform/android/export/export_plugin.cpp
msgid ""
"Could not find template APK to export:\n"
"%s"
-msgstr "エクスãƒãƒ¼ãƒˆç”¨ã®ãƒ†ãƒ³ãƒ—レートを開ã‘ã¾ã›ã‚“ã§ã—ãŸ:"
+msgstr ""
+"エクスãƒãƒ¼ãƒˆã™ã‚‹ãƒ†ãƒ³ãƒ—レートAPKãŒè¦‹ã¤ã‹ã‚Šã¾ã›ã‚“ã§ã—ãŸ:\n"
+"%s"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Missing libraries in the export template for the selected architectures: "
"%s.\n"
@@ -13537,21 +13482,19 @@ msgid ""
"architectures in the export preset."
msgstr ""
-#: platform/android/export/export.cpp
-#, fuzzy
+#: platform/android/export/export_plugin.cpp
msgid "Adding files..."
-msgstr "%s を追加中..."
+msgstr "ファイルを追加中..."
-#: platform/android/export/export.cpp
-#, fuzzy
+#: platform/android/export/export_plugin.cpp
msgid "Could not export project files"
-msgstr "ファイルを書ãè¾¼ã‚ã¾ã›ã‚“ã§ã—ãŸ:"
+msgstr "プロジェクトファイルをエクスãƒãƒ¼ãƒˆã§ãã¾ã›ã‚“ã§ã—ãŸ"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Aligning APK..."
msgstr "APKを最é©åŒ–..."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Could not unzip temporary unaligned APK."
msgstr ""
@@ -13600,45 +13543,40 @@ msgid "Could not write file:"
msgstr "ファイルを書ãè¾¼ã‚ã¾ã›ã‚“ã§ã—ãŸ:"
#: platform/javascript/export/export.cpp
-#, fuzzy
msgid "Could not read file:"
-msgstr "ファイルを書ãè¾¼ã‚ã¾ã›ã‚“ã§ã—ãŸ:"
+msgstr "ファイルを読ã¿è¾¼ã‚ã¾ã›ã‚“ã§ã—ãŸ:"
#: platform/javascript/export/export.cpp
-#, fuzzy
msgid "Could not read HTML shell:"
-msgstr "カスタムHTMLシェルを読ã¿è¾¼ã‚ã¾ã›ã‚“ã§ã—ãŸ:"
+msgstr "HTMLシェルを読ã¿è¾¼ã‚ã¾ã›ã‚“ã§ã—ãŸ:"
#: platform/javascript/export/export.cpp
-#, fuzzy
msgid "Could not create HTTP server directory:"
-msgstr "フォルダを作æˆã§ãã¾ã›ã‚“ã§ã—ãŸã€‚"
+msgstr "HTTPサーãƒãƒ¼ã®ãƒ‡ã‚£ãƒ¬ã‚¯ãƒˆãƒªã®ä½œæˆã«å¤±æ•—:"
#: platform/javascript/export/export.cpp
-#, fuzzy
msgid "Error starting HTTP server:"
-msgstr "シーンをä¿å­˜ã™ã‚‹éš›ã«ã‚¨ãƒ©ãƒ¼ãŒç™ºç”Ÿã—ã¾ã—ãŸ."
+msgstr "HTTPサーãƒãƒ¼ã®é–‹å§‹ã«å¤±æ•—:"
#: platform/osx/export/export.cpp
-#, fuzzy
msgid "Invalid bundle identifier:"
-msgstr "無効ãªè­˜åˆ¥å­:"
+msgstr "無効ãªãƒãƒ³ãƒ‰ãƒ«ID:"
#: platform/osx/export/export.cpp
msgid "Notarization: code signing required."
-msgstr ""
+msgstr "Notarization: コード署åãŒå¿…è¦ã§ã™ã€‚"
#: platform/osx/export/export.cpp
msgid "Notarization: hardened runtime required."
-msgstr ""
+msgstr "Notarization: hardened runtime ãŒå¿…è¦ã§ã™ã€‚"
#: platform/osx/export/export.cpp
msgid "Notarization: Apple ID name not specified."
-msgstr ""
+msgstr "Notarization: Apple ID åãŒæŒ‡å®šã•れã¦ã„ã¾ã›ã‚“。"
#: platform/osx/export/export.cpp
msgid "Notarization: Apple ID password not specified."
-msgstr ""
+msgstr "Notarization: Apple ID ãƒ‘ã‚¹ãƒ¯ãƒ¼ãƒ‰ãŒæŒ‡å®šã•れã¦ã„ã¾ã›ã‚“。"
#: platform/uwp/export/export.cpp
msgid "Invalid package short name."
@@ -13956,16 +13894,15 @@ msgstr "ARVROriginã¯å­ãƒŽãƒ¼ãƒ‰ã«ARVRCameraãŒå¿…è¦ã§ã™ã€‚"
#: scene/3d/baked_lightmap.cpp
msgid "Finding meshes and lights"
-msgstr ""
+msgstr "メッシュã¨ãƒ©ã‚¤ãƒˆã‚’検索中"
#: scene/3d/baked_lightmap.cpp
msgid "Preparing geometry (%d/%d)"
msgstr "ジオメトリを解æžã—ã¦ã„ã¾ã™ (%d/%d)"
#: scene/3d/baked_lightmap.cpp
-#, fuzzy
msgid "Preparing environment"
-msgstr "環境を表示"
+msgstr "環境を準備中"
#: scene/3d/baked_lightmap.cpp
#, fuzzy
@@ -13973,9 +13910,8 @@ msgid "Generating capture"
msgstr "ライトマップã®ç”Ÿæˆ"
#: scene/3d/baked_lightmap.cpp
-#, fuzzy
msgid "Saving lightmaps"
-msgstr "ライトマップã®ç”Ÿæˆ"
+msgstr "ライトマップをä¿å­˜ä¸­"
#: scene/3d/baked_lightmap.cpp
msgid "Done"
@@ -14053,7 +13989,7 @@ msgstr ""
#: scene/3d/gi_probe.cpp
msgid "Plotting Meshes"
-msgstr "メッシュã®ãƒ—ロット"
+msgstr "メッシュをæç”»ä¸­"
#: scene/3d/gi_probe.cpp
msgid "Finishing Plot"
@@ -14073,6 +14009,9 @@ msgid ""
"longer has any effect.\n"
"To remove this warning, disable the GIProbe's Compress property."
msgstr ""
+"GIProbeã®Compressãƒ—ãƒ­ãƒ‘ãƒ†ã‚£ã¯æ—¢çŸ¥ã®ãƒã‚°ã®ãŸã‚éžæŽ¨å¥¨ã«ãªã‚Šã€ã‚‚ã¯ã‚„何ã®åŠ¹æžœã‚‚ã‚"
+"りã¾ã›ã‚“。\n"
+"ã“ã®è­¦å‘Šã‚’消ã™ã«ã¯ã€GIProbeã®Compressプロパティを無効化ã—ã¦ãã ã•ã„。"
#: scene/3d/light.cpp
msgid "A SpotLight with an angle wider than 90 degrees cannot cast shadows."
@@ -14092,6 +14031,14 @@ msgstr ""
"NavigationMeshInstance ã¯ã€ãƒŠãƒ“ゲーションノードã®å­ã‚„å­«ã§ã‚ã‚‹å¿…è¦ãŒã‚りã¾ã™ã€‚"
"ã“れã¯ãƒŠãƒ“ゲーションデータã®ã¿æä¾›ã—ã¾ã™ã€‚"
+#: scene/3d/occluder.cpp
+msgid "No shape is set."
+msgstr ""
+
+#: scene/3d/occluder.cpp
+msgid "Only uniform scales are supported."
+msgstr ""
+
#: scene/3d/particles.cpp
msgid ""
"GPU-based particles are not supported by the GLES2 video driver.\n"
@@ -14159,15 +14106,15 @@ msgstr "Node A 㨠Node B ã¯ç•°ãªã‚‹ PhysicsBody ã§ãªã‘れã°ãªã‚Šã¾ã›ã‚
#: scene/3d/portal.cpp
msgid "The RoomManager should not be a child or grandchild of a Portal."
-msgstr ""
+msgstr "RoomManager 㯠Portal ã®å­ã‚„å­«ã«ã§ãã¾ã›ã‚“。"
#: scene/3d/portal.cpp
msgid "A Room should not be a child or grandchild of a Portal."
-msgstr ""
+msgstr "Room 㯠Portal ã®å­ã‚„å­«ã«ã§ãã¾ã›ã‚“。"
#: scene/3d/portal.cpp
msgid "A RoomGroup should not be a child or grandchild of a Portal."
-msgstr ""
+msgstr "RoomGroup 㯠Portal ã®å­ã‚„å­«ã«ã§ãã¾ã›ã‚“。"
#: scene/3d/remote_transform.cpp
msgid ""
@@ -14179,15 +14126,15 @@ msgstr ""
#: scene/3d/room.cpp
msgid "A Room cannot have another Room as a child or grandchild."
-msgstr ""
+msgstr "Room 㯠他㮠Room ã‚’å­ã‚„å­«ã«æŒã¤ã“ã¨ã¯ã§ãã¾ã›ã‚“。"
#: scene/3d/room.cpp
msgid "The RoomManager should not be placed inside a Room."
-msgstr ""
+msgstr "RoomManager 㯠Room ã®ä¸­ã«è¨­ç½®ã§ãã¾ã›ã‚“。"
#: scene/3d/room.cpp
msgid "A RoomGroup should not be placed inside a Room."
-msgstr ""
+msgstr "RoomGroup 㯠Room ã®ä¸­ã«è¨­ç½®ã§ãã¾ã›ã‚“。"
#: scene/3d/room.cpp
msgid ""
@@ -14197,39 +14144,46 @@ msgstr ""
#: scene/3d/room_group.cpp
msgid "The RoomManager should not be placed inside a RoomGroup."
-msgstr ""
+msgstr "RoomManager 㯠RoomGroup ã®ä¸­ã«è¨­ç½®ã§ãã¾ã›ã‚“。"
#: scene/3d/room_manager.cpp
msgid "The RoomList has not been assigned."
-msgstr ""
+msgstr "RoomList ãŒå‰²ã‚Šå½“ã¦ã‚‰ã‚Œã¦ã„ã¾ã›ã‚“。"
#: scene/3d/room_manager.cpp
msgid "The RoomList node should be a Spatial (or derived from Spatial)."
msgstr ""
+"RoomList ノード㯠Spatial (ã¾ãŸã¯ Spatial ã®æ´¾ç”Ÿ) ã§ãªã‘れã°ãªã‚Šã¾ã›ã‚“。"
#: scene/3d/room_manager.cpp
msgid ""
"Portal Depth Limit is set to Zero.\n"
"Only the Room that the Camera is in will render."
msgstr ""
+"Portal Depth Limit ㌠ゼロ ã«è¨­å®šã•れã¦ã„ã¾ã™ã€‚\n"
+"カメラãŒå†…部ã«ã‚ã‚‹ Room ã®ã¿æç”»ã•れã¾ã™ã€‚"
#: scene/3d/room_manager.cpp
msgid "There should only be one RoomManager in the SceneTree."
-msgstr ""
+msgstr "SceneTree ã«ã¯ RoomManager ãŒ1ã¤ã ã‘存在ã§ãã¾ã™ã€‚"
#: scene/3d/room_manager.cpp
msgid ""
"RoomList path is invalid.\n"
"Please check the RoomList branch has been assigned in the RoomManager."
msgstr ""
+"RoomList パスãŒç„¡åйã§ã™ã€‚\n"
+"RoomList ブランãƒãŒ RoomManager ã«å‰²ã‚Šå½“ã¦ã‚‰ã‚Œã¦ã„ã‚‹ã‹ç¢ºèªã—ã¦ãã ã•ã„。"
#: scene/3d/room_manager.cpp
msgid "RoomList contains no Rooms, aborting."
-msgstr ""
+msgstr "RoomList ã« Room ãŒå«ã¾ã‚Œã¦ã„ãªã„ãŸã‚ã€ä¸­æ–­ã—ã¾ã™ã€‚"
#: scene/3d/room_manager.cpp
msgid "Misnamed nodes detected, check output log for details. Aborting."
msgstr ""
+"誤ã£ãŸãƒŽãƒ¼ãƒ‰åãŒæ¤œå‡ºã•れã¾ã—ãŸã€‚詳細ã¯å‡ºåŠ›ãƒ­ã‚°ã‚’ç¢ºèªã—ã¦ãã ã•ã„。中止ã—ã¾"
+"ã™ã€‚"
#: scene/3d/room_manager.cpp
msgid "Portal link room not found, check output log for details."
@@ -14246,6 +14200,9 @@ msgid ""
"Room overlap detected, cameras may work incorrectly in overlapping area.\n"
"Check output log for details."
msgstr ""
+"Roomã®é‡ãªã‚ŠãŒæ¤œå‡ºã•れã¾ã—ãŸã€‚é‡ãªã£ãŸã‚¨ãƒªã‚¢ã§ã‚«ãƒ¡ãƒ©ãŒæ­£ã—ã動作ã—ãªã„å¯èƒ½æ€§"
+"ãŒã‚りã¾ã™ã€‚\n"
+"詳細ã¯å‡ºåŠ›ãƒ­ã‚°ã‚’ç¢ºèªã—ã¦ãã ã•ã„。"
#: scene/3d/room_manager.cpp
msgid ""
@@ -14316,7 +14273,7 @@ msgstr "見ã¤ã‹ã‚‰ãªã„アニメーション: '%s'"
#: scene/animation/animation_player.cpp
msgid "Anim Apply Reset"
-msgstr ""
+msgstr "アニメーションをリセット"
#: scene/animation/animation_tree.cpp
msgid "In node '%s', invalid animation: '%s'."
@@ -14359,8 +14316,8 @@ msgid ""
"RMB: Remove preset"
msgstr ""
"色: #%s\n"
-"左マウスボタン: 色をセット\n"
-"å³ãƒžã‚¦ã‚¹ãƒœã‚¿ãƒ³: プリセットã®é™¤åŽ»"
+"左クリック: 色をセット\n"
+"å³ã‚¯ãƒªãƒƒã‚¯: プリセットã®é™¤åŽ»"
#: scene/gui/color_picker.cpp
msgid "Pick a color from the editor window."
@@ -14404,7 +14361,7 @@ msgstr ""
#: scene/gui/dialogs.cpp
msgid "Alert!"
-msgstr "警告!"
+msgstr "警告ï¼"
#: scene/gui/dialogs.cpp
msgid "Please Confirm..."
@@ -14418,6 +14375,14 @@ msgstr "æœ‰åŠ¹ãªæ‹¡å¼µå­ã‚’使用ã™ã‚‹å¿…è¦ãŒã‚りã¾ã™ã€‚"
msgid "Enable grid minimap."
msgstr "グリッドミニマップを有効ã«ã™ã‚‹ã€‚"
+#: scene/gui/nine_patch_rect.cpp
+msgid ""
+"The Tile and Tile Fit options for Axis Stretch properties are only effective "
+"when using the GLES3 rendering backend.\n"
+"The GLES2 backend is currently in use, so these modes will act like Stretch "
+"instead."
+msgstr ""
+
#: scene/gui/popup.cpp
msgid ""
"Popups will hide by default unless you call popup() or any of the popup*() "
@@ -14470,6 +14435,10 @@ msgstr ""
msgid "Viewport size must be greater than 0 to render anything."
msgstr "レンダーã™ã‚‹ã«ã¯ãƒ“ューãƒãƒ¼ãƒˆã®ã‚µã‚¤ã‚ºãŒ 0 より大ãã„å¿…è¦ãŒã‚りã¾ã™ã€‚"
+#: scene/resources/occluder_shape.cpp
+msgid "OccluderShapeSphere Set Spheres"
+msgstr ""
+
#: scene/resources/visual_shader_nodes.cpp
msgid ""
"The sampler port is connected but not used. Consider changing the source to "
@@ -14489,21 +14458,24 @@ msgid "Invalid comparison function for that type."
msgstr "ãã®ã‚¿ã‚¤ãƒ—ã®æ¯”較関数ã¯ç„¡åйã§ã™ã€‚"
#: servers/visual/shader_language.cpp
-#, fuzzy
msgid "Varying may not be assigned in the '%s' function."
-msgstr "Varying変数ã¯é ‚点関数ã«ã®ã¿å‰²ã‚Šå½“ã¦ã‚‹ã“ã¨ãŒã§ãã¾ã™ã€‚"
+msgstr "Varying 㯠'%s' 関数ã§å‰²ã‚Šå½“ã¦ã‚‰ã‚Œãªã„å¯èƒ½æ€§ãŒã‚りã¾ã™ã€‚"
#: servers/visual/shader_language.cpp
msgid ""
"Varyings which assigned in 'vertex' function may not be reassigned in "
"'fragment' or 'light'."
msgstr ""
+"'vertex' 関数ã§å‰²ã‚Šå½“ã¦ãŸ Varying ã‚’ 'fragment' 㨠'light' ã§å†ã³å‰²ã‚Šå½“ã¦ã‚‹ã“"
+"ã¨ã¯ã§ãã¾ã›ã‚“。"
#: servers/visual/shader_language.cpp
msgid ""
"Varyings which assigned in 'fragment' function may not be reassigned in "
"'vertex' or 'light'."
msgstr ""
+"'fragment' 関数ã§å‰²ã‚Šå½“ã¦ãŸ Varying ã‚’ 'vertex' 㨠'light' ã§å†ã³å‰²ã‚Šå½“ã¦ã‚‹ã“"
+"ã¨ã¯ã§ãã¾ã›ã‚“。"
#: servers/visual/shader_language.cpp
msgid "Fragment-stage varying could not been accessed in custom function!"
@@ -14521,6 +14493,41 @@ msgstr "uniform ã¸ã®å‰²ã‚Šå½“ã¦ã€‚"
msgid "Constants cannot be modified."
msgstr "定数ã¯å¤‰æ›´ã§ãã¾ã›ã‚“。"
+#~ msgid "Make Rest Pose (From Bones)"
+#~ msgstr "レスト・ãƒãƒ¼ã‚ºã®ä½œæˆ(ボーンã‹ã‚‰)"
+
+#~ msgid "Bottom"
+#~ msgstr "下é¢"
+
+#~ msgid "Left"
+#~ msgstr "å·¦å´é¢"
+
+#~ msgid "Right"
+#~ msgstr "å³å´é¢"
+
+#~ msgid "Front"
+#~ msgstr "å‰é¢"
+
+#~ msgid "Rear"
+#~ msgstr "後é¢"
+
+#~ msgid "Nameless gizmo"
+#~ msgstr "ç„¡åã®ã‚®ã‚ºãƒ¢"
+
+#~ msgid ""
+#~ "\"Degrees Of Freedom\" is only valid when \"Xr Mode\" is \"Oculus Mobile "
+#~ "VR\"."
+#~ msgstr ""
+#~ "\"Degrees Of Freedom\" 㯠\"Xr Mode\" ㌠\"Oculus Mobile VR\" ã®å ´åˆã«ã®ã¿"
+#~ "有効ã«ãªã‚Šã¾ã™ã€‚"
+
+#~ msgid ""
+#~ "\"Focus Awareness\" is only valid when \"Xr Mode\" is \"Oculus Mobile VR"
+#~ "\"."
+#~ msgstr ""
+#~ "\"Focus Awareness\" 㯠\"Xr Mode\" ㌠\"Oculus Mobile VR\" ã®å ´åˆã«ã®ã¿æœ‰"
+#~ "効ã«ãªã‚Šã¾ã™ã€‚"
+
#~ msgid "Package Contents:"
#~ msgstr "パッケージã®å†…容:"
diff --git a/editor/translations/ka.po b/editor/translations/ka.po
index 7abc89b216..5e4f5d0094 100644
--- a/editor/translations/ka.po
+++ b/editor/translations/ka.po
@@ -1070,7 +1070,7 @@ msgstr ""
msgid "Dependencies"
msgstr "დáƒáƒ›áƒáƒ™áƒ˜áƒ“ებულებები"
-#: editor/dependency_editor.cpp
+#: editor/dependency_editor.cpp editor/editor_resource_picker.cpp
msgid "Resource"
msgstr "რესურსი"
@@ -1719,13 +1719,13 @@ msgid ""
"Enabled'."
msgstr ""
-#: editor/editor_export.cpp platform/android/export/export.cpp
+#: editor/editor_export.cpp platform/android/export/export_plugin.cpp
#: platform/iphone/export/export.cpp platform/javascript/export/export.cpp
#: platform/osx/export/export.cpp platform/uwp/export/export.cpp
msgid "Custom debug template not found."
msgstr ""
-#: editor/editor_export.cpp platform/android/export/export.cpp
+#: editor/editor_export.cpp platform/android/export/export_plugin.cpp
#: platform/iphone/export/export.cpp platform/javascript/export/export.cpp
#: platform/osx/export/export.cpp platform/uwp/export/export.cpp
msgid "Custom release template not found."
@@ -2110,7 +2110,7 @@ msgstr ""
msgid "(Re)Importing Assets"
msgstr ""
-#: editor/editor_help.cpp editor/plugins/spatial_editor_plugin.cpp
+#: editor/editor_help.cpp
msgid "Top"
msgstr ""
@@ -2600,6 +2600,30 @@ msgid "Current scene not saved. Open anyway?"
msgstr ""
#: editor/editor_node.cpp
+msgid "Can't undo while mouse buttons are pressed."
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "Nothing to undo."
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "Undo: %s"
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "Can't redo while mouse buttons are pressed."
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "Nothing to redo."
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "Redo: %s"
+msgstr ""
+
+#: editor/editor_node.cpp
msgid "Can't reload a scene that was never saved."
msgstr ""
@@ -3233,6 +3257,11 @@ msgid "Merge With Existing"
msgstr ""
#: editor/editor_node.cpp
+#, fuzzy
+msgid "Apply MeshInstance Transforms"
+msgstr "áƒáƒœáƒ˜áƒ›áƒáƒªáƒ˜áƒ˜áƒ¡ გáƒáƒ áƒ“áƒáƒ¥áƒ›áƒœáƒ˜áƒ¡ ცვლილებáƒ"
+
+#: editor/editor_node.cpp
msgid "Open & Run a Script"
msgstr ""
@@ -3479,6 +3508,10 @@ msgid ""
"property (%s)."
msgstr ""
+#: editor/editor_resource_picker.cpp
+msgid "Quick Load"
+msgstr ""
+
#: editor/editor_resource_picker.cpp editor/property_editor.cpp
msgid "Make Unique"
msgstr ""
@@ -5592,6 +5625,17 @@ msgid "Move CanvasItem \"%s\" to (%d, %d)"
msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Locked"
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Grouped"
+msgstr "მáƒáƒœáƒ˜áƒ¨áƒ•ნის მáƒáƒ¨áƒáƒ áƒ”ბáƒ"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
msgid ""
"Children of containers have their anchors and margins values overridden by "
"their parent."
@@ -6527,7 +6571,11 @@ msgid "Remove Selected Item"
msgstr ""
#: editor/plugins/mesh_library_editor_plugin.cpp
-msgid "Import from Scene"
+msgid "Import from Scene (Ignore Transforms)"
+msgstr ""
+
+#: editor/plugins/mesh_library_editor_plugin.cpp
+msgid "Import from Scene (Apply Transforms)"
msgstr ""
#: editor/plugins/mesh_library_editor_plugin.cpp
@@ -7119,6 +7167,16 @@ msgstr "შექმნáƒ"
msgid "Flip Portal"
msgstr ""
+#: editor/plugins/room_manager_editor_plugin.cpp
+#, fuzzy
+msgid "Occluder Set Transform"
+msgstr "áƒáƒœáƒ˜áƒ›áƒáƒªáƒ˜áƒ˜áƒ¡ გáƒáƒ áƒ“áƒáƒ¥áƒ›áƒœáƒ˜áƒ¡ ცვლილებáƒ"
+
+#: editor/plugins/room_manager_editor_plugin.cpp
+#, fuzzy
+msgid "Center Node"
+msgstr "წáƒáƒ¨áƒšáƒ"
+
#: editor/plugins/root_motion_editor_plugin.cpp
msgid "AnimationTree has no path set to an AnimationPlayer"
msgstr ""
@@ -7635,11 +7693,12 @@ msgid "Skeleton2D"
msgstr ""
#: editor/plugins/skeleton_2d_editor_plugin.cpp
-msgid "Make Rest Pose (From Bones)"
-msgstr ""
+#, fuzzy
+msgid "Reset to Rest Pose"
+msgstr "áƒáƒ®áƒáƒšáƒ˜ %s შექმნáƒ"
#: editor/plugins/skeleton_2d_editor_plugin.cpp
-msgid "Set Bones to Rest Pose"
+msgid "Overwrite Rest Pose"
msgstr ""
#: editor/plugins/skeleton_editor_plugin.cpp
@@ -7667,6 +7726,60 @@ msgid "Perspective"
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Top Orthogonal"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Top Perspective"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Bottom Orthogonal"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Bottom Perspective"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Left Orthogonal"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Right Perspective"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Right Orthogonal"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Front Orthogonal"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Front Perspective"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Rear Orthogonal"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Rear Perspective"
+msgstr ""
+
+#. TRANSLATORS: This will be appended to the view name when Auto Orthogonal is enabled.
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid " [auto]"
+msgstr ""
+
+#. TRANSLATORS: This will be appended to the view name when Portal Occulusion is enabled.
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid " [portals active]"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
msgid "Transform Aborted."
msgstr ""
@@ -7777,42 +7890,22 @@ msgid "Bottom View."
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
-msgid "Bottom"
-msgstr ""
-
-#: editor/plugins/spatial_editor_plugin.cpp
msgid "Left View."
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
-msgid "Left"
-msgstr ""
-
-#: editor/plugins/spatial_editor_plugin.cpp
msgid "Right View."
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
-msgid "Right"
-msgstr ""
-
-#: editor/plugins/spatial_editor_plugin.cpp
msgid "Front View."
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
-msgid "Front"
-msgstr ""
-
-#: editor/plugins/spatial_editor_plugin.cpp
msgid "Rear View."
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
-msgid "Rear"
-msgstr ""
-
-#: editor/plugins/spatial_editor_plugin.cpp
msgid "Align Transform with View"
msgstr ""
@@ -8076,6 +8169,11 @@ msgid "View Portal Culling"
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "View Occlusion Culling"
+msgstr "შექმნáƒ"
+
+#: editor/plugins/spatial_editor_plugin.cpp
#: modules/gridmap/grid_map_editor_plugin.cpp
msgid "Settings..."
msgstr ""
@@ -8141,7 +8239,7 @@ msgid "Post"
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
-msgid "Nameless gizmo"
+msgid "Unnamed Gizmo"
msgstr ""
#: editor/plugins/sprite_editor_plugin.cpp
@@ -12195,6 +12293,14 @@ msgstr ""
msgid "Set Portal Point Position"
msgstr ""
+#: editor/spatial_editor_gizmos.cpp
+msgid "Set Occluder Sphere Radius"
+msgstr ""
+
+#: editor/spatial_editor_gizmos.cpp
+msgid "Set Occluder Sphere Position"
+msgstr ""
+
#: modules/csg/csg_gizmos.cpp
msgid "Change Cylinder Radius"
msgstr ""
@@ -12480,6 +12586,11 @@ msgstr ""
msgid "Class name can't be a reserved keyword"
msgstr ""
+#: modules/mono/csharp_script.cpp
+#, fuzzy
+msgid "Build Solution"
+msgstr "ყველრმáƒáƒœáƒ˜áƒ¨áƒœáƒ•áƒ"
+
#: modules/mono/mono_gd/gd_mono_utils.cpp
msgid "End of inner exception stack trace"
msgstr ""
@@ -12966,162 +13077,151 @@ msgstr ""
msgid "Get %s"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Package name is missing."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Package segments must be of non-zero length."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "The character '%s' is not allowed in Android application package names."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "A digit cannot be the first character in a package segment."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "The character '%s' cannot be the first character in a package segment."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "The package must have at least one '.' separator."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Select device from the list"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Running on %s"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Exporting APK..."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
#, fuzzy
msgid "Uninstalling..."
msgstr "დáƒáƒ§áƒ”ნებáƒ"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
#, fuzzy
msgid "Installing to device, please wait..."
msgstr "ძებნáƒ:"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Could not install to device: %s"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Running on device..."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Could not execute on device."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Unable to find the 'apksigner' tool."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Android build template not installed in the project. Install it from the "
"Project menu."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Either Debug Keystore, Debug User AND Debug Password settings must be "
"configured OR none of them."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Debug keystore not configured in the Editor Settings nor in the preset."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Either Release Keystore, Release User AND Release Password settings must be "
"configured OR none of them."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Release keystore incorrectly configured in the export preset."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "A valid Android SDK path is required in Editor Settings."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Invalid Android SDK path in Editor Settings."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Missing 'platform-tools' directory!"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Unable to find Android SDK platform-tools' adb command."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Please check in the Android SDK directory specified in Editor Settings."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Missing 'build-tools' directory!"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Unable to find Android SDK build-tools' apksigner command."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Invalid public key for APK expansion."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
#, fuzzy
msgid "Invalid package name:"
msgstr "áƒáƒ áƒáƒ¡áƒ¬áƒáƒ áƒ˜ ფáƒáƒœáƒ¢áƒ˜áƒ¡ ზáƒáƒ›áƒ."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Invalid \"GodotPaymentV3\" module included in the \"android/modules\" "
"project setting (changed in Godot 3.2.2).\n"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "\"Use Custom Build\" must be enabled to use the plugins."
msgstr ""
-#: platform/android/export/export.cpp
-msgid ""
-"\"Degrees Of Freedom\" is only valid when \"Xr Mode\" is \"Oculus Mobile VR"
-"\"."
-msgstr ""
-
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"\"Hand Tracking\" is only valid when \"Xr Mode\" is \"Oculus Mobile VR\"."
msgstr ""
-#: platform/android/export/export.cpp
-msgid ""
-"\"Focus Awareness\" is only valid when \"Xr Mode\" is \"Oculus Mobile VR\"."
-msgstr ""
-
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "\"Export AAB\" is only valid when \"Use Custom Build\" is enabled."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"'apksigner' could not be found.\n"
"Please check the command is available in the Android SDK build-tools "
@@ -13129,57 +13229,57 @@ msgid ""
"The resulting %s is unsigned."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Signing debug %s..."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Signing release %s..."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Could not find keystore, unable to export."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "'apksigner' returned with error #%d"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Verifying %s..."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "'apksigner' verification of %s failed."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Exporting for Android"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Invalid filename! Android App Bundle requires the *.aab extension."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "APK Expansion not compatible with Android App Bundle."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Invalid filename! Android APK requires the *.apk extension."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Unsupported export format!\n"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Trying to build from a custom built template, but no version info for it "
"exists. Please reinstall from the 'Project' menu."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Android build version mismatch:\n"
" Template installed: %s\n"
@@ -13187,55 +13287,55 @@ msgid ""
"Please reinstall Android build template from 'Project' menu."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Unable to overwrite res://android/build/res/*.xml files with project name"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Could not export project files to gradle project\n"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Could not write expansion package file!"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Building Android Project (gradle)"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Building of Android project failed, check output for the error.\n"
"Alternatively visit docs.godotengine.org for Android build documentation."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Moving output"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Unable to copy and rename export file, check gradle project directory for "
"outputs."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
#, fuzzy
msgid "Package not found: %s"
msgstr "áƒáƒœáƒ˜áƒ›áƒáƒªáƒ˜áƒ˜áƒ¡ ხáƒáƒœáƒ’რძლივáƒáƒ‘რ(წáƒáƒ›áƒ”ბში)."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Creating APK..."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Could not find template APK to export:\n"
"%s"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Missing libraries in the export template for the selected architectures: "
"%s.\n"
@@ -13243,20 +13343,20 @@ msgid ""
"architectures in the export preset."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
#, fuzzy
msgid "Adding files..."
msgstr "სáƒáƒ§áƒ•áƒáƒ áƒšáƒ”ბი:"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Could not export project files"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Aligning APK..."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Could not unzip temporary unaligned APK."
msgstr ""
@@ -13713,6 +13813,14 @@ msgid ""
"It only provides navigation data."
msgstr ""
+#: scene/3d/occluder.cpp
+msgid "No shape is set."
+msgstr ""
+
+#: scene/3d/occluder.cpp
+msgid "Only uniform scales are supported."
+msgstr ""
+
#: scene/3d/particles.cpp
msgid ""
"GPU-based particles are not supported by the GLES2 video driver.\n"
@@ -14006,6 +14114,14 @@ msgstr ""
msgid "Enable grid minimap."
msgstr ""
+#: scene/gui/nine_patch_rect.cpp
+msgid ""
+"The Tile and Tile Fit options for Axis Stretch properties are only effective "
+"when using the GLES3 rendering backend.\n"
+"The GLES2 backend is currently in use, so these modes will act like Stretch "
+"instead."
+msgstr ""
+
#: scene/gui/popup.cpp
msgid ""
"Popups will hide by default unless you call popup() or any of the popup*() "
@@ -14046,6 +14162,10 @@ msgstr ""
msgid "Viewport size must be greater than 0 to render anything."
msgstr ""
+#: scene/resources/occluder_shape.cpp
+msgid "OccluderShapeSphere Set Spheres"
+msgstr ""
+
#: scene/resources/visual_shader_nodes.cpp
msgid ""
"The sampler port is connected but not used. Consider changing the source to "
diff --git a/editor/translations/km.po b/editor/translations/km.po
index 187307bc17..a5b6139d08 100644
--- a/editor/translations/km.po
+++ b/editor/translations/km.po
@@ -993,7 +993,7 @@ msgstr ""
msgid "Dependencies"
msgstr ""
-#: editor/dependency_editor.cpp
+#: editor/dependency_editor.cpp editor/editor_resource_picker.cpp
msgid "Resource"
msgstr ""
@@ -1622,13 +1622,13 @@ msgid ""
"Enabled'."
msgstr ""
-#: editor/editor_export.cpp platform/android/export/export.cpp
+#: editor/editor_export.cpp platform/android/export/export_plugin.cpp
#: platform/iphone/export/export.cpp platform/javascript/export/export.cpp
#: platform/osx/export/export.cpp platform/uwp/export/export.cpp
msgid "Custom debug template not found."
msgstr ""
-#: editor/editor_export.cpp platform/android/export/export.cpp
+#: editor/editor_export.cpp platform/android/export/export_plugin.cpp
#: platform/iphone/export/export.cpp platform/javascript/export/export.cpp
#: platform/osx/export/export.cpp platform/uwp/export/export.cpp
msgid "Custom release template not found."
@@ -1998,7 +1998,7 @@ msgstr ""
msgid "(Re)Importing Assets"
msgstr ""
-#: editor/editor_help.cpp editor/plugins/spatial_editor_plugin.cpp
+#: editor/editor_help.cpp
msgid "Top"
msgstr ""
@@ -2476,6 +2476,30 @@ msgid "Current scene not saved. Open anyway?"
msgstr ""
#: editor/editor_node.cpp
+msgid "Can't undo while mouse buttons are pressed."
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "Nothing to undo."
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "Undo: %s"
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "Can't redo while mouse buttons are pressed."
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "Nothing to redo."
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "Redo: %s"
+msgstr ""
+
+#: editor/editor_node.cpp
msgid "Can't reload a scene that was never saved."
msgstr ""
@@ -3099,6 +3123,11 @@ msgid "Merge With Existing"
msgstr ""
#: editor/editor_node.cpp
+#, fuzzy
+msgid "Apply MeshInstance Transforms"
+msgstr "Anim ផ្លាស់ប្ážáž¼ážš Transform"
+
+#: editor/editor_node.cpp
msgid "Open & Run a Script"
msgstr ""
@@ -3339,6 +3368,10 @@ msgid ""
"property (%s)."
msgstr ""
+#: editor/editor_resource_picker.cpp
+msgid "Quick Load"
+msgstr ""
+
#: editor/editor_resource_picker.cpp editor/property_editor.cpp
msgid "Make Unique"
msgstr ""
@@ -5379,6 +5412,16 @@ msgid "Move CanvasItem \"%s\" to (%d, %d)"
msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Locked"
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Grouped"
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
msgid ""
"Children of containers have their anchors and margins values overridden by "
"their parent."
@@ -6278,7 +6321,11 @@ msgid "Remove Selected Item"
msgstr ""
#: editor/plugins/mesh_library_editor_plugin.cpp
-msgid "Import from Scene"
+msgid "Import from Scene (Ignore Transforms)"
+msgstr ""
+
+#: editor/plugins/mesh_library_editor_plugin.cpp
+msgid "Import from Scene (Apply Transforms)"
msgstr ""
#: editor/plugins/mesh_library_editor_plugin.cpp
@@ -6864,6 +6911,14 @@ msgstr "ផ្លាស់ទី Bezier Points"
msgid "Flip Portal"
msgstr ""
+#: editor/plugins/room_manager_editor_plugin.cpp
+msgid "Occluder Set Transform"
+msgstr ""
+
+#: editor/plugins/room_manager_editor_plugin.cpp
+msgid "Center Node"
+msgstr ""
+
#: editor/plugins/root_motion_editor_plugin.cpp
msgid "AnimationTree has no path set to an AnimationPlayer"
msgstr ""
@@ -7358,11 +7413,11 @@ msgid "Skeleton2D"
msgstr ""
#: editor/plugins/skeleton_2d_editor_plugin.cpp
-msgid "Make Rest Pose (From Bones)"
+msgid "Reset to Rest Pose"
msgstr ""
#: editor/plugins/skeleton_2d_editor_plugin.cpp
-msgid "Set Bones to Rest Pose"
+msgid "Overwrite Rest Pose"
msgstr ""
#: editor/plugins/skeleton_editor_plugin.cpp
@@ -7390,6 +7445,60 @@ msgid "Perspective"
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Top Orthogonal"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Top Perspective"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Bottom Orthogonal"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Bottom Perspective"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Left Orthogonal"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Right Perspective"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Right Orthogonal"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Front Orthogonal"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Front Perspective"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Rear Orthogonal"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Rear Perspective"
+msgstr ""
+
+#. TRANSLATORS: This will be appended to the view name when Auto Orthogonal is enabled.
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid " [auto]"
+msgstr ""
+
+#. TRANSLATORS: This will be appended to the view name when Portal Occulusion is enabled.
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid " [portals active]"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
msgid "Transform Aborted."
msgstr ""
@@ -7497,42 +7606,22 @@ msgid "Bottom View."
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
-msgid "Bottom"
-msgstr ""
-
-#: editor/plugins/spatial_editor_plugin.cpp
msgid "Left View."
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
-msgid "Left"
-msgstr ""
-
-#: editor/plugins/spatial_editor_plugin.cpp
msgid "Right View."
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
-msgid "Right"
-msgstr ""
-
-#: editor/plugins/spatial_editor_plugin.cpp
msgid "Front View."
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
-msgid "Front"
-msgstr ""
-
-#: editor/plugins/spatial_editor_plugin.cpp
msgid "Rear View."
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
-msgid "Rear"
-msgstr ""
-
-#: editor/plugins/spatial_editor_plugin.cpp
msgid "Align Transform with View"
msgstr ""
@@ -7794,6 +7883,10 @@ msgid "View Portal Culling"
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
+msgid "View Occlusion Culling"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
#: modules/gridmap/grid_map_editor_plugin.cpp
msgid "Settings..."
msgstr ""
@@ -7859,7 +7952,7 @@ msgid "Post"
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
-msgid "Nameless gizmo"
+msgid "Unnamed Gizmo"
msgstr ""
#: editor/plugins/sprite_editor_plugin.cpp
@@ -11759,6 +11852,14 @@ msgstr ""
msgid "Set Portal Point Position"
msgstr ""
+#: editor/spatial_editor_gizmos.cpp
+msgid "Set Occluder Sphere Radius"
+msgstr ""
+
+#: editor/spatial_editor_gizmos.cpp
+msgid "Set Occluder Sphere Position"
+msgstr ""
+
#: modules/csg/csg_gizmos.cpp
msgid "Change Cylinder Radius"
msgstr ""
@@ -12039,6 +12140,10 @@ msgstr ""
msgid "Class name can't be a reserved keyword"
msgstr ""
+#: modules/mono/csharp_script.cpp
+msgid "Build Solution"
+msgstr ""
+
#: modules/mono/mono_gd/gd_mono_utils.cpp
msgid "End of inner exception stack trace"
msgstr ""
@@ -12505,159 +12610,148 @@ msgstr ""
msgid "Get %s"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Package name is missing."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Package segments must be of non-zero length."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "The character '%s' is not allowed in Android application package names."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "A digit cannot be the first character in a package segment."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "The character '%s' cannot be the first character in a package segment."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "The package must have at least one '.' separator."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Select device from the list"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Running on %s"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Exporting APK..."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Uninstalling..."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Installing to device, please wait..."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Could not install to device: %s"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Running on device..."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Could not execute on device."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Unable to find the 'apksigner' tool."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Android build template not installed in the project. Install it from the "
"Project menu."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Either Debug Keystore, Debug User AND Debug Password settings must be "
"configured OR none of them."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Debug keystore not configured in the Editor Settings nor in the preset."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Either Release Keystore, Release User AND Release Password settings must be "
"configured OR none of them."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Release keystore incorrectly configured in the export preset."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "A valid Android SDK path is required in Editor Settings."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Invalid Android SDK path in Editor Settings."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Missing 'platform-tools' directory!"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Unable to find Android SDK platform-tools' adb command."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Please check in the Android SDK directory specified in Editor Settings."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Missing 'build-tools' directory!"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Unable to find Android SDK build-tools' apksigner command."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Invalid public key for APK expansion."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Invalid package name:"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Invalid \"GodotPaymentV3\" module included in the \"android/modules\" "
"project setting (changed in Godot 3.2.2).\n"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "\"Use Custom Build\" must be enabled to use the plugins."
msgstr ""
-#: platform/android/export/export.cpp
-msgid ""
-"\"Degrees Of Freedom\" is only valid when \"Xr Mode\" is \"Oculus Mobile VR"
-"\"."
-msgstr ""
-
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"\"Hand Tracking\" is only valid when \"Xr Mode\" is \"Oculus Mobile VR\"."
msgstr ""
-#: platform/android/export/export.cpp
-msgid ""
-"\"Focus Awareness\" is only valid when \"Xr Mode\" is \"Oculus Mobile VR\"."
-msgstr ""
-
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "\"Export AAB\" is only valid when \"Use Custom Build\" is enabled."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"'apksigner' could not be found.\n"
"Please check the command is available in the Android SDK build-tools "
@@ -12665,57 +12759,57 @@ msgid ""
"The resulting %s is unsigned."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Signing debug %s..."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Signing release %s..."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Could not find keystore, unable to export."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "'apksigner' returned with error #%d"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Verifying %s..."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "'apksigner' verification of %s failed."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Exporting for Android"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Invalid filename! Android App Bundle requires the *.aab extension."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "APK Expansion not compatible with Android App Bundle."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Invalid filename! Android APK requires the *.apk extension."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Unsupported export format!\n"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Trying to build from a custom built template, but no version info for it "
"exists. Please reinstall from the 'Project' menu."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Android build version mismatch:\n"
" Template installed: %s\n"
@@ -12723,54 +12817,54 @@ msgid ""
"Please reinstall Android build template from 'Project' menu."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Unable to overwrite res://android/build/res/*.xml files with project name"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Could not export project files to gradle project\n"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Could not write expansion package file!"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Building Android Project (gradle)"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Building of Android project failed, check output for the error.\n"
"Alternatively visit docs.godotengine.org for Android build documentation."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Moving output"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Unable to copy and rename export file, check gradle project directory for "
"outputs."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Package not found: %s"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Creating APK..."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Could not find template APK to export:\n"
"%s"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Missing libraries in the export template for the selected architectures: "
"%s.\n"
@@ -12778,19 +12872,19 @@ msgid ""
"architectures in the export preset."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Adding files..."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Could not export project files"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Aligning APK..."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Could not unzip temporary unaligned APK."
msgstr ""
@@ -13240,6 +13334,14 @@ msgid ""
"It only provides navigation data."
msgstr ""
+#: scene/3d/occluder.cpp
+msgid "No shape is set."
+msgstr ""
+
+#: scene/3d/occluder.cpp
+msgid "Only uniform scales are supported."
+msgstr ""
+
#: scene/3d/particles.cpp
msgid ""
"GPU-based particles are not supported by the GLES2 video driver.\n"
@@ -13529,6 +13631,14 @@ msgstr ""
msgid "Enable grid minimap."
msgstr ""
+#: scene/gui/nine_patch_rect.cpp
+msgid ""
+"The Tile and Tile Fit options for Axis Stretch properties are only effective "
+"when using the GLES3 rendering backend.\n"
+"The GLES2 backend is currently in use, so these modes will act like Stretch "
+"instead."
+msgstr ""
+
#: scene/gui/popup.cpp
msgid ""
"Popups will hide by default unless you call popup() or any of the popup*() "
@@ -13569,6 +13679,10 @@ msgstr ""
msgid "Viewport size must be greater than 0 to render anything."
msgstr ""
+#: scene/resources/occluder_shape.cpp
+msgid "OccluderShapeSphere Set Spheres"
+msgstr ""
+
#: scene/resources/visual_shader_nodes.cpp
msgid ""
"The sampler port is connected but not used. Consider changing the source to "
diff --git a/editor/translations/ko.po b/editor/translations/ko.po
index 1f24eb1b1d..c288a2b7e7 100644
--- a/editor/translations/ko.po
+++ b/editor/translations/ko.po
@@ -23,11 +23,12 @@
# Yungjoong Song <yungjoong.song@gmail.com>, 2020.
# Henry LeRoux <henry.leroux@ocsbstudent.ca>, 2021.
# Postive_ Cloud <postive12@gmail.com>, 2021.
+# dewcked <dewcked@protonmail.ch>, 2021.
msgid ""
msgstr ""
"Project-Id-Version: Godot Engine editor\n"
"POT-Creation-Date: \n"
-"PO-Revision-Date: 2021-08-12 14:48+0000\n"
+"PO-Revision-Date: 2021-09-21 15:22+0000\n"
"Last-Translator: Myeongjin Lee <aranet100@gmail.com>\n"
"Language-Team: Korean <https://hosted.weblate.org/projects/godot-engine/"
"godot/ko/>\n"
@@ -36,7 +37,7 @@ msgstr ""
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=1; plural=0;\n"
-"X-Generator: Weblate 4.8-dev\n"
+"X-Generator: Weblate 4.9-dev\n"
#: core/math/expression.cpp modules/gdscript/gdscript_functions.cpp
#: modules/visual_script/visual_script_builtin_funcs.cpp
@@ -205,7 +206,7 @@ msgstr "애니메ì´ì…˜ ê¸¸ì´ ë°”ê¾¸ê¸°"
#: editor/animation_track_editor.cpp
#: editor/plugins/sprite_frames_editor_plugin.cpp
msgid "Change Animation Loop"
-msgstr "애니메ì´ì…˜ 루프 변경"
+msgstr "애니메ì´ì…˜ 루프 바꾸기"
#: editor/animation_track_editor.cpp
msgid "Property Track"
@@ -266,7 +267,7 @@ msgstr "트랙 경로 바꾸기"
#: editor/animation_track_editor.cpp
msgid "Toggle this track on/off."
-msgstr "ì´ íŠ¸ëž™ì„ ì¼¬/êº¼ì§ ì—¬ë¶€ë¥¼ 전환합니다."
+msgstr "ì´ íŠ¸ëž™ì„ ì¼œê¸°/ë„기를 토글합니다."
#: editor/animation_track_editor.cpp
msgid "Update Mode (How this property is set)"
@@ -282,7 +283,7 @@ msgstr "루프 래핑 모드 (시작 루프와 ëì„ ë³´ê°„)"
#: editor/animation_track_editor.cpp
msgid "Remove this track."
-msgstr "ì´ íŠ¸ëž™ì„ ì‚­ì œí•©ë‹ˆë‹¤."
+msgstr "ì´ íŠ¸ëž™ì„ ì œê±°í•©ë‹ˆë‹¤."
#: editor/animation_track_editor.cpp
msgid "Time (s): "
@@ -356,7 +357,7 @@ msgstr "애니메ì´ì…˜ 루프 모드 바꾸기"
#: editor/animation_track_editor.cpp
msgid "Remove Anim Track"
-msgstr "애니메ì´ì…˜ 트랙 ì‚­ì œ"
+msgstr "애니메ì´ì…˜ 트랙 제거"
#. TRANSLATORS: %s will be replaced by a phrase describing the target of track.
#: editor/animation_track_editor.cpp
@@ -385,13 +386,11 @@ msgstr "애니메ì´ì…˜ 삽입"
#. TRANSLATORS: This describes the target of new animation track, will be inserted into another string.
#: editor/animation_track_editor.cpp
-#, fuzzy
msgid "node '%s'"
-msgstr "'%s' 열수 ì—†ìŒ."
+msgstr "노드 '%s'"
#. TRANSLATORS: This describes the target of new animation track, will be inserted into another string.
#: editor/animation_track_editor.cpp
-#, fuzzy
msgid "animation"
msgstr "애니메ì´ì…˜"
@@ -403,9 +402,8 @@ msgstr ""
#. TRANSLATORS: This describes the target of new animation track, will be inserted into another string.
#: editor/animation_track_editor.cpp
-#, fuzzy
msgid "property '%s'"
-msgstr "'%s' ì†ì„±ì´ 없습니다."
+msgstr "ì†ì„± '%s'"
#: editor/animation_track_editor.cpp
msgid "Anim Create & Insert"
@@ -485,7 +483,7 @@ msgstr "메서드 트랙 키 추가"
#: editor/animation_track_editor.cpp
msgid "Method not found in object: "
-msgstr "ê°ì²´ì— 메서드가 ì—†ìŒ: "
+msgstr "오브ì íŠ¸ì— ë©”ì„œë“œê°€ ì—†ìŒ: "
#: editor/animation_track_editor.cpp
msgid "Anim Move Keys"
@@ -502,7 +500,7 @@ msgstr "트랙 붙여 넣기"
#: editor/animation_track_editor.cpp
msgid "Anim Scale Keys"
-msgstr "애니메ì´ì…˜ 키 í¬ê¸° ì¡°ì ˆ"
+msgstr "애니메ì´ì…˜ 키 스케ì¼"
#: editor/animation_track_editor.cpp
msgid ""
@@ -525,9 +523,9 @@ msgstr ""
"ì´ ì• ë‹ˆë©”ì´ì…˜ì€ 가져온 ì”¬ì— ì†í•´ 있습니다. 가져온 íŠ¸ëž™ì˜ ë³€ê²½ ì‚¬í•­ì€ ì €ìž¥ë˜"
"지 않습니다.\n"
"\n"
-"저장 ê¸°ëŠ¥ì„ ì¼œë ¤ë©´ 맞춤 íŠ¸ëž™ì„ ì¶”ê°€í•˜ê³ , ì”¬ì˜ ê°€ì ¸ì˜¤ê¸° 설정으로 가서\n"
+"저장 ê¸°ëŠ¥ì„ í™œì„±í™”í•˜ë ¤ë©´ 맞춤 íŠ¸ëž™ì„ ì¶”ê°€í•˜ê³ , ì”¬ì˜ ê°€ì ¸ì˜¤ê¸° 설정으로 가서\n"
"\"Animation > Storage\" ì„¤ì •ì„ \"Files\"로, \"Animation > Keep Custom Tracks"
-"\" ì„¤ì •ì„ ì¼  ë’¤, 다시 가져오십시오.\n"
+"\" ì„¤ì •ì„ í™œì„±í™”í•œ ë’¤, 다시 가져오십시오.\n"
"아니면 가져오기 프리셋으로 애니메ì´ì…˜ì„ 별ë„ì˜ íŒŒì¼ë¡œ 가져올 ìˆ˜ë„ ìžˆìŠµë‹ˆë‹¤."
#: editor/animation_track_editor.cpp
@@ -584,11 +582,11 @@ msgstr "트랙 복사"
#: editor/animation_track_editor.cpp
msgid "Scale Selection"
-msgstr "ì„ íƒ í•­ëª© 배율 ì¡°ì ˆ"
+msgstr "ì„ íƒ í•­ëª© ìŠ¤ì¼€ì¼ ì¡°ì ˆ"
#: editor/animation_track_editor.cpp
msgid "Scale From Cursor"
-msgstr "커서 위치ì—서 배율 ì¡°ì ˆ"
+msgstr "커서 위치ì—서 ìŠ¤ì¼€ì¼ ì¡°ì ˆ"
#: editor/animation_track_editor.cpp editor/plugins/script_text_editor.cpp
#: modules/gridmap/grid_map_editor_plugin.cpp
@@ -612,9 +610,8 @@ msgid "Go to Previous Step"
msgstr "ì´ì „ 단계로 ì´ë™"
#: editor/animation_track_editor.cpp
-#, fuzzy
msgid "Apply Reset"
-msgstr "ë˜ëŒë¦¬ê¸°"
+msgstr "재설정 ì ìš©"
#: editor/animation_track_editor.cpp
msgid "Optimize Animation"
@@ -633,9 +630,8 @@ msgid "Use Bezier Curves"
msgstr "베지어 곡선 사용"
#: editor/animation_track_editor.cpp
-#, fuzzy
msgid "Create RESET Track(s)"
-msgstr "트랙 붙여 넣기"
+msgstr "재설정 트랙 만들기"
#: editor/animation_track_editor.cpp
msgid "Anim. Optimizer"
@@ -659,11 +655,11 @@ msgstr "최ì í™”"
#: editor/animation_track_editor.cpp
msgid "Remove invalid keys"
-msgstr "ìž˜ëª»ëœ í‚¤ ì‚­ì œ"
+msgstr "ìž˜ëª»ëœ í‚¤ 제거"
#: editor/animation_track_editor.cpp
msgid "Remove unresolved and empty tracks"
-msgstr "í•´ê²°ë˜ì§€ 않고 빈 트랙 ì‚­ì œ"
+msgstr "í•´ê²°ë˜ì§€ 않고 빈 트랙 제거"
#: editor/animation_track_editor.cpp
msgid "Clean-up all animations"
@@ -679,7 +675,7 @@ msgstr "정리"
#: editor/animation_track_editor.cpp
msgid "Scale Ratio:"
-msgstr "배율값:"
+msgstr "ìŠ¤ì¼€ì¼ ë¹„ìœ¨:"
#: editor/animation_track_editor.cpp
msgid "Select Tracks to Copy"
@@ -842,7 +838,7 @@ msgstr "추가"
#: editor/plugins/visual_shader_editor_plugin.cpp editor/project_manager.cpp
#: editor/project_settings_editor.cpp
msgid "Remove"
-msgstr "삭제"
+msgstr "제거"
#: editor/connections_dialog.cpp
msgid "Add Extra Call Argument:"
@@ -937,7 +933,7 @@ msgstr "연결 변경:"
#: editor/connections_dialog.cpp
msgid "Are you sure you want to remove all connections from the \"%s\" signal?"
-msgstr "\"%s\" 시그ë„ì˜ ëª¨ë“  ì—°ê²°ì„ ì‚­ì œí• ê¹Œìš”?"
+msgstr "\"%s\" 시그ë„ì˜ ëª¨ë“  ì—°ê²°ì„ ì œê±°í•˜ì‹œê² ìŠµë‹ˆê¹Œ?"
#: editor/connections_dialog.cpp editor/editor_help.cpp editor/node_dock.cpp
msgid "Signals"
@@ -949,7 +945,7 @@ msgstr "ì‹œê·¸ë„ í•„í„°"
#: editor/connections_dialog.cpp
msgid "Are you sure you want to remove all connections from this signal?"
-msgstr "ì´ ì‹œê·¸ë„ì˜ ëª¨ë“  ì—°ê²°ì„ ì‚­ì œí• ê¹Œìš”?"
+msgstr "ì´ ì‹œê·¸ë„ì˜ ëª¨ë“  ì—°ê²°ì„ ì œê±°í•˜ì‹œê² ìŠµë‹ˆê¹Œ?"
#: editor/connections_dialog.cpp
msgid "Disconnect All"
@@ -960,7 +956,6 @@ msgid "Edit..."
msgstr "편집..."
#: editor/connections_dialog.cpp
-#, fuzzy
msgid "Go to Method"
msgstr "메서드로 ì´ë™"
@@ -1026,7 +1021,7 @@ msgid ""
"Scene '%s' is currently being edited.\n"
"Changes will only take effect when reloaded."
msgstr ""
-"씬 '%s'ì´(ê°€) 현재 편집중입니다.\n"
+"씬 '%s'ì´(ê°€) 현재 편집ë˜ê³  있습니다.\n"
"변경 ì‚¬í•­ì€ ë‹¤ì‹œ 불러온 ë’¤ì— ë°˜ì˜ë©ë‹ˆë‹¤."
#: editor/dependency_editor.cpp
@@ -1034,7 +1029,7 @@ msgid ""
"Resource '%s' is in use.\n"
"Changes will only take effect when reloaded."
msgstr ""
-"리소스 '%s'ì´(ê°€) 현재 사용중입니다.\n"
+"리소스 '%s'ì´(ê°€) 현재 사용 중입니다.\n"
"변경 ì‚¬í•­ì€ ë‹¤ì‹œ 불러온 ë’¤ì— ë°˜ì˜ë©ë‹ˆë‹¤."
#: editor/dependency_editor.cpp
@@ -1042,7 +1037,7 @@ msgstr ""
msgid "Dependencies"
msgstr "ì¢…ì† ê´€ê³„"
-#: editor/dependency_editor.cpp
+#: editor/dependency_editor.cpp editor/editor_resource_picker.cpp
msgid "Resource"
msgstr "리소스"
@@ -1061,7 +1056,7 @@ msgstr "ë§ê°€ì§„ 부분 고치기"
#: editor/dependency_editor.cpp
msgid "Dependency Editor"
-msgstr "ì¢…ì† ê´€ê³„ 편집기"
+msgstr "ì¢…ì† ê´€ê³„ ì—디터"
#: editor/dependency_editor.cpp
msgid "Search Replacement Resource:"
@@ -1082,17 +1077,16 @@ msgid "Owners Of:"
msgstr "소유ìž:"
#: editor/dependency_editor.cpp
-#, fuzzy
msgid ""
"Remove the selected files from the project? (Cannot be undone.)\n"
"Depending on your filesystem configuration, the files will either be moved "
"to the system trash or deleted permanently."
msgstr ""
-"프로ì íЏì—서 ì„ íƒëœ 파ì¼ì„ 제거하시겠습니다? (ë˜ëŒë¦´ 수 ì—†ìŒ)\n"
-"시스템 휴지통ì—서 ì œê±°ëœ íŒŒì¼ì„ 찾고 ë³µì›í•  수 있습니다."
+"프로ì íЏì—서 ì„ íƒëœ 파ì¼ì„ 제거하시겠습니까? (ë˜ëŒë¦´ 수 없습니다.)\n"
+"파ì¼ì‹œìŠ¤í…œ êµ¬ì„±ì— ë”°ë¼, 파ì¼ì€ 시스템 휴지ë™ìœ¼ë¡œ ì´ë™ë˜ê±°ë‚˜ 완전히 ì‚­ì œë©ë‹ˆ"
+"다."
#: editor/dependency_editor.cpp
-#, fuzzy
msgid ""
"The files being removed are required by other resources in order for them to "
"work.\n"
@@ -1101,12 +1095,12 @@ msgid ""
"to the system trash or deleted permanently."
msgstr ""
"제거하려는 파ì¼ì€ 다른 리소스가 ë™ìž‘하기 위해 필요합니다.\n"
-"무시하고 제거하시겠습니까? (ë˜ëŒë¦´ 수 ì—†ìŒ)\n"
-"시스템 휴지통ì—서 ì œê±°ëœ íŒŒì¼ì„ 찾고 ë³µì›í•  수 있습니다."
+"무시하고 제거하시겠습니까? (ë˜ëŒë¦´ 수 없습니다.)\n"
+"파ì¼ì‹œìŠ¤í…œ êµ¬ì„±ì— ë”°ë¼ íŒŒì¼ì€ 시스템 휴지통으로 ì´ë™ë˜ê±°ë‚˜ 완전히 ì‚­ì œë©ë‹ˆë‹¤."
#: editor/dependency_editor.cpp
msgid "Cannot remove:"
-msgstr "삭제할 수 ì—†ìŒ:"
+msgstr "제거할 수 ì—†ìŒ:"
#: editor/dependency_editor.cpp
msgid "Error loading:"
@@ -1162,11 +1156,11 @@ msgstr "명확한 소유 관계가 없는 리소스:"
#: editor/dictionary_property_edit.cpp
msgid "Change Dictionary Key"
-msgstr "딕셔너리 키 변경"
+msgstr "딕셔너리 키 바꾸기"
#: editor/dictionary_property_edit.cpp
msgid "Change Dictionary Value"
-msgstr "딕셔너리 값 변경"
+msgstr "딕셔너리 값 바꾸기"
#: editor/editor_about.cpp
msgid "Thanks from the Godot community!"
@@ -1271,40 +1265,36 @@ msgid "Licenses"
msgstr "ë¼ì´ì„ ìФ"
#: editor/editor_asset_installer.cpp
-#, fuzzy
msgid "Error opening asset file for \"%s\" (not in ZIP format)."
-msgstr "패키지 파ì¼ì„ 여는 중 오류 (ZIP 형ì‹ì´ 아닙니다)."
+msgstr "\"%s\"ì— ëŒ€í•œ ì• ì…‹ 파ì¼ì„ 여는 중 오류 (ZIP 형ì‹ì´ 아닙니다)."
#: editor/editor_asset_installer.cpp
-#, fuzzy
msgid "%s (already exists)"
-msgstr "%s (ì´ë¯¸ 존재함)"
+msgstr "%s (ì´ë¯¸ 있습니다)"
#: editor/editor_asset_installer.cpp
msgid "Contents of asset \"%s\" - %d file(s) conflict with your project:"
-msgstr "ì• ì…‹ \"%s\"ì˜ ë‚´ìš© - íŒŒì¼ %d개가 프로ì íŠ¸ì™€ ì¶©ëŒí•©ë‹ˆë‹¤:"
+msgstr "ì• ì…‹ \"%s\"ì˜ ì½˜í…츠 - íŒŒì¼ %d개가 프로ì íŠ¸ì™€ ì¶©ëŒí•©ë‹ˆë‹¤:"
#: editor/editor_asset_installer.cpp
msgid "Contents of asset \"%s\" - No files conflict with your project:"
-msgstr "ì• ì…‹ \"%s\"ì˜ ë‚´ìš© - 프로ì íŠ¸ì™€ ì¶©ëŒí•˜ëŠ” 파ì¼ì´ 없습니다:"
+msgstr "ì• ì…‹ \"%s\"ì˜ ì½˜í…츠 - 프로ì íŠ¸ì™€ ì¶©ëŒí•˜ëŠ” 파ì¼ì´ 없습니다:"
#: editor/editor_asset_installer.cpp
msgid "Uncompressing Assets"
msgstr "애셋 압축 풀기"
#: editor/editor_asset_installer.cpp
-#, fuzzy
msgid "The following files failed extraction from asset \"%s\":"
-msgstr "ë‹¤ìŒ íŒŒì¼ì„ 패키지ì—서 ì¶”ì¶œí•˜ëŠ”ë° ì‹¤íŒ¨í•¨:"
+msgstr "ë‹¤ìŒ íŒŒì¼ì„ ì• ì…‹ì—서 ì••ì¶• 푸는 ë° ì‹¤íŒ¨í•¨:"
#: editor/editor_asset_installer.cpp
msgid "(and %s more files)"
msgstr "(ë° ë” ë§Žì€ íŒŒì¼ %sê°œ)"
#: editor/editor_asset_installer.cpp
-#, fuzzy
msgid "Asset \"%s\" installed successfully!"
-msgstr "패키지를 성공ì ìœ¼ë¡œ 설치했습니다!"
+msgstr "ì• ì…‹ \"%s\"를 성공ì ìœ¼ë¡œ 설치했습니다!"
#: editor/editor_asset_installer.cpp
#: editor/plugins/asset_library_editor_plugin.cpp
@@ -1316,9 +1306,8 @@ msgid "Install"
msgstr "설치"
#: editor/editor_asset_installer.cpp
-#, fuzzy
msgid "Asset Installer"
-msgstr "패키지 설치 마법사"
+msgstr "ì• ì…‹ ì¸ìŠ¤í†¨ëŸ¬"
#: editor/editor_audio_buses.cpp
msgid "Speakers"
@@ -1326,7 +1315,7 @@ msgstr "스피커"
#: editor/editor_audio_buses.cpp
msgid "Add Effect"
-msgstr "효과 추가"
+msgstr "ì´íŽ™íŠ¸ 추가"
#: editor/editor_audio_buses.cpp
msgid "Rename Audio Bus"
@@ -1346,7 +1335,7 @@ msgstr "오디오 버스 ìŒì†Œê±° 토글"
#: editor/editor_audio_buses.cpp
msgid "Toggle Audio Bus Bypass Effects"
-msgstr "오디오 버스 ë°”ì´íŒ¨ìФ 효과 토글"
+msgstr "오디오 버스 ë°”ì´íŒ¨ìФ ì´íŽ™íŠ¸ 토글"
#: editor/editor_audio_buses.cpp
msgid "Select Audio Bus Send"
@@ -1354,15 +1343,15 @@ msgstr "오디오 버스 전송 ì„ íƒ"
#: editor/editor_audio_buses.cpp
msgid "Add Audio Bus Effect"
-msgstr "오디오 버스 효과 추가"
+msgstr "오디오 버스 ì´íŽ™íŠ¸ 추가"
#: editor/editor_audio_buses.cpp
msgid "Move Bus Effect"
-msgstr "버스 효과 ì´ë™"
+msgstr "버스 ì´íŽ™íŠ¸ ì´ë™"
#: editor/editor_audio_buses.cpp
msgid "Delete Bus Effect"
-msgstr "버스 효과 삭제"
+msgstr "버스 ì´íŽ™íŠ¸ ì‚­ì œ"
#: editor/editor_audio_buses.cpp
msgid "Drag & drop to rearrange."
@@ -1381,9 +1370,8 @@ msgid "Bypass"
msgstr "ë°”ì´íŒ¨ìФ"
#: editor/editor_audio_buses.cpp
-#, fuzzy
msgid "Bus Options"
-msgstr "버스 설정"
+msgstr "버스 옵션"
#: editor/editor_audio_buses.cpp editor/filesystem_dock.cpp
#: editor/plugins/animation_player_editor_plugin.cpp editor/scene_tree_dock.cpp
@@ -1392,11 +1380,11 @@ msgstr "복제"
#: editor/editor_audio_buses.cpp
msgid "Reset Volume"
-msgstr "볼륨 초기화"
+msgstr "볼륨 재설정"
#: editor/editor_audio_buses.cpp
msgid "Delete Effect"
-msgstr "효과 삭제"
+msgstr "ì´íŽ™íŠ¸ ì‚­ì œ"
#: editor/editor_audio_buses.cpp
msgid "Audio"
@@ -1420,7 +1408,7 @@ msgstr "오디오 버스 복제"
#: editor/editor_audio_buses.cpp
msgid "Reset Bus Volume"
-msgstr "버스 볼륨 초기화"
+msgstr "버스 볼륨 재설정"
#: editor/editor_audio_buses.cpp
msgid "Move Audio Bus"
@@ -1482,11 +1470,11 @@ msgstr "ì´ ë²„ìŠ¤ ë ˆì´ì•„ì›ƒì„ íŒŒì¼ë¡œ 저장합니다."
#: editor/editor_audio_buses.cpp editor/import_dock.cpp
msgid "Load Default"
-msgstr "기본값 불러오기"
+msgstr "ë””í´íЏ 불러오기"
#: editor/editor_audio_buses.cpp
msgid "Load the default Bus Layout."
-msgstr "기본 버스 ë ˆì´ì•„ì›ƒì„ ë¶ˆëŸ¬ì˜µë‹ˆë‹¤."
+msgstr "ë””í´íЏ 버스 ë ˆì´ì•„ì›ƒì„ ë¶ˆëŸ¬ì˜µë‹ˆë‹¤."
#: editor/editor_audio_buses.cpp
msgid "Create a new Bus Layout."
@@ -1506,7 +1494,7 @@ msgstr "ì—”ì§„ì— ì´ë¯¸ 있는 í´ëž˜ìФ ì´ë¦„ê³¼ 겹치지 않아야 합니ë‹
#: editor/editor_autoload_settings.cpp
msgid "Must not collide with an existing built-in type name."
-msgstr "기본 ìžë£Œí˜•ê³¼ ì´ë¦„ê³¼ 겹치지 않아야 합니다."
+msgstr "기존 내장 ìžë£Œí˜•ê³¼ ì´ë¦„ê³¼ 겹치지 않아야 합니다."
#: editor/editor_autoload_settings.cpp
msgid "Must not collide with an existing global constant name."
@@ -1534,11 +1522,11 @@ msgstr "오토로드 ì´ë™"
#: editor/editor_autoload_settings.cpp
msgid "Remove Autoload"
-msgstr "오토로드 삭제"
+msgstr "오토로드 제거"
#: editor/editor_autoload_settings.cpp editor/editor_plugin_settings.cpp
msgid "Enable"
-msgstr "켜기"
+msgstr "활성화"
#: editor/editor_autoload_settings.cpp
msgid "Rearrange Autoloads"
@@ -1578,9 +1566,8 @@ msgid "Name"
msgstr "ì´ë¦„"
#: editor/editor_autoload_settings.cpp
-#, fuzzy
msgid "Global Variable"
-msgstr "변수"
+msgstr "전역 변수"
#: editor/editor_data.cpp
msgid "Paste Params"
@@ -1654,7 +1641,7 @@ msgid ""
"Etc' in Project Settings."
msgstr ""
"ëŒ€ìƒ í”Œëž«í¼ì—서 GLES2 ìš© 'ETC' í…스처 ì••ì¶•ì´ í•„ìš”í•©ë‹ˆë‹¤. 프로ì íЏ 설정ì—서 "
-"'Import Etc' ì„¤ì •ì„ ì¼œì„¸ìš”."
+"'Import Etc' ì„¤ì •ì„ í™œì„±í™”í•˜ì„¸ìš”."
#: editor/editor_export.cpp
msgid ""
@@ -1662,7 +1649,7 @@ msgid ""
"'Import Etc 2' in Project Settings."
msgstr ""
"ëŒ€ìƒ í”Œëž«í¼ì—서 GLES3 ìš© 'ETC2' í…스처 ì••ì¶•ì´ í•„ìš”í•©ë‹ˆë‹¤. 프로ì íЏ 설정ì—서 "
-"'Import Etc 2' ì„¤ì •ì„ ì¼œì„¸ìš”."
+"'Import Etc 2' ì„¤ì •ì„ í™œì„±í™”í•˜ì„¸ìš”."
#: editor/editor_export.cpp
msgid ""
@@ -1673,8 +1660,8 @@ msgid ""
msgstr ""
"ëŒ€ìƒ í”Œëž«í¼ì—서 드ë¼ì´ë²„ê°€ GLES2로 í´ë°±í•˜ê¸° 위해 'ETC' í…스처 ì••ì¶•ì´ í•„ìš”í•©ë‹ˆ"
"다.\n"
-"프로ì íЏ 설정ì—서 'Import Etc' ì„¤ì •ì„ í™œì„±í™” 하거나, 'Driver Fallback "
-"Enabled' ì„¤ì •ì„ ë¹„í™œì„±í™” 하세요."
+"프로ì íЏ 설정ì—서 'Import Etc' ì„¤ì •ì„ í™œì„±í™”í•˜ê±°ë‚˜, 'Driver Fallback "
+"Enabled' ì„¤ì •ì„ ë¹„í™œì„±í™”í•˜ì„¸ìš”."
#: editor/editor_export.cpp
msgid ""
@@ -1682,15 +1669,15 @@ msgid ""
"'Import Pvrtc' in Project Settings."
msgstr ""
"ëŒ€ìƒ í”Œëž«í¼ì—서 GLES2 ìš© 'PVRTC' í…스처 ì••ì¶•ì´ í•„ìš”í•©ë‹ˆë‹¤. 프로ì íЏ 설정ì—서 "
-"'Import Pvrt' 를 활성화 하세요."
+"'Import Pvrt' ì„¤ì •ì„ í™œì„±í™”í•˜ì„¸ìš”."
#: editor/editor_export.cpp
msgid ""
"Target platform requires 'ETC2' or 'PVRTC' texture compression for GLES3. "
"Enable 'Import Etc 2' or 'Import Pvrtc' in Project Settings."
msgstr ""
-"ëŒ€ìƒ í”Œëž«í¼ì€ GLES3 ìš© 'ETC2' 나 'PVRTC' í…스처 ì••ì¶•ì´ í•„ìš”í•©ë‹ˆë‹¤. 프로ì íЏ "
-"설정ì—서 'Import Etc 2' 나 'Import Pvrtc' 를 활성화 하세요."
+"ëŒ€ìƒ í”Œëž«í¼ì€ GLES3 ìš© 'ETC2'나 'PVRTC' í…스처 ì••ì¶•ì´ í•„ìš”í•©ë‹ˆë‹¤. 프로ì íЏ 설"
+"ì •ì—서 'Import Etc 2'나 'Import Pvrtc' ì„¤ì •ì„ í™œì„±í™”í•˜ì„¸ìš”."
#: editor/editor_export.cpp
msgid ""
@@ -1701,16 +1688,16 @@ msgid ""
msgstr ""
"ëŒ€ìƒ í”Œëž«í¼ì—서 드ë¼ì´ë²„ê°€ GLES2로 í´ë°±í•˜ê¸° 위해 'PVRTC' í…스처 ì••ì¶•ì´ í•„ìš”í•©"
"니다.\n"
-"프로ì íЏ 설정ì—서 'Import Pvrtc' ì„¤ì •ì„ í™œì„±í™” 하거나, 'Driver Fallback "
-"Enabled' ì„¤ì •ì„ ë¹„í™œì„±í™” 하세요."
+"프로ì íЏ 설정ì—서 'Import Pvrtc' ì„¤ì •ì„ í™œì„±í™”í•˜ê±°ë‚˜, 'Driver Fallback "
+"Enabled' ì„¤ì •ì„ ë¹„í™œì„±í™”í•˜ì„¸ìš”."
-#: editor/editor_export.cpp platform/android/export/export.cpp
+#: editor/editor_export.cpp platform/android/export/export_plugin.cpp
#: platform/iphone/export/export.cpp platform/javascript/export/export.cpp
#: platform/osx/export/export.cpp platform/uwp/export/export.cpp
msgid "Custom debug template not found."
msgstr "ì‚¬ìš©ìž ì§€ì • 디버그 í…œí”Œë¦¿ì„ ì°¾ì„ ìˆ˜ 없습니다."
-#: editor/editor_export.cpp platform/android/export/export.cpp
+#: editor/editor_export.cpp platform/android/export/export_plugin.cpp
#: platform/iphone/export/export.cpp platform/javascript/export/export.cpp
#: platform/osx/export/export.cpp platform/uwp/export/export.cpp
msgid "Custom release template not found."
@@ -1726,11 +1713,11 @@ msgstr "32비트 환경ì—서는 4 GiB보다 í° ë‚´ìž¥ PCK를 내보낼 수 ì—†
#: editor/editor_feature_profile.cpp
msgid "3D Editor"
-msgstr "3D 편집기"
+msgstr "3D ì—디터"
#: editor/editor_feature_profile.cpp
msgid "Script Editor"
-msgstr "스í¬ë¦½íЏ 편집기"
+msgstr "스í¬ë¦½íЏ ì—디터"
#: editor/editor_feature_profile.cpp
msgid "Asset Library"
@@ -1746,7 +1733,7 @@ msgstr "노드 ë„킹"
#: editor/editor_feature_profile.cpp
msgid "FileSystem Dock"
-msgstr "íŒŒì¼ ì‹œìŠ¤í…œ ë…"
+msgstr "파ì¼ì‹œìŠ¤í…œ ë…"
#: editor/editor_feature_profile.cpp
msgid "Import Dock"
@@ -1754,48 +1741,49 @@ msgstr "ë… ê°€ì ¸ì˜¤ê¸°"
#: editor/editor_feature_profile.cpp
msgid "Allows to view and edit 3D scenes."
-msgstr ""
+msgstr "3D ì”¬ì„ ë³´ê³  편집할 수 있게 합니다."
#: editor/editor_feature_profile.cpp
msgid "Allows to edit scripts using the integrated script editor."
-msgstr ""
+msgstr "통합 스í¬ë¦½íЏ ì—디터를 사용해 스í¬ë¦½íŠ¸ë¥¼ 편집할 수 있게 합니다."
#: editor/editor_feature_profile.cpp
msgid "Provides built-in access to the Asset Library."
-msgstr ""
+msgstr "ì• ì…‹ ë¼ì´ë¸ŒëŸ¬ë¦¬ì— 내장 ì ‘ê·¼ì„ ì œê³µí•©ë‹ˆë‹¤."
#: editor/editor_feature_profile.cpp
msgid "Allows editing the node hierarchy in the Scene dock."
-msgstr ""
+msgstr "씬 ë…ì—서 노드 계층 구조를 편집할 수 있게 합니다."
#: editor/editor_feature_profile.cpp
msgid ""
"Allows to work with signals and groups of the node selected in the Scene "
"dock."
-msgstr ""
+msgstr "씬 ë…ì—서 ì„ íƒëœ ë…¸ë“œì˜ ì‹ í˜¸ì™€ 그룹으로 ë™ìž‘í•  수 있게 합니다."
#: editor/editor_feature_profile.cpp
msgid "Allows to browse the local file system via a dedicated dock."
-msgstr ""
+msgstr "ì „ìš© ë…ì„ í†µí•´ 로컬 íŒŒì¼ ì‹œìŠ¤í…œì„ íƒìƒ‰í•  수 있게 합니다."
#: editor/editor_feature_profile.cpp
msgid ""
"Allows to configure import settings for individual assets. Requires the "
"FileSystem dock to function."
msgstr ""
+"개별 ì• ì…‹ì— ëŒ€í•œ 가져오기 ì„¤ì •ì„ êµ¬ì„±í•  수 있게 합니다. ìž‘ë™í•˜ë ¤ë©´ 파ì¼ì‹œìФ"
+"í…œ ë…ì´ í•„ìš”í•©ë‹ˆë‹¤."
#: editor/editor_feature_profile.cpp
-#, fuzzy
msgid "(current)"
msgstr "(현재)"
#: editor/editor_feature_profile.cpp
msgid "(none)"
-msgstr ""
+msgstr "(ì—†ìŒ)"
#: editor/editor_feature_profile.cpp
msgid "Remove currently selected profile, '%s'? Cannot be undone."
-msgstr ""
+msgstr "현재 ì„ íƒëœ í”„ë¡œí•„ì¸ '%s'ì„ ì œê±°í•˜ì‹œê² ìŠµë‹ˆê¹Œ? ë˜ëŒë¦´ 수 없습니다."
#: editor/editor_feature_profile.cpp
msgid "Profile must be a valid filename and must not contain '.'"
@@ -1807,37 +1795,35 @@ msgstr "ì´ ì´ë¦„으로 ëœ í”„ë¡œí•„ì´ ì´ë¯¸ 있습니다."
#: editor/editor_feature_profile.cpp
msgid "(Editor Disabled, Properties Disabled)"
-msgstr "(편집기 꺼ì§, ì†ì„± 꺼ì§)"
+msgstr "(ì—디터 비활성화ë¨, ì†ì„± 비활성화ë¨)"
#: editor/editor_feature_profile.cpp
msgid "(Properties Disabled)"
-msgstr "(ì†ì„± 꺼ì§)"
+msgstr "(ì†ì„± 비활성회ë¨)"
#: editor/editor_feature_profile.cpp
msgid "(Editor Disabled)"
-msgstr "(편집기 꺼ì§)"
+msgstr "(ì—디터 비활성화ë¨)"
#: editor/editor_feature_profile.cpp
msgid "Class Options:"
-msgstr "í´ëž˜ìФ 설정:"
+msgstr "í´ëž˜ìФ 옵션:"
#: editor/editor_feature_profile.cpp
msgid "Enable Contextual Editor"
-msgstr "ìƒí™©ë³„ 편집기 켜기"
+msgstr "ìƒí™©ë³„ ì—디터 활성화"
#: editor/editor_feature_profile.cpp
-#, fuzzy
msgid "Class Properties:"
-msgstr "ì†ì„±:"
+msgstr "í´ëž˜ìФ ì†ì„±:"
#: editor/editor_feature_profile.cpp
msgid "Main Features:"
msgstr "주요 기능:"
#: editor/editor_feature_profile.cpp
-#, fuzzy
msgid "Nodes and Classes:"
-msgstr "켜진 í´ëž˜ìФ:"
+msgstr "노드와 í´ëž˜ìФ:"
#: editor/editor_feature_profile.cpp
msgid "File '%s' format is invalid, import aborted."
@@ -1848,7 +1834,7 @@ msgid ""
"Profile '%s' already exists. Remove it first before importing, import "
"aborted."
msgstr ""
-"프로필 '%s'ì´(ê°€) ì´ë¯¸ 있습니다. 가져오기 ì „ì— ì´ë¯¸ 있는 í”„ë¡œí•„ì„ ë¨¼ì € 삭제하"
+"프로필 '%s'ì´(ê°€) ì´ë¯¸ 있습니다. 가져오기 ì „ì— ì´ë¯¸ 있는 í”„ë¡œí•„ì„ ë¨¼ì € 제거하"
"세요. 가져오기를 중단합니다."
#: editor/editor_feature_profile.cpp
@@ -1856,23 +1842,20 @@ msgid "Error saving profile to path: '%s'."
msgstr "í”„ë¡œí•„ì„ ê²½ë¡œì— ì €ìž¥í•˜ëŠ” 중 오류: '%s'."
#: editor/editor_feature_profile.cpp
-#, fuzzy
msgid "Reset to Default"
-msgstr "기본값으로 재설정"
+msgstr "ë””í´íŠ¸ë¡œ 재설정"
#: editor/editor_feature_profile.cpp
msgid "Current Profile:"
msgstr "현재 프로필:"
#: editor/editor_feature_profile.cpp
-#, fuzzy
msgid "Create Profile"
-msgstr "프로필 지우기"
+msgstr "프로필 만들기"
#: editor/editor_feature_profile.cpp
-#, fuzzy
msgid "Remove Profile"
-msgstr "íƒ€ì¼ ì‚­ì œ"
+msgstr "프로필 제거"
#: editor/editor_feature_profile.cpp
msgid "Available Profiles:"
@@ -1901,7 +1884,7 @@ msgstr "별ë„ì˜ ì˜µì…˜:"
#: editor/editor_feature_profile.cpp
msgid "Create or import a profile to edit available classes and properties."
-msgstr ""
+msgstr "사용 가능한 í´ëž˜ìŠ¤ì™€ ì†ì„±ì„ 편집하려면 í”„ë¡œí•„ì„ ë§Œë“¤ê±°ë‚˜ 가져오세요."
#: editor/editor_feature_profile.cpp
msgid "New profile name:"
@@ -1921,16 +1904,15 @@ msgstr "프로필 내보내기"
#: editor/editor_feature_profile.cpp
msgid "Manage Editor Feature Profiles"
-msgstr "편집기 기능 프로필 관리"
+msgstr "ì—디터 기능 프로필 관리"
#: editor/editor_file_dialog.cpp scene/gui/file_dialog.cpp
msgid "Select Current Folder"
msgstr "현재 í´ë” ì„ íƒ"
#: editor/editor_file_dialog.cpp scene/gui/file_dialog.cpp
-#, fuzzy
msgid "File exists, overwrite?"
-msgstr "파ì¼ì´ ì´ë¯¸ 있습니다. ë®ì–´ì“¸ê¹Œìš”?"
+msgstr "파ì¼ì´ 존재합니다. ë®ì–´ì“°ì‹œê² ìŠµë‹ˆê¹Œ?"
#: editor/editor_file_dialog.cpp scene/gui/file_dialog.cpp
msgid "Select This Folder"
@@ -2089,7 +2071,7 @@ msgstr "íŒŒì¼ % ì— í•´ë‹¹í•˜ëŠ” 가져오기 í¬ë§·ì´ 여러 종류입니다.
msgid "(Re)Importing Assets"
msgstr "애셋 (다시) 가져오기"
-#: editor/editor_help.cpp editor/plugins/spatial_editor_plugin.cpp
+#: editor/editor_help.cpp
msgid "Top"
msgstr "맨 위"
@@ -2120,11 +2102,11 @@ msgstr "ì†ì„±"
#: editor/editor_help.cpp
msgid "override:"
-msgstr "오버ë¼ì´ë“œ:"
+msgstr "재정ì˜:"
#: editor/editor_help.cpp
msgid "default:"
-msgstr "기본:"
+msgstr "ë””í´íЏ:"
#: editor/editor_help.cpp
msgid "Methods"
@@ -2189,7 +2171,7 @@ msgstr "ëª¨ë‘ í‘œì‹œ"
#: editor/editor_help_search.cpp
msgid "Classes Only"
-msgstr "í´ëž˜ìŠ¤ë§Œ 표시"
+msgstr "í´ëž˜ìŠ¤ë§Œ"
#: editor/editor_help_search.cpp
msgid "Methods Only"
@@ -2326,10 +2308,13 @@ msgid ""
"Update Continuously is enabled, which can increase power usage. Click to "
"disable it."
msgstr ""
+"ì—디터 ì°½ì„ ë‹¤ì‹œ 그릴 때 회전합니다.\n"
+"ì—…ë°ì´íŠ¸ê°€ ì§€ì†ì ìœ¼ë¡œ 활성화ë˜ë¯€ë¡œ, ì „ë ¥ ì‚¬ìš©ëŸ‰ì´ ì»¤ì§ˆ 수 있습니다. ì´ë¥¼ 비활"
+"성화하려면 í´ë¦­í•˜ì„¸ìš”."
#: editor/editor_node.cpp
msgid "Spins when the editor window redraws."
-msgstr "편집기 ì°½ì— ë³€í™”ê°€ ìžˆì„ ë•Œë§ˆë‹¤ 회전합니다."
+msgstr "ì—디터 ì°½ì— ë³€í™”ê°€ ìžˆì„ ë•Œë§ˆë‹¤ 회전합니다."
#: editor/editor_node.cpp
msgid "Imported resources can't be saved."
@@ -2383,7 +2368,7 @@ msgstr "예기치 못한 '%s' 파ì¼ì˜ ë."
#: editor/editor_node.cpp
msgid "Missing '%s' or its dependencies."
-msgstr "'%s' ë˜ëŠ” ì´ê²ƒì˜ ì¢…ì† í•­ëª©ì´ ì—†ìŠµë‹ˆë‹¤."
+msgstr "'%s' ë˜ëŠ” ì´ê²ƒì˜ ì¢…ì† í•­ëª©ì´ ëˆ„ë½ë˜ì–´ 있습니다."
#: editor/editor_node.cpp
msgid "Error while loading '%s'."
@@ -2446,8 +2431,8 @@ msgid ""
"An error occurred while trying to save the editor layout.\n"
"Make sure the editor's user data path is writable."
msgstr ""
-"편집기 ë ˆì´ì•„ì›ƒì˜ ì €ìž¥ì„ í•˜ë ¤ëŠ” ë™ì•ˆ 오류가 ë°œìƒí–ˆìŠµë‹ˆë‹¤.\n"
-"íŽ¸ì§‘ê¸°ì˜ ì‚¬ìš©ìž ë°ì´í„° 경로가 쓰기 가능한지 확ì¸í•´ì£¼ì„¸ìš”."
+"ì—디터 ë ˆì´ì•„ì›ƒì˜ ì €ìž¥ì„ í•˜ë ¤ëŠ” ë™ì•ˆ 오류가 ë°œìƒí–ˆìŠµë‹ˆë‹¤.\n"
+"ì—ë””í„°ì˜ ì‚¬ìš©ìž ë°ì´í„° 경로가 쓰기 가능한지 확ì¸í•´ì£¼ì„¸ìš”."
#: editor/editor_node.cpp
msgid ""
@@ -2455,9 +2440,9 @@ msgid ""
"To restore the Default layout to its base settings, use the Delete Layout "
"option and delete the Default layout."
msgstr ""
-"기본 편집기 ë ˆì´ì•„ì›ƒì´ ë®ì–´ 쓰여져 있습니디.\n"
-"기본 ë ˆì´ì•„ì›ƒì„ ì›ëž˜ 설정으로 복구하려면, ë ˆì´ì•„웃 ì‚­ì œ ì˜µì…˜ì„ ì‚¬ìš©í•˜ì—¬ 기본 "
-"ë ˆì´ì•„ì›ƒì„ ì‚­ì œí•˜ì„¸ìš”."
+"ë””í´íЏ ì—디터 ë ˆì´ì•„ì›ƒì´ ë®ì–´ 쓰여져 있습니다.\n"
+"ë””í´íЏ ë ˆì´ì•„ì›ƒì„ ì›ëž˜ 설정으로 ë³µì›í•˜ë ¤ë©´, ë ˆì´ì•„웃 ì‚­ì œ ì˜µì…˜ì„ ì‚¬ìš©í•˜ì—¬ ë””"
+"í´íЏ ë ˆì´ì•„ì›ƒì„ ì‚­ì œí•˜ì„¸ìš”."
#: editor/editor_node.cpp
msgid "Layout name not found!"
@@ -2465,7 +2450,7 @@ msgstr "ë ˆì´ì•„웃 ì´ë¦„ì„ ì°¾ì„ ìˆ˜ 없습니다!"
#: editor/editor_node.cpp
msgid "Restored the Default layout to its base settings."
-msgstr "기본 ë ˆì´ì•„ì›ƒì„ ì›ëž˜ 설정으로 복구하였습니다."
+msgstr "ë””í´íЏ ë ˆì´ì•„ì›ƒì„ ê¸°ë³¸ 설정으로 ë³µì›í•˜ì˜€ìŠµë‹ˆë‹¤."
#: editor/editor_node.cpp
msgid ""
@@ -2473,9 +2458,9 @@ msgid ""
"Please read the documentation relevant to importing scenes to better "
"understand this workflow."
msgstr ""
-"`ì´ ë¦¬ì†ŒìŠ¤ëŠ” 가져온 ì”¬ì— ì†í•œ 리소스ì´ë¯€ë¡œ 편집할 수 없습니다.\n"
-"ì´ ì›Œí¬í”Œë¡œë¥¼ ì´í•´í•˜ë ¤ë©´ 씬 가져오기(Importing Scenes)와 ê´€ë ¨ëœ ì„¤ëª…ë¬¸ì„œë¥¼ ì½"
-"어주세요."
+"ì´ ë¦¬ì†ŒìŠ¤ëŠ” 가져온 ì”¬ì— ì†í•œ 리소스ì´ë¯€ë¡œ 편집할 수 없습니다.\n"
+"ì´ ì›Œí¬í”Œë¡œë¥¼ ì´í•´í•˜ë ¤ë©´ 씬 가져오기(Importing Scenes)와 ê´€ë ¨ëœ ë¬¸ì„œë¥¼ ì½ì–´ì£¼"
+"세요."
#: editor/editor_node.cpp
msgid ""
@@ -2502,8 +2487,8 @@ msgid ""
msgstr ""
"ì´ ì”¬ì€ ê°€ì ¸ì˜¨ 것ì´ë¯€ë¡œ 변경 ì‚¬í•­ì´ ìœ ì§€ë˜ì§€ 않습니다.\n"
"ì´ ì”¬ì„ ì¸ìŠ¤í„´ìŠ¤í™”í•˜ê±°ë‚˜ ìƒì†í•˜ë©´ 편집할 수 있습니다.\n"
-"ì´ ì›Œí¬í”Œë¡œë¥¼ ì´í•´í•˜ë ¤ë©´ 씬 가져오기(Importing Scenes)와 ê´€ë ¨ëœ ì„¤ëª…ë¬¸ì„œë¥¼ ì½"
-"어주세요."
+"ì´ ì›Œí¬í”Œë¡œë¥¼ ì´í•´í•˜ë ¤ë©´ 씬 가져오기(Importing Scenes)와 ê´€ë ¨ëœ ë¬¸ì„œë¥¼ ì½ì–´ì£¼"
+"세요."
#: editor/editor_node.cpp
msgid ""
@@ -2511,12 +2496,12 @@ msgid ""
"Please read the documentation relevant to debugging to better understand "
"this workflow."
msgstr ""
-"ì›ê²© ê°ì²´ëŠ” ë³€ê²½ì‚¬í•­ì´ ì ìš©ë˜ì§€ 않습니다.\n"
-"ì´ ì›Œí¬í”Œë¡œë¥¼ ì´í•´í•˜ë ¤ë©´ 디버깅(Debugging)ê³¼ ê´€ë ¨ëœ ì„¤ëª…ë¬¸ì„œë¥¼ ì½ì–´ì£¼ì„¸ìš”."
+"ì›ê²© 오브ì íŠ¸ëŠ” ë³€ê²½ì‚¬í•­ì´ ì ìš©ë˜ì§€ 않습니다.\n"
+"ì´ ì›Œí¬í”Œë¡œë¥¼ ì´í•´í•˜ë ¤ë©´ 디버깅(Debugging)ê³¼ ê´€ë ¨ëœ ë¬¸ì„œë¥¼ ì½ì–´ì£¼ì„¸ìš”."
#: editor/editor_node.cpp
msgid "There is no defined scene to run."
-msgstr "실행할 ì”¬ì´ ì„¤ì •ë˜ì§€ 않았습니다."
+msgstr "실행할 ì”¬ì´ ì •ì˜ë˜ì§€ 않았습니다."
#: editor/editor_node.cpp
msgid "Save scene before running..."
@@ -2559,13 +2544,16 @@ msgid ""
"The current scene has no root node, but %d modified external resource(s) "
"were saved anyway."
msgstr ""
+"현재 씬ì—는 루트 노드가 없지만, ê·¸ëž˜ë„ ìˆ˜ì •ëœ ì™¸ë¶€ 리소스 %d개가 저장ë˜ì—ˆìŠµë‹ˆ"
+"다."
#: editor/editor_node.cpp
-#, fuzzy
msgid ""
"A root node is required to save the scene. You can add a root node using the "
"Scene tree dock."
-msgstr "ì”¬ì„ ì €ìž¥í•˜ë ¤ë©´ 루트 노드가 필요합니다."
+msgstr ""
+"ì”¬ì„ ì €ìž¥í•˜ë ¤ë©´ 루트 노드가 필요합니다. 씬 트리 ë…ì„ ì‚¬ìš©í•˜ì—¬ 루트 노드를 ì¶”"
+"가할 수 있습니다."
#: editor/editor_node.cpp
msgid "Save Scene As..."
@@ -2596,6 +2584,32 @@ msgid "Current scene not saved. Open anyway?"
msgstr "현재 ì”¬ì´ ì €ìž¥ë˜ì–´ 있지 않습니다. 무시하고 여시겠습니까?"
#: editor/editor_node.cpp
+msgid "Can't undo while mouse buttons are pressed."
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "Nothing to undo."
+msgstr ""
+
+#: editor/editor_node.cpp
+#, fuzzy
+msgid "Undo: %s"
+msgstr "ë˜ëŒë¦¬ê¸°"
+
+#: editor/editor_node.cpp
+msgid "Can't redo while mouse buttons are pressed."
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "Nothing to redo."
+msgstr ""
+
+#: editor/editor_node.cpp
+#, fuzzy
+msgid "Redo: %s"
+msgstr "다시 실행"
+
+#: editor/editor_node.cpp
msgid "Can't reload a scene that was never saved."
msgstr "저장하지 ì•Šì€ ì”¬ì€ ìƒˆë¡œê³ ì¹¨í•  수 없습니다."
@@ -2609,7 +2623,7 @@ msgid ""
"Reload the saved scene anyway? This action cannot be undone."
msgstr ""
"현재 씬ì—는 저장하지 ì•Šì€ ë³€ê²½ì‚¬í•­ì´ ìžˆìŠµë‹ˆë‹¤.\n"
-"ê·¸ëž˜ë„ ì €ìž¥ëœ ì”¬ì„ ìƒˆë¡œê³ ì¹¨í•˜ì‹œê² ìŠµë‹ˆê¹Œ? ì´ ë™ìž‘ì€ ë˜ëŒë¦´ 수 없습니다."
+"무시하고 ì €ìž¥ëœ ì”¬ì„ ìƒˆë¡œê³ ì¹¨í•˜ì‹œê² ìŠµë‹ˆê¹Œ? ì´ ë™ìž‘ì€ ë˜ëŒë¦´ 수 없습니다."
#: editor/editor_node.cpp
msgid "Quick Run Scene..."
@@ -2625,7 +2639,7 @@ msgstr "예"
#: editor/editor_node.cpp
msgid "Exit the editor?"
-msgstr "편집기를 나가시겠습니까?"
+msgstr "ì—디터를 나가시겠습니까?"
#: editor/editor_node.cpp
msgid "Open Project Manager?"
@@ -2666,7 +2680,7 @@ msgstr "ë‹«ì€ ì”¬ 다시 열기"
#: editor/editor_node.cpp
msgid "Unable to enable addon plugin at: '%s' parsing of config failed."
msgstr ""
-"ë‹¤ìŒ ê²½ë¡œì— ìžˆëŠ” 애드온 플러그ì¸ì„ 활성화할 수 ì—†ìŒ: '%s' ì„¤ì •ì˜ êµ¬ë¬¸ ë¶„ì„ì„ "
+"ë‹¤ìŒ ê²½ë¡œì— ìžˆëŠ” 애드온 플러그ì¸ì„ 활성화할 수 ì—†ìŒ: '%s' êµ¬ì„±ì˜ êµ¬ë¬¸ ë¶„ì„ì„ "
"실패했습니다."
#: editor/editor_node.cpp
@@ -2714,7 +2728,7 @@ msgid ""
"Error loading scene, it must be inside the project path. Use 'Import' to "
"open the scene, then save it inside the project path."
msgstr ""
-"ì”¬ì„ ë¶ˆëŸ¬ì˜¤ëŠ” 중 오류가 ë°œìƒí–ˆìŠµë‹ˆë‹¤. ì”¬ì€ í”„ë¡œì íЏ 경로 ë‚´ì— ìžˆì–´ì•¼ 합니다. "
+"ì”¬ì„ ë¶ˆëŸ¬ì˜¤ëŠ” 중 오류가 ë°œìƒí–ˆìŠµë‹ˆë‹¤. ì”¬ì€ í”„ë¡œì íЏ 경로 ì•ˆì— ìžˆì–´ì•¼ 합니다. "
"'가져오기'를 사용해서 ì”¬ì„ ì—´ê³ , ê·¸ ì”¬ì„ í”„ë¡œì íЏ 경로 ì•ˆì— ì €ìž¥í•˜ì„¸ìš”."
#: editor/editor_node.cpp
@@ -2731,7 +2745,7 @@ msgid ""
"You can change it later in \"Project Settings\" under the 'application' "
"category."
msgstr ""
-"ë©”ì¸ ì”¬ì„ ì§€ì •í•˜ì§€ 않았습니다. ì„ íƒí•˜ì‹œê² ìŠµë‹ˆê¹Œ?\n"
+"ë©”ì¸ ì”¬ì„ ì •ì˜í•˜ì§€ 않았습니다. ì„ íƒí•˜ì‹œê² ìŠµë‹ˆê¹Œ?\n"
"ë‚˜ì¤‘ì— \"프로ì íЏ 설정\"ì˜ 'application' 카테고리ì—서 변경할 수 있습니다."
#: editor/editor_node.cpp
@@ -2763,12 +2777,12 @@ msgstr "ë ˆì´ì•„웃 ì‚­ì œ"
#: editor/editor_node.cpp editor/import_dock.cpp
#: editor/script_create_dialog.cpp
msgid "Default"
-msgstr "기본"
+msgstr "ë””í´íЏ"
#: editor/editor_node.cpp editor/editor_resource_picker.cpp
#: editor/plugins/script_editor_plugin.cpp editor/property_editor.cpp
msgid "Show in FileSystem"
-msgstr "íŒŒì¼ ì‹œìŠ¤í…œì—서 보기"
+msgstr "파ì¼ì‹œìŠ¤í…œì—서 보기"
#: editor/editor_node.cpp
msgid "Play This Scene"
@@ -2820,7 +2834,7 @@ msgstr "집중 모드"
#: editor/editor_node.cpp
msgid "Toggle distraction-free mode."
-msgstr "집중 모드 토글."
+msgstr "집중 모드를 토글합니다."
#: editor/editor_node.cpp
msgid "Add a new scene."
@@ -2946,9 +2960,8 @@ msgid "Orphan Resource Explorer..."
msgstr "미사용 리소스 íƒìƒ‰ê¸°..."
#: editor/editor_node.cpp
-#, fuzzy
msgid "Reload Current Project"
-msgstr "프로ì íЏ ì´ë¦„ 바꾸기"
+msgstr "현재 프로ì íЏ 새로고침"
#: editor/editor_node.cpp
msgid "Quit to Project List"
@@ -2972,15 +2985,15 @@ msgid ""
"mobile device).\n"
"You don't need to enable it to use the GDScript debugger locally."
msgstr ""
-"ì´ ì˜µì…˜ì´ í™œì„±í™” ëœ ê²½ìš° ì› í´ë¦­ ë°°í¬ë¥¼ 사용하면 ì‹¤í–‰ì¤‘ì¸ í”„ë¡œì íŠ¸ë¥¼ 디버깅 "
+"ì´ ì˜µì…˜ì´ í™œì„±í™”ëœ ê²½ìš° ì› í´ë¦­ ë°°í¬ë¥¼ 사용하면 ì‹¤í–‰ì¤‘ì¸ í”„ë¡œì íŠ¸ë¥¼ 디버깅 "
"í•  수 있ë„ë¡ì´ ì»´í“¨í„°ì˜ IPì— ì—°ê²°ì„ ì‹œë„합니다.\n"
"ì´ ì˜µì…˜ì€ ì›ê²© 디버깅 (ì¼ë°˜ì ìœ¼ë¡œ ëª¨ë°”ì¼ ê¸°ê¸° 사용)ì— ì‚¬ìš©í•˜ê¸° 위한 것입니"
"다.\n"
-"GDScript 디버거를 로컬ì—서 사용하기 위해 활성화 í•  필요는 없습니다."
+"GDScript 디버거를 로컬ì—서 사용하기 위해 활성화할 필요는 없습니다."
#: editor/editor_node.cpp
msgid "Small Deploy with Network Filesystem"
-msgstr "ë„¤íŠ¸ì›Œí¬ íŒŒì¼ ì‹œìŠ¤í…œì„ ì‚¬ìš©í•˜ì—¬ 작게 ë°°í¬"
+msgstr "ë„¤íŠ¸ì›Œí¬ íŒŒì¼ì‹œìŠ¤í…œì„ ì‚¬ìš©í•˜ì—¬ 작게 ë°°í¬"
#: editor/editor_node.cpp
msgid ""
@@ -2993,21 +3006,21 @@ msgid ""
msgstr ""
"ì´ ì˜µì…˜ì„ í™œì„±í™”í•˜ê³  Android ìš© ì› í´ë¦­ ë°°í¬ë¥¼ 사용하면 프로ì íЏ ë°ì´í„°ì—†ì´ "
"실행 파ì¼ë§Œ ë‚´ 보냅니다.\n"
-"íŒŒì¼ ì‹œìŠ¤í…œì€ ë„¤íŠ¸ì›Œí¬ë¥¼ 통해 íŽ¸ì§‘ê¸°ì— ì˜í•´ 프로ì íЏì—서 제공ë©ë‹ˆë‹¤.\n"
-"Androidì˜ ê²½ìš°, ë°°í¬ì‹œ ë” ë¹ ë¥¸ ì†ë„를 위해 USB ì¼€ì´ë¸”ì„ ì‚¬ìš©í•©ë‹ˆë‹¤. ì´ ì„¤ì •"
-"ì€ ìš©ëŸ‰ì´ í° ê²Œìž„ì˜ í…ŒìŠ¤íŠ¸ ì†ë„를 í–¥ìƒì‹œí‚µë‹ˆë‹¤."
+"파ì¼ì‹œìŠ¤í…œì€ ë„¤íŠ¸ì›Œí¬ë¥¼ 통해 ì—ë””í„°ì— ì˜í•´ 프로ì íЏì—서 제공ë©ë‹ˆë‹¤.\n"
+"Androidì˜ ê²½ìš°, ë°°í¬ì‹œ ë” ë¹ ë¥¸ ì†ë„를 위해 USB ì¼€ì´ë¸”ì„ ì‚¬ìš©í•©ë‹ˆë‹¤. ì´ ì˜µì…˜"
+"ì€ ì• ì…‹ì˜ ìš©ëŸ‰ì´ í° í”„ë¡œì íŠ¸ì˜ í…ŒìŠ¤íŠ¸ ì†ë„를 높입니다."
#: editor/editor_node.cpp
msgid "Visible Collision Shapes"
-msgstr "ì¶©ëŒ ëª¨ì–‘ ë³´ì´ê¸°"
+msgstr "콜리전 모양 ë³´ì´ê¸°"
#: editor/editor_node.cpp
msgid ""
"When this option is enabled, collision shapes and raycast nodes (for 2D and "
"3D) will be visible in the running project."
msgstr ""
-"ì´ ì„¤ì •ì„ ì¼œë©´ 프로ì íŠ¸ë¥¼ 실행하는 ë™ì•ˆ (2D와 3Dìš©) Collision 모양과 Raycast "
-"노드가 ë³´ì´ê²Œ ë©ë‹ˆë‹¤."
+"ì´ ì„¤ì •ì„ í™œì„±í™”í•˜ë©´ 프로ì íŠ¸ë¥¼ 실행하는 ë™ì•ˆ (2D와 3Dìš©) 콜리전 모양과 "
+"Raycast 노드가 ë³´ì´ê²Œ ë©ë‹ˆë‹¤."
#: editor/editor_node.cpp
msgid "Visible Navigation"
@@ -3018,8 +3031,8 @@ msgid ""
"When this option is enabled, navigation meshes and polygons will be visible "
"in the running project."
msgstr ""
-"ì´ ì„¤ì •ì„ ì¼œë©´,프로ì íŠ¸ë¥¼ 실행하는 ë™ì•ˆ Navigation 메시와 í´ë¦¬ê³¤ì´ ë³´ì´ê²Œ ë©"
-"니다."
+"ì´ ì„¤ì •ì´ í™œì„±í™”ë˜ë©´, 프로ì íŠ¸ë¥¼ 실행하는 ë™ì•ˆ 네비게ì´ì…˜ 메시와 í´ë¦¬ê³¤ì´ ë³´"
+"ì´ê²Œ ë©ë‹ˆë‹¤."
#: editor/editor_node.cpp
msgid "Synchronize Scene Changes"
@@ -3032,9 +3045,9 @@ msgid ""
"When used remotely on a device, this is more efficient when the network "
"filesystem option is enabled."
msgstr ""
-"ì´ ì„¤ì •ì´ í™œì„±í™”ëœ ê²½ìš°, 편집기ì—서 ì”¬ì„ ìˆ˜ì •í•˜ë©´ ì‹¤í–‰ì¤‘ì¸ í”„ë¡œì íŠ¸ì— ë°˜ì˜ë©"
-"니다.\n"
-"기기ì—서 ì›ê²©ìœ¼ë¡œ ì‚¬ìš©ì¤‘ì¸ ê²½ìš° ë„¤íŠ¸ì›Œí¬ íŒŒì¼ ì‹œìŠ¤í…œ ê¸°ëŠ¥ì„ í™œì„±í™”í•˜ë©´ ë”ìš± "
+"ì´ ì„¤ì •ì´ í™œì„±í™”ë˜ë©´, ì—디터ì—서 ì”¬ì„ ìˆ˜ì •í•˜ë©´ 실행 ì¤‘ì¸ í”„ë¡œì íŠ¸ì— ë°˜ì˜ë©ë‹ˆ"
+"다.\n"
+"기기ì—서 ì›ê²©ìœ¼ë¡œ 사용 ì¤‘ì¸ ê²½ìš° ë„¤íŠ¸ì›Œí¬ íŒŒì¼ì‹œìŠ¤í…œ ê¸°ëŠ¥ì„ í™œì„±í™”í•˜ë©´ ë”ìš± "
"효율ì ìž…니다."
#: editor/editor_node.cpp
@@ -3048,22 +3061,22 @@ msgid ""
"When used remotely on a device, this is more efficient when the network "
"filesystem option is enabled."
msgstr ""
-"ì´ ì˜µì…˜ì´ í™œì„±í™”ëœ ê²½ìš°, ì–´ë–¤ 스í¬ë¦½íŠ¸ë“ ì§€ 저장ë˜ë©´ 실행 ì¤‘ì¸ í”„ë¡œì íŠ¸ë¥¼ 다"
-"시 불러오게 ë©ë‹ˆë‹¤.\n"
-"기기ì—서 ì›ê²©ìœ¼ë¡œ 사용 ì¤‘ì¸ ê²½ìš°, ë„¤íŠ¸ì›Œí¬ íŒŒì¼ ì‹œìŠ¤í…œ ì˜µì…˜ì´ í™œì„±í™”ë˜ì–´ 있다"
-"ë©´ ë”ìš± 효율ì ìž…니다."
+"ì´ ì˜µì…˜ì´ í™œì„±í™”ë˜ë©´, ì–´ë–¤ 스í¬ë¦½íŠ¸ë“ ì§€ 저장ë˜ë©´ 실행 ì¤‘ì¸ í”„ë¡œì íŠ¸ë¥¼ 다시 불"
+"러오게 ë©ë‹ˆë‹¤.\n"
+"기기ì—서 ì›ê²©ìœ¼ë¡œ 사용 중ì´ë©´, ë„¤íŠ¸ì›Œí¬ íŒŒì¼ì‹œìŠ¤í…œ ì˜µì…˜ì´ í™œì„±í™”ë˜ì–´ 있다면 "
+"ë”ìš± 효율ì ìž…니다."
#: editor/editor_node.cpp editor/script_create_dialog.cpp
msgid "Editor"
-msgstr "편집기"
+msgstr "ì—디터"
#: editor/editor_node.cpp
msgid "Editor Settings..."
-msgstr "편집기 설정..."
+msgstr "ì—디터 설정..."
#: editor/editor_node.cpp
msgid "Editor Layout"
-msgstr "편집기 ë ˆì´ì•„웃"
+msgstr "ì—디터 ë ˆì´ì•„웃"
#: editor/editor_node.cpp
msgid "Take Screenshot"
@@ -3083,19 +3096,19 @@ msgstr "시스템 콘솔 토글"
#: editor/editor_node.cpp
msgid "Open Editor Data/Settings Folder"
-msgstr "편집기 ë°ì´í„°/설정 í´ë” 열기"
+msgstr "ì—디터 ë°ì´í„°/설정 í´ë” 열기"
#: editor/editor_node.cpp
msgid "Open Editor Data Folder"
-msgstr "편집기 ë°ì´í„° í´ë” 열기"
+msgstr "ì—디터 ë°ì´í„° í´ë” 열기"
#: editor/editor_node.cpp
msgid "Open Editor Settings Folder"
-msgstr "편집기 설정 í´ë” 열기"
+msgstr "ì—디터 설정 í´ë” 열기"
#: editor/editor_node.cpp
msgid "Manage Editor Features..."
-msgstr "편집기 기능 관리..."
+msgstr "ì—디터 기능 관리..."
#: editor/editor_node.cpp
msgid "Manage Export Templates..."
@@ -3107,20 +3120,19 @@ msgstr "ë„움ë§"
#: editor/editor_node.cpp
msgid "Online Documentation"
-msgstr "온ë¼ì¸ 설명문서"
+msgstr "온ë¼ì¸ 문서"
#: editor/editor_node.cpp
msgid "Questions & Answers"
-msgstr ""
+msgstr "질문과 답변"
#: editor/editor_node.cpp
msgid "Report a Bug"
msgstr "버그 보고"
#: editor/editor_node.cpp
-#, fuzzy
msgid "Suggest a Feature"
-msgstr "값 설정"
+msgstr "기능 제안"
#: editor/editor_node.cpp
msgid "Send Docs Feedback"
@@ -3131,9 +3143,8 @@ msgid "Community"
msgstr "커뮤니티"
#: editor/editor_node.cpp
-#, fuzzy
msgid "About Godot"
-msgstr "ì •ë³´"
+msgstr "Godot ì •ë³´"
#: editor/editor_node.cpp
msgid "Support Godot Development"
@@ -3177,7 +3188,7 @@ msgstr "커스텀 씬 실행"
#: editor/editor_node.cpp
msgid "Changing the video driver requires restarting the editor."
-msgstr "비디오 드ë¼ì´ë²„를 변경하려면 편집기를 다시 ê»ë‹¤ 켜야 합니다."
+msgstr "비디오 드ë¼ì´ë²„를 변경하려면 ì—디터를 다시 시작해야 합니다."
#: editor/editor_node.cpp editor/project_settings_editor.cpp
#: editor/settings_config_dialog.cpp
@@ -3198,7 +3209,7 @@ msgstr "ì—…ë°ì´íЏ 스피너 숨기기"
#: editor/editor_node.cpp
msgid "FileSystem"
-msgstr "íŒŒì¼ ì‹œìŠ¤í…œ"
+msgstr "파ì¼ì‹œìŠ¤í…œ"
#: editor/editor_node.cpp
msgid "Inspector"
@@ -3218,14 +3229,13 @@ msgstr "저장하지 않ìŒ"
#: editor/editor_node.cpp
msgid "Android build template is missing, please install relevant templates."
-msgstr "Android 빌드 í…œí”Œë¦¿ì´ ì—†ìŠµë‹ˆë‹¤, 관련 í…œí”Œë¦¿ì„ ì„¤ì¹˜í•´ì£¼ì„¸ìš”."
+msgstr "Android 빌드 í…œí”Œë¦¿ì´ ëˆ„ë½ë˜ì–´ 있습니다, 관련 í…œí”Œë¦¿ì„ ì„¤ì¹˜í•´ì£¼ì„¸ìš”."
#: editor/editor_node.cpp
msgid "Manage Templates"
msgstr "템플릿 관리"
#: editor/editor_node.cpp
-#, fuzzy
msgid "Install from file"
msgstr "파ì¼ì—서 설치"
@@ -3248,7 +3258,7 @@ msgstr ""
"그런 ë‹¤ìŒ ìˆ˜ì • ì‚¬í•­ì„ ì ìš©í•˜ê³  맞춤 APK를 만들어 내보낼 수 있습니다 (모듈 ì¶”"
"가, AndroidManifest.xml 바꾸기 등).\n"
"미리 ë¹Œë“œëœ APK를 사용하는 대신 맞춤 빌드를 만들려면, Android 내보내기 프리셋"
-"ì—서 \"맞춤 빌드 사용\" ì„¤ì •ì„ ì¼œ 놓아야 합니다."
+"ì—서 \"맞춤 빌드 사용\" ì„¤ì •ì„ í™œì„±í™”í•´ì•¼ 합니다."
#: editor/editor_node.cpp
msgid ""
@@ -3258,7 +3268,8 @@ msgid ""
"operation again."
msgstr ""
"Android 빌드 í…œí”Œë¦¿ì´ ì´ë¯¸ ì´ í”„ë¡œì íŠ¸ì— ì„¤ì¹˜í–ˆê³ , ë®ì–´ 쓸 수 없습니다.\n"
-"ì´ ëª…ë ¹ì„ ë‹¤ì‹œ 실행 ì „ì— \"res://android/build\" 디렉토리를 삭제하세요."
+"ì´ ëª…ë ¹ì„ ë‹¤ì‹œ 실행하기 ì „ì— \"res://android/build\" 디렉토리를 ì§ì ‘ 제거하세"
+"ìš”."
#: editor/editor_node.cpp
msgid "Import Templates From ZIP File"
@@ -3277,6 +3288,11 @@ msgid "Merge With Existing"
msgstr "ê¸°ì¡´ì˜ ê²ƒê³¼ 병합"
#: editor/editor_node.cpp
+#, fuzzy
+msgid "Apply MeshInstance Transforms"
+msgstr "애니메ì´ì…˜ 변형 바꾸기"
+
+#: editor/editor_node.cpp
msgid "Open & Run a Script"
msgstr "스í¬ë¦½íЏ 열기 & 실행"
@@ -3311,21 +3327,20 @@ msgid "Select"
msgstr "ì„ íƒ"
#: editor/editor_node.cpp
-#, fuzzy
msgid "Select Current"
-msgstr "현재 í´ë” ì„ íƒ"
+msgstr "현재 ì„ íƒ"
#: editor/editor_node.cpp
msgid "Open 2D Editor"
-msgstr "2D 편집기 열기"
+msgstr "2D ì—디터 열기"
#: editor/editor_node.cpp
msgid "Open 3D Editor"
-msgstr "3D 편집기 열기"
+msgstr "3D ì—디터 열기"
#: editor/editor_node.cpp
msgid "Open Script Editor"
-msgstr "스í¬ë¦½íЏ 편집기 열기"
+msgstr "스í¬ë¦½íЏ ì—디터 열기"
#: editor/editor_node.cpp editor/project_manager.cpp
msgid "Open Asset Library"
@@ -3333,11 +3348,11 @@ msgstr "ì• ì…‹ ë¼ì´ë¸ŒëŸ¬ë¦¬ 열기"
#: editor/editor_node.cpp
msgid "Open the next Editor"
-msgstr "ë‹¤ìŒ íŽ¸ì§‘ê¸° 열기"
+msgstr "ë‹¤ìŒ ì—디터 열기"
#: editor/editor_node.cpp
msgid "Open the previous Editor"
-msgstr "ì´ì „ 편집기 열기"
+msgstr "ì´ì „ ì—디터 열기"
#: editor/editor_node.h
msgid "Warning!"
@@ -3348,9 +3363,8 @@ msgid "No sub-resources found."
msgstr "하위 리소스를 ì°¾ì„ ìˆ˜ 없습니다."
#: editor/editor_path.cpp
-#, fuzzy
msgid "Open a list of sub-resources."
-msgstr "하위 리소스를 ì°¾ì„ ìˆ˜ 없습니다."
+msgstr "하위 ë¦¬ì†ŒìŠ¤ì˜ ëª©ë¡ì„ 엽니다."
#: editor/editor_plugin.cpp
msgid "Creating Mesh Previews"
@@ -3362,7 +3376,7 @@ msgstr "ì¸ë„¤ì¼..."
#: editor/editor_plugin_settings.cpp
msgid "Main Script:"
-msgstr "기본 스í¬ë¦½íЏ:"
+msgstr "주 스í¬ë¦½íЏ:"
#: editor/editor_plugin_settings.cpp
msgid "Edit Plugin"
@@ -3381,7 +3395,6 @@ msgid "Version"
msgstr "버전"
#: editor/editor_plugin_settings.cpp
-#, fuzzy
msgid "Author"
msgstr "ì €ìž"
@@ -3396,14 +3409,12 @@ msgid "Measure:"
msgstr "측정:"
#: editor/editor_profiler.cpp
-#, fuzzy
msgid "Frame Time (ms)"
-msgstr "프레임 시간 (초)"
+msgstr "프레임 시간 (ms)"
#: editor/editor_profiler.cpp
-#, fuzzy
msgid "Average Time (ms)"
-msgstr "í‰ê·  시간 (ì´ˆ)"
+msgstr "í‰ê·  시간 (ms)"
#: editor/editor_profiler.cpp
msgid "Frame %"
@@ -3415,11 +3426,11 @@ msgstr "물리 프레임 %"
#: editor/editor_profiler.cpp
msgid "Inclusive"
-msgstr "í¬í•¨"
+msgstr "í¬ê´„ì "
#: editor/editor_profiler.cpp
msgid "Self"
-msgstr "셀프"
+msgstr "ìžì²´"
#: editor/editor_profiler.cpp
msgid ""
@@ -3430,6 +3441,12 @@ msgid ""
"functions called by that function.\n"
"Use this to find individual functions to optimize."
msgstr ""
+"í¬ê´„ì : ì´ í•¨ìˆ˜ì— ì˜í•´ í˜¸ì¶œëœ ë‹¤ë¥¸ 함수로부터 ì‹œê°„ì„ í¬í•¨í•©ë‹ˆë‹¤.\n"
+"ì´ë¥¼ 사용하여 병목 현ìƒì„ 찾아냅니다.\n"
+"\n"
+"ìžì²´: 해당 í•¨ìˆ˜ì— ì˜í•´ í˜¸ì¶œëœ ë‹¤ë¥¸ 함수ì—서가 아닌, 함수 ìžì²´ì—서 보낸 시간"
+"만 계산합니다.\n"
+"ì´ë¥¼ 사용하여 최ì í™”í•  개별 함수를 찾습니다."
#: editor/editor_profiler.cpp
msgid "Frame #:"
@@ -3510,7 +3527,7 @@ msgstr "페ì´ì§€: "
#: editor/editor_properties_array_dict.cpp
#: editor/plugins/theme_editor_plugin.cpp
msgid "Remove Item"
-msgstr "항목 삭제"
+msgstr "항목 제거"
#: editor/editor_properties_array_dict.cpp
msgid "New Key:"
@@ -3528,7 +3545,11 @@ msgstr "키/ê°’ ìŒ ì¶”ê°€"
msgid ""
"The selected resource (%s) does not match any type expected for this "
"property (%s)."
-msgstr "ì„ íƒí•œ 리소스 (%s)ê°€ ì´ ì†ì„± (%s)ì— ì í•©í•œ 모든 ìœ í˜•ì— ë§žì§€ 않습니다."
+msgstr "ì„ íƒí•œ 리소스(%s)ê°€ ì´ ì†ì„±(%s)ì— ì í•©í•œ 모든 ìœ í˜•ì— ë§žì§€ 않습니다."
+
+#: editor/editor_resource_picker.cpp
+msgid "Quick Load"
+msgstr ""
#: editor/editor_resource_picker.cpp editor/property_editor.cpp
msgid "Make Unique"
@@ -3549,7 +3570,6 @@ msgid "Paste"
msgstr "붙여넣기"
#: editor/editor_resource_picker.cpp editor/property_editor.cpp
-#, fuzzy
msgid "Convert to %s"
msgstr "%s(으)로 변환"
@@ -3573,7 +3593,7 @@ msgid ""
msgstr ""
"ì´ í”Œëž«í¼ì„ 위한 실행할 수 있는 내보내기 í”„ë¦¬ì…‹ì´ ì—†ìŠµë‹ˆë‹¤.\n"
"내보내기 메뉴ì—서 실행할 수 있는 í”„ë¦¬ì…‹ì„ ì¶”ê°€í•˜ê±°ë‚˜ 기존 í”„ë¦¬ì…‹ì„ ì‹¤í–‰í•  수 "
-"있ë„ë¡ ì§€ì •í•´ì£¼ì„¸ìš”."
+"있ë„ë¡ ì •ì˜í•´ì£¼ì„¸ìš”."
#: editor/editor_run_script.cpp
msgid "Write your logic in the _run() method."
@@ -3600,10 +3620,8 @@ msgid "Did you forget the '_run' method?"
msgstr "'_run' 메서드를 잊었나요?"
#: editor/editor_spin_slider.cpp
-#, fuzzy
msgid "Hold %s to round to integers. Hold Shift for more precise changes."
-msgstr ""
-"Ctrlì„ ëˆŒëŸ¬ 정수로 반올림합니다. Shift를 눌러 좀 ë” ì •ë°€í•˜ê²Œ 조작합니다."
+msgstr "%s를 눌러 정수로 반올림합니다. Shift를 눌러 좀 ë” ì •ë°€í•˜ê²Œ 조작합니다."
#: editor/editor_sub_scene.cpp
msgid "Select Node(s) to Import"
@@ -3623,32 +3641,29 @@ msgstr "노드ì—서 가져오기:"
#: editor/export_template_manager.cpp
msgid "Open the folder containing these templates."
-msgstr ""
+msgstr "ì´ í…œí”Œë¦¿ì„ í¬í•¨í•˜ëŠ” í´ë”를 엽니다."
#: editor/export_template_manager.cpp
msgid "Uninstall these templates."
msgstr "ì´ í…œí”Œë¦¿ì„ ì œê±°í•©ë‹ˆë‹¤."
#: editor/export_template_manager.cpp
-#, fuzzy
msgid "There are no mirrors available."
-msgstr "'%s' 파ì¼ì´ 없습니다."
+msgstr "사용 가능한 미러가 없습니다."
#: editor/export_template_manager.cpp
-#, fuzzy
msgid "Retrieving the mirror list..."
-msgstr "미러를 검색 중입니다. 기다려주세요..."
+msgstr "미러 목ë¡ì„ 검색하는 중..."
#: editor/export_template_manager.cpp
msgid "Starting the download..."
-msgstr ""
+msgstr "다운로드를 시작하는 중..."
#: editor/export_template_manager.cpp
msgid "Error requesting URL:"
msgstr "URL 요청 중 오류:"
#: editor/export_template_manager.cpp
-#, fuzzy
msgid "Connecting to the mirror..."
msgstr "ë¯¸ëŸ¬ì— ì—°ê²° 중..."
@@ -3683,7 +3698,7 @@ msgstr "다운로드를 완료하여 í…œí”Œë¦¿ì„ ì••ì¶• í•´ì œ 중..."
#: editor/export_template_manager.cpp
msgid "Cannot remove temporary file:"
-msgstr "임시 파ì¼ì„ 삭제할 수 ì—†ìŒ:"
+msgstr "임시 파ì¼ì„ 제거할 수 ì—†ìŒ:"
#: editor/export_template_manager.cpp
msgid ""
@@ -3698,7 +3713,6 @@ msgid "Error getting the list of mirrors."
msgstr "미러 목ë¡ì„ 가져오는 중 오류."
#: editor/export_template_manager.cpp
-#, fuzzy
msgid "Error parsing JSON with the list of mirrors. Please report this issue!"
msgstr "미러 목ë¡ì˜ JSON 구문 ë¶„ì„ ì¤‘ 오류. ì´ ë¬¸ì œë¥¼ 신고해주세요!"
@@ -3757,24 +3771,20 @@ msgid "SSL Handshake Error"
msgstr "SSL 핸드셰ì´í¬ 오류"
#: editor/export_template_manager.cpp
-#, fuzzy
msgid "Can't open the export templates file."
-msgstr "내보내기 템플릿 zip 파ì¼ì„ ì—´ 수 없습니다."
+msgstr "내보내기 템플릿 파ì¼ì„ ì—´ 수 없습니다."
#: editor/export_template_manager.cpp
-#, fuzzy
msgid "Invalid version.txt format inside the export templates file: %s."
-msgstr "템플릿 ì†ì˜ version.txtê°€ ìž˜ëª»ëœ í˜•ì‹ìž„: %s."
+msgstr "내보내기 템플릿 íŒŒì¼ ì•ˆì˜ version.txtê°€ ìž˜ëª»ëœ í˜•ì‹ìž„: %s."
#: editor/export_template_manager.cpp
-#, fuzzy
msgid "No version.txt found inside the export templates file."
-msgstr "í…œí”Œë¦¿ì— version.txt를 ì°¾ì„ ìˆ˜ 없습니다."
+msgstr "내보내기 템플릿 íŒŒì¼ ì•ˆì— version.txt를 ì°¾ì„ ìˆ˜ 없습니다."
#: editor/export_template_manager.cpp
-#, fuzzy
msgid "Error creating path for extracting templates:"
-msgstr "í…œí”Œë¦¿ì˜ ê²½ë¡œë¥¼ 만드는 중 오류:"
+msgstr "í…œí”Œë¦¿ì„ ì••ì¶• 풀기 위한 경로를 만드는 중 오류:"
#: editor/export_template_manager.cpp
msgid "Extracting Export Templates"
@@ -3785,9 +3795,8 @@ msgid "Importing:"
msgstr "가져오는 중:"
#: editor/export_template_manager.cpp
-#, fuzzy
msgid "Remove templates for the version '%s'?"
-msgstr "템플릿 버전 '%s'ì„(를) 삭제할까요?"
+msgstr "버전 '%s'ì˜ í…œí”Œë¦¿ì„ ì œê±°í•˜ì‹œê² ìŠµë‹ˆê¹Œ?"
#: editor/export_template_manager.cpp
msgid "Uncompressing Android Build Sources"
@@ -3804,19 +3813,19 @@ msgstr "현재 버전:"
#: editor/export_template_manager.cpp
msgid "Export templates are missing. Download them or install from a file."
msgstr ""
+"내보내기 í…œí”Œë¦¿ì´ ëˆ„ë½ë˜ì–´ 있습니다. 다운로드하거나 파ì¼ì—서 설치하세요."
#: editor/export_template_manager.cpp
msgid "Export templates are installed and ready to be used."
-msgstr ""
+msgstr "내보내기 í…œí”Œë¦¿ì´ ì„¤ì¹˜ë˜ì–´ ì‚¬ìš©ë  ì¤€ë¹„ê°€ ë˜ì—ˆìŠµë‹ˆë‹¤."
#: editor/export_template_manager.cpp
-#, fuzzy
msgid "Open Folder"
-msgstr "íŒŒì¼ ì—´ê¸°"
+msgstr "í´ë” 열기"
#: editor/export_template_manager.cpp
msgid "Open the folder containing installed templates for the current version."
-msgstr ""
+msgstr "현재 ë²„ì „ì„ ìœ„í•œ ì„¤ì¹˜ëœ í…œí”Œë¦¿ì„ í¬í•¨í•˜ëŠ” í´ë”를 엽니다."
#: editor/export_template_manager.cpp
msgid "Uninstall"
@@ -3827,36 +3836,33 @@ msgid "Uninstall templates for the current version."
msgstr "현재 ë²„ì „ì„ ìœ„í•œ í…œí”Œë¦¿ì„ ì œê±°í•©ë‹ˆë‹¤."
#: editor/export_template_manager.cpp
-#, fuzzy
msgid "Download from:"
-msgstr "ë‹¤ìŒ ìœ„ì¹˜ì—서 다운로드:"
+msgstr "다ìŒìœ¼ë¡œë¶€í„° 다운로드:"
#: editor/export_template_manager.cpp
-#, fuzzy
msgid "Open in Web Browser"
-msgstr "브ë¼ìš°ì €ì—서 실행"
+msgstr "웹 브ë¼ìš°ì €ì—서 열기"
#: editor/export_template_manager.cpp
-#, fuzzy
msgid "Copy Mirror URL"
-msgstr "복사 오류"
+msgstr "미러 URL 복사"
#: editor/export_template_manager.cpp
msgid "Download and Install"
-msgstr ""
+msgstr "다운로드 ë° ì„¤ì¹˜"
#: editor/export_template_manager.cpp
msgid ""
"Download and install templates for the current version from the best "
"possible mirror."
msgstr ""
+"최ìƒì˜ 가능한 미러ì—서 현재 ë²„ì „ì„ ìœ„í•œ í…œí”Œë¦¿ì„ ë‹¤ìš´ë¡œë“œí•˜ê³  설치합니다."
#: editor/export_template_manager.cpp
msgid "Official export templates aren't available for development builds."
msgstr "ê³µì‹ ë‚´ë³´ë‚´ê¸° í…œí”Œë¦¿ì€ ê°œë°œ 빌드ì—서는 ì´ìš©í•  수 없습니다."
#: editor/export_template_manager.cpp
-#, fuzzy
msgid "Install from File"
msgstr "파ì¼ì—서 설치"
@@ -3870,14 +3876,12 @@ msgid "Cancel"
msgstr "취소"
#: editor/export_template_manager.cpp
-#, fuzzy
msgid "Cancel the download of the templates."
-msgstr "내보내기 템플릿 zip 파ì¼ì„ ì—´ 수 없습니다."
+msgstr "í…œí”Œë¦¿ì˜ ë‹¤ìš´ë¡œë“œë¥¼ 취소합니다."
#: editor/export_template_manager.cpp
-#, fuzzy
msgid "Other Installed Versions:"
-msgstr "ì„¤ì¹˜ëœ ë²„ì „:"
+msgstr "다른 ì„¤ì¹˜ëœ ë²„ì „:"
#: editor/export_template_manager.cpp
msgid "Uninstall Template"
@@ -3896,6 +3900,8 @@ msgid ""
"The templates will continue to download.\n"
"You may experience a short editor freeze when they finish."
msgstr ""
+"í…œí”Œë¦¿ì´ ë‹¤ìš´ë¡œë“œë¥¼ 계ì†í•  것입니다.\n"
+"완료ë˜ë©´ ì—디터가 짧게 멈추는 현ìƒì„ ê²ªì„ ìˆ˜ 있습니다."
#: editor/filesystem_dock.cpp
msgid "Favorites"
@@ -3911,7 +3917,7 @@ msgstr ""
msgid ""
"Importing has been disabled for this file, so it can't be opened for editing."
msgstr ""
-"ì´ íŒŒì¼ì— 대해 가져 오기가 비활성화ë˜ì—ˆìœ¼ë©° íŽ¸ì§‘ì„ ìœ„í•´ ì—´ 수 없습니다."
+"ì´ íŒŒì¼ì— 대해 가져오기가 비활성화ë˜ì—ˆìœ¼ë©°, íŽ¸ì§‘ì„ ìœ„í•´ ì—´ 수 없습니다."
#: editor/filesystem_dock.cpp
msgid "Cannot move/rename resources root."
@@ -3998,11 +4004,11 @@ msgstr "ì¸ìŠ¤í„´ìŠ¤í•˜ê¸°"
#: editor/filesystem_dock.cpp
msgid "Add to Favorites"
-msgstr "ì¦ê²¨ì°¾ê¸°ë¡œ 추가"
+msgstr "ì¦ê²¨ì°¾ê¸°ì— 추가"
#: editor/filesystem_dock.cpp
msgid "Remove from Favorites"
-msgstr "ì¦ê²¨ì°¾ê¸°ì—서 ì‚­ì œ"
+msgstr "ì¦ê²¨ì°¾ê¸°ì—서 제거"
#: editor/filesystem_dock.cpp
msgid "Edit Dependencies..."
@@ -4041,35 +4047,32 @@ msgid "Collapse All"
msgstr "ëª¨ë‘ ì ‘ê¸°"
#: editor/filesystem_dock.cpp
-#, fuzzy
msgid "Sort files"
-msgstr "íŒŒì¼ ê²€ìƒ‰"
+msgstr "íŒŒì¼ ì •ë ¬"
#: editor/filesystem_dock.cpp
msgid "Sort by Name (Ascending)"
-msgstr ""
+msgstr "ì´ë¦„순 ì •ë ¬ (오름차순)"
#: editor/filesystem_dock.cpp
msgid "Sort by Name (Descending)"
-msgstr ""
+msgstr "ì´ë¦„순 ì •ë ¬ (내림차순)"
#: editor/filesystem_dock.cpp
msgid "Sort by Type (Ascending)"
-msgstr ""
+msgstr "유형별 정렬 (오름차순)"
#: editor/filesystem_dock.cpp
msgid "Sort by Type (Descending)"
-msgstr ""
+msgstr "유형별 정렬 (내림차순)"
#: editor/filesystem_dock.cpp
-#, fuzzy
msgid "Sort by Last Modified"
-msgstr "마지막으로 수정ë¨"
+msgstr "마지막으로 ìˆ˜ì •ëœ ìˆœì„œë¡œ ì •ë ¬"
#: editor/filesystem_dock.cpp
-#, fuzzy
msgid "Sort by First Modified"
-msgstr "마지막으로 수정ë¨"
+msgstr "처ìŒìœ¼ë¡œ ìˆ˜ì •ëœ ìˆœì„œë¡œ ì •ë ¬"
#: editor/filesystem_dock.cpp
msgid "Duplicate..."
@@ -4081,7 +4084,7 @@ msgstr "ì´ë¦„ 바꾸기..."
#: editor/filesystem_dock.cpp
msgid "Focus the search box"
-msgstr ""
+msgstr "ê²€ìƒ‰ì°½ì— ì´ˆì  ë§žì¶”ê¸°"
#: editor/filesystem_dock.cpp
msgid "Previous Folder/File"
@@ -4093,7 +4096,7 @@ msgstr "ë‹¤ìŒ í´ë”/파ì¼"
#: editor/filesystem_dock.cpp
msgid "Re-Scan Filesystem"
-msgstr "íŒŒì¼ ì‹œìŠ¤í…œ 다시 스캔"
+msgstr "파ì¼ì‹œìŠ¤í…œ 다시 스캔"
#: editor/filesystem_dock.cpp
msgid "Toggle Split Mode"
@@ -4155,8 +4158,8 @@ msgid ""
"Include the files with the following extensions. Add or remove them in "
"ProjectSettings."
msgstr ""
-"해당 í™•ìž¥ìž ì´ë¦„ì„ ê°–ëŠ” 파ì¼ì´ 있습니다. 프로ì íЏ ì„¤ì •ì— íŒŒì¼ì„ 추가하거나 ì‚­"
-"제하세요."
+"해당 í™•ìž¥ìž ì´ë¦„ì„ ê°–ëŠ” 파ì¼ì´ í¬í•¨ë˜ì–´ 있습니다. 프로ì íЏ ì„¤ì •ì— íŒŒì¼ì„ 추가"
+"하거나 제거하세요."
#: editor/find_in_files.cpp editor/plugins/script_editor_plugin.cpp
#: editor/plugins/script_text_editor.cpp
@@ -4201,7 +4204,7 @@ msgstr "ê·¸ë£¹ì— ì¶”ê°€"
#: editor/groups_editor.cpp
msgid "Remove from Group"
-msgstr "그룹ì—서 ì‚­ì œ"
+msgstr "그룹ì—서 제거"
#: editor/groups_editor.cpp
msgid "Group name already exists."
@@ -4238,11 +4241,11 @@ msgstr "ê·¸ë£¹ì— ì†í•œ 노드"
#: editor/groups_editor.cpp
msgid "Empty groups will be automatically removed."
-msgstr "빈 ê·¸ë£¹ì€ ìžë™ìœ¼ë¡œ ì‚­ì œë©ë‹ˆë‹¤."
+msgstr "빈 ê·¸ë£¹ì€ ìžë™ìœ¼ë¡œ 제거ë©ë‹ˆë‹¤."
#: editor/groups_editor.cpp
msgid "Group Editor"
-msgstr "그룹 편집기"
+msgstr "그룹 ì—디터"
#: editor/groups_editor.cpp
msgid "Manage Groups"
@@ -4262,15 +4265,15 @@ msgstr "ë¨¸í‹°ë¦¬ì–¼ì„ ë¶„ë¦¬í•´ì„œ 가져오기"
#: editor/import/resource_importer_scene.cpp
msgid "Import with Separate Objects"
-msgstr "ê°ì²´ë¥¼ 분리해서 가져오기"
+msgstr "오브ì íŠ¸ë¥¼ 분리해서 가져오기"
#: editor/import/resource_importer_scene.cpp
msgid "Import with Separate Objects+Materials"
-msgstr "ê°ì²´ì™€ ë¨¸í‹°ë¦¬ì–¼ì„ ë¶„ë¦¬í•´ì„œ 가져오기"
+msgstr "오브ì íŠ¸ì™€ ë¨¸í‹°ë¦¬ì–¼ì„ ë¶„ë¦¬í•´ì„œ 가져오기"
#: editor/import/resource_importer_scene.cpp
msgid "Import with Separate Objects+Animations"
-msgstr "ê°ì²´ì™€ 애니메ì´ì…˜ì„ 분리해서 가져오기"
+msgstr "오브ì íŠ¸ì™€ 애니메ì´ì…˜ì„ 분리해서 가져오기"
#: editor/import/resource_importer_scene.cpp
msgid "Import with Separate Materials+Animations"
@@ -4278,7 +4281,7 @@ msgstr "머티리얼과 애니메ì´ì…˜ì„ 분리해서 가져오기"
#: editor/import/resource_importer_scene.cpp
msgid "Import with Separate Objects+Materials+Animations"
-msgstr "ê°ì²´, 머티리얼, 애니메ì´ì…˜ì„ 분리해서 가져오기"
+msgstr "오브ì íЏ, 머티리얼, 애니메ì´ì…˜ì„ 분리해서 가져오기"
#: editor/import/resource_importer_scene.cpp
msgid "Import as Multiple Scenes"
@@ -4323,7 +4326,7 @@ msgstr "후 가져오기 스í¬ë¦½íЏ 실행 중 오류:"
#: editor/import/resource_importer_scene.cpp
msgid "Did you return a Node-derived object in the `post_import()` method?"
-msgstr "`post_import()` 메소드ì—서 Nodeì—서 ìƒì†ë°›ì€ ê°ì²´ë¥¼ 반환했습니까?"
+msgstr "`post_import()` 메소드ì—서 Nodeì—서 ìƒì†ë°›ì€ 오브ì íŠ¸ë¥¼ 반환했습니까?"
#: editor/import/resource_importer_scene.cpp
msgid "Saving..."
@@ -4339,7 +4342,7 @@ msgstr "ìž„í¬í„°:"
#: editor/import_defaults_editor.cpp
msgid "Reset to Defaults"
-msgstr "기본값으로 재설정"
+msgstr "ë””í´íŠ¸ë¡œ 재설정"
#: editor/import_dock.cpp
msgid "Keep File (No Import)"
@@ -4351,11 +4354,11 @@ msgstr "íŒŒì¼ %dê°œ"
#: editor/import_dock.cpp
msgid "Set as Default for '%s'"
-msgstr "'%s'ì„(를) 기본으로 설정"
+msgstr "'%s'ì„(를) ë””í´íŠ¸ìœ¼ë¡œ 설정"
#: editor/import_dock.cpp
msgid "Clear Default for '%s'"
-msgstr "'%s'ì„(를) 기본ì—서 지우기"
+msgstr "'%s'ì„(를) ë””í´íЏì—서 지우기"
#: editor/import_dock.cpp
msgid "Import As:"
@@ -4375,7 +4378,7 @@ msgstr "씬 저장, 다시 가져오기 ë° ë‹¤ì‹œ 시작"
#: editor/import_dock.cpp
msgid "Changing the type of an imported file requires editor restart."
-msgstr "가져온 파ì¼ì˜ ìœ í˜•ì„ ë°”ê¾¸ë ¤ë©´ 편집기를 다시 켜아 합니다."
+msgstr "가져온 파ì¼ì˜ ìœ í˜•ì„ ë°”ê¾¸ë ¤ë©´ ì—디터를 다시 시작해야 합니다."
#: editor/import_dock.cpp
msgid ""
@@ -4389,14 +4392,12 @@ msgid "Failed to load resource."
msgstr "리소스 ë¶ˆëŸ¬ì˜¤ê¸°ì— ì‹¤íŒ¨í–ˆìŠµë‹ˆë‹¤."
#: editor/inspector_dock.cpp
-#, fuzzy
msgid "Copy Properties"
-msgstr "ì†ì„±"
+msgstr "ì†ì„± 복사"
#: editor/inspector_dock.cpp
-#, fuzzy
msgid "Paste Properties"
-msgstr "ì†ì„±"
+msgstr "ì†ì„± 붙여넣기"
#: editor/inspector_dock.cpp
msgid "Make Sub-Resources Unique"
@@ -4425,47 +4426,44 @@ msgid "Extra resource options."
msgstr "별ë„ì˜ ë¦¬ì†ŒìŠ¤ 옵션."
#: editor/inspector_dock.cpp
-#, fuzzy
msgid "Edit Resource from Clipboard"
-msgstr "리소스 í´ë¦½ë³´ë“œ 편집"
+msgstr "í´ë¦½ë³´ë“œì—서 리소스 편집"
#: editor/inspector_dock.cpp
msgid "Copy Resource"
msgstr "리소스 복사"
#: editor/inspector_dock.cpp
-#, fuzzy
msgid "Make Resource Built-In"
-msgstr "내장으로 만들기"
+msgstr "리소스를 내장으로 만들기"
#: editor/inspector_dock.cpp
msgid "Go to the previous edited object in history."
-msgstr "기ë¡ìƒ ì´ì „ì— íŽ¸ì§‘í–ˆë˜ ê°ì²´ë¡œ ì´ë™í•©ë‹ˆë‹¤."
+msgstr "기ë¡ìƒ ì´ì „ì— íŽ¸ì§‘í–ˆë˜ ì˜¤ë¸Œì íŠ¸ë¡œ ì´ë™í•©ë‹ˆë‹¤."
#: editor/inspector_dock.cpp
msgid "Go to the next edited object in history."
-msgstr "기ë¡ìƒ 다ìŒì— íŽ¸ì§‘í–ˆë˜ ê°ì²´ë¡œ ì´ë™í•©ë‹ˆë‹¤."
+msgstr "기ë¡ìƒ 다ìŒì— íŽ¸ì§‘í–ˆë˜ ì˜¤ë¸Œì íŠ¸ë¡œ ì´ë™í•©ë‹ˆë‹¤."
#: editor/inspector_dock.cpp
msgid "History of recently edited objects."
-msgstr "ìµœê·¼ì— íŽ¸ì§‘í•œ ê°ì²´ 기ë¡ìž…니다."
+msgstr "ìµœê·¼ì— íŽ¸ì§‘í•œ 오브ì íЏ 기ë¡ìž…니다."
#: editor/inspector_dock.cpp
msgid "Open documentation for this object."
-msgstr "ì´ ê°ì²´ë¥¼ 위한 설명문서를 엽니다."
+msgstr "ì´ ì˜¤ë¸Œì íŠ¸ë¥¼ 위한 문서를 엽니다."
#: editor/inspector_dock.cpp editor/scene_tree_dock.cpp
msgid "Open Documentation"
-msgstr "설명문서 열기"
+msgstr "문서 열기"
#: editor/inspector_dock.cpp
msgid "Filter properties"
msgstr "í•„í„° ì†ì„±"
#: editor/inspector_dock.cpp
-#, fuzzy
msgid "Manage object properties."
-msgstr "ê°ì²´ ì†ì„±."
+msgstr "오브ì íЏ ì†ì„±ì„ 관리합니다."
#: editor/inspector_dock.cpp
msgid "Changes may be lost!"
@@ -4477,7 +4475,7 @@ msgstr "다중 노드 설정"
#: editor/node_dock.cpp
msgid "Select a single node to edit its signals and groups."
-msgstr "시그ë„ê³¼ ê·¸ë£¹ì„ íŽ¸ì§‘í•  노드 하나를 ì„ íƒí•˜ì„¸ìš”."
+msgstr "시그ë„ê³¼ ê·¸ë£¹ì„ íŽ¸ì§‘í•  ë‹¨ì¼ ë…¸ë“œë¥¼ ì„ íƒí•˜ì„¸ìš”."
#: editor/plugin_config_dialog.cpp
msgid "Edit a Plugin"
@@ -4552,11 +4550,11 @@ msgstr "ì  ì‚½ìž…"
#: editor/plugins/abstract_polygon_2d_editor.cpp
msgid "Edit Polygon (Remove Point)"
-msgstr "í´ë¦¬ê³¤ 편집 (ì  ì‚­ì œ)"
+msgstr "í´ë¦¬ê³¤ 편집 (ì  ì œê±°)"
#: editor/plugins/abstract_polygon_2d_editor.cpp
msgid "Remove Polygon And Point"
-msgstr "í´ë¦¬ê³¤ê³¼ ì  ì‚­ì œ"
+msgstr "í´ë¦¬ê³¤ê³¼ ì  ì œê±°"
#: editor/plugins/animation_blend_space_1d_editor.cpp
#: editor/plugins/animation_blend_space_2d_editor.cpp
@@ -4604,7 +4602,7 @@ msgstr "애니메ì´ì…˜ ì  ì¶”ê°€"
#: editor/plugins/animation_blend_space_1d_editor.cpp
msgid "Remove BlendSpace1D Point"
-msgstr "BlendSpace1D ì  ì‚­ì œ"
+msgstr "BlendSpace1D ì  ì œê±°"
#: editor/plugins/animation_blend_space_1d_editor.cpp
msgid "Move BlendSpace1D Node Point"
@@ -4618,8 +4616,9 @@ msgid ""
"AnimationTree is inactive.\n"
"Activate to enable playback, check node warnings if activation fails."
msgstr ""
-"AnimationTree가 꺼져 있습니다.\n"
-"재ìƒí•˜ë ¤ë©´ AnimationTree를 켜고, ì‹¤í–‰ì— ì‹¤íŒ¨í•˜ë©´ 노드 경고를 확ì¸í•˜ì„¸ìš”."
+"AnimationTreeê°€ 비활성 ìƒíƒœìž…니다.\n"
+"재ìƒì„ 활성화하려면 AnimationTree를 활성화하고, í™œì„±í™”ì— ì‹¤íŒ¨í•˜ë©´ 노드 경고"
+"를 확ì¸í•˜ì„¸ìš”."
#: editor/plugins/animation_blend_space_1d_editor.cpp
#: editor/plugins/animation_blend_space_2d_editor.cpp
@@ -4634,7 +4633,7 @@ msgstr "ì ì„ ì„ íƒí•˜ê³  ì´ë™í•©ë‹ˆë‹¤. ìš°í´ë¦­ìœ¼ë¡œ ì ì„ 만드세요
#: editor/plugins/animation_blend_space_1d_editor.cpp
#: editor/plugins/animation_blend_space_2d_editor.cpp scene/gui/graph_edit.cpp
msgid "Enable snap and show grid."
-msgstr "ìŠ¤ëƒ…ì„ ì¼œê³  격ìžë¥¼ ë³´ì´ê²Œ 합니다."
+msgstr "ìŠ¤ëƒ…ì„ í™œì„±í™”í•˜ê³  격ìžë¥¼ ë³´ì´ê²Œ 합니다."
#: editor/plugins/animation_blend_space_1d_editor.cpp
#: editor/plugins/animation_blend_space_2d_editor.cpp
@@ -4645,7 +4644,7 @@ msgstr "ì "
#: editor/plugins/animation_blend_space_2d_editor.cpp
#: editor/plugins/animation_blend_tree_editor_plugin.cpp
msgid "Open Editor"
-msgstr "편집기 열기"
+msgstr "ì—디터 열기"
#: editor/plugins/animation_blend_space_1d_editor.cpp
#: editor/plugins/animation_blend_space_2d_editor.cpp
@@ -4672,11 +4671,11 @@ msgstr "BlendSpace2D ë¼ë²¨ 바꾸기"
#: editor/plugins/animation_blend_space_2d_editor.cpp
msgid "Remove BlendSpace2D Point"
-msgstr "BlendSpace2D ì  ì‚­ì œ"
+msgstr "BlendSpace2D ì  ì œê±°"
#: editor/plugins/animation_blend_space_2d_editor.cpp
msgid "Remove BlendSpace2D Triangle"
-msgstr "BlendSpace2D 삼ê°í˜• ì‚­ì œ"
+msgstr "BlendSpace2D 삼ê°í˜• 제거"
#: editor/plugins/animation_blend_space_2d_editor.cpp
msgid "BlendSpace2D does not belong to an AnimationTree node."
@@ -4813,7 +4812,7 @@ msgstr "필터 트랙 편집:"
#: editor/plugins/animation_blend_tree_editor_plugin.cpp
msgid "Enable Filtering"
-msgstr "필터 켜기"
+msgstr "필터 활성화"
#: editor/plugins/animation_player_editor_plugin.cpp
msgid "Toggle Autoplay"
@@ -4839,7 +4838,7 @@ msgstr "애니메ì´ì…˜ì„ 삭제할까요?"
#: editor/plugins/animation_player_editor_plugin.cpp
#: editor/plugins/sprite_frames_editor_plugin.cpp
msgid "Remove Animation"
-msgstr "애니메ì´ì…˜ ì‚­ì œ"
+msgstr "애니메ì´ì…˜ 제거"
#: editor/plugins/animation_player_editor_plugin.cpp
msgid "Invalid animation name!"
@@ -4916,7 +4915,7 @@ msgstr "애니메ì´ì…˜ 위치 (ì´ˆ)."
#: editor/plugins/animation_player_editor_plugin.cpp
msgid "Scale animation playback globally for the node."
-msgstr "ë…¸ë“œì˜ ì• ë‹ˆë©”ì´ì…˜ ìž¬ìƒ ê¸¸ì´ë¥¼ ì „ì²´ì ìœ¼ë¡œ 조절합니다."
+msgstr "ë…¸ë“œì˜ ì• ë‹ˆë©”ì´ì…˜ ìž¬ìƒ ìŠ¤ì¼€ì¼ë¥¼ ì „ì²´ì ìœ¼ë¡œ 조절합니다."
#: editor/plugins/animation_player_editor_plugin.cpp
msgid "Animation Tools"
@@ -4949,7 +4948,7 @@ msgstr "불러올 시 ìžë™ìœ¼ë¡œ 재ìƒ"
#: editor/plugins/animation_player_editor_plugin.cpp
msgid "Enable Onion Skinning"
-msgstr "어니언 ìŠ¤í‚¤ë‹ ì¼œê¸°"
+msgstr "어니언 ìŠ¤í‚¤ë‹ í™œì„±í™”"
#: editor/plugins/animation_player_editor_plugin.cpp
msgid "Onion Skinning Options"
@@ -5073,11 +5072,11 @@ msgstr "ì´ ê²½ë¡œì— ì„¤ì •í•œ ìž¬ìƒ ë¦¬ì†ŒìŠ¤ê°€ ì—†ìŒ: %s."
#: editor/plugins/animation_state_machine_editor.cpp
msgid "Node Removed"
-msgstr "노드 ì‚­ì œë¨"
+msgstr "노드 제거ë¨"
#: editor/plugins/animation_state_machine_editor.cpp
msgid "Transition Removed"
-msgstr "전환 ì‚­ì œë¨"
+msgstr "전환 제거ë¨"
#: editor/plugins/animation_state_machine_editor.cpp
msgid "Set Start Node (Autoplay)"
@@ -5103,7 +5102,7 @@ msgstr "노드를 연결합니다."
#: editor/plugins/animation_state_machine_editor.cpp
msgid "Remove selected node or transition."
-msgstr "ì„ íƒí•œ 노드나 ì „í™˜ì„ ì‚­ì œí•©ë‹ˆë‹¤."
+msgstr "ì„ íƒí•œ 노드나 ì „í™˜ì„ ì œê±°í•©ë‹ˆë‹¤."
#: editor/plugins/animation_state_machine_editor.cpp
msgid "Toggle autoplay this animation on start, restart or seek to zero."
@@ -5134,7 +5133,7 @@ msgstr "새 ì´ë¦„:"
#: editor/plugins/animation_tree_player_editor_plugin.cpp
#: editor/plugins/multimesh_editor_plugin.cpp
msgid "Scale:"
-msgstr "í¬ê¸°:"
+msgstr "스케ì¼:"
#: editor/plugins/animation_tree_player_editor_plugin.cpp
msgid "Fade In (s):"
@@ -5241,7 +5240,7 @@ msgstr "혼합4 노드"
#: editor/plugins/animation_tree_player_editor_plugin.cpp
msgid "TimeScale Node"
-msgstr "시간 í¬ê¸° ì¡°ì ˆ 노드"
+msgstr "시간 ìŠ¤ì¼€ì¼ ë…¸ë“œ"
#: editor/plugins/animation_tree_player_editor_plugin.cpp
msgid "TimeSeek Node"
@@ -5265,7 +5264,7 @@ msgstr "í•„í„°..."
#: editor/plugins/asset_library_editor_plugin.cpp
msgid "Contents:"
-msgstr "ë‚´ìš©:"
+msgstr "콘í…츠:"
#: editor/plugins/asset_library_editor_plugin.cpp
msgid "View Files"
@@ -5437,11 +5436,11 @@ msgstr "모ë‘"
#: editor/plugins/asset_library_editor_plugin.cpp
msgid "Search templates, projects, and demos"
-msgstr ""
+msgstr "검색 템플릿, 프로ì íЏ, ë° ë°ëª¨"
#: editor/plugins/asset_library_editor_plugin.cpp
msgid "Search assets (excluding templates, projects, and demos)"
-msgstr ""
+msgstr "ì• ì…‹ 검색 (템플릿, 프로ì íЏ, ë° ë°ëª¨ 제외)"
#: editor/plugins/asset_library_editor_plugin.cpp
msgid "Import..."
@@ -5473,7 +5472,7 @@ msgstr "ê³µì‹"
#: editor/plugins/asset_library_editor_plugin.cpp
msgid "Testing"
-msgstr "시험"
+msgstr "테스트"
#: editor/plugins/asset_library_editor_plugin.cpp
msgid "Loading..."
@@ -5485,7 +5484,7 @@ msgstr "ì• ì…‹ ZIP 파ì¼"
#: editor/plugins/audio_stream_editor_plugin.cpp
msgid "Audio Preview Play/Pause"
-msgstr ""
+msgstr "오디오 미리 보기 재ìƒ/ì¼ì‹œ ì •ì§€"
#: editor/plugins/baked_lightmap_editor_plugin.cpp
msgid ""
@@ -5496,13 +5495,12 @@ msgstr ""
"ë‹¹ì‹ ì˜ ì”¬ì„ ì €ìž¥í•˜ê³  다시 시ë„하세요."
#: editor/plugins/baked_lightmap_editor_plugin.cpp
-#, fuzzy
msgid ""
"No meshes to bake. Make sure they contain an UV2 channel and that the 'Use "
"In Baked Light' and 'Generate Lightmap' flags are on."
msgstr ""
-"ë¼ì´íŠ¸ë§µì„ êµ¬ìš¸ 메시가 없습니다. 메시가 UV2 채ë„ì„ ê°–ê³  있고 'Bake Light' 플"
-"래그가 켜져 있는지 확ì¸í•´ì£¼ì„¸ìš”."
+"구울 메시가 없습니다. UV2 채ë„ì„ í¬í•¨í•˜ê³  있고 'Use In Baked Light' ë° "
+"'Generate Lightmap' 플래그가 켜져 있는지 확ì¸í•´ì£¼ì„¸ìš”."
#: editor/plugins/baked_lightmap_editor_plugin.cpp
msgid "Failed creating lightmap images, make sure path is writable."
@@ -5525,7 +5523,7 @@ msgstr ""
msgid ""
"Godot editor was built without ray tracing support, lightmaps can't be baked."
msgstr ""
-"Godot 편집기는 ë ˆì´ íŠ¸ë ˆì´ì‹± ì§€ì› ì—†ì´ ë¹Œë“œë˜ì—ˆìœ¼ë©° ë¼ì´íŠ¸ë§µì€ êµ¬ìš¸ 수 없습니"
+"Godot ì—디터는 ë ˆì´ íŠ¸ë ˆì´ì‹± ì§€ì› ì—†ì´ ë¹Œë“œë˜ì—ˆìœ¼ë©° ë¼ì´íŠ¸ë§µì€ êµ¬ìš¸ 수 없습니"
"다."
#: editor/plugins/baked_lightmap_editor_plugin.cpp
@@ -5571,7 +5569,7 @@ msgstr "회전 단계:"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Scale Step:"
-msgstr "í¬ê¸° ì¡°ì ˆ 단계:"
+msgstr "ìŠ¤ì¼€ì¼ ë‹¨ê³„:"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Move Vertical Guide"
@@ -5583,7 +5581,7 @@ msgstr "ìˆ˜ì§ ê°€ì´ë“œ 만들기"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Remove Vertical Guide"
-msgstr "ìˆ˜ì§ ê°€ì´ë“œ ì‚­ì œ"
+msgstr "ìˆ˜ì§ ê°€ì´ë“œ 제거"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Move Horizontal Guide"
@@ -5595,7 +5593,7 @@ msgstr "ìˆ˜í‰ ê°€ì´ë“œ 만들기"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Remove Horizontal Guide"
-msgstr "ìˆ˜í‰ ê°€ì´ë“œ ì‚­ì œ"
+msgstr "ìˆ˜í‰ ê°€ì´ë“œ 제거"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Create Horizontal and Vertical Guides"
@@ -5619,7 +5617,7 @@ msgstr "CanvasItem \"%s\" 앵커 ì´ë™"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Scale Node2D \"%s\" to (%s, %s)"
-msgstr "Node2D \"%s\"를 (%s, %s)로 í¬ê¸° ì¡°ì ˆ"
+msgstr "Node2D \"%s\"를 (%s, %s)로 ìŠ¤ì¼€ì¼ ì¡°ì ˆ"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Resize Control \"%s\" to (%d, %d)"
@@ -5627,11 +5625,11 @@ msgstr "컨트롤 \"%s\"를 (%d, %d)로 í¬ê¸° ì¡°ì ˆ"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Scale %d CanvasItems"
-msgstr "CanvasItem %dê°œ í¬ê¸° ì¡°ì ˆ"
+msgstr "CanvasItem %dê°œ ìŠ¤ì¼€ì¼ ì¡°ì ˆ"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Scale CanvasItem \"%s\" to (%s, %s)"
-msgstr "CanvasItem \"%s\"를 (%s, %s)로 í¬ê¸° ì¡°ì ˆ"
+msgstr "CanvasItem \"%s\"를 (%s, %s)로 ìŠ¤ì¼€ì¼ ì¡°ì ˆ"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Move %d CanvasItems"
@@ -5642,10 +5640,22 @@ msgid "Move CanvasItem \"%s\" to (%d, %d)"
msgstr "CanvasItem \"%s\"를 (%d, %d)로 ì´ë™"
#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Locked"
+msgstr "ì„ íƒ í•­ëª© 잠그기"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Grouped"
+msgstr "그룹"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
msgid ""
"Children of containers have their anchors and margins values overridden by "
"their parent."
-msgstr "컨테ì´ë„ˆì˜ ìžì‹ì€ 부모로 ì¸í•´ 재정ì˜ëœ 앵커와 여백 ê°’ì„ ê°€ì§‘ë‹ˆë‹¤."
+msgstr "컨테ì´ë„ˆì˜ ìžì†ì€ 부모로 ì¸í•´ 재정ì˜ëœ 앵커와 여백 ê°’ì„ ê°€ì§‘ë‹ˆë‹¤."
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Presets for the anchors and margins values of a Control node."
@@ -5739,13 +5749,12 @@ msgstr "앵커 바꾸기"
#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp
-#, fuzzy
msgid ""
"Project Camera Override\n"
"Overrides the running project's camera with the editor viewport camera."
msgstr ""
-"게임 ì¹´ë©”ë¼ ë‹¤ì‹œ ì •ì˜\n"
-"편집기 ë·°í¬íЏ ì¹´ë©”ë¼ë¡œ 게임 ì¹´ë©”ë¼ë¥¼ 다시 ì •ì˜í•©ë‹ˆë‹¤."
+"프로ì íЏ ì¹´ë©”ë¼ ìž¬ì •ì˜\n"
+"실행 ì¤‘ì¸ í”„ë¡œì íŠ¸ì˜ ì¹´ë©”ë¼ë¥¼ ì—디터 ë·°í¬íЏ ì¹´ë©”ë¼ë¡œ 재정ì˜í•©ë‹ˆë‹¤."
#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp
@@ -5754,6 +5763,9 @@ msgid ""
"No project instance running. Run the project from the editor to use this "
"feature."
msgstr ""
+"프로ì íЏ ì¹´ë©”ë¼ ìž¬ì •ì˜\n"
+"실행 ì¤‘ì¸ í”„ë¡œì íЏ ì¸ìŠ¤í„´ìŠ¤ê°€ 없습니다. ì´ ê¸°ëŠ¥ì„ ì‚¬ìš©í•˜ë ¤ë©´ ì—디터ì—서 프로"
+"ì íŠ¸ë¥¼ 실행하세요."
#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp
@@ -5803,14 +5815,14 @@ msgstr "IK ì²´ì¸ ì§€ìš°ê¸°"
msgid ""
"Warning: Children of a container get their position and size determined only "
"by their parent."
-msgstr "경고: 컨테ì´ë„ˆì˜ ìžì‹ 규모와 위치는 ë¶€ëª¨ì— ì˜í•´ ê²°ì •ë©ë‹ˆë‹¤."
+msgstr "경고: 컨테ì´ë„ˆì˜ ìžì† 위치와 í¬ê¸°ëŠ” ë¶€ëª¨ì— ì˜í•´ ê²°ì •ë©ë‹ˆë‹¤."
#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/sprite_frames_editor_plugin.cpp
#: editor/plugins/texture_region_editor_plugin.cpp
#: editor/plugins/tile_set_editor_plugin.cpp scene/gui/graph_edit.cpp
msgid "Zoom Reset"
-msgstr "줌 초기화"
+msgstr "줌 재설정"
#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp
@@ -5838,7 +5850,7 @@ msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "RMB: Add node at position clicked."
-msgstr ""
+msgstr "ìš°í´ë¦­: í´ë¦­í•œ ìœ„ì¹˜ì— ë…¸ë“œë¥¼ 추가합니다."
#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp
@@ -5853,7 +5865,7 @@ msgstr "회전 모드"
#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp
msgid "Scale Mode"
-msgstr "í¬ê¸° ì¡°ì ˆ 모드"
+msgstr "ìŠ¤ì¼€ì¼ ëª¨ë“œ"
#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp
@@ -5861,12 +5873,12 @@ msgid ""
"Show a list of all objects at the position clicked\n"
"(same as Alt+RMB in select mode)."
msgstr ""
-"í´ë¦­í•œ ìœ„ì¹˜ì— ìžˆëŠ” 모든 ê°ì²´ 목ë¡ì„ 보여줘요\n"
+"í´ë¦­í•œ ìœ„ì¹˜ì— ìžˆëŠ” 모든 오브ì íЏ 목ë¡ì„ ë³´ì—¬ì¤ë‹ˆë‹¤\n"
"(ì„ íƒ ëª¨ë“œì—서 Alt+ìš°í´ë¦­ê³¼ ê°™ìŒ)."
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Click to change object's rotation pivot."
-msgstr "í´ë¦­ìœ¼ë¡œ ê°ì²´ì˜ 회전 í”¼ë²—ì„ ë°”ê¿‰ë‹ˆë‹¤."
+msgstr "í´ë¦­ìœ¼ë¡œ 오브ì íŠ¸ì˜ íšŒì „ í”¼ë²—ì„ ë°”ê¿‰ë‹ˆë‹¤."
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Pan Mode"
@@ -5902,7 +5914,7 @@ msgstr "회전 스냅 사용"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Use Scale Snap"
-msgstr "í¬ê¸° ì¡°ì ˆ 스냅 사용"
+msgstr "ìŠ¤ì¼€ì¼ ìŠ¤ëƒ… 사용"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Snap Relative"
@@ -5948,22 +5960,22 @@ msgstr "ê°€ì´ë“œì— 스냅"
#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp
msgid "Lock the selected object in place (can't be moved)."
-msgstr "ì„ íƒí•œ ê°ì²´ë¥¼ ê·¸ ìžë¦¬ì— 잠가요 (움ì§ì¼ 수 없습니다)."
+msgstr "ì„ íƒëœ 오브ì íŠ¸ë¥¼ ê·¸ ìžë¦¬ì— 잠급니다 (움ì§ì¼ 수 없습니다)."
#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp
msgid "Unlock the selected object (can be moved)."
-msgstr "ì„ íƒí•œ ê°ì²´ë¥¼ 잠금ì—서 í’€ (움ì§ì¼ 수 있습니다)."
+msgstr "ì„ íƒëœ 오브ì íŠ¸ë¥¼ 잠금ì—서 풉니다 (움ì§ì¼ 수 있습니다)."
#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp
msgid "Makes sure the object's children are not selectable."
-msgstr "ê°ì²´ì˜ ìžì‹ì„ ì„ íƒí•˜ì§€ 않ë„ë¡ í•©ë‹ˆë‹¤."
+msgstr "오브ì íŠ¸ì˜ ìžì†ì„ ì„ íƒí•˜ì§€ 않ë„ë¡ í•©ë‹ˆë‹¤."
#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp
msgid "Restores the object's children's ability to be selected."
-msgstr "ê°ì²´ì˜ ìžì‹ì„ ì„ íƒí•  수 있ë„ë¡ í•©ë‹ˆë‹¤."
+msgstr "오브ì íŠ¸ì˜ ìžì†ì„ ì„ íƒí•  수 있ë„ë¡ ë³µì›í•©ë‹ˆë‹¤."
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Skeleton Options"
@@ -6024,7 +6036,7 @@ msgstr "프레임 ì„ íƒ"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Preview Canvas Scale"
-msgstr "캔버스 í¬ê¸° ì¡°ì ˆ 미리 보기"
+msgstr "캔버스 ìŠ¤ì¼€ì¼ ë¯¸ë¦¬ 보기"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Translation mask for inserting keys."
@@ -6036,7 +6048,7 @@ msgstr "키를 삽입하기 위한 회전 마스í¬."
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Scale mask for inserting keys."
-msgstr "키를 삽입하기 위한 í¬ê¸° ì¡°ì ˆ 마스í¬."
+msgstr "키를 삽입하기 위한 ìŠ¤ì¼€ì¼ ë§ˆìŠ¤í¬."
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Insert keys (based on mask)."
@@ -6049,8 +6061,8 @@ msgid ""
"Keys are only added to existing tracks, no new tracks will be created.\n"
"Keys must be inserted manually for the first time."
msgstr ""
-"ê°ì²´ë¥¼ 전환, 회전 ë˜ëŠ” í¬ê¸° 조절할 때마다 ìžë™ìœ¼ë¡œ 키를 삽입합니다 (ë§ˆìŠ¤í¬ ê¸°"
-"준).\n"
+"오브ì íŠ¸ë¥¼ 전환, 회전 ë˜ëŠ” 스케ì¼ì„ 조절할 때마다 ìžë™ìœ¼ë¡œ 키를 삽입합니다 "
+"(ë§ˆìŠ¤í¬ ê¸°ì¤€).\n"
"키는 기존 트랙ì—ë§Œ 추가ë˜ê³ , 새 íŠ¸ëž™ì„ ì¶”ê°€í•˜ì§„ 않습니다.\n"
"처ìŒì—는 수ë™ìœ¼ë¡œ 키를 삽입해야 합니다."
@@ -6075,14 +6087,12 @@ msgid "Clear Pose"
msgstr "í¬ì¦ˆ 지우기"
#: editor/plugins/canvas_item_editor_plugin.cpp
-#, fuzzy
msgid "Add Node Here"
-msgstr "노드 추가"
+msgstr "ì—¬ê¸°ì— ë…¸ë“œ 추가"
#: editor/plugins/canvas_item_editor_plugin.cpp
-#, fuzzy
msgid "Instance Scene Here"
-msgstr "씬 ì¸ìŠ¤í„´ìŠ¤í™”"
+msgstr "ì—¬ê¸°ì— ì”¬ ì¸ìŠ¤í„´ìŠ¤í™”"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Multiply grid step by 2"
@@ -6098,49 +6108,43 @@ msgstr "팬 보기"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Zoom to 3.125%"
-msgstr ""
+msgstr "3.125%로 줌"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Zoom to 6.25%"
-msgstr ""
+msgstr "6.25%로 줌"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Zoom to 12.5%"
-msgstr ""
+msgstr "12.5%로 줌"
#: editor/plugins/canvas_item_editor_plugin.cpp
-#, fuzzy
msgid "Zoom to 25%"
-msgstr "줌 아웃"
+msgstr "25%로 줌"
#: editor/plugins/canvas_item_editor_plugin.cpp
-#, fuzzy
msgid "Zoom to 50%"
-msgstr "줌 아웃"
+msgstr "50%로 줌"
#: editor/plugins/canvas_item_editor_plugin.cpp
-#, fuzzy
msgid "Zoom to 100%"
-msgstr "줌 아웃"
+msgstr "100%로 줌"
#: editor/plugins/canvas_item_editor_plugin.cpp
-#, fuzzy
msgid "Zoom to 200%"
-msgstr "줌 아웃"
+msgstr "200%로 줌"
#: editor/plugins/canvas_item_editor_plugin.cpp
-#, fuzzy
msgid "Zoom to 400%"
-msgstr "줌 아웃"
+msgstr "400%로 줌"
#: editor/plugins/canvas_item_editor_plugin.cpp
-#, fuzzy
msgid "Zoom to 800%"
-msgstr "줌 아웃"
+msgstr "800%로 줌"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Zoom to 1600%"
-msgstr ""
+msgstr "1600%로 줌"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Add %s"
@@ -6166,14 +6170,14 @@ msgstr "'%s'ì—서 씬 ì¸ìŠ¤í„´ìŠ¤ 중 오류"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Change Default Type"
-msgstr "기본 유형 바꾸기"
+msgstr "ë””í´íЏ 유형 바꾸기"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid ""
"Drag & drop + Shift : Add node as sibling\n"
"Drag & drop + Alt : Change node type"
msgstr ""
-"드래그 & 드롭 + Shift : 형제 노드로 추가\n"
+"드래그 & 드롭 + Shift : ë™ê¸° 노드로 추가\n"
"드래그 & 드롭 + Alt : 노드 유형 바꾸기"
#: editor/plugins/collision_polygon_editor_plugin.cpp
@@ -6186,7 +6190,7 @@ msgstr "í´ë¦¬ê³¤ 편집"
#: editor/plugins/collision_polygon_editor_plugin.cpp
msgid "Edit Poly (Remove Point)"
-msgstr "í´ë¦¬ê³¤ 편집 (ì  ì‚­ì œ)"
+msgstr "í´ë¦¬ê³¤ 편집 (ì  ì œê±°)"
#: editor/plugins/collision_shape_2d_editor_plugin.cpp
msgid "Set Handle"
@@ -6252,7 +6256,7 @@ msgstr "ë°©ì¶œ 색ìƒ"
#: editor/plugins/cpu_particles_editor_plugin.cpp
msgid "CPUParticles"
-msgstr "CPU파티í´"
+msgstr "CPUParticles"
#: editor/plugins/cpu_particles_editor_plugin.cpp
#: editor/plugins/particles_editor_plugin.cpp
@@ -6302,7 +6306,7 @@ msgstr "ì  ì¶”ê°€"
#: editor/plugins/curve_editor_plugin.cpp
msgid "Remove Point"
-msgstr "ì  ì‚­ì œ"
+msgstr "ì  ì œê±°"
#: editor/plugins/curve_editor_plugin.cpp
msgid "Left Linear"
@@ -6318,7 +6322,7 @@ msgstr "프리셋 불러오기"
#: editor/plugins/curve_editor_plugin.cpp
msgid "Remove Curve Point"
-msgstr "곡선 ì  ì‚­ì œ"
+msgstr "곡선 ì  ì œê±°"
#: editor/plugins/curve_editor_plugin.cpp
msgid "Toggle Curve Linear Tangent"
@@ -6350,7 +6354,7 @@ msgstr "항목"
#: editor/plugins/item_list_editor_plugin.cpp
msgid "Item List Editor"
-msgstr "항목 ëª©ë¡ íŽ¸ì§‘ê¸°"
+msgstr "항목 ëª©ë¡ ì—디터"
#: editor/plugins/light_occluder_2d_editor_plugin.cpp
msgid "Create Occluder Polygon"
@@ -6362,7 +6366,7 @@ msgstr "메시가 없습니다!"
#: editor/plugins/mesh_instance_editor_plugin.cpp
msgid "Couldn't create a Trimesh collision shape."
-msgstr "Trimesh ì¶©ëŒ ëª¨ì–‘ì„ ë§Œë“¤ 수 없습니다."
+msgstr "Trimesh 콜리전 ëª¨ì–‘ì„ ë§Œë“¤ 수 없습니다."
#: editor/plugins/mesh_instance_editor_plugin.cpp
msgid "Create Static Trimesh Body"
@@ -6378,32 +6382,31 @@ msgstr "Trimesh Static Shape 만들기"
#: editor/plugins/mesh_instance_editor_plugin.cpp
msgid "Can't create a single convex collision shape for the scene root."
-msgstr "씬 루트ì—서 ë‹¨ì¼ convex ì¶©ëŒ Shape를 만들 수 없습니다."
+msgstr "씬 루트ì—서 ë‹¨ì¼ ì»¨ë²¡ìŠ¤ 콜리전 ëª¨ì–‘ì„ ë§Œë“¤ 수 없습니다."
#: editor/plugins/mesh_instance_editor_plugin.cpp
msgid "Couldn't create a single convex collision shape."
-msgstr "ë‹¨ì¼ convex ì¶©ëŒ ëª¨ì–‘ì„ ë§Œë“¤ 수 없습니다."
+msgstr "ë‹¨ì¼ ì»¨ë²¡ìŠ¤ 콜리전 ëª¨ì–‘ì„ ë§Œë“¤ 수 없습니다."
#: editor/plugins/mesh_instance_editor_plugin.cpp
-#, fuzzy
msgid "Create Simplified Convex Shape"
-msgstr "개별 Convex 모양 만들기"
+msgstr "단순 컨벡스 모양 만들기"
#: editor/plugins/mesh_instance_editor_plugin.cpp
msgid "Create Single Convex Shape"
-msgstr "개별 Convex 모양 만들기"
+msgstr "ë‹¨ì¼ ì»¨ë²¡ìŠ¤ 모양 만들기"
#: editor/plugins/mesh_instance_editor_plugin.cpp
msgid "Can't create multiple convex collision shapes for the scene root."
-msgstr "씬 ë£¨íŠ¸ì— ë‹¤ì¤‘ convex ì¶©ëŒ ëª¨ì–‘ì„ ë§Œë“¤ 수 없습니다."
+msgstr "씬 ë£¨íŠ¸ì— ë‹¤ì¤‘ 컨벡스 콜리전 ëª¨ì–‘ì„ ë§Œë“¤ 수 없습니다."
#: editor/plugins/mesh_instance_editor_plugin.cpp
msgid "Couldn't create any collision shapes."
-msgstr "ì¶©ëŒ ëª¨ì–‘ì„ ë§Œë“¤ 수 없습니다."
+msgstr "콜리전 ëª¨ì–‘ì„ ë§Œë“¤ 수 없습니다."
#: editor/plugins/mesh_instance_editor_plugin.cpp
msgid "Create Multiple Convex Shapes"
-msgstr "다중 Convex Shape 만들기"
+msgstr "다중 컨벡스 모양 만들기"
#: editor/plugins/mesh_instance_editor_plugin.cpp
msgid "Create Navigation Mesh"
@@ -6431,7 +6434,7 @@ msgstr "MeshInstanceì— ë©”ì‹œê°€ 없습니다!"
#: editor/plugins/mesh_instance_editor_plugin.cpp
msgid "Mesh has not surface to create outlines from!"
-msgstr "ë©”ì‹œì— ìœ¤ê³½ì„ ë§Œë“¤ í‘œë©´ì´ ì—†ìŠµë‹ˆë‹¤!"
+msgstr "ë©”ì‹œì— ìœ¤ê³½ì„ ì„ ë§Œë“¤ í‘œë©´ì´ ì—†ìŠµë‹ˆë‹¤!"
#: editor/plugins/mesh_instance_editor_plugin.cpp
msgid "Mesh primitive type is not PRIMITIVE_TRIANGLES!"
@@ -6439,11 +6442,11 @@ msgstr "메시 기본 ìœ í˜•ì´ PRIMITIVE_TRIANGLESì´ ì•„ë‹™ë‹ˆë‹¤!"
#: editor/plugins/mesh_instance_editor_plugin.cpp
msgid "Could not create outline!"
-msgstr "ìœ¤ê³½ì„ ë§Œë“¤ 수 없습니다!"
+msgstr "ìœ¤ê³½ì„ ì„ ë§Œë“¤ 수 없습니다!"
#: editor/plugins/mesh_instance_editor_plugin.cpp
msgid "Create Outline"
-msgstr "윤곽 만들기"
+msgstr "윤곽선 만들기"
#: editor/plugins/mesh_instance_editor_plugin.cpp
msgid "Mesh"
@@ -6459,38 +6462,37 @@ msgid ""
"automatically.\n"
"This is the most accurate (but slowest) option for collision detection."
msgstr ""
-"StaticBody를 하나 만들고 ê±°ê¸°ì— í´ë¦¬ê³¤ 기반 ì¶©ëŒ ëª¨ì–‘ì„ í•˜ë‚˜ ìžë™ìœ¼ë¡œ 만들어 "
-"붙입니다.\n"
-"ì´ ë°©ë²•ì€ ê°€ìž¥ 정확한 (하지만 가장 ëŠë¦°) ì¶©ëŒ íƒì§€ 방법입니다."
+"StaticBody를 만들고 ê±°ê¸°ì— í´ë¦¬ê³¤ 기반 콜리전 ëª¨ì–‘ì„ ìžë™ìœ¼ë¡œ 만들어 붙입니"
+"다.\n"
+"ì´ ë°©ë²•ì€ ê°€ìž¥ 정확한 (하지만 가장 ëŠë¦°) 콜리전 íƒì§€ 방법입니다."
#: editor/plugins/mesh_instance_editor_plugin.cpp
msgid "Create Trimesh Collision Sibling"
-msgstr "Trimesh ì¶©ëŒ í˜•ì œ 만들기"
+msgstr "Trimesh 콜리전 ë™ê¸° 만들기"
#: editor/plugins/mesh_instance_editor_plugin.cpp
msgid ""
"Creates a polygon-based collision shape.\n"
"This is the most accurate (but slowest) option for collision detection."
msgstr ""
-"í´ë¦¬ê³¤ 기반 ì¶©ëŒ ëª¨ì–‘ì„ í•˜ë‚˜ 만듭니다.\n"
-"ì´ ë°©ë²•ì€ ê°€ìž¥ 정확한 (하지만 가장 ëŠë¦°) ì¶©ëŒ íƒì§€ 방법입니다."
+"í´ë¦¬ê³¤ 기반 콜리전 ëª¨ì–‘ì„ ë§Œë“­ë‹ˆë‹¤.\n"
+"ì´ ë°©ë²•ì€ ê°€ìž¥ 정확한 (하지만 가장 ëŠë¦°) 콜리전 íƒì§€ 방법입니다."
#: editor/plugins/mesh_instance_editor_plugin.cpp
msgid "Create Single Convex Collision Sibling"
-msgstr "ë‹¨ì¼ Convex ì¶©ëŒ í˜•ì œ 만들기"
+msgstr "ë‹¨ì¼ ì»¨ë²¡ìŠ¤ 콜리전 ë™ê¸° 만들기"
#: editor/plugins/mesh_instance_editor_plugin.cpp
msgid ""
"Creates a single convex collision shape.\n"
"This is the fastest (but least accurate) option for collision detection."
msgstr ""
-"convex ì¶©ëŒ ëª¨ì–‘ì„ í•˜ë‚˜ 만듭니다.\n"
-"ì´ ë°©ë²•ì€ ê°€ìž¥ 빠른 (하지만 ëœ ì •í™•í•œ) ì¶©ëŒ íƒì§€ 방법입니다."
+"ë‹¨ì¼ ì»¨ë²¡ìŠ¤ 콜리전 ëª¨ì–‘ì„ ë§Œë“­ë‹ˆë‹¤.\n"
+"ì´ ë°©ë²•ì€ ê°€ìž¥ 빠른 (하지만 ëœ ì •í™•í•œ) 콜리전 ê°ì§€ 옵션입니다."
#: editor/plugins/mesh_instance_editor_plugin.cpp
-#, fuzzy
msgid "Create Simplified Convex Collision Sibling"
-msgstr "ë‹¨ì¼ Convex ì¶©ëŒ í˜•ì œ 만들기"
+msgstr "단순 컨벡스 콜리전 ë™ê¸° 만들기"
#: editor/plugins/mesh_instance_editor_plugin.cpp
msgid ""
@@ -6498,24 +6500,27 @@ msgid ""
"This is similar to single collision shape, but can result in a simpler "
"geometry in some cases, at the cost of accuracy."
msgstr ""
+"단순 컨벡스 콜리전 ëª¨ì–‘ì„ ë§Œë“­ë‹ˆë‹¤.\n"
+"ë‹¨ì¼ ì½œë¦¬ì „ 모양과 비슷하지만, ê²½ìš°ì— ë”°ë¼ ì •í™•ë„를 í¬ìƒì‹œì¼œ 지오메트리가 ë” "
+"단순해지는 결과를 초래할 수 있습니다."
#: editor/plugins/mesh_instance_editor_plugin.cpp
msgid "Create Multiple Convex Collision Siblings"
-msgstr "다중 Convex ì¶©ëŒ í˜•ì œ 만들기"
+msgstr "다중 컨벡스 콜리전 ë™ê¸° 만들기"
#: editor/plugins/mesh_instance_editor_plugin.cpp
-#, fuzzy
msgid ""
"Creates a polygon-based collision shape.\n"
"This is a performance middle-ground between a single convex collision and a "
"polygon-based collision."
msgstr ""
-"í´ë¦¬ê³¤ 기반 ì¶©ëŒ ëª¨ì–‘ì„ í•˜ë‚˜ 만듭니다.\n"
-"ì´ ë°©ë²•ì€ ìœ„ ë‘ ê°€ì§€ ì˜µì…˜ì˜ ì¤‘ê°„ ì •ë„ ì„±ëŠ¥ìž…ë‹ˆë‹¤."
+"í´ë¦¬ê³¤ 기반 콜리전 ëª¨ì–‘ì„ ë§Œë“­ë‹ˆë‹¤.\n"
+"ì´ ë°©ë²•ì€ ë‹¨ì¼ ì»¨ë²¡ìŠ¤ 콜리전과 í´ë¦¬ê³¤ 기반 콜리전 사ì´ì˜ 중간 ì •ë„ ì„±ëŠ¥ìž…ë‹ˆ"
+"다."
#: editor/plugins/mesh_instance_editor_plugin.cpp
msgid "Create Outline Mesh..."
-msgstr "윤곽 메시 만들기..."
+msgstr "윤곽선 메시 만들기..."
#: editor/plugins/mesh_instance_editor_plugin.cpp
msgid ""
@@ -6524,7 +6529,8 @@ msgid ""
"This can be used instead of the SpatialMaterial Grow property when using "
"that property isn't possible."
msgstr ""
-"ì •ì  ì™¸ê³½ì„  메시를 만듭니다. 외곽선 ë©”ì‹œì˜ ë²•ì„  벡터는 ìžë™ìœ¼ë¡œ 반전ë©ë‹ˆë‹¤.\n"
+"스태틱 윤곽선 메시를 만듭니다. 윤곽선 ë©”ì‹œì˜ ë²•ì„  벡터는 ìžë™ìœ¼ë¡œ 반전ë©ë‹ˆ"
+"다.\n"
"SpatialMaterialì˜ Grow ì†ì„±ì„ 사용할 수 ì—†ì„ ë•Œ 대신 사용할 수 있습니다."
#: editor/plugins/mesh_instance_editor_plugin.cpp
@@ -6541,11 +6547,11 @@ msgstr "ë¼ì´íŠ¸ë§µ/AO를 위한 UV2 펼치기"
#: editor/plugins/mesh_instance_editor_plugin.cpp
msgid "Create Outline Mesh"
-msgstr "윤곽 메시 만들기"
+msgstr "윤곽선 메시 만들기"
#: editor/plugins/mesh_instance_editor_plugin.cpp
msgid "Outline Size:"
-msgstr "윤곽 í¬ê¸°:"
+msgstr "윤곽선 í¬ê¸°:"
#: editor/plugins/mesh_instance_editor_plugin.cpp
msgid "UV Channel Debug"
@@ -6553,7 +6559,7 @@ msgstr "UV ì±„ë„ ë””ë²„ê·¸"
#: editor/plugins/mesh_library_editor_plugin.cpp
msgid "Remove item %d?"
-msgstr "%dê°œì˜ í•­ëª©ì„ ì‚­ì œí• ê¹Œìš”?"
+msgstr "항목 %d개를 제거하시겠습니까?"
#: editor/plugins/mesh_library_editor_plugin.cpp
msgid ""
@@ -6573,10 +6579,16 @@ msgstr "항목 추가"
#: editor/plugins/mesh_library_editor_plugin.cpp
msgid "Remove Selected Item"
-msgstr "ì„ íƒí•œ 항목 ì‚­ì œ"
+msgstr "ì„ íƒí•œ 항목 제거"
+
+#: editor/plugins/mesh_library_editor_plugin.cpp
+#, fuzzy
+msgid "Import from Scene (Ignore Transforms)"
+msgstr "씬ì—서 가져오기"
#: editor/plugins/mesh_library_editor_plugin.cpp
-msgid "Import from Scene"
+#, fuzzy
+msgid "Import from Scene (Apply Transforms)"
msgstr "씬ì—서 가져오기"
#: editor/plugins/mesh_library_editor_plugin.cpp
@@ -6615,7 +6627,7 @@ msgstr "표면 소스가 잘못ë˜ì—ˆìŠµë‹ˆë‹¤ (ìž˜ëª»ëœ ê²½ë¡œ)."
#: editor/plugins/multimesh_editor_plugin.cpp
msgid "Surface source is invalid (no geometry)."
-msgstr "표면 소스가 잘못ë˜ì—ˆìŠµë‹ˆë‹¤ (형태 ì—†ìŒ)."
+msgstr "표면 소스가 잘못ë˜ì—ˆìŠµë‹ˆë‹¤ (지오메트리 ì—†ìŒ)."
#: editor/plugins/multimesh_editor_plugin.cpp
msgid "Surface source is invalid (no faces)."
@@ -6631,7 +6643,7 @@ msgstr "ëŒ€ìƒ í‘œë©´ì„ ì„ íƒí•˜ì„¸ìš”:"
#: editor/plugins/multimesh_editor_plugin.cpp
msgid "Populate Surface"
-msgstr "표면 만들기"
+msgstr "표면 채우기"
#: editor/plugins/multimesh_editor_plugin.cpp
msgid "Populate MultiMesh"
@@ -6671,7 +6683,7 @@ msgstr "무작위 기울기:"
#: editor/plugins/multimesh_editor_plugin.cpp
msgid "Random Scale:"
-msgstr "무작위 í¬ê¸°:"
+msgstr "무작위 스케ì¼:"
#: editor/plugins/multimesh_editor_plugin.cpp
msgid "Populate"
@@ -6685,7 +6697,7 @@ msgstr "내비게ì´ì…˜ í´ë¦¬ê³¤ 만들기"
#: editor/plugins/particles_2d_editor_plugin.cpp
#: editor/plugins/particles_editor_plugin.cpp
msgid "Convert to CPUParticles"
-msgstr "CPU파티í´ë¡œ 변환"
+msgstr "CPUParticles로 변환"
#: editor/plugins/particles_2d_editor_plugin.cpp
msgid "Generating Visibility Rect"
@@ -6710,11 +6722,11 @@ msgstr "ìƒì„± 시간 (ì´ˆ):"
#: editor/plugins/particles_editor_plugin.cpp
msgid "The geometry's faces don't contain any area."
-msgstr "í˜•íƒœì˜ í‘œë©´ì— ì˜ì—­ì´ 없습니다."
+msgstr "ì§€ì˜¤ë©”íŠ¸ë¦¬ì˜ ë©´ì— ì˜ì—­ì´ í¬í•¨ë˜ì§€ 않습니다."
#: editor/plugins/particles_editor_plugin.cpp
msgid "The geometry doesn't contain any faces."
-msgstr "í˜•íƒœì— ë©´ì´ ì—†ìŠµë‹ˆë‹¤."
+msgstr "ì§€ì˜¤ë©”íŠ¸ë¦¬ì— ë©´ì´ í¬í•¨ë˜ì§€ 않습니다."
#: editor/plugins/particles_editor_plugin.cpp
msgid "\"%s\" doesn't inherit from Spatial."
@@ -6722,11 +6734,11 @@ msgstr "\"%s\"ì€(는) Spatialì„ ìƒì†ë°›ì§€ 않습니다."
#: editor/plugins/particles_editor_plugin.cpp
msgid "\"%s\" doesn't contain geometry."
-msgstr "\"%s\"ì— í˜•íƒœê°€ 없습니다."
+msgstr "\"%s\"ì— ì§€ì˜¤ë©”íŠ¸ë¦¬ê°€ í¬í•¨ë˜ì§€ 않습니다."
#: editor/plugins/particles_editor_plugin.cpp
msgid "\"%s\" doesn't contain face geometry."
-msgstr "\"%s\"ì— ë©´ 형태가 없습니다."
+msgstr "\"%s\"ì— ë©´ 지오메트리가 í¬í•¨ë˜ì§€ 않습니다."
#: editor/plugins/particles_editor_plugin.cpp
msgid "Create Emitter"
@@ -6746,7 +6758,7 @@ msgstr "표면 ì +노멀 (ì§ì ‘)"
#: editor/plugins/particles_editor_plugin.cpp
msgid "Volume"
-msgstr "부피"
+msgstr "볼륨"
#: editor/plugins/particles_editor_plugin.cpp
msgid "Emission Source: "
@@ -6766,15 +6778,15 @@ msgstr "가시성 AABB 만들기"
#: editor/plugins/path_2d_editor_plugin.cpp
msgid "Remove Point from Curve"
-msgstr "곡선ì—서 ì  ì‚­ì œ"
+msgstr "곡선ì—서 ì  ì œê±°"
#: editor/plugins/path_2d_editor_plugin.cpp
msgid "Remove Out-Control from Curve"
-msgstr "ê³¡ì„ ì˜ ì•„ì›ƒ-컨트롤 ì‚­ì œ"
+msgstr "ê³¡ì„ ì˜ ì•„ì›ƒ-컨트롤 제거"
#: editor/plugins/path_2d_editor_plugin.cpp
msgid "Remove In-Control from Curve"
-msgstr "ê³¡ì„ ì˜ ì¸-컨트롤 ì‚­ì œ"
+msgstr "ê³¡ì„ ì˜ ì¸-컨트롤 제거"
#: editor/plugins/path_2d_editor_plugin.cpp
#: editor/plugins/path_editor_plugin.cpp
@@ -6879,15 +6891,15 @@ msgstr "경로 가르기"
#: editor/plugins/path_editor_plugin.cpp
msgid "Remove Path Point"
-msgstr "경로 ì  ì‚­ì œ"
+msgstr "경로 ì  ì œê±°"
#: editor/plugins/path_editor_plugin.cpp
msgid "Remove Out-Control Point"
-msgstr "아웃-컨트롤 ì  ì‚­ì œ"
+msgstr "아웃-컨트롤 ì  ì œê±°"
#: editor/plugins/path_editor_plugin.cpp
msgid "Remove In-Control Point"
-msgstr "ì¸-컨트롤 ì  ì‚­ì œ"
+msgstr "ì¸-컨트롤 ì  ì œê±°"
#: editor/plugins/path_editor_plugin.cpp
msgid "Split Segment (in curve)"
@@ -6935,7 +6947,7 @@ msgstr "ë‚´ë¶€ ê¼­ì§“ì  ë§Œë“¤ê¸°"
#: editor/plugins/polygon_2d_editor_plugin.cpp
msgid "Remove Internal Vertex"
-msgstr "ë‚´ë¶€ ê¼­ì§“ì  ì‚­ì œ"
+msgstr "ë‚´ë¶€ ê¼­ì§“ì  ì œê±°"
#: editor/plugins/polygon_2d_editor_plugin.cpp
msgid "Invalid Polygon (need 3 different vertices)"
@@ -6947,7 +6959,7 @@ msgstr "맞춤 í´ë¦¬ê³¤ 추가"
#: editor/plugins/polygon_2d_editor_plugin.cpp
msgid "Remove Custom Polygon"
-msgstr "맞춤 í´ë¦¬ê³¤ ì‚­ì œ"
+msgstr "맞춤 í´ë¦¬ê³¤ 제거"
#: editor/plugins/polygon_2d_editor_plugin.cpp
msgid "Transform UV Map"
@@ -6963,11 +6975,11 @@ msgstr "본 가중치 칠하기"
#: editor/plugins/polygon_2d_editor_plugin.cpp
msgid "Open Polygon 2D UV editor."
-msgstr "í´ë¦¬ê³¤ 2D UV 편집기 열기."
+msgstr "í´ë¦¬ê³¤ 2D UV ì—디터를 엽니다."
#: editor/plugins/polygon_2d_editor_plugin.cpp
msgid "Polygon 2D UV Editor"
-msgstr "í´ë¦¬ê³¤ 2D UV 편집기"
+msgstr "í´ë¦¬ê³¤ 2D UV ì—디터"
#: editor/plugins/polygon_2d_editor_plugin.cpp
msgid "UV"
@@ -6999,7 +7011,7 @@ msgstr "Shift: ëª¨ë‘ ì´ë™"
#: editor/plugins/polygon_2d_editor_plugin.cpp
msgid "Shift+Command: Scale"
-msgstr "Shift+Command: í¬ê¸° ì¡°ì ˆ"
+msgstr "Shift+Command: ìŠ¤ì¼€ì¼ ì¡°ì ˆ"
#: editor/plugins/polygon_2d_editor_plugin.cpp
msgid "Ctrl: Rotate"
@@ -7007,7 +7019,7 @@ msgstr "Ctrl: 회전"
#: editor/plugins/polygon_2d_editor_plugin.cpp
msgid "Shift+Ctrl: Scale"
-msgstr "Shift+Ctrl: í¬ê¸° ì¡°ì ˆ"
+msgstr "Shift+Ctrl: ìŠ¤ì¼€ì¼ ì¡°ì ˆ"
#: editor/plugins/polygon_2d_editor_plugin.cpp
msgid "Move Polygon"
@@ -7019,19 +7031,19 @@ msgstr "í´ë¦¬ê³¤ 회전"
#: editor/plugins/polygon_2d_editor_plugin.cpp
msgid "Scale Polygon"
-msgstr "í´ë¦¬ê³¤ í¬ê¸° ì¡°ì ˆ"
+msgstr "í´ë¦¬ê³¤ ìŠ¤ì¼€ì¼ ì¡°ì ˆ"
#: editor/plugins/polygon_2d_editor_plugin.cpp
msgid "Create a custom polygon. Enables custom polygon rendering."
-msgstr "맞춤 í´ë¦¬ê³¤ì„ 만듭니다. 맞춤 í´ë¦¬ê³¤ ë Œë”ë§ì„ 켜세요."
+msgstr "맞춤 í´ë¦¬ê³¤ì„ 만듭니다. 맞춤 í´ë¦¬ê³¤ ë Œë”ë§ì„ 활성화합니다."
#: editor/plugins/polygon_2d_editor_plugin.cpp
msgid ""
"Remove a custom polygon. If none remain, custom polygon rendering is "
"disabled."
msgstr ""
-"맞춤 í´ë¦¬ê³¤ì„ 삭제합니다. 남아있는 맞춤 í´ë¦¬ê³¤ì´ 없으면, 맞춤 í´ë¦¬ê³¤ ë Œë”ë§"
-"ì€ êº¼ì§‘ë‹ˆë‹¤."
+"맞춤 í´ë¦¬ê³¤ì„ 제거합니다. 남아있는 맞춤 í´ë¦¬ê³¤ì´ 없으면, 맞춤 í´ë¦¬ê³¤ ë Œë”ë§"
+"ì€ ë¹„í™œì„±í™”ë©ë‹ˆë‹¤."
#: editor/plugins/polygon_2d_editor_plugin.cpp
msgid "Paint weights with specified intensity."
@@ -7141,7 +7153,7 @@ msgstr "유형:"
#: editor/plugins/resource_preloader_editor_plugin.cpp
#: editor/scene_tree_dock.cpp editor/scene_tree_editor.cpp
msgid "Open in Editor"
-msgstr "편집기ì—서 열기"
+msgstr "ì—디터ì—서 열기"
#: editor/plugins/resource_preloader_editor_plugin.cpp
msgid "Load Resource"
@@ -7152,22 +7164,30 @@ msgid "ResourcePreloader"
msgstr "리소스 프리로ë”"
#: editor/plugins/room_manager_editor_plugin.cpp
-#, fuzzy
msgid "Flip Portals"
-msgstr "수í‰ìœ¼ë¡œ 뒤집기"
+msgstr "í¬í„¸ 뒤집기"
#: editor/plugins/room_manager_editor_plugin.cpp
msgid "Room Generate Points"
-msgstr "ë°© ìƒì„±í•œ ì  ê°œìˆ˜"
+msgstr "룸 ìƒì„±í•œ ì  ê°œìˆ˜"
#: editor/plugins/room_manager_editor_plugin.cpp
msgid "Generate Points"
msgstr "ìƒì„±í•œ ì  ê°œìˆ˜"
#: editor/plugins/room_manager_editor_plugin.cpp
-#, fuzzy
msgid "Flip Portal"
-msgstr "수í‰ìœ¼ë¡œ 뒤집기"
+msgstr "í¬í„¸ 뒤집기"
+
+#: editor/plugins/room_manager_editor_plugin.cpp
+#, fuzzy
+msgid "Occluder Set Transform"
+msgstr "변형 지우기"
+
+#: editor/plugins/room_manager_editor_plugin.cpp
+#, fuzzy
+msgid "Center Node"
+msgstr "노드 만들기"
#: editor/plugins/root_motion_editor_plugin.cpp
msgid "AnimationTree has no path set to an AnimationPlayer"
@@ -7402,7 +7422,7 @@ msgstr "디버거 í•­ìƒ ì—´ì–´ë†“ê¸°"
#: editor/plugins/script_editor_plugin.cpp
msgid "Debug with External Editor"
-msgstr "외부 편집기로 디버깅"
+msgstr "외부 ì—디터로 디버깅"
#: editor/plugins/script_editor_plugin.cpp
#: editor/plugins/shader_editor_plugin.cpp
@@ -7411,11 +7431,11 @@ msgstr "온ë¼ì¸ 문서"
#: editor/plugins/script_editor_plugin.cpp
msgid "Open Godot online documentation."
-msgstr "Godot 온ë¼ì¸ 설명문서를 엽니다."
+msgstr "Godot 온ë¼ì¸ 문서를 엽니다."
#: editor/plugins/script_editor_plugin.cpp
msgid "Search the reference documentation."
-msgstr "참조 설명문서를 검색합니다."
+msgstr "참조 문서를 검색합니다."
#: editor/plugins/script_editor_plugin.cpp
msgid "Go to previous edited document."
@@ -7465,7 +7485,7 @@ msgstr "Target(대ìƒ)"
msgid ""
"Missing connected method '%s' for signal '%s' from node '%s' to node '%s'."
msgstr ""
-"메서드 '%s'ì´(ê°€) ì‹œê·¸ë„ '%s'ì„ ë…¸ë“œ '%s'ì—서 노드 '%s'으로 연결하지 않았습니"
+"메서드 '%s'ì´(ê°€) ì‹œê·¸ë„ '%s'ì„ ë…¸ë“œ '%s'ì—서 노드 '%s'으로 ì—°ê²°ë˜ì§€ 않았습니"
"다."
#: editor/plugins/script_text_editor.cpp
@@ -7482,7 +7502,7 @@ msgstr "함수로 ì´ë™"
#: editor/plugins/script_text_editor.cpp
msgid "Only resources from filesystem can be dropped."
-msgstr "íŒŒì¼ ì‹œìŠ¤í…œì˜ ë¦¬ì†ŒìŠ¤ë§Œ 드롭할 수 있습니다."
+msgstr "파ì¼ì‹œìŠ¤í…œì˜ ë¦¬ì†ŒìŠ¤ë§Œ 드롭할 수 있습니다."
#: editor/plugins/script_text_editor.cpp
#: modules/visual_script/visual_script_editor.cpp
@@ -7616,7 +7636,7 @@ msgstr "ì´ì „ ë¶ë§ˆí¬ë¡œ ì´ë™"
#: editor/plugins/script_text_editor.cpp
msgid "Remove All Bookmarks"
-msgstr "모든 ë¶ë§ˆí¬ ì‚­ì œ"
+msgstr "모든 ë¶ë§ˆí¬ 제거"
#: editor/plugins/script_text_editor.cpp
msgid "Go to Function..."
@@ -7633,7 +7653,7 @@ msgstr "ì¤‘ë‹¨ì  í† ê¸€"
#: editor/plugins/script_text_editor.cpp
msgid "Remove All Breakpoints"
-msgstr "모든 ì¤‘ë‹¨ì  ì‚­ì œ"
+msgstr "모든 ì¤‘ë‹¨ì  ì œê±°"
#: editor/plugins/script_text_editor.cpp
msgid "Go to Next Breakpoint"
@@ -7657,7 +7677,7 @@ msgstr "ì…°ì´ë”"
#: editor/plugins/skeleton_2d_editor_plugin.cpp
msgid "This skeleton has no bones, create some children Bone2D nodes."
-msgstr "ì´ ìŠ¤ì¼ˆë ˆí†¤ì—는 ë³¸ì´ ì—†ìŠµë‹ˆë‹¤. Bone2D노드를 ìžì‹ìœ¼ë¡œ 만드세요."
+msgstr "ì´ ìŠ¤ì¼ˆë ˆí†¤ì—는 ë³¸ì´ ì—†ìŠµë‹ˆë‹¤. Bone2D노드를 ìžì†ìœ¼ë¡œ 만드세요."
#: editor/plugins/skeleton_2d_editor_plugin.cpp
msgid "Create Rest Pose from Bones"
@@ -7672,12 +7692,14 @@ msgid "Skeleton2D"
msgstr "스켈레톤2D"
#: editor/plugins/skeleton_2d_editor_plugin.cpp
-msgid "Make Rest Pose (From Bones)"
-msgstr "(본ì˜) 대기 ìžì„¸ 만들기"
+#, fuzzy
+msgid "Reset to Rest Pose"
+msgstr "ë³¸ì„ ëŒ€ê¸° ìžì„¸ë¡œ 설정"
#: editor/plugins/skeleton_2d_editor_plugin.cpp
-msgid "Set Bones to Rest Pose"
-msgstr "ë³¸ì„ ëŒ€ê¸° ìžì„¸ë¡œ 설정"
+#, fuzzy
+msgid "Overwrite Rest Pose"
+msgstr "ë®ì–´ 쓰기"
#: editor/plugins/skeleton_editor_plugin.cpp
msgid "Create physical bones"
@@ -7697,11 +7719,76 @@ msgstr "IK 실행"
#: editor/plugins/spatial_editor_plugin.cpp
msgid "Orthogonal"
-msgstr "ì§êµë³´ê¸°"
+msgstr "ì§êµ"
#: editor/plugins/spatial_editor_plugin.cpp
msgid "Perspective"
-msgstr "ì›ê·¼ë³´ê¸°"
+msgstr "ì›ê·¼"
+
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Top Orthogonal"
+msgstr "ì§êµ"
+
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Top Perspective"
+msgstr "ì›ê·¼"
+
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Bottom Orthogonal"
+msgstr "ì§êµ"
+
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Bottom Perspective"
+msgstr "ì›ê·¼"
+
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Left Orthogonal"
+msgstr "ì§êµ"
+
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Right Perspective"
+msgstr "ì›ê·¼"
+
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Right Orthogonal"
+msgstr "ì§êµ"
+
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Front Orthogonal"
+msgstr "ì§êµ"
+
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Front Perspective"
+msgstr "ì›ê·¼"
+
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Rear Orthogonal"
+msgstr "ì§êµ"
+
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Rear Perspective"
+msgstr "ì›ê·¼"
+
+#. TRANSLATORS: This will be appended to the view name when Auto Orthogonal is enabled.
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid " [auto]"
+msgstr ""
+
+#. TRANSLATORS: This will be appended to the view name when Portal Occulusion is enabled.
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid " [portals active]"
+msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
msgid "Transform Aborted."
@@ -7740,7 +7827,7 @@ msgstr "ì´ë™"
#: editor/plugins/spatial_editor_plugin.cpp
msgid "Scale"
-msgstr "í¬ê¸°"
+msgstr "스케ì¼"
#: editor/plugins/spatial_editor_plugin.cpp
msgid "Scaling: "
@@ -7756,7 +7843,7 @@ msgstr "%së„로 회전."
#: editor/plugins/spatial_editor_plugin.cpp
msgid "Keying is disabled (no key inserted)."
-msgstr "키가 꺼져 있습니다 (키가 삽입ë˜ì§€ 않습니다)."
+msgstr "키가 비활성화ë˜ì–´ 있습니다 (키가 삽입ë˜ì§€ 않습니다)."
#: editor/plugins/spatial_editor_plugin.cpp
msgid "Animation Key Inserted."
@@ -7764,11 +7851,11 @@ msgstr "애니메ì´ì…˜ 키를 삽입했습니다."
#: editor/plugins/spatial_editor_plugin.cpp
msgid "Pitch:"
-msgstr "피치:"
+msgstr "Pitch:"
#: editor/plugins/spatial_editor_plugin.cpp
msgid "Yaw:"
-msgstr ""
+msgstr "Yaw:"
#: editor/plugins/spatial_editor_plugin.cpp
msgid "Size:"
@@ -7776,7 +7863,7 @@ msgstr "í¬ê¸°:"
#: editor/plugins/spatial_editor_plugin.cpp
msgid "Objects Drawn:"
-msgstr "그려진 ê°ì²´:"
+msgstr "그려진 오브ì íЏ:"
#: editor/plugins/spatial_editor_plugin.cpp
msgid "Material Changes:"
@@ -7800,7 +7887,7 @@ msgstr "ì •ì :"
#: editor/plugins/spatial_editor_plugin.cpp
msgid "FPS: %d (%s ms)"
-msgstr ""
+msgstr "FPS: %d (%s ms)"
#: editor/plugins/spatial_editor_plugin.cpp
msgid "Top View."
@@ -7811,42 +7898,22 @@ msgid "Bottom View."
msgstr "아랫면 보기."
#: editor/plugins/spatial_editor_plugin.cpp
-msgid "Bottom"
-msgstr "아랫면"
-
-#: editor/plugins/spatial_editor_plugin.cpp
msgid "Left View."
msgstr "왼쪽면 보기."
#: editor/plugins/spatial_editor_plugin.cpp
-msgid "Left"
-msgstr "왼쪽면"
-
-#: editor/plugins/spatial_editor_plugin.cpp
msgid "Right View."
msgstr "오른쪽면 보기."
#: editor/plugins/spatial_editor_plugin.cpp
-msgid "Right"
-msgstr "오른쪽면"
-
-#: editor/plugins/spatial_editor_plugin.cpp
msgid "Front View."
msgstr "정면 보기."
#: editor/plugins/spatial_editor_plugin.cpp
-msgid "Front"
-msgstr "ì •ë©´"
-
-#: editor/plugins/spatial_editor_plugin.cpp
msgid "Rear View."
msgstr "뒷면 보기."
#: editor/plugins/spatial_editor_plugin.cpp
-msgid "Rear"
-msgstr "ë’·ë©´"
-
-#: editor/plugins/spatial_editor_plugin.cpp
msgid "Align Transform with View"
msgstr "ë³€í˜•ì„ ë·°ì— ì •ë ¬"
@@ -7856,11 +7923,11 @@ msgstr "íšŒì „ì„ ë·°ì— ì •ë ¬"
#: editor/plugins/spatial_editor_plugin.cpp editor/scene_tree_dock.cpp
msgid "No parent to instance a child at."
-msgstr "ìžì‹ì„ ì¸ìŠ¤í„´ìŠ¤í•  부모가 없습니다."
+msgstr "ìžì†ì„ ì¸ìŠ¤í„´ìŠ¤í•  부모가 없습니다."
#: editor/plugins/spatial_editor_plugin.cpp editor/scene_tree_dock.cpp
msgid "This operation requires a single selected node."
-msgstr "ì´ ìž‘ì—…ì€ í•˜ë‚˜ì˜ ë…¸ë“œë¥¼ ì„ íƒí•´ì•¼ 합니다."
+msgstr "ì´ ìž‘ì—…ì€ ë‹¨ì¼ ë…¸ë“œê°€ ì„ íƒë˜ì–´ì•¼ 합니다."
#: editor/plugins/spatial_editor_plugin.cpp
msgid "Auto Orthogonal Enabled"
@@ -7912,7 +7979,7 @@ msgstr "오디오 리스너"
#: editor/plugins/spatial_editor_plugin.cpp
msgid "Enable Doppler"
-msgstr "íŒŒë™ ì™œê³¡ 켜기"
+msgstr "íŒŒë™ ì™œê³¡ 활성화"
#: editor/plugins/spatial_editor_plugin.cpp
msgid "Cinematic Preview"
@@ -7955,9 +8022,8 @@ msgid "Freelook Slow Modifier"
msgstr "ìžìœ  ì‹œì  ëŠë¦° 수정ìž"
#: editor/plugins/spatial_editor_plugin.cpp
-#, fuzzy
msgid "Toggle Camera Preview"
-msgstr "ì¹´ë©”ë¼ í¬ê¸° 바꾸기"
+msgstr "ì¹´ë©”ë¼ ë¯¸ë¦¬ 보기 토글"
#: editor/plugins/spatial_editor_plugin.cpp
msgid "View Rotation Locked"
@@ -7966,20 +8032,19 @@ msgstr "뷰 회전 잠김"
#: editor/plugins/spatial_editor_plugin.cpp
msgid ""
"To zoom further, change the camera's clipping planes (View -> Settings...)"
-msgstr "ë”ìš± 확대하려면, ì¹´ë©”ë¼ì˜ í´ë¦½í•‘ í‰ë©´ì„ 변경하세요 (보기 -> 설정...)"
+msgstr "ë”ìš± 확대하려면, ì¹´ë©”ë¼ì˜ í´ë¦¬í•‘ í‰ë©´ì„ 바꾸세요 (보기 -> 설정...)"
#: editor/plugins/spatial_editor_plugin.cpp
msgid ""
"Note: The FPS value displayed is the editor's framerate.\n"
"It cannot be used as a reliable indication of in-game performance."
msgstr ""
-"참고: FPS ê°’ì€ íŽ¸ì§‘ê¸°ì˜ í”„ë ˆìž„ìœ¼ë¡œ 표시ë©ë‹ˆë‹¤.\n"
+"참고: FPS ê°’ì€ ì—ë””í„°ì˜ í”„ë ˆìž„ìœ¼ë¡œ 표시ë©ë‹ˆë‹¤.\n"
"ì´ê²ƒì´ 게임 ë‚´ ì„±ëŠ¥ì„ ë³´ìž¥í•  수 없습니다."
#: editor/plugins/spatial_editor_plugin.cpp
-#, fuzzy
msgid "Convert Rooms"
-msgstr "%s(으)로 변환"
+msgstr "룸 변환"
#: editor/plugins/spatial_editor_plugin.cpp
msgid "XForm Dialog"
@@ -8000,7 +8065,6 @@ msgstr ""
"ë°˜ 열린 눈: 불투명한 표면ì—ë„ ê¸°ì¦ˆëª¨ê°€ 보입니다 (\"엑스레ì´\")."
#: editor/plugins/spatial_editor_plugin.cpp
-#, fuzzy
msgid "Snap Nodes to Floor"
msgstr "노드를 ë°”ë‹¥ì— ìŠ¤ëƒ…"
@@ -8018,7 +8082,7 @@ msgstr "스냅 사용"
#: editor/plugins/spatial_editor_plugin.cpp
msgid "Converts rooms for portal culling."
-msgstr ""
+msgstr "í¬í„¸ 컬ë§ì„ 위한 ë£¸ì„ ë³€í™˜í•©ë‹ˆë‹¤."
#: editor/plugins/spatial_editor_plugin.cpp
msgid "Bottom View"
@@ -8071,7 +8135,7 @@ msgstr "변형"
#: editor/plugins/spatial_editor_plugin.cpp
msgid "Snap Object to Floor"
-msgstr "개체를 ë°”ë‹¥ì— ìŠ¤ëƒ…"
+msgstr "오브ì íŠ¸ë¥¼ ë°”ë‹¥ì— ìŠ¤ëƒ…"
#: editor/plugins/spatial_editor_plugin.cpp
msgid "Transform Dialog..."
@@ -8114,9 +8178,13 @@ msgid "View Grid"
msgstr "ê²©ìž ë³´ê¸°"
#: editor/plugins/spatial_editor_plugin.cpp
-#, fuzzy
msgid "View Portal Culling"
-msgstr "ë·°í¬íЏ 설정"
+msgstr "í¬í„¸ ì»¬ë§ ë³´ê¸°"
+
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "View Occlusion Culling"
+msgstr "í¬í„¸ ì»¬ë§ ë³´ê¸°"
#: editor/plugins/spatial_editor_plugin.cpp
#: modules/gridmap/grid_map_editor_plugin.cpp
@@ -8137,7 +8205,7 @@ msgstr "회전 스냅 (ë„):"
#: editor/plugins/spatial_editor_plugin.cpp
msgid "Scale Snap (%):"
-msgstr "í¬ê¸° 스냅 (%):"
+msgstr "ìŠ¤ì¼€ì¼ ìŠ¤ëƒ… (%):"
#: editor/plugins/spatial_editor_plugin.cpp
msgid "Viewport Settings"
@@ -8169,7 +8237,7 @@ msgstr "회전 (ë„):"
#: editor/plugins/spatial_editor_plugin.cpp
msgid "Scale (ratio):"
-msgstr "í¬ê¸° (비율):"
+msgstr "ìŠ¤ì¼€ì¼ (비율):"
#: editor/plugins/spatial_editor_plugin.cpp
msgid "Transform Type"
@@ -8184,8 +8252,9 @@ msgid "Post"
msgstr "후"
#: editor/plugins/spatial_editor_plugin.cpp
-msgid "Nameless gizmo"
-msgstr "ì´ë¦„ 없는 기즈모"
+#, fuzzy
+msgid "Unnamed Gizmo"
+msgstr "ì´ë¦„ 없는 프로ì íЏ"
#: editor/plugins/sprite_editor_plugin.cpp
msgid "Create Mesh2D"
@@ -8229,7 +8298,7 @@ msgstr "애니메ì´ì…˜ í”„ë ˆìž„ì„ ì‚¬ìš©í•˜ëŠ” 스프ë¼ì´íŠ¸ë¥¼ 메시로 ë
#: editor/plugins/sprite_editor_plugin.cpp
msgid "Invalid geometry, can't replace by mesh."
-msgstr "ìž˜ëª»ëœ í˜•íƒœ. 메시로 대체할 수 없습니다."
+msgstr "ìž˜ëª»ëœ ì§€ì˜¤ë©”íŠ¸ë¦¬. 메시로 대체할 수 없습니다."
#: editor/plugins/sprite_editor_plugin.cpp
msgid "Convert to Mesh2D"
@@ -8237,7 +8306,7 @@ msgstr "Mesh2D로 변환"
#: editor/plugins/sprite_editor_plugin.cpp
msgid "Invalid geometry, can't create polygon."
-msgstr "ìž˜ëª»ëœ í˜•íƒœ. í´ë¦¬ê³¤ì„ 만들 수 없습니다."
+msgstr "ìž˜ëª»ëœ ì§€ì˜¤ë©”íŠ¸ë¦¬. í´ë¦¬ê³¤ì„ 만들 수 없습니다."
#: editor/plugins/sprite_editor_plugin.cpp
msgid "Convert to Polygon2D"
@@ -8245,19 +8314,19 @@ msgstr "Polygon2D로 변환"
#: editor/plugins/sprite_editor_plugin.cpp
msgid "Invalid geometry, can't create collision polygon."
-msgstr "ìž˜ëª»ëœ í˜•íƒœ. ì¶©ëŒ í´ë¦¬ê³¤ì„ 만들 수 없습니다."
+msgstr "ìž˜ëª»ëœ ì§€ì˜¤ë©”íŠ¸ë¦¬. 콜리전 í´ë¦¬ê³¤ì„ 만들 수 없습니다."
#: editor/plugins/sprite_editor_plugin.cpp
msgid "Create CollisionPolygon2D Sibling"
-msgstr "CollisionPolygon2D 노드 만들기"
+msgstr "CollisionPolygon2D ë™ê¸° 만들기"
#: editor/plugins/sprite_editor_plugin.cpp
msgid "Invalid geometry, can't create light occluder."
-msgstr "ìž˜ëª»ëœ í˜•íƒœ, 조명 ì–´í´ë£¨ë”를 만들 수 없습니다."
+msgstr "ìž˜ëª»ëœ ì§€ì˜¤ë©”íŠ¸ë¦¬. 조명 ì–´í´ë£¨ë”를 만들 수 없습니다."
#: editor/plugins/sprite_editor_plugin.cpp
msgid "Create LightOccluder2D Sibling"
-msgstr "LightOccluder2D 노드 만들기"
+msgstr "LightOccluder2D ë™ê¸° 만들기"
#: editor/plugins/sprite_editor_plugin.cpp
msgid "Sprite"
@@ -8436,24 +8505,20 @@ msgid "TextureRegion"
msgstr "í…스처 ì˜ì—­"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Colors"
-msgstr "색깔"
+msgstr "색ìƒ"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Fonts"
msgstr "글꼴"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Icons"
msgstr "ì•„ì´ì½˜"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Styleboxes"
-msgstr "ìŠ¤íƒ€ì¼ ë°•ìŠ¤"
+msgstr "스타ì¼ë°•스"
#: editor/plugins/theme_editor_plugin.cpp
msgid "{num} color(s)"
@@ -8513,12 +8578,11 @@ msgstr "항목 {n}/{n} 가져오는 중"
#: editor/plugins/theme_editor_plugin.cpp
msgid "Updating the editor"
-msgstr "편집기를 ì—…ë°ì´íЏ 중"
+msgstr "ì—디터를 ì—…ë°ì´íЏ 중"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Finalizing"
-msgstr "ë¶„ì„ ì¤‘"
+msgstr "마무리 중"
#: editor/plugins/theme_editor_plugin.cpp
msgid "Filter:"
@@ -8533,17 +8597,16 @@ msgid "Select by data type:"
msgstr "ë°ì´í„° 유형 별 ì„ íƒ:"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Select all visible color items."
-msgstr "지우기 위한 ë¶„í•  위치를 ì„ íƒí•˜ê¸°."
+msgstr "ë³´ì´ëŠ” 모든 ìƒ‰ìƒ í•­ëª©ì„ ì„ íƒí•©ë‹ˆë‹¤."
#: editor/plugins/theme_editor_plugin.cpp
msgid "Select all visible color items and their data."
-msgstr ""
+msgstr "ë³´ì´ëŠ” 모든 ìƒ‰ìƒ í•­ëª©ê³¼ ê·¸ ë°ì´í„°ë¥¼ ì„ íƒí•©ë‹ˆë‹¤."
#: editor/plugins/theme_editor_plugin.cpp
msgid "Deselect all visible color items."
-msgstr ""
+msgstr "ë³´ì´ëŠ” 모든 ìƒ‰ìƒ í•­ëª©ì„ ì„ íƒ í•´ì œí•©ë‹ˆë‹¤."
#: editor/plugins/theme_editor_plugin.cpp
msgid "Select all visible constant items."
@@ -8551,11 +8614,11 @@ msgstr "ë³´ì´ëŠ” 모든 ìƒìˆ˜ í•­ëª©ì„ ì„ íƒí•©ë‹ˆë‹¤."
#: editor/plugins/theme_editor_plugin.cpp
msgid "Select all visible constant items and their data."
-msgstr ""
+msgstr "ë³´ì´ëŠ” 모든 ìƒìˆ˜ 항목과 ê·¸ ë°ì´í„°ë¥¼ ì„ íƒí•©ë‹ˆë‹¤."
#: editor/plugins/theme_editor_plugin.cpp
msgid "Deselect all visible constant items."
-msgstr ""
+msgstr "ë³´ì´ëŠ” 모든 ìƒìˆ˜ í•­ëª©ì„ ì„ íƒ í•´ì œí•©ë‹ˆë‹¤."
#: editor/plugins/theme_editor_plugin.cpp
msgid "Select all visible font items."
@@ -8563,11 +8626,11 @@ msgstr "ë³´ì´ëŠ” 모든 글꼴 í•­ëª©ì„ ì„ íƒí•©ë‹ˆë‹¤."
#: editor/plugins/theme_editor_plugin.cpp
msgid "Select all visible font items and their data."
-msgstr ""
+msgstr "ë³´ì´ëŠ” 모든 글꼴 항목과 ê·¸ ë°ì´í„°ë¥¼ ì„ íƒí•©ë‹ˆë‹¤."
#: editor/plugins/theme_editor_plugin.cpp
msgid "Deselect all visible font items."
-msgstr ""
+msgstr "ë³´ì´ëŠ” 모든 글꼴 í•­ëª©ì„ ì„ íƒ í•´ì œí•©ë‹ˆë‹¤."
#: editor/plugins/theme_editor_plugin.cpp
msgid "Select all visible icon items."
@@ -8575,7 +8638,7 @@ msgstr "ë³´ì´ëŠ” 모든 ì•„ì´ì½˜ í•­ëª©ì„ ì„ íƒí•©ë‹ˆë‹¤."
#: editor/plugins/theme_editor_plugin.cpp
msgid "Select all visible icon items and their data."
-msgstr "ë³´ì´ëŠ” 모든 ì•„ì´ì½˜ 항목과 ê·¸ í•­ëª©ì˜ ë°ì´í„°ë¥¼ ì„ íƒí•©ë‹ˆë‹¤."
+msgstr "ë³´ì´ëŠ” 모든 ì•„ì´ì½˜ 항목과 ê·¸ ë°ì´í„°ë¥¼ ì„ íƒí•©ë‹ˆë‹¤."
#: editor/plugins/theme_editor_plugin.cpp
msgid "Deselect all visible icon items."
@@ -8583,21 +8646,22 @@ msgstr "ë³´ì´ëŠ” 모든 ì•„ì´ì½˜ í•­ëª©ì„ ì„ íƒ í•´ì œí•©ë‹ˆë‹¤."
#: editor/plugins/theme_editor_plugin.cpp
msgid "Select all visible stylebox items."
-msgstr ""
+msgstr "ë³´ì´ëŠ” 모든 스타ì¼ë°•스 í•­ëª©ì„ ì„ íƒí•©ë‹ˆë‹¤."
#: editor/plugins/theme_editor_plugin.cpp
msgid "Select all visible stylebox items and their data."
-msgstr ""
+msgstr "ë³´ì´ëŠ” 모든 스타ì¼ë°•스 항목과 ê·¸ ë°ì´í„°ë¥¼ ì„ íƒí•©ë‹ˆë‹¤."
#: editor/plugins/theme_editor_plugin.cpp
msgid "Deselect all visible stylebox items."
-msgstr ""
+msgstr "ë³´ì´ëŠ” 모든 스타ì¼ë°•스 í•­ëª©ì„ ì„ íƒ í•´ì œí•©ë‹ˆë‹¤."
#: editor/plugins/theme_editor_plugin.cpp
msgid ""
"Caution: Adding icon data may considerably increase the size of your Theme "
"resource."
msgstr ""
+"주ì˜: ì•„ì´ì½˜ ë°ì´í„°ë¥¼ 추가하면 테마 ë¦¬ì†ŒìŠ¤ì˜ í¬ê¸°ê°€ ìƒë‹¹ížˆ 커질 수 있습니다."
#: editor/plugins/theme_editor_plugin.cpp
msgid "Collapse types."
@@ -8612,27 +8676,24 @@ msgid "Select all Theme items."
msgstr "모든 테마 í•­ëª©ì„ ì„ íƒí•©ë‹ˆë‹¤."
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Select With Data"
-msgstr "ì  ì„ íƒ"
+msgstr "ë°ì´í„°ë¡œ ì„ íƒ"
#: editor/plugins/theme_editor_plugin.cpp
msgid "Select all Theme items with item data."
-msgstr ""
+msgstr "항목 ë°ì´í„°ê°€ 있는 모든 테마 í•­ëª©ì„ ì„ íƒí•©ë‹ˆë‹¤."
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Deselect All"
-msgstr "ëª¨ë‘ ì„ íƒ"
+msgstr "ëª¨ë‘ ì„ íƒ í•´ì œ"
#: editor/plugins/theme_editor_plugin.cpp
msgid "Deselect all Theme items."
-msgstr ""
+msgstr "모든 테마 í•­ëª©ì„ ì„ íƒ í•´ì œí•©ë‹ˆë‹¤."
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Import Selected"
-msgstr "씬 가져오기"
+msgstr "ì„ íƒëœ 항목 가져오기"
#: editor/plugins/theme_editor_plugin.cpp
msgid ""
@@ -8640,278 +8701,249 @@ msgid ""
"closing this window.\n"
"Close anyway?"
msgstr ""
+"항목 가져오기 íƒ­ì— ì¼ë¶€ í•­ëª©ì´ ì„ íƒë˜ì–´ 있습니다. ì´ ì°½ì„ ë‹«ìœ¼ë©´ ì„ íƒì„ 잃게 "
+"ë©ë‹ˆë‹¤.\n"
+"무시하고 닫으시겠습니까?"
#: editor/plugins/theme_editor_plugin.cpp
msgid ""
"Select a theme type from the list to edit its items.\n"
"You can add a custom type or import a type with its items from another theme."
msgstr ""
+"í…Œë§ˆì˜ í•­ëª©ì„ íŽ¸ì§‘í•˜ë ¤ë©´ 목ë¡ì—서 테마 ìœ í˜•ì„ ì„ íƒí•˜ì„¸ìš”.\n"
+"맞춤 ìœ í˜•ì„ ì¶”ê°€í•˜ê±°ë‚˜ 다른 테마ì—서 테마 항목으로 ìœ í˜•ì„ ê°€ì ¸ì˜¬ 수 있습니다."
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Remove All Color Items"
-msgstr "모든 항목 삭제"
+msgstr "모든 ìƒ‰ìƒ í•­ëª© 제거"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Rename Item"
-msgstr "항목 삭제"
+msgstr "항목 ì´ë¦„ 바꾸기"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Remove All Constant Items"
-msgstr "모든 항목 삭제"
+msgstr "모든 ìƒìˆ˜ 항목 제거"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Remove All Font Items"
-msgstr "모든 항목 삭제"
+msgstr "모든 글꼴 항목 제거"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Remove All Icon Items"
-msgstr "모든 항목 삭제"
+msgstr "모든 ì•„ì´ì½˜ 항목 제거"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Remove All StyleBox Items"
-msgstr "모든 항목 삭제"
+msgstr "모든 스타ì¼ë°•스 항목 제거"
#: editor/plugins/theme_editor_plugin.cpp
msgid ""
"This theme type is empty.\n"
"Add more items to it manually or by importing from another theme."
msgstr ""
+"ì´ í…Œë§ˆ ìœ í˜•ì€ ë¹„ì–´ 있습니다.\n"
+"ì§ì ‘ ë˜ëŠ” 다른 테마ì—서 가져와서 í…Œë§ˆì— ë” ë§Žì€ í•­ëª©ì„ ì¶”ê°€í•˜ì„¸ìš”."
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Add Color Item"
-msgstr "í´ëž˜ìФ 항목 추가"
+msgstr "ìƒ‰ìƒ í•­ëª© 추가"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Add Constant Item"
-msgstr "í´ëž˜ìФ 항목 추가"
+msgstr "ìƒìˆ˜ 항목 추가"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Add Font Item"
-msgstr "항목 추가"
+msgstr "글꼴 항목 추가"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Add Icon Item"
-msgstr "항목 추가"
+msgstr "ì•„ì´ì½˜ 항목 추가"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Add Stylebox Item"
-msgstr "모든 항목 추가"
+msgstr "스타ì¼ë°•스 항목 추가"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Rename Color Item"
-msgstr "í´ëž˜ìФ 항목 ì‚­ì œ"
+msgstr "ìƒ‰ìƒ í•­ëª© ì´ë¦„ 바꾸기"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Rename Constant Item"
-msgstr "í´ëž˜ìФ 항목 ì‚­ì œ"
+msgstr "ìƒìˆ˜ 항목 ì´ë¦„ 바꾸기"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Rename Font Item"
-msgstr "노드 ì´ë¦„ 바꾸기"
+msgstr "글꼴 항목 ì´ë¦„ 바꾸기"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Rename Icon Item"
-msgstr "노드 ì´ë¦„ 바꾸기"
+msgstr "ì•„ì´ì½˜ 항목 ì´ë¦„ 바꾸기"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Rename Stylebox Item"
-msgstr "ì„ íƒí•œ 항목 ì‚­ì œ"
+msgstr "스타ì¼ë°•스 항목 ì´ë¦„ 바꾸기"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Invalid file, not a Theme resource."
-msgstr "ìž˜ëª»ëœ íŒŒì¼. 오디오 버스 ë ˆì´ì•„ì›ƒì´ ì•„ë‹™ë‹ˆë‹¤."
+msgstr "ìž˜ëª»ëœ íŒŒì¼, 테마 리소스가 아닙니다."
#: editor/plugins/theme_editor_plugin.cpp
msgid "Invalid file, same as the edited Theme resource."
-msgstr ""
+msgstr "ìž˜ëª»ëœ íŒŒì¼, íŽ¸ì§‘ëœ í…Œë§ˆ 리소스와 같습니다."
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Manage Theme Items"
-msgstr "템플릿 관리"
+msgstr "테마 항목 관리"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Edit Items"
-msgstr "편집할 수 있는 항목"
+msgstr "항목 편집"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Types:"
msgstr "유형:"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Add Type:"
-msgstr "유형:"
+msgstr "유형 추가:"
#: editor/plugins/theme_editor_plugin.cpp
msgid "Add Item:"
msgstr "항목 추가:"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Add StyleBox Item"
-msgstr "모든 항목 추가"
+msgstr "스타ì¼ë°•스 항목 추가"
#: editor/plugins/theme_editor_plugin.cpp
msgid "Remove Items:"
-msgstr "항목 삭제:"
+msgstr "항목 제거:"
#: editor/plugins/theme_editor_plugin.cpp
msgid "Remove Class Items"
-msgstr "í´ëž˜ìФ 항목 ì‚­ì œ"
+msgstr "í´ëž˜ìФ 항목 제거"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Remove Custom Items"
-msgstr "í´ëž˜ìФ 항목 ì‚­ì œ"
+msgstr "맞춤 항목 제거"
#: editor/plugins/theme_editor_plugin.cpp
msgid "Remove All Items"
-msgstr "모든 항목 삭제"
+msgstr "모든 항목 제거"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Add Theme Item"
-msgstr "GUI 테마 항목"
+msgstr "테마 항목 추가"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Old Name:"
-msgstr "노드 ì´ë¦„:"
+msgstr "ì´ì „ ì´ë¦„:"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Import Items"
-msgstr "테마 가져오기"
+msgstr "항목 가져오기"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Default Theme"
-msgstr "기본"
+msgstr "ë””í´íЏ 테마"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Editor Theme"
-msgstr "테마 편집"
+msgstr "테마 ì—디터"
#: editor/plugins/theme_editor_plugin.cpp
msgid "Select Another Theme Resource:"
msgstr "다른 테마 리소스 ì„ íƒ:"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Another Theme"
-msgstr "테마 가져오기"
+msgstr "다른 테마"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Confirm Item Rename"
-msgstr "애니메ì´ì…˜ 트랙 ì´ë¦„ 변경"
+msgstr "항목 ì´ë¦„ 바꾸기 확ì¸"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Cancel Item Rename"
-msgstr "ì¼ê´„ ì´ë¦„ 바꾸기"
+msgstr "항목 ì´ë¦„ 바꾸기 취소"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Override Item"
-msgstr "재정ì˜"
+msgstr "항목 재정ì˜"
#: editor/plugins/theme_editor_plugin.cpp
msgid "Unpin this StyleBox as a main style."
-msgstr ""
+msgstr "ì´ ìŠ¤íƒ€ì¼ë°•스를 주 스타ì¼ë¡œ ê³ ì •ì„ í•´ì œí•©ë‹ˆë‹¤."
#: editor/plugins/theme_editor_plugin.cpp
msgid ""
"Pin this StyleBox as a main style. Editing its properties will update the "
"same properties in all other StyleBoxes of this type."
msgstr ""
+"스타ì¼ë°•스를 주 스타ì¼ë¡œ 고정합니다. ì†ì„±ì„ 편집하면 ì´ ìœ í˜•ì˜ ë‹¤ë¥¸ 모든 스타"
+"ì¼ë°•스ì—서 ê°™ì€ ì†ì„±ì´ ì—…ë°ì´íЏë©ë‹ˆë‹¤."
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Add Type"
-msgstr "유형"
+msgstr "유형 추가"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Add Item Type"
-msgstr "항목 추가"
+msgstr "항목 유형 추가"
#: editor/plugins/theme_editor_plugin.cpp
msgid "Node Types:"
msgstr "노드 유형:"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Show Default"
-msgstr "기본값 불러오기"
+msgstr "ë””í´íЏ ë³´ì´ê¸°"
#: editor/plugins/theme_editor_plugin.cpp
msgid "Show default type items alongside items that have been overridden."
-msgstr ""
+msgstr "재정ì˜ëœ 항목 ì˜†ì— ë””í´íЏ 유형 í•­ëª©ì„ ë³´ì—¬ì¤ë‹ˆë‹¤."
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Override All"
-msgstr "재정ì˜"
+msgstr "ëª¨ë‘ ìž¬ì •ì˜"
#: editor/plugins/theme_editor_plugin.cpp
msgid "Override all default type items."
-msgstr ""
+msgstr "모든 ë””í´íЏ 유형 í•­ëª©ì„ ìž¬ì •ì˜í•©ë‹ˆë‹¤."
#: editor/plugins/theme_editor_plugin.cpp
msgid "Theme:"
msgstr "테마:"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Manage Items..."
-msgstr "내보내기 템플릿 관리..."
+msgstr "항목 관리..."
#: editor/plugins/theme_editor_plugin.cpp
msgid "Add, remove, organize and import Theme items."
-msgstr ""
+msgstr "테마 í•­ëª©ì„ ì¶”ê°€, 제거, 구성 ë° ê°€ì ¸ì˜µë‹ˆë‹¤."
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Add Preview"
-msgstr "미리 보기"
+msgstr "미리 보기 추가"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Default Preview"
-msgstr "ì—…ë°ì´íЏ 미리 보기"
+msgstr "ë””í´íЏ 미리 보기"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Select UI Scene:"
-msgstr "소스 메시를 ì„ íƒí•˜ì„¸ìš”:"
+msgstr "UI ì”¬ì„ ì„ íƒí•˜ì„¸ìš”:"
#: editor/plugins/theme_editor_preview.cpp
msgid ""
"Toggle the control picker, allowing to visually select control types for "
"edit."
msgstr ""
+"컨트롤 ì„ íƒê¸°ë¥¼ 토글하여, 편집할 컨트롤 ìœ í˜•ì„ ì‹œê°ì ìœ¼ë¡œ ì„ íƒí•  수 있게 합니"
+"다."
#: editor/plugins/theme_editor_preview.cpp
msgid "Toggle Button"
@@ -8919,7 +8951,7 @@ msgstr "토글 버튼"
#: editor/plugins/theme_editor_preview.cpp
msgid "Disabled Button"
-msgstr "꺼진 버튼"
+msgstr "ë¹„í™œì„±í™”ëœ ë²„íŠ¼"
#: editor/plugins/theme_editor_preview.cpp
msgid "Item"
@@ -8927,7 +8959,7 @@ msgstr "항목"
#: editor/plugins/theme_editor_preview.cpp
msgid "Disabled Item"
-msgstr "꺼진 항목"
+msgstr "ë¹„í™œì„±í™”ëœ í•­ëª©"
#: editor/plugins/theme_editor_preview.cpp
msgid "Check Item"
@@ -8971,7 +9003,7 @@ msgstr "ë§Žì€"
#: editor/plugins/theme_editor_preview.cpp
msgid "Disabled LineEdit"
-msgstr "꺼진 LineEdit"
+msgstr "ë¹„í™œì„±í™”ëœ LineEdit"
#: editor/plugins/theme_editor_preview.cpp
msgid "Tab 1"
@@ -8999,20 +9031,19 @@ msgstr "ë§Žì€,옵션,갖춤"
#: editor/plugins/theme_editor_preview.cpp
msgid "Invalid path, the PackedScene resource was probably moved or removed."
-msgstr ""
+msgstr "ìž˜ëª»ëœ ê²½ë¡œ, PackedScene 리소스가 ì´ë™ë˜ì—ˆê±°ë‚˜ 제거ë˜ì—ˆì„ 수 있습니다."
#: editor/plugins/theme_editor_preview.cpp
msgid "Invalid PackedScene resource, must have a Control node at its root."
-msgstr ""
+msgstr "ìž˜ëª»ëœ PackedScene 리소스, ë£¨íŠ¸ì— ì»¨íŠ¸ë¡¤ 노드가 있어야 합니다."
#: editor/plugins/theme_editor_preview.cpp
-#, fuzzy
msgid "Invalid file, not a PackedScene resource."
-msgstr "ìž˜ëª»ëœ íŒŒì¼. 오디오 버스 ë ˆì´ì•„ì›ƒì´ ì•„ë‹™ë‹ˆë‹¤."
+msgstr "ìž˜ëª»ëœ íŒŒì¼, PackedScene 리소스가 아닙니다."
#: editor/plugins/theme_editor_preview.cpp
msgid "Reload the scene to reflect its most actual state."
-msgstr ""
+msgstr "ì”¬ì„ ìƒˆë¡œ ê³ ì³ ê°€ìž¥ 실제 ìƒíƒœë¥¼ ë°˜ì˜í•©ë‹ˆë‹¤."
#: editor/plugins/tile_map_editor_plugin.cpp
msgid "Erase Selection"
@@ -9057,11 +9088,11 @@ msgstr "행렬 맞바꾸기"
#: editor/plugins/tile_map_editor_plugin.cpp
msgid "Disable Autotile"
-msgstr "ì˜¤í† íƒ€ì¼ ë„기"
+msgstr "ì˜¤í† íƒ€ì¼ ë¹„í™œì„±í™”"
#: editor/plugins/tile_map_editor_plugin.cpp
msgid "Enable Priority"
-msgstr "우선 순위 켜기"
+msgstr "우선 순위 활성화"
#: editor/plugins/tile_map_editor_plugin.cpp
msgid "Filter tiles"
@@ -9121,7 +9152,7 @@ msgstr "TileSetì— í…스처를 추가합니다."
#: editor/plugins/tile_set_editor_plugin.cpp
msgid "Remove selected Texture from TileSet."
-msgstr "ì„ íƒëœ í…스처를 TileSetì—서 삭제합니다."
+msgstr "ì„ íƒëœ í…스처를 TileSetì—서 제거합니다."
#: editor/plugins/tile_set_editor_plugin.cpp
msgid "Create from Scene"
@@ -9165,7 +9196,7 @@ msgstr "ì˜ì—­"
#: editor/plugins/tile_set_editor_plugin.cpp
msgid "Collision"
-msgstr "ì¶©ëŒ"
+msgstr "콜리전"
#: editor/plugins/tile_set_editor_plugin.cpp
msgid "Occlusion"
@@ -9197,7 +9228,7 @@ msgstr "ì˜ì—­ 모드"
#: editor/plugins/tile_set_editor_plugin.cpp
msgid "Collision Mode"
-msgstr "ì¶©ëŒ ëª¨ë“œ"
+msgstr "콜리전 모드"
#: editor/plugins/tile_set_editor_plugin.cpp
msgid "Occlusion Mode"
@@ -9257,11 +9288,11 @@ msgstr "ì„ íƒëœ 모양 ì‚­ì œ"
#: editor/plugins/tile_set_editor_plugin.cpp
msgid "Keep polygon inside region Rect."
-msgstr "사ê°í˜• ì˜ì—­ ë‚´ì— í´ë¦¬ê³¤ì„ 유지합니다."
+msgstr "사ê°í˜• ì˜ì—­ ì•ˆì— í´ë¦¬ê³¤ì„ 유지합니다."
#: editor/plugins/tile_set_editor_plugin.cpp
msgid "Enable snap and show grid (configurable via the Inspector)."
-msgstr "ìŠ¤ëƒ…ì„ ì¼œê³  격ìžë¥¼ ë³´ì´ê¸° (ì¸ìŠ¤íŽ™í„°ë¥¼ 통해 설정함)."
+msgstr "ìŠ¤ëƒ…ì„ í™œì„±í™”í•˜ê³  격ìžë¥¼ ë³´ì—¬ì¤ë‹ˆë‹¤ (ì¸ìŠ¤íŽ™í„°ë¥¼ 통해 구성함)."
#: editor/plugins/tile_set_editor_plugin.cpp
msgid "Display Tile Names (Hold Alt Key)"
@@ -9276,23 +9307,24 @@ msgstr ""
#: editor/plugins/tile_set_editor_plugin.cpp
msgid "Remove selected texture? This will remove all tiles which use it."
msgstr ""
-"ì„ íƒí•œ í…스처를 삭제할까요? ì´ í…스처를 사용하는 모든 타ì¼ë„ ì‚­ì œë  ê²ƒìž…ë‹ˆë‹¤."
+"ì„ íƒí•œ í…스처를 제거하시겠습니까? ì´ í…스처를 사용하는 모든 타ì¼ë„ 제거ë©ë‹ˆ"
+"다."
#: editor/plugins/tile_set_editor_plugin.cpp
msgid "You haven't selected a texture to remove."
-msgstr "삭제할 í…스처를 ì„ íƒí•˜ì§€ 않았습니다."
+msgstr "제거할 í…스처를 ì„ íƒí•˜ì§€ 않았습니다."
#: editor/plugins/tile_set_editor_plugin.cpp
msgid "Create from scene? This will overwrite all current tiles."
-msgstr "씬ì—서 만들까요? 모든 현재 파ì¼ì„ ë®ì–´ 씌울 것입니다."
+msgstr "씬ì—서 만드시겠습니까? 모든 현재 파ì¼ì„ ë®ì–´ 씌울 것입니다."
#: editor/plugins/tile_set_editor_plugin.cpp
msgid "Merge from scene?"
-msgstr "씬ì—서 병합할까요?"
+msgstr "씬ì—서 병합하시겠습니까?"
#: editor/plugins/tile_set_editor_plugin.cpp
msgid "Remove Texture"
-msgstr "í…스처 ì‚­ì œ"
+msgstr "í…스처 제거"
#: editor/plugins/tile_set_editor_plugin.cpp
msgid "%s file(s) were not added because was already on the list."
@@ -9378,7 +9410,7 @@ msgstr "íƒ€ì¼ ë¹„íŠ¸ ë§ˆìŠ¤í¬ íŽ¸ì§‘"
#: editor/plugins/tile_set_editor_plugin.cpp
msgid "Edit Collision Polygon"
-msgstr "ì¶©ëŒ í´ë¦¬ê³¤ 편집"
+msgstr "콜리전 í´ë¦¬ê³¤ 편집"
#: editor/plugins/tile_set_editor_plugin.cpp
msgid "Edit Occlusion Polygon"
@@ -9402,23 +9434,23 @@ msgstr "오목한 í´ë¦¬ê³¤ 만들기"
#: editor/plugins/tile_set_editor_plugin.cpp
msgid "Make Polygon Convex"
-msgstr "ë³¼ë¡í•œ í´ë¦¬ê³¤ 만들기"
+msgstr "í´ë¦¬ê³¤ì„ ë³¼ë¡í•˜ê²Œ 만들기"
#: editor/plugins/tile_set_editor_plugin.cpp
msgid "Remove Tile"
-msgstr "íƒ€ì¼ ì‚­ì œ"
+msgstr "íƒ€ì¼ ì œê±°"
#: editor/plugins/tile_set_editor_plugin.cpp
msgid "Remove Collision Polygon"
-msgstr "ì¶©ëŒ í´ë¦¬ê³¤ ì‚­ì œ"
+msgstr "콜리전 í´ë¦¬ê³¤ 제거"
#: editor/plugins/tile_set_editor_plugin.cpp
msgid "Remove Occlusion Polygon"
-msgstr "ì–´í´ë£¨ì „ í´ë¦¬ê³¤ ì‚­ì œ"
+msgstr "ì–´í´ë£¨ì „ í´ë¦¬ê³¤ 제거"
#: editor/plugins/tile_set_editor_plugin.cpp
msgid "Remove Navigation Polygon"
-msgstr "내비게ì´ì…˜ í´ë¦¬ê³¤ ì‚­ì œ"
+msgstr "내비게ì´ì…˜ í´ë¦¬ê³¤ 제거"
#: editor/plugins/tile_set_editor_plugin.cpp
msgid "Edit Tile Priority"
@@ -9438,7 +9470,7 @@ msgstr "오목하게 만들기"
#: editor/plugins/tile_set_editor_plugin.cpp
msgid "Create Collision Polygon"
-msgstr "내비게ì´ì…˜ ì¶©ëŒ í´ë¦¬ê³¤ 만들기"
+msgstr "콜리전 í´ë¦¬ê³¤ 만들기"
#: editor/plugins/tile_set_editor_plugin.cpp
msgid "Create Occlusion Polygon"
@@ -9558,11 +9590,11 @@ msgstr "샘플러"
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Add input port"
-msgstr "ìž…ë ¥ í¬íЏ 추가하기"
+msgstr "ìž…ë ¥ í¬íЏ 추가"
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Add output port"
-msgstr "출력 í¬íЏ 추가하기"
+msgstr "출력 í¬íЏ 추가"
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Change input port type"
@@ -9582,11 +9614,11 @@ msgstr "출력 í¬íЏ ì´ë¦„ 바꾸기"
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Remove input port"
-msgstr "ìž…ë ¥ í¬íЏ 삭제하기"
+msgstr "ìž…ë ¥ í¬íЏ 제거"
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Remove output port"
-msgstr "출력 í¬íЏ 삭제하기"
+msgstr "출력 í¬íЏ 제거"
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Set expression"
@@ -9594,7 +9626,7 @@ msgstr "í‘œí˜„ì‹ ì„¤ì •"
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Resize VisualShader node"
-msgstr "비주얼 ì…°ì´ë” 노드 í¬ê¸° ì¡°ì •"
+msgstr "비주얼셰ì´ë” 노드 í¬ê¸° ì¡°ì •"
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Set Uniform Name"
@@ -9602,7 +9634,7 @@ msgstr "Uniform ì´ë¦„ 설정"
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Set Input Default Port"
-msgstr "ìž…ë ¥ 기본 í¬íЏ 설정"
+msgstr "ìž…ë ¥ ë””í´íЏ í¬íЏ 설정"
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Add Node to Visual Shader"
@@ -9647,7 +9679,7 @@ msgstr "조명"
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Show resulted shader code."
-msgstr "ê²°ê³¼ ì…°ì´ë” 코드 ë³´ì´ê¸°."
+msgstr "ê²°ê³¼ ì…°ì´ë” 코드를 ë³´ì—¬ì¤ë‹ˆë‹¤."
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Create Shader Node"
@@ -10308,7 +10340,7 @@ msgid ""
"light function, do not use it to write the function declarations inside."
msgstr ""
"맞춤 ìž…ë ¥ ë° ì¶œë ¥ í¬íŠ¸ë¡œ ì´ë£¨ì–´ì§„, 맞춤 Godot ì…°ì´ë” 언어 명령문. ê¼­ì§“ì /프래"
-"그먼트/조명 í•¨ìˆ˜ì— ì§ì ‘ 코드를 넣는 것ì´ë¯€ë¡œ 코드 ë‚´ì— í•¨ìˆ˜ ì„ ì–¸ì„ ìž‘ì„±í•˜ëŠ” "
+"그먼트/조명 í•¨ìˆ˜ì— ì§ì ‘ 코드를 넣는 것ì´ë¯€ë¡œ 코드 ì•ˆì— í•¨ìˆ˜ ì„ ì–¸ì„ ìž‘ì„±í•˜ëŠ” "
"ìš©ë„로 ì“°ì§€ 마세요."
#: editor/plugins/visual_shader_editor_plugin.cpp
@@ -10326,9 +10358,9 @@ msgid ""
"it later in the Expressions. You can also declare varyings, uniforms and "
"constants."
msgstr ""
-"ê²°ê³¼ ì…°ì´ë” ìœ„ì— ë°°ì¹˜ëœ, 맞춤 Godot ì…°ì´ë” 언어 표현ì‹. 다양한 함수 ì„ ì–¸ì„ ë†“"
-"ì€ ë’¤ ë‚˜ì¤‘ì— í‘œí˜„ì‹ì—서 호출할 수 있습니다. Varying, Uniform, ìƒìˆ˜ë„ ì •ì˜í•  "
-"수 있습니다."
+"ê²°ê³¼ ì…°ì´ë” ìœ„ì— ë°°ì¹˜ëœ, 맞춤 Godot ì…°ì´ë” 언어 표현ì‹. 다양한 함수 ì„ ì–¸ì„ ì•ˆ"
+"ì— ë†“ì€ ë’¤ ë‚˜ì¤‘ì— í‘œí˜„ì‹ì—서 호출할 수 있습니다. Varying, Uniform, ìƒìˆ˜ë„ ì„ "
+"언할 수 있습니다."
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "A reference to an existing uniform."
@@ -10382,7 +10414,7 @@ msgstr "(프래그먼트/조명 모드만 가능) (스칼ë¼) 'x'와 'y'ì˜ ì ˆë
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "VisualShader"
-msgstr "비주얼 ì…°ì´ë”"
+msgstr "비주얼셰ì´ë”"
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Edit Visual Property:"
@@ -10398,7 +10430,7 @@ msgstr "실행가능"
#: editor/project_export.cpp
msgid "Delete preset '%s'?"
-msgstr "'%s' í”„ë¦¬ì…‹ì„ ì‚­ì œí• ê¹Œìš”?"
+msgstr "'%s' í”„ë¦¬ì…‹ì„ ì‚­ì œí•˜ì‹œê² ìŠµë‹ˆê¹Œ?"
#: editor/project_export.cpp
msgid ""
@@ -10510,9 +10542,8 @@ msgid "Script"
msgstr "스í¬ë¦½íЏ"
#: editor/project_export.cpp
-#, fuzzy
msgid "GDScript Export Mode:"
-msgstr "스í¬ë¦½íЏ 내보내기 모드:"
+msgstr "GDScript 내보내기 모드:"
#: editor/project_export.cpp
msgid "Text"
@@ -10520,21 +10551,19 @@ msgstr "í…스트"
#: editor/project_export.cpp
msgid "Compiled Bytecode (Faster Loading)"
-msgstr ""
+msgstr "컴파ì¼ëœ ë°”ì´íŠ¸ì½”ë“œ (ë” ë¹ ë¥¸ 불러오기)"
#: editor/project_export.cpp
msgid "Encrypted (Provide Key Below)"
msgstr "암호화 (ì•„ëž˜ì— í‚¤ê°€ 필요합니다)"
#: editor/project_export.cpp
-#, fuzzy
msgid "Invalid Encryption Key (must be 64 hexadecimal characters long)"
-msgstr "ìž˜ëª»ëœ ì•”í˜¸í™” 키 (길ì´ê°€ 64ìžì´ì–´ì•¼ 합니다)"
+msgstr "ìž˜ëª»ëœ ì•”í˜¸í™” 키 (길ì´ê°€ 16진수 형ì‹ì˜ 64ìžì´ì–´ì•¼ 합니다)"
#: editor/project_export.cpp
-#, fuzzy
msgid "GDScript Encryption Key (256-bits as hexadecimal):"
-msgstr "스í¬ë¦½íЏ 암호화 키 (256-비트를 hex 형ì‹ìœ¼ë¡œ):"
+msgstr "GDScript 암호화 키 (256-비트를 16진수 형ì‹ìœ¼ë¡œ):"
#: editor/project_export.cpp
msgid "Export PCK/Zip"
@@ -10562,7 +10591,7 @@ msgstr "Godot 게임 팩"
#: editor/project_export.cpp
msgid "Export templates for this platform are missing:"
-msgstr "ì´ í”Œëž«í¼ì— 대한 내보내기 í…œí”Œë¦¿ì´ ì—†ìŒ:"
+msgstr "ì´ í”Œëž«í¼ì— 대한 내보내기 í…œí”Œë¦¿ì´ ëˆ„ë½ë¨:"
#: editor/project_export.cpp
msgid "Manage Export Templates"
@@ -10608,9 +10637,8 @@ msgid "Imported Project"
msgstr "가져온 프로ì íЏ"
#: editor/project_manager.cpp
-#, fuzzy
msgid "Invalid project name."
-msgstr "ìž˜ëª»ëœ í”„ë¡œì íЏ ì´ë¦„."
+msgstr "ìž˜ëª»ëœ í”„ë¡œì íЏ ì´ë¦„입니다."
#: editor/project_manager.cpp
msgid "Couldn't create folder."
@@ -10750,7 +10778,7 @@ msgstr "누ë½ëœ 프로ì íЏ"
#: editor/project_manager.cpp
msgid "Error: Project is missing on the filesystem."
-msgstr "오류: 프로ì íŠ¸ê°€ íŒŒì¼ ì‹œìŠ¤í…œì—서 누ë½ë˜ì—ˆìŠµë‹ˆë‹¤."
+msgstr "오류: 프로ì íŠ¸ê°€ 파ì¼ì‹œìŠ¤í…œì—서 누ë½ë˜ì—ˆìŠµë‹ˆë‹¤."
#: editor/project_manager.cpp
msgid "Can't open project at '%s'."
@@ -10830,34 +10858,34 @@ msgstr "한 ë²ˆì— %dê°œì˜ í”„ë¡œì íŠ¸ë¥¼ 실행할 건가요?"
#: editor/project_manager.cpp
msgid "Remove %d projects from the list?"
-msgstr "목ë¡ì—서 프로ì íЏ %d개를 삭제하시겠습니까?"
+msgstr "목ë¡ì—서 프로ì íЏ %d개를 제거하시겠습니까?"
#: editor/project_manager.cpp
msgid "Remove this project from the list?"
-msgstr "목ë¡ì—서 ì´ í”„ë¡œì íŠ¸ë¥¼ 삭제하시겠습니까?"
+msgstr "목ë¡ì—서 ì´ í”„ë¡œì íŠ¸ë¥¼ 제거하시겠습니까?"
#: editor/project_manager.cpp
msgid ""
"Remove all missing projects from the list?\n"
"The project folders' contents won't be modified."
msgstr ""
-"모든 누ë½ëœ 프로ì íŠ¸ë¥¼ 삭제할까요?\n"
-"프로ì íЏ í´ë”ì˜ ë‚´ìš©ì€ ìˆ˜ì •ë˜ì§€ 않습니다."
+"모든 누ë½ëœ 프로ì íŠ¸ë¥¼ 목ë¡ì—서 제거하시겠습니까?\n"
+"프로ì íЏ í´ë”ì˜ ì½˜í…츠는 수정ë˜ì§€ 않습니다."
#: editor/project_manager.cpp
msgid ""
"Language changed.\n"
"The interface will update after restarting the editor or project manager."
msgstr ""
-"언어가 바뀌었.\n"
-"ì¸í„°íŽ˜ì´ìŠ¤ëŠ” 편집기나 프로ì íЏ 매니저를 다시 켜면 ì ìš©ë©ë‹ˆë‹¤."
+"언어가 바뀌었습니다.\n"
+"ì¸í„°íŽ˜ì´ìŠ¤ëŠ” ì—디터나 프로ì íЏ 매니저를 다시 시작하고 나서 갱신ë©ë‹ˆë‹¤."
#: editor/project_manager.cpp
msgid ""
"Are you sure to scan %s folders for existing Godot projects?\n"
"This could take a while."
msgstr ""
-"Godot 프로ì íŠ¸ë¥¼ 확ì¸í•˜ê¸° 위해 %s í´ë”를 스캔할까요?\n"
+"Godot 프로ì íŠ¸ë¥¼ 확ì¸í•˜ê¸° 위해 %s í´ë”를 스캔하시겠습니까?\n"
"ì‹œê°„ì´ ê±¸ë¦´ 수 있습니다."
#. TRANSLATORS: This refers to the application where users manage their Godot projects.
@@ -10866,9 +10894,8 @@ msgid "Project Manager"
msgstr "프로ì íЏ 매니저"
#: editor/project_manager.cpp
-#, fuzzy
msgid "Local Projects"
-msgstr "프로ì íЏ"
+msgstr "로컬 프로ì íЏ"
#: editor/project_manager.cpp
msgid "Loading, please wait..."
@@ -10879,23 +10906,20 @@ msgid "Last Modified"
msgstr "마지막으로 수정ë¨"
#: editor/project_manager.cpp
-#, fuzzy
msgid "Edit Project"
-msgstr "프로ì íЏ 내보내기"
+msgstr "프로ì íЏ 편집"
#: editor/project_manager.cpp
-#, fuzzy
msgid "Run Project"
-msgstr "프로ì íЏ ì´ë¦„ 바꾸기"
+msgstr "프로ì íЏ 실행"
#: editor/project_manager.cpp
msgid "Scan"
msgstr "스캔"
#: editor/project_manager.cpp
-#, fuzzy
msgid "Scan Projects"
-msgstr "프로ì íЏ"
+msgstr "프로ì íЏ 스캔"
#: editor/project_manager.cpp
msgid "Select a Folder to Scan"
@@ -10906,27 +10930,24 @@ msgid "New Project"
msgstr "새 프로ì íЏ"
#: editor/project_manager.cpp
-#, fuzzy
msgid "Import Project"
-msgstr "가져온 프로ì íЏ"
+msgstr "프로ì íЏ 가져오기"
#: editor/project_manager.cpp
-#, fuzzy
msgid "Remove Project"
-msgstr "프로ì íЏ ì´ë¦„ 바꾸기"
+msgstr "프로ì íЏ 제거"
#: editor/project_manager.cpp
msgid "Remove Missing"
-msgstr "누ë½ëœ 부분 ì‚­ì œ"
+msgstr "누ë½ëœ 부분 제거"
#: editor/project_manager.cpp
msgid "About"
msgstr "ì •ë³´"
#: editor/project_manager.cpp
-#, fuzzy
msgid "Asset Library Projects"
-msgstr "ì• ì…‹ ë¼ì´ë¸ŒëŸ¬ë¦¬"
+msgstr "ì• ì…‹ ë¼ì´ë¸ŒëŸ¬ë¦¬ 프로ì íЏ"
#: editor/project_manager.cpp
msgid "Restart Now"
@@ -10934,11 +10955,11 @@ msgstr "지금 다시 시작"
#: editor/project_manager.cpp
msgid "Remove All"
-msgstr "ëª¨ë‘ ì‚­ì œ"
+msgstr "ëª¨ë‘ ì œê±°"
#: editor/project_manager.cpp
msgid "Also delete project contents (no undo!)"
-msgstr ""
+msgstr "프로ì íЏ 콘í…ì¸ ë„ ì‚­ì œ (ë˜ëŒë¦´ 수 없습니다!)"
#: editor/project_manager.cpp
msgid "Can't run project"
@@ -10953,20 +10974,18 @@ msgstr ""
"ì• ì…‹ ë¼ì´ë¸ŒëŸ¬ë¦¬ì—서 ê³µì‹ ì˜ˆì œ 프로ì íŠ¸ë¥¼ 찾아볼까요?"
#: editor/project_manager.cpp
-#, fuzzy
msgid "Filter projects"
-msgstr "í•„í„° ì†ì„±"
+msgstr "프로ì íЏ í•„í„°"
#: editor/project_manager.cpp
-#, fuzzy
msgid ""
"This field filters projects by name and last path component.\n"
"To filter projects by name and full path, the query must contain at least "
"one `/` character."
msgstr ""
-"ì´ ê²€ìƒ‰ì°½ì€ í”„ë¡œì íŠ¸ë¥¼ ì´ë¦„ê³¼ ê²½ë¡œì˜ ë§ˆì§€ë§‰ 부분으로 거릅니다.\n"
-"프로ì íŠ¸ë¥¼ ì „ì²´ 경로를 기준으로 걸러내려면 ê²€ìƒ‰ì–´ì— `/` ê°€ 한 ê¸€ìž ì´ìƒ í¬í•¨"
-"시키세요."
+"ì´ í•„ë“œëŠ” 프로ì íŠ¸ë¥¼ ì´ë¦„ê³¼ ê²½ë¡œì˜ ë§ˆì§€ë§‰ 부분으로 거릅니다.\n"
+"프로ì íŠ¸ë¥¼ ì´ë¦„ê³¼ ì „ì²´ 경로를 기준으로 걸러내려면, ê²€ìƒ‰ì–´ì— `/`를 한 ê¸€ìž ì´"
+"ìƒ í¬í•¨ì‹œì¼œì•¼ 합니다."
#: editor/project_settings_editor.cpp
msgid "Key "
@@ -10974,7 +10993,7 @@ msgstr "키 "
#: editor/project_settings_editor.cpp
msgid "Physical Key"
-msgstr ""
+msgstr "물리 키"
#: editor/project_settings_editor.cpp
msgid "Joy Button"
@@ -11022,7 +11041,7 @@ msgstr "기기"
#: editor/project_settings_editor.cpp
msgid " (Physical)"
-msgstr ""
+msgstr " (물리)"
#: editor/project_settings_editor.cpp editor/settings_config_dialog.cpp
msgid "Press a Key..."
@@ -11165,23 +11184,20 @@ msgid "Override for Feature"
msgstr "기능 재정ì˜"
#: editor/project_settings_editor.cpp
-#, fuzzy
msgid "Add %d Translations"
-msgstr "번역 추가"
+msgstr "번역 %d개 추가"
#: editor/project_settings_editor.cpp
msgid "Remove Translation"
-msgstr "번역 삭제"
+msgstr "번역 제거"
#: editor/project_settings_editor.cpp
-#, fuzzy
msgid "Translation Resource Remap: Add %d Path(s)"
-msgstr "리소스 리맵핑 추가"
+msgstr "리소스 리맵핑 번역: 경로 %d개 추가"
#: editor/project_settings_editor.cpp
-#, fuzzy
msgid "Translation Resource Remap: Add %d Remap(s)"
-msgstr "리소스 리맵핑 추가"
+msgstr "리소스 리맵핑 번역: 리매핑 %d개 추가"
#: editor/project_settings_editor.cpp
msgid "Change Resource Remap Language"
@@ -11189,11 +11205,11 @@ msgstr "리소스 리맵핑 언어 바꾸기"
#: editor/project_settings_editor.cpp
msgid "Remove Resource Remap"
-msgstr "리소스 리맵핑 삭제"
+msgstr "리소스 리맵핑 제거"
#: editor/project_settings_editor.cpp
msgid "Remove Resource Remap Option"
-msgstr "리소스 리맵핑 설정 삭제"
+msgstr "리소스 리맵핑 옵션 제거"
#: editor/project_settings_editor.cpp
msgid "Changed Locale Filter"
@@ -11213,11 +11229,11 @@ msgstr "ì¼ë°˜"
#: editor/project_settings_editor.cpp
msgid "Override For..."
-msgstr "재정ì˜..."
+msgstr "ìž¬ì •ì˜ ëŒ€ìƒ..."
#: editor/project_settings_editor.cpp editor/settings_config_dialog.cpp
msgid "The editor must be restarted for changes to take effect."
-msgstr "변경 ì‚¬í•­ì„ ì ìš©í•˜ë ¤ë©´ 편집기를 다시 켜야 합니다."
+msgstr "변경 ì‚¬í•­ì„ ë°˜ì˜í•˜ë ¤ë©´ ì—디터를 다시 시작해야 합니다."
#: editor/project_settings_editor.cpp
msgid "Input Map"
@@ -11277,11 +11293,11 @@ msgstr "ë¡œì¼€ì¼ í•„í„°"
#: editor/project_settings_editor.cpp
msgid "Show All Locales"
-msgstr "모든 ë¡œì¼€ì¼ ë³´ê¸°"
+msgstr "모든 ë¡œì¼€ì¼ ë³´ì´ê¸°"
#: editor/project_settings_editor.cpp
msgid "Show Selected Locales Only"
-msgstr "ì„ íƒí•œ 로케ì¼ë§Œ 보기"
+msgstr "ì„ íƒí•œ 로케ì¼ë§Œ ë³´ì´ê¸°"
#: editor/project_settings_editor.cpp
msgid "Filter mode:"
@@ -11301,7 +11317,7 @@ msgstr "플러그ì¸(Plugin)"
#: editor/project_settings_editor.cpp
msgid "Import Defaults"
-msgstr "기본값 가져오기"
+msgstr "ë””í´íЏ 가져오기"
#: editor/property_editor.cpp
msgid "Preset..."
@@ -11413,7 +11429,7 @@ msgid ""
"Compare counter options."
msgstr ""
"순차 정수 카운터.\n"
-"ì¹´ìš´í„° 옵션과 비êµí•©ë‹ˆë‹¤."
+"ì¹´ìš´í„° ì˜µì…˜ì„ ë¹„êµí•©ë‹ˆë‹¤."
#: editor/rename_dialog.cpp
msgid "Per-level Counter"
@@ -11421,7 +11437,7 @@ msgstr "단계별 카운터"
#: editor/rename_dialog.cpp
msgid "If set, the counter restarts for each group of child nodes."
-msgstr "설정하면 ê° ê·¸ë£¹ì˜ ìžì‹ ë…¸ë“œì˜ ì¹´ìš´í„°ë¥¼ 다시 시작합니다."
+msgstr "설정하면 ê° ê·¸ë£¹ì˜ ìžì† ë…¸ë“œì˜ ì¹´ìš´í„°ë¥¼ 다시 시작합니다."
#: editor/rename_dialog.cpp
msgid "Initial value for the counter"
@@ -11551,7 +11567,7 @@ msgstr "가지 씬으로 êµì²´"
#: editor/scene_tree_dock.cpp
msgid "Instance Child Scene"
-msgstr "ìžì‹ 씬 ì¸ìŠ¤í„´ìŠ¤í™”"
+msgstr "ìžì† 씬 ì¸ìŠ¤í„´ìŠ¤í™”"
#: editor/scene_tree_dock.cpp
msgid "Can't paste root node into the same scene."
@@ -11601,7 +11617,7 @@ msgstr "노드를 루트로 만들기"
#: editor/scene_tree_dock.cpp
msgid "Delete %d nodes and any children?"
-msgstr "%d ê°œì˜ ë…¸ë“œì™€ 모든 ìžì‹ 노드를 삭제할까요?"
+msgstr "%d ê°œì˜ ë…¸ë“œì™€ 모든 ìžì† 노드를 삭제할까요?"
#: editor/scene_tree_dock.cpp
msgid "Delete %d nodes?"
@@ -11613,7 +11629,7 @@ msgstr "루트 노드 \"%s\"ì„(를) 삭제할까요?"
#: editor/scene_tree_dock.cpp
msgid "Delete node \"%s\" and its children?"
-msgstr "노드 \"%s\"와(ê³¼) ìžì‹ì„ 삭제할까요?"
+msgstr "노드 \"%s\"와(ê³¼) ìžì†ì„ 삭제할까요?"
#: editor/scene_tree_dock.cpp
msgid "Delete node \"%s\"?"
@@ -11622,13 +11638,15 @@ msgstr "노드 \"%s\"ì„(를) 삭제할까요?"
#: editor/scene_tree_dock.cpp
msgid ""
"Saving the branch as a scene requires having a scene open in the editor."
-msgstr ""
+msgstr "가지를 씬으로 저장하려면 ì—디터ì—서 ì”¬ì„ ì—´ì–´ì•¼ 합니다."
#: editor/scene_tree_dock.cpp
msgid ""
"Saving the branch as a scene requires selecting only one node, but you have "
"selected %d nodes."
msgstr ""
+"가지를 씬으로 저장하려면 노드 한 개만 ì„ íƒí•´ì•¼ 하지만, 노드 %d개가 ì„ íƒë˜ì–´ "
+"있습니다."
#: editor/scene_tree_dock.cpp
msgid ""
@@ -11637,6 +11655,10 @@ msgid ""
"FileSystem dock context menu\n"
"or create an inherited scene using Scene > New Inherited Scene... instead."
msgstr ""
+"루트 노드 가지를 ì¸ìŠ¤í„´ìŠ¤ëœ ì”¬ìœ¼ë¡œ 저장할 수 없습니다.\n"
+"현재 ì”¬ì˜ íŽ¸ì§‘ 가능한 ë³µì‚¬ë³¸ì„ ë§Œë“œë ¤ë©´, 파ì¼ì‹œìŠ¤í…œ ë… ì»¨í…스트 메뉴를 사용하"
+"여 복제하거나\n"
+"ìƒì† ì”¬ì„ ì”¬ > 새 ìƒì† 씬...ì„ ëŒ€ì‹  사용하여 만드세요."
#: editor/scene_tree_dock.cpp
msgid ""
@@ -11644,6 +11666,9 @@ msgid ""
"To create a variation of a scene, you can make an inherited scene based on "
"the instanced scene using Scene > New Inherited Scene... instead."
msgstr ""
+"ì´ë¯¸ ì¸ìŠ¤í„´ìŠ¤ëœ ì”¬ì˜ ê°€ì§€ë¥¼ 저장할 수 없습니다.\n"
+"ì”¬ì˜ ë°”ë¦¬ì—ì´ì…˜ì„ 만드려면, ì¸ìŠ¤í„´ìŠ¤ëœ ì”¬ì„ ë°”íƒ•ìœ¼ë¡œ ìƒì† ì”¬ì„ ì”¬ > 새 ìƒì† "
+"씬...ì„ ëŒ€ì‹  사용하여 만들 수 있습니다."
#: editor/scene_tree_dock.cpp
msgid "Save New Scene As..."
@@ -11654,15 +11679,15 @@ msgid ""
"Disabling \"editable_instance\" will cause all properties of the node to be "
"reverted to their default."
msgstr ""
-"\"editable_instance\"를 ë„게 ë˜ë©´ ë…¸ë“œì˜ ëª¨ë“  ì†ì„±ì´ 기본 값으로 ë³µì›ë©ë‹ˆë‹¤."
+"\"editable_instance\"ê°€ 비활성화ë˜ë©´ ë…¸ë“œì˜ ëª¨ë“  ì†ì„±ì´ ë””í´íŠ¸ë¡œ ë³µì›ë©ë‹ˆë‹¤."
#: editor/scene_tree_dock.cpp
msgid ""
"Enabling \"Load As Placeholder\" will disable \"Editable Children\" and "
"cause all properties of the node to be reverted to their default."
msgstr ""
-"\"ìžë¦¬ 표시ìžë¡œ 불러오기\"를 켜면 \"편집할 수 있는 ìžì‹\" ì„¤ì •ì´ êº¼ì§€ê³ , 그러"
-"ë©´ ê·¸ ë…¸ë“œì˜ ëª¨ë“  ì†ì„±ì´ 기본값으로 ë³µì›ë©ë‹ˆë‹¤."
+"\"ìžë¦¬ 표시ìžë¡œ 불러오기\"를 활성화하면 \"편집할 수 있는 ìžì†\" ì„¤ì •ì´ ë¹„í™œì„±"
+"í™”ë˜ê³ , 그러면 ê·¸ ë…¸ë“œì˜ ëª¨ë“  ì†ì„±ì´ ë””í´íŠ¸ë¡œ ë³µì›ë©ë‹ˆë‹¤."
#: editor/scene_tree_dock.cpp
msgid "Make Local"
@@ -11714,7 +11739,7 @@ msgstr "노드 잘ë¼ë‚´ê¸°"
#: editor/scene_tree_dock.cpp
msgid "Remove Node(s)"
-msgstr "노드 삭제"
+msgstr "노드 제거"
#: editor/scene_tree_dock.cpp
msgid "Change type of node(s)"
@@ -11745,7 +11770,7 @@ msgstr "ìƒì† 지우기"
#: editor/scene_tree_dock.cpp
msgid "Editable Children"
-msgstr "편집할 수 있는 ìžì‹"
+msgstr "편집할 수 있는 ìžì†"
#: editor/scene_tree_dock.cpp
msgid "Load As Placeholder"
@@ -11758,11 +11783,11 @@ msgid ""
"disabled."
msgstr ""
"스í¬ë¦½íŠ¸ë¥¼ ë¶™ì¼ ìˆ˜ 없습니다: 언어가 í•˜ë‚˜ë„ ë“±ë¡ë˜ì§€ 않았습니다.\n"
-"ì—디터가 모든 언어를 비활성화한 채로 빌드ë˜ì–´ì„œ 그럴 ê°€ëŠ¥ì„±ì´ ë†’ìŠµë‹ˆë‹¤."
+"ì—디터가 모든 언어 ëª¨ë“ˆì„ ë¹„í™œì„±í™”í•œ 채로 빌드ë˜ì–´ì„œ 그럴 ê°€ëŠ¥ì„±ì´ ë†’ìŠµë‹ˆë‹¤."
#: editor/scene_tree_dock.cpp
msgid "Add Child Node"
-msgstr "ìžì‹ 노드 추가"
+msgstr "ìžì† 노드 추가"
#: editor/scene_tree_dock.cpp
msgid "Expand/Collapse All"
@@ -11898,7 +11923,7 @@ msgid ""
"Children are not selectable.\n"
"Click to make selectable."
msgstr ""
-"ìžì‹ì„ ì„ íƒí•  수 없습니다.\n"
+"ìžì†ì„ ì„ íƒí•  수 없습니다.\n"
"í´ë¦­í•˜ë©´ ì„ íƒí•  수 있습니다."
#: editor/scene_tree_editor.cpp
@@ -11971,7 +11996,7 @@ msgstr "'%s' 템플릿 불러오는 중 오류"
#: editor/script_create_dialog.cpp
msgid "Error - Could not create script in filesystem."
-msgstr "오류 - íŒŒì¼ ì‹œìŠ¤í…œì— ìŠ¤í¬ë¦½íŠ¸ë¥¼ 만들 수 없습니다."
+msgstr "오류 - 파ì¼ì‹œìŠ¤í…œì— ìŠ¤í¬ë¦½íŠ¸ë¥¼ 만들 수 없습니다."
#: editor/script_create_dialog.cpp
msgid "Error loading script from %s"
@@ -12038,7 +12063,7 @@ msgid ""
"Note: Built-in scripts have some limitations and can't be edited using an "
"external editor."
msgstr ""
-"참고: 내장 스í¬ë¦½íЏì—는 ì¼ë¶€ 제한 ì‚¬í•­ì´ ìžˆìœ¼ë©° 외부 편집기를 사용하여 편집"
+"참고: 내장 스í¬ë¦½íЏì—는 ì¼ë¶€ 제한 ì‚¬í•­ì´ ìžˆìœ¼ë©° 외부 ì—디터를 사용하여 편집"
"할 수 없습니다."
#: editor/script_create_dialog.cpp
@@ -12046,6 +12071,8 @@ msgid ""
"Warning: Having the script name be the same as a built-in type is usually "
"not desired."
msgstr ""
+"경고: 스í¬ë¦½íЏ ì´ë¦„ì„ ë‚´ìž¥ 유형과 같게 정하는 ì ì€ ì¼ë°˜ì ìœ¼ë¡œ 바람ì§í•˜ì§€ 않습"
+"니다."
#: editor/script_create_dialog.cpp
msgid "Class Name:"
@@ -12109,7 +12136,7 @@ msgstr "오류"
#: editor/script_editor_debugger.cpp
msgid "Child process connected."
-msgstr "ìžì‹ 프로세스 ì—°ê²°ë¨."
+msgstr "ìžì† 프로세스 ì—°ê²°ë¨."
#: editor/script_editor_debugger.cpp
msgid "Copy Error"
@@ -12117,7 +12144,7 @@ msgstr "복사 오류"
#: editor/script_editor_debugger.cpp
msgid "Open C++ Source on GitHub"
-msgstr ""
+msgstr "GitHubì—서 C++ 소스 열기"
#: editor/script_editor_debugger.cpp
msgid "Video RAM"
@@ -12229,7 +12256,7 @@ msgstr "단축키 바꾸기"
#: editor/settings_config_dialog.cpp
msgid "Editor Settings"
-msgstr "편집기 설정"
+msgstr "ì—디터 설정"
#: editor/settings_config_dialog.cpp
msgid "Shortcuts"
@@ -12296,14 +12323,22 @@ msgid "Change Ray Shape Length"
msgstr "ê´‘ì„  모양 ê¸¸ì´ ë°”ê¾¸ê¸°"
#: editor/spatial_editor_gizmos.cpp
-#, fuzzy
msgid "Set Room Point Position"
-msgstr "곡선 ì  ìœ„ì¹˜ 설정"
+msgstr "룸 ì  ìœ„ì¹˜ 설정"
#: editor/spatial_editor_gizmos.cpp
-#, fuzzy
msgid "Set Portal Point Position"
-msgstr "곡선 ì  ìœ„ì¹˜ 설정"
+msgstr "í¬í„¸ ì  ìœ„ì¹˜ 설정"
+
+#: editor/spatial_editor_gizmos.cpp
+#, fuzzy
+msgid "Set Occluder Sphere Radius"
+msgstr "ìº¡ìŠ ëª¨ì–‘ 반지름 바꾸기"
+
+#: editor/spatial_editor_gizmos.cpp
+#, fuzzy
+msgid "Set Occluder Sphere Position"
+msgstr "ê³¡ì„ ì˜ ì¸ ìœ„ì¹˜ 설정"
#: modules/csg/csg_gizmos.cpp
msgid "Change Cylinder Radius"
@@ -12331,7 +12366,7 @@ msgstr "ì´ í•­ëª©ì˜ ë™ì  ë¼ì´ë¸ŒëŸ¬ë¦¬ì˜ ì¢…ì† ê´€ê³„ë¥¼ ì„ íƒ"
#: modules/gdnative/gdnative_library_editor_plugin.cpp
msgid "Remove current entry"
-msgstr "현재 엔트리 삭제"
+msgstr "현재 엔트리 제거"
#: modules/gdnative/gdnative_library_editor_plugin.cpp
msgid "Double click to create a new entry"
@@ -12359,11 +12394,11 @@ msgstr "GDNative ë¼ì´ë¸ŒëŸ¬ë¦¬"
#: modules/gdnative/gdnative_library_singleton_editor.cpp
msgid "Enabled GDNative Singleton"
-msgstr "켜진 GDNative 싱글톤"
+msgstr "í™œì„±í™”ëœ GDNative 싱글톤"
#: modules/gdnative/gdnative_library_singleton_editor.cpp
msgid "Disabled GDNative Singleton"
-msgstr "꺼진 GDNative 싱글톤"
+msgstr "ë¹„í™œì„±í™”ëœ GDNative 싱글톤"
#: modules/gdnative/gdnative_library_singleton_editor.cpp
msgid "Library"
@@ -12395,33 +12430,31 @@ msgstr "리소스 파ì¼ì— 기반하지 않ìŒ"
#: modules/gdscript/gdscript_functions.cpp
msgid "Invalid instance dictionary format (missing @path)"
-msgstr "ìž˜ëª»ëœ ì¸ìŠ¤í„´ìŠ¤ Dictionary í˜•ì‹ (@path ì—†ìŒ)"
+msgstr "ìž˜ëª»ëœ ì¸ìŠ¤í„´ìŠ¤ 딕셔너리 í˜•ì‹ (@path 누ë½ë¨)"
#: modules/gdscript/gdscript_functions.cpp
msgid "Invalid instance dictionary format (can't load script at @path)"
-msgstr "ìž˜ëª»ëœ ì¸ìŠ¤í„´ìŠ¤ Dictionary í˜•ì‹ (@path ì—서 스í¬ë¦½íŠ¸ë¥¼ 불러올 수 ì—†ìŒ)"
+msgstr "ìž˜ëª»ëœ ì¸ìŠ¤í„´ìŠ¤ 딕셔너리 í˜•ì‹ (@pathì—서 스í¬ë¦½íŠ¸ë¥¼ 불러올 수 ì—†ìŒ)"
#: modules/gdscript/gdscript_functions.cpp
msgid "Invalid instance dictionary format (invalid script at @path)"
-msgstr "ìž˜ëª»ëœ ì¸ìŠ¤í„´ìŠ¤ Dictionary í˜•ì‹ (@pathì˜ ìŠ¤í¬ë¦½íŠ¸ê°€ 올바르지 않ìŒ)"
+msgstr "ìž˜ëª»ëœ ì¸ìŠ¤í„´ìŠ¤ 딕셔너리 í˜•ì‹ (ìž˜ëª»ëœ @pathì˜ ìŠ¤í¬ë¦½íЏ)"
#: modules/gdscript/gdscript_functions.cpp
msgid "Invalid instance dictionary (invalid subclasses)"
-msgstr "ìž˜ëª»ëœ ì¸ìŠ¤í„´ìŠ¤ Dictionary (하위 í´ëž˜ìŠ¤ê°€ 올바르지 않ìŒ)"
+msgstr "ìž˜ëª»ëœ ì¸ìŠ¤í„´ìŠ¤ 딕셔너리 (ìž˜ëª»ëœ í•˜ìœ„ í´ëž˜ìФ)"
#: modules/gdscript/gdscript_functions.cpp
msgid "Object can't provide a length."
-msgstr "ê°ì²´ëŠ” 길ì´ë¥¼ 제공할 수 없습니다."
+msgstr "오브ì íŠ¸ëŠ” 길ì´ë¥¼ 제공할 수 없습니다."
#: modules/gltf/editor_scene_exporter_gltf_plugin.cpp
-#, fuzzy
msgid "Export Mesh GLTF2"
-msgstr "메시 ë¼ì´ë¸ŒëŸ¬ë¦¬ 내보내기"
+msgstr "메시 GLTF2 내보내기"
#: modules/gltf/editor_scene_exporter_gltf_plugin.cpp
-#, fuzzy
msgid "Export GLTF..."
-msgstr "내보내기..."
+msgstr "GLTF 내보내기..."
#: modules/gridmap/grid_map_editor_plugin.cpp
msgid "Next Plane"
@@ -12464,9 +12497,8 @@ msgid "GridMap Paint"
msgstr "그리드맵 칠하기"
#: modules/gridmap/grid_map_editor_plugin.cpp
-#, fuzzy
msgid "GridMap Selection"
-msgstr "그리드맵 ì„ íƒ í•­ëª© 채우기"
+msgstr "그리드맵 ì„ íƒ"
#: modules/gridmap/grid_map_editor_plugin.cpp
msgid "Grid Map"
@@ -12478,7 +12510,7 @@ msgstr "스냅 뷰"
#: modules/gridmap/grid_map_editor_plugin.cpp
msgid "Clip Disabled"
-msgstr "í´ë¦½ 꺼ì§"
+msgstr "í´ë¦½ 비활성화"
#: modules/gridmap/grid_map_editor_plugin.cpp
msgid "Clip Above"
@@ -12588,6 +12620,11 @@ msgstr "구분하는 조명"
msgid "Class name can't be a reserved keyword"
msgstr "í´ëž˜ìФ ì´ë¦„ì€ í‚¤ì›Œë“œê°€ ë  ìˆ˜ 없습니다"
+#: modules/mono/csharp_script.cpp
+#, fuzzy
+msgid "Build Solution"
+msgstr "ì„ íƒ í•­ëª© 채우기"
+
#: modules/mono/mono_gd/gd_mono_utils.cpp
msgid "End of inner exception stack trace"
msgstr "ë‚´ë¶€ 예외 ìŠ¤íƒ ì¶”ì ì˜ ë"
@@ -12646,7 +12683,7 @@ msgstr "내비게ì´ì…˜ 메시 ìƒì„±ê¸° 설정:"
#: modules/recast/navigation_mesh_generator.cpp
msgid "Parsing Geometry..."
-msgstr "형태 ë¶„ì„ ì¤‘..."
+msgstr "지오메트리 ë¶„ì„ ì¤‘..."
#: modules/recast/navigation_mesh_generator.cpp
msgid "Done!"
@@ -12717,14 +12754,12 @@ msgid "Add Output Port"
msgstr "출력 í¬íЏ 추가하기"
#: modules/visual_script/visual_script_editor.cpp
-#, fuzzy
msgid "Change Port Type"
-msgstr "유형 바꾸기"
+msgstr "í¬íЏ 유형 바꾸기"
#: modules/visual_script/visual_script_editor.cpp
-#, fuzzy
msgid "Change Port Name"
-msgstr "ìž…ë ¥ í¬íЏ ì´ë¦„ 바꾸기"
+msgstr "í¬íЏ ì´ë¦„ 바꾸기"
#: modules/visual_script/visual_script_editor.cpp
msgid "Override an existing built-in function."
@@ -12788,11 +12823,11 @@ msgstr "ì‹œê·¸ë„ ì¶”ê°€"
#: modules/visual_script/visual_script_editor.cpp
msgid "Remove Input Port"
-msgstr "ìž…ë ¥ í¬íЏ 삭제하기"
+msgstr "ìž…ë ¥ í¬íЏ 제거"
#: modules/visual_script/visual_script_editor.cpp
msgid "Remove Output Port"
-msgstr "출력 í¬íЏ 삭제하기"
+msgstr "출력 í¬íЏ 제거"
#: modules/visual_script/visual_script_editor.cpp
msgid "Change Expression"
@@ -12800,11 +12835,11 @@ msgstr "í‘œí˜„ì‹ ë°”ê¾¸ê¸°"
#: modules/visual_script/visual_script_editor.cpp
msgid "Remove VisualScript Nodes"
-msgstr "비주얼 스í¬ë¦½íЏ 노드 ì‚­ì œ"
+msgstr "비주얼스í¬ë¦½íЏ 노드 제거"
#: modules/visual_script/visual_script_editor.cpp
msgid "Duplicate VisualScript Nodes"
-msgstr "비주얼 스í¬ë¦½íЏ 노드 복제"
+msgstr "비주얼스í¬ë¦½íЏ 노드 복제"
#: modules/visual_script/visual_script_editor.cpp
msgid "Hold %s to drop a Getter. Hold Shift to drop a generic signature."
@@ -12839,7 +12874,6 @@ msgid "Add Preload Node"
msgstr "Preload 노드 추가"
#: modules/visual_script/visual_script_editor.cpp
-#, fuzzy
msgid "Add Node(s)"
msgstr "노드 추가"
@@ -12874,7 +12908,7 @@ msgstr "노드 ì´ë™"
#: modules/visual_script/visual_script_editor.cpp
msgid "Remove VisualScript Node"
-msgstr "비주얼 스í¬ë¦½íЏ 노드 ì‚­ì œ"
+msgstr "비주얼스í¬ë¦½íЏ 노드 제거"
#: modules/visual_script/visual_script_editor.cpp
msgid "Connect Nodes"
@@ -12910,7 +12944,7 @@ msgstr "함수 노드를 복사할 수 없습니다."
#: modules/visual_script/visual_script_editor.cpp
msgid "Paste VisualScript Nodes"
-msgstr "비주얼 스í¬ë¦½íЏ 노드 붙여넣기"
+msgstr "비주얼스í¬ë¦½íЏ 노드 붙여넣기"
#: modules/visual_script/visual_script_editor.cpp
msgid "Can't create function with a function node."
@@ -12934,11 +12968,11 @@ msgstr "함수 만들기"
#: modules/visual_script/visual_script_editor.cpp
msgid "Remove Function"
-msgstr "함수 삭제"
+msgstr "함수 제거"
#: modules/visual_script/visual_script_editor.cpp
msgid "Remove Variable"
-msgstr "변수 삭제"
+msgstr "변수 제거"
#: modules/visual_script/visual_script_editor.cpp
msgid "Editing Variable:"
@@ -12946,7 +12980,7 @@ msgstr "변수 편집:"
#: modules/visual_script/visual_script_editor.cpp
msgid "Remove Signal"
-msgstr "ì‹œê·¸ë„ ì‚­ì œ"
+msgstr "ì‹œê·¸ë„ ì œê±°"
#: modules/visual_script/visual_script_editor.cpp
msgid "Editing Signal:"
@@ -13026,7 +13060,7 @@ msgstr "ìž˜ëª»ëœ ì¸ë±ìФ ì†ì„± ì´ë¦„."
#: modules/visual_script/visual_script_func_nodes.cpp
msgid "Base object is not a Node!"
-msgstr "기본 ê°ì²´ëŠ” 노드가 아닙니다!"
+msgstr "기본 오브ì íŠ¸ëŠ” 노드가 아닙니다!"
#: modules/visual_script/visual_script_func_nodes.cpp
msgid "Path does not lead Node!"
@@ -13066,75 +13100,73 @@ msgstr ""
#: modules/visual_script/visual_script_property_selector.cpp
msgid "Search VisualScript"
-msgstr "비주얼 스í¬ë¦½íЏ 검색"
+msgstr "비주얼스í¬ë¦½íЏ 검색"
#: modules/visual_script/visual_script_property_selector.cpp
msgid "Get %s"
msgstr "Get %s"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Package name is missing."
-msgstr "패키지 ì´ë¦„ì´ ì—†ìŠµë‹ˆë‹¤."
+msgstr "패키지 ì´ë¦„ì´ ëˆ„ë½ë˜ì–´ 있습니다."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Package segments must be of non-zero length."
msgstr "패키지 세그먼트는 길ì´ê°€ 0ì´ ì•„ë‹ˆì–´ì•¼ 합니다."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "The character '%s' is not allowed in Android application package names."
msgstr "ë¬¸ìž '%s'ì€(는) Android 애플리케ì´ì…˜ 패키지 ì´ë¦„으로 쓸 수 없습니다."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "A digit cannot be the first character in a package segment."
msgstr "숫ìžëŠ” 패키지 ì„¸ê·¸ë¨¼íŠ¸ì˜ ì²« 문ìžë¡œ 쓸 수 없습니다."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "The character '%s' cannot be the first character in a package segment."
msgstr "ë¬¸ìž '%s'ì€(는) 패키지 ì„¸ê·¸ë¨¼íŠ¸ì˜ ì²« 문ìžë¡œ 쓸 수 없습니다."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "The package must have at least one '.' separator."
msgstr "패키지는 ì ì–´ë„ í•˜ë‚˜ì˜ '.' 분리 기호가 있어야 합니다."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Select device from the list"
msgstr "목ë¡ì—서 기기 ì„ íƒ"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Running on %s"
msgstr "%sì—서 실행"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Exporting APK..."
msgstr "APK로 내보내는 중..."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Uninstalling..."
msgstr "제거 중..."
-#: platform/android/export/export.cpp
-#, fuzzy
+#: platform/android/export/export_plugin.cpp
msgid "Installing to device, please wait..."
-msgstr "로드 중, 기다려 주세요..."
+msgstr "ê¸°ê¸°ì— ì„¤ì¹˜ 중, 기다려 주세요..."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Could not install to device: %s"
msgstr "ê¸°ê¸°ì— ì„¤ì¹˜í•  수 ì—†ìŒ: %s"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Running on device..."
msgstr "기기ì—서 실행 중..."
-#: platform/android/export/export.cpp
-#, fuzzy
+#: platform/android/export/export_plugin.cpp
msgid "Could not execute on device."
-msgstr "í´ë”를 만들 수 없습니다."
+msgstr "기기ì—서 실행할 수 없었습니다."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Unable to find the 'apksigner' tool."
msgstr "'apksigner' ë„구를 ì°¾ì„ ìˆ˜ 없습니다."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Android build template not installed in the project. Install it from the "
"Project menu."
@@ -13142,7 +13174,7 @@ msgstr ""
"프로ì íŠ¸ì— Android 빌드 í…œí”Œë¦¿ì„ ì„¤ì¹˜í•˜ì§€ 않았습니다. 프로ì íЏ 메뉴ì—서 설치"
"하세요."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Either Debug Keystore, Debug User AND Debug Password settings must be "
"configured OR none of them."
@@ -13150,11 +13182,11 @@ msgstr ""
"Debug Keystore, Debug User ë° Debug Password ì„¤ì •ì„ êµ¬ì„±í•˜ê±°ë‚˜ ê·¸ 중 ì–´ëŠ ê²ƒ"
"ë„ ì—†ì–´ì•¼ 합니다."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Debug keystore not configured in the Editor Settings nor in the preset."
-msgstr "Debug keystore를 편집기 설정과 í”„ë¦¬ì…‹ì— êµ¬ì„±í•˜ì§€ 않았습니다."
+msgstr "Debug keystore를 ì—디터 설정과 í”„ë¦¬ì…‹ì— êµ¬ì„±í•˜ì§€ 않았습니다."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Either Release Keystore, Release User AND Release Password settings must be "
"configured OR none of them."
@@ -13162,47 +13194,47 @@ msgstr ""
"Release Keystore, Release User ë° Release Password ì„¤ì •ì„ êµ¬ì„±í•˜ê±°ë‚˜ ê·¸ 중 ì–´"
"ëŠ ê²ƒë„ ì—†ì–´ì•¼ 합니다."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Release keystore incorrectly configured in the export preset."
msgstr "내보내기 í”„ë¦¬ì…‹ì— ì¶œì‹œ keystorkeê°€ 잘못 구성ë˜ì–´ 있습니다."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "A valid Android SDK path is required in Editor Settings."
-msgstr "편집기 설정ì—서 올바른 Android SDK 경로가 필요합니다."
+msgstr "ì—디터 설정ì—서 올바른 Android SDK 경로가 필요합니다."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Invalid Android SDK path in Editor Settings."
-msgstr "편집기 설정ì—서 ìž˜ëª»ëœ Android SDK 경로입니다."
+msgstr "ì—디터 설정ì—서 ìž˜ëª»ëœ Android SDK 경로입니다."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Missing 'platform-tools' directory!"
-msgstr "'platform-tools' 디렉토리가 없습니다!"
+msgstr "'platform-tools' 디렉토리가 누ë½ë˜ì–´ 있습니다!"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Unable to find Android SDK platform-tools' adb command."
msgstr "Android SDK platform-toolsì˜ adb ëª…ë ¹ì„ ì°¾ì„ ìˆ˜ 없습니다."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Please check in the Android SDK directory specified in Editor Settings."
-msgstr "편집기 설정ì—서 ì§€ì •ëœ Android SDK 디렉토리를 확ì¸í•´ì£¼ì„¸ìš”."
+msgstr "ì—디터 설정ì—서 ì§€ì •ëœ Android SDK 디렉토리를 확ì¸í•´ì£¼ì„¸ìš”."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Missing 'build-tools' directory!"
-msgstr "'build-tools' 디렉토리가 없습니다!"
+msgstr "'build-tools' 디렉토리가 누ë½ë˜ì–´ 있습니다!"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Unable to find Android SDK build-tools' apksigner command."
msgstr "Android SDK build-toolsì˜ apksigner ëª…ë ¹ì„ ì°¾ì„ ìˆ˜ 없습니다."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Invalid public key for APK expansion."
msgstr "APK í™•ìž¥ì— ìž˜ëª»ëœ ê³µê°œ 키입니다."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Invalid package name:"
msgstr "ìž˜ëª»ëœ íŒ¨í‚¤ì§€ ì´ë¦„:"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Invalid \"GodotPaymentV3\" module included in the \"android/modules\" "
"project setting (changed in Godot 3.2.2).\n"
@@ -13210,89 +13242,76 @@ msgstr ""
"\"android/modules\" 프로ì íЏ ì„¸íŒ…ì— ìž˜ëª»ëœ \"GodotPaymentV3\" ëª¨ë“ˆì´ í¬í•¨ë˜"
"ì–´ 있습니다. (Godot 3.2.2 ì—서 변경ë¨).\n"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "\"Use Custom Build\" must be enabled to use the plugins."
-msgstr "플러그ì¸ì„ 사용하려면 \"커스텀 빌드 사용\"ì´ í™œì„±í™”ë˜ì–´ì•¼ 합니다."
+msgstr "플러그ì¸ì„ 사용하려면 \"Use Custom Build\"ê°€ 활성화ë˜ì–´ì•¼ 합니다."
-#: platform/android/export/export.cpp
-msgid ""
-"\"Degrees Of Freedom\" is only valid when \"Xr Mode\" is \"Oculus Mobile VR"
-"\"."
-msgstr ""
-"\"ìžìœ ë„(DoF)\"는 \"Xr 모드\" ê°€ \"Oculus Mobile VR\" ì¼ ë•Œë§Œ 사용 가능합니"
-"다."
-
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"\"Hand Tracking\" is only valid when \"Xr Mode\" is \"Oculus Mobile VR\"."
msgstr ""
"\"ì† ì¶”ì \" ì€ \"Xr 모드\" ê°€ \"Oculus Mobile VR\"ì¼ ë•Œë§Œ 사용 가능합니다."
-#: platform/android/export/export.cpp
-msgid ""
-"\"Focus Awareness\" is only valid when \"Xr Mode\" is \"Oculus Mobile VR\"."
-msgstr ""
-"\"í¬ì»¤ìФ ì¸ì‹\"ì€ \"Xr 모드\"ê°€ \"Oculus Mobile VR\" ì¸ ê²½ìš°ì—ë§Œ 사용 가능합"
-"니다."
-
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "\"Export AAB\" is only valid when \"Use Custom Build\" is enabled."
-msgstr "\"Export AAB\"는 \"Use Custom Build\"ê°€ 활성화 ëœ ê²½ìš°ì—ë§Œ 유효합니다."
+msgstr "\"Export AAB\"는 \"Use Custom Build\"ê°€ í™œì„±í™”ëœ ê²½ìš°ì—ë§Œ 유효합니다."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"'apksigner' could not be found.\n"
"Please check the command is available in the Android SDK build-tools "
"directory.\n"
"The resulting %s is unsigned."
msgstr ""
+"'apksigner'를 ì°¾ì„ ìˆ˜ 없었습니다.\n"
+"ëª…ë ¹ì´ Android SDK build-tools 디렉토리ì—서 사용 가능한지 확ì¸í•´ì£¼ì„¸ìš”.\n"
+"ê²°ê³¼ %s는 서명ë˜ì§€ 않습니다."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Signing debug %s..."
-msgstr ""
+msgstr "디버그 %sì— ì„œëª… 중..."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Signing release %s..."
msgstr "출시 %sì— ì„œëª… 중..."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Could not find keystore, unable to export."
msgstr "keystore를 ì°¾ì„ ìˆ˜ 없어, 내보낼 수 없었습니다."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "'apksigner' returned with error #%d"
-msgstr ""
+msgstr "'apksigner'ê°€ 오류 #%d로 반환ë˜ì—ˆìŠµë‹ˆë‹¤"
-#: platform/android/export/export.cpp
-#, fuzzy
+#: platform/android/export/export_plugin.cpp
msgid "Verifying %s..."
-msgstr "%s 추가하는 중..."
+msgstr "%s ê²€ì¦ ì¤‘..."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "'apksigner' verification of %s failed."
-msgstr ""
+msgstr "%sì˜ 'apksigner' ê²€ì¦ì— 실패했습니다."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Exporting for Android"
msgstr "Android용으로 내보내는 중"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Invalid filename! Android App Bundle requires the *.aab extension."
msgstr "ìž˜ëª»ëœ íŒŒì¼ëª…! Android App Bundleì—는 * .aab 확장ìžê°€ 필요합니다."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "APK Expansion not compatible with Android App Bundle."
msgstr "APK í™•ìž¥ì€ Android App Bundleê³¼ 호환ë˜ì§€ 않습니다."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Invalid filename! Android APK requires the *.apk extension."
-msgstr "ìž˜ëª»ëœ íŒŒì¼ëª…! Android APK는 *.apk 확장ìžê°€ 필요합니다."
+msgstr "ìž˜ëª»ëœ íŒŒì¼ì´ë¦„입니다! Android APK는 *.apk 확장ìžê°€ 필요합니다."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Unsupported export format!\n"
-msgstr ""
+msgstr "ì§€ì›ë˜ì§€ 않는 내보내기 형ì‹ìž…니다!\n"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Trying to build from a custom built template, but no version info for it "
"exists. Please reinstall from the 'Project' menu."
@@ -13300,7 +13319,7 @@ msgstr ""
"맞춤 빌드 템플릿으로 빌드하려 했으나, 버전 ì •ë³´ê°€ 없습니다. '프로ì íЏ' 메뉴ì—"
"서 다시 설치해주세요."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Android build version mismatch:\n"
" Template installed: %s\n"
@@ -13312,36 +13331,37 @@ msgstr ""
" Godot 버전: %s\n"
"'프로ì íЏ' 메뉴ì—서 Android 빌드 í…œí”Œë¦¿ì„ ë‹¤ì‹œ 설치해주세요."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Unable to overwrite res://android/build/res/*.xml files with project name"
msgstr ""
+"res://android/build/res/*.xml 파ì¼ì„ 프로ì íЏ ì´ë¦„으로 ë®ì–´ì“¸ 수 없습니다"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Could not export project files to gradle project\n"
msgstr "프로ì íЏ 파ì¼ì„ gradle 프로ì íŠ¸ë¡œ 내보낼 수 없었습니다\n"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Could not write expansion package file!"
msgstr "확장 패키지 파ì¼ì„ 쓸 수 없었습니다!"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Building Android Project (gradle)"
msgstr "Android 프로ì íЏ 빌드 중 (gradle)"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Building of Android project failed, check output for the error.\n"
"Alternatively visit docs.godotengine.org for Android build documentation."
msgstr ""
"Android 프로ì íŠ¸ì˜ ë¹Œë“œì— ì‹¤íŒ¨í–ˆìŠµë‹ˆë‹¤, ì¶œë ¥ëœ ì˜¤ë¥˜ë¥¼ 확ì¸í•˜ì„¸ìš”.\n"
-"ë˜ëŠ” docs.godotengine.orgì—서 Android 빌드 설명문서를 찾아보세요."
+"ë˜ëŠ” docs.godotengine.orgì—서 Android 빌드 문서를 찾아보세요."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Moving output"
msgstr "출력 ì´ë™ 중"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Unable to copy and rename export file, check gradle project directory for "
"outputs."
@@ -13349,16 +13369,15 @@ msgstr ""
"내보내기 파ì¼ì„ 복사하고 ì´ë¦„ì„ ë°”ê¿€ 수 없습니다, ì¶œë ¥ì— ëŒ€í•œ gradle 프로ì "
"트 디렉토리를 확ì¸í•˜ì„¸ìš”."
-#: platform/android/export/export.cpp
-#, fuzzy
+#: platform/android/export/export_plugin.cpp
msgid "Package not found: %s"
-msgstr "애니메ì´ì…˜ì„ ì°¾ì„ ìˆ˜ ì—†ìŒ: '%s'"
+msgstr "패키지를 ì°¾ì„ ìˆ˜ ì—†ìŒ: %s"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Creating APK..."
msgstr "APK를 만드는 중..."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Could not find template APK to export:\n"
"%s"
@@ -13366,33 +13385,37 @@ msgstr ""
"내보낼 템플릿 APK를 ì°¾ì„ ìˆ˜ ì—†ìŒ:\n"
"%s"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Missing libraries in the export template for the selected architectures: "
"%s.\n"
"Please build a template with all required libraries, or uncheck the missing "
"architectures in the export preset."
msgstr ""
+"ì„ íƒëœ 아키í…처를 위한 내보내기 í…œí”Œë¦¿ì— ë¼ì´ë¸ŒëŸ¬ë¦¬ê°€ 누ë½ë˜ì–´ 있습니다: "
+"%s.\n"
+"모든 필수 ë¼ì´ë¸ŒëŸ¬ë¦¬ë¡œ í…œí”Œë¦¿ì„ ë¹Œë“œí•˜ê±°ë‚˜, 내보내기 프리셋ì—서 누ë½ëœ 아키í…"
+"처를 ì„ íƒ ì·¨ì†Œí•˜ì„¸ìš”."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Adding files..."
msgstr "파ì¼ì„ 추가하는 중..."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Could not export project files"
msgstr "프로ì íЏ 파ì¼ì„ 내보낼 수 없었습니다"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Aligning APK..."
-msgstr ""
+msgstr "APK를 정렬 중..."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Could not unzip temporary unaligned APK."
-msgstr ""
+msgstr "임시 ì •ë ¬ë˜ì§€ ì•Šì€ APKì˜ ì••ì¶•ì„ í’€ 수 없었습니다."
#: platform/iphone/export/export.cpp platform/osx/export/export.cpp
msgid "Identifier is missing."
-msgstr "ì‹ë³„ìžê°€ 없습니다."
+msgstr "ì‹ë³„ìžê°€ 누ë½ë˜ì–´ 있습니다."
#: platform/iphone/export/export.cpp platform/osx/export/export.cpp
msgid "The character '%s' is not allowed in Identifier."
@@ -13456,19 +13479,19 @@ msgstr "ìž˜ëª»ëœ bundle ì‹ë³„ìž:"
#: platform/osx/export/export.cpp
msgid "Notarization: code signing required."
-msgstr ""
+msgstr "ê³µì¦: 코드 ì„œëª…ì´ í•„ìš”í•©ë‹ˆë‹¤."
#: platform/osx/export/export.cpp
msgid "Notarization: hardened runtime required."
-msgstr ""
+msgstr "ê³µì¦: ê°•í™”ëœ ëŸ°íƒ€ìž„ì´ í•„ìš”í•©ë‹ˆë‹¤."
#: platform/osx/export/export.cpp
msgid "Notarization: Apple ID name not specified."
-msgstr ""
+msgstr "ê³µì¦: Apple ID ì´ë¦„ì´ ì§€ì •ë˜ì§€ 않았습니다."
#: platform/osx/export/export.cpp
msgid "Notarization: Apple ID password not specified."
-msgstr ""
+msgstr "ê³µì¦: Apple ID 비밀번호가 지정ë˜ì§€ 않았습니다."
#: platform/uwp/export/export.cpp
msgid "Invalid package short name."
@@ -13535,8 +13558,8 @@ msgid ""
"Only one visible CanvasModulate is allowed per scene (or set of instanced "
"scenes). The first created one will work, while the rest will be ignored."
msgstr ""
-"CanvasModulate는 씬 당 단 하나만 ë³´ì¼ ìˆ˜ 있습니다. 처ìŒì— 만든 것만 ìž‘ë™í•˜"
-"ê³ , 나머지는 무시ë©ë‹ˆë‹¤."
+"CanvasModulate는 씬 (ë˜ëŠ” ì¸ìŠ¤í„´íŠ¸ëœ ì”¬ 세트) 당 단 하나만 ë³´ì¼ ìˆ˜ 있습니다. "
+"처ìŒì— 만든 것만 ìž‘ë™í•˜ê³ , 나머지는 무시ë©ë‹ˆë‹¤."
#: scene/2d/collision_object_2d.cpp
msgid ""
@@ -13544,9 +13567,9 @@ msgid ""
"Consider adding a CollisionShape2D or CollisionPolygon2D as a child to "
"define its shape."
msgstr ""
-"ì´ ë…¸ë“œëŠ” Shapeê°€ 없습니다, 다른 물체와 ì¶©ëŒí•˜ê±°ë‚˜ ìƒí˜¸ 작용할 수 없습니다.\n"
-"CollisionShape2D ë˜ëŠ” CollisionPolygon2D를 ìžì‹ 노드로 추가하여 Shape를 ì •ì˜"
-"하세요."
+"ì´ ë…¸ë“œëŠ” ëª¨ì–‘ì´ ì—†ìŠµë‹ˆë‹¤, 다른 물체와 ì¶©ëŒí•˜ê±°ë‚˜ ìƒí˜¸ 작용할 수 없습니다.\n"
+"CollisionShape2D ë˜ëŠ” CollisionPolygon2D를 ìžì† 노드로 추가하여 ëª¨ì–‘ì„ ì •ì˜í•˜"
+"는 ê²ƒì„ ê³ ë ¤í•˜ì„¸ìš”."
#: scene/2d/collision_polygon_2d.cpp
msgid ""
@@ -13554,13 +13577,13 @@ msgid ""
"CollisionObject2D derived node. Please only use it as a child of Area2D, "
"StaticBody2D, RigidBody2D, KinematicBody2D, etc. to give them a shape."
msgstr ""
-"CollisionPolygon2D는 CollisionObject2Dì— ì¶©ëŒ ëª¨ì–‘ì„ ì§€ì •í•˜ëŠ” ìš©ë„로만 사용ë©"
-"니다. Shape를 ì •ì˜í•´ì•¼ 하는 Area2D, StaticBody2D, RigidBody2D, "
-"KinematicBody2D ë“±ì˜ ìžì‹ìœ¼ë¡œë§Œ 사용해주세요."
+"CollisionPolygon2D는 CollisionObject2Dì— ì½œë¦¬ì „ ëª¨ì–‘ì„ ì§€ì •í•˜ëŠ” ìš©ë„로만 사용"
+"ë©ë‹ˆë‹¤. ëª¨ì–‘ì„ ì •ì˜í•´ì•¼ 하는 Area2D, StaticBody2D, RigidBody2D, "
+"KinematicBody2D ë“±ì˜ ìžì†ìœ¼ë¡œë§Œ 사용해주세요."
#: scene/2d/collision_polygon_2d.cpp
msgid "An empty CollisionPolygon2D has no effect on collision."
-msgstr "빈 CollisionPolygon2D는 ì¶©ëŒì— ì˜í–¥ì„ 주지 않습니다."
+msgstr "빈 CollisionPolygon2D는 ì½œë¦¬ì „ì— ì˜í–¥ì„ 주지 않습니다."
#: scene/2d/collision_polygon_2d.cpp
msgid "Invalid polygon. At least 3 points are needed in 'Solids' build mode."
@@ -13576,24 +13599,24 @@ msgid ""
"CollisionObject2D derived node. Please only use it as a child of Area2D, "
"StaticBody2D, RigidBody2D, KinematicBody2D, etc. to give them a shape."
msgstr ""
-"CollisionShape2D는 CollisionObject2Dì— ì¶©ëŒ ëª¨ì–‘ì„ ì§€ì •í•˜ëŠ” ìš©ë„로만 사용ë©ë‹ˆ"
-"다. Shape를 ì •ì˜í•´ì•¼ 하는 Area2D, StaticBody2D, RigidBody2D, KinematicBody2D "
-"ë“±ì˜ ìžì‹ìœ¼ë¡œë§Œ 사용해주세요."
+"CollisionShape2D는 CollisionObject2Dì— ì½œë¦¬ì „ ëª¨ì–‘ì„ ì§€ì •í•˜ëŠ” ìš©ë„로만 사용ë©"
+"니다. ëª¨ì–‘ì„ ì •ì˜í•´ì•¼ 하는 Area2D, StaticBody2D, RigidBody2D, "
+"KinematicBody2D ë“±ì˜ ìžì†ìœ¼ë¡œë§Œ 사용해주세요."
#: scene/2d/collision_shape_2d.cpp
msgid ""
"A shape must be provided for CollisionShape2D to function. Please create a "
"shape resource for it!"
msgstr ""
-"CollisionShape2Dê°€ ìž‘ë™í•˜ë ¤ë©´ 반드시 Shapeê°€ 있어야 합니다. Shape 리소스를 ë§Œ"
-"들어주세요!"
+"CollisionShape2Dê°€ ìž‘ë™í•˜ë ¤ë©´ 반드시 ëª¨ì–‘ì´ ìžˆì–´ì•¼ 합니다. 모양 리소스를 만들"
+"어주세요!"
#: scene/2d/collision_shape_2d.cpp
msgid ""
"Polygon-based shapes are not meant be used nor edited directly through the "
"CollisionShape2D node. Please use the CollisionPolygon2D node instead."
msgstr ""
-"í´ë¦¬ê³¤ 기반 Shape는 CollisionShape2Dì— ì¶”ê°€í•˜ê±°ë‚˜ 거기서 íŽ¸ì§‘í•˜ê²Œë” ì„¤ê³„í•˜ì§€ "
+"í´ë¦¬ê³¤ 기반 ëª¨ì–‘ì€ CollisionShape2Dì— ì¶”ê°€í•˜ê±°ë‚˜ 거기서 íŽ¸ì§‘í•˜ê²Œë” ì„¤ê³„í•˜ì§€ "
"않았습니다. 대신 CollisionPolygon2D 노드를 사용하십시오."
#: scene/2d/cpu_particles_2d.cpp
@@ -13601,7 +13624,7 @@ msgid ""
"CPUParticles2D animation requires the usage of a CanvasItemMaterial with "
"\"Particles Animation\" enabled."
msgstr ""
-"CPUParticles2D 애니메ì´ì…˜ì—는 \"Particles Animation\"ì´ ì¼œì§„ "
+"CPUParticles2D 애니메ì´ì…˜ì—는 \"Particles Animation\"ì´ í™œì„±í™”ëœ "
"CanvasItemMaterialì„ ì‚¬ìš©í•´ì•¼ 합니다."
#: scene/2d/joints_2d.cpp
@@ -13634,8 +13657,7 @@ msgstr "ì¡°ëª…ì˜ ëª¨ì–‘ì„ ë‚˜íƒ€ë‚¼ í…스처를 \"Texture\" ì†ì„±ì— 지정í
msgid ""
"An occluder polygon must be set (or drawn) for this occluder to take effect."
msgstr ""
-"ì´ Occluderê°€ ì˜í–¥ì„ 주게 하려면 Occluder í´ë¦¬ê³¤ì„ 설정해야 (í˜¹ì€ ê·¸ë ¤ì•¼) í•©"
-"니다."
+"ì´ Occluder를 ë°˜ì˜í•˜ë ¤ë©´ Occluder í´ë¦¬ê³¤ì„ 설정해야 (í˜¹ì€ ê·¸ë ¤ì•¼) 합니다."
#: scene/2d/light_occluder_2d.cpp
msgid "The occluder polygon for this occluder is empty. Please draw a polygon."
@@ -13654,14 +13676,14 @@ msgid ""
"NavigationPolygonInstance must be a child or grandchild to a Navigation2D "
"node. It only provides navigation data."
msgstr ""
-"NavigationPolygonInstance는 Navigation2D ë…¸ë“œì˜ ìžì‹ ë˜ëŠ” ê·¸ ì•„ëž˜ì— ìžˆì–´ì•¼ í•©"
-"니다. ì´ê²ƒì€ 내비게ì´ì…˜ ë°ì´í„°ë§Œì„ 제공합니다."
+"NavigationPolygonInstance는 Navigation2D ë…¸ë“œì˜ ìžì†ì´ë‚˜ ì†ì£¼ì— 있어야 합니"
+"다. ì´ê²ƒì€ 내비게ì´ì…˜ ë°ì´í„°ë§Œì„ 제공합니다."
#: scene/2d/parallax_layer.cpp
msgid ""
"ParallaxLayer node only works when set as child of a ParallaxBackground node."
msgstr ""
-"ParallaxLayer는 ParallaxBackground ë…¸ë“œì˜ ìžì‹ 노드로 ìžˆì„ ë•Œë§Œ ìž‘ë™í•©ë‹ˆë‹¤."
+"ParallaxLayer는 ParallaxBackground ë…¸ë“œì˜ ìžì† 노드로 ìžˆì„ ë•Œë§Œ ìž‘ë™í•©ë‹ˆë‹¤."
#: scene/2d/particles_2d.cpp
msgid ""
@@ -13670,15 +13692,15 @@ msgid ""
"CPUParticles\" option for this purpose."
msgstr ""
"GPU 기반 파티í´ì€ GLES2 비디오 드ë¼ì´ë²„ì—서 ì§€ì›í•˜ì§€ 않습니다.\n"
-"대신 CPUParticles2D 노드를 사용하세요. ì´ ê²½ìš° \"CPU파티í´ë¡œ 변환\" ì˜µì…˜ì„ ì‚¬"
-"용할 수 있습니다."
+"대신 CPUParticles2D 노드를 사용하세요. ì´ ê²½ìš° \"CPUParticles로 변환\" 옵션"
+"ì„ ì‚¬ìš©í•  수 있습니다."
#: scene/2d/particles_2d.cpp scene/3d/particles.cpp
msgid ""
"A material to process the particles is not assigned, so no behavior is "
"imprinted."
msgstr ""
-"파티í´ì„ 처리할 ë¨¸í‹°ë¦¬ì–¼ì„ ì§€ì •í•˜ì§€ 않았습니다. 아무런 ë™ìž‘ë„ ì°ížˆì§€ 않습니"
+"파티í´ì„ 처리할 ë¨¸í‹°ë¦¬ì–¼ì´ í• ë‹¹ë˜ì§€ 않았으므로, 아무런 ë™ìž‘ë„ ì°ížˆì§€ 않습니"
"다."
#: scene/2d/particles_2d.cpp
@@ -13686,12 +13708,12 @@ msgid ""
"Particles2D animation requires the usage of a CanvasItemMaterial with "
"\"Particles Animation\" enabled."
msgstr ""
-"Particles2D 애니메ì´ì…˜ì€ \"Particles Animation\"ì´ ì¼œì ¸ 있는 "
+"Particles2D 애니메ì´ì…˜ì€ \"Particles Animation\"ì´ í™œì„±í™”ë˜ì–´ 있는 "
"CanvasItemMaterialì„ ì‚¬ìš©í•´ì•¼ 합니다."
#: scene/2d/path_2d.cpp
msgid "PathFollow2D only works when set as a child of a Path2D node."
-msgstr "PathFollow2D는 Path2D ë…¸ë“œì˜ ìžì‹ 노드로 ìžˆì„ ë•Œë§Œ ìž‘ë™í•©ë‹ˆë‹¤."
+msgstr "PathFollow2D는 Path2D ë…¸ë“œì˜ ìžì† 노드로 ìžˆì„ ë•Œë§Œ ìž‘ë™í•©ë‹ˆë‹¤."
#: scene/2d/physics_body_2d.cpp
msgid ""
@@ -13701,7 +13723,7 @@ msgid ""
msgstr ""
"(ìºë¦­í„°ë‚˜ 리지드 모드ì—서) RigidBody2Dì˜ í¬ê¸° ë³€ê²½ì€ ë¬¼ë¦¬ ì—”ì§„ì´ ìž‘ë™í•˜ëŠ” ë™"
"안 í° ë¶€ë‹´ì´ ë©ë‹ˆë‹¤.\n"
-"대신 ìžì‹ ì¶©ëŒ í˜•íƒœì˜ í¬ê¸°ë¥¼ 변경해보세요."
+"대신 ìžì† 콜리전 ëª¨ì–‘ì˜ í¬ê¸°ë¥¼ 변경해보세요."
#: scene/2d/remote_transform_2d.cpp
msgid "Path property must point to a valid Node2D node to work."
@@ -13728,9 +13750,9 @@ msgid ""
"to. Please use it as a child of Area2D, StaticBody2D, RigidBody2D, "
"KinematicBody2D, etc. to give them a shape."
msgstr ""
-"Use Parentê°€ 켜진 TileMapì€ í˜•íƒœë¥¼ 주는 부모 CollisionObject2Dê°€ 필요합니다. "
-"형태를 주기 위해 Area2D, StaticBody2D, RigidBody2D, KinematicBody2D ë“±ì„ ìž"
-"ì‹ ë…¸ë“œë¡œ 사용해주세요."
+"Use Parentê°€ 켜진 TileMapì€ ëª¨ì–‘ì„ ì£¼ëŠ” 부모 CollisionObject2Dê°€ 필요합니다. "
+"ëª¨ì–‘ì„ ì£¼ê¸° 위해 Area2D, StaticBody2D, RigidBody2D, KinematicBody2D ë“±ì„ ìž"
+"ì† ë…¸ë“œë¡œ 사용해주세요."
#: scene/2d/visibility_notifier_2d.cpp
msgid ""
@@ -13767,15 +13789,15 @@ msgstr "앵커 IDê°€ 0ì´ ë˜ë©´ 앵커가 실제 ì•µì»¤ì— ë°”ì¸ë”©í•˜ì§€ 않ê
#: scene/3d/arvr_nodes.cpp
msgid "ARVROrigin requires an ARVRCamera child node."
-msgstr "ARVROriginì€ ìžì‹ìœ¼ë¡œ ARVRCamera 노드가 필요합니다."
+msgstr "ARVROriginì€ ìžì†ìœ¼ë¡œ ARVRCamera 노드가 필요합니다."
#: scene/3d/baked_lightmap.cpp
msgid "Finding meshes and lights"
-msgstr "메시 ë° ì¡°ëª… 찾는 중"
+msgstr "메시 ë° ì¡°ëª…ì„ ì°¾ëŠ” 중"
#: scene/3d/baked_lightmap.cpp
msgid "Preparing geometry (%d/%d)"
-msgstr "형태 준비 중 (%d/%d)"
+msgstr "지오메트리 준비 중 (%d/%d)"
#: scene/3d/baked_lightmap.cpp
msgid "Preparing environment"
@@ -13787,7 +13809,7 @@ msgstr "캡처 ìƒì„± 중"
#: scene/3d/baked_lightmap.cpp
msgid "Saving lightmaps"
-msgstr "ë¼ì´íŠ¸ë§µ 저장 중"
+msgstr "ë¼ì´íŠ¸ë§µì„ ì €ìž¥ 중"
#: scene/3d/baked_lightmap.cpp
msgid "Done"
@@ -13799,9 +13821,9 @@ msgid ""
"Consider adding a CollisionShape or CollisionPolygon as a child to define "
"its shape."
msgstr ""
-"ì´ ë…¸ë“œëŠ” Shapeê°€ 없습니다. 다른 물체와 ì¶©ëŒí•˜ê±°ë‚˜ ìƒí˜¸ 작용할 수 없습니다.\n"
-"CollisionShape ë˜ëŠ” CollisionPolygonì„ ìžì‹ 노드로 추가해서 Shapeì„ ì •ì˜í•´ë³´"
-"세요."
+"ì´ ë…¸ë“œëŠ” ëª¨ì–‘ì´ ì—†ìŠµë‹ˆë‹¤. 다른 물체와 ì¶©ëŒí•˜ê±°ë‚˜ ìƒí˜¸ 작용할 수 없습니다.\n"
+"CollisionShape ë˜ëŠ” CollisionPolygonì„ ìžì† 노드로 추가해서 ëª¨ì–‘ì„ ì •ì˜í•˜ëŠ” "
+"ê²ƒì„ ê³ ë ¤í•˜ì„¸ìš”."
#: scene/3d/collision_polygon.cpp
msgid ""
@@ -13809,13 +13831,13 @@ msgid ""
"CollisionObject derived node. Please only use it as a child of Area, "
"StaticBody, RigidBody, KinematicBody, etc. to give them a shape."
msgstr ""
-"CollisionPolygonì€ CollisionObjectì— ì¶©ëŒ Shape를 지정하는 ìš©ë„로만 사용ë©ë‹ˆ"
-"다. Area, StaticBody, RigidBody, KinematicBody ë“±ì— ìžì‹ 노드로 추가해서 사용"
+"CollisionPolygonì€ CollisionObjectì— ì½œë¦¬ì „ ëª¨ì–‘ì„ ì§€ì •í•˜ëŠ” ìš©ë„로만 사용ë©ë‹ˆ"
+"다. Area, StaticBody, RigidBody, KinematicBody ë“±ì— ìžì† 노드로 추가해서 사용"
"해주세요."
#: scene/3d/collision_polygon.cpp
msgid "An empty CollisionPolygon has no effect on collision."
-msgstr "빈 CollisionPolygon는 ì¶©ëŒì— ì˜í–¥ì„ 주지 않습니다."
+msgstr "빈 CollisionPolygon는 ì½œë¦¬ì „ì— ì˜í–¥ì„ 주지 않습니다."
#: scene/3d/collision_shape.cpp
msgid ""
@@ -13823,8 +13845,8 @@ msgid ""
"derived node. Please only use it as a child of Area, StaticBody, RigidBody, "
"KinematicBody, etc. to give them a shape."
msgstr ""
-"CollisionShapeì€ CollisionObjectì— ì¶©ëŒ Shape를 지정하는 ìš©ë„로만 사용ë©ë‹ˆ"
-"다. Area, StaticBody, RigidBody, KinematicBody ë“±ì— ìžì‹ 노드로 추가해서 사용"
+"CollisionShapeì€ CollisionObjectì— ì½œë¦¬ì „ ëª¨ì–‘ì„ ì§€ì •í•˜ëŠ” ìš©ë„로만 사용ë©ë‹ˆ"
+"다. Area, StaticBody, RigidBody, KinematicBody ë“±ì— ìžì† 노드로 추가해서 사용"
"해주세요."
#: scene/3d/collision_shape.cpp
@@ -13832,8 +13854,8 @@ msgid ""
"A shape must be provided for CollisionShape to function. Please create a "
"shape resource for it."
msgstr ""
-"CollisionShapeê°€ ì œ ê¸°ëŠ¥ì„ í•˜ë ¤ë©´ Shapeê°€ 있어야 합니다. Shape 리소스를 만들"
-"어주세요."
+"CollisionShapeê°€ ì œ ê¸°ëŠ¥ì„ í•˜ë ¤ë©´ ëª¨ì–‘ì´ ìžˆì–´ì•¼ 합니다. 모양 리소스를 만들어"
+"주세요."
#: scene/3d/collision_shape.cpp
msgid ""
@@ -13884,6 +13906,9 @@ msgid ""
"longer has any effect.\n"
"To remove this warning, disable the GIProbe's Compress property."
msgstr ""
+"GIProbe Compress ì†ì„±ì€ 알려진 버그로 ì¸í•´ ë” ì´ìƒ 사용ë˜ì§€ 않으며 ë” ì´ìƒ ì˜"
+"í–¥ì´ ì—†ìŠµë‹ˆë‹¤.\n"
+"ì´ ê²½ê³ ë¥¼ 제거하려면, GIProbeì˜ Compress ì†ì„±ì„ 비활성화하세요."
#: scene/3d/light.cpp
msgid "A SpotLight with an angle wider than 90 degrees cannot cast shadows."
@@ -13899,8 +13924,16 @@ msgid ""
"NavigationMeshInstance must be a child or grandchild to a Navigation node. "
"It only provides navigation data."
msgstr ""
-"NavigationMeshInstance는 Navigation ë…¸ë“œì˜ ìžì‹ì´ë‚˜ ë” í•˜ìœ„ì— ìžˆì–´ì•¼ 합니다. "
-"ì´ê²ƒì€ 내비게ì´ì…˜ ë°ì´í„°ë§Œ 제공합니다."
+"NavigationMeshInstance는 Navigation ë…¸ë“œì˜ ìžì†ì´ë‚˜ ì†ì£¼ì— 있어야 합니다. ì´"
+"ê²ƒì€ ë‚´ë¹„ê²Œì´ì…˜ ë°ì´í„°ë§Œ 제공합니다."
+
+#: scene/3d/occluder.cpp
+msgid "No shape is set."
+msgstr ""
+
+#: scene/3d/occluder.cpp
+msgid "Only uniform scales are supported."
+msgstr ""
#: scene/3d/particles.cpp
msgid ""
@@ -13909,8 +13942,8 @@ msgid ""
"\" option for this purpose."
msgstr ""
"GPU 기반 파티í´ì€ GLES2 비디오 드ë¼ì´ë²„ì—서 ì§€ì›í•˜ì§€ 않습니다.\n"
-"대신 CPUParticles 노드를 사용하세요. ì´ ê²½ìš° \"CPU파티í´ë¡œ 변환\" ì„¤ì •ì„ ì‚¬ìš©"
-"할 수 있습니다."
+"대신 CPUParticles 노드를 사용하세요. ì´ ê²½ìš° \"CPUParticles로 변환\" ì„¤ì •ì„ "
+"사용할 수 있습니다."
#: scene/3d/particles.cpp
msgid ""
@@ -13927,7 +13960,7 @@ msgstr ""
#: scene/3d/path.cpp
msgid "PathFollow only works when set as a child of a Path node."
-msgstr "PathFollow는 Path ë…¸ë“œì˜ ìžì‹ìœ¼ë¡œ ìžˆì„ ë•Œë§Œ ìž‘ë™í•©ë‹ˆë‹¤."
+msgstr "PathFollow는 Path ë…¸ë“œì˜ ìžì†ìœ¼ë¡œ ìžˆì„ ë•Œë§Œ ìž‘ë™í•©ë‹ˆë‹¤."
#: scene/3d/path.cpp
msgid ""
@@ -13945,7 +13978,7 @@ msgid ""
msgstr ""
"(ìºë¦­í„°ë‚˜ 리지드 모드ì—서) RigidBodyì˜ í¬ê¸° ë³€ê²½ì€ ë¬¼ë¦¬ ì—”ì§„ì´ ìž‘ë™í•˜ëŠ” ë™ì•ˆ "
"í° ë¶€ë‹´ì´ ë©ë‹ˆë‹¤.\n"
-"대신 ìžì‹ ì¶©ëŒ ëª¨ì–‘ì˜ í¬ê¸°ë¥¼ 변경하세요."
+"대신 ìžì† 콜리전 ëª¨ì–‘ì˜ í¬ê¸°ë¥¼ 변경하세요."
#: scene/3d/physics_joint.cpp
msgid "Node A and Node B must be PhysicsBodies"
@@ -13969,15 +14002,15 @@ msgstr "노드 A와 노드 B는 서로 다른 PhysicsBody여야 합니다"
#: scene/3d/portal.cpp
msgid "The RoomManager should not be a child or grandchild of a Portal."
-msgstr ""
+msgstr "RoomManager는 Portalì˜ ìžì†ì´ë‚˜ ì†ì£¼ê°€ 아니어야 합니다."
#: scene/3d/portal.cpp
msgid "A Room should not be a child or grandchild of a Portal."
-msgstr ""
+msgstr "Roomì€ Portalì˜ ìžì†ì´ë‚˜ ì†ì£¼ê°€ 아니어야 합니다."
#: scene/3d/portal.cpp
msgid "A RoomGroup should not be a child or grandchild of a Portal."
-msgstr ""
+msgstr "RoomGroupì€ Portalì˜ ìžì†ì´ë‚˜ ì†ì£¼ê°€ 아니어야 합니다."
#: scene/3d/remote_transform.cpp
msgid ""
@@ -13989,79 +14022,93 @@ msgstr ""
#: scene/3d/room.cpp
msgid "A Room cannot have another Room as a child or grandchild."
-msgstr ""
+msgstr "Roomì€ ë‹¤ë¥¸ Roomì„ ìžì†ì´ë‚˜ ì†ì£¼ë¡œ 가질 수 없습니다."
#: scene/3d/room.cpp
msgid "The RoomManager should not be placed inside a Room."
-msgstr ""
+msgstr "RoomManager는 Room ì•ˆì— ë°°ì¹˜í•´ì„œëŠ” 안ë©ë‹ˆë‹¤."
#: scene/3d/room.cpp
msgid "A RoomGroup should not be placed inside a Room."
-msgstr ""
+msgstr "RoomGroupì€ Room ì•ˆì— ë°°ì¹˜í•´ì„œëŠ” 안ë©ë‹ˆë‹¤."
#: scene/3d/room.cpp
msgid ""
"Room convex hull contains a large number of planes.\n"
"Consider simplifying the room bound in order to increase performance."
msgstr ""
+"룸 컨벡스 í—ì—는 ë‹¤ìˆ˜ì˜ í‰ë©´ì´ 있습니다.\n"
+"ì„±ëŠ¥ì„ ë†’ì´ë ¤ë©´ 룸 경계를 단순화하는 ê²ƒì„ ê³ ë ¤í•˜ì„¸ìš”."
#: scene/3d/room_group.cpp
msgid "The RoomManager should not be placed inside a RoomGroup."
-msgstr ""
+msgstr "RoomManager는 RoomGroup ì•ˆì— ë°°ì¹˜í•´ì„œëŠ” 안ë©ë‹ˆë‹¤."
#: scene/3d/room_manager.cpp
msgid "The RoomList has not been assigned."
-msgstr ""
+msgstr "RoomListê°€ 할당ë˜ì–´ 있지 않습니다."
#: scene/3d/room_manager.cpp
msgid "The RoomList node should be a Spatial (or derived from Spatial)."
-msgstr ""
+msgstr "RoomList 노드는 Spatial(ë˜ëŠ” Spatialì—서 파ìƒ)ì´ì–´ì•¼ 합니다."
#: scene/3d/room_manager.cpp
msgid ""
"Portal Depth Limit is set to Zero.\n"
"Only the Room that the Camera is in will render."
msgstr ""
+"í¬í„¸ ê¹Šì´ ì œí•œì´ ì˜ìœ¼ë¡œ 설정ë©ë‹ˆë‹¤.\n"
+"ì¹´ë©”ë¼ê°€ 있는 룸만 ë Œë”ë§ë  것입니다."
#: scene/3d/room_manager.cpp
msgid "There should only be one RoomManager in the SceneTree."
-msgstr ""
+msgstr "SceneTreeì—는 RoomManager 하나만 있어야 합니다."
#: scene/3d/room_manager.cpp
msgid ""
"RoomList path is invalid.\n"
"Please check the RoomList branch has been assigned in the RoomManager."
msgstr ""
+"RoomList 경로가 잘못ë˜ì—ˆìŠµë‹ˆë‹¤.\n"
+"RoomList 가지가 RoomManagerì—서 할당ë˜ì—ˆëŠ”ì§€ 확ì¸í•´ì£¼ì„¸ìš”."
#: scene/3d/room_manager.cpp
msgid "RoomList contains no Rooms, aborting."
-msgstr ""
+msgstr "RoomListì— í¬í•¨ëœ Roomì´ ì—†ì–´, 중단합니다."
#: scene/3d/room_manager.cpp
msgid "Misnamed nodes detected, check output log for details. Aborting."
msgstr ""
+"ì´ë¦„ì´ ìž˜ëª»ëœ ë…¸ë“œê°€ ê°ì§€ë˜ì—ˆìœ¼ë©°, ìžì„¸í•œ ì‚¬í•­ì€ ì¶œë ¥ 로그를 확ì¸í•˜ì„¸ìš”. 중단"
+"합니다."
#: scene/3d/room_manager.cpp
msgid "Portal link room not found, check output log for details."
-msgstr ""
+msgstr "í¬í„¸ ì—°ê²° ë£¸ì„ ì°¾ì„ ìˆ˜ 없으며, ìžì„¸í•œ ì‚¬í•­ì€ ì¶œë ¥ 로그를 확ì¸í•˜ì„¸ìš”."
#: scene/3d/room_manager.cpp
msgid ""
"Portal autolink failed, check output log for details.\n"
"Check the portal is facing outwards from the source room."
msgstr ""
+"í¬í„¸ ìžë™ì—°ê²°ì— 실패했으며, ìžì„¸í•œ ì‚¬í•­ì€ ì¶œë ¥ 로그를 확ì¸í•˜ì„¸ìš”.\n"
+"í¬í„¸ì´ 소스 룸으로부터 ë°”ê¹¥ìª½ì„ í–¥í•˜ê³  있는지 확ì¸í•˜ì„¸ìš”."
#: scene/3d/room_manager.cpp
msgid ""
"Room overlap detected, cameras may work incorrectly in overlapping area.\n"
"Check output log for details."
msgstr ""
+"룸 ê²¹ì¹¨ì´ ê°ì§€ë˜ì–´, ì¹´ë©”ë¼ê°€ 겹치는 ì˜ì—­ì—서 잘못 ìž‘ë™í•  수 있습니다.\n"
+"ìžì„¸í•œ ì‚¬í•­ì€ ì¶œë ¥ 로그를 확ì¸í•˜ì„¸ìš”."
#: scene/3d/room_manager.cpp
msgid ""
"Error calculating room bounds.\n"
"Ensure all rooms contain geometry or manual bounds."
msgstr ""
+"룸 경계를 계산하는 중 오류.\n"
+"모든 ë£¸ì— ì§€ì˜¤ë©”íŠ¸ë¦¬ ë˜ëŠ” ìˆ˜ë™ ê²½ê³„ê°€ í¬í•¨ë˜ì–´ 있는지 확ì¸í•˜ì„¸ìš”."
#: scene/3d/soft_body.cpp
msgid "This body will be ignored until you set a mesh."
@@ -14074,7 +14121,7 @@ msgid ""
"Change the size in children collision shapes instead."
msgstr ""
"실행 ì¤‘ì— SoftBodyì˜ í¬ê¸° ë³€ê²½ì€ ë¬¼ë¦¬ ì—”ì§„ì— ì˜í•´ 재정ì˜ë©ë‹ˆë‹¤.\n"
-"대신 ìžì‹ì˜ ì¶©ëŒ ëª¨ì–‘ í¬ê¸°ë¥¼ 변경하세요."
+"대신 ìžì† 콜리전 ëª¨ì–‘ì˜ í¬ê¸°ë¥¼ 변경하세요."
#: scene/3d/sprite_3d.cpp
msgid ""
@@ -14090,21 +14137,21 @@ msgid ""
"it as a child of a VehicleBody."
msgstr ""
"VehicleWheelì€ VehicleBody로 바퀴 ì‹œìŠ¤í…œì„ ì œê³µí•˜ëŠ” 역할입니다. VehicleBody"
-"ì˜ ìžì‹ìœ¼ë¡œ 사용해주세요."
+"ì˜ ìžì†ìœ¼ë¡œ 사용해주세요."
#: scene/3d/world_environment.cpp
msgid ""
"WorldEnvironment requires its \"Environment\" property to contain an "
"Environment to have a visible effect."
msgstr ""
-"WorldEnvironmentê°€ ì‹œê° íš¨ê³¼ë¥¼ ê°–ë„ë¡ Environment를 ê°–ê³  있는 \"Environment"
+"WorldEnvironmentê°€ ì‹œê° ì´íŽ™íŠ¸ë¥¼ ê°–ë„ë¡ Environment를 ê°–ê³  있는 \"Environment"
"\" ì†ì„±ì´ 필요합니다."
#: scene/3d/world_environment.cpp
msgid ""
"Only one WorldEnvironment is allowed per scene (or set of instanced scenes)."
msgstr ""
-"씬마다 (í˜¹ì€ ì¸ìŠ¤í„´ìŠ¤ëœ ì”¬ 세트마다) WorldEnvironment는 하나만 허용ë©ë‹ˆë‹¤."
+"씬(ë˜ëŠ” ì¸ìŠ¤í„´ìŠ¤ëœ ì”¬ 세트마다) 당 WorldEnvironment는 하나만 허용ë©ë‹ˆë‹¤."
#: scene/3d/world_environment.cpp
msgid ""
@@ -14124,7 +14171,7 @@ msgstr "애니메ì´ì…˜ì„ ì°¾ì„ ìˆ˜ ì—†ìŒ: '%s'"
#: scene/animation/animation_player.cpp
msgid "Anim Apply Reset"
-msgstr ""
+msgstr "애니메ì´ì…˜ ì ìš© 재설정"
#: scene/animation/animation_tree.cpp
msgid "In node '%s', invalid animation: '%s'."
@@ -14169,11 +14216,11 @@ msgid ""
msgstr ""
"색ìƒ: #%s\n"
"좌í´ë¦­: ìƒ‰ìƒ ì„¤ì •\n"
-"ìš°í´ë¦­: 프리셋 ì‚­ì œ"
+"ìš°í´ë¦­: 프리셋 제거"
#: scene/gui/color_picker.cpp
msgid "Pick a color from the editor window."
-msgstr "편집기 ì°½ì—서 색ìƒì„ 고르세요."
+msgstr "ì—디터 ì°½ì—서 색ìƒì„ 고르세요."
#: scene/gui/color_picker.cpp
msgid "HSV"
@@ -14197,7 +14244,7 @@ msgid ""
"children placement behavior.\n"
"If you don't intend to add a script, use a plain Control node instead."
msgstr ""
-"Container ìžì²´ëŠ” ìžì‹ 배치 ìž‘ì—…ì„ êµ¬ì„±í•˜ëŠ” 스í¬ë¦½íЏ 외ì—는 목ì ì´ 없습니다.\n"
+"Container ìžì²´ëŠ” ìžì† 배치 ìž‘ì—…ì„ êµ¬ì„±í•˜ëŠ” 스í¬ë¦½íЏ 외ì—는 목ì ì´ 없습니다.\n"
"스í¬ë¦½íŠ¸ë¥¼ 추가하는 ì˜ë„ê°€ 없으면, 순수한 Control 노드를 사용해주세요."
#: scene/gui/control.cpp
@@ -14225,6 +14272,14 @@ msgstr "올바른 확장ìžë¥¼ 사용해야 합니다."
msgid "Enable grid minimap."
msgstr "그리드 ë¯¸ë‹ˆë§µì„ í™œì„±í™”í•©ë‹ˆë‹¤."
+#: scene/gui/nine_patch_rect.cpp
+msgid ""
+"The Tile and Tile Fit options for Axis Stretch properties are only effective "
+"when using the GLES3 rendering backend.\n"
+"The GLES2 backend is currently in use, so these modes will act like Stretch "
+"instead."
+msgstr ""
+
#: scene/gui/popup.cpp
msgid ""
"Popups will hide by default unless you call popup() or any of the popup*() "
@@ -14236,7 +14291,7 @@ msgstr ""
#: scene/gui/range.cpp
msgid "If \"Exp Edit\" is enabled, \"Min Value\" must be greater than 0."
-msgstr "\"Exp Edit\"ì„ ì¼œë©´, \"Min Value\"는 반드시 0보다 커야 합니다."
+msgstr "\"Exp Edit\"ì„ í™œì„±í™”í•˜ë©´, \"Min Value\"는 반드시 0보다 커야 합니다."
#: scene/gui/scroll_container.cpp
msgid ""
@@ -14244,8 +14299,8 @@ msgid ""
"Use a container as child (VBox, HBox, etc.), or a Control and set the custom "
"minimum size manually."
msgstr ""
-"ScrollContainer는 ë‹¨ì¼ ìžì‹ Controlì„ ìž‘ì—…í•˜ê¸° 위한 것입니다.\n"
-"(VBox, HBox 등) 컨테ì´ë„ˆë¥¼ ìžì‹ìœ¼ë¡œ 사용하거나, Controlì„ ì‚¬ìš©í•˜ê³  맞춤 최소 "
+"ScrollContainer는 ë‹¨ì¼ ìžì† Controlì„ ìž‘ì—…í•˜ê¸° 위한 것입니다.\n"
+"(VBox, HBox 등) 컨테ì´ë„ˆë¥¼ ìžì†ìœ¼ë¡œ 사용하거나, Controlì„ ì‚¬ìš©í•˜ê³  맞춤 최소 "
"수치를 수ë™ìœ¼ë¡œ 설정하세요."
#: scene/gui/tree.cpp
@@ -14257,8 +14312,8 @@ msgid ""
"Default Environment as specified in Project Settings (Rendering -> "
"Environment -> Default Environment) could not be loaded."
msgstr ""
-"프로ì íЏ 설정 (Rendering -> Environment -> Default Environment)ì— ì§€ì •í•œ 기"
-"본 í™˜ê²½ì„ ë¶ˆëŸ¬ì˜¬ 수 없습니다."
+"프로ì íЏ 설정 (Rendering -> Environment -> Default Environment)ì— ì§€ì •í•œ ë””í´"
+"트 í™˜ê²½ì„ ë¶ˆëŸ¬ì˜¬ 수 없습니다."
#: scene/main/viewport.cpp
msgid ""
@@ -14268,7 +14323,7 @@ msgid ""
"texture to some node for display."
msgstr ""
"ë·°í¬íŠ¸ë¥¼ ë Œë” ëŒ€ìƒìœ¼ë¡œ 설정하지 않았습니다. ë·°í¬íŠ¸ì˜ ë‚´ìš©ì„ í™”ë©´ì— ì§ì ‘ 표시"
-"하려면, Controlì˜ ìžì‹ 노드로 만들어서 í¬ê¸°ë¥¼ 얻어야 합니다. 그렇지 ì•Šì„ ê²½"
+"하려면, Controlì˜ ìžì† 노드로 만들어서 í¬ê¸°ë¥¼ 얻어야 합니다. 그렇지 ì•Šì„ ê²½"
"ìš°, í™”ë©´ì— í‘œì‹œí•˜ê¸° 위해서는 ë·°í¬íŠ¸ë¥¼ RenderTarget으로 만들고 ë‚´ë¶€ì ì¸ í…스처"
"를 다른 ë…¸ë“œì— ì§€ì •í•´ì•¼ 합니다."
@@ -14276,6 +14331,10 @@ msgstr ""
msgid "Viewport size must be greater than 0 to render anything."
msgstr "무엇ì´ë“  ë Œë”ë§í•˜ë ¤ë©´ ë·°í¬íЏ í¬ê¸°ê°€ 0보다 커야 합니다."
+#: scene/resources/occluder_shape.cpp
+msgid "OccluderShapeSphere Set Spheres"
+msgstr ""
+
#: scene/resources/visual_shader_nodes.cpp
msgid ""
"The sampler port is connected but not used. Consider changing the source to "
@@ -14297,25 +14356,28 @@ msgid "Invalid comparison function for that type."
msgstr "해당 ìœ í˜•ì— ìž˜ëª»ëœ ë¹„êµ í•¨ìˆ˜."
#: servers/visual/shader_language.cpp
-#, fuzzy
msgid "Varying may not be assigned in the '%s' function."
-msgstr "Varyingì€ ê¼­ì§“ì  í•¨ìˆ˜ì—ë§Œ 지정할 수 있습니다."
+msgstr "Varyingì€ '%s' 함수ì—서 할당ë˜ì§€ ì•Šì„ ìˆ˜ 있습니다."
#: servers/visual/shader_language.cpp
msgid ""
"Varyings which assigned in 'vertex' function may not be reassigned in "
"'fragment' or 'light'."
msgstr ""
+"'vertex' 함수ì—서 í• ë‹¹ëœ Varyingì€ 'fragment' ë˜ëŠ” 'light'ì—서 재할당ë˜ì§€ 않"
+"ì„ ìˆ˜ 있습니다."
#: servers/visual/shader_language.cpp
msgid ""
"Varyings which assigned in 'fragment' function may not be reassigned in "
"'vertex' or 'light'."
msgstr ""
+"'fragment' 함수ì—서 í• ë‹¹ëœ Varyingì€ 'vertex' ë˜ëŠ” 'light'ì—서 재할당ë˜ì§€ 않"
+"ì„ ìˆ˜ 있습니다."
#: servers/visual/shader_language.cpp
msgid "Fragment-stage varying could not been accessed in custom function!"
-msgstr ""
+msgstr "맞춤 함수ì—서 Fragment-stage varyingì— ì ‘ê·¼í•  수 없습니다!"
#: servers/visual/shader_language.cpp
msgid "Assignment to function."
@@ -14329,6 +14391,41 @@ msgstr "Uniformì— ëŒ€ìž…."
msgid "Constants cannot be modified."
msgstr "ìƒìˆ˜ëŠ” 수정할 수 없습니다."
+#~ msgid "Make Rest Pose (From Bones)"
+#~ msgstr "(본ì˜) 대기 ìžì„¸ 만들기"
+
+#~ msgid "Bottom"
+#~ msgstr "아랫면"
+
+#~ msgid "Left"
+#~ msgstr "왼쪽면"
+
+#~ msgid "Right"
+#~ msgstr "오른쪽면"
+
+#~ msgid "Front"
+#~ msgstr "ì •ë©´"
+
+#~ msgid "Rear"
+#~ msgstr "ë’·ë©´"
+
+#~ msgid "Nameless gizmo"
+#~ msgstr "ì´ë¦„ 없는 기즈모"
+
+#~ msgid ""
+#~ "\"Degrees Of Freedom\" is only valid when \"Xr Mode\" is \"Oculus Mobile "
+#~ "VR\"."
+#~ msgstr ""
+#~ "\"ìžìœ ë„(DoF)\"는 \"Xr 모드\" ê°€ \"Oculus Mobile VR\" ì¼ ë•Œë§Œ 사용 가능합"
+#~ "니다."
+
+#~ msgid ""
+#~ "\"Focus Awareness\" is only valid when \"Xr Mode\" is \"Oculus Mobile VR"
+#~ "\"."
+#~ msgstr ""
+#~ "\"í¬ì»¤ìФ ì¸ì‹\"ì€ \"Xr 모드\"ê°€ \"Oculus Mobile VR\" ì¸ ê²½ìš°ì—ë§Œ 사용 가능"
+#~ "합니다."
+
#~ msgid "Package Contents:"
#~ msgstr "패키지 내용:"
@@ -16407,9 +16504,6 @@ msgstr "ìƒìˆ˜ëŠ” 수정할 수 없습니다."
#~ msgid "Images:"
#~ msgstr "ì´ë¯¸ì§€:"
-#~ msgid "Group"
-#~ msgstr "그룹"
-
#~ msgid "Sample Conversion Mode: (.wav files):"
#~ msgstr "샘플 변환 모드: (.wav 파ì¼):"
diff --git a/editor/translations/lt.po b/editor/translations/lt.po
index f8bc356023..a853757f43 100644
--- a/editor/translations/lt.po
+++ b/editor/translations/lt.po
@@ -1037,7 +1037,7 @@ msgstr ""
msgid "Dependencies"
msgstr ""
-#: editor/dependency_editor.cpp
+#: editor/dependency_editor.cpp editor/editor_resource_picker.cpp
msgid "Resource"
msgstr ""
@@ -1669,13 +1669,13 @@ msgid ""
"Enabled'."
msgstr ""
-#: editor/editor_export.cpp platform/android/export/export.cpp
+#: editor/editor_export.cpp platform/android/export/export_plugin.cpp
#: platform/iphone/export/export.cpp platform/javascript/export/export.cpp
#: platform/osx/export/export.cpp platform/uwp/export/export.cpp
msgid "Custom debug template not found."
msgstr ""
-#: editor/editor_export.cpp platform/android/export/export.cpp
+#: editor/editor_export.cpp platform/android/export/export_plugin.cpp
#: platform/iphone/export/export.cpp platform/javascript/export/export.cpp
#: platform/osx/export/export.cpp platform/uwp/export/export.cpp
msgid "Custom release template not found."
@@ -2067,7 +2067,7 @@ msgstr ""
msgid "(Re)Importing Assets"
msgstr ""
-#: editor/editor_help.cpp editor/plugins/spatial_editor_plugin.cpp
+#: editor/editor_help.cpp
msgid "Top"
msgstr ""
@@ -2556,6 +2556,30 @@ msgid "Current scene not saved. Open anyway?"
msgstr ""
#: editor/editor_node.cpp
+msgid "Can't undo while mouse buttons are pressed."
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "Nothing to undo."
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "Undo: %s"
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "Can't redo while mouse buttons are pressed."
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "Nothing to redo."
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "Redo: %s"
+msgstr ""
+
+#: editor/editor_node.cpp
msgid "Can't reload a scene that was never saved."
msgstr ""
@@ -3191,6 +3215,11 @@ msgid "Merge With Existing"
msgstr ""
#: editor/editor_node.cpp
+#, fuzzy
+msgid "Apply MeshInstance Transforms"
+msgstr "Animacija: Pakeisti TransformacijÄ…"
+
+#: editor/editor_node.cpp
msgid "Open & Run a Script"
msgstr ""
@@ -3443,6 +3472,10 @@ msgid ""
"property (%s)."
msgstr ""
+#: editor/editor_resource_picker.cpp
+msgid "Quick Load"
+msgstr ""
+
#: editor/editor_resource_picker.cpp editor/property_editor.cpp
msgid "Make Unique"
msgstr ""
@@ -5572,6 +5605,17 @@ msgid "Move CanvasItem \"%s\" to (%d, %d)"
msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Locked"
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Grouped"
+msgstr "Panaikinti pasirinkimÄ…"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
msgid ""
"Children of containers have their anchors and margins values overridden by "
"their parent."
@@ -6500,7 +6544,11 @@ msgid "Remove Selected Item"
msgstr ""
#: editor/plugins/mesh_library_editor_plugin.cpp
-msgid "Import from Scene"
+msgid "Import from Scene (Ignore Transforms)"
+msgstr ""
+
+#: editor/plugins/mesh_library_editor_plugin.cpp
+msgid "Import from Scene (Apply Transforms)"
msgstr ""
#: editor/plugins/mesh_library_editor_plugin.cpp
@@ -7098,6 +7146,16 @@ msgstr "Sukurti"
msgid "Flip Portal"
msgstr ""
+#: editor/plugins/room_manager_editor_plugin.cpp
+#, fuzzy
+msgid "Occluder Set Transform"
+msgstr "Animacija: Pakeisti TransformacijÄ…"
+
+#: editor/plugins/room_manager_editor_plugin.cpp
+#, fuzzy
+msgid "Center Node"
+msgstr "Ištrinti Efektą"
+
#: editor/plugins/root_motion_editor_plugin.cpp
msgid "AnimationTree has no path set to an AnimationPlayer"
msgstr ""
@@ -7610,11 +7668,12 @@ msgid "Skeleton2D"
msgstr ""
#: editor/plugins/skeleton_2d_editor_plugin.cpp
-msgid "Make Rest Pose (From Bones)"
-msgstr ""
+#, fuzzy
+msgid "Reset to Rest Pose"
+msgstr "Sukurti NaujÄ…"
#: editor/plugins/skeleton_2d_editor_plugin.cpp
-msgid "Set Bones to Rest Pose"
+msgid "Overwrite Rest Pose"
msgstr ""
#: editor/plugins/skeleton_editor_plugin.cpp
@@ -7642,6 +7701,60 @@ msgid "Perspective"
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Top Orthogonal"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Top Perspective"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Bottom Orthogonal"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Bottom Perspective"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Left Orthogonal"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Right Perspective"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Right Orthogonal"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Front Orthogonal"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Front Perspective"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Rear Orthogonal"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Rear Perspective"
+msgstr ""
+
+#. TRANSLATORS: This will be appended to the view name when Auto Orthogonal is enabled.
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid " [auto]"
+msgstr ""
+
+#. TRANSLATORS: This will be appended to the view name when Portal Occulusion is enabled.
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid " [portals active]"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
msgid "Transform Aborted."
msgstr ""
@@ -7750,42 +7863,22 @@ msgid "Bottom View."
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
-msgid "Bottom"
-msgstr ""
-
-#: editor/plugins/spatial_editor_plugin.cpp
msgid "Left View."
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
-msgid "Left"
-msgstr ""
-
-#: editor/plugins/spatial_editor_plugin.cpp
msgid "Right View."
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
-msgid "Right"
-msgstr ""
-
-#: editor/plugins/spatial_editor_plugin.cpp
msgid "Front View."
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
-msgid "Front"
-msgstr ""
-
-#: editor/plugins/spatial_editor_plugin.cpp
msgid "Rear View."
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
-msgid "Rear"
-msgstr ""
-
-#: editor/plugins/spatial_editor_plugin.cpp
msgid "Align Transform with View"
msgstr ""
@@ -8050,6 +8143,11 @@ msgid "View Portal Culling"
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "View Occlusion Culling"
+msgstr "Priedai"
+
+#: editor/plugins/spatial_editor_plugin.cpp
#: modules/gridmap/grid_map_editor_plugin.cpp
msgid "Settings..."
msgstr ""
@@ -8115,7 +8213,7 @@ msgid "Post"
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
-msgid "Nameless gizmo"
+msgid "Unnamed Gizmo"
msgstr ""
#: editor/plugins/sprite_editor_plugin.cpp
@@ -12174,6 +12272,14 @@ msgstr ""
msgid "Set Portal Point Position"
msgstr ""
+#: editor/spatial_editor_gizmos.cpp
+msgid "Set Occluder Sphere Radius"
+msgstr ""
+
+#: editor/spatial_editor_gizmos.cpp
+msgid "Set Occluder Sphere Position"
+msgstr ""
+
#: modules/csg/csg_gizmos.cpp
msgid "Change Cylinder Radius"
msgstr ""
@@ -12462,6 +12568,11 @@ msgstr ""
msgid "Class name can't be a reserved keyword"
msgstr ""
+#: modules/mono/csharp_script.cpp
+#, fuzzy
+msgid "Build Solution"
+msgstr "Visas Pasirinkimas"
+
#: modules/mono/mono_gd/gd_mono_utils.cpp
msgid "End of inner exception stack trace"
msgstr ""
@@ -12947,163 +13058,152 @@ msgstr ""
msgid "Get %s"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Package name is missing."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Package segments must be of non-zero length."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "The character '%s' is not allowed in Android application package names."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "A digit cannot be the first character in a package segment."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "The character '%s' cannot be the first character in a package segment."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "The package must have at least one '.' separator."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Select device from the list"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Running on %s"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
#, fuzzy
msgid "Exporting APK..."
msgstr "Redaguoti"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
#, fuzzy
msgid "Uninstalling..."
msgstr "Išinstaliuoti"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
#, fuzzy
msgid "Installing to device, please wait..."
msgstr "Atsiųsti"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Could not install to device: %s"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Running on device..."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Could not execute on device."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Unable to find the 'apksigner' tool."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Android build template not installed in the project. Install it from the "
"Project menu."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Either Debug Keystore, Debug User AND Debug Password settings must be "
"configured OR none of them."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Debug keystore not configured in the Editor Settings nor in the preset."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Either Release Keystore, Release User AND Release Password settings must be "
"configured OR none of them."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Release keystore incorrectly configured in the export preset."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "A valid Android SDK path is required in Editor Settings."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Invalid Android SDK path in Editor Settings."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Missing 'platform-tools' directory!"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Unable to find Android SDK platform-tools' adb command."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Please check in the Android SDK directory specified in Editor Settings."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Missing 'build-tools' directory!"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Unable to find Android SDK build-tools' apksigner command."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Invalid public key for APK expansion."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
#, fuzzy
msgid "Invalid package name:"
msgstr "Netinkamas šrifto dydis."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Invalid \"GodotPaymentV3\" module included in the \"android/modules\" "
"project setting (changed in Godot 3.2.2).\n"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "\"Use Custom Build\" must be enabled to use the plugins."
msgstr ""
-#: platform/android/export/export.cpp
-msgid ""
-"\"Degrees Of Freedom\" is only valid when \"Xr Mode\" is \"Oculus Mobile VR"
-"\"."
-msgstr ""
-
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"\"Hand Tracking\" is only valid when \"Xr Mode\" is \"Oculus Mobile VR\"."
msgstr ""
-#: platform/android/export/export.cpp
-msgid ""
-"\"Focus Awareness\" is only valid when \"Xr Mode\" is \"Oculus Mobile VR\"."
-msgstr ""
-
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "\"Export AAB\" is only valid when \"Use Custom Build\" is enabled."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"'apksigner' could not be found.\n"
"Please check the command is available in the Android SDK build-tools "
@@ -13111,57 +13211,57 @@ msgid ""
"The resulting %s is unsigned."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Signing debug %s..."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Signing release %s..."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Could not find keystore, unable to export."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "'apksigner' returned with error #%d"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Verifying %s..."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "'apksigner' verification of %s failed."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Exporting for Android"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Invalid filename! Android App Bundle requires the *.aab extension."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "APK Expansion not compatible with Android App Bundle."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Invalid filename! Android APK requires the *.apk extension."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Unsupported export format!\n"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Trying to build from a custom built template, but no version info for it "
"exists. Please reinstall from the 'Project' menu."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Android build version mismatch:\n"
" Template installed: %s\n"
@@ -13169,55 +13269,55 @@ msgid ""
"Please reinstall Android build template from 'Project' menu."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Unable to overwrite res://android/build/res/*.xml files with project name"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Could not export project files to gradle project\n"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Could not write expansion package file!"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Building Android Project (gradle)"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Building of Android project failed, check output for the error.\n"
"Alternatively visit docs.godotengine.org for Android build documentation."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Moving output"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Unable to copy and rename export file, check gradle project directory for "
"outputs."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
#, fuzzy
msgid "Package not found: %s"
msgstr "Animacijos Nodas"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Creating APK..."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Could not find template APK to export:\n"
"%s"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Missing libraries in the export template for the selected architectures: "
"%s.\n"
@@ -13225,20 +13325,20 @@ msgid ""
"architectures in the export preset."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
#, fuzzy
msgid "Adding files..."
msgstr "Filtrai..."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Could not export project files"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Aligning APK..."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Could not unzip temporary unaligned APK."
msgstr ""
@@ -13698,6 +13798,14 @@ msgid ""
"It only provides navigation data."
msgstr ""
+#: scene/3d/occluder.cpp
+msgid "No shape is set."
+msgstr ""
+
+#: scene/3d/occluder.cpp
+msgid "Only uniform scales are supported."
+msgstr ""
+
#: scene/3d/particles.cpp
msgid ""
"GPU-based particles are not supported by the GLES2 video driver.\n"
@@ -13992,6 +14100,14 @@ msgstr ""
msgid "Enable grid minimap."
msgstr ""
+#: scene/gui/nine_patch_rect.cpp
+msgid ""
+"The Tile and Tile Fit options for Axis Stretch properties are only effective "
+"when using the GLES3 rendering backend.\n"
+"The GLES2 backend is currently in use, so these modes will act like Stretch "
+"instead."
+msgstr ""
+
#: scene/gui/popup.cpp
msgid ""
"Popups will hide by default unless you call popup() or any of the popup*() "
@@ -14032,6 +14148,10 @@ msgstr ""
msgid "Viewport size must be greater than 0 to render anything."
msgstr ""
+#: scene/resources/occluder_shape.cpp
+msgid "OccluderShapeSphere Set Spheres"
+msgstr ""
+
#: scene/resources/visual_shader_nodes.cpp
msgid ""
"The sampler port is connected but not used. Consider changing the source to "
diff --git a/editor/translations/lv.po b/editor/translations/lv.po
index 180cd1be1c..26674cb5b8 100644
--- a/editor/translations/lv.po
+++ b/editor/translations/lv.po
@@ -1029,7 +1029,7 @@ msgstr ""
msgid "Dependencies"
msgstr "Atkarības"
-#: editor/dependency_editor.cpp
+#: editor/dependency_editor.cpp editor/editor_resource_picker.cpp
msgid "Resource"
msgstr "Resurs"
@@ -1678,13 +1678,13 @@ msgid ""
"Enabled'."
msgstr ""
-#: editor/editor_export.cpp platform/android/export/export.cpp
+#: editor/editor_export.cpp platform/android/export/export_plugin.cpp
#: platform/iphone/export/export.cpp platform/javascript/export/export.cpp
#: platform/osx/export/export.cpp platform/uwp/export/export.cpp
msgid "Custom debug template not found."
msgstr ""
-#: editor/editor_export.cpp platform/android/export/export.cpp
+#: editor/editor_export.cpp platform/android/export/export_plugin.cpp
#: platform/iphone/export/export.cpp platform/javascript/export/export.cpp
#: platform/osx/export/export.cpp platform/uwp/export/export.cpp
msgid "Custom release template not found."
@@ -2059,7 +2059,7 @@ msgstr ""
msgid "(Re)Importing Assets"
msgstr ""
-#: editor/editor_help.cpp editor/plugins/spatial_editor_plugin.cpp
+#: editor/editor_help.cpp
msgid "Top"
msgstr ""
@@ -2537,6 +2537,30 @@ msgid "Current scene not saved. Open anyway?"
msgstr ""
#: editor/editor_node.cpp
+msgid "Can't undo while mouse buttons are pressed."
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "Nothing to undo."
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "Undo: %s"
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "Can't redo while mouse buttons are pressed."
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "Nothing to redo."
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "Redo: %s"
+msgstr ""
+
+#: editor/editor_node.cpp
msgid "Can't reload a scene that was never saved."
msgstr ""
@@ -3162,6 +3186,11 @@ msgid "Merge With Existing"
msgstr ""
#: editor/editor_node.cpp
+#, fuzzy
+msgid "Apply MeshInstance Transforms"
+msgstr "Anim IzmainÄ«t TransformÄciju"
+
+#: editor/editor_node.cpp
msgid "Open & Run a Script"
msgstr ""
@@ -3406,6 +3435,10 @@ msgid ""
"property (%s)."
msgstr ""
+#: editor/editor_resource_picker.cpp
+msgid "Quick Load"
+msgstr ""
+
#: editor/editor_resource_picker.cpp editor/property_editor.cpp
msgid "Make Unique"
msgstr ""
@@ -5459,6 +5492,17 @@ msgid "Move CanvasItem \"%s\" to (%d, %d)"
msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Locked"
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Grouped"
+msgstr "Grupa Izvēlēta"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
msgid ""
"Children of containers have their anchors and margins values overridden by "
"their parent."
@@ -6370,7 +6414,11 @@ msgid "Remove Selected Item"
msgstr ""
#: editor/plugins/mesh_library_editor_plugin.cpp
-msgid "Import from Scene"
+msgid "Import from Scene (Ignore Transforms)"
+msgstr ""
+
+#: editor/plugins/mesh_library_editor_plugin.cpp
+msgid "Import from Scene (Apply Transforms)"
msgstr ""
#: editor/plugins/mesh_library_editor_plugin.cpp
@@ -6962,6 +7010,15 @@ msgstr "Izveidot punktus."
msgid "Flip Portal"
msgstr ""
+#: editor/plugins/room_manager_editor_plugin.cpp
+msgid "Occluder Set Transform"
+msgstr ""
+
+#: editor/plugins/room_manager_editor_plugin.cpp
+#, fuzzy
+msgid "Center Node"
+msgstr "Izdzēst"
+
#: editor/plugins/root_motion_editor_plugin.cpp
msgid "AnimationTree has no path set to an AnimationPlayer"
msgstr ""
@@ -7468,11 +7525,12 @@ msgid "Skeleton2D"
msgstr ""
#: editor/plugins/skeleton_2d_editor_plugin.cpp
-msgid "Make Rest Pose (From Bones)"
-msgstr ""
+#, fuzzy
+msgid "Reset to Rest Pose"
+msgstr "IelÄdÄ“t NoklusÄ“jumu"
#: editor/plugins/skeleton_2d_editor_plugin.cpp
-msgid "Set Bones to Rest Pose"
+msgid "Overwrite Rest Pose"
msgstr ""
#: editor/plugins/skeleton_editor_plugin.cpp
@@ -7500,6 +7558,60 @@ msgid "Perspective"
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Top Orthogonal"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Top Perspective"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Bottom Orthogonal"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Bottom Perspective"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Left Orthogonal"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Right Perspective"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Right Orthogonal"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Front Orthogonal"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Front Perspective"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Rear Orthogonal"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Rear Perspective"
+msgstr ""
+
+#. TRANSLATORS: This will be appended to the view name when Auto Orthogonal is enabled.
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid " [auto]"
+msgstr ""
+
+#. TRANSLATORS: This will be appended to the view name when Portal Occulusion is enabled.
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid " [portals active]"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
msgid "Transform Aborted."
msgstr ""
@@ -7610,42 +7722,22 @@ msgid "Bottom View."
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
-msgid "Bottom"
-msgstr ""
-
-#: editor/plugins/spatial_editor_plugin.cpp
msgid "Left View."
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
-msgid "Left"
-msgstr ""
-
-#: editor/plugins/spatial_editor_plugin.cpp
msgid "Right View."
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
-msgid "Right"
-msgstr ""
-
-#: editor/plugins/spatial_editor_plugin.cpp
msgid "Front View."
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
-msgid "Front"
-msgstr ""
-
-#: editor/plugins/spatial_editor_plugin.cpp
msgid "Rear View."
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
-msgid "Rear"
-msgstr ""
-
-#: editor/plugins/spatial_editor_plugin.cpp
msgid "Align Transform with View"
msgstr ""
@@ -7909,6 +8001,11 @@ msgid "View Portal Culling"
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "View Occlusion Culling"
+msgstr "Izveidot"
+
+#: editor/plugins/spatial_editor_plugin.cpp
#: modules/gridmap/grid_map_editor_plugin.cpp
msgid "Settings..."
msgstr ""
@@ -7974,7 +8071,7 @@ msgid "Post"
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
-msgid "Nameless gizmo"
+msgid "Unnamed Gizmo"
msgstr ""
#: editor/plugins/sprite_editor_plugin.cpp
@@ -11988,6 +12085,14 @@ msgstr ""
msgid "Set Portal Point Position"
msgstr ""
+#: editor/spatial_editor_gizmos.cpp
+msgid "Set Occluder Sphere Radius"
+msgstr ""
+
+#: editor/spatial_editor_gizmos.cpp
+msgid "Set Occluder Sphere Position"
+msgstr ""
+
#: modules/csg/csg_gizmos.cpp
msgid "Change Cylinder Radius"
msgstr ""
@@ -12273,6 +12378,11 @@ msgstr ""
msgid "Class name can't be a reserved keyword"
msgstr ""
+#: modules/mono/csharp_script.cpp
+#, fuzzy
+msgid "Build Solution"
+msgstr "Visa Izvēle"
+
#: modules/mono/mono_gd/gd_mono_utils.cpp
msgid "End of inner exception stack trace"
msgstr ""
@@ -12750,161 +12860,150 @@ msgstr ""
msgid "Get %s"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Package name is missing."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Package segments must be of non-zero length."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "The character '%s' is not allowed in Android application package names."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "A digit cannot be the first character in a package segment."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "The character '%s' cannot be the first character in a package segment."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "The package must have at least one '.' separator."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Select device from the list"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Running on %s"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Exporting APK..."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
#, fuzzy
msgid "Uninstalling..."
msgstr "Instalēt..."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
#, fuzzy
msgid "Installing to device, please wait..."
msgstr "IelÄdÄ“t..."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Could not install to device: %s"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Running on device..."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Could not execute on device."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Unable to find the 'apksigner' tool."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Android build template not installed in the project. Install it from the "
"Project menu."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Either Debug Keystore, Debug User AND Debug Password settings must be "
"configured OR none of them."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Debug keystore not configured in the Editor Settings nor in the preset."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Either Release Keystore, Release User AND Release Password settings must be "
"configured OR none of them."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Release keystore incorrectly configured in the export preset."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "A valid Android SDK path is required in Editor Settings."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Invalid Android SDK path in Editor Settings."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Missing 'platform-tools' directory!"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Unable to find Android SDK platform-tools' adb command."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Please check in the Android SDK directory specified in Editor Settings."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Missing 'build-tools' directory!"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Unable to find Android SDK build-tools' apksigner command."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Invalid public key for APK expansion."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Invalid package name:"
msgstr "Nederīgs paketes nosaukums:"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Invalid \"GodotPaymentV3\" module included in the \"android/modules\" "
"project setting (changed in Godot 3.2.2).\n"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "\"Use Custom Build\" must be enabled to use the plugins."
msgstr ""
-#: platform/android/export/export.cpp
-msgid ""
-"\"Degrees Of Freedom\" is only valid when \"Xr Mode\" is \"Oculus Mobile VR"
-"\"."
-msgstr ""
-
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"\"Hand Tracking\" is only valid when \"Xr Mode\" is \"Oculus Mobile VR\"."
msgstr ""
-#: platform/android/export/export.cpp
-msgid ""
-"\"Focus Awareness\" is only valid when \"Xr Mode\" is \"Oculus Mobile VR\"."
-msgstr ""
-
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "\"Export AAB\" is only valid when \"Use Custom Build\" is enabled."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"'apksigner' could not be found.\n"
"Please check the command is available in the Android SDK build-tools "
@@ -12912,57 +13011,57 @@ msgid ""
"The resulting %s is unsigned."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Signing debug %s..."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Signing release %s..."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Could not find keystore, unable to export."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "'apksigner' returned with error #%d"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Verifying %s..."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "'apksigner' verification of %s failed."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Exporting for Android"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Invalid filename! Android App Bundle requires the *.aab extension."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "APK Expansion not compatible with Android App Bundle."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Invalid filename! Android APK requires the *.apk extension."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Unsupported export format!\n"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Trying to build from a custom built template, but no version info for it "
"exists. Please reinstall from the 'Project' menu."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Android build version mismatch:\n"
" Template installed: %s\n"
@@ -12970,55 +13069,55 @@ msgid ""
"Please reinstall Android build template from 'Project' menu."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Unable to overwrite res://android/build/res/*.xml files with project name"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Could not export project files to gradle project\n"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Could not write expansion package file!"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Building Android Project (gradle)"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Building of Android project failed, check output for the error.\n"
"Alternatively visit docs.godotengine.org for Android build documentation."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Moving output"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Unable to copy and rename export file, check gradle project directory for "
"outputs."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
#, fuzzy
msgid "Package not found: %s"
msgstr "AnimÄcija netika atrasta: '%s'"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Creating APK..."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Could not find template APK to export:\n"
"%s"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Missing libraries in the export template for the selected architectures: "
"%s.\n"
@@ -13026,20 +13125,20 @@ msgid ""
"architectures in the export preset."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
#, fuzzy
msgid "Adding files..."
msgstr "Pievienot Mezglus..."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Could not export project files"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Aligning APK..."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Could not unzip temporary unaligned APK."
msgstr ""
@@ -13496,6 +13595,14 @@ msgid ""
"It only provides navigation data."
msgstr ""
+#: scene/3d/occluder.cpp
+msgid "No shape is set."
+msgstr ""
+
+#: scene/3d/occluder.cpp
+msgid "Only uniform scales are supported."
+msgstr ""
+
#: scene/3d/particles.cpp
msgid ""
"GPU-based particles are not supported by the GLES2 video driver.\n"
@@ -13786,6 +13893,14 @@ msgstr ""
msgid "Enable grid minimap."
msgstr ""
+#: scene/gui/nine_patch_rect.cpp
+msgid ""
+"The Tile and Tile Fit options for Axis Stretch properties are only effective "
+"when using the GLES3 rendering backend.\n"
+"The GLES2 backend is currently in use, so these modes will act like Stretch "
+"instead."
+msgstr ""
+
#: scene/gui/popup.cpp
msgid ""
"Popups will hide by default unless you call popup() or any of the popup*() "
@@ -13826,6 +13941,10 @@ msgstr ""
msgid "Viewport size must be greater than 0 to render anything."
msgstr ""
+#: scene/resources/occluder_shape.cpp
+msgid "OccluderShapeSphere Set Spheres"
+msgstr ""
+
#: scene/resources/visual_shader_nodes.cpp
msgid ""
"The sampler port is connected but not used. Consider changing the source to "
diff --git a/editor/translations/mi.po b/editor/translations/mi.po
index 3a70aade1a..456d89671e 100644
--- a/editor/translations/mi.po
+++ b/editor/translations/mi.po
@@ -985,7 +985,7 @@ msgstr ""
msgid "Dependencies"
msgstr ""
-#: editor/dependency_editor.cpp
+#: editor/dependency_editor.cpp editor/editor_resource_picker.cpp
msgid "Resource"
msgstr ""
@@ -1614,13 +1614,13 @@ msgid ""
"Enabled'."
msgstr ""
-#: editor/editor_export.cpp platform/android/export/export.cpp
+#: editor/editor_export.cpp platform/android/export/export_plugin.cpp
#: platform/iphone/export/export.cpp platform/javascript/export/export.cpp
#: platform/osx/export/export.cpp platform/uwp/export/export.cpp
msgid "Custom debug template not found."
msgstr ""
-#: editor/editor_export.cpp platform/android/export/export.cpp
+#: editor/editor_export.cpp platform/android/export/export_plugin.cpp
#: platform/iphone/export/export.cpp platform/javascript/export/export.cpp
#: platform/osx/export/export.cpp platform/uwp/export/export.cpp
msgid "Custom release template not found."
@@ -1990,7 +1990,7 @@ msgstr ""
msgid "(Re)Importing Assets"
msgstr ""
-#: editor/editor_help.cpp editor/plugins/spatial_editor_plugin.cpp
+#: editor/editor_help.cpp
msgid "Top"
msgstr ""
@@ -2468,6 +2468,30 @@ msgid "Current scene not saved. Open anyway?"
msgstr ""
#: editor/editor_node.cpp
+msgid "Can't undo while mouse buttons are pressed."
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "Nothing to undo."
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "Undo: %s"
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "Can't redo while mouse buttons are pressed."
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "Nothing to redo."
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "Redo: %s"
+msgstr ""
+
+#: editor/editor_node.cpp
msgid "Can't reload a scene that was never saved."
msgstr ""
@@ -3091,6 +3115,10 @@ msgid "Merge With Existing"
msgstr ""
#: editor/editor_node.cpp
+msgid "Apply MeshInstance Transforms"
+msgstr ""
+
+#: editor/editor_node.cpp
msgid "Open & Run a Script"
msgstr ""
@@ -3331,6 +3359,10 @@ msgid ""
"property (%s)."
msgstr ""
+#: editor/editor_resource_picker.cpp
+msgid "Quick Load"
+msgstr ""
+
#: editor/editor_resource_picker.cpp editor/property_editor.cpp
msgid "Make Unique"
msgstr ""
@@ -5371,6 +5403,16 @@ msgid "Move CanvasItem \"%s\" to (%d, %d)"
msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Locked"
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Grouped"
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
msgid ""
"Children of containers have their anchors and margins values overridden by "
"their parent."
@@ -6269,7 +6311,11 @@ msgid "Remove Selected Item"
msgstr ""
#: editor/plugins/mesh_library_editor_plugin.cpp
-msgid "Import from Scene"
+msgid "Import from Scene (Ignore Transforms)"
+msgstr ""
+
+#: editor/plugins/mesh_library_editor_plugin.cpp
+msgid "Import from Scene (Apply Transforms)"
msgstr ""
#: editor/plugins/mesh_library_editor_plugin.cpp
@@ -6853,6 +6899,14 @@ msgstr ""
msgid "Flip Portal"
msgstr ""
+#: editor/plugins/room_manager_editor_plugin.cpp
+msgid "Occluder Set Transform"
+msgstr ""
+
+#: editor/plugins/room_manager_editor_plugin.cpp
+msgid "Center Node"
+msgstr ""
+
#: editor/plugins/root_motion_editor_plugin.cpp
msgid "AnimationTree has no path set to an AnimationPlayer"
msgstr ""
@@ -7347,11 +7401,11 @@ msgid "Skeleton2D"
msgstr ""
#: editor/plugins/skeleton_2d_editor_plugin.cpp
-msgid "Make Rest Pose (From Bones)"
+msgid "Reset to Rest Pose"
msgstr ""
#: editor/plugins/skeleton_2d_editor_plugin.cpp
-msgid "Set Bones to Rest Pose"
+msgid "Overwrite Rest Pose"
msgstr ""
#: editor/plugins/skeleton_editor_plugin.cpp
@@ -7379,6 +7433,60 @@ msgid "Perspective"
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Top Orthogonal"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Top Perspective"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Bottom Orthogonal"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Bottom Perspective"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Left Orthogonal"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Right Perspective"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Right Orthogonal"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Front Orthogonal"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Front Perspective"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Rear Orthogonal"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Rear Perspective"
+msgstr ""
+
+#. TRANSLATORS: This will be appended to the view name when Auto Orthogonal is enabled.
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid " [auto]"
+msgstr ""
+
+#. TRANSLATORS: This will be appended to the view name when Portal Occulusion is enabled.
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid " [portals active]"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
msgid "Transform Aborted."
msgstr ""
@@ -7486,42 +7594,22 @@ msgid "Bottom View."
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
-msgid "Bottom"
-msgstr ""
-
-#: editor/plugins/spatial_editor_plugin.cpp
msgid "Left View."
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
-msgid "Left"
-msgstr ""
-
-#: editor/plugins/spatial_editor_plugin.cpp
msgid "Right View."
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
-msgid "Right"
-msgstr ""
-
-#: editor/plugins/spatial_editor_plugin.cpp
msgid "Front View."
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
-msgid "Front"
-msgstr ""
-
-#: editor/plugins/spatial_editor_plugin.cpp
msgid "Rear View."
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
-msgid "Rear"
-msgstr ""
-
-#: editor/plugins/spatial_editor_plugin.cpp
msgid "Align Transform with View"
msgstr ""
@@ -7783,6 +7871,10 @@ msgid "View Portal Culling"
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
+msgid "View Occlusion Culling"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
#: modules/gridmap/grid_map_editor_plugin.cpp
msgid "Settings..."
msgstr ""
@@ -7848,7 +7940,7 @@ msgid "Post"
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
-msgid "Nameless gizmo"
+msgid "Unnamed Gizmo"
msgstr ""
#: editor/plugins/sprite_editor_plugin.cpp
@@ -11748,6 +11840,14 @@ msgstr ""
msgid "Set Portal Point Position"
msgstr ""
+#: editor/spatial_editor_gizmos.cpp
+msgid "Set Occluder Sphere Radius"
+msgstr ""
+
+#: editor/spatial_editor_gizmos.cpp
+msgid "Set Occluder Sphere Position"
+msgstr ""
+
#: modules/csg/csg_gizmos.cpp
msgid "Change Cylinder Radius"
msgstr ""
@@ -12028,6 +12128,10 @@ msgstr ""
msgid "Class name can't be a reserved keyword"
msgstr ""
+#: modules/mono/csharp_script.cpp
+msgid "Build Solution"
+msgstr ""
+
#: modules/mono/mono_gd/gd_mono_utils.cpp
msgid "End of inner exception stack trace"
msgstr ""
@@ -12494,159 +12598,148 @@ msgstr ""
msgid "Get %s"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Package name is missing."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Package segments must be of non-zero length."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "The character '%s' is not allowed in Android application package names."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "A digit cannot be the first character in a package segment."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "The character '%s' cannot be the first character in a package segment."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "The package must have at least one '.' separator."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Select device from the list"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Running on %s"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Exporting APK..."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Uninstalling..."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Installing to device, please wait..."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Could not install to device: %s"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Running on device..."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Could not execute on device."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Unable to find the 'apksigner' tool."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Android build template not installed in the project. Install it from the "
"Project menu."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Either Debug Keystore, Debug User AND Debug Password settings must be "
"configured OR none of them."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Debug keystore not configured in the Editor Settings nor in the preset."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Either Release Keystore, Release User AND Release Password settings must be "
"configured OR none of them."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Release keystore incorrectly configured in the export preset."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "A valid Android SDK path is required in Editor Settings."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Invalid Android SDK path in Editor Settings."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Missing 'platform-tools' directory!"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Unable to find Android SDK platform-tools' adb command."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Please check in the Android SDK directory specified in Editor Settings."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Missing 'build-tools' directory!"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Unable to find Android SDK build-tools' apksigner command."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Invalid public key for APK expansion."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Invalid package name:"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Invalid \"GodotPaymentV3\" module included in the \"android/modules\" "
"project setting (changed in Godot 3.2.2).\n"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "\"Use Custom Build\" must be enabled to use the plugins."
msgstr ""
-#: platform/android/export/export.cpp
-msgid ""
-"\"Degrees Of Freedom\" is only valid when \"Xr Mode\" is \"Oculus Mobile VR"
-"\"."
-msgstr ""
-
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"\"Hand Tracking\" is only valid when \"Xr Mode\" is \"Oculus Mobile VR\"."
msgstr ""
-#: platform/android/export/export.cpp
-msgid ""
-"\"Focus Awareness\" is only valid when \"Xr Mode\" is \"Oculus Mobile VR\"."
-msgstr ""
-
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "\"Export AAB\" is only valid when \"Use Custom Build\" is enabled."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"'apksigner' could not be found.\n"
"Please check the command is available in the Android SDK build-tools "
@@ -12654,57 +12747,57 @@ msgid ""
"The resulting %s is unsigned."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Signing debug %s..."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Signing release %s..."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Could not find keystore, unable to export."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "'apksigner' returned with error #%d"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Verifying %s..."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "'apksigner' verification of %s failed."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Exporting for Android"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Invalid filename! Android App Bundle requires the *.aab extension."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "APK Expansion not compatible with Android App Bundle."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Invalid filename! Android APK requires the *.apk extension."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Unsupported export format!\n"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Trying to build from a custom built template, but no version info for it "
"exists. Please reinstall from the 'Project' menu."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Android build version mismatch:\n"
" Template installed: %s\n"
@@ -12712,54 +12805,54 @@ msgid ""
"Please reinstall Android build template from 'Project' menu."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Unable to overwrite res://android/build/res/*.xml files with project name"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Could not export project files to gradle project\n"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Could not write expansion package file!"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Building Android Project (gradle)"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Building of Android project failed, check output for the error.\n"
"Alternatively visit docs.godotengine.org for Android build documentation."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Moving output"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Unable to copy and rename export file, check gradle project directory for "
"outputs."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Package not found: %s"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Creating APK..."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Could not find template APK to export:\n"
"%s"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Missing libraries in the export template for the selected architectures: "
"%s.\n"
@@ -12767,19 +12860,19 @@ msgid ""
"architectures in the export preset."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Adding files..."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Could not export project files"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Aligning APK..."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Could not unzip temporary unaligned APK."
msgstr ""
@@ -13229,6 +13322,14 @@ msgid ""
"It only provides navigation data."
msgstr ""
+#: scene/3d/occluder.cpp
+msgid "No shape is set."
+msgstr ""
+
+#: scene/3d/occluder.cpp
+msgid "Only uniform scales are supported."
+msgstr ""
+
#: scene/3d/particles.cpp
msgid ""
"GPU-based particles are not supported by the GLES2 video driver.\n"
@@ -13518,6 +13619,14 @@ msgstr ""
msgid "Enable grid minimap."
msgstr ""
+#: scene/gui/nine_patch_rect.cpp
+msgid ""
+"The Tile and Tile Fit options for Axis Stretch properties are only effective "
+"when using the GLES3 rendering backend.\n"
+"The GLES2 backend is currently in use, so these modes will act like Stretch "
+"instead."
+msgstr ""
+
#: scene/gui/popup.cpp
msgid ""
"Popups will hide by default unless you call popup() or any of the popup*() "
@@ -13558,6 +13667,10 @@ msgstr ""
msgid "Viewport size must be greater than 0 to render anything."
msgstr ""
+#: scene/resources/occluder_shape.cpp
+msgid "OccluderShapeSphere Set Spheres"
+msgstr ""
+
#: scene/resources/visual_shader_nodes.cpp
msgid ""
"The sampler port is connected but not used. Consider changing the source to "
diff --git a/editor/translations/mk.po b/editor/translations/mk.po
index bf449381bb..26d14a75ba 100644
--- a/editor/translations/mk.po
+++ b/editor/translations/mk.po
@@ -992,7 +992,7 @@ msgstr ""
msgid "Dependencies"
msgstr ""
-#: editor/dependency_editor.cpp
+#: editor/dependency_editor.cpp editor/editor_resource_picker.cpp
msgid "Resource"
msgstr ""
@@ -1621,13 +1621,13 @@ msgid ""
"Enabled'."
msgstr ""
-#: editor/editor_export.cpp platform/android/export/export.cpp
+#: editor/editor_export.cpp platform/android/export/export_plugin.cpp
#: platform/iphone/export/export.cpp platform/javascript/export/export.cpp
#: platform/osx/export/export.cpp platform/uwp/export/export.cpp
msgid "Custom debug template not found."
msgstr ""
-#: editor/editor_export.cpp platform/android/export/export.cpp
+#: editor/editor_export.cpp platform/android/export/export_plugin.cpp
#: platform/iphone/export/export.cpp platform/javascript/export/export.cpp
#: platform/osx/export/export.cpp platform/uwp/export/export.cpp
msgid "Custom release template not found."
@@ -1998,7 +1998,7 @@ msgstr ""
msgid "(Re)Importing Assets"
msgstr ""
-#: editor/editor_help.cpp editor/plugins/spatial_editor_plugin.cpp
+#: editor/editor_help.cpp
msgid "Top"
msgstr ""
@@ -2476,6 +2476,30 @@ msgid "Current scene not saved. Open anyway?"
msgstr ""
#: editor/editor_node.cpp
+msgid "Can't undo while mouse buttons are pressed."
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "Nothing to undo."
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "Undo: %s"
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "Can't redo while mouse buttons are pressed."
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "Nothing to redo."
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "Redo: %s"
+msgstr ""
+
+#: editor/editor_node.cpp
msgid "Can't reload a scene that was never saved."
msgstr ""
@@ -3100,6 +3124,10 @@ msgid "Merge With Existing"
msgstr ""
#: editor/editor_node.cpp
+msgid "Apply MeshInstance Transforms"
+msgstr ""
+
+#: editor/editor_node.cpp
msgid "Open & Run a Script"
msgstr ""
@@ -3340,6 +3368,10 @@ msgid ""
"property (%s)."
msgstr ""
+#: editor/editor_resource_picker.cpp
+msgid "Quick Load"
+msgstr ""
+
#: editor/editor_resource_picker.cpp editor/property_editor.cpp
msgid "Make Unique"
msgstr ""
@@ -5383,6 +5415,16 @@ msgid "Move CanvasItem \"%s\" to (%d, %d)"
msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Locked"
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Grouped"
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
msgid ""
"Children of containers have their anchors and margins values overridden by "
"their parent."
@@ -6282,7 +6324,11 @@ msgid "Remove Selected Item"
msgstr ""
#: editor/plugins/mesh_library_editor_plugin.cpp
-msgid "Import from Scene"
+msgid "Import from Scene (Ignore Transforms)"
+msgstr ""
+
+#: editor/plugins/mesh_library_editor_plugin.cpp
+msgid "Import from Scene (Apply Transforms)"
msgstr ""
#: editor/plugins/mesh_library_editor_plugin.cpp
@@ -6868,6 +6914,14 @@ msgstr "ПромеÑти Безиер Точка"
msgid "Flip Portal"
msgstr ""
+#: editor/plugins/room_manager_editor_plugin.cpp
+msgid "Occluder Set Transform"
+msgstr ""
+
+#: editor/plugins/room_manager_editor_plugin.cpp
+msgid "Center Node"
+msgstr ""
+
#: editor/plugins/root_motion_editor_plugin.cpp
msgid "AnimationTree has no path set to an AnimationPlayer"
msgstr ""
@@ -7362,11 +7416,11 @@ msgid "Skeleton2D"
msgstr ""
#: editor/plugins/skeleton_2d_editor_plugin.cpp
-msgid "Make Rest Pose (From Bones)"
+msgid "Reset to Rest Pose"
msgstr ""
#: editor/plugins/skeleton_2d_editor_plugin.cpp
-msgid "Set Bones to Rest Pose"
+msgid "Overwrite Rest Pose"
msgstr ""
#: editor/plugins/skeleton_editor_plugin.cpp
@@ -7394,6 +7448,60 @@ msgid "Perspective"
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Top Orthogonal"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Top Perspective"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Bottom Orthogonal"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Bottom Perspective"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Left Orthogonal"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Right Perspective"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Right Orthogonal"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Front Orthogonal"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Front Perspective"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Rear Orthogonal"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Rear Perspective"
+msgstr ""
+
+#. TRANSLATORS: This will be appended to the view name when Auto Orthogonal is enabled.
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid " [auto]"
+msgstr ""
+
+#. TRANSLATORS: This will be appended to the view name when Portal Occulusion is enabled.
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid " [portals active]"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
msgid "Transform Aborted."
msgstr ""
@@ -7501,42 +7609,22 @@ msgid "Bottom View."
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
-msgid "Bottom"
-msgstr ""
-
-#: editor/plugins/spatial_editor_plugin.cpp
msgid "Left View."
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
-msgid "Left"
-msgstr ""
-
-#: editor/plugins/spatial_editor_plugin.cpp
msgid "Right View."
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
-msgid "Right"
-msgstr ""
-
-#: editor/plugins/spatial_editor_plugin.cpp
msgid "Front View."
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
-msgid "Front"
-msgstr ""
-
-#: editor/plugins/spatial_editor_plugin.cpp
msgid "Rear View."
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
-msgid "Rear"
-msgstr ""
-
-#: editor/plugins/spatial_editor_plugin.cpp
msgid "Align Transform with View"
msgstr ""
@@ -7798,6 +7886,10 @@ msgid "View Portal Culling"
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
+msgid "View Occlusion Culling"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
#: modules/gridmap/grid_map_editor_plugin.cpp
msgid "Settings..."
msgstr ""
@@ -7863,7 +7955,7 @@ msgid "Post"
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
-msgid "Nameless gizmo"
+msgid "Unnamed Gizmo"
msgstr ""
#: editor/plugins/sprite_editor_plugin.cpp
@@ -11763,6 +11855,14 @@ msgstr ""
msgid "Set Portal Point Position"
msgstr ""
+#: editor/spatial_editor_gizmos.cpp
+msgid "Set Occluder Sphere Radius"
+msgstr ""
+
+#: editor/spatial_editor_gizmos.cpp
+msgid "Set Occluder Sphere Position"
+msgstr ""
+
#: modules/csg/csg_gizmos.cpp
msgid "Change Cylinder Radius"
msgstr ""
@@ -12043,6 +12143,10 @@ msgstr ""
msgid "Class name can't be a reserved keyword"
msgstr ""
+#: modules/mono/csharp_script.cpp
+msgid "Build Solution"
+msgstr ""
+
#: modules/mono/mono_gd/gd_mono_utils.cpp
msgid "End of inner exception stack trace"
msgstr ""
@@ -12509,159 +12613,148 @@ msgstr ""
msgid "Get %s"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Package name is missing."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Package segments must be of non-zero length."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "The character '%s' is not allowed in Android application package names."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "A digit cannot be the first character in a package segment."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "The character '%s' cannot be the first character in a package segment."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "The package must have at least one '.' separator."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Select device from the list"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Running on %s"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Exporting APK..."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Uninstalling..."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Installing to device, please wait..."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Could not install to device: %s"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Running on device..."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Could not execute on device."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Unable to find the 'apksigner' tool."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Android build template not installed in the project. Install it from the "
"Project menu."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Either Debug Keystore, Debug User AND Debug Password settings must be "
"configured OR none of them."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Debug keystore not configured in the Editor Settings nor in the preset."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Either Release Keystore, Release User AND Release Password settings must be "
"configured OR none of them."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Release keystore incorrectly configured in the export preset."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "A valid Android SDK path is required in Editor Settings."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Invalid Android SDK path in Editor Settings."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Missing 'platform-tools' directory!"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Unable to find Android SDK platform-tools' adb command."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Please check in the Android SDK directory specified in Editor Settings."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Missing 'build-tools' directory!"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Unable to find Android SDK build-tools' apksigner command."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Invalid public key for APK expansion."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Invalid package name:"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Invalid \"GodotPaymentV3\" module included in the \"android/modules\" "
"project setting (changed in Godot 3.2.2).\n"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "\"Use Custom Build\" must be enabled to use the plugins."
msgstr ""
-#: platform/android/export/export.cpp
-msgid ""
-"\"Degrees Of Freedom\" is only valid when \"Xr Mode\" is \"Oculus Mobile VR"
-"\"."
-msgstr ""
-
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"\"Hand Tracking\" is only valid when \"Xr Mode\" is \"Oculus Mobile VR\"."
msgstr ""
-#: platform/android/export/export.cpp
-msgid ""
-"\"Focus Awareness\" is only valid when \"Xr Mode\" is \"Oculus Mobile VR\"."
-msgstr ""
-
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "\"Export AAB\" is only valid when \"Use Custom Build\" is enabled."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"'apksigner' could not be found.\n"
"Please check the command is available in the Android SDK build-tools "
@@ -12669,57 +12762,57 @@ msgid ""
"The resulting %s is unsigned."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Signing debug %s..."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Signing release %s..."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Could not find keystore, unable to export."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "'apksigner' returned with error #%d"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Verifying %s..."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "'apksigner' verification of %s failed."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Exporting for Android"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Invalid filename! Android App Bundle requires the *.aab extension."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "APK Expansion not compatible with Android App Bundle."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Invalid filename! Android APK requires the *.apk extension."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Unsupported export format!\n"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Trying to build from a custom built template, but no version info for it "
"exists. Please reinstall from the 'Project' menu."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Android build version mismatch:\n"
" Template installed: %s\n"
@@ -12727,54 +12820,54 @@ msgid ""
"Please reinstall Android build template from 'Project' menu."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Unable to overwrite res://android/build/res/*.xml files with project name"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Could not export project files to gradle project\n"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Could not write expansion package file!"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Building Android Project (gradle)"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Building of Android project failed, check output for the error.\n"
"Alternatively visit docs.godotengine.org for Android build documentation."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Moving output"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Unable to copy and rename export file, check gradle project directory for "
"outputs."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Package not found: %s"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Creating APK..."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Could not find template APK to export:\n"
"%s"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Missing libraries in the export template for the selected architectures: "
"%s.\n"
@@ -12782,19 +12875,19 @@ msgid ""
"architectures in the export preset."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Adding files..."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Could not export project files"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Aligning APK..."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Could not unzip temporary unaligned APK."
msgstr ""
@@ -13244,6 +13337,14 @@ msgid ""
"It only provides navigation data."
msgstr ""
+#: scene/3d/occluder.cpp
+msgid "No shape is set."
+msgstr ""
+
+#: scene/3d/occluder.cpp
+msgid "Only uniform scales are supported."
+msgstr ""
+
#: scene/3d/particles.cpp
msgid ""
"GPU-based particles are not supported by the GLES2 video driver.\n"
@@ -13533,6 +13634,14 @@ msgstr ""
msgid "Enable grid minimap."
msgstr ""
+#: scene/gui/nine_patch_rect.cpp
+msgid ""
+"The Tile and Tile Fit options for Axis Stretch properties are only effective "
+"when using the GLES3 rendering backend.\n"
+"The GLES2 backend is currently in use, so these modes will act like Stretch "
+"instead."
+msgstr ""
+
#: scene/gui/popup.cpp
msgid ""
"Popups will hide by default unless you call popup() or any of the popup*() "
@@ -13573,6 +13682,10 @@ msgstr ""
msgid "Viewport size must be greater than 0 to render anything."
msgstr ""
+#: scene/resources/occluder_shape.cpp
+msgid "OccluderShapeSphere Set Spheres"
+msgstr ""
+
#: scene/resources/visual_shader_nodes.cpp
msgid ""
"The sampler port is connected but not used. Consider changing the source to "
diff --git a/editor/translations/ml.po b/editor/translations/ml.po
index b0d3a5a8d7..b9f86d4cf2 100644
--- a/editor/translations/ml.po
+++ b/editor/translations/ml.po
@@ -997,7 +997,7 @@ msgstr ""
msgid "Dependencies"
msgstr ""
-#: editor/dependency_editor.cpp
+#: editor/dependency_editor.cpp editor/editor_resource_picker.cpp
msgid "Resource"
msgstr ""
@@ -1627,13 +1627,13 @@ msgid ""
"Enabled'."
msgstr ""
-#: editor/editor_export.cpp platform/android/export/export.cpp
+#: editor/editor_export.cpp platform/android/export/export_plugin.cpp
#: platform/iphone/export/export.cpp platform/javascript/export/export.cpp
#: platform/osx/export/export.cpp platform/uwp/export/export.cpp
msgid "Custom debug template not found."
msgstr ""
-#: editor/editor_export.cpp platform/android/export/export.cpp
+#: editor/editor_export.cpp platform/android/export/export_plugin.cpp
#: platform/iphone/export/export.cpp platform/javascript/export/export.cpp
#: platform/osx/export/export.cpp platform/uwp/export/export.cpp
msgid "Custom release template not found."
@@ -2003,7 +2003,7 @@ msgstr ""
msgid "(Re)Importing Assets"
msgstr ""
-#: editor/editor_help.cpp editor/plugins/spatial_editor_plugin.cpp
+#: editor/editor_help.cpp
msgid "Top"
msgstr ""
@@ -2483,6 +2483,30 @@ msgid "Current scene not saved. Open anyway?"
msgstr ""
#: editor/editor_node.cpp
+msgid "Can't undo while mouse buttons are pressed."
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "Nothing to undo."
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "Undo: %s"
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "Can't redo while mouse buttons are pressed."
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "Nothing to redo."
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "Redo: %s"
+msgstr ""
+
+#: editor/editor_node.cpp
msgid "Can't reload a scene that was never saved."
msgstr ""
@@ -3106,6 +3130,11 @@ msgid "Merge With Existing"
msgstr ""
#: editor/editor_node.cpp
+#, fuzzy
+msgid "Apply MeshInstance Transforms"
+msgstr "പരിവർതàµà´¤à´¨à´‚ ചലിപàµà´ªà´¿à´•àµà´•àµà´•"
+
+#: editor/editor_node.cpp
msgid "Open & Run a Script"
msgstr ""
@@ -3346,6 +3375,10 @@ msgid ""
"property (%s)."
msgstr ""
+#: editor/editor_resource_picker.cpp
+msgid "Quick Load"
+msgstr ""
+
#: editor/editor_resource_picker.cpp editor/property_editor.cpp
msgid "Make Unique"
msgstr ""
@@ -5390,6 +5423,16 @@ msgid "Move CanvasItem \"%s\" to (%d, %d)"
msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Locked"
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Grouped"
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
msgid ""
"Children of containers have their anchors and margins values overridden by "
"their parent."
@@ -6290,7 +6333,11 @@ msgid "Remove Selected Item"
msgstr ""
#: editor/plugins/mesh_library_editor_plugin.cpp
-msgid "Import from Scene"
+msgid "Import from Scene (Ignore Transforms)"
+msgstr ""
+
+#: editor/plugins/mesh_library_editor_plugin.cpp
+msgid "Import from Scene (Apply Transforms)"
msgstr ""
#: editor/plugins/mesh_library_editor_plugin.cpp
@@ -6876,6 +6923,14 @@ msgstr "ബെസിയർ ബിനàµà´¦àµ നീകàµà´•àµà´•"
msgid "Flip Portal"
msgstr ""
+#: editor/plugins/room_manager_editor_plugin.cpp
+msgid "Occluder Set Transform"
+msgstr ""
+
+#: editor/plugins/room_manager_editor_plugin.cpp
+msgid "Center Node"
+msgstr ""
+
#: editor/plugins/root_motion_editor_plugin.cpp
msgid "AnimationTree has no path set to an AnimationPlayer"
msgstr ""
@@ -7370,11 +7425,11 @@ msgid "Skeleton2D"
msgstr ""
#: editor/plugins/skeleton_2d_editor_plugin.cpp
-msgid "Make Rest Pose (From Bones)"
+msgid "Reset to Rest Pose"
msgstr ""
#: editor/plugins/skeleton_2d_editor_plugin.cpp
-msgid "Set Bones to Rest Pose"
+msgid "Overwrite Rest Pose"
msgstr ""
#: editor/plugins/skeleton_editor_plugin.cpp
@@ -7402,6 +7457,60 @@ msgid "Perspective"
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Top Orthogonal"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Top Perspective"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Bottom Orthogonal"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Bottom Perspective"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Left Orthogonal"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Right Perspective"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Right Orthogonal"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Front Orthogonal"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Front Perspective"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Rear Orthogonal"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Rear Perspective"
+msgstr ""
+
+#. TRANSLATORS: This will be appended to the view name when Auto Orthogonal is enabled.
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid " [auto]"
+msgstr ""
+
+#. TRANSLATORS: This will be appended to the view name when Portal Occulusion is enabled.
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid " [portals active]"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
msgid "Transform Aborted."
msgstr ""
@@ -7509,42 +7618,22 @@ msgid "Bottom View."
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
-msgid "Bottom"
-msgstr ""
-
-#: editor/plugins/spatial_editor_plugin.cpp
msgid "Left View."
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
-msgid "Left"
-msgstr ""
-
-#: editor/plugins/spatial_editor_plugin.cpp
msgid "Right View."
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
-msgid "Right"
-msgstr ""
-
-#: editor/plugins/spatial_editor_plugin.cpp
msgid "Front View."
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
-msgid "Front"
-msgstr ""
-
-#: editor/plugins/spatial_editor_plugin.cpp
msgid "Rear View."
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
-msgid "Rear"
-msgstr ""
-
-#: editor/plugins/spatial_editor_plugin.cpp
msgid "Align Transform with View"
msgstr ""
@@ -7806,6 +7895,10 @@ msgid "View Portal Culling"
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
+msgid "View Occlusion Culling"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
#: modules/gridmap/grid_map_editor_plugin.cpp
msgid "Settings..."
msgstr ""
@@ -7871,7 +7964,7 @@ msgid "Post"
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
-msgid "Nameless gizmo"
+msgid "Unnamed Gizmo"
msgstr ""
#: editor/plugins/sprite_editor_plugin.cpp
@@ -11772,6 +11865,14 @@ msgstr ""
msgid "Set Portal Point Position"
msgstr ""
+#: editor/spatial_editor_gizmos.cpp
+msgid "Set Occluder Sphere Radius"
+msgstr ""
+
+#: editor/spatial_editor_gizmos.cpp
+msgid "Set Occluder Sphere Position"
+msgstr ""
+
#: modules/csg/csg_gizmos.cpp
msgid "Change Cylinder Radius"
msgstr ""
@@ -12052,6 +12153,10 @@ msgstr ""
msgid "Class name can't be a reserved keyword"
msgstr ""
+#: modules/mono/csharp_script.cpp
+msgid "Build Solution"
+msgstr ""
+
#: modules/mono/mono_gd/gd_mono_utils.cpp
msgid "End of inner exception stack trace"
msgstr ""
@@ -12520,159 +12625,148 @@ msgstr ""
msgid "Get %s"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Package name is missing."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Package segments must be of non-zero length."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "The character '%s' is not allowed in Android application package names."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "A digit cannot be the first character in a package segment."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "The character '%s' cannot be the first character in a package segment."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "The package must have at least one '.' separator."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Select device from the list"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Running on %s"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Exporting APK..."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Uninstalling..."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Installing to device, please wait..."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Could not install to device: %s"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Running on device..."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Could not execute on device."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Unable to find the 'apksigner' tool."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Android build template not installed in the project. Install it from the "
"Project menu."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Either Debug Keystore, Debug User AND Debug Password settings must be "
"configured OR none of them."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Debug keystore not configured in the Editor Settings nor in the preset."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Either Release Keystore, Release User AND Release Password settings must be "
"configured OR none of them."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Release keystore incorrectly configured in the export preset."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "A valid Android SDK path is required in Editor Settings."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Invalid Android SDK path in Editor Settings."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Missing 'platform-tools' directory!"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Unable to find Android SDK platform-tools' adb command."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Please check in the Android SDK directory specified in Editor Settings."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Missing 'build-tools' directory!"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Unable to find Android SDK build-tools' apksigner command."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Invalid public key for APK expansion."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Invalid package name:"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Invalid \"GodotPaymentV3\" module included in the \"android/modules\" "
"project setting (changed in Godot 3.2.2).\n"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "\"Use Custom Build\" must be enabled to use the plugins."
msgstr ""
-#: platform/android/export/export.cpp
-msgid ""
-"\"Degrees Of Freedom\" is only valid when \"Xr Mode\" is \"Oculus Mobile VR"
-"\"."
-msgstr ""
-
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"\"Hand Tracking\" is only valid when \"Xr Mode\" is \"Oculus Mobile VR\"."
msgstr ""
-#: platform/android/export/export.cpp
-msgid ""
-"\"Focus Awareness\" is only valid when \"Xr Mode\" is \"Oculus Mobile VR\"."
-msgstr ""
-
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "\"Export AAB\" is only valid when \"Use Custom Build\" is enabled."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"'apksigner' could not be found.\n"
"Please check the command is available in the Android SDK build-tools "
@@ -12680,57 +12774,57 @@ msgid ""
"The resulting %s is unsigned."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Signing debug %s..."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Signing release %s..."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Could not find keystore, unable to export."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "'apksigner' returned with error #%d"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Verifying %s..."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "'apksigner' verification of %s failed."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Exporting for Android"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Invalid filename! Android App Bundle requires the *.aab extension."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "APK Expansion not compatible with Android App Bundle."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Invalid filename! Android APK requires the *.apk extension."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Unsupported export format!\n"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Trying to build from a custom built template, but no version info for it "
"exists. Please reinstall from the 'Project' menu."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Android build version mismatch:\n"
" Template installed: %s\n"
@@ -12738,54 +12832,54 @@ msgid ""
"Please reinstall Android build template from 'Project' menu."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Unable to overwrite res://android/build/res/*.xml files with project name"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Could not export project files to gradle project\n"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Could not write expansion package file!"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Building Android Project (gradle)"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Building of Android project failed, check output for the error.\n"
"Alternatively visit docs.godotengine.org for Android build documentation."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Moving output"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Unable to copy and rename export file, check gradle project directory for "
"outputs."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Package not found: %s"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Creating APK..."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Could not find template APK to export:\n"
"%s"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Missing libraries in the export template for the selected architectures: "
"%s.\n"
@@ -12793,19 +12887,19 @@ msgid ""
"architectures in the export preset."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Adding files..."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Could not export project files"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Aligning APK..."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Could not unzip temporary unaligned APK."
msgstr ""
@@ -13255,6 +13349,14 @@ msgid ""
"It only provides navigation data."
msgstr ""
+#: scene/3d/occluder.cpp
+msgid "No shape is set."
+msgstr ""
+
+#: scene/3d/occluder.cpp
+msgid "Only uniform scales are supported."
+msgstr ""
+
#: scene/3d/particles.cpp
msgid ""
"GPU-based particles are not supported by the GLES2 video driver.\n"
@@ -13544,6 +13646,14 @@ msgstr ""
msgid "Enable grid minimap."
msgstr ""
+#: scene/gui/nine_patch_rect.cpp
+msgid ""
+"The Tile and Tile Fit options for Axis Stretch properties are only effective "
+"when using the GLES3 rendering backend.\n"
+"The GLES2 backend is currently in use, so these modes will act like Stretch "
+"instead."
+msgstr ""
+
#: scene/gui/popup.cpp
msgid ""
"Popups will hide by default unless you call popup() or any of the popup*() "
@@ -13584,6 +13694,10 @@ msgstr ""
msgid "Viewport size must be greater than 0 to render anything."
msgstr ""
+#: scene/resources/occluder_shape.cpp
+msgid "OccluderShapeSphere Set Spheres"
+msgstr ""
+
#: scene/resources/visual_shader_nodes.cpp
msgid ""
"The sampler port is connected but not used. Consider changing the source to "
diff --git a/editor/translations/mr.po b/editor/translations/mr.po
index af59635c8a..e305a8b937 100644
--- a/editor/translations/mr.po
+++ b/editor/translations/mr.po
@@ -993,7 +993,7 @@ msgstr ""
msgid "Dependencies"
msgstr ""
-#: editor/dependency_editor.cpp
+#: editor/dependency_editor.cpp editor/editor_resource_picker.cpp
msgid "Resource"
msgstr ""
@@ -1622,13 +1622,13 @@ msgid ""
"Enabled'."
msgstr ""
-#: editor/editor_export.cpp platform/android/export/export.cpp
+#: editor/editor_export.cpp platform/android/export/export_plugin.cpp
#: platform/iphone/export/export.cpp platform/javascript/export/export.cpp
#: platform/osx/export/export.cpp platform/uwp/export/export.cpp
msgid "Custom debug template not found."
msgstr ""
-#: editor/editor_export.cpp platform/android/export/export.cpp
+#: editor/editor_export.cpp platform/android/export/export_plugin.cpp
#: platform/iphone/export/export.cpp platform/javascript/export/export.cpp
#: platform/osx/export/export.cpp platform/uwp/export/export.cpp
msgid "Custom release template not found."
@@ -1998,7 +1998,7 @@ msgstr ""
msgid "(Re)Importing Assets"
msgstr ""
-#: editor/editor_help.cpp editor/plugins/spatial_editor_plugin.cpp
+#: editor/editor_help.cpp
msgid "Top"
msgstr ""
@@ -2476,6 +2476,30 @@ msgid "Current scene not saved. Open anyway?"
msgstr ""
#: editor/editor_node.cpp
+msgid "Can't undo while mouse buttons are pressed."
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "Nothing to undo."
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "Undo: %s"
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "Can't redo while mouse buttons are pressed."
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "Nothing to redo."
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "Redo: %s"
+msgstr ""
+
+#: editor/editor_node.cpp
msgid "Can't reload a scene that was never saved."
msgstr ""
@@ -3100,6 +3124,10 @@ msgid "Merge With Existing"
msgstr ""
#: editor/editor_node.cpp
+msgid "Apply MeshInstance Transforms"
+msgstr ""
+
+#: editor/editor_node.cpp
msgid "Open & Run a Script"
msgstr ""
@@ -3340,6 +3368,10 @@ msgid ""
"property (%s)."
msgstr ""
+#: editor/editor_resource_picker.cpp
+msgid "Quick Load"
+msgstr ""
+
#: editor/editor_resource_picker.cpp editor/property_editor.cpp
msgid "Make Unique"
msgstr ""
@@ -5380,6 +5412,16 @@ msgid "Move CanvasItem \"%s\" to (%d, %d)"
msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Locked"
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Grouped"
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
msgid ""
"Children of containers have their anchors and margins values overridden by "
"their parent."
@@ -6281,7 +6323,11 @@ msgid "Remove Selected Item"
msgstr ""
#: editor/plugins/mesh_library_editor_plugin.cpp
-msgid "Import from Scene"
+msgid "Import from Scene (Ignore Transforms)"
+msgstr ""
+
+#: editor/plugins/mesh_library_editor_plugin.cpp
+msgid "Import from Scene (Apply Transforms)"
msgstr ""
#: editor/plugins/mesh_library_editor_plugin.cpp
@@ -6865,6 +6911,15 @@ msgstr ""
msgid "Flip Portal"
msgstr ""
+#: editor/plugins/room_manager_editor_plugin.cpp
+msgid "Occluder Set Transform"
+msgstr ""
+
+#: editor/plugins/room_manager_editor_plugin.cpp
+#, fuzzy
+msgid "Center Node"
+msgstr "नोड हलवा"
+
#: editor/plugins/root_motion_editor_plugin.cpp
msgid "AnimationTree has no path set to an AnimationPlayer"
msgstr ""
@@ -7359,11 +7414,11 @@ msgid "Skeleton2D"
msgstr ""
#: editor/plugins/skeleton_2d_editor_plugin.cpp
-msgid "Make Rest Pose (From Bones)"
+msgid "Reset to Rest Pose"
msgstr ""
#: editor/plugins/skeleton_2d_editor_plugin.cpp
-msgid "Set Bones to Rest Pose"
+msgid "Overwrite Rest Pose"
msgstr ""
#: editor/plugins/skeleton_editor_plugin.cpp
@@ -7391,6 +7446,60 @@ msgid "Perspective"
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Top Orthogonal"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Top Perspective"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Bottom Orthogonal"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Bottom Perspective"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Left Orthogonal"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Right Perspective"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Right Orthogonal"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Front Orthogonal"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Front Perspective"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Rear Orthogonal"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Rear Perspective"
+msgstr ""
+
+#. TRANSLATORS: This will be appended to the view name when Auto Orthogonal is enabled.
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid " [auto]"
+msgstr ""
+
+#. TRANSLATORS: This will be appended to the view name when Portal Occulusion is enabled.
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid " [portals active]"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
msgid "Transform Aborted."
msgstr ""
@@ -7499,42 +7608,22 @@ msgid "Bottom View."
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
-msgid "Bottom"
-msgstr ""
-
-#: editor/plugins/spatial_editor_plugin.cpp
msgid "Left View."
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
-msgid "Left"
-msgstr ""
-
-#: editor/plugins/spatial_editor_plugin.cpp
msgid "Right View."
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
-msgid "Right"
-msgstr ""
-
-#: editor/plugins/spatial_editor_plugin.cpp
msgid "Front View."
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
-msgid "Front"
-msgstr ""
-
-#: editor/plugins/spatial_editor_plugin.cpp
msgid "Rear View."
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
-msgid "Rear"
-msgstr ""
-
-#: editor/plugins/spatial_editor_plugin.cpp
msgid "Align Transform with View"
msgstr ""
@@ -7796,6 +7885,10 @@ msgid "View Portal Culling"
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
+msgid "View Occlusion Culling"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
#: modules/gridmap/grid_map_editor_plugin.cpp
msgid "Settings..."
msgstr ""
@@ -7861,7 +7954,7 @@ msgid "Post"
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
-msgid "Nameless gizmo"
+msgid "Unnamed Gizmo"
msgstr ""
#: editor/plugins/sprite_editor_plugin.cpp
@@ -11765,6 +11858,14 @@ msgstr ""
msgid "Set Portal Point Position"
msgstr ""
+#: editor/spatial_editor_gizmos.cpp
+msgid "Set Occluder Sphere Radius"
+msgstr ""
+
+#: editor/spatial_editor_gizmos.cpp
+msgid "Set Occluder Sphere Position"
+msgstr ""
+
#: modules/csg/csg_gizmos.cpp
msgid "Change Cylinder Radius"
msgstr ""
@@ -12045,6 +12146,10 @@ msgstr ""
msgid "Class name can't be a reserved keyword"
msgstr ""
+#: modules/mono/csharp_script.cpp
+msgid "Build Solution"
+msgstr ""
+
#: modules/mono/mono_gd/gd_mono_utils.cpp
msgid "End of inner exception stack trace"
msgstr ""
@@ -12512,159 +12617,148 @@ msgstr ""
msgid "Get %s"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Package name is missing."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Package segments must be of non-zero length."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "The character '%s' is not allowed in Android application package names."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "A digit cannot be the first character in a package segment."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "The character '%s' cannot be the first character in a package segment."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "The package must have at least one '.' separator."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Select device from the list"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Running on %s"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Exporting APK..."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Uninstalling..."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Installing to device, please wait..."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Could not install to device: %s"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Running on device..."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Could not execute on device."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Unable to find the 'apksigner' tool."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Android build template not installed in the project. Install it from the "
"Project menu."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Either Debug Keystore, Debug User AND Debug Password settings must be "
"configured OR none of them."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Debug keystore not configured in the Editor Settings nor in the preset."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Either Release Keystore, Release User AND Release Password settings must be "
"configured OR none of them."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Release keystore incorrectly configured in the export preset."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "A valid Android SDK path is required in Editor Settings."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Invalid Android SDK path in Editor Settings."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Missing 'platform-tools' directory!"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Unable to find Android SDK platform-tools' adb command."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Please check in the Android SDK directory specified in Editor Settings."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Missing 'build-tools' directory!"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Unable to find Android SDK build-tools' apksigner command."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Invalid public key for APK expansion."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Invalid package name:"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Invalid \"GodotPaymentV3\" module included in the \"android/modules\" "
"project setting (changed in Godot 3.2.2).\n"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "\"Use Custom Build\" must be enabled to use the plugins."
msgstr ""
-#: platform/android/export/export.cpp
-msgid ""
-"\"Degrees Of Freedom\" is only valid when \"Xr Mode\" is \"Oculus Mobile VR"
-"\"."
-msgstr ""
-
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"\"Hand Tracking\" is only valid when \"Xr Mode\" is \"Oculus Mobile VR\"."
msgstr ""
-#: platform/android/export/export.cpp
-msgid ""
-"\"Focus Awareness\" is only valid when \"Xr Mode\" is \"Oculus Mobile VR\"."
-msgstr ""
-
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "\"Export AAB\" is only valid when \"Use Custom Build\" is enabled."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"'apksigner' could not be found.\n"
"Please check the command is available in the Android SDK build-tools "
@@ -12672,57 +12766,57 @@ msgid ""
"The resulting %s is unsigned."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Signing debug %s..."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Signing release %s..."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Could not find keystore, unable to export."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "'apksigner' returned with error #%d"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Verifying %s..."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "'apksigner' verification of %s failed."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Exporting for Android"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Invalid filename! Android App Bundle requires the *.aab extension."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "APK Expansion not compatible with Android App Bundle."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Invalid filename! Android APK requires the *.apk extension."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Unsupported export format!\n"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Trying to build from a custom built template, but no version info for it "
"exists. Please reinstall from the 'Project' menu."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Android build version mismatch:\n"
" Template installed: %s\n"
@@ -12730,54 +12824,54 @@ msgid ""
"Please reinstall Android build template from 'Project' menu."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Unable to overwrite res://android/build/res/*.xml files with project name"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Could not export project files to gradle project\n"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Could not write expansion package file!"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Building Android Project (gradle)"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Building of Android project failed, check output for the error.\n"
"Alternatively visit docs.godotengine.org for Android build documentation."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Moving output"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Unable to copy and rename export file, check gradle project directory for "
"outputs."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Package not found: %s"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Creating APK..."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Could not find template APK to export:\n"
"%s"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Missing libraries in the export template for the selected architectures: "
"%s.\n"
@@ -12785,19 +12879,19 @@ msgid ""
"architectures in the export preset."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Adding files..."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Could not export project files"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Aligning APK..."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Could not unzip temporary unaligned APK."
msgstr ""
@@ -13247,6 +13341,14 @@ msgid ""
"It only provides navigation data."
msgstr ""
+#: scene/3d/occluder.cpp
+msgid "No shape is set."
+msgstr ""
+
+#: scene/3d/occluder.cpp
+msgid "Only uniform scales are supported."
+msgstr ""
+
#: scene/3d/particles.cpp
msgid ""
"GPU-based particles are not supported by the GLES2 video driver.\n"
@@ -13536,6 +13638,14 @@ msgstr ""
msgid "Enable grid minimap."
msgstr ""
+#: scene/gui/nine_patch_rect.cpp
+msgid ""
+"The Tile and Tile Fit options for Axis Stretch properties are only effective "
+"when using the GLES3 rendering backend.\n"
+"The GLES2 backend is currently in use, so these modes will act like Stretch "
+"instead."
+msgstr ""
+
#: scene/gui/popup.cpp
msgid ""
"Popups will hide by default unless you call popup() or any of the popup*() "
@@ -13576,6 +13686,10 @@ msgstr ""
msgid "Viewport size must be greater than 0 to render anything."
msgstr ""
+#: scene/resources/occluder_shape.cpp
+msgid "OccluderShapeSphere Set Spheres"
+msgstr ""
+
#: scene/resources/visual_shader_nodes.cpp
msgid ""
"The sampler port is connected but not used. Consider changing the source to "
diff --git a/editor/translations/ms.po b/editor/translations/ms.po
index 5fd2547bcb..ca77c01937 100644
--- a/editor/translations/ms.po
+++ b/editor/translations/ms.po
@@ -14,7 +14,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Godot Engine editor\n"
"POT-Creation-Date: \n"
-"PO-Revision-Date: 2021-08-02 02:00+0000\n"
+"PO-Revision-Date: 2021-08-22 22:46+0000\n"
"Last-Translator: Keviindran Ramachandran <keviinx@yahoo.com>\n"
"Language-Team: Malay <https://hosted.weblate.org/projects/godot-engine/godot/"
"ms/>\n"
@@ -23,7 +23,7 @@ msgstr ""
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=1; plural=0;\n"
-"X-Generator: Weblate 4.8-dev\n"
+"X-Generator: Weblate 4.8.1-dev\n"
#: core/math/expression.cpp modules/gdscript/gdscript_functions.cpp
#: modules/visual_script/visual_script_builtin_funcs.cpp
@@ -372,7 +372,7 @@ msgstr "Masukkan Anim"
#. TRANSLATORS: This describes the target of new animation track, will be inserted into another string.
#: editor/animation_track_editor.cpp
msgid "node '%s'"
-msgstr ""
+msgstr "nod '%s'"
#. TRANSLATORS: This describes the target of new animation track, will be inserted into another string.
#: editor/animation_track_editor.cpp
@@ -599,7 +599,7 @@ msgstr "Pergi ke Langkah Sebelumnya"
#: editor/animation_track_editor.cpp
msgid "Apply Reset"
-msgstr ""
+msgstr "Guna Set Semula"
#: editor/animation_track_editor.cpp
msgid "Optimize Animation"
@@ -966,11 +966,11 @@ msgstr "Cipta %s Baru"
#: editor/create_dialog.cpp editor/plugins/asset_library_editor_plugin.cpp
msgid "No results for \"%s\"."
-msgstr ""
+msgstr "Tiada hasil untuk \"%s\"."
#: editor/create_dialog.cpp editor/property_selector.cpp
msgid "No description available for %s."
-msgstr ""
+msgstr "Tiada keterangan tersedia untuk %s."
#: editor/create_dialog.cpp editor/editor_file_dialog.cpp
#: editor/filesystem_dock.cpp
@@ -1030,7 +1030,7 @@ msgstr ""
msgid "Dependencies"
msgstr "Kebergantungan"
-#: editor/dependency_editor.cpp
+#: editor/dependency_editor.cpp editor/editor_resource_picker.cpp
msgid "Resource"
msgstr "Sumber"
@@ -1274,11 +1274,11 @@ msgstr "%s (Sudah Wujud)"
#: editor/editor_asset_installer.cpp
msgid "Contents of asset \"%s\" - %d file(s) conflict with your project:"
-msgstr ""
+msgstr "Kandungan aset \"%s\" - fail-fail %d bercanggah dengan projek anda:"
#: editor/editor_asset_installer.cpp
msgid "Contents of asset \"%s\" - No files conflict with your project:"
-msgstr ""
+msgstr "Kandungan aset \"%s\" - Tiada fail-fail bercanggah dengan projek anda:"
#: editor/editor_asset_installer.cpp
msgid "Uncompressing Assets"
@@ -1544,11 +1544,11 @@ msgstr "Tidak boleh menambahkan autoload:"
#: editor/editor_autoload_settings.cpp
msgid "%s is an invalid path. File does not exist."
-msgstr ""
+msgstr "%s adalah laluan yang tidak sah. Fail tidak wujud."
#: editor/editor_autoload_settings.cpp
msgid "%s is an invalid path. Not in resource path (res://)."
-msgstr ""
+msgstr "%s adalah laluan yang tidak sah. Tidak dalam laluan sumber (res://)."
#: editor/editor_autoload_settings.cpp
msgid "Add AutoLoad"
@@ -1573,7 +1573,7 @@ msgstr "Nama"
#: editor/editor_autoload_settings.cpp
msgid "Global Variable"
-msgstr ""
+msgstr "Pembolehubah Global"
#: editor/editor_data.cpp
msgid "Paste Params"
@@ -1697,13 +1697,13 @@ msgstr ""
"Aktifkan 'Import Pvrtc' dalam Tetapan Projek, atau nyahaktifkan 'Driver "
"Fallback Enabled'."
-#: editor/editor_export.cpp platform/android/export/export.cpp
+#: editor/editor_export.cpp platform/android/export/export_plugin.cpp
#: platform/iphone/export/export.cpp platform/javascript/export/export.cpp
#: platform/osx/export/export.cpp platform/uwp/export/export.cpp
msgid "Custom debug template not found."
msgstr "Templat nyahpepijat tersuai tidak dijumpai."
-#: editor/editor_export.cpp platform/android/export/export.cpp
+#: editor/editor_export.cpp platform/android/export/export_plugin.cpp
#: platform/iphone/export/export.cpp platform/javascript/export/export.cpp
#: platform/osx/export/export.cpp platform/uwp/export/export.cpp
msgid "Custom release template not found."
@@ -1748,15 +1748,16 @@ msgstr "Import Dok"
#: editor/editor_feature_profile.cpp
msgid "Allows to view and edit 3D scenes."
-msgstr ""
+msgstr "Membenarkan untuk melihat dan menyunting adegan 3D."
#: editor/editor_feature_profile.cpp
msgid "Allows to edit scripts using the integrated script editor."
msgstr ""
+"Membenarkan untuk menyunting skrip-skrip menggunakan editor skrip bersepadu."
#: editor/editor_feature_profile.cpp
msgid "Provides built-in access to the Asset Library."
-msgstr ""
+msgstr "Memberikan akses terbina dalam kepada Perpustakaan Aset."
#: editor/editor_feature_profile.cpp
msgid "Allows editing the node hierarchy in the Scene dock."
@@ -2088,7 +2089,7 @@ msgstr ""
msgid "(Re)Importing Assets"
msgstr "Mengimport (Semula) Aset"
-#: editor/editor_help.cpp editor/plugins/spatial_editor_plugin.cpp
+#: editor/editor_help.cpp
msgid "Top"
msgstr "Atas"
@@ -2599,6 +2600,32 @@ msgid "Current scene not saved. Open anyway?"
msgstr "Adegan semasa tidak disimpan. Masih buka?"
#: editor/editor_node.cpp
+msgid "Can't undo while mouse buttons are pressed."
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "Nothing to undo."
+msgstr ""
+
+#: editor/editor_node.cpp
+#, fuzzy
+msgid "Undo: %s"
+msgstr "Buat Asal"
+
+#: editor/editor_node.cpp
+msgid "Can't redo while mouse buttons are pressed."
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "Nothing to redo."
+msgstr ""
+
+#: editor/editor_node.cpp
+#, fuzzy
+msgid "Redo: %s"
+msgstr "Buat Semula"
+
+#: editor/editor_node.cpp
msgid "Can't reload a scene that was never saved."
msgstr "Tidak dapat memuatkan semula adegan yang tidak pernah disimpan."
@@ -3290,6 +3317,11 @@ msgid "Merge With Existing"
msgstr "Gabung Dengan Sedia Ada"
#: editor/editor_node.cpp
+#, fuzzy
+msgid "Apply MeshInstance Transforms"
+msgstr "Anim Ubah Perubahan"
+
+#: editor/editor_node.cpp
msgid "Open & Run a Script"
msgstr "Buka & Jalankan Skrip"
@@ -3547,6 +3579,10 @@ msgstr ""
"Sumber yang dipilih (%s) tidak sesuai dengan jenis yang diharapkan untuk "
"sifat ini (%s)."
+#: editor/editor_resource_picker.cpp
+msgid "Quick Load"
+msgstr ""
+
#: editor/editor_resource_picker.cpp editor/property_editor.cpp
msgid "Make Unique"
msgstr "Buat Unik"
@@ -5656,6 +5692,17 @@ msgid "Move CanvasItem \"%s\" to (%d, %d)"
msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Locked"
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Grouped"
+msgstr "Kumpulan"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
msgid ""
"Children of containers have their anchors and margins values overridden by "
"their parent."
@@ -6569,7 +6616,11 @@ msgid "Remove Selected Item"
msgstr ""
#: editor/plugins/mesh_library_editor_plugin.cpp
-msgid "Import from Scene"
+msgid "Import from Scene (Ignore Transforms)"
+msgstr ""
+
+#: editor/plugins/mesh_library_editor_plugin.cpp
+msgid "Import from Scene (Apply Transforms)"
msgstr ""
#: editor/plugins/mesh_library_editor_plugin.cpp
@@ -7155,6 +7206,16 @@ msgstr "Masukkan Titik"
msgid "Flip Portal"
msgstr ""
+#: editor/plugins/room_manager_editor_plugin.cpp
+#, fuzzy
+msgid "Occluder Set Transform"
+msgstr "Kosongkan Transformasi"
+
+#: editor/plugins/room_manager_editor_plugin.cpp
+#, fuzzy
+msgid "Center Node"
+msgstr "Semua Pilihan"
+
#: editor/plugins/root_motion_editor_plugin.cpp
msgid "AnimationTree has no path set to an AnimationPlayer"
msgstr ""
@@ -7650,12 +7711,14 @@ msgid "Skeleton2D"
msgstr ""
#: editor/plugins/skeleton_2d_editor_plugin.cpp
-msgid "Make Rest Pose (From Bones)"
-msgstr ""
+#, fuzzy
+msgid "Reset to Rest Pose"
+msgstr "Set Semula ke Lalai"
#: editor/plugins/skeleton_2d_editor_plugin.cpp
-msgid "Set Bones to Rest Pose"
-msgstr ""
+#, fuzzy
+msgid "Overwrite Rest Pose"
+msgstr "Tulis Ganti"
#: editor/plugins/skeleton_editor_plugin.cpp
msgid "Create physical bones"
@@ -7682,6 +7745,60 @@ msgid "Perspective"
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Top Orthogonal"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Top Perspective"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Bottom Orthogonal"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Bottom Perspective"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Left Orthogonal"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Right Perspective"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Right Orthogonal"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Front Orthogonal"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Front Perspective"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Rear Orthogonal"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Rear Perspective"
+msgstr ""
+
+#. TRANSLATORS: This will be appended to the view name when Auto Orthogonal is enabled.
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid " [auto]"
+msgstr ""
+
+#. TRANSLATORS: This will be appended to the view name when Portal Occulusion is enabled.
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid " [portals active]"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
msgid "Transform Aborted."
msgstr ""
@@ -7795,42 +7912,22 @@ msgid "Bottom View."
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
-msgid "Bottom"
-msgstr ""
-
-#: editor/plugins/spatial_editor_plugin.cpp
msgid "Left View."
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
-msgid "Left"
-msgstr ""
-
-#: editor/plugins/spatial_editor_plugin.cpp
msgid "Right View."
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
-msgid "Right"
-msgstr ""
-
-#: editor/plugins/spatial_editor_plugin.cpp
msgid "Front View."
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
-msgid "Front"
-msgstr ""
-
-#: editor/plugins/spatial_editor_plugin.cpp
msgid "Rear View."
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
-msgid "Rear"
-msgstr ""
-
-#: editor/plugins/spatial_editor_plugin.cpp
msgid "Align Transform with View"
msgstr ""
@@ -8095,6 +8192,10 @@ msgid "View Portal Culling"
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
+msgid "View Occlusion Culling"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
#: modules/gridmap/grid_map_editor_plugin.cpp
msgid "Settings..."
msgstr ""
@@ -8160,7 +8261,7 @@ msgid "Post"
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
-msgid "Nameless gizmo"
+msgid "Unnamed Gizmo"
msgstr ""
#: editor/plugins/sprite_editor_plugin.cpp
@@ -12141,6 +12242,14 @@ msgstr ""
msgid "Set Portal Point Position"
msgstr ""
+#: editor/spatial_editor_gizmos.cpp
+msgid "Set Occluder Sphere Radius"
+msgstr ""
+
+#: editor/spatial_editor_gizmos.cpp
+msgid "Set Occluder Sphere Position"
+msgstr ""
+
#: modules/csg/csg_gizmos.cpp
msgid "Change Cylinder Radius"
msgstr ""
@@ -12428,6 +12537,11 @@ msgstr ""
msgid "Class name can't be a reserved keyword"
msgstr ""
+#: modules/mono/csharp_script.cpp
+#, fuzzy
+msgid "Build Solution"
+msgstr "Semua Pilihan"
+
#: modules/mono/mono_gd/gd_mono_utils.cpp
msgid "End of inner exception stack trace"
msgstr ""
@@ -12901,165 +13015,154 @@ msgstr ""
msgid "Get %s"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Package name is missing."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Package segments must be of non-zero length."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "The character '%s' is not allowed in Android application package names."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "A digit cannot be the first character in a package segment."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "The character '%s' cannot be the first character in a package segment."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "The package must have at least one '.' separator."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Select device from the list"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Running on %s"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
#, fuzzy
msgid "Exporting APK..."
msgstr "Eksport..."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
#, fuzzy
msgid "Uninstalling..."
msgstr "Nyahpasang"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
#, fuzzy
msgid "Installing to device, please wait..."
msgstr "Mengambil maklumat cermin, sila tunggu..."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
#, fuzzy
msgid "Could not install to device: %s"
msgstr "Tidak dapat memulakan subproses!"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
#, fuzzy
msgid "Running on device..."
msgstr "Menjalankan Skrip Tersuai..."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
#, fuzzy
msgid "Could not execute on device."
msgstr "Tidak dapat mencipta folder."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Unable to find the 'apksigner' tool."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Android build template not installed in the project. Install it from the "
"Project menu."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Either Debug Keystore, Debug User AND Debug Password settings must be "
"configured OR none of them."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Debug keystore not configured in the Editor Settings nor in the preset."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Either Release Keystore, Release User AND Release Password settings must be "
"configured OR none of them."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Release keystore incorrectly configured in the export preset."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "A valid Android SDK path is required in Editor Settings."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Invalid Android SDK path in Editor Settings."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Missing 'platform-tools' directory!"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Unable to find Android SDK platform-tools' adb command."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Please check in the Android SDK directory specified in Editor Settings."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Missing 'build-tools' directory!"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Unable to find Android SDK build-tools' apksigner command."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Invalid public key for APK expansion."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Invalid package name:"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Invalid \"GodotPaymentV3\" module included in the \"android/modules\" "
"project setting (changed in Godot 3.2.2).\n"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "\"Use Custom Build\" must be enabled to use the plugins."
msgstr ""
-#: platform/android/export/export.cpp
-msgid ""
-"\"Degrees Of Freedom\" is only valid when \"Xr Mode\" is \"Oculus Mobile VR"
-"\"."
-msgstr ""
-
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"\"Hand Tracking\" is only valid when \"Xr Mode\" is \"Oculus Mobile VR\"."
msgstr ""
-#: platform/android/export/export.cpp
-msgid ""
-"\"Focus Awareness\" is only valid when \"Xr Mode\" is \"Oculus Mobile VR\"."
-msgstr ""
-
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "\"Export AAB\" is only valid when \"Use Custom Build\" is enabled."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"'apksigner' could not be found.\n"
"Please check the command is available in the Android SDK build-tools "
@@ -13067,60 +13170,60 @@ msgid ""
"The resulting %s is unsigned."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Signing debug %s..."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
#, fuzzy
msgid "Signing release %s..."
msgstr ""
"Mengimbas Fail,\n"
"Sila Tunggu..."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Could not find keystore, unable to export."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "'apksigner' returned with error #%d"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Verifying %s..."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "'apksigner' verification of %s failed."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Exporting for Android"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Invalid filename! Android App Bundle requires the *.aab extension."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "APK Expansion not compatible with Android App Bundle."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Invalid filename! Android APK requires the *.apk extension."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Unsupported export format!\n"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Trying to build from a custom built template, but no version info for it "
"exists. Please reinstall from the 'Project' menu."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Android build version mismatch:\n"
" Template installed: %s\n"
@@ -13128,56 +13231,56 @@ msgid ""
"Please reinstall Android build template from 'Project' menu."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Unable to overwrite res://android/build/res/*.xml files with project name"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Could not export project files to gradle project\n"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Could not write expansion package file!"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Building Android Project (gradle)"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Building of Android project failed, check output for the error.\n"
"Alternatively visit docs.godotengine.org for Android build documentation."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Moving output"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Unable to copy and rename export file, check gradle project directory for "
"outputs."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
#, fuzzy
msgid "Package not found: %s"
msgstr "Kandungan Pakej:"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
#, fuzzy
msgid "Creating APK..."
msgstr "Menyambung..."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Could not find template APK to export:\n"
"%s"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Missing libraries in the export template for the selected architectures: "
"%s.\n"
@@ -13185,21 +13288,21 @@ msgid ""
"architectures in the export preset."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
#, fuzzy
msgid "Adding files..."
msgstr "Tapis Fail-fail..."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
#, fuzzy
msgid "Could not export project files"
msgstr "Tidak dapat memulakan subproses!"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Aligning APK..."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Could not unzip temporary unaligned APK."
msgstr ""
@@ -13653,6 +13756,14 @@ msgid ""
"It only provides navigation data."
msgstr ""
+#: scene/3d/occluder.cpp
+msgid "No shape is set."
+msgstr ""
+
+#: scene/3d/occluder.cpp
+msgid "Only uniform scales are supported."
+msgstr ""
+
#: scene/3d/particles.cpp
msgid ""
"GPU-based particles are not supported by the GLES2 video driver.\n"
@@ -13942,6 +14053,14 @@ msgstr "Mesti menggunakan sambungan yang sah."
msgid "Enable grid minimap."
msgstr ""
+#: scene/gui/nine_patch_rect.cpp
+msgid ""
+"The Tile and Tile Fit options for Axis Stretch properties are only effective "
+"when using the GLES3 rendering backend.\n"
+"The GLES2 backend is currently in use, so these modes will act like Stretch "
+"instead."
+msgstr ""
+
#: scene/gui/popup.cpp
msgid ""
"Popups will hide by default unless you call popup() or any of the popup*() "
@@ -13982,6 +14101,10 @@ msgstr ""
msgid "Viewport size must be greater than 0 to render anything."
msgstr ""
+#: scene/resources/occluder_shape.cpp
+msgid "OccluderShapeSphere Set Spheres"
+msgstr ""
+
#: scene/resources/visual_shader_nodes.cpp
msgid ""
"The sampler port is connected but not used. Consider changing the source to "
diff --git a/editor/translations/nb.po b/editor/translations/nb.po
index 02f32b055b..0b9333655f 100644
--- a/editor/translations/nb.po
+++ b/editor/translations/nb.po
@@ -14,7 +14,7 @@
# Byzantin <kasper-hoel@hotmail.com>, 2018.
# Hans-Marius Øverås <hansmariusoveras@gmail.com>, 2019.
# Revolution <revosw@gmail.com>, 2019.
-# Petter Reinholdtsen <pere-weblate@hungry.com>, 2019, 2020.
+# Petter Reinholdtsen <pere-weblate@hungry.com>, 2019, 2020, 2021.
# Patrick Sletvold <patricksletvold@hotmail.com>, 2021.
# Kristoffer <kskau93@gmail.com>, 2021.
# Lili Zoey <sayaks1@gmail.com>, 2021.
@@ -22,8 +22,8 @@ msgid ""
msgstr ""
"Project-Id-Version: Godot Engine editor\n"
"POT-Creation-Date: \n"
-"PO-Revision-Date: 2021-05-29 13:49+0000\n"
-"Last-Translator: Lili Zoey <sayaks1@gmail.com>\n"
+"PO-Revision-Date: 2021-08-12 21:32+0000\n"
+"Last-Translator: Petter Reinholdtsen <pere-weblate@hungry.com>\n"
"Language-Team: Norwegian Bokmål <https://hosted.weblate.org/projects/godot-"
"engine/godot/nb_NO/>\n"
"Language: nb\n"
@@ -31,7 +31,7 @@ msgstr ""
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=n != 1;\n"
-"X-Generator: Weblate 4.7-dev\n"
+"X-Generator: Weblate 4.8-dev\n"
#: core/math/expression.cpp modules/gdscript/gdscript_functions.cpp
#: modules/visual_script/visual_script_builtin_funcs.cpp
@@ -1054,7 +1054,7 @@ msgstr ""
msgid "Dependencies"
msgstr "Avhengigheter"
-#: editor/dependency_editor.cpp
+#: editor/dependency_editor.cpp editor/editor_resource_picker.cpp
msgid "Resource"
msgstr "Ressurs"
@@ -1739,13 +1739,13 @@ msgstr ""
"Aktiver 'Importer Etc' i Prosjektinnstillinger, eller deaktiver "
"'Drivertilbakefall Aktivert'."
-#: editor/editor_export.cpp platform/android/export/export.cpp
+#: editor/editor_export.cpp platform/android/export/export_plugin.cpp
#: platform/iphone/export/export.cpp platform/javascript/export/export.cpp
#: platform/osx/export/export.cpp platform/uwp/export/export.cpp
msgid "Custom debug template not found."
msgstr "Tilpasset feilsøkingsmal ble ikke funnet."
-#: editor/editor_export.cpp platform/android/export/export.cpp
+#: editor/editor_export.cpp platform/android/export/export_plugin.cpp
#: platform/iphone/export/export.cpp platform/javascript/export/export.cpp
#: platform/osx/export/export.cpp platform/uwp/export/export.cpp
msgid "Custom release template not found."
@@ -1929,7 +1929,7 @@ msgstr "Gjeldende:"
#: editor/editor_feature_profile.cpp editor/editor_node.cpp
#: editor/plugins/theme_editor_plugin.cpp editor/project_manager.cpp
msgid "Import"
-msgstr "Importer"
+msgstr "importer"
#: editor/editor_feature_profile.cpp editor/project_export.cpp
msgid "Export"
@@ -2149,7 +2149,7 @@ msgstr ""
msgid "(Re)Importing Assets"
msgstr "(Re)Importerer Assets"
-#: editor/editor_help.cpp editor/plugins/spatial_editor_plugin.cpp
+#: editor/editor_help.cpp
msgid "Top"
msgstr "Topp"
@@ -2681,6 +2681,32 @@ msgid "Current scene not saved. Open anyway?"
msgstr "Gjeldende scene er ikke lagret. Ã…pne likevel?"
#: editor/editor_node.cpp
+msgid "Can't undo while mouse buttons are pressed."
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "Nothing to undo."
+msgstr ""
+
+#: editor/editor_node.cpp
+#, fuzzy
+msgid "Undo: %s"
+msgstr "Angre"
+
+#: editor/editor_node.cpp
+msgid "Can't redo while mouse buttons are pressed."
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "Nothing to redo."
+msgstr ""
+
+#: editor/editor_node.cpp
+#, fuzzy
+msgid "Redo: %s"
+msgstr "Gjenta"
+
+#: editor/editor_node.cpp
msgid "Can't reload a scene that was never saved."
msgstr "Kan ikke laste en scene som aldri ble lagret."
@@ -3380,6 +3406,11 @@ msgid "Merge With Existing"
msgstr "Slå sammen Med Eksisterende"
#: editor/editor_node.cpp
+#, fuzzy
+msgid "Apply MeshInstance Transforms"
+msgstr "Anim Forandre Omforming"
+
+#: editor/editor_node.cpp
msgid "Open & Run a Script"
msgstr "Åpne & Kjør et Skript"
@@ -3643,6 +3674,10 @@ msgstr ""
"Den valgte ressursen (%s) svarer ikke til noen forventede verdier for denne "
"egenskapen (%s)."
+#: editor/editor_resource_picker.cpp
+msgid "Quick Load"
+msgstr ""
+
#: editor/editor_resource_picker.cpp editor/property_editor.cpp
msgid "Make Unique"
msgstr "Gjør Unik"
@@ -5891,6 +5926,18 @@ msgid "Move CanvasItem \"%s\" to (%d, %d)"
msgstr "Endre CanvasItem"
#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Locked"
+msgstr "Slett Valgte"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Grouped"
+msgstr "Grupper"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
msgid ""
"Children of containers have their anchors and margins values overridden by "
"their parent."
@@ -6874,7 +6921,13 @@ msgid "Remove Selected Item"
msgstr "Fjern Valgte Element"
#: editor/plugins/mesh_library_editor_plugin.cpp
-msgid "Import from Scene"
+#, fuzzy
+msgid "Import from Scene (Ignore Transforms)"
+msgstr "Importer fra Scene"
+
+#: editor/plugins/mesh_library_editor_plugin.cpp
+#, fuzzy
+msgid "Import from Scene (Apply Transforms)"
msgstr "Importer fra Scene"
#: editor/plugins/mesh_library_editor_plugin.cpp
@@ -7491,6 +7544,16 @@ msgstr "Fjern Punkt"
msgid "Flip Portal"
msgstr ""
+#: editor/plugins/room_manager_editor_plugin.cpp
+#, fuzzy
+msgid "Occluder Set Transform"
+msgstr "Nullstill Transformasjon"
+
+#: editor/plugins/room_manager_editor_plugin.cpp
+#, fuzzy
+msgid "Center Node"
+msgstr "Lag Node"
+
#: editor/plugins/root_motion_editor_plugin.cpp
msgid "AnimationTree has no path set to an AnimationPlayer"
msgstr ""
@@ -8011,12 +8074,14 @@ msgid "Skeleton2D"
msgstr "Singleton"
#: editor/plugins/skeleton_2d_editor_plugin.cpp
-msgid "Make Rest Pose (From Bones)"
-msgstr ""
+#, fuzzy
+msgid "Reset to Rest Pose"
+msgstr "Last Standard"
#: editor/plugins/skeleton_2d_editor_plugin.cpp
-msgid "Set Bones to Rest Pose"
-msgstr ""
+#, fuzzy
+msgid "Overwrite Rest Pose"
+msgstr "Overskriv"
#: editor/plugins/skeleton_editor_plugin.cpp
msgid "Create physical bones"
@@ -8045,6 +8110,67 @@ msgid "Perspective"
msgstr "Perspektiv"
#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Top Orthogonal"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Top Perspective"
+msgstr "Perspektiv"
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Bottom Orthogonal"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Bottom Perspective"
+msgstr "Perspektiv"
+
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Left Orthogonal"
+msgstr "Venstre knapp"
+
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Right Perspective"
+msgstr "Perspektiv"
+
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Right Orthogonal"
+msgstr "Høyre knapp"
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Front Orthogonal"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Front Perspective"
+msgstr "Perspektiv"
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Rear Orthogonal"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Rear Perspective"
+msgstr "Perspektiv"
+
+#. TRANSLATORS: This will be appended to the view name when Auto Orthogonal is enabled.
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid " [auto]"
+msgstr ""
+
+#. TRANSLATORS: This will be appended to the view name when Portal Occulusion is enabled.
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid " [portals active]"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
msgid "Transform Aborted."
msgstr ""
@@ -8162,42 +8288,22 @@ msgid "Bottom View."
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
-msgid "Bottom"
-msgstr ""
-
-#: editor/plugins/spatial_editor_plugin.cpp
msgid "Left View."
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
-msgid "Left"
-msgstr "Venstre"
-
-#: editor/plugins/spatial_editor_plugin.cpp
msgid "Right View."
msgstr "Høyrevisning."
#: editor/plugins/spatial_editor_plugin.cpp
-msgid "Right"
-msgstr "Høyre"
-
-#: editor/plugins/spatial_editor_plugin.cpp
msgid "Front View."
msgstr "Frontvisning."
#: editor/plugins/spatial_editor_plugin.cpp
-msgid "Front"
-msgstr "Front"
-
-#: editor/plugins/spatial_editor_plugin.cpp
msgid "Rear View."
msgstr "Bakvisning."
#: editor/plugins/spatial_editor_plugin.cpp
-msgid "Rear"
-msgstr "Bak"
-
-#: editor/plugins/spatial_editor_plugin.cpp
#, fuzzy
msgid "Align Transform with View"
msgstr "Høyrevisning"
@@ -8468,6 +8574,11 @@ msgid "View Portal Culling"
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "View Occlusion Culling"
+msgstr "Rediger Poly"
+
+#: editor/plugins/spatial_editor_plugin.cpp
#: modules/gridmap/grid_map_editor_plugin.cpp
msgid "Settings..."
msgstr "Innstillinger …"
@@ -8533,7 +8644,7 @@ msgid "Post"
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
-msgid "Nameless gizmo"
+msgid "Unnamed Gizmo"
msgstr ""
#: editor/plugins/sprite_editor_plugin.cpp
@@ -12746,6 +12857,15 @@ msgstr "Fjern Funksjon"
msgid "Set Portal Point Position"
msgstr "Fjern Funksjon"
+#: editor/spatial_editor_gizmos.cpp
+msgid "Set Occluder Sphere Radius"
+msgstr ""
+
+#: editor/spatial_editor_gizmos.cpp
+#, fuzzy
+msgid "Set Occluder Sphere Position"
+msgstr "Fjern Funksjon"
+
#: modules/csg/csg_gizmos.cpp
#, fuzzy
msgid "Change Cylinder Radius"
@@ -13048,6 +13168,11 @@ msgstr "Genererer Lyskart"
msgid "Class name can't be a reserved keyword"
msgstr ""
+#: modules/mono/csharp_script.cpp
+#, fuzzy
+msgid "Build Solution"
+msgstr "Alle valg"
+
#: modules/mono/mono_gd/gd_mono_utils.cpp
msgid "End of inner exception stack trace"
msgstr ""
@@ -13554,166 +13679,155 @@ msgstr "Lim inn Noder"
msgid "Get %s"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Package name is missing."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Package segments must be of non-zero length."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "The character '%s' is not allowed in Android application package names."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "A digit cannot be the first character in a package segment."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "The character '%s' cannot be the first character in a package segment."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "The package must have at least one '.' separator."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Select device from the list"
msgstr "Velg enhet fra listen"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Running on %s"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
#, fuzzy
msgid "Exporting APK..."
msgstr "Eksporter"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
#, fuzzy
msgid "Uninstalling..."
msgstr "Avinstaller"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
#, fuzzy
msgid "Installing to device, please wait..."
msgstr "Henter fillager, vennligst vent..."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
#, fuzzy
msgid "Could not install to device: %s"
msgstr "Kunne ikke starta subprosess!"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
#, fuzzy
msgid "Running on device..."
msgstr "Kjører Tilpasser Skript..."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
#, fuzzy
msgid "Could not execute on device."
msgstr "Kunne ikke opprette mappe."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Unable to find the 'apksigner' tool."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Android build template not installed in the project. Install it from the "
"Project menu."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Either Debug Keystore, Debug User AND Debug Password settings must be "
"configured OR none of them."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Debug keystore not configured in the Editor Settings nor in the preset."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Either Release Keystore, Release User AND Release Password settings must be "
"configured OR none of them."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Release keystore incorrectly configured in the export preset."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "A valid Android SDK path is required in Editor Settings."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Invalid Android SDK path in Editor Settings."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Missing 'platform-tools' directory!"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Unable to find Android SDK platform-tools' adb command."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Please check in the Android SDK directory specified in Editor Settings."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Missing 'build-tools' directory!"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Unable to find Android SDK build-tools' apksigner command."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Invalid public key for APK expansion."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
#, fuzzy
msgid "Invalid package name:"
msgstr "Ugyldig navn."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Invalid \"GodotPaymentV3\" module included in the \"android/modules\" "
"project setting (changed in Godot 3.2.2).\n"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "\"Use Custom Build\" must be enabled to use the plugins."
msgstr ""
-#: platform/android/export/export.cpp
-msgid ""
-"\"Degrees Of Freedom\" is only valid when \"Xr Mode\" is \"Oculus Mobile VR"
-"\"."
-msgstr ""
-
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"\"Hand Tracking\" is only valid when \"Xr Mode\" is \"Oculus Mobile VR\"."
msgstr ""
-#: platform/android/export/export.cpp
-msgid ""
-"\"Focus Awareness\" is only valid when \"Xr Mode\" is \"Oculus Mobile VR\"."
-msgstr ""
-
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "\"Export AAB\" is only valid when \"Use Custom Build\" is enabled."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"'apksigner' could not be found.\n"
"Please check the command is available in the Android SDK build-tools "
@@ -13721,63 +13835,63 @@ msgid ""
"The resulting %s is unsigned."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Signing debug %s..."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
#, fuzzy
msgid "Signing release %s..."
msgstr ""
"Gjennomgår filer,\n"
"Vent…"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
#, fuzzy
msgid "Could not find keystore, unable to export."
msgstr "Kunne ikke opprette mappe."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "'apksigner' returned with error #%d"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
#, fuzzy
msgid "Verifying %s..."
msgstr "Legger til %s..."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "'apksigner' verification of %s failed."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
#, fuzzy
msgid "Exporting for Android"
msgstr "Eksporter"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Invalid filename! Android App Bundle requires the *.aab extension."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "APK Expansion not compatible with Android App Bundle."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Invalid filename! Android APK requires the *.apk extension."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Unsupported export format!\n"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Trying to build from a custom built template, but no version info for it "
"exists. Please reinstall from the 'Project' menu."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Android build version mismatch:\n"
" Template installed: %s\n"
@@ -13785,59 +13899,59 @@ msgid ""
"Please reinstall Android build template from 'Project' menu."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Unable to overwrite res://android/build/res/*.xml files with project name"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
#, fuzzy
msgid "Could not export project files to gradle project\n"
msgstr "Kunne ikke endre project.godot i projsektstien."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
#, fuzzy
msgid "Could not write expansion package file!"
msgstr "Kunne ikke opprette mappe."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Building Android Project (gradle)"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Building of Android project failed, check output for the error.\n"
"Alternatively visit docs.godotengine.org for Android build documentation."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Moving output"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Unable to copy and rename export file, check gradle project directory for "
"outputs."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
#, fuzzy
msgid "Package not found: %s"
msgstr "Animasjonsverktøy"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
#, fuzzy
msgid "Creating APK..."
msgstr "Lager konturer..."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
#, fuzzy
msgid ""
"Could not find template APK to export:\n"
"%s"
msgstr "Kunne ikke opprette mappe."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Missing libraries in the export template for the selected architectures: "
"%s.\n"
@@ -13845,21 +13959,21 @@ msgid ""
"architectures in the export preset."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
#, fuzzy
msgid "Adding files..."
msgstr "Legger til %s..."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
#, fuzzy
msgid "Could not export project files"
msgstr "Kunne ikke opprette mappe."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Aligning APK..."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Could not unzip temporary unaligned APK."
msgstr ""
@@ -14327,6 +14441,14 @@ msgid ""
"It only provides navigation data."
msgstr ""
+#: scene/3d/occluder.cpp
+msgid "No shape is set."
+msgstr ""
+
+#: scene/3d/occluder.cpp
+msgid "Only uniform scales are supported."
+msgstr ""
+
#: scene/3d/particles.cpp
msgid ""
"GPU-based particles are not supported by the GLES2 video driver.\n"
@@ -14621,6 +14743,14 @@ msgstr "MÃ¥ ha en gyldig filutvidelse."
msgid "Enable grid minimap."
msgstr "Aktiver Snap"
+#: scene/gui/nine_patch_rect.cpp
+msgid ""
+"The Tile and Tile Fit options for Axis Stretch properties are only effective "
+"when using the GLES3 rendering backend.\n"
+"The GLES2 backend is currently in use, so these modes will act like Stretch "
+"instead."
+msgstr ""
+
#: scene/gui/popup.cpp
msgid ""
"Popups will hide by default unless you call popup() or any of the popup*() "
@@ -14661,6 +14791,10 @@ msgstr ""
msgid "Viewport size must be greater than 0 to render anything."
msgstr ""
+#: scene/resources/occluder_shape.cpp
+msgid "OccluderShapeSphere Set Spheres"
+msgstr ""
+
#: scene/resources/visual_shader_nodes.cpp
msgid ""
"The sampler port is connected but not used. Consider changing the source to "
@@ -14713,6 +14847,18 @@ msgstr ""
msgid "Constants cannot be modified."
msgstr "Konstanter kan ikke endres."
+#~ msgid "Left"
+#~ msgstr "Venstre"
+
+#~ msgid "Right"
+#~ msgstr "Høyre"
+
+#~ msgid "Front"
+#~ msgstr "Front"
+
+#~ msgid "Rear"
+#~ msgstr "Bak"
+
#, fuzzy
#~ msgid "Package Contents:"
#~ msgstr "Innhold:"
diff --git a/editor/translations/nl.po b/editor/translations/nl.po
index 00f87ef79c..d588afb791 100644
--- a/editor/translations/nl.po
+++ b/editor/translations/nl.po
@@ -1072,7 +1072,7 @@ msgstr ""
msgid "Dependencies"
msgstr "Afhankelijkheden"
-#: editor/dependency_editor.cpp
+#: editor/dependency_editor.cpp editor/editor_resource_picker.cpp
msgid "Resource"
msgstr "Bron"
@@ -1734,13 +1734,13 @@ msgstr ""
"Schakel 'Import Pvrtc' in bij de Projectinstellingen, of schakel de optie "
"'Driver Fallback Enabled' uit."
-#: editor/editor_export.cpp platform/android/export/export.cpp
+#: editor/editor_export.cpp platform/android/export/export_plugin.cpp
#: platform/iphone/export/export.cpp platform/javascript/export/export.cpp
#: platform/osx/export/export.cpp platform/uwp/export/export.cpp
msgid "Custom debug template not found."
msgstr "Aangepast debug pakket niet gevonden."
-#: editor/editor_export.cpp platform/android/export/export.cpp
+#: editor/editor_export.cpp platform/android/export/export_plugin.cpp
#: platform/iphone/export/export.cpp platform/javascript/export/export.cpp
#: platform/osx/export/export.cpp platform/uwp/export/export.cpp
msgid "Custom release template not found."
@@ -2124,7 +2124,7 @@ msgstr ""
msgid "(Re)Importing Assets"
msgstr "Bronnen (her)importeren"
-#: editor/editor_help.cpp editor/plugins/spatial_editor_plugin.cpp
+#: editor/editor_help.cpp
msgid "Top"
msgstr "Boven"
@@ -2637,6 +2637,32 @@ msgid "Current scene not saved. Open anyway?"
msgstr "De huidige scène is niet opgeslagen. Toch openen?"
#: editor/editor_node.cpp
+msgid "Can't undo while mouse buttons are pressed."
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "Nothing to undo."
+msgstr ""
+
+#: editor/editor_node.cpp
+#, fuzzy
+msgid "Undo: %s"
+msgstr "Ongedaan maken"
+
+#: editor/editor_node.cpp
+msgid "Can't redo while mouse buttons are pressed."
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "Nothing to redo."
+msgstr ""
+
+#: editor/editor_node.cpp
+#, fuzzy
+msgid "Redo: %s"
+msgstr "Opnieuw"
+
+#: editor/editor_node.cpp
msgid "Can't reload a scene that was never saved."
msgstr "Een scène die nooit opgeslagen is kan niet opnieuw laden worden."
@@ -3325,6 +3351,11 @@ msgid "Merge With Existing"
msgstr "Met bestaande samenvoegen"
#: editor/editor_node.cpp
+#, fuzzy
+msgid "Apply MeshInstance Transforms"
+msgstr "Anim Wijzig Transform"
+
+#: editor/editor_node.cpp
msgid "Open & Run a Script"
msgstr "Voer Een Script Uit"
@@ -3582,6 +3613,10 @@ msgstr ""
"De geselecteerde hulpbron (%s) komt niet overeen met het verwachte type van "
"deze eigenschap (%s)."
+#: editor/editor_resource_picker.cpp
+msgid "Quick Load"
+msgstr ""
+
#: editor/editor_resource_picker.cpp editor/property_editor.cpp
msgid "Make Unique"
msgstr "Maak Uniek"
@@ -5717,6 +5752,18 @@ msgid "Move CanvasItem \"%s\" to (%d, %d)"
msgstr "CanvasItem \"%s\" naar (%d, %d) verplaatsen"
#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Locked"
+msgstr "Slot Geselecteerd"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Grouped"
+msgstr "Groepen"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
msgid ""
"Children of containers have their anchors and margins values overridden by "
"their parent."
@@ -6672,7 +6719,13 @@ msgid "Remove Selected Item"
msgstr "Geselecteerd element verwijderen"
#: editor/plugins/mesh_library_editor_plugin.cpp
-msgid "Import from Scene"
+#, fuzzy
+msgid "Import from Scene (Ignore Transforms)"
+msgstr "Vanuit scène importeren"
+
+#: editor/plugins/mesh_library_editor_plugin.cpp
+#, fuzzy
+msgid "Import from Scene (Apply Transforms)"
msgstr "Vanuit scène importeren"
#: editor/plugins/mesh_library_editor_plugin.cpp
@@ -7270,6 +7323,16 @@ msgstr "Telling Gegenereerde Punten:"
msgid "Flip Portal"
msgstr "Horizontaal omdraaien"
+#: editor/plugins/room_manager_editor_plugin.cpp
+#, fuzzy
+msgid "Occluder Set Transform"
+msgstr "Transform wissen"
+
+#: editor/plugins/room_manager_editor_plugin.cpp
+#, fuzzy
+msgid "Center Node"
+msgstr "Knoop maken"
+
#: editor/plugins/root_motion_editor_plugin.cpp
msgid "AnimationTree has no path set to an AnimationPlayer"
msgstr "AnimationTree heeft geen ingesteld pad naar een AnimationPlayer"
@@ -7771,12 +7834,14 @@ msgid "Skeleton2D"
msgstr "Skeleton2D"
#: editor/plugins/skeleton_2d_editor_plugin.cpp
-msgid "Make Rest Pose (From Bones)"
-msgstr "Maak Rustpose (van Botten)"
+#, fuzzy
+msgid "Reset to Rest Pose"
+msgstr "Botten in rusthouding zetten"
#: editor/plugins/skeleton_2d_editor_plugin.cpp
-msgid "Set Bones to Rest Pose"
-msgstr "Botten in rusthouding zetten"
+#, fuzzy
+msgid "Overwrite Rest Pose"
+msgstr "Overschrijven"
#: editor/plugins/skeleton_editor_plugin.cpp
msgid "Create physical bones"
@@ -7803,6 +7868,71 @@ msgid "Perspective"
msgstr "Perspectief"
#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Top Orthogonal"
+msgstr "Orthogonaal"
+
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Top Perspective"
+msgstr "Perspectief"
+
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Bottom Orthogonal"
+msgstr "Orthogonaal"
+
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Bottom Perspective"
+msgstr "Perspectief"
+
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Left Orthogonal"
+msgstr "Orthogonaal"
+
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Right Perspective"
+msgstr "Perspectief"
+
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Right Orthogonal"
+msgstr "Orthogonaal"
+
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Front Orthogonal"
+msgstr "Orthogonaal"
+
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Front Perspective"
+msgstr "Perspectief"
+
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Rear Orthogonal"
+msgstr "Orthogonaal"
+
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Rear Perspective"
+msgstr "Perspectief"
+
+#. TRANSLATORS: This will be appended to the view name when Auto Orthogonal is enabled.
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid " [auto]"
+msgstr ""
+
+#. TRANSLATORS: This will be appended to the view name when Portal Occulusion is enabled.
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid " [portals active]"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
msgid "Transform Aborted."
msgstr "Transformatie Afgebroken."
@@ -7921,42 +8051,22 @@ msgid "Bottom View."
msgstr "Onderaanzicht."
#: editor/plugins/spatial_editor_plugin.cpp
-msgid "Bottom"
-msgstr "Onder"
-
-#: editor/plugins/spatial_editor_plugin.cpp
msgid "Left View."
msgstr "Linkeraanzicht."
#: editor/plugins/spatial_editor_plugin.cpp
-msgid "Left"
-msgstr "Links"
-
-#: editor/plugins/spatial_editor_plugin.cpp
msgid "Right View."
msgstr "Rechteraanzicht."
#: editor/plugins/spatial_editor_plugin.cpp
-msgid "Right"
-msgstr "Rechts"
-
-#: editor/plugins/spatial_editor_plugin.cpp
msgid "Front View."
msgstr "Vooraanzicht."
#: editor/plugins/spatial_editor_plugin.cpp
-msgid "Front"
-msgstr "Voor"
-
-#: editor/plugins/spatial_editor_plugin.cpp
msgid "Rear View."
msgstr "Achteraanzicht."
#: editor/plugins/spatial_editor_plugin.cpp
-msgid "Rear"
-msgstr "Achter"
-
-#: editor/plugins/spatial_editor_plugin.cpp
msgid "Align Transform with View"
msgstr "Uitlijnen Transform met aanzicht"
@@ -8230,6 +8340,11 @@ msgid "View Portal Culling"
msgstr "Beeldvensterinstellingen"
#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "View Occlusion Culling"
+msgstr "Beeldvensterinstellingen"
+
+#: editor/plugins/spatial_editor_plugin.cpp
#: modules/gridmap/grid_map_editor_plugin.cpp
msgid "Settings..."
msgstr "Instellingen..."
@@ -8295,8 +8410,9 @@ msgid "Post"
msgstr "Post"
#: editor/plugins/spatial_editor_plugin.cpp
-msgid "Nameless gizmo"
-msgstr "Naamloze gizmo"
+#, fuzzy
+msgid "Unnamed Gizmo"
+msgstr "Naamloos Project"
#: editor/plugins/sprite_editor_plugin.cpp
msgid "Create Mesh2D"
@@ -12497,6 +12613,16 @@ msgstr "Zet Curve Punt Positie"
msgid "Set Portal Point Position"
msgstr "Zet Curve Punt Positie"
+#: editor/spatial_editor_gizmos.cpp
+#, fuzzy
+msgid "Set Occluder Sphere Radius"
+msgstr "Wijzig Cylinder Vorm Radius"
+
+#: editor/spatial_editor_gizmos.cpp
+#, fuzzy
+msgid "Set Occluder Sphere Position"
+msgstr "Zet Curve In Positie"
+
#: modules/csg/csg_gizmos.cpp
msgid "Change Cylinder Radius"
msgstr "Wijzig Cylinder Straal"
@@ -12781,6 +12907,11 @@ msgstr "Lightmaps plotten"
msgid "Class name can't be a reserved keyword"
msgstr "Klassennaam kan geen gereserveerd sleutelwoord zijn"
+#: modules/mono/csharp_script.cpp
+#, fuzzy
+msgid "Build Solution"
+msgstr "Vul selectie"
+
#: modules/mono/mono_gd/gd_mono_utils.cpp
msgid "End of inner exception stack trace"
msgstr "Einde van innerlijke exception stack trace"
@@ -13270,75 +13401,75 @@ msgstr "Zoek VisualScript"
msgid "Get %s"
msgstr "Krijg %s"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Package name is missing."
msgstr "Package naam ontbreekt."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Package segments must be of non-zero length."
msgstr "Pakketsegmenten moeten een lengte ongelijk aan nul hebben."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "The character '%s' is not allowed in Android application package names."
msgstr ""
"Het karakter '%s' is niet toegestaan in Android application pakketnamen."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "A digit cannot be the first character in a package segment."
msgstr "Een getal kan niet het eerste teken zijn in een pakket segment."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "The character '%s' cannot be the first character in a package segment."
msgstr ""
"Het karakter '%s' kan niet het eerste teken zijn in een pakket segment."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "The package must have at least one '.' separator."
msgstr "De pakketnaam moet ten minste een '.' bevatten."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Select device from the list"
msgstr "Selecteer apparaat uit de lijst"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Running on %s"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
#, fuzzy
msgid "Exporting APK..."
msgstr "Exporteer alles"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
#, fuzzy
msgid "Uninstalling..."
msgstr "Verwijderen"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
#, fuzzy
msgid "Installing to device, please wait..."
msgstr "Aan het laden, even wachten a.u.b..."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
#, fuzzy
msgid "Could not install to device: %s"
msgstr "Kon het subproces niet opstarten!"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
#, fuzzy
msgid "Running on device..."
msgstr "Aangepast script uitvoeren ..."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
#, fuzzy
msgid "Could not execute on device."
msgstr "Map kon niet gemaakt worden."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Unable to find the 'apksigner' tool."
msgstr "Het hulpmiddel 'apksigner' kon niet gevonden worden."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Android build template not installed in the project. Install it from the "
"Project menu."
@@ -13346,64 +13477,64 @@ msgstr ""
"Geen Android bouwsjabloon geïnstalleerd in dit project. Vanuit het "
"projectmenu kan het geïnstalleerd worden."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Either Debug Keystore, Debug User AND Debug Password settings must be "
"configured OR none of them."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Debug keystore not configured in the Editor Settings nor in the preset."
msgstr "Debug Keystore is niet ingesteld of aanwezig in de Editor Settings."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Either Release Keystore, Release User AND Release Password settings must be "
"configured OR none of them."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Release keystore incorrectly configured in the export preset."
msgstr "Release-Keystore is verkeerd ingesteld in de exportinstelingen."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "A valid Android SDK path is required in Editor Settings."
msgstr ""
"Een geldig Android SDK-pad moet in de Editorinstellingen ingesteld zijn."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Invalid Android SDK path in Editor Settings."
msgstr "Ongeldig Android SDK-pad in Editorinstellingen."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Missing 'platform-tools' directory!"
msgstr "'platform-tools' map ontbreekt!"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Unable to find Android SDK platform-tools' adb command."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Please check in the Android SDK directory specified in Editor Settings."
msgstr "Controleer de opgegeven Android SDK map in de Editor instellingen."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Missing 'build-tools' directory!"
msgstr "'build tools' map ontbreekt!"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Unable to find Android SDK build-tools' apksigner command."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Invalid public key for APK expansion."
msgstr "Ongeldige publieke sleutel voor APK -uitbreiding."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Invalid package name:"
msgstr "Ongeldige pakketnaam:"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Invalid \"GodotPaymentV3\" module included in the \"android/modules\" "
"project setting (changed in Godot 3.2.2).\n"
@@ -13411,37 +13542,22 @@ msgstr ""
"Ongeldige \"GodotPaymentV3\" module ingesloten in de projectinstelling "
"\"android/modules\" (veranderd in Godot 3.2.2).\n"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "\"Use Custom Build\" must be enabled to use the plugins."
msgstr "\"Use Custom Build\" moet geactiveerd zijn om plugins te gebruiken."
-#: platform/android/export/export.cpp
-msgid ""
-"\"Degrees Of Freedom\" is only valid when \"Xr Mode\" is \"Oculus Mobile VR"
-"\"."
-msgstr ""
-"\"Degrees Of Freedom\" is alleen geldig als \"Xr Mode\" op \"Oculus Mobile VR"
-"\" staat."
-
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"\"Hand Tracking\" is only valid when \"Xr Mode\" is \"Oculus Mobile VR\"."
msgstr ""
"\"Hand Tracking\" is alleen geldig als \"Xr Mode\" op \"Oculus Mobile VR\" "
"staat."
-#: platform/android/export/export.cpp
-msgid ""
-"\"Focus Awareness\" is only valid when \"Xr Mode\" is \"Oculus Mobile VR\"."
-msgstr ""
-"\"Focus Awareness\" is alleen geldig als \"Xr Mode\" op \"Oculus Mobile VR\" "
-"staat."
-
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "\"Export AAB\" is only valid when \"Use Custom Build\" is enabled."
msgstr "\"Export AAB\" is alleen geldig als \"Use Custom Build\" aan staat."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"'apksigner' could not be found.\n"
"Please check the command is available in the Android SDK build-tools "
@@ -13449,58 +13565,58 @@ msgid ""
"The resulting %s is unsigned."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Signing debug %s..."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
#, fuzzy
msgid "Signing release %s..."
msgstr ""
"Bestanden aan het doornemen,\n"
"Wacht alstublieft..."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
#, fuzzy
msgid "Could not find keystore, unable to export."
msgstr "Kon template niet openen voor export:"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "'apksigner' returned with error #%d"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
#, fuzzy
msgid "Verifying %s..."
msgstr "%s aan het toevoegen..."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "'apksigner' verification of %s failed."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
#, fuzzy
msgid "Exporting for Android"
msgstr "Exporteer alles"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Invalid filename! Android App Bundle requires the *.aab extension."
msgstr ""
"Bestandsnaam niet toegestaan! Android App Bundle vereist een *.aab extensie."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "APK Expansion not compatible with Android App Bundle."
msgstr "APK Expansion werkt niet samen met Android App Bundle."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Invalid filename! Android APK requires the *.apk extension."
msgstr "Bestandsnaam niet toegestaan! Android APK vereist een *.apk extensie."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Unsupported export format!\n"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Trying to build from a custom built template, but no version info for it "
"exists. Please reinstall from the 'Project' menu."
@@ -13508,7 +13624,7 @@ msgstr ""
"Geprobeerd met een eigen bouwsjabloon te bouwen, maar versie info ontbreekt. "
"Installeer alstublieft opnieuw vanuit het 'Project' menu."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Android build version mismatch:\n"
" Template installed: %s\n"
@@ -13520,26 +13636,26 @@ msgstr ""
" Godot versie: %s\n"
"Herinstalleer Android build template vanuit het 'Project' menu."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Unable to overwrite res://android/build/res/*.xml files with project name"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
#, fuzzy
msgid "Could not export project files to gradle project\n"
msgstr "Kan project.godot niet bewerken in projectpad."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
#, fuzzy
msgid "Could not write expansion package file!"
msgstr "Kon bestand niet schrijven:"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Building Android Project (gradle)"
msgstr "Bouwen van Android Project (gradle)"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Building of Android project failed, check output for the error.\n"
"Alternatively visit docs.godotengine.org for Android build documentation."
@@ -13547,11 +13663,11 @@ msgstr ""
"Bouwen van Androidproject mislukt, bekijk de foutmelding in de uitvoer.\n"
"Zie anders Android bouwdocumentatie op docs.godotengine.org."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Moving output"
msgstr "Output verplaatsen"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Unable to copy and rename export file, check gradle project directory for "
"outputs."
@@ -13559,24 +13675,24 @@ msgstr ""
"Niet in staat om het export bestand te kopiëren en hernoemen. Controleer de "
"gradle project folder voor outputs."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
#, fuzzy
msgid "Package not found: %s"
msgstr "Animatie niet gevonden: '%s'"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
#, fuzzy
msgid "Creating APK..."
msgstr "Contouren aan het creëeren..."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
#, fuzzy
msgid ""
"Could not find template APK to export:\n"
"%s"
msgstr "Kon template niet openen voor export:"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Missing libraries in the export template for the selected architectures: "
"%s.\n"
@@ -13584,21 +13700,21 @@ msgid ""
"architectures in the export preset."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
#, fuzzy
msgid "Adding files..."
msgstr "%s aan het toevoegen..."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
#, fuzzy
msgid "Could not export project files"
msgstr "Kon bestand niet schrijven:"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Aligning APK..."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Could not unzip temporary unaligned APK."
msgstr ""
@@ -14138,6 +14254,14 @@ msgstr ""
"NavigationMeshInstance moet een (klein)kind zijn van een Navigation-knoop om "
"navigatiegevens door te geven."
+#: scene/3d/occluder.cpp
+msgid "No shape is set."
+msgstr ""
+
+#: scene/3d/occluder.cpp
+msgid "Only uniform scales are supported."
+msgstr ""
+
#: scene/3d/particles.cpp
msgid ""
"GPU-based particles are not supported by the GLES2 video driver.\n"
@@ -14465,6 +14589,14 @@ msgstr "Een geldige extensie moet gebruikt worden."
msgid "Enable grid minimap."
msgstr "Rasteroverzicht inschakelen."
+#: scene/gui/nine_patch_rect.cpp
+msgid ""
+"The Tile and Tile Fit options for Axis Stretch properties are only effective "
+"when using the GLES3 rendering backend.\n"
+"The GLES2 backend is currently in use, so these modes will act like Stretch "
+"instead."
+msgstr ""
+
#: scene/gui/popup.cpp
msgid ""
"Popups will hide by default unless you call popup() or any of the popup*() "
@@ -14518,6 +14650,10 @@ msgid "Viewport size must be greater than 0 to render anything."
msgstr ""
"De grootte van een Viewport moet groter zijn dan 0 om iets weer te geven."
+#: scene/resources/occluder_shape.cpp
+msgid "OccluderShapeSphere Set Spheres"
+msgstr ""
+
#: scene/resources/visual_shader_nodes.cpp
msgid ""
"The sampler port is connected but not used. Consider changing the source to "
@@ -14569,6 +14705,41 @@ msgstr "Toewijzing aan uniform."
msgid "Constants cannot be modified."
msgstr "Constanten kunnen niet worden aangepast."
+#~ msgid "Make Rest Pose (From Bones)"
+#~ msgstr "Maak Rustpose (van Botten)"
+
+#~ msgid "Bottom"
+#~ msgstr "Onder"
+
+#~ msgid "Left"
+#~ msgstr "Links"
+
+#~ msgid "Right"
+#~ msgstr "Rechts"
+
+#~ msgid "Front"
+#~ msgstr "Voor"
+
+#~ msgid "Rear"
+#~ msgstr "Achter"
+
+#~ msgid "Nameless gizmo"
+#~ msgstr "Naamloze gizmo"
+
+#~ msgid ""
+#~ "\"Degrees Of Freedom\" is only valid when \"Xr Mode\" is \"Oculus Mobile "
+#~ "VR\"."
+#~ msgstr ""
+#~ "\"Degrees Of Freedom\" is alleen geldig als \"Xr Mode\" op \"Oculus "
+#~ "Mobile VR\" staat."
+
+#~ msgid ""
+#~ "\"Focus Awareness\" is only valid when \"Xr Mode\" is \"Oculus Mobile VR"
+#~ "\"."
+#~ msgstr ""
+#~ "\"Focus Awareness\" is alleen geldig als \"Xr Mode\" op \"Oculus Mobile VR"
+#~ "\" staat."
+
#~ msgid "Package Contents:"
#~ msgstr "Pakketinhoud:"
diff --git a/editor/translations/or.po b/editor/translations/or.po
index 8bee62f8d5..c1036fa702 100644
--- a/editor/translations/or.po
+++ b/editor/translations/or.po
@@ -991,7 +991,7 @@ msgstr ""
msgid "Dependencies"
msgstr ""
-#: editor/dependency_editor.cpp
+#: editor/dependency_editor.cpp editor/editor_resource_picker.cpp
msgid "Resource"
msgstr ""
@@ -1620,13 +1620,13 @@ msgid ""
"Enabled'."
msgstr ""
-#: editor/editor_export.cpp platform/android/export/export.cpp
+#: editor/editor_export.cpp platform/android/export/export_plugin.cpp
#: platform/iphone/export/export.cpp platform/javascript/export/export.cpp
#: platform/osx/export/export.cpp platform/uwp/export/export.cpp
msgid "Custom debug template not found."
msgstr ""
-#: editor/editor_export.cpp platform/android/export/export.cpp
+#: editor/editor_export.cpp platform/android/export/export_plugin.cpp
#: platform/iphone/export/export.cpp platform/javascript/export/export.cpp
#: platform/osx/export/export.cpp platform/uwp/export/export.cpp
msgid "Custom release template not found."
@@ -1996,7 +1996,7 @@ msgstr ""
msgid "(Re)Importing Assets"
msgstr ""
-#: editor/editor_help.cpp editor/plugins/spatial_editor_plugin.cpp
+#: editor/editor_help.cpp
msgid "Top"
msgstr ""
@@ -2474,6 +2474,30 @@ msgid "Current scene not saved. Open anyway?"
msgstr ""
#: editor/editor_node.cpp
+msgid "Can't undo while mouse buttons are pressed."
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "Nothing to undo."
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "Undo: %s"
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "Can't redo while mouse buttons are pressed."
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "Nothing to redo."
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "Redo: %s"
+msgstr ""
+
+#: editor/editor_node.cpp
msgid "Can't reload a scene that was never saved."
msgstr ""
@@ -3097,6 +3121,10 @@ msgid "Merge With Existing"
msgstr ""
#: editor/editor_node.cpp
+msgid "Apply MeshInstance Transforms"
+msgstr ""
+
+#: editor/editor_node.cpp
msgid "Open & Run a Script"
msgstr ""
@@ -3337,6 +3365,10 @@ msgid ""
"property (%s)."
msgstr ""
+#: editor/editor_resource_picker.cpp
+msgid "Quick Load"
+msgstr ""
+
#: editor/editor_resource_picker.cpp editor/property_editor.cpp
msgid "Make Unique"
msgstr ""
@@ -5377,6 +5409,16 @@ msgid "Move CanvasItem \"%s\" to (%d, %d)"
msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Locked"
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Grouped"
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
msgid ""
"Children of containers have their anchors and margins values overridden by "
"their parent."
@@ -6275,7 +6317,11 @@ msgid "Remove Selected Item"
msgstr ""
#: editor/plugins/mesh_library_editor_plugin.cpp
-msgid "Import from Scene"
+msgid "Import from Scene (Ignore Transforms)"
+msgstr ""
+
+#: editor/plugins/mesh_library_editor_plugin.cpp
+msgid "Import from Scene (Apply Transforms)"
msgstr ""
#: editor/plugins/mesh_library_editor_plugin.cpp
@@ -6859,6 +6905,14 @@ msgstr ""
msgid "Flip Portal"
msgstr ""
+#: editor/plugins/room_manager_editor_plugin.cpp
+msgid "Occluder Set Transform"
+msgstr ""
+
+#: editor/plugins/room_manager_editor_plugin.cpp
+msgid "Center Node"
+msgstr ""
+
#: editor/plugins/root_motion_editor_plugin.cpp
msgid "AnimationTree has no path set to an AnimationPlayer"
msgstr ""
@@ -7353,11 +7407,11 @@ msgid "Skeleton2D"
msgstr ""
#: editor/plugins/skeleton_2d_editor_plugin.cpp
-msgid "Make Rest Pose (From Bones)"
+msgid "Reset to Rest Pose"
msgstr ""
#: editor/plugins/skeleton_2d_editor_plugin.cpp
-msgid "Set Bones to Rest Pose"
+msgid "Overwrite Rest Pose"
msgstr ""
#: editor/plugins/skeleton_editor_plugin.cpp
@@ -7385,6 +7439,60 @@ msgid "Perspective"
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Top Orthogonal"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Top Perspective"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Bottom Orthogonal"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Bottom Perspective"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Left Orthogonal"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Right Perspective"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Right Orthogonal"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Front Orthogonal"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Front Perspective"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Rear Orthogonal"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Rear Perspective"
+msgstr ""
+
+#. TRANSLATORS: This will be appended to the view name when Auto Orthogonal is enabled.
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid " [auto]"
+msgstr ""
+
+#. TRANSLATORS: This will be appended to the view name when Portal Occulusion is enabled.
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid " [portals active]"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
msgid "Transform Aborted."
msgstr ""
@@ -7492,42 +7600,22 @@ msgid "Bottom View."
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
-msgid "Bottom"
-msgstr ""
-
-#: editor/plugins/spatial_editor_plugin.cpp
msgid "Left View."
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
-msgid "Left"
-msgstr ""
-
-#: editor/plugins/spatial_editor_plugin.cpp
msgid "Right View."
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
-msgid "Right"
-msgstr ""
-
-#: editor/plugins/spatial_editor_plugin.cpp
msgid "Front View."
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
-msgid "Front"
-msgstr ""
-
-#: editor/plugins/spatial_editor_plugin.cpp
msgid "Rear View."
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
-msgid "Rear"
-msgstr ""
-
-#: editor/plugins/spatial_editor_plugin.cpp
msgid "Align Transform with View"
msgstr ""
@@ -7789,6 +7877,10 @@ msgid "View Portal Culling"
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
+msgid "View Occlusion Culling"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
#: modules/gridmap/grid_map_editor_plugin.cpp
msgid "Settings..."
msgstr ""
@@ -7854,7 +7946,7 @@ msgid "Post"
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
-msgid "Nameless gizmo"
+msgid "Unnamed Gizmo"
msgstr ""
#: editor/plugins/sprite_editor_plugin.cpp
@@ -11754,6 +11846,14 @@ msgstr ""
msgid "Set Portal Point Position"
msgstr ""
+#: editor/spatial_editor_gizmos.cpp
+msgid "Set Occluder Sphere Radius"
+msgstr ""
+
+#: editor/spatial_editor_gizmos.cpp
+msgid "Set Occluder Sphere Position"
+msgstr ""
+
#: modules/csg/csg_gizmos.cpp
msgid "Change Cylinder Radius"
msgstr ""
@@ -12034,6 +12134,10 @@ msgstr ""
msgid "Class name can't be a reserved keyword"
msgstr ""
+#: modules/mono/csharp_script.cpp
+msgid "Build Solution"
+msgstr ""
+
#: modules/mono/mono_gd/gd_mono_utils.cpp
msgid "End of inner exception stack trace"
msgstr ""
@@ -12500,159 +12604,148 @@ msgstr ""
msgid "Get %s"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Package name is missing."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Package segments must be of non-zero length."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "The character '%s' is not allowed in Android application package names."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "A digit cannot be the first character in a package segment."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "The character '%s' cannot be the first character in a package segment."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "The package must have at least one '.' separator."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Select device from the list"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Running on %s"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Exporting APK..."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Uninstalling..."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Installing to device, please wait..."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Could not install to device: %s"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Running on device..."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Could not execute on device."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Unable to find the 'apksigner' tool."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Android build template not installed in the project. Install it from the "
"Project menu."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Either Debug Keystore, Debug User AND Debug Password settings must be "
"configured OR none of them."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Debug keystore not configured in the Editor Settings nor in the preset."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Either Release Keystore, Release User AND Release Password settings must be "
"configured OR none of them."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Release keystore incorrectly configured in the export preset."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "A valid Android SDK path is required in Editor Settings."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Invalid Android SDK path in Editor Settings."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Missing 'platform-tools' directory!"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Unable to find Android SDK platform-tools' adb command."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Please check in the Android SDK directory specified in Editor Settings."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Missing 'build-tools' directory!"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Unable to find Android SDK build-tools' apksigner command."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Invalid public key for APK expansion."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Invalid package name:"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Invalid \"GodotPaymentV3\" module included in the \"android/modules\" "
"project setting (changed in Godot 3.2.2).\n"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "\"Use Custom Build\" must be enabled to use the plugins."
msgstr ""
-#: platform/android/export/export.cpp
-msgid ""
-"\"Degrees Of Freedom\" is only valid when \"Xr Mode\" is \"Oculus Mobile VR"
-"\"."
-msgstr ""
-
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"\"Hand Tracking\" is only valid when \"Xr Mode\" is \"Oculus Mobile VR\"."
msgstr ""
-#: platform/android/export/export.cpp
-msgid ""
-"\"Focus Awareness\" is only valid when \"Xr Mode\" is \"Oculus Mobile VR\"."
-msgstr ""
-
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "\"Export AAB\" is only valid when \"Use Custom Build\" is enabled."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"'apksigner' could not be found.\n"
"Please check the command is available in the Android SDK build-tools "
@@ -12660,57 +12753,57 @@ msgid ""
"The resulting %s is unsigned."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Signing debug %s..."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Signing release %s..."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Could not find keystore, unable to export."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "'apksigner' returned with error #%d"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Verifying %s..."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "'apksigner' verification of %s failed."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Exporting for Android"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Invalid filename! Android App Bundle requires the *.aab extension."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "APK Expansion not compatible with Android App Bundle."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Invalid filename! Android APK requires the *.apk extension."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Unsupported export format!\n"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Trying to build from a custom built template, but no version info for it "
"exists. Please reinstall from the 'Project' menu."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Android build version mismatch:\n"
" Template installed: %s\n"
@@ -12718,54 +12811,54 @@ msgid ""
"Please reinstall Android build template from 'Project' menu."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Unable to overwrite res://android/build/res/*.xml files with project name"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Could not export project files to gradle project\n"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Could not write expansion package file!"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Building Android Project (gradle)"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Building of Android project failed, check output for the error.\n"
"Alternatively visit docs.godotengine.org for Android build documentation."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Moving output"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Unable to copy and rename export file, check gradle project directory for "
"outputs."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Package not found: %s"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Creating APK..."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Could not find template APK to export:\n"
"%s"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Missing libraries in the export template for the selected architectures: "
"%s.\n"
@@ -12773,19 +12866,19 @@ msgid ""
"architectures in the export preset."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Adding files..."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Could not export project files"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Aligning APK..."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Could not unzip temporary unaligned APK."
msgstr ""
@@ -13235,6 +13328,14 @@ msgid ""
"It only provides navigation data."
msgstr ""
+#: scene/3d/occluder.cpp
+msgid "No shape is set."
+msgstr ""
+
+#: scene/3d/occluder.cpp
+msgid "Only uniform scales are supported."
+msgstr ""
+
#: scene/3d/particles.cpp
msgid ""
"GPU-based particles are not supported by the GLES2 video driver.\n"
@@ -13524,6 +13625,14 @@ msgstr ""
msgid "Enable grid minimap."
msgstr ""
+#: scene/gui/nine_patch_rect.cpp
+msgid ""
+"The Tile and Tile Fit options for Axis Stretch properties are only effective "
+"when using the GLES3 rendering backend.\n"
+"The GLES2 backend is currently in use, so these modes will act like Stretch "
+"instead."
+msgstr ""
+
#: scene/gui/popup.cpp
msgid ""
"Popups will hide by default unless you call popup() or any of the popup*() "
@@ -13564,6 +13673,10 @@ msgstr ""
msgid "Viewport size must be greater than 0 to render anything."
msgstr ""
+#: scene/resources/occluder_shape.cpp
+msgid "OccluderShapeSphere Set Spheres"
+msgstr ""
+
#: scene/resources/visual_shader_nodes.cpp
msgid ""
"The sampler port is connected but not used. Consider changing the source to "
diff --git a/editor/translations/pl.po b/editor/translations/pl.po
index 24ad379ad0..7a5a0eb037 100644
--- a/editor/translations/pl.po
+++ b/editor/translations/pl.po
@@ -48,11 +48,12 @@
# gnu-ewm <gnu.ewm@protonmail.com>, 2021.
# vrid <patryksoon@live.com>, 2021.
# Suchy Talerz <kacperkubis06@gmail.com>, 2021.
+# Bartosz Stasiak <bs97086@amu.edu.pl>, 2021.
msgid ""
msgstr ""
"Project-Id-Version: Godot Engine editor\n"
"POT-Creation-Date: \n"
-"PO-Revision-Date: 2021-07-29 21:48+0000\n"
+"PO-Revision-Date: 2021-09-15 00:46+0000\n"
"Last-Translator: Tomek <kobewi4e@gmail.com>\n"
"Language-Team: Polish <https://hosted.weblate.org/projects/godot-engine/"
"godot/pl/>\n"
@@ -62,7 +63,7 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=3; plural=n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 "
"|| n%100>=20) ? 1 : 2;\n"
-"X-Generator: Weblate 4.7.2-dev\n"
+"X-Generator: Weblate 4.9-dev\n"
#: core/math/expression.cpp modules/gdscript/gdscript_functions.cpp
#: modules/visual_script/visual_script_builtin_funcs.cpp
@@ -411,15 +412,13 @@ msgstr "Wstaw animacjÄ™"
#. TRANSLATORS: This describes the target of new animation track, will be inserted into another string.
#: editor/animation_track_editor.cpp
-#, fuzzy
msgid "node '%s'"
-msgstr "Nie można otworzyć '%s'."
+msgstr "węzeł \"%s\""
#. TRANSLATORS: This describes the target of new animation track, will be inserted into another string.
#: editor/animation_track_editor.cpp
-#, fuzzy
msgid "animation"
-msgstr "Animacja"
+msgstr "animacja"
#: editor/animation_track_editor.cpp
msgid "AnimationPlayer can't animate itself, only other players."
@@ -428,9 +427,8 @@ msgstr ""
#. TRANSLATORS: This describes the target of new animation track, will be inserted into another string.
#: editor/animation_track_editor.cpp
-#, fuzzy
msgid "property '%s'"
-msgstr "Właściwość \"%s\" nie istnieje."
+msgstr "właściwość \"%s\""
#: editor/animation_track_editor.cpp
msgid "Anim Create & Insert"
@@ -639,9 +637,8 @@ msgid "Go to Previous Step"
msgstr "Przejdź do poprzedniego kroku"
#: editor/animation_track_editor.cpp
-#, fuzzy
msgid "Apply Reset"
-msgstr "Resetuj"
+msgstr "Zastosuj reset"
#: editor/animation_track_editor.cpp
msgid "Optimize Animation"
@@ -660,9 +657,8 @@ msgid "Use Bezier Curves"
msgstr "Użyj krzywych Beziera"
#: editor/animation_track_editor.cpp
-#, fuzzy
msgid "Create RESET Track(s)"
-msgstr "Wklej ścieżki"
+msgstr "Utwórz ścieżki RESET"
#: editor/animation_track_editor.cpp
msgid "Anim. Optimizer"
@@ -986,7 +982,6 @@ msgid "Edit..."
msgstr "Edytuj..."
#: editor/connections_dialog.cpp
-#, fuzzy
msgid "Go to Method"
msgstr "Idź do metody"
@@ -1008,7 +1003,7 @@ msgstr "Brak wyników dla \"%s\"."
#: editor/create_dialog.cpp editor/property_selector.cpp
msgid "No description available for %s."
-msgstr ""
+msgstr "Brak dostępnego opisu dla %s."
#: editor/create_dialog.cpp editor/editor_file_dialog.cpp
#: editor/filesystem_dock.cpp
@@ -1068,7 +1063,7 @@ msgstr ""
msgid "Dependencies"
msgstr "Zależności"
-#: editor/dependency_editor.cpp
+#: editor/dependency_editor.cpp editor/editor_resource_picker.cpp
msgid "Resource"
msgstr "Zasoby"
@@ -1108,17 +1103,16 @@ msgid "Owners Of:"
msgstr "Właściciele:"
#: editor/dependency_editor.cpp
-#, fuzzy
msgid ""
"Remove the selected files from the project? (Cannot be undone.)\n"
"Depending on your filesystem configuration, the files will either be moved "
"to the system trash or deleted permanently."
msgstr ""
"Usunąć wybrane pliki z projektu? (nie można tego cofnąć)\n"
-"Możesz znaleźć usunięte pliki w systemowym koszu, by je przywrócić."
+"W zależności od konfiguracji systemu plików, te pliki zostaną przeniesione "
+"do kosza albo usunięte na stałe."
#: editor/dependency_editor.cpp
-#, fuzzy
msgid ""
"The files being removed are required by other resources in order for them to "
"work.\n"
@@ -1128,7 +1122,8 @@ msgid ""
msgstr ""
"Usuwane pliki są wymagane przez inne zasoby, żeby mogły one działać.\n"
"Usunąć mimo to? (nie można tego cofnąć)\n"
-"Możesz znaleźć usunięte pliki w systemowym koszu, by je przywrócić."
+"W zależności od konfiguracji systemu plików, te pliki zostaną przeniesione "
+"do kosza albo usunięte na stałe."
#: editor/dependency_editor.cpp
msgid "Cannot remove:"
@@ -1298,41 +1293,37 @@ msgid "Licenses"
msgstr "Licencje"
#: editor/editor_asset_installer.cpp
-#, fuzzy
msgid "Error opening asset file for \"%s\" (not in ZIP format)."
-msgstr "Błąd otwierania pliku pakietu (nie jest w formacie ZIP)."
+msgstr "Błąd otwierania pliku zasobu dla \"%s\" (nie jest w formacie ZIP)."
#: editor/editor_asset_installer.cpp
-#, fuzzy
msgid "%s (already exists)"
msgstr "%s (już istnieje)"
#: editor/editor_asset_installer.cpp
msgid "Contents of asset \"%s\" - %d file(s) conflict with your project:"
-msgstr ""
+msgstr "Zawartość zasobu \"%s\" - %d plik(ów) konfliktuje z twoim projektem:"
#: editor/editor_asset_installer.cpp
msgid "Contents of asset \"%s\" - No files conflict with your project:"
msgstr ""
+"Zawartość zasobu \"%s\" - Żaden plik nie konfliktuje z twoim projektem:"
#: editor/editor_asset_installer.cpp
msgid "Uncompressing Assets"
msgstr "Dekompresja zasobów"
#: editor/editor_asset_installer.cpp
-#, fuzzy
msgid "The following files failed extraction from asset \"%s\":"
-msgstr "Nie powiodło się wypakowanie z pakietu następujących plików:"
+msgstr "Nie powiodło się wypakowanie następujących plików z zasobu \"%s\":"
#: editor/editor_asset_installer.cpp
-#, fuzzy
msgid "(and %s more files)"
-msgstr "I jeszcze %s plików."
+msgstr "(i jeszcze %s plików)"
#: editor/editor_asset_installer.cpp
-#, fuzzy
msgid "Asset \"%s\" installed successfully!"
-msgstr "Pakiet zainstalowano poprawnie!"
+msgstr "Zasób \"%s\" zainstalowany pomyślnie!"
#: editor/editor_asset_installer.cpp
#: editor/plugins/asset_library_editor_plugin.cpp
@@ -1344,9 +1335,8 @@ msgid "Install"
msgstr "Zainstaluj"
#: editor/editor_asset_installer.cpp
-#, fuzzy
msgid "Asset Installer"
-msgstr "Instalator pakietu"
+msgstr "Instalator zasobu"
#: editor/editor_audio_buses.cpp
msgid "Speakers"
@@ -1409,7 +1399,6 @@ msgid "Bypass"
msgstr "Omiń"
#: editor/editor_audio_buses.cpp
-#, fuzzy
msgid "Bus Options"
msgstr "Opcje magistrali"
@@ -1577,13 +1566,12 @@ msgid "Can't add autoload:"
msgstr "Nie można dodać Autoload:"
#: editor/editor_autoload_settings.cpp
-#, fuzzy
msgid "%s is an invalid path. File does not exist."
-msgstr "Plik nie istnieje."
+msgstr "Ścieżka %s jest nieprawidłowa. Plik nie istnieje."
#: editor/editor_autoload_settings.cpp
msgid "%s is an invalid path. Not in resource path (res://)."
-msgstr ""
+msgstr "%s jest nieprawidłową ścieżką. Nie jest ścieżką zasobu (res://)."
#: editor/editor_autoload_settings.cpp
msgid "Add AutoLoad"
@@ -1607,9 +1595,8 @@ msgid "Name"
msgstr "Nazwa"
#: editor/editor_autoload_settings.cpp
-#, fuzzy
msgid "Global Variable"
-msgstr "Zmienna"
+msgstr "Zmienna globalna"
#: editor/editor_data.cpp
msgid "Paste Params"
@@ -1733,13 +1720,13 @@ msgstr ""
"Włącz \"Import Pvrtc\" w Ustawieniach Projektu lub wyłącz \"Driver Fallback "
"Enabled\"."
-#: editor/editor_export.cpp platform/android/export/export.cpp
+#: editor/editor_export.cpp platform/android/export/export_plugin.cpp
#: platform/iphone/export/export.cpp platform/javascript/export/export.cpp
#: platform/osx/export/export.cpp platform/uwp/export/export.cpp
msgid "Custom debug template not found."
msgstr "Nie znaleziono własnego szablonu debugowania."
-#: editor/editor_export.cpp platform/android/export/export.cpp
+#: editor/editor_export.cpp platform/android/export/export_plugin.cpp
#: platform/iphone/export/export.cpp platform/javascript/export/export.cpp
#: platform/osx/export/export.cpp platform/uwp/export/export.cpp
msgid "Custom release template not found."
@@ -1783,48 +1770,50 @@ msgstr "Dok importowania"
#: editor/editor_feature_profile.cpp
msgid "Allows to view and edit 3D scenes."
-msgstr ""
+msgstr "Pozwala wyświetlać i edytować sceny 3D."
#: editor/editor_feature_profile.cpp
msgid "Allows to edit scripts using the integrated script editor."
-msgstr ""
+msgstr "Pozwala edytować skrypty, z użyciem zintegrowanego edytora skryptów."
#: editor/editor_feature_profile.cpp
msgid "Provides built-in access to the Asset Library."
-msgstr ""
+msgstr "Zapewnia wbudowany dostęp do Biblioteki Zasobów."
#: editor/editor_feature_profile.cpp
msgid "Allows editing the node hierarchy in the Scene dock."
-msgstr ""
+msgstr "Pozwala edytować hierarchię węzłów w doku sceny."
#: editor/editor_feature_profile.cpp
msgid ""
"Allows to work with signals and groups of the node selected in the Scene "
"dock."
msgstr ""
+"Pozwala pracować z sygnałami i grupami węzłów zaznaczonych w doku sceny."
#: editor/editor_feature_profile.cpp
msgid "Allows to browse the local file system via a dedicated dock."
-msgstr ""
+msgstr "Pozwala przeglądać lokalny system plików używając dedykowanego doku."
#: editor/editor_feature_profile.cpp
msgid ""
"Allows to configure import settings for individual assets. Requires the "
"FileSystem dock to function."
msgstr ""
+"Pozwala konfigurować ustawienia importu dla indywidualnych zasobów. Wymaga "
+"doku systemu plików do funkcjonowania."
#: editor/editor_feature_profile.cpp
-#, fuzzy
msgid "(current)"
-msgstr "(Bieżący)"
+msgstr "(bieżący)"
#: editor/editor_feature_profile.cpp
msgid "(none)"
-msgstr ""
+msgstr "(żaden)"
#: editor/editor_feature_profile.cpp
msgid "Remove currently selected profile, '%s'? Cannot be undone."
-msgstr ""
+msgstr "Usunąć aktualnie wybrany profil, \"%s\"? Nie można cofnąć."
#: editor/editor_feature_profile.cpp
msgid "Profile must be a valid filename and must not contain '.'"
@@ -1855,19 +1844,16 @@ msgid "Enable Contextual Editor"
msgstr "Włącz edytor kontekstowy"
#: editor/editor_feature_profile.cpp
-#, fuzzy
msgid "Class Properties:"
-msgstr "Właściwości:"
+msgstr "Właściwości klasy:"
#: editor/editor_feature_profile.cpp
-#, fuzzy
msgid "Main Features:"
-msgstr "Funkcje"
+msgstr "Główne funkcjonalności:"
#: editor/editor_feature_profile.cpp
-#, fuzzy
msgid "Nodes and Classes:"
-msgstr "Włączone klasy:"
+msgstr "Węzły i klasy:"
#: editor/editor_feature_profile.cpp
msgid "File '%s' format is invalid, import aborted."
@@ -1885,7 +1871,6 @@ msgid "Error saving profile to path: '%s'."
msgstr "Błąd zapisywania profilu do ścieżki \"%s\"."
#: editor/editor_feature_profile.cpp
-#, fuzzy
msgid "Reset to Default"
msgstr "Resetuj do domyślnych"
@@ -1894,14 +1879,12 @@ msgid "Current Profile:"
msgstr "Bieżący profil:"
#: editor/editor_feature_profile.cpp
-#, fuzzy
msgid "Create Profile"
-msgstr "Usuń profil"
+msgstr "Utwórz profil"
#: editor/editor_feature_profile.cpp
-#, fuzzy
msgid "Remove Profile"
-msgstr "Usuń Kafelek"
+msgstr "Usuń profil"
#: editor/editor_feature_profile.cpp
msgid "Available Profiles:"
@@ -1921,18 +1904,17 @@ msgid "Export"
msgstr "Eksportuj"
#: editor/editor_feature_profile.cpp
-#, fuzzy
msgid "Configure Selected Profile:"
-msgstr "Bieżący profil:"
+msgstr "Konfiguruj wybrany profil:"
#: editor/editor_feature_profile.cpp
-#, fuzzy
msgid "Extra Options:"
-msgstr "Opcje Tekstury"
+msgstr "Opcje dodatkowe:"
#: editor/editor_feature_profile.cpp
msgid "Create or import a profile to edit available classes and properties."
msgstr ""
+"Utwórz lub zaimportuj profil, by edytować dostępne klasy i właściwości."
#: editor/editor_feature_profile.cpp
msgid "New profile name:"
@@ -1959,7 +1941,6 @@ msgid "Select Current Folder"
msgstr "Wybierz bieżący katalog"
#: editor/editor_file_dialog.cpp scene/gui/file_dialog.cpp
-#, fuzzy
msgid "File exists, overwrite?"
msgstr "Plik istnieje, nadpisać?"
@@ -2120,7 +2101,7 @@ msgstr "Istnieje wiele importerów różnych typów dla pliku %s, import przerwa
msgid "(Re)Importing Assets"
msgstr "(Ponowne) importowanie zasobów"
-#: editor/editor_help.cpp editor/plugins/spatial_editor_plugin.cpp
+#: editor/editor_help.cpp
msgid "Top"
msgstr "Góra"
@@ -2357,6 +2338,9 @@ msgid ""
"Update Continuously is enabled, which can increase power usage. Click to "
"disable it."
msgstr ""
+"Kręci się, gdy edytor się przerysowuje.\n"
+"Ciągła aktualizacja jest włączona, co zwiększa pobór mocy. Kliknij, by ją "
+"wyłączyć."
#: editor/editor_node.cpp
msgid "Spins when the editor window redraws."
@@ -2593,13 +2577,16 @@ msgid ""
"The current scene has no root node, but %d modified external resource(s) "
"were saved anyway."
msgstr ""
+"Aktualna scena nie ma korzenia, ale %s zmodyfikowane zasoby zostały zapisane "
+"i tak."
#: editor/editor_node.cpp
-#, fuzzy
msgid ""
"A root node is required to save the scene. You can add a root node using the "
"Scene tree dock."
-msgstr "Scena musi posiadać korzeń, by ją zapisać."
+msgstr ""
+"Scena musi posiadać korzeń, by ją zapisać. Możesz dodać węzeł korzenia "
+"używając doku drzewa sceny."
#: editor/editor_node.cpp
msgid "Save Scene As..."
@@ -2630,6 +2617,32 @@ msgid "Current scene not saved. Open anyway?"
msgstr "Aktualna scena nie została zapisana. Otworzyć mimo to?"
#: editor/editor_node.cpp
+msgid "Can't undo while mouse buttons are pressed."
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "Nothing to undo."
+msgstr ""
+
+#: editor/editor_node.cpp
+#, fuzzy
+msgid "Undo: %s"
+msgstr "Cofnij"
+
+#: editor/editor_node.cpp
+msgid "Can't redo while mouse buttons are pressed."
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "Nothing to redo."
+msgstr ""
+
+#: editor/editor_node.cpp
+#, fuzzy
+msgid "Redo: %s"
+msgstr "Ponów"
+
+#: editor/editor_node.cpp
msgid "Can't reload a scene that was never saved."
msgstr "Nie można przeładować sceny która nie została zapisana."
@@ -2981,9 +2994,8 @@ msgid "Orphan Resource Explorer..."
msgstr "Eksplorator osieroconych zasobów..."
#: editor/editor_node.cpp
-#, fuzzy
msgid "Reload Current Project"
-msgstr "Zmień nazwę projektu"
+msgstr "Wczytaj ponownie aktualny projekt"
#: editor/editor_node.cpp
msgid "Quit to Project List"
@@ -3142,22 +3154,20 @@ msgid "Help"
msgstr "Pomoc"
#: editor/editor_node.cpp
-#, fuzzy
msgid "Online Documentation"
-msgstr "Otwórz dokumentację"
+msgstr "Dokumentacja online"
#: editor/editor_node.cpp
msgid "Questions & Answers"
-msgstr ""
+msgstr "Pytania i odpowiedzi"
#: editor/editor_node.cpp
msgid "Report a Bug"
msgstr "Zgłoś błąd"
#: editor/editor_node.cpp
-#, fuzzy
msgid "Suggest a Feature"
-msgstr "Ustaw Wartość"
+msgstr "Zasugeruj funkcjonalność"
#: editor/editor_node.cpp
msgid "Send Docs Feedback"
@@ -3168,9 +3178,8 @@ msgid "Community"
msgstr "Społeczność"
#: editor/editor_node.cpp
-#, fuzzy
msgid "About Godot"
-msgstr "O silniku"
+msgstr "O Godocie"
#: editor/editor_node.cpp
msgid "Support Godot Development"
@@ -3262,14 +3271,12 @@ msgid "Manage Templates"
msgstr "ZarzÄ…dzaj szablonami"
#: editor/editor_node.cpp
-#, fuzzy
msgid "Install from file"
msgstr "Zainstaluj z pliku"
#: editor/editor_node.cpp
-#, fuzzy
msgid "Select android sources file"
-msgstr "Wybierz siatkę źródłową:"
+msgstr "Wybierz pliki źródłowe Androida"
#: editor/editor_node.cpp
msgid ""
@@ -3317,6 +3324,11 @@ msgid "Merge With Existing"
msgstr "Połącz z Istniejącym"
#: editor/editor_node.cpp
+#, fuzzy
+msgid "Apply MeshInstance Transforms"
+msgstr "Zmiana transformacji"
+
+#: editor/editor_node.cpp
msgid "Open & Run a Script"
msgstr "Otwórz i Uruchom Skrypt"
@@ -3351,9 +3363,8 @@ msgid "Select"
msgstr "Zaznacz"
#: editor/editor_node.cpp
-#, fuzzy
msgid "Select Current"
-msgstr "Wybierz bieżący katalog"
+msgstr "Wybierz aktualnÄ…"
#: editor/editor_node.cpp
msgid "Open 2D Editor"
@@ -3388,9 +3399,8 @@ msgid "No sub-resources found."
msgstr "Nie znaleziono podzasobów."
#: editor/editor_path.cpp
-#, fuzzy
msgid "Open a list of sub-resources."
-msgstr "Nie znaleziono podzasobów."
+msgstr "Otwórz listę pod-zasobów."
#: editor/editor_plugin.cpp
msgid "Creating Mesh Previews"
@@ -3417,14 +3427,12 @@ msgid "Update"
msgstr "Odśwież"
#: editor/editor_plugin_settings.cpp
-#, fuzzy
msgid "Version"
-msgstr "Wersja:"
+msgstr "Wersja"
#: editor/editor_plugin_settings.cpp
-#, fuzzy
msgid "Author"
-msgstr "Autorzy"
+msgstr "Autor"
#: editor/editor_plugin_settings.cpp
#: editor/plugins/version_control_editor_plugin.cpp
@@ -3437,14 +3445,12 @@ msgid "Measure:"
msgstr "Zmierzono:"
#: editor/editor_profiler.cpp
-#, fuzzy
msgid "Frame Time (ms)"
-msgstr "Czas klatki (sek)"
+msgstr "Czas klatki (ms)"
#: editor/editor_profiler.cpp
-#, fuzzy
msgid "Average Time (ms)"
-msgstr "Åšredni czas (sek)"
+msgstr "Åšredni czas (ms)"
#: editor/editor_profiler.cpp
msgid "Frame %"
@@ -3471,6 +3477,12 @@ msgid ""
"functions called by that function.\n"
"Use this to find individual functions to optimize."
msgstr ""
+"Inkluzyjny: Zawiera czas z innych funkcji wywołanych przez tę funkcję.\n"
+"Użyj tego, by znaleźć wąskie gardła.\n"
+"\n"
+"Własny: Licz tylko czas spędzony w samej funkcji, bez funkcji wywołanych "
+"przez niÄ….\n"
+"Użyj tego, by znaleźć pojedyncze funkcje do optymalizacji."
#: editor/editor_profiler.cpp
msgid "Frame #:"
@@ -3573,6 +3585,10 @@ msgstr ""
"Wybrany zasób (%s) nie zgadza się z żadnym rodzajem przewidywanym dla tego "
"użycia (%s)."
+#: editor/editor_resource_picker.cpp
+msgid "Quick Load"
+msgstr ""
+
#: editor/editor_resource_picker.cpp editor/property_editor.cpp
msgid "Make Unique"
msgstr "Zrób unikalny"
@@ -3592,9 +3608,8 @@ msgid "Paste"
msgstr "Wklej"
#: editor/editor_resource_picker.cpp editor/property_editor.cpp
-#, fuzzy
msgid "Convert to %s"
-msgstr "Konwersja do %s"
+msgstr "Konwertuj do %s"
#: editor/editor_resource_picker.cpp editor/property_editor.cpp
msgid "New %s"
@@ -3643,10 +3658,9 @@ msgid "Did you forget the '_run' method?"
msgstr "Zapomniano metody \"_run\"?"
#: editor/editor_spin_slider.cpp
-#, fuzzy
msgid "Hold %s to round to integers. Hold Shift for more precise changes."
msgstr ""
-"Przytrzyma Ctrl, by zaokrąglić do liczb całkowitych. Przytrzymaj Shift dla "
+"Przytrzymaj %s, by zaokrąglić do liczb całkowitych. Przytrzymaj Shift dla "
"bardziej precyzyjnych zmian."
#: editor/editor_sub_scene.cpp
@@ -3667,49 +3681,43 @@ msgstr "Zaimportuj z węzła:"
#: editor/export_template_manager.cpp
msgid "Open the folder containing these templates."
-msgstr ""
+msgstr "Otwórz folder zawierający te szablony."
#: editor/export_template_manager.cpp
msgid "Uninstall these templates."
-msgstr ""
+msgstr "Odinstaluj te szablony."
#: editor/export_template_manager.cpp
-#, fuzzy
msgid "There are no mirrors available."
-msgstr "Nie ma pliku \"%s\"."
+msgstr "Brak dostępnych mirrorów."
#: editor/export_template_manager.cpp
-#, fuzzy
msgid "Retrieving the mirror list..."
-msgstr "Pobieranie informacji o serwerach lustrzanych, proszę czekać..."
+msgstr "Pobieranie listy mirrorów..."
#: editor/export_template_manager.cpp
msgid "Starting the download..."
-msgstr ""
+msgstr "Zaczynam pobieranie..."
#: editor/export_template_manager.cpp
msgid "Error requesting URL:"
msgstr "Błąd podczas żądania adresu URL:"
#: editor/export_template_manager.cpp
-#, fuzzy
msgid "Connecting to the mirror..."
-msgstr "ÅÄ…czenie z serwerem lustrzanym..."
+msgstr "ÅÄ…czenie z mirrorem..."
#: editor/export_template_manager.cpp
-#, fuzzy
msgid "Can't resolve the requested address."
-msgstr "Nie udało się odnaleźć hosta:"
+msgstr "Nie udało się rozstrzygnąć żądanego adresu."
#: editor/export_template_manager.cpp
-#, fuzzy
msgid "Can't connect to the mirror."
-msgstr "Nie można połączyć do hosta:"
+msgstr "Nie można połączyć z mirrorem."
#: editor/export_template_manager.cpp
-#, fuzzy
msgid "No response from the mirror."
-msgstr "Brak odpowiedzi hosta:"
+msgstr "Brak odpowiedzi mirrora."
#: editor/export_template_manager.cpp
#: editor/plugins/asset_library_editor_plugin.cpp
@@ -3717,18 +3725,16 @@ msgid "Request failed."
msgstr "Żądanie nie powiodło się."
#: editor/export_template_manager.cpp
-#, fuzzy
msgid "Request ended up in a redirect loop."
-msgstr "Żądanie nieudane, zbyt dużo przekierowań"
+msgstr "Żądanie skończyło w pętli przekierowań."
#: editor/export_template_manager.cpp
-#, fuzzy
msgid "Request failed:"
-msgstr "Żądanie nie powiodło się."
+msgstr "Żądanie nie powiodło się:"
#: editor/export_template_manager.cpp
msgid "Download complete; extracting templates..."
-msgstr ""
+msgstr "Pobieranie ukończone; rozpakowuję szablony..."
#: editor/export_template_manager.cpp
msgid "Cannot remove temporary file:"
@@ -3747,13 +3753,12 @@ msgid "Error getting the list of mirrors."
msgstr "Błąd odbierania listy mirrorów."
#: editor/export_template_manager.cpp
-#, fuzzy
msgid "Error parsing JSON with the list of mirrors. Please report this issue!"
-msgstr "Błąd parsowania JSONa listy mirrorów. Zgłoś proszę ten błąd!"
+msgstr "Błąd parsowania JSONa z listą mirrorów. Zgłoś proszę ten błąd!"
#: editor/export_template_manager.cpp
msgid "Best available mirror"
-msgstr ""
+msgstr "Najlepszy dostępny mirror"
#: editor/export_template_manager.cpp
msgid ""
@@ -3806,24 +3811,20 @@ msgid "SSL Handshake Error"
msgstr "Błąd podczas wymiany (handshake) SSL"
#: editor/export_template_manager.cpp
-#, fuzzy
msgid "Can't open the export templates file."
-msgstr "Nie można otworzyć pliku zip szablonów eksportu."
+msgstr "Nie można otworzyć pliku szablonów eksportu."
#: editor/export_template_manager.cpp
-#, fuzzy
msgid "Invalid version.txt format inside the export templates file: %s."
-msgstr "Nieprawidłowy format pliku version.txt w szablonach: %s."
+msgstr "Nieprawidłowy format version.txt w pliku szablonów eksportu: %s."
#: editor/export_template_manager.cpp
-#, fuzzy
msgid "No version.txt found inside the export templates file."
-msgstr "Nie znaleziono pliku version.txt w szablonach."
+msgstr "Nie znaleziono version.txt w pliku szablonu eksportu."
#: editor/export_template_manager.cpp
-#, fuzzy
msgid "Error creating path for extracting templates:"
-msgstr "Błąd tworzenia ścieżki dla szablonów:"
+msgstr "Błąd tworzenia ścieżki do rozpakowania szablonów:"
#: editor/export_template_manager.cpp
msgid "Extracting Export Templates"
@@ -3834,9 +3835,8 @@ msgid "Importing:"
msgstr "Importowanie:"
#: editor/export_template_manager.cpp
-#, fuzzy
msgid "Remove templates for the version '%s'?"
-msgstr "Usunąć wersję \"%s\" szablonu?"
+msgstr "Usunąć szablony dla wersji \"%s\"?"
#: editor/export_template_manager.cpp
msgid "Uncompressing Android Build Sources"
@@ -3852,54 +3852,51 @@ msgstr "Aktualna wersja:"
#: editor/export_template_manager.cpp
msgid "Export templates are missing. Download them or install from a file."
-msgstr ""
+msgstr "Brakuje szablonów eksportu. Pobierz je lub zainstaluj z pliku."
#: editor/export_template_manager.cpp
msgid "Export templates are installed and ready to be used."
-msgstr ""
+msgstr "Szablony eksportu są zainstalowane i gotowe do użycia."
#: editor/export_template_manager.cpp
-#, fuzzy
msgid "Open Folder"
-msgstr "Otwórz plik"
+msgstr "Otwórz folder"
#: editor/export_template_manager.cpp
msgid "Open the folder containing installed templates for the current version."
-msgstr ""
+msgstr "Otwórz folder zawierający zainstalowane szablony dla aktualnej wersji."
#: editor/export_template_manager.cpp
msgid "Uninstall"
msgstr "Odinstaluj"
#: editor/export_template_manager.cpp
-#, fuzzy
msgid "Uninstall templates for the current version."
-msgstr "Początkowa wartość dla licznika"
+msgstr "Odinstaluj szablony dla aktualnej wersji."
#: editor/export_template_manager.cpp
-#, fuzzy
msgid "Download from:"
-msgstr "Błąd pobierania"
+msgstr "Pobierz z:"
#: editor/export_template_manager.cpp
-#, fuzzy
msgid "Open in Web Browser"
-msgstr "Uruchom w przeglÄ…darce"
+msgstr "Otwórz w przeglądarce"
#: editor/export_template_manager.cpp
-#, fuzzy
msgid "Copy Mirror URL"
-msgstr "Kopiuj błąd"
+msgstr "Kopiuj URL mirrora"
#: editor/export_template_manager.cpp
msgid "Download and Install"
-msgstr ""
+msgstr "Pobierz i zainstaluj"
#: editor/export_template_manager.cpp
msgid ""
"Download and install templates for the current version from the best "
"possible mirror."
msgstr ""
+"Pobierz i zainstaluj szablony dla aktualnej wersji z najlepszego dostępnego "
+"mirroru."
#: editor/export_template_manager.cpp
msgid "Official export templates aren't available for development builds."
@@ -3908,14 +3905,12 @@ msgstr ""
"programistycznych."
#: editor/export_template_manager.cpp
-#, fuzzy
msgid "Install from File"
msgstr "Zainstaluj z pliku"
#: editor/export_template_manager.cpp
-#, fuzzy
msgid "Install templates from a local file."
-msgstr "Zaimportuj Szablony z pliku ZIP"
+msgstr "Zainstaluj szablony z lokalnego pliku."
#: editor/export_template_manager.cpp editor/find_in_files.cpp
#: editor/progress_dialog.cpp scene/gui/dialogs.cpp
@@ -3923,19 +3918,16 @@ msgid "Cancel"
msgstr "Anuluj"
#: editor/export_template_manager.cpp
-#, fuzzy
msgid "Cancel the download of the templates."
-msgstr "Nie można otworzyć pliku zip szablonów eksportu."
+msgstr "Anuluj pobieranie szablonów."
#: editor/export_template_manager.cpp
-#, fuzzy
msgid "Other Installed Versions:"
-msgstr "Zainstalowane szablony:"
+msgstr "Inne zainstalowane wersje:"
#: editor/export_template_manager.cpp
-#, fuzzy
msgid "Uninstall Template"
-msgstr "Odinstaluj"
+msgstr "Odinstaluj szablon"
#: editor/export_template_manager.cpp
msgid "Select Template File"
@@ -3950,6 +3942,8 @@ msgid ""
"The templates will continue to download.\n"
"You may experience a short editor freeze when they finish."
msgstr ""
+"Szablony kontynuujÄ… pobieranie.\n"
+"Możesz doświadczyć krótkiego zacięcia edytora, kiedy skończą."
#: editor/filesystem_dock.cpp
msgid "Favorites"
@@ -4097,35 +4091,32 @@ msgid "Collapse All"
msgstr "Zwiń wszystko"
#: editor/filesystem_dock.cpp
-#, fuzzy
msgid "Sort files"
-msgstr "Przeszukaj pliki"
+msgstr "Sortuj pliki"
#: editor/filesystem_dock.cpp
msgid "Sort by Name (Ascending)"
-msgstr ""
+msgstr "Sortuj po nazwie (rosnÄ…co)"
#: editor/filesystem_dock.cpp
msgid "Sort by Name (Descending)"
-msgstr ""
+msgstr "Sortuj po nazwie (malejÄ…co)"
#: editor/filesystem_dock.cpp
msgid "Sort by Type (Ascending)"
-msgstr ""
+msgstr "Sortuj po typie (rosnÄ…co)"
#: editor/filesystem_dock.cpp
msgid "Sort by Type (Descending)"
-msgstr ""
+msgstr "Sortuj po typie (malejÄ…co)"
#: editor/filesystem_dock.cpp
-#, fuzzy
msgid "Sort by Last Modified"
-msgstr "Data modyfikacji"
+msgstr "Ostatnie zmodyfikowane"
#: editor/filesystem_dock.cpp
-#, fuzzy
msgid "Sort by First Modified"
-msgstr "Data modyfikacji"
+msgstr "Pierwsze zmodyfikowane"
#: editor/filesystem_dock.cpp
msgid "Duplicate..."
@@ -4137,7 +4128,7 @@ msgstr "Zmień nazwę..."
#: editor/filesystem_dock.cpp
msgid "Focus the search box"
-msgstr ""
+msgstr "Przełącz na pasek wyszukiwania"
#: editor/filesystem_dock.cpp
msgid "Previous Folder/File"
@@ -4447,14 +4438,12 @@ msgid "Failed to load resource."
msgstr "Nie udało się wczytać zasobu."
#: editor/inspector_dock.cpp
-#, fuzzy
msgid "Copy Properties"
-msgstr "Właściwości"
+msgstr "Skopiuj właściwości"
#: editor/inspector_dock.cpp
-#, fuzzy
msgid "Paste Properties"
-msgstr "Właściwości"
+msgstr "Wklej właściwości"
#: editor/inspector_dock.cpp
msgid "Make Sub-Resources Unique"
@@ -4479,23 +4468,20 @@ msgid "Save As..."
msgstr "Zapisz jako..."
#: editor/inspector_dock.cpp
-#, fuzzy
msgid "Extra resource options."
-msgstr "Nie znaleziono w ścieżce zasobów."
+msgstr "Dodatkowe opcje zasobów."
#: editor/inspector_dock.cpp
-#, fuzzy
msgid "Edit Resource from Clipboard"
-msgstr "Edytuj schowek zasobów"
+msgstr "Edytuj zasób ze schowka"
#: editor/inspector_dock.cpp
msgid "Copy Resource"
msgstr "Kopiuj zasób"
#: editor/inspector_dock.cpp
-#, fuzzy
msgid "Make Resource Built-In"
-msgstr "Stwórz wbudowany"
+msgstr "Uczyń zasób wbudowanym"
#: editor/inspector_dock.cpp
msgid "Go to the previous edited object in history."
@@ -4510,9 +4496,8 @@ msgid "History of recently edited objects."
msgstr "Historia ostatnio edytowanych obiektów."
#: editor/inspector_dock.cpp
-#, fuzzy
msgid "Open documentation for this object."
-msgstr "Otwórz dokumentację"
+msgstr "Otwórz dokumentację dla tego obiektu."
#: editor/inspector_dock.cpp editor/scene_tree_dock.cpp
msgid "Open Documentation"
@@ -4523,9 +4508,8 @@ msgid "Filter properties"
msgstr "Filtruj właściwości"
#: editor/inspector_dock.cpp
-#, fuzzy
msgid "Manage object properties."
-msgstr "Właściwości obiektu."
+msgstr "Zarządzaj właściwościami obiektu."
#: editor/inspector_dock.cpp
msgid "Changes may be lost!"
@@ -4770,9 +4754,8 @@ msgid "Blend:"
msgstr "Mieszanie:"
#: editor/plugins/animation_blend_tree_editor_plugin.cpp
-#, fuzzy
msgid "Parameter Changed:"
-msgstr "Parametr zmieniony"
+msgstr "Parametr zmieniony:"
#: editor/plugins/animation_blend_tree_editor_plugin.cpp
#: editor/plugins/animation_tree_player_editor_plugin.cpp
@@ -5503,11 +5486,11 @@ msgstr "Wszystko"
#: editor/plugins/asset_library_editor_plugin.cpp
msgid "Search templates, projects, and demos"
-msgstr ""
+msgstr "Przeszukaj szablony, projekty i dema"
#: editor/plugins/asset_library_editor_plugin.cpp
msgid "Search assets (excluding templates, projects, and demos)"
-msgstr ""
+msgstr "Przeszukaj zasoby (bez szablonów, projektów i dem)"
#: editor/plugins/asset_library_editor_plugin.cpp
msgid "Import..."
@@ -5551,7 +5534,7 @@ msgstr "Plik ZIP assetów"
#: editor/plugins/audio_stream_editor_plugin.cpp
msgid "Audio Preview Play/Pause"
-msgstr ""
+msgstr "Graj/Pauzuj podglÄ…d audio"
#: editor/plugins/baked_lightmap_editor_plugin.cpp
msgid ""
@@ -5710,6 +5693,18 @@ msgid "Move CanvasItem \"%s\" to (%d, %d)"
msgstr "Przesuń CanvasItem \"%s\" na (%d, %d)"
#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Locked"
+msgstr "Zablokuj wybrane"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Grouped"
+msgstr "Grupa"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
msgid ""
"Children of containers have their anchors and margins values overridden by "
"their parent."
@@ -5812,13 +5807,12 @@ msgstr "Zmień zakotwiczenie"
#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp
-#, fuzzy
msgid ""
"Project Camera Override\n"
"Overrides the running project's camera with the editor viewport camera."
msgstr ""
"Przejmij kamerÄ™ gry\n"
-"Zastępuje kamerę gry kamerą z widoku edytora."
+"Nadpisuje kamerÄ™ uruchomionego projektu kamerÄ… z widoku edytora."
#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp
@@ -5827,6 +5821,9 @@ msgid ""
"No project instance running. Run the project from the editor to use this "
"feature."
msgstr ""
+"Przejmij kamerÄ™ gry\n"
+"Nie ma uruchomionej instancji projektu. Uruchom projekt z edytora, by użyć "
+"tej funkcjonalności."
#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp
@@ -5894,31 +5891,27 @@ msgstr "Tryb zaznaczenia"
#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp
-#, fuzzy
msgid "Drag: Rotate selected node around pivot."
-msgstr "Usuń zaznaczony węzeł lub przejście."
+msgstr "Przeciągnij: Obróć zaznaczony węzeł wokół osi obrotu."
#: editor/plugins/canvas_item_editor_plugin.cpp
-#, fuzzy
msgid "Alt+Drag: Move selected node."
-msgstr "Alt+Przeciągnij: Przesuń"
+msgstr "Alt+Przeciągnij: Przesuń zaznaczony węzeł."
#: editor/plugins/canvas_item_editor_plugin.cpp
-#, fuzzy
msgid "V: Set selected node's pivot position."
-msgstr "Usuń zaznaczony węzeł lub przejście."
+msgstr "V: Ustaw pozycję osi obrotu zaznaczonego węzła."
#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp
-#, fuzzy
msgid "Alt+RMB: Show list of all nodes at position clicked, including locked."
msgstr ""
-"Pokaż listę obiektów w miejscu kliknięcia\n"
-"(tak samo jak Alt+RMB w trybie zaznaczania)."
+"Alt+PPM: Pokaż listę wszystkich węzłów na klikniętej pozycji, wliczając "
+"zablokowane."
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "RMB: Add node at position clicked."
-msgstr ""
+msgstr "Ctrl+PPM: Dodaj węzeł na klikniętej pozycji."
#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp
@@ -5990,7 +5983,7 @@ msgstr "Przyciągaj względnie"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Use Pixel Snap"
-msgstr "Użyj krokowania na poziomie pikseli"
+msgstr "PrzyciÄ…gaj do pikseli"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Smart Snapping"
@@ -6156,14 +6149,12 @@ msgid "Clear Pose"
msgstr "Wyczyść pozę"
#: editor/plugins/canvas_item_editor_plugin.cpp
-#, fuzzy
msgid "Add Node Here"
-msgstr "Dodaj węzeł"
+msgstr "Dodaj węzeł tutaj"
#: editor/plugins/canvas_item_editor_plugin.cpp
-#, fuzzy
msgid "Instance Scene Here"
-msgstr "Dodaj instancjÄ™ sceny"
+msgstr "Instancjonuj scenÄ™ tutaj"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Multiply grid step by 2"
@@ -6179,49 +6170,43 @@ msgstr "Przesuń widok"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Zoom to 3.125%"
-msgstr ""
+msgstr "Oddal do 3.125%"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Zoom to 6.25%"
-msgstr ""
+msgstr "Oddal do 6.25%"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Zoom to 12.5%"
-msgstr ""
+msgstr "Oddal do 12.5%"
#: editor/plugins/canvas_item_editor_plugin.cpp
-#, fuzzy
msgid "Zoom to 25%"
-msgstr "Oddal"
+msgstr "Oddal do 25%"
#: editor/plugins/canvas_item_editor_plugin.cpp
-#, fuzzy
msgid "Zoom to 50%"
-msgstr "Oddal"
+msgstr "Oddal do 50%"
#: editor/plugins/canvas_item_editor_plugin.cpp
-#, fuzzy
msgid "Zoom to 100%"
-msgstr "Oddal"
+msgstr "Przybliż do 100%"
#: editor/plugins/canvas_item_editor_plugin.cpp
-#, fuzzy
msgid "Zoom to 200%"
-msgstr "Oddal"
+msgstr "Przybliż do 200%"
#: editor/plugins/canvas_item_editor_plugin.cpp
-#, fuzzy
msgid "Zoom to 400%"
-msgstr "Oddal"
+msgstr "Przybliż do 400%"
#: editor/plugins/canvas_item_editor_plugin.cpp
-#, fuzzy
msgid "Zoom to 800%"
-msgstr "Oddal"
+msgstr "Przybliż do 800%"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Zoom to 1600%"
-msgstr ""
+msgstr "Przybliż do 1600%"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Add %s"
@@ -6468,9 +6453,8 @@ msgid "Couldn't create a single convex collision shape."
msgstr "Nie udało się utworzyć pojedynczego wypukłego kształtu kolizji."
#: editor/plugins/mesh_instance_editor_plugin.cpp
-#, fuzzy
msgid "Create Simplified Convex Shape"
-msgstr "Utwórz pojedynczy wypukły kształt"
+msgstr "Utwórz uproszczony wypukły kształt"
#: editor/plugins/mesh_instance_editor_plugin.cpp
msgid "Create Single Convex Shape"
@@ -6506,9 +6490,8 @@ msgid "No mesh to debug."
msgstr "Brak siatki do debugowania."
#: editor/plugins/mesh_instance_editor_plugin.cpp
-#, fuzzy
msgid "Mesh has no UV in layer %d."
-msgstr "Model nie posiada UV w tej warstwie"
+msgstr "Siatka nie posiada UV na warstwie %d."
#: editor/plugins/mesh_instance_editor_plugin.cpp
msgid "MeshInstance lacks a Mesh!"
@@ -6573,9 +6556,8 @@ msgstr ""
"To jest najszybsza (ale najmniej dokładna) opcja dla detekcji kolizji."
#: editor/plugins/mesh_instance_editor_plugin.cpp
-#, fuzzy
msgid "Create Simplified Convex Collision Sibling"
-msgstr "Utwórz pojedynczego wypukłego sąsiada kolizji"
+msgstr "Utwórz uproszczonego wypukłego sąsiada kolizji"
#: editor/plugins/mesh_instance_editor_plugin.cpp
msgid ""
@@ -6583,20 +6565,23 @@ msgid ""
"This is similar to single collision shape, but can result in a simpler "
"geometry in some cases, at the cost of accuracy."
msgstr ""
+"Tworzy uproszczony wypukły kształt kolizji.\n"
+"Podobne do pojedynczego kształtu, ale w niektórych przypadkach tworzy "
+"prostszą geometrię, kosztem dokładności."
#: editor/plugins/mesh_instance_editor_plugin.cpp
msgid "Create Multiple Convex Collision Siblings"
msgstr "Utwórz wiele wypukłych sąsiadów kolizji"
#: editor/plugins/mesh_instance_editor_plugin.cpp
-#, fuzzy
msgid ""
"Creates a polygon-based collision shape.\n"
"This is a performance middle-ground between a single convex collision and a "
"polygon-based collision."
msgstr ""
"Tworzy kształt kolizji oparty o wielokąty.\n"
-"To jest złoty środek względem wydajności powyższych dwóch opcji."
+"To jest złoty środek względem wydajności pomiędzy pojedynczym kształtem, a "
+"kolizjÄ… opartÄ… o wielokÄ…ty."
#: editor/plugins/mesh_instance_editor_plugin.cpp
msgid "Create Outline Mesh..."
@@ -6663,7 +6648,13 @@ msgid "Remove Selected Item"
msgstr "Usuń zaznaczony element"
#: editor/plugins/mesh_library_editor_plugin.cpp
-msgid "Import from Scene"
+#, fuzzy
+msgid "Import from Scene (Ignore Transforms)"
+msgstr "Import ze sceny"
+
+#: editor/plugins/mesh_library_editor_plugin.cpp
+#, fuzzy
+msgid "Import from Scene (Apply Transforms)"
msgstr "Import ze sceny"
#: editor/plugins/mesh_library_editor_plugin.cpp
@@ -7238,24 +7229,30 @@ msgid "ResourcePreloader"
msgstr "Wstępny ładowacz zasobów"
#: editor/plugins/room_manager_editor_plugin.cpp
-#, fuzzy
msgid "Flip Portals"
-msgstr "Odbij poziomo"
+msgstr "Odbij portale"
#: editor/plugins/room_manager_editor_plugin.cpp
-#, fuzzy
msgid "Room Generate Points"
-msgstr "Wygeneruj chmurę punktów:"
+msgstr "Wygeneruj punkty pokoju"
#: editor/plugins/room_manager_editor_plugin.cpp
-#, fuzzy
msgid "Generate Points"
-msgstr "Wygeneruj chmurę punktów:"
+msgstr "Wygeneruj punkty"
#: editor/plugins/room_manager_editor_plugin.cpp
-#, fuzzy
msgid "Flip Portal"
-msgstr "Odbij poziomo"
+msgstr "Odbij portal"
+
+#: editor/plugins/room_manager_editor_plugin.cpp
+#, fuzzy
+msgid "Occluder Set Transform"
+msgstr "Wyczyść przekształcenie"
+
+#: editor/plugins/room_manager_editor_plugin.cpp
+#, fuzzy
+msgid "Center Node"
+msgstr "Utwórz węzeł"
#: editor/plugins/root_motion_editor_plugin.cpp
msgid "AnimationTree has no path set to an AnimationPlayer"
@@ -7760,12 +7757,14 @@ msgid "Skeleton2D"
msgstr "Szkielet 2D"
#: editor/plugins/skeleton_2d_editor_plugin.cpp
-msgid "Make Rest Pose (From Bones)"
-msgstr "Utwórz pozę spoczynkową (z kości)"
+#, fuzzy
+msgid "Reset to Rest Pose"
+msgstr "Ustaw kości do pozy spoczynkowej"
#: editor/plugins/skeleton_2d_editor_plugin.cpp
-msgid "Set Bones to Rest Pose"
-msgstr "Ustaw kości do pozy spoczynkowej"
+#, fuzzy
+msgid "Overwrite Rest Pose"
+msgstr "Nadpisz"
#: editor/plugins/skeleton_editor_plugin.cpp
msgid "Create physical bones"
@@ -7792,6 +7791,71 @@ msgid "Perspective"
msgstr "Perspektywa"
#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Top Orthogonal"
+msgstr "Ortogonalna"
+
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Top Perspective"
+msgstr "Perspektywa"
+
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Bottom Orthogonal"
+msgstr "Ortogonalna"
+
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Bottom Perspective"
+msgstr "Perspektywa"
+
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Left Orthogonal"
+msgstr "Ortogonalna"
+
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Right Perspective"
+msgstr "Perspektywa"
+
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Right Orthogonal"
+msgstr "Ortogonalna"
+
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Front Orthogonal"
+msgstr "Ortogonalna"
+
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Front Perspective"
+msgstr "Perspektywa"
+
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Rear Orthogonal"
+msgstr "Ortogonalna"
+
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Rear Perspective"
+msgstr "Perspektywa"
+
+#. TRANSLATORS: This will be appended to the view name when Auto Orthogonal is enabled.
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid " [auto]"
+msgstr ""
+
+#. TRANSLATORS: This will be appended to the view name when Portal Occulusion is enabled.
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid " [portals active]"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
msgid "Transform Aborted."
msgstr "Transformacja Zaniechana."
@@ -7818,20 +7882,17 @@ msgid "None"
msgstr "Brak"
#: editor/plugins/spatial_editor_plugin.cpp
-#, fuzzy
msgid "Rotate"
-msgstr "Status:"
+msgstr "Obróć"
#. TRANSLATORS: This refers to the movement that changes the position of an object.
#: editor/plugins/spatial_editor_plugin.cpp
-#, fuzzy
msgid "Translate"
-msgstr "Przesuń:"
+msgstr "Przesuń"
#: editor/plugins/spatial_editor_plugin.cpp
-#, fuzzy
msgid "Scale"
-msgstr "Skala:"
+msgstr "Skaluj"
#: editor/plugins/spatial_editor_plugin.cpp
msgid "Scaling: "
@@ -7854,52 +7915,44 @@ msgid "Animation Key Inserted."
msgstr "Wstawiono klucz animacji."
#: editor/plugins/spatial_editor_plugin.cpp
-#, fuzzy
msgid "Pitch:"
-msgstr "Wysokość"
+msgstr "Pułap:"
#: editor/plugins/spatial_editor_plugin.cpp
msgid "Yaw:"
-msgstr ""
+msgstr "Odchylenie:"
#: editor/plugins/spatial_editor_plugin.cpp
-#, fuzzy
msgid "Size:"
-msgstr "Rozmiar: "
+msgstr "Rozmiar:"
#: editor/plugins/spatial_editor_plugin.cpp
-#, fuzzy
msgid "Objects Drawn:"
-msgstr "Narysowane obiekty"
+msgstr "Narysowane obiekty:"
#: editor/plugins/spatial_editor_plugin.cpp
-#, fuzzy
msgid "Material Changes:"
-msgstr "Zmiany materiału"
+msgstr "Zmiany materiału:"
#: editor/plugins/spatial_editor_plugin.cpp
-#, fuzzy
msgid "Shader Changes:"
-msgstr "Zmiany Shadera"
+msgstr "Zmiany shadera:"
#: editor/plugins/spatial_editor_plugin.cpp
-#, fuzzy
msgid "Surface Changes:"
-msgstr "Zmiany powierzchni"
+msgstr "Zmiany powierzchni:"
#: editor/plugins/spatial_editor_plugin.cpp
-#, fuzzy
msgid "Draw Calls:"
-msgstr "Wywołania rysowania"
+msgstr "Wywołania rysowania:"
#: editor/plugins/spatial_editor_plugin.cpp
-#, fuzzy
msgid "Vertices:"
-msgstr "Wierzchołki"
+msgstr "Wierzchołki:"
#: editor/plugins/spatial_editor_plugin.cpp
msgid "FPS: %d (%s ms)"
-msgstr ""
+msgstr "FPS: %d (%s ms)"
#: editor/plugins/spatial_editor_plugin.cpp
msgid "Top View."
@@ -7910,42 +7963,22 @@ msgid "Bottom View."
msgstr "Widok z dołu."
#: editor/plugins/spatial_editor_plugin.cpp
-msgid "Bottom"
-msgstr "Dół"
-
-#: editor/plugins/spatial_editor_plugin.cpp
msgid "Left View."
msgstr "Widok z lewej."
#: editor/plugins/spatial_editor_plugin.cpp
-msgid "Left"
-msgstr "Lewa"
-
-#: editor/plugins/spatial_editor_plugin.cpp
msgid "Right View."
msgstr "Widok z prawej."
#: editor/plugins/spatial_editor_plugin.cpp
-msgid "Right"
-msgstr "Prawa"
-
-#: editor/plugins/spatial_editor_plugin.cpp
msgid "Front View."
msgstr "Widok z przodu."
#: editor/plugins/spatial_editor_plugin.cpp
-msgid "Front"
-msgstr "Przód"
-
-#: editor/plugins/spatial_editor_plugin.cpp
msgid "Rear View."
msgstr "Widok z tyłu."
#: editor/plugins/spatial_editor_plugin.cpp
-msgid "Rear"
-msgstr "Tył"
-
-#: editor/plugins/spatial_editor_plugin.cpp
msgid "Align Transform with View"
msgstr "Dopasuj położenie do widoku"
@@ -8054,9 +8087,8 @@ msgid "Freelook Slow Modifier"
msgstr "Wolny modyfikator swobodnego widoku"
#: editor/plugins/spatial_editor_plugin.cpp
-#, fuzzy
msgid "Toggle Camera Preview"
-msgstr "Zmień rozmiar kamery"
+msgstr "Przełącz podgląd kamery"
#: editor/plugins/spatial_editor_plugin.cpp
msgid "View Rotation Locked"
@@ -8078,9 +8110,8 @@ msgstr ""
"Nie może być używana jako miarodajny wskaźnik wydajności w grze."
#: editor/plugins/spatial_editor_plugin.cpp
-#, fuzzy
msgid "Convert Rooms"
-msgstr "Konwersja do %s"
+msgstr "Konwertuj pokoje"
#: editor/plugins/spatial_editor_plugin.cpp
msgid "XForm Dialog"
@@ -8102,7 +8133,6 @@ msgstr ""
"powierzchnie (\"x-ray\")."
#: editor/plugins/spatial_editor_plugin.cpp
-#, fuzzy
msgid "Snap Nodes to Floor"
msgstr "Przyciągnij węzły do podłogi"
@@ -8120,7 +8150,7 @@ msgstr "Użyj przyciągania"
#: editor/plugins/spatial_editor_plugin.cpp
msgid "Converts rooms for portal culling."
-msgstr ""
+msgstr "Konwertuje pokoje do cullingu portali."
#: editor/plugins/spatial_editor_plugin.cpp
msgid "Bottom View"
@@ -8216,9 +8246,13 @@ msgid "View Grid"
msgstr "Pokaż siatkę"
#: editor/plugins/spatial_editor_plugin.cpp
-#, fuzzy
msgid "View Portal Culling"
-msgstr "Ustawienia widoku"
+msgstr "Culling portali widoku"
+
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "View Occlusion Culling"
+msgstr "Culling portali widoku"
#: editor/plugins/spatial_editor_plugin.cpp
#: modules/gridmap/grid_map_editor_plugin.cpp
@@ -8286,8 +8320,9 @@ msgid "Post"
msgstr "Po"
#: editor/plugins/spatial_editor_plugin.cpp
-msgid "Nameless gizmo"
-msgstr "Uchwyt bez nazwy"
+#, fuzzy
+msgid "Unnamed Gizmo"
+msgstr "Projekt bez nazwy"
#: editor/plugins/sprite_editor_plugin.cpp
msgid "Create Mesh2D"
@@ -8364,7 +8399,7 @@ msgstr "Utwórz równorzędny węzeł LightOccluder2D"
#: editor/plugins/sprite_editor_plugin.cpp
msgid "Sprite"
-msgstr "Postać"
+msgstr "Sprite"
#: editor/plugins/sprite_editor_plugin.cpp
msgid "Simplification: "
@@ -8539,221 +8574,196 @@ msgid "TextureRegion"
msgstr "Obszar tekstury"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Colors"
-msgstr "Kolor"
+msgstr "Kolory"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Fonts"
-msgstr "Font"
+msgstr "Fonty"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Icons"
-msgstr "Ikona"
+msgstr "Ikony"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Styleboxes"
-msgstr "StyleBox"
+msgstr "Styleboxy"
#: editor/plugins/theme_editor_plugin.cpp
msgid "{num} color(s)"
-msgstr ""
+msgstr "{num} kolor(y)"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "No colors found."
-msgstr "Nie znaleziono podzasobów."
+msgstr "Nie znaleziono kolorów."
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "{num} constant(s)"
-msgstr "Stałe"
+msgstr "{num} stałych"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "No constants found."
-msgstr "Stała koloru."
+msgstr "Nie znaleziono stałych."
#: editor/plugins/theme_editor_plugin.cpp
msgid "{num} font(s)"
-msgstr ""
+msgstr "{num} czcionki"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "No fonts found."
-msgstr "Nie znaleziono!"
+msgstr "Nie znaleziono czcionek."
#: editor/plugins/theme_editor_plugin.cpp
msgid "{num} icon(s)"
-msgstr ""
+msgstr "{num} ikon"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "No icons found."
-msgstr "Nie znaleziono!"
+msgstr "Nie znaleziono ikon."
#: editor/plugins/theme_editor_plugin.cpp
msgid "{num} stylebox(es)"
-msgstr ""
+msgstr "{num} stylebox(y)"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "No styleboxes found."
-msgstr "Nie znaleziono podzasobów."
+msgstr "Nie znaleziono styleboxów."
#: editor/plugins/theme_editor_plugin.cpp
msgid "{num} currently selected"
-msgstr ""
+msgstr "{num} aktualnie wybrane"
#: editor/plugins/theme_editor_plugin.cpp
msgid "Nothing was selected for the import."
-msgstr ""
+msgstr "Nic nie zostało wybrane do importu."
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Importing Theme Items"
-msgstr "Zaimportuj motyw"
+msgstr "Importowanie elementów motywu"
#: editor/plugins/theme_editor_plugin.cpp
msgid "Importing items {n}/{n}"
-msgstr ""
+msgstr "Importowanie elementów {n}/{n}"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Updating the editor"
-msgstr "Zamknąć edytor?"
+msgstr "Aktualizowanie edytora"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Finalizing"
-msgstr "Analizowanie"
+msgstr "Finalizowanie"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Filter:"
-msgstr "Filtr: "
+msgstr "Filtr:"
#: editor/plugins/theme_editor_plugin.cpp
msgid "With Data"
-msgstr ""
+msgstr "z danymi"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Select by data type:"
-msgstr "Wybierz węzeł"
+msgstr "Zaznacz po typie danych:"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Select all visible color items."
-msgstr "Wybierz podział, by go usunąć."
+msgstr "Zaznacz wszystkie widoczne elementy kolorów."
#: editor/plugins/theme_editor_plugin.cpp
msgid "Select all visible color items and their data."
-msgstr ""
+msgstr "Zaznacz wszystkie widoczne elementy kolorów oraz ich dane."
#: editor/plugins/theme_editor_plugin.cpp
msgid "Deselect all visible color items."
-msgstr ""
+msgstr "Odznacz wszystkie widoczne elementy kolorów."
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Select all visible constant items."
-msgstr "Najpierw wybierz ustawienie z listy!"
+msgstr "Zaznacz wszystkie widoczne elementy stałych."
#: editor/plugins/theme_editor_plugin.cpp
msgid "Select all visible constant items and their data."
-msgstr ""
+msgstr "Zaznacz wszystkie widoczne elementy stałych i ich dane."
#: editor/plugins/theme_editor_plugin.cpp
msgid "Deselect all visible constant items."
-msgstr ""
+msgstr "Odznacz wszystkie widoczne elementy stałych."
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Select all visible font items."
-msgstr "Najpierw wybierz ustawienie z listy!"
+msgstr "Zaznacz wszystkie widoczne elementy czcionek."
#: editor/plugins/theme_editor_plugin.cpp
msgid "Select all visible font items and their data."
-msgstr ""
+msgstr "Zaznacz wszystkie widoczne elementy czcionek i ich dane."
#: editor/plugins/theme_editor_plugin.cpp
msgid "Deselect all visible font items."
-msgstr ""
+msgstr "Odznacz wszystkie widoczne elementy czcionek."
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Select all visible icon items."
-msgstr "Najpierw wybierz ustawienie z listy!"
+msgstr "Zaznacz wszystkie widoczne elementy ikon."
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Select all visible icon items and their data."
-msgstr "Najpierw wybierz ustawienie z listy!"
+msgstr "Zaznacz wszystkie widoczne elementy ikon i ich dane."
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Deselect all visible icon items."
-msgstr "Najpierw wybierz ustawienie z listy!"
+msgstr "Odznacz wszystkie widoczne elementy ikon."
#: editor/plugins/theme_editor_plugin.cpp
msgid "Select all visible stylebox items."
-msgstr ""
+msgstr "Zaznacz wszystkie widoczne elementy styleboxów."
#: editor/plugins/theme_editor_plugin.cpp
msgid "Select all visible stylebox items and their data."
-msgstr ""
+msgstr "Zaznacz wszystkie widoczne elementy styleboxów i ich dane."
#: editor/plugins/theme_editor_plugin.cpp
msgid "Deselect all visible stylebox items."
-msgstr ""
+msgstr "Odznacz wszystkie widoczne elementy styleboxów."
#: editor/plugins/theme_editor_plugin.cpp
msgid ""
"Caution: Adding icon data may considerably increase the size of your Theme "
"resource."
msgstr ""
+"Uwaga: Dodanie danych ikon może znacząco zwiększyć rozmiar twojego zasobu "
+"Theme."
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Collapse types."
-msgstr "Zwiń wszystko"
+msgstr "Zwiń typy."
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Expand types."
-msgstr "Rozwiń wszystko"
+msgstr "Rozwiń typy."
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Select all Theme items."
-msgstr "Wybierz plik szablonu"
+msgstr "Zaznacz wszystkie elementy motywu."
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Select With Data"
-msgstr "Zaznacz Punkty"
+msgstr "Zaznacz z danymi"
#: editor/plugins/theme_editor_plugin.cpp
msgid "Select all Theme items with item data."
-msgstr ""
+msgstr "Zaznacz wszystkie elementy motywu z ich danymi."
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Deselect All"
-msgstr "Zaznacz wszystko"
+msgstr "Odznacz wszystko"
#: editor/plugins/theme_editor_plugin.cpp
msgid "Deselect all Theme items."
-msgstr ""
+msgstr "Odznacz wszystkie elementy motywu."
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Import Selected"
-msgstr "Importuj ScenÄ™"
+msgstr "Importuj zaznaczone"
#: editor/plugins/theme_editor_plugin.cpp
msgid ""
@@ -8761,283 +8771,250 @@ msgid ""
"closing this window.\n"
"Close anyway?"
msgstr ""
+"Zakładka importu elementów ma zaznaczone elementy. Zaznaczenie zostanie "
+"utracone po zamknięciu tego okna.\n"
+"Zamknąć tak czy inaczej?"
#: editor/plugins/theme_editor_plugin.cpp
msgid ""
"Select a theme type from the list to edit its items.\n"
"You can add a custom type or import a type with its items from another theme."
msgstr ""
+"Wybierz typ motywu z listy, aby edytować jego elementy.\n"
+"Możesz dodać niestandardowy typ lub importować typ wraz z jego elementami z "
+"innego motywu."
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Remove All Color Items"
-msgstr "Usuń wszystkie elementy"
+msgstr "Usuń wszystkie elementy kolorów"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Rename Item"
-msgstr "Usuń element"
+msgstr "Zmień nazwę elementu"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Remove All Constant Items"
-msgstr "Usuń wszystkie elementy"
+msgstr "Usuń wszystkie elementy stałych"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Remove All Font Items"
-msgstr "Usuń wszystkie elementy"
+msgstr "Usuń wszystkie elementy czcionek"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Remove All Icon Items"
-msgstr "Usuń wszystkie elementy"
+msgstr "Usuń wszystkie elementy ikon"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Remove All StyleBox Items"
-msgstr "Usuń wszystkie elementy"
+msgstr "Usuń wszystkie elementy styleboxów"
#: editor/plugins/theme_editor_plugin.cpp
msgid ""
"This theme type is empty.\n"
"Add more items to it manually or by importing from another theme."
msgstr ""
+"Ten motyw jest pusty.\n"
+"Dodaj więcej elementów ręcznie albo importując z innego motywu."
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Add Color Item"
-msgstr "Dodaj klasę elementów"
+msgstr "Dodaj element koloru"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Add Constant Item"
-msgstr "Dodaj klasę elementów"
+msgstr "Dodaj element stałej"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Add Font Item"
-msgstr "Dodaj element"
+msgstr "Dodaj element czcionki"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Add Icon Item"
-msgstr "Dodaj element"
+msgstr "Dodaj element ikony"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Add Stylebox Item"
-msgstr "Dodaj wszystkie elementy"
+msgstr "Dodaj element stylebox"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Rename Color Item"
-msgstr "Usuń elementy klasy"
+msgstr "Zmień nazwę elementu koloru"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Rename Constant Item"
-msgstr "Usuń elementy klasy"
+msgstr "Zmień nazwę elementu stałej"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Rename Font Item"
-msgstr "Zmień nazwę węzła"
+msgstr "Zmień nazwę elementu czcionki"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Rename Icon Item"
-msgstr "Zmień nazwę węzła"
+msgstr "Zmień nazwę elementu ikony"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Rename Stylebox Item"
-msgstr "Usuń zaznaczony element"
+msgstr "Zmień nazwę elementu stylebox"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Invalid file, not a Theme resource."
-msgstr "Plik niepoprawny, nie jest układem magistral audio."
+msgstr "Plik niepoprawny, nie jest zasobem motywu (Theme)."
#: editor/plugins/theme_editor_plugin.cpp
msgid "Invalid file, same as the edited Theme resource."
-msgstr ""
+msgstr "Nieprawidłowy plik, taki sam jak edytowany zasób motywu."
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Manage Theme Items"
-msgstr "ZarzÄ…dzaj szablonami"
+msgstr "ZarzÄ…dzaj elementami motywu"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Edit Items"
-msgstr "Edytowalny element"
+msgstr "Edytuj elementy"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Types:"
-msgstr "Typ:"
+msgstr "Typy:"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Add Type:"
-msgstr "Typ:"
+msgstr "Dodaj typ:"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Add Item:"
-msgstr "Dodaj element"
+msgstr "Dodaj element:"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Add StyleBox Item"
-msgstr "Dodaj wszystkie elementy"
+msgstr "Dodaj element stylebox"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Remove Items:"
-msgstr "Usuń element"
+msgstr "Usuń elementy:"
#: editor/plugins/theme_editor_plugin.cpp
msgid "Remove Class Items"
msgstr "Usuń elementy klasy"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Remove Custom Items"
-msgstr "Usuń elementy klasy"
+msgstr "Usuń własne elementy"
#: editor/plugins/theme_editor_plugin.cpp
msgid "Remove All Items"
msgstr "Usuń wszystkie elementy"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Add Theme Item"
-msgstr "Elementy motywu interfejsu"
+msgstr "Dodaj element motywu"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Old Name:"
-msgstr "Nazwa węzła:"
+msgstr "Stara nazwa:"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Import Items"
-msgstr "Zaimportuj motyw"
+msgstr "Importuj elementy"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Default Theme"
-msgstr "Domyślny"
+msgstr "Domyślny motyw"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Editor Theme"
-msgstr "Edytuj motyw"
+msgstr "Motyw edytora"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Select Another Theme Resource:"
-msgstr "Usuń zasób"
+msgstr "Wybierz inny zasób motywu:"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Another Theme"
-msgstr "Zaimportuj motyw"
+msgstr "Inny motyw"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Confirm Item Rename"
-msgstr "Zmień nazwę ściezki animacji"
+msgstr "Potwierdź zmianę nazwy elementu"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Cancel Item Rename"
-msgstr "Grupowa zmiana nazwy"
+msgstr "Anuluj zmianÄ™ nazwy elementu"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Override Item"
-msgstr "Nadpisuje"
+msgstr "Nadpisz element"
#: editor/plugins/theme_editor_plugin.cpp
msgid "Unpin this StyleBox as a main style."
-msgstr ""
+msgstr "Odepnij ten StyleBox jako główny styl."
#: editor/plugins/theme_editor_plugin.cpp
msgid ""
"Pin this StyleBox as a main style. Editing its properties will update the "
"same properties in all other StyleBoxes of this type."
msgstr ""
+"Przypnij ten StyleBox jako główny styl. Edytowanie jego właściwości "
+"zaktualizuje te same właściwości we wszystkich innych StyleBoxach tego typu."
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Add Type"
-msgstr "Typ"
+msgstr "Dodaj typ"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Add Item Type"
-msgstr "Dodaj element"
+msgstr "Dodaj typ elementu"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Node Types:"
-msgstr "Typ węzła"
+msgstr "Typy węzłów:"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Show Default"
-msgstr "Wczytaj domyślny"
+msgstr "Pokaż domyślne"
#: editor/plugins/theme_editor_plugin.cpp
msgid "Show default type items alongside items that have been overridden."
-msgstr ""
+msgstr "Pokaż domyślne elementy typu obok elementów, które zostały nadpisane."
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Override All"
-msgstr "Nadpisuje"
+msgstr "Nadpisz wszystkie"
#: editor/plugins/theme_editor_plugin.cpp
msgid "Override all default type items."
-msgstr ""
+msgstr "Nadpisz wszystkie domyślne elementy typu."
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Theme:"
-msgstr "Motyw"
+msgstr "Motyw:"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Manage Items..."
-msgstr "ZarzÄ…dzaj szablonami eksportu..."
+msgstr "ZarzÄ…dzaj elementami..."
#: editor/plugins/theme_editor_plugin.cpp
msgid "Add, remove, organize and import Theme items."
-msgstr ""
+msgstr "Dodaj, usuń, organizuj i importuj elementy motywu (Theme)."
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Add Preview"
-msgstr "PodglÄ…d"
+msgstr "Dodaj podglÄ…d"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Default Preview"
-msgstr "Odśwież podgląd"
+msgstr "Domyślny podgląd"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Select UI Scene:"
-msgstr "Wybierz siatkę źródłową:"
+msgstr "Wybierz scenÄ™ UI:"
#: editor/plugins/theme_editor_preview.cpp
msgid ""
"Toggle the control picker, allowing to visually select control types for "
"edit."
msgstr ""
+"Przełącz pobieranie kontrolek, pozwalające na wizualne wybranie typów "
+"kontrolek do edytowania."
#: editor/plugins/theme_editor_preview.cpp
msgid "Toggle Button"
@@ -9072,9 +9049,8 @@ msgid "Checked Radio Item"
msgstr "Zaznaczony element opcji"
#: editor/plugins/theme_editor_preview.cpp
-#, fuzzy
msgid "Named Separator"
-msgstr "Nazwany sep."
+msgstr "Nazwany separator"
#: editor/plugins/theme_editor_preview.cpp
msgid "Submenu"
@@ -9127,19 +9103,21 @@ msgstr "Ma,Wiele,Opcji"
#: editor/plugins/theme_editor_preview.cpp
msgid "Invalid path, the PackedScene resource was probably moved or removed."
msgstr ""
+"Nieprawidłowa ścieżka, zasób PackedScene został prawdopodobnie przeniesiony "
+"lub usunięty."
#: editor/plugins/theme_editor_preview.cpp
msgid "Invalid PackedScene resource, must have a Control node at its root."
msgstr ""
+"Nieprawidłowy zasób PackedScene, musi posiadać węzeł Control jako korzeń."
#: editor/plugins/theme_editor_preview.cpp
-#, fuzzy
msgid "Invalid file, not a PackedScene resource."
-msgstr "Plik niepoprawny, nie jest układem magistral audio."
+msgstr "Nieprawidłowy plik, nie jest zasobem PackedScene."
#: editor/plugins/theme_editor_preview.cpp
msgid "Reload the scene to reflect its most actual state."
-msgstr ""
+msgstr "Przeładuj scenę, by odzwierciedlić jej najbardziej aktualny stan."
#: editor/plugins/tile_map_editor_plugin.cpp
msgid "Erase Selection"
@@ -10540,9 +10518,8 @@ msgid "VisualShader"
msgstr "Shader wizualny"
#: editor/plugins/visual_shader_editor_plugin.cpp
-#, fuzzy
msgid "Edit Visual Property:"
-msgstr "Edytuj Wizualną Właściwość"
+msgstr "Edytuj wizualną właściwość:"
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Visual Shader Mode Changed"
@@ -10667,9 +10644,8 @@ msgid "Script"
msgstr "Skrypt"
#: editor/project_export.cpp
-#, fuzzy
msgid "GDScript Export Mode:"
-msgstr "Tryb eksportu skryptów:"
+msgstr "Tryb eksportu GDScript:"
#: editor/project_export.cpp
msgid "Text"
@@ -10677,21 +10653,20 @@ msgstr "Tekst"
#: editor/project_export.cpp
msgid "Compiled Bytecode (Faster Loading)"
-msgstr ""
+msgstr "Skompilowany kod bajtowy (szybsze ładowanie)"
#: editor/project_export.cpp
msgid "Encrypted (Provide Key Below)"
msgstr "Zaszyfrowany (podaj klucz poniżej)"
#: editor/project_export.cpp
-#, fuzzy
msgid "Invalid Encryption Key (must be 64 hexadecimal characters long)"
-msgstr "Nieprawidłowy klucz szyfrowania (długość musi wynosić 64 znaki)"
+msgstr ""
+"Nieprawidłowy klucz szyfrowania (długość musi wynosić 64 znaki szesnastkowe)"
#: editor/project_export.cpp
-#, fuzzy
msgid "GDScript Encryption Key (256-bits as hexadecimal):"
-msgstr "Klucz szyfrujÄ…cy skryptu (256-bit jako hex):"
+msgstr "Klucz szyfrujący GDScript (256 bitów jako szesnastkowy):"
#: editor/project_export.cpp
msgid "Export PCK/Zip"
@@ -10764,7 +10739,6 @@ msgid "Imported Project"
msgstr "Zaimportowano projekt"
#: editor/project_manager.cpp
-#, fuzzy
msgid "Invalid project name."
msgstr "Nieprawidłowa nazwa projektu."
@@ -10991,14 +10965,12 @@ msgid "Are you sure to run %d projects at once?"
msgstr "Czy na pewno chcesz uruchomić %d projektów na raz?"
#: editor/project_manager.cpp
-#, fuzzy
msgid "Remove %d projects from the list?"
-msgstr "Wybierz urzÄ…dzenie z listy"
+msgstr "Usunąć %d projektów z listy?"
#: editor/project_manager.cpp
-#, fuzzy
msgid "Remove this project from the list?"
-msgstr "Wybierz urzÄ…dzenie z listy"
+msgstr "Usunąć ten projekt z listy?"
#: editor/project_manager.cpp
msgid ""
@@ -11031,9 +11003,8 @@ msgid "Project Manager"
msgstr "Menedżer projektów"
#: editor/project_manager.cpp
-#, fuzzy
msgid "Local Projects"
-msgstr "Projekty"
+msgstr "Lokalne projekty"
#: editor/project_manager.cpp
msgid "Loading, please wait..."
@@ -11044,23 +11015,20 @@ msgid "Last Modified"
msgstr "Data modyfikacji"
#: editor/project_manager.cpp
-#, fuzzy
msgid "Edit Project"
-msgstr "Wyeksportuj projekt"
+msgstr "Edytuj projekt"
#: editor/project_manager.cpp
-#, fuzzy
msgid "Run Project"
-msgstr "Zmień nazwę projektu"
+msgstr "Uruchom projekt"
#: editor/project_manager.cpp
msgid "Scan"
msgstr "Skanuj"
#: editor/project_manager.cpp
-#, fuzzy
msgid "Scan Projects"
-msgstr "Projekty"
+msgstr "Skanuj projekty"
#: editor/project_manager.cpp
msgid "Select a Folder to Scan"
@@ -11071,14 +11039,12 @@ msgid "New Project"
msgstr "Nowy projekt"
#: editor/project_manager.cpp
-#, fuzzy
msgid "Import Project"
-msgstr "Zaimportowano projekt"
+msgstr "Importuj projekt"
#: editor/project_manager.cpp
-#, fuzzy
msgid "Remove Project"
-msgstr "Zmień nazwę projektu"
+msgstr "Usuń projekt"
#: editor/project_manager.cpp
msgid "Remove Missing"
@@ -11089,9 +11055,8 @@ msgid "About"
msgstr "O silniku"
#: editor/project_manager.cpp
-#, fuzzy
msgid "Asset Library Projects"
-msgstr "Biblioteka zasobów"
+msgstr "Projekty Biblioteki Zasobów"
#: editor/project_manager.cpp
msgid "Restart Now"
@@ -11103,7 +11068,7 @@ msgstr "Usuń wszystkie"
#: editor/project_manager.cpp
msgid "Also delete project contents (no undo!)"
-msgstr ""
+msgstr "Usuń także projekt (nie można cofnąć!)"
#: editor/project_manager.cpp
msgid "Can't run project"
@@ -11118,20 +11083,17 @@ msgstr ""
"Czy chcesz zobaczyć oficjalne przykładowe projekty w Bibliotece Zasobów?"
#: editor/project_manager.cpp
-#, fuzzy
msgid "Filter projects"
-msgstr "Filtruj właściwości"
+msgstr "Filtruj projekty"
#: editor/project_manager.cpp
-#, fuzzy
msgid ""
"This field filters projects by name and last path component.\n"
"To filter projects by name and full path, the query must contain at least "
"one `/` character."
msgstr ""
-"Pasek wyszukiwania filtruje projekty po nazwie i ostatnim komponencie "
-"ścieżki.\n"
-"By filtrować po nazwie i pełnej ścieżce, zapytanie musi zawierać "
+"To pole filtruje projekty po nazwie i ostatniej składowej ścieżki.\n"
+"By filtrować projekty po nazwie i pełnej ścieżce, zapytanie musi zawierać "
"przynajmniej jeden znak \"/\"."
#: editor/project_settings_editor.cpp
@@ -11140,7 +11102,7 @@ msgstr "Klawisz "
#: editor/project_settings_editor.cpp
msgid "Physical Key"
-msgstr ""
+msgstr "Fizyczny klawisz"
#: editor/project_settings_editor.cpp
msgid "Joy Button"
@@ -11188,7 +11150,7 @@ msgstr "UrzÄ…dzenie"
#: editor/project_settings_editor.cpp
msgid " (Physical)"
-msgstr ""
+msgstr " (fizyczny)"
#: editor/project_settings_editor.cpp editor/settings_config_dialog.cpp
msgid "Press a Key..."
@@ -11331,23 +11293,20 @@ msgid "Override for Feature"
msgstr "Nadpisanie dla cechy"
#: editor/project_settings_editor.cpp
-#, fuzzy
msgid "Add %d Translations"
-msgstr "Dodaj tłumaczenie"
+msgstr "Dodaj %d tłumaczeń"
#: editor/project_settings_editor.cpp
msgid "Remove Translation"
msgstr "Usuń tłumaczenie"
#: editor/project_settings_editor.cpp
-#, fuzzy
msgid "Translation Resource Remap: Add %d Path(s)"
-msgstr "Dodaj mapowanie zasobu"
+msgstr "Przemapowanie tłumaczenia zasobu: Dodaj %d ścieżek"
#: editor/project_settings_editor.cpp
-#, fuzzy
msgid "Translation Resource Remap: Add %d Remap(s)"
-msgstr "Dodaj mapowanie zasobu"
+msgstr "Przemapowanie tłumaczenia zasobu: Dodaj %d przemapowań"
#: editor/project_settings_editor.cpp
msgid "Change Resource Remap Language"
@@ -11790,13 +11749,15 @@ msgstr "Usunąć węzeł \"%s\"?"
#: editor/scene_tree_dock.cpp
msgid ""
"Saving the branch as a scene requires having a scene open in the editor."
-msgstr ""
+msgstr "Zapisane gałęzi jako scena wymaga, aby scena była otwarta w edytorze."
#: editor/scene_tree_dock.cpp
msgid ""
"Saving the branch as a scene requires selecting only one node, but you have "
"selected %d nodes."
msgstr ""
+"Zapisanie gałęzi jako scena wymaga wybrania tylko jednego węzła, a masz "
+"wybrane %d węzłów."
#: editor/scene_tree_dock.cpp
msgid ""
@@ -11805,6 +11766,10 @@ msgid ""
"FileSystem dock context menu\n"
"or create an inherited scene using Scene > New Inherited Scene... instead."
msgstr ""
+"Nie można zapisać gałęzi z korzenia jako instancji sceny.\n"
+"By utworzyć edytowalną kopię aktualnej sceny, zduplikuj ją z menu "
+"kontekstowego doku systemu plików\n"
+"lub utwórz scenę dziedziczącą używając Scena > Nowa scena dziedzicząca..."
#: editor/scene_tree_dock.cpp
msgid ""
@@ -11812,6 +11777,9 @@ msgid ""
"To create a variation of a scene, you can make an inherited scene based on "
"the instanced scene using Scene > New Inherited Scene... instead."
msgstr ""
+"Nie można zapisać gałęzi instancji sceny.\n"
+"By utworzyć wariację sceny, zamiast tego możesz stworzyć scenę dziedziczącą "
+"bazowaną na instancji sceny, używając Scena -> Nowa scena dziedzicząca..."
#: editor/scene_tree_dock.cpp
msgid "Save New Scene As..."
@@ -12218,6 +12186,8 @@ msgid ""
"Warning: Having the script name be the same as a built-in type is usually "
"not desired."
msgstr ""
+"Ostrzeżenie: Posiadanie skryptu z nazwą taką samą jak typ wbudowany jest "
+"zazwyczaj niepożądane."
#: editor/script_create_dialog.cpp
msgid "Class Name:"
@@ -12289,7 +12259,7 @@ msgstr "Kopiuj błąd"
#: editor/script_editor_debugger.cpp
msgid "Open C++ Source on GitHub"
-msgstr ""
+msgstr "Otwórz źródło C++ na GitHubie"
#: editor/script_editor_debugger.cpp
msgid "Video RAM"
@@ -12468,14 +12438,22 @@ msgid "Change Ray Shape Length"
msgstr "Zmień długość Ray Shape"
#: editor/spatial_editor_gizmos.cpp
-#, fuzzy
msgid "Set Room Point Position"
-msgstr "Ustaw pozycje punktu krzywej"
+msgstr "Ustaw pozycjÄ™ punktu pokoju"
#: editor/spatial_editor_gizmos.cpp
-#, fuzzy
msgid "Set Portal Point Position"
-msgstr "Ustaw pozycje punktu krzywej"
+msgstr "Ustaw pozycjÄ™ punktu portalu"
+
+#: editor/spatial_editor_gizmos.cpp
+#, fuzzy
+msgid "Set Occluder Sphere Radius"
+msgstr "Zmień promień kształtu cylindra"
+
+#: editor/spatial_editor_gizmos.cpp
+#, fuzzy
+msgid "Set Occluder Sphere Position"
+msgstr "Ustaw punkt kontrolny wchodzÄ…cy z krzywej"
#: modules/csg/csg_gizmos.cpp
msgid "Change Cylinder Radius"
@@ -12587,14 +12565,12 @@ msgid "Object can't provide a length."
msgstr "Obiekt nie może podać długości."
#: modules/gltf/editor_scene_exporter_gltf_plugin.cpp
-#, fuzzy
msgid "Export Mesh GLTF2"
-msgstr "Eksportuj bibliotekę Meshów"
+msgstr "Eksportowani siatki GLTF2"
#: modules/gltf/editor_scene_exporter_gltf_plugin.cpp
-#, fuzzy
msgid "Export GLTF..."
-msgstr "Eksport..."
+msgstr "Eksportuj GLTF..."
#: modules/gridmap/grid_map_editor_plugin.cpp
msgid "Next Plane"
@@ -12637,9 +12613,8 @@ msgid "GridMap Paint"
msgstr "Malowanie GridMap"
#: modules/gridmap/grid_map_editor_plugin.cpp
-#, fuzzy
msgid "GridMap Selection"
-msgstr "GridMap Wypełnij zaznaczenie"
+msgstr "Wybór GridMap"
#: modules/gridmap/grid_map_editor_plugin.cpp
msgid "Grid Map"
@@ -12762,6 +12737,11 @@ msgstr "Kreślenie map światła"
msgid "Class name can't be a reserved keyword"
msgstr "Nazwa klasy nie może być słowem zastrzeżonym"
+#: modules/mono/csharp_script.cpp
+#, fuzzy
+msgid "Build Solution"
+msgstr "Wypełnij zaznaczone"
+
#: modules/mono/mono_gd/gd_mono_utils.cpp
msgid "End of inner exception stack trace"
msgstr "Koniec śladu stosu wewnętrznego wyjątku"
@@ -12891,14 +12871,12 @@ msgid "Add Output Port"
msgstr "Dodaj port wyjściowy"
#: modules/visual_script/visual_script_editor.cpp
-#, fuzzy
msgid "Change Port Type"
-msgstr "Zmień typ"
+msgstr "Zmień typ portu"
#: modules/visual_script/visual_script_editor.cpp
-#, fuzzy
msgid "Change Port Name"
-msgstr "Zmień nazwę portu wejściowego"
+msgstr "Zmień nazwę portu"
#: modules/visual_script/visual_script_editor.cpp
msgid "Override an existing built-in function."
@@ -13013,9 +12991,8 @@ msgid "Add Preload Node"
msgstr "Dodaj wstępnie wczytany węzeł"
#: modules/visual_script/visual_script_editor.cpp
-#, fuzzy
msgid "Add Node(s)"
-msgstr "Dodaj węzeł"
+msgstr "Dodaj węzeł(y)"
#: modules/visual_script/visual_script_editor.cpp
msgid "Add Node(s) From Tree"
@@ -13247,73 +13224,67 @@ msgstr "Przeszukaj VisualScript"
msgid "Get %s"
msgstr "Przyjmij %s"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Package name is missing."
msgstr "Brakuje nazwy paczki."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Package segments must be of non-zero length."
msgstr "Segmenty paczki muszą mieć niezerową długość."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "The character '%s' is not allowed in Android application package names."
msgstr "Znak \"%s\" nie jest dozwolony w nazwach paczek aplikacji Androida."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "A digit cannot be the first character in a package segment."
msgstr "Cyfra nie może być pierwszym znakiem w segmencie paczki."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "The character '%s' cannot be the first character in a package segment."
msgstr "Znak \"%s\" nie może być pierwszym znakiem w segmencie paczki."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "The package must have at least one '.' separator."
msgstr "Paczka musi mieć co najmniej jedną kropkę jako separator."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Select device from the list"
msgstr "Wybierz urzÄ…dzenie z listy"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Running on %s"
-msgstr ""
+msgstr "Uruchamiam na %s"
-#: platform/android/export/export.cpp
-#, fuzzy
+#: platform/android/export/export_plugin.cpp
msgid "Exporting APK..."
-msgstr "Eksportowanie wszystkiego"
+msgstr "Eksportowanie APK..."
-#: platform/android/export/export.cpp
-#, fuzzy
+#: platform/android/export/export_plugin.cpp
msgid "Uninstalling..."
-msgstr "Odinstaluj"
+msgstr "Odinstalowywanie..."
-#: platform/android/export/export.cpp
-#, fuzzy
+#: platform/android/export/export_plugin.cpp
msgid "Installing to device, please wait..."
-msgstr "Wczytywanie, proszę czekać..."
+msgstr "Instalowanie na urządzeniu, proszę czekać..."
-#: platform/android/export/export.cpp
-#, fuzzy
+#: platform/android/export/export_plugin.cpp
msgid "Could not install to device: %s"
-msgstr "Nie można stworzyć instancji sceny!"
+msgstr "Nie udało się zainstalować na urządzeniu: %s"
-#: platform/android/export/export.cpp
-#, fuzzy
+#: platform/android/export/export_plugin.cpp
msgid "Running on device..."
-msgstr "Uruchamiam skrypt..."
+msgstr "Uruchamiam na urzÄ…dzeniu..."
-#: platform/android/export/export.cpp
-#, fuzzy
+#: platform/android/export/export_plugin.cpp
msgid "Could not execute on device."
-msgstr "Nie można utworzyć katalogu."
+msgstr "Nie udało się uruchomić na urządzeniu."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Unable to find the 'apksigner' tool."
msgstr "Nie udało się znaleźć narzędzia \"apksigner\"."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Android build template not installed in the project. Install it from the "
"Project menu."
@@ -13321,7 +13292,7 @@ msgstr ""
"Szablon budowania Androida nie jest zainstalowany dla projektu. Zainstaluj "
"go z menu Projekt."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Either Debug Keystore, Debug User AND Debug Password settings must be "
"configured OR none of them."
@@ -13329,13 +13300,13 @@ msgstr ""
"Albo ustawienia Debug Keystore, Debug User ORAZ Debug Password muszą być "
"skonfigurowane, ALBO żadne z nich."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Debug keystore not configured in the Editor Settings nor in the preset."
msgstr ""
"Debugowy keystore nieskonfigurowany w Ustawieniach Edytora ani w profilu "
"eksportu."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Either Release Keystore, Release User AND Release Password settings must be "
"configured OR none of them."
@@ -13343,49 +13314,49 @@ msgstr ""
"Albo ustawienia Release Keystore, Release User ORAZ Release Password muszÄ… "
"być skonfigurowane, ALBO żadne z nich."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Release keystore incorrectly configured in the export preset."
msgstr ""
"Wydaniowy keystore jest niepoprawnie skonfigurowany w profilu eksportu."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "A valid Android SDK path is required in Editor Settings."
msgstr "Wymagana jest poprawna ścieżka SDK Androida w Ustawieniach Edytora."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Invalid Android SDK path in Editor Settings."
msgstr "Niepoprawna ścieżka do SDK Androida w Ustawieniach Edytora."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Missing 'platform-tools' directory!"
msgstr "Folder \"platform-tools\" nie istnieje!"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Unable to find Android SDK platform-tools' adb command."
msgstr ""
"Nie udało się znaleźć komendy adb z narzędzi platformowych SDK Androida."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Please check in the Android SDK directory specified in Editor Settings."
msgstr "Sprawdź w folderze SDK Androida podanych w Ustawieniach Edytora."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Missing 'build-tools' directory!"
msgstr "Brakuje folderu \"build-tools\"!"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Unable to find Android SDK build-tools' apksigner command."
msgstr "Nie udało się znaleźć komendy apksigner z narzędzi SDK Androida."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Invalid public key for APK expansion."
msgstr "Niepoprawny klucz publiczny dla ekspansji APK."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Invalid package name:"
msgstr "Niepoprawna nazwa paczki:"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Invalid \"GodotPaymentV3\" module included in the \"android/modules\" "
"project setting (changed in Godot 3.2.2).\n"
@@ -13393,97 +13364,79 @@ msgstr ""
"Niepoprawny moduł \"GodotPaymentV3\" załączony w ustawieniu projektu "
"\"android/modules\" (zmieniony w Godocie 3.2.2).\n"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "\"Use Custom Build\" must be enabled to use the plugins."
msgstr "\"Use Custom Build\" musi być włączone, by używać wtyczek."
-#: platform/android/export/export.cpp
-msgid ""
-"\"Degrees Of Freedom\" is only valid when \"Xr Mode\" is \"Oculus Mobile VR"
-"\"."
-msgstr ""
-"\"Degrees Of Freedom\" jest poprawne tylko gdy \"Xr Mode\" jest \"Oculus "
-"Mobile VR\"."
-
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"\"Hand Tracking\" is only valid when \"Xr Mode\" is \"Oculus Mobile VR\"."
msgstr ""
"\"Hand Tracking\" jest poprawne tylko gdy \"Xr Mode\" jest \"Oculus Mobile VR"
"\"."
-#: platform/android/export/export.cpp
-msgid ""
-"\"Focus Awareness\" is only valid when \"Xr Mode\" is \"Oculus Mobile VR\"."
-msgstr ""
-"\"Focus Awareness\" jest poprawne tylko gdy \"Xr Mode\" jest \"Oculus Mobile "
-"VR\"."
-
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "\"Export AAB\" is only valid when \"Use Custom Build\" is enabled."
msgstr ""
"\"Eksportuj AAB\" jest ważne tylko gdy \"Use Custom Build\" jest włączone."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"'apksigner' could not be found.\n"
"Please check the command is available in the Android SDK build-tools "
"directory.\n"
"The resulting %s is unsigned."
msgstr ""
+"\"apksigner\" nie został znaleziony.\n"
+"Sprawdź, czy komenda jest dostępna w folderze narzędzi SDK Androida.\n"
+"Wynikowy %s jest niepodpisany."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Signing debug %s..."
-msgstr ""
+msgstr "Podpisywanie debugu %s..."
-#: platform/android/export/export.cpp
-#, fuzzy
+#: platform/android/export/export_plugin.cpp
msgid "Signing release %s..."
-msgstr ""
-"Skanowanie plików,\n"
-"Proszę czekać..."
+msgstr "Podpisywanie wydania %s..."
-#: platform/android/export/export.cpp
-#, fuzzy
+#: platform/android/export/export_plugin.cpp
msgid "Could not find keystore, unable to export."
-msgstr "Nie można otworzyć szablonu dla eksportu:"
+msgstr "Nie udało się znaleźć keystore, nie można eksportować."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "'apksigner' returned with error #%d"
-msgstr ""
+msgstr "\"apksigner\" zwrócił błąd #%d"
-#: platform/android/export/export.cpp
-#, fuzzy
+#: platform/android/export/export_plugin.cpp
msgid "Verifying %s..."
-msgstr "Dodawanie %s..."
+msgstr "Weryfikowanie %s..."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "'apksigner' verification of %s failed."
-msgstr ""
+msgstr "Weryfikacja \"apksigner\" dla %s nieudana."
-#: platform/android/export/export.cpp
-#, fuzzy
+#: platform/android/export/export_plugin.cpp
msgid "Exporting for Android"
-msgstr "Eksportowanie wszystkiego"
+msgstr "Eksportowanie na Androida"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Invalid filename! Android App Bundle requires the *.aab extension."
msgstr ""
"Nieprawidłowa nazwa pliku! Android App Bundle wymaga rozszerzenia *.aab."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "APK Expansion not compatible with Android App Bundle."
msgstr "APK Expansion nie jest kompatybilne z Android App Bundle."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Invalid filename! Android APK requires the *.apk extension."
msgstr "Nieprawidłowa nazwa pliku! APK Androida wymaga rozszerzenia *.apk."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Unsupported export format!\n"
-msgstr ""
+msgstr "Nieobsługiwany format eksportu!\n"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Trying to build from a custom built template, but no version info for it "
"exists. Please reinstall from the 'Project' menu."
@@ -13491,7 +13444,7 @@ msgstr ""
"Próbowano zbudować z własnego szablonu, ale nie istnieje dla niego "
"informacja o wersji. Zainstaluj ponownie z menu \"Projekt\"."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Android build version mismatch:\n"
" Template installed: %s\n"
@@ -13503,26 +13456,26 @@ msgstr ""
" Wersja Godota: %s\n"
"Zainstaluj ponownie szablon z menu \"Projekt\"."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Unable to overwrite res://android/build/res/*.xml files with project name"
msgstr ""
+"Nie udało się nadpisać plików \"res://android/build/res/*.xml\" nazwą "
+"projektu"
-#: platform/android/export/export.cpp
-#, fuzzy
+#: platform/android/export/export_plugin.cpp
msgid "Could not export project files to gradle project\n"
-msgstr "Nie znaleziono project.godot w ścieżce projektu."
+msgstr "Nie udało się eksportować plików projektu do projektu gradle\n"
-#: platform/android/export/export.cpp
-#, fuzzy
+#: platform/android/export/export_plugin.cpp
msgid "Could not write expansion package file!"
-msgstr "Nie można zapisać pliku:"
+msgstr "Nie udało się zapisać pliku pakietu rozszerzenia!"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Building Android Project (gradle)"
msgstr "Budowanie projektu Androida (gradle)"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Building of Android project failed, check output for the error.\n"
"Alternatively visit docs.godotengine.org for Android build documentation."
@@ -13531,11 +13484,11 @@ msgstr ""
"Alternatywnie, odwiedź docs.godotengine.org po dokumentację budowania dla "
"Androida."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Moving output"
msgstr "Przesuwam wyjście"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Unable to copy and rename export file, check gradle project directory for "
"outputs."
@@ -13543,48 +13496,48 @@ msgstr ""
"Nie udało się skopiować i przemianować pliku eksportu, sprawdź folder "
"projektu gradle po informacje."
-#: platform/android/export/export.cpp
-#, fuzzy
+#: platform/android/export/export_plugin.cpp
msgid "Package not found: %s"
-msgstr "Animacja nie znaleziona: \"%s\""
+msgstr "Pakiet nie znaleziony: %s"
-#: platform/android/export/export.cpp
-#, fuzzy
+#: platform/android/export/export_plugin.cpp
msgid "Creating APK..."
-msgstr "Tworzenie konturów..."
+msgstr "Tworzenie APK..."
-#: platform/android/export/export.cpp
-#, fuzzy
+#: platform/android/export/export_plugin.cpp
msgid ""
"Could not find template APK to export:\n"
"%s"
-msgstr "Nie można otworzyć szablonu dla eksportu:"
+msgstr ""
+"Nie udało się znaleźć szablonu APK do eksportu:\n"
+"%s"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Missing libraries in the export template for the selected architectures: "
"%s.\n"
"Please build a template with all required libraries, or uncheck the missing "
"architectures in the export preset."
msgstr ""
+"BrakujÄ…ce biblioteki w szablonie eksportu dla wybranej architektury: %s.\n"
+"Zbuduj szablon ze wszystkimi wymaganymi bibliotekami lub odznacz brakujÄ…ce "
+"architektury w profilu eksportu."
-#: platform/android/export/export.cpp
-#, fuzzy
+#: platform/android/export/export_plugin.cpp
msgid "Adding files..."
-msgstr "Dodawanie %s..."
+msgstr "Dodawanie plików..."
-#: platform/android/export/export.cpp
-#, fuzzy
+#: platform/android/export/export_plugin.cpp
msgid "Could not export project files"
-msgstr "Nie można zapisać pliku:"
+msgstr "Nie udało się eksportować plików projektu"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Aligning APK..."
msgstr "Uzgadnianie APK..."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Could not unzip temporary unaligned APK."
-msgstr ""
+msgstr "Nie udało się rozpakować tymczasowego niewyrównanego APK."
#: platform/iphone/export/export.cpp platform/osx/export/export.cpp
msgid "Identifier is missing."
@@ -13631,45 +13584,40 @@ msgid "Could not write file:"
msgstr "Nie można zapisać pliku:"
#: platform/javascript/export/export.cpp
-#, fuzzy
msgid "Could not read file:"
-msgstr "Nie można zapisać pliku:"
+msgstr "Nie udało się odczytać pliku:"
#: platform/javascript/export/export.cpp
-#, fuzzy
msgid "Could not read HTML shell:"
-msgstr "Nie można odczytać niestandardowe powłoki HTML:"
+msgstr "Nie udało się odczytać powłoki HTML:"
#: platform/javascript/export/export.cpp
-#, fuzzy
msgid "Could not create HTTP server directory:"
-msgstr "Nie można utworzyć katalogu."
+msgstr "Nie udało się utworzyć folderu serwera HTTP:"
#: platform/javascript/export/export.cpp
-#, fuzzy
msgid "Error starting HTTP server:"
-msgstr "Błąd podczas zapisywania sceny."
+msgstr "Błąd uruchamiania serwera HTTP:"
#: platform/osx/export/export.cpp
-#, fuzzy
msgid "Invalid bundle identifier:"
-msgstr "Niepoprawny identyfikator:"
+msgstr "Nieprawidłowy identyfikator paczki:"
#: platform/osx/export/export.cpp
msgid "Notarization: code signing required."
-msgstr ""
+msgstr "Poświadczenie: wymagane podpisanie kodu."
#: platform/osx/export/export.cpp
msgid "Notarization: hardened runtime required."
-msgstr ""
+msgstr "Poświadczenie: wymagane wzmocnione środowisko wykonawcze."
#: platform/osx/export/export.cpp
msgid "Notarization: Apple ID name not specified."
-msgstr ""
+msgstr "Poświadczenie: Nazwa Apple ID nie podana."
#: platform/osx/export/export.cpp
msgid "Notarization: Apple ID password not specified."
-msgstr ""
+msgstr "Poświadczenie: Hasło Apple ID nie podane."
#: platform/uwp/export/export.cpp
msgid "Invalid package short name."
@@ -14113,6 +14061,9 @@ msgid ""
"longer has any effect.\n"
"To remove this warning, disable the GIProbe's Compress property."
msgstr ""
+"Właściwość GIProbe Compress jest przestarzała z powodu znanych błędów i nie "
+"ma już żadnego efektu.\n"
+"By usunąć to ostrzeżenie, wyłącz właściwość Compress w GIProbe."
#: scene/3d/light.cpp
msgid "A SpotLight with an angle wider than 90 degrees cannot cast shadows."
@@ -14132,6 +14083,14 @@ msgstr ""
"NavigationMeshInstance musi być dzieckiem lub wnukiem węzła typu Navigation. "
"Udostępnia on tylko dane nawigacyjne."
+#: scene/3d/occluder.cpp
+msgid "No shape is set."
+msgstr ""
+
+#: scene/3d/occluder.cpp
+msgid "Only uniform scales are supported."
+msgstr ""
+
#: scene/3d/particles.cpp
msgid ""
"GPU-based particles are not supported by the GLES2 video driver.\n"
@@ -14200,15 +14159,15 @@ msgstr "Node A i Node B muszą być różnymi węzłami PhysicsBody"
#: scene/3d/portal.cpp
msgid "The RoomManager should not be a child or grandchild of a Portal."
-msgstr ""
+msgstr "RoomManager nie powinien być potomkiem Portalu."
#: scene/3d/portal.cpp
msgid "A Room should not be a child or grandchild of a Portal."
-msgstr ""
+msgstr "Room nie powinien być potomkiem Portalu."
#: scene/3d/portal.cpp
msgid "A RoomGroup should not be a child or grandchild of a Portal."
-msgstr ""
+msgstr "RoomGroup nie powinien być potomkiem Portalu."
#: scene/3d/remote_transform.cpp
msgid ""
@@ -14220,79 +14179,96 @@ msgstr ""
#: scene/3d/room.cpp
msgid "A Room cannot have another Room as a child or grandchild."
-msgstr ""
+msgstr "Room nie może mieć innego węzła Room jako potomka."
#: scene/3d/room.cpp
msgid "The RoomManager should not be placed inside a Room."
-msgstr ""
+msgstr "RoomManager nie powinien znajdować się w węźle Room."
#: scene/3d/room.cpp
msgid "A RoomGroup should not be placed inside a Room."
-msgstr ""
+msgstr "RoomGroup nie powinien znajdować się w węźle Room."
#: scene/3d/room.cpp
msgid ""
"Room convex hull contains a large number of planes.\n"
"Consider simplifying the room bound in order to increase performance."
msgstr ""
+"Otoczka wypukła pokoju zawiera dużą liczbę płaszczyzn.\n"
+"Rozważ uproszczenie granicy pokoju w celu zwiększenia wydajności."
#: scene/3d/room_group.cpp
msgid "The RoomManager should not be placed inside a RoomGroup."
-msgstr ""
+msgstr "RoomManager nie powinien znajdować się w węźle RoomGroup."
#: scene/3d/room_manager.cpp
msgid "The RoomList has not been assigned."
-msgstr ""
+msgstr "RoomList nie został przypisany."
#: scene/3d/room_manager.cpp
msgid "The RoomList node should be a Spatial (or derived from Spatial)."
-msgstr ""
+msgstr "Węzeł RoomList powinien być typu Spatial lub pochodnego."
#: scene/3d/room_manager.cpp
msgid ""
"Portal Depth Limit is set to Zero.\n"
"Only the Room that the Camera is in will render."
msgstr ""
+"Portal Depth Limit jest ustawione na zero.\n"
+"Tylko pokój, w którym jest kamera będzie się renderował."
#: scene/3d/room_manager.cpp
msgid "There should only be one RoomManager in the SceneTree."
-msgstr ""
+msgstr "Powinien być tylko jeden RoomManager w drzewie sceny."
#: scene/3d/room_manager.cpp
msgid ""
"RoomList path is invalid.\n"
"Please check the RoomList branch has been assigned in the RoomManager."
msgstr ""
+"Ścieżka RoomList jest nieprawidłowa.\n"
+"Sprawdź czy gałąź RoomList została przypisana w RoomManager."
#: scene/3d/room_manager.cpp
msgid "RoomList contains no Rooms, aborting."
-msgstr ""
+msgstr "RoomList nie zawiera żadnego węzła Room, przerywam."
#: scene/3d/room_manager.cpp
msgid "Misnamed nodes detected, check output log for details. Aborting."
msgstr ""
+"Wykryto błędnie nazwane węzły, sprawdź dziennik wyjściowy po więcej "
+"szczegółów. Przerywam."
#: scene/3d/room_manager.cpp
msgid "Portal link room not found, check output log for details."
msgstr ""
+"ÅÄ…cznik portali nie znaleziony, sprawdź dziennik wyjÅ›ciowy po wiÄ™cej "
+"szczegółów."
#: scene/3d/room_manager.cpp
msgid ""
"Portal autolink failed, check output log for details.\n"
"Check the portal is facing outwards from the source room."
msgstr ""
+"Autołączenie portali nieudane, sprawdź dziennik wyjścia po szczegóły.\n"
+"Sprawdź, czy portal jest zwrócony na zewnątrz ze źródłowego pokoju."
#: scene/3d/room_manager.cpp
msgid ""
"Room overlap detected, cameras may work incorrectly in overlapping area.\n"
"Check output log for details."
msgstr ""
+"Wykryto nachodzenie się pokoi, kamery mogą działać niepoprawnie na "
+"nachodzÄ…cym obszarze.\n"
+"Sprawdź dziennik wyjścia po szczegóły."
#: scene/3d/room_manager.cpp
msgid ""
"Error calculating room bounds.\n"
"Ensure all rooms contain geometry or manual bounds."
msgstr ""
+"Błąd liczenia granic pokoju.\n"
+"Upewnij się, że wszystkie pokoje zawierają geometrię lub ręczne granice."
#: scene/3d/soft_body.cpp
msgid "This body will be ignored until you set a mesh."
@@ -14357,7 +14333,7 @@ msgstr "Animacja nie znaleziona: \"%s\""
#: scene/animation/animation_player.cpp
msgid "Anim Apply Reset"
-msgstr ""
+msgstr "Resetowanie animacji"
#: scene/animation/animation_tree.cpp
msgid "In node '%s', invalid animation: '%s'."
@@ -14457,6 +14433,14 @@ msgstr "Rozszerzenie musi być poprawne."
msgid "Enable grid minimap."
msgstr "Włącz minimapę siatki."
+#: scene/gui/nine_patch_rect.cpp
+msgid ""
+"The Tile and Tile Fit options for Axis Stretch properties are only effective "
+"when using the GLES3 rendering backend.\n"
+"The GLES2 backend is currently in use, so these modes will act like Stretch "
+"instead."
+msgstr ""
+
#: scene/gui/popup.cpp
msgid ""
"Popups will hide by default unless you call popup() or any of the popup*() "
@@ -14509,6 +14493,10 @@ msgstr ""
msgid "Viewport size must be greater than 0 to render anything."
msgstr "Rozmiar węzła Viewport musi być większy niż 0, by coś wyrenderować."
+#: scene/resources/occluder_shape.cpp
+msgid "OccluderShapeSphere Set Spheres"
+msgstr ""
+
#: scene/resources/visual_shader_nodes.cpp
msgid ""
"The sampler port is connected but not used. Consider changing the source to "
@@ -14530,25 +14518,29 @@ msgid "Invalid comparison function for that type."
msgstr "Niewłaściwa funkcja porównania dla tego typu."
#: servers/visual/shader_language.cpp
-#, fuzzy
msgid "Varying may not be assigned in the '%s' function."
-msgstr "Varying może być przypisane tylko w funkcji wierzchołków."
+msgstr "Varying nie może zostać przypisane w funkcji \"%s\"."
#: servers/visual/shader_language.cpp
msgid ""
"Varyings which assigned in 'vertex' function may not be reassigned in "
"'fragment' or 'light'."
msgstr ""
+"Varyings przypisane w funkcji \"vertex\" nie mogą zostać przypisane ponownie "
+"we \"fragment\" ani \"light\"."
#: servers/visual/shader_language.cpp
msgid ""
"Varyings which assigned in 'fragment' function may not be reassigned in "
"'vertex' or 'light'."
msgstr ""
+"Varyings przypisane w funkcji \"fragment\" nie mogą zostać przypisane "
+"ponownie we \"vertex\" ani \"light\"."
#: servers/visual/shader_language.cpp
msgid "Fragment-stage varying could not been accessed in custom function!"
msgstr ""
+"Varying z etapu fragmentów nie jest dostępny w niestandardowej funkcji!"
#: servers/visual/shader_language.cpp
msgid "Assignment to function."
@@ -14562,6 +14554,41 @@ msgstr "Przypisanie do uniformu."
msgid "Constants cannot be modified."
msgstr "Stałe nie mogą być modyfikowane."
+#~ msgid "Make Rest Pose (From Bones)"
+#~ msgstr "Utwórz pozę spoczynkową (z kości)"
+
+#~ msgid "Bottom"
+#~ msgstr "Dół"
+
+#~ msgid "Left"
+#~ msgstr "Lewa"
+
+#~ msgid "Right"
+#~ msgstr "Prawa"
+
+#~ msgid "Front"
+#~ msgstr "Przód"
+
+#~ msgid "Rear"
+#~ msgstr "Tył"
+
+#~ msgid "Nameless gizmo"
+#~ msgstr "Uchwyt bez nazwy"
+
+#~ msgid ""
+#~ "\"Degrees Of Freedom\" is only valid when \"Xr Mode\" is \"Oculus Mobile "
+#~ "VR\"."
+#~ msgstr ""
+#~ "\"Degrees Of Freedom\" jest poprawne tylko gdy \"Xr Mode\" jest \"Oculus "
+#~ "Mobile VR\"."
+
+#~ msgid ""
+#~ "\"Focus Awareness\" is only valid when \"Xr Mode\" is \"Oculus Mobile VR"
+#~ "\"."
+#~ msgstr ""
+#~ "\"Focus Awareness\" jest poprawne tylko gdy \"Xr Mode\" jest \"Oculus "
+#~ "Mobile VR\"."
+
#~ msgid "Package Contents:"
#~ msgstr "Zawartość paczki:"
@@ -16432,9 +16459,6 @@ msgstr "Stałe nie mogą być modyfikowane."
#~ msgid "Images:"
#~ msgstr "Obrazki:"
-#~ msgid "Group"
-#~ msgstr "Grupa"
-
#~ msgid "Compress (RAM - IMA-ADPCM)"
#~ msgstr "Kompresja (RAM - IMA-ADPCM)"
diff --git a/editor/translations/pr.po b/editor/translations/pr.po
index 96fab899cd..8f2aa04183 100644
--- a/editor/translations/pr.po
+++ b/editor/translations/pr.po
@@ -1037,7 +1037,7 @@ msgstr ""
msgid "Dependencies"
msgstr ""
-#: editor/dependency_editor.cpp
+#: editor/dependency_editor.cpp editor/editor_resource_picker.cpp
msgid "Resource"
msgstr ""
@@ -1676,14 +1676,14 @@ msgid ""
"Enabled'."
msgstr ""
-#: editor/editor_export.cpp platform/android/export/export.cpp
+#: editor/editor_export.cpp platform/android/export/export_plugin.cpp
#: platform/iphone/export/export.cpp platform/javascript/export/export.cpp
#: platform/osx/export/export.cpp platform/uwp/export/export.cpp
#, fuzzy
msgid "Custom debug template not found."
msgstr "Yer fancy debug package be nowhere."
-#: editor/editor_export.cpp platform/android/export/export.cpp
+#: editor/editor_export.cpp platform/android/export/export_plugin.cpp
#: platform/iphone/export/export.cpp platform/javascript/export/export.cpp
#: platform/osx/export/export.cpp platform/uwp/export/export.cpp
#, fuzzy
@@ -2072,7 +2072,7 @@ msgstr ""
msgid "(Re)Importing Assets"
msgstr ""
-#: editor/editor_help.cpp editor/plugins/spatial_editor_plugin.cpp
+#: editor/editor_help.cpp
msgid "Top"
msgstr ""
@@ -2560,6 +2560,30 @@ msgid "Current scene not saved. Open anyway?"
msgstr ""
#: editor/editor_node.cpp
+msgid "Can't undo while mouse buttons are pressed."
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "Nothing to undo."
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "Undo: %s"
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "Can't redo while mouse buttons are pressed."
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "Nothing to redo."
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "Redo: %s"
+msgstr ""
+
+#: editor/editor_node.cpp
msgid "Can't reload a scene that was never saved."
msgstr ""
@@ -3201,6 +3225,11 @@ msgid "Merge With Existing"
msgstr ""
#: editor/editor_node.cpp
+#, fuzzy
+msgid "Apply MeshInstance Transforms"
+msgstr "Change yer Anim Transform"
+
+#: editor/editor_node.cpp
msgid "Open & Run a Script"
msgstr ""
@@ -3447,6 +3476,10 @@ msgid ""
"property (%s)."
msgstr ""
+#: editor/editor_resource_picker.cpp
+msgid "Quick Load"
+msgstr ""
+
#: editor/editor_resource_picker.cpp editor/property_editor.cpp
msgid "Make Unique"
msgstr ""
@@ -5572,6 +5605,18 @@ msgid "Move CanvasItem \"%s\" to (%d, %d)"
msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Locked"
+msgstr "Yar, Blow th' Selected Down!"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Grouped"
+msgstr "Yar, Blow th' Selected Down!"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
msgid ""
"Children of containers have their anchors and margins values overridden by "
"their parent."
@@ -6496,7 +6541,11 @@ msgid "Remove Selected Item"
msgstr ""
#: editor/plugins/mesh_library_editor_plugin.cpp
-msgid "Import from Scene"
+msgid "Import from Scene (Ignore Transforms)"
+msgstr ""
+
+#: editor/plugins/mesh_library_editor_plugin.cpp
+msgid "Import from Scene (Apply Transforms)"
msgstr ""
#: editor/plugins/mesh_library_editor_plugin.cpp
@@ -7095,6 +7144,16 @@ msgstr "Yar, Blow th' Selected Down!"
msgid "Flip Portal"
msgstr ""
+#: editor/plugins/room_manager_editor_plugin.cpp
+#, fuzzy
+msgid "Occluder Set Transform"
+msgstr "Change yer Anim Transform"
+
+#: editor/plugins/room_manager_editor_plugin.cpp
+#, fuzzy
+msgid "Center Node"
+msgstr "Slit th' Node"
+
#: editor/plugins/root_motion_editor_plugin.cpp
msgid "AnimationTree has no path set to an AnimationPlayer"
msgstr ""
@@ -7614,11 +7673,12 @@ msgid "Skeleton2D"
msgstr ""
#: editor/plugins/skeleton_2d_editor_plugin.cpp
-msgid "Make Rest Pose (From Bones)"
-msgstr ""
+#, fuzzy
+msgid "Reset to Rest Pose"
+msgstr "Yar, Blow th' Selected Down!"
#: editor/plugins/skeleton_2d_editor_plugin.cpp
-msgid "Set Bones to Rest Pose"
+msgid "Overwrite Rest Pose"
msgstr ""
#: editor/plugins/skeleton_editor_plugin.cpp
@@ -7646,6 +7706,60 @@ msgid "Perspective"
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Top Orthogonal"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Top Perspective"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Bottom Orthogonal"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Bottom Perspective"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Left Orthogonal"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Right Perspective"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Right Orthogonal"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Front Orthogonal"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Front Perspective"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Rear Orthogonal"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Rear Perspective"
+msgstr ""
+
+#. TRANSLATORS: This will be appended to the view name when Auto Orthogonal is enabled.
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid " [auto]"
+msgstr ""
+
+#. TRANSLATORS: This will be appended to the view name when Portal Occulusion is enabled.
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid " [portals active]"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
msgid "Transform Aborted."
msgstr ""
@@ -7759,42 +7873,22 @@ msgid "Bottom View."
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
-msgid "Bottom"
-msgstr ""
-
-#: editor/plugins/spatial_editor_plugin.cpp
msgid "Left View."
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
-msgid "Left"
-msgstr ""
-
-#: editor/plugins/spatial_editor_plugin.cpp
msgid "Right View."
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
-msgid "Right"
-msgstr ""
-
-#: editor/plugins/spatial_editor_plugin.cpp
msgid "Front View."
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
-msgid "Front"
-msgstr ""
-
-#: editor/plugins/spatial_editor_plugin.cpp
msgid "Rear View."
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
-msgid "Rear"
-msgstr ""
-
-#: editor/plugins/spatial_editor_plugin.cpp
msgid "Align Transform with View"
msgstr ""
@@ -8059,6 +8153,11 @@ msgid "View Portal Culling"
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "View Occlusion Culling"
+msgstr "Ye be fixin' Signal:"
+
+#: editor/plugins/spatial_editor_plugin.cpp
#: modules/gridmap/grid_map_editor_plugin.cpp
msgid "Settings..."
msgstr ""
@@ -8124,7 +8223,7 @@ msgid "Post"
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
-msgid "Nameless gizmo"
+msgid "Unnamed Gizmo"
msgstr ""
#: editor/plugins/sprite_editor_plugin.cpp
@@ -12205,6 +12304,15 @@ msgstr "Discharge ye' Signal"
msgid "Set Portal Point Position"
msgstr "Discharge ye' Signal"
+#: editor/spatial_editor_gizmos.cpp
+msgid "Set Occluder Sphere Radius"
+msgstr ""
+
+#: editor/spatial_editor_gizmos.cpp
+#, fuzzy
+msgid "Set Occluder Sphere Position"
+msgstr "Discharge ye' Signal"
+
#: modules/csg/csg_gizmos.cpp
msgid "Change Cylinder Radius"
msgstr ""
@@ -12501,6 +12609,11 @@ msgstr ""
msgid "Class name can't be a reserved keyword"
msgstr ""
+#: modules/mono/csharp_script.cpp
+#, fuzzy
+msgid "Build Solution"
+msgstr "All yer Booty"
+
#: modules/mono/mono_gd/gd_mono_utils.cpp
msgid "End of inner exception stack trace"
msgstr ""
@@ -13016,161 +13129,150 @@ msgstr "Discharge ye' Variable"
msgid "Get %s"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Package name is missing."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Package segments must be of non-zero length."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "The character '%s' is not allowed in Android application package names."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "A digit cannot be the first character in a package segment."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "The character '%s' cannot be the first character in a package segment."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "The package must have at least one '.' separator."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Select device from the list"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Running on %s"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
#, fuzzy
msgid "Exporting APK..."
msgstr "Edit"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Uninstalling..."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Installing to device, please wait..."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Could not install to device: %s"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Running on device..."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Could not execute on device."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Unable to find the 'apksigner' tool."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Android build template not installed in the project. Install it from the "
"Project menu."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Either Debug Keystore, Debug User AND Debug Password settings must be "
"configured OR none of them."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Debug keystore not configured in the Editor Settings nor in the preset."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Either Release Keystore, Release User AND Release Password settings must be "
"configured OR none of them."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Release keystore incorrectly configured in the export preset."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "A valid Android SDK path is required in Editor Settings."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Invalid Android SDK path in Editor Settings."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Missing 'platform-tools' directory!"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Unable to find Android SDK platform-tools' adb command."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Please check in the Android SDK directory specified in Editor Settings."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Missing 'build-tools' directory!"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Unable to find Android SDK build-tools' apksigner command."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Invalid public key for APK expansion."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
#, fuzzy
msgid "Invalid package name:"
msgstr "Yer unique name be evil."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Invalid \"GodotPaymentV3\" module included in the \"android/modules\" "
"project setting (changed in Godot 3.2.2).\n"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "\"Use Custom Build\" must be enabled to use the plugins."
msgstr ""
-#: platform/android/export/export.cpp
-msgid ""
-"\"Degrees Of Freedom\" is only valid when \"Xr Mode\" is \"Oculus Mobile VR"
-"\"."
-msgstr ""
-
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"\"Hand Tracking\" is only valid when \"Xr Mode\" is \"Oculus Mobile VR\"."
msgstr ""
-#: platform/android/export/export.cpp
-msgid ""
-"\"Focus Awareness\" is only valid when \"Xr Mode\" is \"Oculus Mobile VR\"."
-msgstr ""
-
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "\"Export AAB\" is only valid when \"Use Custom Build\" is enabled."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"'apksigner' could not be found.\n"
"Please check the command is available in the Android SDK build-tools "
@@ -13178,57 +13280,57 @@ msgid ""
"The resulting %s is unsigned."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Signing debug %s..."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Signing release %s..."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Could not find keystore, unable to export."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "'apksigner' returned with error #%d"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Verifying %s..."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "'apksigner' verification of %s failed."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Exporting for Android"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Invalid filename! Android App Bundle requires the *.aab extension."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "APK Expansion not compatible with Android App Bundle."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Invalid filename! Android APK requires the *.apk extension."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Unsupported export format!\n"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Trying to build from a custom built template, but no version info for it "
"exists. Please reinstall from the 'Project' menu."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Android build version mismatch:\n"
" Template installed: %s\n"
@@ -13236,54 +13338,54 @@ msgid ""
"Please reinstall Android build template from 'Project' menu."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Unable to overwrite res://android/build/res/*.xml files with project name"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Could not export project files to gradle project\n"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Could not write expansion package file!"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Building Android Project (gradle)"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Building of Android project failed, check output for the error.\n"
"Alternatively visit docs.godotengine.org for Android build documentation."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Moving output"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Unable to copy and rename export file, check gradle project directory for "
"outputs."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Package not found: %s"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Creating APK..."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Could not find template APK to export:\n"
"%s"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Missing libraries in the export template for the selected architectures: "
"%s.\n"
@@ -13291,20 +13393,20 @@ msgid ""
"architectures in the export preset."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
#, fuzzy
msgid "Adding files..."
msgstr "Find ye Node Type"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Could not export project files"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Aligning APK..."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Could not unzip temporary unaligned APK."
msgstr ""
@@ -13762,6 +13864,14 @@ msgid ""
"It only provides navigation data."
msgstr ""
+#: scene/3d/occluder.cpp
+msgid "No shape is set."
+msgstr ""
+
+#: scene/3d/occluder.cpp
+msgid "Only uniform scales are supported."
+msgstr ""
+
#: scene/3d/particles.cpp
msgid ""
"GPU-based particles are not supported by the GLES2 video driver.\n"
@@ -14052,6 +14162,14 @@ msgstr ""
msgid "Enable grid minimap."
msgstr ""
+#: scene/gui/nine_patch_rect.cpp
+msgid ""
+"The Tile and Tile Fit options for Axis Stretch properties are only effective "
+"when using the GLES3 rendering backend.\n"
+"The GLES2 backend is currently in use, so these modes will act like Stretch "
+"instead."
+msgstr ""
+
#: scene/gui/popup.cpp
msgid ""
"Popups will hide by default unless you call popup() or any of the popup*() "
@@ -14092,6 +14210,10 @@ msgstr ""
msgid "Viewport size must be greater than 0 to render anything."
msgstr ""
+#: scene/resources/occluder_shape.cpp
+msgid "OccluderShapeSphere Set Spheres"
+msgstr ""
+
#: scene/resources/visual_shader_nodes.cpp
msgid ""
"The sampler port is connected but not used. Consider changing the source to "
diff --git a/editor/translations/pt.po b/editor/translations/pt.po
index 1c8e2476a3..94bcea301b 100644
--- a/editor/translations/pt.po
+++ b/editor/translations/pt.po
@@ -23,7 +23,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Godot Engine editor\n"
"POT-Creation-Date: \n"
-"PO-Revision-Date: 2021-08-06 06:48+0000\n"
+"PO-Revision-Date: 2021-09-15 00:46+0000\n"
"Last-Translator: João Lopes <linux-man@hotmail.com>\n"
"Language-Team: Portuguese <https://hosted.weblate.org/projects/godot-engine/"
"godot/pt/>\n"
@@ -32,7 +32,7 @@ msgstr ""
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=n != 1;\n"
-"X-Generator: Weblate 4.8-dev\n"
+"X-Generator: Weblate 4.9-dev\n"
#: core/math/expression.cpp modules/gdscript/gdscript_functions.cpp
#: modules/visual_script/visual_script_builtin_funcs.cpp
@@ -381,15 +381,13 @@ msgstr "Anim Inserir"
#. TRANSLATORS: This describes the target of new animation track, will be inserted into another string.
#: editor/animation_track_editor.cpp
-#, fuzzy
msgid "node '%s'"
-msgstr "Impossível abrir '%s'."
+msgstr "nó '%s'"
#. TRANSLATORS: This describes the target of new animation track, will be inserted into another string.
#: editor/animation_track_editor.cpp
-#, fuzzy
msgid "animation"
-msgstr "Animação"
+msgstr "animação"
#: editor/animation_track_editor.cpp
msgid "AnimationPlayer can't animate itself, only other players."
@@ -399,9 +397,8 @@ msgstr ""
#. TRANSLATORS: This describes the target of new animation track, will be inserted into another string.
#: editor/animation_track_editor.cpp
-#, fuzzy
msgid "property '%s'"
-msgstr "Não existe a Propriedade '%s'."
+msgstr "propriedade '%s'"
#: editor/animation_track_editor.cpp
msgid "Anim Create & Insert"
@@ -461,7 +458,7 @@ msgstr "Caminho da pista é inválido, não se consegue adicionar uma chave."
#: editor/animation_track_editor.cpp
msgid "Track is not of type Spatial, can't insert key"
-msgstr "Pista não é do tipo Spatial, não consigo inserir chave"
+msgstr "Pista não é do tipo Spatial, incapaz de inserir chave"
#: editor/animation_track_editor.cpp
msgid "Add Transform Track Key"
@@ -473,7 +470,7 @@ msgstr "Adicionar Chave da Pista"
#: editor/animation_track_editor.cpp
msgid "Track path is invalid, so can't add a method key."
-msgstr "Caminho da pista é inválido, não consigo adicionar uma chave método."
+msgstr "Caminho da pista é inválido, incapaz de adicionar uma chave método."
#: editor/animation_track_editor.cpp
msgid "Add Method Track Key"
@@ -877,7 +874,7 @@ msgstr "Desconecta o sinal após a primeira emissão."
#: editor/connections_dialog.cpp
msgid "Cannot connect signal"
-msgstr "Não consigo conectar sinal"
+msgstr "Incapaz de conectar sinal"
#: editor/connections_dialog.cpp editor/dependency_editor.cpp
#: editor/export_template_manager.cpp editor/groups_editor.cpp
@@ -1037,7 +1034,7 @@ msgstr ""
msgid "Dependencies"
msgstr "Dependências"
-#: editor/dependency_editor.cpp
+#: editor/dependency_editor.cpp editor/editor_resource_picker.cpp
msgid "Resource"
msgstr "Recurso"
@@ -1082,7 +1079,7 @@ msgid ""
"Depending on your filesystem configuration, the files will either be moved "
"to the system trash or deleted permanently."
msgstr ""
-"Remover ficheiros selecionados do Projeto? (Sem desfazer.)\n"
+"Remover ficheiros selecionados do Projeto? (Não pode ser revertido.)\n"
"Dependendo da configuração, pode encontrar os ficheiros removidos na "
"Reciclagem do sistema ou apagados permanentemente."
@@ -1096,13 +1093,13 @@ msgid ""
msgstr ""
"Os ficheiros a serem removidos são necessários para que outros recursos "
"funcionem.\n"
-"Remover mesmo assim? (Sem desfazer.)\n"
+"Remover mesmo assim? (Não pode ser revertido.)\n"
"Dependendo da configuração, pode encontrar os ficheiros removidos na "
"Reciclagem do sistema ou apagados permanentemente."
#: editor/dependency_editor.cpp
msgid "Cannot remove:"
-msgstr "Não consigo remover:"
+msgstr "Incapaz de remover:"
#: editor/dependency_editor.cpp
msgid "Error loading:"
@@ -1279,14 +1276,16 @@ msgstr "%s (já existe)"
#: editor/editor_asset_installer.cpp
msgid "Contents of asset \"%s\" - %d file(s) conflict with your project:"
msgstr ""
+"Conteúdos do recurso \"%s\" - %d ficheiro(s) em conflito com o projeto:"
#: editor/editor_asset_installer.cpp
msgid "Contents of asset \"%s\" - No files conflict with your project:"
msgstr ""
+"Conteúdos do recurso \"%s\" - Nenhum ficheiro em conflito com o projeto:"
#: editor/editor_asset_installer.cpp
msgid "Uncompressing Assets"
-msgstr "A Descomprimir Ativos"
+msgstr "A Descomprimir Recursos"
#: editor/editor_asset_installer.cpp
msgid "The following files failed extraction from asset \"%s\":"
@@ -1374,9 +1373,8 @@ msgid "Bypass"
msgstr "Ignorar"
#: editor/editor_audio_buses.cpp
-#, fuzzy
msgid "Bus Options"
-msgstr "Opções de barramento"
+msgstr "Opções de Barramento"
#: editor/editor_audio_buses.cpp editor/filesystem_dock.cpp
#: editor/plugins/animation_player_editor_plugin.cpp editor/scene_tree_dock.cpp
@@ -1540,16 +1538,15 @@ msgstr "Reorganizar Carregamentos Automáticos"
#: editor/editor_autoload_settings.cpp
msgid "Can't add autoload:"
-msgstr "Não consigo adicionar carregamento automático:"
+msgstr "Incapaz de adicionar carregamento automático:"
#: editor/editor_autoload_settings.cpp
-#, fuzzy
msgid "%s is an invalid path. File does not exist."
-msgstr "O Ficheiro não existe."
+msgstr "%s é um caminho inválido. O ficheiro não existe."
#: editor/editor_autoload_settings.cpp
msgid "%s is an invalid path. Not in resource path (res://)."
-msgstr ""
+msgstr "%s é um caminho inválido. Não está no caminho do recurso (res://)."
#: editor/editor_autoload_settings.cpp
msgid "Add AutoLoad"
@@ -1573,9 +1570,8 @@ msgid "Name"
msgstr "Nome"
#: editor/editor_autoload_settings.cpp
-#, fuzzy
msgid "Global Variable"
-msgstr "Variável"
+msgstr "Variável Global"
#: editor/editor_data.cpp
msgid "Paste Params"
@@ -1699,13 +1695,13 @@ msgstr ""
"Ative 'Importar Pvrtc' nas Configurações do Projeto, ou desative 'Driver de "
"Recurso Ativo'."
-#: editor/editor_export.cpp platform/android/export/export.cpp
+#: editor/editor_export.cpp platform/android/export/export_plugin.cpp
#: platform/iphone/export/export.cpp platform/javascript/export/export.cpp
#: platform/osx/export/export.cpp platform/uwp/export/export.cpp
msgid "Custom debug template not found."
msgstr "Modelo de depuração personalizado não encontrado."
-#: editor/editor_export.cpp platform/android/export/export.cpp
+#: editor/editor_export.cpp platform/android/export/export_plugin.cpp
#: platform/iphone/export/export.cpp platform/javascript/export/export.cpp
#: platform/osx/export/export.cpp platform/uwp/export/export.cpp
msgid "Custom release template not found."
@@ -1730,7 +1726,7 @@ msgstr "Editor de Script"
#: editor/editor_feature_profile.cpp
msgid "Asset Library"
-msgstr "Biblioteca de Ativos"
+msgstr "Biblioteca de Recursos"
#: editor/editor_feature_profile.cpp
msgid "Scene Tree Editing"
@@ -1750,48 +1746,50 @@ msgstr "Importar Doca"
#: editor/editor_feature_profile.cpp
msgid "Allows to view and edit 3D scenes."
-msgstr ""
+msgstr "Permite ver e editar cenas 3D."
#: editor/editor_feature_profile.cpp
msgid "Allows to edit scripts using the integrated script editor."
-msgstr ""
+msgstr "Permite editar scripts com o editor de scripts integrado."
#: editor/editor_feature_profile.cpp
msgid "Provides built-in access to the Asset Library."
-msgstr ""
+msgstr "Fornece acesso integrado à Biblioteca de Recursos."
#: editor/editor_feature_profile.cpp
msgid "Allows editing the node hierarchy in the Scene dock."
-msgstr ""
+msgstr "Permite editar a hierarquia de nós na doca de Cena."
#: editor/editor_feature_profile.cpp
msgid ""
"Allows to work with signals and groups of the node selected in the Scene "
"dock."
msgstr ""
+"Permite trabalhar com sinais e grupos do nó selecionado na doca de Cena."
#: editor/editor_feature_profile.cpp
msgid "Allows to browse the local file system via a dedicated dock."
-msgstr ""
+msgstr "Permite navegar no sistema de ficheiros local por uma doca dedicada."
#: editor/editor_feature_profile.cpp
msgid ""
"Allows to configure import settings for individual assets. Requires the "
"FileSystem dock to function."
msgstr ""
+"Permite a configuração da importação para recursos individuais. Necessita da "
+"doca FileSystem."
#: editor/editor_feature_profile.cpp
-#, fuzzy
msgid "(current)"
-msgstr "(Atual)"
+msgstr "(atual)"
#: editor/editor_feature_profile.cpp
msgid "(none)"
-msgstr ""
+msgstr "(nada)"
#: editor/editor_feature_profile.cpp
msgid "Remove currently selected profile, '%s'? Cannot be undone."
-msgstr ""
+msgstr "Remover perfil selecionado, '%s'? Não pode ser revertido."
#: editor/editor_feature_profile.cpp
msgid "Profile must be a valid filename and must not contain '.'"
@@ -1822,19 +1820,16 @@ msgid "Enable Contextual Editor"
msgstr "Ativar Editor de Contexto"
#: editor/editor_feature_profile.cpp
-#, fuzzy
msgid "Class Properties:"
-msgstr "Propriedades:"
+msgstr "Propriedades da Classe:"
#: editor/editor_feature_profile.cpp
-#, fuzzy
msgid "Main Features:"
-msgstr "Características"
+msgstr "Características Principais:"
#: editor/editor_feature_profile.cpp
-#, fuzzy
msgid "Nodes and Classes:"
-msgstr "Ativar Classes:"
+msgstr "Nós e Classes:"
#: editor/editor_feature_profile.cpp
msgid "File '%s' format is invalid, import aborted."
@@ -1852,23 +1847,20 @@ msgid "Error saving profile to path: '%s'."
msgstr "Erro ao guardar perfil no caminho: '%s'."
#: editor/editor_feature_profile.cpp
-#, fuzzy
msgid "Reset to Default"
-msgstr "Restaurar Predefinições"
+msgstr "Restaurar Predefinição"
#: editor/editor_feature_profile.cpp
msgid "Current Profile:"
msgstr "Perfil atual:"
#: editor/editor_feature_profile.cpp
-#, fuzzy
msgid "Create Profile"
-msgstr "Apagar Perfil"
+msgstr "Criar Perfil"
#: editor/editor_feature_profile.cpp
-#, fuzzy
msgid "Remove Profile"
-msgstr "Remover Tile"
+msgstr "Remover Perfil"
#: editor/editor_feature_profile.cpp
msgid "Available Profiles:"
@@ -1888,18 +1880,17 @@ msgid "Export"
msgstr "Exportar"
#: editor/editor_feature_profile.cpp
-#, fuzzy
msgid "Configure Selected Profile:"
-msgstr "Perfil atual:"
+msgstr "Configurar Perfil Selecionado:"
#: editor/editor_feature_profile.cpp
-#, fuzzy
msgid "Extra Options:"
-msgstr "Opções da Classe:"
+msgstr "Opções Extra:"
#: editor/editor_feature_profile.cpp
msgid "Create or import a profile to edit available classes and properties."
msgstr ""
+"Criar ou importar perfil para editar classes e propriedades disponíveis."
#: editor/editor_feature_profile.cpp
msgid "New profile name:"
@@ -1926,9 +1917,8 @@ msgid "Select Current Folder"
msgstr "Selecionar pasta atual"
#: editor/editor_file_dialog.cpp scene/gui/file_dialog.cpp
-#, fuzzy
msgid "File exists, overwrite?"
-msgstr "O Ficheiro existe, sobrescrever?"
+msgstr "O ficheiro existe, sobrescrever?"
#: editor/editor_file_dialog.cpp scene/gui/file_dialog.cpp
msgid "Select This Folder"
@@ -2075,7 +2065,7 @@ msgstr "Ficheiro:"
#: editor/editor_file_system.cpp
msgid "ScanSources"
-msgstr "Analisar fontes"
+msgstr "PesquisarFontes"
#: editor/editor_file_system.cpp
msgid ""
@@ -2087,9 +2077,9 @@ msgstr ""
#: editor/editor_file_system.cpp
msgid "(Re)Importing Assets"
-msgstr "A (Re)Importar Ativos"
+msgstr "A (Re)Importar Recursos"
-#: editor/editor_help.cpp editor/plugins/spatial_editor_plugin.cpp
+#: editor/editor_help.cpp
msgid "Top"
msgstr "Topo"
@@ -2359,7 +2349,7 @@ msgstr "Guardar Recurso Como..."
#: editor/editor_node.cpp
msgid "Can't open file for writing:"
-msgstr "Não consigo abrir o ficheiro para escrita:"
+msgstr "Incapaz de abrir o ficheiro para escrita:"
#: editor/editor_node.cpp
msgid "Requested file format unknown:"
@@ -2371,7 +2361,7 @@ msgstr "Erro ao guardar."
#: editor/editor_node.cpp editor/plugins/script_editor_plugin.cpp
msgid "Can't open '%s'. The file could have been moved or deleted."
-msgstr "Não consigo abrir '%s'. O ficheiro pode ter sido movido ou apagado."
+msgstr "Incapaz de abrir '%s'. O ficheiro pode ter sido movido ou apagado."
#: editor/editor_node.cpp
msgid "Error while parsing '%s'."
@@ -2419,7 +2409,7 @@ msgid ""
"Couldn't save scene. Likely dependencies (instances or inheritance) couldn't "
"be satisfied."
msgstr ""
-"Não consigo guardar cena. Provavelmente, as dependências (instâncias ou "
+"Incapaz de guardar cena. Provavelmente, as dependências (instâncias ou "
"heranças) não puderam ser satisfeitas."
#: editor/editor_node.cpp editor/scene_tree_dock.cpp
@@ -2428,7 +2418,7 @@ msgstr "Não se consegue sobrescrever cena ainda aberta!"
#: editor/editor_node.cpp
msgid "Can't load MeshLibrary for merging!"
-msgstr "Não consigo carregar MeshLibrary para combinar!"
+msgstr "Incapaz de carregar MeshLibrary para combinar!"
#: editor/editor_node.cpp
msgid "Error saving MeshLibrary!"
@@ -2436,7 +2426,7 @@ msgstr "Erro ao guardar MeshLibrary!"
#: editor/editor_node.cpp
msgid "Can't load TileSet for merging!"
-msgstr "Não consigo carregar TileSet para combinar!"
+msgstr "Incapaz de carregar TileSet para combinar!"
#: editor/editor_node.cpp
msgid "Error saving TileSet!"
@@ -2563,13 +2553,16 @@ msgid ""
"The current scene has no root node, but %d modified external resource(s) "
"were saved anyway."
msgstr ""
+"A cena atual não tem nó raiz, mas %d recurso(s) externo(s) modificados foram "
+"guardados."
#: editor/editor_node.cpp
-#, fuzzy
msgid ""
"A root node is required to save the scene. You can add a root node using the "
"Scene tree dock."
-msgstr "É necessário um nó raiz para guardar a cena."
+msgstr ""
+"É necessário um nó raiz para guardar a cena. Pode adicionar um nó raiz na "
+"doca de árvore da Cena."
#: editor/editor_node.cpp
msgid "Save Scene As..."
@@ -2600,8 +2593,34 @@ msgid "Current scene not saved. Open anyway?"
msgstr "A cena atual não foi guardada. Abrir na mesma?"
#: editor/editor_node.cpp
+msgid "Can't undo while mouse buttons are pressed."
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "Nothing to undo."
+msgstr ""
+
+#: editor/editor_node.cpp
+#, fuzzy
+msgid "Undo: %s"
+msgstr "Desfazer"
+
+#: editor/editor_node.cpp
+msgid "Can't redo while mouse buttons are pressed."
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "Nothing to redo."
+msgstr ""
+
+#: editor/editor_node.cpp
+#, fuzzy
+msgid "Redo: %s"
+msgstr "Refazer"
+
+#: editor/editor_node.cpp
msgid "Can't reload a scene that was never saved."
-msgstr "Não consigo recarregar uma cena que nunca foi guardada."
+msgstr "Incapaz de recarregar uma cena que nunca foi guardada."
#: editor/editor_node.cpp
msgid "Reload Saved Scene"
@@ -2952,9 +2971,8 @@ msgid "Orphan Resource Explorer..."
msgstr "Explorador de Recursos Órfãos..."
#: editor/editor_node.cpp
-#, fuzzy
msgid "Reload Current Project"
-msgstr "Renomear Projeto"
+msgstr "Recarregar Projeto Atual"
#: editor/editor_node.cpp
msgid "Quit to Project List"
@@ -3114,13 +3132,12 @@ msgid "Help"
msgstr "Ajuda"
#: editor/editor_node.cpp
-#, fuzzy
msgid "Online Documentation"
-msgstr "Abrir documentação"
+msgstr "Documentação Online"
#: editor/editor_node.cpp
msgid "Questions & Answers"
-msgstr ""
+msgstr "Perguntas & Respostas"
#: editor/editor_node.cpp
msgid "Report a Bug"
@@ -3128,7 +3145,7 @@ msgstr "Denunciar um Bug"
#: editor/editor_node.cpp
msgid "Suggest a Feature"
-msgstr ""
+msgstr "Proponha uma Funcionalidade"
#: editor/editor_node.cpp
msgid "Send Docs Feedback"
@@ -3139,9 +3156,8 @@ msgid "Community"
msgstr "Comunidade"
#: editor/editor_node.cpp
-#, fuzzy
msgid "About Godot"
-msgstr "Sobre"
+msgstr "Sobre Godot"
#: editor/editor_node.cpp
msgid "Support Godot Development"
@@ -3233,14 +3249,12 @@ msgid "Manage Templates"
msgstr "Gerir Modelos"
#: editor/editor_node.cpp
-#, fuzzy
msgid "Install from file"
-msgstr "Instalar do Ficheiro"
+msgstr "Instalar do ficheiro"
#: editor/editor_node.cpp
-#, fuzzy
msgid "Select android sources file"
-msgstr "Selecione uma Fonte Malha:"
+msgstr "Selecione ficheiros fonte android"
#: editor/editor_node.cpp
msgid ""
@@ -3289,6 +3303,11 @@ msgid "Merge With Existing"
msgstr "Combinar com o Existente"
#: editor/editor_node.cpp
+#, fuzzy
+msgid "Apply MeshInstance Transforms"
+msgstr "Anim Mudar Transformação"
+
+#: editor/editor_node.cpp
msgid "Open & Run a Script"
msgstr "Abrir & Executar um Script"
@@ -3323,9 +3342,8 @@ msgid "Select"
msgstr "Selecionar"
#: editor/editor_node.cpp
-#, fuzzy
msgid "Select Current"
-msgstr "Selecionar pasta atual"
+msgstr "Selecionar Atual"
#: editor/editor_node.cpp
msgid "Open 2D Editor"
@@ -3341,7 +3359,7 @@ msgstr "Abrir Editor de Script"
#: editor/editor_node.cpp editor/project_manager.cpp
msgid "Open Asset Library"
-msgstr "Abrir Biblioteca de Ativos"
+msgstr "Abrir Biblioteca de Recursos"
#: editor/editor_node.cpp
msgid "Open the next Editor"
@@ -3360,9 +3378,8 @@ msgid "No sub-resources found."
msgstr "Sub-recurso não encontrado."
#: editor/editor_path.cpp
-#, fuzzy
msgid "Open a list of sub-resources."
-msgstr "Sub-recurso não encontrado."
+msgstr "Abrir a lista de sub-recursos."
#: editor/editor_plugin.cpp
msgid "Creating Mesh Previews"
@@ -3389,14 +3406,12 @@ msgid "Update"
msgstr "Atualizar"
#: editor/editor_plugin_settings.cpp
-#, fuzzy
msgid "Version"
-msgstr "Versão:"
+msgstr "Versão"
#: editor/editor_plugin_settings.cpp
-#, fuzzy
msgid "Author"
-msgstr "Autores"
+msgstr "Autor"
#: editor/editor_plugin_settings.cpp
#: editor/plugins/version_control_editor_plugin.cpp
@@ -3409,14 +3424,12 @@ msgid "Measure:"
msgstr "Medida:"
#: editor/editor_profiler.cpp
-#, fuzzy
msgid "Frame Time (ms)"
-msgstr "Tempo do Frame (seg)"
+msgstr "Tempo do Frame (ms)"
#: editor/editor_profiler.cpp
-#, fuzzy
msgid "Average Time (ms)"
-msgstr "Tempo Médio (seg)"
+msgstr "Tempo Médio (ms)"
#: editor/editor_profiler.cpp
msgid "Frame %"
@@ -3545,6 +3558,10 @@ msgstr ""
"O recurso selecionado (%s) não corresponde a qualquer tipo esperado para "
"esta propriedade (%s)."
+#: editor/editor_resource_picker.cpp
+msgid "Quick Load"
+msgstr ""
+
#: editor/editor_resource_picker.cpp editor/property_editor.cpp
msgid "Make Unique"
msgstr "Fazer único"
@@ -3564,7 +3581,6 @@ msgid "Paste"
msgstr "Colar"
#: editor/editor_resource_picker.cpp editor/property_editor.cpp
-#, fuzzy
msgid "Convert to %s"
msgstr "Converter em %s"
@@ -3616,10 +3632,9 @@ msgid "Did you forget the '_run' method?"
msgstr "Esqueceu-se do método '_run'?"
#: editor/editor_spin_slider.cpp
-#, fuzzy
msgid "Hold %s to round to integers. Hold Shift for more precise changes."
msgstr ""
-"Pressione Ctrl para arredondar para inteiro. Pressione Shift para mudanças "
+"Pressione %s para arredondar para inteiro. Pressione Shift para mudanças "
"mais precisas."
#: editor/editor_sub_scene.cpp
@@ -3640,49 +3655,43 @@ msgstr "Importar do Nó:"
#: editor/export_template_manager.cpp
msgid "Open the folder containing these templates."
-msgstr ""
+msgstr "Abrir a pasta que contem estes modelos."
#: editor/export_template_manager.cpp
msgid "Uninstall these templates."
-msgstr ""
+msgstr "Desinstalar este modelos."
#: editor/export_template_manager.cpp
-#, fuzzy
msgid "There are no mirrors available."
-msgstr "Não existe ficheiro '%s'."
+msgstr "Não existem mirrors disponíveis."
#: editor/export_template_manager.cpp
-#, fuzzy
msgid "Retrieving the mirror list..."
-msgstr "A readquirir servidores, espere por favor..."
+msgstr "A readquirir lista de mirror..."
#: editor/export_template_manager.cpp
msgid "Starting the download..."
-msgstr ""
+msgstr "A iniciar a transferência..."
#: editor/export_template_manager.cpp
msgid "Error requesting URL:"
msgstr "Erro ao solicitar URL:"
#: editor/export_template_manager.cpp
-#, fuzzy
msgid "Connecting to the mirror..."
-msgstr "A ligar ao servidor..."
+msgstr "A ligar ao mirror..."
#: editor/export_template_manager.cpp
-#, fuzzy
msgid "Can't resolve the requested address."
-msgstr "Não consigo resolver hostname:"
+msgstr "Incapaz de resolver o endereço solicitado."
#: editor/export_template_manager.cpp
-#, fuzzy
msgid "Can't connect to the mirror."
-msgstr "Não consigo ligar ao host:"
+msgstr "Incapaz de ligar ao mirror."
#: editor/export_template_manager.cpp
-#, fuzzy
msgid "No response from the mirror."
-msgstr "Sem resposta do host:"
+msgstr "Sem resposta do mirror."
#: editor/export_template_manager.cpp
#: editor/plugins/asset_library_editor_plugin.cpp
@@ -3690,22 +3699,20 @@ msgid "Request failed."
msgstr "Pedido falhado."
#: editor/export_template_manager.cpp
-#, fuzzy
msgid "Request ended up in a redirect loop."
-msgstr "Falha na solicitação, demasiados redirecionamentos"
+msgstr "Pedido acaba num loop de redirecionamento."
#: editor/export_template_manager.cpp
-#, fuzzy
msgid "Request failed:"
-msgstr "Pedido falhado."
+msgstr "Pedido falhado:"
#: editor/export_template_manager.cpp
msgid "Download complete; extracting templates..."
-msgstr ""
+msgstr "Transferência completa; a extrair modelos..."
#: editor/export_template_manager.cpp
msgid "Cannot remove temporary file:"
-msgstr "Não consigo remover ficheiro temporário:"
+msgstr "Incapaz de remover ficheiro temporário:"
#: editor/export_template_manager.cpp
msgid ""
@@ -3720,14 +3727,12 @@ msgid "Error getting the list of mirrors."
msgstr "Erro na receção da lista de mirrors."
#: editor/export_template_manager.cpp
-#, fuzzy
msgid "Error parsing JSON with the list of mirrors. Please report this issue!"
-msgstr ""
-"Erro ao analisar a lista de mirrors JSON. Por favor denuncie o problema!"
+msgstr "Erro ao analisar a lista JSON de mirrors. Por favor relate o problema!"
#: editor/export_template_manager.cpp
msgid "Best available mirror"
-msgstr ""
+msgstr "Melhor mirror disponível"
#: editor/export_template_manager.cpp
msgid ""
@@ -3748,7 +3753,7 @@ msgstr "A resolver"
#: editor/export_template_manager.cpp
msgid "Can't Resolve"
-msgstr "Não consigo Resolver"
+msgstr "Incapaz de Resolver"
#: editor/export_template_manager.cpp
#: editor/plugins/asset_library_editor_plugin.cpp
@@ -3757,7 +3762,7 @@ msgstr "A ligar..."
#: editor/export_template_manager.cpp
msgid "Can't Connect"
-msgstr "Não consigo Conectar"
+msgstr "Incapaz de Conectar"
#: editor/export_template_manager.cpp
msgid "Connected"
@@ -3781,24 +3786,23 @@ msgid "SSL Handshake Error"
msgstr "Erro SSL Handshake"
#: editor/export_template_manager.cpp
-#, fuzzy
msgid "Can't open the export templates file."
-msgstr "Não consigo abrir zip de modelos de exportação."
+msgstr "Incapaz de abrir ficheiro de modelos de exportação."
#: editor/export_template_manager.cpp
-#, fuzzy
msgid "Invalid version.txt format inside the export templates file: %s."
-msgstr "Formato de version.txt inválido dentro dos modelos: %s."
+msgstr ""
+"Formato de version.txt inválido dentro do ficheiro de exportação de modelos: "
+"%s."
#: editor/export_template_manager.cpp
-#, fuzzy
msgid "No version.txt found inside the export templates file."
-msgstr "Não foi encontrado version.txt dentro dos Modelos."
+msgstr ""
+"Não foi encontrado version.txt dentro do ficheiro de exportação de modelos."
#: editor/export_template_manager.cpp
-#, fuzzy
msgid "Error creating path for extracting templates:"
-msgstr "Erro ao criar o caminho para os modelos:"
+msgstr "Erro ao criar o caminho para extrair os modelos:"
#: editor/export_template_manager.cpp
msgid "Extracting Export Templates"
@@ -3809,9 +3813,8 @@ msgid "Importing:"
msgstr "A Importar:"
#: editor/export_template_manager.cpp
-#, fuzzy
msgid "Remove templates for the version '%s'?"
-msgstr "Remover versão '%s' do Modelo?"
+msgstr "Remover modelos para a versão '%s'?"
#: editor/export_template_manager.cpp
msgid "Uncompressing Android Build Sources"
@@ -3828,53 +3831,51 @@ msgstr "Versão Atual:"
#: editor/export_template_manager.cpp
msgid "Export templates are missing. Download them or install from a file."
msgstr ""
+"Modelos de exportação em falta. Descarregue-os ou instale-os de um ficheiro."
#: editor/export_template_manager.cpp
msgid "Export templates are installed and ready to be used."
-msgstr ""
+msgstr "Modelos de exportação estão instalados e prontos para serem usados."
#: editor/export_template_manager.cpp
-#, fuzzy
msgid "Open Folder"
-msgstr "Abrir Ficheiro"
+msgstr "Abrir Pasta"
#: editor/export_template_manager.cpp
msgid "Open the folder containing installed templates for the current version."
-msgstr ""
+msgstr "Abrir a pasta que contem os modelos instalados para a versão atual."
#: editor/export_template_manager.cpp
msgid "Uninstall"
msgstr "Desinstalar"
#: editor/export_template_manager.cpp
-#, fuzzy
msgid "Uninstall templates for the current version."
-msgstr "Valor inicial do contador"
+msgstr "Desinstalar modelos para a versão atual."
#: editor/export_template_manager.cpp
-#, fuzzy
msgid "Download from:"
-msgstr "Erro na transferência"
+msgstr "Transferir de:"
#: editor/export_template_manager.cpp
-#, fuzzy
msgid "Open in Web Browser"
-msgstr "Executar no Navegador"
+msgstr "Abrir no Navegador"
#: editor/export_template_manager.cpp
-#, fuzzy
msgid "Copy Mirror URL"
-msgstr "Copiar Erro"
+msgstr "Copiar URL do Mirror"
#: editor/export_template_manager.cpp
msgid "Download and Install"
-msgstr ""
+msgstr "Descarregar e Instalar"
#: editor/export_template_manager.cpp
msgid ""
"Download and install templates for the current version from the best "
"possible mirror."
msgstr ""
+"Descarregar do melhor mirror disponível e instalar modelos para a versão "
+"atual."
#: editor/export_template_manager.cpp
msgid "Official export templates aren't available for development builds."
@@ -3883,14 +3884,12 @@ msgstr ""
"desenvolvimento."
#: editor/export_template_manager.cpp
-#, fuzzy
msgid "Install from File"
msgstr "Instalar do Ficheiro"
#: editor/export_template_manager.cpp
-#, fuzzy
msgid "Install templates from a local file."
-msgstr "Importar Modelos a partir de um Ficheiro ZIP"
+msgstr "Instalar modelos a partir de um ficheiro local."
#: editor/export_template_manager.cpp editor/find_in_files.cpp
#: editor/progress_dialog.cpp scene/gui/dialogs.cpp
@@ -3898,19 +3897,16 @@ msgid "Cancel"
msgstr "Cancelar"
#: editor/export_template_manager.cpp
-#, fuzzy
msgid "Cancel the download of the templates."
-msgstr "Não consigo abrir zip de modelos de exportação."
+msgstr "Cancelar a transferência dos modelos."
#: editor/export_template_manager.cpp
-#, fuzzy
msgid "Other Installed Versions:"
-msgstr "Versões Instaladas:"
+msgstr "Outras Versões Instaladas:"
#: editor/export_template_manager.cpp
-#, fuzzy
msgid "Uninstall Template"
-msgstr "Desinstalar"
+msgstr "Desinstalar Modelo"
#: editor/export_template_manager.cpp
msgid "Select Template File"
@@ -3925,6 +3921,8 @@ msgid ""
"The templates will continue to download.\n"
"You may experience a short editor freeze when they finish."
msgstr ""
+"Os modelos vão continuar a ser descarregados.\n"
+"Pode experimentar um curto bloqueio do editor quando terminar."
#: editor/filesystem_dock.cpp
msgid "Favorites"
@@ -4072,35 +4070,32 @@ msgid "Collapse All"
msgstr "Colapsar Tudo"
#: editor/filesystem_dock.cpp
-#, fuzzy
msgid "Sort files"
-msgstr "Procurar ficheiros"
+msgstr "Ordenar ficheiros"
#: editor/filesystem_dock.cpp
msgid "Sort by Name (Ascending)"
-msgstr ""
+msgstr "Ordenar por Nome (Ascendente)"
#: editor/filesystem_dock.cpp
msgid "Sort by Name (Descending)"
-msgstr ""
+msgstr "Ordenar por Nome (Descendente)"
#: editor/filesystem_dock.cpp
msgid "Sort by Type (Ascending)"
-msgstr ""
+msgstr "Ordenar por Tipo (Ascendente)"
#: editor/filesystem_dock.cpp
msgid "Sort by Type (Descending)"
-msgstr ""
+msgstr "Ordenar por Tipo (Descendente)"
#: editor/filesystem_dock.cpp
-#, fuzzy
msgid "Sort by Last Modified"
-msgstr "Última modificação"
+msgstr "Ordenar por Último Modificado"
#: editor/filesystem_dock.cpp
-#, fuzzy
msgid "Sort by First Modified"
-msgstr "Última modificação"
+msgstr "Ordenar por Primeiro Modificado"
#: editor/filesystem_dock.cpp
msgid "Duplicate..."
@@ -4112,7 +4107,7 @@ msgstr "Renomear..."
#: editor/filesystem_dock.cpp
msgid "Focus the search box"
-msgstr ""
+msgstr "Focar a caixa de pesquisa"
#: editor/filesystem_dock.cpp
msgid "Previous Folder/File"
@@ -4124,7 +4119,7 @@ msgstr "Próxima Pasta/Ficheiro"
#: editor/filesystem_dock.cpp
msgid "Re-Scan Filesystem"
-msgstr "Carregar novamente o Sistema de Ficheiros"
+msgstr "Re-pesquisar o Sistema de Ficheiros"
#: editor/filesystem_dock.cpp
msgid "Toggle Split Mode"
@@ -4139,7 +4134,7 @@ msgid ""
"Scanning Files,\n"
"Please Wait..."
msgstr ""
-"A analisar Ficheiros,\n"
+"A pesquisar Ficheiros,\n"
"Espere, por favor..."
#: editor/filesystem_dock.cpp
@@ -4412,7 +4407,7 @@ msgstr "Alterar o tipo de um ficheiro importado requer reiniciar o editor."
msgid ""
"WARNING: Assets exist that use this resource, they may stop loading properly."
msgstr ""
-"AVISO: Existem Ativos que usam este recurso, poderem não ser carregados "
+"AVISO: Outros recursos usam este recurso, e podem não ser carregados "
"corretamente."
#: editor/inspector_dock.cpp
@@ -4420,14 +4415,12 @@ msgid "Failed to load resource."
msgstr "Falha ao carregar recurso."
#: editor/inspector_dock.cpp
-#, fuzzy
msgid "Copy Properties"
-msgstr "Propriedades"
+msgstr "Copiar Propriedades"
#: editor/inspector_dock.cpp
-#, fuzzy
msgid "Paste Properties"
-msgstr "Propriedades"
+msgstr "Colar Propriedades"
#: editor/inspector_dock.cpp
msgid "Make Sub-Resources Unique"
@@ -4452,23 +4445,20 @@ msgid "Save As..."
msgstr "Guardar Como..."
#: editor/inspector_dock.cpp
-#, fuzzy
msgid "Extra resource options."
-msgstr "Não está no caminho do recurso."
+msgstr "Opções de recurso extra."
#: editor/inspector_dock.cpp
-#, fuzzy
msgid "Edit Resource from Clipboard"
-msgstr "Editar Ãrea de Transferência de Recursos"
+msgstr "Editar Recurso da Ãrea de Transferência"
#: editor/inspector_dock.cpp
msgid "Copy Resource"
msgstr "Copiar Recurso"
#: editor/inspector_dock.cpp
-#, fuzzy
msgid "Make Resource Built-In"
-msgstr "Tornar Incorporado"
+msgstr "Tornar Recurso Incorporado"
#: editor/inspector_dock.cpp
msgid "Go to the previous edited object in history."
@@ -4483,9 +4473,8 @@ msgid "History of recently edited objects."
msgstr "Histórico de Objetos recentemente editados."
#: editor/inspector_dock.cpp
-#, fuzzy
msgid "Open documentation for this object."
-msgstr "Abrir documentação"
+msgstr "Abrir documentação para este objeto."
#: editor/inspector_dock.cpp editor/scene_tree_dock.cpp
msgid "Open Documentation"
@@ -4496,9 +4485,8 @@ msgid "Filter properties"
msgstr "Propriedades do Filtro"
#: editor/inspector_dock.cpp
-#, fuzzy
msgid "Manage object properties."
-msgstr "Propriedades do Objeto."
+msgstr "Gerir propriedades do objeto."
#: editor/inspector_dock.cpp
msgid "Changes may be lost!"
@@ -4742,9 +4730,8 @@ msgid "Blend:"
msgstr "Mistura:"
#: editor/plugins/animation_blend_tree_editor_plugin.cpp
-#, fuzzy
msgid "Parameter Changed:"
-msgstr "Mudança de Parâmetro"
+msgstr "Parâmetro Alterado:"
#: editor/plugins/animation_blend_tree_editor_plugin.cpp
#: editor/plugins/animation_tree_player_editor_plugin.cpp
@@ -5318,11 +5305,11 @@ msgstr "Erro de ligação, tente novamente."
#: editor/plugins/asset_library_editor_plugin.cpp
msgid "Can't connect."
-msgstr "Não consigo conectar."
+msgstr "Incapaz de conectar."
#: editor/plugins/asset_library_editor_plugin.cpp
msgid "Can't connect to host:"
-msgstr "Não consigo ligar ao host:"
+msgstr "Incapaz de ligar ao host:"
#: editor/plugins/asset_library_editor_plugin.cpp
msgid "No response from host:"
@@ -5334,11 +5321,11 @@ msgstr "Sem resposta."
#: editor/plugins/asset_library_editor_plugin.cpp
msgid "Can't resolve hostname:"
-msgstr "Não consigo resolver hostname:"
+msgstr "Incapaz de resolver hostname:"
#: editor/plugins/asset_library_editor_plugin.cpp
msgid "Can't resolve."
-msgstr "Não consigo resolver."
+msgstr "Incapaz de resolver."
#: editor/plugins/asset_library_editor_plugin.cpp
msgid "Request failed, return code:"
@@ -5346,7 +5333,7 @@ msgstr "Falha na solicitação, código de retorno:"
#: editor/plugins/asset_library_editor_plugin.cpp
msgid "Cannot save response to:"
-msgstr "Não consigo guardar resposta para:"
+msgstr "Incapaz de guardar resposta para:"
#: editor/plugins/asset_library_editor_plugin.cpp
msgid "Write error."
@@ -5390,7 +5377,7 @@ msgstr "Falhou a verificação hash SHA-256"
#: editor/plugins/asset_library_editor_plugin.cpp
msgid "Asset Download Error:"
-msgstr "Erro na transferência de Ativo:"
+msgstr "Erro na Transferência de Recurso:"
#: editor/plugins/asset_library_editor_plugin.cpp
msgid "Downloading (%s / %s)..."
@@ -5426,7 +5413,7 @@ msgstr "Erro na transferência"
#: editor/plugins/asset_library_editor_plugin.cpp
msgid "Download for this asset is already in progress!"
-msgstr "A transferência deste Ativo já está em andamento!"
+msgstr "A transferência deste recurso já está em andamento!"
#: editor/plugins/asset_library_editor_plugin.cpp
msgid "Recently Updated"
@@ -5474,11 +5461,11 @@ msgstr "Todos"
#: editor/plugins/asset_library_editor_plugin.cpp
msgid "Search templates, projects, and demos"
-msgstr ""
+msgstr "Procurar modelos, projetos e demos"
#: editor/plugins/asset_library_editor_plugin.cpp
msgid "Search assets (excluding templates, projects, and demos)"
-msgstr ""
+msgstr "Procurar recursos (excluindo modelos, projetos e demos)"
#: editor/plugins/asset_library_editor_plugin.cpp
msgid "Import..."
@@ -5518,28 +5505,27 @@ msgstr "A Carregar..."
#: editor/plugins/asset_library_editor_plugin.cpp
msgid "Assets ZIP File"
-msgstr "Ficheiro ZIP de Ativos"
+msgstr "Ficheiro ZIP de Recursos"
#: editor/plugins/audio_stream_editor_plugin.cpp
msgid "Audio Preview Play/Pause"
-msgstr ""
+msgstr "Play/Pause Pré-visualização Ãudio"
#: editor/plugins/baked_lightmap_editor_plugin.cpp
msgid ""
"Can't determine a save path for lightmap images.\n"
"Save your scene and try again."
msgstr ""
-"Não consigo determinar um caminho para guardar imagens lightmap.\n"
+"Incapaz de determinar um caminho para guardar imagens lightmap.\n"
"Guarde a sua cena e tente novamente."
#: editor/plugins/baked_lightmap_editor_plugin.cpp
-#, fuzzy
msgid ""
"No meshes to bake. Make sure they contain an UV2 channel and that the 'Use "
"In Baked Light' and 'Generate Lightmap' flags are on."
msgstr ""
-"Não há malhas para consolidar. Assegure-se que contêm um canal UV2 e que a "
-"referência 'Bake Light' flag está on."
+"Não há malhas para consolidar. Assegure-se que contêm um canal UV2 e que "
+"'Use In Baked Light' e 'Generate Lightmap' estão ativas."
#: editor/plugins/baked_lightmap_editor_plugin.cpp
msgid "Failed creating lightmap images, make sure path is writable."
@@ -5680,6 +5666,18 @@ msgid "Move CanvasItem \"%s\" to (%d, %d)"
msgstr "Mover CanvasItem \"%s\" para (%d, %d)"
#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Locked"
+msgstr "Bloquear Seleção"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Grouped"
+msgstr "Grupos"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
msgid ""
"Children of containers have their anchors and margins values overridden by "
"their parent."
@@ -5781,13 +5779,12 @@ msgstr "Mudar âncoras"
#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp
-#, fuzzy
msgid ""
"Project Camera Override\n"
"Overrides the running project's camera with the editor viewport camera."
msgstr ""
-"Sobreposição de Câmara de Jogo\n"
-"Sobrepõe câmara de jogo com câmara viewport do editor."
+"Sobreposição de Câmara do Projeto\n"
+"Substitui a câmara do projeto pela câmara viewport do editor."
#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp
@@ -5863,31 +5860,27 @@ msgstr "Modo Seleção"
#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp
-#, fuzzy
msgid "Drag: Rotate selected node around pivot."
-msgstr "Remover nó ou transição selecionado."
+msgstr "Arrastar: Roda o nó selecionado à volta do pivô."
#: editor/plugins/canvas_item_editor_plugin.cpp
-#, fuzzy
msgid "Alt+Drag: Move selected node."
-msgstr "Alt+Arrastar: Mover"
+msgstr "Alt+Arrastar: Mover nó selecionado."
#: editor/plugins/canvas_item_editor_plugin.cpp
-#, fuzzy
msgid "V: Set selected node's pivot position."
-msgstr "Remover nó ou transição selecionado."
+msgstr "V: Define posição do pivô do nó selecionado."
#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp
-#, fuzzy
msgid "Alt+RMB: Show list of all nodes at position clicked, including locked."
msgstr ""
-"Mostra lista de todos os Objetos na posição clicada\n"
-"(o mesmo que Alt+RMB no modo seleção)."
+"Alt+RMB: Mostra lista de todos os nós na posição clicada, incluindo os "
+"trancados."
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "RMB: Add node at position clicked."
-msgstr ""
+msgstr "RMB: Adicionar nó na posição clicada."
#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp
@@ -6125,14 +6118,12 @@ msgid "Clear Pose"
msgstr "Limpar Pose"
#: editor/plugins/canvas_item_editor_plugin.cpp
-#, fuzzy
msgid "Add Node Here"
-msgstr "Adicionar Nó"
+msgstr "Adicionar Nó Aqui"
#: editor/plugins/canvas_item_editor_plugin.cpp
-#, fuzzy
msgid "Instance Scene Here"
-msgstr "Cena(s) da Instância"
+msgstr "Instância da Cena Aqui"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Multiply grid step by 2"
@@ -6148,49 +6139,43 @@ msgstr "Vista Pan"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Zoom to 3.125%"
-msgstr ""
+msgstr "Zoom a 3.125%"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Zoom to 6.25%"
-msgstr ""
+msgstr "Zoom a 6.25%"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Zoom to 12.5%"
-msgstr ""
+msgstr "Zoom a 12.5%"
#: editor/plugins/canvas_item_editor_plugin.cpp
-#, fuzzy
msgid "Zoom to 25%"
-msgstr "Diminuir Zoom"
+msgstr "Zoom a 25%"
#: editor/plugins/canvas_item_editor_plugin.cpp
-#, fuzzy
msgid "Zoom to 50%"
-msgstr "Diminuir Zoom"
+msgstr "Zoom a 50%"
#: editor/plugins/canvas_item_editor_plugin.cpp
-#, fuzzy
msgid "Zoom to 100%"
-msgstr "Diminuir Zoom"
+msgstr "Zoom a 100%"
#: editor/plugins/canvas_item_editor_plugin.cpp
-#, fuzzy
msgid "Zoom to 200%"
-msgstr "Diminuir Zoom"
+msgstr "Zoom a 200%"
#: editor/plugins/canvas_item_editor_plugin.cpp
-#, fuzzy
msgid "Zoom to 400%"
-msgstr "Diminuir Zoom"
+msgstr "Zoom a 400%"
#: editor/plugins/canvas_item_editor_plugin.cpp
-#, fuzzy
msgid "Zoom to 800%"
-msgstr "Diminuir Zoom"
+msgstr "Zoom a 800%"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Zoom to 1600%"
-msgstr ""
+msgstr "Zoom a 1600%"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Add %s"
@@ -6202,7 +6187,7 @@ msgstr "A adicionar %s..."
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Cannot instantiate multiple nodes without root."
-msgstr "Não consigo instanciar nós múltiplos sem raiz."
+msgstr "Incapaz de instanciar nós múltiplos sem raiz."
#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp editor/scene_tree_dock.cpp
@@ -6216,7 +6201,7 @@ msgstr "Erro a instanciar cena de %s"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Change Default Type"
-msgstr "Mudar Predefinição de Tipo"
+msgstr "Mudar Tipo Predefinido"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid ""
@@ -6428,14 +6413,13 @@ msgstr "Criar Forma Estática Trimesh"
#: editor/plugins/mesh_instance_editor_plugin.cpp
msgid "Can't create a single convex collision shape for the scene root."
-msgstr "Não consigo criar uma única forma convexa para a raiz da cena."
+msgstr "Incapaz de criar uma única forma convexa para a raiz da cena."
#: editor/plugins/mesh_instance_editor_plugin.cpp
msgid "Couldn't create a single convex collision shape."
msgstr "Não consegui criar uma forma única de colisão convexa."
#: editor/plugins/mesh_instance_editor_plugin.cpp
-#, fuzzy
msgid "Create Simplified Convex Shape"
msgstr "Criar Forma Convexa Simples"
@@ -6446,7 +6430,7 @@ msgstr "Criar Forma Convexa Simples"
#: editor/plugins/mesh_instance_editor_plugin.cpp
msgid "Can't create multiple convex collision shapes for the scene root."
msgstr ""
-"Não consigo criar múltiplas formas de colisão convexas para a raiz da cena."
+"Incapaz de criar múltiplas formas de colisão convexas para a raiz da cena."
#: editor/plugins/mesh_instance_editor_plugin.cpp
msgid "Couldn't create any collision shapes."
@@ -6473,9 +6457,8 @@ msgid "No mesh to debug."
msgstr "Nenhuma malha para depurar."
#: editor/plugins/mesh_instance_editor_plugin.cpp
-#, fuzzy
msgid "Mesh has no UV in layer %d."
-msgstr "O Modelo não tem UV nesta camada"
+msgstr "Malha não tem UV na camada %d."
#: editor/plugins/mesh_instance_editor_plugin.cpp
msgid "MeshInstance lacks a Mesh!"
@@ -6540,9 +6523,8 @@ msgstr ""
"Esta é a mais rápida (mas menos precisa) opção para deteção de colisão."
#: editor/plugins/mesh_instance_editor_plugin.cpp
-#, fuzzy
msgid "Create Simplified Convex Collision Sibling"
-msgstr "Criar Irmãos Únicos de Colisão Convexa"
+msgstr "Criar Irmãos de Colisão Convexa Simples"
#: editor/plugins/mesh_instance_editor_plugin.cpp
msgid ""
@@ -6556,14 +6538,14 @@ msgid "Create Multiple Convex Collision Siblings"
msgstr "Criar Vários Irmãos de Colisão Convexa"
#: editor/plugins/mesh_instance_editor_plugin.cpp
-#, fuzzy
msgid ""
"Creates a polygon-based collision shape.\n"
"This is a performance middle-ground between a single convex collision and a "
"polygon-based collision."
msgstr ""
"Cria uma forma de colisão baseada em polígonos.\n"
-"Esta uma opção de desempenho intermédio entre as duas opções acima."
+"Esta uma opção de desempenho intermédio entre uma colisão convexa única e "
+"uma colisão baseada em polígonos."
#: editor/plugins/mesh_instance_editor_plugin.cpp
msgid "Create Outline Mesh..."
@@ -6630,7 +6612,13 @@ msgid "Remove Selected Item"
msgstr "Remover item selecionado"
#: editor/plugins/mesh_library_editor_plugin.cpp
-msgid "Import from Scene"
+#, fuzzy
+msgid "Import from Scene (Ignore Transforms)"
+msgstr "Importar da Cena"
+
+#: editor/plugins/mesh_library_editor_plugin.cpp
+#, fuzzy
+msgid "Import from Scene (Apply Transforms)"
msgstr "Importar da Cena"
#: editor/plugins/mesh_library_editor_plugin.cpp
@@ -7205,24 +7193,30 @@ msgid "ResourcePreloader"
msgstr "ResourcePreloader"
#: editor/plugins/room_manager_editor_plugin.cpp
-#, fuzzy
msgid "Flip Portals"
-msgstr "Inverter na Horizontal"
+msgstr "Inverter Portais"
#: editor/plugins/room_manager_editor_plugin.cpp
-#, fuzzy
msgid "Room Generate Points"
-msgstr "Contagem de Pontos gerados:"
+msgstr "Quarto Gerar Pontos"
#: editor/plugins/room_manager_editor_plugin.cpp
-#, fuzzy
msgid "Generate Points"
-msgstr "Contagem de Pontos gerados:"
+msgstr "Gerar Pontos"
#: editor/plugins/room_manager_editor_plugin.cpp
-#, fuzzy
msgid "Flip Portal"
-msgstr "Inverter na Horizontal"
+msgstr "Inverter Portal"
+
+#: editor/plugins/room_manager_editor_plugin.cpp
+#, fuzzy
+msgid "Occluder Set Transform"
+msgstr "Limpar Transformação"
+
+#: editor/plugins/room_manager_editor_plugin.cpp
+#, fuzzy
+msgid "Center Node"
+msgstr "Criar Nó"
#: editor/plugins/root_motion_editor_plugin.cpp
msgid "AnimationTree has no path set to an AnimationPlayer"
@@ -7246,7 +7240,7 @@ msgstr "Erro ao escrever TextFile:"
#: editor/plugins/script_editor_plugin.cpp
msgid "Could not load file at:"
-msgstr "Não consigo carregar ficheiro em:"
+msgstr "Incapaz de carregar ficheiro em:"
#: editor/plugins/script_editor_plugin.cpp
msgid "Error saving file!"
@@ -7282,7 +7276,7 @@ msgstr "Guardar Ficheiro Como..."
#: editor/plugins/script_editor_plugin.cpp
msgid "Can't obtain the script for running."
-msgstr "Não consigo obter o script para executar."
+msgstr "Incapaz de obter o script para executar."
#: editor/plugins/script_editor_plugin.cpp
msgid "Script failed reloading, check console for errors."
@@ -7540,7 +7534,7 @@ msgstr "Só podem ser largados recursos do Sistema de Ficheiros ."
#: editor/plugins/script_text_editor.cpp
#: modules/visual_script/visual_script_editor.cpp
msgid "Can't drop nodes because script '%s' is not used in this scene."
-msgstr "Não consigo largar nós porque o script '%s' não é usado neste cena."
+msgstr "Incapaz de largar nós porque o script '%s' não é usado neste cena."
#: editor/plugins/script_text_editor.cpp
msgid "Lookup Symbol"
@@ -7724,12 +7718,14 @@ msgid "Skeleton2D"
msgstr "Esqueleto2D"
#: editor/plugins/skeleton_2d_editor_plugin.cpp
-msgid "Make Rest Pose (From Bones)"
-msgstr "Criar Pose de Descanso (a partir de Ossos)"
+#, fuzzy
+msgid "Reset to Rest Pose"
+msgstr "Pôr Ossos em Pose de Descanso"
#: editor/plugins/skeleton_2d_editor_plugin.cpp
-msgid "Set Bones to Rest Pose"
-msgstr "Pôr Ossos em Pose de Descanso"
+#, fuzzy
+msgid "Overwrite Rest Pose"
+msgstr "Sobrescrever"
#: editor/plugins/skeleton_editor_plugin.cpp
msgid "Create physical bones"
@@ -7756,6 +7752,71 @@ msgid "Perspective"
msgstr "Perspetiva"
#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Top Orthogonal"
+msgstr "Ortogonal"
+
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Top Perspective"
+msgstr "Perspetiva"
+
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Bottom Orthogonal"
+msgstr "Ortogonal"
+
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Bottom Perspective"
+msgstr "Perspetiva"
+
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Left Orthogonal"
+msgstr "Ortogonal"
+
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Right Perspective"
+msgstr "Perspetiva"
+
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Right Orthogonal"
+msgstr "Ortogonal"
+
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Front Orthogonal"
+msgstr "Ortogonal"
+
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Front Perspective"
+msgstr "Perspetiva"
+
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Rear Orthogonal"
+msgstr "Ortogonal"
+
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Rear Perspective"
+msgstr "Perspetiva"
+
+#. TRANSLATORS: This will be appended to the view name when Auto Orthogonal is enabled.
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid " [auto]"
+msgstr ""
+
+#. TRANSLATORS: This will be appended to the view name when Portal Occulusion is enabled.
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid " [portals active]"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
msgid "Transform Aborted."
msgstr "Transformação abortada."
@@ -7782,20 +7843,17 @@ msgid "None"
msgstr "Nenhum"
#: editor/plugins/spatial_editor_plugin.cpp
-#, fuzzy
msgid "Rotate"
-msgstr "Modo Rodar"
+msgstr "Rodar"
#. TRANSLATORS: This refers to the movement that changes the position of an object.
#: editor/plugins/spatial_editor_plugin.cpp
-#, fuzzy
msgid "Translate"
-msgstr "Translação:"
+msgstr "Translação"
#: editor/plugins/spatial_editor_plugin.cpp
-#, fuzzy
msgid "Scale"
-msgstr "Escala:"
+msgstr "Escala"
#: editor/plugins/spatial_editor_plugin.cpp
msgid "Scaling: "
@@ -7818,52 +7876,44 @@ msgid "Animation Key Inserted."
msgstr "Chave de Animação inserida."
#: editor/plugins/spatial_editor_plugin.cpp
-#, fuzzy
msgid "Pitch:"
-msgstr "Inclinação"
+msgstr "Inclinação:"
#: editor/plugins/spatial_editor_plugin.cpp
msgid "Yaw:"
-msgstr ""
+msgstr "Rotação:"
#: editor/plugins/spatial_editor_plugin.cpp
-#, fuzzy
msgid "Size:"
-msgstr "Tamanho: "
+msgstr "Tamanho:"
#: editor/plugins/spatial_editor_plugin.cpp
-#, fuzzy
msgid "Objects Drawn:"
-msgstr "Objetos desenhados"
+msgstr "Objetos Desenhados:"
#: editor/plugins/spatial_editor_plugin.cpp
-#, fuzzy
msgid "Material Changes:"
-msgstr "Mudanças de Material"
+msgstr "Mudanças de Material:"
#: editor/plugins/spatial_editor_plugin.cpp
-#, fuzzy
msgid "Shader Changes:"
-msgstr "Alterações do Shader"
+msgstr "Mudanças do Shader:"
#: editor/plugins/spatial_editor_plugin.cpp
-#, fuzzy
msgid "Surface Changes:"
-msgstr "Mudanças de superfície"
+msgstr "Mudanças da Superfície:"
#: editor/plugins/spatial_editor_plugin.cpp
-#, fuzzy
msgid "Draw Calls:"
-msgstr "Chamadas de desenho"
+msgstr "Chamadas de Desenho:"
#: editor/plugins/spatial_editor_plugin.cpp
-#, fuzzy
msgid "Vertices:"
-msgstr "Vértices"
+msgstr "Vértices:"
#: editor/plugins/spatial_editor_plugin.cpp
msgid "FPS: %d (%s ms)"
-msgstr ""
+msgstr "FPS: %d (%s ms)"
#: editor/plugins/spatial_editor_plugin.cpp
msgid "Top View."
@@ -7874,42 +7924,22 @@ msgid "Bottom View."
msgstr "Vista de fundo."
#: editor/plugins/spatial_editor_plugin.cpp
-msgid "Bottom"
-msgstr "Fundo"
-
-#: editor/plugins/spatial_editor_plugin.cpp
msgid "Left View."
msgstr "Vista de esquerda."
#: editor/plugins/spatial_editor_plugin.cpp
-msgid "Left"
-msgstr "Esquerda"
-
-#: editor/plugins/spatial_editor_plugin.cpp
msgid "Right View."
msgstr "Vista de direita."
#: editor/plugins/spatial_editor_plugin.cpp
-msgid "Right"
-msgstr "Direita"
-
-#: editor/plugins/spatial_editor_plugin.cpp
msgid "Front View."
msgstr "Vista de frente."
#: editor/plugins/spatial_editor_plugin.cpp
-msgid "Front"
-msgstr "Frente"
-
-#: editor/plugins/spatial_editor_plugin.cpp
msgid "Rear View."
msgstr "Vista de trás."
#: editor/plugins/spatial_editor_plugin.cpp
-msgid "Rear"
-msgstr "Trás"
-
-#: editor/plugins/spatial_editor_plugin.cpp
msgid "Align Transform with View"
msgstr "Alinhar Transformação com Vista"
@@ -8018,9 +8048,8 @@ msgid "Freelook Slow Modifier"
msgstr "Freelook Modificador de Lentidão"
#: editor/plugins/spatial_editor_plugin.cpp
-#, fuzzy
msgid "Toggle Camera Preview"
-msgstr "Mudar tamanho da Câmara"
+msgstr "Alternar Pré-visualização da Câmara"
#: editor/plugins/spatial_editor_plugin.cpp
msgid "View Rotation Locked"
@@ -8042,9 +8071,8 @@ msgstr ""
"Não é uma indicação fiável do desempenho do jogo."
#: editor/plugins/spatial_editor_plugin.cpp
-#, fuzzy
msgid "Convert Rooms"
-msgstr "Converter em %s"
+msgstr "Converter Quartos"
#: editor/plugins/spatial_editor_plugin.cpp
msgid "XForm Dialog"
@@ -8066,7 +8094,6 @@ msgstr ""
"(\"raios X\")."
#: editor/plugins/spatial_editor_plugin.cpp
-#, fuzzy
msgid "Snap Nodes to Floor"
msgstr "Ajustar Nós ao Fundo"
@@ -8180,9 +8207,13 @@ msgid "View Grid"
msgstr "Ver grelha"
#: editor/plugins/spatial_editor_plugin.cpp
-#, fuzzy
msgid "View Portal Culling"
-msgstr "Configuração do Viewport"
+msgstr "Ver Culling do Portal"
+
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "View Occlusion Culling"
+msgstr "Ver Culling do Portal"
#: editor/plugins/spatial_editor_plugin.cpp
#: modules/gridmap/grid_map_editor_plugin.cpp
@@ -8250,8 +8281,9 @@ msgid "Post"
msgstr "Pós"
#: editor/plugins/spatial_editor_plugin.cpp
-msgid "Nameless gizmo"
-msgstr "Bugiganga sem Nome"
+#, fuzzy
+msgid "Unnamed Gizmo"
+msgstr "Projeto sem nome"
#: editor/plugins/sprite_editor_plugin.cpp
msgid "Create Mesh2D"
@@ -8291,7 +8323,7 @@ msgstr "Sprite está vazia!"
#: editor/plugins/sprite_editor_plugin.cpp
msgid "Can't convert a sprite using animation frames to mesh."
-msgstr "Não consigo converter sprite com frames de animação para malha."
+msgstr "Incapaz de converter sprite com frames de animação para malha."
#: editor/plugins/sprite_editor_plugin.cpp
msgid "Invalid geometry, can't replace by mesh."
@@ -8303,7 +8335,7 @@ msgstr "Converter para Mesh2D"
#: editor/plugins/sprite_editor_plugin.cpp
msgid "Invalid geometry, can't create polygon."
-msgstr "Geometria inválida, não consigo criar polígono."
+msgstr "Geometria inválida, incapaz de criar polígono."
#: editor/plugins/sprite_editor_plugin.cpp
msgid "Convert to Polygon2D"
@@ -8311,7 +8343,7 @@ msgstr "Converter para Polygon2D"
#: editor/plugins/sprite_editor_plugin.cpp
msgid "Invalid geometry, can't create collision polygon."
-msgstr "Geometria inválida, não consigo criar polígono de colisão."
+msgstr "Geometria inválida, incapaz de criar polígono de colisão."
#: editor/plugins/sprite_editor_plugin.cpp
msgid "Create CollisionPolygon2D Sibling"
@@ -8319,7 +8351,7 @@ msgstr "Criar Irmão de CollisionPolygon2D"
#: editor/plugins/sprite_editor_plugin.cpp
msgid "Invalid geometry, can't create light occluder."
-msgstr "Geometria inválida, não consigo criar oclusor de luz."
+msgstr "Geometria inválida, incapaz de criar oclusor de luz."
#: editor/plugins/sprite_editor_plugin.cpp
msgid "Create LightOccluder2D Sibling"
@@ -8502,221 +8534,196 @@ msgid "TextureRegion"
msgstr "TextureRegion"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Colors"
-msgstr "Cor"
+msgstr "Cores"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Fonts"
-msgstr "Letra"
+msgstr "Fontes"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Icons"
-msgstr "Ãcone"
+msgstr "Ãcones"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Styleboxes"
-msgstr "StyleBox"
+msgstr "Caixas de Estilo"
#: editor/plugins/theme_editor_plugin.cpp
msgid "{num} color(s)"
-msgstr ""
+msgstr "{num} cor(es)"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "No colors found."
-msgstr "Sub-recurso não encontrado."
+msgstr "Cores não encontradas."
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "{num} constant(s)"
-msgstr "Constantes"
+msgstr "{num} constante(s)"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "No constants found."
-msgstr "Constante Cor."
+msgstr "Constantes não encontradas."
#: editor/plugins/theme_editor_plugin.cpp
msgid "{num} font(s)"
-msgstr ""
+msgstr "{num} fonte(s)"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "No fonts found."
-msgstr "Não encontrado!"
+msgstr "Fontes não encontradas."
#: editor/plugins/theme_editor_plugin.cpp
msgid "{num} icon(s)"
-msgstr ""
+msgstr "{num} ícone(s)"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "No icons found."
-msgstr "Não encontrado!"
+msgstr "Ãcones não encontrados."
#: editor/plugins/theme_editor_plugin.cpp
msgid "{num} stylebox(es)"
-msgstr ""
+msgstr "{num} stylebox(es)"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "No styleboxes found."
-msgstr "Sub-recurso não encontrado."
+msgstr "Styleboxes não encontradas."
#: editor/plugins/theme_editor_plugin.cpp
msgid "{num} currently selected"
-msgstr ""
+msgstr "{num} selecionado atualmente"
#: editor/plugins/theme_editor_plugin.cpp
msgid "Nothing was selected for the import."
-msgstr ""
+msgstr "Nada foi selecionado para importação."
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Importing Theme Items"
-msgstr "Importar tema"
+msgstr "A Importar Itens do Tema"
#: editor/plugins/theme_editor_plugin.cpp
msgid "Importing items {n}/{n}"
-msgstr ""
+msgstr "A importar itens {n}/{n}"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Updating the editor"
-msgstr "Sair do Editor?"
+msgstr "A atualizar o editor"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Finalizing"
-msgstr "A analisar"
+msgstr "A finalizar"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Filter:"
-msgstr "Filtros:"
+msgstr "Filtro:"
#: editor/plugins/theme_editor_plugin.cpp
msgid "With Data"
-msgstr ""
+msgstr "Com Dados"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Select by data type:"
-msgstr "Selecione um Nó"
+msgstr "Selecionar por tipo de dados:"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Select all visible color items."
-msgstr "Selecionar uma separação para a apagar."
+msgstr "Selecionar todos os itens de cor visíveis."
#: editor/plugins/theme_editor_plugin.cpp
msgid "Select all visible color items and their data."
-msgstr ""
+msgstr "Selecionar todos os itens cor visíveis e os seus dados."
#: editor/plugins/theme_editor_plugin.cpp
msgid "Deselect all visible color items."
-msgstr ""
+msgstr "Desselecionar todos os itens cor visíveis."
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Select all visible constant items."
-msgstr "Selecione primeiro um item de configuração!"
+msgstr "Selecione todos os itens constantes visíveis."
#: editor/plugins/theme_editor_plugin.cpp
msgid "Select all visible constant items and their data."
-msgstr ""
+msgstr "Selecionar todos os itens constante visíveis e os seus dados."
#: editor/plugins/theme_editor_plugin.cpp
msgid "Deselect all visible constant items."
-msgstr ""
+msgstr "Desselecionar todos os itens constante visíveis."
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Select all visible font items."
-msgstr "Selecione primeiro um item de configuração!"
+msgstr "Selecione todos os itens fonte visíveis."
#: editor/plugins/theme_editor_plugin.cpp
msgid "Select all visible font items and their data."
-msgstr ""
+msgstr "Selecionar todos os itens fonte visíveis e os seus dados."
#: editor/plugins/theme_editor_plugin.cpp
msgid "Deselect all visible font items."
-msgstr ""
+msgstr "Desselecionar todos os itens fonte visíveis."
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Select all visible icon items."
-msgstr "Selecione primeiro um item de configuração!"
+msgstr "Selecione todos os itens ícones visíveis."
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Select all visible icon items and their data."
-msgstr "Selecione primeiro um item de configuração!"
+msgstr "Selecione todos os itens ícones visíveis e os seus dados."
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Deselect all visible icon items."
-msgstr "Selecione primeiro um item de configuração!"
+msgstr "Desselecionar todos os itens ícone visíveis."
#: editor/plugins/theme_editor_plugin.cpp
msgid "Select all visible stylebox items."
-msgstr ""
+msgstr "Selecionar todos os itens stylebox visíveis."
#: editor/plugins/theme_editor_plugin.cpp
msgid "Select all visible stylebox items and their data."
-msgstr ""
+msgstr "Selecionar todos os itens stylebox visíveis e os seus dados."
#: editor/plugins/theme_editor_plugin.cpp
msgid "Deselect all visible stylebox items."
-msgstr ""
+msgstr "Desselecionar todos os itens stylebox visíveis."
#: editor/plugins/theme_editor_plugin.cpp
msgid ""
"Caution: Adding icon data may considerably increase the size of your Theme "
"resource."
msgstr ""
+"Aviso: Adicionar dados de ícone pode aumentar consideravelmente o tamanho do "
+"recurso Tema."
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Collapse types."
-msgstr "Colapsar Tudo"
+msgstr "Colapsar tipos."
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Expand types."
-msgstr "Expandir Tudo"
+msgstr "Expandir tipos."
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Select all Theme items."
-msgstr "Selecionar Ficheiro de Modelo"
+msgstr "Selecione todos os itens Tema."
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Select With Data"
-msgstr "Selecionar Pontos"
+msgstr "Selecionar Com Dados"
#: editor/plugins/theme_editor_plugin.cpp
msgid "Select all Theme items with item data."
-msgstr ""
+msgstr "Selecionar todos os itens Tema e os seus dados."
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Deselect All"
-msgstr "Selecionar Tudo"
+msgstr "Desselecionar Tudo"
#: editor/plugins/theme_editor_plugin.cpp
msgid "Deselect all Theme items."
-msgstr ""
+msgstr "Desselecionar todos os itens Tema."
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Import Selected"
-msgstr "Importar Cena"
+msgstr "Importar Selecionado"
#: editor/plugins/theme_editor_plugin.cpp
msgid ""
@@ -8732,34 +8739,28 @@ msgid ""
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Remove All Color Items"
-msgstr "Remover Todos os Itens"
+msgstr "Remover Todos os Itens Cor"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Rename Item"
-msgstr "Remover item"
+msgstr "Renomear Item"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Remove All Constant Items"
-msgstr "Remover Todos os Itens"
+msgstr "Remover Todos os Itens Constante"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Remove All Font Items"
-msgstr "Remover Todos os Itens"
+msgstr "Remover Todos os Itens Fonte"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Remove All Icon Items"
-msgstr "Remover Todos os Itens"
+msgstr "Remover Todos os Itens Ãcone"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Remove All StyleBox Items"
-msgstr "Remover Todos os Itens"
+msgstr "Remover Todos os Itens StyleBox"
#: editor/plugins/theme_editor_plugin.cpp
msgid ""
@@ -8768,233 +8769,196 @@ msgid ""
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Add Color Item"
-msgstr "Adicionar Itens de Classe"
+msgstr "Adicionar Item Cor"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Add Constant Item"
-msgstr "Adicionar Itens de Classe"
+msgstr "Adicionar Item Constante"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Add Font Item"
-msgstr "Adicionar item"
+msgstr "Adicionar Item Fonte"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Add Icon Item"
-msgstr "Adicionar item"
+msgstr "Adicionar Item Ãcone"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Add Stylebox Item"
-msgstr "Adicionar Todos os Itens"
+msgstr "Adicionar Item Stylebox"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Rename Color Item"
-msgstr "Remover Itens de Classe"
+msgstr "Renomear Item Cor"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Rename Constant Item"
-msgstr "Remover Itens de Classe"
+msgstr "Renomear Item Constante"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Rename Font Item"
-msgstr "Renomear Nó"
+msgstr "Renomear Item Fonte"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Rename Icon Item"
-msgstr "Renomear Nó"
+msgstr "Renomear Item Ãcone"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Rename Stylebox Item"
-msgstr "Remover item selecionado"
+msgstr "Renomear Item Stylebox"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Invalid file, not a Theme resource."
-msgstr "Ficheiro inválido, não é um Modelo válido de barramento de áudio."
+msgstr "Ficheiro inválido, não é um recurso de Tema."
#: editor/plugins/theme_editor_plugin.cpp
msgid "Invalid file, same as the edited Theme resource."
-msgstr ""
+msgstr "Ficheiro inválido, o mesmo que o recurso do Tema editado."
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Manage Theme Items"
-msgstr "Gerir Modelos"
+msgstr "Gerir Itens de Tema"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Edit Items"
-msgstr "Item Editável"
+msgstr "Editar Itens"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Types:"
-msgstr "Tipo:"
+msgstr "Tipos:"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Add Type:"
-msgstr "Tipo:"
+msgstr "Adicionar Tipo:"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Add Item:"
-msgstr "Adicionar item"
+msgstr "Adicionar Item:"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Add StyleBox Item"
-msgstr "Adicionar Todos os Itens"
+msgstr "Adicionar Item StyleBox"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Remove Items:"
-msgstr "Remover item"
+msgstr "Remover Itens:"
#: editor/plugins/theme_editor_plugin.cpp
msgid "Remove Class Items"
msgstr "Remover Itens de Classe"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Remove Custom Items"
-msgstr "Remover Itens de Classe"
+msgstr "Remover Itens Personalizados"
#: editor/plugins/theme_editor_plugin.cpp
msgid "Remove All Items"
msgstr "Remover Todos os Itens"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Add Theme Item"
-msgstr "Itens do tema GUI"
+msgstr "Adicionar Item Tema"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Old Name:"
-msgstr "Nome do Nó:"
+msgstr "Nome Antigo:"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Import Items"
-msgstr "Importar tema"
+msgstr "Importar Itens"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Default Theme"
-msgstr "Predefinição"
+msgstr "Tema Predefinido"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Editor Theme"
-msgstr "Editar Tema"
+msgstr "Editor de Tema"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Select Another Theme Resource:"
-msgstr "Apagar recurso"
+msgstr "Selecionar Outro Recurso Tema:"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Another Theme"
-msgstr "Importar tema"
+msgstr "Outro Tema"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Confirm Item Rename"
-msgstr "Anim Renomear Pista"
+msgstr "Confirmar Renomear Item"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Cancel Item Rename"
-msgstr "Renomear em Massa"
+msgstr "Cancelar Renomear Item"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Override Item"
-msgstr "Sobrepõe"
+msgstr "Sobrepor Item"
#: editor/plugins/theme_editor_plugin.cpp
msgid "Unpin this StyleBox as a main style."
-msgstr ""
+msgstr "Desafixar este StyleBox como um estilo principal."
#: editor/plugins/theme_editor_plugin.cpp
msgid ""
"Pin this StyleBox as a main style. Editing its properties will update the "
"same properties in all other StyleBoxes of this type."
msgstr ""
+"Fixar este StyleBox como um estilo principal. Editar as propriedades vai "
+"atualizar as mesmas em todos os StyleBoxes deste tipo."
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Add Type"
-msgstr "Tipo"
+msgstr "Adicionar Tipo"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Add Item Type"
-msgstr "Adicionar item"
+msgstr "Adicionar Tipo de Item"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Node Types:"
-msgstr "Tipo de nó"
+msgstr "Tipos de Nó:"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Show Default"
-msgstr "Carregar Predefinição"
+msgstr "Mostrar Predefinição"
#: editor/plugins/theme_editor_plugin.cpp
msgid "Show default type items alongside items that have been overridden."
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Override All"
-msgstr "Sobrepõe"
+msgstr "Sobrepor Tudo"
#: editor/plugins/theme_editor_plugin.cpp
msgid "Override all default type items."
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Theme:"
-msgstr "Tema"
+msgstr "Tema:"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Manage Items..."
-msgstr "Gerir Modelos de Exportação..."
+msgstr "Gerir Itens..."
#: editor/plugins/theme_editor_plugin.cpp
msgid "Add, remove, organize and import Theme items."
-msgstr ""
+msgstr "Adicionar, remover, organizar e importar itens Tema."
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Add Preview"
-msgstr "Pré-visualização"
+msgstr "Adicionar Pré-visualização"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Default Preview"
-msgstr "Atualizar Pré-visualização"
+msgstr "Pré-visualização Predefinida"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Select UI Scene:"
-msgstr "Selecione uma Fonte Malha:"
+msgstr "Selecione Cena UI:"
#: editor/plugins/theme_editor_preview.cpp
msgid ""
@@ -9035,9 +8999,8 @@ msgid "Checked Radio Item"
msgstr "Item Rádio Marcado"
#: editor/plugins/theme_editor_preview.cpp
-#, fuzzy
msgid "Named Separator"
-msgstr "Sep. Nomeado"
+msgstr "Separador Nomeado"
#: editor/plugins/theme_editor_preview.cpp
msgid "Submenu"
@@ -9096,9 +9059,8 @@ msgid "Invalid PackedScene resource, must have a Control node at its root."
msgstr ""
#: editor/plugins/theme_editor_preview.cpp
-#, fuzzy
msgid "Invalid file, not a PackedScene resource."
-msgstr "Ficheiro inválido, não é um Modelo válido de barramento de áudio."
+msgstr "Ficheiro inválido, não é um recurso PackedScene."
#: editor/plugins/theme_editor_preview.cpp
msgid "Reload the scene to reflect its most actual state."
@@ -10495,9 +10457,8 @@ msgid "VisualShader"
msgstr "VIsualShader"
#: editor/plugins/visual_shader_editor_plugin.cpp
-#, fuzzy
msgid "Edit Visual Property:"
-msgstr "Editar Propriedade Visual"
+msgstr "Editar Propriedade Visual:"
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Visual Shader Mode Changed"
@@ -10624,9 +10585,8 @@ msgid "Script"
msgstr "Script"
#: editor/project_export.cpp
-#, fuzzy
msgid "GDScript Export Mode:"
-msgstr "Modo Exportação de Script:"
+msgstr "Modo de Exportação GDScript:"
#: editor/project_export.cpp
msgid "Text"
@@ -10634,21 +10594,19 @@ msgstr "Texto"
#: editor/project_export.cpp
msgid "Compiled Bytecode (Faster Loading)"
-msgstr ""
+msgstr "Bytecode compilado (Carregamento mais Rápido)"
#: editor/project_export.cpp
msgid "Encrypted (Provide Key Below)"
msgstr "Encriptado (Fornecer Chave em Baixo)"
#: editor/project_export.cpp
-#, fuzzy
msgid "Invalid Encryption Key (must be 64 hexadecimal characters long)"
-msgstr "Chave de Encriptação Inválida (tem de ter 64 caracteres)"
+msgstr "Chave de Encriptação Inválida (tem de ter 64 caracteres hexadecimais)"
#: editor/project_export.cpp
-#, fuzzy
msgid "GDScript Encryption Key (256-bits as hexadecimal):"
-msgstr "Chave de Encriptação de Script (Hexadecimal 256-bits):"
+msgstr "Chave de Encriptação GDScript (hexadecimal 256-bits):"
#: editor/project_export.cpp
msgid "Export PCK/Zip"
@@ -10722,13 +10680,12 @@ msgid "Imported Project"
msgstr "Projeto importado"
#: editor/project_manager.cpp
-#, fuzzy
msgid "Invalid project name."
-msgstr "Nome do Projeto Inválido."
+msgstr "Nome do projeto inválido."
#: editor/project_manager.cpp
msgid "Couldn't create folder."
-msgstr "Não consigo criar pasta."
+msgstr "Incapaz de criar pasta."
#: editor/project_manager.cpp
msgid "There is already a folder in this path with the specified name."
@@ -10752,11 +10709,11 @@ msgstr ""
#: editor/project_manager.cpp
msgid "Couldn't edit project.godot in project path."
-msgstr "Não consigo editar project.godot no caminho do projeto."
+msgstr "Incapaz de editar project.godot no caminho do projeto."
#: editor/project_manager.cpp
msgid "Couldn't create project.godot in project path."
-msgstr "Não consigo criar project.godot no caminho do projeto."
+msgstr "Incapaz de criar project.godot no caminho do projeto."
#: editor/project_manager.cpp
msgid "Error opening package file, not in ZIP format."
@@ -10870,7 +10827,7 @@ msgstr "Erro: Projeto inexistente no sistema de ficheiros."
#: editor/project_manager.cpp
msgid "Can't open project at '%s'."
-msgstr "Não consigo abrir projeto em '%s'."
+msgstr "Incapaz de abrir projeto em '%s'."
#: editor/project_manager.cpp
msgid "Are you sure to open more than one project?"
@@ -10932,7 +10889,7 @@ msgid ""
"Please edit the project and set the main scene in the Project Settings under "
"the \"Application\" category."
msgstr ""
-"Não consigo executar o projeto: cena principal não definida.\n"
+"Incapaz de executar o projeto: cena principal não definida.\n"
"Edite o projeto e defina a cena principal em Configurações do Projeto dentro "
"da categoria \"Application\"."
@@ -10941,7 +10898,7 @@ msgid ""
"Can't run project: Assets need to be imported.\n"
"Please edit the project to trigger the initial import."
msgstr ""
-"Não consigo executar o projeto: Ativos têm de ser importados.\n"
+"Incapaz de executar o projeto: Recursos têm de ser importados.\n"
"Edite o projeto para desencadear a importação inicial."
#: editor/project_manager.cpp
@@ -10949,14 +10906,12 @@ msgid "Are you sure to run %d projects at once?"
msgstr "Está seguro que quer executar %d projetos em simultâneo?"
#: editor/project_manager.cpp
-#, fuzzy
msgid "Remove %d projects from the list?"
-msgstr "Selecionar aparelho da lista"
+msgstr "Remover %d projetos da lista?"
#: editor/project_manager.cpp
-#, fuzzy
msgid "Remove this project from the list?"
-msgstr "Selecionar aparelho da lista"
+msgstr "Remover este projeto da lista?"
#: editor/project_manager.cpp
msgid ""
@@ -10989,9 +10944,8 @@ msgid "Project Manager"
msgstr "Gestor de Projetos"
#: editor/project_manager.cpp
-#, fuzzy
msgid "Local Projects"
-msgstr "Projetos"
+msgstr "Projetos Locais"
#: editor/project_manager.cpp
msgid "Loading, please wait..."
@@ -11002,41 +10956,36 @@ msgid "Last Modified"
msgstr "Última modificação"
#: editor/project_manager.cpp
-#, fuzzy
msgid "Edit Project"
-msgstr "Exportar Projeto"
+msgstr "Editar Projeto"
#: editor/project_manager.cpp
-#, fuzzy
msgid "Run Project"
-msgstr "Renomear Projeto"
+msgstr "Executar Projeto"
#: editor/project_manager.cpp
msgid "Scan"
-msgstr "Analisar"
+msgstr "Pequisar"
#: editor/project_manager.cpp
-#, fuzzy
msgid "Scan Projects"
-msgstr "Projetos"
+msgstr "Pesquisar Projetos"
#: editor/project_manager.cpp
msgid "Select a Folder to Scan"
-msgstr "Selecione uma pasta para analisar"
+msgstr "Selecione uma Pasta para Pesquisar"
#: editor/project_manager.cpp
msgid "New Project"
msgstr "Novo Projeto"
#: editor/project_manager.cpp
-#, fuzzy
msgid "Import Project"
-msgstr "Projeto importado"
+msgstr "Importar Projeto"
#: editor/project_manager.cpp
-#, fuzzy
msgid "Remove Project"
-msgstr "Renomear Projeto"
+msgstr "Remover Projeto"
#: editor/project_manager.cpp
msgid "Remove Missing"
@@ -11047,9 +10996,8 @@ msgid "About"
msgstr "Sobre"
#: editor/project_manager.cpp
-#, fuzzy
msgid "Asset Library Projects"
-msgstr "Biblioteca de Ativos"
+msgstr "Projetos Biblioteca de Recursos"
#: editor/project_manager.cpp
msgid "Restart Now"
@@ -11065,7 +11013,7 @@ msgstr ""
#: editor/project_manager.cpp
msgid "Can't run project"
-msgstr "Não consigo executar o Projeto"
+msgstr "Incapaz de executar o projeto"
#: editor/project_manager.cpp
msgid ""
@@ -11073,22 +11021,20 @@ msgid ""
"Would you like to explore official example projects in the Asset Library?"
msgstr ""
"Atualmente não tem quaisquer projetos.\n"
-"Gostaria de explorar os projetos de exemplo oficiais na Biblioteca de Ativos?"
+"Gostaria de explorar os projetos de exemplo oficiais na Biblioteca de "
+"Recursos?"
#: editor/project_manager.cpp
-#, fuzzy
msgid "Filter projects"
-msgstr "Propriedades do Filtro"
+msgstr "Filtrar projetos"
#: editor/project_manager.cpp
-#, fuzzy
msgid ""
"This field filters projects by name and last path component.\n"
"To filter projects by name and full path, the query must contain at least "
"one `/` character."
msgstr ""
-"A caixa de pesquisa filtra projetos por nome e último componente do "
-"caminho.\n"
+"Este campo filtra projetos por nome e última componente do caminho.\n"
"Para filtrar projetos por nome e caminho completo, a pesquisa tem de conter "
"pelo menos um caráter `/`."
@@ -11098,7 +11044,7 @@ msgstr "Tecla "
#: editor/project_settings_editor.cpp
msgid "Physical Key"
-msgstr ""
+msgstr "Chave Física"
#: editor/project_settings_editor.cpp
msgid "Joy Button"
@@ -11146,7 +11092,7 @@ msgstr "Aparelho"
#: editor/project_settings_editor.cpp
msgid " (Physical)"
-msgstr ""
+msgstr " (Físico)"
#: editor/project_settings_editor.cpp editor/settings_config_dialog.cpp
msgid "Press a Key..."
@@ -11289,23 +11235,20 @@ msgid "Override for Feature"
msgstr "Sobrepor por Característica"
#: editor/project_settings_editor.cpp
-#, fuzzy
msgid "Add %d Translations"
-msgstr "Adicionar tradução"
+msgstr "Adicionar %t Traduções"
#: editor/project_settings_editor.cpp
msgid "Remove Translation"
msgstr "Remover tradução"
#: editor/project_settings_editor.cpp
-#, fuzzy
msgid "Translation Resource Remap: Add %d Path(s)"
-msgstr "Recurso Remap Adicionar Remap"
+msgstr "Remapear Recurso Tradução: Adicionar %d Caminho(s)"
#: editor/project_settings_editor.cpp
-#, fuzzy
msgid "Translation Resource Remap: Add %d Remap(s)"
-msgstr "Recurso Remap Adicionar Remap"
+msgstr "Remapear Recurso Tradução: Adicionar %d Remap(s)"
#: editor/project_settings_editor.cpp
msgid "Change Resource Remap Language"
@@ -11664,7 +11607,7 @@ msgid ""
"Cannot instance the scene '%s' because the current scene exists within one "
"of its nodes."
msgstr ""
-"Não consigo instanciar a cena '%s' porque a cena atual existe dentro de um "
+"Incapaz de instanciar a cena '%s' porque a cena atual existe dentro de um "
"dos seus nós."
#: editor/scene_tree_dock.cpp
@@ -11681,7 +11624,7 @@ msgstr "Instanciar Cena Filha"
#: editor/scene_tree_dock.cpp
msgid "Can't paste root node into the same scene."
-msgstr "Não consigo colar o nó raiz na mesma cena."
+msgstr "Incapaz de colar o nó raiz na mesma cena."
#: editor/scene_tree_dock.cpp
msgid "Paste Node(s)"
@@ -11710,7 +11653,7 @@ msgstr "Duplicar Nó(s)"
#: editor/scene_tree_dock.cpp
msgid "Can't reparent nodes in inherited scenes, order of nodes can't change."
msgstr ""
-"Não consigo reassociar nós em cenas herdadas, a ordem dos nós não pode mudar."
+"Incapaz de reassociar nós em cenas herdadas, a ordem dos nós não pode mudar."
#: editor/scene_tree_dock.cpp
msgid "Node must belong to the edited scene to become root."
@@ -11821,11 +11764,11 @@ msgstr "Outro Nó"
#: editor/scene_tree_dock.cpp
msgid "Can't operate on nodes from a foreign scene!"
-msgstr "Não consigo operar em nós de uma cena externa!"
+msgstr "Incapaz de operar em nós de uma cena externa!"
#: editor/scene_tree_dock.cpp
msgid "Can't operate on nodes the current scene inherits from!"
-msgstr "Não consigo operar em nós herdados pela cena atual!"
+msgstr "Incapaz de operar em nós herdados pela cena atual!"
#: editor/scene_tree_dock.cpp
msgid "This operation can't be done on instanced scenes."
@@ -11852,7 +11795,7 @@ msgid ""
"Couldn't save new scene. Likely dependencies (instances) couldn't be "
"satisfied."
msgstr ""
-"Não consigo guardar nova cena. Provavelmente dependências (instâncias) não "
+"Incapaz de guardar nova cena. Provavelmente dependências (instâncias) não "
"foram satisfeitas."
#: editor/scene_tree_dock.cpp
@@ -11885,7 +11828,7 @@ msgid ""
"This is probably because this editor was built with all language modules "
"disabled."
msgstr ""
-"Não consigo anexar um script: não há linguagens registadas.\n"
+"Incapaz de anexar um script: não há linguagens registadas.\n"
"Isto provavelmente acontece porque o editor foi compilado com todos os "
"módulos de linguagem desativados."
@@ -12101,7 +12044,7 @@ msgstr "Erro ao carregar Modelo '%s'"
#: editor/script_create_dialog.cpp
msgid "Error - Could not create script in filesystem."
-msgstr "Erro - Não consigo criar script no sistema de ficheiros."
+msgstr "Erro - Incapaz de criar script no sistema de ficheiros."
#: editor/script_create_dialog.cpp
msgid "Error loading script from %s"
@@ -12247,7 +12190,7 @@ msgstr "Copiar Erro"
#: editor/script_editor_debugger.cpp
msgid "Open C++ Source on GitHub"
-msgstr ""
+msgstr "Abrir Código C++ no GitHub"
#: editor/script_editor_debugger.cpp
msgid "Video RAM"
@@ -12426,14 +12369,22 @@ msgid "Change Ray Shape Length"
msgstr "Mudar comprimento da forma raio"
#: editor/spatial_editor_gizmos.cpp
-#, fuzzy
msgid "Set Room Point Position"
-msgstr "Definir posição do Ponto da curva"
+msgstr "Definir Posição do Ponto do Quarto"
#: editor/spatial_editor_gizmos.cpp
-#, fuzzy
msgid "Set Portal Point Position"
-msgstr "Definir posição do Ponto da curva"
+msgstr "Definir Posição do Ponto do Portal"
+
+#: editor/spatial_editor_gizmos.cpp
+#, fuzzy
+msgid "Set Occluder Sphere Radius"
+msgstr "Mudar Raio da Forma Cilindro"
+
+#: editor/spatial_editor_gizmos.cpp
+#, fuzzy
+msgid "Set Occluder Sphere Position"
+msgstr "Definir curva na posição"
#: modules/csg/csg_gizmos.cpp
msgid "Change Cylinder Radius"
@@ -12530,8 +12481,8 @@ msgstr "Formato de dicionário de instância inválido (falta @path)"
#: modules/gdscript/gdscript_functions.cpp
msgid "Invalid instance dictionary format (can't load script at @path)"
msgstr ""
-"Formato de dicionário de instância inválido (não consigo carregar o script "
-"em @path)"
+"Formato de dicionário de instância inválido (incapaz de carregar o script em "
+"@path)"
#: modules/gdscript/gdscript_functions.cpp
msgid "Invalid instance dictionary format (invalid script at @path)"
@@ -12546,14 +12497,12 @@ msgid "Object can't provide a length."
msgstr "Objeto não fornece um comprimento."
#: modules/gltf/editor_scene_exporter_gltf_plugin.cpp
-#, fuzzy
msgid "Export Mesh GLTF2"
-msgstr "Exportar Biblioteca de Malhas"
+msgstr "Exportar Malha GLTF2"
#: modules/gltf/editor_scene_exporter_gltf_plugin.cpp
-#, fuzzy
msgid "Export GLTF..."
-msgstr "Exportar..."
+msgstr "Exportar GLTF..."
#: modules/gridmap/grid_map_editor_plugin.cpp
msgid "Next Plane"
@@ -12596,9 +12545,8 @@ msgid "GridMap Paint"
msgstr "Pintura do GridMap"
#: modules/gridmap/grid_map_editor_plugin.cpp
-#, fuzzy
msgid "GridMap Selection"
-msgstr "Seleção de Preenchimento de GridMap"
+msgstr "Seleção de GridMap"
#: modules/gridmap/grid_map_editor_plugin.cpp
msgid "Grid Map"
@@ -12720,6 +12668,11 @@ msgstr "A Traçar lightmaps"
msgid "Class name can't be a reserved keyword"
msgstr "Nome de classe não pode ser uma palavra-chave reservada"
+#: modules/mono/csharp_script.cpp
+#, fuzzy
+msgid "Build Solution"
+msgstr "Preencher Seleção"
+
#: modules/mono/mono_gd/gd_mono_utils.cpp
msgid "End of inner exception stack trace"
msgstr "Fim do stack trace de exceção interna"
@@ -12850,18 +12803,16 @@ msgid "Add Output Port"
msgstr "Adicionar Porta de Saída"
#: modules/visual_script/visual_script_editor.cpp
-#, fuzzy
msgid "Change Port Type"
-msgstr "Mudar tipo"
+msgstr "Mudar Tipo de Porta"
#: modules/visual_script/visual_script_editor.cpp
-#, fuzzy
msgid "Change Port Name"
-msgstr "Mudar nome de porta de entrada"
+msgstr "Mudar Nome da Porta"
#: modules/visual_script/visual_script_editor.cpp
msgid "Override an existing built-in function."
-msgstr "Sobrepõe-se a função incorporada existente."
+msgstr "Sobrepõe uma função incorporada existente."
#: modules/visual_script/visual_script_editor.cpp
msgid "Create a new function."
@@ -12972,9 +12923,8 @@ msgid "Add Preload Node"
msgstr "Adicionar Nó de Pré-carregamento"
#: modules/visual_script/visual_script_editor.cpp
-#, fuzzy
msgid "Add Node(s)"
-msgstr "Adicionar Nó"
+msgstr "Adicionar Nó(s)"
#: modules/visual_script/visual_script_editor.cpp
msgid "Add Node(s) From Tree"
@@ -12985,8 +12935,7 @@ msgid ""
"Can't drop properties because script '%s' is not used in this scene.\n"
"Drop holding 'Shift' to just copy the signature."
msgstr ""
-"Não consigo largar propriedades porque o script '%s' não é usado neste "
-"cena.\n"
+"Incapaz de largar propriedades porque o script '%s' não é usado neste cena.\n"
"Largue com 'Shift' para copiar apenas a assinatura."
#: modules/visual_script/visual_script_editor.cpp
@@ -13039,7 +12988,7 @@ msgstr "Redimensionar Comentário"
#: modules/visual_script/visual_script_editor.cpp
msgid "Can't copy the function node."
-msgstr "Não consigo copiar o nó função."
+msgstr "Incapaz de copiar o nó função."
#: modules/visual_script/visual_script_editor.cpp
msgid "Paste VisualScript Nodes"
@@ -13047,11 +12996,11 @@ msgstr "Colar Nós VisualScript"
#: modules/visual_script/visual_script_editor.cpp
msgid "Can't create function with a function node."
-msgstr "Não consigo criar função com um nó função."
+msgstr "Incapaz de criar função com um nó função."
#: modules/visual_script/visual_script_editor.cpp
msgid "Can't create function of nodes from nodes of multiple functions."
-msgstr "Não consigo criar função de nós a partir de nós de várias funções."
+msgstr "Incapaz de criar função de nós a partir de nós de várias funções."
#: modules/visual_script/visual_script_editor.cpp
msgid "Select at least one node with sequence port."
@@ -13206,75 +13155,69 @@ msgstr "Procurar VisualScript"
msgid "Get %s"
msgstr "Obter %s"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Package name is missing."
msgstr "Falta o nome do pacote."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Package segments must be of non-zero length."
msgstr "Os segmentos de pacote devem ser de comprimento diferente de zero."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "The character '%s' is not allowed in Android application package names."
msgstr ""
"O carácter '%s' não é permitido em nomes de pacotes de aplicações Android."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "A digit cannot be the first character in a package segment."
msgstr "Um dígito não pode ser o primeiro carácter num segmento de pacote."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "The character '%s' cannot be the first character in a package segment."
msgstr ""
"O carácter '%s' não pode ser o primeiro carácter num segmento de pacote."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "The package must have at least one '.' separator."
msgstr "O pacote deve ter pelo menos um separador '.'."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Select device from the list"
msgstr "Selecionar aparelho da lista"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Running on %s"
-msgstr ""
+msgstr "A executar em %s"
-#: platform/android/export/export.cpp
-#, fuzzy
+#: platform/android/export/export_plugin.cpp
msgid "Exporting APK..."
-msgstr "A Exportar Tudo"
+msgstr "A Exportar APK..."
-#: platform/android/export/export.cpp
-#, fuzzy
+#: platform/android/export/export_plugin.cpp
msgid "Uninstalling..."
-msgstr "Desinstalar"
+msgstr "A desinstalar..."
-#: platform/android/export/export.cpp
-#, fuzzy
+#: platform/android/export/export_plugin.cpp
msgid "Installing to device, please wait..."
-msgstr "A carregar, espere por favor..."
+msgstr "A instalar no dispositivo, espere por favor..."
-#: platform/android/export/export.cpp
-#, fuzzy
+#: platform/android/export/export_plugin.cpp
msgid "Could not install to device: %s"
-msgstr "Não consegui iniciar o subprocesso!"
+msgstr "Incapaz de instalar o dispositivo: %s"
-#: platform/android/export/export.cpp
-#, fuzzy
+#: platform/android/export/export_plugin.cpp
msgid "Running on device..."
-msgstr "A executar Script Customizado..."
+msgstr "A executar no dispositivo..."
-#: platform/android/export/export.cpp
-#, fuzzy
+#: platform/android/export/export_plugin.cpp
msgid "Could not execute on device."
-msgstr "Não consegui criar pasta."
+msgstr "Incapaz de executar no dispositivo."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Unable to find the 'apksigner' tool."
msgstr "Incapaz de localizar a ferramenta 'apksigner'."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Android build template not installed in the project. Install it from the "
"Project menu."
@@ -13282,69 +13225,69 @@ msgstr ""
"Modelo de compilação Android não está instalado neste projeto. Instale-o no "
"menu Projeto."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Either Debug Keystore, Debug User AND Debug Password settings must be "
"configured OR none of them."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Debug keystore not configured in the Editor Settings nor in the preset."
msgstr ""
"Keystore de depuração não configurada nas Configurações do Editor e nem na "
"predefinição."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Either Release Keystore, Release User AND Release Password settings must be "
"configured OR none of them."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Release keystore incorrectly configured in the export preset."
msgstr ""
"Lançamento de keystore configurado incorretamente na predefinição exportada."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "A valid Android SDK path is required in Editor Settings."
msgstr ""
"É necessário um caminho válido para o Android SDK no Editor de Configurações."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Invalid Android SDK path in Editor Settings."
msgstr "Caminho inválido para o Android SDK no Editor de Configurações."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Missing 'platform-tools' directory!"
msgstr "Diretoria 'platform-tools' em falta!"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Unable to find Android SDK platform-tools' adb command."
msgstr "Incapaz de encontrar o comando adb das ferramentas Android SDK."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Please check in the Android SDK directory specified in Editor Settings."
msgstr ""
"Por favor confirme a pasta do Android SDK especificada no Editor de "
"Configurações."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Missing 'build-tools' directory!"
msgstr "Diretoria 'build-tools' em falta!"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Unable to find Android SDK build-tools' apksigner command."
msgstr "Incapaz de encontrar o comando apksigner das ferramentas Android SDK."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Invalid public key for APK expansion."
msgstr "Chave pública inválida para expansão APK."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Invalid package name:"
msgstr "Nome de pacote inválido:"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Invalid \"GodotPaymentV3\" module included in the \"android/modules\" "
"project setting (changed in Godot 3.2.2).\n"
@@ -13352,39 +13295,25 @@ msgstr ""
"Módulo inválido \"GodotPaymentV3\" incluído na configuração do projeto "
"\"android/modules\" (alterado em Godot 3.2.2).\n"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "\"Use Custom Build\" must be enabled to use the plugins."
msgstr ""
"\"Usar Compilação Personalizada\" têm de estar ativa para usar os plugins."
-#: platform/android/export/export.cpp
-msgid ""
-"\"Degrees Of Freedom\" is only valid when \"Xr Mode\" is \"Oculus Mobile VR"
-"\"."
-msgstr ""
-"\"Graus de Liberdade\" só é válido quando \"Modo Xr\" é \"Oculus Mobile VR\"."
-
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"\"Hand Tracking\" is only valid when \"Xr Mode\" is \"Oculus Mobile VR\"."
msgstr ""
"\"Rastreamento de Mão\" só é válido quando \"Modo Xr\" é \"Oculus Mobile VR"
"\"."
-#: platform/android/export/export.cpp
-msgid ""
-"\"Focus Awareness\" is only valid when \"Xr Mode\" is \"Oculus Mobile VR\"."
-msgstr ""
-"\"Consciência do Foco\" só é válido quando \"Modo Xr\" é \"Oculus Mobile VR"
-"\"."
-
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "\"Export AAB\" is only valid when \"Use Custom Build\" is enabled."
msgstr ""
"\"Exportar AAB\" só é válido quando \"Usar Compilação Personalizada\" está "
"ativa."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"'apksigner' could not be found.\n"
"Please check the command is available in the Android SDK build-tools "
@@ -13392,58 +13321,52 @@ msgid ""
"The resulting %s is unsigned."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Signing debug %s..."
-msgstr ""
+msgstr "A assinar depuração %s..."
-#: platform/android/export/export.cpp
-#, fuzzy
+#: platform/android/export/export_plugin.cpp
msgid "Signing release %s..."
-msgstr ""
-"A analisar Ficheiros,\n"
-"Espere, por favor..."
+msgstr "A assinar lançamento %s..."
-#: platform/android/export/export.cpp
-#, fuzzy
+#: platform/android/export/export_plugin.cpp
msgid "Could not find keystore, unable to export."
-msgstr "Não consigo abrir modelo para exportação:"
+msgstr "Incapaz de encontrar keystore e exportar."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "'apksigner' returned with error #%d"
-msgstr ""
+msgstr "'apksigner' devolvido com erro #%d"
-#: platform/android/export/export.cpp
-#, fuzzy
+#: platform/android/export/export_plugin.cpp
msgid "Verifying %s..."
-msgstr "A adicionar %s..."
+msgstr "A verificar %s..."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "'apksigner' verification of %s failed."
-msgstr ""
+msgstr "Falhou a verificação 'apksigner' de %s."
-#: platform/android/export/export.cpp
-#, fuzzy
+#: platform/android/export/export_plugin.cpp
msgid "Exporting for Android"
-msgstr "A Exportar Tudo"
+msgstr "A exportar para Android"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Invalid filename! Android App Bundle requires the *.aab extension."
msgstr ""
"Nome de ficheiro inválido! O Pacote Android App exige a extensão *.aab."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "APK Expansion not compatible with Android App Bundle."
msgstr "Expansão APK não compatível com Pacote Android App."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Invalid filename! Android APK requires the *.apk extension."
msgstr "Nome de ficheiro inválido! APK Android exige a extensão *.apk."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Unsupported export format!\n"
-msgstr ""
+msgstr "Formato de exportação não suportado!\n"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Trying to build from a custom built template, but no version info for it "
"exists. Please reinstall from the 'Project' menu."
@@ -13451,7 +13374,7 @@ msgstr ""
"A tentar compilar a partir de um modelo personalizado, mas sem informação de "
"versão. Reinstale no menu 'Projeto'."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Android build version mismatch:\n"
" Template installed: %s\n"
@@ -13463,26 +13386,24 @@ msgstr ""
" Versão Godot: %s\n"
"Reinstale o modelo de compilação Android no menu 'Projeto'."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Unable to overwrite res://android/build/res/*.xml files with project name"
msgstr ""
-#: platform/android/export/export.cpp
-#, fuzzy
+#: platform/android/export/export_plugin.cpp
msgid "Could not export project files to gradle project\n"
-msgstr "Impossível encontrar project.godot no Caminho do Projeto."
+msgstr "Incapaz de exportar ficheiros do projeto para projeto gradle\n"
-#: platform/android/export/export.cpp
-#, fuzzy
+#: platform/android/export/export_plugin.cpp
msgid "Could not write expansion package file!"
-msgstr "Não consigo escrever ficheiro:"
+msgstr "Incapaz de escrever ficheiro de pacote de expansão!"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Building Android Project (gradle)"
msgstr "A compilar Projeto Android (gradle)"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Building of Android project failed, check output for the error.\n"
"Alternatively visit docs.godotengine.org for Android build documentation."
@@ -13491,11 +13412,11 @@ msgstr ""
"Em alternativa visite docs.godotengine.org para a documentação sobre "
"compilação Android."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Moving output"
msgstr "A mover saída"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Unable to copy and rename export file, check gradle project directory for "
"outputs."
@@ -13503,24 +13424,23 @@ msgstr ""
"Incapaz de copiar e renomear ficheiro de exportação, verifique diretoria de "
"projeto gradle por resultados."
-#: platform/android/export/export.cpp
-#, fuzzy
+#: platform/android/export/export_plugin.cpp
msgid "Package not found: %s"
-msgstr "Animação não encontrada: '%s'"
+msgstr "Pacote não encontrado: '%s'"
-#: platform/android/export/export.cpp
-#, fuzzy
+#: platform/android/export/export_plugin.cpp
msgid "Creating APK..."
-msgstr "A criar contornos..."
+msgstr "A criar APK..."
-#: platform/android/export/export.cpp
-#, fuzzy
+#: platform/android/export/export_plugin.cpp
msgid ""
"Could not find template APK to export:\n"
"%s"
-msgstr "Não consigo abrir modelo para exportação:"
+msgstr ""
+"Incapaz de encontrar modelo APK para exportar:\n"
+"%s"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Missing libraries in the export template for the selected architectures: "
"%s.\n"
@@ -13528,23 +13448,21 @@ msgid ""
"architectures in the export preset."
msgstr ""
-#: platform/android/export/export.cpp
-#, fuzzy
+#: platform/android/export/export_plugin.cpp
msgid "Adding files..."
-msgstr "A adicionar %s..."
+msgstr "A adicionar ficheiros..."
-#: platform/android/export/export.cpp
-#, fuzzy
+#: platform/android/export/export_plugin.cpp
msgid "Could not export project files"
-msgstr "Não consigo escrever ficheiro:"
+msgstr "Incapaz de exportar ficheiros do projeto"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Aligning APK..."
msgstr "A alinhar APK..."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Could not unzip temporary unaligned APK."
-msgstr ""
+msgstr "Incapaz de unzipar APK desalinhado temporário."
#: platform/iphone/export/export.cpp platform/osx/export/export.cpp
msgid "Identifier is missing."
@@ -13557,8 +13475,7 @@ msgstr "O carácter \"%s\" não é permitido no Identificador."
#: platform/iphone/export/export.cpp
msgid "App Store Team ID not specified - cannot configure the project."
msgstr ""
-"ID da equipa da App Store não especificado - não consigo configurar o "
-"projeto."
+"ID da equipa da App Store não especificado - incapaz de configurar o projeto."
#: platform/iphone/export/export.cpp
msgid "Invalid Identifier:"
@@ -13582,7 +13499,7 @@ msgstr "Executar HTML exportado no navegador predefinido do sistema."
#: platform/javascript/export/export.cpp
msgid "Could not open template for export:"
-msgstr "Não consigo abrir modelo para exportação:"
+msgstr "Incapaz de abrir modelo para exportação:"
#: platform/javascript/export/export.cpp
msgid "Invalid export template:"
@@ -13590,32 +13507,27 @@ msgstr "Modelo de exportação inválido:"
#: platform/javascript/export/export.cpp
msgid "Could not write file:"
-msgstr "Não consigo escrever ficheiro:"
+msgstr "Incapaz de escrever ficheiro:"
#: platform/javascript/export/export.cpp
-#, fuzzy
msgid "Could not read file:"
-msgstr "Não consigo escrever ficheiro:"
+msgstr "Incapaz de ler ficheiro:"
#: platform/javascript/export/export.cpp
-#, fuzzy
msgid "Could not read HTML shell:"
-msgstr "Não consigo ler shell HTML personalizado:"
+msgstr "Incapaz de ler shell HTML:"
#: platform/javascript/export/export.cpp
-#, fuzzy
msgid "Could not create HTTP server directory:"
-msgstr "Não consegui criar pasta."
+msgstr "Incapaz de criar diretoria do servidor HTTP:"
#: platform/javascript/export/export.cpp
-#, fuzzy
msgid "Error starting HTTP server:"
-msgstr "Erro ao guardar cena."
+msgstr "Erro ao iniciar servidor HTTP:"
#: platform/osx/export/export.cpp
-#, fuzzy
msgid "Invalid bundle identifier:"
-msgstr "Identificador Inválido:"
+msgstr "Identificador de pacote inválido:"
#: platform/osx/export/export.cpp
msgid "Notarization: code signing required."
@@ -14082,6 +13994,14 @@ msgstr ""
"NavigationMeshInstance tem de ser filho ou neto de um nó Navigation. Apenas "
"fornece dados de navegação."
+#: scene/3d/occluder.cpp
+msgid "No shape is set."
+msgstr ""
+
+#: scene/3d/occluder.cpp
+msgid "Only uniform scales are supported."
+msgstr ""
+
#: scene/3d/particles.cpp
msgid ""
"GPU-based particles are not supported by the GLES2 video driver.\n"
@@ -14170,7 +14090,7 @@ msgstr ""
#: scene/3d/room.cpp
msgid "A Room cannot have another Room as a child or grandchild."
-msgstr ""
+msgstr "Um Quarto não pode ter outro Quarto como filho ou neto."
#: scene/3d/room.cpp
msgid "The RoomManager should not be placed inside a Room."
@@ -14408,6 +14328,14 @@ msgstr "Deve usar uma extensão válida."
msgid "Enable grid minimap."
msgstr "Ativar grelha do minimapa."
+#: scene/gui/nine_patch_rect.cpp
+msgid ""
+"The Tile and Tile Fit options for Axis Stretch properties are only effective "
+"when using the GLES3 rendering backend.\n"
+"The GLES2 backend is currently in use, so these modes will act like Stretch "
+"instead."
+msgstr ""
+
#: scene/gui/popup.cpp
msgid ""
"Popups will hide by default unless you call popup() or any of the popup*() "
@@ -14460,6 +14388,10 @@ msgstr ""
msgid "Viewport size must be greater than 0 to render anything."
msgstr "O tamanho do viewport tem de ser maior do que 0 para renderizar."
+#: scene/resources/occluder_shape.cpp
+msgid "OccluderShapeSphere Set Spheres"
+msgstr ""
+
#: scene/resources/visual_shader_nodes.cpp
msgid ""
"The sampler port is connected but not used. Consider changing the source to "
@@ -14481,9 +14413,8 @@ msgid "Invalid comparison function for that type."
msgstr "Função de comparação inválida para este tipo."
#: servers/visual/shader_language.cpp
-#, fuzzy
msgid "Varying may not be assigned in the '%s' function."
-msgstr "Variações só podem ser atribuídas na função vértice."
+msgstr "Variações não podem ser atribuídas na função '%s'."
#: servers/visual/shader_language.cpp
msgid ""
@@ -14513,6 +14444,41 @@ msgstr "Atribuição a uniforme."
msgid "Constants cannot be modified."
msgstr "Constantes não podem ser modificadas."
+#~ msgid "Make Rest Pose (From Bones)"
+#~ msgstr "Criar Pose de Descanso (a partir de Ossos)"
+
+#~ msgid "Bottom"
+#~ msgstr "Fundo"
+
+#~ msgid "Left"
+#~ msgstr "Esquerda"
+
+#~ msgid "Right"
+#~ msgstr "Direita"
+
+#~ msgid "Front"
+#~ msgstr "Frente"
+
+#~ msgid "Rear"
+#~ msgstr "Trás"
+
+#~ msgid "Nameless gizmo"
+#~ msgstr "Bugiganga sem Nome"
+
+#~ msgid ""
+#~ "\"Degrees Of Freedom\" is only valid when \"Xr Mode\" is \"Oculus Mobile "
+#~ "VR\"."
+#~ msgstr ""
+#~ "\"Graus de Liberdade\" só é válido quando \"Modo Xr\" é \"Oculus Mobile VR"
+#~ "\"."
+
+#~ msgid ""
+#~ "\"Focus Awareness\" is only valid when \"Xr Mode\" is \"Oculus Mobile VR"
+#~ "\"."
+#~ msgstr ""
+#~ "\"Consciência do Foco\" só é válido quando \"Modo Xr\" é \"Oculus Mobile "
+#~ "VR\"."
+
#~ msgid "Package Contents:"
#~ msgstr "Conteúdo do Pacote:"
diff --git a/editor/translations/pt_BR.po b/editor/translations/pt_BR.po
index b7bb7ce0c4..87c8792cbf 100644
--- a/editor/translations/pt_BR.po
+++ b/editor/translations/pt_BR.po
@@ -120,12 +120,14 @@
# PauloFRs <paulofr1@hotmail.com>, 2021.
# Diego Bloise <diego-dev@outlook.com>, 2021.
# Alkoarism <Alkoarism@gmail.com>, 2021.
+# リーLee <kaualee304@gmail.com>, 2021.
+# William Weber Berrutti <wwberrutti@protonmail.ch>, 2021.
msgid ""
msgstr ""
"Project-Id-Version: Godot Engine editor\n"
"POT-Creation-Date: 2016-05-30\n"
-"PO-Revision-Date: 2021-08-06 06:47+0000\n"
-"Last-Translator: Alkoarism <Alkoarism@gmail.com>\n"
+"PO-Revision-Date: 2021-09-11 20:05+0000\n"
+"Last-Translator: William Weber Berrutti <wwberrutti@protonmail.ch>\n"
"Language-Team: Portuguese (Brazil) <https://hosted.weblate.org/projects/"
"godot-engine/godot/pt_BR/>\n"
"Language: pt_BR\n"
@@ -133,7 +135,7 @@ msgstr ""
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=n > 1;\n"
-"X-Generator: Weblate 4.8-dev\n"
+"X-Generator: Weblate 4.9-dev\n"
#: core/math/expression.cpp modules/gdscript/gdscript_functions.cpp
#: modules/visual_script/visual_script_builtin_funcs.cpp
@@ -481,15 +483,13 @@ msgstr "Inserir Anim"
#. TRANSLATORS: This describes the target of new animation track, will be inserted into another string.
#: editor/animation_track_editor.cpp
-#, fuzzy
msgid "node '%s'"
-msgstr "Não é possível abrir '%s'."
+msgstr "nodo '%s'"
#. TRANSLATORS: This describes the target of new animation track, will be inserted into another string.
#: editor/animation_track_editor.cpp
-#, fuzzy
msgid "animation"
-msgstr "Animação"
+msgstr "animação"
#: editor/animation_track_editor.cpp
msgid "AnimationPlayer can't animate itself, only other players."
@@ -497,9 +497,8 @@ msgstr "AnimationPlayer não pode animar a si mesmo, apenas outros jogadores."
#. TRANSLATORS: This describes the target of new animation track, will be inserted into another string.
#: editor/animation_track_editor.cpp
-#, fuzzy
msgid "property '%s'"
-msgstr "Nenhuma propriedade '%s' existe."
+msgstr "propriedade '%s'"
#: editor/animation_track_editor.cpp
msgid "Anim Create & Insert"
@@ -1055,7 +1054,6 @@ msgid "Edit..."
msgstr "Editar..."
#: editor/connections_dialog.cpp
-#, fuzzy
msgid "Go to Method"
msgstr "Ir ao Método"
@@ -1137,7 +1135,7 @@ msgstr ""
msgid "Dependencies"
msgstr "Dependências"
-#: editor/dependency_editor.cpp
+#: editor/dependency_editor.cpp editor/editor_resource_picker.cpp
msgid "Resource"
msgstr "Recurso"
@@ -1372,9 +1370,8 @@ msgid "Error opening asset file for \"%s\" (not in ZIP format)."
msgstr "Erro ao abrir o pacote \"%s\" (não está em formato ZIP)."
#: editor/editor_asset_installer.cpp
-#, fuzzy
msgid "%s (already exists)"
-msgstr "%s (Já existe)"
+msgstr "%s (já existe)"
#: editor/editor_asset_installer.cpp
msgid "Contents of asset \"%s\" - %d file(s) conflict with your project:"
@@ -1395,7 +1392,6 @@ msgid "The following files failed extraction from asset \"%s\":"
msgstr "Os seguintes arquivos falharam na extração do asset \"% s\":"
#: editor/editor_asset_installer.cpp
-#, fuzzy
msgid "(and %s more files)"
msgstr "(e %s mais arquivos)"
@@ -1477,9 +1473,8 @@ msgid "Bypass"
msgstr "Ignorar"
#: editor/editor_audio_buses.cpp
-#, fuzzy
msgid "Bus Options"
-msgstr "Opções da pista"
+msgstr "Opções do canal"
#: editor/editor_audio_buses.cpp editor/filesystem_dock.cpp
#: editor/plugins/animation_player_editor_plugin.cpp editor/scene_tree_dock.cpp
@@ -1645,9 +1640,8 @@ msgid "Can't add autoload:"
msgstr "Não pode adicionar autoload:"
#: editor/editor_autoload_settings.cpp
-#, fuzzy
msgid "%s is an invalid path. File does not exist."
-msgstr "O %s é um caminho inválido. O arquivo não existe."
+msgstr "%s é um caminho inválido. O arquivo não existe."
#: editor/editor_autoload_settings.cpp
msgid "%s is an invalid path. Not in resource path (res://)."
@@ -1675,7 +1669,6 @@ msgid "Name"
msgstr "Nome"
#: editor/editor_autoload_settings.cpp
-#, fuzzy
msgid "Global Variable"
msgstr "Variável Global"
@@ -1802,13 +1795,13 @@ msgstr ""
"Habilite 'Importar Pvrtc' em Configurações do Projeto ou desabilite 'Driver "
"Reserva Ativado'."
-#: editor/editor_export.cpp platform/android/export/export.cpp
+#: editor/editor_export.cpp platform/android/export/export_plugin.cpp
#: platform/iphone/export/export.cpp platform/javascript/export/export.cpp
#: platform/osx/export/export.cpp platform/uwp/export/export.cpp
msgid "Custom debug template not found."
msgstr "Modelo customizado de depuração não encontrado."
-#: editor/editor_export.cpp platform/android/export/export.cpp
+#: editor/editor_export.cpp platform/android/export/export_plugin.cpp
#: platform/iphone/export/export.cpp platform/javascript/export/export.cpp
#: platform/osx/export/export.cpp platform/uwp/export/export.cpp
msgid "Custom release template not found."
@@ -1851,12 +1844,10 @@ msgid "Import Dock"
msgstr "Importar Dock"
#: editor/editor_feature_profile.cpp
-#, fuzzy
msgid "Allows to view and edit 3D scenes."
msgstr "Permite visualizar e editar cenas 3D."
#: editor/editor_feature_profile.cpp
-#, fuzzy
msgid "Allows to edit scripts using the integrated script editor."
msgstr "Permite editar scripts usando o editor de script integrado."
@@ -1869,17 +1860,16 @@ msgid "Allows editing the node hierarchy in the Scene dock."
msgstr "Permite editar a hierarquia de nó na doca Cena."
#: editor/editor_feature_profile.cpp
-#, fuzzy
msgid ""
"Allows to work with signals and groups of the node selected in the Scene "
"dock."
-msgstr "Permite trabalhar com sinais e grupos do nó selecionado na doca Cena."
+msgstr ""
+"Permite trabalhar com sinais e grupos do nó selecionado no painel Cena."
#: editor/editor_feature_profile.cpp
-#, fuzzy
msgid "Allows to browse the local file system via a dedicated dock."
msgstr ""
-"Permite navegar pelo sistema de arquivos local através de uma doca dedicada."
+"Permite navegar pelo sistema de arquivos local através de um painel dedicado."
#: editor/editor_feature_profile.cpp
msgid ""
@@ -1890,9 +1880,8 @@ msgstr ""
"Requer a doca FileSystem para funcionar."
#: editor/editor_feature_profile.cpp
-#, fuzzy
msgid "(current)"
-msgstr "(Atual)"
+msgstr "(atual)"
#: editor/editor_feature_profile.cpp
msgid "(none)"
@@ -1931,14 +1920,12 @@ msgid "Enable Contextual Editor"
msgstr "Habilitar Editor Contextual"
#: editor/editor_feature_profile.cpp
-#, fuzzy
msgid "Class Properties:"
-msgstr "Propriedades de Classe:"
+msgstr "Propriedades da Classe:"
#: editor/editor_feature_profile.cpp
-#, fuzzy
msgid "Main Features:"
-msgstr "Características principais:"
+msgstr "Características Principais:"
#: editor/editor_feature_profile.cpp
msgid "Nodes and Classes:"
@@ -1968,12 +1955,10 @@ msgid "Current Profile:"
msgstr "Perfil Atual:"
#: editor/editor_feature_profile.cpp
-#, fuzzy
msgid "Create Profile"
msgstr "Criar Perfil"
#: editor/editor_feature_profile.cpp
-#, fuzzy
msgid "Remove Profile"
msgstr "Remover Perfil"
@@ -1995,17 +1980,14 @@ msgid "Export"
msgstr "Exportação"
#: editor/editor_feature_profile.cpp
-#, fuzzy
msgid "Configure Selected Profile:"
msgstr "Configurar Perfil Selecionado:"
#: editor/editor_feature_profile.cpp
-#, fuzzy
msgid "Extra Options:"
msgstr "Opções Extra:"
#: editor/editor_feature_profile.cpp
-#, fuzzy
msgid "Create or import a profile to edit available classes and properties."
msgstr ""
"Criar ou importar um perfil para editar as classes e propriedades "
@@ -2036,7 +2018,6 @@ msgid "Select Current Folder"
msgstr "Selecionar a Pasta Atual"
#: editor/editor_file_dialog.cpp scene/gui/file_dialog.cpp
-#, fuzzy
msgid "File exists, overwrite?"
msgstr "O arquivo já existe. Sobrescrever?"
@@ -2199,7 +2180,7 @@ msgstr ""
msgid "(Re)Importing Assets"
msgstr "(Re)Importando Assets"
-#: editor/editor_help.cpp editor/plugins/spatial_editor_plugin.cpp
+#: editor/editor_help.cpp
msgid "Top"
msgstr "Início"
@@ -2712,6 +2693,32 @@ msgid "Current scene not saved. Open anyway?"
msgstr "Cena atual não salva. Abrir mesmo assim?"
#: editor/editor_node.cpp
+msgid "Can't undo while mouse buttons are pressed."
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "Nothing to undo."
+msgstr ""
+
+#: editor/editor_node.cpp
+#, fuzzy
+msgid "Undo: %s"
+msgstr "Desfazer"
+
+#: editor/editor_node.cpp
+msgid "Can't redo while mouse buttons are pressed."
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "Nothing to redo."
+msgstr ""
+
+#: editor/editor_node.cpp
+#, fuzzy
+msgid "Redo: %s"
+msgstr "Refazer"
+
+#: editor/editor_node.cpp
msgid "Can't reload a scene that was never saved."
msgstr "Não foi possível recarregar a cena pois nunca foi salva."
@@ -3068,7 +3075,6 @@ msgid "Orphan Resource Explorer..."
msgstr "Explorador de Recursos Órfãos..."
#: editor/editor_node.cpp
-#, fuzzy
msgid "Reload Current Project"
msgstr "Recarregar o projeto atual"
@@ -3230,12 +3236,10 @@ msgid "Help"
msgstr "Ajuda"
#: editor/editor_node.cpp
-#, fuzzy
msgid "Online Documentation"
msgstr "Documentação Online"
#: editor/editor_node.cpp
-#, fuzzy
msgid "Questions & Answers"
msgstr "Perguntas & Respostas"
@@ -3244,9 +3248,8 @@ msgid "Report a Bug"
msgstr "Reportar bug"
#: editor/editor_node.cpp
-#, fuzzy
msgid "Suggest a Feature"
-msgstr "Sugira um recurso"
+msgstr "Sugira uma funcionalidade"
#: editor/editor_node.cpp
msgid "Send Docs Feedback"
@@ -3257,9 +3260,8 @@ msgid "Community"
msgstr "Comunidade"
#: editor/editor_node.cpp
-#, fuzzy
msgid "About Godot"
-msgstr "Sobre Godot"
+msgstr "Sobre o Godot"
#: editor/editor_node.cpp
msgid "Support Godot Development"
@@ -3353,7 +3355,6 @@ msgid "Manage Templates"
msgstr "Gerenciar Templates"
#: editor/editor_node.cpp
-#, fuzzy
msgid "Install from file"
msgstr "Instalar do arquivo"
@@ -3408,6 +3409,11 @@ msgid "Merge With Existing"
msgstr "Fundir Com Existente"
#: editor/editor_node.cpp
+#, fuzzy
+msgid "Apply MeshInstance Transforms"
+msgstr "Alterar Transformação da Animação"
+
+#: editor/editor_node.cpp
msgid "Open & Run a Script"
msgstr "Abrir e Rodar um Script"
@@ -3479,7 +3485,6 @@ msgid "No sub-resources found."
msgstr "Nenhum sub-recurso encontrado."
#: editor/editor_path.cpp
-#, fuzzy
msgid "Open a list of sub-resources."
msgstr "Abra uma lista de sub-recursos."
@@ -3508,12 +3513,10 @@ msgid "Update"
msgstr "Atualizar"
#: editor/editor_plugin_settings.cpp
-#, fuzzy
msgid "Version"
msgstr "Versão"
#: editor/editor_plugin_settings.cpp
-#, fuzzy
msgid "Author"
msgstr "Autor"
@@ -3663,6 +3666,10 @@ msgstr ""
"O recurso selecionado (%s) não corresponde ao tipo esperado para essa "
"propriedade (%s)."
+#: editor/editor_resource_picker.cpp
+msgid "Quick Load"
+msgstr ""
+
#: editor/editor_resource_picker.cpp editor/property_editor.cpp
msgid "Make Unique"
msgstr "Tornar Único"
@@ -3682,9 +3689,8 @@ msgid "Paste"
msgstr "Colar"
#: editor/editor_resource_picker.cpp editor/property_editor.cpp
-#, fuzzy
msgid "Convert to %s"
-msgstr "Converter Para %s"
+msgstr "Converter para %s"
#: editor/editor_resource_picker.cpp editor/property_editor.cpp
msgid "New %s"
@@ -3734,11 +3740,10 @@ msgid "Did you forget the '_run' method?"
msgstr "Você esqueceu o método '_run'?"
#: editor/editor_spin_slider.cpp
-#, fuzzy
msgid "Hold %s to round to integers. Hold Shift for more precise changes."
msgstr ""
-"Segure Ctrl para arredondar para números inteiros. Segure Shift para aplicar "
-"mudanças mais precisas."
+"Segure %s para arredondar para inteiros. Segure Shift para aplicar mudanças "
+"mais precisas."
#: editor/editor_sub_scene.cpp
msgid "Select Node(s) to Import"
@@ -3758,11 +3763,11 @@ msgstr "Importar a Partir do Nó:"
#: editor/export_template_manager.cpp
msgid "Open the folder containing these templates."
-msgstr ""
+msgstr "Abrir a pasta contendo esses modelos."
#: editor/export_template_manager.cpp
msgid "Uninstall these templates."
-msgstr ""
+msgstr "Desinstalar esses modelos."
#: editor/export_template_manager.cpp
#, fuzzy
@@ -3776,7 +3781,7 @@ msgstr "Reconectando, por favor aguarde."
#: editor/export_template_manager.cpp
msgid "Starting the download..."
-msgstr ""
+msgstr "Iniciando o download..."
#: editor/export_template_manager.cpp
msgid "Error requesting URL:"
@@ -3788,9 +3793,8 @@ msgid "Connecting to the mirror..."
msgstr "Conectando..."
#: editor/export_template_manager.cpp
-#, fuzzy
msgid "Can't resolve the requested address."
-msgstr "Não foi possível resolver o hostname:"
+msgstr "Não é possível resolver o endereço solicitado."
#: editor/export_template_manager.cpp
#, fuzzy
@@ -3808,18 +3812,16 @@ msgid "Request failed."
msgstr "A solicitação falhou."
#: editor/export_template_manager.cpp
-#, fuzzy
msgid "Request ended up in a redirect loop."
-msgstr "A solicitação falhou, muitos redirecionamentos"
+msgstr "A solicitação acabou em um loop de redirecionamento."
#: editor/export_template_manager.cpp
-#, fuzzy
msgid "Request failed:"
-msgstr "A solicitação falhou."
+msgstr "Falha na solicitação:"
#: editor/export_template_manager.cpp
msgid "Download complete; extracting templates..."
-msgstr ""
+msgstr "Download completo; extraindo modelos..."
#: editor/export_template_manager.cpp
msgid "Cannot remove temporary file:"
@@ -3846,7 +3848,7 @@ msgstr ""
#: editor/export_template_manager.cpp
msgid "Best available mirror"
-msgstr ""
+msgstr "Melhor espelho disponível"
#: editor/export_template_manager.cpp
msgid ""
@@ -3899,24 +3901,24 @@ msgid "SSL Handshake Error"
msgstr "Erro SSL Handshake"
#: editor/export_template_manager.cpp
-#, fuzzy
msgid "Can't open the export templates file."
-msgstr "Não se pôde abrir zip dos modelos de exportação."
+msgstr "Não foi possível abrir o arquivo de modelos de exportação."
#: editor/export_template_manager.cpp
-#, fuzzy
msgid "Invalid version.txt format inside the export templates file: %s."
-msgstr "Formato do version.txt inválido dentro de templates: %s."
+msgstr ""
+"Formato de version.txt inválido dentro do arquivo de modelos de exportação: "
+"%s."
#: editor/export_template_manager.cpp
-#, fuzzy
msgid "No version.txt found inside the export templates file."
-msgstr "Não foi encontrado um version.txt dentro dos modelos."
+msgstr ""
+"Não foi possível encontrar um version.txt dentro do arquivo de modelos de "
+"exportação."
#: editor/export_template_manager.cpp
-#, fuzzy
msgid "Error creating path for extracting templates:"
-msgstr "Erro ao criar caminho para modelos:"
+msgstr "Erro ao criar caminho para extrair modelos:"
#: editor/export_template_manager.cpp
msgid "Extracting Export Templates"
@@ -3946,10 +3948,13 @@ msgstr "Versão Atual:"
#: editor/export_template_manager.cpp
msgid "Export templates are missing. Download them or install from a file."
msgstr ""
+"Os modelos de exportação estão faltando. Baixe-os ou instale a partir de um "
+"arquivo."
#: editor/export_template_manager.cpp
msgid "Export templates are installed and ready to be used."
msgstr ""
+"As exportações de modelos estão instaladas e prontas para serem usadas."
#: editor/export_template_manager.cpp
#, fuzzy
@@ -3958,7 +3963,7 @@ msgstr "Abrir um arquivo"
#: editor/export_template_manager.cpp
msgid "Open the folder containing installed templates for the current version."
-msgstr ""
+msgstr "Abre a pasta contendo modelos instalados para a versão atual."
#: editor/export_template_manager.cpp
msgid "Uninstall"
@@ -3986,13 +3991,15 @@ msgstr "Copiar Erro"
#: editor/export_template_manager.cpp
msgid "Download and Install"
-msgstr ""
+msgstr "Baixar e Instalar"
#: editor/export_template_manager.cpp
msgid ""
"Download and install templates for the current version from the best "
"possible mirror."
msgstr ""
+"Baixa e instala modelos para a versão atual a partir do melhor espelho "
+"possível."
#: editor/export_template_manager.cpp
msgid "Official export templates aren't available for development builds."
@@ -4043,6 +4050,8 @@ msgid ""
"The templates will continue to download.\n"
"You may experience a short editor freeze when they finish."
msgstr ""
+"Os modelos continuarão sendo baixados.\n"
+"Você pode experienciar um pequeno congelamento no editor ao terminar."
#: editor/filesystem_dock.cpp
msgid "Favorites"
@@ -4230,7 +4239,7 @@ msgstr "Renomear..."
#: editor/filesystem_dock.cpp
msgid "Focus the search box"
-msgstr ""
+msgstr "Focar a caixa de pesquisa"
#: editor/filesystem_dock.cpp
msgid "Previous Folder/File"
@@ -5598,7 +5607,7 @@ msgstr "Todos"
#: editor/plugins/asset_library_editor_plugin.cpp
msgid "Search templates, projects, and demos"
-msgstr ""
+msgstr "Pesquisar modelos, projetos e demonstrações"
#: editor/plugins/asset_library_editor_plugin.cpp
msgid "Search assets (excluding templates, projects, and demos)"
@@ -5646,7 +5655,7 @@ msgstr "Arquivo ZIP de Assets"
#: editor/plugins/audio_stream_editor_plugin.cpp
msgid "Audio Preview Play/Pause"
-msgstr ""
+msgstr "Tocar/Pausar Pré-visualização do Ãudio"
#: editor/plugins/baked_lightmap_editor_plugin.cpp
msgid ""
@@ -5806,6 +5815,18 @@ msgid "Move CanvasItem \"%s\" to (%d, %d)"
msgstr "Mover CanvaItem \"%s\" para (%d, %d)"
#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Locked"
+msgstr "Fixar Seleção"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Grouped"
+msgstr "Grupo"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
msgid ""
"Children of containers have their anchors and margins values overridden by "
"their parent."
@@ -6755,7 +6776,13 @@ msgid "Remove Selected Item"
msgstr "Remover Item Selecionado"
#: editor/plugins/mesh_library_editor_plugin.cpp
-msgid "Import from Scene"
+#, fuzzy
+msgid "Import from Scene (Ignore Transforms)"
+msgstr "Importar da Cena"
+
+#: editor/plugins/mesh_library_editor_plugin.cpp
+#, fuzzy
+msgid "Import from Scene (Apply Transforms)"
msgstr "Importar da Cena"
#: editor/plugins/mesh_library_editor_plugin.cpp
@@ -7354,6 +7381,16 @@ msgstr "Gerar Contagem de Pontos:"
msgid "Flip Portal"
msgstr "Inverter Horizontalmente"
+#: editor/plugins/room_manager_editor_plugin.cpp
+#, fuzzy
+msgid "Occluder Set Transform"
+msgstr "Limpar Transformação"
+
+#: editor/plugins/room_manager_editor_plugin.cpp
+#, fuzzy
+msgid "Center Node"
+msgstr "Criar Nó"
+
#: editor/plugins/root_motion_editor_plugin.cpp
msgid "AnimationTree has no path set to an AnimationPlayer"
msgstr "AnimationTree não tem caminho definido para um AnimationPlayer"
@@ -7855,12 +7892,14 @@ msgid "Skeleton2D"
msgstr "Esqueleto2D"
#: editor/plugins/skeleton_2d_editor_plugin.cpp
-msgid "Make Rest Pose (From Bones)"
-msgstr "Faça Resto Pose (De Ossos)"
+#, fuzzy
+msgid "Reset to Rest Pose"
+msgstr "Definir os ossos para descansar Pose"
#: editor/plugins/skeleton_2d_editor_plugin.cpp
-msgid "Set Bones to Rest Pose"
-msgstr "Definir os ossos para descansar Pose"
+#, fuzzy
+msgid "Overwrite Rest Pose"
+msgstr "Sobrescrever Cena Existente"
#: editor/plugins/skeleton_editor_plugin.cpp
msgid "Create physical bones"
@@ -7887,6 +7926,71 @@ msgid "Perspective"
msgstr "Perspectiva"
#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Top Orthogonal"
+msgstr "Ortogonal"
+
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Top Perspective"
+msgstr "Perspectiva"
+
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Bottom Orthogonal"
+msgstr "Ortogonal"
+
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Bottom Perspective"
+msgstr "Perspectiva"
+
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Left Orthogonal"
+msgstr "Ortogonal"
+
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Right Perspective"
+msgstr "Perspectiva"
+
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Right Orthogonal"
+msgstr "Ortogonal"
+
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Front Orthogonal"
+msgstr "Ortogonal"
+
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Front Perspective"
+msgstr "Perspectiva"
+
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Rear Orthogonal"
+msgstr "Ortogonal"
+
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Rear Perspective"
+msgstr "Perspectiva"
+
+#. TRANSLATORS: This will be appended to the view name when Auto Orthogonal is enabled.
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid " [auto]"
+msgstr ""
+
+#. TRANSLATORS: This will be appended to the view name when Portal Occulusion is enabled.
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid " [portals active]"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
msgid "Transform Aborted."
msgstr "Transformação Abortada."
@@ -7924,9 +8028,8 @@ msgid "Translate"
msgstr "Translação:"
#: editor/plugins/spatial_editor_plugin.cpp
-#, fuzzy
msgid "Scale"
-msgstr "Escala:"
+msgstr "Scale"
#: editor/plugins/spatial_editor_plugin.cpp
msgid "Scaling: "
@@ -7958,9 +8061,8 @@ msgid "Yaw:"
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
-#, fuzzy
msgid "Size:"
-msgstr "Tamanho: "
+msgstr "Tamanho:"
#: editor/plugins/spatial_editor_plugin.cpp
#, fuzzy
@@ -8005,42 +8107,22 @@ msgid "Bottom View."
msgstr "Visão inferior."
#: editor/plugins/spatial_editor_plugin.cpp
-msgid "Bottom"
-msgstr "Baixo"
-
-#: editor/plugins/spatial_editor_plugin.cpp
msgid "Left View."
msgstr "Visão Esquerda."
#: editor/plugins/spatial_editor_plugin.cpp
-msgid "Left"
-msgstr "Esquerda"
-
-#: editor/plugins/spatial_editor_plugin.cpp
msgid "Right View."
msgstr "Visão Direita."
#: editor/plugins/spatial_editor_plugin.cpp
-msgid "Right"
-msgstr "Direita"
-
-#: editor/plugins/spatial_editor_plugin.cpp
msgid "Front View."
msgstr "Visão Frontal."
#: editor/plugins/spatial_editor_plugin.cpp
-msgid "Front"
-msgstr "Frente"
-
-#: editor/plugins/spatial_editor_plugin.cpp
msgid "Rear View."
msgstr "Visão Traseira."
#: editor/plugins/spatial_editor_plugin.cpp
-msgid "Rear"
-msgstr "Traseira"
-
-#: editor/plugins/spatial_editor_plugin.cpp
msgid "Align Transform with View"
msgstr "Alinhar Transformação com a Vista"
@@ -8316,6 +8398,11 @@ msgid "View Portal Culling"
msgstr "Configurações da Viewport"
#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "View Occlusion Culling"
+msgstr "Configurações da Viewport"
+
+#: editor/plugins/spatial_editor_plugin.cpp
#: modules/gridmap/grid_map_editor_plugin.cpp
msgid "Settings..."
msgstr "Configurações..."
@@ -8381,8 +8468,9 @@ msgid "Post"
msgstr "Pós"
#: editor/plugins/spatial_editor_plugin.cpp
-msgid "Nameless gizmo"
-msgstr "Coisa sem nome"
+#, fuzzy
+msgid "Unnamed Gizmo"
+msgstr "Projeto Sem Nome"
#: editor/plugins/sprite_editor_plugin.cpp
msgid "Create Mesh2D"
@@ -12570,6 +12658,16 @@ msgstr "Definir Posição do Ponto da Curva"
msgid "Set Portal Point Position"
msgstr "Definir Posição do Ponto da Curva"
+#: editor/spatial_editor_gizmos.cpp
+#, fuzzy
+msgid "Set Occluder Sphere Radius"
+msgstr "Alterar o Raio da Forma do Cilindro"
+
+#: editor/spatial_editor_gizmos.cpp
+#, fuzzy
+msgid "Set Occluder Sphere Position"
+msgstr "Colocar a Curva na Posição"
+
#: modules/csg/csg_gizmos.cpp
msgid "Change Cylinder Radius"
msgstr "Alterar Raio do Cilindro"
@@ -12855,6 +12953,11 @@ msgstr "Traçando mapas de luz"
msgid "Class name can't be a reserved keyword"
msgstr "Nome da classe não pode ser uma palavra reservada"
+#: modules/mono/csharp_script.cpp
+#, fuzzy
+msgid "Build Solution"
+msgstr "Seleção de preenchimento"
+
#: modules/mono/mono_gd/gd_mono_utils.cpp
msgid "End of inner exception stack trace"
msgstr "Fim da pilha de rastreamento de exceção interna"
@@ -13342,76 +13445,76 @@ msgstr "Buscar VisualScript"
msgid "Get %s"
msgstr "Receba %s"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Package name is missing."
msgstr "Nome do pacote está faltando."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Package segments must be of non-zero length."
msgstr "Seguimentos de pacote necessitam ser de tamanho diferente de zero."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "The character '%s' is not allowed in Android application package names."
msgstr ""
"O caractere '%s' não é permitido em nomes de pacotes de aplicações Android."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "A digit cannot be the first character in a package segment."
msgstr ""
"Um dígito não pode ser o primeiro caractere em um seguimento de pacote."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "The character '%s' cannot be the first character in a package segment."
msgstr ""
"O caractere '%s' não pode ser o primeiro caractere em um segmento de pacote."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "The package must have at least one '.' separator."
msgstr "O pacote deve ter pelo menos um separador '.'."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Select device from the list"
msgstr "Selecione um dispositivo da lista"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Running on %s"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
#, fuzzy
msgid "Exporting APK..."
msgstr "Exportando tudo"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
#, fuzzy
msgid "Uninstalling..."
msgstr "Desinstalar"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
#, fuzzy
msgid "Installing to device, please wait..."
msgstr "Carregando, por favor aguarde."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
#, fuzzy
msgid "Could not install to device: %s"
msgstr "Não foi possível instanciar cena!"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
#, fuzzy
msgid "Running on device..."
msgstr "Rodando Script Personalizado..."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
#, fuzzy
msgid "Could not execute on device."
msgstr "Não foi possível criar a pasta."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Unable to find the 'apksigner' tool."
msgstr "Não foi possível encontrar a ferramenta 'apksigner'."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Android build template not installed in the project. Install it from the "
"Project menu."
@@ -13419,7 +13522,7 @@ msgstr ""
"O modelo de compilação do Android não foi instalado no projeto. Instale "
"através do menu Projeto."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Either Debug Keystore, Debug User AND Debug Password settings must be "
"configured OR none of them."
@@ -13427,13 +13530,13 @@ msgstr ""
"As configurações Debug Keystore, Debug User E Debug Password devem ser "
"configuradas OU nenhuma delas."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Debug keystore not configured in the Editor Settings nor in the preset."
msgstr ""
"Porta-chaves de depuração não configurado nas Configurações do Editor e nem "
"na predefinição."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Either Release Keystore, Release User AND Release Password settings must be "
"configured OR none of them."
@@ -13441,54 +13544,54 @@ msgstr ""
"As configurações de Release Keystore, Release User AND Release Password "
"devem ser definidas OU nenhuma delas."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Release keystore incorrectly configured in the export preset."
msgstr ""
"Keystore de liberação incorretamente configurada na predefinição de "
"exportação."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "A valid Android SDK path is required in Editor Settings."
msgstr "Um caminho Android SDK é necessário nas Configurações do Editor."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Invalid Android SDK path in Editor Settings."
msgstr "Caminho do Android SDK está inválido para Configurações do Editor."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Missing 'platform-tools' directory!"
msgstr "Diretório 'ferramentas-da-plataforma' ausente!"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Unable to find Android SDK platform-tools' adb command."
msgstr ""
"Não foi possível encontrar o comando adb nas ferramentas do Android SDK."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Please check in the Android SDK directory specified in Editor Settings."
msgstr ""
"Por favor, verifique o caminho do Android SDK especificado nas Configurações "
"do Editor."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Missing 'build-tools' directory!"
msgstr "Diretório 'ferramentas-da-plataforma' está faltando !"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Unable to find Android SDK build-tools' apksigner command."
msgstr ""
"Não foi possível encontrar o comando apksigner nas ferramentas de build do "
"Android SDK."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Invalid public key for APK expansion."
msgstr "Chave pública inválida para expansão do APK."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Invalid package name:"
msgstr "Nome de pacote inválido:"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Invalid \"GodotPaymentV3\" module included in the \"android/modules\" "
"project setting (changed in Godot 3.2.2).\n"
@@ -13496,40 +13599,25 @@ msgstr ""
"Módulo \"GodotPaymentV3\" inválido incluido na configuração de projeto "
"\"android/modules\" (alterado em Godot 3.2.2).\n"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "\"Use Custom Build\" must be enabled to use the plugins."
msgstr ""
"\"Usar Compilação Customizada\" precisa estar ativo para ser possível "
"utilizar plugins."
-#: platform/android/export/export.cpp
-msgid ""
-"\"Degrees Of Freedom\" is only valid when \"Xr Mode\" is \"Oculus Mobile VR"
-"\"."
-msgstr ""
-"\"Degrees Of Freedom\" só é válido quando o \"Xr Mode\" é \"Oculus Mobile VR"
-"\"."
-
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"\"Hand Tracking\" is only valid when \"Xr Mode\" is \"Oculus Mobile VR\"."
msgstr ""
"\"Hand Tracking\" só é válido quando o \"Xr Mode\" é \"Oculus Mobile VR\"."
-#: platform/android/export/export.cpp
-msgid ""
-"\"Focus Awareness\" is only valid when \"Xr Mode\" is \"Oculus Mobile VR\"."
-msgstr ""
-"\"Focus Awareness\" só é válido quando o \"Oculus Mobile VR\" está no \"Xr "
-"Mode\"."
-
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "\"Export AAB\" is only valid when \"Use Custom Build\" is enabled."
msgstr ""
"\"Exportar AAB\" só é válido quando \"Usar Compilação Customizada\" está "
"habilitado."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"'apksigner' could not be found.\n"
"Please check the command is available in the Android SDK build-tools "
@@ -13537,57 +13625,56 @@ msgid ""
"The resulting %s is unsigned."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Signing debug %s..."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
#, fuzzy
msgid "Signing release %s..."
msgstr ""
"Escaneando arquivos,\n"
"Por favor aguarde..."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
#, fuzzy
msgid "Could not find keystore, unable to export."
msgstr "Não foi possível abrir o modelo para exportar:"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "'apksigner' returned with error #%d"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
#, fuzzy
msgid "Verifying %s..."
msgstr "Adicionando %s..."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "'apksigner' verification of %s failed."
msgstr ""
-#: platform/android/export/export.cpp
-#, fuzzy
+#: platform/android/export/export_plugin.cpp
msgid "Exporting for Android"
-msgstr "Exportando tudo"
+msgstr "Exportando para Android"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Invalid filename! Android App Bundle requires the *.aab extension."
msgstr "Nome de arquivo invalido! Android App Bunlde requer a extensão *.aab."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "APK Expansion not compatible with Android App Bundle."
msgstr "A expansão APK não é compatível com o Android App Bundle."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Invalid filename! Android APK requires the *.apk extension."
msgstr "Nome de arquivo inválido! Android APK requer a extensão *.apk."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Unsupported export format!\n"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Trying to build from a custom built template, but no version info for it "
"exists. Please reinstall from the 'Project' menu."
@@ -13596,7 +13683,7 @@ msgstr ""
"nenhuma informação de versão para ele existe. Por favor, reinstale pelo menu "
"'Projeto'."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Android build version mismatch:\n"
" Template installed: %s\n"
@@ -13608,26 +13695,26 @@ msgstr ""
" Versão do Godot: %s\n"
"Por favor reinstale o modelo de compilação do Android pelo menu 'Projeto'."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Unable to overwrite res://android/build/res/*.xml files with project name"
msgstr ""
-#: platform/android/export/export.cpp
-#, fuzzy
+#: platform/android/export/export_plugin.cpp
msgid "Could not export project files to gradle project\n"
-msgstr "Não foi possível encontrar project.godot no caminho do projeto."
+msgstr ""
+"Não foi possível exportar os arquivos do projeto ao projeto do gradle\n"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
#, fuzzy
msgid "Could not write expansion package file!"
msgstr "Não foi possível escrever o arquivo:"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Building Android Project (gradle)"
msgstr "Construindo Projeto Android (gradle)"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Building of Android project failed, check output for the error.\n"
"Alternatively visit docs.godotengine.org for Android build documentation."
@@ -13636,11 +13723,11 @@ msgstr ""
"Alternativamente, visite docs.godotengine.org para ver a documentação de "
"compilação do Android."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Moving output"
msgstr "Movendo saída"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Unable to copy and rename export file, check gradle project directory for "
"outputs."
@@ -13648,24 +13735,24 @@ msgstr ""
"Não foi possível copiar e renomear o arquivo de exportação, verifique o "
"diretório do projeto gradle por saídas."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
#, fuzzy
msgid "Package not found: %s"
msgstr "Animação não encontrada: '%s'"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
#, fuzzy
msgid "Creating APK..."
msgstr "Criando contornos..."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
#, fuzzy
msgid ""
"Could not find template APK to export:\n"
"%s"
msgstr "Não foi possível abrir o modelo para exportar:"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Missing libraries in the export template for the selected architectures: "
"%s.\n"
@@ -13673,21 +13760,21 @@ msgid ""
"architectures in the export preset."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
#, fuzzy
msgid "Adding files..."
msgstr "Adicionando %s..."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
#, fuzzy
msgid "Could not export project files"
msgstr "Não foi possível escrever o arquivo:"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Aligning APK..."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Could not unzip temporary unaligned APK."
msgstr ""
@@ -14225,6 +14312,14 @@ msgstr ""
"NavigationMeshInstance deve ser filho ou neto de um nó Navigation. Ele "
"apenas fornece dados de navegação."
+#: scene/3d/occluder.cpp
+msgid "No shape is set."
+msgstr ""
+
+#: scene/3d/occluder.cpp
+msgid "Only uniform scales are supported."
+msgstr ""
+
#: scene/3d/particles.cpp
msgid ""
"GPU-based particles are not supported by the GLES2 video driver.\n"
@@ -14552,6 +14647,14 @@ msgstr "Deve usar uma extensão válida."
msgid "Enable grid minimap."
msgstr "Ativar minimapa de grade."
+#: scene/gui/nine_patch_rect.cpp
+msgid ""
+"The Tile and Tile Fit options for Axis Stretch properties are only effective "
+"when using the GLES3 rendering backend.\n"
+"The GLES2 backend is currently in use, so these modes will act like Stretch "
+"instead."
+msgstr ""
+
#: scene/gui/popup.cpp
msgid ""
"Popups will hide by default unless you call popup() or any of the popup*() "
@@ -14606,6 +14709,10 @@ msgid "Viewport size must be greater than 0 to render anything."
msgstr ""
"O tamanho da Viewport deve ser maior do que 0 para renderizar qualquer coisa."
+#: scene/resources/occluder_shape.cpp
+msgid "OccluderShapeSphere Set Spheres"
+msgstr ""
+
#: scene/resources/visual_shader_nodes.cpp
msgid ""
"The sampler port is connected but not used. Consider changing the source to "
@@ -14659,6 +14766,41 @@ msgstr "Atribuição à uniforme."
msgid "Constants cannot be modified."
msgstr "Constantes não podem serem modificadas."
+#~ msgid "Make Rest Pose (From Bones)"
+#~ msgstr "Faça Resto Pose (De Ossos)"
+
+#~ msgid "Bottom"
+#~ msgstr "Baixo"
+
+#~ msgid "Left"
+#~ msgstr "Esquerda"
+
+#~ msgid "Right"
+#~ msgstr "Direita"
+
+#~ msgid "Front"
+#~ msgstr "Frente"
+
+#~ msgid "Rear"
+#~ msgstr "Traseira"
+
+#~ msgid "Nameless gizmo"
+#~ msgstr "Coisa sem nome"
+
+#~ msgid ""
+#~ "\"Degrees Of Freedom\" is only valid when \"Xr Mode\" is \"Oculus Mobile "
+#~ "VR\"."
+#~ msgstr ""
+#~ "\"Degrees Of Freedom\" só é válido quando o \"Xr Mode\" é \"Oculus Mobile "
+#~ "VR\"."
+
+#~ msgid ""
+#~ "\"Focus Awareness\" is only valid when \"Xr Mode\" is \"Oculus Mobile VR"
+#~ "\"."
+#~ msgstr ""
+#~ "\"Focus Awareness\" só é válido quando o \"Oculus Mobile VR\" está no "
+#~ "\"Xr Mode\"."
+
#~ msgid "Package Contents:"
#~ msgstr "Conteúdo:"
@@ -16604,9 +16746,6 @@ msgstr "Constantes não podem serem modificadas."
#~ msgid "Images:"
#~ msgstr "Imagens:"
-#~ msgid "Group"
-#~ msgstr "Grupo"
-
#~ msgid "Sample Conversion Mode: (.wav files):"
#~ msgstr "Modo de Conversão de Amostras (arquivos .wav):"
@@ -16716,9 +16855,6 @@ msgstr "Constantes não podem serem modificadas."
#~ msgid "Deploy File Server Clients"
#~ msgstr "Instalar Clientes do Servidor de Arquivos"
-#~ msgid "Overwrite Existing Scene"
-#~ msgstr "Sobrescrever Cena Existente"
-
#~ msgid "Overwrite Existing, Keep Materials"
#~ msgstr "Sobrescrever Existente, Manter Materiais"
diff --git a/editor/translations/ro.po b/editor/translations/ro.po
index 2b1626bfe2..ecf041058c 100644
--- a/editor/translations/ro.po
+++ b/editor/translations/ro.po
@@ -1036,7 +1036,7 @@ msgstr ""
msgid "Dependencies"
msgstr "Dependențe"
-#: editor/dependency_editor.cpp
+#: editor/dependency_editor.cpp editor/editor_resource_picker.cpp
msgid "Resource"
msgstr "Resursă"
@@ -1708,13 +1708,13 @@ msgstr ""
"Activați „Import Etc†în Setările de proiect sau dezactivați „Driver "
"Fallback Enabledâ€."
-#: editor/editor_export.cpp platform/android/export/export.cpp
+#: editor/editor_export.cpp platform/android/export/export_plugin.cpp
#: platform/iphone/export/export.cpp platform/javascript/export/export.cpp
#: platform/osx/export/export.cpp platform/uwp/export/export.cpp
msgid "Custom debug template not found."
msgstr "Fișierul șablon de depanare personalizat nu a fost găsit."
-#: editor/editor_export.cpp platform/android/export/export.cpp
+#: editor/editor_export.cpp platform/android/export/export_plugin.cpp
#: platform/iphone/export/export.cpp platform/javascript/export/export.cpp
#: platform/osx/export/export.cpp platform/uwp/export/export.cpp
msgid "Custom release template not found."
@@ -2101,7 +2101,7 @@ msgstr ""
msgid "(Re)Importing Assets"
msgstr "(Re)Importând Asset-uri"
-#: editor/editor_help.cpp editor/plugins/spatial_editor_plugin.cpp
+#: editor/editor_help.cpp
msgid "Top"
msgstr "Sus"
@@ -2609,6 +2609,32 @@ msgid "Current scene not saved. Open anyway?"
msgstr "Scena curentă nu este salvată. Deschizi oricum?"
#: editor/editor_node.cpp
+msgid "Can't undo while mouse buttons are pressed."
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "Nothing to undo."
+msgstr ""
+
+#: editor/editor_node.cpp
+#, fuzzy
+msgid "Undo: %s"
+msgstr "Revenire"
+
+#: editor/editor_node.cpp
+msgid "Can't redo while mouse buttons are pressed."
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "Nothing to redo."
+msgstr ""
+
+#: editor/editor_node.cpp
+#, fuzzy
+msgid "Redo: %s"
+msgstr "Reîntoarcere"
+
+#: editor/editor_node.cpp
msgid "Can't reload a scene that was never saved."
msgstr "Nu pot reîncărca o scenă care nu a fost salvată niciodată."
@@ -3295,6 +3321,11 @@ msgid "Merge With Existing"
msgstr "Contopește Cu Existentul"
#: editor/editor_node.cpp
+#, fuzzy
+msgid "Apply MeshInstance Transforms"
+msgstr "Anim Schimbare transformare"
+
+#: editor/editor_node.cpp
msgid "Open & Run a Script"
msgstr "Deschide și Execută un Script"
@@ -3543,6 +3574,10 @@ msgid ""
"property (%s)."
msgstr ""
+#: editor/editor_resource_picker.cpp
+msgid "Quick Load"
+msgstr ""
+
#: editor/editor_resource_picker.cpp editor/property_editor.cpp
msgid "Make Unique"
msgstr ""
@@ -5701,6 +5736,18 @@ msgid "Move CanvasItem \"%s\" to (%d, %d)"
msgstr "Editează ObiectulPânză"
#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Locked"
+msgstr "Selectează"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Grouped"
+msgstr "Grupuri"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
msgid ""
"Children of containers have their anchors and margins values overridden by "
"their parent."
@@ -6672,7 +6719,13 @@ msgid "Remove Selected Item"
msgstr "Elimină Obiectul Selectat"
#: editor/plugins/mesh_library_editor_plugin.cpp
-msgid "Import from Scene"
+#, fuzzy
+msgid "Import from Scene (Ignore Transforms)"
+msgstr "Importă din Scenă"
+
+#: editor/plugins/mesh_library_editor_plugin.cpp
+#, fuzzy
+msgid "Import from Scene (Apply Transforms)"
msgstr "Importă din Scenă"
#: editor/plugins/mesh_library_editor_plugin.cpp
@@ -7289,6 +7342,16 @@ msgstr "Număr de Puncte Generate:"
msgid "Flip Portal"
msgstr ""
+#: editor/plugins/room_manager_editor_plugin.cpp
+#, fuzzy
+msgid "Occluder Set Transform"
+msgstr "Anim Schimbare transformare"
+
+#: editor/plugins/room_manager_editor_plugin.cpp
+#, fuzzy
+msgid "Center Node"
+msgstr "Creează Nod"
+
#: editor/plugins/root_motion_editor_plugin.cpp
msgid "AnimationTree has no path set to an AnimationPlayer"
msgstr ""
@@ -7810,12 +7873,14 @@ msgid "Skeleton2D"
msgstr "Singleton (Unicat)"
#: editor/plugins/skeleton_2d_editor_plugin.cpp
-msgid "Make Rest Pose (From Bones)"
-msgstr ""
+#, fuzzy
+msgid "Reset to Rest Pose"
+msgstr "Încărcați Implicit"
#: editor/plugins/skeleton_2d_editor_plugin.cpp
-msgid "Set Bones to Rest Pose"
-msgstr ""
+#, fuzzy
+msgid "Overwrite Rest Pose"
+msgstr "extindere:"
#: editor/plugins/skeleton_editor_plugin.cpp
#, fuzzy
@@ -7844,6 +7909,61 @@ msgid "Perspective"
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Top Orthogonal"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Top Perspective"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Bottom Orthogonal"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Bottom Perspective"
+msgstr "Mod Rotație"
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Left Orthogonal"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Right Perspective"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Right Orthogonal"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Front Orthogonal"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Front Perspective"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Rear Orthogonal"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Rear Perspective"
+msgstr ""
+
+#. TRANSLATORS: This will be appended to the view name when Auto Orthogonal is enabled.
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid " [auto]"
+msgstr ""
+
+#. TRANSLATORS: This will be appended to the view name when Portal Occulusion is enabled.
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid " [portals active]"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
msgid "Transform Aborted."
msgstr ""
@@ -7960,42 +8080,22 @@ msgid "Bottom View."
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
-msgid "Bottom"
-msgstr ""
-
-#: editor/plugins/spatial_editor_plugin.cpp
msgid "Left View."
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
-msgid "Left"
-msgstr ""
-
-#: editor/plugins/spatial_editor_plugin.cpp
msgid "Right View."
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
-msgid "Right"
-msgstr ""
-
-#: editor/plugins/spatial_editor_plugin.cpp
msgid "Front View."
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
-msgid "Front"
-msgstr ""
-
-#: editor/plugins/spatial_editor_plugin.cpp
msgid "Rear View."
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
-msgid "Rear"
-msgstr ""
-
-#: editor/plugins/spatial_editor_plugin.cpp
msgid "Align Transform with View"
msgstr ""
@@ -8265,6 +8365,11 @@ msgid "View Portal Culling"
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "View Occlusion Culling"
+msgstr "Editează Poligon"
+
+#: editor/plugins/spatial_editor_plugin.cpp
#: modules/gridmap/grid_map_editor_plugin.cpp
msgid "Settings..."
msgstr "Setări ..."
@@ -8330,7 +8435,7 @@ msgid "Post"
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
-msgid "Nameless gizmo"
+msgid "Unnamed Gizmo"
msgstr ""
#: editor/plugins/sprite_editor_plugin.cpp
@@ -12464,6 +12569,15 @@ msgstr "Setare poziție punct de curbă"
msgid "Set Portal Point Position"
msgstr "Setare poziție punct de curbă"
+#: editor/spatial_editor_gizmos.cpp
+msgid "Set Occluder Sphere Radius"
+msgstr ""
+
+#: editor/spatial_editor_gizmos.cpp
+#, fuzzy
+msgid "Set Occluder Sphere Position"
+msgstr "Setare Curbă În Poziție"
+
#: modules/csg/csg_gizmos.cpp
#, fuzzy
msgid "Change Cylinder Radius"
@@ -12759,6 +12873,11 @@ msgstr "Se Genereaza Lightmaps"
msgid "Class name can't be a reserved keyword"
msgstr ""
+#: modules/mono/csharp_script.cpp
+#, fuzzy
+msgid "Build Solution"
+msgstr "Toată selecția"
+
#: modules/mono/mono_gd/gd_mono_utils.cpp
msgid "End of inner exception stack trace"
msgstr ""
@@ -13245,165 +13364,154 @@ msgstr "Curăță Scriptul"
msgid "Get %s"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Package name is missing."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Package segments must be of non-zero length."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "The character '%s' is not allowed in Android application package names."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "A digit cannot be the first character in a package segment."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "The character '%s' cannot be the first character in a package segment."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "The package must have at least one '.' separator."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Select device from the list"
msgstr "Selectează un dispozitiv din listă"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Running on %s"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
#, fuzzy
msgid "Exporting APK..."
msgstr "Exportare"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
#, fuzzy
msgid "Uninstalling..."
msgstr "Dezinstalează"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
#, fuzzy
msgid "Installing to device, please wait..."
msgstr "Se recuperează oglinzile, te rog așteaptă..."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
#, fuzzy
msgid "Could not install to device: %s"
msgstr "Nu s-a putut porni subprocesul!"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
#, fuzzy
msgid "Running on device..."
msgstr "Se Execută un Script Personalizat..."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
#, fuzzy
msgid "Could not execute on device."
msgstr "Directorul nu a putut fi creat."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Unable to find the 'apksigner' tool."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Android build template not installed in the project. Install it from the "
"Project menu."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Either Debug Keystore, Debug User AND Debug Password settings must be "
"configured OR none of them."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Debug keystore not configured in the Editor Settings nor in the preset."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Either Release Keystore, Release User AND Release Password settings must be "
"configured OR none of them."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Release keystore incorrectly configured in the export preset."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "A valid Android SDK path is required in Editor Settings."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Invalid Android SDK path in Editor Settings."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Missing 'platform-tools' directory!"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Unable to find Android SDK platform-tools' adb command."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Please check in the Android SDK directory specified in Editor Settings."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Missing 'build-tools' directory!"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Unable to find Android SDK build-tools' apksigner command."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Invalid public key for APK expansion."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Invalid package name:"
msgstr "Nume pachet nevalid:"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Invalid \"GodotPaymentV3\" module included in the \"android/modules\" "
"project setting (changed in Godot 3.2.2).\n"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "\"Use Custom Build\" must be enabled to use the plugins."
msgstr ""
-#: platform/android/export/export.cpp
-msgid ""
-"\"Degrees Of Freedom\" is only valid when \"Xr Mode\" is \"Oculus Mobile VR"
-"\"."
-msgstr ""
-
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"\"Hand Tracking\" is only valid when \"Xr Mode\" is \"Oculus Mobile VR\"."
msgstr ""
-#: platform/android/export/export.cpp
-msgid ""
-"\"Focus Awareness\" is only valid when \"Xr Mode\" is \"Oculus Mobile VR\"."
-msgstr ""
-
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "\"Export AAB\" is only valid when \"Use Custom Build\" is enabled."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"'apksigner' could not be found.\n"
"Please check the command is available in the Android SDK build-tools "
@@ -13411,62 +13519,62 @@ msgid ""
"The resulting %s is unsigned."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Signing debug %s..."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
#, fuzzy
msgid "Signing release %s..."
msgstr ""
"Se Scanează Fișierele,\n"
"Te Rog Așteaptă..."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Could not find keystore, unable to export."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "'apksigner' returned with error #%d"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
#, fuzzy
msgid "Verifying %s..."
msgstr "Se adaugă %s..."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "'apksigner' verification of %s failed."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
#, fuzzy
msgid "Exporting for Android"
msgstr "Exportare"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Invalid filename! Android App Bundle requires the *.aab extension."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "APK Expansion not compatible with Android App Bundle."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Invalid filename! Android APK requires the *.apk extension."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Unsupported export format!\n"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Trying to build from a custom built template, but no version info for it "
"exists. Please reinstall from the 'Project' menu."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Android build version mismatch:\n"
" Template installed: %s\n"
@@ -13474,56 +13582,56 @@ msgid ""
"Please reinstall Android build template from 'Project' menu."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Unable to overwrite res://android/build/res/*.xml files with project name"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Could not export project files to gradle project\n"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Could not write expansion package file!"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Building Android Project (gradle)"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Building of Android project failed, check output for the error.\n"
"Alternatively visit docs.godotengine.org for Android build documentation."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Moving output"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Unable to copy and rename export file, check gradle project directory for "
"outputs."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
#, fuzzy
msgid "Package not found: %s"
msgstr "Unelte Animație"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
#, fuzzy
msgid "Creating APK..."
msgstr "Crearea conturilor..."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Could not find template APK to export:\n"
"%s"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Missing libraries in the export template for the selected architectures: "
"%s.\n"
@@ -13531,21 +13639,21 @@ msgid ""
"architectures in the export preset."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
#, fuzzy
msgid "Adding files..."
msgstr "Se adaugă %s..."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
#, fuzzy
msgid "Could not export project files"
msgstr "Nu s-a putut porni subprocesul!"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Aligning APK..."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Could not unzip temporary unaligned APK."
msgstr ""
@@ -14008,6 +14116,14 @@ msgid ""
"It only provides navigation data."
msgstr ""
+#: scene/3d/occluder.cpp
+msgid "No shape is set."
+msgstr ""
+
+#: scene/3d/occluder.cpp
+msgid "Only uniform scales are supported."
+msgstr ""
+
#: scene/3d/particles.cpp
msgid ""
"GPU-based particles are not supported by the GLES2 video driver.\n"
@@ -14300,6 +14416,14 @@ msgstr "Trebuie să utilizaţi o extensie valida."
msgid "Enable grid minimap."
msgstr "Activează minimapa in format grilă."
+#: scene/gui/nine_patch_rect.cpp
+msgid ""
+"The Tile and Tile Fit options for Axis Stretch properties are only effective "
+"when using the GLES3 rendering backend.\n"
+"The GLES2 backend is currently in use, so these modes will act like Stretch "
+"instead."
+msgstr ""
+
#: scene/gui/popup.cpp
msgid ""
"Popups will hide by default unless you call popup() or any of the popup*() "
@@ -14340,6 +14464,10 @@ msgstr ""
msgid "Viewport size must be greater than 0 to render anything."
msgstr ""
+#: scene/resources/occluder_shape.cpp
+msgid "OccluderShapeSphere Set Spheres"
+msgstr ""
+
#: scene/resources/visual_shader_nodes.cpp
msgid ""
"The sampler port is connected but not used. Consider changing the source to "
diff --git a/editor/translations/ru.po b/editor/translations/ru.po
index 50d4484e4b..c402e80ff1 100644
--- a/editor/translations/ru.po
+++ b/editor/translations/ru.po
@@ -102,7 +102,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Godot Engine editor\n"
"POT-Creation-Date: \n"
-"PO-Revision-Date: 2021-08-10 21:40+0000\n"
+"PO-Revision-Date: 2021-08-14 19:04+0000\n"
"Last-Translator: Danil Alexeev <danil@alexeev.xyz>\n"
"Language-Team: Russian <https://hosted.weblate.org/projects/godot-engine/"
"godot/ru/>\n"
@@ -462,15 +462,13 @@ msgstr "Ð’Ñтавить"
#. TRANSLATORS: This describes the target of new animation track, will be inserted into another string.
#: editor/animation_track_editor.cpp
-#, fuzzy
msgid "node '%s'"
-msgstr "Ðе удаётÑÑ Ð¾Ñ‚ÐºÑ€Ñ‹Ñ‚ÑŒ '%s'."
+msgstr "узел «%s»"
#. TRANSLATORS: This describes the target of new animation track, will be inserted into another string.
#: editor/animation_track_editor.cpp
-#, fuzzy
msgid "animation"
-msgstr "ÐнимациÑ"
+msgstr "анимациÑ"
#: editor/animation_track_editor.cpp
msgid "AnimationPlayer can't animate itself, only other players."
@@ -478,9 +476,8 @@ msgstr "AnimationPlayer не может анимировать Ñам ÑебÑ,
#. TRANSLATORS: This describes the target of new animation track, will be inserted into another string.
#: editor/animation_track_editor.cpp
-#, fuzzy
msgid "property '%s'"
-msgstr "СвойÑтво «%s» не ÑущеÑтвует."
+msgstr "ÑвойÑтво «%s»"
#: editor/animation_track_editor.cpp
msgid "Anim Create & Insert"
@@ -1118,7 +1115,7 @@ msgstr ""
msgid "Dependencies"
msgstr "ЗавиÑимоÑти"
-#: editor/dependency_editor.cpp
+#: editor/dependency_editor.cpp editor/editor_resource_picker.cpp
msgid "Resource"
msgstr "РеÑурÑ"
@@ -1773,13 +1770,13 @@ msgstr ""
"Включите «Import Pvrtc» в ÐаÑтройках проекта или отключите «Driver Fallback "
"Enabled»."
-#: editor/editor_export.cpp platform/android/export/export.cpp
+#: editor/editor_export.cpp platform/android/export/export_plugin.cpp
#: platform/iphone/export/export.cpp platform/javascript/export/export.cpp
#: platform/osx/export/export.cpp platform/uwp/export/export.cpp
msgid "Custom debug template not found."
msgstr "ПользовательÑкий отладочный шаблон не найден."
-#: editor/editor_export.cpp platform/android/export/export.cpp
+#: editor/editor_export.cpp platform/android/export/export_plugin.cpp
#: platform/iphone/export/export.cpp platform/javascript/export/export.cpp
#: platform/osx/export/export.cpp platform/uwp/export/export.cpp
msgid "Custom release template not found."
@@ -2162,7 +2159,7 @@ msgstr ""
msgid "(Re)Importing Assets"
msgstr "(Ре)Импортировать"
-#: editor/editor_help.cpp editor/plugins/spatial_editor_plugin.cpp
+#: editor/editor_help.cpp
msgid "Top"
msgstr "Верх"
@@ -2399,6 +2396,9 @@ msgid ""
"Update Continuously is enabled, which can increase power usage. Click to "
"disable it."
msgstr ""
+"ВращаетÑÑ Ð¿Ñ€Ð¸ перериÑовке окна редактора.\n"
+"Включена Ð¾Ð¿Ñ†Ð¸Ñ Â«ÐžÐ±Ð½Ð¾Ð²Ð»Ñть непрерывно», ÐºÐ¾Ñ‚Ð¾Ñ€Ð°Ñ Ð¼Ð¾Ð¶ÐµÑ‚ увеличить "
+"Ñнергопотребление. Щёлкните, чтобы отключить её."
#: editor/editor_node.cpp
msgid "Spins when the editor window redraws."
@@ -2676,6 +2676,32 @@ msgid "Current scene not saved. Open anyway?"
msgstr "Ð¢ÐµÐºÑƒÑ‰Ð°Ñ Ñцена не Ñохранена. Открыть в любом Ñлучае?"
#: editor/editor_node.cpp
+msgid "Can't undo while mouse buttons are pressed."
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "Nothing to undo."
+msgstr ""
+
+#: editor/editor_node.cpp
+#, fuzzy
+msgid "Undo: %s"
+msgstr "Отменить"
+
+#: editor/editor_node.cpp
+msgid "Can't redo while mouse buttons are pressed."
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "Nothing to redo."
+msgstr ""
+
+#: editor/editor_node.cpp
+#, fuzzy
+msgid "Redo: %s"
+msgstr "Повторить"
+
+#: editor/editor_node.cpp
msgid "Can't reload a scene that was never saved."
msgstr "Ðе возможно загрузить Ñцену, ÐºÐ¾Ñ‚Ð¾Ñ€Ð°Ñ Ð½Ðµ была Ñохранена."
@@ -3361,6 +3387,11 @@ msgid "Merge With Existing"
msgstr "Объединить Ñ ÑущеÑтвующей"
#: editor/editor_node.cpp
+#, fuzzy
+msgid "Apply MeshInstance Transforms"
+msgstr "Изменить положение"
+
+#: editor/editor_node.cpp
msgid "Open & Run a Script"
msgstr "Открыть и запуÑтить Ñкрипт"
@@ -3617,6 +3648,10 @@ msgstr ""
"Выбранные реÑурÑÑ‹ (%s) не ÑоответÑтвуют типам, ожидаемым Ð´Ð»Ñ Ð´Ð°Ð½Ð½Ð¾Ð³Ð¾ "
"ÑвойÑтва (%s)."
+#: editor/editor_resource_picker.cpp
+msgid "Quick Load"
+msgstr ""
+
#: editor/editor_resource_picker.cpp editor/property_editor.cpp
msgid "Make Unique"
msgstr "Сделать уникальным"
@@ -3909,14 +3944,12 @@ msgid "Download from:"
msgstr "Загрузить из:"
#: editor/export_template_manager.cpp
-#, fuzzy
msgid "Open in Web Browser"
-msgstr "ЗапуÑтить в браузере"
+msgstr "Открыть в веб-браузере"
#: editor/export_template_manager.cpp
-#, fuzzy
msgid "Copy Mirror URL"
-msgstr "Копировать ошибку"
+msgstr "Копировать URL зеркала"
#: editor/export_template_manager.cpp
msgid "Download and Install"
@@ -5720,6 +5753,18 @@ msgid "Move CanvasItem \"%s\" to (%d, %d)"
msgstr "Передвинуть CanvasItem «%s» в (%d, %d)"
#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Locked"
+msgstr "Заблокировать выбранное"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Grouped"
+msgstr "Группа"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
msgid ""
"Children of containers have their anchors and margins values overridden by "
"their parent."
@@ -6658,7 +6703,13 @@ msgid "Remove Selected Item"
msgstr "Удалить выбранный Ñлемент"
#: editor/plugins/mesh_library_editor_plugin.cpp
-msgid "Import from Scene"
+#, fuzzy
+msgid "Import from Scene (Ignore Transforms)"
+msgstr "Импортировать из Ñцены"
+
+#: editor/plugins/mesh_library_editor_plugin.cpp
+#, fuzzy
+msgid "Import from Scene (Apply Transforms)"
msgstr "Импортировать из Ñцены"
#: editor/plugins/mesh_library_editor_plugin.cpp
@@ -7249,6 +7300,16 @@ msgstr "Генерировать точки"
msgid "Flip Portal"
msgstr "Перевернуть портал"
+#: editor/plugins/room_manager_editor_plugin.cpp
+#, fuzzy
+msgid "Occluder Set Transform"
+msgstr "ОчиÑтить преобразование"
+
+#: editor/plugins/room_manager_editor_plugin.cpp
+#, fuzzy
+msgid "Center Node"
+msgstr "Создать узел"
+
#: editor/plugins/root_motion_editor_plugin.cpp
msgid "AnimationTree has no path set to an AnimationPlayer"
msgstr "AnimationTree - не задан путь к AnimationPlayer"
@@ -7753,12 +7814,14 @@ msgid "Skeleton2D"
msgstr "2D Ñкелет"
#: editor/plugins/skeleton_2d_editor_plugin.cpp
-msgid "Make Rest Pose (From Bones)"
-msgstr "Сделать позу Ð¿Ð¾ÐºÐ¾Ñ (из коÑтей)"
+#, fuzzy
+msgid "Reset to Rest Pose"
+msgstr "УÑтановить коÑти в позу покоÑ"
#: editor/plugins/skeleton_2d_editor_plugin.cpp
-msgid "Set Bones to Rest Pose"
-msgstr "УÑтановить коÑти в позу покоÑ"
+#, fuzzy
+msgid "Overwrite Rest Pose"
+msgstr "ПерезапиÑать ÑущеÑтвующую Ñцену"
#: editor/plugins/skeleton_editor_plugin.cpp
msgid "Create physical bones"
@@ -7785,6 +7848,71 @@ msgid "Perspective"
msgstr "ПерÑпективный"
#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Top Orthogonal"
+msgstr "Ортогональный"
+
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Top Perspective"
+msgstr "ПерÑпективный"
+
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Bottom Orthogonal"
+msgstr "Ортогональный"
+
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Bottom Perspective"
+msgstr "ПерÑпективный"
+
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Left Orthogonal"
+msgstr "Ортогональный"
+
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Right Perspective"
+msgstr "ПерÑпективный"
+
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Right Orthogonal"
+msgstr "Ортогональный"
+
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Front Orthogonal"
+msgstr "Ортогональный"
+
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Front Perspective"
+msgstr "ПерÑпективный"
+
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Rear Orthogonal"
+msgstr "Ортогональный"
+
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Rear Perspective"
+msgstr "ПерÑпективный"
+
+#. TRANSLATORS: This will be appended to the view name when Auto Orthogonal is enabled.
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid " [auto]"
+msgstr ""
+
+#. TRANSLATORS: This will be appended to the view name when Portal Occulusion is enabled.
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid " [portals active]"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
msgid "Transform Aborted."
msgstr "Преобразование прервано."
@@ -7892,42 +8020,22 @@ msgid "Bottom View."
msgstr "Вид Ñнизу."
#: editor/plugins/spatial_editor_plugin.cpp
-msgid "Bottom"
-msgstr "Ðиз"
-
-#: editor/plugins/spatial_editor_plugin.cpp
msgid "Left View."
msgstr "Вид Ñлева."
#: editor/plugins/spatial_editor_plugin.cpp
-msgid "Left"
-msgstr "Лево"
-
-#: editor/plugins/spatial_editor_plugin.cpp
msgid "Right View."
msgstr "Вид Ñправа."
#: editor/plugins/spatial_editor_plugin.cpp
-msgid "Right"
-msgstr "Право"
-
-#: editor/plugins/spatial_editor_plugin.cpp
msgid "Front View."
msgstr "Вид Ñпереди."
#: editor/plugins/spatial_editor_plugin.cpp
-msgid "Front"
-msgstr "Перед"
-
-#: editor/plugins/spatial_editor_plugin.cpp
msgid "Rear View."
msgstr "Вид Ñзади."
#: editor/plugins/spatial_editor_plugin.cpp
-msgid "Rear"
-msgstr "Зад"
-
-#: editor/plugins/spatial_editor_plugin.cpp
msgid "Align Transform with View"
msgstr "ВыровнÑть транÑформации Ñ Ð²Ð¸Ð´Ð¾Ð¼"
@@ -8200,6 +8308,11 @@ msgid "View Portal Culling"
msgstr "Отображать portal culling"
#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "View Occlusion Culling"
+msgstr "Отображать portal culling"
+
+#: editor/plugins/spatial_editor_plugin.cpp
#: modules/gridmap/grid_map_editor_plugin.cpp
msgid "Settings..."
msgstr "ÐаÑтройки..."
@@ -8265,8 +8378,9 @@ msgid "Post"
msgstr "ПоÑле"
#: editor/plugins/spatial_editor_plugin.cpp
-msgid "Nameless gizmo"
-msgstr "БезымÑнный гизмо"
+#, fuzzy
+msgid "Unnamed Gizmo"
+msgstr "БезымÑнный проект"
#: editor/plugins/sprite_editor_plugin.cpp
msgid "Create Mesh2D"
@@ -8725,6 +8839,9 @@ msgid ""
"Select a theme type from the list to edit its items.\n"
"You can add a custom type or import a type with its items from another theme."
msgstr ""
+"Выберите тип темы из ÑпиÑка, чтобы отредактировать его Ñлементы.\n"
+"Ð’Ñ‹ можете добавить пользовательÑкий тип или импортировать тип Ñ ÐµÐ³Ð¾ "
+"Ñлементами из другой темы."
#: editor/plugins/theme_editor_plugin.cpp
msgid "Remove All Color Items"
@@ -8755,6 +8872,8 @@ msgid ""
"This theme type is empty.\n"
"Add more items to it manually or by importing from another theme."
msgstr ""
+"Этот тип темы пуÑÑ‚.\n"
+"Добавьте в него Ñлементы вручную или импортировав из другой темы."
#: editor/plugins/theme_editor_plugin.cpp
msgid "Add Color Item"
@@ -12385,14 +12504,22 @@ msgid "Change Ray Shape Length"
msgstr "Изменить длину луча"
#: editor/spatial_editor_gizmos.cpp
-#, fuzzy
msgid "Set Room Point Position"
-msgstr "УÑтановить положение точки кривой"
+msgstr "Задать положение точки комнаты"
#: editor/spatial_editor_gizmos.cpp
-#, fuzzy
msgid "Set Portal Point Position"
-msgstr "УÑтановить положение точки кривой"
+msgstr "Задать положение точки портала"
+
+#: editor/spatial_editor_gizmos.cpp
+#, fuzzy
+msgid "Set Occluder Sphere Radius"
+msgstr "Изменить Ñ€Ð°Ð´Ð¸ÑƒÑ Ñ†Ð¸Ð»Ð¸Ð½Ð´Ñ€Ð°"
+
+#: editor/spatial_editor_gizmos.cpp
+#, fuzzy
+msgid "Set Occluder Sphere Position"
+msgstr "УÑтановить позицию входа кривой"
#: modules/csg/csg_gizmos.cpp
msgid "Change Cylinder Radius"
@@ -12676,6 +12803,11 @@ msgstr "ПоÑтроение карт оÑвещениÑ"
msgid "Class name can't be a reserved keyword"
msgstr "Ð˜Ð¼Ñ ÐºÐ»Ð°ÑÑа не может быть зарезервированным ключевым Ñловом"
+#: modules/mono/csharp_script.cpp
+#, fuzzy
+msgid "Build Solution"
+msgstr "Заполнить выбранное"
+
#: modules/mono/mono_gd/gd_mono_utils.cpp
msgid "End of inner exception stack trace"
msgstr "Конец траÑÑировки внутреннего Ñтека иÑключений"
@@ -13159,74 +13291,74 @@ msgstr "ИÑкать VisualScript"
msgid "Get %s"
msgstr "Получить %s"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Package name is missing."
msgstr "ОтÑутÑтвует Ð¸Ð¼Ñ Ð¿Ð°ÐºÐµÑ‚Ð°."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Package segments must be of non-zero length."
msgstr "ЧаÑти пакета не могут быть пуÑтыми."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "The character '%s' is not allowed in Android application package names."
msgstr "Символ «%s» не разрешён в имени пакета Android-приложениÑ."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "A digit cannot be the first character in a package segment."
msgstr "ЧиÑло не может быть первым Ñимволом в чаÑти пакета."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "The character '%s' cannot be the first character in a package segment."
msgstr "Символ «%s» не может ÑтоÑть первым в Ñегменте пакета."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "The package must have at least one '.' separator."
msgstr "Пакет должен иметь Ñ…Ð¾Ñ‚Ñ Ð±Ñ‹ один разделитель «.»."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Select device from the list"
msgstr "Выберите уÑтройÑтво из ÑпиÑка"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Running on %s"
msgstr "ВыполнÑетÑÑ Ð½Ð° %s"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Exporting APK..."
msgstr "ЭкÑпорт APK..."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Uninstalling..."
msgstr "Удаление..."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Installing to device, please wait..."
msgstr "УÑтановка на уÑтройÑтво, пожалуйÑта, ждите..."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Could not install to device: %s"
msgstr "Ðе удалоÑÑŒ уÑтановить на уÑтройÑтво: %s"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Running on device..."
msgstr "ЗапуÑк на уÑтройÑтве..."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Could not execute on device."
msgstr "Ðе удалоÑÑŒ выполнить на уÑтройÑтве."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Unable to find the 'apksigner' tool."
msgstr "Ðе удалоÑÑŒ найти инÑтрумент «apksigner»."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Android build template not installed in the project. Install it from the "
"Project menu."
msgstr ""
"Шаблон Ñборки Android не уÑтановлен в проекте. УÑтановите его в меню проекта."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Either Debug Keystore, Debug User AND Debug Password settings must be "
"configured OR none of them."
@@ -13234,13 +13366,13 @@ msgstr ""
"ЛИБО должны быть заданы наÑтройки Debug Keystore, Debug User И Debug "
"Password, ЛИБО ни одна из них."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Debug keystore not configured in the Editor Settings nor in the preset."
msgstr ""
"Отладочное хранилище ключей не наÑтроено ни в наÑтройках редактора, ни в "
"предуÑтановках."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Either Release Keystore, Release User AND Release Password settings must be "
"configured OR none of them."
@@ -13248,50 +13380,50 @@ msgstr ""
"ЛИБО должны быть заданы наÑтройки Release Keystore, Release User И Release "
"Password, ЛИБО ни одна из них."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Release keystore incorrectly configured in the export preset."
msgstr ""
"Хранилище ключей не наÑтроено ни в наÑтройках редактора, ни в предуÑтановках."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "A valid Android SDK path is required in Editor Settings."
msgstr ""
"ТребуетÑÑ ÑƒÐºÐ°Ð·Ð°Ñ‚ÑŒ дейÑтвительный путь к Android SDK в ÐаÑтройках редактора."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Invalid Android SDK path in Editor Settings."
msgstr "ÐедейÑтвительный путь Android SDK в ÐаÑтройках редактора."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Missing 'platform-tools' directory!"
msgstr "Ð”Ð¸Ñ€ÐµÐºÑ‚Ð¾Ñ€Ð¸Ñ Â«platform-tools» отÑутÑтвует!"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Unable to find Android SDK platform-tools' adb command."
msgstr "Ðе удалоÑÑŒ найти команду adb в Android SDK platform-tools."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Please check in the Android SDK directory specified in Editor Settings."
msgstr ""
"ПожалуйÑта, проверьте каталог Android SDK, указанный в ÐаÑтройках редактора."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Missing 'build-tools' directory!"
msgstr "Ð”Ð¸Ñ€ÐµÐºÑ‚Ð¾Ñ€Ð¸Ñ Â«build-tools» отÑутÑтвует!"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Unable to find Android SDK build-tools' apksigner command."
msgstr "Ðе удалоÑÑŒ найти команду apksigner в Android SDK build-tools."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Invalid public key for APK expansion."
msgstr "ÐедейÑтвительный публичный ключ Ð´Ð»Ñ Ñ€Ð°ÑÑˆÐ¸Ñ€ÐµÐ½Ð¸Ñ APK."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Invalid package name:"
msgstr "ÐедопуÑтимое Ð¸Ð¼Ñ Ð¿Ð°ÐºÐµÑ‚Ð°:"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Invalid \"GodotPaymentV3\" module included in the \"android/modules\" "
"project setting (changed in Godot 3.2.2).\n"
@@ -13299,39 +13431,24 @@ msgstr ""
"ÐедопуÑтимый модуль «GodotPaymentV3», включенный в наÑтройку проекта "
"«android/modules» (изменен в Godot 3.2.2).\n"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "\"Use Custom Build\" must be enabled to use the plugins."
msgstr "«Use Custom Build» должен быть включен Ð´Ð»Ñ Ð¸ÑÐ¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ð½Ð¸Ñ Ð¿Ð»Ð°Ð³Ð¸Ð½Ð¾Ð²."
-#: platform/android/export/export.cpp
-msgid ""
-"\"Degrees Of Freedom\" is only valid when \"Xr Mode\" is \"Oculus Mobile VR"
-"\"."
-msgstr ""
-"«Степени Ñвободы» дейÑтвительны только тогда, когда «Xr Mode» - Ñто «Oculus "
-"Mobile VR»."
-
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"\"Hand Tracking\" is only valid when \"Xr Mode\" is \"Oculus Mobile VR\"."
msgstr ""
"«ОтÑлеживание рук» дейÑтвует только тогда, когда «Xr Mode» - Ñто «Oculus "
"Mobile VR»."
-#: platform/android/export/export.cpp
-msgid ""
-"\"Focus Awareness\" is only valid when \"Xr Mode\" is \"Oculus Mobile VR\"."
-msgstr ""
-"«ОÑведомленноÑть о фокуÑе» дейÑтвительна только в том Ñлучае, еÑли «Режим "
-"Xr» - Ñто «Oculus Mobile VR»."
-
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "\"Export AAB\" is only valid when \"Use Custom Build\" is enabled."
msgstr ""
"«Export AAB» дейÑтвителен только при включённой опции «ИÑпользовать "
"пользовательÑкую Ñборку»."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"'apksigner' could not be found.\n"
"Please check the command is available in the Android SDK build-tools "
@@ -13342,51 +13459,51 @@ msgstr ""
"ПожалуйÑта, проверьте наличие программы в каталоге Android SDK build-tools.\n"
"Результат %s не подпиÑан."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Signing debug %s..."
msgstr "ПодпиÑание отладочного %s..."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Signing release %s..."
msgstr "ПодпиÑание релиза %s..."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Could not find keystore, unable to export."
msgstr "Ðе удалоÑÑŒ найти хранилище ключей, невозможно ÑкÑпортировать."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "'apksigner' returned with error #%d"
msgstr "«apksigner» завершилÑÑ Ñ Ð¾ÑˆÐ¸Ð±ÐºÐ¾Ð¹ #%d"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Verifying %s..."
msgstr "Проверка %s..."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "'apksigner' verification of %s failed."
msgstr "Проверка «apksigner» «%s» не удалаÑÑŒ."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Exporting for Android"
msgstr "ЭкÑпорт Ð´Ð»Ñ Android"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Invalid filename! Android App Bundle requires the *.aab extension."
msgstr "Ðеверное Ð¸Ð¼Ñ Ñ„Ð°Ð¹Ð»Ð°! Android App Bundle требует раÑÑˆÐ¸Ñ€ÐµÐ½Ð¸Ñ *.aab."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "APK Expansion not compatible with Android App Bundle."
msgstr "APK Expansion неÑовмеÑтимо Ñ Android App Bundle."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Invalid filename! Android APK requires the *.apk extension."
msgstr "Ðеверное Ð¸Ð¼Ñ Ñ„Ð°Ð¹Ð»Ð°! Android APK требует раÑÑˆÐ¸Ñ€ÐµÐ½Ð¸Ñ *.apk."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Unsupported export format!\n"
msgstr "Ðеподдерживаемый формат ÑкÑпорта!\n"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Trying to build from a custom built template, but no version info for it "
"exists. Please reinstall from the 'Project' menu."
@@ -13394,7 +13511,7 @@ msgstr ""
"Попытка Ñборки из пользовательÑкого шаблона, но информации о верÑии Ð´Ð»Ñ Ð½ÐµÐ³Ð¾ "
"не ÑущеÑтвует. ПожалуйÑта, переуÑтановите из меню «Проект»."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Android build version mismatch:\n"
" Template installed: %s\n"
@@ -13406,25 +13523,25 @@ msgstr ""
" ВерÑÐ¸Ñ Godot: %s\n"
"ПожалуйÑта, переуÑтановите шаблон Ñборки Android из меню «Проект»."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Unable to overwrite res://android/build/res/*.xml files with project name"
msgstr ""
"Ðевозможно перезапиÑать файлы res://android/build/res/*.xml Ñ Ð¸Ð¼ÐµÐ½ÐµÐ¼ проекта"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Could not export project files to gradle project\n"
msgstr "Ðе удалоÑÑŒ ÑкÑпортировать файлы проекта в проект gradle\n"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Could not write expansion package file!"
msgstr "Ðе удалоÑÑŒ запиÑать раÑширение файла пакета!"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Building Android Project (gradle)"
msgstr "Сборка проекта Android (gradle)"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Building of Android project failed, check output for the error.\n"
"Alternatively visit docs.godotengine.org for Android build documentation."
@@ -13433,11 +13550,11 @@ msgstr ""
"Также поÑетите docs.godotengine.org Ð´Ð»Ñ Ð¿Ð¾Ð»ÑƒÑ‡ÐµÐ½Ð¸Ñ Ð´Ð¾ÐºÑƒÐ¼ÐµÐ½Ñ‚Ð°Ñ†Ð¸Ð¸ по Ñборке "
"Android."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Moving output"
msgstr "Перемещение выходных данных"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Unable to copy and rename export file, check gradle project directory for "
"outputs."
@@ -13445,15 +13562,15 @@ msgstr ""
"Ðевозможно Ñкопировать и переименовать файл ÑкÑпорта, проверьте диекторию "
"проекта gradle на наличие выходных данных."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Package not found: %s"
msgstr "Пакет не найден: %s"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Creating APK..."
msgstr "Создание APK..."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Could not find template APK to export:\n"
"%s"
@@ -13461,7 +13578,7 @@ msgstr ""
"Ðе удалоÑÑŒ найти шаблон APK Ð´Ð»Ñ ÑкÑпорта:\n"
"%s"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Missing libraries in the export template for the selected architectures: "
"%s.\n"
@@ -13472,19 +13589,19 @@ msgstr ""
"ПожалуйÑта, Ñоздайте шаблон Ñо вÑеми необходимыми библиотеками или Ñнимите "
"флажки Ñ Ð¾Ñ‚ÑутÑтвующих архитектур в преÑете ÑкÑпорта."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Adding files..."
msgstr "Добавление файлов..."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Could not export project files"
msgstr "Ðе удалоÑÑŒ ÑкÑпортировать файлы проекта"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Aligning APK..."
msgstr "Выравнивание APK..."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Could not unzip temporary unaligned APK."
msgstr "Ðе удалоÑÑŒ раÑпаковать временный невыровненный APK."
@@ -14021,6 +14138,14 @@ msgstr ""
"NavigationMeshInstance должен быть дочерним или под-дочерним узлом "
"Navigation. Он предоÑтавлÑет только навигационные данные."
+#: scene/3d/occluder.cpp
+msgid "No shape is set."
+msgstr ""
+
+#: scene/3d/occluder.cpp
+msgid "Only uniform scales are supported."
+msgstr ""
+
#: scene/3d/particles.cpp
msgid ""
"GPU-based particles are not supported by the GLES2 video driver.\n"
@@ -14156,36 +14281,50 @@ msgid ""
"RoomList path is invalid.\n"
"Please check the RoomList branch has been assigned in the RoomManager."
msgstr ""
+"Путь к RoomList недейÑтвителен.\n"
+"ПожалуйÑта, проверьте, назначена ли ветка RoomList в RoomManager."
#: scene/3d/room_manager.cpp
msgid "RoomList contains no Rooms, aborting."
-msgstr ""
+msgstr "RoomList не Ñодержит комнат, отмена."
#: scene/3d/room_manager.cpp
msgid "Misnamed nodes detected, check output log for details. Aborting."
msgstr ""
+"Обнаружены неверно названные узлы, подробноÑти Ñмотрите в журнале вывода. "
+"Отмена."
#: scene/3d/room_manager.cpp
msgid "Portal link room not found, check output log for details."
msgstr ""
+"СвÑÐ·Ð°Ð½Ð½Ð°Ñ Ñ Ð¿Ð¾Ñ€Ñ‚Ð°Ð»Ð¾Ð¼ комната не найдена, подробноÑти Ñмотрите в журнале "
+"вывода."
#: scene/3d/room_manager.cpp
msgid ""
"Portal autolink failed, check output log for details.\n"
"Check the portal is facing outwards from the source room."
msgstr ""
+"Сбой автопривÑзки портала, проверьте журнал вывода Ð´Ð»Ñ Ð¿Ð¾Ð»ÑƒÑ‡ÐµÐ½Ð¸Ñ Ð¿Ð¾Ð´Ñ€Ð¾Ð±Ð½Ð¾Ð¹ "
+"информации.\n"
+"Проверьте, что портал обращен наружу от иÑходной комнаты."
#: scene/3d/room_manager.cpp
msgid ""
"Room overlap detected, cameras may work incorrectly in overlapping area.\n"
"Check output log for details."
msgstr ""
+"Обнаружено переÑечение комнат, камеры могут работать некорректно в зоне "
+"перекрытиÑ.\n"
+"Проверьте журнал вывода Ð´Ð»Ñ Ð¿Ð¾Ð»ÑƒÑ‡ÐµÐ½Ð¸Ñ Ð¿Ð¾Ð´Ñ€Ð¾Ð±Ð½Ð¾Ð¹ информации."
#: scene/3d/room_manager.cpp
msgid ""
"Error calculating room bounds.\n"
"Ensure all rooms contain geometry or manual bounds."
msgstr ""
+"Ошибка при вычиÑлении границ комнаты.\n"
+"УбедитеÑÑŒ, что вÑе комнаты Ñодержат геометрию или границы заданы вручную."
#: scene/3d/soft_body.cpp
msgid "This body will be ignored until you set a mesh."
@@ -14351,6 +14490,14 @@ msgstr "Ðужно иÑпользовать доÑтупное раÑширенÐ
msgid "Enable grid minimap."
msgstr "Включить миникарту Ñетки."
+#: scene/gui/nine_patch_rect.cpp
+msgid ""
+"The Tile and Tile Fit options for Axis Stretch properties are only effective "
+"when using the GLES3 rendering backend.\n"
+"The GLES2 backend is currently in use, so these modes will act like Stretch "
+"instead."
+msgstr ""
+
#: scene/gui/popup.cpp
msgid ""
"Popups will hide by default unless you call popup() or any of the popup*() "
@@ -14405,6 +14552,10 @@ msgstr ""
msgid "Viewport size must be greater than 0 to render anything."
msgstr "Размер окна проÑмотра должен быть больше 0 Ð´Ð»Ñ Ñ€ÐµÐ½Ð´ÐµÑ€Ð¸Ð½Ð³Ð°."
+#: scene/resources/occluder_shape.cpp
+msgid "OccluderShapeSphere Set Spheres"
+msgstr ""
+
#: scene/resources/visual_shader_nodes.cpp
msgid ""
"The sampler port is connected but not used. Consider changing the source to "
@@ -14461,6 +14612,41 @@ msgstr "Ðазначить форму."
msgid "Constants cannot be modified."
msgstr "КонÑтанты не могут быть изменены."
+#~ msgid "Make Rest Pose (From Bones)"
+#~ msgstr "Сделать позу Ð¿Ð¾ÐºÐ¾Ñ (из коÑтей)"
+
+#~ msgid "Bottom"
+#~ msgstr "Ðиз"
+
+#~ msgid "Left"
+#~ msgstr "Лево"
+
+#~ msgid "Right"
+#~ msgstr "Право"
+
+#~ msgid "Front"
+#~ msgstr "Перед"
+
+#~ msgid "Rear"
+#~ msgstr "Зад"
+
+#~ msgid "Nameless gizmo"
+#~ msgstr "БезымÑнный гизмо"
+
+#~ msgid ""
+#~ "\"Degrees Of Freedom\" is only valid when \"Xr Mode\" is \"Oculus Mobile "
+#~ "VR\"."
+#~ msgstr ""
+#~ "«Степени Ñвободы» дейÑтвительны только тогда, когда «Xr Mode» - Ñто "
+#~ "«Oculus Mobile VR»."
+
+#~ msgid ""
+#~ "\"Focus Awareness\" is only valid when \"Xr Mode\" is \"Oculus Mobile VR"
+#~ "\"."
+#~ msgstr ""
+#~ "«ОÑведомленноÑть о фокуÑе» дейÑтвительна только в том Ñлучае, еÑли «Режим "
+#~ "Xr» - Ñто «Oculus Mobile VR»."
+
#~ msgid "Package Contents:"
#~ msgstr "Содержимое пакета:"
@@ -16430,9 +16616,6 @@ msgstr "КонÑтанты не могут быть изменены."
#~ msgid "Images:"
#~ msgstr "ИзображениÑ:"
-#~ msgid "Group"
-#~ msgstr "Группа"
-
#~ msgid "Sample Conversion Mode: (.wav files):"
#~ msgstr "Режим Ð¿Ñ€ÐµÐ¾Ð±Ñ€Ð°Ð·Ð¾Ð²Ð°Ð½Ð¸Ñ ÑÑмплов (.wav файлы):"
@@ -16556,9 +16739,6 @@ msgstr "КонÑтанты не могут быть изменены."
#~ msgid "Deploy File Server Clients"
#~ msgstr "Развернуть файловый Ñервер Ð´Ð»Ñ ÐºÐ»Ð¸ÐµÐ½Ñ‚Ð¾Ð²"
-#~ msgid "Overwrite Existing Scene"
-#~ msgstr "ПерезапиÑать ÑущеÑтвующую Ñцену"
-
#~ msgid "Overwrite Existing, Keep Materials"
#~ msgstr "ПерезапиÑать ÑущеÑтвующую Ñцену Ñ Ñохранением материалов"
diff --git a/editor/translations/si.po b/editor/translations/si.po
index 595e0041a9..7ff9aee6fb 100644
--- a/editor/translations/si.po
+++ b/editor/translations/si.po
@@ -1018,7 +1018,7 @@ msgstr ""
msgid "Dependencies"
msgstr ""
-#: editor/dependency_editor.cpp
+#: editor/dependency_editor.cpp editor/editor_resource_picker.cpp
msgid "Resource"
msgstr ""
@@ -1648,13 +1648,13 @@ msgid ""
"Enabled'."
msgstr ""
-#: editor/editor_export.cpp platform/android/export/export.cpp
+#: editor/editor_export.cpp platform/android/export/export_plugin.cpp
#: platform/iphone/export/export.cpp platform/javascript/export/export.cpp
#: platform/osx/export/export.cpp platform/uwp/export/export.cpp
msgid "Custom debug template not found."
msgstr ""
-#: editor/editor_export.cpp platform/android/export/export.cpp
+#: editor/editor_export.cpp platform/android/export/export_plugin.cpp
#: platform/iphone/export/export.cpp platform/javascript/export/export.cpp
#: platform/osx/export/export.cpp platform/uwp/export/export.cpp
msgid "Custom release template not found."
@@ -2026,7 +2026,7 @@ msgstr ""
msgid "(Re)Importing Assets"
msgstr ""
-#: editor/editor_help.cpp editor/plugins/spatial_editor_plugin.cpp
+#: editor/editor_help.cpp
msgid "Top"
msgstr ""
@@ -2505,6 +2505,30 @@ msgid "Current scene not saved. Open anyway?"
msgstr ""
#: editor/editor_node.cpp
+msgid "Can't undo while mouse buttons are pressed."
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "Nothing to undo."
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "Undo: %s"
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "Can't redo while mouse buttons are pressed."
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "Nothing to redo."
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "Redo: %s"
+msgstr ""
+
+#: editor/editor_node.cpp
msgid "Can't reload a scene that was never saved."
msgstr ""
@@ -3130,6 +3154,11 @@ msgid "Merge With Existing"
msgstr ""
#: editor/editor_node.cpp
+#, fuzzy
+msgid "Apply MeshInstance Transforms"
+msgstr "Anim පරිවර්තනය වෙනස් කරන්න"
+
+#: editor/editor_node.cpp
msgid "Open & Run a Script"
msgstr ""
@@ -3371,6 +3400,10 @@ msgid ""
"property (%s)."
msgstr ""
+#: editor/editor_resource_picker.cpp
+msgid "Quick Load"
+msgstr ""
+
#: editor/editor_resource_picker.cpp editor/property_editor.cpp
msgid "Make Unique"
msgstr ""
@@ -5428,6 +5461,16 @@ msgid "Move CanvasItem \"%s\" to (%d, %d)"
msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Locked"
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Grouped"
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
msgid ""
"Children of containers have their anchors and margins values overridden by "
"their parent."
@@ -6339,7 +6382,11 @@ msgid "Remove Selected Item"
msgstr ""
#: editor/plugins/mesh_library_editor_plugin.cpp
-msgid "Import from Scene"
+msgid "Import from Scene (Ignore Transforms)"
+msgstr ""
+
+#: editor/plugins/mesh_library_editor_plugin.cpp
+msgid "Import from Scene (Apply Transforms)"
msgstr ""
#: editor/plugins/mesh_library_editor_plugin.cpp
@@ -6923,6 +6970,16 @@ msgstr ""
msgid "Flip Portal"
msgstr ""
+#: editor/plugins/room_manager_editor_plugin.cpp
+#, fuzzy
+msgid "Occluder Set Transform"
+msgstr "Anim පරිවර්තනය වෙනස් කරන්න"
+
+#: editor/plugins/room_manager_editor_plugin.cpp
+#, fuzzy
+msgid "Center Node"
+msgstr "යතුරු මක෠දමන්න"
+
#: editor/plugins/root_motion_editor_plugin.cpp
msgid "AnimationTree has no path set to an AnimationPlayer"
msgstr ""
@@ -7418,11 +7475,11 @@ msgid "Skeleton2D"
msgstr ""
#: editor/plugins/skeleton_2d_editor_plugin.cpp
-msgid "Make Rest Pose (From Bones)"
+msgid "Reset to Rest Pose"
msgstr ""
#: editor/plugins/skeleton_2d_editor_plugin.cpp
-msgid "Set Bones to Rest Pose"
+msgid "Overwrite Rest Pose"
msgstr ""
#: editor/plugins/skeleton_editor_plugin.cpp
@@ -7450,6 +7507,60 @@ msgid "Perspective"
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Top Orthogonal"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Top Perspective"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Bottom Orthogonal"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Bottom Perspective"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Left Orthogonal"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Right Perspective"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Right Orthogonal"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Front Orthogonal"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Front Perspective"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Rear Orthogonal"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Rear Perspective"
+msgstr ""
+
+#. TRANSLATORS: This will be appended to the view name when Auto Orthogonal is enabled.
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid " [auto]"
+msgstr ""
+
+#. TRANSLATORS: This will be appended to the view name when Portal Occulusion is enabled.
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid " [portals active]"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
msgid "Transform Aborted."
msgstr ""
@@ -7557,42 +7668,22 @@ msgid "Bottom View."
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
-msgid "Bottom"
-msgstr ""
-
-#: editor/plugins/spatial_editor_plugin.cpp
msgid "Left View."
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
-msgid "Left"
-msgstr ""
-
-#: editor/plugins/spatial_editor_plugin.cpp
msgid "Right View."
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
-msgid "Right"
-msgstr ""
-
-#: editor/plugins/spatial_editor_plugin.cpp
msgid "Front View."
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
-msgid "Front"
-msgstr ""
-
-#: editor/plugins/spatial_editor_plugin.cpp
msgid "Rear View."
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
-msgid "Rear"
-msgstr ""
-
-#: editor/plugins/spatial_editor_plugin.cpp
msgid "Align Transform with View"
msgstr ""
@@ -7854,6 +7945,10 @@ msgid "View Portal Culling"
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
+msgid "View Occlusion Culling"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
#: modules/gridmap/grid_map_editor_plugin.cpp
msgid "Settings..."
msgstr ""
@@ -7919,7 +8014,7 @@ msgid "Post"
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
-msgid "Nameless gizmo"
+msgid "Unnamed Gizmo"
msgstr ""
#: editor/plugins/sprite_editor_plugin.cpp
@@ -11862,6 +11957,14 @@ msgstr ""
msgid "Set Portal Point Position"
msgstr ""
+#: editor/spatial_editor_gizmos.cpp
+msgid "Set Occluder Sphere Radius"
+msgstr ""
+
+#: editor/spatial_editor_gizmos.cpp
+msgid "Set Occluder Sphere Position"
+msgstr ""
+
#: modules/csg/csg_gizmos.cpp
msgid "Change Cylinder Radius"
msgstr ""
@@ -12143,6 +12246,10 @@ msgstr ""
msgid "Class name can't be a reserved keyword"
msgstr ""
+#: modules/mono/csharp_script.cpp
+msgid "Build Solution"
+msgstr ""
+
#: modules/mono/mono_gd/gd_mono_utils.cpp
msgid "End of inner exception stack trace"
msgstr ""
@@ -12623,159 +12730,148 @@ msgstr ""
msgid "Get %s"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Package name is missing."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Package segments must be of non-zero length."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "The character '%s' is not allowed in Android application package names."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "A digit cannot be the first character in a package segment."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "The character '%s' cannot be the first character in a package segment."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "The package must have at least one '.' separator."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Select device from the list"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Running on %s"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Exporting APK..."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Uninstalling..."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Installing to device, please wait..."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Could not install to device: %s"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Running on device..."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Could not execute on device."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Unable to find the 'apksigner' tool."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Android build template not installed in the project. Install it from the "
"Project menu."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Either Debug Keystore, Debug User AND Debug Password settings must be "
"configured OR none of them."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Debug keystore not configured in the Editor Settings nor in the preset."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Either Release Keystore, Release User AND Release Password settings must be "
"configured OR none of them."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Release keystore incorrectly configured in the export preset."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "A valid Android SDK path is required in Editor Settings."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Invalid Android SDK path in Editor Settings."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Missing 'platform-tools' directory!"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Unable to find Android SDK platform-tools' adb command."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Please check in the Android SDK directory specified in Editor Settings."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Missing 'build-tools' directory!"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Unable to find Android SDK build-tools' apksigner command."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Invalid public key for APK expansion."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Invalid package name:"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Invalid \"GodotPaymentV3\" module included in the \"android/modules\" "
"project setting (changed in Godot 3.2.2).\n"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "\"Use Custom Build\" must be enabled to use the plugins."
msgstr ""
-#: platform/android/export/export.cpp
-msgid ""
-"\"Degrees Of Freedom\" is only valid when \"Xr Mode\" is \"Oculus Mobile VR"
-"\"."
-msgstr ""
-
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"\"Hand Tracking\" is only valid when \"Xr Mode\" is \"Oculus Mobile VR\"."
msgstr ""
-#: platform/android/export/export.cpp
-msgid ""
-"\"Focus Awareness\" is only valid when \"Xr Mode\" is \"Oculus Mobile VR\"."
-msgstr ""
-
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "\"Export AAB\" is only valid when \"Use Custom Build\" is enabled."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"'apksigner' could not be found.\n"
"Please check the command is available in the Android SDK build-tools "
@@ -12783,57 +12879,57 @@ msgid ""
"The resulting %s is unsigned."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Signing debug %s..."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Signing release %s..."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Could not find keystore, unable to export."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "'apksigner' returned with error #%d"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Verifying %s..."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "'apksigner' verification of %s failed."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Exporting for Android"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Invalid filename! Android App Bundle requires the *.aab extension."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "APK Expansion not compatible with Android App Bundle."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Invalid filename! Android APK requires the *.apk extension."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Unsupported export format!\n"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Trying to build from a custom built template, but no version info for it "
"exists. Please reinstall from the 'Project' menu."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Android build version mismatch:\n"
" Template installed: %s\n"
@@ -12841,54 +12937,54 @@ msgid ""
"Please reinstall Android build template from 'Project' menu."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Unable to overwrite res://android/build/res/*.xml files with project name"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Could not export project files to gradle project\n"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Could not write expansion package file!"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Building Android Project (gradle)"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Building of Android project failed, check output for the error.\n"
"Alternatively visit docs.godotengine.org for Android build documentation."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Moving output"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Unable to copy and rename export file, check gradle project directory for "
"outputs."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Package not found: %s"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Creating APK..."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Could not find template APK to export:\n"
"%s"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Missing libraries in the export template for the selected architectures: "
"%s.\n"
@@ -12896,19 +12992,19 @@ msgid ""
"architectures in the export preset."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Adding files..."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Could not export project files"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Aligning APK..."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Could not unzip temporary unaligned APK."
msgstr ""
@@ -13358,6 +13454,14 @@ msgid ""
"It only provides navigation data."
msgstr ""
+#: scene/3d/occluder.cpp
+msgid "No shape is set."
+msgstr ""
+
+#: scene/3d/occluder.cpp
+msgid "Only uniform scales are supported."
+msgstr ""
+
#: scene/3d/particles.cpp
msgid ""
"GPU-based particles are not supported by the GLES2 video driver.\n"
@@ -13647,6 +13751,14 @@ msgstr ""
msgid "Enable grid minimap."
msgstr ""
+#: scene/gui/nine_patch_rect.cpp
+msgid ""
+"The Tile and Tile Fit options for Axis Stretch properties are only effective "
+"when using the GLES3 rendering backend.\n"
+"The GLES2 backend is currently in use, so these modes will act like Stretch "
+"instead."
+msgstr ""
+
#: scene/gui/popup.cpp
msgid ""
"Popups will hide by default unless you call popup() or any of the popup*() "
@@ -13687,6 +13799,10 @@ msgstr ""
msgid "Viewport size must be greater than 0 to render anything."
msgstr ""
+#: scene/resources/occluder_shape.cpp
+msgid "OccluderShapeSphere Set Spheres"
+msgstr ""
+
#: scene/resources/visual_shader_nodes.cpp
msgid ""
"The sampler port is connected but not used. Consider changing the source to "
diff --git a/editor/translations/sk.po b/editor/translations/sk.po
index 54736cff85..2395e28105 100644
--- a/editor/translations/sk.po
+++ b/editor/translations/sk.po
@@ -1025,7 +1025,7 @@ msgstr ""
msgid "Dependencies"
msgstr "Závislostí"
-#: editor/dependency_editor.cpp
+#: editor/dependency_editor.cpp editor/editor_resource_picker.cpp
msgid "Resource"
msgstr "Prostriedok"
@@ -1691,13 +1691,13 @@ msgstr ""
"Povoľte 'Import Etc' v Nastaveniach Projektu, alebo vipnite 'Driver Fallback "
"Enabled'."
-#: editor/editor_export.cpp platform/android/export/export.cpp
+#: editor/editor_export.cpp platform/android/export/export_plugin.cpp
#: platform/iphone/export/export.cpp platform/javascript/export/export.cpp
#: platform/osx/export/export.cpp platform/uwp/export/export.cpp
msgid "Custom debug template not found."
msgstr "Vlastná debug šablóna sa nenašla."
-#: editor/editor_export.cpp platform/android/export/export.cpp
+#: editor/editor_export.cpp platform/android/export/export_plugin.cpp
#: platform/iphone/export/export.cpp platform/javascript/export/export.cpp
#: platform/osx/export/export.cpp platform/uwp/export/export.cpp
msgid "Custom release template not found."
@@ -2081,7 +2081,7 @@ msgstr ""
msgid "(Re)Importing Assets"
msgstr "(Re)Importovanie Asset-ov"
-#: editor/editor_help.cpp editor/plugins/spatial_editor_plugin.cpp
+#: editor/editor_help.cpp
msgid "Top"
msgstr "Top"
@@ -2590,6 +2590,32 @@ msgid "Current scene not saved. Open anyway?"
msgstr "Aktuálna scéna sa neuložila. Chcete ju aj tak otvoriť?"
#: editor/editor_node.cpp
+msgid "Can't undo while mouse buttons are pressed."
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "Nothing to undo."
+msgstr ""
+
+#: editor/editor_node.cpp
+#, fuzzy
+msgid "Undo: %s"
+msgstr "Späť"
+
+#: editor/editor_node.cpp
+msgid "Can't redo while mouse buttons are pressed."
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "Nothing to redo."
+msgstr ""
+
+#: editor/editor_node.cpp
+#, fuzzy
+msgid "Redo: %s"
+msgstr "Prerobiť"
+
+#: editor/editor_node.cpp
msgid "Can't reload a scene that was never saved."
msgstr "Nemožno naÄítaÅ¥ scénu, ktorá nikdy nebola uložená."
@@ -3274,6 +3300,11 @@ msgid "Merge With Existing"
msgstr "ZlúÄiÅ¥ s existujúcim"
#: editor/editor_node.cpp
+#, fuzzy
+msgid "Apply MeshInstance Transforms"
+msgstr "Anim Zmeniť Veľkosť"
+
+#: editor/editor_node.cpp
msgid "Open & Run a Script"
msgstr "Otvoriť a vykonať skript"
@@ -3529,6 +3560,10 @@ msgid ""
msgstr ""
"Vybraný prostriedok (%s) sa nezhoduje žiadnemu typu pre túto vlastnosť (%s)."
+#: editor/editor_resource_picker.cpp
+msgid "Quick Load"
+msgstr ""
+
#: editor/editor_resource_picker.cpp editor/property_editor.cpp
msgid "Make Unique"
msgstr "SpraviÅ¥ JedineÄným"
@@ -5659,6 +5694,18 @@ msgid "Move CanvasItem \"%s\" to (%d, %d)"
msgstr "Presunúť CanvasItem"
#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Locked"
+msgstr "Zamknúť OznaÄené"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Grouped"
+msgstr "Skupiny"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
msgid ""
"Children of containers have their anchors and margins values overridden by "
"their parent."
@@ -6597,7 +6644,11 @@ msgid "Remove Selected Item"
msgstr ""
#: editor/plugins/mesh_library_editor_plugin.cpp
-msgid "Import from Scene"
+msgid "Import from Scene (Ignore Transforms)"
+msgstr ""
+
+#: editor/plugins/mesh_library_editor_plugin.cpp
+msgid "Import from Scene (Apply Transforms)"
msgstr ""
#: editor/plugins/mesh_library_editor_plugin.cpp
@@ -7199,6 +7250,15 @@ msgstr "Generovaný Bodový PoÄet:"
msgid "Flip Portal"
msgstr ""
+#: editor/plugins/room_manager_editor_plugin.cpp
+msgid "Occluder Set Transform"
+msgstr ""
+
+#: editor/plugins/room_manager_editor_plugin.cpp
+#, fuzzy
+msgid "Center Node"
+msgstr "Vytvoriť Node"
+
#: editor/plugins/root_motion_editor_plugin.cpp
msgid "AnimationTree has no path set to an AnimationPlayer"
msgstr ""
@@ -7716,12 +7776,14 @@ msgid "Skeleton2D"
msgstr ""
#: editor/plugins/skeleton_2d_editor_plugin.cpp
-msgid "Make Rest Pose (From Bones)"
-msgstr ""
+#, fuzzy
+msgid "Reset to Rest Pose"
+msgstr "Obnoviť na východzie"
#: editor/plugins/skeleton_2d_editor_plugin.cpp
-msgid "Set Bones to Rest Pose"
-msgstr ""
+#, fuzzy
+msgid "Overwrite Rest Pose"
+msgstr "Prepísať"
#: editor/plugins/skeleton_editor_plugin.cpp
msgid "Create physical bones"
@@ -7748,6 +7810,61 @@ msgid "Perspective"
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Top Orthogonal"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Top Perspective"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Bottom Orthogonal"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Bottom Perspective"
+msgstr "Vľavo Dole"
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Left Orthogonal"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Right Perspective"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Right Orthogonal"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Front Orthogonal"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Front Perspective"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Rear Orthogonal"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Rear Perspective"
+msgstr ""
+
+#. TRANSLATORS: This will be appended to the view name when Auto Orthogonal is enabled.
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid " [auto]"
+msgstr ""
+
+#. TRANSLATORS: This will be appended to the view name when Portal Occulusion is enabled.
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid " [portals active]"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
msgid "Transform Aborted."
msgstr ""
@@ -7864,42 +7981,22 @@ msgid "Bottom View."
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
-msgid "Bottom"
-msgstr ""
-
-#: editor/plugins/spatial_editor_plugin.cpp
msgid "Left View."
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
-msgid "Left"
-msgstr ""
-
-#: editor/plugins/spatial_editor_plugin.cpp
msgid "Right View."
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
-msgid "Right"
-msgstr ""
-
-#: editor/plugins/spatial_editor_plugin.cpp
msgid "Front View."
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
-msgid "Front"
-msgstr ""
-
-#: editor/plugins/spatial_editor_plugin.cpp
msgid "Rear View."
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
-msgid "Rear"
-msgstr ""
-
-#: editor/plugins/spatial_editor_plugin.cpp
#, fuzzy
msgid "Align Transform with View"
msgstr "Všetky vybrané"
@@ -8169,6 +8266,11 @@ msgid "View Portal Culling"
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "View Occlusion Culling"
+msgstr "Signály:"
+
+#: editor/plugins/spatial_editor_plugin.cpp
#: modules/gridmap/grid_map_editor_plugin.cpp
msgid "Settings..."
msgstr ""
@@ -8234,7 +8336,7 @@ msgid "Post"
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
-msgid "Nameless gizmo"
+msgid "Unnamed Gizmo"
msgstr ""
#: editor/plugins/sprite_editor_plugin.cpp
@@ -12355,6 +12457,15 @@ msgstr "Všetky vybrané"
msgid "Set Portal Point Position"
msgstr "Všetky vybrané"
+#: editor/spatial_editor_gizmos.cpp
+msgid "Set Occluder Sphere Radius"
+msgstr ""
+
+#: editor/spatial_editor_gizmos.cpp
+#, fuzzy
+msgid "Set Occluder Sphere Position"
+msgstr "Všetky vybrané"
+
#: modules/csg/csg_gizmos.cpp
msgid "Change Cylinder Radius"
msgstr ""
@@ -12649,6 +12760,11 @@ msgstr "Generovanie Lightmaps"
msgid "Class name can't be a reserved keyword"
msgstr ""
+#: modules/mono/csharp_script.cpp
+#, fuzzy
+msgid "Build Solution"
+msgstr "Všetky vybrané"
+
#: modules/mono/mono_gd/gd_mono_utils.cpp
msgid "End of inner exception stack trace"
msgstr ""
@@ -13142,166 +13258,155 @@ msgstr "Vložiť"
msgid "Get %s"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Package name is missing."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Package segments must be of non-zero length."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "The character '%s' is not allowed in Android application package names."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "A digit cannot be the first character in a package segment."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "The character '%s' cannot be the first character in a package segment."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "The package must have at least one '.' separator."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Select device from the list"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Running on %s"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
#, fuzzy
msgid "Exporting APK..."
msgstr "Export..."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
#, fuzzy
msgid "Uninstalling..."
msgstr "Odinštalovať"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
#, fuzzy
msgid "Installing to device, please wait..."
msgstr "NaÄítavanie zrkadiel, prosím Äakajte..."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
#, fuzzy
msgid "Could not install to device: %s"
msgstr "Subprocess sa nedá spustiť!"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
#, fuzzy
msgid "Running on device..."
msgstr "Spustiť Vlastný Script..."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
#, fuzzy
msgid "Could not execute on device."
msgstr "PrieÄinok sa nepodarilo vytvoriÅ¥."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Unable to find the 'apksigner' tool."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Android build template not installed in the project. Install it from the "
"Project menu."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Either Debug Keystore, Debug User AND Debug Password settings must be "
"configured OR none of them."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Debug keystore not configured in the Editor Settings nor in the preset."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Either Release Keystore, Release User AND Release Password settings must be "
"configured OR none of them."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Release keystore incorrectly configured in the export preset."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "A valid Android SDK path is required in Editor Settings."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Invalid Android SDK path in Editor Settings."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Missing 'platform-tools' directory!"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Unable to find Android SDK platform-tools' adb command."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Please check in the Android SDK directory specified in Editor Settings."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Missing 'build-tools' directory!"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Unable to find Android SDK build-tools' apksigner command."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Invalid public key for APK expansion."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
#, fuzzy
msgid "Invalid package name:"
msgstr "Nesprávna veľkosť písma."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Invalid \"GodotPaymentV3\" module included in the \"android/modules\" "
"project setting (changed in Godot 3.2.2).\n"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "\"Use Custom Build\" must be enabled to use the plugins."
msgstr ""
-#: platform/android/export/export.cpp
-msgid ""
-"\"Degrees Of Freedom\" is only valid when \"Xr Mode\" is \"Oculus Mobile VR"
-"\"."
-msgstr ""
-
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"\"Hand Tracking\" is only valid when \"Xr Mode\" is \"Oculus Mobile VR\"."
msgstr ""
-#: platform/android/export/export.cpp
-msgid ""
-"\"Focus Awareness\" is only valid when \"Xr Mode\" is \"Oculus Mobile VR\"."
-msgstr ""
-
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "\"Export AAB\" is only valid when \"Use Custom Build\" is enabled."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"'apksigner' could not be found.\n"
"Please check the command is available in the Android SDK build-tools "
@@ -13309,61 +13414,61 @@ msgid ""
"The resulting %s is unsigned."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Signing debug %s..."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
#, fuzzy
msgid "Signing release %s..."
msgstr ""
"Skenujem Súbory,\n"
"PoÄkajte Prosím..."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Could not find keystore, unable to export."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "'apksigner' returned with error #%d"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
#, fuzzy
msgid "Verifying %s..."
msgstr "Pridávanie %s..."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "'apksigner' verification of %s failed."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Exporting for Android"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Invalid filename! Android App Bundle requires the *.aab extension."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "APK Expansion not compatible with Android App Bundle."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Invalid filename! Android APK requires the *.apk extension."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Unsupported export format!\n"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Trying to build from a custom built template, but no version info for it "
"exists. Please reinstall from the 'Project' menu."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Android build version mismatch:\n"
" Template installed: %s\n"
@@ -13371,57 +13476,57 @@ msgid ""
"Please reinstall Android build template from 'Project' menu."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Unable to overwrite res://android/build/res/*.xml files with project name"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Could not export project files to gradle project\n"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
#, fuzzy
msgid "Could not write expansion package file!"
msgstr "Popis:"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Building Android Project (gradle)"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Building of Android project failed, check output for the error.\n"
"Alternatively visit docs.godotengine.org for Android build documentation."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Moving output"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Unable to copy and rename export file, check gradle project directory for "
"outputs."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
#, fuzzy
msgid "Package not found: %s"
msgstr "BalíÄek Obsahu:"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
#, fuzzy
msgid "Creating APK..."
msgstr "Pripájanie..."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Could not find template APK to export:\n"
"%s"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Missing libraries in the export template for the selected architectures: "
"%s.\n"
@@ -13429,21 +13534,21 @@ msgid ""
"architectures in the export preset."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
#, fuzzy
msgid "Adding files..."
msgstr "Pridávanie %s..."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
#, fuzzy
msgid "Could not export project files"
msgstr "Popis:"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Aligning APK..."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Could not unzip temporary unaligned APK."
msgstr ""
@@ -13921,6 +14026,14 @@ msgid ""
"It only provides navigation data."
msgstr ""
+#: scene/3d/occluder.cpp
+msgid "No shape is set."
+msgstr ""
+
+#: scene/3d/occluder.cpp
+msgid "Only uniform scales are supported."
+msgstr ""
+
#: scene/3d/particles.cpp
msgid ""
"GPU-based particles are not supported by the GLES2 video driver.\n"
@@ -14212,6 +14325,14 @@ msgstr "Musíte použiť platné rozšírenie."
msgid "Enable grid minimap."
msgstr "Povoliť Prichytávanie"
+#: scene/gui/nine_patch_rect.cpp
+msgid ""
+"The Tile and Tile Fit options for Axis Stretch properties are only effective "
+"when using the GLES3 rendering backend.\n"
+"The GLES2 backend is currently in use, so these modes will act like Stretch "
+"instead."
+msgstr ""
+
#: scene/gui/popup.cpp
msgid ""
"Popups will hide by default unless you call popup() or any of the popup*() "
@@ -14252,6 +14373,10 @@ msgstr ""
msgid "Viewport size must be greater than 0 to render anything."
msgstr ""
+#: scene/resources/occluder_shape.cpp
+msgid "OccluderShapeSphere Set Spheres"
+msgstr ""
+
#: scene/resources/visual_shader_nodes.cpp
msgid ""
"The sampler port is connected but not used. Consider changing the source to "
diff --git a/editor/translations/sl.po b/editor/translations/sl.po
index 725f88f0ab..d505ee913c 100644
--- a/editor/translations/sl.po
+++ b/editor/translations/sl.po
@@ -1081,7 +1081,7 @@ msgstr ""
msgid "Dependencies"
msgstr "Odvisnosti"
-#: editor/dependency_editor.cpp
+#: editor/dependency_editor.cpp editor/editor_resource_picker.cpp
msgid "Resource"
msgstr "Viri"
@@ -1741,14 +1741,14 @@ msgid ""
"Enabled'."
msgstr ""
-#: editor/editor_export.cpp platform/android/export/export.cpp
+#: editor/editor_export.cpp platform/android/export/export_plugin.cpp
#: platform/iphone/export/export.cpp platform/javascript/export/export.cpp
#: platform/osx/export/export.cpp platform/uwp/export/export.cpp
#, fuzzy
msgid "Custom debug template not found."
msgstr "Predloge ni mogoÄe najti:"
-#: editor/editor_export.cpp platform/android/export/export.cpp
+#: editor/editor_export.cpp platform/android/export/export_plugin.cpp
#: platform/iphone/export/export.cpp platform/javascript/export/export.cpp
#: platform/osx/export/export.cpp platform/uwp/export/export.cpp
msgid "Custom release template not found."
@@ -2159,7 +2159,7 @@ msgstr ""
msgid "(Re)Importing Assets"
msgstr "Uvoz Dodatkov"
-#: editor/editor_help.cpp editor/plugins/spatial_editor_plugin.cpp
+#: editor/editor_help.cpp
msgid "Top"
msgstr "Vrh"
@@ -2685,6 +2685,32 @@ msgid "Current scene not saved. Open anyway?"
msgstr "Trenutna scena ni shranjena. Vseeno odprem?"
#: editor/editor_node.cpp
+msgid "Can't undo while mouse buttons are pressed."
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "Nothing to undo."
+msgstr ""
+
+#: editor/editor_node.cpp
+#, fuzzy
+msgid "Undo: %s"
+msgstr "Razveljavi"
+
+#: editor/editor_node.cpp
+msgid "Can't redo while mouse buttons are pressed."
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "Nothing to redo."
+msgstr ""
+
+#: editor/editor_node.cpp
+#, fuzzy
+msgid "Redo: %s"
+msgstr "Ponovi"
+
+#: editor/editor_node.cpp
msgid "Can't reload a scene that was never saved."
msgstr "Ni mogoÄe osvežiti scene, ki ni bila shranjena."
@@ -3391,6 +3417,11 @@ msgid "Merge With Existing"
msgstr "Spoji z ObstojeÄim"
#: editor/editor_node.cpp
+#, fuzzy
+msgid "Apply MeshInstance Transforms"
+msgstr "Animacija Spremeni transformacijo"
+
+#: editor/editor_node.cpp
msgid "Open & Run a Script"
msgstr "Odpri & Zaženi Skripto"
@@ -3642,6 +3673,10 @@ msgid ""
"property (%s)."
msgstr ""
+#: editor/editor_resource_picker.cpp
+msgid "Quick Load"
+msgstr ""
+
#: editor/editor_resource_picker.cpp editor/property_editor.cpp
msgid "Make Unique"
msgstr ""
@@ -5878,6 +5913,18 @@ msgid "Move CanvasItem \"%s\" to (%d, %d)"
msgstr "Uredi Platno Stvari"
#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Locked"
+msgstr "Izbira Orodja"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Grouped"
+msgstr "Skupine"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
msgid ""
"Children of containers have their anchors and margins values overridden by "
"their parent."
@@ -6847,7 +6894,11 @@ msgid "Remove Selected Item"
msgstr ""
#: editor/plugins/mesh_library_editor_plugin.cpp
-msgid "Import from Scene"
+msgid "Import from Scene (Ignore Transforms)"
+msgstr ""
+
+#: editor/plugins/mesh_library_editor_plugin.cpp
+msgid "Import from Scene (Apply Transforms)"
msgstr ""
#: editor/plugins/mesh_library_editor_plugin.cpp
@@ -7455,6 +7506,16 @@ msgstr "Ustavi ToÄko"
msgid "Flip Portal"
msgstr ""
+#: editor/plugins/room_manager_editor_plugin.cpp
+#, fuzzy
+msgid "Occluder Set Transform"
+msgstr "Preoblikovanje"
+
+#: editor/plugins/room_manager_editor_plugin.cpp
+#, fuzzy
+msgid "Center Node"
+msgstr "Izberi Gradnik"
+
#: editor/plugins/root_motion_editor_plugin.cpp
msgid "AnimationTree has no path set to an AnimationPlayer"
msgstr ""
@@ -7988,11 +8049,12 @@ msgid "Skeleton2D"
msgstr "Posameznik"
#: editor/plugins/skeleton_2d_editor_plugin.cpp
-msgid "Make Rest Pose (From Bones)"
-msgstr ""
+#, fuzzy
+msgid "Reset to Rest Pose"
+msgstr "Naložite Prevzeto"
#: editor/plugins/skeleton_2d_editor_plugin.cpp
-msgid "Set Bones to Rest Pose"
+msgid "Overwrite Rest Pose"
msgstr ""
#: editor/plugins/skeleton_editor_plugin.cpp
@@ -8022,6 +8084,61 @@ msgid "Perspective"
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Top Orthogonal"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Top Perspective"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Bottom Orthogonal"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Bottom Perspective"
+msgstr "NaÄin Vrtenja"
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Left Orthogonal"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Right Perspective"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Right Orthogonal"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Front Orthogonal"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Front Perspective"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Rear Orthogonal"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Rear Perspective"
+msgstr ""
+
+#. TRANSLATORS: This will be appended to the view name when Auto Orthogonal is enabled.
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid " [auto]"
+msgstr ""
+
+#. TRANSLATORS: This will be appended to the view name when Portal Occulusion is enabled.
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid " [portals active]"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
msgid "Transform Aborted."
msgstr ""
@@ -8137,42 +8254,22 @@ msgid "Bottom View."
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
-msgid "Bottom"
-msgstr ""
-
-#: editor/plugins/spatial_editor_plugin.cpp
msgid "Left View."
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
-msgid "Left"
-msgstr ""
-
-#: editor/plugins/spatial_editor_plugin.cpp
msgid "Right View."
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
-msgid "Right"
-msgstr ""
-
-#: editor/plugins/spatial_editor_plugin.cpp
msgid "Front View."
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
-msgid "Front"
-msgstr ""
-
-#: editor/plugins/spatial_editor_plugin.cpp
msgid "Rear View."
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
-msgid "Rear"
-msgstr ""
-
-#: editor/plugins/spatial_editor_plugin.cpp
msgid "Align Transform with View"
msgstr ""
@@ -8441,6 +8538,11 @@ msgid "View Portal Culling"
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "View Occlusion Culling"
+msgstr "Uredi Poligon"
+
+#: editor/plugins/spatial_editor_plugin.cpp
#: modules/gridmap/grid_map_editor_plugin.cpp
#, fuzzy
msgid "Settings..."
@@ -8507,7 +8609,7 @@ msgid "Post"
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
-msgid "Nameless gizmo"
+msgid "Unnamed Gizmo"
msgstr ""
#: editor/plugins/sprite_editor_plugin.cpp
@@ -12700,6 +12802,15 @@ msgstr "Nastavi Položaj Krivuljne ToÄke"
msgid "Set Portal Point Position"
msgstr "Nastavi Položaj Krivuljne ToÄke"
+#: editor/spatial_editor_gizmos.cpp
+msgid "Set Occluder Sphere Radius"
+msgstr ""
+
+#: editor/spatial_editor_gizmos.cpp
+#, fuzzy
+msgid "Set Occluder Sphere Position"
+msgstr "Nastavi Krivuljo na Položaj"
+
#: modules/csg/csg_gizmos.cpp
#, fuzzy
msgid "Change Cylinder Radius"
@@ -12997,6 +13108,11 @@ msgstr "Ustvarjanje Svetlobnih Kart"
msgid "Class name can't be a reserved keyword"
msgstr ""
+#: modules/mono/csharp_script.cpp
+#, fuzzy
+msgid "Build Solution"
+msgstr "Celotna izbira"
+
#: modules/mono/mono_gd/gd_mono_utils.cpp
msgid "End of inner exception stack trace"
msgstr ""
@@ -13499,166 +13615,155 @@ msgstr "Odstrani Gradnik VizualnaSkripta"
msgid "Get %s"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Package name is missing."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Package segments must be of non-zero length."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "The character '%s' is not allowed in Android application package names."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "A digit cannot be the first character in a package segment."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "The character '%s' cannot be the first character in a package segment."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "The package must have at least one '.' separator."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Select device from the list"
msgstr "Izberite napravo s seznama"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Running on %s"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
#, fuzzy
msgid "Exporting APK..."
msgstr "Izvozi"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
#, fuzzy
msgid "Uninstalling..."
msgstr "Odstrani"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
#, fuzzy
msgid "Installing to device, please wait..."
msgstr "Pridobivanje virov, poÄakajte..."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
#, fuzzy
msgid "Could not install to device: %s"
msgstr "Nemorem zaÄeti podprocesa!"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
#, fuzzy
msgid "Running on device..."
msgstr "Izvajanje Skripte Po Meri..."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
#, fuzzy
msgid "Could not execute on device."
msgstr "Mape ni mogoÄe ustvariti."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Unable to find the 'apksigner' tool."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Android build template not installed in the project. Install it from the "
"Project menu."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Either Debug Keystore, Debug User AND Debug Password settings must be "
"configured OR none of them."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Debug keystore not configured in the Editor Settings nor in the preset."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Either Release Keystore, Release User AND Release Password settings must be "
"configured OR none of them."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Release keystore incorrectly configured in the export preset."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "A valid Android SDK path is required in Editor Settings."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Invalid Android SDK path in Editor Settings."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Missing 'platform-tools' directory!"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Unable to find Android SDK platform-tools' adb command."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Please check in the Android SDK directory specified in Editor Settings."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Missing 'build-tools' directory!"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Unable to find Android SDK build-tools' apksigner command."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Invalid public key for APK expansion."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
#, fuzzy
msgid "Invalid package name:"
msgstr "Neveljavno ime."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Invalid \"GodotPaymentV3\" module included in the \"android/modules\" "
"project setting (changed in Godot 3.2.2).\n"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "\"Use Custom Build\" must be enabled to use the plugins."
msgstr ""
-#: platform/android/export/export.cpp
-msgid ""
-"\"Degrees Of Freedom\" is only valid when \"Xr Mode\" is \"Oculus Mobile VR"
-"\"."
-msgstr ""
-
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"\"Hand Tracking\" is only valid when \"Xr Mode\" is \"Oculus Mobile VR\"."
msgstr ""
-#: platform/android/export/export.cpp
-msgid ""
-"\"Focus Awareness\" is only valid when \"Xr Mode\" is \"Oculus Mobile VR\"."
-msgstr ""
-
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "\"Export AAB\" is only valid when \"Use Custom Build\" is enabled."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"'apksigner' could not be found.\n"
"Please check the command is available in the Android SDK build-tools "
@@ -13666,62 +13771,62 @@ msgid ""
"The resulting %s is unsigned."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Signing debug %s..."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
#, fuzzy
msgid "Signing release %s..."
msgstr ""
"Pregledovanje Datotek,\n"
"Prosimo, PoÄakajte..."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Could not find keystore, unable to export."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "'apksigner' returned with error #%d"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
#, fuzzy
msgid "Verifying %s..."
msgstr "Nastavitve ZaskoÄenja"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "'apksigner' verification of %s failed."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
#, fuzzy
msgid "Exporting for Android"
msgstr "Izvozi"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Invalid filename! Android App Bundle requires the *.aab extension."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "APK Expansion not compatible with Android App Bundle."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Invalid filename! Android APK requires the *.apk extension."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Unsupported export format!\n"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Trying to build from a custom built template, but no version info for it "
"exists. Please reinstall from the 'Project' menu."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Android build version mismatch:\n"
" Template installed: %s\n"
@@ -13729,56 +13834,56 @@ msgid ""
"Please reinstall Android build template from 'Project' menu."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Unable to overwrite res://android/build/res/*.xml files with project name"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Could not export project files to gradle project\n"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Could not write expansion package file!"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Building Android Project (gradle)"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Building of Android project failed, check output for the error.\n"
"Alternatively visit docs.godotengine.org for Android build documentation."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Moving output"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Unable to copy and rename export file, check gradle project directory for "
"outputs."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
#, fuzzy
msgid "Package not found: %s"
msgstr "Animacijska Orodja"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
#, fuzzy
msgid "Creating APK..."
msgstr "Povezovanje..."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Could not find template APK to export:\n"
"%s"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Missing libraries in the export template for the selected architectures: "
"%s.\n"
@@ -13786,21 +13891,21 @@ msgid ""
"architectures in the export preset."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
#, fuzzy
msgid "Adding files..."
msgstr "Filtriraj datoteke..."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
#, fuzzy
msgid "Could not export project files"
msgstr "Nemorem zaÄeti podprocesa!"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Aligning APK..."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Could not unzip temporary unaligned APK."
msgstr ""
@@ -14283,6 +14388,14 @@ msgid ""
"It only provides navigation data."
msgstr ""
+#: scene/3d/occluder.cpp
+msgid "No shape is set."
+msgstr ""
+
+#: scene/3d/occluder.cpp
+msgid "Only uniform scales are supported."
+msgstr ""
+
#: scene/3d/particles.cpp
msgid ""
"GPU-based particles are not supported by the GLES2 video driver.\n"
@@ -14582,6 +14695,14 @@ msgstr "Uporabiti moraš valjavno razširitev."
msgid "Enable grid minimap."
msgstr ""
+#: scene/gui/nine_patch_rect.cpp
+msgid ""
+"The Tile and Tile Fit options for Axis Stretch properties are only effective "
+"when using the GLES3 rendering backend.\n"
+"The GLES2 backend is currently in use, so these modes will act like Stretch "
+"instead."
+msgstr ""
+
#: scene/gui/popup.cpp
#, fuzzy
msgid ""
@@ -14626,6 +14747,10 @@ msgstr ""
msgid "Viewport size must be greater than 0 to render anything."
msgstr ""
+#: scene/resources/occluder_shape.cpp
+msgid "OccluderShapeSphere Set Spheres"
+msgstr ""
+
#: scene/resources/visual_shader_nodes.cpp
msgid ""
"The sampler port is connected but not used. Consider changing the source to "
diff --git a/editor/translations/sq.po b/editor/translations/sq.po
index ded08d5532..2cc63728a3 100644
--- a/editor/translations/sq.po
+++ b/editor/translations/sq.po
@@ -1020,7 +1020,7 @@ msgstr ""
msgid "Dependencies"
msgstr "Varësitë"
-#: editor/dependency_editor.cpp
+#: editor/dependency_editor.cpp editor/editor_resource_picker.cpp
msgid "Resource"
msgstr "Resursi"
@@ -1697,13 +1697,13 @@ msgstr ""
"Lejo 'Import Etc' in Opsionet e Projektit, ose çaktivizo 'Driver Fallback "
"Enabled'."
-#: editor/editor_export.cpp platform/android/export/export.cpp
+#: editor/editor_export.cpp platform/android/export/export_plugin.cpp
#: platform/iphone/export/export.cpp platform/javascript/export/export.cpp
#: platform/osx/export/export.cpp platform/uwp/export/export.cpp
msgid "Custom debug template not found."
msgstr "Shablloni 'Custom debug' nuk u gjet."
-#: editor/editor_export.cpp platform/android/export/export.cpp
+#: editor/editor_export.cpp platform/android/export/export_plugin.cpp
#: platform/iphone/export/export.cpp platform/javascript/export/export.cpp
#: platform/osx/export/export.cpp platform/uwp/export/export.cpp
msgid "Custom release template not found."
@@ -2104,7 +2104,7 @@ msgstr ""
msgid "(Re)Importing Assets"
msgstr "Duke (Ri)Importuar Asetet"
-#: editor/editor_help.cpp editor/plugins/spatial_editor_plugin.cpp
+#: editor/editor_help.cpp
msgid "Top"
msgstr "Siper"
@@ -2626,6 +2626,32 @@ msgid "Current scene not saved. Open anyway?"
msgstr "Skena aktuale nuk është ruajtur. Hap gjithsesi?"
#: editor/editor_node.cpp
+msgid "Can't undo while mouse buttons are pressed."
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "Nothing to undo."
+msgstr ""
+
+#: editor/editor_node.cpp
+#, fuzzy
+msgid "Undo: %s"
+msgstr "Zhbëj"
+
+#: editor/editor_node.cpp
+msgid "Can't redo while mouse buttons are pressed."
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "Nothing to redo."
+msgstr ""
+
+#: editor/editor_node.cpp
+#, fuzzy
+msgid "Redo: %s"
+msgstr "Ribëj"
+
+#: editor/editor_node.cpp
msgid "Can't reload a scene that was never saved."
msgstr "Nuk mund të ringarkojë një skenë që nuk është ruajtur më parë."
@@ -3326,6 +3352,10 @@ msgid "Merge With Existing"
msgstr "Bashko Me Ekzistuesin"
#: editor/editor_node.cpp
+msgid "Apply MeshInstance Transforms"
+msgstr ""
+
+#: editor/editor_node.cpp
msgid "Open & Run a Script"
msgstr "Hap & Fillo një Shkrim"
@@ -3582,6 +3612,10 @@ msgstr ""
"Resursi i zgjedhur (%s) nuk përputhet me ndonjë tip të pritur për këtë veti "
"(%s)."
+#: editor/editor_resource_picker.cpp
+msgid "Quick Load"
+msgstr ""
+
#: editor/editor_resource_picker.cpp editor/property_editor.cpp
msgid "Make Unique"
msgstr "Bëje Unik"
@@ -5718,6 +5752,18 @@ msgid "Move CanvasItem \"%s\" to (%d, %d)"
msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Locked"
+msgstr "Zgjidh"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Grouped"
+msgstr "Grupet"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
msgid ""
"Children of containers have their anchors and margins values overridden by "
"their parent."
@@ -6637,7 +6683,11 @@ msgid "Remove Selected Item"
msgstr ""
#: editor/plugins/mesh_library_editor_plugin.cpp
-msgid "Import from Scene"
+msgid "Import from Scene (Ignore Transforms)"
+msgstr ""
+
+#: editor/plugins/mesh_library_editor_plugin.cpp
+msgid "Import from Scene (Apply Transforms)"
msgstr ""
#: editor/plugins/mesh_library_editor_plugin.cpp
@@ -7226,6 +7276,16 @@ msgstr "Fut një Pikë"
msgid "Flip Portal"
msgstr ""
+#: editor/plugins/room_manager_editor_plugin.cpp
+#, fuzzy
+msgid "Occluder Set Transform"
+msgstr "Binari i Transformimeve 3D"
+
+#: editor/plugins/room_manager_editor_plugin.cpp
+#, fuzzy
+msgid "Center Node"
+msgstr "Fshi Nyjen"
+
#: editor/plugins/root_motion_editor_plugin.cpp
msgid "AnimationTree has no path set to an AnimationPlayer"
msgstr ""
@@ -7734,12 +7794,14 @@ msgid "Skeleton2D"
msgstr ""
#: editor/plugins/skeleton_2d_editor_plugin.cpp
-msgid "Make Rest Pose (From Bones)"
-msgstr ""
+#, fuzzy
+msgid "Reset to Rest Pose"
+msgstr "Ngarko të Parazgjedhur"
#: editor/plugins/skeleton_2d_editor_plugin.cpp
-msgid "Set Bones to Rest Pose"
-msgstr ""
+#, fuzzy
+msgid "Overwrite Rest Pose"
+msgstr "Mbishkruaj"
#: editor/plugins/skeleton_editor_plugin.cpp
msgid "Create physical bones"
@@ -7766,6 +7828,60 @@ msgid "Perspective"
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Top Orthogonal"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Top Perspective"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Bottom Orthogonal"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Bottom Perspective"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Left Orthogonal"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Right Perspective"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Right Orthogonal"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Front Orthogonal"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Front Perspective"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Rear Orthogonal"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Rear Perspective"
+msgstr ""
+
+#. TRANSLATORS: This will be appended to the view name when Auto Orthogonal is enabled.
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid " [auto]"
+msgstr ""
+
+#. TRANSLATORS: This will be appended to the view name when Portal Occulusion is enabled.
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid " [portals active]"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
msgid "Transform Aborted."
msgstr ""
@@ -7878,42 +7994,22 @@ msgid "Bottom View."
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
-msgid "Bottom"
-msgstr ""
-
-#: editor/plugins/spatial_editor_plugin.cpp
msgid "Left View."
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
-msgid "Left"
-msgstr ""
-
-#: editor/plugins/spatial_editor_plugin.cpp
msgid "Right View."
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
-msgid "Right"
-msgstr ""
-
-#: editor/plugins/spatial_editor_plugin.cpp
msgid "Front View."
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
-msgid "Front"
-msgstr ""
-
-#: editor/plugins/spatial_editor_plugin.cpp
msgid "Rear View."
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
-msgid "Rear"
-msgstr ""
-
-#: editor/plugins/spatial_editor_plugin.cpp
msgid "Align Transform with View"
msgstr ""
@@ -8179,6 +8275,10 @@ msgid "View Portal Culling"
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
+msgid "View Occlusion Culling"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
#: modules/gridmap/grid_map_editor_plugin.cpp
#, fuzzy
msgid "Settings..."
@@ -8245,7 +8345,7 @@ msgid "Post"
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
-msgid "Nameless gizmo"
+msgid "Unnamed Gizmo"
msgstr ""
#: editor/plugins/sprite_editor_plugin.cpp
@@ -12301,6 +12401,14 @@ msgstr ""
msgid "Set Portal Point Position"
msgstr ""
+#: editor/spatial_editor_gizmos.cpp
+msgid "Set Occluder Sphere Radius"
+msgstr ""
+
+#: editor/spatial_editor_gizmos.cpp
+msgid "Set Occluder Sphere Position"
+msgstr ""
+
#: modules/csg/csg_gizmos.cpp
msgid "Change Cylinder Radius"
msgstr ""
@@ -12590,6 +12698,10 @@ msgstr "Duke Gjeneruar Hartat e Dritës"
msgid "Class name can't be a reserved keyword"
msgstr ""
+#: modules/mono/csharp_script.cpp
+msgid "Build Solution"
+msgstr ""
+
#: modules/mono/mono_gd/gd_mono_utils.cpp
msgid "End of inner exception stack trace"
msgstr ""
@@ -13075,165 +13187,154 @@ msgstr ""
msgid "Get %s"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Package name is missing."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Package segments must be of non-zero length."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "The character '%s' is not allowed in Android application package names."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "A digit cannot be the first character in a package segment."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "The character '%s' cannot be the first character in a package segment."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "The package must have at least one '.' separator."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Select device from the list"
msgstr "Zgjidh paisjen nga lista"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Running on %s"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
#, fuzzy
msgid "Exporting APK..."
msgstr "Eksporto"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
#, fuzzy
msgid "Uninstalling..."
msgstr "Çinstalo"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
#, fuzzy
msgid "Installing to device, please wait..."
msgstr "Duke marrë pasqyrat, ju lutem prisni..."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
#, fuzzy
msgid "Could not install to device: %s"
msgstr "Nuk mund të fillojë subprocess-in!"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
#, fuzzy
msgid "Running on device..."
msgstr "Duke Ekzekutuar Shkrimin..."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
#, fuzzy
msgid "Could not execute on device."
msgstr "Nuk mund të krijoj folderin."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Unable to find the 'apksigner' tool."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Android build template not installed in the project. Install it from the "
"Project menu."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Either Debug Keystore, Debug User AND Debug Password settings must be "
"configured OR none of them."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Debug keystore not configured in the Editor Settings nor in the preset."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Either Release Keystore, Release User AND Release Password settings must be "
"configured OR none of them."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Release keystore incorrectly configured in the export preset."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "A valid Android SDK path is required in Editor Settings."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Invalid Android SDK path in Editor Settings."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Missing 'platform-tools' directory!"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Unable to find Android SDK platform-tools' adb command."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Please check in the Android SDK directory specified in Editor Settings."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Missing 'build-tools' directory!"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Unable to find Android SDK build-tools' apksigner command."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Invalid public key for APK expansion."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Invalid package name:"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Invalid \"GodotPaymentV3\" module included in the \"android/modules\" "
"project setting (changed in Godot 3.2.2).\n"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "\"Use Custom Build\" must be enabled to use the plugins."
msgstr ""
-#: platform/android/export/export.cpp
-msgid ""
-"\"Degrees Of Freedom\" is only valid when \"Xr Mode\" is \"Oculus Mobile VR"
-"\"."
-msgstr ""
-
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"\"Hand Tracking\" is only valid when \"Xr Mode\" is \"Oculus Mobile VR\"."
msgstr ""
-#: platform/android/export/export.cpp
-msgid ""
-"\"Focus Awareness\" is only valid when \"Xr Mode\" is \"Oculus Mobile VR\"."
-msgstr ""
-
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "\"Export AAB\" is only valid when \"Use Custom Build\" is enabled."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"'apksigner' could not be found.\n"
"Please check the command is available in the Android SDK build-tools "
@@ -13241,61 +13342,61 @@ msgid ""
"The resulting %s is unsigned."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Signing debug %s..."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
#, fuzzy
msgid "Signing release %s..."
msgstr ""
"Duke Skanuar Skedarët,\n"
"Ju Lutem Prisini..."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Could not find keystore, unable to export."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "'apksigner' returned with error #%d"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
#, fuzzy
msgid "Verifying %s..."
msgstr "Duke u lidhur..."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "'apksigner' verification of %s failed."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Exporting for Android"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Invalid filename! Android App Bundle requires the *.aab extension."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "APK Expansion not compatible with Android App Bundle."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Invalid filename! Android APK requires the *.apk extension."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Unsupported export format!\n"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Trying to build from a custom built template, but no version info for it "
"exists. Please reinstall from the 'Project' menu."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Android build version mismatch:\n"
" Template installed: %s\n"
@@ -13303,56 +13404,56 @@ msgid ""
"Please reinstall Android build template from 'Project' menu."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Unable to overwrite res://android/build/res/*.xml files with project name"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Could not export project files to gradle project\n"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Could not write expansion package file!"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Building Android Project (gradle)"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Building of Android project failed, check output for the error.\n"
"Alternatively visit docs.godotengine.org for Android build documentation."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Moving output"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Unable to copy and rename export file, check gradle project directory for "
"outputs."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
#, fuzzy
msgid "Package not found: %s"
msgstr "Instaluesi Paketave"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
#, fuzzy
msgid "Creating APK..."
msgstr "Duke u lidhur..."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Could not find template APK to export:\n"
"%s"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Missing libraries in the export template for the selected architectures: "
"%s.\n"
@@ -13360,21 +13461,21 @@ msgid ""
"architectures in the export preset."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
#, fuzzy
msgid "Adding files..."
msgstr "Filtro Skedarët..."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
#, fuzzy
msgid "Could not export project files"
msgstr "Nuk mund të fillojë subprocess-in!"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Aligning APK..."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Could not unzip temporary unaligned APK."
msgstr ""
@@ -13832,6 +13933,14 @@ msgid ""
"It only provides navigation data."
msgstr ""
+#: scene/3d/occluder.cpp
+msgid "No shape is set."
+msgstr ""
+
+#: scene/3d/occluder.cpp
+msgid "Only uniform scales are supported."
+msgstr ""
+
#: scene/3d/particles.cpp
msgid ""
"GPU-based particles are not supported by the GLES2 video driver.\n"
@@ -14121,6 +14230,14 @@ msgstr "Duhet të perdorësh një shtesë të lejuar."
msgid "Enable grid minimap."
msgstr ""
+#: scene/gui/nine_patch_rect.cpp
+msgid ""
+"The Tile and Tile Fit options for Axis Stretch properties are only effective "
+"when using the GLES3 rendering backend.\n"
+"The GLES2 backend is currently in use, so these modes will act like Stretch "
+"instead."
+msgstr ""
+
#: scene/gui/popup.cpp
msgid ""
"Popups will hide by default unless you call popup() or any of the popup*() "
@@ -14161,6 +14278,10 @@ msgstr ""
msgid "Viewport size must be greater than 0 to render anything."
msgstr ""
+#: scene/resources/occluder_shape.cpp
+msgid "OccluderShapeSphere Set Spheres"
+msgstr ""
+
#: scene/resources/visual_shader_nodes.cpp
msgid ""
"The sampler port is connected but not used. Consider changing the source to "
diff --git a/editor/translations/sr_Cyrl.po b/editor/translations/sr_Cyrl.po
index 0a915e03bf..bb56bcbe29 100644
--- a/editor/translations/sr_Cyrl.po
+++ b/editor/translations/sr_Cyrl.po
@@ -1134,7 +1134,7 @@ msgstr ""
msgid "Dependencies"
msgstr "ЗавиÑноÑти"
-#: editor/dependency_editor.cpp
+#: editor/dependency_editor.cpp editor/editor_resource_picker.cpp
msgid "Resource"
msgstr "РеÑурÑ"
@@ -1824,14 +1824,14 @@ msgstr ""
"Омогући 'Увоз Etc' у подешавањима пројекта, или онемогући 'Поваратак "
"Управљача Омогућен'."
-#: editor/editor_export.cpp platform/android/export/export.cpp
+#: editor/editor_export.cpp platform/android/export/export_plugin.cpp
#: platform/iphone/export/export.cpp platform/javascript/export/export.cpp
#: platform/osx/export/export.cpp platform/uwp/export/export.cpp
#, fuzzy
msgid "Custom debug template not found."
msgstr "ШаблонÑка датотека није пронађена:\n"
-#: editor/editor_export.cpp platform/android/export/export.cpp
+#: editor/editor_export.cpp platform/android/export/export_plugin.cpp
#: platform/iphone/export/export.cpp platform/javascript/export/export.cpp
#: platform/osx/export/export.cpp platform/uwp/export/export.cpp
#, fuzzy
@@ -2253,7 +2253,7 @@ msgstr ""
msgid "(Re)Importing Assets"
msgstr "(Поновно) Увожење ÑредÑтава"
-#: editor/editor_help.cpp editor/plugins/spatial_editor_plugin.cpp
+#: editor/editor_help.cpp
msgid "Top"
msgstr "Врх"
@@ -2803,6 +2803,32 @@ msgid "Current scene not saved. Open anyway?"
msgstr "Тренутна Ñцена није Ñачувана. Ипак отвори?"
#: editor/editor_node.cpp
+msgid "Can't undo while mouse buttons are pressed."
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "Nothing to undo."
+msgstr ""
+
+#: editor/editor_node.cpp
+#, fuzzy
+msgid "Undo: %s"
+msgstr "Опозови"
+
+#: editor/editor_node.cpp
+msgid "Can't redo while mouse buttons are pressed."
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "Nothing to redo."
+msgstr ""
+
+#: editor/editor_node.cpp
+#, fuzzy
+msgid "Redo: %s"
+msgstr "Поново уради"
+
+#: editor/editor_node.cpp
msgid "Can't reload a scene that was never saved."
msgstr "Ðе могу поново учитати Ñцену која није Ñачувана."
@@ -3532,6 +3558,11 @@ msgid "Merge With Existing"
msgstr "Споји Ñа поÑтојећим"
#: editor/editor_node.cpp
+#, fuzzy
+msgid "Apply MeshInstance Transforms"
+msgstr "Промени положај"
+
+#: editor/editor_node.cpp
msgid "Open & Run a Script"
msgstr "Отвори и покрени Ñкриптицу"
@@ -3812,6 +3843,10 @@ msgstr ""
"Одабрани реÑÑƒÑ€Ñ (%s) не одговара ни једној очекиваној врÑти за ову оÑобину "
"(%s)."
+#: editor/editor_resource_picker.cpp
+msgid "Quick Load"
+msgstr ""
+
#: editor/editor_resource_picker.cpp editor/property_editor.cpp
#, fuzzy
msgid "Make Unique"
@@ -6144,6 +6179,18 @@ msgid "Move CanvasItem \"%s\" to (%d, %d)"
msgstr "Уреди CanvasItem"
#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Locked"
+msgstr "Закључај одабрано"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Grouped"
+msgstr "Групе"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
#, fuzzy
msgid ""
"Children of containers have their anchors and margins values overridden by "
@@ -7190,7 +7237,13 @@ msgid "Remove Selected Item"
msgstr "Обриши одабрану Ñтвар"
#: editor/plugins/mesh_library_editor_plugin.cpp
-msgid "Import from Scene"
+#, fuzzy
+msgid "Import from Scene (Ignore Transforms)"
+msgstr "Увези из Ñцене"
+
+#: editor/plugins/mesh_library_editor_plugin.cpp
+#, fuzzy
+msgid "Import from Scene (Apply Transforms)"
msgstr "Увези из Ñцене"
#: editor/plugins/mesh_library_editor_plugin.cpp
@@ -7834,6 +7887,16 @@ msgstr "Број генериÑаних тачака:"
msgid "Flip Portal"
msgstr "Обрни Хоризонтално"
+#: editor/plugins/room_manager_editor_plugin.cpp
+#, fuzzy
+msgid "Occluder Set Transform"
+msgstr "ОчиÑти ТранÑформацију"
+
+#: editor/plugins/room_manager_editor_plugin.cpp
+#, fuzzy
+msgid "Center Node"
+msgstr "Ðаправи чвор"
+
#: editor/plugins/root_motion_editor_plugin.cpp
#, fuzzy
msgid "AnimationTree has no path set to an AnimationPlayer"
@@ -8399,13 +8462,13 @@ msgstr "Синглетон2Д"
#: editor/plugins/skeleton_2d_editor_plugin.cpp
#, fuzzy
-msgid "Make Rest Pose (From Bones)"
-msgstr "Ðаправи Одмор Позу(од КоÑтију)"
+msgid "Reset to Rest Pose"
+msgstr "ПоÑтави КоÑке у Одмор Позу"
#: editor/plugins/skeleton_2d_editor_plugin.cpp
#, fuzzy
-msgid "Set Bones to Rest Pose"
-msgstr "ПоÑтави КоÑке у Одмор Позу"
+msgid "Overwrite Rest Pose"
+msgstr "Препиши"
#: editor/plugins/skeleton_editor_plugin.cpp
#, fuzzy
@@ -8436,6 +8499,71 @@ msgid "Perspective"
msgstr "ПерÑпективна пројекција"
#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Top Orthogonal"
+msgstr "Ортогонална пројекција"
+
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Top Perspective"
+msgstr "ПерÑпективна пројекција"
+
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Bottom Orthogonal"
+msgstr "Ортогонална пројекција"
+
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Bottom Perspective"
+msgstr "ПерÑпективна пројекција"
+
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Left Orthogonal"
+msgstr "Ортогонална пројекција"
+
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Right Perspective"
+msgstr "ПерÑпективна пројекција"
+
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Right Orthogonal"
+msgstr "Ортогонална пројекција"
+
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Front Orthogonal"
+msgstr "Ортогонална пројекција"
+
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Front Perspective"
+msgstr "ПерÑпективна пројекција"
+
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Rear Orthogonal"
+msgstr "Ортогонална пројекција"
+
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Rear Perspective"
+msgstr "ПерÑпективна пројекција"
+
+#. TRANSLATORS: This will be appended to the view name when Auto Orthogonal is enabled.
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid " [auto]"
+msgstr ""
+
+#. TRANSLATORS: This will be appended to the view name when Portal Occulusion is enabled.
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid " [portals active]"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
msgid "Transform Aborted."
msgstr "ТранÑформација прекинута."
@@ -8555,42 +8683,22 @@ msgid "Bottom View."
msgstr "Поглед одоздо."
#: editor/plugins/spatial_editor_plugin.cpp
-msgid "Bottom"
-msgstr "Доле"
-
-#: editor/plugins/spatial_editor_plugin.cpp
msgid "Left View."
msgstr "Леви поглед."
#: editor/plugins/spatial_editor_plugin.cpp
-msgid "Left"
-msgstr "Лево"
-
-#: editor/plugins/spatial_editor_plugin.cpp
msgid "Right View."
msgstr "ДеÑни поглед."
#: editor/plugins/spatial_editor_plugin.cpp
-msgid "Right"
-msgstr "деÑно"
-
-#: editor/plugins/spatial_editor_plugin.cpp
msgid "Front View."
msgstr "Поглед Ñпреда."
#: editor/plugins/spatial_editor_plugin.cpp
-msgid "Front"
-msgstr "ИÑпред"
-
-#: editor/plugins/spatial_editor_plugin.cpp
msgid "Rear View."
msgstr "Бочни поглед."
#: editor/plugins/spatial_editor_plugin.cpp
-msgid "Rear"
-msgstr "Бок"
-
-#: editor/plugins/spatial_editor_plugin.cpp
#, fuzzy
msgid "Align Transform with View"
msgstr "Поравнавање Ñа погледом"
@@ -8873,6 +8981,11 @@ msgid "View Portal Culling"
msgstr "ПоÑтавке прозора"
#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "View Occlusion Culling"
+msgstr "ПоÑтавке прозора"
+
+#: editor/plugins/spatial_editor_plugin.cpp
#: modules/gridmap/grid_map_editor_plugin.cpp
#, fuzzy
msgid "Settings..."
@@ -8941,8 +9054,8 @@ msgstr "ПоÑле"
#: editor/plugins/spatial_editor_plugin.cpp
#, fuzzy
-msgid "Nameless gizmo"
-msgstr "Безимена ручка"
+msgid "Unnamed Gizmo"
+msgstr "Ðеименован Пројекат"
#: editor/plugins/sprite_editor_plugin.cpp
#, fuzzy
@@ -13809,6 +13922,16 @@ msgstr "ПоÑтави позицију тачке криве"
msgid "Set Portal Point Position"
msgstr "ПоÑтави позицију тачке криве"
+#: editor/spatial_editor_gizmos.cpp
+#, fuzzy
+msgid "Set Occluder Sphere Radius"
+msgstr "Промени ОпÑег Цилиндар Облика"
+
+#: editor/spatial_editor_gizmos.cpp
+#, fuzzy
+msgid "Set Occluder Sphere Position"
+msgstr "ПоÑтави почетну позицију криве"
+
#: modules/csg/csg_gizmos.cpp
#, fuzzy
msgid "Change Cylinder Radius"
@@ -14155,6 +14278,11 @@ msgstr "Скована Светла:"
msgid "Class name can't be a reserved keyword"
msgstr "Има КлаÑе не може бити резервиÑана кључна реч"
+#: modules/mono/csharp_script.cpp
+#, fuzzy
+msgid "Build Solution"
+msgstr "ИÑпуни одабрано"
+
#: modules/mono/mono_gd/gd_mono_utils.cpp
#, fuzzy
msgid "End of inner exception stack trace"
@@ -14685,79 +14813,79 @@ msgstr "Потражи VisualScript"
msgid "Get %s"
msgstr "Повуци %s"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
#, fuzzy
msgid "Package name is missing."
msgstr "ÐедоÑтаје име паковања."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
#, fuzzy
msgid "Package segments must be of non-zero length."
msgstr "Одломци паковања не могу бити нулте дужине."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
#, fuzzy
msgid "The character '%s' is not allowed in Android application package names."
msgstr "Карактер '%s' није дозвољен у именима паковања Android апликације."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
#, fuzzy
msgid "A digit cannot be the first character in a package segment."
msgstr "Цифра не може бити први карактер у одломку паковања."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
#, fuzzy
msgid "The character '%s' cannot be the first character in a package segment."
msgstr "Карактер '%s' не може бити први карактер у одломку паковања."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
#, fuzzy
msgid "The package must have at least one '.' separator."
msgstr "Паковање мора имати бар један '.' раздвојник."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Select device from the list"
msgstr "Одабери уређај Ñа лиÑте"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Running on %s"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
#, fuzzy
msgid "Exporting APK..."
msgstr "Извоз"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
#, fuzzy
msgid "Uninstalling..."
msgstr "ДеинÑталирај"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
#, fuzzy
msgid "Installing to device, please wait..."
msgstr "Прихватам одредишта, молим Ñачекајте..."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
#, fuzzy
msgid "Could not install to device: %s"
msgstr "Ðе могу покренути подпроцеÑ!"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
#, fuzzy
msgid "Running on device..."
msgstr "Обрађивање Ñкриптице..."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
#, fuzzy
msgid "Could not execute on device."
msgstr "ÐеуÑпех при прављењу директоријума."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Unable to find the 'apksigner' tool."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
#, fuzzy
msgid ""
"Android build template not installed in the project. Install it from the "
@@ -14766,107 +14894,96 @@ msgstr ""
"Android нацрт изградње није инÑталиран у пројекат. ИнÑталирај га из Пројекат "
"менија."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Either Debug Keystore, Debug User AND Debug Password settings must be "
"configured OR none of them."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
#, fuzzy
msgid "Debug keystore not configured in the Editor Settings nor in the preset."
msgstr ""
"Сладиште кључева Разгрешеника није подешено у Подешавањима Уредника ни у "
"поÑтавкама."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Either Release Keystore, Release User AND Release Password settings must be "
"configured OR none of them."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
#, fuzzy
msgid "Release keystore incorrectly configured in the export preset."
msgstr ""
"Сладиште кључева Разгрешеника није подешено у Подешавањима Уредника ни у "
"поÑтавкама."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
#, fuzzy
msgid "A valid Android SDK path is required in Editor Settings."
msgstr ""
"Ðеважећа Android SDK путања за произвољну изградњу у Подешавањима Уредника."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
#, fuzzy
msgid "Invalid Android SDK path in Editor Settings."
msgstr ""
"Ðеважећа Android SDK путања за произвољну изградњу у Подешавањима Уредника."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Missing 'platform-tools' directory!"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Unable to find Android SDK platform-tools' adb command."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
#, fuzzy
msgid "Please check in the Android SDK directory specified in Editor Settings."
msgstr ""
"Ðеважећа Android SDK путања за произвољну изградњу у Подешавањима Уредника."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Missing 'build-tools' directory!"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Unable to find Android SDK build-tools' apksigner command."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
#, fuzzy
msgid "Invalid public key for APK expansion."
msgstr "Ðеважећи јавни кључ за ÐПК проширење."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
#, fuzzy
msgid "Invalid package name:"
msgstr "Ðеважеће име паковања:"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Invalid \"GodotPaymentV3\" module included in the \"android/modules\" "
"project setting (changed in Godot 3.2.2).\n"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "\"Use Custom Build\" must be enabled to use the plugins."
msgstr ""
-#: platform/android/export/export.cpp
-msgid ""
-"\"Degrees Of Freedom\" is only valid when \"Xr Mode\" is \"Oculus Mobile VR"
-"\"."
-msgstr ""
-
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"\"Hand Tracking\" is only valid when \"Xr Mode\" is \"Oculus Mobile VR\"."
msgstr ""
-#: platform/android/export/export.cpp
-msgid ""
-"\"Focus Awareness\" is only valid when \"Xr Mode\" is \"Oculus Mobile VR\"."
-msgstr ""
-
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "\"Export AAB\" is only valid when \"Use Custom Build\" is enabled."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"'apksigner' could not be found.\n"
"Please check the command is available in the Android SDK build-tools "
@@ -14874,57 +14991,57 @@ msgid ""
"The resulting %s is unsigned."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Signing debug %s..."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
#, fuzzy
msgid "Signing release %s..."
msgstr ""
"Скенирање датотека,\n"
"Молим Ñачекајте..."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
#, fuzzy
msgid "Could not find keystore, unable to export."
msgstr "ÐеуÑпешно отварање нацрта за извоз:"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "'apksigner' returned with error #%d"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
#, fuzzy
msgid "Verifying %s..."
msgstr "Додавање %s..."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "'apksigner' verification of %s failed."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
#, fuzzy
msgid "Exporting for Android"
msgstr "Извоз"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Invalid filename! Android App Bundle requires the *.aab extension."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "APK Expansion not compatible with Android App Bundle."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Invalid filename! Android APK requires the *.apk extension."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Unsupported export format!\n"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
#, fuzzy
msgid ""
"Trying to build from a custom built template, but no version info for it "
@@ -14933,7 +15050,7 @@ msgstr ""
"Покушај изградње за произвољни нацрт изградње, али не поÑтоји инфо о "
"верзији. Молимо реинÑталирај из \"Пројекат\" менија."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
#, fuzzy
msgid ""
"Android build version mismatch:\n"
@@ -14946,27 +15063,27 @@ msgstr ""
" Годот Верзија: %s\n"
"Молимо реинÑталирајте Android нацрт изградње из \"Пројекат\" менија."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Unable to overwrite res://android/build/res/*.xml files with project name"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
#, fuzzy
msgid "Could not export project files to gradle project\n"
msgstr "ÐеуÑпешна измена project.godot-а у путањи пројекта."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
#, fuzzy
msgid "Could not write expansion package file!"
msgstr "ÐеуÑпело упиÑивање фајла:"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
#, fuzzy
msgid "Building Android Project (gradle)"
msgstr "Изградња Android Пројекта (gradle)"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
#, fuzzy
msgid ""
"Building of Android project failed, check output for the error.\n"
@@ -14975,34 +15092,34 @@ msgstr ""
"Изградња Android пројекта неуÑпешна, провери излаз за грешке.\n"
"Ðлтернативно поÑети docs.godotengine.org за Android документацију изградње."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Moving output"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Unable to copy and rename export file, check gradle project directory for "
"outputs."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
#, fuzzy
msgid "Package not found: %s"
msgstr "Ðнимација није нађена: '%s'"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
#, fuzzy
msgid "Creating APK..."
msgstr "Прављење контура..."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
#, fuzzy
msgid ""
"Could not find template APK to export:\n"
"%s"
msgstr "ÐеуÑпешно отварање нацрта за извоз:"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Missing libraries in the export template for the selected architectures: "
"%s.\n"
@@ -15010,21 +15127,21 @@ msgid ""
"architectures in the export preset."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
#, fuzzy
msgid "Adding files..."
msgstr "Додавање %s..."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
#, fuzzy
msgid "Could not export project files"
msgstr "ÐеуÑпело упиÑивање фајла:"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Aligning APK..."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Could not unzip temporary unaligned APK."
msgstr ""
@@ -15625,6 +15742,14 @@ msgstr ""
"ÐавМрежнаИнÑтанца мора бити дете или прадете Ðавигационог чвора. Само "
"обезбећује навигационе податке."
+#: scene/3d/occluder.cpp
+msgid "No shape is set."
+msgstr ""
+
+#: scene/3d/occluder.cpp
+msgid "Only uniform scales are supported."
+msgstr ""
+
#: scene/3d/particles.cpp
#, fuzzy
msgid ""
@@ -15976,6 +16101,14 @@ msgstr "Мора Ñе кориÑтити важећа екÑтензија."
msgid "Enable grid minimap."
msgstr "Укључи лепљење"
+#: scene/gui/nine_patch_rect.cpp
+msgid ""
+"The Tile and Tile Fit options for Axis Stretch properties are only effective "
+"when using the GLES3 rendering backend.\n"
+"The GLES2 backend is currently in use, so these modes will act like Stretch "
+"instead."
+msgstr ""
+
#: scene/gui/popup.cpp
#, fuzzy
msgid ""
@@ -16036,6 +16169,10 @@ msgstr ""
msgid "Viewport size must be greater than 0 to render anything."
msgstr "Величина Viewport-а мора бити већа од 0 да би Ñе нешто иÑцртало."
+#: scene/resources/occluder_shape.cpp
+msgid "OccluderShapeSphere Set Spheres"
+msgstr ""
+
#: scene/resources/visual_shader_nodes.cpp
msgid ""
"The sampler port is connected but not used. Consider changing the source to "
@@ -16094,6 +16231,29 @@ msgid "Constants cannot be modified."
msgstr "КонÑтанте није могуће мењати."
#, fuzzy
+#~ msgid "Make Rest Pose (From Bones)"
+#~ msgstr "Ðаправи Одмор Позу(од КоÑтију)"
+
+#~ msgid "Bottom"
+#~ msgstr "Доле"
+
+#~ msgid "Left"
+#~ msgstr "Лево"
+
+#~ msgid "Right"
+#~ msgstr "деÑно"
+
+#~ msgid "Front"
+#~ msgstr "ИÑпред"
+
+#~ msgid "Rear"
+#~ msgstr "Бок"
+
+#, fuzzy
+#~ msgid "Nameless gizmo"
+#~ msgstr "Безимена ручка"
+
+#, fuzzy
#~ msgid "Package Contents:"
#~ msgstr "Садржај:"
diff --git a/editor/translations/sr_Latn.po b/editor/translations/sr_Latn.po
index 76982c0b00..eee30eb977 100644
--- a/editor/translations/sr_Latn.po
+++ b/editor/translations/sr_Latn.po
@@ -1025,7 +1025,7 @@ msgstr ""
msgid "Dependencies"
msgstr ""
-#: editor/dependency_editor.cpp
+#: editor/dependency_editor.cpp editor/editor_resource_picker.cpp
msgid "Resource"
msgstr ""
@@ -1655,13 +1655,13 @@ msgid ""
"Enabled'."
msgstr ""
-#: editor/editor_export.cpp platform/android/export/export.cpp
+#: editor/editor_export.cpp platform/android/export/export_plugin.cpp
#: platform/iphone/export/export.cpp platform/javascript/export/export.cpp
#: platform/osx/export/export.cpp platform/uwp/export/export.cpp
msgid "Custom debug template not found."
msgstr ""
-#: editor/editor_export.cpp platform/android/export/export.cpp
+#: editor/editor_export.cpp platform/android/export/export_plugin.cpp
#: platform/iphone/export/export.cpp platform/javascript/export/export.cpp
#: platform/osx/export/export.cpp platform/uwp/export/export.cpp
msgid "Custom release template not found."
@@ -2036,7 +2036,7 @@ msgstr ""
msgid "(Re)Importing Assets"
msgstr ""
-#: editor/editor_help.cpp editor/plugins/spatial_editor_plugin.cpp
+#: editor/editor_help.cpp
msgid "Top"
msgstr ""
@@ -2517,6 +2517,30 @@ msgid "Current scene not saved. Open anyway?"
msgstr ""
#: editor/editor_node.cpp
+msgid "Can't undo while mouse buttons are pressed."
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "Nothing to undo."
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "Undo: %s"
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "Can't redo while mouse buttons are pressed."
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "Nothing to redo."
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "Redo: %s"
+msgstr ""
+
+#: editor/editor_node.cpp
msgid "Can't reload a scene that was never saved."
msgstr ""
@@ -3145,6 +3169,11 @@ msgid "Merge With Existing"
msgstr ""
#: editor/editor_node.cpp
+#, fuzzy
+msgid "Apply MeshInstance Transforms"
+msgstr "Animacija Promjeni Transformaciju"
+
+#: editor/editor_node.cpp
msgid "Open & Run a Script"
msgstr ""
@@ -3388,6 +3417,10 @@ msgid ""
"property (%s)."
msgstr ""
+#: editor/editor_resource_picker.cpp
+msgid "Quick Load"
+msgstr ""
+
#: editor/editor_resource_picker.cpp editor/property_editor.cpp
msgid "Make Unique"
msgstr ""
@@ -5455,6 +5488,17 @@ msgid "Move CanvasItem \"%s\" to (%d, %d)"
msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Locked"
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Grouped"
+msgstr "Obriši Selekciju"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
msgid ""
"Children of containers have their anchors and margins values overridden by "
"their parent."
@@ -6374,7 +6418,11 @@ msgid "Remove Selected Item"
msgstr ""
#: editor/plugins/mesh_library_editor_plugin.cpp
-msgid "Import from Scene"
+msgid "Import from Scene (Ignore Transforms)"
+msgstr ""
+
+#: editor/plugins/mesh_library_editor_plugin.cpp
+msgid "Import from Scene (Apply Transforms)"
msgstr ""
#: editor/plugins/mesh_library_editor_plugin.cpp
@@ -6967,6 +7015,16 @@ msgstr "Napravi"
msgid "Flip Portal"
msgstr ""
+#: editor/plugins/room_manager_editor_plugin.cpp
+#, fuzzy
+msgid "Occluder Set Transform"
+msgstr "Animacija Promjeni Transformaciju"
+
+#: editor/plugins/room_manager_editor_plugin.cpp
+#, fuzzy
+msgid "Center Node"
+msgstr "Animacija ObriÅ¡i KljuÄeve"
+
#: editor/plugins/root_motion_editor_plugin.cpp
msgid "AnimationTree has no path set to an AnimationPlayer"
msgstr ""
@@ -7468,11 +7526,12 @@ msgid "Skeleton2D"
msgstr ""
#: editor/plugins/skeleton_2d_editor_plugin.cpp
-msgid "Make Rest Pose (From Bones)"
-msgstr ""
+#, fuzzy
+msgid "Reset to Rest Pose"
+msgstr "Napravi"
#: editor/plugins/skeleton_2d_editor_plugin.cpp
-msgid "Set Bones to Rest Pose"
+msgid "Overwrite Rest Pose"
msgstr ""
#: editor/plugins/skeleton_editor_plugin.cpp
@@ -7500,6 +7559,60 @@ msgid "Perspective"
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Top Orthogonal"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Top Perspective"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Bottom Orthogonal"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Bottom Perspective"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Left Orthogonal"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Right Perspective"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Right Orthogonal"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Front Orthogonal"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Front Perspective"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Rear Orthogonal"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Rear Perspective"
+msgstr ""
+
+#. TRANSLATORS: This will be appended to the view name when Auto Orthogonal is enabled.
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid " [auto]"
+msgstr ""
+
+#. TRANSLATORS: This will be appended to the view name when Portal Occulusion is enabled.
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid " [portals active]"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
msgid "Transform Aborted."
msgstr ""
@@ -7608,42 +7721,22 @@ msgid "Bottom View."
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
-msgid "Bottom"
-msgstr ""
-
-#: editor/plugins/spatial_editor_plugin.cpp
msgid "Left View."
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
-msgid "Left"
-msgstr ""
-
-#: editor/plugins/spatial_editor_plugin.cpp
msgid "Right View."
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
-msgid "Right"
-msgstr ""
-
-#: editor/plugins/spatial_editor_plugin.cpp
msgid "Front View."
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
-msgid "Front"
-msgstr ""
-
-#: editor/plugins/spatial_editor_plugin.cpp
msgid "Rear View."
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
-msgid "Rear"
-msgstr ""
-
-#: editor/plugins/spatial_editor_plugin.cpp
msgid "Align Transform with View"
msgstr ""
@@ -7906,6 +7999,11 @@ msgid "View Portal Culling"
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "View Occlusion Culling"
+msgstr "Napravi"
+
+#: editor/plugins/spatial_editor_plugin.cpp
#: modules/gridmap/grid_map_editor_plugin.cpp
msgid "Settings..."
msgstr ""
@@ -7971,7 +8069,7 @@ msgid "Post"
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
-msgid "Nameless gizmo"
+msgid "Unnamed Gizmo"
msgstr ""
#: editor/plugins/sprite_editor_plugin.cpp
@@ -11967,6 +12065,14 @@ msgstr ""
msgid "Set Portal Point Position"
msgstr ""
+#: editor/spatial_editor_gizmos.cpp
+msgid "Set Occluder Sphere Radius"
+msgstr ""
+
+#: editor/spatial_editor_gizmos.cpp
+msgid "Set Occluder Sphere Position"
+msgstr ""
+
#: modules/csg/csg_gizmos.cpp
msgid "Change Cylinder Radius"
msgstr ""
@@ -12252,6 +12358,11 @@ msgstr ""
msgid "Class name can't be a reserved keyword"
msgstr ""
+#: modules/mono/csharp_script.cpp
+#, fuzzy
+msgid "Build Solution"
+msgstr "Sve sekcije"
+
#: modules/mono/mono_gd/gd_mono_utils.cpp
msgid "End of inner exception stack trace"
msgstr ""
@@ -12734,159 +12845,148 @@ msgstr ""
msgid "Get %s"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Package name is missing."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Package segments must be of non-zero length."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "The character '%s' is not allowed in Android application package names."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "A digit cannot be the first character in a package segment."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "The character '%s' cannot be the first character in a package segment."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "The package must have at least one '.' separator."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Select device from the list"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Running on %s"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Exporting APK..."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Uninstalling..."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Installing to device, please wait..."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Could not install to device: %s"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Running on device..."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Could not execute on device."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Unable to find the 'apksigner' tool."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Android build template not installed in the project. Install it from the "
"Project menu."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Either Debug Keystore, Debug User AND Debug Password settings must be "
"configured OR none of them."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Debug keystore not configured in the Editor Settings nor in the preset."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Either Release Keystore, Release User AND Release Password settings must be "
"configured OR none of them."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Release keystore incorrectly configured in the export preset."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "A valid Android SDK path is required in Editor Settings."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Invalid Android SDK path in Editor Settings."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Missing 'platform-tools' directory!"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Unable to find Android SDK platform-tools' adb command."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Please check in the Android SDK directory specified in Editor Settings."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Missing 'build-tools' directory!"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Unable to find Android SDK build-tools' apksigner command."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Invalid public key for APK expansion."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Invalid package name:"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Invalid \"GodotPaymentV3\" module included in the \"android/modules\" "
"project setting (changed in Godot 3.2.2).\n"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "\"Use Custom Build\" must be enabled to use the plugins."
msgstr ""
-#: platform/android/export/export.cpp
-msgid ""
-"\"Degrees Of Freedom\" is only valid when \"Xr Mode\" is \"Oculus Mobile VR"
-"\"."
-msgstr ""
-
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"\"Hand Tracking\" is only valid when \"Xr Mode\" is \"Oculus Mobile VR\"."
msgstr ""
-#: platform/android/export/export.cpp
-msgid ""
-"\"Focus Awareness\" is only valid when \"Xr Mode\" is \"Oculus Mobile VR\"."
-msgstr ""
-
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "\"Export AAB\" is only valid when \"Use Custom Build\" is enabled."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"'apksigner' could not be found.\n"
"Please check the command is available in the Android SDK build-tools "
@@ -12894,57 +12994,57 @@ msgid ""
"The resulting %s is unsigned."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Signing debug %s..."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Signing release %s..."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Could not find keystore, unable to export."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "'apksigner' returned with error #%d"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Verifying %s..."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "'apksigner' verification of %s failed."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Exporting for Android"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Invalid filename! Android App Bundle requires the *.aab extension."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "APK Expansion not compatible with Android App Bundle."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Invalid filename! Android APK requires the *.apk extension."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Unsupported export format!\n"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Trying to build from a custom built template, but no version info for it "
"exists. Please reinstall from the 'Project' menu."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Android build version mismatch:\n"
" Template installed: %s\n"
@@ -12952,54 +13052,54 @@ msgid ""
"Please reinstall Android build template from 'Project' menu."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Unable to overwrite res://android/build/res/*.xml files with project name"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Could not export project files to gradle project\n"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Could not write expansion package file!"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Building Android Project (gradle)"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Building of Android project failed, check output for the error.\n"
"Alternatively visit docs.godotengine.org for Android build documentation."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Moving output"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Unable to copy and rename export file, check gradle project directory for "
"outputs."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Package not found: %s"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Creating APK..."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Could not find template APK to export:\n"
"%s"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Missing libraries in the export template for the selected architectures: "
"%s.\n"
@@ -13007,19 +13107,19 @@ msgid ""
"architectures in the export preset."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Adding files..."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Could not export project files"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Aligning APK..."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Could not unzip temporary unaligned APK."
msgstr ""
@@ -13469,6 +13569,14 @@ msgid ""
"It only provides navigation data."
msgstr ""
+#: scene/3d/occluder.cpp
+msgid "No shape is set."
+msgstr ""
+
+#: scene/3d/occluder.cpp
+msgid "Only uniform scales are supported."
+msgstr ""
+
#: scene/3d/particles.cpp
msgid ""
"GPU-based particles are not supported by the GLES2 video driver.\n"
@@ -13758,6 +13866,14 @@ msgstr ""
msgid "Enable grid minimap."
msgstr ""
+#: scene/gui/nine_patch_rect.cpp
+msgid ""
+"The Tile and Tile Fit options for Axis Stretch properties are only effective "
+"when using the GLES3 rendering backend.\n"
+"The GLES2 backend is currently in use, so these modes will act like Stretch "
+"instead."
+msgstr ""
+
#: scene/gui/popup.cpp
msgid ""
"Popups will hide by default unless you call popup() or any of the popup*() "
@@ -13798,6 +13914,10 @@ msgstr ""
msgid "Viewport size must be greater than 0 to render anything."
msgstr ""
+#: scene/resources/occluder_shape.cpp
+msgid "OccluderShapeSphere Set Spheres"
+msgstr ""
+
#: scene/resources/visual_shader_nodes.cpp
msgid ""
"The sampler port is connected but not used. Consider changing the source to "
diff --git a/editor/translations/sv.po b/editor/translations/sv.po
index 373e3aad36..3b0b8a97dd 100644
--- a/editor/translations/sv.po
+++ b/editor/translations/sv.po
@@ -1043,7 +1043,7 @@ msgstr ""
msgid "Dependencies"
msgstr "Beroenden"
-#: editor/dependency_editor.cpp
+#: editor/dependency_editor.cpp editor/editor_resource_picker.cpp
msgid "Resource"
msgstr "Resurs"
@@ -1702,13 +1702,13 @@ msgstr ""
"Målplattformen kräver 'ETC' texturkomprimering för GLES2.\n"
"Aktivera 'Import Etc' i Projektinställningarna."
-#: editor/editor_export.cpp platform/android/export/export.cpp
+#: editor/editor_export.cpp platform/android/export/export_plugin.cpp
#: platform/iphone/export/export.cpp platform/javascript/export/export.cpp
#: platform/osx/export/export.cpp platform/uwp/export/export.cpp
msgid "Custom debug template not found."
msgstr "Mallfil hittades inte."
-#: editor/editor_export.cpp platform/android/export/export.cpp
+#: editor/editor_export.cpp platform/android/export/export_plugin.cpp
#: platform/iphone/export/export.cpp platform/javascript/export/export.cpp
#: platform/osx/export/export.cpp platform/uwp/export/export.cpp
msgid "Custom release template not found."
@@ -2102,7 +2102,7 @@ msgstr ""
msgid "(Re)Importing Assets"
msgstr "(Om)Importerar Tillgångar"
-#: editor/editor_help.cpp editor/plugins/spatial_editor_plugin.cpp
+#: editor/editor_help.cpp
msgid "Top"
msgstr "Topp"
@@ -2636,6 +2636,32 @@ msgid "Current scene not saved. Open anyway?"
msgstr "Nuvarande scen inte sparad. Öppna ändå?"
#: editor/editor_node.cpp
+msgid "Can't undo while mouse buttons are pressed."
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "Nothing to undo."
+msgstr ""
+
+#: editor/editor_node.cpp
+#, fuzzy
+msgid "Undo: %s"
+msgstr "Ã…ngra"
+
+#: editor/editor_node.cpp
+msgid "Can't redo while mouse buttons are pressed."
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "Nothing to redo."
+msgstr ""
+
+#: editor/editor_node.cpp
+#, fuzzy
+msgid "Redo: %s"
+msgstr "Återställ"
+
+#: editor/editor_node.cpp
msgid "Can't reload a scene that was never saved."
msgstr "Kan inte ladda om en scen som aldrig har sparats."
@@ -3310,6 +3336,11 @@ msgid "Merge With Existing"
msgstr "Sammanfoga Med Existerande"
#: editor/editor_node.cpp
+#, fuzzy
+msgid "Apply MeshInstance Transforms"
+msgstr "Anim Ändra Transformation"
+
+#: editor/editor_node.cpp
msgid "Open & Run a Script"
msgstr "Öppna & Kör ett Skript"
@@ -3563,6 +3594,10 @@ msgid ""
"property (%s)."
msgstr ""
+#: editor/editor_resource_picker.cpp
+msgid "Quick Load"
+msgstr ""
+
#: editor/editor_resource_picker.cpp editor/property_editor.cpp
msgid "Make Unique"
msgstr "Gör Unik"
@@ -5728,6 +5763,18 @@ msgid "Move CanvasItem \"%s\" to (%d, %d)"
msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Locked"
+msgstr "Välj"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Grouped"
+msgstr "Grupper"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
msgid ""
"Children of containers have their anchors and margins values overridden by "
"their parent."
@@ -6684,7 +6731,13 @@ msgid "Remove Selected Item"
msgstr ""
#: editor/plugins/mesh_library_editor_plugin.cpp
-msgid "Import from Scene"
+#, fuzzy
+msgid "Import from Scene (Ignore Transforms)"
+msgstr "Importera från Scen"
+
+#: editor/plugins/mesh_library_editor_plugin.cpp
+#, fuzzy
+msgid "Import from Scene (Apply Transforms)"
msgstr "Importera från Scen"
#: editor/plugins/mesh_library_editor_plugin.cpp
@@ -7285,6 +7338,16 @@ msgstr "Infoga Punkt"
msgid "Flip Portal"
msgstr ""
+#: editor/plugins/room_manager_editor_plugin.cpp
+#, fuzzy
+msgid "Occluder Set Transform"
+msgstr "Transformera"
+
+#: editor/plugins/room_manager_editor_plugin.cpp
+#, fuzzy
+msgid "Center Node"
+msgstr "Skapa Node"
+
#: editor/plugins/root_motion_editor_plugin.cpp
msgid "AnimationTree has no path set to an AnimationPlayer"
msgstr ""
@@ -7809,12 +7872,14 @@ msgid "Skeleton2D"
msgstr "Singleton"
#: editor/plugins/skeleton_2d_editor_plugin.cpp
-msgid "Make Rest Pose (From Bones)"
-msgstr ""
+#, fuzzy
+msgid "Reset to Rest Pose"
+msgstr "Ladda Standard"
#: editor/plugins/skeleton_2d_editor_plugin.cpp
-msgid "Set Bones to Rest Pose"
-msgstr ""
+#, fuzzy
+msgid "Overwrite Rest Pose"
+msgstr "Skriv över"
#: editor/plugins/skeleton_editor_plugin.cpp
msgid "Create physical bones"
@@ -7843,6 +7908,65 @@ msgid "Perspective"
msgstr "Perspektiv"
#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Top Orthogonal"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Top Perspective"
+msgstr "Perspektiv"
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Bottom Orthogonal"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Bottom Perspective"
+msgstr "Perspektiv"
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Left Orthogonal"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Right Perspective"
+msgstr "Perspektiv"
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Right Orthogonal"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Front Orthogonal"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Front Perspective"
+msgstr "Perspektiv"
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Rear Orthogonal"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Rear Perspective"
+msgstr "Perspektiv"
+
+#. TRANSLATORS: This will be appended to the view name when Auto Orthogonal is enabled.
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid " [auto]"
+msgstr ""
+
+#. TRANSLATORS: This will be appended to the view name when Portal Occulusion is enabled.
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid " [portals active]"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
msgid "Transform Aborted."
msgstr ""
@@ -7959,42 +8083,22 @@ msgid "Bottom View."
msgstr "Vy Underifrån."
#: editor/plugins/spatial_editor_plugin.cpp
-msgid "Bottom"
-msgstr "Botten"
-
-#: editor/plugins/spatial_editor_plugin.cpp
msgid "Left View."
msgstr "Vy från vänster."
#: editor/plugins/spatial_editor_plugin.cpp
-msgid "Left"
-msgstr "Vänster"
-
-#: editor/plugins/spatial_editor_plugin.cpp
msgid "Right View."
msgstr "Vy från höger."
#: editor/plugins/spatial_editor_plugin.cpp
-msgid "Right"
-msgstr "Höger"
-
-#: editor/plugins/spatial_editor_plugin.cpp
msgid "Front View."
msgstr "Vy Framifrån."
#: editor/plugins/spatial_editor_plugin.cpp
-msgid "Front"
-msgstr "Framsida"
-
-#: editor/plugins/spatial_editor_plugin.cpp
msgid "Rear View."
msgstr "Vy Bakifrån."
#: editor/plugins/spatial_editor_plugin.cpp
-msgid "Rear"
-msgstr "Baksida"
-
-#: editor/plugins/spatial_editor_plugin.cpp
#, fuzzy
msgid "Align Transform with View"
msgstr "Vy från höger"
@@ -8264,6 +8368,11 @@ msgid "View Portal Culling"
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "View Occlusion Culling"
+msgstr "Redigera Polygon"
+
+#: editor/plugins/spatial_editor_plugin.cpp
#: modules/gridmap/grid_map_editor_plugin.cpp
msgid "Settings..."
msgstr "Inställningar..."
@@ -8329,8 +8438,9 @@ msgid "Post"
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
-msgid "Nameless gizmo"
-msgstr ""
+#, fuzzy
+msgid "Unnamed Gizmo"
+msgstr "Namnlöst Projekt"
#: editor/plugins/sprite_editor_plugin.cpp
#, fuzzy
@@ -12474,6 +12584,14 @@ msgstr ""
msgid "Set Portal Point Position"
msgstr ""
+#: editor/spatial_editor_gizmos.cpp
+msgid "Set Occluder Sphere Radius"
+msgstr ""
+
+#: editor/spatial_editor_gizmos.cpp
+msgid "Set Occluder Sphere Position"
+msgstr ""
+
#: modules/csg/csg_gizmos.cpp
msgid "Change Cylinder Radius"
msgstr ""
@@ -12767,6 +12885,11 @@ msgstr "Genererar Lightmaps"
msgid "Class name can't be a reserved keyword"
msgstr ""
+#: modules/mono/csharp_script.cpp
+#, fuzzy
+msgid "Build Solution"
+msgstr "Alla urval"
+
#: modules/mono/mono_gd/gd_mono_utils.cpp
msgid "End of inner exception stack trace"
msgstr ""
@@ -13249,165 +13372,154 @@ msgstr "Fäst Skript"
msgid "Get %s"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Package name is missing."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Package segments must be of non-zero length."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "The character '%s' is not allowed in Android application package names."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "A digit cannot be the first character in a package segment."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "The character '%s' cannot be the first character in a package segment."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "The package must have at least one '.' separator."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
#, fuzzy
msgid "Select device from the list"
msgstr "Välj enhet från listan"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Running on %s"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
#, fuzzy
msgid "Exporting APK..."
msgstr "Exportera"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
#, fuzzy
msgid "Uninstalling..."
msgstr "Avinstallera"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
#, fuzzy
msgid "Installing to device, please wait..."
msgstr "Laddar..."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
#, fuzzy
msgid "Could not install to device: %s"
msgstr "Kunde inte starta underprocess!"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Running on device..."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
#, fuzzy
msgid "Could not execute on device."
msgstr "Kunde inte skapa mapp."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Unable to find the 'apksigner' tool."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Android build template not installed in the project. Install it from the "
"Project menu."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Either Debug Keystore, Debug User AND Debug Password settings must be "
"configured OR none of them."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Debug keystore not configured in the Editor Settings nor in the preset."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Either Release Keystore, Release User AND Release Password settings must be "
"configured OR none of them."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Release keystore incorrectly configured in the export preset."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "A valid Android SDK path is required in Editor Settings."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Invalid Android SDK path in Editor Settings."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Missing 'platform-tools' directory!"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Unable to find Android SDK platform-tools' adb command."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Please check in the Android SDK directory specified in Editor Settings."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Missing 'build-tools' directory!"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Unable to find Android SDK build-tools' apksigner command."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Invalid public key for APK expansion."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Invalid package name:"
msgstr "Ogiltigt paket namn:"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Invalid \"GodotPaymentV3\" module included in the \"android/modules\" "
"project setting (changed in Godot 3.2.2).\n"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "\"Use Custom Build\" must be enabled to use the plugins."
msgstr ""
-#: platform/android/export/export.cpp
-msgid ""
-"\"Degrees Of Freedom\" is only valid when \"Xr Mode\" is \"Oculus Mobile VR"
-"\"."
-msgstr ""
-
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"\"Hand Tracking\" is only valid when \"Xr Mode\" is \"Oculus Mobile VR\"."
msgstr ""
-#: platform/android/export/export.cpp
-msgid ""
-"\"Focus Awareness\" is only valid when \"Xr Mode\" is \"Oculus Mobile VR\"."
-msgstr ""
-
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "\"Export AAB\" is only valid when \"Use Custom Build\" is enabled."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"'apksigner' could not be found.\n"
"Please check the command is available in the Android SDK build-tools "
@@ -13415,63 +13527,63 @@ msgid ""
"The resulting %s is unsigned."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Signing debug %s..."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
#, fuzzy
msgid "Signing release %s..."
msgstr ""
"Skannar Filer,\n"
"Snälla Vänta..."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
#, fuzzy
msgid "Could not find keystore, unable to export."
msgstr "Kunde inte öppna mall för export:"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "'apksigner' returned with error #%d"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
#, fuzzy
msgid "Verifying %s..."
msgstr "Lägger till %s..."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "'apksigner' verification of %s failed."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
#, fuzzy
msgid "Exporting for Android"
msgstr "Exportera"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Invalid filename! Android App Bundle requires the *.aab extension."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "APK Expansion not compatible with Android App Bundle."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Invalid filename! Android APK requires the *.apk extension."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Unsupported export format!\n"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Trying to build from a custom built template, but no version info for it "
"exists. Please reinstall from the 'Project' menu."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Android build version mismatch:\n"
" Template installed: %s\n"
@@ -13479,58 +13591,58 @@ msgid ""
"Please reinstall Android build template from 'Project' menu."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Unable to overwrite res://android/build/res/*.xml files with project name"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Could not export project files to gradle project\n"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
#, fuzzy
msgid "Could not write expansion package file!"
msgstr "Kunde inte skriva till filen:"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Building Android Project (gradle)"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Building of Android project failed, check output for the error.\n"
"Alternatively visit docs.godotengine.org for Android build documentation."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Moving output"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Unable to copy and rename export file, check gradle project directory for "
"outputs."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
#, fuzzy
msgid "Package not found: %s"
msgstr "Animeringsverktyg"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
#, fuzzy
msgid "Creating APK..."
msgstr "Skapar konturer..."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
#, fuzzy
msgid ""
"Could not find template APK to export:\n"
"%s"
msgstr "Kunde inte öppna mall för export:"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Missing libraries in the export template for the selected architectures: "
"%s.\n"
@@ -13538,21 +13650,21 @@ msgid ""
"architectures in the export preset."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
#, fuzzy
msgid "Adding files..."
msgstr "Lägger till %s..."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
#, fuzzy
msgid "Could not export project files"
msgstr "Kunde inte skriva till filen:"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Aligning APK..."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Could not unzip temporary unaligned APK."
msgstr ""
@@ -14035,6 +14147,14 @@ msgid ""
"It only provides navigation data."
msgstr ""
+#: scene/3d/occluder.cpp
+msgid "No shape is set."
+msgstr ""
+
+#: scene/3d/occluder.cpp
+msgid "Only uniform scales are supported."
+msgstr ""
+
#: scene/3d/particles.cpp
msgid ""
"GPU-based particles are not supported by the GLES2 video driver.\n"
@@ -14330,6 +14450,14 @@ msgstr "Måste använda en giltigt filändelse."
msgid "Enable grid minimap."
msgstr ""
+#: scene/gui/nine_patch_rect.cpp
+msgid ""
+"The Tile and Tile Fit options for Axis Stretch properties are only effective "
+"when using the GLES3 rendering backend.\n"
+"The GLES2 backend is currently in use, so these modes will act like Stretch "
+"instead."
+msgstr ""
+
#: scene/gui/popup.cpp
msgid ""
"Popups will hide by default unless you call popup() or any of the popup*() "
@@ -14370,6 +14498,10 @@ msgstr ""
msgid "Viewport size must be greater than 0 to render anything."
msgstr ""
+#: scene/resources/occluder_shape.cpp
+msgid "OccluderShapeSphere Set Spheres"
+msgstr ""
+
#: scene/resources/visual_shader_nodes.cpp
msgid ""
"The sampler port is connected but not used. Consider changing the source to "
@@ -14423,6 +14555,21 @@ msgstr ""
msgid "Constants cannot be modified."
msgstr ""
+#~ msgid "Bottom"
+#~ msgstr "Botten"
+
+#~ msgid "Left"
+#~ msgstr "Vänster"
+
+#~ msgid "Right"
+#~ msgstr "Höger"
+
+#~ msgid "Front"
+#~ msgstr "Framsida"
+
+#~ msgid "Rear"
+#~ msgstr "Baksida"
+
#~ msgid "Package Contents:"
#~ msgstr "Paketets Innehåll:"
diff --git a/editor/translations/ta.po b/editor/translations/ta.po
index 2ad954b971..f0a34987a2 100644
--- a/editor/translations/ta.po
+++ b/editor/translations/ta.po
@@ -1020,7 +1020,7 @@ msgstr ""
msgid "Dependencies"
msgstr ""
-#: editor/dependency_editor.cpp
+#: editor/dependency_editor.cpp editor/editor_resource_picker.cpp
msgid "Resource"
msgstr ""
@@ -1650,13 +1650,13 @@ msgid ""
"Enabled'."
msgstr ""
-#: editor/editor_export.cpp platform/android/export/export.cpp
+#: editor/editor_export.cpp platform/android/export/export_plugin.cpp
#: platform/iphone/export/export.cpp platform/javascript/export/export.cpp
#: platform/osx/export/export.cpp platform/uwp/export/export.cpp
msgid "Custom debug template not found."
msgstr ""
-#: editor/editor_export.cpp platform/android/export/export.cpp
+#: editor/editor_export.cpp platform/android/export/export_plugin.cpp
#: platform/iphone/export/export.cpp platform/javascript/export/export.cpp
#: platform/osx/export/export.cpp platform/uwp/export/export.cpp
msgid "Custom release template not found."
@@ -2029,7 +2029,7 @@ msgstr ""
msgid "(Re)Importing Assets"
msgstr ""
-#: editor/editor_help.cpp editor/plugins/spatial_editor_plugin.cpp
+#: editor/editor_help.cpp
msgid "Top"
msgstr ""
@@ -2508,6 +2508,30 @@ msgid "Current scene not saved. Open anyway?"
msgstr ""
#: editor/editor_node.cpp
+msgid "Can't undo while mouse buttons are pressed."
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "Nothing to undo."
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "Undo: %s"
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "Can't redo while mouse buttons are pressed."
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "Nothing to redo."
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "Redo: %s"
+msgstr ""
+
+#: editor/editor_node.cpp
msgid "Can't reload a scene that was never saved."
msgstr ""
@@ -3133,6 +3157,11 @@ msgid "Merge With Existing"
msgstr ""
#: editor/editor_node.cpp
+#, fuzzy
+msgid "Apply MeshInstance Transforms"
+msgstr "உரà¯à®®à®¾à®±à¯à®±à®®à¯ அசைவூடà¯à®Ÿà¯"
+
+#: editor/editor_node.cpp
msgid "Open & Run a Script"
msgstr ""
@@ -3375,6 +3404,10 @@ msgid ""
"property (%s)."
msgstr ""
+#: editor/editor_resource_picker.cpp
+msgid "Quick Load"
+msgstr ""
+
#: editor/editor_resource_picker.cpp editor/property_editor.cpp
msgid "Make Unique"
msgstr ""
@@ -5433,6 +5466,17 @@ msgid "Move CanvasItem \"%s\" to (%d, %d)"
msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Locked"
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Grouped"
+msgstr "அனைதà¯à®¤à¯ தேரà¯à®µà¯à®•ளà¯"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
msgid ""
"Children of containers have their anchors and margins values overridden by "
"their parent."
@@ -6338,7 +6382,11 @@ msgid "Remove Selected Item"
msgstr ""
#: editor/plugins/mesh_library_editor_plugin.cpp
-msgid "Import from Scene"
+msgid "Import from Scene (Ignore Transforms)"
+msgstr ""
+
+#: editor/plugins/mesh_library_editor_plugin.cpp
+msgid "Import from Scene (Apply Transforms)"
msgstr ""
#: editor/plugins/mesh_library_editor_plugin.cpp
@@ -6924,6 +6972,16 @@ msgstr ""
msgid "Flip Portal"
msgstr ""
+#: editor/plugins/room_manager_editor_plugin.cpp
+#, fuzzy
+msgid "Occluder Set Transform"
+msgstr "உரà¯à®®à®¾à®±à¯à®±à®®à¯ அசைவூடà¯à®Ÿà¯"
+
+#: editor/plugins/room_manager_editor_plugin.cpp
+#, fuzzy
+msgid "Center Node"
+msgstr "அனைதà¯à®¤à¯ தேரà¯à®µà¯à®•ளà¯"
+
#: editor/plugins/root_motion_editor_plugin.cpp
msgid "AnimationTree has no path set to an AnimationPlayer"
msgstr ""
@@ -7419,11 +7477,11 @@ msgid "Skeleton2D"
msgstr ""
#: editor/plugins/skeleton_2d_editor_plugin.cpp
-msgid "Make Rest Pose (From Bones)"
+msgid "Reset to Rest Pose"
msgstr ""
#: editor/plugins/skeleton_2d_editor_plugin.cpp
-msgid "Set Bones to Rest Pose"
+msgid "Overwrite Rest Pose"
msgstr ""
#: editor/plugins/skeleton_editor_plugin.cpp
@@ -7451,6 +7509,60 @@ msgid "Perspective"
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Top Orthogonal"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Top Perspective"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Bottom Orthogonal"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Bottom Perspective"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Left Orthogonal"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Right Perspective"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Right Orthogonal"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Front Orthogonal"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Front Perspective"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Rear Orthogonal"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Rear Perspective"
+msgstr ""
+
+#. TRANSLATORS: This will be appended to the view name when Auto Orthogonal is enabled.
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid " [auto]"
+msgstr ""
+
+#. TRANSLATORS: This will be appended to the view name when Portal Occulusion is enabled.
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid " [portals active]"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
msgid "Transform Aborted."
msgstr ""
@@ -7558,42 +7670,22 @@ msgid "Bottom View."
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
-msgid "Bottom"
-msgstr ""
-
-#: editor/plugins/spatial_editor_plugin.cpp
msgid "Left View."
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
-msgid "Left"
-msgstr ""
-
-#: editor/plugins/spatial_editor_plugin.cpp
msgid "Right View."
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
-msgid "Right"
-msgstr ""
-
-#: editor/plugins/spatial_editor_plugin.cpp
msgid "Front View."
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
-msgid "Front"
-msgstr ""
-
-#: editor/plugins/spatial_editor_plugin.cpp
msgid "Rear View."
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
-msgid "Rear"
-msgstr ""
-
-#: editor/plugins/spatial_editor_plugin.cpp
msgid "Align Transform with View"
msgstr ""
@@ -7855,6 +7947,10 @@ msgid "View Portal Culling"
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
+msgid "View Occlusion Culling"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
#: modules/gridmap/grid_map_editor_plugin.cpp
msgid "Settings..."
msgstr ""
@@ -7920,7 +8016,7 @@ msgid "Post"
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
-msgid "Nameless gizmo"
+msgid "Unnamed Gizmo"
msgstr ""
#: editor/plugins/sprite_editor_plugin.cpp
@@ -11867,6 +11963,14 @@ msgstr ""
msgid "Set Portal Point Position"
msgstr ""
+#: editor/spatial_editor_gizmos.cpp
+msgid "Set Occluder Sphere Radius"
+msgstr ""
+
+#: editor/spatial_editor_gizmos.cpp
+msgid "Set Occluder Sphere Position"
+msgstr ""
+
#: modules/csg/csg_gizmos.cpp
msgid "Change Cylinder Radius"
msgstr ""
@@ -12152,6 +12256,11 @@ msgstr ""
msgid "Class name can't be a reserved keyword"
msgstr ""
+#: modules/mono/csharp_script.cpp
+#, fuzzy
+msgid "Build Solution"
+msgstr "அனைதà¯à®¤à¯ தேரà¯à®µà¯à®•ளà¯"
+
#: modules/mono/mono_gd/gd_mono_utils.cpp
msgid "End of inner exception stack trace"
msgstr ""
@@ -12627,159 +12736,148 @@ msgstr ""
msgid "Get %s"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Package name is missing."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Package segments must be of non-zero length."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "The character '%s' is not allowed in Android application package names."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "A digit cannot be the first character in a package segment."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "The character '%s' cannot be the first character in a package segment."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "The package must have at least one '.' separator."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Select device from the list"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Running on %s"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Exporting APK..."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Uninstalling..."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Installing to device, please wait..."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Could not install to device: %s"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Running on device..."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Could not execute on device."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Unable to find the 'apksigner' tool."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Android build template not installed in the project. Install it from the "
"Project menu."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Either Debug Keystore, Debug User AND Debug Password settings must be "
"configured OR none of them."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Debug keystore not configured in the Editor Settings nor in the preset."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Either Release Keystore, Release User AND Release Password settings must be "
"configured OR none of them."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Release keystore incorrectly configured in the export preset."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "A valid Android SDK path is required in Editor Settings."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Invalid Android SDK path in Editor Settings."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Missing 'platform-tools' directory!"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Unable to find Android SDK platform-tools' adb command."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Please check in the Android SDK directory specified in Editor Settings."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Missing 'build-tools' directory!"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Unable to find Android SDK build-tools' apksigner command."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Invalid public key for APK expansion."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Invalid package name:"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Invalid \"GodotPaymentV3\" module included in the \"android/modules\" "
"project setting (changed in Godot 3.2.2).\n"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "\"Use Custom Build\" must be enabled to use the plugins."
msgstr ""
-#: platform/android/export/export.cpp
-msgid ""
-"\"Degrees Of Freedom\" is only valid when \"Xr Mode\" is \"Oculus Mobile VR"
-"\"."
-msgstr ""
-
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"\"Hand Tracking\" is only valid when \"Xr Mode\" is \"Oculus Mobile VR\"."
msgstr ""
-#: platform/android/export/export.cpp
-msgid ""
-"\"Focus Awareness\" is only valid when \"Xr Mode\" is \"Oculus Mobile VR\"."
-msgstr ""
-
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "\"Export AAB\" is only valid when \"Use Custom Build\" is enabled."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"'apksigner' could not be found.\n"
"Please check the command is available in the Android SDK build-tools "
@@ -12787,57 +12885,57 @@ msgid ""
"The resulting %s is unsigned."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Signing debug %s..."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Signing release %s..."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Could not find keystore, unable to export."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "'apksigner' returned with error #%d"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Verifying %s..."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "'apksigner' verification of %s failed."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Exporting for Android"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Invalid filename! Android App Bundle requires the *.aab extension."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "APK Expansion not compatible with Android App Bundle."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Invalid filename! Android APK requires the *.apk extension."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Unsupported export format!\n"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Trying to build from a custom built template, but no version info for it "
"exists. Please reinstall from the 'Project' menu."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Android build version mismatch:\n"
" Template installed: %s\n"
@@ -12845,54 +12943,54 @@ msgid ""
"Please reinstall Android build template from 'Project' menu."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Unable to overwrite res://android/build/res/*.xml files with project name"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Could not export project files to gradle project\n"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Could not write expansion package file!"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Building Android Project (gradle)"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Building of Android project failed, check output for the error.\n"
"Alternatively visit docs.godotengine.org for Android build documentation."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Moving output"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Unable to copy and rename export file, check gradle project directory for "
"outputs."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Package not found: %s"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Creating APK..."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Could not find template APK to export:\n"
"%s"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Missing libraries in the export template for the selected architectures: "
"%s.\n"
@@ -12900,19 +12998,19 @@ msgid ""
"architectures in the export preset."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Adding files..."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Could not export project files"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Aligning APK..."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Could not unzip temporary unaligned APK."
msgstr ""
@@ -13362,6 +13460,14 @@ msgid ""
"It only provides navigation data."
msgstr ""
+#: scene/3d/occluder.cpp
+msgid "No shape is set."
+msgstr ""
+
+#: scene/3d/occluder.cpp
+msgid "Only uniform scales are supported."
+msgstr ""
+
#: scene/3d/particles.cpp
msgid ""
"GPU-based particles are not supported by the GLES2 video driver.\n"
@@ -13651,6 +13757,14 @@ msgstr ""
msgid "Enable grid minimap."
msgstr ""
+#: scene/gui/nine_patch_rect.cpp
+msgid ""
+"The Tile and Tile Fit options for Axis Stretch properties are only effective "
+"when using the GLES3 rendering backend.\n"
+"The GLES2 backend is currently in use, so these modes will act like Stretch "
+"instead."
+msgstr ""
+
#: scene/gui/popup.cpp
msgid ""
"Popups will hide by default unless you call popup() or any of the popup*() "
@@ -13691,6 +13805,10 @@ msgstr ""
msgid "Viewport size must be greater than 0 to render anything."
msgstr ""
+#: scene/resources/occluder_shape.cpp
+msgid "OccluderShapeSphere Set Spheres"
+msgstr ""
+
#: scene/resources/visual_shader_nodes.cpp
msgid ""
"The sampler port is connected but not used. Consider changing the source to "
diff --git a/editor/translations/te.po b/editor/translations/te.po
index 74998009cd..a77af85920 100644
--- a/editor/translations/te.po
+++ b/editor/translations/te.po
@@ -994,7 +994,7 @@ msgstr ""
msgid "Dependencies"
msgstr ""
-#: editor/dependency_editor.cpp
+#: editor/dependency_editor.cpp editor/editor_resource_picker.cpp
msgid "Resource"
msgstr ""
@@ -1623,13 +1623,13 @@ msgid ""
"Enabled'."
msgstr ""
-#: editor/editor_export.cpp platform/android/export/export.cpp
+#: editor/editor_export.cpp platform/android/export/export_plugin.cpp
#: platform/iphone/export/export.cpp platform/javascript/export/export.cpp
#: platform/osx/export/export.cpp platform/uwp/export/export.cpp
msgid "Custom debug template not found."
msgstr ""
-#: editor/editor_export.cpp platform/android/export/export.cpp
+#: editor/editor_export.cpp platform/android/export/export_plugin.cpp
#: platform/iphone/export/export.cpp platform/javascript/export/export.cpp
#: platform/osx/export/export.cpp platform/uwp/export/export.cpp
msgid "Custom release template not found."
@@ -1999,7 +1999,7 @@ msgstr ""
msgid "(Re)Importing Assets"
msgstr ""
-#: editor/editor_help.cpp editor/plugins/spatial_editor_plugin.cpp
+#: editor/editor_help.cpp
msgid "Top"
msgstr ""
@@ -2477,6 +2477,30 @@ msgid "Current scene not saved. Open anyway?"
msgstr ""
#: editor/editor_node.cpp
+msgid "Can't undo while mouse buttons are pressed."
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "Nothing to undo."
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "Undo: %s"
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "Can't redo while mouse buttons are pressed."
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "Nothing to redo."
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "Redo: %s"
+msgstr ""
+
+#: editor/editor_node.cpp
msgid "Can't reload a scene that was never saved."
msgstr ""
@@ -3101,6 +3125,10 @@ msgid "Merge With Existing"
msgstr ""
#: editor/editor_node.cpp
+msgid "Apply MeshInstance Transforms"
+msgstr ""
+
+#: editor/editor_node.cpp
msgid "Open & Run a Script"
msgstr ""
@@ -3341,6 +3369,10 @@ msgid ""
"property (%s)."
msgstr ""
+#: editor/editor_resource_picker.cpp
+msgid "Quick Load"
+msgstr ""
+
#: editor/editor_resource_picker.cpp editor/property_editor.cpp
msgid "Make Unique"
msgstr ""
@@ -5381,6 +5413,16 @@ msgid "Move CanvasItem \"%s\" to (%d, %d)"
msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Locked"
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Grouped"
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
msgid ""
"Children of containers have their anchors and margins values overridden by "
"their parent."
@@ -6279,7 +6321,11 @@ msgid "Remove Selected Item"
msgstr ""
#: editor/plugins/mesh_library_editor_plugin.cpp
-msgid "Import from Scene"
+msgid "Import from Scene (Ignore Transforms)"
+msgstr ""
+
+#: editor/plugins/mesh_library_editor_plugin.cpp
+msgid "Import from Scene (Apply Transforms)"
msgstr ""
#: editor/plugins/mesh_library_editor_plugin.cpp
@@ -6863,6 +6909,14 @@ msgstr ""
msgid "Flip Portal"
msgstr ""
+#: editor/plugins/room_manager_editor_plugin.cpp
+msgid "Occluder Set Transform"
+msgstr ""
+
+#: editor/plugins/room_manager_editor_plugin.cpp
+msgid "Center Node"
+msgstr ""
+
#: editor/plugins/root_motion_editor_plugin.cpp
msgid "AnimationTree has no path set to an AnimationPlayer"
msgstr ""
@@ -7357,11 +7411,11 @@ msgid "Skeleton2D"
msgstr ""
#: editor/plugins/skeleton_2d_editor_plugin.cpp
-msgid "Make Rest Pose (From Bones)"
+msgid "Reset to Rest Pose"
msgstr ""
#: editor/plugins/skeleton_2d_editor_plugin.cpp
-msgid "Set Bones to Rest Pose"
+msgid "Overwrite Rest Pose"
msgstr ""
#: editor/plugins/skeleton_editor_plugin.cpp
@@ -7389,6 +7443,60 @@ msgid "Perspective"
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Top Orthogonal"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Top Perspective"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Bottom Orthogonal"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Bottom Perspective"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Left Orthogonal"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Right Perspective"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Right Orthogonal"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Front Orthogonal"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Front Perspective"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Rear Orthogonal"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Rear Perspective"
+msgstr ""
+
+#. TRANSLATORS: This will be appended to the view name when Auto Orthogonal is enabled.
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid " [auto]"
+msgstr ""
+
+#. TRANSLATORS: This will be appended to the view name when Portal Occulusion is enabled.
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid " [portals active]"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
msgid "Transform Aborted."
msgstr ""
@@ -7496,42 +7604,22 @@ msgid "Bottom View."
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
-msgid "Bottom"
-msgstr ""
-
-#: editor/plugins/spatial_editor_plugin.cpp
msgid "Left View."
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
-msgid "Left"
-msgstr ""
-
-#: editor/plugins/spatial_editor_plugin.cpp
msgid "Right View."
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
-msgid "Right"
-msgstr ""
-
-#: editor/plugins/spatial_editor_plugin.cpp
msgid "Front View."
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
-msgid "Front"
-msgstr ""
-
-#: editor/plugins/spatial_editor_plugin.cpp
msgid "Rear View."
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
-msgid "Rear"
-msgstr ""
-
-#: editor/plugins/spatial_editor_plugin.cpp
msgid "Align Transform with View"
msgstr ""
@@ -7793,6 +7881,10 @@ msgid "View Portal Culling"
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
+msgid "View Occlusion Culling"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
#: modules/gridmap/grid_map_editor_plugin.cpp
msgid "Settings..."
msgstr ""
@@ -7858,7 +7950,7 @@ msgid "Post"
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
-msgid "Nameless gizmo"
+msgid "Unnamed Gizmo"
msgstr ""
#: editor/plugins/sprite_editor_plugin.cpp
@@ -11759,6 +11851,14 @@ msgstr ""
msgid "Set Portal Point Position"
msgstr ""
+#: editor/spatial_editor_gizmos.cpp
+msgid "Set Occluder Sphere Radius"
+msgstr ""
+
+#: editor/spatial_editor_gizmos.cpp
+msgid "Set Occluder Sphere Position"
+msgstr ""
+
#: modules/csg/csg_gizmos.cpp
msgid "Change Cylinder Radius"
msgstr ""
@@ -12039,6 +12139,10 @@ msgstr ""
msgid "Class name can't be a reserved keyword"
msgstr ""
+#: modules/mono/csharp_script.cpp
+msgid "Build Solution"
+msgstr ""
+
#: modules/mono/mono_gd/gd_mono_utils.cpp
msgid "End of inner exception stack trace"
msgstr ""
@@ -12505,159 +12609,148 @@ msgstr ""
msgid "Get %s"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Package name is missing."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Package segments must be of non-zero length."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "The character '%s' is not allowed in Android application package names."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "A digit cannot be the first character in a package segment."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "The character '%s' cannot be the first character in a package segment."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "The package must have at least one '.' separator."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Select device from the list"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Running on %s"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Exporting APK..."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Uninstalling..."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Installing to device, please wait..."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Could not install to device: %s"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Running on device..."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Could not execute on device."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Unable to find the 'apksigner' tool."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Android build template not installed in the project. Install it from the "
"Project menu."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Either Debug Keystore, Debug User AND Debug Password settings must be "
"configured OR none of them."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Debug keystore not configured in the Editor Settings nor in the preset."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Either Release Keystore, Release User AND Release Password settings must be "
"configured OR none of them."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Release keystore incorrectly configured in the export preset."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "A valid Android SDK path is required in Editor Settings."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Invalid Android SDK path in Editor Settings."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Missing 'platform-tools' directory!"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Unable to find Android SDK platform-tools' adb command."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Please check in the Android SDK directory specified in Editor Settings."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Missing 'build-tools' directory!"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Unable to find Android SDK build-tools' apksigner command."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Invalid public key for APK expansion."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Invalid package name:"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Invalid \"GodotPaymentV3\" module included in the \"android/modules\" "
"project setting (changed in Godot 3.2.2).\n"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "\"Use Custom Build\" must be enabled to use the plugins."
msgstr ""
-#: platform/android/export/export.cpp
-msgid ""
-"\"Degrees Of Freedom\" is only valid when \"Xr Mode\" is \"Oculus Mobile VR"
-"\"."
-msgstr ""
-
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"\"Hand Tracking\" is only valid when \"Xr Mode\" is \"Oculus Mobile VR\"."
msgstr ""
-#: platform/android/export/export.cpp
-msgid ""
-"\"Focus Awareness\" is only valid when \"Xr Mode\" is \"Oculus Mobile VR\"."
-msgstr ""
-
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "\"Export AAB\" is only valid when \"Use Custom Build\" is enabled."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"'apksigner' could not be found.\n"
"Please check the command is available in the Android SDK build-tools "
@@ -12665,57 +12758,57 @@ msgid ""
"The resulting %s is unsigned."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Signing debug %s..."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Signing release %s..."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Could not find keystore, unable to export."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "'apksigner' returned with error #%d"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Verifying %s..."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "'apksigner' verification of %s failed."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Exporting for Android"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Invalid filename! Android App Bundle requires the *.aab extension."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "APK Expansion not compatible with Android App Bundle."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Invalid filename! Android APK requires the *.apk extension."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Unsupported export format!\n"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Trying to build from a custom built template, but no version info for it "
"exists. Please reinstall from the 'Project' menu."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Android build version mismatch:\n"
" Template installed: %s\n"
@@ -12723,54 +12816,54 @@ msgid ""
"Please reinstall Android build template from 'Project' menu."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Unable to overwrite res://android/build/res/*.xml files with project name"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Could not export project files to gradle project\n"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Could not write expansion package file!"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Building Android Project (gradle)"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Building of Android project failed, check output for the error.\n"
"Alternatively visit docs.godotengine.org for Android build documentation."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Moving output"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Unable to copy and rename export file, check gradle project directory for "
"outputs."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Package not found: %s"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Creating APK..."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Could not find template APK to export:\n"
"%s"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Missing libraries in the export template for the selected architectures: "
"%s.\n"
@@ -12778,19 +12871,19 @@ msgid ""
"architectures in the export preset."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Adding files..."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Could not export project files"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Aligning APK..."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Could not unzip temporary unaligned APK."
msgstr ""
@@ -13240,6 +13333,14 @@ msgid ""
"It only provides navigation data."
msgstr ""
+#: scene/3d/occluder.cpp
+msgid "No shape is set."
+msgstr ""
+
+#: scene/3d/occluder.cpp
+msgid "Only uniform scales are supported."
+msgstr ""
+
#: scene/3d/particles.cpp
msgid ""
"GPU-based particles are not supported by the GLES2 video driver.\n"
@@ -13529,6 +13630,14 @@ msgstr ""
msgid "Enable grid minimap."
msgstr ""
+#: scene/gui/nine_patch_rect.cpp
+msgid ""
+"The Tile and Tile Fit options for Axis Stretch properties are only effective "
+"when using the GLES3 rendering backend.\n"
+"The GLES2 backend is currently in use, so these modes will act like Stretch "
+"instead."
+msgstr ""
+
#: scene/gui/popup.cpp
msgid ""
"Popups will hide by default unless you call popup() or any of the popup*() "
@@ -13569,6 +13678,10 @@ msgstr ""
msgid "Viewport size must be greater than 0 to render anything."
msgstr ""
+#: scene/resources/occluder_shape.cpp
+msgid "OccluderShapeSphere Set Spheres"
+msgstr ""
+
#: scene/resources/visual_shader_nodes.cpp
msgid ""
"The sampler port is connected but not used. Consider changing the source to "
diff --git a/editor/translations/th.po b/editor/translations/th.po
index 231051313a..3042188001 100644
--- a/editor/translations/th.po
+++ b/editor/translations/th.po
@@ -1035,7 +1035,7 @@ msgstr ""
msgid "Dependencies"
msgstr "à¸à¸²à¸£à¸­à¹‰à¸²à¸‡à¸­à¸´à¸‡"
-#: editor/dependency_editor.cpp
+#: editor/dependency_editor.cpp editor/editor_resource_picker.cpp
msgid "Resource"
msgstr "ทรัพยาà¸à¸£"
@@ -1695,13 +1695,13 @@ msgstr ""
"à¹à¸žà¸¥à¸•ฟอร์มเป้าหมายต้องà¸à¸²à¸£à¸à¸²à¸£à¸šà¸µà¸šà¸­à¸±à¸”เทà¸à¹€à¸ˆà¸­à¸£à¹Œ 'PVRTC' สำหรับà¸à¸²à¸£à¸à¸¥à¸±à¸šà¸¡à¸²à¹ƒà¸Šà¹‰ GLES2\n"
"เปิด 'Import Pvrtc' ในตั้งค่าโปรเจ็คหรือปิด 'Driver Fallback Enabled'"
-#: editor/editor_export.cpp platform/android/export/export.cpp
+#: editor/editor_export.cpp platform/android/export/export_plugin.cpp
#: platform/iphone/export/export.cpp platform/javascript/export/export.cpp
#: platform/osx/export/export.cpp platform/uwp/export/export.cpp
msgid "Custom debug template not found."
msgstr "ไม่พบเทมเพลตà¸à¸²à¸£à¸”ีบัà¸à¹à¸šà¸šà¸à¸³à¸«à¸™à¸”เอง"
-#: editor/editor_export.cpp platform/android/export/export.cpp
+#: editor/editor_export.cpp platform/android/export/export_plugin.cpp
#: platform/iphone/export/export.cpp platform/javascript/export/export.cpp
#: platform/osx/export/export.cpp platform/uwp/export/export.cpp
msgid "Custom release template not found."
@@ -2081,7 +2081,7 @@ msgstr "มีà¸à¸²à¸£à¸™à¸³à¹€à¸‚้าไฟล์ %s หลายอัน à
msgid "(Re)Importing Assets"
msgstr "à¸à¸³à¸¥à¸±à¸‡à¸™à¸³à¹€à¸‚้าทรัพยาà¸à¸£(อีà¸à¸„รั้ง)"
-#: editor/editor_help.cpp editor/plugins/spatial_editor_plugin.cpp
+#: editor/editor_help.cpp
msgid "Top"
msgstr "บนสุด"
@@ -2576,6 +2576,32 @@ msgid "Current scene not saved. Open anyway?"
msgstr "ฉาà¸à¸›à¸±à¸ˆà¸ˆà¸¸à¸šà¸±à¸™à¸¢à¸±à¸‡à¹„ม่ได้บันทึภจะเปิดไฟล์หรือไม่?"
#: editor/editor_node.cpp
+msgid "Can't undo while mouse buttons are pressed."
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "Nothing to undo."
+msgstr ""
+
+#: editor/editor_node.cpp
+#, fuzzy
+msgid "Undo: %s"
+msgstr "เลิà¸à¸—ำ"
+
+#: editor/editor_node.cpp
+msgid "Can't redo while mouse buttons are pressed."
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "Nothing to redo."
+msgstr ""
+
+#: editor/editor_node.cpp
+#, fuzzy
+msgid "Redo: %s"
+msgstr "ทำซ้ำ"
+
+#: editor/editor_node.cpp
msgid "Can't reload a scene that was never saved."
msgstr "ฉาà¸à¸¢à¸±à¸‡à¹„ม่ได้บันทึภไม่สามารถโหลดใหม่ได้"
@@ -3245,6 +3271,11 @@ msgid "Merge With Existing"
msgstr "รวมà¸à¸±à¸šà¸—ี่มีอยู่เดิม"
#: editor/editor_node.cpp
+#, fuzzy
+msgid "Apply MeshInstance Transforms"
+msgstr "เคลื่อนย้ายà¹à¸­à¸™à¸´à¹€à¸¡à¸Šà¸±à¸™"
+
+#: editor/editor_node.cpp
msgid "Open & Run a Script"
msgstr "เปิดà¹à¸¥à¸°à¸£à¸±à¸™à¸ªà¸„ริปต์"
@@ -3497,6 +3528,10 @@ msgid ""
"property (%s)."
msgstr "ทรัพยาà¸à¸£à¸—ี่เลือภ(%s) มีประเทไม่ตรงà¸à¸±à¸šà¸„่าที่ต้องà¸à¸²à¸£ (%s)"
+#: editor/editor_resource_picker.cpp
+msgid "Quick Load"
+msgstr ""
+
#: editor/editor_resource_picker.cpp editor/property_editor.cpp
msgid "Make Unique"
msgstr "ไม่ใช้ร่วมà¸à¸±à¸šà¸§à¸±à¸•ถุอื่น"
@@ -5600,6 +5635,18 @@ msgid "Move CanvasItem \"%s\" to (%d, %d)"
msgstr "เลื่อน CanvasItem \"%s\" ไปยัง (%d, %d)"
#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Locked"
+msgstr "ล็อà¸à¸—ี่เลือà¸"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Grouped"
+msgstr "à¸à¸¥à¸¸à¹ˆà¸¡"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
msgid ""
"Children of containers have their anchors and margins values overridden by "
"their parent."
@@ -6538,7 +6585,13 @@ msgid "Remove Selected Item"
msgstr "ลบไอเทมที่เลือà¸"
#: editor/plugins/mesh_library_editor_plugin.cpp
-msgid "Import from Scene"
+#, fuzzy
+msgid "Import from Scene (Ignore Transforms)"
+msgstr "นำเข้าจาà¸à¸‰à¸²à¸"
+
+#: editor/plugins/mesh_library_editor_plugin.cpp
+#, fuzzy
+msgid "Import from Scene (Apply Transforms)"
msgstr "นำเข้าจาà¸à¸‰à¸²à¸"
#: editor/plugins/mesh_library_editor_plugin.cpp
@@ -7130,6 +7183,16 @@ msgstr "จำนวนจุดที่สร้างขึ้น:"
msgid "Flip Portal"
msgstr "พลิà¸à¹à¸™à¸§à¸™à¸­à¸™"
+#: editor/plugins/room_manager_editor_plugin.cpp
+#, fuzzy
+msgid "Occluder Set Transform"
+msgstr "เคลียร์à¸à¸²à¸£à¹à¸›à¸¥à¸‡"
+
+#: editor/plugins/room_manager_editor_plugin.cpp
+#, fuzzy
+msgid "Center Node"
+msgstr "สร้างโหนด"
+
#: editor/plugins/root_motion_editor_plugin.cpp
msgid "AnimationTree has no path set to an AnimationPlayer"
msgstr "AnimationTree ไม่มีที่อยู่ไปยัง AnimationPlayer"
@@ -7629,12 +7692,14 @@ msgid "Skeleton2D"
msgstr "Skeleton2D"
#: editor/plugins/skeleton_2d_editor_plugin.cpp
-msgid "Make Rest Pose (From Bones)"
-msgstr "สร้างท่าโพส (จาà¸à¹‚ครง)"
+#, fuzzy
+msgid "Reset to Rest Pose"
+msgstr "ตั้งโครงไปยังท่าโพส"
#: editor/plugins/skeleton_2d_editor_plugin.cpp
-msgid "Set Bones to Rest Pose"
-msgstr "ตั้งโครงไปยังท่าโพส"
+#, fuzzy
+msgid "Overwrite Rest Pose"
+msgstr "เขียนทับ"
#: editor/plugins/skeleton_editor_plugin.cpp
msgid "Create physical bones"
@@ -7661,6 +7726,71 @@ msgid "Perspective"
msgstr "เพอร์สเปà¸à¸—ีฟ"
#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Top Orthogonal"
+msgstr "ขนาน"
+
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Top Perspective"
+msgstr "เพอร์สเปà¸à¸—ีฟ"
+
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Bottom Orthogonal"
+msgstr "ขนาน"
+
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Bottom Perspective"
+msgstr "เพอร์สเปà¸à¸—ีฟ"
+
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Left Orthogonal"
+msgstr "ขนาน"
+
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Right Perspective"
+msgstr "เพอร์สเปà¸à¸—ีฟ"
+
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Right Orthogonal"
+msgstr "ขนาน"
+
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Front Orthogonal"
+msgstr "ขนาน"
+
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Front Perspective"
+msgstr "เพอร์สเปà¸à¸—ีฟ"
+
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Rear Orthogonal"
+msgstr "ขนาน"
+
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Rear Perspective"
+msgstr "เพอร์สเปà¸à¸—ีฟ"
+
+#. TRANSLATORS: This will be appended to the view name when Auto Orthogonal is enabled.
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid " [auto]"
+msgstr ""
+
+#. TRANSLATORS: This will be appended to the view name when Portal Occulusion is enabled.
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid " [portals active]"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
msgid "Transform Aborted."
msgstr "ยà¸à¹€à¸¥à¸´à¸à¸à¸²à¸£à¹€à¸„ลื่อนย้าย"
@@ -7779,42 +7909,22 @@ msgid "Bottom View."
msgstr "มุมล่าง"
#: editor/plugins/spatial_editor_plugin.cpp
-msgid "Bottom"
-msgstr "ล่าง"
-
-#: editor/plugins/spatial_editor_plugin.cpp
msgid "Left View."
msgstr "มุมซ้าย"
#: editor/plugins/spatial_editor_plugin.cpp
-msgid "Left"
-msgstr "ซ้าย"
-
-#: editor/plugins/spatial_editor_plugin.cpp
msgid "Right View."
msgstr "มุมขวา"
#: editor/plugins/spatial_editor_plugin.cpp
-msgid "Right"
-msgstr "ขวา"
-
-#: editor/plugins/spatial_editor_plugin.cpp
msgid "Front View."
msgstr "มุมหน้า"
#: editor/plugins/spatial_editor_plugin.cpp
-msgid "Front"
-msgstr "หน้า"
-
-#: editor/plugins/spatial_editor_plugin.cpp
msgid "Rear View."
msgstr "มุมหลัง"
#: editor/plugins/spatial_editor_plugin.cpp
-msgid "Rear"
-msgstr "หลัง"
-
-#: editor/plugins/spatial_editor_plugin.cpp
msgid "Align Transform with View"
msgstr "จัดà¸à¸²à¸£à¹à¸›à¸¥à¸‡à¹ƒà¸«à¹‰à¹€à¸‚้าà¸à¸±à¸šà¸§à¸´à¸§"
@@ -8087,6 +8197,11 @@ msgid "View Portal Culling"
msgstr "ตั้งค่ามุมมอง"
#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "View Occlusion Culling"
+msgstr "ตั้งค่ามุมมอง"
+
+#: editor/plugins/spatial_editor_plugin.cpp
#: modules/gridmap/grid_map_editor_plugin.cpp
msgid "Settings..."
msgstr "ตั้งค่า..."
@@ -8152,8 +8267,9 @@ msgid "Post"
msgstr "หลัง"
#: editor/plugins/spatial_editor_plugin.cpp
-msgid "Nameless gizmo"
-msgstr "à¸à¸´à¸ªà¹‚มไม่มีชื่อ"
+#, fuzzy
+msgid "Unnamed Gizmo"
+msgstr "โปรเจà¸à¸•์ไม่มีชื่อ"
#: editor/plugins/sprite_editor_plugin.cpp
msgid "Create Mesh2D"
@@ -12275,6 +12391,16 @@ msgstr "à¸à¸³à¸«à¸™à¸”พิà¸à¸±à¸”จุดเส้นโค้ง"
msgid "Set Portal Point Position"
msgstr "à¸à¸³à¸«à¸™à¸”พิà¸à¸±à¸”จุดเส้นโค้ง"
+#: editor/spatial_editor_gizmos.cpp
+#, fuzzy
+msgid "Set Occluder Sphere Radius"
+msgstr "ปรับรัศมีทรงà¹à¸„ปซูล"
+
+#: editor/spatial_editor_gizmos.cpp
+#, fuzzy
+msgid "Set Occluder Sphere Position"
+msgstr "à¸à¸³à¸«à¸™à¸”เส้นโค้งขาเข้า"
+
#: modules/csg/csg_gizmos.cpp
msgid "Change Cylinder Radius"
msgstr "ปรับรัศมีทรงà¸à¸£à¸°à¸šà¸­à¸"
@@ -12558,6 +12684,11 @@ msgstr "à¸à¸³à¸¥à¸±à¸‡à¸žà¸¥à¹‡à¸­à¸• lightmaps"
msgid "Class name can't be a reserved keyword"
msgstr "ชื่อคลาสไม่สามารถมีคีย์เวิร์ดได้"
+#: modules/mono/csharp_script.cpp
+#, fuzzy
+msgid "Build Solution"
+msgstr "เติมส่วนที่เลือà¸"
+
#: modules/mono/mono_gd/gd_mono_utils.cpp
msgid "End of inner exception stack trace"
msgstr "สิ้นสุดสà¹à¸•คข้อผิดพลาดภายใน"
@@ -13030,135 +13161,135 @@ msgstr "ค้นหาโหนด VisualScript"
msgid "Get %s"
msgstr "รับ %s"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Package name is missing."
msgstr "ชื่อà¹à¸žà¹‡à¸„เà¸à¸ˆà¸«à¸²à¸¢à¹„ป"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Package segments must be of non-zero length."
msgstr "ส่วนของà¹à¸žà¹‡à¸„เà¸à¸ˆà¸ˆà¸°à¸•้องมีความยาวไม่เป็นศูนย์"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "The character '%s' is not allowed in Android application package names."
msgstr "ตัวอัà¸à¸©à¸£ '%s' ไม่อนุà¸à¸²à¸•ให้ใช้ในชื่อของ Android application package"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "A digit cannot be the first character in a package segment."
msgstr "ไม่สามารถใช้ตัวเลขเป็นตัวà¹à¸£à¸à¹ƒà¸™à¸ªà¹ˆà¸§à¸™à¸‚องà¹à¸žà¹‡à¸„เà¸à¸ˆ"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "The character '%s' cannot be the first character in a package segment."
msgstr "ตัวอัà¸à¸©à¸£ '%s' ไม่สามารถเป็นตัวอัà¸à¸©à¸£à¸•ัวà¹à¸£à¸à¹ƒà¸™à¸ªà¹ˆà¸§à¸™à¸‚องà¹à¸žà¹‡à¸„เà¸à¸ˆ"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "The package must have at least one '.' separator."
msgstr "à¹à¸žà¹‡à¸„เà¸à¸ˆà¸ˆà¸³à¹€à¸›à¹‡à¸™à¸•้องมี '.' อย่างน้อยหนึ่งตัว"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Select device from the list"
msgstr "เลือà¸à¸­à¸¸à¸›à¸à¸£à¸“์จาà¸à¸£à¸²à¸¢à¸Šà¸·à¹ˆà¸­"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Running on %s"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
#, fuzzy
msgid "Exporting APK..."
msgstr "ส่งออà¸à¸—ั้งหมด"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
#, fuzzy
msgid "Uninstalling..."
msgstr "ถอนà¸à¸²à¸£à¸•ิดตั้ง"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
#, fuzzy
msgid "Installing to device, please wait..."
msgstr "à¸à¸³à¸¥à¸±à¸‡à¹‚หลด โปรดรอ..."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
#, fuzzy
msgid "Could not install to device: %s"
msgstr "อินสà¹à¸•นซ์ฉาà¸à¹„ม่ได้!"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
#, fuzzy
msgid "Running on device..."
msgstr "à¸à¸³à¸¥à¸±à¸‡à¸£à¸±à¸™à¸ªà¸„ริปต์..."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
#, fuzzy
msgid "Could not execute on device."
msgstr "ไม่สามารถสร้างโฟลเดอร์"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Unable to find the 'apksigner' tool."
msgstr "ไม่สามารถหาเครื่องมือ 'apksigner'"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Android build template not installed in the project. Install it from the "
"Project menu."
msgstr "เทมเพลตà¸à¸²à¸£à¸ªà¸£à¹‰à¸²à¸‡à¸ªà¸³à¸«à¸£à¸±à¸šà¹à¸­à¸™à¸”รอยด์ไม่ถูà¸à¸•ิดตั้ง สามารถติดตั้งจาà¸à¹€à¸¡à¸™à¸¹à¹‚ปรเจà¸à¸•์"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Either Debug Keystore, Debug User AND Debug Password settings must be "
"configured OR none of them."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Debug keystore not configured in the Editor Settings nor in the preset."
msgstr "ดีบัภKeystore ไม่ได้ถูà¸à¸•ั้งไว้ในตั้งค่าของตัวà¹à¸à¹‰à¹„ขหรือในพรีเซ็ต"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Either Release Keystore, Release User AND Release Password settings must be "
"configured OR none of them."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Release keystore incorrectly configured in the export preset."
msgstr "Release keystore à¸à¸³à¸«à¸™à¸”ค่าไว้อย่างไม่ถูà¸à¸•้องในพรีเซ็ตสำหรับà¸à¸²à¸£à¸ªà¹ˆà¸‡à¸­à¸­à¸"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "A valid Android SDK path is required in Editor Settings."
msgstr "ต้องà¸à¸²à¸£à¸—ี่อยู่ของ Android SDK ที่ถูà¸à¸•้อง ในà¸à¸²à¸£à¸•ั้งค่าตัวà¹à¸à¹‰à¹„ข"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Invalid Android SDK path in Editor Settings."
msgstr "ที่อยู่ Android SDK ไม่ถูà¸à¸•้องในà¸à¸²à¸£à¸•ั้งค่าตัวà¹à¸à¹‰à¹„ข"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Missing 'platform-tools' directory!"
msgstr "ไดเร็à¸à¸—อรี 'platform-tools' หายไป!"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Unable to find Android SDK platform-tools' adb command."
msgstr "ไม่พบคำสั่ง adb ของ Android SDK platform-tools"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Please check in the Android SDK directory specified in Editor Settings."
msgstr "à¸à¸£à¸¸à¸“าตรวจสอบในตำà¹à¸«à¸™à¹ˆà¸‡à¸‚อง Android SDK ที่ระบุไว้ในà¸à¸²à¸£à¸•ั้งค่าตัวà¹à¸à¹‰à¹„ข"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Missing 'build-tools' directory!"
msgstr "ไดเร็à¸à¸—อรี 'build-tools' หายไป!"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Unable to find Android SDK build-tools' apksigner command."
msgstr "ไม่พบคำสั่ง apksigner ของ Android SDK build-tools"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Invalid public key for APK expansion."
msgstr "public key ผิดพลาดสำหรับ APK expansion"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Invalid package name:"
msgstr "ชื่อà¹à¸žà¹‡à¸„เà¸à¸ˆà¸œà¸´à¸”พลาด:"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Invalid \"GodotPaymentV3\" module included in the \"android/modules\" "
"project setting (changed in Godot 3.2.2).\n"
@@ -13166,33 +13297,20 @@ msgstr ""
"โมดูล \"GodotPaymentV3\" ที่ไม่ถูà¸à¸•้องได้รวมอยู่ในà¸à¸²à¸£à¸•ั้งค่าโปรเจà¸à¸•์ \"android/modules"
"\" (เปลี่ยนà¹à¸›à¸¥à¸‡à¹ƒà¸™ Godot 3.2.2)\n"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "\"Use Custom Build\" must be enabled to use the plugins."
msgstr "\"Use Custom Build\" จำเป็นต้องเปิดà¸à¸²à¸£à¹ƒà¸Šà¹‰à¸‡à¸²à¸™à¸«à¸²à¸à¸ˆà¸°à¹ƒà¸Šà¹‰à¸›à¸¥à¸±à¹Šà¸à¸­à¸´à¸™"
-#: platform/android/export/export.cpp
-msgid ""
-"\"Degrees Of Freedom\" is only valid when \"Xr Mode\" is \"Oculus Mobile VR"
-"\"."
-msgstr ""
-"\"Degrees Of Freedom\" จะใช้ได้เฉพาะเมื่อ \"Xr Mode\" เป็น \"Oculus Mobile VR\""
-
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"\"Hand Tracking\" is only valid when \"Xr Mode\" is \"Oculus Mobile VR\"."
msgstr "\"Hand Tracking\" จะสามารถใช้ได้เมื่อ \"Xr Mode\" เป็น \"Oculus Mobile VR\""
-#: platform/android/export/export.cpp
-msgid ""
-"\"Focus Awareness\" is only valid when \"Xr Mode\" is \"Oculus Mobile VR\"."
-msgstr ""
-"\"Focus Awareness\" จะสามารถใช้ได้เมื่อ \"Xr Mode\" เป็น \"Oculus Mobile VR\""
-
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "\"Export AAB\" is only valid when \"Use Custom Build\" is enabled."
msgstr "\"Export AAB\" จะใช้ได้เฉพาะเมื่อเปิดใช้งาน \"Use Custom Build\""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"'apksigner' could not be found.\n"
"Please check the command is available in the Android SDK build-tools "
@@ -13200,64 +13318,64 @@ msgid ""
"The resulting %s is unsigned."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Signing debug %s..."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
#, fuzzy
msgid "Signing release %s..."
msgstr ""
"à¸à¸³à¸¥à¸±à¸‡à¸ªà¹à¸à¸™à¹„ฟล์,\n"
"à¸à¸£à¸¸à¸“ารอ..."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
#, fuzzy
msgid "Could not find keystore, unable to export."
msgstr "เปิดเทมเพลตเพื่อส่งออà¸à¹„ม่ได้:"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "'apksigner' returned with error #%d"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
#, fuzzy
msgid "Verifying %s..."
msgstr "à¸à¸³à¸¥à¸±à¸‡à¹€à¸žà¸´à¹ˆà¸¡ %s..."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "'apksigner' verification of %s failed."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
#, fuzzy
msgid "Exporting for Android"
msgstr "ส่งออà¸à¸—ั้งหมด"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Invalid filename! Android App Bundle requires the *.aab extension."
msgstr "ชื่อไฟล์ผิดพลาด! à¹à¸­à¸™à¸”รอยด์à¹à¸­à¸›à¸šà¸±à¸™à¹€à¸”ิลจำเป็นต้องมีนามสà¸à¸¸à¸¥ *.aab"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "APK Expansion not compatible with Android App Bundle."
msgstr "à¸à¸²à¸£à¸‚ยาย APK เข้าà¸à¸±à¸™à¹„ม่ได้à¸à¸±à¸šà¹à¸­à¸™à¸”รอยด์à¹à¸­à¸›à¸šà¸±à¸™à¹€à¸”ิล"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Invalid filename! Android APK requires the *.apk extension."
msgstr "ชื่อไฟล์ผิดพลาด! à¹à¸­à¸™à¸”รอยด์ APK จำเป็นต้องมีนามสà¸à¸¸à¸¥ *.apk"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Unsupported export format!\n"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Trying to build from a custom built template, but no version info for it "
"exists. Please reinstall from the 'Project' menu."
msgstr ""
"พยายามสร้างจาà¸à¹€à¸—มเพลตที่สร้างขึ้นเอง à¹à¸•่ไม่มีข้อมูลเวอร์ชัน โปรดติดตั้งใหม่จาà¸à¹€à¸¡à¸™à¸¹ \"โปรเจà¸à¸•์\""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Android build version mismatch:\n"
" Template installed: %s\n"
@@ -13269,26 +13387,26 @@ msgstr ""
" Godot เวอร์ชัน:% s\n"
"โปรดติดตั้งเทมเพลตà¸à¸²à¸£à¸ªà¸£à¹‰à¸²à¸‡à¸ªà¸³à¸«à¸£à¸±à¸šà¹à¸­à¸™à¸”รอยด์ใหม่จาà¸à¹€à¸¡à¸™à¸¹ \"โปรเจà¸à¸•์\""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Unable to overwrite res://android/build/res/*.xml files with project name"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
#, fuzzy
msgid "Could not export project files to gradle project\n"
msgstr "ไม่พบไฟล์ project.godot"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
#, fuzzy
msgid "Could not write expansion package file!"
msgstr "เขียนไฟล์ไม่ได้:"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Building Android Project (gradle)"
msgstr "à¸à¸³à¸¥à¸±à¸‡à¸ªà¸£à¹‰à¸²à¸‡à¹‚ปรเจคà¹à¸­à¸™à¸”รอยด์ (gradle)"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Building of Android project failed, check output for the error.\n"
"Alternatively visit docs.godotengine.org for Android build documentation."
@@ -13296,35 +13414,35 @@ msgstr ""
"à¸à¸²à¸£à¸ªà¸£à¹‰à¸²à¸‡à¹‚ปรเจà¸à¸•์à¹à¸­à¸™à¸”รอยด์ล้มเหลว ตรวจสอบผลลัพธ์เพื่อหาข้อผิดพลาด\n"
"หรือไปที่ docs.godotengine.org สำหรับเอà¸à¸ªà¸²à¸£à¸›à¸£à¸°à¸à¸­à¸šà¸à¸²à¸£à¸ªà¸£à¹‰à¸²à¸‡à¸ªà¸³à¸«à¸£à¸±à¸šà¹à¸­à¸™à¸”รอยด์"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Moving output"
msgstr "à¸à¸³à¸¥à¸±à¸‡à¸¢à¹‰à¸²à¸¢à¹€à¸­à¸²à¸•์พุต"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Unable to copy and rename export file, check gradle project directory for "
"outputs."
msgstr ""
"ไม่สามารถคัดลอà¸à¹à¸¥à¸°à¹€à¸›à¸¥à¸µà¹ˆà¸¢à¸™à¸Šà¸·à¹ˆà¸­à¹„ฟล์ส่งออภตรวจสอบไดเร็à¸à¸—อรีโปรเจ็à¸à¸•์ gradle สำหรับเอาต์พุต"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
#, fuzzy
msgid "Package not found: %s"
msgstr "ไม่พบà¹à¸­à¸™à¸´à¹€à¸¡à¸Šà¸±à¸™: '%s'"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
#, fuzzy
msgid "Creating APK..."
msgstr "à¸à¸³à¸¥à¸±à¸‡à¸ªà¸£à¹‰à¸²à¸‡à¸„อนทัวร์..."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
#, fuzzy
msgid ""
"Could not find template APK to export:\n"
"%s"
msgstr "เปิดเทมเพลตเพื่อส่งออà¸à¹„ม่ได้:"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Missing libraries in the export template for the selected architectures: "
"%s.\n"
@@ -13332,21 +13450,21 @@ msgid ""
"architectures in the export preset."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
#, fuzzy
msgid "Adding files..."
msgstr "à¸à¸³à¸¥à¸±à¸‡à¹€à¸žà¸´à¹ˆà¸¡ %s..."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
#, fuzzy
msgid "Could not export project files"
msgstr "เขียนไฟล์ไม่ได้:"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Aligning APK..."
msgstr "จัดเรียง APK..."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Could not unzip temporary unaligned APK."
msgstr ""
@@ -13843,6 +13961,14 @@ msgstr ""
"NavigationMeshInstance ต้องเป็นโหนดลูà¸/หลานของโหนด Navigation "
"โดยจะให้ข้อมูลà¸à¸²à¸£à¸™à¸³à¸—างเท่านั้น"
+#: scene/3d/occluder.cpp
+msgid "No shape is set."
+msgstr ""
+
+#: scene/3d/occluder.cpp
+msgid "Only uniform scales are supported."
+msgstr ""
+
#: scene/3d/particles.cpp
msgid ""
"GPU-based particles are not supported by the GLES2 video driver.\n"
@@ -14156,6 +14282,14 @@ msgstr "นามสà¸à¸¸à¸¥à¹„ฟล์ไม่ถูà¸à¸•้อง"
msgid "Enable grid minimap."
msgstr "เปิดเส้นà¸à¸£à¸´à¸”มินิà¹à¸¡à¸ž"
+#: scene/gui/nine_patch_rect.cpp
+msgid ""
+"The Tile and Tile Fit options for Axis Stretch properties are only effective "
+"when using the GLES3 rendering backend.\n"
+"The GLES2 backend is currently in use, so these modes will act like Stretch "
+"instead."
+msgstr ""
+
#: scene/gui/popup.cpp
msgid ""
"Popups will hide by default unless you call popup() or any of the popup*() "
@@ -14205,6 +14339,10 @@ msgstr ""
msgid "Viewport size must be greater than 0 to render anything."
msgstr "ขนาดวิวพอร์ตจะต้องมาà¸à¸à¸§à¹ˆà¸² 0 เพื่อที่จะเรนเดอร์ได้"
+#: scene/resources/occluder_shape.cpp
+msgid "OccluderShapeSphere Set Spheres"
+msgstr ""
+
#: scene/resources/visual_shader_nodes.cpp
msgid ""
"The sampler port is connected but not used. Consider changing the source to "
@@ -14256,6 +14394,39 @@ msgstr "à¸à¸²à¸£à¸à¸³à¸«à¸™à¸”ให้à¸à¸±à¸šà¸¢à¸¹à¸™à¸´à¸Ÿà¸­à¸£à¹Œà¸¡"
msgid "Constants cannot be modified."
msgstr "ค่าคงที่ไม่สามารถà¹à¸à¹‰à¹„ขได้"
+#~ msgid "Make Rest Pose (From Bones)"
+#~ msgstr "สร้างท่าโพส (จาà¸à¹‚ครง)"
+
+#~ msgid "Bottom"
+#~ msgstr "ล่าง"
+
+#~ msgid "Left"
+#~ msgstr "ซ้าย"
+
+#~ msgid "Right"
+#~ msgstr "ขวา"
+
+#~ msgid "Front"
+#~ msgstr "หน้า"
+
+#~ msgid "Rear"
+#~ msgstr "หลัง"
+
+#~ msgid "Nameless gizmo"
+#~ msgstr "à¸à¸´à¸ªà¹‚มไม่มีชื่อ"
+
+#~ msgid ""
+#~ "\"Degrees Of Freedom\" is only valid when \"Xr Mode\" is \"Oculus Mobile "
+#~ "VR\"."
+#~ msgstr ""
+#~ "\"Degrees Of Freedom\" จะใช้ได้เฉพาะเมื่อ \"Xr Mode\" เป็น \"Oculus Mobile VR\""
+
+#~ msgid ""
+#~ "\"Focus Awareness\" is only valid when \"Xr Mode\" is \"Oculus Mobile VR"
+#~ "\"."
+#~ msgstr ""
+#~ "\"Focus Awareness\" จะสามารถใช้ได้เมื่อ \"Xr Mode\" เป็น \"Oculus Mobile VR\""
+
#~ msgid "Package Contents:"
#~ msgstr "เนื้อหาà¹à¸žà¸„เà¸à¸ˆ:"
diff --git a/editor/translations/tr.po b/editor/translations/tr.po
index 69a7ef73a2..e5a65500d1 100644
--- a/editor/translations/tr.po
+++ b/editor/translations/tr.po
@@ -61,12 +61,13 @@
# ali aydın <alimxaydin@gmail.com>, 2021.
# Cannur Daşkıran <canndask@gmail.com>, 2021.
# kahveciderin <kahveciderin@gmail.com>, 2021.
+# Lucifer25x <umudyt2006@gmail.com>, 2021.
msgid ""
msgstr ""
"Project-Id-Version: Godot Engine editor\n"
"POT-Creation-Date: \n"
-"PO-Revision-Date: 2021-07-13 06:13+0000\n"
-"Last-Translator: kahveciderin <kahveciderin@gmail.com>\n"
+"PO-Revision-Date: 2021-09-15 00:46+0000\n"
+"Last-Translator: Lucifer25x <umudyt2006@gmail.com>\n"
"Language-Team: Turkish <https://hosted.weblate.org/projects/godot-engine/"
"godot/tr/>\n"
"Language: tr\n"
@@ -74,7 +75,7 @@ msgstr ""
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=n != 1;\n"
-"X-Generator: Weblate 4.7.2-dev\n"
+"X-Generator: Weblate 4.9-dev\n"
#: core/math/expression.cpp modules/gdscript/gdscript_functions.cpp
#: modules/visual_script/visual_script_builtin_funcs.cpp
@@ -1020,7 +1021,7 @@ msgstr "\"%s\" için sonuç yok."
#: editor/create_dialog.cpp editor/property_selector.cpp
msgid "No description available for %s."
-msgstr ""
+msgstr "%s için açıklama yok."
#: editor/create_dialog.cpp editor/editor_file_dialog.cpp
#: editor/filesystem_dock.cpp
@@ -1080,7 +1081,7 @@ msgstr ""
msgid "Dependencies"
msgstr "Bağımlılıklar"
-#: editor/dependency_editor.cpp
+#: editor/dependency_editor.cpp editor/editor_resource_picker.cpp
msgid "Resource"
msgstr "Kaynak"
@@ -1324,11 +1325,12 @@ msgstr "%s (Zaten Var)"
#: editor/editor_asset_installer.cpp
msgid "Contents of asset \"%s\" - %d file(s) conflict with your project:"
-msgstr ""
+msgstr "\"%s\" öğesinin içeriği - %d dosya(lar) projenizle çakışıyor:"
#: editor/editor_asset_installer.cpp
+#, fuzzy
msgid "Contents of asset \"%s\" - No files conflict with your project:"
-msgstr ""
+msgstr "\"%s\" öğesinin içeriği - Projenizle çakışan dosya yok:"
#: editor/editor_asset_installer.cpp
msgid "Uncompressing Assets"
@@ -1597,8 +1599,9 @@ msgid "%s is an invalid path. File does not exist."
msgstr "Dosya yok."
#: editor/editor_autoload_settings.cpp
+#, fuzzy
msgid "%s is an invalid path. Not in resource path (res://)."
-msgstr ""
+msgstr "%s geçersiz bir yol. Kaynak yolunda değil (res://)."
#: editor/editor_autoload_settings.cpp
msgid "Add AutoLoad"
@@ -1748,13 +1751,13 @@ msgstr ""
"Proje Ayarlarında 'Import Etc' seçeneğini etkinleştirin veya 'Driver "
"Fallback Enabled' seçeneğini devre dışı bırakın."
-#: editor/editor_export.cpp platform/android/export/export.cpp
+#: editor/editor_export.cpp platform/android/export/export_plugin.cpp
#: platform/iphone/export/export.cpp platform/javascript/export/export.cpp
#: platform/osx/export/export.cpp platform/uwp/export/export.cpp
msgid "Custom debug template not found."
msgstr "Özel hata ayıklama şablonu bulunmadı."
-#: editor/editor_export.cpp platform/android/export/export.cpp
+#: editor/editor_export.cpp platform/android/export/export_plugin.cpp
#: platform/iphone/export/export.cpp platform/javascript/export/export.cpp
#: platform/osx/export/export.cpp platform/uwp/export/export.cpp
msgid "Custom release template not found."
@@ -1798,35 +1801,45 @@ msgstr "Dock İçe Aktar"
#: editor/editor_feature_profile.cpp
msgid "Allows to view and edit 3D scenes."
-msgstr ""
+msgstr "3D sahneleri görüntülemeye ve düzenlemeye izin verir."
#: editor/editor_feature_profile.cpp
msgid "Allows to edit scripts using the integrated script editor."
msgstr ""
+"Entegre komut dosyası düzenleyicisini kullanarak komut dosyalarını "
+"düzenlemeye izin verir."
#: editor/editor_feature_profile.cpp
+#, fuzzy
msgid "Provides built-in access to the Asset Library."
-msgstr ""
+msgstr "Varlık Kitaplığına yerleşik erişim sağlar."
#: editor/editor_feature_profile.cpp
msgid "Allows editing the node hierarchy in the Scene dock."
-msgstr ""
+msgstr "Scene dock'ta düğüm hiyerarşisini düzenlemeye izin verir."
#: editor/editor_feature_profile.cpp
+#, fuzzy
msgid ""
"Allows to work with signals and groups of the node selected in the Scene "
"dock."
msgstr ""
+"Scene dock'ta seçilen düğümün sinyalleri ve gruplarıyla çalışmaya izin verir."
#: editor/editor_feature_profile.cpp
+#, fuzzy
msgid "Allows to browse the local file system via a dedicated dock."
msgstr ""
+"Özel bir dock aracılığıyla yerel dosya sistemine göz atılmasına izin verir."
#: editor/editor_feature_profile.cpp
+#, fuzzy
msgid ""
"Allows to configure import settings for individual assets. Requires the "
"FileSystem dock to function."
msgstr ""
+"Bireysel varlıklar için içe aktarma ayarlarını yapılandırmaya izin verir. "
+"Çalışması için FileSystem fonksiyonunu gerektirir."
#: editor/editor_feature_profile.cpp
#, fuzzy
@@ -1838,8 +1851,9 @@ msgid "(none)"
msgstr ""
#: editor/editor_feature_profile.cpp
+#, fuzzy
msgid "Remove currently selected profile, '%s'? Cannot be undone."
-msgstr ""
+msgstr "Seçili olan '%s' profili kaldırılsın mı? (Geri alınamayan.)"
#: editor/editor_feature_profile.cpp
msgid "Profile must be a valid filename and must not contain '.'"
@@ -1948,6 +1962,8 @@ msgstr "Doku Seçenekleri"
#: editor/editor_feature_profile.cpp
msgid "Create or import a profile to edit available classes and properties."
msgstr ""
+"Kullanılabilir sınıfları ve özellikleri düzenlemek için bir profil oluşturun "
+"veya içe aktarın."
#: editor/editor_feature_profile.cpp
msgid "New profile name:"
@@ -2137,7 +2153,7 @@ msgstr ""
msgid "(Re)Importing Assets"
msgstr "Varlıklar Yeniden-İçe Aktarılıyor"
-#: editor/editor_help.cpp editor/plugins/spatial_editor_plugin.cpp
+#: editor/editor_help.cpp
msgid "Top"
msgstr "Üst"
@@ -2369,11 +2385,15 @@ msgid "New Window"
msgstr "Yeni Pencere"
#: editor/editor_node.cpp
+#, fuzzy
msgid ""
"Spins when the editor window redraws.\n"
"Update Continuously is enabled, which can increase power usage. Click to "
"disable it."
msgstr ""
+"Düzenleyici penceresi yeniden çizildiğinde döner.\n"
+"Güç kullanımını artırabilecek Sürekli Güncelle etkindir. Devre dışı bırakmak "
+"için tıklayın."
#: editor/editor_node.cpp
msgid "Spins when the editor window redraws."
@@ -2605,10 +2625,13 @@ msgid "Save changes to '%s' before closing?"
msgstr "Kapatmadan önce değişklikler buraya '%s' kaydedilsin mi?"
#: editor/editor_node.cpp
+#, fuzzy
msgid ""
"The current scene has no root node, but %d modified external resource(s) "
"were saved anyway."
msgstr ""
+"Geçerli sahnenin kök düğümü yok, ancak %d değiştirilmiş harici kaynak(lar) "
+"yine de kaydedildi."
#: editor/editor_node.cpp
#, fuzzy
@@ -2646,6 +2669,32 @@ msgid "Current scene not saved. Open anyway?"
msgstr "Var olan sahne kaydedilmedi. Yine de açılsın mı?"
#: editor/editor_node.cpp
+msgid "Can't undo while mouse buttons are pressed."
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "Nothing to undo."
+msgstr ""
+
+#: editor/editor_node.cpp
+#, fuzzy
+msgid "Undo: %s"
+msgstr "Geri al"
+
+#: editor/editor_node.cpp
+msgid "Can't redo while mouse buttons are pressed."
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "Nothing to redo."
+msgstr ""
+
+#: editor/editor_node.cpp
+#, fuzzy
+msgid "Redo: %s"
+msgstr "Yeniden yap"
+
+#: editor/editor_node.cpp
msgid "Can't reload a scene that was never saved."
msgstr "Hiç kaydedilmemiş bir sahne yeniden yüklenemiyor."
@@ -3167,7 +3216,7 @@ msgstr "Klavuzu Aç"
#: editor/editor_node.cpp
msgid "Questions & Answers"
-msgstr ""
+msgstr "Sorular & Cevaplar"
#: editor/editor_node.cpp
msgid "Report a Bug"
@@ -3338,6 +3387,11 @@ msgid "Merge With Existing"
msgstr "Var Olanla BirleÅŸtir"
#: editor/editor_node.cpp
+#, fuzzy
+msgid "Apply MeshInstance Transforms"
+msgstr "Animasyon Değişikliği Dönüşümü"
+
+#: editor/editor_node.cpp
msgid "Open & Run a Script"
msgstr "Aç & Bir Betik Çalıştır"
@@ -3595,6 +3649,10 @@ msgstr ""
"Seçili kaynak (%s) bu özellik (%s) için beklenen herhangi bir tip ile "
"uyuÅŸmuyor."
+#: editor/editor_resource_picker.cpp
+msgid "Quick Load"
+msgstr ""
+
#: editor/editor_resource_picker.cpp editor/property_editor.cpp
msgid "Make Unique"
msgstr "Benzersiz Yap"
@@ -3689,11 +3747,11 @@ msgstr "Düğümden İçe Aktar:"
#: editor/export_template_manager.cpp
msgid "Open the folder containing these templates."
-msgstr ""
+msgstr "Bu şablonları içeren klasörü açın."
#: editor/export_template_manager.cpp
msgid "Uninstall these templates."
-msgstr ""
+msgstr "Bu şablonları kaldırın."
#: editor/export_template_manager.cpp
#, fuzzy
@@ -3707,7 +3765,7 @@ msgstr "Aynalar alınıyor, lütfen bekleyin..."
#: editor/export_template_manager.cpp
msgid "Starting the download..."
-msgstr ""
+msgstr "İndirme başlatılıyor..."
#: editor/export_template_manager.cpp
msgid "Error requesting URL:"
@@ -3749,8 +3807,9 @@ msgid "Request failed:"
msgstr "İstek başarısız."
#: editor/export_template_manager.cpp
+#, fuzzy
msgid "Download complete; extracting templates..."
-msgstr ""
+msgstr "İndirme tamamlandı; şablonlar ayıklanıyor..."
#: editor/export_template_manager.cpp
msgid "Cannot remove temporary file:"
@@ -3774,8 +3833,9 @@ msgid "Error parsing JSON with the list of mirrors. Please report this issue!"
msgstr "JSON sunucuları listesini alırken hata. Lütfen bu hatayı bildirin!"
#: editor/export_template_manager.cpp
+#, fuzzy
msgid "Best available mirror"
-msgstr ""
+msgstr "Mevcut en iyi ayna"
#: editor/export_template_manager.cpp
msgid ""
@@ -3873,12 +3933,14 @@ msgid "Current Version:"
msgstr "Şu Anki Sürüm:"
#: editor/export_template_manager.cpp
+#, fuzzy
msgid "Export templates are missing. Download them or install from a file."
msgstr ""
+"Dışa aktarma şablonları eksik. Bunları indirin veya bir dosyadan yükleyin."
#: editor/export_template_manager.cpp
msgid "Export templates are installed and ready to be used."
-msgstr ""
+msgstr "Dışa aktarma şablonları yüklenir ve kullanıma hazırdır."
#: editor/export_template_manager.cpp
#, fuzzy
@@ -3887,7 +3949,7 @@ msgstr "Dosya Aç"
#: editor/export_template_manager.cpp
msgid "Open the folder containing installed templates for the current version."
-msgstr ""
+msgstr "Geçerli sürüm için yüklü şablonları içeren klasörü açın."
#: editor/export_template_manager.cpp
msgid "Uninstall"
@@ -3915,13 +3977,14 @@ msgstr "Hatayı Kopyala"
#: editor/export_template_manager.cpp
msgid "Download and Install"
-msgstr ""
+msgstr "İndir ve Yükle"
#: editor/export_template_manager.cpp
msgid ""
"Download and install templates for the current version from the best "
"possible mirror."
msgstr ""
+"Mevcut sürüm için şablonları mümkün olan en iyi aynadan indirin ve yükleyin."
#: editor/export_template_manager.cpp
msgid "Official export templates aren't available for development builds."
@@ -3972,6 +4035,8 @@ msgid ""
"The templates will continue to download.\n"
"You may experience a short editor freeze when they finish."
msgstr ""
+"Åžablonlar indirilmeye devam edecek.\n"
+"Bitirdiklerinde kısa bir editör donması yaşayabilirsiniz."
#: editor/filesystem_dock.cpp
msgid "Favorites"
@@ -4119,25 +4184,24 @@ msgid "Collapse All"
msgstr "Hepsini Daralt"
#: editor/filesystem_dock.cpp
-#, fuzzy
msgid "Sort files"
-msgstr "Dosyaları ara"
+msgstr "Dosyaları sırala"
#: editor/filesystem_dock.cpp
msgid "Sort by Name (Ascending)"
-msgstr ""
+msgstr "Ada Göre Sırala (Artan)"
#: editor/filesystem_dock.cpp
msgid "Sort by Name (Descending)"
-msgstr ""
+msgstr "Ada Göre Sırala (Azalan)"
#: editor/filesystem_dock.cpp
msgid "Sort by Type (Ascending)"
-msgstr ""
+msgstr "Türe Göre Sırala (Artan)"
#: editor/filesystem_dock.cpp
msgid "Sort by Type (Descending)"
-msgstr ""
+msgstr "Türe Göre Sırala (Artan)"
#: editor/filesystem_dock.cpp
#, fuzzy
@@ -4159,7 +4223,7 @@ msgstr "Yeniden Adlandır..."
#: editor/filesystem_dock.cpp
msgid "Focus the search box"
-msgstr ""
+msgstr "Arama kutusuna odaklan"
#: editor/filesystem_dock.cpp
msgid "Previous Folder/File"
@@ -4508,9 +4572,8 @@ msgid "Extra resource options."
msgstr "Kaynak yolunda deÄŸil."
#: editor/inspector_dock.cpp
-#, fuzzy
msgid "Edit Resource from Clipboard"
-msgstr "Kaynak Panosunu Düzenle"
+msgstr "Panodan Kaynağı Düzenle"
#: editor/inspector_dock.cpp
msgid "Copy Resource"
@@ -4534,9 +4597,8 @@ msgid "History of recently edited objects."
msgstr "En son düzenlenen nesnelerin geçmişi."
#: editor/inspector_dock.cpp
-#, fuzzy
msgid "Open documentation for this object."
-msgstr "Klavuzu Aç"
+msgstr "Bu nesne için belgeleri açın."
#: editor/inspector_dock.cpp editor/scene_tree_dock.cpp
msgid "Open Documentation"
@@ -4547,9 +4609,8 @@ msgid "Filter properties"
msgstr "Özellikleri süz"
#: editor/inspector_dock.cpp
-#, fuzzy
msgid "Manage object properties."
-msgstr "Nesne özellikleri."
+msgstr "Nesne özelliklerini yönetin."
#: editor/inspector_dock.cpp
msgid "Changes may be lost!"
@@ -4793,9 +4854,8 @@ msgid "Blend:"
msgstr "Karışma:"
#: editor/plugins/animation_blend_tree_editor_plugin.cpp
-#, fuzzy
msgid "Parameter Changed:"
-msgstr "Parametre DeÄŸiÅŸti"
+msgstr "Parametre DeÄŸiÅŸtirildi:"
#: editor/plugins/animation_blend_tree_editor_plugin.cpp
#: editor/plugins/animation_tree_player_editor_plugin.cpp
@@ -5524,11 +5584,11 @@ msgstr "Hepsi"
#: editor/plugins/asset_library_editor_plugin.cpp
msgid "Search templates, projects, and demos"
-msgstr ""
+msgstr "Şablonları, projeleri ve demoları arayın"
#: editor/plugins/asset_library_editor_plugin.cpp
msgid "Search assets (excluding templates, projects, and demos)"
-msgstr ""
+msgstr "Varlıkları arayın (şablonlar, projeler ve demolar hariç)"
#: editor/plugins/asset_library_editor_plugin.cpp
msgid "Import..."
@@ -5572,7 +5632,7 @@ msgstr "Varlıkların ZIP Dosyası"
#: editor/plugins/audio_stream_editor_plugin.cpp
msgid "Audio Preview Play/Pause"
-msgstr ""
+msgstr "Ses Önizleme Oynat/Duraklat"
#: editor/plugins/baked_lightmap_editor_plugin.cpp
msgid ""
@@ -5730,6 +5790,18 @@ msgid "Move CanvasItem \"%s\" to (%d, %d)"
msgstr "CanvasItem \"%s\" öğesini (%d,%d) konumuna taşı"
#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Locked"
+msgstr "Seçimi Kilitle"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Grouped"
+msgstr "Öbek"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
msgid ""
"Children of containers have their anchors and margins values overridden by "
"their parent."
@@ -5918,9 +5990,8 @@ msgid "Drag: Rotate selected node around pivot."
msgstr "Seçilen düğüm ya da geçişi sil."
#: editor/plugins/canvas_item_editor_plugin.cpp
-#, fuzzy
msgid "Alt+Drag: Move selected node."
-msgstr "Alt+Sürükle: Taşır"
+msgstr "Alt+Sürükle: Seçili düğümü taşıyın."
#: editor/plugins/canvas_item_editor_plugin.cpp
#, fuzzy
@@ -5929,15 +6000,14 @@ msgstr "Seçilen düğüm ya da geçişi sil."
#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp
-#, fuzzy
msgid "Alt+RMB: Show list of all nodes at position clicked, including locked."
msgstr ""
-"Tıklanan konumdaki tüm nesnelerin bir listesini gösterin\n"
-"(Seçme biçiminde Alt + RMB ile özdeş)."
+"Alt+RMB: Kilitli dahil olmak üzere tıklanan konumdaki tüm düğümlerin "
+"listesini göster."
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "RMB: Add node at position clicked."
-msgstr ""
+msgstr "RMB: Tıklanan konuma düğüm ekleyin."
#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp
@@ -6196,16 +6266,19 @@ msgid "Pan View"
msgstr "Yatay Kaydırma Görünümü"
#: editor/plugins/canvas_item_editor_plugin.cpp
+#, fuzzy
msgid "Zoom to 3.125%"
-msgstr ""
+msgstr "%3.125'e yakınlaştır"
#: editor/plugins/canvas_item_editor_plugin.cpp
+#, fuzzy
msgid "Zoom to 6.25%"
-msgstr ""
+msgstr "%6,25'e yakınlaştır"
#: editor/plugins/canvas_item_editor_plugin.cpp
+#, fuzzy
msgid "Zoom to 12.5%"
-msgstr ""
+msgstr "%12,5'e yakınlaştır"
#: editor/plugins/canvas_item_editor_plugin.cpp
#, fuzzy
@@ -6598,6 +6671,9 @@ msgid ""
"This is similar to single collision shape, but can result in a simpler "
"geometry in some cases, at the cost of accuracy."
msgstr ""
+"Basitleştirilmiş bir dışbükey çarpışma şekli oluşturur.\n"
+"Bu, tek çarpışma şekline benzer, ancak bazı durumlarda doğruluk pahasına "
+"daha basit bir geometriyle sonuçlanabilir."
#: editor/plugins/mesh_instance_editor_plugin.cpp
msgid "Create Multiple Convex Collision Siblings"
@@ -6678,7 +6754,13 @@ msgid "Remove Selected Item"
msgstr "Seçilen Öğeyi Kaldır"
#: editor/plugins/mesh_library_editor_plugin.cpp
-msgid "Import from Scene"
+#, fuzzy
+msgid "Import from Scene (Ignore Transforms)"
+msgstr "Sahneden İçe Aktar"
+
+#: editor/plugins/mesh_library_editor_plugin.cpp
+#, fuzzy
+msgid "Import from Scene (Apply Transforms)"
msgstr "Sahneden İçe Aktar"
#: editor/plugins/mesh_library_editor_plugin.cpp
@@ -7272,6 +7354,16 @@ msgstr "Üretilen Nokta Sayısı:"
msgid "Flip Portal"
msgstr "Yatay Yansıt"
+#: editor/plugins/room_manager_editor_plugin.cpp
+#, fuzzy
+msgid "Occluder Set Transform"
+msgstr "Dönüşümü Temizle"
+
+#: editor/plugins/room_manager_editor_plugin.cpp
+#, fuzzy
+msgid "Center Node"
+msgstr "Düğüm Oluştur"
+
#: editor/plugins/root_motion_editor_plugin.cpp
msgid "AnimationTree has no path set to an AnimationPlayer"
msgstr "Animasyon ağacı AnimasyonOynatıcı'ya atanmış yola sahip değil"
@@ -7774,12 +7866,14 @@ msgid "Skeleton2D"
msgstr "İskelet2D"
#: editor/plugins/skeleton_2d_editor_plugin.cpp
-msgid "Make Rest Pose (From Bones)"
-msgstr "Dinlenme duruÅŸu oluÅŸtur (kemiklerden)"
+#, fuzzy
+msgid "Reset to Rest Pose"
+msgstr "Kemikleri Dinlenme DuruÅŸuna ata"
#: editor/plugins/skeleton_2d_editor_plugin.cpp
-msgid "Set Bones to Rest Pose"
-msgstr "Kemikleri Dinlenme DuruÅŸuna ata"
+#, fuzzy
+msgid "Overwrite Rest Pose"
+msgstr "Üzerine Yaz"
#: editor/plugins/skeleton_editor_plugin.cpp
msgid "Create physical bones"
@@ -7806,6 +7900,71 @@ msgid "Perspective"
msgstr "Derinlik"
#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Top Orthogonal"
+msgstr "Dikey"
+
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Top Perspective"
+msgstr "Derinlik"
+
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Bottom Orthogonal"
+msgstr "Dikey"
+
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Bottom Perspective"
+msgstr "Derinlik"
+
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Left Orthogonal"
+msgstr "Dikey"
+
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Right Perspective"
+msgstr "Derinlik"
+
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Right Orthogonal"
+msgstr "Dikey"
+
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Front Orthogonal"
+msgstr "Dikey"
+
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Front Perspective"
+msgstr "Derinlik"
+
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Rear Orthogonal"
+msgstr "Dikey"
+
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Rear Perspective"
+msgstr "Derinlik"
+
+#. TRANSLATORS: This will be appended to the view name when Auto Orthogonal is enabled.
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid " [auto]"
+msgstr ""
+
+#. TRANSLATORS: This will be appended to the view name when Portal Occulusion is enabled.
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid " [portals active]"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
msgid "Transform Aborted."
msgstr "Dönüşüm Durduruldu."
@@ -7832,20 +7991,17 @@ msgid "None"
msgstr "Düğüm"
#: editor/plugins/spatial_editor_plugin.cpp
-#, fuzzy
msgid "Rotate"
-msgstr "Ülke"
+msgstr "Döndür"
#. TRANSLATORS: This refers to the movement that changes the position of an object.
#: editor/plugins/spatial_editor_plugin.cpp
-#, fuzzy
msgid "Translate"
-msgstr "Çevir:"
+msgstr "Çevir"
#: editor/plugins/spatial_editor_plugin.cpp
-#, fuzzy
msgid "Scale"
-msgstr "Ölçekle:"
+msgstr "Ölçekle"
#: editor/plugins/spatial_editor_plugin.cpp
msgid "Scaling: "
@@ -7868,13 +8024,12 @@ msgid "Animation Key Inserted."
msgstr "Animasyon Anahtarı Eklendi."
#: editor/plugins/spatial_editor_plugin.cpp
-#, fuzzy
msgid "Pitch:"
-msgstr "Perde"
+msgstr "Perde:"
#: editor/plugins/spatial_editor_plugin.cpp
msgid "Yaw:"
-msgstr ""
+msgstr "Sapma:"
#: editor/plugins/spatial_editor_plugin.cpp
#, fuzzy
@@ -7882,24 +8037,20 @@ msgid "Size:"
msgstr "Boyut: "
#: editor/plugins/spatial_editor_plugin.cpp
-#, fuzzy
msgid "Objects Drawn:"
-msgstr "Çizilmiş Nesneler"
+msgstr "Çizilmiş Nesneler:"
#: editor/plugins/spatial_editor_plugin.cpp
-#, fuzzy
msgid "Material Changes:"
-msgstr "Materyal DeÄŸiÅŸiklikleri"
+msgstr "Materyal DeÄŸiÅŸiklikleri:"
#: editor/plugins/spatial_editor_plugin.cpp
-#, fuzzy
msgid "Shader Changes:"
-msgstr "Shader DeÄŸiÅŸiklikleri"
+msgstr "Gölgelendirici Değişiklikleri:"
#: editor/plugins/spatial_editor_plugin.cpp
-#, fuzzy
msgid "Surface Changes:"
-msgstr "Yüzey Değişiklikleri"
+msgstr "Yüzey Değişiklikleri:"
#: editor/plugins/spatial_editor_plugin.cpp
#, fuzzy
@@ -7907,13 +8058,13 @@ msgid "Draw Calls:"
msgstr "Çizim Çağrıları"
#: editor/plugins/spatial_editor_plugin.cpp
-#, fuzzy
msgid "Vertices:"
-msgstr "Köşenoktalar"
+msgstr "Köşenoktalar:"
#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
msgid "FPS: %d (%s ms)"
-msgstr ""
+msgstr "Kare hızı: %d (%s ms)"
#: editor/plugins/spatial_editor_plugin.cpp
msgid "Top View."
@@ -7924,42 +8075,22 @@ msgid "Bottom View."
msgstr "Alttan Görünüm."
#: editor/plugins/spatial_editor_plugin.cpp
-msgid "Bottom"
-msgstr "Alt"
-
-#: editor/plugins/spatial_editor_plugin.cpp
msgid "Left View."
msgstr "Soldan Görünüm."
#: editor/plugins/spatial_editor_plugin.cpp
-msgid "Left"
-msgstr "Sol"
-
-#: editor/plugins/spatial_editor_plugin.cpp
msgid "Right View."
msgstr "Sağdan Görünüm."
#: editor/plugins/spatial_editor_plugin.cpp
-msgid "Right"
-msgstr "SaÄŸ"
-
-#: editor/plugins/spatial_editor_plugin.cpp
msgid "Front View."
msgstr "Önden Görünüm."
#: editor/plugins/spatial_editor_plugin.cpp
-msgid "Front"
-msgstr "Ön"
-
-#: editor/plugins/spatial_editor_plugin.cpp
msgid "Rear View."
msgstr "Arkadan Görünüm."
#: editor/plugins/spatial_editor_plugin.cpp
-msgid "Rear"
-msgstr "Arka"
-
-#: editor/plugins/spatial_editor_plugin.cpp
msgid "Align Transform with View"
msgstr "Dönüşümü Görünümle Eşle"
@@ -8132,8 +8263,9 @@ msgid "Use Snap"
msgstr "Yapışma Kullan"
#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
msgid "Converts rooms for portal culling."
-msgstr ""
+msgstr "Odaları portal ayıklama için dönüştürür."
#: editor/plugins/spatial_editor_plugin.cpp
msgid "Bottom View"
@@ -8234,6 +8366,11 @@ msgid "View Portal Culling"
msgstr "Görüntükapısı Ayarları"
#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "View Occlusion Culling"
+msgstr "Görüntükapısı Ayarları"
+
+#: editor/plugins/spatial_editor_plugin.cpp
#: modules/gridmap/grid_map_editor_plugin.cpp
msgid "Settings..."
msgstr "Ayarlar..."
@@ -8299,8 +8436,9 @@ msgid "Post"
msgstr "Sonrası"
#: editor/plugins/spatial_editor_plugin.cpp
-msgid "Nameless gizmo"
-msgstr "İsimsiz Gizmo"
+#, fuzzy
+msgid "Unnamed Gizmo"
+msgstr "Adsız Proje"
#: editor/plugins/sprite_editor_plugin.cpp
msgid "Create Mesh2D"
@@ -8552,14 +8690,12 @@ msgid "TextureRegion"
msgstr "DokuBölgesi"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Colors"
-msgstr "Renk"
+msgstr "Renkler"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Fonts"
-msgstr "Yazı Tipi"
+msgstr "Yazı Tipleri"
#: editor/plugins/theme_editor_plugin.cpp
#, fuzzy
@@ -8573,7 +8709,7 @@ msgstr "StilKutusu"
#: editor/plugins/theme_editor_plugin.cpp
msgid "{num} color(s)"
-msgstr ""
+msgstr "{num} renk(lar)"
#: editor/plugins/theme_editor_plugin.cpp
#, fuzzy
@@ -8595,9 +8731,8 @@ msgid "{num} font(s)"
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "No fonts found."
-msgstr "Bulunamadı!"
+msgstr "Yazı tipi bulunamadı."
#: editor/plugins/theme_editor_plugin.cpp
msgid "{num} icon(s)"
@@ -8613,9 +8748,8 @@ msgid "{num} stylebox(es)"
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "No styleboxes found."
-msgstr "Alt kaynağı bulunamadı."
+msgstr "Stil kutusu bulunamadı."
#: editor/plugins/theme_editor_plugin.cpp
msgid "{num} currently selected"
@@ -8623,7 +8757,7 @@ msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
msgid "Nothing was selected for the import."
-msgstr ""
+msgstr "İçe aktarma için hiçbir şey seçilmedi."
#: editor/plugins/theme_editor_plugin.cpp
#, fuzzy
@@ -8654,9 +8788,8 @@ msgid "With Data"
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Select by data type:"
-msgstr "Bir Düğüm Seç"
+msgstr "Veri türüne göre seçin:"
#: editor/plugins/theme_editor_plugin.cpp
#, fuzzy
@@ -8665,11 +8798,11 @@ msgstr "Önce bir ayar öğesi seçin!"
#: editor/plugins/theme_editor_plugin.cpp
msgid "Select all visible color items and their data."
-msgstr ""
+msgstr "Tüm görünür renk öğelerini ve verilerini seçin."
#: editor/plugins/theme_editor_plugin.cpp
msgid "Deselect all visible color items."
-msgstr ""
+msgstr "Tüm görünür renk öğelerinin seçimini kaldırın."
#: editor/plugins/theme_editor_plugin.cpp
#, fuzzy
@@ -8678,11 +8811,11 @@ msgstr "Önce bir ayar öğesi seçin!"
#: editor/plugins/theme_editor_plugin.cpp
msgid "Select all visible constant items and their data."
-msgstr ""
+msgstr "Tüm görünür sabit öğeleri ve verilerini seçin."
#: editor/plugins/theme_editor_plugin.cpp
msgid "Deselect all visible constant items."
-msgstr ""
+msgstr "Tüm görünür sabit öğelerin seçimini kaldırın."
#: editor/plugins/theme_editor_plugin.cpp
#, fuzzy
@@ -8691,11 +8824,11 @@ msgstr "Önce bir ayar öğesi seçin!"
#: editor/plugins/theme_editor_plugin.cpp
msgid "Select all visible font items and their data."
-msgstr ""
+msgstr "Tüm görünür yazı tipi öğelerini ve verilerini seçin."
#: editor/plugins/theme_editor_plugin.cpp
msgid "Deselect all visible font items."
-msgstr ""
+msgstr "Tüm görünür yazı tipi öğelerinin seçimini kaldırın."
#: editor/plugins/theme_editor_plugin.cpp
#, fuzzy
@@ -8714,36 +8847,35 @@ msgstr "Önce bir ayar öğesi seçin!"
#: editor/plugins/theme_editor_plugin.cpp
msgid "Select all visible stylebox items."
-msgstr ""
+msgstr "Tüm görünür stil kutusu öğelerini seçin."
#: editor/plugins/theme_editor_plugin.cpp
msgid "Select all visible stylebox items and their data."
-msgstr ""
+msgstr "Tüm görünür stil kutusu öğelerini ve verilerini seçin."
#: editor/plugins/theme_editor_plugin.cpp
msgid "Deselect all visible stylebox items."
-msgstr ""
+msgstr "Tüm görünür stil kutusu öğelerinin seçimini kaldırın."
#: editor/plugins/theme_editor_plugin.cpp
msgid ""
"Caution: Adding icon data may considerably increase the size of your Theme "
"resource."
msgstr ""
+"Dikkat: Simge verileri eklemek, Tema kaynağınızın boyutunu önemli ölçüde "
+"artırabilir."
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Collapse types."
-msgstr "Hepsini Daralt"
+msgstr "Hepsini Daralt."
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Expand types."
-msgstr "Hepsini GeniÅŸlet"
+msgstr "Hepsini GeniÅŸlet."
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Select all Theme items."
-msgstr "Şablon Dosyası Seç"
+msgstr "Şablon Dosyası Seç."
#: editor/plugins/theme_editor_plugin.cpp
#, fuzzy
@@ -8752,16 +8884,15 @@ msgstr "Noktaları Seç"
#: editor/plugins/theme_editor_plugin.cpp
msgid "Select all Theme items with item data."
-msgstr ""
+msgstr "Öğe verileriyle tüm Tema öğelerini seçin."
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Deselect All"
-msgstr "Hepsini Seç"
+msgstr "Tüm seçimleri kaldır"
#: editor/plugins/theme_editor_plugin.cpp
msgid "Deselect all Theme items."
-msgstr ""
+msgstr "Tüm Tema öğelerinin seçimini kaldırın."
#: editor/plugins/theme_editor_plugin.cpp
#, fuzzy
@@ -8774,287 +8905,255 @@ msgid ""
"closing this window.\n"
"Close anyway?"
msgstr ""
+"Öğeleri İçe Aktar sekmesinde bazı öğeler seçilidir. Bu pencere "
+"kapatıldığında seçim kaybolacaktır.\n"
+"Yine de kapat?"
#: editor/plugins/theme_editor_plugin.cpp
msgid ""
"Select a theme type from the list to edit its items.\n"
"You can add a custom type or import a type with its items from another theme."
msgstr ""
+"Öğelerini düzenlemek için listeden bir tema türü seçin.\n"
+"Özel bir tür ekleyebilir veya başka bir temadan öğeleriyle birlikte bir tür "
+"içe aktarabilirsiniz."
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Remove All Color Items"
-msgstr "Bütün Öğeleri Kaldır"
+msgstr "Tüm Renk Öğelerini Kaldır"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Rename Item"
-msgstr "Öğeyi Kaldır"
+msgstr "Öğeyi Yeniden Adlandır"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Remove All Constant Items"
-msgstr "Bütün Öğeleri Kaldır"
+msgstr "Tüm Sabit Öğeleri Kaldır"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Remove All Font Items"
-msgstr "Bütün Öğeleri Kaldır"
+msgstr "Tüm Yazı Tipi Öğelerini Kaldır"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Remove All Icon Items"
-msgstr "Bütün Öğeleri Kaldır"
+msgstr "Tüm Simge Öğelerini Kaldır"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Remove All StyleBox Items"
-msgstr "Bütün Öğeleri Kaldır"
+msgstr "Tüm Stil Kutusu Öğelerini Kaldır"
#: editor/plugins/theme_editor_plugin.cpp
msgid ""
"This theme type is empty.\n"
"Add more items to it manually or by importing from another theme."
msgstr ""
+"Bu tema türü boş.\n"
+"El ile veya başka bir temadan içe aktararak daha fazla öğe ekleyin."
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Add Color Item"
-msgstr "Sınıf Öğeleri Ekle"
+msgstr "Renk Öğesi Ekle"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Add Constant Item"
-msgstr "Sınıf Öğeleri Ekle"
+msgstr "Sabit Öğe Ekle"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Add Font Item"
-msgstr "Öğe Ekle"
+msgstr "Yazı Tipi Öğesi Ekle"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Add Icon Item"
-msgstr "Öğe Ekle"
+msgstr "Simge Öğesi Ekle"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Add Stylebox Item"
-msgstr "Tüm Öğeleri Ekle"
+msgstr "Stil Kutusu Öğesi Ekle"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Rename Color Item"
-msgstr "Sınıf Öğelerini Kaldır"
+msgstr "Renk Öğesini Yeniden Adlandır"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Rename Constant Item"
-msgstr "Sınıf Öğelerini Kaldır"
+msgstr "Sabit Öğeyi Yeniden Adlandır"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Rename Font Item"
-msgstr "Düğümü Yeniden Adlandır"
+msgstr "Yazı Tipi Öğesini Yeniden Adlandır"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Rename Icon Item"
-msgstr "Düğümü Yeniden Adlandır"
+msgstr "Simge Öğesini Yeniden Adlandır"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Rename Stylebox Item"
-msgstr "Seçilen Öğeyi Kaldır"
+msgstr "Stil Kutusu Öğesini Yeniden Adlandır"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Invalid file, not a Theme resource."
-msgstr "Geçersiz dosya, bu bir audio bus yerleşim düzeni değil."
+msgstr "Geçersiz dosya, Tema kaynağı değil."
#: editor/plugins/theme_editor_plugin.cpp
msgid "Invalid file, same as the edited Theme resource."
-msgstr ""
+msgstr "Geçersiz dosya, düzenlenen Tema kaynağıyla aynı."
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Manage Theme Items"
-msgstr "Şablonlarını Yönet"
+msgstr "Tema Öğelerini Yönet"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Edit Items"
-msgstr "Düzenlenebilir Öge"
+msgstr "Öğeleri Düzenle"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Types:"
-msgstr "Tür:"
+msgstr "Türler:"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Add Type:"
-msgstr "Tür:"
+msgstr "Tür Ekle:"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Add Item:"
-msgstr "Öğe Ekle"
+msgstr "Öğe Ekle:"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Add StyleBox Item"
-msgstr "Tüm Öğeleri Ekle"
+msgstr "Stil Kutusu Öğesi Ekle"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Remove Items:"
-msgstr "Öğeyi Kaldır"
+msgstr "Öğeleri kaldır:"
#: editor/plugins/theme_editor_plugin.cpp
msgid "Remove Class Items"
msgstr "Sınıf Öğelerini Kaldır"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Remove Custom Items"
-msgstr "Sınıf Öğelerini Kaldır"
+msgstr "Özel Öğeleri Kaldır"
#: editor/plugins/theme_editor_plugin.cpp
msgid "Remove All Items"
msgstr "Bütün Öğeleri Kaldır"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Add Theme Item"
-msgstr "Grafik Arayüzü Tema Öğeleri"
+msgstr "Tema Öğesi Ekle"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Old Name:"
-msgstr "Düğüm adı:"
+msgstr "Eski ad:"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Import Items"
-msgstr "Kalıbı İçe Aktar"
+msgstr "Öğeleri İçe Aktar"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Default Theme"
-msgstr "Varsayılan"
+msgstr "Varsayılan tema"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Editor Theme"
-msgstr "Tema düzenle"
+msgstr "Editör Teması"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Select Another Theme Resource:"
-msgstr "Kaynağı Sil"
+msgstr "Başka Bir Tema Kaynağı Seçin:"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Another Theme"
-msgstr "Kalıbı İçe Aktar"
+msgstr "BaÅŸka Bir Tema"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Confirm Item Rename"
-msgstr "Animasyon İzini Yeniden Adlandır"
+msgstr "Öğeyi Yeniden Adlandırmayı Onayla"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Cancel Item Rename"
-msgstr "Tümden Yeniden Adlandır"
+msgstr "Öğe Yeniden Adlandırmayı İptal Et"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Override Item"
-msgstr "Üzerine Yaz"
+msgstr "Öğeyi Geçersiz Kıl"
#: editor/plugins/theme_editor_plugin.cpp
+#, fuzzy
msgid "Unpin this StyleBox as a main style."
-msgstr ""
+msgstr "Bu Stil Kutusunun ana stil olarak sabitlemesini kaldırın."
#: editor/plugins/theme_editor_plugin.cpp
msgid ""
"Pin this StyleBox as a main style. Editing its properties will update the "
"same properties in all other StyleBoxes of this type."
msgstr ""
+"Bu Stil Kutusunu ana stil olarak sabitleyin. Özelliklerini düzenlemek, bu "
+"tipteki diğer tüm StyleBox'larda aynı özellikleri güncelleyecektir."
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Add Type"
-msgstr "Tür"
+msgstr "Tür Ekle"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Add Item Type"
-msgstr "Öğe Ekle"
+msgstr "Öğe Türü Ekle"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Node Types:"
-msgstr "Düğüm Türü"
+msgstr "Düğüm Türleri:"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Show Default"
-msgstr "Varsayılanı Yükle"
+msgstr "Varsayılanı Göster"
#: editor/plugins/theme_editor_plugin.cpp
msgid "Show default type items alongside items that have been overridden."
-msgstr ""
+msgstr "Geçersiz kılınan öğelerin yanında varsayılan tür öğelerini göster."
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Override All"
-msgstr "Üzerine Yaz"
+msgstr "Tümünü Geçersiz Kıl"
#: editor/plugins/theme_editor_plugin.cpp
msgid "Override all default type items."
-msgstr ""
+msgstr "Tüm varsayılan tür öğelerini geçersiz kıl."
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Theme:"
-msgstr "Tema"
+msgstr "Tema:"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Manage Items..."
-msgstr "Dışa Aktarım Şablonlarını Yönet..."
+msgstr "Öğeleri Yönet..."
#: editor/plugins/theme_editor_plugin.cpp
msgid "Add, remove, organize and import Theme items."
-msgstr ""
+msgstr "Tema öğeleri ekleyin, kaldırın, düzenleyin ve içe aktarın."
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Add Preview"
-msgstr "Önizleme"
+msgstr "Önizleme Ekle"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Default Preview"
-msgstr "Önizlemeyi Güncelle"
+msgstr "Varsayılan Önizleme"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Select UI Scene:"
-msgstr "Bir Kaynak Örüntü Seçin:"
+msgstr "UI Sahnesi'ni seçin:"
#: editor/plugins/theme_editor_preview.cpp
msgid ""
"Toggle the control picker, allowing to visually select control types for "
"edit."
msgstr ""
+"Düzenleme için kontrol türlerini görsel olarak seçmeye izin vererek kontrol "
+"seçiciyi açın."
#: editor/plugins/theme_editor_preview.cpp
msgid "Toggle Button"
-msgstr "Değiştirme Düğmesi"
+msgstr "Geçiş Düğmesi"
#: editor/plugins/theme_editor_preview.cpp
msgid "Disabled Button"
@@ -12484,6 +12583,16 @@ msgstr "Eğri Noktası Konumu Ayarla"
msgid "Set Portal Point Position"
msgstr "Eğri Noktası Konumu Ayarla"
+#: editor/spatial_editor_gizmos.cpp
+#, fuzzy
+msgid "Set Occluder Sphere Radius"
+msgstr "Silindir Şekli Yarıçapını Değiştir"
+
+#: editor/spatial_editor_gizmos.cpp
+#, fuzzy
+msgid "Set Occluder Sphere Position"
+msgstr "EÄŸriyi Konumda Ayarla"
+
#: modules/csg/csg_gizmos.cpp
msgid "Change Cylinder Radius"
msgstr "Silindir Yarıçapını Değiştir"
@@ -12767,6 +12876,11 @@ msgstr "Işık haritalarını çizme"
msgid "Class name can't be a reserved keyword"
msgstr "Sınıf ismi ayrılmış anahtar kelime olamaz"
+#: modules/mono/csharp_script.cpp
+#, fuzzy
+msgid "Build Solution"
+msgstr "Seçimi Doldur"
+
#: modules/mono/mono_gd/gd_mono_utils.cpp
msgid "End of inner exception stack trace"
msgstr "İç özel durum yığını izlemesinin sonu"
@@ -13251,80 +13365,80 @@ msgstr "Görsel Betikte Ara"
msgid "Get %s"
msgstr "Getir %s"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Package name is missing."
msgstr "Paket ismi eksik."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Package segments must be of non-zero length."
msgstr "Paket segmentleri sıfır olmayan uzunlukta olmalıdır."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "The character '%s' is not allowed in Android application package names."
msgstr "Android uygulama paketi adlarında '% s' karakterine izin verilmiyor."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "A digit cannot be the first character in a package segment."
msgstr "Rakam, paket segmentindeki ilk karakter olamaz."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "The character '%s' cannot be the first character in a package segment."
msgstr "'%s' karakteri bir paket segmentindeki ilk karakter olamaz."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "The package must have at least one '.' separator."
msgstr "Paket en azından bir tane '.' ayıracına sahip olmalıdır."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Select device from the list"
msgstr "Listeden aygıt seç"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Running on %s"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
#, fuzzy
msgid "Exporting APK..."
msgstr "Tümünü Dışa Aktarma"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
#, fuzzy
msgid "Uninstalling..."
msgstr "Kaldır"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
#, fuzzy
msgid "Installing to device, please wait..."
msgstr "Yükleniyor, lütfen bekleyin..."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
#, fuzzy
msgid "Could not install to device: %s"
msgstr "Sahne Örneklenemedi!"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
#, fuzzy
msgid "Running on device..."
msgstr "Çalışan Özel Betik..."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
#, fuzzy
msgid "Could not execute on device."
msgstr "Klasör oluşturulamadı."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Unable to find the 'apksigner' tool."
msgstr "'apksigner' aracı bulunamıyor."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Android build template not installed in the project. Install it from the "
"Project menu."
msgstr ""
"Android derleme şablonu projede yüklü değil. Proje menüsünden yükleyin."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Either Debug Keystore, Debug User AND Debug Password settings must be "
"configured OR none of them."
@@ -13332,13 +13446,13 @@ msgstr ""
"Hata Ayıklama Anahtar Deposu, Hata Ayıklama Kullanıcısı VE Hata Ayıklama "
"Şifresi konfigüre edilmelidir VEYA hiçbiri konfigüre edilmemelidir."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Debug keystore not configured in the Editor Settings nor in the preset."
msgstr ""
"Anahtar deposunda Hata Ayıklayıcı Ayarları'nda veya ön ayarda "
"yapılandırılmamış."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Either Release Keystore, Release User AND Release Password settings must be "
"configured OR none of them."
@@ -13346,50 +13460,50 @@ msgstr ""
"Yayınlama Anahtar Deposu, Yayınlama Kullanıcısı be Yayınlama Şifresi "
"ayarları konfigüre edilmeli VEYA hiçbiri konfigüre edilmemelidir."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Release keystore incorrectly configured in the export preset."
msgstr ""
"Dışa aktarma ön kümesinde yanlış yapılandırılan anahtar deposunu (keystore) "
"serbest bırakın."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "A valid Android SDK path is required in Editor Settings."
msgstr "Editör Ayarlarında geçerli bir Android SDK yolu gerekli."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Invalid Android SDK path in Editor Settings."
msgstr "Editör Ayarlarında geçersiz Android SDK yolu."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Missing 'platform-tools' directory!"
msgstr "Eksik 'platform araçları' dizini!"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Unable to find Android SDK platform-tools' adb command."
msgstr "Android SDK platform-tools'un adb komutu bulunamıyor."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Please check in the Android SDK directory specified in Editor Settings."
msgstr ""
"Lütfen Editör Ayarlarında girilen Android SDK klasörünü kontrol ediniz."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Missing 'build-tools' directory!"
msgstr "Eksik 'inşa-araçları' dizini!"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Unable to find Android SDK build-tools' apksigner command."
msgstr "Android SDK platform-tools'un apksigner komutu bulunamıyor."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Invalid public key for APK expansion."
msgstr "APK genişletmesi için geçersiz ortak anahtar."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Invalid package name:"
msgstr "Geçersiz paket ismi:"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Invalid \"GodotPaymentV3\" module included in the \"android/modules\" "
"project setting (changed in Godot 3.2.2).\n"
@@ -13397,40 +13511,25 @@ msgstr ""
"Geçersiz \"GodotPaymentV3\" modülü \"android/modüller\" proje ayarına dahil "
"edildi (Godot 3.2.2'de deÄŸiÅŸtirildi).\n"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "\"Use Custom Build\" must be enabled to use the plugins."
msgstr ""
"Eklentileri kullanabilmek için \"Özel Derleme Kullan\" seçeneği aktif olmalı."
-#: platform/android/export/export.cpp
-msgid ""
-"\"Degrees Of Freedom\" is only valid when \"Xr Mode\" is \"Oculus Mobile VR"
-"\"."
-msgstr ""
-"\"Özgürlük Derecesi (Degrees Of Freedom)\" sadece \"Xr Modu\" \"Oculus "
-"Mobile VR\" olduğunda geçerlidir."
-
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"\"Hand Tracking\" is only valid when \"Xr Mode\" is \"Oculus Mobile VR\"."
msgstr ""
"\"El Takibi(Hand Tracking)\" sadece \"Xr Modu\" \"Oculus Mobile VR\" "
"olduğunda geçerlidir."
-#: platform/android/export/export.cpp
-msgid ""
-"\"Focus Awareness\" is only valid when \"Xr Mode\" is \"Oculus Mobile VR\"."
-msgstr ""
-"\"Odak Farkındalığı(Focus Awareness)\" yalnızca \"Xr Modu\" \"Oculus Mobil VR"
-"\" olduğunda geçerlidir."
-
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "\"Export AAB\" is only valid when \"Use Custom Build\" is enabled."
msgstr ""
"\"AAB Dışa Aktar\" yalnızca \"Özel Yapı Kullan\" etkinleştirildiğinde "
"geçerlidir."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"'apksigner' could not be found.\n"
"Please check the command is available in the Android SDK build-tools "
@@ -13438,57 +13537,57 @@ msgid ""
"The resulting %s is unsigned."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Signing debug %s..."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
#, fuzzy
msgid "Signing release %s..."
msgstr ""
"Dosyalar Taranıyor,\n"
"Lütfen Bekleyiniz..."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
#, fuzzy
msgid "Could not find keystore, unable to export."
msgstr "Dışa aktarma için şablon açılamadı:"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "'apksigner' returned with error #%d"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
#, fuzzy
msgid "Verifying %s..."
msgstr "Ekliyor %s..."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "'apksigner' verification of %s failed."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
#, fuzzy
msgid "Exporting for Android"
msgstr "Tümünü Dışa Aktarma"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Invalid filename! Android App Bundle requires the *.aab extension."
msgstr "Geçersiz dosya adı! Android Uygulama Paketi *.aab uzantısı gerektirir."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "APK Expansion not compatible with Android App Bundle."
msgstr "APK GeniÅŸletme, Android Uygulama Paketi ile uyumlu deÄŸildir."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Invalid filename! Android APK requires the *.apk extension."
msgstr "Geçersiz dosya adı! Android APK, * .apk uzantısını gerektirir."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Unsupported export format!\n"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Trying to build from a custom built template, but no version info for it "
"exists. Please reinstall from the 'Project' menu."
@@ -13496,7 +13595,7 @@ msgstr ""
"Özel olarak oluşturulmuş bir şablondan oluşturmaya çalışılıyor, ancak bunun "
"için sürüm bilgisi yok. Lütfen 'Proje' menüsünden yeniden yükleyin."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Android build version mismatch:\n"
" Template installed: %s\n"
@@ -13508,26 +13607,26 @@ msgstr ""
" Godot Versiyonu: %s\n"
"Lütfen 'Proje' menüsünden Android derleme şablonunu yeniden yükleyin."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Unable to overwrite res://android/build/res/*.xml files with project name"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
#, fuzzy
msgid "Could not export project files to gradle project\n"
msgstr "Proje yolunda proje.godot alınamadı."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
#, fuzzy
msgid "Could not write expansion package file!"
msgstr "Dosya yazılamadı:"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Building Android Project (gradle)"
msgstr "Android Projesi OluÅŸturma (gradle)"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Building of Android project failed, check output for the error.\n"
"Alternatively visit docs.godotengine.org for Android build documentation."
@@ -13537,11 +13636,11 @@ msgstr ""
"Alternatif olarak, Android derleme dokümantasyonu için docs.godotengine.org "
"adresini ziyaret edin.."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Moving output"
msgstr "Çıktı taşınıyor"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Unable to copy and rename export file, check gradle project directory for "
"outputs."
@@ -13549,24 +13648,24 @@ msgstr ""
"Dışa aktarma dosyası kopyalanamıyor ve yeniden adlandırılamıyor, çıktılar "
"için gradle proje dizinini kontrol edin."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
#, fuzzy
msgid "Package not found: %s"
msgstr "Animasyon bulunamadı: '%s'"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
#, fuzzy
msgid "Creating APK..."
msgstr "Konturlar oluÅŸturuluyor..."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
#, fuzzy
msgid ""
"Could not find template APK to export:\n"
"%s"
msgstr "Dışa aktarma için şablon açılamadı:"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Missing libraries in the export template for the selected architectures: "
"%s.\n"
@@ -13574,21 +13673,21 @@ msgid ""
"architectures in the export preset."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
#, fuzzy
msgid "Adding files..."
msgstr "Ekliyor %s..."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
#, fuzzy
msgid "Could not export project files"
msgstr "Dosya yazılamadı:"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Aligning APK..."
msgstr "APK hizalanıyor ..."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Could not unzip temporary unaligned APK."
msgstr ""
@@ -14125,6 +14224,14 @@ msgstr ""
"NavigationMeshInstance, bir Navigation düğümünün çocuğu ya da torunu "
"olmalıdır. O yalnızca yönlendirme verisi sağlar."
+#: scene/3d/occluder.cpp
+msgid "No shape is set."
+msgstr ""
+
+#: scene/3d/occluder.cpp
+msgid "Only uniform scales are supported."
+msgstr ""
+
#: scene/3d/particles.cpp
msgid ""
"GPU-based particles are not supported by the GLES2 video driver.\n"
@@ -14453,6 +14560,14 @@ msgstr "Geçerli bir uzantı kullanılmalı."
msgid "Enable grid minimap."
msgstr "Izgara haritasını etkinleştir."
+#: scene/gui/nine_patch_rect.cpp
+msgid ""
+"The Tile and Tile Fit options for Axis Stretch properties are only effective "
+"when using the GLES3 rendering backend.\n"
+"The GLES2 backend is currently in use, so these modes will act like Stretch "
+"instead."
+msgstr ""
+
#: scene/gui/popup.cpp
msgid ""
"Popups will hide by default unless you call popup() or any of the popup*() "
@@ -14506,6 +14621,10 @@ msgid "Viewport size must be greater than 0 to render anything."
msgstr ""
"Herhangi bir şeyi işlemek için görüntükapısı boyutu 0'dan büyük olmalıdır."
+#: scene/resources/occluder_shape.cpp
+msgid "OccluderShapeSphere Set Spheres"
+msgstr ""
+
#: scene/resources/visual_shader_nodes.cpp
msgid ""
"The sampler port is connected but not used. Consider changing the source to "
@@ -14559,6 +14678,41 @@ msgstr "uniform için atama."
msgid "Constants cannot be modified."
msgstr "Sabit deÄŸerler deÄŸiÅŸtirilemez."
+#~ msgid "Make Rest Pose (From Bones)"
+#~ msgstr "Dinlenme duruÅŸu oluÅŸtur (kemiklerden)"
+
+#~ msgid "Bottom"
+#~ msgstr "Alt"
+
+#~ msgid "Left"
+#~ msgstr "Sol"
+
+#~ msgid "Right"
+#~ msgstr "SaÄŸ"
+
+#~ msgid "Front"
+#~ msgstr "Ön"
+
+#~ msgid "Rear"
+#~ msgstr "Arka"
+
+#~ msgid "Nameless gizmo"
+#~ msgstr "İsimsiz Gizmo"
+
+#~ msgid ""
+#~ "\"Degrees Of Freedom\" is only valid when \"Xr Mode\" is \"Oculus Mobile "
+#~ "VR\"."
+#~ msgstr ""
+#~ "\"Özgürlük Derecesi (Degrees Of Freedom)\" sadece \"Xr Modu\" \"Oculus "
+#~ "Mobile VR\" olduğunda geçerlidir."
+
+#~ msgid ""
+#~ "\"Focus Awareness\" is only valid when \"Xr Mode\" is \"Oculus Mobile VR"
+#~ "\"."
+#~ msgstr ""
+#~ "\"Odak Farkındalığı(Focus Awareness)\" yalnızca \"Xr Modu\" \"Oculus "
+#~ "Mobil VR\" olduğunda geçerlidir."
+
#~ msgid "Package Contents:"
#~ msgstr "Paket İçerikleri:"
@@ -16496,9 +16650,6 @@ msgstr "Sabit deÄŸerler deÄŸiÅŸtirilemez."
#~ msgid "Images:"
#~ msgstr "Bedizler:"
-#~ msgid "Group"
-#~ msgstr "Öbek"
-
#~ msgid "Sample Conversion Mode: (.wav files):"
#~ msgstr "Örnek Dönüşüm Biçimi: (.wav dizeçleri):"
diff --git a/editor/translations/tt.po b/editor/translations/tt.po
index e7b37069b7..b169cafdc7 100644
--- a/editor/translations/tt.po
+++ b/editor/translations/tt.po
@@ -994,7 +994,7 @@ msgstr ""
msgid "Dependencies"
msgstr ""
-#: editor/dependency_editor.cpp
+#: editor/dependency_editor.cpp editor/editor_resource_picker.cpp
msgid "Resource"
msgstr ""
@@ -1623,13 +1623,13 @@ msgid ""
"Enabled'."
msgstr ""
-#: editor/editor_export.cpp platform/android/export/export.cpp
+#: editor/editor_export.cpp platform/android/export/export_plugin.cpp
#: platform/iphone/export/export.cpp platform/javascript/export/export.cpp
#: platform/osx/export/export.cpp platform/uwp/export/export.cpp
msgid "Custom debug template not found."
msgstr ""
-#: editor/editor_export.cpp platform/android/export/export.cpp
+#: editor/editor_export.cpp platform/android/export/export_plugin.cpp
#: platform/iphone/export/export.cpp platform/javascript/export/export.cpp
#: platform/osx/export/export.cpp platform/uwp/export/export.cpp
msgid "Custom release template not found."
@@ -1999,7 +1999,7 @@ msgstr ""
msgid "(Re)Importing Assets"
msgstr ""
-#: editor/editor_help.cpp editor/plugins/spatial_editor_plugin.cpp
+#: editor/editor_help.cpp
msgid "Top"
msgstr ""
@@ -2477,6 +2477,30 @@ msgid "Current scene not saved. Open anyway?"
msgstr ""
#: editor/editor_node.cpp
+msgid "Can't undo while mouse buttons are pressed."
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "Nothing to undo."
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "Undo: %s"
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "Can't redo while mouse buttons are pressed."
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "Nothing to redo."
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "Redo: %s"
+msgstr ""
+
+#: editor/editor_node.cpp
msgid "Can't reload a scene that was never saved."
msgstr ""
@@ -3100,6 +3124,10 @@ msgid "Merge With Existing"
msgstr ""
#: editor/editor_node.cpp
+msgid "Apply MeshInstance Transforms"
+msgstr ""
+
+#: editor/editor_node.cpp
msgid "Open & Run a Script"
msgstr ""
@@ -3340,6 +3368,10 @@ msgid ""
"property (%s)."
msgstr ""
+#: editor/editor_resource_picker.cpp
+msgid "Quick Load"
+msgstr ""
+
#: editor/editor_resource_picker.cpp editor/property_editor.cpp
msgid "Make Unique"
msgstr ""
@@ -5380,6 +5412,16 @@ msgid "Move CanvasItem \"%s\" to (%d, %d)"
msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Locked"
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Grouped"
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
msgid ""
"Children of containers have their anchors and margins values overridden by "
"their parent."
@@ -6278,7 +6320,11 @@ msgid "Remove Selected Item"
msgstr ""
#: editor/plugins/mesh_library_editor_plugin.cpp
-msgid "Import from Scene"
+msgid "Import from Scene (Ignore Transforms)"
+msgstr ""
+
+#: editor/plugins/mesh_library_editor_plugin.cpp
+msgid "Import from Scene (Apply Transforms)"
msgstr ""
#: editor/plugins/mesh_library_editor_plugin.cpp
@@ -6862,6 +6908,14 @@ msgstr ""
msgid "Flip Portal"
msgstr ""
+#: editor/plugins/room_manager_editor_plugin.cpp
+msgid "Occluder Set Transform"
+msgstr ""
+
+#: editor/plugins/room_manager_editor_plugin.cpp
+msgid "Center Node"
+msgstr ""
+
#: editor/plugins/root_motion_editor_plugin.cpp
msgid "AnimationTree has no path set to an AnimationPlayer"
msgstr ""
@@ -7356,11 +7410,11 @@ msgid "Skeleton2D"
msgstr ""
#: editor/plugins/skeleton_2d_editor_plugin.cpp
-msgid "Make Rest Pose (From Bones)"
+msgid "Reset to Rest Pose"
msgstr ""
#: editor/plugins/skeleton_2d_editor_plugin.cpp
-msgid "Set Bones to Rest Pose"
+msgid "Overwrite Rest Pose"
msgstr ""
#: editor/plugins/skeleton_editor_plugin.cpp
@@ -7388,6 +7442,60 @@ msgid "Perspective"
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Top Orthogonal"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Top Perspective"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Bottom Orthogonal"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Bottom Perspective"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Left Orthogonal"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Right Perspective"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Right Orthogonal"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Front Orthogonal"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Front Perspective"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Rear Orthogonal"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Rear Perspective"
+msgstr ""
+
+#. TRANSLATORS: This will be appended to the view name when Auto Orthogonal is enabled.
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid " [auto]"
+msgstr ""
+
+#. TRANSLATORS: This will be appended to the view name when Portal Occulusion is enabled.
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid " [portals active]"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
msgid "Transform Aborted."
msgstr ""
@@ -7495,42 +7603,22 @@ msgid "Bottom View."
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
-msgid "Bottom"
-msgstr ""
-
-#: editor/plugins/spatial_editor_plugin.cpp
msgid "Left View."
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
-msgid "Left"
-msgstr ""
-
-#: editor/plugins/spatial_editor_plugin.cpp
msgid "Right View."
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
-msgid "Right"
-msgstr ""
-
-#: editor/plugins/spatial_editor_plugin.cpp
msgid "Front View."
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
-msgid "Front"
-msgstr ""
-
-#: editor/plugins/spatial_editor_plugin.cpp
msgid "Rear View."
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
-msgid "Rear"
-msgstr ""
-
-#: editor/plugins/spatial_editor_plugin.cpp
msgid "Align Transform with View"
msgstr ""
@@ -7792,6 +7880,10 @@ msgid "View Portal Culling"
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
+msgid "View Occlusion Culling"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
#: modules/gridmap/grid_map_editor_plugin.cpp
msgid "Settings..."
msgstr ""
@@ -7857,7 +7949,7 @@ msgid "Post"
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
-msgid "Nameless gizmo"
+msgid "Unnamed Gizmo"
msgstr ""
#: editor/plugins/sprite_editor_plugin.cpp
@@ -11757,6 +11849,14 @@ msgstr ""
msgid "Set Portal Point Position"
msgstr ""
+#: editor/spatial_editor_gizmos.cpp
+msgid "Set Occluder Sphere Radius"
+msgstr ""
+
+#: editor/spatial_editor_gizmos.cpp
+msgid "Set Occluder Sphere Position"
+msgstr ""
+
#: modules/csg/csg_gizmos.cpp
msgid "Change Cylinder Radius"
msgstr ""
@@ -12037,6 +12137,10 @@ msgstr ""
msgid "Class name can't be a reserved keyword"
msgstr ""
+#: modules/mono/csharp_script.cpp
+msgid "Build Solution"
+msgstr ""
+
#: modules/mono/mono_gd/gd_mono_utils.cpp
msgid "End of inner exception stack trace"
msgstr ""
@@ -12503,159 +12607,148 @@ msgstr ""
msgid "Get %s"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Package name is missing."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Package segments must be of non-zero length."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "The character '%s' is not allowed in Android application package names."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "A digit cannot be the first character in a package segment."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "The character '%s' cannot be the first character in a package segment."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "The package must have at least one '.' separator."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Select device from the list"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Running on %s"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Exporting APK..."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Uninstalling..."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Installing to device, please wait..."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Could not install to device: %s"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Running on device..."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Could not execute on device."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Unable to find the 'apksigner' tool."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Android build template not installed in the project. Install it from the "
"Project menu."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Either Debug Keystore, Debug User AND Debug Password settings must be "
"configured OR none of them."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Debug keystore not configured in the Editor Settings nor in the preset."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Either Release Keystore, Release User AND Release Password settings must be "
"configured OR none of them."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Release keystore incorrectly configured in the export preset."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "A valid Android SDK path is required in Editor Settings."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Invalid Android SDK path in Editor Settings."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Missing 'platform-tools' directory!"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Unable to find Android SDK platform-tools' adb command."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Please check in the Android SDK directory specified in Editor Settings."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Missing 'build-tools' directory!"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Unable to find Android SDK build-tools' apksigner command."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Invalid public key for APK expansion."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Invalid package name:"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Invalid \"GodotPaymentV3\" module included in the \"android/modules\" "
"project setting (changed in Godot 3.2.2).\n"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "\"Use Custom Build\" must be enabled to use the plugins."
msgstr ""
-#: platform/android/export/export.cpp
-msgid ""
-"\"Degrees Of Freedom\" is only valid when \"Xr Mode\" is \"Oculus Mobile VR"
-"\"."
-msgstr ""
-
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"\"Hand Tracking\" is only valid when \"Xr Mode\" is \"Oculus Mobile VR\"."
msgstr ""
-#: platform/android/export/export.cpp
-msgid ""
-"\"Focus Awareness\" is only valid when \"Xr Mode\" is \"Oculus Mobile VR\"."
-msgstr ""
-
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "\"Export AAB\" is only valid when \"Use Custom Build\" is enabled."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"'apksigner' could not be found.\n"
"Please check the command is available in the Android SDK build-tools "
@@ -12663,57 +12756,57 @@ msgid ""
"The resulting %s is unsigned."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Signing debug %s..."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Signing release %s..."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Could not find keystore, unable to export."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "'apksigner' returned with error #%d"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Verifying %s..."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "'apksigner' verification of %s failed."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Exporting for Android"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Invalid filename! Android App Bundle requires the *.aab extension."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "APK Expansion not compatible with Android App Bundle."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Invalid filename! Android APK requires the *.apk extension."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Unsupported export format!\n"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Trying to build from a custom built template, but no version info for it "
"exists. Please reinstall from the 'Project' menu."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Android build version mismatch:\n"
" Template installed: %s\n"
@@ -12721,54 +12814,54 @@ msgid ""
"Please reinstall Android build template from 'Project' menu."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Unable to overwrite res://android/build/res/*.xml files with project name"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Could not export project files to gradle project\n"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Could not write expansion package file!"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Building Android Project (gradle)"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Building of Android project failed, check output for the error.\n"
"Alternatively visit docs.godotengine.org for Android build documentation."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Moving output"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Unable to copy and rename export file, check gradle project directory for "
"outputs."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Package not found: %s"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Creating APK..."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Could not find template APK to export:\n"
"%s"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Missing libraries in the export template for the selected architectures: "
"%s.\n"
@@ -12776,19 +12869,19 @@ msgid ""
"architectures in the export preset."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Adding files..."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Could not export project files"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Aligning APK..."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Could not unzip temporary unaligned APK."
msgstr ""
@@ -13238,6 +13331,14 @@ msgid ""
"It only provides navigation data."
msgstr ""
+#: scene/3d/occluder.cpp
+msgid "No shape is set."
+msgstr ""
+
+#: scene/3d/occluder.cpp
+msgid "Only uniform scales are supported."
+msgstr ""
+
#: scene/3d/particles.cpp
msgid ""
"GPU-based particles are not supported by the GLES2 video driver.\n"
@@ -13527,6 +13628,14 @@ msgstr ""
msgid "Enable grid minimap."
msgstr ""
+#: scene/gui/nine_patch_rect.cpp
+msgid ""
+"The Tile and Tile Fit options for Axis Stretch properties are only effective "
+"when using the GLES3 rendering backend.\n"
+"The GLES2 backend is currently in use, so these modes will act like Stretch "
+"instead."
+msgstr ""
+
#: scene/gui/popup.cpp
msgid ""
"Popups will hide by default unless you call popup() or any of the popup*() "
@@ -13567,6 +13676,10 @@ msgstr ""
msgid "Viewport size must be greater than 0 to render anything."
msgstr ""
+#: scene/resources/occluder_shape.cpp
+msgid "OccluderShapeSphere Set Spheres"
+msgstr ""
+
#: scene/resources/visual_shader_nodes.cpp
msgid ""
"The sampler port is connected but not used. Consider changing the source to "
diff --git a/editor/translations/tzm.po b/editor/translations/tzm.po
index 8c7d3f272c..b0d9d05525 100644
--- a/editor/translations/tzm.po
+++ b/editor/translations/tzm.po
@@ -992,7 +992,7 @@ msgstr ""
msgid "Dependencies"
msgstr ""
-#: editor/dependency_editor.cpp
+#: editor/dependency_editor.cpp editor/editor_resource_picker.cpp
msgid "Resource"
msgstr ""
@@ -1621,13 +1621,13 @@ msgid ""
"Enabled'."
msgstr ""
-#: editor/editor_export.cpp platform/android/export/export.cpp
+#: editor/editor_export.cpp platform/android/export/export_plugin.cpp
#: platform/iphone/export/export.cpp platform/javascript/export/export.cpp
#: platform/osx/export/export.cpp platform/uwp/export/export.cpp
msgid "Custom debug template not found."
msgstr ""
-#: editor/editor_export.cpp platform/android/export/export.cpp
+#: editor/editor_export.cpp platform/android/export/export_plugin.cpp
#: platform/iphone/export/export.cpp platform/javascript/export/export.cpp
#: platform/osx/export/export.cpp platform/uwp/export/export.cpp
msgid "Custom release template not found."
@@ -1997,7 +1997,7 @@ msgstr ""
msgid "(Re)Importing Assets"
msgstr ""
-#: editor/editor_help.cpp editor/plugins/spatial_editor_plugin.cpp
+#: editor/editor_help.cpp
msgid "Top"
msgstr ""
@@ -2475,6 +2475,30 @@ msgid "Current scene not saved. Open anyway?"
msgstr ""
#: editor/editor_node.cpp
+msgid "Can't undo while mouse buttons are pressed."
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "Nothing to undo."
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "Undo: %s"
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "Can't redo while mouse buttons are pressed."
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "Nothing to redo."
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "Redo: %s"
+msgstr ""
+
+#: editor/editor_node.cpp
msgid "Can't reload a scene that was never saved."
msgstr ""
@@ -3098,6 +3122,10 @@ msgid "Merge With Existing"
msgstr ""
#: editor/editor_node.cpp
+msgid "Apply MeshInstance Transforms"
+msgstr ""
+
+#: editor/editor_node.cpp
msgid "Open & Run a Script"
msgstr ""
@@ -3338,6 +3366,10 @@ msgid ""
"property (%s)."
msgstr ""
+#: editor/editor_resource_picker.cpp
+msgid "Quick Load"
+msgstr ""
+
#: editor/editor_resource_picker.cpp editor/property_editor.cpp
msgid "Make Unique"
msgstr ""
@@ -5378,6 +5410,16 @@ msgid "Move CanvasItem \"%s\" to (%d, %d)"
msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Locked"
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Grouped"
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
msgid ""
"Children of containers have their anchors and margins values overridden by "
"their parent."
@@ -6276,7 +6318,11 @@ msgid "Remove Selected Item"
msgstr ""
#: editor/plugins/mesh_library_editor_plugin.cpp
-msgid "Import from Scene"
+msgid "Import from Scene (Ignore Transforms)"
+msgstr ""
+
+#: editor/plugins/mesh_library_editor_plugin.cpp
+msgid "Import from Scene (Apply Transforms)"
msgstr ""
#: editor/plugins/mesh_library_editor_plugin.cpp
@@ -6860,6 +6906,14 @@ msgstr ""
msgid "Flip Portal"
msgstr ""
+#: editor/plugins/room_manager_editor_plugin.cpp
+msgid "Occluder Set Transform"
+msgstr ""
+
+#: editor/plugins/room_manager_editor_plugin.cpp
+msgid "Center Node"
+msgstr ""
+
#: editor/plugins/root_motion_editor_plugin.cpp
msgid "AnimationTree has no path set to an AnimationPlayer"
msgstr ""
@@ -7354,11 +7408,11 @@ msgid "Skeleton2D"
msgstr ""
#: editor/plugins/skeleton_2d_editor_plugin.cpp
-msgid "Make Rest Pose (From Bones)"
+msgid "Reset to Rest Pose"
msgstr ""
#: editor/plugins/skeleton_2d_editor_plugin.cpp
-msgid "Set Bones to Rest Pose"
+msgid "Overwrite Rest Pose"
msgstr ""
#: editor/plugins/skeleton_editor_plugin.cpp
@@ -7386,6 +7440,60 @@ msgid "Perspective"
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Top Orthogonal"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Top Perspective"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Bottom Orthogonal"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Bottom Perspective"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Left Orthogonal"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Right Perspective"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Right Orthogonal"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Front Orthogonal"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Front Perspective"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Rear Orthogonal"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Rear Perspective"
+msgstr ""
+
+#. TRANSLATORS: This will be appended to the view name when Auto Orthogonal is enabled.
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid " [auto]"
+msgstr ""
+
+#. TRANSLATORS: This will be appended to the view name when Portal Occulusion is enabled.
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid " [portals active]"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
msgid "Transform Aborted."
msgstr ""
@@ -7493,42 +7601,22 @@ msgid "Bottom View."
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
-msgid "Bottom"
-msgstr ""
-
-#: editor/plugins/spatial_editor_plugin.cpp
msgid "Left View."
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
-msgid "Left"
-msgstr ""
-
-#: editor/plugins/spatial_editor_plugin.cpp
msgid "Right View."
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
-msgid "Right"
-msgstr ""
-
-#: editor/plugins/spatial_editor_plugin.cpp
msgid "Front View."
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
-msgid "Front"
-msgstr ""
-
-#: editor/plugins/spatial_editor_plugin.cpp
msgid "Rear View."
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
-msgid "Rear"
-msgstr ""
-
-#: editor/plugins/spatial_editor_plugin.cpp
msgid "Align Transform with View"
msgstr ""
@@ -7790,6 +7878,10 @@ msgid "View Portal Culling"
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
+msgid "View Occlusion Culling"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
#: modules/gridmap/grid_map_editor_plugin.cpp
msgid "Settings..."
msgstr ""
@@ -7855,7 +7947,7 @@ msgid "Post"
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
-msgid "Nameless gizmo"
+msgid "Unnamed Gizmo"
msgstr ""
#: editor/plugins/sprite_editor_plugin.cpp
@@ -11755,6 +11847,14 @@ msgstr ""
msgid "Set Portal Point Position"
msgstr ""
+#: editor/spatial_editor_gizmos.cpp
+msgid "Set Occluder Sphere Radius"
+msgstr ""
+
+#: editor/spatial_editor_gizmos.cpp
+msgid "Set Occluder Sphere Position"
+msgstr ""
+
#: modules/csg/csg_gizmos.cpp
msgid "Change Cylinder Radius"
msgstr ""
@@ -12035,6 +12135,10 @@ msgstr ""
msgid "Class name can't be a reserved keyword"
msgstr ""
+#: modules/mono/csharp_script.cpp
+msgid "Build Solution"
+msgstr ""
+
#: modules/mono/mono_gd/gd_mono_utils.cpp
msgid "End of inner exception stack trace"
msgstr ""
@@ -12501,159 +12605,148 @@ msgstr ""
msgid "Get %s"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Package name is missing."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Package segments must be of non-zero length."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "The character '%s' is not allowed in Android application package names."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "A digit cannot be the first character in a package segment."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "The character '%s' cannot be the first character in a package segment."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "The package must have at least one '.' separator."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Select device from the list"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Running on %s"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Exporting APK..."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Uninstalling..."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Installing to device, please wait..."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Could not install to device: %s"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Running on device..."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Could not execute on device."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Unable to find the 'apksigner' tool."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Android build template not installed in the project. Install it from the "
"Project menu."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Either Debug Keystore, Debug User AND Debug Password settings must be "
"configured OR none of them."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Debug keystore not configured in the Editor Settings nor in the preset."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Either Release Keystore, Release User AND Release Password settings must be "
"configured OR none of them."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Release keystore incorrectly configured in the export preset."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "A valid Android SDK path is required in Editor Settings."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Invalid Android SDK path in Editor Settings."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Missing 'platform-tools' directory!"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Unable to find Android SDK platform-tools' adb command."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Please check in the Android SDK directory specified in Editor Settings."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Missing 'build-tools' directory!"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Unable to find Android SDK build-tools' apksigner command."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Invalid public key for APK expansion."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Invalid package name:"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Invalid \"GodotPaymentV3\" module included in the \"android/modules\" "
"project setting (changed in Godot 3.2.2).\n"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "\"Use Custom Build\" must be enabled to use the plugins."
msgstr ""
-#: platform/android/export/export.cpp
-msgid ""
-"\"Degrees Of Freedom\" is only valid when \"Xr Mode\" is \"Oculus Mobile VR"
-"\"."
-msgstr ""
-
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"\"Hand Tracking\" is only valid when \"Xr Mode\" is \"Oculus Mobile VR\"."
msgstr ""
-#: platform/android/export/export.cpp
-msgid ""
-"\"Focus Awareness\" is only valid when \"Xr Mode\" is \"Oculus Mobile VR\"."
-msgstr ""
-
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "\"Export AAB\" is only valid when \"Use Custom Build\" is enabled."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"'apksigner' could not be found.\n"
"Please check the command is available in the Android SDK build-tools "
@@ -12661,57 +12754,57 @@ msgid ""
"The resulting %s is unsigned."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Signing debug %s..."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Signing release %s..."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Could not find keystore, unable to export."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "'apksigner' returned with error #%d"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Verifying %s..."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "'apksigner' verification of %s failed."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Exporting for Android"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Invalid filename! Android App Bundle requires the *.aab extension."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "APK Expansion not compatible with Android App Bundle."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Invalid filename! Android APK requires the *.apk extension."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Unsupported export format!\n"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Trying to build from a custom built template, but no version info for it "
"exists. Please reinstall from the 'Project' menu."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Android build version mismatch:\n"
" Template installed: %s\n"
@@ -12719,54 +12812,54 @@ msgid ""
"Please reinstall Android build template from 'Project' menu."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Unable to overwrite res://android/build/res/*.xml files with project name"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Could not export project files to gradle project\n"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Could not write expansion package file!"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Building Android Project (gradle)"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Building of Android project failed, check output for the error.\n"
"Alternatively visit docs.godotengine.org for Android build documentation."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Moving output"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Unable to copy and rename export file, check gradle project directory for "
"outputs."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Package not found: %s"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Creating APK..."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Could not find template APK to export:\n"
"%s"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Missing libraries in the export template for the selected architectures: "
"%s.\n"
@@ -12774,19 +12867,19 @@ msgid ""
"architectures in the export preset."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Adding files..."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Could not export project files"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Aligning APK..."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Could not unzip temporary unaligned APK."
msgstr ""
@@ -13236,6 +13329,14 @@ msgid ""
"It only provides navigation data."
msgstr ""
+#: scene/3d/occluder.cpp
+msgid "No shape is set."
+msgstr ""
+
+#: scene/3d/occluder.cpp
+msgid "Only uniform scales are supported."
+msgstr ""
+
#: scene/3d/particles.cpp
msgid ""
"GPU-based particles are not supported by the GLES2 video driver.\n"
@@ -13525,6 +13626,14 @@ msgstr ""
msgid "Enable grid minimap."
msgstr ""
+#: scene/gui/nine_patch_rect.cpp
+msgid ""
+"The Tile and Tile Fit options for Axis Stretch properties are only effective "
+"when using the GLES3 rendering backend.\n"
+"The GLES2 backend is currently in use, so these modes will act like Stretch "
+"instead."
+msgstr ""
+
#: scene/gui/popup.cpp
msgid ""
"Popups will hide by default unless you call popup() or any of the popup*() "
@@ -13565,6 +13674,10 @@ msgstr ""
msgid "Viewport size must be greater than 0 to render anything."
msgstr ""
+#: scene/resources/occluder_shape.cpp
+msgid "OccluderShapeSphere Set Spheres"
+msgstr ""
+
#: scene/resources/visual_shader_nodes.cpp
msgid ""
"The sampler port is connected but not used. Consider changing the source to "
diff --git a/editor/translations/uk.po b/editor/translations/uk.po
index a889e83e19..fd9f2a1b8a 100644
--- a/editor/translations/uk.po
+++ b/editor/translations/uk.po
@@ -21,7 +21,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Ukrainian (Godot Engine)\n"
"POT-Creation-Date: \n"
-"PO-Revision-Date: 2021-08-04 12:10+0000\n"
+"PO-Revision-Date: 2021-08-12 21:32+0000\n"
"Last-Translator: Yuri Chornoivan <yurchor@ukr.net>\n"
"Language-Team: Ukrainian <https://hosted.weblate.org/projects/godot-engine/"
"godot/uk/>\n"
@@ -383,15 +383,13 @@ msgstr "Ð’Ñтавити анімацію"
#. TRANSLATORS: This describes the target of new animation track, will be inserted into another string.
#: editor/animation_track_editor.cpp
-#, fuzzy
msgid "node '%s'"
-msgstr "Ðеможливо відкрити '%s'."
+msgstr "вузол «%s»"
#. TRANSLATORS: This describes the target of new animation track, will be inserted into another string.
#: editor/animation_track_editor.cpp
-#, fuzzy
msgid "animation"
-msgstr "ÐнімаціÑ"
+msgstr "анімаціÑ"
#: editor/animation_track_editor.cpp
msgid "AnimationPlayer can't animate itself, only other players."
@@ -399,9 +397,8 @@ msgstr "AnimationPlayer не може анімувати Ñебе, лише ін
#. TRANSLATORS: This describes the target of new animation track, will be inserted into another string.
#: editor/animation_track_editor.cpp
-#, fuzzy
msgid "property '%s'"
-msgstr "ВлаÑтивоÑті «%s» не Ñ–Ñнує."
+msgstr "влаÑтивіÑть «%s»"
#: editor/animation_track_editor.cpp
msgid "Anim Create & Insert"
@@ -1042,7 +1039,7 @@ msgstr ""
msgid "Dependencies"
msgstr "ЗалежноÑті"
-#: editor/dependency_editor.cpp
+#: editor/dependency_editor.cpp editor/editor_resource_picker.cpp
msgid "Resource"
msgstr "РеÑурÑ"
@@ -1700,13 +1697,13 @@ msgstr ""
"Увімкніть пункт «Імпортувати Pvrtc» у параметрах проєкту або вимкніть пункт "
"«Увімкнено резервні драйвери»."
-#: editor/editor_export.cpp platform/android/export/export.cpp
+#: editor/editor_export.cpp platform/android/export/export_plugin.cpp
#: platform/iphone/export/export.cpp platform/javascript/export/export.cpp
#: platform/osx/export/export.cpp platform/uwp/export/export.cpp
msgid "Custom debug template not found."
msgstr "Ðетипового шаблону діагноÑтики не знайдено."
-#: editor/editor_export.cpp platform/android/export/export.cpp
+#: editor/editor_export.cpp platform/android/export/export_plugin.cpp
#: platform/iphone/export/export.cpp platform/javascript/export/export.cpp
#: platform/osx/export/export.cpp platform/uwp/export/export.cpp
msgid "Custom release template not found."
@@ -2092,7 +2089,7 @@ msgstr ""
msgid "(Re)Importing Assets"
msgstr "Ð†Ð¼Ð¿Ð¾Ñ€Ñ‚ÑƒÐ²Ð°Ð½Ð½Ñ Ñ€ÐµÑурÑів"
-#: editor/editor_help.cpp editor/plugins/spatial_editor_plugin.cpp
+#: editor/editor_help.cpp
msgid "Top"
msgstr "Верхівка"
@@ -2329,6 +2326,9 @@ msgid ""
"Update Continuously is enabled, which can increase power usage. Click to "
"disable it."
msgstr ""
+"ОбертаєтьÑÑ Ð¿Ñ–Ð´ Ñ‡Ð°Ñ Ð¿ÐµÑ€ÐµÐ¼Ð°Ð»ÑŒÐ¾Ð²ÑƒÐ²Ð°Ð½Ð½Ñ Ð²Ñ–ÐºÐ½Ð° редактора.\n"
+"Увімкнено неперервне оновленнÑ, Ñке може призвеÑти до Ð·Ð±Ñ–Ð»ÑŒÑˆÐµÐ½Ð½Ñ ÑÐ¿Ð¾Ð¶Ð¸Ð²Ð°Ð½Ð½Ñ "
+"енергії. Клацніть, щоб вимкнути його."
#: editor/editor_node.cpp
msgid "Spins when the editor window redraws."
@@ -2604,6 +2604,32 @@ msgid "Current scene not saved. Open anyway?"
msgstr "Поточна Ñцена не збережена. Відкрити в будь-Ñкому випадку?"
#: editor/editor_node.cpp
+msgid "Can't undo while mouse buttons are pressed."
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "Nothing to undo."
+msgstr ""
+
+#: editor/editor_node.cpp
+#, fuzzy
+msgid "Undo: %s"
+msgstr "СкаÑувати"
+
+#: editor/editor_node.cpp
+msgid "Can't redo while mouse buttons are pressed."
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "Nothing to redo."
+msgstr ""
+
+#: editor/editor_node.cpp
+#, fuzzy
+msgid "Redo: %s"
+msgstr "Повернути"
+
+#: editor/editor_node.cpp
msgid "Can't reload a scene that was never saved."
msgstr "Ðеможливо перезавантажити Ñцену, Ñку ніколи не зберігали."
@@ -3293,6 +3319,11 @@ msgid "Merge With Existing"
msgstr "Об'єднати з Ñ–Ñнуючим"
#: editor/editor_node.cpp
+#, fuzzy
+msgid "Apply MeshInstance Transforms"
+msgstr "Змінити перетвореннÑ"
+
+#: editor/editor_node.cpp
msgid "Open & Run a Script"
msgstr "Відкрити Ñ– запуÑтити Ñкрипт"
@@ -3550,6 +3581,10 @@ msgstr ""
"Тип вибраного реÑурÑу (%s) не відповідає типу, Ñкий Ñ” очікуваним Ð´Ð»Ñ Ñ†Ñ–Ñ”Ñ— "
"влаÑтивоÑті (%s)."
+#: editor/editor_resource_picker.cpp
+msgid "Quick Load"
+msgstr ""
+
#: editor/editor_resource_picker.cpp editor/property_editor.cpp
msgid "Make Unique"
msgstr "Зробити унікальним"
@@ -3845,14 +3880,12 @@ msgid "Download from:"
msgstr "Джерело отриманнÑ:"
#: editor/export_template_manager.cpp
-#, fuzzy
msgid "Open in Web Browser"
-msgstr "ЗапуÑтити в браузері"
+msgstr "Відкрити у браузері"
#: editor/export_template_manager.cpp
-#, fuzzy
msgid "Copy Mirror URL"
-msgstr "Помилка копіюваннÑ"
+msgstr "Копіювати адреÑу дзеркала"
#: editor/export_template_manager.cpp
msgid "Download and Install"
@@ -5662,6 +5695,18 @@ msgid "Move CanvasItem \"%s\" to (%d, %d)"
msgstr "ПереÑунути CanvasItem «%s» до (%d, %d)"
#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Locked"
+msgstr "Заблокувати позначене"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Grouped"
+msgstr "Групи"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
msgid ""
"Children of containers have their anchors and margins values overridden by "
"their parent."
@@ -6602,7 +6647,13 @@ msgid "Remove Selected Item"
msgstr "Вилучити вибраний елемент"
#: editor/plugins/mesh_library_editor_plugin.cpp
-msgid "Import from Scene"
+#, fuzzy
+msgid "Import from Scene (Ignore Transforms)"
+msgstr "Імпортувати зі Ñцени"
+
+#: editor/plugins/mesh_library_editor_plugin.cpp
+#, fuzzy
+msgid "Import from Scene (Apply Transforms)"
msgstr "Імпортувати зі Ñцени"
#: editor/plugins/mesh_library_editor_plugin.cpp
@@ -7194,6 +7245,16 @@ msgstr "Створити точки"
msgid "Flip Portal"
msgstr "Віддзеркалити портал"
+#: editor/plugins/room_manager_editor_plugin.cpp
+#, fuzzy
+msgid "Occluder Set Transform"
+msgstr "ЗнÑти перетвореннÑ"
+
+#: editor/plugins/room_manager_editor_plugin.cpp
+#, fuzzy
+msgid "Center Node"
+msgstr "Створити вузол"
+
#: editor/plugins/root_motion_editor_plugin.cpp
msgid "AnimationTree has no path set to an AnimationPlayer"
msgstr "AnimationTree не міÑтить вÑтановлено шлÑху до AnimationPlayer"
@@ -7700,12 +7761,14 @@ msgid "Skeleton2D"
msgstr "ПлоÑкий каркаÑ"
#: editor/plugins/skeleton_2d_editor_plugin.cpp
-msgid "Make Rest Pose (From Bones)"
-msgstr "Створити вільну позу (з кіÑток)"
+#, fuzzy
+msgid "Reset to Rest Pose"
+msgstr "Ð’Ñтановити кіÑтки Ð´Ð»Ñ Ð²Ñ–Ð»ÑŒÐ½Ð¾Ñ— пози"
#: editor/plugins/skeleton_2d_editor_plugin.cpp
-msgid "Set Bones to Rest Pose"
-msgstr "Ð’Ñтановити кіÑтки Ð´Ð»Ñ Ð²Ñ–Ð»ÑŒÐ½Ð¾Ñ— пози"
+#, fuzzy
+msgid "Overwrite Rest Pose"
+msgstr "ПерезапиÑати"
#: editor/plugins/skeleton_editor_plugin.cpp
msgid "Create physical bones"
@@ -7732,6 +7795,71 @@ msgid "Perspective"
msgstr "ПерÑпектива"
#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Top Orthogonal"
+msgstr "Ортогонально"
+
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Top Perspective"
+msgstr "ПерÑпектива"
+
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Bottom Orthogonal"
+msgstr "Ортогонально"
+
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Bottom Perspective"
+msgstr "ПерÑпектива"
+
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Left Orthogonal"
+msgstr "Ортогонально"
+
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Right Perspective"
+msgstr "ПерÑпектива"
+
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Right Orthogonal"
+msgstr "Ортогонально"
+
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Front Orthogonal"
+msgstr "Ортогонально"
+
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Front Perspective"
+msgstr "ПерÑпектива"
+
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Rear Orthogonal"
+msgstr "Ортогонально"
+
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Rear Perspective"
+msgstr "ПерÑпектива"
+
+#. TRANSLATORS: This will be appended to the view name when Auto Orthogonal is enabled.
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid " [auto]"
+msgstr ""
+
+#. TRANSLATORS: This will be appended to the view name when Portal Occulusion is enabled.
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid " [portals active]"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
msgid "Transform Aborted."
msgstr "ÐŸÐµÑ€ÐµÑ‚Ð²Ð¾Ñ€ÐµÐ½Ð½Ñ Ð¿ÐµÑ€ÐµÑ€Ð²Ð°Ð½Ð¾."
@@ -7839,42 +7967,22 @@ msgid "Bottom View."
msgstr "ВиглÑд знизу."
#: editor/plugins/spatial_editor_plugin.cpp
-msgid "Bottom"
-msgstr "Знизу"
-
-#: editor/plugins/spatial_editor_plugin.cpp
msgid "Left View."
msgstr "ВиглÑд зліва."
#: editor/plugins/spatial_editor_plugin.cpp
-msgid "Left"
-msgstr "Зліва"
-
-#: editor/plugins/spatial_editor_plugin.cpp
msgid "Right View."
msgstr "ВиглÑд Ñправа."
#: editor/plugins/spatial_editor_plugin.cpp
-msgid "Right"
-msgstr "Справа"
-
-#: editor/plugins/spatial_editor_plugin.cpp
msgid "Front View."
msgstr "ВиглÑд Ñпереду."
#: editor/plugins/spatial_editor_plugin.cpp
-msgid "Front"
-msgstr "Спереду"
-
-#: editor/plugins/spatial_editor_plugin.cpp
msgid "Rear View."
msgstr "ВиглÑд ззаду."
#: editor/plugins/spatial_editor_plugin.cpp
-msgid "Rear"
-msgstr "Ззаду"
-
-#: editor/plugins/spatial_editor_plugin.cpp
msgid "Align Transform with View"
msgstr "ВирівнÑти Ð¿ÐµÑ€ÐµÑ‚Ð²Ð¾Ñ€ÐµÐ½Ð½Ñ Ð· переглÑдом"
@@ -8146,6 +8254,11 @@ msgid "View Portal Culling"
msgstr "ПереглÑнути Ð²Ñ–Ð´Ð±Ñ€Ð°ÐºÐ¾Ð²ÑƒÐ²Ð°Ð½Ð½Ñ Portal"
#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "View Occlusion Culling"
+msgstr "ПереглÑнути Ð²Ñ–Ð´Ð±Ñ€Ð°ÐºÐ¾Ð²ÑƒÐ²Ð°Ð½Ð½Ñ Portal"
+
+#: editor/plugins/spatial_editor_plugin.cpp
#: modules/gridmap/grid_map_editor_plugin.cpp
msgid "Settings..."
msgstr "Параметри…"
@@ -8211,8 +8324,9 @@ msgid "Post"
msgstr "ПіÑлÑ"
#: editor/plugins/spatial_editor_plugin.cpp
-msgid "Nameless gizmo"
-msgstr "Штука без назви"
+#, fuzzy
+msgid "Unnamed Gizmo"
+msgstr "Проєкт без назви"
#: editor/plugins/sprite_editor_plugin.cpp
msgid "Create Mesh2D"
@@ -8671,6 +8785,9 @@ msgid ""
"Select a theme type from the list to edit its items.\n"
"You can add a custom type or import a type with its items from another theme."
msgstr ""
+"Виберіть тип теми зі ÑпиÑку, щоб редагувати його запиÑи.\n"
+"Ви можете додати нетиповий тип або імпортувати тип із його запиÑами з іншої "
+"теми."
#: editor/plugins/theme_editor_plugin.cpp
msgid "Remove All Color Items"
@@ -8701,6 +8818,8 @@ msgid ""
"This theme type is empty.\n"
"Add more items to it manually or by importing from another theme."
msgstr ""
+"Цей тип теми є порожнім.\n"
+"Додайте до нього запиÑи вручну або імпортуваннÑм з іншої теми."
#: editor/plugins/theme_editor_plugin.cpp
msgid "Add Color Item"
@@ -12338,14 +12457,22 @@ msgid "Change Ray Shape Length"
msgstr "Змінити довжину форми променÑ"
#: editor/spatial_editor_gizmos.cpp
-#, fuzzy
msgid "Set Room Point Position"
-msgstr "Задати Ð¿Ð¾Ð»Ð¾Ð¶ÐµÐ½Ð½Ñ Ñ‚Ð¾Ñ‡ÐºÐ¸ кривої"
+msgstr "Задати Ð¿Ð¾Ð»Ð¾Ð¶ÐµÐ½Ð½Ñ Ñ‚Ð¾Ñ‡ÐºÐ¸ кімнати"
#: editor/spatial_editor_gizmos.cpp
-#, fuzzy
msgid "Set Portal Point Position"
-msgstr "Задати Ð¿Ð¾Ð»Ð¾Ð¶ÐµÐ½Ð½Ñ Ñ‚Ð¾Ñ‡ÐºÐ¸ кривої"
+msgstr "Задати Ð¿Ð¾Ð»Ð¾Ð¶ÐµÐ½Ð½Ñ Ñ‚Ð¾Ñ‡ÐºÐ¸ порталу"
+
+#: editor/spatial_editor_gizmos.cpp
+#, fuzzy
+msgid "Set Occluder Sphere Radius"
+msgstr "Змінити Ñ€Ð°Ð´Ñ–ÑƒÑ Ñ„Ð¾Ñ€Ð¼Ð¸ циліндра"
+
+#: editor/spatial_editor_gizmos.cpp
+#, fuzzy
+msgid "Set Occluder Sphere Position"
+msgstr "Ð’Ñтановити криву в позиції"
#: modules/csg/csg_gizmos.cpp
msgid "Change Cylinder Radius"
@@ -12630,6 +12757,11 @@ msgstr "КреÑÐ»ÐµÐ½Ð½Ñ ÐºÐ°Ñ€Ñ‚ оÑвітленнÑ"
msgid "Class name can't be a reserved keyword"
msgstr "Ðазвою клаÑу не може бути зарезервоване ключове Ñлово"
+#: modules/mono/csharp_script.cpp
+#, fuzzy
+msgid "Build Solution"
+msgstr "Заповнити позначене"
+
#: modules/mono/mono_gd/gd_mono_utils.cpp
msgid "End of inner exception stack trace"
msgstr "Кінець траÑÑƒÐ²Ð°Ð½Ð½Ñ Ñтека Ð´Ð»Ñ Ð²Ð½ÑƒÑ‚Ñ€Ñ–ÑˆÐ½ÑŒÐ¾Ð³Ð¾ виключеннÑ"
@@ -13113,69 +13245,69 @@ msgstr "Шукати VisualScript"
msgid "Get %s"
msgstr "Отримати %s"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Package name is missing."
msgstr "Ðе вказано назви пакунка."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Package segments must be of non-zero length."
msgstr "Сегменти пакунка повинні мати ненульову довжину."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "The character '%s' is not allowed in Android application package names."
msgstr ""
"Ðе можна викориÑтовувати у назві пакунка програми на Android Ñимволи «%s»."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "A digit cannot be the first character in a package segment."
msgstr "Цифра не може бути першим Ñимволом у Ñегменті пакунка."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "The character '%s' cannot be the first character in a package segment."
msgstr ""
"Ðе можна викориÑтовувати Ñимвол «%s» Ñк перший Ñимвол назви Ñегмента пакунка."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "The package must have at least one '.' separator."
msgstr "У назві пакунка має бути принаймні один роздільник «.»."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Select device from the list"
msgstr "Вибрати приÑтрій зі ÑпиÑку"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Running on %s"
msgstr "Запущено на %s"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Exporting APK..."
msgstr "ЕкÑÐ¿Ð¾Ñ€Ñ‚ÑƒÐ²Ð°Ð½Ð½Ñ APK…"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Uninstalling..."
msgstr "ВилученнÑ…"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Installing to device, please wait..."
msgstr "Ð’ÑÑ‚Ð°Ð½Ð¾Ð²Ð»ÐµÐ½Ð½Ñ Ð½Ð° приÑтрій. Будь лаÑка, зачекайте..."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Could not install to device: %s"
msgstr "Ðе вдалоÑÑ Ð²Ñтановити на приÑтрій: %s"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Running on device..."
msgstr "ЗапуÑк на приÑтрої…"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Could not execute on device."
msgstr "Ðе вдалоÑÑ Ð²Ð¸ÐºÐ¾Ð½Ð°Ñ‚Ð¸ на приÑтрої."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Unable to find the 'apksigner' tool."
msgstr "Ðе вдалоÑÑ Ð·Ð½Ð°Ð¹Ñ‚Ð¸ програму apksigner."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Android build template not installed in the project. Install it from the "
"Project menu."
@@ -13183,7 +13315,7 @@ msgstr ""
"У проєкті не вÑтановлено шаблон Ð·Ð±Ð¸Ñ€Ð°Ð½Ð½Ñ Android. Ð’Ñтановіть його за "
"допомогою меню «Проєкт»."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Either Debug Keystore, Debug User AND Debug Password settings must be "
"configured OR none of them."
@@ -13191,13 +13323,13 @@ msgstr ""
"Має бути налаштовано діагноÑтику Ñховища ключів, діагноÑтику кориÑтувача ÐБО "
"діагноÑтику Ð¿Ð°Ñ€Ð¾Ð»Ñ ÐБО не налаштовано діагноÑтику жодного з цих компонентів."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Debug keystore not configured in the Editor Settings nor in the preset."
msgstr ""
"ÐÑ– у параметрах редактора, ні у шаблоні не налаштовано діагноÑтичне Ñховище "
"ключів."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Either Release Keystore, Release User AND Release Password settings must be "
"configured OR none of them."
@@ -13205,53 +13337,53 @@ msgstr ""
"Має бути налаштовано параметри Ñховища ключів випуÑку, кориÑтувача випуÑку Ñ– "
"Ð¿Ð°Ñ€Ð¾Ð»Ñ Ð²Ð¸Ð¿ÑƒÑку або не налаштовано жоден з цих параметрів."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Release keystore incorrectly configured in the export preset."
msgstr ""
"У шаблоні екÑÐ¿Ð¾Ñ€Ñ‚ÑƒÐ²Ð°Ð½Ð½Ñ Ð½ÐµÐ¿Ñ€Ð°Ð²Ð¸Ð»ÑŒÐ½Ð¾ налаштовано Ñховище ключів випуÑку."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "A valid Android SDK path is required in Editor Settings."
msgstr ""
"У параметрах редактора має бути вказано коректний шлÑÑ… до SDK Ð´Ð»Ñ Android."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Invalid Android SDK path in Editor Settings."
msgstr "Ðекоректний шлÑÑ… до SDK Ð´Ð»Ñ Android у параметрах редактора."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Missing 'platform-tools' directory!"
msgstr "Ðе знайдено каталогу «platform-tools»!"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Unable to find Android SDK platform-tools' adb command."
msgstr ""
"Ðе вдалоÑÑ Ð·Ð½Ð°Ð¹Ñ‚Ð¸ програми adb із інÑтрументів платформи SDK Ð´Ð»Ñ Android."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Please check in the Android SDK directory specified in Editor Settings."
msgstr ""
"Будь лаÑка, перевірте, чи правильно вказано каталог SDK Ð´Ð»Ñ Android у "
"параметрах редактора."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Missing 'build-tools' directory!"
msgstr "Ðе знайдено каталогу «build-tools»!"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Unable to find Android SDK build-tools' apksigner command."
msgstr ""
"Ðе вдалоÑÑ Ð·Ð½Ð°Ð¹Ñ‚Ð¸ програми apksigner з інÑтрументів Ð·Ð±Ð¸Ñ€Ð°Ð½Ð½Ñ SDK Ð´Ð»Ñ Android."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Invalid public key for APK expansion."
msgstr "Ðекоректний відкритий ключ Ð´Ð»Ñ Ñ€Ð¾Ð·Ð³Ð¾Ñ€Ñ‚Ð°Ð½Ð½Ñ APK."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Invalid package name:"
msgstr "Ðекоректна назва пакунка:"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Invalid \"GodotPaymentV3\" module included in the \"android/modules\" "
"project setting (changed in Godot 3.2.2).\n"
@@ -13259,41 +13391,26 @@ msgstr ""
"Ðекоректний модуль «GodotPaymentV3» включено до параметрів проєкту «android/"
"modules» (змінено у Godot 3.2.2).\n"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "\"Use Custom Build\" must be enabled to use the plugins."
msgstr ""
"Щоб можна було кориÑтуватиÑÑ Ð´Ð¾Ð´Ð°Ñ‚ÐºÐ°Ð¼Ð¸, Ñлід позначити пункт "
"«ВикориÑтовувати нетипову збірку»."
-#: platform/android/export/export.cpp
-msgid ""
-"\"Degrees Of Freedom\" is only valid when \"Xr Mode\" is \"Oculus Mobile VR"
-"\"."
-msgstr ""
-"«.Степені Ñвободи» працюють, лише Ñкщо «Режим Xr» має Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Â«Oculus "
-"Mobile VR»."
-
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"\"Hand Tracking\" is only valid when \"Xr Mode\" is \"Oculus Mobile VR\"."
msgstr ""
"«СтеженнÑм за руками» можна ÑкориÑтатиÑÑ, лише Ñкщо «Режим Xr» дорівнює "
"«Oculus Mobile VR»."
-#: platform/android/export/export.cpp
-msgid ""
-"\"Focus Awareness\" is only valid when \"Xr Mode\" is \"Oculus Mobile VR\"."
-msgstr ""
-"«ВрахуваннÑм фокуÑа» можна ÑкориÑтатиÑÑ, лише Ñкщо «Режим Xr» дорівнює "
-"«Oculus Mobile VR»."
-
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "\"Export AAB\" is only valid when \"Use Custom Build\" is enabled."
msgstr ""
"Пункт «ЕкÑпортувати AAB» Ñ” чинним, лише Ñкщо увімкнено «ВикориÑтовувати "
"нетипове збираннÑ»."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"'apksigner' could not be found.\n"
"Please check the command is available in the Android SDK build-tools "
@@ -13305,54 +13422,54 @@ msgstr ""
"заÑобів Ð´Ð»Ñ Ñ€Ð¾Ð·Ñ€Ð¾Ð±ÐºÐ¸ Android.\n"
"Отриманий у результаті %s не підпиÑано."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Signing debug %s..."
msgstr "ПідпиÑÑƒÐ²Ð°Ð½Ð½Ñ Ð´Ñ–Ð°Ð³Ð½Ð¾Ñтики %s…"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Signing release %s..."
msgstr "ПідпиÑÑƒÐ²Ð°Ð½Ð½Ñ Ð²Ð¸Ð¿ÑƒÑку %s…"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Could not find keystore, unable to export."
msgstr "Ðе вдалоÑÑ Ð·Ð½Ð°Ð¹Ñ‚Ð¸ Ñховище ключів. Ðеможливо виконати екÑпортуваннÑ."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "'apksigner' returned with error #%d"
msgstr "«apksigner» повернуто Ð¿Ð¾Ð²Ñ–Ð´Ð¾Ð¼Ð»ÐµÐ½Ð½Ñ Ð¿Ñ€Ð¾ помилку із номером %d"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Verifying %s..."
msgstr "ПеревірÑємо %s…"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "'apksigner' verification of %s failed."
msgstr "%s не пройдено перевірку за допомогою «apksigner»."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Exporting for Android"
msgstr "ЕкÑпорт на Android"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Invalid filename! Android App Bundle requires the *.aab extension."
msgstr ""
"Ðекоректна назва файла! Пакет програми Android повинен мати ÑÑƒÑ„Ñ–ÐºÑ Ð½Ð°Ð·Ð²Ð¸ *."
"aab."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "APK Expansion not compatible with Android App Bundle."
msgstr "Ð Ð¾Ð·ÑˆÐ¸Ñ€ÐµÐ½Ð½Ñ APK Ñ” неÑуміÑним із Android App Bundle."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Invalid filename! Android APK requires the *.apk extension."
msgstr ""
"Ðекоректна назва файла! Пакунок Android APK повинен мати ÑÑƒÑ„Ñ–ÐºÑ Ð½Ð°Ð·Ð²Ð¸ *.apk."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Unsupported export format!\n"
msgstr "Ðепідтримуваний формат екÑпортуваннÑ!\n"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Trying to build from a custom built template, but no version info for it "
"exists. Please reinstall from the 'Project' menu."
@@ -13361,7 +13478,7 @@ msgstr ""
"виÑвлено даних щодо верÑÑ–Ñ—. Будь лаÑка, повторно вÑтановіть шаблон за "
"допомогою меню «Проєкт»."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Android build version mismatch:\n"
" Template installed: %s\n"
@@ -13374,25 +13491,25 @@ msgstr ""
"Будь лаÑка, повторно вÑтановіть шаблон Ð´Ð»Ñ Ð·Ð±Ð¸Ñ€Ð°Ð½Ð½Ñ Ð´Ð»Ñ Android за допомогою "
"меню «Проєкт»."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Unable to overwrite res://android/build/res/*.xml files with project name"
msgstr ""
"Ðе вдалоÑÑ Ð¿ÐµÑ€ÐµÐ·Ð°Ð¿Ð¸Ñати файли res://android/build/res/*.xml із назвою проєкту"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Could not export project files to gradle project\n"
msgstr "Ðе вдалоÑÑ ÐµÐºÑпортувати файли проєкту до проєкту gradle\n"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Could not write expansion package file!"
msgstr "Ðе вдалоÑÑ Ð·Ð°Ð¿Ð¸Ñати файл пакунка розширеннÑ!"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Building Android Project (gradle)"
msgstr "Ð—Ð±Ð¸Ñ€Ð°Ð½Ð½Ñ Ð¿Ñ€Ð¾Ñ”ÐºÑ‚Ñƒ Android (gradle)"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Building of Android project failed, check output for the error.\n"
"Alternatively visit docs.godotengine.org for Android build documentation."
@@ -13402,11 +13519,11 @@ msgstr ""
"Крім того, можете відвідати docs.godotengine.org Ñ– ознайомитиÑÑ Ñ–Ð· "
"документацією щодо Ð·Ð±Ð¸Ñ€Ð°Ð½Ð½Ñ Ð´Ð»Ñ Android."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Moving output"
msgstr "ПереÑÑƒÐ²Ð°Ð½Ð½Ñ Ð²Ð¸Ð²ÐµÐ´ÐµÐ½Ð¸Ñ… даних"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Unable to copy and rename export file, check gradle project directory for "
"outputs."
@@ -13414,15 +13531,15 @@ msgstr ""
"Ðе вдалоÑÑ Ñкопіювати Ñ– перейменувати файл екÑпортованих даних. Виведені "
"дані можна знайти у каталозі проєкту gradle."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Package not found: %s"
msgstr "Пакунок не знайдено: %s"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Creating APK..."
msgstr "Ð¡Ñ‚Ð²Ð¾Ñ€ÐµÐ½Ð½Ñ APK…"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Could not find template APK to export:\n"
"%s"
@@ -13430,7 +13547,7 @@ msgstr ""
"Ðе вдалоÑÑ Ð·Ð½Ð°Ð¹Ñ‚Ð¸ шаблон APK Ð´Ð»Ñ ÐµÐºÑпортуваннÑ:\n"
"%s"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Missing libraries in the export template for the selected architectures: "
"%s.\n"
@@ -13441,19 +13558,19 @@ msgstr ""
"Будь лаÑка, Ñтворіть шаблон з уÑіма необхідними бібліотеками або зніміть "
"позначку з архітектур із пропущеними бібліотеками у Ñтилі екÑпортуваннÑ."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Adding files..."
msgstr "Ð”Ð¾Ð´Ð°Ð²Ð°Ð½Ð½Ñ Ñ„Ð°Ð¹Ð»Ñ–Ð²â€¦"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Could not export project files"
msgstr "Ðе вдалоÑÑ ÐµÐºÑпортувати файли проєкту"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Aligning APK..."
msgstr "Вирівнюємо APK..."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Could not unzip temporary unaligned APK."
msgstr "Ðе вдалоÑÑ Ñ€Ð¾Ð·Ð¿Ð°ÐºÑƒÐ²Ð°Ñ‚Ð¸ тимчаÑовий невирівнÑний APK."
@@ -14000,6 +14117,14 @@ msgstr ""
"NavigationMeshInstance має бути дочірнім елементом вузла Navigation або "
"елементом ще нижчої підпорÑдкованоÑті. Він надає лише навігаційні дані."
+#: scene/3d/occluder.cpp
+msgid "No shape is set."
+msgstr ""
+
+#: scene/3d/occluder.cpp
+msgid "Only uniform scales are supported."
+msgstr ""
+
#: scene/3d/particles.cpp
msgid ""
"GPU-based particles are not supported by the GLES2 video driver.\n"
@@ -14144,36 +14269,50 @@ msgid ""
"RoomList path is invalid.\n"
"Please check the RoomList branch has been assigned in the RoomManager."
msgstr ""
+"ШлÑÑ… RoomList Ñ” некоректним.\n"
+"Будь лаÑка, перевірте, що у RoomManager вказано Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ð³Ñ–Ð»ÐºÐ¸ RoomList."
#: scene/3d/room_manager.cpp
msgid "RoomList contains no Rooms, aborting."
-msgstr ""
+msgstr "RoomList не міÑтить запиÑів кімнат, перериваємо обробку."
#: scene/3d/room_manager.cpp
msgid "Misnamed nodes detected, check output log for details. Aborting."
msgstr ""
+"ВиÑвлено вузли із помилковими назвами. ОзнайомтеÑÑ Ñ–Ð· запиÑами журналу, щоб "
+"дізнатиÑÑ Ð±Ñ–Ð»ÑŒÑˆÐµ. Перериваємо обробку."
#: scene/3d/room_manager.cpp
msgid "Portal link room not found, check output log for details."
msgstr ""
+"Ðе виÑвлено кімнати поÑÐ¸Ð»Ð°Ð½Ð½Ñ Ð½Ð° портал. ОзнайомтеÑÑ Ñ–Ð· журналом, щоб "
+"дізнатиÑÑ Ð±Ñ–Ð»ÑŒÑˆÐµ."
#: scene/3d/room_manager.cpp
msgid ""
"Portal autolink failed, check output log for details.\n"
"Check the portal is facing outwards from the source room."
msgstr ""
+"Помилка під Ñ‡Ð°Ñ Ñпроби автоматично пов'Ñзати портал. ОзнайомтеÑÑ Ñ–Ð· "
+"журналом, щоб дізнатиÑÑ Ð±Ñ–Ð»ÑŒÑˆÐµ.\n"
+"Перевірте, чи веде портал назовні щодо початкової кімнати."
#: scene/3d/room_manager.cpp
msgid ""
"Room overlap detected, cameras may work incorrectly in overlapping area.\n"
"Check output log for details."
msgstr ""
+"ВиÑвлено Ð¿ÐµÑ€ÐµÐºÑ€Ð¸Ñ‚Ñ‚Ñ ÐºÑ–Ð¼Ð½Ð°Ñ‚. У облаÑті Ð¿ÐµÑ€ÐµÐºÑ€Ð¸Ñ‚Ñ‚Ñ ÐºÐ°Ð¼ÐµÑ€Ð¸ можуть працювати із "
+"помилками.\n"
+"ОзнайомтеÑÑ Ñ–Ð· журналом, щоб дізнатиÑÑ Ð±Ñ–Ð»ÑŒÑˆÐµ."
#: scene/3d/room_manager.cpp
msgid ""
"Error calculating room bounds.\n"
"Ensure all rooms contain geometry or manual bounds."
msgstr ""
+"Помилка під Ñ‡Ð°Ñ Ñпроби обчиÑлити межі кімнат.\n"
+"ПереконайтеÑÑ, що Ð´Ð»Ñ ÑƒÑÑ–Ñ… кімнат вказано межі вручну або геометричні межі."
#: scene/3d/soft_body.cpp
msgid "This body will be ignored until you set a mesh."
@@ -14340,6 +14479,14 @@ msgstr "Ðеобхідно викориÑтовувати допуÑтиме Ñ€Ð
msgid "Enable grid minimap."
msgstr "Увімкнути мінікарту ґратки."
+#: scene/gui/nine_patch_rect.cpp
+msgid ""
+"The Tile and Tile Fit options for Axis Stretch properties are only effective "
+"when using the GLES3 rendering backend.\n"
+"The GLES2 backend is currently in use, so these modes will act like Stretch "
+"instead."
+msgstr ""
+
#: scene/gui/popup.cpp
msgid ""
"Popups will hide by default unless you call popup() or any of the popup*() "
@@ -14395,6 +14542,10 @@ msgstr ""
"Щоб програма могла хоч щоÑÑŒ показати, розмір Ð¿Ð¾Ð»Ñ Ð¿ÐµÑ€ÐµÐ³Ð»Ñду має бути більшим "
"за 0."
+#: scene/resources/occluder_shape.cpp
+msgid "OccluderShapeSphere Set Spheres"
+msgstr ""
+
#: scene/resources/visual_shader_nodes.cpp
msgid ""
"The sampler port is connected but not used. Consider changing the source to "
@@ -14453,6 +14604,41 @@ msgstr "ÐŸÑ€Ð¸Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ð¾Ð´Ð½Ð¾Ñ€Ñ–Ð´Ð½Ð¾Ð³Ð¾."
msgid "Constants cannot be modified."
msgstr "Сталі не можна змінювати."
+#~ msgid "Make Rest Pose (From Bones)"
+#~ msgstr "Створити вільну позу (з кіÑток)"
+
+#~ msgid "Bottom"
+#~ msgstr "Знизу"
+
+#~ msgid "Left"
+#~ msgstr "Зліва"
+
+#~ msgid "Right"
+#~ msgstr "Справа"
+
+#~ msgid "Front"
+#~ msgstr "Спереду"
+
+#~ msgid "Rear"
+#~ msgstr "Ззаду"
+
+#~ msgid "Nameless gizmo"
+#~ msgstr "Штука без назви"
+
+#~ msgid ""
+#~ "\"Degrees Of Freedom\" is only valid when \"Xr Mode\" is \"Oculus Mobile "
+#~ "VR\"."
+#~ msgstr ""
+#~ "«.Степені Ñвободи» працюють, лише Ñкщо «Режим Xr» має Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Â«Oculus "
+#~ "Mobile VR»."
+
+#~ msgid ""
+#~ "\"Focus Awareness\" is only valid when \"Xr Mode\" is \"Oculus Mobile VR"
+#~ "\"."
+#~ msgstr ""
+#~ "«ВрахуваннÑм фокуÑа» можна ÑкориÑтатиÑÑ, лише Ñкщо «Режим Xr» дорівнює "
+#~ "«Oculus Mobile VR»."
+
#~ msgid "Package Contents:"
#~ msgstr "ВміÑÑ‚ пакунка:"
diff --git a/editor/translations/ur_PK.po b/editor/translations/ur_PK.po
index fb70bc5703..332f5bd681 100644
--- a/editor/translations/ur_PK.po
+++ b/editor/translations/ur_PK.po
@@ -1014,7 +1014,7 @@ msgstr ""
msgid "Dependencies"
msgstr ""
-#: editor/dependency_editor.cpp
+#: editor/dependency_editor.cpp editor/editor_resource_picker.cpp
msgid "Resource"
msgstr ""
@@ -1649,13 +1649,13 @@ msgid ""
"Enabled'."
msgstr ""
-#: editor/editor_export.cpp platform/android/export/export.cpp
+#: editor/editor_export.cpp platform/android/export/export_plugin.cpp
#: platform/iphone/export/export.cpp platform/javascript/export/export.cpp
#: platform/osx/export/export.cpp platform/uwp/export/export.cpp
msgid "Custom debug template not found."
msgstr ""
-#: editor/editor_export.cpp platform/android/export/export.cpp
+#: editor/editor_export.cpp platform/android/export/export_plugin.cpp
#: platform/iphone/export/export.cpp platform/javascript/export/export.cpp
#: platform/osx/export/export.cpp platform/uwp/export/export.cpp
msgid "Custom release template not found."
@@ -2042,7 +2042,7 @@ msgstr ""
msgid "(Re)Importing Assets"
msgstr ""
-#: editor/editor_help.cpp editor/plugins/spatial_editor_plugin.cpp
+#: editor/editor_help.cpp
msgid "Top"
msgstr ""
@@ -2528,6 +2528,30 @@ msgid "Current scene not saved. Open anyway?"
msgstr ""
#: editor/editor_node.cpp
+msgid "Can't undo while mouse buttons are pressed."
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "Nothing to undo."
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "Undo: %s"
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "Can't redo while mouse buttons are pressed."
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "Nothing to redo."
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "Redo: %s"
+msgstr ""
+
+#: editor/editor_node.cpp
msgid "Can't reload a scene that was never saved."
msgstr ""
@@ -3162,6 +3186,10 @@ msgid "Merge With Existing"
msgstr ""
#: editor/editor_node.cpp
+msgid "Apply MeshInstance Transforms"
+msgstr ""
+
+#: editor/editor_node.cpp
msgid "Open & Run a Script"
msgstr ""
@@ -3406,6 +3434,10 @@ msgid ""
"property (%s)."
msgstr ""
+#: editor/editor_resource_picker.cpp
+msgid "Quick Load"
+msgstr ""
+
#: editor/editor_resource_picker.cpp editor/property_editor.cpp
msgid "Make Unique"
msgstr ""
@@ -5510,6 +5542,18 @@ msgid "Move CanvasItem \"%s\" to (%d, %d)"
msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Locked"
+msgstr ".تمام کا انتخاب"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Grouped"
+msgstr ".تمام کا انتخاب"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
msgid ""
"Children of containers have their anchors and margins values overridden by "
"their parent."
@@ -6435,7 +6479,11 @@ msgid "Remove Selected Item"
msgstr ""
#: editor/plugins/mesh_library_editor_plugin.cpp
-msgid "Import from Scene"
+msgid "Import from Scene (Ignore Transforms)"
+msgstr ""
+
+#: editor/plugins/mesh_library_editor_plugin.cpp
+msgid "Import from Scene (Apply Transforms)"
msgstr ""
#: editor/plugins/mesh_library_editor_plugin.cpp
@@ -7035,6 +7083,15 @@ msgstr ".تمام کا انتخاب"
msgid "Flip Portal"
msgstr ""
+#: editor/plugins/room_manager_editor_plugin.cpp
+msgid "Occluder Set Transform"
+msgstr ""
+
+#: editor/plugins/room_manager_editor_plugin.cpp
+#, fuzzy
+msgid "Center Node"
+msgstr ".اینیمیشن کی کیز کو ڈیلیٹ کرو"
+
#: editor/plugins/root_motion_editor_plugin.cpp
msgid "AnimationTree has no path set to an AnimationPlayer"
msgstr ""
@@ -7541,11 +7598,12 @@ msgid "Skeleton2D"
msgstr ""
#: editor/plugins/skeleton_2d_editor_plugin.cpp
-msgid "Make Rest Pose (From Bones)"
-msgstr ""
+#, fuzzy
+msgid "Reset to Rest Pose"
+msgstr "سب سکریپشن بنائیں"
#: editor/plugins/skeleton_2d_editor_plugin.cpp
-msgid "Set Bones to Rest Pose"
+msgid "Overwrite Rest Pose"
msgstr ""
#: editor/plugins/skeleton_editor_plugin.cpp
@@ -7574,6 +7632,60 @@ msgid "Perspective"
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Top Orthogonal"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Top Perspective"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Bottom Orthogonal"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Bottom Perspective"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Left Orthogonal"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Right Perspective"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Right Orthogonal"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Front Orthogonal"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Front Perspective"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Rear Orthogonal"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Rear Perspective"
+msgstr ""
+
+#. TRANSLATORS: This will be appended to the view name when Auto Orthogonal is enabled.
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid " [auto]"
+msgstr ""
+
+#. TRANSLATORS: This will be appended to the view name when Portal Occulusion is enabled.
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid " [portals active]"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
msgid "Transform Aborted."
msgstr ""
@@ -7684,42 +7796,22 @@ msgid "Bottom View."
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
-msgid "Bottom"
-msgstr ""
-
-#: editor/plugins/spatial_editor_plugin.cpp
msgid "Left View."
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
-msgid "Left"
-msgstr ""
-
-#: editor/plugins/spatial_editor_plugin.cpp
msgid "Right View."
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
-msgid "Right"
-msgstr ""
-
-#: editor/plugins/spatial_editor_plugin.cpp
msgid "Front View."
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
-msgid "Front"
-msgstr ""
-
-#: editor/plugins/spatial_editor_plugin.cpp
msgid "Rear View."
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
-msgid "Rear"
-msgstr ""
-
-#: editor/plugins/spatial_editor_plugin.cpp
#, fuzzy
msgid "Align Transform with View"
msgstr ".تمام کا انتخاب"
@@ -7986,6 +8078,11 @@ msgid "View Portal Culling"
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "View Occlusion Culling"
+msgstr "سب سکریپشن بنائیں"
+
+#: editor/plugins/spatial_editor_plugin.cpp
#: modules/gridmap/grid_map_editor_plugin.cpp
msgid "Settings..."
msgstr ""
@@ -8051,7 +8148,7 @@ msgid "Post"
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
-msgid "Nameless gizmo"
+msgid "Unnamed Gizmo"
msgstr ""
#: editor/plugins/sprite_editor_plugin.cpp
@@ -12100,6 +12197,15 @@ msgstr ".تمام کا انتخاب"
msgid "Set Portal Point Position"
msgstr ".تمام کا انتخاب"
+#: editor/spatial_editor_gizmos.cpp
+msgid "Set Occluder Sphere Radius"
+msgstr ""
+
+#: editor/spatial_editor_gizmos.cpp
+#, fuzzy
+msgid "Set Occluder Sphere Position"
+msgstr ".تمام کا انتخاب"
+
#: modules/csg/csg_gizmos.cpp
msgid "Change Cylinder Radius"
msgstr ""
@@ -12392,6 +12498,11 @@ msgstr ""
msgid "Class name can't be a reserved keyword"
msgstr ""
+#: modules/mono/csharp_script.cpp
+#, fuzzy
+msgid "Build Solution"
+msgstr ".تمام کا انتخاب"
+
#: modules/mono/mono_gd/gd_mono_utils.cpp
msgid "End of inner exception stack trace"
msgstr ""
@@ -12880,162 +12991,151 @@ msgstr "سب سکریپشن بنائیں"
msgid "Get %s"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Package name is missing."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Package segments must be of non-zero length."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "The character '%s' is not allowed in Android application package names."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "A digit cannot be the first character in a package segment."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "The character '%s' cannot be the first character in a package segment."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "The package must have at least one '.' separator."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Select device from the list"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Running on %s"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
#, fuzzy
msgid "Exporting APK..."
msgstr ".سپورٹ"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Uninstalling..."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Installing to device, please wait..."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
#, fuzzy
msgid "Could not install to device: %s"
msgstr "سب سکریپشن بنائیں"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Running on device..."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
#, fuzzy
msgid "Could not execute on device."
msgstr "سب سکریپشن بنائیں"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Unable to find the 'apksigner' tool."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Android build template not installed in the project. Install it from the "
"Project menu."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Either Debug Keystore, Debug User AND Debug Password settings must be "
"configured OR none of them."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Debug keystore not configured in the Editor Settings nor in the preset."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Either Release Keystore, Release User AND Release Password settings must be "
"configured OR none of them."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Release keystore incorrectly configured in the export preset."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "A valid Android SDK path is required in Editor Settings."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Invalid Android SDK path in Editor Settings."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Missing 'platform-tools' directory!"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Unable to find Android SDK platform-tools' adb command."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Please check in the Android SDK directory specified in Editor Settings."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Missing 'build-tools' directory!"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Unable to find Android SDK build-tools' apksigner command."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Invalid public key for APK expansion."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Invalid package name:"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Invalid \"GodotPaymentV3\" module included in the \"android/modules\" "
"project setting (changed in Godot 3.2.2).\n"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "\"Use Custom Build\" must be enabled to use the plugins."
msgstr ""
-#: platform/android/export/export.cpp
-msgid ""
-"\"Degrees Of Freedom\" is only valid when \"Xr Mode\" is \"Oculus Mobile VR"
-"\"."
-msgstr ""
-
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"\"Hand Tracking\" is only valid when \"Xr Mode\" is \"Oculus Mobile VR\"."
msgstr ""
-#: platform/android/export/export.cpp
-msgid ""
-"\"Focus Awareness\" is only valid when \"Xr Mode\" is \"Oculus Mobile VR\"."
-msgstr ""
-
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "\"Export AAB\" is only valid when \"Use Custom Build\" is enabled."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"'apksigner' could not be found.\n"
"Please check the command is available in the Android SDK build-tools "
@@ -13043,57 +13143,57 @@ msgid ""
"The resulting %s is unsigned."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Signing debug %s..."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Signing release %s..."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Could not find keystore, unable to export."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "'apksigner' returned with error #%d"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Verifying %s..."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "'apksigner' verification of %s failed."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Exporting for Android"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Invalid filename! Android App Bundle requires the *.aab extension."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "APK Expansion not compatible with Android App Bundle."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Invalid filename! Android APK requires the *.apk extension."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Unsupported export format!\n"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Trying to build from a custom built template, but no version info for it "
"exists. Please reinstall from the 'Project' menu."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Android build version mismatch:\n"
" Template installed: %s\n"
@@ -13101,55 +13201,55 @@ msgid ""
"Please reinstall Android build template from 'Project' menu."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Unable to overwrite res://android/build/res/*.xml files with project name"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Could not export project files to gradle project\n"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
#, fuzzy
msgid "Could not write expansion package file!"
msgstr "سب سکریپشن بنائیں"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Building Android Project (gradle)"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Building of Android project failed, check output for the error.\n"
"Alternatively visit docs.godotengine.org for Android build documentation."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Moving output"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Unable to copy and rename export file, check gradle project directory for "
"outputs."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Package not found: %s"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Creating APK..."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Could not find template APK to export:\n"
"%s"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Missing libraries in the export template for the selected architectures: "
"%s.\n"
@@ -13157,21 +13257,21 @@ msgid ""
"architectures in the export preset."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
#, fuzzy
msgid "Adding files..."
msgstr ".تمام کا انتخاب"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
#, fuzzy
msgid "Could not export project files"
msgstr "سب سکریپشن بنائیں"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Aligning APK..."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Could not unzip temporary unaligned APK."
msgstr ""
@@ -13624,6 +13724,14 @@ msgid ""
"It only provides navigation data."
msgstr ""
+#: scene/3d/occluder.cpp
+msgid "No shape is set."
+msgstr ""
+
+#: scene/3d/occluder.cpp
+msgid "Only uniform scales are supported."
+msgstr ""
+
#: scene/3d/particles.cpp
msgid ""
"GPU-based particles are not supported by the GLES2 video driver.\n"
@@ -13913,6 +14021,14 @@ msgstr ""
msgid "Enable grid minimap."
msgstr ""
+#: scene/gui/nine_patch_rect.cpp
+msgid ""
+"The Tile and Tile Fit options for Axis Stretch properties are only effective "
+"when using the GLES3 rendering backend.\n"
+"The GLES2 backend is currently in use, so these modes will act like Stretch "
+"instead."
+msgstr ""
+
#: scene/gui/popup.cpp
msgid ""
"Popups will hide by default unless you call popup() or any of the popup*() "
@@ -13953,6 +14069,10 @@ msgstr ""
msgid "Viewport size must be greater than 0 to render anything."
msgstr ""
+#: scene/resources/occluder_shape.cpp
+msgid "OccluderShapeSphere Set Spheres"
+msgstr ""
+
#: scene/resources/visual_shader_nodes.cpp
msgid ""
"The sampler port is connected but not used. Consider changing the source to "
diff --git a/editor/translations/vi.po b/editor/translations/vi.po
index d50d622215..518c301ca6 100644
--- a/editor/translations/vi.po
+++ b/editor/translations/vi.po
@@ -24,8 +24,8 @@ msgid ""
msgstr ""
"Project-Id-Version: Godot Engine editor\n"
"POT-Creation-Date: \n"
-"PO-Revision-Date: 2021-08-02 02:00+0000\n"
-"Last-Translator: Rev <revolnoom7801@gmail.com>\n"
+"PO-Revision-Date: 2021-09-15 00:46+0000\n"
+"Last-Translator: IoeCmcomc <hopdaigia2004@gmail.com>\n"
"Language-Team: Vietnamese <https://hosted.weblate.org/projects/godot-engine/"
"godot/vi/>\n"
"Language: vi\n"
@@ -33,7 +33,7 @@ msgstr ""
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=1; plural=0;\n"
-"X-Generator: Weblate 4.8-dev\n"
+"X-Generator: Weblate 4.9-dev\n"
#: core/math/expression.cpp modules/gdscript/gdscript_functions.cpp
#: modules/visual_script/visual_script_builtin_funcs.cpp
@@ -383,7 +383,7 @@ msgstr "Chèn Anim"
#. TRANSLATORS: This describes the target of new animation track, will be inserted into another string.
#: editor/animation_track_editor.cpp
msgid "node '%s'"
-msgstr ""
+msgstr "nút '%s'"
#. TRANSLATORS: This describes the target of new animation track, will be inserted into another string.
#: editor/animation_track_editor.cpp
@@ -605,9 +605,8 @@ msgid "Go to Previous Step"
msgstr "Äến Bước trước đó"
#: editor/animation_track_editor.cpp
-#, fuzzy
msgid "Apply Reset"
-msgstr "Äặt lại phóng"
+msgstr "Ãp dụng đặt lại"
#: editor/animation_track_editor.cpp
msgid "Optimize Animation"
@@ -803,8 +802,8 @@ msgid ""
"Target method not found. Specify a valid method or attach a script to the "
"target node."
msgstr ""
-"Phương thức không tìm thấy. Chỉ định phương thức hợp lệ hoặc đính kèm tệp "
-"lệnh vào nút."
+"Phương thức không được tìm thấy. Chỉ định phương thức hợp lệ hoặc đính kèm "
+"tệp lệnh vào nút."
#: editor/connections_dialog.cpp
msgid "Connect to Node:"
@@ -921,7 +920,7 @@ msgstr "Hủy kết nối"
#: editor/connections_dialog.cpp
msgid "Connect a Signal to a Method"
-msgstr "Kết nối tín hiệu vào hàm"
+msgstr "Kết nối tín hiệu vào một hàm"
#: editor/connections_dialog.cpp
msgid "Edit Connection:"
@@ -952,9 +951,8 @@ msgid "Edit..."
msgstr "Chỉnh sửa..."
#: editor/connections_dialog.cpp
-#, fuzzy
msgid "Go to Method"
-msgstr "Äến Method"
+msgstr "Äi đến phương thức"
#: editor/create_dialog.cpp
msgid "Change %s Type"
@@ -1034,7 +1032,7 @@ msgstr ""
msgid "Dependencies"
msgstr "Các phụ thuộc"
-#: editor/dependency_editor.cpp
+#: editor/dependency_editor.cpp editor/editor_resource_picker.cpp
msgid "Resource"
msgstr "Tài nguyên"
@@ -1166,7 +1164,7 @@ msgstr "Cảm ơn từ cộng đồng Godot!"
#: editor/editor_about.cpp editor/editor_node.cpp editor/project_manager.cpp
msgid "Click to copy."
-msgstr ""
+msgstr "Nháy để sao chép."
#: editor/editor_about.cpp
msgid "Godot Engine contributors"
@@ -1291,9 +1289,8 @@ msgid "The following files failed extraction from asset \"%s\":"
msgstr "Không thể lấy các tệp sau khá»i gói:"
#: editor/editor_asset_installer.cpp
-#, fuzzy
msgid "(and %s more files)"
-msgstr "Và %s tệp nữa."
+msgstr "(và %s tệp nữa)"
#: editor/editor_asset_installer.cpp
#, fuzzy
@@ -1573,9 +1570,8 @@ msgid "Name"
msgstr "Tên"
#: editor/editor_autoload_settings.cpp
-#, fuzzy
msgid "Global Variable"
-msgstr "Äổi tên Biến"
+msgstr "Biến toàn cục"
#: editor/editor_data.cpp
msgid "Paste Params"
@@ -1697,13 +1693,13 @@ msgstr ""
"Chá»n kích hoạt 'Nhập PVRTC' trong Cài đặt Dá»± án, hoặc tắt 'Kích hoạt Driver "
"Tương thích Ngược'."
-#: editor/editor_export.cpp platform/android/export/export.cpp
+#: editor/editor_export.cpp platform/android/export/export_plugin.cpp
#: platform/iphone/export/export.cpp platform/javascript/export/export.cpp
#: platform/osx/export/export.cpp platform/uwp/export/export.cpp
msgid "Custom debug template not found."
msgstr "Không tìm thấy mẫu gỡ lỗi tuỳ chỉnh."
-#: editor/editor_export.cpp platform/android/export/export.cpp
+#: editor/editor_export.cpp platform/android/export/export_plugin.cpp
#: platform/iphone/export/export.cpp platform/javascript/export/export.cpp
#: platform/osx/export/export.cpp platform/uwp/export/export.cpp
msgid "Custom release template not found."
@@ -1784,7 +1780,7 @@ msgstr "(Hiện tại)"
#: editor/editor_feature_profile.cpp
msgid "(none)"
-msgstr ""
+msgstr "(không có)"
#: editor/editor_feature_profile.cpp
msgid "Remove currently selected profile, '%s'? Cannot be undone."
@@ -1819,19 +1815,16 @@ msgid "Enable Contextual Editor"
msgstr "Bật trình chỉnh sửa ngữ cảnh"
#: editor/editor_feature_profile.cpp
-#, fuzzy
msgid "Class Properties:"
-msgstr "Thuộc tính:"
+msgstr "Thuộc tính lớp:"
#: editor/editor_feature_profile.cpp
-#, fuzzy
msgid "Main Features:"
-msgstr "Tính năng"
+msgstr "Tính năng chính:"
#: editor/editor_feature_profile.cpp
-#, fuzzy
msgid "Nodes and Classes:"
-msgstr "Lớp đã bật:"
+msgstr "Các nút và lớp:"
#: editor/editor_feature_profile.cpp
msgid "File '%s' format is invalid, import aborted."
@@ -1857,14 +1850,12 @@ msgid "Current Profile:"
msgstr "Hồ sơ hiện tại:"
#: editor/editor_feature_profile.cpp
-#, fuzzy
msgid "Create Profile"
-msgstr "Xoá hồ sơ"
+msgstr "Tạo hồ sơ"
#: editor/editor_feature_profile.cpp
-#, fuzzy
msgid "Remove Profile"
-msgstr "Xóa Ô"
+msgstr "Xóa hồ sơ"
#: editor/editor_feature_profile.cpp
msgid "Available Profiles:"
@@ -1884,14 +1875,12 @@ msgid "Export"
msgstr "Xuất ra"
#: editor/editor_feature_profile.cpp
-#, fuzzy
msgid "Configure Selected Profile:"
-msgstr "Hồ sơ hiện tại:"
+msgstr "Cấu hình hồ sÆ¡ được chá»n:"
#: editor/editor_feature_profile.cpp
-#, fuzzy
msgid "Extra Options:"
-msgstr "Tuỳ chá»n Lá»›p:"
+msgstr "Tuỳ chá»n bổ sung:"
#: editor/editor_feature_profile.cpp
msgid "Create or import a profile to edit available classes and properties."
@@ -1922,9 +1911,8 @@ msgid "Select Current Folder"
msgstr "Chá»n thư mục hiện tại"
#: editor/editor_file_dialog.cpp scene/gui/file_dialog.cpp
-#, fuzzy
msgid "File exists, overwrite?"
-msgstr "Tệp tin tồn tại, ghi đè?"
+msgstr "Tệp đã tồn tại, ghi đè chứ?"
#: editor/editor_file_dialog.cpp scene/gui/file_dialog.cpp
msgid "Select This Folder"
@@ -2085,7 +2073,7 @@ msgstr ""
msgid "(Re)Importing Assets"
msgstr "Nhập lại tài nguyên"
-#: editor/editor_help.cpp editor/plugins/spatial_editor_plugin.cpp
+#: editor/editor_help.cpp
msgid "Top"
msgstr "Trên đầu"
@@ -2124,7 +2112,7 @@ msgstr "mặc định:"
#: editor/editor_help.cpp
msgid "Methods"
-msgstr "Hàm"
+msgstr "Phương thức"
#: editor/editor_help.cpp
msgid "Theme Properties"
@@ -2156,7 +2144,7 @@ msgstr ""
#: editor/editor_help.cpp
msgid "Method Descriptions"
-msgstr "Nội dung Hàm"
+msgstr "Mô tả phương thức"
#: editor/editor_help.cpp
msgid ""
@@ -2189,7 +2177,7 @@ msgstr "Chỉ tìm Lớp"
#: editor/editor_help_search.cpp
msgid "Methods Only"
-msgstr "Chỉ tìm Hàm"
+msgstr "Chỉ tìm phương thức"
#: editor/editor_help_search.cpp
msgid "Signals Only"
@@ -2217,7 +2205,7 @@ msgstr "Lá»›p"
#: editor/editor_help_search.cpp
msgid "Method"
-msgstr "Hàm"
+msgstr "Phương thức"
#: editor/editor_help_search.cpp editor/plugins/script_text_editor.cpp
msgid "Signal"
@@ -2590,6 +2578,32 @@ msgid "Current scene not saved. Open anyway?"
msgstr "Cảnh hiện tại chưa lưu. Kệ mở luôn?"
#: editor/editor_node.cpp
+msgid "Can't undo while mouse buttons are pressed."
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "Nothing to undo."
+msgstr ""
+
+#: editor/editor_node.cpp
+#, fuzzy
+msgid "Undo: %s"
+msgstr "Hoàn tác"
+
+#: editor/editor_node.cpp
+msgid "Can't redo while mouse buttons are pressed."
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "Nothing to redo."
+msgstr ""
+
+#: editor/editor_node.cpp
+#, fuzzy
+msgid "Redo: %s"
+msgstr "Làm lại"
+
+#: editor/editor_node.cpp
msgid "Can't reload a scene that was never saved."
msgstr "Không thể nạp má»™t cảnh chưa lưu bao giá»."
@@ -2938,9 +2952,8 @@ msgid "Orphan Resource Explorer..."
msgstr "Tìm kiếm tài nguyên mất gốc..."
#: editor/editor_node.cpp
-#, fuzzy
msgid "Reload Current Project"
-msgstr "Äổi tên Dá»± án"
+msgstr "Tải lại dự án hiện tại"
#: editor/editor_node.cpp
msgid "Quit to Project List"
@@ -2998,7 +3011,7 @@ msgstr ""
#: editor/editor_node.cpp
msgid "Visible Navigation"
-msgstr ""
+msgstr "Äiá»u hướng nhìn thấy được"
#: editor/editor_node.cpp
msgid ""
@@ -3096,7 +3109,7 @@ msgstr "Mở Hướng dẫn"
#: editor/editor_node.cpp
msgid "Questions & Answers"
-msgstr ""
+msgstr "Há»i đáp"
#: editor/editor_node.cpp
msgid "Report a Bug"
@@ -3115,9 +3128,8 @@ msgid "Community"
msgstr "Cộng đồng"
#: editor/editor_node.cpp
-#, fuzzy
msgid "About Godot"
-msgstr "VỠchúng tôi"
+msgstr "Vá» Godot"
#: editor/editor_node.cpp
msgid "Support Godot Development"
@@ -3211,9 +3223,8 @@ msgid "Manage Templates"
msgstr "Quản lý Mẫu xuất bản"
#: editor/editor_node.cpp
-#, fuzzy
msgid "Install from file"
-msgstr "Cài đặt từ File"
+msgstr "Cài đặt từ tệp"
#: editor/editor_node.cpp
#, fuzzy
@@ -3265,6 +3276,11 @@ msgid "Merge With Existing"
msgstr "Hợp nhất với Hiện có"
#: editor/editor_node.cpp
+#, fuzzy
+msgid "Apply MeshInstance Transforms"
+msgstr "Äổi Transform Animation"
+
+#: editor/editor_node.cpp
msgid "Open & Run a Script"
msgstr "Mở & Chạy mã lệnh"
@@ -3365,9 +3381,8 @@ msgid "Update"
msgstr "Cập nhật"
#: editor/editor_plugin_settings.cpp
-#, fuzzy
msgid "Version"
-msgstr "Phiên bản:"
+msgstr "Phiên bản"
#: editor/editor_plugin_settings.cpp
#, fuzzy
@@ -3385,14 +3400,12 @@ msgid "Measure:"
msgstr "Äo đạc:"
#: editor/editor_profiler.cpp
-#, fuzzy
msgid "Frame Time (ms)"
-msgstr "Thá»i gian khung hình (giây)"
+msgstr "Thá»i gian khung hình (ms)"
#: editor/editor_profiler.cpp
-#, fuzzy
msgid "Average Time (ms)"
-msgstr "Thá»i gian trung bình (giây)"
+msgstr "Thá»i gian trung bình (ms)"
#: editor/editor_profiler.cpp
msgid "Frame %"
@@ -3516,6 +3529,10 @@ msgid ""
msgstr ""
"Kiểu cá»§a tài nguyên đã chá»n (%s) không dùng được cho thuá»™c tính này (%s)."
+#: editor/editor_resource_picker.cpp
+msgid "Quick Load"
+msgstr ""
+
#: editor/editor_resource_picker.cpp editor/property_editor.cpp
msgid "Make Unique"
msgstr "Duy nhất"
@@ -4211,7 +4228,7 @@ msgstr "Xoá Nhóm"
#: editor/groups_editor.cpp editor/node_dock.cpp
msgid "Groups"
-msgstr "Nhóm (Groups)"
+msgstr "Nhóm"
#: editor/groups_editor.cpp
msgid "Nodes Not in Group"
@@ -5623,6 +5640,18 @@ msgid "Move CanvasItem \"%s\" to (%d, %d)"
msgstr "Di chuyển CanvasItem \"%s\" tới (%d, %d)"
#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Locked"
+msgstr "Khoá lá»±a chá»n"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Grouped"
+msgstr "Nhóm"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
msgid ""
"Children of containers have their anchors and margins values overridden by "
"their parent."
@@ -6564,7 +6593,13 @@ msgid "Remove Selected Item"
msgstr "Xóa mục đã chá»n"
#: editor/plugins/mesh_library_editor_plugin.cpp
-msgid "Import from Scene"
+#, fuzzy
+msgid "Import from Scene (Ignore Transforms)"
+msgstr "Nhập từ Cảnh"
+
+#: editor/plugins/mesh_library_editor_plugin.cpp
+#, fuzzy
+msgid "Import from Scene (Apply Transforms)"
msgstr "Nhập từ Cảnh"
#: editor/plugins/mesh_library_editor_plugin.cpp
@@ -7161,6 +7196,16 @@ msgstr "Xóa Point"
msgid "Flip Portal"
msgstr "Lật Ngang"
+#: editor/plugins/room_manager_editor_plugin.cpp
+#, fuzzy
+msgid "Occluder Set Transform"
+msgstr "Xóa biến đổi"
+
+#: editor/plugins/room_manager_editor_plugin.cpp
+#, fuzzy
+msgid "Center Node"
+msgstr "Tạo Nút"
+
#: editor/plugins/root_motion_editor_plugin.cpp
msgid "AnimationTree has no path set to an AnimationPlayer"
msgstr "AnimationTree chưa đặt đưá»ng dẫn đến AnimationPlayer nào"
@@ -7468,7 +7513,7 @@ msgstr "Dòng"
#: editor/plugins/script_text_editor.cpp
msgid "Go to Function"
-msgstr "Äi tá»›i Hàm"
+msgstr "Äi tá»›i hàm"
#: editor/plugins/script_text_editor.cpp
msgid "Only resources from filesystem can be dropped."
@@ -7611,7 +7656,7 @@ msgstr "Xóa hết má»i dấu trang"
#: editor/plugins/script_text_editor.cpp
msgid "Go to Function..."
-msgstr "Äi tá»›i Hàm..."
+msgstr "Äi tá»›i hàm..."
#: editor/plugins/script_text_editor.cpp
msgid "Go to Line..."
@@ -7663,12 +7708,14 @@ msgid "Skeleton2D"
msgstr "Skeleton2D"
#: editor/plugins/skeleton_2d_editor_plugin.cpp
-msgid "Make Rest Pose (From Bones)"
-msgstr "Tạo tư thế nghỉ (Từ Xương)"
+#, fuzzy
+msgid "Reset to Rest Pose"
+msgstr "Äặt Xương thành Tư thế Nghỉ"
#: editor/plugins/skeleton_2d_editor_plugin.cpp
-msgid "Set Bones to Rest Pose"
-msgstr "Äặt Xương thành Tư thế Nghỉ"
+#, fuzzy
+msgid "Overwrite Rest Pose"
+msgstr "Ghi đè"
#: editor/plugins/skeleton_editor_plugin.cpp
msgid "Create physical bones"
@@ -7695,6 +7742,71 @@ msgid "Perspective"
msgstr "Phối cảnh"
#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Top Orthogonal"
+msgstr "Vuông góc"
+
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Top Perspective"
+msgstr "Phối cảnh"
+
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Bottom Orthogonal"
+msgstr "Vuông góc"
+
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Bottom Perspective"
+msgstr "Phối cảnh"
+
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Left Orthogonal"
+msgstr "Vuông góc"
+
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Right Perspective"
+msgstr "Phối cảnh"
+
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Right Orthogonal"
+msgstr "Vuông góc"
+
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Front Orthogonal"
+msgstr "Vuông góc"
+
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Front Perspective"
+msgstr "Phối cảnh"
+
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Rear Orthogonal"
+msgstr "Vuông góc"
+
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Rear Perspective"
+msgstr "Phối cảnh"
+
+#. TRANSLATORS: This will be appended to the view name when Auto Orthogonal is enabled.
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid " [auto]"
+msgstr ""
+
+#. TRANSLATORS: This will be appended to the view name when Portal Occulusion is enabled.
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid " [portals active]"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
msgid "Transform Aborted."
msgstr "Hủy Biến đổi."
@@ -7811,42 +7923,22 @@ msgid "Bottom View."
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
-msgid "Bottom"
-msgstr "Dưới"
-
-#: editor/plugins/spatial_editor_plugin.cpp
msgid "Left View."
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
-msgid "Left"
-msgstr "Trái"
-
-#: editor/plugins/spatial_editor_plugin.cpp
msgid "Right View."
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
-msgid "Right"
-msgstr "Phải"
-
-#: editor/plugins/spatial_editor_plugin.cpp
msgid "Front View."
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
-msgid "Front"
-msgstr "Trước"
-
-#: editor/plugins/spatial_editor_plugin.cpp
msgid "Rear View."
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
-msgid "Rear"
-msgstr ""
-
-#: editor/plugins/spatial_editor_plugin.cpp
msgid "Align Transform with View"
msgstr ""
@@ -8116,6 +8208,11 @@ msgid "View Portal Culling"
msgstr "Cài đặt Cổng xem"
#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "View Occlusion Culling"
+msgstr "Cài đặt Cổng xem"
+
+#: editor/plugins/spatial_editor_plugin.cpp
#: modules/gridmap/grid_map_editor_plugin.cpp
msgid "Settings..."
msgstr "Cài đặt..."
@@ -8181,8 +8278,9 @@ msgid "Post"
msgstr "Sau"
#: editor/plugins/spatial_editor_plugin.cpp
-msgid "Nameless gizmo"
-msgstr ""
+#, fuzzy
+msgid "Unnamed Gizmo"
+msgstr "Dự án không tên"
#: editor/plugins/sprite_editor_plugin.cpp
msgid "Create Mesh2D"
@@ -8974,7 +9072,7 @@ msgstr ""
#: editor/plugins/theme_editor_preview.cpp
msgid "Submenu"
-msgstr "Menu phụ"
+msgstr "Bảng chá»n phụ"
#: editor/plugins/theme_editor_preview.cpp
msgid "Subitem 1"
@@ -9678,18 +9776,16 @@ msgid "Create Shader Node"
msgstr "Tạo nút Shader"
#: editor/plugins/visual_shader_editor_plugin.cpp
-#, fuzzy
msgid "Color function."
-msgstr "Thêm Hàm"
+msgstr "hàm màu"
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Color operator."
msgstr ""
#: editor/plugins/visual_shader_editor_plugin.cpp
-#, fuzzy
msgid "Grayscale function."
-msgstr "Tạo Function"
+msgstr "hàm đen trắng"
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Converts HSV vector to RGB equivalent."
@@ -12339,6 +12435,16 @@ msgstr "Äặt vị trí Ä‘iểm uốn"
msgid "Set Portal Point Position"
msgstr "Äặt vị trí Ä‘iểm uốn"
+#: editor/spatial_editor_gizmos.cpp
+#, fuzzy
+msgid "Set Occluder Sphere Radius"
+msgstr "Chỉnh bán kính hình trụ"
+
+#: editor/spatial_editor_gizmos.cpp
+#, fuzzy
+msgid "Set Occluder Sphere Position"
+msgstr "Äặt vị trí Ä‘iểm uốn"
+
#: modules/csg/csg_gizmos.cpp
msgid "Change Cylinder Radius"
msgstr "Thay Äổi Bán Kính Hình Trụ"
@@ -12630,6 +12736,11 @@ msgstr ""
msgid "Class name can't be a reserved keyword"
msgstr "Tên Lớp không được trùng với từ khóa"
+#: modules/mono/csharp_script.cpp
+#, fuzzy
+msgid "Build Solution"
+msgstr "Chá»n tất cả"
+
#: modules/mono/mono_gd/gd_mono_utils.cpp
msgid "End of inner exception stack trace"
msgstr ""
@@ -13109,138 +13220,138 @@ msgstr "Tìm VisualScript"
msgid "Get %s"
msgstr "Lấy %s"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Package name is missing."
msgstr "Thiếu tên gói."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Package segments must be of non-zero length."
msgstr "Các phân đoạn của gói phải có độ dài khác không."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "The character '%s' is not allowed in Android application package names."
msgstr "Không được phép cho kí tá»± '%s' vào tên gói phần má»m Android."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "A digit cannot be the first character in a package segment."
msgstr "Không thể có chữ số làm kí tự đầu tiên trong một phần của gói."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "The character '%s' cannot be the first character in a package segment."
msgstr "Kí tự '%s' không thể ở đầu trong một phân đoạn của gói."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "The package must have at least one '.' separator."
msgstr "Kí tự phân cách '.' phải xuất hiện ít nhất một lần trong tên gói."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Select device from the list"
msgstr "Chá»n thiết bị trong danh sách"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Running on %s"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
#, fuzzy
msgid "Exporting APK..."
msgstr "Xuất tất cả"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
#, fuzzy
msgid "Uninstalling..."
msgstr "Gỡ cài đặt"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
#, fuzzy
msgid "Installing to device, please wait..."
msgstr "Äang tải, đợi xíu..."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
#, fuzzy
msgid "Could not install to device: %s"
msgstr "Không thể bắt đầu quá trình phụ!"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
#, fuzzy
msgid "Running on device..."
msgstr "Chạy Tệp lệnh Tá»± chá»n ..."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
#, fuzzy
msgid "Could not execute on device."
msgstr "Không thể tạo folder."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Unable to find the 'apksigner' tool."
msgstr "Không tìm thấy công cụ 'apksigner'."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Android build template not installed in the project. Install it from the "
"Project menu."
msgstr ""
-"Mẫu xuất bản cho Android chưa được cài đặt trong dự án. Cài đặt nó từ menu "
-"Dá»± Ãn."
+"Bản mẫu dựng cho Android chưa được cài đặt trong dự án. Cài đặt nó từ bảng "
+"chá»n Dá»± Ãn."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Either Debug Keystore, Debug User AND Debug Password settings must be "
"configured OR none of them."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Debug keystore not configured in the Editor Settings nor in the preset."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Either Release Keystore, Release User AND Release Password settings must be "
"configured OR none of them."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Release keystore incorrectly configured in the export preset."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "A valid Android SDK path is required in Editor Settings."
msgstr "Cài đặt Trình biên tập yêu cầu má»™t đưá»ng dẫn Android SDK hợp lệ."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Invalid Android SDK path in Editor Settings."
msgstr "ÄÆ°á»ng dẫn Android SDK không hợp lệ trong Cài đặt Trình biên tập."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Missing 'platform-tools' directory!"
msgstr "Thiếu thư mục 'platform-tools'!"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Unable to find Android SDK platform-tools' adb command."
msgstr "Không tìm thấy lệnh adb trong bộ Android SDK platform-tools."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Please check in the Android SDK directory specified in Editor Settings."
msgstr ""
"Hãy kiểm tra thư mục Android SDK được cung cấp ở Cài đặt Trình biên tập."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Missing 'build-tools' directory!"
msgstr "Thiếu thư mục 'build-tools'!"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Unable to find Android SDK build-tools' apksigner command."
msgstr "Không tìm thấy lệnh apksigner của bộ Android SDK build-tools."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Invalid public key for APK expansion."
msgstr "Khóa công khai của bộ APK mở rộng không hợp lệ."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Invalid package name:"
msgstr "Tên gói không hợp lệ:"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Invalid \"GodotPaymentV3\" module included in the \"android/modules\" "
"project setting (changed in Godot 3.2.2).\n"
@@ -13248,34 +13359,23 @@ msgstr ""
"Cài đặt dự án chứa module không hợp lệ \"GodotPaymentV3\" ở mục \"android/"
"modules\" (đã thay đổi từ Godot 3.2.2).\n"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "\"Use Custom Build\" must be enabled to use the plugins."
msgstr "\"Sử dụng Bản dựng tùy chỉnh\" phải được bật để sử dụng các tiện ích."
-#: platform/android/export/export.cpp
-msgid ""
-"\"Degrees Of Freedom\" is only valid when \"Xr Mode\" is \"Oculus Mobile VR"
-"\"."
-msgstr "\"Bậc tự do\" chỉ dùng được khi \"Xr Mode\" là \"Oculus Mobile VR\"."
-
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"\"Hand Tracking\" is only valid when \"Xr Mode\" is \"Oculus Mobile VR\"."
msgstr ""
"\"Theo dõi chuyển động tay\" chỉ dùng được khi \"Xr Mode\" là \"Oculus "
"Mobile VR\"."
-#: platform/android/export/export.cpp
-msgid ""
-"\"Focus Awareness\" is only valid when \"Xr Mode\" is \"Oculus Mobile VR\"."
-msgstr ""
-
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "\"Export AAB\" is only valid when \"Use Custom Build\" is enabled."
msgstr ""
"\"Xuất AAB\" chỉ dùng được khi \"Sử dụng Bản dựng tùy chỉnh\" được bật."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"'apksigner' could not be found.\n"
"Please check the command is available in the Android SDK build-tools "
@@ -13283,97 +13383,97 @@ msgid ""
"The resulting %s is unsigned."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Signing debug %s..."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
#, fuzzy
msgid "Signing release %s..."
msgstr ""
"Äang quét các tệp tin,\n"
"ChỠmột chút ..."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
#, fuzzy
msgid "Could not find keystore, unable to export."
msgstr "Không thể mở bản mẫu để xuất:"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "'apksigner' returned with error #%d"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
#, fuzzy
msgid "Verifying %s..."
msgstr "Äang thêm %s..."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "'apksigner' verification of %s failed."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
#, fuzzy
msgid "Exporting for Android"
msgstr "Xuất tất cả"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Invalid filename! Android App Bundle requires the *.aab extension."
msgstr "Tên tệp không hợp lệ! Android App Bundle cần đuôi *.aab ở cuối."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
#, fuzzy
msgid "APK Expansion not compatible with Android App Bundle."
msgstr "Äuôi APK không tương thích vá»›i Android App Bundle."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Invalid filename! Android APK requires the *.apk extension."
msgstr "Tên tệp không hợp lệ! Android APK cần đuôi *.apk ở cuối."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Unsupported export format!\n"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Trying to build from a custom built template, but no version info for it "
"exists. Please reinstall from the 'Project' menu."
msgstr ""
-"Cố gắng xây dựng từ một mẫu xuất bản tùy chỉnh, nhưng không có thông tin "
-"phiên bản nào tồn tại. Vui lòng cài đặt lại từ menu 'Dự án'."
+"Cố gắng dựng từ một bản mẫu được dựng tùy chỉnh, nhưng không có thông tin "
+"phiên bản nào tồn tại. Vui lòng cài đặt lại từ bảng chá»n'Dá»± án'."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Android build version mismatch:\n"
" Template installed: %s\n"
" Godot Version: %s\n"
"Please reinstall Android build template from 'Project' menu."
msgstr ""
-"Phiên bản xây dựng Android không khớp:\n"
-" Mẫu xuất bản được cài đặt: %s\n"
-" Phiên bản Godot sử dụng: %s\n"
-"Vui lòng cài đặt lại mẫu xuất bản Android từ menu 'Dá»± Ãn'."
+"Phiên bản dựng Android không khớp:\n"
+" Bản mẫu được cài đặt: %s\n"
+" Phiên bản Godot: %s\n"
+"Vui lòng cài đặt lại bản mẫu Android từ bảng chá»n 'Dá»± Ãn'."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Unable to overwrite res://android/build/res/*.xml files with project name"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
#, fuzzy
msgid "Could not export project files to gradle project\n"
msgstr "Không thể chỉnh sá»­a 'project.godot' trong đưá»ng dẫn dá»± án."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
#, fuzzy
msgid "Could not write expansion package file!"
msgstr "Không viết được file:"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Building Android Project (gradle)"
msgstr "Äang dá»±ng dá»± án Android (gradle)"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Building of Android project failed, check output for the error.\n"
"Alternatively visit docs.godotengine.org for Android build documentation."
@@ -13381,11 +13481,11 @@ msgstr ""
"Xây dựng dự án Android thất bại, hãy kiểm tra đầu ra để biết lỗi.\n"
"Hoặc truy cập 'docs.godotengine.org' để xem cách xây dựng Android."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Moving output"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Unable to copy and rename export file, check gradle project directory for "
"outputs."
@@ -13393,24 +13493,24 @@ msgstr ""
"Không thể sao chép và đổi tên tệp xuất, hãy kiểm tra thư mục Gradle của dự "
"án để xem kết quả."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
#, fuzzy
msgid "Package not found: %s"
msgstr "Không tìm thấy Animation: '%s'"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
#, fuzzy
msgid "Creating APK..."
msgstr "Tạo đưá»ng viá»n ..."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
#, fuzzy
msgid ""
"Could not find template APK to export:\n"
"%s"
msgstr "Không thể mở bản mẫu để xuất:"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Missing libraries in the export template for the selected architectures: "
"%s.\n"
@@ -13418,21 +13518,21 @@ msgid ""
"architectures in the export preset."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
#, fuzzy
msgid "Adding files..."
msgstr "Äang thêm %s..."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
#, fuzzy
msgid "Could not export project files"
msgstr "Không viết được file:"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Aligning APK..."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Could not unzip temporary unaligned APK."
msgstr ""
@@ -13941,6 +14041,14 @@ msgstr ""
"NavigationMeshInstance phải là nút con hoặc cháu một nút Navigation. Nó chỉ "
"cung cấp dữ liệu Ä‘iá»u hướng."
+#: scene/3d/occluder.cpp
+msgid "No shape is set."
+msgstr ""
+
+#: scene/3d/occluder.cpp
+msgid "Only uniform scales are supported."
+msgstr ""
+
#: scene/3d/particles.cpp
msgid ""
"GPU-based particles are not supported by the GLES2 video driver.\n"
@@ -14237,6 +14345,14 @@ msgstr "Sử dụng phần mở rộng hợp lệ."
msgid "Enable grid minimap."
msgstr ""
+#: scene/gui/nine_patch_rect.cpp
+msgid ""
+"The Tile and Tile Fit options for Axis Stretch properties are only effective "
+"when using the GLES3 rendering backend.\n"
+"The GLES2 backend is currently in use, so these modes will act like Stretch "
+"instead."
+msgstr ""
+
#: scene/gui/popup.cpp
#, fuzzy
msgid ""
@@ -14283,6 +14399,10 @@ msgstr ""
msgid "Viewport size must be greater than 0 to render anything."
msgstr ""
+#: scene/resources/occluder_shape.cpp
+msgid "OccluderShapeSphere Set Spheres"
+msgstr ""
+
#: scene/resources/visual_shader_nodes.cpp
msgid ""
"The sampler port is connected but not used. Consider changing the source to "
@@ -14334,6 +14454,27 @@ msgstr ""
msgid "Constants cannot be modified."
msgstr "Không thể chỉnh sửa hằng số."
+#~ msgid "Make Rest Pose (From Bones)"
+#~ msgstr "Tạo tư thế nghỉ (Từ Xương)"
+
+#~ msgid "Bottom"
+#~ msgstr "Dưới"
+
+#~ msgid "Left"
+#~ msgstr "Trái"
+
+#~ msgid "Right"
+#~ msgstr "Phải"
+
+#~ msgid "Front"
+#~ msgstr "Trước"
+
+#~ msgid ""
+#~ "\"Degrees Of Freedom\" is only valid when \"Xr Mode\" is \"Oculus Mobile "
+#~ "VR\"."
+#~ msgstr ""
+#~ "\"Bậc tự do\" chỉ dùng được khi \"Xr Mode\" là \"Oculus Mobile VR\"."
+
#~ msgid "Package Contents:"
#~ msgstr "Trong Gói có:"
diff --git a/editor/translations/zh_CN.po b/editor/translations/zh_CN.po
index 8284ac605e..e8084b8856 100644
--- a/editor/translations/zh_CN.po
+++ b/editor/translations/zh_CN.po
@@ -83,7 +83,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Chinese (Simplified) (Godot Engine)\n"
"POT-Creation-Date: 2018-01-20 12:15+0200\n"
-"PO-Revision-Date: 2021-08-12 14:48+0000\n"
+"PO-Revision-Date: 2021-09-06 16:32+0000\n"
"Last-Translator: Haoyu Qiu <timothyqiu32@gmail.com>\n"
"Language-Team: Chinese (Simplified) <https://hosted.weblate.org/projects/"
"godot-engine/godot/zh_Hans/>\n"
@@ -92,7 +92,7 @@ msgstr ""
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=1; plural=0;\n"
-"X-Generator: Weblate 4.8-dev\n"
+"X-Generator: Weblate 4.8.1-dev\n"
#: core/math/expression.cpp modules/gdscript/gdscript_functions.cpp
#: modules/visual_script/visual_script_builtin_funcs.cpp
@@ -440,13 +440,11 @@ msgstr "æ’入动画"
#. TRANSLATORS: This describes the target of new animation track, will be inserted into another string.
#: editor/animation_track_editor.cpp
-#, fuzzy
msgid "node '%s'"
-msgstr "无法打开 \"%s\"。"
+msgstr "节点“%sâ€"
#. TRANSLATORS: This describes the target of new animation track, will be inserted into another string.
#: editor/animation_track_editor.cpp
-#, fuzzy
msgid "animation"
msgstr "动画"
@@ -456,9 +454,8 @@ msgstr "AnimationPlayer ä¸èƒ½åŠ¨ç”»åŒ–è‡ªå·±ï¼Œåªå¯åŠ¨ç”»åŒ–å…¶å®ƒ Player。"
#. TRANSLATORS: This describes the target of new animation track, will be inserted into another string.
#: editor/animation_track_editor.cpp
-#, fuzzy
msgid "property '%s'"
-msgstr "ä¸å­˜åœ¨å±žæ€§â€œ%sâ€ã€‚"
+msgstr "属性“%sâ€"
#: editor/animation_track_editor.cpp
msgid "Anim Create & Insert"
@@ -1086,7 +1083,7 @@ msgstr ""
msgid "Dependencies"
msgstr "ä¾èµ–"
-#: editor/dependency_editor.cpp
+#: editor/dependency_editor.cpp editor/editor_resource_picker.cpp
msgid "Resource"
msgstr "资æº"
@@ -1730,13 +1727,13 @@ msgstr ""
"目标平å°éœ€è¦ “PVRTC†纹ç†åŽ‹ç¼©ï¼Œä»¥ä¾¿é©±åŠ¨ç¨‹åºå›žé€€åˆ° GLES2。\n"
"在项目设置中å¯ç”¨ “Import Pvrtcâ€ï¼Œæˆ–ç¦ç”¨ “Driver Fallback Enabledâ€ã€‚"
-#: editor/editor_export.cpp platform/android/export/export.cpp
+#: editor/editor_export.cpp platform/android/export/export_plugin.cpp
#: platform/iphone/export/export.cpp platform/javascript/export/export.cpp
#: platform/osx/export/export.cpp platform/uwp/export/export.cpp
msgid "Custom debug template not found."
msgstr "找ä¸åˆ°è‡ªå®šä¹‰è°ƒè¯•模æ¿ã€‚"
-#: editor/editor_export.cpp platform/android/export/export.cpp
+#: editor/editor_export.cpp platform/android/export/export_plugin.cpp
#: platform/iphone/export/export.cpp platform/javascript/export/export.cpp
#: platform/osx/export/export.cpp platform/uwp/export/export.cpp
msgid "Custom release template not found."
@@ -2086,11 +2083,11 @@ msgstr "目录与文件:"
#: editor/editor_file_dialog.cpp editor/plugins/sprite_editor_plugin.cpp
#: editor/plugins/style_box_editor_plugin.cpp editor/rename_dialog.cpp
msgid "Preview:"
-msgstr "预览:"
+msgstr "预览:"
#: editor/editor_file_dialog.cpp scene/gui/file_dialog.cpp
msgid "File:"
-msgstr "文件:"
+msgstr "文件:"
#: editor/editor_file_system.cpp
msgid "ScanSources"
@@ -2106,13 +2103,13 @@ msgstr "文件 %s 有ä¸åŒç±»åž‹çš„多个导入器,已中止导入"
msgid "(Re)Importing Assets"
msgstr "æ­£åœ¨å¯¼å…¥æˆ–é‡æ–°å¯¼å…¥ç´ æ"
-#: editor/editor_help.cpp editor/plugins/spatial_editor_plugin.cpp
+#: editor/editor_help.cpp
msgid "Top"
msgstr "顶部"
#: editor/editor_help.cpp
msgid "Class:"
-msgstr "ç±»:"
+msgstr "类:"
#: editor/editor_help.cpp editor/scene_tree_editor.cpp
#: editor/script_create_dialog.cpp
@@ -2258,7 +2255,7 @@ msgstr "主题属性"
#: editor/editor_inspector.cpp editor/project_settings_editor.cpp
msgid "Property:"
-msgstr "属性:"
+msgstr "属性:"
#: editor/editor_inspector.cpp editor/scene_tree_dock.cpp
#: modules/visual_script/visual_script_property_selector.cpp
@@ -2343,6 +2340,8 @@ msgid ""
"Update Continuously is enabled, which can increase power usage. Click to "
"disable it."
msgstr ""
+"编辑器窗å£é‡ç»˜æ—¶æ—‹è½¬ã€‚\n"
+"å·²å¯ç”¨è¿žç»­æ›´æ–°ï¼Œä¼šæå‡è€—电é‡ã€‚点击ç¦ç”¨ã€‚"
#: editor/editor_node.cpp
msgid "Spins when the editor window redraws."
@@ -2603,6 +2602,32 @@ msgid "Current scene not saved. Open anyway?"
msgstr "当å‰åœºæ™¯å°šæœªä¿å­˜ã€‚是å¦ä»è¦æ‰“开?"
#: editor/editor_node.cpp
+msgid "Can't undo while mouse buttons are pressed."
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "Nothing to undo."
+msgstr ""
+
+#: editor/editor_node.cpp
+#, fuzzy
+msgid "Undo: %s"
+msgstr "撤销"
+
+#: editor/editor_node.cpp
+msgid "Can't redo while mouse buttons are pressed."
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "Nothing to redo."
+msgstr ""
+
+#: editor/editor_node.cpp
+#, fuzzy
+msgid "Redo: %s"
+msgstr "é‡åš"
+
+#: editor/editor_node.cpp
msgid "Can't reload a scene that was never saved."
msgstr "æ— æ³•é‡æ–°åŠ è½½ä»Žæœªä¿å­˜è¿‡çš„场景。"
@@ -2716,7 +2741,7 @@ msgstr ""
#: editor/editor_node.cpp
msgid "Scene '%s' has broken dependencies:"
-msgstr "场景 “%s†的ä¾èµ–已被破å:"
+msgstr "场景 “%s†的ä¾èµ–已被破å:"
#: editor/editor_node.cpp
msgid "Clear Recent Scenes"
@@ -3260,6 +3285,11 @@ msgid "Merge With Existing"
msgstr "与现有åˆå¹¶"
#: editor/editor_node.cpp
+#, fuzzy
+msgid "Apply MeshInstance Transforms"
+msgstr "ä¿®æ”¹åŠ¨ç”»å˜æ¢"
+
+#: editor/editor_node.cpp
msgid "Open & Run a Script"
msgstr "打开并è¿è¡Œè„šæœ¬"
@@ -3511,6 +3541,10 @@ msgid ""
"property (%s)."
msgstr "所选资æºï¼ˆ%s)与该属性(%s)所需的类型都ä¸åŒ¹é…。"
+#: editor/editor_resource_picker.cpp
+msgid "Quick Load"
+msgstr ""
+
#: editor/editor_resource_picker.cpp editor/property_editor.cpp
msgid "Make Unique"
msgstr "唯一化"
@@ -3796,14 +3830,12 @@ msgid "Download from:"
msgstr "下载:"
#: editor/export_template_manager.cpp
-#, fuzzy
msgid "Open in Web Browser"
-msgstr "在æµè§ˆå™¨ä¸­è¿è¡Œ"
+msgstr "在æµè§ˆå™¨ä¸­æ‰“å¼€"
#: editor/export_template_manager.cpp
-#, fuzzy
msgid "Copy Mirror URL"
-msgstr "å¤åˆ¶é”™è¯¯ä¿¡æ¯"
+msgstr "å¤åˆ¶é•œåƒ URL"
#: editor/export_template_manager.cpp
msgid "Download and Install"
@@ -4266,7 +4298,7 @@ msgstr "执行自定义脚本..."
#: editor/import/resource_importer_scene.cpp
msgid "Couldn't load post-import script:"
-msgstr "无法载入åŽå¯¼å…¥è„šæœ¬:"
+msgstr "无法载入åŽå¯¼å…¥è„šæœ¬ï¼š"
#: editor/import/resource_importer_scene.cpp
msgid "Invalid/broken script for post-import (check console):"
@@ -4764,7 +4796,7 @@ msgstr "打开ï¼å…³é—­è‡ªåŠ¨æ’­æ”¾"
#: editor/plugins/animation_player_editor_plugin.cpp
msgid "New Animation Name:"
-msgstr "新动画åç§°:"
+msgstr "新动画å称:"
#: editor/plugins/animation_player_editor_plugin.cpp
msgid "New Anim"
@@ -4772,7 +4804,7 @@ msgstr "新建动画"
#: editor/plugins/animation_player_editor_plugin.cpp
msgid "Change Animation Name:"
-msgstr "é‡å‘½å动画:"
+msgstr "é‡å‘½å动画:"
#: editor/plugins/animation_player_editor_plugin.cpp
#: editor/plugins/sprite_frames_editor_plugin.cpp
@@ -4948,7 +4980,7 @@ msgstr "创建新动画"
#: editor/plugins/animation_player_editor_plugin.cpp
msgid "Animation Name:"
-msgstr "动画åç§°:"
+msgstr "动画å称:"
#: editor/plugins/animation_player_editor_plugin.cpp
#: editor/plugins/resource_preloader_editor_plugin.cpp
@@ -4963,7 +4995,7 @@ msgstr "æ··åˆæ—¶é—´ï¼š"
#: editor/plugins/animation_player_editor_plugin.cpp
msgid "Next (Auto Queue):"
-msgstr "接下æ¥ï¼ˆè‡ªåŠ¨é˜Ÿåˆ—ï¼‰:"
+msgstr "接下æ¥ï¼ˆè‡ªåŠ¨é˜Ÿåˆ—ï¼‰ï¼š"
#: editor/plugins/animation_player_editor_plugin.cpp
msgid "Cross-Animation Blend Times"
@@ -5071,7 +5103,7 @@ msgstr "动画树"
#: editor/plugins/animation_tree_player_editor_plugin.cpp
msgid "New name:"
-msgstr "æ–°åç§°:"
+msgstr "æ–°å称:"
#: editor/plugins/animation_tree_player_editor_plugin.cpp
#: editor/plugins/multimesh_editor_plugin.cpp
@@ -5096,15 +5128,15 @@ msgstr "æ··åˆ (Mix)"
#: editor/plugins/animation_tree_player_editor_plugin.cpp
msgid "Auto Restart:"
-msgstr "è‡ªåŠ¨é‡æ–°å¼€å§‹:"
+msgstr "è‡ªåŠ¨é‡æ–°å¼€å§‹ï¼š"
#: editor/plugins/animation_tree_player_editor_plugin.cpp
msgid "Restart (s):"
-msgstr "釿–°å¼€å§‹ï¼ˆç§’):"
+msgstr "釿–°å¼€å§‹ï¼ˆç§’):"
#: editor/plugins/animation_tree_player_editor_plugin.cpp
msgid "Random Restart (s):"
-msgstr "éšæœºå¼€å§‹ï¼ˆç§’):"
+msgstr "éšæœºå¼€å§‹ï¼ˆç§’):"
#: editor/plugins/animation_tree_player_editor_plugin.cpp
msgid "Start!"
@@ -5113,7 +5145,7 @@ msgstr "开始ï¼"
#: editor/plugins/animation_tree_player_editor_plugin.cpp
#: editor/plugins/multimesh_editor_plugin.cpp
msgid "Amount:"
-msgstr "æ•°é‡:"
+msgstr "æ•°é‡ï¼š"
#: editor/plugins/animation_tree_player_editor_plugin.cpp
msgid "Blend 0:"
@@ -5207,7 +5239,7 @@ msgstr "筛选..."
#: editor/plugins/asset_library_editor_plugin.cpp
msgid "Contents:"
-msgstr "内容:"
+msgstr "内容:"
#: editor/plugins/asset_library_editor_plugin.cpp
msgid "View Files"
@@ -5283,11 +5315,11 @@ msgstr "文件哈希值错误,该文件å¯èƒ½è¢«ç¯¡æ”¹ã€‚"
#: editor/plugins/asset_library_editor_plugin.cpp
msgid "Expected:"
-msgstr "预计:"
+msgstr "预期:"
#: editor/plugins/asset_library_editor_plugin.cpp
msgid "Got:"
-msgstr "获得:"
+msgstr "获得:"
#: editor/plugins/asset_library_editor_plugin.cpp
msgid "Failed SHA-256 hash check"
@@ -5579,6 +5611,18 @@ msgid "Move CanvasItem \"%s\" to (%d, %d)"
msgstr "移动 CanvasItem “%s†至 (%d, %d)"
#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Locked"
+msgstr "é”定所选项"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Grouped"
+msgstr "分组"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
msgid ""
"Children of containers have their anchors and margins values overridden by "
"their parent."
@@ -5735,7 +5779,7 @@ msgstr "添加 IK 链"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Clear IK Chain"
-msgstr "清除IK链"
+msgstr "清除 IK 链"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid ""
@@ -6146,7 +6190,7 @@ msgstr "ç²’å­"
#: editor/plugins/cpu_particles_2d_editor_plugin.cpp
#: editor/plugins/particles_2d_editor_plugin.cpp
msgid "Generated Point Count:"
-msgstr "生æˆé¡¶ç‚¹è®¡æ•°:"
+msgstr "生æˆé¡¶ç‚¹è®¡æ•°ï¼š"
#: editor/plugins/cpu_particles_2d_editor_plugin.cpp
#: editor/plugins/particles_2d_editor_plugin.cpp
@@ -6502,7 +6546,13 @@ msgid "Remove Selected Item"
msgstr "移除选中项目"
#: editor/plugins/mesh_library_editor_plugin.cpp
-msgid "Import from Scene"
+#, fuzzy
+msgid "Import from Scene (Ignore Transforms)"
+msgstr "从场景中导入"
+
+#: editor/plugins/mesh_library_editor_plugin.cpp
+#, fuzzy
+msgid "Import from Scene (Apply Transforms)"
msgstr "从场景中导入"
#: editor/plugins/mesh_library_editor_plugin.cpp
@@ -7074,7 +7124,7 @@ msgstr "预加载资æº"
#: editor/plugins/room_manager_editor_plugin.cpp
msgid "Flip Portals"
-msgstr "翻转门户"
+msgstr "翻转入å£"
#: editor/plugins/room_manager_editor_plugin.cpp
msgid "Room Generate Points"
@@ -7086,7 +7136,17 @@ msgstr "生æˆç‚¹"
#: editor/plugins/room_manager_editor_plugin.cpp
msgid "Flip Portal"
-msgstr "翻转门户"
+msgstr "翻转入å£"
+
+#: editor/plugins/room_manager_editor_plugin.cpp
+#, fuzzy
+msgid "Occluder Set Transform"
+msgstr "æ¸…é™¤å˜æ¢"
+
+#: editor/plugins/room_manager_editor_plugin.cpp
+#, fuzzy
+msgid "Center Node"
+msgstr "创建节点"
#: editor/plugins/root_motion_editor_plugin.cpp
msgid "AnimationTree has no path set to an AnimationPlayer"
@@ -7179,12 +7239,12 @@ msgstr "主题å¦å­˜ä¸º..."
#: editor/plugins/script_editor_plugin.cpp
msgid "%s Class Reference"
-msgstr "%s 类引用"
+msgstr "%s ç±»å‚考手册"
#: editor/plugins/script_editor_plugin.cpp
#: editor/plugins/script_text_editor.cpp
msgid "Find Next"
-msgstr "查找下一项"
+msgstr "查找下一个"
#: editor/plugins/script_editor_plugin.cpp
#: editor/plugins/script_text_editor.cpp
@@ -7430,7 +7490,7 @@ msgstr "首字æ¯å¤§å†™"
#: editor/plugins/script_text_editor.cpp editor/plugins/text_editor.cpp
msgid "Syntax Highlighter"
-msgstr "语法高亮显示"
+msgstr "语法高亮器"
#: editor/plugins/script_text_editor.cpp
#: editor/plugins/shader_editor_plugin.cpp editor/plugins/text_editor.cpp
@@ -7486,7 +7546,7 @@ msgstr "展开所有行"
#: editor/plugins/script_text_editor.cpp
msgid "Complete Symbol"
-msgstr "符å·è‡ªåŠ¨è¡¥å…¨"
+msgstr "补全符å·"
#: editor/plugins/script_text_editor.cpp
msgid "Evaluate Selection"
@@ -7586,12 +7646,14 @@ msgid "Skeleton2D"
msgstr "2D 骨骼节点"
#: editor/plugins/skeleton_2d_editor_plugin.cpp
-msgid "Make Rest Pose (From Bones)"
-msgstr "制作放æ¾å§¿åŠ¿ï¼ˆä»Žéª¨éª¼ï¼‰"
+#, fuzzy
+msgid "Reset to Rest Pose"
+msgstr "将骨骼é‡ç½®ä¸ºæ”¾æ¾å§¿åŠ¿"
#: editor/plugins/skeleton_2d_editor_plugin.cpp
-msgid "Set Bones to Rest Pose"
-msgstr "将骨骼é‡ç½®ä¸ºæ”¾æ¾å§¿åŠ¿"
+#, fuzzy
+msgid "Overwrite Rest Pose"
+msgstr "覆盖"
#: editor/plugins/skeleton_editor_plugin.cpp
msgid "Create physical bones"
@@ -7618,6 +7680,71 @@ msgid "Perspective"
msgstr "é€è§†"
#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Top Orthogonal"
+msgstr "正交"
+
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Top Perspective"
+msgstr "é€è§†"
+
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Bottom Orthogonal"
+msgstr "正交"
+
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Bottom Perspective"
+msgstr "é€è§†"
+
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Left Orthogonal"
+msgstr "正交"
+
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Right Perspective"
+msgstr "é€è§†"
+
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Right Orthogonal"
+msgstr "正交"
+
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Front Orthogonal"
+msgstr "正交"
+
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Front Perspective"
+msgstr "é€è§†"
+
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Rear Orthogonal"
+msgstr "正交"
+
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Rear Perspective"
+msgstr "é€è§†"
+
+#. TRANSLATORS: This will be appended to the view name when Auto Orthogonal is enabled.
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid " [auto]"
+msgstr ""
+
+#. TRANSLATORS: This will be appended to the view name when Portal Occulusion is enabled.
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid " [portals active]"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
msgid "Transform Aborted."
msgstr "å·²å¿½ç•¥å˜æ¢ã€‚"
@@ -7725,42 +7852,22 @@ msgid "Bottom View."
msgstr "底视图。"
#: editor/plugins/spatial_editor_plugin.cpp
-msgid "Bottom"
-msgstr "底部"
-
-#: editor/plugins/spatial_editor_plugin.cpp
msgid "Left View."
msgstr "左视图。"
#: editor/plugins/spatial_editor_plugin.cpp
-msgid "Left"
-msgstr "左方"
-
-#: editor/plugins/spatial_editor_plugin.cpp
msgid "Right View."
msgstr "å³è§†å›¾ã€‚"
#: editor/plugins/spatial_editor_plugin.cpp
-msgid "Right"
-msgstr "峿–¹"
-
-#: editor/plugins/spatial_editor_plugin.cpp
msgid "Front View."
msgstr "å‰è§†å›¾ã€‚"
#: editor/plugins/spatial_editor_plugin.cpp
-msgid "Front"
-msgstr "å‰é¢"
-
-#: editor/plugins/spatial_editor_plugin.cpp
msgid "Rear View."
msgstr "åŽè§†å›¾ã€‚"
#: editor/plugins/spatial_editor_plugin.cpp
-msgid "Rear"
-msgstr "åŽæ–¹"
-
-#: editor/plugins/spatial_editor_plugin.cpp
msgid "Align Transform with View"
msgstr "å°†å˜æ¢ä¸Žè§†å›¾å¯¹é½"
@@ -7929,7 +8036,7 @@ msgstr "使用å¸é™„"
#: editor/plugins/spatial_editor_plugin.cpp
msgid "Converts rooms for portal culling."
-msgstr "ä¸ºé—¨æˆ·å‰”é™¤è½¬æ¢æˆ¿é—´ã€‚"
+msgstr "为入å£å‰”é™¤è½¬æ¢æˆ¿é—´ã€‚"
#: editor/plugins/spatial_editor_plugin.cpp
msgid "Bottom View"
@@ -8026,7 +8133,12 @@ msgstr "显示网格"
#: editor/plugins/spatial_editor_plugin.cpp
msgid "View Portal Culling"
-msgstr "显示门户剔除"
+msgstr "显示入å£å‰”除"
+
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "View Occlusion Culling"
+msgstr "显示入å£å‰”除"
#: editor/plugins/spatial_editor_plugin.cpp
#: modules/gridmap/grid_map_editor_plugin.cpp
@@ -8043,7 +8155,7 @@ msgstr "平移å¸é™„:"
#: editor/plugins/spatial_editor_plugin.cpp
msgid "Rotate Snap (deg.):"
-msgstr "旋转å¸é™„(度):"
+msgstr "旋转å¸é™„(角度):"
#: editor/plugins/spatial_editor_plugin.cpp
msgid "Scale Snap (%):"
@@ -8059,11 +8171,11 @@ msgstr "é€è§†è§†è§’(角度):"
#: editor/plugins/spatial_editor_plugin.cpp
msgid "View Z-Near:"
-msgstr "查看 Z-Near:"
+msgstr "视图 Z-Near:"
#: editor/plugins/spatial_editor_plugin.cpp
msgid "View Z-Far:"
-msgstr "查看 Z-Far:"
+msgstr "视图 Z-Far:"
#: editor/plugins/spatial_editor_plugin.cpp
msgid "Transform Change"
@@ -8094,8 +8206,9 @@ msgid "Post"
msgstr "åŽç½®"
#: editor/plugins/spatial_editor_plugin.cpp
-msgid "Nameless gizmo"
-msgstr "æ— åæŽ§åˆ¶å™¨"
+#, fuzzy
+msgid "Unnamed Gizmo"
+msgstr "未命å项目"
#: editor/plugins/sprite_editor_plugin.cpp
msgid "Create Mesh2D"
@@ -8135,7 +8248,7 @@ msgstr "Sprite 是空的ï¼"
#: editor/plugins/sprite_editor_plugin.cpp
msgid "Can't convert a sprite using animation frames to mesh."
-msgstr "无法将使用动画帧将精çµè½¬æ¢ä¸ºç½‘格。"
+msgstr "无法将使用动画帧的精çµè½¬æ¢ä¸ºç½‘格。"
#: editor/plugins/sprite_editor_plugin.cpp
msgid "Invalid geometry, can't replace by mesh."
@@ -8549,6 +8662,8 @@ msgid ""
"Select a theme type from the list to edit its items.\n"
"You can add a custom type or import a type with its items from another theme."
msgstr ""
+"从列表中选择一个主题类型以编辑其项目。\n"
+"ä½ å¯ä»¥æ·»åŠ ä¸€ä¸ªè‡ªå®šä¹‰ç±»åž‹ï¼Œæˆ–è€…ä»Žå…¶å®ƒä¸»é¢˜ä¸­å¯¼å…¥ä¸€ä¸ªç±»åž‹åŠå…¶é¡¹ç›®ã€‚"
#: editor/plugins/theme_editor_plugin.cpp
msgid "Remove All Color Items"
@@ -8579,6 +8694,8 @@ msgid ""
"This theme type is empty.\n"
"Add more items to it manually or by importing from another theme."
msgstr ""
+"该主题类型为空。\n"
+"请手动添加或者从其它主题导入更多项目。"
#: editor/plugins/theme_editor_plugin.cpp
msgid "Add Color Item"
@@ -9458,7 +9575,7 @@ msgstr "调整 VisualShader 节点大å°"
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Set Uniform Name"
-msgstr "设置统一åç§°"
+msgstr "设置 Uniform åç§°"
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Set Input Default Port"
@@ -9579,7 +9696,7 @@ msgstr "颜色常é‡ã€‚"
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Color uniform."
-msgstr "颜色统一。"
+msgstr "颜色 Uniform。"
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Returns the boolean result of the %s comparison between two parameters."
@@ -9653,7 +9770,7 @@ msgstr "布尔常é‡ã€‚"
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Boolean uniform."
-msgstr "布尔统一。"
+msgstr "布尔 Uniform。"
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "'%s' input parameter for all shader modes."
@@ -9930,7 +10047,7 @@ msgstr "æ ‡é‡å¸¸æ•°ã€‚"
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Scalar uniform."
-msgstr "æ ‡é‡ä¸€è‡´ã€‚"
+msgstr "æ ‡é‡ Uniform。"
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Perform the cubic texture lookup."
@@ -9942,15 +10059,15 @@ msgstr "æ‰§è¡Œçº¹ç†æŸ¥æ‰¾ã€‚"
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Cubic texture uniform lookup."
-msgstr "立方纹ç†å‡åŒ€æŸ¥æ‰¾ã€‚"
+msgstr "ç«‹æ–¹çº¹ç† Uniform 查找。"
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "2D texture uniform lookup."
-msgstr "2D 纹ç†å‡åŒ€æŸ¥æ‰¾ã€‚"
+msgstr "2D çº¹ç† Uniform 查找。"
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "2D texture uniform lookup with triplanar."
-msgstr "2D 纹ç†å‡åŒ€æŸ¥æ‰¾ä¸Žä¸‰å¹³é¢ã€‚"
+msgstr "2D çº¹ç† Uniform 查找与三平é¢ã€‚"
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Transform function."
@@ -10006,7 +10123,7 @@ msgstr "å˜æ¢å¸¸æ•°ã€‚"
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Transform uniform."
-msgstr "å˜æ¢ç»Ÿä¸€ã€‚"
+msgstr "å˜æ¢ Uniform。"
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Vector function."
@@ -10152,7 +10269,7 @@ msgstr "å‘é‡å¸¸æ•°ã€‚"
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Vector uniform."
-msgstr "å‘é‡ä¸€è‡´ã€‚"
+msgstr "å‘é‡ Uniform。"
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid ""
@@ -10181,7 +10298,7 @@ msgstr ""
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "A reference to an existing uniform."
-msgstr "至现有一致的引用。"
+msgstr "对现有 Uniform 的引用。"
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "(Fragment/Light mode only) Scalar derivative function."
@@ -10261,7 +10378,7 @@ msgid ""
"This might be due to a configuration issue in the export preset or your "
"export settings."
msgstr ""
-"æ— æ³•ä¸ºå¹³å° â€œï¼…s†导出项目。\n"
+"æ— æ³•ä¸ºå¹³å° â€œ%s†导出项目。\n"
"原因å¯èƒ½æ˜¯å¯¼å‡ºé¢„设或导出设置内的é…置有问题。"
#: editor/project_export.cpp
@@ -12114,14 +12231,22 @@ msgid "Change Ray Shape Length"
msgstr "修改射线形状长度"
#: editor/spatial_editor_gizmos.cpp
-#, fuzzy
msgid "Set Room Point Position"
-msgstr "è®¾ç½®æ›²çº¿çš„é¡¶ç‚¹åæ ‡"
+msgstr "设置房间点ä½ç½®"
#: editor/spatial_editor_gizmos.cpp
-#, fuzzy
msgid "Set Portal Point Position"
-msgstr "è®¾ç½®æ›²çº¿çš„é¡¶ç‚¹åæ ‡"
+msgstr "设置入å£ç‚¹ä½ç½®"
+
+#: editor/spatial_editor_gizmos.cpp
+#, fuzzy
+msgid "Set Occluder Sphere Radius"
+msgstr "修改圆柱体åŠå¾„"
+
+#: editor/spatial_editor_gizmos.cpp
+#, fuzzy
+msgid "Set Occluder Sphere Position"
+msgstr "设置曲线内控点ä½ç½®"
#: modules/csg/csg_gizmos.cpp
msgid "Change Cylinder Radius"
@@ -12241,11 +12366,11 @@ msgstr "导出 GLTF..."
#: modules/gridmap/grid_map_editor_plugin.cpp
msgid "Next Plane"
-msgstr "下一个平é¢"
+msgstr "下一平é¢"
#: modules/gridmap/grid_map_editor_plugin.cpp
msgid "Previous Plane"
-msgstr "上一个平é¢"
+msgstr "上一平é¢"
#: modules/gridmap/grid_map_editor_plugin.cpp
msgid "Plane:"
@@ -12257,7 +12382,7 @@ msgstr "下一层"
#: modules/gridmap/grid_map_editor_plugin.cpp
msgid "Previous Floor"
-msgstr "上一个层"
+msgstr "上一层"
#: modules/gridmap/grid_map_editor_plugin.cpp
msgid "Floor:"
@@ -12369,7 +12494,7 @@ msgstr "筛选网格"
#: modules/gridmap/grid_map_editor_plugin.cpp
msgid "Give a MeshLibrary resource to this GridMap to use its meshes."
-msgstr "呿­¤ GridMap æä¾›ç½‘格库资æºä»¥ä½¿ç”¨å…¶ç½‘格。"
+msgstr "呿­¤ GridMap æä¾› MeshLibrary 资æºä»¥ä½¿ç”¨å…¶ç½‘格。"
#: modules/lightmapper_cpu/lightmapper_cpu.cpp
msgid "Begin Bake"
@@ -12403,6 +12528,11 @@ msgstr "绘制光照图"
msgid "Class name can't be a reserved keyword"
msgstr "ç±»åä¸èƒ½æ˜¯ä¿ç•™å…³é”®å­—"
+#: modules/mono/csharp_script.cpp
+#, fuzzy
+msgid "Build Solution"
+msgstr "填充选中项"
+
#: modules/mono/mono_gd/gd_mono_utils.cpp
msgid "End of inner exception stack trace"
msgstr "内部异常堆栈追朔结æŸ"
@@ -12873,130 +13003,130 @@ msgstr "æœç´¢å¯è§†åŒ–脚本节点"
msgid "Get %s"
msgstr "èŽ·å– %s"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Package name is missing."
msgstr "包å缺失。"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Package segments must be of non-zero length."
msgstr "包段的长度必须为éžé›¶ã€‚"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "The character '%s' is not allowed in Android application package names."
msgstr "Android 应用程åºåŒ…å称中ä¸å…许使用字符 “%sâ€ã€‚"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "A digit cannot be the first character in a package segment."
msgstr "包段中的第一个字符ä¸èƒ½æ˜¯æ•°å­—。"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "The character '%s' cannot be the first character in a package segment."
msgstr "包段中的第一个字符ä¸èƒ½æ˜¯ “%sâ€ã€‚"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "The package must have at least one '.' separator."
msgstr "包必须至少有一个 “.†分隔符。"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Select device from the list"
msgstr "从列表中选择设备"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Running on %s"
msgstr "æ­£è¿è¡ŒäºŽ %d"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Exporting APK..."
msgstr "正在导出 APK……"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Uninstalling..."
msgstr "正在å¸è½½â€¦â€¦"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Installing to device, please wait..."
msgstr "正在安装到设备,请ç¨å€™â€¦â€¦"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Could not install to device: %s"
msgstr "无法安装到设备:%s"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Running on device..."
msgstr "正在设备上è¿è¡Œâ€¦â€¦"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Could not execute on device."
msgstr "无法在设备上è¿è¡Œã€‚"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Unable to find the 'apksigner' tool."
msgstr "找ä¸åˆ°â€œapksignerâ€å·¥å…·ã€‚"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Android build template not installed in the project. Install it from the "
"Project menu."
msgstr "未在项目中安装 Android 构建模æ¿ã€‚从项目èœå•安装它。"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Either Debug Keystore, Debug User AND Debug Password settings must be "
"configured OR none of them."
msgstr "Debug Keystoreã€Debug Userã€Debug Password 必须全部填写或者全部留空。"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Debug keystore not configured in the Editor Settings nor in the preset."
msgstr "未在编辑器设置或预设中é…置调试密钥库。"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Either Release Keystore, Release User AND Release Password settings must be "
"configured OR none of them."
msgstr ""
"Release Keystoreã€Release Userã€Release Password 必须全部填写或者全部留空。"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Release keystore incorrectly configured in the export preset."
msgstr "用于å‘布的密钥存储在导出预设中未被正确设置。"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "A valid Android SDK path is required in Editor Settings."
msgstr "ç¼–è¾‘å™¨è®¾ç½®ä¸­éœ€è¦æœ‰æ•ˆçš„Android SDK路径。"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Invalid Android SDK path in Editor Settings."
msgstr "编辑器设置中的Android SDK路径无效。"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Missing 'platform-tools' directory!"
msgstr "缺失“platform-toolsâ€ç›®å½•ï¼"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Unable to find Android SDK platform-tools' adb command."
msgstr "找ä¸åˆ°Android SDKå¹³å°å·¥å…·çš„adb命令。"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Please check in the Android SDK directory specified in Editor Settings."
msgstr "请签入编辑器设置中指定的Android SDK目录。"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Missing 'build-tools' directory!"
msgstr "缺失“build-toolsâ€ç›®å½•ï¼"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Unable to find Android SDK build-tools' apksigner command."
msgstr "找ä¸åˆ°Android SDK生æˆå·¥å…·çš„apksigner命令。"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Invalid public key for APK expansion."
msgstr "APK 扩展的公钥无效。"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Invalid package name:"
msgstr "无效的包å称:"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Invalid \"GodotPaymentV3\" module included in the \"android/modules\" "
"project setting (changed in Godot 3.2.2).\n"
@@ -13004,32 +13134,20 @@ msgstr ""
"“android/modulesâ€ é¡¹ç›®è®¾ç½®ï¼ˆå˜æ›´äºŽGodot 3.2.2)中包å«äº†æ— æ•ˆæ¨¡ç»„ "
"“GodotPaymentV3â€ã€‚\n"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "\"Use Custom Build\" must be enabled to use the plugins."
msgstr "å¿…é¡»å¯ç”¨ “使用自定义构建†æ‰èƒ½ä½¿ç”¨æ’件。"
-#: platform/android/export/export.cpp
-msgid ""
-"\"Degrees Of Freedom\" is only valid when \"Xr Mode\" is \"Oculus Mobile VR"
-"\"."
-msgstr ""
-"“Degrees Of Freedomâ€ åªæœ‰åœ¨å½“ “Xr Mode†是 “Oculus Mobile VRâ€ æ—¶æ‰æœ‰æ•ˆã€‚"
-
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"\"Hand Tracking\" is only valid when \"Xr Mode\" is \"Oculus Mobile VR\"."
msgstr "“Hand Trackingâ€ åªæœ‰åœ¨å½“ “Xr Mode†是 “Oculus Mobile VRâ€ æ—¶æ‰æœ‰æ•ˆã€‚"
-#: platform/android/export/export.cpp
-msgid ""
-"\"Focus Awareness\" is only valid when \"Xr Mode\" is \"Oculus Mobile VR\"."
-msgstr "“Focus Awarenessâ€ åªæœ‰åœ¨å½“ “Xr Mode†是 “Oculus Mobile VRâ€ æ—¶æ‰æœ‰æ•ˆã€‚"
-
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "\"Export AAB\" is only valid when \"Use Custom Build\" is enabled."
msgstr "“Export AABâ€ åªæœ‰åœ¨å½“å¯ç”¨ “Use Custom Buildâ€ æ—¶æ‰æœ‰æ•ˆã€‚"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"'apksigner' could not be found.\n"
"Please check the command is available in the Android SDK build-tools "
@@ -13040,58 +13158,58 @@ msgstr ""
"请检查 Android SDK çš„ build-tools ç›®å½•ä¸­æ˜¯å¦æœ‰æ­¤å‘½ä»¤ã€‚\n"
"生æˆçš„ %s 未签å。"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Signing debug %s..."
msgstr "正在签å调试 %s……"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Signing release %s..."
msgstr "正在签åå‘布 %s……"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Could not find keystore, unable to export."
msgstr "找ä¸åˆ°å¯†é’¥åº“,无法导出。"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "'apksigner' returned with error #%d"
msgstr "“apksignerâ€è¿”回错误 #%d"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Verifying %s..."
msgstr "正在校验 %s……"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "'apksigner' verification of %s failed."
msgstr "“apksignerâ€æ ¡éªŒ %s 失败。"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Exporting for Android"
msgstr "正在为 Android 导出"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Invalid filename! Android App Bundle requires the *.aab extension."
msgstr "无效文件åï¼Android App Bundle 必须有 *.aab 扩展。"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "APK Expansion not compatible with Android App Bundle."
msgstr "APK Expansion 与 Android App Bundle ä¸å…¼å®¹ã€‚"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Invalid filename! Android APK requires the *.apk extension."
msgstr "无效文件åï¼Android APK 必须有 *.apk 扩展。"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Unsupported export format!\n"
msgstr "䏿”¯æŒçš„导出格å¼ï¼\n"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Trying to build from a custom built template, but no version info for it "
"exists. Please reinstall from the 'Project' menu."
msgstr ""
"å°è¯•ä»Žè‡ªå®šä¹‰æž„å»ºçš„æ¨¡æ¿æž„建,但是ä¸å­˜åœ¨å…¶ç‰ˆæœ¬ä¿¡æ¯ã€‚请从“项目â€èœå•䏭釿–°å®‰è£…。"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Android build version mismatch:\n"
" Template installed: %s\n"
@@ -13103,24 +13221,24 @@ msgstr ""
" Godot 版本:%s\n"
"请从“项目â€èœå•䏭釿–°å®‰è£… Android 构建模æ¿ã€‚"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Unable to overwrite res://android/build/res/*.xml files with project name"
msgstr "无法使用项目å称覆盖 res://android/build/res/*.xml 文件"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Could not export project files to gradle project\n"
msgstr "无法将项目文件导出至 gradle 项目\n"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Could not write expansion package file!"
msgstr "无法写入扩展包文件ï¼"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Building Android Project (gradle)"
msgstr "构建 Android 项目 (Gradle)"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Building of Android project failed, check output for the error.\n"
"Alternatively visit docs.godotengine.org for Android build documentation."
@@ -13128,25 +13246,25 @@ msgstr ""
"Android 项目构建失败,请检查输出中显示的错误。\n"
"也å¯ä»¥è®¿é—® docs.godotengine.org 查看 Android 构建文档。"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Moving output"
msgstr "移动输出"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Unable to copy and rename export file, check gradle project directory for "
"outputs."
msgstr "无法å¤åˆ¶ä¸Žæ›´å导出文件,请在 Gradle 项目文件夹内确认输出。"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Package not found: %s"
msgstr "包ä¸å­˜åœ¨ï¼š%s"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Creating APK..."
msgstr "正在创建 APK……"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Could not find template APK to export:\n"
"%s"
@@ -13154,7 +13272,7 @@ msgstr ""
"找ä¸åˆ°å¯¼å‡ºæ¨¡æ¿ APK:\n"
"%s"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Missing libraries in the export template for the selected architectures: "
"%s.\n"
@@ -13164,19 +13282,19 @@ msgstr ""
"导出模æ¿ç¼ºå¤±æ‰€é€‰æž¶æž„的库:%s。\n"
"请使用全部所需的库构建模æ¿ï¼Œæˆ–è€…åœ¨å¯¼å‡ºé¢„è®¾ä¸­å–æ¶ˆå¯¹ç¼ºå¤±æž¶æž„的选择。"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Adding files..."
msgstr "正在添加文件……"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Could not export project files"
msgstr "无法导出项目文件"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Aligning APK..."
msgstr "æ­£åœ¨å¯¹é½ APK……"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Could not unzip temporary unaligned APK."
msgstr "无法解压未对é½çš„临时 APK。"
@@ -13670,6 +13788,14 @@ msgstr ""
"NavigationMeshInstance 类型节点必须作为 Navigation 节点的å­èŠ‚ç‚¹æˆ–å­å­™èŠ‚ç‚¹æ‰èƒ½"
"æä¾›å¯¼èˆªæ•°æ®ã€‚"
+#: scene/3d/occluder.cpp
+msgid "No shape is set."
+msgstr ""
+
+#: scene/3d/occluder.cpp
+msgid "Only uniform scales are supported."
+msgstr ""
+
#: scene/3d/particles.cpp
msgid ""
"GPU-based particles are not supported by the GLES2 video driver.\n"
@@ -13802,36 +13928,44 @@ msgid ""
"RoomList path is invalid.\n"
"Please check the RoomList branch has been assigned in the RoomManager."
msgstr ""
+"RoomList 路径无效。\n"
+"请检查 RoomList 分支是å¦å·²è¢«æŒ‡å®šç»™ RoomManager。"
#: scene/3d/room_manager.cpp
msgid "RoomList contains no Rooms, aborting."
-msgstr ""
+msgstr "RoomList 中ä¸åŒ…å« Room,正在中止。"
#: scene/3d/room_manager.cpp
msgid "Misnamed nodes detected, check output log for details. Aborting."
-msgstr ""
+msgstr "检测到错误命å的节点,详情请检查日志输出。正在中止。"
#: scene/3d/room_manager.cpp
msgid "Portal link room not found, check output log for details."
-msgstr ""
+msgstr "æœªæ‰¾åˆ°å…¥å£æ‰€è¿žæŽ¥çš„æˆ¿é—´ï¼Œè¯¦æƒ…请检查日志输出。"
#: scene/3d/room_manager.cpp
msgid ""
"Portal autolink failed, check output log for details.\n"
"Check the portal is facing outwards from the source room."
msgstr ""
+"å…¥å£è‡ªåŠ¨è¿žæŽ¥å¤±è´¥ï¼Œè¯¦æƒ…è¯·æ£€æŸ¥è¾“å‡ºæ—¥å¿—ã€‚\n"
+"è¯·æ£€æŸ¥è¯¥å…¥å£æ˜¯å¦æœå‘其所在房间的外部。"
#: scene/3d/room_manager.cpp
msgid ""
"Room overlap detected, cameras may work incorrectly in overlapping area.\n"
"Check output log for details."
msgstr ""
+"检测到é‡å çš„æˆ¿é—´ï¼Œæ‘„åƒæœºåœ¨é‡å åŒºåŸŸå¯èƒ½æ— æ³•正常工作。\n"
+"详情请检查日志输出。"
#: scene/3d/room_manager.cpp
msgid ""
"Error calculating room bounds.\n"
"Ensure all rooms contain geometry or manual bounds."
msgstr ""
+"计算房间边界时出错。\n"
+"è¯·ç¡®ä¿æ‰€æœ‰æˆ¿é—´éƒ½åŒ…å«å‡ ä½•ç»“æž„ï¼Œæˆ–è€…åŒ…å«æ‰‹åŠ¨è¾¹ç•Œã€‚"
#: scene/3d/soft_body.cpp
msgid "This body will be ignored until you set a mesh."
@@ -13990,6 +14124,14 @@ msgstr "必须使用有效的扩展å。"
msgid "Enable grid minimap."
msgstr "å¯ç”¨ç½‘æ ¼å°åœ°å›¾ã€‚"
+#: scene/gui/nine_patch_rect.cpp
+msgid ""
+"The Tile and Tile Fit options for Axis Stretch properties are only effective "
+"when using the GLES3 rendering backend.\n"
+"The GLES2 backend is currently in use, so these modes will act like Stretch "
+"instead."
+msgstr ""
+
#: scene/gui/popup.cpp
msgid ""
"Popups will hide by default unless you call popup() or any of the popup*() "
@@ -14040,6 +14182,10 @@ msgstr ""
msgid "Viewport size must be greater than 0 to render anything."
msgstr "Viewport 大å°å¤§äºŽ 0 æ—¶æ‰èƒ½è¿›è¡Œæ¸²æŸ“。"
+#: scene/resources/occluder_shape.cpp
+msgid "OccluderShapeSphere Set Spheres"
+msgstr ""
+
#: scene/resources/visual_shader_nodes.cpp
msgid ""
"The sampler port is connected but not used. Consider changing the source to "
@@ -14084,12 +14230,45 @@ msgstr "对函数的赋值。"
#: servers/visual/shader_language.cpp
msgid "Assignment to uniform."
-msgstr "对统一的赋值。"
+msgstr "对 Uniform 的赋值。"
#: servers/visual/shader_language.cpp
msgid "Constants cannot be modified."
msgstr "ä¸å…许修改常é‡ã€‚"
+#~ msgid "Make Rest Pose (From Bones)"
+#~ msgstr "制作放æ¾å§¿åŠ¿ï¼ˆä»Žéª¨éª¼ï¼‰"
+
+#~ msgid "Bottom"
+#~ msgstr "底部"
+
+#~ msgid "Left"
+#~ msgstr "左方"
+
+#~ msgid "Right"
+#~ msgstr "峿–¹"
+
+#~ msgid "Front"
+#~ msgstr "å‰é¢"
+
+#~ msgid "Rear"
+#~ msgstr "åŽæ–¹"
+
+#~ msgid "Nameless gizmo"
+#~ msgstr "æ— åæŽ§åˆ¶å™¨"
+
+#~ msgid ""
+#~ "\"Degrees Of Freedom\" is only valid when \"Xr Mode\" is \"Oculus Mobile "
+#~ "VR\"."
+#~ msgstr ""
+#~ "“Degrees Of Freedomâ€ åªæœ‰åœ¨å½“ “Xr Mode†是 “Oculus Mobile VRâ€ æ—¶æ‰æœ‰æ•ˆã€‚"
+
+#~ msgid ""
+#~ "\"Focus Awareness\" is only valid when \"Xr Mode\" is \"Oculus Mobile VR"
+#~ "\"."
+#~ msgstr ""
+#~ "“Focus Awarenessâ€ åªæœ‰åœ¨å½“ “Xr Mode†是 “Oculus Mobile VRâ€ æ—¶æ‰æœ‰æ•ˆã€‚"
+
#~ msgid "Package Contents:"
#~ msgstr "包内容:"
@@ -16047,9 +16226,6 @@ msgstr "ä¸å…许修改常é‡ã€‚"
#~ msgid "Images:"
#~ msgstr "图片:"
-#~ msgid "Group"
-#~ msgstr "分组"
-
#~ msgid "Sample Conversion Mode: (.wav files):"
#~ msgstr "éŸ³æ•ˆè½¬æ¢æ–¹å¼ï¼ˆ.wav文件):"
diff --git a/editor/translations/zh_HK.po b/editor/translations/zh_HK.po
index e5327f79d9..b9461bffd0 100644
--- a/editor/translations/zh_HK.po
+++ b/editor/translations/zh_HK.po
@@ -1067,7 +1067,7 @@ msgstr ""
msgid "Dependencies"
msgstr ""
-#: editor/dependency_editor.cpp
+#: editor/dependency_editor.cpp editor/editor_resource_picker.cpp
msgid "Resource"
msgstr "資æº"
@@ -1731,13 +1731,13 @@ msgid ""
"Enabled'."
msgstr ""
-#: editor/editor_export.cpp platform/android/export/export.cpp
+#: editor/editor_export.cpp platform/android/export/export_plugin.cpp
#: platform/iphone/export/export.cpp platform/javascript/export/export.cpp
#: platform/osx/export/export.cpp platform/uwp/export/export.cpp
msgid "Custom debug template not found."
msgstr ""
-#: editor/editor_export.cpp platform/android/export/export.cpp
+#: editor/editor_export.cpp platform/android/export/export_plugin.cpp
#: platform/iphone/export/export.cpp platform/javascript/export/export.cpp
#: platform/osx/export/export.cpp platform/uwp/export/export.cpp
msgid "Custom release template not found."
@@ -2143,7 +2143,7 @@ msgstr ""
msgid "(Re)Importing Assets"
msgstr "導入中:"
-#: editor/editor_help.cpp editor/plugins/spatial_editor_plugin.cpp
+#: editor/editor_help.cpp
#, fuzzy
msgid "Top"
msgstr "最頂"
@@ -2646,6 +2646,32 @@ msgid "Current scene not saved. Open anyway?"
msgstr "未儲存當å‰å ´æ™¯ã€‚ä»è¦é–‹å•Ÿï¼Ÿ"
#: editor/editor_node.cpp
+msgid "Can't undo while mouse buttons are pressed."
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "Nothing to undo."
+msgstr ""
+
+#: editor/editor_node.cpp
+#, fuzzy
+msgid "Undo: %s"
+msgstr "復原"
+
+#: editor/editor_node.cpp
+msgid "Can't redo while mouse buttons are pressed."
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "Nothing to redo."
+msgstr ""
+
+#: editor/editor_node.cpp
+#, fuzzy
+msgid "Redo: %s"
+msgstr "é‡è£½"
+
+#: editor/editor_node.cpp
msgid "Can't reload a scene that was never saved."
msgstr "ä¸èƒ½é‡æ–°è¼‰å…¥å¾žæœªå„²å­˜çš„場景。"
@@ -3328,6 +3354,11 @@ msgid "Merge With Existing"
msgstr ""
#: editor/editor_node.cpp
+#, fuzzy
+msgid "Apply MeshInstance Transforms"
+msgstr "å‹•ç•«è®ŠåŒ–éŽæ¸¡"
+
+#: editor/editor_node.cpp
msgid "Open & Run a Script"
msgstr ""
@@ -3584,6 +3615,10 @@ msgid ""
"property (%s)."
msgstr ""
+#: editor/editor_resource_picker.cpp
+msgid "Quick Load"
+msgstr ""
+
#: editor/editor_resource_picker.cpp editor/property_editor.cpp
msgid "Make Unique"
msgstr ""
@@ -5809,6 +5844,18 @@ msgid "Move CanvasItem \"%s\" to (%d, %d)"
msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Locked"
+msgstr "所有é¸é …"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Grouped"
+msgstr "Groups"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
msgid ""
"Children of containers have their anchors and margins values overridden by "
"their parent."
@@ -6762,7 +6809,11 @@ msgid "Remove Selected Item"
msgstr ""
#: editor/plugins/mesh_library_editor_plugin.cpp
-msgid "Import from Scene"
+msgid "Import from Scene (Ignore Transforms)"
+msgstr ""
+
+#: editor/plugins/mesh_library_editor_plugin.cpp
+msgid "Import from Scene (Apply Transforms)"
msgstr ""
#: editor/plugins/mesh_library_editor_plugin.cpp
@@ -7367,6 +7418,15 @@ msgstr "刪除"
msgid "Flip Portal"
msgstr ""
+#: editor/plugins/room_manager_editor_plugin.cpp
+msgid "Occluder Set Transform"
+msgstr ""
+
+#: editor/plugins/room_manager_editor_plugin.cpp
+#, fuzzy
+msgid "Center Node"
+msgstr "ä¸é¸"
+
#: editor/plugins/root_motion_editor_plugin.cpp
msgid "AnimationTree has no path set to an AnimationPlayer"
msgstr ""
@@ -7910,12 +7970,14 @@ msgid "Skeleton2D"
msgstr ""
#: editor/plugins/skeleton_2d_editor_plugin.cpp
-msgid "Make Rest Pose (From Bones)"
-msgstr ""
+#, fuzzy
+msgid "Reset to Rest Pose"
+msgstr "é è¨­"
#: editor/plugins/skeleton_2d_editor_plugin.cpp
-msgid "Set Bones to Rest Pose"
-msgstr ""
+#, fuzzy
+msgid "Overwrite Rest Pose"
+msgstr "覆蓋"
#: editor/plugins/skeleton_editor_plugin.cpp
msgid "Create physical bones"
@@ -7944,6 +8006,61 @@ msgid "Perspective"
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Top Orthogonal"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Top Perspective"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Bottom Orthogonal"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Bottom Perspective"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Left Orthogonal"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Right Perspective"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Right Orthogonal"
+msgstr "å³ð¨«¡"
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Front Orthogonal"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Front Perspective"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Rear Orthogonal"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Rear Perspective"
+msgstr ""
+
+#. TRANSLATORS: This will be appended to the view name when Auto Orthogonal is enabled.
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid " [auto]"
+msgstr ""
+
+#. TRANSLATORS: This will be appended to the view name when Portal Occulusion is enabled.
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid " [portals active]"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
msgid "Transform Aborted."
msgstr ""
@@ -8058,42 +8175,22 @@ msgid "Bottom View."
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
-msgid "Bottom"
-msgstr ""
-
-#: editor/plugins/spatial_editor_plugin.cpp
msgid "Left View."
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
-msgid "Left"
-msgstr ""
-
-#: editor/plugins/spatial_editor_plugin.cpp
msgid "Right View."
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
-msgid "Right"
-msgstr ""
-
-#: editor/plugins/spatial_editor_plugin.cpp
msgid "Front View."
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
-msgid "Front"
-msgstr ""
-
-#: editor/plugins/spatial_editor_plugin.cpp
msgid "Rear View."
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
-msgid "Rear"
-msgstr ""
-
-#: editor/plugins/spatial_editor_plugin.cpp
msgid "Align Transform with View"
msgstr ""
@@ -8367,6 +8464,11 @@ msgid "View Portal Culling"
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "View Occlusion Culling"
+msgstr "æ’ä»¶"
+
+#: editor/plugins/spatial_editor_plugin.cpp
#: modules/gridmap/grid_map_editor_plugin.cpp
#, fuzzy
msgid "Settings..."
@@ -8433,7 +8535,7 @@ msgid "Post"
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
-msgid "Nameless gizmo"
+msgid "Unnamed Gizmo"
msgstr ""
#: editor/plugins/sprite_editor_plugin.cpp
@@ -12639,6 +12741,15 @@ msgstr "åªé™é¸ä¸­"
msgid "Set Portal Point Position"
msgstr "åªé™é¸ä¸­"
+#: editor/spatial_editor_gizmos.cpp
+msgid "Set Occluder Sphere Radius"
+msgstr ""
+
+#: editor/spatial_editor_gizmos.cpp
+#, fuzzy
+msgid "Set Occluder Sphere Position"
+msgstr "åªé™é¸ä¸­"
+
#: modules/csg/csg_gizmos.cpp
msgid "Change Cylinder Radius"
msgstr ""
@@ -12940,6 +13051,11 @@ msgstr "光照圖生æˆä¸­"
msgid "Class name can't be a reserved keyword"
msgstr ""
+#: modules/mono/csharp_script.cpp
+#, fuzzy
+msgid "Build Solution"
+msgstr "所有é¸é …"
+
#: modules/mono/mono_gd/gd_mono_utils.cpp
msgid "End of inner exception stack trace"
msgstr ""
@@ -13442,166 +13558,155 @@ msgstr "貼上"
msgid "Get %s"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Package name is missing."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Package segments must be of non-zero length."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "The character '%s' is not allowed in Android application package names."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "A digit cannot be the first character in a package segment."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "The character '%s' cannot be the first character in a package segment."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "The package must have at least one '.' separator."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Select device from the list"
msgstr "從列表é¸å–設備"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Running on %s"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
#, fuzzy
msgid "Exporting APK..."
msgstr "匯出"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
#, fuzzy
msgid "Uninstalling..."
msgstr "解除安è£"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
#, fuzzy
msgid "Installing to device, please wait..."
msgstr "接收 mirrors中, è«‹ç¨ä¾¯..."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
#, fuzzy
msgid "Could not install to device: %s"
msgstr "無法新增資料夾"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
#, fuzzy
msgid "Running on device..."
msgstr "正在é‹è¡Œè‡ªå®šç¾©è…³æœ¬..."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
#, fuzzy
msgid "Could not execute on device."
msgstr "無法新增資料夾"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Unable to find the 'apksigner' tool."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Android build template not installed in the project. Install it from the "
"Project menu."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Either Debug Keystore, Debug User AND Debug Password settings must be "
"configured OR none of them."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Debug keystore not configured in the Editor Settings nor in the preset."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Either Release Keystore, Release User AND Release Password settings must be "
"configured OR none of them."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Release keystore incorrectly configured in the export preset."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "A valid Android SDK path is required in Editor Settings."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Invalid Android SDK path in Editor Settings."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Missing 'platform-tools' directory!"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Unable to find Android SDK platform-tools' adb command."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Please check in the Android SDK directory specified in Editor Settings."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Missing 'build-tools' directory!"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Unable to find Android SDK build-tools' apksigner command."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Invalid public key for APK expansion."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
#, fuzzy
msgid "Invalid package name:"
msgstr "無效å稱"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Invalid \"GodotPaymentV3\" module included in the \"android/modules\" "
"project setting (changed in Godot 3.2.2).\n"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "\"Use Custom Build\" must be enabled to use the plugins."
msgstr ""
-#: platform/android/export/export.cpp
-msgid ""
-"\"Degrees Of Freedom\" is only valid when \"Xr Mode\" is \"Oculus Mobile VR"
-"\"."
-msgstr ""
-
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"\"Hand Tracking\" is only valid when \"Xr Mode\" is \"Oculus Mobile VR\"."
msgstr ""
-#: platform/android/export/export.cpp
-msgid ""
-"\"Focus Awareness\" is only valid when \"Xr Mode\" is \"Oculus Mobile VR\"."
-msgstr ""
-
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "\"Export AAB\" is only valid when \"Use Custom Build\" is enabled."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"'apksigner' could not be found.\n"
"Please check the command is available in the Android SDK build-tools "
@@ -13609,61 +13714,61 @@ msgid ""
"The resulting %s is unsigned."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Signing debug %s..."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
#, fuzzy
msgid "Signing release %s..."
msgstr "æ­£åœ¨æŽƒææª”案, è«‹ç¨å€™..."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
#, fuzzy
msgid "Could not find keystore, unable to export."
msgstr "無法新增資料夾"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "'apksigner' returned with error #%d"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
#, fuzzy
msgid "Verifying %s..."
msgstr "設定"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "'apksigner' verification of %s failed."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
#, fuzzy
msgid "Exporting for Android"
msgstr "匯出"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Invalid filename! Android App Bundle requires the *.aab extension."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "APK Expansion not compatible with Android App Bundle."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Invalid filename! Android APK requires the *.apk extension."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Unsupported export format!\n"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Trying to build from a custom built template, but no version info for it "
"exists. Please reinstall from the 'Project' menu."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Android build version mismatch:\n"
" Template installed: %s\n"
@@ -13671,58 +13776,58 @@ msgid ""
"Please reinstall Android build template from 'Project' menu."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Unable to overwrite res://android/build/res/*.xml files with project name"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Could not export project files to gradle project\n"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
#, fuzzy
msgid "Could not write expansion package file!"
msgstr "無法新增資料夾"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Building Android Project (gradle)"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Building of Android project failed, check output for the error.\n"
"Alternatively visit docs.godotengine.org for Android build documentation."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Moving output"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Unable to copy and rename export file, check gradle project directory for "
"outputs."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
#, fuzzy
msgid "Package not found: %s"
msgstr "時長(秒)。"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
#, fuzzy
msgid "Creating APK..."
msgstr "連接中..."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
#, fuzzy
msgid ""
"Could not find template APK to export:\n"
"%s"
msgstr "無法新增資料夾"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Missing libraries in the export template for the selected architectures: "
"%s.\n"
@@ -13730,21 +13835,21 @@ msgid ""
"architectures in the export preset."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
#, fuzzy
msgid "Adding files..."
msgstr "ç¯©é¸æª”案..."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
#, fuzzy
msgid "Could not export project files"
msgstr "無法新增資料夾"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Aligning APK..."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Could not unzip temporary unaligned APK."
msgstr ""
@@ -14212,6 +14317,14 @@ msgid ""
"It only provides navigation data."
msgstr ""
+#: scene/3d/occluder.cpp
+msgid "No shape is set."
+msgstr ""
+
+#: scene/3d/occluder.cpp
+msgid "Only uniform scales are supported."
+msgstr ""
+
#: scene/3d/particles.cpp
msgid ""
"GPU-based particles are not supported by the GLES2 video driver.\n"
@@ -14505,6 +14618,14 @@ msgstr "請用有效的副檔å。"
msgid "Enable grid minimap."
msgstr ""
+#: scene/gui/nine_patch_rect.cpp
+msgid ""
+"The Tile and Tile Fit options for Axis Stretch properties are only effective "
+"when using the GLES3 rendering backend.\n"
+"The GLES2 backend is currently in use, so these modes will act like Stretch "
+"instead."
+msgstr ""
+
#: scene/gui/popup.cpp
msgid ""
"Popups will hide by default unless you call popup() or any of the popup*() "
@@ -14546,6 +14667,10 @@ msgstr ""
msgid "Viewport size must be greater than 0 to render anything."
msgstr "viewport大å°å¿…須大於ï¼ä»¥æ¸²æŸ“任何æ±è¥¿ã€‚"
+#: scene/resources/occluder_shape.cpp
+msgid "OccluderShapeSphere Set Spheres"
+msgstr ""
+
#: scene/resources/visual_shader_nodes.cpp
msgid ""
"The sampler port is connected but not used. Consider changing the source to "
diff --git a/editor/translations/zh_TW.po b/editor/translations/zh_TW.po
index 4fc48abd03..db1603cc9b 100644
--- a/editor/translations/zh_TW.po
+++ b/editor/translations/zh_TW.po
@@ -1036,7 +1036,7 @@ msgstr ""
msgid "Dependencies"
msgstr "ç›¸ä¾æ€§"
-#: editor/dependency_editor.cpp
+#: editor/dependency_editor.cpp editor/editor_resource_picker.cpp
msgid "Resource"
msgstr "資æº"
@@ -1695,13 +1695,13 @@ msgstr ""
"目標平å°ä¸Šçš„ GLES2 回退驅動器功能必須使用「PVRTCã€ç´‹ç†å£“縮。\n"
"請在專案設定中啟用「Import Pvrtcã€æˆ–是ç¦ç”¨ã€ŒDriver Fallback Enabledã€ã€‚"
-#: editor/editor_export.cpp platform/android/export/export.cpp
+#: editor/editor_export.cpp platform/android/export/export_plugin.cpp
#: platform/iphone/export/export.cpp platform/javascript/export/export.cpp
#: platform/osx/export/export.cpp platform/uwp/export/export.cpp
msgid "Custom debug template not found."
msgstr "找ä¸åˆ°è‡ªå®šç¾©åµéŒ¯æ¨£æ¿ã€‚"
-#: editor/editor_export.cpp platform/android/export/export.cpp
+#: editor/editor_export.cpp platform/android/export/export_plugin.cpp
#: platform/iphone/export/export.cpp platform/javascript/export/export.cpp
#: platform/osx/export/export.cpp platform/uwp/export/export.cpp
msgid "Custom release template not found."
@@ -2081,7 +2081,7 @@ msgstr "ç”±æ–¼æœ‰å¤šå€‹åŒ¯å…¥å™¨å°æª”案 %s æä¾›äº†ä¸åŒçš„型別,已中æ­
msgid "(Re)Importing Assets"
msgstr "ï¼ˆé‡æ–°ï¼‰åŒ¯å…¥ç´ æ"
-#: editor/editor_help.cpp editor/plugins/spatial_editor_plugin.cpp
+#: editor/editor_help.cpp
msgid "Top"
msgstr "頂端"
@@ -2577,6 +2577,32 @@ msgid "Current scene not saved. Open anyway?"
msgstr "尚未ä¿å­˜ç›®å‰å ´æ™¯ã€‚ä»ç„¶è¦é–‹å•Ÿå—Žï¼Ÿ"
#: editor/editor_node.cpp
+msgid "Can't undo while mouse buttons are pressed."
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "Nothing to undo."
+msgstr ""
+
+#: editor/editor_node.cpp
+#, fuzzy
+msgid "Undo: %s"
+msgstr "復原"
+
+#: editor/editor_node.cpp
+msgid "Can't redo while mouse buttons are pressed."
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "Nothing to redo."
+msgstr ""
+
+#: editor/editor_node.cpp
+#, fuzzy
+msgid "Redo: %s"
+msgstr "å–æ¶ˆå¾©åŽŸ"
+
+#: editor/editor_node.cpp
msgid "Can't reload a scene that was never saved."
msgstr "ç„¡æ³•é‡æ–°è¼‰å…¥å¾žæœªä¿å­˜éŽçš„場景。"
@@ -3238,6 +3264,11 @@ msgid "Merge With Existing"
msgstr "èˆ‡ç¾æœ‰çš„åˆä½µ"
#: editor/editor_node.cpp
+#, fuzzy
+msgid "Apply MeshInstance Transforms"
+msgstr "更改動畫變æ›"
+
+#: editor/editor_node.cpp
msgid "Open & Run a Script"
msgstr "開啟並執行腳本"
@@ -3490,6 +3521,10 @@ msgid ""
"property (%s)."
msgstr "所é¸è³‡æºï¼ˆ%s)ä¸ç¬¦åˆä»»è©²å±¬æ€§ï¼ˆ%s)的任何型別。"
+#: editor/editor_resource_picker.cpp
+msgid "Quick Load"
+msgstr ""
+
#: editor/editor_resource_picker.cpp editor/property_editor.cpp
msgid "Make Unique"
msgstr "ç¨ç«‹åŒ–"
@@ -5592,6 +5627,18 @@ msgid "Move CanvasItem \"%s\" to (%d, %d)"
msgstr "移動 CanvasItem「%sã€è‡³ (%d, %d)"
#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Locked"
+msgstr "鎖定所é¸"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Grouped"
+msgstr "群組"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
msgid ""
"Children of containers have their anchors and margins values overridden by "
"their parent."
@@ -6530,7 +6577,13 @@ msgid "Remove Selected Item"
msgstr "移除所é¸é …ç›®"
#: editor/plugins/mesh_library_editor_plugin.cpp
-msgid "Import from Scene"
+#, fuzzy
+msgid "Import from Scene (Ignore Transforms)"
+msgstr "自場景匯入"
+
+#: editor/plugins/mesh_library_editor_plugin.cpp
+#, fuzzy
+msgid "Import from Scene (Apply Transforms)"
msgstr "自場景匯入"
#: editor/plugins/mesh_library_editor_plugin.cpp
@@ -7120,6 +7173,16 @@ msgstr "已產生的頂點數é‡ï¼š"
msgid "Flip Portal"
msgstr "水平翻轉"
+#: editor/plugins/room_manager_editor_plugin.cpp
+#, fuzzy
+msgid "Occluder Set Transform"
+msgstr "清除變æ›"
+
+#: editor/plugins/room_manager_editor_plugin.cpp
+#, fuzzy
+msgid "Center Node"
+msgstr "建立節點"
+
#: editor/plugins/root_motion_editor_plugin.cpp
msgid "AnimationTree has no path set to an AnimationPlayer"
msgstr "AnimationTree 未設定至 AnimationPlayer 的路徑"
@@ -7618,12 +7681,14 @@ msgid "Skeleton2D"
msgstr "Sekeleton2D"
#: editor/plugins/skeleton_2d_editor_plugin.cpp
-msgid "Make Rest Pose (From Bones)"
-msgstr "è£½ä½œéœæ­¢å§¿å‹¢ï¼ˆè‡ªéª¨éª¼ï¼‰"
+#, fuzzy
+msgid "Reset to Rest Pose"
+msgstr "è¨­å®šéª¨éª¼ç‚ºéœæ­¢å§¿å‹¢"
#: editor/plugins/skeleton_2d_editor_plugin.cpp
-msgid "Set Bones to Rest Pose"
-msgstr "è¨­å®šéª¨éª¼ç‚ºéœæ­¢å§¿å‹¢"
+#, fuzzy
+msgid "Overwrite Rest Pose"
+msgstr "複寫"
#: editor/plugins/skeleton_editor_plugin.cpp
msgid "Create physical bones"
@@ -7650,6 +7715,71 @@ msgid "Perspective"
msgstr "é€è¦–"
#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Top Orthogonal"
+msgstr "正交"
+
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Top Perspective"
+msgstr "é€è¦–"
+
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Bottom Orthogonal"
+msgstr "正交"
+
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Bottom Perspective"
+msgstr "é€è¦–"
+
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Left Orthogonal"
+msgstr "正交"
+
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Right Perspective"
+msgstr "é€è¦–"
+
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Right Orthogonal"
+msgstr "正交"
+
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Front Orthogonal"
+msgstr "正交"
+
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Front Perspective"
+msgstr "é€è¦–"
+
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Rear Orthogonal"
+msgstr "正交"
+
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Rear Perspective"
+msgstr "é€è¦–"
+
+#. TRANSLATORS: This will be appended to the view name when Auto Orthogonal is enabled.
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid " [auto]"
+msgstr ""
+
+#. TRANSLATORS: This will be appended to the view name when Portal Occulusion is enabled.
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid " [portals active]"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
msgid "Transform Aborted."
msgstr "已中止變æ›ã€‚"
@@ -7768,42 +7898,22 @@ msgid "Bottom View."
msgstr "仰視圖。"
#: editor/plugins/spatial_editor_plugin.cpp
-msgid "Bottom"
-msgstr "底部"
-
-#: editor/plugins/spatial_editor_plugin.cpp
msgid "Left View."
msgstr "左視圖。"
#: editor/plugins/spatial_editor_plugin.cpp
-msgid "Left"
-msgstr "å·¦"
-
-#: editor/plugins/spatial_editor_plugin.cpp
msgid "Right View."
msgstr "å³è¦–圖。"
#: editor/plugins/spatial_editor_plugin.cpp
-msgid "Right"
-msgstr "å³"
-
-#: editor/plugins/spatial_editor_plugin.cpp
msgid "Front View."
msgstr "å‰è¦–圖。"
#: editor/plugins/spatial_editor_plugin.cpp
-msgid "Front"
-msgstr "æ­£é¢"
-
-#: editor/plugins/spatial_editor_plugin.cpp
msgid "Rear View."
msgstr "後視圖。"
#: editor/plugins/spatial_editor_plugin.cpp
-msgid "Rear"
-msgstr "後"
-
-#: editor/plugins/spatial_editor_plugin.cpp
msgid "Align Transform with View"
msgstr "將變æ›èˆ‡è¦–圖å°é½Š"
@@ -8076,6 +8186,11 @@ msgid "View Portal Culling"
msgstr "檢視å€è¨­å®š"
#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "View Occlusion Culling"
+msgstr "檢視å€è¨­å®š"
+
+#: editor/plugins/spatial_editor_plugin.cpp
#: modules/gridmap/grid_map_editor_plugin.cpp
msgid "Settings..."
msgstr "設定..."
@@ -8141,8 +8256,9 @@ msgid "Post"
msgstr "後置"
#: editor/plugins/spatial_editor_plugin.cpp
-msgid "Nameless gizmo"
-msgstr "未命åçš„ Gizmo"
+#, fuzzy
+msgid "Unnamed Gizmo"
+msgstr "未命å專案"
#: editor/plugins/sprite_editor_plugin.cpp
msgid "Create Mesh2D"
@@ -12252,6 +12368,16 @@ msgstr "設定曲線控制點ä½ç½®"
msgid "Set Portal Point Position"
msgstr "設定曲線控制點ä½ç½®"
+#: editor/spatial_editor_gizmos.cpp
+#, fuzzy
+msgid "Set Occluder Sphere Radius"
+msgstr "更改圓柱形åŠå¾‘"
+
+#: editor/spatial_editor_gizmos.cpp
+#, fuzzy
+msgid "Set Occluder Sphere Position"
+msgstr "設定曲線內控制點ä½ç½®"
+
#: modules/csg/csg_gizmos.cpp
msgid "Change Cylinder Radius"
msgstr "更改圓柱體åŠå¾‘"
@@ -12535,6 +12661,11 @@ msgstr "正在繪製光照"
msgid "Class name can't be a reserved keyword"
msgstr "類別å稱ä¸èƒ½ç‚ºä¿ç•™é—œéµå­—"
+#: modules/mono/csharp_script.cpp
+#, fuzzy
+msgid "Build Solution"
+msgstr "填充所é¸"
+
#: modules/mono/mono_gd/gd_mono_utils.cpp
msgid "End of inner exception stack trace"
msgstr "å…§éƒ¨ç•°å¸¸å †ç–Šå›žæº¯çµæŸ"
@@ -13007,135 +13138,135 @@ msgstr "æœå°‹è¦–覺腳本 (VisualScript)"
msgid "Get %s"
msgstr "å–å¾— %s"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Package name is missing."
msgstr "缺少套件å稱。"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Package segments must be of non-zero length."
msgstr "套件片段 (Segment) 的長度ä¸å¯ç‚º 0。"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "The character '%s' is not allowed in Android application package names."
msgstr "Android 應用程å¼å¥—ä»¶å稱ä¸å¯ä½¿ç”¨å­—元「%sã€ã€‚"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "A digit cannot be the first character in a package segment."
msgstr "套件片段 (Segment) 的第一個字元ä¸å¯ç‚ºæ•¸å­—。"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "The character '%s' cannot be the first character in a package segment."
msgstr "套件片段 (Segment) 的第一個字元ä¸å¯ç‚ºã€Œ%sã€ã€‚"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "The package must have at least one '.' separator."
msgstr "套件必須至少有一個「.ã€åˆ†éš”字元。"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Select device from the list"
msgstr "è‡ªæ¸…å–®ä¸­é¸æ“‡è£ç½®"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Running on %s"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
#, fuzzy
msgid "Exporting APK..."
msgstr "全部匯出"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
#, fuzzy
msgid "Uninstalling..."
msgstr "å–æ¶ˆå®‰è£"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
#, fuzzy
msgid "Installing to device, please wait..."
msgstr "載入中,請ç¨å¾Œ..."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
#, fuzzy
msgid "Could not install to device: %s"
msgstr "無法啟動å­è™•ç†ç¨‹åºï¼"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
#, fuzzy
msgid "Running on device..."
msgstr "正在執行自定腳本..."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
#, fuzzy
msgid "Could not execute on device."
msgstr "無法新增資料夾。"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Unable to find the 'apksigner' tool."
msgstr "找ä¸åˆ°ã€Œapksignerã€å·¥å…·ã€‚"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Android build template not installed in the project. Install it from the "
"Project menu."
msgstr "å°šæœªæ–¼å°ˆæ¡ˆä¸­å®‰è£ Android 建置樣æ¿ã€‚請先於專案目錄中進行安è£ã€‚"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Either Debug Keystore, Debug User AND Debug Password settings must be "
"configured OR none of them."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Debug keystore not configured in the Editor Settings nor in the preset."
msgstr "尚未於編輯器設定或é è¨­è¨­å®šä¸­è¨­å®šé‡‘é‘°å„²å­˜å€ (Keystore)。"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Either Release Keystore, Release User AND Release Password settings must be "
"configured OR none of them."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Release keystore incorrectly configured in the export preset."
msgstr "發行金鑰儲存å€ä¸­ä¸æ­£ç¢ºä¹‹çµ„態設定至匯出é è¨­è¨­å®šã€‚"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "A valid Android SDK path is required in Editor Settings."
msgstr "必須於 [編輯器設定] 中æä¾›ä¸€å€‹æœ‰æ•ˆçš„ Android SDK 路徑。"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Invalid Android SDK path in Editor Settings."
msgstr "[編輯器設定] 中所指定的 Android SDK 路徑無效。"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Missing 'platform-tools' directory!"
msgstr "缺少「platform-toolsã€è³‡æ–™å¤¾ï¼"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Unable to find Android SDK platform-tools' adb command."
msgstr "找ä¸åˆ° Android SDK platform-tools çš„ adb 指令。"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Please check in the Android SDK directory specified in Editor Settings."
msgstr "請檢查 [編輯器設定] 中所指定的 Android SDK 資料夾。"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Missing 'build-tools' directory!"
msgstr "缺少「build-toolsã€è³‡æ–™å¤¾ï¼"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Unable to find Android SDK build-tools' apksigner command."
msgstr "找ä¸åˆ° Android SDK build-tools çš„ apksigner 指令。"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Invalid public key for APK expansion."
msgstr "無效的 APK Expansion 公鑰。"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Invalid package name:"
msgstr "無效的套件å稱:"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Invalid \"GodotPaymentV3\" module included in the \"android/modules\" "
"project setting (changed in Godot 3.2.2).\n"
@@ -13143,37 +13274,22 @@ msgstr ""
"「andoird/modulesã€å°ˆæ¡ˆè¨­å®šä¸­åŒ…å«äº†ç„¡æ•ˆçš„「GodotPaymentV3ã€æ¨¡çµ„(更改於 "
"Godot 3.2.2)。\n"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "\"Use Custom Build\" must be enabled to use the plugins."
msgstr "「使用自定建置ã€å¿…須啟用以使用本外掛。"
-#: platform/android/export/export.cpp
-msgid ""
-"\"Degrees Of Freedom\" is only valid when \"Xr Mode\" is \"Oculus Mobile VR"
-"\"."
-msgstr ""
-"「Degrees Of Freedomã€ï¼ˆè‡ªç”±è§’度)僅å¯åœ¨ã€ŒXr Modeã€ï¼ˆXR 模å¼ï¼‰è¨­ç‚ºã€ŒOculus "
-"Mobile VRã€æ™‚å¯ç”¨ã€‚"
-
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"\"Hand Tracking\" is only valid when \"Xr Mode\" is \"Oculus Mobile VR\"."
msgstr ""
"「Hand Trackingã€ï¼ˆæ‰‹éƒ¨è¿½è¹¤ï¼‰åƒ…å¯åœ¨ã€ŒXr Modeã€ï¼ˆXR 模å¼ï¼‰è¨­ç‚ºã€ŒOculus Mobile "
"VRã€æ™‚å¯ç”¨ã€‚"
-#: platform/android/export/export.cpp
-msgid ""
-"\"Focus Awareness\" is only valid when \"Xr Mode\" is \"Oculus Mobile VR\"."
-msgstr ""
-"「Focus Awarenessã€ï¼ˆæé«˜é—œæ³¨åº¦ï¼‰åƒ…å¯åœ¨ã€ŒXr Modeã€ï¼ˆXR 模å¼ï¼‰è¨­ç‚ºã€ŒOculus "
-"Mobile VRã€æ™‚å¯ç”¨ã€‚"
-
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "\"Export AAB\" is only valid when \"Use Custom Build\" is enabled."
msgstr "「Export AABã€åƒ…於「Use Custom Buildã€å•Ÿç”¨æ™‚å¯ç”¨ã€‚"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"'apksigner' could not be found.\n"
"Please check the command is available in the Android SDK build-tools "
@@ -13181,64 +13297,64 @@ msgid ""
"The resulting %s is unsigned."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Signing debug %s..."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
#, fuzzy
msgid "Signing release %s..."
msgstr ""
"æ­£åœ¨æŽƒææª”案,\n"
"è«‹ç¨å¾Œ..."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
#, fuzzy
msgid "Could not find keystore, unable to export."
msgstr "無法開啟樣æ¿ä»¥è¼¸å‡ºï¼š"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "'apksigner' returned with error #%d"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
#, fuzzy
msgid "Verifying %s..."
msgstr "正在新增 %s…"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "'apksigner' verification of %s failed."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
#, fuzzy
msgid "Exporting for Android"
msgstr "全部匯出"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Invalid filename! Android App Bundle requires the *.aab extension."
msgstr "無效的檔案å稱ï¼Android App Bundle å¿…é ˆè¦æœ‰ *.aab 副檔å。"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "APK Expansion not compatible with Android App Bundle."
msgstr "APK Expansion 與 Android App Bundle ä¸ç›¸å®¹ã€‚"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Invalid filename! Android APK requires the *.apk extension."
msgstr "無效的檔案å稱ï¼Android APK å¿…é ˆè¦æœ‰ *.apk 副檔å。"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Unsupported export format!\n"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Trying to build from a custom built template, but no version info for it "
"exists. Please reinstall from the 'Project' menu."
msgstr ""
"嘗試自自定建置樣æ¿é€²è¡Œå»ºç½®ï¼Œä½†ç„¡ç‰ˆæœ¬è³‡è¨Šå¯ç”¨ã€‚請自「專案ã€é¸å–®ä¸­é‡æ–°å®‰è£ã€‚"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Android build version mismatch:\n"
" Template installed: %s\n"
@@ -13250,26 +13366,26 @@ msgstr ""
" Godot 版本:%s\n"
"請自「專案ã€ç›®éŒ„䏭釿–°å®‰è£ Android 建置樣æ¿ã€‚"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Unable to overwrite res://android/build/res/*.xml files with project name"
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
#, fuzzy
msgid "Could not export project files to gradle project\n"
msgstr "無法在專案路徑中編輯 project.godot。"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
#, fuzzy
msgid "Could not write expansion package file!"
msgstr "無法寫入檔案:"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Building Android Project (gradle)"
msgstr "建置 Android 專案(Gradle)"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Building of Android project failed, check output for the error.\n"
"Alternatively visit docs.godotengine.org for Android build documentation."
@@ -13277,34 +13393,34 @@ msgstr ""
"建置 Android 專案失敗,請檢查輸出以確èªéŒ¯èª¤ã€‚\n"
"也å¯ä»¥ç€è¦½ docs.godotengine.org 以ç€è¦½ Android 建置說明文件。"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Moving output"
msgstr "移動輸出"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Unable to copy and rename export file, check gradle project directory for "
"outputs."
msgstr "無法複製並更å匯出的檔案,請於 Gradle 專案資料夾內確èªè¼¸å‡ºã€‚"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
#, fuzzy
msgid "Package not found: %s"
msgstr "未找到動畫:「%sã€"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
#, fuzzy
msgid "Creating APK..."
msgstr "正在建立輪廓..."
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
#, fuzzy
msgid ""
"Could not find template APK to export:\n"
"%s"
msgstr "無法開啟樣æ¿ä»¥è¼¸å‡ºï¼š"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid ""
"Missing libraries in the export template for the selected architectures: "
"%s.\n"
@@ -13312,21 +13428,21 @@ msgid ""
"architectures in the export preset."
msgstr ""
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
#, fuzzy
msgid "Adding files..."
msgstr "正在新增 %s…"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
#, fuzzy
msgid "Could not export project files"
msgstr "無法寫入檔案:"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Aligning APK..."
msgstr "正在å°é½Š APK…"
-#: platform/android/export/export.cpp
+#: platform/android/export/export_plugin.cpp
msgid "Could not unzip temporary unaligned APK."
msgstr ""
@@ -13822,6 +13938,14 @@ msgstr ""
"NavigationMeshInstance 必須為 Navigation 節點的å­ç¯€é»žæˆ–次級å­ç¯€é»žã€‚其僅æä¾›å°Ž"
"航資料。"
+#: scene/3d/occluder.cpp
+msgid "No shape is set."
+msgstr ""
+
+#: scene/3d/occluder.cpp
+msgid "Only uniform scales are supported."
+msgstr ""
+
#: scene/3d/particles.cpp
msgid ""
"GPU-based particles are not supported by the GLES2 video driver.\n"
@@ -14139,6 +14263,14 @@ msgstr "必須使用有效的副檔å。"
msgid "Enable grid minimap."
msgstr "啟用網格迷你地圖。"
+#: scene/gui/nine_patch_rect.cpp
+msgid ""
+"The Tile and Tile Fit options for Axis Stretch properties are only effective "
+"when using the GLES3 rendering backend.\n"
+"The GLES2 backend is currently in use, so these modes will act like Stretch "
+"instead."
+msgstr ""
+
#: scene/gui/popup.cpp
msgid ""
"Popups will hide by default unless you call popup() or any of the popup*() "
@@ -14189,6 +14321,10 @@ msgstr ""
msgid "Viewport size must be greater than 0 to render anything."
msgstr "Viewport 大å°å¿…須大於 0 æ‰å¯é€²è¡Œç®—繪。"
+#: scene/resources/occluder_shape.cpp
+msgid "OccluderShapeSphere Set Spheres"
+msgstr ""
+
#: scene/resources/visual_shader_nodes.cpp
msgid ""
"The sampler port is connected but not used. Consider changing the source to "
@@ -14240,6 +14376,41 @@ msgstr "指派至å‡å‹»ã€‚"
msgid "Constants cannot be modified."
msgstr "ä¸å¯ä¿®æ”¹å¸¸æ•¸ã€‚"
+#~ msgid "Make Rest Pose (From Bones)"
+#~ msgstr "è£½ä½œéœæ­¢å§¿å‹¢ï¼ˆè‡ªéª¨éª¼ï¼‰"
+
+#~ msgid "Bottom"
+#~ msgstr "底部"
+
+#~ msgid "Left"
+#~ msgstr "å·¦"
+
+#~ msgid "Right"
+#~ msgstr "å³"
+
+#~ msgid "Front"
+#~ msgstr "æ­£é¢"
+
+#~ msgid "Rear"
+#~ msgstr "後"
+
+#~ msgid "Nameless gizmo"
+#~ msgstr "未命åçš„ Gizmo"
+
+#~ msgid ""
+#~ "\"Degrees Of Freedom\" is only valid when \"Xr Mode\" is \"Oculus Mobile "
+#~ "VR\"."
+#~ msgstr ""
+#~ "「Degrees Of Freedomã€ï¼ˆè‡ªç”±è§’度)僅å¯åœ¨ã€ŒXr Modeã€ï¼ˆXR 模å¼ï¼‰è¨­ç‚º"
+#~ "「Oculus Mobile VRã€æ™‚å¯ç”¨ã€‚"
+
+#~ msgid ""
+#~ "\"Focus Awareness\" is only valid when \"Xr Mode\" is \"Oculus Mobile VR"
+#~ "\"."
+#~ msgstr ""
+#~ "「Focus Awarenessã€ï¼ˆæé«˜é—œæ³¨åº¦ï¼‰åƒ…å¯åœ¨ã€ŒXr Modeã€ï¼ˆXR 模å¼ï¼‰è¨­ç‚ºã€ŒOculus "
+#~ "Mobile VRã€æ™‚å¯ç”¨ã€‚"
+
#~ msgid "Package Contents:"
#~ msgstr "套件內容:"
diff --git a/main/main.cpp b/main/main.cpp
index fc24010e7b..d512c41e7a 100644
--- a/main/main.cpp
+++ b/main/main.cpp
@@ -2689,8 +2689,9 @@ void Main::cleanup(bool p_force) {
rendering_server->global_variables_clear();
if (xr_server) {
- // cleanup now before we pull the rug from underneath...
- memdelete(xr_server);
+ // Now that we're unregistering properly in plugins we need to keep access to xr_server for a little longer
+ // We do however unset our primary interface
+ xr_server->set_primary_interface(Ref<XRInterface>());
}
unregister_driver_types();
@@ -2706,6 +2707,10 @@ void Main::cleanup(bool p_force) {
unregister_scene_types();
unregister_server_types();
+ if (xr_server) {
+ memdelete(xr_server);
+ }
+
if (audio_server) {
audio_server->finish();
memdelete(audio_server);
diff --git a/methods.py b/methods.py
index 50b413a0e6..0e71adb40d 100644
--- a/methods.py
+++ b/methods.py
@@ -56,6 +56,17 @@ def disable_warnings(self):
self.Append(CXXFLAGS=["-w"])
+def force_optimization_on_debug(self):
+ # 'self' is the environment
+ if self["target"] != "debug":
+ return
+
+ if self.msvc:
+ self.Append(CCFLAGS=["/O2"])
+ else:
+ self.Append(CCFLAGS=["-O3"])
+
+
def add_module_version_string(self, s):
self.module_version_string += "." + s
diff --git a/modules/bullet/SCsub b/modules/bullet/SCsub
index ba57de303e..09509abc44 100644
--- a/modules/bullet/SCsub
+++ b/modules/bullet/SCsub
@@ -10,7 +10,7 @@ env_bullet = env_modules.Clone()
thirdparty_obj = []
if env["builtin_bullet"]:
- # Build only version 2 for now (as of 2.89)
+ # Build only "Bullet2" API (not "Bullet3" folders).
# Sync file list with relevant upstream CMakeLists.txt for each folder.
if env["float"] == "64":
env.Append(CPPDEFINES=["BT_USE_DOUBLE_PRECISION=1"])
@@ -189,6 +189,7 @@ if env["builtin_bullet"]:
"LinearMath/btGeometryUtil.cpp",
"LinearMath/btPolarDecomposition.cpp",
"LinearMath/btQuickprof.cpp",
+ "LinearMath/btReducedVector.cpp",
"LinearMath/btSerializer.cpp",
"LinearMath/btSerializer64.cpp",
"LinearMath/btThreads.cpp",
@@ -200,15 +201,11 @@ if env["builtin_bullet"]:
thirdparty_sources = [thirdparty_dir + file for file in bullet2_src]
- # Treat Bullet headers as system headers to avoid raising warnings. Not supported on MSVC.
- if not env.msvc:
- env_bullet.Append(CPPFLAGS=["-isystem", Dir(thirdparty_dir).path])
- else:
- env_bullet.Prepend(CPPPATH=[thirdparty_dir])
+ env_bullet.Prepend(CPPPATH=[thirdparty_dir])
if env["target"] == "debug" or env["target"] == "release_debug":
env_bullet.Append(CPPDEFINES=["DEBUG"])
- env_bullet.Append(CPPDEFINES=["BT_USE_OLD_DAMPING_METHOD"])
+ env_bullet.Append(CPPDEFINES=["BT_USE_OLD_DAMPING_METHOD", "BT_THREADSAFE"])
env_thirdparty = env_bullet.Clone()
env_thirdparty.disable_warnings()
diff --git a/modules/bullet/bullet_physics_server.cpp b/modules/bullet/bullet_physics_server.cpp
index ed05e51e53..3054debaec 100644
--- a/modules/bullet/bullet_physics_server.cpp
+++ b/modules/bullet/bullet_physics_server.cpp
@@ -124,7 +124,7 @@ RID BulletPhysicsServer3D::shape_create(ShapeType p_shape) {
}
void BulletPhysicsServer3D::shape_set_data(RID p_shape, const Variant &p_data) {
- ShapeBullet *shape = shape_owner.getornull(p_shape);
+ ShapeBullet *shape = shape_owner.get_or_null(p_shape);
ERR_FAIL_COND(!shape);
shape->set_data(p_data);
}
@@ -134,25 +134,25 @@ void BulletPhysicsServer3D::shape_set_custom_solver_bias(RID p_shape, real_t p_b
}
PhysicsServer3D::ShapeType BulletPhysicsServer3D::shape_get_type(RID p_shape) const {
- ShapeBullet *shape = shape_owner.getornull(p_shape);
+ ShapeBullet *shape = shape_owner.get_or_null(p_shape);
ERR_FAIL_COND_V(!shape, PhysicsServer3D::SHAPE_CUSTOM);
return shape->get_type();
}
Variant BulletPhysicsServer3D::shape_get_data(RID p_shape) const {
- ShapeBullet *shape = shape_owner.getornull(p_shape);
+ ShapeBullet *shape = shape_owner.get_or_null(p_shape);
ERR_FAIL_COND_V(!shape, Variant());
return shape->get_data();
}
void BulletPhysicsServer3D::shape_set_margin(RID p_shape, real_t p_margin) {
- ShapeBullet *shape = shape_owner.getornull(p_shape);
+ ShapeBullet *shape = shape_owner.get_or_null(p_shape);
ERR_FAIL_COND(!shape);
shape->set_margin(p_margin);
}
real_t BulletPhysicsServer3D::shape_get_margin(RID p_shape) const {
- ShapeBullet *shape = shape_owner.getornull(p_shape);
+ ShapeBullet *shape = shape_owner.get_or_null(p_shape);
ERR_FAIL_COND_V(!shape, 0.0);
return shape->get_margin();
}
@@ -168,7 +168,7 @@ RID BulletPhysicsServer3D::space_create() {
}
void BulletPhysicsServer3D::space_set_active(RID p_space, bool p_active) {
- SpaceBullet *space = space_owner.getornull(p_space);
+ SpaceBullet *space = space_owner.get_or_null(p_space);
ERR_FAIL_COND(!space);
if (space_is_active(p_space) == p_active) {
@@ -185,47 +185,47 @@ void BulletPhysicsServer3D::space_set_active(RID p_space, bool p_active) {
}
bool BulletPhysicsServer3D::space_is_active(RID p_space) const {
- SpaceBullet *space = space_owner.getornull(p_space);
+ SpaceBullet *space = space_owner.get_or_null(p_space);
ERR_FAIL_COND_V(!space, false);
return -1 != active_spaces.find(space);
}
void BulletPhysicsServer3D::space_set_param(RID p_space, SpaceParameter p_param, real_t p_value) {
- SpaceBullet *space = space_owner.getornull(p_space);
+ SpaceBullet *space = space_owner.get_or_null(p_space);
ERR_FAIL_COND(!space);
space->set_param(p_param, p_value);
}
real_t BulletPhysicsServer3D::space_get_param(RID p_space, SpaceParameter p_param) const {
- SpaceBullet *space = space_owner.getornull(p_space);
+ SpaceBullet *space = space_owner.get_or_null(p_space);
ERR_FAIL_COND_V(!space, 0);
return space->get_param(p_param);
}
PhysicsDirectSpaceState3D *BulletPhysicsServer3D::space_get_direct_state(RID p_space) {
- SpaceBullet *space = space_owner.getornull(p_space);
+ SpaceBullet *space = space_owner.get_or_null(p_space);
ERR_FAIL_COND_V(!space, nullptr);
return space->get_direct_state();
}
void BulletPhysicsServer3D::space_set_debug_contacts(RID p_space, int p_max_contacts) {
- SpaceBullet *space = space_owner.getornull(p_space);
+ SpaceBullet *space = space_owner.get_or_null(p_space);
ERR_FAIL_COND(!space);
space->set_debug_contacts(p_max_contacts);
}
Vector<Vector3> BulletPhysicsServer3D::space_get_contacts(RID p_space) const {
- SpaceBullet *space = space_owner.getornull(p_space);
+ SpaceBullet *space = space_owner.get_or_null(p_space);
ERR_FAIL_COND_V(!space, Vector<Vector3>());
return space->get_debug_contacts();
}
int BulletPhysicsServer3D::space_get_contact_count(RID p_space) const {
- SpaceBullet *space = space_owner.getornull(p_space);
+ SpaceBullet *space = space_owner.get_or_null(p_space);
ERR_FAIL_COND_V(!space, 0);
return space->get_debug_contact_count();
@@ -239,91 +239,91 @@ RID BulletPhysicsServer3D::area_create() {
}
void BulletPhysicsServer3D::area_set_space(RID p_area, RID p_space) {
- AreaBullet *area = area_owner.getornull(p_area);
+ AreaBullet *area = area_owner.get_or_null(p_area);
ERR_FAIL_COND(!area);
SpaceBullet *space = nullptr;
if (p_space.is_valid()) {
- space = space_owner.getornull(p_space);
+ space = space_owner.get_or_null(p_space);
ERR_FAIL_COND(!space);
}
area->set_space(space);
}
RID BulletPhysicsServer3D::area_get_space(RID p_area) const {
- AreaBullet *area = area_owner.getornull(p_area);
+ AreaBullet *area = area_owner.get_or_null(p_area);
return area->get_space()->get_self();
}
void BulletPhysicsServer3D::area_set_space_override_mode(RID p_area, AreaSpaceOverrideMode p_mode) {
- AreaBullet *area = area_owner.getornull(p_area);
+ AreaBullet *area = area_owner.get_or_null(p_area);
ERR_FAIL_COND(!area);
area->set_spOv_mode(p_mode);
}
PhysicsServer3D::AreaSpaceOverrideMode BulletPhysicsServer3D::area_get_space_override_mode(RID p_area) const {
- AreaBullet *area = area_owner.getornull(p_area);
+ AreaBullet *area = area_owner.get_or_null(p_area);
ERR_FAIL_COND_V(!area, PhysicsServer3D::AREA_SPACE_OVERRIDE_DISABLED);
return area->get_spOv_mode();
}
void BulletPhysicsServer3D::area_add_shape(RID p_area, RID p_shape, const Transform3D &p_transform, bool p_disabled) {
- AreaBullet *area = area_owner.getornull(p_area);
+ AreaBullet *area = area_owner.get_or_null(p_area);
ERR_FAIL_COND(!area);
- ShapeBullet *shape = shape_owner.getornull(p_shape);
+ ShapeBullet *shape = shape_owner.get_or_null(p_shape);
ERR_FAIL_COND(!shape);
area->add_shape(shape, p_transform, p_disabled);
}
void BulletPhysicsServer3D::area_set_shape(RID p_area, int p_shape_idx, RID p_shape) {
- AreaBullet *area = area_owner.getornull(p_area);
+ AreaBullet *area = area_owner.get_or_null(p_area);
ERR_FAIL_COND(!area);
- ShapeBullet *shape = shape_owner.getornull(p_shape);
+ ShapeBullet *shape = shape_owner.get_or_null(p_shape);
ERR_FAIL_COND(!shape);
area->set_shape(p_shape_idx, shape);
}
void BulletPhysicsServer3D::area_set_shape_transform(RID p_area, int p_shape_idx, const Transform3D &p_transform) {
- AreaBullet *area = area_owner.getornull(p_area);
+ AreaBullet *area = area_owner.get_or_null(p_area);
ERR_FAIL_COND(!area);
area->set_shape_transform(p_shape_idx, p_transform);
}
int BulletPhysicsServer3D::area_get_shape_count(RID p_area) const {
- AreaBullet *area = area_owner.getornull(p_area);
+ AreaBullet *area = area_owner.get_or_null(p_area);
ERR_FAIL_COND_V(!area, 0);
return area->get_shape_count();
}
RID BulletPhysicsServer3D::area_get_shape(RID p_area, int p_shape_idx) const {
- AreaBullet *area = area_owner.getornull(p_area);
+ AreaBullet *area = area_owner.get_or_null(p_area);
ERR_FAIL_COND_V(!area, RID());
return area->get_shape(p_shape_idx)->get_self();
}
Transform3D BulletPhysicsServer3D::area_get_shape_transform(RID p_area, int p_shape_idx) const {
- AreaBullet *area = area_owner.getornull(p_area);
+ AreaBullet *area = area_owner.get_or_null(p_area);
ERR_FAIL_COND_V(!area, Transform3D());
return area->get_shape_transform(p_shape_idx);
}
void BulletPhysicsServer3D::area_remove_shape(RID p_area, int p_shape_idx) {
- AreaBullet *area = area_owner.getornull(p_area);
+ AreaBullet *area = area_owner.get_or_null(p_area);
ERR_FAIL_COND(!area);
return area->remove_shape_full(p_shape_idx);
}
void BulletPhysicsServer3D::area_clear_shapes(RID p_area) {
- AreaBullet *area = area_owner.getornull(p_area);
+ AreaBullet *area = area_owner.get_or_null(p_area);
ERR_FAIL_COND(!area);
for (int i = area->get_shape_count(); 0 < i; --i) {
@@ -332,7 +332,7 @@ void BulletPhysicsServer3D::area_clear_shapes(RID p_area) {
}
void BulletPhysicsServer3D::area_set_shape_disabled(RID p_area, int p_shape_idx, bool p_disabled) {
- AreaBullet *area = area_owner.getornull(p_area);
+ AreaBullet *area = area_owner.get_or_null(p_area);
ERR_FAIL_COND(!area);
area->set_shape_disabled(p_shape_idx, p_disabled);
@@ -342,7 +342,7 @@ void BulletPhysicsServer3D::area_attach_object_instance_id(RID p_area, ObjectID
if (space_owner.owns(p_area)) {
return;
}
- AreaBullet *area = area_owner.getornull(p_area);
+ AreaBullet *area = area_owner.get_or_null(p_area);
ERR_FAIL_COND(!area);
area->set_instance_id(p_id);
}
@@ -351,19 +351,19 @@ ObjectID BulletPhysicsServer3D::area_get_object_instance_id(RID p_area) const {
if (space_owner.owns(p_area)) {
return ObjectID();
}
- AreaBullet *area = area_owner.getornull(p_area);
+ AreaBullet *area = area_owner.get_or_null(p_area);
ERR_FAIL_COND_V(!area, ObjectID());
return area->get_instance_id();
}
void BulletPhysicsServer3D::area_set_param(RID p_area, AreaParameter p_param, const Variant &p_value) {
if (space_owner.owns(p_area)) {
- SpaceBullet *space = space_owner.getornull(p_area);
+ SpaceBullet *space = space_owner.get_or_null(p_area);
if (space) {
space->set_param(p_param, p_value);
}
} else {
- AreaBullet *area = area_owner.getornull(p_area);
+ AreaBullet *area = area_owner.get_or_null(p_area);
ERR_FAIL_COND(!area);
area->set_param(p_param, p_value);
@@ -372,10 +372,10 @@ void BulletPhysicsServer3D::area_set_param(RID p_area, AreaParameter p_param, co
Variant BulletPhysicsServer3D::area_get_param(RID p_area, AreaParameter p_param) const {
if (space_owner.owns(p_area)) {
- SpaceBullet *space = space_owner.getornull(p_area);
+ SpaceBullet *space = space_owner.get_or_null(p_area);
return space->get_param(p_param);
} else {
- AreaBullet *area = area_owner.getornull(p_area);
+ AreaBullet *area = area_owner.get_or_null(p_area);
ERR_FAIL_COND_V(!area, Variant());
return area->get_param(p_param);
@@ -383,52 +383,52 @@ Variant BulletPhysicsServer3D::area_get_param(RID p_area, AreaParameter p_param)
}
void BulletPhysicsServer3D::area_set_transform(RID p_area, const Transform3D &p_transform) {
- AreaBullet *area = area_owner.getornull(p_area);
+ AreaBullet *area = area_owner.get_or_null(p_area);
ERR_FAIL_COND(!area);
area->set_transform(p_transform);
}
Transform3D BulletPhysicsServer3D::area_get_transform(RID p_area) const {
- AreaBullet *area = area_owner.getornull(p_area);
+ AreaBullet *area = area_owner.get_or_null(p_area);
ERR_FAIL_COND_V(!area, Transform3D());
return area->get_transform();
}
void BulletPhysicsServer3D::area_set_collision_mask(RID p_area, uint32_t p_mask) {
- AreaBullet *area = area_owner.getornull(p_area);
+ AreaBullet *area = area_owner.get_or_null(p_area);
ERR_FAIL_COND(!area);
area->set_collision_mask(p_mask);
}
void BulletPhysicsServer3D::area_set_collision_layer(RID p_area, uint32_t p_layer) {
- AreaBullet *area = area_owner.getornull(p_area);
+ AreaBullet *area = area_owner.get_or_null(p_area);
ERR_FAIL_COND(!area);
area->set_collision_layer(p_layer);
}
void BulletPhysicsServer3D::area_set_monitorable(RID p_area, bool p_monitorable) {
- AreaBullet *area = area_owner.getornull(p_area);
+ AreaBullet *area = area_owner.get_or_null(p_area);
ERR_FAIL_COND(!area);
area->set_monitorable(p_monitorable);
}
void BulletPhysicsServer3D::area_set_monitor_callback(RID p_area, Object *p_receiver, const StringName &p_method) {
- AreaBullet *area = area_owner.getornull(p_area);
+ AreaBullet *area = area_owner.get_or_null(p_area);
ERR_FAIL_COND(!area);
area->set_event_callback(CollisionObjectBullet::TYPE_RIGID_BODY, p_receiver ? p_receiver->get_instance_id() : ObjectID(), p_method);
}
void BulletPhysicsServer3D::area_set_area_monitor_callback(RID p_area, Object *p_receiver, const StringName &p_method) {
- AreaBullet *area = area_owner.getornull(p_area);
+ AreaBullet *area = area_owner.get_or_null(p_area);
ERR_FAIL_COND(!area);
area->set_event_callback(CollisionObjectBullet::TYPE_AREA, p_receiver ? p_receiver->get_instance_id() : ObjectID(), p_method);
}
void BulletPhysicsServer3D::area_set_ray_pickable(RID p_area, bool p_enable) {
- AreaBullet *area = area_owner.getornull(p_area);
+ AreaBullet *area = area_owner.get_or_null(p_area);
ERR_FAIL_COND(!area);
area->set_ray_pickable(p_enable);
}
@@ -445,12 +445,12 @@ RID BulletPhysicsServer3D::body_create(BodyMode p_mode, bool p_init_sleeping) {
}
void BulletPhysicsServer3D::body_set_space(RID p_body, RID p_space) {
- RigidBodyBullet *body = rigid_body_owner.getornull(p_body);
+ RigidBodyBullet *body = rigid_body_owner.get_or_null(p_body);
ERR_FAIL_COND(!body);
SpaceBullet *space = nullptr;
if (p_space.is_valid()) {
- space = space_owner.getornull(p_space);
+ space = space_owner.get_or_null(p_space);
ERR_FAIL_COND(!space);
}
@@ -462,7 +462,7 @@ void BulletPhysicsServer3D::body_set_space(RID p_body, RID p_space) {
}
RID BulletPhysicsServer3D::body_get_space(RID p_body) const {
- RigidBodyBullet *body = rigid_body_owner.getornull(p_body);
+ RigidBodyBullet *body = rigid_body_owner.get_or_null(p_body);
ERR_FAIL_COND_V(!body, RID());
SpaceBullet *space = body->get_space();
@@ -473,52 +473,52 @@ RID BulletPhysicsServer3D::body_get_space(RID p_body) const {
}
void BulletPhysicsServer3D::body_set_mode(RID p_body, PhysicsServer3D::BodyMode p_mode) {
- RigidBodyBullet *body = rigid_body_owner.getornull(p_body);
+ RigidBodyBullet *body = rigid_body_owner.get_or_null(p_body);
ERR_FAIL_COND(!body);
body->set_mode(p_mode);
}
PhysicsServer3D::BodyMode BulletPhysicsServer3D::body_get_mode(RID p_body) const {
- RigidBodyBullet *body = rigid_body_owner.getornull(p_body);
+ RigidBodyBullet *body = rigid_body_owner.get_or_null(p_body);
ERR_FAIL_COND_V(!body, BODY_MODE_STATIC);
return body->get_mode();
}
void BulletPhysicsServer3D::body_add_shape(RID p_body, RID p_shape, const Transform3D &p_transform, bool p_disabled) {
- RigidBodyBullet *body = rigid_body_owner.getornull(p_body);
+ RigidBodyBullet *body = rigid_body_owner.get_or_null(p_body);
ERR_FAIL_COND(!body);
- ShapeBullet *shape = shape_owner.getornull(p_shape);
+ ShapeBullet *shape = shape_owner.get_or_null(p_shape);
ERR_FAIL_COND(!shape);
body->add_shape(shape, p_transform, p_disabled);
}
void BulletPhysicsServer3D::body_set_shape(RID p_body, int p_shape_idx, RID p_shape) {
- RigidBodyBullet *body = rigid_body_owner.getornull(p_body);
+ RigidBodyBullet *body = rigid_body_owner.get_or_null(p_body);
ERR_FAIL_COND(!body);
- ShapeBullet *shape = shape_owner.getornull(p_shape);
+ ShapeBullet *shape = shape_owner.get_or_null(p_shape);
ERR_FAIL_COND(!shape);
body->set_shape(p_shape_idx, shape);
}
void BulletPhysicsServer3D::body_set_shape_transform(RID p_body, int p_shape_idx, const Transform3D &p_transform) {
- RigidBodyBullet *body = rigid_body_owner.getornull(p_body);
+ RigidBodyBullet *body = rigid_body_owner.get_or_null(p_body);
ERR_FAIL_COND(!body);
body->set_shape_transform(p_shape_idx, p_transform);
}
int BulletPhysicsServer3D::body_get_shape_count(RID p_body) const {
- RigidBodyBullet *body = rigid_body_owner.getornull(p_body);
+ RigidBodyBullet *body = rigid_body_owner.get_or_null(p_body);
ERR_FAIL_COND_V(!body, 0);
return body->get_shape_count();
}
RID BulletPhysicsServer3D::body_get_shape(RID p_body, int p_shape_idx) const {
- RigidBodyBullet *body = rigid_body_owner.getornull(p_body);
+ RigidBodyBullet *body = rigid_body_owner.get_or_null(p_body);
ERR_FAIL_COND_V(!body, RID());
ShapeBullet *shape = body->get_shape(p_shape_idx);
@@ -528,27 +528,27 @@ RID BulletPhysicsServer3D::body_get_shape(RID p_body, int p_shape_idx) const {
}
Transform3D BulletPhysicsServer3D::body_get_shape_transform(RID p_body, int p_shape_idx) const {
- RigidBodyBullet *body = rigid_body_owner.getornull(p_body);
+ RigidBodyBullet *body = rigid_body_owner.get_or_null(p_body);
ERR_FAIL_COND_V(!body, Transform3D());
return body->get_shape_transform(p_shape_idx);
}
void BulletPhysicsServer3D::body_set_shape_disabled(RID p_body, int p_shape_idx, bool p_disabled) {
- RigidBodyBullet *body = rigid_body_owner.getornull(p_body);
+ RigidBodyBullet *body = rigid_body_owner.get_or_null(p_body);
ERR_FAIL_COND(!body);
body->set_shape_disabled(p_shape_idx, p_disabled);
}
void BulletPhysicsServer3D::body_remove_shape(RID p_body, int p_shape_idx) {
- RigidBodyBullet *body = rigid_body_owner.getornull(p_body);
+ RigidBodyBullet *body = rigid_body_owner.get_or_null(p_body);
ERR_FAIL_COND(!body);
body->remove_shape_full(p_shape_idx);
}
void BulletPhysicsServer3D::body_clear_shapes(RID p_body) {
- RigidBodyBullet *body = rigid_body_owner.getornull(p_body);
+ RigidBodyBullet *body = rigid_body_owner.get_or_null(p_body);
ERR_FAIL_COND(!body);
body->remove_all_shapes();
@@ -569,42 +569,42 @@ ObjectID BulletPhysicsServer3D::body_get_object_instance_id(RID p_body) const {
}
void BulletPhysicsServer3D::body_set_enable_continuous_collision_detection(RID p_body, bool p_enable) {
- RigidBodyBullet *body = rigid_body_owner.getornull(p_body);
+ RigidBodyBullet *body = rigid_body_owner.get_or_null(p_body);
ERR_FAIL_COND(!body);
body->set_continuous_collision_detection(p_enable);
}
bool BulletPhysicsServer3D::body_is_continuous_collision_detection_enabled(RID p_body) const {
- RigidBodyBullet *body = rigid_body_owner.getornull(p_body);
+ RigidBodyBullet *body = rigid_body_owner.get_or_null(p_body);
ERR_FAIL_COND_V(!body, false);
return body->is_continuous_collision_detection_enabled();
}
void BulletPhysicsServer3D::body_set_collision_layer(RID p_body, uint32_t p_layer) {
- RigidBodyBullet *body = rigid_body_owner.getornull(p_body);
+ RigidBodyBullet *body = rigid_body_owner.get_or_null(p_body);
ERR_FAIL_COND(!body);
body->set_collision_layer(p_layer);
}
uint32_t BulletPhysicsServer3D::body_get_collision_layer(RID p_body) const {
- const RigidBodyBullet *body = rigid_body_owner.getornull(p_body);
+ const RigidBodyBullet *body = rigid_body_owner.get_or_null(p_body);
ERR_FAIL_COND_V(!body, 0);
return body->get_collision_layer();
}
void BulletPhysicsServer3D::body_set_collision_mask(RID p_body, uint32_t p_mask) {
- RigidBodyBullet *body = rigid_body_owner.getornull(p_body);
+ RigidBodyBullet *body = rigid_body_owner.get_or_null(p_body);
ERR_FAIL_COND(!body);
body->set_collision_mask(p_mask);
}
uint32_t BulletPhysicsServer3D::body_get_collision_mask(RID p_body) const {
- RigidBodyBullet *body = rigid_body_owner.getornull(p_body);
+ RigidBodyBullet *body = rigid_body_owner.get_or_null(p_body);
ERR_FAIL_COND_V(!body, 0);
return body->get_collision_mask();
@@ -620,21 +620,21 @@ uint32_t BulletPhysicsServer3D::body_get_user_flags(RID p_body) const {
}
void BulletPhysicsServer3D::body_set_param(RID p_body, BodyParameter p_param, real_t p_value) {
- RigidBodyBullet *body = rigid_body_owner.getornull(p_body);
+ RigidBodyBullet *body = rigid_body_owner.get_or_null(p_body);
ERR_FAIL_COND(!body);
body->set_param(p_param, p_value);
}
real_t BulletPhysicsServer3D::body_get_param(RID p_body, BodyParameter p_param) const {
- RigidBodyBullet *body = rigid_body_owner.getornull(p_body);
+ RigidBodyBullet *body = rigid_body_owner.get_or_null(p_body);
ERR_FAIL_COND_V(!body, 0);
return body->get_param(p_param);
}
void BulletPhysicsServer3D::body_set_kinematic_safe_margin(RID p_body, real_t p_margin) {
- RigidBodyBullet *body = rigid_body_owner.getornull(p_body);
+ RigidBodyBullet *body = rigid_body_owner.get_or_null(p_body);
ERR_FAIL_COND(!body);
if (body->get_kinematic_utilities()) {
@@ -643,7 +643,7 @@ void BulletPhysicsServer3D::body_set_kinematic_safe_margin(RID p_body, real_t p_
}
real_t BulletPhysicsServer3D::body_get_kinematic_safe_margin(RID p_body) const {
- RigidBodyBullet *body = rigid_body_owner.getornull(p_body);
+ RigidBodyBullet *body = rigid_body_owner.get_or_null(p_body);
ERR_FAIL_COND_V(!body, 0);
if (body->get_kinematic_utilities()) {
@@ -654,90 +654,90 @@ real_t BulletPhysicsServer3D::body_get_kinematic_safe_margin(RID p_body) const {
}
void BulletPhysicsServer3D::body_set_state(RID p_body, BodyState p_state, const Variant &p_variant) {
- RigidBodyBullet *body = rigid_body_owner.getornull(p_body);
+ RigidBodyBullet *body = rigid_body_owner.get_or_null(p_body);
ERR_FAIL_COND(!body);
body->set_state(p_state, p_variant);
}
Variant BulletPhysicsServer3D::body_get_state(RID p_body, BodyState p_state) const {
- RigidBodyBullet *body = rigid_body_owner.getornull(p_body);
+ RigidBodyBullet *body = rigid_body_owner.get_or_null(p_body);
ERR_FAIL_COND_V(!body, Variant());
return body->get_state(p_state);
}
void BulletPhysicsServer3D::body_set_applied_force(RID p_body, const Vector3 &p_force) {
- RigidBodyBullet *body = rigid_body_owner.getornull(p_body);
+ RigidBodyBullet *body = rigid_body_owner.get_or_null(p_body);
ERR_FAIL_COND(!body);
body->set_applied_force(p_force);
}
Vector3 BulletPhysicsServer3D::body_get_applied_force(RID p_body) const {
- RigidBodyBullet *body = rigid_body_owner.getornull(p_body);
+ RigidBodyBullet *body = rigid_body_owner.get_or_null(p_body);
ERR_FAIL_COND_V(!body, Vector3());
return body->get_applied_force();
}
void BulletPhysicsServer3D::body_set_applied_torque(RID p_body, const Vector3 &p_torque) {
- RigidBodyBullet *body = rigid_body_owner.getornull(p_body);
+ RigidBodyBullet *body = rigid_body_owner.get_or_null(p_body);
ERR_FAIL_COND(!body);
body->set_applied_torque(p_torque);
}
Vector3 BulletPhysicsServer3D::body_get_applied_torque(RID p_body) const {
- RigidBodyBullet *body = rigid_body_owner.getornull(p_body);
+ RigidBodyBullet *body = rigid_body_owner.get_or_null(p_body);
ERR_FAIL_COND_V(!body, Vector3());
return body->get_applied_torque();
}
void BulletPhysicsServer3D::body_add_central_force(RID p_body, const Vector3 &p_force) {
- RigidBodyBullet *body = rigid_body_owner.getornull(p_body);
+ RigidBodyBullet *body = rigid_body_owner.get_or_null(p_body);
ERR_FAIL_COND(!body);
body->apply_central_force(p_force);
}
void BulletPhysicsServer3D::body_add_force(RID p_body, const Vector3 &p_force, const Vector3 &p_position) {
- RigidBodyBullet *body = rigid_body_owner.getornull(p_body);
+ RigidBodyBullet *body = rigid_body_owner.get_or_null(p_body);
ERR_FAIL_COND(!body);
body->apply_force(p_force, p_position);
}
void BulletPhysicsServer3D::body_add_torque(RID p_body, const Vector3 &p_torque) {
- RigidBodyBullet *body = rigid_body_owner.getornull(p_body);
+ RigidBodyBullet *body = rigid_body_owner.get_or_null(p_body);
ERR_FAIL_COND(!body);
body->apply_torque(p_torque);
}
void BulletPhysicsServer3D::body_apply_central_impulse(RID p_body, const Vector3 &p_impulse) {
- RigidBodyBullet *body = rigid_body_owner.getornull(p_body);
+ RigidBodyBullet *body = rigid_body_owner.get_or_null(p_body);
ERR_FAIL_COND(!body);
body->apply_central_impulse(p_impulse);
}
void BulletPhysicsServer3D::body_apply_impulse(RID p_body, const Vector3 &p_impulse, const Vector3 &p_position) {
- RigidBodyBullet *body = rigid_body_owner.getornull(p_body);
+ RigidBodyBullet *body = rigid_body_owner.get_or_null(p_body);
ERR_FAIL_COND(!body);
body->apply_impulse(p_impulse, p_position);
}
void BulletPhysicsServer3D::body_apply_torque_impulse(RID p_body, const Vector3 &p_impulse) {
- RigidBodyBullet *body = rigid_body_owner.getornull(p_body);
+ RigidBodyBullet *body = rigid_body_owner.get_or_null(p_body);
ERR_FAIL_COND(!body);
body->apply_torque_impulse(p_impulse);
}
void BulletPhysicsServer3D::body_set_axis_velocity(RID p_body, const Vector3 &p_axis_velocity) {
- RigidBodyBullet *body = rigid_body_owner.getornull(p_body);
+ RigidBodyBullet *body = rigid_body_owner.get_or_null(p_body);
ERR_FAIL_COND(!body);
Vector3 v = body->get_linear_velocity();
@@ -748,39 +748,39 @@ void BulletPhysicsServer3D::body_set_axis_velocity(RID p_body, const Vector3 &p_
}
void BulletPhysicsServer3D::body_set_axis_lock(RID p_body, BodyAxis p_axis, bool p_lock) {
- RigidBodyBullet *body = rigid_body_owner.getornull(p_body);
+ RigidBodyBullet *body = rigid_body_owner.get_or_null(p_body);
ERR_FAIL_COND(!body);
body->set_axis_lock(p_axis, p_lock);
}
bool BulletPhysicsServer3D::body_is_axis_locked(RID p_body, BodyAxis p_axis) const {
- const RigidBodyBullet *body = rigid_body_owner.getornull(p_body);
+ const RigidBodyBullet *body = rigid_body_owner.get_or_null(p_body);
ERR_FAIL_COND_V(!body, 0);
return body->is_axis_locked(p_axis);
}
void BulletPhysicsServer3D::body_add_collision_exception(RID p_body, RID p_body_b) {
- RigidBodyBullet *body = rigid_body_owner.getornull(p_body);
+ RigidBodyBullet *body = rigid_body_owner.get_or_null(p_body);
ERR_FAIL_COND(!body);
- RigidBodyBullet *other_body = rigid_body_owner.getornull(p_body_b);
+ RigidBodyBullet *other_body = rigid_body_owner.get_or_null(p_body_b);
ERR_FAIL_COND(!other_body);
body->add_collision_exception(other_body);
}
void BulletPhysicsServer3D::body_remove_collision_exception(RID p_body, RID p_body_b) {
- RigidBodyBullet *body = rigid_body_owner.getornull(p_body);
+ RigidBodyBullet *body = rigid_body_owner.get_or_null(p_body);
ERR_FAIL_COND(!body);
- RigidBodyBullet *other_body = rigid_body_owner.getornull(p_body_b);
+ RigidBodyBullet *other_body = rigid_body_owner.get_or_null(p_body_b);
ERR_FAIL_COND(!other_body);
body->remove_collision_exception(other_body);
}
void BulletPhysicsServer3D::body_get_collision_exceptions(RID p_body, List<RID> *p_exceptions) {
- RigidBodyBullet *body = rigid_body_owner.getornull(p_body);
+ RigidBodyBullet *body = rigid_body_owner.get_or_null(p_body);
ERR_FAIL_COND(!body);
for (int i = 0; i < body->get_exceptions().size(); i++) {
p_exceptions->push_back(body->get_exceptions()[i]);
@@ -788,14 +788,14 @@ void BulletPhysicsServer3D::body_get_collision_exceptions(RID p_body, List<RID>
}
void BulletPhysicsServer3D::body_set_max_contacts_reported(RID p_body, int p_contacts) {
- RigidBodyBullet *body = rigid_body_owner.getornull(p_body);
+ RigidBodyBullet *body = rigid_body_owner.get_or_null(p_body);
ERR_FAIL_COND(!body);
body->set_max_collisions_detection(p_contacts);
}
int BulletPhysicsServer3D::body_get_max_contacts_reported(RID p_body) const {
- RigidBodyBullet *body = rigid_body_owner.getornull(p_body);
+ RigidBodyBullet *body = rigid_body_owner.get_or_null(p_body);
ERR_FAIL_COND_V(!body, 0);
return body->get_max_collisions_detection();
@@ -811,39 +811,39 @@ real_t BulletPhysicsServer3D::body_get_contacts_reported_depth_threshold(RID p_b
}
void BulletPhysicsServer3D::body_set_omit_force_integration(RID p_body, bool p_omit) {
- RigidBodyBullet *body = rigid_body_owner.getornull(p_body);
+ RigidBodyBullet *body = rigid_body_owner.get_or_null(p_body);
ERR_FAIL_COND(!body);
body->set_omit_forces_integration(p_omit);
}
bool BulletPhysicsServer3D::body_is_omitting_force_integration(RID p_body) const {
- RigidBodyBullet *body = rigid_body_owner.getornull(p_body);
+ RigidBodyBullet *body = rigid_body_owner.get_or_null(p_body);
ERR_FAIL_COND_V(!body, false);
return body->get_omit_forces_integration();
}
void BulletPhysicsServer3D::body_set_force_integration_callback(RID p_body, const Callable &p_callable, const Variant &p_udata) {
- RigidBodyBullet *body = rigid_body_owner.getornull(p_body);
+ RigidBodyBullet *body = rigid_body_owner.get_or_null(p_body);
ERR_FAIL_COND(!body);
body->set_force_integration_callback(p_callable, p_udata);
}
void BulletPhysicsServer3D::body_set_ray_pickable(RID p_body, bool p_enable) {
- RigidBodyBullet *body = rigid_body_owner.getornull(p_body);
+ RigidBodyBullet *body = rigid_body_owner.get_or_null(p_body);
ERR_FAIL_COND(!body);
body->set_ray_pickable(p_enable);
}
PhysicsDirectBodyState3D *BulletPhysicsServer3D::body_get_direct_state(RID p_body) {
- RigidBodyBullet *body = rigid_body_owner.getornull(p_body);
+ RigidBodyBullet *body = rigid_body_owner.get_or_null(p_body);
ERR_FAIL_COND_V(!body, nullptr);
return BulletPhysicsDirectBodyState3D::get_singleton(body);
}
bool BulletPhysicsServer3D::body_test_motion(RID p_body, const Transform3D &p_from, const Vector3 &p_motion, bool p_infinite_inertia, MotionResult *r_result, bool p_exclude_raycast_shapes, const Set<RID> &p_exclude) {
- RigidBodyBullet *body = rigid_body_owner.getornull(p_body);
+ RigidBodyBullet *body = rigid_body_owner.get_or_null(p_body);
ERR_FAIL_COND_V(!body, false);
ERR_FAIL_COND_V(!body->get_space(), false);
@@ -851,7 +851,7 @@ bool BulletPhysicsServer3D::body_test_motion(RID p_body, const Transform3D &p_fr
}
int BulletPhysicsServer3D::body_test_ray_separation(RID p_body, const Transform3D &p_transform, bool p_infinite_inertia, Vector3 &r_recover_motion, SeparationResult *r_results, int p_result_max, real_t p_margin) {
- RigidBodyBullet *body = rigid_body_owner.getornull(p_body);
+ RigidBodyBullet *body = rigid_body_owner.get_or_null(p_body);
ERR_FAIL_COND_V(!body, 0);
ERR_FAIL_COND_V(!body->get_space(), 0);
@@ -869,19 +869,19 @@ RID BulletPhysicsServer3D::soft_body_create(bool p_init_sleeping) {
}
void BulletPhysicsServer3D::soft_body_update_rendering_server(RID p_body, RenderingServerHandler *p_rendering_server_handler) {
- SoftBodyBullet *body = soft_body_owner.getornull(p_body);
+ SoftBodyBullet *body = soft_body_owner.get_or_null(p_body);
ERR_FAIL_COND(!body);
body->update_rendering_server(p_rendering_server_handler);
}
void BulletPhysicsServer3D::soft_body_set_space(RID p_body, RID p_space) {
- SoftBodyBullet *body = soft_body_owner.getornull(p_body);
+ SoftBodyBullet *body = soft_body_owner.get_or_null(p_body);
ERR_FAIL_COND(!body);
SpaceBullet *space = nullptr;
if (p_space.is_valid()) {
- space = space_owner.getornull(p_space);
+ space = space_owner.get_or_null(p_space);
ERR_FAIL_COND(!space);
}
@@ -893,7 +893,7 @@ void BulletPhysicsServer3D::soft_body_set_space(RID p_body, RID p_space) {
}
RID BulletPhysicsServer3D::soft_body_get_space(RID p_body) const {
- SoftBodyBullet *body = soft_body_owner.getornull(p_body);
+ SoftBodyBullet *body = soft_body_owner.get_or_null(p_body);
ERR_FAIL_COND_V(!body, RID());
SpaceBullet *space = body->get_space();
@@ -904,7 +904,7 @@ RID BulletPhysicsServer3D::soft_body_get_space(RID p_body) const {
}
void BulletPhysicsServer3D::soft_body_set_mesh(RID p_body, const REF &p_mesh) {
- SoftBodyBullet *body = soft_body_owner.getornull(p_body);
+ SoftBodyBullet *body = soft_body_owner.get_or_null(p_body);
ERR_FAIL_COND(!body);
body->set_soft_mesh(p_mesh);
@@ -918,40 +918,40 @@ AABB BulletPhysicsServer::soft_body_get_bounds(RID p_body) const {
}
void BulletPhysicsServer3D::soft_body_set_collision_layer(RID p_body, uint32_t p_layer) {
- SoftBodyBullet *body = soft_body_owner.getornull(p_body);
+ SoftBodyBullet *body = soft_body_owner.get_or_null(p_body);
ERR_FAIL_COND(!body);
body->set_collision_layer(p_layer);
}
uint32_t BulletPhysicsServer3D::soft_body_get_collision_layer(RID p_body) const {
- const SoftBodyBullet *body = soft_body_owner.getornull(p_body);
+ const SoftBodyBullet *body = soft_body_owner.get_or_null(p_body);
ERR_FAIL_COND_V(!body, 0);
return body->get_collision_layer();
}
void BulletPhysicsServer3D::soft_body_set_collision_mask(RID p_body, uint32_t p_mask) {
- SoftBodyBullet *body = soft_body_owner.getornull(p_body);
+ SoftBodyBullet *body = soft_body_owner.get_or_null(p_body);
ERR_FAIL_COND(!body);
body->set_collision_mask(p_mask);
}
uint32_t BulletPhysicsServer3D::soft_body_get_collision_mask(RID p_body) const {
- const SoftBodyBullet *body = soft_body_owner.getornull(p_body);
+ const SoftBodyBullet *body = soft_body_owner.get_or_null(p_body);
ERR_FAIL_COND_V(!body, 0);
return body->get_collision_mask();
}
void BulletPhysicsServer3D::soft_body_add_collision_exception(RID p_body, RID p_body_b) {
- SoftBodyBullet *body = soft_body_owner.getornull(p_body);
+ SoftBodyBullet *body = soft_body_owner.get_or_null(p_body);
ERR_FAIL_COND(!body);
- CollisionObjectBullet *other_body = rigid_body_owner.getornull(p_body_b);
+ CollisionObjectBullet *other_body = rigid_body_owner.get_or_null(p_body_b);
if (!other_body) {
- other_body = soft_body_owner.getornull(p_body_b);
+ other_body = soft_body_owner.get_or_null(p_body_b);
}
ERR_FAIL_COND(!other_body);
@@ -959,12 +959,12 @@ void BulletPhysicsServer3D::soft_body_add_collision_exception(RID p_body, RID p_
}
void BulletPhysicsServer3D::soft_body_remove_collision_exception(RID p_body, RID p_body_b) {
- SoftBodyBullet *body = soft_body_owner.getornull(p_body);
+ SoftBodyBullet *body = soft_body_owner.get_or_null(p_body);
ERR_FAIL_COND(!body);
- CollisionObjectBullet *other_body = rigid_body_owner.getornull(p_body_b);
+ CollisionObjectBullet *other_body = rigid_body_owner.get_or_null(p_body_b);
if (!other_body) {
- other_body = soft_body_owner.getornull(p_body_b);
+ other_body = soft_body_owner.get_or_null(p_body_b);
}
ERR_FAIL_COND(!other_body);
@@ -972,7 +972,7 @@ void BulletPhysicsServer3D::soft_body_remove_collision_exception(RID p_body, RID
}
void BulletPhysicsServer3D::soft_body_get_collision_exceptions(RID p_body, List<RID> *p_exceptions) {
- SoftBodyBullet *body = soft_body_owner.getornull(p_body);
+ SoftBodyBullet *body = soft_body_owner.get_or_null(p_body);
ERR_FAIL_COND(!body);
for (int i = 0; i < body->get_exceptions().size(); i++) {
p_exceptions->push_back(body->get_exceptions()[i]);
@@ -991,98 +991,98 @@ Variant BulletPhysicsServer3D::soft_body_get_state(RID p_body, BodyState p_state
}
void BulletPhysicsServer3D::soft_body_set_transform(RID p_body, const Transform3D &p_transform) {
- SoftBodyBullet *body = soft_body_owner.getornull(p_body);
+ SoftBodyBullet *body = soft_body_owner.get_or_null(p_body);
ERR_FAIL_COND(!body);
body->set_soft_transform(p_transform);
}
void BulletPhysicsServer3D::soft_body_set_ray_pickable(RID p_body, bool p_enable) {
- SoftBodyBullet *body = soft_body_owner.getornull(p_body);
+ SoftBodyBullet *body = soft_body_owner.get_or_null(p_body);
ERR_FAIL_COND(!body);
body->set_ray_pickable(p_enable);
}
void BulletPhysicsServer3D::soft_body_set_simulation_precision(RID p_body, int p_simulation_precision) {
- SoftBodyBullet *body = soft_body_owner.getornull(p_body);
+ SoftBodyBullet *body = soft_body_owner.get_or_null(p_body);
ERR_FAIL_COND(!body);
body->set_simulation_precision(p_simulation_precision);
}
int BulletPhysicsServer3D::soft_body_get_simulation_precision(RID p_body) const {
- SoftBodyBullet *body = soft_body_owner.getornull(p_body);
+ SoftBodyBullet *body = soft_body_owner.get_or_null(p_body);
ERR_FAIL_COND_V(!body, 0.f);
return body->get_simulation_precision();
}
void BulletPhysicsServer3D::soft_body_set_total_mass(RID p_body, real_t p_total_mass) {
- SoftBodyBullet *body = soft_body_owner.getornull(p_body);
+ SoftBodyBullet *body = soft_body_owner.get_or_null(p_body);
ERR_FAIL_COND(!body);
body->set_total_mass(p_total_mass);
}
real_t BulletPhysicsServer3D::soft_body_get_total_mass(RID p_body) const {
- SoftBodyBullet *body = soft_body_owner.getornull(p_body);
+ SoftBodyBullet *body = soft_body_owner.get_or_null(p_body);
ERR_FAIL_COND_V(!body, 0.f);
return body->get_total_mass();
}
void BulletPhysicsServer3D::soft_body_set_linear_stiffness(RID p_body, real_t p_stiffness) const {
- SoftBodyBullet *body = soft_body_owner.getornull(p_body);
+ SoftBodyBullet *body = soft_body_owner.get_or_null(p_body);
ERR_FAIL_COND(!body);
body->set_linear_stiffness(p_stiffness);
}
real_t BulletPhysicsServer3D::soft_body_get_linear_stiffness(RID p_body) {
- SoftBodyBullet *body = soft_body_owner.getornull(p_body);
+ SoftBodyBullet *body = soft_body_owner.get_or_null(p_body);
ERR_FAIL_COND_V(!body, 0.f);
return body->get_linear_stiffness();
}
void BulletPhysicsServer3D::soft_body_set_pressure_coefficient(RID p_body, real_t p_pressure_coefficient) {
- SoftBodyBullet *body = soft_body_owner.getornull(p_body);
+ SoftBodyBullet *body = soft_body_owner.get_or_null(p_body);
ERR_FAIL_COND(!body);
body->set_pressure_coefficient(p_pressure_coefficient);
}
real_t BulletPhysicsServer3D::soft_body_get_pressure_coefficient(RID p_body) const {
- SoftBodyBullet *body = soft_body_owner.getornull(p_body);
+ SoftBodyBullet *body = soft_body_owner.get_or_null(p_body);
ERR_FAIL_COND_V(!body, 0.f);
return body->get_pressure_coefficient();
}
void BulletPhysicsServer3D::soft_body_set_damping_coefficient(RID p_body, real_t p_damping_coefficient) {
- SoftBodyBullet *body = soft_body_owner.getornull(p_body);
+ SoftBodyBullet *body = soft_body_owner.get_or_null(p_body);
ERR_FAIL_COND(!body);
body->set_damping_coefficient(p_damping_coefficient);
}
real_t BulletPhysicsServer3D::soft_body_get_damping_coefficient(RID p_body) const {
- SoftBodyBullet *body = soft_body_owner.getornull(p_body);
+ SoftBodyBullet *body = soft_body_owner.get_or_null(p_body);
ERR_FAIL_COND_V(!body, 0.f);
return body->get_damping_coefficient();
}
void BulletPhysicsServer3D::soft_body_set_drag_coefficient(RID p_body, real_t p_drag_coefficient) {
- SoftBodyBullet *body = soft_body_owner.getornull(p_body);
+ SoftBodyBullet *body = soft_body_owner.get_or_null(p_body);
ERR_FAIL_COND(!body);
body->set_drag_coefficient(p_drag_coefficient);
}
real_t BulletPhysicsServer3D::soft_body_get_drag_coefficient(RID p_body) const {
- SoftBodyBullet *body = soft_body_owner.getornull(p_body);
+ SoftBodyBullet *body = soft_body_owner.get_or_null(p_body);
ERR_FAIL_COND_V(!body, 0.f);
return body->get_drag_coefficient();
}
void BulletPhysicsServer3D::soft_body_move_point(RID p_body, int p_point_index, const Vector3 &p_global_position) {
- SoftBodyBullet *body = soft_body_owner.getornull(p_body);
+ SoftBodyBullet *body = soft_body_owner.get_or_null(p_body);
ERR_FAIL_COND(!body);
body->set_node_position(p_point_index, p_global_position);
}
Vector3 BulletPhysicsServer3D::soft_body_get_point_global_position(RID p_body, int p_point_index) const {
- SoftBodyBullet *body = soft_body_owner.getornull(p_body);
+ SoftBodyBullet *body = soft_body_owner.get_or_null(p_body);
ERR_FAIL_COND_V(!body, Vector3(0., 0., 0.));
Vector3 pos;
body->get_node_position(p_point_index, pos);
@@ -1090,25 +1090,25 @@ Vector3 BulletPhysicsServer3D::soft_body_get_point_global_position(RID p_body, i
}
void BulletPhysicsServer3D::soft_body_remove_all_pinned_points(RID p_body) {
- SoftBodyBullet *body = soft_body_owner.getornull(p_body);
+ SoftBodyBullet *body = soft_body_owner.get_or_null(p_body);
ERR_FAIL_COND(!body);
body->reset_all_node_mass();
}
void BulletPhysicsServer3D::soft_body_pin_point(RID p_body, int p_point_index, bool p_pin) {
- SoftBodyBullet *body = soft_body_owner.getornull(p_body);
+ SoftBodyBullet *body = soft_body_owner.get_or_null(p_body);
ERR_FAIL_COND(!body);
body->set_node_mass(p_point_index, p_pin ? 0 : 1);
}
bool BulletPhysicsServer3D::soft_body_is_point_pinned(RID p_body, int p_point_index) const {
- SoftBodyBullet *body = soft_body_owner.getornull(p_body);
+ SoftBodyBullet *body = soft_body_owner.get_or_null(p_body);
ERR_FAIL_COND_V(!body, 0.f);
return body->get_node_mass(p_point_index);
}
PhysicsServer3D::JointType BulletPhysicsServer3D::joint_get_type(RID p_joint) const {
- JointBullet *joint = joint_owner.getornull(p_joint);
+ JointBullet *joint = joint_owner.get_or_null(p_joint);
ERR_FAIL_COND_V(!joint, JOINT_PIN);
return joint->get_type();
}
@@ -1123,28 +1123,28 @@ int BulletPhysicsServer3D::joint_get_solver_priority(RID p_joint) const {
}
void BulletPhysicsServer3D::joint_disable_collisions_between_bodies(RID p_joint, const bool p_disable) {
- JointBullet *joint = joint_owner.getornull(p_joint);
+ JointBullet *joint = joint_owner.get_or_null(p_joint);
ERR_FAIL_COND(!joint);
joint->disable_collisions_between_bodies(p_disable);
}
bool BulletPhysicsServer3D::joint_is_disabled_collisions_between_bodies(RID p_joint) const {
- JointBullet *joint(joint_owner.getornull(p_joint));
+ JointBullet *joint(joint_owner.get_or_null(p_joint));
ERR_FAIL_COND_V(!joint, false);
return joint->is_disabled_collisions_between_bodies();
}
RID BulletPhysicsServer3D::joint_create_pin(RID p_body_A, const Vector3 &p_local_A, RID p_body_B, const Vector3 &p_local_B) {
- RigidBodyBullet *body_A = rigid_body_owner.getornull(p_body_A);
+ RigidBodyBullet *body_A = rigid_body_owner.get_or_null(p_body_A);
ERR_FAIL_COND_V(!body_A, RID());
JointAssertSpace(body_A, "A", RID());
RigidBodyBullet *body_B = nullptr;
if (p_body_B.is_valid()) {
- body_B = rigid_body_owner.getornull(p_body_B);
+ body_B = rigid_body_owner.get_or_null(p_body_B);
JointAssertSpace(body_B, "B", RID());
JointAssertSameSpace(body_A, body_B, RID());
}
@@ -1158,7 +1158,7 @@ RID BulletPhysicsServer3D::joint_create_pin(RID p_body_A, const Vector3 &p_local
}
void BulletPhysicsServer3D::pin_joint_set_param(RID p_joint, PinJointParam p_param, real_t p_value) {
- JointBullet *joint = joint_owner.getornull(p_joint);
+ JointBullet *joint = joint_owner.get_or_null(p_joint);
ERR_FAIL_COND(!joint);
ERR_FAIL_COND(joint->get_type() != JOINT_PIN);
PinJointBullet *pin_joint = static_cast<PinJointBullet *>(joint);
@@ -1166,7 +1166,7 @@ void BulletPhysicsServer3D::pin_joint_set_param(RID p_joint, PinJointParam p_par
}
real_t BulletPhysicsServer3D::pin_joint_get_param(RID p_joint, PinJointParam p_param) const {
- JointBullet *joint = joint_owner.getornull(p_joint);
+ JointBullet *joint = joint_owner.get_or_null(p_joint);
ERR_FAIL_COND_V(!joint, 0);
ERR_FAIL_COND_V(joint->get_type() != JOINT_PIN, 0);
PinJointBullet *pin_joint = static_cast<PinJointBullet *>(joint);
@@ -1174,7 +1174,7 @@ real_t BulletPhysicsServer3D::pin_joint_get_param(RID p_joint, PinJointParam p_p
}
void BulletPhysicsServer3D::pin_joint_set_local_a(RID p_joint, const Vector3 &p_A) {
- JointBullet *joint = joint_owner.getornull(p_joint);
+ JointBullet *joint = joint_owner.get_or_null(p_joint);
ERR_FAIL_COND(!joint);
ERR_FAIL_COND(joint->get_type() != JOINT_PIN);
PinJointBullet *pin_joint = static_cast<PinJointBullet *>(joint);
@@ -1182,7 +1182,7 @@ void BulletPhysicsServer3D::pin_joint_set_local_a(RID p_joint, const Vector3 &p_
}
Vector3 BulletPhysicsServer3D::pin_joint_get_local_a(RID p_joint) const {
- JointBullet *joint = joint_owner.getornull(p_joint);
+ JointBullet *joint = joint_owner.get_or_null(p_joint);
ERR_FAIL_COND_V(!joint, Vector3());
ERR_FAIL_COND_V(joint->get_type() != JOINT_PIN, Vector3());
PinJointBullet *pin_joint = static_cast<PinJointBullet *>(joint);
@@ -1190,7 +1190,7 @@ Vector3 BulletPhysicsServer3D::pin_joint_get_local_a(RID p_joint) const {
}
void BulletPhysicsServer3D::pin_joint_set_local_b(RID p_joint, const Vector3 &p_B) {
- JointBullet *joint = joint_owner.getornull(p_joint);
+ JointBullet *joint = joint_owner.get_or_null(p_joint);
ERR_FAIL_COND(!joint);
ERR_FAIL_COND(joint->get_type() != JOINT_PIN);
PinJointBullet *pin_joint = static_cast<PinJointBullet *>(joint);
@@ -1198,7 +1198,7 @@ void BulletPhysicsServer3D::pin_joint_set_local_b(RID p_joint, const Vector3 &p_
}
Vector3 BulletPhysicsServer3D::pin_joint_get_local_b(RID p_joint) const {
- JointBullet *joint = joint_owner.getornull(p_joint);
+ JointBullet *joint = joint_owner.get_or_null(p_joint);
ERR_FAIL_COND_V(!joint, Vector3());
ERR_FAIL_COND_V(joint->get_type() != JOINT_PIN, Vector3());
PinJointBullet *pin_joint = static_cast<PinJointBullet *>(joint);
@@ -1206,13 +1206,13 @@ Vector3 BulletPhysicsServer3D::pin_joint_get_local_b(RID p_joint) const {
}
RID BulletPhysicsServer3D::joint_create_hinge(RID p_body_A, const Transform3D &p_hinge_A, RID p_body_B, const Transform3D &p_hinge_B) {
- RigidBodyBullet *body_A = rigid_body_owner.getornull(p_body_A);
+ RigidBodyBullet *body_A = rigid_body_owner.get_or_null(p_body_A);
ERR_FAIL_COND_V(!body_A, RID());
JointAssertSpace(body_A, "A", RID());
RigidBodyBullet *body_B = nullptr;
if (p_body_B.is_valid()) {
- body_B = rigid_body_owner.getornull(p_body_B);
+ body_B = rigid_body_owner.get_or_null(p_body_B);
JointAssertSpace(body_B, "B", RID());
JointAssertSameSpace(body_A, body_B, RID());
}
@@ -1226,13 +1226,13 @@ RID BulletPhysicsServer3D::joint_create_hinge(RID p_body_A, const Transform3D &p
}
RID BulletPhysicsServer3D::joint_create_hinge_simple(RID p_body_A, const Vector3 &p_pivot_A, const Vector3 &p_axis_A, RID p_body_B, const Vector3 &p_pivot_B, const Vector3 &p_axis_B) {
- RigidBodyBullet *body_A = rigid_body_owner.getornull(p_body_A);
+ RigidBodyBullet *body_A = rigid_body_owner.get_or_null(p_body_A);
ERR_FAIL_COND_V(!body_A, RID());
JointAssertSpace(body_A, "A", RID());
RigidBodyBullet *body_B = nullptr;
if (p_body_B.is_valid()) {
- body_B = rigid_body_owner.getornull(p_body_B);
+ body_B = rigid_body_owner.get_or_null(p_body_B);
JointAssertSpace(body_B, "B", RID());
JointAssertSameSpace(body_A, body_B, RID());
}
@@ -1246,7 +1246,7 @@ RID BulletPhysicsServer3D::joint_create_hinge_simple(RID p_body_A, const Vector3
}
void BulletPhysicsServer3D::hinge_joint_set_param(RID p_joint, HingeJointParam p_param, real_t p_value) {
- JointBullet *joint = joint_owner.getornull(p_joint);
+ JointBullet *joint = joint_owner.get_or_null(p_joint);
ERR_FAIL_COND(!joint);
ERR_FAIL_COND(joint->get_type() != JOINT_HINGE);
HingeJointBullet *hinge_joint = static_cast<HingeJointBullet *>(joint);
@@ -1254,7 +1254,7 @@ void BulletPhysicsServer3D::hinge_joint_set_param(RID p_joint, HingeJointParam p
}
real_t BulletPhysicsServer3D::hinge_joint_get_param(RID p_joint, HingeJointParam p_param) const {
- JointBullet *joint = joint_owner.getornull(p_joint);
+ JointBullet *joint = joint_owner.get_or_null(p_joint);
ERR_FAIL_COND_V(!joint, 0);
ERR_FAIL_COND_V(joint->get_type() != JOINT_HINGE, 0);
HingeJointBullet *hinge_joint = static_cast<HingeJointBullet *>(joint);
@@ -1262,7 +1262,7 @@ real_t BulletPhysicsServer3D::hinge_joint_get_param(RID p_joint, HingeJointParam
}
void BulletPhysicsServer3D::hinge_joint_set_flag(RID p_joint, HingeJointFlag p_flag, bool p_value) {
- JointBullet *joint = joint_owner.getornull(p_joint);
+ JointBullet *joint = joint_owner.get_or_null(p_joint);
ERR_FAIL_COND(!joint);
ERR_FAIL_COND(joint->get_type() != JOINT_HINGE);
HingeJointBullet *hinge_joint = static_cast<HingeJointBullet *>(joint);
@@ -1270,7 +1270,7 @@ void BulletPhysicsServer3D::hinge_joint_set_flag(RID p_joint, HingeJointFlag p_f
}
bool BulletPhysicsServer3D::hinge_joint_get_flag(RID p_joint, HingeJointFlag p_flag) const {
- JointBullet *joint = joint_owner.getornull(p_joint);
+ JointBullet *joint = joint_owner.get_or_null(p_joint);
ERR_FAIL_COND_V(!joint, false);
ERR_FAIL_COND_V(joint->get_type() != JOINT_HINGE, false);
HingeJointBullet *hinge_joint = static_cast<HingeJointBullet *>(joint);
@@ -1278,13 +1278,13 @@ bool BulletPhysicsServer3D::hinge_joint_get_flag(RID p_joint, HingeJointFlag p_f
}
RID BulletPhysicsServer3D::joint_create_slider(RID p_body_A, const Transform3D &p_local_frame_A, RID p_body_B, const Transform3D &p_local_frame_B) {
- RigidBodyBullet *body_A = rigid_body_owner.getornull(p_body_A);
+ RigidBodyBullet *body_A = rigid_body_owner.get_or_null(p_body_A);
ERR_FAIL_COND_V(!body_A, RID());
JointAssertSpace(body_A, "A", RID());
RigidBodyBullet *body_B = nullptr;
if (p_body_B.is_valid()) {
- body_B = rigid_body_owner.getornull(p_body_B);
+ body_B = rigid_body_owner.get_or_null(p_body_B);
JointAssertSpace(body_B, "B", RID());
JointAssertSameSpace(body_A, body_B, RID());
}
@@ -1298,7 +1298,7 @@ RID BulletPhysicsServer3D::joint_create_slider(RID p_body_A, const Transform3D &
}
void BulletPhysicsServer3D::slider_joint_set_param(RID p_joint, SliderJointParam p_param, real_t p_value) {
- JointBullet *joint = joint_owner.getornull(p_joint);
+ JointBullet *joint = joint_owner.get_or_null(p_joint);
ERR_FAIL_COND(!joint);
ERR_FAIL_COND(joint->get_type() != JOINT_SLIDER);
SliderJointBullet *slider_joint = static_cast<SliderJointBullet *>(joint);
@@ -1306,7 +1306,7 @@ void BulletPhysicsServer3D::slider_joint_set_param(RID p_joint, SliderJointParam
}
real_t BulletPhysicsServer3D::slider_joint_get_param(RID p_joint, SliderJointParam p_param) const {
- JointBullet *joint = joint_owner.getornull(p_joint);
+ JointBullet *joint = joint_owner.get_or_null(p_joint);
ERR_FAIL_COND_V(!joint, 0);
ERR_FAIL_COND_V(joint->get_type() != JOINT_SLIDER, 0);
SliderJointBullet *slider_joint = static_cast<SliderJointBullet *>(joint);
@@ -1314,13 +1314,13 @@ real_t BulletPhysicsServer3D::slider_joint_get_param(RID p_joint, SliderJointPar
}
RID BulletPhysicsServer3D::joint_create_cone_twist(RID p_body_A, const Transform3D &p_local_frame_A, RID p_body_B, const Transform3D &p_local_frame_B) {
- RigidBodyBullet *body_A = rigid_body_owner.getornull(p_body_A);
+ RigidBodyBullet *body_A = rigid_body_owner.get_or_null(p_body_A);
ERR_FAIL_COND_V(!body_A, RID());
JointAssertSpace(body_A, "A", RID());
RigidBodyBullet *body_B = nullptr;
if (p_body_B.is_valid()) {
- body_B = rigid_body_owner.getornull(p_body_B);
+ body_B = rigid_body_owner.get_or_null(p_body_B);
JointAssertSpace(body_B, "B", RID());
JointAssertSameSpace(body_A, body_B, RID());
}
@@ -1332,7 +1332,7 @@ RID BulletPhysicsServer3D::joint_create_cone_twist(RID p_body_A, const Transform
}
void BulletPhysicsServer3D::cone_twist_joint_set_param(RID p_joint, ConeTwistJointParam p_param, real_t p_value) {
- JointBullet *joint = joint_owner.getornull(p_joint);
+ JointBullet *joint = joint_owner.get_or_null(p_joint);
ERR_FAIL_COND(!joint);
ERR_FAIL_COND(joint->get_type() != JOINT_CONE_TWIST);
ConeTwistJointBullet *coneTwist_joint = static_cast<ConeTwistJointBullet *>(joint);
@@ -1340,7 +1340,7 @@ void BulletPhysicsServer3D::cone_twist_joint_set_param(RID p_joint, ConeTwistJoi
}
real_t BulletPhysicsServer3D::cone_twist_joint_get_param(RID p_joint, ConeTwistJointParam p_param) const {
- JointBullet *joint = joint_owner.getornull(p_joint);
+ JointBullet *joint = joint_owner.get_or_null(p_joint);
ERR_FAIL_COND_V(!joint, 0.);
ERR_FAIL_COND_V(joint->get_type() != JOINT_CONE_TWIST, 0.);
ConeTwistJointBullet *coneTwist_joint = static_cast<ConeTwistJointBullet *>(joint);
@@ -1348,13 +1348,13 @@ real_t BulletPhysicsServer3D::cone_twist_joint_get_param(RID p_joint, ConeTwistJ
}
RID BulletPhysicsServer3D::joint_create_generic_6dof(RID p_body_A, const Transform3D &p_local_frame_A, RID p_body_B, const Transform3D &p_local_frame_B) {
- RigidBodyBullet *body_A = rigid_body_owner.getornull(p_body_A);
+ RigidBodyBullet *body_A = rigid_body_owner.get_or_null(p_body_A);
ERR_FAIL_COND_V(!body_A, RID());
JointAssertSpace(body_A, "A", RID());
RigidBodyBullet *body_B = nullptr;
if (p_body_B.is_valid()) {
- body_B = rigid_body_owner.getornull(p_body_B);
+ body_B = rigid_body_owner.get_or_null(p_body_B);
JointAssertSpace(body_B, "B", RID());
JointAssertSameSpace(body_A, body_B, RID());
}
@@ -1368,7 +1368,7 @@ RID BulletPhysicsServer3D::joint_create_generic_6dof(RID p_body_A, const Transfo
}
void BulletPhysicsServer3D::generic_6dof_joint_set_param(RID p_joint, Vector3::Axis p_axis, G6DOFJointAxisParam p_param, real_t p_value) {
- JointBullet *joint = joint_owner.getornull(p_joint);
+ JointBullet *joint = joint_owner.get_or_null(p_joint);
ERR_FAIL_COND(!joint);
ERR_FAIL_COND(joint->get_type() != JOINT_6DOF);
Generic6DOFJointBullet *generic_6dof_joint = static_cast<Generic6DOFJointBullet *>(joint);
@@ -1376,7 +1376,7 @@ void BulletPhysicsServer3D::generic_6dof_joint_set_param(RID p_joint, Vector3::A
}
real_t BulletPhysicsServer3D::generic_6dof_joint_get_param(RID p_joint, Vector3::Axis p_axis, G6DOFJointAxisParam p_param) {
- JointBullet *joint = joint_owner.getornull(p_joint);
+ JointBullet *joint = joint_owner.get_or_null(p_joint);
ERR_FAIL_COND_V(!joint, 0);
ERR_FAIL_COND_V(joint->get_type() != JOINT_6DOF, 0);
Generic6DOFJointBullet *generic_6dof_joint = static_cast<Generic6DOFJointBullet *>(joint);
@@ -1384,7 +1384,7 @@ real_t BulletPhysicsServer3D::generic_6dof_joint_get_param(RID p_joint, Vector3:
}
void BulletPhysicsServer3D::generic_6dof_joint_set_flag(RID p_joint, Vector3::Axis p_axis, G6DOFJointAxisFlag p_flag, bool p_enable) {
- JointBullet *joint = joint_owner.getornull(p_joint);
+ JointBullet *joint = joint_owner.get_or_null(p_joint);
ERR_FAIL_COND(!joint);
ERR_FAIL_COND(joint->get_type() != JOINT_6DOF);
Generic6DOFJointBullet *generic_6dof_joint = static_cast<Generic6DOFJointBullet *>(joint);
@@ -1392,7 +1392,7 @@ void BulletPhysicsServer3D::generic_6dof_joint_set_flag(RID p_joint, Vector3::Ax
}
bool BulletPhysicsServer3D::generic_6dof_joint_get_flag(RID p_joint, Vector3::Axis p_axis, G6DOFJointAxisFlag p_flag) {
- JointBullet *joint = joint_owner.getornull(p_joint);
+ JointBullet *joint = joint_owner.get_or_null(p_joint);
ERR_FAIL_COND_V(!joint, false);
ERR_FAIL_COND_V(joint->get_type() != JOINT_6DOF, false);
Generic6DOFJointBullet *generic_6dof_joint = static_cast<Generic6DOFJointBullet *>(joint);
@@ -1401,7 +1401,7 @@ bool BulletPhysicsServer3D::generic_6dof_joint_get_flag(RID p_joint, Vector3::Ax
void BulletPhysicsServer3D::free(RID p_rid) {
if (shape_owner.owns(p_rid)) {
- ShapeBullet *shape = shape_owner.getornull(p_rid);
+ ShapeBullet *shape = shape_owner.get_or_null(p_rid);
// Notify the shape is configured
for (Map<ShapeOwnerBullet *, int>::Element *element = shape->get_owners().front(); element; element = element->next()) {
@@ -1411,7 +1411,7 @@ void BulletPhysicsServer3D::free(RID p_rid) {
shape_owner.free(p_rid);
bulletdelete(shape);
} else if (rigid_body_owner.owns(p_rid)) {
- RigidBodyBullet *body = rigid_body_owner.getornull(p_rid);
+ RigidBodyBullet *body = rigid_body_owner.get_or_null(p_rid);
body->set_space(nullptr);
@@ -1421,7 +1421,7 @@ void BulletPhysicsServer3D::free(RID p_rid) {
bulletdelete(body);
} else if (soft_body_owner.owns(p_rid)) {
- SoftBodyBullet *body = soft_body_owner.getornull(p_rid);
+ SoftBodyBullet *body = soft_body_owner.get_or_null(p_rid);
body->set_space(nullptr);
@@ -1429,7 +1429,7 @@ void BulletPhysicsServer3D::free(RID p_rid) {
bulletdelete(body);
} else if (area_owner.owns(p_rid)) {
- AreaBullet *area = area_owner.getornull(p_rid);
+ AreaBullet *area = area_owner.get_or_null(p_rid);
area->set_space(nullptr);
@@ -1439,13 +1439,13 @@ void BulletPhysicsServer3D::free(RID p_rid) {
bulletdelete(area);
} else if (joint_owner.owns(p_rid)) {
- JointBullet *joint = joint_owner.getornull(p_rid);
+ JointBullet *joint = joint_owner.get_or_null(p_rid);
joint->destroy_internal_constraint();
joint_owner.free(p_rid);
bulletdelete(joint);
} else if (space_owner.owns(p_rid)) {
- SpaceBullet *space = space_owner.getornull(p_rid);
+ SpaceBullet *space = space_owner.get_or_null(p_rid);
space->remove_all_collision_objects();
@@ -1493,38 +1493,38 @@ int BulletPhysicsServer3D::get_process_info(ProcessInfo p_info) {
SpaceBullet *BulletPhysicsServer3D::get_space(RID p_rid) const {
ERR_FAIL_COND_V_MSG(space_owner.owns(p_rid) == false, nullptr, "The RID is not valid.");
- return space_owner.getornull(p_rid);
+ return space_owner.get_or_null(p_rid);
}
ShapeBullet *BulletPhysicsServer3D::get_shape(RID p_rid) const {
ERR_FAIL_COND_V_MSG(shape_owner.owns(p_rid) == false, nullptr, "The RID is not valid.");
- return shape_owner.getornull(p_rid);
+ return shape_owner.get_or_null(p_rid);
}
CollisionObjectBullet *BulletPhysicsServer3D::get_collision_object(RID p_object) const {
if (rigid_body_owner.owns(p_object)) {
- return rigid_body_owner.getornull(p_object);
+ return rigid_body_owner.get_or_null(p_object);
}
if (area_owner.owns(p_object)) {
- return area_owner.getornull(p_object);
+ return area_owner.get_or_null(p_object);
}
if (soft_body_owner.owns(p_object)) {
- return soft_body_owner.getornull(p_object);
+ return soft_body_owner.get_or_null(p_object);
}
ERR_FAIL_V_MSG(nullptr, "The RID is no valid.");
}
RigidCollisionObjectBullet *BulletPhysicsServer3D::get_rigid_collision_object(RID p_object) const {
if (rigid_body_owner.owns(p_object)) {
- return rigid_body_owner.getornull(p_object);
+ return rigid_body_owner.get_or_null(p_object);
}
if (area_owner.owns(p_object)) {
- return area_owner.getornull(p_object);
+ return area_owner.get_or_null(p_object);
}
ERR_FAIL_V_MSG(nullptr, "The RID is no valid.");
}
JointBullet *BulletPhysicsServer3D::get_joint(RID p_rid) const {
ERR_FAIL_COND_V_MSG(joint_owner.owns(p_rid) == false, nullptr, "The RID is not valid.");
- return joint_owner.getornull(p_rid);
+ return joint_owner.get_or_null(p_rid);
}
diff --git a/modules/bullet/rigid_body_bullet.cpp b/modules/bullet/rigid_body_bullet.cpp
index 0d2cd1f5a0..7b20fad28c 100644
--- a/modules/bullet/rigid_body_bullet.cpp
+++ b/modules/bullet/rigid_body_bullet.cpp
@@ -303,6 +303,7 @@ RigidBodyBullet::~RigidBodyBullet() {
void RigidBodyBullet::init_kinematic_utilities() {
kinematic_utilities = memnew(KinematicUtilities(this));
+ reload_kinematic_shapes();
}
void RigidBodyBullet::destroy_kinematic_utilities() {
@@ -529,26 +530,23 @@ void RigidBodyBullet::set_mode(PhysicsServer3D::BodyMode p_mode) {
can_integrate_forces = false;
destroy_kinematic_utilities();
// The mode change is relevant to its mass
+ mode = p_mode;
switch (p_mode) {
case PhysicsServer3D::BODY_MODE_KINEMATIC:
- mode = PhysicsServer3D::BODY_MODE_KINEMATIC;
reload_axis_lock();
_internal_set_mass(0);
init_kinematic_utilities();
break;
case PhysicsServer3D::BODY_MODE_STATIC:
- mode = PhysicsServer3D::BODY_MODE_STATIC;
reload_axis_lock();
_internal_set_mass(0);
break;
case PhysicsServer3D::BODY_MODE_DYNAMIC:
- mode = PhysicsServer3D::BODY_MODE_DYNAMIC;
reload_axis_lock();
_internal_set_mass(0 == mass ? 1 : mass);
scratch_space_override_modificator();
break;
- case PhysicsServer3D::MODE_DYNAMIC_LOCKED:
- mode = PhysicsServer3D::MODE_DYNAMIC_LOCKED;
+ case PhysicsServer3D::MODE_DYNAMIC_LINEAR:
reload_axis_lock();
_internal_set_mass(0 == mass ? 1 : mass);
scratch_space_override_modificator();
@@ -721,7 +719,7 @@ bool RigidBodyBullet::is_axis_locked(PhysicsServer3D::BodyAxis p_axis) const {
void RigidBodyBullet::reload_axis_lock() {
btBody->setLinearFactor(btVector3(btScalar(!is_axis_locked(PhysicsServer3D::BODY_AXIS_LINEAR_X)), btScalar(!is_axis_locked(PhysicsServer3D::BODY_AXIS_LINEAR_Y)), btScalar(!is_axis_locked(PhysicsServer3D::BODY_AXIS_LINEAR_Z))));
- if (PhysicsServer3D::MODE_DYNAMIC_LOCKED == mode) {
+ if (PhysicsServer3D::MODE_DYNAMIC_LINEAR == mode) {
/// When character angular is always locked
btBody->setAngularFactor(btVector3(0., 0., 0.));
} else {
@@ -1016,7 +1014,7 @@ void RigidBodyBullet::_internal_set_mass(real_t p_mass) {
// Rigidbody is dynamic if and only if mass is non Zero, otherwise static
const bool isDynamic = p_mass != 0.f;
if (isDynamic) {
- if (PhysicsServer3D::BODY_MODE_DYNAMIC != mode && PhysicsServer3D::MODE_DYNAMIC_LOCKED != mode) {
+ if (PhysicsServer3D::BODY_MODE_DYNAMIC != mode && PhysicsServer3D::MODE_DYNAMIC_LINEAR != mode) {
return;
}
diff --git a/modules/bullet/space_bullet.cpp b/modules/bullet/space_bullet.cpp
index a9a811c445..66d7370bd7 100644
--- a/modules/bullet/space_bullet.cpp
+++ b/modules/bullet/space_bullet.cpp
@@ -122,7 +122,7 @@ int BulletPhysicsDirectSpaceState::intersect_shape(const RID &p_shape, const Tra
return 0;
}
- ShapeBullet *shape = space->get_physics_server()->get_shape_owner()->getornull(p_shape);
+ ShapeBullet *shape = space->get_physics_server()->get_shape_owner()->get_or_null(p_shape);
ERR_FAIL_COND_V(!shape, 0);
btCollisionShape *btShape = shape->create_bt_shape(p_xform.basis.get_scale_abs(), p_margin);
@@ -158,7 +158,7 @@ bool BulletPhysicsDirectSpaceState::cast_motion(const RID &p_shape, const Transf
btVector3 bt_motion;
G_TO_B(p_motion, bt_motion);
- ShapeBullet *shape = space->get_physics_server()->get_shape_owner()->getornull(p_shape);
+ ShapeBullet *shape = space->get_physics_server()->get_shape_owner()->get_or_null(p_shape);
ERR_FAIL_COND_V(!shape, false);
btCollisionShape *btShape = shape->create_bt_shape(p_xform.basis.get_scale(), p_margin);
@@ -219,7 +219,7 @@ bool BulletPhysicsDirectSpaceState::collide_shape(RID p_shape, const Transform3D
return false;
}
- ShapeBullet *shape = space->get_physics_server()->get_shape_owner()->getornull(p_shape);
+ ShapeBullet *shape = space->get_physics_server()->get_shape_owner()->get_or_null(p_shape);
ERR_FAIL_COND_V(!shape, false);
btCollisionShape *btShape = shape->create_bt_shape(p_shape_xform.basis.get_scale_abs(), p_margin);
@@ -251,7 +251,7 @@ bool BulletPhysicsDirectSpaceState::collide_shape(RID p_shape, const Transform3D
}
bool BulletPhysicsDirectSpaceState::rest_info(RID p_shape, const Transform3D &p_shape_xform, real_t p_margin, ShapeRestInfo *r_info, const Set<RID> &p_exclude, uint32_t p_collision_mask, bool p_collide_with_bodies, bool p_collide_with_areas) {
- ShapeBullet *shape = space->get_physics_server()->get_shape_owner()->getornull(p_shape);
+ ShapeBullet *shape = space->get_physics_server()->get_shape_owner()->get_or_null(p_shape);
ERR_FAIL_COND_V(!shape, false);
btCollisionShape *btShape = shape->create_bt_shape(p_shape_xform.basis.get_scale_abs(), p_margin);
@@ -947,7 +947,6 @@ bool SpaceBullet::test_body_motion(RigidBodyBullet *p_body, const Transform3D &p
if (!p_body->get_kinematic_utilities()) {
p_body->init_kinematic_utilities();
- p_body->reload_kinematic_shapes();
}
btVector3 initial_recover_motion(0, 0, 0);
@@ -1089,7 +1088,6 @@ int SpaceBullet::test_ray_separation(RigidBodyBullet *p_body, const Transform3D
if (!p_body->get_kinematic_utilities()) {
p_body->init_kinematic_utilities();
- p_body->reload_kinematic_shapes();
}
btVector3 recover_motion(0, 0, 0);
diff --git a/modules/csg/csg.cpp b/modules/csg/csg.cpp
index cb82b65307..229e1e2724 100644
--- a/modules/csg/csg.cpp
+++ b/modules/csg/csg.cpp
@@ -37,16 +37,16 @@
// Static helper functions.
inline static bool is_snapable(const Vector3 &p_point1, const Vector3 &p_point2, real_t p_distance) {
- return (p_point1 - p_point2).length_squared() < p_distance * p_distance;
+ return p_point2.distance_squared_to(p_point1) < p_distance * p_distance;
}
-inline static Vector2 interpolate_segment_uv(const Vector2 p_segement_points[2], const Vector2 p_uvs[2], const Vector2 &p_interpolation_point) {
- float segment_length = (p_segement_points[1] - p_segement_points[0]).length();
- if (p_segement_points[0].is_equal_approx(p_segement_points[1])) {
+inline static Vector2 interpolate_segment_uv(const Vector2 p_segment_points[2], const Vector2 p_uvs[2], const Vector2 &p_interpolation_point) {
+ if (p_segment_points[0].is_equal_approx(p_segment_points[1])) {
return p_uvs[0];
}
- float distance = (p_interpolation_point - p_segement_points[0]).length();
+ float segment_length = p_segment_points[0].distance_to(p_segment_points[1]);
+ float distance = p_segment_points[0].distance_to(p_interpolation_point);
float fraction = distance / segment_length;
return p_uvs[0].lerp(p_uvs[1], fraction);
@@ -162,7 +162,7 @@ inline static bool is_triangle_degenerate(const Vector2 p_vertices[3], real_t p_
return det < p_vertex_snap2;
}
-inline static bool are_segements_parallel(const Vector2 p_segment1_points[2], const Vector2 p_segment2_points[2], float p_vertex_snap2) {
+inline static bool are_segments_parallel(const Vector2 p_segment1_points[2], const Vector2 p_segment2_points[2], float p_vertex_snap2) {
Vector2 segment1 = p_segment1_points[1] - p_segment1_points[0];
Vector2 segment2 = p_segment2_points[1] - p_segment2_points[0];
real_t segment1_length2 = segment1.dot(segment1);
@@ -517,7 +517,7 @@ int CSGBrushOperation::MeshMerge::_create_bvh(FaceBVH *facebvhptr, FaceBVH **fac
int index = r_max_alloc++;
FaceBVH *_new = &facebvhptr[index];
_new->aabb = aabb;
- _new->center = aabb.position + aabb.size * 0.5;
+ _new->center = aabb.get_center();
_new->face = -1;
_new->left = left;
_new->right = right;
@@ -596,7 +596,7 @@ bool CSGBrushOperation::MeshMerge::_bvh_inside(FaceBVH *facebvhptr, int p_max_de
_add_distance(intersectionsA, intersectionsB, current_face.from_b, 0);
}
} else if (ray_intersects_triangle(face_center, face_normal, current_points, CMP_EPSILON, intersection_point)) {
- real_t distance = (intersection_point - face_center).length();
+ real_t distance = face_center.distance_to(intersection_point);
_add_distance(intersectionsA, intersectionsB, current_face.from_b, distance);
}
}
@@ -678,7 +678,7 @@ void CSGBrushOperation::MeshMerge::mark_inside_faces() {
facebvh[i].aabb.position = points[faces[i].points[0]];
facebvh[i].aabb.expand_to(points[faces[i].points[1]]);
facebvh[i].aabb.expand_to(points[faces[i].points[2]]);
- facebvh[i].center = facebvh[i].aabb.position + facebvh[i].aabb.size * 0.5;
+ facebvh[i].center = facebvh[i].aabb.get_center();
facebvh[i].aabb.grow_by(vertex_snap);
facebvh[i].next = -1;
@@ -781,7 +781,7 @@ void CSGBrushOperation::MeshMerge::add_face(const Vector3 p_points[], const Vect
int CSGBrushOperation::Build2DFaces::_get_point_idx(const Vector2 &p_point) {
for (int vertex_idx = 0; vertex_idx < vertices.size(); ++vertex_idx) {
- if ((p_point - vertices[vertex_idx].point).length_squared() < vertex_snap2) {
+ if (vertices[vertex_idx].point.distance_squared_to(p_point) < vertex_snap2) {
return vertex_idx;
}
}
@@ -911,7 +911,7 @@ void CSGBrushOperation::Build2DFaces::_merge_faces(const Vector<int> &p_segment_
vertices[outer_edge_idx[1]].point,
vertices[p_segment_indices[closest_idx]].point
};
- if (are_segements_parallel(edge1, edge2, vertex_snap2)) {
+ if (are_segments_parallel(edge1, edge2, vertex_snap2)) {
if (!degenerate_points.find(outer_edge_idx[0])) {
degenerate_points.push_back(outer_edge_idx[0]);
}
@@ -961,7 +961,7 @@ void CSGBrushOperation::Build2DFaces::_merge_faces(const Vector<int> &p_segment_
// Check if point is existing face vertex.
bool existing = false;
for (int i = 0; i < 3; ++i) {
- if ((point_2D - face_vertices[i].point).length_squared() < vertex_snap2) {
+ if (face_vertices[i].point.distance_squared_to(point_2D) < vertex_snap2) {
existing = true;
break;
}
@@ -978,7 +978,7 @@ void CSGBrushOperation::Build2DFaces::_merge_faces(const Vector<int> &p_segment_
};
Vector2 closest_point = Geometry2D::get_closest_point_to_segment(point_2D, edge_points);
- if ((closest_point - point_2D).length_squared() < vertex_snap2) {
+ if (point_2D.distance_squared_to(closest_point) < vertex_snap2) {
int opposite_vertex_idx = face.vertex_idx[(face_edge_idx + 2) % 3];
// If new vertex snaps to degenerate vertex, just delete this face.
@@ -1041,7 +1041,7 @@ void CSGBrushOperation::Build2DFaces::_find_edge_intersections(const Vector2 p_s
bool on_edge = false;
for (int edge_point_idx = 0; edge_point_idx < 2; ++edge_point_idx) {
intersection_point = Geometry2D::get_closest_point_to_segment(p_segment_points[edge_point_idx], edge_points);
- if ((intersection_point - p_segment_points[edge_point_idx]).length_squared() < vertex_snap2) {
+ if (p_segment_points[edge_point_idx].distance_squared_to(intersection_point) < vertex_snap2) {
on_edge = true;
break;
}
@@ -1050,13 +1050,13 @@ void CSGBrushOperation::Build2DFaces::_find_edge_intersections(const Vector2 p_s
// Else check if the segment intersects the edge.
if (on_edge || Geometry2D::segment_intersects_segment(p_segment_points[0], p_segment_points[1], edge_points[0], edge_points[1], &intersection_point)) {
// Check if intersection point is an edge point.
- if ((intersection_point - edge_points[0]).length_squared() < vertex_snap2 ||
- (intersection_point - edge_points[1]).length_squared() < vertex_snap2) {
+ if ((edge_points[0].distance_squared_to(intersection_point) < vertex_snap2) ||
+ (edge_points[1].distance_squared_to(intersection_point) < vertex_snap2)) {
continue;
}
// Check if edge exists, by checking if the intersecting segment is parallel to the edge.
- if (are_segements_parallel(p_segment_points, edge_points, vertex_snap2)) {
+ if (are_segments_parallel(p_segment_points, edge_points, vertex_snap2)) {
continue;
}
@@ -1078,7 +1078,7 @@ void CSGBrushOperation::Build2DFaces::_find_edge_intersections(const Vector2 p_s
// If opposite point is on the segment, add its index to segment indices too.
Vector2 closest_point = Geometry2D::get_closest_point_to_segment(vertices[opposite_vertex_idx].point, p_segment_points);
- if ((closest_point - vertices[opposite_vertex_idx].point).length_squared() < vertex_snap2) {
+ if (vertices[opposite_vertex_idx].point.distance_squared_to(closest_point) < vertex_snap2) {
_add_vertex_idx_sorted(r_segment_indices, opposite_vertex_idx);
}
@@ -1132,7 +1132,7 @@ int CSGBrushOperation::Build2DFaces::_insert_point(const Vector2 &p_point) {
// Check if point is existing face vertex.
for (int i = 0; i < 3; ++i) {
- if ((p_point - face_vertices[i].point).length_squared() < vertex_snap2) {
+ if (face_vertices[i].point.distance_squared_to(p_point) < vertex_snap2) {
return face.vertex_idx[i];
}
}
@@ -1150,7 +1150,7 @@ int CSGBrushOperation::Build2DFaces::_insert_point(const Vector2 &p_point) {
};
Vector2 closest_point = Geometry2D::get_closest_point_to_segment(p_point, edge_points);
- if ((closest_point - p_point).length_squared() < vertex_snap2) {
+ if (p_point.distance_squared_to(closest_point) < vertex_snap2) {
on_edge = true;
// Add the point as a new vertex.
@@ -1172,8 +1172,8 @@ int CSGBrushOperation::Build2DFaces::_insert_point(const Vector2 &p_point) {
Vector2 split_edge1[2] = { vertices[new_vertex_idx].point, edge_points[0] };
Vector2 split_edge2[2] = { vertices[new_vertex_idx].point, edge_points[1] };
Vector2 new_edge[2] = { vertices[new_vertex_idx].point, vertices[opposite_vertex_idx].point };
- if (are_segements_parallel(split_edge1, new_edge, vertex_snap2) &&
- are_segements_parallel(split_edge2, new_edge, vertex_snap2)) {
+ if (are_segments_parallel(split_edge1, new_edge, vertex_snap2) &&
+ are_segments_parallel(split_edge2, new_edge, vertex_snap2)) {
break;
}
diff --git a/modules/csg/csg_shape.cpp b/modules/csg/csg_shape.cpp
index 452fb32d9d..e4297a593e 100644
--- a/modules/csg/csg_shape.cpp
+++ b/modules/csg/csg_shape.cpp
@@ -1732,6 +1732,7 @@ CSGBrush *CSGPolygon3D::_build_brush() {
int extrusion_face_count = shape_sides * 2;
int end_count = 0;
int shape_face_count = shape_faces.size() / 3;
+ real_t curve_length = 1.0;
switch (mode) {
case MODE_DEPTH:
extrusions = 1;
@@ -1744,7 +1745,12 @@ CSGBrush *CSGPolygon3D::_build_brush() {
}
break;
case MODE_PATH: {
- extrusions = Math::ceil(1.0 * curve->get_point_count() / path_interval);
+ curve_length = curve->get_baked_length();
+ if (path_interval_type == PATH_INTERVAL_DISTANCE) {
+ extrusions = MAX(1, Math::ceil(curve_length / path_interval)) + 1;
+ } else {
+ extrusions = Math::ceil(1.0 * curve->get_point_count() / path_interval);
+ }
if (!path_joined) {
end_count = 2;
extrusions -= 1;
@@ -1767,212 +1773,245 @@ CSGBrush *CSGPolygon3D::_build_brush() {
smooth.resize(face_count);
materials.resize(face_count);
invert.resize(face_count);
+ int faces_removed = 0;
- Vector3 *facesw = faces.ptrw();
- Vector2 *uvsw = uvs.ptrw();
- bool *smoothw = smooth.ptrw();
- Ref<Material> *materialsw = materials.ptrw();
- bool *invertw = invert.ptrw();
-
- int face = 0;
- Transform3D base_xform;
- Transform3D current_xform;
- Transform3D previous_xform;
- double u_step = 1.0 / extrusions;
- double v_step = 1.0 / shape_sides;
- double spin_step = Math::deg2rad(spin_degrees / spin_sides);
- double extrusion_step = 1.0 / extrusions;
- if (mode == MODE_PATH) {
- if (path_joined) {
- extrusion_step = 1.0 / (extrusions - 1);
- }
- extrusion_step *= curve->get_baked_length();
- }
+ {
+ Vector3 *facesw = faces.ptrw();
+ Vector2 *uvsw = uvs.ptrw();
+ bool *smoothw = smooth.ptrw();
+ Ref<Material> *materialsw = materials.ptrw();
+ bool *invertw = invert.ptrw();
- if (mode == MODE_PATH) {
- if (!path_local) {
- base_xform = path->get_global_transform();
+ int face = 0;
+ Transform3D base_xform;
+ Transform3D current_xform;
+ Transform3D previous_xform;
+ Transform3D previous_previous_xform;
+ double u_step = 1.0 / extrusions;
+ if (path_u_distance > 0.0) {
+ u_step *= curve_length / path_u_distance;
+ }
+ double v_step = 1.0 / shape_sides;
+ double spin_step = Math::deg2rad(spin_degrees / spin_sides);
+ double extrusion_step = 1.0 / extrusions;
+ if (mode == MODE_PATH) {
+ if (path_joined) {
+ extrusion_step = 1.0 / (extrusions - 1);
+ }
+ extrusion_step *= curve_length;
}
- Vector3 current_point = curve->interpolate_baked(0);
- Vector3 next_point = curve->interpolate_baked(extrusion_step);
- Vector3 current_up = Vector3(0, 1, 0);
- Vector3 direction = next_point - current_point;
+ if (mode == MODE_PATH) {
+ if (!path_local) {
+ base_xform = path->get_global_transform();
+ }
- if (path_joined) {
- Vector3 last_point = curve->interpolate_baked(curve->get_baked_length());
- direction = next_point - last_point;
- }
+ Vector3 current_point = curve->interpolate_baked(0);
+ Vector3 next_point = curve->interpolate_baked(extrusion_step);
+ Vector3 current_up = Vector3(0, 1, 0);
+ Vector3 direction = next_point - current_point;
- switch (path_rotation) {
- case PATH_ROTATION_POLYGON:
- direction = Vector3(0, 0, -1);
- break;
- case PATH_ROTATION_PATH:
- break;
- case PATH_ROTATION_PATH_FOLLOW:
- current_up = curve->interpolate_baked_up_vector(0);
- break;
+ if (path_joined) {
+ Vector3 last_point = curve->interpolate_baked(curve->get_baked_length());
+ direction = next_point - last_point;
+ }
+
+ switch (path_rotation) {
+ case PATH_ROTATION_POLYGON:
+ direction = Vector3(0, 0, -1);
+ break;
+ case PATH_ROTATION_PATH:
+ break;
+ case PATH_ROTATION_PATH_FOLLOW:
+ current_up = curve->interpolate_baked_up_vector(0);
+ break;
+ }
+
+ Transform3D facing = Transform3D().looking_at(direction, current_up);
+ current_xform = base_xform.translated(current_point) * facing;
}
- Transform3D facing = Transform3D().looking_at(direction, current_up);
- current_xform = base_xform.translated(current_point) * facing;
- }
+ // Create the mesh.
+ if (end_count > 0) {
+ // Add front end face.
+ for (int face_idx = 0; face_idx < shape_face_count; face_idx++) {
+ for (int face_vertex_idx = 0; face_vertex_idx < 3; face_vertex_idx++) {
+ // We need to reverse the rotation of the shape face vertices.
+ int index = shape_faces[face_idx * 3 + 2 - face_vertex_idx];
+ Point2 p = shape_polygon[index];
+ Point2 uv = (p - shape_rect.position) / shape_rect.size;
+
+ // Use the left side of the bottom half of the y-inverted texture.
+ uv.x = uv.x / 2;
+ uv.y = 1 - (uv.y / 2);
+
+ facesw[face * 3 + face_vertex_idx] = current_xform.xform(Vector3(p.x, p.y, 0));
+ uvsw[face * 3 + face_vertex_idx] = uv;
+ }
- // Create the mesh.
- if (end_count > 0) {
- // Add front end face.
- for (int face_idx = 0; face_idx < shape_face_count; face_idx++) {
- for (int face_vertex_idx = 0; face_vertex_idx < 3; face_vertex_idx++) {
- // We need to reverse the rotation of the shape face vertices.
- int index = shape_faces[face_idx * 3 + 2 - face_vertex_idx];
- Point2 p = shape_polygon[index];
- Point2 uv = (p - shape_rect.position) / shape_rect.size;
-
- // Use the left side of the bottom half of the y-inverted texture.
- uv.x = uv.x / 2;
- uv.y = 1 - (uv.y / 2);
-
- facesw[face * 3 + face_vertex_idx] = current_xform.xform(Vector3(p.x, p.y, 0));
- uvsw[face * 3 + face_vertex_idx] = uv;
+ smoothw[face] = false;
+ materialsw[face] = material;
+ invertw[face] = invert_faces;
+ face++;
}
-
- smoothw[face] = false;
- materialsw[face] = material;
- invertw[face] = invert_faces;
- face++;
}
- }
- // Add extrusion faces.
- for (int x0 = 0; x0 < extrusions; x0++) {
- previous_xform = current_xform;
-
- switch (mode) {
- case MODE_DEPTH: {
- current_xform.translate(Vector3(0, 0, -depth));
- } break;
- case MODE_SPIN: {
- current_xform.rotate(Vector3(0, 1, 0), spin_step);
- } break;
- case MODE_PATH: {
- double previous_offset = x0 * extrusion_step;
- double current_offset = (x0 + 1) * extrusion_step;
- double next_offset = (x0 + 2) * extrusion_step;
- if (x0 == extrusions - 1) {
- if (path_joined) {
- current_offset = 0;
- next_offset = extrusion_step;
+ real_t angle_simplify_dot = Math::cos(Math::deg2rad(path_simplify_angle));
+ Vector3 previous_simplify_dir = Vector3(0, 0, 0);
+ int faces_combined = 0;
+
+ // Add extrusion faces.
+ for (int x0 = 0; x0 < extrusions; x0++) {
+ previous_previous_xform = previous_xform;
+ previous_xform = current_xform;
+
+ switch (mode) {
+ case MODE_DEPTH: {
+ current_xform.translate(Vector3(0, 0, -depth));
+ } break;
+ case MODE_SPIN: {
+ current_xform.rotate(Vector3(0, 1, 0), spin_step);
+ } break;
+ case MODE_PATH: {
+ double previous_offset = x0 * extrusion_step;
+ double current_offset = (x0 + 1) * extrusion_step;
+ double next_offset = (x0 + 2) * extrusion_step;
+ if (x0 == extrusions - 1) {
+ if (path_joined) {
+ current_offset = 0;
+ next_offset = extrusion_step;
+ } else {
+ next_offset = current_offset;
+ }
+ }
+
+ Vector3 previous_point = curve->interpolate_baked(previous_offset);
+ Vector3 current_point = curve->interpolate_baked(current_offset);
+ Vector3 next_point = curve->interpolate_baked(next_offset);
+ Vector3 current_up = Vector3(0, 1, 0);
+ Vector3 direction = next_point - previous_point;
+ Vector3 current_dir = (current_point - previous_point).normalized();
+
+ // If the angles are similar, remove the previous face and replace it with this one.
+ if (path_simplify_angle > 0.0 && x0 > 0 && previous_simplify_dir.dot(current_dir) > angle_simplify_dot) {
+ faces_combined += 1;
+ previous_xform = previous_previous_xform;
+ face -= extrusion_face_count;
+ faces_removed += extrusion_face_count;
} else {
- next_offset = current_offset;
+ faces_combined = 0;
+ previous_simplify_dir = current_dir;
}
- }
- Vector3 previous_point = curve->interpolate_baked(previous_offset);
- Vector3 current_point = curve->interpolate_baked(current_offset);
- Vector3 next_point = curve->interpolate_baked(next_offset);
- Vector3 current_up = Vector3(0, 1, 0);
- Vector3 direction = next_point - previous_point;
+ switch (path_rotation) {
+ case PATH_ROTATION_POLYGON:
+ direction = Vector3(0, 0, -1);
+ break;
+ case PATH_ROTATION_PATH:
+ break;
+ case PATH_ROTATION_PATH_FOLLOW:
+ current_up = curve->interpolate_baked_up_vector(current_offset);
+ break;
+ }
- switch (path_rotation) {
- case PATH_ROTATION_POLYGON:
- direction = Vector3(0, 0, -1);
- break;
- case PATH_ROTATION_PATH:
- break;
- case PATH_ROTATION_PATH_FOLLOW:
- current_up = curve->interpolate_baked_up_vector(current_offset);
- break;
- }
+ Transform3D facing = Transform3D().looking_at(direction, current_up);
+ current_xform = base_xform.translated(current_point) * facing;
+ } break;
+ }
- Transform3D facing = Transform3D().looking_at(direction, current_up);
- current_xform = base_xform.translated(current_point) * facing;
- } break;
- }
+ double u0 = (x0 - faces_combined) * u_step;
+ double u1 = ((x0 + 1) * u_step);
+ if (mode == MODE_PATH && !path_continuous_u) {
+ u0 = 0.0;
+ u1 = 1.0;
+ }
- double u0 = x0 * u_step;
- double u1 = ((x0 + 1) * u_step);
- if (mode == MODE_PATH && !path_continuous_u) {
- u0 = 0.0;
- u1 = 1.0;
- }
+ for (int y0 = 0; y0 < shape_sides; y0++) {
+ int y1 = (y0 + 1) % shape_sides;
+ // Use the top half of the texture.
+ double v0 = (y0 * v_step) / 2;
+ double v1 = ((y0 + 1) * v_step) / 2;
- for (int y0 = 0; y0 < shape_sides; y0++) {
- int y1 = (y0 + 1) % shape_sides;
- // Use the top half of the texture.
- double v0 = (y0 * v_step) / 2;
- double v1 = ((y0 + 1) * v_step) / 2;
-
- Vector3 v[4] = {
- previous_xform.xform(Vector3(shape_polygon[y0].x, shape_polygon[y0].y, 0)),
- current_xform.xform(Vector3(shape_polygon[y0].x, shape_polygon[y0].y, 0)),
- current_xform.xform(Vector3(shape_polygon[y1].x, shape_polygon[y1].y, 0)),
- previous_xform.xform(Vector3(shape_polygon[y1].x, shape_polygon[y1].y, 0)),
- };
-
- Vector2 u[4] = {
- Vector2(u0, v0),
- Vector2(u1, v0),
- Vector2(u1, v1),
- Vector2(u0, v1),
- };
-
- // Face 1
- facesw[face * 3 + 0] = v[0];
- facesw[face * 3 + 1] = v[1];
- facesw[face * 3 + 2] = v[2];
-
- uvsw[face * 3 + 0] = u[0];
- uvsw[face * 3 + 1] = u[1];
- uvsw[face * 3 + 2] = u[2];
-
- smoothw[face] = smooth_faces;
- invertw[face] = invert_faces;
- materialsw[face] = material;
-
- face++;
-
- // Face 2
- facesw[face * 3 + 0] = v[2];
- facesw[face * 3 + 1] = v[3];
- facesw[face * 3 + 2] = v[0];
-
- uvsw[face * 3 + 0] = u[2];
- uvsw[face * 3 + 1] = u[3];
- uvsw[face * 3 + 2] = u[0];
-
- smoothw[face] = smooth_faces;
- invertw[face] = invert_faces;
- materialsw[face] = material;
-
- face++;
- }
- }
+ Vector3 v[4] = {
+ previous_xform.xform(Vector3(shape_polygon[y0].x, shape_polygon[y0].y, 0)),
+ current_xform.xform(Vector3(shape_polygon[y0].x, shape_polygon[y0].y, 0)),
+ current_xform.xform(Vector3(shape_polygon[y1].x, shape_polygon[y1].y, 0)),
+ previous_xform.xform(Vector3(shape_polygon[y1].x, shape_polygon[y1].y, 0)),
+ };
- if (end_count > 1) {
- // Add back end face.
- for (int face_idx = 0; face_idx < shape_face_count; face_idx++) {
- for (int face_vertex_idx = 0; face_vertex_idx < 3; face_vertex_idx++) {
- int index = shape_faces[face_idx * 3 + face_vertex_idx];
- Point2 p = shape_polygon[index];
- Point2 uv = (p - shape_rect.position) / shape_rect.size;
+ Vector2 u[4] = {
+ Vector2(u0, v0),
+ Vector2(u1, v0),
+ Vector2(u1, v1),
+ Vector2(u0, v1),
+ };
- // Use the x-inverted ride side of the bottom half of the y-inverted texture.
- uv.x = 1 - uv.x / 2;
- uv.y = 1 - (uv.y / 2);
+ // Face 1
+ facesw[face * 3 + 0] = v[0];
+ facesw[face * 3 + 1] = v[1];
+ facesw[face * 3 + 2] = v[2];
- facesw[face * 3 + face_vertex_idx] = current_xform.xform(Vector3(p.x, p.y, 0));
- uvsw[face * 3 + face_vertex_idx] = uv;
+ uvsw[face * 3 + 0] = u[0];
+ uvsw[face * 3 + 1] = u[1];
+ uvsw[face * 3 + 2] = u[2];
+
+ smoothw[face] = smooth_faces;
+ invertw[face] = invert_faces;
+ materialsw[face] = material;
+
+ face++;
+
+ // Face 2
+ facesw[face * 3 + 0] = v[2];
+ facesw[face * 3 + 1] = v[3];
+ facesw[face * 3 + 2] = v[0];
+
+ uvsw[face * 3 + 0] = u[2];
+ uvsw[face * 3 + 1] = u[3];
+ uvsw[face * 3 + 2] = u[0];
+
+ smoothw[face] = smooth_faces;
+ invertw[face] = invert_faces;
+ materialsw[face] = material;
+
+ face++;
}
+ }
+
+ if (end_count > 1) {
+ // Add back end face.
+ for (int face_idx = 0; face_idx < shape_face_count; face_idx++) {
+ for (int face_vertex_idx = 0; face_vertex_idx < 3; face_vertex_idx++) {
+ int index = shape_faces[face_idx * 3 + face_vertex_idx];
+ Point2 p = shape_polygon[index];
+ Point2 uv = (p - shape_rect.position) / shape_rect.size;
- smoothw[face] = false;
- materialsw[face] = material;
- invertw[face] = invert_faces;
- face++;
+ // Use the x-inverted ride side of the bottom half of the y-inverted texture.
+ uv.x = 1 - uv.x / 2;
+ uv.y = 1 - (uv.y / 2);
+
+ facesw[face * 3 + face_vertex_idx] = current_xform.xform(Vector3(p.x, p.y, 0));
+ uvsw[face * 3 + face_vertex_idx] = uv;
+ }
+
+ smoothw[face] = false;
+ materialsw[face] = material;
+ invertw[face] = invert_faces;
+ face++;
+ }
}
+
+ face_count -= faces_removed;
+ ERR_FAIL_COND_V_MSG(face != face_count, brush, "Bug: Failed to create the CSGPolygon mesh correctly.");
}
- ERR_FAIL_COND_V_MSG(face != face_count, brush, "Bug: Failed to create the CSGPolygon mesh correctly.");
+ if (faces_removed > 0) {
+ faces.resize(face_count * 3);
+ uvs.resize(face_count * 3);
+ smooth.resize(face_count);
+ materials.resize(face_count);
+ invert.resize(face_count);
+ }
brush->build_from_faces(faces, uvs, smooth, materials, invert);
@@ -2031,9 +2070,15 @@ void CSGPolygon3D::_bind_methods() {
ClassDB::bind_method(D_METHOD("set_path_node", "path"), &CSGPolygon3D::set_path_node);
ClassDB::bind_method(D_METHOD("get_path_node"), &CSGPolygon3D::get_path_node);
+ ClassDB::bind_method(D_METHOD("set_path_interval_type", "interval_type"), &CSGPolygon3D::set_path_interval_type);
+ ClassDB::bind_method(D_METHOD("get_path_interval_type"), &CSGPolygon3D::get_path_interval_type);
+
ClassDB::bind_method(D_METHOD("set_path_interval", "interval"), &CSGPolygon3D::set_path_interval);
ClassDB::bind_method(D_METHOD("get_path_interval"), &CSGPolygon3D::get_path_interval);
+ ClassDB::bind_method(D_METHOD("set_path_simplify_angle", "degrees"), &CSGPolygon3D::set_path_simplify_angle);
+ ClassDB::bind_method(D_METHOD("get_path_simplify_angle"), &CSGPolygon3D::get_path_simplify_angle);
+
ClassDB::bind_method(D_METHOD("set_path_rotation", "path_rotation"), &CSGPolygon3D::set_path_rotation);
ClassDB::bind_method(D_METHOD("get_path_rotation"), &CSGPolygon3D::get_path_rotation);
@@ -2043,6 +2088,9 @@ void CSGPolygon3D::_bind_methods() {
ClassDB::bind_method(D_METHOD("set_path_continuous_u", "enable"), &CSGPolygon3D::set_path_continuous_u);
ClassDB::bind_method(D_METHOD("is_path_continuous_u"), &CSGPolygon3D::is_path_continuous_u);
+ ClassDB::bind_method(D_METHOD("set_path_u_distance", "distance"), &CSGPolygon3D::set_path_u_distance);
+ ClassDB::bind_method(D_METHOD("get_path_u_distance"), &CSGPolygon3D::get_path_u_distance);
+
ClassDB::bind_method(D_METHOD("set_path_joined", "enable"), &CSGPolygon3D::set_path_joined);
ClassDB::bind_method(D_METHOD("is_path_joined"), &CSGPolygon3D::is_path_joined);
@@ -2061,10 +2109,13 @@ void CSGPolygon3D::_bind_methods() {
ADD_PROPERTY(PropertyInfo(Variant::FLOAT, "spin_degrees", PROPERTY_HINT_RANGE, "1,360,0.1"), "set_spin_degrees", "get_spin_degrees");
ADD_PROPERTY(PropertyInfo(Variant::INT, "spin_sides", PROPERTY_HINT_RANGE, "3,64,1"), "set_spin_sides", "get_spin_sides");
ADD_PROPERTY(PropertyInfo(Variant::NODE_PATH, "path_node", PROPERTY_HINT_NODE_PATH_VALID_TYPES, "Path3D"), "set_path_node", "get_path_node");
- ADD_PROPERTY(PropertyInfo(Variant::FLOAT, "path_interval", PROPERTY_HINT_RANGE, "0.1,1.0,0.05,exp"), "set_path_interval", "get_path_interval");
+ ADD_PROPERTY(PropertyInfo(Variant::INT, "path_interval_type", PROPERTY_HINT_ENUM, "Distance,Subdivide"), "set_path_interval_type", "get_path_interval_type");
+ ADD_PROPERTY(PropertyInfo(Variant::FLOAT, "path_interval", PROPERTY_HINT_RANGE, "0.01,1.0,0.01,exp,or_greater"), "set_path_interval", "get_path_interval");
+ ADD_PROPERTY(PropertyInfo(Variant::FLOAT, "path_simplify_angle", PROPERTY_HINT_RANGE, "0.0,180.0,0.1,exp"), "set_path_simplify_angle", "get_path_simplify_angle");
ADD_PROPERTY(PropertyInfo(Variant::INT, "path_rotation", PROPERTY_HINT_ENUM, "Polygon,Path,PathFollow"), "set_path_rotation", "get_path_rotation");
ADD_PROPERTY(PropertyInfo(Variant::BOOL, "path_local"), "set_path_local", "is_path_local");
ADD_PROPERTY(PropertyInfo(Variant::BOOL, "path_continuous_u"), "set_path_continuous_u", "is_path_continuous_u");
+ ADD_PROPERTY(PropertyInfo(Variant::FLOAT, "path_u_distance", PROPERTY_HINT_RANGE, "0.0,10.0,0.01,or_greater"), "set_path_u_distance", "get_path_u_distance");
ADD_PROPERTY(PropertyInfo(Variant::BOOL, "path_joined"), "set_path_joined", "is_path_joined");
ADD_PROPERTY(PropertyInfo(Variant::BOOL, "smooth_faces"), "set_smooth_faces", "get_smooth_faces");
ADD_PROPERTY(PropertyInfo(Variant::OBJECT, "material", PROPERTY_HINT_RESOURCE_TYPE, "BaseMaterial3D,ShaderMaterial"), "set_material", "get_material");
@@ -2076,6 +2127,9 @@ void CSGPolygon3D::_bind_methods() {
BIND_ENUM_CONSTANT(PATH_ROTATION_POLYGON);
BIND_ENUM_CONSTANT(PATH_ROTATION_PATH);
BIND_ENUM_CONSTANT(PATH_ROTATION_PATH_FOLLOW);
+
+ BIND_ENUM_CONSTANT(PATH_INTERVAL_DISTANCE);
+ BIND_ENUM_CONSTANT(PATH_INTERVAL_SUBDIVIDE);
}
void CSGPolygon3D::set_polygon(const Vector<Vector2> &p_polygon) {
@@ -2119,6 +2173,16 @@ bool CSGPolygon3D::is_path_continuous_u() const {
return path_continuous_u;
}
+void CSGPolygon3D::set_path_u_distance(real_t p_path_u_distance) {
+ path_u_distance = p_path_u_distance;
+ _make_dirty();
+ update_gizmos();
+}
+
+real_t CSGPolygon3D::get_path_u_distance() const {
+ return path_u_distance;
+}
+
void CSGPolygon3D::set_spin_degrees(const float p_spin_degrees) {
ERR_FAIL_COND(p_spin_degrees < 0.01 || p_spin_degrees > 360);
spin_degrees = p_spin_degrees;
@@ -2151,8 +2215,17 @@ NodePath CSGPolygon3D::get_path_node() const {
return path_node;
}
+void CSGPolygon3D::set_path_interval_type(PathIntervalType p_interval_type) {
+ path_interval_type = p_interval_type;
+ _make_dirty();
+ update_gizmos();
+}
+
+CSGPolygon3D::PathIntervalType CSGPolygon3D::get_path_interval_type() const {
+ return path_interval_type;
+}
+
void CSGPolygon3D::set_path_interval(float p_interval) {
- ERR_FAIL_COND_MSG(p_interval <= 0 || p_interval > 1, "Path interval must be greater than 0 and less than or equal to 1.0.");
path_interval = p_interval;
_make_dirty();
update_gizmos();
@@ -2162,6 +2235,16 @@ float CSGPolygon3D::get_path_interval() const {
return path_interval;
}
+void CSGPolygon3D::set_path_simplify_angle(float p_angle) {
+ path_simplify_angle = p_angle;
+ _make_dirty();
+ update_gizmos();
+}
+
+float CSGPolygon3D::get_path_simplify_angle() const {
+ return path_simplify_angle;
+}
+
void CSGPolygon3D::set_path_rotation(PathRotation p_rotation) {
path_rotation = p_rotation;
_make_dirty();
@@ -2229,10 +2312,13 @@ CSGPolygon3D::CSGPolygon3D() {
spin_degrees = 360;
spin_sides = 8;
smooth_faces = false;
+ path_interval_type = PATH_INTERVAL_DISTANCE;
path_interval = 1.0;
+ path_simplify_angle = 0.0;
path_rotation = PATH_ROTATION_PATH_FOLLOW;
path_local = false;
path_continuous_u = true;
+ path_u_distance = 1.0;
path_joined = false;
path = nullptr;
}
diff --git a/modules/csg/csg_shape.h b/modules/csg/csg_shape.h
index 5cf371665e..c85cce776b 100644
--- a/modules/csg/csg_shape.h
+++ b/modules/csg/csg_shape.h
@@ -336,6 +336,11 @@ public:
MODE_PATH
};
+ enum PathIntervalType {
+ PATH_INTERVAL_DISTANCE,
+ PATH_INTERVAL_SUBDIVIDE
+ };
+
enum PathRotation {
PATH_ROTATION_POLYGON,
PATH_ROTATION_PATH,
@@ -356,7 +361,9 @@ private:
int spin_sides;
NodePath path_node;
+ PathIntervalType path_interval_type;
float path_interval;
+ float path_simplify_angle;
PathRotation path_rotation;
bool path_local;
@@ -364,6 +371,7 @@ private:
bool smooth_faces;
bool path_continuous_u;
+ real_t path_u_distance;
bool path_joined;
bool _is_editable_3d_polygon() const;
@@ -396,9 +404,15 @@ public:
void set_path_node(const NodePath &p_path);
NodePath get_path_node() const;
+ void set_path_interval_type(PathIntervalType p_interval_type);
+ PathIntervalType get_path_interval_type() const;
+
void set_path_interval(float p_interval);
float get_path_interval() const;
+ void set_path_simplify_angle(float p_angle);
+ float get_path_simplify_angle() const;
+
void set_path_rotation(PathRotation p_rotation);
PathRotation get_path_rotation() const;
@@ -408,6 +422,9 @@ public:
void set_path_continuous_u(bool p_enable);
bool is_path_continuous_u() const;
+ void set_path_u_distance(real_t p_path_u_distance);
+ real_t get_path_u_distance() const;
+
void set_path_joined(bool p_enable);
bool is_path_joined() const;
@@ -422,5 +439,6 @@ public:
VARIANT_ENUM_CAST(CSGPolygon3D::Mode)
VARIANT_ENUM_CAST(CSGPolygon3D::PathRotation)
+VARIANT_ENUM_CAST(CSGPolygon3D::PathIntervalType)
#endif // CSG_SHAPE_H
diff --git a/modules/csg/doc_classes/CSGBox3D.xml b/modules/csg/doc_classes/CSGBox3D.xml
index 5bb1c4e75b..d64e58ae4d 100644
--- a/modules/csg/doc_classes/CSGBox3D.xml
+++ b/modules/csg/doc_classes/CSGBox3D.xml
@@ -8,8 +8,6 @@
</description>
<tutorials>
</tutorials>
- <methods>
- </methods>
<members>
<member name="material" type="Material" setter="set_material" getter="get_material">
The material used to render the box.
@@ -18,6 +16,4 @@
The box's width, height and depth.
</member>
</members>
- <constants>
- </constants>
</class>
diff --git a/modules/csg/doc_classes/CSGCombiner3D.xml b/modules/csg/doc_classes/CSGCombiner3D.xml
index b55111eee4..422c5d35b7 100644
--- a/modules/csg/doc_classes/CSGCombiner3D.xml
+++ b/modules/csg/doc_classes/CSGCombiner3D.xml
@@ -8,8 +8,4 @@
</description>
<tutorials>
</tutorials>
- <methods>
- </methods>
- <constants>
- </constants>
</class>
diff --git a/modules/csg/doc_classes/CSGCylinder3D.xml b/modules/csg/doc_classes/CSGCylinder3D.xml
index bfd2a5d5f2..40e989bfb3 100644
--- a/modules/csg/doc_classes/CSGCylinder3D.xml
+++ b/modules/csg/doc_classes/CSGCylinder3D.xml
@@ -8,8 +8,6 @@
</description>
<tutorials>
</tutorials>
- <methods>
- </methods>
<members>
<member name="cone" type="bool" setter="set_cone" getter="is_cone" default="false">
If [code]true[/code] a cone is created, the [member radius] will only apply to one side.
@@ -30,6 +28,4 @@
If [code]true[/code] the normals of the cylinder are set to give a smooth effect making the cylinder seem rounded. If [code]false[/code] the cylinder will have a flat shaded look.
</member>
</members>
- <constants>
- </constants>
</class>
diff --git a/modules/csg/doc_classes/CSGMesh3D.xml b/modules/csg/doc_classes/CSGMesh3D.xml
index 5fa8427843..2810343139 100644
--- a/modules/csg/doc_classes/CSGMesh3D.xml
+++ b/modules/csg/doc_classes/CSGMesh3D.xml
@@ -8,8 +8,6 @@
</description>
<tutorials>
</tutorials>
- <methods>
- </methods>
<members>
<member name="material" type="Material" setter="set_material" getter="get_material">
The [Material] used in drawing the CSG shape.
@@ -19,6 +17,4 @@
[b]Note:[/b] When using an [ArrayMesh], avoid meshes with vertex normals unless a flat shader is required. By default, CSGMesh will ignore the mesh's vertex normals and use a smooth shader calculated using the faces' normals. If a flat shader is required, ensure that all faces' vertex normals are parallel.
</member>
</members>
- <constants>
- </constants>
</class>
diff --git a/modules/csg/doc_classes/CSGPolygon3D.xml b/modules/csg/doc_classes/CSGPolygon3D.xml
index 5309cde956..ecbb7962d1 100644
--- a/modules/csg/doc_classes/CSGPolygon3D.xml
+++ b/modules/csg/doc_classes/CSGPolygon3D.xml
@@ -8,8 +8,6 @@
</description>
<tutorials>
</tutorials>
- <methods>
- </methods>
<members>
<member name="depth" type="float" setter="set_depth" getter="get_depth" default="1.0">
When [member mode] is [constant MODE_DEPTH], the depth of the extrusion.
@@ -26,6 +24,9 @@
<member name="path_interval" type="float" setter="set_path_interval" getter="get_path_interval">
When [member mode] is [constant MODE_PATH], the path interval or ratio of path points to extrusions.
</member>
+ <member name="path_interval_type" type="int" setter="set_path_interval_type" getter="get_path_interval_type" enum="CSGPolygon3D.PathIntervalType">
+ When [member mode] is [constant MODE_PATH], this will determine if the interval should be by distance ([constant PATH_INTERVAL_DISTANCE]) or subdivision fractions ([constant PATH_INTERVAL_SUBDIVIDE]).
+ </member>
<member name="path_joined" type="bool" setter="set_path_joined" getter="is_path_joined">
When [member mode] is [constant MODE_PATH], if [code]true[/code] the ends of the path are joined, by adding an extrusion between the last and first points of the path.
</member>
@@ -38,6 +39,12 @@
<member name="path_rotation" type="int" setter="set_path_rotation" getter="get_path_rotation" enum="CSGPolygon3D.PathRotation">
When [member mode] is [constant MODE_PATH], the [enum PathRotation] method used to rotate the [member polygon] as it is extruded.
</member>
+ <member name="path_simplify_angle" type="float" setter="set_path_simplify_angle" getter="get_path_simplify_angle">
+ When [member mode] is [constant MODE_PATH], extrusions that are less than this angle, will be merged together to reduce polygon count.
+ </member>
+ <member name="path_u_distance" type="float" setter="set_path_u_distance" getter="get_path_u_distance">
+ When [member mode] is [constant MODE_PATH], this is the distance along the path, in meters, the texture coordinates will tile. When set to 0, texture coordinates will match geometry exactly with no tiling.
+ </member>
<member name="polygon" type="PackedVector2Array" setter="set_polygon" getter="get_polygon" default="PackedVector2Array(0, 0, 0, 1, 1, 1, 1, 0)">
The point array that defines the 2D polygon that is extruded.
</member>
@@ -72,5 +79,11 @@
<constant name="PATH_ROTATION_PATH_FOLLOW" value="2" enum="PathRotation">
The [member polygon] shape follows the path and its rotations around the path axis.
</constant>
+ <constant name="PATH_INTERVAL_DISTANCE" value="0" enum="PathIntervalType">
+ When [member mode] is set to [constant MODE_PATH], [member path_interval] will determine the distance, in meters, each interval of the path will extrude.
+ </constant>
+ <constant name="PATH_INTERVAL_SUBDIVIDE" value="1" enum="PathIntervalType">
+ When [member mode] is set to [constant MODE_PATH], [member path_interval] will subdivide the polygons along the path.
+ </constant>
</constants>
</class>
diff --git a/modules/csg/doc_classes/CSGPrimitive3D.xml b/modules/csg/doc_classes/CSGPrimitive3D.xml
index 31b7360fac..8f4c8b9451 100644
--- a/modules/csg/doc_classes/CSGPrimitive3D.xml
+++ b/modules/csg/doc_classes/CSGPrimitive3D.xml
@@ -8,13 +8,9 @@
</description>
<tutorials>
</tutorials>
- <methods>
- </methods>
<members>
<member name="invert_faces" type="bool" setter="set_invert_faces" getter="is_inverting_faces" default="false">
Invert the faces of the mesh.
</member>
</members>
- <constants>
- </constants>
</class>
diff --git a/modules/csg/doc_classes/CSGSphere3D.xml b/modules/csg/doc_classes/CSGSphere3D.xml
index 4d5b3be099..b8dfb4cf5f 100644
--- a/modules/csg/doc_classes/CSGSphere3D.xml
+++ b/modules/csg/doc_classes/CSGSphere3D.xml
@@ -8,8 +8,6 @@
</description>
<tutorials>
</tutorials>
- <methods>
- </methods>
<members>
<member name="material" type="Material" setter="set_material" getter="get_material">
The material used to render the sphere.
@@ -27,6 +25,4 @@
If [code]true[/code] the normals of the sphere are set to give a smooth effect making the sphere seem rounded. If [code]false[/code] the sphere will have a flat shaded look.
</member>
</members>
- <constants>
- </constants>
</class>
diff --git a/modules/csg/doc_classes/CSGTorus3D.xml b/modules/csg/doc_classes/CSGTorus3D.xml
index abe3eab913..91ee63a4c9 100644
--- a/modules/csg/doc_classes/CSGTorus3D.xml
+++ b/modules/csg/doc_classes/CSGTorus3D.xml
@@ -8,8 +8,6 @@
</description>
<tutorials>
</tutorials>
- <methods>
- </methods>
<members>
<member name="inner_radius" type="float" setter="set_inner_radius" getter="get_inner_radius" default="2.0">
The inner radius of the torus.
@@ -30,6 +28,4 @@
If [code]true[/code] the normals of the torus are set to give a smooth effect making the torus seem rounded. If [code]false[/code] the torus will have a flat shaded look.
</member>
</members>
- <constants>
- </constants>
</class>
diff --git a/modules/enet/doc_classes/ENetMultiplayerPeer.xml b/modules/enet/doc_classes/ENetMultiplayerPeer.xml
index 43e1d40e47..f9659c092a 100644
--- a/modules/enet/doc_classes/ENetMultiplayerPeer.xml
+++ b/modules/enet/doc_classes/ENetMultiplayerPeer.xml
@@ -77,12 +77,8 @@
<member name="host" type="ENetConnection" setter="" getter="get_host">
The underlying [ENetConnection] created after [method create_client] and [method create_server].
</member>
- <member name="refuse_new_connections" type="bool" setter="set_refuse_new_connections" getter="is_refusing_new_connections" override="true" default="false" />
<member name="server_relay" type="bool" setter="set_server_relay_enabled" getter="is_server_relay_enabled" default="true">
Enable or disable the server feature that notifies clients of other peers' connection/disconnection, and relays messages between them. When this option is [code]false[/code], clients won't be automatically notified of other peers and won't be able to send them packets through the server.
</member>
- <member name="transfer_mode" type="int" setter="set_transfer_mode" getter="get_transfer_mode" override="true" enum="TransferMode" default="2" />
</members>
- <constants>
- </constants>
</class>
diff --git a/modules/enet/doc_classes/ENetPacketPeer.xml b/modules/enet/doc_classes/ENetPacketPeer.xml
index 8f0693fb01..4116ba17f2 100644
--- a/modules/enet/doc_classes/ENetPacketPeer.xml
+++ b/modules/enet/doc_classes/ENetPacketPeer.xml
@@ -6,6 +6,7 @@
<description>
A PacketPeer implementation representing a peer of an [ENetConnection].
This class cannot be instantiated directly but can be retrieved during [method ENetConnection.service] or via [method ENetConnection.get_peers].
+ [b]Note:[/b] When exporting to Android, make sure to enable the [code]INTERNET[/code] permission in the Android export preset before exporting the project or using one-click deploy. Otherwise, network communication of any kind will be blocked by Android.
</description>
<tutorials>
<link title="API documentation on the ENet website">http://enet.bespin.org/usergroup0.html</link>
diff --git a/modules/enet/enet_multiplayer_peer.cpp b/modules/enet/enet_multiplayer_peer.cpp
index afd31207f6..52eb46f070 100644
--- a/modules/enet/enet_multiplayer_peer.cpp
+++ b/modules/enet/enet_multiplayer_peer.cpp
@@ -33,22 +33,6 @@
#include "core/io/marshalls.h"
#include "core/os/os.h"
-void ENetMultiplayerPeer::set_transfer_channel(int p_channel) {
- transfer_channel = p_channel;
-}
-
-int ENetMultiplayerPeer::get_transfer_channel() const {
- return transfer_channel;
-}
-
-void ENetMultiplayerPeer::set_transfer_mode(Multiplayer::TransferMode p_mode) {
- transfer_mode = p_mode;
-}
-
-Multiplayer::TransferMode ENetMultiplayerPeer::get_transfer_mode() const {
- return transfer_mode;
-}
-
void ENetMultiplayerPeer::set_target_peer(int p_peer) {
target_peer = p_peer;
}
@@ -62,6 +46,7 @@ int ENetMultiplayerPeer::get_packet_peer() const {
Error ENetMultiplayerPeer::create_server(int p_port, int p_max_clients, int p_max_channels, int p_in_bandwidth, int p_out_bandwidth) {
ERR_FAIL_COND_V_MSG(_is_active(), ERR_ALREADY_IN_USE, "The multiplayer instance is already active.");
+ set_refuse_new_connections(false);
Ref<ENetConnection> host;
host.instantiate();
Error err = host->create_host_bound(bind_ip, p_port, p_max_clients, 0, p_max_channels > 0 ? p_max_channels + SYSCH_MAX : 0, p_out_bandwidth);
@@ -70,7 +55,6 @@ Error ENetMultiplayerPeer::create_server(int p_port, int p_max_clients, int p_ma
}
active_mode = MODE_SERVER;
- refuse_connections = false;
unique_id = 1;
connection_status = CONNECTION_CONNECTED;
hosts[0] = host;
@@ -79,6 +63,7 @@ Error ENetMultiplayerPeer::create_server(int p_port, int p_max_clients, int p_ma
Error ENetMultiplayerPeer::create_client(const String &p_address, int p_port, int p_channel_count, int p_in_bandwidth, int p_out_bandwidth, int p_local_port) {
ERR_FAIL_COND_V_MSG(_is_active(), ERR_ALREADY_IN_USE, "The multiplayer instance is already active.");
+ set_refuse_new_connections(false);
Ref<ENetConnection> host;
host.instantiate();
Error err;
@@ -102,7 +87,6 @@ Error ENetMultiplayerPeer::create_client(const String &p_address, int p_port, in
// Need to wait for CONNECT event.
connection_status = CONNECTION_CONNECTING;
active_mode = MODE_CLIENT;
- refuse_connections = false;
peers[1] = peer;
hosts[0] = host;
@@ -113,7 +97,6 @@ Error ENetMultiplayerPeer::create_mesh(int p_id) {
ERR_FAIL_COND_V_MSG(p_id <= 0, ERR_INVALID_PARAMETER, "The unique ID must be greater then 0");
ERR_FAIL_COND_V_MSG(_is_active(), ERR_ALREADY_IN_USE, "The multiplayer instance is already active.");
active_mode = MODE_MESH;
- refuse_connections = false;
unique_id = p_id;
connection_status = CONNECTION_CONNECTED;
return OK;
@@ -145,7 +128,7 @@ bool ENetMultiplayerPeer::_poll_server() {
}
switch (ret) {
case ENetConnection::EVENT_CONNECT: {
- if (refuse_connections) {
+ if (is_refusing_new_connections()) {
event.peer->reset();
return false;
}
@@ -173,7 +156,7 @@ bool ENetMultiplayerPeer::_poll_server() {
emit_signal(SNAME("peer_disconnected"), id);
peers.erase(id);
- if (!server_relay) {
+ if (server_relay) {
_notify_peers(id, false);
}
return false;
@@ -423,6 +406,7 @@ void ENetMultiplayerPeer::close_connection(uint32_t wait_usec) {
hosts.clear();
unique_id = 0;
connection_status = CONNECTION_DISCONNECTED;
+ set_refuse_new_connections(false);
}
int ENetMultiplayerPeer::get_available_packet_count() const {
@@ -451,10 +435,11 @@ Error ENetMultiplayerPeer::put_packet(const uint8_t *p_buffer, int p_buffer_size
int packet_flags = 0;
int channel = SYSCH_RELIABLE;
+ int transfer_channel = get_transfer_channel();
if (transfer_channel > 0) {
channel = SYSCH_MAX + transfer_channel - 1;
} else {
- switch (transfer_mode) {
+ switch (get_transfer_mode()) {
case Multiplayer::TRANSFER_MODE_UNRELIABLE: {
packet_flags = ENET_PACKET_FLAG_UNSEQUENCED;
channel = SYSCH_UNRELIABLE;
@@ -545,19 +530,15 @@ int ENetMultiplayerPeer::get_unique_id() const {
return unique_id;
}
-void ENetMultiplayerPeer::set_refuse_new_connections(bool p_enable) {
- refuse_connections = p_enable;
+void ENetMultiplayerPeer::set_refuse_new_connections(bool p_enabled) {
#ifdef GODOT_ENET
if (_is_active()) {
for (KeyValue<int, Ref<ENetConnection>> &E : hosts) {
- E.value->refuse_new_connections(p_enable);
+ E.value->refuse_new_connections(p_enabled);
}
}
#endif
-}
-
-bool ENetMultiplayerPeer::is_refusing_new_connections() const {
- return refuse_connections;
+ MultiplayerPeer::set_refuse_new_connections(p_enabled);
}
void ENetMultiplayerPeer::set_server_relay_enabled(bool p_enabled) {
diff --git a/modules/enet/enet_multiplayer_peer.h b/modules/enet/enet_multiplayer_peer.h
index b5316b8292..7a60e2359c 100644
--- a/modules/enet/enet_multiplayer_peer.h
+++ b/modules/enet/enet_multiplayer_peer.h
@@ -65,10 +65,7 @@ private:
uint32_t unique_id = 0;
int target_peer = 0;
- int transfer_channel = 0;
- Multiplayer::TransferMode transfer_mode = Multiplayer::TRANSFER_MODE_RELIABLE;
- bool refuse_connections = false;
bool server_relay = true;
ConnectionStatus connection_status = CONNECTION_DISCONNECTED;
@@ -101,40 +98,31 @@ protected:
static void _bind_methods();
public:
- virtual void set_transfer_channel(int p_channel) override;
- virtual int get_transfer_channel() const override;
-
- virtual void set_transfer_mode(Multiplayer::TransferMode p_mode) override;
- virtual Multiplayer::TransferMode get_transfer_mode() const override;
virtual void set_target_peer(int p_peer) override;
-
virtual int get_packet_peer() const override;
- Error create_server(int p_port, int p_max_clients = 32, int p_max_channels = 0, int p_in_bandwidth = 0, int p_out_bandwidth = 0);
- Error create_client(const String &p_address, int p_port, int p_channel_count = 0, int p_in_bandwidth = 0, int p_out_bandwidth = 0, int p_local_port = 0);
- Error create_mesh(int p_id);
- Error add_mesh_peer(int p_id, Ref<ENetConnection> p_host);
-
- void close_connection(uint32_t wait_usec = 100);
-
- void disconnect_peer(int p_peer, bool now = false);
-
virtual void poll() override;
-
virtual bool is_server() const override;
+ // Overriden so we can instrument the DTLSServer when needed.
+ virtual void set_refuse_new_connections(bool p_enabled) override;
- virtual int get_available_packet_count() const override;
- virtual Error get_packet(const uint8_t **r_buffer, int &r_buffer_size) override; ///< buffer is GONE after next get_packet
- virtual Error put_packet(const uint8_t *p_buffer, int p_buffer_size) override;
+ virtual ConnectionStatus get_connection_status() const override;
+
+ virtual int get_unique_id() const override;
virtual int get_max_packet_size() const override;
+ virtual int get_available_packet_count() const override;
+ virtual Error get_packet(const uint8_t **r_buffer, int &r_buffer_size) override;
+ virtual Error put_packet(const uint8_t *p_buffer, int p_buffer_size) override;
- virtual ConnectionStatus get_connection_status() const override;
+ Error create_server(int p_port, int p_max_clients = 32, int p_max_channels = 0, int p_in_bandwidth = 0, int p_out_bandwidth = 0);
+ Error create_client(const String &p_address, int p_port, int p_channel_count = 0, int p_in_bandwidth = 0, int p_out_bandwidth = 0, int p_local_port = 0);
+ Error create_mesh(int p_id);
+ Error add_mesh_peer(int p_id, Ref<ENetConnection> p_host);
- virtual void set_refuse_new_connections(bool p_enable) override;
- virtual bool is_refusing_new_connections() const override;
+ void close_connection(uint32_t wait_usec = 100);
- virtual int get_unique_id() const override;
+ void disconnect_peer(int p_peer, bool now = false);
void set_bind_ip(const IPAddress &p_ip);
void set_server_relay_enabled(bool p_enabled);
diff --git a/modules/etcpak/image_compress_etcpak.cpp b/modules/etcpak/image_compress_etcpak.cpp
index abc3c26188..aff7538fb6 100644
--- a/modules/etcpak/image_compress_etcpak.cpp
+++ b/modules/etcpak/image_compress_etcpak.cpp
@@ -165,9 +165,9 @@ void _compress_etcpak(EtcpakType p_compresstype, Image *r_img, float p_lossy_qua
if (p_compresstype == EtcpakType::ETCPAK_TYPE_ETC1) {
CompressEtc1RgbDither(src_mip_read, dest_mip_write, blocks, mip_w);
} else if (p_compresstype == EtcpakType::ETCPAK_TYPE_ETC2 || p_compresstype == EtcpakType::ETCPAK_TYPE_ETC2_RA_AS_RG) {
- CompressEtc2Rgb(src_mip_read, dest_mip_write, blocks, mip_w);
+ CompressEtc2Rgb(src_mip_read, dest_mip_write, blocks, mip_w, true);
} else if (p_compresstype == EtcpakType::ETCPAK_TYPE_ETC2_ALPHA) {
- CompressEtc2Rgba(src_mip_read, dest_mip_write, blocks, mip_w);
+ CompressEtc2Rgba(src_mip_read, dest_mip_write, blocks, mip_w, true);
} else if (p_compresstype == EtcpakType::ETCPAK_TYPE_DXT1) {
CompressDxt1Dither(src_mip_read, dest_mip_write, blocks, mip_w);
} else if (p_compresstype == EtcpakType::ETCPAK_TYPE_DXT5 || p_compresstype == EtcpakType::ETCPAK_TYPE_DXT5_RA_AS_RG) {
diff --git a/modules/fbx/doc_classes/EditorSceneImporterFBX.xml b/modules/fbx/doc_classes/EditorSceneImporterFBX.xml
index da1a68c27c..6f83871772 100644
--- a/modules/fbx/doc_classes/EditorSceneImporterFBX.xml
+++ b/modules/fbx/doc_classes/EditorSceneImporterFBX.xml
@@ -29,8 +29,4 @@
</description>
<tutorials>
</tutorials>
- <methods>
- </methods>
- <constants>
- </constants>
</class>
diff --git a/modules/gdnative/SCsub b/modules/gdnative/SCsub
index 21ee39f3ed..94bda04d12 100644
--- a/modules/gdnative/SCsub
+++ b/modules/gdnative/SCsub
@@ -16,7 +16,6 @@ env_gdnative.Prepend(CPPPATH=["#modules/gdnative/include/"])
Export("env_gdnative")
-SConscript("net/SCsub")
SConscript("pluginscript/SCsub")
SConscript("videodecoder/SCsub")
SConscript("text/SCsub")
diff --git a/modules/gdnative/config.py b/modules/gdnative/config.py
index fa985501b5..026a84a70f 100644
--- a/modules/gdnative/config.py
+++ b/modules/gdnative/config.py
@@ -10,14 +10,9 @@ def get_doc_classes():
return [
"GDNative",
"GDNativeLibrary",
- "MultiplayerPeerGDNative",
"NativeScript",
- "PacketPeerGDNative",
"PluginScript",
- "StreamPeerGDNative",
"VideoStreamGDNative",
- "WebRTCPeerConnectionGDNative",
- "WebRTCDataChannelGDNative",
]
diff --git a/modules/gdnative/doc_classes/GDNative.xml b/modules/gdnative/doc_classes/GDNative.xml
index e4c5d34a2c..4bc149b119 100644
--- a/modules/gdnative/doc_classes/GDNative.xml
+++ b/modules/gdnative/doc_classes/GDNative.xml
@@ -30,6 +30,4 @@
<member name="library" type="GDNativeLibrary" setter="set_library" getter="get_library">
</member>
</members>
- <constants>
- </constants>
</class>
diff --git a/modules/gdnative/doc_classes/GDNativeLibrary.xml b/modules/gdnative/doc_classes/GDNativeLibrary.xml
index 94eae3cd06..3654870b09 100644
--- a/modules/gdnative/doc_classes/GDNativeLibrary.xml
+++ b/modules/gdnative/doc_classes/GDNativeLibrary.xml
@@ -45,6 +45,4 @@
On platforms that require statically linking libraries (currently only iOS), each library must have a different [code]symbol_prefix[/code].
</member>
</members>
- <constants>
- </constants>
</class>
diff --git a/modules/gdnative/doc_classes/MultiplayerPeerGDNative.xml b/modules/gdnative/doc_classes/MultiplayerPeerGDNative.xml
deleted file mode 100644
index b88f5e7e1e..0000000000
--- a/modules/gdnative/doc_classes/MultiplayerPeerGDNative.xml
+++ /dev/null
@@ -1,13 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" ?>
-<class name="MultiplayerPeerGDNative" inherits="MultiplayerPeer" version="4.0">
- <brief_description>
- </brief_description>
- <description>
- </description>
- <tutorials>
- </tutorials>
- <methods>
- </methods>
- <constants>
- </constants>
-</class>
diff --git a/modules/gdnative/doc_classes/NativeScript.xml b/modules/gdnative/doc_classes/NativeScript.xml
index 397d12a3a9..9d34e89f02 100644
--- a/modules/gdnative/doc_classes/NativeScript.xml
+++ b/modules/gdnative/doc_classes/NativeScript.xml
@@ -52,6 +52,4 @@
<member name="script_class_name" type="String" setter="set_script_class_name" getter="get_script_class_name" default="&quot;&quot;">
</member>
</members>
- <constants>
- </constants>
</class>
diff --git a/modules/gdnative/doc_classes/PacketPeerGDNative.xml b/modules/gdnative/doc_classes/PacketPeerGDNative.xml
deleted file mode 100644
index ea9869cc58..0000000000
--- a/modules/gdnative/doc_classes/PacketPeerGDNative.xml
+++ /dev/null
@@ -1,13 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" ?>
-<class name="PacketPeerGDNative" inherits="PacketPeer" version="4.0">
- <brief_description>
- </brief_description>
- <description>
- </description>
- <tutorials>
- </tutorials>
- <methods>
- </methods>
- <constants>
- </constants>
-</class>
diff --git a/modules/gdnative/doc_classes/PluginScript.xml b/modules/gdnative/doc_classes/PluginScript.xml
index 8e28187482..ec80ade394 100644
--- a/modules/gdnative/doc_classes/PluginScript.xml
+++ b/modules/gdnative/doc_classes/PluginScript.xml
@@ -14,6 +14,4 @@
</description>
</method>
</methods>
- <constants>
- </constants>
</class>
diff --git a/modules/gdnative/doc_classes/StreamPeerGDNative.xml b/modules/gdnative/doc_classes/StreamPeerGDNative.xml
deleted file mode 100644
index de76277fff..0000000000
--- a/modules/gdnative/doc_classes/StreamPeerGDNative.xml
+++ /dev/null
@@ -1,13 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" ?>
-<class name="StreamPeerGDNative" inherits="StreamPeer" version="4.0">
- <brief_description>
- </brief_description>
- <description>
- </description>
- <tutorials>
- </tutorials>
- <methods>
- </methods>
- <constants>
- </constants>
-</class>
diff --git a/modules/gdnative/doc_classes/VideoStreamGDNative.xml b/modules/gdnative/doc_classes/VideoStreamGDNative.xml
index 8b1a3210df..dc64e8fc18 100644
--- a/modules/gdnative/doc_classes/VideoStreamGDNative.xml
+++ b/modules/gdnative/doc_classes/VideoStreamGDNative.xml
@@ -24,6 +24,4 @@
</description>
</method>
</methods>
- <constants>
- </constants>
</class>
diff --git a/modules/gdnative/doc_classes/WebRTCDataChannelGDNative.xml b/modules/gdnative/doc_classes/WebRTCDataChannelGDNative.xml
deleted file mode 100644
index f32a4f0a23..0000000000
--- a/modules/gdnative/doc_classes/WebRTCDataChannelGDNative.xml
+++ /dev/null
@@ -1,13 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" ?>
-<class name="WebRTCDataChannelGDNative" inherits="WebRTCDataChannel" version="4.0">
- <brief_description>
- </brief_description>
- <description>
- </description>
- <tutorials>
- </tutorials>
- <methods>
- </methods>
- <constants>
- </constants>
-</class>
diff --git a/modules/gdnative/doc_classes/WebRTCPeerConnectionGDNative.xml b/modules/gdnative/doc_classes/WebRTCPeerConnectionGDNative.xml
deleted file mode 100644
index 82f8633bb6..0000000000
--- a/modules/gdnative/doc_classes/WebRTCPeerConnectionGDNative.xml
+++ /dev/null
@@ -1,13 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" ?>
-<class name="WebRTCPeerConnectionGDNative" inherits="WebRTCPeerConnection" version="4.0">
- <brief_description>
- </brief_description>
- <description>
- </description>
- <tutorials>
- </tutorials>
- <methods>
- </methods>
- <constants>
- </constants>
-</class>
diff --git a/modules/gdnative/gdnative_api.json b/modules/gdnative/gdnative_api.json
index 66d2dc267d..627883886c 100644
--- a/modules/gdnative/gdnative_api.json
+++ b/modules/gdnative/gdnative_api.json
@@ -5105,97 +5105,6 @@
]
},
{
- "name": "net",
- "type": "NET",
- "version": {
- "major": 4,
- "minor": 0
- },
- "next": null,
- "api": [
- {
- "name": "godot_net_bind_stream_peer",
- "return_type": "void",
- "arguments": [
- [
- "godot_object *",
- "p_obj"
- ],
- [
- "const godot_net_stream_peer *",
- "p_interface"
- ]
- ]
- },
- {
- "name": "godot_net_bind_packet_peer",
- "return_type": "void",
- "arguments": [
- [
- "godot_object *",
- "p_obj"
- ],
- [
- "const godot_net_packet_peer *",
- "p_interface"
- ]
- ]
- },
- {
- "name": "godot_net_bind_multiplayer_peer",
- "return_type": "void",
- "arguments": [
- [
- "godot_object *",
- "p_obj"
- ],
- [
- "const godot_net_multiplayer_peer *",
- "p_interface"
- ]
- ]
- },
- {
- "name": "godot_net_set_webrtc_library",
- "return_type": "godot_error",
- "arguments": [
- [
- "const godot_net_webrtc_library *",
- "p_library"
- ]
- ]
- },
- {
- "name": "godot_net_bind_webrtc_peer_connection",
- "return_type": "void",
- "arguments": [
- [
- "godot_object *",
- "p_obj"
- ],
- [
- "const godot_net_webrtc_peer_connection *",
- "p_interface"
- ]
- ]
- },
- {
- "name": "godot_net_bind_webrtc_data_channel",
- "return_type": "void",
- "arguments": [
- [
- "godot_object *",
- "p_obj"
- ],
- [
- "const godot_net_webrtc_data_channel *",
- "p_interface"
- ]
- ]
- }
- ]
- },
- {
"name": "text",
"type": "TEXT",
"version": {
diff --git a/modules/gdnative/gdnative_builders.py b/modules/gdnative/gdnative_builders.py
index 181fd71b82..4986b173cf 100644
--- a/modules/gdnative/gdnative_builders.py
+++ b/modules/gdnative/gdnative_builders.py
@@ -20,7 +20,6 @@ def _build_gdnative_api_struct_header(api):
"#include <gdnative/gdnative.h>",
"#include <android/godot_android.h>",
"#include <nativescript/godot_nativescript.h>",
- "#include <net/godot_net.h>",
"#include <pluginscript/godot_pluginscript.h>",
"#include <videodecoder/godot_videodecoder.h>",
"#include <text/godot_text.h>",
diff --git a/modules/gdnative/include/net/godot_net.h b/modules/gdnative/include/net/godot_net.h
deleted file mode 100644
index 3fb7b9e1cc..0000000000
--- a/modules/gdnative/include/net/godot_net.h
+++ /dev/null
@@ -1,122 +0,0 @@
-/*************************************************************************/
-/* godot_net.h */
-/*************************************************************************/
-/* This file is part of: */
-/* GODOT ENGINE */
-/* https://godotengine.org */
-/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
-/* */
-/* Permission is hereby granted, free of charge, to any person obtaining */
-/* a copy of this software and associated documentation files (the */
-/* "Software"), to deal in the Software without restriction, including */
-/* without limitation the rights to use, copy, modify, merge, publish, */
-/* distribute, sublicense, and/or sell copies of the Software, and to */
-/* permit persons to whom the Software is furnished to do so, subject to */
-/* the following conditions: */
-/* */
-/* The above copyright notice and this permission notice shall be */
-/* included in all copies or substantial portions of the Software. */
-/* */
-/* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, */
-/* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF */
-/* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.*/
-/* IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY */
-/* CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, */
-/* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE */
-/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
-/*************************************************************************/
-
-#ifndef GODOT_NATIVENET_H
-#define GODOT_NATIVENET_H
-
-#include <gdnative/gdnative.h>
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-// For future versions of the API we should only add new functions at the end of the structure and use the
-// version info to detect whether a call is available
-
-// Use these to populate version in your plugin
-#define GODOT_NET_API_MAJOR 3
-#define GODOT_NET_API_MINOR 1
-
-typedef struct {
- godot_gdnative_api_version version; /* version of our API */
- godot_object *data; /* User reference */
-
- /* This is StreamPeer */
- godot_error (*get_data)(void *user, uint8_t *p_buffer, int p_bytes);
- godot_error (*get_partial_data)(void *user, uint8_t *p_buffer, int p_bytes, int *r_received);
- godot_error (*put_data)(void *user, const uint8_t *p_data, int p_bytes);
- godot_error (*put_partial_data)(void *user, const uint8_t *p_data, int p_bytes, int *r_sent);
-
- int (*get_available_bytes)(const void *user);
-
- void *next; /* For extension? */
-} godot_net_stream_peer;
-
-/* Binds a StreamPeerGDNative to the provided interface */
-void godot_net_bind_stream_peer(godot_object *p_obj, const godot_net_stream_peer *p_interface);
-
-typedef struct {
- godot_gdnative_api_version version; /* version of our API */
-
- godot_object *data; /* User reference */
-
- /* This is PacketPeer */
- godot_error (*get_packet)(void *, const uint8_t **, int *);
- godot_error (*put_packet)(void *, const uint8_t *, int);
- godot_int (*get_available_packet_count)(const void *);
- godot_int (*get_max_packet_size)(const void *);
-
- void *next; /* For extension? */
-} godot_net_packet_peer;
-
-/* Binds a PacketPeerGDNative to the provided interface */
-void GDAPI godot_net_bind_packet_peer(godot_object *p_obj, const godot_net_packet_peer *);
-
-typedef struct {
- godot_gdnative_api_version version; /* version of our API */
-
- godot_object *data; /* User reference */
-
- /* This is PacketPeer */
- godot_error (*get_packet)(void *, const uint8_t **, int *);
- godot_error (*put_packet)(void *, const uint8_t *, int);
- godot_int (*get_available_packet_count)(const void *);
- godot_int (*get_max_packet_size)(const void *);
-
- /* This is MultiplayerPeer */
- void (*set_transfer_channel)(void *, godot_int);
- godot_int (*get_transfer_channel)(void *);
- void (*set_transfer_mode)(void *, godot_int);
- godot_int (*get_transfer_mode)(const void *);
- // 0 = broadcast, 1 = server, <0 = all but abs(value)
- void (*set_target_peer)(void *, godot_int);
- godot_int (*get_packet_peer)(const void *);
- godot_bool (*is_server)(const void *);
- void (*poll)(void *);
- // Must be > 0, 1 is for server
- int32_t (*get_unique_id)(const void *);
- void (*set_refuse_new_connections)(void *, godot_bool);
- godot_bool (*is_refusing_new_connections)(const void *);
- godot_int (*get_connection_status)(const void *);
-
- void *next; /* For extension? Or maybe not... */
-} godot_net_multiplayer_peer;
-
-/* Binds a MultiplayerPeerGDNative to the provided interface */
-void GDAPI godot_net_bind_multiplayer_peer(godot_object *p_obj, const godot_net_multiplayer_peer *);
-
-#ifdef __cplusplus
-}
-#endif
-
-// WebRTC Bindings
-#include "net/godot_webrtc.h"
-
-#endif /* GODOT_NATIVENET_H */
diff --git a/modules/gdnative/include/net/godot_webrtc.h b/modules/gdnative/include/net/godot_webrtc.h
deleted file mode 100644
index 52006e56ec..0000000000
--- a/modules/gdnative/include/net/godot_webrtc.h
+++ /dev/null
@@ -1,123 +0,0 @@
-/*************************************************************************/
-/* godot_webrtc.h */
-/*************************************************************************/
-/* This file is part of: */
-/* GODOT ENGINE */
-/* https://godotengine.org */
-/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
-/* */
-/* Permission is hereby granted, free of charge, to any person obtaining */
-/* a copy of this software and associated documentation files (the */
-/* "Software"), to deal in the Software without restriction, including */
-/* without limitation the rights to use, copy, modify, merge, publish, */
-/* distribute, sublicense, and/or sell copies of the Software, and to */
-/* permit persons to whom the Software is furnished to do so, subject to */
-/* the following conditions: */
-/* */
-/* The above copyright notice and this permission notice shall be */
-/* included in all copies or substantial portions of the Software. */
-/* */
-/* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, */
-/* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF */
-/* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.*/
-/* IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY */
-/* CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, */
-/* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE */
-/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
-/*************************************************************************/
-
-#ifndef GODOT_NATIVEWEBRTC_H
-#define GODOT_NATIVEWEBRTC_H
-
-#include <gdnative/gdnative.h>
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-#define GODOT_NET_WEBRTC_API_MAJOR 4
-#define GODOT_NET_WEBRTC_API_MINOR 0
-
-/* Library Interface (used to set default GDNative WebRTC implementation */
-typedef struct {
- godot_gdnative_api_version version; /* version of our API */
-
- /* Called when the library is unset as default interface via godot_net_set_webrtc_library */
- void (*unregistered)();
-
- /* Used by WebRTCPeerConnection create when GDNative is the default implementation. */
- /* Takes a pointer to WebRTCPeerConnectionGDNative, should bind and return OK, failure if binding was unsuccessful. */
- godot_error (*create_peer_connection)(godot_object *);
-
- void *next; /* For extension */
-} godot_net_webrtc_library;
-
-/* WebRTCPeerConnection interface */
-typedef struct {
- godot_gdnative_api_version version; /* version of our API */
-
- godot_object *data; /* User reference */
-
- /* This is WebRTCPeerConnection */
- godot_int (*get_connection_state)(const void *);
-
- godot_error (*initialize)(void *, const godot_dictionary *);
- godot_object *(*create_data_channel)(void *, const char *p_channel_name, const godot_dictionary *);
- godot_error (*create_offer)(void *);
- godot_error (*create_answer)(void *); /* unused for now, should be done automatically on set_local_description */
- godot_error (*set_remote_description)(void *, const char *, const char *);
- godot_error (*set_local_description)(void *, const char *, const char *);
- godot_error (*add_ice_candidate)(void *, const char *, int, const char *);
- godot_error (*poll)(void *);
- void (*close)(void *);
-
- void *next; /* For extension? */
-} godot_net_webrtc_peer_connection;
-
-/* WebRTCDataChannel interface */
-typedef struct {
- godot_gdnative_api_version version; /* version of our API */
-
- godot_object *data; /* User reference */
-
- /* This is PacketPeer */
- godot_error (*get_packet)(void *, const uint8_t **, int *);
- godot_error (*put_packet)(void *, const uint8_t *, int);
- godot_int (*get_available_packet_count)(const void *);
- godot_int (*get_max_packet_size)(const void *);
-
- /* This is WebRTCDataChannel */
- void (*set_write_mode)(void *, godot_int);
- godot_int (*get_write_mode)(const void *);
- bool (*was_string_packet)(const void *);
-
- godot_int (*get_ready_state)(const void *);
- const char *(*get_label)(const void *);
- bool (*is_ordered)(const void *);
- int (*get_id)(const void *);
- int (*get_max_packet_life_time)(const void *);
- int (*get_max_retransmits)(const void *);
- const char *(*get_protocol)(const void *);
- bool (*is_negotiated)(const void *);
- int (*get_buffered_amount)(const void *);
-
- godot_error (*poll)(void *);
- void (*close)(void *);
-
- void *next; /* For extension? */
-} godot_net_webrtc_data_channel;
-
-/* Set the default GDNative library */
-godot_error GDAPI godot_net_set_webrtc_library(const godot_net_webrtc_library *);
-/* Binds a WebRTCPeerConnectionGDNative to the provided interface */
-void GDAPI godot_net_bind_webrtc_peer_connection(godot_object *p_obj, const godot_net_webrtc_peer_connection *);
-/* Binds a WebRTCDataChannelGDNative to the provided interface */
-void GDAPI godot_net_bind_webrtc_data_channel(godot_object *p_obj, const godot_net_webrtc_data_channel *);
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif
diff --git a/modules/gdnative/net/SCsub b/modules/gdnative/net/SCsub
deleted file mode 100644
index b76500c003..0000000000
--- a/modules/gdnative/net/SCsub
+++ /dev/null
@@ -1,12 +0,0 @@
-#!/usr/bin/env python
-
-Import("env")
-Import("env_gdnative")
-
-env_net = env_gdnative.Clone()
-
-has_webrtc = env_net["module_webrtc_enabled"]
-if has_webrtc:
- env_net.Append(CPPDEFINES=["WEBRTC_GDNATIVE_ENABLED"])
-
-env_net.add_source_files(env.modules_sources, "*.cpp")
diff --git a/modules/gdnative/net/multiplayer_peer_gdnative.cpp b/modules/gdnative/net/multiplayer_peer_gdnative.cpp
deleted file mode 100644
index 575d5f5060..0000000000
--- a/modules/gdnative/net/multiplayer_peer_gdnative.cpp
+++ /dev/null
@@ -1,136 +0,0 @@
-/*************************************************************************/
-/* multiplayer_peer_gdnative.cpp */
-/*************************************************************************/
-/* This file is part of: */
-/* GODOT ENGINE */
-/* https://godotengine.org */
-/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
-/* */
-/* Permission is hereby granted, free of charge, to any person obtaining */
-/* a copy of this software and associated documentation files (the */
-/* "Software"), to deal in the Software without restriction, including */
-/* without limitation the rights to use, copy, modify, merge, publish, */
-/* distribute, sublicense, and/or sell copies of the Software, and to */
-/* permit persons to whom the Software is furnished to do so, subject to */
-/* the following conditions: */
-/* */
-/* The above copyright notice and this permission notice shall be */
-/* included in all copies or substantial portions of the Software. */
-/* */
-/* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, */
-/* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF */
-/* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.*/
-/* IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY */
-/* CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, */
-/* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE */
-/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
-/*************************************************************************/
-
-#include "multiplayer_peer_gdnative.h"
-
-MultiplayerPeerGDNative::MultiplayerPeerGDNative() {
- interface = nullptr;
-}
-
-MultiplayerPeerGDNative::~MultiplayerPeerGDNative() {
-}
-
-void MultiplayerPeerGDNative::set_native_multiplayer_peer(const godot_net_multiplayer_peer *p_interface) {
- interface = p_interface;
-}
-
-Error MultiplayerPeerGDNative::get_packet(const uint8_t **r_buffer, int &r_buffer_size) {
- ERR_FAIL_COND_V(interface == nullptr, ERR_UNCONFIGURED);
- return (Error)interface->get_packet(interface->data, r_buffer, &r_buffer_size);
-}
-
-Error MultiplayerPeerGDNative::put_packet(const uint8_t *p_buffer, int p_buffer_size) {
- ERR_FAIL_COND_V(interface == nullptr, ERR_UNCONFIGURED);
- return (Error)interface->put_packet(interface->data, p_buffer, p_buffer_size);
-}
-
-int MultiplayerPeerGDNative::get_max_packet_size() const {
- ERR_FAIL_COND_V(interface == nullptr, 0);
- return interface->get_max_packet_size(interface->data);
-}
-
-int MultiplayerPeerGDNative::get_available_packet_count() const {
- ERR_FAIL_COND_V(interface == nullptr, 0);
- return interface->get_available_packet_count(interface->data);
-}
-
-/* MultiplayerPeer */
-void MultiplayerPeerGDNative::set_transfer_channel(int p_channel) {
- ERR_FAIL_COND(interface == nullptr);
- return interface->set_transfer_channel(interface->data, p_channel);
-}
-
-int MultiplayerPeerGDNative::get_transfer_channel() const {
- ERR_FAIL_COND_V(interface == nullptr, 0);
- return interface->get_transfer_channel(interface->data);
-}
-
-void MultiplayerPeerGDNative::set_transfer_mode(Multiplayer::TransferMode p_mode) {
- ERR_FAIL_COND(interface == nullptr);
- interface->set_transfer_mode(interface->data, (godot_int)p_mode);
-}
-
-Multiplayer::TransferMode MultiplayerPeerGDNative::get_transfer_mode() const {
- ERR_FAIL_COND_V(interface == nullptr, Multiplayer::TRANSFER_MODE_UNRELIABLE);
- return (Multiplayer::TransferMode)interface->get_transfer_mode(interface->data);
-}
-
-void MultiplayerPeerGDNative::set_target_peer(int p_peer_id) {
- ERR_FAIL_COND(interface == nullptr);
- interface->set_target_peer(interface->data, p_peer_id);
-}
-
-int MultiplayerPeerGDNative::get_packet_peer() const {
- ERR_FAIL_COND_V(interface == nullptr, 0);
- return interface->get_packet_peer(interface->data);
-}
-
-bool MultiplayerPeerGDNative::is_server() const {
- ERR_FAIL_COND_V(interface == nullptr, false);
- return interface->is_server(interface->data);
-}
-
-void MultiplayerPeerGDNative::poll() {
- ERR_FAIL_COND(interface == nullptr);
- interface->poll(interface->data);
-}
-
-int MultiplayerPeerGDNative::get_unique_id() const {
- ERR_FAIL_COND_V(interface == nullptr, 0);
- return interface->get_unique_id(interface->data);
-}
-
-void MultiplayerPeerGDNative::set_refuse_new_connections(bool p_enable) {
- ERR_FAIL_COND(interface == nullptr);
- interface->set_refuse_new_connections(interface->data, p_enable);
-}
-
-bool MultiplayerPeerGDNative::is_refusing_new_connections() const {
- ERR_FAIL_COND_V(interface == nullptr, true);
- return interface->is_refusing_new_connections(interface->data);
-}
-
-MultiplayerPeer::ConnectionStatus MultiplayerPeerGDNative::get_connection_status() const {
- ERR_FAIL_COND_V(interface == nullptr, CONNECTION_DISCONNECTED);
- return (ConnectionStatus)interface->get_connection_status(interface->data);
-}
-
-void MultiplayerPeerGDNative::_bind_methods() {
- ADD_PROPERTY_DEFAULT("transfer_channel", 0);
- ADD_PROPERTY_DEFAULT("transfer_mode", Multiplayer::TRANSFER_MODE_UNRELIABLE);
- ADD_PROPERTY_DEFAULT("refuse_new_connections", true);
-}
-
-extern "C" {
-
-void GDAPI godot_net_bind_multiplayer_peer(godot_object *p_obj, const godot_net_multiplayer_peer *p_impl) {
- ((MultiplayerPeerGDNative *)p_obj)->set_native_multiplayer_peer(p_impl);
-}
-}
diff --git a/modules/gdnative/net/multiplayer_peer_gdnative.h b/modules/gdnative/net/multiplayer_peer_gdnative.h
deleted file mode 100644
index 33e424d284..0000000000
--- a/modules/gdnative/net/multiplayer_peer_gdnative.h
+++ /dev/null
@@ -1,79 +0,0 @@
-/*************************************************************************/
-/* multiplayer_peer_gdnative.h */
-/*************************************************************************/
-/* This file is part of: */
-/* GODOT ENGINE */
-/* https://godotengine.org */
-/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
-/* */
-/* Permission is hereby granted, free of charge, to any person obtaining */
-/* a copy of this software and associated documentation files (the */
-/* "Software"), to deal in the Software without restriction, including */
-/* without limitation the rights to use, copy, modify, merge, publish, */
-/* distribute, sublicense, and/or sell copies of the Software, and to */
-/* permit persons to whom the Software is furnished to do so, subject to */
-/* the following conditions: */
-/* */
-/* The above copyright notice and this permission notice shall be */
-/* included in all copies or substantial portions of the Software. */
-/* */
-/* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, */
-/* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF */
-/* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.*/
-/* IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY */
-/* CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, */
-/* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE */
-/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
-/*************************************************************************/
-
-#ifndef MULTIPLAYER_PEER_GDNATIVE_H
-#define MULTIPLAYER_PEER_GDNATIVE_H
-
-#include "core/multiplayer/multiplayer_peer.h"
-#include "modules/gdnative/gdnative.h"
-#include "modules/gdnative/include/net/godot_net.h"
-
-class MultiplayerPeerGDNative : public MultiplayerPeer {
- GDCLASS(MultiplayerPeerGDNative, MultiplayerPeer);
-
-protected:
- static void _bind_methods();
- const godot_net_multiplayer_peer *interface;
-
-public:
- MultiplayerPeerGDNative();
- ~MultiplayerPeerGDNative();
-
- /* Sets the interface implementation from GDNative */
- void set_native_multiplayer_peer(const godot_net_multiplayer_peer *p_impl);
-
- /* Specific to PacketPeer */
- virtual Error get_packet(const uint8_t **r_buffer, int &r_buffer_size) override;
- virtual Error put_packet(const uint8_t *p_buffer, int p_buffer_size) override;
- virtual int get_max_packet_size() const override;
- virtual int get_available_packet_count() const override;
-
- /* Specific to MultiplayerPeer */
- virtual void set_transfer_channel(int p_channel) override;
- virtual int get_transfer_channel() const override;
- virtual void set_transfer_mode(Multiplayer::TransferMode p_mode) override;
- virtual Multiplayer::TransferMode get_transfer_mode() const override;
- virtual void set_target_peer(int p_peer_id) override;
-
- virtual int get_packet_peer() const override;
-
- virtual bool is_server() const override;
-
- virtual void poll() override;
-
- virtual int get_unique_id() const override;
-
- virtual void set_refuse_new_connections(bool p_enable) override;
- virtual bool is_refusing_new_connections() const override;
-
- virtual ConnectionStatus get_connection_status() const override;
-};
-
-#endif // MULTIPLAYER_PEER_GDNATIVE_H
diff --git a/modules/gdnative/net/packet_peer_gdnative.cpp b/modules/gdnative/net/packet_peer_gdnative.cpp
deleted file mode 100644
index 3bcdfed8ff..0000000000
--- a/modules/gdnative/net/packet_peer_gdnative.cpp
+++ /dev/null
@@ -1,72 +0,0 @@
-/*************************************************************************/
-/* packet_peer_gdnative.cpp */
-/*************************************************************************/
-/* This file is part of: */
-/* GODOT ENGINE */
-/* https://godotengine.org */
-/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
-/* */
-/* Permission is hereby granted, free of charge, to any person obtaining */
-/* a copy of this software and associated documentation files (the */
-/* "Software"), to deal in the Software without restriction, including */
-/* without limitation the rights to use, copy, modify, merge, publish, */
-/* distribute, sublicense, and/or sell copies of the Software, and to */
-/* permit persons to whom the Software is furnished to do so, subject to */
-/* the following conditions: */
-/* */
-/* The above copyright notice and this permission notice shall be */
-/* included in all copies or substantial portions of the Software. */
-/* */
-/* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, */
-/* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF */
-/* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.*/
-/* IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY */
-/* CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, */
-/* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE */
-/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
-/*************************************************************************/
-
-#include "packet_peer_gdnative.h"
-
-PacketPeerGDNative::PacketPeerGDNative() {
- interface = nullptr;
-}
-
-PacketPeerGDNative::~PacketPeerGDNative() {
-}
-
-void PacketPeerGDNative::set_native_packet_peer(const godot_net_packet_peer *p_impl) {
- interface = p_impl;
-}
-
-void PacketPeerGDNative::_bind_methods() {
-}
-
-Error PacketPeerGDNative::get_packet(const uint8_t **r_buffer, int &r_buffer_size) {
- ERR_FAIL_COND_V(interface == nullptr, ERR_UNCONFIGURED);
- return (Error)interface->get_packet(interface->data, r_buffer, &r_buffer_size);
-}
-
-Error PacketPeerGDNative::put_packet(const uint8_t *p_buffer, int p_buffer_size) {
- ERR_FAIL_COND_V(interface == nullptr, ERR_UNCONFIGURED);
- return (Error)interface->put_packet(interface->data, p_buffer, p_buffer_size);
-}
-
-int PacketPeerGDNative::get_max_packet_size() const {
- ERR_FAIL_COND_V(interface == nullptr, 0);
- return interface->get_max_packet_size(interface->data);
-}
-
-int PacketPeerGDNative::get_available_packet_count() const {
- ERR_FAIL_COND_V(interface == nullptr, 0);
- return interface->get_available_packet_count(interface->data);
-}
-
-extern "C" {
-
-void GDAPI godot_net_bind_packet_peer(godot_object *p_obj, const godot_net_packet_peer *p_impl) {
- ((PacketPeerGDNative *)p_obj)->set_native_packet_peer(p_impl);
-}
-}
diff --git a/modules/gdnative/net/packet_peer_gdnative.h b/modules/gdnative/net/packet_peer_gdnative.h
deleted file mode 100644
index 29013f9367..0000000000
--- a/modules/gdnative/net/packet_peer_gdnative.h
+++ /dev/null
@@ -1,59 +0,0 @@
-/*************************************************************************/
-/* packet_peer_gdnative.h */
-/*************************************************************************/
-/* This file is part of: */
-/* GODOT ENGINE */
-/* https://godotengine.org */
-/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
-/* */
-/* Permission is hereby granted, free of charge, to any person obtaining */
-/* a copy of this software and associated documentation files (the */
-/* "Software"), to deal in the Software without restriction, including */
-/* without limitation the rights to use, copy, modify, merge, publish, */
-/* distribute, sublicense, and/or sell copies of the Software, and to */
-/* permit persons to whom the Software is furnished to do so, subject to */
-/* the following conditions: */
-/* */
-/* The above copyright notice and this permission notice shall be */
-/* included in all copies or substantial portions of the Software. */
-/* */
-/* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, */
-/* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF */
-/* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.*/
-/* IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY */
-/* CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, */
-/* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE */
-/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
-/*************************************************************************/
-
-#ifndef PACKET_PEER_GDNATIVE_H
-#define PACKET_PEER_GDNATIVE_H
-
-#include "core/io/packet_peer.h"
-#include "modules/gdnative/gdnative.h"
-#include "modules/gdnative/include/net/godot_net.h"
-
-class PacketPeerGDNative : public PacketPeer {
- GDCLASS(PacketPeerGDNative, PacketPeer);
-
-protected:
- static void _bind_methods();
- const godot_net_packet_peer *interface;
-
-public:
- PacketPeerGDNative();
- ~PacketPeerGDNative();
-
- /* Sets the interface implementation from GDNative */
- void set_native_packet_peer(const godot_net_packet_peer *p_impl);
-
- /* Specific to PacketPeer */
- virtual Error get_packet(const uint8_t **r_buffer, int &r_buffer_size) override;
- virtual Error put_packet(const uint8_t *p_buffer, int p_buffer_size) override;
- virtual int get_max_packet_size() const override;
- virtual int get_available_packet_count() const override;
-};
-
-#endif // PACKET_PEER_GDNATIVE_H
diff --git a/modules/gdnative/net/register_types.cpp b/modules/gdnative/net/register_types.cpp
deleted file mode 100644
index 46c383e5ae..0000000000
--- a/modules/gdnative/net/register_types.cpp
+++ /dev/null
@@ -1,43 +0,0 @@
-/*************************************************************************/
-/* register_types.cpp */
-/*************************************************************************/
-/* This file is part of: */
-/* GODOT ENGINE */
-/* https://godotengine.org */
-/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
-/* */
-/* Permission is hereby granted, free of charge, to any person obtaining */
-/* a copy of this software and associated documentation files (the */
-/* "Software"), to deal in the Software without restriction, including */
-/* without limitation the rights to use, copy, modify, merge, publish, */
-/* distribute, sublicense, and/or sell copies of the Software, and to */
-/* permit persons to whom the Software is furnished to do so, subject to */
-/* the following conditions: */
-/* */
-/* The above copyright notice and this permission notice shall be */
-/* included in all copies or substantial portions of the Software. */
-/* */
-/* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, */
-/* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF */
-/* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.*/
-/* IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY */
-/* CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, */
-/* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE */
-/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
-/*************************************************************************/
-
-#include "register_types.h"
-#include "multiplayer_peer_gdnative.h"
-#include "packet_peer_gdnative.h"
-#include "stream_peer_gdnative.h"
-
-void register_net_types() {
- GDREGISTER_CLASS(MultiplayerPeerGDNative);
- GDREGISTER_CLASS(PacketPeerGDNative);
- GDREGISTER_CLASS(StreamPeerGDNative);
-}
-
-void unregister_net_types() {
-}
diff --git a/modules/gdnative/net/register_types.h b/modules/gdnative/net/register_types.h
deleted file mode 100644
index c99c6f6fbf..0000000000
--- a/modules/gdnative/net/register_types.h
+++ /dev/null
@@ -1,37 +0,0 @@
-/*************************************************************************/
-/* register_types.h */
-/*************************************************************************/
-/* This file is part of: */
-/* GODOT ENGINE */
-/* https://godotengine.org */
-/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
-/* */
-/* Permission is hereby granted, free of charge, to any person obtaining */
-/* a copy of this software and associated documentation files (the */
-/* "Software"), to deal in the Software without restriction, including */
-/* without limitation the rights to use, copy, modify, merge, publish, */
-/* distribute, sublicense, and/or sell copies of the Software, and to */
-/* permit persons to whom the Software is furnished to do so, subject to */
-/* the following conditions: */
-/* */
-/* The above copyright notice and this permission notice shall be */
-/* included in all copies or substantial portions of the Software. */
-/* */
-/* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, */
-/* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF */
-/* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.*/
-/* IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY */
-/* CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, */
-/* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE */
-/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
-/*************************************************************************/
-
-#ifndef NET_REGISTER_TYPES_H
-#define NET_REGISTER_TYPES_H
-
-void register_net_types();
-void unregister_net_types();
-
-#endif // NET_REGISTER_TYPES_H
diff --git a/modules/gdnative/net/stream_peer_gdnative.cpp b/modules/gdnative/net/stream_peer_gdnative.cpp
deleted file mode 100644
index 72ab72323d..0000000000
--- a/modules/gdnative/net/stream_peer_gdnative.cpp
+++ /dev/null
@@ -1,77 +0,0 @@
-/*************************************************************************/
-/* stream_peer_gdnative.cpp */
-/*************************************************************************/
-/* This file is part of: */
-/* GODOT ENGINE */
-/* https://godotengine.org */
-/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
-/* */
-/* Permission is hereby granted, free of charge, to any person obtaining */
-/* a copy of this software and associated documentation files (the */
-/* "Software"), to deal in the Software without restriction, including */
-/* without limitation the rights to use, copy, modify, merge, publish, */
-/* distribute, sublicense, and/or sell copies of the Software, and to */
-/* permit persons to whom the Software is furnished to do so, subject to */
-/* the following conditions: */
-/* */
-/* The above copyright notice and this permission notice shall be */
-/* included in all copies or substantial portions of the Software. */
-/* */
-/* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, */
-/* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF */
-/* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.*/
-/* IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY */
-/* CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, */
-/* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE */
-/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
-/*************************************************************************/
-
-#include "stream_peer_gdnative.h"
-
-StreamPeerGDNative::StreamPeerGDNative() {
- interface = nullptr;
-}
-
-StreamPeerGDNative::~StreamPeerGDNative() {
-}
-
-void StreamPeerGDNative::set_native_stream_peer(const godot_net_stream_peer *p_interface) {
- interface = p_interface;
-}
-
-void StreamPeerGDNative::_bind_methods() {
-}
-
-Error StreamPeerGDNative::put_data(const uint8_t *p_data, int p_bytes) {
- ERR_FAIL_COND_V(interface == nullptr, ERR_UNCONFIGURED);
- return (Error)(interface->put_data(interface->data, p_data, p_bytes));
-}
-
-Error StreamPeerGDNative::put_partial_data(const uint8_t *p_data, int p_bytes, int &r_sent) {
- ERR_FAIL_COND_V(interface == nullptr, ERR_UNCONFIGURED);
- return (Error)(interface->put_partial_data(interface->data, p_data, p_bytes, &r_sent));
-}
-
-Error StreamPeerGDNative::get_data(uint8_t *p_buffer, int p_bytes) {
- ERR_FAIL_COND_V(interface == nullptr, ERR_UNCONFIGURED);
- return (Error)(interface->get_data(interface->data, p_buffer, p_bytes));
-}
-
-Error StreamPeerGDNative::get_partial_data(uint8_t *p_buffer, int p_bytes, int &r_received) {
- ERR_FAIL_COND_V(interface == nullptr, ERR_UNCONFIGURED);
- return (Error)(interface->get_partial_data(interface->data, p_buffer, p_bytes, &r_received));
-}
-
-int StreamPeerGDNative::get_available_bytes() const {
- ERR_FAIL_COND_V(interface == nullptr, 0);
- return interface->get_available_bytes(interface->data);
-}
-
-extern "C" {
-
-void GDAPI godot_net_bind_stream_peer(godot_object *p_obj, const godot_net_stream_peer *p_interface) {
- ((StreamPeerGDNative *)p_obj)->set_native_stream_peer(p_interface);
-}
-}
diff --git a/modules/gdnative/net/stream_peer_gdnative.h b/modules/gdnative/net/stream_peer_gdnative.h
deleted file mode 100644
index dd5abceb83..0000000000
--- a/modules/gdnative/net/stream_peer_gdnative.h
+++ /dev/null
@@ -1,60 +0,0 @@
-/*************************************************************************/
-/* stream_peer_gdnative.h */
-/*************************************************************************/
-/* This file is part of: */
-/* GODOT ENGINE */
-/* https://godotengine.org */
-/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
-/* */
-/* Permission is hereby granted, free of charge, to any person obtaining */
-/* a copy of this software and associated documentation files (the */
-/* "Software"), to deal in the Software without restriction, including */
-/* without limitation the rights to use, copy, modify, merge, publish, */
-/* distribute, sublicense, and/or sell copies of the Software, and to */
-/* permit persons to whom the Software is furnished to do so, subject to */
-/* the following conditions: */
-/* */
-/* The above copyright notice and this permission notice shall be */
-/* included in all copies or substantial portions of the Software. */
-/* */
-/* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, */
-/* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF */
-/* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.*/
-/* IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY */
-/* CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, */
-/* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE */
-/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
-/*************************************************************************/
-
-#ifndef STREAM_PEER_GDNATIVE_H
-#define STREAM_PEER_GDNATIVE_H
-
-#include "core/io/stream_peer.h"
-#include "modules/gdnative/gdnative.h"
-#include "modules/gdnative/include/net/godot_net.h"
-
-class StreamPeerGDNative : public StreamPeer {
- GDCLASS(StreamPeerGDNative, StreamPeer);
-
-protected:
- static void _bind_methods();
- const godot_net_stream_peer *interface;
-
-public:
- StreamPeerGDNative();
- ~StreamPeerGDNative();
-
- /* Sets the interface implementation from GDNative */
- void set_native_stream_peer(const godot_net_stream_peer *p_interface);
-
- /* Specific to StreamPeer */
- Error put_data(const uint8_t *p_data, int p_bytes) override;
- Error put_partial_data(const uint8_t *p_data, int p_bytes, int &r_sent) override;
- Error get_data(uint8_t *p_buffer, int p_bytes) override;
- Error get_partial_data(uint8_t *p_buffer, int p_bytes, int &r_received) override;
- int get_available_bytes() const override;
-};
-
-#endif // STREAM_PEER_GDNATIVE_H
diff --git a/modules/gdnative/net/webrtc_gdnative.cpp b/modules/gdnative/net/webrtc_gdnative.cpp
deleted file mode 100644
index 76ccbad009..0000000000
--- a/modules/gdnative/net/webrtc_gdnative.cpp
+++ /dev/null
@@ -1,60 +0,0 @@
-/*************************************************************************/
-/* webrtc_gdnative.cpp */
-/*************************************************************************/
-/* This file is part of: */
-/* GODOT ENGINE */
-/* https://godotengine.org */
-/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
-/* */
-/* Permission is hereby granted, free of charge, to any person obtaining */
-/* a copy of this software and associated documentation files (the */
-/* "Software"), to deal in the Software without restriction, including */
-/* without limitation the rights to use, copy, modify, merge, publish, */
-/* distribute, sublicense, and/or sell copies of the Software, and to */
-/* permit persons to whom the Software is furnished to do so, subject to */
-/* the following conditions: */
-/* */
-/* The above copyright notice and this permission notice shall be */
-/* included in all copies or substantial portions of the Software. */
-/* */
-/* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, */
-/* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF */
-/* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.*/
-/* IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY */
-/* CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, */
-/* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE */
-/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
-/*************************************************************************/
-
-#include "modules/gdnative/gdnative.h"
-#include "modules/gdnative/include/net/godot_net.h"
-
-#ifdef WEBRTC_GDNATIVE_ENABLED
-#include "modules/webrtc/webrtc_data_channel_gdnative.h"
-#include "modules/webrtc/webrtc_peer_connection_gdnative.h"
-#endif
-
-extern "C" {
-
-void GDAPI godot_net_bind_webrtc_peer_connection(godot_object *p_obj, const godot_net_webrtc_peer_connection *p_impl) {
-#ifdef WEBRTC_GDNATIVE_ENABLED
- ((WebRTCPeerConnectionGDNative *)p_obj)->set_native_webrtc_peer_connection(p_impl);
-#endif
-}
-
-void GDAPI godot_net_bind_webrtc_data_channel(godot_object *p_obj, const godot_net_webrtc_data_channel *p_impl) {
-#ifdef WEBRTC_GDNATIVE_ENABLED
- ((WebRTCDataChannelGDNative *)p_obj)->set_native_webrtc_data_channel(p_impl);
-#endif
-}
-
-godot_error GDAPI godot_net_set_webrtc_library(const godot_net_webrtc_library *p_lib) {
-#ifdef WEBRTC_GDNATIVE_ENABLED
- return (godot_error)WebRTCPeerConnectionGDNative::set_default_library(p_lib);
-#else
- return (godot_error)ERR_UNAVAILABLE;
-#endif
-}
-}
diff --git a/modules/gdnative/register_types.cpp b/modules/gdnative/register_types.cpp
index e4c2b20224..a4ab5663ef 100644
--- a/modules/gdnative/register_types.cpp
+++ b/modules/gdnative/register_types.cpp
@@ -35,7 +35,6 @@
#include "gdnative.h"
#include "nativescript/register_types.h"
-#include "net/register_types.h"
#include "pluginscript/register_types.h"
#include "videodecoder/register_types.h"
@@ -265,7 +264,6 @@ void register_gdnative_types() {
GDNativeCallRegistry::singleton->register_native_call_type("standard_varcall", cb_standard_varcall);
- register_net_types();
register_nativescript_types();
register_pluginscript_types();
register_videodecoder_types();
@@ -329,7 +327,6 @@ void unregister_gdnative_types() {
unregister_videodecoder_types();
unregister_pluginscript_types();
unregister_nativescript_types();
- unregister_net_types();
memdelete(GDNativeCallRegistry::singleton);
diff --git a/modules/gdscript/doc_classes/GDScript.xml b/modules/gdscript/doc_classes/GDScript.xml
index 72738f027a..d45202bd40 100644
--- a/modules/gdscript/doc_classes/GDScript.xml
+++ b/modules/gdscript/doc_classes/GDScript.xml
@@ -30,6 +30,4 @@
</description>
</method>
</methods>
- <constants>
- </constants>
</class>
diff --git a/modules/gdscript/editor/gdscript_highlighter.cpp b/modules/gdscript/editor/gdscript_highlighter.cpp
index ab441d194a..6529154e5c 100644
--- a/modules/gdscript/editor/gdscript_highlighter.cpp
+++ b/modules/gdscript/editor/gdscript_highlighter.cpp
@@ -467,7 +467,7 @@ void GDScriptSyntaxHighlighter::_update_cache() {
List<StringName> global_classes;
ScriptServer::get_global_class_list(&global_classes);
for (const StringName &E : global_classes) {
- keywords[String(E)] = usertype_color;
+ keywords[E] = usertype_color;
}
/* Autoloads. */
@@ -486,7 +486,7 @@ void GDScriptSyntaxHighlighter::_update_cache() {
List<String> core_types;
gdscript->get_core_type_words(&core_types);
for (const String &E : core_types) {
- keywords[E] = basetype_color;
+ keywords[StringName(E)] = basetype_color;
}
/* Reserved words. */
@@ -496,9 +496,9 @@ void GDScriptSyntaxHighlighter::_update_cache() {
gdscript->get_reserved_words(&keyword_list);
for (const String &E : keyword_list) {
if (gdscript->is_control_flow_keyword(E)) {
- keywords[E] = control_flow_keyword_color;
+ keywords[StringName(E)] = control_flow_keyword_color;
} else {
- keywords[E] = keyword_color;
+ keywords[StringName(E)] = keyword_color;
}
}
diff --git a/modules/gdscript/editor/gdscript_highlighter.h b/modules/gdscript/editor/gdscript_highlighter.h
index fabd64dab8..07f21b34ae 100644
--- a/modules/gdscript/editor/gdscript_highlighter.h
+++ b/modules/gdscript/editor/gdscript_highlighter.h
@@ -47,8 +47,8 @@ private:
Vector<ColorRegion> color_regions;
Map<int, int> color_region_cache;
- Dictionary keywords;
- Dictionary member_keywords;
+ HashMap<StringName, Color> keywords;
+ HashMap<StringName, Color> member_keywords;
enum Type {
NONE,
diff --git a/modules/gdscript/gdscript_analyzer.cpp b/modules/gdscript/gdscript_analyzer.cpp
index ceb6d5a5f0..aa62ad20ff 100644
--- a/modules/gdscript/gdscript_analyzer.cpp
+++ b/modules/gdscript/gdscript_analyzer.cpp
@@ -175,6 +175,11 @@ Error GDScriptAnalyzer::check_native_member_name_conflict(const StringName &p_me
return ERR_PARSE_ERROR;
}
+ if (GDScriptParser::get_builtin_type(p_member_name) != Variant::VARIANT_MAX) {
+ push_error(vformat(R"(The member "%s" cannot have the same name as a builtin type.)", p_member_name), p_member_node);
+ return ERR_PARSE_ERROR;
+ }
+
return OK;
}
@@ -1754,7 +1759,6 @@ void GDScriptAnalyzer::reduce_assignment(GDScriptParser::AssignmentNode *p_assig
} else {
// TODO: Warning in this case.
mark_node_unsafe(p_assignment);
- p_assignment->use_conversion_assign = true;
}
}
} else {
diff --git a/modules/gdscript/gdscript_compiler.cpp b/modules/gdscript/gdscript_compiler.cpp
index a8aef84db3..947224e93e 100644
--- a/modules/gdscript/gdscript_compiler.cpp
+++ b/modules/gdscript/gdscript_compiler.cpp
@@ -1071,19 +1071,25 @@ GDScriptCodeGenerator::Address GDScriptCompiler::_parse_expression(CodeGen &code
}
}
- GDScriptCodeGenerator::Address assigned = _parse_expression(codegen, r_error, assignment->assigned_value);
- GDScriptCodeGenerator::Address op_result;
+ GDScriptCodeGenerator::Address assigned_value = _parse_expression(codegen, r_error, assignment->assigned_value);
if (r_error) {
return GDScriptCodeGenerator::Address();
}
- if (assignment->operation != GDScriptParser::AssignmentNode::OP_NONE) {
+ GDScriptCodeGenerator::Address to_assign;
+ bool has_operation = assignment->operation != GDScriptParser::AssignmentNode::OP_NONE;
+ if (has_operation) {
// Perform operation.
- op_result = codegen.add_temporary();
- gen->write_binary_operator(op_result, assignment->variant_op, target, assigned);
+ GDScriptCodeGenerator::Address op_result = codegen.add_temporary();
+ GDScriptCodeGenerator::Address og_value = _parse_expression(codegen, r_error, assignment->assignee);
+ gen->write_binary_operator(op_result, assignment->variant_op, og_value, assigned_value);
+ to_assign = op_result;
+
+ if (og_value.mode == GDScriptCodeGenerator::Address::TEMPORARY) {
+ gen->pop_temporary();
+ }
} else {
- op_result = assigned;
- assigned = GDScriptCodeGenerator::Address();
+ to_assign = assigned_value;
}
GDScriptDataType assign_type = _gdtype_from_datatype(assignment->assignee->get_datatype());
@@ -1091,25 +1097,25 @@ GDScriptCodeGenerator::Address GDScriptCompiler::_parse_expression(CodeGen &code
if (has_setter && !is_in_setter) {
// Call setter.
Vector<GDScriptCodeGenerator::Address> args;
- args.push_back(op_result);
+ args.push_back(to_assign);
gen->write_call(GDScriptCodeGenerator::Address(), GDScriptCodeGenerator::Address(GDScriptCodeGenerator::Address::SELF), setter_function, args);
} else {
// Just assign.
if (assignment->use_conversion_assign) {
- gen->write_assign_with_conversion(target, op_result);
+ gen->write_assign_with_conversion(target, to_assign);
} else {
- gen->write_assign(target, op_result);
+ gen->write_assign(target, to_assign);
}
}
- if (op_result.mode == GDScriptCodeGenerator::Address::TEMPORARY) {
- gen->pop_temporary();
+ if (to_assign.mode == GDScriptCodeGenerator::Address::TEMPORARY) {
+ gen->pop_temporary(); // Pop assigned value or temp operation result.
}
- if (assigned.mode == GDScriptCodeGenerator::Address::TEMPORARY) {
- gen->pop_temporary();
+ if (has_operation && assigned_value.mode == GDScriptCodeGenerator::Address::TEMPORARY) {
+ gen->pop_temporary(); // Pop assigned value if not done before.
}
if (target.mode == GDScriptCodeGenerator::Address::TEMPORARY) {
- gen->pop_temporary();
+ gen->pop_temporary(); // Pop the target to assignment.
}
}
return GDScriptCodeGenerator::Address(); // Assignment does not return a value.
diff --git a/modules/gdscript/gdscript_editor.cpp b/modules/gdscript/gdscript_editor.cpp
index f79e5726ce..044ac4b661 100644
--- a/modules/gdscript/gdscript_editor.cpp
+++ b/modules/gdscript/gdscript_editor.cpp
@@ -637,7 +637,7 @@ static void _get_directory_contents(EditorFileSystemDirectory *p_dir, Map<String
}
static void _find_annotation_arguments(const GDScriptParser::AnnotationNode *p_annotation, int p_argument, const String p_quote_style, Map<String, ScriptCodeCompletionOption> &r_result) {
- if (p_annotation->name == "@export_range" || p_annotation->name == "@export_exp_range") {
+ if (p_annotation->name == "@export_range") {
if (p_argument == 3 || p_argument == 4) {
// Slider hint.
ScriptCodeCompletionOption slider1("or_greater", ScriptCodeCompletionOption::KIND_PLAIN_TEXT);
@@ -781,6 +781,9 @@ static void _find_identifiers_in_class(const GDScriptParser::ClassNode *p_class,
if (p_only_functions) {
continue;
}
+ if (r_result.has(member.constant->identifier->name)) {
+ continue;
+ }
option = ScriptCodeCompletionOption(member.constant->identifier->name, ScriptCodeCompletionOption::KIND_CONSTANT);
if (member.constant->initializer) {
option.default_value = member.constant->initializer->reduced_value;
diff --git a/modules/gdscript/gdscript_parser.cpp b/modules/gdscript/gdscript_parser.cpp
index c901d9f68f..025accf4ba 100644
--- a/modules/gdscript/gdscript_parser.cpp
+++ b/modules/gdscript/gdscript_parser.cpp
@@ -579,7 +579,7 @@ void GDScriptParser::parse_program() {
}
}
- parse_class_body();
+ parse_class_body(true);
#ifdef TOOLS_ENABLED
for (Map<int, GDScriptTokenizer::CommentData>::Element *E = tokenizer.get_comments().front(); E; E = E->next()) {
@@ -615,9 +615,10 @@ GDScriptParser::ClassNode *GDScriptParser::parse_class() {
}
consume(GDScriptTokenizer::Token::COLON, R"(Expected ":" after class declaration.)");
- consume(GDScriptTokenizer::Token::NEWLINE, R"(Expected newline after class declaration.)");
- if (!consume(GDScriptTokenizer::Token::INDENT, R"(Expected indented block after class declaration.)")) {
+ bool multiline = match(GDScriptTokenizer::Token::NEWLINE);
+
+ if (multiline && !consume(GDScriptTokenizer::Token::INDENT, R"(Expected indented block after class declaration.)")) {
current_class = previous_class;
return n_class;
}
@@ -630,9 +631,11 @@ GDScriptParser::ClassNode *GDScriptParser::parse_class() {
end_statement("superclass");
}
- parse_class_body();
+ parse_class_body(multiline);
- consume(GDScriptTokenizer::Token::DEDENT, R"(Missing unindent at the end of the class body.)");
+ if (multiline) {
+ consume(GDScriptTokenizer::Token::DEDENT, R"(Missing unindent at the end of the class body.)");
+ }
current_class = previous_class;
return n_class;
@@ -747,7 +750,7 @@ void GDScriptParser::parse_class_member(T *(GDScriptParser::*p_parse_function)()
}
}
-void GDScriptParser::parse_class_body() {
+void GDScriptParser::parse_class_body(bool p_is_multiline) {
bool class_end = false;
while (!class_end && !is_at_end()) {
switch (current.type) {
@@ -793,6 +796,9 @@ void GDScriptParser::parse_class_body() {
if (panic_mode) {
synchronize();
}
+ if (!p_is_multiline) {
+ class_end = true;
+ }
}
}
@@ -1053,7 +1059,9 @@ GDScriptParser::SignalNode *GDScriptParser::parse_signal() {
SignalNode *signal = alloc_node<SignalNode>();
signal->identifier = parse_identifier();
- if (match(GDScriptTokenizer::Token::PARENTHESIS_OPEN)) {
+ if (check(GDScriptTokenizer::Token::PARENTHESIS_OPEN)) {
+ push_multiline(true);
+ advance();
do {
if (check(GDScriptTokenizer::Token::PARENTHESIS_CLOSE)) {
// Allow for trailing comma.
@@ -1076,6 +1084,7 @@ GDScriptParser::SignalNode *GDScriptParser::parse_signal() {
}
} while (match(GDScriptTokenizer::Token::COMMA) && !is_at_end());
+ pop_multiline();
consume(GDScriptTokenizer::Token::PARENTHESIS_CLOSE, R"*(Expected closing ")" after signal parameters.)*");
}
@@ -1358,6 +1367,9 @@ GDScriptParser::SuiteNode *GDScriptParser::parse_suite(const String &p_context,
int error_count = 0;
do {
+ if (!multiline && previous.type == GDScriptTokenizer::Token::SEMICOLON && check(GDScriptTokenizer::Token::NEWLINE)) {
+ break;
+ }
Node *statement = parse_statement();
if (statement == nullptr) {
if (error_count++ > 100) {
@@ -1398,7 +1410,7 @@ GDScriptParser::SuiteNode *GDScriptParser::parse_suite(const String &p_context,
break;
}
- } while (multiline && !check(GDScriptTokenizer::Token::DEDENT) && !lambda_ended && !is_at_end());
+ } while ((multiline || previous.type == GDScriptTokenizer::Token::SEMICOLON) && !check(GDScriptTokenizer::Token::DEDENT) && !lambda_ended && !is_at_end());
if (multiline) {
if (!lambda_ended) {
@@ -2810,6 +2822,11 @@ GDScriptParser::ExpressionNode *GDScriptParser::parse_lambda(ExpressionNode *p_p
return lambda;
}
+GDScriptParser::ExpressionNode *GDScriptParser::parse_yield(ExpressionNode *p_previous_operand, bool p_can_assign) {
+ push_error(R"("yield" was removed in Godot 4.0. Use "await" instead.)");
+ return nullptr;
+}
+
GDScriptParser::ExpressionNode *GDScriptParser::parse_invalid_token(ExpressionNode *p_previous_operand, bool p_can_assign) {
// Just for better error messages.
GDScriptTokenizer::Token::Type invalid = previous.type;
@@ -3166,7 +3183,7 @@ GDScriptParser::ParseRule *GDScriptParser::get_rule(GDScriptTokenizer::Token::Ty
{ nullptr, nullptr, PREC_NONE }, // TRAIT,
{ nullptr, nullptr, PREC_NONE }, // VAR,
{ nullptr, nullptr, PREC_NONE }, // VOID,
- { nullptr, nullptr, PREC_NONE }, // YIELD,
+ { &GDScriptParser::parse_yield, nullptr, PREC_NONE }, // YIELD,
// Punctuation
{ &GDScriptParser::parse_array, &GDScriptParser::parse_subscript, PREC_SUBSCRIPT }, // BRACKET_OPEN,
{ nullptr, nullptr, PREC_NONE }, // BRACKET_CLOSE,
diff --git a/modules/gdscript/gdscript_parser.h b/modules/gdscript/gdscript_parser.h
index a641c1052d..593fb0cc5e 100644
--- a/modules/gdscript/gdscript_parser.h
+++ b/modules/gdscript/gdscript_parser.h
@@ -1324,7 +1324,7 @@ private:
ClassNode *parse_class();
void parse_class_name();
void parse_extends();
- void parse_class_body();
+ void parse_class_body(bool p_is_multiline);
template <class T>
void parse_class_member(T *(GDScriptParser::*p_parse_function)(), AnnotationInfo::TargetKind p_target, const String &p_member_kind);
SignalNode *parse_signal();
@@ -1388,6 +1388,7 @@ private:
ExpressionNode *parse_attribute(ExpressionNode *p_previous_operand, bool p_can_assign);
ExpressionNode *parse_subscript(ExpressionNode *p_previous_operand, bool p_can_assign);
ExpressionNode *parse_lambda(ExpressionNode *p_previous_operand, bool p_can_assign);
+ ExpressionNode *parse_yield(ExpressionNode *p_previous_operand, bool p_can_assign);
ExpressionNode *parse_invalid_token(ExpressionNode *p_previous_operand, bool p_can_assign);
TypeNode *parse_type(bool p_allow_void = false);
#ifdef TOOLS_ENABLED
diff --git a/modules/gdscript/gdscript_vm.cpp b/modules/gdscript/gdscript_vm.cpp
index bf21c8510a..6186d0edee 100644
--- a/modules/gdscript/gdscript_vm.cpp
+++ b/modules/gdscript/gdscript_vm.cpp
@@ -88,9 +88,9 @@ static String _get_var_type(const Variant *p_var) {
Object *bobj = p_var->get_validated_object_with_check(was_freed);
if (!bobj) {
if (was_freed) {
- basestr = "null instance";
- } else {
basestr = "previously freed";
+ } else {
+ basestr = "null instance";
}
} else {
basestr = bobj->get_class();
@@ -1233,7 +1233,7 @@ Variant GDScriptFunction::call(GDScriptInstance *p_instance, const Variant **p_a
GD_ERR_BREAK(to_type < 0 || to_type >= Variant::VARIANT_MAX);
#ifdef DEBUG_ENABLED
- if (src->get_type() == Variant::OBJECT && !src->operator ObjectID().is_ref_counted() && ObjectDB::get_instance(src->operator ObjectID()) == nullptr) {
+ if (src->operator Object *() && !src->get_validated_object()) {
err_text = "Trying to cast a freed object.";
OPCODE_BREAK;
}
@@ -1263,7 +1263,7 @@ Variant GDScriptFunction::call(GDScriptInstance *p_instance, const Variant **p_a
GD_ERR_BREAK(!nc);
#ifdef DEBUG_ENABLED
- if (src->get_type() == Variant::OBJECT && !src->operator ObjectID().is_ref_counted() && ObjectDB::get_instance(src->operator ObjectID()) == nullptr) {
+ if (src->operator Object *() && !src->get_validated_object()) {
err_text = "Trying to cast a freed object.";
OPCODE_BREAK;
}
@@ -1295,7 +1295,7 @@ Variant GDScriptFunction::call(GDScriptInstance *p_instance, const Variant **p_a
GD_ERR_BREAK(!base_type);
#ifdef DEBUG_ENABLED
- if (src->get_type() == Variant::OBJECT && !src->operator ObjectID().is_ref_counted() && ObjectDB::get_instance(src->operator ObjectID()) == nullptr) {
+ if (src->operator Object *() && !src->get_validated_object()) {
err_text = "Trying to cast a freed object.";
OPCODE_BREAK;
}
@@ -2138,7 +2138,7 @@ Variant GDScriptFunction::call(GDScriptInstance *p_instance, const Variant **p_a
retvalue = gdfs;
- Error err = sig.connect(Callable(gdfs.ptr(), "_signal_callback"), varray(gdfs), Object::CONNECT_ONESHOT);
+ Error err = sig.connect(callable_bind(Callable(gdfs.ptr(), "_signal_callback"), retvalue), Object::CONNECT_ONESHOT);
if (err != OK) {
err_text = "Error connecting to signal: " + sig.get_name() + " during await.";
OPCODE_BREAK;
diff --git a/modules/gdscript/language_server/gdscript_language_protocol.cpp b/modules/gdscript/language_server/gdscript_language_protocol.cpp
index b6c48468f5..bd5a9f01b2 100644
--- a/modules/gdscript/language_server/gdscript_language_protocol.cpp
+++ b/modules/gdscript/language_server/gdscript_language_protocol.cpp
@@ -284,6 +284,23 @@ void GDScriptLanguageProtocol::notify_client(const String &p_method, const Varia
peer->res_queue.push_back(msg.utf8());
}
+void GDScriptLanguageProtocol::request_client(const String &p_method, const Variant &p_params, int p_client_id) {
+ if (p_client_id == -1) {
+ ERR_FAIL_COND_MSG(latest_client_id == -1,
+ "GDScript LSP: Can't notify client as none was connected.");
+ p_client_id = latest_client_id;
+ }
+ ERR_FAIL_COND(!clients.has(p_client_id));
+ Ref<LSPeer> peer = clients.get(p_client_id);
+ ERR_FAIL_COND(peer == nullptr);
+
+ Dictionary message = make_request(p_method, p_params, next_server_id);
+ next_server_id++;
+ String msg = Variant(message).to_json_string();
+ msg = format_output(msg);
+ peer->res_queue.push_back(msg.utf8());
+}
+
bool GDScriptLanguageProtocol::is_smart_resolve_enabled() const {
return bool(_EDITOR_GET("network/language_server/enable_smart_resolve"));
}
diff --git a/modules/gdscript/language_server/gdscript_language_protocol.h b/modules/gdscript/language_server/gdscript_language_protocol.h
index 5a2dd55c46..899446fb42 100644
--- a/modules/gdscript/language_server/gdscript_language_protocol.h
+++ b/modules/gdscript/language_server/gdscript_language_protocol.h
@@ -79,6 +79,8 @@ private:
int latest_client_id = 0;
int next_client_id = 0;
+ int next_server_id = 0;
+
Ref<GDScriptTextDocument> text_document;
Ref<GDScriptWorkspace> workspace;
@@ -107,6 +109,7 @@ public:
void stop();
void notify_client(const String &p_method, const Variant &p_params = Variant(), int p_client_id = -1);
+ void request_client(const String &p_method, const Variant &p_params = Variant(), int p_client_id = -1);
bool is_smart_resolve_enabled() const;
bool is_goto_native_symbols_enabled() const;
diff --git a/modules/gdscript/language_server/gdscript_workspace.cpp b/modules/gdscript/language_server/gdscript_workspace.cpp
index 1512b4bb89..f4b55cac02 100644
--- a/modules/gdscript/language_server/gdscript_workspace.cpp
+++ b/modules/gdscript/language_server/gdscript_workspace.cpp
@@ -42,6 +42,7 @@
#include "scene/resources/packed_scene.h"
void GDScriptWorkspace::_bind_methods() {
+ ClassDB::bind_method(D_METHOD("apply_new_signal"), &GDScriptWorkspace::apply_new_signal);
ClassDB::bind_method(D_METHOD("didDeleteFiles"), &GDScriptWorkspace::did_delete_files);
ClassDB::bind_method(D_METHOD("symbol"), &GDScriptWorkspace::symbol);
ClassDB::bind_method(D_METHOD("parse_script", "path", "content"), &GDScriptWorkspace::parse_script);
@@ -52,6 +53,54 @@ void GDScriptWorkspace::_bind_methods() {
ClassDB::bind_method(D_METHOD("generate_script_api", "path"), &GDScriptWorkspace::generate_script_api);
}
+void GDScriptWorkspace::apply_new_signal(Object *obj, String function, PackedStringArray args) {
+ String function_signature = "func " + function;
+ Ref<Script> script = obj->get_script();
+
+ String source = script->get_source_code();
+
+ if (source.find(function_signature) != -1) {
+ return;
+ }
+
+ int first_class = source.find("\nclass ");
+ int start_line = 0;
+ if (first_class != -1) {
+ start_line = source.substr(0, first_class).split("\n").size();
+ } else {
+ start_line = source.split("\n").size();
+ }
+
+ String function_body = "\n\n" + function_signature + "(";
+ for (int i = 0; i < args.size(); ++i) {
+ function_body += args[i];
+ if (i < args.size() - 1) {
+ function_body += ", ";
+ }
+ }
+ function_body += ")";
+ if (EditorSettings::get_singleton()->get_setting("text_editor/completion/add_type_hints")) {
+ function_body += " -> void";
+ }
+ function_body += ":\n\tpass # Replace with function body.\n";
+
+ lsp::TextEdit text_edit;
+
+ if (first_class != -1) {
+ function_body += "\n\n";
+ }
+ text_edit.range.end.line = text_edit.range.start.line = start_line;
+
+ text_edit.newText = function_body;
+
+ String uri = get_file_uri(script->get_path());
+
+ lsp::ApplyWorkspaceEditParams params;
+ params.edit.add_edit(uri, text_edit);
+
+ GDScriptLanguageProtocol::get_singleton()->request_client("workspace/applyEdit", params.to_json());
+}
+
void GDScriptWorkspace::did_delete_files(const Dictionary &p_params) {
Array files = p_params["files"];
for (int i = 0; i < files.size(); ++i) {
@@ -360,6 +409,9 @@ Error GDScriptWorkspace::initialize() {
}
}
+ EditorNode *editor_node = EditorNode::get_singleton();
+ editor_node->connect("script_add_function_request", callable_mp(this, &GDScriptWorkspace::apply_new_signal));
+
return OK;
}
@@ -551,7 +603,7 @@ void GDScriptWorkspace::completion(const lsp::CompletionParams &p_params, List<S
}
}
-const lsp::DocumentSymbol *GDScriptWorkspace::resolve_symbol(const lsp::TextDocumentPositionParams &p_doc_pos, const String &p_symbol_name, bool p_func_requred) {
+const lsp::DocumentSymbol *GDScriptWorkspace::resolve_symbol(const lsp::TextDocumentPositionParams &p_doc_pos, const String &p_symbol_name, bool p_func_required) {
const lsp::DocumentSymbol *symbol = nullptr;
String path = get_file_path(p_doc_pos.textDocument.uri);
@@ -576,7 +628,10 @@ const lsp::DocumentSymbol *GDScriptWorkspace::resolve_symbol(const lsp::TextDocu
} else {
ScriptLanguage::LookupResult ret;
- if (OK == GDScriptLanguage::get_singleton()->lookup_code(parser->get_text_for_lookup_symbol(pos, symbol_identifier, p_func_requred), symbol_identifier, path, nullptr, ret)) {
+ if (symbol_identifier == "new" && parser->get_lines()[p_doc_pos.position.line].replace(" ", "").replace("\t", "").find("new(") > -1) {
+ symbol_identifier = "_init";
+ }
+ if (OK == GDScriptLanguage::get_singleton()->lookup_code(parser->get_text_for_lookup_symbol(pos, symbol_identifier, p_func_required), symbol_identifier, path, nullptr, ret)) {
if (ret.type == ScriptLanguage::LookupResult::RESULT_SCRIPT_LOCATION) {
String target_script_path = path;
if (!ret.script.is_null()) {
diff --git a/modules/gdscript/language_server/gdscript_workspace.h b/modules/gdscript/language_server/gdscript_workspace.h
index 9496677449..6f5600b5cf 100644
--- a/modules/gdscript/language_server/gdscript_workspace.h
+++ b/modules/gdscript/language_server/gdscript_workspace.h
@@ -62,6 +62,8 @@ protected:
void list_script_files(const String &p_root_dir, List<String> &r_files);
+ void apply_new_signal(Object *obj, String function, PackedStringArray args);
+
public:
String root;
String root_uri;
@@ -85,7 +87,7 @@ public:
void publish_diagnostics(const String &p_path);
void completion(const lsp::CompletionParams &p_params, List<ScriptCodeCompletionOption> *r_options);
- const lsp::DocumentSymbol *resolve_symbol(const lsp::TextDocumentPositionParams &p_doc_pos, const String &p_symbol_name = "", bool p_func_requred = false);
+ const lsp::DocumentSymbol *resolve_symbol(const lsp::TextDocumentPositionParams &p_doc_pos, const String &p_symbol_name = "", bool p_func_required = false);
void resolve_related_symbols(const lsp::TextDocumentPositionParams &p_doc_pos, List<const lsp::DocumentSymbol *> &r_list);
const lsp::DocumentSymbol *resolve_native_symbol(const lsp::NativeSymbolInspectParams &p_params);
void resolve_document_links(const String &p_uri, List<lsp::DocumentLink> &r_list);
diff --git a/modules/gdscript/language_server/lsp.hpp b/modules/gdscript/language_server/lsp.hpp
index 9ac6c6bd4e..662382d279 100644
--- a/modules/gdscript/language_server/lsp.hpp
+++ b/modules/gdscript/language_server/lsp.hpp
@@ -263,6 +263,16 @@ struct WorkspaceEdit {
*/
Map<String, Vector<TextEdit>> changes;
+ _FORCE_INLINE_ void add_edit(const String &uri, const TextEdit &edit) {
+ if (changes.has(uri)) {
+ changes[uri].push_back(edit);
+ } else {
+ Vector<TextEdit> edits;
+ edits.push_back(edit);
+ changes[uri] = edits;
+ }
+ }
+
_FORCE_INLINE_ Dictionary to_json() const {
Dictionary dict;
@@ -1322,6 +1332,18 @@ struct DocumentSymbol {
}
};
+struct ApplyWorkspaceEditParams {
+ WorkspaceEdit edit;
+
+ Dictionary to_json() {
+ Dictionary dict;
+
+ dict["edit"] = edit.to_json();
+
+ return dict;
+ }
+};
+
struct NativeSymbolInspectParams {
String native_class;
String symbol_name;
diff --git a/modules/gdscript/tests/scripts/analyzer/errors/bitwise_float_right_operand.gd b/modules/gdscript/tests/scripts/analyzer/errors/bitwise_float_right_operand.gd
index 4502960105..0a4f647f57 100644
--- a/modules/gdscript/tests/scripts/analyzer/errors/bitwise_float_right_operand.gd
+++ b/modules/gdscript/tests/scripts/analyzer/errors/bitwise_float_right_operand.gd
@@ -1,3 +1,3 @@
func test():
# Error here.
- print(2 << 4.4)
+ print(2 >> 4.4)
diff --git a/modules/gdscript/tests/scripts/analyzer/errors/bitwise_float_right_operand.out b/modules/gdscript/tests/scripts/analyzer/errors/bitwise_float_right_operand.out
index 1879fc1adf..1edbf47ec0 100644
--- a/modules/gdscript/tests/scripts/analyzer/errors/bitwise_float_right_operand.out
+++ b/modules/gdscript/tests/scripts/analyzer/errors/bitwise_float_right_operand.out
@@ -1,2 +1,2 @@
GDTEST_ANALYZER_ERROR
-Invalid operands to operator <<, int and float.
+Invalid operands to operator >>, int and float.
diff --git a/modules/gdscript/tests/scripts/analyzer/errors/class_name_shadows_builtin_type.gd b/modules/gdscript/tests/scripts/analyzer/errors/class_name_shadows_builtin_type.gd
new file mode 100644
index 0000000000..b84ccdce81
--- /dev/null
+++ b/modules/gdscript/tests/scripts/analyzer/errors/class_name_shadows_builtin_type.gd
@@ -0,0 +1,5 @@
+class Vector2:
+ pass
+
+func test():
+ pass
diff --git a/modules/gdscript/tests/scripts/analyzer/errors/class_name_shadows_builtin_type.out b/modules/gdscript/tests/scripts/analyzer/errors/class_name_shadows_builtin_type.out
new file mode 100644
index 0000000000..87863baf75
--- /dev/null
+++ b/modules/gdscript/tests/scripts/analyzer/errors/class_name_shadows_builtin_type.out
@@ -0,0 +1,2 @@
+GDTEST_ANALYZER_ERROR
+The member "Vector2" cannot have the same name as a builtin type.
diff --git a/modules/gdscript/tests/scripts/analyzer/errors/constant_name_shadows_builtin_type.gd b/modules/gdscript/tests/scripts/analyzer/errors/constant_name_shadows_builtin_type.gd
new file mode 100644
index 0000000000..a7c0a29a69
--- /dev/null
+++ b/modules/gdscript/tests/scripts/analyzer/errors/constant_name_shadows_builtin_type.gd
@@ -0,0 +1,4 @@
+const Vector2 = 0
+
+func test():
+ pass
diff --git a/modules/gdscript/tests/scripts/analyzer/errors/constant_name_shadows_builtin_type.out b/modules/gdscript/tests/scripts/analyzer/errors/constant_name_shadows_builtin_type.out
new file mode 100644
index 0000000000..87863baf75
--- /dev/null
+++ b/modules/gdscript/tests/scripts/analyzer/errors/constant_name_shadows_builtin_type.out
@@ -0,0 +1,2 @@
+GDTEST_ANALYZER_ERROR
+The member "Vector2" cannot have the same name as a builtin type.
diff --git a/modules/gdscript/tests/scripts/analyzer/errors/enum_name_shadows_builtin_type.gd b/modules/gdscript/tests/scripts/analyzer/errors/enum_name_shadows_builtin_type.gd
new file mode 100644
index 0000000000..930f91b389
--- /dev/null
+++ b/modules/gdscript/tests/scripts/analyzer/errors/enum_name_shadows_builtin_type.gd
@@ -0,0 +1,4 @@
+enum Vector2 { A, B }
+
+func test():
+ pass
diff --git a/modules/gdscript/tests/scripts/analyzer/errors/enum_name_shadows_builtin_type.out b/modules/gdscript/tests/scripts/analyzer/errors/enum_name_shadows_builtin_type.out
new file mode 100644
index 0000000000..87863baf75
--- /dev/null
+++ b/modules/gdscript/tests/scripts/analyzer/errors/enum_name_shadows_builtin_type.out
@@ -0,0 +1,2 @@
+GDTEST_ANALYZER_ERROR
+The member "Vector2" cannot have the same name as a builtin type.
diff --git a/modules/gdscript/tests/scripts/analyzer/errors/variable_name_shadows_builtin_type.gd b/modules/gdscript/tests/scripts/analyzer/errors/variable_name_shadows_builtin_type.gd
new file mode 100644
index 0000000000..7cba29884c
--- /dev/null
+++ b/modules/gdscript/tests/scripts/analyzer/errors/variable_name_shadows_builtin_type.gd
@@ -0,0 +1,4 @@
+var Vector2
+
+func test():
+ pass
diff --git a/modules/gdscript/tests/scripts/analyzer/errors/variable_name_shadows_builtin_type.out b/modules/gdscript/tests/scripts/analyzer/errors/variable_name_shadows_builtin_type.out
new file mode 100644
index 0000000000..87863baf75
--- /dev/null
+++ b/modules/gdscript/tests/scripts/analyzer/errors/variable_name_shadows_builtin_type.out
@@ -0,0 +1,2 @@
+GDTEST_ANALYZER_ERROR
+The member "Vector2" cannot have the same name as a builtin type.
diff --git a/modules/gdscript/tests/scripts/analyzer/features/static_method_builtin_type.gd b/modules/gdscript/tests/scripts/analyzer/features/static_method_builtin_type.gd
new file mode 100644
index 0000000000..569f95850f
--- /dev/null
+++ b/modules/gdscript/tests/scripts/analyzer/features/static_method_builtin_type.gd
@@ -0,0 +1,2 @@
+func test():
+ print(Color.html_is_valid("00ffff"))
diff --git a/modules/gdscript/tests/scripts/analyzer/features/static_method_builtin_type.out b/modules/gdscript/tests/scripts/analyzer/features/static_method_builtin_type.out
new file mode 100644
index 0000000000..55482c2b52
--- /dev/null
+++ b/modules/gdscript/tests/scripts/analyzer/features/static_method_builtin_type.out
@@ -0,0 +1,2 @@
+GDTEST_OK
+true
diff --git a/modules/gdscript/tests/scripts/parser/errors/brace_syntax.gd b/modules/gdscript/tests/scripts/parser/errors/brace_syntax.gd
new file mode 100644
index 0000000000..ab66537c93
--- /dev/null
+++ b/modules/gdscript/tests/scripts/parser/errors/brace_syntax.gd
@@ -0,0 +1,3 @@
+func test() {
+ print("Hello world!");
+}
diff --git a/modules/gdscript/tests/scripts/parser/errors/brace_syntax.out b/modules/gdscript/tests/scripts/parser/errors/brace_syntax.out
new file mode 100644
index 0000000000..2f37a740ab
--- /dev/null
+++ b/modules/gdscript/tests/scripts/parser/errors/brace_syntax.out
@@ -0,0 +1,2 @@
+GDTEST_PARSER_ERROR
+Expected ":" after function declaration.
diff --git a/modules/gdscript/tests/scripts/parser/errors/invalid_escape_sequence.gd b/modules/gdscript/tests/scripts/parser/errors/invalid_escape_sequence.gd
new file mode 100644
index 0000000000..3b52f6e324
--- /dev/null
+++ b/modules/gdscript/tests/scripts/parser/errors/invalid_escape_sequence.gd
@@ -0,0 +1,2 @@
+func test():
+ var escape = "invalid escape \h <- here"
diff --git a/modules/gdscript/tests/scripts/parser/errors/invalid_escape_sequence.out b/modules/gdscript/tests/scripts/parser/errors/invalid_escape_sequence.out
new file mode 100644
index 0000000000..32b4d004db
--- /dev/null
+++ b/modules/gdscript/tests/scripts/parser/errors/invalid_escape_sequence.out
@@ -0,0 +1,2 @@
+GDTEST_PARSER_ERROR
+Invalid escape in string.
diff --git a/modules/gdscript/tests/scripts/parser/errors/invalid_ternary_operator.gd b/modules/gdscript/tests/scripts/parser/errors/invalid_ternary_operator.gd
new file mode 100644
index 0000000000..c835ce15e1
--- /dev/null
+++ b/modules/gdscript/tests/scripts/parser/errors/invalid_ternary_operator.gd
@@ -0,0 +1,5 @@
+func test():
+ var amount = 50
+ # C-style ternary operator is invalid in GDScript.
+ # The valid syntax is `"yes" if amount < 60 else "no"`, like in Python.
+ var ternary = amount < 60 ? "yes" : "no"
diff --git a/modules/gdscript/tests/scripts/parser/errors/invalid_ternary_operator.out b/modules/gdscript/tests/scripts/parser/errors/invalid_ternary_operator.out
new file mode 100644
index 0000000000..ac82d691b7
--- /dev/null
+++ b/modules/gdscript/tests/scripts/parser/errors/invalid_ternary_operator.out
@@ -0,0 +1,2 @@
+GDTEST_PARSER_ERROR
+Unexpected "?" in source. If you want a ternary operator, use "truthy_value if true_condition else falsy_value".
diff --git a/modules/gdscript/tests/scripts/parser/errors/vcs_conflict_marker.gd b/modules/gdscript/tests/scripts/parser/errors/vcs_conflict_marker.gd
new file mode 100644
index 0000000000..8850892f2d
--- /dev/null
+++ b/modules/gdscript/tests/scripts/parser/errors/vcs_conflict_marker.gd
@@ -0,0 +1,13 @@
+# The VCS conflict marker has only 6 `=` signs instead of 7 to prevent editors like
+# Visual Studio Code from recognizing it as an actual VCS conflict marker.
+# Nonetheless, the GDScript parser is still expected to find and report the VCS
+# conflict marker error correctly.
+
+<<<<<<< HEAD
+Hello world
+======
+Goodbye
+>>>>>>> 77976da35a11db4580b80ae27e8d65caf5208086
+
+func test():
+ pass
diff --git a/modules/gdscript/tests/scripts/parser/errors/vcs_conflict_marker.out b/modules/gdscript/tests/scripts/parser/errors/vcs_conflict_marker.out
new file mode 100644
index 0000000000..df9dab2223
--- /dev/null
+++ b/modules/gdscript/tests/scripts/parser/errors/vcs_conflict_marker.out
@@ -0,0 +1,2 @@
+GDTEST_PARSER_ERROR
+Unexpected "VCS conflict marker" in class body.
diff --git a/modules/gdscript/tests/scripts/parser/errors/yield_instead_of_await.gd b/modules/gdscript/tests/scripts/parser/errors/yield_instead_of_await.gd
new file mode 100644
index 0000000000..7862eff6ec
--- /dev/null
+++ b/modules/gdscript/tests/scripts/parser/errors/yield_instead_of_await.gd
@@ -0,0 +1,6 @@
+#GDTEST_PARSER_ERROR
+
+signal event
+
+func test():
+ yield("event")
diff --git a/modules/gdscript/tests/scripts/parser/errors/yield_instead_of_await.out b/modules/gdscript/tests/scripts/parser/errors/yield_instead_of_await.out
new file mode 100644
index 0000000000..36cb699e92
--- /dev/null
+++ b/modules/gdscript/tests/scripts/parser/errors/yield_instead_of_await.out
@@ -0,0 +1,2 @@
+GDTEST_PARSER_ERROR
+"yield" was removed in Godot 4.0. Use "await" instead.
diff --git a/modules/gdscript/tests/scripts/parser/features/export_variable.gd b/modules/gdscript/tests/scripts/parser/features/export_variable.gd
index 51e7d4a8ed..1e072728fc 100644
--- a/modules/gdscript/tests/scripts/parser/features/export_variable.gd
+++ b/modules/gdscript/tests/scripts/parser/features/export_variable.gd
@@ -3,9 +3,16 @@
@export_range(0, 100, 1) var example_range_step = 101
@export_range(0, 100, 1, "or_greater") var example_range_step_or_greater = 102
+@export var color: Color
+@export_color_no_alpha var color_no_alpha: Color
+@export_node_path(Sprite2D, Sprite3D, Control, Node) var nodepath := ^"hello"
+
func test():
print(example)
print(example_range)
print(example_range_step)
print(example_range_step_or_greater)
+ print(color)
+ print(color_no_alpha)
+ print(nodepath)
diff --git a/modules/gdscript/tests/scripts/parser/features/export_variable.out b/modules/gdscript/tests/scripts/parser/features/export_variable.out
index b455196359..bae35e75c6 100644
--- a/modules/gdscript/tests/scripts/parser/features/export_variable.out
+++ b/modules/gdscript/tests/scripts/parser/features/export_variable.out
@@ -3,3 +3,6 @@ GDTEST_OK
100
101
102
+(0, 0, 0, 1)
+(0, 0, 0, 1)
+hello
diff --git a/modules/gdscript/tests/scripts/parser/features/function_default_parameter_type_inference.gd b/modules/gdscript/tests/scripts/parser/features/function_default_parameter_type_inference.gd
new file mode 100644
index 0000000000..f5098b00ae
--- /dev/null
+++ b/modules/gdscript/tests/scripts/parser/features/function_default_parameter_type_inference.gd
@@ -0,0 +1,5 @@
+func example(_number: int, _number2: int = 5, number3 := 10):
+ return number3
+
+func test():
+ print(example(3))
diff --git a/modules/gdscript/tests/scripts/parser/features/function_default_parameter_type_inference.out b/modules/gdscript/tests/scripts/parser/features/function_default_parameter_type_inference.out
new file mode 100644
index 0000000000..404cd41fe5
--- /dev/null
+++ b/modules/gdscript/tests/scripts/parser/features/function_default_parameter_type_inference.out
@@ -0,0 +1,2 @@
+GDTEST_OK
+10
diff --git a/modules/gdscript/tests/scripts/parser/features/function_many_parameters.gd b/modules/gdscript/tests/scripts/parser/features/function_many_parameters.gd
new file mode 100644
index 0000000000..01edb37cec
--- /dev/null
+++ b/modules/gdscript/tests/scripts/parser/features/function_many_parameters.gd
@@ -0,0 +1,5 @@
+func example(arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10, arg11, arg12, arg13, arg14, arg15, arg16, arg17, arg18, arg19, arg20, arg21, arg22, arg23, arg24, arg25, arg26, arg27, arg28, arg29, arg30, arg31, arg32, arg33, arg34, arg35, arg36, arg37, arg38, arg39, arg40, arg41, arg42, arg43, arg44, arg45, arg46, arg47, arg48 = false, arg49 = true, arg50 = null):
+ print(arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10, arg11, arg12, arg13, arg14, arg15, arg16, arg17, arg18, arg19, arg20, arg21, arg22, arg23, arg24, arg25, arg26, arg27, arg28, arg29, arg30, arg31, arg32, arg33, arg34, arg35, arg36, arg37, arg38, arg39, arg40, arg41, arg42, arg43, arg44, arg45, arg46, arg47, arg48, arg49, arg50)
+
+func test():
+ example(1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 2, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47)
diff --git a/modules/gdscript/tests/scripts/parser/features/function_many_parameters.out b/modules/gdscript/tests/scripts/parser/features/function_many_parameters.out
new file mode 100644
index 0000000000..3a979227d4
--- /dev/null
+++ b/modules/gdscript/tests/scripts/parser/features/function_many_parameters.out
@@ -0,0 +1,2 @@
+GDTEST_OK
+123456789101112131415161718192212223242526272829303132333435363738394041424344454647falsetruenull
diff --git a/modules/gdscript/tests/scripts/parser/features/lambda_callable.gd b/modules/gdscript/tests/scripts/parser/features/lambda_callable.gd
new file mode 100644
index 0000000000..c3b2506156
--- /dev/null
+++ b/modules/gdscript/tests/scripts/parser/features/lambda_callable.gd
@@ -0,0 +1,4 @@
+func test():
+ var my_lambda = func(x):
+ print(x)
+ my_lambda.call("hello")
diff --git a/modules/gdscript/tests/scripts/parser/features/lambda_callable.out b/modules/gdscript/tests/scripts/parser/features/lambda_callable.out
new file mode 100644
index 0000000000..58774d2d3f
--- /dev/null
+++ b/modules/gdscript/tests/scripts/parser/features/lambda_callable.out
@@ -0,0 +1,2 @@
+GDTEST_OK
+hello
diff --git a/modules/gdscript/tests/scripts/parser/features/lambda_capture_callable.gd b/modules/gdscript/tests/scripts/parser/features/lambda_capture_callable.gd
new file mode 100644
index 0000000000..f081a0b6a7
--- /dev/null
+++ b/modules/gdscript/tests/scripts/parser/features/lambda_capture_callable.gd
@@ -0,0 +1,4 @@
+func test():
+ var x = 42
+ var my_lambda = func(): print(x)
+ my_lambda.call() # Prints "42".
diff --git a/modules/gdscript/tests/scripts/parser/features/lambda_capture_callable.out b/modules/gdscript/tests/scripts/parser/features/lambda_capture_callable.out
new file mode 100644
index 0000000000..0982f3718c
--- /dev/null
+++ b/modules/gdscript/tests/scripts/parser/features/lambda_capture_callable.out
@@ -0,0 +1,2 @@
+GDTEST_OK
+42
diff --git a/modules/gdscript/tests/scripts/parser/features/lambda_named_callable.gd b/modules/gdscript/tests/scripts/parser/features/lambda_named_callable.gd
new file mode 100644
index 0000000000..7971ca72a6
--- /dev/null
+++ b/modules/gdscript/tests/scripts/parser/features/lambda_named_callable.gd
@@ -0,0 +1,10 @@
+func i_take_lambda(lambda: Callable, param: String):
+ lambda.call(param)
+
+
+func test():
+ var my_lambda := func this_is_lambda(x):
+ print("Hello")
+ print("This is %s" % x)
+
+ i_take_lambda(my_lambda, "a lambda")
diff --git a/modules/gdscript/tests/scripts/parser/features/lambda_named_callable.out b/modules/gdscript/tests/scripts/parser/features/lambda_named_callable.out
new file mode 100644
index 0000000000..c627187d82
--- /dev/null
+++ b/modules/gdscript/tests/scripts/parser/features/lambda_named_callable.out
@@ -0,0 +1,3 @@
+GDTEST_OK
+Hello
+This is a lambda
diff --git a/modules/gdscript/tests/scripts/parser/features/nested_function_calls.gd b/modules/gdscript/tests/scripts/parser/features/nested_function_calls.gd
new file mode 100644
index 0000000000..59cdc7d6c2
--- /dev/null
+++ b/modules/gdscript/tests/scripts/parser/features/nested_function_calls.gd
@@ -0,0 +1,5 @@
+func foo(x):
+ return x + 1
+
+func test():
+ print(foo(foo(foo(foo(foo(foo(foo(foo(foo(foo(foo(foo(foo(foo(foo(foo(foo(foo(foo(foo(foo(foo(foo(foo(0)))))))))))))))))))))))))
diff --git a/modules/gdscript/tests/scripts/parser/features/nested_function_calls.out b/modules/gdscript/tests/scripts/parser/features/nested_function_calls.out
new file mode 100644
index 0000000000..28a6636a7b
--- /dev/null
+++ b/modules/gdscript/tests/scripts/parser/features/nested_function_calls.out
@@ -0,0 +1,2 @@
+GDTEST_OK
+24
diff --git a/modules/gdscript/tests/scripts/parser/features/semicolon_as_terminator.gd b/modules/gdscript/tests/scripts/parser/features/semicolon_as_terminator.gd
new file mode 100644
index 0000000000..0f4aebb459
--- /dev/null
+++ b/modules/gdscript/tests/scripts/parser/features/semicolon_as_terminator.gd
@@ -0,0 +1,22 @@
+#GDTEST_OK
+
+func test():
+ a();
+ b();
+ c();
+ d();
+ e();
+
+func a(): print("a");
+
+func b(): print("b1"); print("b2")
+
+func c(): print("c1"); print("c2");
+
+func d():
+ print("d1");
+ print("d2")
+
+func e():
+ print("e1");
+ print("e2");
diff --git a/modules/gdscript/tests/scripts/parser/features/semicolon_as_terminator.out b/modules/gdscript/tests/scripts/parser/features/semicolon_as_terminator.out
new file mode 100644
index 0000000000..387cbd8fc2
--- /dev/null
+++ b/modules/gdscript/tests/scripts/parser/features/semicolon_as_terminator.out
@@ -0,0 +1,10 @@
+GDTEST_OK
+a
+b1
+b2
+c1
+c2
+d1
+d2
+e1
+e2
diff --git a/modules/gdscript/tests/scripts/parser/features/signal_declaration.gd b/modules/gdscript/tests/scripts/parser/features/signal_declaration.gd
new file mode 100644
index 0000000000..9ad98b78a8
--- /dev/null
+++ b/modules/gdscript/tests/scripts/parser/features/signal_declaration.gd
@@ -0,0 +1,20 @@
+#GDTEST_OK
+
+# No parentheses.
+signal a
+
+# No parameters.
+signal b()
+
+# With paramters.
+signal c(a, b, c)
+
+# With parameters multiline.
+signal d(
+ a,
+ b,
+ c,
+)
+
+func test():
+ print("Ok")
diff --git a/modules/gdscript/tests/scripts/parser/features/signal_declaration.out b/modules/gdscript/tests/scripts/parser/features/signal_declaration.out
new file mode 100644
index 0000000000..0e9f482af4
--- /dev/null
+++ b/modules/gdscript/tests/scripts/parser/features/signal_declaration.out
@@ -0,0 +1,2 @@
+GDTEST_OK
+Ok
diff --git a/modules/gdscript/tests/scripts/parser/features/single_line_declaration.gd b/modules/gdscript/tests/scripts/parser/features/single_line_declaration.gd
new file mode 100644
index 0000000000..650500663b
--- /dev/null
+++ b/modules/gdscript/tests/scripts/parser/features/single_line_declaration.gd
@@ -0,0 +1,11 @@
+#GDTEST_OK
+
+func test(): C.new().test("Ok"); test2()
+
+func test2(): print("Ok 2")
+
+class A: pass
+
+class B extends RefCounted: pass
+
+class C extends RefCounted: func test(x): print(x)
diff --git a/modules/gdscript/tests/scripts/parser/features/single_line_declaration.out b/modules/gdscript/tests/scripts/parser/features/single_line_declaration.out
new file mode 100644
index 0000000000..e021923dc2
--- /dev/null
+++ b/modules/gdscript/tests/scripts/parser/features/single_line_declaration.out
@@ -0,0 +1,3 @@
+GDTEST_OK
+Ok
+Ok 2
diff --git a/modules/gdscript/tests/scripts/parser/features/typed_arrays.gd b/modules/gdscript/tests/scripts/parser/features/typed_arrays.gd
new file mode 100644
index 0000000000..21bf3fdfcf
--- /dev/null
+++ b/modules/gdscript/tests/scripts/parser/features/typed_arrays.gd
@@ -0,0 +1,5 @@
+func test():
+ var my_array: Array[int] = [1, 2, 3]
+ var inferred_array := [1, 2, 3] # This is Array[int].
+ print(my_array)
+ print(inferred_array)
diff --git a/modules/gdscript/tests/scripts/parser/features/typed_arrays.out b/modules/gdscript/tests/scripts/parser/features/typed_arrays.out
new file mode 100644
index 0000000000..953d54d5e0
--- /dev/null
+++ b/modules/gdscript/tests/scripts/parser/features/typed_arrays.out
@@ -0,0 +1,3 @@
+GDTEST_OK
+[1, 2, 3]
+[1, 2, 3]
diff --git a/modules/gdscript/tests/scripts/runtime/features/property_with_operator_assignment.gd b/modules/gdscript/tests/scripts/runtime/features/property_with_operator_assignment.gd
new file mode 100644
index 0000000000..3eb02816ed
--- /dev/null
+++ b/modules/gdscript/tests/scripts/runtime/features/property_with_operator_assignment.gd
@@ -0,0 +1,11 @@
+#GDTEST_OK
+var prop : int = 0:
+ get:
+ return prop
+ set(value):
+ prop = value % 7
+
+func test():
+ for i in 7:
+ prop += 1
+ print(prop)
diff --git a/modules/gdscript/tests/scripts/runtime/features/property_with_operator_assignment.out b/modules/gdscript/tests/scripts/runtime/features/property_with_operator_assignment.out
new file mode 100644
index 0000000000..76157853f2
--- /dev/null
+++ b/modules/gdscript/tests/scripts/runtime/features/property_with_operator_assignment.out
@@ -0,0 +1,8 @@
+GDTEST_OK
+1
+2
+3
+4
+5
+6
+0
diff --git a/modules/gdscript/tests/scripts/runtime/features/recursion.gd b/modules/gdscript/tests/scripts/runtime/features/recursion.gd
new file mode 100644
index 0000000000..a35485022e
--- /dev/null
+++ b/modules/gdscript/tests/scripts/runtime/features/recursion.gd
@@ -0,0 +1,19 @@
+func is_prime(number: int, divisor: int = 2) -> bool:
+ print(divisor)
+ if number <= 2:
+ return (number == 2)
+ elif number % divisor == 0:
+ return false
+ elif divisor * divisor > number:
+ return true
+
+ return is_prime(number, divisor + 1)
+
+func test():
+ # Not a prime number.
+ print(is_prime(989))
+
+ print()
+
+ # Largest prime number below 10000.
+ print(is_prime(9973))
diff --git a/modules/gdscript/tests/scripts/runtime/features/recursion.out b/modules/gdscript/tests/scripts/runtime/features/recursion.out
new file mode 100644
index 0000000000..2bd8f24988
--- /dev/null
+++ b/modules/gdscript/tests/scripts/runtime/features/recursion.out
@@ -0,0 +1,125 @@
+GDTEST_OK
+2
+3
+4
+5
+6
+7
+8
+9
+10
+11
+12
+13
+14
+15
+16
+17
+18
+19
+20
+21
+22
+23
+false
+
+2
+3
+4
+5
+6
+7
+8
+9
+10
+11
+12
+13
+14
+15
+16
+17
+18
+19
+20
+21
+22
+23
+24
+25
+26
+27
+28
+29
+30
+31
+32
+33
+34
+35
+36
+37
+38
+39
+40
+41
+42
+43
+44
+45
+46
+47
+48
+49
+50
+51
+52
+53
+54
+55
+56
+57
+58
+59
+60
+61
+62
+63
+64
+65
+66
+67
+68
+69
+70
+71
+72
+73
+74
+75
+76
+77
+78
+79
+80
+81
+82
+83
+84
+85
+86
+87
+88
+89
+90
+91
+92
+93
+94
+95
+96
+97
+98
+99
+100
+true
diff --git a/modules/glslang/SCsub b/modules/glslang/SCsub
index 182272ffc7..1954a32697 100644
--- a/modules/glslang/SCsub
+++ b/modules/glslang/SCsub
@@ -13,46 +13,47 @@ if env["builtin_glslang"]:
thirdparty_dir = "#thirdparty/glslang/"
thirdparty_sources = [
"glslang/CInterface/glslang_c_interface.cpp",
- "glslang/MachineIndependent/RemoveTree.cpp",
- "glslang/MachineIndependent/ParseHelper.cpp",
- "glslang/MachineIndependent/iomapper.cpp",
- "glslang/MachineIndependent/propagateNoContraction.cpp",
- "glslang/MachineIndependent/Intermediate.cpp",
- "glslang/MachineIndependent/linkValidate.cpp",
"glslang/MachineIndependent/attribute.cpp",
- "glslang/MachineIndependent/Scan.cpp",
- "glslang/MachineIndependent/Initialize.cpp",
"glslang/MachineIndependent/Constant.cpp",
- "glslang/MachineIndependent/reflection.cpp",
+ "glslang/MachineIndependent/glslang_tab.cpp",
+ "glslang/MachineIndependent/InfoSink.cpp",
+ "glslang/MachineIndependent/Initialize.cpp",
+ "glslang/MachineIndependent/Intermediate.cpp",
+ "glslang/MachineIndependent/intermOut.cpp",
+ "glslang/MachineIndependent/IntermTraverse.cpp",
+ "glslang/MachineIndependent/iomapper.cpp",
"glslang/MachineIndependent/limits.cpp",
- "glslang/MachineIndependent/preprocessor/PpScanner.cpp",
- "glslang/MachineIndependent/preprocessor/PpTokens.cpp",
+ "glslang/MachineIndependent/linkValidate.cpp",
+ "glslang/MachineIndependent/parseConst.cpp",
+ "glslang/MachineIndependent/ParseContextBase.cpp",
+ "glslang/MachineIndependent/ParseHelper.cpp",
+ "glslang/MachineIndependent/PoolAlloc.cpp",
"glslang/MachineIndependent/preprocessor/PpAtom.cpp",
"glslang/MachineIndependent/preprocessor/PpContext.cpp",
"glslang/MachineIndependent/preprocessor/Pp.cpp",
- "glslang/MachineIndependent/InfoSink.cpp",
- "glslang/MachineIndependent/intermOut.cpp",
+ "glslang/MachineIndependent/preprocessor/PpScanner.cpp",
+ "glslang/MachineIndependent/preprocessor/PpTokens.cpp",
+ "glslang/MachineIndependent/propagateNoContraction.cpp",
+ "glslang/MachineIndependent/reflection.cpp",
+ "glslang/MachineIndependent/RemoveTree.cpp",
+ "glslang/MachineIndependent/Scan.cpp",
+ "glslang/MachineIndependent/ShaderLang.cpp",
+ "glslang/MachineIndependent/SpirvIntrinsics.cpp",
"glslang/MachineIndependent/SymbolTable.cpp",
- "glslang/MachineIndependent/glslang_tab.cpp",
"glslang/MachineIndependent/Versions.cpp",
- "glslang/MachineIndependent/ShaderLang.cpp",
- "glslang/MachineIndependent/parseConst.cpp",
- "glslang/MachineIndependent/PoolAlloc.cpp",
- "glslang/MachineIndependent/ParseContextBase.cpp",
- "glslang/MachineIndependent/IntermTraverse.cpp",
- "glslang/GenericCodeGen/Link.cpp",
"glslang/GenericCodeGen/CodeGen.cpp",
+ "glslang/GenericCodeGen/Link.cpp",
"OGLCompilersDLL/InitializeDll.cpp",
"SPIRV/CInterface/spirv_c_interface.cpp",
- "SPIRV/InReadableOrder.cpp",
- "SPIRV/GlslangToSpv.cpp",
- "SPIRV/SpvBuilder.cpp",
- "SPIRV/SpvTools.cpp",
"SPIRV/disassemble.cpp",
"SPIRV/doc.cpp",
- "SPIRV/SPVRemapper.cpp",
- "SPIRV/SpvPostProcess.cpp",
+ "SPIRV/GlslangToSpv.cpp",
+ "SPIRV/InReadableOrder.cpp",
"SPIRV/Logger.cpp",
+ "SPIRV/SpvBuilder.cpp",
+ "SPIRV/SpvPostProcess.cpp",
+ "SPIRV/SPVRemapper.cpp",
+ "SPIRV/SpvTools.cpp",
"StandAlone/ResourceLimits.cpp",
]
diff --git a/modules/gltf/doc_classes/EditorSceneImporterGLTF.xml b/modules/gltf/doc_classes/EditorSceneImporterGLTF.xml
index e717b30f73..c85fce7b9d 100644
--- a/modules/gltf/doc_classes/EditorSceneImporterGLTF.xml
+++ b/modules/gltf/doc_classes/EditorSceneImporterGLTF.xml
@@ -6,8 +6,4 @@
</description>
<tutorials>
</tutorials>
- <methods>
- </methods>
- <constants>
- </constants>
</class>
diff --git a/modules/gltf/doc_classes/GLTFAccessor.xml b/modules/gltf/doc_classes/GLTFAccessor.xml
index 41a318ce19..ae81cae81a 100644
--- a/modules/gltf/doc_classes/GLTFAccessor.xml
+++ b/modules/gltf/doc_classes/GLTFAccessor.xml
@@ -6,8 +6,6 @@
</description>
<tutorials>
</tutorials>
- <methods>
- </methods>
<members>
<member name="buffer_view" type="int" setter="set_buffer_view" getter="get_buffer_view" default="0">
</member>
@@ -38,6 +36,4 @@
<member name="type" type="int" setter="set_type" getter="get_type" default="0">
</member>
</members>
- <constants>
- </constants>
</class>
diff --git a/modules/gltf/doc_classes/GLTFAnimation.xml b/modules/gltf/doc_classes/GLTFAnimation.xml
index 5c1fa02f11..70480c2b38 100644
--- a/modules/gltf/doc_classes/GLTFAnimation.xml
+++ b/modules/gltf/doc_classes/GLTFAnimation.xml
@@ -6,12 +6,8 @@
</description>
<tutorials>
</tutorials>
- <methods>
- </methods>
<members>
<member name="loop" type="bool" setter="set_loop" getter="get_loop" default="false">
</member>
</members>
- <constants>
- </constants>
</class>
diff --git a/modules/gltf/doc_classes/GLTFBufferView.xml b/modules/gltf/doc_classes/GLTFBufferView.xml
index edaad85e0a..f58aa46508 100644
--- a/modules/gltf/doc_classes/GLTFBufferView.xml
+++ b/modules/gltf/doc_classes/GLTFBufferView.xml
@@ -6,8 +6,6 @@
</description>
<tutorials>
</tutorials>
- <methods>
- </methods>
<members>
<member name="buffer" type="int" setter="set_buffer" getter="get_buffer" default="-1">
</member>
@@ -20,6 +18,4 @@
<member name="indices" type="bool" setter="set_indices" getter="get_indices" default="false">
</member>
</members>
- <constants>
- </constants>
</class>
diff --git a/modules/gltf/doc_classes/GLTFCamera.xml b/modules/gltf/doc_classes/GLTFCamera.xml
index ec25d84756..3682df5951 100644
--- a/modules/gltf/doc_classes/GLTFCamera.xml
+++ b/modules/gltf/doc_classes/GLTFCamera.xml
@@ -6,8 +6,6 @@
</description>
<tutorials>
</tutorials>
- <methods>
- </methods>
<members>
<member name="depth_far" type="float" setter="set_depth_far" getter="get_depth_far" default="4000.0">
</member>
@@ -18,6 +16,4 @@
<member name="perspective" type="bool" setter="set_perspective" getter="get_perspective" default="true">
</member>
</members>
- <constants>
- </constants>
</class>
diff --git a/modules/gltf/doc_classes/GLTFDocument.xml b/modules/gltf/doc_classes/GLTFDocument.xml
index f8e0007684..16e649f390 100644
--- a/modules/gltf/doc_classes/GLTFDocument.xml
+++ b/modules/gltf/doc_classes/GLTFDocument.xml
@@ -30,6 +30,4 @@
</description>
</method>
</methods>
- <constants>
- </constants>
</class>
diff --git a/modules/gltf/doc_classes/GLTFLight.xml b/modules/gltf/doc_classes/GLTFLight.xml
index 2eb5ee9070..b4f03cd1ed 100644
--- a/modules/gltf/doc_classes/GLTFLight.xml
+++ b/modules/gltf/doc_classes/GLTFLight.xml
@@ -6,22 +6,26 @@
</description>
<tutorials>
</tutorials>
- <methods>
- </methods>
<members>
- <member name="color" type="Color" setter="set_color" getter="get_color" default="Color(0, 0, 0, 1)">
+ <member name="color" type="Color" setter="set_color" getter="get_color" default="Color(1, 1, 1, 1)">
+ The [Color] of the light. Defaults to white. A black color causes the light to have no effect.
</member>
<member name="inner_cone_angle" type="float" setter="set_inner_cone_angle" getter="get_inner_cone_angle" default="0.0">
+ The inner angle of the cone in a spotlight. Must be less than or equal to the outer cone angle.
+ Within this angle, the light is at full brightness. Between the inner and outer cone angles, there is a transition from full brightness to zero brightness. When creating a Godot [SpotLight3D], the ratio between the inner and outer cone angles is used to calculate the attenuation of the light.
</member>
- <member name="intensity" type="float" setter="set_intensity" getter="get_intensity" default="0.0">
+ <member name="intensity" type="float" setter="set_intensity" getter="get_intensity" default="1.0">
+ The intensity of the light. This is expressed in candelas (lumens per steradian) for point and spot lights, and lux (lumens per m²) for directional lights. When creating a Godot light, this value is converted to a unitless multiplier.
</member>
<member name="light_type" type="String" setter="set_light_type" getter="get_light_type" default="&quot;&quot;">
+ The type of the light. The values accepted by Godot are "point", "spot", and "directional", which correspond to Godot's [OmniLight3D], [SpotLight3D], and [DirectionalLight3D] respectively.
</member>
- <member name="outer_cone_angle" type="float" setter="set_outer_cone_angle" getter="get_outer_cone_angle" default="0.0">
+ <member name="outer_cone_angle" type="float" setter="set_outer_cone_angle" getter="get_outer_cone_angle" default="0.785398">
+ The outer angle of the cone in a spotlight. Must be greater than or equal to the inner angle.
+ At this angle, the light drops off to zero brightness. Between the inner and outer cone angles, there is a transition from full brightness to zero brightness. If this angle is a half turn, then the spotlight emits in all directions. When creating a Godot [SpotLight3D], the outer cone angle is used as the angle of the spotlight.
</member>
- <member name="range" type="float" setter="set_range" getter="get_range" default="0.0">
+ <member name="range" type="float" setter="set_range" getter="get_range" default="inf">
+ The range of the light, beyond which the light has no effect. GLTF lights with no range defined behave like physical lights (which have infinite range). When creating a Godot light, the range is clamped to 4096.
</member>
</members>
- <constants>
- </constants>
</class>
diff --git a/modules/gltf/doc_classes/GLTFMesh.xml b/modules/gltf/doc_classes/GLTFMesh.xml
index fd7e4a169e..51e9fc032a 100644
--- a/modules/gltf/doc_classes/GLTFMesh.xml
+++ b/modules/gltf/doc_classes/GLTFMesh.xml
@@ -6,14 +6,10 @@
</description>
<tutorials>
</tutorials>
- <methods>
- </methods>
<members>
<member name="blend_weights" type="PackedFloat32Array" setter="set_blend_weights" getter="get_blend_weights" default="PackedFloat32Array()">
</member>
<member name="mesh" type="EditorSceneImporterMesh" setter="set_mesh" getter="get_mesh">
</member>
</members>
- <constants>
- </constants>
</class>
diff --git a/modules/gltf/doc_classes/GLTFNode.xml b/modules/gltf/doc_classes/GLTFNode.xml
index 95d7283398..f27965ea07 100644
--- a/modules/gltf/doc_classes/GLTFNode.xml
+++ b/modules/gltf/doc_classes/GLTFNode.xml
@@ -6,8 +6,6 @@
</description>
<tutorials>
</tutorials>
- <methods>
- </methods>
<members>
<member name="camera" type="int" setter="set_camera" getter="get_camera" default="-1">
</member>
@@ -36,6 +34,4 @@
<member name="xform" type="Transform3D" setter="set_xform" getter="get_xform" default="Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0)">
</member>
</members>
- <constants>
- </constants>
</class>
diff --git a/modules/gltf/doc_classes/GLTFSkeleton.xml b/modules/gltf/doc_classes/GLTFSkeleton.xml
index 6e83cec252..037c3545a6 100644
--- a/modules/gltf/doc_classes/GLTFSkeleton.xml
+++ b/modules/gltf/doc_classes/GLTFSkeleton.xml
@@ -52,6 +52,4 @@
<member name="roots" type="PackedInt32Array" setter="set_roots" getter="get_roots" default="PackedInt32Array()">
</member>
</members>
- <constants>
- </constants>
</class>
diff --git a/modules/gltf/doc_classes/GLTFSkin.xml b/modules/gltf/doc_classes/GLTFSkin.xml
index 107ca960cd..ad4f017584 100644
--- a/modules/gltf/doc_classes/GLTFSkin.xml
+++ b/modules/gltf/doc_classes/GLTFSkin.xml
@@ -57,6 +57,4 @@
<member name="skin_root" type="int" setter="set_skin_root" getter="get_skin_root" default="-1">
</member>
</members>
- <constants>
- </constants>
</class>
diff --git a/modules/gltf/doc_classes/GLTFSpecGloss.xml b/modules/gltf/doc_classes/GLTFSpecGloss.xml
index 6e9c419649..6b8f86ed1c 100644
--- a/modules/gltf/doc_classes/GLTFSpecGloss.xml
+++ b/modules/gltf/doc_classes/GLTFSpecGloss.xml
@@ -6,8 +6,6 @@
</description>
<tutorials>
</tutorials>
- <methods>
- </methods>
<members>
<member name="diffuse_factor" type="Color" setter="set_diffuse_factor" getter="get_diffuse_factor" default="Color(1, 1, 1, 1)">
</member>
@@ -20,6 +18,4 @@
<member name="specular_factor" type="Color" setter="set_specular_factor" getter="get_specular_factor" default="Color(1, 1, 1, 1)">
</member>
</members>
- <constants>
- </constants>
</class>
diff --git a/modules/gltf/doc_classes/GLTFState.xml b/modules/gltf/doc_classes/GLTFState.xml
index ae976fc04c..6d03d0ecf8 100644
--- a/modules/gltf/doc_classes/GLTFState.xml
+++ b/modules/gltf/doc_classes/GLTFState.xml
@@ -209,6 +209,4 @@
<member name="use_named_skin_binds" type="bool" setter="set_use_named_skin_binds" getter="get_use_named_skin_binds" default="false">
</member>
</members>
- <constants>
- </constants>
</class>
diff --git a/modules/gltf/doc_classes/GLTFTexture.xml b/modules/gltf/doc_classes/GLTFTexture.xml
index 33bd8fddeb..7c88d2318e 100644
--- a/modules/gltf/doc_classes/GLTFTexture.xml
+++ b/modules/gltf/doc_classes/GLTFTexture.xml
@@ -6,12 +6,8 @@
</description>
<tutorials>
</tutorials>
- <methods>
- </methods>
<members>
<member name="src_image" type="int" setter="set_src_image" getter="get_src_image" default="0">
</member>
</members>
- <constants>
- </constants>
</class>
diff --git a/modules/gltf/gltf_document.cpp b/modules/gltf/gltf_document.cpp
index df2856ec7c..5f2e8d4ba6 100644
--- a/modules/gltf/gltf_document.cpp
+++ b/modules/gltf/gltf_document.cpp
@@ -78,7 +78,10 @@
Error GLTFDocument::serialize(Ref<GLTFState> state, Node *p_root, const String &p_path) {
uint64_t begin_time = OS::get_singleton()->get_ticks_usec();
- _convert_scene_node(state, p_root, p_root, -1, -1);
+ state->skeleton3d_to_gltf_skeleton.clear();
+ state->skin_and_skeleton3d_to_gltf_skin.clear();
+
+ _convert_scene_node(state, p_root, -1, -1);
if (!state->buffers.size()) {
state->buffers.push_back(Vector<uint8_t>());
}
@@ -97,11 +100,7 @@ Error GLTFDocument::serialize(Ref<GLTFState> state, Node *p_root, const String &
if (err != OK) {
return Error::FAILED;
}
- /* STEP 4 CREATE BONE ATTACHMENTS */
- err = _serialize_bone_attachment(state);
- if (err != OK) {
- return Error::FAILED;
- }
+
/* STEP 5 SERIALIZE MESHES (we have enough info now) */
err = _serialize_meshes(state);
if (err != OK) {
@@ -249,30 +248,6 @@ Error GLTFDocument::_parse_json(const String &p_path, Ref<GLTFState> state) {
return OK;
}
-Error GLTFDocument::_serialize_bone_attachment(Ref<GLTFState> state) {
- for (int skeleton_i = 0; skeleton_i < state->skeletons.size(); skeleton_i++) {
- for (int attachment_i = 0; attachment_i < state->skeletons[skeleton_i]->bone_attachments.size(); attachment_i++) {
- BoneAttachment3D *bone_attachment = state->skeletons[skeleton_i]->bone_attachments[attachment_i];
- String bone_name = bone_attachment->get_bone_name();
- bone_name = _sanitize_bone_name(bone_name);
- int32_t bone = state->skeletons[skeleton_i]->godot_skeleton->find_bone(bone_name);
- ERR_CONTINUE(bone == -1);
- for (int skin_i = 0; skin_i < state->skins.size(); skin_i++) {
- if (state->skins[skin_i]->skeleton != skeleton_i) {
- continue;
- }
-
- for (int node_i = 0; node_i < bone_attachment->get_child_count(); node_i++) {
- ERR_CONTINUE(bone >= state->skins[skin_i]->joints.size());
- _convert_scene_node(state, bone_attachment->get_child(node_i), bone_attachment->get_owner(), state->skins[skin_i]->joints[bone], 0);
- }
- break;
- }
- }
- }
- return OK;
-}
-
Error GLTFDocument::_parse_glb(const String &p_path, Ref<GLTFState> state) {
Error err;
FileAccessRef f = FileAccess::open(p_path, FileAccess::READ, &err);
@@ -2131,11 +2106,14 @@ Error GLTFDocument::_serialize_meshes(Ref<GLTFState> state) {
continue;
}
Array primitives;
- Array targets;
Dictionary gltf_mesh;
Array target_names;
Array weights;
+ for (int morph_i = 0; morph_i < import_mesh->get_blend_shape_count(); morph_i++) {
+ target_names.push_back(import_mesh->get_blend_shape_name(morph_i));
+ }
for (int surface_i = 0; surface_i < import_mesh->get_surface_count(); surface_i++) {
+ Array targets;
Dictionary primitive;
Mesh::PrimitiveType primitive_type = import_mesh->get_surface_primitive_type(surface_i);
switch (primitive_type) {
@@ -2337,10 +2315,10 @@ Error GLTFDocument::_serialize_meshes(Ref<GLTFState> state) {
const Array &a = array[Mesh::ARRAY_WEIGHTS];
const Vector<Vector3> &vertex_array = array[Mesh::ARRAY_VERTEX];
if ((a.size() / JOINT_GROUP_SIZE) == vertex_array.size()) {
- const int ret_size = a.size() / JOINT_GROUP_SIZE;
+ int32_t vertex_count = vertex_array.size();
Vector<Color> attribs;
- attribs.resize(ret_size);
- for (int i = 0; i < ret_size; i++) {
+ attribs.resize(vertex_count);
+ for (int i = 0; i < vertex_count; i++) {
attribs.write[i] = Color(a[(i * JOINT_GROUP_SIZE) + 0], a[(i * JOINT_GROUP_SIZE) + 1], a[(i * JOINT_GROUP_SIZE) + 2], a[(i * JOINT_GROUP_SIZE) + 3]);
}
attributes["WEIGHTS_0"] = _encode_accessor_as_weights(state, attribs, true);
@@ -2410,7 +2388,6 @@ Error GLTFDocument::_serialize_meshes(Ref<GLTFState> state) {
ArrayMesh::BlendShapeMode shape_mode = import_mesh->get_blend_shape_mode();
for (int morph_i = 0; morph_i < import_mesh->get_blend_shape_count(); morph_i++) {
Array array_morph = import_mesh->get_surface_blend_shape_arrays(surface_i, morph_i);
- target_names.push_back(import_mesh->get_blend_shape_name(morph_i));
Dictionary t;
Vector<Vector3> varr = array_morph[Mesh::ARRAY_VERTEX];
Array mesh_arrays = import_mesh->get_surface_arrays(surface_i);
@@ -2427,22 +2404,21 @@ Error GLTFDocument::_serialize_meshes(Ref<GLTFState> state) {
}
Vector<Vector3> narr = array_morph[Mesh::ARRAY_NORMAL];
- if (varr.size()) {
+ if (narr.size()) {
t["NORMAL"] = _encode_accessor_as_vec3(state, narr, true);
}
Vector<real_t> tarr = array_morph[Mesh::ARRAY_TANGENT];
if (tarr.size()) {
const int ret_size = tarr.size() / 4;
- Vector<Color> attribs;
+ Vector<Vector3> attribs;
attribs.resize(ret_size);
for (int i = 0; i < ret_size; i++) {
- Color tangent;
- tangent.r = tarr[(i * 4) + 0];
- tangent.g = tarr[(i * 4) + 1];
- tangent.b = tarr[(i * 4) + 2];
- tangent.a = tarr[(i * 4) + 3];
+ Vector3 vec3;
+ vec3.x = tarr[(i * 4) + 0];
+ vec3.y = tarr[(i * 4) + 1];
+ vec3.z = tarr[(i * 4) + 2];
}
- t["TANGENT"] = _encode_accessor_as_color(state, attribs, true);
+ t["TANGENT"] = _encode_accessor_as_vec3(state, attribs, true);
}
targets.push_back(t);
}
@@ -2471,12 +2447,13 @@ Error GLTFDocument::_serialize_meshes(Ref<GLTFState> state) {
Dictionary e;
e["targetNames"] = target_names;
- for (int j = 0; j < target_names.size(); j++) {
+ weights.resize(target_names.size());
+ for (int name_i = 0; name_i < target_names.size(); name_i++) {
real_t weight = 0.0;
- if (j < state->meshes.write[gltf_mesh_i]->get_blend_weights().size()) {
- weight = state->meshes.write[gltf_mesh_i]->get_blend_weights()[j];
+ if (name_i < state->meshes.write[gltf_mesh_i]->get_blend_weights().size()) {
+ weight = state->meshes.write[gltf_mesh_i]->get_blend_weights()[name_i];
}
- weights.push_back(weight);
+ weights[name_i] = weight;
}
if (weights.size()) {
gltf_mesh["weights"] = weights;
@@ -3757,10 +3734,7 @@ void GLTFDocument::spec_gloss_to_metal_base_color(const Color &p_specular_factor
r_base_color.g = Math::lerp(base_color_from_diffuse.g, base_color_from_specular.g, r_metallic * r_metallic);
r_base_color.b = Math::lerp(base_color_from_diffuse.b, base_color_from_specular.b, r_metallic * r_metallic);
r_base_color.a = p_diffuse.a;
- r_base_color.r = CLAMP(r_base_color.r, 0.0f, 1.0f);
- r_base_color.g = CLAMP(r_base_color.g, 0.0f, 1.0f);
- r_base_color.b = CLAMP(r_base_color.b, 0.0f, 1.0f);
- r_base_color.a = CLAMP(r_base_color.a, 0.0f, 1.0f);
+ r_base_color = r_base_color.clamp();
}
GLTFNodeIndex GLTFDocument::_find_highest_node(Ref<GLTFState> state, const Vector<GLTFNodeIndex> &subset) {
@@ -4288,6 +4262,7 @@ Error GLTFDocument::_create_skeletons(Ref<GLTFState> state) {
Skeleton3D *skeleton = memnew(Skeleton3D);
gltf_skeleton->godot_skeleton = skeleton;
+ state->skeleton3d_to_gltf_skeleton[skeleton->get_instance_id()] = skel_i;
// Make a unique name, no gltf node represents this skeleton
skeleton->set_name(_gen_unique_name(state, "Skeleton3D"));
@@ -4373,6 +4348,16 @@ Error GLTFDocument::_map_skin_joints_indices_to_skeleton_bone_indices(Ref<GLTFSt
Error GLTFDocument::_serialize_skins(Ref<GLTFState> state) {
_remove_duplicate_skins(state);
+ Array json_skins;
+ for (int skin_i = 0; skin_i < state->skins.size(); skin_i++) {
+ Ref<GLTFSkin> gltf_skin = state->skins[skin_i];
+ Dictionary json_skin;
+ json_skin["inverseBindMatrices"] = _encode_accessor_as_xform(state, gltf_skin->inverse_binds, false);
+ json_skin["joints"] = gltf_skin->get_joints();
+ json_skin["name"] = gltf_skin->get_name();
+ json_skins.push_back(json_skin);
+ }
+ state->json["skins"] = json_skins;
return OK;
}
@@ -4751,30 +4736,74 @@ Error GLTFDocument::_serialize_animations(Ref<GLTFState> state) {
channels.push_back(t);
}
if (track.weight_tracks.size()) {
+ double length = 0.0f;
+
+ for (int32_t track_idx = 0; track_idx < track.weight_tracks.size(); track_idx++) {
+ int32_t last_time_index = track.weight_tracks[track_idx].times.size() - 1;
+ length = MAX(length, track.weight_tracks[track_idx].times[last_time_index]);
+ }
+
Dictionary t;
t["sampler"] = samplers.size();
Dictionary s;
-
Vector<real_t> times;
- Vector<real_t> values;
+ const double increment = 1.0 / BAKE_FPS;
+ {
+ double time = 0.0;
+ bool last = false;
+ while (true) {
+ times.push_back(time);
+ if (last) {
+ break;
+ }
+ time += increment;
+ if (time >= length) {
+ last = true;
+ time = length;
+ }
+ }
+ }
- for (int32_t times_i = 0; times_i < track.weight_tracks[0].times.size(); times_i++) {
- real_t time = track.weight_tracks[0].times[times_i];
- times.push_back(time);
+ for (int32_t track_idx = 0; track_idx < track.weight_tracks.size(); track_idx++) {
+ double time = 0.0;
+ bool last = false;
+ Vector<real_t> weight_track;
+ while (true) {
+ float weight = _interpolate_track<float>(track.weight_tracks[track_idx].times,
+ track.weight_tracks[track_idx].values,
+ time,
+ track.weight_tracks[track_idx].interpolation);
+ weight_track.push_back(weight);
+ if (last) {
+ break;
+ }
+ time += increment;
+ if (time >= length) {
+ last = true;
+ time = length;
+ }
+ }
+ track.weight_tracks.write[track_idx].times = times;
+ track.weight_tracks.write[track_idx].values = weight_track;
}
- values.resize(times.size() * track.weight_tracks.size());
- // TODO Sort by order in blend shapes
+ Vector<real_t> all_track_times = times;
+ Vector<real_t> all_track_values;
+ int32_t values_size = track.weight_tracks[0].values.size();
+ int32_t weight_tracks_size = track.weight_tracks.size();
+ all_track_values.resize(weight_tracks_size * values_size);
for (int k = 0; k < track.weight_tracks.size(); k++) {
Vector<float> wdata = track.weight_tracks[k].values;
for (int l = 0; l < wdata.size(); l++) {
- values.write[l * track.weight_tracks.size() + k] = wdata.write[l];
+ int32_t index = l * weight_tracks_size + k;
+ ERR_BREAK(index >= all_track_values.size());
+ all_track_values.write[index] = wdata.write[l];
}
}
s["interpolation"] = interpolation_to_string(track.weight_tracks[track.weight_tracks.size() - 1].interpolation);
- s["input"] = _encode_accessor_as_floats(state, times, false);
- s["output"] = _encode_accessor_as_floats(state, values, false);
+ s["input"] = _encode_accessor_as_floats(state, all_track_times, false);
+ s["output"] = _encode_accessor_as_floats(state, all_track_values, false);
samplers.push_back(s);
@@ -4908,7 +4937,7 @@ Error GLTFDocument::_parse_animations(Ref<GLTFState> state) {
track->weight_tracks.resize(wc);
const int expected_value_count = times.size() * output_count * wc;
- ERR_FAIL_COND_V_MSG(weights.size() != expected_value_count, ERR_PARSE_ERROR, "Invalid weight data, expected " + itos(expected_value_count) + " weight values, got " + itos(weights.size()) + " instead.");
+ ERR_CONTINUE_MSG(weights.size() != expected_value_count, "Invalid weight data, expected " + itos(expected_value_count) + " weight values, got " + itos(weights.size()) + " instead.");
const int wlen = weights.size() / wc;
for (int k = 0; k < wc; k++) { //separate tracks, having them together is not such a good idea
@@ -4973,7 +5002,7 @@ BoneAttachment3D *GLTFDocument::_generate_bone_attachment(Ref<GLTFState> state,
return bone_attachment;
}
-GLTFMeshIndex GLTFDocument::_convert_mesh_instance(Ref<GLTFState> state, MeshInstance3D *p_mesh_instance) {
+GLTFMeshIndex GLTFDocument::_convert_mesh_to_gltf(Ref<GLTFState> state, MeshInstance3D *p_mesh_instance) {
ERR_FAIL_NULL_V(p_mesh_instance, -1);
if (p_mesh_instance->get_mesh().is_null()) {
return -1;
@@ -5074,7 +5103,7 @@ Node3D *GLTFDocument::_generate_light(Ref<GLTFState> state, Node *scene_parent,
const float range = CLAMP(l->range, 0, 4096);
// Doubling the range will double the effective brightness, so we need double attenuation (half brightness).
// We want to have double intensity give double brightness, so we need half the attenuation.
- const float attenuation = range / intensity;
+ const float attenuation = range / (intensity * 2048);
if (l->light_type == "point") {
OmniLight3D *light = memnew(OmniLight3D);
light->set_param(OmniLight3D::PARAM_ATTENUATION, attenuation);
@@ -5150,13 +5179,13 @@ GLTFLightIndex GLTFDocument::_convert_light(Ref<GLTFState> state, Light3D *p_lig
OmniLight3D *light = cast_to<OmniLight3D>(p_light);
l->range = light->get_param(OmniLight3D::PARAM_RANGE);
float attenuation = p_light->get_param(OmniLight3D::PARAM_ATTENUATION);
- l->intensity = l->range / attenuation;
+ l->intensity = l->range / (attenuation * 2048);
} else if (cast_to<SpotLight3D>(p_light)) {
l->light_type = "spot";
SpotLight3D *light = cast_to<SpotLight3D>(p_light);
l->range = light->get_param(SpotLight3D::PARAM_RANGE);
float attenuation = light->get_param(SpotLight3D::PARAM_ATTENUATION);
- l->intensity = l->range / attenuation;
+ l->intensity = l->range / (attenuation * 2048);
l->outer_cone_angle = Math::deg2rad(light->get_param(SpotLight3D::PARAM_SPOT_ANGLE));
// This equation is the inverse of the import equation (which has a desmos link).
@@ -5170,17 +5199,6 @@ GLTFLightIndex GLTFDocument::_convert_light(Ref<GLTFState> state, Light3D *p_lig
return light_index;
}
-GLTFSkeletonIndex GLTFDocument::_convert_skeleton(Ref<GLTFState> state, Skeleton3D *p_skeleton) {
- print_verbose("glTF: Converting skeleton: " + p_skeleton->get_name());
- Ref<GLTFSkeleton> gltf_skeleton;
- gltf_skeleton.instantiate();
- gltf_skeleton->set_name(_gen_unique_name(state, p_skeleton->get_name()));
- gltf_skeleton->godot_skeleton = p_skeleton;
- GLTFSkeletonIndex skeleton_i = state->skeletons.size();
- state->skeletons.push_back(gltf_skeleton);
- return skeleton_i;
-}
-
void GLTFDocument::_convert_spatial(Ref<GLTFState> state, Node3D *p_spatial, Ref<GLTFNode> p_node) {
Transform3D xform = p_spatial->get_transform();
p_node->scale = xform.basis.get_scale();
@@ -5196,7 +5214,7 @@ Node3D *GLTFDocument::_generate_spatial(Ref<GLTFState> state, Node *scene_parent
return spatial;
}
-void GLTFDocument::_convert_scene_node(Ref<GLTFState> state, Node *p_current, Node *p_root, const GLTFNodeIndex p_gltf_parent, const GLTFNodeIndex p_gltf_root) {
+void GLTFDocument::_convert_scene_node(Ref<GLTFState> state, Node *p_current, const GLTFNodeIndex p_gltf_parent, const GLTFNodeIndex p_gltf_root) {
bool retflag = true;
_check_visibility(p_current, retflag);
if (retflag) {
@@ -5210,37 +5228,41 @@ void GLTFDocument::_convert_scene_node(Ref<GLTFState> state, Node *p_current, No
_convert_spatial(state, spatial, gltf_node);
}
if (cast_to<MeshInstance3D>(p_current)) {
- Node3D *spatial = cast_to<Node3D>(p_current);
- _convert_mesh_to_gltf(p_current, state, spatial, gltf_node);
+ MeshInstance3D *mi = cast_to<MeshInstance3D>(p_current);
+ _convert_mesh_instance_to_gltf(mi, state, gltf_node);
} else if (cast_to<BoneAttachment3D>(p_current)) {
- _convert_bone_attachment_to_gltf(p_current, state, gltf_node, retflag);
- // TODO 2020-12-21 iFire Handle the case of objects under the bone attachment.
+ BoneAttachment3D *bone = cast_to<BoneAttachment3D>(p_current);
+ _convert_bone_attachment_to_gltf(bone, state, p_gltf_parent, p_gltf_root, gltf_node);
return;
} else if (cast_to<Skeleton3D>(p_current)) {
- _convert_skeleton_to_gltf(p_current, state, p_gltf_parent, p_gltf_root, gltf_node, p_root);
+ Skeleton3D *skel = cast_to<Skeleton3D>(p_current);
+ _convert_skeleton_to_gltf(skel, state, p_gltf_parent, p_gltf_root, gltf_node);
// We ignore the Godot Engine node that is the skeleton.
return;
} else if (cast_to<MultiMeshInstance3D>(p_current)) {
- _convert_mult_mesh_instance_to_gltf(p_current, p_gltf_parent, p_gltf_root, gltf_node, state, p_root);
+ MultiMeshInstance3D *multi = cast_to<MultiMeshInstance3D>(p_current);
+ _convert_mult_mesh_instance_to_gltf(multi, p_gltf_parent, p_gltf_root, gltf_node, state);
#ifdef MODULE_CSG_ENABLED
} else if (cast_to<CSGShape3D>(p_current)) {
- if (p_current->get_parent() && cast_to<CSGShape3D>(p_current)->is_root_shape()) {
- _convert_csg_shape_to_gltf(p_current, p_gltf_parent, gltf_node, state);
+ CSGShape3D *shape = cast_to<CSGShape3D>(p_current);
+ if (shape->get_parent() && shape->is_root_shape()) {
+ _convert_csg_shape_to_gltf(shape, p_gltf_parent, gltf_node, state);
}
#endif // MODULE_CSG_ENABLED
#ifdef MODULE_GRIDMAP_ENABLED
} else if (cast_to<GridMap>(p_current)) {
- _convert_grid_map_to_gltf(p_current, p_gltf_parent, p_gltf_root, gltf_node, state, p_root);
+ GridMap *gridmap = Object::cast_to<GridMap>(p_current);
+ _convert_grid_map_to_gltf(gridmap, p_gltf_parent, p_gltf_root, gltf_node, state);
#endif // MODULE_GRIDMAP_ENABLED
} else if (cast_to<Camera3D>(p_current)) {
Camera3D *camera = Object::cast_to<Camera3D>(p_current);
- _convert_camera_to_gltf(camera, state, camera, gltf_node);
+ _convert_camera_to_gltf(camera, state, gltf_node);
} else if (cast_to<Light3D>(p_current)) {
Light3D *light = Object::cast_to<Light3D>(p_current);
- _convert_light_to_gltf(light, state, light, gltf_node);
+ _convert_light_to_gltf(light, state, gltf_node);
} else if (cast_to<AnimationPlayer>(p_current)) {
AnimationPlayer *animation_player = Object::cast_to<AnimationPlayer>(p_current);
- _convert_animation_player_to_gltf(animation_player, state, p_gltf_parent, p_gltf_root, gltf_node, p_current, p_root);
+ _convert_animation_player_to_gltf(animation_player, state, p_gltf_parent, p_gltf_root, gltf_node, p_current);
}
GLTFNodeIndex current_node_i = state->nodes.size();
GLTFNodeIndex gltf_root = p_gltf_root;
@@ -5252,13 +5274,13 @@ void GLTFDocument::_convert_scene_node(Ref<GLTFState> state, Node *p_current, No
}
_create_gltf_node(state, p_current, current_node_i, p_gltf_parent, gltf_root, gltf_node);
for (int node_i = 0; node_i < p_current->get_child_count(); node_i++) {
- _convert_scene_node(state, p_current->get_child(node_i), p_root, current_node_i, gltf_root);
+ _convert_scene_node(state, p_current->get_child(node_i), current_node_i, gltf_root);
}
}
#ifdef MODULE_CSG_ENABLED
-void GLTFDocument::_convert_csg_shape_to_gltf(Node *p_current, GLTFNodeIndex p_gltf_parent, Ref<GLTFNode> gltf_node, Ref<GLTFState> state) {
- CSGShape3D *csg = Object::cast_to<CSGShape3D>(p_current);
+void GLTFDocument::_convert_csg_shape_to_gltf(CSGShape3D *p_current, GLTFNodeIndex p_gltf_parent, Ref<GLTFNode> gltf_node, Ref<GLTFState> state) {
+ CSGShape3D *csg = p_current;
csg->call("_update_shape");
Array meshes = csg->get_meshes();
if (meshes.size() != 2) {
@@ -5289,16 +5311,15 @@ void GLTFDocument::_create_gltf_node(Ref<GLTFState> state, Node *p_scene_parent,
GLTFNodeIndex p_parent_node_index, GLTFNodeIndex p_root_gltf_node, Ref<GLTFNode> gltf_node) {
state->scene_nodes.insert(current_node_i, p_scene_parent);
state->nodes.push_back(gltf_node);
- if (current_node_i == p_parent_node_index) {
- return;
- }
+ ERR_FAIL_COND(current_node_i == p_parent_node_index);
+ state->nodes.write[current_node_i]->parent = p_parent_node_index;
if (p_parent_node_index == -1) {
return;
}
state->nodes.write[p_parent_node_index]->children.push_back(current_node_i);
}
-void GLTFDocument::_convert_animation_player_to_gltf(AnimationPlayer *animation_player, Ref<GLTFState> state, const GLTFNodeIndex &p_gltf_current, const GLTFNodeIndex &p_gltf_root_index, Ref<GLTFNode> p_gltf_node, Node *p_scene_parent, Node *p_root) {
+void GLTFDocument::_convert_animation_player_to_gltf(AnimationPlayer *animation_player, Ref<GLTFState> state, GLTFNodeIndex p_gltf_current, GLTFNodeIndex p_gltf_root_index, Ref<GLTFNode> p_gltf_node, Node *p_scene_parent) {
ERR_FAIL_COND(!animation_player);
state->animation_players.push_back(animation_player);
print_verbose(String("glTF: Converting animation player: ") + animation_player->get_name());
@@ -5317,7 +5338,7 @@ void GLTFDocument::_check_visibility(Node *p_node, bool &retflag) {
retflag = false;
}
-void GLTFDocument::_convert_camera_to_gltf(Camera3D *camera, Ref<GLTFState> state, Node3D *spatial, Ref<GLTFNode> gltf_node) {
+void GLTFDocument::_convert_camera_to_gltf(Camera3D *camera, Ref<GLTFState> state, Ref<GLTFNode> gltf_node) {
ERR_FAIL_COND(!camera);
GLTFCameraIndex camera_index = _convert_camera(state, camera);
if (camera_index != -1) {
@@ -5325,7 +5346,7 @@ void GLTFDocument::_convert_camera_to_gltf(Camera3D *camera, Ref<GLTFState> stat
}
}
-void GLTFDocument::_convert_light_to_gltf(Light3D *light, Ref<GLTFState> state, Node3D *spatial, Ref<GLTFNode> gltf_node) {
+void GLTFDocument::_convert_light_to_gltf(Light3D *light, Ref<GLTFState> state, Ref<GLTFNode> gltf_node) {
ERR_FAIL_COND(!light);
GLTFLightIndex light_index = _convert_light(state, light);
if (light_index != -1) {
@@ -5334,43 +5355,39 @@ void GLTFDocument::_convert_light_to_gltf(Light3D *light, Ref<GLTFState> state,
}
#ifdef MODULE_GRIDMAP_ENABLED
-void GLTFDocument::_convert_grid_map_to_gltf(Node *p_scene_parent, const GLTFNodeIndex &p_parent_node_index, const GLTFNodeIndex &p_root_node_index, Ref<GLTFNode> gltf_node, Ref<GLTFState> state, Node *p_root_node) {
- GridMap *grid_map = Object::cast_to<GridMap>(p_scene_parent);
- ERR_FAIL_COND(!grid_map);
- Array cells = grid_map->get_used_cells();
+void GLTFDocument::_convert_grid_map_to_gltf(GridMap *p_grid_map, GLTFNodeIndex p_parent_node_index, GLTFNodeIndex p_root_node_index, Ref<GLTFNode> gltf_node, Ref<GLTFState> state) {
+ Array cells = p_grid_map->get_used_cells();
for (int32_t k = 0; k < cells.size(); k++) {
GLTFNode *new_gltf_node = memnew(GLTFNode);
gltf_node->children.push_back(state->nodes.size());
state->nodes.push_back(new_gltf_node);
Vector3 cell_location = cells[k];
- int32_t cell = grid_map->get_cell_item(
+ int32_t cell = p_grid_map->get_cell_item(
Vector3(cell_location.x, cell_location.y, cell_location.z));
EditorSceneImporterMeshNode3D *import_mesh_node = memnew(EditorSceneImporterMeshNode3D);
- import_mesh_node->set_mesh(grid_map->get_mesh_library()->get_item_mesh(cell));
+ import_mesh_node->set_mesh(p_grid_map->get_mesh_library()->get_item_mesh(cell));
Transform3D cell_xform;
cell_xform.basis.set_orthogonal_index(
- grid_map->get_cell_item_orientation(
+ p_grid_map->get_cell_item_orientation(
Vector3(cell_location.x, cell_location.y, cell_location.z)));
- cell_xform.basis.scale(Vector3(grid_map->get_cell_scale(),
- grid_map->get_cell_scale(),
- grid_map->get_cell_scale()));
- cell_xform.set_origin(grid_map->map_to_world(
+ cell_xform.basis.scale(Vector3(p_grid_map->get_cell_scale(),
+ p_grid_map->get_cell_scale(),
+ p_grid_map->get_cell_scale()));
+ cell_xform.set_origin(p_grid_map->map_to_world(
Vector3(cell_location.x, cell_location.y, cell_location.z)));
Ref<GLTFMesh> gltf_mesh;
gltf_mesh.instantiate();
gltf_mesh = import_mesh_node;
new_gltf_node->mesh = state->meshes.size();
state->meshes.push_back(gltf_mesh);
- new_gltf_node->xform = cell_xform * grid_map->get_transform();
- new_gltf_node->set_name(_gen_unique_name(state, grid_map->get_mesh_library()->get_item_name(cell)));
+ new_gltf_node->xform = cell_xform * p_grid_map->get_transform();
+ new_gltf_node->set_name(_gen_unique_name(state, p_grid_map->get_mesh_library()->get_item_name(cell)));
}
}
#endif // MODULE_GRIDMAP_ENABLED
-void GLTFDocument::_convert_mult_mesh_instance_to_gltf(Node *p_scene_parent, const GLTFNodeIndex &p_parent_node_index, const GLTFNodeIndex &p_root_node_index, Ref<GLTFNode> gltf_node, Ref<GLTFState> state, Node *p_root_node) {
- MultiMeshInstance3D *multi_mesh_instance = Object::cast_to<MultiMeshInstance3D>(p_scene_parent);
- ERR_FAIL_COND(!multi_mesh_instance);
- Ref<MultiMesh> multi_mesh = multi_mesh_instance->get_multimesh();
+void GLTFDocument::_convert_mult_mesh_instance_to_gltf(MultiMeshInstance3D *p_multi_mesh_instance, GLTFNodeIndex p_parent_node_index, GLTFNodeIndex p_root_node_index, Ref<GLTFNode> gltf_node, Ref<GLTFState> state) {
+ Ref<MultiMesh> multi_mesh = p_multi_mesh_instance->get_multimesh();
if (multi_mesh.is_valid()) {
for (int32_t instance_i = 0; instance_i < multi_mesh->get_instance_count();
instance_i++) {
@@ -5386,9 +5403,9 @@ void GLTFDocument::_convert_mult_mesh_instance_to_gltf(Node *p_scene_parent, con
transform.basis.set_quaternion_scale(quaternion,
Vector3(scale.x, 0, scale.y));
transform =
- multi_mesh_instance->get_transform() * transform;
+ p_multi_mesh_instance->get_transform() * transform;
} else if (multi_mesh->get_transform_format() == MultiMesh::TRANSFORM_3D) {
- transform = multi_mesh_instance->get_transform() *
+ transform = p_multi_mesh_instance->get_transform() *
multi_mesh->get_instance_transform(instance_i);
}
Ref<ArrayMesh> mm = multi_mesh->get_mesh();
@@ -5408,56 +5425,102 @@ void GLTFDocument::_convert_mult_mesh_instance_to_gltf(Node *p_scene_parent, con
state->meshes.push_back(gltf_mesh);
}
new_gltf_node->xform = transform;
- new_gltf_node->set_name(_gen_unique_name(state, multi_mesh_instance->get_name()));
+ new_gltf_node->set_name(_gen_unique_name(state, p_multi_mesh_instance->get_name()));
gltf_node->children.push_back(state->nodes.size());
state->nodes.push_back(new_gltf_node);
}
}
}
-void GLTFDocument::_convert_skeleton_to_gltf(Node *p_scene_parent, Ref<GLTFState> state, const GLTFNodeIndex &p_parent_node_index, const GLTFNodeIndex &p_root_node_index, Ref<GLTFNode> gltf_node, Node *p_root_node) {
- Skeleton3D *skeleton = Object::cast_to<Skeleton3D>(p_scene_parent);
- if (skeleton) {
- // Remove placeholder skeleton3d node by not creating the gltf node
- // Skins are per mesh
- for (int node_i = 0; node_i < skeleton->get_child_count(); node_i++) {
- _convert_scene_node(state, skeleton->get_child(node_i), p_root_node, p_parent_node_index, p_root_node_index);
+void GLTFDocument::_convert_skeleton_to_gltf(Skeleton3D *p_skeleton3d, Ref<GLTFState> state, GLTFNodeIndex p_parent_node_index, GLTFNodeIndex p_root_node_index, Ref<GLTFNode> gltf_node) {
+ Skeleton3D *skeleton = p_skeleton3d;
+ Ref<GLTFSkeleton> gltf_skeleton;
+ gltf_skeleton.instantiate();
+ // GLTFSkeleton is only used to hold internal state data. It will not be written to the document.
+ //
+ gltf_skeleton->godot_skeleton = skeleton;
+ GLTFSkeletonIndex skeleton_i = state->skeletons.size();
+ state->skeleton3d_to_gltf_skeleton[skeleton->get_instance_id()] = skeleton_i;
+ state->skeletons.push_back(gltf_skeleton);
+
+ BoneId bone_count = skeleton->get_bone_count();
+ for (BoneId bone_i = 0; bone_i < bone_count; bone_i++) {
+ Ref<GLTFNode> joint_node;
+ joint_node.instantiate();
+ // Note that we cannot use _gen_unique_bone_name here, because glTF spec requires all node
+ // names to be unique regardless of whether or not they are used as joints.
+ joint_node->set_name(_gen_unique_name(state, skeleton->get_bone_name(bone_i)));
+ Transform3D xform = skeleton->get_bone_rest(bone_i) * skeleton->get_bone_pose(bone_i);
+ joint_node->scale = xform.basis.get_scale();
+ joint_node->rotation = xform.basis.get_rotation_quaternion();
+ joint_node->position = xform.origin;
+ joint_node->joint = true;
+ GLTFNodeIndex current_node_i = state->nodes.size();
+ state->scene_nodes.insert(current_node_i, skeleton);
+ state->nodes.push_back(joint_node);
+
+ gltf_skeleton->joints.push_back(current_node_i);
+ if (skeleton->get_bone_parent(bone_i) == -1) {
+ gltf_skeleton->roots.push_back(current_node_i);
+ }
+ gltf_skeleton->godot_bone_node.insert(bone_i, current_node_i);
+ }
+ for (BoneId bone_i = 0; bone_i < bone_count; bone_i++) {
+ GLTFNodeIndex current_node_i = gltf_skeleton->godot_bone_node[bone_i];
+ BoneId parent_bone_id = skeleton->get_bone_parent(bone_i);
+ if (parent_bone_id == -1) {
+ if (p_parent_node_index != -1) {
+ state->nodes.write[current_node_i]->parent = p_parent_node_index;
+ state->nodes.write[p_parent_node_index]->children.push_back(current_node_i);
+ }
+ } else {
+ GLTFNodeIndex parent_node_i = gltf_skeleton->godot_bone_node[parent_bone_id];
+ state->nodes.write[current_node_i]->parent = parent_node_i;
+ state->nodes.write[parent_node_i]->children.push_back(current_node_i);
}
}
+ // Remove placeholder skeleton3d node by not creating the gltf node
+ // Skins are per mesh
+ for (int node_i = 0; node_i < skeleton->get_child_count(); node_i++) {
+ _convert_scene_node(state, skeleton->get_child(node_i), p_parent_node_index, p_root_node_index);
+ }
}
-void GLTFDocument::_convert_bone_attachment_to_gltf(Node *p_scene_parent, Ref<GLTFState> state, Ref<GLTFNode> gltf_node, bool &retflag) {
- retflag = true;
- BoneAttachment3D *bone_attachment = Object::cast_to<BoneAttachment3D>(p_scene_parent);
- if (bone_attachment) {
- Node *node = bone_attachment->get_parent();
- while (node) {
- Skeleton3D *bone_attachment_skeleton = Object::cast_to<Skeleton3D>(node);
- if (bone_attachment_skeleton) {
- for (GLTFSkeletonIndex skeleton_i = 0; skeleton_i < state->skeletons.size(); skeleton_i++) {
- if (state->skeletons[skeleton_i]->godot_skeleton != bone_attachment_skeleton) {
- continue;
- }
- state->skeletons.write[skeleton_i]->bone_attachments.push_back(bone_attachment);
- break;
- }
- break;
- }
- node = node->get_parent();
+void GLTFDocument::_convert_bone_attachment_to_gltf(BoneAttachment3D *p_bone_attachment, Ref<GLTFState> state, GLTFNodeIndex p_parent_node_index, GLTFNodeIndex p_root_node_index, Ref<GLTFNode> gltf_node) {
+ Skeleton3D *skeleton;
+ // Note that relative transforms to external skeletons and pose overrides are not supported.
+ if (p_bone_attachment->get_use_external_skeleton()) {
+ skeleton = cast_to<Skeleton3D>(p_bone_attachment->get_node_or_null(p_bone_attachment->get_external_skeleton()));
+ } else {
+ skeleton = cast_to<Skeleton3D>(p_bone_attachment->get_parent());
+ }
+ GLTFSkeletonIndex skel_gltf_i = -1;
+ if (skeleton != nullptr && state->skeleton3d_to_gltf_skeleton.has(skeleton->get_instance_id())) {
+ skel_gltf_i = state->skeleton3d_to_gltf_skeleton[skeleton->get_instance_id()];
+ }
+ int bone_idx = -1;
+ if (skeleton != nullptr) {
+ bone_idx = p_bone_attachment->get_bone_idx();
+ if (bone_idx == -1) {
+ bone_idx = skeleton->find_bone(p_bone_attachment->get_bone_name());
}
- gltf_node.unref();
- return;
}
- retflag = false;
+ GLTFNodeIndex par_node_index = p_parent_node_index;
+ if (skeleton != nullptr && bone_idx != -1 && skel_gltf_i != -1) {
+ Ref<GLTFSkeleton> gltf_skeleton = state->skeletons.write[skel_gltf_i];
+ gltf_skeleton->bone_attachments.push_back(p_bone_attachment);
+ par_node_index = gltf_skeleton->joints[bone_idx];
+ }
+
+ for (int node_i = 0; node_i < p_bone_attachment->get_child_count(); node_i++) {
+ _convert_scene_node(state, p_bone_attachment->get_child(node_i), par_node_index, p_root_node_index);
+ }
}
-void GLTFDocument::_convert_mesh_to_gltf(Node *p_scene_parent, Ref<GLTFState> state, Node3D *spatial, Ref<GLTFNode> gltf_node) {
- MeshInstance3D *mi = Object::cast_to<MeshInstance3D>(p_scene_parent);
- if (mi) {
- GLTFMeshIndex gltf_mesh_index = _convert_mesh_instance(state, mi);
- if (gltf_mesh_index != -1) {
- gltf_node->mesh = gltf_mesh_index;
- }
+void GLTFDocument::_convert_mesh_instance_to_gltf(MeshInstance3D *p_scene_parent, Ref<GLTFState> state, Ref<GLTFNode> gltf_node) {
+ GLTFMeshIndex gltf_mesh_index = _convert_mesh_to_gltf(state, p_scene_parent);
+ if (gltf_mesh_index != -1) {
+ gltf_node->mesh = gltf_mesh_index;
}
}
@@ -5911,10 +5974,6 @@ void GLTFDocument::_convert_mesh_instances(Ref<GLTFState> state) {
if (node->mesh < 0) {
continue;
}
- Array json_skins;
- if (state->json.has("skins")) {
- json_skins = state->json["skins"];
- }
Map<GLTFNodeIndex, Node *>::Element *mi_element = state->scene_nodes.find(mi_node_i);
if (!mi_element) {
continue;
@@ -5926,7 +5985,6 @@ void GLTFDocument::_convert_mesh_instances(Ref<GLTFState> state) {
node->rotation = mi_xform.basis.get_rotation_quaternion();
node->position = mi_xform.origin;
- Dictionary json_skin;
Skeleton3D *skeleton = Object::cast_to<Skeleton3D>(mi->get_node(mi->get_skeleton_path()));
if (!skeleton) {
continue;
@@ -5935,121 +5993,75 @@ void GLTFDocument::_convert_mesh_instances(Ref<GLTFState> state) {
continue;
}
Ref<Skin> skin = mi->get_skin();
- if (skin.is_null()) {
- skin = skeleton->register_skin(nullptr)->get_skin();
- }
Ref<GLTFSkin> gltf_skin;
gltf_skin.instantiate();
Array json_joints;
- GLTFSkeletonIndex skeleton_gltf_i = -1;
NodePath skeleton_path = mi->get_skeleton_path();
- bool is_unique = true;
- for (int32_t skin_i = 0; skin_i < state->skins.size(); skin_i++) {
- Ref<GLTFSkin> prev_gltf_skin = state->skins.write[skin_i];
- if (gltf_skin.is_null()) {
- continue;
- }
- GLTFSkeletonIndex prev_skeleton = prev_gltf_skin->get_skeleton();
- if (prev_skeleton == -1 || prev_skeleton >= state->skeletons.size()) {
- continue;
- }
- if (prev_gltf_skin->get_godot_skin() == skin && state->skeletons[prev_skeleton]->godot_skeleton == skeleton) {
- node->skin = skin_i;
- node->skeleton = prev_skeleton;
- is_unique = false;
- break;
- }
- }
- if (!is_unique) {
- continue;
- }
- GLTFSkeletonIndex skeleton_i = _convert_skeleton(state, skeleton);
- skeleton_gltf_i = skeleton_i;
- ERR_CONTINUE(skeleton_gltf_i == -1);
- gltf_skin->skeleton = skeleton_gltf_i;
- Ref<GLTFSkeleton> gltf_skeleton = state->skeletons.write[skeleton_gltf_i];
- for (int32_t bind_i = 0; bind_i < skin->get_bind_count(); bind_i++) {
- String godot_bone_name = skin->get_bind_name(bind_i);
- if (godot_bone_name.is_empty()) {
- int32_t bone = skin->get_bind_bone(bind_i);
- godot_bone_name = skeleton->get_bone_name(bone);
- }
- if (skeleton->find_bone(godot_bone_name) == -1) {
- godot_bone_name = skeleton->get_bone_name(0);
- }
- BoneId bone_index = skeleton->find_bone(godot_bone_name);
- ERR_CONTINUE(bone_index == -1);
- Ref<GLTFNode> joint_node;
- joint_node.instantiate();
- String gltf_bone_name = _gen_unique_bone_name(state, skeleton_gltf_i, godot_bone_name);
- joint_node->set_name(gltf_bone_name);
-
- Transform3D bone_rest_xform = skeleton->get_bone_rest(bone_index);
- joint_node->scale = bone_rest_xform.basis.get_scale();
- joint_node->rotation = bone_rest_xform.basis.get_rotation_quaternion();
- joint_node->position = bone_rest_xform.origin;
- joint_node->joint = true;
-
- int32_t joint_node_i = state->nodes.size();
- state->nodes.push_back(joint_node);
- gltf_skeleton->godot_bone_node.insert(bone_index, joint_node_i);
- int32_t joint_index = gltf_skin->joints.size();
- gltf_skin->joint_i_to_bone_i.insert(joint_index, bone_index);
- gltf_skin->joints.push_back(joint_node_i);
- gltf_skin->joints_original.push_back(joint_node_i);
- gltf_skin->inverse_binds.push_back(skin->get_bind_pose(bind_i));
- json_joints.push_back(joint_node_i);
- for (Map<GLTFNodeIndex, Node *>::Element *skin_scene_node_i = state->scene_nodes.front(); skin_scene_node_i; skin_scene_node_i = skin_scene_node_i->next()) {
- if (skin_scene_node_i->get() == skeleton) {
- gltf_skin->skin_root = skin_scene_node_i->key();
- json_skin["skeleton"] = skin_scene_node_i->key();
- }
- }
- gltf_skin->godot_skin = skin;
- gltf_skin->set_name(_gen_unique_name(state, skin->get_name()));
- }
- for (int32_t bind_i = 0; bind_i < skin->get_bind_count(); bind_i++) {
- String bone_name = skeleton->get_bone_name(bind_i);
- String godot_bone_name = skin->get_bind_name(bind_i);
- int32_t bone = -1;
- if (skin->get_bind_bone(bind_i) != -1) {
- bone = skin->get_bind_bone(bind_i);
- godot_bone_name = skeleton->get_bone_name(bone);
- }
- bone = skeleton->find_bone(godot_bone_name);
- if (bone == -1) {
- continue;
- }
- BoneId bone_parent = skeleton->get_bone_parent(bone);
- GLTFNodeIndex joint_node_i = gltf_skeleton->godot_bone_node[bone];
- ERR_CONTINUE(joint_node_i >= state->nodes.size());
- if (bone_parent != -1) {
- GLTFNodeIndex parent_joint_gltf_node = gltf_skin->joints[bone_parent];
- Ref<GLTFNode> parent_joint_node = state->nodes.write[parent_joint_gltf_node];
- parent_joint_node->children.push_back(joint_node_i);
+ Node *skel_node = mi->get_node_or_null(skeleton_path);
+ Skeleton3D *godot_skeleton = nullptr;
+ if (skel_node != nullptr) {
+ godot_skeleton = cast_to<Skeleton3D>(skel_node);
+ }
+ if (godot_skeleton != nullptr && state->skeleton3d_to_gltf_skeleton.has(godot_skeleton->get_instance_id())) {
+ // This is a skinned mesh. If the mesh has no ARRAY_WEIGHTS or ARRAY_BONES, it will be invisible.
+ const GLTFSkeletonIndex skeleton_gltf_i = state->skeleton3d_to_gltf_skeleton[godot_skeleton->get_instance_id()];
+ Ref<GLTFSkeleton> gltf_skeleton = state->skeletons[skeleton_gltf_i];
+ int bone_cnt = skeleton->get_bone_count();
+ ERR_FAIL_COND(bone_cnt != gltf_skeleton->joints.size());
+
+ ObjectID gltf_skin_key = skin->get_instance_id();
+ ObjectID gltf_skel_key = godot_skeleton->get_instance_id();
+ GLTFSkinIndex skin_gltf_i = -1;
+ GLTFNodeIndex root_gltf_i = -1;
+ if (!gltf_skeleton->roots.is_empty()) {
+ root_gltf_i = gltf_skeleton->roots[0];
+ }
+ if (state->skin_and_skeleton3d_to_gltf_skin.has(gltf_skin_key) && state->skin_and_skeleton3d_to_gltf_skin[gltf_skin_key].has(gltf_skel_key)) {
+ skin_gltf_i = state->skin_and_skeleton3d_to_gltf_skin[gltf_skin_key][gltf_skel_key];
} else {
- Node *node_parent = skeleton->get_parent();
- ERR_CONTINUE(!node_parent);
- for (Map<GLTFNodeIndex, Node *>::Element *E = state->scene_nodes.front(); E; E = E->next()) {
- if (E->get() == node_parent) {
- GLTFNodeIndex gltf_node_i = E->key();
- Ref<GLTFNode> gltf_node = state->nodes.write[gltf_node_i];
- gltf_node->children.push_back(joint_node_i);
- break;
+ if (skin.is_null()) {
+ // Note that gltf_skin_key should remain null, so these can share a reference.
+ skin = skeleton->register_skin(nullptr)->get_skin();
+ }
+ gltf_skin.instantiate();
+ gltf_skin->godot_skin = skin;
+ gltf_skin->set_name(skin->get_name());
+ gltf_skin->skeleton = skeleton_gltf_i;
+ gltf_skin->skin_root = root_gltf_i;
+ //gltf_state->godot_to_gltf_node[skel_node]
+ HashMap<StringName, int> bone_name_to_idx;
+ for (int bone_i = 0; bone_i < bone_cnt; bone_i++) {
+ bone_name_to_idx[skeleton->get_bone_name(bone_i)] = bone_i;
+ }
+ for (int bind_i = 0, cnt = skin->get_bind_count(); bind_i < cnt; bind_i++) {
+ int bone_i = skin->get_bind_bone(bind_i);
+ Transform3D bind_pose = skin->get_bind_pose(bind_i);
+ StringName bind_name = skin->get_bind_name(bind_i);
+ if (bind_name != StringName()) {
+ bone_i = bone_name_to_idx[bind_name];
}
+ ERR_CONTINUE(bone_i < 0 || bone_i >= bone_cnt);
+ if (bind_name == StringName()) {
+ bind_name = skeleton->get_bone_name(bone_i);
+ }
+ GLTFNodeIndex skeleton_bone_i = gltf_skeleton->joints[bone_i];
+ gltf_skin->joints_original.push_back(skeleton_bone_i);
+ gltf_skin->joints.push_back(skeleton_bone_i);
+ gltf_skin->inverse_binds.push_back(bind_pose);
+ if (skeleton->get_bone_parent(bone_i) == -1) {
+ gltf_skin->roots.push_back(skeleton_bone_i);
+ }
+ gltf_skin->joint_i_to_bone_i[bind_i] = bone_i;
+ gltf_skin->joint_i_to_name[bind_i] = bind_name;
}
+ skin_gltf_i = state->skins.size();
+ state->skins.push_back(gltf_skin);
+ state->skin_and_skeleton3d_to_gltf_skin[gltf_skin_key][gltf_skel_key] = skin_gltf_i;
}
+ node->skin = skin_gltf_i;
+ node->skeleton = skeleton_gltf_i;
}
- _expand_skin(state, gltf_skin);
- node->skin = state->skins.size();
- state->skins.push_back(gltf_skin);
-
- json_skin["inverseBindMatrices"] = _encode_accessor_as_xform(state, gltf_skin->inverse_binds, false);
- json_skin["joints"] = json_joints;
- json_skin["name"] = gltf_skin->get_name();
- json_skins.push_back(json_skin);
- state->json["skins"] = json_skins;
}
}
@@ -6132,7 +6144,6 @@ GLTFAnimation::Track GLTFDocument::_convert_animation_track(Ref<GLTFState> state
for (int32_t key_i = 0; key_i < key_count; key_i++) {
times.write[key_i] = p_animation->track_get_key_time(p_track_i, key_i);
}
- const float BAKE_FPS = 30.0f;
if (track_type == Animation::TYPE_TRANSFORM3D) {
p_track.position_track.times = times;
p_track.position_track.interpolation = gltf_interpolation;
@@ -6370,69 +6381,58 @@ void GLTFDocument::_convert_animation(Ref<GLTFState> state, AnimationPlayer *ap,
const Vector<String> node_suffix = String(orig_track_path).split(":blend_shapes/");
const NodePath path = node_suffix[0];
const String suffix = node_suffix[1];
- const Node *node = ap->get_parent()->get_node_or_null(path);
- for (Map<GLTFNodeIndex, Node *>::Element *transform_track_i = state->scene_nodes.front(); transform_track_i; transform_track_i = transform_track_i->next()) {
- if (transform_track_i->get() == node) {
- const MeshInstance3D *mi = Object::cast_to<MeshInstance3D>(node);
- if (!mi) {
- continue;
- }
- Ref<ArrayMesh> array_mesh = mi->get_mesh();
- if (array_mesh.is_null()) {
+ Node *node = ap->get_parent()->get_node_or_null(path);
+ MeshInstance3D *mi = cast_to<MeshInstance3D>(node);
+ Ref<Mesh> mesh = mi->get_mesh();
+ ERR_CONTINUE(mesh.is_null());
+ int32_t mesh_index = -1;
+ for (Map<GLTFNodeIndex, Node *>::Element *mesh_track_i = state->scene_nodes.front(); mesh_track_i; mesh_track_i = mesh_track_i->next()) {
+ if (mesh_track_i->get() == node) {
+ mesh_index = mesh_track_i->key();
+ }
+ }
+ ERR_CONTINUE(mesh_index == -1);
+ Map<int, GLTFAnimation::Track> &tracks = gltf_animation->get_tracks();
+ GLTFAnimation::Track track = gltf_animation->get_tracks().has(mesh_index) ? gltf_animation->get_tracks()[mesh_index] : GLTFAnimation::Track();
+ if (!tracks.has(mesh_index)) {
+ for (int32_t shape_i = 0; shape_i < mesh->get_blend_shape_count(); shape_i++) {
+ String shape_name = mesh->get_blend_shape_name(shape_i);
+ NodePath shape_path = String(path) + ":blend_shapes/" + shape_name;
+ int32_t shape_track_i = animation->find_track(shape_path);
+ if (shape_track_i == -1) {
+ GLTFAnimation::Channel<float> weight;
+ weight.interpolation = GLTFAnimation::INTERP_LINEAR;
+ weight.times.push_back(0.0f);
+ weight.times.push_back(0.0f);
+ weight.values.push_back(0.0f);
+ weight.values.push_back(0.0f);
+ track.weight_tracks.push_back(weight);
continue;
}
- if (node_suffix.size() != 2) {
- continue;
+ Animation::InterpolationType interpolation = animation->track_get_interpolation_type(track_i);
+ GLTFAnimation::Interpolation gltf_interpolation = GLTFAnimation::INTERP_LINEAR;
+ if (interpolation == Animation::InterpolationType::INTERPOLATION_LINEAR) {
+ gltf_interpolation = GLTFAnimation::INTERP_LINEAR;
+ } else if (interpolation == Animation::InterpolationType::INTERPOLATION_NEAREST) {
+ gltf_interpolation = GLTFAnimation::INTERP_STEP;
+ } else if (interpolation == Animation::InterpolationType::INTERPOLATION_CUBIC) {
+ gltf_interpolation = GLTFAnimation::INTERP_CUBIC_SPLINE;
}
- GLTFNodeIndex mesh_index = -1;
- for (GLTFNodeIndex node_i = 0; node_i < state->scene_nodes.size(); node_i++) {
- if (state->scene_nodes[node_i] == node) {
- mesh_index = node_i;
- break;
- }
+ int32_t key_count = animation->track_get_key_count(shape_track_i);
+ GLTFAnimation::Channel<float> weight;
+ weight.interpolation = gltf_interpolation;
+ weight.times.resize(key_count);
+ for (int32_t time_i = 0; time_i < key_count; time_i++) {
+ weight.times.write[time_i] = animation->track_get_key_time(shape_track_i, time_i);
}
- ERR_CONTINUE(mesh_index == -1);
- Ref<Mesh> mesh = mi->get_mesh();
- ERR_CONTINUE(mesh.is_null());
- for (int32_t shape_i = 0; shape_i < mesh->get_blend_shape_count(); shape_i++) {
- if (mesh->get_blend_shape_name(shape_i) != suffix) {
- continue;
- }
- GLTFAnimation::Track track;
- Map<int, GLTFAnimation::Track>::Element *blend_shape_track_i = gltf_animation->get_tracks().find(mesh_index);
- if (blend_shape_track_i) {
- track = blend_shape_track_i->get();
- }
- Animation::InterpolationType interpolation = animation->track_get_interpolation_type(track_i);
-
- GLTFAnimation::Interpolation gltf_interpolation = GLTFAnimation::INTERP_LINEAR;
- if (interpolation == Animation::InterpolationType::INTERPOLATION_LINEAR) {
- gltf_interpolation = GLTFAnimation::INTERP_LINEAR;
- } else if (interpolation == Animation::InterpolationType::INTERPOLATION_NEAREST) {
- gltf_interpolation = GLTFAnimation::INTERP_STEP;
- } else if (interpolation == Animation::InterpolationType::INTERPOLATION_CUBIC) {
- gltf_interpolation = GLTFAnimation::INTERP_CUBIC_SPLINE;
- }
- Animation::TrackType track_type = animation->track_get_type(track_i);
- if (track_type == Animation::TYPE_VALUE) {
- int32_t key_count = animation->track_get_key_count(track_i);
- GLTFAnimation::Channel<float> weight;
- weight.interpolation = gltf_interpolation;
- weight.times.resize(key_count);
- for (int32_t time_i = 0; time_i < key_count; time_i++) {
- weight.times.write[time_i] = animation->track_get_key_time(track_i, time_i);
- }
- weight.values.resize(key_count);
- for (int32_t value_i = 0; value_i < key_count; value_i++) {
- weight.values.write[value_i] = animation->track_get_key_value(track_i, value_i);
- }
- track.weight_tracks.push_back(weight);
- }
- gltf_animation->get_tracks()[mesh_index] = track;
+ weight.values.resize(key_count);
+ for (int32_t value_i = 0; value_i < key_count; value_i++) {
+ weight.values.write[value_i] = animation->track_get_key_value(shape_track_i, value_i);
}
+ track.weight_tracks.push_back(weight);
}
+ tracks[mesh_index] = track;
}
-
} else if (String(orig_track_path).find(":") != -1) {
//Process skeleton
const Vector<String> node_suffix = String(orig_track_path).split(":");
diff --git a/modules/gltf/gltf_document.h b/modules/gltf/gltf_document.h
index fb798a055a..18aeb81bc0 100644
--- a/modules/gltf/gltf_document.h
+++ b/modules/gltf/gltf_document.h
@@ -51,6 +51,9 @@ class GLTFSkin;
class GLTFNode;
class GLTFSpecGloss;
class GLTFSkeleton;
+class CSGShape3D;
+class GridMap;
+class MultiMeshInstance3D;
using GLTFAccessorIndex = int;
using GLTFAnimationIndex = int;
@@ -72,6 +75,9 @@ class GLTFDocument : public Resource {
friend class GLTFSkin;
friend class GLTFSkeleton;
+private:
+ const float BAKE_FPS = 30.0f;
+
public:
const int32_t JOINT_GROUP_SIZE = 4;
enum GLTFType {
@@ -350,7 +356,6 @@ private:
GLTFNodeIndex p_node_i);
Error _encode_buffer_bins(Ref<GLTFState> state, const String &p_path);
Error _encode_buffer_glb(Ref<GLTFState> state, const String &p_path);
- Error _serialize_bone_attachment(Ref<GLTFState> state);
Dictionary _serialize_texture_transform_uv1(Ref<BaseMaterial3D> p_material);
Dictionary _serialize_texture_transform_uv2(Ref<BaseMaterial3D> p_material);
Error _serialize_version(Ref<GLTFState> state);
@@ -381,20 +386,17 @@ public:
void _generate_skeleton_bone_node(Ref<GLTFState> state, Node *scene_parent, Node3D *scene_root, const GLTFNodeIndex node_index);
void _import_animation(Ref<GLTFState> state, AnimationPlayer *ap,
const GLTFAnimationIndex index, const int bake_fps);
- GLTFMeshIndex _convert_mesh_instance(Ref<GLTFState> state,
- MeshInstance3D *p_mesh_instance);
void _convert_mesh_instances(Ref<GLTFState> state);
GLTFCameraIndex _convert_camera(Ref<GLTFState> state, Camera3D *p_camera);
- void _convert_light_to_gltf(Light3D *light, Ref<GLTFState> state, Node3D *spatial, Ref<GLTFNode> gltf_node);
+ void _convert_light_to_gltf(Light3D *light, Ref<GLTFState> state, Ref<GLTFNode> gltf_node);
GLTFLightIndex _convert_light(Ref<GLTFState> state, Light3D *p_light);
- GLTFSkeletonIndex _convert_skeleton(Ref<GLTFState> state, Skeleton3D *p_skeleton);
void _convert_spatial(Ref<GLTFState> state, Node3D *p_spatial, Ref<GLTFNode> p_node);
- void _convert_scene_node(Ref<GLTFState> state, Node *p_current, Node *p_root,
+ void _convert_scene_node(Ref<GLTFState> state, Node *p_current,
const GLTFNodeIndex p_gltf_current,
const GLTFNodeIndex p_gltf_root);
#ifdef MODULE_CSG_ENABLED
- void _convert_csg_shape_to_gltf(Node *p_current, GLTFNodeIndex p_gltf_parent, Ref<GLTFNode> gltf_node, Ref<GLTFState> state);
+ void _convert_csg_shape_to_gltf(CSGShape3D *p_current, GLTFNodeIndex p_gltf_parent, Ref<GLTFNode> gltf_node, Ref<GLTFState> state);
#endif // MODULE_CSG_ENABLED
void _create_gltf_node(Ref<GLTFState> state,
@@ -405,40 +407,39 @@ public:
Ref<GLTFNode> gltf_node);
void _convert_animation_player_to_gltf(
AnimationPlayer *animation_player, Ref<GLTFState> state,
- const GLTFNodeIndex &p_gltf_current,
- const GLTFNodeIndex &p_gltf_root_index,
- Ref<GLTFNode> p_gltf_node, Node *p_scene_parent,
- Node *p_root);
+ GLTFNodeIndex p_gltf_current,
+ GLTFNodeIndex p_gltf_root_index,
+ Ref<GLTFNode> p_gltf_node, Node *p_scene_parent);
void _check_visibility(Node *p_node, bool &retflag);
void _convert_camera_to_gltf(Camera3D *camera, Ref<GLTFState> state,
- Node3D *spatial,
Ref<GLTFNode> gltf_node);
#ifdef MODULE_GRIDMAP_ENABLED
void _convert_grid_map_to_gltf(
- Node *p_scene_parent,
- const GLTFNodeIndex &p_parent_node_index,
- const GLTFNodeIndex &p_root_node_index,
- Ref<GLTFNode> gltf_node, Ref<GLTFState> state,
- Node *p_root_node);
+ GridMap *p_grid_map,
+ GLTFNodeIndex p_parent_node_index,
+ GLTFNodeIndex p_root_node_index,
+ Ref<GLTFNode> gltf_node, Ref<GLTFState> state);
#endif // MODULE_GRIDMAP_ENABLED
void _convert_mult_mesh_instance_to_gltf(
- Node *p_scene_parent,
- const GLTFNodeIndex &p_parent_node_index,
- const GLTFNodeIndex &p_root_node_index,
- Ref<GLTFNode> gltf_node, Ref<GLTFState> state,
- Node *p_root_node);
+ MultiMeshInstance3D *p_scene_parent,
+ GLTFNodeIndex p_parent_node_index,
+ GLTFNodeIndex p_root_node_index,
+ Ref<GLTFNode> gltf_node, Ref<GLTFState> state);
void _convert_skeleton_to_gltf(
- Node *p_scene_parent, Ref<GLTFState> state,
- const GLTFNodeIndex &p_parent_node_index,
- const GLTFNodeIndex &p_root_node_index,
- Ref<GLTFNode> gltf_node, Node *p_root_node);
- void _convert_bone_attachment_to_gltf(Node *p_scene_parent,
+ Skeleton3D *p_scene_parent, Ref<GLTFState> state,
+ GLTFNodeIndex p_parent_node_index,
+ GLTFNodeIndex p_root_node_index,
+ Ref<GLTFNode> gltf_node);
+ void _convert_bone_attachment_to_gltf(BoneAttachment3D *p_bone_attachment,
+ Ref<GLTFState> state,
+ GLTFNodeIndex p_parent_node_index,
+ GLTFNodeIndex p_root_node_index,
+ Ref<GLTFNode> gltf_node);
+ void _convert_mesh_instance_to_gltf(MeshInstance3D *p_mesh_instance,
Ref<GLTFState> state,
- Ref<GLTFNode> gltf_node,
- bool &retflag);
- void _convert_mesh_to_gltf(Node *p_scene_parent,
- Ref<GLTFState> state, Node3D *spatial,
Ref<GLTFNode> gltf_node);
+ GLTFMeshIndex _convert_mesh_to_gltf(Ref<GLTFState> state,
+ MeshInstance3D *p_mesh_instance);
void _convert_animation(Ref<GLTFState> state, AnimationPlayer *ap,
String p_animation_track_name);
Error serialize(Ref<GLTFState> state, Node *p_root, const String &p_path);
diff --git a/modules/gltf/gltf_light.h b/modules/gltf/gltf_light.h
index 079fb18151..62a20d2f16 100644
--- a/modules/gltf/gltf_light.h
+++ b/modules/gltf/gltf_light.h
@@ -42,12 +42,12 @@ protected:
static void _bind_methods();
private:
- Color color;
- float intensity = 0.0f;
+ Color color = Color(1.0f, 1.0f, 1.0f);
+ float intensity = 1.0f;
String light_type;
- float range = 0.0f;
+ float range = INFINITY;
float inner_cone_angle = 0.0f;
- float outer_cone_angle = 0.0f;
+ float outer_cone_angle = Math_TAU / 8.0f;
public:
Color get_color();
diff --git a/modules/gltf/gltf_state.h b/modules/gltf/gltf_state.h
index 896ea5fc56..d6614da804 100644
--- a/modules/gltf/gltf_state.h
+++ b/modules/gltf/gltf_state.h
@@ -44,6 +44,8 @@
#include "gltf_texture.h"
#include "core/io/resource.h"
+#include "core/templates/map.h"
+#include "core/templates/pair.h"
#include "core/templates/vector.h"
#include "scene/animation/animation_player.h"
#include "scene/resources/texture.h"
@@ -87,6 +89,9 @@ class GLTFState : public Resource {
Vector<Ref<GLTFAnimation>> animations;
Map<GLTFNodeIndex, Node *> scene_nodes;
+ Map<ObjectID, GLTFSkeletonIndex> skeleton3d_to_gltf_skeleton;
+ Map<ObjectID, Map<ObjectID, GLTFSkinIndex>> skin_and_skeleton3d_to_gltf_skin;
+
protected:
static void _bind_methods();
diff --git a/modules/gridmap/grid_map.cpp b/modules/gridmap/grid_map.cpp
index 487e6deac0..116c0e00f9 100644
--- a/modules/gridmap/grid_map.cpp
+++ b/modules/gridmap/grid_map.cpp
@@ -377,10 +377,7 @@ int GridMap::get_cell_item_orientation(const Vector3i &p_position) const {
}
Vector3i GridMap::world_to_map(const Vector3 &p_world_position) const {
- Vector3 map_position = p_world_position / cell_size;
- map_position.x = floor(map_position.x);
- map_position.y = floor(map_position.y);
- map_position.z = floor(map_position.z);
+ Vector3 map_position = (p_world_position / cell_size).floor();
return Vector3i(map_position);
}
diff --git a/modules/minimp3/doc_classes/AudioStreamMP3.xml b/modules/minimp3/doc_classes/AudioStreamMP3.xml
index 5507329a18..e4f56614ee 100644
--- a/modules/minimp3/doc_classes/AudioStreamMP3.xml
+++ b/modules/minimp3/doc_classes/AudioStreamMP3.xml
@@ -8,8 +8,6 @@
</description>
<tutorials>
</tutorials>
- <methods>
- </methods>
<members>
<member name="data" type="PackedByteArray" setter="set_data" getter="get_data" default="PackedByteArray()">
Contains the audio data in bytes.
@@ -21,6 +19,4 @@
Time in seconds at which the stream starts after being looped.
</member>
</members>
- <constants>
- </constants>
</class>
diff --git a/modules/mobile_vr/doc_classes/MobileVRInterface.xml b/modules/mobile_vr/doc_classes/MobileVRInterface.xml
index 120535bd41..04ba82ef51 100644
--- a/modules/mobile_vr/doc_classes/MobileVRInterface.xml
+++ b/modules/mobile_vr/doc_classes/MobileVRInterface.xml
@@ -15,8 +15,6 @@
</description>
<tutorials>
</tutorials>
- <methods>
- </methods>
<members>
<member name="display_to_lens" type="float" setter="set_display_to_lens" getter="get_display_to_lens" default="4.0">
The distance between the display and the lenses inside of the device in centimeters.
@@ -40,6 +38,4 @@
The oversample setting. Because of the lens distortion we have to render our buffers at a higher resolution then the screen can natively handle. A value between 1.5 and 2.0 often provides good results but at the cost of performance.
</member>
</members>
- <constants>
- </constants>
</class>
diff --git a/modules/mobile_vr/mobile_vr_interface.cpp b/modules/mobile_vr/mobile_vr_interface.cpp
index bbf1db689d..fc1a118e4f 100644
--- a/modules/mobile_vr/mobile_vr_interface.cpp
+++ b/modules/mobile_vr/mobile_vr_interface.cpp
@@ -244,59 +244,59 @@ void MobileVRInterface::_bind_methods() {
ADD_PROPERTY(PropertyInfo(Variant::FLOAT, "k2", PROPERTY_HINT_RANGE, "0.1,10.0,0.0001"), "set_k2", "get_k2");
}
-void MobileVRInterface::set_eye_height(const real_t p_eye_height) {
+void MobileVRInterface::set_eye_height(const double p_eye_height) {
eye_height = p_eye_height;
}
-real_t MobileVRInterface::get_eye_height() const {
+double MobileVRInterface::get_eye_height() const {
return eye_height;
}
-void MobileVRInterface::set_iod(const real_t p_iod) {
+void MobileVRInterface::set_iod(const double p_iod) {
intraocular_dist = p_iod;
};
-real_t MobileVRInterface::get_iod() const {
+double MobileVRInterface::get_iod() const {
return intraocular_dist;
};
-void MobileVRInterface::set_display_width(const real_t p_display_width) {
+void MobileVRInterface::set_display_width(const double p_display_width) {
display_width = p_display_width;
};
-real_t MobileVRInterface::get_display_width() const {
+double MobileVRInterface::get_display_width() const {
return display_width;
};
-void MobileVRInterface::set_display_to_lens(const real_t p_display_to_lens) {
+void MobileVRInterface::set_display_to_lens(const double p_display_to_lens) {
display_to_lens = p_display_to_lens;
};
-real_t MobileVRInterface::get_display_to_lens() const {
+double MobileVRInterface::get_display_to_lens() const {
return display_to_lens;
};
-void MobileVRInterface::set_oversample(const real_t p_oversample) {
+void MobileVRInterface::set_oversample(const double p_oversample) {
oversample = p_oversample;
};
-real_t MobileVRInterface::get_oversample() const {
+double MobileVRInterface::get_oversample() const {
return oversample;
};
-void MobileVRInterface::set_k1(const real_t p_k1) {
+void MobileVRInterface::set_k1(const double p_k1) {
k1 = p_k1;
};
-real_t MobileVRInterface::get_k1() const {
+double MobileVRInterface::get_k1() const {
return k1;
};
-void MobileVRInterface::set_k2(const real_t p_k2) {
+void MobileVRInterface::set_k2(const double p_k2) {
k2 = p_k2;
};
-real_t MobileVRInterface::get_k2() const {
+double MobileVRInterface::get_k2() const {
return k2;
};
@@ -422,7 +422,7 @@ Transform3D MobileVRInterface::get_transform_for_view(uint32_t p_view, const Tra
return transform_for_eye;
};
-CameraMatrix MobileVRInterface::get_projection_for_view(uint32_t p_view, real_t p_aspect, real_t p_z_near, real_t p_z_far) {
+CameraMatrix MobileVRInterface::get_projection_for_view(uint32_t p_view, double p_aspect, double p_z_near, double p_z_far) {
_THREAD_SAFE_METHOD_
CameraMatrix eye;
diff --git a/modules/mobile_vr/mobile_vr_interface.h b/modules/mobile_vr/mobile_vr_interface.h
index 48b76ec187..a843e1188b 100644
--- a/modules/mobile_vr/mobile_vr_interface.h
+++ b/modules/mobile_vr/mobile_vr_interface.h
@@ -56,17 +56,17 @@ private:
Basis orientation;
// Just set some defaults for these. At some point we need to look at adding a lookup table for common device + headset combos and/or support reading cardboard QR codes
- float eye_height = 1.85;
+ double eye_height = 1.85;
uint64_t last_ticks = 0;
- real_t intraocular_dist = 6.0;
- real_t display_width = 14.5;
- real_t display_to_lens = 4.0;
- real_t oversample = 1.5;
+ double intraocular_dist = 6.0;
+ double display_width = 14.5;
+ double display_to_lens = 4.0;
+ double oversample = 1.5;
- real_t k1 = 0.215;
- real_t k2 = 0.215;
- real_t aspect = 1.0;
+ double k1 = 0.215;
+ double k2 = 0.215;
+ double aspect = 1.0;
/*
logic for processing our sensor data, this was originally in our positional tracker logic but I think
@@ -110,26 +110,26 @@ protected:
static void _bind_methods();
public:
- void set_eye_height(const real_t p_eye_height);
- real_t get_eye_height() const;
+ void set_eye_height(const double p_eye_height);
+ double get_eye_height() const;
- void set_iod(const real_t p_iod);
- real_t get_iod() const;
+ void set_iod(const double p_iod);
+ double get_iod() const;
- void set_display_width(const real_t p_display_width);
- real_t get_display_width() const;
+ void set_display_width(const double p_display_width);
+ double get_display_width() const;
- void set_display_to_lens(const real_t p_display_to_lens);
- real_t get_display_to_lens() const;
+ void set_display_to_lens(const double p_display_to_lens);
+ double get_display_to_lens() const;
- void set_oversample(const real_t p_oversample);
- real_t get_oversample() const;
+ void set_oversample(const double p_oversample);
+ double get_oversample() const;
- void set_k1(const real_t p_k1);
- real_t get_k1() const;
+ void set_k1(const double p_k1);
+ double get_k1() const;
- void set_k2(const real_t p_k2);
- real_t get_k2() const;
+ void set_k2(const double p_k2);
+ double get_k2() const;
virtual StringName get_name() const override;
virtual uint32_t get_capabilities() const override;
@@ -144,7 +144,7 @@ public:
virtual uint32_t get_view_count() override;
virtual Transform3D get_camera_transform() override;
virtual Transform3D get_transform_for_view(uint32_t p_view, const Transform3D &p_cam_transform) override;
- virtual CameraMatrix get_projection_for_view(uint32_t p_view, real_t p_aspect, real_t p_z_near, real_t p_z_far) override;
+ virtual CameraMatrix get_projection_for_view(uint32_t p_view, double p_aspect, double p_z_near, double p_z_far) override;
virtual Vector<BlitToScreen> commit_views(RID p_render_target, const Rect2 &p_screen_rect) override;
virtual void process() override;
diff --git a/modules/mobile_vr/register_types.cpp b/modules/mobile_vr/register_types.cpp
index 47d1fe482c..233c16531a 100644
--- a/modules/mobile_vr/register_types.cpp
+++ b/modules/mobile_vr/register_types.cpp
@@ -32,15 +32,30 @@
#include "mobile_vr_interface.h"
+Ref<MobileVRInterface> mobile_vr;
+
void register_mobile_vr_types() {
GDREGISTER_CLASS(MobileVRInterface);
if (XRServer::get_singleton()) {
- Ref<MobileVRInterface> mobile_vr;
mobile_vr.instantiate();
XRServer::get_singleton()->add_interface(mobile_vr);
}
}
void unregister_mobile_vr_types() {
+ if (mobile_vr.is_valid()) {
+ // uninitialise our interface if it is initialised
+ if (mobile_vr->is_initialized()) {
+ mobile_vr->uninitialize();
+ }
+
+ // unregister our interface from the XR server
+ if (XRServer::get_singleton()) {
+ XRServer::get_singleton()->remove_interface(mobile_vr);
+ }
+
+ // and release
+ mobile_vr.unref();
+ }
}
diff --git a/modules/mono/csharp_script.cpp b/modules/mono/csharp_script.cpp
index 6cc7ddb424..af7c54dd5b 100644
--- a/modules/mono/csharp_script.cpp
+++ b/modules/mono/csharp_script.cpp
@@ -3511,10 +3511,10 @@ int CSharpScript::get_member_line(const StringName &p_member) const {
}
Multiplayer::RPCMode CSharpScript::_member_get_rpc_mode(IMonoClassMember *p_member) const {
- if (p_member->has_attribute(CACHED_CLASS(RemoteAttribute))) {
+ if (p_member->has_attribute(CACHED_CLASS(AnyAttribute))) {
return Multiplayer::RPC_MODE_ANY;
}
- if (p_member->has_attribute(CACHED_CLASS(PuppetAttribute))) {
+ if (p_member->has_attribute(CACHED_CLASS(AuthorityAttribute))) {
return Multiplayer::RPC_MODE_AUTHORITY;
}
diff --git a/modules/mono/glue/GodotSharp/GodotSharp/Core/AABB.cs b/modules/mono/glue/GodotSharp/GodotSharp/Core/AABB.cs
index 8b12537f7f..70a2cf5695 100644
--- a/modules/mono/glue/GodotSharp/GodotSharp/Core/AABB.cs
+++ b/modules/mono/glue/GodotSharp/GodotSharp/Core/AABB.cs
@@ -67,6 +67,16 @@ namespace Godot
}
/// <summary>
+ /// Returns the center of the <see cref="AABB"/>, which is equal
+ /// to <see cref="Position"/> + (<see cref="Size"/> / 2).
+ /// </summary>
+ /// <returns>The center.</returns>
+ public Vector3 GetCenter()
+ {
+ return _position + (_size * 0.5f);
+ }
+
+ /// <summary>
/// Returns <see langword="true"/> if this <see cref="AABB"/> completely encloses another one.
/// </summary>
/// <param name="with">The other <see cref="AABB"/> that may be enclosed.</param>
diff --git a/modules/mono/glue/GodotSharp/GodotSharp/Core/Attributes/RPCAttributes.cs b/modules/mono/glue/GodotSharp/GodotSharp/Core/Attributes/RPCAttributes.cs
index 2dedba2be3..1da91ea867 100644
--- a/modules/mono/glue/GodotSharp/GodotSharp/Core/Attributes/RPCAttributes.cs
+++ b/modules/mono/glue/GodotSharp/GodotSharp/Core/Attributes/RPCAttributes.cs
@@ -3,8 +3,8 @@ using System;
namespace Godot
{
[AttributeUsage(AttributeTargets.Method)]
- public class RemoteAttribute : Attribute { }
+ public class AnyAttribute : Attribute { }
[AttributeUsage(AttributeTargets.Method)]
- public class PuppetAttribute : Attribute { }
+ public class AuthorityAttribute : Attribute { }
}
diff --git a/modules/mono/glue/GodotSharp/GodotSharp/Core/Rect2.cs b/modules/mono/glue/GodotSharp/GodotSharp/Core/Rect2.cs
index 1d001fba2d..af94484577 100644
--- a/modules/mono/glue/GodotSharp/GodotSharp/Core/Rect2.cs
+++ b/modules/mono/glue/GodotSharp/GodotSharp/Core/Rect2.cs
@@ -165,6 +165,16 @@ namespace Godot
}
/// <summary>
+ /// Returns the center of the <see cref="Rect2"/>, which is equal
+ /// to <see cref="Position"/> + (<see cref="Size"/> / 2).
+ /// </summary>
+ /// <returns>The center.</returns>
+ public Vector2 GetCenter()
+ {
+ return _position + (_size * 0.5f);
+ }
+
+ /// <summary>
/// Returns a copy of the <see cref="Rect2"/> grown by the specified amount
/// on all sides.
/// </summary>
diff --git a/modules/mono/glue/GodotSharp/GodotSharp/Core/Rect2i.cs b/modules/mono/glue/GodotSharp/GodotSharp/Core/Rect2i.cs
index 250b0d0baf..03f406a910 100644
--- a/modules/mono/glue/GodotSharp/GodotSharp/Core/Rect2i.cs
+++ b/modules/mono/glue/GodotSharp/GodotSharp/Core/Rect2i.cs
@@ -151,7 +151,7 @@ namespace Godot
}
/// <summary>
- /// Returns the area of the <see cref="Rect2"/>.
+ /// Returns the area of the <see cref="Rect2i"/>.
/// </summary>
/// <returns>The area.</returns>
public int GetArea()
@@ -160,6 +160,18 @@ namespace Godot
}
/// <summary>
+ /// Returns the center of the <see cref="Rect2i"/>, which is equal
+ /// to <see cref="Position"/> + (<see cref="Size"/> / 2).
+ /// If <see cref="Size"/> is an odd number, the returned center
+ /// value will be rounded towards <see cref="Position"/>.
+ /// </summary>
+ /// <returns>The center.</returns>
+ public Vector2i GetCenter()
+ {
+ return _position + (_size / 2);
+ }
+
+ /// <summary>
/// Returns a copy of the <see cref="Rect2i"/> grown by the specified amount
/// on all sides.
/// </summary>
diff --git a/modules/mono/mono_gd/gd_mono_cache.cpp b/modules/mono/mono_gd/gd_mono_cache.cpp
index 8b215a66c2..34e845a589 100644
--- a/modules/mono/mono_gd/gd_mono_cache.cpp
+++ b/modules/mono/mono_gd/gd_mono_cache.cpp
@@ -140,8 +140,8 @@ void CachedData::clear_godot_api_cache() {
field_ExportAttribute_hintString = nullptr;
class_SignalAttribute = nullptr;
class_ToolAttribute = nullptr;
- class_RemoteAttribute = nullptr;
- class_PuppetAttribute = nullptr;
+ class_AnyAttribute = nullptr;
+ class_AuthorityAttribute = nullptr;
class_GodotMethodAttribute = nullptr;
field_GodotMethodAttribute_methodName = nullptr;
class_ScriptPathAttribute = nullptr;
@@ -265,8 +265,8 @@ void update_godot_api_cache() {
CACHE_FIELD_AND_CHECK(ExportAttribute, hintString, CACHED_CLASS(ExportAttribute)->get_field("hintString"));
CACHE_CLASS_AND_CHECK(SignalAttribute, GODOT_API_CLASS(SignalAttribute));
CACHE_CLASS_AND_CHECK(ToolAttribute, GODOT_API_CLASS(ToolAttribute));
- CACHE_CLASS_AND_CHECK(RemoteAttribute, GODOT_API_CLASS(RemoteAttribute));
- CACHE_CLASS_AND_CHECK(PuppetAttribute, GODOT_API_CLASS(PuppetAttribute));
+ CACHE_CLASS_AND_CHECK(AnyAttribute, GODOT_API_CLASS(AnyAttribute));
+ CACHE_CLASS_AND_CHECK(AuthorityAttribute, GODOT_API_CLASS(AuthorityAttribute));
CACHE_CLASS_AND_CHECK(GodotMethodAttribute, GODOT_API_CLASS(GodotMethodAttribute));
CACHE_FIELD_AND_CHECK(GodotMethodAttribute, methodName, CACHED_CLASS(GodotMethodAttribute)->get_field("methodName"));
CACHE_CLASS_AND_CHECK(ScriptPathAttribute, GODOT_API_CLASS(ScriptPathAttribute));
diff --git a/modules/mono/mono_gd/gd_mono_cache.h b/modules/mono/mono_gd/gd_mono_cache.h
index fd28bbda14..e60a4d5279 100644
--- a/modules/mono/mono_gd/gd_mono_cache.h
+++ b/modules/mono/mono_gd/gd_mono_cache.h
@@ -111,8 +111,8 @@ struct CachedData {
GDMonoField *field_ExportAttribute_hintString;
GDMonoClass *class_SignalAttribute;
GDMonoClass *class_ToolAttribute;
- GDMonoClass *class_RemoteAttribute;
- GDMonoClass *class_PuppetAttribute;
+ GDMonoClass *class_AnyAttribute;
+ GDMonoClass *class_AuthorityAttribute;
GDMonoClass *class_GodotMethodAttribute;
GDMonoField *field_GodotMethodAttribute_methodName;
GDMonoClass *class_ScriptPathAttribute;
diff --git a/modules/navigation/godot_navigation_server.cpp b/modules/navigation/godot_navigation_server.cpp
index fd965674d6..f600f07c87 100644
--- a/modules/navigation/godot_navigation_server.cpp
+++ b/modules/navigation/godot_navigation_server.cpp
@@ -133,13 +133,13 @@ RID GodotNavigationServer::map_create() const {
GodotNavigationServer *mut_this = const_cast<GodotNavigationServer *>(this);
MutexLock lock(mut_this->operations_mutex);
RID rid = map_owner.make_rid();
- NavMap *space = map_owner.getornull(rid);
+ NavMap *space = map_owner.get_or_null(rid);
space->set_self(rid);
return rid;
}
COMMAND_2(map_set_active, RID, p_map, bool, p_active) {
- NavMap *map = map_owner.getornull(p_map);
+ NavMap *map = map_owner.get_or_null(p_map);
ERR_FAIL_COND(map == nullptr);
if (p_active) {
@@ -156,84 +156,84 @@ COMMAND_2(map_set_active, RID, p_map, bool, p_active) {
}
bool GodotNavigationServer::map_is_active(RID p_map) const {
- NavMap *map = map_owner.getornull(p_map);
+ NavMap *map = map_owner.get_or_null(p_map);
ERR_FAIL_COND_V(map == nullptr, false);
return active_maps.find(map) >= 0;
}
COMMAND_2(map_set_up, RID, p_map, Vector3, p_up) {
- NavMap *map = map_owner.getornull(p_map);
+ NavMap *map = map_owner.get_or_null(p_map);
ERR_FAIL_COND(map == nullptr);
map->set_up(p_up);
}
Vector3 GodotNavigationServer::map_get_up(RID p_map) const {
- const NavMap *map = map_owner.getornull(p_map);
+ const NavMap *map = map_owner.get_or_null(p_map);
ERR_FAIL_COND_V(map == nullptr, Vector3());
return map->get_up();
}
COMMAND_2(map_set_cell_size, RID, p_map, real_t, p_cell_size) {
- NavMap *map = map_owner.getornull(p_map);
+ NavMap *map = map_owner.get_or_null(p_map);
ERR_FAIL_COND(map == nullptr);
map->set_cell_size(p_cell_size);
}
real_t GodotNavigationServer::map_get_cell_size(RID p_map) const {
- const NavMap *map = map_owner.getornull(p_map);
+ const NavMap *map = map_owner.get_or_null(p_map);
ERR_FAIL_COND_V(map == nullptr, 0);
return map->get_cell_size();
}
COMMAND_2(map_set_edge_connection_margin, RID, p_map, real_t, p_connection_margin) {
- NavMap *map = map_owner.getornull(p_map);
+ NavMap *map = map_owner.get_or_null(p_map);
ERR_FAIL_COND(map == nullptr);
map->set_edge_connection_margin(p_connection_margin);
}
real_t GodotNavigationServer::map_get_edge_connection_margin(RID p_map) const {
- const NavMap *map = map_owner.getornull(p_map);
+ const NavMap *map = map_owner.get_or_null(p_map);
ERR_FAIL_COND_V(map == nullptr, 0);
return map->get_edge_connection_margin();
}
Vector<Vector3> GodotNavigationServer::map_get_path(RID p_map, Vector3 p_origin, Vector3 p_destination, bool p_optimize, uint32_t p_layers) const {
- const NavMap *map = map_owner.getornull(p_map);
+ const NavMap *map = map_owner.get_or_null(p_map);
ERR_FAIL_COND_V(map == nullptr, Vector<Vector3>());
return map->get_path(p_origin, p_destination, p_optimize, p_layers);
}
Vector3 GodotNavigationServer::map_get_closest_point_to_segment(RID p_map, const Vector3 &p_from, const Vector3 &p_to, const bool p_use_collision) const {
- const NavMap *map = map_owner.getornull(p_map);
+ const NavMap *map = map_owner.get_or_null(p_map);
ERR_FAIL_COND_V(map == nullptr, Vector3());
return map->get_closest_point_to_segment(p_from, p_to, p_use_collision);
}
Vector3 GodotNavigationServer::map_get_closest_point(RID p_map, const Vector3 &p_point) const {
- const NavMap *map = map_owner.getornull(p_map);
+ const NavMap *map = map_owner.get_or_null(p_map);
ERR_FAIL_COND_V(map == nullptr, Vector3());
return map->get_closest_point(p_point);
}
Vector3 GodotNavigationServer::map_get_closest_point_normal(RID p_map, const Vector3 &p_point) const {
- const NavMap *map = map_owner.getornull(p_map);
+ const NavMap *map = map_owner.get_or_null(p_map);
ERR_FAIL_COND_V(map == nullptr, Vector3());
return map->get_closest_point_normal(p_point);
}
RID GodotNavigationServer::map_get_closest_point_owner(RID p_map, const Vector3 &p_point) const {
- const NavMap *map = map_owner.getornull(p_map);
+ const NavMap *map = map_owner.get_or_null(p_map);
ERR_FAIL_COND_V(map == nullptr, RID());
return map->get_closest_point_owner(p_point);
@@ -243,13 +243,13 @@ RID GodotNavigationServer::region_create() const {
GodotNavigationServer *mut_this = const_cast<GodotNavigationServer *>(this);
MutexLock lock(mut_this->operations_mutex);
RID rid = region_owner.make_rid();
- NavRegion *reg = region_owner.getornull(rid);
+ NavRegion *reg = region_owner.get_or_null(rid);
reg->set_self(rid);
return rid;
}
COMMAND_2(region_set_map, RID, p_region, RID, p_map) {
- NavRegion *region = region_owner.getornull(p_region);
+ NavRegion *region = region_owner.get_or_null(p_region);
ERR_FAIL_COND(region == nullptr);
if (region->get_map() != nullptr) {
@@ -262,7 +262,7 @@ COMMAND_2(region_set_map, RID, p_region, RID, p_map) {
}
if (p_map.is_valid()) {
- NavMap *map = map_owner.getornull(p_map);
+ NavMap *map = map_owner.get_or_null(p_map);
ERR_FAIL_COND(map == nullptr);
map->add_region(region);
@@ -271,28 +271,28 @@ COMMAND_2(region_set_map, RID, p_region, RID, p_map) {
}
COMMAND_2(region_set_transform, RID, p_region, Transform3D, p_transform) {
- NavRegion *region = region_owner.getornull(p_region);
+ NavRegion *region = region_owner.get_or_null(p_region);
ERR_FAIL_COND(region == nullptr);
region->set_transform(p_transform);
}
COMMAND_2(region_set_layers, RID, p_region, uint32_t, p_layers) {
- NavRegion *region = region_owner.getornull(p_region);
+ NavRegion *region = region_owner.get_or_null(p_region);
ERR_FAIL_COND(region == nullptr);
region->set_layers(p_layers);
}
uint32_t GodotNavigationServer::region_get_layers(RID p_region) const {
- NavRegion *region = region_owner.getornull(p_region);
+ NavRegion *region = region_owner.get_or_null(p_region);
ERR_FAIL_COND_V(region == nullptr, 0);
return region->get_layers();
}
COMMAND_2(region_set_navmesh, RID, p_region, Ref<NavigationMesh>, p_nav_mesh) {
- NavRegion *region = region_owner.getornull(p_region);
+ NavRegion *region = region_owner.get_or_null(p_region);
ERR_FAIL_COND(region == nullptr);
region->set_mesh(p_nav_mesh);
@@ -309,21 +309,21 @@ void GodotNavigationServer::region_bake_navmesh(Ref<NavigationMesh> r_mesh, Node
}
int GodotNavigationServer::region_get_connections_count(RID p_region) const {
- NavRegion *region = region_owner.getornull(p_region);
+ NavRegion *region = region_owner.get_or_null(p_region);
ERR_FAIL_COND_V(!region, 0);
return region->get_connections_count();
}
Vector3 GodotNavigationServer::region_get_connection_pathway_start(RID p_region, int p_connection_id) const {
- NavRegion *region = region_owner.getornull(p_region);
+ NavRegion *region = region_owner.get_or_null(p_region);
ERR_FAIL_COND_V(!region, Vector3());
return region->get_connection_pathway_start(p_connection_id);
}
Vector3 GodotNavigationServer::region_get_connection_pathway_end(RID p_region, int p_connection_id) const {
- NavRegion *region = region_owner.getornull(p_region);
+ NavRegion *region = region_owner.get_or_null(p_region);
ERR_FAIL_COND_V(!region, Vector3());
return region->get_connection_pathway_end(p_connection_id);
@@ -333,13 +333,13 @@ RID GodotNavigationServer::agent_create() const {
GodotNavigationServer *mut_this = const_cast<GodotNavigationServer *>(this);
MutexLock lock(mut_this->operations_mutex);
RID rid = agent_owner.make_rid();
- RvoAgent *agent = agent_owner.getornull(rid);
+ RvoAgent *agent = agent_owner.get_or_null(rid);
agent->set_self(rid);
return rid;
}
COMMAND_2(agent_set_map, RID, p_agent, RID, p_map) {
- RvoAgent *agent = agent_owner.getornull(p_agent);
+ RvoAgent *agent = agent_owner.get_or_null(p_agent);
ERR_FAIL_COND(agent == nullptr);
if (agent->get_map()) {
@@ -353,7 +353,7 @@ COMMAND_2(agent_set_map, RID, p_agent, RID, p_map) {
agent->set_map(nullptr);
if (p_map.is_valid()) {
- NavMap *map = map_owner.getornull(p_map);
+ NavMap *map = map_owner.get_or_null(p_map);
ERR_FAIL_COND(map == nullptr);
agent->set_map(map);
@@ -366,77 +366,77 @@ COMMAND_2(agent_set_map, RID, p_agent, RID, p_map) {
}
COMMAND_2(agent_set_neighbor_dist, RID, p_agent, real_t, p_dist) {
- RvoAgent *agent = agent_owner.getornull(p_agent);
+ RvoAgent *agent = agent_owner.get_or_null(p_agent);
ERR_FAIL_COND(agent == nullptr);
agent->get_agent()->neighborDist_ = p_dist;
}
COMMAND_2(agent_set_max_neighbors, RID, p_agent, int, p_count) {
- RvoAgent *agent = agent_owner.getornull(p_agent);
+ RvoAgent *agent = agent_owner.get_or_null(p_agent);
ERR_FAIL_COND(agent == nullptr);
agent->get_agent()->maxNeighbors_ = p_count;
}
COMMAND_2(agent_set_time_horizon, RID, p_agent, real_t, p_time) {
- RvoAgent *agent = agent_owner.getornull(p_agent);
+ RvoAgent *agent = agent_owner.get_or_null(p_agent);
ERR_FAIL_COND(agent == nullptr);
agent->get_agent()->timeHorizon_ = p_time;
}
COMMAND_2(agent_set_radius, RID, p_agent, real_t, p_radius) {
- RvoAgent *agent = agent_owner.getornull(p_agent);
+ RvoAgent *agent = agent_owner.get_or_null(p_agent);
ERR_FAIL_COND(agent == nullptr);
agent->get_agent()->radius_ = p_radius;
}
COMMAND_2(agent_set_max_speed, RID, p_agent, real_t, p_max_speed) {
- RvoAgent *agent = agent_owner.getornull(p_agent);
+ RvoAgent *agent = agent_owner.get_or_null(p_agent);
ERR_FAIL_COND(agent == nullptr);
agent->get_agent()->maxSpeed_ = p_max_speed;
}
COMMAND_2(agent_set_velocity, RID, p_agent, Vector3, p_velocity) {
- RvoAgent *agent = agent_owner.getornull(p_agent);
+ RvoAgent *agent = agent_owner.get_or_null(p_agent);
ERR_FAIL_COND(agent == nullptr);
agent->get_agent()->velocity_ = RVO::Vector3(p_velocity.x, p_velocity.y, p_velocity.z);
}
COMMAND_2(agent_set_target_velocity, RID, p_agent, Vector3, p_velocity) {
- RvoAgent *agent = agent_owner.getornull(p_agent);
+ RvoAgent *agent = agent_owner.get_or_null(p_agent);
ERR_FAIL_COND(agent == nullptr);
agent->get_agent()->prefVelocity_ = RVO::Vector3(p_velocity.x, p_velocity.y, p_velocity.z);
}
COMMAND_2(agent_set_position, RID, p_agent, Vector3, p_position) {
- RvoAgent *agent = agent_owner.getornull(p_agent);
+ RvoAgent *agent = agent_owner.get_or_null(p_agent);
ERR_FAIL_COND(agent == nullptr);
agent->get_agent()->position_ = RVO::Vector3(p_position.x, p_position.y, p_position.z);
}
COMMAND_2(agent_set_ignore_y, RID, p_agent, bool, p_ignore) {
- RvoAgent *agent = agent_owner.getornull(p_agent);
+ RvoAgent *agent = agent_owner.get_or_null(p_agent);
ERR_FAIL_COND(agent == nullptr);
agent->get_agent()->ignore_y_ = p_ignore;
}
bool GodotNavigationServer::agent_is_map_changed(RID p_agent) const {
- RvoAgent *agent = agent_owner.getornull(p_agent);
+ RvoAgent *agent = agent_owner.get_or_null(p_agent);
ERR_FAIL_COND_V(agent == nullptr, false);
return agent->is_map_changed();
}
COMMAND_4(agent_set_callback, RID, p_agent, Object *, p_receiver, StringName, p_method, Variant, p_udata) {
- RvoAgent *agent = agent_owner.getornull(p_agent);
+ RvoAgent *agent = agent_owner.get_or_null(p_agent);
ERR_FAIL_COND(agent == nullptr);
agent->set_callback(p_receiver == nullptr ? ObjectID() : p_receiver->get_instance_id(), p_method, p_udata);
@@ -452,7 +452,7 @@ COMMAND_4(agent_set_callback, RID, p_agent, Object *, p_receiver, StringName, p_
COMMAND_1(free, RID, p_object) {
if (map_owner.owns(p_object)) {
- NavMap *map = map_owner.getornull(p_object);
+ NavMap *map = map_owner.get_or_null(p_object);
// Removes any assigned region
std::vector<NavRegion *> regions = map->get_regions();
@@ -474,7 +474,7 @@ COMMAND_1(free, RID, p_object) {
map_owner.free(p_object);
} else if (region_owner.owns(p_object)) {
- NavRegion *region = region_owner.getornull(p_object);
+ NavRegion *region = region_owner.get_or_null(p_object);
// Removes this region from the map if assigned
if (region->get_map() != nullptr) {
@@ -485,7 +485,7 @@ COMMAND_1(free, RID, p_object) {
region_owner.free(p_object);
} else if (agent_owner.owns(p_object)) {
- RvoAgent *agent = agent_owner.getornull(p_object);
+ RvoAgent *agent = agent_owner.get_or_null(p_object);
// Removes this agent from the map if assigned
if (agent->get_map() != nullptr) {
diff --git a/modules/navigation/nav_map.cpp b/modules/navigation/nav_map.cpp
index 3150ca0bc8..962bf79150 100644
--- a/modules/navigation/nav_map.cpp
+++ b/modules/navigation/nav_map.cpp
@@ -664,7 +664,7 @@ void NavMap::sync() {
} else {
other1 = other_edge_p1.lerp(other_edge_p2, (1.0 - projected_p1_ratio) / (projected_p2_ratio - projected_p1_ratio));
}
- if ((self1 - other1).length() > edge_connection_margin) {
+ if (other1.distance_to(self1) > edge_connection_margin) {
continue;
}
@@ -675,7 +675,7 @@ void NavMap::sync() {
} else {
other2 = other_edge_p1.lerp(other_edge_p2, (0.0 - projected_p1_ratio) / (projected_p2_ratio - projected_p1_ratio));
}
- if ((self2 - other2).length() > edge_connection_margin) {
+ if (other2.distance_to(self2) > edge_connection_margin) {
continue;
}
diff --git a/modules/ogg/doc_classes/OGGPacketSequence.xml b/modules/ogg/doc_classes/OGGPacketSequence.xml
index 9d3789cb07..deac5b67e2 100644
--- a/modules/ogg/doc_classes/OGGPacketSequence.xml
+++ b/modules/ogg/doc_classes/OGGPacketSequence.xml
@@ -27,6 +27,4 @@
Holds sample rate information about this sequence. Must be set by another class that actually understands the codec.
</member>
</members>
- <constants>
- </constants>
</class>
diff --git a/modules/ogg/doc_classes/OGGPacketSequencePlayback.xml b/modules/ogg/doc_classes/OGGPacketSequencePlayback.xml
index 49e32f0d6e..86dee15567 100644
--- a/modules/ogg/doc_classes/OGGPacketSequencePlayback.xml
+++ b/modules/ogg/doc_classes/OGGPacketSequencePlayback.xml
@@ -6,8 +6,4 @@
</description>
<tutorials>
</tutorials>
- <methods>
- </methods>
- <constants>
- </constants>
</class>
diff --git a/modules/opensimplex/doc_classes/NoiseTexture.xml b/modules/opensimplex/doc_classes/NoiseTexture.xml
index 2ae7f8cad9..8a10411cf6 100644
--- a/modules/opensimplex/doc_classes/NoiseTexture.xml
+++ b/modules/opensimplex/doc_classes/NoiseTexture.xml
@@ -16,8 +16,6 @@
</description>
<tutorials>
</tutorials>
- <methods>
- </methods>
<members>
<member name="as_normal_map" type="bool" setter="set_as_normal_map" getter="is_normal_map" default="false">
If [code]true[/code], the resulting texture contains a normal map created from the original noise interpreted as a bump map.
@@ -42,6 +40,4 @@
Width of the generated texture.
</member>
</members>
- <constants>
- </constants>
</class>
diff --git a/modules/opensimplex/doc_classes/OpenSimplexNoise.xml b/modules/opensimplex/doc_classes/OpenSimplexNoise.xml
index c470f3e1ab..604b07b645 100644
--- a/modules/opensimplex/doc_classes/OpenSimplexNoise.xml
+++ b/modules/opensimplex/doc_classes/OpenSimplexNoise.xml
@@ -109,6 +109,4 @@
Seed used to generate random values, different seeds will generate different noise maps.
</member>
</members>
- <constants>
- </constants>
</class>
diff --git a/modules/raycast/SCsub b/modules/raycast/SCsub
index 1fdc8fe1b3..4820cf7608 100644
--- a/modules/raycast/SCsub
+++ b/modules/raycast/SCsub
@@ -79,6 +79,7 @@ if env["builtin_embree"]:
env.Append(LIBS=["psapi"])
env_thirdparty = env_raycast.Clone()
+ env_thirdparty.force_optimization_on_debug()
env_thirdparty.disable_warnings()
env_thirdparty.add_source_files(thirdparty_obj, thirdparty_sources)
diff --git a/modules/raycast/raycast_occlusion_cull.cpp b/modules/raycast/raycast_occlusion_cull.cpp
index a55b81c05d..3975e83797 100644
--- a/modules/raycast/raycast_occlusion_cull.cpp
+++ b/modules/raycast/raycast_occlusion_cull.cpp
@@ -207,7 +207,7 @@ void RaycastOcclusionCull::occluder_initialize(RID p_occluder) {
}
void RaycastOcclusionCull::occluder_set_mesh(RID p_occluder, const PackedVector3Array &p_vertices, const PackedInt32Array &p_indices) {
- Occluder *occluder = occluder_owner.getornull(p_occluder);
+ Occluder *occluder = occluder_owner.get_or_null(p_occluder);
ERR_FAIL_COND(!occluder);
occluder->vertices = p_vertices;
@@ -228,7 +228,7 @@ void RaycastOcclusionCull::occluder_set_mesh(RID p_occluder, const PackedVector3
}
void RaycastOcclusionCull::free_occluder(RID p_occluder) {
- Occluder *occluder = occluder_owner.getornull(p_occluder);
+ Occluder *occluder = occluder_owner.get_or_null(p_occluder);
ERR_FAIL_COND(!occluder);
memdelete(occluder);
occluder_owner.free(p_occluder);
@@ -268,7 +268,7 @@ void RaycastOcclusionCull::scenario_set_instance(RID p_scenario, RID p_instance,
bool changed = false;
if (instance.occluder != p_occluder) {
- Occluder *old_occluder = occluder_owner.getornull(instance.occluder);
+ Occluder *old_occluder = occluder_owner.get_or_null(instance.occluder);
if (old_occluder) {
old_occluder->users.erase(InstanceID(p_scenario, p_instance));
}
@@ -276,7 +276,7 @@ void RaycastOcclusionCull::scenario_set_instance(RID p_scenario, RID p_instance,
instance.occluder = p_occluder;
if (p_occluder.is_valid()) {
- Occluder *occluder = occluder_owner.getornull(p_occluder);
+ Occluder *occluder = occluder_owner.get_or_null(p_occluder);
ERR_FAIL_COND(!occluder);
occluder->users.insert(InstanceID(p_scenario, p_instance));
}
@@ -308,7 +308,7 @@ void RaycastOcclusionCull::scenario_remove_instance(RID p_scenario, RID p_instan
OccluderInstance &instance = scenario.instances[p_instance];
if (!instance.removed) {
- Occluder *occluder = occluder_owner.getornull(instance.occluder);
+ Occluder *occluder = occluder_owner.get_or_null(instance.occluder);
if (occluder) {
occluder->users.erase(InstanceID(p_scenario, p_instance));
}
@@ -330,7 +330,7 @@ void RaycastOcclusionCull::Scenario::_update_dirty_instance(int p_idx, RID *p_in
return;
}
- Occluder *occ = raycast_singleton->occluder_owner.getornull(occ_inst->occluder);
+ Occluder *occ = raycast_singleton->occluder_owner.get_or_null(occ_inst->occluder);
if (!occ) {
return;
@@ -446,7 +446,7 @@ bool RaycastOcclusionCull::Scenario::update(ThreadWorkPool &p_thread_pool) {
const RID *inst_rid = nullptr;
while ((inst_rid = instances.next(inst_rid))) {
OccluderInstance *occ_inst = instances.getptr(*inst_rid);
- Occluder *occ = raycast_singleton->occluder_owner.getornull(occ_inst->occluder);
+ Occluder *occ = raycast_singleton->occluder_owner.get_or_null(occ_inst->occluder);
if (!occ || !occ_inst->enabled) {
continue;
diff --git a/modules/regex/doc_classes/RegEx.xml b/modules/regex/doc_classes/RegEx.xml
index 9c84974ff6..2ae2e53b02 100644
--- a/modules/regex/doc_classes/RegEx.xml
+++ b/modules/regex/doc_classes/RegEx.xml
@@ -116,6 +116,4 @@
</description>
</method>
</methods>
- <constants>
- </constants>
</class>
diff --git a/modules/regex/doc_classes/RegExMatch.xml b/modules/regex/doc_classes/RegExMatch.xml
index 3cde2836cc..20680b41fd 100644
--- a/modules/regex/doc_classes/RegExMatch.xml
+++ b/modules/regex/doc_classes/RegExMatch.xml
@@ -51,6 +51,4 @@
The source string used with the search pattern to find this matching result.
</member>
</members>
- <constants>
- </constants>
</class>
diff --git a/modules/text_server_adv/text_server_adv.cpp b/modules/text_server_adv/text_server_adv.cpp
index 22706f9b6a..acc447018d 100644
--- a/modules/text_server_adv/text_server_adv.cpp
+++ b/modules/text_server_adv/text_server_adv.cpp
@@ -131,20 +131,6 @@ hb_position_t TextServerAdvanced::hb_bmp_get_glyph_h_kerning(hb_font_t *p_font,
return bm_font->face->kerning_map[Vector2i(p_left_glyph, p_right_glyph)].x * 64;
}
-hb_position_t TextServerAdvanced::hb_bmp_get_glyph_v_kerning(hb_font_t *p_font, void *p_font_data, hb_codepoint_t p_left_glyph, hb_codepoint_t p_right_glyph, void *p_user_data) {
- const hb_bmp_font_t *bm_font = reinterpret_cast<const hb_bmp_font_t *>(p_font_data);
-
- if (!bm_font->face) {
- return 0;
- }
-
- if (!bm_font->face->kerning_map.has(Vector2i(p_left_glyph, p_right_glyph))) {
- return 0;
- }
-
- return bm_font->face->kerning_map[Vector2i(p_left_glyph, p_right_glyph)].y * 64;
-}
-
hb_bool_t TextServerAdvanced::hb_bmp_get_glyph_v_origin(hb_font_t *p_font, void *p_font_data, hb_codepoint_t p_glyph, hb_position_t *r_x, hb_position_t *r_y, void *p_user_data) {
const hb_bmp_font_t *bm_font = reinterpret_cast<const hb_bmp_font_t *>(p_font_data);
@@ -205,7 +191,6 @@ void TextServerAdvanced::hb_bmp_create_font_funcs() {
hb_font_funcs_set_glyph_v_advance_func(funcs, hb_bmp_get_glyph_v_advance, nullptr, nullptr);
hb_font_funcs_set_glyph_v_origin_func(funcs, hb_bmp_get_glyph_v_origin, nullptr, nullptr);
hb_font_funcs_set_glyph_h_kerning_func(funcs, hb_bmp_get_glyph_h_kerning, nullptr, nullptr);
- hb_font_funcs_set_glyph_v_kerning_func(funcs, hb_bmp_get_glyph_v_kerning, nullptr, nullptr);
hb_font_funcs_set_glyph_extents_func(funcs, hb_bmp_get_glyph_extents, nullptr, nullptr);
hb_font_funcs_make_immutable(funcs);
@@ -348,11 +333,11 @@ String TextServerAdvanced::get_name() const {
void TextServerAdvanced::free(RID p_rid) {
_THREAD_SAFE_METHOD_
if (font_owner.owns(p_rid)) {
- FontDataAdvanced *fd = font_owner.getornull(p_rid);
+ FontDataAdvanced *fd = font_owner.get_or_null(p_rid);
font_owner.free(p_rid);
memdelete(fd);
} else if (shaped_owner.owns(p_rid)) {
- ShapedTextDataAdvanced *sd = shaped_owner.getornull(p_rid);
+ ShapedTextDataAdvanced *sd = shaped_owner.get_or_null(p_rid);
shaped_owner.free(p_rid);
memdelete(sd);
}
@@ -1611,7 +1596,7 @@ _FORCE_INLINE_ void TextServerAdvanced::_font_clear_cache(FontDataAdvanced *p_fo
}
hb_font_t *TextServerAdvanced::_font_get_hb_handle(RID p_font_rid, int p_size) const {
- FontDataAdvanced *fd = font_owner.getornull(p_font_rid);
+ FontDataAdvanced *fd = font_owner.get_or_null(p_font_rid);
ERR_FAIL_COND_V(!fd, nullptr);
MutexLock lock(fd->mutex);
@@ -1629,7 +1614,7 @@ RID TextServerAdvanced::create_font() {
}
void TextServerAdvanced::font_set_data(RID p_font_rid, const PackedByteArray &p_data) {
- FontDataAdvanced *fd = font_owner.getornull(p_font_rid);
+ FontDataAdvanced *fd = font_owner.get_or_null(p_font_rid);
ERR_FAIL_COND(!fd);
MutexLock lock(fd->mutex);
@@ -1640,7 +1625,7 @@ void TextServerAdvanced::font_set_data(RID p_font_rid, const PackedByteArray &p_
}
void TextServerAdvanced::font_set_data_ptr(RID p_font_rid, const uint8_t *p_data_ptr, size_t p_data_size) {
- FontDataAdvanced *fd = font_owner.getornull(p_font_rid);
+ FontDataAdvanced *fd = font_owner.get_or_null(p_font_rid);
ERR_FAIL_COND(!fd);
MutexLock lock(fd->mutex);
@@ -1651,7 +1636,7 @@ void TextServerAdvanced::font_set_data_ptr(RID p_font_rid, const uint8_t *p_data
}
void TextServerAdvanced::font_set_antialiased(RID p_font_rid, bool p_antialiased) {
- FontDataAdvanced *fd = font_owner.getornull(p_font_rid);
+ FontDataAdvanced *fd = font_owner.get_or_null(p_font_rid);
ERR_FAIL_COND(!fd);
MutexLock lock(fd->mutex);
@@ -1662,7 +1647,7 @@ void TextServerAdvanced::font_set_antialiased(RID p_font_rid, bool p_antialiased
}
bool TextServerAdvanced::font_is_antialiased(RID p_font_rid) const {
- FontDataAdvanced *fd = font_owner.getornull(p_font_rid);
+ FontDataAdvanced *fd = font_owner.get_or_null(p_font_rid);
ERR_FAIL_COND_V(!fd, false);
MutexLock lock(fd->mutex);
@@ -1670,7 +1655,7 @@ bool TextServerAdvanced::font_is_antialiased(RID p_font_rid) const {
}
void TextServerAdvanced::font_set_multichannel_signed_distance_field(RID p_font_rid, bool p_msdf) {
- FontDataAdvanced *fd = font_owner.getornull(p_font_rid);
+ FontDataAdvanced *fd = font_owner.get_or_null(p_font_rid);
ERR_FAIL_COND(!fd);
MutexLock lock(fd->mutex);
@@ -1681,7 +1666,7 @@ void TextServerAdvanced::font_set_multichannel_signed_distance_field(RID p_font_
}
bool TextServerAdvanced::font_is_multichannel_signed_distance_field(RID p_font_rid) const {
- FontDataAdvanced *fd = font_owner.getornull(p_font_rid);
+ FontDataAdvanced *fd = font_owner.get_or_null(p_font_rid);
ERR_FAIL_COND_V(!fd, false);
MutexLock lock(fd->mutex);
@@ -1689,7 +1674,7 @@ bool TextServerAdvanced::font_is_multichannel_signed_distance_field(RID p_font_r
}
void TextServerAdvanced::font_set_msdf_pixel_range(RID p_font_rid, int p_msdf_pixel_range) {
- FontDataAdvanced *fd = font_owner.getornull(p_font_rid);
+ FontDataAdvanced *fd = font_owner.get_or_null(p_font_rid);
ERR_FAIL_COND(!fd);
MutexLock lock(fd->mutex);
@@ -1700,7 +1685,7 @@ void TextServerAdvanced::font_set_msdf_pixel_range(RID p_font_rid, int p_msdf_pi
}
int TextServerAdvanced::font_get_msdf_pixel_range(RID p_font_rid) const {
- FontDataAdvanced *fd = font_owner.getornull(p_font_rid);
+ FontDataAdvanced *fd = font_owner.get_or_null(p_font_rid);
ERR_FAIL_COND_V(!fd, false);
MutexLock lock(fd->mutex);
@@ -1708,7 +1693,7 @@ int TextServerAdvanced::font_get_msdf_pixel_range(RID p_font_rid) const {
}
void TextServerAdvanced::font_set_msdf_size(RID p_font_rid, int p_msdf_size) {
- FontDataAdvanced *fd = font_owner.getornull(p_font_rid);
+ FontDataAdvanced *fd = font_owner.get_or_null(p_font_rid);
ERR_FAIL_COND(!fd);
MutexLock lock(fd->mutex);
@@ -1719,7 +1704,7 @@ void TextServerAdvanced::font_set_msdf_size(RID p_font_rid, int p_msdf_size) {
}
int TextServerAdvanced::font_get_msdf_size(RID p_font_rid) const {
- FontDataAdvanced *fd = font_owner.getornull(p_font_rid);
+ FontDataAdvanced *fd = font_owner.get_or_null(p_font_rid);
ERR_FAIL_COND_V(!fd, false);
MutexLock lock(fd->mutex);
@@ -1727,7 +1712,7 @@ int TextServerAdvanced::font_get_msdf_size(RID p_font_rid) const {
}
void TextServerAdvanced::font_set_fixed_size(RID p_font_rid, int p_fixed_size) {
- FontDataAdvanced *fd = font_owner.getornull(p_font_rid);
+ FontDataAdvanced *fd = font_owner.get_or_null(p_font_rid);
ERR_FAIL_COND(!fd);
MutexLock lock(fd->mutex);
@@ -1737,7 +1722,7 @@ void TextServerAdvanced::font_set_fixed_size(RID p_font_rid, int p_fixed_size) {
}
int TextServerAdvanced::font_get_fixed_size(RID p_font_rid) const {
- FontDataAdvanced *fd = font_owner.getornull(p_font_rid);
+ FontDataAdvanced *fd = font_owner.get_or_null(p_font_rid);
ERR_FAIL_COND_V(!fd, false);
MutexLock lock(fd->mutex);
@@ -1745,7 +1730,7 @@ int TextServerAdvanced::font_get_fixed_size(RID p_font_rid) const {
}
void TextServerAdvanced::font_set_force_autohinter(RID p_font_rid, bool p_force_autohinter) {
- FontDataAdvanced *fd = font_owner.getornull(p_font_rid);
+ FontDataAdvanced *fd = font_owner.get_or_null(p_font_rid);
ERR_FAIL_COND(!fd);
MutexLock lock(fd->mutex);
@@ -1756,7 +1741,7 @@ void TextServerAdvanced::font_set_force_autohinter(RID p_font_rid, bool p_force_
}
bool TextServerAdvanced::font_is_force_autohinter(RID p_font_rid) const {
- FontDataAdvanced *fd = font_owner.getornull(p_font_rid);
+ FontDataAdvanced *fd = font_owner.get_or_null(p_font_rid);
ERR_FAIL_COND_V(!fd, false);
MutexLock lock(fd->mutex);
@@ -1764,7 +1749,7 @@ bool TextServerAdvanced::font_is_force_autohinter(RID p_font_rid) const {
}
void TextServerAdvanced::font_set_hinting(RID p_font_rid, TextServer::Hinting p_hinting) {
- FontDataAdvanced *fd = font_owner.getornull(p_font_rid);
+ FontDataAdvanced *fd = font_owner.get_or_null(p_font_rid);
ERR_FAIL_COND(!fd);
MutexLock lock(fd->mutex);
@@ -1775,7 +1760,7 @@ void TextServerAdvanced::font_set_hinting(RID p_font_rid, TextServer::Hinting p_
}
TextServer::Hinting TextServerAdvanced::font_get_hinting(RID p_font_rid) const {
- FontDataAdvanced *fd = font_owner.getornull(p_font_rid);
+ FontDataAdvanced *fd = font_owner.get_or_null(p_font_rid);
ERR_FAIL_COND_V(!fd, HINTING_NONE);
MutexLock lock(fd->mutex);
@@ -1783,7 +1768,7 @@ TextServer::Hinting TextServerAdvanced::font_get_hinting(RID p_font_rid) const {
}
void TextServerAdvanced::font_set_variation_coordinates(RID p_font_rid, const Dictionary &p_variation_coordinates) {
- FontDataAdvanced *fd = font_owner.getornull(p_font_rid);
+ FontDataAdvanced *fd = font_owner.get_or_null(p_font_rid);
ERR_FAIL_COND(!fd);
MutexLock lock(fd->mutex);
@@ -1794,7 +1779,7 @@ void TextServerAdvanced::font_set_variation_coordinates(RID p_font_rid, const Di
}
Dictionary TextServerAdvanced::font_get_variation_coordinates(RID p_font_rid) const {
- FontDataAdvanced *fd = font_owner.getornull(p_font_rid);
+ FontDataAdvanced *fd = font_owner.get_or_null(p_font_rid);
ERR_FAIL_COND_V(!fd, Dictionary());
MutexLock lock(fd->mutex);
@@ -1802,7 +1787,7 @@ Dictionary TextServerAdvanced::font_get_variation_coordinates(RID p_font_rid) co
}
void TextServerAdvanced::font_set_oversampling(RID p_font_rid, real_t p_oversampling) {
- FontDataAdvanced *fd = font_owner.getornull(p_font_rid);
+ FontDataAdvanced *fd = font_owner.get_or_null(p_font_rid);
ERR_FAIL_COND(!fd);
MutexLock lock(fd->mutex);
@@ -1813,7 +1798,7 @@ void TextServerAdvanced::font_set_oversampling(RID p_font_rid, real_t p_oversamp
}
real_t TextServerAdvanced::font_get_oversampling(RID p_font_rid) const {
- FontDataAdvanced *fd = font_owner.getornull(p_font_rid);
+ FontDataAdvanced *fd = font_owner.get_or_null(p_font_rid);
ERR_FAIL_COND_V(!fd, 0.f);
MutexLock lock(fd->mutex);
@@ -1821,7 +1806,7 @@ real_t TextServerAdvanced::font_get_oversampling(RID p_font_rid) const {
}
Array TextServerAdvanced::font_get_size_cache_list(RID p_font_rid) const {
- FontDataAdvanced *fd = font_owner.getornull(p_font_rid);
+ FontDataAdvanced *fd = font_owner.get_or_null(p_font_rid);
ERR_FAIL_COND_V(!fd, Array());
MutexLock lock(fd->mutex);
@@ -1833,7 +1818,7 @@ Array TextServerAdvanced::font_get_size_cache_list(RID p_font_rid) const {
}
void TextServerAdvanced::font_clear_size_cache(RID p_font_rid) {
- FontDataAdvanced *fd = font_owner.getornull(p_font_rid);
+ FontDataAdvanced *fd = font_owner.get_or_null(p_font_rid);
ERR_FAIL_COND(!fd);
MutexLock lock(fd->mutex);
@@ -1844,7 +1829,7 @@ void TextServerAdvanced::font_clear_size_cache(RID p_font_rid) {
}
void TextServerAdvanced::font_remove_size_cache(RID p_font_rid, const Vector2i &p_size) {
- FontDataAdvanced *fd = font_owner.getornull(p_font_rid);
+ FontDataAdvanced *fd = font_owner.get_or_null(p_font_rid);
ERR_FAIL_COND(!fd);
MutexLock lock(fd->mutex);
@@ -1855,7 +1840,7 @@ void TextServerAdvanced::font_remove_size_cache(RID p_font_rid, const Vector2i &
}
void TextServerAdvanced::font_set_ascent(RID p_font_rid, int p_size, real_t p_ascent) {
- FontDataAdvanced *fd = font_owner.getornull(p_font_rid);
+ FontDataAdvanced *fd = font_owner.get_or_null(p_font_rid);
ERR_FAIL_COND(!fd);
MutexLock lock(fd->mutex);
@@ -1866,7 +1851,7 @@ void TextServerAdvanced::font_set_ascent(RID p_font_rid, int p_size, real_t p_as
}
real_t TextServerAdvanced::font_get_ascent(RID p_font_rid, int p_size) const {
- FontDataAdvanced *fd = font_owner.getornull(p_font_rid);
+ FontDataAdvanced *fd = font_owner.get_or_null(p_font_rid);
ERR_FAIL_COND_V(!fd, 0.f);
MutexLock lock(fd->mutex);
@@ -1882,7 +1867,7 @@ real_t TextServerAdvanced::font_get_ascent(RID p_font_rid, int p_size) const {
}
void TextServerAdvanced::font_set_descent(RID p_font_rid, int p_size, real_t p_descent) {
- FontDataAdvanced *fd = font_owner.getornull(p_font_rid);
+ FontDataAdvanced *fd = font_owner.get_or_null(p_font_rid);
ERR_FAIL_COND(!fd);
Vector2i size = _get_size(fd, p_size);
@@ -1892,7 +1877,7 @@ void TextServerAdvanced::font_set_descent(RID p_font_rid, int p_size, real_t p_d
}
real_t TextServerAdvanced::font_get_descent(RID p_font_rid, int p_size) const {
- FontDataAdvanced *fd = font_owner.getornull(p_font_rid);
+ FontDataAdvanced *fd = font_owner.get_or_null(p_font_rid);
ERR_FAIL_COND_V(!fd, 0.f);
MutexLock lock(fd->mutex);
@@ -1908,7 +1893,7 @@ real_t TextServerAdvanced::font_get_descent(RID p_font_rid, int p_size) const {
}
void TextServerAdvanced::font_set_underline_position(RID p_font_rid, int p_size, real_t p_underline_position) {
- FontDataAdvanced *fd = font_owner.getornull(p_font_rid);
+ FontDataAdvanced *fd = font_owner.get_or_null(p_font_rid);
ERR_FAIL_COND(!fd);
MutexLock lock(fd->mutex);
@@ -1919,7 +1904,7 @@ void TextServerAdvanced::font_set_underline_position(RID p_font_rid, int p_size,
}
real_t TextServerAdvanced::font_get_underline_position(RID p_font_rid, int p_size) const {
- FontDataAdvanced *fd = font_owner.getornull(p_font_rid);
+ FontDataAdvanced *fd = font_owner.get_or_null(p_font_rid);
ERR_FAIL_COND_V(!fd, 0.f);
MutexLock lock(fd->mutex);
@@ -1935,7 +1920,7 @@ real_t TextServerAdvanced::font_get_underline_position(RID p_font_rid, int p_siz
}
void TextServerAdvanced::font_set_underline_thickness(RID p_font_rid, int p_size, real_t p_underline_thickness) {
- FontDataAdvanced *fd = font_owner.getornull(p_font_rid);
+ FontDataAdvanced *fd = font_owner.get_or_null(p_font_rid);
ERR_FAIL_COND(!fd);
MutexLock lock(fd->mutex);
@@ -1946,7 +1931,7 @@ void TextServerAdvanced::font_set_underline_thickness(RID p_font_rid, int p_size
}
real_t TextServerAdvanced::font_get_underline_thickness(RID p_font_rid, int p_size) const {
- FontDataAdvanced *fd = font_owner.getornull(p_font_rid);
+ FontDataAdvanced *fd = font_owner.get_or_null(p_font_rid);
ERR_FAIL_COND_V(!fd, 0.f);
MutexLock lock(fd->mutex);
@@ -1962,7 +1947,7 @@ real_t TextServerAdvanced::font_get_underline_thickness(RID p_font_rid, int p_si
}
void TextServerAdvanced::font_set_scale(RID p_font_rid, int p_size, real_t p_scale) {
- FontDataAdvanced *fd = font_owner.getornull(p_font_rid);
+ FontDataAdvanced *fd = font_owner.get_or_null(p_font_rid);
ERR_FAIL_COND(!fd);
MutexLock lock(fd->mutex);
@@ -1973,7 +1958,7 @@ void TextServerAdvanced::font_set_scale(RID p_font_rid, int p_size, real_t p_sca
}
real_t TextServerAdvanced::font_get_scale(RID p_font_rid, int p_size) const {
- FontDataAdvanced *fd = font_owner.getornull(p_font_rid);
+ FontDataAdvanced *fd = font_owner.get_or_null(p_font_rid);
ERR_FAIL_COND_V(!fd, 0.f);
MutexLock lock(fd->mutex);
@@ -1989,7 +1974,7 @@ real_t TextServerAdvanced::font_get_scale(RID p_font_rid, int p_size) const {
}
void TextServerAdvanced::font_set_spacing(RID p_font_rid, int p_size, TextServer::SpacingType p_spacing, int p_value) {
- FontDataAdvanced *fd = font_owner.getornull(p_font_rid);
+ FontDataAdvanced *fd = font_owner.get_or_null(p_font_rid);
ERR_FAIL_COND(!fd);
MutexLock lock(fd->mutex);
@@ -2010,7 +1995,7 @@ void TextServerAdvanced::font_set_spacing(RID p_font_rid, int p_size, TextServer
}
int TextServerAdvanced::font_get_spacing(RID p_font_rid, int p_size, TextServer::SpacingType p_spacing) const {
- FontDataAdvanced *fd = font_owner.getornull(p_font_rid);
+ FontDataAdvanced *fd = font_owner.get_or_null(p_font_rid);
ERR_FAIL_COND_V(!fd, 0);
MutexLock lock(fd->mutex);
@@ -2041,7 +2026,7 @@ int TextServerAdvanced::font_get_spacing(RID p_font_rid, int p_size, TextServer:
}
int TextServerAdvanced::font_get_texture_count(RID p_font_rid, const Vector2i &p_size) const {
- FontDataAdvanced *fd = font_owner.getornull(p_font_rid);
+ FontDataAdvanced *fd = font_owner.get_or_null(p_font_rid);
ERR_FAIL_COND_V(!fd, 0);
MutexLock lock(fd->mutex);
@@ -2053,7 +2038,7 @@ int TextServerAdvanced::font_get_texture_count(RID p_font_rid, const Vector2i &p
}
void TextServerAdvanced::font_clear_textures(RID p_font_rid, const Vector2i &p_size) {
- FontDataAdvanced *fd = font_owner.getornull(p_font_rid);
+ FontDataAdvanced *fd = font_owner.get_or_null(p_font_rid);
ERR_FAIL_COND(!fd);
MutexLock lock(fd->mutex);
Vector2i size = _get_size_outline(fd, p_size);
@@ -2063,7 +2048,7 @@ void TextServerAdvanced::font_clear_textures(RID p_font_rid, const Vector2i &p_s
}
void TextServerAdvanced::font_remove_texture(RID p_font_rid, const Vector2i &p_size, int p_texture_index) {
- FontDataAdvanced *fd = font_owner.getornull(p_font_rid);
+ FontDataAdvanced *fd = font_owner.get_or_null(p_font_rid);
ERR_FAIL_COND(!fd);
MutexLock lock(fd->mutex);
@@ -2075,7 +2060,7 @@ void TextServerAdvanced::font_remove_texture(RID p_font_rid, const Vector2i &p_s
}
void TextServerAdvanced::font_set_texture_image(RID p_font_rid, const Vector2i &p_size, int p_texture_index, const Ref<Image> &p_image) {
- FontDataAdvanced *fd = font_owner.getornull(p_font_rid);
+ FontDataAdvanced *fd = font_owner.get_or_null(p_font_rid);
ERR_FAIL_COND(!fd);
ERR_FAIL_COND(p_image.is_null());
@@ -2101,7 +2086,7 @@ void TextServerAdvanced::font_set_texture_image(RID p_font_rid, const Vector2i &
}
Ref<Image> TextServerAdvanced::font_get_texture_image(RID p_font_rid, const Vector2i &p_size, int p_texture_index) const {
- FontDataAdvanced *fd = font_owner.getornull(p_font_rid);
+ FontDataAdvanced *fd = font_owner.get_or_null(p_font_rid);
ERR_FAIL_COND_V(!fd, Ref<Image>());
MutexLock lock(fd->mutex);
@@ -2116,7 +2101,7 @@ Ref<Image> TextServerAdvanced::font_get_texture_image(RID p_font_rid, const Vect
}
void TextServerAdvanced::font_set_texture_offsets(RID p_font_rid, const Vector2i &p_size, int p_texture_index, const PackedInt32Array &p_offset) {
- FontDataAdvanced *fd = font_owner.getornull(p_font_rid);
+ FontDataAdvanced *fd = font_owner.get_or_null(p_font_rid);
ERR_FAIL_COND(!fd);
MutexLock lock(fd->mutex);
@@ -2131,7 +2116,7 @@ void TextServerAdvanced::font_set_texture_offsets(RID p_font_rid, const Vector2i
}
PackedInt32Array TextServerAdvanced::font_get_texture_offsets(RID p_font_rid, const Vector2i &p_size, int p_texture_index) const {
- FontDataAdvanced *fd = font_owner.getornull(p_font_rid);
+ FontDataAdvanced *fd = font_owner.get_or_null(p_font_rid);
ERR_FAIL_COND_V(!fd, PackedInt32Array());
MutexLock lock(fd->mutex);
@@ -2144,7 +2129,7 @@ PackedInt32Array TextServerAdvanced::font_get_texture_offsets(RID p_font_rid, co
}
Array TextServerAdvanced::font_get_glyph_list(RID p_font_rid, const Vector2i &p_size) const {
- FontDataAdvanced *fd = font_owner.getornull(p_font_rid);
+ FontDataAdvanced *fd = font_owner.get_or_null(p_font_rid);
ERR_FAIL_COND_V(!fd, Array());
MutexLock lock(fd->mutex);
@@ -2161,7 +2146,7 @@ Array TextServerAdvanced::font_get_glyph_list(RID p_font_rid, const Vector2i &p_
}
void TextServerAdvanced::font_clear_glyphs(RID p_font_rid, const Vector2i &p_size) {
- FontDataAdvanced *fd = font_owner.getornull(p_font_rid);
+ FontDataAdvanced *fd = font_owner.get_or_null(p_font_rid);
ERR_FAIL_COND(!fd);
MutexLock lock(fd->mutex);
@@ -2172,7 +2157,7 @@ void TextServerAdvanced::font_clear_glyphs(RID p_font_rid, const Vector2i &p_siz
}
void TextServerAdvanced::font_remove_glyph(RID p_font_rid, const Vector2i &p_size, int32_t p_glyph) {
- FontDataAdvanced *fd = font_owner.getornull(p_font_rid);
+ FontDataAdvanced *fd = font_owner.get_or_null(p_font_rid);
ERR_FAIL_COND(!fd);
MutexLock lock(fd->mutex);
@@ -2183,7 +2168,7 @@ void TextServerAdvanced::font_remove_glyph(RID p_font_rid, const Vector2i &p_siz
}
Vector2 TextServerAdvanced::font_get_glyph_advance(RID p_font_rid, int p_size, int32_t p_glyph) const {
- FontDataAdvanced *fd = font_owner.getornull(p_font_rid);
+ FontDataAdvanced *fd = font_owner.get_or_null(p_font_rid);
ERR_FAIL_COND_V(!fd, Vector2());
MutexLock lock(fd->mutex);
@@ -2204,7 +2189,7 @@ Vector2 TextServerAdvanced::font_get_glyph_advance(RID p_font_rid, int p_size, i
}
void TextServerAdvanced::font_set_glyph_advance(RID p_font_rid, int p_size, int32_t p_glyph, const Vector2 &p_advance) {
- FontDataAdvanced *fd = font_owner.getornull(p_font_rid);
+ FontDataAdvanced *fd = font_owner.get_or_null(p_font_rid);
ERR_FAIL_COND(!fd);
MutexLock lock(fd->mutex);
@@ -2219,7 +2204,7 @@ void TextServerAdvanced::font_set_glyph_advance(RID p_font_rid, int p_size, int3
}
Vector2 TextServerAdvanced::font_get_glyph_offset(RID p_font_rid, const Vector2i &p_size, int32_t p_glyph) const {
- FontDataAdvanced *fd = font_owner.getornull(p_font_rid);
+ FontDataAdvanced *fd = font_owner.get_or_null(p_font_rid);
ERR_FAIL_COND_V(!fd, Vector2());
MutexLock lock(fd->mutex);
@@ -2240,7 +2225,7 @@ Vector2 TextServerAdvanced::font_get_glyph_offset(RID p_font_rid, const Vector2i
}
void TextServerAdvanced::font_set_glyph_offset(RID p_font_rid, const Vector2i &p_size, int32_t p_glyph, const Vector2 &p_offset) {
- FontDataAdvanced *fd = font_owner.getornull(p_font_rid);
+ FontDataAdvanced *fd = font_owner.get_or_null(p_font_rid);
ERR_FAIL_COND(!fd);
MutexLock lock(fd->mutex);
@@ -2255,7 +2240,7 @@ void TextServerAdvanced::font_set_glyph_offset(RID p_font_rid, const Vector2i &p
}
Vector2 TextServerAdvanced::font_get_glyph_size(RID p_font_rid, const Vector2i &p_size, int32_t p_glyph) const {
- FontDataAdvanced *fd = font_owner.getornull(p_font_rid);
+ FontDataAdvanced *fd = font_owner.get_or_null(p_font_rid);
ERR_FAIL_COND_V(!fd, Vector2());
MutexLock lock(fd->mutex);
@@ -2276,7 +2261,7 @@ Vector2 TextServerAdvanced::font_get_glyph_size(RID p_font_rid, const Vector2i &
}
void TextServerAdvanced::font_set_glyph_size(RID p_font_rid, const Vector2i &p_size, int32_t p_glyph, const Vector2 &p_gl_size) {
- FontDataAdvanced *fd = font_owner.getornull(p_font_rid);
+ FontDataAdvanced *fd = font_owner.get_or_null(p_font_rid);
ERR_FAIL_COND(!fd);
MutexLock lock(fd->mutex);
@@ -2291,7 +2276,7 @@ void TextServerAdvanced::font_set_glyph_size(RID p_font_rid, const Vector2i &p_s
}
Rect2 TextServerAdvanced::font_get_glyph_uv_rect(RID p_font_rid, const Vector2i &p_size, int32_t p_glyph) const {
- FontDataAdvanced *fd = font_owner.getornull(p_font_rid);
+ FontDataAdvanced *fd = font_owner.get_or_null(p_font_rid);
ERR_FAIL_COND_V(!fd, Rect2());
MutexLock lock(fd->mutex);
@@ -2307,7 +2292,7 @@ Rect2 TextServerAdvanced::font_get_glyph_uv_rect(RID p_font_rid, const Vector2i
}
void TextServerAdvanced::font_set_glyph_uv_rect(RID p_font_rid, const Vector2i &p_size, int32_t p_glyph, const Rect2 &p_uv_rect) {
- FontDataAdvanced *fd = font_owner.getornull(p_font_rid);
+ FontDataAdvanced *fd = font_owner.get_or_null(p_font_rid);
ERR_FAIL_COND(!fd);
MutexLock lock(fd->mutex);
@@ -2322,7 +2307,7 @@ void TextServerAdvanced::font_set_glyph_uv_rect(RID p_font_rid, const Vector2i &
}
int TextServerAdvanced::font_get_glyph_texture_idx(RID p_font_rid, const Vector2i &p_size, int32_t p_glyph) const {
- FontDataAdvanced *fd = font_owner.getornull(p_font_rid);
+ FontDataAdvanced *fd = font_owner.get_or_null(p_font_rid);
ERR_FAIL_COND_V(!fd, -1);
MutexLock lock(fd->mutex);
@@ -2338,7 +2323,7 @@ int TextServerAdvanced::font_get_glyph_texture_idx(RID p_font_rid, const Vector2
}
void TextServerAdvanced::font_set_glyph_texture_idx(RID p_font_rid, const Vector2i &p_size, int32_t p_glyph, int p_texture_idx) {
- FontDataAdvanced *fd = font_owner.getornull(p_font_rid);
+ FontDataAdvanced *fd = font_owner.get_or_null(p_font_rid);
ERR_FAIL_COND(!fd);
MutexLock lock(fd->mutex);
@@ -2353,7 +2338,7 @@ void TextServerAdvanced::font_set_glyph_texture_idx(RID p_font_rid, const Vector
}
bool TextServerAdvanced::font_get_glyph_contours(RID p_font_rid, int p_size, int32_t p_index, Vector<Vector3> &r_points, Vector<int32_t> &r_contours, bool &r_orientation) const {
- FontDataAdvanced *fd = font_owner.getornull(p_font_rid);
+ FontDataAdvanced *fd = font_owner.get_or_null(p_font_rid);
ERR_FAIL_COND_V(!fd, false);
MutexLock lock(fd->mutex);
@@ -2387,7 +2372,7 @@ bool TextServerAdvanced::font_get_glyph_contours(RID p_font_rid, int p_size, int
}
Array TextServerAdvanced::font_get_kerning_list(RID p_font_rid, int p_size) const {
- FontDataAdvanced *fd = font_owner.getornull(p_font_rid);
+ FontDataAdvanced *fd = font_owner.get_or_null(p_font_rid);
ERR_FAIL_COND_V(!fd, Array());
MutexLock lock(fd->mutex);
@@ -2403,7 +2388,7 @@ Array TextServerAdvanced::font_get_kerning_list(RID p_font_rid, int p_size) cons
}
void TextServerAdvanced::font_clear_kerning_map(RID p_font_rid, int p_size) {
- FontDataAdvanced *fd = font_owner.getornull(p_font_rid);
+ FontDataAdvanced *fd = font_owner.get_or_null(p_font_rid);
ERR_FAIL_COND(!fd);
MutexLock lock(fd->mutex);
@@ -2414,7 +2399,7 @@ void TextServerAdvanced::font_clear_kerning_map(RID p_font_rid, int p_size) {
}
void TextServerAdvanced::font_remove_kerning(RID p_font_rid, int p_size, const Vector2i &p_glyph_pair) {
- FontDataAdvanced *fd = font_owner.getornull(p_font_rid);
+ FontDataAdvanced *fd = font_owner.get_or_null(p_font_rid);
ERR_FAIL_COND(!fd);
MutexLock lock(fd->mutex);
@@ -2425,7 +2410,7 @@ void TextServerAdvanced::font_remove_kerning(RID p_font_rid, int p_size, const V
}
void TextServerAdvanced::font_set_kerning(RID p_font_rid, int p_size, const Vector2i &p_glyph_pair, const Vector2 &p_kerning) {
- FontDataAdvanced *fd = font_owner.getornull(p_font_rid);
+ FontDataAdvanced *fd = font_owner.get_or_null(p_font_rid);
ERR_FAIL_COND(!fd);
MutexLock lock(fd->mutex);
@@ -2436,7 +2421,7 @@ void TextServerAdvanced::font_set_kerning(RID p_font_rid, int p_size, const Vect
}
Vector2 TextServerAdvanced::font_get_kerning(RID p_font_rid, int p_size, const Vector2i &p_glyph_pair) const {
- FontDataAdvanced *fd = font_owner.getornull(p_font_rid);
+ FontDataAdvanced *fd = font_owner.get_or_null(p_font_rid);
ERR_FAIL_COND_V(!fd, Vector2());
MutexLock lock(fd->mutex);
@@ -2469,7 +2454,7 @@ Vector2 TextServerAdvanced::font_get_kerning(RID p_font_rid, int p_size, const V
}
int32_t TextServerAdvanced::font_get_glyph_index(RID p_font_rid, int p_size, char32_t p_char, char32_t p_variation_selector) const {
- FontDataAdvanced *fd = font_owner.getornull(p_font_rid);
+ FontDataAdvanced *fd = font_owner.get_or_null(p_font_rid);
ERR_FAIL_COND_V(!fd, 0);
MutexLock lock(fd->mutex);
@@ -2492,7 +2477,7 @@ int32_t TextServerAdvanced::font_get_glyph_index(RID p_font_rid, int p_size, cha
}
bool TextServerAdvanced::font_has_char(RID p_font_rid, char32_t p_char) const {
- FontDataAdvanced *fd = font_owner.getornull(p_font_rid);
+ FontDataAdvanced *fd = font_owner.get_or_null(p_font_rid);
ERR_FAIL_COND_V(!fd, false);
MutexLock lock(fd->mutex);
@@ -2510,7 +2495,7 @@ bool TextServerAdvanced::font_has_char(RID p_font_rid, char32_t p_char) const {
}
String TextServerAdvanced::font_get_supported_chars(RID p_font_rid) const {
- FontDataAdvanced *fd = font_owner.getornull(p_font_rid);
+ FontDataAdvanced *fd = font_owner.get_or_null(p_font_rid);
ERR_FAIL_COND_V(!fd, String());
MutexLock lock(fd->mutex);
@@ -2544,7 +2529,7 @@ String TextServerAdvanced::font_get_supported_chars(RID p_font_rid) const {
}
void TextServerAdvanced::font_render_range(RID p_font_rid, const Vector2i &p_size, char32_t p_start, char32_t p_end) {
- FontDataAdvanced *fd = font_owner.getornull(p_font_rid);
+ FontDataAdvanced *fd = font_owner.get_or_null(p_font_rid);
ERR_FAIL_COND(!fd);
MutexLock lock(fd->mutex);
@@ -2562,7 +2547,7 @@ void TextServerAdvanced::font_render_range(RID p_font_rid, const Vector2i &p_siz
}
void TextServerAdvanced::font_render_glyph(RID p_font_rid, const Vector2i &p_size, int32_t p_index) {
- FontDataAdvanced *fd = font_owner.getornull(p_font_rid);
+ FontDataAdvanced *fd = font_owner.get_or_null(p_font_rid);
ERR_FAIL_COND(!fd);
MutexLock lock(fd->mutex);
@@ -2572,7 +2557,7 @@ void TextServerAdvanced::font_render_glyph(RID p_font_rid, const Vector2i &p_siz
}
void TextServerAdvanced::font_draw_glyph(RID p_font_rid, RID p_canvas, int p_size, const Vector2 &p_pos, int32_t p_index, const Color &p_color) const {
- FontDataAdvanced *fd = font_owner.getornull(p_font_rid);
+ FontDataAdvanced *fd = font_owner.get_or_null(p_font_rid);
ERR_FAIL_COND(!fd);
MutexLock lock(fd->mutex);
@@ -2612,7 +2597,7 @@ void TextServerAdvanced::font_draw_glyph(RID p_font_rid, RID p_canvas, int p_siz
}
void TextServerAdvanced::font_draw_glyph_outline(RID p_font_rid, RID p_canvas, int p_size, int p_outline_size, const Vector2 &p_pos, int32_t p_index, const Color &p_color) const {
- FontDataAdvanced *fd = font_owner.getornull(p_font_rid);
+ FontDataAdvanced *fd = font_owner.get_or_null(p_font_rid);
ERR_FAIL_COND(!fd);
MutexLock lock(fd->mutex);
@@ -2652,7 +2637,7 @@ void TextServerAdvanced::font_draw_glyph_outline(RID p_font_rid, RID p_canvas, i
}
bool TextServerAdvanced::font_is_language_supported(RID p_font_rid, const String &p_language) const {
- FontDataAdvanced *fd = font_owner.getornull(p_font_rid);
+ FontDataAdvanced *fd = font_owner.get_or_null(p_font_rid);
ERR_FAIL_COND_V(!fd, false);
MutexLock lock(fd->mutex);
@@ -2664,7 +2649,7 @@ bool TextServerAdvanced::font_is_language_supported(RID p_font_rid, const String
}
void TextServerAdvanced::font_set_language_support_override(RID p_font_rid, const String &p_language, bool p_supported) {
- FontDataAdvanced *fd = font_owner.getornull(p_font_rid);
+ FontDataAdvanced *fd = font_owner.get_or_null(p_font_rid);
ERR_FAIL_COND(!fd);
MutexLock lock(fd->mutex);
@@ -2672,7 +2657,7 @@ void TextServerAdvanced::font_set_language_support_override(RID p_font_rid, cons
}
bool TextServerAdvanced::font_get_language_support_override(RID p_font_rid, const String &p_language) {
- FontDataAdvanced *fd = font_owner.getornull(p_font_rid);
+ FontDataAdvanced *fd = font_owner.get_or_null(p_font_rid);
ERR_FAIL_COND_V(!fd, false);
MutexLock lock(fd->mutex);
@@ -2680,7 +2665,7 @@ bool TextServerAdvanced::font_get_language_support_override(RID p_font_rid, cons
}
void TextServerAdvanced::font_remove_language_support_override(RID p_font_rid, const String &p_language) {
- FontDataAdvanced *fd = font_owner.getornull(p_font_rid);
+ FontDataAdvanced *fd = font_owner.get_or_null(p_font_rid);
ERR_FAIL_COND(!fd);
MutexLock lock(fd->mutex);
@@ -2688,7 +2673,7 @@ void TextServerAdvanced::font_remove_language_support_override(RID p_font_rid, c
}
Vector<String> TextServerAdvanced::font_get_language_support_overrides(RID p_font_rid) {
- FontDataAdvanced *fd = font_owner.getornull(p_font_rid);
+ FontDataAdvanced *fd = font_owner.get_or_null(p_font_rid);
ERR_FAIL_COND_V(!fd, Vector<String>());
MutexLock lock(fd->mutex);
@@ -2700,7 +2685,7 @@ Vector<String> TextServerAdvanced::font_get_language_support_overrides(RID p_fon
}
bool TextServerAdvanced::font_is_script_supported(RID p_font_rid, const String &p_script) const {
- FontDataAdvanced *fd = font_owner.getornull(p_font_rid);
+ FontDataAdvanced *fd = font_owner.get_or_null(p_font_rid);
ERR_FAIL_COND_V(!fd, false);
MutexLock lock(fd->mutex);
@@ -2714,7 +2699,7 @@ bool TextServerAdvanced::font_is_script_supported(RID p_font_rid, const String &
}
void TextServerAdvanced::font_set_script_support_override(RID p_font_rid, const String &p_script, bool p_supported) {
- FontDataAdvanced *fd = font_owner.getornull(p_font_rid);
+ FontDataAdvanced *fd = font_owner.get_or_null(p_font_rid);
ERR_FAIL_COND(!fd);
MutexLock lock(fd->mutex);
@@ -2722,7 +2707,7 @@ void TextServerAdvanced::font_set_script_support_override(RID p_font_rid, const
}
bool TextServerAdvanced::font_get_script_support_override(RID p_font_rid, const String &p_script) {
- FontDataAdvanced *fd = font_owner.getornull(p_font_rid);
+ FontDataAdvanced *fd = font_owner.get_or_null(p_font_rid);
ERR_FAIL_COND_V(!fd, false);
MutexLock lock(fd->mutex);
@@ -2730,7 +2715,7 @@ bool TextServerAdvanced::font_get_script_support_override(RID p_font_rid, const
}
void TextServerAdvanced::font_remove_script_support_override(RID p_font_rid, const String &p_script) {
- FontDataAdvanced *fd = font_owner.getornull(p_font_rid);
+ FontDataAdvanced *fd = font_owner.get_or_null(p_font_rid);
ERR_FAIL_COND(!fd);
MutexLock lock(fd->mutex);
@@ -2738,7 +2723,7 @@ void TextServerAdvanced::font_remove_script_support_override(RID p_font_rid, con
}
Vector<String> TextServerAdvanced::font_get_script_support_overrides(RID p_font_rid) {
- FontDataAdvanced *fd = font_owner.getornull(p_font_rid);
+ FontDataAdvanced *fd = font_owner.get_or_null(p_font_rid);
ERR_FAIL_COND_V(!fd, Vector<String>());
MutexLock lock(fd->mutex);
@@ -2750,7 +2735,7 @@ Vector<String> TextServerAdvanced::font_get_script_support_overrides(RID p_font_
}
Dictionary TextServerAdvanced::font_supported_feature_list(RID p_font_rid) const {
- FontDataAdvanced *fd = font_owner.getornull(p_font_rid);
+ FontDataAdvanced *fd = font_owner.get_or_null(p_font_rid);
ERR_FAIL_COND_V(!fd, Dictionary());
MutexLock lock(fd->mutex);
@@ -2760,7 +2745,7 @@ Dictionary TextServerAdvanced::font_supported_feature_list(RID p_font_rid) const
}
Dictionary TextServerAdvanced::font_supported_variation_list(RID p_font_rid) const {
- FontDataAdvanced *fd = font_owner.getornull(p_font_rid);
+ FontDataAdvanced *fd = font_owner.get_or_null(p_font_rid);
ERR_FAIL_COND_V(!fd, Dictionary());
MutexLock lock(fd->mutex);
@@ -2791,7 +2776,7 @@ void TextServerAdvanced::font_set_global_oversampling(real_t p_oversampling) {
List<RID> text_bufs;
shaped_owner.get_owned_list(&text_bufs);
for (const RID &E : text_bufs) {
- invalidate(shaped_owner.getornull(E));
+ invalidate(shaped_owner.get_or_null(E));
}
}
}
@@ -2852,7 +2837,7 @@ void TextServerAdvanced::invalidate(TextServerAdvanced::ShapedTextDataAdvanced *
}
void TextServerAdvanced::full_copy(ShapedTextDataAdvanced *p_shaped) {
- ShapedTextDataAdvanced *parent = shaped_owner.getornull(p_shaped->parent);
+ ShapedTextDataAdvanced *parent = shaped_owner.get_or_null(p_shaped->parent);
for (Map<Variant, ShapedTextData::EmbeddedObject>::Element *E = parent->objects.front(); E; E = E->next()) {
if (E->get().pos >= p_shaped->start && E->get().pos < p_shaped->end) {
@@ -2883,7 +2868,7 @@ RID TextServerAdvanced::create_shaped_text(TextServer::Direction p_direction, Te
}
void TextServerAdvanced::shaped_text_clear(RID p_shaped) {
- ShapedTextDataAdvanced *sd = shaped_owner.getornull(p_shaped);
+ ShapedTextDataAdvanced *sd = shaped_owner.get_or_null(p_shaped);
ERR_FAIL_COND(!sd);
MutexLock lock(sd->mutex);
@@ -2898,7 +2883,7 @@ void TextServerAdvanced::shaped_text_clear(RID p_shaped) {
}
void TextServerAdvanced::shaped_text_set_direction(RID p_shaped, TextServer::Direction p_direction) {
- ShapedTextDataAdvanced *sd = shaped_owner.getornull(p_shaped);
+ ShapedTextDataAdvanced *sd = shaped_owner.get_or_null(p_shaped);
ERR_FAIL_COND(!sd);
MutexLock lock(sd->mutex);
@@ -2912,7 +2897,7 @@ void TextServerAdvanced::shaped_text_set_direction(RID p_shaped, TextServer::Dir
}
TextServer::Direction TextServerAdvanced::shaped_text_get_direction(RID p_shaped) const {
- const ShapedTextDataAdvanced *sd = shaped_owner.getornull(p_shaped);
+ const ShapedTextDataAdvanced *sd = shaped_owner.get_or_null(p_shaped);
ERR_FAIL_COND_V(!sd, TextServer::DIRECTION_LTR);
MutexLock lock(sd->mutex);
@@ -2920,7 +2905,7 @@ TextServer::Direction TextServerAdvanced::shaped_text_get_direction(RID p_shaped
}
void TextServerAdvanced::shaped_text_set_bidi_override(RID p_shaped, const Vector<Vector2i> &p_override) {
- ShapedTextDataAdvanced *sd = shaped_owner.getornull(p_shaped);
+ ShapedTextDataAdvanced *sd = shaped_owner.get_or_null(p_shaped);
ERR_FAIL_COND(!sd);
MutexLock lock(sd->mutex);
@@ -2932,7 +2917,7 @@ void TextServerAdvanced::shaped_text_set_bidi_override(RID p_shaped, const Vecto
}
void TextServerAdvanced::shaped_text_set_orientation(RID p_shaped, TextServer::Orientation p_orientation) {
- ShapedTextDataAdvanced *sd = shaped_owner.getornull(p_shaped);
+ ShapedTextDataAdvanced *sd = shaped_owner.get_or_null(p_shaped);
ERR_FAIL_COND(!sd);
MutexLock lock(sd->mutex);
@@ -2946,7 +2931,7 @@ void TextServerAdvanced::shaped_text_set_orientation(RID p_shaped, TextServer::O
}
void TextServerAdvanced::shaped_text_set_preserve_invalid(RID p_shaped, bool p_enabled) {
- ShapedTextDataAdvanced *sd = shaped_owner.getornull(p_shaped);
+ ShapedTextDataAdvanced *sd = shaped_owner.get_or_null(p_shaped);
ERR_FAIL_COND(!sd);
MutexLock lock(sd->mutex);
@@ -2958,7 +2943,7 @@ void TextServerAdvanced::shaped_text_set_preserve_invalid(RID p_shaped, bool p_e
}
bool TextServerAdvanced::shaped_text_get_preserve_invalid(RID p_shaped) const {
- const ShapedTextDataAdvanced *sd = shaped_owner.getornull(p_shaped);
+ const ShapedTextDataAdvanced *sd = shaped_owner.get_or_null(p_shaped);
ERR_FAIL_COND_V(!sd, false);
MutexLock lock(sd->mutex);
@@ -2966,7 +2951,7 @@ bool TextServerAdvanced::shaped_text_get_preserve_invalid(RID p_shaped) const {
}
void TextServerAdvanced::shaped_text_set_preserve_control(RID p_shaped, bool p_enabled) {
- ShapedTextDataAdvanced *sd = shaped_owner.getornull(p_shaped);
+ ShapedTextDataAdvanced *sd = shaped_owner.get_or_null(p_shaped);
ERR_FAIL_COND(!sd);
MutexLock lock(sd->mutex);
@@ -2980,7 +2965,7 @@ void TextServerAdvanced::shaped_text_set_preserve_control(RID p_shaped, bool p_e
}
bool TextServerAdvanced::shaped_text_get_preserve_control(RID p_shaped) const {
- const ShapedTextDataAdvanced *sd = shaped_owner.getornull(p_shaped);
+ const ShapedTextDataAdvanced *sd = shaped_owner.get_or_null(p_shaped);
ERR_FAIL_COND_V(!sd, false);
MutexLock lock(sd->mutex);
@@ -2988,7 +2973,7 @@ bool TextServerAdvanced::shaped_text_get_preserve_control(RID p_shaped) const {
}
TextServer::Orientation TextServerAdvanced::shaped_text_get_orientation(RID p_shaped) const {
- const ShapedTextDataAdvanced *sd = shaped_owner.getornull(p_shaped);
+ const ShapedTextDataAdvanced *sd = shaped_owner.get_or_null(p_shaped);
ERR_FAIL_COND_V(!sd, TextServer::ORIENTATION_HORIZONTAL);
MutexLock lock(sd->mutex);
@@ -2996,13 +2981,13 @@ TextServer::Orientation TextServerAdvanced::shaped_text_get_orientation(RID p_sh
}
bool TextServerAdvanced::shaped_text_add_string(RID p_shaped, const String &p_text, const Vector<RID> &p_fonts, int p_size, const Dictionary &p_opentype_features, const String &p_language) {
- ShapedTextDataAdvanced *sd = shaped_owner.getornull(p_shaped);
+ ShapedTextDataAdvanced *sd = shaped_owner.get_or_null(p_shaped);
ERR_FAIL_COND_V(!sd, false);
ERR_FAIL_COND_V(p_size <= 0, false);
MutexLock lock(sd->mutex);
for (int i = 0; i < p_fonts.size(); i++) {
- ERR_FAIL_COND_V(!font_owner.getornull(p_fonts[i]), false);
+ ERR_FAIL_COND_V(!font_owner.get_or_null(p_fonts[i]), false);
}
if (p_text.is_empty()) {
@@ -3031,7 +3016,7 @@ bool TextServerAdvanced::shaped_text_add_string(RID p_shaped, const String &p_te
bool TextServerAdvanced::shaped_text_add_object(RID p_shaped, Variant p_key, const Size2 &p_size, InlineAlign p_inline_align, int p_length) {
_THREAD_SAFE_METHOD_
- ShapedTextDataAdvanced *sd = shaped_owner.getornull(p_shaped);
+ ShapedTextDataAdvanced *sd = shaped_owner.get_or_null(p_shaped);
ERR_FAIL_COND_V(!sd, false);
ERR_FAIL_COND_V(p_key == Variant(), false);
ERR_FAIL_COND_V(sd->objects.has(p_key), false);
@@ -3060,7 +3045,7 @@ bool TextServerAdvanced::shaped_text_add_object(RID p_shaped, Variant p_key, con
}
bool TextServerAdvanced::shaped_text_resize_object(RID p_shaped, Variant p_key, const Size2 &p_size, InlineAlign p_inline_align) {
- ShapedTextData *sd = shaped_owner.getornull(p_shaped);
+ ShapedTextData *sd = shaped_owner.get_or_null(p_shaped);
ERR_FAIL_COND_V(!sd, false);
MutexLock lock(sd->mutex);
@@ -3193,7 +3178,7 @@ bool TextServerAdvanced::shaped_text_resize_object(RID p_shaped, Variant p_key,
}
RID TextServerAdvanced::shaped_text_substr(RID p_shaped, int p_start, int p_length) const {
- const ShapedTextDataAdvanced *sd = shaped_owner.getornull(p_shaped);
+ const ShapedTextDataAdvanced *sd = shaped_owner.get_or_null(p_shaped);
ERR_FAIL_COND_V(!sd, RID());
MutexLock lock(sd->mutex);
@@ -3386,7 +3371,7 @@ RID TextServerAdvanced::shaped_text_substr(RID p_shaped, int p_start, int p_leng
}
RID TextServerAdvanced::shaped_text_get_parent(RID p_shaped) const {
- ShapedTextDataAdvanced *sd = shaped_owner.getornull(p_shaped);
+ ShapedTextDataAdvanced *sd = shaped_owner.get_or_null(p_shaped);
ERR_FAIL_COND_V(!sd, RID());
MutexLock lock(sd->mutex);
@@ -3394,7 +3379,7 @@ RID TextServerAdvanced::shaped_text_get_parent(RID p_shaped) const {
}
real_t TextServerAdvanced::shaped_text_fit_to_width(RID p_shaped, real_t p_width, uint8_t /*JustificationFlag*/ p_jst_flags) {
- ShapedTextDataAdvanced *sd = shaped_owner.getornull(p_shaped);
+ ShapedTextDataAdvanced *sd = shaped_owner.get_or_null(p_shaped);
ERR_FAIL_COND_V(!sd, 0.f);
MutexLock lock(sd->mutex);
@@ -3530,7 +3515,7 @@ real_t TextServerAdvanced::shaped_text_fit_to_width(RID p_shaped, real_t p_width
}
real_t TextServerAdvanced::shaped_text_tab_align(RID p_shaped, const Vector<real_t> &p_tab_stops) {
- ShapedTextDataAdvanced *sd = shaped_owner.getornull(p_shaped);
+ ShapedTextDataAdvanced *sd = shaped_owner.get_or_null(p_shaped);
ERR_FAIL_COND_V(!sd, 0.f);
MutexLock lock(sd->mutex);
@@ -3580,7 +3565,7 @@ real_t TextServerAdvanced::shaped_text_tab_align(RID p_shaped, const Vector<real
}
void TextServerAdvanced::shaped_text_overrun_trim_to_width(RID p_shaped_line, real_t p_width, uint8_t p_trim_flags) {
- ShapedTextDataAdvanced *sd = shaped_owner.getornull(p_shaped_line);
+ ShapedTextDataAdvanced *sd = shaped_owner.get_or_null(p_shaped_line);
ERR_FAIL_COND_MSG(!sd, "ShapedTextDataAdvanced invalid.");
MutexLock lock(sd->mutex);
@@ -3588,6 +3573,7 @@ void TextServerAdvanced::shaped_text_overrun_trim_to_width(RID p_shaped_line, re
shaped_text_shape(p_shaped_line);
}
+ sd->text_trimmed = false;
sd->overrun_trim_data.ellipsis_glyph_buf.clear();
bool add_ellipsis = (p_trim_flags & OVERRUN_ADD_ELLIPSIS) == OVERRUN_ADD_ELLIPSIS;
@@ -3706,7 +3692,7 @@ void TextServerAdvanced::shaped_text_overrun_trim_to_width(RID p_shaped_line, re
}
TextServer::TrimData TextServerAdvanced::shaped_text_get_trim_data(RID p_shaped) const {
- ShapedTextDataAdvanced *sd = shaped_owner.getornull(p_shaped);
+ ShapedTextDataAdvanced *sd = shaped_owner.get_or_null(p_shaped);
ERR_FAIL_COND_V_MSG(!sd, TrimData(), "ShapedTextDataAdvanced invalid.");
MutexLock lock(sd->mutex);
@@ -3714,7 +3700,7 @@ TextServer::TrimData TextServerAdvanced::shaped_text_get_trim_data(RID p_shaped)
}
bool TextServerAdvanced::shaped_text_update_breaks(RID p_shaped) {
- ShapedTextDataAdvanced *sd = shaped_owner.getornull(p_shaped);
+ ShapedTextDataAdvanced *sd = shaped_owner.get_or_null(p_shaped);
ERR_FAIL_COND_V(!sd, false);
MutexLock lock(sd->mutex);
@@ -3804,7 +3790,12 @@ bool TextServerAdvanced::shaped_text_update_breaks(RID p_shaped) {
gl.font_rid = sd_glyphs[i].font_rid;
gl.font_size = sd_glyphs[i].font_size;
gl.flags = GRAPHEME_IS_BREAK_SOFT | GRAPHEME_IS_VIRTUAL;
- sd->glyphs.insert(i + sd_glyphs[i].count, gl); // Insert after.
+ if (sd->glyphs[i].flags & GRAPHEME_IS_RTL) {
+ gl.flags |= GRAPHEME_IS_RTL;
+ sd->glyphs.insert(i, gl); // Insert before.
+ } else {
+ sd->glyphs.insert(i + sd_glyphs[i].count, gl); // Insert after.
+ }
// Update write pointer and size.
sd_size = sd->glyphs.size();
@@ -3901,7 +3892,7 @@ _FORCE_INLINE_ int _generate_kashida_justification_opportunies(const String &p_d
}
bool TextServerAdvanced::shaped_text_update_justification_ops(RID p_shaped) {
- ShapedTextDataAdvanced *sd = shaped_owner.getornull(p_shaped);
+ ShapedTextDataAdvanced *sd = shaped_owner.get_or_null(p_shaped);
ERR_FAIL_COND_V(!sd, false);
MutexLock lock(sd->mutex);
@@ -3998,7 +3989,12 @@ bool TextServerAdvanced::shaped_text_update_justification_ops(RID p_shaped) {
gl.font_rid = sd->glyphs[i].font_rid;
gl.font_size = sd->glyphs[i].font_size;
gl.flags = GRAPHEME_IS_SPACE | GRAPHEME_IS_VIRTUAL;
- sd->glyphs.insert(i + sd->glyphs[i].count, gl); // Insert after.
+ if (sd->glyphs[i].flags & GRAPHEME_IS_RTL) {
+ gl.flags |= GRAPHEME_IS_RTL;
+ sd->glyphs.insert(i, gl); // Insert before.
+ } else {
+ sd->glyphs.insert(i + sd->glyphs[i].count, gl); // Insert after.
+ }
i += sd->glyphs[i].count;
continue;
}
@@ -4147,7 +4143,7 @@ void TextServerAdvanced::_shape_run(ShapedTextDataAdvanced *p_sd, int32_t p_star
}
}
if (p_direction == HB_DIRECTION_RTL || p_direction == HB_DIRECTION_BTT) {
- w[last_cluster_index].flags |= TextServer::GRAPHEME_IS_RTL;
+ w[last_cluster_index].flags |= GRAPHEME_IS_RTL;
}
if (last_cluster_valid) {
w[last_cluster_index].flags |= GRAPHEME_IS_VALID;
@@ -4169,6 +4165,10 @@ void TextServerAdvanced::_shape_run(ShapedTextDataAdvanced *p_sd, int32_t p_star
gl.font_rid = p_fonts[p_fb_index];
gl.font_size = fs;
+ if (glyph_info[i].mask & HB_GLYPH_FLAG_DEFINED) {
+ gl.flags |= GRAPHEME_IS_CONNECTED;
+ }
+
gl.index = glyph_info[i].codepoint;
if (gl.index != 0) {
real_t scale = font_get_scale(f, fs);
@@ -4187,9 +4187,9 @@ void TextServerAdvanced::_shape_run(ShapedTextDataAdvanced *p_sd, int32_t p_star
}
if (p_sd->preserve_control) {
- last_cluster_valid = last_cluster_valid && ((glyph_info[i].codepoint != 0) || is_whitespace(p_sd->text[glyph_info[i].cluster]) || is_linebreak(p_sd->text[glyph_info[i].cluster]));
+ last_cluster_valid = last_cluster_valid && ((glyph_info[i].codepoint != 0) || (p_sd->text[glyph_info[i].cluster] == 0x0009) || (u_isblank(p_sd->text[glyph_info[i].cluster]) && (gl.advance != 0)) || (!u_isblank(p_sd->text[glyph_info[i].cluster]) && is_linebreak(p_sd->text[glyph_info[i].cluster])));
} else {
- last_cluster_valid = last_cluster_valid && ((glyph_info[i].codepoint != 0) || !u_isgraph(p_sd->text[glyph_info[i].cluster]));
+ last_cluster_valid = last_cluster_valid && ((glyph_info[i].codepoint != 0) || (p_sd->text[glyph_info[i].cluster] == 0x0009) || (u_isblank(p_sd->text[glyph_info[i].cluster]) && (gl.advance != 0)) || (!u_isblank(p_sd->text[glyph_info[i].cluster]) && !u_isgraph(p_sd->text[glyph_info[i].cluster])));
}
}
if (p_direction == HB_DIRECTION_LTR || p_direction == HB_DIRECTION_TTB) {
@@ -4199,7 +4199,7 @@ void TextServerAdvanced::_shape_run(ShapedTextDataAdvanced *p_sd, int32_t p_star
}
w[last_cluster_index].count = glyph_count - last_cluster_index;
if (p_direction == HB_DIRECTION_RTL || p_direction == HB_DIRECTION_BTT) {
- w[last_cluster_index].flags |= TextServer::GRAPHEME_IS_RTL;
+ w[last_cluster_index].flags |= GRAPHEME_IS_RTL;
}
if (last_cluster_valid) {
w[last_cluster_index].flags |= GRAPHEME_IS_VALID;
@@ -4249,7 +4249,7 @@ void TextServerAdvanced::_shape_run(ShapedTextDataAdvanced *p_sd, int32_t p_star
}
bool TextServerAdvanced::shaped_text_shape(RID p_shaped) {
- ShapedTextDataAdvanced *sd = shaped_owner.getornull(p_shaped);
+ ShapedTextDataAdvanced *sd = shaped_owner.get_or_null(p_shaped);
ERR_FAIL_COND_V(!sd, false);
MutexLock lock(sd->mutex);
@@ -4479,7 +4479,7 @@ bool TextServerAdvanced::shaped_text_shape(RID p_shaped) {
}
bool TextServerAdvanced::shaped_text_is_ready(RID p_shaped) const {
- const ShapedTextDataAdvanced *sd = shaped_owner.getornull(p_shaped);
+ const ShapedTextDataAdvanced *sd = shaped_owner.get_or_null(p_shaped);
ERR_FAIL_COND_V(!sd, false);
MutexLock lock(sd->mutex);
@@ -4487,7 +4487,7 @@ bool TextServerAdvanced::shaped_text_is_ready(RID p_shaped) const {
}
Vector<TextServer::Glyph> TextServerAdvanced::shaped_text_get_glyphs(RID p_shaped) const {
- const ShapedTextDataAdvanced *sd = shaped_owner.getornull(p_shaped);
+ const ShapedTextDataAdvanced *sd = shaped_owner.get_or_null(p_shaped);
ERR_FAIL_COND_V(!sd, Vector<TextServer::Glyph>());
MutexLock lock(sd->mutex);
@@ -4498,7 +4498,7 @@ Vector<TextServer::Glyph> TextServerAdvanced::shaped_text_get_glyphs(RID p_shape
}
Vector2i TextServerAdvanced::shaped_text_get_range(RID p_shaped) const {
- const ShapedTextDataAdvanced *sd = shaped_owner.getornull(p_shaped);
+ const ShapedTextDataAdvanced *sd = shaped_owner.get_or_null(p_shaped);
ERR_FAIL_COND_V(!sd, Vector2i());
MutexLock lock(sd->mutex);
@@ -4506,7 +4506,7 @@ Vector2i TextServerAdvanced::shaped_text_get_range(RID p_shaped) const {
}
Vector<TextServer::Glyph> TextServerAdvanced::shaped_text_sort_logical(RID p_shaped) {
- ShapedTextDataAdvanced *sd = shaped_owner.getornull(p_shaped);
+ ShapedTextDataAdvanced *sd = shaped_owner.get_or_null(p_shaped);
ERR_FAIL_COND_V(!sd, Vector<TextServer::Glyph>());
MutexLock lock(sd->mutex);
@@ -4525,7 +4525,7 @@ Vector<TextServer::Glyph> TextServerAdvanced::shaped_text_sort_logical(RID p_sha
Array TextServerAdvanced::shaped_text_get_objects(RID p_shaped) const {
Array ret;
- const ShapedTextDataAdvanced *sd = shaped_owner.getornull(p_shaped);
+ const ShapedTextDataAdvanced *sd = shaped_owner.get_or_null(p_shaped);
ERR_FAIL_COND_V(!sd, ret);
MutexLock lock(sd->mutex);
@@ -4537,7 +4537,7 @@ Array TextServerAdvanced::shaped_text_get_objects(RID p_shaped) const {
}
Rect2 TextServerAdvanced::shaped_text_get_object_rect(RID p_shaped, Variant p_key) const {
- const ShapedTextDataAdvanced *sd = shaped_owner.getornull(p_shaped);
+ const ShapedTextDataAdvanced *sd = shaped_owner.get_or_null(p_shaped);
ERR_FAIL_COND_V(!sd, Rect2());
MutexLock lock(sd->mutex);
@@ -4549,7 +4549,7 @@ Rect2 TextServerAdvanced::shaped_text_get_object_rect(RID p_shaped, Variant p_ke
}
Size2 TextServerAdvanced::shaped_text_get_size(RID p_shaped) const {
- const ShapedTextDataAdvanced *sd = shaped_owner.getornull(p_shaped);
+ const ShapedTextDataAdvanced *sd = shaped_owner.get_or_null(p_shaped);
ERR_FAIL_COND_V(!sd, Size2());
MutexLock lock(sd->mutex);
@@ -4564,7 +4564,7 @@ Size2 TextServerAdvanced::shaped_text_get_size(RID p_shaped) const {
}
real_t TextServerAdvanced::shaped_text_get_ascent(RID p_shaped) const {
- const ShapedTextDataAdvanced *sd = shaped_owner.getornull(p_shaped);
+ const ShapedTextDataAdvanced *sd = shaped_owner.get_or_null(p_shaped);
ERR_FAIL_COND_V(!sd, 0.f);
MutexLock lock(sd->mutex);
@@ -4575,7 +4575,7 @@ real_t TextServerAdvanced::shaped_text_get_ascent(RID p_shaped) const {
}
real_t TextServerAdvanced::shaped_text_get_descent(RID p_shaped) const {
- const ShapedTextDataAdvanced *sd = shaped_owner.getornull(p_shaped);
+ const ShapedTextDataAdvanced *sd = shaped_owner.get_or_null(p_shaped);
ERR_FAIL_COND_V(!sd, 0.f);
MutexLock lock(sd->mutex);
@@ -4586,7 +4586,7 @@ real_t TextServerAdvanced::shaped_text_get_descent(RID p_shaped) const {
}
real_t TextServerAdvanced::shaped_text_get_width(RID p_shaped) const {
- const ShapedTextDataAdvanced *sd = shaped_owner.getornull(p_shaped);
+ const ShapedTextDataAdvanced *sd = shaped_owner.get_or_null(p_shaped);
ERR_FAIL_COND_V(!sd, 0.f);
MutexLock lock(sd->mutex);
@@ -4597,7 +4597,7 @@ real_t TextServerAdvanced::shaped_text_get_width(RID p_shaped) const {
}
real_t TextServerAdvanced::shaped_text_get_underline_position(RID p_shaped) const {
- const ShapedTextDataAdvanced *sd = shaped_owner.getornull(p_shaped);
+ const ShapedTextDataAdvanced *sd = shaped_owner.get_or_null(p_shaped);
ERR_FAIL_COND_V(!sd, 0.f);
MutexLock lock(sd->mutex);
@@ -4609,7 +4609,7 @@ real_t TextServerAdvanced::shaped_text_get_underline_position(RID p_shaped) cons
}
real_t TextServerAdvanced::shaped_text_get_underline_thickness(RID p_shaped) const {
- const ShapedTextDataAdvanced *sd = shaped_owner.getornull(p_shaped);
+ const ShapedTextDataAdvanced *sd = shaped_owner.get_or_null(p_shaped);
ERR_FAIL_COND_V(!sd, 0.f);
MutexLock lock(sd->mutex);
diff --git a/modules/text_server_adv/text_server_adv.h b/modules/text_server_adv/text_server_adv.h
index 5989035800..fc0e7a09a7 100644
--- a/modules/text_server_adv/text_server_adv.h
+++ b/modules/text_server_adv/text_server_adv.h
@@ -269,7 +269,6 @@ class TextServerAdvanced : public TextServer {
static hb_position_t hb_bmp_get_glyph_h_advance(hb_font_t *p_font, void *p_font_data, hb_codepoint_t p_glyph, void *p_user_data);
static hb_position_t hb_bmp_get_glyph_v_advance(hb_font_t *p_font, void *p_font_data, hb_codepoint_t p_glyph, void *p_user_data);
static hb_position_t hb_bmp_get_glyph_h_kerning(hb_font_t *p_font, void *p_font_data, hb_codepoint_t p_left_glyph, hb_codepoint_t p_right_glyph, void *p_user_data);
- static hb_position_t hb_bmp_get_glyph_v_kerning(hb_font_t *p_font, void *p_font_data, hb_codepoint_t p_left_glyph, hb_codepoint_t p_right_glyph, void *p_user_data);
static hb_bool_t hb_bmp_get_glyph_v_origin(hb_font_t *p_font, void *p_font_data, hb_codepoint_t p_glyph, hb_position_t *r_x, hb_position_t *r_y, void *p_user_data);
static hb_bool_t hb_bmp_get_glyph_extents(hb_font_t *p_font, void *p_font_data, hb_codepoint_t p_glyph, hb_glyph_extents_t *r_extents, void *p_user_data);
static hb_bool_t hb_bmp_get_font_h_extents(hb_font_t *p_font, void *p_font_data, hb_font_extents_t *r_metrics, void *p_user_data);
diff --git a/modules/text_server_fb/text_server_fb.cpp b/modules/text_server_fb/text_server_fb.cpp
index 8a1bd93c65..b1ce85d505 100644
--- a/modules/text_server_fb/text_server_fb.cpp
+++ b/modules/text_server_fb/text_server_fb.cpp
@@ -80,11 +80,11 @@ String TextServerFallback::get_name() const {
void TextServerFallback::free(RID p_rid) {
_THREAD_SAFE_METHOD_
if (font_owner.owns(p_rid)) {
- FontDataFallback *fd = font_owner.getornull(p_rid);
+ FontDataFallback *fd = font_owner.get_or_null(p_rid);
font_owner.free(p_rid);
memdelete(fd);
} else if (shaped_owner.owns(p_rid)) {
- ShapedTextData *sd = shaped_owner.getornull(p_rid);
+ ShapedTextData *sd = shaped_owner.get_or_null(p_rid);
shaped_owner.free(p_rid);
memdelete(sd);
}
@@ -611,11 +611,13 @@ _FORCE_INLINE_ bool TextServerFallback::_ensure_glyph(FontDataFallback *p_font_d
flags |= FT_LOAD_COLOR;
}
+ int32_t glyph_index = FT_Get_Char_Index(fd->face, p_glyph);
+
FT_Fixed v, h;
- FT_Get_Advance(fd->face, p_glyph, flags, &h);
- FT_Get_Advance(fd->face, p_glyph, flags | FT_LOAD_VERTICAL_LAYOUT, &v);
+ FT_Get_Advance(fd->face, glyph_index, flags, &h);
+ FT_Get_Advance(fd->face, glyph_index, flags | FT_LOAD_VERTICAL_LAYOUT, &v);
- int error = FT_Load_Glyph(fd->face, p_glyph, flags);
+ int error = FT_Load_Glyph(fd->face, glyph_index, flags);
if (error) {
fd->glyph_map[p_glyph] = FontGlyph();
ERR_FAIL_V_MSG(false, "FreeType: Failed to load glyph.");
@@ -809,7 +811,7 @@ RID TextServerFallback::create_font() {
}
void TextServerFallback::font_set_data(RID p_font_rid, const PackedByteArray &p_data) {
- FontDataFallback *fd = font_owner.getornull(p_font_rid);
+ FontDataFallback *fd = font_owner.get_or_null(p_font_rid);
ERR_FAIL_COND(!fd);
MutexLock lock(fd->mutex);
@@ -820,7 +822,7 @@ void TextServerFallback::font_set_data(RID p_font_rid, const PackedByteArray &p_
}
void TextServerFallback::font_set_data_ptr(RID p_font_rid, const uint8_t *p_data_ptr, size_t p_data_size) {
- FontDataFallback *fd = font_owner.getornull(p_font_rid);
+ FontDataFallback *fd = font_owner.get_or_null(p_font_rid);
ERR_FAIL_COND(!fd);
MutexLock lock(fd->mutex);
@@ -831,7 +833,7 @@ void TextServerFallback::font_set_data_ptr(RID p_font_rid, const uint8_t *p_data
}
void TextServerFallback::font_set_antialiased(RID p_font_rid, bool p_antialiased) {
- FontDataFallback *fd = font_owner.getornull(p_font_rid);
+ FontDataFallback *fd = font_owner.get_or_null(p_font_rid);
ERR_FAIL_COND(!fd);
MutexLock lock(fd->mutex);
@@ -842,7 +844,7 @@ void TextServerFallback::font_set_antialiased(RID p_font_rid, bool p_antialiased
}
bool TextServerFallback::font_is_antialiased(RID p_font_rid) const {
- FontDataFallback *fd = font_owner.getornull(p_font_rid);
+ FontDataFallback *fd = font_owner.get_or_null(p_font_rid);
ERR_FAIL_COND_V(!fd, false);
MutexLock lock(fd->mutex);
@@ -850,7 +852,7 @@ bool TextServerFallback::font_is_antialiased(RID p_font_rid) const {
}
void TextServerFallback::font_set_multichannel_signed_distance_field(RID p_font_rid, bool p_msdf) {
- FontDataFallback *fd = font_owner.getornull(p_font_rid);
+ FontDataFallback *fd = font_owner.get_or_null(p_font_rid);
ERR_FAIL_COND(!fd);
MutexLock lock(fd->mutex);
@@ -861,7 +863,7 @@ void TextServerFallback::font_set_multichannel_signed_distance_field(RID p_font_
}
bool TextServerFallback::font_is_multichannel_signed_distance_field(RID p_font_rid) const {
- FontDataFallback *fd = font_owner.getornull(p_font_rid);
+ FontDataFallback *fd = font_owner.get_or_null(p_font_rid);
ERR_FAIL_COND_V(!fd, false);
MutexLock lock(fd->mutex);
@@ -869,7 +871,7 @@ bool TextServerFallback::font_is_multichannel_signed_distance_field(RID p_font_r
}
void TextServerFallback::font_set_msdf_pixel_range(RID p_font_rid, int p_msdf_pixel_range) {
- FontDataFallback *fd = font_owner.getornull(p_font_rid);
+ FontDataFallback *fd = font_owner.get_or_null(p_font_rid);
ERR_FAIL_COND(!fd);
MutexLock lock(fd->mutex);
@@ -880,7 +882,7 @@ void TextServerFallback::font_set_msdf_pixel_range(RID p_font_rid, int p_msdf_pi
}
int TextServerFallback::font_get_msdf_pixel_range(RID p_font_rid) const {
- FontDataFallback *fd = font_owner.getornull(p_font_rid);
+ FontDataFallback *fd = font_owner.get_or_null(p_font_rid);
ERR_FAIL_COND_V(!fd, false);
MutexLock lock(fd->mutex);
@@ -888,7 +890,7 @@ int TextServerFallback::font_get_msdf_pixel_range(RID p_font_rid) const {
}
void TextServerFallback::font_set_msdf_size(RID p_font_rid, int p_msdf_size) {
- FontDataFallback *fd = font_owner.getornull(p_font_rid);
+ FontDataFallback *fd = font_owner.get_or_null(p_font_rid);
ERR_FAIL_COND(!fd);
MutexLock lock(fd->mutex);
@@ -899,7 +901,7 @@ void TextServerFallback::font_set_msdf_size(RID p_font_rid, int p_msdf_size) {
}
int TextServerFallback::font_get_msdf_size(RID p_font_rid) const {
- FontDataFallback *fd = font_owner.getornull(p_font_rid);
+ FontDataFallback *fd = font_owner.get_or_null(p_font_rid);
ERR_FAIL_COND_V(!fd, false);
MutexLock lock(fd->mutex);
@@ -907,7 +909,7 @@ int TextServerFallback::font_get_msdf_size(RID p_font_rid) const {
}
void TextServerFallback::font_set_fixed_size(RID p_font_rid, int p_fixed_size) {
- FontDataFallback *fd = font_owner.getornull(p_font_rid);
+ FontDataFallback *fd = font_owner.get_or_null(p_font_rid);
ERR_FAIL_COND(!fd);
MutexLock lock(fd->mutex);
@@ -917,7 +919,7 @@ void TextServerFallback::font_set_fixed_size(RID p_font_rid, int p_fixed_size) {
}
int TextServerFallback::font_get_fixed_size(RID p_font_rid) const {
- FontDataFallback *fd = font_owner.getornull(p_font_rid);
+ FontDataFallback *fd = font_owner.get_or_null(p_font_rid);
ERR_FAIL_COND_V(!fd, false);
MutexLock lock(fd->mutex);
@@ -925,7 +927,7 @@ int TextServerFallback::font_get_fixed_size(RID p_font_rid) const {
}
void TextServerFallback::font_set_force_autohinter(RID p_font_rid, bool p_force_autohinter) {
- FontDataFallback *fd = font_owner.getornull(p_font_rid);
+ FontDataFallback *fd = font_owner.get_or_null(p_font_rid);
ERR_FAIL_COND(!fd);
MutexLock lock(fd->mutex);
@@ -936,7 +938,7 @@ void TextServerFallback::font_set_force_autohinter(RID p_font_rid, bool p_force_
}
bool TextServerFallback::font_is_force_autohinter(RID p_font_rid) const {
- FontDataFallback *fd = font_owner.getornull(p_font_rid);
+ FontDataFallback *fd = font_owner.get_or_null(p_font_rid);
ERR_FAIL_COND_V(!fd, false);
MutexLock lock(fd->mutex);
@@ -944,7 +946,7 @@ bool TextServerFallback::font_is_force_autohinter(RID p_font_rid) const {
}
void TextServerFallback::font_set_hinting(RID p_font_rid, TextServer::Hinting p_hinting) {
- FontDataFallback *fd = font_owner.getornull(p_font_rid);
+ FontDataFallback *fd = font_owner.get_or_null(p_font_rid);
ERR_FAIL_COND(!fd);
MutexLock lock(fd->mutex);
@@ -955,7 +957,7 @@ void TextServerFallback::font_set_hinting(RID p_font_rid, TextServer::Hinting p_
}
TextServer::Hinting TextServerFallback::font_get_hinting(RID p_font_rid) const {
- FontDataFallback *fd = font_owner.getornull(p_font_rid);
+ FontDataFallback *fd = font_owner.get_or_null(p_font_rid);
ERR_FAIL_COND_V(!fd, HINTING_NONE);
MutexLock lock(fd->mutex);
@@ -963,7 +965,7 @@ TextServer::Hinting TextServerFallback::font_get_hinting(RID p_font_rid) const {
}
void TextServerFallback::font_set_variation_coordinates(RID p_font_rid, const Dictionary &p_variation_coordinates) {
- FontDataFallback *fd = font_owner.getornull(p_font_rid);
+ FontDataFallback *fd = font_owner.get_or_null(p_font_rid);
ERR_FAIL_COND(!fd);
MutexLock lock(fd->mutex);
@@ -974,7 +976,7 @@ void TextServerFallback::font_set_variation_coordinates(RID p_font_rid, const Di
}
Dictionary TextServerFallback::font_get_variation_coordinates(RID p_font_rid) const {
- FontDataFallback *fd = font_owner.getornull(p_font_rid);
+ FontDataFallback *fd = font_owner.get_or_null(p_font_rid);
ERR_FAIL_COND_V(!fd, Dictionary());
MutexLock lock(fd->mutex);
@@ -982,7 +984,7 @@ Dictionary TextServerFallback::font_get_variation_coordinates(RID p_font_rid) co
}
void TextServerFallback::font_set_oversampling(RID p_font_rid, real_t p_oversampling) {
- FontDataFallback *fd = font_owner.getornull(p_font_rid);
+ FontDataFallback *fd = font_owner.get_or_null(p_font_rid);
ERR_FAIL_COND(!fd);
MutexLock lock(fd->mutex);
@@ -993,7 +995,7 @@ void TextServerFallback::font_set_oversampling(RID p_font_rid, real_t p_oversamp
}
real_t TextServerFallback::font_get_oversampling(RID p_font_rid) const {
- FontDataFallback *fd = font_owner.getornull(p_font_rid);
+ FontDataFallback *fd = font_owner.get_or_null(p_font_rid);
ERR_FAIL_COND_V(!fd, 0.f);
MutexLock lock(fd->mutex);
@@ -1001,7 +1003,7 @@ real_t TextServerFallback::font_get_oversampling(RID p_font_rid) const {
}
Array TextServerFallback::font_get_size_cache_list(RID p_font_rid) const {
- FontDataFallback *fd = font_owner.getornull(p_font_rid);
+ FontDataFallback *fd = font_owner.get_or_null(p_font_rid);
ERR_FAIL_COND_V(!fd, Array());
MutexLock lock(fd->mutex);
@@ -1013,7 +1015,7 @@ Array TextServerFallback::font_get_size_cache_list(RID p_font_rid) const {
}
void TextServerFallback::font_clear_size_cache(RID p_font_rid) {
- FontDataFallback *fd = font_owner.getornull(p_font_rid);
+ FontDataFallback *fd = font_owner.get_or_null(p_font_rid);
ERR_FAIL_COND(!fd);
MutexLock lock(fd->mutex);
@@ -1024,7 +1026,7 @@ void TextServerFallback::font_clear_size_cache(RID p_font_rid) {
}
void TextServerFallback::font_remove_size_cache(RID p_font_rid, const Vector2i &p_size) {
- FontDataFallback *fd = font_owner.getornull(p_font_rid);
+ FontDataFallback *fd = font_owner.get_or_null(p_font_rid);
ERR_FAIL_COND(!fd);
MutexLock lock(fd->mutex);
@@ -1035,7 +1037,7 @@ void TextServerFallback::font_remove_size_cache(RID p_font_rid, const Vector2i &
}
void TextServerFallback::font_set_ascent(RID p_font_rid, int p_size, real_t p_ascent) {
- FontDataFallback *fd = font_owner.getornull(p_font_rid);
+ FontDataFallback *fd = font_owner.get_or_null(p_font_rid);
ERR_FAIL_COND(!fd);
MutexLock lock(fd->mutex);
@@ -1046,7 +1048,7 @@ void TextServerFallback::font_set_ascent(RID p_font_rid, int p_size, real_t p_as
}
real_t TextServerFallback::font_get_ascent(RID p_font_rid, int p_size) const {
- FontDataFallback *fd = font_owner.getornull(p_font_rid);
+ FontDataFallback *fd = font_owner.get_or_null(p_font_rid);
ERR_FAIL_COND_V(!fd, 0.f);
MutexLock lock(fd->mutex);
@@ -1062,7 +1064,7 @@ real_t TextServerFallback::font_get_ascent(RID p_font_rid, int p_size) const {
}
void TextServerFallback::font_set_descent(RID p_font_rid, int p_size, real_t p_descent) {
- FontDataFallback *fd = font_owner.getornull(p_font_rid);
+ FontDataFallback *fd = font_owner.get_or_null(p_font_rid);
ERR_FAIL_COND(!fd);
Vector2i size = _get_size(fd, p_size);
@@ -1072,7 +1074,7 @@ void TextServerFallback::font_set_descent(RID p_font_rid, int p_size, real_t p_d
}
real_t TextServerFallback::font_get_descent(RID p_font_rid, int p_size) const {
- FontDataFallback *fd = font_owner.getornull(p_font_rid);
+ FontDataFallback *fd = font_owner.get_or_null(p_font_rid);
ERR_FAIL_COND_V(!fd, 0.f);
MutexLock lock(fd->mutex);
@@ -1088,7 +1090,7 @@ real_t TextServerFallback::font_get_descent(RID p_font_rid, int p_size) const {
}
void TextServerFallback::font_set_underline_position(RID p_font_rid, int p_size, real_t p_underline_position) {
- FontDataFallback *fd = font_owner.getornull(p_font_rid);
+ FontDataFallback *fd = font_owner.get_or_null(p_font_rid);
ERR_FAIL_COND(!fd);
MutexLock lock(fd->mutex);
@@ -1099,7 +1101,7 @@ void TextServerFallback::font_set_underline_position(RID p_font_rid, int p_size,
}
real_t TextServerFallback::font_get_underline_position(RID p_font_rid, int p_size) const {
- FontDataFallback *fd = font_owner.getornull(p_font_rid);
+ FontDataFallback *fd = font_owner.get_or_null(p_font_rid);
ERR_FAIL_COND_V(!fd, 0.f);
MutexLock lock(fd->mutex);
@@ -1115,7 +1117,7 @@ real_t TextServerFallback::font_get_underline_position(RID p_font_rid, int p_siz
}
void TextServerFallback::font_set_underline_thickness(RID p_font_rid, int p_size, real_t p_underline_thickness) {
- FontDataFallback *fd = font_owner.getornull(p_font_rid);
+ FontDataFallback *fd = font_owner.get_or_null(p_font_rid);
ERR_FAIL_COND(!fd);
MutexLock lock(fd->mutex);
@@ -1126,7 +1128,7 @@ void TextServerFallback::font_set_underline_thickness(RID p_font_rid, int p_size
}
real_t TextServerFallback::font_get_underline_thickness(RID p_font_rid, int p_size) const {
- FontDataFallback *fd = font_owner.getornull(p_font_rid);
+ FontDataFallback *fd = font_owner.get_or_null(p_font_rid);
ERR_FAIL_COND_V(!fd, 0.f);
MutexLock lock(fd->mutex);
@@ -1142,7 +1144,7 @@ real_t TextServerFallback::font_get_underline_thickness(RID p_font_rid, int p_si
}
void TextServerFallback::font_set_scale(RID p_font_rid, int p_size, real_t p_scale) {
- FontDataFallback *fd = font_owner.getornull(p_font_rid);
+ FontDataFallback *fd = font_owner.get_or_null(p_font_rid);
ERR_FAIL_COND(!fd);
MutexLock lock(fd->mutex);
@@ -1153,7 +1155,7 @@ void TextServerFallback::font_set_scale(RID p_font_rid, int p_size, real_t p_sca
}
real_t TextServerFallback::font_get_scale(RID p_font_rid, int p_size) const {
- FontDataFallback *fd = font_owner.getornull(p_font_rid);
+ FontDataFallback *fd = font_owner.get_or_null(p_font_rid);
ERR_FAIL_COND_V(!fd, 0.f);
MutexLock lock(fd->mutex);
@@ -1169,7 +1171,7 @@ real_t TextServerFallback::font_get_scale(RID p_font_rid, int p_size) const {
}
void TextServerFallback::font_set_spacing(RID p_font_rid, int p_size, TextServer::SpacingType p_spacing, int p_value) {
- FontDataFallback *fd = font_owner.getornull(p_font_rid);
+ FontDataFallback *fd = font_owner.get_or_null(p_font_rid);
ERR_FAIL_COND(!fd);
MutexLock lock(fd->mutex);
@@ -1190,7 +1192,7 @@ void TextServerFallback::font_set_spacing(RID p_font_rid, int p_size, TextServer
}
int TextServerFallback::font_get_spacing(RID p_font_rid, int p_size, TextServer::SpacingType p_spacing) const {
- FontDataFallback *fd = font_owner.getornull(p_font_rid);
+ FontDataFallback *fd = font_owner.get_or_null(p_font_rid);
ERR_FAIL_COND_V(!fd, 0);
MutexLock lock(fd->mutex);
@@ -1221,7 +1223,7 @@ int TextServerFallback::font_get_spacing(RID p_font_rid, int p_size, TextServer:
}
int TextServerFallback::font_get_texture_count(RID p_font_rid, const Vector2i &p_size) const {
- FontDataFallback *fd = font_owner.getornull(p_font_rid);
+ FontDataFallback *fd = font_owner.get_or_null(p_font_rid);
ERR_FAIL_COND_V(!fd, 0);
MutexLock lock(fd->mutex);
@@ -1233,7 +1235,7 @@ int TextServerFallback::font_get_texture_count(RID p_font_rid, const Vector2i &p
}
void TextServerFallback::font_clear_textures(RID p_font_rid, const Vector2i &p_size) {
- FontDataFallback *fd = font_owner.getornull(p_font_rid);
+ FontDataFallback *fd = font_owner.get_or_null(p_font_rid);
ERR_FAIL_COND(!fd);
MutexLock lock(fd->mutex);
Vector2i size = _get_size_outline(fd, p_size);
@@ -1243,7 +1245,7 @@ void TextServerFallback::font_clear_textures(RID p_font_rid, const Vector2i &p_s
}
void TextServerFallback::font_remove_texture(RID p_font_rid, const Vector2i &p_size, int p_texture_index) {
- FontDataFallback *fd = font_owner.getornull(p_font_rid);
+ FontDataFallback *fd = font_owner.get_or_null(p_font_rid);
ERR_FAIL_COND(!fd);
MutexLock lock(fd->mutex);
@@ -1255,7 +1257,7 @@ void TextServerFallback::font_remove_texture(RID p_font_rid, const Vector2i &p_s
}
void TextServerFallback::font_set_texture_image(RID p_font_rid, const Vector2i &p_size, int p_texture_index, const Ref<Image> &p_image) {
- FontDataFallback *fd = font_owner.getornull(p_font_rid);
+ FontDataFallback *fd = font_owner.get_or_null(p_font_rid);
ERR_FAIL_COND(!fd);
ERR_FAIL_COND(p_image.is_null());
@@ -1281,7 +1283,7 @@ void TextServerFallback::font_set_texture_image(RID p_font_rid, const Vector2i &
}
Ref<Image> TextServerFallback::font_get_texture_image(RID p_font_rid, const Vector2i &p_size, int p_texture_index) const {
- FontDataFallback *fd = font_owner.getornull(p_font_rid);
+ FontDataFallback *fd = font_owner.get_or_null(p_font_rid);
ERR_FAIL_COND_V(!fd, Ref<Image>());
MutexLock lock(fd->mutex);
@@ -1296,7 +1298,7 @@ Ref<Image> TextServerFallback::font_get_texture_image(RID p_font_rid, const Vect
}
void TextServerFallback::font_set_texture_offsets(RID p_font_rid, const Vector2i &p_size, int p_texture_index, const PackedInt32Array &p_offset) {
- FontDataFallback *fd = font_owner.getornull(p_font_rid);
+ FontDataFallback *fd = font_owner.get_or_null(p_font_rid);
ERR_FAIL_COND(!fd);
MutexLock lock(fd->mutex);
@@ -1311,7 +1313,7 @@ void TextServerFallback::font_set_texture_offsets(RID p_font_rid, const Vector2i
}
PackedInt32Array TextServerFallback::font_get_texture_offsets(RID p_font_rid, const Vector2i &p_size, int p_texture_index) const {
- FontDataFallback *fd = font_owner.getornull(p_font_rid);
+ FontDataFallback *fd = font_owner.get_or_null(p_font_rid);
ERR_FAIL_COND_V(!fd, PackedInt32Array());
MutexLock lock(fd->mutex);
@@ -1324,7 +1326,7 @@ PackedInt32Array TextServerFallback::font_get_texture_offsets(RID p_font_rid, co
}
Array TextServerFallback::font_get_glyph_list(RID p_font_rid, const Vector2i &p_size) const {
- FontDataFallback *fd = font_owner.getornull(p_font_rid);
+ FontDataFallback *fd = font_owner.get_or_null(p_font_rid);
ERR_FAIL_COND_V(!fd, Array());
MutexLock lock(fd->mutex);
@@ -1341,7 +1343,7 @@ Array TextServerFallback::font_get_glyph_list(RID p_font_rid, const Vector2i &p_
}
void TextServerFallback::font_clear_glyphs(RID p_font_rid, const Vector2i &p_size) {
- FontDataFallback *fd = font_owner.getornull(p_font_rid);
+ FontDataFallback *fd = font_owner.get_or_null(p_font_rid);
ERR_FAIL_COND(!fd);
MutexLock lock(fd->mutex);
@@ -1352,7 +1354,7 @@ void TextServerFallback::font_clear_glyphs(RID p_font_rid, const Vector2i &p_siz
}
void TextServerFallback::font_remove_glyph(RID p_font_rid, const Vector2i &p_size, int32_t p_glyph) {
- FontDataFallback *fd = font_owner.getornull(p_font_rid);
+ FontDataFallback *fd = font_owner.get_or_null(p_font_rid);
ERR_FAIL_COND(!fd);
MutexLock lock(fd->mutex);
@@ -1363,7 +1365,7 @@ void TextServerFallback::font_remove_glyph(RID p_font_rid, const Vector2i &p_siz
}
Vector2 TextServerFallback::font_get_glyph_advance(RID p_font_rid, int p_size, int32_t p_glyph) const {
- FontDataFallback *fd = font_owner.getornull(p_font_rid);
+ FontDataFallback *fd = font_owner.get_or_null(p_font_rid);
ERR_FAIL_COND_V(!fd, Vector2());
MutexLock lock(fd->mutex);
@@ -1384,7 +1386,7 @@ Vector2 TextServerFallback::font_get_glyph_advance(RID p_font_rid, int p_size, i
}
void TextServerFallback::font_set_glyph_advance(RID p_font_rid, int p_size, int32_t p_glyph, const Vector2 &p_advance) {
- FontDataFallback *fd = font_owner.getornull(p_font_rid);
+ FontDataFallback *fd = font_owner.get_or_null(p_font_rid);
ERR_FAIL_COND(!fd);
MutexLock lock(fd->mutex);
@@ -1399,7 +1401,7 @@ void TextServerFallback::font_set_glyph_advance(RID p_font_rid, int p_size, int3
}
Vector2 TextServerFallback::font_get_glyph_offset(RID p_font_rid, const Vector2i &p_size, int32_t p_glyph) const {
- FontDataFallback *fd = font_owner.getornull(p_font_rid);
+ FontDataFallback *fd = font_owner.get_or_null(p_font_rid);
ERR_FAIL_COND_V(!fd, Vector2());
MutexLock lock(fd->mutex);
@@ -1420,7 +1422,7 @@ Vector2 TextServerFallback::font_get_glyph_offset(RID p_font_rid, const Vector2i
}
void TextServerFallback::font_set_glyph_offset(RID p_font_rid, const Vector2i &p_size, int32_t p_glyph, const Vector2 &p_offset) {
- FontDataFallback *fd = font_owner.getornull(p_font_rid);
+ FontDataFallback *fd = font_owner.get_or_null(p_font_rid);
ERR_FAIL_COND(!fd);
MutexLock lock(fd->mutex);
@@ -1435,7 +1437,7 @@ void TextServerFallback::font_set_glyph_offset(RID p_font_rid, const Vector2i &p
}
Vector2 TextServerFallback::font_get_glyph_size(RID p_font_rid, const Vector2i &p_size, int32_t p_glyph) const {
- FontDataFallback *fd = font_owner.getornull(p_font_rid);
+ FontDataFallback *fd = font_owner.get_or_null(p_font_rid);
ERR_FAIL_COND_V(!fd, Vector2());
MutexLock lock(fd->mutex);
@@ -1456,7 +1458,7 @@ Vector2 TextServerFallback::font_get_glyph_size(RID p_font_rid, const Vector2i &
}
void TextServerFallback::font_set_glyph_size(RID p_font_rid, const Vector2i &p_size, int32_t p_glyph, const Vector2 &p_gl_size) {
- FontDataFallback *fd = font_owner.getornull(p_font_rid);
+ FontDataFallback *fd = font_owner.get_or_null(p_font_rid);
ERR_FAIL_COND(!fd);
MutexLock lock(fd->mutex);
@@ -1471,7 +1473,7 @@ void TextServerFallback::font_set_glyph_size(RID p_font_rid, const Vector2i &p_s
}
Rect2 TextServerFallback::font_get_glyph_uv_rect(RID p_font_rid, const Vector2i &p_size, int32_t p_glyph) const {
- FontDataFallback *fd = font_owner.getornull(p_font_rid);
+ FontDataFallback *fd = font_owner.get_or_null(p_font_rid);
ERR_FAIL_COND_V(!fd, Rect2());
MutexLock lock(fd->mutex);
@@ -1487,7 +1489,7 @@ Rect2 TextServerFallback::font_get_glyph_uv_rect(RID p_font_rid, const Vector2i
}
void TextServerFallback::font_set_glyph_uv_rect(RID p_font_rid, const Vector2i &p_size, int32_t p_glyph, const Rect2 &p_uv_rect) {
- FontDataFallback *fd = font_owner.getornull(p_font_rid);
+ FontDataFallback *fd = font_owner.get_or_null(p_font_rid);
ERR_FAIL_COND(!fd);
MutexLock lock(fd->mutex);
@@ -1502,7 +1504,7 @@ void TextServerFallback::font_set_glyph_uv_rect(RID p_font_rid, const Vector2i &
}
int TextServerFallback::font_get_glyph_texture_idx(RID p_font_rid, const Vector2i &p_size, int32_t p_glyph) const {
- FontDataFallback *fd = font_owner.getornull(p_font_rid);
+ FontDataFallback *fd = font_owner.get_or_null(p_font_rid);
ERR_FAIL_COND_V(!fd, -1);
MutexLock lock(fd->mutex);
@@ -1518,7 +1520,7 @@ int TextServerFallback::font_get_glyph_texture_idx(RID p_font_rid, const Vector2
}
void TextServerFallback::font_set_glyph_texture_idx(RID p_font_rid, const Vector2i &p_size, int32_t p_glyph, int p_texture_idx) {
- FontDataFallback *fd = font_owner.getornull(p_font_rid);
+ FontDataFallback *fd = font_owner.get_or_null(p_font_rid);
ERR_FAIL_COND(!fd);
MutexLock lock(fd->mutex);
@@ -1533,7 +1535,7 @@ void TextServerFallback::font_set_glyph_texture_idx(RID p_font_rid, const Vector
}
bool TextServerFallback::font_get_glyph_contours(RID p_font_rid, int p_size, int32_t p_index, Vector<Vector3> &r_points, Vector<int32_t> &r_contours, bool &r_orientation) const {
- FontDataFallback *fd = font_owner.getornull(p_font_rid);
+ FontDataFallback *fd = font_owner.get_or_null(p_font_rid);
ERR_FAIL_COND_V(!fd, false);
MutexLock lock(fd->mutex);
@@ -1542,7 +1544,7 @@ bool TextServerFallback::font_get_glyph_contours(RID p_font_rid, int p_size, int
ERR_FAIL_COND_V(!_ensure_cache_for_size(fd, size), false);
#ifdef MODULE_FREETYPE_ENABLED
- int error = FT_Load_Glyph(fd->cache[size]->face, p_index, FT_LOAD_NO_BITMAP | (fd->force_autohinter ? FT_LOAD_FORCE_AUTOHINT : 0));
+ int error = FT_Load_Glyph(fd->cache[size]->face, FT_Get_Char_Index(fd->cache[size]->face, p_index), FT_LOAD_NO_BITMAP | (fd->force_autohinter ? FT_LOAD_FORCE_AUTOHINT : 0));
ERR_FAIL_COND_V(error, false);
r_points.clear();
@@ -1567,7 +1569,7 @@ bool TextServerFallback::font_get_glyph_contours(RID p_font_rid, int p_size, int
}
Array TextServerFallback::font_get_kerning_list(RID p_font_rid, int p_size) const {
- FontDataFallback *fd = font_owner.getornull(p_font_rid);
+ FontDataFallback *fd = font_owner.get_or_null(p_font_rid);
ERR_FAIL_COND_V(!fd, Array());
MutexLock lock(fd->mutex);
@@ -1583,7 +1585,7 @@ Array TextServerFallback::font_get_kerning_list(RID p_font_rid, int p_size) cons
}
void TextServerFallback::font_clear_kerning_map(RID p_font_rid, int p_size) {
- FontDataFallback *fd = font_owner.getornull(p_font_rid);
+ FontDataFallback *fd = font_owner.get_or_null(p_font_rid);
ERR_FAIL_COND(!fd);
MutexLock lock(fd->mutex);
@@ -1594,7 +1596,7 @@ void TextServerFallback::font_clear_kerning_map(RID p_font_rid, int p_size) {
}
void TextServerFallback::font_remove_kerning(RID p_font_rid, int p_size, const Vector2i &p_glyph_pair) {
- FontDataFallback *fd = font_owner.getornull(p_font_rid);
+ FontDataFallback *fd = font_owner.get_or_null(p_font_rid);
ERR_FAIL_COND(!fd);
MutexLock lock(fd->mutex);
@@ -1605,7 +1607,7 @@ void TextServerFallback::font_remove_kerning(RID p_font_rid, int p_size, const V
}
void TextServerFallback::font_set_kerning(RID p_font_rid, int p_size, const Vector2i &p_glyph_pair, const Vector2 &p_kerning) {
- FontDataFallback *fd = font_owner.getornull(p_font_rid);
+ FontDataFallback *fd = font_owner.get_or_null(p_font_rid);
ERR_FAIL_COND(!fd);
MutexLock lock(fd->mutex);
@@ -1616,7 +1618,7 @@ void TextServerFallback::font_set_kerning(RID p_font_rid, int p_size, const Vect
}
Vector2 TextServerFallback::font_get_kerning(RID p_font_rid, int p_size, const Vector2i &p_glyph_pair) const {
- FontDataFallback *fd = font_owner.getornull(p_font_rid);
+ FontDataFallback *fd = font_owner.get_or_null(p_font_rid);
ERR_FAIL_COND_V(!fd, Vector2());
MutexLock lock(fd->mutex);
@@ -1636,7 +1638,9 @@ Vector2 TextServerFallback::font_get_kerning(RID p_font_rid, int p_size, const V
#ifdef MODULE_FREETYPE_ENABLED
if (fd->cache[size]->face) {
FT_Vector delta;
- FT_Get_Kerning(fd->cache[size]->face, p_glyph_pair.x, p_glyph_pair.y, FT_KERNING_DEFAULT, &delta);
+ int32_t glyph_a = FT_Get_Char_Index(fd->cache[size]->face, p_glyph_pair.x);
+ int32_t glyph_b = FT_Get_Char_Index(fd->cache[size]->face, p_glyph_pair.y);
+ FT_Get_Kerning(fd->cache[size]->face, glyph_a, glyph_b, FT_KERNING_DEFAULT, &delta);
if (fd->msdf) {
return Vector2(delta.x, delta.y) * (real_t)p_size / (real_t)fd->msdf_source_size;
} else {
@@ -1649,30 +1653,11 @@ Vector2 TextServerFallback::font_get_kerning(RID p_font_rid, int p_size, const V
}
int32_t TextServerFallback::font_get_glyph_index(RID p_font_rid, int p_size, char32_t p_char, char32_t p_variation_selector) const {
- FontDataFallback *fd = font_owner.getornull(p_font_rid);
- ERR_FAIL_COND_V(!fd, 0);
-
- MutexLock lock(fd->mutex);
- Vector2i size = _get_size(fd, p_size);
- ERR_FAIL_COND_V(!_ensure_cache_for_size(fd, size), 0);
-
-#ifdef MODULE_FREETYPE_ENABLED
- if (fd->cache[size]->face) {
- if (p_variation_selector) {
- return FT_Face_GetCharVariantIndex(fd->cache[size]->face, p_char, p_variation_selector);
- } else {
- return FT_Get_Char_Index(fd->cache[size]->face, p_char);
- }
- } else {
- return 0;
- }
-#else
return (int32_t)p_char;
-#endif
}
bool TextServerFallback::font_has_char(RID p_font_rid, char32_t p_char) const {
- FontDataFallback *fd = font_owner.getornull(p_font_rid);
+ FontDataFallback *fd = font_owner.get_or_null(p_font_rid);
ERR_FAIL_COND_V(!fd, false);
MutexLock lock(fd->mutex);
@@ -1690,7 +1675,7 @@ bool TextServerFallback::font_has_char(RID p_font_rid, char32_t p_char) const {
}
String TextServerFallback::font_get_supported_chars(RID p_font_rid) const {
- FontDataFallback *fd = font_owner.getornull(p_font_rid);
+ FontDataFallback *fd = font_owner.get_or_null(p_font_rid);
ERR_FAIL_COND_V(!fd, String());
MutexLock lock(fd->mutex);
@@ -1724,25 +1709,19 @@ String TextServerFallback::font_get_supported_chars(RID p_font_rid) const {
}
void TextServerFallback::font_render_range(RID p_font_rid, const Vector2i &p_size, char32_t p_start, char32_t p_end) {
- FontDataFallback *fd = font_owner.getornull(p_font_rid);
+ FontDataFallback *fd = font_owner.get_or_null(p_font_rid);
ERR_FAIL_COND(!fd);
MutexLock lock(fd->mutex);
Vector2i size = _get_size_outline(fd, p_size);
ERR_FAIL_COND(!_ensure_cache_for_size(fd, size));
for (char32_t i = p_start; i <= p_end; i++) {
-#ifdef MODULE_FREETYPE_ENABLED
- if (fd->cache[size]->face) {
- _ensure_glyph(fd, size, FT_Get_Char_Index(fd->cache[size]->face, i));
- continue;
- }
-#endif
_ensure_glyph(fd, size, (int32_t)i);
}
}
void TextServerFallback::font_render_glyph(RID p_font_rid, const Vector2i &p_size, int32_t p_index) {
- FontDataFallback *fd = font_owner.getornull(p_font_rid);
+ FontDataFallback *fd = font_owner.get_or_null(p_font_rid);
ERR_FAIL_COND(!fd);
MutexLock lock(fd->mutex);
@@ -1752,7 +1731,7 @@ void TextServerFallback::font_render_glyph(RID p_font_rid, const Vector2i &p_siz
}
void TextServerFallback::font_draw_glyph(RID p_font_rid, RID p_canvas, int p_size, const Vector2 &p_pos, int32_t p_index, const Color &p_color) const {
- FontDataFallback *fd = font_owner.getornull(p_font_rid);
+ FontDataFallback *fd = font_owner.get_or_null(p_font_rid);
ERR_FAIL_COND(!fd);
MutexLock lock(fd->mutex);
@@ -1792,7 +1771,7 @@ void TextServerFallback::font_draw_glyph(RID p_font_rid, RID p_canvas, int p_siz
}
void TextServerFallback::font_draw_glyph_outline(RID p_font_rid, RID p_canvas, int p_size, int p_outline_size, const Vector2 &p_pos, int32_t p_index, const Color &p_color) const {
- FontDataFallback *fd = font_owner.getornull(p_font_rid);
+ FontDataFallback *fd = font_owner.get_or_null(p_font_rid);
ERR_FAIL_COND(!fd);
MutexLock lock(fd->mutex);
@@ -1832,7 +1811,7 @@ void TextServerFallback::font_draw_glyph_outline(RID p_font_rid, RID p_canvas, i
}
bool TextServerFallback::font_is_language_supported(RID p_font_rid, const String &p_language) const {
- FontDataFallback *fd = font_owner.getornull(p_font_rid);
+ FontDataFallback *fd = font_owner.get_or_null(p_font_rid);
ERR_FAIL_COND_V(!fd, false);
MutexLock lock(fd->mutex);
@@ -1844,7 +1823,7 @@ bool TextServerFallback::font_is_language_supported(RID p_font_rid, const String
}
void TextServerFallback::font_set_language_support_override(RID p_font_rid, const String &p_language, bool p_supported) {
- FontDataFallback *fd = font_owner.getornull(p_font_rid);
+ FontDataFallback *fd = font_owner.get_or_null(p_font_rid);
ERR_FAIL_COND(!fd);
MutexLock lock(fd->mutex);
@@ -1852,7 +1831,7 @@ void TextServerFallback::font_set_language_support_override(RID p_font_rid, cons
}
bool TextServerFallback::font_get_language_support_override(RID p_font_rid, const String &p_language) {
- FontDataFallback *fd = font_owner.getornull(p_font_rid);
+ FontDataFallback *fd = font_owner.get_or_null(p_font_rid);
ERR_FAIL_COND_V(!fd, false);
MutexLock lock(fd->mutex);
@@ -1860,7 +1839,7 @@ bool TextServerFallback::font_get_language_support_override(RID p_font_rid, cons
}
void TextServerFallback::font_remove_language_support_override(RID p_font_rid, const String &p_language) {
- FontDataFallback *fd = font_owner.getornull(p_font_rid);
+ FontDataFallback *fd = font_owner.get_or_null(p_font_rid);
ERR_FAIL_COND(!fd);
MutexLock lock(fd->mutex);
@@ -1868,7 +1847,7 @@ void TextServerFallback::font_remove_language_support_override(RID p_font_rid, c
}
Vector<String> TextServerFallback::font_get_language_support_overrides(RID p_font_rid) {
- FontDataFallback *fd = font_owner.getornull(p_font_rid);
+ FontDataFallback *fd = font_owner.get_or_null(p_font_rid);
ERR_FAIL_COND_V(!fd, Vector<String>());
MutexLock lock(fd->mutex);
@@ -1880,7 +1859,7 @@ Vector<String> TextServerFallback::font_get_language_support_overrides(RID p_fon
}
bool TextServerFallback::font_is_script_supported(RID p_font_rid, const String &p_script) const {
- FontDataFallback *fd = font_owner.getornull(p_font_rid);
+ FontDataFallback *fd = font_owner.get_or_null(p_font_rid);
ERR_FAIL_COND_V(!fd, false);
MutexLock lock(fd->mutex);
@@ -1892,7 +1871,7 @@ bool TextServerFallback::font_is_script_supported(RID p_font_rid, const String &
}
void TextServerFallback::font_set_script_support_override(RID p_font_rid, const String &p_script, bool p_supported) {
- FontDataFallback *fd = font_owner.getornull(p_font_rid);
+ FontDataFallback *fd = font_owner.get_or_null(p_font_rid);
ERR_FAIL_COND(!fd);
MutexLock lock(fd->mutex);
@@ -1900,7 +1879,7 @@ void TextServerFallback::font_set_script_support_override(RID p_font_rid, const
}
bool TextServerFallback::font_get_script_support_override(RID p_font_rid, const String &p_script) {
- FontDataFallback *fd = font_owner.getornull(p_font_rid);
+ FontDataFallback *fd = font_owner.get_or_null(p_font_rid);
ERR_FAIL_COND_V(!fd, false);
MutexLock lock(fd->mutex);
@@ -1908,7 +1887,7 @@ bool TextServerFallback::font_get_script_support_override(RID p_font_rid, const
}
void TextServerFallback::font_remove_script_support_override(RID p_font_rid, const String &p_script) {
- FontDataFallback *fd = font_owner.getornull(p_font_rid);
+ FontDataFallback *fd = font_owner.get_or_null(p_font_rid);
ERR_FAIL_COND(!fd);
MutexLock lock(fd->mutex);
@@ -1918,7 +1897,7 @@ void TextServerFallback::font_remove_script_support_override(RID p_font_rid, con
}
Vector<String> TextServerFallback::font_get_script_support_overrides(RID p_font_rid) {
- FontDataFallback *fd = font_owner.getornull(p_font_rid);
+ FontDataFallback *fd = font_owner.get_or_null(p_font_rid);
ERR_FAIL_COND_V(!fd, Vector<String>());
MutexLock lock(fd->mutex);
@@ -1934,7 +1913,7 @@ Dictionary TextServerFallback::font_supported_feature_list(RID p_font_rid) const
}
Dictionary TextServerFallback::font_supported_variation_list(RID p_font_rid) const {
- FontDataFallback *fd = font_owner.getornull(p_font_rid);
+ FontDataFallback *fd = font_owner.get_or_null(p_font_rid);
ERR_FAIL_COND_V(!fd, Dictionary());
MutexLock lock(fd->mutex);
@@ -1965,7 +1944,7 @@ void TextServerFallback::font_set_global_oversampling(real_t p_oversampling) {
List<RID> text_bufs;
shaped_owner.get_owned_list(&text_bufs);
for (const RID &E : text_bufs) {
- invalidate(shaped_owner.getornull(E));
+ invalidate(shaped_owner.get_or_null(E));
}
}
}
@@ -1990,7 +1969,7 @@ void TextServerFallback::invalidate(ShapedTextData *p_shaped) {
}
void TextServerFallback::full_copy(ShapedTextData *p_shaped) {
- ShapedTextData *parent = shaped_owner.getornull(p_shaped->parent);
+ ShapedTextData *parent = shaped_owner.get_or_null(p_shaped->parent);
for (Map<Variant, ShapedTextData::EmbeddedObject>::Element *E = parent->objects.front(); E; E = E->next()) {
if (E->get().pos >= p_shaped->start && E->get().pos < p_shaped->end) {
@@ -2021,7 +2000,7 @@ RID TextServerFallback::create_shaped_text(TextServer::Direction p_direction, Te
}
void TextServerFallback::shaped_text_clear(RID p_shaped) {
- ShapedTextData *sd = shaped_owner.getornull(p_shaped);
+ ShapedTextData *sd = shaped_owner.get_or_null(p_shaped);
ERR_FAIL_COND(!sd);
MutexLock lock(sd->mutex);
@@ -2045,7 +2024,7 @@ TextServer::Direction TextServerFallback::shaped_text_get_direction(RID p_shaped
}
void TextServerFallback::shaped_text_set_orientation(RID p_shaped, TextServer::Orientation p_orientation) {
- ShapedTextData *sd = shaped_owner.getornull(p_shaped);
+ ShapedTextData *sd = shaped_owner.get_or_null(p_shaped);
ERR_FAIL_COND(!sd);
MutexLock lock(sd->mutex);
@@ -2063,7 +2042,7 @@ void TextServerFallback::shaped_text_set_bidi_override(RID p_shaped, const Vecto
}
TextServer::Orientation TextServerFallback::shaped_text_get_orientation(RID p_shaped) const {
- const ShapedTextData *sd = shaped_owner.getornull(p_shaped);
+ const ShapedTextData *sd = shaped_owner.get_or_null(p_shaped);
ERR_FAIL_COND_V(!sd, TextServer::ORIENTATION_HORIZONTAL);
MutexLock lock(sd->mutex);
@@ -2071,7 +2050,7 @@ TextServer::Orientation TextServerFallback::shaped_text_get_orientation(RID p_sh
}
void TextServerFallback::shaped_text_set_preserve_invalid(RID p_shaped, bool p_enabled) {
- ShapedTextData *sd = shaped_owner.getornull(p_shaped);
+ ShapedTextData *sd = shaped_owner.get_or_null(p_shaped);
MutexLock lock(sd->mutex);
ERR_FAIL_COND(!sd);
@@ -2085,7 +2064,7 @@ void TextServerFallback::shaped_text_set_preserve_invalid(RID p_shaped, bool p_e
}
bool TextServerFallback::shaped_text_get_preserve_invalid(RID p_shaped) const {
- const ShapedTextData *sd = shaped_owner.getornull(p_shaped);
+ const ShapedTextData *sd = shaped_owner.get_or_null(p_shaped);
ERR_FAIL_COND_V(!sd, false);
MutexLock lock(sd->mutex);
@@ -2093,7 +2072,7 @@ bool TextServerFallback::shaped_text_get_preserve_invalid(RID p_shaped) const {
}
void TextServerFallback::shaped_text_set_preserve_control(RID p_shaped, bool p_enabled) {
- ShapedTextData *sd = shaped_owner.getornull(p_shaped);
+ ShapedTextData *sd = shaped_owner.get_or_null(p_shaped);
ERR_FAIL_COND(!sd);
MutexLock lock(sd->mutex);
@@ -2107,7 +2086,7 @@ void TextServerFallback::shaped_text_set_preserve_control(RID p_shaped, bool p_e
}
bool TextServerFallback::shaped_text_get_preserve_control(RID p_shaped) const {
- const ShapedTextData *sd = shaped_owner.getornull(p_shaped);
+ const ShapedTextData *sd = shaped_owner.get_or_null(p_shaped);
ERR_FAIL_COND_V(!sd, false);
MutexLock lock(sd->mutex);
@@ -2115,14 +2094,14 @@ bool TextServerFallback::shaped_text_get_preserve_control(RID p_shaped) const {
}
bool TextServerFallback::shaped_text_add_string(RID p_shaped, const String &p_text, const Vector<RID> &p_fonts, int p_size, const Dictionary &p_opentype_features, const String &p_language) {
- ShapedTextData *sd = shaped_owner.getornull(p_shaped);
+ ShapedTextData *sd = shaped_owner.get_or_null(p_shaped);
ERR_FAIL_COND_V(!sd, false);
MutexLock lock(sd->mutex);
ERR_FAIL_COND_V(p_size <= 0, false);
for (int i = 0; i < p_fonts.size(); i++) {
- ERR_FAIL_COND_V(!font_owner.getornull(p_fonts[i]), false);
+ ERR_FAIL_COND_V(!font_owner.get_or_null(p_fonts[i]), false);
}
if (p_text.is_empty()) {
@@ -2162,7 +2141,7 @@ bool TextServerFallback::shaped_text_add_string(RID p_shaped, const String &p_te
}
bool TextServerFallback::shaped_text_add_object(RID p_shaped, Variant p_key, const Size2 &p_size, InlineAlign p_inline_align, int p_length) {
- ShapedTextData *sd = shaped_owner.getornull(p_shaped);
+ ShapedTextData *sd = shaped_owner.get_or_null(p_shaped);
ERR_FAIL_COND_V(!sd, false);
MutexLock lock(sd->mutex);
@@ -2193,7 +2172,7 @@ bool TextServerFallback::shaped_text_add_object(RID p_shaped, Variant p_key, con
}
bool TextServerFallback::shaped_text_resize_object(RID p_shaped, Variant p_key, const Size2 &p_size, InlineAlign p_inline_align) {
- ShapedTextData *sd = shaped_owner.getornull(p_shaped);
+ ShapedTextData *sd = shaped_owner.get_or_null(p_shaped);
ERR_FAIL_COND_V(!sd, false);
MutexLock lock(sd->mutex);
@@ -2326,7 +2305,7 @@ bool TextServerFallback::shaped_text_resize_object(RID p_shaped, Variant p_key,
}
RID TextServerFallback::shaped_text_substr(RID p_shaped, int p_start, int p_length) const {
- const ShapedTextData *sd = shaped_owner.getornull(p_shaped);
+ const ShapedTextData *sd = shaped_owner.get_or_null(p_shaped);
ERR_FAIL_COND_V(!sd, RID());
MutexLock lock(sd->mutex);
@@ -2480,7 +2459,7 @@ RID TextServerFallback::shaped_text_substr(RID p_shaped, int p_start, int p_leng
}
RID TextServerFallback::shaped_text_get_parent(RID p_shaped) const {
- ShapedTextData *sd = shaped_owner.getornull(p_shaped);
+ ShapedTextData *sd = shaped_owner.get_or_null(p_shaped);
ERR_FAIL_COND_V(!sd, RID());
MutexLock lock(sd->mutex);
@@ -2488,7 +2467,7 @@ RID TextServerFallback::shaped_text_get_parent(RID p_shaped) const {
}
real_t TextServerFallback::shaped_text_fit_to_width(RID p_shaped, real_t p_width, uint8_t /*JustificationFlag*/ p_jst_flags) {
- ShapedTextData *sd = shaped_owner.getornull(p_shaped);
+ ShapedTextData *sd = shaped_owner.get_or_null(p_shaped);
ERR_FAIL_COND_V(!sd, 0.f);
MutexLock lock(sd->mutex);
@@ -2568,7 +2547,7 @@ real_t TextServerFallback::shaped_text_fit_to_width(RID p_shaped, real_t p_width
}
real_t TextServerFallback::shaped_text_tab_align(RID p_shaped, const Vector<real_t> &p_tab_stops) {
- ShapedTextData *sd = shaped_owner.getornull(p_shaped);
+ ShapedTextData *sd = shaped_owner.get_or_null(p_shaped);
ERR_FAIL_COND_V(!sd, 0.f);
MutexLock lock(sd->mutex);
@@ -2618,7 +2597,7 @@ real_t TextServerFallback::shaped_text_tab_align(RID p_shaped, const Vector<real
}
bool TextServerFallback::shaped_text_update_breaks(RID p_shaped) {
- ShapedTextData *sd = shaped_owner.getornull(p_shaped);
+ ShapedTextData *sd = shaped_owner.get_or_null(p_shaped);
ERR_FAIL_COND_V(!sd, false);
MutexLock lock(sd->mutex);
@@ -2659,7 +2638,7 @@ bool TextServerFallback::shaped_text_update_breaks(RID p_shaped) {
}
bool TextServerFallback::shaped_text_update_justification_ops(RID p_shaped) {
- ShapedTextData *sd = shaped_owner.getornull(p_shaped);
+ ShapedTextData *sd = shaped_owner.get_or_null(p_shaped);
ERR_FAIL_COND_V(!sd, false);
MutexLock lock(sd->mutex);
@@ -2675,7 +2654,7 @@ bool TextServerFallback::shaped_text_update_justification_ops(RID p_shaped) {
}
void TextServerFallback::shaped_text_overrun_trim_to_width(RID p_shaped_line, real_t p_width, uint8_t p_trim_flags) {
- ShapedTextData *sd = shaped_owner.getornull(p_shaped_line);
+ ShapedTextData *sd = shaped_owner.get_or_null(p_shaped_line);
ERR_FAIL_COND_MSG(!sd, "ShapedTextDataFallback invalid.");
MutexLock lock(sd->mutex);
@@ -2683,6 +2662,7 @@ void TextServerFallback::shaped_text_overrun_trim_to_width(RID p_shaped_line, re
shaped_text_shape(p_shaped_line);
}
+ sd->text_trimmed = false;
sd->overrun_trim_data.ellipsis_glyph_buf.clear();
bool add_ellipsis = (p_trim_flags & OVERRUN_ADD_ELLIPSIS) == OVERRUN_ADD_ELLIPSIS;
@@ -2791,7 +2771,7 @@ void TextServerFallback::shaped_text_overrun_trim_to_width(RID p_shaped_line, re
}
TextServer::TrimData TextServerFallback::shaped_text_get_trim_data(RID p_shaped) const {
- ShapedTextData *sd = shaped_owner.getornull(p_shaped);
+ ShapedTextData *sd = shaped_owner.get_or_null(p_shaped);
ERR_FAIL_COND_V_MSG(!sd, TrimData(), "ShapedTextDataFallback invalid.");
MutexLock lock(sd->mutex);
@@ -2799,7 +2779,7 @@ TextServer::TrimData TextServerFallback::shaped_text_get_trim_data(RID p_shaped)
}
bool TextServerFallback::shaped_text_shape(RID p_shaped) {
- ShapedTextData *sd = shaped_owner.getornull(p_shaped);
+ ShapedTextData *sd = shaped_owner.get_or_null(p_shaped);
ERR_FAIL_COND_V(!sd, false);
MutexLock lock(sd->mutex);
@@ -2993,7 +2973,7 @@ bool TextServerFallback::shaped_text_shape(RID p_shaped) {
}
bool TextServerFallback::shaped_text_is_ready(RID p_shaped) const {
- const ShapedTextData *sd = shaped_owner.getornull(p_shaped);
+ const ShapedTextData *sd = shaped_owner.get_or_null(p_shaped);
ERR_FAIL_COND_V(!sd, false);
MutexLock lock(sd->mutex);
@@ -3001,7 +2981,7 @@ bool TextServerFallback::shaped_text_is_ready(RID p_shaped) const {
}
Vector<TextServer::Glyph> TextServerFallback::shaped_text_get_glyphs(RID p_shaped) const {
- const ShapedTextData *sd = shaped_owner.getornull(p_shaped);
+ const ShapedTextData *sd = shaped_owner.get_or_null(p_shaped);
ERR_FAIL_COND_V(!sd, Vector<TextServer::Glyph>());
MutexLock lock(sd->mutex);
@@ -3012,7 +2992,7 @@ Vector<TextServer::Glyph> TextServerFallback::shaped_text_get_glyphs(RID p_shape
}
Vector2i TextServerFallback::shaped_text_get_range(RID p_shaped) const {
- const ShapedTextData *sd = shaped_owner.getornull(p_shaped);
+ const ShapedTextData *sd = shaped_owner.get_or_null(p_shaped);
ERR_FAIL_COND_V(!sd, Vector2i());
MutexLock lock(sd->mutex);
@@ -3020,7 +3000,7 @@ Vector2i TextServerFallback::shaped_text_get_range(RID p_shaped) const {
}
Vector<TextServer::Glyph> TextServerFallback::shaped_text_sort_logical(RID p_shaped) {
- const ShapedTextData *sd = shaped_owner.getornull(p_shaped);
+ const ShapedTextData *sd = shaped_owner.get_or_null(p_shaped);
ERR_FAIL_COND_V(!sd, Vector<TextServer::Glyph>());
MutexLock lock(sd->mutex);
@@ -3033,7 +3013,7 @@ Vector<TextServer::Glyph> TextServerFallback::shaped_text_sort_logical(RID p_sha
Array TextServerFallback::shaped_text_get_objects(RID p_shaped) const {
Array ret;
- const ShapedTextData *sd = shaped_owner.getornull(p_shaped);
+ const ShapedTextData *sd = shaped_owner.get_or_null(p_shaped);
ERR_FAIL_COND_V(!sd, ret);
MutexLock lock(sd->mutex);
@@ -3045,7 +3025,7 @@ Array TextServerFallback::shaped_text_get_objects(RID p_shaped) const {
}
Rect2 TextServerFallback::shaped_text_get_object_rect(RID p_shaped, Variant p_key) const {
- const ShapedTextData *sd = shaped_owner.getornull(p_shaped);
+ const ShapedTextData *sd = shaped_owner.get_or_null(p_shaped);
ERR_FAIL_COND_V(!sd, Rect2());
MutexLock lock(sd->mutex);
@@ -3057,7 +3037,7 @@ Rect2 TextServerFallback::shaped_text_get_object_rect(RID p_shaped, Variant p_ke
}
Size2 TextServerFallback::shaped_text_get_size(RID p_shaped) const {
- const ShapedTextData *sd = shaped_owner.getornull(p_shaped);
+ const ShapedTextData *sd = shaped_owner.get_or_null(p_shaped);
ERR_FAIL_COND_V(!sd, Size2());
MutexLock lock(sd->mutex);
@@ -3072,7 +3052,7 @@ Size2 TextServerFallback::shaped_text_get_size(RID p_shaped) const {
}
real_t TextServerFallback::shaped_text_get_ascent(RID p_shaped) const {
- const ShapedTextData *sd = shaped_owner.getornull(p_shaped);
+ const ShapedTextData *sd = shaped_owner.get_or_null(p_shaped);
ERR_FAIL_COND_V(!sd, 0.f);
MutexLock lock(sd->mutex);
@@ -3083,7 +3063,7 @@ real_t TextServerFallback::shaped_text_get_ascent(RID p_shaped) const {
}
real_t TextServerFallback::shaped_text_get_descent(RID p_shaped) const {
- const ShapedTextData *sd = shaped_owner.getornull(p_shaped);
+ const ShapedTextData *sd = shaped_owner.get_or_null(p_shaped);
ERR_FAIL_COND_V(!sd, 0.f);
MutexLock lock(sd->mutex);
@@ -3094,7 +3074,7 @@ real_t TextServerFallback::shaped_text_get_descent(RID p_shaped) const {
}
real_t TextServerFallback::shaped_text_get_width(RID p_shaped) const {
- const ShapedTextData *sd = shaped_owner.getornull(p_shaped);
+ const ShapedTextData *sd = shaped_owner.get_or_null(p_shaped);
ERR_FAIL_COND_V(!sd, 0.f);
MutexLock lock(sd->mutex);
@@ -3105,7 +3085,7 @@ real_t TextServerFallback::shaped_text_get_width(RID p_shaped) const {
}
real_t TextServerFallback::shaped_text_get_underline_position(RID p_shaped) const {
- const ShapedTextData *sd = shaped_owner.getornull(p_shaped);
+ const ShapedTextData *sd = shaped_owner.get_or_null(p_shaped);
ERR_FAIL_COND_V(!sd, 0.f);
MutexLock lock(sd->mutex);
@@ -3117,7 +3097,7 @@ real_t TextServerFallback::shaped_text_get_underline_position(RID p_shaped) cons
}
real_t TextServerFallback::shaped_text_get_underline_thickness(RID p_shaped) const {
- const ShapedTextData *sd = shaped_owner.getornull(p_shaped);
+ const ShapedTextData *sd = shaped_owner.get_or_null(p_shaped);
ERR_FAIL_COND_V(!sd, 0.f);
MutexLock lock(sd->mutex);
diff --git a/modules/theora/doc_classes/VideoStreamTheora.xml b/modules/theora/doc_classes/VideoStreamTheora.xml
index e7bf9b202d..2dfcd27dff 100644
--- a/modules/theora/doc_classes/VideoStreamTheora.xml
+++ b/modules/theora/doc_classes/VideoStreamTheora.xml
@@ -24,6 +24,4 @@
</description>
</method>
</methods>
- <constants>
- </constants>
</class>
diff --git a/modules/visual_script/doc_classes/VisualScript.xml b/modules/visual_script/doc_classes/VisualScript.xml
index 2327fc0009..372d46bc10 100644
--- a/modules/visual_script/doc_classes/VisualScript.xml
+++ b/modules/visual_script/doc_classes/VisualScript.xml
@@ -354,6 +354,4 @@
</description>
</signal>
</signals>
- <constants>
- </constants>
</class>
diff --git a/modules/visual_script/doc_classes/VisualScriptBasicTypeConstant.xml b/modules/visual_script/doc_classes/VisualScriptBasicTypeConstant.xml
index 4d07f878a2..ed5b814bb7 100644
--- a/modules/visual_script/doc_classes/VisualScriptBasicTypeConstant.xml
+++ b/modules/visual_script/doc_classes/VisualScriptBasicTypeConstant.xml
@@ -8,8 +8,6 @@
</description>
<tutorials>
</tutorials>
- <methods>
- </methods>
<members>
<member name="basic_type" type="int" setter="set_basic_type" getter="get_basic_type" enum="Variant.Type" default="0">
The type to get the constant from.
@@ -18,6 +16,4 @@
The name of the constant to return.
</member>
</members>
- <constants>
- </constants>
</class>
diff --git a/modules/visual_script/doc_classes/VisualScriptBuiltinFunc.xml b/modules/visual_script/doc_classes/VisualScriptBuiltinFunc.xml
index 55d0b392fa..942d92311b 100644
--- a/modules/visual_script/doc_classes/VisualScriptBuiltinFunc.xml
+++ b/modules/visual_script/doc_classes/VisualScriptBuiltinFunc.xml
@@ -9,8 +9,6 @@
</description>
<tutorials>
</tutorials>
- <methods>
- </methods>
<members>
<member name="function" type="int" setter="set_func" getter="get_func" enum="VisualScriptBuiltinFunc.BuiltinFunc" default="0">
The function to be executed.
@@ -181,32 +179,34 @@
<constant name="TEXT_PRINTRAW" value="55" enum="BuiltinFunc">
Print the given string to the standard output, without adding a newline.
</constant>
- <constant name="VAR_TO_STR" value="56" enum="BuiltinFunc">
+ <constant name="TEXT_PRINT_VERBOSE" value="56" enum="BuiltinFunc">
+ </constant>
+ <constant name="VAR_TO_STR" value="57" enum="BuiltinFunc">
Serialize a [Variant] to a string.
</constant>
- <constant name="STR_TO_VAR" value="57" enum="BuiltinFunc">
+ <constant name="STR_TO_VAR" value="58" enum="BuiltinFunc">
Deserialize a [Variant] from a string serialized using [constant VAR_TO_STR].
</constant>
- <constant name="VAR_TO_BYTES" value="58" enum="BuiltinFunc">
+ <constant name="VAR_TO_BYTES" value="59" enum="BuiltinFunc">
Serialize a [Variant] to a [PackedByteArray].
</constant>
- <constant name="BYTES_TO_VAR" value="59" enum="BuiltinFunc">
+ <constant name="BYTES_TO_VAR" value="60" enum="BuiltinFunc">
Deserialize a [Variant] from a [PackedByteArray] serialized using [constant VAR_TO_BYTES].
</constant>
- <constant name="MATH_SMOOTHSTEP" value="60" enum="BuiltinFunc">
+ <constant name="MATH_SMOOTHSTEP" value="61" enum="BuiltinFunc">
Return a number smoothly interpolated between the first two inputs, based on the third input. Similar to [constant MATH_LERP], but interpolates faster at the beginning and slower at the end. Using Hermite interpolation formula:
[codeblock]
var t = clamp((weight - from) / (to - from), 0.0, 1.0)
return t * t * (3.0 - 2.0 * t)
[/codeblock]
</constant>
- <constant name="MATH_POSMOD" value="61" enum="BuiltinFunc">
+ <constant name="MATH_POSMOD" value="62" enum="BuiltinFunc">
</constant>
- <constant name="MATH_LERP_ANGLE" value="62" enum="BuiltinFunc">
+ <constant name="MATH_LERP_ANGLE" value="63" enum="BuiltinFunc">
</constant>
- <constant name="TEXT_ORD" value="63" enum="BuiltinFunc">
+ <constant name="TEXT_ORD" value="64" enum="BuiltinFunc">
</constant>
- <constant name="FUNC_MAX" value="64" enum="BuiltinFunc">
+ <constant name="FUNC_MAX" value="65" enum="BuiltinFunc">
Represents the size of the [enum BuiltinFunc] enum.
</constant>
</constants>
diff --git a/modules/visual_script/doc_classes/VisualScriptClassConstant.xml b/modules/visual_script/doc_classes/VisualScriptClassConstant.xml
index d6b96957f5..ae32500d2f 100644
--- a/modules/visual_script/doc_classes/VisualScriptClassConstant.xml
+++ b/modules/visual_script/doc_classes/VisualScriptClassConstant.xml
@@ -12,8 +12,6 @@
</description>
<tutorials>
</tutorials>
- <methods>
- </methods>
<members>
<member name="base_type" type="StringName" setter="set_base_type" getter="get_base_type" default="&amp;&quot;Object&quot;">
The constant's parent class.
@@ -22,6 +20,4 @@
The constant to return. See the given class for its available constants.
</member>
</members>
- <constants>
- </constants>
</class>
diff --git a/modules/visual_script/doc_classes/VisualScriptComment.xml b/modules/visual_script/doc_classes/VisualScriptComment.xml
index 02cec97b27..5024aae384 100644
--- a/modules/visual_script/doc_classes/VisualScriptComment.xml
+++ b/modules/visual_script/doc_classes/VisualScriptComment.xml
@@ -9,8 +9,6 @@
</description>
<tutorials>
</tutorials>
- <methods>
- </methods>
<members>
<member name="description" type="String" setter="set_description" getter="get_description" default="&quot;&quot;">
The text inside the comment node.
@@ -22,6 +20,4 @@
The comment node's title.
</member>
</members>
- <constants>
- </constants>
</class>
diff --git a/modules/visual_script/doc_classes/VisualScriptComposeArray.xml b/modules/visual_script/doc_classes/VisualScriptComposeArray.xml
index dec182abf6..ed065759c5 100644
--- a/modules/visual_script/doc_classes/VisualScriptComposeArray.xml
+++ b/modules/visual_script/doc_classes/VisualScriptComposeArray.xml
@@ -8,8 +8,4 @@
</description>
<tutorials>
</tutorials>
- <methods>
- </methods>
- <constants>
- </constants>
</class>
diff --git a/modules/visual_script/doc_classes/VisualScriptCondition.xml b/modules/visual_script/doc_classes/VisualScriptCondition.xml
index a9981c1f57..a5dd8c7c1b 100644
--- a/modules/visual_script/doc_classes/VisualScriptCondition.xml
+++ b/modules/visual_script/doc_classes/VisualScriptCondition.xml
@@ -15,8 +15,4 @@
</description>
<tutorials>
</tutorials>
- <methods>
- </methods>
- <constants>
- </constants>
</class>
diff --git a/modules/visual_script/doc_classes/VisualScriptConstant.xml b/modules/visual_script/doc_classes/VisualScriptConstant.xml
index 69676c4bba..388c2bddde 100644
--- a/modules/visual_script/doc_classes/VisualScriptConstant.xml
+++ b/modules/visual_script/doc_classes/VisualScriptConstant.xml
@@ -12,8 +12,6 @@
</description>
<tutorials>
</tutorials>
- <methods>
- </methods>
<members>
<member name="type" type="int" setter="set_constant_type" getter="get_constant_type" enum="Variant.Type" default="0">
The constant's type.
@@ -22,6 +20,4 @@
The constant's value.
</member>
</members>
- <constants>
- </constants>
</class>
diff --git a/modules/visual_script/doc_classes/VisualScriptConstructor.xml b/modules/visual_script/doc_classes/VisualScriptConstructor.xml
index 4743594ec3..4a3d10aa8e 100644
--- a/modules/visual_script/doc_classes/VisualScriptConstructor.xml
+++ b/modules/visual_script/doc_classes/VisualScriptConstructor.xml
@@ -32,6 +32,4 @@
</description>
</method>
</methods>
- <constants>
- </constants>
</class>
diff --git a/modules/visual_script/doc_classes/VisualScriptDeconstruct.xml b/modules/visual_script/doc_classes/VisualScriptDeconstruct.xml
index 530c80530e..fd9a91c2a5 100644
--- a/modules/visual_script/doc_classes/VisualScriptDeconstruct.xml
+++ b/modules/visual_script/doc_classes/VisualScriptDeconstruct.xml
@@ -8,13 +8,9 @@
</description>
<tutorials>
</tutorials>
- <methods>
- </methods>
<members>
<member name="type" type="int" setter="set_deconstruct_type" getter="get_deconstruct_type" enum="Variant.Type" default="0">
The type to deconstruct.
</member>
</members>
- <constants>
- </constants>
</class>
diff --git a/modules/visual_script/doc_classes/VisualScriptEmitSignal.xml b/modules/visual_script/doc_classes/VisualScriptEmitSignal.xml
index df3121d093..e102e02aa9 100644
--- a/modules/visual_script/doc_classes/VisualScriptEmitSignal.xml
+++ b/modules/visual_script/doc_classes/VisualScriptEmitSignal.xml
@@ -12,13 +12,9 @@
</description>
<tutorials>
</tutorials>
- <methods>
- </methods>
<members>
<member name="signal" type="StringName" setter="set_signal" getter="get_signal" default="&amp;&quot;&quot;">
The signal to emit.
</member>
</members>
- <constants>
- </constants>
</class>
diff --git a/modules/visual_script/doc_classes/VisualScriptEngineSingleton.xml b/modules/visual_script/doc_classes/VisualScriptEngineSingleton.xml
index 8b7fd3a612..468cae852f 100644
--- a/modules/visual_script/doc_classes/VisualScriptEngineSingleton.xml
+++ b/modules/visual_script/doc_classes/VisualScriptEngineSingleton.xml
@@ -8,13 +8,9 @@
</description>
<tutorials>
</tutorials>
- <methods>
- </methods>
<members>
<member name="constant" type="String" setter="set_singleton" getter="get_singleton" default="&quot;&quot;">
The singleton's name.
</member>
</members>
- <constants>
- </constants>
</class>
diff --git a/modules/visual_script/doc_classes/VisualScriptExpression.xml b/modules/visual_script/doc_classes/VisualScriptExpression.xml
index 223adbbb96..15e16a15f0 100644
--- a/modules/visual_script/doc_classes/VisualScriptExpression.xml
+++ b/modules/visual_script/doc_classes/VisualScriptExpression.xml
@@ -8,8 +8,4 @@
</description>
<tutorials>
</tutorials>
- <methods>
- </methods>
- <constants>
- </constants>
</class>
diff --git a/modules/visual_script/doc_classes/VisualScriptFunction.xml b/modules/visual_script/doc_classes/VisualScriptFunction.xml
index 652418bd64..e0ca9eb280 100644
--- a/modules/visual_script/doc_classes/VisualScriptFunction.xml
+++ b/modules/visual_script/doc_classes/VisualScriptFunction.xml
@@ -8,8 +8,4 @@
</description>
<tutorials>
</tutorials>
- <methods>
- </methods>
- <constants>
- </constants>
</class>
diff --git a/modules/visual_script/doc_classes/VisualScriptFunctionCall.xml b/modules/visual_script/doc_classes/VisualScriptFunctionCall.xml
index f0b666e57a..a98cb79106 100644
--- a/modules/visual_script/doc_classes/VisualScriptFunctionCall.xml
+++ b/modules/visual_script/doc_classes/VisualScriptFunctionCall.xml
@@ -8,8 +8,6 @@
</description>
<tutorials>
</tutorials>
- <methods>
- </methods>
<members>
<member name="base_script" type="String" setter="set_base_script" getter="get_base_script">
The script to be used when [member call_mode] is set to [constant CALL_MODE_INSTANCE].
diff --git a/modules/visual_script/doc_classes/VisualScriptFunctionState.xml b/modules/visual_script/doc_classes/VisualScriptFunctionState.xml
index 18c3826df8..0d7833446d 100644
--- a/modules/visual_script/doc_classes/VisualScriptFunctionState.xml
+++ b/modules/visual_script/doc_classes/VisualScriptFunctionState.xml
@@ -32,6 +32,4 @@
</description>
</method>
</methods>
- <constants>
- </constants>
</class>
diff --git a/modules/visual_script/doc_classes/VisualScriptGlobalConstant.xml b/modules/visual_script/doc_classes/VisualScriptGlobalConstant.xml
index 87fdfd4e53..c6b5b22590 100644
--- a/modules/visual_script/doc_classes/VisualScriptGlobalConstant.xml
+++ b/modules/visual_script/doc_classes/VisualScriptGlobalConstant.xml
@@ -8,13 +8,9 @@
</description>
<tutorials>
</tutorials>
- <methods>
- </methods>
<members>
<member name="constant" type="int" setter="set_global_constant" getter="get_global_constant" default="0">
The constant to be used.
</member>
</members>
- <constants>
- </constants>
</class>
diff --git a/modules/visual_script/doc_classes/VisualScriptIndexGet.xml b/modules/visual_script/doc_classes/VisualScriptIndexGet.xml
index b348048298..78fd17c5fc 100644
--- a/modules/visual_script/doc_classes/VisualScriptIndexGet.xml
+++ b/modules/visual_script/doc_classes/VisualScriptIndexGet.xml
@@ -8,8 +8,4 @@
</description>
<tutorials>
</tutorials>
- <methods>
- </methods>
- <constants>
- </constants>
</class>
diff --git a/modules/visual_script/doc_classes/VisualScriptIndexSet.xml b/modules/visual_script/doc_classes/VisualScriptIndexSet.xml
index d7fe7340ad..0e5e832c65 100644
--- a/modules/visual_script/doc_classes/VisualScriptIndexSet.xml
+++ b/modules/visual_script/doc_classes/VisualScriptIndexSet.xml
@@ -8,8 +8,4 @@
</description>
<tutorials>
</tutorials>
- <methods>
- </methods>
- <constants>
- </constants>
</class>
diff --git a/modules/visual_script/doc_classes/VisualScriptInputAction.xml b/modules/visual_script/doc_classes/VisualScriptInputAction.xml
index d6fa111500..eb06d52314 100644
--- a/modules/visual_script/doc_classes/VisualScriptInputAction.xml
+++ b/modules/visual_script/doc_classes/VisualScriptInputAction.xml
@@ -8,8 +8,6 @@
</description>
<tutorials>
</tutorials>
- <methods>
- </methods>
<members>
<member name="action" type="StringName" setter="set_action_name" getter="get_action_name" default="&amp;&quot;&quot;">
Name of the action.
diff --git a/modules/visual_script/doc_classes/VisualScriptIterator.xml b/modules/visual_script/doc_classes/VisualScriptIterator.xml
index 1d4ab4daa9..d8305728c6 100644
--- a/modules/visual_script/doc_classes/VisualScriptIterator.xml
+++ b/modules/visual_script/doc_classes/VisualScriptIterator.xml
@@ -15,8 +15,4 @@
</description>
<tutorials>
</tutorials>
- <methods>
- </methods>
- <constants>
- </constants>
</class>
diff --git a/modules/visual_script/doc_classes/VisualScriptLists.xml b/modules/visual_script/doc_classes/VisualScriptLists.xml
index d5bff1341a..373e3c7191 100644
--- a/modules/visual_script/doc_classes/VisualScriptLists.xml
+++ b/modules/visual_script/doc_classes/VisualScriptLists.xml
@@ -74,6 +74,4 @@
</description>
</method>
</methods>
- <constants>
- </constants>
</class>
diff --git a/modules/visual_script/doc_classes/VisualScriptLocalVar.xml b/modules/visual_script/doc_classes/VisualScriptLocalVar.xml
index 185f0f1ffb..29dbddcdf4 100644
--- a/modules/visual_script/doc_classes/VisualScriptLocalVar.xml
+++ b/modules/visual_script/doc_classes/VisualScriptLocalVar.xml
@@ -12,8 +12,6 @@
</description>
<tutorials>
</tutorials>
- <methods>
- </methods>
<members>
<member name="type" type="int" setter="set_var_type" getter="get_var_type" enum="Variant.Type" default="0">
The local variable's type.
@@ -22,6 +20,4 @@
The local variable's name.
</member>
</members>
- <constants>
- </constants>
</class>
diff --git a/modules/visual_script/doc_classes/VisualScriptLocalVarSet.xml b/modules/visual_script/doc_classes/VisualScriptLocalVarSet.xml
index 865f0153c9..96de8ebfdd 100644
--- a/modules/visual_script/doc_classes/VisualScriptLocalVarSet.xml
+++ b/modules/visual_script/doc_classes/VisualScriptLocalVarSet.xml
@@ -14,8 +14,6 @@
</description>
<tutorials>
</tutorials>
- <methods>
- </methods>
<members>
<member name="type" type="int" setter="set_var_type" getter="get_var_type" enum="Variant.Type" default="0">
The local variable's type.
@@ -24,6 +22,4 @@
The local variable's name.
</member>
</members>
- <constants>
- </constants>
</class>
diff --git a/modules/visual_script/doc_classes/VisualScriptMathConstant.xml b/modules/visual_script/doc_classes/VisualScriptMathConstant.xml
index 18a1f030bc..f559083c80 100644
--- a/modules/visual_script/doc_classes/VisualScriptMathConstant.xml
+++ b/modules/visual_script/doc_classes/VisualScriptMathConstant.xml
@@ -12,8 +12,6 @@
</description>
<tutorials>
</tutorials>
- <methods>
- </methods>
<members>
<member name="constant" type="int" setter="set_math_constant" getter="get_math_constant" enum="VisualScriptMathConstant.MathConstant" default="0">
The math constant.
diff --git a/modules/visual_script/doc_classes/VisualScriptNode.xml b/modules/visual_script/doc_classes/VisualScriptNode.xml
index 23574a5ea8..d080d9eac1 100644
--- a/modules/visual_script/doc_classes/VisualScriptNode.xml
+++ b/modules/visual_script/doc_classes/VisualScriptNode.xml
@@ -44,6 +44,4 @@
</description>
</signal>
</signals>
- <constants>
- </constants>
</class>
diff --git a/modules/visual_script/doc_classes/VisualScriptOperator.xml b/modules/visual_script/doc_classes/VisualScriptOperator.xml
index cbbefa7f71..73d28899f6 100644
--- a/modules/visual_script/doc_classes/VisualScriptOperator.xml
+++ b/modules/visual_script/doc_classes/VisualScriptOperator.xml
@@ -12,8 +12,6 @@
</description>
<tutorials>
</tutorials>
- <methods>
- </methods>
<members>
<member name="operator" type="int" setter="set_operator" getter="get_operator" enum="Variant.Operator" default="6">
The operation to be performed. See [enum Variant.Operator] for available options.
@@ -22,6 +20,4 @@
The type of the values for this operation. See [enum Variant.Type] for available options.
</member>
</members>
- <constants>
- </constants>
</class>
diff --git a/modules/visual_script/doc_classes/VisualScriptPreload.xml b/modules/visual_script/doc_classes/VisualScriptPreload.xml
index e11af6c805..e3d60c77bb 100644
--- a/modules/visual_script/doc_classes/VisualScriptPreload.xml
+++ b/modules/visual_script/doc_classes/VisualScriptPreload.xml
@@ -12,13 +12,9 @@
</description>
<tutorials>
</tutorials>
- <methods>
- </methods>
<members>
<member name="resource" type="Resource" setter="set_preload" getter="get_preload">
The [Resource] to load.
</member>
</members>
- <constants>
- </constants>
</class>
diff --git a/modules/visual_script/doc_classes/VisualScriptPropertyGet.xml b/modules/visual_script/doc_classes/VisualScriptPropertyGet.xml
index c1bf443ea3..e9f30cb605 100644
--- a/modules/visual_script/doc_classes/VisualScriptPropertyGet.xml
+++ b/modules/visual_script/doc_classes/VisualScriptPropertyGet.xml
@@ -8,8 +8,6 @@
</description>
<tutorials>
</tutorials>
- <methods>
- </methods>
<members>
<member name="base_script" type="String" setter="set_base_script" getter="get_base_script">
The script to be used when [member set_mode] is set to [constant CALL_MODE_INSTANCE].
diff --git a/modules/visual_script/doc_classes/VisualScriptPropertySet.xml b/modules/visual_script/doc_classes/VisualScriptPropertySet.xml
index 75d6a63469..96261d2c5e 100644
--- a/modules/visual_script/doc_classes/VisualScriptPropertySet.xml
+++ b/modules/visual_script/doc_classes/VisualScriptPropertySet.xml
@@ -8,8 +8,6 @@
</description>
<tutorials>
</tutorials>
- <methods>
- </methods>
<members>
<member name="assign_op" type="int" setter="set_assign_op" getter="get_assign_op" enum="VisualScriptPropertySet.AssignOp" default="0">
The additional operation to perform when assigning. See [enum AssignOp] for options.
diff --git a/modules/visual_script/doc_classes/VisualScriptResourcePath.xml b/modules/visual_script/doc_classes/VisualScriptResourcePath.xml
index ea891be05f..77e97a7219 100644
--- a/modules/visual_script/doc_classes/VisualScriptResourcePath.xml
+++ b/modules/visual_script/doc_classes/VisualScriptResourcePath.xml
@@ -6,12 +6,8 @@
</description>
<tutorials>
</tutorials>
- <methods>
- </methods>
<members>
<member name="path" type="String" setter="set_resource_path" getter="get_resource_path" default="&quot;&quot;">
</member>
</members>
- <constants>
- </constants>
</class>
diff --git a/modules/visual_script/doc_classes/VisualScriptReturn.xml b/modules/visual_script/doc_classes/VisualScriptReturn.xml
index 502628925d..2193f45dc8 100644
--- a/modules/visual_script/doc_classes/VisualScriptReturn.xml
+++ b/modules/visual_script/doc_classes/VisualScriptReturn.xml
@@ -13,8 +13,6 @@
</description>
<tutorials>
</tutorials>
- <methods>
- </methods>
<members>
<member name="return_enabled" type="bool" setter="set_enable_return_value" getter="is_return_value_enabled" default="false">
If [code]true[/code], the [code]return[/code] input port is available.
@@ -23,6 +21,4 @@
The return value's data type.
</member>
</members>
- <constants>
- </constants>
</class>
diff --git a/modules/visual_script/doc_classes/VisualScriptSceneNode.xml b/modules/visual_script/doc_classes/VisualScriptSceneNode.xml
index ffe187a00e..ac672d9b3f 100644
--- a/modules/visual_script/doc_classes/VisualScriptSceneNode.xml
+++ b/modules/visual_script/doc_classes/VisualScriptSceneNode.xml
@@ -12,13 +12,9 @@
</description>
<tutorials>
</tutorials>
- <methods>
- </methods>
<members>
<member name="node_path" type="NodePath" setter="set_node_path" getter="get_node_path" default="NodePath(&quot;.&quot;)">
The node's path in the scene tree.
</member>
</members>
- <constants>
- </constants>
</class>
diff --git a/modules/visual_script/doc_classes/VisualScriptSceneTree.xml b/modules/visual_script/doc_classes/VisualScriptSceneTree.xml
index 8cddd02c77..fc383593c5 100644
--- a/modules/visual_script/doc_classes/VisualScriptSceneTree.xml
+++ b/modules/visual_script/doc_classes/VisualScriptSceneTree.xml
@@ -8,8 +8,4 @@
</description>
<tutorials>
</tutorials>
- <methods>
- </methods>
- <constants>
- </constants>
</class>
diff --git a/modules/visual_script/doc_classes/VisualScriptSelect.xml b/modules/visual_script/doc_classes/VisualScriptSelect.xml
index 1dbc066e32..d536e623f7 100644
--- a/modules/visual_script/doc_classes/VisualScriptSelect.xml
+++ b/modules/visual_script/doc_classes/VisualScriptSelect.xml
@@ -14,13 +14,9 @@
</description>
<tutorials>
</tutorials>
- <methods>
- </methods>
<members>
<member name="type" type="int" setter="set_typed" getter="get_typed" enum="Variant.Type" default="0">
The input variables' type.
</member>
</members>
- <constants>
- </constants>
</class>
diff --git a/modules/visual_script/doc_classes/VisualScriptSelf.xml b/modules/visual_script/doc_classes/VisualScriptSelf.xml
index bb24f158c1..3c2bd16302 100644
--- a/modules/visual_script/doc_classes/VisualScriptSelf.xml
+++ b/modules/visual_script/doc_classes/VisualScriptSelf.xml
@@ -12,8 +12,4 @@
</description>
<tutorials>
</tutorials>
- <methods>
- </methods>
- <constants>
- </constants>
</class>
diff --git a/modules/visual_script/doc_classes/VisualScriptSequence.xml b/modules/visual_script/doc_classes/VisualScriptSequence.xml
index 664722574d..32dcbb9837 100644
--- a/modules/visual_script/doc_classes/VisualScriptSequence.xml
+++ b/modules/visual_script/doc_classes/VisualScriptSequence.xml
@@ -14,13 +14,9 @@
</description>
<tutorials>
</tutorials>
- <methods>
- </methods>
<members>
<member name="steps" type="int" setter="set_steps" getter="get_steps" default="1">
The number of steps in the sequence.
</member>
</members>
- <constants>
- </constants>
</class>
diff --git a/modules/visual_script/doc_classes/VisualScriptSubCall.xml b/modules/visual_script/doc_classes/VisualScriptSubCall.xml
index f54887b09c..fdf0e24d3e 100644
--- a/modules/visual_script/doc_classes/VisualScriptSubCall.xml
+++ b/modules/visual_script/doc_classes/VisualScriptSubCall.xml
@@ -8,8 +8,4 @@
</description>
<tutorials>
</tutorials>
- <methods>
- </methods>
- <constants>
- </constants>
</class>
diff --git a/modules/visual_script/doc_classes/VisualScriptSwitch.xml b/modules/visual_script/doc_classes/VisualScriptSwitch.xml
index 74504948f0..8e176b56f0 100644
--- a/modules/visual_script/doc_classes/VisualScriptSwitch.xml
+++ b/modules/visual_script/doc_classes/VisualScriptSwitch.xml
@@ -17,8 +17,4 @@
</description>
<tutorials>
</tutorials>
- <methods>
- </methods>
- <constants>
- </constants>
</class>
diff --git a/modules/visual_script/doc_classes/VisualScriptTypeCast.xml b/modules/visual_script/doc_classes/VisualScriptTypeCast.xml
index 5dd1ad3421..ee8e2ad31e 100644
--- a/modules/visual_script/doc_classes/VisualScriptTypeCast.xml
+++ b/modules/visual_script/doc_classes/VisualScriptTypeCast.xml
@@ -8,8 +8,6 @@
</description>
<tutorials>
</tutorials>
- <methods>
- </methods>
<members>
<member name="base_script" type="String" setter="set_base_script" getter="get_base_script" default="&quot;&quot;">
The target script class to be converted to. If none, only the [member base_type] will be used.
@@ -18,6 +16,4 @@
The target type to be converted to.
</member>
</members>
- <constants>
- </constants>
</class>
diff --git a/modules/visual_script/doc_classes/VisualScriptVariableGet.xml b/modules/visual_script/doc_classes/VisualScriptVariableGet.xml
index df20ac53f2..e29765d616 100644
--- a/modules/visual_script/doc_classes/VisualScriptVariableGet.xml
+++ b/modules/visual_script/doc_classes/VisualScriptVariableGet.xml
@@ -12,13 +12,9 @@
</description>
<tutorials>
</tutorials>
- <methods>
- </methods>
<members>
<member name="var_name" type="StringName" setter="set_variable" getter="get_variable" default="&amp;&quot;&quot;">
The variable's name.
</member>
</members>
- <constants>
- </constants>
</class>
diff --git a/modules/visual_script/doc_classes/VisualScriptVariableSet.xml b/modules/visual_script/doc_classes/VisualScriptVariableSet.xml
index eb8ebbe338..b2cc70d62e 100644
--- a/modules/visual_script/doc_classes/VisualScriptVariableSet.xml
+++ b/modules/visual_script/doc_classes/VisualScriptVariableSet.xml
@@ -13,13 +13,9 @@
</description>
<tutorials>
</tutorials>
- <methods>
- </methods>
<members>
<member name="var_name" type="StringName" setter="set_variable" getter="get_variable" default="&amp;&quot;&quot;">
The variable's name.
</member>
</members>
- <constants>
- </constants>
</class>
diff --git a/modules/visual_script/doc_classes/VisualScriptWhile.xml b/modules/visual_script/doc_classes/VisualScriptWhile.xml
index f187957ad2..f090568608 100644
--- a/modules/visual_script/doc_classes/VisualScriptWhile.xml
+++ b/modules/visual_script/doc_classes/VisualScriptWhile.xml
@@ -14,8 +14,4 @@
</description>
<tutorials>
</tutorials>
- <methods>
- </methods>
- <constants>
- </constants>
</class>
diff --git a/modules/visual_script/doc_classes/VisualScriptYield.xml b/modules/visual_script/doc_classes/VisualScriptYield.xml
index b04ab7b014..bb7fd8bfb5 100644
--- a/modules/visual_script/doc_classes/VisualScriptYield.xml
+++ b/modules/visual_script/doc_classes/VisualScriptYield.xml
@@ -8,8 +8,6 @@
</description>
<tutorials>
</tutorials>
- <methods>
- </methods>
<members>
<member name="mode" type="int" setter="set_yield_mode" getter="get_yield_mode" enum="VisualScriptYield.YieldMode" default="1">
The mode to use for yielding. See [enum YieldMode] for available options.
diff --git a/modules/visual_script/doc_classes/VisualScriptYieldSignal.xml b/modules/visual_script/doc_classes/VisualScriptYieldSignal.xml
index c6c3188d08..ad6a7fb4e2 100644
--- a/modules/visual_script/doc_classes/VisualScriptYieldSignal.xml
+++ b/modules/visual_script/doc_classes/VisualScriptYieldSignal.xml
@@ -8,8 +8,6 @@
</description>
<tutorials>
</tutorials>
- <methods>
- </methods>
<members>
<member name="base_type" type="StringName" setter="set_base_type" getter="get_base_type" default="&amp;&quot;Object&quot;">
The base type to be used when [member call_mode] is set to [constant CALL_MODE_INSTANCE].
diff --git a/modules/visual_script/visual_script_builtin_funcs.cpp b/modules/visual_script/visual_script_builtin_funcs.cpp
index 2bd7220d15..7e01031128 100644
--- a/modules/visual_script/visual_script_builtin_funcs.cpp
+++ b/modules/visual_script/visual_script_builtin_funcs.cpp
@@ -94,6 +94,7 @@ const char *VisualScriptBuiltinFunc::func_name[VisualScriptBuiltinFunc::FUNC_MAX
"print",
"printerr",
"printraw",
+ "print_verbose",
"var2str",
"str2var",
"var2bytes",
@@ -129,6 +130,7 @@ bool VisualScriptBuiltinFunc::has_input_sequence_port() const {
case TEXT_PRINT:
case TEXT_PRINTERR:
case TEXT_PRINTRAW:
+ case TEXT_PRINT_VERBOSE:
case MATH_SEED:
return true;
default:
@@ -177,6 +179,7 @@ int VisualScriptBuiltinFunc::get_func_argument_count(BuiltinFunc p_func) {
case TEXT_PRINT:
case TEXT_PRINTERR:
case TEXT_PRINTRAW:
+ case TEXT_PRINT_VERBOSE:
case VAR_TO_STR:
case STR_TO_VAR:
case TYPE_EXISTS:
@@ -223,6 +226,7 @@ int VisualScriptBuiltinFunc::get_output_value_port_count() const {
case TEXT_PRINT:
case TEXT_PRINTERR:
case TEXT_PRINTRAW:
+ case TEXT_PRINT_VERBOSE:
case MATH_SEED:
return 0;
case MATH_RANDSEED:
@@ -424,7 +428,8 @@ PropertyInfo VisualScriptBuiltinFunc::get_input_value_port_info(int p_idx) const
case TEXT_STR:
case TEXT_PRINT:
case TEXT_PRINTERR:
- case TEXT_PRINTRAW: {
+ case TEXT_PRINTRAW:
+ case TEXT_PRINT_VERBOSE: {
return PropertyInfo(Variant::NIL, "value");
} break;
case STR_TO_VAR: {
@@ -572,6 +577,8 @@ PropertyInfo VisualScriptBuiltinFunc::get_output_value_port_info(int p_idx) cons
} break;
case TEXT_PRINTRAW: {
} break;
+ case TEXT_PRINT_VERBOSE: {
+ } break;
case VAR_TO_STR: {
t = Variant::STRING;
} break;
@@ -1020,6 +1027,10 @@ void VisualScriptBuiltinFunc::exec_func(BuiltinFunc p_func, const Variant **p_in
OS::get_singleton()->print("%s", str.utf8().get_data());
} break;
+ case VisualScriptBuiltinFunc::TEXT_PRINT_VERBOSE: {
+ String str = *p_inputs[0];
+ print_verbose(str);
+ } break;
case VisualScriptBuiltinFunc::VAR_TO_STR: {
String vars;
VariantWriter::write_to_string(*p_inputs[0], vars);
@@ -1208,6 +1219,7 @@ void VisualScriptBuiltinFunc::_bind_methods() {
BIND_ENUM_CONSTANT(TEXT_PRINT);
BIND_ENUM_CONSTANT(TEXT_PRINTERR);
BIND_ENUM_CONSTANT(TEXT_PRINTRAW);
+ BIND_ENUM_CONSTANT(TEXT_PRINT_VERBOSE);
BIND_ENUM_CONSTANT(VAR_TO_STR);
BIND_ENUM_CONSTANT(STR_TO_VAR);
BIND_ENUM_CONSTANT(VAR_TO_BYTES);
@@ -1300,6 +1312,7 @@ void register_visual_script_builtin_func_node() {
VisualScriptLanguage::singleton->add_register_func("functions/built_in/print", create_builtin_func_node<VisualScriptBuiltinFunc::TEXT_PRINT>);
VisualScriptLanguage::singleton->add_register_func("functions/built_in/printerr", create_builtin_func_node<VisualScriptBuiltinFunc::TEXT_PRINTERR>);
VisualScriptLanguage::singleton->add_register_func("functions/built_in/printraw", create_builtin_func_node<VisualScriptBuiltinFunc::TEXT_PRINTRAW>);
+ VisualScriptLanguage::singleton->add_register_func("functions/built_in/print_verbose", create_builtin_func_node<VisualScriptBuiltinFunc::TEXT_PRINT_VERBOSE>);
VisualScriptLanguage::singleton->add_register_func("functions/built_in/var2str", create_builtin_func_node<VisualScriptBuiltinFunc::VAR_TO_STR>);
VisualScriptLanguage::singleton->add_register_func("functions/built_in/str2var", create_builtin_func_node<VisualScriptBuiltinFunc::STR_TO_VAR>);
VisualScriptLanguage::singleton->add_register_func("functions/built_in/var2bytes", create_builtin_func_node<VisualScriptBuiltinFunc::VAR_TO_BYTES>);
diff --git a/modules/visual_script/visual_script_builtin_funcs.h b/modules/visual_script/visual_script_builtin_funcs.h
index 26abc1e479..f9eb7e983f 100644
--- a/modules/visual_script/visual_script_builtin_funcs.h
+++ b/modules/visual_script/visual_script_builtin_funcs.h
@@ -94,6 +94,7 @@ public:
TEXT_PRINT,
TEXT_PRINTERR,
TEXT_PRINTRAW,
+ TEXT_PRINT_VERBOSE,
VAR_TO_STR,
STR_TO_VAR,
VAR_TO_BYTES,
diff --git a/modules/vorbis/doc_classes/AudioStreamOGGVorbis.xml b/modules/vorbis/doc_classes/AudioStreamOGGVorbis.xml
index a680a2f999..4cd278fe83 100644
--- a/modules/vorbis/doc_classes/AudioStreamOGGVorbis.xml
+++ b/modules/vorbis/doc_classes/AudioStreamOGGVorbis.xml
@@ -6,8 +6,6 @@
</description>
<tutorials>
</tutorials>
- <methods>
- </methods>
<members>
<member name="loop" type="bool" setter="set_loop" getter="has_loop" default="false">
If [code]true[/code], the stream will automatically loop when it reaches the end.
@@ -19,6 +17,4 @@
Contains the raw OGG data for this stream.
</member>
</members>
- <constants>
- </constants>
</class>
diff --git a/modules/vorbis/doc_classes/AudioStreamPlaybackOGGVorbis.xml b/modules/vorbis/doc_classes/AudioStreamPlaybackOGGVorbis.xml
index 3120f2a9e6..05c70d88da 100644
--- a/modules/vorbis/doc_classes/AudioStreamPlaybackOGGVorbis.xml
+++ b/modules/vorbis/doc_classes/AudioStreamPlaybackOGGVorbis.xml
@@ -6,8 +6,4 @@
</description>
<tutorials>
</tutorials>
- <methods>
- </methods>
- <constants>
- </constants>
</class>
diff --git a/modules/webm/doc_classes/VideoStreamWebm.xml b/modules/webm/doc_classes/VideoStreamWebm.xml
index 3b9acfd873..e04d02d6ab 100644
--- a/modules/webm/doc_classes/VideoStreamWebm.xml
+++ b/modules/webm/doc_classes/VideoStreamWebm.xml
@@ -25,6 +25,4 @@
</description>
</method>
</methods>
- <constants>
- </constants>
</class>
diff --git a/modules/webrtc/SCsub b/modules/webrtc/SCsub
index 31b8a73bf2..e6b9959840 100644
--- a/modules/webrtc/SCsub
+++ b/modules/webrtc/SCsub
@@ -4,11 +4,6 @@ Import("env")
Import("env_modules")
env_webrtc = env_modules.Clone()
-use_gdnative = env_webrtc["module_gdnative_enabled"]
-
-if use_gdnative: # GDNative is retained in Javascript for export compatibility
- env_webrtc.Append(CPPDEFINES=["WEBRTC_GDNATIVE_ENABLED"])
- env_webrtc.Prepend(CPPPATH=["#modules/gdnative/include/"])
if env["platform"] == "javascript":
# Our JavaScript/C++ interface.
diff --git a/modules/webrtc/config.py b/modules/webrtc/config.py
index 3281415f38..4ad918833a 100644
--- a/modules/webrtc/config.py
+++ b/modules/webrtc/config.py
@@ -11,6 +11,8 @@ def get_doc_classes():
"WebRTCPeerConnection",
"WebRTCDataChannel",
"WebRTCMultiplayerPeer",
+ "WebRTCPeerConnectionExtension",
+ "WebRTCDataChannelExtension",
]
diff --git a/modules/webrtc/doc_classes/WebRTCDataChannelExtension.xml b/modules/webrtc/doc_classes/WebRTCDataChannelExtension.xml
new file mode 100644
index 0000000000..746fabd6e5
--- /dev/null
+++ b/modules/webrtc/doc_classes/WebRTCDataChannelExtension.xml
@@ -0,0 +1,106 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<class name="WebRTCDataChannelExtension" inherits="WebRTCDataChannel" version="4.0">
+ <brief_description>
+ </brief_description>
+ <description>
+ </description>
+ <tutorials>
+ </tutorials>
+ <methods>
+ <method name="_close" qualifiers="virtual">
+ <return type="void" />
+ <description>
+ </description>
+ </method>
+ <method name="_get_available_packet_count" qualifiers="virtual const">
+ <return type="int" />
+ <description>
+ </description>
+ </method>
+ <method name="_get_buffered_amount" qualifiers="virtual const">
+ <return type="int" />
+ <description>
+ </description>
+ </method>
+ <method name="_get_id" qualifiers="virtual const">
+ <return type="int" />
+ <description>
+ </description>
+ </method>
+ <method name="_get_label" qualifiers="virtual const">
+ <return type="String" />
+ <description>
+ </description>
+ </method>
+ <method name="_get_max_packet_life_time" qualifiers="virtual const">
+ <return type="int" />
+ <description>
+ </description>
+ </method>
+ <method name="_get_max_packet_size" qualifiers="virtual const">
+ <return type="int" />
+ <description>
+ </description>
+ </method>
+ <method name="_get_max_retransmits" qualifiers="virtual const">
+ <return type="int" />
+ <description>
+ </description>
+ </method>
+ <method name="_get_packet" qualifiers="virtual">
+ <return type="int" />
+ <argument index="0" name="r_buffer" type="const uint8_t **" />
+ <argument index="1" name="r_buffer_size" type="int32_t*" />
+ <description>
+ </description>
+ </method>
+ <method name="_get_protocol" qualifiers="virtual const">
+ <return type="String" />
+ <description>
+ </description>
+ </method>
+ <method name="_get_ready_state" qualifiers="virtual const">
+ <return type="int" />
+ <description>
+ </description>
+ </method>
+ <method name="_get_write_mode" qualifiers="virtual const">
+ <return type="int" />
+ <description>
+ </description>
+ </method>
+ <method name="_is_negotiated" qualifiers="virtual const">
+ <return type="bool" />
+ <description>
+ </description>
+ </method>
+ <method name="_is_ordered" qualifiers="virtual const">
+ <return type="bool" />
+ <description>
+ </description>
+ </method>
+ <method name="_poll" qualifiers="virtual">
+ <return type="int" />
+ <description>
+ </description>
+ </method>
+ <method name="_put_packet" qualifiers="virtual">
+ <return type="int" />
+ <argument index="0" name="p_buffer" type="const uint8_t*" />
+ <argument index="1" name="p_buffer_size" type="int" />
+ <description>
+ </description>
+ </method>
+ <method name="_set_write_mode" qualifiers="virtual">
+ <return type="void" />
+ <argument index="0" name="p_write_mode" type="int" />
+ <description>
+ </description>
+ </method>
+ <method name="_was_string_packet" qualifiers="virtual const">
+ <return type="bool" />
+ <description>
+ </description>
+ </method>
+ </methods>
+</class>
diff --git a/modules/webrtc/doc_classes/WebRTCMultiplayerPeer.xml b/modules/webrtc/doc_classes/WebRTCMultiplayerPeer.xml
index 43a8e20ef7..a8360a4d45 100644
--- a/modules/webrtc/doc_classes/WebRTCMultiplayerPeer.xml
+++ b/modules/webrtc/doc_classes/WebRTCMultiplayerPeer.xml
@@ -7,6 +7,7 @@
This class constructs a full mesh of [WebRTCPeerConnection] (one connection for each peer) that can be used as a [member MultiplayerAPI.multiplayer_peer].
You can add each [WebRTCPeerConnection] via [method add_peer] or remove them via [method remove_peer]. Peers must be added in [constant WebRTCPeerConnection.STATE_NEW] state to allow it to create the appropriate channels. This class will not create offers nor set descriptions, it will only poll them, and notify connections and disconnections.
[signal MultiplayerPeer.connection_succeeded] and [signal MultiplayerPeer.server_disconnected] will not be emitted unless [code]server_compatibility[/code] is [code]true[/code] in [method initialize]. Beside that data transfer works like in a [MultiplayerPeer].
+ [b]Note:[/b] When exporting to Android, make sure to enable the [code]INTERNET[/code] permission in the Android export preset before exporting the project or using one-click deploy. Otherwise, network communication of any kind will be blocked by Android.
</description>
<tutorials>
</tutorials>
@@ -67,10 +68,4 @@
</description>
</method>
</methods>
- <members>
- <member name="refuse_new_connections" type="bool" setter="set_refuse_new_connections" getter="is_refusing_new_connections" override="true" default="false" />
- <member name="transfer_mode" type="int" setter="set_transfer_mode" getter="get_transfer_mode" override="true" enum="TransferMode" default="2" />
- </members>
- <constants>
- </constants>
</class>
diff --git a/modules/webrtc/doc_classes/WebRTCPeerConnectionExtension.xml b/modules/webrtc/doc_classes/WebRTCPeerConnectionExtension.xml
new file mode 100644
index 0000000000..d296fcd6e7
--- /dev/null
+++ b/modules/webrtc/doc_classes/WebRTCPeerConnectionExtension.xml
@@ -0,0 +1,71 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<class name="WebRTCPeerConnectionExtension" inherits="WebRTCPeerConnection" version="4.0">
+ <brief_description>
+ </brief_description>
+ <description>
+ </description>
+ <tutorials>
+ </tutorials>
+ <methods>
+ <method name="_add_ice_candidate" qualifiers="virtual">
+ <return type="int" />
+ <argument index="0" name="p_sdp_mid_name" type="String" />
+ <argument index="1" name="p_sdp_mline_index" type="int" />
+ <argument index="2" name="p_sdp_name" type="String" />
+ <description>
+ </description>
+ </method>
+ <method name="_close" qualifiers="virtual">
+ <return type="void" />
+ <description>
+ </description>
+ </method>
+ <method name="_create_data_channel" qualifiers="virtual">
+ <return type="Object" />
+ <argument index="0" name="p_label" type="String" />
+ <argument index="1" name="p_config" type="Dictionary" />
+ <description>
+ </description>
+ </method>
+ <method name="_create_offer" qualifiers="virtual">
+ <return type="int" />
+ <description>
+ </description>
+ </method>
+ <method name="_get_connection_state" qualifiers="virtual const">
+ <return type="int" />
+ <description>
+ </description>
+ </method>
+ <method name="_initialize" qualifiers="virtual">
+ <return type="int" />
+ <argument index="0" name="p_config" type="Dictionary" />
+ <description>
+ </description>
+ </method>
+ <method name="_poll" qualifiers="virtual">
+ <return type="int" />
+ <description>
+ </description>
+ </method>
+ <method name="_set_local_description" qualifiers="virtual">
+ <return type="int" />
+ <argument index="0" name="p_type" type="String" />
+ <argument index="1" name="p_sdp" type="String" />
+ <description>
+ </description>
+ </method>
+ <method name="_set_remote_description" qualifiers="virtual">
+ <return type="int" />
+ <argument index="0" name="p_type" type="String" />
+ <argument index="1" name="p_sdp" type="String" />
+ <description>
+ </description>
+ </method>
+ <method name="make_default">
+ <return type="void" />
+ <description>
+ </description>
+ </method>
+ </methods>
+</class>
diff --git a/modules/webrtc/register_types.cpp b/modules/webrtc/register_types.cpp
index 63ecc03a4c..8110e4a048 100644
--- a/modules/webrtc/register_types.cpp
+++ b/modules/webrtc/register_types.cpp
@@ -31,17 +31,11 @@
#include "register_types.h"
#include "core/config/project_settings.h"
#include "webrtc_data_channel.h"
+#include "webrtc_multiplayer_peer.h"
#include "webrtc_peer_connection.h"
-#ifdef JAVASCRIPT_ENABLED
-#include "emscripten.h"
-#include "webrtc_peer_connection_js.h"
-#endif
-#ifdef WEBRTC_GDNATIVE_ENABLED
-#include "webrtc_data_channel_gdnative.h"
-#include "webrtc_peer_connection_gdnative.h"
-#endif
-#include "webrtc_multiplayer_peer.h"
+#include "webrtc_data_channel_extension.h"
+#include "webrtc_peer_connection_extension.h"
void register_webrtc_types() {
#define _SET_HINT(NAME, _VAL_, _MAX_) \
@@ -50,18 +44,12 @@ void register_webrtc_types() {
_SET_HINT(WRTC_IN_BUF, 64, 4096);
-#ifdef JAVASCRIPT_ENABLED
- WebRTCPeerConnectionJS::make_default();
-#elif defined(WEBRTC_GDNATIVE_ENABLED)
- WebRTCPeerConnectionGDNative::make_default();
-#endif
-
ClassDB::register_custom_instance_class<WebRTCPeerConnection>();
-#ifdef WEBRTC_GDNATIVE_ENABLED
- GDREGISTER_CLASS(WebRTCPeerConnectionGDNative);
- GDREGISTER_CLASS(WebRTCDataChannelGDNative);
-#endif
+ GDREGISTER_CLASS(WebRTCPeerConnectionExtension);
+
GDREGISTER_VIRTUAL_CLASS(WebRTCDataChannel);
+ GDREGISTER_CLASS(WebRTCDataChannelExtension);
+
GDREGISTER_CLASS(WebRTCMultiplayerPeer);
}
diff --git a/modules/webrtc/webrtc_data_channel_extension.cpp b/modules/webrtc/webrtc_data_channel_extension.cpp
new file mode 100644
index 0000000000..ae346f6d8e
--- /dev/null
+++ b/modules/webrtc/webrtc_data_channel_extension.cpp
@@ -0,0 +1,215 @@
+/*************************************************************************/
+/* webrtc_data_channel_extension.cpp */
+/*************************************************************************/
+/* This file is part of: */
+/* GODOT ENGINE */
+/* https://godotengine.org */
+/*************************************************************************/
+/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* */
+/* Permission is hereby granted, free of charge, to any person obtaining */
+/* a copy of this software and associated documentation files (the */
+/* "Software"), to deal in the Software without restriction, including */
+/* without limitation the rights to use, copy, modify, merge, publish, */
+/* distribute, sublicense, and/or sell copies of the Software, and to */
+/* permit persons to whom the Software is furnished to do so, subject to */
+/* the following conditions: */
+/* */
+/* The above copyright notice and this permission notice shall be */
+/* included in all copies or substantial portions of the Software. */
+/* */
+/* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, */
+/* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF */
+/* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.*/
+/* IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY */
+/* CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, */
+/* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE */
+/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
+/*************************************************************************/
+
+#include "webrtc_data_channel_extension.h"
+
+void WebRTCDataChannelExtension::_bind_methods() {
+ ADD_PROPERTY_DEFAULT("write_mode", WRITE_MODE_BINARY);
+
+ GDVIRTUAL_BIND(_get_packet, "r_buffer", "r_buffer_size");
+ GDVIRTUAL_BIND(_put_packet, "p_buffer", "p_buffer_size");
+ GDVIRTUAL_BIND(_get_available_packet_count);
+ GDVIRTUAL_BIND(_get_max_packet_size);
+
+ GDVIRTUAL_BIND(_poll);
+ GDVIRTUAL_BIND(_close);
+
+ GDVIRTUAL_BIND(_set_write_mode, "p_write_mode");
+ GDVIRTUAL_BIND(_get_write_mode);
+
+ GDVIRTUAL_BIND(_was_string_packet);
+ GDVIRTUAL_BIND(_get_ready_state);
+ GDVIRTUAL_BIND(_get_label);
+ GDVIRTUAL_BIND(_is_ordered);
+ GDVIRTUAL_BIND(_get_id);
+ GDVIRTUAL_BIND(_get_max_packet_life_time);
+ GDVIRTUAL_BIND(_get_max_retransmits);
+ GDVIRTUAL_BIND(_get_protocol);
+ GDVIRTUAL_BIND(_is_negotiated);
+ GDVIRTUAL_BIND(_get_buffered_amount);
+}
+
+int WebRTCDataChannelExtension::get_available_packet_count() const {
+ int count;
+ if (GDVIRTUAL_CALL(_get_available_packet_count, count)) {
+ return count;
+ }
+ WARN_PRINT_ONCE("WebRTCDataChannelExtension::_get_available_packet_count is unimplemented!");
+ return -1;
+}
+
+Error WebRTCDataChannelExtension::get_packet(const uint8_t **r_buffer, int &r_buffer_size) {
+ int err;
+ if (GDVIRTUAL_CALL(_get_packet, r_buffer, &r_buffer_size, err)) {
+ return (Error)err;
+ }
+ WARN_PRINT_ONCE("WebRTCDataChannelExtension::_get_packet_native is unimplemented!");
+ return FAILED;
+}
+
+Error WebRTCDataChannelExtension::put_packet(const uint8_t *p_buffer, int p_buffer_size) {
+ int err;
+ if (GDVIRTUAL_CALL(_put_packet, p_buffer, p_buffer_size, err)) {
+ return (Error)err;
+ }
+ WARN_PRINT_ONCE("WebRTCDataChannelExtension::_put_packet_native is unimplemented!");
+ return FAILED;
+}
+
+int WebRTCDataChannelExtension::get_max_packet_size() const {
+ int size;
+ if (GDVIRTUAL_CALL(_get_max_packet_size, size)) {
+ return size;
+ }
+ WARN_PRINT_ONCE("WebRTCDataChannelExtension::_get_max_packet_size is unimplemented!");
+ return 0;
+}
+
+Error WebRTCDataChannelExtension::poll() {
+ int err;
+ if (GDVIRTUAL_CALL(_poll, err)) {
+ return (Error)err;
+ }
+ WARN_PRINT_ONCE("WebRTCDataChannelExtension::_poll is unimplemented!");
+ return ERR_UNCONFIGURED;
+}
+
+void WebRTCDataChannelExtension::close() {
+ if (GDVIRTUAL_CALL(_close)) {
+ return;
+ }
+ WARN_PRINT_ONCE("WebRTCDataChannelExtension::_close is unimplemented!");
+}
+
+void WebRTCDataChannelExtension::set_write_mode(WriteMode p_mode) {
+ if (GDVIRTUAL_CALL(_set_write_mode, p_mode)) {
+ return;
+ }
+ WARN_PRINT_ONCE("WebRTCDataChannelExtension::_set_write_mode is unimplemented!");
+}
+
+WebRTCDataChannel::WriteMode WebRTCDataChannelExtension::get_write_mode() const {
+ int mode;
+ if (GDVIRTUAL_CALL(_get_write_mode, mode)) {
+ return (WriteMode)mode;
+ }
+ WARN_PRINT_ONCE("WebRTCDataChannelExtension::_get_write_mode is unimplemented!");
+ return WRITE_MODE_BINARY;
+}
+
+bool WebRTCDataChannelExtension::was_string_packet() const {
+ bool was_string;
+ if (GDVIRTUAL_CALL(_was_string_packet, was_string)) {
+ return was_string;
+ }
+ WARN_PRINT_ONCE("WebRTCDataChannelExtension::_was_string_packet is unimplemented!");
+ return false;
+}
+
+WebRTCDataChannel::ChannelState WebRTCDataChannelExtension::get_ready_state() const {
+ int state;
+ if (GDVIRTUAL_CALL(_get_ready_state, state)) {
+ return (ChannelState)state;
+ }
+ WARN_PRINT_ONCE("WebRTCDataChannelExtension::_get_ready_state is unimplemented!");
+ return STATE_CLOSED;
+}
+
+String WebRTCDataChannelExtension::get_label() const {
+ String label;
+ if (GDVIRTUAL_CALL(_get_label, label)) {
+ return label;
+ }
+ WARN_PRINT_ONCE("WebRTCDataChannelExtension::_get_label is unimplemented!");
+ return label;
+}
+
+bool WebRTCDataChannelExtension::is_ordered() const {
+ bool ordered;
+ if (GDVIRTUAL_CALL(_is_ordered, ordered)) {
+ return ordered;
+ }
+ WARN_PRINT_ONCE("WebRTCDataChannelExtension::_is_ordered is unimplemented!");
+ return false;
+}
+
+int WebRTCDataChannelExtension::get_id() const {
+ int id;
+ if (GDVIRTUAL_CALL(_get_id, id)) {
+ return id;
+ }
+ WARN_PRINT_ONCE("WebRTCDataChannelExtension::_get_id is unimplemented!");
+ return -1;
+}
+
+int WebRTCDataChannelExtension::get_max_packet_life_time() const {
+ int lifetime;
+ if (GDVIRTUAL_CALL(_get_max_packet_life_time, lifetime)) {
+ return lifetime;
+ }
+ WARN_PRINT_ONCE("WebRTCDataChannelExtension::_get_max_packet_life_time is unimplemented!");
+ return -1;
+}
+
+int WebRTCDataChannelExtension::get_max_retransmits() const {
+ int retransmits;
+ if (GDVIRTUAL_CALL(_get_max_retransmits, retransmits)) {
+ return retransmits;
+ }
+ WARN_PRINT_ONCE("WebRTCDataChannelExtension::_get_max_retransmits is unimplemented!");
+ return -1;
+}
+
+String WebRTCDataChannelExtension::get_protocol() const {
+ String protocol;
+ if (GDVIRTUAL_CALL(_get_protocol, protocol)) {
+ return protocol;
+ }
+ WARN_PRINT_ONCE("WebRTCDataChannelExtension::_get_protocol is unimplemented!");
+ return protocol;
+}
+
+bool WebRTCDataChannelExtension::is_negotiated() const {
+ bool negotiated;
+ if (GDVIRTUAL_CALL(_is_negotiated, negotiated)) {
+ return negotiated;
+ }
+ WARN_PRINT_ONCE("WebRTCDataChannelExtension::_is_negotiated is unimplemented!");
+ return false;
+}
+
+int WebRTCDataChannelExtension::get_buffered_amount() const {
+ int amount;
+ if (GDVIRTUAL_CALL(_get_buffered_amount, amount)) {
+ return amount;
+ }
+ WARN_PRINT_ONCE("WebRTCDataChannelExtension::_get_buffered_amount is unimplemented!");
+ return -1;
+}
diff --git a/modules/webrtc/webrtc_data_channel_gdnative.h b/modules/webrtc/webrtc_data_channel_extension.h
index 5c80edd48c..eec96b4c62 100644
--- a/modules/webrtc/webrtc_data_channel_gdnative.h
+++ b/modules/webrtc/webrtc_data_channel_extension.h
@@ -1,5 +1,5 @@
/*************************************************************************/
-/* webrtc_data_channel_gdnative.h */
+/* webrtc_data_channel_extension.h */
/*************************************************************************/
/* This file is part of: */
/* GODOT ENGINE */
@@ -28,26 +28,22 @@
/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
/*************************************************************************/
-#ifndef WEBRTC_DATA_CHANNEL_GDNATIVE_H
-#define WEBRTC_DATA_CHANNEL_GDNATIVE_H
+#ifndef WEBRTC_DATA_CHANNEL_EXTENSION_H
+#define WEBRTC_DATA_CHANNEL_EXTENSION_H
-#ifdef WEBRTC_GDNATIVE_ENABLED
-
-#include "modules/gdnative/include/net/godot_net.h"
#include "webrtc_data_channel.h"
-class WebRTCDataChannelGDNative : public WebRTCDataChannel {
- GDCLASS(WebRTCDataChannelGDNative, WebRTCDataChannel);
+#include "core/object/gdvirtual.gen.inc"
+#include "core/object/script_language.h"
+#include "core/variant/native_ptr.h"
+
+class WebRTCDataChannelExtension : public WebRTCDataChannel {
+ GDCLASS(WebRTCDataChannelExtension, WebRTCDataChannel);
protected:
static void _bind_methods();
-private:
- const godot_net_webrtc_data_channel *interface;
-
public:
- void set_native_webrtc_data_channel(const godot_net_webrtc_data_channel *p_impl);
-
virtual void set_write_mode(WriteMode mode) override;
virtual WriteMode get_write_mode() const override;
virtual bool was_string_packet() const override;
@@ -72,10 +68,31 @@ public:
virtual int get_max_packet_size() const override;
- WebRTCDataChannelGDNative();
- ~WebRTCDataChannelGDNative();
-};
+ /** GDExtension **/
+ GDVIRTUAL0RC(int, _get_available_packet_count);
+ GDVIRTUAL2R(int, _get_packet, GDNativeConstPtr<const uint8_t *>, GDNativePtr<int>);
+ GDVIRTUAL2R(int, _put_packet, GDNativeConstPtr<const uint8_t>, int);
+ GDVIRTUAL0RC(int, _get_max_packet_size);
-#endif // WEBRTC_GDNATIVE_ENABLED
+ GDVIRTUAL0R(int, _poll);
+ GDVIRTUAL0(_close);
+
+ GDVIRTUAL1(_set_write_mode, int);
+ GDVIRTUAL0RC(int, _get_write_mode);
+
+ GDVIRTUAL0RC(bool, _was_string_packet);
+
+ GDVIRTUAL0RC(int, _get_ready_state);
+ GDVIRTUAL0RC(String, _get_label);
+ GDVIRTUAL0RC(bool, _is_ordered);
+ GDVIRTUAL0RC(int, _get_id);
+ GDVIRTUAL0RC(int, _get_max_packet_life_time);
+ GDVIRTUAL0RC(int, _get_max_retransmits);
+ GDVIRTUAL0RC(String, _get_protocol);
+ GDVIRTUAL0RC(bool, _is_negotiated);
+ GDVIRTUAL0RC(int, _get_buffered_amount);
+
+ WebRTCDataChannelExtension() {}
+};
-#endif // WEBRTC_DATA_CHANNEL_GDNATIVE_H
+#endif // WEBRTC_DATA_CHANNEL_EXTENSION_H
diff --git a/modules/webrtc/webrtc_data_channel_gdnative.cpp b/modules/webrtc/webrtc_data_channel_gdnative.cpp
deleted file mode 100644
index 10a3367557..0000000000
--- a/modules/webrtc/webrtc_data_channel_gdnative.cpp
+++ /dev/null
@@ -1,143 +0,0 @@
-/*************************************************************************/
-/* webrtc_data_channel_gdnative.cpp */
-/*************************************************************************/
-/* This file is part of: */
-/* GODOT ENGINE */
-/* https://godotengine.org */
-/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
-/* */
-/* Permission is hereby granted, free of charge, to any person obtaining */
-/* a copy of this software and associated documentation files (the */
-/* "Software"), to deal in the Software without restriction, including */
-/* without limitation the rights to use, copy, modify, merge, publish, */
-/* distribute, sublicense, and/or sell copies of the Software, and to */
-/* permit persons to whom the Software is furnished to do so, subject to */
-/* the following conditions: */
-/* */
-/* The above copyright notice and this permission notice shall be */
-/* included in all copies or substantial portions of the Software. */
-/* */
-/* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, */
-/* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF */
-/* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.*/
-/* IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY */
-/* CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, */
-/* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE */
-/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
-/*************************************************************************/
-
-#ifdef WEBRTC_GDNATIVE_ENABLED
-
-#include "webrtc_data_channel_gdnative.h"
-
-#include "core/io/resource_loader.h"
-#include "modules/gdnative/nativescript/nativescript.h"
-
-void WebRTCDataChannelGDNative::_bind_methods() {
- ADD_PROPERTY_DEFAULT("write_mode", WRITE_MODE_BINARY);
-}
-
-WebRTCDataChannelGDNative::WebRTCDataChannelGDNative() {
- interface = nullptr;
-}
-
-WebRTCDataChannelGDNative::~WebRTCDataChannelGDNative() {
-}
-
-Error WebRTCDataChannelGDNative::poll() {
- ERR_FAIL_COND_V(interface == nullptr, ERR_UNCONFIGURED);
- return (Error)interface->poll(interface->data);
-}
-
-void WebRTCDataChannelGDNative::close() {
- ERR_FAIL_COND(interface == nullptr);
- interface->close(interface->data);
-}
-
-void WebRTCDataChannelGDNative::set_write_mode(WriteMode p_mode) {
- ERR_FAIL_COND(interface == nullptr);
- interface->set_write_mode(interface->data, p_mode);
-}
-
-WebRTCDataChannel::WriteMode WebRTCDataChannelGDNative::get_write_mode() const {
- ERR_FAIL_COND_V(interface == nullptr, WRITE_MODE_BINARY);
- return (WriteMode)interface->get_write_mode(interface->data);
-}
-
-bool WebRTCDataChannelGDNative::was_string_packet() const {
- ERR_FAIL_COND_V(interface == nullptr, false);
- return interface->was_string_packet(interface->data);
-}
-
-WebRTCDataChannel::ChannelState WebRTCDataChannelGDNative::get_ready_state() const {
- ERR_FAIL_COND_V(interface == nullptr, STATE_CLOSED);
- return (ChannelState)interface->get_ready_state(interface->data);
-}
-
-String WebRTCDataChannelGDNative::get_label() const {
- ERR_FAIL_COND_V(interface == nullptr, "");
- return String(interface->get_label(interface->data));
-}
-
-bool WebRTCDataChannelGDNative::is_ordered() const {
- ERR_FAIL_COND_V(interface == nullptr, false);
- return interface->is_ordered(interface->data);
-}
-
-int WebRTCDataChannelGDNative::get_id() const {
- ERR_FAIL_COND_V(interface == nullptr, -1);
- return interface->get_id(interface->data);
-}
-
-int WebRTCDataChannelGDNative::get_max_packet_life_time() const {
- ERR_FAIL_COND_V(interface == nullptr, -1);
- return interface->get_max_packet_life_time(interface->data);
-}
-
-int WebRTCDataChannelGDNative::get_max_retransmits() const {
- ERR_FAIL_COND_V(interface == nullptr, -1);
- return interface->get_max_retransmits(interface->data);
-}
-
-String WebRTCDataChannelGDNative::get_protocol() const {
- ERR_FAIL_COND_V(interface == nullptr, "");
- return String(interface->get_protocol(interface->data));
-}
-
-bool WebRTCDataChannelGDNative::is_negotiated() const {
- ERR_FAIL_COND_V(interface == nullptr, false);
- return interface->is_negotiated(interface->data);
-}
-
-int WebRTCDataChannelGDNative::get_buffered_amount() const {
- ERR_FAIL_COND_V(interface == NULL, 0);
- return interface->get_buffered_amount(interface->data);
-}
-
-Error WebRTCDataChannelGDNative::get_packet(const uint8_t **r_buffer, int &r_buffer_size) {
- ERR_FAIL_COND_V(interface == nullptr, ERR_UNCONFIGURED);
- return (Error)interface->get_packet(interface->data, r_buffer, &r_buffer_size);
-}
-
-Error WebRTCDataChannelGDNative::put_packet(const uint8_t *p_buffer, int p_buffer_size) {
- ERR_FAIL_COND_V(interface == nullptr, ERR_UNCONFIGURED);
- return (Error)interface->put_packet(interface->data, p_buffer, p_buffer_size);
-}
-
-int WebRTCDataChannelGDNative::get_max_packet_size() const {
- ERR_FAIL_COND_V(interface == nullptr, 0);
- return interface->get_max_packet_size(interface->data);
-}
-
-int WebRTCDataChannelGDNative::get_available_packet_count() const {
- ERR_FAIL_COND_V(interface == nullptr, 0);
- return interface->get_available_packet_count(interface->data);
-}
-
-void WebRTCDataChannelGDNative::set_native_webrtc_data_channel(const godot_net_webrtc_data_channel *p_impl) {
- interface = p_impl;
-}
-
-#endif // WEBRTC_GDNATIVE_ENABLED
diff --git a/modules/webrtc/webrtc_multiplayer_peer.cpp b/modules/webrtc/webrtc_multiplayer_peer.cpp
index d60d694df1..48117f05f2 100644
--- a/modules/webrtc/webrtc_multiplayer_peer.cpp
+++ b/modules/webrtc/webrtc_multiplayer_peer.cpp
@@ -43,22 +43,6 @@ void WebRTCMultiplayerPeer::_bind_methods() {
ClassDB::bind_method(D_METHOD("close"), &WebRTCMultiplayerPeer::close);
}
-void WebRTCMultiplayerPeer::set_transfer_channel(int p_channel) {
- transfer_channel = p_channel;
-}
-
-int WebRTCMultiplayerPeer::get_transfer_channel() const {
- return transfer_channel;
-}
-
-void WebRTCMultiplayerPeer::set_transfer_mode(Multiplayer::TransferMode p_mode) {
- transfer_mode = p_mode;
-}
-
-Multiplayer::TransferMode WebRTCMultiplayerPeer::get_transfer_mode() const {
- return transfer_mode;
-}
-
void WebRTCMultiplayerPeer::set_target_peer(int p_peer_id) {
target_peer = p_peer_id;
}
@@ -188,14 +172,6 @@ void WebRTCMultiplayerPeer::_find_next_peer() {
next_packet_peer = 0;
}
-void WebRTCMultiplayerPeer::set_refuse_new_connections(bool p_enable) {
- refuse_connections = p_enable;
-}
-
-bool WebRTCMultiplayerPeer::is_refusing_new_connections() const {
- return refuse_connections;
-}
-
MultiplayerPeer::ConnectionStatus WebRTCMultiplayerPeer::get_connection_status() const {
return connection_status;
}
@@ -279,7 +255,7 @@ Dictionary WebRTCMultiplayerPeer::get_peers() {
Error WebRTCMultiplayerPeer::add_peer(Ref<WebRTCPeerConnection> p_peer, int p_peer_id, int p_unreliable_lifetime) {
ERR_FAIL_COND_V(p_peer_id < 0 || p_peer_id > ~(1 << 31), ERR_INVALID_PARAMETER);
ERR_FAIL_COND_V(p_unreliable_lifetime < 0, ERR_INVALID_PARAMETER);
- ERR_FAIL_COND_V(refuse_connections, ERR_UNAUTHORIZED);
+ ERR_FAIL_COND_V(is_refusing_new_connections(), ERR_UNAUTHORIZED);
// Peer must be valid, and in new state (to create data channels)
ERR_FAIL_COND_V(!p_peer.is_valid(), ERR_INVALID_PARAMETER);
ERR_FAIL_COND_V(p_peer->get_connection_state() != WebRTCPeerConnection::STATE_NEW, ERR_INVALID_PARAMETER);
@@ -352,9 +328,9 @@ Error WebRTCMultiplayerPeer::get_packet(const uint8_t **r_buffer, int &r_buffer_
Error WebRTCMultiplayerPeer::put_packet(const uint8_t *p_buffer, int p_buffer_size) {
ERR_FAIL_COND_V(connection_status == CONNECTION_DISCONNECTED, ERR_UNCONFIGURED);
- int ch = transfer_channel;
+ int ch = get_transfer_channel();
if (ch == 0) {
- switch (transfer_mode) {
+ switch (get_transfer_mode()) {
case Multiplayer::TRANSFER_MODE_RELIABLE:
ch = CH_RELIABLE;
break;
diff --git a/modules/webrtc/webrtc_multiplayer_peer.h b/modules/webrtc/webrtc_multiplayer_peer.h
index 80a6491492..4a7e9ad7c8 100644
--- a/modules/webrtc/webrtc_multiplayer_peer.h
+++ b/modules/webrtc/webrtc_multiplayer_peer.h
@@ -65,10 +65,7 @@ private:
uint32_t unique_id = 0;
int target_peer = 0;
int client_count = 0;
- bool refuse_connections = false;
ConnectionStatus connection_status = CONNECTION_DISCONNECTED;
- int transfer_channel = 0;
- Multiplayer::TransferMode transfer_mode = Multiplayer::TRANSFER_MODE_RELIABLE;
int next_packet_peer = 0;
bool server_compat = false;
@@ -97,10 +94,6 @@ public:
int get_max_packet_size() const override;
// MultiplayerPeer
- void set_transfer_channel(int p_channel) override;
- int get_transfer_channel() const override;
- void set_transfer_mode(Multiplayer::TransferMode p_mode) override;
- Multiplayer::TransferMode get_transfer_mode() const override;
void set_target_peer(int p_peer_id) override;
int get_unique_id() const override;
@@ -110,9 +103,6 @@ public:
void poll() override;
- void set_refuse_new_connections(bool p_enable) override;
- bool is_refusing_new_connections() const override;
-
ConnectionStatus get_connection_status() const override;
};
diff --git a/modules/webrtc/webrtc_peer_connection.cpp b/modules/webrtc/webrtc_peer_connection.cpp
index 3e2938bf7d..ad28aa76c7 100644
--- a/modules/webrtc/webrtc_peer_connection.cpp
+++ b/modules/webrtc/webrtc_peer_connection.cpp
@@ -30,17 +30,29 @@
#include "webrtc_peer_connection.h"
-WebRTCPeerConnection *(*WebRTCPeerConnection::_create)() = nullptr;
+#ifdef JAVASCRIPT_ENABLED
+#include "webrtc_peer_connection_js.h"
+#else
+#include "webrtc_peer_connection_extension.h"
+#endif
-Ref<WebRTCPeerConnection> WebRTCPeerConnection::create_ref() {
- return create();
+StringName WebRTCPeerConnection::default_extension;
+
+void WebRTCPeerConnection::set_default_extension(const StringName &p_extension) {
+ default_extension = p_extension;
}
WebRTCPeerConnection *WebRTCPeerConnection::create() {
- if (!_create) {
- return nullptr;
+#ifdef JAVASCRIPT_ENABLED
+ return memnew(WebRTCPeerConnectionJS);
+#else
+ if (default_extension == String()) {
+ WARN_PRINT_ONCE("No default WebRTC extension configured.");
+ return memnew(WebRTCPeerConnectionExtension);
}
- return _create();
+ Object *obj = ClassDB::instantiate(default_extension);
+ return Object::cast_to<WebRTCPeerConnectionExtension>(obj);
+#endif
}
void WebRTCPeerConnection::_bind_methods() {
diff --git a/modules/webrtc/webrtc_peer_connection.h b/modules/webrtc/webrtc_peer_connection.h
index fcfb9ae9ae..e2ef3e55ad 100644
--- a/modules/webrtc/webrtc_peer_connection.h
+++ b/modules/webrtc/webrtc_peer_connection.h
@@ -47,11 +47,15 @@ public:
STATE_CLOSED
};
+private:
+ static StringName default_extension;
+
protected:
static void _bind_methods();
- static WebRTCPeerConnection *(*_create)();
public:
+ static void set_default_extension(const StringName &p_name);
+
virtual ConnectionState get_connection_state() const = 0;
virtual Error initialize(Dictionary p_config = Dictionary()) = 0;
@@ -63,7 +67,6 @@ public:
virtual Error poll() = 0;
virtual void close() = 0;
- static Ref<WebRTCPeerConnection> create_ref();
static WebRTCPeerConnection *create();
WebRTCPeerConnection();
diff --git a/modules/webrtc/webrtc_peer_connection_extension.cpp b/modules/webrtc/webrtc_peer_connection_extension.cpp
new file mode 100644
index 0000000000..33288e66d6
--- /dev/null
+++ b/modules/webrtc/webrtc_peer_connection_extension.cpp
@@ -0,0 +1,131 @@
+/*************************************************************************/
+/* webrtc_peer_connection_extension.cpp */
+/*************************************************************************/
+/* This file is part of: */
+/* GODOT ENGINE */
+/* https://godotengine.org */
+/*************************************************************************/
+/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* */
+/* Permission is hereby granted, free of charge, to any person obtaining */
+/* a copy of this software and associated documentation files (the */
+/* "Software"), to deal in the Software without restriction, including */
+/* without limitation the rights to use, copy, modify, merge, publish, */
+/* distribute, sublicense, and/or sell copies of the Software, and to */
+/* permit persons to whom the Software is furnished to do so, subject to */
+/* the following conditions: */
+/* */
+/* The above copyright notice and this permission notice shall be */
+/* included in all copies or substantial portions of the Software. */
+/* */
+/* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, */
+/* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF */
+/* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.*/
+/* IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY */
+/* CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, */
+/* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE */
+/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
+/*************************************************************************/
+
+#include "webrtc_peer_connection_extension.h"
+
+void WebRTCPeerConnectionExtension::_bind_methods() {
+ ClassDB::bind_method(D_METHOD("make_default"), &WebRTCPeerConnectionExtension::make_default);
+
+ GDVIRTUAL_BIND(_get_connection_state);
+ GDVIRTUAL_BIND(_initialize, "p_config");
+ GDVIRTUAL_BIND(_create_data_channel, "p_label", "p_config");
+ GDVIRTUAL_BIND(_create_offer);
+ GDVIRTUAL_BIND(_set_remote_description, "p_type", "p_sdp");
+ GDVIRTUAL_BIND(_set_local_description, "p_type", "p_sdp");
+ GDVIRTUAL_BIND(_add_ice_candidate, "p_sdp_mid_name", "p_sdp_mline_index", "p_sdp_name");
+ GDVIRTUAL_BIND(_poll);
+ GDVIRTUAL_BIND(_close);
+}
+
+void WebRTCPeerConnectionExtension::make_default() {
+ ERR_FAIL_COND_MSG(!_get_extension(), vformat("Can't make %s the default without extending it.", get_class()));
+ WebRTCPeerConnection::set_default_extension(get_class());
+}
+
+WebRTCPeerConnection::ConnectionState WebRTCPeerConnectionExtension::get_connection_state() const {
+ int state;
+ if (GDVIRTUAL_CALL(_get_connection_state, state)) {
+ return (ConnectionState)state;
+ }
+ WARN_PRINT_ONCE("WebRTCPeerConnectionExtension::_get_connection_state is unimplemented!");
+ return STATE_DISCONNECTED;
+}
+
+Error WebRTCPeerConnectionExtension::initialize(Dictionary p_config) {
+ int err;
+ if (GDVIRTUAL_CALL(_initialize, p_config, err)) {
+ return (Error)err;
+ }
+ WARN_PRINT_ONCE("WebRTCPeerConnectionExtension::_initialize is unimplemented!");
+ return ERR_UNCONFIGURED;
+}
+
+Ref<WebRTCDataChannel> WebRTCPeerConnectionExtension::create_data_channel(String p_label, Dictionary p_options) {
+ Object *ret = nullptr;
+ if (GDVIRTUAL_CALL(_create_data_channel, p_label, p_options, ret)) {
+ WebRTCDataChannel *ch = Object::cast_to<WebRTCDataChannel>(ret);
+ ERR_FAIL_COND_V_MSG(ret && !ch, nullptr, "Returned object must be an instance of WebRTCDataChannel.");
+ return ch;
+ }
+ WARN_PRINT_ONCE("WebRTCPeerConnectionExtension::_create_data_channel is unimplemented!");
+ return nullptr;
+}
+
+Error WebRTCPeerConnectionExtension::create_offer() {
+ int err;
+ if (GDVIRTUAL_CALL(_create_offer, err)) {
+ return (Error)err;
+ }
+ WARN_PRINT_ONCE("WebRTCPeerConnectionExtension::_create_offer is unimplemented!");
+ return ERR_UNCONFIGURED;
+}
+
+Error WebRTCPeerConnectionExtension::set_local_description(String p_type, String p_sdp) {
+ int err;
+ if (GDVIRTUAL_CALL(_set_local_description, p_type, p_sdp, err)) {
+ return (Error)err;
+ }
+ WARN_PRINT_ONCE("WebRTCPeerConnectionExtension::_set_local_description is unimplemented!");
+ return ERR_UNCONFIGURED;
+}
+
+Error WebRTCPeerConnectionExtension::set_remote_description(String p_type, String p_sdp) {
+ int err;
+ if (GDVIRTUAL_CALL(_set_remote_description, p_type, p_sdp, err)) {
+ return (Error)err;
+ }
+ WARN_PRINT_ONCE("WebRTCPeerConnectionExtension::_set_remote_description is unimplemented!");
+ return ERR_UNCONFIGURED;
+}
+
+Error WebRTCPeerConnectionExtension::add_ice_candidate(String p_sdp_mid_name, int p_sdp_mline_index, String p_sdp_name) {
+ int err;
+ if (GDVIRTUAL_CALL(_add_ice_candidate, p_sdp_mid_name, p_sdp_mline_index, p_sdp_name, err)) {
+ return (Error)err;
+ }
+ WARN_PRINT_ONCE("WebRTCPeerConnectionExtension::_add_ice_candidate is unimplemented!");
+ return ERR_UNCONFIGURED;
+}
+
+Error WebRTCPeerConnectionExtension::poll() {
+ int err;
+ if (GDVIRTUAL_CALL(_poll, err)) {
+ return (Error)err;
+ }
+ WARN_PRINT_ONCE("WebRTCPeerConnectionExtension::_poll is unimplemented!");
+ return ERR_UNCONFIGURED;
+}
+
+void WebRTCPeerConnectionExtension::close() {
+ if (GDVIRTUAL_CALL(_close)) {
+ return;
+ }
+ WARN_PRINT_ONCE("WebRTCPeerConnectionExtension::_close is unimplemented!");
+}
diff --git a/modules/webrtc/webrtc_peer_connection_gdnative.h b/modules/webrtc/webrtc_peer_connection_extension.h
index 578af0202f..b3c2039fc1 100644
--- a/modules/webrtc/webrtc_peer_connection_gdnative.h
+++ b/modules/webrtc/webrtc_peer_connection_extension.h
@@ -1,5 +1,5 @@
/*************************************************************************/
-/* webrtc_peer_connection_gdnative.h */
+/* webrtc_peer_connection_extension.h */
/*************************************************************************/
/* This file is part of: */
/* GODOT ENGINE */
@@ -28,30 +28,23 @@
/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
/*************************************************************************/
-#ifndef WEBRTC_PEER_CONNECTION_GDNATIVE_H
-#define WEBRTC_PEER_CONNECTION_GDNATIVE_H
+#ifndef WEBRTC_PEER_CONNECTION_EXTENSION_H
+#define WEBRTC_PEER_CONNECTION_EXTENSION_H
-#ifdef WEBRTC_GDNATIVE_ENABLED
-
-#include "modules/gdnative/include/net/godot_net.h"
#include "webrtc_peer_connection.h"
-class WebRTCPeerConnectionGDNative : public WebRTCPeerConnection {
- GDCLASS(WebRTCPeerConnectionGDNative, WebRTCPeerConnection);
+#include "core/object/gdvirtual.gen.inc"
+#include "core/object/script_language.h"
+#include "core/variant/native_ptr.h"
+
+class WebRTCPeerConnectionExtension : public WebRTCPeerConnection {
+ GDCLASS(WebRTCPeerConnectionExtension, WebRTCPeerConnection);
protected:
static void _bind_methods();
- static WebRTCPeerConnection *_create();
-
-private:
- static const godot_net_webrtc_library *default_library;
- const godot_net_webrtc_peer_connection *interface;
public:
- static Error set_default_library(const godot_net_webrtc_library *p_library);
- static void make_default() { WebRTCPeerConnection::_create = WebRTCPeerConnectionGDNative::_create; }
-
- void set_native_webrtc_peer_connection(const godot_net_webrtc_peer_connection *p_impl);
+ void make_default();
virtual ConnectionState get_connection_state() const override;
@@ -60,14 +53,22 @@ public:
virtual Error create_offer() override;
virtual Error set_remote_description(String type, String sdp) override;
virtual Error set_local_description(String type, String sdp) override;
- virtual Error add_ice_candidate(String sdpMidName, int sdpMlineIndexName, String sdpName) override;
+ virtual Error add_ice_candidate(String p_sdp_mid_name, int p_sdp_mline_index, String p_sdp_name) override;
virtual Error poll() override;
virtual void close() override;
- WebRTCPeerConnectionGDNative();
- ~WebRTCPeerConnectionGDNative();
-};
+ /** GDExtension **/
+ GDVIRTUAL0RC(int, _get_connection_state);
+ GDVIRTUAL1R(int, _initialize, Dictionary);
+ GDVIRTUAL2R(Object *, _create_data_channel, String, Dictionary);
+ GDVIRTUAL0R(int, _create_offer);
+ GDVIRTUAL2R(int, _set_remote_description, String, String);
+ GDVIRTUAL2R(int, _set_local_description, String, String);
+ GDVIRTUAL3R(int, _add_ice_candidate, String, int, String);
+ GDVIRTUAL0R(int, _poll);
+ GDVIRTUAL0(_close);
-#endif // WEBRTC_GDNATIVE_ENABLED
+ WebRTCPeerConnectionExtension() {}
+};
-#endif // WEBRTC_PEER_CONNECTION_GDNATIVE_H
+#endif // WEBRTC_PEER_CONNECTION_EXTENSION_H
diff --git a/modules/webrtc/webrtc_peer_connection_gdnative.cpp b/modules/webrtc/webrtc_peer_connection_gdnative.cpp
deleted file mode 100644
index dcf78dfb73..0000000000
--- a/modules/webrtc/webrtc_peer_connection_gdnative.cpp
+++ /dev/null
@@ -1,121 +0,0 @@
-/*************************************************************************/
-/* webrtc_peer_connection_gdnative.cpp */
-/*************************************************************************/
-/* This file is part of: */
-/* GODOT ENGINE */
-/* https://godotengine.org */
-/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
-/* */
-/* Permission is hereby granted, free of charge, to any person obtaining */
-/* a copy of this software and associated documentation files (the */
-/* "Software"), to deal in the Software without restriction, including */
-/* without limitation the rights to use, copy, modify, merge, publish, */
-/* distribute, sublicense, and/or sell copies of the Software, and to */
-/* permit persons to whom the Software is furnished to do so, subject to */
-/* the following conditions: */
-/* */
-/* The above copyright notice and this permission notice shall be */
-/* included in all copies or substantial portions of the Software. */
-/* */
-/* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, */
-/* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF */
-/* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.*/
-/* IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY */
-/* CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, */
-/* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE */
-/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
-/*************************************************************************/
-
-#ifdef WEBRTC_GDNATIVE_ENABLED
-
-#include "webrtc_peer_connection_gdnative.h"
-
-#include "core/io/resource_loader.h"
-#include "modules/gdnative/nativescript/nativescript.h"
-#include "webrtc_data_channel_gdnative.h"
-
-const godot_net_webrtc_library *WebRTCPeerConnectionGDNative::default_library = nullptr;
-
-Error WebRTCPeerConnectionGDNative::set_default_library(const godot_net_webrtc_library *p_lib) {
- if (default_library) {
- const godot_net_webrtc_library *old = default_library;
- default_library = nullptr;
- old->unregistered();
- }
- default_library = p_lib;
- return OK; // Maybe add version check and fail accordingly
-}
-
-WebRTCPeerConnection *WebRTCPeerConnectionGDNative::_create() {
- WebRTCPeerConnectionGDNative *obj = memnew(WebRTCPeerConnectionGDNative);
- ERR_FAIL_COND_V_MSG(!default_library, obj, "Default GDNative WebRTC implementation not defined.");
-
- // Call GDNative constructor
- Error err = (Error)default_library->create_peer_connection(obj);
- ERR_FAIL_COND_V_MSG(err != OK, obj, "GDNative default library constructor returned an error.");
-
- return obj;
-}
-
-void WebRTCPeerConnectionGDNative::_bind_methods() {
-}
-
-WebRTCPeerConnectionGDNative::WebRTCPeerConnectionGDNative() {
- interface = nullptr;
-}
-
-WebRTCPeerConnectionGDNative::~WebRTCPeerConnectionGDNative() {
-}
-
-Error WebRTCPeerConnectionGDNative::initialize(Dictionary p_config) {
- ERR_FAIL_COND_V(interface == nullptr, ERR_UNCONFIGURED);
- return (Error)interface->initialize(interface->data, (const godot_dictionary *)&p_config);
-}
-
-Ref<WebRTCDataChannel> WebRTCPeerConnectionGDNative::create_data_channel(String p_label, Dictionary p_options) {
- ERR_FAIL_COND_V(interface == nullptr, nullptr);
- return (WebRTCDataChannel *)interface->create_data_channel(interface->data, p_label.utf8().get_data(), (const godot_dictionary *)&p_options);
-}
-
-Error WebRTCPeerConnectionGDNative::create_offer() {
- ERR_FAIL_COND_V(interface == nullptr, ERR_UNCONFIGURED);
- return (Error)interface->create_offer(interface->data);
-}
-
-Error WebRTCPeerConnectionGDNative::set_local_description(String p_type, String p_sdp) {
- ERR_FAIL_COND_V(interface == nullptr, ERR_UNCONFIGURED);
- return (Error)interface->set_local_description(interface->data, p_type.utf8().get_data(), p_sdp.utf8().get_data());
-}
-
-Error WebRTCPeerConnectionGDNative::set_remote_description(String p_type, String p_sdp) {
- ERR_FAIL_COND_V(interface == nullptr, ERR_UNCONFIGURED);
- return (Error)interface->set_remote_description(interface->data, p_type.utf8().get_data(), p_sdp.utf8().get_data());
-}
-
-Error WebRTCPeerConnectionGDNative::add_ice_candidate(String sdpMidName, int sdpMlineIndexName, String sdpName) {
- ERR_FAIL_COND_V(interface == nullptr, ERR_UNCONFIGURED);
- return (Error)interface->add_ice_candidate(interface->data, sdpMidName.utf8().get_data(), sdpMlineIndexName, sdpName.utf8().get_data());
-}
-
-Error WebRTCPeerConnectionGDNative::poll() {
- ERR_FAIL_COND_V(interface == nullptr, ERR_UNCONFIGURED);
- return (Error)interface->poll(interface->data);
-}
-
-void WebRTCPeerConnectionGDNative::close() {
- ERR_FAIL_COND(interface == nullptr);
- interface->close(interface->data);
-}
-
-WebRTCPeerConnection::ConnectionState WebRTCPeerConnectionGDNative::get_connection_state() const {
- ERR_FAIL_COND_V(interface == nullptr, STATE_DISCONNECTED);
- return (ConnectionState)interface->get_connection_state(interface->data);
-}
-
-void WebRTCPeerConnectionGDNative::set_native_webrtc_peer_connection(const godot_net_webrtc_peer_connection *p_impl) {
- interface = p_impl;
-}
-
-#endif // WEBRTC_GDNATIVE_ENABLED
diff --git a/modules/webrtc/webrtc_peer_connection_js.h b/modules/webrtc/webrtc_peer_connection_js.h
index 0272e67f6f..d2beccaf03 100644
--- a/modules/webrtc/webrtc_peer_connection_js.h
+++ b/modules/webrtc/webrtc_peer_connection_js.h
@@ -63,9 +63,6 @@ private:
static void _on_error(void *p_obj);
public:
- static WebRTCPeerConnection *_create() { return memnew(WebRTCPeerConnectionJS); }
- static void make_default() { WebRTCPeerConnection::_create = WebRTCPeerConnectionJS::_create; }
-
virtual ConnectionState get_connection_state() const;
virtual Error initialize(Dictionary configuration = Dictionary());
diff --git a/modules/websocket/doc_classes/WebSocketClient.xml b/modules/websocket/doc_classes/WebSocketClient.xml
index b5202469f1..4b515c12a1 100644
--- a/modules/websocket/doc_classes/WebSocketClient.xml
+++ b/modules/websocket/doc_classes/WebSocketClient.xml
@@ -8,6 +8,7 @@
This client can be optionally used as a multiplayer peer for the [MultiplayerAPI].
After starting the client ([method connect_to_url]), you will need to [method MultiplayerPeer.poll] it at regular intervals (e.g. inside [method Node._process]).
You will receive appropriate signals when connecting, disconnecting, or when new data is available.
+ [b]Note:[/b] When exporting to Android, make sure to enable the [code]INTERNET[/code] permission in the Android export preset before exporting the project or using one-click deploy. Otherwise, network communication of any kind will be blocked by Android.
</description>
<tutorials>
</tutorials>
@@ -90,6 +91,4 @@
</description>
</signal>
</signals>
- <constants>
- </constants>
</class>
diff --git a/modules/websocket/doc_classes/WebSocketMultiplayerPeer.xml b/modules/websocket/doc_classes/WebSocketMultiplayerPeer.xml
index c7a0ca100f..8d8ab220e2 100644
--- a/modules/websocket/doc_classes/WebSocketMultiplayerPeer.xml
+++ b/modules/websocket/doc_classes/WebSocketMultiplayerPeer.xml
@@ -5,6 +5,7 @@
</brief_description>
<description>
Base class for WebSocket server and client, allowing them to be used as multiplayer peer for the [MultiplayerAPI].
+ [b]Note:[/b] When exporting to Android, make sure to enable the [code]INTERNET[/code] permission in the Android export preset before exporting the project or using one-click deploy. Otherwise, network communication of any kind will be blocked by Android.
</description>
<tutorials>
</tutorials>
@@ -30,10 +31,6 @@
</description>
</method>
</methods>
- <members>
- <member name="refuse_new_connections" type="bool" setter="set_refuse_new_connections" getter="is_refusing_new_connections" override="true" default="false" />
- <member name="transfer_mode" type="int" setter="set_transfer_mode" getter="get_transfer_mode" override="true" enum="TransferMode" default="2" />
- </members>
<signals>
<signal name="peer_packet">
<argument index="0" name="peer_source" type="int" />
@@ -43,6 +40,4 @@
</description>
</signal>
</signals>
- <constants>
- </constants>
</class>
diff --git a/modules/websocket/doc_classes/WebSocketServer.xml b/modules/websocket/doc_classes/WebSocketServer.xml
index b66a1054ab..f901b089ea 100644
--- a/modules/websocket/doc_classes/WebSocketServer.xml
+++ b/modules/websocket/doc_classes/WebSocketServer.xml
@@ -7,6 +7,7 @@
This class implements a WebSocket server that can also support the high-level multiplayer API.
After starting the server ([method listen]), you will need to [method MultiplayerPeer.poll] it at regular intervals (e.g. inside [method Node._process]). When clients connect, disconnect, or send data, you will receive the appropriate signal.
[b]Note:[/b] Not available in HTML5 exports.
+ [b]Note:[/b] When exporting to Android, make sure to enable the [code]INTERNET[/code] permission in the Android export preset before exporting the project or using one-click deploy. Otherwise, network communication of any kind will be blocked by Android.
</description>
<tutorials>
</tutorials>
@@ -116,6 +117,4 @@
</description>
</signal>
</signals>
- <constants>
- </constants>
</class>
diff --git a/modules/websocket/websocket_multiplayer_peer.cpp b/modules/websocket/websocket_multiplayer_peer.cpp
index 7464cf2bf5..3a27855a5e 100644
--- a/modules/websocket/websocket_multiplayer_peer.cpp
+++ b/modules/websocket/websocket_multiplayer_peer.cpp
@@ -105,23 +105,6 @@ Error WebSocketMultiplayerPeer::put_packet(const uint8_t *p_buffer, int p_buffer
//
// MultiplayerPeer
//
-void WebSocketMultiplayerPeer::set_transfer_channel(int p_channel) {
- // Websocket does not have channels.
-}
-
-int WebSocketMultiplayerPeer::get_transfer_channel() const {
- return 0;
-}
-
-void WebSocketMultiplayerPeer::set_transfer_mode(Multiplayer::TransferMode p_mode) {
- // Websocket uses TCP, reliable
-}
-
-Multiplayer::TransferMode WebSocketMultiplayerPeer::get_transfer_mode() const {
- // Websocket uses TCP, reliable
- return Multiplayer::TRANSFER_MODE_RELIABLE;
-}
-
void WebSocketMultiplayerPeer::set_target_peer(int p_target_peer) {
_target_peer = p_target_peer;
}
@@ -137,14 +120,6 @@ int WebSocketMultiplayerPeer::get_unique_id() const {
return _peer_id;
}
-void WebSocketMultiplayerPeer::set_refuse_new_connections(bool p_enable) {
- _refusing = p_enable;
-}
-
-bool WebSocketMultiplayerPeer::is_refusing_new_connections() const {
- return _refusing;
-}
-
void WebSocketMultiplayerPeer::_send_sys(Ref<WebSocketPeer> p_peer, uint8_t p_type, int32_t p_peer_id) {
ERR_FAIL_COND(!p_peer.is_valid());
ERR_FAIL_COND(!p_peer->is_connected_to_host());
diff --git a/modules/websocket/websocket_multiplayer_peer.h b/modules/websocket/websocket_multiplayer_peer.h
index d97a599fe9..380edf67ed 100644
--- a/modules/websocket/websocket_multiplayer_peer.h
+++ b/modules/websocket/websocket_multiplayer_peer.h
@@ -68,7 +68,6 @@ protected:
bool _is_multiplayer = false;
int _target_peer = 0;
int _peer_id = 0;
- int _refusing = false;
static void _bind_methods();
@@ -78,15 +77,9 @@ protected:
public:
/* MultiplayerPeer */
- void set_transfer_channel(int p_channel) override;
- int get_transfer_channel() const override;
- void set_transfer_mode(Multiplayer::TransferMode p_mode) override;
- Multiplayer::TransferMode get_transfer_mode() const override;
void set_target_peer(int p_target_peer) override;
int get_packet_peer() const override;
int get_unique_id() const override;
- void set_refuse_new_connections(bool p_enable) override;
- bool is_refusing_new_connections() const override;
/* PacketPeer */
virtual int get_available_packet_count() const override;
diff --git a/modules/webxr/doc_classes/WebXRInterface.xml b/modules/webxr/doc_classes/WebXRInterface.xml
index ff7c46bbae..16d671c9e9 100644
--- a/modules/webxr/doc_classes/WebXRInterface.xml
+++ b/modules/webxr/doc_classes/WebXRInterface.xml
@@ -239,6 +239,4 @@
</description>
</signal>
</signals>
- <constants>
- </constants>
</class>
diff --git a/modules/webxr/register_types.cpp b/modules/webxr/register_types.cpp
index 078a6547cf..16b483c39e 100644
--- a/modules/webxr/register_types.cpp
+++ b/modules/webxr/register_types.cpp
@@ -33,15 +33,34 @@
#include "webxr_interface.h"
#include "webxr_interface_js.h"
+#ifdef JAVASCRIPT_ENABLED
+Ref<WebXRInterfaceJS> webxr;
+#endif
+
void register_webxr_types() {
GDREGISTER_VIRTUAL_CLASS(WebXRInterface);
#ifdef JAVASCRIPT_ENABLED
- Ref<WebXRInterfaceJS> webxr;
webxr.instantiate();
XRServer::get_singleton()->add_interface(webxr);
#endif
}
void unregister_webxr_types() {
+#ifdef JAVASCRIPT_ENABLED
+ if (webxr.is_valid()) {
+ // uninitialise our interface if it is initialised
+ if (webxr->is_initialized()) {
+ webxr->uninitialize();
+ }
+
+ // unregister our interface from the XR server
+ if (XRServer::get_singleton()) {
+ XRServer::get_singleton()->remove_interface(webxr);
+ }
+
+ // and release
+ webxr.unref();
+ }
+#endif
}
diff --git a/modules/webxr/webxr_interface_js.cpp b/modules/webxr/webxr_interface_js.cpp
index 2d699961ae..10c17aa672 100644
--- a/modules/webxr/webxr_interface_js.cpp
+++ b/modules/webxr/webxr_interface_js.cpp
@@ -341,7 +341,7 @@ Transform3D WebXRInterfaceJS::get_transform_for_view(uint32_t p_view, const Tran
return p_cam_transform * xr_server->get_reference_frame() * transform_for_eye;
};
-CameraMatrix WebXRInterfaceJS::get_projection_for_view(uint32_t p_view, real_t p_aspect, real_t p_z_near, real_t p_z_far) {
+CameraMatrix WebXRInterfaceJS::get_projection_for_view(uint32_t p_view, double p_aspect, double p_z_near, double p_z_far) {
CameraMatrix eye;
float *js_matrix = godot_webxr_get_projection_for_eye(p_view + 1);
diff --git a/modules/webxr/webxr_interface_js.h b/modules/webxr/webxr_interface_js.h
index 82307190db..eb77f35f39 100644
--- a/modules/webxr/webxr_interface_js.h
+++ b/modules/webxr/webxr_interface_js.h
@@ -86,7 +86,7 @@ public:
virtual uint32_t get_view_count() override;
virtual Transform3D get_camera_transform() override;
virtual Transform3D get_transform_for_view(uint32_t p_view, const Transform3D &p_cam_transform) override;
- virtual CameraMatrix get_projection_for_view(uint32_t p_view, real_t p_aspect, real_t p_z_near, real_t p_z_far) override;
+ virtual CameraMatrix get_projection_for_view(uint32_t p_view, double p_aspect, double p_z_near, double p_z_far) override;
virtual Vector<BlitToScreen> commit_views(RID p_render_target, const Rect2 &p_screen_rect) override;
virtual void process() override;
diff --git a/platform/javascript/.eslintrc.js b/platform/javascript/.eslintrc.js
index 0ff9d67d26..2c81f1f02d 100644
--- a/platform/javascript/.eslintrc.js
+++ b/platform/javascript/.eslintrc.js
@@ -39,5 +39,13 @@ module.exports = {
// Closure compiler (exported properties)
"quote-props": ["error", "consistent"],
"dot-notation": "off",
+ // No comma dangle for functions (it's madness, and ES2017)
+ "comma-dangle": ["error", {
+ "arrays": "always-multiline",
+ "objects": "always-multiline",
+ "imports": "always-multiline",
+ "exports": "always-multiline",
+ "functions": "never"
+ }],
}
};
diff --git a/platform/javascript/audio_driver_javascript.cpp b/platform/javascript/audio_driver_javascript.cpp
index 420cb2f2f7..cfe6c69072 100644
--- a/platform/javascript/audio_driver_javascript.cpp
+++ b/platform/javascript/audio_driver_javascript.cpp
@@ -34,22 +34,18 @@
#include <emscripten.h>
-AudioDriverJavaScript *AudioDriverJavaScript::singleton = nullptr;
+AudioDriverJavaScript::AudioContext AudioDriverJavaScript::audio_context;
bool AudioDriverJavaScript::is_available() {
return godot_audio_is_available() != 0;
}
-const char *AudioDriverJavaScript::get_name() const {
- return "JavaScript";
-}
-
void AudioDriverJavaScript::_state_change_callback(int p_state) {
- singleton->state = p_state;
+ AudioDriverJavaScript::audio_context.state = p_state;
}
void AudioDriverJavaScript::_latency_update_callback(float p_latency) {
- singleton->output_latency = p_latency;
+ AudioDriverJavaScript::audio_context.output_latency = p_latency;
}
void AudioDriverJavaScript::_audio_driver_process(int p_from, int p_samples) {
@@ -105,17 +101,19 @@ void AudioDriverJavaScript::_audio_driver_capture(int p_from, int p_samples) {
}
Error AudioDriverJavaScript::init() {
- mix_rate = GLOBAL_GET("audio/driver/mix_rate");
int latency = GLOBAL_GET("audio/driver/output_latency");
-
- channel_count = godot_audio_init(&mix_rate, latency, &_state_change_callback, &_latency_update_callback);
+ if (!audio_context.inited) {
+ audio_context.mix_rate = GLOBAL_GET("audio/driver/mix_rate");
+ audio_context.channel_count = godot_audio_init(&audio_context.mix_rate, latency, &_state_change_callback, &_latency_update_callback);
+ audio_context.inited = true;
+ }
+ mix_rate = audio_context.mix_rate;
+ channel_count = audio_context.channel_count;
buffer_length = closest_power_of_2((latency * mix_rate / 1000));
-#ifndef NO_THREADS
- node = memnew(WorkletNode);
-#else
- node = memnew(ScriptProcessorNode);
-#endif
- buffer_length = node->create(buffer_length, channel_count);
+ Error err = create(buffer_length, channel_count);
+ if (err != OK) {
+ return err;
+ }
if (output_rb) {
memdelete_arr(output_rb);
}
@@ -134,19 +132,17 @@ Error AudioDriverJavaScript::init() {
}
void AudioDriverJavaScript::start() {
- if (node) {
- node->start(output_rb, memarr_len(output_rb), input_rb, memarr_len(input_rb));
- }
+ start(output_rb, memarr_len(output_rb), input_rb, memarr_len(input_rb));
}
void AudioDriverJavaScript::resume() {
- if (state == 0) { // 'suspended'
+ if (audio_context.state == 0) { // 'suspended'
godot_audio_resume();
}
}
float AudioDriverJavaScript::get_latency() {
- return output_latency + (float(buffer_length) / mix_rate);
+ return audio_context.output_latency + (float(buffer_length) / mix_rate);
}
int AudioDriverJavaScript::get_mix_rate() const {
@@ -157,24 +153,8 @@ AudioDriver::SpeakerMode AudioDriverJavaScript::get_speaker_mode() const {
return get_speaker_mode_by_total_channels(channel_count);
}
-void AudioDriverJavaScript::lock() {
- if (node) {
- node->unlock();
- }
-}
-
-void AudioDriverJavaScript::unlock() {
- if (node) {
- node->unlock();
- }
-}
-
void AudioDriverJavaScript::finish() {
- if (node) {
- node->finish();
- memdelete(node);
- node = nullptr;
- }
+ finish_driver();
if (output_rb) {
memdelete_arr(output_rb);
output_rb = nullptr;
@@ -203,41 +183,66 @@ Error AudioDriverJavaScript::capture_stop() {
return OK;
}
-AudioDriverJavaScript::AudioDriverJavaScript() {
- singleton = this;
-}
-
#ifdef NO_THREADS
/// ScriptProcessorNode implementation
-void AudioDriverJavaScript::ScriptProcessorNode::_process_callback() {
- AudioDriverJavaScript::singleton->_audio_driver_capture();
- AudioDriverJavaScript::singleton->_audio_driver_process();
+AudioDriverScriptProcessor *AudioDriverScriptProcessor::singleton = nullptr;
+
+void AudioDriverScriptProcessor::_process_callback() {
+ AudioDriverScriptProcessor::singleton->_audio_driver_capture();
+ AudioDriverScriptProcessor::singleton->_audio_driver_process();
}
-int AudioDriverJavaScript::ScriptProcessorNode::create(int p_buffer_samples, int p_channels) {
- return godot_audio_script_create(p_buffer_samples, p_channels);
+Error AudioDriverScriptProcessor::create(int &p_buffer_samples, int p_channels) {
+ if (!godot_audio_has_script_processor()) {
+ return ERR_UNAVAILABLE;
+ }
+ return (Error)godot_audio_script_create(&p_buffer_samples, p_channels);
}
-void AudioDriverJavaScript::ScriptProcessorNode::start(float *p_out_buf, int p_out_buf_size, float *p_in_buf, int p_in_buf_size) {
+void AudioDriverScriptProcessor::start(float *p_out_buf, int p_out_buf_size, float *p_in_buf, int p_in_buf_size) {
godot_audio_script_start(p_in_buf, p_in_buf_size, p_out_buf, p_out_buf_size, &_process_callback);
}
+
+/// AudioWorkletNode implementation (no threads)
+AudioDriverWorklet *AudioDriverWorklet::singleton = nullptr;
+
+Error AudioDriverWorklet::create(int &p_buffer_size, int p_channels) {
+ if (!godot_audio_has_worklet()) {
+ return ERR_UNAVAILABLE;
+ }
+ return (Error)godot_audio_worklet_create(p_channels);
+}
+
+void AudioDriverWorklet::start(float *p_out_buf, int p_out_buf_size, float *p_in_buf, int p_in_buf_size) {
+ _audio_driver_process();
+ godot_audio_worklet_start_no_threads(p_out_buf, p_out_buf_size, &_process_callback, p_in_buf, p_in_buf_size, &_capture_callback);
+}
+
+void AudioDriverWorklet::_process_callback(int p_pos, int p_samples) {
+ AudioDriverWorklet *driver = AudioDriverWorklet::singleton;
+ driver->_audio_driver_process(p_pos, p_samples);
+}
+
+void AudioDriverWorklet::_capture_callback(int p_pos, int p_samples) {
+ AudioDriverWorklet *driver = AudioDriverWorklet::singleton;
+ driver->_audio_driver_capture(p_pos, p_samples);
+}
#else
-/// AudioWorkletNode implementation
-void AudioDriverJavaScript::WorkletNode::_audio_thread_func(void *p_data) {
- AudioDriverJavaScript::WorkletNode *obj = static_cast<AudioDriverJavaScript::WorkletNode *>(p_data);
- AudioDriverJavaScript *driver = AudioDriverJavaScript::singleton;
- const int out_samples = memarr_len(driver->output_rb);
- const int in_samples = memarr_len(driver->input_rb);
+/// AudioWorkletNode implementation (threads)
+void AudioDriverWorklet::_audio_thread_func(void *p_data) {
+ AudioDriverWorklet *driver = static_cast<AudioDriverWorklet *>(p_data);
+ const int out_samples = memarr_len(driver->get_output_rb());
+ const int in_samples = memarr_len(driver->get_input_rb());
int wpos = 0;
int to_write = out_samples;
int rpos = 0;
int to_read = 0;
int32_t step = 0;
- while (!obj->quit) {
+ while (!driver->quit) {
if (to_read) {
driver->lock();
driver->_audio_driver_capture(rpos, to_read);
- godot_audio_worklet_state_add(obj->state, STATE_SAMPLES_IN, -to_read);
+ godot_audio_worklet_state_add(driver->state, STATE_SAMPLES_IN, -to_read);
driver->unlock();
rpos += to_read;
if (rpos >= in_samples) {
@@ -247,38 +252,40 @@ void AudioDriverJavaScript::WorkletNode::_audio_thread_func(void *p_data) {
if (to_write) {
driver->lock();
driver->_audio_driver_process(wpos, to_write);
- godot_audio_worklet_state_add(obj->state, STATE_SAMPLES_OUT, to_write);
+ godot_audio_worklet_state_add(driver->state, STATE_SAMPLES_OUT, to_write);
driver->unlock();
wpos += to_write;
if (wpos >= out_samples) {
wpos -= out_samples;
}
}
- step = godot_audio_worklet_state_wait(obj->state, STATE_PROCESS, step, 1);
- to_write = out_samples - godot_audio_worklet_state_get(obj->state, STATE_SAMPLES_OUT);
- to_read = godot_audio_worklet_state_get(obj->state, STATE_SAMPLES_IN);
+ step = godot_audio_worklet_state_wait(driver->state, STATE_PROCESS, step, 1);
+ to_write = out_samples - godot_audio_worklet_state_get(driver->state, STATE_SAMPLES_OUT);
+ to_read = godot_audio_worklet_state_get(driver->state, STATE_SAMPLES_IN);
}
}
-int AudioDriverJavaScript::WorkletNode::create(int p_buffer_size, int p_channels) {
- godot_audio_worklet_create(p_channels);
- return p_buffer_size;
+Error AudioDriverWorklet::create(int &p_buffer_size, int p_channels) {
+ if (!godot_audio_has_worklet()) {
+ return ERR_UNAVAILABLE;
+ }
+ return (Error)godot_audio_worklet_create(p_channels);
}
-void AudioDriverJavaScript::WorkletNode::start(float *p_out_buf, int p_out_buf_size, float *p_in_buf, int p_in_buf_size) {
+void AudioDriverWorklet::start(float *p_out_buf, int p_out_buf_size, float *p_in_buf, int p_in_buf_size) {
godot_audio_worklet_start(p_in_buf, p_in_buf_size, p_out_buf, p_out_buf_size, state);
thread.start(_audio_thread_func, this);
}
-void AudioDriverJavaScript::WorkletNode::lock() {
+void AudioDriverWorklet::lock() {
mutex.lock();
}
-void AudioDriverJavaScript::WorkletNode::unlock() {
+void AudioDriverWorklet::unlock() {
mutex.unlock();
}
-void AudioDriverJavaScript::WorkletNode::finish() {
+void AudioDriverWorklet::finish_driver() {
quit = true; // Ask thread to quit.
thread.wait_to_finish();
}
diff --git a/platform/javascript/audio_driver_javascript.h b/platform/javascript/audio_driver_javascript.h
index 393693640f..6a0b4bcb0e 100644
--- a/platform/javascript/audio_driver_javascript.h
+++ b/platform/javascript/audio_driver_javascript.h
@@ -38,52 +38,15 @@
#include "godot_audio.h"
class AudioDriverJavaScript : public AudioDriver {
-public:
- class AudioNode {
- public:
- virtual int create(int p_buffer_size, int p_output_channels) = 0;
- virtual void start(float *p_out_buf, int p_out_buf_size, float *p_in_buf, int p_in_buf_size) = 0;
- virtual void finish() {}
- virtual void lock() {}
- virtual void unlock() {}
- virtual ~AudioNode() {}
- };
-
- class WorkletNode : public AudioNode {
- private:
- enum {
- STATE_LOCK,
- STATE_PROCESS,
- STATE_SAMPLES_IN,
- STATE_SAMPLES_OUT,
- STATE_MAX,
- };
- Mutex mutex;
- Thread thread;
- bool quit = false;
- int32_t state[STATE_MAX] = { 0 };
-
- static void _audio_thread_func(void *p_data);
-
- public:
- int create(int p_buffer_size, int p_output_channels) override;
- void start(float *p_out_buf, int p_out_buf_size, float *p_in_buf, int p_in_buf_size) override;
- void finish() override;
- void lock() override;
- void unlock() override;
- };
-
- class ScriptProcessorNode : public AudioNode {
- private:
- static void _process_callback();
-
- public:
- int create(int p_buffer_samples, int p_channels) override;
- void start(float *p_out_buf, int p_out_buf_size, float *p_in_buf, int p_in_buf_size) override;
- };
-
private:
- AudioNode *node = nullptr;
+ struct AudioContext {
+ bool inited = false;
+ float output_latency = 0.0;
+ int state = -1;
+ int channel_count = 0;
+ int mix_rate = 0;
+ };
+ static AudioContext audio_context;
float *output_rb = nullptr;
float *input_rb = nullptr;
@@ -91,36 +54,108 @@ private:
int buffer_length = 0;
int mix_rate = 0;
int channel_count = 0;
- int state = 0;
- float output_latency = 0.0;
static void _state_change_callback(int p_state);
static void _latency_update_callback(float p_latency);
+ static AudioDriverJavaScript *singleton;
+
protected:
void _audio_driver_process(int p_from = 0, int p_samples = 0);
void _audio_driver_capture(int p_from = 0, int p_samples = 0);
+ float *get_output_rb() const { return output_rb; }
+ float *get_input_rb() const { return input_rb; }
+
+ virtual Error create(int &p_buffer_samples, int p_channels) = 0;
+ virtual void start(float *p_out_buf, int p_out_buf_size, float *p_in_buf, int p_in_buf_size) = 0;
+ virtual void finish_driver() {}
public:
static bool is_available();
- static AudioDriverJavaScript *singleton;
+ virtual Error init() final;
+ virtual void start() final;
+ virtual void finish() final;
+
+ virtual float get_latency() override;
+ virtual int get_mix_rate() const override;
+ virtual SpeakerMode get_speaker_mode() const override;
+
+ virtual Error capture_start() override;
+ virtual Error capture_stop() override;
+
+ static void resume();
+
+ AudioDriverJavaScript() {}
+};
+
+#ifdef NO_THREADS
+class AudioDriverScriptProcessor : public AudioDriverJavaScript {
+private:
+ static void _process_callback();
+
+ static AudioDriverScriptProcessor *singleton;
+
+protected:
+ Error create(int &p_buffer_samples, int p_channels) override;
+ void start(float *p_out_buf, int p_out_buf_size, float *p_in_buf, int p_in_buf_size) override;
+
+public:
+ virtual const char *get_name() const override { return "ScriptProcessor"; }
+
+ virtual void lock() override {}
+ virtual void unlock() override {}
+
+ AudioDriverScriptProcessor() { singleton = this; }
+};
+
+class AudioDriverWorklet : public AudioDriverJavaScript {
+private:
+ static void _process_callback(int p_pos, int p_samples);
+ static void _capture_callback(int p_pos, int p_samples);
+
+ static AudioDriverWorklet *singleton;
+
+protected:
+ virtual Error create(int &p_buffer_size, int p_output_channels) override;
+ virtual void start(float *p_out_buf, int p_out_buf_size, float *p_in_buf, int p_in_buf_size) override;
- virtual const char *get_name() const;
+public:
+ virtual const char *get_name() const override { return "AudioWorklet"; }
+
+ virtual void lock() override {}
+ virtual void unlock() override {}
- virtual Error init();
- virtual void start();
- void resume();
- virtual float get_latency();
- virtual int get_mix_rate() const;
- virtual SpeakerMode get_speaker_mode() const;
- virtual void lock();
- virtual void unlock();
- virtual void finish();
+ AudioDriverWorklet() { singleton = this; }
+};
+#else
+class AudioDriverWorklet : public AudioDriverJavaScript {
+private:
+ enum {
+ STATE_LOCK,
+ STATE_PROCESS,
+ STATE_SAMPLES_IN,
+ STATE_SAMPLES_OUT,
+ STATE_MAX,
+ };
+ Mutex mutex;
+ Thread thread;
+ bool quit = false;
+ int32_t state[STATE_MAX] = { 0 };
- virtual Error capture_start();
- virtual Error capture_stop();
+ static void _audio_thread_func(void *p_data);
- AudioDriverJavaScript();
+protected:
+ virtual Error create(int &p_buffer_size, int p_output_channels) override;
+ virtual void start(float *p_out_buf, int p_out_buf_size, float *p_in_buf, int p_in_buf_size) override;
+ virtual void finish_driver() override;
+
+public:
+ virtual const char *get_name() const override { return "AudioWorklet"; }
+
+ void lock() override;
+ void unlock() override;
};
#endif
+
+#endif
diff --git a/platform/javascript/display_server_javascript.cpp b/platform/javascript/display_server_javascript.cpp
index be4d2cba20..124b4ee1c8 100644
--- a/platform/javascript/display_server_javascript.cpp
+++ b/platform/javascript/display_server_javascript.cpp
@@ -595,6 +595,12 @@ void DisplayServerJavaScript::virtual_keyboard_hide() {
godot_js_display_vk_hide();
}
+// Window blur callback
+EM_BOOL DisplayServerJavaScript::blur_callback(int p_event_type, const EmscriptenFocusEvent *p_event, void *p_user_data) {
+ Input::get_singleton()->release_pressed_events();
+ return false;
+}
+
// Gamepad
void DisplayServerJavaScript::gamepad_callback(int p_index, int p_connected, const char *p_id, const char *p_guid) {
Input *input = Input::get_singleton();
@@ -797,6 +803,7 @@ DisplayServerJavaScript::DisplayServerJavaScript(const String &p_rendering_drive
SET_EM_CALLBACK(canvas_id, mousedown, mouse_button_callback)
SET_EM_WINDOW_CALLBACK(mousemove, mousemove_callback)
SET_EM_WINDOW_CALLBACK(mouseup, mouse_button_callback)
+ SET_EM_WINDOW_CALLBACK(blur, blur_callback)
SET_EM_CALLBACK(canvas_id, wheel, wheel_callback)
SET_EM_CALLBACK(canvas_id, touchstart, touch_press_callback)
SET_EM_CALLBACK(canvas_id, touchmove, touchmove_callback)
diff --git a/platform/javascript/display_server_javascript.h b/platform/javascript/display_server_javascript.h
index bf5e229c9a..1863ddefeb 100644
--- a/platform/javascript/display_server_javascript.h
+++ b/platform/javascript/display_server_javascript.h
@@ -85,6 +85,8 @@ private:
static EM_BOOL touch_press_callback(int p_event_type, const EmscriptenTouchEvent *p_event, void *p_user_data);
static EM_BOOL touchmove_callback(int p_event_type, const EmscriptenTouchEvent *p_event, void *p_user_data);
+ static EM_BOOL blur_callback(int p_event_type, const EmscriptenFocusEvent *p_event, void *p_user_data);
+
static void gamepad_callback(int p_index, int p_connected, const char *p_id, const char *p_guid);
void process_joypads();
diff --git a/platform/javascript/godot_audio.h b/platform/javascript/godot_audio.h
index de8f046bbd..eba025ab63 100644
--- a/platform/javascript/godot_audio.h
+++ b/platform/javascript/godot_audio.h
@@ -38,6 +38,8 @@ extern "C" {
#include "stddef.h"
extern int godot_audio_is_available();
+extern int godot_audio_has_worklet();
+extern int godot_audio_has_script_processor();
extern int godot_audio_init(int *p_mix_rate, int p_latency, void (*_state_cb)(int), void (*_latency_cb)(float));
extern void godot_audio_resume();
@@ -46,14 +48,15 @@ extern void godot_audio_capture_stop();
// Worklet
typedef int32_t GodotAudioState[4];
-extern void godot_audio_worklet_create(int p_channels);
+extern int godot_audio_worklet_create(int p_channels);
extern void godot_audio_worklet_start(float *p_in_buf, int p_in_size, float *p_out_buf, int p_out_size, GodotAudioState p_state);
+extern void godot_audio_worklet_start_no_threads(float *p_out_buf, int p_out_size, void (*p_out_cb)(int p_pos, int p_frames), float *p_in_buf, int p_in_size, void (*p_in_cb)(int p_pos, int p_frames));
extern int godot_audio_worklet_state_add(GodotAudioState p_state, int p_idx, int p_value);
extern int godot_audio_worklet_state_get(GodotAudioState p_state, int p_idx);
extern int godot_audio_worklet_state_wait(int32_t *p_state, int p_idx, int32_t p_expected, int p_timeout);
// Script
-extern int godot_audio_script_create(int p_buffer_size, int p_channels);
+extern int godot_audio_script_create(int *p_buffer_size, int p_channels);
extern void godot_audio_script_start(float *p_in_buf, int p_in_size, float *p_out_buf, int p_out_size, void (*p_cb)());
#ifdef __cplusplus
diff --git a/platform/javascript/js/libs/audio.worklet.js b/platform/javascript/js/libs/audio.worklet.js
index df475ba52d..52b3aedf8c 100644
--- a/platform/javascript/js/libs/audio.worklet.js
+++ b/platform/javascript/js/libs/audio.worklet.js
@@ -29,15 +29,16 @@
/*************************************************************************/
class RingBuffer {
- constructor(p_buffer, p_state) {
+ constructor(p_buffer, p_state, p_threads) {
this.buffer = p_buffer;
this.avail = p_state;
+ this.threads = p_threads;
this.rpos = 0;
this.wpos = 0;
}
data_left() {
- return Atomics.load(this.avail, 0);
+ return this.threads ? Atomics.load(this.avail, 0) : this.avail;
}
space_left() {
@@ -55,10 +56,16 @@ class RingBuffer {
to_write -= high;
this.rpos = 0;
}
- output.set(this.buffer.subarray(this.rpos, this.rpos + to_write), from);
+ if (to_write) {
+ output.set(this.buffer.subarray(this.rpos, this.rpos + to_write), from);
+ }
this.rpos += to_write;
- Atomics.add(this.avail, 0, -output.length);
- Atomics.notify(this.avail, 0);
+ if (this.threads) {
+ Atomics.add(this.avail, 0, -output.length);
+ Atomics.notify(this.avail, 0);
+ } else {
+ this.avail -= output.length;
+ }
}
write(p_buffer) {
@@ -77,14 +84,19 @@ class RingBuffer {
this.buffer.set(low);
this.wpos = low.length;
}
- Atomics.add(this.avail, 0, to_write);
- Atomics.notify(this.avail, 0);
+ if (this.threads) {
+ Atomics.add(this.avail, 0, to_write);
+ Atomics.notify(this.avail, 0);
+ } else {
+ this.avail += to_write;
+ }
}
}
class GodotProcessor extends AudioWorkletProcessor {
constructor() {
super();
+ this.threads = false;
this.running = true;
this.lock = null;
this.notifier = null;
@@ -100,24 +112,31 @@ class GodotProcessor extends AudioWorkletProcessor {
}
process_notify() {
- Atomics.add(this.notifier, 0, 1);
- Atomics.notify(this.notifier, 0);
+ if (this.notifier) {
+ Atomics.add(this.notifier, 0, 1);
+ Atomics.notify(this.notifier, 0);
+ }
}
parse_message(p_cmd, p_data) {
if (p_cmd === 'start' && p_data) {
const state = p_data[0];
let idx = 0;
+ this.threads = true;
this.lock = state.subarray(idx, ++idx);
this.notifier = state.subarray(idx, ++idx);
const avail_in = state.subarray(idx, ++idx);
const avail_out = state.subarray(idx, ++idx);
- this.input = new RingBuffer(p_data[1], avail_in);
- this.output = new RingBuffer(p_data[2], avail_out);
+ this.input = new RingBuffer(p_data[1], avail_in, true);
+ this.output = new RingBuffer(p_data[2], avail_out, true);
} else if (p_cmd === 'stop') {
this.running = false;
this.output = null;
this.input = null;
+ } else if (p_cmd === 'start_nothreads') {
+ this.output = new RingBuffer(p_data[0], p_data[0].length, false);
+ } else if (p_cmd === 'chunk') {
+ this.output.write(p_data);
}
}
@@ -139,7 +158,10 @@ class GodotProcessor extends AudioWorkletProcessor {
if (this.input_buffer.length !== chunk) {
this.input_buffer = new Float32Array(chunk);
}
- if (this.input.space_left() >= chunk) {
+ if (!this.threads) {
+ GodotProcessor.write_input(this.input_buffer, input);
+ this.port.postMessage({ 'cmd': 'input', 'data': this.input_buffer });
+ } else if (this.input.space_left() >= chunk) {
GodotProcessor.write_input(this.input_buffer, input);
this.input.write(this.input_buffer);
} else {
@@ -156,6 +178,9 @@ class GodotProcessor extends AudioWorkletProcessor {
if (this.output.data_left() >= chunk) {
this.output.read(this.output_buffer);
GodotProcessor.write_output(output, this.output_buffer);
+ if (!this.threads) {
+ this.port.postMessage({ 'cmd': 'read', 'data': chunk });
+ }
} else {
this.port.postMessage('Output buffer has not enough frames! Skipping output frame.');
}
diff --git a/platform/javascript/js/libs/library_godot_audio.js b/platform/javascript/js/libs/library_godot_audio.js
index c9dae1a7af..6cbb0567f4 100644
--- a/platform/javascript/js/libs/library_godot_audio.js
+++ b/platform/javascript/js/libs/library_godot_audio.js
@@ -159,6 +159,16 @@ const GodotAudio = {
return 1;
},
+ godot_audio_has_worklet__sig: 'i',
+ godot_audio_has_worklet: function () {
+ return (GodotAudio.ctx && GodotAudio.ctx.audioWorklet) ? 1 : 0;
+ },
+
+ godot_audio_has_script_processor__sig: 'i',
+ godot_audio_has_script_processor: function () {
+ return (GodotAudio.ctx && GodotAudio.ctx.createScriptProcessor) ? 1 : 0;
+ },
+
godot_audio_init__sig: 'iiiii',
godot_audio_init: function (p_mix_rate, p_latency, p_state_change, p_latency_update) {
const statechange = GodotRuntime.get_func(p_state_change);
@@ -209,6 +219,7 @@ const GodotAudioWorklet = {
$GodotAudioWorklet: {
promise: null,
worklet: null,
+ ring_buffer: null,
create: function (channels) {
const path = GodotConfig.locate_file('godot.audio.worklet.js');
@@ -218,7 +229,7 @@ const GodotAudioWorklet = {
'godot-processor',
{
'outputChannelCount': [channels],
- },
+ }
);
return Promise.resolve();
});
@@ -239,6 +250,86 @@ const GodotAudioWorklet = {
});
},
+ start_no_threads: function (p_out_buf, p_out_size, out_callback, p_in_buf, p_in_size, in_callback) {
+ function RingBuffer() {
+ let wpos = 0;
+ let rpos = 0;
+ let pending_samples = 0;
+ const wbuf = new Float32Array(p_out_size);
+
+ function send(port) {
+ if (pending_samples === 0) {
+ return;
+ }
+ const buffer = GodotRuntime.heapSub(HEAPF32, p_out_buf, p_out_size);
+ const size = buffer.length;
+ const tot_sent = pending_samples;
+ out_callback(wpos, pending_samples);
+ if (wpos + pending_samples >= size) {
+ const high = size - wpos;
+ wbuf.set(buffer.subarray(wpos, size));
+ pending_samples -= high;
+ wpos = 0;
+ }
+ if (pending_samples > 0) {
+ wbuf.set(buffer.subarray(wpos, wpos + pending_samples), tot_sent - pending_samples);
+ }
+ port.postMessage({ 'cmd': 'chunk', 'data': wbuf.subarray(0, tot_sent) });
+ wpos += pending_samples;
+ pending_samples = 0;
+ }
+ this.receive = function (recv_buf) {
+ const buffer = GodotRuntime.heapSub(HEAPF32, p_in_buf, p_in_size);
+ const from = rpos;
+ let to_write = recv_buf.length;
+ let high = 0;
+ if (rpos + to_write >= p_in_size) {
+ high = p_in_size - rpos;
+ buffer.set(recv_buf.subarray(0, high), rpos);
+ to_write -= high;
+ rpos = 0;
+ }
+ if (to_write) {
+ buffer.set(recv_buf.subarray(high, to_write), rpos);
+ }
+ in_callback(from, recv_buf.length);
+ rpos += to_write;
+ };
+ this.consumed = function (size, port) {
+ pending_samples += size;
+ send(port);
+ };
+ }
+ GodotAudioWorklet.ring_buffer = new RingBuffer();
+ GodotAudioWorklet.promise.then(function () {
+ const node = GodotAudioWorklet.worklet;
+ const buffer = GodotRuntime.heapSlice(HEAPF32, p_out_buf, p_out_size);
+ node.connect(GodotAudio.ctx.destination);
+ node.port.postMessage({
+ 'cmd': 'start_nothreads',
+ 'data': [buffer, p_in_size],
+ });
+ node.port.onmessage = function (event) {
+ if (!GodotAudioWorklet.worklet) {
+ return;
+ }
+ if (event.data['cmd'] === 'read') {
+ const read = event.data['data'];
+ GodotAudioWorklet.ring_buffer.consumed(read, GodotAudioWorklet.worklet.port);
+ } else if (event.data['cmd'] === 'input') {
+ const buf = event.data['data'];
+ if (buf.length > p_in_size) {
+ GodotRuntime.error('Input chunk is too big');
+ return;
+ }
+ GodotAudioWorklet.ring_buffer.receive(buf);
+ } else {
+ GodotRuntime.error(event.data);
+ }
+ };
+ });
+ },
+
get_node: function () {
return GodotAudioWorklet.worklet;
},
@@ -262,9 +353,15 @@ const GodotAudioWorklet = {
},
},
- godot_audio_worklet_create__sig: 'vi',
+ godot_audio_worklet_create__sig: 'ii',
godot_audio_worklet_create: function (channels) {
- GodotAudioWorklet.create(channels);
+ try {
+ GodotAudioWorklet.create(channels);
+ } catch (e) {
+ GodotRuntime.error('Error starting AudioDriverWorklet', e);
+ return 1;
+ }
+ return 0;
},
godot_audio_worklet_start__sig: 'viiiii',
@@ -275,6 +372,13 @@ const GodotAudioWorklet = {
GodotAudioWorklet.start(in_buffer, out_buffer, state);
},
+ godot_audio_worklet_start_no_threads__sig: 'viiiiii',
+ godot_audio_worklet_start_no_threads: function (p_out_buf, p_out_size, p_out_callback, p_in_buf, p_in_size, p_in_callback) {
+ const out_callback = GodotRuntime.get_func(p_out_callback);
+ const in_callback = GodotRuntime.get_func(p_in_callback);
+ GodotAudioWorklet.start_no_threads(p_out_buf, p_out_size, out_callback, p_in_buf, p_in_size, in_callback);
+ },
+
godot_audio_worklet_state_wait__sig: 'iiii',
godot_audio_worklet_state_wait: function (p_state, p_idx, p_expected, p_timeout) {
Atomics.wait(HEAP32, (p_state >> 2) + p_idx, p_expected, p_timeout);
@@ -358,7 +462,15 @@ const GodotAudioScript = {
godot_audio_script_create__sig: 'iii',
godot_audio_script_create: function (buffer_length, channel_count) {
- return GodotAudioScript.create(buffer_length, channel_count);
+ const buf_len = GodotRuntime.getHeapValue(buffer_length, 'i32');
+ try {
+ const out_len = GodotAudioScript.create(buf_len, channel_count);
+ GodotRuntime.setHeapValue(buffer_length, out_len, 'i32');
+ } catch (e) {
+ GodotRuntime.error('Error starting AudioDriverScriptProcessor', e);
+ return 1;
+ }
+ return 0;
},
godot_audio_script_start__sig: 'viiiii',
diff --git a/platform/javascript/os_javascript.cpp b/platform/javascript/os_javascript.cpp
index 95c5909d50..4431bd5f1b 100644
--- a/platform/javascript/os_javascript.cpp
+++ b/platform/javascript/os_javascript.cpp
@@ -63,9 +63,7 @@ void OS_JavaScript::initialize() {
}
void OS_JavaScript::resume_audio() {
- if (audio_driver_javascript) {
- audio_driver_javascript->resume();
- }
+ AudioDriverJavaScript::resume();
}
void OS_JavaScript::set_main_loop(MainLoop *p_main_loop) {
@@ -101,10 +99,10 @@ void OS_JavaScript::delete_main_loop() {
void OS_JavaScript::finalize() {
delete_main_loop();
- if (audio_driver_javascript) {
- memdelete(audio_driver_javascript);
- audio_driver_javascript = nullptr;
+ for (AudioDriverJavaScript *driver : audio_drivers) {
+ memdelete(driver);
}
+ audio_drivers.clear();
}
// Miscellaneous
@@ -229,8 +227,13 @@ OS_JavaScript::OS_JavaScript() {
setenv("LANG", locale_ptr, true);
if (AudioDriverJavaScript::is_available()) {
- audio_driver_javascript = memnew(AudioDriverJavaScript);
- AudioDriverManager::add_driver(audio_driver_javascript);
+#ifdef NO_THREADS
+ audio_drivers.push_back(memnew(AudioDriverScriptProcessor));
+#endif
+ audio_drivers.push_back(memnew(AudioDriverWorklet));
+ }
+ for (int i = 0; i < audio_drivers.size(); i++) {
+ AudioDriverManager::add_driver(audio_drivers[i]);
}
idb_available = godot_js_os_fs_is_persistent();
diff --git a/platform/javascript/os_javascript.h b/platform/javascript/os_javascript.h
index efac2dbca7..d053082d92 100644
--- a/platform/javascript/os_javascript.h
+++ b/platform/javascript/os_javascript.h
@@ -40,7 +40,7 @@
class OS_JavaScript : public OS_Unix {
MainLoop *main_loop = nullptr;
- AudioDriverJavaScript *audio_driver_javascript = nullptr;
+ List<AudioDriverJavaScript *> audio_drivers;
bool idb_is_syncing = false;
bool idb_available = false;
diff --git a/platform/osx/export/export_plugin.cpp b/platform/osx/export/export_plugin.cpp
index 54a3104482..2404c20153 100644
--- a/platform/osx/export/export_plugin.cpp
+++ b/platform/osx/export/export_plugin.cpp
@@ -95,6 +95,7 @@ void EditorExportPlatformOSX::get_export_options(List<ExportOption> *r_options)
r_options->push_back(ExportOption(PropertyInfo(Variant::INT, "codesign/entitlements/app_sandbox/files_pictures", PROPERTY_HINT_ENUM, "No,Read-only,Read-write"), 0));
r_options->push_back(ExportOption(PropertyInfo(Variant::INT, "codesign/entitlements/app_sandbox/files_music", PROPERTY_HINT_ENUM, "No,Read-only,Read-write"), 0));
r_options->push_back(ExportOption(PropertyInfo(Variant::INT, "codesign/entitlements/app_sandbox/files_movies", PROPERTY_HINT_ENUM, "No,Read-only,Read-write"), 0));
+ r_options->push_back(ExportOption(PropertyInfo(Variant::ARRAY, "codesign/entitlements/app_sandbox/helper_executables", PROPERTY_HINT_ARRAY_TYPE, itos(Variant::STRING) + "/" + itos(PROPERTY_HINT_GLOBAL_FILE) + ":"), Array()));
r_options->push_back(ExportOption(PropertyInfo(Variant::PACKED_STRING_ARRAY, "codesign/custom_options"), PackedStringArray()));
@@ -535,6 +536,8 @@ Error EditorExportPlatformOSX::export_project(const Ref<EditorExportPreset> &p_p
err = ERR_CANT_CREATE;
}
+ Array helpers = p_preset->get("codesign/entitlements/app_sandbox/helper_executables");
+
// Create our folder structure.
if (err == OK) {
print_line("Creating " + tmp_app_path_name + "/Contents/MacOS");
@@ -546,6 +549,11 @@ Error EditorExportPlatformOSX::export_project(const Ref<EditorExportPreset> &p_p
err = tmp_app_dir->make_dir_recursive(tmp_app_path_name + "/Contents/Frameworks");
}
+ if ((err == OK) && helpers.size() > 0) {
+ print_line("Creating " + tmp_app_path_name + "/Contents/Helpers");
+ err = tmp_app_dir->make_dir_recursive(tmp_app_path_name + "/Contents/Helpers");
+ }
+
if (err == OK) {
print_line("Creating " + tmp_app_path_name + "/Contents/Resources");
err = tmp_app_dir->make_dir_recursive(tmp_app_path_name + "/Contents/Resources");
@@ -688,6 +696,7 @@ Error EditorExportPlatformOSX::export_project(const Ref<EditorExportPreset> &p_p
bool sign_enabled = p_preset->get("codesign/enable");
String ent_path = p_preset->get("codesign/entitlements/custom_file");
+ String hlp_ent_path = EditorPaths::get_singleton()->get_cache_dir().plus_file(pkg_name + "_helper.entitlements");
if (sign_enabled && (ent_path == "")) {
ent_path = EditorPaths::get_singleton()->get_cache_dir().plus_file(pkg_name + ".entitlements");
@@ -819,10 +828,43 @@ Error EditorExportPlatformOSX::export_project(const Ref<EditorExportPreset> &p_p
} else {
err = ERR_CANT_CREATE;
}
+
+ if ((err == OK) && helpers.size() > 0) {
+ ent_f = FileAccess::open(hlp_ent_path, FileAccess::WRITE);
+ if (ent_f) {
+ ent_f->store_line("<?xml version=\"1.0\" encoding=\"UTF-8\"?>");
+ ent_f->store_line("<!DOCTYPE plist PUBLIC \"-//Apple//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/PropertyList-1.0.dtd\">");
+ ent_f->store_line("<plist version=\"1.0\">");
+ ent_f->store_line("<dict>");
+ ent_f->store_line("<key>com.apple.security.app-sandbox</key>");
+ ent_f->store_line("<true/>");
+ ent_f->store_line("<key>com.apple.security.inherit</key>");
+ ent_f->store_line("<true/>");
+ ent_f->store_line("</dict>");
+ ent_f->store_line("</plist>");
+
+ ent_f->close();
+ memdelete(ent_f);
+ } else {
+ err = ERR_CANT_CREATE;
+ }
+ }
+ }
+
+ if ((err == OK) && helpers.size() > 0) {
+ DirAccessRef da = DirAccess::create(DirAccess::ACCESS_FILESYSTEM);
+ for (int i = 0; i < helpers.size(); i++) {
+ String hlp_path = helpers[i];
+ err = da->copy(hlp_path, tmp_app_path_name + "/Contents/Helpers/" + hlp_path.get_file());
+ if (err == OK && sign_enabled) {
+ err = _code_sign(p_preset, tmp_app_path_name + "/Contents/Helpers/" + hlp_path.get_file(), hlp_ent_path);
+ }
+ FileAccess::set_unix_permissions(tmp_app_path_name + "/Contents/Helpers/" + hlp_path.get_file(), 0755);
+ }
}
if (err == OK) {
- DirAccess *da = DirAccess::create(DirAccess::ACCESS_FILESYSTEM);
+ DirAccessRef da = DirAccess::create(DirAccess::ACCESS_FILESYSTEM);
for (int i = 0; i < shared_objects.size(); i++) {
String src_path = ProjectSettings::get_singleton()->globalize_path(shared_objects[i].path);
if (da->dir_exists(src_path)) {
@@ -842,7 +884,6 @@ Error EditorExportPlatformOSX::export_project(const Ref<EditorExportPreset> &p_p
err = _code_sign(p_preset, tmp_app_path_name + "/Contents/Frameworks/" + src_path.get_file(), ent_path);
}
}
- memdelete(da);
}
if (sign_enabled) {
@@ -903,6 +944,9 @@ Error EditorExportPlatformOSX::export_project(const Ref<EditorExportPreset> &p_p
err = _notarize(p_preset, p_path);
}
+ // Clean up temporary entitlements files.
+ DirAccess::remove_file_or_error(hlp_ent_path);
+
// Clean up temporary .app dir.
tmp_app_dir->change_dir(tmp_app_path_name);
tmp_app_dir->erase_contents_recursive();
@@ -916,7 +960,7 @@ Error EditorExportPlatformOSX::export_project(const Ref<EditorExportPreset> &p_p
void EditorExportPlatformOSX::_zip_folder_recursive(zipFile &p_zip, const String &p_root_path, const String &p_folder, const String &p_pkg_name) {
String dir = p_root_path.plus_file(p_folder);
- DirAccess *da = DirAccess::open(dir);
+ DirAccessRef da = DirAccess::open(dir);
da->list_dir_begin();
String f;
while ((f = da->get_next()) != "") {
@@ -967,7 +1011,7 @@ void EditorExportPlatformOSX::_zip_folder_recursive(zipFile &p_zip, const String
} else if (da->current_is_dir()) {
_zip_folder_recursive(p_zip, p_root_path, p_folder.plus_file(f), p_pkg_name);
} else {
- bool is_executable = (p_folder.ends_with("MacOS") && (f == p_pkg_name));
+ bool is_executable = (p_folder.ends_with("MacOS") && (f == p_pkg_name)) || p_folder.ends_with("Helpers");
OS::Time time = OS::get_singleton()->get_time();
OS::Date date = OS::get_singleton()->get_date();
@@ -1012,7 +1056,6 @@ void EditorExportPlatformOSX::_zip_folder_recursive(zipFile &p_zip, const String
}
}
da->list_dir_end();
- memdelete(da);
}
bool EditorExportPlatformOSX::can_export(const Ref<EditorExportPreset> &p_preset, String &r_error, bool &r_missing_templates) const {
diff --git a/platform/uwp/SCsub b/platform/uwp/SCsub
index 71c402358f..8726d32d61 100644
--- a/platform/uwp/SCsub
+++ b/platform/uwp/SCsub
@@ -7,7 +7,7 @@ files = [
"#platform/windows/windows_terminal_logger.cpp",
"joypad_uwp.cpp",
"context_egl_uwp.cpp",
- "app.cpp",
+ "app_uwp.cpp",
"os_uwp.cpp",
]
diff --git a/platform/uwp/app.cpp b/platform/uwp/app_uwp.cpp
index 1da17ffc5d..50e33e6c49 100644
--- a/platform/uwp/app.cpp
+++ b/platform/uwp/app_uwp.cpp
@@ -1,5 +1,5 @@
/*************************************************************************/
-/* app.cpp */
+/* app_uwp.cpp */
/*************************************************************************/
/* This file is part of: */
/* GODOT ENGINE */
@@ -32,7 +32,7 @@
// This file demonstrates how to initialize EGL in a Windows Store app, using ICoreWindow.
//
-#include "app.h"
+#include "app_uwp.h"
#include "core/io/dir_access.h"
#include "core/io/file_access.h"
diff --git a/platform/uwp/app.h b/platform/uwp/app_uwp.h
index 0b02527dae..8d4a0b90c3 100644
--- a/platform/uwp/app.h
+++ b/platform/uwp/app_uwp.h
@@ -1,5 +1,5 @@
/*************************************************************************/
-/* app.h */
+/* app_uwp.h */
/*************************************************************************/
/* This file is part of: */
/* GODOT ENGINE */
@@ -28,7 +28,8 @@
/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
/*************************************************************************/
-#pragma once
+#ifndef APP_UWP_H
+#define APP_UWP_H
#include <string>
@@ -111,3 +112,4 @@ namespace GodotUWP
}
/* clang-format on */
+#endif // APP_UWP_H
diff --git a/platform/windows/os_windows.cpp b/platform/windows/os_windows.cpp
index 2a0a509d43..78b7be8a30 100644
--- a/platform/windows/os_windows.cpp
+++ b/platform/windows/os_windows.cpp
@@ -557,8 +557,27 @@ String OS_Windows::get_stdin_string(bool p_block) {
}
Error OS_Windows::shell_open(String p_uri) {
- ShellExecuteW(nullptr, nullptr, (LPCWSTR)(p_uri.utf16().get_data()), nullptr, nullptr, SW_SHOWNORMAL);
- return OK;
+ INT_PTR ret = (INT_PTR)ShellExecuteW(nullptr, nullptr, (LPCWSTR)(p_uri.utf16().get_data()), nullptr, nullptr, SW_SHOWNORMAL);
+ if (ret > 32) {
+ return OK;
+ } else {
+ switch (ret) {
+ case ERROR_FILE_NOT_FOUND:
+ case SE_ERR_DLLNOTFOUND:
+ return ERR_FILE_NOT_FOUND;
+ case ERROR_PATH_NOT_FOUND:
+ return ERR_FILE_BAD_PATH;
+ case ERROR_BAD_FORMAT:
+ return ERR_FILE_CORRUPT;
+ case SE_ERR_ACCESSDENIED:
+ return ERR_UNAUTHORIZED;
+ case 0:
+ case SE_ERR_OOM:
+ return ERR_OUT_OF_MEMORY;
+ default:
+ return FAILED;
+ }
+ }
}
String OS_Windows::get_locale() const {
diff --git a/scene/2d/camera_2d.cpp b/scene/2d/camera_2d.cpp
index bf91ce8e65..8195d98f55 100644
--- a/scene/2d/camera_2d.cpp
+++ b/scene/2d/camera_2d.cpp
@@ -198,7 +198,7 @@ Transform2D Camera2D::get_camera_transform() {
screen_rect.position += offset;
}
- camera_screen_center = screen_rect.position + screen_rect.size * 0.5;
+ camera_screen_center = screen_rect.get_center();
Transform2D xform;
xform.scale_basis(zoom);
diff --git a/scene/2d/cpu_particles_2d.cpp b/scene/2d/cpu_particles_2d.cpp
index b836497627..bf26ec1f20 100644
--- a/scene/2d/cpu_particles_2d.cpp
+++ b/scene/2d/cpu_particles_2d.cpp
@@ -155,7 +155,7 @@ void CPUParticles2D::_update_mesh_texture() {
Vector<Vector2> vertices;
vertices.push_back(-tex_size * 0.5);
vertices.push_back(-tex_size * 0.5 + Vector2(tex_size.x, 0));
- vertices.push_back(-tex_size * 0.5 + Vector2(tex_size.x, tex_size.y));
+ vertices.push_back(-tex_size * 0.5 + tex_size);
vertices.push_back(-tex_size * 0.5 + Vector2(0, tex_size.y));
Vector<Vector2> uvs;
AtlasTexture *atlas_texure = Object::cast_to<AtlasTexture>(*texture);
@@ -727,7 +727,7 @@ void CPUParticles2D::_particles_process(double p_delta) {
p.hue_rot_rand = Math::randf();
p.anim_offset_rand = Math::randf();
- real_t angle1_rad = Math::atan2(direction.y, direction.x) + Math::deg2rad((Math::randf() * 2.0 - 1.0) * spread);
+ real_t angle1_rad = direction.angle() + Math::deg2rad((Math::randf() * 2.0 - 1.0) * spread);
Vector2 rot = Vector2(Math::cos(angle1_rad), Math::sin(angle1_rad));
p.velocity = rot * Math::lerp(parameters_min[PARAM_INITIAL_LINEAR_VELOCITY], parameters_min[PARAM_INITIAL_LINEAR_VELOCITY], Math::randf());
diff --git a/scene/2d/navigation_region_2d.cpp b/scene/2d/navigation_region_2d.cpp
index 72ea6541e3..cbf0d50c4e 100644
--- a/scene/2d/navigation_region_2d.cpp
+++ b/scene/2d/navigation_region_2d.cpp
@@ -464,7 +464,7 @@ void NavigationRegion2D::_notification(int p_what) {
draw_line(a, b, doors_color);
// Draw a circle to illustrate the margins.
- real_t angle = (b - a).angle();
+ real_t angle = b.angle_to_point(a);
draw_arc(a, radius, angle + Math_PI / 2.0, angle - Math_PI / 2.0 + Math_TAU, 10, doors_color);
draw_arc(b, radius, angle - Math_PI / 2.0, angle + Math_PI / 2.0, 10, doors_color);
}
diff --git a/scene/2d/physical_bone_2d.cpp b/scene/2d/physical_bone_2d.cpp
index c4b2608812..48817679bc 100644
--- a/scene/2d/physical_bone_2d.cpp
+++ b/scene/2d/physical_bone_2d.cpp
@@ -150,27 +150,15 @@ void PhysicalBone2D::_start_physics_simulation() {
return;
}
- // Reset to Bone2D position
+ // Reset to Bone2D position.
_position_at_bone2d();
- // Apply the layers and masks
+ // Apply the layers and masks.
PhysicsServer2D::get_singleton()->body_set_collision_layer(get_rid(), get_collision_layer());
PhysicsServer2D::get_singleton()->body_set_collision_mask(get_rid(), get_collision_mask());
- // Apply the correct mode
- RigidDynamicBody2D::Mode rigid_mode = get_mode();
- if (rigid_mode == RigidDynamicBody2D::MODE_STATIC) {
- set_body_mode(PhysicsServer2D::BODY_MODE_STATIC);
- } else if (rigid_mode == RigidDynamicBody2D::MODE_DYNAMIC) {
- set_body_mode(PhysicsServer2D::BODY_MODE_DYNAMIC);
- } else if (rigid_mode == RigidDynamicBody2D::MODE_KINEMATIC) {
- set_body_mode(PhysicsServer2D::BODY_MODE_KINEMATIC);
- } else if (rigid_mode == RigidDynamicBody2D::MODE_DYNAMIC_LOCKED) {
- set_body_mode(PhysicsServer2D::BODY_MODE_DYNAMIC_LOCKED);
- } else {
- // Default to Dynamic.
- set_body_mode(PhysicsServer2D::BODY_MODE_DYNAMIC);
- }
+ // Apply the correct mode.
+ _apply_body_mode();
_internal_simulate_physics = true;
set_physics_process_internal(true);
diff --git a/scene/2d/physics_body_2d.cpp b/scene/2d/physics_body_2d.cpp
index 799ed47862..c07a999588 100644
--- a/scene/2d/physics_body_2d.cpp
+++ b/scene/2d/physics_body_2d.cpp
@@ -34,8 +34,8 @@
#include "scene/scene_string_names.h"
void PhysicsBody2D::_bind_methods() {
- ClassDB::bind_method(D_METHOD("move_and_collide", "rel_vec", "test_only", "safe_margin"), &PhysicsBody2D::_move, DEFVAL(false), DEFVAL(0.08));
- ClassDB::bind_method(D_METHOD("test_move", "from", "rel_vec", "collision", "safe_margin"), &PhysicsBody2D::test_move, DEFVAL(Variant()), DEFVAL(0.08));
+ ClassDB::bind_method(D_METHOD("move_and_collide", "linear_velocity", "test_only", "safe_margin"), &PhysicsBody2D::_move, DEFVAL(false), DEFVAL(0.08));
+ ClassDB::bind_method(D_METHOD("test_move", "from", "linear_velocity", "collision", "safe_margin"), &PhysicsBody2D::test_move, DEFVAL(Variant()), DEFVAL(0.08));
ClassDB::bind_method(D_METHOD("get_collision_exceptions"), &PhysicsBody2D::get_collision_exceptions);
ClassDB::bind_method(D_METHOD("add_collision_exception_with", "body"), &PhysicsBody2D::add_collision_exception_with);
@@ -57,8 +57,12 @@ PhysicsBody2D::~PhysicsBody2D() {
Ref<KinematicCollision2D> PhysicsBody2D::_move(const Vector2 &p_motion, bool p_test_only, real_t p_margin) {
PhysicsServer2D::MotionResult result;
- if (move_and_collide(p_motion, result, p_margin, p_test_only)) {
- if (motion_cache.is_null()) {
+ // Hack in order to work with calling from _process as well as from _physics_process; calling from thread is risky.
+ double delta = Engine::get_singleton()->is_in_physics_frame() ? get_physics_process_delta_time() : get_process_delta_time();
+
+ if (move_and_collide(p_motion * delta, result, p_margin, p_test_only)) {
+ // Create a new instance when the cached reference is invalid or still in use in script.
+ if (motion_cache.is_null() || motion_cache->reference_get_count() > 1) {
motion_cache.instantiate();
motion_cache->owner = this;
}
@@ -132,7 +136,10 @@ bool PhysicsBody2D::test_move(const Transform2D &p_from, const Vector2 &p_motion
r = const_cast<PhysicsServer2D::MotionResult *>(&r_collision->result);
}
- return PhysicsServer2D::get_singleton()->body_test_motion(get_rid(), p_from, p_motion, p_margin, r);
+ // Hack in order to work with calling from _process as well as from _physics_process; calling from thread is risky.
+ double delta = Engine::get_singleton()->is_in_physics_frame() ? get_physics_process_delta_time() : get_process_delta_time();
+
+ return PhysicsServer2D::get_singleton()->body_test_motion(get_rid(), p_from, p_motion * delta, p_margin, r);
}
TypedArray<PhysicsBody2D> PhysicsBody2D::get_collision_exceptions() {
@@ -429,7 +436,7 @@ void RigidDynamicBody2D::_body_state_changed_callback(void *p_instance, PhysicsD
void RigidDynamicBody2D::_body_state_changed(PhysicsDirectBodyState2D *p_state) {
set_block_transform_notify(true); // don't want notify (would feedback loop)
- if (mode != MODE_KINEMATIC) {
+ if (!freeze || freeze_mode != FREEZE_MODE_KINEMATIC) {
set_global_transform(p_state->get_transform());
}
@@ -523,29 +530,60 @@ void RigidDynamicBody2D::_body_state_changed(PhysicsDirectBodyState2D *p_state)
}
}
-void RigidDynamicBody2D::set_mode(Mode p_mode) {
- mode = p_mode;
- switch (p_mode) {
- case MODE_DYNAMIC: {
- set_body_mode(PhysicsServer2D::BODY_MODE_DYNAMIC);
- } break;
- case MODE_STATIC: {
- set_body_mode(PhysicsServer2D::BODY_MODE_STATIC);
+void RigidDynamicBody2D::_apply_body_mode() {
+ if (freeze) {
+ switch (freeze_mode) {
+ case FREEZE_MODE_STATIC: {
+ set_body_mode(PhysicsServer2D::BODY_MODE_STATIC);
+ } break;
+ case FREEZE_MODE_KINEMATIC: {
+ set_body_mode(PhysicsServer2D::BODY_MODE_KINEMATIC);
+ } break;
+ }
+ } else if (lock_rotation) {
+ set_body_mode(PhysicsServer2D::BODY_MODE_DYNAMIC_LINEAR);
+ } else {
+ set_body_mode(PhysicsServer2D::BODY_MODE_DYNAMIC);
+ }
+}
- } break;
- case MODE_KINEMATIC: {
- set_body_mode(PhysicsServer2D::BODY_MODE_KINEMATIC);
+void RigidDynamicBody2D::set_lock_rotation_enabled(bool p_lock_rotation) {
+ if (p_lock_rotation == lock_rotation) {
+ return;
+ }
- } break;
- case MODE_DYNAMIC_LOCKED: {
- set_body_mode(PhysicsServer2D::BODY_MODE_DYNAMIC_LOCKED);
+ lock_rotation = p_lock_rotation;
+ _apply_body_mode();
+}
- } break;
+bool RigidDynamicBody2D::is_lock_rotation_enabled() const {
+ return lock_rotation;
+}
+
+void RigidDynamicBody2D::set_freeze_enabled(bool p_freeze) {
+ if (p_freeze == freeze) {
+ return;
+ }
+
+ freeze = p_freeze;
+ _apply_body_mode();
+}
+
+bool RigidDynamicBody2D::is_freeze_enabled() const {
+ return freeze;
+}
+
+void RigidDynamicBody2D::set_freeze_mode(FreezeMode p_freeze_mode) {
+ if (p_freeze_mode == freeze_mode) {
+ return;
}
+
+ freeze_mode = p_freeze_mode;
+ _apply_body_mode();
}
-RigidDynamicBody2D::Mode RigidDynamicBody2D::get_mode() const {
- return mode;
+RigidDynamicBody2D::FreezeMode RigidDynamicBody2D::get_freeze_mode() const {
+ return freeze_mode;
}
void RigidDynamicBody2D::set_mass(real_t p_mass) {
@@ -843,17 +881,14 @@ TypedArray<String> RigidDynamicBody2D::get_configuration_warnings() const {
TypedArray<String> warnings = CollisionObject2D::get_configuration_warnings();
- if ((get_mode() == MODE_DYNAMIC || get_mode() == MODE_DYNAMIC_LOCKED) && (ABS(t.elements[0].length() - 1.0) > 0.05 || ABS(t.elements[1].length() - 1.0) > 0.05)) {
- warnings.push_back(TTR("Size changes to RigidDynamicBody2D (in dynamic modes) will be overridden by the physics engine when running.\nChange the size in children collision shapes instead."));
+ if (ABS(t.elements[0].length() - 1.0) > 0.05 || ABS(t.elements[1].length() - 1.0) > 0.05) {
+ warnings.push_back(TTR("Size changes to RigidDynamicBody2D will be overridden by the physics engine when running.\nChange the size in children collision shapes instead."));
}
return warnings;
}
void RigidDynamicBody2D::_bind_methods() {
- ClassDB::bind_method(D_METHOD("set_mode", "mode"), &RigidDynamicBody2D::set_mode);
- ClassDB::bind_method(D_METHOD("get_mode"), &RigidDynamicBody2D::get_mode);
-
ClassDB::bind_method(D_METHOD("set_mass", "mass"), &RigidDynamicBody2D::set_mass);
ClassDB::bind_method(D_METHOD("get_mass"), &RigidDynamicBody2D::get_mass);
@@ -917,11 +952,19 @@ void RigidDynamicBody2D::_bind_methods() {
ClassDB::bind_method(D_METHOD("set_can_sleep", "able_to_sleep"), &RigidDynamicBody2D::set_can_sleep);
ClassDB::bind_method(D_METHOD("is_able_to_sleep"), &RigidDynamicBody2D::is_able_to_sleep);
+ ClassDB::bind_method(D_METHOD("set_lock_rotation_enabled", "lock_rotation"), &RigidDynamicBody2D::set_lock_rotation_enabled);
+ ClassDB::bind_method(D_METHOD("is_lock_rotation_enabled"), &RigidDynamicBody2D::is_lock_rotation_enabled);
+
+ ClassDB::bind_method(D_METHOD("set_freeze_enabled", "freeze_mode"), &RigidDynamicBody2D::set_freeze_enabled);
+ ClassDB::bind_method(D_METHOD("is_freeze_enabled"), &RigidDynamicBody2D::is_freeze_enabled);
+
+ ClassDB::bind_method(D_METHOD("set_freeze_mode", "freeze_mode"), &RigidDynamicBody2D::set_freeze_mode);
+ ClassDB::bind_method(D_METHOD("get_freeze_mode"), &RigidDynamicBody2D::get_freeze_mode);
+
ClassDB::bind_method(D_METHOD("get_colliding_bodies"), &RigidDynamicBody2D::get_colliding_bodies);
GDVIRTUAL_BIND(_integrate_forces, "state");
- ADD_PROPERTY(PropertyInfo(Variant::INT, "mode", PROPERTY_HINT_ENUM, "Dynamic,Static,DynamicLocked,Kinematic"), "set_mode", "get_mode");
ADD_PROPERTY(PropertyInfo(Variant::FLOAT, "mass", PROPERTY_HINT_RANGE, "0.01,1000,0.01,or_greater,exp"), "set_mass", "get_mass");
ADD_PROPERTY(PropertyInfo(Variant::FLOAT, "inertia", PROPERTY_HINT_RANGE, "0,1000,0.01,or_greater,exp"), "set_inertia", "get_inertia");
ADD_PROPERTY(PropertyInfo(Variant::INT, "center_of_mass_mode", PROPERTY_HINT_ENUM, "Auto,Custom", PROPERTY_USAGE_DEFAULT | PROPERTY_USAGE_UPDATE_ALL_IF_MODIFIED), "set_center_of_mass_mode", "get_center_of_mass_mode");
@@ -935,6 +978,9 @@ void RigidDynamicBody2D::_bind_methods() {
ADD_PROPERTY(PropertyInfo(Variant::BOOL, "contact_monitor"), "set_contact_monitor", "is_contact_monitor_enabled");
ADD_PROPERTY(PropertyInfo(Variant::BOOL, "sleeping"), "set_sleeping", "is_sleeping");
ADD_PROPERTY(PropertyInfo(Variant::BOOL, "can_sleep"), "set_can_sleep", "is_able_to_sleep");
+ ADD_PROPERTY(PropertyInfo(Variant::BOOL, "lock_rotation"), "set_lock_rotation_enabled", "is_lock_rotation_enabled");
+ ADD_PROPERTY(PropertyInfo(Variant::BOOL, "freeze"), "set_freeze_enabled", "is_freeze_enabled");
+ ADD_PROPERTY(PropertyInfo(Variant::INT, "freeze_mode", PROPERTY_HINT_ENUM, "Static,Kinematic"), "set_freeze_mode", "get_freeze_mode");
ADD_GROUP("Linear", "linear_");
ADD_PROPERTY(PropertyInfo(Variant::VECTOR2, "linear_velocity"), "set_linear_velocity", "get_linear_velocity");
ADD_PROPERTY(PropertyInfo(Variant::FLOAT, "linear_damp", PROPERTY_HINT_RANGE, "-1,100,0.001,or_greater"), "set_linear_damp", "get_linear_damp");
@@ -951,10 +997,8 @@ void RigidDynamicBody2D::_bind_methods() {
ADD_SIGNAL(MethodInfo("body_exited", PropertyInfo(Variant::OBJECT, "body", PROPERTY_HINT_RESOURCE_TYPE, "Node")));
ADD_SIGNAL(MethodInfo("sleeping_state_changed"));
- BIND_ENUM_CONSTANT(MODE_DYNAMIC);
- BIND_ENUM_CONSTANT(MODE_STATIC);
- BIND_ENUM_CONSTANT(MODE_DYNAMIC_LOCKED);
- BIND_ENUM_CONSTANT(MODE_KINEMATIC);
+ BIND_ENUM_CONSTANT(FREEZE_MODE_STATIC);
+ BIND_ENUM_CONSTANT(FREEZE_MODE_KINEMATIC);
BIND_ENUM_CONSTANT(CENTER_OF_MASS_MODE_AUTO);
BIND_ENUM_CONSTANT(CENTER_OF_MASS_MODE_CUSTOM);
@@ -1089,9 +1133,7 @@ void CharacterBody2D::_move_and_slide_grounded(double p_delta, bool p_was_on_flo
if (on_floor && floor_stop_on_slope && (linear_velocity.normalized() + up_direction).length() < 0.01) {
Transform2D gt = get_global_transform();
- if (result.travel.length() > margin) {
- gt.elements[2] -= result.travel.slide(up_direction);
- } else {
+ if (result.travel.length() <= margin + CMP_EPSILON) {
gt.elements[2] -= result.travel;
}
set_global_transform(gt);
@@ -1110,7 +1152,7 @@ void CharacterBody2D::_move_and_slide_grounded(double p_delta, bool p_was_on_flo
// Avoid to move forward on a wall if floor_block_on_wall is true.
if (p_was_on_floor && !on_floor && !vel_dir_facing_up) {
// If the movement is large the body can be prevented from reaching the walls.
- if (result.travel.length() <= margin) {
+ if (result.travel.length() <= margin + CMP_EPSILON) {
// Cancels the motion.
Transform2D gt = get_global_transform();
gt.elements[2] -= result.travel;
@@ -1239,13 +1281,16 @@ void CharacterBody2D::_move_and_slide_free(double p_delta) {
}
void CharacterBody2D::_snap_on_floor(bool was_on_floor, bool vel_dir_facing_up) {
- if (Math::is_equal_approx(floor_snap_length, 0) || on_floor || !was_on_floor || vel_dir_facing_up) {
+ if (on_floor || !was_on_floor || vel_dir_facing_up) {
return;
}
+ // Snap by at least collision margin to keep floor state consistent.
+ real_t length = MAX(floor_snap_length, margin);
+
Transform2D gt = get_global_transform();
PhysicsServer2D::MotionResult result;
- if (move_and_collide(up_direction * -floor_snap_length, result, margin, true, false, true)) {
+ if (move_and_collide(-up_direction * length, result, margin, true, false, true)) {
bool apply = true;
if (result.get_angle(up_direction) <= floor_max_angle + FLOOR_ANGLE_THRESHOLD) {
on_floor = true;
@@ -1273,12 +1318,15 @@ void CharacterBody2D::_snap_on_floor(bool was_on_floor, bool vel_dir_facing_up)
}
bool CharacterBody2D::_on_floor_if_snapped(bool was_on_floor, bool vel_dir_facing_up) {
- if (Math::is_equal_approx(floor_snap_length, 0) || up_direction == Vector2() || on_floor || !was_on_floor || vel_dir_facing_up) {
+ if (up_direction == Vector2() || on_floor || !was_on_floor || vel_dir_facing_up) {
return false;
}
+ // Snap by at least collision margin to keep floor state consistent.
+ real_t length = MAX(floor_snap_length, margin);
+
PhysicsServer2D::MotionResult result;
- if (move_and_collide(up_direction * -floor_snap_length, result, margin, true, false, true)) {
+ if (move_and_collide(-up_direction * length, result, margin, true, false, true)) {
if (result.get_angle(up_direction) <= floor_max_angle + FLOOR_ANGLE_THRESHOLD) {
return true;
}
@@ -1369,7 +1417,8 @@ Ref<KinematicCollision2D> CharacterBody2D::_get_slide_collision(int p_bounce) {
slide_colliders.resize(p_bounce + 1);
}
- if (slide_colliders[p_bounce].is_null()) {
+ // Create a new instance when the cached reference is invalid or still in use in script.
+ if (slide_colliders[p_bounce].is_null() || slide_colliders[p_bounce]->reference_get_count() > 1) {
slide_colliders.write[p_bounce].instantiate();
slide_colliders.write[p_bounce]->owner = this;
}
@@ -1566,7 +1615,7 @@ void CharacterBody2D::_bind_methods() {
ADD_PROPERTY(PropertyInfo(Variant::BOOL, "floor_constant_speed"), "set_floor_constant_speed_enabled", "is_floor_constant_speed_enabled");
ADD_PROPERTY(PropertyInfo(Variant::BOOL, "floor_block_on_wall"), "set_floor_block_on_wall_enabled", "is_floor_block_on_wall_enabled");
ADD_PROPERTY(PropertyInfo(Variant::FLOAT, "floor_max_angle", PROPERTY_HINT_RANGE, "0,180,0.1,radians"), "set_floor_max_angle", "get_floor_max_angle");
- ADD_PROPERTY(PropertyInfo(Variant::FLOAT, "floor_snap_length", PROPERTY_HINT_RANGE, "0,1000,0.1"), "set_floor_snap_length", "get_floor_snap_length");
+ ADD_PROPERTY(PropertyInfo(Variant::FLOAT, "floor_snap_length", PROPERTY_HINT_RANGE, "0,32,0.1,or_greater"), "set_floor_snap_length", "get_floor_snap_length");
ADD_GROUP("Moving platform", "moving_platform");
ADD_PROPERTY(PropertyInfo(Variant::INT, "moving_platform_floor_layers", PROPERTY_HINT_LAYERS_2D_PHYSICS), "set_moving_platform_floor_layers", "get_moving_platform_floor_layers");
ADD_PROPERTY(PropertyInfo(Variant::INT, "moving_platform_wall_layers", PROPERTY_HINT_LAYERS_2D_PHYSICS), "set_moving_platform_wall_layers", "get_moving_platform_wall_layers");
diff --git a/scene/2d/physics_body_2d.h b/scene/2d/physics_body_2d.h
index e9930b13a0..e789ac4cb7 100644
--- a/scene/2d/physics_body_2d.h
+++ b/scene/2d/physics_body_2d.h
@@ -92,7 +92,7 @@ class AnimatableBody2D : public StaticBody2D {
GDCLASS(AnimatableBody2D, StaticBody2D);
private:
- bool sync_to_physics = false;
+ bool sync_to_physics = true;
Transform2D last_valid_transform;
@@ -117,11 +117,9 @@ class RigidDynamicBody2D : public PhysicsBody2D {
GDCLASS(RigidDynamicBody2D, PhysicsBody2D);
public:
- enum Mode {
- MODE_DYNAMIC,
- MODE_STATIC,
- MODE_DYNAMIC_LOCKED,
- MODE_KINEMATIC,
+ enum FreezeMode {
+ FREEZE_MODE_STATIC,
+ FREEZE_MODE_KINEMATIC,
};
enum CenterOfMassMode {
@@ -137,7 +135,9 @@ public:
private:
bool can_sleep = true;
- Mode mode = MODE_DYNAMIC;
+ bool lock_rotation = false;
+ bool freeze = false;
+ FreezeMode freeze_mode = FREEZE_MODE_STATIC;
real_t mass = 1.0;
real_t inertia = 0.0;
@@ -211,9 +211,17 @@ protected:
GDVIRTUAL1(_integrate_forces, PhysicsDirectBodyState2D *)
+ void _apply_body_mode();
+
public:
- void set_mode(Mode p_mode);
- Mode get_mode() const;
+ void set_lock_rotation_enabled(bool p_lock_rotation);
+ bool is_lock_rotation_enabled() const;
+
+ void set_freeze_enabled(bool p_freeze);
+ bool is_freeze_enabled() const;
+
+ void set_freeze_mode(FreezeMode p_freeze_mode);
+ FreezeMode get_freeze_mode() const;
void set_mass(real_t p_mass);
real_t get_mass() const;
@@ -290,7 +298,7 @@ private:
void _reload_physics_characteristics();
};
-VARIANT_ENUM_CAST(RigidDynamicBody2D::Mode);
+VARIANT_ENUM_CAST(RigidDynamicBody2D::FreezeMode);
VARIANT_ENUM_CAST(RigidDynamicBody2D::CenterOfMassMode);
VARIANT_ENUM_CAST(RigidDynamicBody2D::CCDMode);
@@ -327,14 +335,14 @@ private:
real_t margin = 0.08;
MotionMode motion_mode = MOTION_MODE_GROUNDED;
- bool floor_stop_on_slope = false;
bool floor_constant_speed = false;
+ bool floor_stop_on_slope = true;
bool floor_block_on_wall = true;
bool slide_on_ceiling = true;
int max_slides = 4;
int platform_layer;
real_t floor_max_angle = Math::deg2rad((real_t)45.0);
- float floor_snap_length = 0;
+ real_t floor_snap_length = 1;
real_t free_mode_min_slide_angle = Math::deg2rad((real_t)15.0);
Vector2 up_direction = Vector2(0.0, -1.0);
uint32_t moving_platform_floor_layers = UINT32_MAX;
diff --git a/scene/2d/skeleton_2d.cpp b/scene/2d/skeleton_2d.cpp
index 4bbbc3575d..63a0fb9b89 100644
--- a/scene/2d/skeleton_2d.cpp
+++ b/scene/2d/skeleton_2d.cpp
@@ -456,7 +456,7 @@ void Bone2D::calculate_length_and_rotation() {
if (child) {
Vector2 child_local_pos = to_local(child->get_global_position());
length = child_local_pos.length();
- bone_angle = Math::atan2(child_local_pos.normalized().y, child_local_pos.normalized().x);
+ bone_angle = child_local_pos.normalized().angle();
calculated = true;
break;
}
diff --git a/scene/2d/tile_map.cpp b/scene/2d/tile_map.cpp
index a139a92ab4..78d018ac53 100644
--- a/scene/2d/tile_map.cpp
+++ b/scene/2d/tile_map.cpp
@@ -452,6 +452,19 @@ int TileMap::get_layer_z_index(int p_layer) const {
return layers[p_layer].z_index;
}
+void TileMap::set_collision_animatable(bool p_enabled) {
+ collision_animatable = p_enabled;
+ _clear_internals();
+ set_notify_local_transform(p_enabled);
+ set_physics_process_internal(p_enabled);
+ _recreate_internals();
+ emit_signal(SNAME("changed"));
+}
+
+bool TileMap::is_collision_animatable() const {
+ return collision_animatable;
+}
+
void TileMap::set_collision_visibility_mode(TileMap::VisibilityMode p_show_collision) {
collision_visibility_mode = p_show_collision;
_clear_internals();
@@ -508,7 +521,6 @@ Map<Vector2i, TileMapQuadrant>::Element *TileMap::_create_quadrant(int p_layer,
// Call the create_quadrant method on plugins
if (tile_set.is_valid()) {
_rendering_create_quadrant(&q);
- _physics_create_quadrant(&q);
}
return layers[p_layer].quadrant_map.insert(p_qk, q);
@@ -891,7 +903,7 @@ void TileMap::_rendering_update_dirty_quadrants(SelfList<TileMapQuadrant>::List
modulate.a *= 0.3;
}
}
- draw_tile(canvas_item, E_cell->key() - position, tile_set, c.source_id, c.get_atlas_coords(), c.alternative_tile, modulate);
+ draw_tile(canvas_item, E_cell->key() - position, tile_set, c.source_id, c.get_atlas_coords(), c.alternative_tile, -1, modulate);
// --- Occluders ---
for (int i = 0; i < tile_set->get_occlusion_layers_count(); i++) {
@@ -1008,15 +1020,19 @@ void TileMap::_rendering_draw_quadrant_debug(TileMapQuadrant *p_quadrant) {
}
}
-void TileMap::draw_tile(RID p_canvas_item, Vector2i p_position, const Ref<TileSet> p_tile_set, int p_atlas_source_id, Vector2i p_atlas_coords, int p_alternative_tile, Color p_modulation) {
+void TileMap::draw_tile(RID p_canvas_item, Vector2i p_position, const Ref<TileSet> p_tile_set, int p_atlas_source_id, Vector2i p_atlas_coords, int p_alternative_tile, int p_frame, Color p_modulation) {
ERR_FAIL_COND(!p_tile_set.is_valid());
ERR_FAIL_COND(!p_tile_set->has_source(p_atlas_source_id));
ERR_FAIL_COND(!p_tile_set->get_source(p_atlas_source_id)->has_tile(p_atlas_coords));
ERR_FAIL_COND(!p_tile_set->get_source(p_atlas_source_id)->has_alternative_tile(p_atlas_coords, p_alternative_tile));
-
TileSetSource *source = *p_tile_set->get_source(p_atlas_source_id);
TileSetAtlasSource *atlas_source = Object::cast_to<TileSetAtlasSource>(source);
if (atlas_source) {
+ // Check for the frame.
+ if (p_frame >= 0) {
+ ERR_FAIL_INDEX(p_frame, atlas_source->get_tile_animation_frames_count(p_atlas_coords));
+ }
+
// Get the texture.
Ref<Texture2D> tex = atlas_source->get_texture();
if (!tex.is_valid()) {
@@ -1032,13 +1048,15 @@ void TileMap::draw_tile(RID p_canvas_item, Vector2i p_position, const Ref<TileSe
// Get tile data.
TileData *tile_data = Object::cast_to<TileData>(atlas_source->get_tile_data(p_atlas_coords, p_alternative_tile));
- // Compute the offset
- Rect2i source_rect = atlas_source->get_tile_texture_region(p_atlas_coords);
+ // Get the tile modulation.
+ Color modulate = tile_data->get_modulate() * p_modulation;
+
+ // Compute the offset.
Vector2i tile_offset = atlas_source->get_tile_effective_texture_offset(p_atlas_coords, p_alternative_tile);
- // Compute the destination rectangle in the CanvasItem.
+ // Get destination rect.
Rect2 dest_rect;
- dest_rect.size = source_rect.size;
+ dest_rect.size = atlas_source->get_tile_texture_region(p_atlas_coords).size;
dest_rect.size.x += FP_ADJUST;
dest_rect.size.y += FP_ADJUST;
@@ -1057,12 +1075,28 @@ void TileMap::draw_tile(RID p_canvas_item, Vector2i p_position, const Ref<TileSe
dest_rect.size.y = -dest_rect.size.y;
}
- // Get the tile modulation.
- Color modulate = tile_data->get_modulate();
- modulate = Color(modulate.r * p_modulation.r, modulate.g * p_modulation.g, modulate.b * p_modulation.b, modulate.a * p_modulation.a);
-
// Draw the tile.
- tex->draw_rect_region(p_canvas_item, dest_rect, source_rect, modulate, transpose, p_tile_set->is_uv_clipping());
+ if (p_frame >= 0) {
+ Rect2i source_rect = atlas_source->get_tile_texture_region(p_atlas_coords, p_frame);
+ tex->draw_rect_region(p_canvas_item, dest_rect, source_rect, modulate, transpose, p_tile_set->is_uv_clipping());
+ } else if (atlas_source->get_tile_animation_frames_count(p_atlas_coords) == 1) {
+ Rect2i source_rect = atlas_source->get_tile_texture_region(p_atlas_coords, 0);
+ tex->draw_rect_region(p_canvas_item, dest_rect, source_rect, modulate, transpose, p_tile_set->is_uv_clipping());
+ } else {
+ real_t speed = atlas_source->get_tile_animation_speed(p_atlas_coords);
+ real_t animation_duration = atlas_source->get_tile_animation_total_duration(p_atlas_coords) / speed;
+ real_t time = 0.0;
+ for (int frame = 0; frame < atlas_source->get_tile_animation_frames_count(p_atlas_coords); frame++) {
+ real_t frame_duration = atlas_source->get_tile_animation_frame_duration(p_atlas_coords, frame) / speed;
+ RenderingServer::get_singleton()->canvas_item_add_animation_slice(p_canvas_item, animation_duration, time, time + frame_duration, 0.0);
+
+ Rect2i source_rect = atlas_source->get_tile_texture_region(p_atlas_coords, frame);
+ tex->draw_rect_region(p_canvas_item, dest_rect, source_rect, modulate, transpose, p_tile_set->is_uv_clipping());
+
+ time += frame_duration;
+ }
+ RenderingServer::get_singleton()->canvas_item_add_animation_slice(p_canvas_item, 1.0, 0.0, 1.0, 0.0);
+ }
}
}
@@ -1070,24 +1104,67 @@ void TileMap::draw_tile(RID p_canvas_item, Vector2i p_position, const Ref<TileSe
void TileMap::_physics_notification(int p_what) {
switch (p_what) {
+ case CanvasItem::NOTIFICATION_INTERNAL_PHYSICS_PROCESS: {
+ bool in_editor = false;
+#ifdef TOOLS_ENABLED
+ in_editor = Engine::get_singleton()->is_editor_hint();
+#endif
+ if (is_inside_tree() && collision_animatable && !in_editor) {
+ // Update tranform on the physics tick when in animatable mode.
+ last_valid_transform = new_transform;
+ set_notify_local_transform(false);
+ set_global_transform(new_transform);
+ set_notify_local_transform(true);
+ }
+ } break;
case CanvasItem::NOTIFICATION_TRANSFORM_CHANGED: {
- // Update the bodies transforms.
- if (is_inside_tree()) {
+ bool in_editor = false;
+#ifdef TOOLS_ENABLED
+ in_editor = Engine::get_singleton()->is_editor_hint();
+#endif
+ if (is_inside_tree() && (!collision_animatable || in_editor)) {
+ // Update the new transform directly if we are not in animatable mode.
+ Transform2D global_transform = get_global_transform();
for (int layer = 0; layer < (int)layers.size(); layer++) {
- Transform2D global_transform = get_global_transform();
+ for (Map<Vector2i, TileMapQuadrant>::Element *E = layers[layer].quadrant_map.front(); E; E = E->next()) {
+ TileMapQuadrant &q = E->get();
+ for (RID body : q.bodies) {
+ Transform2D xform;
+ xform.set_origin(map_to_world(bodies_coords[body]));
+ xform = global_transform * xform;
+ PhysicsServer2D::get_singleton()->body_set_state(body, PhysicsServer2D::BODY_STATE_TRANSFORM, xform);
+ }
+ }
+ }
+ }
+ } break;
+ case NOTIFICATION_LOCAL_TRANSFORM_CHANGED: {
+ bool in_editor = false;
+#ifdef TOOLS_ENABLED
+ in_editor = Engine::get_singleton()->is_editor_hint();
+#endif
+ if (is_inside_tree() && !in_editor && collision_animatable) {
+ // Only active when animatable. Send the new transform to the physics...
+ new_transform = get_global_transform();
+ for (int layer = 0; layer < (int)layers.size(); layer++) {
for (Map<Vector2i, TileMapQuadrant>::Element *E = layers[layer].quadrant_map.front(); E; E = E->next()) {
TileMapQuadrant &q = E->get();
- Transform2D xform;
- xform.set_origin(map_to_world(E->key() * get_effective_quadrant_size(layer)));
- xform = global_transform * xform;
+ for (RID body : q.bodies) {
+ Transform2D xform;
+ xform.set_origin(map_to_world(bodies_coords[body]));
+ xform = new_transform * xform;
- for (int body_index = 0; body_index < q.bodies.size(); body_index++) {
- PhysicsServer2D::get_singleton()->body_set_state(q.bodies[body_index], PhysicsServer2D::BODY_STATE_TRANSFORM, xform);
+ PhysicsServer2D::get_singleton()->body_set_state(body, PhysicsServer2D::BODY_STATE_TRANSFORM, xform);
}
}
}
+
+ // ... but then revert changes.
+ set_notify_local_transform(false);
+ set_global_transform(last_valid_transform);
+ set_notify_local_transform(true);
}
} break;
}
@@ -1098,29 +1175,23 @@ void TileMap::_physics_update_dirty_quadrants(SelfList<TileMapQuadrant>::List &r
ERR_FAIL_COND(!tile_set.is_valid());
Transform2D global_transform = get_global_transform();
+ last_valid_transform = global_transform;
+ new_transform = global_transform;
PhysicsServer2D *ps = PhysicsServer2D::get_singleton();
+ RID space = get_world_2d()->get_space();
SelfList<TileMapQuadrant> *q_list_element = r_dirty_quadrant_list.first();
while (q_list_element) {
TileMapQuadrant &q = *q_list_element->self();
- Vector2 quadrant_pos = map_to_world(q.coords * get_effective_quadrant_size(q.layer));
-
- LocalVector<int> body_shape_count;
- body_shape_count.resize(q.bodies.size());
-
- // Clear shapes.
- for (int body_index = 0; body_index < q.bodies.size(); body_index++) {
- ps->body_clear_shapes(q.bodies[body_index]);
- body_shape_count[body_index] = 0;
-
- // Position the bodies.
- Transform2D xform;
- xform.set_origin(quadrant_pos);
- xform = global_transform * xform;
- ps->body_set_state(q.bodies[body_index], PhysicsServer2D::BODY_STATE_TRANSFORM, xform);
+ // Clear bodies.
+ for (RID body : q.bodies) {
+ bodies_coords.erase(body);
+ ps->free(body);
}
+ q.bodies.clear();
+ // Recreate bodies and shapes.
for (Set<Vector2i>::Element *E_cell = q.cells.front(); E_cell; E_cell = E_cell->next()) {
TileMapCell c = get_cell(q.layer, E_cell->get(), true);
@@ -1136,26 +1207,53 @@ void TileMap::_physics_update_dirty_quadrants(SelfList<TileMapQuadrant>::List &r
if (atlas_source) {
TileData *tile_data = Object::cast_to<TileData>(atlas_source->get_tile_data(c.get_atlas_coords(), c.alternative_tile));
- for (int body_index = 0; body_index < q.bodies.size(); body_index++) {
- int &body_shape_index = body_shape_count[body_index];
+ for (int tile_set_physics_layer = 0; tile_set_physics_layer < tile_set->get_physics_layers_count(); tile_set_physics_layer++) {
+ Ref<PhysicsMaterial> physics_material = tile_set->get_physics_layer_physics_material(tile_set_physics_layer);
+ uint32_t physics_layer = tile_set->get_physics_layer_collision_layer(tile_set_physics_layer);
+ uint32_t physics_mask = tile_set->get_physics_layer_collision_mask(tile_set_physics_layer);
- // Add the shapes again.
- for (int polygon_index = 0; polygon_index < tile_data->get_collision_polygons_count(body_index); polygon_index++) {
- bool one_way_collision = tile_data->is_collision_polygon_one_way(body_index, polygon_index);
- float one_way_collision_margin = tile_data->get_collision_polygon_one_way_margin(body_index, polygon_index);
+ // Create the body.
+ RID body = ps->body_create();
+ bodies_coords[body] = E_cell->get();
+ ps->body_set_mode(body, collision_animatable ? PhysicsServer2D::BODY_MODE_KINEMATIC : PhysicsServer2D::BODY_MODE_STATIC);
+ ps->body_set_space(body, space);
- int shapes_count = tile_data->get_collision_polygon_shapes_count(body_index, polygon_index);
- for (int shape_index = 0; shape_index < shapes_count; shape_index++) {
- Transform2D xform = Transform2D();
- xform.set_origin(map_to_world(E_cell->get()) - quadrant_pos);
+ Transform2D xform;
+ xform.set_origin(map_to_world(E_cell->get()));
+ xform = global_transform * xform;
+ ps->body_set_state(body, PhysicsServer2D::BODY_STATE_TRANSFORM, xform);
+
+ ps->body_attach_object_instance_id(body, get_instance_id());
+ ps->body_set_collision_layer(body, physics_layer);
+ ps->body_set_collision_mask(body, physics_mask);
+ ps->body_set_pickable(body, false);
+ ps->body_set_state(body, PhysicsServer2D::BODY_STATE_LINEAR_VELOCITY, tile_data->get_constant_linear_velocity(tile_set_physics_layer));
+ ps->body_set_state(body, PhysicsServer2D::BODY_STATE_ANGULAR_VELOCITY, tile_data->get_constant_angular_velocity(tile_set_physics_layer));
+
+ if (!physics_material.is_valid()) {
+ ps->body_set_param(body, PhysicsServer2D::BODY_PARAM_BOUNCE, 0);
+ ps->body_set_param(body, PhysicsServer2D::BODY_PARAM_FRICTION, 1);
+ } else {
+ ps->body_set_param(body, PhysicsServer2D::BODY_PARAM_BOUNCE, physics_material->computed_bounce());
+ ps->body_set_param(body, PhysicsServer2D::BODY_PARAM_FRICTION, physics_material->computed_friction());
+ }
+ q.bodies.push_back(body);
+
+ // Add the shapes to the body.
+ int body_shape_index = 0;
+ for (int polygon_index = 0; polygon_index < tile_data->get_collision_polygons_count(tile_set_physics_layer); polygon_index++) {
+ // Iterate over the polygons.
+ bool one_way_collision = tile_data->is_collision_polygon_one_way(tile_set_physics_layer, polygon_index);
+ float one_way_collision_margin = tile_data->get_collision_polygon_one_way_margin(tile_set_physics_layer, polygon_index);
+ int shapes_count = tile_data->get_collision_polygon_shapes_count(tile_set_physics_layer, polygon_index);
+ for (int shape_index = 0; shape_index < shapes_count; shape_index++) {
// Add decomposed convex shapes.
- Ref<ConvexPolygonShape2D> shape = tile_data->get_collision_polygon_shape(body_index, polygon_index, shape_index);
- ps->body_add_shape(q.bodies[body_index], shape->get_rid(), xform);
- ps->body_set_shape_metadata(q.bodies[body_index], body_shape_index, E_cell->get());
- ps->body_set_shape_as_one_way_collision(q.bodies[body_index], body_shape_index, one_way_collision, one_way_collision_margin);
+ Ref<ConvexPolygonShape2D> shape = tile_data->get_collision_polygon_shape(tile_set_physics_layer, polygon_index, shape_index);
+ ps->body_add_shape(body, shape->get_rid());
+ ps->body_set_shape_as_one_way_collision(body, body_shape_index, one_way_collision, one_way_collision_margin);
- ++body_shape_index;
+ body_shape_index++;
}
}
}
@@ -1167,54 +1265,11 @@ void TileMap::_physics_update_dirty_quadrants(SelfList<TileMapQuadrant>::List &r
}
}
-void TileMap::_physics_create_quadrant(TileMapQuadrant *p_quadrant) {
- ERR_FAIL_COND(!tile_set.is_valid());
-
- //Get the TileMap's gobla transform.
- Transform2D global_transform;
- if (is_inside_tree()) {
- global_transform = get_global_transform();
- }
-
- // Clear all bodies.
- p_quadrant->bodies.clear();
-
- // Create the body and set its parameters.
- for (int layer = 0; layer < tile_set->get_physics_layers_count(); layer++) {
- RID body = PhysicsServer2D::get_singleton()->body_create();
- PhysicsServer2D::get_singleton()->body_set_mode(body, PhysicsServer2D::BODY_MODE_STATIC);
-
- PhysicsServer2D::get_singleton()->body_attach_object_instance_id(body, get_instance_id());
- PhysicsServer2D::get_singleton()->body_set_collision_layer(body, tile_set->get_physics_layer_collision_layer(layer));
- PhysicsServer2D::get_singleton()->body_set_collision_mask(body, tile_set->get_physics_layer_collision_mask(layer));
-
- Ref<PhysicsMaterial> physics_material = tile_set->get_physics_layer_physics_material(layer);
- if (!physics_material.is_valid()) {
- PhysicsServer2D::get_singleton()->body_set_param(body, PhysicsServer2D::BODY_PARAM_BOUNCE, 0);
- PhysicsServer2D::get_singleton()->body_set_param(body, PhysicsServer2D::BODY_PARAM_FRICTION, 1);
- } else {
- PhysicsServer2D::get_singleton()->body_set_param(body, PhysicsServer2D::BODY_PARAM_BOUNCE, physics_material->computed_bounce());
- PhysicsServer2D::get_singleton()->body_set_param(body, PhysicsServer2D::BODY_PARAM_FRICTION, physics_material->computed_friction());
- }
-
- if (is_inside_tree()) {
- RID space = get_world_2d()->get_space();
- PhysicsServer2D::get_singleton()->body_set_space(body, space);
-
- Transform2D xform;
- xform.set_origin(map_to_world(p_quadrant->coords * get_effective_quadrant_size(p_quadrant->layer)));
- xform = global_transform * xform;
- PhysicsServer2D::get_singleton()->body_set_state(body, PhysicsServer2D::BODY_STATE_TRANSFORM, xform);
- }
-
- p_quadrant->bodies.push_back(body);
- }
-}
-
void TileMap::_physics_cleanup_quadrant(TileMapQuadrant *p_quadrant) {
// Remove a quadrant.
- for (int body_index = 0; body_index < p_quadrant->bodies.size(); body_index++) {
- PhysicsServer2D::get_singleton()->free(p_quadrant->bodies[body_index]);
+ for (RID body : p_quadrant->bodies) {
+ bodies_coords.erase(body);
+ PhysicsServer2D::get_singleton()->free(body);
}
p_quadrant->bodies.clear();
}
@@ -1230,7 +1285,7 @@ void TileMap::_physics_draw_quadrant_debug(TileMapQuadrant *p_quadrant) {
bool show_collision = false;
switch (collision_visibility_mode) {
case TileMap::VISIBILITY_MODE_DEFAULT:
- show_collision = !Engine::get_singleton()->is_editor_hint() && (get_tree() && get_tree()->is_debugging_navigation_hint());
+ show_collision = !Engine::get_singleton()->is_editor_hint() && (get_tree() && get_tree()->is_debugging_collisions_hint());
break;
case TileMap::VISIBILITY_MODE_FORCE_HIDE:
show_collision = false;
@@ -1244,39 +1299,28 @@ void TileMap::_physics_draw_quadrant_debug(TileMapQuadrant *p_quadrant) {
}
RenderingServer *rs = RenderingServer::get_singleton();
-
- Vector2 quadrant_pos = map_to_world(p_quadrant->coords * get_effective_quadrant_size(p_quadrant->layer));
+ PhysicsServer2D *ps = PhysicsServer2D::get_singleton();
Color debug_collision_color = get_tree()->get_debug_collisions_color();
- for (Set<Vector2i>::Element *E_cell = p_quadrant->cells.front(); E_cell; E_cell = E_cell->next()) {
- TileMapCell c = get_cell(p_quadrant->layer, E_cell->get(), true);
-
- Transform2D xform;
- xform.set_origin(map_to_world(E_cell->get()) - quadrant_pos);
- rs->canvas_item_add_set_transform(p_quadrant->debug_canvas_item, xform);
-
- if (tile_set->has_source(c.source_id)) {
- TileSetSource *source = *tile_set->get_source(c.source_id);
+ Vector<Color> color;
+ color.push_back(debug_collision_color);
- if (!source->has_tile(c.get_atlas_coords()) || !source->has_alternative_tile(c.get_atlas_coords(), c.alternative_tile)) {
- continue;
- }
-
- TileSetAtlasSource *atlas_source = Object::cast_to<TileSetAtlasSource>(source);
- if (atlas_source) {
- TileData *tile_data = Object::cast_to<TileData>(atlas_source->get_tile_data(c.get_atlas_coords(), c.alternative_tile));
+ Vector2 quadrant_pos = map_to_world(p_quadrant->coords * get_effective_quadrant_size(p_quadrant->layer));
+ Transform2D qudrant_xform;
+ qudrant_xform.set_origin(quadrant_pos);
+ Transform2D global_transform_inv = (get_global_transform() * qudrant_xform).affine_inverse();
- for (int body_index = 0; body_index < p_quadrant->bodies.size(); body_index++) {
- for (int polygon_index = 0; polygon_index < tile_data->get_collision_polygons_count(body_index); polygon_index++) {
- // Draw the debug polygon.
- Vector<Vector2> polygon = tile_data->get_collision_polygon_points(body_index, polygon_index);
- if (polygon.size() >= 3) {
- Vector<Color> color;
- color.push_back(debug_collision_color);
- rs->canvas_item_add_polygon(p_quadrant->debug_canvas_item, polygon, color);
- }
- }
- }
+ for (RID body : p_quadrant->bodies) {
+ Transform2D xform = Transform2D(ps->body_get_state(body, PhysicsServer2D::BODY_STATE_TRANSFORM)) * global_transform_inv;
+ rs->canvas_item_add_set_transform(p_quadrant->debug_canvas_item, xform);
+ for (int shape_index = 0; shape_index < ps->body_get_shape_count(body); shape_index++) {
+ const RID &shape = ps->body_get_shape(body, shape_index);
+ PhysicsServer2D::ShapeType type = ps->shape_get_type(shape);
+ if (type == PhysicsServer2D::SHAPE_CONVEX_POLYGON) {
+ Vector<Vector2> polygon = ps->shape_get_data(shape);
+ rs->canvas_item_add_polygon(p_quadrant->debug_canvas_item, polygon, color);
+ } else {
+ WARN_PRINT("Wrong shape type for a tile, should be SHAPE_CONVEX_POLYGON.");
}
}
rs->canvas_item_add_set_transform(p_quadrant->debug_canvas_item, Transform2D());
@@ -1836,6 +1880,11 @@ Map<Vector2i, TileMapQuadrant> *TileMap::get_quadrant_map(int p_layer) {
return &layers[p_layer].quadrant_map;
}
+Vector2i TileMap::get_coords_for_body_rid(RID p_physics_body) {
+ ERR_FAIL_COND_V_MSG(!bodies_coords.has(p_physics_body), Vector2i(), vformat("No tiles for the given body RID %d.", p_physics_body));
+ return bodies_coords[p_physics_body];
+}
+
void TileMap::fix_invalid_tiles() {
ERR_FAIL_COND_MSG(tile_set.is_null(), "Cannot fix invalid tiles if Tileset is not open.");
@@ -2012,10 +2061,22 @@ bool TileMap::_set(const StringName &p_name, const Variant &p_value) {
return false;
} else if (components.size() == 2 && components[0].begins_with("layer_") && components[0].trim_prefix("layer_").is_valid_int()) {
int index = components[0].trim_prefix("layer_").to_int();
- if (index < 0 || index >= (int)layers.size()) {
+ if (index < 0) {
return false;
}
+ if (index >= (int)layers.size()) {
+ _clear_internals();
+ while (index >= (int)layers.size()) {
+ layers.push_back(TileMapLayer());
+ }
+ _recreate_internals();
+
+ notify_property_list_changed();
+ emit_signal(SNAME("changed"));
+ update_configuration_warnings();
+ }
+
if (components[1] == "name") {
set_layer_name(index, p_value);
return true;
@@ -2973,6 +3034,8 @@ void TileMap::_bind_methods() {
ClassDB::bind_method(D_METHOD("set_layer_z_index", "layer", "z_index"), &TileMap::set_layer_z_index);
ClassDB::bind_method(D_METHOD("get_layer_z_index", "layer"), &TileMap::get_layer_z_index);
+ ClassDB::bind_method(D_METHOD("set_collision_animatable", "enabled"), &TileMap::set_collision_animatable);
+ ClassDB::bind_method(D_METHOD("is_collision_animatable"), &TileMap::is_collision_animatable);
ClassDB::bind_method(D_METHOD("set_collision_visibility_mode", "collision_visibility_mode"), &TileMap::set_collision_visibility_mode);
ClassDB::bind_method(D_METHOD("get_collision_visibility_mode"), &TileMap::get_collision_visibility_mode);
@@ -2984,10 +3047,14 @@ void TileMap::_bind_methods() {
ClassDB::bind_method(D_METHOD("get_cell_atlas_coords", "layer", "coords", "use_proxies"), &TileMap::get_cell_atlas_coords);
ClassDB::bind_method(D_METHOD("get_cell_alternative_tile", "layer", "coords", "use_proxies"), &TileMap::get_cell_alternative_tile);
+ ClassDB::bind_method(D_METHOD("get_coords_for_body_rid", "body"), &TileMap::get_coords_for_body_rid);
+
ClassDB::bind_method(D_METHOD("fix_invalid_tiles"), &TileMap::fix_invalid_tiles);
- ClassDB::bind_method(D_METHOD("get_surrounding_tiles", "coords"), &TileMap::get_surrounding_tiles);
+ ClassDB::bind_method(D_METHOD("clear_layer", "layer"), &TileMap::clear_layer);
ClassDB::bind_method(D_METHOD("clear"), &TileMap::clear);
+ ClassDB::bind_method(D_METHOD("get_surrounding_tiles", "coords"), &TileMap::get_surrounding_tiles);
+
ClassDB::bind_method(D_METHOD("get_used_cells", "layer"), &TileMap::get_used_cells);
ClassDB::bind_method(D_METHOD("get_used_rect"), &TileMap::get_used_rect);
@@ -3003,6 +3070,7 @@ void TileMap::_bind_methods() {
ADD_PROPERTY(PropertyInfo(Variant::OBJECT, "tile_set", PROPERTY_HINT_RESOURCE_TYPE, "TileSet"), "set_tileset", "get_tileset");
ADD_PROPERTY(PropertyInfo(Variant::INT, "cell_quadrant_size", PROPERTY_HINT_RANGE, "1,128,1"), "set_quadrant_size", "get_quadrant_size");
+ ADD_PROPERTY(PropertyInfo(Variant::BOOL, "collision_animatable"), "set_collision_animatable", "is_collision_animatable");
ADD_PROPERTY(PropertyInfo(Variant::INT, "collision_visibility_mode", PROPERTY_HINT_ENUM, "Default,Force Show,Force Hide"), "set_collision_visibility_mode", "get_collision_visibility_mode");
ADD_PROPERTY(PropertyInfo(Variant::INT, "navigation_visibility_mode", PROPERTY_HINT_ENUM, "Default,Force Show,Force Hide"), "set_navigation_visibility_mode", "get_navigation_visibility_mode");
diff --git a/scene/2d/tile_map.h b/scene/2d/tile_map.h
index 3ac50fc7cc..2faede2445 100644
--- a/scene/2d/tile_map.h
+++ b/scene/2d/tile_map.h
@@ -202,6 +202,7 @@ private:
// Properties.
Ref<TileSet> tile_set;
int quadrant_size = 16;
+ bool collision_animatable = false;
VisibilityMode collision_visibility_mode = VISIBILITY_MODE_DEFAULT;
VisibilityMode navigation_visibility_mode = VISIBILITY_MODE_DEFAULT;
@@ -229,6 +230,9 @@ private:
LocalVector<TileMapLayer> layers;
int selected_layer = -1;
+ // Mapping for RID to coords.
+ Map<RID, Vector2i> bodies_coords;
+
// Quadrants and internals management.
Vector2i _coords_to_quadrant_coords(int p_layer, const Vector2i &p_coords) const;
@@ -259,9 +263,10 @@ private:
void _rendering_cleanup_quadrant(TileMapQuadrant *p_quadrant);
void _rendering_draw_quadrant_debug(TileMapQuadrant *p_quadrant);
+ Transform2D last_valid_transform;
+ Transform2D new_transform;
void _physics_notification(int p_what);
void _physics_update_dirty_quadrants(SelfList<TileMapQuadrant>::List &r_dirty_quadrant_list);
- void _physics_create_quadrant(TileMapQuadrant *p_quadrant);
void _physics_cleanup_quadrant(TileMapQuadrant *p_quadrant);
void _physics_draw_quadrant_debug(TileMapQuadrant *p_quadrant);
@@ -305,7 +310,7 @@ public:
void set_quadrant_size(int p_size);
int get_quadrant_size() const;
- static void draw_tile(RID p_canvas_item, Vector2i p_position, const Ref<TileSet> p_tile_set, int p_atlas_source_id, Vector2i p_atlas_coords, int p_alternative_tile, Color p_modulation = Color(1.0, 1.0, 1.0, 1.0));
+ static void draw_tile(RID p_canvas_item, Vector2i p_position, const Ref<TileSet> p_tile_set, int p_atlas_source_id, Vector2i p_atlas_coords, int p_alternative_tile, int p_frame = -1, Color p_modulation = Color(1.0, 1.0, 1.0, 1.0));
// Layers management.
int get_layers_count() const;
@@ -325,6 +330,9 @@ public:
void set_selected_layer(int p_layer_id); // For editor use.
int get_selected_layer() const;
+ void set_collision_animatable(bool p_enabled);
+ bool is_collision_animatable() const;
+
void set_collision_visibility_mode(VisibilityMode p_show_collision);
VisibilityMode get_collision_visibility_mode();
@@ -364,6 +372,9 @@ public:
virtual void set_texture_filter(CanvasItem::TextureFilter p_texture_filter) override;
virtual void set_texture_repeat(CanvasItem::TextureRepeat p_texture_repeat) override;
+ // For finding tiles from collision.
+ Vector2i get_coords_for_body_rid(RID p_physics_body);
+
// Fixing a nclearing methods.
void fix_invalid_tiles();
diff --git a/scene/3d/bone_attachment_3d.cpp b/scene/3d/bone_attachment_3d.cpp
index 70361f4787..afd11482e3 100644
--- a/scene/3d/bone_attachment_3d.cpp
+++ b/scene/3d/bone_attachment_3d.cpp
@@ -110,7 +110,7 @@ TypedArray<String> BoneAttachment3D::get_configuration_warnings() const {
} else {
Skeleton3D *parent = Object::cast_to<Skeleton3D>(get_parent());
if (!parent) {
- warnings.append(TTR("Parent node is not a Skeleton3D node! Please use an extenral Skeleton3D if you intend to use the BoneAttachment3D without it being a child of a Skeleton3D node."));
+ warnings.append(TTR("Parent node is not a Skeleton3D node! Please use an external Skeleton3D if you intend to use the BoneAttachment3D without it being a child of a Skeleton3D node."));
}
}
@@ -161,7 +161,7 @@ void BoneAttachment3D::_check_bind() {
bone_idx = sk->find_bone(bone_name);
}
if (bone_idx != -1) {
- sk->call_deferred("connect", "bone_pose_changed", callable_mp(this, &BoneAttachment3D::on_bone_pose_update));
+ sk->call_deferred(SNAME("connect"), "bone_pose_changed", callable_mp(this, &BoneAttachment3D::on_bone_pose_update));
bound = true;
call_deferred(SNAME("on_bone_pose_update"), bone_idx);
}
diff --git a/scene/3d/collision_shape_3d.cpp b/scene/3d/collision_shape_3d.cpp
index c79f956642..4e496fba47 100644
--- a/scene/3d/collision_shape_3d.cpp
+++ b/scene/3d/collision_shape_3d.cpp
@@ -124,8 +124,7 @@ TypedArray<String> CollisionShape3D::get_configuration_warnings() const {
if (shape.is_valid() &&
Object::cast_to<RigidDynamicBody3D>(get_parent()) &&
- Object::cast_to<ConcavePolygonShape3D>(*shape) &&
- Object::cast_to<RigidDynamicBody3D>(get_parent())->get_mode() != RigidDynamicBody3D::MODE_STATIC) {
+ Object::cast_to<ConcavePolygonShape3D>(*shape)) {
warnings.push_back(TTR("ConcavePolygonShape3D doesn't support RigidDynamicBody3D in another mode than static."));
}
diff --git a/scene/3d/gpu_particles_3d.cpp b/scene/3d/gpu_particles_3d.cpp
index baf28ae102..32a62d8c7e 100644
--- a/scene/3d/gpu_particles_3d.cpp
+++ b/scene/3d/gpu_particles_3d.cpp
@@ -469,7 +469,7 @@ void GPUParticles3D::_skinning_changed() {
if (draw_pass.is_valid() && draw_pass->get_builtin_bind_pose_count() > 0) {
xforms.resize(draw_pass->get_builtin_bind_pose_count());
for (int j = 0; j < draw_pass->get_builtin_bind_pose_count(); j++) {
- xforms.write[i] = draw_pass->get_builtin_bind_pose(j);
+ xforms.write[j] = draw_pass->get_builtin_bind_pose(j);
}
break;
}
diff --git a/scene/3d/gpu_particles_collision_3d.cpp b/scene/3d/gpu_particles_collision_3d.cpp
index a34a30913e..4fa34615bf 100644
--- a/scene/3d/gpu_particles_collision_3d.cpp
+++ b/scene/3d/gpu_particles_collision_3d.cpp
@@ -420,7 +420,7 @@ Ref<Image> GPUParticlesCollisionSDF::bake() {
}
//test against original bounds
- if (!Geometry3D::triangle_box_overlap(aabb.position + aabb.size * 0.5, aabb.size * 0.5, face.vertex)) {
+ if (!Geometry3D::triangle_box_overlap(aabb.get_center(), aabb.size * 0.5, face.vertex)) {
continue;
}
@@ -438,7 +438,7 @@ Ref<Image> GPUParticlesCollisionSDF::bake() {
}
//test against original bounds
- if (!Geometry3D::triangle_box_overlap(aabb.position + aabb.size * 0.5, aabb.size * 0.5, face.vertex)) {
+ if (!Geometry3D::triangle_box_overlap(aabb.get_center(), aabb.size * 0.5, face.vertex)) {
continue;
}
diff --git a/scene/3d/lightmap_gi.cpp b/scene/3d/lightmap_gi.cpp
index 7dd083e314..b56f0fd145 100644
--- a/scene/3d/lightmap_gi.cpp
+++ b/scene/3d/lightmap_gi.cpp
@@ -467,7 +467,7 @@ int32_t LightmapGI::_compute_bsp_tree(const Vector<Vector3> &p_points, const Loc
}
}
if (i == 0) {
- centers.push_back(bounds.position + bounds.size * 0.5);
+ centers.push_back(bounds.get_center());
} else {
bounds_all.merge_with(bounds);
}
@@ -555,7 +555,7 @@ void LightmapGI::_plot_triangle_into_octree(GenProbesOctree *p_cell, float p_cel
subcell.position = Vector3(pos) * p_cell_size;
subcell.size = Vector3(half_size, half_size, half_size) * p_cell_size;
- if (!Geometry3D::triangle_box_overlap(subcell.position + subcell.size * 0.5, subcell.size * 0.5, p_triangle)) {
+ if (!Geometry3D::triangle_box_overlap(subcell.get_center(), subcell.size * 0.5, p_triangle)) {
continue;
}
diff --git a/scene/3d/physics_body_3d.cpp b/scene/3d/physics_body_3d.cpp
index 35f6d0930a..bbf2c81a92 100644
--- a/scene/3d/physics_body_3d.cpp
+++ b/scene/3d/physics_body_3d.cpp
@@ -38,8 +38,8 @@
#endif
void PhysicsBody3D::_bind_methods() {
- ClassDB::bind_method(D_METHOD("move_and_collide", "rel_vec", "test_only", "safe_margin"), &PhysicsBody3D::_move, DEFVAL(false), DEFVAL(0.001));
- ClassDB::bind_method(D_METHOD("test_move", "from", "rel_vec", "collision", "safe_margin"), &PhysicsBody3D::test_move, DEFVAL(Variant()), DEFVAL(0.001));
+ ClassDB::bind_method(D_METHOD("move_and_collide", "linear_velocity", "test_only", "safe_margin", "max_collisions"), &PhysicsBody3D::_move, DEFVAL(false), DEFVAL(0.001), DEFVAL(1));
+ ClassDB::bind_method(D_METHOD("test_move", "from", "linear_velocity", "collision", "safe_margin", "max_collisions"), &PhysicsBody3D::test_move, DEFVAL(Variant()), DEFVAL(0.001), DEFVAL(1));
ClassDB::bind_method(D_METHOD("set_axis_lock", "axis", "lock"), &PhysicsBody3D::set_axis_lock);
ClassDB::bind_method(D_METHOD("get_axis_lock", "axis"), &PhysicsBody3D::get_axis_lock);
@@ -95,10 +95,14 @@ void PhysicsBody3D::remove_collision_exception_with(Node *p_node) {
PhysicsServer3D::get_singleton()->body_remove_collision_exception(get_rid(), collision_object->get_rid());
}
-Ref<KinematicCollision3D> PhysicsBody3D::_move(const Vector3 &p_motion, bool p_test_only, real_t p_margin) {
+Ref<KinematicCollision3D> PhysicsBody3D::_move(const Vector3 &p_motion, bool p_test_only, real_t p_margin, int p_max_collisions) {
PhysicsServer3D::MotionResult result;
- if (move_and_collide(p_motion, result, p_margin, p_test_only)) {
- if (motion_cache.is_null()) {
+ // Hack in order to work with calling from _process as well as from _physics_process; calling from thread is risky
+ double delta = Engine::get_singleton()->is_in_physics_frame() ? get_physics_process_delta_time() : get_process_delta_time();
+
+ if (move_and_collide(p_motion * delta, result, p_margin, p_test_only, p_max_collisions)) {
+ // Create a new instance when the cached reference is invalid or still in use in script.
+ if (motion_cache.is_null() || motion_cache->reference_get_count() > 1) {
motion_cache.instantiate();
motion_cache->owner = this;
}
@@ -111,9 +115,9 @@ Ref<KinematicCollision3D> PhysicsBody3D::_move(const Vector3 &p_motion, bool p_t
return Ref<KinematicCollision3D>();
}
-bool PhysicsBody3D::move_and_collide(const Vector3 &p_motion, PhysicsServer3D::MotionResult &r_result, real_t p_margin, bool p_test_only, bool p_cancel_sliding, bool p_collide_separation_ray, const Set<RID> &p_exclude) {
+bool PhysicsBody3D::move_and_collide(const Vector3 &p_motion, PhysicsServer3D::MotionResult &r_result, real_t p_margin, bool p_test_only, int p_max_collisions, bool p_cancel_sliding, bool p_collide_separation_ray, const Set<RID> &p_exclude) {
Transform3D gt = get_global_transform();
- bool colliding = PhysicsServer3D::get_singleton()->body_test_motion(get_rid(), gt, p_motion, p_margin, &r_result, p_collide_separation_ray, p_exclude);
+ bool colliding = PhysicsServer3D::get_singleton()->body_test_motion(get_rid(), gt, p_motion, p_margin, &r_result, p_max_collisions, p_collide_separation_ray, p_exclude);
// Restore direction of motion to be along original motion,
// in order to avoid sliding due to recovery,
@@ -125,9 +129,9 @@ bool PhysicsBody3D::move_and_collide(const Vector3 &p_motion, PhysicsServer3D::M
if (colliding) {
// Can't just use margin as a threshold because collision depth is calculated on unsafe motion,
// so even in normal resting cases the depth can be a bit more than the margin.
- precision += motion_length * (r_result.collision_unsafe_fraction - r_result.collision_safe_fraction);
+ precision += motion_length * (r_result.unsafe_fraction - r_result.safe_fraction);
- if (r_result.collision_depth > (real_t)p_margin + precision) {
+ if (r_result.collisions[0].depth > (real_t)p_margin + precision) {
p_cancel_sliding = false;
}
}
@@ -167,7 +171,7 @@ bool PhysicsBody3D::move_and_collide(const Vector3 &p_motion, PhysicsServer3D::M
return colliding;
}
-bool PhysicsBody3D::test_move(const Transform3D &p_from, const Vector3 &p_motion, const Ref<KinematicCollision3D> &r_collision, real_t p_margin) {
+bool PhysicsBody3D::test_move(const Transform3D &p_from, const Vector3 &p_motion, const Ref<KinematicCollision3D> &r_collision, real_t p_margin, int p_max_collisions) {
ERR_FAIL_COND_V(!is_inside_tree(), false);
PhysicsServer3D::MotionResult *r = nullptr;
@@ -176,7 +180,10 @@ bool PhysicsBody3D::test_move(const Transform3D &p_from, const Vector3 &p_motion
r = const_cast<PhysicsServer3D::MotionResult *>(&r_collision->result);
}
- return PhysicsServer3D::get_singleton()->body_test_motion(get_rid(), p_from, p_motion, p_margin, r);
+ // Hack in order to work with calling from _process as well as from _physics_process; calling from thread is risky
+ double delta = Engine::get_singleton()->is_in_physics_frame() ? get_physics_process_delta_time() : get_process_delta_time();
+
+ return PhysicsServer3D::get_singleton()->body_test_motion(get_rid(), p_from, p_motion * delta, p_margin, r, p_max_collisions);
}
void PhysicsBody3D::set_axis_lock(PhysicsServer3D::BodyAxis p_axis, bool p_lock) {
@@ -598,27 +605,60 @@ void RigidDynamicBody3D::_notification(int p_what) {
#endif
}
-void RigidDynamicBody3D::set_mode(Mode p_mode) {
- mode = p_mode;
- switch (p_mode) {
- case MODE_DYNAMIC: {
- set_body_mode(PhysicsServer3D::BODY_MODE_DYNAMIC);
- } break;
- case MODE_STATIC: {
- set_body_mode(PhysicsServer3D::BODY_MODE_STATIC);
- } break;
- case MODE_DYNAMIC_LOCKED: {
- set_body_mode(PhysicsServer3D::BODY_MODE_DYNAMIC_LOCKED);
- } break;
- case MODE_KINEMATIC: {
- set_body_mode(PhysicsServer3D::BODY_MODE_KINEMATIC);
- } break;
+void RigidDynamicBody3D::_apply_body_mode() {
+ if (freeze) {
+ switch (freeze_mode) {
+ case FREEZE_MODE_STATIC: {
+ set_body_mode(PhysicsServer3D::BODY_MODE_STATIC);
+ } break;
+ case FREEZE_MODE_KINEMATIC: {
+ set_body_mode(PhysicsServer3D::BODY_MODE_KINEMATIC);
+ } break;
+ }
+ } else if (lock_rotation) {
+ set_body_mode(PhysicsServer3D::BODY_MODE_DYNAMIC_LINEAR);
+ } else {
+ set_body_mode(PhysicsServer3D::BODY_MODE_DYNAMIC);
+ }
+}
+
+void RigidDynamicBody3D::set_lock_rotation_enabled(bool p_lock_rotation) {
+ if (p_lock_rotation == lock_rotation) {
+ return;
+ }
+
+ lock_rotation = p_lock_rotation;
+ _apply_body_mode();
+}
+
+bool RigidDynamicBody3D::is_lock_rotation_enabled() const {
+ return lock_rotation;
+}
+
+void RigidDynamicBody3D::set_freeze_enabled(bool p_freeze) {
+ if (p_freeze == freeze) {
+ return;
}
- update_configuration_warnings();
+
+ freeze = p_freeze;
+ _apply_body_mode();
}
-RigidDynamicBody3D::Mode RigidDynamicBody3D::get_mode() const {
- return mode;
+bool RigidDynamicBody3D::is_freeze_enabled() const {
+ return freeze;
+}
+
+void RigidDynamicBody3D::set_freeze_mode(FreezeMode p_freeze_mode) {
+ if (p_freeze_mode == freeze_mode) {
+ return;
+ }
+
+ freeze_mode = p_freeze_mode;
+ _apply_body_mode();
+}
+
+RigidDynamicBody3D::FreezeMode RigidDynamicBody3D::get_freeze_mode() const {
+ return freeze_mode;
}
void RigidDynamicBody3D::set_mass(real_t p_mass) {
@@ -891,17 +931,14 @@ TypedArray<String> RigidDynamicBody3D::get_configuration_warnings() const {
TypedArray<String> warnings = Node::get_configuration_warnings();
- if ((get_mode() == MODE_DYNAMIC || get_mode() == MODE_DYNAMIC_LOCKED) && (ABS(t.basis.get_axis(0).length() - 1.0) > 0.05 || ABS(t.basis.get_axis(1).length() - 1.0) > 0.05 || ABS(t.basis.get_axis(2).length() - 1.0) > 0.05)) {
- warnings.push_back(TTR("Size changes to RigidDynamicBody (in dynamic modes) will be overridden by the physics engine when running.\nChange the size in children collision shapes instead."));
+ if (ABS(t.basis.get_axis(0).length() - 1.0) > 0.05 || ABS(t.basis.get_axis(1).length() - 1.0) > 0.05 || ABS(t.basis.get_axis(2).length() - 1.0) > 0.05) {
+ warnings.push_back(TTR("Size changes to RigidDynamicBody will be overridden by the physics engine when running.\nChange the size in children collision shapes instead."));
}
return warnings;
}
void RigidDynamicBody3D::_bind_methods() {
- ClassDB::bind_method(D_METHOD("set_mode", "mode"), &RigidDynamicBody3D::set_mode);
- ClassDB::bind_method(D_METHOD("get_mode"), &RigidDynamicBody3D::get_mode);
-
ClassDB::bind_method(D_METHOD("set_mass", "mass"), &RigidDynamicBody3D::set_mass);
ClassDB::bind_method(D_METHOD("get_mass"), &RigidDynamicBody3D::get_mass);
@@ -962,11 +999,19 @@ void RigidDynamicBody3D::_bind_methods() {
ClassDB::bind_method(D_METHOD("set_can_sleep", "able_to_sleep"), &RigidDynamicBody3D::set_can_sleep);
ClassDB::bind_method(D_METHOD("is_able_to_sleep"), &RigidDynamicBody3D::is_able_to_sleep);
+ ClassDB::bind_method(D_METHOD("set_lock_rotation_enabled", "lock_rotation"), &RigidDynamicBody3D::set_lock_rotation_enabled);
+ ClassDB::bind_method(D_METHOD("is_lock_rotation_enabled"), &RigidDynamicBody3D::is_lock_rotation_enabled);
+
+ ClassDB::bind_method(D_METHOD("set_freeze_enabled", "freeze_mode"), &RigidDynamicBody3D::set_freeze_enabled);
+ ClassDB::bind_method(D_METHOD("is_freeze_enabled"), &RigidDynamicBody3D::is_freeze_enabled);
+
+ ClassDB::bind_method(D_METHOD("set_freeze_mode", "freeze_mode"), &RigidDynamicBody3D::set_freeze_mode);
+ ClassDB::bind_method(D_METHOD("get_freeze_mode"), &RigidDynamicBody3D::get_freeze_mode);
+
ClassDB::bind_method(D_METHOD("get_colliding_bodies"), &RigidDynamicBody3D::get_colliding_bodies);
GDVIRTUAL_BIND(_integrate_forces, "state");
- ADD_PROPERTY(PropertyInfo(Variant::INT, "mode", PROPERTY_HINT_ENUM, "Dynamic,Static,DynamicLocked,Kinematic"), "set_mode", "get_mode");
ADD_PROPERTY(PropertyInfo(Variant::FLOAT, "mass", PROPERTY_HINT_RANGE, "0.01,1000,0.01,or_greater,exp"), "set_mass", "get_mass");
ADD_PROPERTY(PropertyInfo(Variant::VECTOR3, "inertia", PROPERTY_HINT_RANGE, "0,1000,0.01,or_greater,exp"), "set_inertia", "get_inertia");
ADD_PROPERTY(PropertyInfo(Variant::INT, "center_of_mass_mode", PROPERTY_HINT_ENUM, "Auto,Custom", PROPERTY_USAGE_DEFAULT | PROPERTY_USAGE_UPDATE_ALL_IF_MODIFIED), "set_center_of_mass_mode", "get_center_of_mass_mode");
@@ -980,6 +1025,9 @@ void RigidDynamicBody3D::_bind_methods() {
ADD_PROPERTY(PropertyInfo(Variant::BOOL, "contact_monitor"), "set_contact_monitor", "is_contact_monitor_enabled");
ADD_PROPERTY(PropertyInfo(Variant::BOOL, "sleeping"), "set_sleeping", "is_sleeping");
ADD_PROPERTY(PropertyInfo(Variant::BOOL, "can_sleep"), "set_can_sleep", "is_able_to_sleep");
+ ADD_PROPERTY(PropertyInfo(Variant::BOOL, "lock_rotation"), "set_lock_rotation_enabled", "is_lock_rotation_enabled");
+ ADD_PROPERTY(PropertyInfo(Variant::BOOL, "freeze"), "set_freeze_enabled", "is_freeze_enabled");
+ ADD_PROPERTY(PropertyInfo(Variant::INT, "freeze_mode", PROPERTY_HINT_ENUM, "Static,Kinematic"), "set_freeze_mode", "get_freeze_mode");
ADD_GROUP("Linear", "linear_");
ADD_PROPERTY(PropertyInfo(Variant::VECTOR3, "linear_velocity"), "set_linear_velocity", "get_linear_velocity");
ADD_PROPERTY(PropertyInfo(Variant::FLOAT, "linear_damp", PROPERTY_HINT_RANGE, "-1,100,0.001,or_greater"), "set_linear_damp", "get_linear_damp");
@@ -993,10 +1041,8 @@ void RigidDynamicBody3D::_bind_methods() {
ADD_SIGNAL(MethodInfo("body_exited", PropertyInfo(Variant::OBJECT, "body", PROPERTY_HINT_RESOURCE_TYPE, "Node")));
ADD_SIGNAL(MethodInfo("sleeping_state_changed"));
- BIND_ENUM_CONSTANT(MODE_DYNAMIC);
- BIND_ENUM_CONSTANT(MODE_STATIC);
- BIND_ENUM_CONSTANT(MODE_DYNAMIC_LOCKED);
- BIND_ENUM_CONSTANT(MODE_KINEMATIC);
+ BIND_ENUM_CONSTANT(FREEZE_MODE_STATIC);
+ BIND_ENUM_CONSTANT(FREEZE_MODE_KINEMATIC);
BIND_ENUM_CONSTANT(CENTER_OF_MASS_MODE_AUTO);
BIND_ENUM_CONSTANT(CENTER_OF_MASS_MODE_CUSTOM);
@@ -1037,64 +1083,115 @@ void RigidDynamicBody3D::_reload_physics_characteristics() {
#define FLOOR_ANGLE_THRESHOLD 0.01
bool CharacterBody3D::move_and_slide() {
- bool was_on_floor = on_floor;
-
// Hack in order to work with calling from _process as well as from _physics_process; calling from thread is risky
double delta = Engine::get_singleton()->is_in_physics_frame() ? get_physics_process_delta_time() : get_process_delta_time();
-
+ previous_position = get_global_transform().origin;
for (int i = 0; i < 3; i++) {
if (locked_axis & (1 << i)) {
linear_velocity[i] = 0.0;
}
}
- Vector3 current_floor_velocity = floor_velocity;
- if ((on_floor || on_wall) && on_floor_body.is_valid()) {
- //this approach makes sure there is less delay between the actual body velocity and the one we saved
- PhysicsDirectBodyState3D *bs = PhysicsServer3D::get_singleton()->body_get_direct_state(on_floor_body);
- if (bs) {
- Transform3D gt = get_global_transform();
- Vector3 local_position = gt.origin - bs->get_transform().origin;
- current_floor_velocity = bs->get_velocity_at_local_position(local_position);
+ Vector3 current_platform_velocity = platform_velocity;
+
+ if ((collision_state.floor || collision_state.wall) && platform_rid.is_valid()) {
+ bool excluded = false;
+ if (collision_state.floor) {
+ excluded = (moving_platform_floor_layers & platform_layer) == 0;
+ } else if (collision_state.wall) {
+ excluded = (moving_platform_wall_layers & platform_layer) == 0;
+ }
+ if (!excluded) {
+ //this approach makes sure there is less delay between the actual body velocity and the one we saved
+ PhysicsDirectBodyState3D *bs = PhysicsServer3D::get_singleton()->body_get_direct_state(platform_rid);
+ if (bs) {
+ Transform3D gt = get_global_transform();
+ Vector3 local_position = gt.origin - bs->get_transform().origin;
+ current_platform_velocity = bs->get_velocity_at_local_position(local_position);
+ }
+ } else {
+ current_platform_velocity = Vector3();
}
}
motion_results.clear();
- on_floor = false;
- on_ceiling = false;
- on_wall = false;
- floor_normal = Vector3();
- floor_velocity = Vector3();
- if (!current_floor_velocity.is_equal_approx(Vector3()) && on_floor_body.is_valid()) {
+ bool was_on_floor = collision_state.floor;
+ collision_state.state = 0;
+
+ if (!current_platform_velocity.is_equal_approx(Vector3())) {
PhysicsServer3D::MotionResult floor_result;
Set<RID> exclude;
- exclude.insert(on_floor_body);
- if (move_and_collide(current_floor_velocity * delta, floor_result, margin, false, false, false, exclude)) {
+ exclude.insert(platform_rid);
+ if (move_and_collide(current_platform_velocity * delta, floor_result, margin, false, 1, false, false, exclude)) {
motion_results.push_back(floor_result);
- _set_collision_direction(floor_result);
+
+ CollisionState result_state;
+ _set_collision_direction(floor_result, result_state);
+ }
+ }
+
+ if (motion_mode == MOTION_MODE_GROUNDED) {
+ _move_and_slide_grounded(delta, was_on_floor);
+ } else {
+ _move_and_slide_free(delta);
+ }
+
+ // Compute real velocity.
+ real_velocity = get_position_delta() / delta;
+
+ if (moving_platform_apply_velocity_on_leave != PLATFORM_VEL_ON_LEAVE_NEVER) {
+ // Add last platform velocity when just left a moving platform.
+ if (!collision_state.floor && !collision_state.wall) {
+ if (moving_platform_apply_velocity_on_leave == PLATFORM_VEL_ON_LEAVE_UPWARD_ONLY && current_platform_velocity.dot(up_direction) < 0) {
+ current_platform_velocity = current_platform_velocity.slide(up_direction);
+ }
+ linear_velocity += current_platform_velocity;
}
}
- on_floor_body = RID();
- Vector3 motion = linear_velocity * delta;
+ // Reset the gravity accumulation when touching the ground.
+ if (collision_state.floor && linear_velocity.dot(up_direction) <= 0) {
+ linear_velocity = linear_velocity.slide(up_direction);
+ }
+
+ return motion_results.size() > 0;
+}
+
+void CharacterBody3D::_move_and_slide_grounded(double p_delta, bool p_was_on_floor) {
+ Vector3 motion = linear_velocity * p_delta;
+ Vector3 motion_slide_up = motion.slide(up_direction);
+ Vector3 prev_floor_normal = floor_normal;
+
+ platform_rid = RID();
+ platform_velocity = Vector3();
+ floor_normal = Vector3();
+ wall_normal = Vector3();
// No sliding on first attempt to keep floor motion stable when possible,
- // when stop on slope is enabled.
+ // When stop on slope is enabled or when there is no up direction.
bool sliding_enabled = !floor_stop_on_slope;
+ // Constant speed can be applied only the first time sliding is enabled.
+ bool can_apply_constant_speed = sliding_enabled;
+ bool first_slide = true;
+ bool vel_dir_facing_up = linear_velocity.dot(up_direction) > 0;
+ Vector3 total_travel;
for (int iteration = 0; iteration < max_slides; ++iteration) {
PhysicsServer3D::MotionResult result;
- bool collided = move_and_collide(motion, result, margin, false, !sliding_enabled);
+ bool collided = move_and_collide(motion, result, margin, false, 4, !sliding_enabled);
+
if (collided) {
motion_results.push_back(result);
- _set_collision_direction(result);
- if (on_floor && floor_stop_on_slope && (linear_velocity.normalized() + up_direction).length() < 0.01) {
+ CollisionState previous_state = collision_state;
+
+ CollisionState result_state;
+ _set_collision_direction(result, result_state);
+
+ if (collision_state.floor && floor_stop_on_slope && (linear_velocity.normalized() + up_direction).length() < 0.01) {
Transform3D gt = get_global_transform();
- if (result.travel.length() > margin) {
- gt.origin -= result.travel.slide(up_direction);
- } else {
+ if (result.travel.length() <= margin + CMP_EPSILON) {
gt.origin -= result.travel;
}
set_global_transform(gt);
@@ -1105,96 +1202,360 @@ bool CharacterBody3D::move_and_slide() {
if (result.remainder.is_equal_approx(Vector3())) {
motion = Vector3();
+ last_motion = result.travel;
break;
}
- if (sliding_enabled || !on_floor) {
- Vector3 slide_motion = result.remainder.slide(result.collision_normal);
- if (slide_motion.dot(linear_velocity) > 0.0) {
- motion = slide_motion;
- } else {
- motion = Vector3();
+ // Apply regular sliding by default.
+ bool apply_default_sliding = true;
+
+ // Wall collision checks.
+ if (result_state.wall && (motion_slide_up.dot(wall_normal) <= 0)) {
+ // Move on floor only checks.
+ if (floor_block_on_wall) {
+ // Needs horizontal motion from current motion instead of motion_slide_up
+ // to properly test the angle and avoid standing on slopes
+ Vector3 horizontal_motion = motion.slide(up_direction);
+ Vector3 horizontal_normal = wall_normal.slide(up_direction).normalized();
+ real_t motion_angle = Math::abs(Math::acos(-horizontal_normal.dot(horizontal_motion.normalized())));
+
+ // Avoid to move forward on a wall if floor_block_on_wall is true.
+ // Applies only when the motion angle is under 90 degrees,
+ // in order to avoid blocking lateral motion along a wall.
+ if (motion_angle < .5 * Math_PI) {
+ apply_default_sliding = false;
+
+ if (p_was_on_floor && !vel_dir_facing_up) {
+ // Cancel the motion.
+ Transform3D gt = get_global_transform();
+ real_t travel_total = result.travel.length();
+ real_t cancel_dist_max = MIN(0.1, margin * 20);
+ if (travel_total <= margin + CMP_EPSILON) {
+ gt.origin -= result.travel;
+ } else if (travel_total < cancel_dist_max) { // If the movement is large the body can be prevented from reaching the walls.
+ gt.origin -= result.travel.slide(up_direction);
+ // Keep remaining motion in sync with amount canceled.
+ motion = motion.slide(up_direction);
+ }
+ set_global_transform(gt);
+ result.travel = Vector3(); // Cancel for constant speed computation.
+
+ // Determines if you are on the ground, and limits the possibility of climbing on the walls because of the approximations.
+ _snap_on_floor(true, false);
+ } else {
+ // If the movement is not cancelled we only keep the remaining.
+ motion = result.remainder;
+ }
+
+ // Apply slide on forward in order to allow only lateral motion on next step.
+ Vector3 forward = wall_normal.slide(up_direction).normalized();
+ motion = motion.slide(forward);
+ // Avoid accelerating when you jump on the wall and smooth falling.
+ linear_velocity = linear_velocity.slide(forward);
+
+ // Allow only lateral motion along previous floor when already on floor.
+ // Fixes slowing down when moving in diagonal against an inclined wall.
+ if (p_was_on_floor && !vel_dir_facing_up && (motion.dot(up_direction) > 0.0)) {
+ // Slide along the corner between the wall and previous floor.
+ Vector3 floor_side = prev_floor_normal.cross(wall_normal);
+ if (floor_side != Vector3()) {
+ motion = floor_side * motion.dot(floor_side);
+ }
+ }
+
+ // Stop all motion when a second wall is hit (unless sliding down or jumping),
+ // in order to avoid jittering in corner cases.
+ bool stop_all_motion = previous_state.wall && !vel_dir_facing_up;
+
+ // Allow sliding when the body falls.
+ if (!collision_state.floor && motion.dot(up_direction) < 0) {
+ Vector3 slide_motion = motion.slide(wall_normal);
+ // Test again to allow sliding only if the result goes downwards.
+ // Fixes jittering issues at the bottom of inclined walls.
+ if (slide_motion.dot(up_direction) < 0) {
+ stop_all_motion = false;
+ motion = slide_motion;
+ }
+ }
+
+ if (stop_all_motion) {
+ motion = Vector3();
+ linear_velocity = Vector3();
+ }
+ }
+ }
+
+ // Stop horizontal motion when under wall slide threshold.
+ if (p_was_on_floor && (wall_min_slide_angle > 0.0) && result_state.wall) {
+ Vector3 horizontal_normal = wall_normal.slide(up_direction).normalized();
+ real_t motion_angle = Math::abs(Math::acos(-horizontal_normal.dot(motion_slide_up.normalized())));
+ if (motion_angle < wall_min_slide_angle) {
+ motion = up_direction * motion.dot(up_direction);
+ linear_velocity = up_direction * linear_velocity.dot(up_direction);
+
+ apply_default_sliding = false;
+ }
+ }
+ }
+
+ if (apply_default_sliding) {
+ // Regular sliding, the last part of the test handle the case when you don't want to slide on the ceiling.
+ if ((sliding_enabled || !collision_state.floor) && (!collision_state.ceiling || slide_on_ceiling || !vel_dir_facing_up)) {
+ const PhysicsServer3D::MotionCollision &collision = result.collisions[0];
+ Vector3 slide_motion = result.remainder.slide(collision.normal);
+ if (slide_motion.dot(linear_velocity) > 0.0) {
+ motion = slide_motion;
+ } else {
+ motion = Vector3();
+ }
+ if (slide_on_ceiling && result_state.ceiling) {
+ // Apply slide only in the direction of the input motion, otherwise just stop to avoid jittering when moving against a wall.
+ if (vel_dir_facing_up) {
+ linear_velocity = linear_velocity.slide(collision.normal);
+ } else {
+ // Avoid acceleration in slope when falling.
+ linear_velocity = up_direction * up_direction.dot(linear_velocity);
+ }
+ }
+ }
+ // No sliding on first attempt to keep floor motion stable when possible.
+ else {
+ motion = result.remainder;
+ if (result_state.ceiling && !slide_on_ceiling && vel_dir_facing_up) {
+ linear_velocity = linear_velocity.slide(up_direction);
+ motion = motion.slide(up_direction);
+ }
}
- } else {
- motion = result.remainder;
}
+
+ // Apply Constant Speed.
+ if (p_was_on_floor && floor_constant_speed && collision_state.floor && !motion.is_equal_approx(Vector3())) {
+ motion = motion.normalized() * MAX(0, (motion_slide_up.length() - result.travel.slide(up_direction).length() - total_travel.slide(up_direction).length()));
+ }
+
+ total_travel += result.travel;
+ }
+ // When you move forward in a downward slope you don’t collide because you will be in the air.
+ // This test ensures that constant speed is applied, only if the player is still on the ground after the snap is applied.
+ else if (floor_constant_speed && first_slide && _on_floor_if_snapped(p_was_on_floor, vel_dir_facing_up)) {
+ can_apply_constant_speed = false;
+ sliding_enabled = true;
+ Transform3D gt = get_global_transform();
+ gt.origin = gt.origin - result.travel;
+ set_global_transform(gt);
+
+ Vector3 motion_slide_norm = motion.slide(prev_floor_normal).normalized();
+ motion = motion_slide_norm * (motion_slide_up.length());
+ collided = true;
}
+ can_apply_constant_speed = !can_apply_constant_speed && !sliding_enabled;
sliding_enabled = true;
+ first_slide = false;
+
+ if (!motion.is_equal_approx(Vector3())) {
+ last_motion = motion;
+ }
if (!collided || motion.is_equal_approx(Vector3())) {
break;
}
}
- if (was_on_floor && !on_floor && !snap.is_equal_approx(Vector3())) {
- // Apply snap.
- Transform3D gt = get_global_transform();
+ _snap_on_floor(p_was_on_floor, vel_dir_facing_up);
+
+ // Reset the gravity accumulation when touching the ground.
+ if (collision_state.floor && !vel_dir_facing_up) {
+ linear_velocity = linear_velocity.slide(up_direction);
+ }
+}
+
+void CharacterBody3D::_move_and_slide_free(double p_delta) {
+ Vector3 motion = linear_velocity * p_delta;
+
+ platform_rid = RID();
+ floor_normal = Vector3();
+ platform_velocity = Vector3();
+
+ bool first_slide = true;
+ for (int iteration = 0; iteration < max_slides; ++iteration) {
PhysicsServer3D::MotionResult result;
- if (move_and_collide(snap, result, margin, true, false, true)) {
- bool apply = true;
- if (up_direction != Vector3()) {
- if (result.get_angle(up_direction) <= floor_max_angle + FLOOR_ANGLE_THRESHOLD) {
- on_floor = true;
- floor_normal = result.collision_normal;
- on_floor_body = result.collider;
- floor_velocity = result.collider_velocity;
- if (floor_stop_on_slope) {
- // move and collide may stray the object a bit because of pre un-stucking,
- // so only ensure that motion happens on floor direction in this case.
- if (result.travel.length() > margin) {
- result.travel = result.travel.project(up_direction);
- } else {
- result.travel = Vector3();
- }
- }
- } else {
- apply = false; //snapped with floor direction, but did not snap to a floor, do not snap.
+
+ bool collided = move_and_collide(motion, result, margin, false, 1, false);
+
+ if (collided) {
+ motion_results.push_back(result);
+
+ CollisionState result_state;
+ _set_collision_direction(result, result_state);
+
+ if (wall_min_slide_angle != 0 && Math::acos(wall_normal.dot(-linear_velocity.normalized())) < wall_min_slide_angle + FLOOR_ANGLE_THRESHOLD) {
+ motion = Vector3();
+ if (result.travel.length() < margin + CMP_EPSILON) {
+ Transform3D gt = get_global_transform();
+ gt.origin -= result.travel;
+ set_global_transform(gt);
}
+ } else if (first_slide) {
+ Vector3 motion_slide_norm = result.remainder.slide(wall_normal).normalized();
+ motion = motion_slide_norm * (motion.length() - result.travel.length());
+ } else {
+ motion = result.remainder.slide(wall_normal);
}
- if (apply) {
- gt.origin += result.travel;
- set_global_transform(gt);
+
+ if (motion.dot(linear_velocity) <= 0.0) {
+ motion = Vector3();
}
}
+
+ first_slide = false;
+
+ if (!collided || motion.is_equal_approx(Vector3())) {
+ break;
+ }
}
+}
- if (!on_floor && !on_wall) {
- // Add last platform velocity when just left a moving platform.
- linear_velocity += current_floor_velocity;
+void CharacterBody3D::_snap_on_floor(bool was_on_floor, bool vel_dir_facing_up) {
+ if (collision_state.floor || !was_on_floor || vel_dir_facing_up) {
+ return;
}
- // Reset the gravity accumulation when touching the ground.
- if (on_floor && linear_velocity.dot(up_direction) <= 0) {
- linear_velocity = linear_velocity.slide(up_direction);
+ // Snap by at least collision margin to keep floor state consistent.
+ real_t length = MAX(floor_snap_length, margin);
+
+ Transform3D gt = get_global_transform();
+ PhysicsServer3D::MotionResult result;
+ if (move_and_collide(-up_direction * length, result, margin, true, 4, false, true)) {
+ CollisionState result_state;
+ // Apply direction for floor only.
+ _set_collision_direction(result, result_state, CollisionState(true, false, false));
+
+ if (result_state.floor) {
+ if (floor_stop_on_slope) {
+ // move and collide may stray the object a bit because of pre un-stucking,
+ // so only ensure that motion happens on floor direction in this case.
+ if (result.travel.length() > margin) {
+ result.travel = up_direction * up_direction.dot(result.travel);
+ } else {
+ result.travel = Vector3();
+ }
+ }
+
+ gt.origin += result.travel;
+ set_global_transform(gt);
+ }
}
+}
- return motion_results.size() > 0;
+bool CharacterBody3D::_on_floor_if_snapped(bool was_on_floor, bool vel_dir_facing_up) {
+ if (up_direction == Vector3() || collision_state.floor || !was_on_floor || vel_dir_facing_up) {
+ return false;
+ }
+
+ // Snap by at least collision margin to keep floor state consistent.
+ real_t length = MAX(floor_snap_length, margin);
+
+ PhysicsServer3D::MotionResult result;
+ if (move_and_collide(-up_direction * length, result, margin, true, 4, false, true)) {
+ CollisionState result_state;
+ // Don't apply direction for any type.
+ _set_collision_direction(result, result_state, CollisionState());
+
+ return result_state.floor;
+ }
+
+ return false;
}
-void CharacterBody3D::_set_collision_direction(const PhysicsServer3D::MotionResult &p_result) {
- if (up_direction == Vector3()) {
- //all is a wall
- on_wall = true;
- } else {
- if (p_result.get_angle(up_direction) <= floor_max_angle + FLOOR_ANGLE_THRESHOLD) { //floor
- on_floor = true;
- floor_normal = p_result.collision_normal;
- on_floor_body = p_result.collider;
- floor_velocity = p_result.collider_velocity;
- } else if (p_result.get_angle(-up_direction) <= floor_max_angle + FLOOR_ANGLE_THRESHOLD) { //ceiling
- on_ceiling = true;
- } else {
- on_wall = true;
+void CharacterBody3D::_set_collision_direction(const PhysicsServer3D::MotionResult &p_result, CollisionState &r_state, CollisionState p_apply_state) {
+ r_state.state = 0;
+
+ real_t wall_depth = -1.0;
+ real_t floor_depth = -1.0;
+
+ bool was_on_wall = collision_state.wall;
+ Vector3 prev_wall_normal = wall_normal;
+ int wall_collision_count = 0;
+ Vector3 combined_wall_normal;
+
+ for (int i = p_result.collision_count - 1; i >= 0; i--) {
+ const PhysicsServer3D::MotionCollision &collision = p_result.collisions[i];
+
+ if (motion_mode == MOTION_MODE_GROUNDED) {
+ // Check if any collision is floor.
+ real_t floor_angle = collision.get_angle(up_direction);
+ if (floor_angle <= floor_max_angle + FLOOR_ANGLE_THRESHOLD) {
+ r_state.floor = true;
+ if (p_apply_state.floor && collision.depth > floor_depth) {
+ collision_state.floor = true;
+ floor_normal = collision.normal;
+ floor_depth = collision.depth;
+ _set_platform_data(collision);
+ }
+ continue;
+ }
+
+ // Check if any collision is ceiling.
+ real_t ceiling_angle = collision.get_angle(-up_direction);
+ if (ceiling_angle <= floor_max_angle + FLOOR_ANGLE_THRESHOLD) {
+ r_state.ceiling = true;
+ if (p_apply_state.ceiling) {
+ collision_state.ceiling = true;
+ }
+ continue;
+ }
+ }
+
+ // Collision is wall by default.
+ r_state.wall = true;
+
+ if (p_apply_state.wall && collision.depth > wall_depth) {
+ collision_state.wall = true;
+ wall_depth = collision.depth;
+ wall_normal = collision.normal;
+
// Don't apply wall velocity when the collider is a CharacterBody3D.
- if (Object::cast_to<CharacterBody3D>(ObjectDB::get_instance(p_result.collider_id)) == nullptr) {
- on_floor_body = p_result.collider;
- floor_velocity = p_result.collider_velocity;
+ if (Object::cast_to<CharacterBody3D>(ObjectDB::get_instance(collision.collider_id)) == nullptr) {
+ _set_platform_data(collision);
+ }
+ }
+
+ // Collect normal for calculating average.
+ combined_wall_normal += collision.normal;
+ wall_collision_count++;
+ }
+
+ if (r_state.wall) {
+ if (wall_collision_count > 1 && !r_state.floor) {
+ // Check if wall normals cancel out to floor support.
+ if (!r_state.floor && motion_mode == MOTION_MODE_GROUNDED) {
+ combined_wall_normal.normalize();
+ real_t floor_angle = Math::acos(combined_wall_normal.dot(up_direction));
+ if (floor_angle <= floor_max_angle + FLOOR_ANGLE_THRESHOLD) {
+ r_state.floor = true;
+ r_state.wall = false;
+ if (p_apply_state.floor) {
+ collision_state.floor = true;
+ floor_normal = combined_wall_normal;
+ }
+ if (p_apply_state.wall) {
+ collision_state.wall = was_on_wall;
+ wall_normal = prev_wall_normal;
+ }
+ return;
+ }
}
}
}
}
+void CharacterBody3D::_set_platform_data(const PhysicsServer3D::MotionCollision &p_collision) {
+ platform_rid = p_collision.collider;
+ platform_velocity = p_collision.collider_velocity;
+ platform_layer = PhysicsServer3D::get_singleton()->body_get_collision_layer(platform_rid);
+}
+
void CharacterBody3D::set_safe_margin(real_t p_margin) {
margin = p_margin;
}
@@ -1212,40 +1573,56 @@ void CharacterBody3D::set_linear_velocity(const Vector3 &p_velocity) {
}
bool CharacterBody3D::is_on_floor() const {
- return on_floor;
+ return collision_state.floor;
}
bool CharacterBody3D::is_on_floor_only() const {
- return on_floor && !on_wall && !on_ceiling;
+ return collision_state.floor && !collision_state.wall && !collision_state.ceiling;
}
bool CharacterBody3D::is_on_wall() const {
- return on_wall;
+ return collision_state.wall;
}
bool CharacterBody3D::is_on_wall_only() const {
- return on_wall && !on_floor && !on_ceiling;
+ return collision_state.wall && !collision_state.floor && !collision_state.ceiling;
}
bool CharacterBody3D::is_on_ceiling() const {
- return on_ceiling;
+ return collision_state.ceiling;
}
bool CharacterBody3D::is_on_ceiling_only() const {
- return on_ceiling && !on_floor && !on_wall;
+ return collision_state.ceiling && !collision_state.floor && !collision_state.wall;
}
Vector3 CharacterBody3D::get_floor_normal() const {
return floor_normal;
}
+Vector3 CharacterBody3D::get_wall_normal() const {
+ return wall_normal;
+}
+
+Vector3 CharacterBody3D::get_last_motion() const {
+ return last_motion;
+}
+
+Vector3 CharacterBody3D::get_position_delta() const {
+ return get_transform().origin - previous_position;
+}
+
+Vector3 CharacterBody3D::get_real_velocity() const {
+ return real_velocity;
+};
+
real_t CharacterBody3D::get_floor_angle(const Vector3 &p_up_direction) const {
ERR_FAIL_COND_V(p_up_direction == Vector3(), 0);
return Math::acos(floor_normal.dot(p_up_direction));
}
Vector3 CharacterBody3D::get_platform_velocity() const {
- return floor_velocity;
+ return platform_velocity;
}
int CharacterBody3D::get_slide_collision_count() const {
@@ -1263,7 +1640,8 @@ Ref<KinematicCollision3D> CharacterBody3D::_get_slide_collision(int p_bounce) {
slide_colliders.resize(p_bounce + 1);
}
- if (slide_colliders[p_bounce].is_null()) {
+ // Create a new instance when the cached reference is invalid or still in use in script.
+ if (slide_colliders[p_bounce].is_null() || slide_colliders[p_bounce]->reference_get_count() > 1) {
slide_colliders.write[p_bounce].instantiate();
slide_colliders.write[p_bounce]->owner = this;
}
@@ -1287,6 +1665,62 @@ void CharacterBody3D::set_floor_stop_on_slope_enabled(bool p_enabled) {
floor_stop_on_slope = p_enabled;
}
+bool CharacterBody3D::is_floor_constant_speed_enabled() const {
+ return floor_constant_speed;
+}
+
+void CharacterBody3D::set_floor_constant_speed_enabled(bool p_enabled) {
+ floor_constant_speed = p_enabled;
+}
+
+bool CharacterBody3D::is_floor_block_on_wall_enabled() const {
+ return floor_block_on_wall;
+}
+
+void CharacterBody3D::set_floor_block_on_wall_enabled(bool p_enabled) {
+ floor_block_on_wall = p_enabled;
+}
+
+bool CharacterBody3D::is_slide_on_ceiling_enabled() const {
+ return slide_on_ceiling;
+}
+
+void CharacterBody3D::set_slide_on_ceiling_enabled(bool p_enabled) {
+ slide_on_ceiling = p_enabled;
+}
+
+uint32_t CharacterBody3D::get_moving_platform_floor_layers() const {
+ return moving_platform_floor_layers;
+}
+
+void CharacterBody3D::set_moving_platform_floor_layers(uint32_t p_exclude_layers) {
+ moving_platform_floor_layers = p_exclude_layers;
+}
+
+uint32_t CharacterBody3D::get_moving_platform_wall_layers() const {
+ return moving_platform_wall_layers;
+}
+
+void CharacterBody3D::set_moving_platform_wall_layers(uint32_t p_exclude_layers) {
+ moving_platform_wall_layers = p_exclude_layers;
+}
+
+void CharacterBody3D::set_motion_mode(MotionMode p_mode) {
+ motion_mode = p_mode;
+}
+
+CharacterBody3D::MotionMode CharacterBody3D::get_motion_mode() const {
+ return motion_mode;
+}
+
+void CharacterBody3D::set_moving_platform_apply_velocity_on_leave(MovingPlatformApplyVelocityOnLeave p_on_leave_apply_velocity) {
+ moving_platform_apply_velocity_on_leave = p_on_leave_apply_velocity;
+}
+
+CharacterBody3D::MovingPlatformApplyVelocityOnLeave CharacterBody3D::get_moving_platform_apply_velocity_on_leave() const {
+ return moving_platform_apply_velocity_on_leave;
+}
+
int CharacterBody3D::get_max_slides() const {
return max_slides;
}
@@ -1304,12 +1738,21 @@ void CharacterBody3D::set_floor_max_angle(real_t p_radians) {
floor_max_angle = p_radians;
}
-const Vector3 &CharacterBody3D::get_snap() const {
- return snap;
+real_t CharacterBody3D::get_floor_snap_length() {
+ return floor_snap_length;
+}
+
+void CharacterBody3D::set_floor_snap_length(real_t p_floor_snap_length) {
+ ERR_FAIL_COND(p_floor_snap_length < 0);
+ floor_snap_length = p_floor_snap_length;
+}
+
+real_t CharacterBody3D::get_wall_min_slide_angle() const {
+ return wall_min_slide_angle;
}
-void CharacterBody3D::set_snap(const Vector3 &p_snap) {
- snap = p_snap;
+void CharacterBody3D::set_wall_min_slide_angle(real_t p_radians) {
+ wall_min_slide_angle = p_radians;
}
const Vector3 &CharacterBody3D::get_up_direction() const {
@@ -1317,6 +1760,7 @@ const Vector3 &CharacterBody3D::get_up_direction() const {
}
void CharacterBody3D::set_up_direction(const Vector3 &p_up_direction) {
+ ERR_FAIL_COND_MSG(p_up_direction == Vector3(), "up_direction can't be equal to Vector3.ZERO, consider using Free motion mode instead.");
up_direction = p_up_direction.normalized();
}
@@ -1324,12 +1768,10 @@ void CharacterBody3D::_notification(int p_what) {
switch (p_what) {
case NOTIFICATION_ENTER_TREE: {
// Reset move_and_slide() data.
- on_floor = false;
- on_floor_body = RID();
- on_ceiling = false;
- on_wall = false;
+ collision_state.state = 0;
+ platform_rid = RID();
motion_results.clear();
- floor_velocity = Vector3();
+ platform_velocity = Vector3();
} break;
}
}
@@ -1344,14 +1786,32 @@ void CharacterBody3D::_bind_methods() {
ClassDB::bind_method(D_METHOD("get_safe_margin"), &CharacterBody3D::get_safe_margin);
ClassDB::bind_method(D_METHOD("is_floor_stop_on_slope_enabled"), &CharacterBody3D::is_floor_stop_on_slope_enabled);
ClassDB::bind_method(D_METHOD("set_floor_stop_on_slope_enabled", "enabled"), &CharacterBody3D::set_floor_stop_on_slope_enabled);
+ ClassDB::bind_method(D_METHOD("set_floor_constant_speed_enabled", "enabled"), &CharacterBody3D::set_floor_constant_speed_enabled);
+ ClassDB::bind_method(D_METHOD("is_floor_constant_speed_enabled"), &CharacterBody3D::is_floor_constant_speed_enabled);
+ ClassDB::bind_method(D_METHOD("set_floor_block_on_wall_enabled", "enabled"), &CharacterBody3D::set_floor_block_on_wall_enabled);
+ ClassDB::bind_method(D_METHOD("is_floor_block_on_wall_enabled"), &CharacterBody3D::is_floor_block_on_wall_enabled);
+ ClassDB::bind_method(D_METHOD("set_slide_on_ceiling_enabled", "enabled"), &CharacterBody3D::set_slide_on_ceiling_enabled);
+ ClassDB::bind_method(D_METHOD("is_slide_on_ceiling_enabled"), &CharacterBody3D::is_slide_on_ceiling_enabled);
+
+ ClassDB::bind_method(D_METHOD("set_moving_platform_floor_layers", "exclude_layer"), &CharacterBody3D::set_moving_platform_floor_layers);
+ ClassDB::bind_method(D_METHOD("get_moving_platform_floor_layers"), &CharacterBody3D::get_moving_platform_floor_layers);
+ ClassDB::bind_method(D_METHOD("set_moving_platform_wall_layers", "exclude_layer"), &CharacterBody3D::set_moving_platform_wall_layers);
+ ClassDB::bind_method(D_METHOD("get_moving_platform_wall_layers"), &CharacterBody3D::get_moving_platform_wall_layers);
+
ClassDB::bind_method(D_METHOD("get_max_slides"), &CharacterBody3D::get_max_slides);
ClassDB::bind_method(D_METHOD("set_max_slides", "max_slides"), &CharacterBody3D::set_max_slides);
ClassDB::bind_method(D_METHOD("get_floor_max_angle"), &CharacterBody3D::get_floor_max_angle);
ClassDB::bind_method(D_METHOD("set_floor_max_angle", "radians"), &CharacterBody3D::set_floor_max_angle);
- ClassDB::bind_method(D_METHOD("get_snap"), &CharacterBody3D::get_snap);
- ClassDB::bind_method(D_METHOD("set_snap", "snap"), &CharacterBody3D::set_snap);
+ ClassDB::bind_method(D_METHOD("get_floor_snap_length"), &CharacterBody3D::get_floor_snap_length);
+ ClassDB::bind_method(D_METHOD("set_floor_snap_length", "floor_snap_length"), &CharacterBody3D::set_floor_snap_length);
+ ClassDB::bind_method(D_METHOD("get_wall_min_slide_angle"), &CharacterBody3D::get_wall_min_slide_angle);
+ ClassDB::bind_method(D_METHOD("set_wall_min_slide_angle", "radians"), &CharacterBody3D::set_wall_min_slide_angle);
ClassDB::bind_method(D_METHOD("get_up_direction"), &CharacterBody3D::get_up_direction);
ClassDB::bind_method(D_METHOD("set_up_direction", "up_direction"), &CharacterBody3D::set_up_direction);
+ ClassDB::bind_method(D_METHOD("set_motion_mode", "mode"), &CharacterBody3D::set_motion_mode);
+ ClassDB::bind_method(D_METHOD("get_motion_mode"), &CharacterBody3D::get_motion_mode);
+ ClassDB::bind_method(D_METHOD("set_moving_platform_apply_velocity_on_leave", "on_leave_apply_velocity"), &CharacterBody3D::set_moving_platform_apply_velocity_on_leave);
+ ClassDB::bind_method(D_METHOD("get_moving_platform_apply_velocity_on_leave"), &CharacterBody3D::get_moving_platform_apply_velocity_on_leave);
ClassDB::bind_method(D_METHOD("is_on_floor"), &CharacterBody3D::is_on_floor);
ClassDB::bind_method(D_METHOD("is_on_floor_only"), &CharacterBody3D::is_on_floor_only);
@@ -1360,21 +1820,49 @@ void CharacterBody3D::_bind_methods() {
ClassDB::bind_method(D_METHOD("is_on_wall"), &CharacterBody3D::is_on_wall);
ClassDB::bind_method(D_METHOD("is_on_wall_only"), &CharacterBody3D::is_on_wall_only);
ClassDB::bind_method(D_METHOD("get_floor_normal"), &CharacterBody3D::get_floor_normal);
+ ClassDB::bind_method(D_METHOD("get_wall_normal"), &CharacterBody3D::get_wall_normal);
+ ClassDB::bind_method(D_METHOD("get_last_motion"), &CharacterBody3D::get_last_motion);
+ ClassDB::bind_method(D_METHOD("get_position_delta"), &CharacterBody3D::get_position_delta);
+ ClassDB::bind_method(D_METHOD("get_real_velocity"), &CharacterBody3D::get_real_velocity);
ClassDB::bind_method(D_METHOD("get_floor_angle", "up_direction"), &CharacterBody3D::get_floor_angle, DEFVAL(Vector3(0.0, 1.0, 0.0)));
ClassDB::bind_method(D_METHOD("get_platform_velocity"), &CharacterBody3D::get_platform_velocity);
-
ClassDB::bind_method(D_METHOD("get_slide_collision_count"), &CharacterBody3D::get_slide_collision_count);
ClassDB::bind_method(D_METHOD("get_slide_collision", "slide_idx"), &CharacterBody3D::_get_slide_collision);
ClassDB::bind_method(D_METHOD("get_last_slide_collision"), &CharacterBody3D::_get_last_slide_collision);
- ADD_PROPERTY(PropertyInfo(Variant::VECTOR3, "linear_velocity"), "set_linear_velocity", "get_linear_velocity");
- ADD_PROPERTY(PropertyInfo(Variant::INT, "max_slides", PROPERTY_HINT_NONE, "", PROPERTY_USAGE_NOEDITOR), "set_max_slides", "get_max_slides");
- ADD_PROPERTY(PropertyInfo(Variant::VECTOR3, "snap"), "set_snap", "get_snap");
+ ADD_PROPERTY(PropertyInfo(Variant::INT, "motion_mode", PROPERTY_HINT_ENUM, "Grounded,Free", PROPERTY_USAGE_DEFAULT | PROPERTY_USAGE_UPDATE_ALL_IF_MODIFIED), "set_motion_mode", "get_motion_mode");
ADD_PROPERTY(PropertyInfo(Variant::VECTOR3, "up_direction"), "set_up_direction", "get_up_direction");
+ ADD_PROPERTY(PropertyInfo(Variant::BOOL, "slide_on_ceiling"), "set_slide_on_ceiling_enabled", "is_slide_on_ceiling_enabled");
+ ADD_PROPERTY(PropertyInfo(Variant::VECTOR3, "linear_velocity", PROPERTY_HINT_NONE, "", PROPERTY_USAGE_NOEDITOR), "set_linear_velocity", "get_linear_velocity");
+ ADD_PROPERTY(PropertyInfo(Variant::INT, "max_slides", PROPERTY_HINT_NONE, "", PROPERTY_USAGE_NOEDITOR), "set_max_slides", "get_max_slides");
+ ADD_GROUP("Free Mode", "free_mode_");
+ ADD_PROPERTY(PropertyInfo(Variant::FLOAT, "wall_min_slide_angle", PROPERTY_HINT_RANGE, "0,180,0.1,radians", PROPERTY_USAGE_DEFAULT), "set_wall_min_slide_angle", "get_wall_min_slide_angle");
ADD_GROUP("Floor", "floor_");
- ADD_PROPERTY(PropertyInfo(Variant::FLOAT, "floor_max_angle", PROPERTY_HINT_RANGE, "0,180,0.1,radians"), "set_floor_max_angle", "get_floor_max_angle");
ADD_PROPERTY(PropertyInfo(Variant::BOOL, "floor_stop_on_slope"), "set_floor_stop_on_slope_enabled", "is_floor_stop_on_slope_enabled");
+ ADD_PROPERTY(PropertyInfo(Variant::BOOL, "floor_constant_speed"), "set_floor_constant_speed_enabled", "is_floor_constant_speed_enabled");
+ ADD_PROPERTY(PropertyInfo(Variant::BOOL, "floor_block_on_wall"), "set_floor_block_on_wall_enabled", "is_floor_block_on_wall_enabled");
+ ADD_PROPERTY(PropertyInfo(Variant::FLOAT, "floor_max_angle", PROPERTY_HINT_RANGE, "0,180,0.1,radians"), "set_floor_max_angle", "get_floor_max_angle");
+ ADD_PROPERTY(PropertyInfo(Variant::FLOAT, "floor_snap_length", PROPERTY_HINT_RANGE, "0,1,0.01,or_greater"), "set_floor_snap_length", "get_floor_snap_length");
+ ADD_GROUP("Moving platform", "moving_platform");
+ ADD_PROPERTY(PropertyInfo(Variant::INT, "moving_platform_apply_velocity_on_leave", PROPERTY_HINT_ENUM, "Always,Upward Only,Never", PROPERTY_USAGE_DEFAULT), "set_moving_platform_apply_velocity_on_leave", "get_moving_platform_apply_velocity_on_leave");
+ ADD_PROPERTY(PropertyInfo(Variant::INT, "moving_platform_floor_layers", PROPERTY_HINT_LAYERS_2D_PHYSICS), "set_moving_platform_floor_layers", "get_moving_platform_floor_layers");
+ ADD_PROPERTY(PropertyInfo(Variant::INT, "moving_platform_wall_layers", PROPERTY_HINT_LAYERS_2D_PHYSICS), "set_moving_platform_wall_layers", "get_moving_platform_wall_layers");
ADD_PROPERTY(PropertyInfo(Variant::FLOAT, "collision/safe_margin", PROPERTY_HINT_RANGE, "0.001,256,0.001"), "set_safe_margin", "get_safe_margin");
+
+ BIND_ENUM_CONSTANT(MOTION_MODE_GROUNDED);
+ BIND_ENUM_CONSTANT(MOTION_MODE_FREE);
+
+ BIND_ENUM_CONSTANT(PLATFORM_VEL_ON_LEAVE_ALWAYS);
+ BIND_ENUM_CONSTANT(PLATFORM_VEL_ON_LEAVE_UPWARD_ONLY);
+ BIND_ENUM_CONSTANT(PLATFORM_VEL_ON_LEAVE_NEVER);
+}
+
+void CharacterBody3D::_validate_property(PropertyInfo &property) const {
+ if (motion_mode == MOTION_MODE_FREE) {
+ if (property.name.begins_with("floor_") || property.name == "up_direction" || property.name == "slide_on_ceiling") {
+ property.usage = PROPERTY_USAGE_NOEDITOR | PROPERTY_USAGE_INTERNAL;
+ }
+ }
}
CharacterBody3D::CharacterBody3D() :
@@ -1391,14 +1879,6 @@ CharacterBody3D::~CharacterBody3D() {
///////////////////////////////////////
-Vector3 KinematicCollision3D::get_position() const {
- return result.collision_point;
-}
-
-Vector3 KinematicCollision3D::get_normal() const {
- return result.collision_normal;
-}
-
Vector3 KinematicCollision3D::get_travel() const {
return result.travel;
}
@@ -1407,41 +1887,60 @@ Vector3 KinematicCollision3D::get_remainder() const {
return result.remainder;
}
-real_t KinematicCollision3D::get_angle(const Vector3 &p_up_direction) const {
+int KinematicCollision3D::get_collision_count() const {
+ return result.collision_count;
+}
+
+Vector3 KinematicCollision3D::get_position(int p_collision_index) const {
+ ERR_FAIL_INDEX_V(p_collision_index, result.collision_count, Vector3());
+ return result.collisions[p_collision_index].position;
+}
+
+Vector3 KinematicCollision3D::get_normal(int p_collision_index) const {
+ ERR_FAIL_INDEX_V(p_collision_index, result.collision_count, Vector3());
+ return result.collisions[p_collision_index].normal;
+}
+
+real_t KinematicCollision3D::get_angle(int p_collision_index, const Vector3 &p_up_direction) const {
+ ERR_FAIL_INDEX_V(p_collision_index, result.collision_count, 0.0);
ERR_FAIL_COND_V(p_up_direction == Vector3(), 0);
- return result.get_angle(p_up_direction);
+ return result.collisions[p_collision_index].get_angle(p_up_direction);
}
-Object *KinematicCollision3D::get_local_shape() const {
+Object *KinematicCollision3D::get_local_shape(int p_collision_index) const {
+ ERR_FAIL_INDEX_V(p_collision_index, result.collision_count, nullptr);
if (!owner) {
return nullptr;
}
- uint32_t ownerid = owner->shape_find_owner(result.collision_local_shape);
+ uint32_t ownerid = owner->shape_find_owner(result.collisions[p_collision_index].local_shape);
return owner->shape_owner_get_owner(ownerid);
}
-Object *KinematicCollision3D::get_collider() const {
- if (result.collider_id.is_valid()) {
- return ObjectDB::get_instance(result.collider_id);
+Object *KinematicCollision3D::get_collider(int p_collision_index) const {
+ ERR_FAIL_INDEX_V(p_collision_index, result.collision_count, nullptr);
+ if (result.collisions[p_collision_index].collider_id.is_valid()) {
+ return ObjectDB::get_instance(result.collisions[p_collision_index].collider_id);
}
return nullptr;
}
-ObjectID KinematicCollision3D::get_collider_id() const {
- return result.collider_id;
+ObjectID KinematicCollision3D::get_collider_id(int p_collision_index) const {
+ ERR_FAIL_INDEX_V(p_collision_index, result.collision_count, ObjectID());
+ return result.collisions[p_collision_index].collider_id;
}
-RID KinematicCollision3D::get_collider_rid() const {
- return result.collider;
+RID KinematicCollision3D::get_collider_rid(int p_collision_index) const {
+ ERR_FAIL_INDEX_V(p_collision_index, result.collision_count, RID());
+ return result.collisions[p_collision_index].collider;
}
-Object *KinematicCollision3D::get_collider_shape() const {
- Object *collider = get_collider();
+Object *KinematicCollision3D::get_collider_shape(int p_collision_index) const {
+ Object *collider = get_collider(p_collision_index);
if (collider) {
CollisionObject3D *obj2d = Object::cast_to<CollisionObject3D>(collider);
if (obj2d) {
- uint32_t ownerid = obj2d->shape_find_owner(result.collider_shape);
+ uint32_t ownerid = obj2d->shape_find_owner(result.collisions[p_collision_index].collider_shape);
return obj2d->shape_owner_get_owner(ownerid);
}
}
@@ -1449,45 +1948,101 @@ Object *KinematicCollision3D::get_collider_shape() const {
return nullptr;
}
-int KinematicCollision3D::get_collider_shape_index() const {
- return result.collider_shape;
+int KinematicCollision3D::get_collider_shape_index(int p_collision_index) const {
+ ERR_FAIL_INDEX_V(p_collision_index, result.collision_count, 0);
+ return result.collisions[p_collision_index].collider_shape;
}
-Vector3 KinematicCollision3D::get_collider_velocity() const {
- return result.collider_velocity;
+Vector3 KinematicCollision3D::get_collider_velocity(int p_collision_index) const {
+ ERR_FAIL_INDEX_V(p_collision_index, result.collision_count, Vector3());
+ return result.collisions[p_collision_index].collider_velocity;
}
-Variant KinematicCollision3D::get_collider_metadata() const {
+Variant KinematicCollision3D::get_collider_metadata(int p_collision_index) const {
+ ERR_FAIL_INDEX_V(p_collision_index, result.collision_count, Variant());
return Variant();
}
+Vector3 KinematicCollision3D::get_best_position() const {
+ return result.collision_count ? get_position() : Vector3();
+}
+
+Vector3 KinematicCollision3D::get_best_normal() const {
+ return result.collision_count ? get_normal() : Vector3();
+}
+
+Object *KinematicCollision3D::get_best_local_shape() const {
+ return result.collision_count ? get_local_shape() : nullptr;
+}
+
+Object *KinematicCollision3D::get_best_collider() const {
+ return result.collision_count ? get_collider() : nullptr;
+}
+
+ObjectID KinematicCollision3D::get_best_collider_id() const {
+ return result.collision_count ? get_collider_id() : ObjectID();
+}
+
+RID KinematicCollision3D::get_best_collider_rid() const {
+ return result.collision_count ? get_collider_rid() : RID();
+}
+
+Object *KinematicCollision3D::get_best_collider_shape() const {
+ return result.collision_count ? get_collider_shape() : nullptr;
+}
+
+int KinematicCollision3D::get_best_collider_shape_index() const {
+ return result.collision_count ? get_collider_shape_index() : 0;
+}
+
+Vector3 KinematicCollision3D::get_best_collider_velocity() const {
+ return result.collision_count ? get_collider_velocity() : Vector3();
+}
+
+Variant KinematicCollision3D::get_best_collider_metadata() const {
+ return result.collision_count ? get_collider_metadata() : Variant();
+}
+
void KinematicCollision3D::_bind_methods() {
- ClassDB::bind_method(D_METHOD("get_position"), &KinematicCollision3D::get_position);
- ClassDB::bind_method(D_METHOD("get_normal"), &KinematicCollision3D::get_normal);
ClassDB::bind_method(D_METHOD("get_travel"), &KinematicCollision3D::get_travel);
ClassDB::bind_method(D_METHOD("get_remainder"), &KinematicCollision3D::get_remainder);
- ClassDB::bind_method(D_METHOD("get_angle", "up_direction"), &KinematicCollision3D::get_angle, DEFVAL(Vector3(0.0, 1.0, 0.0)));
- ClassDB::bind_method(D_METHOD("get_local_shape"), &KinematicCollision3D::get_local_shape);
- ClassDB::bind_method(D_METHOD("get_collider"), &KinematicCollision3D::get_collider);
- ClassDB::bind_method(D_METHOD("get_collider_id"), &KinematicCollision3D::get_collider_id);
- ClassDB::bind_method(D_METHOD("get_collider_rid"), &KinematicCollision3D::get_collider_rid);
- ClassDB::bind_method(D_METHOD("get_collider_shape"), &KinematicCollision3D::get_collider_shape);
- ClassDB::bind_method(D_METHOD("get_collider_shape_index"), &KinematicCollision3D::get_collider_shape_index);
- ClassDB::bind_method(D_METHOD("get_collider_velocity"), &KinematicCollision3D::get_collider_velocity);
- ClassDB::bind_method(D_METHOD("get_collider_metadata"), &KinematicCollision3D::get_collider_metadata);
-
- ADD_PROPERTY(PropertyInfo(Variant::VECTOR3, "position"), "", "get_position");
- ADD_PROPERTY(PropertyInfo(Variant::VECTOR3, "normal"), "", "get_normal");
+ ClassDB::bind_method(D_METHOD("get_collision_count"), &KinematicCollision3D::get_collision_count);
+ ClassDB::bind_method(D_METHOD("get_position", "collision_index"), &KinematicCollision3D::get_position, DEFVAL(0));
+ ClassDB::bind_method(D_METHOD("get_normal", "collision_index"), &KinematicCollision3D::get_normal, DEFVAL(0));
+ ClassDB::bind_method(D_METHOD("get_angle", "collision_index", "up_direction"), &KinematicCollision3D::get_angle, DEFVAL(0), DEFVAL(Vector3(0.0, 1.0, 0.0)));
+ ClassDB::bind_method(D_METHOD("get_local_shape", "collision_index"), &KinematicCollision3D::get_local_shape, DEFVAL(0));
+ ClassDB::bind_method(D_METHOD("get_collider", "collision_index"), &KinematicCollision3D::get_collider, DEFVAL(0));
+ ClassDB::bind_method(D_METHOD("get_collider_id", "collision_index"), &KinematicCollision3D::get_collider_id, DEFVAL(0));
+ ClassDB::bind_method(D_METHOD("get_collider_rid", "collision_index"), &KinematicCollision3D::get_collider_rid, DEFVAL(0));
+ ClassDB::bind_method(D_METHOD("get_collider_shape", "collision_index"), &KinematicCollision3D::get_collider_shape, DEFVAL(0));
+ ClassDB::bind_method(D_METHOD("get_collider_shape_index", "collision_index"), &KinematicCollision3D::get_collider_shape_index, DEFVAL(0));
+ ClassDB::bind_method(D_METHOD("get_collider_velocity", "collision_index"), &KinematicCollision3D::get_collider_velocity, DEFVAL(0));
+ ClassDB::bind_method(D_METHOD("get_collider_metadata", "collision_index"), &KinematicCollision3D::get_collider_metadata, DEFVAL(0));
+
+ ClassDB::bind_method(D_METHOD("get_best_position"), &KinematicCollision3D::get_best_position);
+ ClassDB::bind_method(D_METHOD("get_best_normal"), &KinematicCollision3D::get_best_normal);
+ ClassDB::bind_method(D_METHOD("get_best_local_shape"), &KinematicCollision3D::get_best_local_shape);
+ ClassDB::bind_method(D_METHOD("get_best_collider"), &KinematicCollision3D::get_best_collider);
+ ClassDB::bind_method(D_METHOD("get_best_collider_id"), &KinematicCollision3D::get_best_collider_id);
+ ClassDB::bind_method(D_METHOD("get_best_collider_rid"), &KinematicCollision3D::get_best_collider_rid);
+ ClassDB::bind_method(D_METHOD("get_best_collider_shape"), &KinematicCollision3D::get_best_collider_shape);
+ ClassDB::bind_method(D_METHOD("get_best_collider_shape_index"), &KinematicCollision3D::get_best_collider_shape_index);
+ ClassDB::bind_method(D_METHOD("get_best_collider_velocity"), &KinematicCollision3D::get_best_collider_velocity);
+ ClassDB::bind_method(D_METHOD("get_best_collider_metadata"), &KinematicCollision3D::get_best_collider_metadata);
+
ADD_PROPERTY(PropertyInfo(Variant::VECTOR3, "travel"), "", "get_travel");
ADD_PROPERTY(PropertyInfo(Variant::VECTOR3, "remainder"), "", "get_remainder");
- ADD_PROPERTY(PropertyInfo(Variant::OBJECT, "local_shape"), "", "get_local_shape");
- ADD_PROPERTY(PropertyInfo(Variant::OBJECT, "collider"), "", "get_collider");
- ADD_PROPERTY(PropertyInfo(Variant::INT, "collider_id"), "", "get_collider_id");
- ADD_PROPERTY(PropertyInfo(Variant::RID, "collider_rid"), "", "get_collider_rid");
- ADD_PROPERTY(PropertyInfo(Variant::OBJECT, "collider_shape"), "", "get_collider_shape");
- ADD_PROPERTY(PropertyInfo(Variant::INT, "collider_shape_index"), "", "get_collider_shape_index");
- ADD_PROPERTY(PropertyInfo(Variant::VECTOR3, "collider_velocity"), "", "get_collider_velocity");
- ADD_PROPERTY(PropertyInfo(Variant::NIL, "collider_metadata", PROPERTY_HINT_NONE, "", PROPERTY_USAGE_NIL_IS_VARIANT), "", "get_collider_metadata");
+ ADD_PROPERTY(PropertyInfo(Variant::INT, "collision_count"), "", "get_collision_count");
+ ADD_PROPERTY(PropertyInfo(Variant::VECTOR3, "position"), "", "get_best_position");
+ ADD_PROPERTY(PropertyInfo(Variant::VECTOR3, "normal"), "", "get_best_normal");
+ ADD_PROPERTY(PropertyInfo(Variant::OBJECT, "local_shape"), "", "get_best_local_shape");
+ ADD_PROPERTY(PropertyInfo(Variant::OBJECT, "collider"), "", "get_best_collider");
+ ADD_PROPERTY(PropertyInfo(Variant::INT, "collider_id"), "", "get_best_collider_id");
+ ADD_PROPERTY(PropertyInfo(Variant::RID, "collider_rid"), "", "get_best_collider_rid");
+ ADD_PROPERTY(PropertyInfo(Variant::OBJECT, "collider_shape"), "", "get_best_collider_shape");
+ ADD_PROPERTY(PropertyInfo(Variant::INT, "collider_shape_index"), "", "get_best_collider_shape_index");
+ ADD_PROPERTY(PropertyInfo(Variant::VECTOR3, "collider_velocity"), "", "get_best_collider_velocity");
+ ADD_PROPERTY(PropertyInfo(Variant::NIL, "collider_metadata", PROPERTY_HINT_NONE, "", PROPERTY_USAGE_NIL_IS_VARIANT), "", "get_best_collider_metadata");
}
///////////////////////////////////////
diff --git a/scene/3d/physics_body_3d.h b/scene/3d/physics_body_3d.h
index d29241cdce..a53147cb8f 100644
--- a/scene/3d/physics_body_3d.h
+++ b/scene/3d/physics_body_3d.h
@@ -50,11 +50,11 @@ protected:
uint16_t locked_axis = 0;
- Ref<KinematicCollision3D> _move(const Vector3 &p_motion, bool p_test_only = false, real_t p_margin = 0.001);
+ Ref<KinematicCollision3D> _move(const Vector3 &p_motion, bool p_test_only = false, real_t p_margin = 0.001, int p_max_collisions = 1);
public:
- bool move_and_collide(const Vector3 &p_motion, PhysicsServer3D::MotionResult &r_result, real_t p_margin, bool p_test_only = false, bool p_cancel_sliding = true, bool p_collide_separation_ray = false, const Set<RID> &p_exclude = Set<RID>());
- bool test_move(const Transform3D &p_from, const Vector3 &p_motion, const Ref<KinematicCollision3D> &r_collision = Ref<KinematicCollision3D>(), real_t p_margin = 0.001);
+ bool move_and_collide(const Vector3 &p_motion, PhysicsServer3D::MotionResult &r_result, real_t p_margin, bool p_test_only = false, int p_max_collisions = 1, bool p_cancel_sliding = true, bool p_collide_separation_ray = false, const Set<RID> &p_exclude = Set<RID>());
+ bool test_move(const Transform3D &p_from, const Vector3 &p_motion, const Ref<KinematicCollision3D> &r_collision = Ref<KinematicCollision3D>(), real_t p_margin = 0.001, int p_max_collisions = 1);
void set_axis_lock(PhysicsServer3D::BodyAxis p_axis, bool p_lock);
bool get_axis_lock(PhysicsServer3D::BodyAxis p_axis) const;
@@ -105,7 +105,7 @@ private:
Vector3 linear_velocity;
Vector3 angular_velocity;
- bool sync_to_physics = false;
+ bool sync_to_physics = true;
Transform3D last_valid_transform;
@@ -133,11 +133,9 @@ class RigidDynamicBody3D : public PhysicsBody3D {
GDCLASS(RigidDynamicBody3D, PhysicsBody3D);
public:
- enum Mode {
- MODE_DYNAMIC,
- MODE_STATIC,
- MODE_DYNAMIC_LOCKED,
- MODE_KINEMATIC,
+ enum FreezeMode {
+ FREEZE_MODE_STATIC,
+ FREEZE_MODE_KINEMATIC,
};
enum CenterOfMassMode {
@@ -145,11 +143,11 @@ public:
CENTER_OF_MASS_MODE_CUSTOM,
};
- GDVIRTUAL1(_integrate_forces, PhysicsDirectBodyState3D *)
-
-protected:
+private:
bool can_sleep = true;
- Mode mode = MODE_DYNAMIC;
+ bool lock_rotation = false;
+ bool freeze = false;
+ FreezeMode freeze_mode = FREEZE_MODE_STATIC;
real_t mass = 1.0;
Vector3 inertia;
@@ -214,16 +212,28 @@ protected:
void _body_inout(int p_status, const RID &p_body, ObjectID p_instance, int p_body_shape, int p_local_shape);
static void _body_state_changed_callback(void *p_instance, PhysicsDirectBodyState3D *p_state);
- virtual void _body_state_changed(PhysicsDirectBodyState3D *p_state);
+protected:
void _notification(int p_what);
static void _bind_methods();
virtual void _validate_property(PropertyInfo &property) const override;
+ GDVIRTUAL1(_integrate_forces, PhysicsDirectBodyState3D *)
+
+ virtual void _body_state_changed(PhysicsDirectBodyState3D *p_state);
+
+ void _apply_body_mode();
+
public:
- void set_mode(Mode p_mode);
- Mode get_mode() const;
+ void set_lock_rotation_enabled(bool p_lock_rotation);
+ bool is_lock_rotation_enabled() const;
+
+ void set_freeze_enabled(bool p_freeze);
+ bool is_freeze_enabled() const;
+
+ void set_freeze_mode(FreezeMode p_freeze_mode);
+ FreezeMode get_freeze_mode() const;
void set_mass(real_t p_mass);
real_t get_mass() const;
@@ -298,7 +308,7 @@ private:
void _reload_physics_characteristics();
};
-VARIANT_ENUM_CAST(RigidDynamicBody3D::Mode);
+VARIANT_ENUM_CAST(RigidDynamicBody3D::FreezeMode);
VARIANT_ENUM_CAST(RigidDynamicBody3D::CenterOfMassMode);
class KinematicCollision3D;
@@ -306,76 +316,148 @@ class KinematicCollision3D;
class CharacterBody3D : public PhysicsBody3D {
GDCLASS(CharacterBody3D, PhysicsBody3D);
+public:
+ enum MotionMode {
+ MOTION_MODE_GROUNDED,
+ MOTION_MODE_FREE,
+ };
+ enum MovingPlatformApplyVelocityOnLeave {
+ PLATFORM_VEL_ON_LEAVE_ALWAYS,
+ PLATFORM_VEL_ON_LEAVE_UPWARD_ONLY,
+ PLATFORM_VEL_ON_LEAVE_NEVER,
+ };
+ bool move_and_slide();
+
+ virtual Vector3 get_linear_velocity() const override;
+ void set_linear_velocity(const Vector3 &p_velocity);
+
+ bool is_on_floor() const;
+ bool is_on_floor_only() const;
+ bool is_on_wall() const;
+ bool is_on_wall_only() const;
+ bool is_on_ceiling() const;
+ bool is_on_ceiling_only() const;
+ Vector3 get_last_motion() const;
+ Vector3 get_position_delta() const;
+ Vector3 get_floor_normal() const;
+ Vector3 get_wall_normal() const;
+ Vector3 get_real_velocity() const;
+ real_t get_floor_angle(const Vector3 &p_up_direction = Vector3(0.0, 1.0, 0.0)) const;
+ Vector3 get_platform_velocity() const;
+
+ int get_slide_collision_count() const;
+ PhysicsServer3D::MotionResult get_slide_collision(int p_bounce) const;
+
+ CharacterBody3D();
+ ~CharacterBody3D();
+
private:
real_t margin = 0.001;
+ MotionMode motion_mode = MOTION_MODE_GROUNDED;
+ MovingPlatformApplyVelocityOnLeave moving_platform_apply_velocity_on_leave = PLATFORM_VEL_ON_LEAVE_ALWAYS;
+ union CollisionState {
+ uint32_t state = 0;
+ struct {
+ bool floor;
+ bool wall;
+ bool ceiling;
+ };
+
+ CollisionState() {
+ }
+
+ CollisionState(bool p_floor, bool p_wall, bool p_ceiling) {
+ floor = p_floor;
+ wall = p_wall;
+ ceiling = p_ceiling;
+ }
+ };
- bool floor_stop_on_slope = false;
- int max_slides = 4;
+ CollisionState collision_state;
+ bool floor_constant_speed = false;
+ bool floor_stop_on_slope = true;
+ bool floor_block_on_wall = true;
+ bool slide_on_ceiling = true;
+ int max_slides = 6;
+ int platform_layer;
+ RID platform_rid;
+ uint32_t moving_platform_floor_layers = UINT32_MAX;
+ uint32_t moving_platform_wall_layers = 0;
+ real_t floor_snap_length = 0.1;
real_t floor_max_angle = Math::deg2rad((real_t)45.0);
- Vector3 snap;
+ real_t wall_min_slide_angle = Math::deg2rad((real_t)15.0);
Vector3 up_direction = Vector3(0.0, 1.0, 0.0);
-
Vector3 linear_velocity;
-
Vector3 floor_normal;
- Vector3 floor_velocity;
- RID on_floor_body;
- bool on_floor = false;
- bool on_ceiling = false;
- bool on_wall = false;
+ Vector3 wall_normal;
+ Vector3 last_motion;
+ Vector3 platform_velocity;
+ Vector3 previous_position;
+ Vector3 real_velocity;
+
Vector<PhysicsServer3D::MotionResult> motion_results;
Vector<Ref<KinematicCollision3D>> slide_colliders;
- Ref<KinematicCollision3D> _get_slide_collision(int p_bounce);
- Ref<KinematicCollision3D> _get_last_slide_collision();
-
- void _set_collision_direction(const PhysicsServer3D::MotionResult &p_result);
-
void set_safe_margin(real_t p_margin);
real_t get_safe_margin() const;
bool is_floor_stop_on_slope_enabled() const;
void set_floor_stop_on_slope_enabled(bool p_enabled);
+ bool is_floor_constant_speed_enabled() const;
+ void set_floor_constant_speed_enabled(bool p_enabled);
+
+ bool is_floor_block_on_wall_enabled() const;
+ void set_floor_block_on_wall_enabled(bool p_enabled);
+
+ bool is_slide_on_ceiling_enabled() const;
+ void set_slide_on_ceiling_enabled(bool p_enabled);
+
int get_max_slides() const;
void set_max_slides(int p_max_slides);
real_t get_floor_max_angle() const;
void set_floor_max_angle(real_t p_radians);
- const Vector3 &get_snap() const;
- void set_snap(const Vector3 &p_snap);
+ real_t get_floor_snap_length();
+ void set_floor_snap_length(real_t p_floor_snap_length);
- const Vector3 &get_up_direction() const;
- void set_up_direction(const Vector3 &p_up_direction);
+ real_t get_wall_min_slide_angle() const;
+ void set_wall_min_slide_angle(real_t p_radians);
-protected:
- void _notification(int p_what);
- static void _bind_methods();
+ uint32_t get_moving_platform_floor_layers() const;
+ void set_moving_platform_floor_layers(const uint32_t p_exclude_layer);
-public:
- bool move_and_slide();
+ uint32_t get_moving_platform_wall_layers() const;
+ void set_moving_platform_wall_layers(const uint32_t p_exclude_layer);
- virtual Vector3 get_linear_velocity() const override;
- void set_linear_velocity(const Vector3 &p_velocity);
+ void set_motion_mode(MotionMode p_mode);
+ MotionMode get_motion_mode() const;
- bool is_on_floor() const;
- bool is_on_floor_only() const;
- bool is_on_wall() const;
- bool is_on_wall_only() const;
- bool is_on_ceiling() const;
- bool is_on_ceiling_only() const;
- Vector3 get_floor_normal() const;
- real_t get_floor_angle(const Vector3 &p_up_direction = Vector3(0.0, 1.0, 0.0)) const;
- Vector3 get_platform_velocity() const;
+ void set_moving_platform_apply_velocity_on_leave(MovingPlatformApplyVelocityOnLeave p_on_leave_velocity);
+ MovingPlatformApplyVelocityOnLeave get_moving_platform_apply_velocity_on_leave() const;
- int get_slide_collision_count() const;
- PhysicsServer3D::MotionResult get_slide_collision(int p_bounce) const;
+ void _move_and_slide_free(double p_delta);
+ void _move_and_slide_grounded(double p_delta, bool p_was_on_floor);
- CharacterBody3D();
- ~CharacterBody3D();
+ Ref<KinematicCollision3D> _get_slide_collision(int p_bounce);
+ Ref<KinematicCollision3D> _get_last_slide_collision();
+ const Vector3 &get_up_direction() const;
+ bool _on_floor_if_snapped(bool was_on_floor, bool vel_dir_facing_up);
+ void set_up_direction(const Vector3 &p_up_direction);
+ void _set_collision_direction(const PhysicsServer3D::MotionResult &p_result, CollisionState &r_state, CollisionState p_apply_state = CollisionState(true, true, true));
+ void _set_platform_data(const PhysicsServer3D::MotionCollision &p_collision);
+ void _snap_on_floor(bool was_on_floor, bool vel_dir_facing_up);
+
+protected:
+ void _notification(int p_what);
+ static void _bind_methods();
+ virtual void _validate_property(PropertyInfo &property) const override;
};
+VARIANT_ENUM_CAST(CharacterBody3D::MotionMode);
+VARIANT_ENUM_CAST(CharacterBody3D::MovingPlatformApplyVelocityOnLeave);
+
class KinematicCollision3D : public RefCounted {
GDCLASS(KinematicCollision3D, RefCounted);
@@ -388,19 +470,31 @@ protected:
static void _bind_methods();
public:
- Vector3 get_position() const;
- Vector3 get_normal() const;
Vector3 get_travel() const;
Vector3 get_remainder() const;
- real_t get_angle(const Vector3 &p_up_direction = Vector3(0.0, 1.0, 0.0)) const;
- Object *get_local_shape() const;
- Object *get_collider() const;
- ObjectID get_collider_id() const;
- RID get_collider_rid() const;
- Object *get_collider_shape() const;
- int get_collider_shape_index() const;
- Vector3 get_collider_velocity() const;
- Variant get_collider_metadata() const;
+ int get_collision_count() const;
+ Vector3 get_position(int p_collision_index = 0) const;
+ Vector3 get_normal(int p_collision_index = 0) const;
+ real_t get_angle(int p_collision_index = 0, const Vector3 &p_up_direction = Vector3(0.0, 1.0, 0.0)) const;
+ Object *get_local_shape(int p_collision_index = 0) const;
+ Object *get_collider(int p_collision_index = 0) const;
+ ObjectID get_collider_id(int p_collision_index = 0) const;
+ RID get_collider_rid(int p_collision_index = 0) const;
+ Object *get_collider_shape(int p_collision_index = 0) const;
+ int get_collider_shape_index(int p_collision_index = 0) const;
+ Vector3 get_collider_velocity(int p_collision_index = 0) const;
+ Variant get_collider_metadata(int p_collision_index = 0) const;
+
+ Vector3 get_best_position() const;
+ Vector3 get_best_normal() const;
+ Object *get_best_local_shape() const;
+ Object *get_best_collider() const;
+ ObjectID get_best_collider_id() const;
+ RID get_best_collider_rid() const;
+ Object *get_best_collider_shape() const;
+ int get_best_collider_shape_index() const;
+ Vector3 get_best_collider_velocity() const;
+ Variant get_best_collider_metadata() const;
};
class PhysicalBone3D : public PhysicsBody3D {
diff --git a/scene/3d/skeleton_3d.cpp b/scene/3d/skeleton_3d.cpp
index 0f5de621ea..b7a79a2645 100644
--- a/scene/3d/skeleton_3d.cpp
+++ b/scene/3d/skeleton_3d.cpp
@@ -520,6 +520,7 @@ void Skeleton3D::set_bone_parent(int p_bone, int p_parent) {
const int bone_size = bones.size();
ERR_FAIL_INDEX(p_bone, bone_size);
ERR_FAIL_COND(p_parent != -1 && (p_parent < 0));
+ ERR_FAIL_COND(p_bone == p_parent);
bones.write[p_bone].parent = p_parent;
process_order_dirty = true;
diff --git a/scene/3d/skeleton_ik_3d.cpp b/scene/3d/skeleton_ik_3d.cpp
index 466f67afb8..8d90aabfac 100644
--- a/scene/3d/skeleton_ik_3d.cpp
+++ b/scene/3d/skeleton_ik_3d.cpp
@@ -99,7 +99,7 @@ bool FabrikInverseKinematic::build_chain(Task *p_task, bool p_force_simple_chain
child_ci->current_pos = child_ci->initial_transform.origin;
if (child_ci->parent_item) {
- child_ci->length = (child_ci->current_pos - child_ci->parent_item->current_pos).length();
+ child_ci->length = child_ci->parent_item->current_pos.distance_to(child_ci->current_pos);
}
}
@@ -140,7 +140,7 @@ void FabrikInverseKinematic::solve_simple(Task *p_task, bool p_solve_magnet, Vec
solve_simple_backwards(p_task->chain, p_solve_magnet);
solve_simple_forwards(p_task->chain, p_solve_magnet, p_origin_pos);
- distance_to_goal = (p_task->chain.tips[0].chain_item->current_pos - p_task->chain.tips[0].end_effector->goal_transform.origin).length();
+ distance_to_goal = p_task->chain.tips[0].end_effector->goal_transform.origin.distance_to(p_task->chain.tips[0].chain_item->current_pos);
}
}
diff --git a/scene/3d/vehicle_body_3d.cpp b/scene/3d/vehicle_body_3d.cpp
index bc3bb81ed4..9a2aaa8be2 100644
--- a/scene/3d/vehicle_body_3d.cpp
+++ b/scene/3d/vehicle_body_3d.cpp
@@ -470,7 +470,7 @@ real_t VehicleBody3D::_ray_cast(int p_idx, PhysicsDirectBodyState3D *s) {
}
void VehicleBody3D::_update_suspension(PhysicsDirectBodyState3D *s) {
- real_t chassisMass = mass;
+ real_t chassisMass = get_mass();
for (int w_it = 0; w_it < wheels.size(); w_it++) {
VehicleWheel3D &wheel_info = *wheels[w_it];
@@ -558,7 +558,7 @@ void VehicleBody3D::_resolve_single_bilateral(PhysicsDirectBodyState3D *s, const
rel_pos2,
normal,
s->get_inverse_inertia_tensor().get_main_diagonal(),
- 1.0 / mass,
+ 1.0 / get_mass(),
b2invinertia,
b2invmass);
@@ -584,7 +584,7 @@ void VehicleBody3D::_resolve_single_bilateral(PhysicsDirectBodyState3D *s, const
#define ONLY_USE_LINEAR_MASS
#ifdef ONLY_USE_LINEAR_MASS
- real_t massTerm = real_t(1.) / ((1.0 / mass) + b2invmass);
+ real_t massTerm = real_t(1.) / ((1.0 / get_mass()) + b2invmass);
impulse = -contactDamping * rel_vel * massTerm;
#else
real_t velocityImpulse = -contactDamping * rel_vel * jacDiagABInv;
diff --git a/scene/3d/voxelizer.cpp b/scene/3d/voxelizer.cpp
index 2d32379d69..04f371f4b2 100644
--- a/scene/3d/voxelizer.cpp
+++ b/scene/3d/voxelizer.cpp
@@ -173,7 +173,7 @@ void Voxelizer::_plot_face(int p_idx, int p_level, int p_x, int p_y, int p_z, co
//could not in any way get texture information.. so use closest point to center
Face3 f(p_vtx[0], p_vtx[1], p_vtx[2]);
- Vector3 inters = f.get_closest_point_to(p_aabb.position + p_aabb.size * 0.5);
+ Vector3 inters = f.get_closest_point_to(p_aabb.get_center());
Vector3 lnormal;
Vector2 uv;
@@ -434,7 +434,7 @@ void Voxelizer::plot_mesh(const Transform3D &p_xform, Ref<Mesh> &p_mesh, const V
}
//test against original bounds
- if (!Geometry3D::triangle_box_overlap(original_bounds.position + original_bounds.size * 0.5, original_bounds.size * 0.5, vtxs)) {
+ if (!Geometry3D::triangle_box_overlap(original_bounds.get_center(), original_bounds.size * 0.5, vtxs)) {
continue;
}
//plot
@@ -466,7 +466,7 @@ void Voxelizer::plot_mesh(const Transform3D &p_xform, Ref<Mesh> &p_mesh, const V
}
//test against original bounds
- if (!Geometry3D::triangle_box_overlap(original_bounds.position + original_bounds.size * 0.5, original_bounds.size * 0.5, vtxs)) {
+ if (!Geometry3D::triangle_box_overlap(original_bounds.get_center(), original_bounds.size * 0.5, vtxs)) {
continue;
}
//plot face
@@ -885,7 +885,7 @@ Vector<uint8_t> Voxelizer::get_sdf_3d_image() const {
void Voxelizer::_debug_mesh(int p_idx, int p_level, const AABB &p_aabb, Ref<MultiMesh> &p_multimesh, int &idx) {
if (p_level == cell_subdiv - 1) {
- Vector3 center = p_aabb.position + p_aabb.size * 0.5;
+ Vector3 center = p_aabb.get_center();
Transform3D xform;
xform.origin = center;
xform.basis.scale(p_aabb.size * 0.5);
diff --git a/scene/animation/SCsub b/scene/animation/SCsub
index cc33a5af84..d0aa0bc8aa 100644
--- a/scene/animation/SCsub
+++ b/scene/animation/SCsub
@@ -6,11 +6,8 @@ Import("env")
thirdparty_obj = []
-thirdparty_sources = "#thirdparty/misc/easing_equations.cpp"
-
env_thirdparty = env.Clone()
env_thirdparty.disable_warnings()
-env_thirdparty.add_source_files(thirdparty_obj, thirdparty_sources)
env.scene_sources += thirdparty_obj
# Godot source files
diff --git a/scene/animation/animation_blend_tree.cpp b/scene/animation/animation_blend_tree.cpp
index 91755b5824..af186072ac 100644
--- a/scene/animation/animation_blend_tree.cpp
+++ b/scene/animation/animation_blend_tree.cpp
@@ -248,27 +248,26 @@ double AnimationNodeOneShot::process(double p_time, bool p_seek) {
if (fade_in > 0) {
blend = time / fade_in;
} else {
- blend = 0; //wtf
+ blend = 0;
}
-
- } else if (!do_start && remaining < fade_out) {
- if (fade_out) {
+ } else if (!do_start && remaining <= fade_out) {
+ if (fade_out > 0) {
blend = (remaining / fade_out);
} else {
- blend = 1.0;
+ blend = 0;
}
} else {
blend = 1.0;
}
- float main_rem;
+ double main_rem;
if (mix == MIX_MODE_ADD) {
main_rem = blend_input(0, p_time, p_seek, 1.0, FILTER_IGNORE, !sync);
} else {
main_rem = blend_input(0, p_time, p_seek, 1.0 - blend, FILTER_BLEND, !sync);
}
- float os_rem = blend_input(1, os_seek ? time : p_time, os_seek, blend, FILTER_PASS, false);
+ double os_rem = blend_input(1, os_seek ? time : p_time, os_seek, blend, FILTER_PASS, false);
if (do_start) {
remaining = os_rem;
diff --git a/scene/animation/easing_equations.h b/scene/animation/easing_equations.h
new file mode 100644
index 0000000000..c38d083b7f
--- /dev/null
+++ b/scene/animation/easing_equations.h
@@ -0,0 +1,405 @@
+/*************************************************************************/
+/* easing_equations.h */
+/*************************************************************************/
+/* This file is part of: */
+/* GODOT ENGINE */
+/* https://godotengine.org */
+/*************************************************************************/
+/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* */
+/* Permission is hereby granted, free of charge, to any person obtaining */
+/* a copy of this software and associated documentation files (the */
+/* "Software"), to deal in the Software without restriction, including */
+/* without limitation the rights to use, copy, modify, merge, publish, */
+/* distribute, sublicense, and/or sell copies of the Software, and to */
+/* permit persons to whom the Software is furnished to do so, subject to */
+/* the following conditions: */
+/* */
+/* The above copyright notice and this permission notice shall be */
+/* included in all copies or substantial portions of the Software. */
+/* */
+/* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, */
+/* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF */
+/* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.*/
+/* IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY */
+/* CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, */
+/* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE */
+/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
+/*************************************************************************/
+
+/*
+ * Derived from Robert Penner's easing equations: http://robertpenner.com/easing/
+ *
+ * Copyright (c) 2001 Robert Penner
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
+ * of this software and associated documentation files (the "Software"), to deal
+ * in the Software without restriction, including without limitation the rights
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+ * copies of the Software, and to permit persons to whom the Software is
+ * furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in all
+ * copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+ * SOFTWARE.
+ */
+
+#ifndef EASING_EQUATIONS_H
+#define EASING_EQUATIONS_H
+
+namespace linear {
+static real_t in(real_t t, real_t b, real_t c, real_t d) {
+ return c * t / d + b;
+}
+}; // namespace linear
+
+namespace sine {
+static real_t in(real_t t, real_t b, real_t c, real_t d) {
+ return -c * cos(t / d * (Math_PI / 2)) + c + b;
+}
+
+static real_t out(real_t t, real_t b, real_t c, real_t d) {
+ return c * sin(t / d * (Math_PI / 2)) + b;
+}
+
+static real_t in_out(real_t t, real_t b, real_t c, real_t d) {
+ return -c / 2 * (cos(Math_PI * t / d) - 1) + b;
+}
+
+static real_t out_in(real_t t, real_t b, real_t c, real_t d) {
+ if (t < d / 2) {
+ return out(t * 2, b, c / 2, d);
+ }
+ return in(t * 2 - d, b + c / 2, c / 2, d);
+}
+}; // namespace sine
+
+namespace quint {
+static real_t in(real_t t, real_t b, real_t c, real_t d) {
+ return c * pow(t / d, 5) + b;
+}
+
+static real_t out(real_t t, real_t b, real_t c, real_t d) {
+ return c * (pow(t / d - 1, 5) + 1) + b;
+}
+
+static real_t in_out(real_t t, real_t b, real_t c, real_t d) {
+ t = t / d * 2;
+
+ if (t < 1) {
+ return c / 2 * pow(t, 5) + b;
+ }
+ return c / 2 * (pow(t - 2, 5) + 2) + b;
+}
+
+static real_t out_in(real_t t, real_t b, real_t c, real_t d) {
+ if (t < d / 2) {
+ return out(t * 2, b, c / 2, d);
+ }
+ return in(t * 2 - d, b + c / 2, c / 2, d);
+}
+}; // namespace quint
+
+namespace quart {
+static real_t in(real_t t, real_t b, real_t c, real_t d) {
+ return c * pow(t / d, 4) + b;
+}
+
+static real_t out(real_t t, real_t b, real_t c, real_t d) {
+ return -c * (pow(t / d - 1, 4) - 1) + b;
+}
+
+static real_t in_out(real_t t, real_t b, real_t c, real_t d) {
+ t = t / d * 2;
+
+ if (t < 1) {
+ return c / 2 * pow(t, 4) + b;
+ }
+ return -c / 2 * (pow(t - 2, 4) - 2) + b;
+}
+
+static real_t out_in(real_t t, real_t b, real_t c, real_t d) {
+ if (t < d / 2) {
+ return out(t * 2, b, c / 2, d);
+ }
+ return in(t * 2 - d, b + c / 2, c / 2, d);
+}
+}; // namespace quart
+
+namespace quad {
+static real_t in(real_t t, real_t b, real_t c, real_t d) {
+ return c * pow(t / d, 2) + b;
+}
+
+static real_t out(real_t t, real_t b, real_t c, real_t d) {
+ t /= d;
+ return -c * t * (t - 2) + b;
+}
+
+static real_t in_out(real_t t, real_t b, real_t c, real_t d) {
+ t = t / d * 2;
+
+ if (t < 1) {
+ return c / 2 * pow(t, 2) + b;
+ }
+ return -c / 2 * ((t - 1) * (t - 3) - 1) + b;
+}
+
+static real_t out_in(real_t t, real_t b, real_t c, real_t d) {
+ if (t < d / 2) {
+ return out(t * 2, b, c / 2, d);
+ }
+ return in(t * 2 - d, b + c / 2, c / 2, d);
+}
+}; // namespace quad
+
+namespace expo {
+static real_t in(real_t t, real_t b, real_t c, real_t d) {
+ if (t == 0) {
+ return b;
+ }
+ return c * pow(2, 10 * (t / d - 1)) + b - c * 0.001;
+}
+
+static real_t out(real_t t, real_t b, real_t c, real_t d) {
+ if (t == d) {
+ return b + c;
+ }
+ return c * 1.001 * (-pow(2, -10 * t / d) + 1) + b;
+}
+
+static real_t in_out(real_t t, real_t b, real_t c, real_t d) {
+ if (t == 0) {
+ return b;
+ }
+
+ if (t == d) {
+ return b + c;
+ }
+
+ t = t / d * 2;
+
+ if (t < 1) {
+ return c / 2 * pow(2, 10 * (t - 1)) + b - c * 0.0005;
+ }
+ return c / 2 * 1.0005 * (-pow(2, -10 * (t - 1)) + 2) + b;
+}
+
+static real_t out_in(real_t t, real_t b, real_t c, real_t d) {
+ if (t < d / 2) {
+ return out(t * 2, b, c / 2, d);
+ }
+ return in(t * 2 - d, b + c / 2, c / 2, d);
+}
+}; // namespace expo
+
+namespace elastic {
+static real_t in(real_t t, real_t b, real_t c, real_t d) {
+ if (t == 0) {
+ return b;
+ }
+
+ t /= d;
+ if (t == 1) {
+ return b + c;
+ }
+
+ t -= 1;
+ float p = d * 0.3f;
+ float a = c * pow(2, 10 * t);
+ float s = p / 4;
+
+ return -(a * sin((t * d - s) * (2 * Math_PI) / p)) + b;
+}
+
+static real_t out(real_t t, real_t b, real_t c, real_t d) {
+ if (t == 0) {
+ return b;
+ }
+
+ t /= d;
+ if (t == 1) {
+ return b + c;
+ }
+
+ float p = d * 0.3f;
+ float s = p / 4;
+
+ return (c * pow(2, -10 * t) * sin((t * d - s) * (2 * Math_PI) / p) + c + b);
+}
+
+static real_t in_out(real_t t, real_t b, real_t c, real_t d) {
+ if (t == 0) {
+ return b;
+ }
+
+ if ((t /= d / 2) == 2) {
+ return b + c;
+ }
+
+ float p = d * (0.3f * 1.5f);
+ float a = c;
+ float s = p / 4;
+
+ if (t < 1) {
+ t -= 1;
+ a *= pow(2, 10 * t);
+ return -0.5f * (a * sin((t * d - s) * (2 * Math_PI) / p)) + b;
+ }
+
+ t -= 1;
+ a *= pow(2, -10 * t);
+ return a * sin((t * d - s) * (2 * Math_PI) / p) * 0.5f + c + b;
+}
+
+static real_t out_in(real_t t, real_t b, real_t c, real_t d) {
+ if (t < d / 2) {
+ return out(t * 2, b, c / 2, d);
+ }
+ return in(t * 2 - d, b + c / 2, c / 2, d);
+}
+}; // namespace elastic
+
+namespace cubic {
+static real_t in(real_t t, real_t b, real_t c, real_t d) {
+ t /= d;
+ return c * t * t * t + b;
+}
+
+static real_t out(real_t t, real_t b, real_t c, real_t d) {
+ t = t / d - 1;
+ return c * (t * t * t + 1) + b;
+}
+
+static real_t in_out(real_t t, real_t b, real_t c, real_t d) {
+ t /= d / 2;
+ if (t < 1) {
+ return c / 2 * t * t * t + b;
+ }
+
+ t -= 2;
+ return c / 2 * (t * t * t + 2) + b;
+}
+
+static real_t out_in(real_t t, real_t b, real_t c, real_t d) {
+ if (t < d / 2) {
+ return out(t * 2, b, c / 2, d);
+ }
+ return in(t * 2 - d, b + c / 2, c / 2, d);
+}
+}; // namespace cubic
+
+namespace circ {
+static real_t in(real_t t, real_t b, real_t c, real_t d) {
+ t /= d;
+ return -c * (sqrt(1 - t * t) - 1) + b;
+}
+
+static real_t out(real_t t, real_t b, real_t c, real_t d) {
+ t = t / d - 1;
+ return c * sqrt(1 - t * t) + b;
+}
+
+static real_t in_out(real_t t, real_t b, real_t c, real_t d) {
+ t /= d / 2;
+ if (t < 1) {
+ return -c / 2 * (sqrt(1 - t * t) - 1) + b;
+ }
+
+ t -= 2;
+ return c / 2 * (sqrt(1 - t * t) + 1) + b;
+}
+
+static real_t out_in(real_t t, real_t b, real_t c, real_t d) {
+ if (t < d / 2) {
+ return out(t * 2, b, c / 2, d);
+ }
+ return in(t * 2 - d, b + c / 2, c / 2, d);
+}
+}; // namespace circ
+
+namespace bounce {
+static real_t out(real_t t, real_t b, real_t c, real_t d) {
+ t /= d;
+
+ if (t < (1 / 2.75f)) {
+ return c * (7.5625f * t * t) + b;
+ }
+
+ if (t < (2 / 2.75f)) {
+ t -= 1.5f / 2.75f;
+ return c * (7.5625f * t * t + 0.75f) + b;
+ }
+
+ if (t < (2.5 / 2.75)) {
+ t -= 2.25f / 2.75f;
+ return c * (7.5625f * t * t + 0.9375f) + b;
+ }
+
+ t -= 2.625f / 2.75f;
+ return c * (7.5625f * t * t + 0.984375f) + b;
+}
+
+static real_t in(real_t t, real_t b, real_t c, real_t d) {
+ return c - out(d - t, 0, c, d) + b;
+}
+
+static real_t in_out(real_t t, real_t b, real_t c, real_t d) {
+ if (t < d / 2) {
+ return in(t * 2, b, c / 2, d);
+ }
+ return out(t * 2 - d, b + c / 2, c / 2, d);
+}
+
+static real_t out_in(real_t t, real_t b, real_t c, real_t d) {
+ if (t < d / 2) {
+ return out(t * 2, b, c / 2, d);
+ }
+ return in(t * 2 - d, b + c / 2, c / 2, d);
+}
+}; // namespace bounce
+
+namespace back {
+static real_t in(real_t t, real_t b, real_t c, real_t d) {
+ float s = 1.70158f;
+ t /= d;
+
+ return c * t * t * ((s + 1) * t - s) + b;
+}
+
+static real_t out(real_t t, real_t b, real_t c, real_t d) {
+ float s = 1.70158f;
+ t = t / d - 1;
+
+ return c * (t * t * ((s + 1) * t + s) + 1) + b;
+}
+
+static real_t in_out(real_t t, real_t b, real_t c, real_t d) {
+ float s = 1.70158f * 1.525f;
+ t /= d / 2;
+
+ if (t < 1) {
+ return c / 2 * (t * t * ((s + 1) * t - s)) + b;
+ }
+
+ t -= 2;
+ return c / 2 * (t * t * ((s + 1) * t + s) + 2) + b;
+}
+
+static real_t out_in(real_t t, real_t b, real_t c, real_t d) {
+ if (t < d / 2) {
+ return out(t * 2, b, c / 2, d);
+ }
+ return in(t * 2 - d, b + c / 2, c / 2, d);
+}
+}; // namespace back
+
+#endif
diff --git a/scene/animation/tween.cpp b/scene/animation/tween.cpp
index 2847031375..c43b83747b 100644
--- a/scene/animation/tween.cpp
+++ b/scene/animation/tween.cpp
@@ -30,8 +30,23 @@
#include "tween.h"
+#include "scene/animation/easing_equations.h"
#include "scene/main/node.h"
+Tween::interpolater Tween::interpolaters[Tween::TRANS_MAX][Tween::EASE_MAX] = {
+ { &linear::in, &linear::in, &linear::in, &linear::in }, // Linear is the same for each easing.
+ { &sine::in, &sine::out, &sine::in_out, &sine::out_in },
+ { &quint::in, &quint::out, &quint::in_out, &quint::out_in },
+ { &quart::in, &quart::out, &quart::in_out, &quart::out_in },
+ { &quad::in, &quad::out, &quad::in_out, &quad::out_in },
+ { &expo::in, &expo::out, &expo::in_out, &expo::out_in },
+ { &elastic::in, &elastic::out, &elastic::in_out, &elastic::out_in },
+ { &cubic::in, &cubic::out, &cubic::in_out, &cubic::out_in },
+ { &circ::in, &circ::out, &circ::in_out, &circ::out_in },
+ { &bounce::in, &bounce::out, &bounce::in_out, &bounce::out_in },
+ { &back::in, &back::out, &back::in_out, &back::out_in },
+};
+
void Tweener::set_tween(Ref<Tween> p_tween) {
tween = p_tween;
}
@@ -317,6 +332,16 @@ bool Tween::should_pause() {
return pause_mode != TWEEN_PAUSE_PROCESS;
}
+real_t Tween::run_equation(TransitionType p_trans_type, EaseType p_ease_type, real_t p_time, real_t p_initial, real_t p_delta, real_t p_duration) {
+ if (p_duration == 0) {
+ // Special case to avoid dividing by 0 in equations.
+ return p_initial + p_delta;
+ }
+
+ interpolater func = interpolaters[p_trans_type][p_ease_type];
+ return func(p_time, p_initial, p_delta, p_duration);
+}
+
Variant Tween::interpolate_variant(Variant p_initial_val, Variant p_delta_val, float p_time, float p_duration, TransitionType p_trans, EaseType p_ease) {
ERR_FAIL_INDEX_V(p_trans, TransitionType::TRANS_MAX, Variant());
ERR_FAIL_INDEX_V(p_ease, EaseType::EASE_MAX, Variant());
diff --git a/scene/gui/code_edit.cpp b/scene/gui/code_edit.cpp
index 4dfd6902e6..c7d1d7ef82 100644
--- a/scene/gui/code_edit.cpp
+++ b/scene/gui/code_edit.cpp
@@ -227,17 +227,17 @@ void CodeEdit::_notification(int p_what) {
end = font->get_string_size(line.substr(0, line.rfind(String::chr(0xFFFF))), font_size).x;
}
- Point2 round_ofs = hint_ofs + sb->get_offset() + Vector2(0, font->get_ascent() + font_height * i + yofs);
+ Point2 round_ofs = hint_ofs + sb->get_offset() + Vector2(0, font->get_ascent(font_size) + font_height * i + yofs);
round_ofs = round_ofs.round();
draw_string(font, round_ofs, line.replace(String::chr(0xFFFF), ""), HALIGN_LEFT, -1, font_size, font_color);
if (end > 0) {
// Draw an underline for the currently edited function parameter.
- const Vector2 b = hint_ofs + sb->get_offset() + Vector2(begin, font_height + font_height * i + line_spacing);
+ const Vector2 b = hint_ofs + sb->get_offset() + Vector2(begin, font_height + font_height * i + yofs);
draw_line(b, b + Vector2(end - begin, 0), font_color, 2);
// Draw a translucent text highlight as well.
const Rect2 highlight_rect = Rect2(
- hint_ofs + sb->get_offset() + Vector2(begin, 0),
+ b - Vector2(0, font_height),
Vector2(end - begin, font_height));
draw_rect(highlight_rect, font_color * Color(1, 1, 1, 0.2));
}
@@ -296,7 +296,7 @@ void CodeEdit::gui_input(const Ref<InputEvent> &p_gui_input) {
mpos.x = get_size().x - mpos.x;
}
- Point2i pos = get_line_column_at_pos(Point2i(mpos.x, mpos.y));
+ Point2i pos = get_line_column_at_pos(mpos);
int line = pos.y;
int col = pos.x;
@@ -321,7 +321,7 @@ void CodeEdit::gui_input(const Ref<InputEvent> &p_gui_input) {
mpos.x = get_size().x - mpos.x;
}
- Point2i pos = get_line_column_at_pos(Point2i(mpos.x, mpos.y));
+ Point2i pos = get_line_column_at_pos(mpos);
int line = pos.y;
int col = pos.x;
diff --git a/scene/gui/color_picker.cpp b/scene/gui/color_picker.cpp
index efb6b7d200..611035fff9 100644
--- a/scene/gui/color_picker.cpp
+++ b/scene/gui/color_picker.cpp
@@ -827,7 +827,7 @@ void ColorPicker::_uv_input(const Ref<InputEvent> &p_event, Control *c) {
real_t dist = center.distance_to(bev->get_position());
if (dist <= center.x) {
- real_t rad = Math::atan2(bev->get_position().y - center.y, bev->get_position().x - center.x);
+ real_t rad = bev->get_position().angle_to_point(center);
h = ((rad >= 0) ? rad : (Math_TAU + rad)) / Math_TAU;
s = CLAMP(dist / center.x, 0, 1);
} else {
@@ -844,7 +844,7 @@ void ColorPicker::_uv_input(const Ref<InputEvent> &p_event, Control *c) {
real_t dist = center.distance_to(bev->get_position());
if (dist >= center.x * 0.84 && dist <= center.x) {
- real_t rad = Math::atan2(bev->get_position().y - center.y, bev->get_position().x - center.x);
+ real_t rad = bev->get_position().angle_to_point(center);
h = ((rad >= 0) ? rad : (Math_TAU + rad)) / Math_TAU;
spinning = true;
} else {
@@ -889,12 +889,12 @@ void ColorPicker::_uv_input(const Ref<InputEvent> &p_event, Control *c) {
Vector2 center = c->get_size() / 2.0;
if (picker_type == SHAPE_VHS_CIRCLE) {
real_t dist = center.distance_to(mev->get_position());
- real_t rad = Math::atan2(mev->get_position().y - center.y, mev->get_position().x - center.x);
+ real_t rad = mev->get_position().angle_to_point(center);
h = ((rad >= 0) ? rad : (Math_TAU + rad)) / Math_TAU;
s = CLAMP(dist / center.x, 0, 1);
} else {
if (spinning) {
- real_t rad = Math::atan2(mev->get_position().y - center.y, mev->get_position().x - center.x);
+ real_t rad = mev->get_position().angle_to_point(center);
h = ((rad >= 0) ? rad : (Math_TAU + rad)) / Math_TAU;
} else {
real_t corner_x = (c == wheel_uv) ? center.x - Math_SQRT12 * c->get_size().width * 0.42 : 0;
@@ -996,7 +996,7 @@ void ColorPicker::_screen_input(const Ref<InputEvent> &p_event) {
Ref<InputEventMouseMotion> mev = p_event;
if (mev.is_valid()) {
Viewport *r = get_tree()->get_root();
- if (!r->get_visible_rect().has_point(Point2(mev->get_global_position().x, mev->get_global_position().y))) {
+ if (!r->get_visible_rect().has_point(mev->get_global_position())) {
return;
}
diff --git a/scene/gui/container.cpp b/scene/gui/container.cpp
index c97434f69b..11941529cd 100644
--- a/scene/gui/container.cpp
+++ b/scene/gui/container.cpp
@@ -96,17 +96,18 @@ void Container::fit_child_in_rect(Control *p_child, const Rect2 &p_rect) {
ERR_FAIL_COND(!p_child);
ERR_FAIL_COND(p_child->get_parent() != this);
+ bool rtl = is_layout_rtl();
Size2 minsize = p_child->get_combined_minimum_size();
Rect2 r = p_rect;
if (!(p_child->get_h_size_flags() & SIZE_FILL)) {
r.size.x = minsize.width;
if (p_child->get_h_size_flags() & SIZE_SHRINK_END) {
- r.position.x += p_rect.size.width - minsize.width;
+ r.position.x += rtl ? 0 : (p_rect.size.width - minsize.width);
} else if (p_child->get_h_size_flags() & SIZE_SHRINK_CENTER) {
r.position.x += Math::floor((p_rect.size.x - minsize.width) / 2);
} else {
- r.position.x += 0;
+ r.position.x += rtl ? (p_rect.size.width - minsize.width) : 0;
}
}
diff --git a/scene/gui/graph_edit.cpp b/scene/gui/graph_edit.cpp
index b9b02b1427..d9c08ec272 100644
--- a/scene/gui/graph_edit.cpp
+++ b/scene/gui/graph_edit.cpp
@@ -697,7 +697,7 @@ void GraphEdit::_top_layer_input(const Ref<InputEvent> &p_ev) {
} else if (!just_disconnected) {
String from = connecting_from;
int from_slot = connecting_index;
- Vector2 ofs = Vector2(mb->get_position().x, mb->get_position().y);
+ Vector2 ofs = mb->get_position();
if (!connecting_out) {
emit_signal(SNAME("connection_from_empty"), from, from_slot, ofs);
@@ -1071,10 +1071,7 @@ void GraphEdit::gui_input(const Ref<InputEvent> &p_ev) {
if (mm.is_valid() && box_selecting) {
box_selecting_to = mm->get_position();
- box_selecting_rect = Rect2(MIN(box_selecting_from.x, box_selecting_to.x),
- MIN(box_selecting_from.y, box_selecting_to.y),
- ABS(box_selecting_from.x - box_selecting_to.x),
- ABS(box_selecting_from.y - box_selecting_to.y));
+ box_selecting_rect = Rect2(box_selecting_from.min(box_selecting_to), (box_selecting_from - box_selecting_to).abs());
for (int i = get_child_count() - 1; i >= 0; i--) {
GraphNode *gn = Object::cast_to<GraphNode>(get_child(i));
@@ -2103,7 +2100,7 @@ void GraphEdit::arrange_nodes() {
largest_node_size = 0.0f;
}
- emit_signal("begin_node_move");
+ emit_signal(SNAME("begin_node_move"));
for (const Set<StringName>::Element *E = selected_nodes.front(); E; E = E->next()) {
GraphNode *gn = Object::cast_to<GraphNode>(node_names[E->get()]);
gn->set_drag(true);
@@ -2116,7 +2113,7 @@ void GraphEdit::arrange_nodes() {
gn->set_position_offset(pos);
gn->set_drag(false);
}
- emit_signal("end_node_move");
+ emit_signal(SNAME("end_node_move"));
arranging_graph = false;
}
diff --git a/scene/gui/graph_node.cpp b/scene/gui/graph_node.cpp
index 08c8c60d7a..ecf735d7f5 100644
--- a/scene/gui/graph_node.cpp
+++ b/scene/gui/graph_node.cpp
@@ -31,6 +31,9 @@
#include "graph_node.h"
#include "core/string/translation.h"
+#ifdef TOOLS_ENABLED
+#include "graph_edit.h"
+#endif
struct _MinSizeCache {
int min_size;
@@ -458,6 +461,27 @@ void GraphNode::_shape() {
title_buf->add_string(title, font, font_size, opentype_features, (language != "") ? language : TranslationServer::get_singleton()->get_tool_locale());
}
+#ifdef TOOLS_ENABLED
+void GraphNode::_edit_set_position(const Point2 &p_position) {
+ GraphEdit *graph = Object::cast_to<GraphEdit>(get_parent());
+ if (graph) {
+ Point2 offset = (p_position + graph->get_scroll_ofs()) * graph->get_zoom();
+ set_position_offset(offset);
+ }
+ set_position(p_position);
+}
+
+void GraphNode::_validate_property(PropertyInfo &property) const {
+ Control::_validate_property(property);
+ GraphEdit *graph = Object::cast_to<GraphEdit>(get_parent());
+ if (graph) {
+ if (property.name == "rect_position") {
+ property.usage |= PROPERTY_USAGE_READ_ONLY;
+ }
+ }
+}
+#endif
+
void GraphNode::set_slot(int p_idx, bool p_enable_left, int p_type_left, const Color &p_color_left, bool p_enable_right, int p_type_right, const Color &p_color_right, const Ref<Texture2D> &p_custom_left, const Ref<Texture2D> &p_custom_right) {
ERR_FAIL_COND_MSG(p_idx < 0, vformat("Cannot set slot with p_idx (%d) lesser than zero.", p_idx));
@@ -871,7 +895,7 @@ void GraphNode::gui_input(const Ref<InputEvent> &p_ev) {
ERR_FAIL_COND_MSG(get_parent_control() == nullptr, "GraphNode must be the child of a GraphEdit node.");
if (mb->is_pressed() && mb->get_button_index() == MOUSE_BUTTON_LEFT) {
- Vector2 mpos = Vector2(mb->get_position().x, mb->get_position().y);
+ Vector2 mpos = mb->get_position();
if (close_rect.size != Size2() && close_rect.has_point(mpos)) {
//send focus to parent
get_parent_control()->grab_focus();
diff --git a/scene/gui/graph_node.h b/scene/gui/graph_node.h
index c7c7006bfc..2238cfdb56 100644
--- a/scene/gui/graph_node.h
+++ b/scene/gui/graph_node.h
@@ -98,6 +98,11 @@ private:
Overlay overlay = OVERLAY_DISABLED;
+#ifdef TOOLS_ENABLED
+ void _edit_set_position(const Point2 &p_position) override;
+ void _validate_property(PropertyInfo &property) const override;
+#endif
+
protected:
virtual void gui_input(const Ref<InputEvent> &p_ev) override;
void _notification(int p_what);
diff --git a/scene/gui/label.cpp b/scene/gui/label.cpp
index 560bcd8e61..18cde25e55 100644
--- a/scene/gui/label.cpp
+++ b/scene/gui/label.cpp
@@ -270,6 +270,10 @@ void Label::_notification(int p_what) {
update();
}
+ if (p_what == NOTIFICATION_LAYOUT_DIRECTION_CHANGED) {
+ update();
+ }
+
if (p_what == NOTIFICATION_DRAW) {
if (clip) {
RenderingServer::get_singleton()->canvas_item_set_clip(get_canvas_item(), true);
@@ -293,6 +297,7 @@ void Label::_notification(int p_what) {
int outline_size = get_theme_constant(SNAME("outline_size"));
int shadow_outline_size = get_theme_constant(SNAME("shadow_outline_size"));
bool rtl = TS->shaped_text_get_direction(text_rid);
+ bool rtl_layout = is_layout_rtl();
style->draw(ci, Rect2(Point2(0, 0), get_size()));
@@ -364,13 +369,21 @@ void Label::_notification(int p_what) {
}
break;
case ALIGN_LEFT: {
- ofs.x = style->get_offset().x;
+ if (rtl_layout) {
+ ofs.x = int(size.width - style->get_margin(SIDE_RIGHT) - line_size.width);
+ } else {
+ ofs.x = style->get_offset().x;
+ }
} break;
case ALIGN_CENTER: {
ofs.x = int(size.width - line_size.width) / 2;
} break;
case ALIGN_RIGHT: {
- ofs.x = int(size.width - style->get_margin(SIDE_RIGHT) - line_size.width);
+ if (rtl_layout) {
+ ofs.x = style->get_offset().x;
+ } else {
+ ofs.x = int(size.width - style->get_margin(SIDE_RIGHT) - line_size.width);
+ }
} break;
}
diff --git a/scene/gui/line_edit.cpp b/scene/gui/line_edit.cpp
index d9acbeb828..89fd9bfc88 100644
--- a/scene/gui/line_edit.cpp
+++ b/scene/gui/line_edit.cpp
@@ -260,24 +260,29 @@ void LineEdit::gui_input(const Ref<InputEvent> &p_event) {
} else {
if (selecting_enabled) {
- if (!b->is_double_click() && (OS::get_singleton()->get_ticks_msec() - selection.last_dblclk) < 600) {
+ const int triple_click_timeout = 600;
+ const int triple_click_tolerance = 5;
+ const bool is_triple_click = !b->is_double_click() && (OS::get_singleton()->get_ticks_msec() - last_dblclk) < triple_click_timeout && b->get_position().distance_to(last_dblclk_pos) < triple_click_tolerance;
+
+ if (is_triple_click && text.length()) {
// Triple-click select all.
selection.enabled = true;
selection.begin = 0;
selection.end = text.length();
selection.double_click = true;
- selection.last_dblclk = 0;
+ last_dblclk = 0;
caret_column = selection.begin;
} else if (b->is_double_click()) {
// Double-click select word.
+ last_dblclk = OS::get_singleton()->get_ticks_msec();
+ last_dblclk_pos = b->get_position();
Vector<Vector2i> words = TS->shaped_text_get_word_breaks(text_rid);
for (int i = 0; i < words.size(); i++) {
- if (words[i].x < caret_column && words[i].y > caret_column) {
+ if ((words[i].x < caret_column && words[i].y > caret_column) || (i == words.size() - 1 && caret_column == words[i].y)) {
selection.enabled = true;
selection.begin = words[i].x;
selection.end = words[i].y;
selection.double_click = true;
- selection.last_dblclk = OS::get_singleton()->get_ticks_msec();
caret_column = selection.end;
break;
}
@@ -1555,6 +1560,20 @@ void LineEdit::deselect() {
update();
}
+bool LineEdit::has_selection() const {
+ return selection.enabled;
+}
+
+int LineEdit::get_selection_from_column() const {
+ ERR_FAIL_COND_V(!selection.enabled, -1);
+ return selection.begin;
+}
+
+int LineEdit::get_selection_to_column() const {
+ ERR_FAIL_COND_V(!selection.enabled, -1);
+ return selection.end;
+}
+
void LineEdit::selection_delete() {
if (selection.enabled) {
delete_text(selection.begin, selection.end);
@@ -2089,6 +2108,9 @@ void LineEdit::_bind_methods() {
ClassDB::bind_method(D_METHOD("select", "from", "to"), &LineEdit::select, DEFVAL(0), DEFVAL(-1));
ClassDB::bind_method(D_METHOD("select_all"), &LineEdit::select_all);
ClassDB::bind_method(D_METHOD("deselect"), &LineEdit::deselect);
+ ClassDB::bind_method(D_METHOD("has_selection"), &LineEdit::has_selection);
+ ClassDB::bind_method(D_METHOD("get_selection_from_column"), &LineEdit::get_selection_from_column);
+ ClassDB::bind_method(D_METHOD("get_selection_to_column"), &LineEdit::get_selection_to_column);
ClassDB::bind_method(D_METHOD("set_text", "text"), &LineEdit::set_text);
ClassDB::bind_method(D_METHOD("get_text"), &LineEdit::get_text);
ClassDB::bind_method(D_METHOD("get_draw_control_chars"), &LineEdit::get_draw_control_chars);
diff --git a/scene/gui/line_edit.h b/scene/gui/line_edit.h
index e364a79c83..923024dd56 100644
--- a/scene/gui/line_edit.h
+++ b/scene/gui/line_edit.h
@@ -136,7 +136,6 @@ private:
bool creating = false;
bool double_click = false;
bool drag_attempt = false;
- uint64_t last_dblclk = 0;
} selection;
struct TextOperation {
@@ -153,6 +152,9 @@ private:
bool pressing_inside = false;
} clear_button_status;
+ uint64_t last_dblclk = 0;
+ Vector2 last_dblclk_pos;
+
bool caret_blink_enabled = false;
bool caret_force_displayed = false;
bool draw_caret = true;
@@ -229,6 +231,9 @@ public:
void select_all();
void selection_delete();
void deselect();
+ bool has_selection() const;
+ int get_selection_from_column() const;
+ int get_selection_to_column() const;
void delete_char();
void delete_text(int p_from_column, int p_to_column);
diff --git a/scene/gui/menu_button.cpp b/scene/gui/menu_button.cpp
index 0cc53a7832..ceb2092e3a 100644
--- a/scene/gui/menu_button.cpp
+++ b/scene/gui/menu_button.cpp
@@ -89,13 +89,15 @@ void MenuButton::pressed() {
emit_signal(SNAME("about_to_popup"));
Size2 size = get_size() * get_viewport()->get_canvas_transform().get_scale();
+ popup->set_size(Size2(size.width, 0));
Point2 gp = get_screen_position();
gp.y += size.y;
-
+ if (is_layout_rtl()) {
+ gp.x += size.width - popup->get_size().width;
+ }
popup->set_position(gp);
-
- popup->set_size(Size2(size.width, 0));
popup->set_parent_rect(Rect2(Point2(gp - popup->get_position()), size));
+
popup->take_mouse_focus();
popup->popup();
}
diff --git a/scene/gui/popup.cpp b/scene/gui/popup.cpp
index e9414598a2..be05fd5a60 100644
--- a/scene/gui/popup.cpp
+++ b/scene/gui/popup.cpp
@@ -194,7 +194,7 @@ Popup::~Popup() {
}
Size2 PopupPanel::_get_contents_minimum_size() const {
- Ref<StyleBox> p = get_theme_stylebox("panel", get_class_name());
+ Ref<StyleBox> p = get_theme_stylebox(SNAME("panel"), get_class_name());
Size2 ms;
@@ -217,7 +217,7 @@ Size2 PopupPanel::_get_contents_minimum_size() const {
}
void PopupPanel::_update_child_rects() {
- Ref<StyleBox> p = get_theme_stylebox("panel", get_class_name());
+ Ref<StyleBox> p = get_theme_stylebox(SNAME("panel"), get_class_name());
Vector2 cpos(p->get_offset());
Vector2 csize(get_size() - p->get_minimum_size());
@@ -244,9 +244,9 @@ void PopupPanel::_update_child_rects() {
void PopupPanel::_notification(int p_what) {
if (p_what == NOTIFICATION_THEME_CHANGED) {
- panel->add_theme_style_override("panel", get_theme_stylebox("panel", get_class_name()));
+ panel->add_theme_style_override("panel", get_theme_stylebox(SNAME("panel"), get_class_name()));
} else if (p_what == NOTIFICATION_READY || p_what == NOTIFICATION_ENTER_TREE) {
- panel->add_theme_style_override("panel", get_theme_stylebox("panel", get_class_name()));
+ panel->add_theme_style_override("panel", get_theme_stylebox(SNAME("panel"), get_class_name()));
_update_child_rects();
} else if (p_what == NOTIFICATION_WM_SIZE_CHANGED) {
_update_child_rects();
diff --git a/scene/gui/rich_text_effect.cpp b/scene/gui/rich_text_effect.cpp
index 236d106af8..076fa132c0 100644
--- a/scene/gui/rich_text_effect.cpp
+++ b/scene/gui/rich_text_effect.cpp
@@ -90,6 +90,12 @@ void CharFXTransform::_bind_methods() {
ClassDB::bind_method(D_METHOD("get_glyph_index"), &CharFXTransform::get_glyph_index);
ClassDB::bind_method(D_METHOD("set_glyph_index", "glyph_index"), &CharFXTransform::set_glyph_index);
+ ClassDB::bind_method(D_METHOD("get_glyph_count"), &CharFXTransform::get_glyph_count);
+ ClassDB::bind_method(D_METHOD("set_glyph_count", "glyph_count"), &CharFXTransform::set_glyph_count);
+
+ ClassDB::bind_method(D_METHOD("get_glyph_flags"), &CharFXTransform::get_glyph_flags);
+ ClassDB::bind_method(D_METHOD("set_glyph_flags", "glyph_flags"), &CharFXTransform::set_glyph_flags);
+
ClassDB::bind_method(D_METHOD("get_font"), &CharFXTransform::get_font);
ClassDB::bind_method(D_METHOD("set_font", "font"), &CharFXTransform::set_font);
@@ -101,5 +107,7 @@ void CharFXTransform::_bind_methods() {
ADD_PROPERTY(PropertyInfo(Variant::COLOR, "color"), "set_color", "get_color");
ADD_PROPERTY(PropertyInfo(Variant::DICTIONARY, "env"), "set_environment", "get_environment");
ADD_PROPERTY(PropertyInfo(Variant::INT, "glyph_index"), "set_glyph_index", "get_glyph_index");
+ ADD_PROPERTY(PropertyInfo(Variant::INT, "glyph_count"), "set_glyph_count", "get_glyph_count");
+ ADD_PROPERTY(PropertyInfo(Variant::INT, "glyph_flags"), "set_glyph_flags", "get_glyph_flags");
ADD_PROPERTY(PropertyInfo(Variant::RID, "font"), "set_font", "get_font");
}
diff --git a/scene/gui/rich_text_effect.h b/scene/gui/rich_text_effect.h
index f5506542bb..5681f9b193 100644
--- a/scene/gui/rich_text_effect.h
+++ b/scene/gui/rich_text_effect.h
@@ -50,6 +50,8 @@ public:
double elapsed_time = 0.0f;
Dictionary environment;
uint32_t glyph_index = 0;
+ uint16_t glyph_flags = 0;
+ uint8_t glyph_count = 0;
RID font;
CharFXTransform();
@@ -57,19 +59,31 @@ public:
Vector2i get_range() { return range; }
void set_range(const Vector2i &p_range) { range = p_range; }
+
double get_elapsed_time() { return elapsed_time; }
void set_elapsed_time(double p_elapsed_time) { elapsed_time = p_elapsed_time; }
+
bool is_visible() { return visibility; }
void set_visibility(bool p_visibility) { visibility = p_visibility; }
+
bool is_outline() { return outline; }
void set_outline(bool p_outline) { outline = p_outline; }
+
Point2 get_offset() { return offset; }
void set_offset(Point2 p_offset) { offset = p_offset; }
+
Color get_color() { return color; }
void set_color(Color p_color) { color = p_color; }
uint32_t get_glyph_index() const { return glyph_index; };
void set_glyph_index(uint32_t p_glyph_index) { glyph_index = p_glyph_index; };
+
+ uint16_t get_glyph_flags() const { return glyph_index; };
+ void set_glyph_flags(uint16_t p_glyph_flags) { glyph_flags = p_glyph_flags; };
+
+ uint8_t get_glyph_count() const { return glyph_count; };
+ void set_glyph_count(uint8_t p_glyph_count) { glyph_count = p_glyph_count; };
+
RID get_font() const { return font; };
void set_font(RID p_font) { font = p_font; };
diff --git a/scene/gui/rich_text_label.cpp b/scene/gui/rich_text_label.cpp
index 2314b7a1da..277026cc28 100644
--- a/scene/gui/rich_text_label.cpp
+++ b/scene/gui/rich_text_label.cpp
@@ -333,7 +333,7 @@ void RichTextLabel::_resize_line(ItemFrame *p_frame, int p_line, const Ref<Font>
} else {
frame->lines.write[i].offset.y = 0;
}
- frame->lines.write[i].offset += Vector2(offset.x, offset.y);
+ frame->lines.write[i].offset += offset;
float h = frame->lines[i].text_buf->get_size().y;
if (frame->min_size_over.y > 0) {
@@ -578,7 +578,7 @@ void RichTextLabel::_shape_line(ItemFrame *p_frame, int p_line, const Ref<Font>
} else {
frame->lines.write[i].offset.y = 0;
}
- frame->lines.write[i].offset += Vector2(offset.x, offset.y);
+ frame->lines.write[i].offset += offset;
float h = frame->lines[i].text_buf->get_size().y;
if (frame->min_size_over.y > 0) {
@@ -852,6 +852,21 @@ int RichTextLabel::_draw_line(ItemFrame *p_frame, int p_line, const Vector2 &p_o
Point2 fx_offset = Vector2(glyphs[i].x_off, glyphs[i].y_off);
RID frid = glyphs[i].font_rid;
uint32_t gl = glyphs[i].index;
+ uint16_t gl_fl = glyphs[i].flags;
+ uint8_t gl_cn = glyphs[i].count;
+ bool cprev = false;
+ if (gl_cn == 0) { // Parts of the same cluster, always connected.
+ cprev = true;
+ }
+ if (gl_fl & TextServer::GRAPHEME_IS_RTL) { // Check if previous grapheme cluster is connected.
+ if (i > 0 && (glyphs[i - 1].flags & TextServer::GRAPHEME_IS_CONNECTED)) {
+ cprev = true;
+ }
+ } else {
+ if (glyphs[i].flags & TextServer::GRAPHEME_IS_CONNECTED) {
+ cprev = true;
+ }
+ }
//Apply fx.
float faded_visibility = 1.0f;
@@ -880,6 +895,8 @@ int RichTextLabel::_draw_line(ItemFrame *p_frame, int p_line, const Vector2 &p_o
charfx->outline = true;
charfx->font = frid;
charfx->glyph_index = gl;
+ charfx->glyph_flags = gl_fl;
+ charfx->glyph_count = gl_cn;
charfx->offset = fx_offset;
charfx->color = font_color;
@@ -895,25 +912,34 @@ int RichTextLabel::_draw_line(ItemFrame *p_frame, int p_line, const Vector2 &p_o
} else if (item_fx->type == ITEM_SHAKE) {
ItemShake *item_shake = static_cast<ItemShake *>(item_fx);
- uint64_t char_current_rand = item_shake->offset_random(glyphs[i].start);
- uint64_t char_previous_rand = item_shake->offset_previous_random(glyphs[i].start);
- uint64_t max_rand = 2147483647;
- double current_offset = Math::range_lerp(char_current_rand % max_rand, 0, max_rand, 0.0f, 2.f * (float)Math_PI);
- double previous_offset = Math::range_lerp(char_previous_rand % max_rand, 0, max_rand, 0.0f, 2.f * (float)Math_PI);
- double n_time = (double)(item_shake->elapsed_time / (0.5f / item_shake->rate));
- n_time = (n_time > 1.0) ? 1.0 : n_time;
- fx_offset += Point2(Math::lerp(Math::sin(previous_offset), Math::sin(current_offset), n_time), Math::lerp(Math::cos(previous_offset), Math::cos(current_offset), n_time)) * (float)item_shake->strength / 10.0f;
+ if (!cprev) {
+ uint64_t char_current_rand = item_shake->offset_random(glyphs[i].start);
+ uint64_t char_previous_rand = item_shake->offset_previous_random(glyphs[i].start);
+ uint64_t max_rand = 2147483647;
+ double current_offset = Math::range_lerp(char_current_rand % max_rand, 0, max_rand, 0.0f, 2.f * (float)Math_PI);
+ double previous_offset = Math::range_lerp(char_previous_rand % max_rand, 0, max_rand, 0.0f, 2.f * (float)Math_PI);
+ double n_time = (double)(item_shake->elapsed_time / (0.5f / item_shake->rate));
+ n_time = (n_time > 1.0) ? 1.0 : n_time;
+ item_shake->prev_off = Point2(Math::lerp(Math::sin(previous_offset), Math::sin(current_offset), n_time), Math::lerp(Math::cos(previous_offset), Math::cos(current_offset), n_time)) * (float)item_shake->strength / 10.0f;
+ }
+ fx_offset += item_shake->prev_off;
} else if (item_fx->type == ITEM_WAVE) {
ItemWave *item_wave = static_cast<ItemWave *>(item_fx);
- double value = Math::sin(item_wave->frequency * item_wave->elapsed_time + ((p_ofs.x + off.x) / 50)) * (item_wave->amplitude / 10.0f);
- fx_offset += Point2(0, 1) * value;
+ if (!cprev) {
+ double value = Math::sin(item_wave->frequency * item_wave->elapsed_time + ((p_ofs.x + gloff.x) / 50)) * (item_wave->amplitude / 10.0f);
+ item_wave->prev_off = Point2(0, 1) * value;
+ }
+ fx_offset += item_wave->prev_off;
} else if (item_fx->type == ITEM_TORNADO) {
ItemTornado *item_tornado = static_cast<ItemTornado *>(item_fx);
- double torn_x = Math::sin(item_tornado->frequency * item_tornado->elapsed_time + ((p_ofs.x + gloff.x) / 50)) * (item_tornado->radius);
- double torn_y = Math::cos(item_tornado->frequency * item_tornado->elapsed_time + ((p_ofs.x + gloff.x) / 50)) * (item_tornado->radius);
- fx_offset += Point2(torn_x, torn_y);
+ if (!cprev) {
+ double torn_x = Math::sin(item_tornado->frequency * item_tornado->elapsed_time + ((p_ofs.x + gloff.x) / 50)) * (item_tornado->radius);
+ double torn_y = Math::cos(item_tornado->frequency * item_tornado->elapsed_time + ((p_ofs.x + gloff.x) / 50)) * (item_tornado->radius);
+ item_tornado->prev_off = Point2(torn_x, torn_y);
+ }
+ fx_offset += item_tornado->prev_off;
} else if (item_fx->type == ITEM_RAINBOW) {
ItemRainbow *item_rainbow = static_cast<ItemRainbow *>(item_fx);
@@ -1004,6 +1030,21 @@ int RichTextLabel::_draw_line(ItemFrame *p_frame, int p_line, const Vector2 &p_o
Point2 fx_offset = Vector2(glyphs[i].x_off, glyphs[i].y_off);
RID frid = glyphs[i].font_rid;
uint32_t gl = glyphs[i].index;
+ uint16_t gl_fl = glyphs[i].flags;
+ uint8_t gl_cn = glyphs[i].count;
+ bool cprev = false;
+ if (gl_cn == 0) { // Parts of the same grapheme cluster, always connected.
+ cprev = true;
+ }
+ if (gl_fl & TextServer::GRAPHEME_IS_RTL) { // Check if previous grapheme cluster is connected.
+ if (i > 0 && (glyphs[i - 1].flags & TextServer::GRAPHEME_IS_CONNECTED)) {
+ cprev = true;
+ }
+ } else {
+ if (glyphs[i].flags & TextServer::GRAPHEME_IS_CONNECTED) {
+ cprev = true;
+ }
+ }
//Apply fx.
float faded_visibility = 1.0f;
@@ -1032,6 +1073,8 @@ int RichTextLabel::_draw_line(ItemFrame *p_frame, int p_line, const Vector2 &p_o
charfx->outline = false;
charfx->font = frid;
charfx->glyph_index = gl;
+ charfx->glyph_flags = gl_fl;
+ charfx->glyph_count = gl_cn;
charfx->offset = fx_offset;
charfx->color = font_color;
@@ -1047,25 +1090,34 @@ int RichTextLabel::_draw_line(ItemFrame *p_frame, int p_line, const Vector2 &p_o
} else if (item_fx->type == ITEM_SHAKE) {
ItemShake *item_shake = static_cast<ItemShake *>(item_fx);
- uint64_t char_current_rand = item_shake->offset_random(glyphs[i].start);
- uint64_t char_previous_rand = item_shake->offset_previous_random(glyphs[i].start);
- uint64_t max_rand = 2147483647;
- double current_offset = Math::range_lerp(char_current_rand % max_rand, 0, max_rand, 0.0f, 2.f * (float)Math_PI);
- double previous_offset = Math::range_lerp(char_previous_rand % max_rand, 0, max_rand, 0.0f, 2.f * (float)Math_PI);
- double n_time = (double)(item_shake->elapsed_time / (0.5f / item_shake->rate));
- n_time = (n_time > 1.0) ? 1.0 : n_time;
- fx_offset += Point2(Math::lerp(Math::sin(previous_offset), Math::sin(current_offset), n_time), Math::lerp(Math::cos(previous_offset), Math::cos(current_offset), n_time)) * (float)item_shake->strength / 10.0f;
+ if (!cprev) {
+ uint64_t char_current_rand = item_shake->offset_random(glyphs[i].start);
+ uint64_t char_previous_rand = item_shake->offset_previous_random(glyphs[i].start);
+ uint64_t max_rand = 2147483647;
+ double current_offset = Math::range_lerp(char_current_rand % max_rand, 0, max_rand, 0.0f, 2.f * (float)Math_PI);
+ double previous_offset = Math::range_lerp(char_previous_rand % max_rand, 0, max_rand, 0.0f, 2.f * (float)Math_PI);
+ double n_time = (double)(item_shake->elapsed_time / (0.5f / item_shake->rate));
+ n_time = (n_time > 1.0) ? 1.0 : n_time;
+ item_shake->prev_off = Point2(Math::lerp(Math::sin(previous_offset), Math::sin(current_offset), n_time), Math::lerp(Math::cos(previous_offset), Math::cos(current_offset), n_time)) * (float)item_shake->strength / 10.0f;
+ }
+ fx_offset += item_shake->prev_off;
} else if (item_fx->type == ITEM_WAVE) {
ItemWave *item_wave = static_cast<ItemWave *>(item_fx);
- double value = Math::sin(item_wave->frequency * item_wave->elapsed_time + ((p_ofs.x + off.x) / 50)) * (item_wave->amplitude / 10.0f);
- fx_offset += Point2(0, 1) * value;
+ if (!cprev) {
+ double value = Math::sin(item_wave->frequency * item_wave->elapsed_time + ((p_ofs.x + off.x) / 50)) * (item_wave->amplitude / 10.0f);
+ item_wave->prev_off = Point2(0, 1) * value;
+ }
+ fx_offset += item_wave->prev_off;
} else if (item_fx->type == ITEM_TORNADO) {
ItemTornado *item_tornado = static_cast<ItemTornado *>(item_fx);
- double torn_x = Math::sin(item_tornado->frequency * item_tornado->elapsed_time + ((p_ofs.x + off.x) / 50)) * (item_tornado->radius);
- double torn_y = Math::cos(item_tornado->frequency * item_tornado->elapsed_time + ((p_ofs.x + off.x) / 50)) * (item_tornado->radius);
- fx_offset += Point2(torn_x, torn_y);
+ if (!cprev) {
+ double torn_x = Math::sin(item_tornado->frequency * item_tornado->elapsed_time + ((p_ofs.x + off.x) / 50)) * (item_tornado->radius);
+ double torn_y = Math::cos(item_tornado->frequency * item_tornado->elapsed_time + ((p_ofs.x + off.x) / 50)) * (item_tornado->radius);
+ item_tornado->prev_off = Point2(torn_x, torn_y);
+ }
+ fx_offset += item_tornado->prev_off;
} else if (item_fx->type == ITEM_RAINBOW) {
ItemRainbow *item_rainbow = static_cast<ItemRainbow *>(item_fx);
@@ -2326,8 +2378,7 @@ void RichTextLabel::add_image(const Ref<Texture2D> &p_image, const int p_width,
item->size.width = p_image->get_width() * p_height / p_image->get_height();
} else {
// keep original width and height
- item->size.height = p_image->get_height();
- item->size.width = p_image->get_width();
+ item->size = p_image->get_size();
}
}
diff --git a/scene/gui/rich_text_label.h b/scene/gui/rich_text_label.h
index 806f684b67..94f02a3989 100644
--- a/scene/gui/rich_text_label.h
+++ b/scene/gui/rich_text_label.h
@@ -267,6 +267,7 @@ private:
float rate = 0.0f;
uint64_t _current_rng = 0;
uint64_t _previous_rng = 0;
+ Vector2 prev_off;
ItemShake() { type = ITEM_SHAKE; }
@@ -289,6 +290,7 @@ private:
struct ItemWave : public ItemFX {
float frequency = 1.0f;
float amplitude = 1.0f;
+ Vector2 prev_off;
ItemWave() { type = ITEM_WAVE; }
};
@@ -296,6 +298,7 @@ private:
struct ItemTornado : public ItemFX {
float radius = 1.0f;
float frequency = 1.0f;
+ Vector2 prev_off;
ItemTornado() { type = ITEM_TORNADO; }
};
diff --git a/scene/gui/scroll_bar.cpp b/scene/gui/scroll_bar.cpp
index 4edf373fbf..4a3a6837d5 100644
--- a/scene/gui/scroll_bar.cpp
+++ b/scene/gui/scroll_bar.cpp
@@ -560,7 +560,7 @@ void ScrollBar::_drag_node_input(const Ref<InputEvent> &p_input) {
if (mm.is_valid()) {
if (drag_node_touching && !drag_node_touching_deaccel) {
- Vector2 motion = Vector2(mm->get_relative().x, mm->get_relative().y);
+ Vector2 motion = mm->get_relative();
drag_node_accum -= motion;
Vector2 diff = drag_node_from + drag_node_accum;
diff --git a/scene/gui/scroll_container.cpp b/scene/gui/scroll_container.cpp
index 0c051f61e2..0c0ec39c7f 100644
--- a/scene/gui/scroll_container.cpp
+++ b/scene/gui/scroll_container.cpp
@@ -167,7 +167,7 @@ void ScrollContainer::gui_input(const Ref<InputEvent> &p_gui_input) {
if (mm.is_valid()) {
if (drag_touching && !drag_touching_deaccel) {
- Vector2 motion = Vector2(mm->get_relative().x, mm->get_relative().y);
+ Vector2 motion = mm->get_relative();
drag_accum -= motion;
if (beyond_deadzone || (scroll_h && Math::abs(drag_accum.x) > deadzone) || (scroll_v && Math::abs(drag_accum.y) > deadzone)) {
diff --git a/scene/gui/spin_box.cpp b/scene/gui/spin_box.cpp
index 1074d0d8a0..0aec017649 100644
--- a/scene/gui/spin_box.cpp
+++ b/scene/gui/spin_box.cpp
@@ -68,6 +68,15 @@ void SpinBox::_text_submitted(const String &p_string) {
_value_changed(0);
}
+void SpinBox::_text_changed(const String &p_string) {
+ int cursor_pos = line_edit->get_caret_column();
+
+ _text_submitted(p_string);
+
+ // Line edit 'set_text' method resets the cursor position so we need to undo that.
+ line_edit->set_caret_column(cursor_pos);
+}
+
LineEdit *SpinBox::get_line_edit() {
return line_edit;
}
@@ -244,6 +253,24 @@ String SpinBox::get_prefix() const {
return prefix;
}
+void SpinBox::set_update_on_text_changed(bool p_update) {
+ if (update_on_text_changed == p_update) {
+ return;
+ }
+
+ update_on_text_changed = p_update;
+
+ if (p_update) {
+ line_edit->connect("text_changed", callable_mp(this, &SpinBox::_text_changed), Vector<Variant>(), CONNECT_DEFERRED);
+ } else {
+ line_edit->disconnect("text_changed", callable_mp(this, &SpinBox::_text_changed));
+ }
+}
+
+bool SpinBox::get_update_on_text_changed() const {
+ return update_on_text_changed;
+}
+
void SpinBox::set_editable(bool p_editable) {
line_edit->set_editable(p_editable);
}
@@ -267,11 +294,14 @@ void SpinBox::_bind_methods() {
ClassDB::bind_method(D_METHOD("get_prefix"), &SpinBox::get_prefix);
ClassDB::bind_method(D_METHOD("set_editable", "editable"), &SpinBox::set_editable);
ClassDB::bind_method(D_METHOD("is_editable"), &SpinBox::is_editable);
+ ClassDB::bind_method(D_METHOD("set_update_on_text_changed"), &SpinBox::set_update_on_text_changed);
+ ClassDB::bind_method(D_METHOD("get_update_on_text_changed"), &SpinBox::get_update_on_text_changed);
ClassDB::bind_method(D_METHOD("apply"), &SpinBox::apply);
ClassDB::bind_method(D_METHOD("get_line_edit"), &SpinBox::get_line_edit);
ADD_PROPERTY(PropertyInfo(Variant::INT, "align", PROPERTY_HINT_ENUM, "Left,Center,Right,Fill"), "set_align", "get_align");
ADD_PROPERTY(PropertyInfo(Variant::BOOL, "editable"), "set_editable", "is_editable");
+ ADD_PROPERTY(PropertyInfo(Variant::BOOL, "update_on_text_changed"), "set_update_on_text_changed", "get_update_on_text_changed");
ADD_PROPERTY(PropertyInfo(Variant::STRING, "prefix"), "set_prefix", "get_prefix");
ADD_PROPERTY(PropertyInfo(Variant::STRING, "suffix"), "set_suffix", "get_suffix");
}
@@ -284,7 +314,6 @@ SpinBox::SpinBox() {
line_edit->set_mouse_filter(MOUSE_FILTER_PASS);
line_edit->set_align(LineEdit::ALIGN_LEFT);
- //connect("value_changed",this,"_value_changed");
line_edit->connect("text_submitted", callable_mp(this, &SpinBox::_text_submitted), Vector<Variant>(), CONNECT_DEFERRED);
line_edit->connect("focus_exited", callable_mp(this, &SpinBox::_line_edit_focus_exit), Vector<Variant>(), CONNECT_DEFERRED);
line_edit->connect("gui_input", callable_mp(this, &SpinBox::_line_edit_input));
diff --git a/scene/gui/spin_box.h b/scene/gui/spin_box.h
index 9ec3885f1f..9828b894da 100644
--- a/scene/gui/spin_box.h
+++ b/scene/gui/spin_box.h
@@ -40,6 +40,7 @@ class SpinBox : public Range {
LineEdit *line_edit;
int last_w = 0;
+ bool update_on_text_changed = false;
Timer *range_click_timer;
void _range_click_timeout();
@@ -47,6 +48,8 @@ class SpinBox : public Range {
void _text_submitted(const String &p_string);
virtual void _value_changed(double) override;
+ void _text_changed(const String &p_string);
+
String prefix;
String suffix;
@@ -88,6 +91,9 @@ public:
void set_prefix(const String &p_prefix);
String get_prefix() const;
+ void set_update_on_text_changed(bool p_update);
+ bool get_update_on_text_changed() const;
+
void apply();
SpinBox();
diff --git a/scene/gui/tab_container.cpp b/scene/gui/tab_container.cpp
index a423dc0173..c8a0501d8a 100644
--- a/scene/gui/tab_container.cpp
+++ b/scene/gui/tab_container.cpp
@@ -79,7 +79,7 @@ void TabContainer::gui_input(const Ref<InputEvent> &p_event) {
Popup *popup = get_popup();
if (mb.is_valid() && mb->is_pressed() && mb->get_button_index() == MOUSE_BUTTON_LEFT) {
- Point2 pos(mb->get_position().x, mb->get_position().y);
+ Point2 pos = mb->get_position();
Size2 size = get_size();
// Click must be on tabs in the tab header area.
@@ -190,7 +190,7 @@ void TabContainer::gui_input(const Ref<InputEvent> &p_event) {
Ref<InputEventMouseMotion> mm = p_event;
if (mm.is_valid()) {
- Point2 pos(mm->get_position().x, mm->get_position().y);
+ Point2 pos = mm->get_position();
Size2 size = get_size();
// Mouse must be on tabs in the tab header area.
@@ -1210,6 +1210,8 @@ void TabContainer::_bind_methods() {
ClassDB::bind_method(D_METHOD("get_tab_icon", "tab_idx"), &TabContainer::get_tab_icon);
ClassDB::bind_method(D_METHOD("set_tab_disabled", "tab_idx", "disabled"), &TabContainer::set_tab_disabled);
ClassDB::bind_method(D_METHOD("get_tab_disabled", "tab_idx"), &TabContainer::get_tab_disabled);
+ ClassDB::bind_method(D_METHOD("set_tab_hidden", "tab_idx", "hidden"), &TabContainer::set_tab_hidden);
+ ClassDB::bind_method(D_METHOD("get_tab_hidden", "tab_idx"), &TabContainer::get_tab_hidden);
ClassDB::bind_method(D_METHOD("get_tab_idx_at_point", "point"), &TabContainer::get_tab_idx_at_point);
ClassDB::bind_method(D_METHOD("set_popup", "popup"), &TabContainer::set_popup);
ClassDB::bind_method(D_METHOD("get_popup"), &TabContainer::get_popup);
diff --git a/scene/gui/tabs.cpp b/scene/gui/tabs.cpp
index 3ca2d1c1e9..ef34bec347 100644
--- a/scene/gui/tabs.cpp
+++ b/scene/gui/tabs.cpp
@@ -98,29 +98,45 @@ void Tabs::gui_input(const Ref<InputEvent> &p_event) {
if (mm.is_valid()) {
Point2 pos = mm->get_position();
- highlight_arrow = -1;
if (buttons_visible) {
Ref<Texture2D> incr = get_theme_icon(SNAME("increment"));
Ref<Texture2D> decr = get_theme_icon(SNAME("decrement"));
if (is_layout_rtl()) {
if (pos.x < decr->get_width()) {
- highlight_arrow = 1;
+ if (highlight_arrow != 1) {
+ highlight_arrow = 1;
+ update();
+ }
} else if (pos.x < incr->get_width() + decr->get_width()) {
- highlight_arrow = 0;
+ if (highlight_arrow != 0) {
+ highlight_arrow = 0;
+ update();
+ }
+ } else if (highlight_arrow != -1) {
+ highlight_arrow = -1;
+ update();
}
} else {
int limit_minus_buttons = get_size().width - incr->get_width() - decr->get_width();
if (pos.x > limit_minus_buttons + decr->get_width()) {
- highlight_arrow = 1;
+ if (highlight_arrow != 1) {
+ highlight_arrow = 1;
+ update();
+ }
} else if (pos.x > limit_minus_buttons) {
- highlight_arrow = 0;
+ if (highlight_arrow != 0) {
+ highlight_arrow = 0;
+ update();
+ }
+ } else if (highlight_arrow != -1) {
+ highlight_arrow = -1;
+ update();
}
}
}
_update_hover();
- update();
return;
}
@@ -167,7 +183,7 @@ void Tabs::gui_input(const Ref<InputEvent> &p_event) {
if (mb->is_pressed() && (mb->get_button_index() == MOUSE_BUTTON_LEFT || (select_with_rmb && mb->get_button_index() == MOUSE_BUTTON_RIGHT))) {
// clicks
- Point2 pos(mb->get_position().x, mb->get_position().y);
+ Point2 pos = mb->get_position();
if (buttons_visible) {
Ref<Texture2D> incr = get_theme_icon(SNAME("increment"));
@@ -241,6 +257,7 @@ void Tabs::_shape(int p_tab) {
tabs.write[p_tab].xl_text = atr(tabs[p_tab].text);
tabs.write[p_tab].text_buf->clear();
+ tabs.write[p_tab].text_buf->set_width(-1);
if (tabs[p_tab].text_direction == Control::TEXT_DIRECTION_INHERITED) {
tabs.write[p_tab].text_buf->set_direction(is_layout_rtl() ? TextServer::DIRECTION_RTL : TextServer::DIRECTION_LTR);
} else {
@@ -529,7 +546,6 @@ bool Tabs::get_offset_buttons_visible() const {
void Tabs::set_tab_title(int p_tab, const String &p_title) {
ERR_FAIL_INDEX(p_tab, tabs.size());
tabs.write[p_tab].text = p_title;
- tabs.write[p_tab].xl_text = atr(p_title);
_shape(p_tab);
update();
minimum_size_changed();
diff --git a/scene/gui/text_edit.cpp b/scene/gui/text_edit.cpp
index 06dfc31621..4ee69d336f 100644
--- a/scene/gui/text_edit.cpp
+++ b/scene/gui/text_edit.cpp
@@ -1444,7 +1444,7 @@ void TextEdit::gui_input(const Ref<InputEvent> &p_gui_input) {
if (mb->get_button_index() == MOUSE_BUTTON_LEFT) {
_reset_caret_blink_timer();
- Point2i pos = get_line_column_at_pos(Point2i(mpos.x, mpos.y));
+ Point2i pos = get_line_column_at_pos(mpos);
int row = pos.y;
int col = pos.x;
@@ -1547,7 +1547,7 @@ void TextEdit::gui_input(const Ref<InputEvent> &p_gui_input) {
if (mb->get_button_index() == MOUSE_BUTTON_RIGHT && context_menu_enabled) {
_reset_caret_blink_timer();
- Point2i pos = get_line_column_at_pos(Point2i(mpos.x, mpos.y));
+ Point2i pos = get_line_column_at_pos(mpos);
int row = pos.y;
int col = pos.x;
@@ -2731,7 +2731,10 @@ void TextEdit::insert_line_at(int p_at, const String &p_text) {
}
void TextEdit::insert_text_at_caret(const String &p_text) {
- begin_complex_operation();
+ bool had_selection = has_selection();
+ if (had_selection) {
+ begin_complex_operation();
+ }
delete_selection();
@@ -2743,7 +2746,9 @@ void TextEdit::insert_text_at_caret(const String &p_text) {
set_caret_column(new_column);
update();
- end_complex_operation();
+ if (had_selection) {
+ end_complex_operation();
+ }
}
void TextEdit::remove_text(int p_from_line, int p_from_column, int p_to_line, int p_to_column) {
@@ -3689,7 +3694,7 @@ void TextEdit::select_word_under_caret() {
int end = 0;
const Vector<Vector2i> words = TS->shaped_text_get_word_breaks(text.get_line_data(caret.line)->get_rid());
for (int i = 0; i < words.size(); i++) {
- if (words[i].x <= caret.column && words[i].y >= caret.column) {
+ if ((words[i].x < caret.column && words[i].y > caret.column) || (i == words.size() - 1 && caret.column == words[i].y)) {
begin = words[i].x;
end = words[i].y;
break;
@@ -5385,7 +5390,7 @@ void TextEdit::_update_selection_mode_pointer() {
dragging_selection = true;
Point2 mp = get_local_mouse_pos();
- Point2i pos = get_line_column_at_pos(Point2i(mp.x, mp.y));
+ Point2i pos = get_line_column_at_pos(mp);
int line = pos.y;
int col = pos.x;
@@ -5402,7 +5407,7 @@ void TextEdit::_update_selection_mode_word() {
dragging_selection = true;
Point2 mp = get_local_mouse_pos();
- Point2i pos = get_line_column_at_pos(Point2i(mp.x, mp.y));
+ Point2i pos = get_line_column_at_pos(mp);
int line = pos.y;
int col = pos.x;
@@ -5411,7 +5416,7 @@ void TextEdit::_update_selection_mode_word() {
int end = beg;
Vector<Vector2i> words = TS->shaped_text_get_word_breaks(text.get_line_data(line)->get_rid());
for (int i = 0; i < words.size(); i++) {
- if (words[i].x < caret_pos && words[i].y > caret_pos) {
+ if ((words[i].x < caret_pos && words[i].y > caret_pos) || (i == words.size() - 1 && caret_pos == words[i].y)) {
beg = words[i].x;
end = words[i].y;
break;
@@ -5450,7 +5455,7 @@ void TextEdit::_update_selection_mode_line() {
dragging_selection = true;
Point2 mp = get_local_mouse_pos();
- Point2i pos = get_line_column_at_pos(Point2i(mp.x, mp.y));
+ Point2i pos = get_line_column_at_pos(mp);
int line = pos.y;
int col = pos.x;
@@ -5765,7 +5770,7 @@ void TextEdit::_update_minimap_hover() {
return;
}
- const int row = get_minimap_line_at_pos(Point2i(mp.x, mp.y));
+ const int row = get_minimap_line_at_pos(mp);
const bool new_hovering_minimap = row >= get_first_visible_line() && row <= get_last_full_visible_line();
if (new_hovering_minimap != hovering_minimap) {
@@ -5786,7 +5791,7 @@ void TextEdit::_update_minimap_click() {
minimap_clicked = true;
dragging_minimap = true;
- int row = get_minimap_line_at_pos(Point2i(mp.x, mp.y));
+ int row = get_minimap_line_at_pos(mp);
if (row >= get_first_visible_line() && (row < get_last_full_visible_line() || row >= (text.size() - 1))) {
minimap_scroll_ratio = v_scroll->get_as_ratio();
diff --git a/scene/gui/texture_progress_bar.cpp b/scene/gui/texture_progress_bar.cpp
index 286f01ee33..35a098c6fd 100644
--- a/scene/gui/texture_progress_bar.cpp
+++ b/scene/gui/texture_progress_bar.cpp
@@ -471,7 +471,7 @@ void TextureProgressBar::_notification(int p_what) {
Vector<Point2> uvs;
Vector<Point2> points;
uvs.push_back(get_relative_center());
- points.push_back(progress_offset + Point2(s.x * get_relative_center().x, s.y * get_relative_center().y));
+ points.push_back(progress_offset + s * get_relative_center());
for (int i = 0; i < pts.size(); i++) {
Point2 uv = unit_val_to_uv(pts[i]);
if (uvs.find(uv) >= 0) {
@@ -493,8 +493,7 @@ void TextureProgressBar::_notification(int p_what) {
p = progress->get_size();
}
- p.x *= get_relative_center().x;
- p.y *= get_relative_center().y;
+ p *= get_relative_center();
p = p.floor();
draw_line(p - Point2(8, 0), p + Point2(8, 0), Color(0.9, 0.5, 0.5), 2);
draw_line(p - Point2(0, 8), p + Point2(0, 8), Color(0.9, 0.5, 0.5), 2);
diff --git a/scene/gui/tree.cpp b/scene/gui/tree.cpp
index f62c09925d..7d7596635c 100644
--- a/scene/gui/tree.cpp
+++ b/scene/gui/tree.cpp
@@ -144,6 +144,7 @@ void TreeItem::_change_tree(Tree *p_tree) {
/* cell mode */
void TreeItem::set_cell_mode(int p_column, TreeCellMode p_mode) {
ERR_FAIL_INDEX(p_column, cells.size());
+
Cell &c = cells.write[p_column];
c.mode = p_mode;
c.min = 0;
@@ -155,8 +156,9 @@ void TreeItem::set_cell_mode(int p_column, TreeCellMode p_mode) {
c.text = "";
c.dirty = true;
c.icon_max_w = 0;
+ c.cached_minimum_size_dirty = true;
+
_changed_notify(p_column);
- cached_minimum_size_dirty = true;
}
TreeItem::TreeCellMode TreeItem::get_cell_mode(int p_column) const {
@@ -167,22 +169,27 @@ TreeItem::TreeCellMode TreeItem::get_cell_mode(int p_column) const {
/* check mode */
void TreeItem::set_checked(int p_column, bool p_checked) {
ERR_FAIL_INDEX(p_column, cells.size());
+
cells.write[p_column].checked = p_checked;
cells.write[p_column].indeterminate = false;
+ cells.write[p_column].cached_minimum_size_dirty = true;
+
_changed_notify(p_column);
- cached_minimum_size_dirty = true;
}
void TreeItem::set_indeterminate(int p_column, bool p_indeterminate) {
ERR_FAIL_INDEX(p_column, cells.size());
+
// Prevent uncheck if indeterminate set to false twice
if (p_indeterminate == cells[p_column].indeterminate) {
return;
}
+
cells.write[p_column].indeterminate = p_indeterminate;
cells.write[p_column].checked = false;
+ cells.write[p_column].cached_minimum_size_dirty = true;
+
_changed_notify(p_column);
- cached_minimum_size_dirty = true;
}
bool TreeItem::is_checked(int p_column) const {
@@ -214,8 +221,10 @@ void TreeItem::set_text(int p_column, String p_text) {
}
cells.write[p_column].step = 0;
}
+
+ cells.write[p_column].cached_minimum_size_dirty = true;
+
_changed_notify(p_column);
- cached_minimum_size_dirty = true;
}
String TreeItem::get_text(int p_column) const {
@@ -231,7 +240,7 @@ void TreeItem::set_text_direction(int p_column, Control::TextDirection p_text_di
cells.write[p_column].dirty = true;
_changed_notify(p_column);
}
- cached_minimum_size_dirty = true;
+ cells.write[p_column].cached_minimum_size_dirty = true;
}
Control::TextDirection TreeItem::get_text_direction(int p_column) const {
@@ -241,10 +250,12 @@ Control::TextDirection TreeItem::get_text_direction(int p_column) const {
void TreeItem::clear_opentype_features(int p_column) {
ERR_FAIL_INDEX(p_column, cells.size());
+
cells.write[p_column].opentype_features.clear();
cells.write[p_column].dirty = true;
+ cells.write[p_column].cached_minimum_size_dirty = true;
+
_changed_notify(p_column);
- cached_minimum_size_dirty = true;
}
void TreeItem::set_opentype_feature(int p_column, const String &p_name, int p_value) {
@@ -253,8 +264,9 @@ void TreeItem::set_opentype_feature(int p_column, const String &p_name, int p_va
if (!cells[p_column].opentype_features.has(tag) || (int)cells[p_column].opentype_features[tag] != p_value) {
cells.write[p_column].opentype_features[tag] = p_value;
cells.write[p_column].dirty = true;
+ cells.write[p_column].cached_minimum_size_dirty = true;
+
_changed_notify(p_column);
- cached_minimum_size_dirty = true;
}
}
@@ -269,11 +281,13 @@ int TreeItem::get_opentype_feature(int p_column, const String &p_name) const {
void TreeItem::set_structured_text_bidi_override(int p_column, Control::StructuredTextParser p_parser) {
ERR_FAIL_INDEX(p_column, cells.size());
+
if (cells[p_column].st_parser != p_parser) {
cells.write[p_column].st_parser = p_parser;
cells.write[p_column].dirty = true;
+ cells.write[p_column].cached_minimum_size_dirty = true;
+
_changed_notify(p_column);
- cached_minimum_size_dirty = true;
}
}
@@ -284,10 +298,12 @@ Control::StructuredTextParser TreeItem::get_structured_text_bidi_override(int p_
void TreeItem::set_structured_text_bidi_override_options(int p_column, Array p_args) {
ERR_FAIL_INDEX(p_column, cells.size());
+
cells.write[p_column].st_args = p_args;
cells.write[p_column].dirty = true;
+ cells.write[p_column].cached_minimum_size_dirty = true;
+
_changed_notify(p_column);
- cached_minimum_size_dirty = true;
}
Array TreeItem::get_structured_text_bidi_override_options(int p_column) const {
@@ -297,11 +313,13 @@ Array TreeItem::get_structured_text_bidi_override_options(int p_column) const {
void TreeItem::set_language(int p_column, const String &p_language) {
ERR_FAIL_INDEX(p_column, cells.size());
+
if (cells[p_column].language != p_language) {
cells.write[p_column].language = p_language;
cells.write[p_column].dirty = true;
+ cells.write[p_column].cached_minimum_size_dirty = true;
+
_changed_notify(p_column);
- cached_minimum_size_dirty = true;
}
}
@@ -312,10 +330,11 @@ String TreeItem::get_language(int p_column) const {
void TreeItem::set_suffix(int p_column, String p_suffix) {
ERR_FAIL_INDEX(p_column, cells.size());
+
cells.write[p_column].suffix = p_suffix;
+ cells.write[p_column].cached_minimum_size_dirty = true;
_changed_notify(p_column);
- cached_minimum_size_dirty = true;
}
String TreeItem::get_suffix(int p_column) const {
@@ -325,9 +344,11 @@ String TreeItem::get_suffix(int p_column) const {
void TreeItem::set_icon(int p_column, const Ref<Texture2D> &p_icon) {
ERR_FAIL_INDEX(p_column, cells.size());
+
cells.write[p_column].icon = p_icon;
+ cells.write[p_column].cached_minimum_size_dirty = true;
+
_changed_notify(p_column);
- cached_minimum_size_dirty = true;
}
Ref<Texture2D> TreeItem::get_icon(int p_column) const {
@@ -337,9 +358,11 @@ Ref<Texture2D> TreeItem::get_icon(int p_column) const {
void TreeItem::set_icon_region(int p_column, const Rect2 &p_icon_region) {
ERR_FAIL_INDEX(p_column, cells.size());
+
cells.write[p_column].icon_region = p_icon_region;
+ cells.write[p_column].cached_minimum_size_dirty = true;
+
_changed_notify(p_column);
- cached_minimum_size_dirty = true;
}
Rect2 TreeItem::get_icon_region(int p_column) const {
@@ -360,9 +383,11 @@ Color TreeItem::get_icon_modulate(int p_column) const {
void TreeItem::set_icon_max_width(int p_column, int p_max) {
ERR_FAIL_INDEX(p_column, cells.size());
+
cells.write[p_column].icon_max_w = p_max;
+ cells.write[p_column].cached_minimum_size_dirty = true;
+
_changed_notify(p_column);
- cached_minimum_size_dirty = true;
}
int TreeItem::get_icon_max_width(int p_column) const {
@@ -474,8 +499,11 @@ void TreeItem::uncollapse_tree() {
void TreeItem::set_custom_minimum_height(int p_height) {
custom_min_height = p_height;
+
+ for (Cell &c : cells)
+ c.cached_minimum_size_dirty = true;
+
_changed_notify();
- cached_minimum_size_dirty = true;
}
int TreeItem::get_custom_minimum_height() const {
@@ -799,8 +827,9 @@ void TreeItem::add_button(int p_column, const Ref<Texture2D> &p_button, int p_id
button.disabled = p_disabled;
button.tooltip = p_tooltip;
cells.write[p_column].buttons.push_back(button);
+ cells.write[p_column].cached_minimum_size_dirty = true;
+
_changed_notify(p_column);
- cached_minimum_size_dirty = true;
}
int TreeItem::get_button_count(int p_column) const {
@@ -843,8 +872,9 @@ void TreeItem::set_button(int p_column, int p_idx, const Ref<Texture2D> &p_butto
ERR_FAIL_INDEX(p_column, cells.size());
ERR_FAIL_INDEX(p_idx, cells[p_column].buttons.size());
cells.write[p_column].buttons.write[p_idx].texture = p_button;
+ cells.write[p_column].cached_minimum_size_dirty = true;
+
_changed_notify(p_column);
- cached_minimum_size_dirty = true;
}
void TreeItem::set_button_color(int p_column, int p_idx, const Color &p_color) {
@@ -859,8 +889,9 @@ void TreeItem::set_button_disabled(int p_column, int p_idx, bool p_disabled) {
ERR_FAIL_INDEX(p_idx, cells[p_column].buttons.size());
cells.write[p_column].buttons.write[p_idx].disabled = p_disabled;
+ cells.write[p_column].cached_minimum_size_dirty = true;
+
_changed_notify(p_column);
- cached_minimum_size_dirty = true;
}
bool TreeItem::is_button_disabled(int p_column, int p_idx) const {
@@ -872,9 +903,11 @@ bool TreeItem::is_button_disabled(int p_column, int p_idx) const {
void TreeItem::set_editable(int p_column, bool p_editable) {
ERR_FAIL_INDEX(p_column, cells.size());
+
cells.write[p_column].editable = p_editable;
+ cells.write[p_column].cached_minimum_size_dirty = true;
+
_changed_notify(p_column);
- cached_minimum_size_dirty = true;
}
bool TreeItem::is_editable(int p_column) {
@@ -906,8 +939,9 @@ void TreeItem::clear_custom_color(int p_column) {
void TreeItem::set_custom_font(int p_column, const Ref<Font> &p_font) {
ERR_FAIL_INDEX(p_column, cells.size());
+
cells.write[p_column].custom_font = p_font;
- cached_minimum_size_dirty = true;
+ cells.write[p_column].cached_minimum_size_dirty = true;
}
Ref<Font> TreeItem::get_custom_font(int p_column) const {
@@ -917,8 +951,9 @@ Ref<Font> TreeItem::get_custom_font(int p_column) const {
void TreeItem::set_custom_font_size(int p_column, int p_font_size) {
ERR_FAIL_INDEX(p_column, cells.size());
+
cells.write[p_column].custom_font_size = p_font_size;
- cached_minimum_size_dirty = true;
+ cells.write[p_column].cached_minimum_size_dirty = true;
}
int TreeItem::get_custom_font_size(int p_column) const {
@@ -961,8 +996,9 @@ Color TreeItem::get_custom_bg_color(int p_column) const {
void TreeItem::set_custom_as_button(int p_column, bool p_button) {
ERR_FAIL_INDEX(p_column, cells.size());
+
cells.write[p_column].custom_button = p_button;
- cached_minimum_size_dirty = true;
+ cells.write[p_column].cached_minimum_size_dirty = true;
}
bool TreeItem::is_custom_set_as_button(int p_column) const {
@@ -972,9 +1008,11 @@ bool TreeItem::is_custom_set_as_button(int p_column) const {
void TreeItem::set_text_align(int p_column, TextAlign p_align) {
ERR_FAIL_INDEX(p_column, cells.size());
+
cells.write[p_column].text_align = p_align;
+ cells.write[p_column].cached_minimum_size_dirty = true;
+
_changed_notify(p_column);
- cached_minimum_size_dirty = true;
}
TreeItem::TextAlign TreeItem::get_text_align(int p_column) const {
@@ -984,9 +1022,11 @@ TreeItem::TextAlign TreeItem::get_text_align(int p_column) const {
void TreeItem::set_expand_right(int p_column, bool p_enable) {
ERR_FAIL_INDEX(p_column, cells.size());
+
cells.write[p_column].expand_right = p_enable;
+ cells.write[p_column].cached_minimum_size_dirty = true;
+
_changed_notify(p_column);
- cached_minimum_size_dirty = true;
}
bool TreeItem::get_expand_right(int p_column) const {
@@ -996,8 +1036,11 @@ bool TreeItem::get_expand_right(int p_column) const {
void TreeItem::set_disable_folding(bool p_disable) {
disable_folding = p_disable;
+
+ for (Cell &c : cells)
+ c.cached_minimum_size_dirty = true;
+
_changed_notify(0);
- cached_minimum_size_dirty = true;
}
bool TreeItem::is_folding_disabled() const {
@@ -1009,14 +1052,12 @@ Size2 TreeItem::get_minimum_size(int p_column) {
Tree *tree = get_tree();
ERR_FAIL_COND_V(!tree, Size2());
- if (cached_minimum_size_dirty) {
- Size2 size;
+ const TreeItem::Cell &cell = cells[p_column];
- // Default offset?
- //size.width += (disable_folding || tree->hide_folding) ? tree->cache.hseparation : tree->cache.item_margin;
+ if (cell.cached_minimum_size_dirty) {
+ Size2 size;
// Text.
- const TreeItem::Cell &cell = cells[p_column];
if (!cell.text.is_empty()) {
if (cell.dirty) {
tree->update_item_cell(this, p_column);
@@ -1052,11 +1093,11 @@ Size2 TreeItem::get_minimum_size(int p_column) {
size.width += (cell.buttons.size() - 1) * tree->cache.button_margin;
}
- cached_minimum_size = size;
- cached_minimum_size_dirty = false;
+ cells.write[p_column].cached_minimum_size = size;
+ cells.write[p_column].cached_minimum_size_dirty = false;
}
- return cached_minimum_size;
+ return cell.cached_minimum_size;
}
Variant TreeItem::_call_recursive_bind(const Variant **p_args, int p_argcount, Callable::CallError &r_error) {
@@ -1337,10 +1378,6 @@ void Tree::update_cache() {
cache.title_button_color = get_theme_color(SNAME("title_button_color"));
v_scroll->set_custom_step(cache.font->get_height(cache.font_size));
-
- for (TreeItem *item = get_root(); item; item = item->get_next()) {
- item->cached_minimum_size_dirty = true;
- }
}
int Tree::compute_item_height(TreeItem *p_item) const {
@@ -1712,7 +1749,7 @@ int Tree::draw_item(const Point2i &p_pos, const Point2 &p_draw_ofs, const Size2
}
if ((select_mode == SELECT_ROW && selected_item == p_item) || p_item->cells[i].selected || !p_item->has_meta("__focus_rect")) {
- Rect2i r(cell_rect.position, cell_rect.size);
+ Rect2i r = cell_rect;
p_item->set_meta("__focus_rect", Rect2(r.position, r.size));
@@ -1968,7 +2005,8 @@ int Tree::draw_item(const Point2i &p_pos, const Point2 &p_draw_ofs, const Size2
arrow = cache.arrow;
}
- Point2 apos = p_pos + p_draw_ofs + Point2i(0, (label_h - arrow->get_height()) / 2) - cache.offset;
+ Point2 apos = p_pos + Point2i(0, (label_h - arrow->get_height()) / 2) - cache.offset + p_draw_ofs;
+ apos.x += cache.item_margin - arrow->get_width();
if (rtl) {
apos.x = get_size().width - apos.x - arrow->get_width();
@@ -4000,10 +4038,12 @@ TreeItem *Tree::get_next_selected(TreeItem *p_item) {
int Tree::get_column_minimum_width(int p_column) const {
ERR_FAIL_INDEX_V(p_column, columns.size(), -1);
+ // Use the custom minimum width.
int min_width = columns[p_column].custom_min_width;
+ // Check if the visible title of the column is wider.
if (show_column_titles) {
- min_width = MAX(cache.font->get_string_size(columns[p_column].title).width, min_width);
+ min_width = MAX(cache.font->get_string_size(columns[p_column].title).width + cache.bg->get_margin(SIDE_LEFT) + cache.bg->get_margin(SIDE_RIGHT), min_width);
}
if (!columns[p_column].clip_content) {
@@ -4028,7 +4068,11 @@ int Tree::get_column_minimum_width(int p_column) const {
Size2 item_size = item->get_minimum_size(p_column);
if (p_column == 0) {
item_size.width += cache.item_margin * depth;
+ } else {
+ item_size.width += cache.hseparation;
}
+
+ // Check if the item is wider.
min_width = MAX(min_width, item_size.width);
}
}
@@ -4068,9 +4112,6 @@ int Tree::get_column_width(int p_column) const {
}
}
- if (p_column < columns.size() - 1) {
- column_width += cache.hseparation;
- }
return column_width;
}
diff --git a/scene/gui/tree.h b/scene/gui/tree.h
index 85fed941dc..c4a6b6b058 100644
--- a/scene/gui/tree.h
+++ b/scene/gui/tree.h
@@ -95,6 +95,9 @@ private:
bool expand_right = false;
Color icon_color = Color(1, 1, 1);
+ Size2i cached_minimum_size;
+ bool cached_minimum_size_dirty = true;
+
TextAlign text_align = ALIGN_LEFT;
Variant meta;
@@ -130,9 +133,6 @@ private:
bool disable_folding = false;
int custom_min_height = 0;
- Size2i cached_minimum_size;
- bool cached_minimum_size_dirty = true;
-
TreeItem *parent = nullptr; // parent item
TreeItem *prev = nullptr; // previous in list
TreeItem *next = nullptr; // next in list
diff --git a/scene/main/http_request.cpp b/scene/main/http_request.cpp
index f24d880045..14fd14dd18 100644
--- a/scene/main/http_request.cpp
+++ b/scene/main/http_request.cpp
@@ -104,9 +104,11 @@ Error HTTPRequest::request(const String &p_url, const Vector<String> &p_custom_h
CharString charstr = p_request_data.utf8();
size_t len = charstr.length();
- raw_data.resize(len);
- uint8_t *w = raw_data.ptrw();
- memcpy(w, charstr.ptr(), len);
+ if (len > 0) {
+ raw_data.resize(len);
+ uint8_t *w = raw_data.ptrw();
+ memcpy(w, charstr.ptr(), len);
+ }
return request_raw(p_url, p_custom_headers, p_ssl_validate_domain, p_method, raw_data);
}
diff --git a/scene/main/viewport.cpp b/scene/main/viewport.cpp
index cef1b830df..b3b743370b 100644
--- a/scene/main/viewport.cpp
+++ b/scene/main/viewport.cpp
@@ -1972,35 +1972,30 @@ void Viewport::_gui_input_event(Ref<InputEvent> p_event) {
Control *from = gui.key_focus ? gui.key_focus : nullptr;
- // Keyboard focus.
- Ref<InputEventKey> k = p_event;
- // Need to check for mods, otherwise any combination of alt/ctrl/shift+<up/down/left/right/etc> is handled here when it shouldn't be.
- bool mods = k.is_valid() && (k->is_ctrl_pressed() || k->is_alt_pressed() || k->is_shift_pressed() || k->is_meta_pressed());
-
if (from && p_event->is_pressed()) {
Control *next = nullptr;
- if (p_event->is_action_pressed("ui_focus_next", true)) {
+ if (p_event->is_action_pressed("ui_focus_next", true, true)) {
next = from->find_next_valid_focus();
}
- if (p_event->is_action_pressed("ui_focus_prev", true)) {
+ if (p_event->is_action_pressed("ui_focus_prev", true, true)) {
next = from->find_prev_valid_focus();
}
- if (!mods && p_event->is_action_pressed("ui_up", true)) {
+ if (p_event->is_action_pressed("ui_up", true, true)) {
next = from->_get_focus_neighbor(SIDE_TOP);
}
- if (!mods && p_event->is_action_pressed("ui_left", true)) {
+ if (p_event->is_action_pressed("ui_left", true, true)) {
next = from->_get_focus_neighbor(SIDE_LEFT);
}
- if (!mods && p_event->is_action_pressed("ui_right", true)) {
+ if (p_event->is_action_pressed("ui_right", true, true)) {
next = from->_get_focus_neighbor(SIDE_RIGHT);
}
- if (!mods && p_event->is_action_pressed("ui_down", true)) {
+ if (p_event->is_action_pressed("ui_down", true, true)) {
next = from->_get_focus_neighbor(SIDE_BOTTOM);
}
diff --git a/scene/resources/bit_map.cpp b/scene/resources/bit_map.cpp
index de557494c3..49ed9dcb82 100644
--- a/scene/resources/bit_map.cpp
+++ b/scene/resources/bit_map.cpp
@@ -48,7 +48,7 @@ void BitMap::create_from_image_alpha(const Ref<Image> &p_image, float p_threshol
img->convert(Image::FORMAT_LA8);
ERR_FAIL_COND(img->get_format() != Image::FORMAT_LA8);
- create(Size2(img->get_width(), img->get_height()));
+ create(img->get_size());
const uint8_t *r = img->get_data().ptr();
uint8_t *w = bitmask.ptrw();
diff --git a/scene/resources/canvas_item_material.cpp b/scene/resources/canvas_item_material.cpp
index 7501efea9e..fa95ab0e79 100644
--- a/scene/resources/canvas_item_material.cpp
+++ b/scene/resources/canvas_item_material.cpp
@@ -161,7 +161,7 @@ void CanvasItemMaterial::flush_changes() {
void CanvasItemMaterial::_queue_shader_change() {
MutexLock lock(material_mutex);
- if (!element.in_list()) {
+ if (is_initialized && !element.in_list()) {
dirty_materials->add(&element);
}
}
@@ -287,6 +287,7 @@ CanvasItemMaterial::CanvasItemMaterial() :
set_particles_anim_loop(false);
current_key.invalid_key = 1;
+ is_initialized = true;
_queue_shader_change();
}
diff --git a/scene/resources/canvas_item_material.h b/scene/resources/canvas_item_material.h
index 0a813e0ae5..37cd4de136 100644
--- a/scene/resources/canvas_item_material.h
+++ b/scene/resources/canvas_item_material.h
@@ -102,6 +102,7 @@ private:
_FORCE_INLINE_ void _queue_shader_change();
_FORCE_INLINE_ bool _is_shader_dirty() const;
+ bool is_initialized = false;
BlendMode blend_mode = BLEND_MODE_MIX;
LightMode light_mode = LIGHT_MODE_NORMAL;
bool particles_animation = false;
diff --git a/scene/resources/default_theme/default_theme.cpp b/scene/resources/default_theme/default_theme.cpp
index fa3824e6eb..492e0512e4 100644
--- a/scene/resources/default_theme/default_theme.cpp
+++ b/scene/resources/default_theme/default_theme.cpp
@@ -51,7 +51,7 @@ static Ref<StyleBoxTexture> make_stylebox(T p_src, float p_left, float p_top, fl
} else {
texture = Ref<ImageTexture>(memnew(ImageTexture));
Ref<Image> img = memnew(Image(p_src));
- const Size2 orig_size = Size2(img->get_width(), img->get_height());
+ const Size2 orig_size = img->get_size();
img->convert(Image::FORMAT_RGBA8);
img->resize(orig_size.x * scale, orig_size.y * scale);
@@ -97,7 +97,7 @@ template <class T>
static Ref<Texture2D> make_icon(T p_src) {
Ref<ImageTexture> texture(memnew(ImageTexture));
Ref<Image> img = memnew(Image(p_src));
- const Size2 orig_size = Size2(img->get_width(), img->get_height());
+ const Size2 orig_size = img->get_size();
img->convert(Image::FORMAT_RGBA8);
img->resize(orig_size.x * scale, orig_size.y * scale);
texture->create_from_image(img);
@@ -438,6 +438,8 @@ void fill_default_theme(Ref<Theme> &theme, const Ref<Font> &default_font, const
theme->set_color("caret_color", "TextEdit", control_font_color);
theme->set_color("caret_background_color", "TextEdit", Color(0, 0, 0));
theme->set_color("word_highlighted_color", "TextEdit", Color(0.8, 0.9, 0.9, 0.15));
+ theme->set_color("search_result_color", "TextEdit", Color(0.3, 0.3, 0.3));
+ theme->set_color("search_result_border_color", "TextEdit", Color(0.3, 0.3, 0.3, 0.4));
theme->set_constant("line_spacing", "TextEdit", 4 * scale);
theme->set_constant("outline_size", "TextEdit", 0);
@@ -483,6 +485,8 @@ void fill_default_theme(Ref<Theme> &theme, const Ref<Font> &default_font, const
theme->set_color("line_number_color", "CodeEdit", Color(0.67, 0.67, 0.67, 0.4));
theme->set_color("word_highlighted_color", "CodeEdit", Color(0.8, 0.9, 0.9, 0.15));
theme->set_color("line_length_guideline_color", "CodeEdit", Color(0.3, 0.5, 0.8, 0.1));
+ theme->set_color("search_result_color", "CodeEdit", Color(0.3, 0.3, 0.3));
+ theme->set_color("search_result_border_color", "CodeEdit", Color(0.3, 0.3, 0.3, 0.4));
theme->set_constant("completion_lines", "CodeEdit", 7);
theme->set_constant("completion_max_width", "CodeEdit", 50);
diff --git a/scene/resources/font.cpp b/scene/resources/font.cpp
index 29bd56eebd..9b403a18f0 100644
--- a/scene/resources/font.cpp
+++ b/scene/resources/font.cpp
@@ -1214,6 +1214,14 @@ void Font::add_data(const Ref<FontData> &p_data) {
if (data[data.size() - 1].is_valid()) {
data.write[data.size() - 1]->connect(SNAME("changed"), callable_mp(this, &Font::_data_changed), varray(), CONNECT_REFERENCE_COUNTED);
+ Dictionary data_var_list = p_data->get_supported_variation_list();
+ for (int j = 0; j < data_var_list.size(); j++) {
+ int32_t tag = data_var_list.get_key_at_index(j);
+ Vector3i value = data_var_list.get_value_at_index(j);
+ if (!variation_coordinates.has(tag) && !variation_coordinates.has(TS->tag_to_name(tag))) {
+ variation_coordinates[TS->tag_to_name(tag)] = value.z;
+ }
+ }
}
cache.clear();
@@ -1233,6 +1241,14 @@ void Font::set_data(int p_idx, const Ref<FontData> &p_data) {
data.write[p_idx] = p_data;
rids.write[p_idx] = RID();
+ Dictionary data_var_list = p_data->get_supported_variation_list();
+ for (int j = 0; j < data_var_list.size(); j++) {
+ int32_t tag = data_var_list.get_key_at_index(j);
+ Vector3i value = data_var_list.get_value_at_index(j);
+ if (!variation_coordinates.has(tag) && !variation_coordinates.has(TS->tag_to_name(tag))) {
+ variation_coordinates[TS->tag_to_name(tag)] = value.z;
+ }
+ }
if (data[p_idx].is_valid()) {
data.write[p_idx]->connect(SNAME("changed"), callable_mp(this, &Font::_data_changed), varray(), CONNECT_REFERENCE_COUNTED);
diff --git a/scene/resources/material.cpp b/scene/resources/material.cpp
index 643b0e34b9..3a6af3afb0 100644
--- a/scene/resources/material.cpp
+++ b/scene/resources/material.cpp
@@ -1301,7 +1301,7 @@ void BaseMaterial3D::flush_changes() {
void BaseMaterial3D::_queue_shader_change() {
MutexLock lock(material_mutex);
- if (!element.in_list()) {
+ if (is_initialized && !element.in_list()) {
dirty_materials->add(&element);
}
}
@@ -2777,6 +2777,7 @@ BaseMaterial3D::BaseMaterial3D(bool p_orm) :
flags[FLAG_USE_TEXTURE_REPEAT] = true;
+ is_initialized = true;
_queue_shader_change();
}
diff --git a/scene/resources/material.h b/scene/resources/material.h
index e2838e1399..5d7a5324ca 100644
--- a/scene/resources/material.h
+++ b/scene/resources/material.h
@@ -440,6 +440,7 @@ private:
_FORCE_INLINE_ void _queue_shader_change();
_FORCE_INLINE_ bool _is_shader_dirty() const;
+ bool is_initialized = false;
bool orm;
Color albedo;
diff --git a/scene/resources/packed_scene.cpp b/scene/resources/packed_scene.cpp
index e74f759855..59faa50114 100644
--- a/scene/resources/packed_scene.cpp
+++ b/scene/resources/packed_scene.cpp
@@ -99,8 +99,9 @@ Node *SceneState::instantiate(GenEditState p_edit_state) const {
#endif
parent = nparent;
} else {
- // i == 0 is root node. Confirm that it doesn't have a parent defined.
+ // i == 0 is root node.
ERR_FAIL_COND_V_MSG(n.parent != -1, nullptr, vformat("Invalid scene: root node %s cannot specify a parent node.", snames[n.name]));
+ ERR_FAIL_COND_V_MSG(n.type == TYPE_INSTANCED && base_scene_idx < 0, nullptr, vformat("Invalid scene: root node %s in an instance, but there's no base scene.", snames[n.name]));
}
Node *node = nullptr;
diff --git a/scene/resources/particles_material.cpp b/scene/resources/particles_material.cpp
index 0495a9e92c..d9ec0bfd69 100644
--- a/scene/resources/particles_material.cpp
+++ b/scene/resources/particles_material.cpp
@@ -741,7 +741,7 @@ void ParticlesMaterial::flush_changes() {
void ParticlesMaterial::_queue_shader_change() {
MutexLock lock(material_mutex);
- if (!element.in_list()) {
+ if (is_initialized && !element.in_list()) {
dirty_materials->add(&element);
}
}
@@ -1533,6 +1533,7 @@ ParticlesMaterial::ParticlesMaterial() :
current_key.invalid_key = 1;
+ is_initialized = true;
_queue_shader_change();
}
diff --git a/scene/resources/particles_material.h b/scene/resources/particles_material.h
index 8ab26aff77..36bc456978 100644
--- a/scene/resources/particles_material.h
+++ b/scene/resources/particles_material.h
@@ -226,6 +226,7 @@ private:
_FORCE_INLINE_ void _queue_shader_change();
_FORCE_INLINE_ bool _is_shader_dirty() const;
+ bool is_initialized = false;
Vector3 direction;
float spread;
float flatness;
diff --git a/scene/resources/primitive_meshes.cpp b/scene/resources/primitive_meshes.cpp
index e7da41db9d..f8be00f5fb 100644
--- a/scene/resources/primitive_meshes.cpp
+++ b/scene/resources/primitive_meshes.cpp
@@ -1390,6 +1390,12 @@ void QuadMesh::_bind_methods() {
ADD_PROPERTY(PropertyInfo(Variant::VECTOR3, "center_offset"), "set_center_offset", "get_center_offset");
}
+uint32_t QuadMesh::surface_get_format(int p_idx) const {
+ ERR_FAIL_INDEX_V(p_idx, 1, 0);
+
+ return RS::ARRAY_FORMAT_VERTEX | RS::ARRAY_FORMAT_NORMAL | RS::ARRAY_FORMAT_TANGENT | RS::ARRAY_FORMAT_TEX_UV;
+}
+
QuadMesh::QuadMesh() {
primitive_type = PRIMITIVE_TRIANGLES;
}
@@ -1460,7 +1466,7 @@ void SphereMesh::_create_mesh_array(Array &p_arr) const {
} else {
Vector3 p = Vector3(x * radius * w, y, z * radius * w);
points.push_back(p);
- Vector3 normal = Vector3(x * radius * w * scale, y / scale, z * radius * w * scale);
+ Vector3 normal = Vector3(x * w * scale, radius * (y / scale), z * w * scale);
normals.push_back(normal.normalized());
};
ADD_TANGENT(z, 0.0, -x, 1.0)
diff --git a/scene/resources/primitive_meshes.h b/scene/resources/primitive_meshes.h
index 7915cb0028..d447dad97a 100644
--- a/scene/resources/primitive_meshes.h
+++ b/scene/resources/primitive_meshes.h
@@ -285,6 +285,8 @@ protected:
virtual void _create_mesh_array(Array &p_arr) const override;
public:
+ virtual uint32_t surface_get_format(int p_idx) const override;
+
QuadMesh();
void set_size(const Size2 &p_size);
diff --git a/scene/resources/skeleton_modification_2d.cpp b/scene/resources/skeleton_modification_2d.cpp
index e533fb054a..7ac40b497d 100644
--- a/scene/resources/skeleton_modification_2d.cpp
+++ b/scene/resources/skeleton_modification_2d.cpp
@@ -96,37 +96,25 @@ float SkeletonModification2D::clamp_angle(float p_angle, float p_min_bound, floa
p_max_bound = Math_TAU + p_max_bound;
}
if (p_min_bound > p_max_bound) {
- float tmp = p_min_bound;
- p_min_bound = p_max_bound;
- p_max_bound = tmp;
+ SWAP(p_min_bound, p_max_bound);
}
+ bool is_beyond_bounds = (p_angle < p_min_bound || p_angle > p_max_bound);
+ bool is_within_bounds = (p_angle > p_min_bound && p_angle < p_max_bound);
+
// Note: May not be the most optimal way to clamp, but it always constraints to the nearest angle.
- if (p_invert == false) {
- if (p_angle < p_min_bound || p_angle > p_max_bound) {
- Vector2 min_bound_vec = Vector2(Math::cos(p_min_bound), Math::sin(p_min_bound));
- Vector2 max_bound_vec = Vector2(Math::cos(p_max_bound), Math::sin(p_max_bound));
- Vector2 angle_vec = Vector2(Math::cos(p_angle), Math::sin(p_angle));
-
- if (angle_vec.distance_squared_to(min_bound_vec) <= angle_vec.distance_squared_to(max_bound_vec)) {
- p_angle = p_min_bound;
- } else {
- p_angle = p_max_bound;
- }
- }
- } else {
- if (p_angle > p_min_bound && p_angle < p_max_bound) {
- Vector2 min_bound_vec = Vector2(Math::cos(p_min_bound), Math::sin(p_min_bound));
- Vector2 max_bound_vec = Vector2(Math::cos(p_max_bound), Math::sin(p_max_bound));
- Vector2 angle_vec = Vector2(Math::cos(p_angle), Math::sin(p_angle));
+ if ((!p_invert && is_beyond_bounds) || (p_invert && is_within_bounds)) {
+ Vector2 min_bound_vec = Vector2(Math::cos(p_min_bound), Math::sin(p_min_bound));
+ Vector2 max_bound_vec = Vector2(Math::cos(p_max_bound), Math::sin(p_max_bound));
+ Vector2 angle_vec = Vector2(Math::cos(p_angle), Math::sin(p_angle));
- if (angle_vec.distance_squared_to(min_bound_vec) <= angle_vec.distance_squared_to(max_bound_vec)) {
- p_angle = p_min_bound;
- } else {
- p_angle = p_max_bound;
- }
+ if (angle_vec.distance_squared_to(min_bound_vec) <= angle_vec.distance_squared_to(max_bound_vec)) {
+ p_angle = p_min_bound;
+ } else {
+ p_angle = p_max_bound;
}
}
+
return p_angle;
}
@@ -152,9 +140,7 @@ void SkeletonModification2D::editor_draw_angle_constraints(Bone2D *p_operation_b
arc_angle_max = (Math_PI * 2) + arc_angle_max;
}
if (arc_angle_min > arc_angle_max) {
- float tmp = arc_angle_min;
- arc_angle_min = arc_angle_max;
- arc_angle_max = tmp;
+ SWAP(arc_angle_min, arc_angle_max);
}
arc_angle_min += p_operation_bone->get_bone_angle();
arc_angle_max += p_operation_bone->get_bone_angle();
diff --git a/scene/resources/skeleton_modification_2d_fabrik.cpp b/scene/resources/skeleton_modification_2d_fabrik.cpp
index 6e9429034f..3b5c555f89 100644
--- a/scene/resources/skeleton_modification_2d_fabrik.cpp
+++ b/scene/resources/skeleton_modification_2d_fabrik.cpp
@@ -247,7 +247,7 @@ void SkeletonModification2DFABRIK::chain_backwards() {
}
float current_bone2d_node_length = current_bone2d_node->get_length() * MIN(current_bone2d_node->get_global_scale().x, current_bone2d_node->get_global_scale().y);
- float length = current_bone2d_node_length / (previous_pose.get_origin() - current_pose.get_origin()).length();
+ float length = current_bone2d_node_length / (current_pose.get_origin().distance_to(previous_pose.get_origin()));
Vector2 finish_position = previous_pose.get_origin().lerp(current_pose.get_origin(), length);
current_pose.set_origin(finish_position);
@@ -268,7 +268,7 @@ void SkeletonModification2DFABRIK::chain_forwards() {
Transform2D next_pose = fabrik_transform_chain[i + 1];
float current_bone2d_node_length = current_bone2d_node->get_length() * MIN(current_bone2d_node->get_global_scale().x, current_bone2d_node->get_global_scale().y);
- float length = current_bone2d_node_length / (current_pose.get_origin() - next_pose.get_origin()).length();
+ float length = current_bone2d_node_length / (next_pose.get_origin().distance_to(current_pose.get_origin()));
Vector2 finish_position = current_pose.get_origin().lerp(next_pose.get_origin(), length);
current_pose.set_origin(finish_position);
diff --git a/scene/resources/skeleton_modification_2d_twoboneik.cpp b/scene/resources/skeleton_modification_2d_twoboneik.cpp
index 88d80a501f..4f752896a9 100644
--- a/scene/resources/skeleton_modification_2d_twoboneik.cpp
+++ b/scene/resources/skeleton_modification_2d_twoboneik.cpp
@@ -144,7 +144,7 @@ void SkeletonModification2DTwoBoneIK::_execute(float p_delta) {
// With modifications by TwistedTwigleg
Vector2 target_difference = target->get_global_position() - joint_one_bone->get_global_position();
float joint_one_to_target = target_difference.length();
- float angle_atan = Math::atan2(target_difference.y, target_difference.x);
+ float angle_atan = target_difference.angle();
float bone_one_length = joint_one_bone->get_length() * MIN(joint_one_bone->get_global_scale().x, joint_one_bone->get_global_scale().y);
float bone_two_length = joint_two_bone->get_length() * MIN(joint_two_bone->get_global_scale().x, joint_two_bone->get_global_scale().y);
diff --git a/scene/resources/skeleton_modification_3d.cpp b/scene/resources/skeleton_modification_3d.cpp
index ee02ede2d5..b476952d86 100644
--- a/scene/resources/skeleton_modification_3d.cpp
+++ b/scene/resources/skeleton_modification_3d.cpp
@@ -72,37 +72,25 @@ real_t SkeletonModification3D::clamp_angle(real_t p_angle, real_t p_min_bound, r
p_max_bound = Math_TAU + p_max_bound;
}
if (p_min_bound > p_max_bound) {
- real_t tmp = p_min_bound;
- p_min_bound = p_max_bound;
- p_max_bound = tmp;
+ SWAP(p_min_bound, p_max_bound);
}
+ bool is_beyond_bounds = (p_angle < p_min_bound || p_angle > p_max_bound);
+ bool is_within_bounds = (p_angle > p_min_bound && p_angle < p_max_bound);
+
// Note: May not be the most optimal way to clamp, but it always constraints to the nearest angle.
- if (p_invert == false) {
- if (p_angle < p_min_bound || p_angle > p_max_bound) {
- Vector2 min_bound_vec = Vector2(Math::cos(p_min_bound), Math::sin(p_min_bound));
- Vector2 max_bound_vec = Vector2(Math::cos(p_max_bound), Math::sin(p_max_bound));
- Vector2 angle_vec = Vector2(Math::cos(p_angle), Math::sin(p_angle));
-
- if (angle_vec.distance_squared_to(min_bound_vec) <= angle_vec.distance_squared_to(max_bound_vec)) {
- p_angle = p_min_bound;
- } else {
- p_angle = p_max_bound;
- }
- }
- } else {
- if (p_angle > p_min_bound && p_angle < p_max_bound) {
- Vector2 min_bound_vec = Vector2(Math::cos(p_min_bound), Math::sin(p_min_bound));
- Vector2 max_bound_vec = Vector2(Math::cos(p_max_bound), Math::sin(p_max_bound));
- Vector2 angle_vec = Vector2(Math::cos(p_angle), Math::sin(p_angle));
-
- if (angle_vec.distance_squared_to(min_bound_vec) <= angle_vec.distance_squared_to(max_bound_vec)) {
- p_angle = p_min_bound;
- } else {
- p_angle = p_max_bound;
- }
+ if ((!p_invert && is_beyond_bounds) || (p_invert && is_within_bounds)) {
+ Vector2 min_bound_vec = Vector2(Math::cos(p_min_bound), Math::sin(p_min_bound));
+ Vector2 max_bound_vec = Vector2(Math::cos(p_max_bound), Math::sin(p_max_bound));
+ Vector2 angle_vec = Vector2(Math::cos(p_angle), Math::sin(p_angle));
+
+ if (angle_vec.distance_squared_to(min_bound_vec) <= angle_vec.distance_squared_to(max_bound_vec)) {
+ p_angle = p_min_bound;
+ } else {
+ p_angle = p_max_bound;
}
}
+
return p_angle;
}
diff --git a/scene/resources/skeleton_modification_3d_fabrik.cpp b/scene/resources/skeleton_modification_3d_fabrik.cpp
index 69f75eb7b5..e615615924 100644
--- a/scene/resources/skeleton_modification_3d_fabrik.cpp
+++ b/scene/resources/skeleton_modification_3d_fabrik.cpp
@@ -232,7 +232,7 @@ void SkeletonModification3DFABRIK::chain_backwards() {
int current_bone_idx = fabrik_data_chain[i].bone_idx;
Transform3D current_trans = stack->skeleton->local_pose_to_global_pose(current_bone_idx, stack->skeleton->get_bone_local_pose_override(current_bone_idx));
- real_t length = fabrik_data_chain[i].length / (next_bone_trans.origin - current_trans.origin).length();
+ real_t length = fabrik_data_chain[i].length / (current_trans.origin.distance_to(next_bone_trans.origin));
current_trans.origin = next_bone_trans.origin.lerp(current_trans.origin, length);
// Apply it back to the skeleton
@@ -253,7 +253,7 @@ void SkeletonModification3DFABRIK::chain_forwards() {
int next_bone_idx = fabrik_data_chain[i + 1].bone_idx;
Transform3D next_bone_trans = stack->skeleton->local_pose_to_global_pose(next_bone_idx, stack->skeleton->get_bone_local_pose_override(next_bone_idx));
- real_t length = fabrik_data_chain[i].length / (current_trans.origin - next_bone_trans.origin).length();
+ real_t length = fabrik_data_chain[i].length / (next_bone_trans.origin.distance_to(current_trans.origin));
next_bone_trans.origin = current_trans.origin.lerp(next_bone_trans.origin, length);
// Apply it back to the skeleton
diff --git a/scene/resources/surface_tool.cpp b/scene/resources/surface_tool.cpp
index d5e370568d..a8cd872408 100644
--- a/scene/resources/surface_tool.cpp
+++ b/scene/resources/surface_tool.cpp
@@ -1176,6 +1176,7 @@ Vector<int> SurfaceTool::generate_lod(float p_threshold, int p_target_index_coun
ERR_FAIL_COND_V(simplify_func == nullptr, lod);
ERR_FAIL_COND_V(vertex_array.size() == 0, lod);
ERR_FAIL_COND_V(index_array.size() == 0, lod);
+ ERR_FAIL_COND_V(index_array.size() % 3 != 0, lod);
lod.resize(index_array.size());
LocalVector<float> vertices; //uses floats
diff --git a/scene/resources/texture.cpp b/scene/resources/texture.cpp
index 3dc32632cc..80cab99373 100644
--- a/scene/resources/texture.cpp
+++ b/scene/resources/texture.cpp
@@ -1248,6 +1248,14 @@ bool AtlasTexture::is_pixel_opaque(int p_x, int p_y) const {
return atlas->is_pixel_opaque(x, y);
}
+Ref<Image> AtlasTexture::get_image() const {
+ if (!atlas.is_valid()) {
+ return Ref<Image>();
+ }
+
+ return atlas->get_image()->get_rect(region);
+}
+
AtlasTexture::AtlasTexture() {}
/////////////////////////////////////////
diff --git a/scene/resources/texture.h b/scene/resources/texture.h
index 93f4e2de5a..862b9a47a6 100644
--- a/scene/resources/texture.h
+++ b/scene/resources/texture.h
@@ -250,6 +250,8 @@ public:
bool is_pixel_opaque(int p_x, int p_y) const override;
+ virtual Ref<Image> get_image() const override;
+
AtlasTexture();
};
diff --git a/scene/resources/tile_set.cpp b/scene/resources/tile_set.cpp
index 918fc3fe9c..15e622c9d6 100644
--- a/scene/resources/tile_set.cpp
+++ b/scene/resources/tile_set.cpp
@@ -1019,20 +1019,25 @@ Vector<Vector2> TileSet::get_tile_shape_polygon() {
void TileSet::draw_tile_shape(CanvasItem *p_canvas_item, Transform2D p_transform, Color p_color, bool p_filled, Ref<Texture2D> p_texture) {
if (tile_meshes_dirty) {
- Vector<Vector2> uvs = get_tile_shape_polygon();
+ Vector<Vector2> shape = get_tile_shape_polygon();
+ Vector<Vector2> uvs;
+ uvs.resize(shape.size());
+ for (int i = 0; i < shape.size(); i++) {
+ uvs.write[i] = shape[i] + Vector2(0.5, 0.5);
+ }
Vector<Color> colors;
- colors.resize(uvs.size());
+ colors.resize(shape.size());
colors.fill(Color(1.0, 1.0, 1.0, 1.0));
// Filled mesh.
tile_filled_mesh->clear_surfaces();
Array a;
a.resize(Mesh::ARRAY_MAX);
- a[Mesh::ARRAY_VERTEX] = uvs;
+ a[Mesh::ARRAY_VERTEX] = shape;
a[Mesh::ARRAY_TEX_UV] = uvs;
a[Mesh::ARRAY_COLOR] = colors;
- a[Mesh::ARRAY_INDEX] = Geometry2D::triangulate_polygon(uvs);
+ a[Mesh::ARRAY_INDEX] = Geometry2D::triangulate_polygon(shape);
tile_filled_mesh->add_surface_from_arrays(Mesh::PRIMITIVE_TRIANGLES, a, Array(), Dictionary(), Mesh::ARRAY_FLAG_USE_2D_VERTICES);
// Lines mesh.
@@ -1040,9 +1045,9 @@ void TileSet::draw_tile_shape(CanvasItem *p_canvas_item, Transform2D p_transform
a.clear();
a.resize(Mesh::ARRAY_MAX);
// Add the first point again when drawing lines.
- uvs.push_back(uvs[0]);
+ shape.push_back(shape[0]);
colors.push_back(colors[0]);
- a[Mesh::ARRAY_VERTEX] = uvs;
+ a[Mesh::ARRAY_VERTEX] = shape;
a[Mesh::ARRAY_COLOR] = colors;
tile_lines_mesh->add_surface_from_arrays(Mesh::PRIMITIVE_LINE_STRIP, a, Array(), Dictionary(), Mesh::ARRAY_FLAG_USE_2D_VERTICES);
@@ -3138,8 +3143,32 @@ bool TileSetAtlasSource::_set(const StringName &p_name, const Variant &p_value)
// Properties.
if (components[1] == "size_in_atlas") {
move_tile_in_atlas(coords, coords, p_value);
+ return true;
} else if (components[1] == "next_alternative_id") {
tiles[coords].next_alternative_id = p_value;
+ return true;
+ } else if (components[1] == "animation_columns") {
+ set_tile_animation_columns(coords, p_value);
+ return true;
+ } else if (components[1] == "animation_separation") {
+ set_tile_animation_separation(coords, p_value);
+ return true;
+ } else if (components[1] == "animation_speed") {
+ set_tile_animation_speed(coords, p_value);
+ return true;
+ } else if (components[1] == "animation_frames_count") {
+ set_tile_animation_frames_count(coords, p_value);
+ return true;
+ } else if (components.size() >= 3 && components[1].begins_with("animation_frame_") && components[1].trim_prefix("animation_frame_").is_valid_int()) {
+ int frame = components[1].trim_prefix("animation_frame_").to_int();
+ if (components[2] == "duration") {
+ if (frame >= get_tile_animation_frames_count(coords)) {
+ set_tile_animation_frames_count(coords, frame + 1);
+ }
+ set_tile_animation_frame_duration(coords, frame, p_value);
+ return true;
+ }
+ return false;
} else if (components[1].is_valid_int()) {
int alternative_id = components[1].to_int();
if (alternative_id != TileSetSource::INVALID_TILE_ALTERNATIVE) {
@@ -3185,6 +3214,28 @@ bool TileSetAtlasSource::_get(const StringName &p_name, Variant &r_ret) const {
} else if (components[1] == "next_alternative_id") {
r_ret = tiles[coords].next_alternative_id;
return true;
+ } else if (components[1] == "animation_columns") {
+ r_ret = get_tile_animation_columns(coords);
+ return true;
+ } else if (components[1] == "animation_separation") {
+ r_ret = get_tile_animation_separation(coords);
+ return true;
+ } else if (components[1] == "animation_speed") {
+ r_ret = get_tile_animation_speed(coords);
+ return true;
+ } else if (components[1] == "animation_frames_count") {
+ r_ret = get_tile_animation_frames_count(coords);
+ return true;
+ } else if (components.size() >= 3 && components[1].begins_with("animation_frame_") && components[1].trim_prefix("animation_frame_").is_valid_int()) {
+ int frame = components[1].trim_prefix("animation_frame_").to_int();
+ if (frame < 0 || frame >= get_tile_animation_frames_count(coords)) {
+ return false;
+ }
+ if (components[2] == "duration") {
+ r_ret = get_tile_animation_frame_duration(coords, frame);
+ return true;
+ }
+ return false;
} else if (components[1].is_valid_int()) {
int alternative_id = components[1].to_int();
if (alternative_id != TileSetSource::INVALID_TILE_ALTERNATIVE && tiles[coords].alternatives.has(alternative_id)) {
@@ -3226,6 +3277,40 @@ void TileSetAtlasSource::_get_property_list(List<PropertyInfo> *p_list) const {
}
tile_property_list.push_back(property_info);
+ // animation_columns.
+ property_info = PropertyInfo(Variant::INT, "animation_columns", PROPERTY_HINT_NONE, "", PROPERTY_USAGE_NOEDITOR);
+ if (E_tile->get().animation_columns == 0) {
+ property_info.usage ^= PROPERTY_USAGE_STORAGE;
+ }
+ tile_property_list.push_back(property_info);
+
+ // animation_separation.
+ property_info = PropertyInfo(Variant::INT, "animation_separation", PROPERTY_HINT_NONE, "", PROPERTY_USAGE_NOEDITOR);
+ if (E_tile->get().animation_separation == Vector2i()) {
+ property_info.usage ^= PROPERTY_USAGE_STORAGE;
+ }
+ tile_property_list.push_back(property_info);
+
+ // animation_speed.
+ property_info = PropertyInfo(Variant::FLOAT, "animation_speed", PROPERTY_HINT_NONE, "", PROPERTY_USAGE_NOEDITOR);
+ if (E_tile->get().animation_speed == 1.0) {
+ property_info.usage ^= PROPERTY_USAGE_STORAGE;
+ }
+ tile_property_list.push_back(property_info);
+
+ // animation_frames_count.
+ tile_property_list.push_back(PropertyInfo(Variant::INT, "animation_frames_count", PROPERTY_HINT_NONE, "", PROPERTY_USAGE_NETWORK));
+
+ // animation_frame_*.
+ bool store_durations = tiles[E_tile->key()].animation_frames_durations.size() >= 2;
+ for (int i = 0; i < (int)tiles[E_tile->key()].animation_frames_durations.size(); i++) {
+ property_info = PropertyInfo(Variant::FLOAT, vformat("animation_frame_%d/duration", i), PROPERTY_HINT_NONE, "", PROPERTY_USAGE_NOEDITOR);
+ if (!store_durations) {
+ property_info.usage ^= PROPERTY_USAGE_STORAGE;
+ }
+ tile_property_list.push_back(property_info);
+ }
+
for (Map<int, TileData *>::Element *E_alternative = E_tile->get().alternatives.front(); E_alternative; E_alternative = E_alternative->next()) {
// Add a dummy property to show the alternative exists.
tile_property_list.push_back(PropertyInfo(Variant::INT, vformat("%d", E_alternative->key()), PROPERTY_HINT_NONE, "", PROPERTY_USAGE_NOEDITOR));
@@ -3234,11 +3319,10 @@ void TileSetAtlasSource::_get_property_list(List<PropertyInfo> *p_list) const {
List<PropertyInfo> alternative_property_list;
E_alternative->get()->get_property_list(&alternative_property_list);
for (PropertyInfo &alternative_property_info : alternative_property_list) {
- bool valid;
- Variant default_value = ClassDB::class_get_default_property_value("TileData", alternative_property_info.name, &valid);
+ Variant default_value = ClassDB::class_get_default_property_value("TileData", alternative_property_info.name);
Variant value = E_alternative->get()->get(alternative_property_info.name);
- if (valid && value == default_value) {
- property_info.usage ^= PROPERTY_USAGE_STORAGE;
+ if (default_value.get_type() != Variant::NIL && bool(Variant::evaluate(Variant::OP_EQUAL, value, default_value))) {
+ alternative_property_info.usage ^= PROPERTY_USAGE_STORAGE;
}
alternative_property_info.name = vformat("%s/%s", vformat("%d", E_alternative->key()), alternative_property_info.name);
tile_property_list.push_back(alternative_property_info);
@@ -3257,33 +3341,27 @@ void TileSetAtlasSource::create_tile(const Vector2i p_atlas_coords, const Vector
// Create a tile if it does not exists.
ERR_FAIL_COND(p_atlas_coords.x < 0 || p_atlas_coords.y < 0);
ERR_FAIL_COND(p_size.x <= 0 || p_size.y <= 0);
- for (int x = 0; x < p_size.x; x++) {
- for (int y = 0; y < p_size.y; y++) {
- Vector2i coords = p_atlas_coords + Vector2i(x, y);
- ERR_FAIL_COND_MSG(tiles.has(coords), vformat("Cannot create tile at position %s with size %s. Already a tile present at %s.", p_atlas_coords, p_size, coords));
- }
- }
+
+ bool room_for_tile = has_room_for_tile(p_atlas_coords, p_size, 1, Vector2i(), 1);
+ ERR_FAIL_COND_MSG(!room_for_tile, "Cannot create tile, tiles are already present in the space the tile would cover.");
+
+ // Initialize the tile data.
+ TileAlternativesData tad;
+ tad.size_in_atlas = p_size;
+ tad.animation_frames_durations.push_back(1.0);
+ tad.alternatives[0] = memnew(TileData);
+ tad.alternatives[0]->set_tile_set(tile_set);
+ tad.alternatives[0]->set_allow_transform(false);
+ tad.alternatives[0]->connect("changed", callable_mp((Resource *)this, &TileSetAtlasSource::emit_changed));
+ tad.alternatives[0]->notify_property_list_changed();
+ tad.alternatives_ids.append(0);
// Create and resize the tile.
- tiles.insert(p_atlas_coords, TileSetAtlasSource::TileAlternativesData());
+ tiles.insert(p_atlas_coords, tad);
tiles_ids.append(p_atlas_coords);
tiles_ids.sort();
- tiles[p_atlas_coords].size_in_atlas = p_size;
- tiles[p_atlas_coords].alternatives[0] = memnew(TileData);
- tiles[p_atlas_coords].alternatives[0]->set_tile_set(tile_set);
- tiles[p_atlas_coords].alternatives[0]->set_allow_transform(false);
- tiles[p_atlas_coords].alternatives[0]->connect("changed", callable_mp((Resource *)this, &TileSetAtlasSource::emit_changed));
- tiles[p_atlas_coords].alternatives[0]->notify_property_list_changed();
- tiles[p_atlas_coords].alternatives_ids.append(0);
-
- // Add all covered positions to the mapping cache
- for (int x = 0; x < p_size.x; x++) {
- for (int y = 0; y < p_size.y; y++) {
- Vector2i coords = p_atlas_coords + Vector2i(x, y);
- _coords_mapping_cache[coords] = p_atlas_coords;
- }
- }
+ _create_coords_mapping_cache(p_atlas_coords);
emit_signal(SNAME("changed"));
}
@@ -3292,14 +3370,7 @@ void TileSetAtlasSource::remove_tile(Vector2i p_atlas_coords) {
ERR_FAIL_COND_MSG(!tiles.has(p_atlas_coords), vformat("TileSetAtlasSource has no tile at %s.", String(p_atlas_coords)));
// Remove all covered positions from the mapping cache
- Size2i size = tiles[p_atlas_coords].size_in_atlas;
-
- for (int x = 0; x < size.x; x++) {
- for (int y = 0; y < size.y; y++) {
- Vector2i coords = p_atlas_coords + Vector2i(x, y);
- _coords_mapping_cache.erase(coords);
- }
- }
+ _clear_coords_mapping_cache(p_atlas_coords);
// Free tile data.
for (Map<int, TileData *>::Element *E_tile_data = tiles[p_atlas_coords].alternatives.front(); E_tile_data; E_tile_data = E_tile_data->next()) {
@@ -3326,6 +3397,118 @@ Vector2i TileSetAtlasSource::get_tile_at_coords(Vector2i p_atlas_coords) const {
return _coords_mapping_cache[p_atlas_coords];
}
+void TileSetAtlasSource::set_tile_animation_columns(const Vector2i p_atlas_coords, int p_frame_columns) {
+ ERR_FAIL_COND_MSG(!tiles.has(p_atlas_coords), vformat("TileSetAtlasSource has no tile at %s.", Vector2i(p_atlas_coords)));
+ ERR_FAIL_COND(p_frame_columns < 0);
+
+ TileAlternativesData &tad = tiles[p_atlas_coords];
+ bool room_for_tile = has_room_for_tile(p_atlas_coords, tad.size_in_atlas, p_frame_columns, tad.animation_separation, tad.animation_frames_durations.size(), p_atlas_coords);
+ ERR_FAIL_COND_MSG(!room_for_tile, "Cannot set animation columns count, tiles are already present in the space the tile would cover.");
+
+ _clear_coords_mapping_cache(p_atlas_coords);
+
+ tiles[p_atlas_coords].animation_columns = p_frame_columns;
+
+ _create_coords_mapping_cache(p_atlas_coords);
+
+ emit_signal(SNAME("changed"));
+}
+
+int TileSetAtlasSource::get_tile_animation_columns(const Vector2i p_atlas_coords) const {
+ ERR_FAIL_COND_V_MSG(!tiles.has(p_atlas_coords), 1, vformat("TileSetAtlasSource has no tile at %s.", Vector2i(p_atlas_coords)));
+ return tiles[p_atlas_coords].animation_columns;
+}
+
+void TileSetAtlasSource::set_tile_animation_separation(const Vector2i p_atlas_coords, const Vector2i p_separation) {
+ ERR_FAIL_COND_MSG(!tiles.has(p_atlas_coords), vformat("TileSetAtlasSource has no tile at %s.", Vector2i(p_atlas_coords)));
+ ERR_FAIL_COND(p_separation.x < 0 || p_separation.y < 0);
+
+ TileAlternativesData &tad = tiles[p_atlas_coords];
+ bool room_for_tile = has_room_for_tile(p_atlas_coords, tad.size_in_atlas, tad.animation_columns, p_separation, tad.animation_frames_durations.size(), p_atlas_coords);
+ ERR_FAIL_COND_MSG(!room_for_tile, "Cannot set animation columns count, tiles are already present in the space the tile would cover.");
+
+ _clear_coords_mapping_cache(p_atlas_coords);
+
+ tiles[p_atlas_coords].animation_separation = p_separation;
+
+ _create_coords_mapping_cache(p_atlas_coords);
+
+ emit_signal(SNAME("changed"));
+}
+
+Vector2i TileSetAtlasSource::get_tile_animation_separation(const Vector2i p_atlas_coords) const {
+ ERR_FAIL_COND_V_MSG(!tiles.has(p_atlas_coords), Vector2i(), vformat("TileSetAtlasSource has no tile at %s.", Vector2i(p_atlas_coords)));
+ return tiles[p_atlas_coords].animation_separation;
+}
+
+void TileSetAtlasSource::set_tile_animation_speed(const Vector2i p_atlas_coords, real_t p_speed) {
+ ERR_FAIL_COND_MSG(!tiles.has(p_atlas_coords), vformat("TileSetAtlasSource has no tile at %s.", Vector2i(p_atlas_coords)));
+ ERR_FAIL_COND(p_speed <= 0);
+
+ tiles[p_atlas_coords].animation_speed = p_speed;
+
+ emit_signal(SNAME("changed"));
+}
+
+real_t TileSetAtlasSource::get_tile_animation_speed(const Vector2i p_atlas_coords) const {
+ ERR_FAIL_COND_V_MSG(!tiles.has(p_atlas_coords), 1.0, vformat("TileSetAtlasSource has no tile at %s.", Vector2i(p_atlas_coords)));
+ return tiles[p_atlas_coords].animation_speed;
+}
+
+void TileSetAtlasSource::set_tile_animation_frames_count(const Vector2i p_atlas_coords, int p_frames_count) {
+ ERR_FAIL_COND_MSG(!tiles.has(p_atlas_coords), vformat("TileSetAtlasSource has no tile at %s.", Vector2i(p_atlas_coords)));
+ ERR_FAIL_COND(p_frames_count < 1);
+
+ TileAlternativesData &tad = tiles[p_atlas_coords];
+ bool room_for_tile = has_room_for_tile(p_atlas_coords, tad.size_in_atlas, tad.animation_columns, tad.animation_separation, p_frames_count, p_atlas_coords);
+ ERR_FAIL_COND_MSG(!room_for_tile, "Cannot set animation columns count, tiles are already present in the space the tile would cover.");
+
+ _clear_coords_mapping_cache(p_atlas_coords);
+
+ int old_size = tiles[p_atlas_coords].animation_frames_durations.size();
+ tiles[p_atlas_coords].animation_frames_durations.resize(p_frames_count);
+ for (int i = old_size; i < p_frames_count; i++) {
+ tiles[p_atlas_coords].animation_frames_durations[i] = 1.0;
+ }
+
+ _create_coords_mapping_cache(p_atlas_coords);
+
+ notify_property_list_changed();
+
+ emit_signal(SNAME("changed"));
+}
+
+int TileSetAtlasSource::get_tile_animation_frames_count(const Vector2i p_atlas_coords) const {
+ ERR_FAIL_COND_V_MSG(!tiles.has(p_atlas_coords), 1, vformat("TileSetAtlasSource has no tile at %s.", Vector2i(p_atlas_coords)));
+ return tiles[p_atlas_coords].animation_frames_durations.size();
+}
+
+void TileSetAtlasSource::set_tile_animation_frame_duration(const Vector2i p_atlas_coords, int p_frame_index, real_t p_duration) {
+ ERR_FAIL_COND_MSG(!tiles.has(p_atlas_coords), vformat("TileSetAtlasSource has no tile at %s.", Vector2i(p_atlas_coords)));
+ ERR_FAIL_INDEX(p_frame_index, (int)tiles[p_atlas_coords].animation_frames_durations.size());
+ ERR_FAIL_COND(p_duration <= 0.0);
+
+ tiles[p_atlas_coords].animation_frames_durations[p_frame_index] = p_duration;
+
+ emit_signal(SNAME("changed"));
+}
+
+real_t TileSetAtlasSource::get_tile_animation_frame_duration(const Vector2i p_atlas_coords, int p_frame_index) const {
+ ERR_FAIL_COND_V_MSG(!tiles.has(p_atlas_coords), 1, vformat("TileSetAtlasSource has no tile at %s.", Vector2i(p_atlas_coords)));
+ ERR_FAIL_INDEX_V(p_frame_index, (int)tiles[p_atlas_coords].animation_frames_durations.size(), 0.0);
+ return tiles[p_atlas_coords].animation_frames_durations[p_frame_index];
+}
+
+real_t TileSetAtlasSource::get_tile_animation_total_duration(const Vector2i p_atlas_coords) const {
+ ERR_FAIL_COND_V_MSG(!tiles.has(p_atlas_coords), 1, vformat("TileSetAtlasSource has no tile at %s.", Vector2i(p_atlas_coords)));
+
+ real_t sum = 0.0;
+ for (int frame = 0; frame < (int)tiles[p_atlas_coords].animation_frames_durations.size(); frame++) {
+ sum += tiles[p_atlas_coords].animation_frames_durations[frame];
+ }
+ return sum;
+}
+
Vector2i TileSetAtlasSource::get_tile_size_in_atlas(Vector2i p_atlas_coords) const {
ERR_FAIL_COND_V_MSG(!tiles.has(p_atlas_coords), Vector2i(-1, -1), vformat("TileSetAtlasSource has no tile at %s.", String(p_atlas_coords)));
@@ -3341,16 +3524,46 @@ Vector2i TileSetAtlasSource::get_tile_id(int p_index) const {
return tiles_ids[p_index];
}
-Rect2i TileSetAtlasSource::get_tile_texture_region(Vector2i p_atlas_coords) const {
+bool TileSetAtlasSource::has_room_for_tile(Vector2i p_atlas_coords, Vector2i p_size, int p_animation_columns, Vector2i p_animation_separation, int p_frames_count, Vector2i p_ignored_tile) const {
+ if (p_atlas_coords.x < 0 || p_atlas_coords.y < 0) {
+ return false;
+ }
+ if (p_size.x <= 0 || p_size.y <= 0) {
+ return false;
+ }
+ Size2i atlas_grid_size = get_atlas_grid_size();
+ for (int frame = 0; frame < p_frames_count; frame++) {
+ Vector2i frame_coords = p_atlas_coords + (p_size + p_animation_separation) * ((p_animation_columns > 0) ? Vector2i(frame % p_animation_columns, frame / p_animation_columns) : Vector2i(frame, 0));
+ for (int x = 0; x < p_size.x; x++) {
+ for (int y = 0; y < p_size.y; y++) {
+ Vector2i coords = frame_coords + Vector2i(x, y);
+ if (_coords_mapping_cache.has(coords) && _coords_mapping_cache[coords] != p_ignored_tile) {
+ return false;
+ }
+ if (coords.x >= atlas_grid_size.x || coords.y >= atlas_grid_size.y) {
+ if (!(_coords_mapping_cache.has(coords) && _coords_mapping_cache[coords] == p_ignored_tile)) {
+ return false; // Only accept tiles outside the atlas if they are part of the ignored tile.
+ }
+ }
+ }
+ }
+ }
+ return true;
+}
+
+Rect2i TileSetAtlasSource::get_tile_texture_region(Vector2i p_atlas_coords, int p_frame) const {
ERR_FAIL_COND_V_MSG(!tiles.has(p_atlas_coords), Rect2i(), vformat("TileSetAtlasSource has no tile at %s.", String(p_atlas_coords)));
+ ERR_FAIL_INDEX_V(p_frame, (int)tiles[p_atlas_coords].animation_frames_durations.size(), Rect2i());
+
+ const TileAlternativesData &tad = tiles[p_atlas_coords];
- Vector2i size_in_atlas = tiles[p_atlas_coords].size_in_atlas;
+ Vector2i size_in_atlas = tad.size_in_atlas;
Vector2 region_size = texture_region_size * size_in_atlas + separation * (size_in_atlas - Vector2i(1, 1));
- Vector2 origin = margins + (p_atlas_coords * (texture_region_size + separation));
+ Vector2i frame_coords = p_atlas_coords + (size_in_atlas + tad.animation_separation) * ((tad.animation_columns > 0) ? Vector2i(p_frame % tad.animation_columns, p_frame / tad.animation_columns) : Vector2i(p_frame, 0));
+ Vector2 origin = margins + (frame_coords * (texture_region_size + separation));
return Rect2(origin, region_size);
- ;
}
Vector2i TileSetAtlasSource::get_tile_effective_texture_offset(Vector2i p_atlas_coords, int p_alternative_tile) const {
@@ -3362,63 +3575,29 @@ Vector2i TileSetAtlasSource::get_tile_effective_texture_offset(Vector2i p_atlas_
margin = Vector2i(MAX(0, margin.x), MAX(0, margin.y));
Vector2i effective_texture_offset = Object::cast_to<TileData>(get_tile_data(p_atlas_coords, p_alternative_tile))->get_texture_offset();
if (ABS(effective_texture_offset.x) > margin.x || ABS(effective_texture_offset.y) > margin.y) {
- effective_texture_offset.x = CLAMP(effective_texture_offset.x, -margin.x, margin.x);
- effective_texture_offset.y = CLAMP(effective_texture_offset.y, -margin.y, margin.y);
+ effective_texture_offset = effective_texture_offset.clamp(-margin, margin);
}
return effective_texture_offset;
}
-bool TileSetAtlasSource::can_move_tile_in_atlas(Vector2i p_atlas_coords, Vector2i p_new_atlas_coords, Vector2i p_new_size) const {
- ERR_FAIL_COND_V_MSG(!tiles.has(p_atlas_coords), false, vformat("TileSetAtlasSource has no tile at %s.", String(p_atlas_coords)));
-
- Vector2i new_atlas_coords = (p_new_atlas_coords != INVALID_ATLAS_COORDS) ? p_new_atlas_coords : p_atlas_coords;
- if (new_atlas_coords.x < 0 || new_atlas_coords.y < 0) {
- return false;
- }
-
- Vector2i size = (p_new_size != Vector2i(-1, -1)) ? p_new_size : tiles[p_atlas_coords].size_in_atlas;
- ERR_FAIL_COND_V(size.x <= 0 || size.y <= 0, false);
-
- Size2i grid_size = get_atlas_grid_size();
- if (new_atlas_coords.x + size.x > grid_size.x || new_atlas_coords.y + size.y > grid_size.y) {
- return false;
- }
-
- Rect2i new_rect = Rect2i(new_atlas_coords, size);
- // Check if the new tile can fit in the new rect.
- for (int x = new_rect.position.x; x < new_rect.get_end().x; x++) {
- for (int y = new_rect.position.y; y < new_rect.get_end().y; y++) {
- Vector2i coords = get_tile_at_coords(Vector2i(x, y));
- if (coords != p_atlas_coords && coords != TileSetSource::INVALID_ATLAS_COORDS) {
- return false;
- }
- }
- }
-
- return true;
-}
-
void TileSetAtlasSource::move_tile_in_atlas(Vector2i p_atlas_coords, Vector2i p_new_atlas_coords, Vector2i p_new_size) {
- bool can_move = can_move_tile_in_atlas(p_atlas_coords, p_new_atlas_coords, p_new_size);
- ERR_FAIL_COND_MSG(!can_move, vformat("Cannot move tile at position %s with size %s. Tile already present.", p_new_atlas_coords, p_new_size));
+ ERR_FAIL_COND_MSG(!tiles.has(p_atlas_coords), vformat("TileSetAtlasSource has no tile at %s.", String(p_atlas_coords)));
+
+ TileAlternativesData &tad = tiles[p_atlas_coords];
// Compute the actual new rect from arguments.
Vector2i new_atlas_coords = (p_new_atlas_coords != INVALID_ATLAS_COORDS) ? p_new_atlas_coords : p_atlas_coords;
- Vector2i size = (p_new_size != Vector2i(-1, -1)) ? p_new_size : tiles[p_atlas_coords].size_in_atlas;
+ Vector2i new_size = (p_new_size != Vector2i(-1, -1)) ? p_new_size : tad.size_in_atlas;
- if (new_atlas_coords == p_atlas_coords && size == tiles[p_atlas_coords].size_in_atlas) {
+ if (new_atlas_coords == p_atlas_coords && new_size == tad.size_in_atlas) {
return;
}
- // Remove all covered positions from the mapping cache.
- Size2i old_size = tiles[p_atlas_coords].size_in_atlas;
- for (int x = 0; x < old_size.x; x++) {
- for (int y = 0; y < old_size.y; y++) {
- Vector2i coords = p_atlas_coords + Vector2i(x, y);
- _coords_mapping_cache.erase(coords);
- }
- }
+ bool room_for_tile = has_room_for_tile(new_atlas_coords, new_size, tad.animation_columns, tad.animation_separation, tad.animation_frames_durations.size(), p_atlas_coords);
+ ERR_FAIL_COND_MSG(!room_for_tile, vformat("Cannot move tile at position %s with size %s. Tile already present.", new_atlas_coords, new_size));
+
+ _clear_coords_mapping_cache(p_atlas_coords);
// Move the tile and update its size.
if (new_atlas_coords != p_atlas_coords) {
@@ -3429,15 +3608,9 @@ void TileSetAtlasSource::move_tile_in_atlas(Vector2i p_atlas_coords, Vector2i p_
tiles_ids.append(new_atlas_coords);
tiles_ids.sort();
}
- tiles[new_atlas_coords].size_in_atlas = size;
+ tiles[new_atlas_coords].size_in_atlas = new_size;
- // Add all covered positions to the mapping cache again.
- for (int x = 0; x < size.x; x++) {
- for (int y = 0; y < size.y; y++) {
- Vector2i coords = new_atlas_coords + Vector2i(x, y);
- _coords_mapping_cache[coords] = new_atlas_coords;
- }
- }
+ _create_coords_mapping_cache(new_atlas_coords);
emit_signal(SNAME("changed"));
}
@@ -3566,12 +3739,25 @@ void TileSetAtlasSource::_bind_methods() {
// Base tiles
ClassDB::bind_method(D_METHOD("create_tile", "atlas_coords", "size"), &TileSetAtlasSource::create_tile, DEFVAL(Vector2i(1, 1)));
ClassDB::bind_method(D_METHOD("remove_tile", "atlas_coords"), &TileSetAtlasSource::remove_tile); // Remove a tile. If p_tile_key.alternative_tile if different from 0, remove the alternative
- ClassDB::bind_method(D_METHOD("can_move_tile_in_atlas", "atlas_coords", "new_atlas_coords", "new_size"), &TileSetAtlasSource::can_move_tile_in_atlas, DEFVAL(INVALID_ATLAS_COORDS), DEFVAL(Vector2i(-1, -1)));
ClassDB::bind_method(D_METHOD("move_tile_in_atlas", "atlas_coords", "new_atlas_coords", "new_size"), &TileSetAtlasSource::move_tile_in_atlas, DEFVAL(INVALID_ATLAS_COORDS), DEFVAL(Vector2i(-1, -1)));
ClassDB::bind_method(D_METHOD("get_tile_size_in_atlas", "atlas_coords"), &TileSetAtlasSource::get_tile_size_in_atlas);
+ ClassDB::bind_method(D_METHOD("has_room_for_tile", "atlas_coords", "size", "animation_columns", "animation_separation", "frames_count", "ignored_tile"), &TileSetAtlasSource::has_room_for_tile, DEFVAL(INVALID_ATLAS_COORDS));
+
ClassDB::bind_method(D_METHOD("get_tile_at_coords", "atlas_coords"), &TileSetAtlasSource::get_tile_at_coords);
+ ClassDB::bind_method(D_METHOD("set_tile_animation_columns", "atlas_coords", "frame_columns"), &TileSetAtlasSource::set_tile_animation_columns);
+ ClassDB::bind_method(D_METHOD("get_tile_animation_columns", "atlas_coords"), &TileSetAtlasSource::get_tile_animation_columns);
+ ClassDB::bind_method(D_METHOD("set_tile_animation_separation", "atlas_coords", "separation"), &TileSetAtlasSource::set_tile_animation_separation);
+ ClassDB::bind_method(D_METHOD("get_tile_animation_separation", "atlas_coords"), &TileSetAtlasSource::get_tile_animation_separation);
+ ClassDB::bind_method(D_METHOD("set_tile_animation_speed", "atlas_coords", "speed"), &TileSetAtlasSource::set_tile_animation_speed);
+ ClassDB::bind_method(D_METHOD("get_tile_animation_speed", "atlas_coords"), &TileSetAtlasSource::get_tile_animation_speed);
+ ClassDB::bind_method(D_METHOD("set_tile_animation_frames_count", "atlas_coords", "frames_count"), &TileSetAtlasSource::set_tile_animation_frames_count);
+ ClassDB::bind_method(D_METHOD("get_tile_animation_frames_count", "atlas_coords"), &TileSetAtlasSource::get_tile_animation_frames_count);
+ ClassDB::bind_method(D_METHOD("set_tile_animation_frame_duration", "atlas_coords", "frame_index", "duration"), &TileSetAtlasSource::set_tile_animation_frame_duration);
+ ClassDB::bind_method(D_METHOD("get_tile_animation_frame_duration", "atlas_coords", "frame_index"), &TileSetAtlasSource::get_tile_animation_frame_duration);
+ ClassDB::bind_method(D_METHOD("get_tile_animation_total_duration", "atlas_coords"), &TileSetAtlasSource::get_tile_animation_total_duration);
+
// Alternative tiles
ClassDB::bind_method(D_METHOD("create_alternative_tile", "atlas_coords", "alternative_id_override"), &TileSetAtlasSource::create_alternative_tile, DEFVAL(INVALID_TILE_ALTERNATIVE));
ClassDB::bind_method(D_METHOD("remove_alternative_tile", "atlas_coords", "alternative_tile"), &TileSetAtlasSource::remove_alternative_tile);
@@ -3584,7 +3770,7 @@ void TileSetAtlasSource::_bind_methods() {
ClassDB::bind_method(D_METHOD("get_atlas_grid_size"), &TileSetAtlasSource::get_atlas_grid_size);
ClassDB::bind_method(D_METHOD("has_tiles_outside_texture"), &TileSetAtlasSource::has_tiles_outside_texture);
ClassDB::bind_method(D_METHOD("clear_tiles_outside_texture"), &TileSetAtlasSource::clear_tiles_outside_texture);
- ClassDB::bind_method(D_METHOD("get_tile_texture_region", "atlas_coords"), &TileSetAtlasSource::get_tile_texture_region);
+ ClassDB::bind_method(D_METHOD("get_tile_texture_region", "atlas_coords", "frame"), &TileSetAtlasSource::get_tile_texture_region, DEFVAL(0));
}
TileSetAtlasSource::~TileSetAtlasSource() {
@@ -3618,6 +3804,45 @@ void TileSetAtlasSource::_compute_next_alternative_id(const Vector2i p_atlas_coo
};
}
+void TileSetAtlasSource::_clear_coords_mapping_cache(Vector2i p_atlas_coords) {
+ ERR_FAIL_COND_MSG(!tiles.has(p_atlas_coords), vformat("TileSetAtlasSource has no tile at %s.", Vector2i(p_atlas_coords)));
+ TileAlternativesData &tad = tiles[p_atlas_coords];
+ for (int frame = 0; frame < (int)tad.animation_frames_durations.size(); frame++) {
+ Vector2i frame_coords = p_atlas_coords + (tad.size_in_atlas + tad.animation_separation) * ((tad.animation_columns > 0) ? Vector2i(frame % tad.animation_columns, frame / tad.animation_columns) : Vector2i(frame, 0));
+ for (int x = 0; x < tad.size_in_atlas.x; x++) {
+ for (int y = 0; y < tad.size_in_atlas.y; y++) {
+ Vector2i coords = frame_coords + Vector2i(x, y);
+ if (!_coords_mapping_cache.has(coords)) {
+ WARN_PRINT(vformat("TileSetAtlasSource has no cached tile at position %s, the position cache might be corrupted.", coords));
+ } else {
+ if (_coords_mapping_cache[coords] != p_atlas_coords) {
+ WARN_PRINT(vformat("The position cache at position %s is pointing to a wrong tile, the position cache might be corrupted.", coords));
+ }
+ _coords_mapping_cache.erase(coords);
+ }
+ }
+ }
+ }
+}
+
+void TileSetAtlasSource::_create_coords_mapping_cache(Vector2i p_atlas_coords) {
+ ERR_FAIL_COND_MSG(!tiles.has(p_atlas_coords), vformat("TileSetAtlasSource has no tile at %s.", Vector2i(p_atlas_coords)));
+
+ TileAlternativesData &tad = tiles[p_atlas_coords];
+ for (int frame = 0; frame < (int)tad.animation_frames_durations.size(); frame++) {
+ Vector2i frame_coords = p_atlas_coords + (tad.size_in_atlas + tad.animation_separation) * ((tad.animation_columns > 0) ? Vector2i(frame % tad.animation_columns, frame / tad.animation_columns) : Vector2i(frame, 0));
+ for (int x = 0; x < tad.size_in_atlas.x; x++) {
+ for (int y = 0; y < tad.size_in_atlas.y; y++) {
+ Vector2i coords = frame_coords + Vector2i(x, y);
+ if (_coords_mapping_cache.has(coords)) {
+ WARN_PRINT(vformat("The cache already has a tile for position %s, the position cache might be corrupted.", coords));
+ }
+ _coords_mapping_cache[coords] = p_atlas_coords;
+ }
+ }
+ }
+}
+
/////////////////////////////// TileSetScenesCollectionSource //////////////////////////////////////
void TileSetScenesCollectionSource::_compute_next_alternative_id() {
@@ -4091,9 +4316,26 @@ Ref<OccluderPolygon2D> TileData::get_occluder(int p_layer_id) const {
}
// Physics
-int TileData::get_collision_polygons_count(int p_layer_id) const {
- ERR_FAIL_INDEX_V(p_layer_id, physics.size(), 0);
- return physics[p_layer_id].polygons.size();
+void TileData::set_constant_linear_velocity(int p_layer_id, const Vector2 &p_velocity) {
+ ERR_FAIL_INDEX(p_layer_id, physics.size());
+ physics.write[p_layer_id].linear_velocity = p_velocity;
+ emit_signal(SNAME("changed"));
+}
+
+Vector2 TileData::get_constant_linear_velocity(int p_layer_id) const {
+ ERR_FAIL_INDEX_V(p_layer_id, physics.size(), Vector2());
+ return physics[p_layer_id].linear_velocity;
+}
+
+void TileData::set_constant_angular_velocity(int p_layer_id, real_t p_velocity) {
+ ERR_FAIL_INDEX(p_layer_id, physics.size());
+ physics.write[p_layer_id].angular_velocity = p_velocity;
+ emit_signal(SNAME("changed"));
+}
+
+real_t TileData::get_constant_angular_velocity(int p_layer_id) const {
+ ERR_FAIL_INDEX_V(p_layer_id, physics.size(), 0.0);
+ return physics[p_layer_id].angular_velocity;
}
void TileData::set_collision_polygons_count(int p_layer_id, int p_polygons_count) {
@@ -4104,6 +4346,11 @@ void TileData::set_collision_polygons_count(int p_layer_id, int p_polygons_count
emit_signal(SNAME("changed"));
}
+int TileData::get_collision_polygons_count(int p_layer_id) const {
+ ERR_FAIL_INDEX_V(p_layer_id, physics.size(), 0);
+ return physics[p_layer_id].polygons.size();
+}
+
void TileData::add_collision_polygon(int p_layer_id) {
ERR_FAIL_INDEX(p_layer_id, physics.size());
physics.write[p_layer_id].polygons.push_back(PhysicsLayerTileData::PolygonShapeTileData());
@@ -4305,11 +4552,7 @@ bool TileData::_set(const StringName &p_name, const Variant &p_value) {
// Physics layers.
int layer_index = components[0].trim_prefix("physics_layer_").to_int();
ERR_FAIL_COND_V(layer_index < 0, false);
- if (components.size() == 2 && components[1] == "polygons_count") {
- if (p_value.get_type() != Variant::INT) {
- return false;
- }
-
+ if (components.size() == 2) {
if (layer_index >= physics.size()) {
if (tile_set) {
return false;
@@ -4317,8 +4560,19 @@ bool TileData::_set(const StringName &p_name, const Variant &p_value) {
physics.resize(layer_index + 1);
}
}
- set_collision_polygons_count(layer_index, p_value);
- return true;
+ if (components[1] == "linear_velocity") {
+ set_constant_linear_velocity(layer_index, p_value);
+ return true;
+ } else if (components[1] == "angular_velocity") {
+ set_constant_angular_velocity(layer_index, p_value);
+ return true;
+ } else if (components[1] == "polygons_count") {
+ if (p_value.get_type() != Variant::INT) {
+ return false;
+ }
+ set_collision_polygons_count(layer_index, p_value);
+ return true;
+ }
} else if (components.size() == 3 && components[1].begins_with("polygon_") && components[1].trim_prefix("polygon_").is_valid_int()) {
int polygon_index = components[1].trim_prefix("polygon_").to_int();
ERR_FAIL_COND_V(polygon_index < 0, false);
@@ -4420,9 +4674,18 @@ bool TileData::_get(const StringName &p_name, Variant &r_ret) const {
if (layer_index >= physics.size()) {
return false;
}
- if (components.size() == 2 && components[1] == "polygons_count") {
- r_ret = get_collision_polygons_count(layer_index);
- return true;
+
+ if (components.size() == 2) {
+ if (components[1] == "linear_velocity") {
+ r_ret = get_constant_linear_velocity(layer_index);
+ return true;
+ } else if (components[1] == "angular_velocity") {
+ r_ret = get_constant_angular_velocity(layer_index);
+ return true;
+ } else if (components[1] == "polygons_count") {
+ r_ret = get_collision_polygons_count(layer_index);
+ return true;
+ }
} else if (components.size() == 3 && components[1].begins_with("polygon_") && components[1].trim_prefix("polygon_").is_valid_int()) {
int polygon_index = components[1].trim_prefix("polygon_").to_int();
ERR_FAIL_COND_V(polygon_index < 0, false);
@@ -4493,6 +4756,8 @@ void TileData::_get_property_list(List<PropertyInfo> *p_list) const {
// Physics layers.
p_list->push_back(PropertyInfo(Variant::NIL, "Physics", PROPERTY_HINT_NONE, "", PROPERTY_USAGE_GROUP));
for (int i = 0; i < physics.size(); i++) {
+ p_list->push_back(PropertyInfo(Variant::VECTOR2, vformat("physics_layer_%d/linear_velocity", i), PROPERTY_HINT_NONE));
+ p_list->push_back(PropertyInfo(Variant::FLOAT, vformat("physics_layer_%d/angular_velocity", i), PROPERTY_HINT_NONE));
p_list->push_back(PropertyInfo(Variant::INT, vformat("physics_layer_%d/polygons_count", i), PROPERTY_HINT_NONE, "", PROPERTY_USAGE_EDITOR));
for (int j = 0; j < physics[i].polygons.size(); j++) {
@@ -4582,8 +4847,12 @@ void TileData::_bind_methods() {
ClassDB::bind_method(D_METHOD("get_occluder", "layer_id"), &TileData::get_occluder);
// Physics.
- ClassDB::bind_method(D_METHOD("get_collision_polygons_count", "layer_id"), &TileData::get_collision_polygons_count);
+ ClassDB::bind_method(D_METHOD("set_constant_linear_velocity", "layer_id", "velocity"), &TileData::set_constant_linear_velocity);
+ ClassDB::bind_method(D_METHOD("get_constant_linear_velocity", "layer_id"), &TileData::get_constant_linear_velocity);
+ ClassDB::bind_method(D_METHOD("set_constant_angular_velocity", "layer_id", "velocity"), &TileData::set_constant_angular_velocity);
+ ClassDB::bind_method(D_METHOD("get_constant_angular_velocity", "layer_id"), &TileData::get_constant_angular_velocity);
ClassDB::bind_method(D_METHOD("set_collision_polygons_count", "layer_id", "polygons_count"), &TileData::set_collision_polygons_count);
+ ClassDB::bind_method(D_METHOD("get_collision_polygons_count", "layer_id"), &TileData::get_collision_polygons_count);
ClassDB::bind_method(D_METHOD("add_collision_polygon", "layer_id"), &TileData::add_collision_polygon);
ClassDB::bind_method(D_METHOD("remove_collision_polygon", "layer_id", "polygon_index"), &TileData::remove_collision_polygon);
ClassDB::bind_method(D_METHOD("set_collision_polygon_points", "layer_id", "polygon_index", "polygon"), &TileData::set_collision_polygon_points);
diff --git a/scene/resources/tile_set.h b/scene/resources/tile_set.h
index ba7207241a..42b82957fb 100644
--- a/scene/resources/tile_set.h
+++ b/scene/resources/tile_set.h
@@ -447,16 +447,23 @@ public:
class TileSetAtlasSource : public TileSetSource {
GDCLASS(TileSetAtlasSource, TileSetSource);
-public:
+private:
struct TileAlternativesData {
Vector2i size_in_atlas = Vector2i(1, 1);
Vector2i texture_offset;
+
+ // Animation
+ int animation_columns = 0;
+ Vector2i animation_separation;
+ real_t animation_speed = 1.0;
+ LocalVector<real_t> animation_frames_durations;
+
+ // Alternatives
Map<int, TileData *> alternatives;
Vector<int> alternatives_ids;
int next_alternative_id = 1;
};
-private:
Ref<Texture2D> texture;
Vector2i margins;
Vector2i separation;
@@ -471,6 +478,9 @@ private:
void _compute_next_alternative_id(const Vector2i p_atlas_coords);
+ void _create_coords_mapping_cache(Vector2i p_atlas_coords);
+ void _clear_coords_mapping_cache(Vector2i p_atlas_coords);
+
protected:
bool _set(const StringName &p_name, const Variant &p_value);
bool _get(const StringName &p_name, Variant &r_ret) const;
@@ -513,18 +523,32 @@ public:
Vector2i get_texture_region_size() const;
// Base tiles.
- void create_tile(const Vector2i p_atlas_coords, const Vector2i p_size = Vector2i(1, 1)); // Create a tile if it does not exists, or add alternative tile if it does.
- void remove_tile(Vector2i p_atlas_coords); // Remove a tile. If p_tile_key.alternative_tile if different from 0, remove the alternative
+ void create_tile(const Vector2i p_atlas_coords, const Vector2i p_size = Vector2i(1, 1));
+ void remove_tile(Vector2i p_atlas_coords);
virtual bool has_tile(Vector2i p_atlas_coords) const override;
- bool can_move_tile_in_atlas(Vector2i p_atlas_coords, Vector2i p_new_atlas_coords = INVALID_ATLAS_COORDS, Vector2i p_new_size = Vector2i(-1, -1)) const;
void move_tile_in_atlas(Vector2i p_atlas_coords, Vector2i p_new_atlas_coords = INVALID_ATLAS_COORDS, Vector2i p_new_size = Vector2i(-1, -1));
Vector2i get_tile_size_in_atlas(Vector2i p_atlas_coords) const;
virtual int get_tiles_count() const override;
virtual Vector2i get_tile_id(int p_index) const override;
+ bool has_room_for_tile(Vector2i p_atlas_coords, Vector2i p_size, int p_animation_columns, Vector2i p_animation_separation, int p_frames_count, Vector2i p_ignored_tile = INVALID_ATLAS_COORDS) const;
+
Vector2i get_tile_at_coords(Vector2i p_atlas_coords) const;
+ // Animation.
+ void set_tile_animation_columns(const Vector2i p_atlas_coords, int p_frame_columns);
+ int get_tile_animation_columns(const Vector2i p_atlas_coords) const;
+ void set_tile_animation_separation(const Vector2i p_atlas_coords, const Vector2i p_separation);
+ Vector2i get_tile_animation_separation(const Vector2i p_atlas_coords) const;
+ void set_tile_animation_speed(const Vector2i p_atlas_coords, real_t p_speed);
+ real_t get_tile_animation_speed(const Vector2i p_atlas_coords) const;
+ void set_tile_animation_frames_count(const Vector2i p_atlas_coords, int p_frames_count);
+ int get_tile_animation_frames_count(const Vector2i p_atlas_coords) const;
+ void set_tile_animation_frame_duration(const Vector2i p_atlas_coords, int p_frame_index, real_t p_duration);
+ real_t get_tile_animation_frame_duration(const Vector2i p_atlas_coords, int p_frame_index) const;
+ real_t get_tile_animation_total_duration(const Vector2i p_atlas_coords) const;
+
// Alternative tiles.
int create_alternative_tile(const Vector2i p_atlas_coords, int p_alternative_id_override = -1);
void remove_alternative_tile(const Vector2i p_atlas_coords, int p_alternative_tile);
@@ -542,7 +566,7 @@ public:
Vector2i get_atlas_grid_size() const;
bool has_tiles_outside_texture();
void clear_tiles_outside_texture();
- Rect2i get_tile_texture_region(Vector2i p_atlas_coords) const;
+ Rect2i get_tile_texture_region(Vector2i p_atlas_coords, int p_frame = 0) const;
Vector2i get_tile_effective_texture_offset(Vector2i p_atlas_coords, int p_alternative_tile) const;
~TileSetAtlasSource();
@@ -621,6 +645,8 @@ private:
float one_way_margin = 1.0;
};
+ Vector2 linear_velocity;
+ float angular_velocity;
Vector<PolygonShapeTileData> polygons;
};
Vector<PhysicsLayerTileData> physics;
@@ -694,8 +720,12 @@ public:
Ref<OccluderPolygon2D> get_occluder(int p_layer_id) const;
// Physics
- int get_collision_polygons_count(int p_layer_id) const;
+ void set_constant_linear_velocity(int p_layer_id, const Vector2 &p_velocity);
+ Vector2 get_constant_linear_velocity(int p_layer_id) const;
+ void set_constant_angular_velocity(int p_layer_id, real_t p_velocity);
+ real_t get_constant_angular_velocity(int p_layer_id) const;
void set_collision_polygons_count(int p_layer_id, int p_shapes_count);
+ int get_collision_polygons_count(int p_layer_id) const;
void add_collision_polygon(int p_layer_id);
void remove_collision_polygon(int p_layer_id, int p_polygon_index);
void set_collision_polygon_points(int p_layer_id, int p_polygon_index, Vector<Vector2> p_polygon);
diff --git a/servers/physics_2d/body_2d_sw.cpp b/servers/physics_2d/body_2d_sw.cpp
index edd769aa9a..38b98b7bca 100644
--- a/servers/physics_2d/body_2d_sw.cpp
+++ b/servers/physics_2d/body_2d_sw.cpp
@@ -113,7 +113,7 @@ void Body2DSW::update_mass_properties() {
_inv_inertia = 0;
_inv_mass = 0;
} break;
- case PhysicsServer2D::BODY_MODE_DYNAMIC_LOCKED: {
+ case PhysicsServer2D::BODY_MODE_DYNAMIC_LINEAR: {
_inv_inertia = 0;
_inv_mass = 1.0 / mass;
@@ -257,7 +257,7 @@ void Body2DSW::set_mode(PhysicsServer2D::BodyMode p_mode) {
set_active(true);
} break;
- case PhysicsServer2D::BODY_MODE_DYNAMIC_LOCKED: {
+ case PhysicsServer2D::BODY_MODE_DYNAMIC_LINEAR: {
_inv_mass = mass > 0 ? (1.0 / mass) : 0;
_inv_inertia = 0;
angular_velocity = 0;
diff --git a/servers/physics_2d/body_direct_state_2d_sw.cpp b/servers/physics_2d/body_direct_state_2d_sw.cpp
index 58250c3077..22a5fc2b36 100644
--- a/servers/physics_2d/body_direct_state_2d_sw.cpp
+++ b/servers/physics_2d/body_direct_state_2d_sw.cpp
@@ -59,6 +59,7 @@ real_t PhysicsDirectBodyState2DSW::get_inverse_inertia() const {
}
void PhysicsDirectBodyState2DSW::set_linear_velocity(const Vector2 &p_velocity) {
+ body->set_active(true);
body->set_linear_velocity(p_velocity);
}
@@ -67,6 +68,7 @@ Vector2 PhysicsDirectBodyState2DSW::get_linear_velocity() const {
}
void PhysicsDirectBodyState2DSW::set_angular_velocity(real_t p_velocity) {
+ body->set_active(true);
body->set_angular_velocity(p_velocity);
}
@@ -87,26 +89,32 @@ Vector2 PhysicsDirectBodyState2DSW::get_velocity_at_local_position(const Vector2
}
void PhysicsDirectBodyState2DSW::add_central_force(const Vector2 &p_force) {
+ body->set_active(true);
body->add_central_force(p_force);
}
void PhysicsDirectBodyState2DSW::add_force(const Vector2 &p_force, const Vector2 &p_position) {
+ body->set_active(true);
body->add_force(p_force, p_position);
}
void PhysicsDirectBodyState2DSW::add_torque(real_t p_torque) {
+ body->set_active(true);
body->add_torque(p_torque);
}
void PhysicsDirectBodyState2DSW::apply_central_impulse(const Vector2 &p_impulse) {
+ body->set_active(true);
body->apply_central_impulse(p_impulse);
}
void PhysicsDirectBodyState2DSW::apply_impulse(const Vector2 &p_impulse, const Vector2 &p_position) {
+ body->set_active(true);
body->apply_impulse(p_impulse, p_position);
}
void PhysicsDirectBodyState2DSW::apply_torque_impulse(real_t p_torque) {
+ body->set_active(true);
body->apply_torque_impulse(p_torque);
}
@@ -167,7 +175,7 @@ Variant PhysicsDirectBodyState2DSW::get_contact_collider_shape_metadata(int p_co
if (!PhysicsServer2DSW::singletonsw->body_owner.owns(body->contacts[p_contact_idx].collider)) {
return Variant();
}
- Body2DSW *other = PhysicsServer2DSW::singletonsw->body_owner.getornull(body->contacts[p_contact_idx].collider);
+ Body2DSW *other = PhysicsServer2DSW::singletonsw->body_owner.get_or_null(body->contacts[p_contact_idx].collider);
int sidx = body->contacts[p_contact_idx].collider_shape;
if (sidx < 0 || sidx >= other->get_shape_count()) {
diff --git a/servers/physics_2d/physics_server_2d_sw.cpp b/servers/physics_2d/physics_server_2d_sw.cpp
index e052258a92..b4338217df 100644
--- a/servers/physics_2d/physics_server_2d_sw.cpp
+++ b/servers/physics_2d/physics_server_2d_sw.cpp
@@ -112,32 +112,32 @@ RID PhysicsServer2DSW::concave_polygon_shape_create() {
}
void PhysicsServer2DSW::shape_set_data(RID p_shape, const Variant &p_data) {
- Shape2DSW *shape = shape_owner.getornull(p_shape);
+ Shape2DSW *shape = shape_owner.get_or_null(p_shape);
ERR_FAIL_COND(!shape);
shape->set_data(p_data);
};
void PhysicsServer2DSW::shape_set_custom_solver_bias(RID p_shape, real_t p_bias) {
- Shape2DSW *shape = shape_owner.getornull(p_shape);
+ Shape2DSW *shape = shape_owner.get_or_null(p_shape);
ERR_FAIL_COND(!shape);
shape->set_custom_bias(p_bias);
}
PhysicsServer2D::ShapeType PhysicsServer2DSW::shape_get_type(RID p_shape) const {
- const Shape2DSW *shape = shape_owner.getornull(p_shape);
+ const Shape2DSW *shape = shape_owner.get_or_null(p_shape);
ERR_FAIL_COND_V(!shape, SHAPE_CUSTOM);
return shape->get_type();
};
Variant PhysicsServer2DSW::shape_get_data(RID p_shape) const {
- const Shape2DSW *shape = shape_owner.getornull(p_shape);
+ const Shape2DSW *shape = shape_owner.get_or_null(p_shape);
ERR_FAIL_COND_V(!shape, Variant());
ERR_FAIL_COND_V(!shape->is_configured(), Variant());
return shape->get_data();
};
real_t PhysicsServer2DSW::shape_get_custom_solver_bias(RID p_shape) const {
- const Shape2DSW *shape = shape_owner.getornull(p_shape);
+ const Shape2DSW *shape = shape_owner.get_or_null(p_shape);
ERR_FAIL_COND_V(!shape, 0);
return shape->get_custom_bias();
}
@@ -193,9 +193,9 @@ void PhysicsServer2DSW::_shape_col_cbk(const Vector2 &p_point_A, const Vector2 &
}
bool PhysicsServer2DSW::shape_collide(RID p_shape_A, const Transform2D &p_xform_A, const Vector2 &p_motion_A, RID p_shape_B, const Transform2D &p_xform_B, const Vector2 &p_motion_B, Vector2 *r_results, int p_result_max, int &r_result_count) {
- Shape2DSW *shape_A = shape_owner.getornull(p_shape_A);
+ Shape2DSW *shape_A = shape_owner.get_or_null(p_shape_A);
ERR_FAIL_COND_V(!shape_A, false);
- Shape2DSW *shape_B = shape_owner.getornull(p_shape_B);
+ Shape2DSW *shape_B = shape_owner.get_or_null(p_shape_B);
ERR_FAIL_COND_V(!shape_B, false);
if (p_result_max == 0) {
@@ -218,7 +218,7 @@ RID PhysicsServer2DSW::space_create() {
RID id = space_owner.make_rid(space);
space->set_self(id);
RID area_id = area_create();
- Area2DSW *area = area_owner.getornull(area_id);
+ Area2DSW *area = area_owner.get_or_null(area_id);
ERR_FAIL_COND_V(!area, RID());
space->set_default_area(area);
area->set_space(space);
@@ -228,7 +228,7 @@ RID PhysicsServer2DSW::space_create() {
};
void PhysicsServer2DSW::space_set_active(RID p_space, bool p_active) {
- Space2DSW *space = space_owner.getornull(p_space);
+ Space2DSW *space = space_owner.get_or_null(p_space);
ERR_FAIL_COND(!space);
if (p_active) {
active_spaces.insert(space);
@@ -238,45 +238,45 @@ void PhysicsServer2DSW::space_set_active(RID p_space, bool p_active) {
}
bool PhysicsServer2DSW::space_is_active(RID p_space) const {
- const Space2DSW *space = space_owner.getornull(p_space);
+ const Space2DSW *space = space_owner.get_or_null(p_space);
ERR_FAIL_COND_V(!space, false);
return active_spaces.has(space);
}
void PhysicsServer2DSW::space_set_param(RID p_space, SpaceParameter p_param, real_t p_value) {
- Space2DSW *space = space_owner.getornull(p_space);
+ Space2DSW *space = space_owner.get_or_null(p_space);
ERR_FAIL_COND(!space);
space->set_param(p_param, p_value);
}
real_t PhysicsServer2DSW::space_get_param(RID p_space, SpaceParameter p_param) const {
- const Space2DSW *space = space_owner.getornull(p_space);
+ const Space2DSW *space = space_owner.get_or_null(p_space);
ERR_FAIL_COND_V(!space, 0);
return space->get_param(p_param);
}
void PhysicsServer2DSW::space_set_debug_contacts(RID p_space, int p_max_contacts) {
- Space2DSW *space = space_owner.getornull(p_space);
+ Space2DSW *space = space_owner.get_or_null(p_space);
ERR_FAIL_COND(!space);
space->set_debug_contacts(p_max_contacts);
}
Vector<Vector2> PhysicsServer2DSW::space_get_contacts(RID p_space) const {
- Space2DSW *space = space_owner.getornull(p_space);
+ Space2DSW *space = space_owner.get_or_null(p_space);
ERR_FAIL_COND_V(!space, Vector<Vector2>());
return space->get_debug_contacts();
}
int PhysicsServer2DSW::space_get_contact_count(RID p_space) const {
- Space2DSW *space = space_owner.getornull(p_space);
+ Space2DSW *space = space_owner.get_or_null(p_space);
ERR_FAIL_COND_V(!space, 0);
return space->get_debug_contact_count();
}
PhysicsDirectSpaceState2D *PhysicsServer2DSW::space_get_direct_state(RID p_space) {
- Space2DSW *space = space_owner.getornull(p_space);
+ Space2DSW *space = space_owner.get_or_null(p_space);
ERR_FAIL_COND_V(!space, nullptr);
ERR_FAIL_COND_V_MSG((using_threads && !doing_sync) || space->is_locked(), nullptr, "Space state is inaccessible right now, wait for iteration or physics process notification.");
@@ -291,12 +291,12 @@ RID PhysicsServer2DSW::area_create() {
};
void PhysicsServer2DSW::area_set_space(RID p_area, RID p_space) {
- Area2DSW *area = area_owner.getornull(p_area);
+ Area2DSW *area = area_owner.get_or_null(p_area);
ERR_FAIL_COND(!area);
Space2DSW *space = nullptr;
if (p_space.is_valid()) {
- space = space_owner.getornull(p_space);
+ space = space_owner.get_or_null(p_space);
ERR_FAIL_COND(!space);
}
@@ -309,7 +309,7 @@ void PhysicsServer2DSW::area_set_space(RID p_area, RID p_space) {
};
RID PhysicsServer2DSW::area_get_space(RID p_area) const {
- Area2DSW *area = area_owner.getornull(p_area);
+ Area2DSW *area = area_owner.get_or_null(p_area);
ERR_FAIL_COND_V(!area, RID());
Space2DSW *space = area->get_space();
@@ -320,34 +320,34 @@ RID PhysicsServer2DSW::area_get_space(RID p_area) const {
};
void PhysicsServer2DSW::area_set_space_override_mode(RID p_area, AreaSpaceOverrideMode p_mode) {
- Area2DSW *area = area_owner.getornull(p_area);
+ Area2DSW *area = area_owner.get_or_null(p_area);
ERR_FAIL_COND(!area);
area->set_space_override_mode(p_mode);
}
PhysicsServer2D::AreaSpaceOverrideMode PhysicsServer2DSW::area_get_space_override_mode(RID p_area) const {
- const Area2DSW *area = area_owner.getornull(p_area);
+ const Area2DSW *area = area_owner.get_or_null(p_area);
ERR_FAIL_COND_V(!area, AREA_SPACE_OVERRIDE_DISABLED);
return area->get_space_override_mode();
}
void PhysicsServer2DSW::area_add_shape(RID p_area, RID p_shape, const Transform2D &p_transform, bool p_disabled) {
- Area2DSW *area = area_owner.getornull(p_area);
+ Area2DSW *area = area_owner.get_or_null(p_area);
ERR_FAIL_COND(!area);
- Shape2DSW *shape = shape_owner.getornull(p_shape);
+ Shape2DSW *shape = shape_owner.get_or_null(p_shape);
ERR_FAIL_COND(!shape);
area->add_shape(shape, p_transform, p_disabled);
}
void PhysicsServer2DSW::area_set_shape(RID p_area, int p_shape_idx, RID p_shape) {
- Area2DSW *area = area_owner.getornull(p_area);
+ Area2DSW *area = area_owner.get_or_null(p_area);
ERR_FAIL_COND(!area);
- Shape2DSW *shape = shape_owner.getornull(p_shape);
+ Shape2DSW *shape = shape_owner.get_or_null(p_shape);
ERR_FAIL_COND(!shape);
ERR_FAIL_COND(!shape->is_configured());
@@ -355,14 +355,14 @@ void PhysicsServer2DSW::area_set_shape(RID p_area, int p_shape_idx, RID p_shape)
}
void PhysicsServer2DSW::area_set_shape_transform(RID p_area, int p_shape_idx, const Transform2D &p_transform) {
- Area2DSW *area = area_owner.getornull(p_area);
+ Area2DSW *area = area_owner.get_or_null(p_area);
ERR_FAIL_COND(!area);
area->set_shape_transform(p_shape_idx, p_transform);
}
void PhysicsServer2DSW::area_set_shape_disabled(RID p_area, int p_shape, bool p_disabled) {
- Area2DSW *area = area_owner.getornull(p_area);
+ Area2DSW *area = area_owner.get_or_null(p_area);
ERR_FAIL_COND(!area);
ERR_FAIL_INDEX(p_shape, area->get_shape_count());
FLUSH_QUERY_CHECK(area);
@@ -371,14 +371,14 @@ void PhysicsServer2DSW::area_set_shape_disabled(RID p_area, int p_shape, bool p_
}
int PhysicsServer2DSW::area_get_shape_count(RID p_area) const {
- Area2DSW *area = area_owner.getornull(p_area);
+ Area2DSW *area = area_owner.get_or_null(p_area);
ERR_FAIL_COND_V(!area, -1);
return area->get_shape_count();
}
RID PhysicsServer2DSW::area_get_shape(RID p_area, int p_shape_idx) const {
- Area2DSW *area = area_owner.getornull(p_area);
+ Area2DSW *area = area_owner.get_or_null(p_area);
ERR_FAIL_COND_V(!area, RID());
Shape2DSW *shape = area->get_shape(p_shape_idx);
@@ -388,21 +388,21 @@ RID PhysicsServer2DSW::area_get_shape(RID p_area, int p_shape_idx) const {
}
Transform2D PhysicsServer2DSW::area_get_shape_transform(RID p_area, int p_shape_idx) const {
- Area2DSW *area = area_owner.getornull(p_area);
+ Area2DSW *area = area_owner.get_or_null(p_area);
ERR_FAIL_COND_V(!area, Transform2D());
return area->get_shape_transform(p_shape_idx);
}
void PhysicsServer2DSW::area_remove_shape(RID p_area, int p_shape_idx) {
- Area2DSW *area = area_owner.getornull(p_area);
+ Area2DSW *area = area_owner.get_or_null(p_area);
ERR_FAIL_COND(!area);
area->remove_shape(p_shape_idx);
}
void PhysicsServer2DSW::area_clear_shapes(RID p_area) {
- Area2DSW *area = area_owner.getornull(p_area);
+ Area2DSW *area = area_owner.get_or_null(p_area);
ERR_FAIL_COND(!area);
while (area->get_shape_count()) {
@@ -412,86 +412,86 @@ void PhysicsServer2DSW::area_clear_shapes(RID p_area) {
void PhysicsServer2DSW::area_attach_object_instance_id(RID p_area, ObjectID p_id) {
if (space_owner.owns(p_area)) {
- Space2DSW *space = space_owner.getornull(p_area);
+ Space2DSW *space = space_owner.get_or_null(p_area);
p_area = space->get_default_area()->get_self();
}
- Area2DSW *area = area_owner.getornull(p_area);
+ Area2DSW *area = area_owner.get_or_null(p_area);
ERR_FAIL_COND(!area);
area->set_instance_id(p_id);
}
ObjectID PhysicsServer2DSW::area_get_object_instance_id(RID p_area) const {
if (space_owner.owns(p_area)) {
- Space2DSW *space = space_owner.getornull(p_area);
+ Space2DSW *space = space_owner.get_or_null(p_area);
p_area = space->get_default_area()->get_self();
}
- Area2DSW *area = area_owner.getornull(p_area);
+ Area2DSW *area = area_owner.get_or_null(p_area);
ERR_FAIL_COND_V(!area, ObjectID());
return area->get_instance_id();
}
void PhysicsServer2DSW::area_attach_canvas_instance_id(RID p_area, ObjectID p_id) {
if (space_owner.owns(p_area)) {
- Space2DSW *space = space_owner.getornull(p_area);
+ Space2DSW *space = space_owner.get_or_null(p_area);
p_area = space->get_default_area()->get_self();
}
- Area2DSW *area = area_owner.getornull(p_area);
+ Area2DSW *area = area_owner.get_or_null(p_area);
ERR_FAIL_COND(!area);
area->set_canvas_instance_id(p_id);
}
ObjectID PhysicsServer2DSW::area_get_canvas_instance_id(RID p_area) const {
if (space_owner.owns(p_area)) {
- Space2DSW *space = space_owner.getornull(p_area);
+ Space2DSW *space = space_owner.get_or_null(p_area);
p_area = space->get_default_area()->get_self();
}
- Area2DSW *area = area_owner.getornull(p_area);
+ Area2DSW *area = area_owner.get_or_null(p_area);
ERR_FAIL_COND_V(!area, ObjectID());
return area->get_canvas_instance_id();
}
void PhysicsServer2DSW::area_set_param(RID p_area, AreaParameter p_param, const Variant &p_value) {
if (space_owner.owns(p_area)) {
- Space2DSW *space = space_owner.getornull(p_area);
+ Space2DSW *space = space_owner.get_or_null(p_area);
p_area = space->get_default_area()->get_self();
}
- Area2DSW *area = area_owner.getornull(p_area);
+ Area2DSW *area = area_owner.get_or_null(p_area);
ERR_FAIL_COND(!area);
area->set_param(p_param, p_value);
};
void PhysicsServer2DSW::area_set_transform(RID p_area, const Transform2D &p_transform) {
- Area2DSW *area = area_owner.getornull(p_area);
+ Area2DSW *area = area_owner.get_or_null(p_area);
ERR_FAIL_COND(!area);
area->set_transform(p_transform);
};
Variant PhysicsServer2DSW::area_get_param(RID p_area, AreaParameter p_param) const {
if (space_owner.owns(p_area)) {
- Space2DSW *space = space_owner.getornull(p_area);
+ Space2DSW *space = space_owner.get_or_null(p_area);
p_area = space->get_default_area()->get_self();
}
- Area2DSW *area = area_owner.getornull(p_area);
+ Area2DSW *area = area_owner.get_or_null(p_area);
ERR_FAIL_COND_V(!area, Variant());
return area->get_param(p_param);
};
Transform2D PhysicsServer2DSW::area_get_transform(RID p_area) const {
- Area2DSW *area = area_owner.getornull(p_area);
+ Area2DSW *area = area_owner.get_or_null(p_area);
ERR_FAIL_COND_V(!area, Transform2D());
return area->get_transform();
};
void PhysicsServer2DSW::area_set_pickable(RID p_area, bool p_pickable) {
- Area2DSW *area = area_owner.getornull(p_area);
+ Area2DSW *area = area_owner.get_or_null(p_area);
ERR_FAIL_COND(!area);
area->set_pickable(p_pickable);
}
void PhysicsServer2DSW::area_set_monitorable(RID p_area, bool p_monitorable) {
- Area2DSW *area = area_owner.getornull(p_area);
+ Area2DSW *area = area_owner.get_or_null(p_area);
ERR_FAIL_COND(!area);
FLUSH_QUERY_CHECK(area);
@@ -499,28 +499,28 @@ void PhysicsServer2DSW::area_set_monitorable(RID p_area, bool p_monitorable) {
}
void PhysicsServer2DSW::area_set_collision_mask(RID p_area, uint32_t p_mask) {
- Area2DSW *area = area_owner.getornull(p_area);
+ Area2DSW *area = area_owner.get_or_null(p_area);
ERR_FAIL_COND(!area);
area->set_collision_mask(p_mask);
}
void PhysicsServer2DSW::area_set_collision_layer(RID p_area, uint32_t p_layer) {
- Area2DSW *area = area_owner.getornull(p_area);
+ Area2DSW *area = area_owner.get_or_null(p_area);
ERR_FAIL_COND(!area);
area->set_collision_layer(p_layer);
}
void PhysicsServer2DSW::area_set_monitor_callback(RID p_area, Object *p_receiver, const StringName &p_method) {
- Area2DSW *area = area_owner.getornull(p_area);
+ Area2DSW *area = area_owner.get_or_null(p_area);
ERR_FAIL_COND(!area);
area->set_monitor_callback(p_receiver ? p_receiver->get_instance_id() : ObjectID(), p_method);
}
void PhysicsServer2DSW::area_set_area_monitor_callback(RID p_area, Object *p_receiver, const StringName &p_method) {
- Area2DSW *area = area_owner.getornull(p_area);
+ Area2DSW *area = area_owner.get_or_null(p_area);
ERR_FAIL_COND(!area);
area->set_area_monitor_callback(p_receiver ? p_receiver->get_instance_id() : ObjectID(), p_method);
@@ -536,11 +536,11 @@ RID PhysicsServer2DSW::body_create() {
}
void PhysicsServer2DSW::body_set_space(RID p_body, RID p_space) {
- Body2DSW *body = body_owner.getornull(p_body);
+ Body2DSW *body = body_owner.get_or_null(p_body);
ERR_FAIL_COND(!body);
Space2DSW *space = nullptr;
if (p_space.is_valid()) {
- space = space_owner.getornull(p_space);
+ space = space_owner.get_or_null(p_space);
ERR_FAIL_COND(!space);
}
@@ -553,7 +553,7 @@ void PhysicsServer2DSW::body_set_space(RID p_body, RID p_space) {
};
RID PhysicsServer2DSW::body_get_space(RID p_body) const {
- Body2DSW *body = body_owner.getornull(p_body);
+ Body2DSW *body = body_owner.get_or_null(p_body);
ERR_FAIL_COND_V(!body, RID());
Space2DSW *space = body->get_space();
@@ -564,7 +564,7 @@ RID PhysicsServer2DSW::body_get_space(RID p_body) const {
};
void PhysicsServer2DSW::body_set_mode(RID p_body, BodyMode p_mode) {
- Body2DSW *body = body_owner.getornull(p_body);
+ Body2DSW *body = body_owner.get_or_null(p_body);
ERR_FAIL_COND(!body);
FLUSH_QUERY_CHECK(body);
@@ -572,27 +572,27 @@ void PhysicsServer2DSW::body_set_mode(RID p_body, BodyMode p_mode) {
};
PhysicsServer2D::BodyMode PhysicsServer2DSW::body_get_mode(RID p_body) const {
- Body2DSW *body = body_owner.getornull(p_body);
+ Body2DSW *body = body_owner.get_or_null(p_body);
ERR_FAIL_COND_V(!body, BODY_MODE_STATIC);
return body->get_mode();
};
void PhysicsServer2DSW::body_add_shape(RID p_body, RID p_shape, const Transform2D &p_transform, bool p_disabled) {
- Body2DSW *body = body_owner.getornull(p_body);
+ Body2DSW *body = body_owner.get_or_null(p_body);
ERR_FAIL_COND(!body);
- Shape2DSW *shape = shape_owner.getornull(p_shape);
+ Shape2DSW *shape = shape_owner.get_or_null(p_shape);
ERR_FAIL_COND(!shape);
body->add_shape(shape, p_transform, p_disabled);
}
void PhysicsServer2DSW::body_set_shape(RID p_body, int p_shape_idx, RID p_shape) {
- Body2DSW *body = body_owner.getornull(p_body);
+ Body2DSW *body = body_owner.get_or_null(p_body);
ERR_FAIL_COND(!body);
- Shape2DSW *shape = shape_owner.getornull(p_shape);
+ Shape2DSW *shape = shape_owner.get_or_null(p_shape);
ERR_FAIL_COND(!shape);
ERR_FAIL_COND(!shape->is_configured());
@@ -600,33 +600,33 @@ void PhysicsServer2DSW::body_set_shape(RID p_body, int p_shape_idx, RID p_shape)
}
void PhysicsServer2DSW::body_set_shape_transform(RID p_body, int p_shape_idx, const Transform2D &p_transform) {
- Body2DSW *body = body_owner.getornull(p_body);
+ Body2DSW *body = body_owner.get_or_null(p_body);
ERR_FAIL_COND(!body);
body->set_shape_transform(p_shape_idx, p_transform);
}
void PhysicsServer2DSW::body_set_shape_metadata(RID p_body, int p_shape_idx, const Variant &p_metadata) {
- Body2DSW *body = body_owner.getornull(p_body);
+ Body2DSW *body = body_owner.get_or_null(p_body);
ERR_FAIL_COND(!body);
body->set_shape_metadata(p_shape_idx, p_metadata);
}
Variant PhysicsServer2DSW::body_get_shape_metadata(RID p_body, int p_shape_idx) const {
- Body2DSW *body = body_owner.getornull(p_body);
+ Body2DSW *body = body_owner.get_or_null(p_body);
ERR_FAIL_COND_V(!body, Variant());
return body->get_shape_metadata(p_shape_idx);
}
int PhysicsServer2DSW::body_get_shape_count(RID p_body) const {
- Body2DSW *body = body_owner.getornull(p_body);
+ Body2DSW *body = body_owner.get_or_null(p_body);
ERR_FAIL_COND_V(!body, -1);
return body->get_shape_count();
}
RID PhysicsServer2DSW::body_get_shape(RID p_body, int p_shape_idx) const {
- Body2DSW *body = body_owner.getornull(p_body);
+ Body2DSW *body = body_owner.get_or_null(p_body);
ERR_FAIL_COND_V(!body, RID());
Shape2DSW *shape = body->get_shape(p_shape_idx);
@@ -636,21 +636,21 @@ RID PhysicsServer2DSW::body_get_shape(RID p_body, int p_shape_idx) const {
}
Transform2D PhysicsServer2DSW::body_get_shape_transform(RID p_body, int p_shape_idx) const {
- Body2DSW *body = body_owner.getornull(p_body);
+ Body2DSW *body = body_owner.get_or_null(p_body);
ERR_FAIL_COND_V(!body, Transform2D());
return body->get_shape_transform(p_shape_idx);
}
void PhysicsServer2DSW::body_remove_shape(RID p_body, int p_shape_idx) {
- Body2DSW *body = body_owner.getornull(p_body);
+ Body2DSW *body = body_owner.get_or_null(p_body);
ERR_FAIL_COND(!body);
body->remove_shape(p_shape_idx);
}
void PhysicsServer2DSW::body_clear_shapes(RID p_body) {
- Body2DSW *body = body_owner.getornull(p_body);
+ Body2DSW *body = body_owner.get_or_null(p_body);
ERR_FAIL_COND(!body);
while (body->get_shape_count()) {
@@ -659,7 +659,7 @@ void PhysicsServer2DSW::body_clear_shapes(RID p_body) {
}
void PhysicsServer2DSW::body_set_shape_disabled(RID p_body, int p_shape_idx, bool p_disabled) {
- Body2DSW *body = body_owner.getornull(p_body);
+ Body2DSW *body = body_owner.get_or_null(p_body);
ERR_FAIL_COND(!body);
ERR_FAIL_INDEX(p_shape_idx, body->get_shape_count());
FLUSH_QUERY_CHECK(body);
@@ -668,7 +668,7 @@ void PhysicsServer2DSW::body_set_shape_disabled(RID p_body, int p_shape_idx, boo
}
void PhysicsServer2DSW::body_set_shape_as_one_way_collision(RID p_body, int p_shape_idx, bool p_enable, real_t p_margin) {
- Body2DSW *body = body_owner.getornull(p_body);
+ Body2DSW *body = body_owner.get_or_null(p_body);
ERR_FAIL_COND(!body);
ERR_FAIL_INDEX(p_shape_idx, body->get_shape_count());
FLUSH_QUERY_CHECK(body);
@@ -677,109 +677,109 @@ void PhysicsServer2DSW::body_set_shape_as_one_way_collision(RID p_body, int p_sh
}
void PhysicsServer2DSW::body_set_continuous_collision_detection_mode(RID p_body, CCDMode p_mode) {
- Body2DSW *body = body_owner.getornull(p_body);
+ Body2DSW *body = body_owner.get_or_null(p_body);
ERR_FAIL_COND(!body);
body->set_continuous_collision_detection_mode(p_mode);
}
PhysicsServer2DSW::CCDMode PhysicsServer2DSW::body_get_continuous_collision_detection_mode(RID p_body) const {
- const Body2DSW *body = body_owner.getornull(p_body);
+ const Body2DSW *body = body_owner.get_or_null(p_body);
ERR_FAIL_COND_V(!body, CCD_MODE_DISABLED);
return body->get_continuous_collision_detection_mode();
}
void PhysicsServer2DSW::body_attach_object_instance_id(RID p_body, ObjectID p_id) {
- Body2DSW *body = body_owner.getornull(p_body);
+ Body2DSW *body = body_owner.get_or_null(p_body);
ERR_FAIL_COND(!body);
body->set_instance_id(p_id);
};
ObjectID PhysicsServer2DSW::body_get_object_instance_id(RID p_body) const {
- Body2DSW *body = body_owner.getornull(p_body);
+ Body2DSW *body = body_owner.get_or_null(p_body);
ERR_FAIL_COND_V(!body, ObjectID());
return body->get_instance_id();
};
void PhysicsServer2DSW::body_attach_canvas_instance_id(RID p_body, ObjectID p_id) {
- Body2DSW *body = body_owner.getornull(p_body);
+ Body2DSW *body = body_owner.get_or_null(p_body);
ERR_FAIL_COND(!body);
body->set_canvas_instance_id(p_id);
};
ObjectID PhysicsServer2DSW::body_get_canvas_instance_id(RID p_body) const {
- Body2DSW *body = body_owner.getornull(p_body);
+ Body2DSW *body = body_owner.get_or_null(p_body);
ERR_FAIL_COND_V(!body, ObjectID());
return body->get_canvas_instance_id();
};
void PhysicsServer2DSW::body_set_collision_layer(RID p_body, uint32_t p_layer) {
- Body2DSW *body = body_owner.getornull(p_body);
+ Body2DSW *body = body_owner.get_or_null(p_body);
ERR_FAIL_COND(!body);
body->set_collision_layer(p_layer);
};
uint32_t PhysicsServer2DSW::body_get_collision_layer(RID p_body) const {
- Body2DSW *body = body_owner.getornull(p_body);
+ Body2DSW *body = body_owner.get_or_null(p_body);
ERR_FAIL_COND_V(!body, 0);
return body->get_collision_layer();
};
void PhysicsServer2DSW::body_set_collision_mask(RID p_body, uint32_t p_mask) {
- Body2DSW *body = body_owner.getornull(p_body);
+ Body2DSW *body = body_owner.get_or_null(p_body);
ERR_FAIL_COND(!body);
body->set_collision_mask(p_mask);
};
uint32_t PhysicsServer2DSW::body_get_collision_mask(RID p_body) const {
- Body2DSW *body = body_owner.getornull(p_body);
+ Body2DSW *body = body_owner.get_or_null(p_body);
ERR_FAIL_COND_V(!body, 0);
return body->get_collision_mask();
};
void PhysicsServer2DSW::body_set_param(RID p_body, BodyParameter p_param, const Variant &p_value) {
- Body2DSW *body = body_owner.getornull(p_body);
+ Body2DSW *body = body_owner.get_or_null(p_body);
ERR_FAIL_COND(!body);
body->set_param(p_param, p_value);
};
Variant PhysicsServer2DSW::body_get_param(RID p_body, BodyParameter p_param) const {
- Body2DSW *body = body_owner.getornull(p_body);
+ Body2DSW *body = body_owner.get_or_null(p_body);
ERR_FAIL_COND_V(!body, 0);
return body->get_param(p_param);
};
void PhysicsServer2DSW::body_reset_mass_properties(RID p_body) {
- Body2DSW *body = body_owner.getornull(p_body);
+ Body2DSW *body = body_owner.get_or_null(p_body);
ERR_FAIL_COND(!body);
return body->reset_mass_properties();
}
void PhysicsServer2DSW::body_set_state(RID p_body, BodyState p_state, const Variant &p_variant) {
- Body2DSW *body = body_owner.getornull(p_body);
+ Body2DSW *body = body_owner.get_or_null(p_body);
ERR_FAIL_COND(!body);
body->set_state(p_state, p_variant);
};
Variant PhysicsServer2DSW::body_get_state(RID p_body, BodyState p_state) const {
- Body2DSW *body = body_owner.getornull(p_body);
+ Body2DSW *body = body_owner.get_or_null(p_body);
ERR_FAIL_COND_V(!body, Variant());
return body->get_state(p_state);
};
void PhysicsServer2DSW::body_set_applied_force(RID p_body, const Vector2 &p_force) {
- Body2DSW *body = body_owner.getornull(p_body);
+ Body2DSW *body = body_owner.get_or_null(p_body);
ERR_FAIL_COND(!body);
body->set_applied_force(p_force);
@@ -787,13 +787,13 @@ void PhysicsServer2DSW::body_set_applied_force(RID p_body, const Vector2 &p_forc
};
Vector2 PhysicsServer2DSW::body_get_applied_force(RID p_body) const {
- Body2DSW *body = body_owner.getornull(p_body);
+ Body2DSW *body = body_owner.get_or_null(p_body);
ERR_FAIL_COND_V(!body, Vector2());
return body->get_applied_force();
};
void PhysicsServer2DSW::body_set_applied_torque(RID p_body, real_t p_torque) {
- Body2DSW *body = body_owner.getornull(p_body);
+ Body2DSW *body = body_owner.get_or_null(p_body);
ERR_FAIL_COND(!body);
body->set_applied_torque(p_torque);
@@ -801,14 +801,14 @@ void PhysicsServer2DSW::body_set_applied_torque(RID p_body, real_t p_torque) {
};
real_t PhysicsServer2DSW::body_get_applied_torque(RID p_body) const {
- Body2DSW *body = body_owner.getornull(p_body);
+ Body2DSW *body = body_owner.get_or_null(p_body);
ERR_FAIL_COND_V(!body, 0);
return body->get_applied_torque();
};
void PhysicsServer2DSW::body_apply_central_impulse(RID p_body, const Vector2 &p_impulse) {
- Body2DSW *body = body_owner.getornull(p_body);
+ Body2DSW *body = body_owner.get_or_null(p_body);
ERR_FAIL_COND(!body);
body->apply_central_impulse(p_impulse);
@@ -816,7 +816,7 @@ void PhysicsServer2DSW::body_apply_central_impulse(RID p_body, const Vector2 &p_
}
void PhysicsServer2DSW::body_apply_torque_impulse(RID p_body, real_t p_torque) {
- Body2DSW *body = body_owner.getornull(p_body);
+ Body2DSW *body = body_owner.get_or_null(p_body);
ERR_FAIL_COND(!body);
_update_shapes();
@@ -826,7 +826,7 @@ void PhysicsServer2DSW::body_apply_torque_impulse(RID p_body, real_t p_torque) {
}
void PhysicsServer2DSW::body_apply_impulse(RID p_body, const Vector2 &p_impulse, const Vector2 &p_position) {
- Body2DSW *body = body_owner.getornull(p_body);
+ Body2DSW *body = body_owner.get_or_null(p_body);
ERR_FAIL_COND(!body);
_update_shapes();
@@ -836,7 +836,7 @@ void PhysicsServer2DSW::body_apply_impulse(RID p_body, const Vector2 &p_impulse,
};
void PhysicsServer2DSW::body_add_central_force(RID p_body, const Vector2 &p_force) {
- Body2DSW *body = body_owner.getornull(p_body);
+ Body2DSW *body = body_owner.get_or_null(p_body);
ERR_FAIL_COND(!body);
body->add_central_force(p_force);
@@ -844,7 +844,7 @@ void PhysicsServer2DSW::body_add_central_force(RID p_body, const Vector2 &p_forc
};
void PhysicsServer2DSW::body_add_force(RID p_body, const Vector2 &p_force, const Vector2 &p_position) {
- Body2DSW *body = body_owner.getornull(p_body);
+ Body2DSW *body = body_owner.get_or_null(p_body);
ERR_FAIL_COND(!body);
body->add_force(p_force, p_position);
@@ -852,7 +852,7 @@ void PhysicsServer2DSW::body_add_force(RID p_body, const Vector2 &p_force, const
};
void PhysicsServer2DSW::body_add_torque(RID p_body, real_t p_torque) {
- Body2DSW *body = body_owner.getornull(p_body);
+ Body2DSW *body = body_owner.get_or_null(p_body);
ERR_FAIL_COND(!body);
body->add_torque(p_torque);
@@ -860,7 +860,7 @@ void PhysicsServer2DSW::body_add_torque(RID p_body, real_t p_torque) {
};
void PhysicsServer2DSW::body_set_axis_velocity(RID p_body, const Vector2 &p_axis_velocity) {
- Body2DSW *body = body_owner.getornull(p_body);
+ Body2DSW *body = body_owner.get_or_null(p_body);
ERR_FAIL_COND(!body);
_update_shapes();
@@ -874,7 +874,7 @@ void PhysicsServer2DSW::body_set_axis_velocity(RID p_body, const Vector2 &p_axis
};
void PhysicsServer2DSW::body_add_collision_exception(RID p_body, RID p_body_b) {
- Body2DSW *body = body_owner.getornull(p_body);
+ Body2DSW *body = body_owner.get_or_null(p_body);
ERR_FAIL_COND(!body);
body->add_exception(p_body_b);
@@ -882,7 +882,7 @@ void PhysicsServer2DSW::body_add_collision_exception(RID p_body, RID p_body_b) {
};
void PhysicsServer2DSW::body_remove_collision_exception(RID p_body, RID p_body_b) {
- Body2DSW *body = body_owner.getornull(p_body);
+ Body2DSW *body = body_owner.get_or_null(p_body);
ERR_FAIL_COND(!body);
body->remove_exception(p_body_b);
@@ -890,7 +890,7 @@ void PhysicsServer2DSW::body_remove_collision_exception(RID p_body, RID p_body_b
};
void PhysicsServer2DSW::body_get_collision_exceptions(RID p_body, List<RID> *p_exceptions) {
- Body2DSW *body = body_owner.getornull(p_body);
+ Body2DSW *body = body_owner.get_or_null(p_body);
ERR_FAIL_COND(!body);
for (int i = 0; i < body->get_exceptions().size(); i++) {
@@ -899,55 +899,55 @@ void PhysicsServer2DSW::body_get_collision_exceptions(RID p_body, List<RID> *p_e
};
void PhysicsServer2DSW::body_set_contacts_reported_depth_threshold(RID p_body, real_t p_threshold) {
- Body2DSW *body = body_owner.getornull(p_body);
+ Body2DSW *body = body_owner.get_or_null(p_body);
ERR_FAIL_COND(!body);
};
real_t PhysicsServer2DSW::body_get_contacts_reported_depth_threshold(RID p_body) const {
- Body2DSW *body = body_owner.getornull(p_body);
+ Body2DSW *body = body_owner.get_or_null(p_body);
ERR_FAIL_COND_V(!body, 0);
return 0;
};
void PhysicsServer2DSW::body_set_omit_force_integration(RID p_body, bool p_omit) {
- Body2DSW *body = body_owner.getornull(p_body);
+ Body2DSW *body = body_owner.get_or_null(p_body);
ERR_FAIL_COND(!body);
body->set_omit_force_integration(p_omit);
};
bool PhysicsServer2DSW::body_is_omitting_force_integration(RID p_body) const {
- Body2DSW *body = body_owner.getornull(p_body);
+ Body2DSW *body = body_owner.get_or_null(p_body);
ERR_FAIL_COND_V(!body, false);
return body->get_omit_force_integration();
};
void PhysicsServer2DSW::body_set_max_contacts_reported(RID p_body, int p_contacts) {
- Body2DSW *body = body_owner.getornull(p_body);
+ Body2DSW *body = body_owner.get_or_null(p_body);
ERR_FAIL_COND(!body);
body->set_max_contacts_reported(p_contacts);
}
int PhysicsServer2DSW::body_get_max_contacts_reported(RID p_body) const {
- Body2DSW *body = body_owner.getornull(p_body);
+ Body2DSW *body = body_owner.get_or_null(p_body);
ERR_FAIL_COND_V(!body, -1);
return body->get_max_contacts_reported();
}
void PhysicsServer2DSW::body_set_state_sync_callback(RID p_body, void *p_instance, BodyStateCallback p_callback) {
- Body2DSW *body = body_owner.getornull(p_body);
+ Body2DSW *body = body_owner.get_or_null(p_body);
ERR_FAIL_COND(!body);
body->set_state_sync_callback(p_instance, p_callback);
}
void PhysicsServer2DSW::body_set_force_integration_callback(RID p_body, const Callable &p_callable, const Variant &p_udata) {
- Body2DSW *body = body_owner.getornull(p_body);
+ Body2DSW *body = body_owner.get_or_null(p_body);
ERR_FAIL_COND(!body);
body->set_force_integration_callback(p_callable, p_udata);
}
bool PhysicsServer2DSW::body_collide_shape(RID p_body, int p_body_shape, RID p_shape, const Transform2D &p_shape_xform, const Vector2 &p_motion, Vector2 *r_results, int p_result_max, int &r_result_count) {
- Body2DSW *body = body_owner.getornull(p_body);
+ Body2DSW *body = body_owner.get_or_null(p_body);
ERR_FAIL_COND_V(!body, false);
ERR_FAIL_INDEX_V(p_body_shape, body->get_shape_count(), false);
@@ -955,13 +955,13 @@ bool PhysicsServer2DSW::body_collide_shape(RID p_body, int p_body_shape, RID p_s
}
void PhysicsServer2DSW::body_set_pickable(RID p_body, bool p_pickable) {
- Body2DSW *body = body_owner.getornull(p_body);
+ Body2DSW *body = body_owner.get_or_null(p_body);
ERR_FAIL_COND(!body);
body->set_pickable(p_pickable);
}
bool PhysicsServer2DSW::body_test_motion(RID p_body, const Transform2D &p_from, const Vector2 &p_motion, real_t p_margin, MotionResult *r_result, bool p_collide_separation_ray, const Set<RID> &p_exclude) {
- Body2DSW *body = body_owner.getornull(p_body);
+ Body2DSW *body = body_owner.get_or_null(p_body);
ERR_FAIL_COND_V(!body, false);
ERR_FAIL_COND_V(!body->get_space(), false);
ERR_FAIL_COND_V(body->get_space()->is_locked(), false);
@@ -974,7 +974,7 @@ bool PhysicsServer2DSW::body_test_motion(RID p_body, const Transform2D &p_from,
PhysicsDirectBodyState2D *PhysicsServer2DSW::body_get_direct_state(RID p_body) {
ERR_FAIL_COND_V_MSG((using_threads && !doing_sync), nullptr, "Body state is inaccessible right now, wait for iteration or physics process notification.");
- Body2DSW *body = body_owner.getornull(p_body);
+ Body2DSW *body = body_owner.get_or_null(p_body);
ERR_FAIL_COND_V(!body, nullptr);
ERR_FAIL_COND_V(!body->get_space(), nullptr);
@@ -993,7 +993,7 @@ RID PhysicsServer2DSW::joint_create() {
}
void PhysicsServer2DSW::joint_clear(RID p_joint) {
- Joint2DSW *joint = joint_owner.getornull(p_joint);
+ Joint2DSW *joint = joint_owner.get_or_null(p_joint);
if (joint->get_type() != JOINT_TYPE_MAX) {
Joint2DSW *empty_joint = memnew(Joint2DSW);
empty_joint->copy_settings_from(joint);
@@ -1004,7 +1004,7 @@ void PhysicsServer2DSW::joint_clear(RID p_joint) {
}
void PhysicsServer2DSW::joint_set_param(RID p_joint, JointParam p_param, real_t p_value) {
- Joint2DSW *joint = joint_owner.getornull(p_joint);
+ Joint2DSW *joint = joint_owner.get_or_null(p_joint);
ERR_FAIL_COND(!joint);
switch (p_param) {
@@ -1021,7 +1021,7 @@ void PhysicsServer2DSW::joint_set_param(RID p_joint, JointParam p_param, real_t
}
real_t PhysicsServer2DSW::joint_get_param(RID p_joint, JointParam p_param) const {
- const Joint2DSW *joint = joint_owner.getornull(p_joint);
+ const Joint2DSW *joint = joint_owner.get_or_null(p_joint);
ERR_FAIL_COND_V(!joint, -1);
switch (p_param) {
@@ -1040,7 +1040,7 @@ real_t PhysicsServer2DSW::joint_get_param(RID p_joint, JointParam p_param) const
}
void PhysicsServer2DSW::joint_disable_collisions_between_bodies(RID p_joint, const bool p_disable) {
- Joint2DSW *joint = joint_owner.getornull(p_joint);
+ Joint2DSW *joint = joint_owner.get_or_null(p_joint);
ERR_FAIL_COND(!joint);
joint->disable_collisions_between_bodies(p_disable);
@@ -1060,22 +1060,22 @@ void PhysicsServer2DSW::joint_disable_collisions_between_bodies(RID p_joint, con
}
bool PhysicsServer2DSW::joint_is_disabled_collisions_between_bodies(RID p_joint) const {
- const Joint2DSW *joint = joint_owner.getornull(p_joint);
+ const Joint2DSW *joint = joint_owner.get_or_null(p_joint);
ERR_FAIL_COND_V(!joint, true);
return joint->is_disabled_collisions_between_bodies();
}
void PhysicsServer2DSW::joint_make_pin(RID p_joint, const Vector2 &p_pos, RID p_body_a, RID p_body_b) {
- Body2DSW *A = body_owner.getornull(p_body_a);
+ Body2DSW *A = body_owner.get_or_null(p_body_a);
ERR_FAIL_COND(!A);
Body2DSW *B = nullptr;
if (body_owner.owns(p_body_b)) {
- B = body_owner.getornull(p_body_b);
+ B = body_owner.get_or_null(p_body_b);
ERR_FAIL_COND(!B);
}
- Joint2DSW *prev_joint = joint_owner.getornull(p_joint);
+ Joint2DSW *prev_joint = joint_owner.get_or_null(p_joint);
ERR_FAIL_COND(prev_joint == nullptr);
Joint2DSW *joint = memnew(PinJoint2DSW(p_pos, A, B));
@@ -1086,13 +1086,13 @@ void PhysicsServer2DSW::joint_make_pin(RID p_joint, const Vector2 &p_pos, RID p_
}
void PhysicsServer2DSW::joint_make_groove(RID p_joint, const Vector2 &p_a_groove1, const Vector2 &p_a_groove2, const Vector2 &p_b_anchor, RID p_body_a, RID p_body_b) {
- Body2DSW *A = body_owner.getornull(p_body_a);
+ Body2DSW *A = body_owner.get_or_null(p_body_a);
ERR_FAIL_COND(!A);
- Body2DSW *B = body_owner.getornull(p_body_b);
+ Body2DSW *B = body_owner.get_or_null(p_body_b);
ERR_FAIL_COND(!B);
- Joint2DSW *prev_joint = joint_owner.getornull(p_joint);
+ Joint2DSW *prev_joint = joint_owner.get_or_null(p_joint);
ERR_FAIL_COND(prev_joint == nullptr);
Joint2DSW *joint = memnew(GrooveJoint2DSW(p_a_groove1, p_a_groove2, p_b_anchor, A, B));
@@ -1103,13 +1103,13 @@ void PhysicsServer2DSW::joint_make_groove(RID p_joint, const Vector2 &p_a_groove
}
void PhysicsServer2DSW::joint_make_damped_spring(RID p_joint, const Vector2 &p_anchor_a, const Vector2 &p_anchor_b, RID p_body_a, RID p_body_b) {
- Body2DSW *A = body_owner.getornull(p_body_a);
+ Body2DSW *A = body_owner.get_or_null(p_body_a);
ERR_FAIL_COND(!A);
- Body2DSW *B = body_owner.getornull(p_body_b);
+ Body2DSW *B = body_owner.get_or_null(p_body_b);
ERR_FAIL_COND(!B);
- Joint2DSW *prev_joint = joint_owner.getornull(p_joint);
+ Joint2DSW *prev_joint = joint_owner.get_or_null(p_joint);
ERR_FAIL_COND(prev_joint == nullptr);
Joint2DSW *joint = memnew(DampedSpringJoint2DSW(p_anchor_a, p_anchor_b, A, B));
@@ -1120,7 +1120,7 @@ void PhysicsServer2DSW::joint_make_damped_spring(RID p_joint, const Vector2 &p_a
}
void PhysicsServer2DSW::pin_joint_set_param(RID p_joint, PinJointParam p_param, real_t p_value) {
- Joint2DSW *j = joint_owner.getornull(p_joint);
+ Joint2DSW *j = joint_owner.get_or_null(p_joint);
ERR_FAIL_COND(!j);
ERR_FAIL_COND(j->get_type() != JOINT_TYPE_PIN);
@@ -1129,7 +1129,7 @@ void PhysicsServer2DSW::pin_joint_set_param(RID p_joint, PinJointParam p_param,
}
real_t PhysicsServer2DSW::pin_joint_get_param(RID p_joint, PinJointParam p_param) const {
- Joint2DSW *j = joint_owner.getornull(p_joint);
+ Joint2DSW *j = joint_owner.get_or_null(p_joint);
ERR_FAIL_COND_V(!j, 0);
ERR_FAIL_COND_V(j->get_type() != JOINT_TYPE_PIN, 0);
@@ -1138,7 +1138,7 @@ real_t PhysicsServer2DSW::pin_joint_get_param(RID p_joint, PinJointParam p_param
}
void PhysicsServer2DSW::damped_spring_joint_set_param(RID p_joint, DampedSpringParam p_param, real_t p_value) {
- Joint2DSW *j = joint_owner.getornull(p_joint);
+ Joint2DSW *j = joint_owner.get_or_null(p_joint);
ERR_FAIL_COND(!j);
ERR_FAIL_COND(j->get_type() != JOINT_TYPE_DAMPED_SPRING);
@@ -1147,7 +1147,7 @@ void PhysicsServer2DSW::damped_spring_joint_set_param(RID p_joint, DampedSpringP
}
real_t PhysicsServer2DSW::damped_spring_joint_get_param(RID p_joint, DampedSpringParam p_param) const {
- Joint2DSW *j = joint_owner.getornull(p_joint);
+ Joint2DSW *j = joint_owner.get_or_null(p_joint);
ERR_FAIL_COND_V(!j, 0);
ERR_FAIL_COND_V(j->get_type() != JOINT_TYPE_DAMPED_SPRING, 0);
@@ -1156,7 +1156,7 @@ real_t PhysicsServer2DSW::damped_spring_joint_get_param(RID p_joint, DampedSprin
}
PhysicsServer2D::JointType PhysicsServer2DSW::joint_get_type(RID p_joint) const {
- Joint2DSW *joint = joint_owner.getornull(p_joint);
+ Joint2DSW *joint = joint_owner.get_or_null(p_joint);
ERR_FAIL_COND_V(!joint, JOINT_TYPE_PIN);
return joint->get_type();
@@ -1166,7 +1166,7 @@ void PhysicsServer2DSW::free(RID p_rid) {
_update_shapes(); // just in case
if (shape_owner.owns(p_rid)) {
- Shape2DSW *shape = shape_owner.getornull(p_rid);
+ Shape2DSW *shape = shape_owner.get_or_null(p_rid);
while (shape->get_owners().size()) {
ShapeOwner2DSW *so = shape->get_owners().front()->key();
@@ -1176,7 +1176,7 @@ void PhysicsServer2DSW::free(RID p_rid) {
shape_owner.free(p_rid);
memdelete(shape);
} else if (body_owner.owns(p_rid)) {
- Body2DSW *body = body_owner.getornull(p_rid);
+ Body2DSW *body = body_owner.get_or_null(p_rid);
/*
if (body->get_state_query())
@@ -1196,7 +1196,7 @@ void PhysicsServer2DSW::free(RID p_rid) {
memdelete(body);
} else if (area_owner.owns(p_rid)) {
- Area2DSW *area = area_owner.getornull(p_rid);
+ Area2DSW *area = area_owner.get_or_null(p_rid);
/*
if (area->get_monitor_query())
@@ -1212,7 +1212,7 @@ void PhysicsServer2DSW::free(RID p_rid) {
area_owner.free(p_rid);
memdelete(area);
} else if (space_owner.owns(p_rid)) {
- Space2DSW *space = space_owner.getornull(p_rid);
+ Space2DSW *space = space_owner.get_or_null(p_rid);
while (space->get_objects().size()) {
CollisionObject2DSW *co = (CollisionObject2DSW *)space->get_objects().front()->get();
@@ -1224,7 +1224,7 @@ void PhysicsServer2DSW::free(RID p_rid) {
space_owner.free(p_rid);
memdelete(space);
} else if (joint_owner.owns(p_rid)) {
- Joint2DSW *joint = joint_owner.getornull(p_rid);
+ Joint2DSW *joint = joint_owner.get_or_null(p_rid);
joint_owner.free(p_rid);
memdelete(joint);
diff --git a/servers/physics_2d/space_2d_sw.cpp b/servers/physics_2d/space_2d_sw.cpp
index b9b26eb21d..df37b11c1b 100644
--- a/servers/physics_2d/space_2d_sw.cpp
+++ b/servers/physics_2d/space_2d_sw.cpp
@@ -34,6 +34,9 @@
#include "core/os/os.h"
#include "core/templates/pair.h"
#include "physics_server_2d_sw.h"
+
+#define TEST_MOTION_MIN_CONTACT_DEPTH_FACTOR 0.05
+
_FORCE_INLINE_ static bool _can_collide_with(CollisionObject2DSW *p_object, uint32_t p_collision_mask, bool p_collide_with_bodies, bool p_collide_with_areas) {
if (!(p_object->get_collision_layer() & p_collision_mask)) {
return false;
@@ -203,7 +206,7 @@ int PhysicsDirectSpaceState2DSW::intersect_shape(const RID &p_shape, const Trans
return 0;
}
- Shape2DSW *shape = PhysicsServer2DSW::singletonsw->shape_owner.getornull(p_shape);
+ Shape2DSW *shape = PhysicsServer2DSW::singletonsw->shape_owner.get_or_null(p_shape);
ERR_FAIL_COND_V(!shape, 0);
Rect2 aabb = p_xform.xform(shape->get_aabb());
@@ -248,7 +251,7 @@ int PhysicsDirectSpaceState2DSW::intersect_shape(const RID &p_shape, const Trans
}
bool PhysicsDirectSpaceState2DSW::cast_motion(const RID &p_shape, const Transform2D &p_xform, const Vector2 &p_motion, real_t p_margin, real_t &p_closest_safe, real_t &p_closest_unsafe, const Set<RID> &p_exclude, uint32_t p_collision_mask, bool p_collide_with_bodies, bool p_collide_with_areas) {
- Shape2DSW *shape = PhysicsServer2DSW::singletonsw->shape_owner.getornull(p_shape);
+ Shape2DSW *shape = PhysicsServer2DSW::singletonsw->shape_owner.get_or_null(p_shape);
ERR_FAIL_COND_V(!shape, false);
Rect2 aabb = p_xform.xform(shape->get_aabb());
@@ -335,7 +338,7 @@ bool PhysicsDirectSpaceState2DSW::collide_shape(RID p_shape, const Transform2D &
return false;
}
- Shape2DSW *shape = PhysicsServer2DSW::singletonsw->shape_owner.getornull(p_shape);
+ Shape2DSW *shape = PhysicsServer2DSW::singletonsw->shape_owner.get_or_null(p_shape);
ERR_FAIL_COND_V(!shape, 0);
Rect2 aabb = p_shape_xform.xform(shape->get_aabb());
@@ -432,9 +435,11 @@ static void _rest_cbk_result(const Vector2 &p_point_A, const Vector2 &p_point_B,
}
bool PhysicsDirectSpaceState2DSW::rest_info(RID p_shape, const Transform2D &p_shape_xform, const Vector2 &p_motion, real_t p_margin, ShapeRestInfo *r_info, const Set<RID> &p_exclude, uint32_t p_collision_mask, bool p_collide_with_bodies, bool p_collide_with_areas) {
- Shape2DSW *shape = PhysicsServer2DSW::singletonsw->shape_owner.getornull(p_shape);
+ Shape2DSW *shape = PhysicsServer2DSW::singletonsw->shape_owner.get_or_null(p_shape);
ERR_FAIL_COND_V(!shape, 0);
+ real_t min_contact_depth = p_margin * TEST_MOTION_MIN_CONTACT_DEPTH_FACTOR;
+
Rect2 aabb = p_shape_xform.xform(shape->get_aabb());
aabb = aabb.merge(Rect2(aabb.position + p_motion, aabb.size)); //motion
aabb = aabb.grow(p_margin);
@@ -445,7 +450,7 @@ bool PhysicsDirectSpaceState2DSW::rest_info(RID p_shape, const Transform2D &p_sh
rcd.best_len = 0;
rcd.best_object = nullptr;
rcd.best_shape = 0;
- rcd.min_allowed_depth = space->test_motion_min_contact_depth;
+ rcd.min_allowed_depth = min_contact_depth;
for (int i = 0; i < amount; i++) {
if (!_can_collide_with(space->intersection_query_results[i], p_collision_mask, p_collide_with_bodies, p_collide_with_areas)) {
@@ -569,6 +574,8 @@ bool Space2DSW::test_body_motion(Body2DSW *p_body, const Transform2D &p_from, co
ExcludedShapeSW excluded_shape_pairs[max_excluded_shape_pairs];
int excluded_shape_pair_count = 0;
+ real_t min_contact_depth = p_margin * TEST_MOTION_MIN_CONTACT_DEPTH_FACTOR;
+
real_t motion_length = p_motion.length();
Vector2 motion_normal = p_motion / motion_length;
@@ -671,6 +678,8 @@ bool Space2DSW::test_body_motion(Body2DSW *p_body, const Transform2D &p_from, co
break;
}
+ recovered = true;
+
Vector2 recover_motion;
for (int i = 0; i < cbk.amount; i++) {
Vector2 a = sr[i * 2 + 0];
@@ -682,9 +691,9 @@ bool Space2DSW::test_body_motion(Body2DSW *p_body, const Transform2D &p_from, co
// Compute depth on recovered motion.
real_t depth = n.dot(a + recover_motion) - d;
- if (depth > 0.0) {
+ if (depth > min_contact_depth + CMP_EPSILON) {
// Only recover if there is penetration.
- recover_motion -= n * depth * 0.4;
+ recover_motion -= n * (depth - min_contact_depth) * 0.4;
}
}
@@ -693,8 +702,6 @@ bool Space2DSW::test_body_motion(Body2DSW *p_body, const Transform2D &p_from, co
break;
}
- recovered = true;
-
body_transform.elements[2] += recover_motion;
body_aabb.position += recover_motion;
@@ -870,7 +877,7 @@ bool Space2DSW::test_body_motion(Body2DSW *p_body, const Transform2D &p_from, co
rcd.best_shape = 0;
// Allowed depth can't be lower than motion length, in order to handle contacts at low speed.
- rcd.min_allowed_depth = MIN(motion_length, test_motion_min_contact_depth);
+ rcd.min_allowed_depth = MIN(motion_length, min_contact_depth);
int from_shape = best_shape != -1 ? best_shape : 0;
int to_shape = best_shape != -1 ? best_shape + 1 : p_body->get_shape_count();
@@ -1141,9 +1148,6 @@ void Space2DSW::set_param(PhysicsServer2D::SpaceParameter p_param, real_t p_valu
case PhysicsServer2D::SPACE_PARAM_CONSTRAINT_DEFAULT_BIAS:
constraint_bias = p_value;
break;
- case PhysicsServer2D::SPACE_PARAM_TEST_MOTION_MIN_CONTACT_DEPTH:
- test_motion_min_contact_depth = p_value;
- break;
}
}
@@ -1163,8 +1167,6 @@ real_t Space2DSW::get_param(PhysicsServer2D::SpaceParameter p_param) const {
return body_time_to_sleep;
case PhysicsServer2D::SPACE_PARAM_CONSTRAINT_DEFAULT_BIAS:
return constraint_bias;
- case PhysicsServer2D::SPACE_PARAM_TEST_MOTION_MIN_CONTACT_DEPTH:
- return test_motion_min_contact_depth;
}
return 0;
}
diff --git a/servers/physics_2d/space_2d_sw.h b/servers/physics_2d/space_2d_sw.h
index 30c6b4cf55..a1a8a77ee4 100644
--- a/servers/physics_2d/space_2d_sw.h
+++ b/servers/physics_2d/space_2d_sw.h
@@ -102,7 +102,6 @@ private:
real_t contact_max_separation = 1.5;
real_t contact_max_allowed_penetration = 0.3;
real_t constraint_bias = 0.2;
- real_t test_motion_min_contact_depth = 0.005;
enum {
INTERSECTION_QUERY_MAX = 2048
diff --git a/servers/physics_3d/body_3d_sw.cpp b/servers/physics_3d/body_3d_sw.cpp
index 5924e249a5..91fe80a3dc 100644
--- a/servers/physics_3d/body_3d_sw.cpp
+++ b/servers/physics_3d/body_3d_sw.cpp
@@ -154,7 +154,7 @@ void Body3DSW::update_mass_properties() {
_inv_inertia = Vector3();
_inv_mass = 0;
} break;
- case PhysicsServer3D::BODY_MODE_DYNAMIC_LOCKED: {
+ case PhysicsServer3D::BODY_MODE_DYNAMIC_LINEAR: {
_inv_inertia_tensor.set_zero();
_inv_mass = 1.0 / mass;
@@ -310,7 +310,7 @@ void Body3DSW::set_mode(PhysicsServer3D::BodyMode p_mode) {
set_active(true);
} break;
- case PhysicsServer3D::BODY_MODE_DYNAMIC_LOCKED: {
+ case PhysicsServer3D::BODY_MODE_DYNAMIC_LINEAR: {
_inv_mass = mass > 0 ? (1.0 / mass) : 0;
_inv_inertia = Vector3();
angular_velocity = Vector3();
diff --git a/servers/physics_3d/body_direct_state_3d_sw.cpp b/servers/physics_3d/body_direct_state_3d_sw.cpp
index d197dd288d..e74baefc3a 100644
--- a/servers/physics_3d/body_direct_state_3d_sw.cpp
+++ b/servers/physics_3d/body_direct_state_3d_sw.cpp
@@ -66,6 +66,7 @@ Basis PhysicsDirectBodyState3DSW::get_inverse_inertia_tensor() const {
}
void PhysicsDirectBodyState3DSW::set_linear_velocity(const Vector3 &p_velocity) {
+ body->set_active(true);
body->set_linear_velocity(p_velocity);
}
@@ -74,6 +75,7 @@ Vector3 PhysicsDirectBodyState3DSW::get_linear_velocity() const {
}
void PhysicsDirectBodyState3DSW::set_angular_velocity(const Vector3 &p_velocity) {
+ body->set_active(true);
body->set_angular_velocity(p_velocity);
}
@@ -94,26 +96,32 @@ Vector3 PhysicsDirectBodyState3DSW::get_velocity_at_local_position(const Vector3
}
void PhysicsDirectBodyState3DSW::add_central_force(const Vector3 &p_force) {
+ body->set_active(true);
body->add_central_force(p_force);
}
void PhysicsDirectBodyState3DSW::add_force(const Vector3 &p_force, const Vector3 &p_position) {
+ body->set_active(true);
body->add_force(p_force, p_position);
}
void PhysicsDirectBodyState3DSW::add_torque(const Vector3 &p_torque) {
+ body->set_active(true);
body->add_torque(p_torque);
}
void PhysicsDirectBodyState3DSW::apply_central_impulse(const Vector3 &p_impulse) {
+ body->set_active(true);
body->apply_central_impulse(p_impulse);
}
void PhysicsDirectBodyState3DSW::apply_impulse(const Vector3 &p_impulse, const Vector3 &p_position) {
+ body->set_active(true);
body->apply_impulse(p_impulse, p_position);
}
void PhysicsDirectBodyState3DSW::apply_torque_impulse(const Vector3 &p_impulse) {
+ body->set_active(true);
body->apply_torque_impulse(p_impulse);
}
diff --git a/servers/physics_3d/physics_server_3d_sw.cpp b/servers/physics_3d/physics_server_3d_sw.cpp
index 8bfadeb356..ece1fe46e7 100644
--- a/servers/physics_3d/physics_server_3d_sw.cpp
+++ b/servers/physics_3d/physics_server_3d_sw.cpp
@@ -102,25 +102,25 @@ RID PhysicsServer3DSW::custom_shape_create() {
}
void PhysicsServer3DSW::shape_set_data(RID p_shape, const Variant &p_data) {
- Shape3DSW *shape = shape_owner.getornull(p_shape);
+ Shape3DSW *shape = shape_owner.get_or_null(p_shape);
ERR_FAIL_COND(!shape);
shape->set_data(p_data);
};
void PhysicsServer3DSW::shape_set_custom_solver_bias(RID p_shape, real_t p_bias) {
- Shape3DSW *shape = shape_owner.getornull(p_shape);
+ Shape3DSW *shape = shape_owner.get_or_null(p_shape);
ERR_FAIL_COND(!shape);
shape->set_custom_bias(p_bias);
}
PhysicsServer3D::ShapeType PhysicsServer3DSW::shape_get_type(RID p_shape) const {
- const Shape3DSW *shape = shape_owner.getornull(p_shape);
+ const Shape3DSW *shape = shape_owner.get_or_null(p_shape);
ERR_FAIL_COND_V(!shape, SHAPE_CUSTOM);
return shape->get_type();
};
Variant PhysicsServer3DSW::shape_get_data(RID p_shape) const {
- const Shape3DSW *shape = shape_owner.getornull(p_shape);
+ const Shape3DSW *shape = shape_owner.get_or_null(p_shape);
ERR_FAIL_COND_V(!shape, Variant());
ERR_FAIL_COND_V(!shape->is_configured(), Variant());
return shape->get_data();
@@ -134,7 +134,7 @@ real_t PhysicsServer3DSW::shape_get_margin(RID p_shape) const {
}
real_t PhysicsServer3DSW::shape_get_custom_solver_bias(RID p_shape) const {
- const Shape3DSW *shape = shape_owner.getornull(p_shape);
+ const Shape3DSW *shape = shape_owner.get_or_null(p_shape);
ERR_FAIL_COND_V(!shape, 0);
return shape->get_custom_bias();
}
@@ -144,7 +144,7 @@ RID PhysicsServer3DSW::space_create() {
RID id = space_owner.make_rid(space);
space->set_self(id);
RID area_id = area_create();
- Area3DSW *area = area_owner.getornull(area_id);
+ Area3DSW *area = area_owner.get_or_null(area_id);
ERR_FAIL_COND_V(!area, RID());
space->set_default_area(area);
area->set_space(space);
@@ -158,7 +158,7 @@ RID PhysicsServer3DSW::space_create() {
};
void PhysicsServer3DSW::space_set_active(RID p_space, bool p_active) {
- Space3DSW *space = space_owner.getornull(p_space);
+ Space3DSW *space = space_owner.get_or_null(p_space);
ERR_FAIL_COND(!space);
if (p_active) {
active_spaces.insert(space);
@@ -168,27 +168,27 @@ void PhysicsServer3DSW::space_set_active(RID p_space, bool p_active) {
}
bool PhysicsServer3DSW::space_is_active(RID p_space) const {
- const Space3DSW *space = space_owner.getornull(p_space);
+ const Space3DSW *space = space_owner.get_or_null(p_space);
ERR_FAIL_COND_V(!space, false);
return active_spaces.has(space);
}
void PhysicsServer3DSW::space_set_param(RID p_space, SpaceParameter p_param, real_t p_value) {
- Space3DSW *space = space_owner.getornull(p_space);
+ Space3DSW *space = space_owner.get_or_null(p_space);
ERR_FAIL_COND(!space);
space->set_param(p_param, p_value);
}
real_t PhysicsServer3DSW::space_get_param(RID p_space, SpaceParameter p_param) const {
- const Space3DSW *space = space_owner.getornull(p_space);
+ const Space3DSW *space = space_owner.get_or_null(p_space);
ERR_FAIL_COND_V(!space, 0);
return space->get_param(p_param);
}
PhysicsDirectSpaceState3D *PhysicsServer3DSW::space_get_direct_state(RID p_space) {
- Space3DSW *space = space_owner.getornull(p_space);
+ Space3DSW *space = space_owner.get_or_null(p_space);
ERR_FAIL_COND_V(!space, nullptr);
ERR_FAIL_COND_V_MSG((using_threads && !doing_sync) || space->is_locked(), nullptr, "Space state is inaccessible right now, wait for iteration or physics process notification.");
@@ -196,19 +196,19 @@ PhysicsDirectSpaceState3D *PhysicsServer3DSW::space_get_direct_state(RID p_space
}
void PhysicsServer3DSW::space_set_debug_contacts(RID p_space, int p_max_contacts) {
- Space3DSW *space = space_owner.getornull(p_space);
+ Space3DSW *space = space_owner.get_or_null(p_space);
ERR_FAIL_COND(!space);
space->set_debug_contacts(p_max_contacts);
}
Vector<Vector3> PhysicsServer3DSW::space_get_contacts(RID p_space) const {
- Space3DSW *space = space_owner.getornull(p_space);
+ Space3DSW *space = space_owner.get_or_null(p_space);
ERR_FAIL_COND_V(!space, Vector<Vector3>());
return space->get_debug_contacts();
}
int PhysicsServer3DSW::space_get_contact_count(RID p_space) const {
- Space3DSW *space = space_owner.getornull(p_space);
+ Space3DSW *space = space_owner.get_or_null(p_space);
ERR_FAIL_COND_V(!space, 0);
return space->get_debug_contact_count();
}
@@ -221,12 +221,12 @@ RID PhysicsServer3DSW::area_create() {
};
void PhysicsServer3DSW::area_set_space(RID p_area, RID p_space) {
- Area3DSW *area = area_owner.getornull(p_area);
+ Area3DSW *area = area_owner.get_or_null(p_area);
ERR_FAIL_COND(!area);
Space3DSW *space = nullptr;
if (p_space.is_valid()) {
- space = space_owner.getornull(p_space);
+ space = space_owner.get_or_null(p_space);
ERR_FAIL_COND(!space);
}
@@ -239,7 +239,7 @@ void PhysicsServer3DSW::area_set_space(RID p_area, RID p_space) {
};
RID PhysicsServer3DSW::area_get_space(RID p_area) const {
- Area3DSW *area = area_owner.getornull(p_area);
+ Area3DSW *area = area_owner.get_or_null(p_area);
ERR_FAIL_COND_V(!area, RID());
Space3DSW *space = area->get_space();
@@ -250,34 +250,34 @@ RID PhysicsServer3DSW::area_get_space(RID p_area) const {
};
void PhysicsServer3DSW::area_set_space_override_mode(RID p_area, AreaSpaceOverrideMode p_mode) {
- Area3DSW *area = area_owner.getornull(p_area);
+ Area3DSW *area = area_owner.get_or_null(p_area);
ERR_FAIL_COND(!area);
area->set_space_override_mode(p_mode);
}
PhysicsServer3D::AreaSpaceOverrideMode PhysicsServer3DSW::area_get_space_override_mode(RID p_area) const {
- const Area3DSW *area = area_owner.getornull(p_area);
+ const Area3DSW *area = area_owner.get_or_null(p_area);
ERR_FAIL_COND_V(!area, AREA_SPACE_OVERRIDE_DISABLED);
return area->get_space_override_mode();
}
void PhysicsServer3DSW::area_add_shape(RID p_area, RID p_shape, const Transform3D &p_transform, bool p_disabled) {
- Area3DSW *area = area_owner.getornull(p_area);
+ Area3DSW *area = area_owner.get_or_null(p_area);
ERR_FAIL_COND(!area);
- Shape3DSW *shape = shape_owner.getornull(p_shape);
+ Shape3DSW *shape = shape_owner.get_or_null(p_shape);
ERR_FAIL_COND(!shape);
area->add_shape(shape, p_transform, p_disabled);
}
void PhysicsServer3DSW::area_set_shape(RID p_area, int p_shape_idx, RID p_shape) {
- Area3DSW *area = area_owner.getornull(p_area);
+ Area3DSW *area = area_owner.get_or_null(p_area);
ERR_FAIL_COND(!area);
- Shape3DSW *shape = shape_owner.getornull(p_shape);
+ Shape3DSW *shape = shape_owner.get_or_null(p_shape);
ERR_FAIL_COND(!shape);
ERR_FAIL_COND(!shape->is_configured());
@@ -285,21 +285,21 @@ void PhysicsServer3DSW::area_set_shape(RID p_area, int p_shape_idx, RID p_shape)
}
void PhysicsServer3DSW::area_set_shape_transform(RID p_area, int p_shape_idx, const Transform3D &p_transform) {
- Area3DSW *area = area_owner.getornull(p_area);
+ Area3DSW *area = area_owner.get_or_null(p_area);
ERR_FAIL_COND(!area);
area->set_shape_transform(p_shape_idx, p_transform);
}
int PhysicsServer3DSW::area_get_shape_count(RID p_area) const {
- Area3DSW *area = area_owner.getornull(p_area);
+ Area3DSW *area = area_owner.get_or_null(p_area);
ERR_FAIL_COND_V(!area, -1);
return area->get_shape_count();
}
RID PhysicsServer3DSW::area_get_shape(RID p_area, int p_shape_idx) const {
- Area3DSW *area = area_owner.getornull(p_area);
+ Area3DSW *area = area_owner.get_or_null(p_area);
ERR_FAIL_COND_V(!area, RID());
Shape3DSW *shape = area->get_shape(p_shape_idx);
@@ -309,21 +309,21 @@ RID PhysicsServer3DSW::area_get_shape(RID p_area, int p_shape_idx) const {
}
Transform3D PhysicsServer3DSW::area_get_shape_transform(RID p_area, int p_shape_idx) const {
- Area3DSW *area = area_owner.getornull(p_area);
+ Area3DSW *area = area_owner.get_or_null(p_area);
ERR_FAIL_COND_V(!area, Transform3D());
return area->get_shape_transform(p_shape_idx);
}
void PhysicsServer3DSW::area_remove_shape(RID p_area, int p_shape_idx) {
- Area3DSW *area = area_owner.getornull(p_area);
+ Area3DSW *area = area_owner.get_or_null(p_area);
ERR_FAIL_COND(!area);
area->remove_shape(p_shape_idx);
}
void PhysicsServer3DSW::area_clear_shapes(RID p_area) {
- Area3DSW *area = area_owner.getornull(p_area);
+ Area3DSW *area = area_owner.get_or_null(p_area);
ERR_FAIL_COND(!area);
while (area->get_shape_count()) {
@@ -332,7 +332,7 @@ void PhysicsServer3DSW::area_clear_shapes(RID p_area) {
}
void PhysicsServer3DSW::area_set_shape_disabled(RID p_area, int p_shape_idx, bool p_disabled) {
- Area3DSW *area = area_owner.getornull(p_area);
+ Area3DSW *area = area_owner.get_or_null(p_area);
ERR_FAIL_COND(!area);
ERR_FAIL_INDEX(p_shape_idx, area->get_shape_count());
FLUSH_QUERY_CHECK(area);
@@ -341,74 +341,74 @@ void PhysicsServer3DSW::area_set_shape_disabled(RID p_area, int p_shape_idx, boo
void PhysicsServer3DSW::area_attach_object_instance_id(RID p_area, ObjectID p_id) {
if (space_owner.owns(p_area)) {
- Space3DSW *space = space_owner.getornull(p_area);
+ Space3DSW *space = space_owner.get_or_null(p_area);
p_area = space->get_default_area()->get_self();
}
- Area3DSW *area = area_owner.getornull(p_area);
+ Area3DSW *area = area_owner.get_or_null(p_area);
ERR_FAIL_COND(!area);
area->set_instance_id(p_id);
}
ObjectID PhysicsServer3DSW::area_get_object_instance_id(RID p_area) const {
if (space_owner.owns(p_area)) {
- Space3DSW *space = space_owner.getornull(p_area);
+ Space3DSW *space = space_owner.get_or_null(p_area);
p_area = space->get_default_area()->get_self();
}
- Area3DSW *area = area_owner.getornull(p_area);
+ Area3DSW *area = area_owner.get_or_null(p_area);
ERR_FAIL_COND_V(!area, ObjectID());
return area->get_instance_id();
}
void PhysicsServer3DSW::area_set_param(RID p_area, AreaParameter p_param, const Variant &p_value) {
if (space_owner.owns(p_area)) {
- Space3DSW *space = space_owner.getornull(p_area);
+ Space3DSW *space = space_owner.get_or_null(p_area);
p_area = space->get_default_area()->get_self();
}
- Area3DSW *area = area_owner.getornull(p_area);
+ Area3DSW *area = area_owner.get_or_null(p_area);
ERR_FAIL_COND(!area);
area->set_param(p_param, p_value);
};
void PhysicsServer3DSW::area_set_transform(RID p_area, const Transform3D &p_transform) {
- Area3DSW *area = area_owner.getornull(p_area);
+ Area3DSW *area = area_owner.get_or_null(p_area);
ERR_FAIL_COND(!area);
area->set_transform(p_transform);
};
Variant PhysicsServer3DSW::area_get_param(RID p_area, AreaParameter p_param) const {
if (space_owner.owns(p_area)) {
- Space3DSW *space = space_owner.getornull(p_area);
+ Space3DSW *space = space_owner.get_or_null(p_area);
p_area = space->get_default_area()->get_self();
}
- Area3DSW *area = area_owner.getornull(p_area);
+ Area3DSW *area = area_owner.get_or_null(p_area);
ERR_FAIL_COND_V(!area, Variant());
return area->get_param(p_param);
};
Transform3D PhysicsServer3DSW::area_get_transform(RID p_area) const {
- Area3DSW *area = area_owner.getornull(p_area);
+ Area3DSW *area = area_owner.get_or_null(p_area);
ERR_FAIL_COND_V(!area, Transform3D());
return area->get_transform();
};
void PhysicsServer3DSW::area_set_collision_layer(RID p_area, uint32_t p_layer) {
- Area3DSW *area = area_owner.getornull(p_area);
+ Area3DSW *area = area_owner.get_or_null(p_area);
ERR_FAIL_COND(!area);
area->set_collision_layer(p_layer);
}
void PhysicsServer3DSW::area_set_collision_mask(RID p_area, uint32_t p_mask) {
- Area3DSW *area = area_owner.getornull(p_area);
+ Area3DSW *area = area_owner.get_or_null(p_area);
ERR_FAIL_COND(!area);
area->set_collision_mask(p_mask);
}
void PhysicsServer3DSW::area_set_monitorable(RID p_area, bool p_monitorable) {
- Area3DSW *area = area_owner.getornull(p_area);
+ Area3DSW *area = area_owner.get_or_null(p_area);
ERR_FAIL_COND(!area);
FLUSH_QUERY_CHECK(area);
@@ -416,21 +416,21 @@ void PhysicsServer3DSW::area_set_monitorable(RID p_area, bool p_monitorable) {
}
void PhysicsServer3DSW::area_set_monitor_callback(RID p_area, Object *p_receiver, const StringName &p_method) {
- Area3DSW *area = area_owner.getornull(p_area);
+ Area3DSW *area = area_owner.get_or_null(p_area);
ERR_FAIL_COND(!area);
area->set_monitor_callback(p_receiver ? p_receiver->get_instance_id() : ObjectID(), p_method);
}
void PhysicsServer3DSW::area_set_ray_pickable(RID p_area, bool p_enable) {
- Area3DSW *area = area_owner.getornull(p_area);
+ Area3DSW *area = area_owner.get_or_null(p_area);
ERR_FAIL_COND(!area);
area->set_ray_pickable(p_enable);
}
void PhysicsServer3DSW::area_set_area_monitor_callback(RID p_area, Object *p_receiver, const StringName &p_method) {
- Area3DSW *area = area_owner.getornull(p_area);
+ Area3DSW *area = area_owner.get_or_null(p_area);
ERR_FAIL_COND(!area);
area->set_area_monitor_callback(p_receiver ? p_receiver->get_instance_id() : ObjectID(), p_method);
@@ -446,12 +446,12 @@ RID PhysicsServer3DSW::body_create() {
};
void PhysicsServer3DSW::body_set_space(RID p_body, RID p_space) {
- Body3DSW *body = body_owner.getornull(p_body);
+ Body3DSW *body = body_owner.get_or_null(p_body);
ERR_FAIL_COND(!body);
Space3DSW *space = nullptr;
if (p_space.is_valid()) {
- space = space_owner.getornull(p_space);
+ space = space_owner.get_or_null(p_space);
ERR_FAIL_COND(!space);
}
@@ -464,7 +464,7 @@ void PhysicsServer3DSW::body_set_space(RID p_body, RID p_space) {
};
RID PhysicsServer3DSW::body_get_space(RID p_body) const {
- Body3DSW *body = body_owner.getornull(p_body);
+ Body3DSW *body = body_owner.get_or_null(p_body);
ERR_FAIL_COND_V(!body, RID());
Space3DSW *space = body->get_space();
@@ -475,55 +475,55 @@ RID PhysicsServer3DSW::body_get_space(RID p_body) const {
};
void PhysicsServer3DSW::body_set_mode(RID p_body, BodyMode p_mode) {
- Body3DSW *body = body_owner.getornull(p_body);
+ Body3DSW *body = body_owner.get_or_null(p_body);
ERR_FAIL_COND(!body);
body->set_mode(p_mode);
};
PhysicsServer3D::BodyMode PhysicsServer3DSW::body_get_mode(RID p_body) const {
- Body3DSW *body = body_owner.getornull(p_body);
+ Body3DSW *body = body_owner.get_or_null(p_body);
ERR_FAIL_COND_V(!body, BODY_MODE_STATIC);
return body->get_mode();
};
void PhysicsServer3DSW::body_add_shape(RID p_body, RID p_shape, const Transform3D &p_transform, bool p_disabled) {
- Body3DSW *body = body_owner.getornull(p_body);
+ Body3DSW *body = body_owner.get_or_null(p_body);
ERR_FAIL_COND(!body);
- Shape3DSW *shape = shape_owner.getornull(p_shape);
+ Shape3DSW *shape = shape_owner.get_or_null(p_shape);
ERR_FAIL_COND(!shape);
body->add_shape(shape, p_transform, p_disabled);
}
void PhysicsServer3DSW::body_set_shape(RID p_body, int p_shape_idx, RID p_shape) {
- Body3DSW *body = body_owner.getornull(p_body);
+ Body3DSW *body = body_owner.get_or_null(p_body);
ERR_FAIL_COND(!body);
- Shape3DSW *shape = shape_owner.getornull(p_shape);
+ Shape3DSW *shape = shape_owner.get_or_null(p_shape);
ERR_FAIL_COND(!shape);
ERR_FAIL_COND(!shape->is_configured());
body->set_shape(p_shape_idx, shape);
}
void PhysicsServer3DSW::body_set_shape_transform(RID p_body, int p_shape_idx, const Transform3D &p_transform) {
- Body3DSW *body = body_owner.getornull(p_body);
+ Body3DSW *body = body_owner.get_or_null(p_body);
ERR_FAIL_COND(!body);
body->set_shape_transform(p_shape_idx, p_transform);
}
int PhysicsServer3DSW::body_get_shape_count(RID p_body) const {
- Body3DSW *body = body_owner.getornull(p_body);
+ Body3DSW *body = body_owner.get_or_null(p_body);
ERR_FAIL_COND_V(!body, -1);
return body->get_shape_count();
}
RID PhysicsServer3DSW::body_get_shape(RID p_body, int p_shape_idx) const {
- Body3DSW *body = body_owner.getornull(p_body);
+ Body3DSW *body = body_owner.get_or_null(p_body);
ERR_FAIL_COND_V(!body, RID());
Shape3DSW *shape = body->get_shape(p_shape_idx);
@@ -533,7 +533,7 @@ RID PhysicsServer3DSW::body_get_shape(RID p_body, int p_shape_idx) const {
}
void PhysicsServer3DSW::body_set_shape_disabled(RID p_body, int p_shape_idx, bool p_disabled) {
- Body3DSW *body = body_owner.getornull(p_body);
+ Body3DSW *body = body_owner.get_or_null(p_body);
ERR_FAIL_COND(!body);
ERR_FAIL_INDEX(p_shape_idx, body->get_shape_count());
FLUSH_QUERY_CHECK(body);
@@ -542,21 +542,21 @@ void PhysicsServer3DSW::body_set_shape_disabled(RID p_body, int p_shape_idx, boo
}
Transform3D PhysicsServer3DSW::body_get_shape_transform(RID p_body, int p_shape_idx) const {
- Body3DSW *body = body_owner.getornull(p_body);
+ Body3DSW *body = body_owner.get_or_null(p_body);
ERR_FAIL_COND_V(!body, Transform3D());
return body->get_shape_transform(p_shape_idx);
}
void PhysicsServer3DSW::body_remove_shape(RID p_body, int p_shape_idx) {
- Body3DSW *body = body_owner.getornull(p_body);
+ Body3DSW *body = body_owner.get_or_null(p_body);
ERR_FAIL_COND(!body);
body->remove_shape(p_shape_idx);
}
void PhysicsServer3DSW::body_clear_shapes(RID p_body) {
- Body3DSW *body = body_owner.getornull(p_body);
+ Body3DSW *body = body_owner.get_or_null(p_body);
ERR_FAIL_COND(!body);
while (body->get_shape_count()) {
@@ -565,21 +565,21 @@ void PhysicsServer3DSW::body_clear_shapes(RID p_body) {
}
void PhysicsServer3DSW::body_set_enable_continuous_collision_detection(RID p_body, bool p_enable) {
- Body3DSW *body = body_owner.getornull(p_body);
+ Body3DSW *body = body_owner.get_or_null(p_body);
ERR_FAIL_COND(!body);
body->set_continuous_collision_detection(p_enable);
}
bool PhysicsServer3DSW::body_is_continuous_collision_detection_enabled(RID p_body) const {
- Body3DSW *body = body_owner.getornull(p_body);
+ Body3DSW *body = body_owner.get_or_null(p_body);
ERR_FAIL_COND_V(!body, false);
return body->is_continuous_collision_detection_enabled();
}
void PhysicsServer3DSW::body_set_collision_layer(RID p_body, uint32_t p_layer) {
- Body3DSW *body = body_owner.getornull(p_body);
+ Body3DSW *body = body_owner.get_or_null(p_body);
ERR_FAIL_COND(!body);
body->set_collision_layer(p_layer);
@@ -587,14 +587,14 @@ void PhysicsServer3DSW::body_set_collision_layer(RID p_body, uint32_t p_layer) {
}
uint32_t PhysicsServer3DSW::body_get_collision_layer(RID p_body) const {
- const Body3DSW *body = body_owner.getornull(p_body);
+ const Body3DSW *body = body_owner.get_or_null(p_body);
ERR_FAIL_COND_V(!body, 0);
return body->get_collision_layer();
}
void PhysicsServer3DSW::body_set_collision_mask(RID p_body, uint32_t p_mask) {
- Body3DSW *body = body_owner.getornull(p_body);
+ Body3DSW *body = body_owner.get_or_null(p_body);
ERR_FAIL_COND(!body);
body->set_collision_mask(p_mask);
@@ -602,20 +602,20 @@ void PhysicsServer3DSW::body_set_collision_mask(RID p_body, uint32_t p_mask) {
}
uint32_t PhysicsServer3DSW::body_get_collision_mask(RID p_body) const {
- const Body3DSW *body = body_owner.getornull(p_body);
+ const Body3DSW *body = body_owner.get_or_null(p_body);
ERR_FAIL_COND_V(!body, 0);
return body->get_collision_mask();
}
void PhysicsServer3DSW::body_attach_object_instance_id(RID p_body, ObjectID p_id) {
- Body3DSW *body = body_owner.getornull(p_body);
+ Body3DSW *body = body_owner.get_or_null(p_body);
if (body) {
body->set_instance_id(p_id);
return;
}
- SoftBody3DSW *soft_body = soft_body_owner.getornull(p_body);
+ SoftBody3DSW *soft_body = soft_body_owner.get_or_null(p_body);
if (soft_body) {
soft_body->set_instance_id(p_id);
return;
@@ -625,61 +625,61 @@ void PhysicsServer3DSW::body_attach_object_instance_id(RID p_body, ObjectID p_id
};
ObjectID PhysicsServer3DSW::body_get_object_instance_id(RID p_body) const {
- Body3DSW *body = body_owner.getornull(p_body);
+ Body3DSW *body = body_owner.get_or_null(p_body);
ERR_FAIL_COND_V(!body, ObjectID());
return body->get_instance_id();
};
void PhysicsServer3DSW::body_set_user_flags(RID p_body, uint32_t p_flags) {
- Body3DSW *body = body_owner.getornull(p_body);
+ Body3DSW *body = body_owner.get_or_null(p_body);
ERR_FAIL_COND(!body);
};
uint32_t PhysicsServer3DSW::body_get_user_flags(RID p_body) const {
- Body3DSW *body = body_owner.getornull(p_body);
+ Body3DSW *body = body_owner.get_or_null(p_body);
ERR_FAIL_COND_V(!body, 0);
return 0;
};
void PhysicsServer3DSW::body_set_param(RID p_body, BodyParameter p_param, const Variant &p_value) {
- Body3DSW *body = body_owner.getornull(p_body);
+ Body3DSW *body = body_owner.get_or_null(p_body);
ERR_FAIL_COND(!body);
body->set_param(p_param, p_value);
};
Variant PhysicsServer3DSW::body_get_param(RID p_body, BodyParameter p_param) const {
- Body3DSW *body = body_owner.getornull(p_body);
+ Body3DSW *body = body_owner.get_or_null(p_body);
ERR_FAIL_COND_V(!body, 0);
return body->get_param(p_param);
};
void PhysicsServer3DSW::body_reset_mass_properties(RID p_body) {
- Body3DSW *body = body_owner.getornull(p_body);
+ Body3DSW *body = body_owner.get_or_null(p_body);
ERR_FAIL_COND(!body);
return body->reset_mass_properties();
}
void PhysicsServer3DSW::body_set_state(RID p_body, BodyState p_state, const Variant &p_variant) {
- Body3DSW *body = body_owner.getornull(p_body);
+ Body3DSW *body = body_owner.get_or_null(p_body);
ERR_FAIL_COND(!body);
body->set_state(p_state, p_variant);
};
Variant PhysicsServer3DSW::body_get_state(RID p_body, BodyState p_state) const {
- Body3DSW *body = body_owner.getornull(p_body);
+ Body3DSW *body = body_owner.get_or_null(p_body);
ERR_FAIL_COND_V(!body, Variant());
return body->get_state(p_state);
};
void PhysicsServer3DSW::body_set_applied_force(RID p_body, const Vector3 &p_force) {
- Body3DSW *body = body_owner.getornull(p_body);
+ Body3DSW *body = body_owner.get_or_null(p_body);
ERR_FAIL_COND(!body);
body->set_applied_force(p_force);
@@ -687,13 +687,13 @@ void PhysicsServer3DSW::body_set_applied_force(RID p_body, const Vector3 &p_forc
};
Vector3 PhysicsServer3DSW::body_get_applied_force(RID p_body) const {
- Body3DSW *body = body_owner.getornull(p_body);
+ Body3DSW *body = body_owner.get_or_null(p_body);
ERR_FAIL_COND_V(!body, Vector3());
return body->get_applied_force();
};
void PhysicsServer3DSW::body_set_applied_torque(RID p_body, const Vector3 &p_torque) {
- Body3DSW *body = body_owner.getornull(p_body);
+ Body3DSW *body = body_owner.get_or_null(p_body);
ERR_FAIL_COND(!body);
body->set_applied_torque(p_torque);
@@ -701,14 +701,14 @@ void PhysicsServer3DSW::body_set_applied_torque(RID p_body, const Vector3 &p_tor
};
Vector3 PhysicsServer3DSW::body_get_applied_torque(RID p_body) const {
- Body3DSW *body = body_owner.getornull(p_body);
+ Body3DSW *body = body_owner.get_or_null(p_body);
ERR_FAIL_COND_V(!body, Vector3());
return body->get_applied_torque();
};
void PhysicsServer3DSW::body_add_central_force(RID p_body, const Vector3 &p_force) {
- Body3DSW *body = body_owner.getornull(p_body);
+ Body3DSW *body = body_owner.get_or_null(p_body);
ERR_FAIL_COND(!body);
body->add_central_force(p_force);
@@ -716,7 +716,7 @@ void PhysicsServer3DSW::body_add_central_force(RID p_body, const Vector3 &p_forc
}
void PhysicsServer3DSW::body_add_force(RID p_body, const Vector3 &p_force, const Vector3 &p_position) {
- Body3DSW *body = body_owner.getornull(p_body);
+ Body3DSW *body = body_owner.get_or_null(p_body);
ERR_FAIL_COND(!body);
body->add_force(p_force, p_position);
@@ -724,7 +724,7 @@ void PhysicsServer3DSW::body_add_force(RID p_body, const Vector3 &p_force, const
};
void PhysicsServer3DSW::body_add_torque(RID p_body, const Vector3 &p_torque) {
- Body3DSW *body = body_owner.getornull(p_body);
+ Body3DSW *body = body_owner.get_or_null(p_body);
ERR_FAIL_COND(!body);
body->add_torque(p_torque);
@@ -732,7 +732,7 @@ void PhysicsServer3DSW::body_add_torque(RID p_body, const Vector3 &p_torque) {
};
void PhysicsServer3DSW::body_apply_central_impulse(RID p_body, const Vector3 &p_impulse) {
- Body3DSW *body = body_owner.getornull(p_body);
+ Body3DSW *body = body_owner.get_or_null(p_body);
ERR_FAIL_COND(!body);
_update_shapes();
@@ -742,7 +742,7 @@ void PhysicsServer3DSW::body_apply_central_impulse(RID p_body, const Vector3 &p_
}
void PhysicsServer3DSW::body_apply_impulse(RID p_body, const Vector3 &p_impulse, const Vector3 &p_position) {
- Body3DSW *body = body_owner.getornull(p_body);
+ Body3DSW *body = body_owner.get_or_null(p_body);
ERR_FAIL_COND(!body);
_update_shapes();
@@ -752,7 +752,7 @@ void PhysicsServer3DSW::body_apply_impulse(RID p_body, const Vector3 &p_impulse,
};
void PhysicsServer3DSW::body_apply_torque_impulse(RID p_body, const Vector3 &p_impulse) {
- Body3DSW *body = body_owner.getornull(p_body);
+ Body3DSW *body = body_owner.get_or_null(p_body);
ERR_FAIL_COND(!body);
_update_shapes();
@@ -762,7 +762,7 @@ void PhysicsServer3DSW::body_apply_torque_impulse(RID p_body, const Vector3 &p_i
};
void PhysicsServer3DSW::body_set_axis_velocity(RID p_body, const Vector3 &p_axis_velocity) {
- Body3DSW *body = body_owner.getornull(p_body);
+ Body3DSW *body = body_owner.get_or_null(p_body);
ERR_FAIL_COND(!body);
_update_shapes();
@@ -776,7 +776,7 @@ void PhysicsServer3DSW::body_set_axis_velocity(RID p_body, const Vector3 &p_axis
};
void PhysicsServer3DSW::body_set_axis_lock(RID p_body, BodyAxis p_axis, bool p_lock) {
- Body3DSW *body = body_owner.getornull(p_body);
+ Body3DSW *body = body_owner.get_or_null(p_body);
ERR_FAIL_COND(!body);
body->set_axis_lock(p_axis, p_lock);
@@ -784,13 +784,13 @@ void PhysicsServer3DSW::body_set_axis_lock(RID p_body, BodyAxis p_axis, bool p_l
}
bool PhysicsServer3DSW::body_is_axis_locked(RID p_body, BodyAxis p_axis) const {
- const Body3DSW *body = body_owner.getornull(p_body);
+ const Body3DSW *body = body_owner.get_or_null(p_body);
ERR_FAIL_COND_V(!body, 0);
return body->is_axis_locked(p_axis);
}
void PhysicsServer3DSW::body_add_collision_exception(RID p_body, RID p_body_b) {
- Body3DSW *body = body_owner.getornull(p_body);
+ Body3DSW *body = body_owner.get_or_null(p_body);
ERR_FAIL_COND(!body);
body->add_exception(p_body_b);
@@ -798,7 +798,7 @@ void PhysicsServer3DSW::body_add_collision_exception(RID p_body, RID p_body_b) {
};
void PhysicsServer3DSW::body_remove_collision_exception(RID p_body, RID p_body_b) {
- Body3DSW *body = body_owner.getornull(p_body);
+ Body3DSW *body = body_owner.get_or_null(p_body);
ERR_FAIL_COND(!body);
body->remove_exception(p_body_b);
@@ -806,7 +806,7 @@ void PhysicsServer3DSW::body_remove_collision_exception(RID p_body, RID p_body_b
};
void PhysicsServer3DSW::body_get_collision_exceptions(RID p_body, List<RID> *p_exceptions) {
- Body3DSW *body = body_owner.getornull(p_body);
+ Body3DSW *body = body_owner.get_or_null(p_body);
ERR_FAIL_COND(!body);
for (int i = 0; i < body->get_exceptions().size(); i++) {
@@ -815,74 +815,74 @@ void PhysicsServer3DSW::body_get_collision_exceptions(RID p_body, List<RID> *p_e
};
void PhysicsServer3DSW::body_set_contacts_reported_depth_threshold(RID p_body, real_t p_threshold) {
- Body3DSW *body = body_owner.getornull(p_body);
+ Body3DSW *body = body_owner.get_or_null(p_body);
ERR_FAIL_COND(!body);
};
real_t PhysicsServer3DSW::body_get_contacts_reported_depth_threshold(RID p_body) const {
- Body3DSW *body = body_owner.getornull(p_body);
+ Body3DSW *body = body_owner.get_or_null(p_body);
ERR_FAIL_COND_V(!body, 0);
return 0;
};
void PhysicsServer3DSW::body_set_omit_force_integration(RID p_body, bool p_omit) {
- Body3DSW *body = body_owner.getornull(p_body);
+ Body3DSW *body = body_owner.get_or_null(p_body);
ERR_FAIL_COND(!body);
body->set_omit_force_integration(p_omit);
};
bool PhysicsServer3DSW::body_is_omitting_force_integration(RID p_body) const {
- Body3DSW *body = body_owner.getornull(p_body);
+ Body3DSW *body = body_owner.get_or_null(p_body);
ERR_FAIL_COND_V(!body, false);
return body->get_omit_force_integration();
};
void PhysicsServer3DSW::body_set_max_contacts_reported(RID p_body, int p_contacts) {
- Body3DSW *body = body_owner.getornull(p_body);
+ Body3DSW *body = body_owner.get_or_null(p_body);
ERR_FAIL_COND(!body);
body->set_max_contacts_reported(p_contacts);
}
int PhysicsServer3DSW::body_get_max_contacts_reported(RID p_body) const {
- Body3DSW *body = body_owner.getornull(p_body);
+ Body3DSW *body = body_owner.get_or_null(p_body);
ERR_FAIL_COND_V(!body, -1);
return body->get_max_contacts_reported();
}
void PhysicsServer3DSW::body_set_state_sync_callback(RID p_body, void *p_instance, BodyStateCallback p_callback) {
- Body3DSW *body = body_owner.getornull(p_body);
+ Body3DSW *body = body_owner.get_or_null(p_body);
ERR_FAIL_COND(!body);
body->set_state_sync_callback(p_instance, p_callback);
}
void PhysicsServer3DSW::body_set_force_integration_callback(RID p_body, const Callable &p_callable, const Variant &p_udata) {
- Body3DSW *body = body_owner.getornull(p_body);
+ Body3DSW *body = body_owner.get_or_null(p_body);
ERR_FAIL_COND(!body);
body->set_force_integration_callback(p_callable, p_udata);
}
void PhysicsServer3DSW::body_set_ray_pickable(RID p_body, bool p_enable) {
- Body3DSW *body = body_owner.getornull(p_body);
+ Body3DSW *body = body_owner.get_or_null(p_body);
ERR_FAIL_COND(!body);
body->set_ray_pickable(p_enable);
}
-bool PhysicsServer3DSW::body_test_motion(RID p_body, const Transform3D &p_from, const Vector3 &p_motion, real_t p_margin, MotionResult *r_result, bool p_collide_separation_ray, const Set<RID> &p_exclude) {
- Body3DSW *body = body_owner.getornull(p_body);
+bool PhysicsServer3DSW::body_test_motion(RID p_body, const Transform3D &p_from, const Vector3 &p_motion, real_t p_margin, MotionResult *r_result, int p_max_collisions, bool p_collide_separation_ray, const Set<RID> &p_exclude) {
+ Body3DSW *body = body_owner.get_or_null(p_body);
ERR_FAIL_COND_V(!body, false);
ERR_FAIL_COND_V(!body->get_space(), false);
ERR_FAIL_COND_V(body->get_space()->is_locked(), false);
_update_shapes();
- return body->get_space()->test_body_motion(body, p_from, p_motion, p_margin, r_result, p_collide_separation_ray, p_exclude);
+ return body->get_space()->test_body_motion(body, p_from, p_motion, p_margin, r_result, p_max_collisions, p_collide_separation_ray, p_exclude);
}
PhysicsDirectBodyState3D *PhysicsServer3DSW::body_get_direct_state(RID p_body) {
ERR_FAIL_COND_V_MSG((using_threads && !doing_sync), nullptr, "Body state is inaccessible right now, wait for iteration or physics process notification.");
- Body3DSW *body = body_owner.getornull(p_body);
+ Body3DSW *body = body_owner.get_or_null(p_body);
ERR_FAIL_NULL_V(body, nullptr);
ERR_FAIL_NULL_V(body->get_space(), nullptr);
@@ -901,19 +901,19 @@ RID PhysicsServer3DSW::soft_body_create() {
}
void PhysicsServer3DSW::soft_body_update_rendering_server(RID p_body, RenderingServerHandler *p_rendering_server_handler) {
- SoftBody3DSW *soft_body = soft_body_owner.getornull(p_body);
+ SoftBody3DSW *soft_body = soft_body_owner.get_or_null(p_body);
ERR_FAIL_COND(!soft_body);
soft_body->update_rendering_server(p_rendering_server_handler);
}
void PhysicsServer3DSW::soft_body_set_space(RID p_body, RID p_space) {
- SoftBody3DSW *soft_body = soft_body_owner.getornull(p_body);
+ SoftBody3DSW *soft_body = soft_body_owner.get_or_null(p_body);
ERR_FAIL_COND(!soft_body);
Space3DSW *space = nullptr;
if (p_space.is_valid()) {
- space = space_owner.getornull(p_space);
+ space = space_owner.get_or_null(p_space);
ERR_FAIL_COND(!space);
}
@@ -925,7 +925,7 @@ void PhysicsServer3DSW::soft_body_set_space(RID p_body, RID p_space) {
}
RID PhysicsServer3DSW::soft_body_get_space(RID p_body) const {
- SoftBody3DSW *soft_body = soft_body_owner.getornull(p_body);
+ SoftBody3DSW *soft_body = soft_body_owner.get_or_null(p_body);
ERR_FAIL_COND_V(!soft_body, RID());
Space3DSW *space = soft_body->get_space();
@@ -936,49 +936,49 @@ RID PhysicsServer3DSW::soft_body_get_space(RID p_body) const {
}
void PhysicsServer3DSW::soft_body_set_collision_layer(RID p_body, uint32_t p_layer) {
- SoftBody3DSW *soft_body = soft_body_owner.getornull(p_body);
+ SoftBody3DSW *soft_body = soft_body_owner.get_or_null(p_body);
ERR_FAIL_COND(!soft_body);
soft_body->set_collision_layer(p_layer);
}
uint32_t PhysicsServer3DSW::soft_body_get_collision_layer(RID p_body) const {
- SoftBody3DSW *soft_body = soft_body_owner.getornull(p_body);
+ SoftBody3DSW *soft_body = soft_body_owner.get_or_null(p_body);
ERR_FAIL_COND_V(!soft_body, 0);
return soft_body->get_collision_layer();
}
void PhysicsServer3DSW::soft_body_set_collision_mask(RID p_body, uint32_t p_mask) {
- SoftBody3DSW *soft_body = soft_body_owner.getornull(p_body);
+ SoftBody3DSW *soft_body = soft_body_owner.get_or_null(p_body);
ERR_FAIL_COND(!soft_body);
soft_body->set_collision_mask(p_mask);
}
uint32_t PhysicsServer3DSW::soft_body_get_collision_mask(RID p_body) const {
- SoftBody3DSW *soft_body = soft_body_owner.getornull(p_body);
+ SoftBody3DSW *soft_body = soft_body_owner.get_or_null(p_body);
ERR_FAIL_COND_V(!soft_body, 0);
return soft_body->get_collision_mask();
}
void PhysicsServer3DSW::soft_body_add_collision_exception(RID p_body, RID p_body_b) {
- SoftBody3DSW *soft_body = soft_body_owner.getornull(p_body);
+ SoftBody3DSW *soft_body = soft_body_owner.get_or_null(p_body);
ERR_FAIL_COND(!soft_body);
soft_body->add_exception(p_body_b);
}
void PhysicsServer3DSW::soft_body_remove_collision_exception(RID p_body, RID p_body_b) {
- SoftBody3DSW *soft_body = soft_body_owner.getornull(p_body);
+ SoftBody3DSW *soft_body = soft_body_owner.get_or_null(p_body);
ERR_FAIL_COND(!soft_body);
soft_body->remove_exception(p_body_b);
}
void PhysicsServer3DSW::soft_body_get_collision_exceptions(RID p_body, List<RID> *p_exceptions) {
- SoftBody3DSW *soft_body = soft_body_owner.getornull(p_body);
+ SoftBody3DSW *soft_body = soft_body_owner.get_or_null(p_body);
ERR_FAIL_COND(!soft_body);
for (int i = 0; i < soft_body->get_exceptions().size(); i++) {
@@ -987,154 +987,154 @@ void PhysicsServer3DSW::soft_body_get_collision_exceptions(RID p_body, List<RID>
}
void PhysicsServer3DSW::soft_body_set_state(RID p_body, BodyState p_state, const Variant &p_variant) {
- SoftBody3DSW *soft_body = soft_body_owner.getornull(p_body);
+ SoftBody3DSW *soft_body = soft_body_owner.get_or_null(p_body);
ERR_FAIL_COND(!soft_body);
soft_body->set_state(p_state, p_variant);
}
Variant PhysicsServer3DSW::soft_body_get_state(RID p_body, BodyState p_state) const {
- SoftBody3DSW *soft_body = soft_body_owner.getornull(p_body);
+ SoftBody3DSW *soft_body = soft_body_owner.get_or_null(p_body);
ERR_FAIL_COND_V(!soft_body, Variant());
return soft_body->get_state(p_state);
}
void PhysicsServer3DSW::soft_body_set_transform(RID p_body, const Transform3D &p_transform) {
- SoftBody3DSW *soft_body = soft_body_owner.getornull(p_body);
+ SoftBody3DSW *soft_body = soft_body_owner.get_or_null(p_body);
ERR_FAIL_COND(!soft_body);
soft_body->set_state(BODY_STATE_TRANSFORM, p_transform);
}
void PhysicsServer3DSW::soft_body_set_ray_pickable(RID p_body, bool p_enable) {
- SoftBody3DSW *soft_body = soft_body_owner.getornull(p_body);
+ SoftBody3DSW *soft_body = soft_body_owner.get_or_null(p_body);
ERR_FAIL_COND(!soft_body);
soft_body->set_ray_pickable(p_enable);
}
void PhysicsServer3DSW::soft_body_set_simulation_precision(RID p_body, int p_simulation_precision) {
- SoftBody3DSW *soft_body = soft_body_owner.getornull(p_body);
+ SoftBody3DSW *soft_body = soft_body_owner.get_or_null(p_body);
ERR_FAIL_COND(!soft_body);
soft_body->set_iteration_count(p_simulation_precision);
}
int PhysicsServer3DSW::soft_body_get_simulation_precision(RID p_body) const {
- SoftBody3DSW *soft_body = soft_body_owner.getornull(p_body);
+ SoftBody3DSW *soft_body = soft_body_owner.get_or_null(p_body);
ERR_FAIL_COND_V(!soft_body, 0.f);
return soft_body->get_iteration_count();
}
void PhysicsServer3DSW::soft_body_set_total_mass(RID p_body, real_t p_total_mass) {
- SoftBody3DSW *soft_body = soft_body_owner.getornull(p_body);
+ SoftBody3DSW *soft_body = soft_body_owner.get_or_null(p_body);
ERR_FAIL_COND(!soft_body);
soft_body->set_total_mass(p_total_mass);
}
real_t PhysicsServer3DSW::soft_body_get_total_mass(RID p_body) const {
- SoftBody3DSW *soft_body = soft_body_owner.getornull(p_body);
+ SoftBody3DSW *soft_body = soft_body_owner.get_or_null(p_body);
ERR_FAIL_COND_V(!soft_body, 0.f);
return soft_body->get_total_mass();
}
void PhysicsServer3DSW::soft_body_set_linear_stiffness(RID p_body, real_t p_stiffness) {
- SoftBody3DSW *soft_body = soft_body_owner.getornull(p_body);
+ SoftBody3DSW *soft_body = soft_body_owner.get_or_null(p_body);
ERR_FAIL_COND(!soft_body);
soft_body->set_linear_stiffness(p_stiffness);
}
real_t PhysicsServer3DSW::soft_body_get_linear_stiffness(RID p_body) const {
- SoftBody3DSW *soft_body = soft_body_owner.getornull(p_body);
+ SoftBody3DSW *soft_body = soft_body_owner.get_or_null(p_body);
ERR_FAIL_COND_V(!soft_body, 0.f);
return soft_body->get_linear_stiffness();
}
void PhysicsServer3DSW::soft_body_set_pressure_coefficient(RID p_body, real_t p_pressure_coefficient) {
- SoftBody3DSW *soft_body = soft_body_owner.getornull(p_body);
+ SoftBody3DSW *soft_body = soft_body_owner.get_or_null(p_body);
ERR_FAIL_COND(!soft_body);
soft_body->set_pressure_coefficient(p_pressure_coefficient);
}
real_t PhysicsServer3DSW::soft_body_get_pressure_coefficient(RID p_body) const {
- SoftBody3DSW *soft_body = soft_body_owner.getornull(p_body);
+ SoftBody3DSW *soft_body = soft_body_owner.get_or_null(p_body);
ERR_FAIL_COND_V(!soft_body, 0.f);
return soft_body->get_pressure_coefficient();
}
void PhysicsServer3DSW::soft_body_set_damping_coefficient(RID p_body, real_t p_damping_coefficient) {
- SoftBody3DSW *soft_body = soft_body_owner.getornull(p_body);
+ SoftBody3DSW *soft_body = soft_body_owner.get_or_null(p_body);
ERR_FAIL_COND(!soft_body);
soft_body->set_damping_coefficient(p_damping_coefficient);
}
real_t PhysicsServer3DSW::soft_body_get_damping_coefficient(RID p_body) const {
- SoftBody3DSW *soft_body = soft_body_owner.getornull(p_body);
+ SoftBody3DSW *soft_body = soft_body_owner.get_or_null(p_body);
ERR_FAIL_COND_V(!soft_body, 0.f);
return soft_body->get_damping_coefficient();
}
void PhysicsServer3DSW::soft_body_set_drag_coefficient(RID p_body, real_t p_drag_coefficient) {
- SoftBody3DSW *soft_body = soft_body_owner.getornull(p_body);
+ SoftBody3DSW *soft_body = soft_body_owner.get_or_null(p_body);
ERR_FAIL_COND(!soft_body);
soft_body->set_drag_coefficient(p_drag_coefficient);
}
real_t PhysicsServer3DSW::soft_body_get_drag_coefficient(RID p_body) const {
- SoftBody3DSW *soft_body = soft_body_owner.getornull(p_body);
+ SoftBody3DSW *soft_body = soft_body_owner.get_or_null(p_body);
ERR_FAIL_COND_V(!soft_body, 0.f);
return soft_body->get_drag_coefficient();
}
void PhysicsServer3DSW::soft_body_set_mesh(RID p_body, const REF &p_mesh) {
- SoftBody3DSW *soft_body = soft_body_owner.getornull(p_body);
+ SoftBody3DSW *soft_body = soft_body_owner.get_or_null(p_body);
ERR_FAIL_COND(!soft_body);
soft_body->set_mesh(p_mesh);
}
AABB PhysicsServer3DSW::soft_body_get_bounds(RID p_body) const {
- SoftBody3DSW *soft_body = soft_body_owner.getornull(p_body);
+ SoftBody3DSW *soft_body = soft_body_owner.get_or_null(p_body);
ERR_FAIL_COND_V(!soft_body, AABB());
return soft_body->get_bounds();
}
void PhysicsServer3DSW::soft_body_move_point(RID p_body, int p_point_index, const Vector3 &p_global_position) {
- SoftBody3DSW *soft_body = soft_body_owner.getornull(p_body);
+ SoftBody3DSW *soft_body = soft_body_owner.get_or_null(p_body);
ERR_FAIL_COND(!soft_body);
soft_body->set_vertex_position(p_point_index, p_global_position);
}
Vector3 PhysicsServer3DSW::soft_body_get_point_global_position(RID p_body, int p_point_index) const {
- SoftBody3DSW *soft_body = soft_body_owner.getornull(p_body);
+ SoftBody3DSW *soft_body = soft_body_owner.get_or_null(p_body);
ERR_FAIL_COND_V(!soft_body, Vector3());
return soft_body->get_vertex_position(p_point_index);
}
void PhysicsServer3DSW::soft_body_remove_all_pinned_points(RID p_body) {
- SoftBody3DSW *soft_body = soft_body_owner.getornull(p_body);
+ SoftBody3DSW *soft_body = soft_body_owner.get_or_null(p_body);
ERR_FAIL_COND(!soft_body);
soft_body->unpin_all_vertices();
}
void PhysicsServer3DSW::soft_body_pin_point(RID p_body, int p_point_index, bool p_pin) {
- SoftBody3DSW *soft_body = soft_body_owner.getornull(p_body);
+ SoftBody3DSW *soft_body = soft_body_owner.get_or_null(p_body);
ERR_FAIL_COND(!soft_body);
if (p_pin) {
@@ -1145,7 +1145,7 @@ void PhysicsServer3DSW::soft_body_pin_point(RID p_body, int p_point_index, bool
}
bool PhysicsServer3DSW::soft_body_is_point_pinned(RID p_body, int p_point_index) const {
- SoftBody3DSW *soft_body = soft_body_owner.getornull(p_body);
+ SoftBody3DSW *soft_body = soft_body_owner.get_or_null(p_body);
ERR_FAIL_COND_V(!soft_body, false);
return soft_body->is_vertex_pinned(p_point_index);
@@ -1161,7 +1161,7 @@ RID PhysicsServer3DSW::joint_create() {
}
void PhysicsServer3DSW::joint_clear(RID p_joint) {
- Joint3DSW *joint = joint_owner.getornull(p_joint);
+ Joint3DSW *joint = joint_owner.get_or_null(p_joint);
if (joint->get_type() != JOINT_TYPE_MAX) {
Joint3DSW *empty_joint = memnew(Joint3DSW);
empty_joint->copy_settings_from(joint);
@@ -1172,7 +1172,7 @@ void PhysicsServer3DSW::joint_clear(RID p_joint) {
}
void PhysicsServer3DSW::joint_make_pin(RID p_joint, RID p_body_A, const Vector3 &p_local_A, RID p_body_B, const Vector3 &p_local_B) {
- Body3DSW *body_A = body_owner.getornull(p_body_A);
+ Body3DSW *body_A = body_owner.get_or_null(p_body_A);
ERR_FAIL_COND(!body_A);
if (!p_body_B.is_valid()) {
@@ -1180,12 +1180,12 @@ void PhysicsServer3DSW::joint_make_pin(RID p_joint, RID p_body_A, const Vector3
p_body_B = body_A->get_space()->get_static_global_body();
}
- Body3DSW *body_B = body_owner.getornull(p_body_B);
+ Body3DSW *body_B = body_owner.get_or_null(p_body_B);
ERR_FAIL_COND(!body_B);
ERR_FAIL_COND(body_A == body_B);
- Joint3DSW *prev_joint = joint_owner.getornull(p_joint);
+ Joint3DSW *prev_joint = joint_owner.get_or_null(p_joint);
ERR_FAIL_COND(prev_joint == nullptr);
Joint3DSW *joint = memnew(PinJoint3DSW(body_A, p_local_A, body_B, p_local_B));
@@ -1196,7 +1196,7 @@ void PhysicsServer3DSW::joint_make_pin(RID p_joint, RID p_body_A, const Vector3
}
void PhysicsServer3DSW::pin_joint_set_param(RID p_joint, PinJointParam p_param, real_t p_value) {
- Joint3DSW *joint = joint_owner.getornull(p_joint);
+ Joint3DSW *joint = joint_owner.get_or_null(p_joint);
ERR_FAIL_COND(!joint);
ERR_FAIL_COND(joint->get_type() != JOINT_TYPE_PIN);
PinJoint3DSW *pin_joint = static_cast<PinJoint3DSW *>(joint);
@@ -1204,7 +1204,7 @@ void PhysicsServer3DSW::pin_joint_set_param(RID p_joint, PinJointParam p_param,
}
real_t PhysicsServer3DSW::pin_joint_get_param(RID p_joint, PinJointParam p_param) const {
- Joint3DSW *joint = joint_owner.getornull(p_joint);
+ Joint3DSW *joint = joint_owner.get_or_null(p_joint);
ERR_FAIL_COND_V(!joint, 0);
ERR_FAIL_COND_V(joint->get_type() != JOINT_TYPE_PIN, 0);
PinJoint3DSW *pin_joint = static_cast<PinJoint3DSW *>(joint);
@@ -1212,7 +1212,7 @@ real_t PhysicsServer3DSW::pin_joint_get_param(RID p_joint, PinJointParam p_param
}
void PhysicsServer3DSW::pin_joint_set_local_a(RID p_joint, const Vector3 &p_A) {
- Joint3DSW *joint = joint_owner.getornull(p_joint);
+ Joint3DSW *joint = joint_owner.get_or_null(p_joint);
ERR_FAIL_COND(!joint);
ERR_FAIL_COND(joint->get_type() != JOINT_TYPE_PIN);
PinJoint3DSW *pin_joint = static_cast<PinJoint3DSW *>(joint);
@@ -1220,7 +1220,7 @@ void PhysicsServer3DSW::pin_joint_set_local_a(RID p_joint, const Vector3 &p_A) {
}
Vector3 PhysicsServer3DSW::pin_joint_get_local_a(RID p_joint) const {
- Joint3DSW *joint = joint_owner.getornull(p_joint);
+ Joint3DSW *joint = joint_owner.get_or_null(p_joint);
ERR_FAIL_COND_V(!joint, Vector3());
ERR_FAIL_COND_V(joint->get_type() != JOINT_TYPE_PIN, Vector3());
PinJoint3DSW *pin_joint = static_cast<PinJoint3DSW *>(joint);
@@ -1228,7 +1228,7 @@ Vector3 PhysicsServer3DSW::pin_joint_get_local_a(RID p_joint) const {
}
void PhysicsServer3DSW::pin_joint_set_local_b(RID p_joint, const Vector3 &p_B) {
- Joint3DSW *joint = joint_owner.getornull(p_joint);
+ Joint3DSW *joint = joint_owner.get_or_null(p_joint);
ERR_FAIL_COND(!joint);
ERR_FAIL_COND(joint->get_type() != JOINT_TYPE_PIN);
PinJoint3DSW *pin_joint = static_cast<PinJoint3DSW *>(joint);
@@ -1236,7 +1236,7 @@ void PhysicsServer3DSW::pin_joint_set_local_b(RID p_joint, const Vector3 &p_B) {
}
Vector3 PhysicsServer3DSW::pin_joint_get_local_b(RID p_joint) const {
- Joint3DSW *joint = joint_owner.getornull(p_joint);
+ Joint3DSW *joint = joint_owner.get_or_null(p_joint);
ERR_FAIL_COND_V(!joint, Vector3());
ERR_FAIL_COND_V(joint->get_type() != JOINT_TYPE_PIN, Vector3());
PinJoint3DSW *pin_joint = static_cast<PinJoint3DSW *>(joint);
@@ -1244,7 +1244,7 @@ Vector3 PhysicsServer3DSW::pin_joint_get_local_b(RID p_joint) const {
}
void PhysicsServer3DSW::joint_make_hinge(RID p_joint, RID p_body_A, const Transform3D &p_frame_A, RID p_body_B, const Transform3D &p_frame_B) {
- Body3DSW *body_A = body_owner.getornull(p_body_A);
+ Body3DSW *body_A = body_owner.get_or_null(p_body_A);
ERR_FAIL_COND(!body_A);
if (!p_body_B.is_valid()) {
@@ -1252,12 +1252,12 @@ void PhysicsServer3DSW::joint_make_hinge(RID p_joint, RID p_body_A, const Transf
p_body_B = body_A->get_space()->get_static_global_body();
}
- Body3DSW *body_B = body_owner.getornull(p_body_B);
+ Body3DSW *body_B = body_owner.get_or_null(p_body_B);
ERR_FAIL_COND(!body_B);
ERR_FAIL_COND(body_A == body_B);
- Joint3DSW *prev_joint = joint_owner.getornull(p_joint);
+ Joint3DSW *prev_joint = joint_owner.get_or_null(p_joint);
ERR_FAIL_COND(prev_joint == nullptr);
Joint3DSW *joint = memnew(HingeJoint3DSW(body_A, body_B, p_frame_A, p_frame_B));
@@ -1268,7 +1268,7 @@ void PhysicsServer3DSW::joint_make_hinge(RID p_joint, RID p_body_A, const Transf
}
void PhysicsServer3DSW::joint_make_hinge_simple(RID p_joint, RID p_body_A, const Vector3 &p_pivot_A, const Vector3 &p_axis_A, RID p_body_B, const Vector3 &p_pivot_B, const Vector3 &p_axis_B) {
- Body3DSW *body_A = body_owner.getornull(p_body_A);
+ Body3DSW *body_A = body_owner.get_or_null(p_body_A);
ERR_FAIL_COND(!body_A);
if (!p_body_B.is_valid()) {
@@ -1276,12 +1276,12 @@ void PhysicsServer3DSW::joint_make_hinge_simple(RID p_joint, RID p_body_A, const
p_body_B = body_A->get_space()->get_static_global_body();
}
- Body3DSW *body_B = body_owner.getornull(p_body_B);
+ Body3DSW *body_B = body_owner.get_or_null(p_body_B);
ERR_FAIL_COND(!body_B);
ERR_FAIL_COND(body_A == body_B);
- Joint3DSW *prev_joint = joint_owner.getornull(p_joint);
+ Joint3DSW *prev_joint = joint_owner.get_or_null(p_joint);
ERR_FAIL_COND(prev_joint == nullptr);
Joint3DSW *joint = memnew(HingeJoint3DSW(body_A, body_B, p_pivot_A, p_pivot_B, p_axis_A, p_axis_B));
@@ -1292,7 +1292,7 @@ void PhysicsServer3DSW::joint_make_hinge_simple(RID p_joint, RID p_body_A, const
}
void PhysicsServer3DSW::hinge_joint_set_param(RID p_joint, HingeJointParam p_param, real_t p_value) {
- Joint3DSW *joint = joint_owner.getornull(p_joint);
+ Joint3DSW *joint = joint_owner.get_or_null(p_joint);
ERR_FAIL_COND(!joint);
ERR_FAIL_COND(joint->get_type() != JOINT_TYPE_HINGE);
HingeJoint3DSW *hinge_joint = static_cast<HingeJoint3DSW *>(joint);
@@ -1300,7 +1300,7 @@ void PhysicsServer3DSW::hinge_joint_set_param(RID p_joint, HingeJointParam p_par
}
real_t PhysicsServer3DSW::hinge_joint_get_param(RID p_joint, HingeJointParam p_param) const {
- Joint3DSW *joint = joint_owner.getornull(p_joint);
+ Joint3DSW *joint = joint_owner.get_or_null(p_joint);
ERR_FAIL_COND_V(!joint, 0);
ERR_FAIL_COND_V(joint->get_type() != JOINT_TYPE_HINGE, 0);
HingeJoint3DSW *hinge_joint = static_cast<HingeJoint3DSW *>(joint);
@@ -1308,7 +1308,7 @@ real_t PhysicsServer3DSW::hinge_joint_get_param(RID p_joint, HingeJointParam p_p
}
void PhysicsServer3DSW::hinge_joint_set_flag(RID p_joint, HingeJointFlag p_flag, bool p_value) {
- Joint3DSW *joint = joint_owner.getornull(p_joint);
+ Joint3DSW *joint = joint_owner.get_or_null(p_joint);
ERR_FAIL_COND(!joint);
ERR_FAIL_COND(joint->get_type() != JOINT_TYPE_HINGE);
HingeJoint3DSW *hinge_joint = static_cast<HingeJoint3DSW *>(joint);
@@ -1316,7 +1316,7 @@ void PhysicsServer3DSW::hinge_joint_set_flag(RID p_joint, HingeJointFlag p_flag,
}
bool PhysicsServer3DSW::hinge_joint_get_flag(RID p_joint, HingeJointFlag p_flag) const {
- Joint3DSW *joint = joint_owner.getornull(p_joint);
+ Joint3DSW *joint = joint_owner.get_or_null(p_joint);
ERR_FAIL_COND_V(!joint, false);
ERR_FAIL_COND_V(joint->get_type() != JOINT_TYPE_HINGE, false);
HingeJoint3DSW *hinge_joint = static_cast<HingeJoint3DSW *>(joint);
@@ -1324,19 +1324,19 @@ bool PhysicsServer3DSW::hinge_joint_get_flag(RID p_joint, HingeJointFlag p_flag)
}
void PhysicsServer3DSW::joint_set_solver_priority(RID p_joint, int p_priority) {
- Joint3DSW *joint = joint_owner.getornull(p_joint);
+ Joint3DSW *joint = joint_owner.get_or_null(p_joint);
ERR_FAIL_COND(!joint);
joint->set_priority(p_priority);
}
int PhysicsServer3DSW::joint_get_solver_priority(RID p_joint) const {
- Joint3DSW *joint = joint_owner.getornull(p_joint);
+ Joint3DSW *joint = joint_owner.get_or_null(p_joint);
ERR_FAIL_COND_V(!joint, 0);
return joint->get_priority();
}
void PhysicsServer3DSW::joint_disable_collisions_between_bodies(RID p_joint, const bool p_disable) {
- Joint3DSW *joint = joint_owner.getornull(p_joint);
+ Joint3DSW *joint = joint_owner.get_or_null(p_joint);
ERR_FAIL_COND(!joint);
joint->disable_collisions_between_bodies(p_disable);
@@ -1356,20 +1356,20 @@ void PhysicsServer3DSW::joint_disable_collisions_between_bodies(RID p_joint, con
}
bool PhysicsServer3DSW::joint_is_disabled_collisions_between_bodies(RID p_joint) const {
- Joint3DSW *joint = joint_owner.getornull(p_joint);
+ Joint3DSW *joint = joint_owner.get_or_null(p_joint);
ERR_FAIL_COND_V(!joint, true);
return joint->is_disabled_collisions_between_bodies();
}
PhysicsServer3DSW::JointType PhysicsServer3DSW::joint_get_type(RID p_joint) const {
- Joint3DSW *joint = joint_owner.getornull(p_joint);
+ Joint3DSW *joint = joint_owner.get_or_null(p_joint);
ERR_FAIL_COND_V(!joint, JOINT_TYPE_PIN);
return joint->get_type();
}
void PhysicsServer3DSW::joint_make_slider(RID p_joint, RID p_body_A, const Transform3D &p_local_frame_A, RID p_body_B, const Transform3D &p_local_frame_B) {
- Body3DSW *body_A = body_owner.getornull(p_body_A);
+ Body3DSW *body_A = body_owner.get_or_null(p_body_A);
ERR_FAIL_COND(!body_A);
if (!p_body_B.is_valid()) {
@@ -1377,12 +1377,12 @@ void PhysicsServer3DSW::joint_make_slider(RID p_joint, RID p_body_A, const Trans
p_body_B = body_A->get_space()->get_static_global_body();
}
- Body3DSW *body_B = body_owner.getornull(p_body_B);
+ Body3DSW *body_B = body_owner.get_or_null(p_body_B);
ERR_FAIL_COND(!body_B);
ERR_FAIL_COND(body_A == body_B);
- Joint3DSW *prev_joint = joint_owner.getornull(p_joint);
+ Joint3DSW *prev_joint = joint_owner.get_or_null(p_joint);
ERR_FAIL_COND(prev_joint == nullptr);
Joint3DSW *joint = memnew(SliderJoint3DSW(body_A, body_B, p_local_frame_A, p_local_frame_B));
@@ -1393,7 +1393,7 @@ void PhysicsServer3DSW::joint_make_slider(RID p_joint, RID p_body_A, const Trans
}
void PhysicsServer3DSW::slider_joint_set_param(RID p_joint, SliderJointParam p_param, real_t p_value) {
- Joint3DSW *joint = joint_owner.getornull(p_joint);
+ Joint3DSW *joint = joint_owner.get_or_null(p_joint);
ERR_FAIL_COND(!joint);
ERR_FAIL_COND(joint->get_type() != JOINT_TYPE_SLIDER);
SliderJoint3DSW *slider_joint = static_cast<SliderJoint3DSW *>(joint);
@@ -1401,7 +1401,7 @@ void PhysicsServer3DSW::slider_joint_set_param(RID p_joint, SliderJointParam p_p
}
real_t PhysicsServer3DSW::slider_joint_get_param(RID p_joint, SliderJointParam p_param) const {
- Joint3DSW *joint = joint_owner.getornull(p_joint);
+ Joint3DSW *joint = joint_owner.get_or_null(p_joint);
ERR_FAIL_COND_V(!joint, 0);
ERR_FAIL_COND_V(joint->get_type() != JOINT_TYPE_CONE_TWIST, 0);
SliderJoint3DSW *slider_joint = static_cast<SliderJoint3DSW *>(joint);
@@ -1409,7 +1409,7 @@ real_t PhysicsServer3DSW::slider_joint_get_param(RID p_joint, SliderJointParam p
}
void PhysicsServer3DSW::joint_make_cone_twist(RID p_joint, RID p_body_A, const Transform3D &p_local_frame_A, RID p_body_B, const Transform3D &p_local_frame_B) {
- Body3DSW *body_A = body_owner.getornull(p_body_A);
+ Body3DSW *body_A = body_owner.get_or_null(p_body_A);
ERR_FAIL_COND(!body_A);
if (!p_body_B.is_valid()) {
@@ -1417,12 +1417,12 @@ void PhysicsServer3DSW::joint_make_cone_twist(RID p_joint, RID p_body_A, const T
p_body_B = body_A->get_space()->get_static_global_body();
}
- Body3DSW *body_B = body_owner.getornull(p_body_B);
+ Body3DSW *body_B = body_owner.get_or_null(p_body_B);
ERR_FAIL_COND(!body_B);
ERR_FAIL_COND(body_A == body_B);
- Joint3DSW *prev_joint = joint_owner.getornull(p_joint);
+ Joint3DSW *prev_joint = joint_owner.get_or_null(p_joint);
ERR_FAIL_COND(prev_joint == nullptr);
Joint3DSW *joint = memnew(ConeTwistJoint3DSW(body_A, body_B, p_local_frame_A, p_local_frame_B));
@@ -1433,7 +1433,7 @@ void PhysicsServer3DSW::joint_make_cone_twist(RID p_joint, RID p_body_A, const T
}
void PhysicsServer3DSW::cone_twist_joint_set_param(RID p_joint, ConeTwistJointParam p_param, real_t p_value) {
- Joint3DSW *joint = joint_owner.getornull(p_joint);
+ Joint3DSW *joint = joint_owner.get_or_null(p_joint);
ERR_FAIL_COND(!joint);
ERR_FAIL_COND(joint->get_type() != JOINT_TYPE_CONE_TWIST);
ConeTwistJoint3DSW *cone_twist_joint = static_cast<ConeTwistJoint3DSW *>(joint);
@@ -1441,7 +1441,7 @@ void PhysicsServer3DSW::cone_twist_joint_set_param(RID p_joint, ConeTwistJointPa
}
real_t PhysicsServer3DSW::cone_twist_joint_get_param(RID p_joint, ConeTwistJointParam p_param) const {
- Joint3DSW *joint = joint_owner.getornull(p_joint);
+ Joint3DSW *joint = joint_owner.get_or_null(p_joint);
ERR_FAIL_COND_V(!joint, 0);
ERR_FAIL_COND_V(joint->get_type() != JOINT_TYPE_CONE_TWIST, 0);
ConeTwistJoint3DSW *cone_twist_joint = static_cast<ConeTwistJoint3DSW *>(joint);
@@ -1449,7 +1449,7 @@ real_t PhysicsServer3DSW::cone_twist_joint_get_param(RID p_joint, ConeTwistJoint
}
void PhysicsServer3DSW::joint_make_generic_6dof(RID p_joint, RID p_body_A, const Transform3D &p_local_frame_A, RID p_body_B, const Transform3D &p_local_frame_B) {
- Body3DSW *body_A = body_owner.getornull(p_body_A);
+ Body3DSW *body_A = body_owner.get_or_null(p_body_A);
ERR_FAIL_COND(!body_A);
if (!p_body_B.is_valid()) {
@@ -1457,12 +1457,12 @@ void PhysicsServer3DSW::joint_make_generic_6dof(RID p_joint, RID p_body_A, const
p_body_B = body_A->get_space()->get_static_global_body();
}
- Body3DSW *body_B = body_owner.getornull(p_body_B);
+ Body3DSW *body_B = body_owner.get_or_null(p_body_B);
ERR_FAIL_COND(!body_B);
ERR_FAIL_COND(body_A == body_B);
- Joint3DSW *prev_joint = joint_owner.getornull(p_joint);
+ Joint3DSW *prev_joint = joint_owner.get_or_null(p_joint);
ERR_FAIL_COND(prev_joint == nullptr);
Joint3DSW *joint = memnew(Generic6DOFJoint3DSW(body_A, body_B, p_local_frame_A, p_local_frame_B, true));
@@ -1473,7 +1473,7 @@ void PhysicsServer3DSW::joint_make_generic_6dof(RID p_joint, RID p_body_A, const
}
void PhysicsServer3DSW::generic_6dof_joint_set_param(RID p_joint, Vector3::Axis p_axis, G6DOFJointAxisParam p_param, real_t p_value) {
- Joint3DSW *joint = joint_owner.getornull(p_joint);
+ Joint3DSW *joint = joint_owner.get_or_null(p_joint);
ERR_FAIL_COND(!joint);
ERR_FAIL_COND(joint->get_type() != JOINT_TYPE_6DOF);
Generic6DOFJoint3DSW *generic_6dof_joint = static_cast<Generic6DOFJoint3DSW *>(joint);
@@ -1481,7 +1481,7 @@ void PhysicsServer3DSW::generic_6dof_joint_set_param(RID p_joint, Vector3::Axis
}
real_t PhysicsServer3DSW::generic_6dof_joint_get_param(RID p_joint, Vector3::Axis p_axis, G6DOFJointAxisParam p_param) const {
- Joint3DSW *joint = joint_owner.getornull(p_joint);
+ Joint3DSW *joint = joint_owner.get_or_null(p_joint);
ERR_FAIL_COND_V(!joint, 0);
ERR_FAIL_COND_V(joint->get_type() != JOINT_TYPE_6DOF, 0);
Generic6DOFJoint3DSW *generic_6dof_joint = static_cast<Generic6DOFJoint3DSW *>(joint);
@@ -1489,7 +1489,7 @@ real_t PhysicsServer3DSW::generic_6dof_joint_get_param(RID p_joint, Vector3::Axi
}
void PhysicsServer3DSW::generic_6dof_joint_set_flag(RID p_joint, Vector3::Axis p_axis, G6DOFJointAxisFlag p_flag, bool p_enable) {
- Joint3DSW *joint = joint_owner.getornull(p_joint);
+ Joint3DSW *joint = joint_owner.get_or_null(p_joint);
ERR_FAIL_COND(!joint);
ERR_FAIL_COND(joint->get_type() != JOINT_TYPE_6DOF);
Generic6DOFJoint3DSW *generic_6dof_joint = static_cast<Generic6DOFJoint3DSW *>(joint);
@@ -1497,7 +1497,7 @@ void PhysicsServer3DSW::generic_6dof_joint_set_flag(RID p_joint, Vector3::Axis p
}
bool PhysicsServer3DSW::generic_6dof_joint_get_flag(RID p_joint, Vector3::Axis p_axis, G6DOFJointAxisFlag p_flag) const {
- Joint3DSW *joint = joint_owner.getornull(p_joint);
+ Joint3DSW *joint = joint_owner.get_or_null(p_joint);
ERR_FAIL_COND_V(!joint, false);
ERR_FAIL_COND_V(joint->get_type() != JOINT_TYPE_6DOF, false);
Generic6DOFJoint3DSW *generic_6dof_joint = static_cast<Generic6DOFJoint3DSW *>(joint);
@@ -1508,7 +1508,7 @@ void PhysicsServer3DSW::free(RID p_rid) {
_update_shapes(); //just in case
if (shape_owner.owns(p_rid)) {
- Shape3DSW *shape = shape_owner.getornull(p_rid);
+ Shape3DSW *shape = shape_owner.get_or_null(p_rid);
while (shape->get_owners().size()) {
ShapeOwner3DSW *so = shape->get_owners().front()->key();
@@ -1518,7 +1518,7 @@ void PhysicsServer3DSW::free(RID p_rid) {
shape_owner.free(p_rid);
memdelete(shape);
} else if (body_owner.owns(p_rid)) {
- Body3DSW *body = body_owner.getornull(p_rid);
+ Body3DSW *body = body_owner.get_or_null(p_rid);
/*
if (body->get_state_query())
@@ -1537,14 +1537,14 @@ void PhysicsServer3DSW::free(RID p_rid) {
body_owner.free(p_rid);
memdelete(body);
} else if (soft_body_owner.owns(p_rid)) {
- SoftBody3DSW *soft_body = soft_body_owner.getornull(p_rid);
+ SoftBody3DSW *soft_body = soft_body_owner.get_or_null(p_rid);
soft_body->set_space(nullptr);
soft_body_owner.free(p_rid);
memdelete(soft_body);
} else if (area_owner.owns(p_rid)) {
- Area3DSW *area = area_owner.getornull(p_rid);
+ Area3DSW *area = area_owner.get_or_null(p_rid);
/*
if (area->get_monitor_query())
@@ -1560,7 +1560,7 @@ void PhysicsServer3DSW::free(RID p_rid) {
area_owner.free(p_rid);
memdelete(area);
} else if (space_owner.owns(p_rid)) {
- Space3DSW *space = space_owner.getornull(p_rid);
+ Space3DSW *space = space_owner.get_or_null(p_rid);
while (space->get_objects().size()) {
CollisionObject3DSW *co = (CollisionObject3DSW *)space->get_objects().front()->get();
@@ -1574,7 +1574,7 @@ void PhysicsServer3DSW::free(RID p_rid) {
space_owner.free(p_rid);
memdelete(space);
} else if (joint_owner.owns(p_rid)) {
- Joint3DSW *joint = joint_owner.getornull(p_rid);
+ Joint3DSW *joint = joint_owner.get_or_null(p_rid);
joint_owner.free(p_rid);
memdelete(joint);
diff --git a/servers/physics_3d/physics_server_3d_sw.h b/servers/physics_3d/physics_server_3d_sw.h
index c34f8bff7a..357bfba1d7 100644
--- a/servers/physics_3d/physics_server_3d_sw.h
+++ b/servers/physics_3d/physics_server_3d_sw.h
@@ -242,7 +242,7 @@ public:
virtual void body_set_ray_pickable(RID p_body, bool p_enable) override;
- virtual bool body_test_motion(RID p_body, const Transform3D &p_from, const Vector3 &p_motion, real_t p_margin = 0.001, MotionResult *r_result = nullptr, bool p_collide_separation_ray = false, const Set<RID> &p_exclude = Set<RID>()) override;
+ virtual bool body_test_motion(RID p_body, const Transform3D &p_from, const Vector3 &p_motion, real_t p_margin = 0.001, MotionResult *r_result = nullptr, int p_max_collisions = 1, bool p_collide_separation_ray = false, const Set<RID> &p_exclude = Set<RID>()) override;
// this function only works on physics process, errors and returns null otherwise
virtual PhysicsDirectBodyState3D *body_get_direct_state(RID p_body) override;
diff --git a/servers/physics_3d/physics_server_3d_wrap_mt.h b/servers/physics_3d/physics_server_3d_wrap_mt.h
index a5683b99c3..6869484f8c 100644
--- a/servers/physics_3d/physics_server_3d_wrap_mt.h
+++ b/servers/physics_3d/physics_server_3d_wrap_mt.h
@@ -253,9 +253,9 @@ public:
FUNC2(body_set_ray_pickable, RID, bool);
- bool body_test_motion(RID p_body, const Transform3D &p_from, const Vector3 &p_motion, real_t p_margin = 0.001, MotionResult *r_result = nullptr, bool p_collide_separation_ray = false, const Set<RID> &p_exclude = Set<RID>()) override {
+ bool body_test_motion(RID p_body, const Transform3D &p_from, const Vector3 &p_motion, real_t p_margin = 0.001, MotionResult *r_result = nullptr, int p_max_collisions = 1, bool p_collide_separation_ray = false, const Set<RID> &p_exclude = Set<RID>()) override {
ERR_FAIL_COND_V(main_thread != Thread::get_caller_id(), false);
- return physics_3d_server->body_test_motion(p_body, p_from, p_motion, p_margin, r_result, p_collide_separation_ray, p_exclude);
+ return physics_3d_server->body_test_motion(p_body, p_from, p_motion, p_margin, r_result, p_max_collisions, p_collide_separation_ray, p_exclude);
}
// this function only works on physics process, errors and returns null otherwise
diff --git a/servers/physics_3d/shape_3d_sw.cpp b/servers/physics_3d/shape_3d_sw.cpp
index 1533d6e592..7deddb000e 100644
--- a/servers/physics_3d/shape_3d_sw.cpp
+++ b/servers/physics_3d/shape_3d_sw.cpp
@@ -1576,7 +1576,7 @@ void ConcavePolygonShape3DSW::_setup(const Vector<Vector3> &p_faces, bool p_back
Face3 face(facesr[i * 3 + 0], facesr[i * 3 + 1], facesr[i * 3 + 2]);
bvh_arrayw[i].aabb = face.get_aabb();
- bvh_arrayw[i].center = bvh_arrayw[i].aabb.position + bvh_arrayw[i].aabb.size * 0.5;
+ bvh_arrayw[i].center = bvh_arrayw[i].aabb.get_center();
bvh_arrayw[i].face_index = i;
facesw[i].indices[0] = i * 3 + 0;
facesw[i].indices[1] = i * 3 + 1;
diff --git a/servers/physics_3d/soft_body_3d_sw.cpp b/servers/physics_3d/soft_body_3d_sw.cpp
index 5f6e202c73..752d5f3a91 100644
--- a/servers/physics_3d/soft_body_3d_sw.cpp
+++ b/servers/physics_3d/soft_body_3d_sw.cpp
@@ -249,8 +249,10 @@ void SoftBody3DSW::update_area() {
// Node area.
LocalVector<int> counts;
- counts.resize(nodes.size());
- memset(counts.ptr(), 0, counts.size() * sizeof(int));
+ if (nodes.size() > 0) {
+ counts.resize(nodes.size());
+ memset(counts.ptr(), 0, counts.size() * sizeof(int));
+ }
for (i = 0, ni = nodes.size(); i < ni; ++i) {
nodes[i].area = 0.0;
diff --git a/servers/physics_3d/space_3d_sw.cpp b/servers/physics_3d/space_3d_sw.cpp
index bf72e90932..3718babbd6 100644
--- a/servers/physics_3d/space_3d_sw.cpp
+++ b/servers/physics_3d/space_3d_sw.cpp
@@ -34,6 +34,8 @@
#include "core/config/project_settings.h"
#include "physics_server_3d_sw.h"
+#define TEST_MOTION_MIN_CONTACT_DEPTH_FACTOR 0.05
+
_FORCE_INLINE_ static bool _can_collide_with(CollisionObject3DSW *p_object, uint32_t p_collision_mask, bool p_collide_with_bodies, bool p_collide_with_areas) {
if (!(p_object->get_collision_layer() & p_collision_mask)) {
return false;
@@ -185,7 +187,7 @@ int PhysicsDirectSpaceState3DSW::intersect_shape(const RID &p_shape, const Trans
return 0;
}
- Shape3DSW *shape = PhysicsServer3DSW::singletonsw->shape_owner.getornull(p_shape);
+ Shape3DSW *shape = PhysicsServer3DSW::singletonsw->shape_owner.get_or_null(p_shape);
ERR_FAIL_COND_V(!shape, 0);
AABB aabb = p_xform.xform(shape->get_aabb());
@@ -236,7 +238,7 @@ int PhysicsDirectSpaceState3DSW::intersect_shape(const RID &p_shape, const Trans
}
bool PhysicsDirectSpaceState3DSW::cast_motion(const RID &p_shape, const Transform3D &p_xform, const Vector3 &p_motion, real_t p_margin, real_t &p_closest_safe, real_t &p_closest_unsafe, const Set<RID> &p_exclude, uint32_t p_collision_mask, bool p_collide_with_bodies, bool p_collide_with_areas, ShapeRestInfo *r_info) {
- Shape3DSW *shape = PhysicsServer3DSW::singletonsw->shape_owner.getornull(p_shape);
+ Shape3DSW *shape = PhysicsServer3DSW::singletonsw->shape_owner.get_or_null(p_shape);
ERR_FAIL_COND_V(!shape, false);
AABB aabb = p_xform.xform(shape->get_aabb());
@@ -359,7 +361,7 @@ bool PhysicsDirectSpaceState3DSW::collide_shape(RID p_shape, const Transform3D &
return false;
}
- Shape3DSW *shape = PhysicsServer3DSW::singletonsw->shape_owner.getornull(p_shape);
+ Shape3DSW *shape = PhysicsServer3DSW::singletonsw->shape_owner.get_or_null(p_shape);
ERR_FAIL_COND_V(!shape, 0);
AABB aabb = p_shape_xform.xform(shape->get_aabb());
@@ -401,17 +403,27 @@ bool PhysicsDirectSpaceState3DSW::collide_shape(RID p_shape, const Transform3D &
return collided;
}
+struct _RestResultData {
+ const CollisionObject3DSW *object = nullptr;
+ int local_shape = 0;
+ int shape = 0;
+ Vector3 contact;
+ Vector3 normal;
+ real_t len = 0.0;
+};
+
struct _RestCallbackData {
- const CollisionObject3DSW *object;
- const CollisionObject3DSW *best_object;
- int local_shape;
- int best_local_shape;
- int shape;
- int best_shape;
- Vector3 best_contact;
- Vector3 best_normal;
- real_t best_len;
- real_t min_allowed_depth;
+ const CollisionObject3DSW *object = nullptr;
+ int local_shape = 0;
+ int shape = 0;
+
+ real_t min_allowed_depth = 0.0;
+
+ _RestResultData best_result;
+
+ int max_results = 0;
+ int result_count = 0;
+ _RestResultData *other_results = nullptr;
};
static void _rest_cbk_result(const Vector3 &p_point_A, int p_index_A, const Vector3 &p_point_B, int p_index_B, void *p_userdata) {
@@ -422,32 +434,71 @@ static void _rest_cbk_result(const Vector3 &p_point_A, int p_index_A, const Vect
if (len < rd->min_allowed_depth) {
return;
}
- if (len <= rd->best_len) {
+
+ bool is_best_result = (len > rd->best_result.len);
+
+ if (rd->other_results && rd->result_count > 0) {
+ // Consider as new result by default.
+ int prev_result_count = rd->result_count++;
+
+ int result_index = 0;
+ real_t tested_len = is_best_result ? rd->best_result.len : len;
+ for (; result_index < prev_result_count - 1; ++result_index) {
+ if (tested_len > rd->other_results[result_index].len) {
+ // Re-using a previous result.
+ rd->result_count--;
+ break;
+ }
+ }
+
+ if (result_index < rd->max_results - 1) {
+ _RestResultData &result = rd->other_results[result_index];
+
+ if (is_best_result) {
+ // Keep the previous best result as separate result.
+ result = rd->best_result;
+ } else {
+ // Keep this result as separate result.
+ result.len = len;
+ result.contact = p_point_B;
+ result.normal = contact_rel / len;
+ result.object = rd->object;
+ result.shape = rd->shape;
+ result.local_shape = rd->local_shape;
+ }
+ } else {
+ // Discarding this result.
+ rd->result_count--;
+ }
+ } else if (is_best_result) {
+ rd->result_count = 1;
+ }
+
+ if (!is_best_result) {
return;
}
- rd->best_len = len;
- rd->best_contact = p_point_B;
- rd->best_normal = contact_rel / len;
- rd->best_object = rd->object;
- rd->best_shape = rd->shape;
- rd->best_local_shape = rd->local_shape;
+ rd->best_result.len = len;
+ rd->best_result.contact = p_point_B;
+ rd->best_result.normal = contact_rel / len;
+ rd->best_result.object = rd->object;
+ rd->best_result.shape = rd->shape;
+ rd->best_result.local_shape = rd->local_shape;
}
bool PhysicsDirectSpaceState3DSW::rest_info(RID p_shape, const Transform3D &p_shape_xform, real_t p_margin, ShapeRestInfo *r_info, const Set<RID> &p_exclude, uint32_t p_collision_mask, bool p_collide_with_bodies, bool p_collide_with_areas) {
- Shape3DSW *shape = PhysicsServer3DSW::singletonsw->shape_owner.getornull(p_shape);
+ Shape3DSW *shape = PhysicsServer3DSW::singletonsw->shape_owner.get_or_null(p_shape);
ERR_FAIL_COND_V(!shape, 0);
+ real_t min_contact_depth = p_margin * TEST_MOTION_MIN_CONTACT_DEPTH_FACTOR;
+
AABB aabb = p_shape_xform.xform(shape->get_aabb());
aabb = aabb.grow(p_margin);
int amount = space->broadphase->cull_aabb(aabb, space->intersection_query_results, Space3DSW::INTERSECTION_QUERY_MAX, space->intersection_query_subindex_results);
_RestCallbackData rcd;
- rcd.best_len = 0;
- rcd.best_object = nullptr;
- rcd.best_shape = 0;
- rcd.min_allowed_depth = space->test_motion_min_contact_depth;
+ rcd.min_allowed_depth = min_contact_depth;
for (int i = 0; i < amount; i++) {
if (!_can_collide_with(space->intersection_query_results[i], p_collision_mask, p_collide_with_bodies, p_collide_with_areas)) {
@@ -470,18 +521,18 @@ bool PhysicsDirectSpaceState3DSW::rest_info(RID p_shape, const Transform3D &p_sh
}
}
- if (rcd.best_len == 0 || !rcd.best_object) {
+ if (rcd.best_result.len == 0 || !rcd.best_result.object) {
return false;
}
- r_info->collider_id = rcd.best_object->get_instance_id();
- r_info->shape = rcd.best_shape;
- r_info->normal = rcd.best_normal;
- r_info->point = rcd.best_contact;
- r_info->rid = rcd.best_object->get_self();
- if (rcd.best_object->get_type() == CollisionObject3DSW::TYPE_BODY) {
- const Body3DSW *body = static_cast<const Body3DSW *>(rcd.best_object);
- Vector3 rel_vec = rcd.best_contact - (body->get_transform().origin + body->get_center_of_mass());
+ r_info->collider_id = rcd.best_result.object->get_instance_id();
+ r_info->shape = rcd.best_result.shape;
+ r_info->normal = rcd.best_result.normal;
+ r_info->point = rcd.best_result.contact;
+ r_info->rid = rcd.best_result.object->get_self();
+ if (rcd.best_result.object->get_type() == CollisionObject3DSW::TYPE_BODY) {
+ const Body3DSW *body = static_cast<const Body3DSW *>(rcd.best_result.object);
+ Vector3 rel_vec = rcd.best_result.contact - (body->get_transform().origin + body->get_center_of_mass());
r_info->linear_velocity = body->get_linear_velocity() + (body->get_angular_velocity()).cross(rel_vec);
} else {
@@ -492,9 +543,9 @@ bool PhysicsDirectSpaceState3DSW::rest_info(RID p_shape, const Transform3D &p_sh
}
Vector3 PhysicsDirectSpaceState3DSW::get_closest_point_to_object_volume(RID p_object, const Vector3 p_point) const {
- CollisionObject3DSW *obj = PhysicsServer3DSW::singletonsw->area_owner.getornull(p_object);
+ CollisionObject3DSW *obj = PhysicsServer3DSW::singletonsw->area_owner.get_or_null(p_object);
if (!obj) {
- obj = PhysicsServer3DSW::singletonsw->body_owner.getornull(p_object);
+ obj = PhysicsServer3DSW::singletonsw->body_owner.get_or_null(p_object);
}
ERR_FAIL_COND_V(!obj, Vector3());
@@ -569,7 +620,7 @@ int Space3DSW::_cull_aabb_for_body(Body3DSW *p_body, const AABB &p_aabb) {
return amount;
}
-bool Space3DSW::test_body_motion(Body3DSW *p_body, const Transform3D &p_from, const Vector3 &p_motion, real_t p_margin, PhysicsServer3D::MotionResult *r_result, bool p_collide_separation_ray, const Set<RID> &p_exclude) {
+bool Space3DSW::test_body_motion(Body3DSW *p_body, const Transform3D &p_from, const Vector3 &p_motion, real_t p_margin, PhysicsServer3D::MotionResult *r_result, int p_max_collisions, bool p_collide_separation_ray, const Set<RID> &p_exclude) {
//give me back regular physics engine logic
//this is madness
//and most people using this function will think
@@ -577,10 +628,12 @@ bool Space3DSW::test_body_motion(Body3DSW *p_body, const Transform3D &p_from, co
//this took about a week to get right..
//but is it right? who knows at this point..
+ ERR_FAIL_INDEX_V(p_max_collisions, PhysicsServer3D::MotionResult::MAX_COLLISIONS, false);
+
if (r_result) {
- r_result->collider_id = ObjectID();
- r_result->collider_shape = 0;
+ *r_result = PhysicsServer3D::MotionResult();
}
+
AABB body_aabb;
bool shapes_found = false;
@@ -599,7 +652,6 @@ bool Space3DSW::test_body_motion(Body3DSW *p_body, const Transform3D &p_from, co
if (!shapes_found) {
if (r_result) {
- *r_result = PhysicsServer3D::MotionResult();
r_result->travel = p_motion;
}
@@ -610,6 +662,8 @@ bool Space3DSW::test_body_motion(Body3DSW *p_body, const Transform3D &p_from, co
body_aabb = p_from.xform(p_body->get_inv_transform().xform(body_aabb));
body_aabb = body_aabb.grow(p_margin);
+ real_t min_contact_depth = p_margin * TEST_MOTION_MIN_CONTACT_DEPTH_FACTOR;
+
real_t motion_length = p_motion.length();
Vector3 motion_normal = p_motion / motion_length;
@@ -663,8 +717,9 @@ bool Space3DSW::test_body_motion(Body3DSW *p_body, const Transform3D &p_from, co
break;
}
- Vector3 recover_motion;
+ recovered = true;
+ Vector3 recover_motion;
for (int i = 0; i < cbk.amount; i++) {
Vector3 a = sr[i * 2 + 0];
Vector3 b = sr[i * 2 + 1];
@@ -675,9 +730,9 @@ bool Space3DSW::test_body_motion(Body3DSW *p_body, const Transform3D &p_from, co
// Compute depth on recovered motion.
real_t depth = n.dot(a + recover_motion) - d;
- if (depth > 0.0) {
+ if (depth > min_contact_depth + CMP_EPSILON) {
// Only recover if there is penetration.
- recover_motion -= n * depth * 0.4;
+ recover_motion -= n * (depth - min_contact_depth) * 0.4;
}
}
@@ -686,8 +741,6 @@ bool Space3DSW::test_body_motion(Body3DSW *p_body, const Transform3D &p_from, co
break;
}
- recovered = true;
-
body_transform.origin += recover_motion;
body_aabb.position += recover_motion;
@@ -832,13 +885,16 @@ bool Space3DSW::test_body_motion(Body3DSW *p_body, const Transform3D &p_from, co
Transform3D ugt = body_transform;
ugt.origin += p_motion * unsafe;
+ _RestResultData results[PhysicsServer3D::MotionResult::MAX_COLLISIONS];
+
_RestCallbackData rcd;
- rcd.best_len = 0;
- rcd.best_object = nullptr;
- rcd.best_shape = 0;
+ if (p_max_collisions > 1) {
+ rcd.max_results = p_max_collisions;
+ rcd.other_results = results;
+ }
// Allowed depth can't be lower than motion length, in order to handle contacts at low speed.
- rcd.min_allowed_depth = MIN(motion_length, test_motion_min_contact_depth);
+ rcd.min_allowed_depth = MIN(motion_length, min_contact_depth);
int from_shape = best_shape != -1 ? best_shape : 0;
int to_shape = best_shape != -1 ? best_shape + 1 : p_body->get_shape_count();
@@ -871,27 +927,36 @@ bool Space3DSW::test_body_motion(Body3DSW *p_body, const Transform3D &p_from, co
}
}
- if (rcd.best_len != 0) {
+ if (rcd.result_count > 0) {
if (r_result) {
- r_result->collider = rcd.best_object->get_self();
- r_result->collider_id = rcd.best_object->get_instance_id();
- r_result->collider_shape = rcd.best_shape;
- r_result->collision_local_shape = rcd.best_local_shape;
- r_result->collision_normal = rcd.best_normal;
- r_result->collision_point = rcd.best_contact;
- r_result->collision_depth = rcd.best_len;
- r_result->collision_safe_fraction = safe;
- r_result->collision_unsafe_fraction = unsafe;
- //r_result->collider_metadata = rcd.best_object->get_shape_metadata(rcd.best_shape);
-
- const Body3DSW *body = static_cast<const Body3DSW *>(rcd.best_object);
-
- Vector3 rel_vec = rcd.best_contact - (body->get_transform().origin + body->get_center_of_mass());
- r_result->collider_velocity = body->get_linear_velocity() + (body->get_angular_velocity()).cross(rel_vec);
+ for (int collision_index = 0; collision_index < rcd.result_count; ++collision_index) {
+ const _RestResultData &result = (collision_index > 0) ? rcd.other_results[collision_index - 1] : rcd.best_result;
+
+ PhysicsServer3D::MotionCollision &collision = r_result->collisions[collision_index];
+
+ collision.collider = result.object->get_self();
+ collision.collider_id = result.object->get_instance_id();
+ collision.collider_shape = result.shape;
+ collision.local_shape = result.local_shape;
+ collision.normal = result.normal;
+ collision.position = result.contact;
+ collision.depth = result.len;
+ //r_result->collider_metadata = result.object->get_shape_metadata(result.shape);
+
+ const Body3DSW *body = static_cast<const Body3DSW *>(result.object);
+
+ Vector3 rel_vec = result.contact - (body->get_transform().origin + body->get_center_of_mass());
+ collision.collider_velocity = body->get_linear_velocity() + (body->get_angular_velocity()).cross(rel_vec);
+ }
r_result->travel = safe * p_motion;
r_result->remainder = p_motion - safe * p_motion;
r_result->travel += (body_transform.get_origin() - p_from.get_origin());
+
+ r_result->safe_fraction = safe;
+ r_result->unsafe_fraction = unsafe;
+
+ r_result->collision_count = rcd.result_count;
}
collided = true;
@@ -902,6 +967,9 @@ bool Space3DSW::test_body_motion(Body3DSW *p_body, const Transform3D &p_from, co
r_result->travel = p_motion;
r_result->remainder = Vector3();
r_result->travel += (body_transform.get_origin() - p_from.get_origin());
+
+ r_result->safe_fraction = 1.0;
+ r_result->unsafe_fraction = 1.0;
}
return collided;
@@ -1095,9 +1163,6 @@ void Space3DSW::set_param(PhysicsServer3D::SpaceParameter p_param, real_t p_valu
case PhysicsServer3D::SPACE_PARAM_CONSTRAINT_DEFAULT_BIAS:
constraint_bias = p_value;
break;
- case PhysicsServer3D::SPACE_PARAM_TEST_MOTION_MIN_CONTACT_DEPTH:
- test_motion_min_contact_depth = p_value;
- break;
}
}
@@ -1119,8 +1184,6 @@ real_t Space3DSW::get_param(PhysicsServer3D::SpaceParameter p_param) const {
return body_angular_velocity_damp_ratio;
case PhysicsServer3D::SPACE_PARAM_CONSTRAINT_DEFAULT_BIAS:
return constraint_bias;
- case PhysicsServer3D::SPACE_PARAM_TEST_MOTION_MIN_CONTACT_DEPTH:
- return test_motion_min_contact_depth;
}
return 0;
}
diff --git a/servers/physics_3d/space_3d_sw.h b/servers/physics_3d/space_3d_sw.h
index aa4557d136..daa1244bf8 100644
--- a/servers/physics_3d/space_3d_sw.h
+++ b/servers/physics_3d/space_3d_sw.h
@@ -96,7 +96,6 @@ private:
real_t contact_max_separation = 0.05;
real_t contact_max_allowed_penetration = 0.01;
real_t constraint_bias = 0.01;
- real_t test_motion_min_contact_depth = 0.00001;
enum {
INTERSECTION_QUERY_MAX = 2048
@@ -208,7 +207,7 @@ public:
void set_elapsed_time(ElapsedTime p_time, uint64_t p_msec) { elapsed_time[p_time] = p_msec; }
uint64_t get_elapsed_time(ElapsedTime p_time) const { return elapsed_time[p_time]; }
- bool test_body_motion(Body3DSW *p_body, const Transform3D &p_from, const Vector3 &p_motion, real_t p_margin, PhysicsServer3D::MotionResult *r_result, bool p_collide_separation_ray = false, const Set<RID> &p_exclude = Set<RID>());
+ bool test_body_motion(Body3DSW *p_body, const Transform3D &p_from, const Vector3 &p_motion, real_t p_margin, PhysicsServer3D::MotionResult *r_result, int p_max_collisions = 1, bool p_collide_separation_ray = false, const Set<RID> &p_exclude = Set<RID>());
Space3DSW();
~Space3DSW();
diff --git a/servers/physics_server_2d.cpp b/servers/physics_server_2d.cpp
index 8d5367e735..3fc94cd727 100644
--- a/servers/physics_server_2d.cpp
+++ b/servers/physics_server_2d.cpp
@@ -670,7 +670,6 @@ void PhysicsServer2D::_bind_methods() {
BIND_ENUM_CONSTANT(SPACE_PARAM_BODY_ANGULAR_VELOCITY_SLEEP_THRESHOLD);
BIND_ENUM_CONSTANT(SPACE_PARAM_BODY_TIME_TO_SLEEP);
BIND_ENUM_CONSTANT(SPACE_PARAM_CONSTRAINT_DEFAULT_BIAS);
- BIND_ENUM_CONSTANT(SPACE_PARAM_TEST_MOTION_MIN_CONTACT_DEPTH);
BIND_ENUM_CONSTANT(SHAPE_WORLD_BOUNDARY);
BIND_ENUM_CONSTANT(SHAPE_SEPARATION_RAY);
@@ -700,7 +699,7 @@ void PhysicsServer2D::_bind_methods() {
BIND_ENUM_CONSTANT(BODY_MODE_STATIC);
BIND_ENUM_CONSTANT(BODY_MODE_KINEMATIC);
BIND_ENUM_CONSTANT(BODY_MODE_DYNAMIC);
- BIND_ENUM_CONSTANT(BODY_MODE_DYNAMIC_LOCKED);
+ BIND_ENUM_CONSTANT(BODY_MODE_DYNAMIC_LINEAR);
BIND_ENUM_CONSTANT(BODY_PARAM_BOUNCE);
BIND_ENUM_CONSTANT(BODY_PARAM_FRICTION);
diff --git a/servers/physics_server_2d.h b/servers/physics_server_2d.h
index 30d3c47051..4b85382fe5 100644
--- a/servers/physics_server_2d.h
+++ b/servers/physics_server_2d.h
@@ -262,7 +262,6 @@ public:
SPACE_PARAM_BODY_ANGULAR_VELOCITY_SLEEP_THRESHOLD,
SPACE_PARAM_BODY_TIME_TO_SLEEP,
SPACE_PARAM_CONSTRAINT_DEFAULT_BIAS,
- SPACE_PARAM_TEST_MOTION_MIN_CONTACT_DEPTH,
};
virtual void space_set_param(RID p_space, SpaceParameter p_param, real_t p_value) = 0;
@@ -350,7 +349,7 @@ public:
BODY_MODE_STATIC,
BODY_MODE_KINEMATIC,
BODY_MODE_DYNAMIC,
- BODY_MODE_DYNAMIC_LOCKED,
+ BODY_MODE_DYNAMIC_LINEAR,
};
virtual RID body_create() = 0;
diff --git a/servers/physics_server_3d.cpp b/servers/physics_server_3d.cpp
index 0ff29394e5..9384cdc7b8 100644
--- a/servers/physics_server_3d.cpp
+++ b/servers/physics_server_3d.cpp
@@ -370,77 +370,132 @@ Vector3 PhysicsTestMotionResult3D::get_remainder() const {
return result.remainder;
}
-Vector3 PhysicsTestMotionResult3D::get_collision_point() const {
- return result.collision_point;
+real_t PhysicsTestMotionResult3D::get_safe_fraction() const {
+ return result.safe_fraction;
}
-Vector3 PhysicsTestMotionResult3D::get_collision_normal() const {
- return result.collision_normal;
+real_t PhysicsTestMotionResult3D::get_unsafe_fraction() const {
+ return result.unsafe_fraction;
}
-Vector3 PhysicsTestMotionResult3D::get_collider_velocity() const {
- return result.collider_velocity;
+int PhysicsTestMotionResult3D::get_collision_count() const {
+ return result.collision_count;
}
-ObjectID PhysicsTestMotionResult3D::get_collider_id() const {
- return result.collider_id;
+Vector3 PhysicsTestMotionResult3D::get_collision_point(int p_collision_index) const {
+ ERR_FAIL_INDEX_V(p_collision_index, result.collision_count, Vector3());
+ return result.collisions[p_collision_index].position;
}
-RID PhysicsTestMotionResult3D::get_collider_rid() const {
- return result.collider;
+Vector3 PhysicsTestMotionResult3D::get_collision_normal(int p_collision_index) const {
+ ERR_FAIL_INDEX_V(p_collision_index, result.collision_count, Vector3());
+ return result.collisions[p_collision_index].normal;
}
-Object *PhysicsTestMotionResult3D::get_collider() const {
- return ObjectDB::get_instance(result.collider_id);
+Vector3 PhysicsTestMotionResult3D::get_collider_velocity(int p_collision_index) const {
+ ERR_FAIL_INDEX_V(p_collision_index, result.collision_count, Vector3());
+ return result.collisions[p_collision_index].collider_velocity;
}
-int PhysicsTestMotionResult3D::get_collider_shape() const {
- return result.collider_shape;
+ObjectID PhysicsTestMotionResult3D::get_collider_id(int p_collision_index) const {
+ ERR_FAIL_INDEX_V(p_collision_index, result.collision_count, ObjectID());
+ return result.collisions[p_collision_index].collider_id;
}
-real_t PhysicsTestMotionResult3D::get_collision_depth() const {
- return result.collision_depth;
+RID PhysicsTestMotionResult3D::get_collider_rid(int p_collision_index) const {
+ ERR_FAIL_INDEX_V(p_collision_index, result.collision_count, RID());
+ return result.collisions[p_collision_index].collider;
}
-real_t PhysicsTestMotionResult3D::get_collision_safe_fraction() const {
- return result.collision_safe_fraction;
+Object *PhysicsTestMotionResult3D::get_collider(int p_collision_index) const {
+ ERR_FAIL_INDEX_V(p_collision_index, result.collision_count, nullptr);
+ return ObjectDB::get_instance(result.collisions[p_collision_index].collider_id);
}
-real_t PhysicsTestMotionResult3D::get_collision_unsafe_fraction() const {
- return result.collision_unsafe_fraction;
+int PhysicsTestMotionResult3D::get_collider_shape(int p_collision_index) const {
+ ERR_FAIL_INDEX_V(p_collision_index, result.collision_count, 0);
+ return result.collisions[p_collision_index].collider_shape;
+}
+
+real_t PhysicsTestMotionResult3D::get_collision_depth(int p_collision_index) const {
+ ERR_FAIL_INDEX_V(p_collision_index, result.collision_count, 0.0);
+ return result.collisions[p_collision_index].depth;
+}
+
+Vector3 PhysicsTestMotionResult3D::get_best_collision_point() const {
+ return result.collision_count ? get_collision_point() : Vector3();
+}
+
+Vector3 PhysicsTestMotionResult3D::get_best_collision_normal() const {
+ return result.collision_count ? get_collision_normal() : Vector3();
+}
+
+Vector3 PhysicsTestMotionResult3D::get_best_collider_velocity() const {
+ return result.collision_count ? get_collider_velocity() : Vector3();
+}
+
+ObjectID PhysicsTestMotionResult3D::get_best_collider_id() const {
+ return result.collision_count ? get_collider_id() : ObjectID();
+}
+
+RID PhysicsTestMotionResult3D::get_best_collider_rid() const {
+ return result.collision_count ? get_collider_rid() : RID();
+}
+
+Object *PhysicsTestMotionResult3D::get_best_collider() const {
+ return result.collision_count ? get_collider() : nullptr;
+}
+
+int PhysicsTestMotionResult3D::get_best_collider_shape() const {
+ return result.collision_count ? get_collider_shape() : 0;
+}
+
+real_t PhysicsTestMotionResult3D::get_best_collision_depth() const {
+ return result.collision_count ? get_collision_depth() : 0.0;
}
void PhysicsTestMotionResult3D::_bind_methods() {
ClassDB::bind_method(D_METHOD("get_travel"), &PhysicsTestMotionResult3D::get_travel);
ClassDB::bind_method(D_METHOD("get_remainder"), &PhysicsTestMotionResult3D::get_remainder);
- ClassDB::bind_method(D_METHOD("get_collision_point"), &PhysicsTestMotionResult3D::get_collision_point);
- ClassDB::bind_method(D_METHOD("get_collision_normal"), &PhysicsTestMotionResult3D::get_collision_normal);
- ClassDB::bind_method(D_METHOD("get_collider_velocity"), &PhysicsTestMotionResult3D::get_collider_velocity);
- ClassDB::bind_method(D_METHOD("get_collider_id"), &PhysicsTestMotionResult3D::get_collider_id);
- ClassDB::bind_method(D_METHOD("get_collider_rid"), &PhysicsTestMotionResult3D::get_collider_rid);
- ClassDB::bind_method(D_METHOD("get_collider"), &PhysicsTestMotionResult3D::get_collider);
- ClassDB::bind_method(D_METHOD("get_collider_shape"), &PhysicsTestMotionResult3D::get_collider_shape);
- ClassDB::bind_method(D_METHOD("get_collision_depth"), &PhysicsTestMotionResult3D::get_collision_depth);
- ClassDB::bind_method(D_METHOD("get_collision_safe_fraction"), &PhysicsTestMotionResult3D::get_collision_safe_fraction);
- ClassDB::bind_method(D_METHOD("get_collision_unsafe_fraction"), &PhysicsTestMotionResult3D::get_collision_unsafe_fraction);
+ ClassDB::bind_method(D_METHOD("get_safe_fraction"), &PhysicsTestMotionResult3D::get_safe_fraction);
+ ClassDB::bind_method(D_METHOD("get_unsafe_fraction"), &PhysicsTestMotionResult3D::get_unsafe_fraction);
+ ClassDB::bind_method(D_METHOD("get_collision_count"), &PhysicsTestMotionResult3D::get_collision_count);
+ ClassDB::bind_method(D_METHOD("get_collision_point", "collision_index"), &PhysicsTestMotionResult3D::get_collision_point, DEFVAL(0));
+ ClassDB::bind_method(D_METHOD("get_collision_normal", "collision_index"), &PhysicsTestMotionResult3D::get_collision_normal, DEFVAL(0));
+ ClassDB::bind_method(D_METHOD("get_collider_velocity", "collision_index"), &PhysicsTestMotionResult3D::get_collider_velocity, DEFVAL(0));
+ ClassDB::bind_method(D_METHOD("get_collider_id", "collision_index"), &PhysicsTestMotionResult3D::get_collider_id, DEFVAL(0));
+ ClassDB::bind_method(D_METHOD("get_collider_rid", "collision_index"), &PhysicsTestMotionResult3D::get_collider_rid, DEFVAL(0));
+ ClassDB::bind_method(D_METHOD("get_collider", "collision_index"), &PhysicsTestMotionResult3D::get_collider, DEFVAL(0));
+ ClassDB::bind_method(D_METHOD("get_collider_shape", "collision_index"), &PhysicsTestMotionResult3D::get_collider_shape, DEFVAL(0));
+ ClassDB::bind_method(D_METHOD("get_collision_depth", "collision_index"), &PhysicsTestMotionResult3D::get_collision_depth, DEFVAL(0));
+
+ ClassDB::bind_method(D_METHOD("get_best_collision_point"), &PhysicsTestMotionResult3D::get_best_collision_point);
+ ClassDB::bind_method(D_METHOD("get_best_collision_normal"), &PhysicsTestMotionResult3D::get_best_collision_normal);
+ ClassDB::bind_method(D_METHOD("get_best_collider_velocity"), &PhysicsTestMotionResult3D::get_best_collider_velocity);
+ ClassDB::bind_method(D_METHOD("get_best_collider_id"), &PhysicsTestMotionResult3D::get_best_collider_id);
+ ClassDB::bind_method(D_METHOD("get_best_collider_rid"), &PhysicsTestMotionResult3D::get_best_collider_rid);
+ ClassDB::bind_method(D_METHOD("get_best_collider"), &PhysicsTestMotionResult3D::get_best_collider);
+ ClassDB::bind_method(D_METHOD("get_best_collider_shape"), &PhysicsTestMotionResult3D::get_best_collider_shape);
+ ClassDB::bind_method(D_METHOD("get_best_collision_depth"), &PhysicsTestMotionResult3D::get_best_collision_depth);
ADD_PROPERTY(PropertyInfo(Variant::VECTOR3, "travel"), "", "get_travel");
ADD_PROPERTY(PropertyInfo(Variant::VECTOR3, "remainder"), "", "get_remainder");
- ADD_PROPERTY(PropertyInfo(Variant::VECTOR3, "collision_point"), "", "get_collision_point");
- ADD_PROPERTY(PropertyInfo(Variant::VECTOR3, "collision_normal"), "", "get_collision_normal");
- ADD_PROPERTY(PropertyInfo(Variant::VECTOR3, "collider_velocity"), "", "get_collider_velocity");
- ADD_PROPERTY(PropertyInfo(Variant::INT, "collider_id", PROPERTY_HINT_OBJECT_ID), "", "get_collider_id");
- ADD_PROPERTY(PropertyInfo(Variant::RID, "collider_rid"), "", "get_collider_rid");
- ADD_PROPERTY(PropertyInfo(Variant::OBJECT, "collider"), "", "get_collider");
- ADD_PROPERTY(PropertyInfo(Variant::INT, "collider_shape"), "", "get_collider_shape");
- ADD_PROPERTY(PropertyInfo(Variant::FLOAT, "collision_depth"), "", "get_collision_depth");
- ADD_PROPERTY(PropertyInfo(Variant::FLOAT, "collision_safe_fraction"), "", "get_collision_safe_fraction");
- ADD_PROPERTY(PropertyInfo(Variant::FLOAT, "collision_unsafe_fraction"), "", "get_collision_unsafe_fraction");
+ ADD_PROPERTY(PropertyInfo(Variant::FLOAT, "safe_fraction"), "", "get_safe_fraction");
+ ADD_PROPERTY(PropertyInfo(Variant::FLOAT, "unsafe_fraction"), "", "get_unsafe_fraction");
+ ADD_PROPERTY(PropertyInfo(Variant::INT, "collision_count"), "", "get_collision_count");
+ ADD_PROPERTY(PropertyInfo(Variant::VECTOR3, "collision_point"), "", "get_best_collision_point");
+ ADD_PROPERTY(PropertyInfo(Variant::VECTOR3, "collision_normal"), "", "get_best_collision_normal");
+ ADD_PROPERTY(PropertyInfo(Variant::VECTOR3, "collider_velocity"), "", "get_best_collider_velocity");
+ ADD_PROPERTY(PropertyInfo(Variant::INT, "collider_id", PROPERTY_HINT_OBJECT_ID), "", "get_best_collider_id");
+ ADD_PROPERTY(PropertyInfo(Variant::RID, "collider_rid"), "", "get_best_collider_rid");
+ ADD_PROPERTY(PropertyInfo(Variant::OBJECT, "collider"), "", "get_best_collider");
+ ADD_PROPERTY(PropertyInfo(Variant::INT, "collider_shape"), "", "get_best_collider_shape");
+ ADD_PROPERTY(PropertyInfo(Variant::FLOAT, "collision_depth"), "", "get_best_collision_depth");
}
///////////////////////////////////////
-bool PhysicsServer3D::_body_test_motion(RID p_body, const Transform3D &p_from, const Vector3 &p_motion, real_t p_margin, const Ref<PhysicsTestMotionResult3D> &p_result, bool p_collide_separation_ray, const Vector<RID> &p_exclude) {
+bool PhysicsServer3D::_body_test_motion(RID p_body, const Transform3D &p_from, const Vector3 &p_motion, real_t p_margin, const Ref<PhysicsTestMotionResult3D> &p_result, bool p_collide_separation_ray, const Vector<RID> &p_exclude, int p_max_collisions) {
MotionResult *r = nullptr;
if (p_result.is_valid()) {
r = p_result->get_result_ptr();
@@ -449,7 +504,7 @@ bool PhysicsServer3D::_body_test_motion(RID p_body, const Transform3D &p_from, c
for (int i = 0; i < p_exclude.size(); i++) {
exclude.insert(p_exclude[i]);
}
- return body_test_motion(p_body, p_from, p_motion, p_margin, r, p_collide_separation_ray, exclude);
+ return body_test_motion(p_body, p_from, p_motion, p_margin, r, p_max_collisions, p_collide_separation_ray, exclude);
}
RID PhysicsServer3D::shape_create(ShapeType p_shape) {
@@ -607,7 +662,7 @@ void PhysicsServer3D::_bind_methods() {
ClassDB::bind_method(D_METHOD("body_set_ray_pickable", "body", "enable"), &PhysicsServer3D::body_set_ray_pickable);
- ClassDB::bind_method(D_METHOD("body_test_motion", "body", "from", "motion", "margin", "result", "collide_separation_ray", "exclude"), &PhysicsServer3D::_body_test_motion, DEFVAL(0.001), DEFVAL(Variant()), DEFVAL(false), DEFVAL(Array()));
+ ClassDB::bind_method(D_METHOD("body_test_motion", "body", "from", "motion", "margin", "result", "collide_separation_ray", "exclude", "max_collisions"), &PhysicsServer3D::_body_test_motion, DEFVAL(0.001), DEFVAL(Variant()), DEFVAL(false), DEFVAL(Array()), DEFVAL(1));
ClassDB::bind_method(D_METHOD("body_get_direct_state", "body"), &PhysicsServer3D::body_get_direct_state);
@@ -779,7 +834,7 @@ void PhysicsServer3D::_bind_methods() {
BIND_ENUM_CONSTANT(BODY_MODE_STATIC);
BIND_ENUM_CONSTANT(BODY_MODE_KINEMATIC);
BIND_ENUM_CONSTANT(BODY_MODE_DYNAMIC);
- BIND_ENUM_CONSTANT(BODY_MODE_DYNAMIC_LOCKED);
+ BIND_ENUM_CONSTANT(BODY_MODE_DYNAMIC_LINEAR);
BIND_ENUM_CONSTANT(BODY_PARAM_BOUNCE);
BIND_ENUM_CONSTANT(BODY_PARAM_FRICTION);
@@ -812,7 +867,6 @@ void PhysicsServer3D::_bind_methods() {
BIND_ENUM_CONSTANT(SPACE_PARAM_BODY_TIME_TO_SLEEP);
BIND_ENUM_CONSTANT(SPACE_PARAM_BODY_ANGULAR_VELOCITY_DAMP_RATIO);
BIND_ENUM_CONSTANT(SPACE_PARAM_CONSTRAINT_DEFAULT_BIAS);
- BIND_ENUM_CONSTANT(SPACE_PARAM_TEST_MOTION_MIN_CONTACT_DEPTH);
BIND_ENUM_CONSTANT(BODY_AXIS_LINEAR_X);
BIND_ENUM_CONSTANT(BODY_AXIS_LINEAR_Y);
diff --git a/servers/physics_server_3d.h b/servers/physics_server_3d.h
index 590b0929b1..14d395e714 100644
--- a/servers/physics_server_3d.h
+++ b/servers/physics_server_3d.h
@@ -210,7 +210,7 @@ class PhysicsServer3D : public Object {
static PhysicsServer3D *singleton;
- virtual bool _body_test_motion(RID p_body, const Transform3D &p_from, const Vector3 &p_motion, real_t p_margin = 0.001, const Ref<PhysicsTestMotionResult3D> &p_result = Ref<PhysicsTestMotionResult3D>(), bool p_collide_separation_ray = false, const Vector<RID> &p_exclude = Vector<RID>());
+ virtual bool _body_test_motion(RID p_body, const Transform3D &p_from, const Vector3 &p_motion, real_t p_margin = 0.001, const Ref<PhysicsTestMotionResult3D> &p_result = Ref<PhysicsTestMotionResult3D>(), bool p_collide_separation_ray = false, const Vector<RID> &p_exclude = Vector<RID>(), int p_max_collisions = 1);
protected:
static void _bind_methods();
@@ -271,7 +271,6 @@ public:
SPACE_PARAM_BODY_TIME_TO_SLEEP,
SPACE_PARAM_BODY_ANGULAR_VELOCITY_DAMP_RATIO,
SPACE_PARAM_CONSTRAINT_DEFAULT_BIAS,
- SPACE_PARAM_TEST_MOTION_MIN_CONTACT_DEPTH
};
virtual void space_set_param(RID p_space, SpaceParameter p_param, real_t p_value) = 0;
@@ -361,7 +360,7 @@ public:
BODY_MODE_STATIC,
BODY_MODE_KINEMATIC,
BODY_MODE_DYNAMIC,
- BODY_MODE_DYNAMIC_LOCKED,
+ BODY_MODE_DYNAMIC_LINEAR,
};
virtual RID body_create() = 0;
@@ -484,28 +483,34 @@ public:
// this function only works on physics process, errors and returns null otherwise
virtual PhysicsDirectBodyState3D *body_get_direct_state(RID p_body) = 0;
- struct MotionResult {
- Vector3 travel;
- Vector3 remainder;
-
- Vector3 collision_point;
- Vector3 collision_normal;
+ struct MotionCollision {
+ Vector3 position;
+ Vector3 normal;
Vector3 collider_velocity;
- real_t collision_depth = 0.0;
- real_t collision_safe_fraction = 0.0;
- real_t collision_unsafe_fraction = 0.0;
- int collision_local_shape = 0;
+ real_t depth = 0.0;
+ int local_shape = 0;
ObjectID collider_id;
RID collider;
int collider_shape = 0;
Variant collider_metadata;
real_t get_angle(Vector3 p_up_direction) const {
- return Math::acos(collision_normal.dot(p_up_direction));
+ return Math::acos(normal.dot(p_up_direction));
}
};
- virtual bool body_test_motion(RID p_body, const Transform3D &p_from, const Vector3 &p_motion, real_t p_margin = 0.001, MotionResult *r_result = nullptr, bool p_collide_separation_ray = false, const Set<RID> &p_exclude = Set<RID>()) = 0;
+ struct MotionResult {
+ Vector3 travel;
+ Vector3 remainder;
+ real_t safe_fraction = 0.0;
+ real_t unsafe_fraction = 0.0;
+
+ static const int MAX_COLLISIONS = 32;
+ MotionCollision collisions[MAX_COLLISIONS];
+ int collision_count = 0;
+ };
+
+ virtual bool body_test_motion(RID p_body, const Transform3D &p_from, const Vector3 &p_motion, real_t p_margin = 0.001, MotionResult *r_result = nullptr, int p_max_collisions = 1, bool p_collide_separation_ray = false, const Set<RID> &p_exclude = Set<RID>()) = 0;
/* SOFT BODY */
@@ -770,17 +775,28 @@ public:
Vector3 get_travel() const;
Vector3 get_remainder() const;
-
- Vector3 get_collision_point() const;
- Vector3 get_collision_normal() const;
- Vector3 get_collider_velocity() const;
- ObjectID get_collider_id() const;
- RID get_collider_rid() const;
- Object *get_collider() const;
- int get_collider_shape() const;
- real_t get_collision_depth() const;
- real_t get_collision_safe_fraction() const;
- real_t get_collision_unsafe_fraction() const;
+ real_t get_safe_fraction() const;
+ real_t get_unsafe_fraction() const;
+
+ int get_collision_count() const;
+
+ Vector3 get_collision_point(int p_collision_index = 0) const;
+ Vector3 get_collision_normal(int p_collision_index = 0) const;
+ Vector3 get_collider_velocity(int p_collision_index = 0) const;
+ ObjectID get_collider_id(int p_collision_index = 0) const;
+ RID get_collider_rid(int p_collision_index = 0) const;
+ Object *get_collider(int p_collision_index = 0) const;
+ int get_collider_shape(int p_collision_index = 0) const;
+ real_t get_collision_depth(int p_collision_index = 0) const;
+
+ Vector3 get_best_collision_point() const;
+ Vector3 get_best_collision_normal() const;
+ Vector3 get_best_collider_velocity() const;
+ ObjectID get_best_collider_id() const;
+ RID get_best_collider_rid() const;
+ Object *get_best_collider() const;
+ int get_best_collider_shape() const;
+ real_t get_best_collision_depth() const;
};
typedef PhysicsServer3D *(*CreatePhysicsServer3DCallback)();
diff --git a/servers/rendering/rasterizer_dummy.h b/servers/rendering/rasterizer_dummy.h
index 35bb7722e7..f95221c05b 100644
--- a/servers/rendering/rasterizer_dummy.h
+++ b/servers/rendering/rasterizer_dummy.h
@@ -224,7 +224,7 @@ public:
return texture_owner.make_rid(texture);
}
void texture_2d_initialize(RID p_texture, const Ref<Image> &p_image) override {
- DummyTexture *t = texture_owner.getornull(p_texture);
+ DummyTexture *t = texture_owner.get_or_null(p_texture);
ERR_FAIL_COND(!t);
t->image = p_image->duplicate();
}
@@ -241,7 +241,7 @@ public:
void texture_3d_placeholder_initialize(RID p_texture) override {}
Ref<Image> texture_2d_get(RID p_texture) const override {
- DummyTexture *t = texture_owner.getornull(p_texture);
+ DummyTexture *t = texture_owner.get_or_null(p_texture);
ERR_FAIL_COND_V(!t, Ref<Image>());
return t->image;
}
@@ -661,7 +661,7 @@ public:
bool free(RID p_rid) override {
if (texture_owner.owns(p_rid)) {
// delete the texture
- DummyTexture *texture = texture_owner.getornull(p_rid);
+ DummyTexture *texture = texture_owner.get_or_null(p_rid);
texture_owner.free(p_rid);
memdelete(texture);
return true;
diff --git a/servers/rendering/renderer_canvas_cull.cpp b/servers/rendering/renderer_canvas_cull.cpp
index efa3a457d3..46683e8e68 100644
--- a/servers/rendering/renderer_canvas_cull.cpp
+++ b/servers/rendering/renderer_canvas_cull.cpp
@@ -100,7 +100,7 @@ void _collect_ysort_children(RendererCanvasCull::Item *p_canvas_item, Transform2
void _mark_ysort_dirty(RendererCanvasCull::Item *ysort_owner, RID_Owner<RendererCanvasCull::Item, true> &canvas_item_owner) {
do {
ysort_owner->ysort_children_count = -1;
- ysort_owner = canvas_item_owner.owns(ysort_owner->parent) ? canvas_item_owner.getornull(ysort_owner->parent) : nullptr;
+ ysort_owner = canvas_item_owner.owns(ysort_owner->parent) ? canvas_item_owner.get_or_null(ysort_owner->parent) : nullptr;
} while (ysort_owner && ysort_owner->sort_y);
}
@@ -182,7 +182,7 @@ void RendererCanvasCull::_attach_canvas_item_for_draw(RendererCanvasCull::Item *
if (ci->commands != nullptr) {
ci->final_transform = xform;
- ci->final_modulate = Color(modulate.r * ci->self_modulate.r, modulate.g * ci->self_modulate.g, modulate.b * ci->self_modulate.b, modulate.a * ci->self_modulate.a);
+ ci->final_modulate = modulate * ci->self_modulate;
ci->global_rect_cache = global_rect;
ci->global_rect_cache.position -= p_clip_rect.position;
ci->light_masked = false;
@@ -396,9 +396,9 @@ void RendererCanvasCull::canvas_initialize(RID p_rid) {
}
void RendererCanvasCull::canvas_set_item_mirroring(RID p_canvas, RID p_item, const Point2 &p_mirroring) {
- Canvas *canvas = canvas_owner.getornull(p_canvas);
+ Canvas *canvas = canvas_owner.get_or_null(p_canvas);
ERR_FAIL_COND(!canvas);
- Item *canvas_item = canvas_item_owner.getornull(p_item);
+ Item *canvas_item = canvas_item_owner.get_or_null(p_item);
ERR_FAIL_COND(!canvas_item);
int idx = canvas->find_item(canvas_item);
@@ -407,7 +407,7 @@ void RendererCanvasCull::canvas_set_item_mirroring(RID p_canvas, RID p_item, con
}
void RendererCanvasCull::canvas_set_modulate(RID p_canvas, const Color &p_color) {
- Canvas *canvas = canvas_owner.getornull(p_canvas);
+ Canvas *canvas = canvas_owner.get_or_null(p_canvas);
ERR_FAIL_COND(!canvas);
canvas->modulate = p_color;
}
@@ -417,7 +417,7 @@ void RendererCanvasCull::canvas_set_disable_scale(bool p_disable) {
}
void RendererCanvasCull::canvas_set_parent(RID p_canvas, RID p_parent, float p_scale) {
- Canvas *canvas = canvas_owner.getornull(p_canvas);
+ Canvas *canvas = canvas_owner.get_or_null(p_canvas);
ERR_FAIL_COND(!canvas);
canvas->parent = p_parent;
@@ -432,15 +432,15 @@ void RendererCanvasCull::canvas_item_initialize(RID p_rid) {
}
void RendererCanvasCull::canvas_item_set_parent(RID p_item, RID p_parent) {
- Item *canvas_item = canvas_item_owner.getornull(p_item);
+ Item *canvas_item = canvas_item_owner.get_or_null(p_item);
ERR_FAIL_COND(!canvas_item);
if (canvas_item->parent.is_valid()) {
if (canvas_owner.owns(canvas_item->parent)) {
- Canvas *canvas = canvas_owner.getornull(canvas_item->parent);
+ Canvas *canvas = canvas_owner.get_or_null(canvas_item->parent);
canvas->erase_item(canvas_item);
} else if (canvas_item_owner.owns(canvas_item->parent)) {
- Item *item_owner = canvas_item_owner.getornull(canvas_item->parent);
+ Item *item_owner = canvas_item_owner.get_or_null(canvas_item->parent);
item_owner->child_items.erase(canvas_item);
if (item_owner->sort_y) {
@@ -453,13 +453,13 @@ void RendererCanvasCull::canvas_item_set_parent(RID p_item, RID p_parent) {
if (p_parent.is_valid()) {
if (canvas_owner.owns(p_parent)) {
- Canvas *canvas = canvas_owner.getornull(p_parent);
+ Canvas *canvas = canvas_owner.get_or_null(p_parent);
Canvas::ChildItem ci;
ci.item = canvas_item;
canvas->child_items.push_back(ci);
canvas->children_order_dirty = true;
} else if (canvas_item_owner.owns(p_parent)) {
- Item *item_owner = canvas_item_owner.getornull(p_parent);
+ Item *item_owner = canvas_item_owner.get_or_null(p_parent);
item_owner->child_items.push_back(canvas_item);
item_owner->children_order_dirty = true;
@@ -476,7 +476,7 @@ void RendererCanvasCull::canvas_item_set_parent(RID p_item, RID p_parent) {
}
void RendererCanvasCull::canvas_item_set_visible(RID p_item, bool p_visible) {
- Item *canvas_item = canvas_item_owner.getornull(p_item);
+ Item *canvas_item = canvas_item_owner.get_or_null(p_item);
ERR_FAIL_COND(!canvas_item);
canvas_item->visible = p_visible;
@@ -485,35 +485,35 @@ void RendererCanvasCull::canvas_item_set_visible(RID p_item, bool p_visible) {
}
void RendererCanvasCull::canvas_item_set_light_mask(RID p_item, int p_mask) {
- Item *canvas_item = canvas_item_owner.getornull(p_item);
+ Item *canvas_item = canvas_item_owner.get_or_null(p_item);
ERR_FAIL_COND(!canvas_item);
canvas_item->light_mask = p_mask;
}
void RendererCanvasCull::canvas_item_set_transform(RID p_item, const Transform2D &p_transform) {
- Item *canvas_item = canvas_item_owner.getornull(p_item);
+ Item *canvas_item = canvas_item_owner.get_or_null(p_item);
ERR_FAIL_COND(!canvas_item);
canvas_item->xform = p_transform;
}
void RendererCanvasCull::canvas_item_set_clip(RID p_item, bool p_clip) {
- Item *canvas_item = canvas_item_owner.getornull(p_item);
+ Item *canvas_item = canvas_item_owner.get_or_null(p_item);
ERR_FAIL_COND(!canvas_item);
canvas_item->clip = p_clip;
}
void RendererCanvasCull::canvas_item_set_distance_field_mode(RID p_item, bool p_enable) {
- Item *canvas_item = canvas_item_owner.getornull(p_item);
+ Item *canvas_item = canvas_item_owner.get_or_null(p_item);
ERR_FAIL_COND(!canvas_item);
canvas_item->distance_field = p_enable;
}
void RendererCanvasCull::canvas_item_set_custom_rect(RID p_item, bool p_custom_rect, const Rect2 &p_rect) {
- Item *canvas_item = canvas_item_owner.getornull(p_item);
+ Item *canvas_item = canvas_item_owner.get_or_null(p_item);
ERR_FAIL_COND(!canvas_item);
canvas_item->custom_rect = p_custom_rect;
@@ -521,35 +521,35 @@ void RendererCanvasCull::canvas_item_set_custom_rect(RID p_item, bool p_custom_r
}
void RendererCanvasCull::canvas_item_set_modulate(RID p_item, const Color &p_color) {
- Item *canvas_item = canvas_item_owner.getornull(p_item);
+ Item *canvas_item = canvas_item_owner.get_or_null(p_item);
ERR_FAIL_COND(!canvas_item);
canvas_item->modulate = p_color;
}
void RendererCanvasCull::canvas_item_set_self_modulate(RID p_item, const Color &p_color) {
- Item *canvas_item = canvas_item_owner.getornull(p_item);
+ Item *canvas_item = canvas_item_owner.get_or_null(p_item);
ERR_FAIL_COND(!canvas_item);
canvas_item->self_modulate = p_color;
}
void RendererCanvasCull::canvas_item_set_draw_behind_parent(RID p_item, bool p_enable) {
- Item *canvas_item = canvas_item_owner.getornull(p_item);
+ Item *canvas_item = canvas_item_owner.get_or_null(p_item);
ERR_FAIL_COND(!canvas_item);
canvas_item->behind = p_enable;
}
void RendererCanvasCull::canvas_item_set_update_when_visible(RID p_item, bool p_update) {
- Item *canvas_item = canvas_item_owner.getornull(p_item);
+ Item *canvas_item = canvas_item_owner.get_or_null(p_item);
ERR_FAIL_COND(!canvas_item);
canvas_item->update_when_visible = p_update;
}
void RendererCanvasCull::canvas_item_add_line(RID p_item, const Point2 &p_from, const Point2 &p_to, const Color &p_color, float p_width) {
- Item *canvas_item = canvas_item_owner.getornull(p_item);
+ Item *canvas_item = canvas_item_owner.get_or_null(p_item);
ERR_FAIL_COND(!canvas_item);
Item::CommandPrimitive *line = canvas_item->alloc_command<Item::CommandPrimitive>();
@@ -573,7 +573,7 @@ void RendererCanvasCull::canvas_item_add_line(RID p_item, const Point2 &p_from,
void RendererCanvasCull::canvas_item_add_polyline(RID p_item, const Vector<Point2> &p_points, const Vector<Color> &p_colors, float p_width, bool p_antialiased) {
ERR_FAIL_COND(p_points.size() < 2);
- Item *canvas_item = canvas_item_owner.getornull(p_item);
+ Item *canvas_item = canvas_item_owner.get_or_null(p_item);
ERR_FAIL_COND(!canvas_item);
Color color = Color(1, 1, 1, 1);
@@ -714,7 +714,7 @@ void RendererCanvasCull::canvas_item_add_polyline(RID p_item, const Vector<Point
void RendererCanvasCull::canvas_item_add_multiline(RID p_item, const Vector<Point2> &p_points, const Vector<Color> &p_colors, float p_width) {
ERR_FAIL_COND(p_points.size() < 2);
- Item *canvas_item = canvas_item_owner.getornull(p_item);
+ Item *canvas_item = canvas_item_owner.get_or_null(p_item);
ERR_FAIL_COND(!canvas_item);
Item::CommandPolygon *pline = canvas_item->alloc_command<Item::CommandPolygon>();
@@ -730,7 +730,7 @@ void RendererCanvasCull::canvas_item_add_multiline(RID p_item, const Vector<Poin
}
void RendererCanvasCull::canvas_item_add_rect(RID p_item, const Rect2 &p_rect, const Color &p_color) {
- Item *canvas_item = canvas_item_owner.getornull(p_item);
+ Item *canvas_item = canvas_item_owner.get_or_null(p_item);
ERR_FAIL_COND(!canvas_item);
Item::CommandRect *rect = canvas_item->alloc_command<Item::CommandRect>();
@@ -740,7 +740,7 @@ void RendererCanvasCull::canvas_item_add_rect(RID p_item, const Rect2 &p_rect, c
}
void RendererCanvasCull::canvas_item_add_circle(RID p_item, const Point2 &p_pos, float p_radius, const Color &p_color) {
- Item *canvas_item = canvas_item_owner.getornull(p_item);
+ Item *canvas_item = canvas_item_owner.get_or_null(p_item);
ERR_FAIL_COND(!canvas_item);
Item::CommandPolygon *circle = canvas_item->alloc_command<Item::CommandPolygon>();
@@ -776,7 +776,7 @@ void RendererCanvasCull::canvas_item_add_circle(RID p_item, const Point2 &p_pos,
}
void RendererCanvasCull::canvas_item_add_texture_rect(RID p_item, const Rect2 &p_rect, RID p_texture, bool p_tile, const Color &p_modulate, bool p_transpose) {
- Item *canvas_item = canvas_item_owner.getornull(p_item);
+ Item *canvas_item = canvas_item_owner.get_or_null(p_item);
ERR_FAIL_COND(!canvas_item);
Item::CommandRect *rect = canvas_item->alloc_command<Item::CommandRect>();
@@ -807,7 +807,7 @@ void RendererCanvasCull::canvas_item_add_texture_rect(RID p_item, const Rect2 &p
}
void RendererCanvasCull::canvas_item_add_msdf_texture_rect_region(RID p_item, const Rect2 &p_rect, RID p_texture, const Rect2 &p_src_rect, const Color &p_modulate, int p_outline_size, float p_px_range) {
- Item *canvas_item = canvas_item_owner.getornull(p_item);
+ Item *canvas_item = canvas_item_owner.get_or_null(p_item);
ERR_FAIL_COND(!canvas_item);
Item::CommandRect *rect = canvas_item->alloc_command<Item::CommandRect>();
@@ -841,7 +841,7 @@ void RendererCanvasCull::canvas_item_add_msdf_texture_rect_region(RID p_item, co
}
void RendererCanvasCull::canvas_item_add_texture_rect_region(RID p_item, const Rect2 &p_rect, RID p_texture, const Rect2 &p_src_rect, const Color &p_modulate, bool p_transpose, bool p_clip_uv) {
- Item *canvas_item = canvas_item_owner.getornull(p_item);
+ Item *canvas_item = canvas_item_owner.get_or_null(p_item);
ERR_FAIL_COND(!canvas_item);
Item::CommandRect *rect = canvas_item->alloc_command<Item::CommandRect>();
@@ -882,7 +882,7 @@ void RendererCanvasCull::canvas_item_add_texture_rect_region(RID p_item, const R
}
void RendererCanvasCull::canvas_item_add_nine_patch(RID p_item, const Rect2 &p_rect, const Rect2 &p_source, RID p_texture, const Vector2 &p_topleft, const Vector2 &p_bottomright, RS::NinePatchAxisMode p_x_axis_mode, RS::NinePatchAxisMode p_y_axis_mode, bool p_draw_center, const Color &p_modulate) {
- Item *canvas_item = canvas_item_owner.getornull(p_item);
+ Item *canvas_item = canvas_item_owner.get_or_null(p_item);
ERR_FAIL_COND(!canvas_item);
Item::CommandNinePatch *style = canvas_item->alloc_command<Item::CommandNinePatch>();
@@ -906,7 +906,7 @@ void RendererCanvasCull::canvas_item_add_primitive(RID p_item, const Vector<Poin
uint32_t pc = p_points.size();
ERR_FAIL_COND(pc == 0 || pc > 4);
- Item *canvas_item = canvas_item_owner.getornull(p_item);
+ Item *canvas_item = canvas_item_owner.get_or_null(p_item);
ERR_FAIL_COND(!canvas_item);
Item::CommandPrimitive *prim = canvas_item->alloc_command<Item::CommandPrimitive>();
@@ -932,7 +932,7 @@ void RendererCanvasCull::canvas_item_add_primitive(RID p_item, const Vector<Poin
}
void RendererCanvasCull::canvas_item_add_polygon(RID p_item, const Vector<Point2> &p_points, const Vector<Color> &p_colors, const Vector<Point2> &p_uvs, RID p_texture) {
- Item *canvas_item = canvas_item_owner.getornull(p_item);
+ Item *canvas_item = canvas_item_owner.get_or_null(p_item);
ERR_FAIL_COND(!canvas_item);
#ifdef DEBUG_ENABLED
int pointcount = p_points.size();
@@ -953,7 +953,7 @@ void RendererCanvasCull::canvas_item_add_polygon(RID p_item, const Vector<Point2
}
void RendererCanvasCull::canvas_item_add_triangle_array(RID p_item, const Vector<int> &p_indices, const Vector<Point2> &p_points, const Vector<Color> &p_colors, const Vector<Point2> &p_uvs, const Vector<int> &p_bones, const Vector<float> &p_weights, RID p_texture, int p_count) {
- Item *canvas_item = canvas_item_owner.getornull(p_item);
+ Item *canvas_item = canvas_item_owner.get_or_null(p_item);
ERR_FAIL_COND(!canvas_item);
int vertex_count = p_points.size();
@@ -976,7 +976,7 @@ void RendererCanvasCull::canvas_item_add_triangle_array(RID p_item, const Vector
}
void RendererCanvasCull::canvas_item_add_set_transform(RID p_item, const Transform2D &p_transform) {
- Item *canvas_item = canvas_item_owner.getornull(p_item);
+ Item *canvas_item = canvas_item_owner.get_or_null(p_item);
ERR_FAIL_COND(!canvas_item);
Item::CommandTransform *tr = canvas_item->alloc_command<Item::CommandTransform>();
@@ -985,7 +985,7 @@ void RendererCanvasCull::canvas_item_add_set_transform(RID p_item, const Transfo
}
void RendererCanvasCull::canvas_item_add_mesh(RID p_item, const RID &p_mesh, const Transform2D &p_transform, const Color &p_modulate, RID p_texture) {
- Item *canvas_item = canvas_item_owner.getornull(p_item);
+ Item *canvas_item = canvas_item_owner.get_or_null(p_item);
ERR_FAIL_COND(!canvas_item);
ERR_FAIL_COND(!p_mesh.is_valid());
@@ -1004,7 +1004,7 @@ void RendererCanvasCull::canvas_item_add_mesh(RID p_item, const RID &p_mesh, con
}
void RendererCanvasCull::canvas_item_add_particles(RID p_item, RID p_particles, RID p_texture) {
- Item *canvas_item = canvas_item_owner.getornull(p_item);
+ Item *canvas_item = canvas_item_owner.get_or_null(p_item);
ERR_FAIL_COND(!canvas_item);
Item::CommandParticles *part = canvas_item->alloc_command<Item::CommandParticles>();
@@ -1018,7 +1018,7 @@ void RendererCanvasCull::canvas_item_add_particles(RID p_item, RID p_particles,
}
void RendererCanvasCull::canvas_item_add_multimesh(RID p_item, RID p_mesh, RID p_texture) {
- Item *canvas_item = canvas_item_owner.getornull(p_item);
+ Item *canvas_item = canvas_item_owner.get_or_null(p_item);
ERR_FAIL_COND(!canvas_item);
Item::CommandMultiMesh *mm = canvas_item->alloc_command<Item::CommandMultiMesh>();
@@ -1029,7 +1029,7 @@ void RendererCanvasCull::canvas_item_add_multimesh(RID p_item, RID p_mesh, RID p
}
void RendererCanvasCull::canvas_item_add_clip_ignore(RID p_item, bool p_ignore) {
- Item *canvas_item = canvas_item_owner.getornull(p_item);
+ Item *canvas_item = canvas_item_owner.get_or_null(p_item);
ERR_FAIL_COND(!canvas_item);
Item::CommandClipIgnore *ci = canvas_item->alloc_command<Item::CommandClipIgnore>();
@@ -1038,7 +1038,7 @@ void RendererCanvasCull::canvas_item_add_clip_ignore(RID p_item, bool p_ignore)
}
void RendererCanvasCull::canvas_item_add_animation_slice(RID p_item, double p_animation_length, double p_slice_begin, double p_slice_end, double p_offset) {
- Item *canvas_item = canvas_item_owner.getornull(p_item);
+ Item *canvas_item = canvas_item_owner.get_or_null(p_item);
ERR_FAIL_COND(!canvas_item);
Item::CommandAnimationSlice *as = canvas_item->alloc_command<Item::CommandAnimationSlice>();
@@ -1050,7 +1050,7 @@ void RendererCanvasCull::canvas_item_add_animation_slice(RID p_item, double p_an
}
void RendererCanvasCull::canvas_item_set_sort_children_by_y(RID p_item, bool p_enable) {
- Item *canvas_item = canvas_item_owner.getornull(p_item);
+ Item *canvas_item = canvas_item_owner.get_or_null(p_item);
ERR_FAIL_COND(!canvas_item);
canvas_item->sort_y = p_enable;
@@ -1061,21 +1061,21 @@ void RendererCanvasCull::canvas_item_set_sort_children_by_y(RID p_item, bool p_e
void RendererCanvasCull::canvas_item_set_z_index(RID p_item, int p_z) {
ERR_FAIL_COND(p_z < RS::CANVAS_ITEM_Z_MIN || p_z > RS::CANVAS_ITEM_Z_MAX);
- Item *canvas_item = canvas_item_owner.getornull(p_item);
+ Item *canvas_item = canvas_item_owner.get_or_null(p_item);
ERR_FAIL_COND(!canvas_item);
canvas_item->z_index = p_z;
}
void RendererCanvasCull::canvas_item_set_z_as_relative_to_parent(RID p_item, bool p_enable) {
- Item *canvas_item = canvas_item_owner.getornull(p_item);
+ Item *canvas_item = canvas_item_owner.get_or_null(p_item);
ERR_FAIL_COND(!canvas_item);
canvas_item->z_relative = p_enable;
}
void RendererCanvasCull::canvas_item_attach_skeleton(RID p_item, RID p_skeleton) {
- Item *canvas_item = canvas_item_owner.getornull(p_item);
+ Item *canvas_item = canvas_item_owner.get_or_null(p_item);
ERR_FAIL_COND(!canvas_item);
if (canvas_item->skeleton == p_skeleton) {
return;
@@ -1104,7 +1104,7 @@ void RendererCanvasCull::canvas_item_attach_skeleton(RID p_item, RID p_skeleton)
}
void RendererCanvasCull::canvas_item_set_copy_to_backbuffer(RID p_item, bool p_enable, const Rect2 &p_rect) {
- Item *canvas_item = canvas_item_owner.getornull(p_item);
+ Item *canvas_item = canvas_item_owner.get_or_null(p_item);
ERR_FAIL_COND(!canvas_item);
if (p_enable && (canvas_item->copy_back_buffer == nullptr)) {
canvas_item->copy_back_buffer = memnew(RendererCanvasRender::Item::CopyBackBuffer);
@@ -1121,25 +1121,25 @@ void RendererCanvasCull::canvas_item_set_copy_to_backbuffer(RID p_item, bool p_e
}
void RendererCanvasCull::canvas_item_clear(RID p_item) {
- Item *canvas_item = canvas_item_owner.getornull(p_item);
+ Item *canvas_item = canvas_item_owner.get_or_null(p_item);
ERR_FAIL_COND(!canvas_item);
canvas_item->clear();
}
void RendererCanvasCull::canvas_item_set_draw_index(RID p_item, int p_index) {
- Item *canvas_item = canvas_item_owner.getornull(p_item);
+ Item *canvas_item = canvas_item_owner.get_or_null(p_item);
ERR_FAIL_COND(!canvas_item);
canvas_item->index = p_index;
if (canvas_item_owner.owns(canvas_item->parent)) {
- Item *canvas_item_parent = canvas_item_owner.getornull(canvas_item->parent);
+ Item *canvas_item_parent = canvas_item_owner.get_or_null(canvas_item->parent);
canvas_item_parent->children_order_dirty = true;
return;
}
- Canvas *canvas = canvas_owner.getornull(canvas_item->parent);
+ Canvas *canvas = canvas_owner.get_or_null(canvas_item->parent);
if (canvas) {
canvas->children_order_dirty = true;
return;
@@ -1147,21 +1147,21 @@ void RendererCanvasCull::canvas_item_set_draw_index(RID p_item, int p_index) {
}
void RendererCanvasCull::canvas_item_set_material(RID p_item, RID p_material) {
- Item *canvas_item = canvas_item_owner.getornull(p_item);
+ Item *canvas_item = canvas_item_owner.get_or_null(p_item);
ERR_FAIL_COND(!canvas_item);
canvas_item->material = p_material;
}
void RendererCanvasCull::canvas_item_set_use_parent_material(RID p_item, bool p_enable) {
- Item *canvas_item = canvas_item_owner.getornull(p_item);
+ Item *canvas_item = canvas_item_owner.get_or_null(p_item);
ERR_FAIL_COND(!canvas_item);
canvas_item->use_parent_material = p_enable;
}
void RendererCanvasCull::canvas_item_set_visibility_notifier(RID p_item, bool p_enable, const Rect2 &p_area, const Callable &p_enter_callable, const Callable &p_exit_callable) {
- Item *canvas_item = canvas_item_owner.getornull(p_item);
+ Item *canvas_item = canvas_item_owner.get_or_null(p_item);
ERR_FAIL_COND(!canvas_item);
if (p_enable) {
@@ -1181,7 +1181,7 @@ void RendererCanvasCull::canvas_item_set_visibility_notifier(RID p_item, bool p_
}
void RendererCanvasCull::canvas_item_set_canvas_group_mode(RID p_item, RS::CanvasGroupMode p_mode, float p_clear_margin, bool p_fit_empty, float p_fit_margin, bool p_blur_mipmaps) {
- Item *canvas_item = canvas_item_owner.getornull(p_item);
+ Item *canvas_item = canvas_item_owner.get_or_null(p_item);
ERR_FAIL_COND(!canvas_item);
if (p_mode == RS::CANVAS_GROUP_MODE_DISABLED) {
@@ -1206,12 +1206,12 @@ RID RendererCanvasCull::canvas_light_allocate() {
}
void RendererCanvasCull::canvas_light_initialize(RID p_rid) {
canvas_light_owner.initialize_rid(p_rid);
- RendererCanvasRender::Light *clight = canvas_light_owner.getornull(p_rid);
+ RendererCanvasRender::Light *clight = canvas_light_owner.get_or_null(p_rid);
clight->light_internal = RSG::canvas_render->light_create();
}
void RendererCanvasCull::canvas_light_set_mode(RID p_light, RS::CanvasLightMode p_mode) {
- RendererCanvasRender::Light *clight = canvas_light_owner.getornull(p_light);
+ RendererCanvasRender::Light *clight = canvas_light_owner.get_or_null(p_light);
ERR_FAIL_COND(!clight);
if (clight->mode == p_mode) {
@@ -1232,11 +1232,11 @@ void RendererCanvasCull::canvas_light_set_mode(RID p_light, RS::CanvasLightMode
}
void RendererCanvasCull::canvas_light_attach_to_canvas(RID p_light, RID p_canvas) {
- RendererCanvasRender::Light *clight = canvas_light_owner.getornull(p_light);
+ RendererCanvasRender::Light *clight = canvas_light_owner.get_or_null(p_light);
ERR_FAIL_COND(!clight);
if (clight->canvas.is_valid()) {
- Canvas *canvas = canvas_owner.getornull(clight->canvas);
+ Canvas *canvas = canvas_owner.get_or_null(clight->canvas);
if (clight->mode == RS::CANVAS_LIGHT_MODE_POINT) {
canvas->lights.erase(clight);
} else {
@@ -1251,7 +1251,7 @@ void RendererCanvasCull::canvas_light_attach_to_canvas(RID p_light, RID p_canvas
clight->canvas = p_canvas;
if (clight->canvas.is_valid()) {
- Canvas *canvas = canvas_owner.getornull(clight->canvas);
+ Canvas *canvas = canvas_owner.get_or_null(clight->canvas);
if (clight->mode == RS::CANVAS_LIGHT_MODE_POINT) {
canvas->lights.insert(clight);
} else {
@@ -1261,28 +1261,28 @@ void RendererCanvasCull::canvas_light_attach_to_canvas(RID p_light, RID p_canvas
}
void RendererCanvasCull::canvas_light_set_enabled(RID p_light, bool p_enabled) {
- RendererCanvasRender::Light *clight = canvas_light_owner.getornull(p_light);
+ RendererCanvasRender::Light *clight = canvas_light_owner.get_or_null(p_light);
ERR_FAIL_COND(!clight);
clight->enabled = p_enabled;
}
void RendererCanvasCull::canvas_light_set_texture_scale(RID p_light, float p_scale) {
- RendererCanvasRender::Light *clight = canvas_light_owner.getornull(p_light);
+ RendererCanvasRender::Light *clight = canvas_light_owner.get_or_null(p_light);
ERR_FAIL_COND(!clight);
clight->scale = p_scale;
}
void RendererCanvasCull::canvas_light_set_transform(RID p_light, const Transform2D &p_transform) {
- RendererCanvasRender::Light *clight = canvas_light_owner.getornull(p_light);
+ RendererCanvasRender::Light *clight = canvas_light_owner.get_or_null(p_light);
ERR_FAIL_COND(!clight);
clight->xform = p_transform;
}
void RendererCanvasCull::canvas_light_set_texture(RID p_light, RID p_texture) {
- RendererCanvasRender::Light *clight = canvas_light_owner.getornull(p_light);
+ RendererCanvasRender::Light *clight = canvas_light_owner.get_or_null(p_light);
ERR_FAIL_COND(!clight);
if (clight->texture == p_texture) {
@@ -1294,35 +1294,35 @@ void RendererCanvasCull::canvas_light_set_texture(RID p_light, RID p_texture) {
}
void RendererCanvasCull::canvas_light_set_texture_offset(RID p_light, const Vector2 &p_offset) {
- RendererCanvasRender::Light *clight = canvas_light_owner.getornull(p_light);
+ RendererCanvasRender::Light *clight = canvas_light_owner.get_or_null(p_light);
ERR_FAIL_COND(!clight);
clight->texture_offset = p_offset;
}
void RendererCanvasCull::canvas_light_set_color(RID p_light, const Color &p_color) {
- RendererCanvasRender::Light *clight = canvas_light_owner.getornull(p_light);
+ RendererCanvasRender::Light *clight = canvas_light_owner.get_or_null(p_light);
ERR_FAIL_COND(!clight);
clight->color = p_color;
}
void RendererCanvasCull::canvas_light_set_height(RID p_light, float p_height) {
- RendererCanvasRender::Light *clight = canvas_light_owner.getornull(p_light);
+ RendererCanvasRender::Light *clight = canvas_light_owner.get_or_null(p_light);
ERR_FAIL_COND(!clight);
clight->height = p_height;
}
void RendererCanvasCull::canvas_light_set_energy(RID p_light, float p_energy) {
- RendererCanvasRender::Light *clight = canvas_light_owner.getornull(p_light);
+ RendererCanvasRender::Light *clight = canvas_light_owner.get_or_null(p_light);
ERR_FAIL_COND(!clight);
clight->energy = p_energy;
}
void RendererCanvasCull::canvas_light_set_z_range(RID p_light, int p_min_z, int p_max_z) {
- RendererCanvasRender::Light *clight = canvas_light_owner.getornull(p_light);
+ RendererCanvasRender::Light *clight = canvas_light_owner.get_or_null(p_light);
ERR_FAIL_COND(!clight);
clight->z_min = p_min_z;
@@ -1330,7 +1330,7 @@ void RendererCanvasCull::canvas_light_set_z_range(RID p_light, int p_min_z, int
}
void RendererCanvasCull::canvas_light_set_layer_range(RID p_light, int p_min_layer, int p_max_layer) {
- RendererCanvasRender::Light *clight = canvas_light_owner.getornull(p_light);
+ RendererCanvasRender::Light *clight = canvas_light_owner.get_or_null(p_light);
ERR_FAIL_COND(!clight);
clight->layer_max = p_max_layer;
@@ -1338,35 +1338,35 @@ void RendererCanvasCull::canvas_light_set_layer_range(RID p_light, int p_min_lay
}
void RendererCanvasCull::canvas_light_set_item_cull_mask(RID p_light, int p_mask) {
- RendererCanvasRender::Light *clight = canvas_light_owner.getornull(p_light);
+ RendererCanvasRender::Light *clight = canvas_light_owner.get_or_null(p_light);
ERR_FAIL_COND(!clight);
clight->item_mask = p_mask;
}
void RendererCanvasCull::canvas_light_set_item_shadow_cull_mask(RID p_light, int p_mask) {
- RendererCanvasRender::Light *clight = canvas_light_owner.getornull(p_light);
+ RendererCanvasRender::Light *clight = canvas_light_owner.get_or_null(p_light);
ERR_FAIL_COND(!clight);
clight->item_shadow_mask = p_mask;
}
void RendererCanvasCull::canvas_light_set_directional_distance(RID p_light, float p_distance) {
- RendererCanvasRender::Light *clight = canvas_light_owner.getornull(p_light);
+ RendererCanvasRender::Light *clight = canvas_light_owner.get_or_null(p_light);
ERR_FAIL_COND(!clight);
clight->directional_distance = p_distance;
}
void RendererCanvasCull::canvas_light_set_blend_mode(RID p_light, RS::CanvasLightBlendMode p_mode) {
- RendererCanvasRender::Light *clight = canvas_light_owner.getornull(p_light);
+ RendererCanvasRender::Light *clight = canvas_light_owner.get_or_null(p_light);
ERR_FAIL_COND(!clight);
clight->blend_mode = p_mode;
}
void RendererCanvasCull::canvas_light_set_shadow_enabled(RID p_light, bool p_enabled) {
- RendererCanvasRender::Light *clight = canvas_light_owner.getornull(p_light);
+ RendererCanvasRender::Light *clight = canvas_light_owner.get_or_null(p_light);
ERR_FAIL_COND(!clight);
if (clight->use_shadow == p_enabled) {
@@ -1378,21 +1378,21 @@ void RendererCanvasCull::canvas_light_set_shadow_enabled(RID p_light, bool p_ena
}
void RendererCanvasCull::canvas_light_set_shadow_filter(RID p_light, RS::CanvasLightShadowFilter p_filter) {
- RendererCanvasRender::Light *clight = canvas_light_owner.getornull(p_light);
+ RendererCanvasRender::Light *clight = canvas_light_owner.get_or_null(p_light);
ERR_FAIL_COND(!clight);
clight->shadow_filter = p_filter;
}
void RendererCanvasCull::canvas_light_set_shadow_color(RID p_light, const Color &p_color) {
- RendererCanvasRender::Light *clight = canvas_light_owner.getornull(p_light);
+ RendererCanvasRender::Light *clight = canvas_light_owner.get_or_null(p_light);
ERR_FAIL_COND(!clight);
clight->shadow_color = p_color;
}
void RendererCanvasCull::canvas_light_set_shadow_smooth(RID p_light, float p_smooth) {
- RendererCanvasRender::Light *clight = canvas_light_owner.getornull(p_light);
+ RendererCanvasRender::Light *clight = canvas_light_owner.get_or_null(p_light);
ERR_FAIL_COND(!clight);
clight->shadow_smooth = p_smooth;
}
@@ -1405,11 +1405,11 @@ void RendererCanvasCull::canvas_light_occluder_initialize(RID p_rid) {
}
void RendererCanvasCull::canvas_light_occluder_attach_to_canvas(RID p_occluder, RID p_canvas) {
- RendererCanvasRender::LightOccluderInstance *occluder = canvas_light_occluder_owner.getornull(p_occluder);
+ RendererCanvasRender::LightOccluderInstance *occluder = canvas_light_occluder_owner.get_or_null(p_occluder);
ERR_FAIL_COND(!occluder);
if (occluder->canvas.is_valid()) {
- Canvas *canvas = canvas_owner.getornull(occluder->canvas);
+ Canvas *canvas = canvas_owner.get_or_null(occluder->canvas);
canvas->occluders.erase(occluder);
}
@@ -1420,24 +1420,24 @@ void RendererCanvasCull::canvas_light_occluder_attach_to_canvas(RID p_occluder,
occluder->canvas = p_canvas;
if (occluder->canvas.is_valid()) {
- Canvas *canvas = canvas_owner.getornull(occluder->canvas);
+ Canvas *canvas = canvas_owner.get_or_null(occluder->canvas);
canvas->occluders.insert(occluder);
}
}
void RendererCanvasCull::canvas_light_occluder_set_enabled(RID p_occluder, bool p_enabled) {
- RendererCanvasRender::LightOccluderInstance *occluder = canvas_light_occluder_owner.getornull(p_occluder);
+ RendererCanvasRender::LightOccluderInstance *occluder = canvas_light_occluder_owner.get_or_null(p_occluder);
ERR_FAIL_COND(!occluder);
occluder->enabled = p_enabled;
}
void RendererCanvasCull::canvas_light_occluder_set_polygon(RID p_occluder, RID p_polygon) {
- RendererCanvasRender::LightOccluderInstance *occluder = canvas_light_occluder_owner.getornull(p_occluder);
+ RendererCanvasRender::LightOccluderInstance *occluder = canvas_light_occluder_owner.get_or_null(p_occluder);
ERR_FAIL_COND(!occluder);
if (occluder->polygon.is_valid()) {
- LightOccluderPolygon *occluder_poly = canvas_light_occluder_polygon_owner.getornull(p_polygon);
+ LightOccluderPolygon *occluder_poly = canvas_light_occluder_polygon_owner.get_or_null(p_polygon);
if (occluder_poly) {
occluder_poly->owners.erase(occluder);
}
@@ -1447,7 +1447,7 @@ void RendererCanvasCull::canvas_light_occluder_set_polygon(RID p_occluder, RID p
occluder->occluder = RID();
if (occluder->polygon.is_valid()) {
- LightOccluderPolygon *occluder_poly = canvas_light_occluder_polygon_owner.getornull(p_polygon);
+ LightOccluderPolygon *occluder_poly = canvas_light_occluder_polygon_owner.get_or_null(p_polygon);
if (!occluder_poly) {
occluder->polygon = RID();
ERR_FAIL_COND(!occluder_poly);
@@ -1461,19 +1461,19 @@ void RendererCanvasCull::canvas_light_occluder_set_polygon(RID p_occluder, RID p
}
void RendererCanvasCull::canvas_light_occluder_set_as_sdf_collision(RID p_occluder, bool p_enable) {
- RendererCanvasRender::LightOccluderInstance *occluder = canvas_light_occluder_owner.getornull(p_occluder);
+ RendererCanvasRender::LightOccluderInstance *occluder = canvas_light_occluder_owner.get_or_null(p_occluder);
ERR_FAIL_COND(!occluder);
}
void RendererCanvasCull::canvas_light_occluder_set_transform(RID p_occluder, const Transform2D &p_xform) {
- RendererCanvasRender::LightOccluderInstance *occluder = canvas_light_occluder_owner.getornull(p_occluder);
+ RendererCanvasRender::LightOccluderInstance *occluder = canvas_light_occluder_owner.get_or_null(p_occluder);
ERR_FAIL_COND(!occluder);
occluder->xform = p_xform;
}
void RendererCanvasCull::canvas_light_occluder_set_light_mask(RID p_occluder, int p_mask) {
- RendererCanvasRender::LightOccluderInstance *occluder = canvas_light_occluder_owner.getornull(p_occluder);
+ RendererCanvasRender::LightOccluderInstance *occluder = canvas_light_occluder_owner.get_or_null(p_occluder);
ERR_FAIL_COND(!occluder);
occluder->light_mask = p_mask;
@@ -1484,12 +1484,12 @@ RID RendererCanvasCull::canvas_occluder_polygon_allocate() {
}
void RendererCanvasCull::canvas_occluder_polygon_initialize(RID p_rid) {
canvas_light_occluder_polygon_owner.initialize_rid(p_rid);
- LightOccluderPolygon *occluder_poly = canvas_light_occluder_polygon_owner.getornull(p_rid);
+ LightOccluderPolygon *occluder_poly = canvas_light_occluder_polygon_owner.get_or_null(p_rid);
occluder_poly->occluder = RSG::canvas_render->occluder_polygon_create();
}
void RendererCanvasCull::canvas_occluder_polygon_set_shape(RID p_occluder_polygon, const Vector<Vector2> &p_shape, bool p_closed) {
- LightOccluderPolygon *occluder_poly = canvas_light_occluder_polygon_owner.getornull(p_occluder_polygon);
+ LightOccluderPolygon *occluder_poly = canvas_light_occluder_polygon_owner.get_or_null(p_occluder_polygon);
ERR_FAIL_COND(!occluder_poly);
uint32_t pc = p_shape.size();
@@ -1513,7 +1513,7 @@ void RendererCanvasCull::canvas_occluder_polygon_set_shape(RID p_occluder_polygo
}
void RendererCanvasCull::canvas_occluder_polygon_set_cull_mode(RID p_occluder_polygon, RS::CanvasOccluderPolygonCullMode p_mode) {
- LightOccluderPolygon *occluder_poly = canvas_light_occluder_polygon_owner.getornull(p_occluder_polygon);
+ LightOccluderPolygon *occluder_poly = canvas_light_occluder_polygon_owner.get_or_null(p_occluder_polygon);
ERR_FAIL_COND(!occluder_poly);
occluder_poly->cull_mode = p_mode;
RSG::canvas_render->occluder_polygon_set_cull_mode(occluder_poly->occluder, p_mode);
@@ -1550,12 +1550,12 @@ void RendererCanvasCull::canvas_texture_set_texture_repeat(RID p_canvas_texture,
}
void RendererCanvasCull::canvas_item_set_default_texture_filter(RID p_item, RS::CanvasItemTextureFilter p_filter) {
- Item *ci = canvas_item_owner.getornull(p_item);
+ Item *ci = canvas_item_owner.get_or_null(p_item);
ERR_FAIL_COND(!ci);
ci->texture_filter = p_filter;
}
void RendererCanvasCull::canvas_item_set_default_texture_repeat(RID p_item, RS::CanvasItemTextureRepeat p_repeat) {
- Item *ci = canvas_item_owner.getornull(p_item);
+ Item *ci = canvas_item_owner.get_or_null(p_item);
ERR_FAIL_COND(!ci);
ci->texture_repeat = p_repeat;
}
@@ -1600,11 +1600,11 @@ void RendererCanvasCull::update_visibility_notifiers() {
bool RendererCanvasCull::free(RID p_rid) {
if (canvas_owner.owns(p_rid)) {
- Canvas *canvas = canvas_owner.getornull(p_rid);
+ Canvas *canvas = canvas_owner.get_or_null(p_rid);
ERR_FAIL_COND_V(!canvas, false);
while (canvas->viewports.size()) {
- RendererViewport::Viewport *vp = RSG::viewport->viewport_owner.getornull(canvas->viewports.front()->get());
+ RendererViewport::Viewport *vp = RSG::viewport->viewport_owner.get_or_null(canvas->viewports.front()->get());
ERR_FAIL_COND_V(!vp, true);
Map<RID, RendererViewport::Viewport::CanvasData>::Element *E = vp->canvas_map.find(p_rid);
@@ -1629,15 +1629,15 @@ bool RendererCanvasCull::free(RID p_rid) {
canvas_owner.free(p_rid);
} else if (canvas_item_owner.owns(p_rid)) {
- Item *canvas_item = canvas_item_owner.getornull(p_rid);
+ Item *canvas_item = canvas_item_owner.get_or_null(p_rid);
ERR_FAIL_COND_V(!canvas_item, true);
if (canvas_item->parent.is_valid()) {
if (canvas_owner.owns(canvas_item->parent)) {
- Canvas *canvas = canvas_owner.getornull(canvas_item->parent);
+ Canvas *canvas = canvas_owner.get_or_null(canvas_item->parent);
canvas->erase_item(canvas_item);
} else if (canvas_item_owner.owns(canvas_item->parent)) {
- Item *item_owner = canvas_item_owner.getornull(canvas_item->parent);
+ Item *item_owner = canvas_item_owner.get_or_null(canvas_item->parent);
item_owner->child_items.erase(canvas_item);
if (item_owner->sort_y) {
@@ -1663,11 +1663,11 @@ bool RendererCanvasCull::free(RID p_rid) {
canvas_item_owner.free(p_rid);
} else if (canvas_light_owner.owns(p_rid)) {
- RendererCanvasRender::Light *canvas_light = canvas_light_owner.getornull(p_rid);
+ RendererCanvasRender::Light *canvas_light = canvas_light_owner.get_or_null(p_rid);
ERR_FAIL_COND_V(!canvas_light, true);
if (canvas_light->canvas.is_valid()) {
- Canvas *canvas = canvas_owner.getornull(canvas_light->canvas);
+ Canvas *canvas = canvas_owner.get_or_null(canvas_light->canvas);
if (canvas) {
canvas->lights.erase(canvas_light);
}
@@ -1678,25 +1678,25 @@ bool RendererCanvasCull::free(RID p_rid) {
canvas_light_owner.free(p_rid);
} else if (canvas_light_occluder_owner.owns(p_rid)) {
- RendererCanvasRender::LightOccluderInstance *occluder = canvas_light_occluder_owner.getornull(p_rid);
+ RendererCanvasRender::LightOccluderInstance *occluder = canvas_light_occluder_owner.get_or_null(p_rid);
ERR_FAIL_COND_V(!occluder, true);
if (occluder->polygon.is_valid()) {
- LightOccluderPolygon *occluder_poly = canvas_light_occluder_polygon_owner.getornull(occluder->polygon);
+ LightOccluderPolygon *occluder_poly = canvas_light_occluder_polygon_owner.get_or_null(occluder->polygon);
if (occluder_poly) {
occluder_poly->owners.erase(occluder);
}
}
if (occluder->canvas.is_valid() && canvas_owner.owns(occluder->canvas)) {
- Canvas *canvas = canvas_owner.getornull(occluder->canvas);
+ Canvas *canvas = canvas_owner.get_or_null(occluder->canvas);
canvas->occluders.erase(occluder);
}
canvas_light_occluder_owner.free(p_rid);
} else if (canvas_light_occluder_polygon_owner.owns(p_rid)) {
- LightOccluderPolygon *occluder_poly = canvas_light_occluder_polygon_owner.getornull(p_rid);
+ LightOccluderPolygon *occluder_poly = canvas_light_occluder_polygon_owner.get_or_null(p_rid);
ERR_FAIL_COND_V(!occluder_poly, true);
RSG::canvas_render->free(occluder_poly->occluder);
diff --git a/servers/rendering/renderer_rd/forward_clustered/render_forward_clustered.cpp b/servers/rendering/renderer_rd/forward_clustered/render_forward_clustered.cpp
index fa3741c077..2377702738 100644
--- a/servers/rendering/renderer_rd/forward_clustered/render_forward_clustered.cpp
+++ b/servers/rendering/renderer_rd/forward_clustered/render_forward_clustered.cpp
@@ -2695,7 +2695,7 @@ void RenderForwardClustered::_geometry_instance_update(GeometryInstance *p_geome
} break;
#if 0
case RS::INSTANCE_IMMEDIATE: {
- RasterizerStorageGLES3::Immediate *immediate = storage->immediate_owner.getornull(inst->base);
+ RasterizerStorageGLES3::Immediate *immediate = storage->immediate_owner.get_or_null(inst->base);
ERR_CONTINUE(!immediate);
_add_geometry(immediate, inst, nullptr, -1, p_depth_pass, p_shadow_pass);
diff --git a/servers/rendering/renderer_rd/forward_mobile/render_forward_mobile.cpp b/servers/rendering/renderer_rd/forward_mobile/render_forward_mobile.cpp
index a5cc2db48f..75de2f6fbd 100644
--- a/servers/rendering/renderer_rd/forward_mobile/render_forward_mobile.cpp
+++ b/servers/rendering/renderer_rd/forward_mobile/render_forward_mobile.cpp
@@ -2440,7 +2440,7 @@ void RenderForwardMobile::_geometry_instance_update(GeometryInstance *p_geometry
} break;
#if 0
case RS::INSTANCE_IMMEDIATE: {
- RasterizerStorageGLES3::Immediate *immediate = storage->immediate_owner.getornull(inst->base);
+ RasterizerStorageGLES3::Immediate *immediate = storage->immediate_owner.get_or_null(inst->base);
ERR_CONTINUE(!immediate);
_add_geometry(immediate, inst, nullptr, -1, p_depth_pass, p_shadow_pass);
diff --git a/servers/rendering/renderer_rd/renderer_canvas_render_rd.cpp b/servers/rendering/renderer_rd/renderer_canvas_render_rd.cpp
index 3c66fadbe9..673df00c18 100644
--- a/servers/rendering/renderer_rd/renderer_canvas_render_rd.cpp
+++ b/servers/rendering/renderer_rd/renderer_canvas_render_rd.cpp
@@ -1144,7 +1144,7 @@ void RendererCanvasRenderRD::canvas_render_items(RID p_to_render_target, Item *p
continue;
}
- CanvasLight *clight = canvas_light_owner.getornull(l->light_internal);
+ CanvasLight *clight = canvas_light_owner.get_or_null(l->light_internal);
if (!clight) { //unused or invalid texture
l->render_index_cache = -1;
l = l->next_ptr;
@@ -1207,7 +1207,7 @@ void RendererCanvasRenderRD::canvas_render_items(RID p_to_render_target, Item *p
continue;
}
- CanvasLight *clight = canvas_light_owner.getornull(l->light_internal);
+ CanvasLight *clight = canvas_light_owner.get_or_null(l->light_internal);
if (!clight) { //unused or invalid texture
l->render_index_cache = -1;
l = l->next_ptr;
@@ -1394,6 +1394,7 @@ void RendererCanvasRenderRD::canvas_render_items(RID p_to_render_target, Item *p
update_skeletons = true;
}
}
+ c = c->next;
}
}
@@ -1480,7 +1481,7 @@ RID RendererCanvasRenderRD::light_create() {
}
void RendererCanvasRenderRD::light_set_texture(RID p_rid, RID p_texture) {
- CanvasLight *cl = canvas_light_owner.getornull(p_rid);
+ CanvasLight *cl = canvas_light_owner.get_or_null(p_rid);
ERR_FAIL_COND(!cl);
if (cl->texture == p_texture) {
return;
@@ -1496,7 +1497,7 @@ void RendererCanvasRenderRD::light_set_texture(RID p_rid, RID p_texture) {
}
void RendererCanvasRenderRD::light_set_use_shadow(RID p_rid, bool p_enable) {
- CanvasLight *cl = canvas_light_owner.getornull(p_rid);
+ CanvasLight *cl = canvas_light_owner.get_or_null(p_rid);
ERR_FAIL_COND(!cl);
cl->shadow.enabled = p_enable;
@@ -1536,7 +1537,7 @@ void RendererCanvasRenderRD::_update_shadow_atlas() {
}
}
void RendererCanvasRenderRD::light_update_shadow(RID p_rid, int p_shadow_index, const Transform2D &p_light_xform, int p_light_mask, float p_near, float p_far, LightOccluderInstance *p_occluders) {
- CanvasLight *cl = canvas_light_owner.getornull(p_rid);
+ CanvasLight *cl = canvas_light_owner.get_or_null(p_rid);
ERR_FAIL_COND(!cl->shadow.enabled);
_update_shadow_atlas();
@@ -1590,7 +1591,7 @@ void RendererCanvasRenderRD::light_update_shadow(RID p_rid, int p_shadow_index,
LightOccluderInstance *instance = p_occluders;
while (instance) {
- OccluderPolygon *co = occluder_polygon_owner.getornull(instance->occluder);
+ OccluderPolygon *co = occluder_polygon_owner.get_or_null(instance->occluder);
if (!co || co->index_array.is_null() || !(p_light_mask & instance->light_mask)) {
instance = instance->next;
@@ -1614,14 +1615,14 @@ void RendererCanvasRenderRD::light_update_shadow(RID p_rid, int p_shadow_index,
}
void RendererCanvasRenderRD::light_update_directional_shadow(RID p_rid, int p_shadow_index, const Transform2D &p_light_xform, int p_light_mask, float p_cull_distance, const Rect2 &p_clip_rect, LightOccluderInstance *p_occluders) {
- CanvasLight *cl = canvas_light_owner.getornull(p_rid);
+ CanvasLight *cl = canvas_light_owner.get_or_null(p_rid);
ERR_FAIL_COND(!cl->shadow.enabled);
_update_shadow_atlas();
Vector2 light_dir = p_light_xform.elements[1].normalized();
- Vector2 center = p_clip_rect.position + p_clip_rect.size * 0.5;
+ Vector2 center = p_clip_rect.get_center();
float to_edge_distance = ABS(light_dir.dot(p_clip_rect.get_support(light_dir)) - light_dir.dot(center));
@@ -1665,7 +1666,7 @@ void RendererCanvasRenderRD::light_update_directional_shadow(RID p_rid, int p_sh
LightOccluderInstance *instance = p_occluders;
while (instance) {
- OccluderPolygon *co = occluder_polygon_owner.getornull(instance->occluder);
+ OccluderPolygon *co = occluder_polygon_owner.get_or_null(instance->occluder);
if (!co || co->index_array.is_null() || !(p_light_mask & instance->light_mask)) {
instance = instance->next;
@@ -1731,7 +1732,7 @@ void RendererCanvasRenderRD::render_sdf(RID p_render_target, LightOccluderInstan
LightOccluderInstance *instance = p_occluders;
while (instance) {
- OccluderPolygon *co = occluder_polygon_owner.getornull(instance->occluder);
+ OccluderPolygon *co = occluder_polygon_owner.get_or_null(instance->occluder);
if (!co || co->sdf_index_array.is_null()) {
instance = instance->next;
@@ -1765,7 +1766,7 @@ RID RendererCanvasRenderRD::occluder_polygon_create() {
}
void RendererCanvasRenderRD::occluder_polygon_set_shape(RID p_occluder, const Vector<Vector2> &p_points, bool p_closed) {
- OccluderPolygon *oc = occluder_polygon_owner.getornull(p_occluder);
+ OccluderPolygon *oc = occluder_polygon_owner.get_or_null(p_occluder);
ERR_FAIL_COND(!oc);
Vector<Vector2> lines;
@@ -1934,7 +1935,7 @@ void RendererCanvasRenderRD::occluder_polygon_set_shape(RID p_occluder, const Ve
}
void RendererCanvasRenderRD::occluder_polygon_set_cull_mode(RID p_occluder, RS::CanvasOccluderPolygonCullMode p_mode) {
- OccluderPolygon *oc = occluder_polygon_owner.getornull(p_occluder);
+ OccluderPolygon *oc = occluder_polygon_owner.get_or_null(p_occluder);
ERR_FAIL_COND(!oc);
oc->cull_mode = p_mode;
}
@@ -2610,7 +2611,7 @@ void fragment() {
bool RendererCanvasRenderRD::free(RID p_rid) {
if (canvas_light_owner.owns(p_rid)) {
- CanvasLight *cl = canvas_light_owner.getornull(p_rid);
+ CanvasLight *cl = canvas_light_owner.get_or_null(p_rid);
ERR_FAIL_COND_V(!cl, false);
light_set_use_shadow(p_rid, false);
canvas_light_owner.free(p_rid);
diff --git a/servers/rendering/renderer_rd/renderer_compositor_rd.cpp b/servers/rendering/renderer_rd/renderer_compositor_rd.cpp
index c53c202bab..559e6d5ad7 100644
--- a/servers/rendering/renderer_rd/renderer_compositor_rd.cpp
+++ b/servers/rendering/renderer_rd/renderer_compositor_rd.cpp
@@ -197,7 +197,7 @@ void RendererCompositorRD::set_boot_image(const Ref<Image> &p_image, const Color
}
} else {
screenrect = imgrect;
- screenrect.position += ((Size2(window_size.width, window_size.height) - screenrect.size) / 2.0).floor();
+ screenrect.position += ((window_size - screenrect.size) / 2.0).floor();
}
screenrect.position /= window_size;
diff --git a/servers/rendering/renderer_rd/renderer_scene_gi_rd.cpp b/servers/rendering/renderer_rd/renderer_scene_gi_rd.cpp
index 36943c5e5c..ecc560fc5d 100644
--- a/servers/rendering/renderer_rd/renderer_scene_gi_rd.cpp
+++ b/servers/rendering/renderer_rd/renderer_scene_gi_rd.cpp
@@ -1450,7 +1450,7 @@ void RendererSceneGIRD::SDFGI::pre_process_gi(const Transform3D &p_transform, Re
break;
}
- RendererSceneRenderRD::LightInstance *li = p_scene_render->light_instance_owner.getornull(p_scene_render->render_state.sdfgi_update_data->directional_lights->get(j));
+ RendererSceneRenderRD::LightInstance *li = p_scene_render->light_instance_owner.get_or_null(p_scene_render->render_state.sdfgi_update_data->directional_lights->get(j));
ERR_CONTINUE(!li);
if (storage->light_directional_is_sky_only(li->light)) {
@@ -1484,7 +1484,7 @@ void RendererSceneGIRD::SDFGI::pre_process_gi(const Transform3D &p_transform, Re
break;
}
- RendererSceneRenderRD::LightInstance *li = p_scene_render->light_instance_owner.getornull(p_scene_render->render_state.sdfgi_update_data->positional_light_instances[j]);
+ RendererSceneRenderRD::LightInstance *li = p_scene_render->light_instance_owner.get_or_null(p_scene_render->render_state.sdfgi_update_data->positional_light_instances[j]);
ERR_CONTINUE(!li);
uint32_t max_sdfgi_cascade = storage->light_get_max_sdfgi_cascade(li->light);
@@ -1534,7 +1534,7 @@ void RendererSceneGIRD::SDFGI::pre_process_gi(const Transform3D &p_transform, Re
void RendererSceneGIRD::SDFGI::render_region(RID p_render_buffers, int p_region, const PagedArray<RendererSceneRender::GeometryInstance *> &p_instances, RendererSceneRenderRD *p_scene_render) {
//print_line("rendering region " + itos(p_region));
- RendererSceneRenderRD::RenderBuffers *rb = p_scene_render->render_buffers_owner.getornull(p_render_buffers);
+ RendererSceneRenderRD::RenderBuffers *rb = p_scene_render->render_buffers_owner.get_or_null(p_render_buffers);
ERR_FAIL_COND(!rb); // we wouldn't be here if this failed but...
AABB bounds;
Vector3i from;
@@ -1892,7 +1892,7 @@ void RendererSceneGIRD::SDFGI::render_region(RID p_render_buffers, int p_region,
}
void RendererSceneGIRD::SDFGI::render_static_lights(RID p_render_buffers, uint32_t p_cascade_count, const uint32_t *p_cascade_indices, const PagedArray<RID> *p_positional_light_cull_result, RendererSceneRenderRD *p_scene_render) {
- RendererSceneRenderRD::RenderBuffers *rb = p_scene_render->render_buffers_owner.getornull(p_render_buffers);
+ RendererSceneRenderRD::RenderBuffers *rb = p_scene_render->render_buffers_owner.get_or_null(p_render_buffers);
ERR_FAIL_COND(!rb); // we wouldn't be here if this failed but...
RD::get_singleton()->draw_command_begin_label("SDFGI Render Static Lighs");
@@ -1921,7 +1921,7 @@ void RendererSceneGIRD::SDFGI::render_static_lights(RID p_render_buffers, uint32
break;
}
- RendererSceneRenderRD::LightInstance *li = p_scene_render->light_instance_owner.getornull(p_positional_light_cull_result[i][j]);
+ RendererSceneRenderRD::LightInstance *li = p_scene_render->light_instance_owner.get_or_null(p_positional_light_cull_result[i][j]);
ERR_CONTINUE(!li);
uint32_t max_sdfgi_cascade = storage->light_get_max_sdfgi_cascade(li->light);
@@ -2575,7 +2575,7 @@ void RendererSceneGIRD::VoxelGIInstance::update(bool p_update_light_instances, c
Vector3 render_dir = render_z[j];
Vector3 up_dir = render_up[j];
- Vector3 center = aabb.position + aabb.size * 0.5;
+ Vector3 center = aabb.get_center();
Transform3D xform;
xform.set_look_at(center - aabb.size * 0.5 * render_dir, center, up_dir);
@@ -3024,7 +3024,7 @@ void RendererSceneGIRD::setup_voxel_gi_instances(RID p_render_buffers, const Tra
r_voxel_gi_instances_used = 0;
// feels a little dirty to use our container this way but....
- RendererSceneRenderRD::RenderBuffers *rb = p_scene_render->render_buffers_owner.getornull(p_render_buffers);
+ RendererSceneRenderRD::RenderBuffers *rb = p_scene_render->render_buffers_owner.get_or_null(p_render_buffers);
ERR_FAIL_COND(rb == nullptr);
RID voxel_gi_buffer = p_scene_render->render_buffers_get_voxel_gi_buffer(p_render_buffers);
@@ -3119,9 +3119,9 @@ void RendererSceneGIRD::setup_voxel_gi_instances(RID p_render_buffers, const Tra
void RendererSceneGIRD::process_gi(RID p_render_buffers, RID p_normal_roughness_buffer, RID p_voxel_gi_buffer, RID p_environment, const CameraMatrix &p_projection, const Transform3D &p_transform, const PagedArray<RID> &p_voxel_gi_instances, RendererSceneRenderRD *p_scene_render) {
RD::get_singleton()->draw_command_begin_label("GI Render");
- RendererSceneRenderRD::RenderBuffers *rb = p_scene_render->render_buffers_owner.getornull(p_render_buffers);
+ RendererSceneRenderRD::RenderBuffers *rb = p_scene_render->render_buffers_owner.get_or_null(p_render_buffers);
ERR_FAIL_COND(rb == nullptr);
- RendererSceneEnvironmentRD *env = p_scene_render->environment_owner.getornull(p_environment);
+ RendererSceneEnvironmentRD *env = p_scene_render->environment_owner.get_or_null(p_environment);
if (rb->ambient_buffer.is_null() || rb->gi.using_half_size_gi != half_resolution) {
if (rb->ambient_buffer.is_valid()) {
@@ -3393,7 +3393,7 @@ void RendererSceneGIRD::voxel_gi_update(RID p_probe, bool p_update_light_instanc
}
void RendererSceneGIRD::debug_voxel_gi(RID p_voxel_gi, RD::DrawListID p_draw_list, RID p_framebuffer, const CameraMatrix &p_camera_with_transform, bool p_lighting, bool p_emission, float p_alpha) {
- VoxelGIInstance *voxel_gi = voxel_gi_instance_owner.getornull(p_voxel_gi);
+ VoxelGIInstance *voxel_gi = voxel_gi_instance_owner.get_or_null(p_voxel_gi);
ERR_FAIL_COND(!voxel_gi);
voxel_gi->debug(p_draw_list, p_framebuffer, p_camera_with_transform, p_lighting, p_emission, p_alpha);
diff --git a/servers/rendering/renderer_rd/renderer_scene_gi_rd.h b/servers/rendering/renderer_rd/renderer_scene_gi_rd.h
index 0b4622646f..5bd41a104e 100644
--- a/servers/rendering/renderer_rd/renderer_scene_gi_rd.h
+++ b/servers/rendering/renderer_rd/renderer_scene_gi_rd.h
@@ -383,7 +383,7 @@ public:
mutable RID_Owner<VoxelGIInstance> voxel_gi_instance_owner;
_FORCE_INLINE_ VoxelGIInstance *get_probe_instance(RID p_probe) const {
- return voxel_gi_instance_owner.getornull(p_probe);
+ return voxel_gi_instance_owner.get_or_null(p_probe);
};
_FORCE_INLINE_ RID voxel_gi_instance_get_texture(RID p_probe) {
diff --git a/servers/rendering/renderer_rd/renderer_scene_render_rd.cpp b/servers/rendering/renderer_rd/renderer_scene_render_rd.cpp
index fa66ed85a9..e7156accfa 100644
--- a/servers/rendering/renderer_rd/renderer_scene_render_rd.cpp
+++ b/servers/rendering/renderer_rd/renderer_scene_render_rd.cpp
@@ -48,8 +48,8 @@ void get_vogel_disk(float *r_kernel, int p_sample_count) {
}
void RendererSceneRenderRD::sdfgi_update(RID p_render_buffers, RID p_environment, const Vector3 &p_world_position) {
- RendererSceneEnvironmentRD *env = environment_owner.getornull(p_environment);
- RenderBuffers *rb = render_buffers_owner.getornull(p_render_buffers);
+ RendererSceneEnvironmentRD *env = environment_owner.get_or_null(p_environment);
+ RenderBuffers *rb = render_buffers_owner.get_or_null(p_render_buffers);
bool needs_sdfgi = env && env->sdfgi_enabled;
if (!needs_sdfgi) {
@@ -83,7 +83,7 @@ void RendererSceneRenderRD::sdfgi_update(RID p_render_buffers, RID p_environment
}
int RendererSceneRenderRD::sdfgi_get_pending_region_count(RID p_render_buffers) const {
- RenderBuffers *rb = render_buffers_owner.getornull(p_render_buffers);
+ RenderBuffers *rb = render_buffers_owner.get_or_null(p_render_buffers);
ERR_FAIL_COND_V(rb == nullptr, 0);
@@ -113,7 +113,7 @@ AABB RendererSceneRenderRD::sdfgi_get_pending_region_bounds(RID p_render_buffers
AABB bounds;
Vector3i from;
Vector3i size;
- RenderBuffers *rb = render_buffers_owner.getornull(p_render_buffers);
+ RenderBuffers *rb = render_buffers_owner.get_or_null(p_render_buffers);
ERR_FAIL_COND_V(rb == nullptr, AABB());
ERR_FAIL_COND_V(rb->sdfgi == nullptr, AABB());
@@ -126,7 +126,7 @@ uint32_t RendererSceneRenderRD::sdfgi_get_pending_region_cascade(RID p_render_bu
AABB bounds;
Vector3i from;
Vector3i size;
- RenderBuffers *rb = render_buffers_owner.getornull(p_render_buffers);
+ RenderBuffers *rb = render_buffers_owner.get_or_null(p_render_buffers);
ERR_FAIL_COND_V(rb == nullptr, -1);
ERR_FAIL_COND_V(rb->sdfgi == nullptr, -1);
@@ -164,139 +164,139 @@ void RendererSceneRenderRD::environment_initialize(RID p_rid) {
}
void RendererSceneRenderRD::environment_set_background(RID p_env, RS::EnvironmentBG p_bg) {
- RendererSceneEnvironmentRD *env = environment_owner.getornull(p_env);
+ RendererSceneEnvironmentRD *env = environment_owner.get_or_null(p_env);
ERR_FAIL_COND(!env);
env->background = p_bg;
}
void RendererSceneRenderRD::environment_set_sky(RID p_env, RID p_sky) {
- RendererSceneEnvironmentRD *env = environment_owner.getornull(p_env);
+ RendererSceneEnvironmentRD *env = environment_owner.get_or_null(p_env);
ERR_FAIL_COND(!env);
env->sky = p_sky;
}
void RendererSceneRenderRD::environment_set_sky_custom_fov(RID p_env, float p_scale) {
- RendererSceneEnvironmentRD *env = environment_owner.getornull(p_env);
+ RendererSceneEnvironmentRD *env = environment_owner.get_or_null(p_env);
ERR_FAIL_COND(!env);
env->sky_custom_fov = p_scale;
}
void RendererSceneRenderRD::environment_set_sky_orientation(RID p_env, const Basis &p_orientation) {
- RendererSceneEnvironmentRD *env = environment_owner.getornull(p_env);
+ RendererSceneEnvironmentRD *env = environment_owner.get_or_null(p_env);
ERR_FAIL_COND(!env);
env->sky_orientation = p_orientation;
}
void RendererSceneRenderRD::environment_set_bg_color(RID p_env, const Color &p_color) {
- RendererSceneEnvironmentRD *env = environment_owner.getornull(p_env);
+ RendererSceneEnvironmentRD *env = environment_owner.get_or_null(p_env);
ERR_FAIL_COND(!env);
env->bg_color = p_color;
}
void RendererSceneRenderRD::environment_set_bg_energy(RID p_env, float p_energy) {
- RendererSceneEnvironmentRD *env = environment_owner.getornull(p_env);
+ RendererSceneEnvironmentRD *env = environment_owner.get_or_null(p_env);
ERR_FAIL_COND(!env);
env->bg_energy = p_energy;
}
void RendererSceneRenderRD::environment_set_canvas_max_layer(RID p_env, int p_max_layer) {
- RendererSceneEnvironmentRD *env = environment_owner.getornull(p_env);
+ RendererSceneEnvironmentRD *env = environment_owner.get_or_null(p_env);
ERR_FAIL_COND(!env);
env->canvas_max_layer = p_max_layer;
}
void RendererSceneRenderRD::environment_set_ambient_light(RID p_env, const Color &p_color, RS::EnvironmentAmbientSource p_ambient, float p_energy, float p_sky_contribution, RS::EnvironmentReflectionSource p_reflection_source, const Color &p_ao_color) {
- RendererSceneEnvironmentRD *env = environment_owner.getornull(p_env);
+ RendererSceneEnvironmentRD *env = environment_owner.get_or_null(p_env);
ERR_FAIL_COND(!env);
env->set_ambient_light(p_color, p_ambient, p_energy, p_sky_contribution, p_reflection_source, p_ao_color);
}
RS::EnvironmentBG RendererSceneRenderRD::environment_get_background(RID p_env) const {
- RendererSceneEnvironmentRD *env = environment_owner.getornull(p_env);
+ RendererSceneEnvironmentRD *env = environment_owner.get_or_null(p_env);
ERR_FAIL_COND_V(!env, RS::ENV_BG_MAX);
return env->background;
}
RID RendererSceneRenderRD::environment_get_sky(RID p_env) const {
- RendererSceneEnvironmentRD *env = environment_owner.getornull(p_env);
+ RendererSceneEnvironmentRD *env = environment_owner.get_or_null(p_env);
ERR_FAIL_COND_V(!env, RID());
return env->sky;
}
float RendererSceneRenderRD::environment_get_sky_custom_fov(RID p_env) const {
- RendererSceneEnvironmentRD *env = environment_owner.getornull(p_env);
+ RendererSceneEnvironmentRD *env = environment_owner.get_or_null(p_env);
ERR_FAIL_COND_V(!env, 0);
return env->sky_custom_fov;
}
Basis RendererSceneRenderRD::environment_get_sky_orientation(RID p_env) const {
- RendererSceneEnvironmentRD *env = environment_owner.getornull(p_env);
+ RendererSceneEnvironmentRD *env = environment_owner.get_or_null(p_env);
ERR_FAIL_COND_V(!env, Basis());
return env->sky_orientation;
}
Color RendererSceneRenderRD::environment_get_bg_color(RID p_env) const {
- RendererSceneEnvironmentRD *env = environment_owner.getornull(p_env);
+ RendererSceneEnvironmentRD *env = environment_owner.get_or_null(p_env);
ERR_FAIL_COND_V(!env, Color());
return env->bg_color;
}
float RendererSceneRenderRD::environment_get_bg_energy(RID p_env) const {
- RendererSceneEnvironmentRD *env = environment_owner.getornull(p_env);
+ RendererSceneEnvironmentRD *env = environment_owner.get_or_null(p_env);
ERR_FAIL_COND_V(!env, 0);
return env->bg_energy;
}
int RendererSceneRenderRD::environment_get_canvas_max_layer(RID p_env) const {
- RendererSceneEnvironmentRD *env = environment_owner.getornull(p_env);
+ RendererSceneEnvironmentRD *env = environment_owner.get_or_null(p_env);
ERR_FAIL_COND_V(!env, 0);
return env->canvas_max_layer;
}
Color RendererSceneRenderRD::environment_get_ambient_light_color(RID p_env) const {
- RendererSceneEnvironmentRD *env = environment_owner.getornull(p_env);
+ RendererSceneEnvironmentRD *env = environment_owner.get_or_null(p_env);
ERR_FAIL_COND_V(!env, Color());
return env->ambient_light;
}
RS::EnvironmentAmbientSource RendererSceneRenderRD::environment_get_ambient_source(RID p_env) const {
- RendererSceneEnvironmentRD *env = environment_owner.getornull(p_env);
+ RendererSceneEnvironmentRD *env = environment_owner.get_or_null(p_env);
ERR_FAIL_COND_V(!env, RS::ENV_AMBIENT_SOURCE_BG);
return env->ambient_source;
}
float RendererSceneRenderRD::environment_get_ambient_light_energy(RID p_env) const {
- RendererSceneEnvironmentRD *env = environment_owner.getornull(p_env);
+ RendererSceneEnvironmentRD *env = environment_owner.get_or_null(p_env);
ERR_FAIL_COND_V(!env, 0);
return env->ambient_light_energy;
}
float RendererSceneRenderRD::environment_get_ambient_sky_contribution(RID p_env) const {
- RendererSceneEnvironmentRD *env = environment_owner.getornull(p_env);
+ RendererSceneEnvironmentRD *env = environment_owner.get_or_null(p_env);
ERR_FAIL_COND_V(!env, 0);
return env->ambient_sky_contribution;
}
RS::EnvironmentReflectionSource RendererSceneRenderRD::environment_get_reflection_source(RID p_env) const {
- RendererSceneEnvironmentRD *env = environment_owner.getornull(p_env);
+ RendererSceneEnvironmentRD *env = environment_owner.get_or_null(p_env);
ERR_FAIL_COND_V(!env, RS::ENV_REFLECTION_SOURCE_DISABLED);
return env->reflection_source;
}
Color RendererSceneRenderRD::environment_get_ao_color(RID p_env) const {
- RendererSceneEnvironmentRD *env = environment_owner.getornull(p_env);
+ RendererSceneEnvironmentRD *env = environment_owner.get_or_null(p_env);
ERR_FAIL_COND_V(!env, Color());
return env->ao_color;
}
void RendererSceneRenderRD::environment_set_tonemap(RID p_env, RS::EnvironmentToneMapper p_tone_mapper, float p_exposure, float p_white, bool p_auto_exposure, float p_min_luminance, float p_max_luminance, float p_auto_exp_speed, float p_auto_exp_scale) {
- RendererSceneEnvironmentRD *env = environment_owner.getornull(p_env);
+ RendererSceneEnvironmentRD *env = environment_owner.get_or_null(p_env);
ERR_FAIL_COND(!env);
env->set_tonemap(p_tone_mapper, p_exposure, p_white, p_auto_exposure, p_min_luminance, p_max_luminance, p_auto_exp_speed, p_auto_exp_scale);
}
void RendererSceneRenderRD::environment_set_glow(RID p_env, bool p_enable, Vector<float> p_levels, float p_intensity, float p_strength, float p_mix, float p_bloom_threshold, RS::EnvironmentGlowBlendMode p_blend_mode, float p_hdr_bleed_threshold, float p_hdr_bleed_scale, float p_hdr_luminance_cap) {
- RendererSceneEnvironmentRD *env = environment_owner.getornull(p_env);
+ RendererSceneEnvironmentRD *env = environment_owner.get_or_null(p_env);
ERR_FAIL_COND(!env);
env->set_glow(p_enable, p_levels, p_intensity, p_strength, p_mix, p_bloom_threshold, p_blend_mode, p_hdr_bleed_threshold, p_hdr_bleed_scale, p_hdr_luminance_cap);
}
@@ -310,7 +310,7 @@ void RendererSceneRenderRD::environment_glow_set_use_high_quality(bool p_enable)
}
void RendererSceneRenderRD::environment_set_sdfgi(RID p_env, bool p_enable, RS::EnvironmentSDFGICascades p_cascades, float p_min_cell_size, RS::EnvironmentSDFGIYScale p_y_scale, bool p_use_occlusion, float p_bounce_feedback, bool p_read_sky, float p_energy, float p_normal_bias, float p_probe_bias) {
- RendererSceneEnvironmentRD *env = environment_owner.getornull(p_env);
+ RendererSceneEnvironmentRD *env = environment_owner.get_or_null(p_env);
ERR_FAIL_COND(!env);
if (!is_dynamic_gi_supported()) {
@@ -321,58 +321,58 @@ void RendererSceneRenderRD::environment_set_sdfgi(RID p_env, bool p_enable, RS::
}
void RendererSceneRenderRD::environment_set_fog(RID p_env, bool p_enable, const Color &p_light_color, float p_light_energy, float p_sun_scatter, float p_density, float p_height, float p_height_density, float p_fog_aerial_perspective) {
- RendererSceneEnvironmentRD *env = environment_owner.getornull(p_env);
+ RendererSceneEnvironmentRD *env = environment_owner.get_or_null(p_env);
ERR_FAIL_COND(!env);
env->set_fog(p_enable, p_light_color, p_light_energy, p_sun_scatter, p_density, p_height, p_height_density, p_fog_aerial_perspective);
}
bool RendererSceneRenderRD::environment_is_fog_enabled(RID p_env) const {
- const RendererSceneEnvironmentRD *env = environment_owner.getornull(p_env);
+ const RendererSceneEnvironmentRD *env = environment_owner.get_or_null(p_env);
ERR_FAIL_COND_V(!env, false);
return env->fog_enabled;
}
Color RendererSceneRenderRD::environment_get_fog_light_color(RID p_env) const {
- const RendererSceneEnvironmentRD *env = environment_owner.getornull(p_env);
+ const RendererSceneEnvironmentRD *env = environment_owner.get_or_null(p_env);
ERR_FAIL_COND_V(!env, Color());
return env->fog_light_color;
}
float RendererSceneRenderRD::environment_get_fog_light_energy(RID p_env) const {
- const RendererSceneEnvironmentRD *env = environment_owner.getornull(p_env);
+ const RendererSceneEnvironmentRD *env = environment_owner.get_or_null(p_env);
ERR_FAIL_COND_V(!env, 0);
return env->fog_light_energy;
}
float RendererSceneRenderRD::environment_get_fog_sun_scatter(RID p_env) const {
- const RendererSceneEnvironmentRD *env = environment_owner.getornull(p_env);
+ const RendererSceneEnvironmentRD *env = environment_owner.get_or_null(p_env);
ERR_FAIL_COND_V(!env, 0);
return env->fog_sun_scatter;
}
float RendererSceneRenderRD::environment_get_fog_density(RID p_env) const {
- const RendererSceneEnvironmentRD *env = environment_owner.getornull(p_env);
+ const RendererSceneEnvironmentRD *env = environment_owner.get_or_null(p_env);
ERR_FAIL_COND_V(!env, 0);
return env->fog_density;
}
float RendererSceneRenderRD::environment_get_fog_height(RID p_env) const {
- const RendererSceneEnvironmentRD *env = environment_owner.getornull(p_env);
+ const RendererSceneEnvironmentRD *env = environment_owner.get_or_null(p_env);
ERR_FAIL_COND_V(!env, 0);
return env->fog_height;
}
float RendererSceneRenderRD::environment_get_fog_height_density(RID p_env) const {
- const RendererSceneEnvironmentRD *env = environment_owner.getornull(p_env);
+ const RendererSceneEnvironmentRD *env = environment_owner.get_or_null(p_env);
ERR_FAIL_COND_V(!env, 0);
return env->fog_height_density;
}
float RendererSceneRenderRD::environment_get_fog_aerial_perspective(RID p_env) const {
- const RendererSceneEnvironmentRD *env = environment_owner.getornull(p_env);
+ const RendererSceneEnvironmentRD *env = environment_owner.get_or_null(p_env);
ERR_FAIL_COND_V(!env, 0);
return env->fog_aerial_perspective;
}
void RendererSceneRenderRD::environment_set_volumetric_fog(RID p_env, bool p_enable, float p_density, const Color &p_light, float p_light_energy, float p_length, float p_detail_spread, float p_gi_inject, bool p_temporal_reprojection, float p_temporal_reprojection_amount) {
- RendererSceneEnvironmentRD *env = environment_owner.getornull(p_env);
+ RendererSceneEnvironmentRD *env = environment_owner.get_or_null(p_env);
ERR_FAIL_COND(!env);
if (!is_volumetric_supported()) {
@@ -403,7 +403,7 @@ void RendererSceneRenderRD::environment_set_sdfgi_frames_to_update_light(RS::Env
}
void RendererSceneRenderRD::environment_set_ssr(RID p_env, bool p_enable, int p_max_steps, float p_fade_int, float p_fade_out, float p_depth_tolerance) {
- RendererSceneEnvironmentRD *env = environment_owner.getornull(p_env);
+ RendererSceneEnvironmentRD *env = environment_owner.get_or_null(p_env);
ERR_FAIL_COND(!env);
env->set_ssr(p_enable, p_max_steps, p_fade_int, p_fade_out, p_depth_tolerance);
@@ -418,7 +418,7 @@ RS::EnvironmentSSRRoughnessQuality RendererSceneRenderRD::environment_get_ssr_ro
}
void RendererSceneRenderRD::environment_set_ssao(RID p_env, bool p_enable, float p_radius, float p_intensity, float p_power, float p_detail, float p_horizon, float p_sharpness, float p_light_affect, float p_ao_channel_affect) {
- RendererSceneEnvironmentRD *env = environment_owner.getornull(p_env);
+ RendererSceneEnvironmentRD *env = environment_owner.get_or_null(p_env);
ERR_FAIL_COND(!env);
env->set_ssao(p_enable, p_radius, p_intensity, p_power, p_detail, p_horizon, p_sharpness, p_light_affect, p_ao_channel_affect);
@@ -434,30 +434,30 @@ void RendererSceneRenderRD::environment_set_ssao_quality(RS::EnvironmentSSAOQual
}
bool RendererSceneRenderRD::environment_is_ssao_enabled(RID p_env) const {
- RendererSceneEnvironmentRD *env = environment_owner.getornull(p_env);
+ RendererSceneEnvironmentRD *env = environment_owner.get_or_null(p_env);
ERR_FAIL_COND_V(!env, false);
return env->ssao_enabled;
}
float RendererSceneRenderRD::environment_get_ssao_ao_affect(RID p_env) const {
- RendererSceneEnvironmentRD *env = environment_owner.getornull(p_env);
+ RendererSceneEnvironmentRD *env = environment_owner.get_or_null(p_env);
ERR_FAIL_COND_V(!env, 0.0);
return env->ssao_ao_channel_affect;
}
float RendererSceneRenderRD::environment_get_ssao_light_affect(RID p_env) const {
- RendererSceneEnvironmentRD *env = environment_owner.getornull(p_env);
+ RendererSceneEnvironmentRD *env = environment_owner.get_or_null(p_env);
ERR_FAIL_COND_V(!env, 0.0);
return env->ssao_direct_light_affect;
}
bool RendererSceneRenderRD::environment_is_ssr_enabled(RID p_env) const {
- RendererSceneEnvironmentRD *env = environment_owner.getornull(p_env);
+ RendererSceneEnvironmentRD *env = environment_owner.get_or_null(p_env);
ERR_FAIL_COND_V(!env, false);
return env->ssr_enabled;
}
bool RendererSceneRenderRD::environment_is_sdfgi_enabled(RID p_env) const {
- RendererSceneEnvironmentRD *env = environment_owner.getornull(p_env);
+ RendererSceneEnvironmentRD *env = environment_owner.get_or_null(p_env);
ERR_FAIL_COND_V(!env, false);
return env->sdfgi_enabled;
}
@@ -467,7 +467,7 @@ bool RendererSceneRenderRD::is_environment(RID p_env) const {
}
Ref<Image> RendererSceneRenderRD::environment_bake_panorama(RID p_env, bool p_bake_irradiance, const Size2i &p_size) {
- RendererSceneEnvironmentRD *env = environment_owner.getornull(p_env);
+ RendererSceneEnvironmentRD *env = environment_owner.get_or_null(p_env);
ERR_FAIL_COND_V(!env, Ref<Image>());
if (env->background == RS::ENV_BG_CAMERA_FEED || env->background == RS::ENV_BG_CANVAS || env->background == RS::ENV_BG_KEEP) {
@@ -522,7 +522,7 @@ RID RendererSceneRenderRD::reflection_atlas_create() {
}
void RendererSceneRenderRD::reflection_atlas_set_size(RID p_ref_atlas, int p_reflection_size, int p_reflection_count) {
- ReflectionAtlas *ra = reflection_atlas_owner.getornull(p_ref_atlas);
+ ReflectionAtlas *ra = reflection_atlas_owner.get_or_null(p_ref_atlas);
ERR_FAIL_COND(!ra);
if (ra->size == p_reflection_size && ra->count == p_reflection_count) {
@@ -557,7 +557,7 @@ void RendererSceneRenderRD::reflection_atlas_set_size(RID p_ref_atlas, int p_ref
}
int RendererSceneRenderRD::reflection_atlas_get_size(RID p_ref_atlas) const {
- ReflectionAtlas *ra = reflection_atlas_owner.getornull(p_ref_atlas);
+ ReflectionAtlas *ra = reflection_atlas_owner.get_or_null(p_ref_atlas);
ERR_FAIL_COND_V(!ra, 0);
return ra->size;
@@ -573,7 +573,7 @@ RID RendererSceneRenderRD::reflection_probe_instance_create(RID p_probe) {
}
void RendererSceneRenderRD::reflection_probe_instance_set_transform(RID p_instance, const Transform3D &p_transform) {
- ReflectionProbeInstance *rpi = reflection_probe_instance_owner.getornull(p_instance);
+ ReflectionProbeInstance *rpi = reflection_probe_instance_owner.get_or_null(p_instance);
ERR_FAIL_COND(!rpi);
rpi->transform = p_transform;
@@ -581,13 +581,13 @@ void RendererSceneRenderRD::reflection_probe_instance_set_transform(RID p_instan
}
void RendererSceneRenderRD::reflection_probe_release_atlas_index(RID p_instance) {
- ReflectionProbeInstance *rpi = reflection_probe_instance_owner.getornull(p_instance);
+ ReflectionProbeInstance *rpi = reflection_probe_instance_owner.get_or_null(p_instance);
ERR_FAIL_COND(!rpi);
if (rpi->atlas.is_null()) {
return; //nothing to release
}
- ReflectionAtlas *atlas = reflection_atlas_owner.getornull(rpi->atlas);
+ ReflectionAtlas *atlas = reflection_atlas_owner.get_or_null(rpi->atlas);
ERR_FAIL_COND(!atlas);
ERR_FAIL_INDEX(rpi->atlas_index, atlas->reflections.size());
atlas->reflections.write[rpi->atlas_index].owner = RID();
@@ -596,7 +596,7 @@ void RendererSceneRenderRD::reflection_probe_release_atlas_index(RID p_instance)
}
bool RendererSceneRenderRD::reflection_probe_instance_needs_redraw(RID p_instance) {
- ReflectionProbeInstance *rpi = reflection_probe_instance_owner.getornull(p_instance);
+ ReflectionProbeInstance *rpi = reflection_probe_instance_owner.get_or_null(p_instance);
ERR_FAIL_COND_V(!rpi, false);
if (rpi->rendering) {
@@ -615,18 +615,18 @@ bool RendererSceneRenderRD::reflection_probe_instance_needs_redraw(RID p_instanc
}
bool RendererSceneRenderRD::reflection_probe_instance_has_reflection(RID p_instance) {
- ReflectionProbeInstance *rpi = reflection_probe_instance_owner.getornull(p_instance);
+ ReflectionProbeInstance *rpi = reflection_probe_instance_owner.get_or_null(p_instance);
ERR_FAIL_COND_V(!rpi, false);
return rpi->atlas.is_valid();
}
bool RendererSceneRenderRD::reflection_probe_instance_begin_render(RID p_instance, RID p_reflection_atlas) {
- ReflectionAtlas *atlas = reflection_atlas_owner.getornull(p_reflection_atlas);
+ ReflectionAtlas *atlas = reflection_atlas_owner.get_or_null(p_reflection_atlas);
ERR_FAIL_COND_V(!atlas, false);
- ReflectionProbeInstance *rpi = reflection_probe_instance_owner.getornull(p_instance);
+ ReflectionProbeInstance *rpi = reflection_probe_instance_owner.get_or_null(p_instance);
ERR_FAIL_COND_V(!rpi, false);
RD::get_singleton()->draw_command_begin_label("Reflection probe render");
@@ -701,7 +701,7 @@ bool RendererSceneRenderRD::reflection_probe_instance_begin_render(RID p_instanc
uint64_t pass_min = 0;
for (int i = 0; i < atlas->reflections.size(); i++) {
- ReflectionProbeInstance *rpi2 = reflection_probe_instance_owner.getornull(atlas->reflections[i].owner);
+ ReflectionProbeInstance *rpi2 = reflection_probe_instance_owner.get_or_null(atlas->reflections[i].owner);
if (rpi2->last_pass < pass_min) {
pass_min = rpi2->last_pass;
rpi->atlas_index = i;
@@ -733,12 +733,12 @@ RID RendererSceneRenderRD::reflection_probe_create_framebuffer(RID p_color, RID
}
bool RendererSceneRenderRD::reflection_probe_instance_postprocess_step(RID p_instance) {
- ReflectionProbeInstance *rpi = reflection_probe_instance_owner.getornull(p_instance);
+ ReflectionProbeInstance *rpi = reflection_probe_instance_owner.get_or_null(p_instance);
ERR_FAIL_COND_V(!rpi, false);
ERR_FAIL_COND_V(!rpi->rendering, false);
ERR_FAIL_COND_V(rpi->atlas.is_null(), false);
- ReflectionAtlas *atlas = reflection_atlas_owner.getornull(rpi->atlas);
+ ReflectionAtlas *atlas = reflection_atlas_owner.get_or_null(rpi->atlas);
if (!atlas || rpi->atlas_index == -1) {
//does not belong to an atlas anymore, cancel (was removed from atlas or atlas changed while rendering)
rpi->rendering = false;
@@ -779,30 +779,30 @@ bool RendererSceneRenderRD::reflection_probe_instance_postprocess_step(RID p_ins
}
uint32_t RendererSceneRenderRD::reflection_probe_instance_get_resolution(RID p_instance) {
- ReflectionProbeInstance *rpi = reflection_probe_instance_owner.getornull(p_instance);
+ ReflectionProbeInstance *rpi = reflection_probe_instance_owner.get_or_null(p_instance);
ERR_FAIL_COND_V(!rpi, 0);
- ReflectionAtlas *atlas = reflection_atlas_owner.getornull(rpi->atlas);
+ ReflectionAtlas *atlas = reflection_atlas_owner.get_or_null(rpi->atlas);
ERR_FAIL_COND_V(!atlas, 0);
return atlas->size;
}
RID RendererSceneRenderRD::reflection_probe_instance_get_framebuffer(RID p_instance, int p_index) {
- ReflectionProbeInstance *rpi = reflection_probe_instance_owner.getornull(p_instance);
+ ReflectionProbeInstance *rpi = reflection_probe_instance_owner.get_or_null(p_instance);
ERR_FAIL_COND_V(!rpi, RID());
ERR_FAIL_INDEX_V(p_index, 6, RID());
- ReflectionAtlas *atlas = reflection_atlas_owner.getornull(rpi->atlas);
+ ReflectionAtlas *atlas = reflection_atlas_owner.get_or_null(rpi->atlas);
ERR_FAIL_COND_V(!atlas, RID());
return atlas->reflections[rpi->atlas_index].fbs[p_index];
}
RID RendererSceneRenderRD::reflection_probe_instance_get_depth_framebuffer(RID p_instance, int p_index) {
- ReflectionProbeInstance *rpi = reflection_probe_instance_owner.getornull(p_instance);
+ ReflectionProbeInstance *rpi = reflection_probe_instance_owner.get_or_null(p_instance);
ERR_FAIL_COND_V(!rpi, RID());
ERR_FAIL_INDEX_V(p_index, 6, RID());
- ReflectionAtlas *atlas = reflection_atlas_owner.getornull(rpi->atlas);
+ ReflectionAtlas *atlas = reflection_atlas_owner.get_or_null(rpi->atlas);
ERR_FAIL_COND_V(!atlas, RID());
return atlas->depth_fb;
}
@@ -829,7 +829,7 @@ void RendererSceneRenderRD::_update_shadow_atlas(ShadowAtlas *shadow_atlas) {
}
void RendererSceneRenderRD::shadow_atlas_set_size(RID p_atlas, int p_size, bool p_16_bits) {
- ShadowAtlas *shadow_atlas = shadow_atlas_owner.getornull(p_atlas);
+ ShadowAtlas *shadow_atlas = shadow_atlas_owner.get_or_null(p_atlas);
ERR_FAIL_COND(!shadow_atlas);
ERR_FAIL_COND(p_size < 0);
p_size = next_power_of_2(p_size);
@@ -851,7 +851,7 @@ void RendererSceneRenderRD::shadow_atlas_set_size(RID p_atlas, int p_size, bool
//erase shadow atlas reference from lights
for (Map<RID, uint32_t>::Element *E = shadow_atlas->shadow_owners.front(); E; E = E->next()) {
- LightInstance *li = light_instance_owner.getornull(E->key());
+ LightInstance *li = light_instance_owner.get_or_null(E->key());
ERR_CONTINUE(!li);
li->shadow_atlases.erase(p_atlas);
}
@@ -864,7 +864,7 @@ void RendererSceneRenderRD::shadow_atlas_set_size(RID p_atlas, int p_size, bool
}
void RendererSceneRenderRD::shadow_atlas_set_quadrant_subdivision(RID p_atlas, int p_quadrant, int p_subdivision) {
- ShadowAtlas *shadow_atlas = shadow_atlas_owner.getornull(p_atlas);
+ ShadowAtlas *shadow_atlas = shadow_atlas_owner.get_or_null(p_atlas);
ERR_FAIL_COND(!shadow_atlas);
ERR_FAIL_INDEX(p_quadrant, 4);
ERR_FAIL_INDEX(p_subdivision, 16384);
@@ -886,7 +886,7 @@ void RendererSceneRenderRD::shadow_atlas_set_quadrant_subdivision(RID p_atlas, i
for (int i = 0; i < shadow_atlas->quadrants[p_quadrant].shadows.size(); i++) {
if (shadow_atlas->quadrants[p_quadrant].shadows[i].owner.is_valid()) {
shadow_atlas->shadow_owners.erase(shadow_atlas->quadrants[p_quadrant].shadows[i].owner);
- LightInstance *li = light_instance_owner.getornull(shadow_atlas->quadrants[p_quadrant].shadows[i].owner);
+ LightInstance *li = light_instance_owner.get_or_null(shadow_atlas->quadrants[p_quadrant].shadows[i].owner);
ERR_CONTINUE(!li);
li->shadow_atlases.erase(p_atlas);
}
@@ -947,7 +947,7 @@ bool RendererSceneRenderRD::_shadow_atlas_find_shadow(ShadowAtlas *shadow_atlas,
break;
}
- LightInstance *sli = light_instance_owner.getornull(sarr[j].owner);
+ LightInstance *sli = light_instance_owner.get_or_null(sarr[j].owner);
ERR_CONTINUE(!sli);
if (sli->last_scene_pass != scene_pass) {
@@ -999,7 +999,7 @@ bool RendererSceneRenderRD::_shadow_atlas_find_omni_shadows(ShadowAtlas *shadow_
uint64_t pass = 0;
if (sarr[j].owner.is_valid()) {
- LightInstance *sli = light_instance_owner.getornull(sarr[j].owner);
+ LightInstance *sli = light_instance_owner.get_or_null(sarr[j].owner);
ERR_CONTINUE(!sli);
if (sli->last_scene_pass == scene_pass) {
@@ -1014,7 +1014,7 @@ bool RendererSceneRenderRD::_shadow_atlas_find_omni_shadows(ShadowAtlas *shadow_
}
if (sarr[j + 1].owner.is_valid()) {
- LightInstance *sli = light_instance_owner.getornull(sarr[j + 1].owner);
+ LightInstance *sli = light_instance_owner.get_or_null(sarr[j + 1].owner);
ERR_CONTINUE(!sli);
if (sli->last_scene_pass == scene_pass) {
@@ -1053,10 +1053,10 @@ bool RendererSceneRenderRD::_shadow_atlas_find_omni_shadows(ShadowAtlas *shadow_
}
bool RendererSceneRenderRD::shadow_atlas_update_light(RID p_atlas, RID p_light_intance, float p_coverage, uint64_t p_light_version) {
- ShadowAtlas *shadow_atlas = shadow_atlas_owner.getornull(p_atlas);
+ ShadowAtlas *shadow_atlas = shadow_atlas_owner.get_or_null(p_atlas);
ERR_FAIL_COND_V(!shadow_atlas, false);
- LightInstance *li = light_instance_owner.getornull(p_light_intance);
+ LightInstance *li = light_instance_owner.get_or_null(p_light_intance);
ERR_FAIL_COND_V(!li, false);
if (shadow_atlas->size == 0 || shadow_atlas->smallest_subdiv == 0) {
@@ -1179,7 +1179,7 @@ bool RendererSceneRenderRD::shadow_atlas_update_light(RID p_atlas, RID p_light_i
void RendererSceneRenderRD::_shadow_atlas_invalidate_shadow(RendererSceneRenderRD::ShadowAtlas::Quadrant::Shadow *p_shadow, RID p_atlas, RendererSceneRenderRD::ShadowAtlas *p_shadow_atlas, uint32_t p_quadrant, uint32_t p_shadow_idx) {
if (p_shadow->owner.is_valid()) {
- LightInstance *sli = light_instance_owner.getornull(p_shadow->owner);
+ LightInstance *sli = light_instance_owner.get_or_null(p_shadow->owner);
uint32_t old_key = p_shadow_atlas->shadow_owners[p_shadow->owner];
if (old_key & ShadowAtlas::OMNI_LIGHT_FLAG) {
@@ -1260,7 +1260,7 @@ int RendererSceneRenderRD::get_directional_light_shadow_size(RID p_light_intance
Rect2i r = _get_directional_shadow_rect(directional_shadow.size, directional_shadow.light_count, 0);
- LightInstance *light_instance = light_instance_owner.getornull(p_light_intance);
+ LightInstance *light_instance = light_instance_owner.get_or_null(p_light_intance);
ERR_FAIL_COND_V(!light_instance, 0);
switch (storage->light_directional_get_shadow_mode(light_instance->light)) {
@@ -1296,7 +1296,7 @@ void RendererSceneRenderRD::camera_effects_set_dof_blur_bokeh_shape(RS::DOFBokeh
}
void RendererSceneRenderRD::camera_effects_set_dof_blur(RID p_camera_effects, bool p_far_enable, float p_far_distance, float p_far_transition, bool p_near_enable, float p_near_distance, float p_near_transition, float p_amount) {
- CameraEffects *camfx = camera_effects_owner.getornull(p_camera_effects);
+ CameraEffects *camfx = camera_effects_owner.get_or_null(p_camera_effects);
ERR_FAIL_COND(!camfx);
camfx->dof_blur_far_enabled = p_far_enable;
@@ -1311,7 +1311,7 @@ void RendererSceneRenderRD::camera_effects_set_dof_blur(RID p_camera_effects, bo
}
void RendererSceneRenderRD::camera_effects_set_custom_exposure(RID p_camera_effects, bool p_enable, float p_exposure) {
- CameraEffects *camfx = camera_effects_owner.getornull(p_camera_effects);
+ CameraEffects *camfx = camera_effects_owner.get_or_null(p_camera_effects);
ERR_FAIL_COND(!camfx);
camfx->override_exposure_enabled = p_enable;
@@ -1321,7 +1321,7 @@ void RendererSceneRenderRD::camera_effects_set_custom_exposure(RID p_camera_effe
RID RendererSceneRenderRD::light_instance_create(RID p_light) {
RID li = light_instance_owner.make_rid(LightInstance());
- LightInstance *light_instance = light_instance_owner.getornull(li);
+ LightInstance *light_instance = light_instance_owner.get_or_null(li);
light_instance->self = li;
light_instance->light = p_light;
@@ -1334,21 +1334,21 @@ RID RendererSceneRenderRD::light_instance_create(RID p_light) {
}
void RendererSceneRenderRD::light_instance_set_transform(RID p_light_instance, const Transform3D &p_transform) {
- LightInstance *light_instance = light_instance_owner.getornull(p_light_instance);
+ LightInstance *light_instance = light_instance_owner.get_or_null(p_light_instance);
ERR_FAIL_COND(!light_instance);
light_instance->transform = p_transform;
}
void RendererSceneRenderRD::light_instance_set_aabb(RID p_light_instance, const AABB &p_aabb) {
- LightInstance *light_instance = light_instance_owner.getornull(p_light_instance);
+ LightInstance *light_instance = light_instance_owner.get_or_null(p_light_instance);
ERR_FAIL_COND(!light_instance);
light_instance->aabb = p_aabb;
}
void RendererSceneRenderRD::light_instance_set_shadow_transform(RID p_light_instance, const CameraMatrix &p_projection, const Transform3D &p_transform, float p_far, float p_split, int p_pass, float p_shadow_texel_size, float p_bias_scale, float p_range_begin, const Vector2 &p_uv_scale) {
- LightInstance *light_instance = light_instance_owner.getornull(p_light_instance);
+ LightInstance *light_instance = light_instance_owner.get_or_null(p_light_instance);
ERR_FAIL_COND(!light_instance);
ERR_FAIL_INDEX(p_pass, 6);
@@ -1364,7 +1364,7 @@ void RendererSceneRenderRD::light_instance_set_shadow_transform(RID p_light_inst
}
void RendererSceneRenderRD::light_instance_mark_visible(RID p_light_instance) {
- LightInstance *light_instance = light_instance_owner.getornull(p_light_instance);
+ LightInstance *light_instance = light_instance_owner.get_or_null(p_light_instance);
ERR_FAIL_COND(!light_instance);
light_instance->last_scene_pass = scene_pass;
@@ -1407,7 +1407,7 @@ RID RendererSceneRenderRD::decal_instance_create(RID p_decal) {
}
void RendererSceneRenderRD::decal_instance_set_transform(RID p_decal, const Transform3D &p_transform) {
- DecalInstance *di = decal_instance_owner.getornull(p_decal);
+ DecalInstance *di = decal_instance_owner.get_or_null(p_decal);
ERR_FAIL_COND(!di);
di->transform = p_transform;
}
@@ -1420,7 +1420,7 @@ RID RendererSceneRenderRD::lightmap_instance_create(RID p_lightmap) {
return lightmap_instance_owner.make_rid(li);
}
void RendererSceneRenderRD::lightmap_instance_set_transform(RID p_lightmap, const Transform3D &p_transform) {
- LightmapInstance *li = lightmap_instance_owner.getornull(p_lightmap);
+ LightmapInstance *li = lightmap_instance_owner.get_or_null(p_lightmap);
ERR_FAIL_COND(!li);
li->transform = p_transform;
}
@@ -1452,7 +1452,7 @@ void RendererSceneRenderRD::voxel_gi_update(RID p_probe, bool p_update_light_ins
}
void RendererSceneRenderRD::_debug_sdfgi_probes(RID p_render_buffers, RD::DrawListID p_draw_list, RID p_framebuffer, const CameraMatrix &p_camera_with_transform) {
- RenderBuffers *rb = render_buffers_owner.getornull(p_render_buffers);
+ RenderBuffers *rb = render_buffers_owner.get_or_null(p_render_buffers);
ERR_FAIL_COND(!rb);
if (!rb->sdfgi) {
@@ -1790,7 +1790,7 @@ void RendererSceneRenderRD::_free_render_buffer_data(RenderBuffers *rb) {
}
void RendererSceneRenderRD::_process_sss(RID p_render_buffers, const CameraMatrix &p_camera) {
- RenderBuffers *rb = render_buffers_owner.getornull(p_render_buffers);
+ RenderBuffers *rb = render_buffers_owner.get_or_null(p_render_buffers);
ERR_FAIL_COND(!rb);
bool can_use_effects = rb->width >= 8 && rb->height >= 8;
@@ -1808,7 +1808,7 @@ void RendererSceneRenderRD::_process_sss(RID p_render_buffers, const CameraMatri
}
void RendererSceneRenderRD::_process_ssr(RID p_render_buffers, RID p_dest_framebuffer, RID p_normal_buffer, RID p_specular_buffer, RID p_metallic, const Color &p_metallic_mask, RID p_environment, const CameraMatrix &p_projection, bool p_use_additive) {
- RenderBuffers *rb = render_buffers_owner.getornull(p_render_buffers);
+ RenderBuffers *rb = render_buffers_owner.get_or_null(p_render_buffers);
ERR_FAIL_COND(!rb);
bool can_use_effects = rb->width >= 8 && rb->height >= 8;
@@ -1819,7 +1819,7 @@ void RendererSceneRenderRD::_process_ssr(RID p_render_buffers, RID p_dest_frameb
return;
}
- RendererSceneEnvironmentRD *env = environment_owner.getornull(p_environment);
+ RendererSceneEnvironmentRD *env = environment_owner.get_or_null(p_environment);
ERR_FAIL_COND(!env);
ERR_FAIL_COND(!env->ssr_enabled);
@@ -1860,10 +1860,10 @@ void RendererSceneRenderRD::_process_ssr(RID p_render_buffers, RID p_dest_frameb
}
void RendererSceneRenderRD::_process_ssao(RID p_render_buffers, RID p_environment, RID p_normal_buffer, const CameraMatrix &p_projection) {
- RenderBuffers *rb = render_buffers_owner.getornull(p_render_buffers);
+ RenderBuffers *rb = render_buffers_owner.get_or_null(p_render_buffers);
ERR_FAIL_COND(!rb);
- RendererSceneEnvironmentRD *env = environment_owner.getornull(p_environment);
+ RendererSceneEnvironmentRD *env = environment_owner.get_or_null(p_environment);
ERR_FAIL_COND(!env);
RENDER_TIMESTAMP("Process SSAO");
@@ -2005,7 +2005,7 @@ void RendererSceneRenderRD::_process_ssao(RID p_render_buffers, RID p_environmen
}
void RendererSceneRenderRD::_render_buffers_copy_screen_texture(const RenderDataRD *p_render_data) {
- RenderBuffers *rb = render_buffers_owner.getornull(p_render_data->render_buffers);
+ RenderBuffers *rb = render_buffers_owner.get_or_null(p_render_data->render_buffers);
ERR_FAIL_COND(!rb);
RD::get_singleton()->draw_command_begin_label("Copy screen texture");
@@ -2034,7 +2034,7 @@ void RendererSceneRenderRD::_render_buffers_copy_screen_texture(const RenderData
}
void RendererSceneRenderRD::_render_buffers_copy_depth_texture(const RenderDataRD *p_render_data) {
- RenderBuffers *rb = render_buffers_owner.getornull(p_render_data->render_buffers);
+ RenderBuffers *rb = render_buffers_owner.get_or_null(p_render_data->render_buffers);
ERR_FAIL_COND(!rb);
RD::get_singleton()->draw_command_begin_label("Copy depth texture");
@@ -2057,12 +2057,12 @@ void RendererSceneRenderRD::_render_buffers_copy_depth_texture(const RenderDataR
}
void RendererSceneRenderRD::_render_buffers_post_process_and_tonemap(const RenderDataRD *p_render_data) {
- RenderBuffers *rb = render_buffers_owner.getornull(p_render_data->render_buffers);
+ RenderBuffers *rb = render_buffers_owner.get_or_null(p_render_data->render_buffers);
ERR_FAIL_COND(!rb);
- RendererSceneEnvironmentRD *env = environment_owner.getornull(p_render_data->environment);
+ RendererSceneEnvironmentRD *env = environment_owner.get_or_null(p_render_data->environment);
//glow (if enabled)
- CameraEffects *camfx = camera_effects_owner.getornull(p_render_data->camera_effects);
+ CameraEffects *camfx = camera_effects_owner.get_or_null(p_render_data->camera_effects);
bool can_use_effects = rb->width >= 8 && rb->height >= 8;
bool can_use_storage = _render_buffers_can_be_storage();
@@ -2251,10 +2251,10 @@ void RendererSceneRenderRD::_render_buffers_post_process_and_tonemap(const Rende
void RendererSceneRenderRD::_post_process_subpass(RID p_source_texture, RID p_framebuffer, const RenderDataRD *p_render_data) {
RD::get_singleton()->draw_command_begin_label("Post Process Subpass");
- RenderBuffers *rb = render_buffers_owner.getornull(p_render_data->render_buffers);
+ RenderBuffers *rb = render_buffers_owner.get_or_null(p_render_data->render_buffers);
ERR_FAIL_COND(!rb);
- RendererSceneEnvironmentRD *env = environment_owner.getornull(p_render_data->environment);
+ RendererSceneEnvironmentRD *env = environment_owner.get_or_null(p_render_data->environment);
bool can_use_effects = rb->width >= 8 && rb->height >= 8;
@@ -2311,7 +2311,7 @@ void RendererSceneRenderRD::_post_process_subpass(RID p_source_texture, RID p_fr
}
void RendererSceneRenderRD::_disable_clear_request(const RenderDataRD *p_render_data) {
- RenderBuffers *rb = render_buffers_owner.getornull(p_render_data->render_buffers);
+ RenderBuffers *rb = render_buffers_owner.get_or_null(p_render_data->render_buffers);
ERR_FAIL_COND(!rb);
storage->render_target_disable_clear_request(rb->render_target);
@@ -2320,7 +2320,7 @@ void RendererSceneRenderRD::_disable_clear_request(const RenderDataRD *p_render_
void RendererSceneRenderRD::_render_buffers_debug_draw(RID p_render_buffers, RID p_shadow_atlas, RID p_occlusion_buffer) {
EffectsRD *effects = storage->get_effects();
- RenderBuffers *rb = render_buffers_owner.getornull(p_render_buffers);
+ RenderBuffers *rb = render_buffers_owner.get_or_null(p_render_buffers);
ERR_FAIL_COND(!rb);
if (debug_draw == RS::VIEWPORT_DEBUG_DRAW_SHADOW_ATLAS) {
@@ -2386,7 +2386,7 @@ void RendererSceneRenderRD::_render_buffers_debug_draw(RID p_render_buffers, RID
}
void RendererSceneRenderRD::environment_set_adjustment(RID p_env, bool p_enable, float p_brightness, float p_contrast, float p_saturation, bool p_use_1d_color_correction, RID p_color_correction) {
- RendererSceneEnvironmentRD *env = environment_owner.getornull(p_env);
+ RendererSceneEnvironmentRD *env = environment_owner.get_or_null(p_env);
ERR_FAIL_COND(!env);
env->adjustments_enabled = p_enable;
@@ -2398,7 +2398,7 @@ void RendererSceneRenderRD::environment_set_adjustment(RID p_env, bool p_enable,
}
RID RendererSceneRenderRD::render_buffers_get_back_buffer_texture(RID p_render_buffers) {
- RenderBuffers *rb = render_buffers_owner.getornull(p_render_buffers);
+ RenderBuffers *rb = render_buffers_owner.get_or_null(p_render_buffers);
ERR_FAIL_COND_V(!rb, RID());
if (!rb->blur[0].texture.is_valid()) {
return RID(); //not valid at the moment
@@ -2407,7 +2407,7 @@ RID RendererSceneRenderRD::render_buffers_get_back_buffer_texture(RID p_render_b
}
RID RendererSceneRenderRD::render_buffers_get_back_depth_texture(RID p_render_buffers) {
- RenderBuffers *rb = render_buffers_owner.getornull(p_render_buffers);
+ RenderBuffers *rb = render_buffers_owner.get_or_null(p_render_buffers);
ERR_FAIL_COND_V(!rb, RID());
if (!rb->depth_back_texture.is_valid()) {
return RID(); //not valid at the moment
@@ -2415,15 +2415,22 @@ RID RendererSceneRenderRD::render_buffers_get_back_depth_texture(RID p_render_bu
return rb->depth_back_texture;
}
+RID RendererSceneRenderRD::render_buffers_get_depth_texture(RID p_render_buffers) {
+ RenderBuffers *rb = render_buffers_owner.get_or_null(p_render_buffers);
+ ERR_FAIL_COND_V(!rb, RID());
+
+ return rb->depth_texture;
+}
+
RID RendererSceneRenderRD::render_buffers_get_ao_texture(RID p_render_buffers) {
- RenderBuffers *rb = render_buffers_owner.getornull(p_render_buffers);
+ RenderBuffers *rb = render_buffers_owner.get_or_null(p_render_buffers);
ERR_FAIL_COND_V(!rb, RID());
return rb->ssao.ao_final;
}
RID RendererSceneRenderRD::render_buffers_get_voxel_gi_buffer(RID p_render_buffers) {
- RenderBuffers *rb = render_buffers_owner.getornull(p_render_buffers);
+ RenderBuffers *rb = render_buffers_owner.get_or_null(p_render_buffers);
ERR_FAIL_COND_V(!rb, RID());
if (rb->gi.voxel_gi_buffer.is_null()) {
rb->gi.voxel_gi_buffer = RD::get_singleton()->uniform_buffer_create(sizeof(RendererSceneGIRD::VoxelGIData) * RendererSceneGIRD::MAX_VOXEL_GI_INSTANCES);
@@ -2436,31 +2443,31 @@ RID RendererSceneRenderRD::render_buffers_get_default_voxel_gi_buffer() {
}
RID RendererSceneRenderRD::render_buffers_get_gi_ambient_texture(RID p_render_buffers) {
- RenderBuffers *rb = render_buffers_owner.getornull(p_render_buffers);
+ RenderBuffers *rb = render_buffers_owner.get_or_null(p_render_buffers);
ERR_FAIL_COND_V(!rb, RID());
return rb->ambient_buffer;
}
RID RendererSceneRenderRD::render_buffers_get_gi_reflection_texture(RID p_render_buffers) {
- RenderBuffers *rb = render_buffers_owner.getornull(p_render_buffers);
+ RenderBuffers *rb = render_buffers_owner.get_or_null(p_render_buffers);
ERR_FAIL_COND_V(!rb, RID());
return rb->reflection_buffer;
}
uint32_t RendererSceneRenderRD::render_buffers_get_sdfgi_cascade_count(RID p_render_buffers) const {
- const RenderBuffers *rb = render_buffers_owner.getornull(p_render_buffers);
+ const RenderBuffers *rb = render_buffers_owner.get_or_null(p_render_buffers);
ERR_FAIL_COND_V(!rb, 0);
ERR_FAIL_COND_V(!rb->sdfgi, 0);
return rb->sdfgi->cascades.size();
}
bool RendererSceneRenderRD::render_buffers_is_sdfgi_enabled(RID p_render_buffers) const {
- const RenderBuffers *rb = render_buffers_owner.getornull(p_render_buffers);
+ const RenderBuffers *rb = render_buffers_owner.get_or_null(p_render_buffers);
ERR_FAIL_COND_V(!rb, false);
return rb->sdfgi != nullptr;
}
RID RendererSceneRenderRD::render_buffers_get_sdfgi_irradiance_probes(RID p_render_buffers) const {
- const RenderBuffers *rb = render_buffers_owner.getornull(p_render_buffers);
+ const RenderBuffers *rb = render_buffers_owner.get_or_null(p_render_buffers);
ERR_FAIL_COND_V(!rb, RID());
ERR_FAIL_COND_V(!rb->sdfgi, RID());
@@ -2468,7 +2475,7 @@ RID RendererSceneRenderRD::render_buffers_get_sdfgi_irradiance_probes(RID p_rend
}
Vector3 RendererSceneRenderRD::render_buffers_get_sdfgi_cascade_offset(RID p_render_buffers, uint32_t p_cascade) const {
- const RenderBuffers *rb = render_buffers_owner.getornull(p_render_buffers);
+ const RenderBuffers *rb = render_buffers_owner.get_or_null(p_render_buffers);
ERR_FAIL_COND_V(!rb, Vector3());
ERR_FAIL_COND_V(!rb->sdfgi, Vector3());
ERR_FAIL_UNSIGNED_INDEX_V(p_cascade, rb->sdfgi->cascades.size(), Vector3());
@@ -2477,7 +2484,7 @@ Vector3 RendererSceneRenderRD::render_buffers_get_sdfgi_cascade_offset(RID p_ren
}
Vector3i RendererSceneRenderRD::render_buffers_get_sdfgi_cascade_probe_offset(RID p_render_buffers, uint32_t p_cascade) const {
- const RenderBuffers *rb = render_buffers_owner.getornull(p_render_buffers);
+ const RenderBuffers *rb = render_buffers_owner.get_or_null(p_render_buffers);
ERR_FAIL_COND_V(!rb, Vector3i());
ERR_FAIL_COND_V(!rb->sdfgi, Vector3i());
ERR_FAIL_UNSIGNED_INDEX_V(p_cascade, rb->sdfgi->cascades.size(), Vector3i());
@@ -2487,14 +2494,14 @@ Vector3i RendererSceneRenderRD::render_buffers_get_sdfgi_cascade_probe_offset(RI
}
float RendererSceneRenderRD::render_buffers_get_sdfgi_normal_bias(RID p_render_buffers) const {
- const RenderBuffers *rb = render_buffers_owner.getornull(p_render_buffers);
+ const RenderBuffers *rb = render_buffers_owner.get_or_null(p_render_buffers);
ERR_FAIL_COND_V(!rb, 0);
ERR_FAIL_COND_V(!rb->sdfgi, 0);
return rb->sdfgi->normal_bias;
}
float RendererSceneRenderRD::render_buffers_get_sdfgi_cascade_probe_size(RID p_render_buffers, uint32_t p_cascade) const {
- const RenderBuffers *rb = render_buffers_owner.getornull(p_render_buffers);
+ const RenderBuffers *rb = render_buffers_owner.get_or_null(p_render_buffers);
ERR_FAIL_COND_V(!rb, 0);
ERR_FAIL_COND_V(!rb->sdfgi, 0);
ERR_FAIL_UNSIGNED_INDEX_V(p_cascade, rb->sdfgi->cascades.size(), 0);
@@ -2502,7 +2509,7 @@ float RendererSceneRenderRD::render_buffers_get_sdfgi_cascade_probe_size(RID p_r
return float(rb->sdfgi->cascade_size) * rb->sdfgi->cascades[p_cascade].cell_size / float(rb->sdfgi->probe_axis_count - 1);
}
uint32_t RendererSceneRenderRD::render_buffers_get_sdfgi_cascade_probe_count(RID p_render_buffers) const {
- const RenderBuffers *rb = render_buffers_owner.getornull(p_render_buffers);
+ const RenderBuffers *rb = render_buffers_owner.get_or_null(p_render_buffers);
ERR_FAIL_COND_V(!rb, 0);
ERR_FAIL_COND_V(!rb->sdfgi, 0);
@@ -2510,7 +2517,7 @@ uint32_t RendererSceneRenderRD::render_buffers_get_sdfgi_cascade_probe_count(RID
}
uint32_t RendererSceneRenderRD::render_buffers_get_sdfgi_cascade_size(RID p_render_buffers) const {
- const RenderBuffers *rb = render_buffers_owner.getornull(p_render_buffers);
+ const RenderBuffers *rb = render_buffers_owner.get_or_null(p_render_buffers);
ERR_FAIL_COND_V(!rb, 0);
ERR_FAIL_COND_V(!rb->sdfgi, 0);
@@ -2518,7 +2525,7 @@ uint32_t RendererSceneRenderRD::render_buffers_get_sdfgi_cascade_size(RID p_rend
}
bool RendererSceneRenderRD::render_buffers_is_sdfgi_using_occlusion(RID p_render_buffers) const {
- const RenderBuffers *rb = render_buffers_owner.getornull(p_render_buffers);
+ const RenderBuffers *rb = render_buffers_owner.get_or_null(p_render_buffers);
ERR_FAIL_COND_V(!rb, false);
ERR_FAIL_COND_V(!rb->sdfgi, false);
@@ -2526,14 +2533,14 @@ bool RendererSceneRenderRD::render_buffers_is_sdfgi_using_occlusion(RID p_render
}
float RendererSceneRenderRD::render_buffers_get_sdfgi_energy(RID p_render_buffers) const {
- const RenderBuffers *rb = render_buffers_owner.getornull(p_render_buffers);
+ const RenderBuffers *rb = render_buffers_owner.get_or_null(p_render_buffers);
ERR_FAIL_COND_V(!rb, 0.0);
ERR_FAIL_COND_V(!rb->sdfgi, 0.0);
return rb->sdfgi->energy;
}
RID RendererSceneRenderRD::render_buffers_get_sdfgi_occlusion_texture(RID p_render_buffers) const {
- const RenderBuffers *rb = render_buffers_owner.getornull(p_render_buffers);
+ const RenderBuffers *rb = render_buffers_owner.get_or_null(p_render_buffers);
ERR_FAIL_COND_V(!rb, RID());
ERR_FAIL_COND_V(!rb->sdfgi, RID());
@@ -2541,20 +2548,20 @@ RID RendererSceneRenderRD::render_buffers_get_sdfgi_occlusion_texture(RID p_rend
}
bool RendererSceneRenderRD::render_buffers_has_volumetric_fog(RID p_render_buffers) const {
- const RenderBuffers *rb = render_buffers_owner.getornull(p_render_buffers);
+ const RenderBuffers *rb = render_buffers_owner.get_or_null(p_render_buffers);
ERR_FAIL_COND_V(!rb, false);
return rb->volumetric_fog != nullptr;
}
RID RendererSceneRenderRD::render_buffers_get_volumetric_fog_texture(RID p_render_buffers) {
- const RenderBuffers *rb = render_buffers_owner.getornull(p_render_buffers);
+ const RenderBuffers *rb = render_buffers_owner.get_or_null(p_render_buffers);
ERR_FAIL_COND_V(!rb || !rb->volumetric_fog, RID());
return rb->volumetric_fog->fog_map;
}
RID RendererSceneRenderRD::render_buffers_get_volumetric_fog_sky_uniform_set(RID p_render_buffers) {
- const RenderBuffers *rb = render_buffers_owner.getornull(p_render_buffers);
+ const RenderBuffers *rb = render_buffers_owner.get_or_null(p_render_buffers);
ERR_FAIL_COND_V(!rb, RID());
if (!rb->volumetric_fog) {
@@ -2565,12 +2572,12 @@ RID RendererSceneRenderRD::render_buffers_get_volumetric_fog_sky_uniform_set(RID
}
float RendererSceneRenderRD::render_buffers_get_volumetric_fog_end(RID p_render_buffers) {
- const RenderBuffers *rb = render_buffers_owner.getornull(p_render_buffers);
+ const RenderBuffers *rb = render_buffers_owner.get_or_null(p_render_buffers);
ERR_FAIL_COND_V(!rb || !rb->volumetric_fog, 0);
return rb->volumetric_fog->length;
}
float RendererSceneRenderRD::render_buffers_get_volumetric_fog_detail_spread(RID p_render_buffers) {
- const RenderBuffers *rb = render_buffers_owner.getornull(p_render_buffers);
+ const RenderBuffers *rb = render_buffers_owner.get_or_null(p_render_buffers);
ERR_FAIL_COND_V(!rb || !rb->volumetric_fog, 0);
return rb->volumetric_fog->spread;
}
@@ -2590,7 +2597,7 @@ bool RendererSceneRenderRD::_render_buffers_can_be_storage() {
void RendererSceneRenderRD::render_buffers_configure(RID p_render_buffers, RID p_render_target, int p_width, int p_height, RS::ViewportMSAA p_msaa, RenderingServer::ViewportScreenSpaceAA p_screen_space_aa, bool p_use_debanding, uint32_t p_view_count) {
ERR_FAIL_COND_MSG(p_view_count == 0, "Must have at least 1 view");
- RenderBuffers *rb = render_buffers_owner.getornull(p_render_buffers);
+ RenderBuffers *rb = render_buffers_owner.get_or_null(p_render_buffers);
// Should we add an overrule per viewport?
rb->width = p_width;
@@ -2794,7 +2801,7 @@ bool RendererSceneRenderRD::is_using_radiance_cubemap_array() const {
}
RendererSceneRenderRD::RenderBufferData *RendererSceneRenderRD::render_buffers_get_data(RID p_render_buffers) {
- RenderBuffers *rb = render_buffers_owner.getornull(p_render_buffers);
+ RenderBuffers *rb = render_buffers_owner.get_or_null(p_render_buffers);
ERR_FAIL_COND_V(!rb, nullptr);
return rb->data;
}
@@ -2807,7 +2814,7 @@ void RendererSceneRenderRD::_setup_reflections(const PagedArray<RID> &p_reflecti
break;
}
- ReflectionProbeInstance *rpi = reflection_probe_instance_owner.getornull(p_reflections[i]);
+ ReflectionProbeInstance *rpi = reflection_probe_instance_owner.get_or_null(p_reflections[i]);
if (!rpi) {
continue;
}
@@ -2893,7 +2900,7 @@ void RendererSceneRenderRD::_setup_lights(const PagedArray<RID> &p_lights, const
r_directional_light_soft_shadows = false;
for (int i = 0; i < (int)p_lights.size(); i++) {
- LightInstance *li = light_instance_owner.getornull(p_lights[i]);
+ LightInstance *li = light_instance_owner.get_or_null(p_lights[i]);
if (!li) {
continue;
}
@@ -3122,7 +3129,7 @@ void RendererSceneRenderRD::_setup_lights(const PagedArray<RID> &p_lights, const
ShadowAtlas *shadow_atlas = nullptr;
if (p_shadow_atlas.is_valid() && p_using_shadows) {
- shadow_atlas = shadow_atlas_owner.getornull(p_shadow_atlas);
+ shadow_atlas = shadow_atlas_owner.get_or_null(p_shadow_atlas);
}
bool using_forward_ids = _uses_forward_ids();
@@ -3305,7 +3312,7 @@ void RendererSceneRenderRD::_setup_decals(const PagedArray<RID> &p_decals, const
break;
}
- DecalInstance *di = decal_instance_owner.getornull(p_decals[i]);
+ DecalInstance *di = decal_instance_owner.get_or_null(p_decals[i]);
if (!di) {
continue;
}
@@ -3365,7 +3372,7 @@ void RendererSceneRenderRD::_setup_decals(const PagedArray<RID> &p_decals, const
Vector3 decal_extents = storage->decal_get_extents(decal);
Transform3D scale_xform;
- scale_xform.basis.scale(Vector3(decal_extents.x, decal_extents.y, decal_extents.z));
+ scale_xform.basis.scale(decal_extents);
Transform3D to_decal_xform = (p_camera_inverse_xform * di->transform * scale_xform * uv_xform).affine_inverse();
RendererStorageRD::store_transform(to_decal_xform, dd.xform);
@@ -3488,9 +3495,9 @@ void RendererSceneRenderRD::_volumetric_fog_erase(RenderBuffers *rb) {
void RendererSceneRenderRD::_update_volumetric_fog(RID p_render_buffers, RID p_environment, const CameraMatrix &p_cam_projection, const Transform3D &p_cam_transform, RID p_shadow_atlas, int p_directional_light_count, bool p_use_directional_shadows, int p_positional_light_count, int p_voxel_gi_count) {
ERR_FAIL_COND(!is_clustered_enabled()); // can't use volumetric fog without clustered
- RenderBuffers *rb = render_buffers_owner.getornull(p_render_buffers);
+ RenderBuffers *rb = render_buffers_owner.get_or_null(p_render_buffers);
ERR_FAIL_COND(!rb);
- RendererSceneEnvironmentRD *env = environment_owner.getornull(p_environment);
+ RendererSceneEnvironmentRD *env = environment_owner.get_or_null(p_environment);
float ratio = float(rb->width) / float((rb->width + rb->height) / 2);
uint32_t target_width = uint32_t(float(volumetric_fog_size) * ratio);
@@ -3559,7 +3566,7 @@ void RendererSceneRenderRD::_update_volumetric_fog(RID p_render_buffers, RID p_e
RD::Uniform u;
u.uniform_type = RD::UNIFORM_TYPE_TEXTURE;
u.binding = 1;
- ShadowAtlas *shadow_atlas = shadow_atlas_owner.getornull(p_shadow_atlas);
+ ShadowAtlas *shadow_atlas = shadow_atlas_owner.get_or_null(p_shadow_atlas);
if (shadow_atlas == nullptr || shadow_atlas->depth.is_null()) {
u.ids.push_back(storage->texture_rd_get_default(RendererStorageRD::DEFAULT_RD_TEXTURE_BLACK));
} else {
@@ -3881,7 +3888,7 @@ void RendererSceneRenderRD::_update_volumetric_fog(RID p_render_buffers, RID p_e
bool RendererSceneRenderRD::_needs_post_prepass_render(RenderDataRD *p_render_data, bool p_use_gi) {
if (p_render_data->render_buffers.is_valid()) {
- RenderBuffers *rb = render_buffers_owner.getornull(p_render_data->render_buffers);
+ RenderBuffers *rb = render_buffers_owner.get_or_null(p_render_data->render_buffers);
if (rb->sdfgi != nullptr) {
return true;
}
@@ -3892,14 +3899,14 @@ bool RendererSceneRenderRD::_needs_post_prepass_render(RenderDataRD *p_render_da
void RendererSceneRenderRD::_post_prepass_render(RenderDataRD *p_render_data, bool p_use_gi) {
if (p_render_data->render_buffers.is_valid()) {
if (p_use_gi) {
- RenderBuffers *rb = render_buffers_owner.getornull(p_render_data->render_buffers);
+ RenderBuffers *rb = render_buffers_owner.get_or_null(p_render_data->render_buffers);
ERR_FAIL_COND(rb == nullptr);
if (rb->sdfgi == nullptr) {
return;
}
- RendererSceneEnvironmentRD *env = environment_owner.getornull(p_render_data->environment);
- rb->sdfgi->update_probes(env, sky.sky_owner.getornull(env->sky));
+ RendererSceneEnvironmentRD *env = environment_owner.get_or_null(p_render_data->environment);
+ rb->sdfgi->update_probes(env, sky.sky_owner.get_or_null(env->sky));
}
}
}
@@ -3916,7 +3923,7 @@ void RendererSceneRenderRD::_pre_opaque_render(RenderDataRD *p_render_data, bool
// Render shadows while GI is rendering, due to how barriers are handled, this should happen at the same time
if (p_render_data->render_buffers.is_valid() && p_use_gi) {
- RenderBuffers *rb = render_buffers_owner.getornull(p_render_data->render_buffers);
+ RenderBuffers *rb = render_buffers_owner.get_or_null(p_render_data->render_buffers);
ERR_FAIL_COND(rb == nullptr);
if (rb->sdfgi != nullptr) {
rb->sdfgi->store_probes();
@@ -3931,7 +3938,7 @@ void RendererSceneRenderRD::_pre_opaque_render(RenderDataRD *p_render_data, bool
float lod_distance_multiplier = p_render_data->cam_projection.get_lod_multiplier();
{
for (int i = 0; i < render_state.render_shadow_count; i++) {
- LightInstance *li = light_instance_owner.getornull(render_state.render_shadows[i].light);
+ LightInstance *li = light_instance_owner.get_or_null(render_state.render_shadows[i].light);
if (storage->light_get_type(li->light) == RS::LIGHT_DIRECTIONAL) {
render_state.directional_shadows.push_back(i);
@@ -4051,7 +4058,7 @@ void RendererSceneRenderRD::render_scene(RID p_render_buffers, const CameraData
// getting this here now so we can direct call a bunch of things more easily
RenderBuffers *rb = nullptr;
if (p_render_buffers.is_valid()) {
- rb = render_buffers_owner.getornull(p_render_buffers);
+ rb = render_buffers_owner.get_or_null(p_render_buffers);
ERR_FAIL_COND(!rb);
}
@@ -4133,7 +4140,7 @@ void RendererSceneRenderRD::render_scene(RID p_render_buffers, const CameraData
//assign render indices to voxel_gi_instances
if (is_dynamic_gi_supported()) {
for (uint32_t i = 0; i < (uint32_t)p_voxel_gi_instances.size(); i++) {
- RendererSceneGIRD::VoxelGIInstance *voxel_gi_inst = gi.voxel_gi_instance_owner.getornull(p_voxel_gi_instances[i]);
+ RendererSceneGIRD::VoxelGIInstance *voxel_gi_inst = gi.voxel_gi_instance_owner.get_or_null(p_voxel_gi_instances[i]);
if (voxel_gi_inst) {
voxel_gi_inst->render_index = i;
}
@@ -4144,8 +4151,8 @@ void RendererSceneRenderRD::render_scene(RID p_render_buffers, const CameraData
// render_data.render_buffers == p_render_buffers so we can use our already retrieved rb
current_cluster_builder = rb->cluster_builder;
} else if (reflection_probe_instance_owner.owns(render_data.reflection_probe)) {
- ReflectionProbeInstance *rpi = reflection_probe_instance_owner.getornull(render_data.reflection_probe);
- ReflectionAtlas *ra = reflection_atlas_owner.getornull(rpi->atlas);
+ ReflectionProbeInstance *rpi = reflection_probe_instance_owner.get_or_null(render_data.reflection_probe);
+ ReflectionAtlas *ra = reflection_atlas_owner.get_or_null(rpi->atlas);
if (!ra) {
ERR_PRINT("reflection probe has no reflection atlas! Bug?");
current_cluster_builder = nullptr;
@@ -4223,7 +4230,7 @@ void RendererSceneRenderRD::_debug_draw_cluster(RID p_render_buffers) {
}
void RendererSceneRenderRD::_render_shadow_pass(RID p_light, RID p_shadow_atlas, int p_pass, const PagedArray<GeometryInstance *> &p_instances, const Plane &p_camera_plane, float p_lod_distance_multiplier, float p_screen_lod_threshold, bool p_open_pass, bool p_close_pass, bool p_clear_region, RendererScene::RenderInfo *p_render_info) {
- LightInstance *light_instance = light_instance_owner.getornull(p_light);
+ LightInstance *light_instance = light_instance_owner.get_or_null(p_light);
ERR_FAIL_COND(!light_instance);
Rect2i atlas_rect;
@@ -4258,10 +4265,7 @@ void RendererSceneRenderRD::_render_shadow_pass(RID p_light, RID p_shadow_atlas,
light_projection = light_instance->shadow_transform[p_pass].camera;
light_transform = light_instance->shadow_transform[p_pass].transform;
- atlas_rect.position.x = light_instance->directional_rect.position.x;
- atlas_rect.position.y = light_instance->directional_rect.position.y;
- atlas_rect.size.width = light_instance->directional_rect.size.x;
- atlas_rect.size.height = light_instance->directional_rect.size.y;
+ atlas_rect = light_instance->directional_rect;
if (storage->light_directional_get_shadow_mode(light_instance->light) == RS::LIGHT_DIRECTIONAL_SHADOW_PARALLEL_4_SPLITS) {
atlas_rect.size.width /= 2;
@@ -4272,8 +4276,7 @@ void RendererSceneRenderRD::_render_shadow_pass(RID p_light, RID p_shadow_atlas,
} else if (p_pass == 2) {
atlas_rect.position.y += atlas_rect.size.height;
} else if (p_pass == 3) {
- atlas_rect.position.x += atlas_rect.size.width;
- atlas_rect.position.y += atlas_rect.size.height;
+ atlas_rect.position += atlas_rect.size;
}
} else if (storage->light_directional_get_shadow_mode(light_instance->light) == RS::LIGHT_DIRECTIONAL_SHADOW_PARALLEL_2_SPLITS) {
atlas_rect.size.height /= 2;
@@ -4298,7 +4301,7 @@ void RendererSceneRenderRD::_render_shadow_pass(RID p_light, RID p_shadow_atlas,
} else {
//set from shadow atlas
- ShadowAtlas *shadow_atlas = shadow_atlas_owner.getornull(p_shadow_atlas);
+ ShadowAtlas *shadow_atlas = shadow_atlas_owner.get_or_null(p_shadow_atlas);
ERR_FAIL_COND(!shadow_atlas);
ERR_FAIL_COND(!shadow_atlas->shadow_owners.has(p_light));
@@ -4382,10 +4385,8 @@ void RendererSceneRenderRD::_render_shadow_pass(RID p_light, RID p_shadow_atlas,
_render_shadow_end();
//reblit
Rect2 atlas_rect_norm = atlas_rect;
- atlas_rect_norm.position.x /= float(atlas_size);
- atlas_rect_norm.position.y /= float(atlas_size);
- atlas_rect_norm.size.x /= float(atlas_size);
- atlas_rect_norm.size.y /= float(atlas_size);
+ atlas_rect_norm.position /= float(atlas_size);
+ atlas_rect_norm.size /= float(atlas_size);
storage->get_effects()->copy_cubemap_to_dp(render_texture, atlas_fb, atlas_rect_norm, atlas_rect.size, light_projection.get_z_near(), light_projection.get_z_far(), false);
atlas_rect_norm.position += Vector2(dual_paraboloid_offset) * atlas_rect_norm.size;
storage->get_effects()->copy_cubemap_to_dp(render_texture, atlas_fb, atlas_rect_norm, atlas_rect.size, light_projection.get_z_near(), light_projection.get_z_far(), true);
@@ -4423,7 +4424,7 @@ void RendererSceneRenderRD::render_particle_collider_heightfield(RID p_collider,
bool RendererSceneRenderRD::free(RID p_rid) {
if (render_buffers_owner.owns(p_rid)) {
- RenderBuffers *rb = render_buffers_owner.getornull(p_rid);
+ RenderBuffers *rb = render_buffers_owner.get_or_null(p_rid);
_free_render_buffer_data(rb);
memdelete(rb->data);
if (rb->sdfgi) {
@@ -4446,24 +4447,24 @@ bool RendererSceneRenderRD::free(RID p_rid) {
camera_effects_owner.free(p_rid);
} else if (reflection_atlas_owner.owns(p_rid)) {
reflection_atlas_set_size(p_rid, 0, 0);
- ReflectionAtlas *ra = reflection_atlas_owner.getornull(p_rid);
+ ReflectionAtlas *ra = reflection_atlas_owner.get_or_null(p_rid);
if (ra->cluster_builder) {
memdelete(ra->cluster_builder);
}
reflection_atlas_owner.free(p_rid);
} else if (reflection_probe_instance_owner.owns(p_rid)) {
- ReflectionProbeInstance *rpi = reflection_probe_instance_owner.getornull(p_rid);
+ ReflectionProbeInstance *rpi = reflection_probe_instance_owner.get_or_null(p_rid);
_free_forward_id(FORWARD_ID_TYPE_REFLECTION_PROBE, rpi->forward_id);
reflection_probe_release_atlas_index(p_rid);
reflection_probe_instance_owner.free(p_rid);
} else if (decal_instance_owner.owns(p_rid)) {
- DecalInstance *di = decal_instance_owner.getornull(p_rid);
+ DecalInstance *di = decal_instance_owner.get_or_null(p_rid);
_free_forward_id(FORWARD_ID_TYPE_DECAL, di->forward_id);
decal_instance_owner.free(p_rid);
} else if (lightmap_instance_owner.owns(p_rid)) {
lightmap_instance_owner.free(p_rid);
} else if (gi.voxel_gi_instance_owner.owns(p_rid)) {
- RendererSceneGIRD::VoxelGIInstance *voxel_gi = gi.voxel_gi_instance_owner.getornull(p_rid);
+ RendererSceneGIRD::VoxelGIInstance *voxel_gi = gi.voxel_gi_instance_owner.get_or_null(p_rid);
if (voxel_gi->texture.is_valid()) {
RD::get_singleton()->free(voxel_gi->texture);
RD::get_singleton()->free(voxel_gi->write_buffer);
@@ -4479,11 +4480,11 @@ bool RendererSceneRenderRD::free(RID p_rid) {
sky.update_dirty_skys();
sky.free_sky(p_rid);
} else if (light_instance_owner.owns(p_rid)) {
- LightInstance *light_instance = light_instance_owner.getornull(p_rid);
+ LightInstance *light_instance = light_instance_owner.get_or_null(p_rid);
//remove from shadow atlases..
for (Set<RID>::Element *E = light_instance->shadow_atlases.front(); E; E = E->next()) {
- ShadowAtlas *shadow_atlas = shadow_atlas_owner.getornull(E->get());
+ ShadowAtlas *shadow_atlas = shadow_atlas_owner.get_or_null(E->get());
ERR_CONTINUE(!shadow_atlas->shadow_owners.has(p_rid));
uint32_t key = shadow_atlas->shadow_owners[p_rid];
uint32_t q = (key >> ShadowAtlas::QUADRANT_SHIFT) & 0x3;
diff --git a/servers/rendering/renderer_rd/renderer_scene_render_rd.h b/servers/rendering/renderer_rd/renderer_scene_render_rd.h
index eb61af517a..fa80b84cfe 100644
--- a/servers/rendering/renderer_rd/renderer_scene_render_rd.h
+++ b/servers/rendering/renderer_rd/renderer_scene_render_rd.h
@@ -149,7 +149,7 @@ protected:
RendererSceneEnvironmentRD *get_environment(RID p_environment) {
if (p_environment.is_valid()) {
- return environment_owner.getornull(p_environment);
+ return environment_owner.get_or_null(p_environment);
} else {
return nullptr;
}
@@ -814,19 +814,19 @@ public:
virtual void shadow_atlas_set_quadrant_subdivision(RID p_atlas, int p_quadrant, int p_subdivision) override;
virtual bool shadow_atlas_update_light(RID p_atlas, RID p_light_intance, float p_coverage, uint64_t p_light_version) override;
_FORCE_INLINE_ bool shadow_atlas_owns_light_instance(RID p_atlas, RID p_light_intance) {
- ShadowAtlas *atlas = shadow_atlas_owner.getornull(p_atlas);
+ ShadowAtlas *atlas = shadow_atlas_owner.get_or_null(p_atlas);
ERR_FAIL_COND_V(!atlas, false);
return atlas->shadow_owners.has(p_light_intance);
}
_FORCE_INLINE_ RID shadow_atlas_get_texture(RID p_atlas) {
- ShadowAtlas *atlas = shadow_atlas_owner.getornull(p_atlas);
+ ShadowAtlas *atlas = shadow_atlas_owner.get_or_null(p_atlas);
ERR_FAIL_COND_V(!atlas, RID());
return atlas->depth;
}
_FORCE_INLINE_ Size2i shadow_atlas_get_size(RID p_atlas) {
- ShadowAtlas *atlas = shadow_atlas_owner.getornull(p_atlas);
+ ShadowAtlas *atlas = shadow_atlas_owner.get_or_null(p_atlas);
ERR_FAIL_COND_V(!atlas, Size2i());
return Size2(atlas->size, atlas->size);
}
@@ -942,7 +942,7 @@ public:
virtual void camera_effects_set_custom_exposure(RID p_camera_effects, bool p_enable, float p_exposure) override;
bool camera_effects_uses_dof(RID p_camera_effects) {
- CameraEffects *camfx = camera_effects_owner.getornull(p_camera_effects);
+ CameraEffects *camfx = camera_effects_owner.get_or_null(p_camera_effects);
return camfx && (camfx->dof_blur_near_enabled || camfx->dof_blur_far_enabled) && camfx->dof_blur_amount > 0.0;
}
@@ -954,18 +954,18 @@ public:
virtual void light_instance_mark_visible(RID p_light_instance) override;
_FORCE_INLINE_ RID light_instance_get_base_light(RID p_light_instance) {
- LightInstance *li = light_instance_owner.getornull(p_light_instance);
+ LightInstance *li = light_instance_owner.get_or_null(p_light_instance);
return li->light;
}
_FORCE_INLINE_ Transform3D light_instance_get_base_transform(RID p_light_instance) {
- LightInstance *li = light_instance_owner.getornull(p_light_instance);
+ LightInstance *li = light_instance_owner.get_or_null(p_light_instance);
return li->transform;
}
_FORCE_INLINE_ Rect2 light_instance_get_shadow_atlas_rect(RID p_light_instance, RID p_shadow_atlas, Vector2i &r_omni_offset) {
- ShadowAtlas *shadow_atlas = shadow_atlas_owner.getornull(p_shadow_atlas);
- LightInstance *li = light_instance_owner.getornull(p_light_instance);
+ ShadowAtlas *shadow_atlas = shadow_atlas_owner.get_or_null(p_shadow_atlas);
+ LightInstance *li = light_instance_owner.get_or_null(p_light_instance);
uint32_t key = shadow_atlas->shadow_owners[li->self];
uint32_t quadrant = (key >> ShadowAtlas::QUADRANT_SHIFT) & 0x3;
@@ -1000,16 +1000,16 @@ public:
}
_FORCE_INLINE_ CameraMatrix light_instance_get_shadow_camera(RID p_light_instance, int p_index) {
- LightInstance *li = light_instance_owner.getornull(p_light_instance);
+ LightInstance *li = light_instance_owner.get_or_null(p_light_instance);
return li->shadow_transform[p_index].camera;
}
_FORCE_INLINE_ float light_instance_get_shadow_texel_size(RID p_light_instance, RID p_shadow_atlas) {
#ifdef DEBUG_ENABLED
- LightInstance *li = light_instance_owner.getornull(p_light_instance);
+ LightInstance *li = light_instance_owner.get_or_null(p_light_instance);
ERR_FAIL_COND_V(!li->shadow_atlases.has(p_shadow_atlas), 0);
#endif
- ShadowAtlas *shadow_atlas = shadow_atlas_owner.getornull(p_shadow_atlas);
+ ShadowAtlas *shadow_atlas = shadow_atlas_owner.get_or_null(p_shadow_atlas);
ERR_FAIL_COND_V(!shadow_atlas, 0);
#ifdef DEBUG_ENABLED
ERR_FAIL_COND_V(!shadow_atlas->shadow_owners.has(p_light_instance), 0);
@@ -1027,59 +1027,59 @@ public:
_FORCE_INLINE_ Transform3D
light_instance_get_shadow_transform(RID p_light_instance, int p_index) {
- LightInstance *li = light_instance_owner.getornull(p_light_instance);
+ LightInstance *li = light_instance_owner.get_or_null(p_light_instance);
return li->shadow_transform[p_index].transform;
}
_FORCE_INLINE_ float light_instance_get_shadow_bias_scale(RID p_light_instance, int p_index) {
- LightInstance *li = light_instance_owner.getornull(p_light_instance);
+ LightInstance *li = light_instance_owner.get_or_null(p_light_instance);
return li->shadow_transform[p_index].bias_scale;
}
_FORCE_INLINE_ float light_instance_get_shadow_range(RID p_light_instance, int p_index) {
- LightInstance *li = light_instance_owner.getornull(p_light_instance);
+ LightInstance *li = light_instance_owner.get_or_null(p_light_instance);
return li->shadow_transform[p_index].farplane;
}
_FORCE_INLINE_ float light_instance_get_shadow_range_begin(RID p_light_instance, int p_index) {
- LightInstance *li = light_instance_owner.getornull(p_light_instance);
+ LightInstance *li = light_instance_owner.get_or_null(p_light_instance);
return li->shadow_transform[p_index].range_begin;
}
_FORCE_INLINE_ Vector2 light_instance_get_shadow_uv_scale(RID p_light_instance, int p_index) {
- LightInstance *li = light_instance_owner.getornull(p_light_instance);
+ LightInstance *li = light_instance_owner.get_or_null(p_light_instance);
return li->shadow_transform[p_index].uv_scale;
}
_FORCE_INLINE_ Rect2 light_instance_get_directional_shadow_atlas_rect(RID p_light_instance, int p_index) {
- LightInstance *li = light_instance_owner.getornull(p_light_instance);
+ LightInstance *li = light_instance_owner.get_or_null(p_light_instance);
return li->shadow_transform[p_index].atlas_rect;
}
_FORCE_INLINE_ float light_instance_get_directional_shadow_split(RID p_light_instance, int p_index) {
- LightInstance *li = light_instance_owner.getornull(p_light_instance);
+ LightInstance *li = light_instance_owner.get_or_null(p_light_instance);
return li->shadow_transform[p_index].split;
}
_FORCE_INLINE_ float light_instance_get_directional_shadow_texel_size(RID p_light_instance, int p_index) {
- LightInstance *li = light_instance_owner.getornull(p_light_instance);
+ LightInstance *li = light_instance_owner.get_or_null(p_light_instance);
return li->shadow_transform[p_index].shadow_texel_size;
}
_FORCE_INLINE_ void light_instance_set_render_pass(RID p_light_instance, uint64_t p_pass) {
- LightInstance *li = light_instance_owner.getornull(p_light_instance);
+ LightInstance *li = light_instance_owner.get_or_null(p_light_instance);
li->last_pass = p_pass;
}
_FORCE_INLINE_ uint64_t light_instance_get_render_pass(RID p_light_instance) {
- LightInstance *li = light_instance_owner.getornull(p_light_instance);
+ LightInstance *li = light_instance_owner.get_or_null(p_light_instance);
return li->last_pass;
}
_FORCE_INLINE_ ForwardID light_instance_get_forward_id(RID p_light_instance) {
- LightInstance *li = light_instance_owner.getornull(p_light_instance);
+ LightInstance *li = light_instance_owner.get_or_null(p_light_instance);
return li->forward_id;
}
_FORCE_INLINE_ RS::LightType light_instance_get_type(RID p_light_instance) {
- LightInstance *li = light_instance_owner.getornull(p_light_instance);
+ LightInstance *li = light_instance_owner.get_or_null(p_light_instance);
return li->light_type;
}
@@ -1088,7 +1088,7 @@ public:
virtual int reflection_atlas_get_size(RID p_ref_atlas) const override;
_FORCE_INLINE_ RID reflection_atlas_get_texture(RID p_ref_atlas) {
- ReflectionAtlas *atlas = reflection_atlas_owner.getornull(p_ref_atlas);
+ ReflectionAtlas *atlas = reflection_atlas_owner.get_or_null(p_ref_atlas);
ERR_FAIL_COND_V(!atlas, RID());
return atlas->reflection;
}
@@ -1107,41 +1107,41 @@ public:
RID reflection_probe_instance_get_depth_framebuffer(RID p_instance, int p_index);
_FORCE_INLINE_ RID reflection_probe_instance_get_probe(RID p_instance) {
- ReflectionProbeInstance *rpi = reflection_probe_instance_owner.getornull(p_instance);
+ ReflectionProbeInstance *rpi = reflection_probe_instance_owner.get_or_null(p_instance);
ERR_FAIL_COND_V(!rpi, RID());
return rpi->probe;
}
_FORCE_INLINE_ ForwardID reflection_probe_instance_get_forward_id(RID p_instance) {
- ReflectionProbeInstance *rpi = reflection_probe_instance_owner.getornull(p_instance);
+ ReflectionProbeInstance *rpi = reflection_probe_instance_owner.get_or_null(p_instance);
ERR_FAIL_COND_V(!rpi, 0);
return rpi->forward_id;
}
_FORCE_INLINE_ void reflection_probe_instance_set_render_pass(RID p_instance, uint32_t p_render_pass) {
- ReflectionProbeInstance *rpi = reflection_probe_instance_owner.getornull(p_instance);
+ ReflectionProbeInstance *rpi = reflection_probe_instance_owner.get_or_null(p_instance);
ERR_FAIL_COND(!rpi);
rpi->last_pass = p_render_pass;
}
_FORCE_INLINE_ uint32_t reflection_probe_instance_get_render_pass(RID p_instance) {
- ReflectionProbeInstance *rpi = reflection_probe_instance_owner.getornull(p_instance);
+ ReflectionProbeInstance *rpi = reflection_probe_instance_owner.get_or_null(p_instance);
ERR_FAIL_COND_V(!rpi, 0);
return rpi->last_pass;
}
_FORCE_INLINE_ Transform3D reflection_probe_instance_get_transform(RID p_instance) {
- ReflectionProbeInstance *rpi = reflection_probe_instance_owner.getornull(p_instance);
+ ReflectionProbeInstance *rpi = reflection_probe_instance_owner.get_or_null(p_instance);
ERR_FAIL_COND_V(!rpi, Transform3D());
return rpi->transform;
}
_FORCE_INLINE_ int reflection_probe_instance_get_atlas_index(RID p_instance) {
- ReflectionProbeInstance *rpi = reflection_probe_instance_owner.getornull(p_instance);
+ ReflectionProbeInstance *rpi = reflection_probe_instance_owner.get_or_null(p_instance);
ERR_FAIL_COND_V(!rpi, -1);
return rpi->atlas_index;
@@ -1151,32 +1151,32 @@ public:
virtual void decal_instance_set_transform(RID p_decal, const Transform3D &p_transform) override;
_FORCE_INLINE_ RID decal_instance_get_base(RID p_decal) const {
- DecalInstance *decal = decal_instance_owner.getornull(p_decal);
+ DecalInstance *decal = decal_instance_owner.get_or_null(p_decal);
return decal->decal;
}
_FORCE_INLINE_ ForwardID decal_instance_get_forward_id(RID p_decal) const {
- DecalInstance *decal = decal_instance_owner.getornull(p_decal);
+ DecalInstance *decal = decal_instance_owner.get_or_null(p_decal);
return decal->forward_id;
}
_FORCE_INLINE_ Transform3D decal_instance_get_transform(RID p_decal) const {
- DecalInstance *decal = decal_instance_owner.getornull(p_decal);
+ DecalInstance *decal = decal_instance_owner.get_or_null(p_decal);
return decal->transform;
}
virtual RID lightmap_instance_create(RID p_lightmap) override;
virtual void lightmap_instance_set_transform(RID p_lightmap, const Transform3D &p_transform) override;
_FORCE_INLINE_ bool lightmap_instance_is_valid(RID p_lightmap_instance) {
- return lightmap_instance_owner.getornull(p_lightmap_instance) != nullptr;
+ return lightmap_instance_owner.get_or_null(p_lightmap_instance) != nullptr;
}
_FORCE_INLINE_ RID lightmap_instance_get_lightmap(RID p_lightmap_instance) {
- LightmapInstance *li = lightmap_instance_owner.getornull(p_lightmap_instance);
+ LightmapInstance *li = lightmap_instance_owner.get_or_null(p_lightmap_instance);
return li->lightmap;
}
_FORCE_INLINE_ Transform3D lightmap_instance_get_transform(RID p_lightmap_instance) {
- LightmapInstance *li = lightmap_instance_owner.getornull(p_lightmap_instance);
+ LightmapInstance *li = lightmap_instance_owner.get_or_null(p_lightmap_instance);
return li->transform;
}
@@ -1197,6 +1197,7 @@ public:
virtual void render_buffers_configure(RID p_render_buffers, RID p_render_target, int p_width, int p_height, RS::ViewportMSAA p_msaa, RS::ViewportScreenSpaceAA p_screen_space_aa, bool p_use_debanding, uint32_t p_view_count) override;
virtual void gi_set_use_half_resolution(bool p_enable) override;
+ RID render_buffers_get_depth_texture(RID p_render_buffers);
RID render_buffers_get_ao_texture(RID p_render_buffers);
RID render_buffers_get_back_buffer_texture(RID p_render_buffers);
RID render_buffers_get_back_depth_texture(RID p_render_buffers);
diff --git a/servers/rendering/renderer_rd/renderer_scene_sky_rd.cpp b/servers/rendering/renderer_rd/renderer_scene_sky_rd.cpp
index c388da755c..14a4111038 100644
--- a/servers/rendering/renderer_rd/renderer_scene_sky_rd.cpp
+++ b/servers/rendering/renderer_rd/renderer_scene_sky_rd.cpp
@@ -1772,7 +1772,7 @@ void RendererSceneSkyRD::initialize_sky_rid(RID p_rid) {
}
RendererSceneSkyRD::Sky *RendererSceneSkyRD::get_sky(RID p_sky) const {
- return sky_owner.getornull(p_sky);
+ return sky_owner.get_or_null(p_sky);
}
void RendererSceneSkyRD::free_sky(RID p_sky) {
diff --git a/servers/rendering/renderer_rd/renderer_storage_rd.cpp b/servers/rendering/renderer_rd/renderer_storage_rd.cpp
index ec0d25376f..a0751d3689 100644
--- a/servers/rendering/renderer_rd/renderer_storage_rd.cpp
+++ b/servers/rendering/renderer_rd/renderer_storage_rd.cpp
@@ -842,7 +842,7 @@ void RendererStorageRD::texture_3d_initialize(RID p_texture, Image::Format p_for
}
void RendererStorageRD::texture_proxy_initialize(RID p_texture, RID p_base) {
- Texture *tex = texture_owner.getornull(p_base);
+ Texture *tex = texture_owner.get_or_null(p_base);
ERR_FAIL_COND(!tex);
Texture proxy_tex = *tex;
@@ -865,7 +865,7 @@ void RendererStorageRD::texture_proxy_initialize(RID p_texture, RID p_base) {
void RendererStorageRD::_texture_2d_update(RID p_texture, const Ref<Image> &p_image, int p_layer, bool p_immediate) {
ERR_FAIL_COND(p_image.is_null() || p_image->is_empty());
- Texture *tex = texture_owner.getornull(p_texture);
+ Texture *tex = texture_owner.get_or_null(p_texture);
ERR_FAIL_COND(!tex);
ERR_FAIL_COND(tex->is_render_target);
ERR_FAIL_COND(p_image->get_width() != tex->width || p_image->get_height() != tex->height);
@@ -889,7 +889,7 @@ void RendererStorageRD::texture_2d_update(RID p_texture, const Ref<Image> &p_ima
}
void RendererStorageRD::texture_3d_update(RID p_texture, const Vector<Ref<Image>> &p_data) {
- Texture *tex = texture_owner.getornull(p_texture);
+ Texture *tex = texture_owner.get_or_null(p_texture);
ERR_FAIL_COND(!tex);
ERR_FAIL_COND(tex->type != Texture::TYPE_3D);
Image::Image3DValidateError verr = Image::validate_3d_image(tex->format, tex->width, tex->height, tex->depth, tex->mipmaps > 1, p_data);
@@ -926,10 +926,10 @@ void RendererStorageRD::texture_3d_update(RID p_texture, const Vector<Ref<Image>
}
void RendererStorageRD::texture_proxy_update(RID p_texture, RID p_proxy_to) {
- Texture *tex = texture_owner.getornull(p_texture);
+ Texture *tex = texture_owner.get_or_null(p_texture);
ERR_FAIL_COND(!tex);
ERR_FAIL_COND(!tex->is_proxy);
- Texture *proxy_to = texture_owner.getornull(p_proxy_to);
+ Texture *proxy_to = texture_owner.get_or_null(p_proxy_to);
ERR_FAIL_COND(!proxy_to);
ERR_FAIL_COND(proxy_to->is_proxy);
@@ -943,7 +943,7 @@ void RendererStorageRD::texture_proxy_update(RID p_texture, RID p_proxy_to) {
RD::get_singleton()->free(tex->rd_texture_srgb);
tex->rd_texture_srgb = RID();
}
- Texture *prev_tex = texture_owner.getornull(tex->proxy_to);
+ Texture *prev_tex = texture_owner.get_or_null(tex->proxy_to);
ERR_FAIL_COND(!prev_tex);
prev_tex->proxies.erase(p_texture);
}
@@ -1030,7 +1030,7 @@ void RendererStorageRD::texture_3d_placeholder_initialize(RID p_texture) {
}
Ref<Image> RendererStorageRD::texture_2d_get(RID p_texture) const {
- Texture *tex = texture_owner.getornull(p_texture);
+ Texture *tex = texture_owner.get_or_null(p_texture);
ERR_FAIL_COND_V(!tex, Ref<Image>());
#ifdef TOOLS_ENABLED
@@ -1058,7 +1058,7 @@ Ref<Image> RendererStorageRD::texture_2d_get(RID p_texture) const {
}
Ref<Image> RendererStorageRD::texture_2d_layer_get(RID p_texture, int p_layer) const {
- Texture *tex = texture_owner.getornull(p_texture);
+ Texture *tex = texture_owner.get_or_null(p_texture);
ERR_FAIL_COND_V(!tex, Ref<Image>());
Vector<uint8_t> data = RD::get_singleton()->texture_get_data(tex->rd_texture, p_layer);
@@ -1075,7 +1075,7 @@ Ref<Image> RendererStorageRD::texture_2d_layer_get(RID p_texture, int p_layer) c
}
Vector<Ref<Image>> RendererStorageRD::texture_3d_get(RID p_texture) const {
- Texture *tex = texture_owner.getornull(p_texture);
+ Texture *tex = texture_owner.get_or_null(p_texture);
ERR_FAIL_COND_V(!tex, Vector<Ref<Image>>());
ERR_FAIL_COND_V(tex->type != Texture::TYPE_3D, Vector<Ref<Image>>());
@@ -1106,10 +1106,10 @@ Vector<Ref<Image>> RendererStorageRD::texture_3d_get(RID p_texture) const {
}
void RendererStorageRD::texture_replace(RID p_texture, RID p_by_texture) {
- Texture *tex = texture_owner.getornull(p_texture);
+ Texture *tex = texture_owner.get_or_null(p_texture);
ERR_FAIL_COND(!tex);
ERR_FAIL_COND(tex->proxy_to.is_valid()); //can't replace proxy
- Texture *by_tex = texture_owner.getornull(p_by_texture);
+ Texture *by_tex = texture_owner.get_or_null(p_by_texture);
ERR_FAIL_COND(!by_tex);
ERR_FAIL_COND(by_tex->proxy_to.is_valid()); //can't replace proxy
@@ -1155,7 +1155,7 @@ void RendererStorageRD::texture_replace(RID p_texture, RID p_by_texture) {
}
void RendererStorageRD::texture_set_size_override(RID p_texture, int p_width, int p_height) {
- Texture *tex = texture_owner.getornull(p_texture);
+ Texture *tex = texture_owner.get_or_null(p_texture);
ERR_FAIL_COND(!tex);
ERR_FAIL_COND(tex->type != Texture::TYPE_2D);
tex->width_2d = p_width;
@@ -1163,7 +1163,7 @@ void RendererStorageRD::texture_set_size_override(RID p_texture, int p_width, in
}
void RendererStorageRD::texture_set_path(RID p_texture, const String &p_path) {
- Texture *tex = texture_owner.getornull(p_texture);
+ Texture *tex = texture_owner.get_or_null(p_texture);
ERR_FAIL_COND(!tex);
tex->path = p_path;
}
@@ -1173,21 +1173,21 @@ String RendererStorageRD::texture_get_path(RID p_texture) const {
}
void RendererStorageRD::texture_set_detect_3d_callback(RID p_texture, RS::TextureDetectCallback p_callback, void *p_userdata) {
- Texture *tex = texture_owner.getornull(p_texture);
+ Texture *tex = texture_owner.get_or_null(p_texture);
ERR_FAIL_COND(!tex);
tex->detect_3d_callback_ud = p_userdata;
tex->detect_3d_callback = p_callback;
}
void RendererStorageRD::texture_set_detect_normal_callback(RID p_texture, RS::TextureDetectCallback p_callback, void *p_userdata) {
- Texture *tex = texture_owner.getornull(p_texture);
+ Texture *tex = texture_owner.get_or_null(p_texture);
ERR_FAIL_COND(!tex);
tex->detect_normal_callback_ud = p_userdata;
tex->detect_normal_callback = p_callback;
}
void RendererStorageRD::texture_set_detect_roughness_callback(RID p_texture, RS::TextureDetectRoughnessCallback p_callback, void *p_userdata) {
- Texture *tex = texture_owner.getornull(p_texture);
+ Texture *tex = texture_owner.get_or_null(p_texture);
ERR_FAIL_COND(!tex);
tex->detect_roughness_callback_ud = p_userdata;
tex->detect_roughness_callback = p_callback;
@@ -1235,7 +1235,7 @@ void RendererStorageRD::canvas_texture_initialize(RID p_rid) {
}
void RendererStorageRD::canvas_texture_set_channel(RID p_canvas_texture, RS::CanvasTextureChannel p_channel, RID p_texture) {
- CanvasTexture *ct = canvas_texture_owner.getornull(p_canvas_texture);
+ CanvasTexture *ct = canvas_texture_owner.get_or_null(p_canvas_texture);
switch (p_channel) {
case RS::CANVAS_TEXTURE_CHANNEL_DIFFUSE: {
ct->diffuse = p_texture;
@@ -1252,7 +1252,7 @@ void RendererStorageRD::canvas_texture_set_channel(RID p_canvas_texture, RS::Can
}
void RendererStorageRD::canvas_texture_set_shading_parameters(RID p_canvas_texture, const Color &p_specular_color, float p_shininess) {
- CanvasTexture *ct = canvas_texture_owner.getornull(p_canvas_texture);
+ CanvasTexture *ct = canvas_texture_owner.get_or_null(p_canvas_texture);
ct->specular_color.r = p_specular_color.r;
ct->specular_color.g = p_specular_color.g;
ct->specular_color.b = p_specular_color.b;
@@ -1261,13 +1261,13 @@ void RendererStorageRD::canvas_texture_set_shading_parameters(RID p_canvas_textu
}
void RendererStorageRD::canvas_texture_set_texture_filter(RID p_canvas_texture, RS::CanvasItemTextureFilter p_filter) {
- CanvasTexture *ct = canvas_texture_owner.getornull(p_canvas_texture);
+ CanvasTexture *ct = canvas_texture_owner.get_or_null(p_canvas_texture);
ct->texture_filter = p_filter;
ct->clear_sets();
}
void RendererStorageRD::canvas_texture_set_texture_repeat(RID p_canvas_texture, RS::CanvasItemTextureRepeat p_repeat) {
- CanvasTexture *ct = canvas_texture_owner.getornull(p_canvas_texture);
+ CanvasTexture *ct = canvas_texture_owner.get_or_null(p_canvas_texture);
ct->texture_repeat = p_repeat;
ct->clear_sets();
}
@@ -1275,7 +1275,7 @@ void RendererStorageRD::canvas_texture_set_texture_repeat(RID p_canvas_texture,
bool RendererStorageRD::canvas_texture_get_uniform_set(RID p_texture, RS::CanvasItemTextureFilter p_base_filter, RS::CanvasItemTextureRepeat p_base_repeat, RID p_base_shader, int p_base_set, RID &r_uniform_set, Size2i &r_size, Color &r_specular_shininess, bool &r_use_normal, bool &r_use_specular) {
CanvasTexture *ct = nullptr;
- Texture *t = texture_owner.getornull(p_texture);
+ Texture *t = texture_owner.get_or_null(p_texture);
if (t) {
//regular texture
@@ -1286,7 +1286,7 @@ bool RendererStorageRD::canvas_texture_get_uniform_set(RID p_texture, RS::Canvas
ct = t->canvas_texture;
} else {
- ct = canvas_texture_owner.getornull(p_texture);
+ ct = canvas_texture_owner.get_or_null(p_texture);
}
if (!ct) {
@@ -1308,7 +1308,7 @@ bool RendererStorageRD::canvas_texture_get_uniform_set(RID p_texture, RS::Canvas
u.uniform_type = RD::UNIFORM_TYPE_TEXTURE;
u.binding = 0;
- t = texture_owner.getornull(ct->diffuse);
+ t = texture_owner.get_or_null(ct->diffuse);
if (!t) {
u.ids.push_back(texture_rd_get_default(DEFAULT_RD_TEXTURE_WHITE));
ct->size_cache = Size2i(1, 1);
@@ -1323,7 +1323,7 @@ bool RendererStorageRD::canvas_texture_get_uniform_set(RID p_texture, RS::Canvas
u.uniform_type = RD::UNIFORM_TYPE_TEXTURE;
u.binding = 1;
- t = texture_owner.getornull(ct->normal_map);
+ t = texture_owner.get_or_null(ct->normal_map);
if (!t) {
u.ids.push_back(texture_rd_get_default(DEFAULT_RD_TEXTURE_NORMAL));
ct->use_normal_cache = false;
@@ -1338,7 +1338,7 @@ bool RendererStorageRD::canvas_texture_get_uniform_set(RID p_texture, RS::Canvas
u.uniform_type = RD::UNIFORM_TYPE_TEXTURE;
u.binding = 2;
- t = texture_owner.getornull(ct->specular);
+ t = texture_owner.get_or_null(ct->specular);
if (!t) {
u.ids.push_back(texture_rd_get_default(DEFAULT_RD_TEXTURE_WHITE));
ct->use_specular_cache = false;
@@ -1384,7 +1384,7 @@ void RendererStorageRD::shader_initialize(RID p_rid) {
}
void RendererStorageRD::shader_set_code(RID p_shader, const String &p_code) {
- Shader *shader = shader_owner.getornull(p_shader);
+ Shader *shader = shader_owner.get_or_null(p_shader);
ERR_FAIL_COND(!shader);
shader->code = p_code;
@@ -1456,13 +1456,13 @@ void RendererStorageRD::shader_set_code(RID p_shader, const String &p_code) {
}
String RendererStorageRD::shader_get_code(RID p_shader) const {
- Shader *shader = shader_owner.getornull(p_shader);
+ Shader *shader = shader_owner.get_or_null(p_shader);
ERR_FAIL_COND_V(!shader, String());
return shader->code;
}
void RendererStorageRD::shader_get_param_list(RID p_shader, List<PropertyInfo> *p_param_list) const {
- Shader *shader = shader_owner.getornull(p_shader);
+ Shader *shader = shader_owner.get_or_null(p_shader);
ERR_FAIL_COND(!shader);
if (shader->data) {
return shader->data->get_param_list(p_param_list);
@@ -1470,7 +1470,7 @@ void RendererStorageRD::shader_get_param_list(RID p_shader, List<PropertyInfo> *
}
void RendererStorageRD::shader_set_default_texture_param(RID p_shader, const StringName &p_name, RID p_texture) {
- Shader *shader = shader_owner.getornull(p_shader);
+ Shader *shader = shader_owner.get_or_null(p_shader);
ERR_FAIL_COND(!shader);
if (p_texture.is_valid() && texture_owner.owns(p_texture)) {
@@ -1488,7 +1488,7 @@ void RendererStorageRD::shader_set_default_texture_param(RID p_shader, const Str
}
RID RendererStorageRD::shader_get_default_texture_param(RID p_shader, const StringName &p_name) const {
- Shader *shader = shader_owner.getornull(p_shader);
+ Shader *shader = shader_owner.get_or_null(p_shader);
ERR_FAIL_COND_V(!shader, RID());
if (shader->default_texture_parameter.has(p_name)) {
return shader->default_texture_parameter[p_name];
@@ -1498,7 +1498,7 @@ RID RendererStorageRD::shader_get_default_texture_param(RID p_shader, const Stri
}
Variant RendererStorageRD::shader_get_param_default(RID p_shader, const StringName &p_param) const {
- Shader *shader = shader_owner.getornull(p_shader);
+ Shader *shader = shader_owner.get_or_null(p_shader);
ERR_FAIL_COND_V(!shader, Variant());
if (shader->data) {
return shader->data->get_default_parameter(p_param);
@@ -1512,7 +1512,7 @@ void RendererStorageRD::shader_set_data_request_function(ShaderType p_shader_typ
}
RS::ShaderNativeSourceCode RendererStorageRD::shader_get_native_source_code(RID p_shader) const {
- Shader *shader = shader_owner.getornull(p_shader);
+ Shader *shader = shader_owner.get_or_null(p_shader);
ERR_FAIL_COND_V(!shader, RS::ShaderNativeSourceCode());
if (shader->data) {
return shader->data->get_native_source_code();
@@ -1527,7 +1527,7 @@ RID RendererStorageRD::material_allocate() {
}
void RendererStorageRD::material_initialize(RID p_rid) {
material_owner.initialize_rid(p_rid);
- Material *material = material_owner.getornull(p_rid);
+ Material *material = material_owner.get_or_null(p_rid);
material->self = p_rid;
}
@@ -1543,7 +1543,7 @@ void RendererStorageRD::_material_queue_update(Material *material, bool p_unifor
}
void RendererStorageRD::material_set_shader(RID p_material, RID p_shader) {
- Material *material = material_owner.getornull(p_material);
+ Material *material = material_owner.get_or_null(p_material);
ERR_FAIL_COND(!material);
if (material->data) {
@@ -1563,7 +1563,7 @@ void RendererStorageRD::material_set_shader(RID p_material, RID p_shader) {
return;
}
- Shader *shader = shader_owner.getornull(p_shader);
+ Shader *shader = shader_owner.get_or_null(p_shader);
ERR_FAIL_COND(!shader);
material->shader = shader;
material->shader_type = shader->type;
@@ -1586,7 +1586,7 @@ void RendererStorageRD::material_set_shader(RID p_material, RID p_shader) {
}
void RendererStorageRD::material_set_param(RID p_material, const StringName &p_param, const Variant &p_value) {
- Material *material = material_owner.getornull(p_material);
+ Material *material = material_owner.get_or_null(p_material);
ERR_FAIL_COND(!material);
if (p_value.get_type() == Variant::NIL) {
@@ -1605,7 +1605,7 @@ void RendererStorageRD::material_set_param(RID p_material, const StringName &p_p
}
Variant RendererStorageRD::material_get_param(RID p_material, const StringName &p_param) const {
- Material *material = material_owner.getornull(p_material);
+ Material *material = material_owner.get_or_null(p_material);
ERR_FAIL_COND_V(!material, Variant());
if (material->params.has(p_param)) {
return material->params[p_param];
@@ -1615,7 +1615,7 @@ Variant RendererStorageRD::material_get_param(RID p_material, const StringName &
}
void RendererStorageRD::material_set_next_pass(RID p_material, RID p_next_material) {
- Material *material = material_owner.getornull(p_material);
+ Material *material = material_owner.get_or_null(p_material);
ERR_FAIL_COND(!material);
if (material->next_pass == p_next_material) {
@@ -1631,7 +1631,7 @@ void RendererStorageRD::material_set_next_pass(RID p_material, RID p_next_materi
}
void RendererStorageRD::material_set_render_priority(RID p_material, int priority) {
- Material *material = material_owner.getornull(p_material);
+ Material *material = material_owner.get_or_null(p_material);
ERR_FAIL_COND(!material);
material->priority = priority;
if (material->data) {
@@ -1640,7 +1640,7 @@ void RendererStorageRD::material_set_render_priority(RID p_material, int priorit
}
bool RendererStorageRD::material_is_animated(RID p_material) {
- Material *material = material_owner.getornull(p_material);
+ Material *material = material_owner.get_or_null(p_material);
ERR_FAIL_COND_V(!material, false);
if (material->shader && material->shader->data) {
if (material->shader->data->is_animated()) {
@@ -1653,7 +1653,7 @@ bool RendererStorageRD::material_is_animated(RID p_material) {
}
bool RendererStorageRD::material_casts_shadows(RID p_material) {
- Material *material = material_owner.getornull(p_material);
+ Material *material = material_owner.get_or_null(p_material);
ERR_FAIL_COND_V(!material, true);
if (material->shader && material->shader->data) {
if (material->shader->data->casts_shadows()) {
@@ -1666,7 +1666,7 @@ bool RendererStorageRD::material_casts_shadows(RID p_material) {
}
void RendererStorageRD::material_get_instance_shader_parameters(RID p_material, List<InstanceShaderParam> *r_parameters) {
- Material *material = material_owner.getornull(p_material);
+ Material *material = material_owner.get_or_null(p_material);
ERR_FAIL_COND(!material);
if (material->shader && material->shader->data) {
material->shader->data->get_instance_param_list(r_parameters);
@@ -1678,7 +1678,7 @@ void RendererStorageRD::material_get_instance_shader_parameters(RID p_material,
}
void RendererStorageRD::material_update_dependency(RID p_material, DependencyTracker *p_instance) {
- Material *material = material_owner.getornull(p_material);
+ Material *material = material_owner.get_or_null(p_material);
ERR_FAIL_COND(!material);
p_instance->update_dependency(&material->dependency);
if (material->next_pass.is_valid()) {
@@ -2309,7 +2309,7 @@ void RendererStorageRD::MaterialData::update_textures(const Map<StringName, Vari
} else {
bool srgb = p_use_linear_color && (p_texture_uniforms[i].hint == ShaderLanguage::ShaderNode::Uniform::HINT_ALBEDO || p_texture_uniforms[i].hint == ShaderLanguage::ShaderNode::Uniform::HINT_BLACK_ALBEDO);
- Texture *tex = singleton->texture_owner.getornull(texture);
+ Texture *tex = singleton->texture_owner.get_or_null(texture);
if (tex) {
rd_texture = (srgb && tex->rd_texture_srgb.is_valid()) ? tex->rd_texture_srgb : tex->rd_texture;
@@ -2470,14 +2470,14 @@ bool RendererStorageRD::MaterialData::update_parameters_uniform_set(const Map<St
void RendererStorageRD::_material_uniform_set_erased(const RID &p_set, void *p_material) {
RID rid = *(RID *)p_material;
- Material *material = base_singleton->material_owner.getornull(rid);
+ Material *material = base_singleton->material_owner.get_or_null(rid);
if (material) {
material->dependency.changed_notify(DEPENDENCY_CHANGED_MATERIAL);
}
}
void RendererStorageRD::material_force_update_textures(RID p_material, ShaderType p_shader_type) {
- Material *material = material_owner.getornull(p_material);
+ Material *material = material_owner.get_or_null(p_material);
if (material->shader_type != p_shader_type) {
return;
}
@@ -2518,7 +2518,7 @@ void RendererStorageRD::mesh_initialize(RID p_rid) {
void RendererStorageRD::mesh_set_blend_shape_count(RID p_mesh, int p_blend_shape_count) {
ERR_FAIL_COND(p_blend_shape_count < 0);
- Mesh *mesh = mesh_owner.getornull(p_mesh);
+ Mesh *mesh = mesh_owner.get_or_null(p_mesh);
ERR_FAIL_COND(!mesh);
ERR_FAIL_COND(mesh->surface_count > 0); //surfaces already exist
@@ -2528,7 +2528,7 @@ void RendererStorageRD::mesh_set_blend_shape_count(RID p_mesh, int p_blend_shape
/// Returns stride
void RendererStorageRD::mesh_add_surface(RID p_mesh, const RS::SurfaceData &p_surface) {
- Mesh *mesh = mesh_owner.getornull(p_mesh);
+ Mesh *mesh = mesh_owner.get_or_null(p_mesh);
ERR_FAIL_COND(!mesh);
ERR_FAIL_COND(mesh->surface_count == RS::MAX_MESH_SURFACES);
@@ -2732,13 +2732,13 @@ void RendererStorageRD::mesh_add_surface(RID p_mesh, const RS::SurfaceData &p_su
}
int RendererStorageRD::mesh_get_blend_shape_count(RID p_mesh) const {
- const Mesh *mesh = mesh_owner.getornull(p_mesh);
+ const Mesh *mesh = mesh_owner.get_or_null(p_mesh);
ERR_FAIL_COND_V(!mesh, -1);
return mesh->blend_shape_count;
}
void RendererStorageRD::mesh_set_blend_shape_mode(RID p_mesh, RS::BlendShapeMode p_mode) {
- Mesh *mesh = mesh_owner.getornull(p_mesh);
+ Mesh *mesh = mesh_owner.get_or_null(p_mesh);
ERR_FAIL_COND(!mesh);
ERR_FAIL_INDEX((int)p_mode, 2);
@@ -2746,13 +2746,13 @@ void RendererStorageRD::mesh_set_blend_shape_mode(RID p_mesh, RS::BlendShapeMode
}
RS::BlendShapeMode RendererStorageRD::mesh_get_blend_shape_mode(RID p_mesh) const {
- Mesh *mesh = mesh_owner.getornull(p_mesh);
+ Mesh *mesh = mesh_owner.get_or_null(p_mesh);
ERR_FAIL_COND_V(!mesh, RS::BLEND_SHAPE_MODE_NORMALIZED);
return mesh->blend_shape_mode;
}
void RendererStorageRD::mesh_surface_update_vertex_region(RID p_mesh, int p_surface, int p_offset, const Vector<uint8_t> &p_data) {
- Mesh *mesh = mesh_owner.getornull(p_mesh);
+ Mesh *mesh = mesh_owner.get_or_null(p_mesh);
ERR_FAIL_COND(!mesh);
ERR_FAIL_UNSIGNED_INDEX((uint32_t)p_surface, mesh->surface_count);
ERR_FAIL_COND(p_data.size() == 0);
@@ -2763,7 +2763,7 @@ void RendererStorageRD::mesh_surface_update_vertex_region(RID p_mesh, int p_surf
}
void RendererStorageRD::mesh_surface_update_attribute_region(RID p_mesh, int p_surface, int p_offset, const Vector<uint8_t> &p_data) {
- Mesh *mesh = mesh_owner.getornull(p_mesh);
+ Mesh *mesh = mesh_owner.get_or_null(p_mesh);
ERR_FAIL_COND(!mesh);
ERR_FAIL_UNSIGNED_INDEX((uint32_t)p_surface, mesh->surface_count);
ERR_FAIL_COND(p_data.size() == 0);
@@ -2775,7 +2775,7 @@ void RendererStorageRD::mesh_surface_update_attribute_region(RID p_mesh, int p_s
}
void RendererStorageRD::mesh_surface_update_skin_region(RID p_mesh, int p_surface, int p_offset, const Vector<uint8_t> &p_data) {
- Mesh *mesh = mesh_owner.getornull(p_mesh);
+ Mesh *mesh = mesh_owner.get_or_null(p_mesh);
ERR_FAIL_COND(!mesh);
ERR_FAIL_UNSIGNED_INDEX((uint32_t)p_surface, mesh->surface_count);
ERR_FAIL_COND(p_data.size() == 0);
@@ -2787,7 +2787,7 @@ void RendererStorageRD::mesh_surface_update_skin_region(RID p_mesh, int p_surfac
}
void RendererStorageRD::mesh_surface_set_material(RID p_mesh, int p_surface, RID p_material) {
- Mesh *mesh = mesh_owner.getornull(p_mesh);
+ Mesh *mesh = mesh_owner.get_or_null(p_mesh);
ERR_FAIL_COND(!mesh);
ERR_FAIL_UNSIGNED_INDEX((uint32_t)p_surface, mesh->surface_count);
mesh->surfaces[p_surface]->material = p_material;
@@ -2797,7 +2797,7 @@ void RendererStorageRD::mesh_surface_set_material(RID p_mesh, int p_surface, RID
}
RID RendererStorageRD::mesh_surface_get_material(RID p_mesh, int p_surface) const {
- Mesh *mesh = mesh_owner.getornull(p_mesh);
+ Mesh *mesh = mesh_owner.get_or_null(p_mesh);
ERR_FAIL_COND_V(!mesh, RID());
ERR_FAIL_UNSIGNED_INDEX_V((uint32_t)p_surface, mesh->surface_count, RID());
@@ -2805,7 +2805,7 @@ RID RendererStorageRD::mesh_surface_get_material(RID p_mesh, int p_surface) cons
}
RS::SurfaceData RendererStorageRD::mesh_get_surface(RID p_mesh, int p_surface) const {
- Mesh *mesh = mesh_owner.getornull(p_mesh);
+ Mesh *mesh = mesh_owner.get_or_null(p_mesh);
ERR_FAIL_COND_V(!mesh, RS::SurfaceData());
ERR_FAIL_UNSIGNED_INDEX_V((uint32_t)p_surface, mesh->surface_count, RS::SurfaceData());
@@ -2845,32 +2845,32 @@ RS::SurfaceData RendererStorageRD::mesh_get_surface(RID p_mesh, int p_surface) c
}
int RendererStorageRD::mesh_get_surface_count(RID p_mesh) const {
- Mesh *mesh = mesh_owner.getornull(p_mesh);
+ Mesh *mesh = mesh_owner.get_or_null(p_mesh);
ERR_FAIL_COND_V(!mesh, 0);
return mesh->surface_count;
}
void RendererStorageRD::mesh_set_custom_aabb(RID p_mesh, const AABB &p_aabb) {
- Mesh *mesh = mesh_owner.getornull(p_mesh);
+ Mesh *mesh = mesh_owner.get_or_null(p_mesh);
ERR_FAIL_COND(!mesh);
mesh->custom_aabb = p_aabb;
}
AABB RendererStorageRD::mesh_get_custom_aabb(RID p_mesh) const {
- Mesh *mesh = mesh_owner.getornull(p_mesh);
+ Mesh *mesh = mesh_owner.get_or_null(p_mesh);
ERR_FAIL_COND_V(!mesh, AABB());
return mesh->custom_aabb;
}
AABB RendererStorageRD::mesh_get_aabb(RID p_mesh, RID p_skeleton) {
- Mesh *mesh = mesh_owner.getornull(p_mesh);
+ Mesh *mesh = mesh_owner.get_or_null(p_mesh);
ERR_FAIL_COND_V(!mesh, AABB());
if (mesh->custom_aabb != AABB()) {
return mesh->custom_aabb;
}
- Skeleton *skeleton = skeleton_owner.getornull(p_skeleton);
+ Skeleton *skeleton = skeleton_owner.get_or_null(p_skeleton);
if (!skeleton || skeleton->size == 0) {
return mesh->aabb;
@@ -2968,16 +2968,16 @@ AABB RendererStorageRD::mesh_get_aabb(RID p_mesh, RID p_skeleton) {
}
void RendererStorageRD::mesh_set_shadow_mesh(RID p_mesh, RID p_shadow_mesh) {
- Mesh *mesh = mesh_owner.getornull(p_mesh);
+ Mesh *mesh = mesh_owner.get_or_null(p_mesh);
ERR_FAIL_COND(!mesh);
- Mesh *shadow_mesh = mesh_owner.getornull(mesh->shadow_mesh);
+ Mesh *shadow_mesh = mesh_owner.get_or_null(mesh->shadow_mesh);
if (shadow_mesh) {
shadow_mesh->shadow_owners.erase(mesh);
}
mesh->shadow_mesh = p_shadow_mesh;
- shadow_mesh = mesh_owner.getornull(mesh->shadow_mesh);
+ shadow_mesh = mesh_owner.get_or_null(mesh->shadow_mesh);
if (shadow_mesh) {
shadow_mesh->shadow_owners.insert(mesh);
@@ -2987,7 +2987,7 @@ void RendererStorageRD::mesh_set_shadow_mesh(RID p_mesh, RID p_shadow_mesh) {
}
void RendererStorageRD::mesh_clear(RID p_mesh) {
- Mesh *mesh = mesh_owner.getornull(p_mesh);
+ Mesh *mesh = mesh_owner.get_or_null(p_mesh);
ERR_FAIL_COND(!mesh);
for (uint32_t i = 0; i < mesh->surface_count; i++) {
Mesh::Surface &s = *mesh->surfaces[i];
@@ -3041,7 +3041,7 @@ void RendererStorageRD::mesh_clear(RID p_mesh) {
}
bool RendererStorageRD::mesh_needs_instance(RID p_mesh, bool p_has_skeleton) {
- Mesh *mesh = mesh_owner.getornull(p_mesh);
+ Mesh *mesh = mesh_owner.get_or_null(p_mesh);
ERR_FAIL_COND_V(!mesh, false);
return mesh->blend_shape_count > 0 || (mesh->has_bone_weights && p_has_skeleton);
@@ -3050,11 +3050,11 @@ bool RendererStorageRD::mesh_needs_instance(RID p_mesh, bool p_has_skeleton) {
/* MESH INSTANCE */
RID RendererStorageRD::mesh_instance_create(RID p_base) {
- Mesh *mesh = mesh_owner.getornull(p_base);
+ Mesh *mesh = mesh_owner.get_or_null(p_base);
ERR_FAIL_COND_V(!mesh, RID());
RID rid = mesh_instance_owner.make_rid();
- MeshInstance *mi = mesh_instance_owner.getornull(rid);
+ MeshInstance *mi = mesh_instance_owner.get_or_null(rid);
mi->mesh = mesh;
@@ -3069,7 +3069,7 @@ RID RendererStorageRD::mesh_instance_create(RID p_base) {
return rid;
}
void RendererStorageRD::mesh_instance_set_skeleton(RID p_mesh_instance, RID p_skeleton) {
- MeshInstance *mi = mesh_instance_owner.getornull(p_mesh_instance);
+ MeshInstance *mi = mesh_instance_owner.get_or_null(p_mesh_instance);
if (mi->skeleton == p_skeleton) {
return;
}
@@ -3079,7 +3079,7 @@ void RendererStorageRD::mesh_instance_set_skeleton(RID p_mesh_instance, RID p_sk
}
void RendererStorageRD::mesh_instance_set_blend_shape_weight(RID p_mesh_instance, int p_shape, float p_weight) {
- MeshInstance *mi = mesh_instance_owner.getornull(p_mesh_instance);
+ MeshInstance *mi = mesh_instance_owner.get_or_null(p_mesh_instance);
ERR_FAIL_COND(!mi);
ERR_FAIL_INDEX(p_shape, (int)mi->blend_weights.size());
mi->blend_weights[p_shape] = p_weight;
@@ -3151,7 +3151,7 @@ void RendererStorageRD::_mesh_instance_add_surface(MeshInstance *mi, Mesh *mesh,
}
void RendererStorageRD::mesh_instance_check_for_update(RID p_mesh_instance) {
- MeshInstance *mi = mesh_instance_owner.getornull(p_mesh_instance);
+ MeshInstance *mi = mesh_instance_owner.get_or_null(p_mesh_instance);
bool needs_update = mi->dirty;
@@ -3165,7 +3165,7 @@ void RendererStorageRD::mesh_instance_check_for_update(RID p_mesh_instance) {
}
if (!needs_update && mi->skeleton.is_valid()) {
- Skeleton *sk = skeleton_owner.getornull(mi->skeleton);
+ Skeleton *sk = skeleton_owner.get_or_null(mi->skeleton);
if (sk && sk->version != mi->skeleton_version) {
needs_update = true;
}
@@ -3196,7 +3196,7 @@ void RendererStorageRD::update_mesh_instances() {
while (dirty_mesh_instance_arrays.first()) {
MeshInstance *mi = dirty_mesh_instance_arrays.first()->self();
- Skeleton *sk = skeleton_owner.getornull(mi->skeleton);
+ Skeleton *sk = skeleton_owner.get_or_null(mi->skeleton);
for (uint32_t i = 0; i < mi->surfaces.size(); i++) {
if (mi->surfaces[i].uniform_set == RID() || mi->mesh->surfaces[i]->uniform_set == RID()) {
@@ -3443,7 +3443,7 @@ void RendererStorageRD::multimesh_initialize(RID p_rid) {
}
void RendererStorageRD::multimesh_allocate_data(RID p_multimesh, int p_instances, RS::MultimeshTransformFormat p_transform_format, bool p_use_colors, bool p_use_custom_data) {
- MultiMesh *multimesh = multimesh_owner.getornull(p_multimesh);
+ MultiMesh *multimesh = multimesh_owner.get_or_null(p_multimesh);
ERR_FAIL_COND(!multimesh);
if (multimesh->instances == p_instances && multimesh->xform_format == p_transform_format && multimesh->uses_colors == p_use_colors && multimesh->uses_custom_data == p_use_custom_data) {
@@ -3486,13 +3486,13 @@ void RendererStorageRD::multimesh_allocate_data(RID p_multimesh, int p_instances
}
int RendererStorageRD::multimesh_get_instance_count(RID p_multimesh) const {
- MultiMesh *multimesh = multimesh_owner.getornull(p_multimesh);
+ MultiMesh *multimesh = multimesh_owner.get_or_null(p_multimesh);
ERR_FAIL_COND_V(!multimesh, 0);
return multimesh->instances;
}
void RendererStorageRD::multimesh_set_mesh(RID p_multimesh, RID p_mesh) {
- MultiMesh *multimesh = multimesh_owner.getornull(p_multimesh);
+ MultiMesh *multimesh = multimesh_owner.get_or_null(p_multimesh);
ERR_FAIL_COND(!multimesh);
if (multimesh->mesh == p_mesh) {
return;
@@ -3638,7 +3638,7 @@ void RendererStorageRD::_multimesh_re_create_aabb(MultiMesh *multimesh, const fl
}
void RendererStorageRD::multimesh_instance_set_transform(RID p_multimesh, int p_index, const Transform3D &p_transform) {
- MultiMesh *multimesh = multimesh_owner.getornull(p_multimesh);
+ MultiMesh *multimesh = multimesh_owner.get_or_null(p_multimesh);
ERR_FAIL_COND(!multimesh);
ERR_FAIL_INDEX(p_index, multimesh->instances);
ERR_FAIL_COND(multimesh->xform_format != RS::MULTIMESH_TRANSFORM_3D);
@@ -3668,7 +3668,7 @@ void RendererStorageRD::multimesh_instance_set_transform(RID p_multimesh, int p_
}
void RendererStorageRD::multimesh_instance_set_transform_2d(RID p_multimesh, int p_index, const Transform2D &p_transform) {
- MultiMesh *multimesh = multimesh_owner.getornull(p_multimesh);
+ MultiMesh *multimesh = multimesh_owner.get_or_null(p_multimesh);
ERR_FAIL_COND(!multimesh);
ERR_FAIL_INDEX(p_index, multimesh->instances);
ERR_FAIL_COND(multimesh->xform_format != RS::MULTIMESH_TRANSFORM_2D);
@@ -3694,7 +3694,7 @@ void RendererStorageRD::multimesh_instance_set_transform_2d(RID p_multimesh, int
}
void RendererStorageRD::multimesh_instance_set_color(RID p_multimesh, int p_index, const Color &p_color) {
- MultiMesh *multimesh = multimesh_owner.getornull(p_multimesh);
+ MultiMesh *multimesh = multimesh_owner.get_or_null(p_multimesh);
ERR_FAIL_COND(!multimesh);
ERR_FAIL_INDEX(p_index, multimesh->instances);
ERR_FAIL_COND(!multimesh->uses_colors);
@@ -3716,7 +3716,7 @@ void RendererStorageRD::multimesh_instance_set_color(RID p_multimesh, int p_inde
}
void RendererStorageRD::multimesh_instance_set_custom_data(RID p_multimesh, int p_index, const Color &p_color) {
- MultiMesh *multimesh = multimesh_owner.getornull(p_multimesh);
+ MultiMesh *multimesh = multimesh_owner.get_or_null(p_multimesh);
ERR_FAIL_COND(!multimesh);
ERR_FAIL_INDEX(p_index, multimesh->instances);
ERR_FAIL_COND(!multimesh->uses_custom_data);
@@ -3738,14 +3738,14 @@ void RendererStorageRD::multimesh_instance_set_custom_data(RID p_multimesh, int
}
RID RendererStorageRD::multimesh_get_mesh(RID p_multimesh) const {
- MultiMesh *multimesh = multimesh_owner.getornull(p_multimesh);
+ MultiMesh *multimesh = multimesh_owner.get_or_null(p_multimesh);
ERR_FAIL_COND_V(!multimesh, RID());
return multimesh->mesh;
}
Transform3D RendererStorageRD::multimesh_instance_get_transform(RID p_multimesh, int p_index) const {
- MultiMesh *multimesh = multimesh_owner.getornull(p_multimesh);
+ MultiMesh *multimesh = multimesh_owner.get_or_null(p_multimesh);
ERR_FAIL_COND_V(!multimesh, Transform3D());
ERR_FAIL_INDEX_V(p_index, multimesh->instances, Transform3D());
ERR_FAIL_COND_V(multimesh->xform_format != RS::MULTIMESH_TRANSFORM_3D, Transform3D());
@@ -3776,7 +3776,7 @@ Transform3D RendererStorageRD::multimesh_instance_get_transform(RID p_multimesh,
}
Transform2D RendererStorageRD::multimesh_instance_get_transform_2d(RID p_multimesh, int p_index) const {
- MultiMesh *multimesh = multimesh_owner.getornull(p_multimesh);
+ MultiMesh *multimesh = multimesh_owner.get_or_null(p_multimesh);
ERR_FAIL_COND_V(!multimesh, Transform2D());
ERR_FAIL_INDEX_V(p_index, multimesh->instances, Transform2D());
ERR_FAIL_COND_V(multimesh->xform_format != RS::MULTIMESH_TRANSFORM_2D, Transform2D());
@@ -3801,7 +3801,7 @@ Transform2D RendererStorageRD::multimesh_instance_get_transform_2d(RID p_multime
}
Color RendererStorageRD::multimesh_instance_get_color(RID p_multimesh, int p_index) const {
- MultiMesh *multimesh = multimesh_owner.getornull(p_multimesh);
+ MultiMesh *multimesh = multimesh_owner.get_or_null(p_multimesh);
ERR_FAIL_COND_V(!multimesh, Color());
ERR_FAIL_INDEX_V(p_index, multimesh->instances, Color());
ERR_FAIL_COND_V(!multimesh->uses_colors, Color());
@@ -3824,7 +3824,7 @@ Color RendererStorageRD::multimesh_instance_get_color(RID p_multimesh, int p_ind
}
Color RendererStorageRD::multimesh_instance_get_custom_data(RID p_multimesh, int p_index) const {
- MultiMesh *multimesh = multimesh_owner.getornull(p_multimesh);
+ MultiMesh *multimesh = multimesh_owner.get_or_null(p_multimesh);
ERR_FAIL_COND_V(!multimesh, Color());
ERR_FAIL_INDEX_V(p_index, multimesh->instances, Color());
ERR_FAIL_COND_V(!multimesh->uses_custom_data, Color());
@@ -3847,7 +3847,7 @@ Color RendererStorageRD::multimesh_instance_get_custom_data(RID p_multimesh, int
}
void RendererStorageRD::multimesh_set_buffer(RID p_multimesh, const Vector<float> &p_buffer) {
- MultiMesh *multimesh = multimesh_owner.getornull(p_multimesh);
+ MultiMesh *multimesh = multimesh_owner.get_or_null(p_multimesh);
ERR_FAIL_COND(!multimesh);
ERR_FAIL_COND(p_buffer.size() != (multimesh->instances * (int)multimesh->stride_cache));
@@ -3880,7 +3880,7 @@ void RendererStorageRD::multimesh_set_buffer(RID p_multimesh, const Vector<float
}
Vector<float> RendererStorageRD::multimesh_get_buffer(RID p_multimesh) const {
- MultiMesh *multimesh = multimesh_owner.getornull(p_multimesh);
+ MultiMesh *multimesh = multimesh_owner.get_or_null(p_multimesh);
ERR_FAIL_COND_V(!multimesh, Vector<float>());
if (multimesh->buffer.is_null()) {
return Vector<float>();
@@ -3903,7 +3903,7 @@ Vector<float> RendererStorageRD::multimesh_get_buffer(RID p_multimesh) const {
}
void RendererStorageRD::multimesh_set_visible_instances(RID p_multimesh, int p_visible) {
- MultiMesh *multimesh = multimesh_owner.getornull(p_multimesh);
+ MultiMesh *multimesh = multimesh_owner.get_or_null(p_multimesh);
ERR_FAIL_COND(!multimesh);
ERR_FAIL_COND(p_visible < -1 || p_visible > multimesh->instances);
if (multimesh->visible_instances == p_visible) {
@@ -3921,13 +3921,13 @@ void RendererStorageRD::multimesh_set_visible_instances(RID p_multimesh, int p_v
}
int RendererStorageRD::multimesh_get_visible_instances(RID p_multimesh) const {
- MultiMesh *multimesh = multimesh_owner.getornull(p_multimesh);
+ MultiMesh *multimesh = multimesh_owner.get_or_null(p_multimesh);
ERR_FAIL_COND_V(!multimesh, 0);
return multimesh->visible_instances;
}
AABB RendererStorageRD::multimesh_get_aabb(RID p_multimesh) const {
- MultiMesh *multimesh = multimesh_owner.getornull(p_multimesh);
+ MultiMesh *multimesh = multimesh_owner.get_or_null(p_multimesh);
ERR_FAIL_COND_V(!multimesh, AABB());
if (multimesh->aabb_dirty) {
const_cast<RendererStorageRD *>(this)->_update_dirty_multimeshes();
@@ -3998,7 +3998,7 @@ void RendererStorageRD::particles_initialize(RID p_rid) {
}
void RendererStorageRD::particles_set_mode(RID p_particles, RS::ParticlesMode p_mode) {
- Particles *particles = particles_owner.getornull(p_particles);
+ Particles *particles = particles_owner.get_or_null(p_particles);
ERR_FAIL_COND(!particles);
if (particles->mode == p_mode) {
return;
@@ -4010,7 +4010,7 @@ void RendererStorageRD::particles_set_mode(RID p_particles, RS::ParticlesMode p_
}
void RendererStorageRD::particles_set_emitting(RID p_particles, bool p_emitting) {
- Particles *particles = particles_owner.getornull(p_particles);
+ Particles *particles = particles_owner.get_or_null(p_particles);
ERR_FAIL_COND(!particles);
particles->emitting = p_emitting;
@@ -4018,7 +4018,7 @@ void RendererStorageRD::particles_set_emitting(RID p_particles, bool p_emitting)
bool RendererStorageRD::particles_get_emitting(RID p_particles) {
ERR_FAIL_COND_V_MSG(RSG::threaded, false, "This function should never be used with threaded rendering, as it stalls the renderer.");
- Particles *particles = particles_owner.getornull(p_particles);
+ Particles *particles = particles_owner.get_or_null(p_particles);
ERR_FAIL_COND_V(!particles, false);
return particles->emitting;
@@ -4073,7 +4073,7 @@ void RendererStorageRD::_particles_free_data(Particles *particles) {
}
void RendererStorageRD::particles_set_amount(RID p_particles, int p_amount) {
- Particles *particles = particles_owner.getornull(p_particles);
+ Particles *particles = particles_owner.get_or_null(p_particles);
ERR_FAIL_COND(!particles);
if (particles->amount == p_amount) {
@@ -4093,55 +4093,56 @@ void RendererStorageRD::particles_set_amount(RID p_particles, int p_amount) {
}
void RendererStorageRD::particles_set_lifetime(RID p_particles, double p_lifetime) {
- Particles *particles = particles_owner.getornull(p_particles);
+ Particles *particles = particles_owner.get_or_null(p_particles);
ERR_FAIL_COND(!particles);
particles->lifetime = p_lifetime;
}
void RendererStorageRD::particles_set_one_shot(RID p_particles, bool p_one_shot) {
- Particles *particles = particles_owner.getornull(p_particles);
+ Particles *particles = particles_owner.get_or_null(p_particles);
ERR_FAIL_COND(!particles);
particles->one_shot = p_one_shot;
}
void RendererStorageRD::particles_set_pre_process_time(RID p_particles, double p_time) {
- Particles *particles = particles_owner.getornull(p_particles);
+ Particles *particles = particles_owner.get_or_null(p_particles);
ERR_FAIL_COND(!particles);
particles->pre_process_time = p_time;
}
void RendererStorageRD::particles_set_explosiveness_ratio(RID p_particles, real_t p_ratio) {
- Particles *particles = particles_owner.getornull(p_particles);
+ Particles *particles = particles_owner.get_or_null(p_particles);
ERR_FAIL_COND(!particles);
particles->explosiveness = p_ratio;
}
void RendererStorageRD::particles_set_randomness_ratio(RID p_particles, real_t p_ratio) {
- Particles *particles = particles_owner.getornull(p_particles);
+ Particles *particles = particles_owner.get_or_null(p_particles);
ERR_FAIL_COND(!particles);
particles->randomness = p_ratio;
}
void RendererStorageRD::particles_set_custom_aabb(RID p_particles, const AABB &p_aabb) {
- Particles *particles = particles_owner.getornull(p_particles);
+ Particles *particles = particles_owner.get_or_null(p_particles);
ERR_FAIL_COND(!particles);
particles->custom_aabb = p_aabb;
particles->dependency.changed_notify(DEPENDENCY_CHANGED_AABB);
}
void RendererStorageRD::particles_set_speed_scale(RID p_particles, double p_scale) {
- Particles *particles = particles_owner.getornull(p_particles);
+ Particles *particles = particles_owner.get_or_null(p_particles);
ERR_FAIL_COND(!particles);
particles->speed_scale = p_scale;
}
void RendererStorageRD::particles_set_use_local_coordinates(RID p_particles, bool p_enable) {
- Particles *particles = particles_owner.getornull(p_particles);
+ Particles *particles = particles_owner.get_or_null(p_particles);
ERR_FAIL_COND(!particles);
particles->use_local_coords = p_enable;
+ particles->dependency.changed_notify(DEPENDENCY_CHANGED_PARTICLES);
}
void RendererStorageRD::particles_set_fixed_fps(RID p_particles, int p_fps) {
- Particles *particles = particles_owner.getornull(p_particles);
+ Particles *particles = particles_owner.get_or_null(p_particles);
ERR_FAIL_COND(!particles);
particles->fixed_fps = p_fps;
@@ -4157,21 +4158,21 @@ void RendererStorageRD::particles_set_fixed_fps(RID p_particles, int p_fps) {
}
void RendererStorageRD::particles_set_interpolate(RID p_particles, bool p_enable) {
- Particles *particles = particles_owner.getornull(p_particles);
+ Particles *particles = particles_owner.get_or_null(p_particles);
ERR_FAIL_COND(!particles);
particles->interpolate = p_enable;
}
void RendererStorageRD::particles_set_fractional_delta(RID p_particles, bool p_enable) {
- Particles *particles = particles_owner.getornull(p_particles);
+ Particles *particles = particles_owner.get_or_null(p_particles);
ERR_FAIL_COND(!particles);
particles->fractional_delta = p_enable;
}
void RendererStorageRD::particles_set_trails(RID p_particles, bool p_enable, double p_length) {
- Particles *particles = particles_owner.getornull(p_particles);
+ Particles *particles = particles_owner.get_or_null(p_particles);
ERR_FAIL_COND(!particles);
ERR_FAIL_COND(p_length < 0.1);
p_length = MIN(10.0, p_length);
@@ -4190,7 +4191,7 @@ void RendererStorageRD::particles_set_trails(RID p_particles, bool p_enable, dou
}
void RendererStorageRD::particles_set_trail_bind_poses(RID p_particles, const Vector<Transform3D> &p_bind_poses) {
- Particles *particles = particles_owner.getornull(p_particles);
+ Particles *particles = particles_owner.get_or_null(p_particles);
ERR_FAIL_COND(!particles);
if (particles->trail_bind_pose_buffer.is_valid() && particles->trail_bind_poses.size() != p_bind_poses.size()) {
_particles_free_data(particles);
@@ -4207,49 +4208,49 @@ void RendererStorageRD::particles_set_trail_bind_poses(RID p_particles, const Ve
}
void RendererStorageRD::particles_set_collision_base_size(RID p_particles, real_t p_size) {
- Particles *particles = particles_owner.getornull(p_particles);
+ Particles *particles = particles_owner.get_or_null(p_particles);
ERR_FAIL_COND(!particles);
particles->collision_base_size = p_size;
}
void RendererStorageRD::particles_set_transform_align(RID p_particles, RS::ParticlesTransformAlign p_transform_align) {
- Particles *particles = particles_owner.getornull(p_particles);
+ Particles *particles = particles_owner.get_or_null(p_particles);
ERR_FAIL_COND(!particles);
particles->transform_align = p_transform_align;
}
void RendererStorageRD::particles_set_process_material(RID p_particles, RID p_material) {
- Particles *particles = particles_owner.getornull(p_particles);
+ Particles *particles = particles_owner.get_or_null(p_particles);
ERR_FAIL_COND(!particles);
particles->process_material = p_material;
}
void RendererStorageRD::particles_set_draw_order(RID p_particles, RS::ParticlesDrawOrder p_order) {
- Particles *particles = particles_owner.getornull(p_particles);
+ Particles *particles = particles_owner.get_or_null(p_particles);
ERR_FAIL_COND(!particles);
particles->draw_order = p_order;
}
void RendererStorageRD::particles_set_draw_passes(RID p_particles, int p_passes) {
- Particles *particles = particles_owner.getornull(p_particles);
+ Particles *particles = particles_owner.get_or_null(p_particles);
ERR_FAIL_COND(!particles);
particles->draw_passes.resize(p_passes);
}
void RendererStorageRD::particles_set_draw_pass_mesh(RID p_particles, int p_pass, RID p_mesh) {
- Particles *particles = particles_owner.getornull(p_particles);
+ Particles *particles = particles_owner.get_or_null(p_particles);
ERR_FAIL_COND(!particles);
ERR_FAIL_INDEX(p_pass, particles->draw_passes.size());
particles->draw_passes.write[p_pass] = p_mesh;
}
void RendererStorageRD::particles_restart(RID p_particles) {
- Particles *particles = particles_owner.getornull(p_particles);
+ Particles *particles = particles_owner.get_or_null(p_particles);
ERR_FAIL_COND(!particles);
particles->restart_request = true;
@@ -4273,7 +4274,7 @@ void RendererStorageRD::_particles_allocate_emission_buffer(Particles *particles
}
void RendererStorageRD::particles_set_subemitter(RID p_particles, RID p_subemitter_particles) {
- Particles *particles = particles_owner.getornull(p_particles);
+ Particles *particles = particles_owner.get_or_null(p_particles);
ERR_FAIL_COND(!particles);
ERR_FAIL_COND(p_particles == p_subemitter_particles);
@@ -4286,7 +4287,7 @@ void RendererStorageRD::particles_set_subemitter(RID p_particles, RID p_subemitt
}
void RendererStorageRD::particles_emit(RID p_particles, const Transform3D &p_transform, const Vector3 &p_velocity, const Color &p_color, const Color &p_custom, uint32_t p_emit_flags) {
- Particles *particles = particles_owner.getornull(p_particles);
+ Particles *particles = particles_owner.get_or_null(p_particles);
ERR_FAIL_COND(!particles);
ERR_FAIL_COND(particles->amount == 0);
@@ -4329,7 +4330,7 @@ void RendererStorageRD::particles_emit(RID p_particles, const Transform3D &p_tra
}
void RendererStorageRD::particles_request_process(RID p_particles) {
- Particles *particles = particles_owner.getornull(p_particles);
+ Particles *particles = particles_owner.get_or_null(p_particles);
ERR_FAIL_COND(!particles);
if (!particles->dirty) {
@@ -4344,7 +4345,7 @@ AABB RendererStorageRD::particles_get_current_aabb(RID p_particles) {
WARN_PRINT_ONCE("Calling this function with threaded rendering enabled stalls the renderer, use with care.");
}
- const Particles *particles = particles_owner.getornull(p_particles);
+ const Particles *particles = particles_owner.get_or_null(p_particles);
ERR_FAIL_COND_V(!particles, AABB());
int total_amount = particles->amount;
@@ -4352,10 +4353,8 @@ AABB RendererStorageRD::particles_get_current_aabb(RID p_particles) {
total_amount *= particles->trail_bind_poses.size();
}
- Vector<ParticleData> data;
- data.resize(total_amount);
-
Vector<uint8_t> buffer = RD::get_singleton()->buffer_get_data(particles->particle_buffer);
+ ERR_FAIL_COND_V(buffer.size() != (int)(total_amount * sizeof(ParticleData)), AABB());
Transform3D inv = particles->emission_transform.affine_inverse();
@@ -4363,7 +4362,7 @@ AABB RendererStorageRD::particles_get_current_aabb(RID p_particles) {
if (buffer.size()) {
bool first = true;
- const ParticleData *particle_data = (const ParticleData *)data.ptr();
+ const ParticleData *particle_data = reinterpret_cast<const ParticleData *>(buffer.ptr());
for (int i = 0; i < total_amount; i++) {
if (particle_data[i].active) {
Vector3 pos = Vector3(particle_data[i].xform[12], particle_data[i].xform[13], particle_data[i].xform[14]);
@@ -4394,28 +4393,28 @@ AABB RendererStorageRD::particles_get_current_aabb(RID p_particles) {
}
AABB RendererStorageRD::particles_get_aabb(RID p_particles) const {
- const Particles *particles = particles_owner.getornull(p_particles);
+ const Particles *particles = particles_owner.get_or_null(p_particles);
ERR_FAIL_COND_V(!particles, AABB());
return particles->custom_aabb;
}
void RendererStorageRD::particles_set_emission_transform(RID p_particles, const Transform3D &p_transform) {
- Particles *particles = particles_owner.getornull(p_particles);
+ Particles *particles = particles_owner.get_or_null(p_particles);
ERR_FAIL_COND(!particles);
particles->emission_transform = p_transform;
}
int RendererStorageRD::particles_get_draw_passes(RID p_particles) const {
- const Particles *particles = particles_owner.getornull(p_particles);
+ const Particles *particles = particles_owner.get_or_null(p_particles);
ERR_FAIL_COND_V(!particles, 0);
return particles->draw_passes.size();
}
RID RendererStorageRD::particles_get_draw_pass_mesh(RID p_particles, int p_pass) const {
- const Particles *particles = particles_owner.getornull(p_particles);
+ const Particles *particles = particles_owner.get_or_null(p_particles);
ERR_FAIL_COND_V(!particles, RID());
ERR_FAIL_INDEX_V(p_pass, particles->draw_passes.size(), RID());
@@ -4423,19 +4422,19 @@ RID RendererStorageRD::particles_get_draw_pass_mesh(RID p_particles, int p_pass)
}
void RendererStorageRD::particles_add_collision(RID p_particles, RID p_particles_collision_instance) {
- Particles *particles = particles_owner.getornull(p_particles);
+ Particles *particles = particles_owner.get_or_null(p_particles);
ERR_FAIL_COND(!particles);
particles->collisions.insert(p_particles_collision_instance);
}
void RendererStorageRD::particles_remove_collision(RID p_particles, RID p_particles_collision_instance) {
- Particles *particles = particles_owner.getornull(p_particles);
+ Particles *particles = particles_owner.get_or_null(p_particles);
ERR_FAIL_COND(!particles);
particles->collisions.erase(p_particles_collision_instance);
}
void RendererStorageRD::particles_set_canvas_sdf_collision(RID p_particles, bool p_enable, const Transform2D &p_xform, const Rect2 &p_to_screen, RID p_texture) {
- Particles *particles = particles_owner.getornull(p_particles);
+ Particles *particles = particles_owner.get_or_null(p_particles);
ERR_FAIL_COND(!particles);
particles->has_sdf_collision = p_enable;
particles->sdf_collision_transform = p_xform;
@@ -4477,7 +4476,7 @@ void RendererStorageRD::_particles_process(Particles *p_particles, double p_delt
RD::Uniform u;
u.uniform_type = RD::UNIFORM_TYPE_STORAGE_BUFFER;
u.binding = 3;
- Particles *sub_emitter = particles_owner.getornull(p_particles->sub_emitter);
+ Particles *sub_emitter = particles_owner.get_or_null(p_particles->sub_emitter);
if (sub_emitter) {
if (sub_emitter->emission_buffer == nullptr) { //no emission buffer, allocate emission buffer
_particles_allocate_emission_buffer(sub_emitter);
@@ -4594,11 +4593,11 @@ void RendererStorageRD::_particles_process(Particles *p_particles, double p_delt
uint32_t collision_3d_textures_used = 0;
for (const Set<RID>::Element *E = p_particles->collisions.front(); E; E = E->next()) {
- ParticlesCollisionInstance *pci = particles_collision_instance_owner.getornull(E->get());
+ ParticlesCollisionInstance *pci = particles_collision_instance_owner.get_or_null(E->get());
if (!pci || !pci->active) {
continue;
}
- ParticlesCollision *pc = particles_collision_owner.getornull(pci->collision);
+ ParticlesCollision *pc = particles_collision_owner.get_or_null(pci->collision);
ERR_CONTINUE(!pc);
Transform3D to_collider = pci->transform;
@@ -4746,7 +4745,7 @@ void RendererStorageRD::_particles_process(Particles *p_particles, double p_delt
for (uint32_t i = 0; i < ParticlesFrameParams::MAX_3D_TEXTURES; i++) {
RID rd_tex;
if (i < collision_3d_textures_used) {
- Texture *t = texture_owner.getornull(collision_3d_textures[i]);
+ Texture *t = texture_owner.get_or_null(collision_3d_textures[i]);
if (t && t->type == Texture::TYPE_3D) {
rd_tex = t->rd_texture;
}
@@ -4791,7 +4790,7 @@ void RendererStorageRD::_particles_process(Particles *p_particles, double p_delt
p_particles->force_sub_emit = false; //reset
- Particles *sub_emitter = particles_owner.getornull(p_particles->sub_emitter);
+ Particles *sub_emitter = particles_owner.get_or_null(p_particles->sub_emitter);
if (sub_emitter && sub_emitter->emission_storage_buffer.is_valid()) {
// print_line("updating subemitter buffer");
@@ -4871,7 +4870,7 @@ void RendererStorageRD::_particles_process(Particles *p_particles, double p_delt
}
void RendererStorageRD::particles_set_view_axis(RID p_particles, const Vector3 &p_axis, const Vector3 &p_up_axis) {
- Particles *particles = particles_owner.getornull(p_particles);
+ Particles *particles = particles_owner.get_or_null(p_particles);
ERR_FAIL_COND(!particles);
if (particles->draw_order != RS::PARTICLES_DRAW_ORDER_VIEW_DEPTH && particles->transform_align != RS::PARTICLES_TRANSFORM_ALIGN_Z_BILLBOARD && particles->transform_align != RS::PARTICLES_TRANSFORM_ALIGN_Z_BILLBOARD_Y_TO_VELOCITY) {
@@ -5229,7 +5228,7 @@ void RendererStorageRD::update_particles() {
bool RendererStorageRD::particles_is_inactive(RID p_particles) const {
ERR_FAIL_COND_V_MSG(RSG::threaded, false, "This function should never be used with threaded rendering, as it stalls the renderer.");
- const Particles *particles = particles_owner.getornull(p_particles);
+ const Particles *particles = particles_owner.get_or_null(p_particles);
ERR_FAIL_COND_V(!particles, false);
return !particles->emitting && particles->inactive;
}
@@ -5407,7 +5406,7 @@ void RendererStorageRD::particles_collision_initialize(RID p_rid) {
}
RID RendererStorageRD::particles_collision_get_heightfield_framebuffer(RID p_particles_collision) const {
- ParticlesCollision *particles_collision = particles_collision_owner.getornull(p_particles_collision);
+ ParticlesCollision *particles_collision = particles_collision_owner.get_or_null(p_particles_collision);
ERR_FAIL_COND_V(!particles_collision, RID());
ERR_FAIL_COND_V(particles_collision->type != RS::PARTICLES_COLLISION_TYPE_HEIGHTFIELD_COLLIDE, RID());
@@ -5442,7 +5441,7 @@ RID RendererStorageRD::particles_collision_get_heightfield_framebuffer(RID p_par
}
void RendererStorageRD::particles_collision_set_collision_type(RID p_particles_collision, RS::ParticlesCollisionType p_type) {
- ParticlesCollision *particles_collision = particles_collision_owner.getornull(p_particles_collision);
+ ParticlesCollision *particles_collision = particles_collision_owner.get_or_null(p_particles_collision);
ERR_FAIL_COND(!particles_collision);
if (p_type == particles_collision->type) {
@@ -5458,13 +5457,13 @@ void RendererStorageRD::particles_collision_set_collision_type(RID p_particles_c
}
void RendererStorageRD::particles_collision_set_cull_mask(RID p_particles_collision, uint32_t p_cull_mask) {
- ParticlesCollision *particles_collision = particles_collision_owner.getornull(p_particles_collision);
+ ParticlesCollision *particles_collision = particles_collision_owner.get_or_null(p_particles_collision);
ERR_FAIL_COND(!particles_collision);
particles_collision->cull_mask = p_cull_mask;
}
void RendererStorageRD::particles_collision_set_sphere_radius(RID p_particles_collision, real_t p_radius) {
- ParticlesCollision *particles_collision = particles_collision_owner.getornull(p_particles_collision);
+ ParticlesCollision *particles_collision = particles_collision_owner.get_or_null(p_particles_collision);
ERR_FAIL_COND(!particles_collision);
particles_collision->radius = p_radius;
@@ -5472,7 +5471,7 @@ void RendererStorageRD::particles_collision_set_sphere_radius(RID p_particles_co
}
void RendererStorageRD::particles_collision_set_box_extents(RID p_particles_collision, const Vector3 &p_extents) {
- ParticlesCollision *particles_collision = particles_collision_owner.getornull(p_particles_collision);
+ ParticlesCollision *particles_collision = particles_collision_owner.get_or_null(p_particles_collision);
ERR_FAIL_COND(!particles_collision);
particles_collision->extents = p_extents;
@@ -5480,41 +5479,41 @@ void RendererStorageRD::particles_collision_set_box_extents(RID p_particles_coll
}
void RendererStorageRD::particles_collision_set_attractor_strength(RID p_particles_collision, real_t p_strength) {
- ParticlesCollision *particles_collision = particles_collision_owner.getornull(p_particles_collision);
+ ParticlesCollision *particles_collision = particles_collision_owner.get_or_null(p_particles_collision);
ERR_FAIL_COND(!particles_collision);
particles_collision->attractor_strength = p_strength;
}
void RendererStorageRD::particles_collision_set_attractor_directionality(RID p_particles_collision, real_t p_directionality) {
- ParticlesCollision *particles_collision = particles_collision_owner.getornull(p_particles_collision);
+ ParticlesCollision *particles_collision = particles_collision_owner.get_or_null(p_particles_collision);
ERR_FAIL_COND(!particles_collision);
particles_collision->attractor_directionality = p_directionality;
}
void RendererStorageRD::particles_collision_set_attractor_attenuation(RID p_particles_collision, real_t p_curve) {
- ParticlesCollision *particles_collision = particles_collision_owner.getornull(p_particles_collision);
+ ParticlesCollision *particles_collision = particles_collision_owner.get_or_null(p_particles_collision);
ERR_FAIL_COND(!particles_collision);
particles_collision->attractor_attenuation = p_curve;
}
void RendererStorageRD::particles_collision_set_field_texture(RID p_particles_collision, RID p_texture) {
- ParticlesCollision *particles_collision = particles_collision_owner.getornull(p_particles_collision);
+ ParticlesCollision *particles_collision = particles_collision_owner.get_or_null(p_particles_collision);
ERR_FAIL_COND(!particles_collision);
particles_collision->field_texture = p_texture;
}
void RendererStorageRD::particles_collision_height_field_update(RID p_particles_collision) {
- ParticlesCollision *particles_collision = particles_collision_owner.getornull(p_particles_collision);
+ ParticlesCollision *particles_collision = particles_collision_owner.get_or_null(p_particles_collision);
ERR_FAIL_COND(!particles_collision);
particles_collision->dependency.changed_notify(DEPENDENCY_CHANGED_AABB);
}
void RendererStorageRD::particles_collision_set_height_field_resolution(RID p_particles_collision, RS::ParticlesCollisionHeightfieldResolution p_resolution) {
- ParticlesCollision *particles_collision = particles_collision_owner.getornull(p_particles_collision);
+ ParticlesCollision *particles_collision = particles_collision_owner.get_or_null(p_particles_collision);
ERR_FAIL_COND(!particles_collision);
ERR_FAIL_INDEX(p_resolution, RS::PARTICLES_COLLISION_HEIGHTFIELD_RESOLUTION_MAX);
@@ -5531,7 +5530,7 @@ void RendererStorageRD::particles_collision_set_height_field_resolution(RID p_pa
}
AABB RendererStorageRD::particles_collision_get_aabb(RID p_particles_collision) const {
- ParticlesCollision *particles_collision = particles_collision_owner.getornull(p_particles_collision);
+ ParticlesCollision *particles_collision = particles_collision_owner.get_or_null(p_particles_collision);
ERR_FAIL_COND_V(!particles_collision, AABB());
switch (particles_collision->type) {
@@ -5554,13 +5553,13 @@ AABB RendererStorageRD::particles_collision_get_aabb(RID p_particles_collision)
}
Vector3 RendererStorageRD::particles_collision_get_extents(RID p_particles_collision) const {
- const ParticlesCollision *particles_collision = particles_collision_owner.getornull(p_particles_collision);
+ const ParticlesCollision *particles_collision = particles_collision_owner.get_or_null(p_particles_collision);
ERR_FAIL_COND_V(!particles_collision, Vector3());
return particles_collision->extents;
}
bool RendererStorageRD::particles_collision_is_heightfield(RID p_particles_collision) const {
- const ParticlesCollision *particles_collision = particles_collision_owner.getornull(p_particles_collision);
+ const ParticlesCollision *particles_collision = particles_collision_owner.get_or_null(p_particles_collision);
ERR_FAIL_COND_V(!particles_collision, false);
return particles_collision->type == RS::PARTICLES_COLLISION_TYPE_HEIGHTFIELD_COLLIDE;
}
@@ -5571,12 +5570,12 @@ RID RendererStorageRD::particles_collision_instance_create(RID p_collision) {
return particles_collision_instance_owner.make_rid(pci);
}
void RendererStorageRD::particles_collision_instance_set_transform(RID p_collision_instance, const Transform3D &p_transform) {
- ParticlesCollisionInstance *pci = particles_collision_instance_owner.getornull(p_collision_instance);
+ ParticlesCollisionInstance *pci = particles_collision_instance_owner.get_or_null(p_collision_instance);
ERR_FAIL_COND(!pci);
pci->transform = p_transform;
}
void RendererStorageRD::particles_collision_instance_set_active(RID p_collision_instance, bool p_active) {
- ParticlesCollisionInstance *pci = particles_collision_instance_owner.getornull(p_collision_instance);
+ ParticlesCollisionInstance *pci = particles_collision_instance_owner.get_or_null(p_collision_instance);
ERR_FAIL_COND(!pci);
pci->active = p_active;
}
@@ -5590,25 +5589,25 @@ void RendererStorageRD::visibility_notifier_initialize(RID p_notifier) {
visibility_notifier_owner.initialize_rid(p_notifier, VisibilityNotifier());
}
void RendererStorageRD::visibility_notifier_set_aabb(RID p_notifier, const AABB &p_aabb) {
- VisibilityNotifier *vn = visibility_notifier_owner.getornull(p_notifier);
+ VisibilityNotifier *vn = visibility_notifier_owner.get_or_null(p_notifier);
ERR_FAIL_COND(!vn);
vn->aabb = p_aabb;
vn->dependency.changed_notify(DEPENDENCY_CHANGED_AABB);
}
void RendererStorageRD::visibility_notifier_set_callbacks(RID p_notifier, const Callable &p_enter_callbable, const Callable &p_exit_callable) {
- VisibilityNotifier *vn = visibility_notifier_owner.getornull(p_notifier);
+ VisibilityNotifier *vn = visibility_notifier_owner.get_or_null(p_notifier);
ERR_FAIL_COND(!vn);
vn->enter_callback = p_enter_callbable;
vn->exit_callback = p_exit_callable;
}
AABB RendererStorageRD::visibility_notifier_get_aabb(RID p_notifier) const {
- const VisibilityNotifier *vn = visibility_notifier_owner.getornull(p_notifier);
+ const VisibilityNotifier *vn = visibility_notifier_owner.get_or_null(p_notifier);
ERR_FAIL_COND_V(!vn, AABB());
return vn->aabb;
}
void RendererStorageRD::visibility_notifier_call(RID p_notifier, bool p_enter, bool p_deferred) {
- VisibilityNotifier *vn = visibility_notifier_owner.getornull(p_notifier);
+ VisibilityNotifier *vn = visibility_notifier_owner.get_or_null(p_notifier);
ERR_FAIL_COND(!vn);
if (p_enter) {
@@ -5652,7 +5651,7 @@ void RendererStorageRD::_skeleton_make_dirty(Skeleton *skeleton) {
}
void RendererStorageRD::skeleton_allocate_data(RID p_skeleton, int p_bones, bool p_2d_skeleton) {
- Skeleton *skeleton = skeleton_owner.getornull(p_skeleton);
+ Skeleton *skeleton = skeleton_owner.get_or_null(p_skeleton);
ERR_FAIL_COND(!skeleton);
ERR_FAIL_COND(p_bones < 0);
@@ -5695,14 +5694,14 @@ void RendererStorageRD::skeleton_allocate_data(RID p_skeleton, int p_bones, bool
}
int RendererStorageRD::skeleton_get_bone_count(RID p_skeleton) const {
- Skeleton *skeleton = skeleton_owner.getornull(p_skeleton);
+ Skeleton *skeleton = skeleton_owner.get_or_null(p_skeleton);
ERR_FAIL_COND_V(!skeleton, 0);
return skeleton->size;
}
void RendererStorageRD::skeleton_bone_set_transform(RID p_skeleton, int p_bone, const Transform3D &p_transform) {
- Skeleton *skeleton = skeleton_owner.getornull(p_skeleton);
+ Skeleton *skeleton = skeleton_owner.get_or_null(p_skeleton);
ERR_FAIL_COND(!skeleton);
ERR_FAIL_INDEX(p_bone, skeleton->size);
@@ -5727,7 +5726,7 @@ void RendererStorageRD::skeleton_bone_set_transform(RID p_skeleton, int p_bone,
}
Transform3D RendererStorageRD::skeleton_bone_get_transform(RID p_skeleton, int p_bone) const {
- Skeleton *skeleton = skeleton_owner.getornull(p_skeleton);
+ Skeleton *skeleton = skeleton_owner.get_or_null(p_skeleton);
ERR_FAIL_COND_V(!skeleton, Transform3D());
ERR_FAIL_INDEX_V(p_bone, skeleton->size, Transform3D());
@@ -5754,7 +5753,7 @@ Transform3D RendererStorageRD::skeleton_bone_get_transform(RID p_skeleton, int p
}
void RendererStorageRD::skeleton_bone_set_transform_2d(RID p_skeleton, int p_bone, const Transform2D &p_transform) {
- Skeleton *skeleton = skeleton_owner.getornull(p_skeleton);
+ Skeleton *skeleton = skeleton_owner.get_or_null(p_skeleton);
ERR_FAIL_COND(!skeleton);
ERR_FAIL_INDEX(p_bone, skeleton->size);
@@ -5775,7 +5774,7 @@ void RendererStorageRD::skeleton_bone_set_transform_2d(RID p_skeleton, int p_bon
}
Transform2D RendererStorageRD::skeleton_bone_get_transform_2d(RID p_skeleton, int p_bone) const {
- Skeleton *skeleton = skeleton_owner.getornull(p_skeleton);
+ Skeleton *skeleton = skeleton_owner.get_or_null(p_skeleton);
ERR_FAIL_COND_V(!skeleton, Transform2D());
ERR_FAIL_INDEX_V(p_bone, skeleton->size, Transform2D());
@@ -5795,7 +5794,7 @@ Transform2D RendererStorageRD::skeleton_bone_get_transform_2d(RID p_skeleton, in
}
void RendererStorageRD::skeleton_set_base_transform_2d(RID p_skeleton, const Transform2D &p_base_transform) {
- Skeleton *skeleton = skeleton_owner.getornull(p_skeleton);
+ Skeleton *skeleton = skeleton_owner.get_or_null(p_skeleton);
ERR_FAIL_COND(!skeleton->use_2d);
@@ -5874,14 +5873,14 @@ void RendererStorageRD::spot_light_initialize(RID p_light) {
}
void RendererStorageRD::light_set_color(RID p_light, const Color &p_color) {
- Light *light = light_owner.getornull(p_light);
+ Light *light = light_owner.get_or_null(p_light);
ERR_FAIL_COND(!light);
light->color = p_color;
}
void RendererStorageRD::light_set_param(RID p_light, RS::LightParam p_param, float p_value) {
- Light *light = light_owner.getornull(p_light);
+ Light *light = light_owner.get_or_null(p_light);
ERR_FAIL_COND(!light);
ERR_FAIL_INDEX(p_param, RS::LIGHT_PARAM_MAX);
@@ -5916,7 +5915,7 @@ void RendererStorageRD::light_set_param(RID p_light, RS::LightParam p_param, flo
}
void RendererStorageRD::light_set_shadow(RID p_light, bool p_enabled) {
- Light *light = light_owner.getornull(p_light);
+ Light *light = light_owner.get_or_null(p_light);
ERR_FAIL_COND(!light);
light->shadow = p_enabled;
@@ -5925,13 +5924,13 @@ void RendererStorageRD::light_set_shadow(RID p_light, bool p_enabled) {
}
void RendererStorageRD::light_set_shadow_color(RID p_light, const Color &p_color) {
- Light *light = light_owner.getornull(p_light);
+ Light *light = light_owner.get_or_null(p_light);
ERR_FAIL_COND(!light);
light->shadow_color = p_color;
}
void RendererStorageRD::light_set_projector(RID p_light, RID p_texture) {
- Light *light = light_owner.getornull(p_light);
+ Light *light = light_owner.get_or_null(p_light);
ERR_FAIL_COND(!light);
if (light->projector == p_texture) {
@@ -5953,14 +5952,14 @@ void RendererStorageRD::light_set_projector(RID p_light, RID p_texture) {
}
void RendererStorageRD::light_set_negative(RID p_light, bool p_enable) {
- Light *light = light_owner.getornull(p_light);
+ Light *light = light_owner.get_or_null(p_light);
ERR_FAIL_COND(!light);
light->negative = p_enable;
}
void RendererStorageRD::light_set_cull_mask(RID p_light, uint32_t p_mask) {
- Light *light = light_owner.getornull(p_light);
+ Light *light = light_owner.get_or_null(p_light);
ERR_FAIL_COND(!light);
light->cull_mask = p_mask;
@@ -5970,7 +5969,7 @@ void RendererStorageRD::light_set_cull_mask(RID p_light, uint32_t p_mask) {
}
void RendererStorageRD::light_set_reverse_cull_face_mode(RID p_light, bool p_enabled) {
- Light *light = light_owner.getornull(p_light);
+ Light *light = light_owner.get_or_null(p_light);
ERR_FAIL_COND(!light);
light->reverse_cull = p_enabled;
@@ -5980,7 +5979,7 @@ void RendererStorageRD::light_set_reverse_cull_face_mode(RID p_light, bool p_ena
}
void RendererStorageRD::light_set_bake_mode(RID p_light, RS::LightBakeMode p_bake_mode) {
- Light *light = light_owner.getornull(p_light);
+ Light *light = light_owner.get_or_null(p_light);
ERR_FAIL_COND(!light);
light->bake_mode = p_bake_mode;
@@ -5990,7 +5989,7 @@ void RendererStorageRD::light_set_bake_mode(RID p_light, RS::LightBakeMode p_bak
}
void RendererStorageRD::light_set_max_sdfgi_cascade(RID p_light, uint32_t p_cascade) {
- Light *light = light_owner.getornull(p_light);
+ Light *light = light_owner.get_or_null(p_light);
ERR_FAIL_COND(!light);
light->max_sdfgi_cascade = p_cascade;
@@ -6000,7 +5999,7 @@ void RendererStorageRD::light_set_max_sdfgi_cascade(RID p_light, uint32_t p_casc
}
void RendererStorageRD::light_omni_set_shadow_mode(RID p_light, RS::LightOmniShadowMode p_mode) {
- Light *light = light_owner.getornull(p_light);
+ Light *light = light_owner.get_or_null(p_light);
ERR_FAIL_COND(!light);
light->omni_shadow_mode = p_mode;
@@ -6010,14 +6009,14 @@ void RendererStorageRD::light_omni_set_shadow_mode(RID p_light, RS::LightOmniSha
}
RS::LightOmniShadowMode RendererStorageRD::light_omni_get_shadow_mode(RID p_light) {
- const Light *light = light_owner.getornull(p_light);
+ const Light *light = light_owner.get_or_null(p_light);
ERR_FAIL_COND_V(!light, RS::LIGHT_OMNI_SHADOW_CUBE);
return light->omni_shadow_mode;
}
void RendererStorageRD::light_directional_set_shadow_mode(RID p_light, RS::LightDirectionalShadowMode p_mode) {
- Light *light = light_owner.getornull(p_light);
+ Light *light = light_owner.get_or_null(p_light);
ERR_FAIL_COND(!light);
light->directional_shadow_mode = p_mode;
@@ -6026,7 +6025,7 @@ void RendererStorageRD::light_directional_set_shadow_mode(RID p_light, RS::Light
}
void RendererStorageRD::light_directional_set_blend_splits(RID p_light, bool p_enable) {
- Light *light = light_owner.getornull(p_light);
+ Light *light = light_owner.get_or_null(p_light);
ERR_FAIL_COND(!light);
light->directional_blend_splits = p_enable;
@@ -6035,56 +6034,56 @@ void RendererStorageRD::light_directional_set_blend_splits(RID p_light, bool p_e
}
bool RendererStorageRD::light_directional_get_blend_splits(RID p_light) const {
- const Light *light = light_owner.getornull(p_light);
+ const Light *light = light_owner.get_or_null(p_light);
ERR_FAIL_COND_V(!light, false);
return light->directional_blend_splits;
}
void RendererStorageRD::light_directional_set_sky_only(RID p_light, bool p_sky_only) {
- Light *light = light_owner.getornull(p_light);
+ Light *light = light_owner.get_or_null(p_light);
ERR_FAIL_COND(!light);
light->directional_sky_only = p_sky_only;
}
bool RendererStorageRD::light_directional_is_sky_only(RID p_light) const {
- const Light *light = light_owner.getornull(p_light);
+ const Light *light = light_owner.get_or_null(p_light);
ERR_FAIL_COND_V(!light, false);
return light->directional_sky_only;
}
RS::LightDirectionalShadowMode RendererStorageRD::light_directional_get_shadow_mode(RID p_light) {
- const Light *light = light_owner.getornull(p_light);
+ const Light *light = light_owner.get_or_null(p_light);
ERR_FAIL_COND_V(!light, RS::LIGHT_DIRECTIONAL_SHADOW_ORTHOGONAL);
return light->directional_shadow_mode;
}
uint32_t RendererStorageRD::light_get_max_sdfgi_cascade(RID p_light) {
- const Light *light = light_owner.getornull(p_light);
+ const Light *light = light_owner.get_or_null(p_light);
ERR_FAIL_COND_V(!light, 0);
return light->max_sdfgi_cascade;
}
RS::LightBakeMode RendererStorageRD::light_get_bake_mode(RID p_light) {
- const Light *light = light_owner.getornull(p_light);
+ const Light *light = light_owner.get_or_null(p_light);
ERR_FAIL_COND_V(!light, RS::LIGHT_BAKE_DISABLED);
return light->bake_mode;
}
uint64_t RendererStorageRD::light_get_version(RID p_light) const {
- const Light *light = light_owner.getornull(p_light);
+ const Light *light = light_owner.get_or_null(p_light);
ERR_FAIL_COND_V(!light, 0);
return light->version;
}
AABB RendererStorageRD::light_get_aabb(RID p_light) const {
- const Light *light = light_owner.getornull(p_light);
+ const Light *light = light_owner.get_or_null(p_light);
ERR_FAIL_COND_V(!light, AABB());
switch (light->type) {
@@ -6115,7 +6114,7 @@ void RendererStorageRD::reflection_probe_initialize(RID p_reflection_probe) {
}
void RendererStorageRD::reflection_probe_set_update_mode(RID p_probe, RS::ReflectionProbeUpdateMode p_mode) {
- ReflectionProbe *reflection_probe = reflection_probe_owner.getornull(p_probe);
+ ReflectionProbe *reflection_probe = reflection_probe_owner.get_or_null(p_probe);
ERR_FAIL_COND(!reflection_probe);
reflection_probe->update_mode = p_mode;
@@ -6123,35 +6122,35 @@ void RendererStorageRD::reflection_probe_set_update_mode(RID p_probe, RS::Reflec
}
void RendererStorageRD::reflection_probe_set_intensity(RID p_probe, float p_intensity) {
- ReflectionProbe *reflection_probe = reflection_probe_owner.getornull(p_probe);
+ ReflectionProbe *reflection_probe = reflection_probe_owner.get_or_null(p_probe);
ERR_FAIL_COND(!reflection_probe);
reflection_probe->intensity = p_intensity;
}
void RendererStorageRD::reflection_probe_set_ambient_mode(RID p_probe, RS::ReflectionProbeAmbientMode p_mode) {
- ReflectionProbe *reflection_probe = reflection_probe_owner.getornull(p_probe);
+ ReflectionProbe *reflection_probe = reflection_probe_owner.get_or_null(p_probe);
ERR_FAIL_COND(!reflection_probe);
reflection_probe->ambient_mode = p_mode;
}
void RendererStorageRD::reflection_probe_set_ambient_color(RID p_probe, const Color &p_color) {
- ReflectionProbe *reflection_probe = reflection_probe_owner.getornull(p_probe);
+ ReflectionProbe *reflection_probe = reflection_probe_owner.get_or_null(p_probe);
ERR_FAIL_COND(!reflection_probe);
reflection_probe->ambient_color = p_color;
}
void RendererStorageRD::reflection_probe_set_ambient_energy(RID p_probe, float p_energy) {
- ReflectionProbe *reflection_probe = reflection_probe_owner.getornull(p_probe);
+ ReflectionProbe *reflection_probe = reflection_probe_owner.get_or_null(p_probe);
ERR_FAIL_COND(!reflection_probe);
reflection_probe->ambient_color_energy = p_energy;
}
void RendererStorageRD::reflection_probe_set_max_distance(RID p_probe, float p_distance) {
- ReflectionProbe *reflection_probe = reflection_probe_owner.getornull(p_probe);
+ ReflectionProbe *reflection_probe = reflection_probe_owner.get_or_null(p_probe);
ERR_FAIL_COND(!reflection_probe);
reflection_probe->max_distance = p_distance;
@@ -6160,7 +6159,7 @@ void RendererStorageRD::reflection_probe_set_max_distance(RID p_probe, float p_d
}
void RendererStorageRD::reflection_probe_set_extents(RID p_probe, const Vector3 &p_extents) {
- ReflectionProbe *reflection_probe = reflection_probe_owner.getornull(p_probe);
+ ReflectionProbe *reflection_probe = reflection_probe_owner.get_or_null(p_probe);
ERR_FAIL_COND(!reflection_probe);
if (reflection_probe->extents == p_extents) {
@@ -6171,7 +6170,7 @@ void RendererStorageRD::reflection_probe_set_extents(RID p_probe, const Vector3
}
void RendererStorageRD::reflection_probe_set_origin_offset(RID p_probe, const Vector3 &p_offset) {
- ReflectionProbe *reflection_probe = reflection_probe_owner.getornull(p_probe);
+ ReflectionProbe *reflection_probe = reflection_probe_owner.get_or_null(p_probe);
ERR_FAIL_COND(!reflection_probe);
reflection_probe->origin_offset = p_offset;
@@ -6179,7 +6178,7 @@ void RendererStorageRD::reflection_probe_set_origin_offset(RID p_probe, const Ve
}
void RendererStorageRD::reflection_probe_set_as_interior(RID p_probe, bool p_enable) {
- ReflectionProbe *reflection_probe = reflection_probe_owner.getornull(p_probe);
+ ReflectionProbe *reflection_probe = reflection_probe_owner.get_or_null(p_probe);
ERR_FAIL_COND(!reflection_probe);
reflection_probe->interior = p_enable;
@@ -6187,14 +6186,14 @@ void RendererStorageRD::reflection_probe_set_as_interior(RID p_probe, bool p_ena
}
void RendererStorageRD::reflection_probe_set_enable_box_projection(RID p_probe, bool p_enable) {
- ReflectionProbe *reflection_probe = reflection_probe_owner.getornull(p_probe);
+ ReflectionProbe *reflection_probe = reflection_probe_owner.get_or_null(p_probe);
ERR_FAIL_COND(!reflection_probe);
reflection_probe->box_projection = p_enable;
}
void RendererStorageRD::reflection_probe_set_enable_shadows(RID p_probe, bool p_enable) {
- ReflectionProbe *reflection_probe = reflection_probe_owner.getornull(p_probe);
+ ReflectionProbe *reflection_probe = reflection_probe_owner.get_or_null(p_probe);
ERR_FAIL_COND(!reflection_probe);
reflection_probe->enable_shadows = p_enable;
@@ -6202,7 +6201,7 @@ void RendererStorageRD::reflection_probe_set_enable_shadows(RID p_probe, bool p_
}
void RendererStorageRD::reflection_probe_set_cull_mask(RID p_probe, uint32_t p_layers) {
- ReflectionProbe *reflection_probe = reflection_probe_owner.getornull(p_probe);
+ ReflectionProbe *reflection_probe = reflection_probe_owner.get_or_null(p_probe);
ERR_FAIL_COND(!reflection_probe);
reflection_probe->cull_mask = p_layers;
@@ -6210,7 +6209,7 @@ void RendererStorageRD::reflection_probe_set_cull_mask(RID p_probe, uint32_t p_l
}
void RendererStorageRD::reflection_probe_set_resolution(RID p_probe, int p_resolution) {
- ReflectionProbe *reflection_probe = reflection_probe_owner.getornull(p_probe);
+ ReflectionProbe *reflection_probe = reflection_probe_owner.get_or_null(p_probe);
ERR_FAIL_COND(!reflection_probe);
ERR_FAIL_COND(p_resolution < 32);
@@ -6218,7 +6217,7 @@ void RendererStorageRD::reflection_probe_set_resolution(RID p_probe, int p_resol
}
void RendererStorageRD::reflection_probe_set_lod_threshold(RID p_probe, float p_ratio) {
- ReflectionProbe *reflection_probe = reflection_probe_owner.getornull(p_probe);
+ ReflectionProbe *reflection_probe = reflection_probe_owner.get_or_null(p_probe);
ERR_FAIL_COND(!reflection_probe);
reflection_probe->lod_threshold = p_ratio;
@@ -6227,7 +6226,7 @@ void RendererStorageRD::reflection_probe_set_lod_threshold(RID p_probe, float p_
}
AABB RendererStorageRD::reflection_probe_get_aabb(RID p_probe) const {
- const ReflectionProbe *reflection_probe = reflection_probe_owner.getornull(p_probe);
+ const ReflectionProbe *reflection_probe = reflection_probe_owner.get_or_null(p_probe);
ERR_FAIL_COND_V(!reflection_probe, AABB());
AABB aabb;
@@ -6238,96 +6237,96 @@ AABB RendererStorageRD::reflection_probe_get_aabb(RID p_probe) const {
}
RS::ReflectionProbeUpdateMode RendererStorageRD::reflection_probe_get_update_mode(RID p_probe) const {
- const ReflectionProbe *reflection_probe = reflection_probe_owner.getornull(p_probe);
+ const ReflectionProbe *reflection_probe = reflection_probe_owner.get_or_null(p_probe);
ERR_FAIL_COND_V(!reflection_probe, RS::REFLECTION_PROBE_UPDATE_ALWAYS);
return reflection_probe->update_mode;
}
uint32_t RendererStorageRD::reflection_probe_get_cull_mask(RID p_probe) const {
- const ReflectionProbe *reflection_probe = reflection_probe_owner.getornull(p_probe);
+ const ReflectionProbe *reflection_probe = reflection_probe_owner.get_or_null(p_probe);
ERR_FAIL_COND_V(!reflection_probe, 0);
return reflection_probe->cull_mask;
}
Vector3 RendererStorageRD::reflection_probe_get_extents(RID p_probe) const {
- const ReflectionProbe *reflection_probe = reflection_probe_owner.getornull(p_probe);
+ const ReflectionProbe *reflection_probe = reflection_probe_owner.get_or_null(p_probe);
ERR_FAIL_COND_V(!reflection_probe, Vector3());
return reflection_probe->extents;
}
Vector3 RendererStorageRD::reflection_probe_get_origin_offset(RID p_probe) const {
- const ReflectionProbe *reflection_probe = reflection_probe_owner.getornull(p_probe);
+ const ReflectionProbe *reflection_probe = reflection_probe_owner.get_or_null(p_probe);
ERR_FAIL_COND_V(!reflection_probe, Vector3());
return reflection_probe->origin_offset;
}
bool RendererStorageRD::reflection_probe_renders_shadows(RID p_probe) const {
- const ReflectionProbe *reflection_probe = reflection_probe_owner.getornull(p_probe);
+ const ReflectionProbe *reflection_probe = reflection_probe_owner.get_or_null(p_probe);
ERR_FAIL_COND_V(!reflection_probe, false);
return reflection_probe->enable_shadows;
}
float RendererStorageRD::reflection_probe_get_origin_max_distance(RID p_probe) const {
- const ReflectionProbe *reflection_probe = reflection_probe_owner.getornull(p_probe);
+ const ReflectionProbe *reflection_probe = reflection_probe_owner.get_or_null(p_probe);
ERR_FAIL_COND_V(!reflection_probe, 0);
return reflection_probe->max_distance;
}
float RendererStorageRD::reflection_probe_get_lod_threshold(RID p_probe) const {
- const ReflectionProbe *reflection_probe = reflection_probe_owner.getornull(p_probe);
+ const ReflectionProbe *reflection_probe = reflection_probe_owner.get_or_null(p_probe);
ERR_FAIL_COND_V(!reflection_probe, 0);
return reflection_probe->lod_threshold;
}
int RendererStorageRD::reflection_probe_get_resolution(RID p_probe) const {
- const ReflectionProbe *reflection_probe = reflection_probe_owner.getornull(p_probe);
+ const ReflectionProbe *reflection_probe = reflection_probe_owner.get_or_null(p_probe);
ERR_FAIL_COND_V(!reflection_probe, 0);
return reflection_probe->resolution;
}
float RendererStorageRD::reflection_probe_get_intensity(RID p_probe) const {
- const ReflectionProbe *reflection_probe = reflection_probe_owner.getornull(p_probe);
+ const ReflectionProbe *reflection_probe = reflection_probe_owner.get_or_null(p_probe);
ERR_FAIL_COND_V(!reflection_probe, 0);
return reflection_probe->intensity;
}
bool RendererStorageRD::reflection_probe_is_interior(RID p_probe) const {
- const ReflectionProbe *reflection_probe = reflection_probe_owner.getornull(p_probe);
+ const ReflectionProbe *reflection_probe = reflection_probe_owner.get_or_null(p_probe);
ERR_FAIL_COND_V(!reflection_probe, false);
return reflection_probe->interior;
}
bool RendererStorageRD::reflection_probe_is_box_projection(RID p_probe) const {
- const ReflectionProbe *reflection_probe = reflection_probe_owner.getornull(p_probe);
+ const ReflectionProbe *reflection_probe = reflection_probe_owner.get_or_null(p_probe);
ERR_FAIL_COND_V(!reflection_probe, false);
return reflection_probe->box_projection;
}
RS::ReflectionProbeAmbientMode RendererStorageRD::reflection_probe_get_ambient_mode(RID p_probe) const {
- const ReflectionProbe *reflection_probe = reflection_probe_owner.getornull(p_probe);
+ const ReflectionProbe *reflection_probe = reflection_probe_owner.get_or_null(p_probe);
ERR_FAIL_COND_V(!reflection_probe, RS::REFLECTION_PROBE_AMBIENT_DISABLED);
return reflection_probe->ambient_mode;
}
Color RendererStorageRD::reflection_probe_get_ambient_color(RID p_probe) const {
- const ReflectionProbe *reflection_probe = reflection_probe_owner.getornull(p_probe);
+ const ReflectionProbe *reflection_probe = reflection_probe_owner.get_or_null(p_probe);
ERR_FAIL_COND_V(!reflection_probe, Color());
return reflection_probe->ambient_color;
}
float RendererStorageRD::reflection_probe_get_ambient_color_energy(RID p_probe) const {
- const ReflectionProbe *reflection_probe = reflection_probe_owner.getornull(p_probe);
+ const ReflectionProbe *reflection_probe = reflection_probe_owner.get_or_null(p_probe);
ERR_FAIL_COND_V(!reflection_probe, 0);
return reflection_probe->ambient_color_energy;
@@ -6341,14 +6340,14 @@ void RendererStorageRD::decal_initialize(RID p_decal) {
}
void RendererStorageRD::decal_set_extents(RID p_decal, const Vector3 &p_extents) {
- Decal *decal = decal_owner.getornull(p_decal);
+ Decal *decal = decal_owner.get_or_null(p_decal);
ERR_FAIL_COND(!decal);
decal->extents = p_extents;
decal->dependency.changed_notify(DEPENDENCY_CHANGED_AABB);
}
void RendererStorageRD::decal_set_texture(RID p_decal, RS::DecalTexture p_type, RID p_texture) {
- Decal *decal = decal_owner.getornull(p_decal);
+ Decal *decal = decal_owner.get_or_null(p_decal);
ERR_FAIL_COND(!decal);
ERR_FAIL_INDEX(p_type, RS::DECAL_TEXTURE_MAX);
@@ -6372,32 +6371,32 @@ void RendererStorageRD::decal_set_texture(RID p_decal, RS::DecalTexture p_type,
}
void RendererStorageRD::decal_set_emission_energy(RID p_decal, float p_energy) {
- Decal *decal = decal_owner.getornull(p_decal);
+ Decal *decal = decal_owner.get_or_null(p_decal);
ERR_FAIL_COND(!decal);
decal->emission_energy = p_energy;
}
void RendererStorageRD::decal_set_albedo_mix(RID p_decal, float p_mix) {
- Decal *decal = decal_owner.getornull(p_decal);
+ Decal *decal = decal_owner.get_or_null(p_decal);
ERR_FAIL_COND(!decal);
decal->albedo_mix = p_mix;
}
void RendererStorageRD::decal_set_modulate(RID p_decal, const Color &p_modulate) {
- Decal *decal = decal_owner.getornull(p_decal);
+ Decal *decal = decal_owner.get_or_null(p_decal);
ERR_FAIL_COND(!decal);
decal->modulate = p_modulate;
}
void RendererStorageRD::decal_set_cull_mask(RID p_decal, uint32_t p_layers) {
- Decal *decal = decal_owner.getornull(p_decal);
+ Decal *decal = decal_owner.get_or_null(p_decal);
ERR_FAIL_COND(!decal);
decal->cull_mask = p_layers;
decal->dependency.changed_notify(DEPENDENCY_CHANGED_AABB);
}
void RendererStorageRD::decal_set_distance_fade(RID p_decal, bool p_enabled, float p_begin, float p_length) {
- Decal *decal = decal_owner.getornull(p_decal);
+ Decal *decal = decal_owner.get_or_null(p_decal);
ERR_FAIL_COND(!decal);
decal->distance_fade = p_enabled;
decal->distance_fade_begin = p_begin;
@@ -6405,20 +6404,20 @@ void RendererStorageRD::decal_set_distance_fade(RID p_decal, bool p_enabled, flo
}
void RendererStorageRD::decal_set_fade(RID p_decal, float p_above, float p_below) {
- Decal *decal = decal_owner.getornull(p_decal);
+ Decal *decal = decal_owner.get_or_null(p_decal);
ERR_FAIL_COND(!decal);
decal->upper_fade = p_above;
decal->lower_fade = p_below;
}
void RendererStorageRD::decal_set_normal_fade(RID p_decal, float p_fade) {
- Decal *decal = decal_owner.getornull(p_decal);
+ Decal *decal = decal_owner.get_or_null(p_decal);
ERR_FAIL_COND(!decal);
decal->normal_fade = p_fade;
}
AABB RendererStorageRD::decal_get_aabb(RID p_decal) const {
- Decal *decal = decal_owner.getornull(p_decal);
+ Decal *decal = decal_owner.get_or_null(p_decal);
ERR_FAIL_COND_V(!decal, AABB());
return AABB(-decal->extents, decal->extents * 2.0);
@@ -6432,7 +6431,7 @@ void RendererStorageRD::voxel_gi_initialize(RID p_voxel_gi) {
}
void RendererStorageRD::voxel_gi_allocate_data(RID p_voxel_gi, const Transform3D &p_to_cell_xform, const AABB &p_aabb, const Vector3i &p_octree_size, const Vector<uint8_t> &p_octree_cells, const Vector<uint8_t> &p_data_cells, const Vector<uint8_t> &p_distance_field, const Vector<int> &p_level_counts) {
- VoxelGI *voxel_gi = voxel_gi_owner.getornull(p_voxel_gi);
+ VoxelGI *voxel_gi = voxel_gi_owner.get_or_null(p_voxel_gi);
ERR_FAIL_COND(!voxel_gi);
if (voxel_gi->octree_buffer.is_valid()) {
@@ -6557,20 +6556,20 @@ void RendererStorageRD::voxel_gi_allocate_data(RID p_voxel_gi, const Transform3D
}
AABB RendererStorageRD::voxel_gi_get_bounds(RID p_voxel_gi) const {
- VoxelGI *voxel_gi = voxel_gi_owner.getornull(p_voxel_gi);
+ VoxelGI *voxel_gi = voxel_gi_owner.get_or_null(p_voxel_gi);
ERR_FAIL_COND_V(!voxel_gi, AABB());
return voxel_gi->bounds;
}
Vector3i RendererStorageRD::voxel_gi_get_octree_size(RID p_voxel_gi) const {
- VoxelGI *voxel_gi = voxel_gi_owner.getornull(p_voxel_gi);
+ VoxelGI *voxel_gi = voxel_gi_owner.get_or_null(p_voxel_gi);
ERR_FAIL_COND_V(!voxel_gi, Vector3i());
return voxel_gi->octree_size;
}
Vector<uint8_t> RendererStorageRD::voxel_gi_get_octree_cells(RID p_voxel_gi) const {
- VoxelGI *voxel_gi = voxel_gi_owner.getornull(p_voxel_gi);
+ VoxelGI *voxel_gi = voxel_gi_owner.get_or_null(p_voxel_gi);
ERR_FAIL_COND_V(!voxel_gi, Vector<uint8_t>());
if (voxel_gi->octree_buffer.is_valid()) {
@@ -6580,7 +6579,7 @@ Vector<uint8_t> RendererStorageRD::voxel_gi_get_octree_cells(RID p_voxel_gi) con
}
Vector<uint8_t> RendererStorageRD::voxel_gi_get_data_cells(RID p_voxel_gi) const {
- VoxelGI *voxel_gi = voxel_gi_owner.getornull(p_voxel_gi);
+ VoxelGI *voxel_gi = voxel_gi_owner.get_or_null(p_voxel_gi);
ERR_FAIL_COND_V(!voxel_gi, Vector<uint8_t>());
if (voxel_gi->data_buffer.is_valid()) {
@@ -6590,7 +6589,7 @@ Vector<uint8_t> RendererStorageRD::voxel_gi_get_data_cells(RID p_voxel_gi) const
}
Vector<uint8_t> RendererStorageRD::voxel_gi_get_distance_field(RID p_voxel_gi) const {
- VoxelGI *voxel_gi = voxel_gi_owner.getornull(p_voxel_gi);
+ VoxelGI *voxel_gi = voxel_gi_owner.get_or_null(p_voxel_gi);
ERR_FAIL_COND_V(!voxel_gi, Vector<uint8_t>());
if (voxel_gi->data_buffer.is_valid()) {
@@ -6600,21 +6599,21 @@ Vector<uint8_t> RendererStorageRD::voxel_gi_get_distance_field(RID p_voxel_gi) c
}
Vector<int> RendererStorageRD::voxel_gi_get_level_counts(RID p_voxel_gi) const {
- VoxelGI *voxel_gi = voxel_gi_owner.getornull(p_voxel_gi);
+ VoxelGI *voxel_gi = voxel_gi_owner.get_or_null(p_voxel_gi);
ERR_FAIL_COND_V(!voxel_gi, Vector<int>());
return voxel_gi->level_counts;
}
Transform3D RendererStorageRD::voxel_gi_get_to_cell_xform(RID p_voxel_gi) const {
- VoxelGI *voxel_gi = voxel_gi_owner.getornull(p_voxel_gi);
+ VoxelGI *voxel_gi = voxel_gi_owner.get_or_null(p_voxel_gi);
ERR_FAIL_COND_V(!voxel_gi, Transform3D());
return voxel_gi->to_cell_xform;
}
void RendererStorageRD::voxel_gi_set_dynamic_range(RID p_voxel_gi, float p_range) {
- VoxelGI *voxel_gi = voxel_gi_owner.getornull(p_voxel_gi);
+ VoxelGI *voxel_gi = voxel_gi_owner.get_or_null(p_voxel_gi);
ERR_FAIL_COND(!voxel_gi);
voxel_gi->dynamic_range = p_range;
@@ -6622,14 +6621,14 @@ void RendererStorageRD::voxel_gi_set_dynamic_range(RID p_voxel_gi, float p_range
}
float RendererStorageRD::voxel_gi_get_dynamic_range(RID p_voxel_gi) const {
- VoxelGI *voxel_gi = voxel_gi_owner.getornull(p_voxel_gi);
+ VoxelGI *voxel_gi = voxel_gi_owner.get_or_null(p_voxel_gi);
ERR_FAIL_COND_V(!voxel_gi, 0);
return voxel_gi->dynamic_range;
}
void RendererStorageRD::voxel_gi_set_propagation(RID p_voxel_gi, float p_range) {
- VoxelGI *voxel_gi = voxel_gi_owner.getornull(p_voxel_gi);
+ VoxelGI *voxel_gi = voxel_gi_owner.get_or_null(p_voxel_gi);
ERR_FAIL_COND(!voxel_gi);
voxel_gi->propagation = p_range;
@@ -6637,72 +6636,72 @@ void RendererStorageRD::voxel_gi_set_propagation(RID p_voxel_gi, float p_range)
}
float RendererStorageRD::voxel_gi_get_propagation(RID p_voxel_gi) const {
- VoxelGI *voxel_gi = voxel_gi_owner.getornull(p_voxel_gi);
+ VoxelGI *voxel_gi = voxel_gi_owner.get_or_null(p_voxel_gi);
ERR_FAIL_COND_V(!voxel_gi, 0);
return voxel_gi->propagation;
}
void RendererStorageRD::voxel_gi_set_energy(RID p_voxel_gi, float p_energy) {
- VoxelGI *voxel_gi = voxel_gi_owner.getornull(p_voxel_gi);
+ VoxelGI *voxel_gi = voxel_gi_owner.get_or_null(p_voxel_gi);
ERR_FAIL_COND(!voxel_gi);
voxel_gi->energy = p_energy;
}
float RendererStorageRD::voxel_gi_get_energy(RID p_voxel_gi) const {
- VoxelGI *voxel_gi = voxel_gi_owner.getornull(p_voxel_gi);
+ VoxelGI *voxel_gi = voxel_gi_owner.get_or_null(p_voxel_gi);
ERR_FAIL_COND_V(!voxel_gi, 0);
return voxel_gi->energy;
}
void RendererStorageRD::voxel_gi_set_bias(RID p_voxel_gi, float p_bias) {
- VoxelGI *voxel_gi = voxel_gi_owner.getornull(p_voxel_gi);
+ VoxelGI *voxel_gi = voxel_gi_owner.get_or_null(p_voxel_gi);
ERR_FAIL_COND(!voxel_gi);
voxel_gi->bias = p_bias;
}
float RendererStorageRD::voxel_gi_get_bias(RID p_voxel_gi) const {
- VoxelGI *voxel_gi = voxel_gi_owner.getornull(p_voxel_gi);
+ VoxelGI *voxel_gi = voxel_gi_owner.get_or_null(p_voxel_gi);
ERR_FAIL_COND_V(!voxel_gi, 0);
return voxel_gi->bias;
}
void RendererStorageRD::voxel_gi_set_normal_bias(RID p_voxel_gi, float p_normal_bias) {
- VoxelGI *voxel_gi = voxel_gi_owner.getornull(p_voxel_gi);
+ VoxelGI *voxel_gi = voxel_gi_owner.get_or_null(p_voxel_gi);
ERR_FAIL_COND(!voxel_gi);
voxel_gi->normal_bias = p_normal_bias;
}
float RendererStorageRD::voxel_gi_get_normal_bias(RID p_voxel_gi) const {
- VoxelGI *voxel_gi = voxel_gi_owner.getornull(p_voxel_gi);
+ VoxelGI *voxel_gi = voxel_gi_owner.get_or_null(p_voxel_gi);
ERR_FAIL_COND_V(!voxel_gi, 0);
return voxel_gi->normal_bias;
}
void RendererStorageRD::voxel_gi_set_anisotropy_strength(RID p_voxel_gi, float p_strength) {
- VoxelGI *voxel_gi = voxel_gi_owner.getornull(p_voxel_gi);
+ VoxelGI *voxel_gi = voxel_gi_owner.get_or_null(p_voxel_gi);
ERR_FAIL_COND(!voxel_gi);
voxel_gi->anisotropy_strength = p_strength;
}
float RendererStorageRD::voxel_gi_get_anisotropy_strength(RID p_voxel_gi) const {
- VoxelGI *voxel_gi = voxel_gi_owner.getornull(p_voxel_gi);
+ VoxelGI *voxel_gi = voxel_gi_owner.get_or_null(p_voxel_gi);
ERR_FAIL_COND_V(!voxel_gi, 0);
return voxel_gi->anisotropy_strength;
}
void RendererStorageRD::voxel_gi_set_interior(RID p_voxel_gi, bool p_enable) {
- VoxelGI *voxel_gi = voxel_gi_owner.getornull(p_voxel_gi);
+ VoxelGI *voxel_gi = voxel_gi_owner.get_or_null(p_voxel_gi);
ERR_FAIL_COND(!voxel_gi);
voxel_gi->interior = p_enable;
}
void RendererStorageRD::voxel_gi_set_use_two_bounces(RID p_voxel_gi, bool p_enable) {
- VoxelGI *voxel_gi = voxel_gi_owner.getornull(p_voxel_gi);
+ VoxelGI *voxel_gi = voxel_gi_owner.get_or_null(p_voxel_gi);
ERR_FAIL_COND(!voxel_gi);
voxel_gi->use_two_bounces = p_enable;
@@ -6710,43 +6709,43 @@ void RendererStorageRD::voxel_gi_set_use_two_bounces(RID p_voxel_gi, bool p_enab
}
bool RendererStorageRD::voxel_gi_is_using_two_bounces(RID p_voxel_gi) const {
- VoxelGI *voxel_gi = voxel_gi_owner.getornull(p_voxel_gi);
+ VoxelGI *voxel_gi = voxel_gi_owner.get_or_null(p_voxel_gi);
ERR_FAIL_COND_V(!voxel_gi, false);
return voxel_gi->use_two_bounces;
}
bool RendererStorageRD::voxel_gi_is_interior(RID p_voxel_gi) const {
- VoxelGI *voxel_gi = voxel_gi_owner.getornull(p_voxel_gi);
+ VoxelGI *voxel_gi = voxel_gi_owner.get_or_null(p_voxel_gi);
ERR_FAIL_COND_V(!voxel_gi, 0);
return voxel_gi->interior;
}
uint32_t RendererStorageRD::voxel_gi_get_version(RID p_voxel_gi) {
- VoxelGI *voxel_gi = voxel_gi_owner.getornull(p_voxel_gi);
+ VoxelGI *voxel_gi = voxel_gi_owner.get_or_null(p_voxel_gi);
ERR_FAIL_COND_V(!voxel_gi, 0);
return voxel_gi->version;
}
uint32_t RendererStorageRD::voxel_gi_get_data_version(RID p_voxel_gi) {
- VoxelGI *voxel_gi = voxel_gi_owner.getornull(p_voxel_gi);
+ VoxelGI *voxel_gi = voxel_gi_owner.get_or_null(p_voxel_gi);
ERR_FAIL_COND_V(!voxel_gi, 0);
return voxel_gi->data_version;
}
RID RendererStorageRD::voxel_gi_get_octree_buffer(RID p_voxel_gi) const {
- VoxelGI *voxel_gi = voxel_gi_owner.getornull(p_voxel_gi);
+ VoxelGI *voxel_gi = voxel_gi_owner.get_or_null(p_voxel_gi);
ERR_FAIL_COND_V(!voxel_gi, RID());
return voxel_gi->octree_buffer;
}
RID RendererStorageRD::voxel_gi_get_data_buffer(RID p_voxel_gi) const {
- VoxelGI *voxel_gi = voxel_gi_owner.getornull(p_voxel_gi);
+ VoxelGI *voxel_gi = voxel_gi_owner.get_or_null(p_voxel_gi);
ERR_FAIL_COND_V(!voxel_gi, RID());
return voxel_gi->data_buffer;
}
RID RendererStorageRD::voxel_gi_get_sdf_texture(RID p_voxel_gi) {
- VoxelGI *voxel_gi = voxel_gi_owner.getornull(p_voxel_gi);
+ VoxelGI *voxel_gi = voxel_gi_owner.get_or_null(p_voxel_gi);
ERR_FAIL_COND_V(!voxel_gi, RID());
return voxel_gi->sdf_texture;
@@ -6763,20 +6762,20 @@ void RendererStorageRD::lightmap_initialize(RID p_lightmap) {
}
void RendererStorageRD::lightmap_set_textures(RID p_lightmap, RID p_light, bool p_uses_spherical_haromics) {
- Lightmap *lm = lightmap_owner.getornull(p_lightmap);
+ Lightmap *lm = lightmap_owner.get_or_null(p_lightmap);
ERR_FAIL_COND(!lm);
lightmap_array_version++;
//erase lightmap users
if (lm->light_texture.is_valid()) {
- Texture *t = texture_owner.getornull(lm->light_texture);
+ Texture *t = texture_owner.get_or_null(lm->light_texture);
if (t) {
t->lightmap_users.erase(p_lightmap);
}
}
- Texture *t = texture_owner.getornull(p_light);
+ Texture *t = texture_owner.get_or_null(p_light);
lm->light_texture = p_light;
lm->uses_spherical_harmonics = p_uses_spherical_haromics;
@@ -6811,19 +6810,19 @@ void RendererStorageRD::lightmap_set_textures(RID p_lightmap, RID p_light, bool
}
void RendererStorageRD::lightmap_set_probe_bounds(RID p_lightmap, const AABB &p_bounds) {
- Lightmap *lm = lightmap_owner.getornull(p_lightmap);
+ Lightmap *lm = lightmap_owner.get_or_null(p_lightmap);
ERR_FAIL_COND(!lm);
lm->bounds = p_bounds;
}
void RendererStorageRD::lightmap_set_probe_interior(RID p_lightmap, bool p_interior) {
- Lightmap *lm = lightmap_owner.getornull(p_lightmap);
+ Lightmap *lm = lightmap_owner.get_or_null(p_lightmap);
ERR_FAIL_COND(!lm);
lm->interior = p_interior;
}
void RendererStorageRD::lightmap_set_probe_capture_data(RID p_lightmap, const PackedVector3Array &p_points, const PackedColorArray &p_point_sh, const PackedInt32Array &p_tetrahedra, const PackedInt32Array &p_bsp_tree) {
- Lightmap *lm = lightmap_owner.getornull(p_lightmap);
+ Lightmap *lm = lightmap_owner.get_or_null(p_lightmap);
ERR_FAIL_COND(!lm);
if (p_points.size()) {
@@ -6839,26 +6838,26 @@ void RendererStorageRD::lightmap_set_probe_capture_data(RID p_lightmap, const Pa
}
PackedVector3Array RendererStorageRD::lightmap_get_probe_capture_points(RID p_lightmap) const {
- Lightmap *lm = lightmap_owner.getornull(p_lightmap);
+ Lightmap *lm = lightmap_owner.get_or_null(p_lightmap);
ERR_FAIL_COND_V(!lm, PackedVector3Array());
return lm->points;
}
PackedColorArray RendererStorageRD::lightmap_get_probe_capture_sh(RID p_lightmap) const {
- Lightmap *lm = lightmap_owner.getornull(p_lightmap);
+ Lightmap *lm = lightmap_owner.get_or_null(p_lightmap);
ERR_FAIL_COND_V(!lm, PackedColorArray());
return lm->point_sh;
}
PackedInt32Array RendererStorageRD::lightmap_get_probe_capture_tetrahedra(RID p_lightmap) const {
- Lightmap *lm = lightmap_owner.getornull(p_lightmap);
+ Lightmap *lm = lightmap_owner.get_or_null(p_lightmap);
ERR_FAIL_COND_V(!lm, PackedInt32Array());
return lm->tetrahedra;
}
PackedInt32Array RendererStorageRD::lightmap_get_probe_capture_bsp_tree(RID p_lightmap) const {
- Lightmap *lm = lightmap_owner.getornull(p_lightmap);
+ Lightmap *lm = lightmap_owner.get_or_null(p_lightmap);
ERR_FAIL_COND_V(!lm, PackedInt32Array());
return lm->bsp_tree;
}
@@ -6868,7 +6867,7 @@ void RendererStorageRD::lightmap_set_probe_capture_update_speed(float p_speed) {
}
void RendererStorageRD::lightmap_tap_sh_light(RID p_lightmap, const Vector3 &p_point, Color *r_sh) {
- Lightmap *lm = lightmap_owner.getornull(p_lightmap);
+ Lightmap *lm = lightmap_owner.get_or_null(p_lightmap);
ERR_FAIL_COND(!lm);
for (int i = 0; i < 9; i++) {
@@ -6918,13 +6917,13 @@ void RendererStorageRD::lightmap_tap_sh_light(RID p_lightmap, const Vector3 &p_p
}
bool RendererStorageRD::lightmap_is_interior(RID p_lightmap) const {
- const Lightmap *lm = lightmap_owner.getornull(p_lightmap);
+ const Lightmap *lm = lightmap_owner.get_or_null(p_lightmap);
ERR_FAIL_COND_V(!lm, false);
return lm->interior;
}
AABB RendererStorageRD::lightmap_get_aabb(RID p_lightmap) const {
- const Lightmap *lm = lightmap_owner.getornull(p_lightmap);
+ const Lightmap *lm = lightmap_owner.get_or_null(p_lightmap);
ERR_FAIL_COND_V(!lm, AABB());
return lm->bounds;
}
@@ -6964,7 +6963,7 @@ void RendererStorageRD::_update_render_target(RenderTarget *rt) {
//create a placeholder until updated
rt->texture = texture_allocate();
texture_2d_placeholder_initialize(rt->texture);
- Texture *tex = texture_owner.getornull(rt->texture);
+ Texture *tex = texture_owner.get_or_null(rt->texture);
tex->is_render_target = true;
}
@@ -7011,7 +7010,7 @@ void RendererStorageRD::_update_render_target(RenderTarget *rt) {
{ //update texture
- Texture *tex = texture_owner.getornull(rt->texture);
+ Texture *tex = texture_owner.get_or_null(rt->texture);
//free existing textures
if (RD::get_singleton()->texture_is_valid(tex->rd_texture)) {
@@ -7118,7 +7117,7 @@ void RendererStorageRD::render_target_set_position(RID p_render_target, int p_x,
}
void RendererStorageRD::render_target_set_size(RID p_render_target, int p_width, int p_height, uint32_t p_view_count) {
- RenderTarget *rt = render_target_owner.getornull(p_render_target);
+ RenderTarget *rt = render_target_owner.get_or_null(p_render_target);
ERR_FAIL_COND(!rt);
if (rt->size.x != p_width || rt->size.y != p_height || rt->view_count != p_view_count) {
rt->size.x = p_width;
@@ -7129,7 +7128,7 @@ void RendererStorageRD::render_target_set_size(RID p_render_target, int p_width,
}
RID RendererStorageRD::render_target_get_texture(RID p_render_target) {
- RenderTarget *rt = render_target_owner.getornull(p_render_target);
+ RenderTarget *rt = render_target_owner.get_or_null(p_render_target);
ERR_FAIL_COND_V(!rt, RID());
return rt->texture;
@@ -7139,53 +7138,53 @@ void RendererStorageRD::render_target_set_external_texture(RID p_render_target,
}
void RendererStorageRD::render_target_set_flag(RID p_render_target, RenderTargetFlags p_flag, bool p_value) {
- RenderTarget *rt = render_target_owner.getornull(p_render_target);
+ RenderTarget *rt = render_target_owner.get_or_null(p_render_target);
ERR_FAIL_COND(!rt);
rt->flags[p_flag] = p_value;
_update_render_target(rt);
}
bool RendererStorageRD::render_target_was_used(RID p_render_target) {
- RenderTarget *rt = render_target_owner.getornull(p_render_target);
+ RenderTarget *rt = render_target_owner.get_or_null(p_render_target);
ERR_FAIL_COND_V(!rt, false);
return rt->was_used;
}
void RendererStorageRD::render_target_set_as_unused(RID p_render_target) {
- RenderTarget *rt = render_target_owner.getornull(p_render_target);
+ RenderTarget *rt = render_target_owner.get_or_null(p_render_target);
ERR_FAIL_COND(!rt);
rt->was_used = false;
}
Size2 RendererStorageRD::render_target_get_size(RID p_render_target) {
- RenderTarget *rt = render_target_owner.getornull(p_render_target);
+ RenderTarget *rt = render_target_owner.get_or_null(p_render_target);
ERR_FAIL_COND_V(!rt, Size2());
return rt->size;
}
RID RendererStorageRD::render_target_get_rd_framebuffer(RID p_render_target) {
- RenderTarget *rt = render_target_owner.getornull(p_render_target);
+ RenderTarget *rt = render_target_owner.get_or_null(p_render_target);
ERR_FAIL_COND_V(!rt, RID());
return rt->framebuffer;
}
RID RendererStorageRD::render_target_get_rd_texture(RID p_render_target) {
- RenderTarget *rt = render_target_owner.getornull(p_render_target);
+ RenderTarget *rt = render_target_owner.get_or_null(p_render_target);
ERR_FAIL_COND_V(!rt, RID());
return rt->color;
}
RID RendererStorageRD::render_target_get_rd_backbuffer(RID p_render_target) {
- RenderTarget *rt = render_target_owner.getornull(p_render_target);
+ RenderTarget *rt = render_target_owner.get_or_null(p_render_target);
ERR_FAIL_COND_V(!rt, RID());
return rt->backbuffer;
}
RID RendererStorageRD::render_target_get_rd_backbuffer_framebuffer(RID p_render_target) {
- RenderTarget *rt = render_target_owner.getornull(p_render_target);
+ RenderTarget *rt = render_target_owner.get_or_null(p_render_target);
ERR_FAIL_COND_V(!rt, RID());
if (!rt->backbuffer.is_valid()) {
@@ -7196,32 +7195,32 @@ RID RendererStorageRD::render_target_get_rd_backbuffer_framebuffer(RID p_render_
}
void RendererStorageRD::render_target_request_clear(RID p_render_target, const Color &p_clear_color) {
- RenderTarget *rt = render_target_owner.getornull(p_render_target);
+ RenderTarget *rt = render_target_owner.get_or_null(p_render_target);
ERR_FAIL_COND(!rt);
rt->clear_requested = true;
rt->clear_color = p_clear_color;
}
bool RendererStorageRD::render_target_is_clear_requested(RID p_render_target) {
- RenderTarget *rt = render_target_owner.getornull(p_render_target);
+ RenderTarget *rt = render_target_owner.get_or_null(p_render_target);
ERR_FAIL_COND_V(!rt, false);
return rt->clear_requested;
}
Color RendererStorageRD::render_target_get_clear_request_color(RID p_render_target) {
- RenderTarget *rt = render_target_owner.getornull(p_render_target);
+ RenderTarget *rt = render_target_owner.get_or_null(p_render_target);
ERR_FAIL_COND_V(!rt, Color());
return rt->clear_color;
}
void RendererStorageRD::render_target_disable_clear_request(RID p_render_target) {
- RenderTarget *rt = render_target_owner.getornull(p_render_target);
+ RenderTarget *rt = render_target_owner.get_or_null(p_render_target);
ERR_FAIL_COND(!rt);
rt->clear_requested = false;
}
void RendererStorageRD::render_target_do_clear_request(RID p_render_target) {
- RenderTarget *rt = render_target_owner.getornull(p_render_target);
+ RenderTarget *rt = render_target_owner.get_or_null(p_render_target);
ERR_FAIL_COND(!rt);
if (!rt->clear_requested) {
return;
@@ -7234,7 +7233,7 @@ void RendererStorageRD::render_target_do_clear_request(RID p_render_target) {
}
void RendererStorageRD::render_target_set_sdf_size_and_scale(RID p_render_target, RS::ViewportSDFOversize p_size, RS::ViewportSDFScale p_scale) {
- RenderTarget *rt = render_target_owner.getornull(p_render_target);
+ RenderTarget *rt = render_target_owner.get_or_null(p_render_target);
ERR_FAIL_COND(!rt);
if (rt->sdf_oversize == p_size && rt->sdf_scale == p_scale) {
return;
@@ -7276,28 +7275,28 @@ Rect2i RendererStorageRD::_render_target_get_sdf_rect(const RenderTarget *rt) co
}
Rect2i RendererStorageRD::render_target_get_sdf_rect(RID p_render_target) const {
- const RenderTarget *rt = render_target_owner.getornull(p_render_target);
+ const RenderTarget *rt = render_target_owner.get_or_null(p_render_target);
ERR_FAIL_COND_V(!rt, Rect2i());
return _render_target_get_sdf_rect(rt);
}
void RendererStorageRD::render_target_mark_sdf_enabled(RID p_render_target, bool p_enabled) {
- RenderTarget *rt = render_target_owner.getornull(p_render_target);
+ RenderTarget *rt = render_target_owner.get_or_null(p_render_target);
ERR_FAIL_COND(!rt);
rt->sdf_enabled = p_enabled;
}
bool RendererStorageRD::render_target_is_sdf_enabled(RID p_render_target) const {
- const RenderTarget *rt = render_target_owner.getornull(p_render_target);
+ const RenderTarget *rt = render_target_owner.get_or_null(p_render_target);
ERR_FAIL_COND_V(!rt, false);
return rt->sdf_enabled;
}
RID RendererStorageRD::render_target_get_sdf_texture(RID p_render_target) {
- RenderTarget *rt = render_target_owner.getornull(p_render_target);
+ RenderTarget *rt = render_target_owner.get_or_null(p_render_target);
ERR_FAIL_COND_V(!rt, RID());
if (rt->sdf_buffer_read.is_null()) {
// no texture, create a dummy one for the 2D uniform set
@@ -7432,7 +7431,7 @@ void RendererStorageRD::_render_target_clear_sdf(RenderTarget *rt) {
}
RID RendererStorageRD::render_target_get_sdf_framebuffer(RID p_render_target) {
- RenderTarget *rt = render_target_owner.getornull(p_render_target);
+ RenderTarget *rt = render_target_owner.get_or_null(p_render_target);
ERR_FAIL_COND_V(!rt, RID());
if (rt->sdf_buffer_write_fb.is_null()) {
@@ -7442,7 +7441,7 @@ RID RendererStorageRD::render_target_get_sdf_framebuffer(RID p_render_target) {
return rt->sdf_buffer_write_fb;
}
void RendererStorageRD::render_target_sdf_process(RID p_render_target) {
- RenderTarget *rt = render_target_owner.getornull(p_render_target);
+ RenderTarget *rt = render_target_owner.get_or_null(p_render_target);
ERR_FAIL_COND(!rt);
ERR_FAIL_COND(rt->sdf_buffer_write_fb.is_null());
@@ -7517,7 +7516,7 @@ void RendererStorageRD::render_target_sdf_process(RID p_render_target) {
}
void RendererStorageRD::render_target_copy_to_back_buffer(RID p_render_target, const Rect2i &p_region, bool p_gen_mipmaps) {
- RenderTarget *rt = render_target_owner.getornull(p_render_target);
+ RenderTarget *rt = render_target_owner.get_or_null(p_render_target);
ERR_FAIL_COND(!rt);
if (!rt->backbuffer.is_valid()) {
_create_render_target_backbuffer(rt);
@@ -7557,7 +7556,7 @@ void RendererStorageRD::render_target_copy_to_back_buffer(RID p_render_target, c
}
void RendererStorageRD::render_target_clear_back_buffer(RID p_render_target, const Rect2i &p_region, const Color &p_color) {
- RenderTarget *rt = render_target_owner.getornull(p_render_target);
+ RenderTarget *rt = render_target_owner.get_or_null(p_render_target);
ERR_FAIL_COND(!rt);
if (!rt->backbuffer.is_valid()) {
_create_render_target_backbuffer(rt);
@@ -7578,7 +7577,7 @@ void RendererStorageRD::render_target_clear_back_buffer(RID p_render_target, con
}
void RendererStorageRD::render_target_gen_back_buffer_mipmaps(RID p_render_target, const Rect2i &p_region) {
- RenderTarget *rt = render_target_owner.getornull(p_render_target);
+ RenderTarget *rt = render_target_owner.get_or_null(p_render_target);
ERR_FAIL_COND(!rt);
if (!rt->backbuffer.is_valid()) {
_create_render_target_backbuffer(rt);
@@ -7610,66 +7609,66 @@ void RendererStorageRD::render_target_gen_back_buffer_mipmaps(RID p_render_targe
}
RID RendererStorageRD::render_target_get_framebuffer_uniform_set(RID p_render_target) {
- RenderTarget *rt = render_target_owner.getornull(p_render_target);
+ RenderTarget *rt = render_target_owner.get_or_null(p_render_target);
ERR_FAIL_COND_V(!rt, RID());
return rt->framebuffer_uniform_set;
}
RID RendererStorageRD::render_target_get_backbuffer_uniform_set(RID p_render_target) {
- RenderTarget *rt = render_target_owner.getornull(p_render_target);
+ RenderTarget *rt = render_target_owner.get_or_null(p_render_target);
ERR_FAIL_COND_V(!rt, RID());
return rt->backbuffer_uniform_set;
}
void RendererStorageRD::render_target_set_framebuffer_uniform_set(RID p_render_target, RID p_uniform_set) {
- RenderTarget *rt = render_target_owner.getornull(p_render_target);
+ RenderTarget *rt = render_target_owner.get_or_null(p_render_target);
ERR_FAIL_COND(!rt);
rt->framebuffer_uniform_set = p_uniform_set;
}
void RendererStorageRD::render_target_set_backbuffer_uniform_set(RID p_render_target, RID p_uniform_set) {
- RenderTarget *rt = render_target_owner.getornull(p_render_target);
+ RenderTarget *rt = render_target_owner.get_or_null(p_render_target);
ERR_FAIL_COND(!rt);
rt->backbuffer_uniform_set = p_uniform_set;
}
void RendererStorageRD::base_update_dependency(RID p_base, DependencyTracker *p_instance) {
if (mesh_owner.owns(p_base)) {
- Mesh *mesh = mesh_owner.getornull(p_base);
+ Mesh *mesh = mesh_owner.get_or_null(p_base);
p_instance->update_dependency(&mesh->dependency);
} else if (multimesh_owner.owns(p_base)) {
- MultiMesh *multimesh = multimesh_owner.getornull(p_base);
+ MultiMesh *multimesh = multimesh_owner.get_or_null(p_base);
p_instance->update_dependency(&multimesh->dependency);
if (multimesh->mesh.is_valid()) {
base_update_dependency(multimesh->mesh, p_instance);
}
} else if (reflection_probe_owner.owns(p_base)) {
- ReflectionProbe *rp = reflection_probe_owner.getornull(p_base);
+ ReflectionProbe *rp = reflection_probe_owner.get_or_null(p_base);
p_instance->update_dependency(&rp->dependency);
} else if (decal_owner.owns(p_base)) {
- Decal *decal = decal_owner.getornull(p_base);
+ Decal *decal = decal_owner.get_or_null(p_base);
p_instance->update_dependency(&decal->dependency);
} else if (voxel_gi_owner.owns(p_base)) {
- VoxelGI *gip = voxel_gi_owner.getornull(p_base);
+ VoxelGI *gip = voxel_gi_owner.get_or_null(p_base);
p_instance->update_dependency(&gip->dependency);
} else if (lightmap_owner.owns(p_base)) {
- Lightmap *lm = lightmap_owner.getornull(p_base);
+ Lightmap *lm = lightmap_owner.get_or_null(p_base);
p_instance->update_dependency(&lm->dependency);
} else if (light_owner.owns(p_base)) {
- Light *l = light_owner.getornull(p_base);
+ Light *l = light_owner.get_or_null(p_base);
p_instance->update_dependency(&l->dependency);
} else if (particles_owner.owns(p_base)) {
- Particles *p = particles_owner.getornull(p_base);
+ Particles *p = particles_owner.get_or_null(p_base);
p_instance->update_dependency(&p->dependency);
} else if (particles_collision_owner.owns(p_base)) {
- ParticlesCollision *pc = particles_collision_owner.getornull(p_base);
+ ParticlesCollision *pc = particles_collision_owner.get_or_null(p_base);
p_instance->update_dependency(&pc->dependency);
} else if (visibility_notifier_owner.owns(p_base)) {
- VisibilityNotifier *vn = visibility_notifier_owner.getornull(p_base);
+ VisibilityNotifier *vn = visibility_notifier_owner.get_or_null(p_base);
p_instance->update_dependency(&vn->dependency);
}
}
void RendererStorageRD::skeleton_update_dependency(RID p_skeleton, DependencyTracker *p_instance) {
- Skeleton *skeleton = skeleton_owner.getornull(p_skeleton);
+ Skeleton *skeleton = skeleton_owner.get_or_null(p_skeleton);
ERR_FAIL_COND(!skeleton);
p_instance->update_dependency(&skeleton->dependency);
@@ -7775,7 +7774,7 @@ void RendererStorageRD::_update_decal_atlas() {
while ((K = decal_atlas.textures.next(K))) {
DecalAtlas::SortItem &si = itemsv.write[idx];
- Texture *src_tex = texture_owner.getornull(*K);
+ Texture *src_tex = texture_owner.get_or_null(*K);
si.size.width = (src_tex->width / border) + 1;
si.size.height = (src_tex->height / border) + 1;
@@ -7924,7 +7923,7 @@ void RendererStorageRD::_update_decal_atlas() {
const RID *K = nullptr;
while ((K = decal_atlas.textures.next(K))) {
DecalAtlas::Texture *t = decal_atlas.textures.getptr(*K);
- Texture *src_tex = texture_owner.getornull(*K);
+ Texture *src_tex = texture_owner.get_or_null(*K);
effects->copy_to_atlas_fb(src_tex->rd_texture, mm.fb, t->uv_rect, draw_list, false, t->panorama_to_dp_users > 0);
}
@@ -8340,7 +8339,7 @@ void RendererStorageRD::global_variable_set(const StringName &p_name, const Vari
} else {
//texture
for (Set<RID>::Element *E = gv.texture_materials.front(); E; E = E->next()) {
- Material *material = material_owner.getornull(E->get());
+ Material *material = material_owner.get_or_null(E->get());
ERR_CONTINUE(!material);
_material_queue_update(material, false, true);
}
@@ -8371,7 +8370,7 @@ void RendererStorageRD::global_variable_set_override(const StringName &p_name, c
} else {
//texture
for (Set<RID>::Element *E = gv.texture_materials.front(); E; E = E->next()) {
- Material *material = material_owner.getornull(E->get());
+ Material *material = material_owner.get_or_null(E->get());
ERR_CONTINUE(!material);
_material_queue_update(material, false, true);
}
@@ -8582,7 +8581,7 @@ void RendererStorageRD::_update_global_variables() {
// only happens in the case of a buffer variable added or removed,
// so not often.
for (const RID &E : global_variables.materials_using_buffer) {
- Material *material = material_owner.getornull(E);
+ Material *material = material_owner.get_or_null(E);
ERR_CONTINUE(!material); //wtf
_material_queue_update(material, true, false);
@@ -8595,7 +8594,7 @@ void RendererStorageRD::_update_global_variables() {
// only happens in the case of a buffer variable added or removed,
// so not often.
for (const RID &E : global_variables.materials_using_texture) {
- Material *material = material_owner.getornull(E);
+ Material *material = material_owner.get_or_null(E);
ERR_CONTINUE(!material); //wtf
_material_queue_update(material, false, true);
@@ -8640,7 +8639,7 @@ bool RendererStorageRD::has_os_feature(const String &p_feature) const {
bool RendererStorageRD::free(RID p_rid) {
if (texture_owner.owns(p_rid)) {
- Texture *t = texture_owner.getornull(p_rid);
+ Texture *t = texture_owner.get_or_null(p_rid);
ERR_FAIL_COND_V(!t, false);
ERR_FAIL_COND_V(t->is_render_target, false);
@@ -8654,7 +8653,7 @@ bool RendererStorageRD::free(RID p_rid) {
}
if (t->is_proxy && t->proxy_to.is_valid()) {
- Texture *proxy_to = texture_owner.getornull(t->proxy_to);
+ Texture *proxy_to = texture_owner.get_or_null(t->proxy_to);
if (proxy_to) {
proxy_to->proxies.erase(p_rid);
}
@@ -8666,7 +8665,7 @@ bool RendererStorageRD::free(RID p_rid) {
}
for (int i = 0; i < t->proxies.size(); i++) {
- Texture *p = texture_owner.getornull(t->proxies[i]);
+ Texture *p = texture_owner.get_or_null(t->proxies[i]);
ERR_CONTINUE(!p);
p->proxy_to = RID();
p->rd_texture = RID();
@@ -8681,7 +8680,7 @@ bool RendererStorageRD::free(RID p_rid) {
} else if (canvas_texture_owner.owns(p_rid)) {
canvas_texture_owner.free(p_rid);
} else if (shader_owner.owns(p_rid)) {
- Shader *shader = shader_owner.getornull(p_rid);
+ Shader *shader = shader_owner.get_or_null(p_rid);
//make material unreference this
while (shader->owners.size()) {
material_set_shader(shader->owners.front()->get()->self, RID());
@@ -8693,7 +8692,7 @@ bool RendererStorageRD::free(RID p_rid) {
shader_owner.free(p_rid);
} else if (material_owner.owns(p_rid)) {
- Material *material = material_owner.getornull(p_rid);
+ Material *material = material_owner.get_or_null(p_rid);
material_set_shader(p_rid, RID()); //clean up shader
material->dependency.deleted_notify(p_rid);
@@ -8701,7 +8700,7 @@ bool RendererStorageRD::free(RID p_rid) {
} else if (mesh_owner.owns(p_rid)) {
mesh_clear(p_rid);
mesh_set_shadow_mesh(p_rid, RID());
- Mesh *mesh = mesh_owner.getornull(p_rid);
+ Mesh *mesh = mesh_owner.get_or_null(p_rid);
mesh->dependency.deleted_notify(p_rid);
if (mesh->instances.size()) {
ERR_PRINT("deleting mesh with active instances");
@@ -8715,7 +8714,7 @@ bool RendererStorageRD::free(RID p_rid) {
}
mesh_owner.free(p_rid);
} else if (mesh_instance_owner.owns(p_rid)) {
- MeshInstance *mi = mesh_instance_owner.getornull(p_rid);
+ MeshInstance *mi = mesh_instance_owner.get_or_null(p_rid);
_mesh_instance_clear(mi);
mi->mesh->instances.erase(mi->I);
mi->I = nullptr;
@@ -8725,21 +8724,21 @@ bool RendererStorageRD::free(RID p_rid) {
} else if (multimesh_owner.owns(p_rid)) {
_update_dirty_multimeshes();
multimesh_allocate_data(p_rid, 0, RS::MULTIMESH_TRANSFORM_2D);
- MultiMesh *multimesh = multimesh_owner.getornull(p_rid);
+ MultiMesh *multimesh = multimesh_owner.get_or_null(p_rid);
multimesh->dependency.deleted_notify(p_rid);
multimesh_owner.free(p_rid);
} else if (skeleton_owner.owns(p_rid)) {
_update_dirty_skeletons();
skeleton_allocate_data(p_rid, 0);
- Skeleton *skeleton = skeleton_owner.getornull(p_rid);
+ Skeleton *skeleton = skeleton_owner.get_or_null(p_rid);
skeleton->dependency.deleted_notify(p_rid);
skeleton_owner.free(p_rid);
} else if (reflection_probe_owner.owns(p_rid)) {
- ReflectionProbe *reflection_probe = reflection_probe_owner.getornull(p_rid);
+ ReflectionProbe *reflection_probe = reflection_probe_owner.get_or_null(p_rid);
reflection_probe->dependency.deleted_notify(p_rid);
reflection_probe_owner.free(p_rid);
} else if (decal_owner.owns(p_rid)) {
- Decal *decal = decal_owner.getornull(p_rid);
+ Decal *decal = decal_owner.get_or_null(p_rid);
for (int i = 0; i < RS::DECAL_TEXTURE_MAX; i++) {
if (decal->textures[i].is_valid() && texture_owner.owns(decal->textures[i])) {
texture_remove_from_decal_atlas(decal->textures[i]);
@@ -8749,30 +8748,30 @@ bool RendererStorageRD::free(RID p_rid) {
decal_owner.free(p_rid);
} else if (voxel_gi_owner.owns(p_rid)) {
voxel_gi_allocate_data(p_rid, Transform3D(), AABB(), Vector3i(), Vector<uint8_t>(), Vector<uint8_t>(), Vector<uint8_t>(), Vector<int>()); //deallocate
- VoxelGI *voxel_gi = voxel_gi_owner.getornull(p_rid);
+ VoxelGI *voxel_gi = voxel_gi_owner.get_or_null(p_rid);
voxel_gi->dependency.deleted_notify(p_rid);
voxel_gi_owner.free(p_rid);
} else if (lightmap_owner.owns(p_rid)) {
lightmap_set_textures(p_rid, RID(), false);
- Lightmap *lightmap = lightmap_owner.getornull(p_rid);
+ Lightmap *lightmap = lightmap_owner.get_or_null(p_rid);
lightmap->dependency.deleted_notify(p_rid);
lightmap_owner.free(p_rid);
} else if (light_owner.owns(p_rid)) {
light_set_projector(p_rid, RID()); //clear projector
// delete the texture
- Light *light = light_owner.getornull(p_rid);
+ Light *light = light_owner.get_or_null(p_rid);
light->dependency.deleted_notify(p_rid);
light_owner.free(p_rid);
} else if (particles_owner.owns(p_rid)) {
update_particles();
- Particles *particles = particles_owner.getornull(p_rid);
+ Particles *particles = particles_owner.get_or_null(p_rid);
particles->dependency.deleted_notify(p_rid);
_particles_free_data(particles);
particles_owner.free(p_rid);
} else if (particles_collision_owner.owns(p_rid)) {
- ParticlesCollision *particles_collision = particles_collision_owner.getornull(p_rid);
+ ParticlesCollision *particles_collision = particles_collision_owner.get_or_null(p_rid);
if (particles_collision->heightfield_texture.is_valid()) {
RD::get_singleton()->free(particles_collision->heightfield_texture);
@@ -8780,18 +8779,18 @@ bool RendererStorageRD::free(RID p_rid) {
particles_collision->dependency.deleted_notify(p_rid);
particles_collision_owner.free(p_rid);
} else if (visibility_notifier_owner.owns(p_rid)) {
- VisibilityNotifier *vn = visibility_notifier_owner.getornull(p_rid);
+ VisibilityNotifier *vn = visibility_notifier_owner.get_or_null(p_rid);
vn->dependency.deleted_notify(p_rid);
visibility_notifier_owner.free(p_rid);
} else if (particles_collision_instance_owner.owns(p_rid)) {
particles_collision_instance_owner.free(p_rid);
} else if (render_target_owner.owns(p_rid)) {
- RenderTarget *rt = render_target_owner.getornull(p_rid);
+ RenderTarget *rt = render_target_owner.get_or_null(p_rid);
_clear_render_target(rt);
if (rt->texture.is_valid()) {
- Texture *tex = texture_owner.getornull(rt->texture);
+ Texture *tex = texture_owner.get_or_null(rt->texture);
tex->is_render_target = false;
free(rt->texture);
}
diff --git a/servers/rendering/renderer_rd/renderer_storage_rd.h b/servers/rendering/renderer_rd/renderer_storage_rd.h
index 02395a884f..d56afcc448 100644
--- a/servers/rendering/renderer_rd/renderer_storage_rd.h
+++ b/servers/rendering/renderer_rd/renderer_storage_rd.h
@@ -621,7 +621,6 @@ private:
float color[4];
float custom[3];
float lifetime;
- uint32_t pad[3];
};
struct ParticlesFrameParams {
@@ -1351,7 +1350,7 @@ public:
if (p_texture.is_null()) {
return RID();
}
- Texture *tex = texture_owner.getornull(p_texture);
+ Texture *tex = texture_owner.get_or_null(p_texture);
if (!tex) {
return RID();
@@ -1363,7 +1362,7 @@ public:
if (p_texture.is_null()) {
return Size2i();
}
- Texture *tex = texture_owner.getornull(p_texture);
+ Texture *tex = texture_owner.get_or_null(p_texture);
if (!tex) {
return Size2i();
@@ -1431,12 +1430,12 @@ public:
void material_set_data_request_function(ShaderType p_shader_type, MaterialDataRequestFunction p_function);
_FORCE_INLINE_ uint32_t material_get_shader_id(RID p_material) {
- Material *material = material_owner.getornull(p_material);
+ Material *material = material_owner.get_or_null(p_material);
return material->shader_id;
}
_FORCE_INLINE_ MaterialData *material_get_data(RID p_material, ShaderType p_shader_type) {
- Material *material = material_owner.getornull(p_material);
+ Material *material = material_owner.get_or_null(p_material);
if (!material || material->shader_type != p_shader_type) {
return nullptr;
} else {
@@ -1489,7 +1488,7 @@ public:
virtual void update_mesh_instances();
_FORCE_INLINE_ const RID *mesh_get_surface_count_and_materials(RID p_mesh, uint32_t &r_surface_count) {
- Mesh *mesh = mesh_owner.getornull(p_mesh);
+ Mesh *mesh = mesh_owner.get_or_null(p_mesh);
ERR_FAIL_COND_V(!mesh, nullptr);
r_surface_count = mesh->surface_count;
if (r_surface_count == 0) {
@@ -1506,7 +1505,7 @@ public:
}
_FORCE_INLINE_ void *mesh_get_surface(RID p_mesh, uint32_t p_surface_index) {
- Mesh *mesh = mesh_owner.getornull(p_mesh);
+ Mesh *mesh = mesh_owner.get_or_null(p_mesh);
ERR_FAIL_COND_V(!mesh, nullptr);
ERR_FAIL_UNSIGNED_INDEX_V(p_surface_index, mesh->surface_count, nullptr);
@@ -1514,7 +1513,7 @@ public:
}
_FORCE_INLINE_ RID mesh_get_shadow_mesh(RID p_mesh) {
- Mesh *mesh = mesh_owner.getornull(p_mesh);
+ Mesh *mesh = mesh_owner.get_or_null(p_mesh);
ERR_FAIL_COND_V(!mesh, RID());
return mesh->shadow_mesh;
@@ -1600,7 +1599,7 @@ public:
}
_FORCE_INLINE_ void mesh_instance_surface_get_vertex_arrays_and_format(RID p_mesh_instance, uint32_t p_surface_index, uint32_t p_input_mask, RID &r_vertex_array_rd, RD::VertexFormatID &r_vertex_format) {
- MeshInstance *mi = mesh_instance_owner.getornull(p_mesh_instance);
+ MeshInstance *mi = mesh_instance_owner.get_or_null(p_mesh_instance);
ERR_FAIL_COND(!mi);
Mesh *mesh = mi->mesh;
ERR_FAIL_UNSIGNED_INDEX(p_surface_index, mesh->surface_count);
@@ -1641,7 +1640,7 @@ public:
}
_FORCE_INLINE_ uint32_t mesh_surface_get_render_pass_index(RID p_mesh, uint32_t p_surface_index, uint64_t p_render_pass, uint32_t *r_index) {
- Mesh *mesh = mesh_owner.getornull(p_mesh);
+ Mesh *mesh = mesh_owner.get_or_null(p_mesh);
Mesh::Surface *s = mesh->surfaces[p_surface_index];
if (s->render_pass != p_render_pass) {
@@ -1654,7 +1653,7 @@ public:
}
_FORCE_INLINE_ uint32_t mesh_surface_get_multimesh_render_pass_index(RID p_mesh, uint32_t p_surface_index, uint64_t p_render_pass, uint32_t *r_index) {
- Mesh *mesh = mesh_owner.getornull(p_mesh);
+ Mesh *mesh = mesh_owner.get_or_null(p_mesh);
Mesh::Surface *s = mesh->surfaces[p_surface_index];
if (s->multimesh_render_pass != p_render_pass) {
@@ -1667,7 +1666,7 @@ public:
}
_FORCE_INLINE_ uint32_t mesh_surface_get_particles_render_pass_index(RID p_mesh, uint32_t p_surface_index, uint64_t p_render_pass, uint32_t *r_index) {
- Mesh *mesh = mesh_owner.getornull(p_mesh);
+ Mesh *mesh = mesh_owner.get_or_null(p_mesh);
Mesh::Surface *s = mesh->surfaces[p_surface_index];
if (s->particles_render_pass != p_render_pass) {
@@ -1709,22 +1708,22 @@ public:
AABB multimesh_get_aabb(RID p_multimesh) const;
_FORCE_INLINE_ RS::MultimeshTransformFormat multimesh_get_transform_format(RID p_multimesh) const {
- MultiMesh *multimesh = multimesh_owner.getornull(p_multimesh);
+ MultiMesh *multimesh = multimesh_owner.get_or_null(p_multimesh);
return multimesh->xform_format;
}
_FORCE_INLINE_ bool multimesh_uses_colors(RID p_multimesh) const {
- MultiMesh *multimesh = multimesh_owner.getornull(p_multimesh);
+ MultiMesh *multimesh = multimesh_owner.get_or_null(p_multimesh);
return multimesh->uses_colors;
}
_FORCE_INLINE_ bool multimesh_uses_custom_data(RID p_multimesh) const {
- MultiMesh *multimesh = multimesh_owner.getornull(p_multimesh);
+ MultiMesh *multimesh = multimesh_owner.get_or_null(p_multimesh);
return multimesh->uses_custom_data;
}
_FORCE_INLINE_ uint32_t multimesh_get_instances_to_draw(RID p_multimesh) const {
- MultiMesh *multimesh = multimesh_owner.getornull(p_multimesh);
+ MultiMesh *multimesh = multimesh_owner.get_or_null(p_multimesh);
if (multimesh->visible_instances >= 0) {
return multimesh->visible_instances;
}
@@ -1732,7 +1731,7 @@ public:
}
_FORCE_INLINE_ RID multimesh_get_3d_uniform_set(RID p_multimesh, RID p_shader, uint32_t p_set) const {
- MultiMesh *multimesh = multimesh_owner.getornull(p_multimesh);
+ MultiMesh *multimesh = multimesh_owner.get_or_null(p_multimesh);
if (!multimesh->uniform_set_3d.is_valid()) {
Vector<RD::Uniform> uniforms;
RD::Uniform u;
@@ -1747,7 +1746,7 @@ public:
}
_FORCE_INLINE_ RID multimesh_get_2d_uniform_set(RID p_multimesh, RID p_shader, uint32_t p_set) const {
- MultiMesh *multimesh = multimesh_owner.getornull(p_multimesh);
+ MultiMesh *multimesh = multimesh_owner.get_or_null(p_multimesh);
if (!multimesh->uniform_set_2d.is_valid()) {
Vector<RD::Uniform> uniforms;
RD::Uniform u;
@@ -1776,11 +1775,11 @@ public:
Transform2D skeleton_bone_get_transform_2d(RID p_skeleton, int p_bone) const;
_FORCE_INLINE_ bool skeleton_is_valid(RID p_skeleton) {
- return skeleton_owner.getornull(p_skeleton) != nullptr;
+ return skeleton_owner.get_or_null(p_skeleton) != nullptr;
}
_FORCE_INLINE_ RID skeleton_get_3d_uniform_set(RID p_skeleton, RID p_shader, uint32_t p_set) const {
- Skeleton *skeleton = skeleton_owner.getornull(p_skeleton);
+ Skeleton *skeleton = skeleton_owner.get_or_null(p_skeleton);
ERR_FAIL_COND_V(!skeleton, RID());
ERR_FAIL_COND_V(skeleton->size == 0, RID());
if (skeleton->use_2d) {
@@ -1834,7 +1833,7 @@ public:
RS::LightOmniShadowMode light_omni_get_shadow_mode(RID p_light);
_FORCE_INLINE_ RS::LightType light_get_type(RID p_light) const {
- const Light *light = light_owner.getornull(p_light);
+ const Light *light = light_owner.get_or_null(p_light);
ERR_FAIL_COND_V(!light, RS::LIGHT_DIRECTIONAL);
return light->type;
@@ -1842,70 +1841,70 @@ public:
AABB light_get_aabb(RID p_light) const;
_FORCE_INLINE_ float light_get_param(RID p_light, RS::LightParam p_param) {
- const Light *light = light_owner.getornull(p_light);
+ const Light *light = light_owner.get_or_null(p_light);
ERR_FAIL_COND_V(!light, 0);
return light->param[p_param];
}
_FORCE_INLINE_ RID light_get_projector(RID p_light) {
- const Light *light = light_owner.getornull(p_light);
+ const Light *light = light_owner.get_or_null(p_light);
ERR_FAIL_COND_V(!light, RID());
return light->projector;
}
_FORCE_INLINE_ Color light_get_color(RID p_light) {
- const Light *light = light_owner.getornull(p_light);
+ const Light *light = light_owner.get_or_null(p_light);
ERR_FAIL_COND_V(!light, Color());
return light->color;
}
_FORCE_INLINE_ Color light_get_shadow_color(RID p_light) {
- const Light *light = light_owner.getornull(p_light);
+ const Light *light = light_owner.get_or_null(p_light);
ERR_FAIL_COND_V(!light, Color());
return light->shadow_color;
}
_FORCE_INLINE_ uint32_t light_get_cull_mask(RID p_light) {
- const Light *light = light_owner.getornull(p_light);
+ const Light *light = light_owner.get_or_null(p_light);
ERR_FAIL_COND_V(!light, 0);
return light->cull_mask;
}
_FORCE_INLINE_ bool light_has_shadow(RID p_light) const {
- const Light *light = light_owner.getornull(p_light);
+ const Light *light = light_owner.get_or_null(p_light);
ERR_FAIL_COND_V(!light, RS::LIGHT_DIRECTIONAL);
return light->shadow;
}
_FORCE_INLINE_ bool light_has_projector(RID p_light) const {
- const Light *light = light_owner.getornull(p_light);
+ const Light *light = light_owner.get_or_null(p_light);
ERR_FAIL_COND_V(!light, RS::LIGHT_DIRECTIONAL);
return texture_owner.owns(light->projector);
}
_FORCE_INLINE_ bool light_is_negative(RID p_light) const {
- const Light *light = light_owner.getornull(p_light);
+ const Light *light = light_owner.get_or_null(p_light);
ERR_FAIL_COND_V(!light, RS::LIGHT_DIRECTIONAL);
return light->negative;
}
_FORCE_INLINE_ float light_get_transmittance_bias(RID p_light) const {
- const Light *light = light_owner.getornull(p_light);
+ const Light *light = light_owner.get_or_null(p_light);
ERR_FAIL_COND_V(!light, 0.0);
return light->param[RS::LIGHT_PARAM_TRANSMITTANCE_BIAS];
}
_FORCE_INLINE_ float light_get_shadow_volumetric_fog_fade(RID p_light) const {
- const Light *light = light_owner.getornull(p_light);
+ const Light *light = light_owner.get_or_null(p_light);
ERR_FAIL_COND_V(!light, 0.0);
return light->param[RS::LIGHT_PARAM_SHADOW_VOLUMETRIC_FOG_FADE];
@@ -1972,62 +1971,62 @@ public:
virtual void decal_set_normal_fade(RID p_decal, float p_fade);
_FORCE_INLINE_ Vector3 decal_get_extents(RID p_decal) {
- const Decal *decal = decal_owner.getornull(p_decal);
+ const Decal *decal = decal_owner.get_or_null(p_decal);
return decal->extents;
}
_FORCE_INLINE_ RID decal_get_texture(RID p_decal, RS::DecalTexture p_texture) {
- const Decal *decal = decal_owner.getornull(p_decal);
+ const Decal *decal = decal_owner.get_or_null(p_decal);
return decal->textures[p_texture];
}
_FORCE_INLINE_ Color decal_get_modulate(RID p_decal) {
- const Decal *decal = decal_owner.getornull(p_decal);
+ const Decal *decal = decal_owner.get_or_null(p_decal);
return decal->modulate;
}
_FORCE_INLINE_ float decal_get_emission_energy(RID p_decal) {
- const Decal *decal = decal_owner.getornull(p_decal);
+ const Decal *decal = decal_owner.get_or_null(p_decal);
return decal->emission_energy;
}
_FORCE_INLINE_ float decal_get_albedo_mix(RID p_decal) {
- const Decal *decal = decal_owner.getornull(p_decal);
+ const Decal *decal = decal_owner.get_or_null(p_decal);
return decal->albedo_mix;
}
_FORCE_INLINE_ uint32_t decal_get_cull_mask(RID p_decal) {
- const Decal *decal = decal_owner.getornull(p_decal);
+ const Decal *decal = decal_owner.get_or_null(p_decal);
return decal->cull_mask;
}
_FORCE_INLINE_ float decal_get_upper_fade(RID p_decal) {
- const Decal *decal = decal_owner.getornull(p_decal);
+ const Decal *decal = decal_owner.get_or_null(p_decal);
return decal->upper_fade;
}
_FORCE_INLINE_ float decal_get_lower_fade(RID p_decal) {
- const Decal *decal = decal_owner.getornull(p_decal);
+ const Decal *decal = decal_owner.get_or_null(p_decal);
return decal->lower_fade;
}
_FORCE_INLINE_ float decal_get_normal_fade(RID p_decal) {
- const Decal *decal = decal_owner.getornull(p_decal);
+ const Decal *decal = decal_owner.get_or_null(p_decal);
return decal->normal_fade;
}
_FORCE_INLINE_ bool decal_is_distance_fade_enabled(RID p_decal) {
- const Decal *decal = decal_owner.getornull(p_decal);
+ const Decal *decal = decal_owner.get_or_null(p_decal);
return decal->distance_fade;
}
_FORCE_INLINE_ float decal_get_distance_fade_begin(RID p_decal) {
- const Decal *decal = decal_owner.getornull(p_decal);
+ const Decal *decal = decal_owner.get_or_null(p_decal);
return decal->distance_fade_begin;
}
_FORCE_INLINE_ float decal_get_distance_fade_length(RID p_decal) {
- const Decal *decal = decal_owner.getornull(p_decal);
+ const Decal *decal = decal_owner.get_or_null(p_decal);
return decal->distance_fade_length;
}
@@ -2102,18 +2101,18 @@ public:
return lightmap_probe_capture_update_speed;
}
_FORCE_INLINE_ RID lightmap_get_texture(RID p_lightmap) const {
- const Lightmap *lm = lightmap_owner.getornull(p_lightmap);
+ const Lightmap *lm = lightmap_owner.get_or_null(p_lightmap);
ERR_FAIL_COND_V(!lm, RID());
return lm->light_texture;
}
_FORCE_INLINE_ int32_t lightmap_get_array_index(RID p_lightmap) const {
ERR_FAIL_COND_V(!using_lightmap_array, -1); //only for arrays
- const Lightmap *lm = lightmap_owner.getornull(p_lightmap);
+ const Lightmap *lm = lightmap_owner.get_or_null(p_lightmap);
return lm->array_index;
}
_FORCE_INLINE_ bool lightmap_uses_spherical_harmonics(RID p_lightmap) const {
ERR_FAIL_COND_V(!using_lightmap_array, false); //only for arrays
- const Lightmap *lm = lightmap_owner.getornull(p_lightmap);
+ const Lightmap *lm = lightmap_owner.get_or_null(p_lightmap);
return lm->uses_spherical_harmonics;
}
_FORCE_INLINE_ uint64_t lightmap_array_get_version() const {
@@ -2182,13 +2181,13 @@ public:
virtual bool particles_is_inactive(RID p_particles) const;
_FORCE_INLINE_ RS::ParticlesMode particles_get_mode(RID p_particles) {
- Particles *particles = particles_owner.getornull(p_particles);
+ Particles *particles = particles_owner.get_or_null(p_particles);
ERR_FAIL_COND_V(!particles, RS::PARTICLES_MODE_2D);
return particles->mode;
}
_FORCE_INLINE_ uint32_t particles_get_amount(RID p_particles, uint32_t &r_trail_divisor) {
- Particles *particles = particles_owner.getornull(p_particles);
+ Particles *particles = particles_owner.get_or_null(p_particles);
ERR_FAIL_COND_V(!particles, 0);
if (particles->trails_enabled && particles->trail_bind_poses.size() > 1) {
@@ -2201,21 +2200,21 @@ public:
}
_FORCE_INLINE_ bool particles_has_collision(RID p_particles) {
- Particles *particles = particles_owner.getornull(p_particles);
+ Particles *particles = particles_owner.get_or_null(p_particles);
ERR_FAIL_COND_V(!particles, 0);
return particles->has_collision_cache;
}
_FORCE_INLINE_ uint32_t particles_is_using_local_coords(RID p_particles) {
- Particles *particles = particles_owner.getornull(p_particles);
+ Particles *particles = particles_owner.get_or_null(p_particles);
ERR_FAIL_COND_V(!particles, false);
return particles->use_local_coords;
}
_FORCE_INLINE_ RID particles_get_instance_buffer_uniform_set(RID p_particles, RID p_shader, uint32_t p_set) {
- Particles *particles = particles_owner.getornull(p_particles);
+ Particles *particles = particles_owner.get_or_null(p_particles);
ERR_FAIL_COND_V(!particles, RID());
if (particles->particles_transforms_buffer_uniform_set.is_null()) {
_particles_update_buffers(particles);
diff --git a/servers/rendering/renderer_rd/shader_rd.cpp b/servers/rendering/renderer_rd/shader_rd.cpp
index 82efa1318c..ffaf65ec35 100644
--- a/servers/rendering/renderer_rd/shader_rd.cpp
+++ b/servers/rendering/renderer_rd/shader_rd.cpp
@@ -292,7 +292,7 @@ void ShaderRD::_compile_variant(uint32_t p_variant, Version *p_version) {
}
RS::ShaderNativeSourceCode ShaderRD::version_get_native_source_code(RID p_version) {
- Version *version = version_owner.getornull(p_version);
+ Version *version = version_owner.get_or_null(p_version);
RS::ShaderNativeSourceCode source_code;
ERR_FAIL_COND_V(!version, source_code);
@@ -524,7 +524,7 @@ void ShaderRD::_compile_version(Version *p_version) {
void ShaderRD::version_set_code(RID p_version, const Map<String, String> &p_code, const String &p_uniforms, const String &p_vertex_globals, const String &p_fragment_globals, const Vector<String> &p_custom_defines) {
ERR_FAIL_COND(is_compute);
- Version *version = version_owner.getornull(p_version);
+ Version *version = version_owner.get_or_null(p_version);
ERR_FAIL_COND(!version);
version->vertex_globals = p_vertex_globals.utf8();
version->fragment_globals = p_fragment_globals.utf8();
@@ -549,7 +549,7 @@ void ShaderRD::version_set_code(RID p_version, const Map<String, String> &p_code
void ShaderRD::version_set_compute_code(RID p_version, const Map<String, String> &p_code, const String &p_uniforms, const String &p_compute_globals, const Vector<String> &p_custom_defines) {
ERR_FAIL_COND(!is_compute);
- Version *version = version_owner.getornull(p_version);
+ Version *version = version_owner.get_or_null(p_version);
ERR_FAIL_COND(!version);
version->compute_globals = p_compute_globals.utf8();
@@ -573,7 +573,7 @@ void ShaderRD::version_set_compute_code(RID p_version, const Map<String, String>
}
bool ShaderRD::version_is_valid(RID p_version) {
- Version *version = version_owner.getornull(p_version);
+ Version *version = version_owner.get_or_null(p_version);
ERR_FAIL_COND_V(!version, false);
if (version->dirty) {
@@ -585,7 +585,7 @@ bool ShaderRD::version_is_valid(RID p_version) {
bool ShaderRD::version_free(RID p_version) {
if (version_owner.owns(p_version)) {
- Version *version = version_owner.getornull(p_version);
+ Version *version = version_owner.get_or_null(p_version);
_clear_version(version);
version_owner.free(p_version);
} else {
diff --git a/servers/rendering/renderer_rd/shader_rd.h b/servers/rendering/renderer_rd/shader_rd.h
index 529328f0ed..984b168659 100644
--- a/servers/rendering/renderer_rd/shader_rd.h
+++ b/servers/rendering/renderer_rd/shader_rd.h
@@ -141,7 +141,7 @@ public:
ERR_FAIL_INDEX_V(p_variant, variant_defines.size(), RID());
ERR_FAIL_COND_V(!variants_enabled[p_variant], RID());
- Version *version = version_owner.getornull(p_version);
+ Version *version = version_owner.get_or_null(p_version);
ERR_FAIL_COND_V(!version, RID());
if (version->dirty) {
diff --git a/servers/rendering/renderer_rd/shaders/scene_forward_clustered.glsl b/servers/rendering/renderer_rd/shaders/scene_forward_clustered.glsl
index 8cb56fbc83..f0fb31a457 100644
--- a/servers/rendering/renderer_rd/shaders/scene_forward_clustered.glsl
+++ b/servers/rendering/renderer_rd/shaders/scene_forward_clustered.glsl
@@ -524,7 +524,7 @@ vec4 fog_process(vec3 vertex) {
}
}
- float fog_amount = 1.0 - exp(min(0.0, vertex.z * scene_data.fog_density));
+ float fog_amount = 1.0 - exp(min(0.0, -length(vertex) * scene_data.fog_density));
if (abs(scene_data.fog_height_density) > 0.001) {
float y = (scene_data.camera_matrix * vec4(vertex, 1.0)).y;
diff --git a/servers/rendering/renderer_rd/shaders/scene_forward_mobile.glsl b/servers/rendering/renderer_rd/shaders/scene_forward_mobile.glsl
index c3c4139450..750ec5f00a 100644
--- a/servers/rendering/renderer_rd/shaders/scene_forward_mobile.glsl
+++ b/servers/rendering/renderer_rd/shaders/scene_forward_mobile.glsl
@@ -550,7 +550,7 @@ vec4 fog_process(vec3 vertex) {
}
}
- float fog_amount = 1.0 - exp(min(0.0, vertex.z * scene_data.fog_density));
+ float fog_amount = 1.0 - exp(min(0.0, -length(vertex) * scene_data.fog_density));
if (abs(scene_data.fog_height_density) > 0.001) {
float y = (scene_data.camera_matrix * vec4(vertex, 1.0)).y;
diff --git a/servers/rendering/renderer_scene_cull.cpp b/servers/rendering/renderer_scene_cull.cpp
index cd8014632d..705e72c13d 100644
--- a/servers/rendering/renderer_scene_cull.cpp
+++ b/servers/rendering/renderer_scene_cull.cpp
@@ -47,7 +47,7 @@ void RendererSceneCull::camera_initialize(RID p_rid) {
}
void RendererSceneCull::camera_set_perspective(RID p_camera, float p_fovy_degrees, float p_z_near, float p_z_far) {
- Camera *camera = camera_owner.getornull(p_camera);
+ Camera *camera = camera_owner.get_or_null(p_camera);
ERR_FAIL_COND(!camera);
camera->type = Camera::PERSPECTIVE;
camera->fov = p_fovy_degrees;
@@ -56,7 +56,7 @@ void RendererSceneCull::camera_set_perspective(RID p_camera, float p_fovy_degree
}
void RendererSceneCull::camera_set_orthogonal(RID p_camera, float p_size, float p_z_near, float p_z_far) {
- Camera *camera = camera_owner.getornull(p_camera);
+ Camera *camera = camera_owner.get_or_null(p_camera);
ERR_FAIL_COND(!camera);
camera->type = Camera::ORTHOGONAL;
camera->size = p_size;
@@ -65,7 +65,7 @@ void RendererSceneCull::camera_set_orthogonal(RID p_camera, float p_size, float
}
void RendererSceneCull::camera_set_frustum(RID p_camera, float p_size, Vector2 p_offset, float p_z_near, float p_z_far) {
- Camera *camera = camera_owner.getornull(p_camera);
+ Camera *camera = camera_owner.get_or_null(p_camera);
ERR_FAIL_COND(!camera);
camera->type = Camera::FRUSTUM;
camera->size = p_size;
@@ -75,32 +75,32 @@ void RendererSceneCull::camera_set_frustum(RID p_camera, float p_size, Vector2 p
}
void RendererSceneCull::camera_set_transform(RID p_camera, const Transform3D &p_transform) {
- Camera *camera = camera_owner.getornull(p_camera);
+ Camera *camera = camera_owner.get_or_null(p_camera);
ERR_FAIL_COND(!camera);
camera->transform = p_transform.orthonormalized();
}
void RendererSceneCull::camera_set_cull_mask(RID p_camera, uint32_t p_layers) {
- Camera *camera = camera_owner.getornull(p_camera);
+ Camera *camera = camera_owner.get_or_null(p_camera);
ERR_FAIL_COND(!camera);
camera->visible_layers = p_layers;
}
void RendererSceneCull::camera_set_environment(RID p_camera, RID p_env) {
- Camera *camera = camera_owner.getornull(p_camera);
+ Camera *camera = camera_owner.get_or_null(p_camera);
ERR_FAIL_COND(!camera);
camera->env = p_env;
}
void RendererSceneCull::camera_set_camera_effects(RID p_camera, RID p_fx) {
- Camera *camera = camera_owner.getornull(p_camera);
+ Camera *camera = camera_owner.get_or_null(p_camera);
ERR_FAIL_COND(!camera);
camera->effects = p_fx;
}
void RendererSceneCull::camera_set_use_vertical_aspect(RID p_camera, bool p_enable) {
- Camera *camera = camera_owner.getornull(p_camera);
+ Camera *camera = camera_owner.get_or_null(p_camera);
ERR_FAIL_COND(!camera);
camera->vaspect = p_enable;
}
@@ -354,7 +354,7 @@ RID RendererSceneCull::scenario_allocate() {
void RendererSceneCull::scenario_initialize(RID p_rid) {
scenario_owner.initialize_rid(p_rid);
- Scenario *scenario = scenario_owner.getornull(p_rid);
+ Scenario *scenario = scenario_owner.get_or_null(p_rid);
scenario->self = p_rid;
scenario->reflection_probe_shadow_atlas = scene_render->shadow_atlas_create();
@@ -373,25 +373,25 @@ void RendererSceneCull::scenario_initialize(RID p_rid) {
}
void RendererSceneCull::scenario_set_environment(RID p_scenario, RID p_environment) {
- Scenario *scenario = scenario_owner.getornull(p_scenario);
+ Scenario *scenario = scenario_owner.get_or_null(p_scenario);
ERR_FAIL_COND(!scenario);
scenario->environment = p_environment;
}
void RendererSceneCull::scenario_set_camera_effects(RID p_scenario, RID p_camera_effects) {
- Scenario *scenario = scenario_owner.getornull(p_scenario);
+ Scenario *scenario = scenario_owner.get_or_null(p_scenario);
ERR_FAIL_COND(!scenario);
scenario->camera_effects = p_camera_effects;
}
void RendererSceneCull::scenario_set_fallback_environment(RID p_scenario, RID p_environment) {
- Scenario *scenario = scenario_owner.getornull(p_scenario);
+ Scenario *scenario = scenario_owner.get_or_null(p_scenario);
ERR_FAIL_COND(!scenario);
scenario->fallback_environment = p_environment;
}
void RendererSceneCull::scenario_set_reflection_atlas_size(RID p_scenario, int p_reflection_size, int p_reflection_count) {
- Scenario *scenario = scenario_owner.getornull(p_scenario);
+ Scenario *scenario = scenario_owner.get_or_null(p_scenario);
ERR_FAIL_COND(!scenario);
scene_render->reflection_atlas_set_size(scenario->reflection_atlas, p_reflection_size, p_reflection_count);
}
@@ -401,13 +401,13 @@ bool RendererSceneCull::is_scenario(RID p_scenario) const {
}
RID RendererSceneCull::scenario_get_environment(RID p_scenario) {
- Scenario *scenario = scenario_owner.getornull(p_scenario);
+ Scenario *scenario = scenario_owner.get_or_null(p_scenario);
ERR_FAIL_COND_V(!scenario, RID());
return scenario->environment;
}
void RendererSceneCull::scenario_remove_viewport_visibility_mask(RID p_scenario, RID p_viewport) {
- Scenario *scenario = scenario_owner.getornull(p_scenario);
+ Scenario *scenario = scenario_owner.get_or_null(p_scenario);
ERR_FAIL_COND(!scenario);
if (!scenario->viewport_visibility_masks.has(p_viewport)) {
return;
@@ -419,7 +419,7 @@ void RendererSceneCull::scenario_remove_viewport_visibility_mask(RID p_scenario,
}
void RendererSceneCull::scenario_add_viewport_visibility_mask(RID p_scenario, RID p_viewport) {
- Scenario *scenario = scenario_owner.getornull(p_scenario);
+ Scenario *scenario = scenario_owner.get_or_null(p_scenario);
ERR_FAIL_COND(!scenario);
ERR_FAIL_COND(scenario->viewport_visibility_masks.has(p_viewport));
@@ -459,7 +459,7 @@ RID RendererSceneCull::instance_allocate() {
}
void RendererSceneCull::instance_initialize(RID p_rid) {
instance_owner.initialize_rid(p_rid);
- Instance *instance = instance_owner.getornull(p_rid);
+ Instance *instance = instance_owner.get_or_null(p_rid);
instance->self = p_rid;
}
@@ -493,7 +493,7 @@ void RendererSceneCull::_instance_update_mesh_instance(Instance *p_instance) {
}
void RendererSceneCull::instance_set_base(RID p_instance, RID p_base) {
- Instance *instance = instance_owner.getornull(p_instance);
+ Instance *instance = instance_owner.get_or_null(p_instance);
ERR_FAIL_COND(!instance);
Scenario *scenario = instance->scenario;
@@ -710,7 +710,7 @@ void RendererSceneCull::instance_set_base(RID p_instance, RID p_base) {
}
void RendererSceneCull::instance_set_scenario(RID p_instance, RID p_scenario) {
- Instance *instance = instance_owner.getornull(p_instance);
+ Instance *instance = instance_owner.get_or_null(p_instance);
ERR_FAIL_COND(!instance);
if (instance->scenario) {
@@ -772,7 +772,7 @@ void RendererSceneCull::instance_set_scenario(RID p_instance, RID p_scenario) {
}
if (p_scenario.is_valid()) {
- Scenario *scenario = scenario_owner.getornull(p_scenario);
+ Scenario *scenario = scenario_owner.get_or_null(p_scenario);
ERR_FAIL_COND(!scenario);
instance->scenario = scenario;
@@ -805,7 +805,7 @@ void RendererSceneCull::instance_set_scenario(RID p_instance, RID p_scenario) {
}
void RendererSceneCull::instance_set_layer_mask(RID p_instance, uint32_t p_mask) {
- Instance *instance = instance_owner.getornull(p_instance);
+ Instance *instance = instance_owner.get_or_null(p_instance);
ERR_FAIL_COND(!instance);
instance->layer_mask = p_mask;
@@ -820,7 +820,7 @@ void RendererSceneCull::instance_set_layer_mask(RID p_instance, uint32_t p_mask)
}
void RendererSceneCull::instance_set_transform(RID p_instance, const Transform3D &p_transform) {
- Instance *instance = instance_owner.getornull(p_instance);
+ Instance *instance = instance_owner.get_or_null(p_instance);
ERR_FAIL_COND(!instance);
if (instance->transform == p_transform) {
@@ -845,14 +845,14 @@ void RendererSceneCull::instance_set_transform(RID p_instance, const Transform3D
}
void RendererSceneCull::instance_attach_object_instance_id(RID p_instance, ObjectID p_id) {
- Instance *instance = instance_owner.getornull(p_instance);
+ Instance *instance = instance_owner.get_or_null(p_instance);
ERR_FAIL_COND(!instance);
instance->object_id = p_id;
}
void RendererSceneCull::instance_set_blend_shape_weight(RID p_instance, int p_shape, float p_weight) {
- Instance *instance = instance_owner.getornull(p_instance);
+ Instance *instance = instance_owner.get_or_null(p_instance);
ERR_FAIL_COND(!instance);
if (instance->update_item.in_list()) {
@@ -865,7 +865,7 @@ void RendererSceneCull::instance_set_blend_shape_weight(RID p_instance, int p_sh
}
void RendererSceneCull::instance_set_surface_override_material(RID p_instance, int p_surface, RID p_material) {
- Instance *instance = instance_owner.getornull(p_instance);
+ Instance *instance = instance_owner.get_or_null(p_instance);
ERR_FAIL_COND(!instance);
if (instance->base_type == RS::INSTANCE_MESH) {
@@ -881,7 +881,7 @@ void RendererSceneCull::instance_set_surface_override_material(RID p_instance, i
}
void RendererSceneCull::instance_set_visible(RID p_instance, bool p_visible) {
- Instance *instance = instance_owner.getornull(p_instance);
+ Instance *instance = instance_owner.get_or_null(p_instance);
ERR_FAIL_COND(!instance);
if (instance->visible == p_visible) {
@@ -926,7 +926,7 @@ inline bool is_geometry_instance(RenderingServer::InstanceType p_type) {
}
void RendererSceneCull::instance_set_custom_aabb(RID p_instance, AABB p_aabb) {
- Instance *instance = instance_owner.getornull(p_instance);
+ Instance *instance = instance_owner.get_or_null(p_instance);
ERR_FAIL_COND(!instance);
ERR_FAIL_COND(!is_geometry_instance(instance->base_type));
@@ -951,7 +951,7 @@ void RendererSceneCull::instance_set_custom_aabb(RID p_instance, AABB p_aabb) {
}
void RendererSceneCull::instance_attach_skeleton(RID p_instance, RID p_skeleton) {
- Instance *instance = instance_owner.getornull(p_instance);
+ Instance *instance = instance_owner.get_or_null(p_instance);
ERR_FAIL_COND(!instance);
if (instance->skeleton == p_skeleton) {
@@ -976,7 +976,7 @@ void RendererSceneCull::instance_attach_skeleton(RID p_instance, RID p_skeleton)
}
void RendererSceneCull::instance_set_extra_visibility_margin(RID p_instance, real_t p_margin) {
- Instance *instance = instance_owner.getornull(p_instance);
+ Instance *instance = instance_owner.get_or_null(p_instance);
ERR_FAIL_COND(!instance);
instance->extra_margin = p_margin;
@@ -985,7 +985,7 @@ void RendererSceneCull::instance_set_extra_visibility_margin(RID p_instance, rea
Vector<ObjectID> RendererSceneCull::instances_cull_aabb(const AABB &p_aabb, RID p_scenario) const {
Vector<ObjectID> instances;
- Scenario *scenario = scenario_owner.getornull(p_scenario);
+ Scenario *scenario = scenario_owner.get_or_null(p_scenario);
ERR_FAIL_COND_V(!scenario, instances);
const_cast<RendererSceneCull *>(this)->update_dirty_instances(); // check dirty instances before culling
@@ -1009,7 +1009,7 @@ Vector<ObjectID> RendererSceneCull::instances_cull_aabb(const AABB &p_aabb, RID
Vector<ObjectID> RendererSceneCull::instances_cull_ray(const Vector3 &p_from, const Vector3 &p_to, RID p_scenario) const {
Vector<ObjectID> instances;
- Scenario *scenario = scenario_owner.getornull(p_scenario);
+ Scenario *scenario = scenario_owner.get_or_null(p_scenario);
ERR_FAIL_COND_V(!scenario, instances);
const_cast<RendererSceneCull *>(this)->update_dirty_instances(); // check dirty instances before culling
@@ -1032,7 +1032,7 @@ Vector<ObjectID> RendererSceneCull::instances_cull_ray(const Vector3 &p_from, co
Vector<ObjectID> RendererSceneCull::instances_cull_convex(const Vector<Plane> &p_convex, RID p_scenario) const {
Vector<ObjectID> instances;
- Scenario *scenario = scenario_owner.getornull(p_scenario);
+ Scenario *scenario = scenario_owner.get_or_null(p_scenario);
ERR_FAIL_COND_V(!scenario, instances);
const_cast<RendererSceneCull *>(this)->update_dirty_instances(); // check dirty instances before culling
@@ -1056,7 +1056,7 @@ Vector<ObjectID> RendererSceneCull::instances_cull_convex(const Vector<Plane> &p
}
void RendererSceneCull::instance_geometry_set_flag(RID p_instance, RS::InstanceFlags p_flags, bool p_enabled) {
- Instance *instance = instance_owner.getornull(p_instance);
+ Instance *instance = instance_owner.get_or_null(p_instance);
ERR_FAIL_COND(!instance);
//ERR_FAIL_COND(((1 << instance->base_type) & RS::INSTANCE_GEOMETRY_MASK));
@@ -1131,7 +1131,7 @@ void RendererSceneCull::instance_geometry_set_flag(RID p_instance, RS::InstanceF
}
void RendererSceneCull::instance_geometry_set_cast_shadows_setting(RID p_instance, RS::ShadowCastingSetting p_shadow_casting_setting) {
- Instance *instance = instance_owner.getornull(p_instance);
+ Instance *instance = instance_owner.get_or_null(p_instance);
ERR_FAIL_COND(!instance);
instance->cast_shadows = p_shadow_casting_setting;
@@ -1161,7 +1161,7 @@ void RendererSceneCull::instance_geometry_set_cast_shadows_setting(RID p_instanc
}
void RendererSceneCull::instance_geometry_set_material_override(RID p_instance, RID p_material) {
- Instance *instance = instance_owner.getornull(p_instance);
+ Instance *instance = instance_owner.get_or_null(p_instance);
ERR_FAIL_COND(!instance);
instance->material_override = p_material;
@@ -1174,7 +1174,7 @@ void RendererSceneCull::instance_geometry_set_material_override(RID p_instance,
}
void RendererSceneCull::instance_geometry_set_visibility_range(RID p_instance, float p_min, float p_max, float p_min_margin, float p_max_margin) {
- Instance *instance = instance_owner.getornull(p_instance);
+ Instance *instance = instance_owner.get_or_null(p_instance);
ERR_FAIL_COND(!instance);
instance->visibility_range_begin = p_min;
@@ -1194,7 +1194,7 @@ void RendererSceneCull::instance_geometry_set_visibility_range(RID p_instance, f
}
void RendererSceneCull::instance_set_visibility_parent(RID p_instance, RID p_parent_instance) {
- Instance *instance = instance_owner.getornull(p_instance);
+ Instance *instance = instance_owner.get_or_null(p_instance);
ERR_FAIL_COND(!instance);
Instance *old_parent = instance->visibility_parent;
@@ -1207,7 +1207,7 @@ void RendererSceneCull::instance_set_visibility_parent(RID p_instance, RID p_par
instance->visibility_parent = nullptr;
}
- Instance *parent = instance_owner.getornull(p_parent_instance);
+ Instance *parent = instance_owner.get_or_null(p_parent_instance);
ERR_FAIL_COND(p_parent_instance.is_valid() && !parent);
if (parent) {
@@ -1286,7 +1286,7 @@ void RendererSceneCull::_update_instance_visibility_dependencies(Instance *p_ins
vd.range_end = p_instance->visibility_range_end;
vd.range_begin_margin = p_instance->visibility_range_begin_margin;
vd.range_end_margin = p_instance->visibility_range_end_margin;
- vd.position = p_instance->transformed_aabb.get_position() + p_instance->transformed_aabb.get_size() / 2.0f;
+ vd.position = p_instance->transformed_aabb.get_center();
vd.array_index = p_instance->array_index;
InstanceGeometryData *geom_data = static_cast<InstanceGeometryData *>(p_instance->base_data);
@@ -1312,7 +1312,7 @@ void RendererSceneCull::_update_instance_visibility_dependencies(Instance *p_ins
}
void RendererSceneCull::instance_geometry_set_lightmap(RID p_instance, RID p_lightmap, const Rect2 &p_lightmap_uv_scale, int p_slice_index) {
- Instance *instance = instance_owner.getornull(p_instance);
+ Instance *instance = instance_owner.get_or_null(p_instance);
ERR_FAIL_COND(!instance);
if (instance->lightmap) {
@@ -1321,7 +1321,7 @@ void RendererSceneCull::instance_geometry_set_lightmap(RID p_instance, RID p_lig
instance->lightmap = nullptr;
}
- Instance *lightmap_instance = instance_owner.getornull(p_lightmap);
+ Instance *lightmap_instance = instance_owner.get_or_null(p_lightmap);
instance->lightmap = lightmap_instance;
instance->lightmap_uv_scale = p_lightmap_uv_scale;
@@ -1342,7 +1342,7 @@ void RendererSceneCull::instance_geometry_set_lightmap(RID p_instance, RID p_lig
}
void RendererSceneCull::instance_geometry_set_lod_bias(RID p_instance, float p_lod_bias) {
- Instance *instance = instance_owner.getornull(p_instance);
+ Instance *instance = instance_owner.get_or_null(p_instance);
ERR_FAIL_COND(!instance);
instance->lod_bias = p_lod_bias;
@@ -1354,7 +1354,7 @@ void RendererSceneCull::instance_geometry_set_lod_bias(RID p_instance, float p_l
}
void RendererSceneCull::instance_geometry_set_shader_parameter(RID p_instance, const StringName &p_parameter, const Variant &p_value) {
- Instance *instance = instance_owner.getornull(p_instance);
+ Instance *instance = instance_owner.get_or_null(p_instance);
ERR_FAIL_COND(!instance);
ERR_FAIL_COND(p_value.get_type() == Variant::OBJECT);
@@ -1377,7 +1377,7 @@ void RendererSceneCull::instance_geometry_set_shader_parameter(RID p_instance, c
}
Variant RendererSceneCull::instance_geometry_get_shader_parameter(RID p_instance, const StringName &p_parameter) const {
- const Instance *instance = const_cast<RendererSceneCull *>(this)->instance_owner.getornull(p_instance);
+ const Instance *instance = const_cast<RendererSceneCull *>(this)->instance_owner.get_or_null(p_instance);
ERR_FAIL_COND_V(!instance, Variant());
if (instance->instance_shader_parameters.has(p_parameter)) {
@@ -1387,7 +1387,7 @@ Variant RendererSceneCull::instance_geometry_get_shader_parameter(RID p_instance
}
Variant RendererSceneCull::instance_geometry_get_shader_parameter_default_value(RID p_instance, const StringName &p_parameter) const {
- const Instance *instance = const_cast<RendererSceneCull *>(this)->instance_owner.getornull(p_instance);
+ const Instance *instance = const_cast<RendererSceneCull *>(this)->instance_owner.get_or_null(p_instance);
ERR_FAIL_COND_V(!instance, Variant());
if (instance->instance_shader_parameters.has(p_parameter)) {
@@ -1397,7 +1397,7 @@ Variant RendererSceneCull::instance_geometry_get_shader_parameter_default_value(
}
void RendererSceneCull::instance_geometry_get_shader_parameter_list(RID p_instance, List<PropertyInfo> *p_parameters) const {
- const Instance *instance = const_cast<RendererSceneCull *>(this)->instance_owner.getornull(p_instance);
+ const Instance *instance = const_cast<RendererSceneCull *>(this)->instance_owner.get_or_null(p_instance);
ERR_FAIL_COND(!instance);
const_cast<RendererSceneCull *>(this)->update_dirty_instances();
@@ -1636,7 +1636,7 @@ void RendererSceneCull::_update_instance(Instance *p_instance) {
}
if (p_instance->visibility_index != -1) {
- p_instance->scenario->instance_visibility[p_instance->visibility_index].position = p_instance->transformed_aabb.get_position() + p_instance->transformed_aabb.get_size() / 2.0f;
+ p_instance->scenario->instance_visibility[p_instance->visibility_index].position = p_instance->transformed_aabb.get_center();
}
//move instance and repair
@@ -1851,7 +1851,7 @@ void RendererSceneCull::_update_instance_lightmap_captures(Instance *p_instance)
}
Transform3D to_bounds = lightmap->transform.affine_inverse();
- Vector3 center = p_instance->transform.xform(p_instance->aabb.position + p_instance->aabb.size * 0.5); //use aabb center
+ Vector3 center = p_instance->transform.xform(p_instance->aabb.get_center()); //use aabb center
Vector3 lm_pos = to_bounds.xform(center);
@@ -2354,7 +2354,7 @@ bool RendererSceneCull::_light_instance_update_shadow(Instance *p_instance, cons
void RendererSceneCull::render_camera(RID p_render_buffers, RID p_camera, RID p_scenario, RID p_viewport, Size2 p_viewport_size, float p_screen_lod_threshold, RID p_shadow_atlas, Ref<XRInterface> &p_xr_interface, RenderInfo *r_render_info) {
#ifndef _3D_DISABLED
- Camera *camera = camera_owner.getornull(p_camera);
+ Camera *camera = camera_owner.get_or_null(p_camera);
ERR_FAIL_COND(!camera);
RendererSceneRender::CameraData camera_data;
@@ -2747,9 +2747,9 @@ void RendererSceneCull::_scene_cull(CullData &cull_data, InstanceCullResult &cul
}
void RendererSceneCull::_render_scene(const RendererSceneRender::CameraData *p_camera_data, RID p_render_buffers, RID p_environment, RID p_force_camera_effects, uint32_t p_visible_layers, RID p_scenario, RID p_viewport, RID p_shadow_atlas, RID p_reflection_probe, int p_reflection_probe_pass, float p_screen_lod_threshold, bool p_using_shadows, RendererScene::RenderInfo *r_render_info) {
- Instance *render_reflection_probe = instance_owner.getornull(p_reflection_probe); //if null, not rendering to it
+ Instance *render_reflection_probe = instance_owner.get_or_null(p_reflection_probe); //if null, not rendering to it
- Scenario *scenario = scenario_owner.getornull(p_scenario);
+ Scenario *scenario = scenario_owner.get_or_null(p_scenario);
render_pass++;
@@ -3103,12 +3103,12 @@ void RendererSceneCull::_render_scene(const RendererSceneRender::CameraData *p_c
}
RID RendererSceneCull::_render_get_environment(RID p_camera, RID p_scenario) {
- Camera *camera = camera_owner.getornull(p_camera);
+ Camera *camera = camera_owner.get_or_null(p_camera);
if (camera && scene_render->is_environment(camera->env)) {
return camera->env;
}
- Scenario *scenario = scenario_owner.getornull(p_scenario);
+ Scenario *scenario = scenario_owner.get_or_null(p_scenario);
if (!scenario) {
return RID();
}
@@ -3125,7 +3125,7 @@ RID RendererSceneCull::_render_get_environment(RID p_camera, RID p_scenario) {
void RendererSceneCull::render_empty_scene(RID p_render_buffers, RID p_scenario, RID p_shadow_atlas) {
#ifndef _3D_DISABLED
- Scenario *scenario = scenario_owner.getornull(p_scenario);
+ Scenario *scenario = scenario_owner.get_or_null(p_scenario);
RID environment;
if (scenario->environment.is_valid()) {
@@ -3750,7 +3750,7 @@ bool RendererSceneCull::free(RID p_rid) {
camera_owner.free(p_rid);
} else if (scenario_owner.owns(p_rid)) {
- Scenario *scenario = scenario_owner.getornull(p_rid);
+ Scenario *scenario = scenario_owner.get_or_null(p_rid);
while (scenario->instances.first()) {
instance_set_scenario(scenario->instances.first()->self()->self, RID());
@@ -3771,7 +3771,7 @@ bool RendererSceneCull::free(RID p_rid) {
update_dirty_instances();
- Instance *instance = instance_owner.getornull(p_rid);
+ Instance *instance = instance_owner.get_or_null(p_rid);
instance_geometry_set_lightmap(p_rid, RID(), Rect2(), 0);
instance_set_scenario(p_rid, RID());
diff --git a/servers/rendering/renderer_viewport.cpp b/servers/rendering/renderer_viewport.cpp
index 8af2049ab3..2c07929357 100644
--- a/servers/rendering/renderer_viewport.cpp
+++ b/servers/rendering/renderer_viewport.cpp
@@ -554,7 +554,7 @@ void RendererViewport::draw_viewports() {
}
if (vp->update_mode == RS::VIEWPORT_UPDATE_WHEN_PARENT_VISIBLE) {
- Viewport *parent = viewport_owner.getornull(vp->parent);
+ Viewport *parent = viewport_owner.get_or_null(vp->parent);
if (parent && parent->last_pass == draw_viewports_pass) {
visible = true;
}
@@ -671,7 +671,7 @@ RID RendererViewport::viewport_allocate() {
void RendererViewport::viewport_initialize(RID p_rid) {
viewport_owner.initialize_rid(p_rid);
- Viewport *viewport = viewport_owner.getornull(p_rid);
+ Viewport *viewport = viewport_owner.get_or_null(p_rid);
viewport->self = p_rid;
viewport->render_target = RSG::storage->render_target_create();
viewport->shadow_atlas = RSG::scene->shadow_atlas_create();
@@ -679,7 +679,7 @@ void RendererViewport::viewport_initialize(RID p_rid) {
}
void RendererViewport::viewport_set_use_xr(RID p_viewport, bool p_use_xr) {
- Viewport *viewport = viewport_owner.getornull(p_viewport);
+ Viewport *viewport = viewport_owner.get_or_null(p_viewport);
ERR_FAIL_COND(!viewport);
if (viewport->use_xr == p_use_xr) {
@@ -691,7 +691,7 @@ void RendererViewport::viewport_set_use_xr(RID p_viewport, bool p_use_xr) {
}
void RendererViewport::viewport_set_scale_3d(RID p_viewport, RenderingServer::ViewportScale3D p_scale_3d) {
- Viewport *viewport = viewport_owner.getornull(p_viewport);
+ Viewport *viewport = viewport_owner.get_or_null(p_viewport);
ERR_FAIL_COND(!viewport);
if (viewport->scale_3d == p_scale_3d) {
@@ -720,7 +720,7 @@ uint32_t RendererViewport::Viewport::get_view_count() {
void RendererViewport::viewport_set_size(RID p_viewport, int p_width, int p_height) {
ERR_FAIL_COND(p_width < 0 && p_height < 0);
- Viewport *viewport = viewport_owner.getornull(p_viewport);
+ Viewport *viewport = viewport_owner.get_or_null(p_viewport);
ERR_FAIL_COND(!viewport);
viewport->size = Size2(p_width, p_height);
@@ -732,7 +732,7 @@ void RendererViewport::viewport_set_size(RID p_viewport, int p_width, int p_heig
}
void RendererViewport::viewport_set_active(RID p_viewport, bool p_active) {
- Viewport *viewport = viewport_owner.getornull(p_viewport);
+ Viewport *viewport = viewport_owner.get_or_null(p_viewport);
ERR_FAIL_COND(!viewport);
if (p_active) {
@@ -745,21 +745,21 @@ void RendererViewport::viewport_set_active(RID p_viewport, bool p_active) {
}
void RendererViewport::viewport_set_parent_viewport(RID p_viewport, RID p_parent_viewport) {
- Viewport *viewport = viewport_owner.getornull(p_viewport);
+ Viewport *viewport = viewport_owner.get_or_null(p_viewport);
ERR_FAIL_COND(!viewport);
viewport->parent = p_parent_viewport;
}
void RendererViewport::viewport_set_clear_mode(RID p_viewport, RS::ViewportClearMode p_clear_mode) {
- Viewport *viewport = viewport_owner.getornull(p_viewport);
+ Viewport *viewport = viewport_owner.get_or_null(p_viewport);
ERR_FAIL_COND(!viewport);
viewport->clear_mode = p_clear_mode;
}
void RendererViewport::viewport_attach_to_screen(RID p_viewport, const Rect2 &p_rect, DisplayServer::WindowID p_screen) {
- Viewport *viewport = viewport_owner.getornull(p_viewport);
+ Viewport *viewport = viewport_owner.get_or_null(p_viewport);
ERR_FAIL_COND(!viewport);
if (p_screen != DisplayServer::INVALID_WINDOW_ID) {
@@ -785,7 +785,7 @@ void RendererViewport::viewport_attach_to_screen(RID p_viewport, const Rect2 &p_
}
void RendererViewport::viewport_set_render_direct_to_screen(RID p_viewport, bool p_enable) {
- Viewport *viewport = viewport_owner.getornull(p_viewport);
+ Viewport *viewport = viewport_owner.get_or_null(p_viewport);
ERR_FAIL_COND(!viewport);
if (p_enable == viewport->viewport_render_direct_to_screen) {
@@ -809,21 +809,21 @@ void RendererViewport::viewport_set_render_direct_to_screen(RID p_viewport, bool
}
void RendererViewport::viewport_set_update_mode(RID p_viewport, RS::ViewportUpdateMode p_mode) {
- Viewport *viewport = viewport_owner.getornull(p_viewport);
+ Viewport *viewport = viewport_owner.get_or_null(p_viewport);
ERR_FAIL_COND(!viewport);
viewport->update_mode = p_mode;
}
RID RendererViewport::viewport_get_texture(RID p_viewport) const {
- const Viewport *viewport = viewport_owner.getornull(p_viewport);
+ const Viewport *viewport = viewport_owner.get_or_null(p_viewport);
ERR_FAIL_COND_V(!viewport, RID());
return RSG::storage->render_target_get_texture(viewport->render_target);
}
RID RendererViewport::viewport_get_occluder_debug_texture(RID p_viewport) const {
- const Viewport *viewport = viewport_owner.getornull(p_viewport);
+ const Viewport *viewport = viewport_owner.get_or_null(p_viewport);
ERR_FAIL_COND_V(!viewport, RID());
if (viewport->use_occlusion_culling && viewport->debug_draw == RenderingServer::VIEWPORT_DEBUG_DRAW_OCCLUDERS) {
@@ -833,35 +833,35 @@ RID RendererViewport::viewport_get_occluder_debug_texture(RID p_viewport) const
}
void RendererViewport::viewport_set_disable_2d(RID p_viewport, bool p_disable) {
- Viewport *viewport = viewport_owner.getornull(p_viewport);
+ Viewport *viewport = viewport_owner.get_or_null(p_viewport);
ERR_FAIL_COND(!viewport);
viewport->disable_2d = p_disable;
}
void RendererViewport::viewport_set_disable_environment(RID p_viewport, bool p_disable) {
- Viewport *viewport = viewport_owner.getornull(p_viewport);
+ Viewport *viewport = viewport_owner.get_or_null(p_viewport);
ERR_FAIL_COND(!viewport);
viewport->disable_environment = p_disable;
}
void RendererViewport::viewport_set_disable_3d(RID p_viewport, bool p_disable) {
- Viewport *viewport = viewport_owner.getornull(p_viewport);
+ Viewport *viewport = viewport_owner.get_or_null(p_viewport);
ERR_FAIL_COND(!viewport);
viewport->disable_3d = p_disable;
}
void RendererViewport::viewport_attach_camera(RID p_viewport, RID p_camera) {
- Viewport *viewport = viewport_owner.getornull(p_viewport);
+ Viewport *viewport = viewport_owner.get_or_null(p_viewport);
ERR_FAIL_COND(!viewport);
viewport->camera = p_camera;
}
void RendererViewport::viewport_set_scenario(RID p_viewport, RID p_scenario) {
- Viewport *viewport = viewport_owner.getornull(p_viewport);
+ Viewport *viewport = viewport_owner.get_or_null(p_viewport);
ERR_FAIL_COND(!viewport);
if (viewport->scenario.is_valid()) {
@@ -875,11 +875,11 @@ void RendererViewport::viewport_set_scenario(RID p_viewport, RID p_scenario) {
}
void RendererViewport::viewport_attach_canvas(RID p_viewport, RID p_canvas) {
- Viewport *viewport = viewport_owner.getornull(p_viewport);
+ Viewport *viewport = viewport_owner.get_or_null(p_viewport);
ERR_FAIL_COND(!viewport);
ERR_FAIL_COND(viewport->canvas_map.has(p_canvas));
- RendererCanvasCull::Canvas *canvas = RSG::canvas->canvas_owner.getornull(p_canvas);
+ RendererCanvasCull::Canvas *canvas = RSG::canvas->canvas_owner.get_or_null(p_canvas);
ERR_FAIL_COND(!canvas);
canvas->viewports.insert(p_viewport);
@@ -890,10 +890,10 @@ void RendererViewport::viewport_attach_canvas(RID p_viewport, RID p_canvas) {
}
void RendererViewport::viewport_remove_canvas(RID p_viewport, RID p_canvas) {
- Viewport *viewport = viewport_owner.getornull(p_viewport);
+ Viewport *viewport = viewport_owner.get_or_null(p_viewport);
ERR_FAIL_COND(!viewport);
- RendererCanvasCull::Canvas *canvas = RSG::canvas->canvas_owner.getornull(p_canvas);
+ RendererCanvasCull::Canvas *canvas = RSG::canvas->canvas_owner.get_or_null(p_canvas);
ERR_FAIL_COND(!canvas);
viewport->canvas_map.erase(p_canvas);
@@ -901,7 +901,7 @@ void RendererViewport::viewport_remove_canvas(RID p_viewport, RID p_canvas) {
}
void RendererViewport::viewport_set_canvas_transform(RID p_viewport, RID p_canvas, const Transform2D &p_offset) {
- Viewport *viewport = viewport_owner.getornull(p_viewport);
+ Viewport *viewport = viewport_owner.get_or_null(p_viewport);
ERR_FAIL_COND(!viewport);
ERR_FAIL_COND(!viewport->canvas_map.has(p_canvas));
@@ -909,7 +909,7 @@ void RendererViewport::viewport_set_canvas_transform(RID p_viewport, RID p_canva
}
void RendererViewport::viewport_set_transparent_background(RID p_viewport, bool p_enabled) {
- Viewport *viewport = viewport_owner.getornull(p_viewport);
+ Viewport *viewport = viewport_owner.get_or_null(p_viewport);
ERR_FAIL_COND(!viewport);
RSG::storage->render_target_set_flag(viewport->render_target, RendererStorage::RENDER_TARGET_TRANSPARENT, p_enabled);
@@ -917,14 +917,14 @@ void RendererViewport::viewport_set_transparent_background(RID p_viewport, bool
}
void RendererViewport::viewport_set_global_canvas_transform(RID p_viewport, const Transform2D &p_transform) {
- Viewport *viewport = viewport_owner.getornull(p_viewport);
+ Viewport *viewport = viewport_owner.get_or_null(p_viewport);
ERR_FAIL_COND(!viewport);
viewport->global_transform = p_transform;
}
void RendererViewport::viewport_set_canvas_stacking(RID p_viewport, RID p_canvas, int p_layer, int p_sublayer) {
- Viewport *viewport = viewport_owner.getornull(p_viewport);
+ Viewport *viewport = viewport_owner.get_or_null(p_viewport);
ERR_FAIL_COND(!viewport);
ERR_FAIL_COND(!viewport->canvas_map.has(p_canvas));
@@ -933,7 +933,7 @@ void RendererViewport::viewport_set_canvas_stacking(RID p_viewport, RID p_canvas
}
void RendererViewport::viewport_set_shadow_atlas_size(RID p_viewport, int p_size, bool p_16_bits) {
- Viewport *viewport = viewport_owner.getornull(p_viewport);
+ Viewport *viewport = viewport_owner.get_or_null(p_viewport);
ERR_FAIL_COND(!viewport);
viewport->shadow_atlas_size = p_size;
@@ -943,14 +943,14 @@ void RendererViewport::viewport_set_shadow_atlas_size(RID p_viewport, int p_size
}
void RendererViewport::viewport_set_shadow_atlas_quadrant_subdivision(RID p_viewport, int p_quadrant, int p_subdiv) {
- Viewport *viewport = viewport_owner.getornull(p_viewport);
+ Viewport *viewport = viewport_owner.get_or_null(p_viewport);
ERR_FAIL_COND(!viewport);
RSG::scene->shadow_atlas_set_quadrant_subdivision(viewport->shadow_atlas, p_quadrant, p_subdiv);
}
void RendererViewport::viewport_set_msaa(RID p_viewport, RS::ViewportMSAA p_msaa) {
- Viewport *viewport = viewport_owner.getornull(p_viewport);
+ Viewport *viewport = viewport_owner.get_or_null(p_viewport);
ERR_FAIL_COND(!viewport);
if (viewport->msaa == p_msaa) {
@@ -961,7 +961,7 @@ void RendererViewport::viewport_set_msaa(RID p_viewport, RS::ViewportMSAA p_msaa
}
void RendererViewport::viewport_set_screen_space_aa(RID p_viewport, RS::ViewportScreenSpaceAA p_mode) {
- Viewport *viewport = viewport_owner.getornull(p_viewport);
+ Viewport *viewport = viewport_owner.get_or_null(p_viewport);
ERR_FAIL_COND(!viewport);
if (viewport->screen_space_aa == p_mode) {
@@ -972,7 +972,7 @@ void RendererViewport::viewport_set_screen_space_aa(RID p_viewport, RS::Viewport
}
void RendererViewport::viewport_set_use_debanding(RID p_viewport, bool p_use_debanding) {
- Viewport *viewport = viewport_owner.getornull(p_viewport);
+ Viewport *viewport = viewport_owner.get_or_null(p_viewport);
ERR_FAIL_COND(!viewport);
if (viewport->use_debanding == p_use_debanding) {
@@ -983,7 +983,7 @@ void RendererViewport::viewport_set_use_debanding(RID p_viewport, bool p_use_deb
}
void RendererViewport::viewport_set_use_occlusion_culling(RID p_viewport, bool p_use_occlusion_culling) {
- Viewport *viewport = viewport_owner.getornull(p_viewport);
+ Viewport *viewport = viewport_owner.get_or_null(p_viewport);
ERR_FAIL_COND(!viewport);
if (viewport->use_occlusion_culling == p_use_occlusion_culling) {
@@ -1018,7 +1018,7 @@ void RendererViewport::viewport_set_occlusion_culling_build_quality(RS::Viewport
}
void RendererViewport::viewport_set_lod_threshold(RID p_viewport, float p_pixels) {
- Viewport *viewport = viewport_owner.getornull(p_viewport);
+ Viewport *viewport = viewport_owner.get_or_null(p_viewport);
ERR_FAIL_COND(!viewport);
viewport->lod_threshold = p_pixels;
@@ -1027,7 +1027,7 @@ void RendererViewport::viewport_set_lod_threshold(RID p_viewport, float p_pixels
int RendererViewport::viewport_get_render_info(RID p_viewport, RS::ViewportRenderInfoType p_type, RS::ViewportRenderInfo p_info) {
ERR_FAIL_INDEX_V(p_info, RS::VIEWPORT_RENDER_INFO_MAX, -1);
- Viewport *viewport = viewport_owner.getornull(p_viewport);
+ Viewport *viewport = viewport_owner.get_or_null(p_viewport);
if (!viewport) {
return 0; //there should be a lock here..
}
@@ -1036,62 +1036,62 @@ int RendererViewport::viewport_get_render_info(RID p_viewport, RS::ViewportRende
}
void RendererViewport::viewport_set_debug_draw(RID p_viewport, RS::ViewportDebugDraw p_draw) {
- Viewport *viewport = viewport_owner.getornull(p_viewport);
+ Viewport *viewport = viewport_owner.get_or_null(p_viewport);
ERR_FAIL_COND(!viewport);
viewport->debug_draw = p_draw;
}
void RendererViewport::viewport_set_measure_render_time(RID p_viewport, bool p_enable) {
- Viewport *viewport = viewport_owner.getornull(p_viewport);
+ Viewport *viewport = viewport_owner.get_or_null(p_viewport);
ERR_FAIL_COND(!viewport);
viewport->measure_render_time = p_enable;
}
float RendererViewport::viewport_get_measured_render_time_cpu(RID p_viewport) const {
- Viewport *viewport = viewport_owner.getornull(p_viewport);
+ Viewport *viewport = viewport_owner.get_or_null(p_viewport);
ERR_FAIL_COND_V(!viewport, 0);
return double(viewport->time_cpu_end - viewport->time_cpu_begin) / 1000.0;
}
float RendererViewport::viewport_get_measured_render_time_gpu(RID p_viewport) const {
- Viewport *viewport = viewport_owner.getornull(p_viewport);
+ Viewport *viewport = viewport_owner.get_or_null(p_viewport);
ERR_FAIL_COND_V(!viewport, 0);
return double((viewport->time_gpu_end - viewport->time_gpu_begin) / 1000) / 1000.0;
}
void RendererViewport::viewport_set_snap_2d_transforms_to_pixel(RID p_viewport, bool p_enabled) {
- Viewport *viewport = viewport_owner.getornull(p_viewport);
+ Viewport *viewport = viewport_owner.get_or_null(p_viewport);
ERR_FAIL_COND(!viewport);
viewport->snap_2d_transforms_to_pixel = p_enabled;
}
void RendererViewport::viewport_set_snap_2d_vertices_to_pixel(RID p_viewport, bool p_enabled) {
- Viewport *viewport = viewport_owner.getornull(p_viewport);
+ Viewport *viewport = viewport_owner.get_or_null(p_viewport);
ERR_FAIL_COND(!viewport);
viewport->snap_2d_vertices_to_pixel = p_enabled;
}
void RendererViewport::viewport_set_default_canvas_item_texture_filter(RID p_viewport, RS::CanvasItemTextureFilter p_filter) {
ERR_FAIL_COND_MSG(p_filter == RS::CANVAS_ITEM_TEXTURE_FILTER_DEFAULT, "Viewport does not accept DEFAULT as texture filter (it's the topmost choice already).)");
- Viewport *viewport = viewport_owner.getornull(p_viewport);
+ Viewport *viewport = viewport_owner.get_or_null(p_viewport);
ERR_FAIL_COND(!viewport);
viewport->texture_filter = p_filter;
}
void RendererViewport::viewport_set_default_canvas_item_texture_repeat(RID p_viewport, RS::CanvasItemTextureRepeat p_repeat) {
ERR_FAIL_COND_MSG(p_repeat == RS::CANVAS_ITEM_TEXTURE_REPEAT_DEFAULT, "Viewport does not accept DEFAULT as texture repeat (it's the topmost choice already).)");
- Viewport *viewport = viewport_owner.getornull(p_viewport);
+ Viewport *viewport = viewport_owner.get_or_null(p_viewport);
ERR_FAIL_COND(!viewport);
viewport->texture_repeat = p_repeat;
}
void RendererViewport::viewport_set_sdf_oversize_and_scale(RID p_viewport, RS::ViewportSDFOversize p_size, RS::ViewportSDFScale p_scale) {
- Viewport *viewport = viewport_owner.getornull(p_viewport);
+ Viewport *viewport = viewport_owner.get_or_null(p_viewport);
ERR_FAIL_COND(!viewport);
RSG::storage->render_target_set_sdf_size_and_scale(viewport->render_target, p_size, p_scale);
@@ -1099,7 +1099,7 @@ void RendererViewport::viewport_set_sdf_oversize_and_scale(RID p_viewport, RS::V
bool RendererViewport::free(RID p_rid) {
if (viewport_owner.owns(p_rid)) {
- Viewport *viewport = viewport_owner.getornull(p_rid);
+ Viewport *viewport = viewport_owner.get_or_null(p_rid);
RSG::storage->free(viewport->render_target);
RSG::scene->free(viewport->shadow_atlas);
@@ -1132,7 +1132,7 @@ void RendererViewport::handle_timestamp(String p_timestamp, uint64_t p_cpu_time,
return;
}
- Viewport *viewport = viewport_owner.getornull(*vp);
+ Viewport *viewport = viewport_owner.get_or_null(*vp);
if (!viewport) {
return;
}
diff --git a/servers/rendering/shader_language.cpp b/servers/rendering/shader_language.cpp
index 89537f8b7c..d6f8fe85c9 100644
--- a/servers/rendering/shader_language.cpp
+++ b/servers/rendering/shader_language.cpp
@@ -5252,7 +5252,9 @@ ShaderLanguage::Node *ShaderLanguage::_parse_expression(BlockNode *p_block, cons
}
#if DEBUG_ENABLED
- if (check_warnings && HAS_WARNING(ShaderWarning::FLOAT_COMPARISON_FLAG) && (op == OP_EQUAL || op == OP_NOT_EQUAL) && expression[i - 1].node->get_datatype() == TYPE_FLOAT && expression[i + 1].node->get_datatype() == TYPE_FLOAT) {
+ if (check_warnings && HAS_WARNING(ShaderWarning::FLOAT_COMPARISON_FLAG) && (op == OP_EQUAL || op == OP_NOT_EQUAL) &&
+ (!expression[i - 1].is_op && !expression[i + 1].is_op) &&
+ (expression[i - 1].node->get_datatype() == TYPE_FLOAT && expression[i + 1].node->get_datatype() == TYPE_FLOAT)) {
_add_line_warning(ShaderWarning::FLOAT_COMPARISON);
}
#endif // DEBUG_ENABLED
diff --git a/servers/text_server.cpp b/servers/text_server.cpp
index 2f343e8f80..4886a6f582 100644
--- a/servers/text_server.cpp
+++ b/servers/text_server.cpp
@@ -447,6 +447,8 @@ void TextServer::_bind_methods() {
BIND_ENUM_CONSTANT(GRAPHEME_IS_TAB);
BIND_ENUM_CONSTANT(GRAPHEME_IS_ELONGATION);
BIND_ENUM_CONSTANT(GRAPHEME_IS_PUNCTUATION);
+ BIND_ENUM_CONSTANT(GRAPHEME_IS_UNDERSCORE);
+ BIND_ENUM_CONSTANT(GRAPHEME_IS_CONNECTED);
/* Hinting */
BIND_ENUM_CONSTANT(HINTING_NONE);
diff --git a/servers/text_server.h b/servers/text_server.h
index 62e02e3c97..90ad9b493b 100644
--- a/servers/text_server.h
+++ b/servers/text_server.h
@@ -91,6 +91,7 @@ public:
GRAPHEME_IS_ELONGATION = 1 << 7, // Elongation (e.g. kashida), glyph can be duplicated or truncated to fit line to width.
GRAPHEME_IS_PUNCTUATION = 1 << 8, // Punctuation, except underscore (can be used as word break, but not line break or justifiction).
GRAPHEME_IS_UNDERSCORE = 1 << 9, // Underscore (can be used as word break).
+ GRAPHEME_IS_CONNECTED = 1 << 10, // Connected to previous grapheme.
};
enum Hinting {
diff --git a/servers/xr/xr_interface.h b/servers/xr/xr_interface.h
index 4f5d4bad10..534fa18d8a 100644
--- a/servers/xr/xr_interface.h
+++ b/servers/xr/xr_interface.h
@@ -110,7 +110,7 @@ public:
virtual uint32_t get_view_count() = 0; /* returns the view count we need (1 is monoscopic, 2 is stereoscopic but can be more) */
virtual Transform3D get_camera_transform() = 0; /* returns the position of our camera for updating our camera node. For monoscopic this is equal to the views transform, for stereoscopic this should be an average */
virtual Transform3D get_transform_for_view(uint32_t p_view, const Transform3D &p_cam_transform) = 0; /* get each views transform */
- virtual CameraMatrix get_projection_for_view(uint32_t p_view, real_t p_aspect, real_t p_z_near, real_t p_z_far) = 0; /* get each view projection matrix */
+ virtual CameraMatrix get_projection_for_view(uint32_t p_view, double p_aspect, double p_z_near, double p_z_far) = 0; /* get each view projection matrix */
// note, external color/depth/vrs texture support will be added here soon.
diff --git a/servers/xr/xr_interface_extension.cpp b/servers/xr/xr_interface_extension.cpp
index 6340485bde..7fdf90770d 100644
--- a/servers/xr/xr_interface_extension.cpp
+++ b/servers/xr/xr_interface_extension.cpp
@@ -29,6 +29,7 @@
/*************************************************************************/
#include "xr_interface_extension.h"
+#include "servers/rendering/renderer_rd/renderer_storage_rd.h"
#include "servers/rendering/renderer_storage.h"
#include "servers/rendering/rendering_server_globals.h"
@@ -186,7 +187,7 @@ Transform3D XRInterfaceExtension::get_transform_for_view(uint32_t p_view, const
return Transform3D();
}
-CameraMatrix XRInterfaceExtension::get_projection_for_view(uint32_t p_view, real_t p_aspect, real_t p_z_near, real_t p_z_far) {
+CameraMatrix XRInterfaceExtension::get_projection_for_view(uint32_t p_view, double p_aspect, double p_z_near, double p_z_far) {
CameraMatrix cm;
PackedFloat64Array arr;
@@ -202,7 +203,7 @@ CameraMatrix XRInterfaceExtension::get_projection_for_view(uint32_t p_view, real
return CameraMatrix();
}
-void XRInterfaceExtension::add_blit(RID p_render_target, Rect2 p_src_rect, Rect2i p_dst_rect, bool p_use_layer, uint32_t p_layer, bool p_apply_lens_distortion, Vector2 p_eye_center, float p_k1, float p_k2, float p_upscale, float p_aspect_ratio) {
+void XRInterfaceExtension::add_blit(RID p_render_target, Rect2 p_src_rect, Rect2i p_dst_rect, bool p_use_layer, uint32_t p_layer, bool p_apply_lens_distortion, Vector2 p_eye_center, double p_k1, double p_k2, double p_upscale, double p_aspect_ratio) {
BlitToScreen blit;
ERR_FAIL_COND_MSG(!can_add_blits, "add_blit can only be called from an XR plugin from within _commit_views!");
@@ -246,17 +247,21 @@ void XRInterfaceExtension::notification(int p_what) {
}
RID XRInterfaceExtension::get_render_target_texture(RID p_render_target) {
- RendererStorage *storage = RSG::storage;
- ERR_FAIL_NULL_V_MSG(storage, RID(), "Renderer storage not setup");
+ // In due time this will need to be enhance to return the correct INTERNAL RID for the chosen rendering engine.
+ // So once a GLES driver is implemented we'll return that and the implemented plugin needs to handle this correctly too.
+ RendererStorageRD *rd_storage = RendererStorageRD::base_singleton;
+ ERR_FAIL_NULL_V_MSG(rd_storage, RID(), "Renderer storage not setup");
- return storage->render_target_get_texture(p_render_target);
+ return rd_storage->render_target_get_rd_texture(p_render_target);
}
/*
RID XRInterfaceExtension::get_render_target_depth(RID p_render_target) {
- RendererStorage *storage = RSG::storage;
- ERR_FAIL_NULL_V_MSG(storage, RID(), "Renderer storage not setup");
+ // TODO implement this, the problem is that our depth texture isn't part of our render target as it is used for 3D rendering only
+ // but we don't have access to our render buffers from here....
+ RendererSceneRenderRD * rd_scene = ?????;
+ ERR_FAIL_NULL_V_MSG(rd_scene, RID(), "Renderer scene render not setup");
- return storage->render_target_get_depth(p_render_target);
+ return rd_scene->render_buffers_get_depth_texture(????????????);
}
*/
diff --git a/servers/xr/xr_interface_extension.h b/servers/xr/xr_interface_extension.h
index 94914a7b3f..3b7af4c0a2 100644
--- a/servers/xr/xr_interface_extension.h
+++ b/servers/xr/xr_interface_extension.h
@@ -83,15 +83,15 @@ public:
virtual uint32_t get_view_count() override;
virtual Transform3D get_camera_transform() override;
virtual Transform3D get_transform_for_view(uint32_t p_view, const Transform3D &p_cam_transform) override;
- virtual CameraMatrix get_projection_for_view(uint32_t p_view, real_t p_aspect, real_t p_z_near, real_t p_z_far) override;
+ virtual CameraMatrix get_projection_for_view(uint32_t p_view, double p_aspect, double p_z_near, double p_z_far) override;
GDVIRTUAL0R(Size2, _get_render_target_size);
GDVIRTUAL0R(uint32_t, _get_view_count);
GDVIRTUAL0R(Transform3D, _get_camera_transform);
GDVIRTUAL2R(Transform3D, _get_transform_for_view, uint32_t, const Transform3D &);
- GDVIRTUAL4R(PackedFloat64Array, _get_projection_for_view, uint32_t, real_t, real_t, real_t);
+ GDVIRTUAL4R(PackedFloat64Array, _get_projection_for_view, uint32_t, double, double, double);
- void add_blit(RID p_render_target, Rect2 p_src_rect, Rect2i p_dst_rect, bool p_use_layer = false, uint32_t p_layer = 0, bool p_apply_lens_distortion = false, Vector2 p_eye_center = Vector2(), float p_k1 = 0.0, float p_k2 = 0.0, float p_upscale = 1.0, float p_aspect_ratio = 1.0);
+ void add_blit(RID p_render_target, Rect2 p_src_rect, Rect2i p_dst_rect, bool p_use_layer = false, uint32_t p_layer = 0, bool p_apply_lens_distortion = false, Vector2 p_eye_center = Vector2(), double p_k1 = 0.0, double p_k2 = 0.0, double p_upscale = 1.0, double p_aspect_ratio = 1.0);
virtual Vector<BlitToScreen> commit_views(RID p_render_target, const Rect2 &p_screen_rect) override;
GDVIRTUAL2(_commit_views, RID, const Rect2 &);
diff --git a/servers/xr_server.cpp b/servers/xr_server.cpp
index c18a9f8b4e..f6e6e5953f 100644
--- a/servers/xr_server.cpp
+++ b/servers/xr_server.cpp
@@ -86,11 +86,11 @@ void XRServer::_bind_methods() {
ADD_SIGNAL(MethodInfo("tracker_removed", PropertyInfo(Variant::STRING_NAME, "tracker_name"), PropertyInfo(Variant::INT, "type"), PropertyInfo(Variant::INT, "id")));
};
-real_t XRServer::get_world_scale() const {
+double XRServer::get_world_scale() const {
return world_scale;
};
-void XRServer::set_world_scale(real_t p_world_scale) {
+void XRServer::set_world_scale(double p_world_scale) {
if (p_world_scale < 0.01) {
p_world_scale = 0.01;
} else if (p_world_scale > 1000.0) {
diff --git a/servers/xr_server.h b/servers/xr_server.h
index af183e175d..6d07263755 100644
--- a/servers/xr_server.h
+++ b/servers/xr_server.h
@@ -81,7 +81,7 @@ private:
Ref<XRInterface> primary_interface; /* we'll identify one interface as primary, this will be used by our viewports */
- real_t world_scale; /* scale by which we multiply our tracker positions */
+ double world_scale; /* scale by which we multiply our tracker positions */
Transform3D world_origin; /* our world origin point, maps a location in our virtual world to the origin point in our real world tracking volume */
Transform3D reference_frame; /* our reference frame */
@@ -107,8 +107,8 @@ public:
I may remove access to this property in GDScript in favour of exposing it on the XROrigin3D node
*/
- real_t get_world_scale() const;
- void set_world_scale(real_t p_world_scale);
+ double get_world_scale() const;
+ void set_world_scale(double p_world_scale);
/*
The world maps the 0,0,0 coordinate of our real world coordinate system for our tracking volume to a location in our
diff --git a/tests/test_aabb.h b/tests/test_aabb.h
index c4daa56e5a..2724d9481a 100644
--- a/tests/test_aabb.h
+++ b/tests/test_aabb.h
@@ -65,6 +65,9 @@ TEST_CASE("[AABB] Basic getters") {
CHECK_MESSAGE(
aabb.get_end().is_equal_approx(Vector3(2.5, 7, 3.5)),
"get_end() should return the expected value.");
+ CHECK_MESSAGE(
+ aabb.get_center().is_equal_approx(Vector3(0.5, 4.5, 0.5)),
+ "get_center() should return the expected value.");
}
TEST_CASE("[AABB] Basic setters") {
diff --git a/tests/test_physics_2d.cpp b/tests/test_physics_2d.cpp
index f63b866c3e..f6619db8fd 100644
--- a/tests/test_physics_2d.cpp
+++ b/tests/test_physics_2d.cpp
@@ -199,7 +199,7 @@ protected:
if (mb.is_valid()) {
if (mb->is_pressed()) {
- Point2 p(mb->get_position().x, mb->get_position().y);
+ Point2 p = mb->get_position();
if (mb->get_button_index() == 1) {
ray_to = p;
diff --git a/tests/test_physics_3d.cpp b/tests/test_physics_3d.cpp
index 3d1dad6545..d839ae26b7 100644
--- a/tests/test_physics_3d.cpp
+++ b/tests/test_physics_3d.cpp
@@ -361,7 +361,7 @@ public:
RID mesh_instance = vs->instance_create2(capsule_mesh, scenario);
character = ps->body_create();
- ps->body_set_mode(character, PhysicsServer3D::BODY_MODE_DYNAMIC_LOCKED);
+ ps->body_set_mode(character, PhysicsServer3D::BODY_MODE_DYNAMIC_LINEAR);
ps->body_set_space(character, space);
//todo add space
ps->body_add_shape(character, capsule_shape);
diff --git a/tests/test_rect2.h b/tests/test_rect2.h
index c5740167db..3d9fe5a32e 100644
--- a/tests/test_rect2.h
+++ b/tests/test_rect2.h
@@ -76,6 +76,12 @@ TEST_CASE("[Rect2] Basic getters") {
CHECK_MESSAGE(
rect.get_end().is_equal_approx(Vector2(1280, 820)),
"get_end() should return the expected value.");
+ CHECK_MESSAGE(
+ rect.get_center().is_equal_approx(Vector2(640, 460)),
+ "get_center() should return the expected value.");
+ CHECK_MESSAGE(
+ Rect2(0, 100, 1281, 721).get_center().is_equal_approx(Vector2(640.5, 460.5)),
+ "get_center() should return the expected value.");
}
TEST_CASE("[Rect2] Basic setters") {
@@ -288,6 +294,12 @@ TEST_CASE("[Rect2i] Basic getters") {
CHECK_MESSAGE(
rect.get_end() == Vector2i(1280, 820),
"get_end() should return the expected value.");
+ CHECK_MESSAGE(
+ rect.get_center() == Vector2i(640, 460),
+ "get_center() should return the expected value.");
+ CHECK_MESSAGE(
+ Rect2i(0, 100, 1281, 721).get_center() == Vector2i(640, 460),
+ "get_center() should return the expected value.");
}
TEST_CASE("[Rect2i] Basic setters") {
diff --git a/tests/test_translation.h b/tests/test_translation.h
index 52ff49bf9b..93c53bbbc9 100644
--- a/tests/test_translation.h
+++ b/tests/test_translation.h
@@ -35,6 +35,10 @@
#include "core/string/translation.h"
#include "core/string/translation_po.h"
+#ifdef TOOLS_ENABLED
+#include "editor/import/resource_importer_csv_translation.h"
+#endif
+
#include "thirdparty/doctest/doctest.h"
namespace TestTranslation {
@@ -145,6 +149,33 @@ TEST_CASE("[OptimizedTranslation] Generate from Translation and read messages")
CHECK(messages.size() == 0);
}
+#ifdef TOOLS_ENABLED
+TEST_CASE("[Translation] CSV import") {
+ Ref<ResourceImporterCSVTranslation> import_csv_translation = memnew(ResourceImporterCSVTranslation);
+
+ Map<StringName, Variant> options;
+ options["compress"] = false;
+ options["delimiter"] = 0;
+
+ List<String> gen_files;
+
+ Error result = import_csv_translation->import(TestUtils::get_data_path("translations.csv"),
+ "", options, nullptr, &gen_files);
+ CHECK(result == OK);
+ CHECK(gen_files.size() == 2);
+
+ for (const String &file : gen_files) {
+ Ref<Translation> translation = ResourceLoader::load(file);
+ CHECK(translation.is_valid());
+ TranslationServer::get_singleton()->add_translation(translation);
+ }
+
+ TranslationServer::get_singleton()->set_locale("de");
+
+ CHECK(Object().tr("GOOD_MORNING", "") == "Guten Morgen");
+}
+#endif // TOOLS_ENABLED
+
} // namespace TestTranslation
#endif // TEST_TRANSLATION_H
diff --git a/thirdparty/README.md b/thirdparty/README.md
index 081c18acae..3403a0be31 100644
--- a/thirdparty/README.md
+++ b/thirdparty/README.md
@@ -20,13 +20,15 @@ Files extracted from upstream source:
## bullet
- Upstream: https://github.com/bulletphysics/bullet3
-- Version: 3.08 (df09fd9ed37e365ceae884ca7f620b61607dae2e, 2020)
+- Version: 3.17 (ebe1916b90acae8b13cd8c6b637d8327cdc64e94, 2021)
- License: zlib
Files extracted from upstream source:
-- src/* apart from CMakeLists.txt and premake4.lua files
-- LICENSE.txt
+- `src/*` apart from CMakeLists.txt and premake4.lua files
+- `LICENSE.txt`, and `VERSION` as `VERSION.txt`
+
+Includes a warning fix which should be upstreamed soon (see patch in `patches`).
## certs
@@ -59,7 +61,7 @@ Extracted from .zip provided. Extracted license and header only.
## embree
- Upstream: https://github.com/embree/embree
-- Version: 3.13.0 (7c53133eb21424f7f0ae1e25bf357e358feaf6ab, 2021)
+- Version: 3.13.1 (12b99393438a4cc9e478e33459eed78bec6233fd, 2021)
- License: Apache 2.0
Files extracted from upstream:
@@ -103,7 +105,7 @@ will limit its functionality to IPv4 only.
## etcpak
- Upstream: https://github.com/wolfpld/etcpak
-- Version: git (f27daea656ff77671580f838a889e33049430ebd, 2021)
+- Version: git (7c3cb6fe708d4ae330b0ab2af1ad472bae2a37a2, 2021)
- License: BSD-3-Clause
Files extracted from upstream source:
@@ -159,7 +161,7 @@ Files extracted from upstream source:
## glslang
- Upstream: https://github.com/KhronosGroup/glslang
-- Version: git (dd69df7f3dac26362e10b0f38efb9e47990f7537, 2020)
+- Version: 11.6.0 (2fb89a0072ae7316af1c856f22663fde4928128a, 2021)
- License: glslang
Version should be kept in sync with the one of the used Vulkan SDK (see `vulkan`
@@ -173,7 +175,7 @@ Files extracted from upstream source:
- Run `cmake . && make` and copy generated `include/glslang/build_info.h`
to `glslang/build_info.h`
- `LICENSE.txt`
-- Unnecessary files like `CMakeLists.txt` and `updateGrammar` removed.
+- Unnecessary files like `CMakeLists.txt`, `*.m4` and `updateGrammar` removed.
## graphite
@@ -422,10 +424,6 @@ Collection of single-file libraries used in Godot components.
* Upstream: https://research.activision.com/publications/archives/fast-filtering-of-reflection-probes
File coeffs_const_8.txt (retrieved April 2020)
* License: MIT
-- `easing_equations.cpp`
- * Upstream: http://robertpenner.com/easing/ via https://github.com/jesusgollonet/ofpennereasing (modified to fit Godot types)
- * Version: git (af72c147c3a74e7e872aa28c7e2abfcced04fdce, 2008) + Godot types and style changes
- * License: BSD-3-Clause
- `fastlz.{c,h}`
* Upstream: https://github.com/ariya/FastLZ
* Version: 0.5.0 (4f20f54d46f5a6dd4fae4def134933369b7602d2, 2020)
@@ -494,7 +492,7 @@ Files extracted from the upstream source:
## nanosvg
- Upstream: https://github.com/memononen/nanosvg
-- Version: git (3e403ec72a9145cbbcc6c63d94a4caf079aafec2, 2020)
+- Version: git (ccdb1995134d340a93fb20e3a3d323ccb3838dd0, 2021)
- License: zlib
Files extracted from the upstream source:
@@ -611,9 +609,12 @@ Godot. Please check the file to know what's new.
## spirv-reflect
- Upstream: https://github.com/KhronosGroup/SPIRV-Reflect
-- Version: git (272e050728de8d4a4ce9e7101c1244e6ff56e5b0, 2021)
+- Version: git (cc937caab141d889c9c9dff572c5a6854d5cf9b4, 2021)
- License: Apache 2.0
+Does not track Vulkan SDK releases closely, but try to package a commit newer
+than the matching glslang and Vulkan headers, just in case.
+
Files extracted from upstream source:
- `spirv_reflect.{c,h}`
@@ -672,10 +673,16 @@ folder.
## volk
- Upstream: https://github.com/zeux/volk
-- Version: git (d75c007f375f35612dba3de512ac73f10bf9aa0e, 2021)
+- Version: 1.2.190 (760a782f295a66de7391d6ed573d65e3fb1c8450, 2021)
- License: MIT
-The volk commit should match the version of the Vulkan headers defined below.
+Unless there is a specific reason to package a more recent version, please stick
+to tagged releases. All Vulkan libraries and headers should be kept in sync so:
+
+- Update Vulkan SDK components to the matching tag (see "vulkan").
+- Update glslang (see "glslang").
+- Update spirv-reflect (see "spirv-reflect").
+
Files extracted from upstream source:
@@ -686,11 +693,10 @@ Files extracted from upstream source:
## vulkan
- Upstream: https://github.com/KhronosGroup/Vulkan-Headers
-- Version: sdk-1.2.182.0 (37164a5726f7e6113810f9557903a117498421cf, 2021)
+- Version: 1.2.190 (9e62d027636cd7210f60d934f56107ed6e1579b8, 2021)
- License: Apache 2.0
-Unless there is a specific reason to package a more recent version, please stick
-to Vulkan SDK releases (prefixed by `sdk-`) for all components.
+The vendored version should be kept in sync with volk, see above.
Files extracted from upstream source:
@@ -701,7 +707,7 @@ Files extracted from upstream source:
SDK release: https://github.com/KhronosGroup/Vulkan-ValidationLayers/blob/master/layers/generated/vk_enum_string_helper.h
`vk_mem_alloc.h` is taken from https://github.com/GPUOpen-LibrariesAndSDKs/VulkanMemoryAllocator
-Version: 3.0.0-development (2021-06-21), branch `feature-small-buffers`, commit `cfea2f72851f9ee4a399769f18865047b83711f1`
+Version: 3.0.0-development (2021-07-07), branch `feature-small-buffers`, commit `cfea2f72851f9ee4a399769f18865047b83711f1`
`vk_mem_alloc.cpp` is a Godot file and should be preserved on updates.
Patches in the `patches` directory should be re-applied after updates.
diff --git a/thirdparty/bullet/BulletCollision/CollisionDispatch/btBox2dBox2dCollisionAlgorithm.cpp b/thirdparty/bullet/BulletCollision/CollisionDispatch/btBox2dBox2dCollisionAlgorithm.cpp
index c79623bd57..6873a95d90 100644
--- a/thirdparty/bullet/BulletCollision/CollisionDispatch/btBox2dBox2dCollisionAlgorithm.cpp
+++ b/thirdparty/bullet/BulletCollision/CollisionDispatch/btBox2dBox2dCollisionAlgorithm.cpp
@@ -80,6 +80,7 @@ struct ClipVertex
btVector3 v;
int id;
//b2ContactID id;
+ //b2ContactID id;
};
#define b2Dot(a, b) (a).dot(b)
diff --git a/thirdparty/bullet/BulletCollision/CollisionDispatch/btCollisionObject.h b/thirdparty/bullet/BulletCollision/CollisionDispatch/btCollisionObject.h
index e085c40892..dbe82fd61f 100644
--- a/thirdparty/bullet/BulletCollision/CollisionDispatch/btCollisionObject.h
+++ b/thirdparty/bullet/BulletCollision/CollisionDispatch/btCollisionObject.h
@@ -24,6 +24,7 @@ subject to the following restrictions:
#define WANTS_DEACTIVATION 3
#define DISABLE_DEACTIVATION 4
#define DISABLE_SIMULATION 5
+#define FIXED_BASE_MULTI_BODY 6
struct btBroadphaseProxy;
class btCollisionShape;
@@ -304,7 +305,7 @@ public:
SIMD_FORCE_INLINE bool isActive() const
{
- return ((getActivationState() != ISLAND_SLEEPING) && (getActivationState() != DISABLE_SIMULATION));
+ return ((getActivationState() != FIXED_BASE_MULTI_BODY) && (getActivationState() != ISLAND_SLEEPING) && (getActivationState() != DISABLE_SIMULATION));
}
void setRestitution(btScalar rest)
diff --git a/thirdparty/bullet/BulletCollision/CollisionDispatch/btCollisionWorld.cpp b/thirdparty/bullet/BulletCollision/CollisionDispatch/btCollisionWorld.cpp
index 71184f36ac..f74dcabc54 100644
--- a/thirdparty/bullet/BulletCollision/CollisionDispatch/btCollisionWorld.cpp
+++ b/thirdparty/bullet/BulletCollision/CollisionDispatch/btCollisionWorld.cpp
@@ -1037,7 +1037,7 @@ struct btSingleSweepCallback : public btBroadphaseRayCallback
m_castShape(castShape)
{
btVector3 unnormalizedRayDir = (m_convexToTrans.getOrigin() - m_convexFromTrans.getOrigin());
- btVector3 rayDir = unnormalizedRayDir.normalized();
+ btVector3 rayDir = unnormalizedRayDir.fuzzyZero() ? btVector3(btScalar(0.0), btScalar(0.0), btScalar(0.0)) : unnormalizedRayDir.normalized();
///what about division by zero? --> just set rayDirection[i] to INF/BT_LARGE_FLOAT
m_rayDirectionInverse[0] = rayDir[0] == btScalar(0.0) ? btScalar(BT_LARGE_FLOAT) : btScalar(1.0) / rayDir[0];
m_rayDirectionInverse[1] = rayDir[1] == btScalar(0.0) ? btScalar(BT_LARGE_FLOAT) : btScalar(1.0) / rayDir[1];
@@ -1294,9 +1294,7 @@ public:
btVector3 normalColor(1, 1, 0);
m_debugDrawer->drawLine(center, center + normal, normalColor);
}
- m_debugDrawer->drawLine(wv0, wv1, m_color);
- m_debugDrawer->drawLine(wv1, wv2, m_color);
- m_debugDrawer->drawLine(wv2, wv0, m_color);
+ m_debugDrawer->drawTriangle(wv0, wv1, wv2, m_color, 1.0);
}
};
diff --git a/thirdparty/bullet/BulletCollision/CollisionShapes/btHeightfieldTerrainShape.cpp b/thirdparty/bullet/BulletCollision/CollisionShapes/btHeightfieldTerrainShape.cpp
index cab6980b65..01bf7f67f5 100644
--- a/thirdparty/bullet/BulletCollision/CollisionShapes/btHeightfieldTerrainShape.cpp
+++ b/thirdparty/bullet/BulletCollision/CollisionShapes/btHeightfieldTerrainShape.cpp
@@ -18,12 +18,57 @@ subject to the following restrictions:
#include "LinearMath/btTransformUtil.h"
btHeightfieldTerrainShape::btHeightfieldTerrainShape(
+ int heightStickWidth, int heightStickLength,
+ const float* heightfieldData, btScalar minHeight, btScalar maxHeight,
+ int upAxis, bool flipQuadEdges)
+ : m_userValue3(0), m_triangleInfoMap(0)
+{
+ initialize(heightStickWidth, heightStickLength, heightfieldData,
+ /*heightScale=*/1, minHeight, maxHeight, upAxis, PHY_FLOAT,
+ flipQuadEdges);
+}
+
+btHeightfieldTerrainShape::btHeightfieldTerrainShape(
+ int heightStickWidth, int heightStickLength, const double* heightfieldData,
+ btScalar minHeight, btScalar maxHeight, int upAxis, bool flipQuadEdges)
+ : m_userValue3(0), m_triangleInfoMap(0)
+{
+ initialize(heightStickWidth, heightStickLength, heightfieldData,
+ /*heightScale=*/1, minHeight, maxHeight, upAxis, PHY_DOUBLE,
+ flipQuadEdges);
+}
+
+btHeightfieldTerrainShape::btHeightfieldTerrainShape(
+ int heightStickWidth, int heightStickLength, const short* heightfieldData, btScalar heightScale,
+ btScalar minHeight, btScalar maxHeight, int upAxis, bool flipQuadEdges)
+ : m_userValue3(0), m_triangleInfoMap(0)
+{
+ initialize(heightStickWidth, heightStickLength, heightfieldData,
+ heightScale, minHeight, maxHeight, upAxis, PHY_SHORT,
+ flipQuadEdges);
+}
+
+btHeightfieldTerrainShape::btHeightfieldTerrainShape(
+ int heightStickWidth, int heightStickLength, const unsigned char* heightfieldData, btScalar heightScale,
+ btScalar minHeight, btScalar maxHeight, int upAxis, bool flipQuadEdges)
+ : m_userValue3(0), m_triangleInfoMap(0)
+{
+ initialize(heightStickWidth, heightStickLength, heightfieldData,
+ heightScale, minHeight, maxHeight, upAxis, PHY_UCHAR,
+ flipQuadEdges);
+}
+
+btHeightfieldTerrainShape::btHeightfieldTerrainShape(
int heightStickWidth, int heightStickLength, const void* heightfieldData,
btScalar heightScale, btScalar minHeight, btScalar maxHeight, int upAxis,
PHY_ScalarType hdt, bool flipQuadEdges)
:m_userValue3(0),
m_triangleInfoMap(0)
{
+ // legacy constructor: Assumes PHY_FLOAT means btScalar.
+#ifdef BT_USE_DOUBLE_PRECISION
+ if (hdt == PHY_FLOAT) hdt = PHY_DOUBLE;
+#endif
initialize(heightStickWidth, heightStickLength, heightfieldData,
heightScale, minHeight, maxHeight, upAxis, hdt,
flipQuadEdges);
@@ -33,9 +78,12 @@ btHeightfieldTerrainShape::btHeightfieldTerrainShape(int heightStickWidth, int h
: m_userValue3(0),
m_triangleInfoMap(0)
{
- // legacy constructor: support only float or unsigned char,
- // and min height is zero
+ // legacy constructor: support only btScalar or unsigned char data,
+ // and min height is zero.
PHY_ScalarType hdt = (useFloatData) ? PHY_FLOAT : PHY_UCHAR;
+#ifdef BT_USE_DOUBLE_PRECISION
+ if (hdt == PHY_FLOAT) hdt = PHY_DOUBLE;
+#endif
btScalar minHeight = 0.0f;
// previously, height = uchar * maxHeight / 65535.
@@ -59,7 +107,7 @@ void btHeightfieldTerrainShape::initialize(
// btAssert(heightScale) -- do we care? Trust caller here
btAssert(minHeight <= maxHeight); // && "bad min/max height");
btAssert(upAxis >= 0 && upAxis < 3); // && "bad upAxis--should be in range [0,2]");
- btAssert(hdt != PHY_UCHAR || hdt != PHY_FLOAT || hdt != PHY_SHORT); // && "Bad height data type enum");
+ btAssert(hdt != PHY_UCHAR || hdt != PHY_FLOAT || hdt != PHY_DOUBLE || hdt != PHY_SHORT); // && "Bad height data type enum");
// initialize member variables
m_shapeType = TERRAIN_SHAPE_PROXYTYPE;
@@ -152,6 +200,12 @@ btHeightfieldTerrainShape::getRawHeightFieldValue(int x, int y) const
break;
}
+ case PHY_DOUBLE:
+ {
+ val = m_heightfieldDataDouble[(y * m_heightStickWidth) + x];
+ break;
+ }
+
case PHY_UCHAR:
{
unsigned char heightFieldValue = m_heightfieldDataUnsignedChar[(y * m_heightStickWidth) + x];
@@ -232,6 +286,30 @@ getQuantized(
return (int)(x + 0.5);
}
+// Equivalent to std::minmax({a, b, c}).
+// Performs at most 3 comparisons.
+static btHeightfieldTerrainShape::Range minmaxRange(btScalar a, btScalar b, btScalar c)
+{
+ if (a > b)
+ {
+ if (b > c)
+ return btHeightfieldTerrainShape::Range(c, a);
+ else if (a > c)
+ return btHeightfieldTerrainShape::Range(b, a);
+ else
+ return btHeightfieldTerrainShape::Range(b, c);
+ }
+ else
+ {
+ if (a > c)
+ return btHeightfieldTerrainShape::Range(c, b);
+ else if (b > c)
+ return btHeightfieldTerrainShape::Range(a, b);
+ else
+ return btHeightfieldTerrainShape::Range(a, c);
+ }
+}
+
/// given input vector, return quantized version
/**
This routine is basically determining the gridpoint indices for a given
@@ -334,7 +412,8 @@ void btHeightfieldTerrainShape::processAllTriangles(btTriangleCallback* callback
}
// TODO If m_vboundsGrid is available, use it to determine if we really need to process this area
-
+
+ const Range aabbUpRange(aabbMin[m_upAxis], aabbMax[m_upAxis]);
for (int j = startJ; j < endJ; j++)
{
for (int x = startX; x < endX; x++)
@@ -349,29 +428,51 @@ void btHeightfieldTerrainShape::processAllTriangles(btTriangleCallback* callback
if (m_flipQuadEdges || (m_useDiamondSubdivision && !((j + x) & 1)) || (m_useZigzagSubdivision && !(j & 1)))
{
- //first triangle
getVertex(x, j, vertices[indices[0]]);
getVertex(x, j + 1, vertices[indices[1]]);
getVertex(x + 1, j + 1, vertices[indices[2]]);
- callback->processTriangle(vertices, 2 * x, j);
- //second triangle
- // getVertex(x,j,vertices[0]);//already got this vertex before, thanks to Danny Chapman
- getVertex(x + 1, j + 1, vertices[indices[1]]);
+
+ // Skip triangle processing if the triangle is out-of-AABB.
+ Range upRange = minmaxRange(vertices[0][m_upAxis], vertices[1][m_upAxis], vertices[2][m_upAxis]);
+
+ if (upRange.overlaps(aabbUpRange))
+ callback->processTriangle(vertices, 2 * x, j);
+
+ // already set: getVertex(x, j, vertices[indices[0]])
+
+ // equivalent to: getVertex(x + 1, j + 1, vertices[indices[1]]);
+ vertices[indices[1]] = vertices[indices[2]];
+
getVertex(x + 1, j, vertices[indices[2]]);
- callback->processTriangle(vertices, 2 * x+1, j);
+ upRange.min = btMin(upRange.min, vertices[indices[2]][m_upAxis]);
+ upRange.max = btMax(upRange.max, vertices[indices[2]][m_upAxis]);
+
+ if (upRange.overlaps(aabbUpRange))
+ callback->processTriangle(vertices, 2 * x + 1, j);
}
else
{
- //first triangle
getVertex(x, j, vertices[indices[0]]);
getVertex(x, j + 1, vertices[indices[1]]);
getVertex(x + 1, j, vertices[indices[2]]);
- callback->processTriangle(vertices, 2 * x, j);
- //second triangle
- getVertex(x + 1, j, vertices[indices[0]]);
- //getVertex(x,j+1,vertices[1]);
+
+ // Skip triangle processing if the triangle is out-of-AABB.
+ Range upRange = minmaxRange(vertices[0][m_upAxis], vertices[1][m_upAxis], vertices[2][m_upAxis]);
+
+ if (upRange.overlaps(aabbUpRange))
+ callback->processTriangle(vertices, 2 * x, j);
+
+ // already set: getVertex(x, j + 1, vertices[indices[1]]);
+
+ // equivalent to: getVertex(x + 1, j, vertices[indices[0]]);
+ vertices[indices[0]] = vertices[indices[2]];
+
getVertex(x + 1, j + 1, vertices[indices[2]]);
- callback->processTriangle(vertices, 2 * x+1, j);
+ upRange.min = btMin(upRange.min, vertices[indices[2]][m_upAxis]);
+ upRange.max = btMax(upRange.max, vertices[indices[2]][m_upAxis]);
+
+ if (upRange.overlaps(aabbUpRange))
+ callback->processTriangle(vertices, 2 * x + 1, j);
}
}
}
@@ -846,4 +947,4 @@ void btHeightfieldTerrainShape::buildAccelerator(int chunkSize)
void btHeightfieldTerrainShape::clearAccelerator()
{
m_vboundsGrid.clear();
-} \ No newline at end of file
+}
diff --git a/thirdparty/bullet/BulletCollision/CollisionShapes/btHeightfieldTerrainShape.h b/thirdparty/bullet/BulletCollision/CollisionShapes/btHeightfieldTerrainShape.h
index 2cf3c00721..7e251fa71e 100644
--- a/thirdparty/bullet/BulletCollision/CollisionShapes/btHeightfieldTerrainShape.h
+++ b/thirdparty/bullet/BulletCollision/CollisionShapes/btHeightfieldTerrainShape.h
@@ -50,17 +50,15 @@ subject to the following restrictions:
The heightfield heights are determined from the data type used for the
heightfieldData array.
- - PHY_UCHAR: height at a point is the uchar value at the
+ - unsigned char: height at a point is the uchar value at the
grid point, multipled by heightScale. uchar isn't recommended
because of its inability to deal with negative values, and
low resolution (8-bit).
- - PHY_SHORT: height at a point is the short int value at that grid
+ - short: height at a point is the short int value at that grid
point, multipled by heightScale.
- - PHY_FLOAT: height at a point is the float value at that grid
- point. heightScale is ignored when using the float heightfield
- data type.
+ - float or dobule: height at a point is the value at that grid point.
Whatever the caller specifies as minHeight and maxHeight will be honored.
The class will not inspect the heightfield to discover the actual minimum
@@ -75,6 +73,14 @@ btHeightfieldTerrainShape : public btConcaveShape
public:
struct Range
{
+ Range() {}
+ Range(btScalar min, btScalar max) : min(min), max(max) {}
+
+ bool overlaps(const Range& other) const
+ {
+ return !(min > other.max || max < other.min);
+ }
+
btScalar min;
btScalar max;
};
@@ -95,7 +101,8 @@ protected:
union {
const unsigned char* m_heightfieldDataUnsignedChar;
const short* m_heightfieldDataShort;
- const btScalar* m_heightfieldDataFloat;
+ const float* m_heightfieldDataFloat;
+ const double* m_heightfieldDataDouble;
const void* m_heightfieldDataUnknown;
};
@@ -135,11 +142,33 @@ protected:
public:
BT_DECLARE_ALIGNED_ALLOCATOR();
- /// preferred constructor
+ /// preferred constructors
+ btHeightfieldTerrainShape(
+ int heightStickWidth, int heightStickLength,
+ const float* heightfieldData, btScalar minHeight, btScalar maxHeight,
+ int upAxis, bool flipQuadEdges);
+ btHeightfieldTerrainShape(
+ int heightStickWidth, int heightStickLength,
+ const double* heightfieldData, btScalar minHeight, btScalar maxHeight,
+ int upAxis, bool flipQuadEdges);
+ btHeightfieldTerrainShape(
+ int heightStickWidth, int heightStickLength,
+ const short* heightfieldData, btScalar heightScale, btScalar minHeight, btScalar maxHeight,
+ int upAxis, bool flipQuadEdges);
+ btHeightfieldTerrainShape(
+ int heightStickWidth, int heightStickLength,
+ const unsigned char* heightfieldData, btScalar heightScale, btScalar minHeight, btScalar maxHeight,
+ int upAxis, bool flipQuadEdges);
+
+ /// legacy constructor
/**
This constructor supports a range of heightfield
data types, and allows for a non-zero minimum height value.
heightScale is needed for any integer-based heightfield data types.
+
+ This legacy constructor considers `PHY_FLOAT` to mean `btScalar`.
+ With `BT_USE_DOUBLE_PRECISION`, it will expect `heightfieldData`
+ to be double-precision.
*/
btHeightfieldTerrainShape(int heightStickWidth, int heightStickLength,
const void* heightfieldData, btScalar heightScale,
@@ -150,7 +179,7 @@ public:
/// legacy constructor
/**
The legacy constructor assumes the heightfield has a minimum height
- of zero. Only unsigned char or floats are supported. For legacy
+ of zero. Only unsigned char or btScalar data are supported. For legacy
compatibility reasons, heightScale is calculated as maxHeight / 65535
(and is only used when useFloatData = false).
*/
@@ -218,4 +247,4 @@ public:
}
};
-#endif //BT_HEIGHTFIELD_TERRAIN_SHAPE_H \ No newline at end of file
+#endif //BT_HEIGHTFIELD_TERRAIN_SHAPE_H
diff --git a/thirdparty/bullet/BulletDynamics/Featherstone/btMultiBody.cpp b/thirdparty/bullet/BulletDynamics/Featherstone/btMultiBody.cpp
index 7cb92fa3b4..d7588aedc8 100644
--- a/thirdparty/bullet/BulletDynamics/Featherstone/btMultiBody.cpp
+++ b/thirdparty/bullet/BulletDynamics/Featherstone/btMultiBody.cpp
@@ -33,8 +33,8 @@
namespace
{
-const btScalar SLEEP_EPSILON = btScalar(0.05); // this is a squared velocity (m^2 s^-2)
-const btScalar SLEEP_TIMEOUT = btScalar(2); // in seconds
+const btScalar INITIAL_SLEEP_EPSILON = btScalar(0.05); // this is a squared velocity (m^2 s^-2)
+const btScalar INITIAL_SLEEP_TIMEOUT = btScalar(2); // in seconds
} // namespace
void btMultiBody::spatialTransform(const btMatrix3x3 &rotation_matrix, // rotates vectors in 'from' frame to vectors in 'to' frame
@@ -110,6 +110,9 @@ btMultiBody::btMultiBody(int n_links,
m_canSleep(canSleep),
m_canWakeup(true),
m_sleepTimer(0),
+ m_sleepEpsilon(INITIAL_SLEEP_EPSILON),
+ m_sleepTimeout(INITIAL_SLEEP_TIMEOUT),
+
m_userObjectPointer(0),
m_userIndex2(-1),
m_userIndex(-1),
@@ -1411,7 +1414,7 @@ void btMultiBody::solveImatrix(const btSpatialForceVector &rhs, btSpatialMotionV
}
}
-void btMultiBody::mulMatrix(btScalar *pA, btScalar *pB, int rowsA, int colsA, int rowsB, int colsB, btScalar *pC) const
+void btMultiBody::mulMatrix(const btScalar *pA, const btScalar *pB, int rowsA, int colsA, int rowsB, int colsB, btScalar *pC) const
{
for (int row = 0; row < rowsA; row++)
{
@@ -2104,10 +2107,10 @@ void btMultiBody::checkMotionAndSleepIfRequired(btScalar timestep)
motion += m_realBuf[i] * m_realBuf[i];
}
- if (motion < SLEEP_EPSILON)
+ if (motion < m_sleepEpsilon)
{
m_sleepTimer += timestep;
- if (m_sleepTimer > SLEEP_TIMEOUT)
+ if (m_sleepTimer > m_sleepTimeout)
{
goToSleep();
}
diff --git a/thirdparty/bullet/BulletDynamics/Featherstone/btMultiBody.h b/thirdparty/bullet/BulletDynamics/Featherstone/btMultiBody.h
index 5a3efc9414..345970d261 100644
--- a/thirdparty/bullet/BulletDynamics/Featherstone/btMultiBody.h
+++ b/thirdparty/bullet/BulletDynamics/Featherstone/btMultiBody.h
@@ -545,7 +545,10 @@ public:
{
m_canWakeup = canWakeup;
}
- bool isAwake() const { return m_awake; }
+ bool isAwake() const
+ {
+ return m_awake;
+ }
void wakeUp();
void goToSleep();
void checkMotionAndSleepIfRequired(btScalar timestep);
@@ -726,6 +729,17 @@ public:
bool isLinkAndAllAncestorsKinematic(const int i) const;
+ void setSleepThreshold(btScalar sleepThreshold)
+ {
+ m_sleepEpsilon = sleepThreshold;
+ }
+
+ void setSleepTimeout(btScalar sleepTimeout)
+ {
+ this->m_sleepTimeout = sleepTimeout;
+ }
+
+
private:
btMultiBody(const btMultiBody &); // not implemented
void operator=(const btMultiBody &); // not implemented
@@ -745,7 +759,7 @@ private:
}
}
- void mulMatrix(btScalar * pA, btScalar * pB, int rowsA, int colsA, int rowsB, int colsB, btScalar *pC) const;
+ void mulMatrix(const btScalar *pA, const btScalar *pB, int rowsA, int colsA, int rowsB, int colsB, btScalar *pC) const;
private:
btMultiBodyLinkCollider *m_baseCollider; //can be NULL
@@ -801,6 +815,8 @@ private:
bool m_canSleep;
bool m_canWakeup;
btScalar m_sleepTimer;
+ btScalar m_sleepEpsilon;
+ btScalar m_sleepTimeout;
void *m_userObjectPointer;
int m_userIndex2;
diff --git a/thirdparty/bullet/BulletDynamics/Featherstone/btMultiBodyConstraint.cpp b/thirdparty/bullet/BulletDynamics/Featherstone/btMultiBodyConstraint.cpp
index 1ba5861145..00d5fd5609 100644
--- a/thirdparty/bullet/BulletDynamics/Featherstone/btMultiBodyConstraint.cpp
+++ b/thirdparty/bullet/BulletDynamics/Featherstone/btMultiBodyConstraint.cpp
@@ -61,7 +61,8 @@ btScalar btMultiBodyConstraint::fillMultiBodyConstraint(btMultiBodySolverConstra
btScalar lowerLimit, btScalar upperLimit,
bool angConstraint,
btScalar relaxation,
- bool isFriction, btScalar desiredVelocity, btScalar cfmSlip)
+ bool isFriction, btScalar desiredVelocity, btScalar cfmSlip,
+ btScalar damping)
{
solverConstraint.m_multiBodyA = m_bodyA;
solverConstraint.m_multiBodyB = m_bodyB;
@@ -348,7 +349,7 @@ btScalar btMultiBodyConstraint::fillMultiBodyConstraint(btMultiBodySolverConstra
{
btScalar positionalError = 0.f;
- btScalar velocityError = desiredVelocity - rel_vel; // * damping;
+ btScalar velocityError = (desiredVelocity - rel_vel) * damping;
btScalar erp = infoGlobal.m_erp2;
diff --git a/thirdparty/bullet/BulletDynamics/Featherstone/btMultiBodyConstraint.h b/thirdparty/bullet/BulletDynamics/Featherstone/btMultiBodyConstraint.h
index 4a6007ee3e..1aaa07b69e 100644
--- a/thirdparty/bullet/BulletDynamics/Featherstone/btMultiBodyConstraint.h
+++ b/thirdparty/bullet/BulletDynamics/Featherstone/btMultiBodyConstraint.h
@@ -94,7 +94,7 @@ protected:
bool angConstraint = false,
btScalar relaxation = 1.f,
- bool isFriction = false, btScalar desiredVelocity = 0, btScalar cfmSlip = 0);
+ bool isFriction = false, btScalar desiredVelocity = 0, btScalar cfmSlip = 0, btScalar damping = 1.0);
public:
BT_DECLARE_ALIGNED_ALLOCATOR();
diff --git a/thirdparty/bullet/BulletDynamics/Featherstone/btMultiBodyDynamicsWorld.cpp b/thirdparty/bullet/BulletDynamics/Featherstone/btMultiBodyDynamicsWorld.cpp
index fef95f0c4e..e7af332eb3 100644
--- a/thirdparty/bullet/BulletDynamics/Featherstone/btMultiBodyDynamicsWorld.cpp
+++ b/thirdparty/bullet/BulletDynamics/Featherstone/btMultiBodyDynamicsWorld.cpp
@@ -137,7 +137,14 @@ void btMultiBodyDynamicsWorld::updateActivationState(btScalar timeStep)
btMultiBodyLinkCollider* col = body->getBaseCollider();
if (col && col->getActivationState() == ACTIVE_TAG)
{
- col->setActivationState(WANTS_DEACTIVATION);
+ if (body->hasFixedBase())
+ {
+ col->setActivationState(FIXED_BASE_MULTI_BODY);
+ } else
+ {
+ col->setActivationState(WANTS_DEACTIVATION);
+ }
+
col->setDeactivationTime(0.f);
}
for (int b = 0; b < body->getNumLinks(); b++)
diff --git a/thirdparty/bullet/BulletDynamics/Featherstone/btMultiBodyJointMotor.cpp b/thirdparty/bullet/BulletDynamics/Featherstone/btMultiBodyJointMotor.cpp
index 4372489fa1..fec9b03213 100644
--- a/thirdparty/bullet/BulletDynamics/Featherstone/btMultiBodyJointMotor.cpp
+++ b/thirdparty/bullet/BulletDynamics/Featherstone/btMultiBodyJointMotor.cpp
@@ -43,6 +43,7 @@ void btMultiBodyJointMotor::finalizeMultiDof()
unsigned int offset = 6 + (m_bodyA->getLink(m_linkA).m_dofOffset + linkDoF);
// row 0: the lower bound
+ // row 0: the lower bound
jacobianA(0)[offset] = 1;
m_numDofsFinalized = m_jacSizeBoth;
diff --git a/thirdparty/bullet/BulletDynamics/Featherstone/btMultiBodySphericalJointMotor.cpp b/thirdparty/bullet/BulletDynamics/Featherstone/btMultiBodySphericalJointMotor.cpp
index 5c20d2a0d4..00a7ef3579 100644
--- a/thirdparty/bullet/BulletDynamics/Featherstone/btMultiBodySphericalJointMotor.cpp
+++ b/thirdparty/bullet/BulletDynamics/Featherstone/btMultiBodySphericalJointMotor.cpp
@@ -26,10 +26,13 @@ btMultiBodySphericalJointMotor::btMultiBodySphericalJointMotor(btMultiBody* body
: btMultiBodyConstraint(body, body, link, body->getLink(link).m_parent, 3, true, MULTIBODY_CONSTRAINT_SPHERICAL_MOTOR),
m_desiredVelocity(0, 0, 0),
m_desiredPosition(0,0,0,1),
- m_kd(1.),
- m_kp(0.2),
+ m_use_multi_dof_params(false),
+ m_kd(1., 1., 1.),
+ m_kp(0.2, 0.2, 0.2),
m_erp(1),
- m_rhsClamp(SIMD_INFINITY)
+ m_rhsClamp(SIMD_INFINITY),
+ m_maxAppliedImpulseMultiDof(maxMotorImpulse, maxMotorImpulse, maxMotorImpulse),
+ m_damping(1.0, 1.0, 1.0)
{
m_maxAppliedImpulse = maxMotorImpulse;
@@ -45,6 +48,7 @@ void btMultiBodySphericalJointMotor::finalizeMultiDof()
unsigned int offset = 6 + (m_bodyA->getLink(m_linkA).m_dofOffset + linkDoF);
// row 0: the lower bound
+ // row 0: the lower bound
jacobianA(0)[offset] = 1;
m_numDofsFinalized = m_jacSizeBoth;
@@ -138,7 +142,8 @@ btQuaternion relRot = currentQuat.inverse() * desiredQuat;
btScalar currentVelocity = m_bodyA->getJointVelMultiDof(m_linkA)[dof];
btScalar desiredVelocity = this->m_desiredVelocity[row];
- btScalar velocityError = desiredVelocity - currentVelocity;
+ double kd = m_use_multi_dof_params ? m_kd[row % 3] : m_kd[0];
+ btScalar velocityError = (desiredVelocity - currentVelocity) * kd;
btMatrix3x3 frameAworld;
frameAworld.setIdentity();
@@ -151,12 +156,16 @@ btQuaternion relRot = currentQuat.inverse() * desiredQuat;
case btMultibodyLink::eSpherical:
{
btVector3 constraintNormalAng = frameAworld.getColumn(row % 3);
- posError = m_kp*angleDiff[row % 3];
+ double kp = m_use_multi_dof_params ? m_kp[row % 3] : m_kp[0];
+ posError = kp*angleDiff[row % 3];
+ double max_applied_impulse = m_use_multi_dof_params ? m_maxAppliedImpulseMultiDof[row % 3] : m_maxAppliedImpulse;
fillMultiBodyConstraint(constraintRow, data, 0, 0, constraintNormalAng,
btVector3(0,0,0), dummy, dummy,
posError,
infoGlobal,
- -m_maxAppliedImpulse, m_maxAppliedImpulse, true);
+ -max_applied_impulse, max_applied_impulse, true,
+ 1.0, false, 0, 0,
+ m_damping[row % 3]);
constraintRow.m_orgConstraint = this;
constraintRow.m_orgDofIndex = row;
break;
diff --git a/thirdparty/bullet/BulletDynamics/Featherstone/btMultiBodySphericalJointMotor.h b/thirdparty/bullet/BulletDynamics/Featherstone/btMultiBodySphericalJointMotor.h
index 621beab5a4..bdeccc2e24 100644
--- a/thirdparty/bullet/BulletDynamics/Featherstone/btMultiBodySphericalJointMotor.h
+++ b/thirdparty/bullet/BulletDynamics/Featherstone/btMultiBodySphericalJointMotor.h
@@ -26,10 +26,13 @@ class btMultiBodySphericalJointMotor : public btMultiBodyConstraint
protected:
btVector3 m_desiredVelocity;
btQuaternion m_desiredPosition;
- btScalar m_kd;
- btScalar m_kp;
+ bool m_use_multi_dof_params;
+ btVector3 m_kd;
+ btVector3 m_kp;
btScalar m_erp;
btScalar m_rhsClamp; //maximum error
+ btVector3 m_maxAppliedImpulseMultiDof;
+ btVector3 m_damping;
public:
btMultiBodySphericalJointMotor(btMultiBody* body, int link, btScalar maxMotorImpulse);
@@ -44,16 +47,32 @@ public:
btMultiBodyJacobianData& data,
const btContactSolverInfo& infoGlobal);
- virtual void setVelocityTarget(const btVector3& velTarget, btScalar kd = 1.f)
+ virtual void setVelocityTarget(const btVector3& velTarget, btScalar kd = 1.0)
+ {
+ m_desiredVelocity = velTarget;
+ m_kd = btVector3(kd, kd, kd);
+ m_use_multi_dof_params = false;
+ }
+
+ virtual void setVelocityTargetMultiDof(const btVector3& velTarget, const btVector3& kd = btVector3(1.0, 1.0, 1.0))
{
m_desiredVelocity = velTarget;
m_kd = kd;
+ m_use_multi_dof_params = true;
}
- virtual void setPositionTarget(const btQuaternion& posTarget, btScalar kp = 1.f)
+ virtual void setPositionTarget(const btQuaternion& posTarget, btScalar kp =1.f)
+ {
+ m_desiredPosition = posTarget;
+ m_kp = btVector3(kp, kp, kp);
+ m_use_multi_dof_params = false;
+ }
+
+ virtual void setPositionTargetMultiDof(const btQuaternion& posTarget, const btVector3& kp = btVector3(1.f, 1.f, 1.f))
{
m_desiredPosition = posTarget;
m_kp = kp;
+ m_use_multi_dof_params = true;
}
virtual void setErp(btScalar erp)
@@ -68,6 +87,28 @@ public:
{
m_rhsClamp = rhsClamp;
}
+
+ btScalar getMaxAppliedImpulseMultiDof(int i) const
+ {
+ return m_maxAppliedImpulseMultiDof[i];
+ }
+
+ void setMaxAppliedImpulseMultiDof(const btVector3& maxImp)
+ {
+ m_maxAppliedImpulseMultiDof = maxImp;
+ m_use_multi_dof_params = true;
+ }
+
+ btScalar getDamping(int i) const
+ {
+ return m_damping[i];
+ }
+
+ void setDamping(const btVector3& damping)
+ {
+ m_damping = damping;
+ }
+
virtual void debugDraw(class btIDebugDraw* drawer)
{
//todo(erwincoumans)
diff --git a/thirdparty/bullet/BulletDynamics/MLCPSolvers/btMLCPSolver.cpp b/thirdparty/bullet/BulletDynamics/MLCPSolvers/btMLCPSolver.cpp
index 5d864f2757..ed4e0b686d 100644
--- a/thirdparty/bullet/BulletDynamics/MLCPSolvers/btMLCPSolver.cpp
+++ b/thirdparty/bullet/BulletDynamics/MLCPSolvers/btMLCPSolver.cpp
@@ -532,7 +532,7 @@ void btMLCPSolver::createMLCP(const btContactSolverInfo& infoGlobal)
J_transpose = J.transpose();
btMatrixXu& tmp = m_scratchTmp;
-
+ //Minv.printMatrix("Minv=");
{
{
BT_PROFILE("J*Minv");
@@ -543,7 +543,7 @@ void btMLCPSolver::createMLCP(const btContactSolverInfo& infoGlobal)
m_A = tmp * J_transpose;
}
}
-
+ //J.printMatrix("J");
if (1)
{
// add cfm to the diagonal of m_A
diff --git a/thirdparty/bullet/BulletSoftBody/btDeformableBodySolver.cpp b/thirdparty/bullet/BulletSoftBody/btDeformableBodySolver.cpp
index 4b11fccecb..e81680f019 100644
--- a/thirdparty/bullet/BulletSoftBody/btDeformableBodySolver.cpp
+++ b/thirdparty/bullet/BulletSoftBody/btDeformableBodySolver.cpp
@@ -405,6 +405,10 @@ void btDeformableBodySolver::predictMotion(btScalar solverdt)
for (int i = 0; i < m_softBodies.size(); ++i)
{
btSoftBody* psb = m_softBodies[i];
+ /* Clear contacts */
+ psb->m_nodeRigidContacts.resize(0);
+ psb->m_faceRigidContacts.resize(0);
+ psb->m_faceNodeContacts.resize(0);
if (psb->isActive())
{
@@ -472,10 +476,6 @@ void btDeformableBodySolver::predictDeformableMotion(btSoftBody* psb, btScalar d
{
psb->updateFaceTree(true, true);
}
- /* Clear contacts */
- psb->m_nodeRigidContacts.resize(0);
- psb->m_faceRigidContacts.resize(0);
- psb->m_faceNodeContacts.resize(0);
/* Optimize dbvt's */
// psb->m_ndbvt.optimizeIncremental(1);
// psb->m_fdbvt.optimizeIncremental(1);
diff --git a/thirdparty/bullet/BulletSoftBody/btDeformableMousePickingForce.h b/thirdparty/bullet/BulletSoftBody/btDeformableMousePickingForce.h
index d218d96214..697408355c 100644
--- a/thirdparty/bullet/BulletSoftBody/btDeformableMousePickingForce.h
+++ b/thirdparty/bullet/BulletSoftBody/btDeformableMousePickingForce.h
@@ -29,7 +29,7 @@ class btDeformableMousePickingForce : public btDeformableLagrangianForce
public:
typedef btAlignedObjectArray<btVector3> TVStack;
- btDeformableMousePickingForce(btScalar k, btScalar d, const btSoftBody::Face& face, btVector3 mouse_pos, btScalar maxForce = 0.3) : m_elasticStiffness(k), m_dampingStiffness(d), m_face(face), m_mouse_pos(mouse_pos), m_maxForce(maxForce)
+ btDeformableMousePickingForce(btScalar k, btScalar d, const btSoftBody::Face& face, const btVector3& mouse_pos, btScalar maxForce = 0.3) : m_elasticStiffness(k), m_dampingStiffness(d), m_face(face), m_mouse_pos(mouse_pos), m_maxForce(maxForce)
{
}
diff --git a/thirdparty/bullet/BulletSoftBody/btSoftBody.h b/thirdparty/bullet/BulletSoftBody/btSoftBody.h
index f578487b8c..dfde8fd1e4 100644
--- a/thirdparty/bullet/BulletSoftBody/btSoftBody.h
+++ b/thirdparty/bullet/BulletSoftBody/btSoftBody.h
@@ -1317,8 +1317,8 @@ public:
}
for (int k = 0; k < m_faceNodeContacts.size(); ++k)
{
- int i = indices[k];
- btSoftBody::DeformableFaceNodeContact& c = m_faceNodeContacts[i];
+ int idx = indices[k];
+ btSoftBody::DeformableFaceNodeContact& c = m_faceNodeContacts[idx];
btSoftBody::Node* node = c.m_node;
btSoftBody::Face* face = c.m_face;
const btVector3& w = c.m_bary;
diff --git a/thirdparty/bullet/LinearMath/btIDebugDraw.h b/thirdparty/bullet/LinearMath/btIDebugDraw.h
index 82ec19a69b..df4db2ff5a 100644
--- a/thirdparty/bullet/LinearMath/btIDebugDraw.h
+++ b/thirdparty/bullet/LinearMath/btIDebugDraw.h
@@ -4,8 +4,8 @@ Copyright (c) 2003-2009 Erwin Coumans http://bulletphysics.org
This software is provided 'as-is', without any express or implied warranty.
In no event will the authors be held liable for any damages arising from the use of this software.
-Permission is granted to anyone to use this software for any purpose,
-including commercial applications, and to alter it and redistribute it freely,
+Permission is granted to anyone to use this software for any purpose,
+including commercial applications, and to alter it and redistribute it freely,
subject to the following restrictions:
1. The origin of this software must not be misrepresented; you must not claim that you wrote the original software. If you use this software in a product, an acknowledgment in the product documentation would be appreciated but is not required.
@@ -21,7 +21,7 @@ subject to the following restrictions:
///The btIDebugDraw interface class allows hooking up a debug renderer to visually debug simulations.
///Typical use case: create a debug drawer object, and assign it to a btCollisionWorld or btDynamicsWorld using setDebugDrawer and call debugDrawWorld.
-///A class that implements the btIDebugDraw interface has to implement the drawLine method at a minimum.
+///A class that implements the btIDebugDraw interface will need to provide non-empty implementations of the the drawLine and getDebugMode methods at a minimum.
///For color arguments the X,Y,Z components refer to Red, Green and Blue each in the range [0..1]
class btIDebugDraw
{
diff --git a/thirdparty/bullet/LinearMath/btScalar.h b/thirdparty/bullet/LinearMath/btScalar.h
index 0402146af1..b239217bb6 100644
--- a/thirdparty/bullet/LinearMath/btScalar.h
+++ b/thirdparty/bullet/LinearMath/btScalar.h
@@ -25,7 +25,7 @@ subject to the following restrictions:
#include <float.h>
/* SVN $Revision$ on $Date$ from http://bullet.googlecode.com*/
-#define BT_BULLET_VERSION 308
+#define BT_BULLET_VERSION 317
inline int btGetVersion()
{
diff --git a/thirdparty/bullet/LinearMath/btSerializer.h b/thirdparty/bullet/LinearMath/btSerializer.h
index 4d1c760e24..f18442f23d 100644
--- a/thirdparty/bullet/LinearMath/btSerializer.h
+++ b/thirdparty/bullet/LinearMath/btSerializer.h
@@ -480,8 +480,8 @@ public:
}
buffer[9] = '3';
- buffer[10] = '0';
- buffer[11] = '8';
+ buffer[10] = '1';
+ buffer[11] = '7';
}
virtual void startSerialization()
@@ -499,7 +499,6 @@ public:
writeDNA();
//if we didn't pre-allocate a buffer, we need to create a contiguous buffer now
- int mysize = 0;
if (!m_totalSize)
{
if (m_buffer)
@@ -511,14 +510,12 @@ public:
unsigned char* currentPtr = m_buffer;
writeHeader(m_buffer);
currentPtr += BT_HEADER_LENGTH;
- mysize += BT_HEADER_LENGTH;
for (int i = 0; i < m_chunkPtrs.size(); i++)
{
int curLength = sizeof(btChunk) + m_chunkPtrs[i]->m_length;
memcpy(currentPtr, m_chunkPtrs[i], curLength);
btAlignedFree(m_chunkPtrs[i]);
currentPtr += curLength;
- mysize += curLength;
}
}
diff --git a/thirdparty/bullet/VERSION.txt b/thirdparty/bullet/VERSION.txt
new file mode 100644
index 0000000000..78c8a7428a
--- /dev/null
+++ b/thirdparty/bullet/VERSION.txt
@@ -0,0 +1 @@
+3.17
diff --git a/thirdparty/bullet/patches/bullet-fix-warnings.patch b/thirdparty/bullet/patches/bullet-fix-warnings.patch
new file mode 100644
index 0000000000..69cde1b16e
--- /dev/null
+++ b/thirdparty/bullet/patches/bullet-fix-warnings.patch
@@ -0,0 +1,42 @@
+diff --git a/thirdparty/bullet/BulletSoftBody/btSoftBody.h b/thirdparty/bullet/BulletSoftBody/btSoftBody.h
+index f578487b8c..dfde8fd1e4 100644
+--- a/thirdparty/bullet/BulletSoftBody/btSoftBody.h
++++ b/thirdparty/bullet/BulletSoftBody/btSoftBody.h
+@@ -1317,8 +1317,8 @@ public:
+ }
+ for (int k = 0; k < m_faceNodeContacts.size(); ++k)
+ {
+- int i = indices[k];
+- btSoftBody::DeformableFaceNodeContact& c = m_faceNodeContacts[i];
++ int idx = indices[k];
++ btSoftBody::DeformableFaceNodeContact& c = m_faceNodeContacts[idx];
+ btSoftBody::Node* node = c.m_node;
+ btSoftBody::Face* face = c.m_face;
+ const btVector3& w = c.m_bary;
+diff --git a/thirdparty/bullet/LinearMath/btSerializer.h b/thirdparty/bullet/LinearMath/btSerializer.h
+index ce4fc34e20..11592d2ccd 100644
+--- a/thirdparty/bullet/LinearMath/btSerializer.h
++++ b/thirdparty/bullet/LinearMath/btSerializer.h
+@@ -499,7 +499,6 @@ public:
+ writeDNA();
+
+ //if we didn't pre-allocate a buffer, we need to create a contiguous buffer now
+- int mysize = 0;
+ if (!m_totalSize)
+ {
+ if (m_buffer)
+@@ -511,14 +510,12 @@ public:
+ unsigned char* currentPtr = m_buffer;
+ writeHeader(m_buffer);
+ currentPtr += BT_HEADER_LENGTH;
+- mysize += BT_HEADER_LENGTH;
+ for (int i = 0; i < m_chunkPtrs.size(); i++)
+ {
+ int curLength = sizeof(btChunk) + m_chunkPtrs[i]->m_length;
+ memcpy(currentPtr, m_chunkPtrs[i], curLength);
+ btAlignedFree(m_chunkPtrs[i]);
+ currentPtr += curLength;
+- mysize += curLength;
+ }
+ }
+
diff --git a/thirdparty/etcpak/ProcessRGB.cpp b/thirdparty/etcpak/ProcessRGB.cpp
index 7f4524d105..d60164bcc8 100644
--- a/thirdparty/etcpak/ProcessRGB.cpp
+++ b/thirdparty/etcpak/ProcessRGB.cpp
@@ -1,7 +1,6 @@
#include <array>
#include <string.h>
#include <limits>
-
#ifdef __ARM_NEON
# include <arm_neon.h>
#endif
@@ -29,6 +28,30 @@
# define _bswap64(x) __builtin_bswap64(x)
#endif
+// thresholds for the early compression-mode decision scheme
+// default: 0.03, 0.09, and 0.38
+float ecmd_threshold[3] = { 0.03f, 0.09f, 0.38f };
+
+static const uint8_t ModeUndecided = 0;
+static const uint8_t ModePlanar = 0x1;
+static const uint8_t ModeTH = 0x2;
+
+struct Luma
+{
+#ifdef __AVX2__
+ float max, min;
+ uint8_t minIdx = 255, maxIdx = 255;
+ __m128i luma8;
+#elif defined __ARM_NEON
+ float max, min;
+ uint8_t minIdx = 255, maxIdx = 255;
+ uint8x16_t luma8;
+#else
+ uint8_t max = 0, min = 255, maxIdx = 0, minIdx = 0;
+ uint8_t val[16];
+#endif
+};
+
namespace
{
@@ -570,7 +593,7 @@ struct Plane
__m256i sum4;
};
-static etcpak_force_inline Plane Planar_AVX2(const uint8_t* src)
+static etcpak_force_inline Plane Planar_AVX2( const uint8_t* src, const uint8_t mode )
{
__m128i d0 = _mm_loadu_si128(((__m128i*)src) + 0);
__m128i d1 = _mm_loadu_si128(((__m128i*)src) + 1);
@@ -682,99 +705,103 @@ static etcpak_force_inline Plane Planar_AVX2(const uint8_t* src)
uint32_t rgbv0 = _mm_extract_epi32(cohv, 2);
// Error calculation
- auto ro0 = (rgbho >> 48) & 0x3F;
- auto go0 = (rgbho >> 40) & 0x7F;
- auto bo0 = (rgbho >> 32) & 0x3F;
- auto ro1 = (ro0 >> 4) | (ro0 << 2);
- auto go1 = (go0 >> 6) | (go0 << 1);
- auto bo1 = (bo0 >> 4) | (bo0 << 2);
- auto ro2 = (ro1 << 2) + 2;
- auto go2 = (go1 << 2) + 2;
- auto bo2 = (bo1 << 2) + 2;
-
- __m256i ro3 = _mm256_set1_epi16(ro2);
- __m256i go3 = _mm256_set1_epi16(go2);
- __m256i bo3 = _mm256_set1_epi16(bo2);
-
- auto rh0 = (rgbho >> 16) & 0x3F;
- auto gh0 = (rgbho >> 8) & 0x7F;
- auto bh0 = (rgbho >> 0) & 0x3F;
- auto rh1 = (rh0 >> 4) | (rh0 << 2);
- auto gh1 = (gh0 >> 6) | (gh0 << 1);
- auto bh1 = (bh0 >> 4) | (bh0 << 2);
-
- auto rh2 = rh1 - ro1;
- auto gh2 = gh1 - go1;
- auto bh2 = bh1 - bo1;
-
- __m256i rh3 = _mm256_set1_epi16(rh2);
- __m256i gh3 = _mm256_set1_epi16(gh2);
- __m256i bh3 = _mm256_set1_epi16(bh2);
-
- auto rv0 = (rgbv0 >> 16) & 0x3F;
- auto gv0 = (rgbv0 >> 8) & 0x7F;
- auto bv0 = (rgbv0 >> 0) & 0x3F;
- auto rv1 = (rv0 >> 4) | (rv0 << 2);
- auto gv1 = (gv0 >> 6) | (gv0 << 1);
- auto bv1 = (bv0 >> 4) | (bv0 << 2);
-
- auto rv2 = rv1 - ro1;
- auto gv2 = gv1 - go1;
- auto bv2 = bv1 - bo1;
-
- __m256i rv3 = _mm256_set1_epi16(rv2);
- __m256i gv3 = _mm256_set1_epi16(gv2);
- __m256i bv3 = _mm256_set1_epi16(bv2);
-
- __m256i x = _mm256_set_epi16(3, 3, 3, 3, 2, 2, 2, 2, 1, 1, 1, 1, 0, 0, 0, 0);
-
- __m256i rh4 = _mm256_mullo_epi16(rh3, x);
- __m256i gh4 = _mm256_mullo_epi16(gh3, x);
- __m256i bh4 = _mm256_mullo_epi16(bh3, x);
-
- __m256i y = _mm256_set_epi16(3, 2, 1, 0, 3, 2, 1, 0, 3, 2, 1, 0, 3, 2, 1, 0);
-
- __m256i rv4 = _mm256_mullo_epi16(rv3, y);
- __m256i gv4 = _mm256_mullo_epi16(gv3, y);
- __m256i bv4 = _mm256_mullo_epi16(bv3, y);
-
- __m256i rxy = _mm256_add_epi16(rh4, rv4);
- __m256i gxy = _mm256_add_epi16(gh4, gv4);
- __m256i bxy = _mm256_add_epi16(bh4, bv4);
-
- __m256i rp0 = _mm256_add_epi16(rxy, ro3);
- __m256i gp0 = _mm256_add_epi16(gxy, go3);
- __m256i bp0 = _mm256_add_epi16(bxy, bo3);
-
- __m256i rp1 = _mm256_srai_epi16(rp0, 2);
- __m256i gp1 = _mm256_srai_epi16(gp0, 2);
- __m256i bp1 = _mm256_srai_epi16(bp0, 2);
-
- __m256i rp2 = _mm256_max_epi16(_mm256_min_epi16(rp1, _mm256_set1_epi16(255)), _mm256_setzero_si256());
- __m256i gp2 = _mm256_max_epi16(_mm256_min_epi16(gp1, _mm256_set1_epi16(255)), _mm256_setzero_si256());
- __m256i bp2 = _mm256_max_epi16(_mm256_min_epi16(bp1, _mm256_set1_epi16(255)), _mm256_setzero_si256());
-
- __m256i rdif = _mm256_sub_epi16(r08, rp2);
- __m256i gdif = _mm256_sub_epi16(g08, gp2);
- __m256i bdif = _mm256_sub_epi16(b08, bp2);
-
- __m256i rerr = _mm256_mullo_epi16(rdif, _mm256_set1_epi16(38));
- __m256i gerr = _mm256_mullo_epi16(gdif, _mm256_set1_epi16(76));
- __m256i berr = _mm256_mullo_epi16(bdif, _mm256_set1_epi16(14));
-
- __m256i sum0 = _mm256_add_epi16(rerr, gerr);
- __m256i sum1 = _mm256_add_epi16(sum0, berr);
-
- __m256i sum2 = _mm256_madd_epi16(sum1, sum1);
-
- __m128i sum3 = _mm_add_epi32(_mm256_castsi256_si128(sum2), _mm256_extracti128_si256(sum2, 1));
-
- uint32_t err0 = _mm_extract_epi32(sum3, 0);
- uint32_t err1 = _mm_extract_epi32(sum3, 1);
- uint32_t err2 = _mm_extract_epi32(sum3, 2);
- uint32_t err3 = _mm_extract_epi32(sum3, 3);
-
- uint64_t error = err0 + err1 + err2 + err3;
+ uint64_t error = 0;
+ if( mode != ModePlanar )
+ {
+ auto ro0 = ( rgbho >> 48 ) & 0x3F;
+ auto go0 = ( rgbho >> 40 ) & 0x7F;
+ auto bo0 = ( rgbho >> 32 ) & 0x3F;
+ auto ro1 = ( ro0 >> 4 ) | ( ro0 << 2 );
+ auto go1 = ( go0 >> 6 ) | ( go0 << 1 );
+ auto bo1 = ( bo0 >> 4 ) | ( bo0 << 2 );
+ auto ro2 = ( ro1 << 2 ) + 2;
+ auto go2 = ( go1 << 2 ) + 2;
+ auto bo2 = ( bo1 << 2 ) + 2;
+
+ __m256i ro3 = _mm256_set1_epi16( ro2 );
+ __m256i go3 = _mm256_set1_epi16( go2 );
+ __m256i bo3 = _mm256_set1_epi16( bo2 );
+
+ auto rh0 = ( rgbho >> 16 ) & 0x3F;
+ auto gh0 = ( rgbho >> 8 ) & 0x7F;
+ auto bh0 = ( rgbho >> 0 ) & 0x3F;
+ auto rh1 = ( rh0 >> 4 ) | ( rh0 << 2 );
+ auto gh1 = ( gh0 >> 6 ) | ( gh0 << 1 );
+ auto bh1 = ( bh0 >> 4 ) | ( bh0 << 2 );
+
+ auto rh2 = rh1 - ro1;
+ auto gh2 = gh1 - go1;
+ auto bh2 = bh1 - bo1;
+
+ __m256i rh3 = _mm256_set1_epi16( rh2 );
+ __m256i gh3 = _mm256_set1_epi16( gh2 );
+ __m256i bh3 = _mm256_set1_epi16( bh2 );
+
+ auto rv0 = ( rgbv0 >> 16 ) & 0x3F;
+ auto gv0 = ( rgbv0 >> 8 ) & 0x7F;
+ auto bv0 = ( rgbv0 >> 0 ) & 0x3F;
+ auto rv1 = ( rv0 >> 4 ) | ( rv0 << 2 );
+ auto gv1 = ( gv0 >> 6 ) | ( gv0 << 1 );
+ auto bv1 = ( bv0 >> 4 ) | ( bv0 << 2 );
+
+ auto rv2 = rv1 - ro1;
+ auto gv2 = gv1 - go1;
+ auto bv2 = bv1 - bo1;
+
+ __m256i rv3 = _mm256_set1_epi16( rv2 );
+ __m256i gv3 = _mm256_set1_epi16( gv2 );
+ __m256i bv3 = _mm256_set1_epi16( bv2 );
+
+ __m256i x = _mm256_set_epi16( 3, 3, 3, 3, 2, 2, 2, 2, 1, 1, 1, 1, 0, 0, 0, 0 );
+
+ __m256i rh4 = _mm256_mullo_epi16( rh3, x );
+ __m256i gh4 = _mm256_mullo_epi16( gh3, x );
+ __m256i bh4 = _mm256_mullo_epi16( bh3, x );
+
+ __m256i y = _mm256_set_epi16( 3, 2, 1, 0, 3, 2, 1, 0, 3, 2, 1, 0, 3, 2, 1, 0 );
+
+ __m256i rv4 = _mm256_mullo_epi16( rv3, y );
+ __m256i gv4 = _mm256_mullo_epi16( gv3, y );
+ __m256i bv4 = _mm256_mullo_epi16( bv3, y );
+
+ __m256i rxy = _mm256_add_epi16( rh4, rv4 );
+ __m256i gxy = _mm256_add_epi16( gh4, gv4 );
+ __m256i bxy = _mm256_add_epi16( bh4, bv4 );
+
+ __m256i rp0 = _mm256_add_epi16( rxy, ro3 );
+ __m256i gp0 = _mm256_add_epi16( gxy, go3 );
+ __m256i bp0 = _mm256_add_epi16( bxy, bo3 );
+
+ __m256i rp1 = _mm256_srai_epi16( rp0, 2 );
+ __m256i gp1 = _mm256_srai_epi16( gp0, 2 );
+ __m256i bp1 = _mm256_srai_epi16( bp0, 2 );
+
+ __m256i rp2 = _mm256_max_epi16( _mm256_min_epi16( rp1, _mm256_set1_epi16( 255 ) ), _mm256_setzero_si256() );
+ __m256i gp2 = _mm256_max_epi16( _mm256_min_epi16( gp1, _mm256_set1_epi16( 255 ) ), _mm256_setzero_si256() );
+ __m256i bp2 = _mm256_max_epi16( _mm256_min_epi16( bp1, _mm256_set1_epi16( 255 ) ), _mm256_setzero_si256() );
+
+ __m256i rdif = _mm256_sub_epi16( r08, rp2 );
+ __m256i gdif = _mm256_sub_epi16( g08, gp2 );
+ __m256i bdif = _mm256_sub_epi16( b08, bp2 );
+
+ __m256i rerr = _mm256_mullo_epi16( rdif, _mm256_set1_epi16( 38 ) );
+ __m256i gerr = _mm256_mullo_epi16( gdif, _mm256_set1_epi16( 76 ) );
+ __m256i berr = _mm256_mullo_epi16( bdif, _mm256_set1_epi16( 14 ) );
+
+ __m256i sum0 = _mm256_add_epi16( rerr, gerr );
+ __m256i sum1 = _mm256_add_epi16( sum0, berr );
+
+ __m256i sum2 = _mm256_madd_epi16( sum1, sum1 );
+
+ __m128i sum3 = _mm_add_epi32( _mm256_castsi256_si128( sum2 ), _mm256_extracti128_si256( sum2, 1 ) );
+
+ uint32_t err0 = _mm_extract_epi32( sum3, 0 );
+ uint32_t err1 = _mm_extract_epi32( sum3, 1 );
+ uint32_t err2 = _mm_extract_epi32( sum3, 2 );
+ uint32_t err3 = _mm_extract_epi32( sum3, 3 );
+
+ error = err0 + err1 + err2 + err3;
+ }
/**/
uint32_t rgbv = ( rgbv0 & 0x3F ) | ( ( rgbv0 >> 2 ) & 0x1FC0 ) | ( ( rgbv0 >> 3 ) & 0x7E000 );
@@ -1543,13 +1570,13 @@ static etcpak_force_inline uint8_t convert7(float f)
return (i + 9 - ((i + 9) >> 8) - ((i + 6) >> 8)) >> 2;
}
-static etcpak_force_inline std::pair<uint64_t, uint64_t> Planar(const uint8_t* src)
+static etcpak_force_inline std::pair<uint64_t, uint64_t> Planar( const uint8_t* src, const uint8_t mode )
{
int32_t r = 0;
int32_t g = 0;
int32_t b = 0;
- for (int i = 0; i < 16; ++i)
+ for( int i = 0; i < 16; ++i )
{
b += src[i * 4 + 0];
g += src[i * 4 + 1];
@@ -1617,72 +1644,73 @@ static etcpak_force_inline std::pair<uint64_t, uint64_t> Planar(const uint8_t* s
int32_t cvB = convert6(cvfB);
// Error calculation
- auto ro0 = coR;
- auto go0 = coG;
- auto bo0 = coB;
- auto ro1 = (ro0 >> 4) | (ro0 << 2);
- auto go1 = (go0 >> 6) | (go0 << 1);
- auto bo1 = (bo0 >> 4) | (bo0 << 2);
- auto ro2 = (ro1 << 2) + 2;
- auto go2 = (go1 << 2) + 2;
- auto bo2 = (bo1 << 2) + 2;
-
- auto rh0 = chR;
- auto gh0 = chG;
- auto bh0 = chB;
- auto rh1 = (rh0 >> 4) | (rh0 << 2);
- auto gh1 = (gh0 >> 6) | (gh0 << 1);
- auto bh1 = (bh0 >> 4) | (bh0 << 2);
-
- auto rh2 = rh1 - ro1;
- auto gh2 = gh1 - go1;
- auto bh2 = bh1 - bo1;
-
- auto rv0 = cvR;
- auto gv0 = cvG;
- auto bv0 = cvB;
- auto rv1 = (rv0 >> 4) | (rv0 << 2);
- auto gv1 = (gv0 >> 6) | (gv0 << 1);
- auto bv1 = (bv0 >> 4) | (bv0 << 2);
-
- auto rv2 = rv1 - ro1;
- auto gv2 = gv1 - go1;
- auto bv2 = bv1 - bo1;
-
uint64_t error = 0;
-
- for (int i = 0; i < 16; ++i)
+ if( ModePlanar != mode )
{
- int32_t cR = clampu8((rh2 * (i / 4) + rv2 * (i % 4) + ro2) >> 2);
- int32_t cG = clampu8((gh2 * (i / 4) + gv2 * (i % 4) + go2) >> 2);
- int32_t cB = clampu8((bh2 * (i / 4) + bv2 * (i % 4) + bo2) >> 2);
+ auto ro0 = coR;
+ auto go0 = coG;
+ auto bo0 = coB;
+ auto ro1 = ( ro0 >> 4 ) | ( ro0 << 2 );
+ auto go1 = ( go0 >> 6 ) | ( go0 << 1 );
+ auto bo1 = ( bo0 >> 4 ) | ( bo0 << 2 );
+ auto ro2 = ( ro1 << 2 ) + 2;
+ auto go2 = ( go1 << 2 ) + 2;
+ auto bo2 = ( bo1 << 2 ) + 2;
+
+ auto rh0 = chR;
+ auto gh0 = chG;
+ auto bh0 = chB;
+ auto rh1 = ( rh0 >> 4 ) | ( rh0 << 2 );
+ auto gh1 = ( gh0 >> 6 ) | ( gh0 << 1 );
+ auto bh1 = ( bh0 >> 4 ) | ( bh0 << 2 );
+
+ auto rh2 = rh1 - ro1;
+ auto gh2 = gh1 - go1;
+ auto bh2 = bh1 - bo1;
+
+ auto rv0 = cvR;
+ auto gv0 = cvG;
+ auto bv0 = cvB;
+ auto rv1 = ( rv0 >> 4 ) | ( rv0 << 2 );
+ auto gv1 = ( gv0 >> 6 ) | ( gv0 << 1 );
+ auto bv1 = ( bv0 >> 4 ) | ( bv0 << 2 );
+
+ auto rv2 = rv1 - ro1;
+ auto gv2 = gv1 - go1;
+ auto bv2 = bv1 - bo1;
+ for( int i = 0; i < 16; ++i )
+ {
+ int32_t cR = clampu8( ( rh2 * ( i / 4 ) + rv2 * ( i % 4 ) + ro2 ) >> 2 );
+ int32_t cG = clampu8( ( gh2 * ( i / 4 ) + gv2 * ( i % 4 ) + go2 ) >> 2 );
+ int32_t cB = clampu8( ( bh2 * ( i / 4 ) + bv2 * ( i % 4 ) + bo2 ) >> 2 );
- int32_t difB = static_cast<int>(src[i * 4 + 0]) - cB;
- int32_t difG = static_cast<int>(src[i * 4 + 1]) - cG;
- int32_t difR = static_cast<int>(src[i * 4 + 2]) - cR;
+ int32_t difB = static_cast<int>( src[i * 4 + 0] ) - cB;
+ int32_t difG = static_cast<int>( src[i * 4 + 1] ) - cG;
+ int32_t difR = static_cast<int>( src[i * 4 + 2] ) - cR;
- int32_t dif = difR * 38 + difG * 76 + difB * 14;
+ int32_t dif = difR * 38 + difG * 76 + difB * 14;
- error += dif * dif;
+ error += dif * dif;
+ }
}
/**/
- uint32_t rgbv = cvB | (cvG << 6) | (cvR << 13);
- uint32_t rgbh = chB | (chG << 6) | (chR << 13);
- uint32_t hi = rgbv | ((rgbh & 0x1FFF) << 19);
- uint32_t lo = (chR & 0x1) | 0x2 | ((chR << 1) & 0x7C);
- lo |= ((coB & 0x07) << 7) | ((coB & 0x18) << 8) | ((coB & 0x20) << 11);
- lo |= ((coG & 0x3F) << 17) | ((coG & 0x40) << 18);
+ uint32_t rgbv = cvB | ( cvG << 6 ) | ( cvR << 13 );
+ uint32_t rgbh = chB | ( chG << 6 ) | ( chR << 13 );
+ uint32_t hi = rgbv | ( ( rgbh & 0x1FFF ) << 19 );
+ uint32_t lo = ( chR & 0x1 ) | 0x2 | ( ( chR << 1 ) & 0x7C );
+ lo |= ( ( coB & 0x07 ) << 7 ) | ( ( coB & 0x18 ) << 8 ) | ( ( coB & 0x20 ) << 11 );
+ lo |= ( ( coG & 0x3F ) << 17 ) | ( ( coG & 0x40 ) << 18 );
lo |= coR << 25;
- const auto idx = (coR & 0x20) | ((coG & 0x20) >> 1) | ((coB & 0x1E) >> 1);
+ const auto idx = ( coR & 0x20 ) | ( ( coG & 0x20 ) >> 1 ) | ( ( coB & 0x1E ) >> 1 );
lo |= g_flags[idx];
- uint64_t result = static_cast<uint32_t>(_bswap(lo));
- result |= static_cast<uint64_t>(static_cast<uint32_t>(_bswap(hi))) << 32;
+ uint64_t result = static_cast<uint32_t>( _bswap( lo ) );
+ result |= static_cast<uint64_t>( static_cast<uint32_t>( _bswap( hi ) ) ) << 32;
- return std::make_pair(result, error);
+ return std::make_pair( result, error );
}
#ifdef __ARM_NEON
@@ -1755,7 +1783,7 @@ static etcpak_force_inline int16x4_t convert7_NEON( int32x4_t x )
return vshr_n_s16( vsub_s16( vsub_s16( p9, vshr_n_s16( p9, 8 ) ), vshr_n_s16( p6, 8 ) ), 2 );
}
-static etcpak_force_inline std::pair<uint64_t, uint64_t> Planar_NEON( const uint8_t* src )
+static etcpak_force_inline std::pair<uint64_t, uint64_t> Planar_NEON( const uint8_t* src, const uint8_t mode )
{
uint8x16x4_t srcBlock = vld4q_u8( src );
@@ -1799,66 +1827,70 @@ static etcpak_force_inline std::pair<uint64_t, uint64_t> Planar_NEON( const uint
int16x8_t c_hvoo_br_8 = vorrq_s16( vshrq_n_s16( c_hvoo_br_6, 4 ), vshlq_n_s16( c_hvoo_br_6, 2 ) );
int16x4_t c_hvox_g_8 = vorr_s16( vshr_n_s16( c_hvox_g_7, 6 ), vshl_n_s16( c_hvox_g_7, 1 ) );
- int16x4_t rec_gxbr_o = vext_s16( c_hvox_g_8, vget_high_s16( c_hvoo_br_8 ), 3 );
+ uint64_t error = 0;
+ if( mode != ModePlanar )
+ {
+ int16x4_t rec_gxbr_o = vext_s16( c_hvox_g_8, vget_high_s16( c_hvoo_br_8 ), 3 );
- rec_gxbr_o = vadd_s16( vshl_n_s16( rec_gxbr_o, 2 ), vdup_n_s16( 2 ) );
- int16x8_t rec_ro_wide = vdupq_lane_s16( rec_gxbr_o, 3 );
- int16x8_t rec_go_wide = vdupq_lane_s16( rec_gxbr_o, 0 );
- int16x8_t rec_bo_wide = vdupq_lane_s16( rec_gxbr_o, 1 );
+ rec_gxbr_o = vadd_s16( vshl_n_s16( rec_gxbr_o, 2 ), vdup_n_s16( 2 ) );
+ int16x8_t rec_ro_wide = vdupq_lane_s16( rec_gxbr_o, 3 );
+ int16x8_t rec_go_wide = vdupq_lane_s16( rec_gxbr_o, 0 );
+ int16x8_t rec_bo_wide = vdupq_lane_s16( rec_gxbr_o, 1 );
- int16x4_t br_hv2 = vsub_s16( vget_low_s16( c_hvoo_br_8 ), vget_high_s16( c_hvoo_br_8 ) );
- int16x4_t gg_hv2 = vsub_s16( c_hvox_g_8, vdup_lane_s16( c_hvox_g_8, 2 ) );
+ int16x4_t br_hv2 = vsub_s16( vget_low_s16( c_hvoo_br_8 ), vget_high_s16( c_hvoo_br_8 ) );
+ int16x4_t gg_hv2 = vsub_s16( c_hvox_g_8, vdup_lane_s16( c_hvox_g_8, 2 ) );
- int16x8_t scaleh_lo = { 0, 0, 0, 0, 1, 1, 1, 1 };
- int16x8_t scaleh_hi = { 2, 2, 2, 2, 3, 3, 3, 3 };
- int16x8_t scalev = { 0, 1, 2, 3, 0, 1, 2, 3 };
+ int16x8_t scaleh_lo = { 0, 0, 0, 0, 1, 1, 1, 1 };
+ int16x8_t scaleh_hi = { 2, 2, 2, 2, 3, 3, 3, 3 };
+ int16x8_t scalev = { 0, 1, 2, 3, 0, 1, 2, 3 };
- int16x8_t rec_r_1 = vmlaq_lane_s16( rec_ro_wide, scalev, br_hv2, 3 );
- int16x8_t rec_r_lo = vreinterpretq_s16_u16( vmovl_u8( vqshrun_n_s16( vmlaq_lane_s16( rec_r_1, scaleh_lo, br_hv2, 2 ), 2 ) ) );
- int16x8_t rec_r_hi = vreinterpretq_s16_u16( vmovl_u8( vqshrun_n_s16( vmlaq_lane_s16( rec_r_1, scaleh_hi, br_hv2, 2 ), 2 ) ) );
+ int16x8_t rec_r_1 = vmlaq_lane_s16( rec_ro_wide, scalev, br_hv2, 3 );
+ int16x8_t rec_r_lo = vreinterpretq_s16_u16( vmovl_u8( vqshrun_n_s16( vmlaq_lane_s16( rec_r_1, scaleh_lo, br_hv2, 2 ), 2 ) ) );
+ int16x8_t rec_r_hi = vreinterpretq_s16_u16( vmovl_u8( vqshrun_n_s16( vmlaq_lane_s16( rec_r_1, scaleh_hi, br_hv2, 2 ), 2 ) ) );
- int16x8_t rec_b_1 = vmlaq_lane_s16( rec_bo_wide, scalev, br_hv2, 1 );
- int16x8_t rec_b_lo = vreinterpretq_s16_u16( vmovl_u8( vqshrun_n_s16( vmlaq_lane_s16( rec_b_1, scaleh_lo, br_hv2, 0 ), 2 ) ) );
- int16x8_t rec_b_hi = vreinterpretq_s16_u16( vmovl_u8( vqshrun_n_s16( vmlaq_lane_s16( rec_b_1, scaleh_hi, br_hv2, 0 ), 2 ) ) );
+ int16x8_t rec_b_1 = vmlaq_lane_s16( rec_bo_wide, scalev, br_hv2, 1 );
+ int16x8_t rec_b_lo = vreinterpretq_s16_u16( vmovl_u8( vqshrun_n_s16( vmlaq_lane_s16( rec_b_1, scaleh_lo, br_hv2, 0 ), 2 ) ) );
+ int16x8_t rec_b_hi = vreinterpretq_s16_u16( vmovl_u8( vqshrun_n_s16( vmlaq_lane_s16( rec_b_1, scaleh_hi, br_hv2, 0 ), 2 ) ) );
- int16x8_t rec_g_1 = vmlaq_lane_s16( rec_go_wide, scalev, gg_hv2, 1 );
- int16x8_t rec_g_lo = vreinterpretq_s16_u16( vmovl_u8( vqshrun_n_s16( vmlaq_lane_s16( rec_g_1, scaleh_lo, gg_hv2, 0 ), 2 ) ) );
- int16x8_t rec_g_hi = vreinterpretq_s16_u16( vmovl_u8( vqshrun_n_s16( vmlaq_lane_s16( rec_g_1, scaleh_hi, gg_hv2, 0 ), 2 ) ) );
+ int16x8_t rec_g_1 = vmlaq_lane_s16( rec_go_wide, scalev, gg_hv2, 1 );
+ int16x8_t rec_g_lo = vreinterpretq_s16_u16( vmovl_u8( vqshrun_n_s16( vmlaq_lane_s16( rec_g_1, scaleh_lo, gg_hv2, 0 ), 2 ) ) );
+ int16x8_t rec_g_hi = vreinterpretq_s16_u16( vmovl_u8( vqshrun_n_s16( vmlaq_lane_s16( rec_g_1, scaleh_hi, gg_hv2, 0 ), 2 ) ) );
- int16x8_t dif_r_lo = vsubq_s16( vreinterpretq_s16_u16( vmovl_u8( vget_low_u8( srcBlock.val[2] ) ) ), rec_r_lo );
- int16x8_t dif_r_hi = vsubq_s16( vreinterpretq_s16_u16( vmovl_u8( vget_high_u8( srcBlock.val[2] ) ) ), rec_r_hi );
+ int16x8_t dif_r_lo = vsubq_s16( vreinterpretq_s16_u16( vmovl_u8( vget_low_u8( srcBlock.val[2] ) ) ), rec_r_lo );
+ int16x8_t dif_r_hi = vsubq_s16( vreinterpretq_s16_u16( vmovl_u8( vget_high_u8( srcBlock.val[2] ) ) ), rec_r_hi );
- int16x8_t dif_g_lo = vsubq_s16( vreinterpretq_s16_u16( vmovl_u8( vget_low_u8( srcBlock.val[1] ) ) ), rec_g_lo );
- int16x8_t dif_g_hi = vsubq_s16( vreinterpretq_s16_u16( vmovl_u8( vget_high_u8( srcBlock.val[1] ) ) ), rec_g_hi );
+ int16x8_t dif_g_lo = vsubq_s16( vreinterpretq_s16_u16( vmovl_u8( vget_low_u8( srcBlock.val[1] ) ) ), rec_g_lo );
+ int16x8_t dif_g_hi = vsubq_s16( vreinterpretq_s16_u16( vmovl_u8( vget_high_u8( srcBlock.val[1] ) ) ), rec_g_hi );
- int16x8_t dif_b_lo = vsubq_s16( vreinterpretq_s16_u16( vmovl_u8( vget_low_u8( srcBlock.val[0] ) ) ), rec_b_lo );
- int16x8_t dif_b_hi = vsubq_s16( vreinterpretq_s16_u16( vmovl_u8( vget_high_u8( srcBlock.val[0] ) ) ), rec_b_hi );
+ int16x8_t dif_b_lo = vsubq_s16( vreinterpretq_s16_u16( vmovl_u8( vget_low_u8( srcBlock.val[0] ) ) ), rec_b_lo );
+ int16x8_t dif_b_hi = vsubq_s16( vreinterpretq_s16_u16( vmovl_u8( vget_high_u8( srcBlock.val[0] ) ) ), rec_b_hi );
- int16x8_t dif_lo = vmlaq_n_s16( vmlaq_n_s16( vmulq_n_s16( dif_r_lo, 38 ), dif_g_lo, 76 ), dif_b_lo, 14 );
- int16x8_t dif_hi = vmlaq_n_s16( vmlaq_n_s16( vmulq_n_s16( dif_r_hi, 38 ), dif_g_hi, 76 ), dif_b_hi, 14 );
+ int16x8_t dif_lo = vmlaq_n_s16( vmlaq_n_s16( vmulq_n_s16( dif_r_lo, 38 ), dif_g_lo, 76 ), dif_b_lo, 14 );
+ int16x8_t dif_hi = vmlaq_n_s16( vmlaq_n_s16( vmulq_n_s16( dif_r_hi, 38 ), dif_g_hi, 76 ), dif_b_hi, 14 );
- int16x4_t tmpDif = vget_low_s16( dif_lo );
- int32x4_t difsq_0 = vmull_s16( tmpDif, tmpDif );
- tmpDif = vget_high_s16( dif_lo );
- int32x4_t difsq_1 = vmull_s16( tmpDif, tmpDif );
- tmpDif = vget_low_s16( dif_hi );
- int32x4_t difsq_2 = vmull_s16( tmpDif, tmpDif );
- tmpDif = vget_high_s16( dif_hi );
- int32x4_t difsq_3 = vmull_s16( tmpDif, tmpDif );
+ int16x4_t tmpDif = vget_low_s16( dif_lo );
+ int32x4_t difsq_0 = vmull_s16( tmpDif, tmpDif );
+ tmpDif = vget_high_s16( dif_lo );
+ int32x4_t difsq_1 = vmull_s16( tmpDif, tmpDif );
+ tmpDif = vget_low_s16( dif_hi );
+ int32x4_t difsq_2 = vmull_s16( tmpDif, tmpDif );
+ tmpDif = vget_high_s16( dif_hi );
+ int32x4_t difsq_3 = vmull_s16( tmpDif, tmpDif );
- uint32x4_t difsq_5 = vaddq_u32( vreinterpretq_u32_s32( difsq_0 ), vreinterpretq_u32_s32( difsq_1 ) );
- uint32x4_t difsq_6 = vaddq_u32( vreinterpretq_u32_s32( difsq_2 ), vreinterpretq_u32_s32( difsq_3) );
+ uint32x4_t difsq_5 = vaddq_u32( vreinterpretq_u32_s32( difsq_0 ), vreinterpretq_u32_s32( difsq_1 ) );
+ uint32x4_t difsq_6 = vaddq_u32( vreinterpretq_u32_s32( difsq_2 ), vreinterpretq_u32_s32( difsq_3 ) );
- uint64x2_t difsq_7 = vaddl_u32( vget_low_u32( difsq_5 ), vget_high_u32( difsq_5 ) );
- uint64x2_t difsq_8 = vaddl_u32( vget_low_u32( difsq_6 ), vget_high_u32( difsq_6 ) );
+ uint64x2_t difsq_7 = vaddl_u32( vget_low_u32( difsq_5 ), vget_high_u32( difsq_5 ) );
+ uint64x2_t difsq_8 = vaddl_u32( vget_low_u32( difsq_6 ), vget_high_u32( difsq_6 ) );
- uint64x2_t difsq_9 = vaddq_u64( difsq_7, difsq_8 );
+ uint64x2_t difsq_9 = vaddq_u64( difsq_7, difsq_8 );
#ifdef __aarch64__
- uint64_t error = vaddvq_u64( difsq_9 );
+ error = vaddvq_u64( difsq_9 );
#else
- uint64_t error = vgetq_lane_u64( difsq_9, 0 ) + vgetq_lane_u64( difsq_9, 1 );
+ error = vgetq_lane_u64( difsq_9, 0 ) + vgetq_lane_u64( difsq_9, 1 );
#endif
+ }
int32_t coR = c_hvoo_br_6[6];
int32_t coG = c_hvox_g_7[2];
@@ -1979,13 +2011,272 @@ static etcpak_force_inline uint64_t ProcessRGB( const uint8_t* src )
#endif
}
-static etcpak_force_inline uint64_t ProcessRGB_ETC2( const uint8_t* src )
+#ifdef __AVX2__
+// horizontal min/max functions. https://stackoverflow.com/questions/22256525/horizontal-minimum-and-maximum-using-sse
+// if an error occurs in GCC, please change the value of -march in CFLAGS to a specific value for your CPU (e.g., skylake).
+static inline int16_t hMax( __m128i buffer, uint8_t& idx )
+{
+ __m128i tmp1 = _mm_sub_epi8( _mm_set1_epi8( (char)( 255 ) ), buffer );
+ __m128i tmp2 = _mm_min_epu8( tmp1, _mm_srli_epi16( tmp1, 8 ) );
+ __m128i tmp3 = _mm_minpos_epu16( tmp2 );
+ uint8_t result = 255 - (uint8_t)_mm_cvtsi128_si32( tmp3 );
+ __m128i mask = _mm_cmpeq_epi8( buffer, _mm_set1_epi8( result ) );
+ idx = _tzcnt_u32( _mm_movemask_epi8( mask ) );
+
+ return result;
+}
+#elif defined __ARM_NEON
+static inline int16_t hMax( uint8x16_t buffer, uint8_t& idx )
+{
+ const uint8_t max = vmaxvq_u8( buffer );
+ const uint16x8_t vmax = vdupq_n_u16( max );
+ uint8x16x2_t buff_wide = vzipq_u8( buffer, uint8x16_t() );
+ uint16x8_t lowbuf16 = vreinterpretq_u16_u8( buff_wide.val[0] );
+ uint16x8_t hibuf16 = vreinterpretq_u16_u8( buff_wide.val[1] );
+ uint16x8_t low_eqmask = vceqq_u16( lowbuf16, vmax );
+ uint16x8_t hi_eqmask = vceqq_u16( hibuf16, vmax );
+
+ static const uint16_t mask_lsb[] = {
+ 0x1, 0x2, 0x4, 0x8,
+ 0x10, 0x20, 0x40, 0x80 };
+
+ static const uint16_t mask_msb[] = {
+ 0x100, 0x200, 0x400, 0x800,
+ 0x1000, 0x2000, 0x4000, 0x8000 };
+
+ uint16x8_t vmask_lsb = vld1q_u16( mask_lsb );
+ uint16x8_t vmask_msb = vld1q_u16( mask_msb );
+ uint16x8_t pos_lsb = vandq_u16( vmask_lsb, low_eqmask );
+ uint16x8_t pos_msb = vandq_u16( vmask_msb, hi_eqmask );
+ pos_lsb = vpaddq_u16( pos_lsb, pos_lsb );
+ pos_lsb = vpaddq_u16( pos_lsb, pos_lsb );
+ pos_lsb = vpaddq_u16( pos_lsb, pos_lsb );
+ uint64_t idx_lane1 = vgetq_lane_u64( vreinterpretq_u64_u16( pos_lsb ), 0 );
+ pos_msb = vpaddq_u16( pos_msb, pos_msb );
+ pos_msb = vpaddq_u16( pos_msb, pos_msb );
+ pos_msb = vpaddq_u16( pos_msb, pos_msb );
+ uint32_t idx_lane2 = vgetq_lane_u32( vreinterpretq_u32_u16( pos_msb ), 0 );
+ idx = idx_lane1 != 0 ? __builtin_ctz( idx_lane1 ) : __builtin_ctz( idx_lane2 );
+
+ return max;
+}
+#endif
+
+#ifdef __AVX2__
+static inline int16_t hMin( __m128i buffer, uint8_t& idx )
+{
+ __m128i tmp2 = _mm_min_epu8( buffer, _mm_srli_epi16( buffer, 8 ) );
+ __m128i tmp3 = _mm_minpos_epu16( tmp2 );
+ uint8_t result = (uint8_t)_mm_cvtsi128_si32( tmp3 );
+ __m128i mask = _mm_cmpeq_epi8( buffer, _mm_set1_epi8( result ) );
+ idx = _tzcnt_u32( _mm_movemask_epi8( mask ) );
+ return result;
+}
+#elif defined __ARM_NEON
+static inline int16_t hMin( uint8x16_t buffer, uint8_t& idx )
+{
+ const uint8_t min = vminvq_u8( buffer );
+ const uint16x8_t vmin = vdupq_n_u16( min );
+ uint8x16x2_t buff_wide = vzipq_u8( buffer, uint8x16_t() );
+ uint16x8_t lowbuf16 = vreinterpretq_u16_u8( buff_wide.val[0] );
+ uint16x8_t hibuf16 = vreinterpretq_u16_u8( buff_wide.val[1] );
+ uint16x8_t low_eqmask = vceqq_u16( lowbuf16, vmin );
+ uint16x8_t hi_eqmask = vceqq_u16( hibuf16, vmin );
+
+ static const uint16_t mask_lsb[] = {
+ 0x1, 0x2, 0x4, 0x8,
+ 0x10, 0x20, 0x40, 0x80 };
+
+ static const uint16_t mask_msb[] = {
+ 0x100, 0x200, 0x400, 0x800,
+ 0x1000, 0x2000, 0x4000, 0x8000 };
+
+ uint16x8_t vmask_lsb = vld1q_u16( mask_lsb );
+ uint16x8_t vmask_msb = vld1q_u16( mask_msb );
+ uint16x8_t pos_lsb = vandq_u16( vmask_lsb, low_eqmask );
+ uint16x8_t pos_msb = vandq_u16( vmask_msb, hi_eqmask );
+ pos_lsb = vpaddq_u16( pos_lsb, pos_lsb );
+ pos_lsb = vpaddq_u16( pos_lsb, pos_lsb );
+ pos_lsb = vpaddq_u16( pos_lsb, pos_lsb );
+ uint64_t idx_lane1 = vgetq_lane_u64( vreinterpretq_u64_u16( pos_lsb ), 0 );
+ pos_msb = vpaddq_u16( pos_msb, pos_msb );
+ pos_msb = vpaddq_u16( pos_msb, pos_msb );
+ pos_msb = vpaddq_u16( pos_msb, pos_msb );
+ uint32_t idx_lane2 = vgetq_lane_u32( vreinterpretq_u32_u16( pos_msb ), 0 );
+ idx = idx_lane1 != 0 ? __builtin_ctz( idx_lane1 ) : __builtin_ctz( idx_lane2 );
+
+ return min;
+}
+#endif
+
+static etcpak_force_inline void CalculateLuma( const uint8_t* src, Luma& luma )
+{
+#ifdef __AVX2__
+ __m128i d0 = _mm_loadu_si128( ( (__m128i*)src ) + 0 );
+ __m128i d1 = _mm_loadu_si128( ( (__m128i*)src ) + 1 );
+ __m128i d2 = _mm_loadu_si128( ( (__m128i*)src ) + 2 );
+ __m128i d3 = _mm_loadu_si128( ( (__m128i*)src ) + 3 );
+
+ __m128i rgb0 = _mm_shuffle_epi8( d0, _mm_setr_epi8( 0, 4, 8, 12, 1, 5, 9, 13, 2, 6, 10, 14, -1, -1, -1, -1 ) );
+ __m128i rgb1 = _mm_shuffle_epi8( d1, _mm_setr_epi8( 0, 4, 8, 12, 1, 5, 9, 13, 2, 6, 10, 14, -1, -1, -1, -1 ) );
+ __m128i rgb2 = _mm_shuffle_epi8( d2, _mm_setr_epi8( 0, 4, 8, 12, 1, 5, 9, 13, 2, 6, 10, 14, -1, -1, -1, -1 ) );
+ __m128i rgb3 = _mm_shuffle_epi8( d3, _mm_setr_epi8( 0, 4, 8, 12, 1, 5, 9, 13, 2, 6, 10, 14, -1, -1, -1, -1 ) );
+
+ __m128i rg0 = _mm_unpacklo_epi32( rgb0, rgb1 );
+ __m128i rg1 = _mm_unpacklo_epi32( rgb2, rgb3 );
+ __m128i b0 = _mm_unpackhi_epi32( rgb0, rgb1 );
+ __m128i b1 = _mm_unpackhi_epi32( rgb2, rgb3 );
+
+ // swap channels
+ __m128i b8 = _mm_unpacklo_epi64( rg0, rg1 );
+ __m128i g8 = _mm_unpackhi_epi64( rg0, rg1 );
+ __m128i r8 = _mm_unpacklo_epi64( b0, b1 );
+
+ __m256i b16_luma = _mm256_mullo_epi16( _mm256_cvtepu8_epi16( b8 ), _mm256_set1_epi16( 14 ) );
+ __m256i g16_luma = _mm256_mullo_epi16( _mm256_cvtepu8_epi16( g8 ), _mm256_set1_epi16( 76 ) );
+ __m256i r16_luma = _mm256_mullo_epi16( _mm256_cvtepu8_epi16( r8 ), _mm256_set1_epi16( 38 ) );
+
+ __m256i luma_16bit = _mm256_add_epi16( _mm256_add_epi16( g16_luma, r16_luma ), b16_luma );
+ __m256i luma_8bit_m256i = _mm256_srli_epi16( luma_16bit, 7 );
+ __m128i luma_8bit_lo = _mm256_extractf128_si256( luma_8bit_m256i, 0 );
+ __m128i luma_8bit_hi = _mm256_extractf128_si256( luma_8bit_m256i, 1 );
+
+ static const __m128i interleaving_mask_lo = _mm_set_epi8( 15, 13, 11, 9, 7, 5, 3, 1, 14, 12, 10, 8, 6, 4, 2, 0 );
+ static const __m128i interleaving_mask_hi = _mm_set_epi8( 14, 12, 10, 8, 6, 4, 2, 0, 15, 13, 11, 9, 7, 5, 3, 1 );
+ __m128i luma_8bit_lo_moved = _mm_shuffle_epi8( luma_8bit_lo, interleaving_mask_lo );
+ __m128i luma_8bit_hi_moved = _mm_shuffle_epi8( luma_8bit_hi, interleaving_mask_hi );
+ __m128i luma_8bit = _mm_or_si128( luma_8bit_hi_moved, luma_8bit_lo_moved );
+ luma.luma8 = luma_8bit;
+
+ // min/max calculation
+ luma.min = hMin( luma_8bit, luma.minIdx ) * 0.00392156f;
+ luma.max = hMax( luma_8bit, luma.maxIdx ) * 0.00392156f;
+#elif defined __ARM_NEON
+ //load pixel data into 4 rows
+ uint8x16_t px0 = vld1q_u8( src + 0 );
+ uint8x16_t px1 = vld1q_u8( src + 16 );
+ uint8x16_t px2 = vld1q_u8( src + 32 );
+ uint8x16_t px3 = vld1q_u8( src + 48 );
+
+ uint8x16x2_t px0z1 = vzipq_u8( px0, px1 );
+ uint8x16x2_t px2z3 = vzipq_u8( px2, px3 );
+ uint8x16x2_t px01 = vzipq_u8( px0z1.val[0], px0z1.val[1] );
+ uint8x16x2_t rgb01 = vzipq_u8( px01.val[0], px01.val[1] );
+ uint8x16x2_t px23 = vzipq_u8( px2z3.val[0], px2z3.val[1] );
+ uint8x16x2_t rgb23 = vzipq_u8( px23.val[0], px23.val[1] );
+
+ uint8x16_t rr = vreinterpretq_u8_u64( vzip1q_u64( vreinterpretq_u64_u8( rgb01.val[0] ), vreinterpretq_u64_u8( rgb23.val[0] ) ) );
+ uint8x16_t gg = vreinterpretq_u8_u64( vzip2q_u64( vreinterpretq_u64_u8( rgb01.val[0] ), vreinterpretq_u64_u8( rgb23.val[0] ) ) );
+ uint8x16_t bb = vreinterpretq_u8_u64( vzip1q_u64( vreinterpretq_u64_u8( rgb01.val[1] ), vreinterpretq_u64_u8( rgb23.val[1] ) ) );
+
+ uint8x16x2_t red = vzipq_u8( rr, uint8x16_t() );
+ uint8x16x2_t grn = vzipq_u8( gg, uint8x16_t() );
+ uint8x16x2_t blu = vzipq_u8( bb, uint8x16_t() );
+ uint16x8_t red0 = vmulq_n_u16( vreinterpretq_u16_u8( red.val[0] ), 14 );
+ uint16x8_t red1 = vmulq_n_u16( vreinterpretq_u16_u8( red.val[1] ), 14 );
+ uint16x8_t grn0 = vmulq_n_u16( vreinterpretq_u16_u8( grn.val[0] ), 76 );
+ uint16x8_t grn1 = vmulq_n_u16( vreinterpretq_u16_u8( grn.val[1] ), 76 );
+ uint16x8_t blu0 = vmulq_n_u16( vreinterpretq_u16_u8( blu.val[0] ), 38 );
+ uint16x8_t blu1 = vmulq_n_u16( vreinterpretq_u16_u8( blu.val[1] ), 38 );
+
+ //calculate luma for rows 0,1 and 2,3
+ uint16x8_t lum_r01 = vaddq_u16( vaddq_u16( red0, grn0 ), blu0 );
+ uint16x8_t lum_r23 = vaddq_u16( vaddq_u16( red1, grn1 ), blu1 );
+
+ //divide luma values with right shift and narrow results to 8bit
+ uint8x8_t lum_r01_d = vshrn_n_u16( lum_r01, 7 );
+ uint8x8_t lum_r02_d = vshrn_n_u16( lum_r23, 7 );
+
+ luma.luma8 = vcombine_u8( lum_r01_d, lum_r02_d );
+ //find min and max luma value
+ luma.min = hMin( luma.luma8, luma.minIdx ) * 0.00392156f;
+ luma.max = hMax( luma.luma8, luma.maxIdx ) * 0.00392156f;
+#else
+ for( int i = 0; i < 16; ++i )
+ {
+ luma.val[i] = ( src[i * 4 + 2] * 76 + src[i * 4 + 1] * 150 + src[i * 4] * 28 ) / 254; // luma calculation
+ if( luma.min > luma.val[i] )
+ {
+ luma.min = luma.val[i];
+ luma.minIdx = i;
+ }
+ if( luma.max < luma.val[i] )
+ {
+ luma.max = luma.val[i];
+ luma.maxIdx = i;
+ }
+ }
+#endif
+}
+
+static etcpak_force_inline uint8_t SelectModeETC2( const Luma& luma )
+{
+#if defined __AVX2__ || defined __ARM_NEON
+ const float lumaRange = ( luma.max - luma.min );
+#else
+ const float lumaRange = ( luma.max - luma.min ) * ( 1.f / 255.f );
+#endif
+ // filters a very-low-contrast block
+ if( lumaRange <= ecmd_threshold[0] )
+ {
+ return ModePlanar;
+ }
+ // checks whether a pair of the corner pixels in a block has the min/max luma values;
+ // if so, the ETC2 planar mode is enabled, and otherwise, the ETC1 mode is enabled
+ else if( lumaRange <= ecmd_threshold[1] )
+ {
+#ifdef __AVX2__
+ static const __m128i corner_pair = _mm_set_epi8( 1, 1, 1, 1, 1, 1, 1, 1, 0, 15, 3, 12, 12, 3, 15, 0 );
+ __m128i current_max_min = _mm_set_epi8( 0, 0, 0, 0, 0, 0, 0, 0, luma.minIdx, luma.maxIdx, luma.minIdx, luma.maxIdx, luma.minIdx, luma.maxIdx, luma.minIdx, luma.maxIdx );
+
+ __m128i max_min_result = _mm_cmpeq_epi16( corner_pair, current_max_min );
+
+ int mask = _mm_movemask_epi8( max_min_result );
+ if( mask )
+ {
+ return ModePlanar;
+ }
+#else
+ // check whether a pair of the corner pixels in a block has the min/max luma values;
+ // if so, the ETC2 planar mode is enabled.
+ if( ( luma.minIdx == 0 && luma.maxIdx == 15 ) ||
+ ( luma.minIdx == 15 && luma.maxIdx == 0 ) ||
+ ( luma.minIdx == 3 && luma.maxIdx == 12 ) ||
+ ( luma.minIdx == 12 && luma.maxIdx == 3 ) )
+ {
+ return ModePlanar;
+ }
+#endif
+ }
+ // filters a high-contrast block for checking both ETC1 mode and the ETC2 T/H mode
+ else if( lumaRange >= ecmd_threshold[2] )
+ {
+ return ModeTH;
+ }
+ return 0;
+}
+
+static etcpak_force_inline uint64_t ProcessRGB_ETC2( const uint8_t* src, bool useHeuristics )
{
#ifdef __AVX2__
uint64_t d = CheckSolid_AVX2( src );
if( d != 0 ) return d;
+#else
+ uint64_t d = CheckSolid( src );
+ if (d != 0) return d;
+#endif
+
+ uint8_t mode = ModeUndecided;
+ if( useHeuristics )
+ {
+ Luma luma;
+ CalculateLuma( src, luma );
+ mode = SelectModeETC2( luma );
+ }
+#ifdef __AVX2__
+ auto plane = Planar_AVX2( src, mode );
- auto plane = Planar_AVX2( src );
+ if( useHeuristics && mode == ModePlanar ) return plane.plane;
alignas(32) v4i a[8];
@@ -2020,14 +2311,12 @@ static etcpak_force_inline uint64_t ProcessRGB_ETC2( const uint8_t* src )
return EncodeSelectors_AVX2( d, terr, tsel, (idx % 2) == 1, plane.plane, plane.error );
#else
- uint64_t d = CheckSolid( src );
- if (d != 0) return d;
-
#ifdef __ARM_NEON
- auto result = Planar_NEON( src );
+ auto result = Planar_NEON( src, mode );
#else
- auto result = Planar( src );
+ auto result = Planar( src, mode );
#endif
+ if( result.second == 0 ) return result.first;
v4i a[8];
unsigned int err[4] = {};
@@ -2826,7 +3115,7 @@ void CompressEtc1Alpha( const uint32_t* src, uint64_t* dst, uint32_t blocks, siz
while( --blocks );
}
-void CompressEtc2Alpha( const uint32_t* src, uint64_t* dst, uint32_t blocks, size_t width )
+void CompressEtc2Alpha( const uint32_t* src, uint64_t* dst, uint32_t blocks, size_t width, bool useHeuristics )
{
int w = 0;
uint32_t buf[4*4];
@@ -2880,7 +3169,7 @@ void CompressEtc2Alpha( const uint32_t* src, uint64_t* dst, uint32_t blocks, siz
src += width * 3;
w = 0;
}
- *dst++ = ProcessRGB_ETC2( (uint8_t*)buf );
+ *dst++ = ProcessRGB_ETC2( (uint8_t*)buf, useHeuristics );
}
while( --blocks );
}
@@ -2982,7 +3271,7 @@ void CompressEtc1RgbDither( const uint32_t* src, uint64_t* dst, uint32_t blocks,
while( --blocks );
}
-void CompressEtc2Rgb( const uint32_t* src, uint64_t* dst, uint32_t blocks, size_t width )
+void CompressEtc2Rgb( const uint32_t* src, uint64_t* dst, uint32_t blocks, size_t width, bool useHeuristics )
{
int w = 0;
uint32_t buf[4*4];
@@ -3021,12 +3310,12 @@ void CompressEtc2Rgb( const uint32_t* src, uint64_t* dst, uint32_t blocks, size_
src += width * 3;
w = 0;
}
- *dst++ = ProcessRGB_ETC2( (uint8_t*)buf );
+ *dst++ = ProcessRGB_ETC2( (uint8_t*)buf, useHeuristics );
}
while( --blocks );
}
-void CompressEtc2Rgba( const uint32_t* src, uint64_t* dst, uint32_t blocks, size_t width )
+void CompressEtc2Rgba( const uint32_t* src, uint64_t* dst, uint32_t blocks, size_t width, bool useHeuristics )
{
int w = 0;
uint32_t rgba[4*4];
@@ -3094,7 +3383,7 @@ void CompressEtc2Rgba( const uint32_t* src, uint64_t* dst, uint32_t blocks, size
w = 0;
}
*dst++ = ProcessAlpha_ETC2( alpha );
- *dst++ = ProcessRGB_ETC2( (uint8_t*)rgba );
+ *dst++ = ProcessRGB_ETC2( (uint8_t*)rgba, useHeuristics );
}
while( --blocks );
}
diff --git a/thirdparty/etcpak/ProcessRGB.hpp b/thirdparty/etcpak/ProcessRGB.hpp
index c5555a5bb1..043b46e636 100644
--- a/thirdparty/etcpak/ProcessRGB.hpp
+++ b/thirdparty/etcpak/ProcessRGB.hpp
@@ -4,10 +4,10 @@
#include <stdint.h>
void CompressEtc1Alpha( const uint32_t* src, uint64_t* dst, uint32_t blocks, size_t width );
-void CompressEtc2Alpha( const uint32_t* src, uint64_t* dst, uint32_t blocks, size_t width );
+void CompressEtc2Alpha( const uint32_t* src, uint64_t* dst, uint32_t blocks, size_t width, bool useHeuristics );
void CompressEtc1Rgb( const uint32_t* src, uint64_t* dst, uint32_t blocks, size_t width );
void CompressEtc1RgbDither( const uint32_t* src, uint64_t* dst, uint32_t blocks, size_t width );
-void CompressEtc2Rgb( const uint32_t* src, uint64_t* dst, uint32_t blocks, size_t width );
-void CompressEtc2Rgba( const uint32_t* src, uint64_t* dst, uint32_t blocks, size_t width );
+void CompressEtc2Rgb( const uint32_t* src, uint64_t* dst, uint32_t blocks, size_t width, bool useHeuristics );
+void CompressEtc2Rgba( const uint32_t* src, uint64_t* dst, uint32_t blocks, size_t width, bool useHeuristics );
#endif
diff --git a/thirdparty/glslang/SPIRV/GLSL.ext.EXT.h b/thirdparty/glslang/SPIRV/GLSL.ext.EXT.h
index 20b9e54014..f48f1304d6 100644
--- a/thirdparty/glslang/SPIRV/GLSL.ext.EXT.h
+++ b/thirdparty/glslang/SPIRV/GLSL.ext.EXT.h
@@ -36,6 +36,8 @@ static const char* const E_SPV_EXT_fragment_fully_covered = "SPV_EXT_fragment_fu
static const char* const E_SPV_EXT_fragment_invocation_density = "SPV_EXT_fragment_invocation_density";
static const char* const E_SPV_EXT_demote_to_helper_invocation = "SPV_EXT_demote_to_helper_invocation";
static const char* const E_SPV_EXT_shader_atomic_float_add = "SPV_EXT_shader_atomic_float_add";
+static const char* const E_SPV_EXT_shader_atomic_float16_add = "SPV_EXT_shader_atomic_float16_add";
+static const char* const E_SPV_EXT_shader_atomic_float_min_max = "SPV_EXT_shader_atomic_float_min_max";
static const char* const E_SPV_EXT_shader_image_int64 = "SPV_EXT_shader_image_int64";
#endif // #ifndef GLSLextEXT_H
diff --git a/thirdparty/glslang/SPIRV/GLSL.ext.KHR.h b/thirdparty/glslang/SPIRV/GLSL.ext.KHR.h
index 9610c6eeee..5eb3e94482 100644
--- a/thirdparty/glslang/SPIRV/GLSL.ext.KHR.h
+++ b/thirdparty/glslang/SPIRV/GLSL.ext.KHR.h
@@ -50,5 +50,7 @@ static const char* const E_SPV_KHR_ray_tracing = "SPV_KHR_ray_t
static const char* const E_SPV_KHR_ray_query = "SPV_KHR_ray_query";
static const char* const E_SPV_KHR_fragment_shading_rate = "SPV_KHR_fragment_shading_rate";
static const char* const E_SPV_KHR_terminate_invocation = "SPV_KHR_terminate_invocation";
+static const char* const E_SPV_KHR_workgroup_memory_explicit_layout = "SPV_KHR_workgroup_memory_explicit_layout";
+static const char* const E_SPV_KHR_subgroup_uniform_control_flow = "SPV_KHR_subgroup_uniform_control_flow";
#endif // #ifndef GLSLextKHR_H
diff --git a/thirdparty/glslang/SPIRV/GLSL.ext.NV.h b/thirdparty/glslang/SPIRV/GLSL.ext.NV.h
index 50146da104..93c98bf626 100644
--- a/thirdparty/glslang/SPIRV/GLSL.ext.NV.h
+++ b/thirdparty/glslang/SPIRV/GLSL.ext.NV.h
@@ -69,6 +69,9 @@ const char* const E_SPV_NV_mesh_shader = "SPV_NV_mesh_shader";
//SPV_NV_raytracing
const char* const E_SPV_NV_ray_tracing = "SPV_NV_ray_tracing";
+//SPV_NV_ray_tracing_motion_blur
+const char* const E_SPV_NV_ray_tracing_motion_blur = "SPV_NV_ray_tracing_motion_blur";
+
//SPV_NV_shading_rate
const char* const E_SPV_NV_shading_rate = "SPV_NV_shading_rate";
diff --git a/thirdparty/glslang/SPIRV/GlslangToSpv.cpp b/thirdparty/glslang/SPIRV/GlslangToSpv.cpp
index 1adebef878..c323bcdb09 100644
--- a/thirdparty/glslang/SPIRV/GlslangToSpv.cpp
+++ b/thirdparty/glslang/SPIRV/GlslangToSpv.cpp
@@ -160,6 +160,7 @@ protected:
spv::SelectionControlMask TranslateSwitchControl(const glslang::TIntermSwitch&) const;
spv::LoopControlMask TranslateLoopControl(const glslang::TIntermLoop&, std::vector<unsigned int>& operands) const;
spv::StorageClass TranslateStorageClass(const glslang::TType&);
+ void TranslateLiterals(const glslang::TVector<const glslang::TIntermConstantUnion*>&, std::vector<unsigned>&) const;
void addIndirectionIndexCapabilities(const glslang::TType& baseType, const glslang::TType& indexType);
spv::Id createSpvVariable(const glslang::TIntermSymbol*, spv::Id forcedType);
spv::Id getSampledType(const glslang::TSampler&);
@@ -178,6 +179,7 @@ protected:
spv::Id accessChainLoad(const glslang::TType& type);
void accessChainStore(const glslang::TType& type, spv::Id rvalue);
void multiTypeStore(const glslang::TType&, spv::Id rValue);
+ spv::Id convertLoadedBoolInUniformToUint(const glslang::TType& type, spv::Id nominalTypeId, spv::Id loadedId);
glslang::TLayoutPacking getExplicitLayout(const glslang::TType& type) const;
int getArrayStride(const glslang::TType& arrayType, glslang::TLayoutPacking, glslang::TLayoutMatrix);
int getMatrixStride(const glslang::TType& matrixType, glslang::TLayoutPacking, glslang::TLayoutMatrix);
@@ -255,17 +257,17 @@ protected:
bool nanMinMaxClamp; // true if use NMin/NMax/NClamp instead of FMin/FMax/FClamp
spv::Id stdBuiltins;
spv::Id nonSemanticDebugPrintf;
- std::unordered_map<const char*, spv::Id> extBuiltinMap;
+ std::unordered_map<std::string, spv::Id> extBuiltinMap;
- std::unordered_map<int, spv::Id> symbolValues;
- std::unordered_set<int> rValueParameters; // set of formal function parameters passed as rValues,
+ std::unordered_map<long long, spv::Id> symbolValues;
+ std::unordered_set<long long> rValueParameters; // set of formal function parameters passed as rValues,
// rather than a pointer
std::unordered_map<std::string, spv::Function*> functionMap;
std::unordered_map<const glslang::TTypeList*, spv::Id> structMap[glslang::ElpCount][glslang::ElmCount];
// for mapping glslang block indices to spv indices (e.g., due to hidden members):
- std::unordered_map<int, std::vector<int>> memberRemapper;
+ std::unordered_map<long long, std::vector<int>> memberRemapper;
// for mapping glslang symbol struct to symbol Id
- std::unordered_map<const glslang::TTypeList*, int> glslangTypeToIdMap;
+ std::unordered_map<const glslang::TTypeList*, long long> glslangTypeToIdMap;
std::stack<bool> breakForLoop; // false means break for switch
std::unordered_map<std::string, const glslang::TIntermSymbol*> counterOriginator;
// Map pointee types for EbtReference to their forward pointers
@@ -380,6 +382,7 @@ spv::Decoration TranslateBlockDecoration(const glslang::TType& type, bool useSto
case glslang::EvqBuffer: return useStorageBuffer ? spv::DecorationBlock : spv::DecorationBufferBlock;
case glslang::EvqVaryingIn: return spv::DecorationBlock;
case glslang::EvqVaryingOut: return spv::DecorationBlock;
+ case glslang::EvqShared: return spv::DecorationBlock;
#ifndef GLSLANG_WEB
case glslang::EvqPayload: return spv::DecorationBlock;
case glslang::EvqPayloadIn: return spv::DecorationBlock;
@@ -436,6 +439,7 @@ spv::Decoration TranslateLayoutDecoration(const glslang::TType& type, glslang::T
break;
case glslang::EbtBlock:
switch (type.getQualifier().storage) {
+ case glslang::EvqShared:
case glslang::EvqUniform:
case glslang::EvqBuffer:
switch (type.getQualifier().layoutPacking) {
@@ -1029,6 +1033,10 @@ spv::BuiltIn TGlslangToSpvTraverser::TranslateBuiltInDecoration(glslang::TBuiltI
return spv::BuiltInIncomingRayFlagsKHR;
case glslang::EbvGeometryIndex:
return spv::BuiltInRayGeometryIndexKHR;
+ case glslang::EbvCurrentRayTimeNV:
+ builder.addExtension(spv::E_SPV_NV_ray_tracing_motion_blur);
+ builder.addCapability(spv::CapabilityRayTracingMotionBlurNV);
+ return spv::BuiltInCurrentRayTimeNV;
// barycentrics
case glslang::EbvBaryCoordNV:
@@ -1247,6 +1255,10 @@ spv::StorageClass TGlslangToSpvTraverser::TranslateStorageClass(const glslang::T
{
if (type.getBasicType() == glslang::EbtRayQuery)
return spv::StorageClassPrivate;
+#ifndef GLSLANG_WEB
+ if (type.getQualifier().isSpirvByReference())
+ return spv::StorageClassFunction;
+#endif
if (type.getQualifier().isPipeInput())
return spv::StorageClassInput;
if (type.getQualifier().isPipeOutput())
@@ -1278,6 +1290,12 @@ spv::StorageClass TGlslangToSpvTraverser::TranslateStorageClass(const glslang::T
return spv::StorageClassUniformConstant;
}
+ if (type.getQualifier().storage == glslang::EvqShared && type.getBasicType() == glslang::EbtBlock) {
+ builder.addExtension(spv::E_SPV_KHR_workgroup_memory_explicit_layout);
+ builder.addCapability(spv::CapabilityWorkgroupMemoryExplicitLayoutKHR);
+ return spv::StorageClassWorkgroup;
+ }
+
switch (type.getQualifier().storage) {
case glslang::EvqGlobal: return spv::StorageClassPrivate;
case glslang::EvqConstReadOnly: return spv::StorageClassFunction;
@@ -1289,6 +1307,7 @@ spv::StorageClass TGlslangToSpvTraverser::TranslateStorageClass(const glslang::T
case glslang::EvqHitAttr: return spv::StorageClassHitAttributeKHR;
case glslang::EvqCallableData: return spv::StorageClassCallableDataKHR;
case glslang::EvqCallableDataIn: return spv::StorageClassIncomingCallableDataKHR;
+ case glslang::EvqSpirvStorageClass: return static_cast<spv::StorageClass>(type.getQualifier().spirvStorageClass);
#endif
default:
assert(0);
@@ -1298,6 +1317,52 @@ spv::StorageClass TGlslangToSpvTraverser::TranslateStorageClass(const glslang::T
return spv::StorageClassFunction;
}
+// Translate glslang constants to SPIR-V literals
+void TGlslangToSpvTraverser::TranslateLiterals(const glslang::TVector<const glslang::TIntermConstantUnion*>& constants,
+ std::vector<unsigned>& literals) const
+{
+ for (auto constant : constants) {
+ if (constant->getBasicType() == glslang::EbtFloat) {
+ float floatValue = static_cast<float>(constant->getConstArray()[0].getDConst());
+ unsigned literal = *reinterpret_cast<unsigned*>(&floatValue);
+ literals.push_back(literal);
+ } else if (constant->getBasicType() == glslang::EbtInt) {
+ unsigned literal = constant->getConstArray()[0].getIConst();
+ literals.push_back(literal);
+ } else if (constant->getBasicType() == glslang::EbtUint) {
+ unsigned literal = constant->getConstArray()[0].getUConst();
+ literals.push_back(literal);
+ } else if (constant->getBasicType() == glslang::EbtBool) {
+ unsigned literal = constant->getConstArray()[0].getBConst();
+ literals.push_back(literal);
+ } else if (constant->getBasicType() == glslang::EbtString) {
+ auto str = constant->getConstArray()[0].getSConst()->c_str();
+ unsigned literal = 0;
+ char* literalPtr = reinterpret_cast<char*>(&literal);
+ unsigned charCount = 0;
+ char ch = 0;
+ do {
+ ch = *(str++);
+ *(literalPtr++) = ch;
+ ++charCount;
+ if (charCount == 4) {
+ literals.push_back(literal);
+ literalPtr = reinterpret_cast<char*>(&literal);
+ charCount = 0;
+ }
+ } while (ch != 0);
+
+ // Partial literal is padded with 0
+ if (charCount > 0) {
+ for (; charCount < 4; ++charCount)
+ *(literalPtr++) = 0;
+ literals.push_back(literal);
+ }
+ } else
+ assert(0); // Unexpected type
+ }
+}
+
// Add capabilities pertaining to how an array is indexed.
void TGlslangToSpvTraverser::addIndirectionIndexCapabilities(const glslang::TType& baseType,
const glslang::TType& indexType)
@@ -1485,7 +1550,7 @@ TGlslangToSpvTraverser::TGlslangToSpvTraverser(unsigned int spvVersion,
if (glslangIntermediate->usingPhysicalStorageBuffer()) {
addressingModel = spv::AddressingModelPhysicalStorageBuffer64EXT;
- builder.addIncorporatedExtension(spv::E_SPV_EXT_physical_storage_buffer, spv::Spv_1_5);
+ builder.addIncorporatedExtension(spv::E_SPV_KHR_physical_storage_buffer, spv::Spv_1_5);
builder.addCapability(spv::CapabilityPhysicalStorageBufferAddressesEXT);
}
if (glslangIntermediate->usingVulkanMemoryModel()) {
@@ -1518,6 +1583,13 @@ TGlslangToSpvTraverser::TGlslangToSpvTraverser(unsigned int spvVersion,
builder.addCapability(spv::CapabilityRayTraversalPrimitiveCullingKHR);
}
+#ifndef GLSLANG_WEB
+ if (glslangIntermediate->getSubgroupUniformControlFlow()) {
+ builder.addExtension(spv::E_SPV_KHR_subgroup_uniform_control_flow);
+ builder.addExecutionMode(shaderEntry, spv::ExecutionModeSubgroupUniformControlFlowKHR);
+ }
+#endif
+
unsigned int mode;
switch (glslangIntermediate->getStage()) {
case EShLangVertex:
@@ -1543,15 +1615,16 @@ TGlslangToSpvTraverser::TGlslangToSpvTraverser(unsigned int spvVersion,
builder.addExtension(spv::E_SPV_KHR_post_depth_coverage);
}
- if (glslangIntermediate->getDepth() != glslang::EldUnchanged && glslangIntermediate->isDepthReplacing())
+ if (glslangIntermediate->isDepthReplacing())
builder.addExecutionMode(shaderEntry, spv::ExecutionModeDepthReplacing);
#ifndef GLSLANG_WEB
switch(glslangIntermediate->getDepth()) {
- case glslang::EldGreater: mode = spv::ExecutionModeDepthGreater; break;
- case glslang::EldLess: mode = spv::ExecutionModeDepthLess; break;
- default: mode = spv::ExecutionModeMax; break;
+ case glslang::EldGreater: mode = spv::ExecutionModeDepthGreater; break;
+ case glslang::EldLess: mode = spv::ExecutionModeDepthLess; break;
+ case glslang::EldUnchanged: mode = spv::ExecutionModeDepthUnchanged; break;
+ default: mode = spv::ExecutionModeMax; break;
}
if (mode != spv::ExecutionModeMax)
builder.addExecutionMode(shaderEntry, (spv::ExecutionMode)mode);
@@ -1719,6 +1792,53 @@ TGlslangToSpvTraverser::TGlslangToSpvTraverser(unsigned int spvVersion,
default:
break;
}
+
+#ifndef GLSLANG_WEB
+ //
+ // Add SPIR-V requirements (GL_EXT_spirv_intrinsics)
+ //
+ if (glslangIntermediate->hasSpirvRequirement()) {
+ const glslang::TSpirvRequirement& spirvRequirement = glslangIntermediate->getSpirvRequirement();
+
+ // Add SPIR-V extension requirement
+ for (auto& extension : spirvRequirement.extensions)
+ builder.addExtension(extension.c_str());
+
+ // Add SPIR-V capability requirement
+ for (auto capability : spirvRequirement.capabilities)
+ builder.addCapability(static_cast<spv::Capability>(capability));
+ }
+
+ //
+ // Add SPIR-V execution mode qualifiers (GL_EXT_spirv_intrinsics)
+ //
+ if (glslangIntermediate->hasSpirvExecutionMode()) {
+ const glslang::TSpirvExecutionMode spirvExecutionMode = glslangIntermediate->getSpirvExecutionMode();
+
+ // Add spirv_execution_mode
+ for (auto& mode : spirvExecutionMode.modes) {
+ if (!mode.second.empty()) {
+ std::vector<unsigned> literals;
+ TranslateLiterals(mode.second, literals);
+ builder.addExecutionMode(shaderEntry, static_cast<spv::ExecutionMode>(mode.first), literals);
+ } else
+ builder.addExecutionMode(shaderEntry, static_cast<spv::ExecutionMode>(mode.first));
+ }
+
+ // Add spirv_execution_mode_id
+ for (auto& modeId : spirvExecutionMode.modeIds) {
+ std::vector<spv::Id> operandIds;
+ assert(!modeId.second.empty());
+ for (auto extraOperand : modeId.second) {
+ int nextConst = 0;
+ spv::Id operandId = createSpvConstantFromConstUnionArray(
+ extraOperand->getType(), extraOperand->getConstArray(), nextConst, false);
+ operandIds.push_back(operandId);
+ }
+ builder.addExecutionModeId(shaderEntry, static_cast<spv::ExecutionMode>(modeId.first), operandIds);
+ }
+ }
+#endif
}
// Finish creating SPV, after the traversal is complete.
@@ -1986,7 +2106,7 @@ bool TGlslangToSpvTraverser::visitBinary(glslang::TVisit /* visit */, glslang::T
{
// This may be, e.g., an anonymous block-member selection, which generally need
// index remapping due to hidden members in anonymous blocks.
- int glslangId = glslangTypeToIdMap[node->getLeft()->getType().getStruct()];
+ long long glslangId = glslangTypeToIdMap[node->getLeft()->getType().getStruct()];
if (memberRemapper.find(glslangId) != memberRemapper.end()) {
std::vector<int>& remapper = memberRemapper[glslangId];
assert(remapper.size() > 0);
@@ -2116,6 +2236,49 @@ bool TGlslangToSpvTraverser::visitBinary(glslang::TVisit /* visit */, glslang::T
}
}
+spv::Id TGlslangToSpvTraverser::convertLoadedBoolInUniformToUint(const glslang::TType& type,
+ spv::Id nominalTypeId,
+ spv::Id loadedId)
+{
+ if (builder.isScalarType(nominalTypeId)) {
+ // Conversion for bool
+ spv::Id boolType = builder.makeBoolType();
+ if (nominalTypeId != boolType)
+ return builder.createBinOp(spv::OpINotEqual, boolType, loadedId, builder.makeUintConstant(0));
+ } else if (builder.isVectorType(nominalTypeId)) {
+ // Conversion for bvec
+ int vecSize = builder.getNumTypeComponents(nominalTypeId);
+ spv::Id bvecType = builder.makeVectorType(builder.makeBoolType(), vecSize);
+ if (nominalTypeId != bvecType)
+ loadedId = builder.createBinOp(spv::OpINotEqual, bvecType, loadedId,
+ makeSmearedConstant(builder.makeUintConstant(0), vecSize));
+ } else if (builder.isArrayType(nominalTypeId)) {
+ // Conversion for bool array
+ spv::Id boolArrayTypeId = convertGlslangToSpvType(type);
+ if (nominalTypeId != boolArrayTypeId)
+ {
+ // Use OpCopyLogical from SPIR-V 1.4 if available.
+ if (glslangIntermediate->getSpv().spv >= glslang::EShTargetSpv_1_4)
+ return builder.createUnaryOp(spv::OpCopyLogical, boolArrayTypeId, loadedId);
+
+ glslang::TType glslangElementType(type, 0);
+ spv::Id elementNominalTypeId = builder.getContainedTypeId(nominalTypeId);
+ std::vector<spv::Id> constituents;
+ for (int index = 0; index < type.getOuterArraySize(); ++index) {
+ // get the element
+ spv::Id elementValue = builder.createCompositeExtract(loadedId, elementNominalTypeId, index);
+
+ // recursively convert it
+ spv::Id elementConvertedValue = convertLoadedBoolInUniformToUint(glslangElementType, elementNominalTypeId, elementValue);
+ constituents.push_back(elementConvertedValue);
+ }
+ return builder.createCompositeConstruct(boolArrayTypeId, constituents);
+ }
+ }
+
+ return loadedId;
+}
+
// Figure out what, if any, type changes are needed when accessing a specific built-in.
// Returns <the type SPIR-V requires for declarion, the type to translate to on use>.
// Also see comment for 'forceType', regarding tracking SPIR-V-required types.
@@ -2292,7 +2455,8 @@ bool TGlslangToSpvTraverser::visitUnary(glslang::TVisit /* visit */, glslang::TI
if (node->getOp() == glslang::EOpAtomicCounterIncrement ||
node->getOp() == glslang::EOpAtomicCounterDecrement ||
node->getOp() == glslang::EOpAtomicCounter ||
- node->getOp() == glslang::EOpInterpolateAtCentroid ||
+ (node->getOp() == glslang::EOpInterpolateAtCentroid &&
+ glslangIntermediate->getSource() != glslang::EShSourceHlsl) ||
node->getOp() == glslang::EOpRayQueryProceed ||
node->getOp() == glslang::EOpRayQueryGetRayTMin ||
node->getOp() == glslang::EOpRayQueryGetRayFlags ||
@@ -2300,10 +2464,14 @@ bool TGlslangToSpvTraverser::visitUnary(glslang::TVisit /* visit */, glslang::TI
node->getOp() == glslang::EOpRayQueryGetWorldRayDirection ||
node->getOp() == glslang::EOpRayQueryGetIntersectionCandidateAABBOpaque ||
node->getOp() == glslang::EOpRayQueryTerminate ||
- node->getOp() == glslang::EOpRayQueryConfirmIntersection) {
+ node->getOp() == glslang::EOpRayQueryConfirmIntersection ||
+ (node->getOp() == glslang::EOpSpirvInst && operandNode->getAsTyped()->getQualifier().isSpirvByReference())) {
operand = builder.accessChainGetLValue(); // Special case l-value operands
lvalueCoherentFlags = builder.getAccessChain().coherentFlags;
lvalueCoherentFlags |= TranslateCoherent(operandNode->getAsTyped()->getType());
+ } else if (operandNode->getAsTyped()->getQualifier().isSpirvLiteral()) {
+ // Will be translated to a literal value, make a placeholder here
+ operand = spv::NoResult;
} else
#endif
{
@@ -2324,6 +2492,38 @@ bool TGlslangToSpvTraverser::visitUnary(glslang::TVisit /* visit */, glslang::TI
result = createUnaryOperation(node->getOp(), decorations, resultType(), operand,
node->getOperand()->getBasicType(), lvalueCoherentFlags);
+#ifndef GLSLANG_WEB
+ // it could be attached to a SPIR-V intruction
+ if (!result) {
+ if (node->getOp() == glslang::EOpSpirvInst) {
+ const auto& spirvInst = node->getSpirvInstruction();
+ if (spirvInst.set == "") {
+ spv::IdImmediate idImmOp = {true, operand};
+ if (operandNode->getAsTyped()->getQualifier().isSpirvLiteral()) {
+ // Translate the constant to a literal value
+ std::vector<unsigned> literals;
+ glslang::TVector<const glslang::TIntermConstantUnion*> constants;
+ constants.push_back(operandNode->getAsConstantUnion());
+ TranslateLiterals(constants, literals);
+ idImmOp = {false, literals[0]};
+ }
+
+ if (node->getBasicType() == glslang::EbtVoid)
+ builder.createNoResultOp(static_cast<spv::Op>(spirvInst.id), {idImmOp});
+ else
+ result = builder.createOp(static_cast<spv::Op>(spirvInst.id), resultType(), {idImmOp});
+ } else {
+ result = builder.createBuiltinCall(
+ resultType(), spirvInst.set == "GLSL.std.450" ? stdBuiltins : getExtBuiltins(spirvInst.set.c_str()),
+ spirvInst.id, {operand});
+ }
+
+ if (node->getBasicType() == glslang::EbtVoid)
+ return false; // done with this node
+ }
+ }
+#endif
+
if (result) {
if (invertedType) {
result = createInvertedSwizzle(decorations.precision, *node->getOperand(), result);
@@ -2775,6 +2975,7 @@ bool TGlslangToSpvTraverser::visitAggregate(glslang::TVisit visit, glslang::TInt
break;
case glslang::EOpAtomicAdd:
+ case glslang::EOpAtomicSubtract:
case glslang::EOpAtomicMin:
case glslang::EOpAtomicMax:
case glslang::EOpAtomicAnd:
@@ -2821,6 +3022,7 @@ bool TGlslangToSpvTraverser::visitAggregate(glslang::TVisit visit, glslang::TInt
case glslang::EOpIgnoreIntersectionNV:
case glslang::EOpTerminateRayNV:
case glslang::EOpTraceNV:
+ case glslang::EOpTraceRayMotionNV:
case glslang::EOpTraceKHR:
case glslang::EOpExecuteCallableNV:
case glslang::EOpExecuteCallableKHR:
@@ -2946,6 +3148,7 @@ bool TGlslangToSpvTraverser::visitAggregate(glslang::TVisit visit, glslang::TInt
break;
case glslang::EOpAtomicAdd:
+ case glslang::EOpAtomicSubtract:
case glslang::EOpAtomicMin:
case glslang::EOpAtomicMax:
case glslang::EOpAtomicAnd:
@@ -2966,7 +3169,13 @@ bool TGlslangToSpvTraverser::visitAggregate(glslang::TVisit visit, glslang::TInt
case glslang::EOpInterpolateAtOffset:
case glslang::EOpInterpolateAtVertex:
if (arg == 0) {
- lvalue = true;
+ // If GLSL, use the address of the interpolant argument.
+ // If HLSL, use an internal version of OpInterolates that takes
+ // the rvalue of the interpolant. A fixup pass in spirv-opt
+ // legalization will remove the OpLoad and convert to an lvalue.
+ // Had to do this because legalization will only propagate a
+ // builtin into an rvalue.
+ lvalue = glslangIntermediate->getSource() != glslang::EShSourceHlsl;
// Does it need a swizzle inversion? If so, evaluation is inverted;
// operate first on the swizzle base, then apply the swizzle.
@@ -3012,6 +3221,10 @@ bool TGlslangToSpvTraverser::visitAggregate(glslang::TVisit visit, glslang::TInt
if (arg == 1)
lvalue = true;
break;
+ case glslang::EOpSpirvInst:
+ if (glslangOperands[arg]->getAsTyped()->getQualifier().isSpirvByReference())
+ lvalue = true;
+ break;
#endif
default:
break;
@@ -3109,15 +3322,22 @@ bool TGlslangToSpvTraverser::visitAggregate(glslang::TVisit visit, glslang::TInt
bool cond = glslangOperands[arg]->getAsConstantUnion()->getConstArray()[0].getBConst();
operands.push_back(builder.makeIntConstant(cond ? 1 : 0));
} else if ((arg == 10 && glslangOp == glslang::EOpTraceKHR) ||
+ (arg == 11 && glslangOp == glslang::EOpTraceRayMotionNV) ||
(arg == 1 && glslangOp == glslang::EOpExecuteCallableKHR)) {
- const int opdNum = glslangOp == glslang::EOpTraceKHR ? 10 : 1;
- const int set = glslangOp == glslang::EOpTraceKHR ? 0 : 1;
+ const int opdNum = glslangOp == glslang::EOpTraceKHR ? 10 : (glslangOp == glslang::EOpTraceRayMotionNV ? 11 : 1);
+ const int set = glslangOp == glslang::EOpExecuteCallableKHR ? 1 : 0;
+
const int location = glslangOperands[opdNum]->getAsConstantUnion()->getConstArray()[0].getUConst();
auto itNode = locationToSymbol[set].find(location);
visitSymbol(itNode->second);
spv::Id symId = getSymbolId(itNode->second);
operands.push_back(symId);
- } else {
+#ifndef GLSLANG_WEB
+ } else if (glslangOperands[arg]->getAsTyped()->getQualifier().isSpirvLiteral()) {
+ // Will be translated to a literal value, make a placeholder here
+ operands.push_back(spv::NoResult);
+#endif
+ } else {
operands.push_back(accessChainLoad(glslangOperands[arg]->getAsTyped()->getType()));
}
}
@@ -3155,8 +3375,38 @@ bool TGlslangToSpvTraverser::visitAggregate(glslang::TVisit visit, glslang::TInt
#endif
if (atomic) {
// Handle all atomics
- result = createAtomicOperation(node->getOp(), precision, resultType(), operands, node->getBasicType(),
+ glslang::TBasicType typeProxy = (node->getOp() == glslang::EOpAtomicStore)
+ ? node->getSequence()[0]->getAsTyped()->getBasicType() : node->getBasicType();
+ result = createAtomicOperation(node->getOp(), precision, resultType(), operands, typeProxy,
lvalueCoherentFlags);
+#ifndef GLSLANG_WEB
+ } else if (node->getOp() == glslang::EOpSpirvInst) {
+ const auto& spirvInst = node->getSpirvInstruction();
+ if (spirvInst.set == "") {
+ std::vector<spv::IdImmediate> idImmOps;
+ for (int i = 0; i < glslangOperands.size(); ++i) {
+ if (glslangOperands[i]->getAsTyped()->getQualifier().isSpirvLiteral()) {
+ // Translate the constant to a literal value
+ std::vector<unsigned> literals;
+ glslang::TVector<const glslang::TIntermConstantUnion*> constants;
+ constants.push_back(glslangOperands[i]->getAsConstantUnion());
+ TranslateLiterals(constants, literals);
+ idImmOps.push_back({false, literals[0]});
+ } else
+ idImmOps.push_back({true, operands[i]});
+ }
+
+ if (node->getBasicType() == glslang::EbtVoid)
+ builder.createNoResultOp(static_cast<spv::Op>(spirvInst.id), idImmOps);
+ else
+ result = builder.createOp(static_cast<spv::Op>(spirvInst.id), resultType(), idImmOps);
+ } else {
+ result = builder.createBuiltinCall(
+ resultType(), spirvInst.set == "GLSL.std.450" ? stdBuiltins : getExtBuiltins(spirvInst.set.c_str()),
+ spirvInst.id, operands);
+ }
+ noReturnValue = node->getBasicType() == glslang::EbtVoid;
+#endif
} else if (node->getOp() == glslang::EOpDebugPrintf) {
if (!nonSemanticDebugPrintf) {
nonSemanticDebugPrintf = builder.import("NonSemantic.DebugPrintf");
@@ -3437,6 +3687,11 @@ bool TGlslangToSpvTraverser::visitSwitch(glslang::TVisit /* visit */, glslang::T
void TGlslangToSpvTraverser::visitConstantUnion(glslang::TIntermConstantUnion* node)
{
+#ifndef GLSLANG_WEB
+ if (node->getQualifier().isSpirvLiteral())
+ return; // Translated to a literal value, skip further processing
+#endif
+
int nextConst = 0;
spv::Id constant = createSpvConstantFromConstUnionArray(node->getType(), node->getConstArray(), nextConst, false);
@@ -3623,6 +3878,11 @@ spv::Id TGlslangToSpvTraverser::createSpvVariable(const glslang::TIntermSymbol*
break;
#endif
default:
+ if (storageClass == spv::StorageClassWorkgroup &&
+ node->getType().getBasicType() == glslang::EbtBlock) {
+ builder.addCapability(spv::CapabilityWorkgroupMemoryExplicitLayout16BitAccessKHR);
+ break;
+ }
if (node->getType().contains16BitFloat())
builder.addCapability(spv::CapabilityFloat16);
if (node->getType().contains16BitInt())
@@ -3641,6 +3901,9 @@ spv::Id TGlslangToSpvTraverser::createSpvVariable(const glslang::TIntermSymbol*
} else if (storageClass == spv::StorageClassStorageBuffer) {
builder.addIncorporatedExtension(spv::E_SPV_KHR_8bit_storage, spv::Spv_1_5);
builder.addCapability(spv::CapabilityStorageBuffer8BitAccess);
+ } else if (storageClass == spv::StorageClassWorkgroup &&
+ node->getType().getBasicType() == glslang::EbtBlock) {
+ builder.addCapability(spv::CapabilityWorkgroupMemoryExplicitLayout8BitAccessKHR);
} else {
builder.addCapability(spv::CapabilityInt8);
}
@@ -3652,13 +3915,14 @@ spv::Id TGlslangToSpvTraverser::createSpvVariable(const glslang::TIntermSymbol*
spv::Id initializer = spv::NoResult;
- if (node->getType().getQualifier().storage == glslang::EvqUniform &&
- !node->getConstArray().empty()) {
- int nextConst = 0;
- initializer = createSpvConstantFromConstUnionArray(node->getType(),
- node->getConstArray(),
- nextConst,
- false /* specConst */);
+ if (node->getType().getQualifier().storage == glslang::EvqUniform && !node->getConstArray().empty()) {
+ int nextConst = 0;
+ initializer = createSpvConstantFromConstUnionArray(node->getType(),
+ node->getConstArray(),
+ nextConst,
+ false /* specConst */);
+ } else if (node->getType().getQualifier().isNullInit()) {
+ initializer = builder.makeNullConstant(spvType);
}
return builder.createVariable(spv::NoPrecision, storageClass, spvType, name, initializer);
@@ -3876,6 +4140,77 @@ spv::Id TGlslangToSpvTraverser::convertGlslangToSpvType(const glslang::TType& ty
case glslang::EbtString:
// no type used for OpString
return 0;
+#ifndef GLSLANG_WEB
+ case glslang::EbtSpirvType: {
+ // GL_EXT_spirv_intrinsics
+ const auto& spirvType = type.getSpirvType();
+ const auto& spirvInst = spirvType.spirvInst;
+
+ std::vector<spv::Id> operands;
+ for (const auto& typeParam : spirvType.typeParams) {
+ if (typeParam.isConstant) {
+ // Constant expression
+ if (typeParam.constant->isLiteral()) {
+ if (typeParam.constant->getBasicType() == glslang::EbtFloat) {
+ float floatValue = static_cast<float>(typeParam.constant->getConstArray()[0].getDConst());
+ unsigned literal = *reinterpret_cast<unsigned*>(&floatValue);
+ operands.push_back(literal);
+ } else if (typeParam.constant->getBasicType() == glslang::EbtInt) {
+ unsigned literal = typeParam.constant->getConstArray()[0].getIConst();
+ operands.push_back(literal);
+ } else if (typeParam.constant->getBasicType() == glslang::EbtUint) {
+ unsigned literal = typeParam.constant->getConstArray()[0].getUConst();
+ operands.push_back(literal);
+ } else if (typeParam.constant->getBasicType() == glslang::EbtBool) {
+ unsigned literal = typeParam.constant->getConstArray()[0].getBConst();
+ operands.push_back(literal);
+ } else if (typeParam.constant->getBasicType() == glslang::EbtString) {
+ auto str = typeParam.constant->getConstArray()[0].getSConst()->c_str();
+ unsigned literal = 0;
+ char* literalPtr = reinterpret_cast<char*>(&literal);
+ unsigned charCount = 0;
+ char ch = 0;
+ do {
+ ch = *(str++);
+ *(literalPtr++) = ch;
+ ++charCount;
+ if (charCount == 4) {
+ operands.push_back(literal);
+ literalPtr = reinterpret_cast<char*>(&literal);
+ charCount = 0;
+ }
+ } while (ch != 0);
+
+ // Partial literal is padded with 0
+ if (charCount > 0) {
+ for (; charCount < 4; ++charCount)
+ *(literalPtr++) = 0;
+ operands.push_back(literal);
+ }
+ } else
+ assert(0); // Unexpected type
+ } else {
+ int nextConst = 0;
+ spv::Id constant = createSpvConstantFromConstUnionArray(
+ typeParam.constant->getType(), typeParam.constant->getConstArray(), nextConst, false);
+ operands.push_back(constant);
+ }
+ } else {
+ // Type specifier
+ spv::Id typeId = convertGlslangToSpvType(*typeParam.type);
+ operands.push_back(typeId);
+ }
+ }
+
+ if (spirvInst.set == "")
+ spvType = builder.createOp(static_cast<spv::Op>(spirvInst.id), spv::NoType, operands);
+ else {
+ spvType = builder.createBuiltinCall(
+ spv::NoType, getExtBuiltins(spirvInst.set.c_str()), spirvInst.id, operands);
+ }
+ break;
+ }
+#endif
default:
assert(0);
break;
@@ -4072,7 +4407,6 @@ void TGlslangToSpvTraverser::decorateStructType(const glslang::TType& type,
{
// Name and decorate the non-hidden members
int offset = -1;
- int locationOffset = 0; // for use within the members of this struct
bool memberLocationInvalid = type.isArrayOfArrays() ||
(type.isArray() && (type.getQualifier().isArrayedIo(glslangIntermediate->getStage()) == false));
for (int i = 0; i < (int)glslangMembers->size(); i++) {
@@ -4130,10 +4464,6 @@ void TGlslangToSpvTraverser::decorateStructType(const glslang::TType& type,
if (!memberLocationInvalid && memberQualifier.hasLocation())
builder.addMemberDecoration(spvType, member, spv::DecorationLocation, memberQualifier.layoutLocation);
- if (qualifier.hasLocation()) // track for upcoming inheritance
- locationOffset += glslangIntermediate->computeTypeLocationSize(
- glslangMember, glslangIntermediate->getStage());
-
// component, XFB, others
if (glslangMember.getQualifier().hasComponent())
builder.addMemberDecoration(spvType, member, spv::DecorationComponent,
@@ -4189,6 +4519,38 @@ void TGlslangToSpvTraverser::decorateStructType(const glslang::TType& type,
builder.addCapability(spv::CapabilityGeometryShaderPassthroughNV);
builder.addExtension(spv::E_SPV_NV_geometry_shader_passthrough);
}
+
+ //
+ // Add SPIR-V decorations for members (GL_EXT_spirv_intrinsics)
+ //
+ if (glslangMember.getQualifier().hasSprivDecorate()) {
+ const glslang::TSpirvDecorate& spirvDecorate = glslangMember.getQualifier().getSpirvDecorate();
+
+ // Add spirv_decorate
+ for (auto& decorate : spirvDecorate.decorates) {
+ if (!decorate.second.empty()) {
+ std::vector<unsigned> literals;
+ TranslateLiterals(decorate.second, literals);
+ builder.addMemberDecoration(spvType, member, static_cast<spv::Decoration>(decorate.first), literals);
+ }
+ else
+ builder.addMemberDecoration(spvType, member, static_cast<spv::Decoration>(decorate.first));
+ }
+
+ // spirv_decorate_id not applied to members
+ assert(spirvDecorate.decorateIds.empty());
+
+ // Add spirv_decorate_string
+ for (auto& decorateString : spirvDecorate.decorateStrings) {
+ std::vector<const char*> strings;
+ assert(!decorateString.second.empty());
+ for (auto extraOperand : decorateString.second) {
+ const char* string = extraOperand->getConstArray()[0].getSConst()->c_str();
+ strings.push_back(string);
+ }
+ builder.addDecoration(spvType, static_cast<spv::Decoration>(decorateString.first), strings);
+ }
+ }
#endif
}
@@ -4207,6 +4569,8 @@ spv::Id TGlslangToSpvTraverser::makeArraySizeId(const glslang::TArraySizes& arra
glslang::TIntermTyped* specNode = arraySizes.getDimNode(dim);
if (specNode != nullptr) {
builder.clearAccessChain();
+ SpecConstantOpModeGuard spec_constant_op_mode_setter(&builder);
+ spec_constant_op_mode_setter.turnOnSpecConstantOpMode();
specNode->traverse(this);
return accessChainLoad(specNode->getAsTyped()->getType());
}
@@ -4242,19 +4606,7 @@ spv::Id TGlslangToSpvTraverser::accessChainLoad(const glslang::TType& type)
// Need to convert to abstract types when necessary
if (type.getBasicType() == glslang::EbtBool) {
- if (builder.isScalarType(nominalTypeId)) {
- // Conversion for bool
- spv::Id boolType = builder.makeBoolType();
- if (nominalTypeId != boolType)
- loadedId = builder.createBinOp(spv::OpINotEqual, boolType, loadedId, builder.makeUintConstant(0));
- } else if (builder.isVectorType(nominalTypeId)) {
- // Conversion for bvec
- int vecSize = builder.getNumTypeComponents(nominalTypeId);
- spv::Id bvecType = builder.makeVectorType(builder.makeBoolType(), vecSize);
- if (nominalTypeId != bvecType)
- loadedId = builder.createBinOp(spv::OpINotEqual, bvecType, loadedId,
- makeSmearedConstant(builder.makeUintConstant(0), vecSize));
- }
+ loadedId = convertLoadedBoolInUniformToUint(type, nominalTypeId, loadedId);
}
return loadedId;
@@ -4406,6 +4758,7 @@ glslang::TLayoutPacking TGlslangToSpvTraverser::getExplicitLayout(const glslang:
// has to be a uniform or buffer block or task in/out blocks
if (type.getQualifier().storage != glslang::EvqUniform &&
type.getQualifier().storage != glslang::EvqBuffer &&
+ type.getQualifier().storage != glslang::EvqShared &&
!type.getQualifier().isTaskMemory())
return glslang::ElpNone;
@@ -4575,6 +4928,9 @@ bool TGlslangToSpvTraverser::originalParam(glslang::TStorageQualifier qualifier,
if (glslangIntermediate->getSource() == glslang::EShSourceHlsl)
return paramType.getBasicType() == glslang::EbtBlock;
return paramType.containsOpaque() || // sampler, etc.
+#ifndef GLSLANG_WEB
+ paramType.getQualifier().isSpirvByReference() || // spirv_by_reference
+#endif
(paramType.getBasicType() == glslang::EbtBlock && qualifier == glslang::EvqBuffer); // SSBO
}
@@ -4968,7 +5324,10 @@ spv::Id TGlslangToSpvTraverser::createImageTextureFunctionCall(glslang::TIntermO
int components = node->getType().getVectorSize();
- if (node->getOp() == glslang::EOpTextureFetch) {
+ if (node->getOp() == glslang::EOpImageLoad ||
+ node->getOp() == glslang::EOpImageLoadLod ||
+ node->getOp() == glslang::EOpTextureFetch ||
+ node->getOp() == glslang::EOpTextureFetchOffset) {
// These must produce 4 components, per SPIR-V spec. We'll add a conversion constructor if needed.
// This will only happen through the HLSL path for operator[], so we do not have to handle e.g.
// the EOpTexture/Proj/Lod/etc family. It would be harmless to do so, but would need more logic
@@ -5530,7 +5889,7 @@ spv::Id TGlslangToSpvTraverser::handleUserFunctionCall(const glslang::TIntermAgg
++lValueCount;
} else {
// process r-value, which involves a copy for a type mismatch
- if (function->getParamType(a) != convertGlslangToSpvType(*argTypes[a]) ||
+ if (function->getParamType(a) != builder.getTypeId(rValues[rValueCount]) ||
TranslatePrecisionDecoration(*argTypes[a]) != function->getParamPrecision(a))
{
spv::Id argCopy = builder.createVariable(function->getParamPrecision(a), spv::StorageClassFunction, function->getParamType(a), "arg");
@@ -6813,9 +7172,6 @@ spv::Id TGlslangToSpvTraverser::createConversion(glslang::TOperator op, OpDecora
break;
case glslang::EOpConvPtrToUvec2:
case glslang::EOpConvUvec2ToPtr:
- if (builder.isVector(operand))
- builder.promoteIncorporatedExtension(spv::E_SPV_EXT_physical_storage_buffer,
- spv::E_SPV_KHR_physical_storage_buffer, spv::Spv_1_5);
convOp = spv::OpBitcast;
break;
#endif
@@ -6864,29 +7220,58 @@ spv::Id TGlslangToSpvTraverser::createAtomicOperation(glslang::TOperator op, spv
case glslang::EOpImageAtomicAdd:
case glslang::EOpAtomicCounterAdd:
opCode = spv::OpAtomicIAdd;
- if (typeProxy == glslang::EbtFloat || typeProxy == glslang::EbtDouble) {
+ if (typeProxy == glslang::EbtFloat16 || typeProxy == glslang::EbtFloat || typeProxy == glslang::EbtDouble) {
opCode = spv::OpAtomicFAddEXT;
builder.addExtension(spv::E_SPV_EXT_shader_atomic_float_add);
- if (typeProxy == glslang::EbtFloat)
+ if (typeProxy == glslang::EbtFloat16) {
+ builder.addExtension(spv::E_SPV_EXT_shader_atomic_float16_add);
+ builder.addCapability(spv::CapabilityAtomicFloat16AddEXT);
+ } else if (typeProxy == glslang::EbtFloat) {
builder.addCapability(spv::CapabilityAtomicFloat32AddEXT);
- else
+ } else {
builder.addCapability(spv::CapabilityAtomicFloat64AddEXT);
+ }
}
break;
+ case glslang::EOpAtomicSubtract:
case glslang::EOpAtomicCounterSubtract:
opCode = spv::OpAtomicISub;
break;
case glslang::EOpAtomicMin:
case glslang::EOpImageAtomicMin:
case glslang::EOpAtomicCounterMin:
- opCode = (typeProxy == glslang::EbtUint || typeProxy == glslang::EbtUint64) ?
- spv::OpAtomicUMin : spv::OpAtomicSMin;
+ if (typeProxy == glslang::EbtFloat16 || typeProxy == glslang::EbtFloat || typeProxy == glslang::EbtDouble) {
+ opCode = spv::OpAtomicFMinEXT;
+ builder.addExtension(spv::E_SPV_EXT_shader_atomic_float_min_max);
+ if (typeProxy == glslang::EbtFloat16)
+ builder.addCapability(spv::CapabilityAtomicFloat16MinMaxEXT);
+ else if (typeProxy == glslang::EbtFloat)
+ builder.addCapability(spv::CapabilityAtomicFloat32MinMaxEXT);
+ else
+ builder.addCapability(spv::CapabilityAtomicFloat64MinMaxEXT);
+ } else if (typeProxy == glslang::EbtUint || typeProxy == glslang::EbtUint64) {
+ opCode = spv::OpAtomicUMin;
+ } else {
+ opCode = spv::OpAtomicSMin;
+ }
break;
case glslang::EOpAtomicMax:
case glslang::EOpImageAtomicMax:
case glslang::EOpAtomicCounterMax:
- opCode = (typeProxy == glslang::EbtUint || typeProxy == glslang::EbtUint64) ?
- spv::OpAtomicUMax : spv::OpAtomicSMax;
+ if (typeProxy == glslang::EbtFloat16 || typeProxy == glslang::EbtFloat || typeProxy == glslang::EbtDouble) {
+ opCode = spv::OpAtomicFMaxEXT;
+ builder.addExtension(spv::E_SPV_EXT_shader_atomic_float_min_max);
+ if (typeProxy == glslang::EbtFloat16)
+ builder.addCapability(spv::CapabilityAtomicFloat16MinMaxEXT);
+ else if (typeProxy == glslang::EbtFloat)
+ builder.addCapability(spv::CapabilityAtomicFloat32MinMaxEXT);
+ else
+ builder.addCapability(spv::CapabilityAtomicFloat64MinMaxEXT);
+ } else if (typeProxy == glslang::EbtUint || typeProxy == glslang::EbtUint64) {
+ opCode = spv::OpAtomicUMax;
+ } else {
+ opCode = spv::OpAtomicSMax;
+ }
break;
case glslang::EOpAtomicAnd:
case glslang::EOpImageAtomicAnd:
@@ -6995,6 +7380,10 @@ spv::Id TGlslangToSpvTraverser::createAtomicOperation(glslang::TOperator op, spv
builder.addCapability(spv::CapabilityVulkanMemoryModelKHR);
}
+ if (builder.getConstantScalar(scopeId) == spv::ScopeQueueFamily) {
+ builder.addCapability(spv::CapabilityVulkanMemoryModelKHR);
+ }
+
if (glslangIntermediate->usingVulkanMemoryModel() && builder.getConstantScalar(scopeId) == spv::ScopeDevice) {
builder.addCapability(spv::CapabilityVulkanMemoryModelDeviceScopeKHR);
}
@@ -7940,6 +8329,11 @@ spv::Id TGlslangToSpvTraverser::createMiscOperation(glslang::TOperator op, spv::
case glslang::EOpTraceNV:
builder.createNoResultOp(spv::OpTraceNV, operands);
return 0;
+ case glslang::EOpTraceRayMotionNV:
+ builder.addExtension(spv::E_SPV_NV_ray_tracing_motion_blur);
+ builder.addCapability(spv::CapabilityRayTracingMotionBlurNV);
+ builder.createNoResultOp(spv::OpTraceRayMotionNV, operands);
+ return 0;
case glslang::EOpTraceKHR:
builder.createNoResultOp(spv::OpTraceRayKHR, operands);
return 0;
@@ -7991,7 +8385,7 @@ spv::Id TGlslangToSpvTraverser::createMiscOperation(glslang::TOperator op, spv::
opCode = spv::OpRayQueryGetIntersectionInstanceIdKHR;
break;
case glslang::EOpRayQueryGetIntersectionInstanceShaderBindingTableRecordOffset:
- typeId = builder.makeIntType(32);
+ typeId = builder.makeUintType(32);
opCode = spv::OpRayQueryGetIntersectionInstanceShaderBindingTableRecordOffsetKHR;
break;
case glslang::EOpRayQueryGetIntersectionGeometryIndex:
@@ -8424,6 +8818,48 @@ spv::Id TGlslangToSpvTraverser::getSymbolId(const glslang::TIntermSymbol* symbol
builder.addDecoration(id, symbol->getType().getQualifier().restrict ?
spv::DecorationRestrictPointerEXT : spv::DecorationAliasedPointerEXT);
}
+
+ //
+ // Add SPIR-V decorations for structure (GL_EXT_spirv_intrinsics)
+ //
+ if (symbol->getType().getQualifier().hasSprivDecorate()) {
+ const glslang::TSpirvDecorate& spirvDecorate = symbol->getType().getQualifier().getSpirvDecorate();
+
+ // Add spirv_decorate
+ for (auto& decorate : spirvDecorate.decorates) {
+ if (!decorate.second.empty()) {
+ std::vector<unsigned> literals;
+ TranslateLiterals(decorate.second, literals);
+ builder.addDecoration(id, static_cast<spv::Decoration>(decorate.first), literals);
+ }
+ else
+ builder.addDecoration(id, static_cast<spv::Decoration>(decorate.first));
+ }
+
+ // Add spirv_decorate_id
+ for (auto& decorateId : spirvDecorate.decorateIds) {
+ std::vector<spv::Id> operandIds;
+ assert(!decorateId.second.empty());
+ for (auto extraOperand : decorateId.second) {
+ int nextConst = 0;
+ spv::Id operandId = createSpvConstantFromConstUnionArray(
+ extraOperand->getType(), extraOperand->getConstArray(), nextConst, false);
+ operandIds.push_back(operandId);
+ }
+ builder.addDecoration(id, static_cast<spv::Decoration>(decorateId.first), operandIds);
+ }
+
+ // Add spirv_decorate_string
+ for (auto& decorateString : spirvDecorate.decorateStrings) {
+ std::vector<const char*> strings;
+ assert(!decorateString.second.empty());
+ for (auto extraOperand : decorateString.second) {
+ const char* string = extraOperand->getConstArray()[0].getSConst()->c_str();
+ strings.push_back(string);
+ }
+ builder.addDecoration(id, static_cast<spv::Decoration>(decorateString.first), strings);
+ }
+ }
#endif
return id;
diff --git a/thirdparty/glslang/SPIRV/SPVRemapper.cpp b/thirdparty/glslang/SPIRV/SPVRemapper.cpp
index 56d7f431a7..56d6d5d4a5 100644
--- a/thirdparty/glslang/SPIRV/SPVRemapper.cpp
+++ b/thirdparty/glslang/SPIRV/SPVRemapper.cpp
@@ -544,6 +544,9 @@ namespace spv {
// Extended instructions: currently, assume everything is an ID.
// TODO: add whatever data we need for exceptions to that
if (opCode == spv::OpExtInst) {
+
+ idFn(asId(word)); // Instruction set is an ID that also needs to be mapped
+
word += 2; // instruction set, and instruction from set
numOperands -= 2;
diff --git a/thirdparty/glslang/SPIRV/SpvBuilder.cpp b/thirdparty/glslang/SPIRV/SpvBuilder.cpp
index c8fbcc450e..e83306ebcb 100644
--- a/thirdparty/glslang/SPIRV/SpvBuilder.cpp
+++ b/thirdparty/glslang/SPIRV/SpvBuilder.cpp
@@ -743,6 +743,26 @@ Id Builder::getContainedTypeId(Id typeId, int member) const
}
}
+// Figure out the final resulting type of the access chain.
+Id Builder::getResultingAccessChainType() const
+{
+ assert(accessChain.base != NoResult);
+ Id typeId = getTypeId(accessChain.base);
+
+ assert(isPointerType(typeId));
+ typeId = getContainedTypeId(typeId);
+
+ for (int i = 0; i < (int)accessChain.indexChain.size(); ++i) {
+ if (isStructType(typeId)) {
+ assert(isConstantScalar(accessChain.indexChain[i]));
+ typeId = getContainedTypeId(typeId, getConstantScalar(accessChain.indexChain[i]));
+ } else
+ typeId = getContainedTypeId(typeId, accessChain.indexChain[i]);
+ }
+
+ return typeId;
+}
+
// Return the immediately contained type of a given composite type.
Id Builder::getContainedTypeId(Id typeId) const
{
@@ -869,6 +889,30 @@ bool Builder::isSpecConstantOpCode(Op opcode) const
}
}
+Id Builder::makeNullConstant(Id typeId)
+{
+ Instruction* constant;
+
+ // See if we already made it.
+ Id existing = NoResult;
+ for (int i = 0; i < (int)nullConstants.size(); ++i) {
+ constant = nullConstants[i];
+ if (constant->getTypeId() == typeId)
+ existing = constant->getResultId();
+ }
+
+ if (existing != NoResult)
+ return existing;
+
+ // Make it
+ Instruction* c = new Instruction(getUniqueId(), typeId, OpConstantNull);
+ constantsTypesGlobals.push_back(std::unique_ptr<Instruction>(c));
+ nullConstants.push_back(c);
+ module.mapInstruction(c);
+
+ return c->getResultId();
+}
+
Id Builder::makeBoolConstant(bool b, bool specConstant)
{
Id typeId = makeBoolType();
@@ -1561,16 +1605,7 @@ Id Builder::createLoad(Id lValue, spv::Decoration precision, spv::MemoryAccessMa
Id Builder::createAccessChain(StorageClass storageClass, Id base, const std::vector<Id>& offsets)
{
// Figure out the final resulting type.
- spv::Id typeId = getTypeId(base);
- assert(isPointerType(typeId) && offsets.size() > 0);
- typeId = getContainedTypeId(typeId);
- for (int i = 0; i < (int)offsets.size(); ++i) {
- if (isStructType(typeId)) {
- assert(isConstantScalar(offsets[i]));
- typeId = getContainedTypeId(typeId, getConstantScalar(offsets[i]));
- } else
- typeId = getContainedTypeId(typeId, offsets[i]);
- }
+ Id typeId = getResultingAccessChainType();
typeId = makePointer(storageClass, typeId);
// Make the instruction
@@ -2519,7 +2554,7 @@ Id Builder::createMatrixConstructor(Decoration precision, const std::vector<Id>&
int row = 0;
int col = 0;
- for (int arg = 0; arg < (int)sources.size(); ++arg) {
+ for (int arg = 0; arg < (int)sources.size() && col < numCols; ++arg) {
Id argComp = sources[arg];
for (int comp = 0; comp < getNumComponents(sources[arg]); ++comp) {
if (getNumComponents(sources[arg]) > 1) {
@@ -2531,6 +2566,10 @@ Id Builder::createMatrixConstructor(Decoration precision, const std::vector<Id>&
row = 0;
col++;
}
+ if (col == numCols) {
+ // If more components are provided than fit the matrix, discard the rest.
+ break;
+ }
}
}
}
@@ -2766,28 +2805,59 @@ void Builder::accessChainStore(Id rvalue, Decoration nonUniform, spv::MemoryAcce
assert(accessChain.isRValue == false);
transferAccessChainSwizzle(true);
- Id base = collapseAccessChain();
- addDecoration(base, nonUniform);
- Id source = rvalue;
+ // If a swizzle exists and is not full and is not dynamic, then the swizzle will be broken into individual stores.
+ if (accessChain.swizzle.size() > 0 &&
+ getNumTypeComponents(getResultingAccessChainType()) != (int)accessChain.swizzle.size() &&
+ accessChain.component == NoResult) {
+ for (unsigned int i = 0; i < accessChain.swizzle.size(); ++i) {
+ accessChain.indexChain.push_back(makeUintConstant(accessChain.swizzle[i]));
+ accessChain.instr = NoResult;
- // dynamic component should be gone
- assert(accessChain.component == NoResult);
+ Id base = collapseAccessChain();
+ addDecoration(base, nonUniform);
- // If swizzle still exists, it is out-of-order or not full, we must load the target vector,
- // extract and insert elements to perform writeMask and/or swizzle.
- if (accessChain.swizzle.size() > 0) {
- Id tempBaseId = createLoad(base, spv::NoPrecision);
- source = createLvalueSwizzle(getTypeId(tempBaseId), tempBaseId, source, accessChain.swizzle);
- }
+ accessChain.indexChain.pop_back();
+ accessChain.instr = NoResult;
+
+ // dynamic component should be gone
+ assert(accessChain.component == NoResult);
+
+ Id source = createCompositeExtract(rvalue, getContainedTypeId(getTypeId(rvalue)), i);
+
+ // take LSB of alignment
+ alignment = alignment & ~(alignment & (alignment-1));
+ if (getStorageClass(base) == StorageClassPhysicalStorageBufferEXT) {
+ memoryAccess = (spv::MemoryAccessMask)(memoryAccess | spv::MemoryAccessAlignedMask);
+ }
- // take LSB of alignment
- alignment = alignment & ~(alignment & (alignment-1));
- if (getStorageClass(base) == StorageClassPhysicalStorageBufferEXT) {
- memoryAccess = (spv::MemoryAccessMask)(memoryAccess | spv::MemoryAccessAlignedMask);
+ createStore(source, base, memoryAccess, scope, alignment);
+ }
}
+ else {
+ Id base = collapseAccessChain();
+ addDecoration(base, nonUniform);
+
+ Id source = rvalue;
+
+ // dynamic component should be gone
+ assert(accessChain.component == NoResult);
+
+ // If swizzle still exists, it may be out-of-order, we must load the target vector,
+ // extract and insert elements to perform writeMask and/or swizzle.
+ if (accessChain.swizzle.size() > 0) {
+ Id tempBaseId = createLoad(base, spv::NoPrecision);
+ source = createLvalueSwizzle(getTypeId(tempBaseId), tempBaseId, source, accessChain.swizzle);
+ }
- createStore(source, base, memoryAccess, scope, alignment);
+ // take LSB of alignment
+ alignment = alignment & ~(alignment & (alignment-1));
+ if (getStorageClass(base) == StorageClassPhysicalStorageBufferEXT) {
+ memoryAccess = (spv::MemoryAccessMask)(memoryAccess | spv::MemoryAccessAlignedMask);
+ }
+
+ createStore(source, base, memoryAccess, scope, alignment);
+ }
}
// Comments in header
diff --git a/thirdparty/glslang/SPIRV/SpvBuilder.h b/thirdparty/glslang/SPIRV/SpvBuilder.h
index 911ea58b12..251b9ee823 100644
--- a/thirdparty/glslang/SPIRV/SpvBuilder.h
+++ b/thirdparty/glslang/SPIRV/SpvBuilder.h
@@ -202,6 +202,7 @@ public:
StorageClass getTypeStorageClass(Id typeId) const { return module.getStorageClass(typeId); }
ImageFormat getImageTypeFormat(Id typeId) const
{ return (ImageFormat)module.getInstruction(typeId)->getImmediateOperand(6); }
+ Id getResultingAccessChainType() const;
bool isPointer(Id resultId) const { return isPointerType(getTypeId(resultId)); }
bool isScalar(Id resultId) const { return isScalarType(getTypeId(resultId)); }
@@ -293,6 +294,7 @@ public:
}
// For making new constants (will return old constant if the requested one was already made).
+ Id makeNullConstant(Id typeId);
Id makeBoolConstant(bool b, bool specConstant = false);
Id makeInt8Constant(int i, bool specConstant = false)
{ return makeIntConstant(makeIntType(8), (unsigned)i, specConstant); }
@@ -838,6 +840,8 @@ public:
std::unordered_map<unsigned int, std::vector<Instruction*>> groupedStructConstants;
// map type opcodes to type instructions
std::unordered_map<unsigned int, std::vector<Instruction*>> groupedTypes;
+ // list of OpConstantNull instructions
+ std::vector<Instruction*> nullConstants;
// stack of switches
std::stack<Block*> switchMerges;
diff --git a/thirdparty/glslang/SPIRV/SpvPostProcess.cpp b/thirdparty/glslang/SPIRV/SpvPostProcess.cpp
index d40174d172..23d7b5a461 100644
--- a/thirdparty/glslang/SPIRV/SpvPostProcess.cpp
+++ b/thirdparty/glslang/SPIRV/SpvPostProcess.cpp
@@ -436,6 +436,38 @@ void Builder::postProcessFeatures() {
}
}
}
+
+ // If any Vulkan memory model-specific functionality is used, update the
+ // OpMemoryModel to match.
+ if (capabilities.find(spv::CapabilityVulkanMemoryModelKHR) != capabilities.end()) {
+ memoryModel = spv::MemoryModelVulkanKHR;
+ addIncorporatedExtension(spv::E_SPV_KHR_vulkan_memory_model, spv::Spv_1_5);
+ }
+
+ // Add Aliased decoration if there's more than one Workgroup Block variable.
+ if (capabilities.find(spv::CapabilityWorkgroupMemoryExplicitLayoutKHR) != capabilities.end()) {
+ assert(entryPoints.size() == 1);
+ auto &ep = entryPoints[0];
+
+ std::vector<Id> workgroup_variables;
+ for (int i = 0; i < (int)ep->getNumOperands(); i++) {
+ if (!ep->isIdOperand(i))
+ continue;
+
+ const Id id = ep->getIdOperand(i);
+ const Instruction *instr = module.getInstruction(id);
+ if (instr->getOpCode() != spv::OpVariable)
+ continue;
+
+ if (instr->getImmediateOperand(0) == spv::StorageClassWorkgroup)
+ workgroup_variables.push_back(id);
+ }
+
+ if (workgroup_variables.size() > 1) {
+ for (size_t i = 0; i < workgroup_variables.size(); i++)
+ addDecoration(workgroup_variables[i], spv::DecorationAliased);
+ }
+ }
}
#endif
diff --git a/thirdparty/glslang/SPIRV/SpvTools.cpp b/thirdparty/glslang/SPIRV/SpvTools.cpp
index 16d051a9b2..8acf9b139a 100644
--- a/thirdparty/glslang/SPIRV/SpvTools.cpp
+++ b/thirdparty/glslang/SPIRV/SpvTools.cpp
@@ -153,6 +153,8 @@ void SpirvToolsValidate(const glslang::TIntermediate& intermediate, std::vector<
spv_validator_options options = spvValidatorOptionsCreate();
spvValidatorOptionsSetRelaxBlockLayout(options, intermediate.usingHlslOffsets());
spvValidatorOptionsSetBeforeHlslLegalization(options, prelegalization);
+ spvValidatorOptionsSetScalarBlockLayout(options, intermediate.usingScalarBlockLayout());
+ spvValidatorOptionsSetWorkgroupScalarBlockLayout(options, intermediate.usingScalarBlockLayout());
spvValidateWithOptions(context, options, &binary, &diagnostic);
// report
@@ -205,6 +207,7 @@ void SpirvToolsTransform(const glslang::TIntermediate& intermediate, std::vector
optimizer.RegisterPass(spvtools::CreateAggressiveDCEPass());
optimizer.RegisterPass(spvtools::CreateVectorDCEPass());
optimizer.RegisterPass(spvtools::CreateDeadInsertElimPass());
+ optimizer.RegisterPass(spvtools::CreateInterpolateFixupPass());
if (options->optimizeSize) {
optimizer.RegisterPass(spvtools::CreateRedundancyEliminationPass());
}
diff --git a/thirdparty/glslang/SPIRV/doc.cpp b/thirdparty/glslang/SPIRV/doc.cpp
index 5327f2212d..dbdf7077a6 100644
--- a/thirdparty/glslang/SPIRV/doc.cpp
+++ b/thirdparty/glslang/SPIRV/doc.cpp
@@ -188,6 +188,7 @@ const char* ExecutionModeString(int mode)
case ExecutionModeRoundingModeRTE: return "RoundingModeRTE";
case ExecutionModeRoundingModeRTZ: return "RoundingModeRTZ";
case ExecutionModeStencilRefReplacingEXT: return "StencilRefReplacingEXT";
+ case ExecutionModeSubgroupUniformControlFlowKHR: return "SubgroupUniformControlFlow";
case ExecutionModeOutputLinesNV: return "OutputLinesNV";
case ExecutionModeOutputPrimitivesNV: return "OutputPrimitivesNV";
@@ -425,6 +426,7 @@ const char* BuiltInString(int builtIn)
case BuiltInSMCountNV: return "SMCountNV";
case BuiltInWarpIDNV: return "WarpIDNV";
case BuiltInSMIDNV: return "SMIDNV";
+ case BuiltInCurrentRayTimeNV: return "CurrentRayTimeNV";
default: return "Bad";
}
@@ -915,8 +917,10 @@ const char* CapabilityString(int info)
case CapabilityPerViewAttributesNV: return "PerViewAttributesNV";
case CapabilityGroupNonUniformPartitionedNV: return "GroupNonUniformPartitionedNV";
case CapabilityRayTracingNV: return "RayTracingNV";
+ case CapabilityRayTracingMotionBlurNV: return "RayTracingMotionBlurNV";
case CapabilityRayTracingKHR: return "RayTracingKHR";
case CapabilityRayQueryKHR: return "RayQueryKHR";
+ case CapabilityRayTracingProvisionalKHR: return "RayTracingProvisionalKHR";
case CapabilityRayTraversalPrimitiveCullingKHR: return "RayTraversalPrimitiveCullingKHR";
case CapabilityComputeDerivativeGroupQuadsNV: return "ComputeDerivativeGroupQuadsNV";
case CapabilityComputeDerivativeGroupLinearNV: return "ComputeDerivativeGroupLinearNV";
@@ -964,8 +968,16 @@ const char* CapabilityString(int info)
case CapabilityIntegerFunctions2INTEL: return "CapabilityIntegerFunctions2INTEL";
+ case CapabilityAtomicFloat16AddEXT: return "AtomicFloat16AddEXT";
case CapabilityAtomicFloat32AddEXT: return "AtomicFloat32AddEXT";
case CapabilityAtomicFloat64AddEXT: return "AtomicFloat64AddEXT";
+ case CapabilityAtomicFloat16MinMaxEXT: return "AtomicFloat16MinMaxEXT";
+ case CapabilityAtomicFloat32MinMaxEXT: return "AtomicFloat32MinMaxEXT";
+ case CapabilityAtomicFloat64MinMaxEXT: return "AtomicFloat64MinMaxEXT";
+
+ case CapabilityWorkgroupMemoryExplicitLayoutKHR: return "CapabilityWorkgroupMemoryExplicitLayoutKHR";
+ case CapabilityWorkgroupMemoryExplicitLayout8BitAccessKHR: return "CapabilityWorkgroupMemoryExplicitLayout8BitAccessKHR";
+ case CapabilityWorkgroupMemoryExplicitLayout16BitAccessKHR: return "CapabilityWorkgroupMemoryExplicitLayout16BitAccessKHR";
default: return "Bad";
}
@@ -1346,6 +1358,8 @@ const char* OpcodeString(int op)
case 4432: return "OpSubgroupReadInvocationKHR";
case OpAtomicFAddEXT: return "OpAtomicFAddEXT";
+ case OpAtomicFMinEXT: return "OpAtomicFMinEXT";
+ case OpAtomicFMaxEXT: return "OpAtomicFMaxEXT";
case 5000: return "OpGroupIAddNonUniformAMD";
case 5001: return "OpGroupFAddNonUniformAMD";
@@ -1370,6 +1384,7 @@ const char* OpcodeString(int op)
case OpTerminateRayNV: return "OpTerminateRayNV";
case OpTerminateRayKHR: return "OpTerminateRayKHR";
case OpTraceNV: return "OpTraceNV";
+ case OpTraceRayMotionNV: return "OpTraceRayMotionNV";
case OpTraceRayKHR: return "OpTraceRayKHR";
case OpTypeAccelerationStructureKHR: return "OpTypeAccelerationStructureKHR";
case OpExecuteCallableNV: return "OpExecuteCallableNV";
@@ -2336,6 +2351,16 @@ void Parameterize()
InstructionDesc[OpAtomicSMax].operands.push(OperandMemorySemantics, "'Semantics'");
InstructionDesc[OpAtomicSMax].operands.push(OperandId, "'Value'");
+ InstructionDesc[OpAtomicFMinEXT].operands.push(OperandId, "'Pointer'");
+ InstructionDesc[OpAtomicFMinEXT].operands.push(OperandScope, "'Scope'");
+ InstructionDesc[OpAtomicFMinEXT].operands.push(OperandMemorySemantics, "'Semantics'");
+ InstructionDesc[OpAtomicFMinEXT].operands.push(OperandId, "'Value'");
+
+ InstructionDesc[OpAtomicFMaxEXT].operands.push(OperandId, "'Pointer'");
+ InstructionDesc[OpAtomicFMaxEXT].operands.push(OperandScope, "'Scope'");
+ InstructionDesc[OpAtomicFMaxEXT].operands.push(OperandMemorySemantics, "'Semantics'");
+ InstructionDesc[OpAtomicFMaxEXT].operands.push(OperandId, "'Value'");
+
InstructionDesc[OpAtomicAnd].operands.push(OperandId, "'Pointer'");
InstructionDesc[OpAtomicAnd].operands.push(OperandScope, "'Scope'");
InstructionDesc[OpAtomicAnd].operands.push(OperandMemorySemantics, "'Semantics'");
@@ -2714,7 +2739,7 @@ void Parameterize()
InstructionDesc[OpGroupNonUniformQuadSwap].operands.push(OperandScope, "'Execution'");
InstructionDesc[OpGroupNonUniformQuadSwap].operands.push(OperandId, "X");
- InstructionDesc[OpGroupNonUniformQuadSwap].operands.push(OperandLiteralNumber, "'Direction'");
+ InstructionDesc[OpGroupNonUniformQuadSwap].operands.push(OperandId, "'Direction'");
InstructionDesc[OpSubgroupBallotKHR].operands.push(OperandId, "'Predicate'");
@@ -2790,6 +2815,20 @@ void Parameterize()
InstructionDesc[OpTraceNV].operands.push(OperandId, "'Payload'");
InstructionDesc[OpTraceNV].setResultAndType(false, false);
+ InstructionDesc[OpTraceRayMotionNV].operands.push(OperandId, "'Acceleration Structure'");
+ InstructionDesc[OpTraceRayMotionNV].operands.push(OperandId, "'Ray Flags'");
+ InstructionDesc[OpTraceRayMotionNV].operands.push(OperandId, "'Cull Mask'");
+ InstructionDesc[OpTraceRayMotionNV].operands.push(OperandId, "'SBT Record Offset'");
+ InstructionDesc[OpTraceRayMotionNV].operands.push(OperandId, "'SBT Record Stride'");
+ InstructionDesc[OpTraceRayMotionNV].operands.push(OperandId, "'Miss Index'");
+ InstructionDesc[OpTraceRayMotionNV].operands.push(OperandId, "'Ray Origin'");
+ InstructionDesc[OpTraceRayMotionNV].operands.push(OperandId, "'TMin'");
+ InstructionDesc[OpTraceRayMotionNV].operands.push(OperandId, "'Ray Direction'");
+ InstructionDesc[OpTraceRayMotionNV].operands.push(OperandId, "'TMax'");
+ InstructionDesc[OpTraceRayMotionNV].operands.push(OperandId, "'Time'");
+ InstructionDesc[OpTraceRayMotionNV].operands.push(OperandId, "'Payload'");
+ InstructionDesc[OpTraceRayMotionNV].setResultAndType(false, false);
+
InstructionDesc[OpTraceRayKHR].operands.push(OperandId, "'Acceleration Structure'");
InstructionDesc[OpTraceRayKHR].operands.push(OperandId, "'Ray Flags'");
InstructionDesc[OpTraceRayKHR].operands.push(OperandId, "'Cull Mask'");
diff --git a/thirdparty/glslang/SPIRV/spirv.hpp b/thirdparty/glslang/SPIRV/spirv.hpp
index 43dd2aaeec..e0fe24980d 100644
--- a/thirdparty/glslang/SPIRV/spirv.hpp
+++ b/thirdparty/glslang/SPIRV/spirv.hpp
@@ -150,6 +150,7 @@ enum ExecutionMode {
ExecutionModeSubgroupsPerWorkgroupId = 37,
ExecutionModeLocalSizeId = 38,
ExecutionModeLocalSizeHintId = 39,
+ ExecutionModeSubgroupUniformControlFlowKHR = 4421,
ExecutionModePostDepthCoverage = 4446,
ExecutionModeDenormPreserve = 4459,
ExecutionModeDenormFlushToZero = 4460,
@@ -168,10 +169,16 @@ enum ExecutionMode {
ExecutionModeSampleInterlockUnorderedEXT = 5369,
ExecutionModeShadingRateInterlockOrderedEXT = 5370,
ExecutionModeShadingRateInterlockUnorderedEXT = 5371,
+ ExecutionModeSharedLocalMemorySizeINTEL = 5618,
+ ExecutionModeRoundingModeRTPINTEL = 5620,
+ ExecutionModeRoundingModeRTNINTEL = 5621,
+ ExecutionModeFloatingPointModeALTINTEL = 5622,
+ ExecutionModeFloatingPointModeIEEEINTEL = 5623,
ExecutionModeMaxWorkgroupSizeINTEL = 5893,
ExecutionModeMaxWorkDimINTEL = 5894,
ExecutionModeNoGlobalOffsetINTEL = 5895,
ExecutionModeNumSIMDWorkitemsINTEL = 5896,
+ ExecutionModeSchedulerTargetFmaxMhzINTEL = 5903,
ExecutionModeMax = 0x7fffffff,
};
@@ -204,6 +211,8 @@ enum StorageClass {
StorageClassPhysicalStorageBuffer = 5349,
StorageClassPhysicalStorageBufferEXT = 5349,
StorageClassCodeSectionINTEL = 5605,
+ StorageClassDeviceOnlyINTEL = 5936,
+ StorageClassHostOnlyINTEL = 5937,
StorageClassMax = 0x7fffffff,
};
@@ -374,6 +383,8 @@ enum FPFastMathModeShift {
FPFastMathModeNSZShift = 2,
FPFastMathModeAllowRecipShift = 3,
FPFastMathModeFastShift = 4,
+ FPFastMathModeAllowContractFastINTELShift = 16,
+ FPFastMathModeAllowReassocINTELShift = 17,
FPFastMathModeMax = 0x7fffffff,
};
@@ -384,6 +395,8 @@ enum FPFastMathModeMask {
FPFastMathModeNSZMask = 0x00000004,
FPFastMathModeAllowRecipMask = 0x00000008,
FPFastMathModeFastMask = 0x00000010,
+ FPFastMathModeAllowContractFastINTELMask = 0x00010000,
+ FPFastMathModeAllowReassocINTELMask = 0x00020000,
};
enum FPRoundingMode {
@@ -397,6 +410,7 @@ enum FPRoundingMode {
enum LinkageType {
LinkageTypeExport = 0,
LinkageTypeImport = 1,
+ LinkageTypeLinkOnceODR = 2,
LinkageTypeMax = 0x7fffffff,
};
@@ -484,12 +498,22 @@ enum Decoration {
DecorationRestrictPointerEXT = 5355,
DecorationAliasedPointer = 5356,
DecorationAliasedPointerEXT = 5356,
+ DecorationSIMTCallINTEL = 5599,
DecorationReferencedIndirectlyINTEL = 5602,
+ DecorationClobberINTEL = 5607,
+ DecorationSideEffectsINTEL = 5608,
+ DecorationVectorComputeVariableINTEL = 5624,
+ DecorationFuncParamIOKindINTEL = 5625,
+ DecorationVectorComputeFunctionINTEL = 5626,
+ DecorationStackCallINTEL = 5627,
+ DecorationGlobalVariableOffsetINTEL = 5628,
DecorationCounterBuffer = 5634,
DecorationHlslCounterBufferGOOGLE = 5634,
DecorationHlslSemanticGOOGLE = 5635,
DecorationUserSemantic = 5635,
DecorationUserTypeGOOGLE = 5636,
+ DecorationFunctionRoundingModeINTEL = 5822,
+ DecorationFunctionDenormModeINTEL = 5823,
DecorationRegisterINTEL = 5825,
DecorationMemoryINTEL = 5826,
DecorationNumbanksINTEL = 5827,
@@ -502,6 +526,17 @@ enum Decoration {
DecorationMergeINTEL = 5834,
DecorationBankBitsINTEL = 5835,
DecorationForcePow2DepthINTEL = 5836,
+ DecorationBurstCoalesceINTEL = 5899,
+ DecorationCacheSizeINTEL = 5900,
+ DecorationDontStaticallyCoalesceINTEL = 5901,
+ DecorationPrefetchINTEL = 5902,
+ DecorationStallEnableINTEL = 5905,
+ DecorationFuseLoopsInFunctionINTEL = 5907,
+ DecorationBufferLocationINTEL = 5921,
+ DecorationIOPipeStorageINTEL = 5944,
+ DecorationFunctionFloatingPointModeINTEL = 6080,
+ DecorationSingleElementVectorINTEL = 6085,
+ DecorationVectorComputeCallableFunctionINTEL = 6087,
DecorationMax = 0x7fffffff,
};
@@ -617,6 +652,7 @@ enum BuiltIn {
BuiltInHitTNV = 5332,
BuiltInHitKindKHR = 5333,
BuiltInHitKindNV = 5333,
+ BuiltInCurrentRayTimeNV = 5334,
BuiltInIncomingRayFlagsKHR = 5351,
BuiltInIncomingRayFlagsNV = 5351,
BuiltInRayGeometryIndexKHR = 5352,
@@ -656,6 +692,7 @@ enum LoopControlShift {
LoopControlLoopCoalesceINTELShift = 20,
LoopControlMaxInterleavingINTELShift = 21,
LoopControlSpeculatedIterationsINTELShift = 22,
+ LoopControlNoFusionINTELShift = 23,
LoopControlMax = 0x7fffffff,
};
@@ -677,6 +714,7 @@ enum LoopControlMask {
LoopControlLoopCoalesceINTELMask = 0x00100000,
LoopControlMaxInterleavingINTELMask = 0x00200000,
LoopControlSpeculatedIterationsINTELMask = 0x00400000,
+ LoopControlNoFusionINTELMask = 0x00800000,
};
enum FunctionControlShift {
@@ -876,6 +914,9 @@ enum Capability {
CapabilityFragmentShadingRateKHR = 4422,
CapabilitySubgroupBallotKHR = 4423,
CapabilityDrawParameters = 4427,
+ CapabilityWorkgroupMemoryExplicitLayoutKHR = 4428,
+ CapabilityWorkgroupMemoryExplicitLayout8BitAccessKHR = 4429,
+ CapabilityWorkgroupMemoryExplicitLayout16BitAccessKHR = 4430,
CapabilitySubgroupVoteKHR = 4431,
CapabilityStorageBuffer16BitAccess = 4433,
CapabilityStorageUniformBufferBlock16 = 4433,
@@ -948,6 +989,7 @@ enum Capability {
CapabilityStorageTexelBufferArrayNonUniformIndexing = 5312,
CapabilityStorageTexelBufferArrayNonUniformIndexingEXT = 5312,
CapabilityRayTracingNV = 5340,
+ CapabilityRayTracingMotionBlurNV = 5341,
CapabilityVulkanMemoryModel = 5345,
CapabilityVulkanMemoryModelKHR = 5345,
CapabilityVulkanMemoryModelDeviceScope = 5346,
@@ -966,21 +1008,42 @@ enum Capability {
CapabilitySubgroupBufferBlockIOINTEL = 5569,
CapabilitySubgroupImageBlockIOINTEL = 5570,
CapabilitySubgroupImageMediaBlockIOINTEL = 5579,
+ CapabilityRoundToInfinityINTEL = 5582,
+ CapabilityFloatingPointModeINTEL = 5583,
CapabilityIntegerFunctions2INTEL = 5584,
CapabilityFunctionPointersINTEL = 5603,
CapabilityIndirectReferencesINTEL = 5604,
+ CapabilityAsmINTEL = 5606,
+ CapabilityAtomicFloat32MinMaxEXT = 5612,
+ CapabilityAtomicFloat64MinMaxEXT = 5613,
+ CapabilityAtomicFloat16MinMaxEXT = 5616,
+ CapabilityVectorComputeINTEL = 5617,
+ CapabilityVectorAnyINTEL = 5619,
+ CapabilityExpectAssumeKHR = 5629,
CapabilitySubgroupAvcMotionEstimationINTEL = 5696,
CapabilitySubgroupAvcMotionEstimationIntraINTEL = 5697,
CapabilitySubgroupAvcMotionEstimationChromaINTEL = 5698,
+ CapabilityVariableLengthArrayINTEL = 5817,
+ CapabilityFunctionFloatControlINTEL = 5821,
CapabilityFPGAMemoryAttributesINTEL = 5824,
+ CapabilityFPFastMathModeINTEL = 5837,
+ CapabilityArbitraryPrecisionIntegersINTEL = 5844,
CapabilityUnstructuredLoopControlsINTEL = 5886,
CapabilityFPGALoopControlsINTEL = 5888,
CapabilityKernelAttributesINTEL = 5892,
CapabilityFPGAKernelAttributesINTEL = 5897,
+ CapabilityFPGAMemoryAccessesINTEL = 5898,
+ CapabilityFPGAClusterAttributesINTEL = 5904,
+ CapabilityLoopFuseINTEL = 5906,
+ CapabilityFPGABufferLocationINTEL = 5920,
+ CapabilityUSMStorageClassesINTEL = 5935,
+ CapabilityIOPipesINTEL = 5943,
CapabilityBlockingPipesINTEL = 5945,
CapabilityFPGARegINTEL = 5948,
CapabilityAtomicFloat32AddEXT = 6033,
CapabilityAtomicFloat64AddEXT = 6034,
+ CapabilityLongConstantCompositeINTEL = 6089,
+ CapabilityAtomicFloat16AddEXT = 6095,
CapabilityMax = 0x7fffffff,
};
@@ -1047,6 +1110,18 @@ enum FragmentShadingRateMask {
FragmentShadingRateHorizontal4PixelsMask = 0x00000008,
};
+enum FPDenormMode {
+ FPDenormModePreserve = 0,
+ FPDenormModeFlushToZero = 1,
+ FPDenormModeMax = 0x7fffffff,
+};
+
+enum FPOperationMode {
+ FPOperationModeIEEE = 0,
+ FPOperationModeALT = 1,
+ FPOperationModeMax = 0x7fffffff,
+};
+
enum Op {
OpNop = 0,
OpUndef = 1,
@@ -1430,6 +1505,8 @@ enum Op {
OpIgnoreIntersectionNV = 5335,
OpTerminateRayNV = 5336,
OpTraceNV = 5337,
+ OpTraceMotionNV = 5338,
+ OpTraceRayMotionNV = 5339,
OpTypeAccelerationStructureKHR = 5341,
OpTypeAccelerationStructureNV = 5341,
OpExecuteCallableNV = 5344,
@@ -1466,8 +1543,15 @@ enum Op {
OpUSubSatINTEL = 5596,
OpIMul32x16INTEL = 5597,
OpUMul32x16INTEL = 5598,
- OpFunctionPointerINTEL = 5600,
+ OpConstFunctionPointerINTEL = 5600,
OpFunctionPointerCallINTEL = 5601,
+ OpAsmTargetINTEL = 5609,
+ OpAsmINTEL = 5610,
+ OpAsmCallINTEL = 5611,
+ OpAtomicFMinEXT = 5614,
+ OpAtomicFMaxEXT = 5615,
+ OpAssumeTrueKHR = 5630,
+ OpExpectKHR = 5631,
OpDecorateString = 5632,
OpDecorateStringGOOGLE = 5632,
OpMemberDecorateString = 5633,
@@ -1590,7 +1674,12 @@ enum Op {
OpSubgroupAvcSicGetPackedSkcLumaCountThresholdINTEL = 5814,
OpSubgroupAvcSicGetPackedSkcLumaSumThresholdINTEL = 5815,
OpSubgroupAvcSicGetInterRawSadsINTEL = 5816,
+ OpVariableLengthArrayINTEL = 5818,
+ OpSaveMemoryINTEL = 5819,
+ OpRestoreMemoryINTEL = 5820,
OpLoopControlINTEL = 5887,
+ OpPtrCastToCrossWorkgroupINTEL = 5934,
+ OpCrossWorkgroupCastToPtrINTEL = 5938,
OpReadPipeBlockingINTEL = 5946,
OpWritePipeBlockingINTEL = 5947,
OpFPGARegINTEL = 5949,
@@ -1612,6 +1701,10 @@ enum Op {
OpRayQueryGetIntersectionObjectToWorldKHR = 6031,
OpRayQueryGetIntersectionWorldToObjectKHR = 6032,
OpAtomicFAddEXT = 6035,
+ OpTypeBufferSurfaceINTEL = 6086,
+ OpTypeStructContinuedINTEL = 6090,
+ OpConstantCompositeContinuedINTEL = 6091,
+ OpSpecConstantCompositeContinuedINTEL = 6092,
OpMax = 0x7fffffff,
};
@@ -2001,6 +2094,8 @@ inline void HasResultAndType(Op opcode, bool *hasResult, bool *hasResultType) {
case OpIgnoreIntersectionNV: *hasResult = false; *hasResultType = false; break;
case OpTerminateRayNV: *hasResult = false; *hasResultType = false; break;
case OpTraceNV: *hasResult = false; *hasResultType = false; break;
+ case OpTraceMotionNV: *hasResult = false; *hasResultType = false; break;
+ case OpTraceRayMotionNV: *hasResult = false; *hasResultType = false; break;
case OpTypeAccelerationStructureNV: *hasResult = true; *hasResultType = false; break;
case OpExecuteCallableNV: *hasResult = false; *hasResultType = false; break;
case OpTypeCooperativeMatrixNV: *hasResult = true; *hasResultType = false; break;
@@ -2036,8 +2131,15 @@ inline void HasResultAndType(Op opcode, bool *hasResult, bool *hasResultType) {
case OpUSubSatINTEL: *hasResult = true; *hasResultType = true; break;
case OpIMul32x16INTEL: *hasResult = true; *hasResultType = true; break;
case OpUMul32x16INTEL: *hasResult = true; *hasResultType = true; break;
- case OpFunctionPointerINTEL: *hasResult = true; *hasResultType = true; break;
+ case OpConstFunctionPointerINTEL: *hasResult = true; *hasResultType = true; break;
case OpFunctionPointerCallINTEL: *hasResult = true; *hasResultType = true; break;
+ case OpAsmTargetINTEL: *hasResult = true; *hasResultType = true; break;
+ case OpAsmINTEL: *hasResult = true; *hasResultType = true; break;
+ case OpAsmCallINTEL: *hasResult = true; *hasResultType = true; break;
+ case OpAtomicFMinEXT: *hasResult = true; *hasResultType = true; break;
+ case OpAtomicFMaxEXT: *hasResult = true; *hasResultType = true; break;
+ case OpAssumeTrueKHR: *hasResult = false; *hasResultType = false; break;
+ case OpExpectKHR: *hasResult = true; *hasResultType = true; break;
case OpDecorateString: *hasResult = false; *hasResultType = false; break;
case OpMemberDecorateString: *hasResult = false; *hasResultType = false; break;
case OpVmeImageINTEL: *hasResult = true; *hasResultType = true; break;
@@ -2158,7 +2260,12 @@ inline void HasResultAndType(Op opcode, bool *hasResult, bool *hasResultType) {
case OpSubgroupAvcSicGetPackedSkcLumaCountThresholdINTEL: *hasResult = true; *hasResultType = true; break;
case OpSubgroupAvcSicGetPackedSkcLumaSumThresholdINTEL: *hasResult = true; *hasResultType = true; break;
case OpSubgroupAvcSicGetInterRawSadsINTEL: *hasResult = true; *hasResultType = true; break;
+ case OpVariableLengthArrayINTEL: *hasResult = true; *hasResultType = true; break;
+ case OpSaveMemoryINTEL: *hasResult = true; *hasResultType = true; break;
+ case OpRestoreMemoryINTEL: *hasResult = false; *hasResultType = false; break;
case OpLoopControlINTEL: *hasResult = false; *hasResultType = false; break;
+ case OpPtrCastToCrossWorkgroupINTEL: *hasResult = true; *hasResultType = true; break;
+ case OpCrossWorkgroupCastToPtrINTEL: *hasResult = true; *hasResultType = true; break;
case OpReadPipeBlockingINTEL: *hasResult = true; *hasResultType = true; break;
case OpWritePipeBlockingINTEL: *hasResult = true; *hasResultType = true; break;
case OpFPGARegINTEL: *hasResult = true; *hasResultType = true; break;
@@ -2180,6 +2287,10 @@ inline void HasResultAndType(Op opcode, bool *hasResult, bool *hasResultType) {
case OpRayQueryGetIntersectionObjectToWorldKHR: *hasResult = true; *hasResultType = true; break;
case OpRayQueryGetIntersectionWorldToObjectKHR: *hasResult = true; *hasResultType = true; break;
case OpAtomicFAddEXT: *hasResult = true; *hasResultType = true; break;
+ case OpTypeBufferSurfaceINTEL: *hasResult = true; *hasResultType = false; break;
+ case OpTypeStructContinuedINTEL: *hasResult = false; *hasResultType = false; break;
+ case OpConstantCompositeContinuedINTEL: *hasResult = false; *hasResultType = false; break;
+ case OpSpecConstantCompositeContinuedINTEL: *hasResult = false; *hasResultType = false; break;
}
}
#endif /* SPV_ENABLE_UTILITY_CODE */
diff --git a/thirdparty/glslang/StandAlone/DirStackFileIncluder.h b/thirdparty/glslang/StandAlone/DirStackFileIncluder.h
index 18734130e7..5a33c78fa2 100644
--- a/thirdparty/glslang/StandAlone/DirStackFileIncluder.h
+++ b/thirdparty/glslang/StandAlone/DirStackFileIncluder.h
@@ -40,6 +40,7 @@
#include <string>
#include <fstream>
#include <algorithm>
+#include <set>
#include "./../glslang/Public/ShaderLang.h"
@@ -84,12 +85,18 @@ public:
}
}
+ virtual std::set<std::string> getIncludedFiles()
+ {
+ return includedFiles;
+ }
+
virtual ~DirStackFileIncluder() override { }
protected:
typedef char tUserDataElement;
std::vector<std::string> directoryStack;
int externalLocalDirectoryCount;
+ std::set<std::string> includedFiles;
// Search for a valid "local" path based on combining the stack of include
// directories and the nominal name of the header.
@@ -108,6 +115,7 @@ protected:
std::ifstream file(path, std::ios_base::binary | std::ios_base::ate);
if (file) {
directoryStack.push_back(getDirectory(path));
+ includedFiles.insert(path);
return newIncludeResult(path, file, (int)file.tellg());
}
}
diff --git a/thirdparty/glslang/glslang/Include/BaseTypes.h b/thirdparty/glslang/glslang/Include/BaseTypes.h
index 55bdd25da5..c8203c2232 100644
--- a/thirdparty/glslang/glslang/Include/BaseTypes.h
+++ b/thirdparty/glslang/glslang/Include/BaseTypes.h
@@ -65,6 +65,10 @@ enum TBasicType {
EbtAccStruct,
EbtReference,
EbtRayQuery,
+#ifndef GLSLANG_WEB
+ // SPIR-V type defined by spirv_type
+ EbtSpirvType,
+#endif
// HLSL types that live only temporarily.
EbtString,
@@ -91,6 +95,9 @@ enum TStorageQualifier {
EvqUniform, // read only, shared with app
EvqBuffer, // read/write, shared with app
EvqShared, // compute shader's read/write 'shared' qualifier
+#ifndef GLSLANG_WEB
+ EvqSpirvStorageClass, // spirv_storage_class
+#endif
EvqPayload,
EvqPayloadIn,
@@ -263,6 +270,7 @@ enum TBuiltInVariable {
EbvWorldToObject,
EbvWorldToObject3x4,
EbvIncomingRayFlags,
+ EbvCurrentRayTimeNV,
// barycentrics
EbvBaryCoordNV,
EbvBaryCoordNoPerspNV,
@@ -321,6 +329,9 @@ __inline const char* GetStorageQualifierString(TStorageQualifier q)
case EvqGlobal: return "global"; break;
case EvqConst: return "const"; break;
case EvqConstReadOnly: return "const (read only)"; break;
+#ifndef GLSLANG_WEB
+ case EvqSpirvStorageClass: return "spirv_storage_class"; break;
+#endif
case EvqVaryingIn: return "in"; break;
case EvqVaryingOut: return "out"; break;
case EvqUniform: return "uniform"; break;
@@ -465,6 +476,7 @@ __inline const char* GetBuiltInVariableString(TBuiltInVariable v)
case EbvIncomingRayFlags: return "IncomingRayFlagsNV";
case EbvObjectToWorld: return "ObjectToWorldNV";
case EbvWorldToObject: return "WorldToObjectNV";
+ case EbvCurrentRayTimeNV: return "CurrentRayTimeNV";
case EbvBaryCoordNV: return "BaryCoordNV";
case EbvBaryCoordNoPerspNV: return "BaryCoordNoPerspNV";
diff --git a/thirdparty/glslang/glslang/Include/Common.h b/thirdparty/glslang/glslang/Include/Common.h
index b628cdc2f0..1e47239a7a 100644
--- a/thirdparty/glslang/glslang/Include/Common.h
+++ b/thirdparty/glslang/glslang/Include/Common.h
@@ -194,6 +194,10 @@ template <class K, class D, class HASH = std::hash<K>, class PRED = std::equal_t
class TUnorderedMap : public std::unordered_map<K, D, HASH, PRED, pool_allocator<std::pair<K const, D> > > {
};
+template <class K, class CMP = std::less<K> >
+class TSet : public std::set<K, CMP, pool_allocator<K> > {
+};
+
//
// Persistent string memory. Should only be used for strings that survive
// across compiles/links.
@@ -286,6 +290,18 @@ template <class T> bool IsMultipleOfPow2(T number, int powerOf2)
return ! (number & (powerOf2 - 1));
}
+// Returns log2 of an integer power of 2.
+// T should be integral.
+template <class T> int IntLog2(T n)
+{
+ assert(IsPow2(n));
+ int result = 0;
+ while ((T(1) << result) != n) {
+ result++;
+ }
+ return result;
+}
+
} // end namespace glslang
#endif // _COMMON_INCLUDED_
diff --git a/thirdparty/glslang/glslang/Include/SpirvIntrinsics.h b/thirdparty/glslang/glslang/Include/SpirvIntrinsics.h
new file mode 100644
index 0000000000..e7a999d408
--- /dev/null
+++ b/thirdparty/glslang/glslang/Include/SpirvIntrinsics.h
@@ -0,0 +1,136 @@
+//
+// Copyright(C) 2021 Advanced Micro Devices, Inc.
+//
+// All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions
+// are met:
+//
+// Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+//
+// Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following
+// disclaimer in the documentation and/or other materials provided
+// with the distribution.
+//
+// Neither the name of 3Dlabs Inc. Ltd. nor the names of its
+// contributors may be used to endorse or promote products derived
+// from this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
+// COPYRIGHT HOLDERS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
+// INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
+// BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+// LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
+// CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
+// ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+// POSSIBILITY OF SUCH DAMAGE.
+//
+
+#pragma once
+
+#ifndef GLSLANG_WEB
+
+//
+// GL_EXT_spirv_intrinsics
+//
+#include "Common.h"
+
+namespace glslang {
+
+class TIntermTyped;
+class TIntermConstantUnion;
+class TType;
+
+// SPIR-V requirements
+struct TSpirvRequirement {
+ POOL_ALLOCATOR_NEW_DELETE(GetThreadPoolAllocator())
+
+ // capability = [..]
+ TSet<TString> extensions;
+ // extension = [..]
+ TSet<int> capabilities;
+};
+
+// SPIR-V execution modes
+struct TSpirvExecutionMode {
+ POOL_ALLOCATOR_NEW_DELETE(GetThreadPoolAllocator())
+
+ // spirv_execution_mode
+ TMap<int, TVector<const TIntermConstantUnion*>> modes;
+ // spirv_execution_mode_id
+ TMap<int, TVector<const TIntermConstantUnion*> > modeIds;
+};
+
+// SPIR-V decorations
+struct TSpirvDecorate {
+ POOL_ALLOCATOR_NEW_DELETE(GetThreadPoolAllocator())
+
+ // spirv_decorate
+ TMap<int, TVector<const TIntermConstantUnion*> > decorates;
+ // spirv_decorate_id
+ TMap<int, TVector<const TIntermConstantUnion*> > decorateIds;
+ // spirv_decorate_string
+ TMap<int, TVector<const TIntermConstantUnion*> > decorateStrings;
+};
+
+// SPIR-V instruction
+struct TSpirvInstruction {
+ POOL_ALLOCATOR_NEW_DELETE(GetThreadPoolAllocator())
+
+ TSpirvInstruction() { set = ""; id = -1; }
+
+ bool operator==(const TSpirvInstruction& rhs) const { return set == rhs.set && id == rhs.id; }
+ bool operator!=(const TSpirvInstruction& rhs) const { return !operator==(rhs); }
+
+ // spirv_instruction
+ TString set;
+ int id;
+};
+
+// SPIR-V type parameter
+struct TSpirvTypeParameter {
+ POOL_ALLOCATOR_NEW_DELETE(GetThreadPoolAllocator())
+
+ TSpirvTypeParameter(const TIntermConstantUnion* arg) { isConstant = true; constant = arg; }
+ TSpirvTypeParameter(const TType* arg) { isConstant = false; type = arg; }
+
+ bool operator==(const TSpirvTypeParameter& rhs) const
+ {
+ return isConstant == rhs.isConstant && ((isConstant && constant == rhs.constant) || (!isConstant && type == rhs.type));
+ }
+ bool operator!=(const TSpirvTypeParameter& rhs) const { return !operator==(rhs); }
+
+ bool isConstant;
+ union {
+ const TIntermConstantUnion* constant;
+ const TType* type;
+ };
+};
+
+typedef TVector<TSpirvTypeParameter> TSpirvTypeParameters;
+
+// SPIR-V type
+struct TSpirvType {
+ POOL_ALLOCATOR_NEW_DELETE(GetThreadPoolAllocator())
+
+ bool operator==(const TSpirvType& rhs) const
+ {
+ return spirvInst == rhs.spirvInst && typeParams == rhs.typeParams;
+ }
+ bool operator!=(const TSpirvType& rhs) const { return !operator==(rhs); }
+
+ // spirv_type
+ TSpirvInstruction spirvInst;
+ TSpirvTypeParameters typeParams;
+};
+
+} // end namespace glslang
+
+#endif // GLSLANG_WEB
diff --git a/thirdparty/glslang/glslang/Include/Types.h b/thirdparty/glslang/glslang/Include/Types.h
index 696daf6dfa..a6bf191d75 100644
--- a/thirdparty/glslang/glslang/Include/Types.h
+++ b/thirdparty/glslang/glslang/Include/Types.h
@@ -44,11 +44,14 @@
#include "../Include/BaseTypes.h"
#include "../Public/ShaderLang.h"
#include "arrays.h"
+#include "SpirvIntrinsics.h"
#include <algorithm>
namespace glslang {
+class TIntermAggregate;
+
const int GlslangMaxTypeLength = 200; // TODO: need to print block/struct one member per line, so this can stay bounded
const char* const AnonymousPrefix = "anon@"; // for something like a block whose members can be directly accessed
@@ -115,6 +118,7 @@ struct TSampler { // misnomer now; includes images, textures without sampler,
#endif
bool is1D() const { return dim == Esd1D; }
+ bool is2D() const { return dim == Esd2D; }
bool isBuffer() const { return dim == EsdBuffer; }
bool isRect() const { return dim == EsdRect; }
bool isSubpass() const { return dim == EsdSubpass; }
@@ -486,7 +490,6 @@ enum TShaderInterface
EsiCount
};
-
class TQualifier {
public:
static const int layoutNotSet = -1;
@@ -499,7 +502,11 @@ public:
declaredBuiltIn = EbvNone;
#ifndef GLSLANG_WEB
noContraction = false;
+ nullInit = false;
+ spirvByReference = false;
+ spirvLiteral = false;
#endif
+ defaultBlock = false;
}
// drop qualifiers that don't belong in a temporary variable
@@ -512,7 +519,15 @@ public:
clearMemory();
specConstant = false;
nonUniform = false;
+ nullInit = false;
+ defaultBlock = false;
clearLayout();
+#ifndef GLSLANG_WEB
+ spirvStorageClass = -1;
+ spirvDecorate = nullptr;
+ spirvByReference = false;
+ spirvLiteral = false;
+#endif
}
void clearInterstage()
@@ -570,6 +585,7 @@ public:
bool specConstant : 1;
bool nonUniform : 1;
bool explicitOffset : 1;
+ bool defaultBlock : 1; // default blocks with matching names have structures merged when linking
#ifdef GLSLANG_WEB
bool isWriteOnly() const { return false; }
@@ -588,6 +604,12 @@ public:
bool isNoContraction() const { return false; }
void setNoContraction() { }
bool isPervertexNV() const { return false; }
+ void setNullInit() { }
+ bool isNullInit() const { return false; }
+ void setSpirvByReference() { }
+ bool isSpirvByReference() { return false; }
+ void setSpirvLiteral() { }
+ bool isSpirvLiteral() { return false; }
#else
bool noContraction: 1; // prevent contraction and reassociation, e.g., for 'precise' keyword, and expressions it affects
bool nopersp : 1;
@@ -609,6 +631,9 @@ public:
bool subgroupcoherent : 1;
bool shadercallcoherent : 1;
bool nonprivate : 1;
+ bool nullInit : 1;
+ bool spirvByReference : 1;
+ bool spirvLiteral : 1;
bool isWriteOnly() const { return writeonly; }
bool isReadOnly() const { return readonly; }
bool isRestrict() const { return restrict; }
@@ -644,6 +669,12 @@ public:
bool isNoContraction() const { return noContraction; }
void setNoContraction() { noContraction = true; }
bool isPervertexNV() const { return pervertexNV; }
+ void setNullInit() { nullInit = true; }
+ bool isNullInit() const { return nullInit; }
+ void setSpirvByReference() { spirvByReference = true; }
+ bool isSpirvByReference() const { return spirvByReference; }
+ void setSpirvLiteral() { spirvLiteral = true; }
+ bool isSpirvLiteral() const { return spirvLiteral; }
#endif
bool isPipeInput() const
@@ -749,6 +780,46 @@ public:
}
}
+ TBlockStorageClass getBlockStorage() const {
+ if (storage == EvqUniform && !isPushConstant()) {
+ return EbsUniform;
+ }
+ else if (storage == EvqUniform) {
+ return EbsPushConstant;
+ }
+ else if (storage == EvqBuffer) {
+ return EbsStorageBuffer;
+ }
+ return EbsNone;
+ }
+
+ void setBlockStorage(TBlockStorageClass newBacking) {
+#ifndef GLSLANG_WEB
+ layoutPushConstant = (newBacking == EbsPushConstant);
+#endif
+ switch (newBacking) {
+ case EbsUniform :
+ if (layoutPacking == ElpStd430) {
+ // std430 would not be valid
+ layoutPacking = ElpStd140;
+ }
+ storage = EvqUniform;
+ break;
+ case EbsStorageBuffer :
+ storage = EvqBuffer;
+ break;
+#ifndef GLSLANG_WEB
+ case EbsPushConstant :
+ storage = EvqUniform;
+ layoutSet = TQualifier::layoutSetEnd;
+ layoutBinding = TQualifier::layoutBindingEnd;
+ break;
+#endif
+ default:
+ break;
+ }
+ }
+
#ifdef GLSLANG_WEB
bool isPerView() const { return false; }
bool isTaskMemory() const { return false; }
@@ -845,6 +916,7 @@ public:
return hasNonXfbLayout() ||
hasXfb();
}
+
TLayoutMatrix layoutMatrix : 3;
TLayoutPacking layoutPacking : 4;
int layoutOffset;
@@ -896,6 +968,10 @@ public:
bool layoutViewportRelative;
int layoutSecondaryViewportRelativeOffset;
bool layoutShaderRecord;
+
+ // GL_EXT_spirv_intrinsics
+ int spirvStorageClass;
+ TSpirvDecorate* spirvDecorate;
#endif
bool hasUniformLayout() const
@@ -1027,6 +1103,15 @@ public:
{
return nonUniform;
}
+
+ // GL_EXT_spirv_intrinsics
+ bool hasSprivDecorate() const { return spirvDecorate != nullptr; }
+ void setSpirvDecorate(int decoration, const TIntermAggregate* args = nullptr);
+ void setSpirvDecorateId(int decoration, const TIntermAggregate* args);
+ void setSpirvDecorateString(int decoration, const TIntermAggregate* args);
+ const TSpirvDecorate& getSpirvDecorate() const { assert(spirvDecorate); return *spirvDecorate; }
+ TSpirvDecorate& getSpirvDecorate() { assert(spirvDecorate); return *spirvDecorate; }
+ TString getSpirvDecorateQualifierString() const;
#endif
bool hasSpecConstantId() const
{
@@ -1371,6 +1456,10 @@ public:
const TType* userDef;
TSourceLoc loc;
TArraySizes* typeParameters;
+#ifndef GLSLANG_WEB
+ // SPIR-V type defined by spirv_type directive
+ TSpirvType* spirvType;
+#endif
#ifdef GLSLANG_WEB
bool isCoopmat() const { return false; }
@@ -1389,6 +1478,9 @@ public:
loc = l;
typeParameters = nullptr;
coopmat = false;
+#ifndef GLSLANG_WEB
+ spirvType = nullptr;
+#endif
}
void initQualifiers(bool global = false)
@@ -1425,6 +1517,11 @@ public:
return matrixCols == 0 && vectorSize == 1 && arraySizes == nullptr && userDef == nullptr;
}
+#ifndef GLSLANG_WEB
+ // GL_EXT_spirv_intrinsics
+ void setSpirvType(const TSpirvInstruction& spirvInst, const TSpirvTypeParameters* typeParams = nullptr);
+#endif
+
// "Image" is a superset of "Subpass"
bool isImage() const { return basicType == EbtSampler && sampler.isImage(); }
bool isSubpass() const { return basicType == EbtSampler && sampler.isSubpass(); }
@@ -1442,6 +1539,9 @@ public:
bool isVector = false) :
basicType(t), vectorSize(vs), matrixCols(mc), matrixRows(mr), vector1(isVector && vs == 1), coopmat(false),
arraySizes(nullptr), structure(nullptr), fieldName(nullptr), typeName(nullptr), typeParameters(nullptr)
+#ifndef GLSLANG_WEB
+ , spirvType(nullptr)
+#endif
{
sampler.clear();
qualifier.clear();
@@ -1453,6 +1553,9 @@ public:
bool isVector = false) :
basicType(t), vectorSize(vs), matrixCols(mc), matrixRows(mr), vector1(isVector && vs == 1), coopmat(false),
arraySizes(nullptr), structure(nullptr), fieldName(nullptr), typeName(nullptr), typeParameters(nullptr)
+#ifndef GLSLANG_WEB
+ , spirvType(nullptr)
+#endif
{
sampler.clear();
qualifier.clear();
@@ -1466,6 +1569,9 @@ public:
basicType(p.basicType),
vectorSize(p.vectorSize), matrixCols(p.matrixCols), matrixRows(p.matrixRows), vector1(false), coopmat(p.coopmat),
arraySizes(p.arraySizes), structure(nullptr), fieldName(nullptr), typeName(nullptr), typeParameters(p.typeParameters)
+#ifndef GLSLANG_WEB
+ , spirvType(p.spirvType)
+#endif
{
if (basicType == EbtSampler)
sampler = p.sampler;
@@ -1500,6 +1606,9 @@ public:
basicType(EbtSampler), vectorSize(1), matrixCols(0), matrixRows(0), vector1(false), coopmat(false),
arraySizes(as), structure(nullptr), fieldName(nullptr), typeName(nullptr),
sampler(sampler), typeParameters(nullptr)
+#ifndef GLSLANG_WEB
+ , spirvType(nullptr)
+#endif
{
qualifier.clear();
qualifier.storage = q;
@@ -1550,6 +1659,9 @@ public:
TType(TTypeList* userDef, const TString& n) :
basicType(EbtStruct), vectorSize(1), matrixCols(0), matrixRows(0), vector1(false), coopmat(false),
arraySizes(nullptr), structure(userDef), fieldName(nullptr), typeParameters(nullptr)
+#ifndef GLSLANG_WEB
+ , spirvType(nullptr)
+#endif
{
sampler.clear();
qualifier.clear();
@@ -1559,6 +1671,9 @@ public:
TType(TTypeList* userDef, const TString& n, const TQualifier& q) :
basicType(EbtBlock), vectorSize(1), matrixCols(0), matrixRows(0), vector1(false), coopmat(false),
qualifier(q), arraySizes(nullptr), structure(userDef), fieldName(nullptr), typeParameters(nullptr)
+#ifndef GLSLANG_WEB
+ , spirvType(nullptr)
+#endif
{
sampler.clear();
typeName = NewPoolTString(n.c_str());
@@ -1567,6 +1682,9 @@ public:
explicit TType(TBasicType t, const TType &p, const TString& n) :
basicType(t), vectorSize(1), matrixCols(0), matrixRows(0), vector1(false),
arraySizes(nullptr), structure(nullptr), fieldName(nullptr), typeName(nullptr)
+#ifndef GLSLANG_WEB
+ , spirvType(nullptr)
+#endif
{
assert(t == EbtReference);
typeName = NewPoolTString(n.c_str());
@@ -1597,6 +1715,9 @@ public:
referentType = copyOf.referentType;
}
typeParameters = copyOf.typeParameters;
+#ifndef GLSLANG_WEB
+ spirvType = copyOf.spirvType;
+#endif
coopmat = copyOf.isCoopMat();
}
@@ -1687,6 +1808,7 @@ public:
virtual bool isScalar() const { return ! isVector() && ! isMatrix() && ! isStruct() && ! isArray(); }
virtual bool isScalarOrVec1() const { return isScalar() || vector1; }
+ virtual bool isScalarOrVector() const { return !isMatrix() && !isStruct() && !isArray(); }
virtual bool isVector() const { return vectorSize > 1 || vector1; }
virtual bool isMatrix() const { return matrixCols ? true : false; }
virtual bool isArray() const { return arraySizes != nullptr; }
@@ -1717,7 +1839,7 @@ public:
}
virtual bool isOpaque() const { return basicType == EbtSampler
#ifndef GLSLANG_WEB
- || basicType == EbtAtomicUint || basicType == EbtAccStruct || basicType == EbtRayQuery
+ || basicType == EbtAtomicUint || basicType == EbtAccStruct || basicType == EbtRayQuery
#endif
; }
virtual bool isBuiltIn() const { return getQualifier().builtIn != EbvNone; }
@@ -1965,8 +2087,6 @@ public:
}
}
-
-
const char* getBasicString() const
{
return TType::getBasicString(basicType);
@@ -1997,6 +2117,7 @@ public:
case EbtRayQuery: return "rayQueryEXT";
case EbtReference: return "reference";
case EbtString: return "string";
+ case EbtSpirvType: return "spirv_type";
#endif
default: return "unknown type";
}
@@ -2017,6 +2138,9 @@ public:
const auto appendUint = [&](unsigned int u) { typeString.append(std::to_string(u).c_str()); };
const auto appendInt = [&](int i) { typeString.append(std::to_string(i).c_str()); };
+ if (qualifier.hasSprivDecorate())
+ appendStr(qualifier.getSpirvDecorateQualifierString().c_str());
+
if (qualifier.hasLayout()) {
// To reduce noise, skip this if the only layout is an xfb_buffer
// with no triggering xfb_offset.
@@ -2164,6 +2288,12 @@ public:
appendStr(" specialization-constant");
if (qualifier.nonUniform)
appendStr(" nonuniform");
+ if (qualifier.isNullInit())
+ appendStr(" null-init");
+ if (qualifier.isSpirvByReference())
+ appendStr(" spirv_by_reference");
+ if (qualifier.isSpirvLiteral())
+ appendStr(" spirv_literal");
appendStr(" ");
appendStr(getStorageQualifierString());
if (isArray()) {
@@ -2283,6 +2413,17 @@ public:
name += ';' ;
}
+ // These variables are inconsistently declared inside and outside of gl_PerVertex in glslang right now.
+ // They are declared inside of 'in gl_PerVertex', but sitting as standalone when they are 'out'puts.
+ bool isInconsistentGLPerVertexMember(const TString& name) const
+ {
+ if (name == "gl_SecondaryPositionNV" ||
+ name == "gl_PositionPerViewNV")
+ return true;
+ return false;
+ }
+
+
// Do two structure types match? They could be declared independently,
// in different places, but still might satisfy the definition of matching.
// From the spec:
@@ -2298,22 +2439,48 @@ public:
(isStruct() && right.isStruct() && structure == right.structure))
return true;
- // Both being nullptr was caught above, now they both have to be structures of the same number of elements
- if (!isStruct() || !right.isStruct() ||
- structure->size() != right.structure->size())
- return false;
-
// Structure names have to match
if (*typeName != *right.typeName)
return false;
- // Compare the names and types of all the members, which have to match
- for (unsigned int i = 0; i < structure->size(); ++i) {
- if ((*structure)[i].type->getFieldName() != (*right.structure)[i].type->getFieldName())
- return false;
+ // There are inconsistencies with how gl_PerVertex is setup. For now ignore those as errors if they
+ // are known inconsistencies.
+ bool isGLPerVertex = *typeName == "gl_PerVertex";
- if (*(*structure)[i].type != *(*right.structure)[i].type)
- return false;
+ // Both being nullptr was caught above, now they both have to be structures of the same number of elements
+ if (!isStruct() || !right.isStruct() ||
+ (structure->size() != right.structure->size() && !isGLPerVertex))
+ return false;
+
+ // Compare the names and types of all the members, which have to match
+ for (size_t li = 0, ri = 0; li < structure->size() || ri < right.structure->size(); ++li, ++ri) {
+ if (li < structure->size() && ri < right.structure->size()) {
+ if ((*structure)[li].type->getFieldName() == (*right.structure)[ri].type->getFieldName()) {
+ if (*(*structure)[li].type != *(*right.structure)[ri].type)
+ return false;
+ } else {
+ // If one of the members is something that's inconsistently declared, skip over it
+ // for now.
+ if (isGLPerVertex) {
+ if (isInconsistentGLPerVertexMember((*structure)[li].type->getFieldName())) {
+ ri--;
+ continue;
+ } else if (isInconsistentGLPerVertexMember((*right.structure)[ri].type->getFieldName())) {
+ li--;
+ continue;
+ }
+ } else {
+ return false;
+ }
+ }
+ // If we get here, then there should only be inconsistently declared members left
+ } else if (li < structure->size()) {
+ if (!isInconsistentGLPerVertexMember((*structure)[li].type->getFieldName()))
+ return false;
+ } else {
+ if (!isInconsistentGLPerVertexMember((*right.structure)[ri].type->getFieldName()))
+ return false;
+ }
}
return true;
@@ -2363,6 +2530,15 @@ public:
(typeParameters != nullptr && right.typeParameters != nullptr && *typeParameters == *right.typeParameters));
}
+#ifndef GLSLANG_WEB
+ // See if two type's SPIR-V type contents match
+ bool sameSpirvType(const TType& right) const
+ {
+ return ((spirvType == nullptr && right.spirvType == nullptr) ||
+ (spirvType != nullptr && right.spirvType != nullptr && *spirvType == *right.spirvType));
+ }
+#endif
+
// See if two type's elements match in all ways except basic type
bool sameElementShape(const TType& right) const
{
@@ -2401,7 +2577,11 @@ public:
// See if two types match in all ways (just the actual type, not qualification)
bool operator==(const TType& right) const
{
+#ifndef GLSLANG_WEB
+ return sameElementType(right) && sameArrayness(right) && sameTypeParameters(right) && sameSpirvType(right);
+#else
return sameElementType(right) && sameArrayness(right) && sameTypeParameters(right);
+#endif
}
bool operator!=(const TType& right) const
@@ -2420,6 +2600,10 @@ public:
return 0;
}
+#ifndef GLSLANG_WEB
+ const TSpirvType& getSpirvType() const { assert(spirvType); return *spirvType; }
+#endif
+
protected:
// Require consumer to pick between deep copy and shallow copy.
TType(const TType& type);
@@ -2432,6 +2616,19 @@ protected:
{
shallowCopy(copyOf);
+#ifndef GLSLANG_WEB
+ // GL_EXT_spirv_intrinsics
+ if (copyOf.qualifier.spirvDecorate) {
+ qualifier.spirvDecorate = new TSpirvDecorate;
+ *qualifier.spirvDecorate = *copyOf.qualifier.spirvDecorate;
+ }
+
+ if (copyOf.spirvType) {
+ spirvType = new TSpirvType;
+ *spirvType = *copyOf.spirvType;
+ }
+#endif
+
if (copyOf.arraySizes) {
arraySizes = new TArraySizes;
*arraySizes = *copyOf.arraySizes;
@@ -2491,6 +2688,9 @@ protected:
TString *typeName; // for structure type name
TSampler sampler;
TArraySizes* typeParameters;// nullptr unless a parameterized type; can be shared across types
+#ifndef GLSLANG_WEB
+ TSpirvType* spirvType; // SPIR-V type defined by spirv_type directive
+#endif
};
} // end namespace glslang
diff --git a/thirdparty/glslang/glslang/Include/glslang_c_shader_types.h b/thirdparty/glslang/glslang/Include/glslang_c_shader_types.h
index d01a115f69..f100a9aa82 100644
--- a/thirdparty/glslang/glslang/Include/glslang_c_shader_types.h
+++ b/thirdparty/glslang/glslang/Include/glslang_c_shader_types.h
@@ -100,8 +100,9 @@ typedef enum {
typedef enum {
GLSLANG_TARGET_VULKAN_1_0 = (1 << 22),
GLSLANG_TARGET_VULKAN_1_1 = (1 << 22) | (1 << 12),
+ GLSLANG_TARGET_VULKAN_1_2 = (1 << 22) | (2 << 12),
GLSLANG_TARGET_OPENGL_450 = 450,
- LAST_ELEMENT_MARKER(GLSLANG_TARGET_CLIENT_VERSION_COUNT),
+ LAST_ELEMENT_MARKER(GLSLANG_TARGET_CLIENT_VERSION_COUNT = 4),
} glslang_target_client_version_t;
/* SH_TARGET_LanguageVersion counterpart */
@@ -112,7 +113,7 @@ typedef enum {
GLSLANG_TARGET_SPV_1_3 = (1 << 16) | (3 << 8),
GLSLANG_TARGET_SPV_1_4 = (1 << 16) | (4 << 8),
GLSLANG_TARGET_SPV_1_5 = (1 << 16) | (5 << 8),
- LAST_ELEMENT_MARKER(GLSLANG_TARGET_LANGUAGE_VERSION_COUNT),
+ LAST_ELEMENT_MARKER(GLSLANG_TARGET_LANGUAGE_VERSION_COUNT = 6),
} glslang_target_language_version_t;
/* EShExecutable counterpart */
diff --git a/thirdparty/glslang/glslang/Include/intermediate.h b/thirdparty/glslang/glslang/Include/intermediate.h
index 19cd32e9a8..1e6ab4aa7a 100644
--- a/thirdparty/glslang/glslang/Include/intermediate.h
+++ b/thirdparty/glslang/glslang/Include/intermediate.h
@@ -71,6 +71,9 @@ enum TOperator {
EOpFunctionCall,
EOpFunction, // For function definition
EOpParameters, // an aggregate listing the parameters to a function
+#ifndef GLSLANG_WEB
+ EOpSpirvInst,
+#endif
//
// Unary operators
@@ -593,6 +596,7 @@ enum TOperator {
EOpTime,
EOpAtomicAdd,
+ EOpAtomicSubtract,
EOpAtomicMin,
EOpAtomicMax,
EOpAtomicAnd,
@@ -922,6 +926,7 @@ enum TOperator {
EOpMul32x16,
EOpTraceNV,
+ EOpTraceRayMotionNV,
EOpTraceKHR,
EOpReportIntersection,
EOpIgnoreIntersectionNV,
@@ -1135,6 +1140,8 @@ public:
virtual TBasicType getBasicType() const { return type.getBasicType(); }
virtual TQualifier& getQualifier() { return type.getQualifier(); }
virtual const TQualifier& getQualifier() const { return type.getQualifier(); }
+ virtual TArraySizes* getArraySizes() { return type.getArraySizes(); }
+ virtual const TArraySizes* getArraySizes() const { return type.getArraySizes(); }
virtual void propagatePrecision(TPrecisionQualifier);
virtual int getVectorSize() const { return type.getVectorSize(); }
virtual int getMatrixCols() const { return type.getMatrixCols(); }
@@ -1275,15 +1282,15 @@ public:
// if symbol is initialized as symbol(sym), the memory comes from the pool allocator of sym. If sym comes from
// per process threadPoolAllocator, then it causes increased memory usage per compile
// it is essential to use "symbol = sym" to assign to symbol
- TIntermSymbol(int i, const TString& n, const TType& t)
+ TIntermSymbol(long long i, const TString& n, const TType& t)
: TIntermTyped(t), id(i),
#ifndef GLSLANG_WEB
flattenSubset(-1),
#endif
constSubtree(nullptr)
{ name = n; }
- virtual int getId() const { return id; }
- virtual void changeId(int i) { id = i; }
+ virtual long long getId() const { return id; }
+ virtual void changeId(long long i) { id = i; }
virtual const TString& getName() const { return name; }
virtual void traverse(TIntermTraverser*);
virtual TIntermSymbol* getAsSymbolNode() { return this; }
@@ -1301,10 +1308,10 @@ public:
// This is meant for cases where a node has already been constructed, and
// later on, it becomes necessary to switch to a different symbol.
- virtual void switchId(int newId) { id = newId; }
+ virtual void switchId(long long newId) { id = newId; }
protected:
- int id; // the unique id of the symbol this node represents
+ long long id; // the unique id of the symbol this node represents
#ifndef GLSLANG_WEB
int flattenSubset; // how deeply the flattened object rooted at id has been dereferenced
#endif
@@ -1613,8 +1620,15 @@ public:
virtual TIntermUnary* getAsUnaryNode() { return this; }
virtual const TIntermUnary* getAsUnaryNode() const { return this; }
virtual void updatePrecision();
+#ifndef GLSLANG_WEB
+ void setSpirvInstruction(const TSpirvInstruction& inst) { spirvInst = inst; }
+ const TSpirvInstruction& getSpirvInstruction() const { return spirvInst; }
+#endif
protected:
TIntermTyped* operand;
+#ifndef GLSLANG_WEB
+ TSpirvInstruction spirvInst;
+#endif
};
typedef TVector<TIntermNode*> TIntermSequence;
@@ -1645,6 +1659,10 @@ public:
bool getDebug() const { return debug; }
void setPragmaTable(const TPragmaTable& pTable);
const TPragmaTable& getPragmaTable() const { return *pragmaTable; }
+#ifndef GLSLANG_WEB
+ void setSpirvInstruction(const TSpirvInstruction& inst) { spirvInst = inst; }
+ const TSpirvInstruction& getSpirvInstruction() const { return spirvInst; }
+#endif
protected:
TIntermAggregate(const TIntermAggregate&); // disallow copy constructor
TIntermAggregate& operator=(const TIntermAggregate&); // disallow assignment operator
@@ -1655,6 +1673,9 @@ protected:
bool optimize;
bool debug;
TPragmaTable* pragmaTable;
+#ifndef GLSLANG_WEB
+ TSpirvInstruction spirvInst;
+#endif
};
//
@@ -1672,8 +1693,11 @@ public:
flatten(false), dontFlatten(false) {}
virtual void traverse(TIntermTraverser*);
virtual TIntermTyped* getCondition() const { return condition; }
+ virtual void setCondition(TIntermTyped* c) { condition = c; }
virtual TIntermNode* getTrueBlock() const { return trueBlock; }
+ virtual void setTrueBlock(TIntermTyped* tb) { trueBlock = tb; }
virtual TIntermNode* getFalseBlock() const { return falseBlock; }
+ virtual void setFalseBlock(TIntermTyped* fb) { falseBlock = fb; }
virtual TIntermSelection* getAsSelectionNode() { return this; }
virtual const TIntermSelection* getAsSelectionNode() const { return this; }
diff --git a/thirdparty/glslang/glslang/MachineIndependent/Constant.cpp b/thirdparty/glslang/glslang/MachineIndependent/Constant.cpp
index e21cf427f0..4629cc2da5 100644
--- a/thirdparty/glslang/glslang/MachineIndependent/Constant.cpp
+++ b/thirdparty/glslang/glslang/MachineIndependent/Constant.cpp
@@ -529,7 +529,12 @@ TIntermTyped* TIntermConstantUnion::fold(TOperator op, const TType& returnType)
case EbtDouble:
case EbtFloat16:
case EbtFloat: newConstArray[i].setDConst(-unionArray[i].getDConst()); break;
- case EbtInt: newConstArray[i].setIConst(-unionArray[i].getIConst()); break;
+ // Note: avoid UBSAN error regarding negating 0x80000000
+ case EbtInt: newConstArray[i].setIConst(
+ unionArray[i].getIConst() == 0x80000000
+ ? -0x7FFFFFFF - 1
+ : -unionArray[i].getIConst());
+ break;
case EbtUint: newConstArray[i].setUConst(static_cast<unsigned int>(-static_cast<int>(unionArray[i].getUConst()))); break;
#ifndef GLSLANG_WEB
case EbtInt8: newConstArray[i].setI8Const(-unionArray[i].getI8Const()); break;
@@ -599,17 +604,11 @@ TIntermTyped* TIntermConstantUnion::fold(TOperator op, const TType& returnType)
newConstArray[i].setDConst(log(unionArray[i].getDConst()));
break;
case EOpExp2:
- {
- const double inv_log2_e = 0.69314718055994530941723212145818;
- newConstArray[i].setDConst(exp(unionArray[i].getDConst() * inv_log2_e));
- break;
- }
+ newConstArray[i].setDConst(exp2(unionArray[i].getDConst()));
+ break;
case EOpLog2:
- {
- const double log2_e = 1.4426950408889634073599246810019;
- newConstArray[i].setDConst(log2_e * log(unionArray[i].getDConst()));
- break;
- }
+ newConstArray[i].setDConst(log2(unionArray[i].getDConst()));
+ break;
case EOpSqrt:
newConstArray[i].setDConst(sqrt(unionArray[i].getDConst()));
break;
diff --git a/thirdparty/glslang/glslang/MachineIndependent/Initialize.cpp b/thirdparty/glslang/glslang/MachineIndependent/Initialize.cpp
index a5ef6ccaf6..823406c18d 100644
--- a/thirdparty/glslang/glslang/MachineIndependent/Initialize.cpp
+++ b/thirdparty/glslang/glslang/MachineIndependent/Initialize.cpp
@@ -483,7 +483,8 @@ void TBuiltIns::relateTabledBuiltins(int /* version */, EProfile /* profile */,
inline bool IncludeLegacy(int version, EProfile profile, const SpvVersion& spvVersion)
{
- return profile != EEsProfile && (version <= 130 || (spvVersion.spv == 0 && ARBCompatibility) || profile == ECompatibilityProfile);
+ return profile != EEsProfile && (version <= 130 || (spvVersion.spv == 0 && version == 140 && ARBCompatibility) ||
+ profile == ECompatibilityProfile);
}
// Construct TBuiltInParseables base class. This can be used for language-common constructs.
@@ -931,7 +932,203 @@ void TBuiltIns::initialize(int version, EProfile profile, const SpvVersion& spvV
"\n");
}
- if (profile != EEsProfile && version >= 450) {
+ if (profile == EEsProfile && version >= 310) { // Explicit Types
+ commonBuiltins.append(
+
+ "float64_t sqrt(float64_t);"
+ "f64vec2 sqrt(f64vec2);"
+ "f64vec3 sqrt(f64vec3);"
+ "f64vec4 sqrt(f64vec4);"
+
+ "float64_t inversesqrt(float64_t);"
+ "f64vec2 inversesqrt(f64vec2);"
+ "f64vec3 inversesqrt(f64vec3);"
+ "f64vec4 inversesqrt(f64vec4);"
+
+ "float64_t abs(float64_t);"
+ "f64vec2 abs(f64vec2);"
+ "f64vec3 abs(f64vec3);"
+ "f64vec4 abs(f64vec4);"
+
+ "float64_t sign(float64_t);"
+ "f64vec2 sign(f64vec2);"
+ "f64vec3 sign(f64vec3);"
+ "f64vec4 sign(f64vec4);"
+
+ "float64_t floor(float64_t);"
+ "f64vec2 floor(f64vec2);"
+ "f64vec3 floor(f64vec3);"
+ "f64vec4 floor(f64vec4);"
+
+ "float64_t trunc(float64_t);"
+ "f64vec2 trunc(f64vec2);"
+ "f64vec3 trunc(f64vec3);"
+ "f64vec4 trunc(f64vec4);"
+
+ "float64_t round(float64_t);"
+ "f64vec2 round(f64vec2);"
+ "f64vec3 round(f64vec3);"
+ "f64vec4 round(f64vec4);"
+
+ "float64_t roundEven(float64_t);"
+ "f64vec2 roundEven(f64vec2);"
+ "f64vec3 roundEven(f64vec3);"
+ "f64vec4 roundEven(f64vec4);"
+
+ "float64_t ceil(float64_t);"
+ "f64vec2 ceil(f64vec2);"
+ "f64vec3 ceil(f64vec3);"
+ "f64vec4 ceil(f64vec4);"
+
+ "float64_t fract(float64_t);"
+ "f64vec2 fract(f64vec2);"
+ "f64vec3 fract(f64vec3);"
+ "f64vec4 fract(f64vec4);"
+
+ "float64_t mod(float64_t, float64_t);"
+ "f64vec2 mod(f64vec2 , float64_t);"
+ "f64vec3 mod(f64vec3 , float64_t);"
+ "f64vec4 mod(f64vec4 , float64_t);"
+ "f64vec2 mod(f64vec2 , f64vec2);"
+ "f64vec3 mod(f64vec3 , f64vec3);"
+ "f64vec4 mod(f64vec4 , f64vec4);"
+
+ "float64_t modf(float64_t, out float64_t);"
+ "f64vec2 modf(f64vec2, out f64vec2);"
+ "f64vec3 modf(f64vec3, out f64vec3);"
+ "f64vec4 modf(f64vec4, out f64vec4);"
+
+ "float64_t min(float64_t, float64_t);"
+ "f64vec2 min(f64vec2, float64_t);"
+ "f64vec3 min(f64vec3, float64_t);"
+ "f64vec4 min(f64vec4, float64_t);"
+ "f64vec2 min(f64vec2, f64vec2);"
+ "f64vec3 min(f64vec3, f64vec3);"
+ "f64vec4 min(f64vec4, f64vec4);"
+
+ "float64_t max(float64_t, float64_t);"
+ "f64vec2 max(f64vec2 , float64_t);"
+ "f64vec3 max(f64vec3 , float64_t);"
+ "f64vec4 max(f64vec4 , float64_t);"
+ "f64vec2 max(f64vec2 , f64vec2);"
+ "f64vec3 max(f64vec3 , f64vec3);"
+ "f64vec4 max(f64vec4 , f64vec4);"
+
+ "float64_t clamp(float64_t, float64_t, float64_t);"
+ "f64vec2 clamp(f64vec2 , float64_t, float64_t);"
+ "f64vec3 clamp(f64vec3 , float64_t, float64_t);"
+ "f64vec4 clamp(f64vec4 , float64_t, float64_t);"
+ "f64vec2 clamp(f64vec2 , f64vec2 , f64vec2);"
+ "f64vec3 clamp(f64vec3 , f64vec3 , f64vec3);"
+ "f64vec4 clamp(f64vec4 , f64vec4 , f64vec4);"
+
+ "float64_t mix(float64_t, float64_t, float64_t);"
+ "f64vec2 mix(f64vec2, f64vec2, float64_t);"
+ "f64vec3 mix(f64vec3, f64vec3, float64_t);"
+ "f64vec4 mix(f64vec4, f64vec4, float64_t);"
+ "f64vec2 mix(f64vec2, f64vec2, f64vec2);"
+ "f64vec3 mix(f64vec3, f64vec3, f64vec3);"
+ "f64vec4 mix(f64vec4, f64vec4, f64vec4);"
+ "float64_t mix(float64_t, float64_t, bool);"
+ "f64vec2 mix(f64vec2, f64vec2, bvec2);"
+ "f64vec3 mix(f64vec3, f64vec3, bvec3);"
+ "f64vec4 mix(f64vec4, f64vec4, bvec4);"
+
+ "float64_t step(float64_t, float64_t);"
+ "f64vec2 step(f64vec2 , f64vec2);"
+ "f64vec3 step(f64vec3 , f64vec3);"
+ "f64vec4 step(f64vec4 , f64vec4);"
+ "f64vec2 step(float64_t, f64vec2);"
+ "f64vec3 step(float64_t, f64vec3);"
+ "f64vec4 step(float64_t, f64vec4);"
+
+ "float64_t smoothstep(float64_t, float64_t, float64_t);"
+ "f64vec2 smoothstep(f64vec2 , f64vec2 , f64vec2);"
+ "f64vec3 smoothstep(f64vec3 , f64vec3 , f64vec3);"
+ "f64vec4 smoothstep(f64vec4 , f64vec4 , f64vec4);"
+ "f64vec2 smoothstep(float64_t, float64_t, f64vec2);"
+ "f64vec3 smoothstep(float64_t, float64_t, f64vec3);"
+ "f64vec4 smoothstep(float64_t, float64_t, f64vec4);"
+
+ "float64_t length(float64_t);"
+ "float64_t length(f64vec2);"
+ "float64_t length(f64vec3);"
+ "float64_t length(f64vec4);"
+
+ "float64_t distance(float64_t, float64_t);"
+ "float64_t distance(f64vec2 , f64vec2);"
+ "float64_t distance(f64vec3 , f64vec3);"
+ "float64_t distance(f64vec4 , f64vec4);"
+
+ "float64_t dot(float64_t, float64_t);"
+ "float64_t dot(f64vec2 , f64vec2);"
+ "float64_t dot(f64vec3 , f64vec3);"
+ "float64_t dot(f64vec4 , f64vec4);"
+
+ "f64vec3 cross(f64vec3, f64vec3);"
+
+ "float64_t normalize(float64_t);"
+ "f64vec2 normalize(f64vec2);"
+ "f64vec3 normalize(f64vec3);"
+ "f64vec4 normalize(f64vec4);"
+
+ "float64_t faceforward(float64_t, float64_t, float64_t);"
+ "f64vec2 faceforward(f64vec2, f64vec2, f64vec2);"
+ "f64vec3 faceforward(f64vec3, f64vec3, f64vec3);"
+ "f64vec4 faceforward(f64vec4, f64vec4, f64vec4);"
+
+ "float64_t reflect(float64_t, float64_t);"
+ "f64vec2 reflect(f64vec2 , f64vec2 );"
+ "f64vec3 reflect(f64vec3 , f64vec3 );"
+ "f64vec4 reflect(f64vec4 , f64vec4 );"
+
+ "float64_t refract(float64_t, float64_t, float64_t);"
+ "f64vec2 refract(f64vec2 , f64vec2 , float64_t);"
+ "f64vec3 refract(f64vec3 , f64vec3 , float64_t);"
+ "f64vec4 refract(f64vec4 , f64vec4 , float64_t);"
+
+ "f64mat2 matrixCompMult(f64mat2, f64mat2);"
+ "f64mat3 matrixCompMult(f64mat3, f64mat3);"
+ "f64mat4 matrixCompMult(f64mat4, f64mat4);"
+ "f64mat2x3 matrixCompMult(f64mat2x3, f64mat2x3);"
+ "f64mat2x4 matrixCompMult(f64mat2x4, f64mat2x4);"
+ "f64mat3x2 matrixCompMult(f64mat3x2, f64mat3x2);"
+ "f64mat3x4 matrixCompMult(f64mat3x4, f64mat3x4);"
+ "f64mat4x2 matrixCompMult(f64mat4x2, f64mat4x2);"
+ "f64mat4x3 matrixCompMult(f64mat4x3, f64mat4x3);"
+
+ "f64mat2 outerProduct(f64vec2, f64vec2);"
+ "f64mat3 outerProduct(f64vec3, f64vec3);"
+ "f64mat4 outerProduct(f64vec4, f64vec4);"
+ "f64mat2x3 outerProduct(f64vec3, f64vec2);"
+ "f64mat3x2 outerProduct(f64vec2, f64vec3);"
+ "f64mat2x4 outerProduct(f64vec4, f64vec2);"
+ "f64mat4x2 outerProduct(f64vec2, f64vec4);"
+ "f64mat3x4 outerProduct(f64vec4, f64vec3);"
+ "f64mat4x3 outerProduct(f64vec3, f64vec4);"
+
+ "f64mat2 transpose(f64mat2);"
+ "f64mat3 transpose(f64mat3);"
+ "f64mat4 transpose(f64mat4);"
+ "f64mat2x3 transpose(f64mat3x2);"
+ "f64mat3x2 transpose(f64mat2x3);"
+ "f64mat2x4 transpose(f64mat4x2);"
+ "f64mat4x2 transpose(f64mat2x4);"
+ "f64mat3x4 transpose(f64mat4x3);"
+ "f64mat4x3 transpose(f64mat3x4);"
+
+ "float64_t determinant(f64mat2);"
+ "float64_t determinant(f64mat3);"
+ "float64_t determinant(f64mat4);"
+
+ "f64mat2 inverse(f64mat2);"
+ "f64mat3 inverse(f64mat3);"
+ "f64mat4 inverse(f64mat4);"
+
+ "\n");
+ }
+
+ if ((profile != EEsProfile && version >= 450) || (profile == EEsProfile && version >= 310)) {
commonBuiltins.append(
"int64_t abs(int64_t);"
@@ -998,25 +1195,25 @@ void TBuiltIns::initialize(int version, EProfile profile, const SpvVersion& spvV
"u64vec3 mix(u64vec3, u64vec3, bvec3);"
"u64vec4 mix(u64vec4, u64vec4, bvec4);"
- "int64_t doubleBitsToInt64(double);"
- "i64vec2 doubleBitsToInt64(dvec2);"
- "i64vec3 doubleBitsToInt64(dvec3);"
- "i64vec4 doubleBitsToInt64(dvec4);"
+ "int64_t doubleBitsToInt64(float64_t);"
+ "i64vec2 doubleBitsToInt64(f64vec2);"
+ "i64vec3 doubleBitsToInt64(f64vec3);"
+ "i64vec4 doubleBitsToInt64(f64vec4);"
- "uint64_t doubleBitsToUint64(double);"
- "u64vec2 doubleBitsToUint64(dvec2);"
- "u64vec3 doubleBitsToUint64(dvec3);"
- "u64vec4 doubleBitsToUint64(dvec4);"
+ "uint64_t doubleBitsToUint64(float64_t);"
+ "u64vec2 doubleBitsToUint64(f64vec2);"
+ "u64vec3 doubleBitsToUint64(f64vec3);"
+ "u64vec4 doubleBitsToUint64(f64vec4);"
- "double int64BitsToDouble(int64_t);"
- "dvec2 int64BitsToDouble(i64vec2);"
- "dvec3 int64BitsToDouble(i64vec3);"
- "dvec4 int64BitsToDouble(i64vec4);"
+ "float64_t int64BitsToDouble(int64_t);"
+ "f64vec2 int64BitsToDouble(i64vec2);"
+ "f64vec3 int64BitsToDouble(i64vec3);"
+ "f64vec4 int64BitsToDouble(i64vec4);"
- "double uint64BitsToDouble(uint64_t);"
- "dvec2 uint64BitsToDouble(u64vec2);"
- "dvec3 uint64BitsToDouble(u64vec3);"
- "dvec4 uint64BitsToDouble(u64vec4);"
+ "float64_t uint64BitsToDouble(uint64_t);"
+ "f64vec2 uint64BitsToDouble(u64vec2);"
+ "f64vec3 uint64BitsToDouble(u64vec3);"
+ "f64vec4 uint64BitsToDouble(u64vec4);"
"int64_t packInt2x32(ivec2);"
"uint64_t packUint2x32(uvec2);"
@@ -1065,6 +1262,16 @@ void TBuiltIns::initialize(int version, EProfile profile, const SpvVersion& spvV
"bvec3 notEqual(u64vec3, u64vec3);"
"bvec4 notEqual(u64vec4, u64vec4);"
+ "int64_t bitCount(int64_t);"
+ "i64vec2 bitCount(i64vec2);"
+ "i64vec3 bitCount(i64vec3);"
+ "i64vec4 bitCount(i64vec4);"
+
+ "int64_t bitCount(uint64_t);"
+ "i64vec2 bitCount(u64vec2);"
+ "i64vec3 bitCount(u64vec3);"
+ "i64vec4 bitCount(u64vec4);"
+
"int64_t findLSB(int64_t);"
"i64vec2 findLSB(i64vec2);"
"i64vec3 findLSB(i64vec3);"
@@ -1230,11 +1437,23 @@ void TBuiltIns::initialize(int version, EProfile profile, const SpvVersion& spvV
" int64_t atomicMin(coherent volatile inout int64_t, int64_t);"
"uint64_t atomicMin(coherent volatile inout uint64_t, uint64_t, int, int, int);"
" int64_t atomicMin(coherent volatile inout int64_t, int64_t, int, int, int);"
+ "float16_t atomicMin(coherent volatile inout float16_t, float16_t);"
+ "float16_t atomicMin(coherent volatile inout float16_t, float16_t, int, int, int);"
+ " float atomicMin(coherent volatile inout float, float);"
+ " float atomicMin(coherent volatile inout float, float, int, int, int);"
+ " double atomicMin(coherent volatile inout double, double);"
+ " double atomicMin(coherent volatile inout double, double, int, int, int);"
"uint64_t atomicMax(coherent volatile inout uint64_t, uint64_t);"
" int64_t atomicMax(coherent volatile inout int64_t, int64_t);"
"uint64_t atomicMax(coherent volatile inout uint64_t, uint64_t, int, int, int);"
" int64_t atomicMax(coherent volatile inout int64_t, int64_t, int, int, int);"
+ "float16_t atomicMax(coherent volatile inout float16_t, float16_t);"
+ "float16_t atomicMax(coherent volatile inout float16_t, float16_t, int, int, int);"
+ " float atomicMax(coherent volatile inout float, float);"
+ " float atomicMax(coherent volatile inout float, float, int, int, int);"
+ " double atomicMax(coherent volatile inout double, double);"
+ " double atomicMax(coherent volatile inout double, double, int, int, int);"
"uint64_t atomicAnd(coherent volatile inout uint64_t, uint64_t);"
" int64_t atomicAnd(coherent volatile inout int64_t, int64_t);"
@@ -1255,6 +1474,8 @@ void TBuiltIns::initialize(int version, EProfile profile, const SpvVersion& spvV
" int64_t atomicAdd(coherent volatile inout int64_t, int64_t);"
"uint64_t atomicAdd(coherent volatile inout uint64_t, uint64_t, int, int, int);"
" int64_t atomicAdd(coherent volatile inout int64_t, int64_t, int, int, int);"
+ "float16_t atomicAdd(coherent volatile inout float16_t, float16_t);"
+ "float16_t atomicAdd(coherent volatile inout float16_t, float16_t, int, int, int);"
" float atomicAdd(coherent volatile inout float, float);"
" float atomicAdd(coherent volatile inout float, float, int, int, int);"
" double atomicAdd(coherent volatile inout double, double);"
@@ -1264,6 +1485,8 @@ void TBuiltIns::initialize(int version, EProfile profile, const SpvVersion& spvV
" int64_t atomicExchange(coherent volatile inout int64_t, int64_t);"
"uint64_t atomicExchange(coherent volatile inout uint64_t, uint64_t, int, int, int);"
" int64_t atomicExchange(coherent volatile inout int64_t, int64_t, int, int, int);"
+ "float16_t atomicExchange(coherent volatile inout float16_t, float16_t);"
+ "float16_t atomicExchange(coherent volatile inout float16_t, float16_t, int, int, int);"
" float atomicExchange(coherent volatile inout float, float);"
" float atomicExchange(coherent volatile inout float, float, int, int, int);"
" double atomicExchange(coherent volatile inout double, double);"
@@ -1276,11 +1499,13 @@ void TBuiltIns::initialize(int version, EProfile profile, const SpvVersion& spvV
"uint64_t atomicLoad(coherent volatile in uint64_t, int, int, int);"
" int64_t atomicLoad(coherent volatile in int64_t, int, int, int);"
+ "float16_t atomicLoad(coherent volatile in float16_t, int, int, int);"
" float atomicLoad(coherent volatile in float, int, int, int);"
" double atomicLoad(coherent volatile in double, int, int, int);"
"void atomicStore(coherent volatile out uint64_t, uint64_t, int, int, int);"
"void atomicStore(coherent volatile out int64_t, int64_t, int, int, int);"
+ "void atomicStore(coherent volatile out float16_t, float16_t, int, int, int);"
"void atomicStore(coherent volatile out float, float, int, int, int);"
"void atomicStore(coherent volatile out double, double, int, int, int);"
"\n");
@@ -1335,6 +1560,15 @@ void TBuiltIns::initialize(int version, EProfile profile, const SpvVersion& spvV
"dvec4 fma(dvec4, dvec4, dvec4 );"
"\n");
}
+
+ if (profile == EEsProfile && version >= 310) { // ARB_gpu_shader_fp64
+ commonBuiltins.append(
+ "float64_t fma(float64_t, float64_t, float64_t);"
+ "f64vec2 fma(f64vec2, f64vec2, f64vec2 );"
+ "f64vec3 fma(f64vec3, f64vec3, f64vec3 );"
+ "f64vec4 fma(f64vec4, f64vec4, f64vec4 );"
+ "\n");
+ }
#endif
if ((profile == EEsProfile && version >= 310) ||
@@ -1371,6 +1605,21 @@ void TBuiltIns::initialize(int version, EProfile profile, const SpvVersion& spvV
"\n");
}
+
+ if (profile == EEsProfile && version >= 310) { // ARB_gpu_shader_fp64
+ commonBuiltins.append(
+ "float64_t frexp(float64_t, out int);"
+ "f64vec2 frexp( f64vec2, out ivec2);"
+ "f64vec3 frexp( f64vec3, out ivec3);"
+ "f64vec4 frexp( f64vec4, out ivec4);"
+
+ "float64_t ldexp(float64_t, int);"
+ "f64vec2 ldexp( f64vec2, ivec2);"
+ "f64vec3 ldexp( f64vec3, ivec3);"
+ "f64vec4 ldexp( f64vec4, ivec4);"
+
+ "\n");
+ }
#endif
#endif
@@ -1615,6 +1864,22 @@ void TBuiltIns::initialize(int version, EProfile profile, const SpvVersion& spvV
"\n");
}
+ if (profile != EEsProfile && version == 450) {
+ commonBuiltins.append(
+ "uint atomicCounterAddARB(atomic_uint, uint);"
+ "uint atomicCounterSubtractARB(atomic_uint, uint);"
+ "uint atomicCounterMinARB(atomic_uint, uint);"
+ "uint atomicCounterMaxARB(atomic_uint, uint);"
+ "uint atomicCounterAndARB(atomic_uint, uint);"
+ "uint atomicCounterOrARB(atomic_uint, uint);"
+ "uint atomicCounterXorARB(atomic_uint, uint);"
+ "uint atomicCounterExchangeARB(atomic_uint, uint);"
+ "uint atomicCounterCompSwapARB(atomic_uint, uint, uint);"
+
+ "\n");
+ }
+
+
if (profile != EEsProfile && version >= 460) {
commonBuiltins.append(
"uint atomicCounterAdd(atomic_uint, uint);"
@@ -1630,6 +1895,36 @@ void TBuiltIns::initialize(int version, EProfile profile, const SpvVersion& spvV
"\n");
}
}
+ else if (spvVersion.vulkanRelaxed) {
+ //
+ // Atomic counter functions act as aliases to normal atomic functions.
+ // replace definitions to take 'volatile coherent uint' instead of 'atomic_uint'
+ // and map to equivalent non-counter atomic op
+ //
+ if ((profile != EEsProfile && version >= 300) ||
+ (profile == EEsProfile && version >= 310)) {
+ commonBuiltins.append(
+ "uint atomicCounterIncrement(volatile coherent uint);"
+ "uint atomicCounterDecrement(volatile coherent uint);"
+ "uint atomicCounter(volatile coherent uint);"
+
+ "\n");
+ }
+ if (profile != EEsProfile && version >= 460) {
+ commonBuiltins.append(
+ "uint atomicCounterAdd(volatile coherent uint, uint);"
+ "uint atomicCounterSubtract(volatile coherent uint, uint);"
+ "uint atomicCounterMin(volatile coherent uint, uint);"
+ "uint atomicCounterMax(volatile coherent uint, uint);"
+ "uint atomicCounterAnd(volatile coherent uint, uint);"
+ "uint atomicCounterOr(volatile coherent uint, uint);"
+ "uint atomicCounterXor(volatile coherent uint, uint);"
+ "uint atomicCounterExchange(volatile coherent uint, uint);"
+ "uint atomicCounterCompSwap(volatile coherent uint, uint, uint);"
+
+ "\n");
+ }
+ }
#endif // !GLSLANG_ANGLE
// Bitfield
@@ -3116,7 +3411,7 @@ void TBuiltIns::initialize(int version, EProfile profile, const SpvVersion& spvV
#ifndef GLSLANG_ANGLE
// GL_AMD_gpu_shader_half_float/Explicit types
- if (profile != EEsProfile && version >= 450) {
+ if ((profile != EEsProfile && version >= 450) || (profile == EEsProfile && version >= 310)) {
commonBuiltins.append(
"float16_t radians(float16_t);"
"f16vec2 radians(f16vec2);"
@@ -3464,7 +3759,7 @@ void TBuiltIns::initialize(int version, EProfile profile, const SpvVersion& spvV
}
// Explicit types
- if (profile != EEsProfile && version >= 450) {
+ if ((profile != EEsProfile && version >= 450) || (profile == EEsProfile && version >= 310)) {
commonBuiltins.append(
"int8_t abs(int8_t);"
"i8vec2 abs(i8vec2);"
@@ -4124,7 +4419,7 @@ void TBuiltIns::initialize(int version, EProfile profile, const SpvVersion& spvV
}
#ifndef GLSLANG_WEB
if ((profile != EEsProfile && version >= 420) || esBarrier) {
- if (spvVersion.vulkan == 0) {
+ if (spvVersion.vulkan == 0 || spvVersion.vulkanRelaxed) {
commonBuiltins.append("void memoryBarrierAtomicCounter();");
}
commonBuiltins.append("void memoryBarrierImage();");
@@ -4382,7 +4677,7 @@ void TBuiltIns::initialize(int version, EProfile profile, const SpvVersion& spvV
"\n");
}
- // Builtins for GL_NV_ray_tracing/GL_EXT_ray_tracing/GL_EXT_ray_query
+ // Builtins for GL_NV_ray_tracing/GL_NV_ray_tracing_motion_blur/GL_EXT_ray_tracing/GL_EXT_ray_query
if (profile != EEsProfile && version >= 460) {
commonBuiltins.append("void rayQueryInitializeEXT(rayQueryEXT, accelerationStructureEXT, uint, uint, vec3, float, vec3, float);"
"void rayQueryTerminateEXT(rayQueryEXT);"
@@ -4411,6 +4706,7 @@ void TBuiltIns::initialize(int version, EProfile profile, const SpvVersion& spvV
stageBuiltins[EShLangRayGen].append(
"void traceNV(accelerationStructureNV,uint,uint,uint,uint,uint,vec3,float,vec3,float,int);"
+ "void traceRayMotionNV(accelerationStructureNV,uint,uint,uint,uint,uint,vec3,float,vec3,float,float,int);"
"void traceRayEXT(accelerationStructureEXT,uint,uint,uint,uint,uint,vec3,float,vec3,float,int);"
"void executeCallableNV(uint, int);"
"void executeCallableEXT(uint, int);"
@@ -4425,12 +4721,14 @@ void TBuiltIns::initialize(int version, EProfile profile, const SpvVersion& spvV
"\n");
stageBuiltins[EShLangClosestHit].append(
"void traceNV(accelerationStructureNV,uint,uint,uint,uint,uint,vec3,float,vec3,float,int);"
+ "void traceRayMotionNV(accelerationStructureNV,uint,uint,uint,uint,uint,vec3,float,vec3,float,float,int);"
"void traceRayEXT(accelerationStructureEXT,uint,uint,uint,uint,uint,vec3,float,vec3,float,int);"
"void executeCallableNV(uint, int);"
"void executeCallableEXT(uint, int);"
"\n");
stageBuiltins[EShLangMiss].append(
"void traceNV(accelerationStructureNV,uint,uint,uint,uint,uint,vec3,float,vec3,float,int);"
+ "void traceRayMotionNV(accelerationStructureNV,uint,uint,uint,uint,uint,vec3,float,vec3,float,float,int);"
"void traceRayEXT(accelerationStructureEXT,uint,uint,uint,uint,uint,vec3,float,vec3,float,int);"
"void executeCallableNV(uint, int);"
"void executeCallableEXT(uint, int);"
@@ -4848,6 +5146,13 @@ void TBuiltIns::initialize(int version, EProfile profile, const SpvVersion& spvV
"in int gl_VertexIndex;"
"in int gl_InstanceIndex;"
);
+
+ if (spvVersion.vulkan > 0 && version >= 140 && spvVersion.vulkanRelaxed)
+ stageBuiltins[EShLangVertex].append(
+ "in int gl_VertexID;" // declare with 'in' qualifier
+ "in int gl_InstanceID;"
+ );
+
if (version >= 440) {
stageBuiltins[EShLangVertex].append(
"in int gl_BaseVertexARB;"
@@ -4885,7 +5190,7 @@ void TBuiltIns::initialize(int version, EProfile profile, const SpvVersion& spvV
"mediump float gl_PointSize;" // needs qualifier fixed later
);
} else {
- if (spvVersion.vulkan == 0)
+ if (spvVersion.vulkan == 0 || spvVersion.vulkanRelaxed)
stageBuiltins[EShLangVertex].append(
"in highp int gl_VertexID;" // needs qualifier fixed later
"in highp int gl_InstanceID;" // needs qualifier fixed later
@@ -5632,6 +5937,7 @@ void TBuiltIns::initialize(int version, EProfile profile, const SpvVersion& spvV
"in mat3x4 gl_WorldToObject3x4EXT;"
"in uint gl_IncomingRayFlagsNV;"
"in uint gl_IncomingRayFlagsEXT;"
+ "in float gl_CurrentRayTimeNV;"
"\n";
const char *hitDecls =
"in uvec3 gl_LaunchIDNV;"
@@ -5667,6 +5973,7 @@ void TBuiltIns::initialize(int version, EProfile profile, const SpvVersion& spvV
"in mat3x4 gl_WorldToObject3x4EXT;"
"in uint gl_IncomingRayFlagsNV;"
"in uint gl_IncomingRayFlagsEXT;"
+ "in float gl_CurrentRayTimeNV;"
"\n";
const char *missDecls =
"in uvec3 gl_LaunchIDNV;"
@@ -5685,6 +5992,7 @@ void TBuiltIns::initialize(int version, EProfile profile, const SpvVersion& spvV
"in float gl_RayTmaxEXT;"
"in uint gl_IncomingRayFlagsNV;"
"in uint gl_IncomingRayFlagsEXT;"
+ "in float gl_CurrentRayTimeNV;"
"\n";
const char *callableDecls =
@@ -6211,6 +6519,24 @@ void TBuiltIns::addImageFunctions(TSampler sampler, const TString& typeName, int
commonBuiltins.append(imageParams);
commonBuiltins.append(", float");
commonBuiltins.append(", int, int, int);\n");
+
+ commonBuiltins.append("float imageAtomicMin(volatile coherent ");
+ commonBuiltins.append(imageParams);
+ commonBuiltins.append(", float);\n");
+
+ commonBuiltins.append("float imageAtomicMin(volatile coherent ");
+ commonBuiltins.append(imageParams);
+ commonBuiltins.append(", float");
+ commonBuiltins.append(", int, int, int);\n");
+
+ commonBuiltins.append("float imageAtomicMax(volatile coherent ");
+ commonBuiltins.append(imageParams);
+ commonBuiltins.append(", float);\n");
+
+ commonBuiltins.append("float imageAtomicMax(volatile coherent ");
+ commonBuiltins.append(imageParams);
+ commonBuiltins.append(", float");
+ commonBuiltins.append(", int, int, int);\n");
}
}
}
@@ -6538,7 +6864,7 @@ void TBuiltIns::addSamplingFunctions(TSampler sampler, const TString& typeName,
s.append(");\n");
// Add to the per-language set of built-ins
- if (bias || lodClamp != 0) {
+ if (!grad && (bias || lodClamp != 0)) {
stageBuiltins[EShLangFragment].append(s);
stageBuiltins[EShLangCompute].append(s);
} else
@@ -6979,6 +7305,9 @@ void TBuiltIns::initialize(const TBuiltInResource &resources, int version, EProf
snprintf(builtInConstant, maxSize, "const int gl_MaxFragmentUniformVectors = %d;", resources.maxFragmentUniformVectors);
s.append(builtInConstant);
+
+ snprintf(builtInConstant, maxSize, "const int gl_MaxVaryingVectors = %d;", resources.maxVaryingVectors);
+ s.append(builtInConstant);
}
snprintf(builtInConstant, maxSize, "const int gl_MaxVertexAttribs = %d;", resources.maxVertexAttribs);
@@ -7011,7 +7340,8 @@ void TBuiltIns::initialize(const TBuiltInResource &resources, int version, EProf
snprintf(builtInConstant, maxSize, "const int gl_MaxVertexUniformComponents = %d;", resources.maxVertexUniformComponents);
s.append(builtInConstant);
- if (version < 150 || ARBCompatibility) {
+ // Moved from just being deprecated into compatibility profile only as of 4.20
+ if (version < 420 || profile == ECompatibilityProfile) {
snprintf(builtInConstant, maxSize, "const int gl_MaxVaryingFloats = %d;", resources.maxVaryingFloats);
s.append(builtInConstant);
}
@@ -7436,6 +7766,12 @@ void TBuiltIns::identifyBuiltIns(int version, EProfile profile, const SpvVersion
SpecialQualifier("gl_InstanceID", EvqInstanceId, EbvInstanceId, symbolTable);
}
+ if (spvVersion.vulkan > 0 && spvVersion.vulkanRelaxed) {
+ // treat these built-ins as aliases of VertexIndex and InstanceIndex
+ BuiltInVariable("gl_VertexID", EbvVertexIndex, symbolTable);
+ BuiltInVariable("gl_InstanceID", EbvInstanceIndex, symbolTable);
+ }
+
if (profile != EEsProfile) {
if (version >= 440) {
symbolTable.setVariableExtensions("gl_BaseVertexARB", 1, &E_GL_ARB_shader_draw_parameters);
@@ -7947,6 +8283,19 @@ void TBuiltIns::identifyBuiltIns(int version, EProfile profile, const SpvVersion
symbolTable.setFunctionExtensions("atomicCounter" , 1, &E_GL_ARB_shader_atomic_counters);
}
+ // E_GL_ARB_shader_atomic_counter_ops
+ if (profile != EEsProfile && version == 450) {
+ symbolTable.setFunctionExtensions("atomicCounterAddARB" , 1, &E_GL_ARB_shader_atomic_counter_ops);
+ symbolTable.setFunctionExtensions("atomicCounterSubtractARB", 1, &E_GL_ARB_shader_atomic_counter_ops);
+ symbolTable.setFunctionExtensions("atomicCounterMinARB" , 1, &E_GL_ARB_shader_atomic_counter_ops);
+ symbolTable.setFunctionExtensions("atomicCounterMaxARB" , 1, &E_GL_ARB_shader_atomic_counter_ops);
+ symbolTable.setFunctionExtensions("atomicCounterAndARB" , 1, &E_GL_ARB_shader_atomic_counter_ops);
+ symbolTable.setFunctionExtensions("atomicCounterOrARB" , 1, &E_GL_ARB_shader_atomic_counter_ops);
+ symbolTable.setFunctionExtensions("atomicCounterXorARB" , 1, &E_GL_ARB_shader_atomic_counter_ops);
+ symbolTable.setFunctionExtensions("atomicCounterExchangeARB", 1, &E_GL_ARB_shader_atomic_counter_ops);
+ symbolTable.setFunctionExtensions("atomicCounterCompSwapARB", 1, &E_GL_ARB_shader_atomic_counter_ops);
+ }
+
// E_GL_ARB_derivative_control
if (profile != EEsProfile && version < 450) {
symbolTable.setFunctionExtensions("dFdxFine", 1, &E_GL_ARB_derivative_control);
@@ -8475,11 +8824,13 @@ void TBuiltIns::identifyBuiltIns(int version, EProfile profile, const SpvVersion
symbolTable.setVariableExtensions("gl_WorldToObject3x4EXT", 1, &E_GL_EXT_ray_tracing);
symbolTable.setVariableExtensions("gl_IncomingRayFlagsNV", 1, &E_GL_NV_ray_tracing);
symbolTable.setVariableExtensions("gl_IncomingRayFlagsEXT", 1, &E_GL_EXT_ray_tracing);
+ symbolTable.setVariableExtensions("gl_CurrentRayTimeNV", 1, &E_GL_NV_ray_tracing_motion_blur);
symbolTable.setVariableExtensions("gl_DeviceIndex", 1, &E_GL_EXT_device_group);
symbolTable.setFunctionExtensions("traceNV", 1, &E_GL_NV_ray_tracing);
+ symbolTable.setFunctionExtensions("traceRayMotionNV", 1, &E_GL_NV_ray_tracing_motion_blur);
symbolTable.setFunctionExtensions("traceRayEXT", 1, &E_GL_EXT_ray_tracing);
symbolTable.setFunctionExtensions("reportIntersectionNV", 1, &E_GL_NV_ray_tracing);
symbolTable.setFunctionExtensions("reportIntersectionEXT", 1, &E_GL_EXT_ray_tracing);
@@ -8523,6 +8874,7 @@ void TBuiltIns::identifyBuiltIns(int version, EProfile profile, const SpvVersion
BuiltInVariable("gl_IncomingRayFlagsNV", EbvIncomingRayFlags, symbolTable);
BuiltInVariable("gl_IncomingRayFlagsEXT", EbvIncomingRayFlags, symbolTable);
BuiltInVariable("gl_DeviceIndex", EbvDeviceIndex, symbolTable);
+ BuiltInVariable("gl_CurrentRayTimeNV", EbvCurrentRayTimeNV, symbolTable);
// GL_ARB_shader_ballot
symbolTable.setVariableExtensions("gl_SubGroupSizeARB", 1, &E_GL_ARB_shader_ballot);
@@ -8912,6 +9264,14 @@ void TBuiltIns::identifyBuiltIns(int version, EProfile profile, const SpvVersion
symbolTable.relateToOperator("memoryBarrierAtomicCounter", EOpMemoryBarrierAtomicCounter);
symbolTable.relateToOperator("memoryBarrierImage", EOpMemoryBarrierImage);
+ if (spvVersion.vulkanRelaxed) {
+ //
+ // functions signature have been replaced to take uint operations on buffer variables
+ // remap atomic counter functions to atomic operations
+ //
+ symbolTable.relateToOperator("memoryBarrierAtomicCounter", EOpMemoryBarrierBuffer);
+ }
+
symbolTable.relateToOperator("atomicLoad", EOpAtomicLoad);
symbolTable.relateToOperator("atomicStore", EOpAtomicStore);
@@ -8919,12 +9279,38 @@ void TBuiltIns::identifyBuiltIns(int version, EProfile profile, const SpvVersion
symbolTable.relateToOperator("atomicCounterDecrement", EOpAtomicCounterDecrement);
symbolTable.relateToOperator("atomicCounter", EOpAtomicCounter);
+ if (spvVersion.vulkanRelaxed) {
+ //
+ // functions signature have been replaced to take uint operations
+ // remap atomic counter functions to atomic operations
+ //
+ // these atomic counter functions do not match signatures of glsl
+ // atomic functions, so they will be remapped to semantically
+ // equivalent functions in the parser
+ //
+ symbolTable.relateToOperator("atomicCounterIncrement", EOpNull);
+ symbolTable.relateToOperator("atomicCounterDecrement", EOpNull);
+ symbolTable.relateToOperator("atomicCounter", EOpNull);
+ }
+
symbolTable.relateToOperator("clockARB", EOpReadClockSubgroupKHR);
symbolTable.relateToOperator("clock2x32ARB", EOpReadClockSubgroupKHR);
symbolTable.relateToOperator("clockRealtimeEXT", EOpReadClockDeviceKHR);
symbolTable.relateToOperator("clockRealtime2x32EXT", EOpReadClockDeviceKHR);
+ if (profile != EEsProfile && version == 450) {
+ symbolTable.relateToOperator("atomicCounterAddARB", EOpAtomicCounterAdd);
+ symbolTable.relateToOperator("atomicCounterSubtractARB", EOpAtomicCounterSubtract);
+ symbolTable.relateToOperator("atomicCounterMinARB", EOpAtomicCounterMin);
+ symbolTable.relateToOperator("atomicCounterMaxARB", EOpAtomicCounterMax);
+ symbolTable.relateToOperator("atomicCounterAndARB", EOpAtomicCounterAnd);
+ symbolTable.relateToOperator("atomicCounterOrARB", EOpAtomicCounterOr);
+ symbolTable.relateToOperator("atomicCounterXorARB", EOpAtomicCounterXor);
+ symbolTable.relateToOperator("atomicCounterExchangeARB", EOpAtomicCounterExchange);
+ symbolTable.relateToOperator("atomicCounterCompSwapARB", EOpAtomicCounterCompSwap);
+ }
+
if (profile != EEsProfile && version >= 460) {
symbolTable.relateToOperator("atomicCounterAdd", EOpAtomicCounterAdd);
symbolTable.relateToOperator("atomicCounterSubtract", EOpAtomicCounterSubtract);
@@ -8937,6 +9323,23 @@ void TBuiltIns::identifyBuiltIns(int version, EProfile profile, const SpvVersion
symbolTable.relateToOperator("atomicCounterCompSwap", EOpAtomicCounterCompSwap);
}
+ if (spvVersion.vulkanRelaxed) {
+ //
+ // functions signature have been replaced to take 'uint' instead of 'atomic_uint'
+ // remap atomic counter functions to non-counter atomic ops so
+ // functions act as aliases to non-counter atomic ops
+ //
+ symbolTable.relateToOperator("atomicCounterAdd", EOpAtomicAdd);
+ symbolTable.relateToOperator("atomicCounterSubtract", EOpAtomicSubtract);
+ symbolTable.relateToOperator("atomicCounterMin", EOpAtomicMin);
+ symbolTable.relateToOperator("atomicCounterMax", EOpAtomicMax);
+ symbolTable.relateToOperator("atomicCounterAnd", EOpAtomicAnd);
+ symbolTable.relateToOperator("atomicCounterOr", EOpAtomicOr);
+ symbolTable.relateToOperator("atomicCounterXor", EOpAtomicXor);
+ symbolTable.relateToOperator("atomicCounterExchange", EOpAtomicExchange);
+ symbolTable.relateToOperator("atomicCounterCompSwap", EOpAtomicCompSwap);
+ }
+
symbolTable.relateToOperator("fma", EOpFma);
symbolTable.relateToOperator("frexp", EOpFrexp);
symbolTable.relateToOperator("ldexp", EOpLdexp);
@@ -9315,6 +9718,7 @@ void TBuiltIns::identifyBuiltIns(int version, EProfile profile, const SpvVersion
case EShLangMiss:
if (profile != EEsProfile && version >= 460) {
symbolTable.relateToOperator("traceNV", EOpTraceNV);
+ symbolTable.relateToOperator("traceRayMotionNV", EOpTraceRayMotionNV);
symbolTable.relateToOperator("traceRayEXT", EOpTraceKHR);
symbolTable.relateToOperator("executeCallableNV", EOpExecuteCallableNV);
symbolTable.relateToOperator("executeCallableEXT", EOpExecuteCallableKHR);
diff --git a/thirdparty/glslang/glslang/MachineIndependent/Intermediate.cpp b/thirdparty/glslang/glslang/MachineIndependent/Intermediate.cpp
index f6172a2bf7..0278445969 100644
--- a/thirdparty/glslang/glslang/MachineIndependent/Intermediate.cpp
+++ b/thirdparty/glslang/glslang/MachineIndependent/Intermediate.cpp
@@ -65,7 +65,7 @@ namespace glslang {
// Returns the added node.
//
-TIntermSymbol* TIntermediate::addSymbol(int id, const TString& name, const TType& type, const TConstUnionArray& constArray,
+TIntermSymbol* TIntermediate::addSymbol(long long id, const TString& name, const TType& type, const TConstUnionArray& constArray,
TIntermTyped* constSubtree, const TSourceLoc& loc)
{
TIntermSymbol* node = new TIntermSymbol(id, name, type);
@@ -1739,7 +1739,7 @@ bool TIntermediate::canImplicitlyPromote(TBasicType from, TBasicType to, TOperat
case EbtUint:
switch (from) {
case EbtInt:
- return version >= 400 || getSource() == EShSourceHlsl;
+ return version >= 400 || getSource() == EShSourceHlsl || IsRequestedExtension(E_GL_ARB_gpu_shader5);
case EbtBool:
return getSource() == EShSourceHlsl;
case EbtInt16:
@@ -2676,7 +2676,11 @@ TIntermTyped* TIntermediate::addSwizzle(TSwizzleSelectors<selectorType>& selecto
// 'swizzleOkay' says whether or not it is okay to consider a swizzle
// a valid part of the dereference chain.
//
-const TIntermTyped* TIntermediate::findLValueBase(const TIntermTyped* node, bool swizzleOkay)
+// 'BufferReferenceOk' says if type is buffer_reference, the routine stop to find the most left node.
+//
+//
+
+const TIntermTyped* TIntermediate::findLValueBase(const TIntermTyped* node, bool swizzleOkay , bool bufferReferenceOk)
{
do {
const TIntermBinary* binary = node->getAsBinaryNode();
@@ -2694,6 +2698,8 @@ const TIntermTyped* TIntermediate::findLValueBase(const TIntermTyped* node, bool
return nullptr;
}
node = node->getAsBinaryNode()->getLeft();
+ if (bufferReferenceOk && node->isReference())
+ return node;
} while (true);
}
@@ -2870,7 +2876,7 @@ void TIntermediate::addToCallGraph(TInfoSink& /*infoSink*/, const TString& calle
return;
}
- callGraph.push_front(TCall(caller, callee));
+ callGraph.emplace_front(caller, callee);
}
//
@@ -3776,11 +3782,16 @@ void TIntermBinary::updatePrecision()
{
if (getBasicType() == EbtInt || getBasicType() == EbtUint ||
getBasicType() == EbtFloat || getBasicType() == EbtFloat16) {
- getQualifier().precision = std::max(right->getQualifier().precision, left->getQualifier().precision);
- if (getQualifier().precision != EpqNone) {
- left->propagatePrecision(getQualifier().precision);
- right->propagatePrecision(getQualifier().precision);
- }
+ if (op == EOpRightShift || op == EOpLeftShift) {
+ // For shifts get precision from left side only and thus no need to propagate
+ getQualifier().precision = left->getQualifier().precision;
+ } else {
+ getQualifier().precision = std::max(right->getQualifier().precision, left->getQualifier().precision);
+ if (getQualifier().precision != EpqNone) {
+ left->propagatePrecision(getQualifier().precision);
+ right->propagatePrecision(getQualifier().precision);
+ }
+ }
}
}
diff --git a/thirdparty/glslang/glslang/MachineIndependent/ParseContextBase.cpp b/thirdparty/glslang/glslang/MachineIndependent/ParseContextBase.cpp
index 3efa27aca3..02cca409e1 100644
--- a/thirdparty/glslang/glslang/MachineIndependent/ParseContextBase.cpp
+++ b/thirdparty/glslang/glslang/MachineIndependent/ParseContextBase.cpp
@@ -601,7 +601,6 @@ void TParseContextBase::parseSwizzleSelector(const TSourceLoc& loc, const TStrin
selector.push_back(0);
}
-#ifdef ENABLE_HLSL
//
// Make the passed-in variable information become a member of the
// global uniform block. If this doesn't exist yet, make it.
@@ -646,7 +645,67 @@ void TParseContextBase::growGlobalUniformBlock(const TSourceLoc& loc, TType& mem
++firstNewMember;
}
-#endif
+
+void TParseContextBase::growAtomicCounterBlock(int binding, const TSourceLoc& loc, TType& memberType, const TString& memberName, TTypeList* typeList) {
+ // Make the atomic counter block, if not yet made.
+ const auto &at = atomicCounterBuffers.find(binding);
+ if (at == atomicCounterBuffers.end()) {
+ atomicCounterBuffers.insert({binding, (TVariable*)nullptr });
+ atomicCounterBlockFirstNewMember.insert({binding, 0});
+ }
+
+ TVariable*& atomicCounterBuffer = atomicCounterBuffers[binding];
+ int& bufferNewMember = atomicCounterBlockFirstNewMember[binding];
+
+ if (atomicCounterBuffer == nullptr) {
+ TQualifier blockQualifier;
+ blockQualifier.clear();
+ blockQualifier.storage = EvqBuffer;
+
+ char charBuffer[512];
+ if (binding != TQualifier::layoutBindingEnd) {
+ snprintf(charBuffer, 512, "%s_%d", getAtomicCounterBlockName(), binding);
+ } else {
+ snprintf(charBuffer, 512, "%s_0", getAtomicCounterBlockName());
+ }
+
+ TType blockType(new TTypeList, *NewPoolTString(charBuffer), blockQualifier);
+ setUniformBlockDefaults(blockType);
+ blockType.getQualifier().layoutPacking = ElpStd430;
+ atomicCounterBuffer = new TVariable(NewPoolTString(""), blockType, true);
+ // If we arn't auto mapping bindings then set the block to use the same
+ // binding as what the atomic was set to use
+ if (!intermediate.getAutoMapBindings()) {
+ atomicCounterBuffer->getWritableType().getQualifier().layoutBinding = binding;
+ }
+ bufferNewMember = 0;
+
+ atomicCounterBuffer->getWritableType().getQualifier().layoutSet = atomicCounterBlockSet;
+ }
+
+ // Add the requested member as a member to the global block.
+ TType* type = new TType;
+ type->shallowCopy(memberType);
+ type->setFieldName(memberName);
+ if (typeList)
+ type->setStruct(typeList);
+ TTypeLoc typeLoc = {type, loc};
+ atomicCounterBuffer->getType().getWritableStruct()->push_back(typeLoc);
+
+ // Insert into the symbol table.
+ if (bufferNewMember == 0) {
+ // This is the first request; we need a normal symbol table insert
+ if (symbolTable.insert(*atomicCounterBuffer))
+ trackLinkage(*atomicCounterBuffer);
+ else
+ error(loc, "failed to insert the global constant buffer", "buffer", "");
+ } else {
+ // This is a follow-on request; we need to amend the first insert
+ symbolTable.amend(*atomicCounterBuffer, bufferNewMember);
+ }
+
+ ++bufferNewMember;
+}
void TParseContextBase::finish()
{
diff --git a/thirdparty/glslang/glslang/MachineIndependent/ParseHelper.cpp b/thirdparty/glslang/glslang/MachineIndependent/ParseHelper.cpp
index 9c42a204f7..b957bb87ca 100644
--- a/thirdparty/glslang/glslang/MachineIndependent/ParseHelper.cpp
+++ b/thirdparty/glslang/glslang/MachineIndependent/ParseHelper.cpp
@@ -87,6 +87,10 @@ TParseContext::TParseContext(TSymbolTable& symbolTable, TIntermediate& interm, b
globalInputDefaults.clear();
globalOutputDefaults.clear();
+ globalSharedDefaults.clear();
+ globalSharedDefaults.layoutMatrix = ElmColumnMajor;
+ globalSharedDefaults.layoutPacking = ElpStd430;
+
#ifndef GLSLANG_WEB
// "Shaders in the transform
// feedback capturing mode have an initial global default of
@@ -221,6 +225,118 @@ void TParseContext::parserError(const char* s)
error(getCurrentLoc(), "compilation terminated", "", "");
}
+void TParseContext::growGlobalUniformBlock(const TSourceLoc& loc, TType& memberType, const TString& memberName, TTypeList* typeList)
+{
+ bool createBlock = globalUniformBlock == nullptr;
+
+ if (createBlock) {
+ globalUniformBinding = intermediate.getGlobalUniformBinding();
+ globalUniformSet = intermediate.getGlobalUniformSet();
+ }
+
+ // use base class function to create/expand block
+ TParseContextBase::growGlobalUniformBlock(loc, memberType, memberName, typeList);
+
+ if (spvVersion.vulkan > 0 && spvVersion.vulkanRelaxed) {
+ // check for a block storage override
+ TBlockStorageClass storageOverride = intermediate.getBlockStorageOverride(getGlobalUniformBlockName());
+ TQualifier& qualifier = globalUniformBlock->getWritableType().getQualifier();
+ qualifier.defaultBlock = true;
+
+ if (storageOverride != EbsNone) {
+ if (createBlock) {
+ // Remap block storage
+ qualifier.setBlockStorage(storageOverride);
+
+ // check that the change didn't create errors
+ blockQualifierCheck(loc, qualifier, false);
+ }
+
+ // remap meber storage as well
+ memberType.getQualifier().setBlockStorage(storageOverride);
+ }
+ }
+}
+
+void TParseContext::growAtomicCounterBlock(int binding, const TSourceLoc& loc, TType& memberType, const TString& memberName, TTypeList* typeList)
+{
+ bool createBlock = atomicCounterBuffers.find(binding) == atomicCounterBuffers.end();
+
+ if (createBlock) {
+ atomicCounterBlockSet = intermediate.getAtomicCounterBlockSet();
+ }
+
+ // use base class function to create/expand block
+ TParseContextBase::growAtomicCounterBlock(binding, loc, memberType, memberName, typeList);
+ TQualifier& qualifier = atomicCounterBuffers[binding]->getWritableType().getQualifier();
+ qualifier.defaultBlock = true;
+
+ if (spvVersion.vulkan > 0 && spvVersion.vulkanRelaxed) {
+ // check for a Block storage override
+ TBlockStorageClass storageOverride = intermediate.getBlockStorageOverride(getAtomicCounterBlockName());
+
+ if (storageOverride != EbsNone) {
+ if (createBlock) {
+ // Remap block storage
+
+ qualifier.setBlockStorage(storageOverride);
+
+ // check that the change didn't create errors
+ blockQualifierCheck(loc, qualifier, false);
+ }
+
+ // remap meber storage as well
+ memberType.getQualifier().setBlockStorage(storageOverride);
+ }
+ }
+}
+
+const char* TParseContext::getGlobalUniformBlockName() const
+{
+ const char* name = intermediate.getGlobalUniformBlockName();
+ if (std::string(name) == "")
+ return "gl_DefaultUniformBlock";
+ else
+ return name;
+}
+void TParseContext::finalizeGlobalUniformBlockLayout(TVariable&)
+{
+}
+void TParseContext::setUniformBlockDefaults(TType& block) const
+{
+ block.getQualifier().layoutPacking = ElpStd140;
+ block.getQualifier().layoutMatrix = ElmColumnMajor;
+}
+
+
+const char* TParseContext::getAtomicCounterBlockName() const
+{
+ const char* name = intermediate.getAtomicCounterBlockName();
+ if (std::string(name) == "")
+ return "gl_AtomicCounterBlock";
+ else
+ return name;
+}
+void TParseContext::finalizeAtomicCounterBlockLayout(TVariable&)
+{
+}
+
+void TParseContext::setAtomicCounterBlockDefaults(TType& block) const
+{
+ block.getQualifier().layoutPacking = ElpStd430;
+ block.getQualifier().layoutMatrix = ElmRowMajor;
+}
+
+void TParseContext::setInvariant(const TSourceLoc& loc, const char* builtin) {
+ TSymbol* symbol = symbolTable.find(builtin);
+ if (symbol && symbol->getType().getQualifier().isPipeOutput()) {
+ if (intermediate.inIoAccessed(builtin))
+ warn(loc, "changing qualification after use", "invariant", builtin);
+ TSymbol* csymbol = symbolTable.copyUp(symbol);
+ csymbol->getWritableType().getQualifier().invariant = true;
+ }
+}
+
void TParseContext::handlePragma(const TSourceLoc& loc, const TVector<TString>& tokens)
{
#ifndef GLSLANG_WEB
@@ -298,8 +414,33 @@ void TParseContext::handlePragma(const TSourceLoc& loc, const TVector<TString>&
intermediate.setUseVariablePointers();
} else if (tokens[0].compare("once") == 0) {
warn(loc, "not implemented", "#pragma once", "");
- } else if (tokens[0].compare("glslang_binary_double_output") == 0)
+ } else if (tokens[0].compare("glslang_binary_double_output") == 0) {
intermediate.setBinaryDoubleOutput();
+ } else if (spvVersion.spv > 0 && tokens[0].compare("STDGL") == 0 &&
+ tokens[1].compare("invariant") == 0 && tokens[3].compare("all") == 0) {
+ intermediate.setInvariantAll();
+ // Set all builtin out variables invariant if declared
+ setInvariant(loc, "gl_Position");
+ setInvariant(loc, "gl_PointSize");
+ setInvariant(loc, "gl_ClipDistance");
+ setInvariant(loc, "gl_CullDistance");
+ setInvariant(loc, "gl_TessLevelOuter");
+ setInvariant(loc, "gl_TessLevelInner");
+ setInvariant(loc, "gl_PrimitiveID");
+ setInvariant(loc, "gl_Layer");
+ setInvariant(loc, "gl_ViewportIndex");
+ setInvariant(loc, "gl_FragDepth");
+ setInvariant(loc, "gl_SampleMask");
+ setInvariant(loc, "gl_ClipVertex");
+ setInvariant(loc, "gl_FrontColor");
+ setInvariant(loc, "gl_BackColor");
+ setInvariant(loc, "gl_FrontSecondaryColor");
+ setInvariant(loc, "gl_BackSecondaryColor");
+ setInvariant(loc, "gl_TexCoord");
+ setInvariant(loc, "gl_FogFragCoord");
+ setInvariant(loc, "gl_FragColor");
+ setInvariant(loc, "gl_FragData");
+ }
#endif
}
@@ -986,12 +1127,31 @@ TFunction* TParseContext::handleFunctionDeclarator(const TSourceLoc& loc, TFunct
TSymbol* symbol = symbolTable.find(function.getMangledName(), &builtIn);
if (symbol && symbol->getAsFunction() && builtIn)
requireProfile(loc, ~EEsProfile, "redefinition of built-in function");
+#ifndef GLSLANG_WEB
+ // Check the validity of using spirv_literal qualifier
+ for (int i = 0; i < function.getParamCount(); ++i) {
+ if (function[i].type->getQualifier().isSpirvLiteral() && function.getBuiltInOp() != EOpSpirvInst)
+ error(loc, "'spirv_literal' can only be used on functions defined with 'spirv_instruction' for argument",
+ function.getName().c_str(), "%d", i + 1);
+ }
+
+ // For function declaration with SPIR-V instruction qualifier, always ignore the built-in function and
+ // respect this redeclared one.
+ if (symbol && builtIn && function.getBuiltInOp() == EOpSpirvInst)
+ symbol = nullptr;
+#endif
const TFunction* prevDec = symbol ? symbol->getAsFunction() : 0;
if (prevDec) {
if (prevDec->isPrototyped() && prototype)
profileRequires(loc, EEsProfile, 300, nullptr, "multiple prototypes for same function");
if (prevDec->getType() != function.getType())
error(loc, "overloaded functions must have the same return type", function.getName().c_str(), "");
+#ifndef GLSLANG_WEB
+ if (prevDec->getSpirvInstruction() != function.getSpirvInstruction()) {
+ error(loc, "overloaded functions must have the same qualifiers", function.getName().c_str(),
+ "spirv_instruction");
+ }
+#endif
for (int i = 0; i < prevDec->getParamCount(); ++i) {
if ((*prevDec)[i].type->getQualifier().storage != function[i].type->getQualifier().storage)
error(loc, "overloaded functions must have the same parameter storage qualifiers for argument", function[i].type->getStorageQualifierString(), "%d", i+1);
@@ -1131,6 +1291,14 @@ TIntermTyped* TParseContext::handleFunctionCall(const TSourceLoc& loc, TFunction
{
TIntermTyped* result = nullptr;
+ if (spvVersion.vulkan != 0 && spvVersion.vulkanRelaxed) {
+ // allow calls that are invalid in Vulkan Semantics to be invisibily
+ // remapped to equivalent valid functions
+ result = vkRelaxedRemapFunctionCall(loc, function, arguments);
+ if (result)
+ return result;
+ }
+
if (function->getBuiltInOp() == EOpArrayLength)
result = handleLengthMethod(loc, function, arguments);
else if (function->getBuiltInOp() != EOpNull) {
@@ -1185,6 +1353,15 @@ TIntermTyped* TParseContext::handleFunctionCall(const TSourceLoc& loc, TFunction
if (lValueErrorCheck(arguments->getLoc(), "assign", arg->getAsTyped()))
error(arguments->getLoc(), "Non-L-value cannot be passed for 'out' or 'inout' parameters.", "out", "");
}
+#ifndef GLSLANG_WEB
+ if (formalQualifier.isSpirvLiteral()) {
+ if (!arg->getAsTyped()->getQualifier().isFrontEndConstant()) {
+ error(arguments->getLoc(),
+ "Non front-end constant expressions cannot be passed for 'spirv_literal' parameters.",
+ "spirv_literal", "");
+ }
+ }
+#endif
const TType& argType = arg->getAsTyped()->getType();
const TQualifier& argQualifier = argType.getQualifier();
if (argQualifier.isMemory() && (argType.containsOpaque() || argType.isReference())) {
@@ -1239,6 +1416,11 @@ TIntermTyped* TParseContext::handleFunctionCall(const TSourceLoc& loc, TFunction
if (builtIn && fnCandidate->getBuiltInOp() != EOpNull) {
// A function call mapped to a built-in operation.
result = handleBuiltInFunctionCall(loc, arguments, *fnCandidate);
+#ifndef GLSLANG_WEB
+ } else if (fnCandidate->getBuiltInOp() == EOpSpirvInst) {
+ // When SPIR-V instruction qualifier is specified, the function call is still mapped to a built-in operation.
+ result = handleBuiltInFunctionCall(loc, arguments, *fnCandidate);
+#endif
} else {
// This is a function call not mapped to built-in operator.
// It could still be a built-in function, but only if PureOperatorBuiltins == false.
@@ -1316,6 +1498,35 @@ TIntermTyped* TParseContext::handleBuiltInFunctionCall(TSourceLoc loc, TIntermNo
} else if (result->getAsOperator())
builtInOpCheck(loc, function, *result->getAsOperator());
+#ifndef GLSLANG_WEB
+ // Special handling for function call with SPIR-V instruction qualifier specified
+ if (function.getBuiltInOp() == EOpSpirvInst) {
+ if (auto agg = result->getAsAggregate()) {
+ // Propogate spirv_by_reference/spirv_literal from parameters to arguments
+ auto& sequence = agg->getSequence();
+ for (unsigned i = 0; i < sequence.size(); ++i) {
+ if (function[i].type->getQualifier().isSpirvByReference())
+ sequence[i]->getAsTyped()->getQualifier().setSpirvByReference();
+ if (function[i].type->getQualifier().isSpirvLiteral())
+ sequence[i]->getAsTyped()->getQualifier().setSpirvLiteral();
+ }
+
+ // Attach the function call to SPIR-V intruction
+ agg->setSpirvInstruction(function.getSpirvInstruction());
+ } else if (auto unaryNode = result->getAsUnaryNode()) {
+ // Propogate spirv_by_reference/spirv_literal from parameters to arguments
+ if (function[0].type->getQualifier().isSpirvByReference())
+ unaryNode->getOperand()->getQualifier().setSpirvByReference();
+ if (function[0].type->getQualifier().isSpirvLiteral())
+ unaryNode->getOperand()->getQualifier().setSpirvLiteral();
+
+ // Attach the function call to SPIR-V intruction
+ unaryNode->setSpirvInstruction(function.getSpirvInstruction());
+ } else
+ assert(0);
+ }
+#endif
+
return result;
}
@@ -1723,6 +1934,7 @@ void TParseContext::memorySemanticsCheck(const TSourceLoc& loc, const TFunction&
// Grab the semantics and storage class semantics from the operands, based on opcode
switch (callNode.getOp()) {
case EOpAtomicAdd:
+ case EOpAtomicSubtract:
case EOpAtomicMin:
case EOpAtomicMax:
case EOpAtomicAnd:
@@ -1981,7 +2193,13 @@ void TParseContext::builtInOpCheck(const TSourceLoc& loc, const TFunction& fnCan
profileRequires(loc, ~EEsProfile, 450, nullptr, feature);
requireExtensions(loc, 1, &E_GL_AMD_texture_gather_bias_lod, feature);
}
-
+ // As per GL_ARB_sparse_texture2 extension "Offsets" parameter must be constant integral expression
+ // for sparseTextureGatherOffsetsARB just as textureGatherOffsets
+ if (callNode.getOp() == EOpSparseTextureGatherOffsets) {
+ int offsetsArg = arg0->getType().getSampler().shadow ? 3 : 2;
+ if (!(*argp)[offsetsArg]->getAsConstantUnion())
+ error(loc, "argument must be compile-time constant", "offsets", "");
+ }
break;
}
@@ -2070,6 +2288,16 @@ void TParseContext::builtInOpCheck(const TSourceLoc& loc, const TFunction& fnCan
"[gl_MinProgramTexelOffset, gl_MaxProgramTexelOffset]");
}
}
+
+ if (callNode.getOp() == EOpTextureOffset) {
+ TSampler s = arg0->getType().getSampler();
+ if (s.is2D() && s.isArrayed() && s.isShadow()) {
+ if (isEsProfile())
+ error(loc, "TextureOffset does not support sampler2DArrayShadow : ", "sampler", "ES Profile");
+ else if (version <= 420)
+ error(loc, "TextureOffset does not support sampler2DArrayShadow : ", "sampler", "version <= 420");
+ }
+ }
}
break;
@@ -2080,6 +2308,10 @@ void TParseContext::builtInOpCheck(const TSourceLoc& loc, const TFunction& fnCan
if (!(*argp)[10]->getAsConstantUnion())
error(loc, "argument must be compile-time constant", "payload number", "a");
break;
+ case EOpTraceRayMotionNV:
+ if (!(*argp)[11]->getAsConstantUnion())
+ error(loc, "argument must be compile-time constant", "payload number", "a");
+ break;
case EOpTraceKHR:
if (!(*argp)[10]->getAsConstantUnion())
error(loc, "argument must be compile-time constant", "payload number", "a");
@@ -2148,18 +2380,23 @@ void TParseContext::builtInOpCheck(const TSourceLoc& loc, const TFunction& fnCan
error(loc, "only supported on image with format r64i", fnCandidate.getName().c_str(), "");
else if (callNode.getType().getBasicType() == EbtUint64 && imageType.getQualifier().getFormat() != ElfR64ui)
error(loc, "only supported on image with format r64ui", fnCandidate.getName().c_str(), "");
- } else {
- bool isImageAtomicOnFloatAllowed = ((fnCandidate.getName().compare(0, 14, "imageAtomicAdd") == 0) ||
- (fnCandidate.getName().compare(0, 15, "imageAtomicLoad") == 0) ||
- (fnCandidate.getName().compare(0, 16, "imageAtomicStore") == 0) ||
- (fnCandidate.getName().compare(0, 19, "imageAtomicExchange") == 0));
- if (imageType.getSampler().type == EbtFloat && isImageAtomicOnFloatAllowed &&
- (fnCandidate.getName().compare(0, 19, "imageAtomicExchange") != 0)) // imageAtomicExchange doesn't require GL_EXT_shader_atomic_float
+ } else if (imageType.getSampler().type == EbtFloat) {
+ if (fnCandidate.getName().compare(0, 19, "imageAtomicExchange") == 0) {
+ // imageAtomicExchange doesn't require an extension
+ } else if ((fnCandidate.getName().compare(0, 14, "imageAtomicAdd") == 0) ||
+ (fnCandidate.getName().compare(0, 15, "imageAtomicLoad") == 0) ||
+ (fnCandidate.getName().compare(0, 16, "imageAtomicStore") == 0)) {
requireExtensions(loc, 1, &E_GL_EXT_shader_atomic_float, fnCandidate.getName().c_str());
- if (!isImageAtomicOnFloatAllowed)
+ } else if ((fnCandidate.getName().compare(0, 14, "imageAtomicMin") == 0) ||
+ (fnCandidate.getName().compare(0, 14, "imageAtomicMax") == 0)) {
+ requireExtensions(loc, 1, &E_GL_EXT_shader_atomic_float2, fnCandidate.getName().c_str());
+ } else {
error(loc, "only supported on integer images", fnCandidate.getName().c_str(), "");
- else if (imageType.getQualifier().getFormat() != ElfR32f && isEsProfile())
+ }
+ if (imageType.getQualifier().getFormat() != ElfR32f && isEsProfile())
error(loc, "only supported on image with format r32f", fnCandidate.getName().c_str(), "");
+ } else {
+ error(loc, "not supported on this image type", fnCandidate.getName().c_str(), "");
}
const size_t maxArgs = imageType.getSampler().isMultiSample() ? 5 : 4;
@@ -2172,6 +2409,7 @@ void TParseContext::builtInOpCheck(const TSourceLoc& loc, const TFunction& fnCan
}
case EOpAtomicAdd:
+ case EOpAtomicSubtract:
case EOpAtomicMin:
case EOpAtomicMax:
case EOpAtomicAnd:
@@ -2187,17 +2425,37 @@ void TParseContext::builtInOpCheck(const TSourceLoc& loc, const TFunction& fnCan
memorySemanticsCheck(loc, fnCandidate, callNode);
if ((callNode.getOp() == EOpAtomicAdd || callNode.getOp() == EOpAtomicExchange ||
callNode.getOp() == EOpAtomicLoad || callNode.getOp() == EOpAtomicStore) &&
- (arg0->getType().isFloatingDomain())) {
+ (arg0->getType().getBasicType() == EbtFloat ||
+ arg0->getType().getBasicType() == EbtDouble)) {
requireExtensions(loc, 1, &E_GL_EXT_shader_atomic_float, fnCandidate.getName().c_str());
+ } else if ((callNode.getOp() == EOpAtomicAdd || callNode.getOp() == EOpAtomicExchange ||
+ callNode.getOp() == EOpAtomicLoad || callNode.getOp() == EOpAtomicStore ||
+ callNode.getOp() == EOpAtomicMin || callNode.getOp() == EOpAtomicMax) &&
+ arg0->getType().isFloatingDomain()) {
+ requireExtensions(loc, 1, &E_GL_EXT_shader_atomic_float2, fnCandidate.getName().c_str());
}
} else if (arg0->getType().getBasicType() == EbtInt64 || arg0->getType().getBasicType() == EbtUint64) {
const char* const extensions[2] = { E_GL_NV_shader_atomic_int64,
E_GL_EXT_shader_atomic_int64 };
requireExtensions(loc, 2, extensions, fnCandidate.getName().c_str());
} else if ((callNode.getOp() == EOpAtomicAdd || callNode.getOp() == EOpAtomicExchange) &&
- (arg0->getType().isFloatingDomain())) {
+ (arg0->getType().getBasicType() == EbtFloat ||
+ arg0->getType().getBasicType() == EbtDouble)) {
requireExtensions(loc, 1, &E_GL_EXT_shader_atomic_float, fnCandidate.getName().c_str());
+ } else if ((callNode.getOp() == EOpAtomicAdd || callNode.getOp() == EOpAtomicExchange ||
+ callNode.getOp() == EOpAtomicLoad || callNode.getOp() == EOpAtomicStore ||
+ callNode.getOp() == EOpAtomicMin || callNode.getOp() == EOpAtomicMax) &&
+ arg0->getType().isFloatingDomain()) {
+ requireExtensions(loc, 1, &E_GL_EXT_shader_atomic_float2, fnCandidate.getName().c_str());
}
+
+ const TIntermTyped* base = TIntermediate::findLValueBase(arg0, true , true);
+ const TType* refType = (base->getType().isReference()) ? base->getType().getReferentType() : nullptr;
+ const TQualifier& qualifier = (refType != nullptr) ? refType->getQualifier() : base->getType().getQualifier();
+ if (qualifier.storage != EvqShared && qualifier.storage != EvqBuffer)
+ error(loc,"Atomic memory function can only be used for shader storage block member or shared variable.",
+ fnCandidate.getName().c_str(), "");
+
break;
}
@@ -2752,6 +3010,11 @@ void TParseContext::rValueErrorCheck(const TSourceLoc& loc, const char* op, TInt
if (!(symNode && symNode->getQualifier().isWriteOnly())) // base class checks
if (symNode && symNode->getQualifier().isExplicitInterpolation())
error(loc, "can't read from explicitly-interpolated object: ", op, symNode->getName().c_str());
+
+ // local_size_{xyz} must be assigned or specialized before gl_WorkGroupSize can be assigned.
+ if(node->getQualifier().builtIn == EbvWorkGroupSize &&
+ !(intermediate.isLocalSizeSet() || intermediate.isLocalSizeSpecialized()))
+ error(loc, "can't read from gl_WorkGroupSize before a fixed workgroup size has been declared", op, "");
}
//
@@ -2794,7 +3057,8 @@ void TParseContext::reservedErrorCheck(const TSourceLoc& loc, const TString& ide
// "Identifiers starting with "gl_" are reserved for use by OpenGL, and may not be
// declared in a shader; this results in a compile-time error."
if (! symbolTable.atBuiltInLevel()) {
- if (builtInName(identifier))
+ if (builtInName(identifier) && !extensionTurnedOn(E_GL_EXT_spirv_intrinsics))
+ // The extension GL_EXT_spirv_intrinsics allows us to declare identifiers starting with "gl_".
error(loc, "identifiers starting with \"gl_\" are reserved", identifier.c_str(), "");
// "__" are not supposed to be an error. ES 300 (and desktop) added the clarification:
@@ -2802,7 +3066,8 @@ void TParseContext::reservedErrorCheck(const TSourceLoc& loc, const TString& ide
// reserved; using such a name does not itself result in an error, but may result
// in undefined behavior."
// however, before that, ES tests required an error.
- if (identifier.find("__") != TString::npos) {
+ if (identifier.find("__") != TString::npos && !extensionTurnedOn(E_GL_EXT_spirv_intrinsics)) {
+ // The extension GL_EXT_spirv_intrinsics allows us to declare identifiers starting with "__".
if (isEsProfile() && version < 300)
error(loc, "identifiers containing consecutive underscores (\"__\") are reserved, and an error if version < 300", identifier.c_str(), "");
else
@@ -2823,14 +3088,16 @@ void TParseContext::reservedPpErrorCheck(const TSourceLoc& loc, const char* iden
// single underscore) are also reserved, and defining such a name results in a
// compile-time error."
// however, before that, ES tests required an error.
- if (strncmp(identifier, "GL_", 3) == 0)
+ if (strncmp(identifier, "GL_", 3) == 0 && !extensionTurnedOn(E_GL_EXT_spirv_intrinsics))
+ // The extension GL_EXT_spirv_intrinsics allows us to declare macros prefixed with "GL_".
ppError(loc, "names beginning with \"GL_\" can't be (un)defined:", op, identifier);
else if (strncmp(identifier, "defined", 8) == 0)
if (relaxedErrors())
ppWarn(loc, "\"defined\" is (un)defined:", op, identifier);
else
ppError(loc, "\"defined\" can't be (un)defined:", op, identifier);
- else if (strstr(identifier, "__") != 0) {
+ else if (strstr(identifier, "__") != 0 && !extensionTurnedOn(E_GL_EXT_spirv_intrinsics)) {
+ // The extension GL_EXT_spirv_intrinsics allows us to declare macros prefixed with "__".
if (isEsProfile() && version >= 300 &&
(strcmp(identifier, "__LINE__") == 0 ||
strcmp(identifier, "__FILE__") == 0 ||
@@ -2978,6 +3245,7 @@ bool TParseContext::constructorError(const TSourceLoc& loc, TIntermNode* node, T
bool matrixInMatrix = false;
bool arrayArg = false;
bool floatArgument = false;
+ bool intArgument = false;
for (int arg = 0; arg < function.getParamCount(); ++arg) {
if (function[arg].type->isArray()) {
if (function[arg].type->isUnsizedArray()) {
@@ -3008,6 +3276,8 @@ bool TParseContext::constructorError(const TSourceLoc& loc, TIntermNode* node, T
specConstType = true;
if (function[arg].type->isFloatingDomain())
floatArgument = true;
+ if (function[arg].type->isIntegerDomain())
+ intArgument = true;
if (type.isStruct()) {
if (function[arg].type->contains16BitFloat()) {
requireFloat16Arithmetic(loc, "constructor", "can't construct structure containing 16-bit type");
@@ -3113,6 +3383,15 @@ bool TParseContext::constructorError(const TSourceLoc& loc, TIntermNode* node, T
// and aren't making an array.
makeSpecConst = ! floatArgument && ! type.isArray();
break;
+
+ case EOpConstructVec2:
+ case EOpConstructVec3:
+ case EOpConstructVec4:
+ // This was the list of valid ones, if they aren't converting from int
+ // and aren't making an array.
+ makeSpecConst = ! intArgument && !type.isArray();
+ break;
+
default:
// anything else wasn't white-listed in the spec as a conversion
makeSpecConst = false;
@@ -3379,7 +3658,7 @@ void TParseContext::transparentOpaqueCheck(const TSourceLoc& loc, const TType& t
if (type.containsNonOpaque()) {
// Vulkan doesn't allow transparent uniforms outside of blocks
- if (spvVersion.vulkan > 0)
+ if (spvVersion.vulkan > 0 && !spvVersion.vulkanRelaxed)
vulkanRemoved(loc, "non-opaque uniforms outside a block");
// OpenGL wants locations on these (unless they are getting automapped)
if (spvVersion.openGl > 0 && !type.getQualifier().hasLocation() && !intermediate.getAutoMapLocations())
@@ -3419,6 +3698,8 @@ void TParseContext::globalQualifierFixCheck(const TSourceLoc& loc, TQualifier& q
profileRequires(loc, ENoProfile, 130, nullptr, "out for stage outputs");
profileRequires(loc, EEsProfile, 300, nullptr, "out for stage outputs");
qualifier.storage = EvqVaryingOut;
+ if (intermediate.isInvariantAll())
+ qualifier.invariant = true;
break;
case EvqInOut:
qualifier.storage = EvqVaryingIn;
@@ -3435,7 +3716,7 @@ void TParseContext::globalQualifierFixCheck(const TSourceLoc& loc, TQualifier& q
if (blockName == nullptr &&
qualifier.layoutPacking == ElpStd430)
{
- error(loc, "it is invalid to declare std430 qualifier on uniform", "", "");
+ requireExtensions(loc, 1, &E_GL_EXT_scalar_block_layout, "default std430 layout for uniform");
}
break;
default:
@@ -3445,6 +3726,14 @@ void TParseContext::globalQualifierFixCheck(const TSourceLoc& loc, TQualifier& q
if (!nonuniformOkay && qualifier.isNonUniform())
error(loc, "for non-parameter, can only apply to 'in' or no storage qualifier", "nonuniformEXT", "");
+#ifndef GLSLANG_WEB
+ if (qualifier.isSpirvByReference())
+ error(loc, "can only apply to parameter", "spirv_by_reference", "");
+
+ if (qualifier.isSpirvLiteral())
+ error(loc, "can only apply to parameter", "spirv_literal", "");
+#endif
+
// Storage qualifier isn't ready for memberQualifierCheck, we should skip invariantCheck for it.
if (!isMemberCheck || structNestingLevel > 0)
invariantCheck(loc, qualifier);
@@ -3706,6 +3995,41 @@ void TParseContext::mergeQualifiers(const TSourceLoc& loc, TQualifier& dst, cons
MERGE_SINGLETON(nonUniform);
#endif
+#ifndef GLSLANG_WEB
+ // SPIR-V storage class qualifier (GL_EXT_spirv_intrinsics)
+ dst.spirvStorageClass = src.spirvStorageClass;
+
+ // SPIR-V decorate qualifiers (GL_EXT_spirv_intrinsics)
+ if (src.hasSprivDecorate()) {
+ if (dst.hasSprivDecorate()) {
+ const TSpirvDecorate& srcSpirvDecorate = src.getSpirvDecorate();
+ TSpirvDecorate& dstSpirvDecorate = dst.getSpirvDecorate();
+ for (auto& decorate : srcSpirvDecorate.decorates) {
+ if (dstSpirvDecorate.decorates.find(decorate.first) != dstSpirvDecorate.decorates.end())
+ error(loc, "too many SPIR-V decorate qualifiers", "spirv_decorate", "(decoration=%u)", decorate.first);
+ else
+ dstSpirvDecorate.decorates.insert(decorate);
+ }
+
+ for (auto& decorateId : srcSpirvDecorate.decorateIds) {
+ if (dstSpirvDecorate.decorateIds.find(decorateId.first) != dstSpirvDecorate.decorateIds.end())
+ error(loc, "too many SPIR-V decorate qualifiers", "spirv_decorate_id", "(decoration=%u)", decorateId.first);
+ else
+ dstSpirvDecorate.decorateIds.insert(decorateId);
+ }
+
+ for (auto& decorateString : srcSpirvDecorate.decorateStrings) {
+ if (dstSpirvDecorate.decorates.find(decorateString.first) != dstSpirvDecorate.decorates.end())
+ error(loc, "too many SPIR-V decorate qualifiers", "spirv_decorate_string", "(decoration=%u)", decorateString.first);
+ else
+ dstSpirvDecorate.decorates.insert(decorateString);
+ }
+ } else {
+ dst.spirvDecorate = src.spirvDecorate;
+ }
+ }
+#endif
+
if (repeated)
error(loc, "replicated qualifiers", "", "");
}
@@ -4292,8 +4616,10 @@ TSymbol* TParseContext::redeclareBuiltinVariable(const TSourceLoc& loc, const TS
// If it wasn't at a built-in level, then it's already been redeclared;
// that is, this is a redeclaration of a redeclaration; reuse that initial
// redeclaration. Otherwise, make the new one.
- if (builtIn)
+ if (builtIn) {
makeEditable(symbol);
+ symbolTable.amendSymbolIdLevel(*symbol);
+ }
// Now, modify the type of the copy, as per the type of the current redeclaration.
@@ -4667,6 +4993,17 @@ void TParseContext::paramCheckFix(const TSourceLoc& loc, const TQualifier& quali
}
if (qualifier.isNonUniform())
type.getQualifier().nonUniform = qualifier.nonUniform;
+#ifndef GLSLANG_WEB
+ if (qualifier.isSpirvByReference())
+ type.getQualifier().setSpirvByReference();
+ if (qualifier.isSpirvLiteral()) {
+ if (type.getBasicType() == EbtFloat || type.getBasicType() == EbtInt || type.getBasicType() == EbtUint ||
+ type.getBasicType() == EbtBool)
+ type.getQualifier().setSpirvLiteral();
+ else
+ error(loc, "cannot use spirv_literal qualifier", type.getBasicTypeString().c_str(), "");
+#endif
+ }
paramCheckFixStorage(loc, qualifier.storage, type);
}
@@ -4822,7 +5159,7 @@ void TParseContext::inductiveLoopCheck(const TSourceLoc& loc, TIntermNode* init,
}
// get the unique id of the loop index
- int loopIndex = binaryInit->getLeft()->getAsSymbolNode()->getId();
+ long long loopIndex = binaryInit->getLeft()->getAsSymbolNode()->getId();
inductiveLoopIds.insert(loopIndex);
// condition's form must be "loop-index relational-operator constant-expression"
@@ -5008,14 +5345,22 @@ void TParseContext::setLayoutQualifier(const TSourceLoc& loc, TPublicType& publi
return;
}
if (id == TQualifier::getLayoutPackingString(ElpPacked)) {
- if (spvVersion.spv != 0)
- spvRemoved(loc, "packed");
+ if (spvVersion.spv != 0) {
+ if (spvVersion.vulkanRelaxed)
+ return; // silently ignore qualifier
+ else
+ spvRemoved(loc, "packed");
+ }
publicType.qualifier.layoutPacking = ElpPacked;
return;
}
if (id == TQualifier::getLayoutPackingString(ElpShared)) {
- if (spvVersion.spv != 0)
- spvRemoved(loc, "shared");
+ if (spvVersion.spv != 0) {
+ if (spvVersion.vulkanRelaxed)
+ return; // silently ignore qualifier
+ else
+ spvRemoved(loc, "shared");
+ }
publicType.qualifier.layoutPacking = ElpShared;
return;
}
@@ -5465,7 +5810,7 @@ void TParseContext::setLayoutQualifier(const TSourceLoc& loc, TPublicType& publi
if (! IsPow2(value))
error(loc, "must be a power of 2", "buffer_reference_align", "");
else
- publicType.qualifier.layoutBufferReferenceAlign = (unsigned int)std::log2(value);
+ publicType.qualifier.layoutBufferReferenceAlign = IntLog2(value);
if (nonLiteral)
error(loc, "needs a literal integer", "buffer_reference_align", "");
return;
@@ -5726,6 +6071,9 @@ void TParseContext::layoutObjectCheck(const TSourceLoc& loc, const TSymbol& symb
case EvqVaryingIn:
case EvqVaryingOut:
if (!type.getQualifier().isTaskMemory() &&
+#ifndef GLSLANG_WEB
+ !type.getQualifier().hasSprivDecorate() &&
+#endif
(type.getBasicType() != EbtBlock ||
(!(*type.getStruct())[0].type->getQualifier().hasLocation() &&
(*type.getStruct())[0].type->getQualifier().builtIn == EbvNone)))
@@ -5756,6 +6104,8 @@ void TParseContext::layoutObjectCheck(const TSourceLoc& loc, const TSymbol& symb
error(loc, "can only specify on a uniform block", "push_constant", "");
if (qualifier.isShaderRecord())
error(loc, "can only specify on a buffer block", "shaderRecordNV", "");
+ if (qualifier.hasLocation() && type.isAtomic())
+ error(loc, "cannot specify on atomic counter", "location", "");
}
break;
default:
@@ -5785,6 +6135,11 @@ void TParseContext::layoutMemberLocationArrayCheck(const TSourceLoc& loc, bool m
// Do layout error checking with respect to a type.
void TParseContext::layoutTypeCheck(const TSourceLoc& loc, const TType& type)
{
+#ifndef GLSLANG_WEB
+ if (extensionTurnedOn(E_GL_EXT_spirv_intrinsics))
+ return; // Skip any check if GL_EXT_spirv_intrinsics is turned on
+#endif
+
const TQualifier& qualifier = type.getQualifier();
// first, intra-layout qualifier-only error checking
@@ -5893,16 +6248,12 @@ void TParseContext::layoutTypeCheck(const TSourceLoc& loc, const TType& type)
if (type.getBasicType() == EbtSampler) {
int lastBinding = qualifier.layoutBinding;
if (type.isArray()) {
- if (spvVersion.vulkan > 0)
- lastBinding += 1;
- else {
+ if (spvVersion.vulkan == 0) {
if (type.isSizedArray())
- lastBinding += type.getCumulativeArraySize();
+ lastBinding += (type.getCumulativeArraySize() - 1);
else {
- lastBinding += 1;
#ifndef GLSLANG_WEB
- if (spvVersion.vulkan == 0)
- warn(loc, "assuming binding count of one for compile-time checking of binding numbers for unsized array", "[]", "");
+ warn(loc, "assuming binding count of one for compile-time checking of binding numbers for unsized array", "[]", "");
#endif
}
}
@@ -5912,7 +6263,7 @@ void TParseContext::layoutTypeCheck(const TSourceLoc& loc, const TType& type)
error(loc, "sampler binding not less than gl_MaxCombinedTextureImageUnits", "binding", type.isArray() ? "(using array)" : "");
#endif
}
- if (type.isAtomic()) {
+ if (type.isAtomic() && !spvVersion.vulkanRelaxed) {
if (qualifier.layoutBinding >= (unsigned int)resources.maxAtomicCounterBindings) {
error(loc, "atomic_uint binding is too large; see gl_MaxAtomicCounterBindings", "binding", "");
return;
@@ -6026,12 +6377,28 @@ void TParseContext::layoutTypeCheck(const TSourceLoc& loc, const TType& type)
}
}
+static bool storageCanHaveLayoutInBlock(const enum TStorageQualifier storage)
+{
+ switch (storage) {
+ case EvqUniform:
+ case EvqBuffer:
+ case EvqShared:
+ return true;
+ default:
+ return false;
+ }
+}
+
// Do layout error checking that can be done within a layout qualifier proper, not needing to know
// if there are blocks, atomic counters, variables, etc.
void TParseContext::layoutQualifierCheck(const TSourceLoc& loc, const TQualifier& qualifier)
{
- if (qualifier.storage == EvqShared && qualifier.hasLayout())
- error(loc, "cannot apply layout qualifiers to a shared variable", "shared", "");
+ if (qualifier.storage == EvqShared && qualifier.hasLayout()) {
+ if (spvVersion.spv > 0 && spvVersion.spv < EShTargetSpv_1_4) {
+ error(loc, "shared block requires at least SPIR-V 1.4", "shared block", "");
+ }
+ profileRequires(loc, EEsProfile | ECoreProfile | ECompatibilityProfile, 0, E_GL_EXT_shared_memory_block, "shared block");
+ }
// "It is a compile-time error to use *component* without also specifying the location qualifier (order does not matter)."
if (qualifier.hasComponent() && ! qualifier.hasLocation())
@@ -6114,7 +6481,7 @@ void TParseContext::layoutQualifierCheck(const TSourceLoc& loc, const TQualifier
error(loc, "can only be used on an output", "xfb layout qualifier", "");
}
if (qualifier.hasUniformLayout()) {
- if (! qualifier.isUniformOrBuffer() && !qualifier.isTaskMemory()) {
+ if (!storageCanHaveLayoutInBlock(qualifier.storage) && !qualifier.isTaskMemory()) {
if (qualifier.hasMatrix() || qualifier.hasPacking())
error(loc, "matrix or packing qualifiers can only be used on a uniform or buffer", "layout", "");
if (qualifier.hasOffset() || qualifier.hasAlign())
@@ -6273,8 +6640,11 @@ const TFunction* TParseContext::findFunction(const TSourceLoc& loc, const TFunct
extensionTurnedOn(E_GL_EXT_shader_explicit_arithmetic_types_float64);
if (isEsProfile())
- function = (extensionTurnedOn(E_GL_EXT_shader_implicit_conversions) && version >= 310) ?
- findFunction120(loc, call, builtIn) : findFunctionExact(loc, call, builtIn);
+ function = (explicitTypesEnabled && version >= 310)
+ ? findFunctionExplicitTypes(loc, call, builtIn)
+ : ((extensionTurnedOn(E_GL_EXT_shader_implicit_conversions) && version >= 310)
+ ? findFunction120(loc, call, builtIn)
+ : findFunctionExact(loc, call, builtIn));
else if (version < 120)
function = findFunctionExact(loc, call, builtIn);
else if (version < 400)
@@ -6566,6 +6936,68 @@ const TFunction* TParseContext::findFunctionExplicitTypes(const TSourceLoc& loc,
return bestMatch;
}
+//
+// Adjust function calls that aren't declared in Vulkan to a
+// calls with equivalent effects
+//
+TIntermTyped* TParseContext::vkRelaxedRemapFunctionCall(const TSourceLoc& loc, TFunction* function, TIntermNode* arguments)
+{
+ TIntermTyped* result = nullptr;
+
+#ifndef GLSLANG_WEB
+ if (function->getBuiltInOp() != EOpNull) {
+ return nullptr;
+ }
+
+ if (function->getName() == "atomicCounterIncrement") {
+ // change atomicCounterIncrement into an atomicAdd of 1
+ TString name("atomicAdd");
+ TType uintType(EbtUint);
+
+ TFunction realFunc(&name, function->getType());
+
+ for (int i = 0; i < function->getParamCount(); ++i) {
+ realFunc.addParameter((*function)[i]);
+ }
+
+ TParameter tmpP = { 0, &uintType };
+ realFunc.addParameter(tmpP);
+ arguments = intermediate.growAggregate(arguments, intermediate.addConstantUnion(1, loc, true));
+
+ result = handleFunctionCall(loc, &realFunc, arguments);
+ } else if (function->getName() == "atomicCounterDecrement") {
+ // change atomicCounterDecrement into an atomicAdd with -1
+ // and subtract 1 from result, to return post-decrement value
+ TString name("atomicAdd");
+ TType uintType(EbtUint);
+
+ TFunction realFunc(&name, function->getType());
+
+ for (int i = 0; i < function->getParamCount(); ++i) {
+ realFunc.addParameter((*function)[i]);
+ }
+
+ TParameter tmpP = { 0, &uintType };
+ realFunc.addParameter(tmpP);
+ arguments = intermediate.growAggregate(arguments, intermediate.addConstantUnion(-1, loc, true));
+
+ result = handleFunctionCall(loc, &realFunc, arguments);
+
+ // post decrement, so that it matches AtomicCounterDecrement semantics
+ if (result) {
+ result = handleBinaryMath(loc, "-", EOpSub, result, intermediate.addConstantUnion(1, loc, true));
+ }
+ } else if (function->getName() == "atomicCounter") {
+ // change atomicCounter into a direct read of the variable
+ if (arguments->getAsTyped()) {
+ result = arguments->getAsTyped();
+ }
+ }
+#endif
+
+ return result;
+}
+
// When a declaration includes a type, but not a variable name, it can be used
// to establish defaults.
void TParseContext::declareTypeDefaults(const TSourceLoc& loc, const TPublicType& publicType)
@@ -6590,6 +7022,91 @@ void TParseContext::declareTypeDefaults(const TSourceLoc& loc, const TPublicType
#endif
}
+bool TParseContext::vkRelaxedRemapUniformVariable(const TSourceLoc& loc, TString& identifier, const TPublicType&,
+ TArraySizes*, TIntermTyped* initializer, TType& type)
+{
+ if (parsingBuiltins || symbolTable.atBuiltInLevel() || !symbolTable.atGlobalLevel() ||
+ type.getQualifier().storage != EvqUniform ||
+ !(type.containsNonOpaque()
+#ifndef GLSLANG_WEB
+ || type.getBasicType() == EbtAtomicUint
+#endif
+ )) {
+ return false;
+ }
+
+ if (type.getQualifier().hasLocation()) {
+ warn(loc, "ignoring layout qualifier for uniform", identifier.c_str(), "location");
+ type.getQualifier().layoutLocation = TQualifier::layoutLocationEnd;
+ }
+
+ if (initializer) {
+ warn(loc, "Ignoring initializer for uniform", identifier.c_str(), "");
+ initializer = nullptr;
+ }
+
+ if (type.isArray()) {
+ // do array size checks here
+ arraySizesCheck(loc, type.getQualifier(), type.getArraySizes(), initializer, false);
+
+ if (arrayQualifierError(loc, type.getQualifier()) || arrayError(loc, type)) {
+ error(loc, "array param error", identifier.c_str(), "");
+ }
+ }
+
+ // do some checking on the type as it was declared
+ layoutTypeCheck(loc, type);
+
+ int bufferBinding = TQualifier::layoutBindingEnd;
+ TVariable* updatedBlock = nullptr;
+
+#ifndef GLSLANG_WEB
+ // Convert atomic_uint into members of a buffer block
+ if (type.isAtomic()) {
+ type.setBasicType(EbtUint);
+ type.getQualifier().storage = EvqBuffer;
+
+ type.getQualifier().volatil = true;
+ type.getQualifier().coherent = true;
+
+ // xxTODO: use logic from fixOffset() to apply explicit member offset
+ bufferBinding = type.getQualifier().layoutBinding;
+ type.getQualifier().layoutBinding = TQualifier::layoutBindingEnd;
+ type.getQualifier().explicitOffset = false;
+ growAtomicCounterBlock(bufferBinding, loc, type, identifier, nullptr);
+ updatedBlock = atomicCounterBuffers[bufferBinding];
+ }
+#endif
+
+ if (!updatedBlock) {
+ growGlobalUniformBlock(loc, type, identifier, nullptr);
+ updatedBlock = globalUniformBlock;
+ }
+
+ //
+ // don't assign explicit member offsets here
+ // if any are assigned, need to be updated here and in the merge/link step
+ // fixBlockUniformOffsets(updatedBlock->getWritableType().getQualifier(), *updatedBlock->getWritableType().getWritableStruct());
+
+ // checks on update buffer object
+ layoutObjectCheck(loc, *updatedBlock);
+
+ TSymbol* symbol = symbolTable.find(identifier);
+
+ if (!symbol) {
+ if (updatedBlock == globalUniformBlock)
+ error(loc, "error adding uniform to default uniform block", identifier.c_str(), "");
+ else
+ error(loc, "error adding atomic counter to atomic counter block", identifier.c_str(), "");
+ return false;
+ }
+
+ // merge qualifiers
+ mergeObjectLayoutQualifiers(updatedBlock->getWritableType().getQualifier(), type.getQualifier(), true);
+
+ return true;
+}
+
//
// Do everything necessary to handle a variable (non-block) declaration.
// Either redeclaring a variable, or making a new one, updating the symbol
@@ -6701,6 +7218,14 @@ TIntermNode* TParseContext::declareVariable(const TSourceLoc& loc, TString& iden
if (symbol == nullptr)
reservedErrorCheck(loc, identifier);
+ if (symbol == nullptr && spvVersion.vulkan > 0 && spvVersion.vulkanRelaxed) {
+ bool remapped = vkRelaxedRemapUniformVariable(loc, identifier, publicType, arraySizes, initializer, type);
+
+ if (remapped) {
+ return nullptr;
+ }
+ }
+
inheritGlobalDefaults(type.getQualifier());
// Declare the variable
@@ -6808,6 +7333,11 @@ TVariable* TParseContext::declareNonArray(const TSourceLoc& loc, const TString&
//
TIntermNode* TParseContext::executeInitializer(const TSourceLoc& loc, TIntermTyped* initializer, TVariable* variable)
{
+ // A null initializer is an aggregate that hasn't had an op assigned yet
+ // (still EOpNull, no relation to nullInit), and has no children.
+ bool nullInit = initializer->getAsAggregate() && initializer->getAsAggregate()->getOp() == EOpNull &&
+ initializer->getAsAggregate()->getSequence().size() == 0;
+
//
// Identifier must be of type constant, a global, or a temporary, and
// starting at version 120, desktop allows uniforms to have initializers.
@@ -6815,9 +7345,36 @@ TIntermNode* TParseContext::executeInitializer(const TSourceLoc& loc, TIntermTyp
TStorageQualifier qualifier = variable->getType().getQualifier().storage;
if (! (qualifier == EvqTemporary || qualifier == EvqGlobal || qualifier == EvqConst ||
(qualifier == EvqUniform && !isEsProfile() && version >= 120))) {
- error(loc, " cannot initialize this type of qualifier ", variable->getType().getStorageQualifierString(), "");
+ if (qualifier == EvqShared) {
+ // GL_EXT_null_initializer allows this for shared, if it's a null initializer
+ if (nullInit) {
+ const char* feature = "initialization with shared qualifier";
+ profileRequires(loc, EEsProfile, 0, E_GL_EXT_null_initializer, feature);
+ profileRequires(loc, ~EEsProfile, 0, E_GL_EXT_null_initializer, feature);
+ } else {
+ error(loc, "initializer can only be a null initializer ('{}')", "shared", "");
+ }
+ } else {
+ error(loc, " cannot initialize this type of qualifier ",
+ variable->getType().getStorageQualifierString(), "");
+ return nullptr;
+ }
+ }
+
+ if (nullInit) {
+ // only some types can be null initialized
+ if (variable->getType().containsUnsizedArray()) {
+ error(loc, "null initializers can't size unsized arrays", "{}", "");
+ return nullptr;
+ }
+ if (variable->getType().containsOpaque()) {
+ error(loc, "null initializers can't be used on opaque values", "{}", "");
+ return nullptr;
+ }
+ variable->getWritableType().getQualifier().setNullInit();
return nullptr;
}
+
arrayObjectCheck(loc, variable->getType(), "array initializer");
//
@@ -6861,13 +7418,15 @@ TIntermNode* TParseContext::executeInitializer(const TSourceLoc& loc, TIntermTyp
// Uniforms require a compile-time constant initializer
if (qualifier == EvqUniform && ! initializer->getType().getQualifier().isFrontEndConstant()) {
- error(loc, "uniform initializers must be constant", "=", "'%s'", variable->getType().getCompleteString().c_str());
+ error(loc, "uniform initializers must be constant", "=", "'%s'",
+ variable->getType().getCompleteString().c_str());
variable->getWritableType().getQualifier().makeTemporary();
return nullptr;
}
// Global consts require a constant initializer (specialization constant is okay)
if (qualifier == EvqConst && symbolTable.atGlobalLevel() && ! initializer->getType().getQualifier().isConstant()) {
- error(loc, "global const initializers must be constant", "=", "'%s'", variable->getType().getCompleteString().c_str());
+ error(loc, "global const initializers must be constant", "=", "'%s'",
+ variable->getType().getCompleteString().c_str());
variable->getWritableType().getQualifier().makeTemporary();
return nullptr;
}
@@ -6887,7 +7446,8 @@ TIntermNode* TParseContext::executeInitializer(const TSourceLoc& loc, TIntermTyp
// "In declarations of global variables with no storage qualifier or with a const
// qualifier any initializer must be a constant expression."
if (symbolTable.atGlobalLevel() && ! initializer->getType().getQualifier().isConstant()) {
- const char* initFeature = "non-constant global initializer (needs GL_EXT_shader_non_constant_global_initializers)";
+ const char* initFeature =
+ "non-constant global initializer (needs GL_EXT_shader_non_constant_global_initializers)";
if (isEsProfile()) {
if (relaxedErrors() && ! extensionTurnedOn(E_GL_EXT_shader_non_constant_global_initializers))
warn(loc, "not allowed in this version", initFeature, "");
@@ -6901,7 +7461,8 @@ TIntermNode* TParseContext::executeInitializer(const TSourceLoc& loc, TIntermTyp
// Compile-time tagging of the variable with its constant value...
initializer = intermediate.addConversion(EOpAssign, variable->getType(), initializer);
- if (! initializer || ! initializer->getType().getQualifier().isConstant() || variable->getType() != initializer->getType()) {
+ if (! initializer || ! initializer->getType().getQualifier().isConstant() ||
+ variable->getType() != initializer->getType()) {
error(loc, "non-matching or non-convertible constant type for const initializer",
variable->getType().getStorageQualifierString(), "");
variable->getWritableType().getQualifier().makeTemporary();
@@ -7557,6 +8118,8 @@ void TParseContext::inheritMemoryQualifiers(const TQualifier& from, TQualifier&
void TParseContext::declareBlock(const TSourceLoc& loc, TTypeList& typeList, const TString* instanceName,
TArraySizes* arraySizes)
{
+ if (spvVersion.vulkan > 0 && spvVersion.vulkanRelaxed)
+ blockStorageRemap(loc, blockName, currentBlockQualifier);
blockStageIoCheck(loc, currentBlockQualifier);
blockQualifierCheck(loc, currentBlockQualifier, instanceName != nullptr);
if (arraySizes != nullptr) {
@@ -7583,6 +8146,10 @@ void TParseContext::declareBlock(const TSourceLoc& loc, TTypeList& typeList, con
memberQualifier.perViewNV = currentBlockQualifier.perViewNV;
if (currentBlockQualifier.perTaskNV)
memberQualifier.perTaskNV = currentBlockQualifier.perTaskNV;
+ if (memberQualifier.storage == EvqSpirvStorageClass)
+ error(memberLoc, "member cannot have a spirv_storage_class qualifier", memberType.getFieldName().c_str(), "");
+ if (memberQualifier.hasSprivDecorate() && !memberQualifier.getSpirvDecorate().decorateIds.empty())
+ error(memberLoc, "member cannot have a spirv_decorate_id qualifier", memberType.getFieldName().c_str(), "");
#endif
if ((currentBlockQualifier.storage == EvqUniform || currentBlockQualifier.storage == EvqBuffer) && (memberQualifier.isInterpolation() || memberQualifier.isAuxiliary()))
error(memberLoc, "member of uniform or buffer block cannot have an auxiliary or interpolation qualifier", memberType.getFieldName().c_str(), "");
@@ -7624,6 +8191,7 @@ void TParseContext::declareBlock(const TSourceLoc& loc, TTypeList& typeList, con
case EvqBuffer: defaultQualification = globalBufferDefaults; break;
case EvqVaryingIn: defaultQualification = globalInputDefaults; break;
case EvqVaryingOut: defaultQualification = globalOutputDefaults; break;
+ case EvqShared: defaultQualification = globalSharedDefaults; break;
default: defaultQualification.clear(); break;
}
@@ -7845,6 +8413,17 @@ void TParseContext::declareBlock(const TSourceLoc& loc, TTypeList& typeList, con
trackLinkage(variable);
}
+//
+// allow storage type of block to be remapped at compile time
+//
+void TParseContext::blockStorageRemap(const TSourceLoc&, const TString* instanceName, TQualifier& qualifier)
+{
+ TBlockStorageClass type = intermediate.getBlockStorageOverride(instanceName->c_str());
+ if (type != EbsNone) {
+ qualifier.setBlockStorage(type);
+ }
+}
+
// Do all block-declaration checking regarding the combination of in/out/uniform/buffer
// with a particular stage.
void TParseContext::blockStageIoCheck(const TSourceLoc& loc, const TQualifier& qualifier)
@@ -7887,6 +8466,12 @@ void TParseContext::blockStageIoCheck(const TSourceLoc& loc, const TQualifier& q
error(loc, "output blocks cannot be used in a task shader", "out", "");
}
break;
+ case EvqShared:
+ if (spvVersion.spv > 0 && spvVersion.spv < EShTargetSpv_1_4) {
+ error(loc, "shared block requires at least SPIR-V 1.4", "shared block", "");
+ }
+ profileRequires(loc, EEsProfile | ECoreProfile | ECompatibilityProfile, 0, E_GL_EXT_shared_memory_block, "shared block");
+ break;
#ifndef GLSLANG_WEB
case EvqPayload:
profileRequires(loc, ~EEsProfile, 460, 2, extsrt, "rayPayloadNV block");
@@ -8045,7 +8630,7 @@ void TParseContext::fixXfbOffsets(TQualifier& qualifier, TTypeList& typeList)
//
void TParseContext::fixBlockUniformOffsets(TQualifier& qualifier, TTypeList& typeList)
{
- if (!qualifier.isUniformOrBuffer() && !qualifier.isTaskMemory())
+ if (!storageCanHaveLayoutInBlock(qualifier.storage) && !qualifier.isTaskMemory())
return;
if (qualifier.layoutPacking != ElpStd140 && qualifier.layoutPacking != ElpStd430 && qualifier.layoutPacking != ElpScalar)
return;
@@ -8155,8 +8740,8 @@ void TParseContext::fixBlockUniformLayoutMatrix(TQualifier& qualifier, TTypeList
}
//
-// Spread LayoutPacking to block member, if a block member is a struct, we need spread LayoutPacking to
-// this struct member too. and keep this rule for recursive.
+// Spread LayoutPacking to matrix or aggregate block members. If a block member is a struct or
+// array of struct, spread LayoutPacking recursively to its matrix or aggregate members.
//
void TParseContext::fixBlockUniformLayoutPacking(TQualifier& qualifier, TTypeList* originTypeList,
TTypeList* tmpTypeList)
@@ -8165,11 +8750,13 @@ void TParseContext::fixBlockUniformLayoutPacking(TQualifier& qualifier, TTypeLis
for (unsigned int member = 0; member < originTypeList->size(); ++member) {
if (qualifier.layoutPacking != ElpNone) {
if (tmpTypeList == nullptr) {
- if ((*originTypeList)[member].type->getQualifier().layoutPacking == ElpNone) {
+ if ((*originTypeList)[member].type->getQualifier().layoutPacking == ElpNone &&
+ !(*originTypeList)[member].type->isScalarOrVector()) {
(*originTypeList)[member].type->getQualifier().layoutPacking = qualifier.layoutPacking;
}
} else {
- if ((*tmpTypeList)[member].type->getQualifier().layoutPacking == ElpNone) {
+ if ((*tmpTypeList)[member].type->getQualifier().layoutPacking == ElpNone &&
+ !(*tmpTypeList)[member].type->isScalarOrVector()) {
(*tmpTypeList)[member].type->getQualifier().layoutPacking = qualifier.layoutPacking;
}
}
@@ -8559,8 +9146,14 @@ void TParseContext::updateStandaloneQualifierDefaults(const TSourceLoc& loc, con
}
#endif
break;
+ case EvqShared:
+ if (qualifier.hasMatrix())
+ globalSharedDefaults.layoutMatrix = qualifier.layoutMatrix;
+ if (qualifier.hasPacking())
+ globalSharedDefaults.layoutPacking = qualifier.layoutPacking;
+ break;
default:
- error(loc, "default qualifier requires 'uniform', 'buffer', 'in', or 'out' storage qualification", "", "");
+ error(loc, "default qualifier requires 'uniform', 'buffer', 'in', 'out' or 'shared' storage qualification", "", "");
return;
}
diff --git a/thirdparty/glslang/glslang/MachineIndependent/ParseHelper.h b/thirdparty/glslang/glslang/MachineIndependent/ParseHelper.h
index fe2b6fbbe1..de44884653 100644
--- a/thirdparty/glslang/glslang/MachineIndependent/ParseHelper.h
+++ b/thirdparty/glslang/glslang/MachineIndependent/ParseHelper.h
@@ -67,7 +67,7 @@ struct TPragma {
class TScanContext;
class TPpContext;
-typedef std::set<int> TIdSetType;
+typedef std::set<long long> TIdSetType;
typedef std::map<const TTypeList*, std::map<size_t, const TTypeList*>> TStructRecord;
//
@@ -92,7 +92,8 @@ public:
limits(resources.limits),
globalUniformBlock(nullptr),
globalUniformBinding(TQualifier::layoutBindingEnd),
- globalUniformSet(TQualifier::layoutSetEnd)
+ globalUniformSet(TQualifier::layoutSetEnd),
+ atomicCounterBlockSet(TQualifier::layoutSetEnd)
{
if (entryPoint != nullptr)
sourceEntryPointName = *entryPoint;
@@ -154,10 +155,11 @@ public:
extensionCallback(line, extension, behavior);
}
-#ifdef ENABLE_HLSL
// Manage the global uniform block (default uniforms in GLSL, $Global in HLSL)
virtual void growGlobalUniformBlock(const TSourceLoc&, TType&, const TString& memberName, TTypeList* typeList = nullptr);
-#endif
+
+ // Manage global buffer (used for backing atomic counters in GLSL when using relaxed Vulkan semantics)
+ virtual void growAtomicCounterBlock(int binding, const TSourceLoc&, TType&, const TString& memberName, TTypeList* typeList = nullptr);
// Potentially rename shader entry point function
void renameShaderFunction(TString*& name) const
@@ -230,7 +232,25 @@ protected:
// override this to set the language-specific name
virtual const char* getGlobalUniformBlockName() const { return ""; }
virtual void setUniformBlockDefaults(TType&) const { }
- virtual void finalizeGlobalUniformBlockLayout(TVariable&) { }
+ virtual void finalizeGlobalUniformBlockLayout(TVariable&) {}
+
+ // Manage the atomic counter block (used for atomic_uints with Vulkan-Relaxed)
+ TMap<int, TVariable*> atomicCounterBuffers;
+ unsigned int atomicCounterBlockSet;
+ TMap<int, int> atomicCounterBlockFirstNewMember;
+ // override this to set the language-specific name
+ virtual const char* getAtomicCounterBlockName() const { return ""; }
+ virtual void setAtomicCounterBlockDefaults(TType&) const {}
+ virtual void setInvariant(const TSourceLoc& loc, const char* builtin) {}
+ virtual void finalizeAtomicCounterBlockLayout(TVariable&) {}
+ bool isAtomicCounterBlock(const TSymbol& symbol) {
+ const TVariable* var = symbol.getAsVariable();
+ if (!var)
+ return false;
+ const auto& at = atomicCounterBuffers.find(var->getType().getQualifier().layoutBinding);
+ return (at != atomicCounterBuffers.end() && (*at).second->getType() == var->getType());
+ }
+
virtual void outputMessage(const TSourceLoc&, const char* szReason, const char* szToken,
const char* szExtraInfoFormat, TPrefixType prefix,
va_list args);
@@ -293,6 +313,9 @@ public:
bool parseShaderStrings(TPpContext&, TInputScanner& input, bool versionWillBeError = false) override;
void parserError(const char* s); // for bison's yyerror
+ virtual void growGlobalUniformBlock(const TSourceLoc&, TType&, const TString& memberName, TTypeList* typeList = nullptr) override;
+ virtual void growAtomicCounterBlock(int binding, const TSourceLoc&, TType&, const TString& memberName, TTypeList* typeList = nullptr) override;
+
void reservedErrorCheck(const TSourceLoc&, const TString&);
void reservedPpErrorCheck(const TSourceLoc&, const char* name, const char* op) override;
bool lineContinuationCheck(const TSourceLoc&, bool endOfComment) override;
@@ -340,6 +363,10 @@ public:
void checkPrecisionQualifier(const TSourceLoc&, TPrecisionQualifier);
void memorySemanticsCheck(const TSourceLoc&, const TFunction&, const TIntermOperator& callNode);
+ TIntermTyped* vkRelaxedRemapFunctionCall(const TSourceLoc&, TFunction*, TIntermNode*);
+ // returns true if the variable was remapped to something else
+ bool vkRelaxedRemapUniformVariable(const TSourceLoc&, TString&, const TPublicType&, TArraySizes*, TIntermTyped*, TType&);
+
void assignError(const TSourceLoc&, const char* op, TString left, TString right);
void unaryOpError(const TSourceLoc&, const char* op, TString operand);
void binaryOpError(const TSourceLoc&, const char* op, TString left, TString right);
@@ -392,7 +419,7 @@ public:
void arrayLimitCheck(const TSourceLoc&, const TString&, int size);
void limitCheck(const TSourceLoc&, int value, const char* limit, const char* feature);
- void inductiveLoopBodyCheck(TIntermNode*, int loopIndexId, TSymbolTable&);
+ void inductiveLoopBodyCheck(TIntermNode*, long long loopIndexId, TSymbolTable&);
void constantIndexExpressionCheck(TIntermNode*);
void setLayoutQualifier(const TSourceLoc&, TPublicType&, TString&);
@@ -417,6 +444,7 @@ public:
TIntermTyped* constructBuiltIn(const TType&, TOperator, TIntermTyped*, const TSourceLoc&, bool subset);
void inheritMemoryQualifiers(const TQualifier& from, TQualifier& to);
void declareBlock(const TSourceLoc&, TTypeList& typeList, const TString* instanceName = 0, TArraySizes* arraySizes = 0);
+ void blockStorageRemap(const TSourceLoc&, const TString*, TQualifier&);
void blockStageIoCheck(const TSourceLoc&, const TQualifier&);
void blockQualifierCheck(const TSourceLoc&, const TQualifier&, bool instanceName);
void fixBlockLocations(const TSourceLoc&, TQualifier&, TTypeList&, bool memberWithLocation, bool memberWithoutLocation);
@@ -443,6 +471,22 @@ public:
void handleSwitchAttributes(const TAttributes& attributes, TIntermNode*);
// Determine loop control from attributes
void handleLoopAttributes(const TAttributes& attributes, TIntermNode*);
+ // Function attributes
+ void handleFunctionAttributes(const TSourceLoc&, const TAttributes&, TFunction*);
+
+ // GL_EXT_spirv_intrinsics
+ TSpirvRequirement* makeSpirvRequirement(const TSourceLoc& loc, const TString& name,
+ const TIntermAggregate* extensions, const TIntermAggregate* capabilities);
+ TSpirvRequirement* mergeSpirvRequirements(const TSourceLoc& loc, TSpirvRequirement* spirvReq1,
+ TSpirvRequirement* spirvReq2);
+ TSpirvTypeParameters* makeSpirvTypeParameters(const TSourceLoc& loc, const TIntermConstantUnion* constant);
+ TSpirvTypeParameters* makeSpirvTypeParameters(const TPublicType& type);
+ TSpirvTypeParameters* mergeSpirvTypeParameters(TSpirvTypeParameters* spirvTypeParams1,
+ TSpirvTypeParameters* spirvTypeParams2);
+ TSpirvInstruction* makeSpirvInstruction(const TSourceLoc& loc, const TString& name, const TString& value);
+ TSpirvInstruction* makeSpirvInstruction(const TSourceLoc& loc, const TString& name, int value);
+ TSpirvInstruction* mergeSpirvInstruction(const TSourceLoc& loc, TSpirvInstruction* spirvInst1,
+ TSpirvInstruction* spirvInst2);
#endif
void checkAndResizeMeshViewDim(const TSourceLoc&, TType&, bool isBlockMember);
@@ -461,6 +505,15 @@ protected:
void finish() override;
#endif
+ virtual const char* getGlobalUniformBlockName() const override;
+ virtual void finalizeGlobalUniformBlockLayout(TVariable&) override;
+ virtual void setUniformBlockDefaults(TType& block) const override;
+
+ virtual const char* getAtomicCounterBlockName() const override;
+ virtual void finalizeAtomicCounterBlockLayout(TVariable&) override;
+ virtual void setAtomicCounterBlockDefaults(TType& block) const override;
+ virtual void setInvariant(const TSourceLoc& loc, const char* builtin) override;
+
public:
//
// Generally, bison productions, the scanner, and the PP need read/write access to these; just give them direct access
@@ -485,6 +538,7 @@ protected:
TQualifier globalUniformDefaults;
TQualifier globalInputDefaults;
TQualifier globalOutputDefaults;
+ TQualifier globalSharedDefaults;
TString currentCaller; // name of last function body entered (not valid when at global scope)
#ifndef GLSLANG_WEB
int* atomicUintOffsets; // to become an array of the right size to hold an offset per binding point
diff --git a/thirdparty/glslang/glslang/MachineIndependent/Scan.cpp b/thirdparty/glslang/glslang/MachineIndependent/Scan.cpp
index 78c8a365d7..c387aede0e 100644
--- a/thirdparty/glslang/glslang/MachineIndependent/Scan.cpp
+++ b/thirdparty/glslang/glslang/MachineIndependent/Scan.cpp
@@ -586,6 +586,18 @@ void TScanContext::fillInKeywordMap()
(*KeywordMap)["f64mat4x2"] = F64MAT4X2;
(*KeywordMap)["f64mat4x3"] = F64MAT4X3;
(*KeywordMap)["f64mat4x4"] = F64MAT4X4;
+
+ // GL_EXT_spirv_intrinsics
+ (*KeywordMap)["spirv_instruction"] = SPIRV_INSTRUCTION;
+ (*KeywordMap)["spirv_execution_mode"] = SPIRV_EXECUTION_MODE;
+ (*KeywordMap)["spirv_execution_mode_id"] = SPIRV_EXECUTION_MODE_ID;
+ (*KeywordMap)["spirv_decorate"] = SPIRV_DECORATE;
+ (*KeywordMap)["spirv_decorate_id"] = SPIRV_DECORATE_ID;
+ (*KeywordMap)["spirv_decorate_string"] = SPIRV_DECORATE_STRING;
+ (*KeywordMap)["spirv_type"] = SPIRV_TYPE;
+ (*KeywordMap)["spirv_storage_class"] = SPIRV_STORAGE_CLASS;
+ (*KeywordMap)["spirv_by_reference"] = SPIRV_BY_REFERENCE;
+ (*KeywordMap)["spirv_literal"] = SPIRV_LITERAL;
#endif
(*KeywordMap)["sampler2D"] = SAMPLER2D;
@@ -1747,6 +1759,21 @@ int TScanContext::tokenizeIdentifier()
return keyword;
else
return identifierOrType();
+
+ case SPIRV_INSTRUCTION:
+ case SPIRV_EXECUTION_MODE:
+ case SPIRV_EXECUTION_MODE_ID:
+ case SPIRV_DECORATE:
+ case SPIRV_DECORATE_ID:
+ case SPIRV_DECORATE_STRING:
+ case SPIRV_TYPE:
+ case SPIRV_STORAGE_CLASS:
+ case SPIRV_BY_REFERENCE:
+ case SPIRV_LITERAL:
+ if (parseContext.symbolTable.atBuiltInLevel() ||
+ parseContext.extensionTurnedOn(E_GL_EXT_spirv_intrinsics))
+ return keyword;
+ return identifierOrType();
#endif
default:
diff --git a/thirdparty/glslang/glslang/MachineIndependent/ShaderLang.cpp b/thirdparty/glslang/glslang/MachineIndependent/ShaderLang.cpp
index c6030bd7c2..d02eae6fcc 100644
--- a/thirdparty/glslang/glslang/MachineIndependent/ShaderLang.cpp
+++ b/thirdparty/glslang/glslang/MachineIndependent/ShaderLang.cpp
@@ -159,7 +159,7 @@ int MapVersionToIndex(int version)
return index;
}
-const int SpvVersionCount = 3; // index range in MapSpvVersionToIndex
+const int SpvVersionCount = 4; // index range in MapSpvVersionToIndex
int MapSpvVersionToIndex(const SpvVersion& spvVersion)
{
@@ -167,8 +167,12 @@ int MapSpvVersionToIndex(const SpvVersion& spvVersion)
if (spvVersion.openGl > 0)
index = 1;
- else if (spvVersion.vulkan > 0)
- index = 2;
+ else if (spvVersion.vulkan > 0) {
+ if (!spvVersion.vulkanRelaxed)
+ index = 2;
+ else
+ index = 3;
+ }
assert(index < SpvVersionCount);
@@ -723,6 +727,7 @@ void TranslateEnvironment(const TEnvironment* environment, EShMessages& messages
break;
case EShClientVulkan:
spvVersion.vulkanGlsl = environment->input.dialectVersion;
+ spvVersion.vulkanRelaxed = environment->input.vulkanRulesRelaxed;
break;
case EShClientOpenGL:
spvVersion.openGl = environment->input.dialectVersion;
@@ -949,6 +954,9 @@ bool ProcessDeferred(
if (cachedTable)
symbolTable->adoptLevels(*cachedTable);
+ if (intermediate.getUniqueId() != 0)
+ symbolTable->overwriteUniqueId(intermediate.getUniqueId());
+
// Add built-in symbols that are potentially context dependent;
// they get popped again further down.
if (! AddContextSpecificSymbols(resources, compiler->infoSink, *symbolTable, version, profile, spvVersion,
@@ -1011,6 +1019,7 @@ bool ProcessDeferred(
bool success = processingContext(*parseContext, ppContext, fullInput,
versionWillBeError, *symbolTable,
intermediate, optLevel, messages);
+ intermediate.setUniqueId(symbolTable->getMaxSymbolId());
return success;
}
@@ -1270,14 +1279,15 @@ bool PreprocessDeferred(
EShMessages messages, // warnings/errors/AST; things to print out
TShader::Includer& includer,
TIntermediate& intermediate, // returned tree, etc.
- std::string* outputString)
+ std::string* outputString,
+ TEnvironment* environment = nullptr)
{
DoPreprocessing parser(outputString);
return ProcessDeferred(compiler, shaderStrings, numStrings, inputLengths, stringNames,
preamble, optLevel, resources, defaultVersion,
defaultProfile, forceDefaultVersionAndProfile,
forwardCompatible, messages, intermediate, parser,
- false, includer);
+ false, includer, "", environment);
}
#endif
@@ -1757,6 +1767,7 @@ TShader::TShader(EShLanguage s)
// clear environment (avoid constructors in them for use in a C interface)
environment.input.languageFamily = EShSourceNone;
environment.input.dialect = EShClientNone;
+ environment.input.vulkanRulesRelaxed = false;
environment.client.client = EShClientNone;
environment.target.language = EShTargetNone;
environment.target.hlslFunctionality1 = false;
@@ -1810,6 +1821,11 @@ void TShader::addProcesses(const std::vector<std::string>& p)
intermediate->addProcesses(p);
}
+void TShader::setUniqueId(unsigned long long id)
+{
+ intermediate->setUniqueId(id);
+}
+
void TShader::setInvertY(bool invert) { intermediate->setInvertY(invert); }
void TShader::setNanMinMaxClamp(bool useNonNan) { intermediate->setNanMinMaxClamp(useNonNan); }
@@ -1858,6 +1874,15 @@ void TShader::setResourceSetBinding(const std::vector<std::string>& base) { in
void TShader::setTextureSamplerTransformMode(EShTextureSamplerTransformMode mode) { intermediate->setTextureSamplerTransformMode(mode); }
#endif
+void TShader::addBlockStorageOverride(const char* nameStr, TBlockStorageClass backing) { intermediate->addBlockStorageOverride(nameStr, backing); }
+
+void TShader::setGlobalUniformBlockName(const char* name) { intermediate->setGlobalUniformBlockName(name); }
+void TShader::setGlobalUniformSet(unsigned int set) { intermediate->setGlobalUniformSet(set); }
+void TShader::setGlobalUniformBinding(unsigned int binding) { intermediate->setGlobalUniformBinding(binding); }
+
+void TShader::setAtomicCounterBlockName(const char* name) { intermediate->setAtomicCounterBlockName(name); }
+void TShader::setAtomicCounterBlockSet(unsigned int set) { intermediate->setAtomicCounterBlockSet(set); }
+
#ifdef ENABLE_HLSL
// See comment above TDefaultHlslIoMapper in iomapper.cpp:
void TShader::setHlslIoMapping(bool hlslIoMap) { intermediate->setHlslIoMapping(hlslIoMap); }
@@ -1909,7 +1934,8 @@ bool TShader::preprocess(const TBuiltInResource* builtInResources,
return PreprocessDeferred(compiler, strings, numStrings, lengths, stringNames, preamble,
EShOptNone, builtInResources, defaultVersion,
defaultProfile, forceDefaultVersionAndProfile,
- forwardCompatible, message, includer, *intermediate, output_string);
+ forwardCompatible, message, includer, *intermediate, output_string,
+ &environment);
}
#endif
@@ -1972,7 +1998,10 @@ bool TProgram::link(EShMessages messages)
error = true;
}
- // TODO: Link: cross-stage error checking
+ if (!error) {
+ if (! crossStageCheck(messages))
+ error = true;
+ }
return ! error;
}
@@ -2049,6 +2078,69 @@ bool TProgram::linkStage(EShLanguage stage, EShMessages messages)
return intermediate[stage]->getNumErrors() == 0;
}
+//
+// Check that there are no errors in linker objects accross stages
+//
+// Return true if no errors.
+//
+bool TProgram::crossStageCheck(EShMessages) {
+
+ // make temporary intermediates to hold the linkage symbols for each linking interface
+ // while we do the checks
+ // Independent interfaces are:
+ // all uniform variables and blocks
+ // all buffer blocks
+ // all in/out on a stage boundary
+
+ TVector<TIntermediate*> activeStages;
+ for (int s = 0; s < EShLangCount; ++s) {
+ if (intermediate[s])
+ activeStages.push_back(intermediate[s]);
+ }
+
+ // no extra linking if there is only one stage
+ if (! (activeStages.size() > 1))
+ return true;
+
+ // setup temporary tree to hold unfirom objects from different stages
+ TIntermediate* firstIntermediate = activeStages.front();
+ TIntermediate uniforms(EShLangCount,
+ firstIntermediate->getVersion(),
+ firstIntermediate->getProfile());
+ uniforms.setSpv(firstIntermediate->getSpv());
+
+ TIntermAggregate uniformObjects(EOpLinkerObjects);
+ TIntermAggregate root(EOpSequence);
+ root.getSequence().push_back(&uniformObjects);
+ uniforms.setTreeRoot(&root);
+
+ bool error = false;
+
+ // merge uniforms from all stages into a single intermediate
+ for (unsigned int i = 0; i < activeStages.size(); ++i) {
+ uniforms.mergeUniformObjects(*infoSink, *activeStages[i]);
+ }
+ error |= uniforms.getNumErrors() != 0;
+
+ // copy final definition of global block back into each stage
+ for (unsigned int i = 0; i < activeStages.size(); ++i) {
+ // We only want to merge into already existing global uniform blocks.
+ // A stage that doesn't already know about the global doesn't care about it's content.
+ // Otherwise we end up pointing to the same object between different stages
+ // and that will break binding/set remappings
+ bool mergeExistingOnly = true;
+ activeStages[i]->mergeGlobalUniformBlocks(*infoSink, uniforms, mergeExistingOnly);
+ }
+
+ // compare cross stage symbols for each stage boundary
+ for (unsigned int i = 1; i < activeStages.size(); ++i) {
+ activeStages[i - 1]->checkStageIO(*infoSink, *activeStages[i]);
+ error |= (activeStages[i - 1]->getNumErrors() != 0);
+ }
+
+ return !error;
+}
+
const char* TProgram::getInfoLog()
{
return infoSink->info.c_str();
diff --git a/thirdparty/glslang/glslang/MachineIndependent/SpirvIntrinsics.cpp b/thirdparty/glslang/glslang/MachineIndependent/SpirvIntrinsics.cpp
new file mode 100644
index 0000000000..38094eaaf7
--- /dev/null
+++ b/thirdparty/glslang/glslang/MachineIndependent/SpirvIntrinsics.cpp
@@ -0,0 +1,355 @@
+//
+// Copyright(C) 2021 Advanced Micro Devices, Inc.
+//
+// All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions
+// are met:
+//
+// Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+//
+// Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following
+// disclaimer in the documentation and/or other materials provided
+// with the distribution.
+//
+// Neither the name of 3Dlabs Inc. Ltd. nor the names of its
+// contributors may be used to endorse or promote products derived
+// from this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
+// COPYRIGHT HOLDERS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
+// INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
+// BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+// LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
+// CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
+// ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+// POSSIBILITY OF SUCH DAMAGE.
+//
+
+#ifndef GLSLANG_WEB
+
+//
+// GL_EXT_spirv_intrinsics
+//
+#include "../Include/intermediate.h"
+#include "../Include/SpirvIntrinsics.h"
+#include "../Include/Types.h"
+#include "ParseHelper.h"
+
+namespace glslang {
+
+//
+// Handle SPIR-V requirements
+//
+TSpirvRequirement* TParseContext::makeSpirvRequirement(const TSourceLoc& loc, const TString& name,
+ const TIntermAggregate* extensions,
+ const TIntermAggregate* capabilities)
+{
+ TSpirvRequirement* spirvReq = new TSpirvRequirement;
+
+ if (name == "extensions") {
+ assert(extensions);
+ for (auto extension : extensions->getSequence()) {
+ assert(extension->getAsConstantUnion());
+ spirvReq->extensions.insert(*extension->getAsConstantUnion()->getConstArray()[0].getSConst());
+ }
+ } else if (name == "capabilities") {
+ assert(capabilities);
+ for (auto capability : capabilities->getSequence()) {
+ assert(capability->getAsConstantUnion());
+ spirvReq->capabilities.insert(capability->getAsConstantUnion()->getConstArray()[0].getIConst());
+ }
+ } else
+ error(loc, "unknow SPIR-V requirement", name.c_str(), "");
+
+ return spirvReq;
+}
+
+TSpirvRequirement* TParseContext::mergeSpirvRequirements(const TSourceLoc& loc, TSpirvRequirement* spirvReq1,
+ TSpirvRequirement* spirvReq2)
+{
+ // Merge the second SPIR-V requirement to the first one
+ if (!spirvReq2->extensions.empty()) {
+ if (spirvReq1->extensions.empty())
+ spirvReq1->extensions = spirvReq2->extensions;
+ else
+ error(loc, "too many SPIR-V requirements", "extensions", "");
+ }
+
+ if (!spirvReq2->capabilities.empty()) {
+ if (spirvReq1->capabilities.empty())
+ spirvReq1->capabilities = spirvReq2->capabilities;
+ else
+ error(loc, "too many SPIR-V requirements", "capabilities", "");
+ }
+
+ return spirvReq1;
+}
+
+void TIntermediate::insertSpirvRequirement(const TSpirvRequirement* spirvReq)
+{
+ if (!spirvRequirement)
+ spirvRequirement = new TSpirvRequirement;
+
+ for (auto extension : spirvReq->extensions)
+ spirvRequirement->extensions.insert(extension);
+
+ for (auto capability : spirvReq->capabilities)
+ spirvRequirement->capabilities.insert(capability);
+}
+
+//
+// Handle SPIR-V execution modes
+//
+void TIntermediate::insertSpirvExecutionMode(int executionMode, const TIntermAggregate* args)
+{
+ if (!spirvExecutionMode)
+ spirvExecutionMode = new TSpirvExecutionMode;
+
+ TVector<const TIntermConstantUnion*> extraOperands;
+ if (args) {
+ for (auto arg : args->getSequence()) {
+ auto extraOperand = arg->getAsConstantUnion();
+ assert(extraOperand != nullptr);
+ extraOperands.push_back(extraOperand);
+ }
+ }
+ spirvExecutionMode->modes[executionMode] = extraOperands;
+}
+
+void TIntermediate::insertSpirvExecutionModeId(int executionMode, const TIntermAggregate* args)
+{
+ if (!spirvExecutionMode)
+ spirvExecutionMode = new TSpirvExecutionMode;
+
+ assert(args);
+ TVector<const TIntermConstantUnion*> extraOperands;
+
+ for (auto arg : args->getSequence()) {
+ auto extraOperand = arg->getAsConstantUnion();
+ assert(extraOperand != nullptr);
+ extraOperands.push_back(extraOperand);
+ }
+ spirvExecutionMode->modeIds[executionMode] = extraOperands;
+}
+
+//
+// Handle SPIR-V decorate qualifiers
+//
+void TQualifier::setSpirvDecorate(int decoration, const TIntermAggregate* args)
+{
+ if (!spirvDecorate)
+ spirvDecorate = new TSpirvDecorate;
+
+ TVector<const TIntermConstantUnion*> extraOperands;
+ if (args) {
+ for (auto arg : args->getSequence()) {
+ auto extraOperand = arg->getAsConstantUnion();
+ assert(extraOperand != nullptr);
+ extraOperands.push_back(extraOperand);
+ }
+ }
+ spirvDecorate->decorates[decoration] = extraOperands;
+}
+
+void TQualifier::setSpirvDecorateId(int decoration, const TIntermAggregate* args)
+{
+ if (!spirvDecorate)
+ spirvDecorate = new TSpirvDecorate;
+
+ assert(args);
+ TVector<const TIntermConstantUnion*> extraOperands;
+ for (auto arg : args->getSequence()) {
+ auto extraOperand = arg->getAsConstantUnion();
+ assert(extraOperand != nullptr);
+ extraOperands.push_back(extraOperand);
+ }
+ spirvDecorate->decorateIds[decoration] = extraOperands;
+}
+
+void TQualifier::setSpirvDecorateString(int decoration, const TIntermAggregate* args)
+{
+ if (!spirvDecorate)
+ spirvDecorate = new TSpirvDecorate;
+
+ assert(args);
+ TVector<const TIntermConstantUnion*> extraOperands;
+ for (auto arg : args->getSequence()) {
+ auto extraOperand = arg->getAsConstantUnion();
+ assert(extraOperand != nullptr);
+ extraOperands.push_back(extraOperand);
+ }
+ spirvDecorate->decorateStrings[decoration] = extraOperands;
+}
+
+TString TQualifier::getSpirvDecorateQualifierString() const
+{
+ assert(spirvDecorate);
+
+ TString qualifierString;
+
+ const auto appendFloat = [&](float f) { qualifierString.append(std::to_string(f).c_str()); };
+ const auto appendInt = [&](int i) { qualifierString.append(std::to_string(i).c_str()); };
+ const auto appendUint = [&](unsigned int u) { qualifierString.append(std::to_string(u).c_str()); };
+ const auto appendBool = [&](bool b) { qualifierString.append(std::to_string(b).c_str()); };
+ const auto appendStr = [&](const char* s) { qualifierString.append(s); };
+
+ const auto appendDecorate = [&](const TIntermConstantUnion* constant) {
+ if (constant->getBasicType() == EbtFloat) {
+ float value = static_cast<float>(constant->getConstArray()[0].getDConst());
+ appendFloat(value);
+ }
+ else if (constant->getBasicType() == EbtInt) {
+ int value = constant->getConstArray()[0].getIConst();
+ appendInt(value);
+ }
+ else if (constant->getBasicType() == EbtUint) {
+ unsigned value = constant->getConstArray()[0].getUConst();
+ appendUint(value);
+ }
+ else if (constant->getBasicType() == EbtBool) {
+ bool value = constant->getConstArray()[0].getBConst();
+ appendBool(value);
+ }
+ else if (constant->getBasicType() == EbtString) {
+ const TString* value = constant->getConstArray()[0].getSConst();
+ appendStr(value->c_str());
+ }
+ else
+ assert(0);
+ };
+
+ for (auto& decorate : spirvDecorate->decorates) {
+ appendStr("spirv_decorate(");
+ appendInt(decorate.first);
+ for (auto extraOperand : decorate.second) {
+ appendStr(", ");
+ appendDecorate(extraOperand);
+ }
+ appendStr(") ");
+ }
+
+ for (auto& decorateId : spirvDecorate->decorateIds) {
+ appendStr("spirv_decorate_id(");
+ appendInt(decorateId.first);
+ for (auto extraOperand : decorateId.second) {
+ appendStr(", ");
+ appendDecorate(extraOperand);
+ }
+ appendStr(") ");
+ }
+
+ for (auto& decorateString : spirvDecorate->decorateStrings) {
+ appendStr("spirv_decorate_string(");
+ appendInt(decorateString.first);
+ for (auto extraOperand : decorateString.second) {
+ appendStr(", ");
+ appendDecorate(extraOperand);
+ }
+ appendStr(") ");
+ }
+
+ return qualifierString;
+}
+
+//
+// Handle SPIR-V type specifiers
+//
+void TPublicType::setSpirvType(const TSpirvInstruction& spirvInst, const TSpirvTypeParameters* typeParams)
+{
+ if (!spirvType)
+ spirvType = new TSpirvType;
+
+ basicType = EbtSpirvType;
+ spirvType->spirvInst = spirvInst;
+ if (typeParams)
+ spirvType->typeParams = *typeParams;
+}
+
+TSpirvTypeParameters* TParseContext::makeSpirvTypeParameters(const TSourceLoc& loc, const TIntermConstantUnion* constant)
+{
+ TSpirvTypeParameters* spirvTypeParams = new TSpirvTypeParameters;
+ if (constant->getBasicType() != EbtFloat &&
+ constant->getBasicType() != EbtInt &&
+ constant->getBasicType() != EbtUint &&
+ constant->getBasicType() != EbtBool &&
+ constant->getBasicType() != EbtString)
+ error(loc, "this type not allowed", constant->getType().getBasicString(), "");
+ else {
+ assert(constant);
+ spirvTypeParams->push_back(TSpirvTypeParameter(constant));
+ }
+
+ return spirvTypeParams;
+}
+
+TSpirvTypeParameters* TParseContext::makeSpirvTypeParameters(const TPublicType& type)
+{
+ TSpirvTypeParameters* spirvTypeParams = new TSpirvTypeParameters;
+ spirvTypeParams->push_back(TSpirvTypeParameter(new TType(type)));
+ return spirvTypeParams;
+}
+
+TSpirvTypeParameters* TParseContext::mergeSpirvTypeParameters(TSpirvTypeParameters* spirvTypeParams1, TSpirvTypeParameters* spirvTypeParams2)
+{
+ // Merge SPIR-V type parameters of the second one to the first one
+ for (const auto& spirvTypeParam : *spirvTypeParams2)
+ spirvTypeParams1->push_back(spirvTypeParam);
+ return spirvTypeParams1;
+}
+
+//
+// Handle SPIR-V instruction qualifiers
+//
+TSpirvInstruction* TParseContext::makeSpirvInstruction(const TSourceLoc& loc, const TString& name, const TString& value)
+{
+ TSpirvInstruction* spirvInst = new TSpirvInstruction;
+ if (name == "set")
+ spirvInst->set = value;
+ else
+ error(loc, "unknown SPIR-V instruction qualifier", name.c_str(), "");
+
+ return spirvInst;
+}
+
+TSpirvInstruction* TParseContext::makeSpirvInstruction(const TSourceLoc& loc, const TString& name, int value)
+{
+ TSpirvInstruction* spirvInstuction = new TSpirvInstruction;
+ if (name == "id")
+ spirvInstuction->id = value;
+ else
+ error(loc, "unknown SPIR-V instruction qualifier", name.c_str(), "");
+
+ return spirvInstuction;
+}
+
+TSpirvInstruction* TParseContext::mergeSpirvInstruction(const TSourceLoc& loc, TSpirvInstruction* spirvInst1, TSpirvInstruction* spirvInst2)
+{
+ // Merge qualifiers of the second SPIR-V instruction to those of the first one
+ if (!spirvInst2->set.empty()) {
+ if (spirvInst1->set.empty())
+ spirvInst1->set = spirvInst2->set;
+ else
+ error(loc, "too many SPIR-V instruction qualifiers", "spirv_instruction", "(set)");
+ }
+
+ if (spirvInst2->id != -1) {
+ if (spirvInst1->id == -1)
+ spirvInst1->id = spirvInst2->id;
+ else
+ error(loc, "too many SPIR-V instruction qualifiers", "spirv_instruction", "(id)");
+ }
+
+ return spirvInst1;
+}
+
+} // end namespace glslang
+
+#endif // GLSLANG_WEB
diff --git a/thirdparty/glslang/glslang/MachineIndependent/SymbolTable.cpp b/thirdparty/glslang/glslang/MachineIndependent/SymbolTable.cpp
index f6291c397d..747b43666d 100644
--- a/thirdparty/glslang/glslang/MachineIndependent/SymbolTable.cpp
+++ b/thirdparty/glslang/glslang/MachineIndependent/SymbolTable.cpp
@@ -77,6 +77,7 @@ void TType::buildMangledName(TString& mangledName) const
case EbtAtomicUint: mangledName += "au"; break;
case EbtAccStruct: mangledName += "as"; break;
case EbtRayQuery: mangledName += "rq"; break;
+ case EbtSpirvType: mangledName += "spv-t"; break;
#endif
case EbtSampler:
switch (sampler.type) {
@@ -170,7 +171,7 @@ void TType::buildMangledName(TString& mangledName) const
for (int i = 0; i < arraySizes->getNumDims(); ++i) {
if (arraySizes->getDimNode(i)) {
if (arraySizes->getDimNode(i)->getAsSymbolNode())
- snprintf(buf, maxSize, "s%d", arraySizes->getDimNode(i)->getAsSymbolNode()->getId());
+ snprintf(buf, maxSize, "s%lld", arraySizes->getDimNode(i)->getAsSymbolNode()->getId());
else
snprintf(buf, maxSize, "s%p", arraySizes->getDimNode(i));
} else
@@ -390,6 +391,9 @@ TFunction::TFunction(const TFunction& copyOf) : TSymbol(copyOf)
implicitThis = copyOf.implicitThis;
illegalImplicitThis = copyOf.illegalImplicitThis;
defaultParamCount = copyOf.defaultParamCount;
+#ifndef GLSLANG_WEB
+ spirvInst = copyOf.spirvInst;
+#endif
}
TFunction* TFunction::clone() const
diff --git a/thirdparty/glslang/glslang/MachineIndependent/SymbolTable.h b/thirdparty/glslang/glslang/MachineIndependent/SymbolTable.h
index db16c19bca..2196093073 100644
--- a/thirdparty/glslang/glslang/MachineIndependent/SymbolTable.h
+++ b/thirdparty/glslang/glslang/MachineIndependent/SymbolTable.h
@@ -104,8 +104,8 @@ public:
virtual const TAnonMember* getAsAnonMember() const { return 0; }
virtual const TType& getType() const = 0;
virtual TType& getWritableType() = 0;
- virtual void setUniqueId(int id) { uniqueId = id; }
- virtual int getUniqueId() const { return uniqueId; }
+ virtual void setUniqueId(long long id) { uniqueId = id; }
+ virtual long long getUniqueId() const { return uniqueId; }
virtual void setExtensions(int numExts, const char* const exts[])
{
assert(extensions == 0);
@@ -130,7 +130,7 @@ protected:
TSymbol& operator=(const TSymbol&);
const TString *name;
- unsigned int uniqueId; // For cross-scope comparing during code generation
+ unsigned long long uniqueId; // For cross-scope comparing during code generation
// For tracking what extensions must be present
// (don't use if correct version/profile is present).
@@ -319,6 +319,15 @@ public:
virtual TParameter& operator[](int i) { assert(writable); return parameters[i]; }
virtual const TParameter& operator[](int i) const { return parameters[i]; }
+#ifndef GLSLANG_WEB
+ virtual void setSpirvInstruction(const TSpirvInstruction& inst)
+ {
+ relateToOperator(EOpSpirvInst);
+ spirvInst = inst;
+ }
+ virtual const TSpirvInstruction& getSpirvInstruction() const { return spirvInst; }
+#endif
+
#if !defined(GLSLANG_WEB) && !defined(GLSLANG_ANGLE)
virtual void dump(TInfoSink& infoSink, bool complete = false) const override;
#endif
@@ -342,6 +351,10 @@ protected:
// This is important for a static member function that has member variables in scope,
// but is not allowed to use them, or see hidden symbols instead.
int defaultParamCount;
+
+#ifndef GLSLANG_WEB
+ TSpirvInstruction spirvInst; // SPIR-V instruction qualifiers
+#endif
};
//
@@ -612,6 +625,7 @@ public:
// 3: user-shader globals
//
protected:
+ static const uint32_t LevelFlagBitOffset = 56;
static const int globalLevel = 3;
static bool isSharedLevel(int level) { return level <= 1; } // exclude all per-compile levels
static bool isBuiltInLevel(int level) { return level <= 2; } // exclude user globals
@@ -620,10 +634,12 @@ public:
bool isEmpty() { return table.size() == 0; }
bool atBuiltInLevel() { return isBuiltInLevel(currentLevel()); }
bool atGlobalLevel() { return isGlobalLevel(currentLevel()); }
- static bool isBuiltInSymbol(int uniqueId) {
- int level = uniqueId >> LevelFlagBitOffset;
+ static bool isBuiltInSymbol(long long uniqueId) {
+ int level = static_cast<int>(uniqueId >> LevelFlagBitOffset);
return isBuiltInLevel(level);
}
+ static constexpr uint64_t uniqueIdMask = (1LL << LevelFlagBitOffset) - 1;
+ static const uint32_t MaxLevelInUniqueID = 127;
void setNoBuiltInRedeclarations() { noBuiltInRedeclarations = true; }
void setSeparateNameSpaces() { separateNameSpaces = true; }
@@ -691,6 +707,16 @@ public:
return table[currentLevel()]->amend(symbol, firstNewMember);
}
+ // Update the level info in symbol's unique ID to current level
+ void amendSymbolIdLevel(TSymbol& symbol)
+ {
+ // clamp level to avoid overflow
+ uint64_t level = (uint32_t)currentLevel() > MaxLevelInUniqueID ? MaxLevelInUniqueID : currentLevel();
+ uint64_t symbolId = symbol.getUniqueId();
+ symbolId &= uniqueIdMask;
+ symbolId |= (level << LevelFlagBitOffset);
+ symbol.setUniqueId(symbolId);
+ }
//
// To allocate an internal temporary, which will need to be uniquely
// identified by the consumer of the AST, but never need to
@@ -859,7 +885,7 @@ public:
}
}
- int getMaxSymbolId() { return uniqueId; }
+ long long getMaxSymbolId() { return uniqueId; }
#if !defined(GLSLANG_WEB) && !defined(GLSLANG_ANGLE)
void dump(TInfoSink& infoSink, bool complete = false) const;
#endif
@@ -876,19 +902,24 @@ public:
// Add current level in the high-bits of unique id
void updateUniqueIdLevelFlag() {
// clamp level to avoid overflow
- uint32_t level = currentLevel() > 7 ? 7 : currentLevel();
- uniqueId &= ((1 << LevelFlagBitOffset) - 1);
+ uint64_t level = (uint32_t)currentLevel() > MaxLevelInUniqueID ? MaxLevelInUniqueID : currentLevel();
+ uniqueId &= uniqueIdMask;
uniqueId |= (level << LevelFlagBitOffset);
}
+ void overwriteUniqueId(long long id)
+ {
+ uniqueId = id;
+ updateUniqueIdLevelFlag();
+ }
+
protected:
TSymbolTable(TSymbolTable&);
TSymbolTable& operator=(TSymbolTableLevel&);
int currentLevel() const { return static_cast<int>(table.size()) - 1; }
- static const uint32_t LevelFlagBitOffset = 28;
std::vector<TSymbolTableLevel*> table;
- int uniqueId; // for unique identification in code generation
+ long long uniqueId; // for unique identification in code generation
bool noBuiltInRedeclarations;
bool separateNameSpaces;
unsigned int adoptedLevels;
diff --git a/thirdparty/glslang/glslang/MachineIndependent/Versions.cpp b/thirdparty/glslang/glslang/MachineIndependent/Versions.cpp
index 69b8863ce6..097ee84552 100644
--- a/thirdparty/glslang/glslang/MachineIndependent/Versions.cpp
+++ b/thirdparty/glslang/glslang/MachineIndependent/Versions.cpp
@@ -165,12 +165,14 @@ void TParseVersions::initializeExtensionBehavior()
EShTargetLanguageVersion minSpvVersion;
} extensionData;
- const extensionData exts[] = { {E_GL_EXT_ray_tracing, EShTargetSpv_1_4} };
+ const extensionData exts[] = { {E_GL_EXT_ray_tracing, EShTargetSpv_1_4},
+ {E_GL_NV_ray_tracing_motion_blur, EShTargetSpv_1_4}
+ };
for (size_t ii = 0; ii < sizeof(exts) / sizeof(exts[0]); ii++) {
// Add only extensions which require > spv1.0 to save space in map
if (exts[ii].minSpvVersion > EShTargetSpv_1_0) {
- extensionMinSpv[E_GL_EXT_ray_tracing] = exts[ii].minSpvVersion;
+ extensionMinSpv[exts[ii].extensionName] = exts[ii].minSpvVersion;
}
}
@@ -198,6 +200,7 @@ void TParseVersions::initializeExtensionBehavior()
extensionBehavior[E_GL_ARB_explicit_uniform_location] = EBhDisable;
extensionBehavior[E_GL_ARB_shader_image_load_store] = EBhDisable;
extensionBehavior[E_GL_ARB_shader_atomic_counters] = EBhDisable;
+ extensionBehavior[E_GL_ARB_shader_atomic_counter_ops] = EBhDisable;
extensionBehavior[E_GL_ARB_shader_draw_parameters] = EBhDisable;
extensionBehavior[E_GL_ARB_shader_group_vote] = EBhDisable;
extensionBehavior[E_GL_ARB_derivative_control] = EBhDisable;
@@ -251,6 +254,7 @@ void TParseVersions::initializeExtensionBehavior()
extensionBehavior[E_GL_EXT_shader_16bit_storage] = EBhDisable;
extensionBehavior[E_GL_EXT_shader_8bit_storage] = EBhDisable;
+ extensionBehavior[E_GL_EXT_subgroup_uniform_control_flow] = EBhDisable;
// #line and #include
extensionBehavior[E_GL_GOOGLE_cpp_style_line_directive] = EBhDisable;
@@ -280,6 +284,7 @@ void TParseVersions::initializeExtensionBehavior()
extensionBehavior[E_GL_NV_shader_subgroup_partitioned] = EBhDisable;
extensionBehavior[E_GL_NV_shading_rate_image] = EBhDisable;
extensionBehavior[E_GL_NV_ray_tracing] = EBhDisable;
+ extensionBehavior[E_GL_NV_ray_tracing_motion_blur] = EBhDisable;
extensionBehavior[E_GL_NV_fragment_shader_barycentric] = EBhDisable;
extensionBehavior[E_GL_NV_compute_shader_derivatives] = EBhDisable;
extensionBehavior[E_GL_NV_shader_texture_footprint] = EBhDisable;
@@ -305,6 +310,7 @@ void TParseVersions::initializeExtensionBehavior()
extensionBehavior[E_GL_EXT_tessellation_point_size] = EBhDisable;
extensionBehavior[E_GL_EXT_texture_buffer] = EBhDisable;
extensionBehavior[E_GL_EXT_texture_cube_map_array] = EBhDisable;
+ extensionBehavior[E_GL_EXT_null_initializer] = EBhDisable;
// OES matching AEP
extensionBehavior[E_GL_OES_geometry_shader] = EBhDisable;
@@ -330,6 +336,8 @@ void TParseVersions::initializeExtensionBehavior()
extensionBehavior[E_GL_EXT_fragment_shading_rate] = EBhDisable;
extensionBehavior[E_GL_EXT_shader_image_int64] = EBhDisable;
extensionBehavior[E_GL_EXT_terminate_invocation] = EBhDisable;
+ extensionBehavior[E_GL_EXT_shared_memory_block] = EBhDisable;
+ extensionBehavior[E_GL_EXT_spirv_intrinsics] = EBhDisable;
// OVR extensions
extensionBehavior[E_GL_OVR_multiview] = EBhDisable;
@@ -351,6 +359,7 @@ void TParseVersions::initializeExtensionBehavior()
extensionBehavior[E_GL_EXT_shader_subgroup_extended_types_int64] = EBhDisable;
extensionBehavior[E_GL_EXT_shader_subgroup_extended_types_float16] = EBhDisable;
extensionBehavior[E_GL_EXT_shader_atomic_float] = EBhDisable;
+ extensionBehavior[E_GL_EXT_shader_atomic_float2] = EBhDisable;
}
#endif // GLSLANG_WEB
@@ -408,9 +417,13 @@ void TParseVersions::getPreamble(std::string& preamble)
"#define GL_EXT_shader_non_constant_global_initializers 1\n"
;
- if (isEsProfile() && version >= 300) {
+ if (version >= 300) {
preamble += "#define GL_NV_shader_noperspective_interpolation 1\n";
}
+ if (version >= 310) {
+ preamble += "#define GL_EXT_null_initializer 1\n";
+ preamble += "#define GL_EXT_subgroup_uniform_control_flow 1\n";
+ }
} else { // !isEsProfile()
preamble =
@@ -468,6 +481,7 @@ void TParseVersions::getPreamble(std::string& preamble)
"#define GL_EXT_demote_to_helper_invocation 1\n"
"#define GL_EXT_debug_printf 1\n"
"#define GL_EXT_fragment_shading_rate 1\n"
+ "#define GL_EXT_shared_memory_block 1\n"
// GL_KHR_shader_subgroup
"#define GL_KHR_shader_subgroup_basic 1\n"
@@ -485,6 +499,7 @@ void TParseVersions::getPreamble(std::string& preamble)
"#define GL_EXT_ray_tracing 1\n"
"#define GL_EXT_ray_query 1\n"
"#define GL_EXT_ray_flags_primitive_culling 1\n"
+ "#define GL_EXT_spirv_intrinsics 1\n"
"#define GL_AMD_shader_ballot 1\n"
"#define GL_AMD_shader_trinary_minmax 1\n"
@@ -507,6 +522,7 @@ void TParseVersions::getPreamble(std::string& preamble)
"#define GL_NV_shader_subgroup_partitioned 1\n"
"#define GL_NV_shading_rate_image 1\n"
"#define GL_NV_ray_tracing 1\n"
+ "#define GL_NV_ray_tracing_motion_blur 1\n"
"#define GL_NV_fragment_shader_barycentric 1\n"
"#define GL_NV_compute_shader_derivatives 1\n"
"#define GL_NV_shader_texture_footprint 1\n"
@@ -529,6 +545,7 @@ void TParseVersions::getPreamble(std::string& preamble)
"#define GL_EXT_shader_subgroup_extended_types_float16 1\n"
"#define GL_EXT_shader_atomic_float 1\n"
+ "#define GL_EXT_shader_atomic_float2 1\n"
;
if (version >= 150) {
@@ -538,6 +555,10 @@ void TParseVersions::getPreamble(std::string& preamble)
if (profile == ECompatibilityProfile)
preamble += "#define GL_compatibility_profile 1\n";
}
+ if (version >= 140) {
+ preamble += "#define GL_EXT_null_initializer 1\n";
+ preamble += "#define GL_EXT_subgroup_uniform_control_flow 1\n";
+ }
#endif // GLSLANG_WEB
}
@@ -590,6 +611,29 @@ void TParseVersions::getPreamble(std::string& preamble)
preamble += "\n";
}
#endif
+
+#ifndef GLSLANG_WEB
+ // GL_EXT_spirv_intrinsics
+ if (!isEsProfile()) {
+ switch (language) {
+ case EShLangVertex: preamble += "#define GL_VERTEX_SHADER 1 \n"; break;
+ case EShLangTessControl: preamble += "#define GL_TESSELLATION_CONTROL_SHADER 1 \n"; break;
+ case EShLangTessEvaluation: preamble += "#define GL_TESSELLATION_EVALUATION_SHADER 1 \n"; break;
+ case EShLangGeometry: preamble += "#define GL_GEOMETRY_SHADER 1 \n"; break;
+ case EShLangFragment: preamble += "#define GL_FRAGMENT_SHADER 1 \n"; break;
+ case EShLangCompute: preamble += "#define GL_COMPUTE_SHADER 1 \n"; break;
+ case EShLangRayGen: preamble += "#define GL_RAY_GENERATION_SHADER_EXT 1 \n"; break;
+ case EShLangIntersect: preamble += "#define GL_INTERSECTION_SHADER_EXT 1 \n"; break;
+ case EShLangAnyHit: preamble += "#define GL_ANY_HIT_SHADER_EXT 1 \n"; break;
+ case EShLangClosestHit: preamble += "#define GL_CLOSEST_HIT_SHADER_EXT 1 \n"; break;
+ case EShLangMiss: preamble += "#define GL_MISS_SHADER_EXT 1 \n"; break;
+ case EShLangCallable: preamble += "#define GL_CALLABLE_SHADER_EXT 1 \n"; break;
+ case EShLangTaskNV: preamble += "#define GL_TASK_SHADER_NV 1 \n"; break;
+ case EShLangMeshNV: preamble += "#define GL_MESH_SHADER_NV 1 \n"; break;
+ default: break;
+ }
+ }
+#endif
}
//
@@ -866,7 +910,7 @@ void TParseVersions::updateExtensionBehavior(int line, const char* extension, co
checkExtensionStage(getCurrentLoc(), extension);
// check if extension has additional requirements
- extensionRequires(getCurrentLoc(), extension ,behaviorString);
+ extensionRequires(getCurrentLoc(), extension, behaviorString);
// update the requested extension
updateExtensionBehavior(extension, behavior);
@@ -1264,7 +1308,7 @@ void TParseVersions::spvRemoved(const TSourceLoc& loc, const char* op)
// Call for any operation removed because Vulkan SPIR-V is being generated.
void TParseVersions::vulkanRemoved(const TSourceLoc& loc, const char* op)
{
- if (spvVersion.vulkan > 0)
+ if (spvVersion.vulkan > 0 && !spvVersion.vulkanRelaxed)
error(loc, "not allowed when using GLSL for Vulkan", op, "");
}
diff --git a/thirdparty/glslang/glslang/MachineIndependent/Versions.h b/thirdparty/glslang/glslang/MachineIndependent/Versions.h
index eb17c52e05..949a7a1739 100644
--- a/thirdparty/glslang/glslang/MachineIndependent/Versions.h
+++ b/thirdparty/glslang/glslang/MachineIndependent/Versions.h
@@ -87,11 +87,12 @@ inline const char* ProfileName(EProfile profile)
// The union of all requested rule sets will be applied.
//
struct SpvVersion {
- SpvVersion() : spv(0), vulkanGlsl(0), vulkan(0), openGl(0) {}
+ SpvVersion() : spv(0), vulkanGlsl(0), vulkan(0), openGl(0), vulkanRelaxed(false) {}
unsigned int spv; // the version of SPIR-V to target, as defined by "word 1" of the SPIR-V binary header
int vulkanGlsl; // the version of GLSL semantics for Vulkan, from GL_KHR_vulkan_glsl, for "#define VULKAN XXX"
int vulkan; // the version of Vulkan, for which SPIR-V execution environment rules to use
int openGl; // the version of GLSL semantics for OpenGL, from GL_ARB_gl_spirv, for "#define GL_SPIRV XXX"
+ bool vulkanRelaxed; // relax changes to GLSL for Vulkan, allowing some GL-specific to be compiled to Vulkan SPIR-V target
};
//
@@ -135,6 +136,7 @@ const char* const E_GL_ARB_explicit_attrib_location = "GL_ARB_explicit_attri
const char* const E_GL_ARB_explicit_uniform_location = "GL_ARB_explicit_uniform_location";
const char* const E_GL_ARB_shader_image_load_store = "GL_ARB_shader_image_load_store";
const char* const E_GL_ARB_shader_atomic_counters = "GL_ARB_shader_atomic_counters";
+const char* const E_GL_ARB_shader_atomic_counter_ops = "GL_ARB_shader_atomic_counter_ops";
const char* const E_GL_ARB_shader_draw_parameters = "GL_ARB_shader_draw_parameters";
const char* const E_GL_ARB_shader_group_vote = "GL_ARB_shader_group_vote";
const char* const E_GL_ARB_derivative_control = "GL_ARB_derivative_control";
@@ -201,6 +203,10 @@ const char* const E_GL_EXT_blend_func_extended = "GL_EXT_blend_func
const char* const E_GL_EXT_shader_implicit_conversions = "GL_EXT_shader_implicit_conversions";
const char* const E_GL_EXT_fragment_shading_rate = "GL_EXT_fragment_shading_rate";
const char* const E_GL_EXT_shader_image_int64 = "GL_EXT_shader_image_int64";
+const char* const E_GL_EXT_null_initializer = "GL_EXT_null_initializer";
+const char* const E_GL_EXT_shared_memory_block = "GL_EXT_shared_memory_block";
+const char* const E_GL_EXT_subgroup_uniform_control_flow = "GL_EXT_subgroup_uniform_control_flow";
+const char* const E_GL_EXT_spirv_intrinsics = "GL_EXT_spirv_intrinsics";
// Arrays of extensions for the above viewportEXTs duplications
@@ -242,6 +248,7 @@ const char* const E_GL_NV_shader_noperspective_interpolation = "GL_NV_shader_
const char* const E_GL_NV_shader_subgroup_partitioned = "GL_NV_shader_subgroup_partitioned";
const char* const E_GL_NV_shading_rate_image = "GL_NV_shading_rate_image";
const char* const E_GL_NV_ray_tracing = "GL_NV_ray_tracing";
+const char* const E_GL_NV_ray_tracing_motion_blur = "GL_NV_ray_tracing_motion_blur";
const char* const E_GL_NV_fragment_shader_barycentric = "GL_NV_fragment_shader_barycentric";
const char* const E_GL_NV_compute_shader_derivatives = "GL_NV_compute_shader_derivatives";
const char* const E_GL_NV_shader_texture_footprint = "GL_NV_shader_texture_footprint";
@@ -302,6 +309,7 @@ const char* const E_GL_EXT_shader_subgroup_extended_types_float16 = "GL_EXT_shad
const char* const E_GL_EXT_terminate_invocation = "GL_EXT_terminate_invocation";
const char* const E_GL_EXT_shader_atomic_float = "GL_EXT_shader_atomic_float";
+const char* const E_GL_EXT_shader_atomic_float2 = "GL_EXT_shader_atomic_float2";
// Arrays of extensions for the above AEP duplications
diff --git a/thirdparty/glslang/glslang/MachineIndependent/attribute.cpp b/thirdparty/glslang/glslang/MachineIndependent/attribute.cpp
index 9585518349..8a92f6ae09 100644
--- a/thirdparty/glslang/glslang/MachineIndependent/attribute.cpp
+++ b/thirdparty/glslang/glslang/MachineIndependent/attribute.cpp
@@ -123,6 +123,8 @@ TAttributeType TParseContext::attributeFromName(const TString& name) const
return EatPeelCount;
else if (name == "partial_count")
return EatPartialCount;
+ else if (name == "subgroup_uniform_control_flow")
+ return EatSubgroupUniformControlFlow;
else
return EatNone;
}
@@ -341,6 +343,29 @@ void TParseContext::handleLoopAttributes(const TAttributes& attributes, TIntermN
}
}
+
+//
+// Function attributes
+//
+void TParseContext::handleFunctionAttributes(const TSourceLoc& loc, const TAttributes& attributes, TFunction* function)
+{
+ for (auto it = attributes.begin(); it != attributes.end(); ++it) {
+ if (it->size() > 0) {
+ warn(loc, "attribute with arguments not recognized, skipping", "", "");
+ continue;
+ }
+
+ switch (it->name) {
+ case EatSubgroupUniformControlFlow:
+ intermediate.setSubgroupUniformControlFlow();
+ break;
+ default:
+ warn(loc, "attribute does not apply to a function", "", "");
+ break;
+ }
+ }
+}
+
} // end namespace glslang
#endif // GLSLANG_WEB
diff --git a/thirdparty/glslang/glslang/MachineIndependent/attribute.h b/thirdparty/glslang/glslang/MachineIndependent/attribute.h
index 38a943d283..c5b29176c4 100644
--- a/thirdparty/glslang/glslang/MachineIndependent/attribute.h
+++ b/thirdparty/glslang/glslang/MachineIndependent/attribute.h
@@ -118,7 +118,8 @@ namespace glslang {
EatFormatR8ui,
EatFormatUnknown,
EatNonWritable,
- EatNonReadable
+ EatNonReadable,
+ EatSubgroupUniformControlFlow,
};
class TIntermAggregate;
diff --git a/thirdparty/glslang/glslang/MachineIndependent/gl_types.h b/thirdparty/glslang/glslang/MachineIndependent/gl_types.h
index b9372d4bbb..d6c939374a 100644
--- a/thirdparty/glslang/glslang/MachineIndependent/gl_types.h
+++ b/thirdparty/glslang/glslang/MachineIndependent/gl_types.h
@@ -49,9 +49,9 @@
#define GL_INT64_VEC4_ARB 0x8FEB
#define GL_UNSIGNED_INT64_ARB 0x140F
-#define GL_UNSIGNED_INT64_VEC2_ARB 0x8FE5
-#define GL_UNSIGNED_INT64_VEC3_ARB 0x8FE6
-#define GL_UNSIGNED_INT64_VEC4_ARB 0x8FE7
+#define GL_UNSIGNED_INT64_VEC2_ARB 0x8FF5
+#define GL_UNSIGNED_INT64_VEC3_ARB 0x8FF6
+#define GL_UNSIGNED_INT64_VEC4_ARB 0x8FF7
#define GL_UNSIGNED_INT16_VEC2_NV 0x8FF1
#define GL_UNSIGNED_INT16_VEC3_NV 0x8FF2
#define GL_UNSIGNED_INT16_VEC4_NV 0x8FF3
diff --git a/thirdparty/glslang/glslang/MachineIndependent/glslang.y b/thirdparty/glslang/glslang/MachineIndependent/glslang.y
index 2681d48f79..b77f4617be 100644
--- a/thirdparty/glslang/glslang/MachineIndependent/glslang.y
+++ b/thirdparty/glslang/glslang/MachineIndependent/glslang.y
@@ -116,6 +116,9 @@ using namespace glslang;
glslang::TIntermNodePair nodePair;
glslang::TIntermTyped* intermTypedNode;
glslang::TAttributes* attributes;
+ glslang::TSpirvRequirement* spirvReq;
+ glslang::TSpirvInstruction* spirvInst;
+ glslang::TSpirvTypeParameters* spirvTypeParams;
};
union {
glslang::TPublicType type;
@@ -271,6 +274,11 @@ extern int yylex(YYSTYPE*, TParseContext&);
%token <lex> SUBPASSINPUT SUBPASSINPUTMS ISUBPASSINPUT ISUBPASSINPUTMS USUBPASSINPUT USUBPASSINPUTMS
%token <lex> F16SUBPASSINPUT F16SUBPASSINPUTMS
+// spirv intrinsics
+%token <lex> SPIRV_INSTRUCTION SPIRV_EXECUTION_MODE SPIRV_EXECUTION_MODE_ID
+%token <lex> SPIRV_DECORATE SPIRV_DECORATE_ID SPIRV_DECORATE_STRING
+%token <lex> SPIRV_TYPE SPIRV_STORAGE_CLASS SPIRV_BY_REFERENCE SPIRV_LITERAL
+
%token <lex> LEFT_OP RIGHT_OP
@@ -362,6 +370,19 @@ extern int yylex(YYSTYPE*, TParseContext&);
%type <interm.attributes> attribute attribute_list single_attribute
%type <interm.intermNode> demote_statement
%type <interm.intermTypedNode> initializer_list
+%type <interm.spirvReq> spirv_requirements_list spirv_requirements_parameter
+%type <interm.intermNode> spirv_extension_list spirv_capability_list
+%type <interm.intermNode> spirv_execution_mode_qualifier
+%type <interm.intermNode> spirv_execution_mode_parameter_list spirv_execution_mode_parameter spirv_execution_mode_id_parameter_list
+%type <interm.type> spirv_storage_class_qualifier
+%type <interm.type> spirv_decorate_qualifier
+%type <interm.intermNode> spirv_decorate_parameter_list spirv_decorate_parameter
+%type <interm.intermNode> spirv_decorate_id_parameter_list
+%type <interm.intermNode> spirv_decorate_string_parameter_list
+%type <interm.type> spirv_type_specifier
+%type <interm.spirvTypeParams> spirv_type_parameter_list spirv_type_parameter
+%type <interm.spirvInst> spirv_instruction_qualifier
+%type <interm.spirvInst> spirv_instruction_qualifier_list spirv_instruction_qualifier_id
%start translation_unit
@@ -875,6 +896,20 @@ declaration
$$ = 0;
// TODO: 4.0 functionality: subroutines: make the identifier a user type for this signature
}
+
+ | spirv_instruction_qualifier function_prototype SEMICOLON {
+ parseContext.requireExtensions($2.loc, 1, &E_GL_EXT_spirv_intrinsics, "SPIR-V instruction qualifier");
+ $2.function->setSpirvInstruction(*$1); // Attach SPIR-V intruction qualifier
+ parseContext.handleFunctionDeclarator($2.loc, *$2.function, true /* prototype */);
+ $$ = 0;
+ // TODO: 4.0 functionality: subroutines: make the identifier a user type for this signature
+ }
+ | spirv_execution_mode_qualifier SEMICOLON {
+ parseContext.globalCheck($2.loc, "SPIR-V execution mode qualifier");
+ parseContext.requireExtensions($2.loc, 1, &E_GL_EXT_spirv_intrinsics, "SPIR-V execution mode qualifier");
+ $$ = 0;
+ }
+
| init_declarator_list SEMICOLON {
if ($1.intermNode && $1.intermNode->getAsAggregate())
$1.intermNode->getAsAggregate()->setOperator(EOpSequence);
@@ -944,6 +979,25 @@ function_prototype
$$.function = $1;
$$.loc = $2.loc;
}
+ | function_declarator RIGHT_PAREN attribute {
+ $$.function = $1;
+ $$.loc = $2.loc;
+ parseContext.requireExtensions($2.loc, 1, &E_GL_EXT_subgroup_uniform_control_flow, "attribute");
+ parseContext.handleFunctionAttributes($2.loc, *$3, $$.function);
+ }
+ | attribute function_declarator RIGHT_PAREN {
+ $$.function = $2;
+ $$.loc = $3.loc;
+ parseContext.requireExtensions($3.loc, 1, &E_GL_EXT_subgroup_uniform_control_flow, "attribute");
+ parseContext.handleFunctionAttributes($3.loc, *$1, $$.function);
+ }
+ | attribute function_declarator RIGHT_PAREN attribute {
+ $$.function = $2;
+ $$.loc = $3.loc;
+ parseContext.requireExtensions($3.loc, 1, &E_GL_EXT_subgroup_uniform_control_flow, "attribute");
+ parseContext.handleFunctionAttributes($3.loc, *$1, $$.function);
+ parseContext.handleFunctionAttributes($3.loc, *$4, $$.function);
+ }
;
function_declarator
@@ -1347,6 +1401,25 @@ single_type_qualifier
| non_uniform_qualifier {
$$ = $1;
}
+ | spirv_storage_class_qualifier {
+ parseContext.globalCheck($1.loc, "spirv_storage_class");
+ parseContext.requireExtensions($1.loc, 1, &E_GL_EXT_spirv_intrinsics, "SPIR-V storage class qualifier");
+ $$ = $1;
+ }
+ | spirv_decorate_qualifier {
+ parseContext.requireExtensions($1.loc, 1, &E_GL_EXT_spirv_intrinsics, "SPIR-V decorate qualifier");
+ $$ = $1;
+ }
+ | SPIRV_BY_REFERENCE {
+ parseContext.requireExtensions($1.loc, 1, &E_GL_EXT_spirv_intrinsics, "spirv_by_reference");
+ $$.init($1.loc);
+ $$.qualifier.setSpirvByReference();
+ }
+ | SPIRV_LITERAL {
+ parseContext.requireExtensions($1.loc, 1, &E_GL_EXT_spirv_intrinsics, "spirv_by_literal");
+ $$.init($1.loc);
+ $$.qualifier.setSpirvLiteral();
+ }
;
@@ -3407,6 +3480,10 @@ type_specifier_nonarray
$$.basicType = EbtUint;
$$.coopmat = true;
}
+ | spirv_type_specifier {
+ parseContext.requireExtensions($1.loc, 1, &E_GL_EXT_spirv_intrinsics, "SPIR-V type specifier");
+ $$ = $1;
+ }
| struct_specifier {
$$ = $1;
@@ -3575,6 +3652,12 @@ initializer
parseContext.profileRequires($1.loc, ~EEsProfile, 420, E_GL_ARB_shading_language_420pack, initFeature);
$$ = $2;
}
+ | LEFT_BRACE RIGHT_BRACE {
+ const char* initFeature = "empty { } initializer";
+ parseContext.profileRequires($1.loc, EEsProfile, 0, E_GL_EXT_null_initializer, initFeature);
+ parseContext.profileRequires($1.loc, ~EEsProfile, 0, E_GL_EXT_null_initializer, initFeature);
+ $$ = parseContext.intermediate.makeAggregate($1.loc);
+ }
;
@@ -3707,6 +3790,7 @@ selection_statement
}
| attribute selection_statement_nonattributed {
+ parseContext.requireExtensions($2->getLoc(), 1, &E_GL_EXT_control_flow_attributes, "attribute");
parseContext.handleSelectionAttributes(*$1, $2);
$$ = $2;
}
@@ -3754,6 +3838,7 @@ switch_statement
}
| attribute switch_statement_nonattributed {
+ parseContext.requireExtensions($2->getLoc(), 1, &E_GL_EXT_control_flow_attributes, "attribute");
parseContext.handleSwitchAttributes(*$1, $2);
$$ = $2;
}
@@ -3818,6 +3903,7 @@ iteration_statement
}
| attribute iteration_statement_nonattributed {
+ parseContext.requireExtensions($2->getLoc(), 1, &E_GL_EXT_control_flow_attributes, "attribute");
parseContext.handleLoopAttributes(*$1, $2);
$$ = $2;
}
@@ -4021,7 +4107,6 @@ function_definition
attribute
: LEFT_BRACKET LEFT_BRACKET attribute_list RIGHT_BRACKET RIGHT_BRACKET {
$$ = $3;
- parseContext.requireExtensions($1.loc, 1, &E_GL_EXT_control_flow_attributes, "attribute");
}
attribute_list
@@ -4041,4 +4126,273 @@ single_attribute
}
+
+spirv_requirements_list
+ : spirv_requirements_parameter {
+ $$ = $1;
+ }
+ | spirv_requirements_list COMMA spirv_requirements_parameter {
+ $$ = parseContext.mergeSpirvRequirements($2.loc, $1, $3);
+ }
+
+spirv_requirements_parameter
+ : IDENTIFIER EQUAL LEFT_BRACKET spirv_extension_list RIGHT_BRACKET {
+ $$ = parseContext.makeSpirvRequirement($2.loc, *$1.string, $4->getAsAggregate(), nullptr);
+ }
+ | IDENTIFIER EQUAL LEFT_BRACKET spirv_capability_list RIGHT_BRACKET {
+ $$ = parseContext.makeSpirvRequirement($2.loc, *$1.string, nullptr, $4->getAsAggregate());
+ }
+
+spirv_extension_list
+ : STRING_LITERAL {
+ $$ = parseContext.intermediate.makeAggregate(parseContext.intermediate.addConstantUnion($1.string, $1.loc, true));
+ }
+ | spirv_extension_list COMMA STRING_LITERAL {
+ $$ = parseContext.intermediate.growAggregate($1, parseContext.intermediate.addConstantUnion($3.string, $3.loc, true));
+ }
+
+spirv_capability_list
+ : INTCONSTANT {
+ $$ = parseContext.intermediate.makeAggregate(parseContext.intermediate.addConstantUnion($1.i, $1.loc, true));
+ }
+ | spirv_capability_list COMMA INTCONSTANT {
+ $$ = parseContext.intermediate.growAggregate($1, parseContext.intermediate.addConstantUnion($3.i, $3.loc, true));
+ }
+
+spirv_execution_mode_qualifier
+ : SPIRV_EXECUTION_MODE LEFT_PAREN INTCONSTANT RIGHT_PAREN {
+ parseContext.intermediate.insertSpirvExecutionMode($3.i);
+ $$ = 0;
+ }
+ | SPIRV_EXECUTION_MODE LEFT_PAREN spirv_requirements_list COMMA INTCONSTANT RIGHT_PAREN {
+ parseContext.intermediate.insertSpirvRequirement($3);
+ parseContext.intermediate.insertSpirvExecutionMode($5.i);
+ $$ = 0;
+ }
+ | SPIRV_EXECUTION_MODE LEFT_PAREN INTCONSTANT COMMA spirv_execution_mode_parameter_list RIGHT_PAREN {
+ parseContext.intermediate.insertSpirvExecutionMode($3.i, $5->getAsAggregate());
+ $$ = 0;
+ }
+ | SPIRV_EXECUTION_MODE LEFT_PAREN spirv_requirements_list COMMA INTCONSTANT COMMA spirv_execution_mode_parameter_list RIGHT_PAREN {
+ parseContext.intermediate.insertSpirvRequirement($3);
+ parseContext.intermediate.insertSpirvExecutionMode($5.i, $7->getAsAggregate());
+ $$ = 0;
+ }
+ | SPIRV_EXECUTION_MODE_ID LEFT_PAREN INTCONSTANT COMMA spirv_execution_mode_id_parameter_list RIGHT_PAREN {
+ parseContext.intermediate.insertSpirvExecutionModeId($3.i, $5->getAsAggregate());
+ $$ = 0;
+ }
+ | SPIRV_EXECUTION_MODE_ID LEFT_PAREN spirv_requirements_list COMMA INTCONSTANT COMMA spirv_execution_mode_id_parameter_list RIGHT_PAREN {
+ parseContext.intermediate.insertSpirvRequirement($3);
+ parseContext.intermediate.insertSpirvExecutionModeId($5.i, $7->getAsAggregate());
+ $$ = 0;
+ }
+
+spirv_execution_mode_parameter_list
+ : spirv_execution_mode_parameter {
+ $$ = parseContext.intermediate.makeAggregate($1);
+ }
+ | spirv_execution_mode_parameter_list COMMA spirv_execution_mode_parameter {
+ $$ = parseContext.intermediate.growAggregate($1, $3);
+ }
+
+spirv_execution_mode_parameter
+ : FLOATCONSTANT {
+ $$ = parseContext.intermediate.addConstantUnion($1.d, EbtFloat, $1.loc, true);
+ }
+ | INTCONSTANT {
+ $$ = parseContext.intermediate.addConstantUnion($1.i, $1.loc, true);
+ }
+ | UINTCONSTANT {
+ $$ = parseContext.intermediate.addConstantUnion($1.u, $1.loc, true);
+ }
+ | BOOLCONSTANT {
+ $$ = parseContext.intermediate.addConstantUnion($1.b, $1.loc, true);
+ }
+ | STRING_LITERAL {
+ $$ = parseContext.intermediate.addConstantUnion($1.string, $1.loc, true);
+ }
+
+spirv_execution_mode_id_parameter_list
+ : constant_expression {
+ if ($1->getBasicType() != EbtFloat &&
+ $1->getBasicType() != EbtInt &&
+ $1->getBasicType() != EbtUint &&
+ $1->getBasicType() != EbtBool &&
+ $1->getBasicType() != EbtString)
+ parseContext.error($1->getLoc(), "this type not allowed", $1->getType().getBasicString(), "");
+ $$ = parseContext.intermediate.makeAggregate($1);
+ }
+ | spirv_execution_mode_id_parameter_list COMMA constant_expression {
+ if ($3->getBasicType() != EbtFloat &&
+ $3->getBasicType() != EbtInt &&
+ $3->getBasicType() != EbtUint &&
+ $3->getBasicType() != EbtBool &&
+ $3->getBasicType() != EbtString)
+ parseContext.error($3->getLoc(), "this type not allowed", $3->getType().getBasicString(), "");
+ $$ = parseContext.intermediate.growAggregate($1, $3);
+ }
+
+spirv_storage_class_qualifier
+ : SPIRV_STORAGE_CLASS LEFT_PAREN INTCONSTANT RIGHT_PAREN {
+ $$.init($1.loc);
+ $$.qualifier.storage = EvqSpirvStorageClass;
+ $$.qualifier.spirvStorageClass = $3.i;
+ }
+ | SPIRV_STORAGE_CLASS LEFT_PAREN spirv_requirements_list COMMA INTCONSTANT RIGHT_PAREN {
+ $$.init($1.loc);
+ parseContext.intermediate.insertSpirvRequirement($3);
+ $$.qualifier.storage = EvqSpirvStorageClass;
+ $$.qualifier.spirvStorageClass = $5.i;
+ }
+
+spirv_decorate_qualifier
+ : SPIRV_DECORATE LEFT_PAREN INTCONSTANT RIGHT_PAREN{
+ $$.init($1.loc);
+ $$.qualifier.setSpirvDecorate($3.i);
+ }
+ | SPIRV_DECORATE LEFT_PAREN spirv_requirements_list COMMA INTCONSTANT RIGHT_PAREN{
+ $$.init($1.loc);
+ parseContext.intermediate.insertSpirvRequirement($3);
+ $$.qualifier.setSpirvDecorate($5.i);
+ }
+ | SPIRV_DECORATE LEFT_PAREN INTCONSTANT COMMA spirv_decorate_parameter_list RIGHT_PAREN {
+ $$.init($1.loc);
+ $$.qualifier.setSpirvDecorate($3.i, $5->getAsAggregate());
+ }
+ | SPIRV_DECORATE LEFT_PAREN spirv_requirements_list COMMA INTCONSTANT COMMA spirv_decorate_parameter_list RIGHT_PAREN {
+ $$.init($1.loc);
+ parseContext.intermediate.insertSpirvRequirement($3);
+ $$.qualifier.setSpirvDecorate($5.i, $7->getAsAggregate());
+ }
+ | SPIRV_DECORATE_ID LEFT_PAREN INTCONSTANT COMMA spirv_decorate_id_parameter_list RIGHT_PAREN {
+ $$.init($1.loc);
+ $$.qualifier.setSpirvDecorateId($3.i, $5->getAsAggregate());
+ }
+ | SPIRV_DECORATE_ID LEFT_PAREN spirv_requirements_list COMMA INTCONSTANT COMMA spirv_decorate_id_parameter_list RIGHT_PAREN {
+ $$.init($1.loc);
+ parseContext.intermediate.insertSpirvRequirement($3);
+ $$.qualifier.setSpirvDecorateId($5.i, $7->getAsAggregate());
+ }
+ | SPIRV_DECORATE_STRING LEFT_PAREN INTCONSTANT COMMA spirv_decorate_string_parameter_list RIGHT_PAREN {
+ $$.init($1.loc);
+ $$.qualifier.setSpirvDecorateString($3.i, $5->getAsAggregate());
+ }
+ | SPIRV_DECORATE_STRING LEFT_PAREN spirv_requirements_list COMMA INTCONSTANT COMMA spirv_decorate_string_parameter_list RIGHT_PAREN {
+ $$.init($1.loc);
+ parseContext.intermediate.insertSpirvRequirement($3);
+ $$.qualifier.setSpirvDecorateString($5.i, $7->getAsAggregate());
+ }
+
+spirv_decorate_parameter_list
+ : spirv_decorate_parameter {
+ $$ = parseContext.intermediate.makeAggregate($1);
+ }
+ | spirv_decorate_parameter_list COMMA spirv_decorate_parameter {
+ $$ = parseContext.intermediate.growAggregate($1, $3);
+ }
+
+spirv_decorate_parameter
+ : FLOATCONSTANT {
+ $$ = parseContext.intermediate.addConstantUnion($1.d, EbtFloat, $1.loc, true);
+ }
+ | INTCONSTANT {
+ $$ = parseContext.intermediate.addConstantUnion($1.i, $1.loc, true);
+ }
+ | UINTCONSTANT {
+ $$ = parseContext.intermediate.addConstantUnion($1.u, $1.loc, true);
+ }
+ | BOOLCONSTANT {
+ $$ = parseContext.intermediate.addConstantUnion($1.b, $1.loc, true);
+ }
+
+spirv_decorate_id_parameter_list
+ : constant_expression {
+ if ($1->getBasicType() != EbtFloat &&
+ $1->getBasicType() != EbtInt &&
+ $1->getBasicType() != EbtUint &&
+ $1->getBasicType() != EbtBool)
+ parseContext.error($1->getLoc(), "this type not allowed", $1->getType().getBasicString(), "");
+ $$ = parseContext.intermediate.makeAggregate($1);
+ }
+ | spirv_decorate_id_parameter_list COMMA constant_expression {
+ if ($3->getBasicType() != EbtFloat &&
+ $3->getBasicType() != EbtInt &&
+ $3->getBasicType() != EbtUint &&
+ $3->getBasicType() != EbtBool)
+ parseContext.error($3->getLoc(), "this type not allowed", $3->getType().getBasicString(), "");
+ $$ = parseContext.intermediate.growAggregate($1, $3);
+ }
+
+spirv_decorate_string_parameter_list
+ : STRING_LITERAL {
+ $$ = parseContext.intermediate.makeAggregate(
+ parseContext.intermediate.addConstantUnion($1.string, $1.loc, true));
+ }
+ | spirv_decorate_string_parameter_list COMMA STRING_LITERAL {
+ $$ = parseContext.intermediate.growAggregate($1, parseContext.intermediate.addConstantUnion($3.string, $3.loc, true));
+ }
+
+spirv_type_specifier
+ : SPIRV_TYPE LEFT_PAREN spirv_instruction_qualifier_list COMMA spirv_type_parameter_list RIGHT_PAREN {
+ $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
+ $$.setSpirvType(*$3, $5);
+ }
+ | SPIRV_TYPE LEFT_PAREN spirv_requirements_list COMMA spirv_instruction_qualifier_list COMMA spirv_type_parameter_list RIGHT_PAREN {
+ $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
+ parseContext.intermediate.insertSpirvRequirement($3);
+ $$.setSpirvType(*$5, $7);
+ }
+ | SPIRV_TYPE LEFT_PAREN spirv_instruction_qualifier_list RIGHT_PAREN {
+ $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
+ $$.setSpirvType(*$3);
+ }
+ | SPIRV_TYPE LEFT_PAREN spirv_requirements_list COMMA spirv_instruction_qualifier_list RIGHT_PAREN {
+ $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
+ parseContext.intermediate.insertSpirvRequirement($3);
+ $$.setSpirvType(*$5);
+ }
+
+spirv_type_parameter_list
+ : spirv_type_parameter {
+ $$ = $1;
+ }
+ | spirv_type_parameter_list COMMA spirv_type_parameter {
+ $$ = parseContext.mergeSpirvTypeParameters($1, $3);
+ }
+
+spirv_type_parameter
+ : constant_expression {
+ $$ = parseContext.makeSpirvTypeParameters($1->getLoc(), $1->getAsConstantUnion());
+ }
+ | type_specifier {
+ $$ = parseContext.makeSpirvTypeParameters($1);
+ }
+
+spirv_instruction_qualifier
+ : SPIRV_INSTRUCTION LEFT_PAREN spirv_instruction_qualifier_list RIGHT_PAREN {
+ $$ = $3;
+ }
+ | SPIRV_INSTRUCTION LEFT_PAREN spirv_requirements_list COMMA spirv_instruction_qualifier_list RIGHT_PAREN {
+ parseContext.intermediate.insertSpirvRequirement($3);
+ $$ = $5;
+ }
+
+spirv_instruction_qualifier_list
+ : spirv_instruction_qualifier_id {
+ $$ = $1;
+ }
+ | spirv_instruction_qualifier_list COMMA spirv_instruction_qualifier_id {
+ $$ = parseContext.mergeSpirvInstruction($2.loc, $1, $3);
+ }
+
+spirv_instruction_qualifier_id
+ : IDENTIFIER EQUAL STRING_LITERAL {
+ $$ = parseContext.makeSpirvInstruction($2.loc, *$1.string, *$3.string);
+ }
+ | IDENTIFIER EQUAL INTCONSTANT {
+ $$ = parseContext.makeSpirvInstruction($2.loc, *$1.string, $3.i);
+ }
+
+
%%
diff --git a/thirdparty/glslang/glslang/MachineIndependent/glslang_tab.cpp b/thirdparty/glslang/glslang/MachineIndependent/glslang_tab.cpp
index feecc98200..dba06aefef 100644
--- a/thirdparty/glslang/glslang/MachineIndependent/glslang_tab.cpp
+++ b/thirdparty/glslang/glslang/MachineIndependent/glslang_tab.cpp
@@ -438,251 +438,281 @@ enum yysymbol_kind_t
YYSYMBOL_USUBPASSINPUTMS = 314, /* USUBPASSINPUTMS */
YYSYMBOL_F16SUBPASSINPUT = 315, /* F16SUBPASSINPUT */
YYSYMBOL_F16SUBPASSINPUTMS = 316, /* F16SUBPASSINPUTMS */
- YYSYMBOL_LEFT_OP = 317, /* LEFT_OP */
- YYSYMBOL_RIGHT_OP = 318, /* RIGHT_OP */
- YYSYMBOL_INC_OP = 319, /* INC_OP */
- YYSYMBOL_DEC_OP = 320, /* DEC_OP */
- YYSYMBOL_LE_OP = 321, /* LE_OP */
- YYSYMBOL_GE_OP = 322, /* GE_OP */
- YYSYMBOL_EQ_OP = 323, /* EQ_OP */
- YYSYMBOL_NE_OP = 324, /* NE_OP */
- YYSYMBOL_AND_OP = 325, /* AND_OP */
- YYSYMBOL_OR_OP = 326, /* OR_OP */
- YYSYMBOL_XOR_OP = 327, /* XOR_OP */
- YYSYMBOL_MUL_ASSIGN = 328, /* MUL_ASSIGN */
- YYSYMBOL_DIV_ASSIGN = 329, /* DIV_ASSIGN */
- YYSYMBOL_ADD_ASSIGN = 330, /* ADD_ASSIGN */
- YYSYMBOL_MOD_ASSIGN = 331, /* MOD_ASSIGN */
- YYSYMBOL_LEFT_ASSIGN = 332, /* LEFT_ASSIGN */
- YYSYMBOL_RIGHT_ASSIGN = 333, /* RIGHT_ASSIGN */
- YYSYMBOL_AND_ASSIGN = 334, /* AND_ASSIGN */
- YYSYMBOL_XOR_ASSIGN = 335, /* XOR_ASSIGN */
- YYSYMBOL_OR_ASSIGN = 336, /* OR_ASSIGN */
- YYSYMBOL_SUB_ASSIGN = 337, /* SUB_ASSIGN */
- YYSYMBOL_STRING_LITERAL = 338, /* STRING_LITERAL */
- YYSYMBOL_LEFT_PAREN = 339, /* LEFT_PAREN */
- YYSYMBOL_RIGHT_PAREN = 340, /* RIGHT_PAREN */
- YYSYMBOL_LEFT_BRACKET = 341, /* LEFT_BRACKET */
- YYSYMBOL_RIGHT_BRACKET = 342, /* RIGHT_BRACKET */
- YYSYMBOL_LEFT_BRACE = 343, /* LEFT_BRACE */
- YYSYMBOL_RIGHT_BRACE = 344, /* RIGHT_BRACE */
- YYSYMBOL_DOT = 345, /* DOT */
- YYSYMBOL_COMMA = 346, /* COMMA */
- YYSYMBOL_COLON = 347, /* COLON */
- YYSYMBOL_EQUAL = 348, /* EQUAL */
- YYSYMBOL_SEMICOLON = 349, /* SEMICOLON */
- YYSYMBOL_BANG = 350, /* BANG */
- YYSYMBOL_DASH = 351, /* DASH */
- YYSYMBOL_TILDE = 352, /* TILDE */
- YYSYMBOL_PLUS = 353, /* PLUS */
- YYSYMBOL_STAR = 354, /* STAR */
- YYSYMBOL_SLASH = 355, /* SLASH */
- YYSYMBOL_PERCENT = 356, /* PERCENT */
- YYSYMBOL_LEFT_ANGLE = 357, /* LEFT_ANGLE */
- YYSYMBOL_RIGHT_ANGLE = 358, /* RIGHT_ANGLE */
- YYSYMBOL_VERTICAL_BAR = 359, /* VERTICAL_BAR */
- YYSYMBOL_CARET = 360, /* CARET */
- YYSYMBOL_AMPERSAND = 361, /* AMPERSAND */
- YYSYMBOL_QUESTION = 362, /* QUESTION */
- YYSYMBOL_INVARIANT = 363, /* INVARIANT */
- YYSYMBOL_HIGH_PRECISION = 364, /* HIGH_PRECISION */
- YYSYMBOL_MEDIUM_PRECISION = 365, /* MEDIUM_PRECISION */
- YYSYMBOL_LOW_PRECISION = 366, /* LOW_PRECISION */
- YYSYMBOL_PRECISION = 367, /* PRECISION */
- YYSYMBOL_PACKED = 368, /* PACKED */
- YYSYMBOL_RESOURCE = 369, /* RESOURCE */
- YYSYMBOL_SUPERP = 370, /* SUPERP */
- YYSYMBOL_FLOATCONSTANT = 371, /* FLOATCONSTANT */
- YYSYMBOL_INTCONSTANT = 372, /* INTCONSTANT */
- YYSYMBOL_UINTCONSTANT = 373, /* UINTCONSTANT */
- YYSYMBOL_BOOLCONSTANT = 374, /* BOOLCONSTANT */
- YYSYMBOL_IDENTIFIER = 375, /* IDENTIFIER */
- YYSYMBOL_TYPE_NAME = 376, /* TYPE_NAME */
- YYSYMBOL_CENTROID = 377, /* CENTROID */
- YYSYMBOL_IN = 378, /* IN */
- YYSYMBOL_OUT = 379, /* OUT */
- YYSYMBOL_INOUT = 380, /* INOUT */
- YYSYMBOL_STRUCT = 381, /* STRUCT */
- YYSYMBOL_VOID = 382, /* VOID */
- YYSYMBOL_WHILE = 383, /* WHILE */
- YYSYMBOL_BREAK = 384, /* BREAK */
- YYSYMBOL_CONTINUE = 385, /* CONTINUE */
- YYSYMBOL_DO = 386, /* DO */
- YYSYMBOL_ELSE = 387, /* ELSE */
- YYSYMBOL_FOR = 388, /* FOR */
- YYSYMBOL_IF = 389, /* IF */
- YYSYMBOL_DISCARD = 390, /* DISCARD */
- YYSYMBOL_RETURN = 391, /* RETURN */
- YYSYMBOL_SWITCH = 392, /* SWITCH */
- YYSYMBOL_CASE = 393, /* CASE */
- YYSYMBOL_DEFAULT = 394, /* DEFAULT */
- YYSYMBOL_TERMINATE_INVOCATION = 395, /* TERMINATE_INVOCATION */
- YYSYMBOL_TERMINATE_RAY = 396, /* TERMINATE_RAY */
- YYSYMBOL_IGNORE_INTERSECTION = 397, /* IGNORE_INTERSECTION */
- YYSYMBOL_UNIFORM = 398, /* UNIFORM */
- YYSYMBOL_SHARED = 399, /* SHARED */
- YYSYMBOL_BUFFER = 400, /* BUFFER */
- YYSYMBOL_FLAT = 401, /* FLAT */
- YYSYMBOL_SMOOTH = 402, /* SMOOTH */
- YYSYMBOL_LAYOUT = 403, /* LAYOUT */
- YYSYMBOL_DOUBLECONSTANT = 404, /* DOUBLECONSTANT */
- YYSYMBOL_INT16CONSTANT = 405, /* INT16CONSTANT */
- YYSYMBOL_UINT16CONSTANT = 406, /* UINT16CONSTANT */
- YYSYMBOL_FLOAT16CONSTANT = 407, /* FLOAT16CONSTANT */
- YYSYMBOL_INT32CONSTANT = 408, /* INT32CONSTANT */
- YYSYMBOL_UINT32CONSTANT = 409, /* UINT32CONSTANT */
- YYSYMBOL_INT64CONSTANT = 410, /* INT64CONSTANT */
- YYSYMBOL_UINT64CONSTANT = 411, /* UINT64CONSTANT */
- YYSYMBOL_SUBROUTINE = 412, /* SUBROUTINE */
- YYSYMBOL_DEMOTE = 413, /* DEMOTE */
- YYSYMBOL_PAYLOADNV = 414, /* PAYLOADNV */
- YYSYMBOL_PAYLOADINNV = 415, /* PAYLOADINNV */
- YYSYMBOL_HITATTRNV = 416, /* HITATTRNV */
- YYSYMBOL_CALLDATANV = 417, /* CALLDATANV */
- YYSYMBOL_CALLDATAINNV = 418, /* CALLDATAINNV */
- YYSYMBOL_PAYLOADEXT = 419, /* PAYLOADEXT */
- YYSYMBOL_PAYLOADINEXT = 420, /* PAYLOADINEXT */
- YYSYMBOL_HITATTREXT = 421, /* HITATTREXT */
- YYSYMBOL_CALLDATAEXT = 422, /* CALLDATAEXT */
- YYSYMBOL_CALLDATAINEXT = 423, /* CALLDATAINEXT */
- YYSYMBOL_PATCH = 424, /* PATCH */
- YYSYMBOL_SAMPLE = 425, /* SAMPLE */
- YYSYMBOL_NONUNIFORM = 426, /* NONUNIFORM */
- YYSYMBOL_COHERENT = 427, /* COHERENT */
- YYSYMBOL_VOLATILE = 428, /* VOLATILE */
- YYSYMBOL_RESTRICT = 429, /* RESTRICT */
- YYSYMBOL_READONLY = 430, /* READONLY */
- YYSYMBOL_WRITEONLY = 431, /* WRITEONLY */
- YYSYMBOL_DEVICECOHERENT = 432, /* DEVICECOHERENT */
- YYSYMBOL_QUEUEFAMILYCOHERENT = 433, /* QUEUEFAMILYCOHERENT */
- YYSYMBOL_WORKGROUPCOHERENT = 434, /* WORKGROUPCOHERENT */
- YYSYMBOL_SUBGROUPCOHERENT = 435, /* SUBGROUPCOHERENT */
- YYSYMBOL_NONPRIVATE = 436, /* NONPRIVATE */
- YYSYMBOL_SHADERCALLCOHERENT = 437, /* SHADERCALLCOHERENT */
- YYSYMBOL_NOPERSPECTIVE = 438, /* NOPERSPECTIVE */
- YYSYMBOL_EXPLICITINTERPAMD = 439, /* EXPLICITINTERPAMD */
- YYSYMBOL_PERVERTEXNV = 440, /* PERVERTEXNV */
- YYSYMBOL_PERPRIMITIVENV = 441, /* PERPRIMITIVENV */
- YYSYMBOL_PERVIEWNV = 442, /* PERVIEWNV */
- YYSYMBOL_PERTASKNV = 443, /* PERTASKNV */
- YYSYMBOL_PRECISE = 444, /* PRECISE */
- YYSYMBOL_YYACCEPT = 445, /* $accept */
- YYSYMBOL_variable_identifier = 446, /* variable_identifier */
- YYSYMBOL_primary_expression = 447, /* primary_expression */
- YYSYMBOL_postfix_expression = 448, /* postfix_expression */
- YYSYMBOL_integer_expression = 449, /* integer_expression */
- YYSYMBOL_function_call = 450, /* function_call */
- YYSYMBOL_function_call_or_method = 451, /* function_call_or_method */
- YYSYMBOL_function_call_generic = 452, /* function_call_generic */
- YYSYMBOL_function_call_header_no_parameters = 453, /* function_call_header_no_parameters */
- YYSYMBOL_function_call_header_with_parameters = 454, /* function_call_header_with_parameters */
- YYSYMBOL_function_call_header = 455, /* function_call_header */
- YYSYMBOL_function_identifier = 456, /* function_identifier */
- YYSYMBOL_unary_expression = 457, /* unary_expression */
- YYSYMBOL_unary_operator = 458, /* unary_operator */
- YYSYMBOL_multiplicative_expression = 459, /* multiplicative_expression */
- YYSYMBOL_additive_expression = 460, /* additive_expression */
- YYSYMBOL_shift_expression = 461, /* shift_expression */
- YYSYMBOL_relational_expression = 462, /* relational_expression */
- YYSYMBOL_equality_expression = 463, /* equality_expression */
- YYSYMBOL_and_expression = 464, /* and_expression */
- YYSYMBOL_exclusive_or_expression = 465, /* exclusive_or_expression */
- YYSYMBOL_inclusive_or_expression = 466, /* inclusive_or_expression */
- YYSYMBOL_logical_and_expression = 467, /* logical_and_expression */
- YYSYMBOL_logical_xor_expression = 468, /* logical_xor_expression */
- YYSYMBOL_logical_or_expression = 469, /* logical_or_expression */
- YYSYMBOL_conditional_expression = 470, /* conditional_expression */
- YYSYMBOL_471_1 = 471, /* $@1 */
- YYSYMBOL_assignment_expression = 472, /* assignment_expression */
- YYSYMBOL_assignment_operator = 473, /* assignment_operator */
- YYSYMBOL_expression = 474, /* expression */
- YYSYMBOL_constant_expression = 475, /* constant_expression */
- YYSYMBOL_declaration = 476, /* declaration */
- YYSYMBOL_block_structure = 477, /* block_structure */
- YYSYMBOL_478_2 = 478, /* $@2 */
- YYSYMBOL_identifier_list = 479, /* identifier_list */
- YYSYMBOL_function_prototype = 480, /* function_prototype */
- YYSYMBOL_function_declarator = 481, /* function_declarator */
- YYSYMBOL_function_header_with_parameters = 482, /* function_header_with_parameters */
- YYSYMBOL_function_header = 483, /* function_header */
- YYSYMBOL_parameter_declarator = 484, /* parameter_declarator */
- YYSYMBOL_parameter_declaration = 485, /* parameter_declaration */
- YYSYMBOL_parameter_type_specifier = 486, /* parameter_type_specifier */
- YYSYMBOL_init_declarator_list = 487, /* init_declarator_list */
- YYSYMBOL_single_declaration = 488, /* single_declaration */
- YYSYMBOL_fully_specified_type = 489, /* fully_specified_type */
- YYSYMBOL_invariant_qualifier = 490, /* invariant_qualifier */
- YYSYMBOL_interpolation_qualifier = 491, /* interpolation_qualifier */
- YYSYMBOL_layout_qualifier = 492, /* layout_qualifier */
- YYSYMBOL_layout_qualifier_id_list = 493, /* layout_qualifier_id_list */
- YYSYMBOL_layout_qualifier_id = 494, /* layout_qualifier_id */
- YYSYMBOL_precise_qualifier = 495, /* precise_qualifier */
- YYSYMBOL_type_qualifier = 496, /* type_qualifier */
- YYSYMBOL_single_type_qualifier = 497, /* single_type_qualifier */
- YYSYMBOL_storage_qualifier = 498, /* storage_qualifier */
- YYSYMBOL_non_uniform_qualifier = 499, /* non_uniform_qualifier */
- YYSYMBOL_type_name_list = 500, /* type_name_list */
- YYSYMBOL_type_specifier = 501, /* type_specifier */
- YYSYMBOL_array_specifier = 502, /* array_specifier */
- YYSYMBOL_type_parameter_specifier_opt = 503, /* type_parameter_specifier_opt */
- YYSYMBOL_type_parameter_specifier = 504, /* type_parameter_specifier */
- YYSYMBOL_type_parameter_specifier_list = 505, /* type_parameter_specifier_list */
- YYSYMBOL_type_specifier_nonarray = 506, /* type_specifier_nonarray */
- YYSYMBOL_precision_qualifier = 507, /* precision_qualifier */
- YYSYMBOL_struct_specifier = 508, /* struct_specifier */
- YYSYMBOL_509_3 = 509, /* $@3 */
- YYSYMBOL_510_4 = 510, /* $@4 */
- YYSYMBOL_struct_declaration_list = 511, /* struct_declaration_list */
- YYSYMBOL_struct_declaration = 512, /* struct_declaration */
- YYSYMBOL_struct_declarator_list = 513, /* struct_declarator_list */
- YYSYMBOL_struct_declarator = 514, /* struct_declarator */
- YYSYMBOL_initializer = 515, /* initializer */
- YYSYMBOL_initializer_list = 516, /* initializer_list */
- YYSYMBOL_declaration_statement = 517, /* declaration_statement */
- YYSYMBOL_statement = 518, /* statement */
- YYSYMBOL_simple_statement = 519, /* simple_statement */
- YYSYMBOL_demote_statement = 520, /* demote_statement */
- YYSYMBOL_compound_statement = 521, /* compound_statement */
- YYSYMBOL_522_5 = 522, /* $@5 */
- YYSYMBOL_523_6 = 523, /* $@6 */
- YYSYMBOL_statement_no_new_scope = 524, /* statement_no_new_scope */
- YYSYMBOL_statement_scoped = 525, /* statement_scoped */
- YYSYMBOL_526_7 = 526, /* $@7 */
- YYSYMBOL_527_8 = 527, /* $@8 */
- YYSYMBOL_compound_statement_no_new_scope = 528, /* compound_statement_no_new_scope */
- YYSYMBOL_statement_list = 529, /* statement_list */
- YYSYMBOL_expression_statement = 530, /* expression_statement */
- YYSYMBOL_selection_statement = 531, /* selection_statement */
- YYSYMBOL_selection_statement_nonattributed = 532, /* selection_statement_nonattributed */
- YYSYMBOL_selection_rest_statement = 533, /* selection_rest_statement */
- YYSYMBOL_condition = 534, /* condition */
- YYSYMBOL_switch_statement = 535, /* switch_statement */
- YYSYMBOL_switch_statement_nonattributed = 536, /* switch_statement_nonattributed */
- YYSYMBOL_537_9 = 537, /* $@9 */
- YYSYMBOL_switch_statement_list = 538, /* switch_statement_list */
- YYSYMBOL_case_label = 539, /* case_label */
- YYSYMBOL_iteration_statement = 540, /* iteration_statement */
- YYSYMBOL_iteration_statement_nonattributed = 541, /* iteration_statement_nonattributed */
- YYSYMBOL_542_10 = 542, /* $@10 */
- YYSYMBOL_543_11 = 543, /* $@11 */
- YYSYMBOL_544_12 = 544, /* $@12 */
- YYSYMBOL_for_init_statement = 545, /* for_init_statement */
- YYSYMBOL_conditionopt = 546, /* conditionopt */
- YYSYMBOL_for_rest_statement = 547, /* for_rest_statement */
- YYSYMBOL_jump_statement = 548, /* jump_statement */
- YYSYMBOL_translation_unit = 549, /* translation_unit */
- YYSYMBOL_external_declaration = 550, /* external_declaration */
- YYSYMBOL_function_definition = 551, /* function_definition */
- YYSYMBOL_552_13 = 552, /* $@13 */
- YYSYMBOL_attribute = 553, /* attribute */
- YYSYMBOL_attribute_list = 554, /* attribute_list */
- YYSYMBOL_single_attribute = 555 /* single_attribute */
+ YYSYMBOL_SPIRV_INSTRUCTION = 317, /* SPIRV_INSTRUCTION */
+ YYSYMBOL_SPIRV_EXECUTION_MODE = 318, /* SPIRV_EXECUTION_MODE */
+ YYSYMBOL_SPIRV_EXECUTION_MODE_ID = 319, /* SPIRV_EXECUTION_MODE_ID */
+ YYSYMBOL_SPIRV_DECORATE = 320, /* SPIRV_DECORATE */
+ YYSYMBOL_SPIRV_DECORATE_ID = 321, /* SPIRV_DECORATE_ID */
+ YYSYMBOL_SPIRV_DECORATE_STRING = 322, /* SPIRV_DECORATE_STRING */
+ YYSYMBOL_SPIRV_TYPE = 323, /* SPIRV_TYPE */
+ YYSYMBOL_SPIRV_STORAGE_CLASS = 324, /* SPIRV_STORAGE_CLASS */
+ YYSYMBOL_SPIRV_BY_REFERENCE = 325, /* SPIRV_BY_REFERENCE */
+ YYSYMBOL_SPIRV_LITERAL = 326, /* SPIRV_LITERAL */
+ YYSYMBOL_LEFT_OP = 327, /* LEFT_OP */
+ YYSYMBOL_RIGHT_OP = 328, /* RIGHT_OP */
+ YYSYMBOL_INC_OP = 329, /* INC_OP */
+ YYSYMBOL_DEC_OP = 330, /* DEC_OP */
+ YYSYMBOL_LE_OP = 331, /* LE_OP */
+ YYSYMBOL_GE_OP = 332, /* GE_OP */
+ YYSYMBOL_EQ_OP = 333, /* EQ_OP */
+ YYSYMBOL_NE_OP = 334, /* NE_OP */
+ YYSYMBOL_AND_OP = 335, /* AND_OP */
+ YYSYMBOL_OR_OP = 336, /* OR_OP */
+ YYSYMBOL_XOR_OP = 337, /* XOR_OP */
+ YYSYMBOL_MUL_ASSIGN = 338, /* MUL_ASSIGN */
+ YYSYMBOL_DIV_ASSIGN = 339, /* DIV_ASSIGN */
+ YYSYMBOL_ADD_ASSIGN = 340, /* ADD_ASSIGN */
+ YYSYMBOL_MOD_ASSIGN = 341, /* MOD_ASSIGN */
+ YYSYMBOL_LEFT_ASSIGN = 342, /* LEFT_ASSIGN */
+ YYSYMBOL_RIGHT_ASSIGN = 343, /* RIGHT_ASSIGN */
+ YYSYMBOL_AND_ASSIGN = 344, /* AND_ASSIGN */
+ YYSYMBOL_XOR_ASSIGN = 345, /* XOR_ASSIGN */
+ YYSYMBOL_OR_ASSIGN = 346, /* OR_ASSIGN */
+ YYSYMBOL_SUB_ASSIGN = 347, /* SUB_ASSIGN */
+ YYSYMBOL_STRING_LITERAL = 348, /* STRING_LITERAL */
+ YYSYMBOL_LEFT_PAREN = 349, /* LEFT_PAREN */
+ YYSYMBOL_RIGHT_PAREN = 350, /* RIGHT_PAREN */
+ YYSYMBOL_LEFT_BRACKET = 351, /* LEFT_BRACKET */
+ YYSYMBOL_RIGHT_BRACKET = 352, /* RIGHT_BRACKET */
+ YYSYMBOL_LEFT_BRACE = 353, /* LEFT_BRACE */
+ YYSYMBOL_RIGHT_BRACE = 354, /* RIGHT_BRACE */
+ YYSYMBOL_DOT = 355, /* DOT */
+ YYSYMBOL_COMMA = 356, /* COMMA */
+ YYSYMBOL_COLON = 357, /* COLON */
+ YYSYMBOL_EQUAL = 358, /* EQUAL */
+ YYSYMBOL_SEMICOLON = 359, /* SEMICOLON */
+ YYSYMBOL_BANG = 360, /* BANG */
+ YYSYMBOL_DASH = 361, /* DASH */
+ YYSYMBOL_TILDE = 362, /* TILDE */
+ YYSYMBOL_PLUS = 363, /* PLUS */
+ YYSYMBOL_STAR = 364, /* STAR */
+ YYSYMBOL_SLASH = 365, /* SLASH */
+ YYSYMBOL_PERCENT = 366, /* PERCENT */
+ YYSYMBOL_LEFT_ANGLE = 367, /* LEFT_ANGLE */
+ YYSYMBOL_RIGHT_ANGLE = 368, /* RIGHT_ANGLE */
+ YYSYMBOL_VERTICAL_BAR = 369, /* VERTICAL_BAR */
+ YYSYMBOL_CARET = 370, /* CARET */
+ YYSYMBOL_AMPERSAND = 371, /* AMPERSAND */
+ YYSYMBOL_QUESTION = 372, /* QUESTION */
+ YYSYMBOL_INVARIANT = 373, /* INVARIANT */
+ YYSYMBOL_HIGH_PRECISION = 374, /* HIGH_PRECISION */
+ YYSYMBOL_MEDIUM_PRECISION = 375, /* MEDIUM_PRECISION */
+ YYSYMBOL_LOW_PRECISION = 376, /* LOW_PRECISION */
+ YYSYMBOL_PRECISION = 377, /* PRECISION */
+ YYSYMBOL_PACKED = 378, /* PACKED */
+ YYSYMBOL_RESOURCE = 379, /* RESOURCE */
+ YYSYMBOL_SUPERP = 380, /* SUPERP */
+ YYSYMBOL_FLOATCONSTANT = 381, /* FLOATCONSTANT */
+ YYSYMBOL_INTCONSTANT = 382, /* INTCONSTANT */
+ YYSYMBOL_UINTCONSTANT = 383, /* UINTCONSTANT */
+ YYSYMBOL_BOOLCONSTANT = 384, /* BOOLCONSTANT */
+ YYSYMBOL_IDENTIFIER = 385, /* IDENTIFIER */
+ YYSYMBOL_TYPE_NAME = 386, /* TYPE_NAME */
+ YYSYMBOL_CENTROID = 387, /* CENTROID */
+ YYSYMBOL_IN = 388, /* IN */
+ YYSYMBOL_OUT = 389, /* OUT */
+ YYSYMBOL_INOUT = 390, /* INOUT */
+ YYSYMBOL_STRUCT = 391, /* STRUCT */
+ YYSYMBOL_VOID = 392, /* VOID */
+ YYSYMBOL_WHILE = 393, /* WHILE */
+ YYSYMBOL_BREAK = 394, /* BREAK */
+ YYSYMBOL_CONTINUE = 395, /* CONTINUE */
+ YYSYMBOL_DO = 396, /* DO */
+ YYSYMBOL_ELSE = 397, /* ELSE */
+ YYSYMBOL_FOR = 398, /* FOR */
+ YYSYMBOL_IF = 399, /* IF */
+ YYSYMBOL_DISCARD = 400, /* DISCARD */
+ YYSYMBOL_RETURN = 401, /* RETURN */
+ YYSYMBOL_SWITCH = 402, /* SWITCH */
+ YYSYMBOL_CASE = 403, /* CASE */
+ YYSYMBOL_DEFAULT = 404, /* DEFAULT */
+ YYSYMBOL_TERMINATE_INVOCATION = 405, /* TERMINATE_INVOCATION */
+ YYSYMBOL_TERMINATE_RAY = 406, /* TERMINATE_RAY */
+ YYSYMBOL_IGNORE_INTERSECTION = 407, /* IGNORE_INTERSECTION */
+ YYSYMBOL_UNIFORM = 408, /* UNIFORM */
+ YYSYMBOL_SHARED = 409, /* SHARED */
+ YYSYMBOL_BUFFER = 410, /* BUFFER */
+ YYSYMBOL_FLAT = 411, /* FLAT */
+ YYSYMBOL_SMOOTH = 412, /* SMOOTH */
+ YYSYMBOL_LAYOUT = 413, /* LAYOUT */
+ YYSYMBOL_DOUBLECONSTANT = 414, /* DOUBLECONSTANT */
+ YYSYMBOL_INT16CONSTANT = 415, /* INT16CONSTANT */
+ YYSYMBOL_UINT16CONSTANT = 416, /* UINT16CONSTANT */
+ YYSYMBOL_FLOAT16CONSTANT = 417, /* FLOAT16CONSTANT */
+ YYSYMBOL_INT32CONSTANT = 418, /* INT32CONSTANT */
+ YYSYMBOL_UINT32CONSTANT = 419, /* UINT32CONSTANT */
+ YYSYMBOL_INT64CONSTANT = 420, /* INT64CONSTANT */
+ YYSYMBOL_UINT64CONSTANT = 421, /* UINT64CONSTANT */
+ YYSYMBOL_SUBROUTINE = 422, /* SUBROUTINE */
+ YYSYMBOL_DEMOTE = 423, /* DEMOTE */
+ YYSYMBOL_PAYLOADNV = 424, /* PAYLOADNV */
+ YYSYMBOL_PAYLOADINNV = 425, /* PAYLOADINNV */
+ YYSYMBOL_HITATTRNV = 426, /* HITATTRNV */
+ YYSYMBOL_CALLDATANV = 427, /* CALLDATANV */
+ YYSYMBOL_CALLDATAINNV = 428, /* CALLDATAINNV */
+ YYSYMBOL_PAYLOADEXT = 429, /* PAYLOADEXT */
+ YYSYMBOL_PAYLOADINEXT = 430, /* PAYLOADINEXT */
+ YYSYMBOL_HITATTREXT = 431, /* HITATTREXT */
+ YYSYMBOL_CALLDATAEXT = 432, /* CALLDATAEXT */
+ YYSYMBOL_CALLDATAINEXT = 433, /* CALLDATAINEXT */
+ YYSYMBOL_PATCH = 434, /* PATCH */
+ YYSYMBOL_SAMPLE = 435, /* SAMPLE */
+ YYSYMBOL_NONUNIFORM = 436, /* NONUNIFORM */
+ YYSYMBOL_COHERENT = 437, /* COHERENT */
+ YYSYMBOL_VOLATILE = 438, /* VOLATILE */
+ YYSYMBOL_RESTRICT = 439, /* RESTRICT */
+ YYSYMBOL_READONLY = 440, /* READONLY */
+ YYSYMBOL_WRITEONLY = 441, /* WRITEONLY */
+ YYSYMBOL_DEVICECOHERENT = 442, /* DEVICECOHERENT */
+ YYSYMBOL_QUEUEFAMILYCOHERENT = 443, /* QUEUEFAMILYCOHERENT */
+ YYSYMBOL_WORKGROUPCOHERENT = 444, /* WORKGROUPCOHERENT */
+ YYSYMBOL_SUBGROUPCOHERENT = 445, /* SUBGROUPCOHERENT */
+ YYSYMBOL_NONPRIVATE = 446, /* NONPRIVATE */
+ YYSYMBOL_SHADERCALLCOHERENT = 447, /* SHADERCALLCOHERENT */
+ YYSYMBOL_NOPERSPECTIVE = 448, /* NOPERSPECTIVE */
+ YYSYMBOL_EXPLICITINTERPAMD = 449, /* EXPLICITINTERPAMD */
+ YYSYMBOL_PERVERTEXNV = 450, /* PERVERTEXNV */
+ YYSYMBOL_PERPRIMITIVENV = 451, /* PERPRIMITIVENV */
+ YYSYMBOL_PERVIEWNV = 452, /* PERVIEWNV */
+ YYSYMBOL_PERTASKNV = 453, /* PERTASKNV */
+ YYSYMBOL_PRECISE = 454, /* PRECISE */
+ YYSYMBOL_YYACCEPT = 455, /* $accept */
+ YYSYMBOL_variable_identifier = 456, /* variable_identifier */
+ YYSYMBOL_primary_expression = 457, /* primary_expression */
+ YYSYMBOL_postfix_expression = 458, /* postfix_expression */
+ YYSYMBOL_integer_expression = 459, /* integer_expression */
+ YYSYMBOL_function_call = 460, /* function_call */
+ YYSYMBOL_function_call_or_method = 461, /* function_call_or_method */
+ YYSYMBOL_function_call_generic = 462, /* function_call_generic */
+ YYSYMBOL_function_call_header_no_parameters = 463, /* function_call_header_no_parameters */
+ YYSYMBOL_function_call_header_with_parameters = 464, /* function_call_header_with_parameters */
+ YYSYMBOL_function_call_header = 465, /* function_call_header */
+ YYSYMBOL_function_identifier = 466, /* function_identifier */
+ YYSYMBOL_unary_expression = 467, /* unary_expression */
+ YYSYMBOL_unary_operator = 468, /* unary_operator */
+ YYSYMBOL_multiplicative_expression = 469, /* multiplicative_expression */
+ YYSYMBOL_additive_expression = 470, /* additive_expression */
+ YYSYMBOL_shift_expression = 471, /* shift_expression */
+ YYSYMBOL_relational_expression = 472, /* relational_expression */
+ YYSYMBOL_equality_expression = 473, /* equality_expression */
+ YYSYMBOL_and_expression = 474, /* and_expression */
+ YYSYMBOL_exclusive_or_expression = 475, /* exclusive_or_expression */
+ YYSYMBOL_inclusive_or_expression = 476, /* inclusive_or_expression */
+ YYSYMBOL_logical_and_expression = 477, /* logical_and_expression */
+ YYSYMBOL_logical_xor_expression = 478, /* logical_xor_expression */
+ YYSYMBOL_logical_or_expression = 479, /* logical_or_expression */
+ YYSYMBOL_conditional_expression = 480, /* conditional_expression */
+ YYSYMBOL_481_1 = 481, /* $@1 */
+ YYSYMBOL_assignment_expression = 482, /* assignment_expression */
+ YYSYMBOL_assignment_operator = 483, /* assignment_operator */
+ YYSYMBOL_expression = 484, /* expression */
+ YYSYMBOL_constant_expression = 485, /* constant_expression */
+ YYSYMBOL_declaration = 486, /* declaration */
+ YYSYMBOL_block_structure = 487, /* block_structure */
+ YYSYMBOL_488_2 = 488, /* $@2 */
+ YYSYMBOL_identifier_list = 489, /* identifier_list */
+ YYSYMBOL_function_prototype = 490, /* function_prototype */
+ YYSYMBOL_function_declarator = 491, /* function_declarator */
+ YYSYMBOL_function_header_with_parameters = 492, /* function_header_with_parameters */
+ YYSYMBOL_function_header = 493, /* function_header */
+ YYSYMBOL_parameter_declarator = 494, /* parameter_declarator */
+ YYSYMBOL_parameter_declaration = 495, /* parameter_declaration */
+ YYSYMBOL_parameter_type_specifier = 496, /* parameter_type_specifier */
+ YYSYMBOL_init_declarator_list = 497, /* init_declarator_list */
+ YYSYMBOL_single_declaration = 498, /* single_declaration */
+ YYSYMBOL_fully_specified_type = 499, /* fully_specified_type */
+ YYSYMBOL_invariant_qualifier = 500, /* invariant_qualifier */
+ YYSYMBOL_interpolation_qualifier = 501, /* interpolation_qualifier */
+ YYSYMBOL_layout_qualifier = 502, /* layout_qualifier */
+ YYSYMBOL_layout_qualifier_id_list = 503, /* layout_qualifier_id_list */
+ YYSYMBOL_layout_qualifier_id = 504, /* layout_qualifier_id */
+ YYSYMBOL_precise_qualifier = 505, /* precise_qualifier */
+ YYSYMBOL_type_qualifier = 506, /* type_qualifier */
+ YYSYMBOL_single_type_qualifier = 507, /* single_type_qualifier */
+ YYSYMBOL_storage_qualifier = 508, /* storage_qualifier */
+ YYSYMBOL_non_uniform_qualifier = 509, /* non_uniform_qualifier */
+ YYSYMBOL_type_name_list = 510, /* type_name_list */
+ YYSYMBOL_type_specifier = 511, /* type_specifier */
+ YYSYMBOL_array_specifier = 512, /* array_specifier */
+ YYSYMBOL_type_parameter_specifier_opt = 513, /* type_parameter_specifier_opt */
+ YYSYMBOL_type_parameter_specifier = 514, /* type_parameter_specifier */
+ YYSYMBOL_type_parameter_specifier_list = 515, /* type_parameter_specifier_list */
+ YYSYMBOL_type_specifier_nonarray = 516, /* type_specifier_nonarray */
+ YYSYMBOL_precision_qualifier = 517, /* precision_qualifier */
+ YYSYMBOL_struct_specifier = 518, /* struct_specifier */
+ YYSYMBOL_519_3 = 519, /* $@3 */
+ YYSYMBOL_520_4 = 520, /* $@4 */
+ YYSYMBOL_struct_declaration_list = 521, /* struct_declaration_list */
+ YYSYMBOL_struct_declaration = 522, /* struct_declaration */
+ YYSYMBOL_struct_declarator_list = 523, /* struct_declarator_list */
+ YYSYMBOL_struct_declarator = 524, /* struct_declarator */
+ YYSYMBOL_initializer = 525, /* initializer */
+ YYSYMBOL_initializer_list = 526, /* initializer_list */
+ YYSYMBOL_declaration_statement = 527, /* declaration_statement */
+ YYSYMBOL_statement = 528, /* statement */
+ YYSYMBOL_simple_statement = 529, /* simple_statement */
+ YYSYMBOL_demote_statement = 530, /* demote_statement */
+ YYSYMBOL_compound_statement = 531, /* compound_statement */
+ YYSYMBOL_532_5 = 532, /* $@5 */
+ YYSYMBOL_533_6 = 533, /* $@6 */
+ YYSYMBOL_statement_no_new_scope = 534, /* statement_no_new_scope */
+ YYSYMBOL_statement_scoped = 535, /* statement_scoped */
+ YYSYMBOL_536_7 = 536, /* $@7 */
+ YYSYMBOL_537_8 = 537, /* $@8 */
+ YYSYMBOL_compound_statement_no_new_scope = 538, /* compound_statement_no_new_scope */
+ YYSYMBOL_statement_list = 539, /* statement_list */
+ YYSYMBOL_expression_statement = 540, /* expression_statement */
+ YYSYMBOL_selection_statement = 541, /* selection_statement */
+ YYSYMBOL_selection_statement_nonattributed = 542, /* selection_statement_nonattributed */
+ YYSYMBOL_selection_rest_statement = 543, /* selection_rest_statement */
+ YYSYMBOL_condition = 544, /* condition */
+ YYSYMBOL_switch_statement = 545, /* switch_statement */
+ YYSYMBOL_switch_statement_nonattributed = 546, /* switch_statement_nonattributed */
+ YYSYMBOL_547_9 = 547, /* $@9 */
+ YYSYMBOL_switch_statement_list = 548, /* switch_statement_list */
+ YYSYMBOL_case_label = 549, /* case_label */
+ YYSYMBOL_iteration_statement = 550, /* iteration_statement */
+ YYSYMBOL_iteration_statement_nonattributed = 551, /* iteration_statement_nonattributed */
+ YYSYMBOL_552_10 = 552, /* $@10 */
+ YYSYMBOL_553_11 = 553, /* $@11 */
+ YYSYMBOL_554_12 = 554, /* $@12 */
+ YYSYMBOL_for_init_statement = 555, /* for_init_statement */
+ YYSYMBOL_conditionopt = 556, /* conditionopt */
+ YYSYMBOL_for_rest_statement = 557, /* for_rest_statement */
+ YYSYMBOL_jump_statement = 558, /* jump_statement */
+ YYSYMBOL_translation_unit = 559, /* translation_unit */
+ YYSYMBOL_external_declaration = 560, /* external_declaration */
+ YYSYMBOL_function_definition = 561, /* function_definition */
+ YYSYMBOL_562_13 = 562, /* $@13 */
+ YYSYMBOL_attribute = 563, /* attribute */
+ YYSYMBOL_attribute_list = 564, /* attribute_list */
+ YYSYMBOL_single_attribute = 565, /* single_attribute */
+ YYSYMBOL_spirv_requirements_list = 566, /* spirv_requirements_list */
+ YYSYMBOL_spirv_requirements_parameter = 567, /* spirv_requirements_parameter */
+ YYSYMBOL_spirv_extension_list = 568, /* spirv_extension_list */
+ YYSYMBOL_spirv_capability_list = 569, /* spirv_capability_list */
+ YYSYMBOL_spirv_execution_mode_qualifier = 570, /* spirv_execution_mode_qualifier */
+ YYSYMBOL_spirv_execution_mode_parameter_list = 571, /* spirv_execution_mode_parameter_list */
+ YYSYMBOL_spirv_execution_mode_parameter = 572, /* spirv_execution_mode_parameter */
+ YYSYMBOL_spirv_execution_mode_id_parameter_list = 573, /* spirv_execution_mode_id_parameter_list */
+ YYSYMBOL_spirv_storage_class_qualifier = 574, /* spirv_storage_class_qualifier */
+ YYSYMBOL_spirv_decorate_qualifier = 575, /* spirv_decorate_qualifier */
+ YYSYMBOL_spirv_decorate_parameter_list = 576, /* spirv_decorate_parameter_list */
+ YYSYMBOL_spirv_decorate_parameter = 577, /* spirv_decorate_parameter */
+ YYSYMBOL_spirv_decorate_id_parameter_list = 578, /* spirv_decorate_id_parameter_list */
+ YYSYMBOL_spirv_decorate_string_parameter_list = 579, /* spirv_decorate_string_parameter_list */
+ YYSYMBOL_spirv_type_specifier = 580, /* spirv_type_specifier */
+ YYSYMBOL_spirv_type_parameter_list = 581, /* spirv_type_parameter_list */
+ YYSYMBOL_spirv_type_parameter = 582, /* spirv_type_parameter */
+ YYSYMBOL_spirv_instruction_qualifier = 583, /* spirv_instruction_qualifier */
+ YYSYMBOL_spirv_instruction_qualifier_list = 584, /* spirv_instruction_qualifier_list */
+ YYSYMBOL_spirv_instruction_qualifier_id = 585 /* spirv_instruction_qualifier_id */
};
typedef enum yysymbol_kind_t yysymbol_kind_t;
/* Second part of user prologue. */
-#line 133 "MachineIndependent/glslang.y"
+#line 136 "MachineIndependent/glslang.y"
/* windows only pragma */
@@ -698,7 +728,7 @@ typedef enum yysymbol_kind_t yysymbol_kind_t;
extern int yylex(YYSTYPE*, TParseContext&);
-#line 702 "MachineIndependent/glslang_tab.cpp"
+#line 732 "MachineIndependent/glslang_tab.cpp"
#ifdef short
@@ -1002,21 +1032,21 @@ union yyalloc
#endif /* !YYCOPY_NEEDED */
/* YYFINAL -- State number of the termination state. */
-#define YYFINAL 416
+#define YYFINAL 442
/* YYLAST -- Last index in YYTABLE. */
-#define YYLAST 10112
+#define YYLAST 12453
/* YYNTOKENS -- Number of terminals. */
-#define YYNTOKENS 445
+#define YYNTOKENS 455
/* YYNNTS -- Number of nonterminals. */
-#define YYNNTS 111
+#define YYNNTS 131
/* YYNRULES -- Number of rules. */
-#define YYNRULES 616
+#define YYNRULES 684
/* YYNSTATES -- Number of states. */
-#define YYNSTATES 764
+#define YYNSTATES 930
/* YYMAXUTOK -- Last valid token kind. */
-#define YYMAXUTOK 699
+#define YYMAXUTOK 709
/* YYTRANSLATE(TOKEN-NUM) -- Symbol number corresponding to TOKEN-NUM
@@ -1099,75 +1129,83 @@ static const yytype_int16 yytranslate[] =
405, 406, 407, 408, 409, 410, 411, 412, 413, 414,
415, 416, 417, 418, 419, 420, 421, 422, 423, 424,
425, 426, 427, 428, 429, 430, 431, 432, 433, 434,
- 435, 436, 437, 438, 439, 440, 441, 442, 443, 444
+ 435, 436, 437, 438, 439, 440, 441, 442, 443, 444,
+ 445, 446, 447, 448, 449, 450, 451, 452, 453, 454
};
#if YYDEBUG
/* YYRLINE[YYN] -- Source line where rule number YYN was defined. */
static const yytype_int16 yyrline[] =
{
- 0, 371, 371, 377, 380, 385, 388, 391, 395, 399,
- 402, 406, 410, 414, 418, 422, 426, 432, 440, 443,
- 446, 449, 452, 457, 465, 472, 479, 485, 489, 496,
- 499, 505, 512, 522, 530, 535, 563, 572, 578, 582,
- 586, 606, 607, 608, 609, 615, 616, 621, 626, 635,
- 636, 641, 649, 650, 656, 665, 666, 671, 676, 681,
- 689, 690, 699, 711, 712, 721, 722, 731, 732, 741,
- 742, 750, 751, 759, 760, 768, 769, 769, 787, 788,
- 804, 808, 812, 816, 821, 825, 829, 833, 837, 841,
- 845, 852, 855, 866, 873, 878, 883, 890, 894, 898,
- 902, 907, 912, 921, 921, 932, 936, 943, 950, 953,
- 960, 968, 988, 1011, 1026, 1051, 1062, 1072, 1082, 1092,
- 1101, 1104, 1108, 1112, 1117, 1125, 1132, 1137, 1142, 1147,
- 1156, 1166, 1193, 1202, 1209, 1217, 1224, 1231, 1239, 1249,
- 1256, 1267, 1273, 1276, 1283, 1287, 1291, 1300, 1310, 1313,
- 1324, 1327, 1330, 1334, 1338, 1343, 1347, 1354, 1358, 1363,
- 1369, 1375, 1382, 1387, 1395, 1401, 1413, 1427, 1433, 1438,
- 1446, 1454, 1462, 1470, 1478, 1486, 1494, 1502, 1509, 1516,
- 1520, 1525, 1530, 1535, 1540, 1545, 1550, 1554, 1558, 1562,
- 1566, 1572, 1583, 1590, 1593, 1602, 1607, 1617, 1622, 1630,
- 1634, 1644, 1647, 1653, 1659, 1666, 1676, 1680, 1684, 1688,
- 1693, 1697, 1702, 1707, 1712, 1717, 1722, 1727, 1732, 1737,
- 1742, 1748, 1754, 1760, 1765, 1770, 1775, 1780, 1785, 1790,
- 1795, 1800, 1805, 1810, 1815, 1821, 1828, 1833, 1838, 1843,
- 1848, 1853, 1858, 1863, 1868, 1873, 1878, 1883, 1891, 1899,
- 1907, 1913, 1919, 1925, 1931, 1937, 1943, 1949, 1955, 1961,
- 1967, 1973, 1979, 1985, 1991, 1997, 2003, 2009, 2015, 2021,
- 2027, 2033, 2039, 2045, 2051, 2057, 2063, 2069, 2075, 2081,
- 2087, 2093, 2099, 2105, 2113, 2121, 2129, 2137, 2145, 2153,
- 2161, 2169, 2177, 2185, 2193, 2201, 2207, 2213, 2219, 2225,
- 2231, 2237, 2243, 2249, 2255, 2261, 2267, 2273, 2279, 2285,
- 2291, 2297, 2303, 2309, 2315, 2321, 2327, 2333, 2339, 2345,
- 2351, 2357, 2363, 2369, 2375, 2381, 2387, 2393, 2399, 2405,
- 2411, 2417, 2421, 2425, 2429, 2434, 2440, 2445, 2450, 2455,
- 2460, 2465, 2470, 2476, 2481, 2486, 2491, 2496, 2501, 2507,
- 2513, 2519, 2525, 2531, 2537, 2543, 2549, 2555, 2561, 2567,
- 2573, 2579, 2585, 2590, 2595, 2600, 2605, 2610, 2615, 2621,
- 2626, 2631, 2636, 2641, 2646, 2651, 2656, 2662, 2667, 2672,
- 2677, 2682, 2687, 2692, 2697, 2702, 2707, 2712, 2717, 2722,
- 2727, 2732, 2738, 2743, 2748, 2754, 2760, 2765, 2770, 2775,
- 2781, 2786, 2791, 2796, 2802, 2807, 2812, 2817, 2823, 2828,
- 2833, 2838, 2844, 2850, 2856, 2862, 2867, 2873, 2879, 2885,
- 2890, 2895, 2900, 2905, 2910, 2916, 2921, 2926, 2931, 2937,
- 2942, 2947, 2952, 2958, 2963, 2968, 2973, 2979, 2984, 2989,
- 2994, 3000, 3005, 3010, 3015, 3021, 3026, 3031, 3036, 3042,
- 3047, 3052, 3057, 3063, 3068, 3073, 3078, 3084, 3089, 3094,
- 3099, 3105, 3110, 3115, 3120, 3126, 3131, 3136, 3141, 3147,
- 3152, 3157, 3162, 3168, 3173, 3178, 3183, 3189, 3194, 3199,
- 3204, 3210, 3215, 3220, 3225, 3230, 3235, 3240, 3245, 3250,
- 3255, 3260, 3265, 3270, 3275, 3280, 3285, 3290, 3295, 3300,
- 3305, 3310, 3315, 3320, 3325, 3330, 3336, 3342, 3348, 3354,
- 3361, 3368, 3374, 3380, 3386, 3392, 3398, 3404, 3411, 3416,
- 3432, 3437, 3442, 3450, 3450, 3461, 3461, 3471, 3474, 3487,
- 3509, 3536, 3540, 3546, 3551, 3562, 3566, 3572, 3583, 3586,
- 3593, 3597, 3598, 3604, 3605, 3606, 3607, 3608, 3609, 3610,
- 3612, 3618, 3627, 3628, 3632, 3628, 3644, 3645, 3649, 3649,
- 3656, 3656, 3670, 3673, 3681, 3689, 3700, 3701, 3705, 3709,
- 3716, 3723, 3727, 3735, 3739, 3752, 3756, 3763, 3763, 3783,
- 3786, 3792, 3804, 3816, 3820, 3827, 3827, 3842, 3842, 3858,
- 3858, 3879, 3882, 3888, 3891, 3897, 3901, 3908, 3913, 3918,
- 3925, 3928, 3932, 3937, 3941, 3951, 3955, 3964, 3967, 3971,
- 3980, 3980, 4022, 4028, 4031, 4036, 4039
+ 0, 392, 392, 398, 401, 406, 409, 412, 416, 420,
+ 423, 427, 431, 435, 439, 443, 447, 453, 461, 464,
+ 467, 470, 473, 478, 486, 493, 500, 506, 510, 517,
+ 520, 526, 533, 543, 551, 556, 584, 593, 599, 603,
+ 607, 627, 628, 629, 630, 636, 637, 642, 647, 656,
+ 657, 662, 670, 671, 677, 686, 687, 692, 697, 702,
+ 710, 711, 720, 732, 733, 742, 743, 752, 753, 762,
+ 763, 771, 772, 780, 781, 789, 790, 790, 808, 809,
+ 825, 829, 833, 837, 842, 846, 850, 854, 858, 862,
+ 866, 873, 876, 887, 894, 900, 907, 913, 918, 925,
+ 929, 933, 937, 942, 947, 956, 956, 967, 971, 978,
+ 982, 988, 994, 1004, 1007, 1014, 1022, 1042, 1065, 1080,
+ 1105, 1116, 1126, 1136, 1146, 1155, 1158, 1162, 1166, 1171,
+ 1179, 1186, 1191, 1196, 1201, 1210, 1220, 1247, 1256, 1263,
+ 1271, 1278, 1285, 1293, 1303, 1310, 1321, 1327, 1330, 1337,
+ 1341, 1345, 1354, 1364, 1367, 1378, 1381, 1384, 1388, 1392,
+ 1397, 1401, 1404, 1409, 1413, 1418, 1427, 1431, 1436, 1442,
+ 1448, 1455, 1460, 1468, 1474, 1486, 1500, 1506, 1511, 1519,
+ 1527, 1535, 1543, 1551, 1559, 1567, 1575, 1582, 1589, 1593,
+ 1598, 1603, 1608, 1613, 1618, 1623, 1627, 1631, 1635, 1639,
+ 1645, 1656, 1663, 1666, 1675, 1680, 1690, 1695, 1703, 1707,
+ 1717, 1720, 1726, 1732, 1739, 1749, 1753, 1757, 1761, 1766,
+ 1770, 1775, 1780, 1785, 1790, 1795, 1800, 1805, 1810, 1815,
+ 1821, 1827, 1833, 1838, 1843, 1848, 1853, 1858, 1863, 1868,
+ 1873, 1878, 1883, 1888, 1894, 1901, 1906, 1911, 1916, 1921,
+ 1926, 1931, 1936, 1941, 1946, 1951, 1956, 1964, 1972, 1980,
+ 1986, 1992, 1998, 2004, 2010, 2016, 2022, 2028, 2034, 2040,
+ 2046, 2052, 2058, 2064, 2070, 2076, 2082, 2088, 2094, 2100,
+ 2106, 2112, 2118, 2124, 2130, 2136, 2142, 2148, 2154, 2160,
+ 2166, 2172, 2178, 2186, 2194, 2202, 2210, 2218, 2226, 2234,
+ 2242, 2250, 2258, 2266, 2274, 2280, 2286, 2292, 2298, 2304,
+ 2310, 2316, 2322, 2328, 2334, 2340, 2346, 2352, 2358, 2364,
+ 2370, 2376, 2382, 2388, 2394, 2400, 2406, 2412, 2418, 2424,
+ 2430, 2436, 2442, 2448, 2454, 2460, 2466, 2472, 2478, 2484,
+ 2490, 2494, 2498, 2502, 2507, 2513, 2518, 2523, 2528, 2533,
+ 2538, 2543, 2549, 2554, 2559, 2564, 2569, 2574, 2580, 2586,
+ 2592, 2598, 2604, 2610, 2616, 2622, 2628, 2634, 2640, 2646,
+ 2652, 2658, 2663, 2668, 2673, 2678, 2683, 2688, 2694, 2699,
+ 2704, 2709, 2714, 2719, 2724, 2729, 2735, 2740, 2745, 2750,
+ 2755, 2760, 2765, 2770, 2775, 2780, 2785, 2790, 2795, 2800,
+ 2805, 2811, 2816, 2821, 2827, 2833, 2838, 2843, 2848, 2854,
+ 2859, 2864, 2869, 2875, 2880, 2885, 2890, 2896, 2901, 2906,
+ 2911, 2917, 2923, 2929, 2935, 2940, 2946, 2952, 2958, 2963,
+ 2968, 2973, 2978, 2983, 2989, 2994, 2999, 3004, 3010, 3015,
+ 3020, 3025, 3031, 3036, 3041, 3046, 3052, 3057, 3062, 3067,
+ 3073, 3078, 3083, 3088, 3094, 3099, 3104, 3109, 3115, 3120,
+ 3125, 3130, 3136, 3141, 3146, 3151, 3157, 3162, 3167, 3172,
+ 3178, 3183, 3188, 3193, 3199, 3204, 3209, 3214, 3220, 3225,
+ 3230, 3235, 3241, 3246, 3251, 3256, 3262, 3267, 3272, 3277,
+ 3283, 3288, 3293, 3298, 3303, 3308, 3313, 3318, 3323, 3328,
+ 3333, 3338, 3343, 3348, 3353, 3358, 3363, 3368, 3373, 3378,
+ 3383, 3388, 3393, 3398, 3403, 3409, 3415, 3421, 3427, 3434,
+ 3441, 3447, 3453, 3459, 3465, 3471, 3477, 3483, 3488, 3493,
+ 3509, 3514, 3519, 3527, 3527, 3538, 3538, 3548, 3551, 3564,
+ 3586, 3613, 3617, 3623, 3628, 3639, 3643, 3649, 3655, 3666,
+ 3669, 3676, 3680, 3681, 3687, 3688, 3689, 3690, 3691, 3692,
+ 3693, 3695, 3701, 3710, 3711, 3715, 3711, 3727, 3728, 3732,
+ 3732, 3739, 3739, 3753, 3756, 3764, 3772, 3783, 3784, 3788,
+ 3792, 3800, 3807, 3811, 3819, 3823, 3836, 3840, 3848, 3848,
+ 3868, 3871, 3877, 3889, 3901, 3905, 3913, 3913, 3928, 3928,
+ 3944, 3944, 3965, 3968, 3974, 3977, 3983, 3987, 3994, 3999,
+ 4004, 4011, 4014, 4018, 4023, 4027, 4037, 4041, 4050, 4053,
+ 4057, 4066, 4066, 4108, 4113, 4116, 4121, 4124, 4131, 4134,
+ 4139, 4142, 4147, 4150, 4155, 4158, 4163, 4167, 4172, 4176,
+ 4181, 4185, 4192, 4195, 4200, 4203, 4206, 4209, 4212, 4217,
+ 4226, 4237, 4242, 4250, 4254, 4259, 4263, 4268, 4272, 4277,
+ 4281, 4288, 4291, 4296, 4299, 4302, 4305, 4310, 4318, 4328,
+ 4332, 4337, 4341, 4346, 4350, 4357, 4360, 4365, 4368, 4373,
+ 4376, 4382, 4385, 4390, 4393
};
#endif
@@ -1254,17 +1292,20 @@ static const char *const yytname[] =
"F16TEXTURECUBEARRAY", "F16TEXTUREBUFFER", "F16TEXTURE2DMS",
"F16TEXTURE2DMSARRAY", "SUBPASSINPUT", "SUBPASSINPUTMS", "ISUBPASSINPUT",
"ISUBPASSINPUTMS", "USUBPASSINPUT", "USUBPASSINPUTMS", "F16SUBPASSINPUT",
- "F16SUBPASSINPUTMS", "LEFT_OP", "RIGHT_OP", "INC_OP", "DEC_OP", "LE_OP",
- "GE_OP", "EQ_OP", "NE_OP", "AND_OP", "OR_OP", "XOR_OP", "MUL_ASSIGN",
- "DIV_ASSIGN", "ADD_ASSIGN", "MOD_ASSIGN", "LEFT_ASSIGN", "RIGHT_ASSIGN",
- "AND_ASSIGN", "XOR_ASSIGN", "OR_ASSIGN", "SUB_ASSIGN", "STRING_LITERAL",
- "LEFT_PAREN", "RIGHT_PAREN", "LEFT_BRACKET", "RIGHT_BRACKET",
- "LEFT_BRACE", "RIGHT_BRACE", "DOT", "COMMA", "COLON", "EQUAL",
- "SEMICOLON", "BANG", "DASH", "TILDE", "PLUS", "STAR", "SLASH", "PERCENT",
- "LEFT_ANGLE", "RIGHT_ANGLE", "VERTICAL_BAR", "CARET", "AMPERSAND",
- "QUESTION", "INVARIANT", "HIGH_PRECISION", "MEDIUM_PRECISION",
- "LOW_PRECISION", "PRECISION", "PACKED", "RESOURCE", "SUPERP",
- "FLOATCONSTANT", "INTCONSTANT", "UINTCONSTANT", "BOOLCONSTANT",
+ "F16SUBPASSINPUTMS", "SPIRV_INSTRUCTION", "SPIRV_EXECUTION_MODE",
+ "SPIRV_EXECUTION_MODE_ID", "SPIRV_DECORATE", "SPIRV_DECORATE_ID",
+ "SPIRV_DECORATE_STRING", "SPIRV_TYPE", "SPIRV_STORAGE_CLASS",
+ "SPIRV_BY_REFERENCE", "SPIRV_LITERAL", "LEFT_OP", "RIGHT_OP", "INC_OP",
+ "DEC_OP", "LE_OP", "GE_OP", "EQ_OP", "NE_OP", "AND_OP", "OR_OP",
+ "XOR_OP", "MUL_ASSIGN", "DIV_ASSIGN", "ADD_ASSIGN", "MOD_ASSIGN",
+ "LEFT_ASSIGN", "RIGHT_ASSIGN", "AND_ASSIGN", "XOR_ASSIGN", "OR_ASSIGN",
+ "SUB_ASSIGN", "STRING_LITERAL", "LEFT_PAREN", "RIGHT_PAREN",
+ "LEFT_BRACKET", "RIGHT_BRACKET", "LEFT_BRACE", "RIGHT_BRACE", "DOT",
+ "COMMA", "COLON", "EQUAL", "SEMICOLON", "BANG", "DASH", "TILDE", "PLUS",
+ "STAR", "SLASH", "PERCENT", "LEFT_ANGLE", "RIGHT_ANGLE", "VERTICAL_BAR",
+ "CARET", "AMPERSAND", "QUESTION", "INVARIANT", "HIGH_PRECISION",
+ "MEDIUM_PRECISION", "LOW_PRECISION", "PRECISION", "PACKED", "RESOURCE",
+ "SUPERP", "FLOATCONSTANT", "INTCONSTANT", "UINTCONSTANT", "BOOLCONSTANT",
"IDENTIFIER", "TYPE_NAME", "CENTROID", "IN", "OUT", "INOUT", "STRUCT",
"VOID", "WHILE", "BREAK", "CONTINUE", "DO", "ELSE", "FOR", "IF",
"DISCARD", "RETURN", "SWITCH", "CASE", "DEFAULT", "TERMINATE_INVOCATION",
@@ -1317,7 +1358,18 @@ static const char *const yytname[] =
"for_init_statement", "conditionopt", "for_rest_statement",
"jump_statement", "translation_unit", "external_declaration",
"function_definition", "$@13", "attribute", "attribute_list",
- "single_attribute", YY_NULLPTR
+ "single_attribute", "spirv_requirements_list",
+ "spirv_requirements_parameter", "spirv_extension_list",
+ "spirv_capability_list", "spirv_execution_mode_qualifier",
+ "spirv_execution_mode_parameter_list", "spirv_execution_mode_parameter",
+ "spirv_execution_mode_id_parameter_list",
+ "spirv_storage_class_qualifier", "spirv_decorate_qualifier",
+ "spirv_decorate_parameter_list", "spirv_decorate_parameter",
+ "spirv_decorate_id_parameter_list",
+ "spirv_decorate_string_parameter_list", "spirv_type_specifier",
+ "spirv_type_parameter_list", "spirv_type_parameter",
+ "spirv_instruction_qualifier", "spirv_instruction_qualifier_list",
+ "spirv_instruction_qualifier_id", YY_NULLPTR
};
static const char *
@@ -1376,16 +1428,17 @@ static const yytype_int16 yytoknum[] =
665, 666, 667, 668, 669, 670, 671, 672, 673, 674,
675, 676, 677, 678, 679, 680, 681, 682, 683, 684,
685, 686, 687, 688, 689, 690, 691, 692, 693, 694,
- 695, 696, 697, 698, 699
+ 695, 696, 697, 698, 699, 700, 701, 702, 703, 704,
+ 705, 706, 707, 708, 709
};
#endif
-#define YYPACT_NINF (-732)
+#define YYPACT_NINF (-863)
#define yypact_value_is_default(Yyn) \
((Yyn) == YYPACT_NINF)
-#define YYTABLE_NINF (-559)
+#define YYTABLE_NINF (-570)
#define yytable_value_is_error(Yyn) \
0
@@ -1394,83 +1447,99 @@ static const yytype_int16 yytoknum[] =
STATE-NUM. */
static const yytype_int16 yypact[] =
{
- 4303, -732, -732, -732, -732, -732, -732, -732, -732, -732,
- -732, -732, -732, -732, -732, -732, -732, -732, -732, -732,
- -732, -732, -732, -732, -732, -732, -732, -732, -732, -732,
- -732, -732, -732, -732, -732, -732, -732, -732, -732, -732,
- -732, -732, -732, -732, -732, -732, -732, -732, -732, -732,
- -732, -732, -732, -732, -732, -732, -732, -732, -732, -732,
- -732, -732, -732, -732, -732, -732, -732, -732, -732, -732,
- -732, -732, -732, -732, -732, -732, -732, -732, -732, -732,
- -732, -732, -732, -732, -732, -732, -732, -732, -732, -732,
- -732, -732, -732, -732, -732, -732, -732, -732, -732, -732,
- -732, -732, -732, -732, -732, -732, -732, -732, -732, -732,
- -732, -732, -732, -732, -732, -732, -732, -732, -732, -732,
- -732, -732, -732, -732, -732, -732, -732, -732, -732, -732,
- -732, -732, -732, -732, -732, -732, -732, -732, -732, -732,
- -732, -732, -732, -732, -732, -732, -732, -732, -732, -732,
- -732, -732, -732, -732, -732, -732, -732, -732, -732, -732,
- -732, -732, -732, -732, -732, -732, -732, -732, -732, -732,
- -732, -732, -732, -732, -732, -732, -732, -732, -732, -732,
- -732, -732, -732, -732, -732, -732, -732, -732, -732, -732,
- -732, -732, -732, -732, -732, -732, -732, -732, -732, -732,
- -732, -732, -732, -732, -732, -732, -732, -732, -732, -732,
- -732, -732, -732, -732, -732, -732, -732, -732, -732, -732,
- -732, -732, -732, -732, -732, -732, -732, -732, -732, -732,
- -732, -732, -732, -732, -732, -732, -732, -732, -732, -732,
- -732, -732, -732, -732, -732, -732, -732, -732, -732, -732,
- -732, -732, -732, -732, -732, -732, -732, -732, -732, -732,
- -732, -732, -732, -732, -732, -732, -732, -732, -732, -732,
- -732, -732, -732, -732, -732, -732, -732, -732, -732, -732,
- -732, -732, -732, -732, -732, -732, -732, -732, -732, -732,
- -732, -732, -732, -732, -732, -732, -732, -732, -732, -732,
- -732, -732, -732, -732, -732, -732, -732, -732, -732, -732,
- -732, -732, -732, -732, -732, -732, -732, -732, -732, -732,
- 109, -732, -732, -732, -732, -732, 1, -732, -732, -732,
- -732, -732, -732, -324, -261, -732, -732, -732, -732, -732,
- -732, -732, -732, -732, -732, -732, -732, -732, -732, -732,
- -732, -732, -732, -732, -732, -732, -732, -732, -732, -732,
- -732, -732, -732, -732, -732, -732, -732, 11, 44, 22,
- 7, 6513, -332, -732, -10, -732, -732, -732, -732, 4745,
- -732, -732, -732, -732, 46, -732, -732, 767, -732, -732,
- 16, -732, 69, -5, 47, -732, -338, -732, 91, -732,
- 6513, -732, -732, -732, 6513, 72, 80, -732, 13, -732,
- 74, -732, -732, 9069, 126, -732, -732, -732, 127, 6513,
- -732, 144, -732, 17, -732, -732, 61, 7377, -732, 10,
- 1209, -732, -732, -732, -732, 126, 25, -732, 7800, 26,
- -732, 119, -732, 78, 9069, 9069, -732, 9069, -732, -732,
- -732, -732, -732, -732, -732, -732, -732, -732, -732, -732,
- -732, -732, -732, -732, -732, -732, -732, 36, -732, -732,
- -732, 164, 65, 9492, 171, -732, 9069, -732, -732, -340,
- 173, -732, 6513, 140, 5187, -732, 6513, 9069, -732, -5,
- -732, 141, -732, -732, 124, 130, 179, 27, 117, 156,
- 158, 160, 195, 194, 20, 181, 8223, -732, 183, 182,
- -732, -732, 186, 178, 180, -732, 189, 192, 184, 8646,
- 193, 9069, 187, 188, 190, 196, 197, 129, -732, -732,
- 89, -732, 44, 199, 204, -732, -732, -732, -732, -732,
- 1651, -732, -732, -732, -732, -732, -732, -732, -732, -732,
- -376, 173, 7800, 54, 7800, -732, -732, 7800, 6513, -732,
- 161, -732, -732, -732, 70, -732, -732, 9069, 169, -732,
- -732, 9069, 207, -732, -732, -732, 9069, -732, 140, 126,
- 103, -732, -732, -732, 5629, -732, -732, -732, -732, 9069,
- 9069, 9069, 9069, 9069, 9069, 9069, 9069, 9069, 9069, 9069,
- 9069, 9069, 9069, 9069, 9069, 9069, 9069, 9069, -732, -732,
- -732, 209, 177, -732, 2093, -732, -732, -732, 2093, -732,
- 9069, -732, -732, 122, 9069, 152, -732, -732, -732, -732,
- -732, -732, -732, -732, -732, -732, -732, -732, -732, -732,
- -732, -732, 9069, 9069, -732, -732, -732, -732, -732, -732,
- -732, 7800, -732, 143, -732, 6071, -732, -732, 211, 208,
- -732, -732, -732, 123, 173, 140, -732, -732, -732, -732,
- -732, 124, 124, 130, 130, 179, 179, 179, 179, 27,
- 27, 117, 156, 158, 160, 195, 194, 9069, -732, 216,
- 87, -732, 2093, 3861, 174, 3419, 75, -732, 85, -732,
- -732, -732, -732, -732, 6954, -732, -732, -732, -732, 154,
- 9069, 217, 177, 191, 208, 185, 6513, 221, 223, -732,
- -732, 3861, 220, -732, -732, -732, 9069, 224, -732, -732,
- -732, 218, 2535, 9069, -732, 219, 225, 198, 226, 2977,
- -732, 227, -732, -732, 7800, -732, -732, -732, 86, 9069,
- 2535, 220, -732, -732, 2093, -732, 222, 208, -732, -732,
- 2093, 228, -732, -732
+ 4549, -863, -863, -863, -863, -863, -863, -863, -863, -863,
+ -863, -863, -863, -863, -863, -863, -863, -863, -863, -863,
+ -863, -863, -863, -863, -863, -863, -863, -863, -863, -863,
+ -863, -863, -863, -863, -863, -863, -863, -863, -863, -863,
+ -863, -863, -863, -863, -863, -863, -863, -863, -863, -863,
+ -863, -863, -863, -863, -863, -863, -863, -863, -863, -863,
+ -863, -863, -863, -863, -863, -863, -863, -863, -863, -863,
+ -863, -863, -863, -863, -863, -863, -863, -863, -863, -863,
+ -863, -863, -863, -863, -863, -863, -863, -863, -863, -863,
+ -863, -863, -863, -863, -863, -863, -863, -863, -863, -863,
+ -863, -863, -863, -863, -863, -863, -863, -863, -863, -863,
+ -863, -863, -863, -863, -863, -863, -863, -863, -863, -863,
+ -863, -863, -863, -863, -863, -863, -863, -863, -863, -863,
+ -863, -863, -863, -863, -863, -863, -863, -863, -863, -863,
+ -863, -863, -863, -863, -863, -863, -863, -863, -863, -863,
+ -863, -863, -863, -863, -863, -863, -863, -863, -863, -863,
+ -863, -863, -863, -863, -863, -863, -863, -863, -863, -863,
+ -863, -863, -863, -863, -863, -863, -863, -863, -863, -863,
+ -863, -863, -863, -863, -863, -863, -863, -863, -863, -863,
+ -863, -863, -863, -863, -863, -863, -863, -863, -863, -863,
+ -863, -863, -863, -863, -863, -863, -863, -863, -863, -863,
+ -863, -863, -863, -863, -863, -863, -863, -863, -863, -863,
+ -863, -863, -863, -863, -863, -863, -863, -863, -863, -863,
+ -863, -863, -863, -863, -863, -863, -863, -863, -863, -863,
+ -863, -863, -863, -863, -863, -863, -863, -863, -863, -863,
+ -863, -863, -863, -863, -863, -863, -863, -863, -863, -863,
+ -863, -863, -863, -863, -863, -863, -863, -863, -863, -863,
+ -863, -863, -863, -863, -863, -863, -863, -863, -863, -863,
+ -863, -863, -863, -863, -863, -863, -863, -863, -863, -863,
+ -863, -863, -863, -863, -863, -863, -863, -863, -863, -863,
+ -863, -863, -863, -863, -863, -863, -863, -863, -863, -863,
+ -863, -863, -863, -863, -863, -260, -182, -177, -163, -130,
+ -115, -100, -89, -863, -863, -196, -863, -863, -863, -863,
+ -863, -324, -863, -863, -863, -863, -863, -306, -863, -863,
+ -863, -863, -863, -863, -77, -66, -863, -863, -863, -863,
+ -863, -863, -863, -863, -863, -863, -863, -863, -863, -863,
+ -863, -863, -863, -863, -863, -863, -863, -863, -863, -863,
+ -863, -863, -863, -863, -863, -863, -863, -863, -332, -175,
+ -153, -161, 7713, -266, -863, -71, -863, -863, -863, -863,
+ 5453, -863, -863, -863, -863, -116, -863, -863, 933, -863,
+ -863, 7713, -35, -863, -863, -863, 5905, -54, -139, -138,
+ -137, -128, -124, -54, -123, -51, 12061, -863, -15, -347,
+ -44, -863, -295, -863, -9, -6, 7713, -863, -863, -863,
+ 7713, -39, -38, -863, -303, -863, -226, -863, -863, 10762,
+ -3, -863, -863, -863, 1, -32, 7713, -863, -5, -8,
+ -1, -863, -230, -863, -219, -2, 3, 4, 5, -215,
+ 6, 8, 10, 11, 12, 15, -214, 13, 16, 21,
+ -134, -863, 17, 7713, -863, 19, -863, -212, -863, -863,
+ -211, 9030, -863, -273, 1385, -863, -863, -863, -863, -863,
+ -3, -263, -863, 9463, -236, -863, -28, -863, -106, 10762,
+ 10762, -863, 10762, -863, -863, -863, -863, -863, -863, -863,
+ -863, -863, -863, -863, -863, -863, -863, -863, -863, -863,
+ -863, -863, -264, -863, -863, -863, 23, -203, 11195, 25,
+ -863, 10762, -863, -863, -311, 24, -6, 29, -863, -309,
+ -54, -863, -20, -863, -323, 28, -118, 10762, -112, -863,
+ -155, -111, 10762, -103, 35, -98, -54, -863, 11628, -863,
+ -94, 10762, 32, -51, -863, 7713, 18, 6357, -863, 7713,
+ 10762, -863, -347, -863, 33, -863, -863, -72, -254, -86,
+ -297, -68, -13, 26, 20, 50, 49, -300, 42, 9896,
+ -863, 43, -863, -863, 55, 58, 60, -863, 65, 71,
+ 62, 10329, 73, 10762, 66, 69, 70, 72, 74, -241,
+ -863, -863, -41, -863, -175, 83, 85, -863, -863, -863,
+ -863, -863, 1837, -863, -863, -863, -863, -863, -863, -863,
+ -863, -863, 5001, 24, 9463, -233, 8164, -863, -863, 9463,
+ 7713, -863, 51, -863, -863, -863, -194, -863, -863, 10762,
+ 52, -863, -863, 10762, 88, -863, -863, -863, 10762, -863,
+ -863, -863, -315, -863, -863, -191, 82, -863, -863, -863,
+ -863, -863, -863, -190, -863, -187, -863, -863, -186, 86,
+ -863, -863, -863, -863, -169, -863, -168, -863, -167, 89,
+ -863, -165, 91, -157, 82, -863, 85, -156, -863, 94,
+ 98, -863, -863, 18, -3, -40, -863, -863, -863, 6809,
+ -863, -863, -863, 10762, 10762, 10762, 10762, 10762, 10762, 10762,
+ 10762, 10762, 10762, 10762, 10762, 10762, 10762, 10762, 10762, 10762,
+ 10762, 10762, -863, -863, -863, 97, -863, 2289, -863, -863,
+ -863, 2289, -863, 10762, -863, -863, -34, 10762, -79, -863,
+ -863, -863, -863, -863, -863, -863, -863, -863, -863, -863,
+ -863, -863, -863, -863, -863, 10762, 10762, -863, -863, -863,
+ -863, -863, -863, -863, 9463, -863, -863, -208, -863, 7261,
+ -863, -863, 99, 96, -863, -863, -863, -863, -863, -132,
+ -131, -863, -307, -863, -323, -863, -323, -863, 10762, 10762,
+ -863, -155, -863, -155, -863, 10762, 10762, -863, 93, 35,
+ -863, 11628, -863, 10762, -863, -863, -33, 24, 18, -863,
+ -863, -863, -863, -863, -72, -72, -254, -254, -86, -86,
+ -86, -86, -297, -297, -68, -13, 26, 20, 50, 49,
+ 10762, -863, 2289, 4097, 57, 3645, -154, -863, -152, -863,
+ -863, -863, -863, -863, 8597, -863, -863, -863, 105, -863,
+ 75, -863, -145, -863, -144, -863, -143, -863, -142, -863,
+ -141, -140, -863, -863, -863, -27, 100, 96, 76, 106,
+ 109, -863, -863, 4097, 107, -863, -863, -863, -863, -863,
+ -863, -863, -863, -863, -863, -863, 10762, -863, 101, 2741,
+ 10762, -863, 103, 113, 67, 112, 3193, -863, 114, -863,
+ 9463, -863, -863, -863, -133, 10762, 2741, 107, -863, -863,
+ 2289, -863, 110, 96, -863, -863, 2289, 116, -863, -863
};
/* YYDEFACT[STATE-NUM] -- Default reduction number in state STATE-NUM.
@@ -1478,117 +1547,137 @@ static const yytype_int16 yypact[] =
means the default is an error. */
static const yytype_int16 yydefact[] =
{
- 0, 157, 210, 208, 209, 207, 214, 215, 216, 217,
- 218, 219, 220, 221, 222, 211, 212, 213, 223, 224,
- 225, 226, 227, 228, 229, 230, 231, 232, 233, 234,
- 336, 337, 338, 339, 340, 341, 342, 362, 363, 364,
- 365, 366, 367, 368, 377, 390, 391, 378, 379, 381,
- 380, 382, 383, 384, 385, 386, 387, 388, 389, 165,
- 166, 236, 237, 235, 238, 245, 246, 243, 244, 241,
- 242, 239, 240, 268, 269, 270, 280, 281, 282, 265,
- 266, 267, 277, 278, 279, 262, 263, 264, 274, 275,
- 276, 259, 260, 261, 271, 272, 273, 247, 248, 249,
- 283, 284, 285, 250, 251, 252, 295, 296, 297, 253,
- 254, 255, 307, 308, 309, 256, 257, 258, 319, 320,
- 321, 286, 287, 288, 289, 290, 291, 292, 293, 294,
- 298, 299, 300, 301, 302, 303, 304, 305, 306, 310,
- 311, 312, 313, 314, 315, 316, 317, 318, 322, 323,
- 324, 325, 326, 327, 328, 329, 330, 334, 331, 332,
- 333, 515, 516, 517, 346, 347, 370, 373, 335, 344,
- 345, 361, 343, 392, 393, 396, 397, 398, 400, 401,
- 402, 404, 405, 406, 408, 409, 505, 506, 369, 371,
- 372, 348, 349, 350, 394, 351, 355, 356, 359, 399,
- 403, 407, 352, 353, 357, 358, 395, 354, 360, 439,
- 441, 442, 443, 445, 446, 447, 449, 450, 451, 453,
- 454, 455, 457, 458, 459, 461, 462, 463, 465, 466,
- 467, 469, 470, 471, 473, 474, 475, 477, 478, 479,
- 481, 482, 440, 444, 448, 452, 456, 464, 468, 472,
- 460, 476, 480, 483, 484, 485, 486, 487, 488, 489,
- 490, 491, 492, 493, 494, 495, 496, 497, 498, 499,
- 500, 501, 502, 503, 504, 374, 375, 376, 410, 419,
- 421, 415, 420, 422, 423, 425, 426, 427, 429, 430,
- 431, 433, 434, 435, 437, 438, 411, 412, 413, 424,
- 414, 416, 417, 418, 428, 432, 436, 507, 508, 511,
- 512, 513, 514, 509, 510, 609, 132, 520, 521, 522,
- 0, 519, 161, 159, 160, 158, 0, 206, 162, 163,
- 164, 134, 133, 0, 190, 171, 173, 169, 175, 177,
- 172, 174, 170, 176, 178, 167, 168, 192, 179, 186,
- 187, 188, 189, 180, 181, 182, 183, 184, 185, 135,
- 136, 137, 138, 139, 140, 147, 608, 0, 610, 0,
- 109, 108, 0, 120, 125, 154, 153, 151, 155, 0,
- 148, 150, 156, 130, 202, 152, 518, 0, 605, 607,
- 0, 525, 0, 0, 0, 97, 0, 94, 0, 107,
- 0, 116, 110, 118, 0, 119, 0, 95, 126, 100,
- 0, 149, 131, 0, 195, 201, 1, 606, 0, 0,
- 523, 144, 146, 0, 142, 193, 0, 0, 98, 0,
- 0, 611, 111, 115, 117, 113, 121, 112, 0, 127,
- 103, 0, 101, 0, 0, 0, 9, 0, 43, 42,
- 44, 41, 5, 6, 7, 8, 2, 16, 14, 15,
- 17, 10, 11, 12, 13, 3, 18, 37, 20, 25,
- 26, 0, 0, 30, 0, 204, 0, 36, 34, 0,
- 196, 96, 0, 0, 0, 527, 0, 0, 141, 0,
- 191, 0, 197, 45, 49, 52, 55, 60, 63, 65,
- 67, 69, 71, 73, 75, 0, 0, 99, 0, 553,
- 562, 566, 0, 0, 0, 587, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 45, 78, 91,
- 0, 540, 0, 156, 130, 543, 564, 542, 550, 541,
- 0, 544, 545, 568, 546, 575, 547, 548, 583, 549,
- 0, 114, 0, 122, 0, 535, 129, 0, 0, 105,
- 0, 102, 38, 39, 0, 22, 23, 0, 0, 28,
- 27, 0, 206, 31, 33, 40, 0, 203, 0, 533,
- 0, 531, 526, 528, 0, 93, 145, 143, 194, 0,
+ 0, 166, 219, 217, 218, 216, 223, 224, 225, 226,
+ 227, 228, 229, 230, 231, 220, 221, 222, 232, 233,
+ 234, 235, 236, 237, 238, 239, 240, 241, 242, 243,
+ 345, 346, 347, 348, 349, 350, 351, 371, 372, 373,
+ 374, 375, 376, 377, 386, 399, 400, 387, 388, 390,
+ 389, 391, 392, 393, 394, 395, 396, 397, 398, 174,
+ 175, 245, 246, 244, 247, 254, 255, 252, 253, 250,
+ 251, 248, 249, 277, 278, 279, 289, 290, 291, 274,
+ 275, 276, 286, 287, 288, 271, 272, 273, 283, 284,
+ 285, 268, 269, 270, 280, 281, 282, 256, 257, 258,
+ 292, 293, 294, 259, 260, 261, 304, 305, 306, 262,
+ 263, 264, 316, 317, 318, 265, 266, 267, 328, 329,
+ 330, 295, 296, 297, 298, 299, 300, 301, 302, 303,
+ 307, 308, 309, 310, 311, 312, 313, 314, 315, 319,
+ 320, 321, 322, 323, 324, 325, 326, 327, 331, 332,
+ 333, 334, 335, 336, 337, 338, 339, 343, 340, 341,
+ 342, 524, 525, 526, 355, 356, 379, 382, 344, 353,
+ 354, 370, 352, 401, 402, 405, 406, 407, 409, 410,
+ 411, 413, 414, 415, 417, 418, 514, 515, 378, 380,
+ 381, 357, 358, 359, 403, 360, 364, 365, 368, 408,
+ 412, 416, 361, 362, 366, 367, 404, 363, 369, 448,
+ 450, 451, 452, 454, 455, 456, 458, 459, 460, 462,
+ 463, 464, 466, 467, 468, 470, 471, 472, 474, 475,
+ 476, 478, 479, 480, 482, 483, 484, 486, 487, 488,
+ 490, 491, 449, 453, 457, 461, 465, 473, 477, 481,
+ 469, 485, 489, 492, 493, 494, 495, 496, 497, 498,
+ 499, 500, 501, 502, 503, 504, 505, 506, 507, 508,
+ 509, 510, 511, 512, 513, 383, 384, 385, 419, 428,
+ 430, 424, 429, 431, 432, 434, 435, 436, 438, 439,
+ 440, 442, 443, 444, 446, 447, 420, 421, 422, 433,
+ 423, 425, 426, 427, 437, 441, 445, 516, 517, 520,
+ 521, 522, 523, 518, 519, 0, 0, 0, 0, 0,
+ 0, 0, 0, 164, 165, 0, 620, 137, 530, 531,
+ 532, 0, 529, 170, 168, 169, 167, 0, 215, 171,
+ 172, 173, 139, 138, 0, 199, 180, 182, 178, 184,
+ 186, 181, 183, 179, 185, 187, 176, 177, 201, 188,
+ 195, 196, 197, 198, 189, 190, 191, 192, 193, 194,
+ 140, 141, 142, 143, 144, 145, 152, 619, 0, 621,
+ 0, 114, 113, 0, 125, 130, 159, 158, 156, 160,
+ 0, 153, 155, 161, 135, 211, 157, 528, 0, 616,
+ 618, 0, 0, 162, 163, 527, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 535, 0, 0,
+ 0, 99, 0, 94, 0, 109, 0, 121, 115, 123,
+ 0, 124, 0, 97, 131, 102, 0, 154, 136, 0,
+ 204, 210, 1, 617, 0, 0, 0, 96, 0, 0,
+ 0, 628, 0, 681, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 626,
+ 0, 624, 0, 0, 533, 149, 151, 0, 147, 202,
+ 0, 0, 100, 0, 0, 622, 110, 116, 120, 122,
+ 118, 126, 117, 0, 132, 105, 0, 103, 0, 0,
+ 0, 9, 0, 43, 42, 44, 41, 5, 6, 7,
+ 8, 2, 16, 14, 15, 17, 10, 11, 12, 13,
+ 3, 18, 37, 20, 25, 26, 0, 0, 30, 0,
+ 213, 0, 36, 34, 0, 205, 111, 0, 95, 0,
+ 0, 679, 0, 636, 0, 0, 0, 0, 0, 653,
+ 0, 0, 0, 0, 0, 0, 0, 673, 0, 651,
+ 0, 0, 0, 0, 98, 0, 0, 0, 537, 0,
+ 0, 146, 0, 200, 0, 206, 45, 49, 52, 55,
+ 60, 63, 65, 67, 69, 71, 73, 75, 0, 0,
+ 101, 564, 573, 577, 0, 0, 0, 598, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 45,
+ 78, 91, 0, 551, 0, 161, 135, 554, 575, 553,
+ 561, 552, 0, 555, 556, 579, 557, 586, 558, 559,
+ 594, 560, 0, 119, 0, 127, 0, 545, 134, 0,
+ 0, 107, 0, 104, 38, 39, 0, 22, 23, 0,
+ 0, 28, 27, 0, 215, 31, 33, 40, 0, 212,
+ 112, 683, 0, 684, 629, 0, 0, 682, 648, 644,
+ 645, 646, 647, 0, 642, 0, 93, 649, 0, 0,
+ 663, 664, 665, 666, 0, 661, 0, 667, 0, 0,
+ 669, 0, 0, 0, 2, 677, 678, 0, 675, 0,
+ 0, 623, 625, 0, 543, 0, 541, 536, 538, 0,
+ 150, 148, 203, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 76, 198,
- 199, 0, 0, 552, 0, 585, 598, 597, 0, 589,
- 0, 601, 599, 0, 0, 0, 582, 602, 603, 604,
- 551, 81, 82, 84, 83, 86, 87, 88, 89, 90,
- 85, 80, 0, 0, 567, 563, 565, 569, 576, 584,
- 124, 0, 538, 0, 128, 0, 106, 4, 0, 24,
- 21, 32, 205, 0, 534, 0, 529, 524, 46, 47,
- 48, 51, 50, 53, 54, 58, 59, 56, 57, 61,
- 62, 64, 66, 68, 70, 72, 74, 0, 200, 615,
- 0, 613, 554, 0, 0, 0, 0, 600, 0, 581,
- 79, 92, 123, 536, 0, 104, 19, 530, 532, 0,
- 0, 0, 0, 0, 573, 0, 0, 0, 0, 592,
- 591, 594, 560, 577, 537, 539, 0, 0, 612, 614,
- 555, 0, 0, 0, 593, 0, 0, 572, 0, 0,
- 570, 0, 77, 616, 0, 557, 586, 556, 0, 595,
- 0, 560, 559, 561, 579, 574, 0, 596, 590, 571,
- 580, 0, 588, 578
+ 0, 0, 76, 207, 208, 0, 563, 0, 596, 609,
+ 608, 0, 600, 0, 612, 610, 0, 0, 0, 593,
+ 613, 614, 615, 562, 81, 82, 84, 83, 86, 87,
+ 88, 89, 90, 85, 80, 0, 0, 578, 574, 576,
+ 580, 587, 595, 129, 0, 548, 549, 0, 133, 0,
+ 108, 4, 0, 24, 21, 32, 214, 632, 634, 0,
+ 0, 680, 0, 638, 0, 637, 0, 640, 0, 0,
+ 655, 0, 654, 0, 657, 0, 0, 659, 0, 0,
+ 674, 0, 671, 0, 652, 627, 0, 544, 0, 539,
+ 534, 46, 47, 48, 51, 50, 53, 54, 58, 59,
+ 56, 57, 61, 62, 64, 66, 68, 70, 72, 74,
+ 0, 209, 565, 0, 0, 0, 0, 611, 0, 592,
+ 79, 92, 128, 546, 0, 106, 19, 630, 0, 631,
+ 0, 643, 0, 650, 0, 662, 0, 668, 0, 670,
+ 0, 0, 676, 540, 542, 0, 0, 584, 0, 0,
+ 0, 603, 602, 605, 571, 588, 547, 550, 633, 635,
+ 639, 641, 656, 658, 660, 672, 0, 566, 0, 0,
+ 0, 604, 0, 0, 583, 0, 0, 581, 0, 77,
+ 0, 568, 597, 567, 0, 606, 0, 571, 570, 572,
+ 590, 585, 0, 607, 601, 582, 591, 0, 599, 589
};
/* YYPGOTO[NTERM-NUM]. */
static const yytype_int16 yypgoto[] =
{
- -732, -732, -732, -732, -732, -732, -732, -732, -732, -732,
- -732, -732, 9402, -732, -90, -89, -153, -92, -29, -28,
- -27, -26, -30, -25, -732, -88, -732, -101, -732, -113,
- -132, 2, -732, -732, -732, 4, -732, -732, -732, 200,
- 201, 202, -732, -732, -343, -732, -732, -732, -732, 92,
- -732, -36, -46, -732, 9, -732, 0, -67, -732, -732,
- -732, -732, 263, -732, -732, -732, -481, -142, 8, -78,
- -214, -732, -107, -204, -731, -732, -149, -732, -732, -160,
- -159, -732, -732, 212, -269, -104, -732, 45, -732, -127,
- -732, 48, -732, -732, -732, -732, 49, -732, -732, -732,
- -732, -732, -732, -732, -732, 210, -732, -732, -732, -732,
- -116
+ -863, -863, -863, -863, -863, -863, -863, -863, -863, -863,
+ -863, -863, -418, -863, -380, -379, -484, -382, -258, -256,
+ -253, -257, -252, -255, -863, -478, -863, -485, -863, -491,
+ -530, 14, -863, -863, -863, 7, -397, -863, -863, 44,
+ 53, 47, -863, -863, -400, -863, -863, -863, -863, -92,
+ -863, -377, -362, -863, 9, -863, 0, -414, -863, -863,
+ -863, -863, 150, -863, -863, -863, -546, -548, -218, -331,
+ -624, -863, -359, -609, -862, -863, -417, -863, -863, -427,
+ -426, -863, -863, 68, -719, -355, -863, -136, -863, -389,
+ -863, -135, -863, -863, -863, -863, -129, -863, -863, -863,
+ -863, -863, -863, -863, -863, 102, -863, -863, 2, -863,
+ -65, -234, -432, -863, -863, -863, -301, -293, -294, -863,
+ -863, -304, -299, -302, -298, -863, -296, -305, -863, -383,
+ -526
};
/* YYDEFGOTO[NTERM-NUM]. */
static const yytype_int16 yydefgoto[] =
{
- -1, 465, 466, 467, 658, 468, 469, 470, 471, 472,
- 473, 474, 527, 476, 494, 495, 496, 497, 498, 499,
- 500, 501, 502, 503, 504, 528, 687, 529, 642, 530,
- 586, 531, 367, 558, 443, 532, 369, 370, 371, 401,
- 402, 403, 372, 373, 374, 375, 376, 377, 423, 424,
- 378, 379, 380, 381, 477, 426, 478, 429, 414, 415,
- 479, 384, 385, 386, 486, 419, 484, 485, 580, 581,
- 556, 653, 535, 536, 537, 538, 539, 614, 713, 746,
- 737, 738, 739, 747, 540, 541, 542, 543, 740, 717,
- 544, 545, 741, 761, 546, 547, 548, 693, 618, 695,
- 721, 735, 736, 549, 387, 388, 389, 398, 550, 690,
- 691
+ -1, 520, 521, 522, 782, 523, 524, 525, 526, 527,
+ 528, 529, 609, 531, 577, 578, 579, 580, 581, 582,
+ 583, 584, 585, 586, 587, 610, 840, 611, 765, 612,
+ 695, 613, 378, 640, 498, 614, 380, 381, 382, 427,
+ 428, 429, 383, 384, 385, 386, 387, 388, 477, 478,
+ 389, 390, 391, 392, 532, 480, 533, 483, 440, 441,
+ 534, 395, 396, 397, 569, 473, 567, 568, 705, 706,
+ 638, 777, 617, 618, 619, 620, 621, 737, 876, 912,
+ 904, 905, 906, 913, 622, 623, 624, 625, 907, 879,
+ 626, 627, 908, 927, 628, 629, 630, 843, 741, 845,
+ 883, 902, 903, 631, 398, 399, 400, 424, 632, 470,
+ 471, 450, 451, 789, 790, 402, 673, 674, 678, 403,
+ 404, 684, 685, 688, 691, 405, 697, 698, 406, 452,
+ 453
};
/* YYTABLE[YYPACT[STATE-NUM]] -- What to do in state STATE-NUM. If
@@ -1596,83 +1685,190 @@ static const yytype_int16 yydefgoto[] =
number is the opposite. If YYTABLE_NINF, syntax error. */
static const yytype_int16 yytable[] =
{
- 383, 745, 366, 427, 368, 584, 576, 512, 753, 382,
- 515, 428, 516, 517, 406, 393, 520, 407, 577, 745,
- 2, 3, 4, 5, 6, 7, 8, 9, 10, 11,
- 12, 13, 14, 15, 16, 17, 18, 19, 20, 21,
- 22, 23, 24, 25, 26, 27, 28, 29, 30, 31,
- 32, 33, 34, 35, 36, 37, 38, 39, 40, 41,
- 42, 43, 44, 45, 46, 47, 48, 49, 50, 51,
- 52, 53, 54, 55, 56, 57, 58, 655, 394, 61,
- 62, 63, 64, 65, 66, 67, 68, 69, 70, 71,
- 72, 73, 74, 75, 76, 77, 78, 79, 80, 81,
- 82, 83, 84, 85, 86, 87, 88, 89, 90, 91,
- 92, 93, 94, 95, 96, 97, 98, 99, 100, 101,
- 102, 103, 104, 105, 106, 107, 108, 109, 110, 111,
- 112, 113, 114, 115, 116, 117, 118, 119, 120, 121,
- 122, 123, 124, 125, 126, 127, 128, 129, 130, 131,
- 132, 133, 134, 135, 136, 137, 138, 139, 140, 141,
- 142, 143, 144, 145, 146, 147, 148, 149, 150, 151,
- 152, 153, 154, 155, 156, 157, 158, 159, 160, 161,
- 162, 163, 164, 165, 166, 167, 168, 169, 170, 171,
- 172, 173, 174, 175, 176, 177, 178, 179, 180, 181,
- 182, 183, 184, 185, 186, 187, 188, 189, 190, 191,
- 192, 193, 194, 195, 196, 197, 198, 199, 200, 201,
- 202, 203, 204, 205, 206, 207, 208, 209, 210, 211,
- 212, 213, 214, 215, 216, 217, 218, 219, 220, 221,
- 222, 223, 224, 225, 226, 227, 228, 229, 230, 231,
- 232, 233, 234, 235, 236, 237, 238, 239, 240, 241,
- 242, 243, 244, 245, 246, 247, 248, 249, 250, 251,
- 252, 253, 254, 255, 256, 257, 258, 259, 260, 261,
- 262, 263, 264, 265, 266, 267, 268, 269, 270, 271,
- 272, 273, 274, 275, 276, 277, 278, 279, 280, 281,
- 282, 283, 284, 285, 286, 287, 288, 289, 290, 291,
- 292, 293, 294, 295, 296, 297, 298, 299, 300, 301,
- 302, 303, 304, 305, 306, 307, 308, 309, 310, 311,
- 312, 313, 314, 411, 564, 404, 646, 555, 650, 505,
- 652, 439, 583, 654, 391, 692, 607, 480, 596, 597,
- 715, 506, 437, 400, 427, 565, 566, 488, 411, 507,
- 395, 438, 399, 489, 404, 408, 427, 506, 551, 553,
- 421, 405, 573, 552, 557, -35, 392, 567, 715, 412,
- 382, 568, 608, 482, 598, 599, 396, 383, 382, 366,
- 418, 368, 321, 397, 422, 506, 382, 326, 327, 585,
- 405, 490, 651, 413, 405, 570, 623, 491, 625, 382,
- 657, 571, 420, 382, 694, 722, 643, 440, 611, 483,
- 441, 643, 425, 442, 560, 723, 756, 561, 382, 711,
- 534, 643, 643, 712, 430, 643, 411, 702, 644, 533,
- 600, 601, 583, 675, 676, 677, 678, 435, 482, 665,
- 482, 555, 666, 555, 659, 436, 555, 631, 632, 633,
- 634, 635, 636, 637, 638, 639, 640, 427, 643, 665,
- 661, 697, 707, 317, 318, 319, 481, 641, 589, 590,
- 591, 592, 578, 593, 483, 760, 483, 703, 646, 704,
- 725, 382, 487, 382, 559, 382, 594, 595, 643, 699,
- 643, 726, 671, 672, 569, 673, 674, 696, 679, 680,
- 574, 698, 664, 583, 506, 579, 588, 602, 603, 604,
- 605, 606, 482, 609, 612, 615, 613, 616, 619, 617,
- 755, 620, 624, 621, 626, 730, 656, 627, -36, 628,
- 534, 700, 701, -34, 660, 629, 630, -29, 482, 533,
- 555, 688, 689, 706, 643, 710, 646, 718, 483, 728,
- 731, 732, 733, -558, 743, 750, 744, 382, 749, 509,
- 754, 762, 763, 681, 709, 682, 685, 683, 727, 684,
- 714, 587, 686, 390, 483, 751, 663, 708, 719, 752,
- 758, 720, 759, 382, 734, 647, 729, 417, 648, 649,
- 0, 432, 0, 555, 433, 0, 434, 0, 714, 0,
- 431, 0, 0, 0, 534, 0, 0, 0, 534, 482,
- 748, 0, 585, 533, 0, 742, 0, 533, 0, 0,
- 0, 0, 0, 0, 0, 0, 757, 0, 0, 0,
- 0, 0, 0, 555, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 483, 0, 716, 0, 0,
- 0, 0, 0, 0, 382, 0, 0, 0, 0, 0,
- 411, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 716, 0, 0, 0, 0,
- 0, 0, 534, 534, 0, 534, 0, 0, 0, 0,
- 0, 533, 533, 0, 533, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 412, 0, 0, 0,
- 0, 534, 0, 0, 0, 382, 0, 0, 0, 0,
- 533, 0, 534, 0, 0, 0, 0, 0, 0, 534,
- 0, 533, 0, 0, 0, 0, 0, 0, 533, 0,
- 534, 0, 0, 0, 534, 0, 0, 0, 0, 533,
- 534, 0, 0, 533, 0, 0, 0, 416, 0, 533,
+ 394, 445, 401, 588, 444, 430, 445, 379, 637, 393,
+ 773, 646, 776, 769, 377, 778, 667, 677, 842, 708,
+ 494, 530, 687, 709, 446, 668, 535, 421, 437, 446,
+ 466, 700, 667, 787, 720, 721, 731, 911, 475, 661,
+ 710, 661, 662, 655, 919, 658, 492, 417, 481, 430,
+ 328, 329, 330, 422, 911, 493, 481, 659, 669, 670,
+ 671, 672, 476, 576, 482, 647, 648, 788, 437, 676,
+ 722, 723, 732, 663, 676, 663, 633, 635, 589, 418,
+ 676, 644, 645, 676, 437, -35, 590, 649, 481, 407,
+ 432, 650, 676, 433, 779, 634, 565, 754, 755, 756,
+ 757, 758, 759, 760, 761, 762, 763, 716, 664, 717,
+ 746, 735, 748, 657, 664, 589, 664, 764, 589, 664,
+ 541, 664, 639, 664, 664, 774, 542, 495, 664, 576,
+ 496, 543, 844, 497, 576, 549, 557, 544, 571, 573,
+ 576, 550, 558, 576, 572, 574, 853, 652, 854, 637,
+ 852, 637, 576, 653, 637, 415, 781, 665, 783, 791,
+ 793, 708, 766, 795, 797, 542, 794, 408, 785, 796,
+ 798, 576, 409, 693, 456, 458, 460, 462, 464, 465,
+ 468, 800, 802, 804, 423, 807, 410, 801, 803, 805,
+ 565, 808, 565, 810, 812, 426, 884, 425, 885, 811,
+ 813, 926, 766, 437, 766, 890, 891, 892, 893, 894,
+ 895, 794, 798, 801, 805, 808, 813, 922, 562, 411,
+ 857, 859, 563, 766, 858, 860, 680, 681, 682, 683,
+ 887, 708, 445, 769, 412, 444, 828, 829, 830, 831,
+ 786, 718, 719, 454, 457, 459, 455, 455, 455, 413,
+ 642, 439, 846, 643, 461, 446, 848, 455, 463, 467,
+ 414, 455, 455, 565, 675, 724, 725, 455, 863, 677,
+ 679, 686, 419, 455, 455, 867, 687, 766, 849, 689,
+ 850, 851, 455, 420, 692, 667, 921, 455, 699, 637,
+ 817, 455, 713, 714, 715, 821, 822, 823, 576, 576,
+ 576, 576, 576, 576, 576, 576, 576, 576, 576, 576,
+ 576, 576, 576, 576, 434, 766, 818, 769, 767, 819,
+ 676, 676, 766, 818, 447, 847, 873, 676, 676, 766,
+ 896, 449, 565, 676, 469, 676, 824, 825, 474, 826,
+ 827, 479, 832, 833, 484, 325, 490, 491, 481, 875,
+ 539, 536, 877, 537, 538, 540, 545, 641, 726, 546,
+ 547, 548, 551, 559, 552, 666, 553, 554, 555, 637,
+ 561, 556, 560, 651, 656, 589, 564, 570, 492, 662,
+ 576, 576, 431, 690, 701, 729, 730, 576, 576, 728,
+ 438, 393, 877, 576, 733, 576, 727, 736, 394, 393,
+ 401, 394, 565, 704, 738, 379, 394, 393, 401, 914,
+ 393, 909, 377, 448, 742, 393, 472, 739, 712, 740,
+ 743, 744, 747, 749, 923, 637, 431, 486, 750, 751,
+ 431, 752, -36, 753, -34, 393, 780, 784, -29, 393,
+ 792, 869, 799, 878, 814, 806, 438, 809, 815, 841,
+ 880, 856, 766, 888, 897, 393, 899, 889, 900, 910,
+ -569, 898, 915, 916, 917, 591, 446, 920, 834, 928,
+ 929, 835, 837, 566, 488, 836, 839, 489, 838, 487,
+ 711, 416, 393, 878, 616, 816, 881, 874, 918, 924,
+ 882, 925, 485, 615, 901, 862, 770, 771, 702, 866,
+ 443, 861, 865, 772, 868, 864, 446, 0, 872, 0,
+ 0, 870, 0, 0, 0, 871, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 660, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 696, 0,
+ 0, 0, 0, 0, 0, 703, 0, 566, 0, 566,
+ 0, 0, 0, 0, 393, 0, 393, 0, 393, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 616, 0, 0, 0, 0, 0, 0, 0,
+ 0, 615, 394, 0, 0, 0, 0, 0, 0, 0,
+ 566, 393, 0, 0, 0, 0, 0, 0, 0, 393,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 566,
+ 0, 0, 0, 0, 0, 0, 0, 0, 393, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 616, 0, 0,
+ 0, 616, 0, 0, 0, 0, 615, 0, 0, 0,
+ 615, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 566,
+ 0, 0, 0, 0, 0, 0, 0, 0, 393, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 696, 0, 696, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 616, 616, 0, 616, 0, 401, 0, 0,
+ 0, 615, 615, 0, 615, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 616, 0, 0, 0, 0, 0, 0,
+ 0, 0, 615, 0, 0, 0, 0, 0, 0, 616,
+ 0, 0, 0, 0, 0, 0, 616, 0, 615, 0,
+ 0, 0, 0, 0, 0, 615, 616, 0, 0, 0,
+ 616, 0, 0, 0, 0, 615, 616, 0, 0, 615,
+ 0, 0, 0, 442, 0, 615, 1, 2, 3, 4,
+ 5, 6, 7, 8, 9, 10, 11, 12, 13, 14,
+ 15, 16, 17, 18, 19, 20, 21, 22, 23, 24,
+ 25, 26, 27, 28, 29, 30, 31, 32, 33, 34,
+ 35, 36, 37, 38, 39, 40, 41, 42, 43, 44,
+ 45, 46, 47, 48, 49, 50, 51, 52, 53, 54,
+ 55, 56, 57, 58, 59, 60, 61, 62, 63, 64,
+ 65, 66, 67, 68, 69, 70, 71, 72, 73, 74,
+ 75, 76, 77, 78, 79, 80, 81, 82, 83, 84,
+ 85, 86, 87, 88, 89, 90, 91, 92, 93, 94,
+ 95, 96, 97, 98, 99, 100, 101, 102, 103, 104,
+ 105, 106, 107, 108, 109, 110, 111, 112, 113, 114,
+ 115, 116, 117, 118, 119, 120, 121, 122, 123, 124,
+ 125, 126, 127, 128, 129, 130, 131, 132, 133, 134,
+ 135, 136, 137, 138, 139, 140, 141, 142, 143, 144,
+ 145, 146, 147, 148, 149, 150, 151, 152, 153, 154,
+ 155, 156, 157, 158, 159, 160, 161, 162, 163, 164,
+ 165, 166, 167, 168, 169, 170, 171, 172, 173, 174,
+ 175, 176, 177, 178, 179, 180, 181, 182, 183, 184,
+ 185, 186, 187, 188, 189, 190, 191, 192, 193, 194,
+ 195, 196, 197, 198, 199, 200, 201, 202, 203, 204,
+ 205, 206, 207, 208, 209, 210, 211, 212, 213, 214,
+ 215, 216, 217, 218, 219, 220, 221, 222, 223, 224,
+ 225, 226, 227, 228, 229, 230, 231, 232, 233, 234,
+ 235, 236, 237, 238, 239, 240, 241, 242, 243, 244,
+ 245, 246, 247, 248, 249, 250, 251, 252, 253, 254,
+ 255, 256, 257, 258, 259, 260, 261, 262, 263, 264,
+ 265, 266, 267, 268, 269, 270, 271, 272, 273, 274,
+ 275, 276, 277, 278, 279, 280, 281, 282, 283, 284,
+ 285, 286, 287, 288, 289, 290, 291, 292, 293, 294,
+ 295, 296, 297, 298, 299, 300, 301, 302, 303, 304,
+ 305, 306, 307, 308, 309, 310, 311, 312, 313, 314,
+ 315, 316, 317, 318, 319, 320, 321, 322, 323, 324,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 325, 0, 0, 0, 0, 0,
+ 0, 0, 326, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 327, 328, 329, 330,
+ 331, 0, 0, 0, 0, 0, 0, 0, 0, 332,
+ 333, 334, 335, 336, 337, 338, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 339, 340, 341, 342, 343, 344, 0, 0, 0,
+ 0, 0, 0, 0, 0, 345, 0, 346, 347, 348,
+ 349, 350, 351, 352, 353, 354, 355, 356, 357, 358,
+ 359, 360, 361, 362, 363, 364, 365, 366, 367, 368,
+ 369, 370, 371, 372, 373, 374, 375, 376, 1, 2,
+ 3, 4, 5, 6, 7, 8, 9, 10, 11, 12,
+ 13, 14, 15, 16, 17, 18, 19, 20, 21, 22,
+ 23, 24, 25, 26, 27, 28, 29, 30, 31, 32,
+ 33, 34, 35, 36, 37, 38, 39, 40, 41, 42,
+ 43, 44, 45, 46, 47, 48, 49, 50, 51, 52,
+ 53, 54, 55, 56, 57, 58, 59, 60, 61, 62,
+ 63, 64, 65, 66, 67, 68, 69, 70, 71, 72,
+ 73, 74, 75, 76, 77, 78, 79, 80, 81, 82,
+ 83, 84, 85, 86, 87, 88, 89, 90, 91, 92,
+ 93, 94, 95, 96, 97, 98, 99, 100, 101, 102,
+ 103, 104, 105, 106, 107, 108, 109, 110, 111, 112,
+ 113, 114, 115, 116, 117, 118, 119, 120, 121, 122,
+ 123, 124, 125, 126, 127, 128, 129, 130, 131, 132,
+ 133, 134, 135, 136, 137, 138, 139, 140, 141, 142,
+ 143, 144, 145, 146, 147, 148, 149, 150, 151, 152,
+ 153, 154, 155, 156, 157, 158, 159, 160, 161, 162,
+ 163, 164, 165, 166, 167, 168, 169, 170, 171, 172,
+ 173, 174, 175, 176, 177, 178, 179, 180, 181, 182,
+ 183, 184, 185, 186, 187, 188, 189, 190, 191, 192,
+ 193, 194, 195, 196, 197, 198, 199, 200, 201, 202,
+ 203, 204, 205, 206, 207, 208, 209, 210, 211, 212,
+ 213, 214, 215, 216, 217, 218, 219, 220, 221, 222,
+ 223, 224, 225, 226, 227, 228, 229, 230, 231, 232,
+ 233, 234, 235, 236, 237, 238, 239, 240, 241, 242,
+ 243, 244, 245, 246, 247, 248, 249, 250, 251, 252,
+ 253, 254, 255, 256, 257, 258, 259, 260, 261, 262,
+ 263, 264, 265, 266, 267, 268, 269, 270, 271, 272,
+ 273, 274, 275, 276, 277, 278, 279, 280, 281, 282,
+ 283, 284, 285, 286, 287, 288, 289, 290, 291, 292,
+ 293, 294, 295, 296, 297, 298, 299, 300, 301, 302,
+ 303, 304, 305, 306, 307, 308, 309, 310, 311, 312,
+ 313, 314, 315, 316, 317, 318, 319, 320, 321, 322,
+ 323, 324, 0, 0, 499, 500, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 501, 502, 0, 325, 0, 591, 592,
+ 0, 0, 0, 0, 593, 503, 504, 505, 506, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 327, 328,
+ 329, 330, 331, 0, 0, 0, 507, 508, 509, 510,
+ 511, 332, 333, 334, 335, 336, 337, 338, 594, 595,
+ 596, 597, 0, 598, 599, 600, 601, 602, 603, 604,
+ 605, 606, 607, 339, 340, 341, 342, 343, 344, 512,
+ 513, 514, 515, 516, 517, 518, 519, 345, 608, 346,
+ 347, 348, 349, 350, 351, 352, 353, 354, 355, 356,
+ 357, 358, 359, 360, 361, 362, 363, 364, 365, 366,
+ 367, 368, 369, 370, 371, 372, 373, 374, 375, 376,
1, 2, 3, 4, 5, 6, 7, 8, 9, 10,
11, 12, 13, 14, 15, 16, 17, 18, 19, 20,
21, 22, 23, 24, 25, 26, 27, 28, 29, 30,
@@ -1704,20 +1900,21 @@ static const yytype_int16 yytable[] =
281, 282, 283, 284, 285, 286, 287, 288, 289, 290,
291, 292, 293, 294, 295, 296, 297, 298, 299, 300,
301, 302, 303, 304, 305, 306, 307, 308, 309, 310,
- 311, 312, 313, 314, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 315, 0, 0, 0,
+ 311, 312, 313, 314, 315, 316, 317, 318, 319, 320,
+ 321, 322, 323, 324, 0, 0, 499, 500, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 316, 317, 318, 319, 320, 0, 0, 0, 0, 0,
- 0, 0, 0, 321, 322, 323, 324, 325, 326, 327,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 328, 329, 330, 331, 332,
- 333, 0, 0, 0, 0, 0, 0, 0, 0, 334,
- 0, 335, 336, 337, 338, 339, 340, 341, 342, 343,
- 344, 345, 346, 347, 348, 349, 350, 351, 352, 353,
- 354, 355, 356, 357, 358, 359, 360, 361, 362, 363,
- 364, 365, 1, 2, 3, 4, 5, 6, 7, 8,
+ 0, 0, 0, 0, 0, 501, 502, 0, 325, 0,
+ 591, 768, 0, 0, 0, 0, 593, 503, 504, 505,
+ 506, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 327, 328, 329, 330, 331, 0, 0, 0, 507, 508,
+ 509, 510, 511, 332, 333, 334, 335, 336, 337, 338,
+ 594, 595, 596, 597, 0, 598, 599, 600, 601, 602,
+ 603, 604, 605, 606, 607, 339, 340, 341, 342, 343,
+ 344, 512, 513, 514, 515, 516, 517, 518, 519, 345,
+ 608, 346, 347, 348, 349, 350, 351, 352, 353, 354,
+ 355, 356, 357, 358, 359, 360, 361, 362, 363, 364,
+ 365, 366, 367, 368, 369, 370, 371, 372, 373, 374,
+ 375, 376, 1, 2, 3, 4, 5, 6, 7, 8,
9, 10, 11, 12, 13, 14, 15, 16, 17, 18,
19, 20, 21, 22, 23, 24, 25, 26, 27, 28,
29, 30, 31, 32, 33, 34, 35, 36, 37, 38,
@@ -1748,20 +1945,21 @@ static const yytype_int16 yytable[] =
279, 280, 281, 282, 283, 284, 285, 286, 287, 288,
289, 290, 291, 292, 293, 294, 295, 296, 297, 298,
299, 300, 301, 302, 303, 304, 305, 306, 307, 308,
- 309, 310, 311, 312, 313, 314, 0, 0, 444, 445,
+ 309, 310, 311, 312, 313, 314, 315, 316, 317, 318,
+ 319, 320, 321, 322, 323, 324, 0, 0, 499, 500,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 446, 447, 0,
- 508, 0, 509, 510, 0, 0, 0, 0, 511, 448,
- 449, 450, 451, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 316, 317, 318, 319, 320, 0, 0, 0,
- 452, 453, 454, 455, 456, 321, 322, 323, 324, 325,
- 326, 327, 512, 513, 514, 515, 0, 516, 517, 518,
- 519, 520, 521, 522, 523, 524, 525, 328, 329, 330,
- 331, 332, 333, 457, 458, 459, 460, 461, 462, 463,
- 464, 334, 526, 335, 336, 337, 338, 339, 340, 341,
- 342, 343, 344, 345, 346, 347, 348, 349, 350, 351,
- 352, 353, 354, 355, 356, 357, 358, 359, 360, 361,
- 362, 363, 364, 365, 1, 2, 3, 4, 5, 6,
+ 0, 0, 0, 0, 0, 0, 0, 501, 502, 0,
+ 325, 0, 591, 0, 0, 0, 0, 0, 593, 503,
+ 504, 505, 506, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 327, 328, 329, 330, 331, 0, 0, 0,
+ 507, 508, 509, 510, 511, 332, 333, 334, 335, 336,
+ 337, 338, 594, 595, 596, 597, 0, 598, 599, 600,
+ 601, 602, 603, 604, 605, 606, 607, 339, 340, 341,
+ 342, 343, 344, 512, 513, 514, 515, 516, 517, 518,
+ 519, 345, 608, 346, 347, 348, 349, 350, 351, 352,
+ 353, 354, 355, 356, 357, 358, 359, 360, 361, 362,
+ 363, 364, 365, 366, 367, 368, 369, 370, 371, 372,
+ 373, 374, 375, 376, 1, 2, 3, 4, 5, 6,
7, 8, 9, 10, 11, 12, 13, 14, 15, 16,
17, 18, 19, 20, 21, 22, 23, 24, 25, 26,
27, 28, 29, 30, 31, 32, 33, 34, 35, 36,
@@ -1792,20 +1990,21 @@ static const yytype_int16 yytable[] =
277, 278, 279, 280, 281, 282, 283, 284, 285, 286,
287, 288, 289, 290, 291, 292, 293, 294, 295, 296,
297, 298, 299, 300, 301, 302, 303, 304, 305, 306,
- 307, 308, 309, 310, 311, 312, 313, 314, 0, 0,
- 444, 445, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 446,
- 447, 0, 508, 0, 509, 645, 0, 0, 0, 0,
- 511, 448, 449, 450, 451, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 316, 317, 318, 319, 320, 0,
- 0, 0, 452, 453, 454, 455, 456, 321, 322, 323,
- 324, 325, 326, 327, 512, 513, 514, 515, 0, 516,
- 517, 518, 519, 520, 521, 522, 523, 524, 525, 328,
- 329, 330, 331, 332, 333, 457, 458, 459, 460, 461,
- 462, 463, 464, 334, 526, 335, 336, 337, 338, 339,
- 340, 341, 342, 343, 344, 345, 346, 347, 348, 349,
- 350, 351, 352, 353, 354, 355, 356, 357, 358, 359,
- 360, 361, 362, 363, 364, 365, 1, 2, 3, 4,
+ 307, 308, 309, 310, 311, 312, 313, 314, 315, 316,
+ 317, 318, 319, 320, 321, 322, 323, 324, 0, 0,
+ 499, 500, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 501,
+ 502, 0, 325, 0, 484, 0, 0, 0, 0, 0,
+ 593, 503, 504, 505, 506, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 327, 328, 329, 330, 331, 0,
+ 0, 0, 507, 508, 509, 510, 511, 332, 333, 334,
+ 335, 336, 337, 338, 594, 595, 596, 597, 0, 598,
+ 599, 600, 601, 602, 603, 604, 605, 606, 607, 339,
+ 340, 341, 342, 343, 344, 512, 513, 514, 515, 516,
+ 517, 518, 519, 345, 608, 346, 347, 348, 349, 350,
+ 351, 352, 353, 354, 355, 356, 357, 358, 359, 360,
+ 361, 362, 363, 364, 365, 366, 367, 368, 369, 370,
+ 371, 372, 373, 374, 375, 376, 1, 2, 3, 4,
5, 6, 7, 8, 9, 10, 11, 12, 13, 14,
15, 16, 17, 18, 19, 20, 21, 22, 23, 24,
25, 26, 27, 28, 29, 30, 31, 32, 33, 34,
@@ -1837,19 +2036,20 @@ static const yytype_int16 yytable[] =
285, 286, 287, 288, 289, 290, 291, 292, 293, 294,
295, 296, 297, 298, 299, 300, 301, 302, 303, 304,
305, 306, 307, 308, 309, 310, 311, 312, 313, 314,
- 0, 0, 444, 445, 0, 0, 0, 0, 0, 0,
+ 315, 316, 317, 318, 319, 320, 321, 322, 323, 324,
+ 0, 0, 499, 500, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 446, 447, 0, 508, 0, 509, 0, 0, 0,
- 0, 0, 511, 448, 449, 450, 451, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 316, 317, 318, 319,
- 320, 0, 0, 0, 452, 453, 454, 455, 456, 321,
- 322, 323, 324, 325, 326, 327, 512, 513, 514, 515,
- 0, 516, 517, 518, 519, 520, 521, 522, 523, 524,
- 525, 328, 329, 330, 331, 332, 333, 457, 458, 459,
- 460, 461, 462, 463, 464, 334, 526, 335, 336, 337,
- 338, 339, 340, 341, 342, 343, 344, 345, 346, 347,
- 348, 349, 350, 351, 352, 353, 354, 355, 356, 357,
- 358, 359, 360, 361, 362, 363, 364, 365, 1, 2,
+ 0, 501, 502, 0, 325, 0, 0, 0, 0, 0,
+ 0, 0, 593, 503, 504, 505, 506, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 327, 328, 329, 330,
+ 331, 0, 0, 0, 507, 508, 509, 510, 511, 332,
+ 333, 334, 335, 336, 337, 338, 594, 595, 596, 597,
+ 0, 598, 599, 600, 601, 602, 603, 604, 605, 606,
+ 607, 339, 340, 341, 342, 343, 344, 512, 513, 514,
+ 515, 516, 517, 518, 519, 345, 608, 346, 347, 348,
+ 349, 350, 351, 352, 353, 354, 355, 356, 357, 358,
+ 359, 360, 361, 362, 363, 364, 365, 366, 367, 368,
+ 369, 370, 371, 372, 373, 374, 375, 376, 1, 2,
3, 4, 5, 6, 7, 8, 9, 10, 11, 12,
13, 14, 15, 16, 17, 18, 19, 20, 21, 22,
23, 24, 25, 26, 27, 28, 29, 30, 31, 32,
@@ -1881,19 +2081,20 @@ static const yytype_int16 yytable[] =
283, 284, 285, 286, 287, 288, 289, 290, 291, 292,
293, 294, 295, 296, 297, 298, 299, 300, 301, 302,
303, 304, 305, 306, 307, 308, 309, 310, 311, 312,
- 313, 314, 0, 0, 444, 445, 0, 0, 0, 0,
+ 313, 314, 315, 316, 317, 318, 319, 320, 321, 322,
+ 323, 324, 0, 0, 499, 500, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 501, 502, 0, 325, 0, 0, 0,
+ 0, 0, 0, 0, 593, 503, 504, 505, 506, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 327, 328,
+ 329, 330, 331, 0, 0, 0, 507, 508, 509, 510,
+ 511, 332, 333, 334, 335, 336, 337, 338, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 446, 447, 0, 508, 0, 430, 0,
- 0, 0, 0, 0, 511, 448, 449, 450, 451, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 316, 317,
- 318, 319, 320, 0, 0, 0, 452, 453, 454, 455,
- 456, 321, 322, 323, 324, 325, 326, 327, 512, 513,
- 514, 515, 0, 516, 517, 518, 519, 520, 521, 522,
- 523, 524, 525, 328, 329, 330, 331, 332, 333, 457,
- 458, 459, 460, 461, 462, 463, 464, 334, 526, 335,
- 336, 337, 338, 339, 340, 341, 342, 343, 344, 345,
- 346, 347, 348, 349, 350, 351, 352, 353, 354, 355,
- 356, 357, 358, 359, 360, 361, 362, 363, 364, 365,
+ 0, 0, 0, 339, 340, 341, 342, 343, 344, 512,
+ 513, 514, 515, 516, 517, 518, 519, 345, 0, 346,
+ 347, 348, 349, 350, 351, 352, 353, 354, 355, 356,
+ 357, 358, 359, 360, 361, 362, 363, 364, 365, 366,
+ 367, 368, 369, 370, 371, 372, 373, 374, 375, 376,
1, 2, 3, 4, 5, 6, 7, 8, 9, 10,
11, 12, 13, 14, 15, 16, 17, 18, 19, 20,
21, 22, 23, 24, 25, 26, 27, 28, 29, 30,
@@ -1925,20 +2126,21 @@ static const yytype_int16 yytable[] =
281, 282, 283, 284, 285, 286, 287, 288, 289, 290,
291, 292, 293, 294, 295, 296, 297, 298, 299, 300,
301, 302, 303, 304, 305, 306, 307, 308, 309, 310,
- 311, 312, 313, 314, 0, 0, 444, 445, 0, 0,
+ 311, 312, 313, 314, 0, 0, 0, 318, 319, 320,
+ 321, 322, 323, 324, 0, 0, 499, 500, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 446, 447, 0, 508, 0,
- 0, 0, 0, 0, 0, 0, 511, 448, 449, 450,
- 451, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 316, 317, 318, 319, 320, 0, 0, 0, 452, 453,
- 454, 455, 456, 321, 322, 323, 324, 325, 326, 327,
- 512, 513, 514, 515, 0, 516, 517, 518, 519, 520,
- 521, 522, 523, 524, 525, 328, 329, 330, 331, 332,
- 333, 457, 458, 459, 460, 461, 462, 463, 464, 334,
- 526, 335, 336, 337, 338, 339, 340, 341, 342, 343,
- 344, 345, 346, 347, 348, 349, 350, 351, 352, 353,
- 354, 355, 356, 357, 358, 359, 360, 361, 362, 363,
- 364, 365, 1, 2, 3, 4, 5, 6, 7, 8,
+ 0, 0, 0, 0, 0, 501, 502, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 503, 504, 505,
+ 506, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 327, 328, 329, 330, 0, 0, 0, 0, 507, 508,
+ 509, 510, 511, 332, 333, 334, 335, 336, 337, 338,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 339, 340, 341, 342, 343,
+ 344, 512, 513, 514, 515, 516, 517, 518, 519, 345,
+ 0, 346, 347, 348, 349, 350, 351, 352, 353, 354,
+ 355, 356, 357, 358, 359, 360, 361, 362, 363, 364,
+ 365, 366, 367, 368, 369, 370, 371, 372, 373, 374,
+ 375, 376, 1, 2, 3, 4, 5, 6, 7, 8,
9, 10, 11, 12, 13, 14, 15, 16, 17, 18,
19, 20, 21, 22, 23, 24, 25, 26, 27, 28,
29, 30, 31, 32, 33, 34, 35, 36, 37, 38,
@@ -1969,20 +2171,21 @@ static const yytype_int16 yytable[] =
279, 280, 281, 282, 283, 284, 285, 286, 287, 288,
289, 290, 291, 292, 293, 294, 295, 296, 297, 298,
299, 300, 301, 302, 303, 304, 305, 306, 307, 308,
- 309, 310, 311, 312, 313, 314, 0, 0, 444, 445,
+ 309, 310, 311, 312, 313, 314, 315, 316, 317, 318,
+ 319, 320, 321, 322, 323, 324, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 446, 447, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 511, 448,
- 449, 450, 451, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 316, 317, 318, 319, 320, 0, 0, 0,
- 452, 453, 454, 455, 456, 321, 322, 323, 324, 325,
- 326, 327, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 328, 329, 330,
- 331, 332, 333, 457, 458, 459, 460, 461, 462, 463,
- 464, 334, 0, 335, 336, 337, 338, 339, 340, 341,
- 342, 343, 344, 345, 346, 347, 348, 349, 350, 351,
- 352, 353, 354, 355, 356, 357, 358, 359, 360, 361,
- 362, 363, 364, 365, 1, 2, 3, 4, 5, 6,
+ 325, 0, 0, 0, 0, 0, 0, 0, 326, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 327, 328, 329, 330, 331, 0, 0, 0,
+ 0, 0, 0, 0, 0, 332, 333, 334, 335, 336,
+ 337, 338, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 339, 340, 341,
+ 342, 343, 344, 0, 0, 0, 0, 0, 0, 0,
+ 0, 345, 0, 346, 347, 348, 349, 350, 351, 352,
+ 353, 354, 355, 356, 357, 358, 359, 360, 361, 362,
+ 363, 364, 365, 366, 367, 368, 369, 370, 371, 372,
+ 373, 374, 375, 376, 1, 2, 3, 4, 5, 6,
7, 8, 9, 10, 11, 12, 13, 14, 15, 16,
17, 18, 19, 20, 21, 22, 23, 24, 25, 26,
27, 28, 29, 30, 31, 32, 33, 34, 35, 36,
@@ -2014,19 +2217,20 @@ static const yytype_int16 yytable[] =
287, 288, 289, 290, 291, 292, 293, 294, 295, 296,
297, 298, 299, 300, 301, 302, 303, 304, 305, 306,
307, 308, 309, 310, 311, 312, 313, 314, 0, 0,
- 444, 445, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 446,
- 447, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 448, 449, 450, 451, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 316, 317, 318, 319, 0, 0,
- 0, 0, 452, 453, 454, 455, 456, 321, 322, 323,
- 324, 325, 326, 327, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 328,
- 329, 330, 331, 332, 333, 457, 458, 459, 460, 461,
- 462, 463, 464, 334, 0, 335, 336, 337, 338, 339,
- 340, 341, 342, 343, 344, 345, 346, 347, 348, 349,
- 350, 351, 352, 353, 354, 355, 356, 357, 358, 359,
- 360, 361, 362, 363, 364, 365, 1, 2, 3, 4,
+ 0, 318, 319, 320, 321, 322, 323, 324, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 327, 328, 329, 330, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 332, 333, 334,
+ 335, 336, 337, 338, 594, 0, 0, 597, 0, 598,
+ 599, 0, 0, 602, 0, 0, 0, 0, 0, 339,
+ 340, 341, 342, 343, 344, 0, 0, 0, 0, 0,
+ 0, 0, 0, 345, 0, 346, 347, 348, 349, 350,
+ 351, 352, 353, 354, 355, 356, 357, 358, 359, 360,
+ 361, 362, 363, 364, 365, 366, 367, 368, 369, 370,
+ 371, 372, 373, 374, 375, 376, 1, 2, 3, 4,
5, 6, 7, 8, 9, 10, 11, 12, 13, 14,
15, 16, 17, 18, 19, 20, 21, 22, 23, 24,
25, 26, 27, 28, 29, 30, 31, 32, 33, 34,
@@ -2058,19 +2262,20 @@ static const yytype_int16 yytable[] =
285, 286, 287, 288, 289, 290, 291, 292, 293, 294,
295, 296, 297, 298, 299, 300, 301, 302, 303, 304,
305, 306, 307, 308, 309, 310, 311, 312, 313, 314,
+ 0, 0, 0, 318, 319, 320, 321, 322, 323, 324,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 315, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 316, 317, 318, 319,
- 320, 0, 0, 0, 0, 0, 0, 0, 0, 321,
- 322, 323, 324, 325, 326, 327, 0, 0, 0, 0,
+ 0, 0, 435, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 327, 328, 329, 330,
+ 0, 0, 0, 0, 0, 0, 0, 0, 436, 332,
+ 333, 334, 335, 336, 337, 338, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 328, 329, 330, 331, 332, 333, 0, 0, 0,
- 0, 0, 0, 0, 0, 334, 0, 335, 336, 337,
- 338, 339, 340, 341, 342, 343, 344, 345, 346, 347,
- 348, 349, 350, 351, 352, 353, 354, 355, 356, 357,
- 358, 359, 360, 361, 362, 363, 364, 365, 1, 2,
+ 0, 339, 340, 341, 342, 343, 344, 0, 0, 0,
+ 0, 0, 0, 0, 0, 345, 0, 346, 347, 348,
+ 349, 350, 351, 352, 353, 354, 355, 356, 357, 358,
+ 359, 360, 361, 362, 363, 364, 365, 366, 367, 368,
+ 369, 370, 371, 372, 373, 374, 375, 376, 1, 2,
3, 4, 5, 6, 7, 8, 9, 10, 11, 12,
13, 14, 15, 16, 17, 18, 19, 20, 21, 22,
23, 24, 25, 26, 27, 28, 29, 30, 31, 32,
@@ -2102,19 +2307,20 @@ static const yytype_int16 yytable[] =
283, 284, 285, 286, 287, 288, 289, 290, 291, 292,
293, 294, 295, 296, 297, 298, 299, 300, 301, 302,
303, 304, 305, 306, 307, 308, 309, 310, 311, 312,
- 313, 314, 0, 0, 0, 0, 0, 0, 0, 0,
+ 313, 314, 0, 0, 0, 318, 319, 320, 321, 322,
+ 323, 324, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 325, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 409, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 316, 317,
- 318, 319, 0, 0, 0, 0, 0, 0, 0, 0,
- 410, 321, 322, 323, 324, 325, 326, 327, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 327, 328,
+ 329, 330, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 332, 333, 334, 335, 336, 337, 338, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 328, 329, 330, 331, 332, 333, 0,
- 0, 0, 0, 0, 0, 0, 0, 334, 0, 335,
- 336, 337, 338, 339, 340, 341, 342, 343, 344, 345,
- 346, 347, 348, 349, 350, 351, 352, 353, 354, 355,
- 356, 357, 358, 359, 360, 361, 362, 363, 364, 365,
+ 0, 0, 0, 339, 340, 341, 342, 343, 344, 0,
+ 0, 0, 0, 0, 0, 0, 0, 345, 0, 346,
+ 347, 348, 349, 350, 351, 352, 353, 354, 355, 356,
+ 357, 358, 359, 360, 361, 362, 363, 364, 365, 366,
+ 367, 368, 369, 370, 371, 372, 373, 374, 375, 376,
1, 2, 3, 4, 5, 6, 7, 8, 9, 10,
11, 12, 13, 14, 15, 16, 17, 18, 19, 20,
21, 22, 23, 24, 25, 26, 27, 28, 29, 30,
@@ -2146,20 +2352,21 @@ static const yytype_int16 yytable[] =
281, 282, 283, 284, 285, 286, 287, 288, 289, 290,
291, 292, 293, 294, 295, 296, 297, 298, 299, 300,
301, 302, 303, 304, 305, 306, 307, 308, 309, 310,
- 311, 312, 313, 314, 0, 0, 0, 0, 0, 0,
+ 311, 312, 313, 314, 0, 0, 0, 318, 319, 320,
+ 321, 322, 323, 324, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 582, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 707, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 316, 317, 318, 319, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 321, 322, 323, 324, 325, 326, 327,
+ 327, 328, 329, 330, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 332, 333, 334, 335, 336, 337, 338,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 328, 329, 330, 331, 332,
- 333, 0, 0, 0, 0, 0, 0, 0, 0, 334,
- 0, 335, 336, 337, 338, 339, 340, 341, 342, 343,
- 344, 345, 346, 347, 348, 349, 350, 351, 352, 353,
- 354, 355, 356, 357, 358, 359, 360, 361, 362, 363,
- 364, 365, 1, 2, 3, 4, 5, 6, 7, 8,
+ 0, 0, 0, 0, 0, 339, 340, 341, 342, 343,
+ 344, 0, 0, 0, 0, 0, 0, 0, 0, 345,
+ 0, 346, 347, 348, 349, 350, 351, 352, 353, 354,
+ 355, 356, 357, 358, 359, 360, 361, 362, 363, 364,
+ 365, 366, 367, 368, 369, 370, 371, 372, 373, 374,
+ 375, 376, 1, 2, 3, 4, 5, 6, 7, 8,
9, 10, 11, 12, 13, 14, 15, 16, 17, 18,
19, 20, 21, 22, 23, 24, 25, 26, 27, 28,
29, 30, 31, 32, 33, 34, 35, 36, 37, 38,
@@ -2190,20 +2397,21 @@ static const yytype_int16 yytable[] =
279, 280, 281, 282, 283, 284, 285, 286, 287, 288,
289, 290, 291, 292, 293, 294, 295, 296, 297, 298,
299, 300, 301, 302, 303, 304, 305, 306, 307, 308,
- 309, 310, 311, 312, 313, 314, 0, 0, 0, 0,
+ 309, 310, 311, 312, 313, 314, 0, 0, 0, 318,
+ 319, 320, 321, 322, 323, 324, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 667, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 820, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 316, 317, 318, 319, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 321, 322, 323, 324, 325,
- 326, 327, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 328, 329, 330,
- 331, 332, 333, 0, 0, 0, 0, 0, 0, 0,
- 0, 334, 0, 335, 336, 337, 338, 339, 340, 341,
- 342, 343, 344, 345, 346, 347, 348, 349, 350, 351,
- 352, 353, 354, 355, 356, 357, 358, 359, 360, 361,
- 362, 363, 364, 365, 1, 2, 3, 4, 5, 6,
+ 0, 0, 327, 328, 329, 330, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 332, 333, 334, 335, 336,
+ 337, 338, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 339, 340, 341,
+ 342, 343, 344, 0, 0, 0, 0, 0, 0, 0,
+ 0, 345, 0, 346, 347, 348, 349, 350, 351, 352,
+ 353, 354, 355, 356, 357, 358, 359, 360, 361, 362,
+ 363, 364, 365, 366, 367, 368, 369, 370, 371, 372,
+ 373, 374, 375, 376, 1, 2, 3, 4, 5, 6,
7, 8, 9, 10, 11, 12, 13, 14, 15, 16,
17, 18, 19, 20, 21, 22, 23, 24, 25, 26,
27, 28, 29, 30, 31, 32, 33, 34, 35, 36,
@@ -2235,19 +2443,20 @@ static const yytype_int16 yytable[] =
287, 288, 289, 290, 291, 292, 293, 294, 295, 296,
297, 298, 299, 300, 301, 302, 303, 304, 305, 306,
307, 308, 309, 310, 311, 312, 313, 314, 0, 0,
+ 0, 318, 319, 320, 321, 322, 323, 324, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 705, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 855, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 316, 317, 318, 319, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 321, 322, 323,
- 324, 325, 326, 327, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 328,
- 329, 330, 331, 332, 333, 0, 0, 0, 0, 0,
- 0, 0, 0, 334, 0, 335, 336, 337, 338, 339,
- 340, 341, 342, 343, 344, 345, 346, 347, 348, 349,
- 350, 351, 352, 353, 354, 355, 356, 357, 358, 359,
- 360, 361, 362, 363, 364, 365, 1, 2, 3, 4,
+ 0, 0, 0, 0, 327, 328, 329, 330, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 332, 333, 334,
+ 335, 336, 337, 338, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 339,
+ 340, 341, 342, 343, 344, 0, 0, 0, 0, 0,
+ 0, 0, 0, 345, 0, 346, 347, 348, 349, 350,
+ 351, 352, 353, 354, 355, 356, 357, 358, 359, 360,
+ 361, 362, 363, 364, 365, 366, 367, 368, 369, 370,
+ 371, 372, 373, 374, 375, 376, 1, 2, 3, 4,
5, 6, 7, 8, 9, 10, 11, 12, 13, 14,
15, 16, 17, 18, 19, 20, 21, 22, 23, 24,
25, 26, 27, 28, 29, 30, 31, 32, 33, 34,
@@ -2279,19 +2488,20 @@ static const yytype_int16 yytable[] =
285, 286, 287, 288, 289, 290, 291, 292, 293, 294,
295, 296, 297, 298, 299, 300, 301, 302, 303, 304,
305, 306, 307, 308, 309, 310, 311, 312, 313, 314,
+ 0, 0, 0, 318, 319, 320, 321, 322, 323, 324,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 316, 317, 318, 319,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 321,
- 322, 323, 324, 325, 326, 327, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 327, 328, 329, 330,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 332,
+ 333, 334, 335, 336, 337, 338, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 328, 329, 330, 331, 332, 333, 0, 0, 0,
- 0, 0, 0, 0, 0, 334, 0, 335, 336, 337,
- 338, 339, 340, 341, 342, 343, 344, 345, 346, 347,
- 348, 349, 350, 351, 352, 353, 354, 355, 356, 357,
- 358, 359, 360, 361, 362, 363, 364, 365, 2, 3,
+ 0, 339, 340, 341, 342, 343, 344, 0, 0, 0,
+ 0, 0, 0, 0, 0, 345, 0, 346, 347, 348,
+ 349, 350, 351, 352, 353, 354, 355, 356, 357, 358,
+ 359, 360, 361, 362, 363, 364, 365, 366, 367, 368,
+ 369, 370, 371, 372, 373, 374, 375, 376, 2, 3,
4, 5, 6, 7, 8, 9, 10, 11, 12, 13,
14, 15, 16, 17, 18, 19, 20, 21, 22, 23,
24, 25, 26, 27, 28, 29, 30, 31, 32, 33,
@@ -2323,18 +2533,19 @@ static const yytype_int16 yytable[] =
284, 285, 286, 287, 288, 289, 290, 291, 292, 293,
294, 295, 296, 297, 298, 299, 300, 301, 302, 303,
304, 305, 306, 307, 308, 309, 310, 311, 312, 313,
- 314, 0, 0, 444, 445, 0, 0, 0, 0, 0,
+ 314, 0, 0, 0, 0, 0, 0, 321, 0, 0,
+ 0, 0, 0, 499, 500, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 446, 447, 0, 0, 0, 554, 724, 0,
- 0, 0, 0, 0, 448, 449, 450, 451, 0, 0,
+ 0, 0, 501, 502, 0, 0, 0, 636, 775, 0,
+ 0, 0, 0, 0, 503, 504, 505, 506, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 452, 453, 454, 455, 456,
- 321, 0, 0, 0, 0, 326, 327, 0, 0, 0,
+ 0, 0, 0, 0, 0, 507, 508, 509, 510, 511,
+ 332, 0, 0, 0, 0, 337, 338, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 457, 458,
- 459, 460, 461, 462, 463, 464, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 512, 513,
+ 514, 515, 516, 517, 518, 519, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 347, 2, 3, 4, 5, 6, 7, 8, 9, 10,
+ 358, 2, 3, 4, 5, 6, 7, 8, 9, 10,
11, 12, 13, 14, 15, 16, 17, 18, 19, 20,
21, 22, 23, 24, 25, 26, 27, 28, 29, 30,
31, 32, 33, 34, 35, 36, 37, 38, 39, 40,
@@ -2365,18 +2576,19 @@ static const yytype_int16 yytable[] =
281, 282, 283, 284, 285, 286, 287, 288, 289, 290,
291, 292, 293, 294, 295, 296, 297, 298, 299, 300,
301, 302, 303, 304, 305, 306, 307, 308, 309, 310,
- 311, 312, 313, 314, 0, 0, 444, 445, 0, 0,
+ 311, 312, 313, 314, 0, 0, 0, 0, 0, 0,
+ 321, 0, 0, 0, 0, 0, 499, 500, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 446, 447, 0, 0, 492,
- 0, 0, 0, 0, 0, 0, 0, 448, 449, 450,
- 451, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 452, 453,
- 454, 455, 456, 321, 0, 0, 0, 0, 326, 327,
+ 0, 0, 0, 0, 0, 501, 502, 0, 0, 0,
+ 636, 886, 0, 0, 0, 0, 0, 503, 504, 505,
+ 506, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 507, 508,
+ 509, 510, 511, 332, 0, 0, 0, 0, 337, 338,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 457, 458, 459, 460, 461, 462, 463, 464, 0,
+ 0, 512, 513, 514, 515, 516, 517, 518, 519, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 347, 2, 3, 4, 5, 6, 7,
+ 0, 0, 0, 358, 2, 3, 4, 5, 6, 7,
8, 9, 10, 11, 12, 13, 14, 15, 16, 17,
18, 19, 20, 21, 22, 23, 24, 25, 26, 27,
28, 29, 30, 31, 32, 33, 34, 35, 36, 37,
@@ -2407,18 +2619,19 @@ static const yytype_int16 yytable[] =
278, 279, 280, 281, 282, 283, 284, 285, 286, 287,
288, 289, 290, 291, 292, 293, 294, 295, 296, 297,
298, 299, 300, 301, 302, 303, 304, 305, 306, 307,
- 308, 309, 310, 311, 312, 313, 314, 0, 0, 444,
- 445, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 446, 447,
- 0, 0, 0, 554, 0, 0, 0, 0, 0, 0,
- 448, 449, 450, 451, 0, 0, 0, 0, 0, 0,
+ 308, 309, 310, 311, 312, 313, 314, 0, 0, 0,
+ 0, 0, 0, 321, 0, 0, 0, 0, 0, 499,
+ 500, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 501, 502,
+ 0, 0, 575, 0, 0, 0, 0, 0, 0, 0,
+ 503, 504, 505, 506, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 452, 453, 454, 455, 456, 321, 0, 0, 0,
- 0, 326, 327, 0, 0, 0, 0, 0, 0, 0,
+ 0, 507, 508, 509, 510, 511, 332, 0, 0, 0,
+ 0, 337, 338, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 457, 458, 459, 460, 461, 462,
- 463, 464, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 347, 2, 3, 4,
+ 0, 0, 0, 0, 512, 513, 514, 515, 516, 517,
+ 518, 519, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 358, 2, 3, 4,
5, 6, 7, 8, 9, 10, 11, 12, 13, 14,
15, 16, 17, 18, 19, 20, 21, 22, 23, 24,
25, 26, 27, 28, 29, 30, 31, 32, 33, 34,
@@ -2450,17 +2663,18 @@ static const yytype_int16 yytable[] =
285, 286, 287, 288, 289, 290, 291, 292, 293, 294,
295, 296, 297, 298, 299, 300, 301, 302, 303, 304,
305, 306, 307, 308, 309, 310, 311, 312, 313, 314,
- 0, 0, 444, 445, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 321, 0, 0, 0,
+ 0, 0, 499, 500, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 446, 447, 0, 0, 610, 0, 0, 0, 0,
- 0, 0, 0, 448, 449, 450, 451, 0, 0, 0,
+ 0, 501, 502, 0, 0, 0, 636, 0, 0, 0,
+ 0, 0, 0, 503, 504, 505, 506, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 452, 453, 454, 455, 456, 321,
- 0, 0, 0, 0, 326, 327, 0, 0, 0, 0,
+ 0, 0, 0, 0, 507, 508, 509, 510, 511, 332,
+ 0, 0, 0, 0, 337, 338, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 457, 458, 459,
- 460, 461, 462, 463, 464, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 347,
+ 0, 0, 0, 0, 0, 0, 0, 512, 513, 514,
+ 515, 516, 517, 518, 519, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 358,
2, 3, 4, 5, 6, 7, 8, 9, 10, 11,
12, 13, 14, 15, 16, 17, 18, 19, 20, 21,
22, 23, 24, 25, 26, 27, 28, 29, 30, 31,
@@ -2492,18 +2706,19 @@ static const yytype_int16 yytable[] =
282, 283, 284, 285, 286, 287, 288, 289, 290, 291,
292, 293, 294, 295, 296, 297, 298, 299, 300, 301,
302, 303, 304, 305, 306, 307, 308, 309, 310, 311,
- 312, 313, 314, 0, 0, 444, 445, 0, 0, 0,
+ 312, 313, 314, 0, 0, 0, 0, 0, 0, 321,
+ 0, 0, 0, 0, 0, 499, 500, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 446, 447, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 622, 448, 449, 450, 451,
+ 0, 0, 0, 0, 501, 502, 0, 0, 734, 0,
+ 0, 0, 0, 0, 0, 0, 503, 504, 505, 506,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 452, 453, 454,
- 455, 456, 321, 0, 0, 0, 0, 326, 327, 0,
+ 0, 0, 0, 0, 0, 0, 0, 507, 508, 509,
+ 510, 511, 332, 0, 0, 0, 0, 337, 338, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 457, 458, 459, 460, 461, 462, 463, 464, 0, 0,
+ 512, 513, 514, 515, 516, 517, 518, 519, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 347, 2, 3, 4, 5, 6, 7, 8,
+ 0, 0, 358, 2, 3, 4, 5, 6, 7, 8,
9, 10, 11, 12, 13, 14, 15, 16, 17, 18,
19, 20, 21, 22, 23, 24, 25, 26, 27, 28,
29, 30, 31, 32, 33, 34, 35, 36, 37, 38,
@@ -2534,18 +2749,19 @@ static const yytype_int16 yytable[] =
279, 280, 281, 282, 283, 284, 285, 286, 287, 288,
289, 290, 291, 292, 293, 294, 295, 296, 297, 298,
299, 300, 301, 302, 303, 304, 305, 306, 307, 308,
- 309, 310, 311, 312, 313, 314, 0, 0, 444, 445,
+ 309, 310, 311, 312, 313, 314, 0, 0, 0, 0,
+ 0, 0, 321, 0, 0, 0, 0, 0, 499, 500,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 446, 447, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 448,
- 449, 450, 451, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 501, 502, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 745, 503,
+ 504, 505, 506, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 452, 453, 454, 455, 456, 321, 0, 0, 0, 0,
- 326, 327, 0, 0, 0, 0, 0, 0, 0, 0,
+ 507, 508, 509, 510, 511, 332, 0, 0, 0, 0,
+ 337, 338, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 457, 458, 459, 460, 461, 462, 463,
- 464, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 347, 2, 3, 4, 5,
+ 0, 0, 0, 512, 513, 514, 515, 516, 517, 518,
+ 519, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 358, 2, 3, 4, 5,
6, 7, 8, 9, 10, 11, 12, 13, 14, 15,
16, 17, 18, 19, 20, 21, 22, 23, 24, 25,
26, 27, 28, 29, 30, 31, 32, 33, 34, 35,
@@ -2577,118 +2793,332 @@ static const yytype_int16 yytable[] =
286, 287, 288, 289, 290, 291, 292, 293, 294, 295,
296, 297, 298, 299, 300, 301, 302, 303, 304, 305,
306, 307, 308, 309, 310, 311, 312, 313, 314, 0,
- 0, 444, 445, 0, 0, 475, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 493,
- 446, 447, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 448, 449, 450, 451, 562, 563, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 452, 453, 454, 455, 456, 321, 0,
- 0, 0, 0, 326, 572, 0, 0, 0, 575, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 493,
- 0, 0, 0, 0, 0, 0, 457, 458, 459, 460,
- 461, 462, 463, 464, 0, 0, 0, 0, 493, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 347, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 321, 0, 0, 0, 0,
+ 0, 499, 500, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 501, 502, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 503, 504, 505, 506, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 507, 508, 509, 510, 511, 332, 0,
+ 0, 0, 0, 337, 338, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 512, 513, 514, 515,
+ 516, 517, 518, 519, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 358, 2,
+ 3, 4, 5, 6, 7, 8, 9, 10, 11, 12,
+ 13, 14, 15, 16, 17, 18, 19, 20, 21, 22,
+ 23, 24, 25, 26, 27, 28, 29, 30, 31, 32,
+ 33, 34, 35, 36, 37, 38, 39, 40, 41, 42,
+ 43, 44, 45, 46, 47, 48, 49, 50, 51, 52,
+ 53, 54, 55, 56, 57, 58, 0, 0, 61, 62,
+ 63, 64, 65, 66, 67, 68, 69, 70, 71, 72,
+ 73, 74, 75, 76, 77, 78, 79, 80, 81, 82,
+ 83, 84, 85, 86, 87, 88, 89, 90, 91, 92,
+ 93, 94, 95, 96, 97, 98, 99, 100, 101, 102,
+ 103, 104, 105, 106, 107, 108, 109, 110, 111, 112,
+ 113, 114, 115, 116, 117, 118, 119, 120, 121, 122,
+ 123, 124, 125, 126, 127, 128, 129, 130, 131, 132,
+ 133, 134, 135, 136, 137, 138, 139, 140, 141, 142,
+ 143, 144, 145, 146, 147, 148, 149, 150, 151, 152,
+ 153, 154, 155, 156, 157, 158, 159, 160, 161, 162,
+ 163, 164, 165, 166, 167, 168, 169, 170, 171, 172,
+ 173, 174, 175, 176, 177, 178, 179, 180, 181, 182,
+ 183, 184, 185, 186, 187, 188, 189, 190, 191, 192,
+ 193, 194, 195, 196, 197, 198, 199, 200, 201, 202,
+ 203, 204, 205, 206, 207, 208, 209, 210, 211, 212,
+ 213, 214, 215, 216, 217, 218, 219, 220, 221, 222,
+ 223, 224, 225, 226, 227, 228, 229, 230, 231, 232,
+ 233, 234, 235, 236, 237, 238, 239, 240, 241, 242,
+ 243, 244, 245, 246, 247, 248, 249, 250, 251, 252,
+ 253, 254, 255, 256, 257, 258, 259, 260, 261, 262,
+ 263, 264, 265, 266, 267, 268, 269, 270, 271, 272,
+ 273, 274, 275, 276, 277, 278, 279, 280, 281, 282,
+ 283, 284, 285, 286, 287, 288, 289, 290, 291, 292,
+ 293, 294, 295, 296, 297, 298, 299, 300, 301, 302,
+ 303, 304, 305, 306, 307, 308, 309, 310, 311, 312,
+ 313, 314, 0, 0, 0, 0, 0, 0, 321, 0,
+ 0, 0, 0, 0, 499, 500, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 662, 0,
+ 0, 0, 0, 501, 502, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 503, 504, 505, 506, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 668, 669, 670, 493, 493, 493, 493, 493, 493,
- 493, 493, 493, 493, 493, 493, 493, 493, 493, 493,
+ 0, 0, 0, 0, 0, 0, 507, 508, 509, 510,
+ 511, 332, 0, 0, 0, 0, 337, 654, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 512,
+ 513, 514, 515, 516, 517, 518, 519, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 358, 2, 3, 4, 5, 6, 7, 8, 9,
+ 10, 11, 12, 13, 14, 15, 16, 17, 18, 19,
+ 20, 21, 22, 23, 24, 25, 26, 27, 28, 29,
+ 30, 31, 32, 33, 34, 35, 36, 37, 38, 39,
+ 40, 41, 42, 43, 44, 45, 46, 47, 48, 49,
+ 50, 51, 52, 53, 54, 55, 56, 57, 58, 0,
+ 0, 61, 62, 63, 64, 65, 66, 67, 68, 69,
+ 70, 71, 72, 73, 74, 75, 76, 77, 78, 79,
+ 80, 81, 82, 83, 84, 85, 86, 87, 88, 89,
+ 90, 91, 92, 93, 94, 95, 96, 97, 98, 99,
+ 100, 101, 102, 103, 104, 105, 106, 107, 108, 109,
+ 110, 111, 112, 113, 114, 115, 116, 117, 118, 119,
+ 120, 121, 122, 123, 124, 125, 126, 127, 128, 129,
+ 130, 131, 132, 133, 134, 135, 136, 137, 138, 139,
+ 140, 141, 142, 143, 144, 145, 146, 147, 148, 149,
+ 150, 151, 152, 153, 154, 155, 156, 157, 158, 159,
+ 160, 161, 162, 163, 164, 165, 166, 167, 168, 169,
+ 170, 171, 172, 173, 174, 175, 176, 177, 178, 179,
+ 180, 181, 182, 183, 184, 185, 186, 187, 188, 189,
+ 190, 191, 192, 193, 194, 195, 196, 197, 198, 199,
+ 200, 201, 202, 203, 204, 205, 206, 207, 208, 209,
+ 210, 211, 212, 213, 214, 215, 216, 217, 218, 219,
+ 220, 221, 222, 223, 224, 225, 226, 227, 228, 229,
+ 230, 231, 232, 233, 234, 235, 236, 237, 238, 239,
+ 240, 241, 242, 243, 244, 245, 246, 247, 248, 249,
+ 250, 251, 252, 253, 254, 255, 256, 257, 258, 259,
+ 260, 261, 262, 263, 264, 265, 266, 267, 268, 269,
+ 270, 271, 272, 273, 274, 275, 276, 277, 278, 279,
+ 280, 281, 282, 283, 284, 285, 286, 287, 288, 289,
+ 290, 291, 292, 293, 294, 295, 296, 297, 298, 299,
+ 300, 301, 302, 303, 304, 305, 306, 307, 308, 309,
+ 310, 311, 312, 313, 314, 0, 0, 0, 0, 0,
+ 0, 321, 0, 0, 0, 0, 0, 499, 500, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 501, 502, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 503, 504,
+ 505, 506, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 507,
+ 508, 509, 510, 694, 332, 0, 0, 0, 0, 337,
+ 338, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 512, 513, 514, 515, 516, 517, 518, 519,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 358, 2, 3, 4, 5, 6,
+ 7, 8, 9, 10, 11, 12, 13, 14, 15, 16,
+ 17, 18, 19, 20, 21, 22, 23, 24, 25, 26,
+ 27, 28, 29, 30, 31, 32, 33, 34, 35, 36,
+ 37, 38, 39, 40, 41, 42, 43, 44, 45, 46,
+ 47, 48, 49, 50, 51, 52, 53, 54, 55, 56,
+ 57, 58, 0, 0, 61, 62, 63, 64, 65, 66,
+ 67, 68, 69, 70, 71, 72, 73, 74, 75, 76,
+ 77, 78, 79, 80, 81, 82, 83, 84, 85, 86,
+ 87, 88, 89, 90, 91, 92, 93, 94, 95, 96,
+ 97, 98, 99, 100, 101, 102, 103, 104, 105, 106,
+ 107, 108, 109, 110, 111, 112, 113, 114, 115, 116,
+ 117, 118, 119, 120, 121, 122, 123, 124, 125, 126,
+ 127, 128, 129, 130, 131, 132, 133, 134, 135, 136,
+ 137, 138, 139, 140, 141, 142, 143, 144, 145, 146,
+ 147, 148, 149, 150, 151, 152, 153, 154, 155, 156,
+ 157, 158, 159, 160, 161, 162, 163, 164, 165, 166,
+ 167, 168, 169, 170, 171, 172, 173, 174, 175, 176,
+ 177, 178, 179, 180, 181, 182, 183, 184, 185, 186,
+ 187, 188, 189, 190, 191, 192, 193, 194, 195, 196,
+ 197, 198, 199, 200, 201, 202, 203, 204, 205, 206,
+ 207, 208, 209, 210, 211, 212, 213, 214, 215, 216,
+ 217, 218, 219, 220, 221, 222, 223, 224, 225, 226,
+ 227, 228, 229, 230, 231, 232, 233, 234, 235, 236,
+ 237, 238, 239, 240, 241, 242, 243, 244, 245, 246,
+ 247, 248, 249, 250, 251, 252, 253, 254, 255, 256,
+ 257, 258, 259, 260, 261, 262, 263, 264, 265, 266,
+ 267, 268, 269, 270, 271, 272, 273, 274, 275, 276,
+ 277, 278, 279, 280, 281, 282, 283, 284, 285, 286,
+ 287, 288, 289, 290, 291, 292, 293, 294, 295, 296,
+ 297, 298, 299, 300, 301, 302, 303, 304, 305, 306,
+ 307, 308, 309, 310, 311, 312, 313, 314, 0, 0,
+ 0, 0, 0, 0, 321, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 493
+ 0, 0, 0, 0, 0, 0, 0, 332, 0, 0,
+ 0, 0, 337, 338
};
static const yytype_int16 yycheck[] =
{
- 0, 732, 0, 341, 0, 486, 346, 383, 739, 0,
- 386, 349, 388, 389, 346, 339, 392, 349, 358, 750,
- 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,
- 14, 15, 16, 17, 18, 19, 20, 21, 22, 23,
- 24, 25, 26, 27, 28, 29, 30, 31, 32, 33,
- 34, 35, 36, 37, 38, 39, 40, 41, 42, 43,
- 44, 45, 46, 47, 48, 49, 50, 51, 52, 53,
- 54, 55, 56, 57, 58, 59, 60, 558, 339, 63,
- 64, 65, 66, 67, 68, 69, 70, 71, 72, 73,
- 74, 75, 76, 77, 78, 79, 80, 81, 82, 83,
- 84, 85, 86, 87, 88, 89, 90, 91, 92, 93,
- 94, 95, 96, 97, 98, 99, 100, 101, 102, 103,
- 104, 105, 106, 107, 108, 109, 110, 111, 112, 113,
- 114, 115, 116, 117, 118, 119, 120, 121, 122, 123,
- 124, 125, 126, 127, 128, 129, 130, 131, 132, 133,
- 134, 135, 136, 137, 138, 139, 140, 141, 142, 143,
- 144, 145, 146, 147, 148, 149, 150, 151, 152, 153,
- 154, 155, 156, 157, 158, 159, 160, 161, 162, 163,
- 164, 165, 166, 167, 168, 169, 170, 171, 172, 173,
- 174, 175, 176, 177, 178, 179, 180, 181, 182, 183,
- 184, 185, 186, 187, 188, 189, 190, 191, 192, 193,
- 194, 195, 196, 197, 198, 199, 200, 201, 202, 203,
- 204, 205, 206, 207, 208, 209, 210, 211, 212, 213,
- 214, 215, 216, 217, 218, 219, 220, 221, 222, 223,
- 224, 225, 226, 227, 228, 229, 230, 231, 232, 233,
- 234, 235, 236, 237, 238, 239, 240, 241, 242, 243,
- 244, 245, 246, 247, 248, 249, 250, 251, 252, 253,
- 254, 255, 256, 257, 258, 259, 260, 261, 262, 263,
- 264, 265, 266, 267, 268, 269, 270, 271, 272, 273,
- 274, 275, 276, 277, 278, 279, 280, 281, 282, 283,
- 284, 285, 286, 287, 288, 289, 290, 291, 292, 293,
- 294, 295, 296, 297, 298, 299, 300, 301, 302, 303,
- 304, 305, 306, 307, 308, 309, 310, 311, 312, 313,
- 314, 315, 316, 379, 447, 371, 540, 438, 552, 427,
- 554, 408, 484, 557, 343, 614, 326, 414, 321, 322,
- 693, 341, 339, 346, 341, 319, 320, 340, 404, 349,
- 349, 348, 340, 346, 400, 375, 341, 341, 435, 436,
- 375, 371, 473, 348, 348, 339, 375, 341, 721, 379,
- 371, 345, 362, 419, 357, 358, 375, 387, 379, 387,
- 390, 387, 376, 349, 399, 341, 387, 381, 382, 487,
- 400, 340, 348, 357, 404, 340, 519, 346, 521, 400,
- 340, 346, 343, 404, 618, 340, 346, 343, 506, 419,
- 346, 346, 375, 349, 346, 340, 340, 349, 419, 342,
- 430, 346, 346, 346, 343, 346, 482, 651, 349, 430,
- 323, 324, 584, 596, 597, 598, 599, 375, 484, 346,
- 486, 552, 349, 554, 567, 375, 557, 328, 329, 330,
- 331, 332, 333, 334, 335, 336, 337, 341, 346, 346,
- 571, 349, 349, 364, 365, 366, 349, 348, 354, 355,
- 356, 351, 482, 353, 484, 754, 486, 344, 692, 346,
- 704, 482, 348, 484, 375, 486, 317, 318, 346, 347,
- 346, 347, 592, 593, 340, 594, 595, 620, 600, 601,
- 339, 624, 579, 655, 341, 375, 375, 361, 360, 359,
- 325, 327, 558, 342, 341, 339, 344, 349, 339, 349,
- 744, 339, 339, 349, 347, 344, 375, 349, 339, 349,
- 540, 642, 643, 339, 375, 349, 349, 340, 584, 540,
- 651, 342, 375, 342, 346, 339, 760, 383, 558, 342,
- 375, 340, 339, 343, 340, 340, 348, 558, 349, 343,
- 343, 349, 344, 602, 687, 603, 606, 604, 710, 605,
- 693, 489, 607, 320, 584, 387, 578, 665, 695, 738,
- 750, 695, 751, 584, 721, 550, 712, 387, 550, 550,
- -1, 400, -1, 704, 404, -1, 404, -1, 721, -1,
- 398, -1, -1, -1, 614, -1, -1, -1, 618, 655,
- 733, -1, 710, 614, -1, 726, -1, 618, -1, -1,
- -1, -1, -1, -1, -1, -1, 749, -1, -1, -1,
- -1, -1, -1, 744, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, 655, -1, 693, -1, -1,
- -1, -1, -1, -1, 655, -1, -1, -1, -1, -1,
- 716, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, 721, -1, -1, -1, -1,
- -1, -1, 692, 693, -1, 695, -1, -1, -1, -1,
- -1, 692, 693, -1, 695, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, 716, -1, -1, -1,
- -1, 721, -1, -1, -1, 716, -1, -1, -1, -1,
- 721, -1, 732, -1, -1, -1, -1, -1, -1, 739,
- -1, 732, -1, -1, -1, -1, -1, -1, 739, -1,
- 750, -1, -1, -1, 754, -1, -1, -1, -1, 750,
- 760, -1, -1, 754, -1, -1, -1, 0, -1, 760,
+ 0, 401, 0, 481, 401, 382, 406, 0, 493, 0,
+ 634, 502, 636, 622, 0, 639, 542, 547, 737, 567,
+ 434, 439, 552, 569, 401, 348, 440, 359, 390, 406,
+ 413, 561, 558, 348, 331, 332, 336, 899, 385, 348,
+ 570, 348, 351, 528, 906, 356, 349, 353, 351, 426,
+ 374, 375, 376, 385, 916, 358, 351, 368, 381, 382,
+ 383, 384, 409, 481, 359, 329, 330, 382, 430, 547,
+ 367, 368, 372, 382, 552, 382, 490, 491, 351, 385,
+ 558, 499, 500, 561, 446, 349, 359, 351, 351, 349,
+ 356, 355, 570, 359, 640, 358, 473, 338, 339, 340,
+ 341, 342, 343, 344, 345, 346, 347, 361, 540, 363,
+ 601, 589, 603, 531, 546, 351, 548, 358, 351, 551,
+ 350, 553, 358, 555, 556, 358, 356, 353, 560, 547,
+ 356, 350, 741, 359, 552, 350, 350, 356, 350, 350,
+ 558, 356, 356, 561, 356, 356, 354, 350, 356, 634,
+ 774, 636, 570, 356, 639, 351, 350, 540, 649, 350,
+ 350, 709, 356, 350, 350, 356, 356, 349, 653, 356,
+ 356, 589, 349, 556, 408, 409, 410, 411, 412, 413,
+ 414, 350, 350, 350, 359, 350, 349, 356, 356, 356,
+ 567, 356, 569, 350, 350, 356, 350, 350, 350, 356,
+ 356, 920, 356, 565, 356, 350, 350, 350, 350, 350,
+ 350, 356, 356, 356, 356, 356, 356, 350, 352, 349,
+ 352, 352, 356, 356, 356, 356, 381, 382, 383, 384,
+ 854, 779, 632, 842, 349, 632, 720, 721, 722, 723,
+ 658, 327, 328, 382, 382, 382, 385, 385, 385, 349,
+ 356, 367, 743, 359, 382, 632, 747, 385, 382, 382,
+ 349, 385, 385, 640, 382, 333, 334, 385, 798, 799,
+ 382, 382, 349, 385, 385, 805, 806, 356, 357, 382,
+ 765, 766, 385, 349, 382, 811, 910, 385, 382, 774,
+ 704, 385, 364, 365, 366, 713, 714, 715, 716, 717,
+ 718, 719, 720, 721, 722, 723, 724, 725, 726, 727,
+ 728, 729, 730, 731, 385, 356, 356, 926, 359, 359,
+ 798, 799, 356, 356, 359, 359, 359, 805, 806, 356,
+ 357, 385, 709, 811, 385, 813, 716, 717, 353, 718,
+ 719, 385, 724, 725, 353, 351, 385, 385, 351, 840,
+ 358, 350, 843, 385, 359, 356, 358, 385, 371, 356,
+ 356, 356, 356, 350, 356, 385, 356, 356, 356, 854,
+ 349, 356, 356, 350, 349, 351, 359, 358, 349, 351,
+ 798, 799, 382, 348, 352, 335, 337, 805, 806, 369,
+ 390, 382, 883, 811, 352, 813, 370, 354, 398, 390,
+ 398, 401, 779, 385, 349, 398, 406, 398, 406, 900,
+ 401, 896, 398, 406, 349, 406, 416, 359, 385, 359,
+ 349, 359, 349, 357, 915, 910, 426, 425, 359, 359,
+ 430, 359, 349, 359, 349, 426, 385, 385, 350, 430,
+ 358, 348, 356, 843, 350, 356, 446, 356, 350, 352,
+ 393, 352, 356, 348, 354, 446, 350, 382, 349, 358,
+ 353, 385, 359, 350, 397, 353, 843, 353, 726, 359,
+ 354, 727, 729, 473, 430, 728, 731, 430, 730, 426,
+ 572, 331, 473, 883, 484, 703, 845, 818, 905, 916,
+ 845, 917, 424, 484, 883, 796, 632, 632, 563, 803,
+ 398, 794, 801, 632, 806, 799, 883, -1, 813, -1,
+ -1, 809, -1, -1, -1, 811, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, 536, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, 558, -1,
+ -1, -1, -1, -1, -1, 565, -1, 567, -1, 569,
+ -1, -1, -1, -1, 565, -1, 567, -1, 569, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, 622, -1, -1, -1, -1, -1, -1, -1,
+ -1, 622, 632, -1, -1, -1, -1, -1, -1, -1,
+ 640, 632, -1, -1, -1, -1, -1, -1, -1, 640,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, 709,
+ -1, -1, -1, -1, -1, -1, -1, -1, 709, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, 737, -1, -1,
+ -1, 741, -1, -1, -1, -1, 737, -1, -1, -1,
+ 741, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, 779,
+ -1, -1, -1, -1, -1, -1, -1, -1, 779, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, 811, -1, 813, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, 842, 843, -1, 845, -1, 845, -1, -1,
+ -1, 842, 843, -1, 845, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, 883, -1, -1, -1, -1, -1, -1,
+ -1, -1, 883, -1, -1, -1, -1, -1, -1, 899,
+ -1, -1, -1, -1, -1, -1, 906, -1, 899, -1,
+ -1, -1, -1, -1, -1, 906, 916, -1, -1, -1,
+ 920, -1, -1, -1, -1, 916, 926, -1, -1, 920,
+ -1, -1, -1, 0, -1, 926, 3, 4, 5, 6,
+ 7, 8, 9, 10, 11, 12, 13, 14, 15, 16,
+ 17, 18, 19, 20, 21, 22, 23, 24, 25, 26,
+ 27, 28, 29, 30, 31, 32, 33, 34, 35, 36,
+ 37, 38, 39, 40, 41, 42, 43, 44, 45, 46,
+ 47, 48, 49, 50, 51, 52, 53, 54, 55, 56,
+ 57, 58, 59, 60, 61, 62, 63, 64, 65, 66,
+ 67, 68, 69, 70, 71, 72, 73, 74, 75, 76,
+ 77, 78, 79, 80, 81, 82, 83, 84, 85, 86,
+ 87, 88, 89, 90, 91, 92, 93, 94, 95, 96,
+ 97, 98, 99, 100, 101, 102, 103, 104, 105, 106,
+ 107, 108, 109, 110, 111, 112, 113, 114, 115, 116,
+ 117, 118, 119, 120, 121, 122, 123, 124, 125, 126,
+ 127, 128, 129, 130, 131, 132, 133, 134, 135, 136,
+ 137, 138, 139, 140, 141, 142, 143, 144, 145, 146,
+ 147, 148, 149, 150, 151, 152, 153, 154, 155, 156,
+ 157, 158, 159, 160, 161, 162, 163, 164, 165, 166,
+ 167, 168, 169, 170, 171, 172, 173, 174, 175, 176,
+ 177, 178, 179, 180, 181, 182, 183, 184, 185, 186,
+ 187, 188, 189, 190, 191, 192, 193, 194, 195, 196,
+ 197, 198, 199, 200, 201, 202, 203, 204, 205, 206,
+ 207, 208, 209, 210, 211, 212, 213, 214, 215, 216,
+ 217, 218, 219, 220, 221, 222, 223, 224, 225, 226,
+ 227, 228, 229, 230, 231, 232, 233, 234, 235, 236,
+ 237, 238, 239, 240, 241, 242, 243, 244, 245, 246,
+ 247, 248, 249, 250, 251, 252, 253, 254, 255, 256,
+ 257, 258, 259, 260, 261, 262, 263, 264, 265, 266,
+ 267, 268, 269, 270, 271, 272, 273, 274, 275, 276,
+ 277, 278, 279, 280, 281, 282, 283, 284, 285, 286,
+ 287, 288, 289, 290, 291, 292, 293, 294, 295, 296,
+ 297, 298, 299, 300, 301, 302, 303, 304, 305, 306,
+ 307, 308, 309, 310, 311, 312, 313, 314, 315, 316,
+ 317, 318, 319, 320, 321, 322, 323, 324, 325, 326,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, 351, -1, -1, -1, -1, -1,
+ -1, -1, 359, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, 373, 374, 375, 376,
+ 377, -1, -1, -1, -1, -1, -1, -1, -1, 386,
+ 387, 388, 389, 390, 391, 392, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, 408, 409, 410, 411, 412, 413, -1, -1, -1,
+ -1, -1, -1, -1, -1, 422, -1, 424, 425, 426,
+ 427, 428, 429, 430, 431, 432, 433, 434, 435, 436,
+ 437, 438, 439, 440, 441, 442, 443, 444, 445, 446,
+ 447, 448, 449, 450, 451, 452, 453, 454, 3, 4,
+ 5, 6, 7, 8, 9, 10, 11, 12, 13, 14,
+ 15, 16, 17, 18, 19, 20, 21, 22, 23, 24,
+ 25, 26, 27, 28, 29, 30, 31, 32, 33, 34,
+ 35, 36, 37, 38, 39, 40, 41, 42, 43, 44,
+ 45, 46, 47, 48, 49, 50, 51, 52, 53, 54,
+ 55, 56, 57, 58, 59, 60, 61, 62, 63, 64,
+ 65, 66, 67, 68, 69, 70, 71, 72, 73, 74,
+ 75, 76, 77, 78, 79, 80, 81, 82, 83, 84,
+ 85, 86, 87, 88, 89, 90, 91, 92, 93, 94,
+ 95, 96, 97, 98, 99, 100, 101, 102, 103, 104,
+ 105, 106, 107, 108, 109, 110, 111, 112, 113, 114,
+ 115, 116, 117, 118, 119, 120, 121, 122, 123, 124,
+ 125, 126, 127, 128, 129, 130, 131, 132, 133, 134,
+ 135, 136, 137, 138, 139, 140, 141, 142, 143, 144,
+ 145, 146, 147, 148, 149, 150, 151, 152, 153, 154,
+ 155, 156, 157, 158, 159, 160, 161, 162, 163, 164,
+ 165, 166, 167, 168, 169, 170, 171, 172, 173, 174,
+ 175, 176, 177, 178, 179, 180, 181, 182, 183, 184,
+ 185, 186, 187, 188, 189, 190, 191, 192, 193, 194,
+ 195, 196, 197, 198, 199, 200, 201, 202, 203, 204,
+ 205, 206, 207, 208, 209, 210, 211, 212, 213, 214,
+ 215, 216, 217, 218, 219, 220, 221, 222, 223, 224,
+ 225, 226, 227, 228, 229, 230, 231, 232, 233, 234,
+ 235, 236, 237, 238, 239, 240, 241, 242, 243, 244,
+ 245, 246, 247, 248, 249, 250, 251, 252, 253, 254,
+ 255, 256, 257, 258, 259, 260, 261, 262, 263, 264,
+ 265, 266, 267, 268, 269, 270, 271, 272, 273, 274,
+ 275, 276, 277, 278, 279, 280, 281, 282, 283, 284,
+ 285, 286, 287, 288, 289, 290, 291, 292, 293, 294,
+ 295, 296, 297, 298, 299, 300, 301, 302, 303, 304,
+ 305, 306, 307, 308, 309, 310, 311, 312, 313, 314,
+ 315, 316, 317, 318, 319, 320, 321, 322, 323, 324,
+ 325, 326, -1, -1, 329, 330, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, 348, 349, -1, 351, -1, 353, 354,
+ -1, -1, -1, -1, 359, 360, 361, 362, 363, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, 373, 374,
+ 375, 376, 377, -1, -1, -1, 381, 382, 383, 384,
+ 385, 386, 387, 388, 389, 390, 391, 392, 393, 394,
+ 395, 396, -1, 398, 399, 400, 401, 402, 403, 404,
+ 405, 406, 407, 408, 409, 410, 411, 412, 413, 414,
+ 415, 416, 417, 418, 419, 420, 421, 422, 423, 424,
+ 425, 426, 427, 428, 429, 430, 431, 432, 433, 434,
+ 435, 436, 437, 438, 439, 440, 441, 442, 443, 444,
+ 445, 446, 447, 448, 449, 450, 451, 452, 453, 454,
3, 4, 5, 6, 7, 8, 9, 10, 11, 12,
13, 14, 15, 16, 17, 18, 19, 20, 21, 22,
23, 24, 25, 26, 27, 28, 29, 30, 31, 32,
@@ -2720,20 +3150,21 @@ static const yytype_int16 yycheck[] =
283, 284, 285, 286, 287, 288, 289, 290, 291, 292,
293, 294, 295, 296, 297, 298, 299, 300, 301, 302,
303, 304, 305, 306, 307, 308, 309, 310, 311, 312,
- 313, 314, 315, 316, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, 349, -1, -1, -1,
+ 313, 314, 315, 316, 317, 318, 319, 320, 321, 322,
+ 323, 324, 325, 326, -1, -1, 329, 330, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- 363, 364, 365, 366, 367, -1, -1, -1, -1, -1,
- -1, -1, -1, 376, 377, 378, 379, 380, 381, 382,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, 398, 399, 400, 401, 402,
- 403, -1, -1, -1, -1, -1, -1, -1, -1, 412,
- -1, 414, 415, 416, 417, 418, 419, 420, 421, 422,
+ -1, -1, -1, -1, -1, 348, 349, -1, 351, -1,
+ 353, 354, -1, -1, -1, -1, 359, 360, 361, 362,
+ 363, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ 373, 374, 375, 376, 377, -1, -1, -1, 381, 382,
+ 383, 384, 385, 386, 387, 388, 389, 390, 391, 392,
+ 393, 394, 395, 396, -1, 398, 399, 400, 401, 402,
+ 403, 404, 405, 406, 407, 408, 409, 410, 411, 412,
+ 413, 414, 415, 416, 417, 418, 419, 420, 421, 422,
423, 424, 425, 426, 427, 428, 429, 430, 431, 432,
433, 434, 435, 436, 437, 438, 439, 440, 441, 442,
- 443, 444, 3, 4, 5, 6, 7, 8, 9, 10,
+ 443, 444, 445, 446, 447, 448, 449, 450, 451, 452,
+ 453, 454, 3, 4, 5, 6, 7, 8, 9, 10,
11, 12, 13, 14, 15, 16, 17, 18, 19, 20,
21, 22, 23, 24, 25, 26, 27, 28, 29, 30,
31, 32, 33, 34, 35, 36, 37, 38, 39, 40,
@@ -2764,20 +3195,21 @@ static const yytype_int16 yycheck[] =
281, 282, 283, 284, 285, 286, 287, 288, 289, 290,
291, 292, 293, 294, 295, 296, 297, 298, 299, 300,
301, 302, 303, 304, 305, 306, 307, 308, 309, 310,
- 311, 312, 313, 314, 315, 316, -1, -1, 319, 320,
+ 311, 312, 313, 314, 315, 316, 317, 318, 319, 320,
+ 321, 322, 323, 324, 325, 326, -1, -1, 329, 330,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, 338, 339, -1,
- 341, -1, 343, 344, -1, -1, -1, -1, 349, 350,
- 351, 352, 353, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, 363, 364, 365, 366, 367, -1, -1, -1,
- 371, 372, 373, 374, 375, 376, 377, 378, 379, 380,
- 381, 382, 383, 384, 385, 386, -1, 388, 389, 390,
- 391, 392, 393, 394, 395, 396, 397, 398, 399, 400,
+ -1, -1, -1, -1, -1, -1, -1, 348, 349, -1,
+ 351, -1, 353, -1, -1, -1, -1, -1, 359, 360,
+ 361, 362, 363, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, 373, 374, 375, 376, 377, -1, -1, -1,
+ 381, 382, 383, 384, 385, 386, 387, 388, 389, 390,
+ 391, 392, 393, 394, 395, 396, -1, 398, 399, 400,
401, 402, 403, 404, 405, 406, 407, 408, 409, 410,
411, 412, 413, 414, 415, 416, 417, 418, 419, 420,
421, 422, 423, 424, 425, 426, 427, 428, 429, 430,
431, 432, 433, 434, 435, 436, 437, 438, 439, 440,
- 441, 442, 443, 444, 3, 4, 5, 6, 7, 8,
+ 441, 442, 443, 444, 445, 446, 447, 448, 449, 450,
+ 451, 452, 453, 454, 3, 4, 5, 6, 7, 8,
9, 10, 11, 12, 13, 14, 15, 16, 17, 18,
19, 20, 21, 22, 23, 24, 25, 26, 27, 28,
29, 30, 31, 32, 33, 34, 35, 36, 37, 38,
@@ -2808,20 +3240,21 @@ static const yytype_int16 yycheck[] =
279, 280, 281, 282, 283, 284, 285, 286, 287, 288,
289, 290, 291, 292, 293, 294, 295, 296, 297, 298,
299, 300, 301, 302, 303, 304, 305, 306, 307, 308,
- 309, 310, 311, 312, 313, 314, 315, 316, -1, -1,
- 319, 320, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, 338,
- 339, -1, 341, -1, 343, 344, -1, -1, -1, -1,
- 349, 350, 351, 352, 353, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, 363, 364, 365, 366, 367, -1,
- -1, -1, 371, 372, 373, 374, 375, 376, 377, 378,
- 379, 380, 381, 382, 383, 384, 385, 386, -1, 388,
- 389, 390, 391, 392, 393, 394, 395, 396, 397, 398,
+ 309, 310, 311, 312, 313, 314, 315, 316, 317, 318,
+ 319, 320, 321, 322, 323, 324, 325, 326, -1, -1,
+ 329, 330, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, 348,
+ 349, -1, 351, -1, 353, -1, -1, -1, -1, -1,
+ 359, 360, 361, 362, 363, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, 373, 374, 375, 376, 377, -1,
+ -1, -1, 381, 382, 383, 384, 385, 386, 387, 388,
+ 389, 390, 391, 392, 393, 394, 395, 396, -1, 398,
399, 400, 401, 402, 403, 404, 405, 406, 407, 408,
409, 410, 411, 412, 413, 414, 415, 416, 417, 418,
419, 420, 421, 422, 423, 424, 425, 426, 427, 428,
429, 430, 431, 432, 433, 434, 435, 436, 437, 438,
- 439, 440, 441, 442, 443, 444, 3, 4, 5, 6,
+ 439, 440, 441, 442, 443, 444, 445, 446, 447, 448,
+ 449, 450, 451, 452, 453, 454, 3, 4, 5, 6,
7, 8, 9, 10, 11, 12, 13, 14, 15, 16,
17, 18, 19, 20, 21, 22, 23, 24, 25, 26,
27, 28, 29, 30, 31, 32, 33, 34, 35, 36,
@@ -2853,19 +3286,20 @@ static const yytype_int16 yycheck[] =
287, 288, 289, 290, 291, 292, 293, 294, 295, 296,
297, 298, 299, 300, 301, 302, 303, 304, 305, 306,
307, 308, 309, 310, 311, 312, 313, 314, 315, 316,
- -1, -1, 319, 320, -1, -1, -1, -1, -1, -1,
+ 317, 318, 319, 320, 321, 322, 323, 324, 325, 326,
+ -1, -1, 329, 330, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, 338, 339, -1, 341, -1, 343, -1, -1, -1,
- -1, -1, 349, 350, 351, 352, 353, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, 363, 364, 365, 366,
- 367, -1, -1, -1, 371, 372, 373, 374, 375, 376,
- 377, 378, 379, 380, 381, 382, 383, 384, 385, 386,
- -1, 388, 389, 390, 391, 392, 393, 394, 395, 396,
- 397, 398, 399, 400, 401, 402, 403, 404, 405, 406,
+ -1, 348, 349, -1, 351, -1, -1, -1, -1, -1,
+ -1, -1, 359, 360, 361, 362, 363, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, 373, 374, 375, 376,
+ 377, -1, -1, -1, 381, 382, 383, 384, 385, 386,
+ 387, 388, 389, 390, 391, 392, 393, 394, 395, 396,
+ -1, 398, 399, 400, 401, 402, 403, 404, 405, 406,
407, 408, 409, 410, 411, 412, 413, 414, 415, 416,
417, 418, 419, 420, 421, 422, 423, 424, 425, 426,
427, 428, 429, 430, 431, 432, 433, 434, 435, 436,
- 437, 438, 439, 440, 441, 442, 443, 444, 3, 4,
+ 437, 438, 439, 440, 441, 442, 443, 444, 445, 446,
+ 447, 448, 449, 450, 451, 452, 453, 454, 3, 4,
5, 6, 7, 8, 9, 10, 11, 12, 13, 14,
15, 16, 17, 18, 19, 20, 21, 22, 23, 24,
25, 26, 27, 28, 29, 30, 31, 32, 33, 34,
@@ -2897,19 +3331,20 @@ static const yytype_int16 yycheck[] =
285, 286, 287, 288, 289, 290, 291, 292, 293, 294,
295, 296, 297, 298, 299, 300, 301, 302, 303, 304,
305, 306, 307, 308, 309, 310, 311, 312, 313, 314,
- 315, 316, -1, -1, 319, 320, -1, -1, -1, -1,
+ 315, 316, 317, 318, 319, 320, 321, 322, 323, 324,
+ 325, 326, -1, -1, 329, 330, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, 338, 339, -1, 341, -1, 343, -1,
- -1, -1, -1, -1, 349, 350, 351, 352, 353, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, 363, 364,
- 365, 366, 367, -1, -1, -1, 371, 372, 373, 374,
- 375, 376, 377, 378, 379, 380, 381, 382, 383, 384,
- 385, 386, -1, 388, 389, 390, 391, 392, 393, 394,
- 395, 396, 397, 398, 399, 400, 401, 402, 403, 404,
- 405, 406, 407, 408, 409, 410, 411, 412, 413, 414,
- 415, 416, 417, 418, 419, 420, 421, 422, 423, 424,
+ -1, -1, -1, 348, 349, -1, 351, -1, -1, -1,
+ -1, -1, -1, -1, 359, 360, 361, 362, 363, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, 373, 374,
+ 375, 376, 377, -1, -1, -1, 381, 382, 383, 384,
+ 385, 386, 387, 388, 389, 390, 391, 392, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, 408, 409, 410, 411, 412, 413, 414,
+ 415, 416, 417, 418, 419, 420, 421, 422, -1, 424,
425, 426, 427, 428, 429, 430, 431, 432, 433, 434,
435, 436, 437, 438, 439, 440, 441, 442, 443, 444,
+ 445, 446, 447, 448, 449, 450, 451, 452, 453, 454,
3, 4, 5, 6, 7, 8, 9, 10, 11, 12,
13, 14, 15, 16, 17, 18, 19, 20, 21, 22,
23, 24, 25, 26, 27, 28, 29, 30, 31, 32,
@@ -2941,20 +3376,21 @@ static const yytype_int16 yycheck[] =
283, 284, 285, 286, 287, 288, 289, 290, 291, 292,
293, 294, 295, 296, 297, 298, 299, 300, 301, 302,
303, 304, 305, 306, 307, 308, 309, 310, 311, 312,
- 313, 314, 315, 316, -1, -1, 319, 320, -1, -1,
+ 313, 314, 315, 316, -1, -1, -1, 320, 321, 322,
+ 323, 324, 325, 326, -1, -1, 329, 330, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, 338, 339, -1, 341, -1,
- -1, -1, -1, -1, -1, -1, 349, 350, 351, 352,
- 353, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- 363, 364, 365, 366, 367, -1, -1, -1, 371, 372,
- 373, 374, 375, 376, 377, 378, 379, 380, 381, 382,
- 383, 384, 385, 386, -1, 388, 389, 390, 391, 392,
- 393, 394, 395, 396, 397, 398, 399, 400, 401, 402,
- 403, 404, 405, 406, 407, 408, 409, 410, 411, 412,
+ -1, -1, -1, -1, -1, 348, 349, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, 360, 361, 362,
+ 363, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ 373, 374, 375, 376, -1, -1, -1, -1, 381, 382,
+ 383, 384, 385, 386, 387, 388, 389, 390, 391, 392,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, 408, 409, 410, 411, 412,
413, 414, 415, 416, 417, 418, 419, 420, 421, 422,
- 423, 424, 425, 426, 427, 428, 429, 430, 431, 432,
+ -1, 424, 425, 426, 427, 428, 429, 430, 431, 432,
433, 434, 435, 436, 437, 438, 439, 440, 441, 442,
- 443, 444, 3, 4, 5, 6, 7, 8, 9, 10,
+ 443, 444, 445, 446, 447, 448, 449, 450, 451, 452,
+ 453, 454, 3, 4, 5, 6, 7, 8, 9, 10,
11, 12, 13, 14, 15, 16, 17, 18, 19, 20,
21, 22, 23, 24, 25, 26, 27, 28, 29, 30,
31, 32, 33, 34, 35, 36, 37, 38, 39, 40,
@@ -2985,20 +3421,21 @@ static const yytype_int16 yycheck[] =
281, 282, 283, 284, 285, 286, 287, 288, 289, 290,
291, 292, 293, 294, 295, 296, 297, 298, 299, 300,
301, 302, 303, 304, 305, 306, 307, 308, 309, 310,
- 311, 312, 313, 314, 315, 316, -1, -1, 319, 320,
+ 311, 312, 313, 314, 315, 316, 317, 318, 319, 320,
+ 321, 322, 323, 324, 325, 326, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, 338, 339, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, 349, 350,
- 351, 352, 353, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, 363, 364, 365, 366, 367, -1, -1, -1,
- 371, 372, 373, 374, 375, 376, 377, 378, 379, 380,
- 381, 382, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, 398, 399, 400,
- 401, 402, 403, 404, 405, 406, 407, 408, 409, 410,
- 411, 412, -1, 414, 415, 416, 417, 418, 419, 420,
- 421, 422, 423, 424, 425, 426, 427, 428, 429, 430,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ 351, -1, -1, -1, -1, -1, -1, -1, 359, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, 373, 374, 375, 376, 377, -1, -1, -1,
+ -1, -1, -1, -1, -1, 386, 387, 388, 389, 390,
+ 391, 392, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, 408, 409, 410,
+ 411, 412, 413, -1, -1, -1, -1, -1, -1, -1,
+ -1, 422, -1, 424, 425, 426, 427, 428, 429, 430,
431, 432, 433, 434, 435, 436, 437, 438, 439, 440,
- 441, 442, 443, 444, 3, 4, 5, 6, 7, 8,
+ 441, 442, 443, 444, 445, 446, 447, 448, 449, 450,
+ 451, 452, 453, 454, 3, 4, 5, 6, 7, 8,
9, 10, 11, 12, 13, 14, 15, 16, 17, 18,
19, 20, 21, 22, 23, 24, 25, 26, 27, 28,
29, 30, 31, 32, 33, 34, 35, 36, 37, 38,
@@ -3030,19 +3467,20 @@ static const yytype_int16 yycheck[] =
289, 290, 291, 292, 293, 294, 295, 296, 297, 298,
299, 300, 301, 302, 303, 304, 305, 306, 307, 308,
309, 310, 311, 312, 313, 314, 315, 316, -1, -1,
- 319, 320, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, 338,
- 339, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, 350, 351, 352, 353, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, 363, 364, 365, 366, -1, -1,
- -1, -1, 371, 372, 373, 374, 375, 376, 377, 378,
- 379, 380, 381, 382, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, 398,
- 399, 400, 401, 402, 403, 404, 405, 406, 407, 408,
- 409, 410, 411, 412, -1, 414, 415, 416, 417, 418,
- 419, 420, 421, 422, 423, 424, 425, 426, 427, 428,
+ -1, 320, 321, 322, 323, 324, 325, 326, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, 373, 374, 375, 376, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, 386, 387, 388,
+ 389, 390, 391, 392, 393, -1, -1, 396, -1, 398,
+ 399, -1, -1, 402, -1, -1, -1, -1, -1, 408,
+ 409, 410, 411, 412, 413, -1, -1, -1, -1, -1,
+ -1, -1, -1, 422, -1, 424, 425, 426, 427, 428,
429, 430, 431, 432, 433, 434, 435, 436, 437, 438,
- 439, 440, 441, 442, 443, 444, 3, 4, 5, 6,
+ 439, 440, 441, 442, 443, 444, 445, 446, 447, 448,
+ 449, 450, 451, 452, 453, 454, 3, 4, 5, 6,
7, 8, 9, 10, 11, 12, 13, 14, 15, 16,
17, 18, 19, 20, 21, 22, 23, 24, 25, 26,
27, 28, 29, 30, 31, 32, 33, 34, 35, 36,
@@ -3074,19 +3512,20 @@ static const yytype_int16 yycheck[] =
287, 288, 289, 290, 291, 292, 293, 294, 295, 296,
297, 298, 299, 300, 301, 302, 303, 304, 305, 306,
307, 308, 309, 310, 311, 312, 313, 314, 315, 316,
+ -1, -1, -1, 320, 321, 322, 323, 324, 325, 326,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, 349, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, 363, 364, 365, 366,
- 367, -1, -1, -1, -1, -1, -1, -1, -1, 376,
- 377, 378, 379, 380, 381, 382, -1, -1, -1, -1,
+ -1, -1, 359, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, 373, 374, 375, 376,
+ -1, -1, -1, -1, -1, -1, -1, -1, 385, 386,
+ 387, 388, 389, 390, 391, 392, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, 398, 399, 400, 401, 402, 403, -1, -1, -1,
- -1, -1, -1, -1, -1, 412, -1, 414, 415, 416,
- 417, 418, 419, 420, 421, 422, 423, 424, 425, 426,
+ -1, 408, 409, 410, 411, 412, 413, -1, -1, -1,
+ -1, -1, -1, -1, -1, 422, -1, 424, 425, 426,
427, 428, 429, 430, 431, 432, 433, 434, 435, 436,
- 437, 438, 439, 440, 441, 442, 443, 444, 3, 4,
+ 437, 438, 439, 440, 441, 442, 443, 444, 445, 446,
+ 447, 448, 449, 450, 451, 452, 453, 454, 3, 4,
5, 6, 7, 8, 9, 10, 11, 12, 13, 14,
15, 16, 17, 18, 19, 20, 21, 22, 23, 24,
25, 26, 27, 28, 29, 30, 31, 32, 33, 34,
@@ -3118,19 +3557,20 @@ static const yytype_int16 yycheck[] =
285, 286, 287, 288, 289, 290, 291, 292, 293, 294,
295, 296, 297, 298, 299, 300, 301, 302, 303, 304,
305, 306, 307, 308, 309, 310, 311, 312, 313, 314,
- 315, 316, -1, -1, -1, -1, -1, -1, -1, -1,
+ 315, 316, -1, -1, -1, 320, 321, 322, 323, 324,
+ 325, 326, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, 351, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, 349, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, 363, 364,
- 365, 366, -1, -1, -1, -1, -1, -1, -1, -1,
- 375, 376, 377, 378, 379, 380, 381, 382, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, 373, 374,
+ 375, 376, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, 386, 387, 388, 389, 390, 391, 392, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, 398, 399, 400, 401, 402, 403, -1,
- -1, -1, -1, -1, -1, -1, -1, 412, -1, 414,
- 415, 416, 417, 418, 419, 420, 421, 422, 423, 424,
+ -1, -1, -1, 408, 409, 410, 411, 412, 413, -1,
+ -1, -1, -1, -1, -1, -1, -1, 422, -1, 424,
425, 426, 427, 428, 429, 430, 431, 432, 433, 434,
435, 436, 437, 438, 439, 440, 441, 442, 443, 444,
+ 445, 446, 447, 448, 449, 450, 451, 452, 453, 454,
3, 4, 5, 6, 7, 8, 9, 10, 11, 12,
13, 14, 15, 16, 17, 18, 19, 20, 21, 22,
23, 24, 25, 26, 27, 28, 29, 30, 31, 32,
@@ -3162,20 +3602,21 @@ static const yytype_int16 yycheck[] =
283, 284, 285, 286, 287, 288, 289, 290, 291, 292,
293, 294, 295, 296, 297, 298, 299, 300, 301, 302,
303, 304, 305, 306, 307, 308, 309, 310, 311, 312,
- 313, 314, 315, 316, -1, -1, -1, -1, -1, -1,
+ 313, 314, 315, 316, -1, -1, -1, 320, 321, 322,
+ 323, 324, 325, 326, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, 344, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, 354, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- 363, 364, 365, 366, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, 376, 377, 378, 379, 380, 381, 382,
+ 373, 374, 375, 376, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, 386, 387, 388, 389, 390, 391, 392,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, 398, 399, 400, 401, 402,
- 403, -1, -1, -1, -1, -1, -1, -1, -1, 412,
- -1, 414, 415, 416, 417, 418, 419, 420, 421, 422,
- 423, 424, 425, 426, 427, 428, 429, 430, 431, 432,
+ -1, -1, -1, -1, -1, 408, 409, 410, 411, 412,
+ 413, -1, -1, -1, -1, -1, -1, -1, -1, 422,
+ -1, 424, 425, 426, 427, 428, 429, 430, 431, 432,
433, 434, 435, 436, 437, 438, 439, 440, 441, 442,
- 443, 444, 3, 4, 5, 6, 7, 8, 9, 10,
+ 443, 444, 445, 446, 447, 448, 449, 450, 451, 452,
+ 453, 454, 3, 4, 5, 6, 7, 8, 9, 10,
11, 12, 13, 14, 15, 16, 17, 18, 19, 20,
21, 22, 23, 24, 25, 26, 27, 28, 29, 30,
31, 32, 33, 34, 35, 36, 37, 38, 39, 40,
@@ -3206,20 +3647,21 @@ static const yytype_int16 yycheck[] =
281, 282, 283, 284, 285, 286, 287, 288, 289, 290,
291, 292, 293, 294, 295, 296, 297, 298, 299, 300,
301, 302, 303, 304, 305, 306, 307, 308, 309, 310,
- 311, 312, 313, 314, 315, 316, -1, -1, -1, -1,
+ 311, 312, 313, 314, 315, 316, -1, -1, -1, 320,
+ 321, 322, 323, 324, 325, 326, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, 344, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, 354, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, 363, 364, 365, 366, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, 376, 377, 378, 379, 380,
- 381, 382, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, 398, 399, 400,
- 401, 402, 403, -1, -1, -1, -1, -1, -1, -1,
- -1, 412, -1, 414, 415, 416, 417, 418, 419, 420,
- 421, 422, 423, 424, 425, 426, 427, 428, 429, 430,
+ -1, -1, 373, 374, 375, 376, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, 386, 387, 388, 389, 390,
+ 391, 392, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, 408, 409, 410,
+ 411, 412, 413, -1, -1, -1, -1, -1, -1, -1,
+ -1, 422, -1, 424, 425, 426, 427, 428, 429, 430,
431, 432, 433, 434, 435, 436, 437, 438, 439, 440,
- 441, 442, 443, 444, 3, 4, 5, 6, 7, 8,
+ 441, 442, 443, 444, 445, 446, 447, 448, 449, 450,
+ 451, 452, 453, 454, 3, 4, 5, 6, 7, 8,
9, 10, 11, 12, 13, 14, 15, 16, 17, 18,
19, 20, 21, 22, 23, 24, 25, 26, 27, 28,
29, 30, 31, 32, 33, 34, 35, 36, 37, 38,
@@ -3251,19 +3693,20 @@ static const yytype_int16 yycheck[] =
289, 290, 291, 292, 293, 294, 295, 296, 297, 298,
299, 300, 301, 302, 303, 304, 305, 306, 307, 308,
309, 310, 311, 312, 313, 314, 315, 316, -1, -1,
+ -1, 320, 321, 322, 323, 324, 325, 326, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, 344, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, 354, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, 363, 364, 365, 366, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, 376, 377, 378,
- 379, 380, 381, 382, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, 398,
- 399, 400, 401, 402, 403, -1, -1, -1, -1, -1,
- -1, -1, -1, 412, -1, 414, 415, 416, 417, 418,
- 419, 420, 421, 422, 423, 424, 425, 426, 427, 428,
+ -1, -1, -1, -1, 373, 374, 375, 376, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, 386, 387, 388,
+ 389, 390, 391, 392, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, 408,
+ 409, 410, 411, 412, 413, -1, -1, -1, -1, -1,
+ -1, -1, -1, 422, -1, 424, 425, 426, 427, 428,
429, 430, 431, 432, 433, 434, 435, 436, 437, 438,
- 439, 440, 441, 442, 443, 444, 3, 4, 5, 6,
+ 439, 440, 441, 442, 443, 444, 445, 446, 447, 448,
+ 449, 450, 451, 452, 453, 454, 3, 4, 5, 6,
7, 8, 9, 10, 11, 12, 13, 14, 15, 16,
17, 18, 19, 20, 21, 22, 23, 24, 25, 26,
27, 28, 29, 30, 31, 32, 33, 34, 35, 36,
@@ -3295,19 +3738,20 @@ static const yytype_int16 yycheck[] =
287, 288, 289, 290, 291, 292, 293, 294, 295, 296,
297, 298, 299, 300, 301, 302, 303, 304, 305, 306,
307, 308, 309, 310, 311, 312, 313, 314, 315, 316,
+ -1, -1, -1, 320, 321, 322, 323, 324, 325, 326,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, 363, 364, 365, 366,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, 376,
- 377, 378, 379, 380, 381, 382, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, 373, 374, 375, 376,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, 386,
+ 387, 388, 389, 390, 391, 392, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, 398, 399, 400, 401, 402, 403, -1, -1, -1,
- -1, -1, -1, -1, -1, 412, -1, 414, 415, 416,
- 417, 418, 419, 420, 421, 422, 423, 424, 425, 426,
+ -1, 408, 409, 410, 411, 412, 413, -1, -1, -1,
+ -1, -1, -1, -1, -1, 422, -1, 424, 425, 426,
427, 428, 429, 430, 431, 432, 433, 434, 435, 436,
- 437, 438, 439, 440, 441, 442, 443, 444, 4, 5,
+ 437, 438, 439, 440, 441, 442, 443, 444, 445, 446,
+ 447, 448, 449, 450, 451, 452, 453, 454, 4, 5,
6, 7, 8, 9, 10, 11, 12, 13, 14, 15,
16, 17, 18, 19, 20, 21, 22, 23, 24, 25,
26, 27, 28, 29, 30, 31, 32, 33, 34, 35,
@@ -3339,18 +3783,19 @@ static const yytype_int16 yycheck[] =
286, 287, 288, 289, 290, 291, 292, 293, 294, 295,
296, 297, 298, 299, 300, 301, 302, 303, 304, 305,
306, 307, 308, 309, 310, 311, 312, 313, 314, 315,
- 316, -1, -1, 319, 320, -1, -1, -1, -1, -1,
+ 316, -1, -1, -1, -1, -1, -1, 323, -1, -1,
+ -1, -1, -1, 329, 330, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, 338, 339, -1, -1, -1, 343, 344, -1,
- -1, -1, -1, -1, 350, 351, 352, 353, -1, -1,
+ -1, -1, 348, 349, -1, -1, -1, 353, 354, -1,
+ -1, -1, -1, -1, 360, 361, 362, 363, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, 371, 372, 373, 374, 375,
- 376, -1, -1, -1, -1, 381, 382, -1, -1, -1,
+ -1, -1, -1, -1, -1, 381, 382, 383, 384, 385,
+ 386, -1, -1, -1, -1, 391, 392, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, 404, 405,
- 406, 407, 408, 409, 410, 411, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, 414, 415,
+ 416, 417, 418, 419, 420, 421, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- 426, 4, 5, 6, 7, 8, 9, 10, 11, 12,
+ 436, 4, 5, 6, 7, 8, 9, 10, 11, 12,
13, 14, 15, 16, 17, 18, 19, 20, 21, 22,
23, 24, 25, 26, 27, 28, 29, 30, 31, 32,
33, 34, 35, 36, 37, 38, 39, 40, 41, 42,
@@ -3381,18 +3826,19 @@ static const yytype_int16 yycheck[] =
283, 284, 285, 286, 287, 288, 289, 290, 291, 292,
293, 294, 295, 296, 297, 298, 299, 300, 301, 302,
303, 304, 305, 306, 307, 308, 309, 310, 311, 312,
- 313, 314, 315, 316, -1, -1, 319, 320, -1, -1,
+ 313, 314, 315, 316, -1, -1, -1, -1, -1, -1,
+ 323, -1, -1, -1, -1, -1, 329, 330, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, 338, 339, -1, -1, 342,
- -1, -1, -1, -1, -1, -1, -1, 350, 351, 352,
- 353, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, 371, 372,
- 373, 374, 375, 376, -1, -1, -1, -1, 381, 382,
+ -1, -1, -1, -1, -1, 348, 349, -1, -1, -1,
+ 353, 354, -1, -1, -1, -1, -1, 360, 361, 362,
+ 363, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, 381, 382,
+ 383, 384, 385, 386, -1, -1, -1, -1, 391, 392,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, 404, 405, 406, 407, 408, 409, 410, 411, -1,
+ -1, 414, 415, 416, 417, 418, 419, 420, 421, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, 426, 4, 5, 6, 7, 8, 9,
+ -1, -1, -1, 436, 4, 5, 6, 7, 8, 9,
10, 11, 12, 13, 14, 15, 16, 17, 18, 19,
20, 21, 22, 23, 24, 25, 26, 27, 28, 29,
30, 31, 32, 33, 34, 35, 36, 37, 38, 39,
@@ -3423,18 +3869,19 @@ static const yytype_int16 yycheck[] =
280, 281, 282, 283, 284, 285, 286, 287, 288, 289,
290, 291, 292, 293, 294, 295, 296, 297, 298, 299,
300, 301, 302, 303, 304, 305, 306, 307, 308, 309,
- 310, 311, 312, 313, 314, 315, 316, -1, -1, 319,
- 320, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, 338, 339,
- -1, -1, -1, 343, -1, -1, -1, -1, -1, -1,
- 350, 351, 352, 353, -1, -1, -1, -1, -1, -1,
+ 310, 311, 312, 313, 314, 315, 316, -1, -1, -1,
+ -1, -1, -1, 323, -1, -1, -1, -1, -1, 329,
+ 330, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, 348, 349,
+ -1, -1, 352, -1, -1, -1, -1, -1, -1, -1,
+ 360, 361, 362, 363, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, 371, 372, 373, 374, 375, 376, -1, -1, -1,
- -1, 381, 382, -1, -1, -1, -1, -1, -1, -1,
+ -1, 381, 382, 383, 384, 385, 386, -1, -1, -1,
+ -1, 391, 392, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, 404, 405, 406, 407, 408, 409,
- 410, 411, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, 426, 4, 5, 6,
+ -1, -1, -1, -1, 414, 415, 416, 417, 418, 419,
+ 420, 421, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, 436, 4, 5, 6,
7, 8, 9, 10, 11, 12, 13, 14, 15, 16,
17, 18, 19, 20, 21, 22, 23, 24, 25, 26,
27, 28, 29, 30, 31, 32, 33, 34, 35, 36,
@@ -3466,17 +3913,18 @@ static const yytype_int16 yycheck[] =
287, 288, 289, 290, 291, 292, 293, 294, 295, 296,
297, 298, 299, 300, 301, 302, 303, 304, 305, 306,
307, 308, 309, 310, 311, 312, 313, 314, 315, 316,
- -1, -1, 319, 320, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, 323, -1, -1, -1,
+ -1, -1, 329, 330, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, 338, 339, -1, -1, 342, -1, -1, -1, -1,
- -1, -1, -1, 350, 351, 352, 353, -1, -1, -1,
+ -1, 348, 349, -1, -1, -1, 353, -1, -1, -1,
+ -1, -1, -1, 360, 361, 362, 363, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, 371, 372, 373, 374, 375, 376,
- -1, -1, -1, -1, 381, 382, -1, -1, -1, -1,
+ -1, -1, -1, -1, 381, 382, 383, 384, 385, 386,
+ -1, -1, -1, -1, 391, 392, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, 404, 405, 406,
- 407, 408, 409, 410, 411, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, 426,
+ -1, -1, -1, -1, -1, -1, -1, 414, 415, 416,
+ 417, 418, 419, 420, 421, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, 436,
4, 5, 6, 7, 8, 9, 10, 11, 12, 13,
14, 15, 16, 17, 18, 19, 20, 21, 22, 23,
24, 25, 26, 27, 28, 29, 30, 31, 32, 33,
@@ -3508,18 +3956,19 @@ static const yytype_int16 yycheck[] =
284, 285, 286, 287, 288, 289, 290, 291, 292, 293,
294, 295, 296, 297, 298, 299, 300, 301, 302, 303,
304, 305, 306, 307, 308, 309, 310, 311, 312, 313,
- 314, 315, 316, -1, -1, 319, 320, -1, -1, -1,
+ 314, 315, 316, -1, -1, -1, -1, -1, -1, 323,
+ -1, -1, -1, -1, -1, 329, 330, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, 338, 339, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, 349, 350, 351, 352, 353,
+ -1, -1, -1, -1, 348, 349, -1, -1, 352, -1,
+ -1, -1, -1, -1, -1, -1, 360, 361, 362, 363,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, 371, 372, 373,
- 374, 375, 376, -1, -1, -1, -1, 381, 382, -1,
+ -1, -1, -1, -1, -1, -1, -1, 381, 382, 383,
+ 384, 385, 386, -1, -1, -1, -1, 391, 392, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- 404, 405, 406, 407, 408, 409, 410, 411, -1, -1,
+ 414, 415, 416, 417, 418, 419, 420, 421, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, 426, 4, 5, 6, 7, 8, 9, 10,
+ -1, -1, 436, 4, 5, 6, 7, 8, 9, 10,
11, 12, 13, 14, 15, 16, 17, 18, 19, 20,
21, 22, 23, 24, 25, 26, 27, 28, 29, 30,
31, 32, 33, 34, 35, 36, 37, 38, 39, 40,
@@ -3550,18 +3999,19 @@ static const yytype_int16 yycheck[] =
281, 282, 283, 284, 285, 286, 287, 288, 289, 290,
291, 292, 293, 294, 295, 296, 297, 298, 299, 300,
301, 302, 303, 304, 305, 306, 307, 308, 309, 310,
- 311, 312, 313, 314, 315, 316, -1, -1, 319, 320,
+ 311, 312, 313, 314, 315, 316, -1, -1, -1, -1,
+ -1, -1, 323, -1, -1, -1, -1, -1, 329, 330,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, 338, 339, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, 350,
- 351, 352, 353, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, 348, 349, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, 359, 360,
+ 361, 362, 363, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- 371, 372, 373, 374, 375, 376, -1, -1, -1, -1,
- 381, 382, -1, -1, -1, -1, -1, -1, -1, -1,
+ 381, 382, 383, 384, 385, 386, -1, -1, -1, -1,
+ 391, 392, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, 404, 405, 406, 407, 408, 409, 410,
- 411, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, 426, 4, 5, 6, 7,
+ -1, -1, -1, 414, 415, 416, 417, 418, 419, 420,
+ 421, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, 436, 4, 5, 6, 7,
8, 9, 10, 11, 12, 13, 14, 15, 16, 17,
18, 19, 20, 21, 22, 23, 24, 25, 26, 27,
28, 29, 30, 31, 32, 33, 34, 35, 36, 37,
@@ -3593,37 +4043,144 @@ static const yytype_int16 yycheck[] =
288, 289, 290, 291, 292, 293, 294, 295, 296, 297,
298, 299, 300, 301, 302, 303, 304, 305, 306, 307,
308, 309, 310, 311, 312, 313, 314, 315, 316, -1,
- -1, 319, 320, -1, -1, 413, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, 427,
- 338, 339, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, 350, 351, 352, 353, 444, 445, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, 371, 372, 373, 374, 375, 376, -1,
- -1, -1, -1, 381, 382, -1, -1, -1, 476, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, 487,
- -1, -1, -1, -1, -1, -1, 404, 405, 406, 407,
- 408, 409, 410, 411, -1, -1, -1, -1, 506, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, 426, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, 323, -1, -1, -1, -1,
+ -1, 329, 330, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ 348, 349, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, 360, 361, 362, 363, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, 381, 382, 383, 384, 385, 386, -1,
+ -1, -1, -1, 391, 392, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, 414, 415, 416, 417,
+ 418, 419, 420, 421, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, 436, 4,
+ 5, 6, 7, 8, 9, 10, 11, 12, 13, 14,
+ 15, 16, 17, 18, 19, 20, 21, 22, 23, 24,
+ 25, 26, 27, 28, 29, 30, 31, 32, 33, 34,
+ 35, 36, 37, 38, 39, 40, 41, 42, 43, 44,
+ 45, 46, 47, 48, 49, 50, 51, 52, 53, 54,
+ 55, 56, 57, 58, 59, 60, -1, -1, 63, 64,
+ 65, 66, 67, 68, 69, 70, 71, 72, 73, 74,
+ 75, 76, 77, 78, 79, 80, 81, 82, 83, 84,
+ 85, 86, 87, 88, 89, 90, 91, 92, 93, 94,
+ 95, 96, 97, 98, 99, 100, 101, 102, 103, 104,
+ 105, 106, 107, 108, 109, 110, 111, 112, 113, 114,
+ 115, 116, 117, 118, 119, 120, 121, 122, 123, 124,
+ 125, 126, 127, 128, 129, 130, 131, 132, 133, 134,
+ 135, 136, 137, 138, 139, 140, 141, 142, 143, 144,
+ 145, 146, 147, 148, 149, 150, 151, 152, 153, 154,
+ 155, 156, 157, 158, 159, 160, 161, 162, 163, 164,
+ 165, 166, 167, 168, 169, 170, 171, 172, 173, 174,
+ 175, 176, 177, 178, 179, 180, 181, 182, 183, 184,
+ 185, 186, 187, 188, 189, 190, 191, 192, 193, 194,
+ 195, 196, 197, 198, 199, 200, 201, 202, 203, 204,
+ 205, 206, 207, 208, 209, 210, 211, 212, 213, 214,
+ 215, 216, 217, 218, 219, 220, 221, 222, 223, 224,
+ 225, 226, 227, 228, 229, 230, 231, 232, 233, 234,
+ 235, 236, 237, 238, 239, 240, 241, 242, 243, 244,
+ 245, 246, 247, 248, 249, 250, 251, 252, 253, 254,
+ 255, 256, 257, 258, 259, 260, 261, 262, 263, 264,
+ 265, 266, 267, 268, 269, 270, 271, 272, 273, 274,
+ 275, 276, 277, 278, 279, 280, 281, 282, 283, 284,
+ 285, 286, 287, 288, 289, 290, 291, 292, 293, 294,
+ 295, 296, 297, 298, 299, 300, 301, 302, 303, 304,
+ 305, 306, 307, 308, 309, 310, 311, 312, 313, 314,
+ 315, 316, -1, -1, -1, -1, -1, -1, 323, -1,
+ -1, -1, -1, -1, 329, 330, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, 576, -1,
+ -1, -1, -1, 348, 349, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, 360, 361, 362, 363, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, 589, 590, 591, 592, 593, 594, 595, 596, 597,
- 598, 599, 600, 601, 602, 603, 604, 605, 606, 607,
+ -1, -1, -1, -1, -1, -1, 381, 382, 383, 384,
+ 385, 386, -1, -1, -1, -1, 391, 392, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, 414,
+ 415, 416, 417, 418, 419, 420, 421, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, 436, 4, 5, 6, 7, 8, 9, 10, 11,
+ 12, 13, 14, 15, 16, 17, 18, 19, 20, 21,
+ 22, 23, 24, 25, 26, 27, 28, 29, 30, 31,
+ 32, 33, 34, 35, 36, 37, 38, 39, 40, 41,
+ 42, 43, 44, 45, 46, 47, 48, 49, 50, 51,
+ 52, 53, 54, 55, 56, 57, 58, 59, 60, -1,
+ -1, 63, 64, 65, 66, 67, 68, 69, 70, 71,
+ 72, 73, 74, 75, 76, 77, 78, 79, 80, 81,
+ 82, 83, 84, 85, 86, 87, 88, 89, 90, 91,
+ 92, 93, 94, 95, 96, 97, 98, 99, 100, 101,
+ 102, 103, 104, 105, 106, 107, 108, 109, 110, 111,
+ 112, 113, 114, 115, 116, 117, 118, 119, 120, 121,
+ 122, 123, 124, 125, 126, 127, 128, 129, 130, 131,
+ 132, 133, 134, 135, 136, 137, 138, 139, 140, 141,
+ 142, 143, 144, 145, 146, 147, 148, 149, 150, 151,
+ 152, 153, 154, 155, 156, 157, 158, 159, 160, 161,
+ 162, 163, 164, 165, 166, 167, 168, 169, 170, 171,
+ 172, 173, 174, 175, 176, 177, 178, 179, 180, 181,
+ 182, 183, 184, 185, 186, 187, 188, 189, 190, 191,
+ 192, 193, 194, 195, 196, 197, 198, 199, 200, 201,
+ 202, 203, 204, 205, 206, 207, 208, 209, 210, 211,
+ 212, 213, 214, 215, 216, 217, 218, 219, 220, 221,
+ 222, 223, 224, 225, 226, 227, 228, 229, 230, 231,
+ 232, 233, 234, 235, 236, 237, 238, 239, 240, 241,
+ 242, 243, 244, 245, 246, 247, 248, 249, 250, 251,
+ 252, 253, 254, 255, 256, 257, 258, 259, 260, 261,
+ 262, 263, 264, 265, 266, 267, 268, 269, 270, 271,
+ 272, 273, 274, 275, 276, 277, 278, 279, 280, 281,
+ 282, 283, 284, 285, 286, 287, 288, 289, 290, 291,
+ 292, 293, 294, 295, 296, 297, 298, 299, 300, 301,
+ 302, 303, 304, 305, 306, 307, 308, 309, 310, 311,
+ 312, 313, 314, 315, 316, -1, -1, -1, -1, -1,
+ -1, 323, -1, -1, -1, -1, -1, 329, 330, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, 348, 349, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, 360, 361,
+ 362, 363, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, 381,
+ 382, 383, 384, 385, 386, -1, -1, -1, -1, 391,
+ 392, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, 414, 415, 416, 417, 418, 419, 420, 421,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, 436, 4, 5, 6, 7, 8,
+ 9, 10, 11, 12, 13, 14, 15, 16, 17, 18,
+ 19, 20, 21, 22, 23, 24, 25, 26, 27, 28,
+ 29, 30, 31, 32, 33, 34, 35, 36, 37, 38,
+ 39, 40, 41, 42, 43, 44, 45, 46, 47, 48,
+ 49, 50, 51, 52, 53, 54, 55, 56, 57, 58,
+ 59, 60, -1, -1, 63, 64, 65, 66, 67, 68,
+ 69, 70, 71, 72, 73, 74, 75, 76, 77, 78,
+ 79, 80, 81, 82, 83, 84, 85, 86, 87, 88,
+ 89, 90, 91, 92, 93, 94, 95, 96, 97, 98,
+ 99, 100, 101, 102, 103, 104, 105, 106, 107, 108,
+ 109, 110, 111, 112, 113, 114, 115, 116, 117, 118,
+ 119, 120, 121, 122, 123, 124, 125, 126, 127, 128,
+ 129, 130, 131, 132, 133, 134, 135, 136, 137, 138,
+ 139, 140, 141, 142, 143, 144, 145, 146, 147, 148,
+ 149, 150, 151, 152, 153, 154, 155, 156, 157, 158,
+ 159, 160, 161, 162, 163, 164, 165, 166, 167, 168,
+ 169, 170, 171, 172, 173, 174, 175, 176, 177, 178,
+ 179, 180, 181, 182, 183, 184, 185, 186, 187, 188,
+ 189, 190, 191, 192, 193, 194, 195, 196, 197, 198,
+ 199, 200, 201, 202, 203, 204, 205, 206, 207, 208,
+ 209, 210, 211, 212, 213, 214, 215, 216, 217, 218,
+ 219, 220, 221, 222, 223, 224, 225, 226, 227, 228,
+ 229, 230, 231, 232, 233, 234, 235, 236, 237, 238,
+ 239, 240, 241, 242, 243, 244, 245, 246, 247, 248,
+ 249, 250, 251, 252, 253, 254, 255, 256, 257, 258,
+ 259, 260, 261, 262, 263, 264, 265, 266, 267, 268,
+ 269, 270, 271, 272, 273, 274, 275, 276, 277, 278,
+ 279, 280, 281, 282, 283, 284, 285, 286, 287, 288,
+ 289, 290, 291, 292, 293, 294, 295, 296, 297, 298,
+ 299, 300, 301, 302, 303, 304, 305, 306, 307, 308,
+ 309, 310, 311, 312, 313, 314, 315, 316, -1, -1,
+ -1, -1, -1, -1, 323, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, 710
+ -1, -1, -1, -1, -1, -1, -1, 386, -1, -1,
+ -1, -1, 391, 392
};
/* YYSTOS[STATE-NUM] -- The (internal number of the) accessing
@@ -3661,119 +4218,142 @@ static const yytype_int16 yystos[] =
282, 283, 284, 285, 286, 287, 288, 289, 290, 291,
292, 293, 294, 295, 296, 297, 298, 299, 300, 301,
302, 303, 304, 305, 306, 307, 308, 309, 310, 311,
- 312, 313, 314, 315, 316, 349, 363, 364, 365, 366,
- 367, 376, 377, 378, 379, 380, 381, 382, 398, 399,
- 400, 401, 402, 403, 412, 414, 415, 416, 417, 418,
- 419, 420, 421, 422, 423, 424, 425, 426, 427, 428,
- 429, 430, 431, 432, 433, 434, 435, 436, 437, 438,
- 439, 440, 441, 442, 443, 444, 476, 477, 480, 481,
- 482, 483, 487, 488, 489, 490, 491, 492, 495, 496,
- 497, 498, 499, 501, 506, 507, 508, 549, 550, 551,
- 507, 343, 375, 339, 339, 349, 375, 349, 552, 340,
- 346, 484, 485, 486, 496, 501, 346, 349, 375, 349,
- 375, 497, 501, 357, 503, 504, 0, 550, 501, 510,
- 343, 375, 399, 493, 494, 375, 500, 341, 349, 502,
- 343, 528, 485, 484, 486, 375, 375, 339, 348, 502,
- 343, 346, 349, 479, 319, 320, 338, 339, 350, 351,
- 352, 353, 371, 372, 373, 374, 375, 404, 405, 406,
- 407, 408, 409, 410, 411, 446, 447, 448, 450, 451,
- 452, 453, 454, 455, 456, 457, 458, 499, 501, 505,
- 502, 349, 496, 501, 511, 512, 509, 348, 340, 346,
- 340, 346, 342, 457, 459, 460, 461, 462, 463, 464,
- 465, 466, 467, 468, 469, 470, 341, 349, 341, 343,
- 344, 349, 383, 384, 385, 386, 388, 389, 390, 391,
- 392, 393, 394, 395, 396, 397, 413, 457, 470, 472,
- 474, 476, 480, 499, 501, 517, 518, 519, 520, 521,
- 529, 530, 531, 532, 535, 536, 539, 540, 541, 548,
- 553, 502, 348, 502, 343, 472, 515, 348, 478, 375,
- 346, 349, 457, 457, 474, 319, 320, 341, 345, 340,
- 340, 346, 382, 472, 339, 457, 346, 358, 501, 375,
- 513, 514, 344, 512, 511, 470, 475, 494, 375, 354,
- 355, 356, 351, 353, 317, 318, 321, 322, 357, 358,
- 323, 324, 361, 360, 359, 325, 327, 326, 362, 342,
- 342, 470, 341, 344, 522, 339, 349, 349, 543, 339,
- 339, 349, 349, 474, 339, 474, 347, 349, 349, 349,
- 349, 328, 329, 330, 331, 332, 333, 334, 335, 336,
- 337, 348, 473, 346, 349, 344, 518, 532, 536, 541,
- 515, 348, 515, 516, 515, 511, 375, 340, 449, 474,
- 375, 472, 457, 513, 502, 346, 349, 344, 457, 457,
- 457, 459, 459, 460, 460, 461, 461, 461, 461, 462,
- 462, 463, 464, 465, 466, 467, 468, 471, 342, 375,
- 554, 555, 529, 542, 518, 544, 474, 349, 474, 347,
- 472, 472, 515, 344, 346, 344, 342, 349, 514, 474,
- 339, 342, 346, 523, 474, 489, 496, 534, 383, 517,
- 530, 545, 340, 340, 344, 515, 347, 475, 342, 555,
- 344, 375, 340, 339, 534, 546, 547, 525, 526, 527,
- 533, 537, 472, 340, 348, 519, 524, 528, 474, 349,
- 340, 387, 521, 519, 343, 515, 340, 474, 524, 525,
- 529, 538, 349, 344
+ 312, 313, 314, 315, 316, 317, 318, 319, 320, 321,
+ 322, 323, 324, 325, 326, 351, 359, 373, 374, 375,
+ 376, 377, 386, 387, 388, 389, 390, 391, 392, 408,
+ 409, 410, 411, 412, 413, 422, 424, 425, 426, 427,
+ 428, 429, 430, 431, 432, 433, 434, 435, 436, 437,
+ 438, 439, 440, 441, 442, 443, 444, 445, 446, 447,
+ 448, 449, 450, 451, 452, 453, 454, 486, 487, 490,
+ 491, 492, 493, 497, 498, 499, 500, 501, 502, 505,
+ 506, 507, 508, 509, 511, 516, 517, 518, 559, 560,
+ 561, 563, 570, 574, 575, 580, 583, 349, 349, 349,
+ 349, 349, 349, 349, 349, 351, 517, 353, 385, 349,
+ 349, 359, 385, 359, 562, 350, 356, 494, 495, 496,
+ 506, 511, 356, 359, 385, 359, 385, 507, 511, 367,
+ 513, 514, 0, 560, 491, 499, 506, 359, 490, 385,
+ 566, 567, 584, 585, 382, 385, 566, 382, 566, 382,
+ 566, 382, 566, 382, 566, 566, 584, 382, 566, 385,
+ 564, 565, 511, 520, 353, 385, 409, 503, 504, 385,
+ 510, 351, 359, 512, 353, 538, 563, 495, 494, 496,
+ 385, 385, 349, 358, 512, 353, 356, 359, 489, 329,
+ 330, 348, 349, 360, 361, 362, 363, 381, 382, 383,
+ 384, 385, 414, 415, 416, 417, 418, 419, 420, 421,
+ 456, 457, 458, 460, 461, 462, 463, 464, 465, 466,
+ 467, 468, 509, 511, 515, 512, 350, 385, 359, 358,
+ 356, 350, 356, 350, 356, 358, 356, 356, 356, 350,
+ 356, 356, 356, 356, 356, 356, 356, 350, 356, 350,
+ 356, 349, 352, 356, 359, 506, 511, 521, 522, 519,
+ 358, 350, 356, 350, 356, 352, 467, 469, 470, 471,
+ 472, 473, 474, 475, 476, 477, 478, 479, 480, 351,
+ 359, 353, 354, 359, 393, 394, 395, 396, 398, 399,
+ 400, 401, 402, 403, 404, 405, 406, 407, 423, 467,
+ 480, 482, 484, 486, 490, 509, 511, 527, 528, 529,
+ 530, 531, 539, 540, 541, 542, 545, 546, 549, 550,
+ 551, 558, 563, 512, 358, 512, 353, 482, 525, 358,
+ 488, 385, 356, 359, 467, 467, 484, 329, 330, 351,
+ 355, 350, 350, 356, 392, 482, 349, 467, 356, 368,
+ 563, 348, 351, 382, 567, 584, 385, 585, 348, 381,
+ 382, 383, 384, 571, 572, 382, 480, 485, 573, 382,
+ 381, 382, 383, 384, 576, 577, 382, 485, 578, 382,
+ 348, 579, 382, 584, 385, 485, 511, 581, 582, 382,
+ 485, 352, 565, 511, 385, 523, 524, 354, 522, 521,
+ 485, 504, 385, 364, 365, 366, 361, 363, 327, 328,
+ 331, 332, 367, 368, 333, 334, 371, 370, 369, 335,
+ 337, 336, 372, 352, 352, 480, 354, 532, 349, 359,
+ 359, 553, 349, 349, 359, 359, 484, 349, 484, 357,
+ 359, 359, 359, 359, 338, 339, 340, 341, 342, 343,
+ 344, 345, 346, 347, 358, 483, 356, 359, 354, 528,
+ 542, 546, 551, 525, 358, 354, 525, 526, 525, 521,
+ 385, 350, 459, 484, 385, 482, 467, 348, 382, 568,
+ 569, 350, 358, 350, 356, 350, 356, 350, 356, 356,
+ 350, 356, 350, 356, 350, 356, 356, 350, 356, 356,
+ 350, 356, 350, 356, 350, 350, 523, 512, 356, 359,
+ 354, 467, 467, 467, 469, 469, 470, 470, 471, 471,
+ 471, 471, 472, 472, 473, 474, 475, 476, 477, 478,
+ 481, 352, 539, 552, 528, 554, 484, 359, 484, 357,
+ 482, 482, 525, 354, 356, 354, 352, 352, 356, 352,
+ 356, 572, 571, 485, 573, 577, 576, 485, 578, 348,
+ 579, 581, 582, 359, 524, 484, 533, 484, 499, 544,
+ 393, 527, 540, 555, 350, 350, 354, 525, 348, 382,
+ 350, 350, 350, 350, 350, 350, 357, 354, 385, 350,
+ 349, 544, 556, 557, 535, 536, 537, 543, 547, 482,
+ 358, 529, 534, 538, 484, 359, 350, 397, 531, 529,
+ 353, 525, 350, 484, 534, 535, 539, 548, 359, 354
};
/* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */
static const yytype_int16 yyr1[] =
{
- 0, 445, 446, 447, 447, 447, 447, 447, 447, 447,
- 447, 447, 447, 447, 447, 447, 447, 447, 448, 448,
- 448, 448, 448, 448, 449, 450, 451, 452, 452, 453,
- 453, 454, 454, 455, 456, 456, 456, 457, 457, 457,
- 457, 458, 458, 458, 458, 459, 459, 459, 459, 460,
- 460, 460, 461, 461, 461, 462, 462, 462, 462, 462,
- 463, 463, 463, 464, 464, 465, 465, 466, 466, 467,
- 467, 468, 468, 469, 469, 470, 471, 470, 472, 472,
- 473, 473, 473, 473, 473, 473, 473, 473, 473, 473,
- 473, 474, 474, 475, 476, 476, 476, 476, 476, 476,
- 476, 476, 476, 478, 477, 479, 479, 480, 481, 481,
- 482, 482, 483, 484, 484, 485, 485, 485, 485, 486,
- 487, 487, 487, 487, 487, 488, 488, 488, 488, 488,
- 489, 489, 490, 491, 491, 491, 491, 491, 491, 491,
- 491, 492, 493, 493, 494, 494, 494, 495, 496, 496,
- 497, 497, 497, 497, 497, 497, 497, 498, 498, 498,
- 498, 498, 498, 498, 498, 498, 498, 498, 498, 498,
- 498, 498, 498, 498, 498, 498, 498, 498, 498, 498,
- 498, 498, 498, 498, 498, 498, 498, 498, 498, 498,
- 498, 498, 499, 500, 500, 501, 501, 502, 502, 502,
- 502, 503, 503, 504, 505, 505, 506, 506, 506, 506,
- 506, 506, 506, 506, 506, 506, 506, 506, 506, 506,
- 506, 506, 506, 506, 506, 506, 506, 506, 506, 506,
- 506, 506, 506, 506, 506, 506, 506, 506, 506, 506,
- 506, 506, 506, 506, 506, 506, 506, 506, 506, 506,
- 506, 506, 506, 506, 506, 506, 506, 506, 506, 506,
- 506, 506, 506, 506, 506, 506, 506, 506, 506, 506,
- 506, 506, 506, 506, 506, 506, 506, 506, 506, 506,
- 506, 506, 506, 506, 506, 506, 506, 506, 506, 506,
- 506, 506, 506, 506, 506, 506, 506, 506, 506, 506,
- 506, 506, 506, 506, 506, 506, 506, 506, 506, 506,
- 506, 506, 506, 506, 506, 506, 506, 506, 506, 506,
- 506, 506, 506, 506, 506, 506, 506, 506, 506, 506,
- 506, 506, 506, 506, 506, 506, 506, 506, 506, 506,
- 506, 506, 506, 506, 506, 506, 506, 506, 506, 506,
- 506, 506, 506, 506, 506, 506, 506, 506, 506, 506,
- 506, 506, 506, 506, 506, 506, 506, 506, 506, 506,
- 506, 506, 506, 506, 506, 506, 506, 506, 506, 506,
- 506, 506, 506, 506, 506, 506, 506, 506, 506, 506,
- 506, 506, 506, 506, 506, 506, 506, 506, 506, 506,
- 506, 506, 506, 506, 506, 506, 506, 506, 506, 506,
- 506, 506, 506, 506, 506, 506, 506, 506, 506, 506,
- 506, 506, 506, 506, 506, 506, 506, 506, 506, 506,
- 506, 506, 506, 506, 506, 506, 506, 506, 506, 506,
- 506, 506, 506, 506, 506, 506, 506, 506, 506, 506,
- 506, 506, 506, 506, 506, 506, 506, 506, 506, 506,
- 506, 506, 506, 506, 506, 506, 506, 506, 506, 506,
- 506, 506, 506, 506, 506, 506, 506, 506, 506, 506,
- 506, 506, 506, 506, 506, 506, 506, 506, 506, 506,
- 506, 506, 506, 506, 506, 506, 506, 506, 506, 506,
- 506, 506, 506, 506, 506, 506, 506, 506, 506, 506,
- 506, 506, 506, 506, 506, 506, 506, 506, 506, 506,
- 507, 507, 507, 509, 508, 510, 508, 511, 511, 512,
- 512, 513, 513, 514, 514, 515, 515, 515, 516, 516,
- 517, 518, 518, 519, 519, 519, 519, 519, 519, 519,
- 519, 520, 521, 522, 523, 521, 524, 524, 526, 525,
- 527, 525, 528, 528, 529, 529, 530, 530, 531, 531,
- 532, 533, 533, 534, 534, 535, 535, 537, 536, 538,
- 538, 539, 539, 540, 540, 542, 541, 543, 541, 544,
- 541, 545, 545, 546, 546, 547, 547, 548, 548, 548,
- 548, 548, 548, 548, 548, 549, 549, 550, 550, 550,
- 552, 551, 553, 554, 554, 555, 555
+ 0, 455, 456, 457, 457, 457, 457, 457, 457, 457,
+ 457, 457, 457, 457, 457, 457, 457, 457, 458, 458,
+ 458, 458, 458, 458, 459, 460, 461, 462, 462, 463,
+ 463, 464, 464, 465, 466, 466, 466, 467, 467, 467,
+ 467, 468, 468, 468, 468, 469, 469, 469, 469, 470,
+ 470, 470, 471, 471, 471, 472, 472, 472, 472, 472,
+ 473, 473, 473, 474, 474, 475, 475, 476, 476, 477,
+ 477, 478, 478, 479, 479, 480, 481, 480, 482, 482,
+ 483, 483, 483, 483, 483, 483, 483, 483, 483, 483,
+ 483, 484, 484, 485, 486, 486, 486, 486, 486, 486,
+ 486, 486, 486, 486, 486, 488, 487, 489, 489, 490,
+ 490, 490, 490, 491, 491, 492, 492, 493, 494, 494,
+ 495, 495, 495, 495, 496, 497, 497, 497, 497, 497,
+ 498, 498, 498, 498, 498, 499, 499, 500, 501, 501,
+ 501, 501, 501, 501, 501, 501, 502, 503, 503, 504,
+ 504, 504, 505, 506, 506, 507, 507, 507, 507, 507,
+ 507, 507, 507, 507, 507, 507, 508, 508, 508, 508,
+ 508, 508, 508, 508, 508, 508, 508, 508, 508, 508,
+ 508, 508, 508, 508, 508, 508, 508, 508, 508, 508,
+ 508, 508, 508, 508, 508, 508, 508, 508, 508, 508,
+ 508, 509, 510, 510, 511, 511, 512, 512, 512, 512,
+ 513, 513, 514, 515, 515, 516, 516, 516, 516, 516,
+ 516, 516, 516, 516, 516, 516, 516, 516, 516, 516,
+ 516, 516, 516, 516, 516, 516, 516, 516, 516, 516,
+ 516, 516, 516, 516, 516, 516, 516, 516, 516, 516,
+ 516, 516, 516, 516, 516, 516, 516, 516, 516, 516,
+ 516, 516, 516, 516, 516, 516, 516, 516, 516, 516,
+ 516, 516, 516, 516, 516, 516, 516, 516, 516, 516,
+ 516, 516, 516, 516, 516, 516, 516, 516, 516, 516,
+ 516, 516, 516, 516, 516, 516, 516, 516, 516, 516,
+ 516, 516, 516, 516, 516, 516, 516, 516, 516, 516,
+ 516, 516, 516, 516, 516, 516, 516, 516, 516, 516,
+ 516, 516, 516, 516, 516, 516, 516, 516, 516, 516,
+ 516, 516, 516, 516, 516, 516, 516, 516, 516, 516,
+ 516, 516, 516, 516, 516, 516, 516, 516, 516, 516,
+ 516, 516, 516, 516, 516, 516, 516, 516, 516, 516,
+ 516, 516, 516, 516, 516, 516, 516, 516, 516, 516,
+ 516, 516, 516, 516, 516, 516, 516, 516, 516, 516,
+ 516, 516, 516, 516, 516, 516, 516, 516, 516, 516,
+ 516, 516, 516, 516, 516, 516, 516, 516, 516, 516,
+ 516, 516, 516, 516, 516, 516, 516, 516, 516, 516,
+ 516, 516, 516, 516, 516, 516, 516, 516, 516, 516,
+ 516, 516, 516, 516, 516, 516, 516, 516, 516, 516,
+ 516, 516, 516, 516, 516, 516, 516, 516, 516, 516,
+ 516, 516, 516, 516, 516, 516, 516, 516, 516, 516,
+ 516, 516, 516, 516, 516, 516, 516, 516, 516, 516,
+ 516, 516, 516, 516, 516, 516, 516, 516, 516, 516,
+ 516, 516, 516, 516, 516, 516, 516, 516, 516, 516,
+ 516, 516, 516, 516, 516, 516, 516, 516, 516, 516,
+ 516, 516, 516, 516, 516, 516, 516, 516, 516, 516,
+ 516, 516, 516, 516, 516, 516, 516, 516, 516, 516,
+ 516, 516, 516, 516, 516, 516, 516, 516, 516, 516,
+ 516, 516, 516, 516, 516, 516, 516, 516, 516, 516,
+ 517, 517, 517, 519, 518, 520, 518, 521, 521, 522,
+ 522, 523, 523, 524, 524, 525, 525, 525, 525, 526,
+ 526, 527, 528, 528, 529, 529, 529, 529, 529, 529,
+ 529, 529, 530, 531, 532, 533, 531, 534, 534, 536,
+ 535, 537, 535, 538, 538, 539, 539, 540, 540, 541,
+ 541, 542, 543, 543, 544, 544, 545, 545, 547, 546,
+ 548, 548, 549, 549, 550, 550, 552, 551, 553, 551,
+ 554, 551, 555, 555, 556, 556, 557, 557, 558, 558,
+ 558, 558, 558, 558, 558, 558, 559, 559, 560, 560,
+ 560, 562, 561, 563, 564, 564, 565, 565, 566, 566,
+ 567, 567, 568, 568, 569, 569, 570, 570, 570, 570,
+ 570, 570, 571, 571, 572, 572, 572, 572, 572, 573,
+ 573, 574, 574, 575, 575, 575, 575, 575, 575, 575,
+ 575, 576, 576, 577, 577, 577, 577, 578, 578, 579,
+ 579, 580, 580, 580, 580, 581, 581, 582, 582, 583,
+ 583, 584, 584, 585, 585
};
/* YYR2[YYN] -- Number of symbols on the right hand side of rule YYN. */
@@ -3788,18 +4368,19 @@ static const yytype_int8 yyr2[] =
1, 3, 3, 1, 3, 1, 3, 1, 3, 1,
3, 1, 3, 1, 3, 1, 0, 6, 1, 3,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
- 1, 1, 3, 1, 2, 2, 4, 2, 3, 4,
- 2, 3, 4, 0, 6, 2, 3, 2, 1, 1,
- 2, 3, 3, 2, 3, 2, 1, 2, 1, 1,
- 1, 3, 4, 6, 5, 1, 2, 3, 5, 4,
- 1, 2, 1, 1, 1, 1, 1, 1, 1, 1,
- 1, 4, 1, 3, 1, 3, 1, 1, 1, 2,
+ 1, 1, 3, 1, 2, 3, 2, 2, 4, 2,
+ 3, 4, 2, 3, 4, 0, 6, 2, 3, 2,
+ 3, 3, 4, 1, 1, 2, 3, 3, 2, 3,
+ 2, 1, 2, 1, 1, 1, 3, 4, 6, 5,
+ 1, 2, 3, 5, 4, 1, 2, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 4, 1, 3, 1,
+ 3, 1, 1, 1, 2, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
- 1, 4, 1, 1, 3, 2, 3, 2, 3, 3,
- 4, 1, 0, 3, 1, 3, 1, 1, 1, 1,
+ 4, 1, 1, 3, 2, 3, 2, 3, 3, 4,
+ 1, 0, 3, 1, 3, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
@@ -3832,15 +4413,21 @@ static const yytype_int8 yyr2[] =
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 0, 6, 0, 5, 1, 2, 3,
- 4, 1, 3, 1, 2, 1, 3, 4, 1, 3,
- 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
- 1, 2, 2, 0, 0, 5, 1, 1, 0, 2,
- 0, 2, 2, 3, 1, 2, 1, 2, 1, 2,
- 5, 3, 1, 1, 4, 1, 2, 0, 8, 0,
- 1, 3, 2, 1, 2, 0, 6, 0, 8, 0,
- 7, 1, 1, 1, 0, 2, 3, 2, 2, 2,
- 3, 2, 2, 2, 2, 1, 2, 1, 1, 1,
- 0, 3, 5, 1, 3, 1, 4
+ 4, 1, 3, 1, 2, 1, 3, 4, 2, 1,
+ 3, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 2, 2, 0, 0, 5, 1, 1, 0,
+ 2, 0, 2, 2, 3, 1, 2, 1, 2, 1,
+ 2, 5, 3, 1, 1, 4, 1, 2, 0, 8,
+ 0, 1, 3, 2, 1, 2, 0, 6, 0, 8,
+ 0, 7, 1, 1, 1, 0, 2, 3, 2, 2,
+ 2, 3, 2, 2, 2, 2, 1, 2, 1, 1,
+ 1, 0, 3, 5, 1, 3, 1, 4, 1, 3,
+ 5, 5, 1, 3, 1, 3, 4, 6, 6, 8,
+ 6, 8, 1, 3, 1, 1, 1, 1, 1, 1,
+ 3, 4, 6, 4, 6, 6, 8, 6, 8, 6,
+ 8, 1, 3, 1, 1, 1, 1, 1, 3, 1,
+ 3, 6, 8, 4, 6, 1, 3, 1, 1, 4,
+ 6, 1, 3, 3, 3
};
@@ -4586,260 +5173,260 @@ yyreduce:
switch (yyn)
{
case 2: /* variable_identifier: IDENTIFIER */
-#line 371 "MachineIndependent/glslang.y"
+#line 392 "MachineIndependent/glslang.y"
{
(yyval.interm.intermTypedNode) = parseContext.handleVariable((yyvsp[0].lex).loc, (yyvsp[0].lex).symbol, (yyvsp[0].lex).string);
}
-#line 4594 "MachineIndependent/glslang_tab.cpp"
+#line 5181 "MachineIndependent/glslang_tab.cpp"
break;
case 3: /* primary_expression: variable_identifier */
-#line 377 "MachineIndependent/glslang.y"
+#line 398 "MachineIndependent/glslang.y"
{
(yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode);
}
-#line 4602 "MachineIndependent/glslang_tab.cpp"
+#line 5189 "MachineIndependent/glslang_tab.cpp"
break;
case 4: /* primary_expression: LEFT_PAREN expression RIGHT_PAREN */
-#line 380 "MachineIndependent/glslang.y"
+#line 401 "MachineIndependent/glslang.y"
{
(yyval.interm.intermTypedNode) = (yyvsp[-1].interm.intermTypedNode);
if ((yyval.interm.intermTypedNode)->getAsConstantUnion())
(yyval.interm.intermTypedNode)->getAsConstantUnion()->setExpression();
}
-#line 4612 "MachineIndependent/glslang_tab.cpp"
+#line 5199 "MachineIndependent/glslang_tab.cpp"
break;
case 5: /* primary_expression: FLOATCONSTANT */
-#line 385 "MachineIndependent/glslang.y"
+#line 406 "MachineIndependent/glslang.y"
{
(yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion((yyvsp[0].lex).d, EbtFloat, (yyvsp[0].lex).loc, true);
}
-#line 4620 "MachineIndependent/glslang_tab.cpp"
+#line 5207 "MachineIndependent/glslang_tab.cpp"
break;
case 6: /* primary_expression: INTCONSTANT */
-#line 388 "MachineIndependent/glslang.y"
+#line 409 "MachineIndependent/glslang.y"
{
(yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion((yyvsp[0].lex).i, (yyvsp[0].lex).loc, true);
}
-#line 4628 "MachineIndependent/glslang_tab.cpp"
+#line 5215 "MachineIndependent/glslang_tab.cpp"
break;
case 7: /* primary_expression: UINTCONSTANT */
-#line 391 "MachineIndependent/glslang.y"
+#line 412 "MachineIndependent/glslang.y"
{
parseContext.fullIntegerCheck((yyvsp[0].lex).loc, "unsigned literal");
(yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion((yyvsp[0].lex).u, (yyvsp[0].lex).loc, true);
}
-#line 4637 "MachineIndependent/glslang_tab.cpp"
+#line 5224 "MachineIndependent/glslang_tab.cpp"
break;
case 8: /* primary_expression: BOOLCONSTANT */
-#line 395 "MachineIndependent/glslang.y"
+#line 416 "MachineIndependent/glslang.y"
{
(yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion((yyvsp[0].lex).b, (yyvsp[0].lex).loc, true);
}
-#line 4645 "MachineIndependent/glslang_tab.cpp"
+#line 5232 "MachineIndependent/glslang_tab.cpp"
break;
case 9: /* primary_expression: STRING_LITERAL */
-#line 399 "MachineIndependent/glslang.y"
+#line 420 "MachineIndependent/glslang.y"
{
(yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion((yyvsp[0].lex).string, (yyvsp[0].lex).loc, true);
}
-#line 4653 "MachineIndependent/glslang_tab.cpp"
+#line 5240 "MachineIndependent/glslang_tab.cpp"
break;
case 10: /* primary_expression: INT32CONSTANT */
-#line 402 "MachineIndependent/glslang.y"
+#line 423 "MachineIndependent/glslang.y"
{
parseContext.explicitInt32Check((yyvsp[0].lex).loc, "32-bit signed literal");
(yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion((yyvsp[0].lex).i, (yyvsp[0].lex).loc, true);
}
-#line 4662 "MachineIndependent/glslang_tab.cpp"
+#line 5249 "MachineIndependent/glslang_tab.cpp"
break;
case 11: /* primary_expression: UINT32CONSTANT */
-#line 406 "MachineIndependent/glslang.y"
+#line 427 "MachineIndependent/glslang.y"
{
parseContext.explicitInt32Check((yyvsp[0].lex).loc, "32-bit signed literal");
(yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion((yyvsp[0].lex).u, (yyvsp[0].lex).loc, true);
}
-#line 4671 "MachineIndependent/glslang_tab.cpp"
+#line 5258 "MachineIndependent/glslang_tab.cpp"
break;
case 12: /* primary_expression: INT64CONSTANT */
-#line 410 "MachineIndependent/glslang.y"
+#line 431 "MachineIndependent/glslang.y"
{
parseContext.int64Check((yyvsp[0].lex).loc, "64-bit integer literal");
(yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion((yyvsp[0].lex).i64, (yyvsp[0].lex).loc, true);
}
-#line 4680 "MachineIndependent/glslang_tab.cpp"
+#line 5267 "MachineIndependent/glslang_tab.cpp"
break;
case 13: /* primary_expression: UINT64CONSTANT */
-#line 414 "MachineIndependent/glslang.y"
+#line 435 "MachineIndependent/glslang.y"
{
parseContext.int64Check((yyvsp[0].lex).loc, "64-bit unsigned integer literal");
(yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion((yyvsp[0].lex).u64, (yyvsp[0].lex).loc, true);
}
-#line 4689 "MachineIndependent/glslang_tab.cpp"
+#line 5276 "MachineIndependent/glslang_tab.cpp"
break;
case 14: /* primary_expression: INT16CONSTANT */
-#line 418 "MachineIndependent/glslang.y"
+#line 439 "MachineIndependent/glslang.y"
{
parseContext.explicitInt16Check((yyvsp[0].lex).loc, "16-bit integer literal");
(yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion((short)(yyvsp[0].lex).i, (yyvsp[0].lex).loc, true);
}
-#line 4698 "MachineIndependent/glslang_tab.cpp"
+#line 5285 "MachineIndependent/glslang_tab.cpp"
break;
case 15: /* primary_expression: UINT16CONSTANT */
-#line 422 "MachineIndependent/glslang.y"
+#line 443 "MachineIndependent/glslang.y"
{
parseContext.explicitInt16Check((yyvsp[0].lex).loc, "16-bit unsigned integer literal");
(yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion((unsigned short)(yyvsp[0].lex).u, (yyvsp[0].lex).loc, true);
}
-#line 4707 "MachineIndependent/glslang_tab.cpp"
+#line 5294 "MachineIndependent/glslang_tab.cpp"
break;
case 16: /* primary_expression: DOUBLECONSTANT */
-#line 426 "MachineIndependent/glslang.y"
+#line 447 "MachineIndependent/glslang.y"
{
parseContext.requireProfile((yyvsp[0].lex).loc, ECoreProfile | ECompatibilityProfile, "double literal");
if (! parseContext.symbolTable.atBuiltInLevel())
parseContext.doubleCheck((yyvsp[0].lex).loc, "double literal");
(yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion((yyvsp[0].lex).d, EbtDouble, (yyvsp[0].lex).loc, true);
}
-#line 4718 "MachineIndependent/glslang_tab.cpp"
+#line 5305 "MachineIndependent/glslang_tab.cpp"
break;
case 17: /* primary_expression: FLOAT16CONSTANT */
-#line 432 "MachineIndependent/glslang.y"
+#line 453 "MachineIndependent/glslang.y"
{
parseContext.float16Check((yyvsp[0].lex).loc, "half float literal");
(yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion((yyvsp[0].lex).d, EbtFloat16, (yyvsp[0].lex).loc, true);
}
-#line 4727 "MachineIndependent/glslang_tab.cpp"
+#line 5314 "MachineIndependent/glslang_tab.cpp"
break;
case 18: /* postfix_expression: primary_expression */
-#line 440 "MachineIndependent/glslang.y"
+#line 461 "MachineIndependent/glslang.y"
{
(yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode);
}
-#line 4735 "MachineIndependent/glslang_tab.cpp"
+#line 5322 "MachineIndependent/glslang_tab.cpp"
break;
case 19: /* postfix_expression: postfix_expression LEFT_BRACKET integer_expression RIGHT_BRACKET */
-#line 443 "MachineIndependent/glslang.y"
+#line 464 "MachineIndependent/glslang.y"
{
(yyval.interm.intermTypedNode) = parseContext.handleBracketDereference((yyvsp[-2].lex).loc, (yyvsp[-3].interm.intermTypedNode), (yyvsp[-1].interm.intermTypedNode));
}
-#line 4743 "MachineIndependent/glslang_tab.cpp"
+#line 5330 "MachineIndependent/glslang_tab.cpp"
break;
case 20: /* postfix_expression: function_call */
-#line 446 "MachineIndependent/glslang.y"
+#line 467 "MachineIndependent/glslang.y"
{
(yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode);
}
-#line 4751 "MachineIndependent/glslang_tab.cpp"
+#line 5338 "MachineIndependent/glslang_tab.cpp"
break;
case 21: /* postfix_expression: postfix_expression DOT IDENTIFIER */
-#line 449 "MachineIndependent/glslang.y"
+#line 470 "MachineIndependent/glslang.y"
{
(yyval.interm.intermTypedNode) = parseContext.handleDotDereference((yyvsp[0].lex).loc, (yyvsp[-2].interm.intermTypedNode), *(yyvsp[0].lex).string);
}
-#line 4759 "MachineIndependent/glslang_tab.cpp"
+#line 5346 "MachineIndependent/glslang_tab.cpp"
break;
case 22: /* postfix_expression: postfix_expression INC_OP */
-#line 452 "MachineIndependent/glslang.y"
+#line 473 "MachineIndependent/glslang.y"
{
parseContext.variableCheck((yyvsp[-1].interm.intermTypedNode));
parseContext.lValueErrorCheck((yyvsp[0].lex).loc, "++", (yyvsp[-1].interm.intermTypedNode));
(yyval.interm.intermTypedNode) = parseContext.handleUnaryMath((yyvsp[0].lex).loc, "++", EOpPostIncrement, (yyvsp[-1].interm.intermTypedNode));
}
-#line 4769 "MachineIndependent/glslang_tab.cpp"
+#line 5356 "MachineIndependent/glslang_tab.cpp"
break;
case 23: /* postfix_expression: postfix_expression DEC_OP */
-#line 457 "MachineIndependent/glslang.y"
+#line 478 "MachineIndependent/glslang.y"
{
parseContext.variableCheck((yyvsp[-1].interm.intermTypedNode));
parseContext.lValueErrorCheck((yyvsp[0].lex).loc, "--", (yyvsp[-1].interm.intermTypedNode));
(yyval.interm.intermTypedNode) = parseContext.handleUnaryMath((yyvsp[0].lex).loc, "--", EOpPostDecrement, (yyvsp[-1].interm.intermTypedNode));
}
-#line 4779 "MachineIndependent/glslang_tab.cpp"
+#line 5366 "MachineIndependent/glslang_tab.cpp"
break;
case 24: /* integer_expression: expression */
-#line 465 "MachineIndependent/glslang.y"
+#line 486 "MachineIndependent/glslang.y"
{
parseContext.integerCheck((yyvsp[0].interm.intermTypedNode), "[]");
(yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode);
}
-#line 4788 "MachineIndependent/glslang_tab.cpp"
+#line 5375 "MachineIndependent/glslang_tab.cpp"
break;
case 25: /* function_call: function_call_or_method */
-#line 472 "MachineIndependent/glslang.y"
+#line 493 "MachineIndependent/glslang.y"
{
(yyval.interm.intermTypedNode) = parseContext.handleFunctionCall((yyvsp[0].interm).loc, (yyvsp[0].interm).function, (yyvsp[0].interm).intermNode);
delete (yyvsp[0].interm).function;
}
-#line 4797 "MachineIndependent/glslang_tab.cpp"
+#line 5384 "MachineIndependent/glslang_tab.cpp"
break;
case 26: /* function_call_or_method: function_call_generic */
-#line 479 "MachineIndependent/glslang.y"
+#line 500 "MachineIndependent/glslang.y"
{
(yyval.interm) = (yyvsp[0].interm);
}
-#line 4805 "MachineIndependent/glslang_tab.cpp"
+#line 5392 "MachineIndependent/glslang_tab.cpp"
break;
case 27: /* function_call_generic: function_call_header_with_parameters RIGHT_PAREN */
-#line 485 "MachineIndependent/glslang.y"
+#line 506 "MachineIndependent/glslang.y"
{
(yyval.interm) = (yyvsp[-1].interm);
(yyval.interm).loc = (yyvsp[0].lex).loc;
}
-#line 4814 "MachineIndependent/glslang_tab.cpp"
+#line 5401 "MachineIndependent/glslang_tab.cpp"
break;
case 28: /* function_call_generic: function_call_header_no_parameters RIGHT_PAREN */
-#line 489 "MachineIndependent/glslang.y"
+#line 510 "MachineIndependent/glslang.y"
{
(yyval.interm) = (yyvsp[-1].interm);
(yyval.interm).loc = (yyvsp[0].lex).loc;
}
-#line 4823 "MachineIndependent/glslang_tab.cpp"
+#line 5410 "MachineIndependent/glslang_tab.cpp"
break;
case 29: /* function_call_header_no_parameters: function_call_header VOID */
-#line 496 "MachineIndependent/glslang.y"
+#line 517 "MachineIndependent/glslang.y"
{
(yyval.interm) = (yyvsp[-1].interm);
}
-#line 4831 "MachineIndependent/glslang_tab.cpp"
+#line 5418 "MachineIndependent/glslang_tab.cpp"
break;
case 30: /* function_call_header_no_parameters: function_call_header */
-#line 499 "MachineIndependent/glslang.y"
+#line 520 "MachineIndependent/glslang.y"
{
(yyval.interm) = (yyvsp[0].interm);
}
-#line 4839 "MachineIndependent/glslang_tab.cpp"
+#line 5426 "MachineIndependent/glslang_tab.cpp"
break;
case 31: /* function_call_header_with_parameters: function_call_header assignment_expression */
-#line 505 "MachineIndependent/glslang.y"
+#line 526 "MachineIndependent/glslang.y"
{
TParameter param = { 0, new TType };
param.type->shallowCopy((yyvsp[0].interm.intermTypedNode)->getType());
@@ -4847,11 +5434,11 @@ yyreduce:
(yyval.interm).function = (yyvsp[-1].interm).function;
(yyval.interm).intermNode = (yyvsp[0].interm.intermTypedNode);
}
-#line 4851 "MachineIndependent/glslang_tab.cpp"
+#line 5438 "MachineIndependent/glslang_tab.cpp"
break;
case 32: /* function_call_header_with_parameters: function_call_header_with_parameters COMMA assignment_expression */
-#line 512 "MachineIndependent/glslang.y"
+#line 533 "MachineIndependent/glslang.y"
{
TParameter param = { 0, new TType };
param.type->shallowCopy((yyvsp[0].interm.intermTypedNode)->getType());
@@ -4859,29 +5446,29 @@ yyreduce:
(yyval.interm).function = (yyvsp[-2].interm).function;
(yyval.interm).intermNode = parseContext.intermediate.growAggregate((yyvsp[-2].interm).intermNode, (yyvsp[0].interm.intermTypedNode), (yyvsp[-1].lex).loc);
}
-#line 4863 "MachineIndependent/glslang_tab.cpp"
+#line 5450 "MachineIndependent/glslang_tab.cpp"
break;
case 33: /* function_call_header: function_identifier LEFT_PAREN */
-#line 522 "MachineIndependent/glslang.y"
+#line 543 "MachineIndependent/glslang.y"
{
(yyval.interm) = (yyvsp[-1].interm);
}
-#line 4871 "MachineIndependent/glslang_tab.cpp"
+#line 5458 "MachineIndependent/glslang_tab.cpp"
break;
case 34: /* function_identifier: type_specifier */
-#line 530 "MachineIndependent/glslang.y"
+#line 551 "MachineIndependent/glslang.y"
{
// Constructor
(yyval.interm).intermNode = 0;
(yyval.interm).function = parseContext.handleConstructorCall((yyvsp[0].interm.type).loc, (yyvsp[0].interm.type));
}
-#line 4881 "MachineIndependent/glslang_tab.cpp"
+#line 5468 "MachineIndependent/glslang_tab.cpp"
break;
case 35: /* function_identifier: postfix_expression */
-#line 535 "MachineIndependent/glslang.y"
+#line 556 "MachineIndependent/glslang.y"
{
//
// Should be a method or subroutine call, but we haven't recognized the arguments yet.
@@ -4909,50 +5496,50 @@ yyreduce:
(yyval.interm).function = new TFunction(empty, TType(EbtVoid), EOpNull);
}
}
-#line 4913 "MachineIndependent/glslang_tab.cpp"
+#line 5500 "MachineIndependent/glslang_tab.cpp"
break;
case 36: /* function_identifier: non_uniform_qualifier */
-#line 563 "MachineIndependent/glslang.y"
+#line 584 "MachineIndependent/glslang.y"
{
// Constructor
(yyval.interm).intermNode = 0;
(yyval.interm).function = parseContext.handleConstructorCall((yyvsp[0].interm.type).loc, (yyvsp[0].interm.type));
}
-#line 4923 "MachineIndependent/glslang_tab.cpp"
+#line 5510 "MachineIndependent/glslang_tab.cpp"
break;
case 37: /* unary_expression: postfix_expression */
-#line 572 "MachineIndependent/glslang.y"
+#line 593 "MachineIndependent/glslang.y"
{
parseContext.variableCheck((yyvsp[0].interm.intermTypedNode));
(yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode);
if (TIntermMethod* method = (yyvsp[0].interm.intermTypedNode)->getAsMethodNode())
parseContext.error((yyvsp[0].interm.intermTypedNode)->getLoc(), "incomplete method syntax", method->getMethodName().c_str(), "");
}
-#line 4934 "MachineIndependent/glslang_tab.cpp"
+#line 5521 "MachineIndependent/glslang_tab.cpp"
break;
case 38: /* unary_expression: INC_OP unary_expression */
-#line 578 "MachineIndependent/glslang.y"
+#line 599 "MachineIndependent/glslang.y"
{
parseContext.lValueErrorCheck((yyvsp[-1].lex).loc, "++", (yyvsp[0].interm.intermTypedNode));
(yyval.interm.intermTypedNode) = parseContext.handleUnaryMath((yyvsp[-1].lex).loc, "++", EOpPreIncrement, (yyvsp[0].interm.intermTypedNode));
}
-#line 4943 "MachineIndependent/glslang_tab.cpp"
+#line 5530 "MachineIndependent/glslang_tab.cpp"
break;
case 39: /* unary_expression: DEC_OP unary_expression */
-#line 582 "MachineIndependent/glslang.y"
+#line 603 "MachineIndependent/glslang.y"
{
parseContext.lValueErrorCheck((yyvsp[-1].lex).loc, "--", (yyvsp[0].interm.intermTypedNode));
(yyval.interm.intermTypedNode) = parseContext.handleUnaryMath((yyvsp[-1].lex).loc, "--", EOpPreDecrement, (yyvsp[0].interm.intermTypedNode));
}
-#line 4952 "MachineIndependent/glslang_tab.cpp"
+#line 5539 "MachineIndependent/glslang_tab.cpp"
break;
case 40: /* unary_expression: unary_operator unary_expression */
-#line 586 "MachineIndependent/glslang.y"
+#line 607 "MachineIndependent/glslang.y"
{
if ((yyvsp[-1].interm).op != EOpNull) {
char errorOp[2] = {0, 0};
@@ -4969,179 +5556,179 @@ yyreduce:
(yyval.interm.intermTypedNode)->getAsConstantUnion()->setExpression();
}
}
-#line 4973 "MachineIndependent/glslang_tab.cpp"
+#line 5560 "MachineIndependent/glslang_tab.cpp"
break;
case 41: /* unary_operator: PLUS */
-#line 606 "MachineIndependent/glslang.y"
+#line 627 "MachineIndependent/glslang.y"
{ (yyval.interm).loc = (yyvsp[0].lex).loc; (yyval.interm).op = EOpNull; }
-#line 4979 "MachineIndependent/glslang_tab.cpp"
+#line 5566 "MachineIndependent/glslang_tab.cpp"
break;
case 42: /* unary_operator: DASH */
-#line 607 "MachineIndependent/glslang.y"
+#line 628 "MachineIndependent/glslang.y"
{ (yyval.interm).loc = (yyvsp[0].lex).loc; (yyval.interm).op = EOpNegative; }
-#line 4985 "MachineIndependent/glslang_tab.cpp"
+#line 5572 "MachineIndependent/glslang_tab.cpp"
break;
case 43: /* unary_operator: BANG */
-#line 608 "MachineIndependent/glslang.y"
+#line 629 "MachineIndependent/glslang.y"
{ (yyval.interm).loc = (yyvsp[0].lex).loc; (yyval.interm).op = EOpLogicalNot; }
-#line 4991 "MachineIndependent/glslang_tab.cpp"
+#line 5578 "MachineIndependent/glslang_tab.cpp"
break;
case 44: /* unary_operator: TILDE */
-#line 609 "MachineIndependent/glslang.y"
+#line 630 "MachineIndependent/glslang.y"
{ (yyval.interm).loc = (yyvsp[0].lex).loc; (yyval.interm).op = EOpBitwiseNot;
parseContext.fullIntegerCheck((yyvsp[0].lex).loc, "bitwise not"); }
-#line 4998 "MachineIndependent/glslang_tab.cpp"
+#line 5585 "MachineIndependent/glslang_tab.cpp"
break;
case 45: /* multiplicative_expression: unary_expression */
-#line 615 "MachineIndependent/glslang.y"
+#line 636 "MachineIndependent/glslang.y"
{ (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode); }
-#line 5004 "MachineIndependent/glslang_tab.cpp"
+#line 5591 "MachineIndependent/glslang_tab.cpp"
break;
case 46: /* multiplicative_expression: multiplicative_expression STAR unary_expression */
-#line 616 "MachineIndependent/glslang.y"
+#line 637 "MachineIndependent/glslang.y"
{
(yyval.interm.intermTypedNode) = parseContext.handleBinaryMath((yyvsp[-1].lex).loc, "*", EOpMul, (yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode));
if ((yyval.interm.intermTypedNode) == 0)
(yyval.interm.intermTypedNode) = (yyvsp[-2].interm.intermTypedNode);
}
-#line 5014 "MachineIndependent/glslang_tab.cpp"
+#line 5601 "MachineIndependent/glslang_tab.cpp"
break;
case 47: /* multiplicative_expression: multiplicative_expression SLASH unary_expression */
-#line 621 "MachineIndependent/glslang.y"
+#line 642 "MachineIndependent/glslang.y"
{
(yyval.interm.intermTypedNode) = parseContext.handleBinaryMath((yyvsp[-1].lex).loc, "/", EOpDiv, (yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode));
if ((yyval.interm.intermTypedNode) == 0)
(yyval.interm.intermTypedNode) = (yyvsp[-2].interm.intermTypedNode);
}
-#line 5024 "MachineIndependent/glslang_tab.cpp"
+#line 5611 "MachineIndependent/glslang_tab.cpp"
break;
case 48: /* multiplicative_expression: multiplicative_expression PERCENT unary_expression */
-#line 626 "MachineIndependent/glslang.y"
+#line 647 "MachineIndependent/glslang.y"
{
parseContext.fullIntegerCheck((yyvsp[-1].lex).loc, "%");
(yyval.interm.intermTypedNode) = parseContext.handleBinaryMath((yyvsp[-1].lex).loc, "%", EOpMod, (yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode));
if ((yyval.interm.intermTypedNode) == 0)
(yyval.interm.intermTypedNode) = (yyvsp[-2].interm.intermTypedNode);
}
-#line 5035 "MachineIndependent/glslang_tab.cpp"
+#line 5622 "MachineIndependent/glslang_tab.cpp"
break;
case 49: /* additive_expression: multiplicative_expression */
-#line 635 "MachineIndependent/glslang.y"
+#line 656 "MachineIndependent/glslang.y"
{ (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode); }
-#line 5041 "MachineIndependent/glslang_tab.cpp"
+#line 5628 "MachineIndependent/glslang_tab.cpp"
break;
case 50: /* additive_expression: additive_expression PLUS multiplicative_expression */
-#line 636 "MachineIndependent/glslang.y"
+#line 657 "MachineIndependent/glslang.y"
{
(yyval.interm.intermTypedNode) = parseContext.handleBinaryMath((yyvsp[-1].lex).loc, "+", EOpAdd, (yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode));
if ((yyval.interm.intermTypedNode) == 0)
(yyval.interm.intermTypedNode) = (yyvsp[-2].interm.intermTypedNode);
}
-#line 5051 "MachineIndependent/glslang_tab.cpp"
+#line 5638 "MachineIndependent/glslang_tab.cpp"
break;
case 51: /* additive_expression: additive_expression DASH multiplicative_expression */
-#line 641 "MachineIndependent/glslang.y"
+#line 662 "MachineIndependent/glslang.y"
{
(yyval.interm.intermTypedNode) = parseContext.handleBinaryMath((yyvsp[-1].lex).loc, "-", EOpSub, (yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode));
if ((yyval.interm.intermTypedNode) == 0)
(yyval.interm.intermTypedNode) = (yyvsp[-2].interm.intermTypedNode);
}
-#line 5061 "MachineIndependent/glslang_tab.cpp"
+#line 5648 "MachineIndependent/glslang_tab.cpp"
break;
case 52: /* shift_expression: additive_expression */
-#line 649 "MachineIndependent/glslang.y"
+#line 670 "MachineIndependent/glslang.y"
{ (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode); }
-#line 5067 "MachineIndependent/glslang_tab.cpp"
+#line 5654 "MachineIndependent/glslang_tab.cpp"
break;
case 53: /* shift_expression: shift_expression LEFT_OP additive_expression */
-#line 650 "MachineIndependent/glslang.y"
+#line 671 "MachineIndependent/glslang.y"
{
parseContext.fullIntegerCheck((yyvsp[-1].lex).loc, "bit shift left");
(yyval.interm.intermTypedNode) = parseContext.handleBinaryMath((yyvsp[-1].lex).loc, "<<", EOpLeftShift, (yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode));
if ((yyval.interm.intermTypedNode) == 0)
(yyval.interm.intermTypedNode) = (yyvsp[-2].interm.intermTypedNode);
}
-#line 5078 "MachineIndependent/glslang_tab.cpp"
+#line 5665 "MachineIndependent/glslang_tab.cpp"
break;
case 54: /* shift_expression: shift_expression RIGHT_OP additive_expression */
-#line 656 "MachineIndependent/glslang.y"
+#line 677 "MachineIndependent/glslang.y"
{
parseContext.fullIntegerCheck((yyvsp[-1].lex).loc, "bit shift right");
(yyval.interm.intermTypedNode) = parseContext.handleBinaryMath((yyvsp[-1].lex).loc, ">>", EOpRightShift, (yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode));
if ((yyval.interm.intermTypedNode) == 0)
(yyval.interm.intermTypedNode) = (yyvsp[-2].interm.intermTypedNode);
}
-#line 5089 "MachineIndependent/glslang_tab.cpp"
+#line 5676 "MachineIndependent/glslang_tab.cpp"
break;
case 55: /* relational_expression: shift_expression */
-#line 665 "MachineIndependent/glslang.y"
+#line 686 "MachineIndependent/glslang.y"
{ (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode); }
-#line 5095 "MachineIndependent/glslang_tab.cpp"
+#line 5682 "MachineIndependent/glslang_tab.cpp"
break;
case 56: /* relational_expression: relational_expression LEFT_ANGLE shift_expression */
-#line 666 "MachineIndependent/glslang.y"
+#line 687 "MachineIndependent/glslang.y"
{
(yyval.interm.intermTypedNode) = parseContext.handleBinaryMath((yyvsp[-1].lex).loc, "<", EOpLessThan, (yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode));
if ((yyval.interm.intermTypedNode) == 0)
(yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion(false, (yyvsp[-1].lex).loc);
}
-#line 5105 "MachineIndependent/glslang_tab.cpp"
+#line 5692 "MachineIndependent/glslang_tab.cpp"
break;
case 57: /* relational_expression: relational_expression RIGHT_ANGLE shift_expression */
-#line 671 "MachineIndependent/glslang.y"
+#line 692 "MachineIndependent/glslang.y"
{
(yyval.interm.intermTypedNode) = parseContext.handleBinaryMath((yyvsp[-1].lex).loc, ">", EOpGreaterThan, (yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode));
if ((yyval.interm.intermTypedNode) == 0)
(yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion(false, (yyvsp[-1].lex).loc);
}
-#line 5115 "MachineIndependent/glslang_tab.cpp"
+#line 5702 "MachineIndependent/glslang_tab.cpp"
break;
case 58: /* relational_expression: relational_expression LE_OP shift_expression */
-#line 676 "MachineIndependent/glslang.y"
+#line 697 "MachineIndependent/glslang.y"
{
(yyval.interm.intermTypedNode) = parseContext.handleBinaryMath((yyvsp[-1].lex).loc, "<=", EOpLessThanEqual, (yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode));
if ((yyval.interm.intermTypedNode) == 0)
(yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion(false, (yyvsp[-1].lex).loc);
}
-#line 5125 "MachineIndependent/glslang_tab.cpp"
+#line 5712 "MachineIndependent/glslang_tab.cpp"
break;
case 59: /* relational_expression: relational_expression GE_OP shift_expression */
-#line 681 "MachineIndependent/glslang.y"
+#line 702 "MachineIndependent/glslang.y"
{
(yyval.interm.intermTypedNode) = parseContext.handleBinaryMath((yyvsp[-1].lex).loc, ">=", EOpGreaterThanEqual, (yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode));
if ((yyval.interm.intermTypedNode) == 0)
(yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion(false, (yyvsp[-1].lex).loc);
}
-#line 5135 "MachineIndependent/glslang_tab.cpp"
+#line 5722 "MachineIndependent/glslang_tab.cpp"
break;
case 60: /* equality_expression: relational_expression */
-#line 689 "MachineIndependent/glslang.y"
+#line 710 "MachineIndependent/glslang.y"
{ (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode); }
-#line 5141 "MachineIndependent/glslang_tab.cpp"
+#line 5728 "MachineIndependent/glslang_tab.cpp"
break;
case 61: /* equality_expression: equality_expression EQ_OP relational_expression */
-#line 690 "MachineIndependent/glslang.y"
+#line 711 "MachineIndependent/glslang.y"
{
parseContext.arrayObjectCheck((yyvsp[-1].lex).loc, (yyvsp[-2].interm.intermTypedNode)->getType(), "array comparison");
parseContext.opaqueCheck((yyvsp[-1].lex).loc, (yyvsp[-2].interm.intermTypedNode)->getType(), "==");
@@ -5151,11 +5738,11 @@ yyreduce:
if ((yyval.interm.intermTypedNode) == 0)
(yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion(false, (yyvsp[-1].lex).loc);
}
-#line 5155 "MachineIndependent/glslang_tab.cpp"
+#line 5742 "MachineIndependent/glslang_tab.cpp"
break;
case 62: /* equality_expression: equality_expression NE_OP relational_expression */
-#line 699 "MachineIndependent/glslang.y"
+#line 720 "MachineIndependent/glslang.y"
{
parseContext.arrayObjectCheck((yyvsp[-1].lex).loc, (yyvsp[-2].interm.intermTypedNode)->getType(), "array comparison");
parseContext.opaqueCheck((yyvsp[-1].lex).loc, (yyvsp[-2].interm.intermTypedNode)->getType(), "!=");
@@ -5165,124 +5752,124 @@ yyreduce:
if ((yyval.interm.intermTypedNode) == 0)
(yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion(false, (yyvsp[-1].lex).loc);
}
-#line 5169 "MachineIndependent/glslang_tab.cpp"
+#line 5756 "MachineIndependent/glslang_tab.cpp"
break;
case 63: /* and_expression: equality_expression */
-#line 711 "MachineIndependent/glslang.y"
+#line 732 "MachineIndependent/glslang.y"
{ (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode); }
-#line 5175 "MachineIndependent/glslang_tab.cpp"
+#line 5762 "MachineIndependent/glslang_tab.cpp"
break;
case 64: /* and_expression: and_expression AMPERSAND equality_expression */
-#line 712 "MachineIndependent/glslang.y"
+#line 733 "MachineIndependent/glslang.y"
{
parseContext.fullIntegerCheck((yyvsp[-1].lex).loc, "bitwise and");
(yyval.interm.intermTypedNode) = parseContext.handleBinaryMath((yyvsp[-1].lex).loc, "&", EOpAnd, (yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode));
if ((yyval.interm.intermTypedNode) == 0)
(yyval.interm.intermTypedNode) = (yyvsp[-2].interm.intermTypedNode);
}
-#line 5186 "MachineIndependent/glslang_tab.cpp"
+#line 5773 "MachineIndependent/glslang_tab.cpp"
break;
case 65: /* exclusive_or_expression: and_expression */
-#line 721 "MachineIndependent/glslang.y"
+#line 742 "MachineIndependent/glslang.y"
{ (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode); }
-#line 5192 "MachineIndependent/glslang_tab.cpp"
+#line 5779 "MachineIndependent/glslang_tab.cpp"
break;
case 66: /* exclusive_or_expression: exclusive_or_expression CARET and_expression */
-#line 722 "MachineIndependent/glslang.y"
+#line 743 "MachineIndependent/glslang.y"
{
parseContext.fullIntegerCheck((yyvsp[-1].lex).loc, "bitwise exclusive or");
(yyval.interm.intermTypedNode) = parseContext.handleBinaryMath((yyvsp[-1].lex).loc, "^", EOpExclusiveOr, (yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode));
if ((yyval.interm.intermTypedNode) == 0)
(yyval.interm.intermTypedNode) = (yyvsp[-2].interm.intermTypedNode);
}
-#line 5203 "MachineIndependent/glslang_tab.cpp"
+#line 5790 "MachineIndependent/glslang_tab.cpp"
break;
case 67: /* inclusive_or_expression: exclusive_or_expression */
-#line 731 "MachineIndependent/glslang.y"
+#line 752 "MachineIndependent/glslang.y"
{ (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode); }
-#line 5209 "MachineIndependent/glslang_tab.cpp"
+#line 5796 "MachineIndependent/glslang_tab.cpp"
break;
case 68: /* inclusive_or_expression: inclusive_or_expression VERTICAL_BAR exclusive_or_expression */
-#line 732 "MachineIndependent/glslang.y"
+#line 753 "MachineIndependent/glslang.y"
{
parseContext.fullIntegerCheck((yyvsp[-1].lex).loc, "bitwise inclusive or");
(yyval.interm.intermTypedNode) = parseContext.handleBinaryMath((yyvsp[-1].lex).loc, "|", EOpInclusiveOr, (yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode));
if ((yyval.interm.intermTypedNode) == 0)
(yyval.interm.intermTypedNode) = (yyvsp[-2].interm.intermTypedNode);
}
-#line 5220 "MachineIndependent/glslang_tab.cpp"
+#line 5807 "MachineIndependent/glslang_tab.cpp"
break;
case 69: /* logical_and_expression: inclusive_or_expression */
-#line 741 "MachineIndependent/glslang.y"
+#line 762 "MachineIndependent/glslang.y"
{ (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode); }
-#line 5226 "MachineIndependent/glslang_tab.cpp"
+#line 5813 "MachineIndependent/glslang_tab.cpp"
break;
case 70: /* logical_and_expression: logical_and_expression AND_OP inclusive_or_expression */
-#line 742 "MachineIndependent/glslang.y"
+#line 763 "MachineIndependent/glslang.y"
{
(yyval.interm.intermTypedNode) = parseContext.handleBinaryMath((yyvsp[-1].lex).loc, "&&", EOpLogicalAnd, (yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode));
if ((yyval.interm.intermTypedNode) == 0)
(yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion(false, (yyvsp[-1].lex).loc);
}
-#line 5236 "MachineIndependent/glslang_tab.cpp"
+#line 5823 "MachineIndependent/glslang_tab.cpp"
break;
case 71: /* logical_xor_expression: logical_and_expression */
-#line 750 "MachineIndependent/glslang.y"
+#line 771 "MachineIndependent/glslang.y"
{ (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode); }
-#line 5242 "MachineIndependent/glslang_tab.cpp"
+#line 5829 "MachineIndependent/glslang_tab.cpp"
break;
case 72: /* logical_xor_expression: logical_xor_expression XOR_OP logical_and_expression */
-#line 751 "MachineIndependent/glslang.y"
+#line 772 "MachineIndependent/glslang.y"
{
(yyval.interm.intermTypedNode) = parseContext.handleBinaryMath((yyvsp[-1].lex).loc, "^^", EOpLogicalXor, (yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode));
if ((yyval.interm.intermTypedNode) == 0)
(yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion(false, (yyvsp[-1].lex).loc);
}
-#line 5252 "MachineIndependent/glslang_tab.cpp"
+#line 5839 "MachineIndependent/glslang_tab.cpp"
break;
case 73: /* logical_or_expression: logical_xor_expression */
-#line 759 "MachineIndependent/glslang.y"
+#line 780 "MachineIndependent/glslang.y"
{ (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode); }
-#line 5258 "MachineIndependent/glslang_tab.cpp"
+#line 5845 "MachineIndependent/glslang_tab.cpp"
break;
case 74: /* logical_or_expression: logical_or_expression OR_OP logical_xor_expression */
-#line 760 "MachineIndependent/glslang.y"
+#line 781 "MachineIndependent/glslang.y"
{
(yyval.interm.intermTypedNode) = parseContext.handleBinaryMath((yyvsp[-1].lex).loc, "||", EOpLogicalOr, (yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode));
if ((yyval.interm.intermTypedNode) == 0)
(yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion(false, (yyvsp[-1].lex).loc);
}
-#line 5268 "MachineIndependent/glslang_tab.cpp"
+#line 5855 "MachineIndependent/glslang_tab.cpp"
break;
case 75: /* conditional_expression: logical_or_expression */
-#line 768 "MachineIndependent/glslang.y"
+#line 789 "MachineIndependent/glslang.y"
{ (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode); }
-#line 5274 "MachineIndependent/glslang_tab.cpp"
+#line 5861 "MachineIndependent/glslang_tab.cpp"
break;
case 76: /* $@1: %empty */
-#line 769 "MachineIndependent/glslang.y"
+#line 790 "MachineIndependent/glslang.y"
{
++parseContext.controlFlowNestingLevel;
}
-#line 5282 "MachineIndependent/glslang_tab.cpp"
+#line 5869 "MachineIndependent/glslang_tab.cpp"
break;
case 77: /* conditional_expression: logical_or_expression QUESTION $@1 expression COLON assignment_expression */
-#line 772 "MachineIndependent/glslang.y"
+#line 793 "MachineIndependent/glslang.y"
{
--parseContext.controlFlowNestingLevel;
parseContext.boolCheck((yyvsp[-4].lex).loc, (yyvsp[-5].interm.intermTypedNode));
@@ -5295,17 +5882,17 @@ yyreduce:
(yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode);
}
}
-#line 5299 "MachineIndependent/glslang_tab.cpp"
+#line 5886 "MachineIndependent/glslang_tab.cpp"
break;
case 78: /* assignment_expression: conditional_expression */
-#line 787 "MachineIndependent/glslang.y"
+#line 808 "MachineIndependent/glslang.y"
{ (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode); }
-#line 5305 "MachineIndependent/glslang_tab.cpp"
+#line 5892 "MachineIndependent/glslang_tab.cpp"
break;
case 79: /* assignment_expression: unary_expression assignment_operator assignment_expression */
-#line 788 "MachineIndependent/glslang.y"
+#line 809 "MachineIndependent/glslang.y"
{
parseContext.arrayObjectCheck((yyvsp[-1].interm).loc, (yyvsp[-2].interm.intermTypedNode)->getType(), "array assignment");
parseContext.opaqueCheck((yyvsp[-1].interm).loc, (yyvsp[-2].interm.intermTypedNode)->getType(), "=");
@@ -5319,119 +5906,119 @@ yyreduce:
(yyval.interm.intermTypedNode) = (yyvsp[-2].interm.intermTypedNode);
}
}
-#line 5323 "MachineIndependent/glslang_tab.cpp"
+#line 5910 "MachineIndependent/glslang_tab.cpp"
break;
case 80: /* assignment_operator: EQUAL */
-#line 804 "MachineIndependent/glslang.y"
+#line 825 "MachineIndependent/glslang.y"
{
(yyval.interm).loc = (yyvsp[0].lex).loc;
(yyval.interm).op = EOpAssign;
}
-#line 5332 "MachineIndependent/glslang_tab.cpp"
+#line 5919 "MachineIndependent/glslang_tab.cpp"
break;
case 81: /* assignment_operator: MUL_ASSIGN */
-#line 808 "MachineIndependent/glslang.y"
+#line 829 "MachineIndependent/glslang.y"
{
(yyval.interm).loc = (yyvsp[0].lex).loc;
(yyval.interm).op = EOpMulAssign;
}
-#line 5341 "MachineIndependent/glslang_tab.cpp"
+#line 5928 "MachineIndependent/glslang_tab.cpp"
break;
case 82: /* assignment_operator: DIV_ASSIGN */
-#line 812 "MachineIndependent/glslang.y"
+#line 833 "MachineIndependent/glslang.y"
{
(yyval.interm).loc = (yyvsp[0].lex).loc;
(yyval.interm).op = EOpDivAssign;
}
-#line 5350 "MachineIndependent/glslang_tab.cpp"
+#line 5937 "MachineIndependent/glslang_tab.cpp"
break;
case 83: /* assignment_operator: MOD_ASSIGN */
-#line 816 "MachineIndependent/glslang.y"
+#line 837 "MachineIndependent/glslang.y"
{
parseContext.fullIntegerCheck((yyvsp[0].lex).loc, "%=");
(yyval.interm).loc = (yyvsp[0].lex).loc;
(yyval.interm).op = EOpModAssign;
}
-#line 5360 "MachineIndependent/glslang_tab.cpp"
+#line 5947 "MachineIndependent/glslang_tab.cpp"
break;
case 84: /* assignment_operator: ADD_ASSIGN */
-#line 821 "MachineIndependent/glslang.y"
+#line 842 "MachineIndependent/glslang.y"
{
(yyval.interm).loc = (yyvsp[0].lex).loc;
(yyval.interm).op = EOpAddAssign;
}
-#line 5369 "MachineIndependent/glslang_tab.cpp"
+#line 5956 "MachineIndependent/glslang_tab.cpp"
break;
case 85: /* assignment_operator: SUB_ASSIGN */
-#line 825 "MachineIndependent/glslang.y"
+#line 846 "MachineIndependent/glslang.y"
{
(yyval.interm).loc = (yyvsp[0].lex).loc;
(yyval.interm).op = EOpSubAssign;
}
-#line 5378 "MachineIndependent/glslang_tab.cpp"
+#line 5965 "MachineIndependent/glslang_tab.cpp"
break;
case 86: /* assignment_operator: LEFT_ASSIGN */
-#line 829 "MachineIndependent/glslang.y"
+#line 850 "MachineIndependent/glslang.y"
{
parseContext.fullIntegerCheck((yyvsp[0].lex).loc, "bit-shift left assign");
(yyval.interm).loc = (yyvsp[0].lex).loc; (yyval.interm).op = EOpLeftShiftAssign;
}
-#line 5387 "MachineIndependent/glslang_tab.cpp"
+#line 5974 "MachineIndependent/glslang_tab.cpp"
break;
case 87: /* assignment_operator: RIGHT_ASSIGN */
-#line 833 "MachineIndependent/glslang.y"
+#line 854 "MachineIndependent/glslang.y"
{
parseContext.fullIntegerCheck((yyvsp[0].lex).loc, "bit-shift right assign");
(yyval.interm).loc = (yyvsp[0].lex).loc; (yyval.interm).op = EOpRightShiftAssign;
}
-#line 5396 "MachineIndependent/glslang_tab.cpp"
+#line 5983 "MachineIndependent/glslang_tab.cpp"
break;
case 88: /* assignment_operator: AND_ASSIGN */
-#line 837 "MachineIndependent/glslang.y"
+#line 858 "MachineIndependent/glslang.y"
{
parseContext.fullIntegerCheck((yyvsp[0].lex).loc, "bitwise-and assign");
(yyval.interm).loc = (yyvsp[0].lex).loc; (yyval.interm).op = EOpAndAssign;
}
-#line 5405 "MachineIndependent/glslang_tab.cpp"
+#line 5992 "MachineIndependent/glslang_tab.cpp"
break;
case 89: /* assignment_operator: XOR_ASSIGN */
-#line 841 "MachineIndependent/glslang.y"
+#line 862 "MachineIndependent/glslang.y"
{
parseContext.fullIntegerCheck((yyvsp[0].lex).loc, "bitwise-xor assign");
(yyval.interm).loc = (yyvsp[0].lex).loc; (yyval.interm).op = EOpExclusiveOrAssign;
}
-#line 5414 "MachineIndependent/glslang_tab.cpp"
+#line 6001 "MachineIndependent/glslang_tab.cpp"
break;
case 90: /* assignment_operator: OR_ASSIGN */
-#line 845 "MachineIndependent/glslang.y"
+#line 866 "MachineIndependent/glslang.y"
{
parseContext.fullIntegerCheck((yyvsp[0].lex).loc, "bitwise-or assign");
(yyval.interm).loc = (yyvsp[0].lex).loc; (yyval.interm).op = EOpInclusiveOrAssign;
}
-#line 5423 "MachineIndependent/glslang_tab.cpp"
+#line 6010 "MachineIndependent/glslang_tab.cpp"
break;
case 91: /* expression: assignment_expression */
-#line 852 "MachineIndependent/glslang.y"
+#line 873 "MachineIndependent/glslang.y"
{
(yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode);
}
-#line 5431 "MachineIndependent/glslang_tab.cpp"
+#line 6018 "MachineIndependent/glslang_tab.cpp"
break;
case 92: /* expression: expression COMMA assignment_expression */
-#line 855 "MachineIndependent/glslang.y"
+#line 876 "MachineIndependent/glslang.y"
{
parseContext.samplerConstructorLocationCheck((yyvsp[-1].lex).loc, ",", (yyvsp[0].interm.intermTypedNode));
(yyval.interm.intermTypedNode) = parseContext.intermediate.addComma((yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode), (yyvsp[-1].lex).loc);
@@ -5440,40 +6027,62 @@ yyreduce:
(yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode);
}
}
-#line 5444 "MachineIndependent/glslang_tab.cpp"
+#line 6031 "MachineIndependent/glslang_tab.cpp"
break;
case 93: /* constant_expression: conditional_expression */
-#line 866 "MachineIndependent/glslang.y"
+#line 887 "MachineIndependent/glslang.y"
{
parseContext.constantValueCheck((yyvsp[0].interm.intermTypedNode), "");
(yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode);
}
-#line 5453 "MachineIndependent/glslang_tab.cpp"
+#line 6040 "MachineIndependent/glslang_tab.cpp"
break;
case 94: /* declaration: function_prototype SEMICOLON */
-#line 873 "MachineIndependent/glslang.y"
+#line 894 "MachineIndependent/glslang.y"
{
parseContext.handleFunctionDeclarator((yyvsp[-1].interm).loc, *(yyvsp[-1].interm).function, true /* prototype */);
(yyval.interm.intermNode) = 0;
// TODO: 4.0 functionality: subroutines: make the identifier a user type for this signature
}
-#line 5463 "MachineIndependent/glslang_tab.cpp"
+#line 6050 "MachineIndependent/glslang_tab.cpp"
+ break;
+
+ case 95: /* declaration: spirv_instruction_qualifier function_prototype SEMICOLON */
+#line 900 "MachineIndependent/glslang.y"
+ {
+ parseContext.requireExtensions((yyvsp[-1].interm).loc, 1, &E_GL_EXT_spirv_intrinsics, "SPIR-V instruction qualifier");
+ (yyvsp[-1].interm).function->setSpirvInstruction(*(yyvsp[-2].interm.spirvInst)); // Attach SPIR-V intruction qualifier
+ parseContext.handleFunctionDeclarator((yyvsp[-1].interm).loc, *(yyvsp[-1].interm).function, true /* prototype */);
+ (yyval.interm.intermNode) = 0;
+ // TODO: 4.0 functionality: subroutines: make the identifier a user type for this signature
+ }
+#line 6062 "MachineIndependent/glslang_tab.cpp"
+ break;
+
+ case 96: /* declaration: spirv_execution_mode_qualifier SEMICOLON */
+#line 907 "MachineIndependent/glslang.y"
+ {
+ parseContext.globalCheck((yyvsp[0].lex).loc, "SPIR-V execution mode qualifier");
+ parseContext.requireExtensions((yyvsp[0].lex).loc, 1, &E_GL_EXT_spirv_intrinsics, "SPIR-V execution mode qualifier");
+ (yyval.interm.intermNode) = 0;
+ }
+#line 6072 "MachineIndependent/glslang_tab.cpp"
break;
- case 95: /* declaration: init_declarator_list SEMICOLON */
-#line 878 "MachineIndependent/glslang.y"
+ case 97: /* declaration: init_declarator_list SEMICOLON */
+#line 913 "MachineIndependent/glslang.y"
{
if ((yyvsp[-1].interm).intermNode && (yyvsp[-1].interm).intermNode->getAsAggregate())
(yyvsp[-1].interm).intermNode->getAsAggregate()->setOperator(EOpSequence);
(yyval.interm.intermNode) = (yyvsp[-1].interm).intermNode;
}
-#line 5473 "MachineIndependent/glslang_tab.cpp"
+#line 6082 "MachineIndependent/glslang_tab.cpp"
break;
- case 96: /* declaration: PRECISION precision_qualifier type_specifier SEMICOLON */
-#line 883 "MachineIndependent/glslang.y"
+ case 98: /* declaration: PRECISION precision_qualifier type_specifier SEMICOLON */
+#line 918 "MachineIndependent/glslang.y"
{
parseContext.profileRequires((yyvsp[-3].lex).loc, ENoProfile, 130, 0, "precision statement");
// lazy setting of the previous scope's defaults, has effect only the first time it is called in a particular scope
@@ -5481,75 +6090,75 @@ yyreduce:
parseContext.setDefaultPrecision((yyvsp[-3].lex).loc, (yyvsp[-1].interm.type), (yyvsp[-2].interm.type).qualifier.precision);
(yyval.interm.intermNode) = 0;
}
-#line 5485 "MachineIndependent/glslang_tab.cpp"
+#line 6094 "MachineIndependent/glslang_tab.cpp"
break;
- case 97: /* declaration: block_structure SEMICOLON */
-#line 890 "MachineIndependent/glslang.y"
+ case 99: /* declaration: block_structure SEMICOLON */
+#line 925 "MachineIndependent/glslang.y"
{
parseContext.declareBlock((yyvsp[-1].interm).loc, *(yyvsp[-1].interm).typeList);
(yyval.interm.intermNode) = 0;
}
-#line 5494 "MachineIndependent/glslang_tab.cpp"
+#line 6103 "MachineIndependent/glslang_tab.cpp"
break;
- case 98: /* declaration: block_structure IDENTIFIER SEMICOLON */
-#line 894 "MachineIndependent/glslang.y"
+ case 100: /* declaration: block_structure IDENTIFIER SEMICOLON */
+#line 929 "MachineIndependent/glslang.y"
{
parseContext.declareBlock((yyvsp[-2].interm).loc, *(yyvsp[-2].interm).typeList, (yyvsp[-1].lex).string);
(yyval.interm.intermNode) = 0;
}
-#line 5503 "MachineIndependent/glslang_tab.cpp"
+#line 6112 "MachineIndependent/glslang_tab.cpp"
break;
- case 99: /* declaration: block_structure IDENTIFIER array_specifier SEMICOLON */
-#line 898 "MachineIndependent/glslang.y"
+ case 101: /* declaration: block_structure IDENTIFIER array_specifier SEMICOLON */
+#line 933 "MachineIndependent/glslang.y"
{
parseContext.declareBlock((yyvsp[-3].interm).loc, *(yyvsp[-3].interm).typeList, (yyvsp[-2].lex).string, (yyvsp[-1].interm).arraySizes);
(yyval.interm.intermNode) = 0;
}
-#line 5512 "MachineIndependent/glslang_tab.cpp"
+#line 6121 "MachineIndependent/glslang_tab.cpp"
break;
- case 100: /* declaration: type_qualifier SEMICOLON */
-#line 902 "MachineIndependent/glslang.y"
+ case 102: /* declaration: type_qualifier SEMICOLON */
+#line 937 "MachineIndependent/glslang.y"
{
parseContext.globalQualifierFixCheck((yyvsp[-1].interm.type).loc, (yyvsp[-1].interm.type).qualifier);
parseContext.updateStandaloneQualifierDefaults((yyvsp[-1].interm.type).loc, (yyvsp[-1].interm.type));
(yyval.interm.intermNode) = 0;
}
-#line 5522 "MachineIndependent/glslang_tab.cpp"
+#line 6131 "MachineIndependent/glslang_tab.cpp"
break;
- case 101: /* declaration: type_qualifier IDENTIFIER SEMICOLON */
-#line 907 "MachineIndependent/glslang.y"
+ case 103: /* declaration: type_qualifier IDENTIFIER SEMICOLON */
+#line 942 "MachineIndependent/glslang.y"
{
parseContext.checkNoShaderLayouts((yyvsp[-2].interm.type).loc, (yyvsp[-2].interm.type).shaderQualifiers);
parseContext.addQualifierToExisting((yyvsp[-2].interm.type).loc, (yyvsp[-2].interm.type).qualifier, *(yyvsp[-1].lex).string);
(yyval.interm.intermNode) = 0;
}
-#line 5532 "MachineIndependent/glslang_tab.cpp"
+#line 6141 "MachineIndependent/glslang_tab.cpp"
break;
- case 102: /* declaration: type_qualifier IDENTIFIER identifier_list SEMICOLON */
-#line 912 "MachineIndependent/glslang.y"
+ case 104: /* declaration: type_qualifier IDENTIFIER identifier_list SEMICOLON */
+#line 947 "MachineIndependent/glslang.y"
{
parseContext.checkNoShaderLayouts((yyvsp[-3].interm.type).loc, (yyvsp[-3].interm.type).shaderQualifiers);
(yyvsp[-1].interm.identifierList)->push_back((yyvsp[-2].lex).string);
parseContext.addQualifierToExisting((yyvsp[-3].interm.type).loc, (yyvsp[-3].interm.type).qualifier, *(yyvsp[-1].interm.identifierList));
(yyval.interm.intermNode) = 0;
}
-#line 5543 "MachineIndependent/glslang_tab.cpp"
+#line 6152 "MachineIndependent/glslang_tab.cpp"
break;
- case 103: /* $@2: %empty */
-#line 921 "MachineIndependent/glslang.y"
+ case 105: /* $@2: %empty */
+#line 956 "MachineIndependent/glslang.y"
{ parseContext.nestedBlockCheck((yyvsp[-2].interm.type).loc); }
-#line 5549 "MachineIndependent/glslang_tab.cpp"
+#line 6158 "MachineIndependent/glslang_tab.cpp"
break;
- case 104: /* block_structure: type_qualifier IDENTIFIER LEFT_BRACE $@2 struct_declaration_list RIGHT_BRACE */
-#line 921 "MachineIndependent/glslang.y"
+ case 106: /* block_structure: type_qualifier IDENTIFIER LEFT_BRACE $@2 struct_declaration_list RIGHT_BRACE */
+#line 956 "MachineIndependent/glslang.y"
{
--parseContext.blockNestingLevel;
parseContext.blockName = (yyvsp[-4].lex).string;
@@ -5559,54 +6168,88 @@ yyreduce:
(yyval.interm).loc = (yyvsp[-5].interm.type).loc;
(yyval.interm).typeList = (yyvsp[-1].interm.typeList);
}
-#line 5563 "MachineIndependent/glslang_tab.cpp"
+#line 6172 "MachineIndependent/glslang_tab.cpp"
break;
- case 105: /* identifier_list: COMMA IDENTIFIER */
-#line 932 "MachineIndependent/glslang.y"
+ case 107: /* identifier_list: COMMA IDENTIFIER */
+#line 967 "MachineIndependent/glslang.y"
{
(yyval.interm.identifierList) = new TIdentifierList;
(yyval.interm.identifierList)->push_back((yyvsp[0].lex).string);
}
-#line 5572 "MachineIndependent/glslang_tab.cpp"
+#line 6181 "MachineIndependent/glslang_tab.cpp"
break;
- case 106: /* identifier_list: identifier_list COMMA IDENTIFIER */
-#line 936 "MachineIndependent/glslang.y"
+ case 108: /* identifier_list: identifier_list COMMA IDENTIFIER */
+#line 971 "MachineIndependent/glslang.y"
{
(yyval.interm.identifierList) = (yyvsp[-2].interm.identifierList);
(yyval.interm.identifierList)->push_back((yyvsp[0].lex).string);
}
-#line 5581 "MachineIndependent/glslang_tab.cpp"
+#line 6190 "MachineIndependent/glslang_tab.cpp"
break;
- case 107: /* function_prototype: function_declarator RIGHT_PAREN */
-#line 943 "MachineIndependent/glslang.y"
+ case 109: /* function_prototype: function_declarator RIGHT_PAREN */
+#line 978 "MachineIndependent/glslang.y"
{
(yyval.interm).function = (yyvsp[-1].interm.function);
(yyval.interm).loc = (yyvsp[0].lex).loc;
}
-#line 5590 "MachineIndependent/glslang_tab.cpp"
+#line 6199 "MachineIndependent/glslang_tab.cpp"
+ break;
+
+ case 110: /* function_prototype: function_declarator RIGHT_PAREN attribute */
+#line 982 "MachineIndependent/glslang.y"
+ {
+ (yyval.interm).function = (yyvsp[-2].interm.function);
+ (yyval.interm).loc = (yyvsp[-1].lex).loc;
+ parseContext.requireExtensions((yyvsp[-1].lex).loc, 1, &E_GL_EXT_subgroup_uniform_control_flow, "attribute");
+ parseContext.handleFunctionAttributes((yyvsp[-1].lex).loc, *(yyvsp[0].interm.attributes), (yyval.interm).function);
+ }
+#line 6210 "MachineIndependent/glslang_tab.cpp"
+ break;
+
+ case 111: /* function_prototype: attribute function_declarator RIGHT_PAREN */
+#line 988 "MachineIndependent/glslang.y"
+ {
+ (yyval.interm).function = (yyvsp[-1].interm.function);
+ (yyval.interm).loc = (yyvsp[0].lex).loc;
+ parseContext.requireExtensions((yyvsp[0].lex).loc, 1, &E_GL_EXT_subgroup_uniform_control_flow, "attribute");
+ parseContext.handleFunctionAttributes((yyvsp[0].lex).loc, *(yyvsp[-2].interm.attributes), (yyval.interm).function);
+ }
+#line 6221 "MachineIndependent/glslang_tab.cpp"
+ break;
+
+ case 112: /* function_prototype: attribute function_declarator RIGHT_PAREN attribute */
+#line 994 "MachineIndependent/glslang.y"
+ {
+ (yyval.interm).function = (yyvsp[-2].interm.function);
+ (yyval.interm).loc = (yyvsp[-1].lex).loc;
+ parseContext.requireExtensions((yyvsp[-1].lex).loc, 1, &E_GL_EXT_subgroup_uniform_control_flow, "attribute");
+ parseContext.handleFunctionAttributes((yyvsp[-1].lex).loc, *(yyvsp[-3].interm.attributes), (yyval.interm).function);
+ parseContext.handleFunctionAttributes((yyvsp[-1].lex).loc, *(yyvsp[0].interm.attributes), (yyval.interm).function);
+ }
+#line 6233 "MachineIndependent/glslang_tab.cpp"
break;
- case 108: /* function_declarator: function_header */
-#line 950 "MachineIndependent/glslang.y"
+ case 113: /* function_declarator: function_header */
+#line 1004 "MachineIndependent/glslang.y"
{
(yyval.interm.function) = (yyvsp[0].interm.function);
}
-#line 5598 "MachineIndependent/glslang_tab.cpp"
+#line 6241 "MachineIndependent/glslang_tab.cpp"
break;
- case 109: /* function_declarator: function_header_with_parameters */
-#line 953 "MachineIndependent/glslang.y"
+ case 114: /* function_declarator: function_header_with_parameters */
+#line 1007 "MachineIndependent/glslang.y"
{
(yyval.interm.function) = (yyvsp[0].interm.function);
}
-#line 5606 "MachineIndependent/glslang_tab.cpp"
+#line 6249 "MachineIndependent/glslang_tab.cpp"
break;
- case 110: /* function_header_with_parameters: function_header parameter_declaration */
-#line 960 "MachineIndependent/glslang.y"
+ case 115: /* function_header_with_parameters: function_header parameter_declaration */
+#line 1014 "MachineIndependent/glslang.y"
{
// Add the parameter
(yyval.interm.function) = (yyvsp[-1].interm.function);
@@ -5615,11 +6258,11 @@ yyreduce:
else
delete (yyvsp[0].interm).param.type;
}
-#line 5619 "MachineIndependent/glslang_tab.cpp"
+#line 6262 "MachineIndependent/glslang_tab.cpp"
break;
- case 111: /* function_header_with_parameters: function_header_with_parameters COMMA parameter_declaration */
-#line 968 "MachineIndependent/glslang.y"
+ case 116: /* function_header_with_parameters: function_header_with_parameters COMMA parameter_declaration */
+#line 1022 "MachineIndependent/glslang.y"
{
//
// Only first parameter of one-parameter functions can be void
@@ -5637,11 +6280,11 @@ yyreduce:
(yyvsp[-2].interm.function)->addParameter((yyvsp[0].interm).param);
}
}
-#line 5641 "MachineIndependent/glslang_tab.cpp"
+#line 6284 "MachineIndependent/glslang_tab.cpp"
break;
- case 112: /* function_header: fully_specified_type IDENTIFIER LEFT_PAREN */
-#line 988 "MachineIndependent/glslang.y"
+ case 117: /* function_header: fully_specified_type IDENTIFIER LEFT_PAREN */
+#line 1042 "MachineIndependent/glslang.y"
{
if ((yyvsp[-2].interm.type).qualifier.storage != EvqGlobal && (yyvsp[-2].interm.type).qualifier.storage != EvqTemporary) {
parseContext.error((yyvsp[-1].lex).loc, "no qualifiers allowed for function return",
@@ -5661,11 +6304,11 @@ yyreduce:
function = new TFunction((yyvsp[-1].lex).string, type);
(yyval.interm.function) = function;
}
-#line 5665 "MachineIndependent/glslang_tab.cpp"
+#line 6308 "MachineIndependent/glslang_tab.cpp"
break;
- case 113: /* parameter_declarator: type_specifier IDENTIFIER */
-#line 1011 "MachineIndependent/glslang.y"
+ case 118: /* parameter_declarator: type_specifier IDENTIFIER */
+#line 1065 "MachineIndependent/glslang.y"
{
if ((yyvsp[-1].interm.type).arraySizes) {
parseContext.profileRequires((yyvsp[-1].interm.type).loc, ENoProfile, 120, E_GL_3DL_array_objects, "arrayed type");
@@ -5681,11 +6324,11 @@ yyreduce:
(yyval.interm).loc = (yyvsp[0].lex).loc;
(yyval.interm).param = param;
}
-#line 5685 "MachineIndependent/glslang_tab.cpp"
+#line 6328 "MachineIndependent/glslang_tab.cpp"
break;
- case 114: /* parameter_declarator: type_specifier IDENTIFIER array_specifier */
-#line 1026 "MachineIndependent/glslang.y"
+ case 119: /* parameter_declarator: type_specifier IDENTIFIER array_specifier */
+#line 1080 "MachineIndependent/glslang.y"
{
if ((yyvsp[-2].interm.type).arraySizes) {
parseContext.profileRequires((yyvsp[-2].interm.type).loc, ENoProfile, 120, E_GL_3DL_array_objects, "arrayed type");
@@ -5705,11 +6348,11 @@ yyreduce:
(yyval.interm).loc = (yyvsp[-1].lex).loc;
(yyval.interm).param = param;
}
-#line 5709 "MachineIndependent/glslang_tab.cpp"
+#line 6352 "MachineIndependent/glslang_tab.cpp"
break;
- case 115: /* parameter_declaration: type_qualifier parameter_declarator */
-#line 1051 "MachineIndependent/glslang.y"
+ case 120: /* parameter_declaration: type_qualifier parameter_declarator */
+#line 1105 "MachineIndependent/glslang.y"
{
(yyval.interm) = (yyvsp[0].interm);
if ((yyvsp[-1].interm.type).qualifier.precision != EpqNone)
@@ -5721,11 +6364,11 @@ yyreduce:
parseContext.paramCheckFix((yyvsp[-1].interm.type).loc, (yyvsp[-1].interm.type).qualifier, *(yyval.interm).param.type);
}
-#line 5725 "MachineIndependent/glslang_tab.cpp"
+#line 6368 "MachineIndependent/glslang_tab.cpp"
break;
- case 116: /* parameter_declaration: parameter_declarator */
-#line 1062 "MachineIndependent/glslang.y"
+ case 121: /* parameter_declaration: parameter_declarator */
+#line 1116 "MachineIndependent/glslang.y"
{
(yyval.interm) = (yyvsp[0].interm);
@@ -5733,11 +6376,11 @@ yyreduce:
parseContext.paramCheckFixStorage((yyvsp[0].interm).loc, EvqTemporary, *(yyval.interm).param.type);
parseContext.precisionQualifierCheck((yyval.interm).loc, (yyval.interm).param.type->getBasicType(), (yyval.interm).param.type->getQualifier());
}
-#line 5737 "MachineIndependent/glslang_tab.cpp"
+#line 6380 "MachineIndependent/glslang_tab.cpp"
break;
- case 117: /* parameter_declaration: type_qualifier parameter_type_specifier */
-#line 1072 "MachineIndependent/glslang.y"
+ case 122: /* parameter_declaration: type_qualifier parameter_type_specifier */
+#line 1126 "MachineIndependent/glslang.y"
{
(yyval.interm) = (yyvsp[0].interm);
if ((yyvsp[-1].interm.type).qualifier.precision != EpqNone)
@@ -5748,11 +6391,11 @@ yyreduce:
parseContext.parameterTypeCheck((yyvsp[0].interm).loc, (yyvsp[-1].interm.type).qualifier.storage, *(yyval.interm).param.type);
parseContext.paramCheckFix((yyvsp[-1].interm.type).loc, (yyvsp[-1].interm.type).qualifier, *(yyval.interm).param.type);
}
-#line 5752 "MachineIndependent/glslang_tab.cpp"
+#line 6395 "MachineIndependent/glslang_tab.cpp"
break;
- case 118: /* parameter_declaration: parameter_type_specifier */
-#line 1082 "MachineIndependent/glslang.y"
+ case 123: /* parameter_declaration: parameter_type_specifier */
+#line 1136 "MachineIndependent/glslang.y"
{
(yyval.interm) = (yyvsp[0].interm);
@@ -5760,68 +6403,68 @@ yyreduce:
parseContext.paramCheckFixStorage((yyvsp[0].interm).loc, EvqTemporary, *(yyval.interm).param.type);
parseContext.precisionQualifierCheck((yyval.interm).loc, (yyval.interm).param.type->getBasicType(), (yyval.interm).param.type->getQualifier());
}
-#line 5764 "MachineIndependent/glslang_tab.cpp"
+#line 6407 "MachineIndependent/glslang_tab.cpp"
break;
- case 119: /* parameter_type_specifier: type_specifier */
-#line 1092 "MachineIndependent/glslang.y"
+ case 124: /* parameter_type_specifier: type_specifier */
+#line 1146 "MachineIndependent/glslang.y"
{
TParameter param = { 0, new TType((yyvsp[0].interm.type)) };
(yyval.interm).param = param;
if ((yyvsp[0].interm.type).arraySizes)
parseContext.arraySizeRequiredCheck((yyvsp[0].interm.type).loc, *(yyvsp[0].interm.type).arraySizes);
}
-#line 5775 "MachineIndependent/glslang_tab.cpp"
+#line 6418 "MachineIndependent/glslang_tab.cpp"
break;
- case 120: /* init_declarator_list: single_declaration */
-#line 1101 "MachineIndependent/glslang.y"
+ case 125: /* init_declarator_list: single_declaration */
+#line 1155 "MachineIndependent/glslang.y"
{
(yyval.interm) = (yyvsp[0].interm);
}
-#line 5783 "MachineIndependent/glslang_tab.cpp"
+#line 6426 "MachineIndependent/glslang_tab.cpp"
break;
- case 121: /* init_declarator_list: init_declarator_list COMMA IDENTIFIER */
-#line 1104 "MachineIndependent/glslang.y"
+ case 126: /* init_declarator_list: init_declarator_list COMMA IDENTIFIER */
+#line 1158 "MachineIndependent/glslang.y"
{
(yyval.interm) = (yyvsp[-2].interm);
parseContext.declareVariable((yyvsp[0].lex).loc, *(yyvsp[0].lex).string, (yyvsp[-2].interm).type);
}
-#line 5792 "MachineIndependent/glslang_tab.cpp"
+#line 6435 "MachineIndependent/glslang_tab.cpp"
break;
- case 122: /* init_declarator_list: init_declarator_list COMMA IDENTIFIER array_specifier */
-#line 1108 "MachineIndependent/glslang.y"
+ case 127: /* init_declarator_list: init_declarator_list COMMA IDENTIFIER array_specifier */
+#line 1162 "MachineIndependent/glslang.y"
{
(yyval.interm) = (yyvsp[-3].interm);
parseContext.declareVariable((yyvsp[-1].lex).loc, *(yyvsp[-1].lex).string, (yyvsp[-3].interm).type, (yyvsp[0].interm).arraySizes);
}
-#line 5801 "MachineIndependent/glslang_tab.cpp"
+#line 6444 "MachineIndependent/glslang_tab.cpp"
break;
- case 123: /* init_declarator_list: init_declarator_list COMMA IDENTIFIER array_specifier EQUAL initializer */
-#line 1112 "MachineIndependent/glslang.y"
+ case 128: /* init_declarator_list: init_declarator_list COMMA IDENTIFIER array_specifier EQUAL initializer */
+#line 1166 "MachineIndependent/glslang.y"
{
(yyval.interm).type = (yyvsp[-5].interm).type;
TIntermNode* initNode = parseContext.declareVariable((yyvsp[-3].lex).loc, *(yyvsp[-3].lex).string, (yyvsp[-5].interm).type, (yyvsp[-2].interm).arraySizes, (yyvsp[0].interm.intermTypedNode));
(yyval.interm).intermNode = parseContext.intermediate.growAggregate((yyvsp[-5].interm).intermNode, initNode, (yyvsp[-1].lex).loc);
}
-#line 5811 "MachineIndependent/glslang_tab.cpp"
+#line 6454 "MachineIndependent/glslang_tab.cpp"
break;
- case 124: /* init_declarator_list: init_declarator_list COMMA IDENTIFIER EQUAL initializer */
-#line 1117 "MachineIndependent/glslang.y"
+ case 129: /* init_declarator_list: init_declarator_list COMMA IDENTIFIER EQUAL initializer */
+#line 1171 "MachineIndependent/glslang.y"
{
(yyval.interm).type = (yyvsp[-4].interm).type;
TIntermNode* initNode = parseContext.declareVariable((yyvsp[-2].lex).loc, *(yyvsp[-2].lex).string, (yyvsp[-4].interm).type, 0, (yyvsp[0].interm.intermTypedNode));
(yyval.interm).intermNode = parseContext.intermediate.growAggregate((yyvsp[-4].interm).intermNode, initNode, (yyvsp[-1].lex).loc);
}
-#line 5821 "MachineIndependent/glslang_tab.cpp"
+#line 6464 "MachineIndependent/glslang_tab.cpp"
break;
- case 125: /* single_declaration: fully_specified_type */
-#line 1125 "MachineIndependent/glslang.y"
+ case 130: /* single_declaration: fully_specified_type */
+#line 1179 "MachineIndependent/glslang.y"
{
(yyval.interm).type = (yyvsp[0].interm.type);
(yyval.interm).intermNode = 0;
@@ -5829,51 +6472,51 @@ yyreduce:
parseContext.declareTypeDefaults((yyval.interm).loc, (yyval.interm).type);
}
-#line 5833 "MachineIndependent/glslang_tab.cpp"
+#line 6476 "MachineIndependent/glslang_tab.cpp"
break;
- case 126: /* single_declaration: fully_specified_type IDENTIFIER */
-#line 1132 "MachineIndependent/glslang.y"
+ case 131: /* single_declaration: fully_specified_type IDENTIFIER */
+#line 1186 "MachineIndependent/glslang.y"
{
(yyval.interm).type = (yyvsp[-1].interm.type);
(yyval.interm).intermNode = 0;
parseContext.declareVariable((yyvsp[0].lex).loc, *(yyvsp[0].lex).string, (yyvsp[-1].interm.type));
}
-#line 5843 "MachineIndependent/glslang_tab.cpp"
+#line 6486 "MachineIndependent/glslang_tab.cpp"
break;
- case 127: /* single_declaration: fully_specified_type IDENTIFIER array_specifier */
-#line 1137 "MachineIndependent/glslang.y"
+ case 132: /* single_declaration: fully_specified_type IDENTIFIER array_specifier */
+#line 1191 "MachineIndependent/glslang.y"
{
(yyval.interm).type = (yyvsp[-2].interm.type);
(yyval.interm).intermNode = 0;
parseContext.declareVariable((yyvsp[-1].lex).loc, *(yyvsp[-1].lex).string, (yyvsp[-2].interm.type), (yyvsp[0].interm).arraySizes);
}
-#line 5853 "MachineIndependent/glslang_tab.cpp"
+#line 6496 "MachineIndependent/glslang_tab.cpp"
break;
- case 128: /* single_declaration: fully_specified_type IDENTIFIER array_specifier EQUAL initializer */
-#line 1142 "MachineIndependent/glslang.y"
+ case 133: /* single_declaration: fully_specified_type IDENTIFIER array_specifier EQUAL initializer */
+#line 1196 "MachineIndependent/glslang.y"
{
(yyval.interm).type = (yyvsp[-4].interm.type);
TIntermNode* initNode = parseContext.declareVariable((yyvsp[-3].lex).loc, *(yyvsp[-3].lex).string, (yyvsp[-4].interm.type), (yyvsp[-2].interm).arraySizes, (yyvsp[0].interm.intermTypedNode));
(yyval.interm).intermNode = parseContext.intermediate.growAggregate(0, initNode, (yyvsp[-1].lex).loc);
}
-#line 5863 "MachineIndependent/glslang_tab.cpp"
+#line 6506 "MachineIndependent/glslang_tab.cpp"
break;
- case 129: /* single_declaration: fully_specified_type IDENTIFIER EQUAL initializer */
-#line 1147 "MachineIndependent/glslang.y"
+ case 134: /* single_declaration: fully_specified_type IDENTIFIER EQUAL initializer */
+#line 1201 "MachineIndependent/glslang.y"
{
(yyval.interm).type = (yyvsp[-3].interm.type);
TIntermNode* initNode = parseContext.declareVariable((yyvsp[-2].lex).loc, *(yyvsp[-2].lex).string, (yyvsp[-3].interm.type), 0, (yyvsp[0].interm.intermTypedNode));
(yyval.interm).intermNode = parseContext.intermediate.growAggregate(0, initNode, (yyvsp[-1].lex).loc);
}
-#line 5873 "MachineIndependent/glslang_tab.cpp"
+#line 6516 "MachineIndependent/glslang_tab.cpp"
break;
- case 130: /* fully_specified_type: type_specifier */
-#line 1156 "MachineIndependent/glslang.y"
+ case 135: /* fully_specified_type: type_specifier */
+#line 1210 "MachineIndependent/glslang.y"
{
(yyval.interm.type) = (yyvsp[0].interm.type);
@@ -5884,11 +6527,11 @@ yyreduce:
}
parseContext.precisionQualifierCheck((yyval.interm.type).loc, (yyval.interm.type).basicType, (yyval.interm.type).qualifier);
}
-#line 5888 "MachineIndependent/glslang_tab.cpp"
+#line 6531 "MachineIndependent/glslang_tab.cpp"
break;
- case 131: /* fully_specified_type: type_qualifier type_specifier */
-#line 1166 "MachineIndependent/glslang.y"
+ case 136: /* fully_specified_type: type_qualifier type_specifier */
+#line 1220 "MachineIndependent/glslang.y"
{
parseContext.globalQualifierFixCheck((yyvsp[-1].interm.type).loc, (yyvsp[-1].interm.type).qualifier);
parseContext.globalQualifierTypeCheck((yyvsp[-1].interm.type).loc, (yyvsp[-1].interm.type).qualifier, (yyvsp[0].interm.type));
@@ -5913,22 +6556,22 @@ yyreduce:
(parseContext.language == EShLangFragment && (yyval.interm.type).qualifier.storage == EvqVaryingIn)))
(yyval.interm.type).qualifier.smooth = true;
}
-#line 5917 "MachineIndependent/glslang_tab.cpp"
+#line 6560 "MachineIndependent/glslang_tab.cpp"
break;
- case 132: /* invariant_qualifier: INVARIANT */
-#line 1193 "MachineIndependent/glslang.y"
+ case 137: /* invariant_qualifier: INVARIANT */
+#line 1247 "MachineIndependent/glslang.y"
{
parseContext.globalCheck((yyvsp[0].lex).loc, "invariant");
parseContext.profileRequires((yyval.interm.type).loc, ENoProfile, 120, 0, "invariant");
(yyval.interm.type).init((yyvsp[0].lex).loc);
(yyval.interm.type).qualifier.invariant = true;
}
-#line 5928 "MachineIndependent/glslang_tab.cpp"
+#line 6571 "MachineIndependent/glslang_tab.cpp"
break;
- case 133: /* interpolation_qualifier: SMOOTH */
-#line 1202 "MachineIndependent/glslang.y"
+ case 138: /* interpolation_qualifier: SMOOTH */
+#line 1256 "MachineIndependent/glslang.y"
{
parseContext.globalCheck((yyvsp[0].lex).loc, "smooth");
parseContext.profileRequires((yyvsp[0].lex).loc, ENoProfile, 130, 0, "smooth");
@@ -5936,11 +6579,11 @@ yyreduce:
(yyval.interm.type).init((yyvsp[0].lex).loc);
(yyval.interm.type).qualifier.smooth = true;
}
-#line 5940 "MachineIndependent/glslang_tab.cpp"
+#line 6583 "MachineIndependent/glslang_tab.cpp"
break;
- case 134: /* interpolation_qualifier: FLAT */
-#line 1209 "MachineIndependent/glslang.y"
+ case 139: /* interpolation_qualifier: FLAT */
+#line 1263 "MachineIndependent/glslang.y"
{
parseContext.globalCheck((yyvsp[0].lex).loc, "flat");
parseContext.profileRequires((yyvsp[0].lex).loc, ENoProfile, 130, 0, "flat");
@@ -5948,11 +6591,11 @@ yyreduce:
(yyval.interm.type).init((yyvsp[0].lex).loc);
(yyval.interm.type).qualifier.flat = true;
}
-#line 5952 "MachineIndependent/glslang_tab.cpp"
+#line 6595 "MachineIndependent/glslang_tab.cpp"
break;
- case 135: /* interpolation_qualifier: NOPERSPECTIVE */
-#line 1217 "MachineIndependent/glslang.y"
+ case 140: /* interpolation_qualifier: NOPERSPECTIVE */
+#line 1271 "MachineIndependent/glslang.y"
{
parseContext.globalCheck((yyvsp[0].lex).loc, "noperspective");
parseContext.profileRequires((yyvsp[0].lex).loc, EEsProfile, 0, E_GL_NV_shader_noperspective_interpolation, "noperspective");
@@ -5960,11 +6603,11 @@ yyreduce:
(yyval.interm.type).init((yyvsp[0].lex).loc);
(yyval.interm.type).qualifier.nopersp = true;
}
-#line 5964 "MachineIndependent/glslang_tab.cpp"
+#line 6607 "MachineIndependent/glslang_tab.cpp"
break;
- case 136: /* interpolation_qualifier: EXPLICITINTERPAMD */
-#line 1224 "MachineIndependent/glslang.y"
+ case 141: /* interpolation_qualifier: EXPLICITINTERPAMD */
+#line 1278 "MachineIndependent/glslang.y"
{
parseContext.globalCheck((yyvsp[0].lex).loc, "__explicitInterpAMD");
parseContext.profileRequires((yyvsp[0].lex).loc, ECoreProfile, 450, E_GL_AMD_shader_explicit_vertex_parameter, "explicit interpolation");
@@ -5972,11 +6615,11 @@ yyreduce:
(yyval.interm.type).init((yyvsp[0].lex).loc);
(yyval.interm.type).qualifier.explicitInterp = true;
}
-#line 5976 "MachineIndependent/glslang_tab.cpp"
+#line 6619 "MachineIndependent/glslang_tab.cpp"
break;
- case 137: /* interpolation_qualifier: PERVERTEXNV */
-#line 1231 "MachineIndependent/glslang.y"
+ case 142: /* interpolation_qualifier: PERVERTEXNV */
+#line 1285 "MachineIndependent/glslang.y"
{
parseContext.globalCheck((yyvsp[0].lex).loc, "pervertexNV");
parseContext.profileRequires((yyvsp[0].lex).loc, ECoreProfile, 0, E_GL_NV_fragment_shader_barycentric, "fragment shader barycentric");
@@ -5985,11 +6628,11 @@ yyreduce:
(yyval.interm.type).init((yyvsp[0].lex).loc);
(yyval.interm.type).qualifier.pervertexNV = true;
}
-#line 5989 "MachineIndependent/glslang_tab.cpp"
+#line 6632 "MachineIndependent/glslang_tab.cpp"
break;
- case 138: /* interpolation_qualifier: PERPRIMITIVENV */
-#line 1239 "MachineIndependent/glslang.y"
+ case 143: /* interpolation_qualifier: PERPRIMITIVENV */
+#line 1293 "MachineIndependent/glslang.y"
{
// No need for profile version or extension check. Shader stage already checks both.
parseContext.globalCheck((yyvsp[0].lex).loc, "perprimitiveNV");
@@ -6000,11 +6643,11 @@ yyreduce:
(yyval.interm.type).init((yyvsp[0].lex).loc);
(yyval.interm.type).qualifier.perPrimitiveNV = true;
}
-#line 6004 "MachineIndependent/glslang_tab.cpp"
+#line 6647 "MachineIndependent/glslang_tab.cpp"
break;
- case 139: /* interpolation_qualifier: PERVIEWNV */
-#line 1249 "MachineIndependent/glslang.y"
+ case 144: /* interpolation_qualifier: PERVIEWNV */
+#line 1303 "MachineIndependent/glslang.y"
{
// No need for profile version or extension check. Shader stage already checks both.
parseContext.globalCheck((yyvsp[0].lex).loc, "perviewNV");
@@ -6012,11 +6655,11 @@ yyreduce:
(yyval.interm.type).init((yyvsp[0].lex).loc);
(yyval.interm.type).qualifier.perViewNV = true;
}
-#line 6016 "MachineIndependent/glslang_tab.cpp"
+#line 6659 "MachineIndependent/glslang_tab.cpp"
break;
- case 140: /* interpolation_qualifier: PERTASKNV */
-#line 1256 "MachineIndependent/glslang.y"
+ case 145: /* interpolation_qualifier: PERTASKNV */
+#line 1310 "MachineIndependent/glslang.y"
{
// No need for profile version or extension check. Shader stage already checks both.
parseContext.globalCheck((yyvsp[0].lex).loc, "taskNV");
@@ -6024,84 +6667,84 @@ yyreduce:
(yyval.interm.type).init((yyvsp[0].lex).loc);
(yyval.interm.type).qualifier.perTaskNV = true;
}
-#line 6028 "MachineIndependent/glslang_tab.cpp"
+#line 6671 "MachineIndependent/glslang_tab.cpp"
break;
- case 141: /* layout_qualifier: LAYOUT LEFT_PAREN layout_qualifier_id_list RIGHT_PAREN */
-#line 1267 "MachineIndependent/glslang.y"
+ case 146: /* layout_qualifier: LAYOUT LEFT_PAREN layout_qualifier_id_list RIGHT_PAREN */
+#line 1321 "MachineIndependent/glslang.y"
{
(yyval.interm.type) = (yyvsp[-1].interm.type);
}
-#line 6036 "MachineIndependent/glslang_tab.cpp"
+#line 6679 "MachineIndependent/glslang_tab.cpp"
break;
- case 142: /* layout_qualifier_id_list: layout_qualifier_id */
-#line 1273 "MachineIndependent/glslang.y"
+ case 147: /* layout_qualifier_id_list: layout_qualifier_id */
+#line 1327 "MachineIndependent/glslang.y"
{
(yyval.interm.type) = (yyvsp[0].interm.type);
}
-#line 6044 "MachineIndependent/glslang_tab.cpp"
+#line 6687 "MachineIndependent/glslang_tab.cpp"
break;
- case 143: /* layout_qualifier_id_list: layout_qualifier_id_list COMMA layout_qualifier_id */
-#line 1276 "MachineIndependent/glslang.y"
+ case 148: /* layout_qualifier_id_list: layout_qualifier_id_list COMMA layout_qualifier_id */
+#line 1330 "MachineIndependent/glslang.y"
{
(yyval.interm.type) = (yyvsp[-2].interm.type);
(yyval.interm.type).shaderQualifiers.merge((yyvsp[0].interm.type).shaderQualifiers);
parseContext.mergeObjectLayoutQualifiers((yyval.interm.type).qualifier, (yyvsp[0].interm.type).qualifier, false);
}
-#line 6054 "MachineIndependent/glslang_tab.cpp"
+#line 6697 "MachineIndependent/glslang_tab.cpp"
break;
- case 144: /* layout_qualifier_id: IDENTIFIER */
-#line 1283 "MachineIndependent/glslang.y"
+ case 149: /* layout_qualifier_id: IDENTIFIER */
+#line 1337 "MachineIndependent/glslang.y"
{
(yyval.interm.type).init((yyvsp[0].lex).loc);
parseContext.setLayoutQualifier((yyvsp[0].lex).loc, (yyval.interm.type), *(yyvsp[0].lex).string);
}
-#line 6063 "MachineIndependent/glslang_tab.cpp"
+#line 6706 "MachineIndependent/glslang_tab.cpp"
break;
- case 145: /* layout_qualifier_id: IDENTIFIER EQUAL constant_expression */
-#line 1287 "MachineIndependent/glslang.y"
+ case 150: /* layout_qualifier_id: IDENTIFIER EQUAL constant_expression */
+#line 1341 "MachineIndependent/glslang.y"
{
(yyval.interm.type).init((yyvsp[-2].lex).loc);
parseContext.setLayoutQualifier((yyvsp[-2].lex).loc, (yyval.interm.type), *(yyvsp[-2].lex).string, (yyvsp[0].interm.intermTypedNode));
}
-#line 6072 "MachineIndependent/glslang_tab.cpp"
+#line 6715 "MachineIndependent/glslang_tab.cpp"
break;
- case 146: /* layout_qualifier_id: SHARED */
-#line 1291 "MachineIndependent/glslang.y"
+ case 151: /* layout_qualifier_id: SHARED */
+#line 1345 "MachineIndependent/glslang.y"
{ // because "shared" is both an identifier and a keyword
(yyval.interm.type).init((yyvsp[0].lex).loc);
TString strShared("shared");
parseContext.setLayoutQualifier((yyvsp[0].lex).loc, (yyval.interm.type), strShared);
}
-#line 6082 "MachineIndependent/glslang_tab.cpp"
+#line 6725 "MachineIndependent/glslang_tab.cpp"
break;
- case 147: /* precise_qualifier: PRECISE */
-#line 1300 "MachineIndependent/glslang.y"
+ case 152: /* precise_qualifier: PRECISE */
+#line 1354 "MachineIndependent/glslang.y"
{
parseContext.profileRequires((yyval.interm.type).loc, ECoreProfile | ECompatibilityProfile, 400, E_GL_ARB_gpu_shader5, "precise");
parseContext.profileRequires((yyvsp[0].lex).loc, EEsProfile, 320, Num_AEP_gpu_shader5, AEP_gpu_shader5, "precise");
(yyval.interm.type).init((yyvsp[0].lex).loc);
(yyval.interm.type).qualifier.noContraction = true;
}
-#line 6093 "MachineIndependent/glslang_tab.cpp"
+#line 6736 "MachineIndependent/glslang_tab.cpp"
break;
- case 148: /* type_qualifier: single_type_qualifier */
-#line 1310 "MachineIndependent/glslang.y"
+ case 153: /* type_qualifier: single_type_qualifier */
+#line 1364 "MachineIndependent/glslang.y"
{
(yyval.interm.type) = (yyvsp[0].interm.type);
}
-#line 6101 "MachineIndependent/glslang_tab.cpp"
+#line 6744 "MachineIndependent/glslang_tab.cpp"
break;
- case 149: /* type_qualifier: type_qualifier single_type_qualifier */
-#line 1313 "MachineIndependent/glslang.y"
+ case 154: /* type_qualifier: type_qualifier single_type_qualifier */
+#line 1367 "MachineIndependent/glslang.y"
{
(yyval.interm.type) = (yyvsp[-1].interm.type);
if ((yyval.interm.type).basicType == EbtVoid)
@@ -6110,112 +6753,151 @@ yyreduce:
(yyval.interm.type).shaderQualifiers.merge((yyvsp[0].interm.type).shaderQualifiers);
parseContext.mergeQualifiers((yyval.interm.type).loc, (yyval.interm.type).qualifier, (yyvsp[0].interm.type).qualifier, false);
}
-#line 6114 "MachineIndependent/glslang_tab.cpp"
+#line 6757 "MachineIndependent/glslang_tab.cpp"
break;
- case 150: /* single_type_qualifier: storage_qualifier */
-#line 1324 "MachineIndependent/glslang.y"
+ case 155: /* single_type_qualifier: storage_qualifier */
+#line 1378 "MachineIndependent/glslang.y"
{
(yyval.interm.type) = (yyvsp[0].interm.type);
}
-#line 6122 "MachineIndependent/glslang_tab.cpp"
+#line 6765 "MachineIndependent/glslang_tab.cpp"
break;
- case 151: /* single_type_qualifier: layout_qualifier */
-#line 1327 "MachineIndependent/glslang.y"
+ case 156: /* single_type_qualifier: layout_qualifier */
+#line 1381 "MachineIndependent/glslang.y"
{
(yyval.interm.type) = (yyvsp[0].interm.type);
}
-#line 6130 "MachineIndependent/glslang_tab.cpp"
+#line 6773 "MachineIndependent/glslang_tab.cpp"
break;
- case 152: /* single_type_qualifier: precision_qualifier */
-#line 1330 "MachineIndependent/glslang.y"
+ case 157: /* single_type_qualifier: precision_qualifier */
+#line 1384 "MachineIndependent/glslang.y"
{
parseContext.checkPrecisionQualifier((yyvsp[0].interm.type).loc, (yyvsp[0].interm.type).qualifier.precision);
(yyval.interm.type) = (yyvsp[0].interm.type);
}
-#line 6139 "MachineIndependent/glslang_tab.cpp"
+#line 6782 "MachineIndependent/glslang_tab.cpp"
break;
- case 153: /* single_type_qualifier: interpolation_qualifier */
-#line 1334 "MachineIndependent/glslang.y"
+ case 158: /* single_type_qualifier: interpolation_qualifier */
+#line 1388 "MachineIndependent/glslang.y"
{
// allow inheritance of storage qualifier from block declaration
(yyval.interm.type) = (yyvsp[0].interm.type);
}
-#line 6148 "MachineIndependent/glslang_tab.cpp"
+#line 6791 "MachineIndependent/glslang_tab.cpp"
break;
- case 154: /* single_type_qualifier: invariant_qualifier */
-#line 1338 "MachineIndependent/glslang.y"
+ case 159: /* single_type_qualifier: invariant_qualifier */
+#line 1392 "MachineIndependent/glslang.y"
{
// allow inheritance of storage qualifier from block declaration
(yyval.interm.type) = (yyvsp[0].interm.type);
}
-#line 6157 "MachineIndependent/glslang_tab.cpp"
+#line 6800 "MachineIndependent/glslang_tab.cpp"
break;
- case 155: /* single_type_qualifier: precise_qualifier */
-#line 1343 "MachineIndependent/glslang.y"
+ case 160: /* single_type_qualifier: precise_qualifier */
+#line 1397 "MachineIndependent/glslang.y"
{
// allow inheritance of storage qualifier from block declaration
(yyval.interm.type) = (yyvsp[0].interm.type);
}
-#line 6166 "MachineIndependent/glslang_tab.cpp"
+#line 6809 "MachineIndependent/glslang_tab.cpp"
break;
- case 156: /* single_type_qualifier: non_uniform_qualifier */
-#line 1347 "MachineIndependent/glslang.y"
+ case 161: /* single_type_qualifier: non_uniform_qualifier */
+#line 1401 "MachineIndependent/glslang.y"
{
(yyval.interm.type) = (yyvsp[0].interm.type);
}
-#line 6174 "MachineIndependent/glslang_tab.cpp"
+#line 6817 "MachineIndependent/glslang_tab.cpp"
break;
- case 157: /* storage_qualifier: CONST */
-#line 1354 "MachineIndependent/glslang.y"
+ case 162: /* single_type_qualifier: spirv_storage_class_qualifier */
+#line 1404 "MachineIndependent/glslang.y"
+ {
+ parseContext.globalCheck((yyvsp[0].interm.type).loc, "spirv_storage_class");
+ parseContext.requireExtensions((yyvsp[0].interm.type).loc, 1, &E_GL_EXT_spirv_intrinsics, "SPIR-V storage class qualifier");
+ (yyval.interm.type) = (yyvsp[0].interm.type);
+ }
+#line 6827 "MachineIndependent/glslang_tab.cpp"
+ break;
+
+ case 163: /* single_type_qualifier: spirv_decorate_qualifier */
+#line 1409 "MachineIndependent/glslang.y"
+ {
+ parseContext.requireExtensions((yyvsp[0].interm.type).loc, 1, &E_GL_EXT_spirv_intrinsics, "SPIR-V decorate qualifier");
+ (yyval.interm.type) = (yyvsp[0].interm.type);
+ }
+#line 6836 "MachineIndependent/glslang_tab.cpp"
+ break;
+
+ case 164: /* single_type_qualifier: SPIRV_BY_REFERENCE */
+#line 1413 "MachineIndependent/glslang.y"
+ {
+ parseContext.requireExtensions((yyvsp[0].lex).loc, 1, &E_GL_EXT_spirv_intrinsics, "spirv_by_reference");
+ (yyval.interm.type).init((yyvsp[0].lex).loc);
+ (yyval.interm.type).qualifier.setSpirvByReference();
+ }
+#line 6846 "MachineIndependent/glslang_tab.cpp"
+ break;
+
+ case 165: /* single_type_qualifier: SPIRV_LITERAL */
+#line 1418 "MachineIndependent/glslang.y"
+ {
+ parseContext.requireExtensions((yyvsp[0].lex).loc, 1, &E_GL_EXT_spirv_intrinsics, "spirv_by_literal");
+ (yyval.interm.type).init((yyvsp[0].lex).loc);
+ (yyval.interm.type).qualifier.setSpirvLiteral();
+ }
+#line 6856 "MachineIndependent/glslang_tab.cpp"
+ break;
+
+ case 166: /* storage_qualifier: CONST */
+#line 1427 "MachineIndependent/glslang.y"
{
(yyval.interm.type).init((yyvsp[0].lex).loc);
(yyval.interm.type).qualifier.storage = EvqConst; // will later turn into EvqConstReadOnly, if the initializer is not constant
}
-#line 6183 "MachineIndependent/glslang_tab.cpp"
+#line 6865 "MachineIndependent/glslang_tab.cpp"
break;
- case 158: /* storage_qualifier: INOUT */
-#line 1358 "MachineIndependent/glslang.y"
+ case 167: /* storage_qualifier: INOUT */
+#line 1431 "MachineIndependent/glslang.y"
{
parseContext.globalCheck((yyvsp[0].lex).loc, "inout");
(yyval.interm.type).init((yyvsp[0].lex).loc);
(yyval.interm.type).qualifier.storage = EvqInOut;
}
-#line 6193 "MachineIndependent/glslang_tab.cpp"
+#line 6875 "MachineIndependent/glslang_tab.cpp"
break;
- case 159: /* storage_qualifier: IN */
-#line 1363 "MachineIndependent/glslang.y"
+ case 168: /* storage_qualifier: IN */
+#line 1436 "MachineIndependent/glslang.y"
{
parseContext.globalCheck((yyvsp[0].lex).loc, "in");
(yyval.interm.type).init((yyvsp[0].lex).loc);
// whether this is a parameter "in" or a pipeline "in" will get sorted out a bit later
(yyval.interm.type).qualifier.storage = EvqIn;
}
-#line 6204 "MachineIndependent/glslang_tab.cpp"
+#line 6886 "MachineIndependent/glslang_tab.cpp"
break;
- case 160: /* storage_qualifier: OUT */
-#line 1369 "MachineIndependent/glslang.y"
+ case 169: /* storage_qualifier: OUT */
+#line 1442 "MachineIndependent/glslang.y"
{
parseContext.globalCheck((yyvsp[0].lex).loc, "out");
(yyval.interm.type).init((yyvsp[0].lex).loc);
// whether this is a parameter "out" or a pipeline "out" will get sorted out a bit later
(yyval.interm.type).qualifier.storage = EvqOut;
}
-#line 6215 "MachineIndependent/glslang_tab.cpp"
+#line 6897 "MachineIndependent/glslang_tab.cpp"
break;
- case 161: /* storage_qualifier: CENTROID */
-#line 1375 "MachineIndependent/glslang.y"
+ case 170: /* storage_qualifier: CENTROID */
+#line 1448 "MachineIndependent/glslang.y"
{
parseContext.profileRequires((yyvsp[0].lex).loc, ENoProfile, 120, 0, "centroid");
parseContext.profileRequires((yyvsp[0].lex).loc, EEsProfile, 300, 0, "centroid");
@@ -6223,21 +6905,21 @@ yyreduce:
(yyval.interm.type).init((yyvsp[0].lex).loc);
(yyval.interm.type).qualifier.centroid = true;
}
-#line 6227 "MachineIndependent/glslang_tab.cpp"
+#line 6909 "MachineIndependent/glslang_tab.cpp"
break;
- case 162: /* storage_qualifier: UNIFORM */
-#line 1382 "MachineIndependent/glslang.y"
+ case 171: /* storage_qualifier: UNIFORM */
+#line 1455 "MachineIndependent/glslang.y"
{
parseContext.globalCheck((yyvsp[0].lex).loc, "uniform");
(yyval.interm.type).init((yyvsp[0].lex).loc);
(yyval.interm.type).qualifier.storage = EvqUniform;
}
-#line 6237 "MachineIndependent/glslang_tab.cpp"
+#line 6919 "MachineIndependent/glslang_tab.cpp"
break;
- case 163: /* storage_qualifier: SHARED */
-#line 1387 "MachineIndependent/glslang.y"
+ case 172: /* storage_qualifier: SHARED */
+#line 1460 "MachineIndependent/glslang.y"
{
parseContext.globalCheck((yyvsp[0].lex).loc, "shared");
parseContext.profileRequires((yyvsp[0].lex).loc, ECoreProfile | ECompatibilityProfile, 430, E_GL_ARB_compute_shader, "shared");
@@ -6246,21 +6928,21 @@ yyreduce:
(yyval.interm.type).init((yyvsp[0].lex).loc);
(yyval.interm.type).qualifier.storage = EvqShared;
}
-#line 6250 "MachineIndependent/glslang_tab.cpp"
+#line 6932 "MachineIndependent/glslang_tab.cpp"
break;
- case 164: /* storage_qualifier: BUFFER */
-#line 1395 "MachineIndependent/glslang.y"
+ case 173: /* storage_qualifier: BUFFER */
+#line 1468 "MachineIndependent/glslang.y"
{
parseContext.globalCheck((yyvsp[0].lex).loc, "buffer");
(yyval.interm.type).init((yyvsp[0].lex).loc);
(yyval.interm.type).qualifier.storage = EvqBuffer;
}
-#line 6260 "MachineIndependent/glslang_tab.cpp"
+#line 6942 "MachineIndependent/glslang_tab.cpp"
break;
- case 165: /* storage_qualifier: ATTRIBUTE */
-#line 1401 "MachineIndependent/glslang.y"
+ case 174: /* storage_qualifier: ATTRIBUTE */
+#line 1474 "MachineIndependent/glslang.y"
{
parseContext.requireStage((yyvsp[0].lex).loc, EShLangVertex, "attribute");
parseContext.checkDeprecated((yyvsp[0].lex).loc, ECoreProfile, 130, "attribute");
@@ -6273,11 +6955,11 @@ yyreduce:
(yyval.interm.type).init((yyvsp[0].lex).loc);
(yyval.interm.type).qualifier.storage = EvqVaryingIn;
}
-#line 6277 "MachineIndependent/glslang_tab.cpp"
+#line 6959 "MachineIndependent/glslang_tab.cpp"
break;
- case 166: /* storage_qualifier: VARYING */
-#line 1413 "MachineIndependent/glslang.y"
+ case 175: /* storage_qualifier: VARYING */
+#line 1486 "MachineIndependent/glslang.y"
{
parseContext.checkDeprecated((yyvsp[0].lex).loc, ENoProfile, 130, "varying");
parseContext.checkDeprecated((yyvsp[0].lex).loc, ECoreProfile, 130, "varying");
@@ -6292,32 +6974,32 @@ yyreduce:
else
(yyval.interm.type).qualifier.storage = EvqVaryingIn;
}
-#line 6296 "MachineIndependent/glslang_tab.cpp"
+#line 6978 "MachineIndependent/glslang_tab.cpp"
break;
- case 167: /* storage_qualifier: PATCH */
-#line 1427 "MachineIndependent/glslang.y"
+ case 176: /* storage_qualifier: PATCH */
+#line 1500 "MachineIndependent/glslang.y"
{
parseContext.globalCheck((yyvsp[0].lex).loc, "patch");
parseContext.requireStage((yyvsp[0].lex).loc, (EShLanguageMask)(EShLangTessControlMask | EShLangTessEvaluationMask), "patch");
(yyval.interm.type).init((yyvsp[0].lex).loc);
(yyval.interm.type).qualifier.patch = true;
}
-#line 6307 "MachineIndependent/glslang_tab.cpp"
+#line 6989 "MachineIndependent/glslang_tab.cpp"
break;
- case 168: /* storage_qualifier: SAMPLE */
-#line 1433 "MachineIndependent/glslang.y"
+ case 177: /* storage_qualifier: SAMPLE */
+#line 1506 "MachineIndependent/glslang.y"
{
parseContext.globalCheck((yyvsp[0].lex).loc, "sample");
(yyval.interm.type).init((yyvsp[0].lex).loc);
(yyval.interm.type).qualifier.sample = true;
}
-#line 6317 "MachineIndependent/glslang_tab.cpp"
+#line 6999 "MachineIndependent/glslang_tab.cpp"
break;
- case 169: /* storage_qualifier: HITATTRNV */
-#line 1438 "MachineIndependent/glslang.y"
+ case 178: /* storage_qualifier: HITATTRNV */
+#line 1511 "MachineIndependent/glslang.y"
{
parseContext.globalCheck((yyvsp[0].lex).loc, "hitAttributeNV");
parseContext.requireStage((yyvsp[0].lex).loc, (EShLanguageMask)(EShLangIntersectMask | EShLangClosestHitMask
@@ -6326,11 +7008,11 @@ yyreduce:
(yyval.interm.type).init((yyvsp[0].lex).loc);
(yyval.interm.type).qualifier.storage = EvqHitAttr;
}
-#line 6330 "MachineIndependent/glslang_tab.cpp"
+#line 7012 "MachineIndependent/glslang_tab.cpp"
break;
- case 170: /* storage_qualifier: HITATTREXT */
-#line 1446 "MachineIndependent/glslang.y"
+ case 179: /* storage_qualifier: HITATTREXT */
+#line 1519 "MachineIndependent/glslang.y"
{
parseContext.globalCheck((yyvsp[0].lex).loc, "hitAttributeEXT");
parseContext.requireStage((yyvsp[0].lex).loc, (EShLanguageMask)(EShLangIntersectMask | EShLangClosestHitMask
@@ -6339,11 +7021,11 @@ yyreduce:
(yyval.interm.type).init((yyvsp[0].lex).loc);
(yyval.interm.type).qualifier.storage = EvqHitAttr;
}
-#line 6343 "MachineIndependent/glslang_tab.cpp"
+#line 7025 "MachineIndependent/glslang_tab.cpp"
break;
- case 171: /* storage_qualifier: PAYLOADNV */
-#line 1454 "MachineIndependent/glslang.y"
+ case 180: /* storage_qualifier: PAYLOADNV */
+#line 1527 "MachineIndependent/glslang.y"
{
parseContext.globalCheck((yyvsp[0].lex).loc, "rayPayloadNV");
parseContext.requireStage((yyvsp[0].lex).loc, (EShLanguageMask)(EShLangRayGenMask | EShLangClosestHitMask |
@@ -6352,11 +7034,11 @@ yyreduce:
(yyval.interm.type).init((yyvsp[0].lex).loc);
(yyval.interm.type).qualifier.storage = EvqPayload;
}
-#line 6356 "MachineIndependent/glslang_tab.cpp"
+#line 7038 "MachineIndependent/glslang_tab.cpp"
break;
- case 172: /* storage_qualifier: PAYLOADEXT */
-#line 1462 "MachineIndependent/glslang.y"
+ case 181: /* storage_qualifier: PAYLOADEXT */
+#line 1535 "MachineIndependent/glslang.y"
{
parseContext.globalCheck((yyvsp[0].lex).loc, "rayPayloadEXT");
parseContext.requireStage((yyvsp[0].lex).loc, (EShLanguageMask)(EShLangRayGenMask | EShLangClosestHitMask |
@@ -6365,11 +7047,11 @@ yyreduce:
(yyval.interm.type).init((yyvsp[0].lex).loc);
(yyval.interm.type).qualifier.storage = EvqPayload;
}
-#line 6369 "MachineIndependent/glslang_tab.cpp"
+#line 7051 "MachineIndependent/glslang_tab.cpp"
break;
- case 173: /* storage_qualifier: PAYLOADINNV */
-#line 1470 "MachineIndependent/glslang.y"
+ case 182: /* storage_qualifier: PAYLOADINNV */
+#line 1543 "MachineIndependent/glslang.y"
{
parseContext.globalCheck((yyvsp[0].lex).loc, "rayPayloadInNV");
parseContext.requireStage((yyvsp[0].lex).loc, (EShLanguageMask)(EShLangClosestHitMask |
@@ -6378,11 +7060,11 @@ yyreduce:
(yyval.interm.type).init((yyvsp[0].lex).loc);
(yyval.interm.type).qualifier.storage = EvqPayloadIn;
}
-#line 6382 "MachineIndependent/glslang_tab.cpp"
+#line 7064 "MachineIndependent/glslang_tab.cpp"
break;
- case 174: /* storage_qualifier: PAYLOADINEXT */
-#line 1478 "MachineIndependent/glslang.y"
+ case 183: /* storage_qualifier: PAYLOADINEXT */
+#line 1551 "MachineIndependent/glslang.y"
{
parseContext.globalCheck((yyvsp[0].lex).loc, "rayPayloadInEXT");
parseContext.requireStage((yyvsp[0].lex).loc, (EShLanguageMask)(EShLangClosestHitMask |
@@ -6391,11 +7073,11 @@ yyreduce:
(yyval.interm.type).init((yyvsp[0].lex).loc);
(yyval.interm.type).qualifier.storage = EvqPayloadIn;
}
-#line 6395 "MachineIndependent/glslang_tab.cpp"
+#line 7077 "MachineIndependent/glslang_tab.cpp"
break;
- case 175: /* storage_qualifier: CALLDATANV */
-#line 1486 "MachineIndependent/glslang.y"
+ case 184: /* storage_qualifier: CALLDATANV */
+#line 1559 "MachineIndependent/glslang.y"
{
parseContext.globalCheck((yyvsp[0].lex).loc, "callableDataNV");
parseContext.requireStage((yyvsp[0].lex).loc, (EShLanguageMask)(EShLangRayGenMask |
@@ -6404,11 +7086,11 @@ yyreduce:
(yyval.interm.type).init((yyvsp[0].lex).loc);
(yyval.interm.type).qualifier.storage = EvqCallableData;
}
-#line 6408 "MachineIndependent/glslang_tab.cpp"
+#line 7090 "MachineIndependent/glslang_tab.cpp"
break;
- case 176: /* storage_qualifier: CALLDATAEXT */
-#line 1494 "MachineIndependent/glslang.y"
+ case 185: /* storage_qualifier: CALLDATAEXT */
+#line 1567 "MachineIndependent/glslang.y"
{
parseContext.globalCheck((yyvsp[0].lex).loc, "callableDataEXT");
parseContext.requireStage((yyvsp[0].lex).loc, (EShLanguageMask)(EShLangRayGenMask |
@@ -6417,11 +7099,11 @@ yyreduce:
(yyval.interm.type).init((yyvsp[0].lex).loc);
(yyval.interm.type).qualifier.storage = EvqCallableData;
}
-#line 6421 "MachineIndependent/glslang_tab.cpp"
+#line 7103 "MachineIndependent/glslang_tab.cpp"
break;
- case 177: /* storage_qualifier: CALLDATAINNV */
-#line 1502 "MachineIndependent/glslang.y"
+ case 186: /* storage_qualifier: CALLDATAINNV */
+#line 1575 "MachineIndependent/glslang.y"
{
parseContext.globalCheck((yyvsp[0].lex).loc, "callableDataInNV");
parseContext.requireStage((yyvsp[0].lex).loc, (EShLanguageMask)(EShLangCallableMask), "callableDataInNV");
@@ -6429,11 +7111,11 @@ yyreduce:
(yyval.interm.type).init((yyvsp[0].lex).loc);
(yyval.interm.type).qualifier.storage = EvqCallableDataIn;
}
-#line 6433 "MachineIndependent/glslang_tab.cpp"
+#line 7115 "MachineIndependent/glslang_tab.cpp"
break;
- case 178: /* storage_qualifier: CALLDATAINEXT */
-#line 1509 "MachineIndependent/glslang.y"
+ case 187: /* storage_qualifier: CALLDATAINEXT */
+#line 1582 "MachineIndependent/glslang.y"
{
parseContext.globalCheck((yyvsp[0].lex).loc, "callableDataInEXT");
parseContext.requireStage((yyvsp[0].lex).loc, (EShLanguageMask)(EShLangCallableMask), "callableDataInEXT");
@@ -6441,175 +7123,175 @@ yyreduce:
(yyval.interm.type).init((yyvsp[0].lex).loc);
(yyval.interm.type).qualifier.storage = EvqCallableDataIn;
}
-#line 6445 "MachineIndependent/glslang_tab.cpp"
+#line 7127 "MachineIndependent/glslang_tab.cpp"
break;
- case 179: /* storage_qualifier: COHERENT */
-#line 1516 "MachineIndependent/glslang.y"
+ case 188: /* storage_qualifier: COHERENT */
+#line 1589 "MachineIndependent/glslang.y"
{
(yyval.interm.type).init((yyvsp[0].lex).loc);
(yyval.interm.type).qualifier.coherent = true;
}
-#line 6454 "MachineIndependent/glslang_tab.cpp"
+#line 7136 "MachineIndependent/glslang_tab.cpp"
break;
- case 180: /* storage_qualifier: DEVICECOHERENT */
-#line 1520 "MachineIndependent/glslang.y"
+ case 189: /* storage_qualifier: DEVICECOHERENT */
+#line 1593 "MachineIndependent/glslang.y"
{
(yyval.interm.type).init((yyvsp[0].lex).loc);
parseContext.requireExtensions((yyvsp[0].lex).loc, 1, &E_GL_KHR_memory_scope_semantics, "devicecoherent");
(yyval.interm.type).qualifier.devicecoherent = true;
}
-#line 6464 "MachineIndependent/glslang_tab.cpp"
+#line 7146 "MachineIndependent/glslang_tab.cpp"
break;
- case 181: /* storage_qualifier: QUEUEFAMILYCOHERENT */
-#line 1525 "MachineIndependent/glslang.y"
+ case 190: /* storage_qualifier: QUEUEFAMILYCOHERENT */
+#line 1598 "MachineIndependent/glslang.y"
{
(yyval.interm.type).init((yyvsp[0].lex).loc);
parseContext.requireExtensions((yyvsp[0].lex).loc, 1, &E_GL_KHR_memory_scope_semantics, "queuefamilycoherent");
(yyval.interm.type).qualifier.queuefamilycoherent = true;
}
-#line 6474 "MachineIndependent/glslang_tab.cpp"
+#line 7156 "MachineIndependent/glslang_tab.cpp"
break;
- case 182: /* storage_qualifier: WORKGROUPCOHERENT */
-#line 1530 "MachineIndependent/glslang.y"
+ case 191: /* storage_qualifier: WORKGROUPCOHERENT */
+#line 1603 "MachineIndependent/glslang.y"
{
(yyval.interm.type).init((yyvsp[0].lex).loc);
parseContext.requireExtensions((yyvsp[0].lex).loc, 1, &E_GL_KHR_memory_scope_semantics, "workgroupcoherent");
(yyval.interm.type).qualifier.workgroupcoherent = true;
}
-#line 6484 "MachineIndependent/glslang_tab.cpp"
+#line 7166 "MachineIndependent/glslang_tab.cpp"
break;
- case 183: /* storage_qualifier: SUBGROUPCOHERENT */
-#line 1535 "MachineIndependent/glslang.y"
+ case 192: /* storage_qualifier: SUBGROUPCOHERENT */
+#line 1608 "MachineIndependent/glslang.y"
{
(yyval.interm.type).init((yyvsp[0].lex).loc);
parseContext.requireExtensions((yyvsp[0].lex).loc, 1, &E_GL_KHR_memory_scope_semantics, "subgroupcoherent");
(yyval.interm.type).qualifier.subgroupcoherent = true;
}
-#line 6494 "MachineIndependent/glslang_tab.cpp"
+#line 7176 "MachineIndependent/glslang_tab.cpp"
break;
- case 184: /* storage_qualifier: NONPRIVATE */
-#line 1540 "MachineIndependent/glslang.y"
+ case 193: /* storage_qualifier: NONPRIVATE */
+#line 1613 "MachineIndependent/glslang.y"
{
(yyval.interm.type).init((yyvsp[0].lex).loc);
parseContext.requireExtensions((yyvsp[0].lex).loc, 1, &E_GL_KHR_memory_scope_semantics, "nonprivate");
(yyval.interm.type).qualifier.nonprivate = true;
}
-#line 6504 "MachineIndependent/glslang_tab.cpp"
+#line 7186 "MachineIndependent/glslang_tab.cpp"
break;
- case 185: /* storage_qualifier: SHADERCALLCOHERENT */
-#line 1545 "MachineIndependent/glslang.y"
+ case 194: /* storage_qualifier: SHADERCALLCOHERENT */
+#line 1618 "MachineIndependent/glslang.y"
{
(yyval.interm.type).init((yyvsp[0].lex).loc);
parseContext.requireExtensions((yyvsp[0].lex).loc, 1, &E_GL_EXT_ray_tracing, "shadercallcoherent");
(yyval.interm.type).qualifier.shadercallcoherent = true;
}
-#line 6514 "MachineIndependent/glslang_tab.cpp"
+#line 7196 "MachineIndependent/glslang_tab.cpp"
break;
- case 186: /* storage_qualifier: VOLATILE */
-#line 1550 "MachineIndependent/glslang.y"
+ case 195: /* storage_qualifier: VOLATILE */
+#line 1623 "MachineIndependent/glslang.y"
{
(yyval.interm.type).init((yyvsp[0].lex).loc);
(yyval.interm.type).qualifier.volatil = true;
}
-#line 6523 "MachineIndependent/glslang_tab.cpp"
+#line 7205 "MachineIndependent/glslang_tab.cpp"
break;
- case 187: /* storage_qualifier: RESTRICT */
-#line 1554 "MachineIndependent/glslang.y"
+ case 196: /* storage_qualifier: RESTRICT */
+#line 1627 "MachineIndependent/glslang.y"
{
(yyval.interm.type).init((yyvsp[0].lex).loc);
(yyval.interm.type).qualifier.restrict = true;
}
-#line 6532 "MachineIndependent/glslang_tab.cpp"
+#line 7214 "MachineIndependent/glslang_tab.cpp"
break;
- case 188: /* storage_qualifier: READONLY */
-#line 1558 "MachineIndependent/glslang.y"
+ case 197: /* storage_qualifier: READONLY */
+#line 1631 "MachineIndependent/glslang.y"
{
(yyval.interm.type).init((yyvsp[0].lex).loc);
(yyval.interm.type).qualifier.readonly = true;
}
-#line 6541 "MachineIndependent/glslang_tab.cpp"
+#line 7223 "MachineIndependent/glslang_tab.cpp"
break;
- case 189: /* storage_qualifier: WRITEONLY */
-#line 1562 "MachineIndependent/glslang.y"
+ case 198: /* storage_qualifier: WRITEONLY */
+#line 1635 "MachineIndependent/glslang.y"
{
(yyval.interm.type).init((yyvsp[0].lex).loc);
(yyval.interm.type).qualifier.writeonly = true;
}
-#line 6550 "MachineIndependent/glslang_tab.cpp"
+#line 7232 "MachineIndependent/glslang_tab.cpp"
break;
- case 190: /* storage_qualifier: SUBROUTINE */
-#line 1566 "MachineIndependent/glslang.y"
+ case 199: /* storage_qualifier: SUBROUTINE */
+#line 1639 "MachineIndependent/glslang.y"
{
parseContext.spvRemoved((yyvsp[0].lex).loc, "subroutine");
parseContext.globalCheck((yyvsp[0].lex).loc, "subroutine");
parseContext.unimplemented((yyvsp[0].lex).loc, "subroutine");
(yyval.interm.type).init((yyvsp[0].lex).loc);
}
-#line 6561 "MachineIndependent/glslang_tab.cpp"
+#line 7243 "MachineIndependent/glslang_tab.cpp"
break;
- case 191: /* storage_qualifier: SUBROUTINE LEFT_PAREN type_name_list RIGHT_PAREN */
-#line 1572 "MachineIndependent/glslang.y"
+ case 200: /* storage_qualifier: SUBROUTINE LEFT_PAREN type_name_list RIGHT_PAREN */
+#line 1645 "MachineIndependent/glslang.y"
{
parseContext.spvRemoved((yyvsp[-3].lex).loc, "subroutine");
parseContext.globalCheck((yyvsp[-3].lex).loc, "subroutine");
parseContext.unimplemented((yyvsp[-3].lex).loc, "subroutine");
(yyval.interm.type).init((yyvsp[-3].lex).loc);
}
-#line 6572 "MachineIndependent/glslang_tab.cpp"
+#line 7254 "MachineIndependent/glslang_tab.cpp"
break;
- case 192: /* non_uniform_qualifier: NONUNIFORM */
-#line 1583 "MachineIndependent/glslang.y"
+ case 201: /* non_uniform_qualifier: NONUNIFORM */
+#line 1656 "MachineIndependent/glslang.y"
{
(yyval.interm.type).init((yyvsp[0].lex).loc);
(yyval.interm.type).qualifier.nonUniform = true;
}
-#line 6581 "MachineIndependent/glslang_tab.cpp"
+#line 7263 "MachineIndependent/glslang_tab.cpp"
break;
- case 193: /* type_name_list: IDENTIFIER */
-#line 1590 "MachineIndependent/glslang.y"
+ case 202: /* type_name_list: IDENTIFIER */
+#line 1663 "MachineIndependent/glslang.y"
{
// TODO
}
-#line 6589 "MachineIndependent/glslang_tab.cpp"
+#line 7271 "MachineIndependent/glslang_tab.cpp"
break;
- case 194: /* type_name_list: type_name_list COMMA IDENTIFIER */
-#line 1593 "MachineIndependent/glslang.y"
+ case 203: /* type_name_list: type_name_list COMMA IDENTIFIER */
+#line 1666 "MachineIndependent/glslang.y"
{
// TODO: 4.0 semantics: subroutines
// 1) make sure each identifier is a type declared earlier with SUBROUTINE
// 2) save all of the identifiers for future comparison with the declared function
}
-#line 6599 "MachineIndependent/glslang_tab.cpp"
+#line 7281 "MachineIndependent/glslang_tab.cpp"
break;
- case 195: /* type_specifier: type_specifier_nonarray type_parameter_specifier_opt */
-#line 1602 "MachineIndependent/glslang.y"
+ case 204: /* type_specifier: type_specifier_nonarray type_parameter_specifier_opt */
+#line 1675 "MachineIndependent/glslang.y"
{
(yyval.interm.type) = (yyvsp[-1].interm.type);
(yyval.interm.type).qualifier.precision = parseContext.getDefaultPrecision((yyval.interm.type));
(yyval.interm.type).typeParameters = (yyvsp[0].interm.typeParameters);
}
-#line 6609 "MachineIndependent/glslang_tab.cpp"
+#line 7291 "MachineIndependent/glslang_tab.cpp"
break;
- case 196: /* type_specifier: type_specifier_nonarray type_parameter_specifier_opt array_specifier */
-#line 1607 "MachineIndependent/glslang.y"
+ case 205: /* type_specifier: type_specifier_nonarray type_parameter_specifier_opt array_specifier */
+#line 1680 "MachineIndependent/glslang.y"
{
parseContext.arrayOfArrayVersionCheck((yyvsp[0].interm).loc, (yyvsp[0].interm).arraySizes);
(yyval.interm.type) = (yyvsp[-2].interm.type);
@@ -6617,21 +7299,21 @@ yyreduce:
(yyval.interm.type).typeParameters = (yyvsp[-1].interm.typeParameters);
(yyval.interm.type).arraySizes = (yyvsp[0].interm).arraySizes;
}
-#line 6621 "MachineIndependent/glslang_tab.cpp"
+#line 7303 "MachineIndependent/glslang_tab.cpp"
break;
- case 197: /* array_specifier: LEFT_BRACKET RIGHT_BRACKET */
-#line 1617 "MachineIndependent/glslang.y"
+ case 206: /* array_specifier: LEFT_BRACKET RIGHT_BRACKET */
+#line 1690 "MachineIndependent/glslang.y"
{
(yyval.interm).loc = (yyvsp[-1].lex).loc;
(yyval.interm).arraySizes = new TArraySizes;
(yyval.interm).arraySizes->addInnerSize();
}
-#line 6631 "MachineIndependent/glslang_tab.cpp"
+#line 7313 "MachineIndependent/glslang_tab.cpp"
break;
- case 198: /* array_specifier: LEFT_BRACKET conditional_expression RIGHT_BRACKET */
-#line 1622 "MachineIndependent/glslang.y"
+ case 207: /* array_specifier: LEFT_BRACKET conditional_expression RIGHT_BRACKET */
+#line 1695 "MachineIndependent/glslang.y"
{
(yyval.interm).loc = (yyvsp[-2].lex).loc;
(yyval.interm).arraySizes = new TArraySizes;
@@ -6640,20 +7322,20 @@ yyreduce:
parseContext.arraySizeCheck((yyvsp[-1].interm.intermTypedNode)->getLoc(), (yyvsp[-1].interm.intermTypedNode), size, "array size");
(yyval.interm).arraySizes->addInnerSize(size);
}
-#line 6644 "MachineIndependent/glslang_tab.cpp"
+#line 7326 "MachineIndependent/glslang_tab.cpp"
break;
- case 199: /* array_specifier: array_specifier LEFT_BRACKET RIGHT_BRACKET */
-#line 1630 "MachineIndependent/glslang.y"
+ case 208: /* array_specifier: array_specifier LEFT_BRACKET RIGHT_BRACKET */
+#line 1703 "MachineIndependent/glslang.y"
{
(yyval.interm) = (yyvsp[-2].interm);
(yyval.interm).arraySizes->addInnerSize();
}
-#line 6653 "MachineIndependent/glslang_tab.cpp"
+#line 7335 "MachineIndependent/glslang_tab.cpp"
break;
- case 200: /* array_specifier: array_specifier LEFT_BRACKET conditional_expression RIGHT_BRACKET */
-#line 1634 "MachineIndependent/glslang.y"
+ case 209: /* array_specifier: array_specifier LEFT_BRACKET conditional_expression RIGHT_BRACKET */
+#line 1707 "MachineIndependent/glslang.y"
{
(yyval.interm) = (yyvsp[-3].interm);
@@ -6661,35 +7343,35 @@ yyreduce:
parseContext.arraySizeCheck((yyvsp[-1].interm.intermTypedNode)->getLoc(), (yyvsp[-1].interm.intermTypedNode), size, "array size");
(yyval.interm).arraySizes->addInnerSize(size);
}
-#line 6665 "MachineIndependent/glslang_tab.cpp"
+#line 7347 "MachineIndependent/glslang_tab.cpp"
break;
- case 201: /* type_parameter_specifier_opt: type_parameter_specifier */
-#line 1644 "MachineIndependent/glslang.y"
+ case 210: /* type_parameter_specifier_opt: type_parameter_specifier */
+#line 1717 "MachineIndependent/glslang.y"
{
(yyval.interm.typeParameters) = (yyvsp[0].interm.typeParameters);
}
-#line 6673 "MachineIndependent/glslang_tab.cpp"
+#line 7355 "MachineIndependent/glslang_tab.cpp"
break;
- case 202: /* type_parameter_specifier_opt: %empty */
-#line 1647 "MachineIndependent/glslang.y"
+ case 211: /* type_parameter_specifier_opt: %empty */
+#line 1720 "MachineIndependent/glslang.y"
{
(yyval.interm.typeParameters) = 0;
}
-#line 6681 "MachineIndependent/glslang_tab.cpp"
+#line 7363 "MachineIndependent/glslang_tab.cpp"
break;
- case 203: /* type_parameter_specifier: LEFT_ANGLE type_parameter_specifier_list RIGHT_ANGLE */
-#line 1653 "MachineIndependent/glslang.y"
+ case 212: /* type_parameter_specifier: LEFT_ANGLE type_parameter_specifier_list RIGHT_ANGLE */
+#line 1726 "MachineIndependent/glslang.y"
{
(yyval.interm.typeParameters) = (yyvsp[-1].interm.typeParameters);
}
-#line 6689 "MachineIndependent/glslang_tab.cpp"
+#line 7371 "MachineIndependent/glslang_tab.cpp"
break;
- case 204: /* type_parameter_specifier_list: unary_expression */
-#line 1659 "MachineIndependent/glslang.y"
+ case 213: /* type_parameter_specifier_list: unary_expression */
+#line 1732 "MachineIndependent/glslang.y"
{
(yyval.interm.typeParameters) = new TArraySizes;
@@ -6697,11 +7379,11 @@ yyreduce:
parseContext.arraySizeCheck((yyvsp[0].interm.intermTypedNode)->getLoc(), (yyvsp[0].interm.intermTypedNode), size, "type parameter");
(yyval.interm.typeParameters)->addInnerSize(size);
}
-#line 6701 "MachineIndependent/glslang_tab.cpp"
+#line 7383 "MachineIndependent/glslang_tab.cpp"
break;
- case 205: /* type_parameter_specifier_list: type_parameter_specifier_list COMMA unary_expression */
-#line 1666 "MachineIndependent/glslang.y"
+ case 214: /* type_parameter_specifier_list: type_parameter_specifier_list COMMA unary_expression */
+#line 1739 "MachineIndependent/glslang.y"
{
(yyval.interm.typeParameters) = (yyvsp[-2].interm.typeParameters);
@@ -6709,300 +7391,300 @@ yyreduce:
parseContext.arraySizeCheck((yyvsp[0].interm.intermTypedNode)->getLoc(), (yyvsp[0].interm.intermTypedNode), size, "type parameter");
(yyval.interm.typeParameters)->addInnerSize(size);
}
-#line 6713 "MachineIndependent/glslang_tab.cpp"
+#line 7395 "MachineIndependent/glslang_tab.cpp"
break;
- case 206: /* type_specifier_nonarray: VOID */
-#line 1676 "MachineIndependent/glslang.y"
+ case 215: /* type_specifier_nonarray: VOID */
+#line 1749 "MachineIndependent/glslang.y"
{
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtVoid;
}
-#line 6722 "MachineIndependent/glslang_tab.cpp"
+#line 7404 "MachineIndependent/glslang_tab.cpp"
break;
- case 207: /* type_specifier_nonarray: FLOAT */
-#line 1680 "MachineIndependent/glslang.y"
+ case 216: /* type_specifier_nonarray: FLOAT */
+#line 1753 "MachineIndependent/glslang.y"
{
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtFloat;
}
-#line 6731 "MachineIndependent/glslang_tab.cpp"
+#line 7413 "MachineIndependent/glslang_tab.cpp"
break;
- case 208: /* type_specifier_nonarray: INT */
-#line 1684 "MachineIndependent/glslang.y"
+ case 217: /* type_specifier_nonarray: INT */
+#line 1757 "MachineIndependent/glslang.y"
{
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtInt;
}
-#line 6740 "MachineIndependent/glslang_tab.cpp"
+#line 7422 "MachineIndependent/glslang_tab.cpp"
break;
- case 209: /* type_specifier_nonarray: UINT */
-#line 1688 "MachineIndependent/glslang.y"
+ case 218: /* type_specifier_nonarray: UINT */
+#line 1761 "MachineIndependent/glslang.y"
{
parseContext.fullIntegerCheck((yyvsp[0].lex).loc, "unsigned integer");
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtUint;
}
-#line 6750 "MachineIndependent/glslang_tab.cpp"
+#line 7432 "MachineIndependent/glslang_tab.cpp"
break;
- case 210: /* type_specifier_nonarray: BOOL */
-#line 1693 "MachineIndependent/glslang.y"
+ case 219: /* type_specifier_nonarray: BOOL */
+#line 1766 "MachineIndependent/glslang.y"
{
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtBool;
}
-#line 6759 "MachineIndependent/glslang_tab.cpp"
+#line 7441 "MachineIndependent/glslang_tab.cpp"
break;
- case 211: /* type_specifier_nonarray: VEC2 */
-#line 1697 "MachineIndependent/glslang.y"
+ case 220: /* type_specifier_nonarray: VEC2 */
+#line 1770 "MachineIndependent/glslang.y"
{
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtFloat;
(yyval.interm.type).setVector(2);
}
-#line 6769 "MachineIndependent/glslang_tab.cpp"
+#line 7451 "MachineIndependent/glslang_tab.cpp"
break;
- case 212: /* type_specifier_nonarray: VEC3 */
-#line 1702 "MachineIndependent/glslang.y"
+ case 221: /* type_specifier_nonarray: VEC3 */
+#line 1775 "MachineIndependent/glslang.y"
{
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtFloat;
(yyval.interm.type).setVector(3);
}
-#line 6779 "MachineIndependent/glslang_tab.cpp"
+#line 7461 "MachineIndependent/glslang_tab.cpp"
break;
- case 213: /* type_specifier_nonarray: VEC4 */
-#line 1707 "MachineIndependent/glslang.y"
+ case 222: /* type_specifier_nonarray: VEC4 */
+#line 1780 "MachineIndependent/glslang.y"
{
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtFloat;
(yyval.interm.type).setVector(4);
}
-#line 6789 "MachineIndependent/glslang_tab.cpp"
+#line 7471 "MachineIndependent/glslang_tab.cpp"
break;
- case 214: /* type_specifier_nonarray: BVEC2 */
-#line 1712 "MachineIndependent/glslang.y"
+ case 223: /* type_specifier_nonarray: BVEC2 */
+#line 1785 "MachineIndependent/glslang.y"
{
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtBool;
(yyval.interm.type).setVector(2);
}
-#line 6799 "MachineIndependent/glslang_tab.cpp"
+#line 7481 "MachineIndependent/glslang_tab.cpp"
break;
- case 215: /* type_specifier_nonarray: BVEC3 */
-#line 1717 "MachineIndependent/glslang.y"
+ case 224: /* type_specifier_nonarray: BVEC3 */
+#line 1790 "MachineIndependent/glslang.y"
{
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtBool;
(yyval.interm.type).setVector(3);
}
-#line 6809 "MachineIndependent/glslang_tab.cpp"
+#line 7491 "MachineIndependent/glslang_tab.cpp"
break;
- case 216: /* type_specifier_nonarray: BVEC4 */
-#line 1722 "MachineIndependent/glslang.y"
+ case 225: /* type_specifier_nonarray: BVEC4 */
+#line 1795 "MachineIndependent/glslang.y"
{
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtBool;
(yyval.interm.type).setVector(4);
}
-#line 6819 "MachineIndependent/glslang_tab.cpp"
+#line 7501 "MachineIndependent/glslang_tab.cpp"
break;
- case 217: /* type_specifier_nonarray: IVEC2 */
-#line 1727 "MachineIndependent/glslang.y"
+ case 226: /* type_specifier_nonarray: IVEC2 */
+#line 1800 "MachineIndependent/glslang.y"
{
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtInt;
(yyval.interm.type).setVector(2);
}
-#line 6829 "MachineIndependent/glslang_tab.cpp"
+#line 7511 "MachineIndependent/glslang_tab.cpp"
break;
- case 218: /* type_specifier_nonarray: IVEC3 */
-#line 1732 "MachineIndependent/glslang.y"
+ case 227: /* type_specifier_nonarray: IVEC3 */
+#line 1805 "MachineIndependent/glslang.y"
{
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtInt;
(yyval.interm.type).setVector(3);
}
-#line 6839 "MachineIndependent/glslang_tab.cpp"
+#line 7521 "MachineIndependent/glslang_tab.cpp"
break;
- case 219: /* type_specifier_nonarray: IVEC4 */
-#line 1737 "MachineIndependent/glslang.y"
+ case 228: /* type_specifier_nonarray: IVEC4 */
+#line 1810 "MachineIndependent/glslang.y"
{
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtInt;
(yyval.interm.type).setVector(4);
}
-#line 6849 "MachineIndependent/glslang_tab.cpp"
+#line 7531 "MachineIndependent/glslang_tab.cpp"
break;
- case 220: /* type_specifier_nonarray: UVEC2 */
-#line 1742 "MachineIndependent/glslang.y"
+ case 229: /* type_specifier_nonarray: UVEC2 */
+#line 1815 "MachineIndependent/glslang.y"
{
parseContext.fullIntegerCheck((yyvsp[0].lex).loc, "unsigned integer vector");
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtUint;
(yyval.interm.type).setVector(2);
}
-#line 6860 "MachineIndependent/glslang_tab.cpp"
+#line 7542 "MachineIndependent/glslang_tab.cpp"
break;
- case 221: /* type_specifier_nonarray: UVEC3 */
-#line 1748 "MachineIndependent/glslang.y"
+ case 230: /* type_specifier_nonarray: UVEC3 */
+#line 1821 "MachineIndependent/glslang.y"
{
parseContext.fullIntegerCheck((yyvsp[0].lex).loc, "unsigned integer vector");
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtUint;
(yyval.interm.type).setVector(3);
}
-#line 6871 "MachineIndependent/glslang_tab.cpp"
+#line 7553 "MachineIndependent/glslang_tab.cpp"
break;
- case 222: /* type_specifier_nonarray: UVEC4 */
-#line 1754 "MachineIndependent/glslang.y"
+ case 231: /* type_specifier_nonarray: UVEC4 */
+#line 1827 "MachineIndependent/glslang.y"
{
parseContext.fullIntegerCheck((yyvsp[0].lex).loc, "unsigned integer vector");
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtUint;
(yyval.interm.type).setVector(4);
}
-#line 6882 "MachineIndependent/glslang_tab.cpp"
+#line 7564 "MachineIndependent/glslang_tab.cpp"
break;
- case 223: /* type_specifier_nonarray: MAT2 */
-#line 1760 "MachineIndependent/glslang.y"
+ case 232: /* type_specifier_nonarray: MAT2 */
+#line 1833 "MachineIndependent/glslang.y"
{
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtFloat;
(yyval.interm.type).setMatrix(2, 2);
}
-#line 6892 "MachineIndependent/glslang_tab.cpp"
+#line 7574 "MachineIndependent/glslang_tab.cpp"
break;
- case 224: /* type_specifier_nonarray: MAT3 */
-#line 1765 "MachineIndependent/glslang.y"
+ case 233: /* type_specifier_nonarray: MAT3 */
+#line 1838 "MachineIndependent/glslang.y"
{
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtFloat;
(yyval.interm.type).setMatrix(3, 3);
}
-#line 6902 "MachineIndependent/glslang_tab.cpp"
+#line 7584 "MachineIndependent/glslang_tab.cpp"
break;
- case 225: /* type_specifier_nonarray: MAT4 */
-#line 1770 "MachineIndependent/glslang.y"
+ case 234: /* type_specifier_nonarray: MAT4 */
+#line 1843 "MachineIndependent/glslang.y"
{
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtFloat;
(yyval.interm.type).setMatrix(4, 4);
}
-#line 6912 "MachineIndependent/glslang_tab.cpp"
+#line 7594 "MachineIndependent/glslang_tab.cpp"
break;
- case 226: /* type_specifier_nonarray: MAT2X2 */
-#line 1775 "MachineIndependent/glslang.y"
+ case 235: /* type_specifier_nonarray: MAT2X2 */
+#line 1848 "MachineIndependent/glslang.y"
{
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtFloat;
(yyval.interm.type).setMatrix(2, 2);
}
-#line 6922 "MachineIndependent/glslang_tab.cpp"
+#line 7604 "MachineIndependent/glslang_tab.cpp"
break;
- case 227: /* type_specifier_nonarray: MAT2X3 */
-#line 1780 "MachineIndependent/glslang.y"
+ case 236: /* type_specifier_nonarray: MAT2X3 */
+#line 1853 "MachineIndependent/glslang.y"
{
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtFloat;
(yyval.interm.type).setMatrix(2, 3);
}
-#line 6932 "MachineIndependent/glslang_tab.cpp"
+#line 7614 "MachineIndependent/glslang_tab.cpp"
break;
- case 228: /* type_specifier_nonarray: MAT2X4 */
-#line 1785 "MachineIndependent/glslang.y"
+ case 237: /* type_specifier_nonarray: MAT2X4 */
+#line 1858 "MachineIndependent/glslang.y"
{
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtFloat;
(yyval.interm.type).setMatrix(2, 4);
}
-#line 6942 "MachineIndependent/glslang_tab.cpp"
+#line 7624 "MachineIndependent/glslang_tab.cpp"
break;
- case 229: /* type_specifier_nonarray: MAT3X2 */
-#line 1790 "MachineIndependent/glslang.y"
+ case 238: /* type_specifier_nonarray: MAT3X2 */
+#line 1863 "MachineIndependent/glslang.y"
{
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtFloat;
(yyval.interm.type).setMatrix(3, 2);
}
-#line 6952 "MachineIndependent/glslang_tab.cpp"
+#line 7634 "MachineIndependent/glslang_tab.cpp"
break;
- case 230: /* type_specifier_nonarray: MAT3X3 */
-#line 1795 "MachineIndependent/glslang.y"
+ case 239: /* type_specifier_nonarray: MAT3X3 */
+#line 1868 "MachineIndependent/glslang.y"
{
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtFloat;
(yyval.interm.type).setMatrix(3, 3);
}
-#line 6962 "MachineIndependent/glslang_tab.cpp"
+#line 7644 "MachineIndependent/glslang_tab.cpp"
break;
- case 231: /* type_specifier_nonarray: MAT3X4 */
-#line 1800 "MachineIndependent/glslang.y"
+ case 240: /* type_specifier_nonarray: MAT3X4 */
+#line 1873 "MachineIndependent/glslang.y"
{
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtFloat;
(yyval.interm.type).setMatrix(3, 4);
}
-#line 6972 "MachineIndependent/glslang_tab.cpp"
+#line 7654 "MachineIndependent/glslang_tab.cpp"
break;
- case 232: /* type_specifier_nonarray: MAT4X2 */
-#line 1805 "MachineIndependent/glslang.y"
+ case 241: /* type_specifier_nonarray: MAT4X2 */
+#line 1878 "MachineIndependent/glslang.y"
{
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtFloat;
(yyval.interm.type).setMatrix(4, 2);
}
-#line 6982 "MachineIndependent/glslang_tab.cpp"
+#line 7664 "MachineIndependent/glslang_tab.cpp"
break;
- case 233: /* type_specifier_nonarray: MAT4X3 */
-#line 1810 "MachineIndependent/glslang.y"
+ case 242: /* type_specifier_nonarray: MAT4X3 */
+#line 1883 "MachineIndependent/glslang.y"
{
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtFloat;
(yyval.interm.type).setMatrix(4, 3);
}
-#line 6992 "MachineIndependent/glslang_tab.cpp"
+#line 7674 "MachineIndependent/glslang_tab.cpp"
break;
- case 234: /* type_specifier_nonarray: MAT4X4 */
-#line 1815 "MachineIndependent/glslang.y"
+ case 243: /* type_specifier_nonarray: MAT4X4 */
+#line 1888 "MachineIndependent/glslang.y"
{
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtFloat;
(yyval.interm.type).setMatrix(4, 4);
}
-#line 7002 "MachineIndependent/glslang_tab.cpp"
+#line 7684 "MachineIndependent/glslang_tab.cpp"
break;
- case 235: /* type_specifier_nonarray: DOUBLE */
-#line 1821 "MachineIndependent/glslang.y"
+ case 244: /* type_specifier_nonarray: DOUBLE */
+#line 1894 "MachineIndependent/glslang.y"
{
parseContext.requireProfile((yyvsp[0].lex).loc, ECoreProfile | ECompatibilityProfile, "double");
if (! parseContext.symbolTable.atBuiltInLevel())
@@ -7010,121 +7692,121 @@ yyreduce:
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtDouble;
}
-#line 7014 "MachineIndependent/glslang_tab.cpp"
+#line 7696 "MachineIndependent/glslang_tab.cpp"
break;
- case 236: /* type_specifier_nonarray: FLOAT16_T */
-#line 1828 "MachineIndependent/glslang.y"
+ case 245: /* type_specifier_nonarray: FLOAT16_T */
+#line 1901 "MachineIndependent/glslang.y"
{
parseContext.float16ScalarVectorCheck((yyvsp[0].lex).loc, "float16_t", parseContext.symbolTable.atBuiltInLevel());
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtFloat16;
}
-#line 7024 "MachineIndependent/glslang_tab.cpp"
+#line 7706 "MachineIndependent/glslang_tab.cpp"
break;
- case 237: /* type_specifier_nonarray: FLOAT32_T */
-#line 1833 "MachineIndependent/glslang.y"
+ case 246: /* type_specifier_nonarray: FLOAT32_T */
+#line 1906 "MachineIndependent/glslang.y"
{
parseContext.explicitFloat32Check((yyvsp[0].lex).loc, "float32_t", parseContext.symbolTable.atBuiltInLevel());
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtFloat;
}
-#line 7034 "MachineIndependent/glslang_tab.cpp"
+#line 7716 "MachineIndependent/glslang_tab.cpp"
break;
- case 238: /* type_specifier_nonarray: FLOAT64_T */
-#line 1838 "MachineIndependent/glslang.y"
+ case 247: /* type_specifier_nonarray: FLOAT64_T */
+#line 1911 "MachineIndependent/glslang.y"
{
parseContext.explicitFloat64Check((yyvsp[0].lex).loc, "float64_t", parseContext.symbolTable.atBuiltInLevel());
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtDouble;
}
-#line 7044 "MachineIndependent/glslang_tab.cpp"
+#line 7726 "MachineIndependent/glslang_tab.cpp"
break;
- case 239: /* type_specifier_nonarray: INT8_T */
-#line 1843 "MachineIndependent/glslang.y"
+ case 248: /* type_specifier_nonarray: INT8_T */
+#line 1916 "MachineIndependent/glslang.y"
{
parseContext.int8ScalarVectorCheck((yyvsp[0].lex).loc, "8-bit signed integer", parseContext.symbolTable.atBuiltInLevel());
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtInt8;
}
-#line 7054 "MachineIndependent/glslang_tab.cpp"
+#line 7736 "MachineIndependent/glslang_tab.cpp"
break;
- case 240: /* type_specifier_nonarray: UINT8_T */
-#line 1848 "MachineIndependent/glslang.y"
+ case 249: /* type_specifier_nonarray: UINT8_T */
+#line 1921 "MachineIndependent/glslang.y"
{
parseContext.int8ScalarVectorCheck((yyvsp[0].lex).loc, "8-bit unsigned integer", parseContext.symbolTable.atBuiltInLevel());
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtUint8;
}
-#line 7064 "MachineIndependent/glslang_tab.cpp"
+#line 7746 "MachineIndependent/glslang_tab.cpp"
break;
- case 241: /* type_specifier_nonarray: INT16_T */
-#line 1853 "MachineIndependent/glslang.y"
+ case 250: /* type_specifier_nonarray: INT16_T */
+#line 1926 "MachineIndependent/glslang.y"
{
parseContext.int16ScalarVectorCheck((yyvsp[0].lex).loc, "16-bit signed integer", parseContext.symbolTable.atBuiltInLevel());
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtInt16;
}
-#line 7074 "MachineIndependent/glslang_tab.cpp"
+#line 7756 "MachineIndependent/glslang_tab.cpp"
break;
- case 242: /* type_specifier_nonarray: UINT16_T */
-#line 1858 "MachineIndependent/glslang.y"
+ case 251: /* type_specifier_nonarray: UINT16_T */
+#line 1931 "MachineIndependent/glslang.y"
{
parseContext.int16ScalarVectorCheck((yyvsp[0].lex).loc, "16-bit unsigned integer", parseContext.symbolTable.atBuiltInLevel());
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtUint16;
}
-#line 7084 "MachineIndependent/glslang_tab.cpp"
+#line 7766 "MachineIndependent/glslang_tab.cpp"
break;
- case 243: /* type_specifier_nonarray: INT32_T */
-#line 1863 "MachineIndependent/glslang.y"
+ case 252: /* type_specifier_nonarray: INT32_T */
+#line 1936 "MachineIndependent/glslang.y"
{
parseContext.explicitInt32Check((yyvsp[0].lex).loc, "32-bit signed integer", parseContext.symbolTable.atBuiltInLevel());
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtInt;
}
-#line 7094 "MachineIndependent/glslang_tab.cpp"
+#line 7776 "MachineIndependent/glslang_tab.cpp"
break;
- case 244: /* type_specifier_nonarray: UINT32_T */
-#line 1868 "MachineIndependent/glslang.y"
+ case 253: /* type_specifier_nonarray: UINT32_T */
+#line 1941 "MachineIndependent/glslang.y"
{
parseContext.explicitInt32Check((yyvsp[0].lex).loc, "32-bit unsigned integer", parseContext.symbolTable.atBuiltInLevel());
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtUint;
}
-#line 7104 "MachineIndependent/glslang_tab.cpp"
+#line 7786 "MachineIndependent/glslang_tab.cpp"
break;
- case 245: /* type_specifier_nonarray: INT64_T */
-#line 1873 "MachineIndependent/glslang.y"
+ case 254: /* type_specifier_nonarray: INT64_T */
+#line 1946 "MachineIndependent/glslang.y"
{
parseContext.int64Check((yyvsp[0].lex).loc, "64-bit integer", parseContext.symbolTable.atBuiltInLevel());
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtInt64;
}
-#line 7114 "MachineIndependent/glslang_tab.cpp"
+#line 7796 "MachineIndependent/glslang_tab.cpp"
break;
- case 246: /* type_specifier_nonarray: UINT64_T */
-#line 1878 "MachineIndependent/glslang.y"
+ case 255: /* type_specifier_nonarray: UINT64_T */
+#line 1951 "MachineIndependent/glslang.y"
{
parseContext.int64Check((yyvsp[0].lex).loc, "64-bit unsigned integer", parseContext.symbolTable.atBuiltInLevel());
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtUint64;
}
-#line 7124 "MachineIndependent/glslang_tab.cpp"
+#line 7806 "MachineIndependent/glslang_tab.cpp"
break;
- case 247: /* type_specifier_nonarray: DVEC2 */
-#line 1883 "MachineIndependent/glslang.y"
+ case 256: /* type_specifier_nonarray: DVEC2 */
+#line 1956 "MachineIndependent/glslang.y"
{
parseContext.requireProfile((yyvsp[0].lex).loc, ECoreProfile | ECompatibilityProfile, "double vector");
if (! parseContext.symbolTable.atBuiltInLevel())
@@ -7133,11 +7815,11 @@ yyreduce:
(yyval.interm.type).basicType = EbtDouble;
(yyval.interm.type).setVector(2);
}
-#line 7137 "MachineIndependent/glslang_tab.cpp"
+#line 7819 "MachineIndependent/glslang_tab.cpp"
break;
- case 248: /* type_specifier_nonarray: DVEC3 */
-#line 1891 "MachineIndependent/glslang.y"
+ case 257: /* type_specifier_nonarray: DVEC3 */
+#line 1964 "MachineIndependent/glslang.y"
{
parseContext.requireProfile((yyvsp[0].lex).loc, ECoreProfile | ECompatibilityProfile, "double vector");
if (! parseContext.symbolTable.atBuiltInLevel())
@@ -7146,11 +7828,11 @@ yyreduce:
(yyval.interm.type).basicType = EbtDouble;
(yyval.interm.type).setVector(3);
}
-#line 7150 "MachineIndependent/glslang_tab.cpp"
+#line 7832 "MachineIndependent/glslang_tab.cpp"
break;
- case 249: /* type_specifier_nonarray: DVEC4 */
-#line 1899 "MachineIndependent/glslang.y"
+ case 258: /* type_specifier_nonarray: DVEC4 */
+#line 1972 "MachineIndependent/glslang.y"
{
parseContext.requireProfile((yyvsp[0].lex).loc, ECoreProfile | ECompatibilityProfile, "double vector");
if (! parseContext.symbolTable.atBuiltInLevel())
@@ -7159,374 +7841,374 @@ yyreduce:
(yyval.interm.type).basicType = EbtDouble;
(yyval.interm.type).setVector(4);
}
-#line 7163 "MachineIndependent/glslang_tab.cpp"
+#line 7845 "MachineIndependent/glslang_tab.cpp"
break;
- case 250: /* type_specifier_nonarray: F16VEC2 */
-#line 1907 "MachineIndependent/glslang.y"
+ case 259: /* type_specifier_nonarray: F16VEC2 */
+#line 1980 "MachineIndependent/glslang.y"
{
parseContext.float16ScalarVectorCheck((yyvsp[0].lex).loc, "half float vector", parseContext.symbolTable.atBuiltInLevel());
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtFloat16;
(yyval.interm.type).setVector(2);
}
-#line 7174 "MachineIndependent/glslang_tab.cpp"
+#line 7856 "MachineIndependent/glslang_tab.cpp"
break;
- case 251: /* type_specifier_nonarray: F16VEC3 */
-#line 1913 "MachineIndependent/glslang.y"
+ case 260: /* type_specifier_nonarray: F16VEC3 */
+#line 1986 "MachineIndependent/glslang.y"
{
parseContext.float16ScalarVectorCheck((yyvsp[0].lex).loc, "half float vector", parseContext.symbolTable.atBuiltInLevel());
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtFloat16;
(yyval.interm.type).setVector(3);
}
-#line 7185 "MachineIndependent/glslang_tab.cpp"
+#line 7867 "MachineIndependent/glslang_tab.cpp"
break;
- case 252: /* type_specifier_nonarray: F16VEC4 */
-#line 1919 "MachineIndependent/glslang.y"
+ case 261: /* type_specifier_nonarray: F16VEC4 */
+#line 1992 "MachineIndependent/glslang.y"
{
parseContext.float16ScalarVectorCheck((yyvsp[0].lex).loc, "half float vector", parseContext.symbolTable.atBuiltInLevel());
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtFloat16;
(yyval.interm.type).setVector(4);
}
-#line 7196 "MachineIndependent/glslang_tab.cpp"
+#line 7878 "MachineIndependent/glslang_tab.cpp"
break;
- case 253: /* type_specifier_nonarray: F32VEC2 */
-#line 1925 "MachineIndependent/glslang.y"
+ case 262: /* type_specifier_nonarray: F32VEC2 */
+#line 1998 "MachineIndependent/glslang.y"
{
parseContext.explicitFloat32Check((yyvsp[0].lex).loc, "float32_t vector", parseContext.symbolTable.atBuiltInLevel());
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtFloat;
(yyval.interm.type).setVector(2);
}
-#line 7207 "MachineIndependent/glslang_tab.cpp"
+#line 7889 "MachineIndependent/glslang_tab.cpp"
break;
- case 254: /* type_specifier_nonarray: F32VEC3 */
-#line 1931 "MachineIndependent/glslang.y"
+ case 263: /* type_specifier_nonarray: F32VEC3 */
+#line 2004 "MachineIndependent/glslang.y"
{
parseContext.explicitFloat32Check((yyvsp[0].lex).loc, "float32_t vector", parseContext.symbolTable.atBuiltInLevel());
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtFloat;
(yyval.interm.type).setVector(3);
}
-#line 7218 "MachineIndependent/glslang_tab.cpp"
+#line 7900 "MachineIndependent/glslang_tab.cpp"
break;
- case 255: /* type_specifier_nonarray: F32VEC4 */
-#line 1937 "MachineIndependent/glslang.y"
+ case 264: /* type_specifier_nonarray: F32VEC4 */
+#line 2010 "MachineIndependent/glslang.y"
{
parseContext.explicitFloat32Check((yyvsp[0].lex).loc, "float32_t vector", parseContext.symbolTable.atBuiltInLevel());
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtFloat;
(yyval.interm.type).setVector(4);
}
-#line 7229 "MachineIndependent/glslang_tab.cpp"
+#line 7911 "MachineIndependent/glslang_tab.cpp"
break;
- case 256: /* type_specifier_nonarray: F64VEC2 */
-#line 1943 "MachineIndependent/glslang.y"
+ case 265: /* type_specifier_nonarray: F64VEC2 */
+#line 2016 "MachineIndependent/glslang.y"
{
parseContext.explicitFloat64Check((yyvsp[0].lex).loc, "float64_t vector", parseContext.symbolTable.atBuiltInLevel());
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtDouble;
(yyval.interm.type).setVector(2);
}
-#line 7240 "MachineIndependent/glslang_tab.cpp"
+#line 7922 "MachineIndependent/glslang_tab.cpp"
break;
- case 257: /* type_specifier_nonarray: F64VEC3 */
-#line 1949 "MachineIndependent/glslang.y"
+ case 266: /* type_specifier_nonarray: F64VEC3 */
+#line 2022 "MachineIndependent/glslang.y"
{
parseContext.explicitFloat64Check((yyvsp[0].lex).loc, "float64_t vector", parseContext.symbolTable.atBuiltInLevel());
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtDouble;
(yyval.interm.type).setVector(3);
}
-#line 7251 "MachineIndependent/glslang_tab.cpp"
+#line 7933 "MachineIndependent/glslang_tab.cpp"
break;
- case 258: /* type_specifier_nonarray: F64VEC4 */
-#line 1955 "MachineIndependent/glslang.y"
+ case 267: /* type_specifier_nonarray: F64VEC4 */
+#line 2028 "MachineIndependent/glslang.y"
{
parseContext.explicitFloat64Check((yyvsp[0].lex).loc, "float64_t vector", parseContext.symbolTable.atBuiltInLevel());
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtDouble;
(yyval.interm.type).setVector(4);
}
-#line 7262 "MachineIndependent/glslang_tab.cpp"
+#line 7944 "MachineIndependent/glslang_tab.cpp"
break;
- case 259: /* type_specifier_nonarray: I8VEC2 */
-#line 1961 "MachineIndependent/glslang.y"
+ case 268: /* type_specifier_nonarray: I8VEC2 */
+#line 2034 "MachineIndependent/glslang.y"
{
parseContext.int8ScalarVectorCheck((yyvsp[0].lex).loc, "8-bit signed integer vector", parseContext.symbolTable.atBuiltInLevel());
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtInt8;
(yyval.interm.type).setVector(2);
}
-#line 7273 "MachineIndependent/glslang_tab.cpp"
+#line 7955 "MachineIndependent/glslang_tab.cpp"
break;
- case 260: /* type_specifier_nonarray: I8VEC3 */
-#line 1967 "MachineIndependent/glslang.y"
+ case 269: /* type_specifier_nonarray: I8VEC3 */
+#line 2040 "MachineIndependent/glslang.y"
{
parseContext.int8ScalarVectorCheck((yyvsp[0].lex).loc, "8-bit signed integer vector", parseContext.symbolTable.atBuiltInLevel());
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtInt8;
(yyval.interm.type).setVector(3);
}
-#line 7284 "MachineIndependent/glslang_tab.cpp"
+#line 7966 "MachineIndependent/glslang_tab.cpp"
break;
- case 261: /* type_specifier_nonarray: I8VEC4 */
-#line 1973 "MachineIndependent/glslang.y"
+ case 270: /* type_specifier_nonarray: I8VEC4 */
+#line 2046 "MachineIndependent/glslang.y"
{
parseContext.int8ScalarVectorCheck((yyvsp[0].lex).loc, "8-bit signed integer vector", parseContext.symbolTable.atBuiltInLevel());
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtInt8;
(yyval.interm.type).setVector(4);
}
-#line 7295 "MachineIndependent/glslang_tab.cpp"
+#line 7977 "MachineIndependent/glslang_tab.cpp"
break;
- case 262: /* type_specifier_nonarray: I16VEC2 */
-#line 1979 "MachineIndependent/glslang.y"
+ case 271: /* type_specifier_nonarray: I16VEC2 */
+#line 2052 "MachineIndependent/glslang.y"
{
parseContext.int16ScalarVectorCheck((yyvsp[0].lex).loc, "16-bit signed integer vector", parseContext.symbolTable.atBuiltInLevel());
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtInt16;
(yyval.interm.type).setVector(2);
}
-#line 7306 "MachineIndependent/glslang_tab.cpp"
+#line 7988 "MachineIndependent/glslang_tab.cpp"
break;
- case 263: /* type_specifier_nonarray: I16VEC3 */
-#line 1985 "MachineIndependent/glslang.y"
+ case 272: /* type_specifier_nonarray: I16VEC3 */
+#line 2058 "MachineIndependent/glslang.y"
{
parseContext.int16ScalarVectorCheck((yyvsp[0].lex).loc, "16-bit signed integer vector", parseContext.symbolTable.atBuiltInLevel());
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtInt16;
(yyval.interm.type).setVector(3);
}
-#line 7317 "MachineIndependent/glslang_tab.cpp"
+#line 7999 "MachineIndependent/glslang_tab.cpp"
break;
- case 264: /* type_specifier_nonarray: I16VEC4 */
-#line 1991 "MachineIndependent/glslang.y"
+ case 273: /* type_specifier_nonarray: I16VEC4 */
+#line 2064 "MachineIndependent/glslang.y"
{
parseContext.int16ScalarVectorCheck((yyvsp[0].lex).loc, "16-bit signed integer vector", parseContext.symbolTable.atBuiltInLevel());
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtInt16;
(yyval.interm.type).setVector(4);
}
-#line 7328 "MachineIndependent/glslang_tab.cpp"
+#line 8010 "MachineIndependent/glslang_tab.cpp"
break;
- case 265: /* type_specifier_nonarray: I32VEC2 */
-#line 1997 "MachineIndependent/glslang.y"
+ case 274: /* type_specifier_nonarray: I32VEC2 */
+#line 2070 "MachineIndependent/glslang.y"
{
parseContext.explicitInt32Check((yyvsp[0].lex).loc, "32-bit signed integer vector", parseContext.symbolTable.atBuiltInLevel());
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtInt;
(yyval.interm.type).setVector(2);
}
-#line 7339 "MachineIndependent/glslang_tab.cpp"
+#line 8021 "MachineIndependent/glslang_tab.cpp"
break;
- case 266: /* type_specifier_nonarray: I32VEC3 */
-#line 2003 "MachineIndependent/glslang.y"
+ case 275: /* type_specifier_nonarray: I32VEC3 */
+#line 2076 "MachineIndependent/glslang.y"
{
parseContext.explicitInt32Check((yyvsp[0].lex).loc, "32-bit signed integer vector", parseContext.symbolTable.atBuiltInLevel());
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtInt;
(yyval.interm.type).setVector(3);
}
-#line 7350 "MachineIndependent/glslang_tab.cpp"
+#line 8032 "MachineIndependent/glslang_tab.cpp"
break;
- case 267: /* type_specifier_nonarray: I32VEC4 */
-#line 2009 "MachineIndependent/glslang.y"
+ case 276: /* type_specifier_nonarray: I32VEC4 */
+#line 2082 "MachineIndependent/glslang.y"
{
parseContext.explicitInt32Check((yyvsp[0].lex).loc, "32-bit signed integer vector", parseContext.symbolTable.atBuiltInLevel());
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtInt;
(yyval.interm.type).setVector(4);
}
-#line 7361 "MachineIndependent/glslang_tab.cpp"
+#line 8043 "MachineIndependent/glslang_tab.cpp"
break;
- case 268: /* type_specifier_nonarray: I64VEC2 */
-#line 2015 "MachineIndependent/glslang.y"
+ case 277: /* type_specifier_nonarray: I64VEC2 */
+#line 2088 "MachineIndependent/glslang.y"
{
parseContext.int64Check((yyvsp[0].lex).loc, "64-bit integer vector", parseContext.symbolTable.atBuiltInLevel());
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtInt64;
(yyval.interm.type).setVector(2);
}
-#line 7372 "MachineIndependent/glslang_tab.cpp"
+#line 8054 "MachineIndependent/glslang_tab.cpp"
break;
- case 269: /* type_specifier_nonarray: I64VEC3 */
-#line 2021 "MachineIndependent/glslang.y"
+ case 278: /* type_specifier_nonarray: I64VEC3 */
+#line 2094 "MachineIndependent/glslang.y"
{
parseContext.int64Check((yyvsp[0].lex).loc, "64-bit integer vector", parseContext.symbolTable.atBuiltInLevel());
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtInt64;
(yyval.interm.type).setVector(3);
}
-#line 7383 "MachineIndependent/glslang_tab.cpp"
+#line 8065 "MachineIndependent/glslang_tab.cpp"
break;
- case 270: /* type_specifier_nonarray: I64VEC4 */
-#line 2027 "MachineIndependent/glslang.y"
+ case 279: /* type_specifier_nonarray: I64VEC4 */
+#line 2100 "MachineIndependent/glslang.y"
{
parseContext.int64Check((yyvsp[0].lex).loc, "64-bit integer vector", parseContext.symbolTable.atBuiltInLevel());
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtInt64;
(yyval.interm.type).setVector(4);
}
-#line 7394 "MachineIndependent/glslang_tab.cpp"
+#line 8076 "MachineIndependent/glslang_tab.cpp"
break;
- case 271: /* type_specifier_nonarray: U8VEC2 */
-#line 2033 "MachineIndependent/glslang.y"
+ case 280: /* type_specifier_nonarray: U8VEC2 */
+#line 2106 "MachineIndependent/glslang.y"
{
parseContext.int8ScalarVectorCheck((yyvsp[0].lex).loc, "8-bit unsigned integer vector", parseContext.symbolTable.atBuiltInLevel());
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtUint8;
(yyval.interm.type).setVector(2);
}
-#line 7405 "MachineIndependent/glslang_tab.cpp"
+#line 8087 "MachineIndependent/glslang_tab.cpp"
break;
- case 272: /* type_specifier_nonarray: U8VEC3 */
-#line 2039 "MachineIndependent/glslang.y"
+ case 281: /* type_specifier_nonarray: U8VEC3 */
+#line 2112 "MachineIndependent/glslang.y"
{
parseContext.int8ScalarVectorCheck((yyvsp[0].lex).loc, "8-bit unsigned integer vector", parseContext.symbolTable.atBuiltInLevel());
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtUint8;
(yyval.interm.type).setVector(3);
}
-#line 7416 "MachineIndependent/glslang_tab.cpp"
+#line 8098 "MachineIndependent/glslang_tab.cpp"
break;
- case 273: /* type_specifier_nonarray: U8VEC4 */
-#line 2045 "MachineIndependent/glslang.y"
+ case 282: /* type_specifier_nonarray: U8VEC4 */
+#line 2118 "MachineIndependent/glslang.y"
{
parseContext.int8ScalarVectorCheck((yyvsp[0].lex).loc, "8-bit unsigned integer vector", parseContext.symbolTable.atBuiltInLevel());
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtUint8;
(yyval.interm.type).setVector(4);
}
-#line 7427 "MachineIndependent/glslang_tab.cpp"
+#line 8109 "MachineIndependent/glslang_tab.cpp"
break;
- case 274: /* type_specifier_nonarray: U16VEC2 */
-#line 2051 "MachineIndependent/glslang.y"
+ case 283: /* type_specifier_nonarray: U16VEC2 */
+#line 2124 "MachineIndependent/glslang.y"
{
parseContext.int16ScalarVectorCheck((yyvsp[0].lex).loc, "16-bit unsigned integer vector", parseContext.symbolTable.atBuiltInLevel());
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtUint16;
(yyval.interm.type).setVector(2);
}
-#line 7438 "MachineIndependent/glslang_tab.cpp"
+#line 8120 "MachineIndependent/glslang_tab.cpp"
break;
- case 275: /* type_specifier_nonarray: U16VEC3 */
-#line 2057 "MachineIndependent/glslang.y"
+ case 284: /* type_specifier_nonarray: U16VEC3 */
+#line 2130 "MachineIndependent/glslang.y"
{
parseContext.int16ScalarVectorCheck((yyvsp[0].lex).loc, "16-bit unsigned integer vector", parseContext.symbolTable.atBuiltInLevel());
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtUint16;
(yyval.interm.type).setVector(3);
}
-#line 7449 "MachineIndependent/glslang_tab.cpp"
+#line 8131 "MachineIndependent/glslang_tab.cpp"
break;
- case 276: /* type_specifier_nonarray: U16VEC4 */
-#line 2063 "MachineIndependent/glslang.y"
+ case 285: /* type_specifier_nonarray: U16VEC4 */
+#line 2136 "MachineIndependent/glslang.y"
{
parseContext.int16ScalarVectorCheck((yyvsp[0].lex).loc, "16-bit unsigned integer vector", parseContext.symbolTable.atBuiltInLevel());
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtUint16;
(yyval.interm.type).setVector(4);
}
-#line 7460 "MachineIndependent/glslang_tab.cpp"
+#line 8142 "MachineIndependent/glslang_tab.cpp"
break;
- case 277: /* type_specifier_nonarray: U32VEC2 */
-#line 2069 "MachineIndependent/glslang.y"
+ case 286: /* type_specifier_nonarray: U32VEC2 */
+#line 2142 "MachineIndependent/glslang.y"
{
parseContext.explicitInt32Check((yyvsp[0].lex).loc, "32-bit unsigned integer vector", parseContext.symbolTable.atBuiltInLevel());
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtUint;
(yyval.interm.type).setVector(2);
}
-#line 7471 "MachineIndependent/glslang_tab.cpp"
+#line 8153 "MachineIndependent/glslang_tab.cpp"
break;
- case 278: /* type_specifier_nonarray: U32VEC3 */
-#line 2075 "MachineIndependent/glslang.y"
+ case 287: /* type_specifier_nonarray: U32VEC3 */
+#line 2148 "MachineIndependent/glslang.y"
{
parseContext.explicitInt32Check((yyvsp[0].lex).loc, "32-bit unsigned integer vector", parseContext.symbolTable.atBuiltInLevel());
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtUint;
(yyval.interm.type).setVector(3);
}
-#line 7482 "MachineIndependent/glslang_tab.cpp"
+#line 8164 "MachineIndependent/glslang_tab.cpp"
break;
- case 279: /* type_specifier_nonarray: U32VEC4 */
-#line 2081 "MachineIndependent/glslang.y"
+ case 288: /* type_specifier_nonarray: U32VEC4 */
+#line 2154 "MachineIndependent/glslang.y"
{
parseContext.explicitInt32Check((yyvsp[0].lex).loc, "32-bit unsigned integer vector", parseContext.symbolTable.atBuiltInLevel());
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtUint;
(yyval.interm.type).setVector(4);
}
-#line 7493 "MachineIndependent/glslang_tab.cpp"
+#line 8175 "MachineIndependent/glslang_tab.cpp"
break;
- case 280: /* type_specifier_nonarray: U64VEC2 */
-#line 2087 "MachineIndependent/glslang.y"
+ case 289: /* type_specifier_nonarray: U64VEC2 */
+#line 2160 "MachineIndependent/glslang.y"
{
parseContext.int64Check((yyvsp[0].lex).loc, "64-bit unsigned integer vector", parseContext.symbolTable.atBuiltInLevel());
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtUint64;
(yyval.interm.type).setVector(2);
}
-#line 7504 "MachineIndependent/glslang_tab.cpp"
+#line 8186 "MachineIndependent/glslang_tab.cpp"
break;
- case 281: /* type_specifier_nonarray: U64VEC3 */
-#line 2093 "MachineIndependent/glslang.y"
+ case 290: /* type_specifier_nonarray: U64VEC3 */
+#line 2166 "MachineIndependent/glslang.y"
{
parseContext.int64Check((yyvsp[0].lex).loc, "64-bit unsigned integer vector", parseContext.symbolTable.atBuiltInLevel());
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtUint64;
(yyval.interm.type).setVector(3);
}
-#line 7515 "MachineIndependent/glslang_tab.cpp"
+#line 8197 "MachineIndependent/glslang_tab.cpp"
break;
- case 282: /* type_specifier_nonarray: U64VEC4 */
-#line 2099 "MachineIndependent/glslang.y"
+ case 291: /* type_specifier_nonarray: U64VEC4 */
+#line 2172 "MachineIndependent/glslang.y"
{
parseContext.int64Check((yyvsp[0].lex).loc, "64-bit unsigned integer vector", parseContext.symbolTable.atBuiltInLevel());
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtUint64;
(yyval.interm.type).setVector(4);
}
-#line 7526 "MachineIndependent/glslang_tab.cpp"
+#line 8208 "MachineIndependent/glslang_tab.cpp"
break;
- case 283: /* type_specifier_nonarray: DMAT2 */
-#line 2105 "MachineIndependent/glslang.y"
+ case 292: /* type_specifier_nonarray: DMAT2 */
+#line 2178 "MachineIndependent/glslang.y"
{
parseContext.requireProfile((yyvsp[0].lex).loc, ECoreProfile | ECompatibilityProfile, "double matrix");
if (! parseContext.symbolTable.atBuiltInLevel())
@@ -7535,11 +8217,11 @@ yyreduce:
(yyval.interm.type).basicType = EbtDouble;
(yyval.interm.type).setMatrix(2, 2);
}
-#line 7539 "MachineIndependent/glslang_tab.cpp"
+#line 8221 "MachineIndependent/glslang_tab.cpp"
break;
- case 284: /* type_specifier_nonarray: DMAT3 */
-#line 2113 "MachineIndependent/glslang.y"
+ case 293: /* type_specifier_nonarray: DMAT3 */
+#line 2186 "MachineIndependent/glslang.y"
{
parseContext.requireProfile((yyvsp[0].lex).loc, ECoreProfile | ECompatibilityProfile, "double matrix");
if (! parseContext.symbolTable.atBuiltInLevel())
@@ -7548,11 +8230,11 @@ yyreduce:
(yyval.interm.type).basicType = EbtDouble;
(yyval.interm.type).setMatrix(3, 3);
}
-#line 7552 "MachineIndependent/glslang_tab.cpp"
+#line 8234 "MachineIndependent/glslang_tab.cpp"
break;
- case 285: /* type_specifier_nonarray: DMAT4 */
-#line 2121 "MachineIndependent/glslang.y"
+ case 294: /* type_specifier_nonarray: DMAT4 */
+#line 2194 "MachineIndependent/glslang.y"
{
parseContext.requireProfile((yyvsp[0].lex).loc, ECoreProfile | ECompatibilityProfile, "double matrix");
if (! parseContext.symbolTable.atBuiltInLevel())
@@ -7561,11 +8243,11 @@ yyreduce:
(yyval.interm.type).basicType = EbtDouble;
(yyval.interm.type).setMatrix(4, 4);
}
-#line 7565 "MachineIndependent/glslang_tab.cpp"
+#line 8247 "MachineIndependent/glslang_tab.cpp"
break;
- case 286: /* type_specifier_nonarray: DMAT2X2 */
-#line 2129 "MachineIndependent/glslang.y"
+ case 295: /* type_specifier_nonarray: DMAT2X2 */
+#line 2202 "MachineIndependent/glslang.y"
{
parseContext.requireProfile((yyvsp[0].lex).loc, ECoreProfile | ECompatibilityProfile, "double matrix");
if (! parseContext.symbolTable.atBuiltInLevel())
@@ -7574,11 +8256,11 @@ yyreduce:
(yyval.interm.type).basicType = EbtDouble;
(yyval.interm.type).setMatrix(2, 2);
}
-#line 7578 "MachineIndependent/glslang_tab.cpp"
+#line 8260 "MachineIndependent/glslang_tab.cpp"
break;
- case 287: /* type_specifier_nonarray: DMAT2X3 */
-#line 2137 "MachineIndependent/glslang.y"
+ case 296: /* type_specifier_nonarray: DMAT2X3 */
+#line 2210 "MachineIndependent/glslang.y"
{
parseContext.requireProfile((yyvsp[0].lex).loc, ECoreProfile | ECompatibilityProfile, "double matrix");
if (! parseContext.symbolTable.atBuiltInLevel())
@@ -7587,11 +8269,11 @@ yyreduce:
(yyval.interm.type).basicType = EbtDouble;
(yyval.interm.type).setMatrix(2, 3);
}
-#line 7591 "MachineIndependent/glslang_tab.cpp"
+#line 8273 "MachineIndependent/glslang_tab.cpp"
break;
- case 288: /* type_specifier_nonarray: DMAT2X4 */
-#line 2145 "MachineIndependent/glslang.y"
+ case 297: /* type_specifier_nonarray: DMAT2X4 */
+#line 2218 "MachineIndependent/glslang.y"
{
parseContext.requireProfile((yyvsp[0].lex).loc, ECoreProfile | ECompatibilityProfile, "double matrix");
if (! parseContext.symbolTable.atBuiltInLevel())
@@ -7600,11 +8282,11 @@ yyreduce:
(yyval.interm.type).basicType = EbtDouble;
(yyval.interm.type).setMatrix(2, 4);
}
-#line 7604 "MachineIndependent/glslang_tab.cpp"
+#line 8286 "MachineIndependent/glslang_tab.cpp"
break;
- case 289: /* type_specifier_nonarray: DMAT3X2 */
-#line 2153 "MachineIndependent/glslang.y"
+ case 298: /* type_specifier_nonarray: DMAT3X2 */
+#line 2226 "MachineIndependent/glslang.y"
{
parseContext.requireProfile((yyvsp[0].lex).loc, ECoreProfile | ECompatibilityProfile, "double matrix");
if (! parseContext.symbolTable.atBuiltInLevel())
@@ -7613,11 +8295,11 @@ yyreduce:
(yyval.interm.type).basicType = EbtDouble;
(yyval.interm.type).setMatrix(3, 2);
}
-#line 7617 "MachineIndependent/glslang_tab.cpp"
+#line 8299 "MachineIndependent/glslang_tab.cpp"
break;
- case 290: /* type_specifier_nonarray: DMAT3X3 */
-#line 2161 "MachineIndependent/glslang.y"
+ case 299: /* type_specifier_nonarray: DMAT3X3 */
+#line 2234 "MachineIndependent/glslang.y"
{
parseContext.requireProfile((yyvsp[0].lex).loc, ECoreProfile | ECompatibilityProfile, "double matrix");
if (! parseContext.symbolTable.atBuiltInLevel())
@@ -7626,11 +8308,11 @@ yyreduce:
(yyval.interm.type).basicType = EbtDouble;
(yyval.interm.type).setMatrix(3, 3);
}
-#line 7630 "MachineIndependent/glslang_tab.cpp"
+#line 8312 "MachineIndependent/glslang_tab.cpp"
break;
- case 291: /* type_specifier_nonarray: DMAT3X4 */
-#line 2169 "MachineIndependent/glslang.y"
+ case 300: /* type_specifier_nonarray: DMAT3X4 */
+#line 2242 "MachineIndependent/glslang.y"
{
parseContext.requireProfile((yyvsp[0].lex).loc, ECoreProfile | ECompatibilityProfile, "double matrix");
if (! parseContext.symbolTable.atBuiltInLevel())
@@ -7639,11 +8321,11 @@ yyreduce:
(yyval.interm.type).basicType = EbtDouble;
(yyval.interm.type).setMatrix(3, 4);
}
-#line 7643 "MachineIndependent/glslang_tab.cpp"
+#line 8325 "MachineIndependent/glslang_tab.cpp"
break;
- case 292: /* type_specifier_nonarray: DMAT4X2 */
-#line 2177 "MachineIndependent/glslang.y"
+ case 301: /* type_specifier_nonarray: DMAT4X2 */
+#line 2250 "MachineIndependent/glslang.y"
{
parseContext.requireProfile((yyvsp[0].lex).loc, ECoreProfile | ECompatibilityProfile, "double matrix");
if (! parseContext.symbolTable.atBuiltInLevel())
@@ -7652,11 +8334,11 @@ yyreduce:
(yyval.interm.type).basicType = EbtDouble;
(yyval.interm.type).setMatrix(4, 2);
}
-#line 7656 "MachineIndependent/glslang_tab.cpp"
+#line 8338 "MachineIndependent/glslang_tab.cpp"
break;
- case 293: /* type_specifier_nonarray: DMAT4X3 */
-#line 2185 "MachineIndependent/glslang.y"
+ case 302: /* type_specifier_nonarray: DMAT4X3 */
+#line 2258 "MachineIndependent/glslang.y"
{
parseContext.requireProfile((yyvsp[0].lex).loc, ECoreProfile | ECompatibilityProfile, "double matrix");
if (! parseContext.symbolTable.atBuiltInLevel())
@@ -7665,11 +8347,11 @@ yyreduce:
(yyval.interm.type).basicType = EbtDouble;
(yyval.interm.type).setMatrix(4, 3);
}
-#line 7669 "MachineIndependent/glslang_tab.cpp"
+#line 8351 "MachineIndependent/glslang_tab.cpp"
break;
- case 294: /* type_specifier_nonarray: DMAT4X4 */
-#line 2193 "MachineIndependent/glslang.y"
+ case 303: /* type_specifier_nonarray: DMAT4X4 */
+#line 2266 "MachineIndependent/glslang.y"
{
parseContext.requireProfile((yyvsp[0].lex).loc, ECoreProfile | ECompatibilityProfile, "double matrix");
if (! parseContext.symbolTable.atBuiltInLevel())
@@ -7678,2228 +8360,2228 @@ yyreduce:
(yyval.interm.type).basicType = EbtDouble;
(yyval.interm.type).setMatrix(4, 4);
}
-#line 7682 "MachineIndependent/glslang_tab.cpp"
+#line 8364 "MachineIndependent/glslang_tab.cpp"
break;
- case 295: /* type_specifier_nonarray: F16MAT2 */
-#line 2201 "MachineIndependent/glslang.y"
+ case 304: /* type_specifier_nonarray: F16MAT2 */
+#line 2274 "MachineIndependent/glslang.y"
{
parseContext.float16Check((yyvsp[0].lex).loc, "half float matrix", parseContext.symbolTable.atBuiltInLevel());
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtFloat16;
(yyval.interm.type).setMatrix(2, 2);
}
-#line 7693 "MachineIndependent/glslang_tab.cpp"
+#line 8375 "MachineIndependent/glslang_tab.cpp"
break;
- case 296: /* type_specifier_nonarray: F16MAT3 */
-#line 2207 "MachineIndependent/glslang.y"
+ case 305: /* type_specifier_nonarray: F16MAT3 */
+#line 2280 "MachineIndependent/glslang.y"
{
parseContext.float16Check((yyvsp[0].lex).loc, "half float matrix", parseContext.symbolTable.atBuiltInLevel());
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtFloat16;
(yyval.interm.type).setMatrix(3, 3);
}
-#line 7704 "MachineIndependent/glslang_tab.cpp"
+#line 8386 "MachineIndependent/glslang_tab.cpp"
break;
- case 297: /* type_specifier_nonarray: F16MAT4 */
-#line 2213 "MachineIndependent/glslang.y"
+ case 306: /* type_specifier_nonarray: F16MAT4 */
+#line 2286 "MachineIndependent/glslang.y"
{
parseContext.float16Check((yyvsp[0].lex).loc, "half float matrix", parseContext.symbolTable.atBuiltInLevel());
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtFloat16;
(yyval.interm.type).setMatrix(4, 4);
}
-#line 7715 "MachineIndependent/glslang_tab.cpp"
+#line 8397 "MachineIndependent/glslang_tab.cpp"
break;
- case 298: /* type_specifier_nonarray: F16MAT2X2 */
-#line 2219 "MachineIndependent/glslang.y"
+ case 307: /* type_specifier_nonarray: F16MAT2X2 */
+#line 2292 "MachineIndependent/glslang.y"
{
parseContext.float16Check((yyvsp[0].lex).loc, "half float matrix", parseContext.symbolTable.atBuiltInLevel());
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtFloat16;
(yyval.interm.type).setMatrix(2, 2);
}
-#line 7726 "MachineIndependent/glslang_tab.cpp"
+#line 8408 "MachineIndependent/glslang_tab.cpp"
break;
- case 299: /* type_specifier_nonarray: F16MAT2X3 */
-#line 2225 "MachineIndependent/glslang.y"
+ case 308: /* type_specifier_nonarray: F16MAT2X3 */
+#line 2298 "MachineIndependent/glslang.y"
{
parseContext.float16Check((yyvsp[0].lex).loc, "half float matrix", parseContext.symbolTable.atBuiltInLevel());
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtFloat16;
(yyval.interm.type).setMatrix(2, 3);
}
-#line 7737 "MachineIndependent/glslang_tab.cpp"
+#line 8419 "MachineIndependent/glslang_tab.cpp"
break;
- case 300: /* type_specifier_nonarray: F16MAT2X4 */
-#line 2231 "MachineIndependent/glslang.y"
+ case 309: /* type_specifier_nonarray: F16MAT2X4 */
+#line 2304 "MachineIndependent/glslang.y"
{
parseContext.float16Check((yyvsp[0].lex).loc, "half float matrix", parseContext.symbolTable.atBuiltInLevel());
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtFloat16;
(yyval.interm.type).setMatrix(2, 4);
}
-#line 7748 "MachineIndependent/glslang_tab.cpp"
+#line 8430 "MachineIndependent/glslang_tab.cpp"
break;
- case 301: /* type_specifier_nonarray: F16MAT3X2 */
-#line 2237 "MachineIndependent/glslang.y"
+ case 310: /* type_specifier_nonarray: F16MAT3X2 */
+#line 2310 "MachineIndependent/glslang.y"
{
parseContext.float16Check((yyvsp[0].lex).loc, "half float matrix", parseContext.symbolTable.atBuiltInLevel());
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtFloat16;
(yyval.interm.type).setMatrix(3, 2);
}
-#line 7759 "MachineIndependent/glslang_tab.cpp"
+#line 8441 "MachineIndependent/glslang_tab.cpp"
break;
- case 302: /* type_specifier_nonarray: F16MAT3X3 */
-#line 2243 "MachineIndependent/glslang.y"
+ case 311: /* type_specifier_nonarray: F16MAT3X3 */
+#line 2316 "MachineIndependent/glslang.y"
{
parseContext.float16Check((yyvsp[0].lex).loc, "half float matrix", parseContext.symbolTable.atBuiltInLevel());
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtFloat16;
(yyval.interm.type).setMatrix(3, 3);
}
-#line 7770 "MachineIndependent/glslang_tab.cpp"
+#line 8452 "MachineIndependent/glslang_tab.cpp"
break;
- case 303: /* type_specifier_nonarray: F16MAT3X4 */
-#line 2249 "MachineIndependent/glslang.y"
+ case 312: /* type_specifier_nonarray: F16MAT3X4 */
+#line 2322 "MachineIndependent/glslang.y"
{
parseContext.float16Check((yyvsp[0].lex).loc, "half float matrix", parseContext.symbolTable.atBuiltInLevel());
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtFloat16;
(yyval.interm.type).setMatrix(3, 4);
}
-#line 7781 "MachineIndependent/glslang_tab.cpp"
+#line 8463 "MachineIndependent/glslang_tab.cpp"
break;
- case 304: /* type_specifier_nonarray: F16MAT4X2 */
-#line 2255 "MachineIndependent/glslang.y"
+ case 313: /* type_specifier_nonarray: F16MAT4X2 */
+#line 2328 "MachineIndependent/glslang.y"
{
parseContext.float16Check((yyvsp[0].lex).loc, "half float matrix", parseContext.symbolTable.atBuiltInLevel());
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtFloat16;
(yyval.interm.type).setMatrix(4, 2);
}
-#line 7792 "MachineIndependent/glslang_tab.cpp"
+#line 8474 "MachineIndependent/glslang_tab.cpp"
break;
- case 305: /* type_specifier_nonarray: F16MAT4X3 */
-#line 2261 "MachineIndependent/glslang.y"
+ case 314: /* type_specifier_nonarray: F16MAT4X3 */
+#line 2334 "MachineIndependent/glslang.y"
{
parseContext.float16Check((yyvsp[0].lex).loc, "half float matrix", parseContext.symbolTable.atBuiltInLevel());
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtFloat16;
(yyval.interm.type).setMatrix(4, 3);
}
-#line 7803 "MachineIndependent/glslang_tab.cpp"
+#line 8485 "MachineIndependent/glslang_tab.cpp"
break;
- case 306: /* type_specifier_nonarray: F16MAT4X4 */
-#line 2267 "MachineIndependent/glslang.y"
+ case 315: /* type_specifier_nonarray: F16MAT4X4 */
+#line 2340 "MachineIndependent/glslang.y"
{
parseContext.float16Check((yyvsp[0].lex).loc, "half float matrix", parseContext.symbolTable.atBuiltInLevel());
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtFloat16;
(yyval.interm.type).setMatrix(4, 4);
}
-#line 7814 "MachineIndependent/glslang_tab.cpp"
+#line 8496 "MachineIndependent/glslang_tab.cpp"
break;
- case 307: /* type_specifier_nonarray: F32MAT2 */
-#line 2273 "MachineIndependent/glslang.y"
+ case 316: /* type_specifier_nonarray: F32MAT2 */
+#line 2346 "MachineIndependent/glslang.y"
{
parseContext.explicitFloat32Check((yyvsp[0].lex).loc, "float32_t matrix", parseContext.symbolTable.atBuiltInLevel());
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtFloat;
(yyval.interm.type).setMatrix(2, 2);
}
-#line 7825 "MachineIndependent/glslang_tab.cpp"
+#line 8507 "MachineIndependent/glslang_tab.cpp"
break;
- case 308: /* type_specifier_nonarray: F32MAT3 */
-#line 2279 "MachineIndependent/glslang.y"
+ case 317: /* type_specifier_nonarray: F32MAT3 */
+#line 2352 "MachineIndependent/glslang.y"
{
parseContext.explicitFloat32Check((yyvsp[0].lex).loc, "float32_t matrix", parseContext.symbolTable.atBuiltInLevel());
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtFloat;
(yyval.interm.type).setMatrix(3, 3);
}
-#line 7836 "MachineIndependent/glslang_tab.cpp"
+#line 8518 "MachineIndependent/glslang_tab.cpp"
break;
- case 309: /* type_specifier_nonarray: F32MAT4 */
-#line 2285 "MachineIndependent/glslang.y"
+ case 318: /* type_specifier_nonarray: F32MAT4 */
+#line 2358 "MachineIndependent/glslang.y"
{
parseContext.explicitFloat32Check((yyvsp[0].lex).loc, "float32_t matrix", parseContext.symbolTable.atBuiltInLevel());
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtFloat;
(yyval.interm.type).setMatrix(4, 4);
}
-#line 7847 "MachineIndependent/glslang_tab.cpp"
+#line 8529 "MachineIndependent/glslang_tab.cpp"
break;
- case 310: /* type_specifier_nonarray: F32MAT2X2 */
-#line 2291 "MachineIndependent/glslang.y"
+ case 319: /* type_specifier_nonarray: F32MAT2X2 */
+#line 2364 "MachineIndependent/glslang.y"
{
parseContext.explicitFloat32Check((yyvsp[0].lex).loc, "float32_t matrix", parseContext.symbolTable.atBuiltInLevel());
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtFloat;
(yyval.interm.type).setMatrix(2, 2);
}
-#line 7858 "MachineIndependent/glslang_tab.cpp"
+#line 8540 "MachineIndependent/glslang_tab.cpp"
break;
- case 311: /* type_specifier_nonarray: F32MAT2X3 */
-#line 2297 "MachineIndependent/glslang.y"
+ case 320: /* type_specifier_nonarray: F32MAT2X3 */
+#line 2370 "MachineIndependent/glslang.y"
{
parseContext.explicitFloat32Check((yyvsp[0].lex).loc, "float32_t matrix", parseContext.symbolTable.atBuiltInLevel());
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtFloat;
(yyval.interm.type).setMatrix(2, 3);
}
-#line 7869 "MachineIndependent/glslang_tab.cpp"
+#line 8551 "MachineIndependent/glslang_tab.cpp"
break;
- case 312: /* type_specifier_nonarray: F32MAT2X4 */
-#line 2303 "MachineIndependent/glslang.y"
+ case 321: /* type_specifier_nonarray: F32MAT2X4 */
+#line 2376 "MachineIndependent/glslang.y"
{
parseContext.explicitFloat32Check((yyvsp[0].lex).loc, "float32_t matrix", parseContext.symbolTable.atBuiltInLevel());
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtFloat;
(yyval.interm.type).setMatrix(2, 4);
}
-#line 7880 "MachineIndependent/glslang_tab.cpp"
+#line 8562 "MachineIndependent/glslang_tab.cpp"
break;
- case 313: /* type_specifier_nonarray: F32MAT3X2 */
-#line 2309 "MachineIndependent/glslang.y"
+ case 322: /* type_specifier_nonarray: F32MAT3X2 */
+#line 2382 "MachineIndependent/glslang.y"
{
parseContext.explicitFloat32Check((yyvsp[0].lex).loc, "float32_t matrix", parseContext.symbolTable.atBuiltInLevel());
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtFloat;
(yyval.interm.type).setMatrix(3, 2);
}
-#line 7891 "MachineIndependent/glslang_tab.cpp"
+#line 8573 "MachineIndependent/glslang_tab.cpp"
break;
- case 314: /* type_specifier_nonarray: F32MAT3X3 */
-#line 2315 "MachineIndependent/glslang.y"
+ case 323: /* type_specifier_nonarray: F32MAT3X3 */
+#line 2388 "MachineIndependent/glslang.y"
{
parseContext.explicitFloat32Check((yyvsp[0].lex).loc, "float32_t matrix", parseContext.symbolTable.atBuiltInLevel());
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtFloat;
(yyval.interm.type).setMatrix(3, 3);
}
-#line 7902 "MachineIndependent/glslang_tab.cpp"
+#line 8584 "MachineIndependent/glslang_tab.cpp"
break;
- case 315: /* type_specifier_nonarray: F32MAT3X4 */
-#line 2321 "MachineIndependent/glslang.y"
+ case 324: /* type_specifier_nonarray: F32MAT3X4 */
+#line 2394 "MachineIndependent/glslang.y"
{
parseContext.explicitFloat32Check((yyvsp[0].lex).loc, "float32_t matrix", parseContext.symbolTable.atBuiltInLevel());
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtFloat;
(yyval.interm.type).setMatrix(3, 4);
}
-#line 7913 "MachineIndependent/glslang_tab.cpp"
+#line 8595 "MachineIndependent/glslang_tab.cpp"
break;
- case 316: /* type_specifier_nonarray: F32MAT4X2 */
-#line 2327 "MachineIndependent/glslang.y"
+ case 325: /* type_specifier_nonarray: F32MAT4X2 */
+#line 2400 "MachineIndependent/glslang.y"
{
parseContext.explicitFloat32Check((yyvsp[0].lex).loc, "float32_t matrix", parseContext.symbolTable.atBuiltInLevel());
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtFloat;
(yyval.interm.type).setMatrix(4, 2);
}
-#line 7924 "MachineIndependent/glslang_tab.cpp"
+#line 8606 "MachineIndependent/glslang_tab.cpp"
break;
- case 317: /* type_specifier_nonarray: F32MAT4X3 */
-#line 2333 "MachineIndependent/glslang.y"
+ case 326: /* type_specifier_nonarray: F32MAT4X3 */
+#line 2406 "MachineIndependent/glslang.y"
{
parseContext.explicitFloat32Check((yyvsp[0].lex).loc, "float32_t matrix", parseContext.symbolTable.atBuiltInLevel());
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtFloat;
(yyval.interm.type).setMatrix(4, 3);
}
-#line 7935 "MachineIndependent/glslang_tab.cpp"
+#line 8617 "MachineIndependent/glslang_tab.cpp"
break;
- case 318: /* type_specifier_nonarray: F32MAT4X4 */
-#line 2339 "MachineIndependent/glslang.y"
+ case 327: /* type_specifier_nonarray: F32MAT4X4 */
+#line 2412 "MachineIndependent/glslang.y"
{
parseContext.explicitFloat32Check((yyvsp[0].lex).loc, "float32_t matrix", parseContext.symbolTable.atBuiltInLevel());
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtFloat;
(yyval.interm.type).setMatrix(4, 4);
}
-#line 7946 "MachineIndependent/glslang_tab.cpp"
+#line 8628 "MachineIndependent/glslang_tab.cpp"
break;
- case 319: /* type_specifier_nonarray: F64MAT2 */
-#line 2345 "MachineIndependent/glslang.y"
+ case 328: /* type_specifier_nonarray: F64MAT2 */
+#line 2418 "MachineIndependent/glslang.y"
{
parseContext.explicitFloat64Check((yyvsp[0].lex).loc, "float64_t matrix", parseContext.symbolTable.atBuiltInLevel());
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtDouble;
(yyval.interm.type).setMatrix(2, 2);
}
-#line 7957 "MachineIndependent/glslang_tab.cpp"
+#line 8639 "MachineIndependent/glslang_tab.cpp"
break;
- case 320: /* type_specifier_nonarray: F64MAT3 */
-#line 2351 "MachineIndependent/glslang.y"
+ case 329: /* type_specifier_nonarray: F64MAT3 */
+#line 2424 "MachineIndependent/glslang.y"
{
parseContext.explicitFloat64Check((yyvsp[0].lex).loc, "float64_t matrix", parseContext.symbolTable.atBuiltInLevel());
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtDouble;
(yyval.interm.type).setMatrix(3, 3);
}
-#line 7968 "MachineIndependent/glslang_tab.cpp"
+#line 8650 "MachineIndependent/glslang_tab.cpp"
break;
- case 321: /* type_specifier_nonarray: F64MAT4 */
-#line 2357 "MachineIndependent/glslang.y"
+ case 330: /* type_specifier_nonarray: F64MAT4 */
+#line 2430 "MachineIndependent/glslang.y"
{
parseContext.explicitFloat64Check((yyvsp[0].lex).loc, "float64_t matrix", parseContext.symbolTable.atBuiltInLevel());
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtDouble;
(yyval.interm.type).setMatrix(4, 4);
}
-#line 7979 "MachineIndependent/glslang_tab.cpp"
+#line 8661 "MachineIndependent/glslang_tab.cpp"
break;
- case 322: /* type_specifier_nonarray: F64MAT2X2 */
-#line 2363 "MachineIndependent/glslang.y"
+ case 331: /* type_specifier_nonarray: F64MAT2X2 */
+#line 2436 "MachineIndependent/glslang.y"
{
parseContext.explicitFloat64Check((yyvsp[0].lex).loc, "float64_t matrix", parseContext.symbolTable.atBuiltInLevel());
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtDouble;
(yyval.interm.type).setMatrix(2, 2);
}
-#line 7990 "MachineIndependent/glslang_tab.cpp"
+#line 8672 "MachineIndependent/glslang_tab.cpp"
break;
- case 323: /* type_specifier_nonarray: F64MAT2X3 */
-#line 2369 "MachineIndependent/glslang.y"
+ case 332: /* type_specifier_nonarray: F64MAT2X3 */
+#line 2442 "MachineIndependent/glslang.y"
{
parseContext.explicitFloat64Check((yyvsp[0].lex).loc, "float64_t matrix", parseContext.symbolTable.atBuiltInLevel());
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtDouble;
(yyval.interm.type).setMatrix(2, 3);
}
-#line 8001 "MachineIndependent/glslang_tab.cpp"
+#line 8683 "MachineIndependent/glslang_tab.cpp"
break;
- case 324: /* type_specifier_nonarray: F64MAT2X4 */
-#line 2375 "MachineIndependent/glslang.y"
+ case 333: /* type_specifier_nonarray: F64MAT2X4 */
+#line 2448 "MachineIndependent/glslang.y"
{
parseContext.explicitFloat64Check((yyvsp[0].lex).loc, "float64_t matrix", parseContext.symbolTable.atBuiltInLevel());
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtDouble;
(yyval.interm.type).setMatrix(2, 4);
}
-#line 8012 "MachineIndependent/glslang_tab.cpp"
+#line 8694 "MachineIndependent/glslang_tab.cpp"
break;
- case 325: /* type_specifier_nonarray: F64MAT3X2 */
-#line 2381 "MachineIndependent/glslang.y"
+ case 334: /* type_specifier_nonarray: F64MAT3X2 */
+#line 2454 "MachineIndependent/glslang.y"
{
parseContext.explicitFloat64Check((yyvsp[0].lex).loc, "float64_t matrix", parseContext.symbolTable.atBuiltInLevel());
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtDouble;
(yyval.interm.type).setMatrix(3, 2);
}
-#line 8023 "MachineIndependent/glslang_tab.cpp"
+#line 8705 "MachineIndependent/glslang_tab.cpp"
break;
- case 326: /* type_specifier_nonarray: F64MAT3X3 */
-#line 2387 "MachineIndependent/glslang.y"
+ case 335: /* type_specifier_nonarray: F64MAT3X3 */
+#line 2460 "MachineIndependent/glslang.y"
{
parseContext.explicitFloat64Check((yyvsp[0].lex).loc, "float64_t matrix", parseContext.symbolTable.atBuiltInLevel());
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtDouble;
(yyval.interm.type).setMatrix(3, 3);
}
-#line 8034 "MachineIndependent/glslang_tab.cpp"
+#line 8716 "MachineIndependent/glslang_tab.cpp"
break;
- case 327: /* type_specifier_nonarray: F64MAT3X4 */
-#line 2393 "MachineIndependent/glslang.y"
+ case 336: /* type_specifier_nonarray: F64MAT3X4 */
+#line 2466 "MachineIndependent/glslang.y"
{
parseContext.explicitFloat64Check((yyvsp[0].lex).loc, "float64_t matrix", parseContext.symbolTable.atBuiltInLevel());
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtDouble;
(yyval.interm.type).setMatrix(3, 4);
}
-#line 8045 "MachineIndependent/glslang_tab.cpp"
+#line 8727 "MachineIndependent/glslang_tab.cpp"
break;
- case 328: /* type_specifier_nonarray: F64MAT4X2 */
-#line 2399 "MachineIndependent/glslang.y"
+ case 337: /* type_specifier_nonarray: F64MAT4X2 */
+#line 2472 "MachineIndependent/glslang.y"
{
parseContext.explicitFloat64Check((yyvsp[0].lex).loc, "float64_t matrix", parseContext.symbolTable.atBuiltInLevel());
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtDouble;
(yyval.interm.type).setMatrix(4, 2);
}
-#line 8056 "MachineIndependent/glslang_tab.cpp"
+#line 8738 "MachineIndependent/glslang_tab.cpp"
break;
- case 329: /* type_specifier_nonarray: F64MAT4X3 */
-#line 2405 "MachineIndependent/glslang.y"
+ case 338: /* type_specifier_nonarray: F64MAT4X3 */
+#line 2478 "MachineIndependent/glslang.y"
{
parseContext.explicitFloat64Check((yyvsp[0].lex).loc, "float64_t matrix", parseContext.symbolTable.atBuiltInLevel());
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtDouble;
(yyval.interm.type).setMatrix(4, 3);
}
-#line 8067 "MachineIndependent/glslang_tab.cpp"
+#line 8749 "MachineIndependent/glslang_tab.cpp"
break;
- case 330: /* type_specifier_nonarray: F64MAT4X4 */
-#line 2411 "MachineIndependent/glslang.y"
+ case 339: /* type_specifier_nonarray: F64MAT4X4 */
+#line 2484 "MachineIndependent/glslang.y"
{
parseContext.explicitFloat64Check((yyvsp[0].lex).loc, "float64_t matrix", parseContext.symbolTable.atBuiltInLevel());
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtDouble;
(yyval.interm.type).setMatrix(4, 4);
}
-#line 8078 "MachineIndependent/glslang_tab.cpp"
+#line 8760 "MachineIndependent/glslang_tab.cpp"
break;
- case 331: /* type_specifier_nonarray: ACCSTRUCTNV */
-#line 2417 "MachineIndependent/glslang.y"
+ case 340: /* type_specifier_nonarray: ACCSTRUCTNV */
+#line 2490 "MachineIndependent/glslang.y"
{
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtAccStruct;
}
-#line 8087 "MachineIndependent/glslang_tab.cpp"
+#line 8769 "MachineIndependent/glslang_tab.cpp"
break;
- case 332: /* type_specifier_nonarray: ACCSTRUCTEXT */
-#line 2421 "MachineIndependent/glslang.y"
+ case 341: /* type_specifier_nonarray: ACCSTRUCTEXT */
+#line 2494 "MachineIndependent/glslang.y"
{
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtAccStruct;
}
-#line 8096 "MachineIndependent/glslang_tab.cpp"
+#line 8778 "MachineIndependent/glslang_tab.cpp"
break;
- case 333: /* type_specifier_nonarray: RAYQUERYEXT */
-#line 2425 "MachineIndependent/glslang.y"
+ case 342: /* type_specifier_nonarray: RAYQUERYEXT */
+#line 2498 "MachineIndependent/glslang.y"
{
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtRayQuery;
}
-#line 8105 "MachineIndependent/glslang_tab.cpp"
+#line 8787 "MachineIndependent/glslang_tab.cpp"
break;
- case 334: /* type_specifier_nonarray: ATOMIC_UINT */
-#line 2429 "MachineIndependent/glslang.y"
+ case 343: /* type_specifier_nonarray: ATOMIC_UINT */
+#line 2502 "MachineIndependent/glslang.y"
{
parseContext.vulkanRemoved((yyvsp[0].lex).loc, "atomic counter types");
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtAtomicUint;
}
-#line 8115 "MachineIndependent/glslang_tab.cpp"
+#line 8797 "MachineIndependent/glslang_tab.cpp"
break;
- case 335: /* type_specifier_nonarray: SAMPLER1D */
-#line 2434 "MachineIndependent/glslang.y"
+ case 344: /* type_specifier_nonarray: SAMPLER1D */
+#line 2507 "MachineIndependent/glslang.y"
{
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtSampler;
(yyval.interm.type).sampler.set(EbtFloat, Esd1D);
}
-#line 8125 "MachineIndependent/glslang_tab.cpp"
+#line 8807 "MachineIndependent/glslang_tab.cpp"
break;
- case 336: /* type_specifier_nonarray: SAMPLER2D */
-#line 2440 "MachineIndependent/glslang.y"
+ case 345: /* type_specifier_nonarray: SAMPLER2D */
+#line 2513 "MachineIndependent/glslang.y"
{
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtSampler;
(yyval.interm.type).sampler.set(EbtFloat, Esd2D);
}
-#line 8135 "MachineIndependent/glslang_tab.cpp"
+#line 8817 "MachineIndependent/glslang_tab.cpp"
break;
- case 337: /* type_specifier_nonarray: SAMPLER3D */
-#line 2445 "MachineIndependent/glslang.y"
+ case 346: /* type_specifier_nonarray: SAMPLER3D */
+#line 2518 "MachineIndependent/glslang.y"
{
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtSampler;
(yyval.interm.type).sampler.set(EbtFloat, Esd3D);
}
-#line 8145 "MachineIndependent/glslang_tab.cpp"
+#line 8827 "MachineIndependent/glslang_tab.cpp"
break;
- case 338: /* type_specifier_nonarray: SAMPLERCUBE */
-#line 2450 "MachineIndependent/glslang.y"
+ case 347: /* type_specifier_nonarray: SAMPLERCUBE */
+#line 2523 "MachineIndependent/glslang.y"
{
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtSampler;
(yyval.interm.type).sampler.set(EbtFloat, EsdCube);
}
-#line 8155 "MachineIndependent/glslang_tab.cpp"
+#line 8837 "MachineIndependent/glslang_tab.cpp"
break;
- case 339: /* type_specifier_nonarray: SAMPLER2DSHADOW */
-#line 2455 "MachineIndependent/glslang.y"
+ case 348: /* type_specifier_nonarray: SAMPLER2DSHADOW */
+#line 2528 "MachineIndependent/glslang.y"
{
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtSampler;
(yyval.interm.type).sampler.set(EbtFloat, Esd2D, false, true);
}
-#line 8165 "MachineIndependent/glslang_tab.cpp"
+#line 8847 "MachineIndependent/glslang_tab.cpp"
break;
- case 340: /* type_specifier_nonarray: SAMPLERCUBESHADOW */
-#line 2460 "MachineIndependent/glslang.y"
+ case 349: /* type_specifier_nonarray: SAMPLERCUBESHADOW */
+#line 2533 "MachineIndependent/glslang.y"
{
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtSampler;
(yyval.interm.type).sampler.set(EbtFloat, EsdCube, false, true);
}
-#line 8175 "MachineIndependent/glslang_tab.cpp"
+#line 8857 "MachineIndependent/glslang_tab.cpp"
break;
- case 341: /* type_specifier_nonarray: SAMPLER2DARRAY */
-#line 2465 "MachineIndependent/glslang.y"
+ case 350: /* type_specifier_nonarray: SAMPLER2DARRAY */
+#line 2538 "MachineIndependent/glslang.y"
{
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtSampler;
(yyval.interm.type).sampler.set(EbtFloat, Esd2D, true);
}
-#line 8185 "MachineIndependent/glslang_tab.cpp"
+#line 8867 "MachineIndependent/glslang_tab.cpp"
break;
- case 342: /* type_specifier_nonarray: SAMPLER2DARRAYSHADOW */
-#line 2470 "MachineIndependent/glslang.y"
+ case 351: /* type_specifier_nonarray: SAMPLER2DARRAYSHADOW */
+#line 2543 "MachineIndependent/glslang.y"
{
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtSampler;
(yyval.interm.type).sampler.set(EbtFloat, Esd2D, true, true);
}
-#line 8195 "MachineIndependent/glslang_tab.cpp"
+#line 8877 "MachineIndependent/glslang_tab.cpp"
break;
- case 343: /* type_specifier_nonarray: SAMPLER1DSHADOW */
-#line 2476 "MachineIndependent/glslang.y"
+ case 352: /* type_specifier_nonarray: SAMPLER1DSHADOW */
+#line 2549 "MachineIndependent/glslang.y"
{
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtSampler;
(yyval.interm.type).sampler.set(EbtFloat, Esd1D, false, true);
}
-#line 8205 "MachineIndependent/glslang_tab.cpp"
+#line 8887 "MachineIndependent/glslang_tab.cpp"
break;
- case 344: /* type_specifier_nonarray: SAMPLER1DARRAY */
-#line 2481 "MachineIndependent/glslang.y"
+ case 353: /* type_specifier_nonarray: SAMPLER1DARRAY */
+#line 2554 "MachineIndependent/glslang.y"
{
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtSampler;
(yyval.interm.type).sampler.set(EbtFloat, Esd1D, true);
}
-#line 8215 "MachineIndependent/glslang_tab.cpp"
+#line 8897 "MachineIndependent/glslang_tab.cpp"
break;
- case 345: /* type_specifier_nonarray: SAMPLER1DARRAYSHADOW */
-#line 2486 "MachineIndependent/glslang.y"
+ case 354: /* type_specifier_nonarray: SAMPLER1DARRAYSHADOW */
+#line 2559 "MachineIndependent/glslang.y"
{
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtSampler;
(yyval.interm.type).sampler.set(EbtFloat, Esd1D, true, true);
}
-#line 8225 "MachineIndependent/glslang_tab.cpp"
+#line 8907 "MachineIndependent/glslang_tab.cpp"
break;
- case 346: /* type_specifier_nonarray: SAMPLERCUBEARRAY */
-#line 2491 "MachineIndependent/glslang.y"
+ case 355: /* type_specifier_nonarray: SAMPLERCUBEARRAY */
+#line 2564 "MachineIndependent/glslang.y"
{
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtSampler;
(yyval.interm.type).sampler.set(EbtFloat, EsdCube, true);
}
-#line 8235 "MachineIndependent/glslang_tab.cpp"
+#line 8917 "MachineIndependent/glslang_tab.cpp"
break;
- case 347: /* type_specifier_nonarray: SAMPLERCUBEARRAYSHADOW */
-#line 2496 "MachineIndependent/glslang.y"
+ case 356: /* type_specifier_nonarray: SAMPLERCUBEARRAYSHADOW */
+#line 2569 "MachineIndependent/glslang.y"
{
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtSampler;
(yyval.interm.type).sampler.set(EbtFloat, EsdCube, true, true);
}
-#line 8245 "MachineIndependent/glslang_tab.cpp"
+#line 8927 "MachineIndependent/glslang_tab.cpp"
break;
- case 348: /* type_specifier_nonarray: F16SAMPLER1D */
-#line 2501 "MachineIndependent/glslang.y"
+ case 357: /* type_specifier_nonarray: F16SAMPLER1D */
+#line 2574 "MachineIndependent/glslang.y"
{
parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float sampler", parseContext.symbolTable.atBuiltInLevel());
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtSampler;
(yyval.interm.type).sampler.set(EbtFloat16, Esd1D);
}
-#line 8256 "MachineIndependent/glslang_tab.cpp"
+#line 8938 "MachineIndependent/glslang_tab.cpp"
break;
- case 349: /* type_specifier_nonarray: F16SAMPLER2D */
-#line 2507 "MachineIndependent/glslang.y"
+ case 358: /* type_specifier_nonarray: F16SAMPLER2D */
+#line 2580 "MachineIndependent/glslang.y"
{
parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float sampler", parseContext.symbolTable.atBuiltInLevel());
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtSampler;
(yyval.interm.type).sampler.set(EbtFloat16, Esd2D);
}
-#line 8267 "MachineIndependent/glslang_tab.cpp"
+#line 8949 "MachineIndependent/glslang_tab.cpp"
break;
- case 350: /* type_specifier_nonarray: F16SAMPLER3D */
-#line 2513 "MachineIndependent/glslang.y"
+ case 359: /* type_specifier_nonarray: F16SAMPLER3D */
+#line 2586 "MachineIndependent/glslang.y"
{
parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float sampler", parseContext.symbolTable.atBuiltInLevel());
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtSampler;
(yyval.interm.type).sampler.set(EbtFloat16, Esd3D);
}
-#line 8278 "MachineIndependent/glslang_tab.cpp"
+#line 8960 "MachineIndependent/glslang_tab.cpp"
break;
- case 351: /* type_specifier_nonarray: F16SAMPLERCUBE */
-#line 2519 "MachineIndependent/glslang.y"
+ case 360: /* type_specifier_nonarray: F16SAMPLERCUBE */
+#line 2592 "MachineIndependent/glslang.y"
{
parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float sampler", parseContext.symbolTable.atBuiltInLevel());
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtSampler;
(yyval.interm.type).sampler.set(EbtFloat16, EsdCube);
}
-#line 8289 "MachineIndependent/glslang_tab.cpp"
+#line 8971 "MachineIndependent/glslang_tab.cpp"
break;
- case 352: /* type_specifier_nonarray: F16SAMPLER1DSHADOW */
-#line 2525 "MachineIndependent/glslang.y"
+ case 361: /* type_specifier_nonarray: F16SAMPLER1DSHADOW */
+#line 2598 "MachineIndependent/glslang.y"
{
parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float sampler", parseContext.symbolTable.atBuiltInLevel());
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtSampler;
(yyval.interm.type).sampler.set(EbtFloat16, Esd1D, false, true);
}
-#line 8300 "MachineIndependent/glslang_tab.cpp"
+#line 8982 "MachineIndependent/glslang_tab.cpp"
break;
- case 353: /* type_specifier_nonarray: F16SAMPLER2DSHADOW */
-#line 2531 "MachineIndependent/glslang.y"
+ case 362: /* type_specifier_nonarray: F16SAMPLER2DSHADOW */
+#line 2604 "MachineIndependent/glslang.y"
{
parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float sampler", parseContext.symbolTable.atBuiltInLevel());
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtSampler;
(yyval.interm.type).sampler.set(EbtFloat16, Esd2D, false, true);
}
-#line 8311 "MachineIndependent/glslang_tab.cpp"
+#line 8993 "MachineIndependent/glslang_tab.cpp"
break;
- case 354: /* type_specifier_nonarray: F16SAMPLERCUBESHADOW */
-#line 2537 "MachineIndependent/glslang.y"
+ case 363: /* type_specifier_nonarray: F16SAMPLERCUBESHADOW */
+#line 2610 "MachineIndependent/glslang.y"
{
parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float sampler", parseContext.symbolTable.atBuiltInLevel());
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtSampler;
(yyval.interm.type).sampler.set(EbtFloat16, EsdCube, false, true);
}
-#line 8322 "MachineIndependent/glslang_tab.cpp"
+#line 9004 "MachineIndependent/glslang_tab.cpp"
break;
- case 355: /* type_specifier_nonarray: F16SAMPLER1DARRAY */
-#line 2543 "MachineIndependent/glslang.y"
+ case 364: /* type_specifier_nonarray: F16SAMPLER1DARRAY */
+#line 2616 "MachineIndependent/glslang.y"
{
parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float sampler", parseContext.symbolTable.atBuiltInLevel());
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtSampler;
(yyval.interm.type).sampler.set(EbtFloat16, Esd1D, true);
}
-#line 8333 "MachineIndependent/glslang_tab.cpp"
+#line 9015 "MachineIndependent/glslang_tab.cpp"
break;
- case 356: /* type_specifier_nonarray: F16SAMPLER2DARRAY */
-#line 2549 "MachineIndependent/glslang.y"
+ case 365: /* type_specifier_nonarray: F16SAMPLER2DARRAY */
+#line 2622 "MachineIndependent/glslang.y"
{
parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float sampler", parseContext.symbolTable.atBuiltInLevel());
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtSampler;
(yyval.interm.type).sampler.set(EbtFloat16, Esd2D, true);
}
-#line 8344 "MachineIndependent/glslang_tab.cpp"
+#line 9026 "MachineIndependent/glslang_tab.cpp"
break;
- case 357: /* type_specifier_nonarray: F16SAMPLER1DARRAYSHADOW */
-#line 2555 "MachineIndependent/glslang.y"
+ case 366: /* type_specifier_nonarray: F16SAMPLER1DARRAYSHADOW */
+#line 2628 "MachineIndependent/glslang.y"
{
parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float sampler", parseContext.symbolTable.atBuiltInLevel());
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtSampler;
(yyval.interm.type).sampler.set(EbtFloat16, Esd1D, true, true);
}
-#line 8355 "MachineIndependent/glslang_tab.cpp"
+#line 9037 "MachineIndependent/glslang_tab.cpp"
break;
- case 358: /* type_specifier_nonarray: F16SAMPLER2DARRAYSHADOW */
-#line 2561 "MachineIndependent/glslang.y"
+ case 367: /* type_specifier_nonarray: F16SAMPLER2DARRAYSHADOW */
+#line 2634 "MachineIndependent/glslang.y"
{
parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float sampler", parseContext.symbolTable.atBuiltInLevel());
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtSampler;
(yyval.interm.type).sampler.set(EbtFloat16, Esd2D, true, true);
}
-#line 8366 "MachineIndependent/glslang_tab.cpp"
+#line 9048 "MachineIndependent/glslang_tab.cpp"
break;
- case 359: /* type_specifier_nonarray: F16SAMPLERCUBEARRAY */
-#line 2567 "MachineIndependent/glslang.y"
+ case 368: /* type_specifier_nonarray: F16SAMPLERCUBEARRAY */
+#line 2640 "MachineIndependent/glslang.y"
{
parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float sampler", parseContext.symbolTable.atBuiltInLevel());
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtSampler;
(yyval.interm.type).sampler.set(EbtFloat16, EsdCube, true);
}
-#line 8377 "MachineIndependent/glslang_tab.cpp"
+#line 9059 "MachineIndependent/glslang_tab.cpp"
break;
- case 360: /* type_specifier_nonarray: F16SAMPLERCUBEARRAYSHADOW */
-#line 2573 "MachineIndependent/glslang.y"
+ case 369: /* type_specifier_nonarray: F16SAMPLERCUBEARRAYSHADOW */
+#line 2646 "MachineIndependent/glslang.y"
{
parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float sampler", parseContext.symbolTable.atBuiltInLevel());
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtSampler;
(yyval.interm.type).sampler.set(EbtFloat16, EsdCube, true, true);
}
-#line 8388 "MachineIndependent/glslang_tab.cpp"
+#line 9070 "MachineIndependent/glslang_tab.cpp"
break;
- case 361: /* type_specifier_nonarray: ISAMPLER1D */
-#line 2579 "MachineIndependent/glslang.y"
+ case 370: /* type_specifier_nonarray: ISAMPLER1D */
+#line 2652 "MachineIndependent/glslang.y"
{
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtSampler;
(yyval.interm.type).sampler.set(EbtInt, Esd1D);
}
-#line 8398 "MachineIndependent/glslang_tab.cpp"
+#line 9080 "MachineIndependent/glslang_tab.cpp"
break;
- case 362: /* type_specifier_nonarray: ISAMPLER2D */
-#line 2585 "MachineIndependent/glslang.y"
+ case 371: /* type_specifier_nonarray: ISAMPLER2D */
+#line 2658 "MachineIndependent/glslang.y"
{
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtSampler;
(yyval.interm.type).sampler.set(EbtInt, Esd2D);
}
-#line 8408 "MachineIndependent/glslang_tab.cpp"
+#line 9090 "MachineIndependent/glslang_tab.cpp"
break;
- case 363: /* type_specifier_nonarray: ISAMPLER3D */
-#line 2590 "MachineIndependent/glslang.y"
+ case 372: /* type_specifier_nonarray: ISAMPLER3D */
+#line 2663 "MachineIndependent/glslang.y"
{
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtSampler;
(yyval.interm.type).sampler.set(EbtInt, Esd3D);
}
-#line 8418 "MachineIndependent/glslang_tab.cpp"
+#line 9100 "MachineIndependent/glslang_tab.cpp"
break;
- case 364: /* type_specifier_nonarray: ISAMPLERCUBE */
-#line 2595 "MachineIndependent/glslang.y"
+ case 373: /* type_specifier_nonarray: ISAMPLERCUBE */
+#line 2668 "MachineIndependent/glslang.y"
{
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtSampler;
(yyval.interm.type).sampler.set(EbtInt, EsdCube);
}
-#line 8428 "MachineIndependent/glslang_tab.cpp"
+#line 9110 "MachineIndependent/glslang_tab.cpp"
break;
- case 365: /* type_specifier_nonarray: ISAMPLER2DARRAY */
-#line 2600 "MachineIndependent/glslang.y"
+ case 374: /* type_specifier_nonarray: ISAMPLER2DARRAY */
+#line 2673 "MachineIndependent/glslang.y"
{
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtSampler;
(yyval.interm.type).sampler.set(EbtInt, Esd2D, true);
}
-#line 8438 "MachineIndependent/glslang_tab.cpp"
+#line 9120 "MachineIndependent/glslang_tab.cpp"
break;
- case 366: /* type_specifier_nonarray: USAMPLER2D */
-#line 2605 "MachineIndependent/glslang.y"
+ case 375: /* type_specifier_nonarray: USAMPLER2D */
+#line 2678 "MachineIndependent/glslang.y"
{
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtSampler;
(yyval.interm.type).sampler.set(EbtUint, Esd2D);
}
-#line 8448 "MachineIndependent/glslang_tab.cpp"
+#line 9130 "MachineIndependent/glslang_tab.cpp"
break;
- case 367: /* type_specifier_nonarray: USAMPLER3D */
-#line 2610 "MachineIndependent/glslang.y"
+ case 376: /* type_specifier_nonarray: USAMPLER3D */
+#line 2683 "MachineIndependent/glslang.y"
{
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtSampler;
(yyval.interm.type).sampler.set(EbtUint, Esd3D);
}
-#line 8458 "MachineIndependent/glslang_tab.cpp"
+#line 9140 "MachineIndependent/glslang_tab.cpp"
break;
- case 368: /* type_specifier_nonarray: USAMPLERCUBE */
-#line 2615 "MachineIndependent/glslang.y"
+ case 377: /* type_specifier_nonarray: USAMPLERCUBE */
+#line 2688 "MachineIndependent/glslang.y"
{
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtSampler;
(yyval.interm.type).sampler.set(EbtUint, EsdCube);
}
-#line 8468 "MachineIndependent/glslang_tab.cpp"
+#line 9150 "MachineIndependent/glslang_tab.cpp"
break;
- case 369: /* type_specifier_nonarray: ISAMPLER1DARRAY */
-#line 2621 "MachineIndependent/glslang.y"
+ case 378: /* type_specifier_nonarray: ISAMPLER1DARRAY */
+#line 2694 "MachineIndependent/glslang.y"
{
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtSampler;
(yyval.interm.type).sampler.set(EbtInt, Esd1D, true);
}
-#line 8478 "MachineIndependent/glslang_tab.cpp"
+#line 9160 "MachineIndependent/glslang_tab.cpp"
break;
- case 370: /* type_specifier_nonarray: ISAMPLERCUBEARRAY */
-#line 2626 "MachineIndependent/glslang.y"
+ case 379: /* type_specifier_nonarray: ISAMPLERCUBEARRAY */
+#line 2699 "MachineIndependent/glslang.y"
{
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtSampler;
(yyval.interm.type).sampler.set(EbtInt, EsdCube, true);
}
-#line 8488 "MachineIndependent/glslang_tab.cpp"
+#line 9170 "MachineIndependent/glslang_tab.cpp"
break;
- case 371: /* type_specifier_nonarray: USAMPLER1D */
-#line 2631 "MachineIndependent/glslang.y"
+ case 380: /* type_specifier_nonarray: USAMPLER1D */
+#line 2704 "MachineIndependent/glslang.y"
{
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtSampler;
(yyval.interm.type).sampler.set(EbtUint, Esd1D);
}
-#line 8498 "MachineIndependent/glslang_tab.cpp"
+#line 9180 "MachineIndependent/glslang_tab.cpp"
break;
- case 372: /* type_specifier_nonarray: USAMPLER1DARRAY */
-#line 2636 "MachineIndependent/glslang.y"
+ case 381: /* type_specifier_nonarray: USAMPLER1DARRAY */
+#line 2709 "MachineIndependent/glslang.y"
{
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtSampler;
(yyval.interm.type).sampler.set(EbtUint, Esd1D, true);
}
-#line 8508 "MachineIndependent/glslang_tab.cpp"
+#line 9190 "MachineIndependent/glslang_tab.cpp"
break;
- case 373: /* type_specifier_nonarray: USAMPLERCUBEARRAY */
-#line 2641 "MachineIndependent/glslang.y"
+ case 382: /* type_specifier_nonarray: USAMPLERCUBEARRAY */
+#line 2714 "MachineIndependent/glslang.y"
{
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtSampler;
(yyval.interm.type).sampler.set(EbtUint, EsdCube, true);
}
-#line 8518 "MachineIndependent/glslang_tab.cpp"
+#line 9200 "MachineIndependent/glslang_tab.cpp"
break;
- case 374: /* type_specifier_nonarray: TEXTURECUBEARRAY */
-#line 2646 "MachineIndependent/glslang.y"
+ case 383: /* type_specifier_nonarray: TEXTURECUBEARRAY */
+#line 2719 "MachineIndependent/glslang.y"
{
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtSampler;
(yyval.interm.type).sampler.setTexture(EbtFloat, EsdCube, true);
}
-#line 8528 "MachineIndependent/glslang_tab.cpp"
+#line 9210 "MachineIndependent/glslang_tab.cpp"
break;
- case 375: /* type_specifier_nonarray: ITEXTURECUBEARRAY */
-#line 2651 "MachineIndependent/glslang.y"
+ case 384: /* type_specifier_nonarray: ITEXTURECUBEARRAY */
+#line 2724 "MachineIndependent/glslang.y"
{
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtSampler;
(yyval.interm.type).sampler.setTexture(EbtInt, EsdCube, true);
}
-#line 8538 "MachineIndependent/glslang_tab.cpp"
+#line 9220 "MachineIndependent/glslang_tab.cpp"
break;
- case 376: /* type_specifier_nonarray: UTEXTURECUBEARRAY */
-#line 2656 "MachineIndependent/glslang.y"
+ case 385: /* type_specifier_nonarray: UTEXTURECUBEARRAY */
+#line 2729 "MachineIndependent/glslang.y"
{
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtSampler;
(yyval.interm.type).sampler.setTexture(EbtUint, EsdCube, true);
}
-#line 8548 "MachineIndependent/glslang_tab.cpp"
+#line 9230 "MachineIndependent/glslang_tab.cpp"
break;
- case 377: /* type_specifier_nonarray: USAMPLER2DARRAY */
-#line 2662 "MachineIndependent/glslang.y"
+ case 386: /* type_specifier_nonarray: USAMPLER2DARRAY */
+#line 2735 "MachineIndependent/glslang.y"
{
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtSampler;
(yyval.interm.type).sampler.set(EbtUint, Esd2D, true);
}
-#line 8558 "MachineIndependent/glslang_tab.cpp"
+#line 9240 "MachineIndependent/glslang_tab.cpp"
break;
- case 378: /* type_specifier_nonarray: TEXTURE2D */
-#line 2667 "MachineIndependent/glslang.y"
+ case 387: /* type_specifier_nonarray: TEXTURE2D */
+#line 2740 "MachineIndependent/glslang.y"
{
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtSampler;
(yyval.interm.type).sampler.setTexture(EbtFloat, Esd2D);
}
-#line 8568 "MachineIndependent/glslang_tab.cpp"
+#line 9250 "MachineIndependent/glslang_tab.cpp"
break;
- case 379: /* type_specifier_nonarray: TEXTURE3D */
-#line 2672 "MachineIndependent/glslang.y"
+ case 388: /* type_specifier_nonarray: TEXTURE3D */
+#line 2745 "MachineIndependent/glslang.y"
{
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtSampler;
(yyval.interm.type).sampler.setTexture(EbtFloat, Esd3D);
}
-#line 8578 "MachineIndependent/glslang_tab.cpp"
+#line 9260 "MachineIndependent/glslang_tab.cpp"
break;
- case 380: /* type_specifier_nonarray: TEXTURE2DARRAY */
-#line 2677 "MachineIndependent/glslang.y"
+ case 389: /* type_specifier_nonarray: TEXTURE2DARRAY */
+#line 2750 "MachineIndependent/glslang.y"
{
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtSampler;
(yyval.interm.type).sampler.setTexture(EbtFloat, Esd2D, true);
}
-#line 8588 "MachineIndependent/glslang_tab.cpp"
+#line 9270 "MachineIndependent/glslang_tab.cpp"
break;
- case 381: /* type_specifier_nonarray: TEXTURECUBE */
-#line 2682 "MachineIndependent/glslang.y"
+ case 390: /* type_specifier_nonarray: TEXTURECUBE */
+#line 2755 "MachineIndependent/glslang.y"
{
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtSampler;
(yyval.interm.type).sampler.setTexture(EbtFloat, EsdCube);
}
-#line 8598 "MachineIndependent/glslang_tab.cpp"
+#line 9280 "MachineIndependent/glslang_tab.cpp"
break;
- case 382: /* type_specifier_nonarray: ITEXTURE2D */
-#line 2687 "MachineIndependent/glslang.y"
+ case 391: /* type_specifier_nonarray: ITEXTURE2D */
+#line 2760 "MachineIndependent/glslang.y"
{
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtSampler;
(yyval.interm.type).sampler.setTexture(EbtInt, Esd2D);
}
-#line 8608 "MachineIndependent/glslang_tab.cpp"
+#line 9290 "MachineIndependent/glslang_tab.cpp"
break;
- case 383: /* type_specifier_nonarray: ITEXTURE3D */
-#line 2692 "MachineIndependent/glslang.y"
+ case 392: /* type_specifier_nonarray: ITEXTURE3D */
+#line 2765 "MachineIndependent/glslang.y"
{
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtSampler;
(yyval.interm.type).sampler.setTexture(EbtInt, Esd3D);
}
-#line 8618 "MachineIndependent/glslang_tab.cpp"
+#line 9300 "MachineIndependent/glslang_tab.cpp"
break;
- case 384: /* type_specifier_nonarray: ITEXTURECUBE */
-#line 2697 "MachineIndependent/glslang.y"
+ case 393: /* type_specifier_nonarray: ITEXTURECUBE */
+#line 2770 "MachineIndependent/glslang.y"
{
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtSampler;
(yyval.interm.type).sampler.setTexture(EbtInt, EsdCube);
}
-#line 8628 "MachineIndependent/glslang_tab.cpp"
+#line 9310 "MachineIndependent/glslang_tab.cpp"
break;
- case 385: /* type_specifier_nonarray: ITEXTURE2DARRAY */
-#line 2702 "MachineIndependent/glslang.y"
+ case 394: /* type_specifier_nonarray: ITEXTURE2DARRAY */
+#line 2775 "MachineIndependent/glslang.y"
{
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtSampler;
(yyval.interm.type).sampler.setTexture(EbtInt, Esd2D, true);
}
-#line 8638 "MachineIndependent/glslang_tab.cpp"
+#line 9320 "MachineIndependent/glslang_tab.cpp"
break;
- case 386: /* type_specifier_nonarray: UTEXTURE2D */
-#line 2707 "MachineIndependent/glslang.y"
+ case 395: /* type_specifier_nonarray: UTEXTURE2D */
+#line 2780 "MachineIndependent/glslang.y"
{
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtSampler;
(yyval.interm.type).sampler.setTexture(EbtUint, Esd2D);
}
-#line 8648 "MachineIndependent/glslang_tab.cpp"
+#line 9330 "MachineIndependent/glslang_tab.cpp"
break;
- case 387: /* type_specifier_nonarray: UTEXTURE3D */
-#line 2712 "MachineIndependent/glslang.y"
+ case 396: /* type_specifier_nonarray: UTEXTURE3D */
+#line 2785 "MachineIndependent/glslang.y"
{
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtSampler;
(yyval.interm.type).sampler.setTexture(EbtUint, Esd3D);
}
-#line 8658 "MachineIndependent/glslang_tab.cpp"
+#line 9340 "MachineIndependent/glslang_tab.cpp"
break;
- case 388: /* type_specifier_nonarray: UTEXTURECUBE */
-#line 2717 "MachineIndependent/glslang.y"
+ case 397: /* type_specifier_nonarray: UTEXTURECUBE */
+#line 2790 "MachineIndependent/glslang.y"
{
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtSampler;
(yyval.interm.type).sampler.setTexture(EbtUint, EsdCube);
}
-#line 8668 "MachineIndependent/glslang_tab.cpp"
+#line 9350 "MachineIndependent/glslang_tab.cpp"
break;
- case 389: /* type_specifier_nonarray: UTEXTURE2DARRAY */
-#line 2722 "MachineIndependent/glslang.y"
+ case 398: /* type_specifier_nonarray: UTEXTURE2DARRAY */
+#line 2795 "MachineIndependent/glslang.y"
{
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtSampler;
(yyval.interm.type).sampler.setTexture(EbtUint, Esd2D, true);
}
-#line 8678 "MachineIndependent/glslang_tab.cpp"
+#line 9360 "MachineIndependent/glslang_tab.cpp"
break;
- case 390: /* type_specifier_nonarray: SAMPLER */
-#line 2727 "MachineIndependent/glslang.y"
+ case 399: /* type_specifier_nonarray: SAMPLER */
+#line 2800 "MachineIndependent/glslang.y"
{
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtSampler;
(yyval.interm.type).sampler.setPureSampler(false);
}
-#line 8688 "MachineIndependent/glslang_tab.cpp"
+#line 9370 "MachineIndependent/glslang_tab.cpp"
break;
- case 391: /* type_specifier_nonarray: SAMPLERSHADOW */
-#line 2732 "MachineIndependent/glslang.y"
+ case 400: /* type_specifier_nonarray: SAMPLERSHADOW */
+#line 2805 "MachineIndependent/glslang.y"
{
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtSampler;
(yyval.interm.type).sampler.setPureSampler(true);
}
-#line 8698 "MachineIndependent/glslang_tab.cpp"
+#line 9380 "MachineIndependent/glslang_tab.cpp"
break;
- case 392: /* type_specifier_nonarray: SAMPLER2DRECT */
-#line 2738 "MachineIndependent/glslang.y"
+ case 401: /* type_specifier_nonarray: SAMPLER2DRECT */
+#line 2811 "MachineIndependent/glslang.y"
{
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtSampler;
(yyval.interm.type).sampler.set(EbtFloat, EsdRect);
}
-#line 8708 "MachineIndependent/glslang_tab.cpp"
+#line 9390 "MachineIndependent/glslang_tab.cpp"
break;
- case 393: /* type_specifier_nonarray: SAMPLER2DRECTSHADOW */
-#line 2743 "MachineIndependent/glslang.y"
+ case 402: /* type_specifier_nonarray: SAMPLER2DRECTSHADOW */
+#line 2816 "MachineIndependent/glslang.y"
{
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtSampler;
(yyval.interm.type).sampler.set(EbtFloat, EsdRect, false, true);
}
-#line 8718 "MachineIndependent/glslang_tab.cpp"
+#line 9400 "MachineIndependent/glslang_tab.cpp"
break;
- case 394: /* type_specifier_nonarray: F16SAMPLER2DRECT */
-#line 2748 "MachineIndependent/glslang.y"
+ case 403: /* type_specifier_nonarray: F16SAMPLER2DRECT */
+#line 2821 "MachineIndependent/glslang.y"
{
parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float sampler", parseContext.symbolTable.atBuiltInLevel());
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtSampler;
(yyval.interm.type).sampler.set(EbtFloat16, EsdRect);
}
-#line 8729 "MachineIndependent/glslang_tab.cpp"
+#line 9411 "MachineIndependent/glslang_tab.cpp"
break;
- case 395: /* type_specifier_nonarray: F16SAMPLER2DRECTSHADOW */
-#line 2754 "MachineIndependent/glslang.y"
+ case 404: /* type_specifier_nonarray: F16SAMPLER2DRECTSHADOW */
+#line 2827 "MachineIndependent/glslang.y"
{
parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float sampler", parseContext.symbolTable.atBuiltInLevel());
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtSampler;
(yyval.interm.type).sampler.set(EbtFloat16, EsdRect, false, true);
}
-#line 8740 "MachineIndependent/glslang_tab.cpp"
+#line 9422 "MachineIndependent/glslang_tab.cpp"
break;
- case 396: /* type_specifier_nonarray: ISAMPLER2DRECT */
-#line 2760 "MachineIndependent/glslang.y"
+ case 405: /* type_specifier_nonarray: ISAMPLER2DRECT */
+#line 2833 "MachineIndependent/glslang.y"
{
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtSampler;
(yyval.interm.type).sampler.set(EbtInt, EsdRect);
}
-#line 8750 "MachineIndependent/glslang_tab.cpp"
+#line 9432 "MachineIndependent/glslang_tab.cpp"
break;
- case 397: /* type_specifier_nonarray: USAMPLER2DRECT */
-#line 2765 "MachineIndependent/glslang.y"
+ case 406: /* type_specifier_nonarray: USAMPLER2DRECT */
+#line 2838 "MachineIndependent/glslang.y"
{
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtSampler;
(yyval.interm.type).sampler.set(EbtUint, EsdRect);
}
-#line 8760 "MachineIndependent/glslang_tab.cpp"
+#line 9442 "MachineIndependent/glslang_tab.cpp"
break;
- case 398: /* type_specifier_nonarray: SAMPLERBUFFER */
-#line 2770 "MachineIndependent/glslang.y"
+ case 407: /* type_specifier_nonarray: SAMPLERBUFFER */
+#line 2843 "MachineIndependent/glslang.y"
{
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtSampler;
(yyval.interm.type).sampler.set(EbtFloat, EsdBuffer);
}
-#line 8770 "MachineIndependent/glslang_tab.cpp"
+#line 9452 "MachineIndependent/glslang_tab.cpp"
break;
- case 399: /* type_specifier_nonarray: F16SAMPLERBUFFER */
-#line 2775 "MachineIndependent/glslang.y"
+ case 408: /* type_specifier_nonarray: F16SAMPLERBUFFER */
+#line 2848 "MachineIndependent/glslang.y"
{
parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float sampler", parseContext.symbolTable.atBuiltInLevel());
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtSampler;
(yyval.interm.type).sampler.set(EbtFloat16, EsdBuffer);
}
-#line 8781 "MachineIndependent/glslang_tab.cpp"
+#line 9463 "MachineIndependent/glslang_tab.cpp"
break;
- case 400: /* type_specifier_nonarray: ISAMPLERBUFFER */
-#line 2781 "MachineIndependent/glslang.y"
+ case 409: /* type_specifier_nonarray: ISAMPLERBUFFER */
+#line 2854 "MachineIndependent/glslang.y"
{
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtSampler;
(yyval.interm.type).sampler.set(EbtInt, EsdBuffer);
}
-#line 8791 "MachineIndependent/glslang_tab.cpp"
+#line 9473 "MachineIndependent/glslang_tab.cpp"
break;
- case 401: /* type_specifier_nonarray: USAMPLERBUFFER */
-#line 2786 "MachineIndependent/glslang.y"
+ case 410: /* type_specifier_nonarray: USAMPLERBUFFER */
+#line 2859 "MachineIndependent/glslang.y"
{
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtSampler;
(yyval.interm.type).sampler.set(EbtUint, EsdBuffer);
}
-#line 8801 "MachineIndependent/glslang_tab.cpp"
+#line 9483 "MachineIndependent/glslang_tab.cpp"
break;
- case 402: /* type_specifier_nonarray: SAMPLER2DMS */
-#line 2791 "MachineIndependent/glslang.y"
+ case 411: /* type_specifier_nonarray: SAMPLER2DMS */
+#line 2864 "MachineIndependent/glslang.y"
{
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtSampler;
(yyval.interm.type).sampler.set(EbtFloat, Esd2D, false, false, true);
}
-#line 8811 "MachineIndependent/glslang_tab.cpp"
+#line 9493 "MachineIndependent/glslang_tab.cpp"
break;
- case 403: /* type_specifier_nonarray: F16SAMPLER2DMS */
-#line 2796 "MachineIndependent/glslang.y"
+ case 412: /* type_specifier_nonarray: F16SAMPLER2DMS */
+#line 2869 "MachineIndependent/glslang.y"
{
parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float sampler", parseContext.symbolTable.atBuiltInLevel());
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtSampler;
(yyval.interm.type).sampler.set(EbtFloat16, Esd2D, false, false, true);
}
-#line 8822 "MachineIndependent/glslang_tab.cpp"
+#line 9504 "MachineIndependent/glslang_tab.cpp"
break;
- case 404: /* type_specifier_nonarray: ISAMPLER2DMS */
-#line 2802 "MachineIndependent/glslang.y"
+ case 413: /* type_specifier_nonarray: ISAMPLER2DMS */
+#line 2875 "MachineIndependent/glslang.y"
{
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtSampler;
(yyval.interm.type).sampler.set(EbtInt, Esd2D, false, false, true);
}
-#line 8832 "MachineIndependent/glslang_tab.cpp"
+#line 9514 "MachineIndependent/glslang_tab.cpp"
break;
- case 405: /* type_specifier_nonarray: USAMPLER2DMS */
-#line 2807 "MachineIndependent/glslang.y"
+ case 414: /* type_specifier_nonarray: USAMPLER2DMS */
+#line 2880 "MachineIndependent/glslang.y"
{
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtSampler;
(yyval.interm.type).sampler.set(EbtUint, Esd2D, false, false, true);
}
-#line 8842 "MachineIndependent/glslang_tab.cpp"
+#line 9524 "MachineIndependent/glslang_tab.cpp"
break;
- case 406: /* type_specifier_nonarray: SAMPLER2DMSARRAY */
-#line 2812 "MachineIndependent/glslang.y"
+ case 415: /* type_specifier_nonarray: SAMPLER2DMSARRAY */
+#line 2885 "MachineIndependent/glslang.y"
{
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtSampler;
(yyval.interm.type).sampler.set(EbtFloat, Esd2D, true, false, true);
}
-#line 8852 "MachineIndependent/glslang_tab.cpp"
+#line 9534 "MachineIndependent/glslang_tab.cpp"
break;
- case 407: /* type_specifier_nonarray: F16SAMPLER2DMSARRAY */
-#line 2817 "MachineIndependent/glslang.y"
+ case 416: /* type_specifier_nonarray: F16SAMPLER2DMSARRAY */
+#line 2890 "MachineIndependent/glslang.y"
{
parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float sampler", parseContext.symbolTable.atBuiltInLevel());
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtSampler;
(yyval.interm.type).sampler.set(EbtFloat16, Esd2D, true, false, true);
}
-#line 8863 "MachineIndependent/glslang_tab.cpp"
+#line 9545 "MachineIndependent/glslang_tab.cpp"
break;
- case 408: /* type_specifier_nonarray: ISAMPLER2DMSARRAY */
-#line 2823 "MachineIndependent/glslang.y"
+ case 417: /* type_specifier_nonarray: ISAMPLER2DMSARRAY */
+#line 2896 "MachineIndependent/glslang.y"
{
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtSampler;
(yyval.interm.type).sampler.set(EbtInt, Esd2D, true, false, true);
}
-#line 8873 "MachineIndependent/glslang_tab.cpp"
+#line 9555 "MachineIndependent/glslang_tab.cpp"
break;
- case 409: /* type_specifier_nonarray: USAMPLER2DMSARRAY */
-#line 2828 "MachineIndependent/glslang.y"
+ case 418: /* type_specifier_nonarray: USAMPLER2DMSARRAY */
+#line 2901 "MachineIndependent/glslang.y"
{
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtSampler;
(yyval.interm.type).sampler.set(EbtUint, Esd2D, true, false, true);
}
-#line 8883 "MachineIndependent/glslang_tab.cpp"
+#line 9565 "MachineIndependent/glslang_tab.cpp"
break;
- case 410: /* type_specifier_nonarray: TEXTURE1D */
-#line 2833 "MachineIndependent/glslang.y"
+ case 419: /* type_specifier_nonarray: TEXTURE1D */
+#line 2906 "MachineIndependent/glslang.y"
{
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtSampler;
(yyval.interm.type).sampler.setTexture(EbtFloat, Esd1D);
}
-#line 8893 "MachineIndependent/glslang_tab.cpp"
+#line 9575 "MachineIndependent/glslang_tab.cpp"
break;
- case 411: /* type_specifier_nonarray: F16TEXTURE1D */
-#line 2838 "MachineIndependent/glslang.y"
+ case 420: /* type_specifier_nonarray: F16TEXTURE1D */
+#line 2911 "MachineIndependent/glslang.y"
{
parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float texture", parseContext.symbolTable.atBuiltInLevel());
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtSampler;
(yyval.interm.type).sampler.setTexture(EbtFloat16, Esd1D);
}
-#line 8904 "MachineIndependent/glslang_tab.cpp"
+#line 9586 "MachineIndependent/glslang_tab.cpp"
break;
- case 412: /* type_specifier_nonarray: F16TEXTURE2D */
-#line 2844 "MachineIndependent/glslang.y"
+ case 421: /* type_specifier_nonarray: F16TEXTURE2D */
+#line 2917 "MachineIndependent/glslang.y"
{
parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float texture", parseContext.symbolTable.atBuiltInLevel());
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtSampler;
(yyval.interm.type).sampler.setTexture(EbtFloat16, Esd2D);
}
-#line 8915 "MachineIndependent/glslang_tab.cpp"
+#line 9597 "MachineIndependent/glslang_tab.cpp"
break;
- case 413: /* type_specifier_nonarray: F16TEXTURE3D */
-#line 2850 "MachineIndependent/glslang.y"
+ case 422: /* type_specifier_nonarray: F16TEXTURE3D */
+#line 2923 "MachineIndependent/glslang.y"
{
parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float texture", parseContext.symbolTable.atBuiltInLevel());
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtSampler;
(yyval.interm.type).sampler.setTexture(EbtFloat16, Esd3D);
}
-#line 8926 "MachineIndependent/glslang_tab.cpp"
+#line 9608 "MachineIndependent/glslang_tab.cpp"
break;
- case 414: /* type_specifier_nonarray: F16TEXTURECUBE */
-#line 2856 "MachineIndependent/glslang.y"
+ case 423: /* type_specifier_nonarray: F16TEXTURECUBE */
+#line 2929 "MachineIndependent/glslang.y"
{
parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float texture", parseContext.symbolTable.atBuiltInLevel());
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtSampler;
(yyval.interm.type).sampler.setTexture(EbtFloat16, EsdCube);
}
-#line 8937 "MachineIndependent/glslang_tab.cpp"
+#line 9619 "MachineIndependent/glslang_tab.cpp"
break;
- case 415: /* type_specifier_nonarray: TEXTURE1DARRAY */
-#line 2862 "MachineIndependent/glslang.y"
+ case 424: /* type_specifier_nonarray: TEXTURE1DARRAY */
+#line 2935 "MachineIndependent/glslang.y"
{
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtSampler;
(yyval.interm.type).sampler.setTexture(EbtFloat, Esd1D, true);
}
-#line 8947 "MachineIndependent/glslang_tab.cpp"
+#line 9629 "MachineIndependent/glslang_tab.cpp"
break;
- case 416: /* type_specifier_nonarray: F16TEXTURE1DARRAY */
-#line 2867 "MachineIndependent/glslang.y"
+ case 425: /* type_specifier_nonarray: F16TEXTURE1DARRAY */
+#line 2940 "MachineIndependent/glslang.y"
{
parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float texture", parseContext.symbolTable.atBuiltInLevel());
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtSampler;
(yyval.interm.type).sampler.setTexture(EbtFloat16, Esd1D, true);
}
-#line 8958 "MachineIndependent/glslang_tab.cpp"
+#line 9640 "MachineIndependent/glslang_tab.cpp"
break;
- case 417: /* type_specifier_nonarray: F16TEXTURE2DARRAY */
-#line 2873 "MachineIndependent/glslang.y"
+ case 426: /* type_specifier_nonarray: F16TEXTURE2DARRAY */
+#line 2946 "MachineIndependent/glslang.y"
{
parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float texture", parseContext.symbolTable.atBuiltInLevel());
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtSampler;
(yyval.interm.type).sampler.setTexture(EbtFloat16, Esd2D, true);
}
-#line 8969 "MachineIndependent/glslang_tab.cpp"
+#line 9651 "MachineIndependent/glslang_tab.cpp"
break;
- case 418: /* type_specifier_nonarray: F16TEXTURECUBEARRAY */
-#line 2879 "MachineIndependent/glslang.y"
+ case 427: /* type_specifier_nonarray: F16TEXTURECUBEARRAY */
+#line 2952 "MachineIndependent/glslang.y"
{
parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float texture", parseContext.symbolTable.atBuiltInLevel());
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtSampler;
(yyval.interm.type).sampler.setTexture(EbtFloat16, EsdCube, true);
}
-#line 8980 "MachineIndependent/glslang_tab.cpp"
+#line 9662 "MachineIndependent/glslang_tab.cpp"
break;
- case 419: /* type_specifier_nonarray: ITEXTURE1D */
-#line 2885 "MachineIndependent/glslang.y"
+ case 428: /* type_specifier_nonarray: ITEXTURE1D */
+#line 2958 "MachineIndependent/glslang.y"
{
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtSampler;
(yyval.interm.type).sampler.setTexture(EbtInt, Esd1D);
}
-#line 8990 "MachineIndependent/glslang_tab.cpp"
+#line 9672 "MachineIndependent/glslang_tab.cpp"
break;
- case 420: /* type_specifier_nonarray: ITEXTURE1DARRAY */
-#line 2890 "MachineIndependent/glslang.y"
+ case 429: /* type_specifier_nonarray: ITEXTURE1DARRAY */
+#line 2963 "MachineIndependent/glslang.y"
{
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtSampler;
(yyval.interm.type).sampler.setTexture(EbtInt, Esd1D, true);
}
-#line 9000 "MachineIndependent/glslang_tab.cpp"
+#line 9682 "MachineIndependent/glslang_tab.cpp"
break;
- case 421: /* type_specifier_nonarray: UTEXTURE1D */
-#line 2895 "MachineIndependent/glslang.y"
+ case 430: /* type_specifier_nonarray: UTEXTURE1D */
+#line 2968 "MachineIndependent/glslang.y"
{
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtSampler;
(yyval.interm.type).sampler.setTexture(EbtUint, Esd1D);
}
-#line 9010 "MachineIndependent/glslang_tab.cpp"
+#line 9692 "MachineIndependent/glslang_tab.cpp"
break;
- case 422: /* type_specifier_nonarray: UTEXTURE1DARRAY */
-#line 2900 "MachineIndependent/glslang.y"
+ case 431: /* type_specifier_nonarray: UTEXTURE1DARRAY */
+#line 2973 "MachineIndependent/glslang.y"
{
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtSampler;
(yyval.interm.type).sampler.setTexture(EbtUint, Esd1D, true);
}
-#line 9020 "MachineIndependent/glslang_tab.cpp"
+#line 9702 "MachineIndependent/glslang_tab.cpp"
break;
- case 423: /* type_specifier_nonarray: TEXTURE2DRECT */
-#line 2905 "MachineIndependent/glslang.y"
+ case 432: /* type_specifier_nonarray: TEXTURE2DRECT */
+#line 2978 "MachineIndependent/glslang.y"
{
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtSampler;
(yyval.interm.type).sampler.setTexture(EbtFloat, EsdRect);
}
-#line 9030 "MachineIndependent/glslang_tab.cpp"
+#line 9712 "MachineIndependent/glslang_tab.cpp"
break;
- case 424: /* type_specifier_nonarray: F16TEXTURE2DRECT */
-#line 2910 "MachineIndependent/glslang.y"
+ case 433: /* type_specifier_nonarray: F16TEXTURE2DRECT */
+#line 2983 "MachineIndependent/glslang.y"
{
parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float texture", parseContext.symbolTable.atBuiltInLevel());
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtSampler;
(yyval.interm.type).sampler.setTexture(EbtFloat16, EsdRect);
}
-#line 9041 "MachineIndependent/glslang_tab.cpp"
+#line 9723 "MachineIndependent/glslang_tab.cpp"
break;
- case 425: /* type_specifier_nonarray: ITEXTURE2DRECT */
-#line 2916 "MachineIndependent/glslang.y"
+ case 434: /* type_specifier_nonarray: ITEXTURE2DRECT */
+#line 2989 "MachineIndependent/glslang.y"
{
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtSampler;
(yyval.interm.type).sampler.setTexture(EbtInt, EsdRect);
}
-#line 9051 "MachineIndependent/glslang_tab.cpp"
+#line 9733 "MachineIndependent/glslang_tab.cpp"
break;
- case 426: /* type_specifier_nonarray: UTEXTURE2DRECT */
-#line 2921 "MachineIndependent/glslang.y"
+ case 435: /* type_specifier_nonarray: UTEXTURE2DRECT */
+#line 2994 "MachineIndependent/glslang.y"
{
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtSampler;
(yyval.interm.type).sampler.setTexture(EbtUint, EsdRect);
}
-#line 9061 "MachineIndependent/glslang_tab.cpp"
+#line 9743 "MachineIndependent/glslang_tab.cpp"
break;
- case 427: /* type_specifier_nonarray: TEXTUREBUFFER */
-#line 2926 "MachineIndependent/glslang.y"
+ case 436: /* type_specifier_nonarray: TEXTUREBUFFER */
+#line 2999 "MachineIndependent/glslang.y"
{
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtSampler;
(yyval.interm.type).sampler.setTexture(EbtFloat, EsdBuffer);
}
-#line 9071 "MachineIndependent/glslang_tab.cpp"
+#line 9753 "MachineIndependent/glslang_tab.cpp"
break;
- case 428: /* type_specifier_nonarray: F16TEXTUREBUFFER */
-#line 2931 "MachineIndependent/glslang.y"
+ case 437: /* type_specifier_nonarray: F16TEXTUREBUFFER */
+#line 3004 "MachineIndependent/glslang.y"
{
parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float texture", parseContext.symbolTable.atBuiltInLevel());
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtSampler;
(yyval.interm.type).sampler.setTexture(EbtFloat16, EsdBuffer);
}
-#line 9082 "MachineIndependent/glslang_tab.cpp"
+#line 9764 "MachineIndependent/glslang_tab.cpp"
break;
- case 429: /* type_specifier_nonarray: ITEXTUREBUFFER */
-#line 2937 "MachineIndependent/glslang.y"
+ case 438: /* type_specifier_nonarray: ITEXTUREBUFFER */
+#line 3010 "MachineIndependent/glslang.y"
{
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtSampler;
(yyval.interm.type).sampler.setTexture(EbtInt, EsdBuffer);
}
-#line 9092 "MachineIndependent/glslang_tab.cpp"
+#line 9774 "MachineIndependent/glslang_tab.cpp"
break;
- case 430: /* type_specifier_nonarray: UTEXTUREBUFFER */
-#line 2942 "MachineIndependent/glslang.y"
+ case 439: /* type_specifier_nonarray: UTEXTUREBUFFER */
+#line 3015 "MachineIndependent/glslang.y"
{
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtSampler;
(yyval.interm.type).sampler.setTexture(EbtUint, EsdBuffer);
}
-#line 9102 "MachineIndependent/glslang_tab.cpp"
+#line 9784 "MachineIndependent/glslang_tab.cpp"
break;
- case 431: /* type_specifier_nonarray: TEXTURE2DMS */
-#line 2947 "MachineIndependent/glslang.y"
+ case 440: /* type_specifier_nonarray: TEXTURE2DMS */
+#line 3020 "MachineIndependent/glslang.y"
{
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtSampler;
(yyval.interm.type).sampler.setTexture(EbtFloat, Esd2D, false, false, true);
}
-#line 9112 "MachineIndependent/glslang_tab.cpp"
+#line 9794 "MachineIndependent/glslang_tab.cpp"
break;
- case 432: /* type_specifier_nonarray: F16TEXTURE2DMS */
-#line 2952 "MachineIndependent/glslang.y"
+ case 441: /* type_specifier_nonarray: F16TEXTURE2DMS */
+#line 3025 "MachineIndependent/glslang.y"
{
parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float texture", parseContext.symbolTable.atBuiltInLevel());
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtSampler;
(yyval.interm.type).sampler.setTexture(EbtFloat16, Esd2D, false, false, true);
}
-#line 9123 "MachineIndependent/glslang_tab.cpp"
+#line 9805 "MachineIndependent/glslang_tab.cpp"
break;
- case 433: /* type_specifier_nonarray: ITEXTURE2DMS */
-#line 2958 "MachineIndependent/glslang.y"
+ case 442: /* type_specifier_nonarray: ITEXTURE2DMS */
+#line 3031 "MachineIndependent/glslang.y"
{
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtSampler;
(yyval.interm.type).sampler.setTexture(EbtInt, Esd2D, false, false, true);
}
-#line 9133 "MachineIndependent/glslang_tab.cpp"
+#line 9815 "MachineIndependent/glslang_tab.cpp"
break;
- case 434: /* type_specifier_nonarray: UTEXTURE2DMS */
-#line 2963 "MachineIndependent/glslang.y"
+ case 443: /* type_specifier_nonarray: UTEXTURE2DMS */
+#line 3036 "MachineIndependent/glslang.y"
{
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtSampler;
(yyval.interm.type).sampler.setTexture(EbtUint, Esd2D, false, false, true);
}
-#line 9143 "MachineIndependent/glslang_tab.cpp"
+#line 9825 "MachineIndependent/glslang_tab.cpp"
break;
- case 435: /* type_specifier_nonarray: TEXTURE2DMSARRAY */
-#line 2968 "MachineIndependent/glslang.y"
+ case 444: /* type_specifier_nonarray: TEXTURE2DMSARRAY */
+#line 3041 "MachineIndependent/glslang.y"
{
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtSampler;
(yyval.interm.type).sampler.setTexture(EbtFloat, Esd2D, true, false, true);
}
-#line 9153 "MachineIndependent/glslang_tab.cpp"
+#line 9835 "MachineIndependent/glslang_tab.cpp"
break;
- case 436: /* type_specifier_nonarray: F16TEXTURE2DMSARRAY */
-#line 2973 "MachineIndependent/glslang.y"
+ case 445: /* type_specifier_nonarray: F16TEXTURE2DMSARRAY */
+#line 3046 "MachineIndependent/glslang.y"
{
parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float texture", parseContext.symbolTable.atBuiltInLevel());
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtSampler;
(yyval.interm.type).sampler.setTexture(EbtFloat16, Esd2D, true, false, true);
}
-#line 9164 "MachineIndependent/glslang_tab.cpp"
+#line 9846 "MachineIndependent/glslang_tab.cpp"
break;
- case 437: /* type_specifier_nonarray: ITEXTURE2DMSARRAY */
-#line 2979 "MachineIndependent/glslang.y"
+ case 446: /* type_specifier_nonarray: ITEXTURE2DMSARRAY */
+#line 3052 "MachineIndependent/glslang.y"
{
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtSampler;
(yyval.interm.type).sampler.setTexture(EbtInt, Esd2D, true, false, true);
}
-#line 9174 "MachineIndependent/glslang_tab.cpp"
+#line 9856 "MachineIndependent/glslang_tab.cpp"
break;
- case 438: /* type_specifier_nonarray: UTEXTURE2DMSARRAY */
-#line 2984 "MachineIndependent/glslang.y"
+ case 447: /* type_specifier_nonarray: UTEXTURE2DMSARRAY */
+#line 3057 "MachineIndependent/glslang.y"
{
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtSampler;
(yyval.interm.type).sampler.setTexture(EbtUint, Esd2D, true, false, true);
}
-#line 9184 "MachineIndependent/glslang_tab.cpp"
+#line 9866 "MachineIndependent/glslang_tab.cpp"
break;
- case 439: /* type_specifier_nonarray: IMAGE1D */
-#line 2989 "MachineIndependent/glslang.y"
+ case 448: /* type_specifier_nonarray: IMAGE1D */
+#line 3062 "MachineIndependent/glslang.y"
{
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtSampler;
(yyval.interm.type).sampler.setImage(EbtFloat, Esd1D);
}
-#line 9194 "MachineIndependent/glslang_tab.cpp"
+#line 9876 "MachineIndependent/glslang_tab.cpp"
break;
- case 440: /* type_specifier_nonarray: F16IMAGE1D */
-#line 2994 "MachineIndependent/glslang.y"
+ case 449: /* type_specifier_nonarray: F16IMAGE1D */
+#line 3067 "MachineIndependent/glslang.y"
{
parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float image", parseContext.symbolTable.atBuiltInLevel());
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtSampler;
(yyval.interm.type).sampler.setImage(EbtFloat16, Esd1D);
}
-#line 9205 "MachineIndependent/glslang_tab.cpp"
+#line 9887 "MachineIndependent/glslang_tab.cpp"
break;
- case 441: /* type_specifier_nonarray: IIMAGE1D */
-#line 3000 "MachineIndependent/glslang.y"
+ case 450: /* type_specifier_nonarray: IIMAGE1D */
+#line 3073 "MachineIndependent/glslang.y"
{
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtSampler;
(yyval.interm.type).sampler.setImage(EbtInt, Esd1D);
}
-#line 9215 "MachineIndependent/glslang_tab.cpp"
+#line 9897 "MachineIndependent/glslang_tab.cpp"
break;
- case 442: /* type_specifier_nonarray: UIMAGE1D */
-#line 3005 "MachineIndependent/glslang.y"
+ case 451: /* type_specifier_nonarray: UIMAGE1D */
+#line 3078 "MachineIndependent/glslang.y"
{
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtSampler;
(yyval.interm.type).sampler.setImage(EbtUint, Esd1D);
}
-#line 9225 "MachineIndependent/glslang_tab.cpp"
+#line 9907 "MachineIndependent/glslang_tab.cpp"
break;
- case 443: /* type_specifier_nonarray: IMAGE2D */
-#line 3010 "MachineIndependent/glslang.y"
+ case 452: /* type_specifier_nonarray: IMAGE2D */
+#line 3083 "MachineIndependent/glslang.y"
{
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtSampler;
(yyval.interm.type).sampler.setImage(EbtFloat, Esd2D);
}
-#line 9235 "MachineIndependent/glslang_tab.cpp"
+#line 9917 "MachineIndependent/glslang_tab.cpp"
break;
- case 444: /* type_specifier_nonarray: F16IMAGE2D */
-#line 3015 "MachineIndependent/glslang.y"
+ case 453: /* type_specifier_nonarray: F16IMAGE2D */
+#line 3088 "MachineIndependent/glslang.y"
{
parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float image", parseContext.symbolTable.atBuiltInLevel());
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtSampler;
(yyval.interm.type).sampler.setImage(EbtFloat16, Esd2D);
}
-#line 9246 "MachineIndependent/glslang_tab.cpp"
+#line 9928 "MachineIndependent/glslang_tab.cpp"
break;
- case 445: /* type_specifier_nonarray: IIMAGE2D */
-#line 3021 "MachineIndependent/glslang.y"
+ case 454: /* type_specifier_nonarray: IIMAGE2D */
+#line 3094 "MachineIndependent/glslang.y"
{
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtSampler;
(yyval.interm.type).sampler.setImage(EbtInt, Esd2D);
}
-#line 9256 "MachineIndependent/glslang_tab.cpp"
+#line 9938 "MachineIndependent/glslang_tab.cpp"
break;
- case 446: /* type_specifier_nonarray: UIMAGE2D */
-#line 3026 "MachineIndependent/glslang.y"
+ case 455: /* type_specifier_nonarray: UIMAGE2D */
+#line 3099 "MachineIndependent/glslang.y"
{
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtSampler;
(yyval.interm.type).sampler.setImage(EbtUint, Esd2D);
}
-#line 9266 "MachineIndependent/glslang_tab.cpp"
+#line 9948 "MachineIndependent/glslang_tab.cpp"
break;
- case 447: /* type_specifier_nonarray: IMAGE3D */
-#line 3031 "MachineIndependent/glslang.y"
+ case 456: /* type_specifier_nonarray: IMAGE3D */
+#line 3104 "MachineIndependent/glslang.y"
{
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtSampler;
(yyval.interm.type).sampler.setImage(EbtFloat, Esd3D);
}
-#line 9276 "MachineIndependent/glslang_tab.cpp"
+#line 9958 "MachineIndependent/glslang_tab.cpp"
break;
- case 448: /* type_specifier_nonarray: F16IMAGE3D */
-#line 3036 "MachineIndependent/glslang.y"
+ case 457: /* type_specifier_nonarray: F16IMAGE3D */
+#line 3109 "MachineIndependent/glslang.y"
{
parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float image", parseContext.symbolTable.atBuiltInLevel());
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtSampler;
(yyval.interm.type).sampler.setImage(EbtFloat16, Esd3D);
}
-#line 9287 "MachineIndependent/glslang_tab.cpp"
+#line 9969 "MachineIndependent/glslang_tab.cpp"
break;
- case 449: /* type_specifier_nonarray: IIMAGE3D */
-#line 3042 "MachineIndependent/glslang.y"
+ case 458: /* type_specifier_nonarray: IIMAGE3D */
+#line 3115 "MachineIndependent/glslang.y"
{
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtSampler;
(yyval.interm.type).sampler.setImage(EbtInt, Esd3D);
}
-#line 9297 "MachineIndependent/glslang_tab.cpp"
+#line 9979 "MachineIndependent/glslang_tab.cpp"
break;
- case 450: /* type_specifier_nonarray: UIMAGE3D */
-#line 3047 "MachineIndependent/glslang.y"
+ case 459: /* type_specifier_nonarray: UIMAGE3D */
+#line 3120 "MachineIndependent/glslang.y"
{
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtSampler;
(yyval.interm.type).sampler.setImage(EbtUint, Esd3D);
}
-#line 9307 "MachineIndependent/glslang_tab.cpp"
+#line 9989 "MachineIndependent/glslang_tab.cpp"
break;
- case 451: /* type_specifier_nonarray: IMAGE2DRECT */
-#line 3052 "MachineIndependent/glslang.y"
+ case 460: /* type_specifier_nonarray: IMAGE2DRECT */
+#line 3125 "MachineIndependent/glslang.y"
{
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtSampler;
(yyval.interm.type).sampler.setImage(EbtFloat, EsdRect);
}
-#line 9317 "MachineIndependent/glslang_tab.cpp"
+#line 9999 "MachineIndependent/glslang_tab.cpp"
break;
- case 452: /* type_specifier_nonarray: F16IMAGE2DRECT */
-#line 3057 "MachineIndependent/glslang.y"
+ case 461: /* type_specifier_nonarray: F16IMAGE2DRECT */
+#line 3130 "MachineIndependent/glslang.y"
{
parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float image", parseContext.symbolTable.atBuiltInLevel());
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtSampler;
(yyval.interm.type).sampler.setImage(EbtFloat16, EsdRect);
}
-#line 9328 "MachineIndependent/glslang_tab.cpp"
+#line 10010 "MachineIndependent/glslang_tab.cpp"
break;
- case 453: /* type_specifier_nonarray: IIMAGE2DRECT */
-#line 3063 "MachineIndependent/glslang.y"
+ case 462: /* type_specifier_nonarray: IIMAGE2DRECT */
+#line 3136 "MachineIndependent/glslang.y"
{
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtSampler;
(yyval.interm.type).sampler.setImage(EbtInt, EsdRect);
}
-#line 9338 "MachineIndependent/glslang_tab.cpp"
+#line 10020 "MachineIndependent/glslang_tab.cpp"
break;
- case 454: /* type_specifier_nonarray: UIMAGE2DRECT */
-#line 3068 "MachineIndependent/glslang.y"
+ case 463: /* type_specifier_nonarray: UIMAGE2DRECT */
+#line 3141 "MachineIndependent/glslang.y"
{
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtSampler;
(yyval.interm.type).sampler.setImage(EbtUint, EsdRect);
}
-#line 9348 "MachineIndependent/glslang_tab.cpp"
+#line 10030 "MachineIndependent/glslang_tab.cpp"
break;
- case 455: /* type_specifier_nonarray: IMAGECUBE */
-#line 3073 "MachineIndependent/glslang.y"
+ case 464: /* type_specifier_nonarray: IMAGECUBE */
+#line 3146 "MachineIndependent/glslang.y"
{
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtSampler;
(yyval.interm.type).sampler.setImage(EbtFloat, EsdCube);
}
-#line 9358 "MachineIndependent/glslang_tab.cpp"
+#line 10040 "MachineIndependent/glslang_tab.cpp"
break;
- case 456: /* type_specifier_nonarray: F16IMAGECUBE */
-#line 3078 "MachineIndependent/glslang.y"
+ case 465: /* type_specifier_nonarray: F16IMAGECUBE */
+#line 3151 "MachineIndependent/glslang.y"
{
parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float image", parseContext.symbolTable.atBuiltInLevel());
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtSampler;
(yyval.interm.type).sampler.setImage(EbtFloat16, EsdCube);
}
-#line 9369 "MachineIndependent/glslang_tab.cpp"
+#line 10051 "MachineIndependent/glslang_tab.cpp"
break;
- case 457: /* type_specifier_nonarray: IIMAGECUBE */
-#line 3084 "MachineIndependent/glslang.y"
+ case 466: /* type_specifier_nonarray: IIMAGECUBE */
+#line 3157 "MachineIndependent/glslang.y"
{
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtSampler;
(yyval.interm.type).sampler.setImage(EbtInt, EsdCube);
}
-#line 9379 "MachineIndependent/glslang_tab.cpp"
+#line 10061 "MachineIndependent/glslang_tab.cpp"
break;
- case 458: /* type_specifier_nonarray: UIMAGECUBE */
-#line 3089 "MachineIndependent/glslang.y"
+ case 467: /* type_specifier_nonarray: UIMAGECUBE */
+#line 3162 "MachineIndependent/glslang.y"
{
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtSampler;
(yyval.interm.type).sampler.setImage(EbtUint, EsdCube);
}
-#line 9389 "MachineIndependent/glslang_tab.cpp"
+#line 10071 "MachineIndependent/glslang_tab.cpp"
break;
- case 459: /* type_specifier_nonarray: IMAGEBUFFER */
-#line 3094 "MachineIndependent/glslang.y"
+ case 468: /* type_specifier_nonarray: IMAGEBUFFER */
+#line 3167 "MachineIndependent/glslang.y"
{
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtSampler;
(yyval.interm.type).sampler.setImage(EbtFloat, EsdBuffer);
}
-#line 9399 "MachineIndependent/glslang_tab.cpp"
+#line 10081 "MachineIndependent/glslang_tab.cpp"
break;
- case 460: /* type_specifier_nonarray: F16IMAGEBUFFER */
-#line 3099 "MachineIndependent/glslang.y"
+ case 469: /* type_specifier_nonarray: F16IMAGEBUFFER */
+#line 3172 "MachineIndependent/glslang.y"
{
parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float image", parseContext.symbolTable.atBuiltInLevel());
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtSampler;
(yyval.interm.type).sampler.setImage(EbtFloat16, EsdBuffer);
}
-#line 9410 "MachineIndependent/glslang_tab.cpp"
+#line 10092 "MachineIndependent/glslang_tab.cpp"
break;
- case 461: /* type_specifier_nonarray: IIMAGEBUFFER */
-#line 3105 "MachineIndependent/glslang.y"
+ case 470: /* type_specifier_nonarray: IIMAGEBUFFER */
+#line 3178 "MachineIndependent/glslang.y"
{
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtSampler;
(yyval.interm.type).sampler.setImage(EbtInt, EsdBuffer);
}
-#line 9420 "MachineIndependent/glslang_tab.cpp"
+#line 10102 "MachineIndependent/glslang_tab.cpp"
break;
- case 462: /* type_specifier_nonarray: UIMAGEBUFFER */
-#line 3110 "MachineIndependent/glslang.y"
+ case 471: /* type_specifier_nonarray: UIMAGEBUFFER */
+#line 3183 "MachineIndependent/glslang.y"
{
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtSampler;
(yyval.interm.type).sampler.setImage(EbtUint, EsdBuffer);
}
-#line 9430 "MachineIndependent/glslang_tab.cpp"
+#line 10112 "MachineIndependent/glslang_tab.cpp"
break;
- case 463: /* type_specifier_nonarray: IMAGE1DARRAY */
-#line 3115 "MachineIndependent/glslang.y"
+ case 472: /* type_specifier_nonarray: IMAGE1DARRAY */
+#line 3188 "MachineIndependent/glslang.y"
{
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtSampler;
(yyval.interm.type).sampler.setImage(EbtFloat, Esd1D, true);
}
-#line 9440 "MachineIndependent/glslang_tab.cpp"
+#line 10122 "MachineIndependent/glslang_tab.cpp"
break;
- case 464: /* type_specifier_nonarray: F16IMAGE1DARRAY */
-#line 3120 "MachineIndependent/glslang.y"
+ case 473: /* type_specifier_nonarray: F16IMAGE1DARRAY */
+#line 3193 "MachineIndependent/glslang.y"
{
parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float image", parseContext.symbolTable.atBuiltInLevel());
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtSampler;
(yyval.interm.type).sampler.setImage(EbtFloat16, Esd1D, true);
}
-#line 9451 "MachineIndependent/glslang_tab.cpp"
+#line 10133 "MachineIndependent/glslang_tab.cpp"
break;
- case 465: /* type_specifier_nonarray: IIMAGE1DARRAY */
-#line 3126 "MachineIndependent/glslang.y"
+ case 474: /* type_specifier_nonarray: IIMAGE1DARRAY */
+#line 3199 "MachineIndependent/glslang.y"
{
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtSampler;
(yyval.interm.type).sampler.setImage(EbtInt, Esd1D, true);
}
-#line 9461 "MachineIndependent/glslang_tab.cpp"
+#line 10143 "MachineIndependent/glslang_tab.cpp"
break;
- case 466: /* type_specifier_nonarray: UIMAGE1DARRAY */
-#line 3131 "MachineIndependent/glslang.y"
+ case 475: /* type_specifier_nonarray: UIMAGE1DARRAY */
+#line 3204 "MachineIndependent/glslang.y"
{
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtSampler;
(yyval.interm.type).sampler.setImage(EbtUint, Esd1D, true);
}
-#line 9471 "MachineIndependent/glslang_tab.cpp"
+#line 10153 "MachineIndependent/glslang_tab.cpp"
break;
- case 467: /* type_specifier_nonarray: IMAGE2DARRAY */
-#line 3136 "MachineIndependent/glslang.y"
+ case 476: /* type_specifier_nonarray: IMAGE2DARRAY */
+#line 3209 "MachineIndependent/glslang.y"
{
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtSampler;
(yyval.interm.type).sampler.setImage(EbtFloat, Esd2D, true);
}
-#line 9481 "MachineIndependent/glslang_tab.cpp"
+#line 10163 "MachineIndependent/glslang_tab.cpp"
break;
- case 468: /* type_specifier_nonarray: F16IMAGE2DARRAY */
-#line 3141 "MachineIndependent/glslang.y"
+ case 477: /* type_specifier_nonarray: F16IMAGE2DARRAY */
+#line 3214 "MachineIndependent/glslang.y"
{
parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float image", parseContext.symbolTable.atBuiltInLevel());
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtSampler;
(yyval.interm.type).sampler.setImage(EbtFloat16, Esd2D, true);
}
-#line 9492 "MachineIndependent/glslang_tab.cpp"
+#line 10174 "MachineIndependent/glslang_tab.cpp"
break;
- case 469: /* type_specifier_nonarray: IIMAGE2DARRAY */
-#line 3147 "MachineIndependent/glslang.y"
+ case 478: /* type_specifier_nonarray: IIMAGE2DARRAY */
+#line 3220 "MachineIndependent/glslang.y"
{
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtSampler;
(yyval.interm.type).sampler.setImage(EbtInt, Esd2D, true);
}
-#line 9502 "MachineIndependent/glslang_tab.cpp"
+#line 10184 "MachineIndependent/glslang_tab.cpp"
break;
- case 470: /* type_specifier_nonarray: UIMAGE2DARRAY */
-#line 3152 "MachineIndependent/glslang.y"
+ case 479: /* type_specifier_nonarray: UIMAGE2DARRAY */
+#line 3225 "MachineIndependent/glslang.y"
{
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtSampler;
(yyval.interm.type).sampler.setImage(EbtUint, Esd2D, true);
}
-#line 9512 "MachineIndependent/glslang_tab.cpp"
+#line 10194 "MachineIndependent/glslang_tab.cpp"
break;
- case 471: /* type_specifier_nonarray: IMAGECUBEARRAY */
-#line 3157 "MachineIndependent/glslang.y"
+ case 480: /* type_specifier_nonarray: IMAGECUBEARRAY */
+#line 3230 "MachineIndependent/glslang.y"
{
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtSampler;
(yyval.interm.type).sampler.setImage(EbtFloat, EsdCube, true);
}
-#line 9522 "MachineIndependent/glslang_tab.cpp"
+#line 10204 "MachineIndependent/glslang_tab.cpp"
break;
- case 472: /* type_specifier_nonarray: F16IMAGECUBEARRAY */
-#line 3162 "MachineIndependent/glslang.y"
+ case 481: /* type_specifier_nonarray: F16IMAGECUBEARRAY */
+#line 3235 "MachineIndependent/glslang.y"
{
parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float image", parseContext.symbolTable.atBuiltInLevel());
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtSampler;
(yyval.interm.type).sampler.setImage(EbtFloat16, EsdCube, true);
}
-#line 9533 "MachineIndependent/glslang_tab.cpp"
+#line 10215 "MachineIndependent/glslang_tab.cpp"
break;
- case 473: /* type_specifier_nonarray: IIMAGECUBEARRAY */
-#line 3168 "MachineIndependent/glslang.y"
+ case 482: /* type_specifier_nonarray: IIMAGECUBEARRAY */
+#line 3241 "MachineIndependent/glslang.y"
{
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtSampler;
(yyval.interm.type).sampler.setImage(EbtInt, EsdCube, true);
}
-#line 9543 "MachineIndependent/glslang_tab.cpp"
+#line 10225 "MachineIndependent/glslang_tab.cpp"
break;
- case 474: /* type_specifier_nonarray: UIMAGECUBEARRAY */
-#line 3173 "MachineIndependent/glslang.y"
+ case 483: /* type_specifier_nonarray: UIMAGECUBEARRAY */
+#line 3246 "MachineIndependent/glslang.y"
{
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtSampler;
(yyval.interm.type).sampler.setImage(EbtUint, EsdCube, true);
}
-#line 9553 "MachineIndependent/glslang_tab.cpp"
+#line 10235 "MachineIndependent/glslang_tab.cpp"
break;
- case 475: /* type_specifier_nonarray: IMAGE2DMS */
-#line 3178 "MachineIndependent/glslang.y"
+ case 484: /* type_specifier_nonarray: IMAGE2DMS */
+#line 3251 "MachineIndependent/glslang.y"
{
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtSampler;
(yyval.interm.type).sampler.setImage(EbtFloat, Esd2D, false, false, true);
}
-#line 9563 "MachineIndependent/glslang_tab.cpp"
+#line 10245 "MachineIndependent/glslang_tab.cpp"
break;
- case 476: /* type_specifier_nonarray: F16IMAGE2DMS */
-#line 3183 "MachineIndependent/glslang.y"
+ case 485: /* type_specifier_nonarray: F16IMAGE2DMS */
+#line 3256 "MachineIndependent/glslang.y"
{
parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float image", parseContext.symbolTable.atBuiltInLevel());
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtSampler;
(yyval.interm.type).sampler.setImage(EbtFloat16, Esd2D, false, false, true);
}
-#line 9574 "MachineIndependent/glslang_tab.cpp"
+#line 10256 "MachineIndependent/glslang_tab.cpp"
break;
- case 477: /* type_specifier_nonarray: IIMAGE2DMS */
-#line 3189 "MachineIndependent/glslang.y"
+ case 486: /* type_specifier_nonarray: IIMAGE2DMS */
+#line 3262 "MachineIndependent/glslang.y"
{
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtSampler;
(yyval.interm.type).sampler.setImage(EbtInt, Esd2D, false, false, true);
}
-#line 9584 "MachineIndependent/glslang_tab.cpp"
+#line 10266 "MachineIndependent/glslang_tab.cpp"
break;
- case 478: /* type_specifier_nonarray: UIMAGE2DMS */
-#line 3194 "MachineIndependent/glslang.y"
+ case 487: /* type_specifier_nonarray: UIMAGE2DMS */
+#line 3267 "MachineIndependent/glslang.y"
{
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtSampler;
(yyval.interm.type).sampler.setImage(EbtUint, Esd2D, false, false, true);
}
-#line 9594 "MachineIndependent/glslang_tab.cpp"
+#line 10276 "MachineIndependent/glslang_tab.cpp"
break;
- case 479: /* type_specifier_nonarray: IMAGE2DMSARRAY */
-#line 3199 "MachineIndependent/glslang.y"
+ case 488: /* type_specifier_nonarray: IMAGE2DMSARRAY */
+#line 3272 "MachineIndependent/glslang.y"
{
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtSampler;
(yyval.interm.type).sampler.setImage(EbtFloat, Esd2D, true, false, true);
}
-#line 9604 "MachineIndependent/glslang_tab.cpp"
+#line 10286 "MachineIndependent/glslang_tab.cpp"
break;
- case 480: /* type_specifier_nonarray: F16IMAGE2DMSARRAY */
-#line 3204 "MachineIndependent/glslang.y"
+ case 489: /* type_specifier_nonarray: F16IMAGE2DMSARRAY */
+#line 3277 "MachineIndependent/glslang.y"
{
parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float image", parseContext.symbolTable.atBuiltInLevel());
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtSampler;
(yyval.interm.type).sampler.setImage(EbtFloat16, Esd2D, true, false, true);
}
-#line 9615 "MachineIndependent/glslang_tab.cpp"
+#line 10297 "MachineIndependent/glslang_tab.cpp"
break;
- case 481: /* type_specifier_nonarray: IIMAGE2DMSARRAY */
-#line 3210 "MachineIndependent/glslang.y"
+ case 490: /* type_specifier_nonarray: IIMAGE2DMSARRAY */
+#line 3283 "MachineIndependent/glslang.y"
{
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtSampler;
(yyval.interm.type).sampler.setImage(EbtInt, Esd2D, true, false, true);
}
-#line 9625 "MachineIndependent/glslang_tab.cpp"
+#line 10307 "MachineIndependent/glslang_tab.cpp"
break;
- case 482: /* type_specifier_nonarray: UIMAGE2DMSARRAY */
-#line 3215 "MachineIndependent/glslang.y"
+ case 491: /* type_specifier_nonarray: UIMAGE2DMSARRAY */
+#line 3288 "MachineIndependent/glslang.y"
{
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtSampler;
(yyval.interm.type).sampler.setImage(EbtUint, Esd2D, true, false, true);
}
-#line 9635 "MachineIndependent/glslang_tab.cpp"
+#line 10317 "MachineIndependent/glslang_tab.cpp"
break;
- case 483: /* type_specifier_nonarray: I64IMAGE1D */
-#line 3220 "MachineIndependent/glslang.y"
+ case 492: /* type_specifier_nonarray: I64IMAGE1D */
+#line 3293 "MachineIndependent/glslang.y"
{
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtSampler;
(yyval.interm.type).sampler.setImage(EbtInt64, Esd1D);
}
-#line 9645 "MachineIndependent/glslang_tab.cpp"
+#line 10327 "MachineIndependent/glslang_tab.cpp"
break;
- case 484: /* type_specifier_nonarray: U64IMAGE1D */
-#line 3225 "MachineIndependent/glslang.y"
+ case 493: /* type_specifier_nonarray: U64IMAGE1D */
+#line 3298 "MachineIndependent/glslang.y"
{
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtSampler;
(yyval.interm.type).sampler.setImage(EbtUint64, Esd1D);
}
-#line 9655 "MachineIndependent/glslang_tab.cpp"
+#line 10337 "MachineIndependent/glslang_tab.cpp"
break;
- case 485: /* type_specifier_nonarray: I64IMAGE2D */
-#line 3230 "MachineIndependent/glslang.y"
+ case 494: /* type_specifier_nonarray: I64IMAGE2D */
+#line 3303 "MachineIndependent/glslang.y"
{
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtSampler;
(yyval.interm.type).sampler.setImage(EbtInt64, Esd2D);
}
-#line 9665 "MachineIndependent/glslang_tab.cpp"
+#line 10347 "MachineIndependent/glslang_tab.cpp"
break;
- case 486: /* type_specifier_nonarray: U64IMAGE2D */
-#line 3235 "MachineIndependent/glslang.y"
+ case 495: /* type_specifier_nonarray: U64IMAGE2D */
+#line 3308 "MachineIndependent/glslang.y"
{
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtSampler;
(yyval.interm.type).sampler.setImage(EbtUint64, Esd2D);
}
-#line 9675 "MachineIndependent/glslang_tab.cpp"
+#line 10357 "MachineIndependent/glslang_tab.cpp"
break;
- case 487: /* type_specifier_nonarray: I64IMAGE3D */
-#line 3240 "MachineIndependent/glslang.y"
+ case 496: /* type_specifier_nonarray: I64IMAGE3D */
+#line 3313 "MachineIndependent/glslang.y"
{
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtSampler;
(yyval.interm.type).sampler.setImage(EbtInt64, Esd3D);
}
-#line 9685 "MachineIndependent/glslang_tab.cpp"
+#line 10367 "MachineIndependent/glslang_tab.cpp"
break;
- case 488: /* type_specifier_nonarray: U64IMAGE3D */
-#line 3245 "MachineIndependent/glslang.y"
+ case 497: /* type_specifier_nonarray: U64IMAGE3D */
+#line 3318 "MachineIndependent/glslang.y"
{
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtSampler;
(yyval.interm.type).sampler.setImage(EbtUint64, Esd3D);
}
-#line 9695 "MachineIndependent/glslang_tab.cpp"
+#line 10377 "MachineIndependent/glslang_tab.cpp"
break;
- case 489: /* type_specifier_nonarray: I64IMAGE2DRECT */
-#line 3250 "MachineIndependent/glslang.y"
+ case 498: /* type_specifier_nonarray: I64IMAGE2DRECT */
+#line 3323 "MachineIndependent/glslang.y"
{
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtSampler;
(yyval.interm.type).sampler.setImage(EbtInt64, EsdRect);
}
-#line 9705 "MachineIndependent/glslang_tab.cpp"
+#line 10387 "MachineIndependent/glslang_tab.cpp"
break;
- case 490: /* type_specifier_nonarray: U64IMAGE2DRECT */
-#line 3255 "MachineIndependent/glslang.y"
+ case 499: /* type_specifier_nonarray: U64IMAGE2DRECT */
+#line 3328 "MachineIndependent/glslang.y"
{
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtSampler;
(yyval.interm.type).sampler.setImage(EbtUint64, EsdRect);
}
-#line 9715 "MachineIndependent/glslang_tab.cpp"
+#line 10397 "MachineIndependent/glslang_tab.cpp"
break;
- case 491: /* type_specifier_nonarray: I64IMAGECUBE */
-#line 3260 "MachineIndependent/glslang.y"
+ case 500: /* type_specifier_nonarray: I64IMAGECUBE */
+#line 3333 "MachineIndependent/glslang.y"
{
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtSampler;
(yyval.interm.type).sampler.setImage(EbtInt64, EsdCube);
}
-#line 9725 "MachineIndependent/glslang_tab.cpp"
+#line 10407 "MachineIndependent/glslang_tab.cpp"
break;
- case 492: /* type_specifier_nonarray: U64IMAGECUBE */
-#line 3265 "MachineIndependent/glslang.y"
+ case 501: /* type_specifier_nonarray: U64IMAGECUBE */
+#line 3338 "MachineIndependent/glslang.y"
{
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtSampler;
(yyval.interm.type).sampler.setImage(EbtUint64, EsdCube);
}
-#line 9735 "MachineIndependent/glslang_tab.cpp"
+#line 10417 "MachineIndependent/glslang_tab.cpp"
break;
- case 493: /* type_specifier_nonarray: I64IMAGEBUFFER */
-#line 3270 "MachineIndependent/glslang.y"
+ case 502: /* type_specifier_nonarray: I64IMAGEBUFFER */
+#line 3343 "MachineIndependent/glslang.y"
{
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtSampler;
(yyval.interm.type).sampler.setImage(EbtInt64, EsdBuffer);
}
-#line 9745 "MachineIndependent/glslang_tab.cpp"
+#line 10427 "MachineIndependent/glslang_tab.cpp"
break;
- case 494: /* type_specifier_nonarray: U64IMAGEBUFFER */
-#line 3275 "MachineIndependent/glslang.y"
+ case 503: /* type_specifier_nonarray: U64IMAGEBUFFER */
+#line 3348 "MachineIndependent/glslang.y"
{
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtSampler;
(yyval.interm.type).sampler.setImage(EbtUint64, EsdBuffer);
}
-#line 9755 "MachineIndependent/glslang_tab.cpp"
+#line 10437 "MachineIndependent/glslang_tab.cpp"
break;
- case 495: /* type_specifier_nonarray: I64IMAGE1DARRAY */
-#line 3280 "MachineIndependent/glslang.y"
+ case 504: /* type_specifier_nonarray: I64IMAGE1DARRAY */
+#line 3353 "MachineIndependent/glslang.y"
{
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtSampler;
(yyval.interm.type).sampler.setImage(EbtInt64, Esd1D, true);
}
-#line 9765 "MachineIndependent/glslang_tab.cpp"
+#line 10447 "MachineIndependent/glslang_tab.cpp"
break;
- case 496: /* type_specifier_nonarray: U64IMAGE1DARRAY */
-#line 3285 "MachineIndependent/glslang.y"
+ case 505: /* type_specifier_nonarray: U64IMAGE1DARRAY */
+#line 3358 "MachineIndependent/glslang.y"
{
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtSampler;
(yyval.interm.type).sampler.setImage(EbtUint64, Esd1D, true);
}
-#line 9775 "MachineIndependent/glslang_tab.cpp"
+#line 10457 "MachineIndependent/glslang_tab.cpp"
break;
- case 497: /* type_specifier_nonarray: I64IMAGE2DARRAY */
-#line 3290 "MachineIndependent/glslang.y"
+ case 506: /* type_specifier_nonarray: I64IMAGE2DARRAY */
+#line 3363 "MachineIndependent/glslang.y"
{
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtSampler;
(yyval.interm.type).sampler.setImage(EbtInt64, Esd2D, true);
}
-#line 9785 "MachineIndependent/glslang_tab.cpp"
+#line 10467 "MachineIndependent/glslang_tab.cpp"
break;
- case 498: /* type_specifier_nonarray: U64IMAGE2DARRAY */
-#line 3295 "MachineIndependent/glslang.y"
+ case 507: /* type_specifier_nonarray: U64IMAGE2DARRAY */
+#line 3368 "MachineIndependent/glslang.y"
{
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtSampler;
(yyval.interm.type).sampler.setImage(EbtUint64, Esd2D, true);
}
-#line 9795 "MachineIndependent/glslang_tab.cpp"
+#line 10477 "MachineIndependent/glslang_tab.cpp"
break;
- case 499: /* type_specifier_nonarray: I64IMAGECUBEARRAY */
-#line 3300 "MachineIndependent/glslang.y"
+ case 508: /* type_specifier_nonarray: I64IMAGECUBEARRAY */
+#line 3373 "MachineIndependent/glslang.y"
{
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtSampler;
(yyval.interm.type).sampler.setImage(EbtInt64, EsdCube, true);
}
-#line 9805 "MachineIndependent/glslang_tab.cpp"
+#line 10487 "MachineIndependent/glslang_tab.cpp"
break;
- case 500: /* type_specifier_nonarray: U64IMAGECUBEARRAY */
-#line 3305 "MachineIndependent/glslang.y"
+ case 509: /* type_specifier_nonarray: U64IMAGECUBEARRAY */
+#line 3378 "MachineIndependent/glslang.y"
{
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtSampler;
(yyval.interm.type).sampler.setImage(EbtUint64, EsdCube, true);
}
-#line 9815 "MachineIndependent/glslang_tab.cpp"
+#line 10497 "MachineIndependent/glslang_tab.cpp"
break;
- case 501: /* type_specifier_nonarray: I64IMAGE2DMS */
-#line 3310 "MachineIndependent/glslang.y"
+ case 510: /* type_specifier_nonarray: I64IMAGE2DMS */
+#line 3383 "MachineIndependent/glslang.y"
{
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtSampler;
(yyval.interm.type).sampler.setImage(EbtInt64, Esd2D, false, false, true);
}
-#line 9825 "MachineIndependent/glslang_tab.cpp"
+#line 10507 "MachineIndependent/glslang_tab.cpp"
break;
- case 502: /* type_specifier_nonarray: U64IMAGE2DMS */
-#line 3315 "MachineIndependent/glslang.y"
+ case 511: /* type_specifier_nonarray: U64IMAGE2DMS */
+#line 3388 "MachineIndependent/glslang.y"
{
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtSampler;
(yyval.interm.type).sampler.setImage(EbtUint64, Esd2D, false, false, true);
}
-#line 9835 "MachineIndependent/glslang_tab.cpp"
+#line 10517 "MachineIndependent/glslang_tab.cpp"
break;
- case 503: /* type_specifier_nonarray: I64IMAGE2DMSARRAY */
-#line 3320 "MachineIndependent/glslang.y"
+ case 512: /* type_specifier_nonarray: I64IMAGE2DMSARRAY */
+#line 3393 "MachineIndependent/glslang.y"
{
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtSampler;
(yyval.interm.type).sampler.setImage(EbtInt64, Esd2D, true, false, true);
}
-#line 9845 "MachineIndependent/glslang_tab.cpp"
+#line 10527 "MachineIndependent/glslang_tab.cpp"
break;
- case 504: /* type_specifier_nonarray: U64IMAGE2DMSARRAY */
-#line 3325 "MachineIndependent/glslang.y"
+ case 513: /* type_specifier_nonarray: U64IMAGE2DMSARRAY */
+#line 3398 "MachineIndependent/glslang.y"
{
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtSampler;
(yyval.interm.type).sampler.setImage(EbtUint64, Esd2D, true, false, true);
}
-#line 9855 "MachineIndependent/glslang_tab.cpp"
+#line 10537 "MachineIndependent/glslang_tab.cpp"
break;
- case 505: /* type_specifier_nonarray: SAMPLEREXTERNALOES */
-#line 3330 "MachineIndependent/glslang.y"
+ case 514: /* type_specifier_nonarray: SAMPLEREXTERNALOES */
+#line 3403 "MachineIndependent/glslang.y"
{ // GL_OES_EGL_image_external
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtSampler;
(yyval.interm.type).sampler.set(EbtFloat, Esd2D);
(yyval.interm.type).sampler.external = true;
}
-#line 9866 "MachineIndependent/glslang_tab.cpp"
+#line 10548 "MachineIndependent/glslang_tab.cpp"
break;
- case 506: /* type_specifier_nonarray: SAMPLEREXTERNAL2DY2YEXT */
-#line 3336 "MachineIndependent/glslang.y"
+ case 515: /* type_specifier_nonarray: SAMPLEREXTERNAL2DY2YEXT */
+#line 3409 "MachineIndependent/glslang.y"
{ // GL_EXT_YUV_target
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtSampler;
(yyval.interm.type).sampler.set(EbtFloat, Esd2D);
(yyval.interm.type).sampler.yuv = true;
}
-#line 9877 "MachineIndependent/glslang_tab.cpp"
+#line 10559 "MachineIndependent/glslang_tab.cpp"
break;
- case 507: /* type_specifier_nonarray: SUBPASSINPUT */
-#line 3342 "MachineIndependent/glslang.y"
+ case 516: /* type_specifier_nonarray: SUBPASSINPUT */
+#line 3415 "MachineIndependent/glslang.y"
{
parseContext.requireStage((yyvsp[0].lex).loc, EShLangFragment, "subpass input");
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtSampler;
(yyval.interm.type).sampler.setSubpass(EbtFloat);
}
-#line 9888 "MachineIndependent/glslang_tab.cpp"
+#line 10570 "MachineIndependent/glslang_tab.cpp"
break;
- case 508: /* type_specifier_nonarray: SUBPASSINPUTMS */
-#line 3348 "MachineIndependent/glslang.y"
+ case 517: /* type_specifier_nonarray: SUBPASSINPUTMS */
+#line 3421 "MachineIndependent/glslang.y"
{
parseContext.requireStage((yyvsp[0].lex).loc, EShLangFragment, "subpass input");
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtSampler;
(yyval.interm.type).sampler.setSubpass(EbtFloat, true);
}
-#line 9899 "MachineIndependent/glslang_tab.cpp"
+#line 10581 "MachineIndependent/glslang_tab.cpp"
break;
- case 509: /* type_specifier_nonarray: F16SUBPASSINPUT */
-#line 3354 "MachineIndependent/glslang.y"
+ case 518: /* type_specifier_nonarray: F16SUBPASSINPUT */
+#line 3427 "MachineIndependent/glslang.y"
{
parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float subpass input", parseContext.symbolTable.atBuiltInLevel());
parseContext.requireStage((yyvsp[0].lex).loc, EShLangFragment, "subpass input");
@@ -9907,11 +10589,11 @@ yyreduce:
(yyval.interm.type).basicType = EbtSampler;
(yyval.interm.type).sampler.setSubpass(EbtFloat16);
}
-#line 9911 "MachineIndependent/glslang_tab.cpp"
+#line 10593 "MachineIndependent/glslang_tab.cpp"
break;
- case 510: /* type_specifier_nonarray: F16SUBPASSINPUTMS */
-#line 3361 "MachineIndependent/glslang.y"
+ case 519: /* type_specifier_nonarray: F16SUBPASSINPUTMS */
+#line 3434 "MachineIndependent/glslang.y"
{
parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float subpass input", parseContext.symbolTable.atBuiltInLevel());
parseContext.requireStage((yyvsp[0].lex).loc, EShLangFragment, "subpass input");
@@ -9919,98 +10601,107 @@ yyreduce:
(yyval.interm.type).basicType = EbtSampler;
(yyval.interm.type).sampler.setSubpass(EbtFloat16, true);
}
-#line 9923 "MachineIndependent/glslang_tab.cpp"
+#line 10605 "MachineIndependent/glslang_tab.cpp"
break;
- case 511: /* type_specifier_nonarray: ISUBPASSINPUT */
-#line 3368 "MachineIndependent/glslang.y"
+ case 520: /* type_specifier_nonarray: ISUBPASSINPUT */
+#line 3441 "MachineIndependent/glslang.y"
{
parseContext.requireStage((yyvsp[0].lex).loc, EShLangFragment, "subpass input");
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtSampler;
(yyval.interm.type).sampler.setSubpass(EbtInt);
}
-#line 9934 "MachineIndependent/glslang_tab.cpp"
+#line 10616 "MachineIndependent/glslang_tab.cpp"
break;
- case 512: /* type_specifier_nonarray: ISUBPASSINPUTMS */
-#line 3374 "MachineIndependent/glslang.y"
+ case 521: /* type_specifier_nonarray: ISUBPASSINPUTMS */
+#line 3447 "MachineIndependent/glslang.y"
{
parseContext.requireStage((yyvsp[0].lex).loc, EShLangFragment, "subpass input");
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtSampler;
(yyval.interm.type).sampler.setSubpass(EbtInt, true);
}
-#line 9945 "MachineIndependent/glslang_tab.cpp"
+#line 10627 "MachineIndependent/glslang_tab.cpp"
break;
- case 513: /* type_specifier_nonarray: USUBPASSINPUT */
-#line 3380 "MachineIndependent/glslang.y"
+ case 522: /* type_specifier_nonarray: USUBPASSINPUT */
+#line 3453 "MachineIndependent/glslang.y"
{
parseContext.requireStage((yyvsp[0].lex).loc, EShLangFragment, "subpass input");
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtSampler;
(yyval.interm.type).sampler.setSubpass(EbtUint);
}
-#line 9956 "MachineIndependent/glslang_tab.cpp"
+#line 10638 "MachineIndependent/glslang_tab.cpp"
break;
- case 514: /* type_specifier_nonarray: USUBPASSINPUTMS */
-#line 3386 "MachineIndependent/glslang.y"
+ case 523: /* type_specifier_nonarray: USUBPASSINPUTMS */
+#line 3459 "MachineIndependent/glslang.y"
{
parseContext.requireStage((yyvsp[0].lex).loc, EShLangFragment, "subpass input");
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtSampler;
(yyval.interm.type).sampler.setSubpass(EbtUint, true);
}
-#line 9967 "MachineIndependent/glslang_tab.cpp"
+#line 10649 "MachineIndependent/glslang_tab.cpp"
break;
- case 515: /* type_specifier_nonarray: FCOOPMATNV */
-#line 3392 "MachineIndependent/glslang.y"
+ case 524: /* type_specifier_nonarray: FCOOPMATNV */
+#line 3465 "MachineIndependent/glslang.y"
{
parseContext.fcoopmatCheck((yyvsp[0].lex).loc, "fcoopmatNV", parseContext.symbolTable.atBuiltInLevel());
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtFloat;
(yyval.interm.type).coopmat = true;
}
-#line 9978 "MachineIndependent/glslang_tab.cpp"
+#line 10660 "MachineIndependent/glslang_tab.cpp"
break;
- case 516: /* type_specifier_nonarray: ICOOPMATNV */
-#line 3398 "MachineIndependent/glslang.y"
+ case 525: /* type_specifier_nonarray: ICOOPMATNV */
+#line 3471 "MachineIndependent/glslang.y"
{
parseContext.intcoopmatCheck((yyvsp[0].lex).loc, "icoopmatNV", parseContext.symbolTable.atBuiltInLevel());
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtInt;
(yyval.interm.type).coopmat = true;
}
-#line 9989 "MachineIndependent/glslang_tab.cpp"
+#line 10671 "MachineIndependent/glslang_tab.cpp"
break;
- case 517: /* type_specifier_nonarray: UCOOPMATNV */
-#line 3404 "MachineIndependent/glslang.y"
+ case 526: /* type_specifier_nonarray: UCOOPMATNV */
+#line 3477 "MachineIndependent/glslang.y"
{
parseContext.intcoopmatCheck((yyvsp[0].lex).loc, "ucoopmatNV", parseContext.symbolTable.atBuiltInLevel());
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtUint;
(yyval.interm.type).coopmat = true;
}
-#line 10000 "MachineIndependent/glslang_tab.cpp"
+#line 10682 "MachineIndependent/glslang_tab.cpp"
break;
- case 518: /* type_specifier_nonarray: struct_specifier */
-#line 3411 "MachineIndependent/glslang.y"
+ case 527: /* type_specifier_nonarray: spirv_type_specifier */
+#line 3483 "MachineIndependent/glslang.y"
+ {
+ parseContext.requireExtensions((yyvsp[0].interm.type).loc, 1, &E_GL_EXT_spirv_intrinsics, "SPIR-V type specifier");
+ (yyval.interm.type) = (yyvsp[0].interm.type);
+ }
+#line 10691 "MachineIndependent/glslang_tab.cpp"
+ break;
+
+ case 528: /* type_specifier_nonarray: struct_specifier */
+#line 3488 "MachineIndependent/glslang.y"
{
(yyval.interm.type) = (yyvsp[0].interm.type);
(yyval.interm.type).qualifier.storage = parseContext.symbolTable.atGlobalLevel() ? EvqGlobal : EvqTemporary;
parseContext.structTypeCheck((yyval.interm.type).loc, (yyval.interm.type));
}
-#line 10010 "MachineIndependent/glslang_tab.cpp"
+#line 10701 "MachineIndependent/glslang_tab.cpp"
break;
- case 519: /* type_specifier_nonarray: TYPE_NAME */
-#line 3416 "MachineIndependent/glslang.y"
+ case 529: /* type_specifier_nonarray: TYPE_NAME */
+#line 3493 "MachineIndependent/glslang.y"
{
//
// This is for user defined type names. The lexical phase looked up the
@@ -10024,47 +10715,47 @@ yyreduce:
} else
parseContext.error((yyvsp[0].lex).loc, "expected type name", (yyvsp[0].lex).string->c_str(), "");
}
-#line 10028 "MachineIndependent/glslang_tab.cpp"
+#line 10719 "MachineIndependent/glslang_tab.cpp"
break;
- case 520: /* precision_qualifier: HIGH_PRECISION */
-#line 3432 "MachineIndependent/glslang.y"
+ case 530: /* precision_qualifier: HIGH_PRECISION */
+#line 3509 "MachineIndependent/glslang.y"
{
parseContext.profileRequires((yyvsp[0].lex).loc, ENoProfile, 130, 0, "highp precision qualifier");
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
parseContext.handlePrecisionQualifier((yyvsp[0].lex).loc, (yyval.interm.type).qualifier, EpqHigh);
}
-#line 10038 "MachineIndependent/glslang_tab.cpp"
+#line 10729 "MachineIndependent/glslang_tab.cpp"
break;
- case 521: /* precision_qualifier: MEDIUM_PRECISION */
-#line 3437 "MachineIndependent/glslang.y"
+ case 531: /* precision_qualifier: MEDIUM_PRECISION */
+#line 3514 "MachineIndependent/glslang.y"
{
parseContext.profileRequires((yyvsp[0].lex).loc, ENoProfile, 130, 0, "mediump precision qualifier");
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
parseContext.handlePrecisionQualifier((yyvsp[0].lex).loc, (yyval.interm.type).qualifier, EpqMedium);
}
-#line 10048 "MachineIndependent/glslang_tab.cpp"
+#line 10739 "MachineIndependent/glslang_tab.cpp"
break;
- case 522: /* precision_qualifier: LOW_PRECISION */
-#line 3442 "MachineIndependent/glslang.y"
+ case 532: /* precision_qualifier: LOW_PRECISION */
+#line 3519 "MachineIndependent/glslang.y"
{
parseContext.profileRequires((yyvsp[0].lex).loc, ENoProfile, 130, 0, "lowp precision qualifier");
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
parseContext.handlePrecisionQualifier((yyvsp[0].lex).loc, (yyval.interm.type).qualifier, EpqLow);
}
-#line 10058 "MachineIndependent/glslang_tab.cpp"
+#line 10749 "MachineIndependent/glslang_tab.cpp"
break;
- case 523: /* $@3: %empty */
-#line 3450 "MachineIndependent/glslang.y"
+ case 533: /* $@3: %empty */
+#line 3527 "MachineIndependent/glslang.y"
{ parseContext.nestedStructCheck((yyvsp[-2].lex).loc); }
-#line 10064 "MachineIndependent/glslang_tab.cpp"
+#line 10755 "MachineIndependent/glslang_tab.cpp"
break;
- case 524: /* struct_specifier: STRUCT IDENTIFIER LEFT_BRACE $@3 struct_declaration_list RIGHT_BRACE */
-#line 3450 "MachineIndependent/glslang.y"
+ case 534: /* struct_specifier: STRUCT IDENTIFIER LEFT_BRACE $@3 struct_declaration_list RIGHT_BRACE */
+#line 3527 "MachineIndependent/glslang.y"
{
TType* structure = new TType((yyvsp[-1].interm.typeList), *(yyvsp[-4].lex).string);
parseContext.structArrayCheck((yyvsp[-4].lex).loc, *structure);
@@ -10076,17 +10767,17 @@ yyreduce:
(yyval.interm.type).userDef = structure;
--parseContext.structNestingLevel;
}
-#line 10080 "MachineIndependent/glslang_tab.cpp"
+#line 10771 "MachineIndependent/glslang_tab.cpp"
break;
- case 525: /* $@4: %empty */
-#line 3461 "MachineIndependent/glslang.y"
+ case 535: /* $@4: %empty */
+#line 3538 "MachineIndependent/glslang.y"
{ parseContext.nestedStructCheck((yyvsp[-1].lex).loc); }
-#line 10086 "MachineIndependent/glslang_tab.cpp"
+#line 10777 "MachineIndependent/glslang_tab.cpp"
break;
- case 526: /* struct_specifier: STRUCT LEFT_BRACE $@4 struct_declaration_list RIGHT_BRACE */
-#line 3461 "MachineIndependent/glslang.y"
+ case 536: /* struct_specifier: STRUCT LEFT_BRACE $@4 struct_declaration_list RIGHT_BRACE */
+#line 3538 "MachineIndependent/glslang.y"
{
TType* structure = new TType((yyvsp[-1].interm.typeList), TString(""));
(yyval.interm.type).init((yyvsp[-4].lex).loc);
@@ -10094,19 +10785,19 @@ yyreduce:
(yyval.interm.type).userDef = structure;
--parseContext.structNestingLevel;
}
-#line 10098 "MachineIndependent/glslang_tab.cpp"
+#line 10789 "MachineIndependent/glslang_tab.cpp"
break;
- case 527: /* struct_declaration_list: struct_declaration */
-#line 3471 "MachineIndependent/glslang.y"
+ case 537: /* struct_declaration_list: struct_declaration */
+#line 3548 "MachineIndependent/glslang.y"
{
(yyval.interm.typeList) = (yyvsp[0].interm.typeList);
}
-#line 10106 "MachineIndependent/glslang_tab.cpp"
+#line 10797 "MachineIndependent/glslang_tab.cpp"
break;
- case 528: /* struct_declaration_list: struct_declaration_list struct_declaration */
-#line 3474 "MachineIndependent/glslang.y"
+ case 538: /* struct_declaration_list: struct_declaration_list struct_declaration */
+#line 3551 "MachineIndependent/glslang.y"
{
(yyval.interm.typeList) = (yyvsp[-1].interm.typeList);
for (unsigned int i = 0; i < (yyvsp[0].interm.typeList)->size(); ++i) {
@@ -10117,11 +10808,11 @@ yyreduce:
(yyval.interm.typeList)->push_back((*(yyvsp[0].interm.typeList))[i]);
}
}
-#line 10121 "MachineIndependent/glslang_tab.cpp"
+#line 10812 "MachineIndependent/glslang_tab.cpp"
break;
- case 529: /* struct_declaration: type_specifier struct_declarator_list SEMICOLON */
-#line 3487 "MachineIndependent/glslang.y"
+ case 539: /* struct_declaration: type_specifier struct_declarator_list SEMICOLON */
+#line 3564 "MachineIndependent/glslang.y"
{
if ((yyvsp[-2].interm.type).arraySizes) {
parseContext.profileRequires((yyvsp[-2].interm.type).loc, ENoProfile, 120, E_GL_3DL_array_objects, "arrayed type");
@@ -10144,11 +10835,11 @@ yyreduce:
(*(yyval.interm.typeList))[i].type->shallowCopy(type);
}
}
-#line 10148 "MachineIndependent/glslang_tab.cpp"
+#line 10839 "MachineIndependent/glslang_tab.cpp"
break;
- case 530: /* struct_declaration: type_qualifier type_specifier struct_declarator_list SEMICOLON */
-#line 3509 "MachineIndependent/glslang.y"
+ case 540: /* struct_declaration: type_qualifier type_specifier struct_declarator_list SEMICOLON */
+#line 3586 "MachineIndependent/glslang.y"
{
if ((yyvsp[-2].interm.type).arraySizes) {
parseContext.profileRequires((yyvsp[-2].interm.type).loc, ENoProfile, 120, E_GL_3DL_array_objects, "arrayed type");
@@ -10173,38 +10864,38 @@ yyreduce:
(*(yyval.interm.typeList))[i].type->shallowCopy(type);
}
}
-#line 10177 "MachineIndependent/glslang_tab.cpp"
+#line 10868 "MachineIndependent/glslang_tab.cpp"
break;
- case 531: /* struct_declarator_list: struct_declarator */
-#line 3536 "MachineIndependent/glslang.y"
+ case 541: /* struct_declarator_list: struct_declarator */
+#line 3613 "MachineIndependent/glslang.y"
{
(yyval.interm.typeList) = new TTypeList;
(yyval.interm.typeList)->push_back((yyvsp[0].interm.typeLine));
}
-#line 10186 "MachineIndependent/glslang_tab.cpp"
+#line 10877 "MachineIndependent/glslang_tab.cpp"
break;
- case 532: /* struct_declarator_list: struct_declarator_list COMMA struct_declarator */
-#line 3540 "MachineIndependent/glslang.y"
+ case 542: /* struct_declarator_list: struct_declarator_list COMMA struct_declarator */
+#line 3617 "MachineIndependent/glslang.y"
{
(yyval.interm.typeList)->push_back((yyvsp[0].interm.typeLine));
}
-#line 10194 "MachineIndependent/glslang_tab.cpp"
+#line 10885 "MachineIndependent/glslang_tab.cpp"
break;
- case 533: /* struct_declarator: IDENTIFIER */
-#line 3546 "MachineIndependent/glslang.y"
+ case 543: /* struct_declarator: IDENTIFIER */
+#line 3623 "MachineIndependent/glslang.y"
{
(yyval.interm.typeLine).type = new TType(EbtVoid);
(yyval.interm.typeLine).loc = (yyvsp[0].lex).loc;
(yyval.interm.typeLine).type->setFieldName(*(yyvsp[0].lex).string);
}
-#line 10204 "MachineIndependent/glslang_tab.cpp"
+#line 10895 "MachineIndependent/glslang_tab.cpp"
break;
- case 534: /* struct_declarator: IDENTIFIER array_specifier */
-#line 3551 "MachineIndependent/glslang.y"
+ case 544: /* struct_declarator: IDENTIFIER array_specifier */
+#line 3628 "MachineIndependent/glslang.y"
{
parseContext.arrayOfArrayVersionCheck((yyvsp[-1].lex).loc, (yyvsp[0].interm).arraySizes);
@@ -10213,235 +10904,246 @@ yyreduce:
(yyval.interm.typeLine).type->setFieldName(*(yyvsp[-1].lex).string);
(yyval.interm.typeLine).type->transferArraySizes((yyvsp[0].interm).arraySizes);
}
-#line 10217 "MachineIndependent/glslang_tab.cpp"
+#line 10908 "MachineIndependent/glslang_tab.cpp"
break;
- case 535: /* initializer: assignment_expression */
-#line 3562 "MachineIndependent/glslang.y"
+ case 545: /* initializer: assignment_expression */
+#line 3639 "MachineIndependent/glslang.y"
{
(yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode);
}
-#line 10225 "MachineIndependent/glslang_tab.cpp"
+#line 10916 "MachineIndependent/glslang_tab.cpp"
break;
- case 536: /* initializer: LEFT_BRACE initializer_list RIGHT_BRACE */
-#line 3566 "MachineIndependent/glslang.y"
+ case 546: /* initializer: LEFT_BRACE initializer_list RIGHT_BRACE */
+#line 3643 "MachineIndependent/glslang.y"
{
const char* initFeature = "{ } style initializers";
parseContext.requireProfile((yyvsp[-2].lex).loc, ~EEsProfile, initFeature);
parseContext.profileRequires((yyvsp[-2].lex).loc, ~EEsProfile, 420, E_GL_ARB_shading_language_420pack, initFeature);
(yyval.interm.intermTypedNode) = (yyvsp[-1].interm.intermTypedNode);
}
-#line 10236 "MachineIndependent/glslang_tab.cpp"
+#line 10927 "MachineIndependent/glslang_tab.cpp"
break;
- case 537: /* initializer: LEFT_BRACE initializer_list COMMA RIGHT_BRACE */
-#line 3572 "MachineIndependent/glslang.y"
+ case 547: /* initializer: LEFT_BRACE initializer_list COMMA RIGHT_BRACE */
+#line 3649 "MachineIndependent/glslang.y"
{
const char* initFeature = "{ } style initializers";
parseContext.requireProfile((yyvsp[-3].lex).loc, ~EEsProfile, initFeature);
parseContext.profileRequires((yyvsp[-3].lex).loc, ~EEsProfile, 420, E_GL_ARB_shading_language_420pack, initFeature);
(yyval.interm.intermTypedNode) = (yyvsp[-2].interm.intermTypedNode);
}
-#line 10247 "MachineIndependent/glslang_tab.cpp"
+#line 10938 "MachineIndependent/glslang_tab.cpp"
break;
- case 538: /* initializer_list: initializer */
-#line 3583 "MachineIndependent/glslang.y"
+ case 548: /* initializer: LEFT_BRACE RIGHT_BRACE */
+#line 3655 "MachineIndependent/glslang.y"
+ {
+ const char* initFeature = "empty { } initializer";
+ parseContext.profileRequires((yyvsp[-1].lex).loc, EEsProfile, 0, E_GL_EXT_null_initializer, initFeature);
+ parseContext.profileRequires((yyvsp[-1].lex).loc, ~EEsProfile, 0, E_GL_EXT_null_initializer, initFeature);
+ (yyval.interm.intermTypedNode) = parseContext.intermediate.makeAggregate((yyvsp[-1].lex).loc);
+ }
+#line 10949 "MachineIndependent/glslang_tab.cpp"
+ break;
+
+ case 549: /* initializer_list: initializer */
+#line 3666 "MachineIndependent/glslang.y"
{
(yyval.interm.intermTypedNode) = parseContext.intermediate.growAggregate(0, (yyvsp[0].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode)->getLoc());
}
-#line 10255 "MachineIndependent/glslang_tab.cpp"
+#line 10957 "MachineIndependent/glslang_tab.cpp"
break;
- case 539: /* initializer_list: initializer_list COMMA initializer */
-#line 3586 "MachineIndependent/glslang.y"
+ case 550: /* initializer_list: initializer_list COMMA initializer */
+#line 3669 "MachineIndependent/glslang.y"
{
(yyval.interm.intermTypedNode) = parseContext.intermediate.growAggregate((yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode));
}
-#line 10263 "MachineIndependent/glslang_tab.cpp"
+#line 10965 "MachineIndependent/glslang_tab.cpp"
break;
- case 540: /* declaration_statement: declaration */
-#line 3593 "MachineIndependent/glslang.y"
+ case 551: /* declaration_statement: declaration */
+#line 3676 "MachineIndependent/glslang.y"
{ (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); }
-#line 10269 "MachineIndependent/glslang_tab.cpp"
+#line 10971 "MachineIndependent/glslang_tab.cpp"
break;
- case 541: /* statement: compound_statement */
-#line 3597 "MachineIndependent/glslang.y"
+ case 552: /* statement: compound_statement */
+#line 3680 "MachineIndependent/glslang.y"
{ (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); }
-#line 10275 "MachineIndependent/glslang_tab.cpp"
+#line 10977 "MachineIndependent/glslang_tab.cpp"
break;
- case 542: /* statement: simple_statement */
-#line 3598 "MachineIndependent/glslang.y"
+ case 553: /* statement: simple_statement */
+#line 3681 "MachineIndependent/glslang.y"
{ (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); }
-#line 10281 "MachineIndependent/glslang_tab.cpp"
+#line 10983 "MachineIndependent/glslang_tab.cpp"
break;
- case 543: /* simple_statement: declaration_statement */
-#line 3604 "MachineIndependent/glslang.y"
+ case 554: /* simple_statement: declaration_statement */
+#line 3687 "MachineIndependent/glslang.y"
{ (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); }
-#line 10287 "MachineIndependent/glslang_tab.cpp"
+#line 10989 "MachineIndependent/glslang_tab.cpp"
break;
- case 544: /* simple_statement: expression_statement */
-#line 3605 "MachineIndependent/glslang.y"
+ case 555: /* simple_statement: expression_statement */
+#line 3688 "MachineIndependent/glslang.y"
{ (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); }
-#line 10293 "MachineIndependent/glslang_tab.cpp"
+#line 10995 "MachineIndependent/glslang_tab.cpp"
break;
- case 545: /* simple_statement: selection_statement */
-#line 3606 "MachineIndependent/glslang.y"
+ case 556: /* simple_statement: selection_statement */
+#line 3689 "MachineIndependent/glslang.y"
{ (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); }
-#line 10299 "MachineIndependent/glslang_tab.cpp"
+#line 11001 "MachineIndependent/glslang_tab.cpp"
break;
- case 546: /* simple_statement: switch_statement */
-#line 3607 "MachineIndependent/glslang.y"
+ case 557: /* simple_statement: switch_statement */
+#line 3690 "MachineIndependent/glslang.y"
{ (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); }
-#line 10305 "MachineIndependent/glslang_tab.cpp"
+#line 11007 "MachineIndependent/glslang_tab.cpp"
break;
- case 547: /* simple_statement: case_label */
-#line 3608 "MachineIndependent/glslang.y"
+ case 558: /* simple_statement: case_label */
+#line 3691 "MachineIndependent/glslang.y"
{ (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); }
-#line 10311 "MachineIndependent/glslang_tab.cpp"
+#line 11013 "MachineIndependent/glslang_tab.cpp"
break;
- case 548: /* simple_statement: iteration_statement */
-#line 3609 "MachineIndependent/glslang.y"
+ case 559: /* simple_statement: iteration_statement */
+#line 3692 "MachineIndependent/glslang.y"
{ (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); }
-#line 10317 "MachineIndependent/glslang_tab.cpp"
+#line 11019 "MachineIndependent/glslang_tab.cpp"
break;
- case 549: /* simple_statement: jump_statement */
-#line 3610 "MachineIndependent/glslang.y"
+ case 560: /* simple_statement: jump_statement */
+#line 3693 "MachineIndependent/glslang.y"
{ (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); }
-#line 10323 "MachineIndependent/glslang_tab.cpp"
+#line 11025 "MachineIndependent/glslang_tab.cpp"
break;
- case 550: /* simple_statement: demote_statement */
-#line 3612 "MachineIndependent/glslang.y"
+ case 561: /* simple_statement: demote_statement */
+#line 3695 "MachineIndependent/glslang.y"
{ (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); }
-#line 10329 "MachineIndependent/glslang_tab.cpp"
+#line 11031 "MachineIndependent/glslang_tab.cpp"
break;
- case 551: /* demote_statement: DEMOTE SEMICOLON */
-#line 3618 "MachineIndependent/glslang.y"
+ case 562: /* demote_statement: DEMOTE SEMICOLON */
+#line 3701 "MachineIndependent/glslang.y"
{
parseContext.requireStage((yyvsp[-1].lex).loc, EShLangFragment, "demote");
parseContext.requireExtensions((yyvsp[-1].lex).loc, 1, &E_GL_EXT_demote_to_helper_invocation, "demote");
(yyval.interm.intermNode) = parseContext.intermediate.addBranch(EOpDemote, (yyvsp[-1].lex).loc);
}
-#line 10339 "MachineIndependent/glslang_tab.cpp"
+#line 11041 "MachineIndependent/glslang_tab.cpp"
break;
- case 552: /* compound_statement: LEFT_BRACE RIGHT_BRACE */
-#line 3627 "MachineIndependent/glslang.y"
+ case 563: /* compound_statement: LEFT_BRACE RIGHT_BRACE */
+#line 3710 "MachineIndependent/glslang.y"
{ (yyval.interm.intermNode) = 0; }
-#line 10345 "MachineIndependent/glslang_tab.cpp"
+#line 11047 "MachineIndependent/glslang_tab.cpp"
break;
- case 553: /* $@5: %empty */
-#line 3628 "MachineIndependent/glslang.y"
+ case 564: /* $@5: %empty */
+#line 3711 "MachineIndependent/glslang.y"
{
parseContext.symbolTable.push();
++parseContext.statementNestingLevel;
}
-#line 10354 "MachineIndependent/glslang_tab.cpp"
+#line 11056 "MachineIndependent/glslang_tab.cpp"
break;
- case 554: /* $@6: %empty */
-#line 3632 "MachineIndependent/glslang.y"
+ case 565: /* $@6: %empty */
+#line 3715 "MachineIndependent/glslang.y"
{
parseContext.symbolTable.pop(&parseContext.defaultPrecision[0]);
--parseContext.statementNestingLevel;
}
-#line 10363 "MachineIndependent/glslang_tab.cpp"
+#line 11065 "MachineIndependent/glslang_tab.cpp"
break;
- case 555: /* compound_statement: LEFT_BRACE $@5 statement_list $@6 RIGHT_BRACE */
-#line 3636 "MachineIndependent/glslang.y"
+ case 566: /* compound_statement: LEFT_BRACE $@5 statement_list $@6 RIGHT_BRACE */
+#line 3719 "MachineIndependent/glslang.y"
{
if ((yyvsp[-2].interm.intermNode) && (yyvsp[-2].interm.intermNode)->getAsAggregate())
(yyvsp[-2].interm.intermNode)->getAsAggregate()->setOperator(EOpSequence);
(yyval.interm.intermNode) = (yyvsp[-2].interm.intermNode);
}
-#line 10373 "MachineIndependent/glslang_tab.cpp"
+#line 11075 "MachineIndependent/glslang_tab.cpp"
break;
- case 556: /* statement_no_new_scope: compound_statement_no_new_scope */
-#line 3644 "MachineIndependent/glslang.y"
+ case 567: /* statement_no_new_scope: compound_statement_no_new_scope */
+#line 3727 "MachineIndependent/glslang.y"
{ (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); }
-#line 10379 "MachineIndependent/glslang_tab.cpp"
+#line 11081 "MachineIndependent/glslang_tab.cpp"
break;
- case 557: /* statement_no_new_scope: simple_statement */
-#line 3645 "MachineIndependent/glslang.y"
+ case 568: /* statement_no_new_scope: simple_statement */
+#line 3728 "MachineIndependent/glslang.y"
{ (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); }
-#line 10385 "MachineIndependent/glslang_tab.cpp"
+#line 11087 "MachineIndependent/glslang_tab.cpp"
break;
- case 558: /* $@7: %empty */
-#line 3649 "MachineIndependent/glslang.y"
+ case 569: /* $@7: %empty */
+#line 3732 "MachineIndependent/glslang.y"
{
++parseContext.controlFlowNestingLevel;
}
-#line 10393 "MachineIndependent/glslang_tab.cpp"
+#line 11095 "MachineIndependent/glslang_tab.cpp"
break;
- case 559: /* statement_scoped: $@7 compound_statement */
-#line 3652 "MachineIndependent/glslang.y"
+ case 570: /* statement_scoped: $@7 compound_statement */
+#line 3735 "MachineIndependent/glslang.y"
{
--parseContext.controlFlowNestingLevel;
(yyval.interm.intermNode) = (yyvsp[0].interm.intermNode);
}
-#line 10402 "MachineIndependent/glslang_tab.cpp"
+#line 11104 "MachineIndependent/glslang_tab.cpp"
break;
- case 560: /* $@8: %empty */
-#line 3656 "MachineIndependent/glslang.y"
+ case 571: /* $@8: %empty */
+#line 3739 "MachineIndependent/glslang.y"
{
parseContext.symbolTable.push();
++parseContext.statementNestingLevel;
++parseContext.controlFlowNestingLevel;
}
-#line 10412 "MachineIndependent/glslang_tab.cpp"
+#line 11114 "MachineIndependent/glslang_tab.cpp"
break;
- case 561: /* statement_scoped: $@8 simple_statement */
-#line 3661 "MachineIndependent/glslang.y"
+ case 572: /* statement_scoped: $@8 simple_statement */
+#line 3744 "MachineIndependent/glslang.y"
{
parseContext.symbolTable.pop(&parseContext.defaultPrecision[0]);
--parseContext.statementNestingLevel;
--parseContext.controlFlowNestingLevel;
(yyval.interm.intermNode) = (yyvsp[0].interm.intermNode);
}
-#line 10423 "MachineIndependent/glslang_tab.cpp"
+#line 11125 "MachineIndependent/glslang_tab.cpp"
break;
- case 562: /* compound_statement_no_new_scope: LEFT_BRACE RIGHT_BRACE */
-#line 3670 "MachineIndependent/glslang.y"
+ case 573: /* compound_statement_no_new_scope: LEFT_BRACE RIGHT_BRACE */
+#line 3753 "MachineIndependent/glslang.y"
{
(yyval.interm.intermNode) = 0;
}
-#line 10431 "MachineIndependent/glslang_tab.cpp"
+#line 11133 "MachineIndependent/glslang_tab.cpp"
break;
- case 563: /* compound_statement_no_new_scope: LEFT_BRACE statement_list RIGHT_BRACE */
-#line 3673 "MachineIndependent/glslang.y"
+ case 574: /* compound_statement_no_new_scope: LEFT_BRACE statement_list RIGHT_BRACE */
+#line 3756 "MachineIndependent/glslang.y"
{
if ((yyvsp[-1].interm.intermNode) && (yyvsp[-1].interm.intermNode)->getAsAggregate())
(yyvsp[-1].interm.intermNode)->getAsAggregate()->setOperator(EOpSequence);
(yyval.interm.intermNode) = (yyvsp[-1].interm.intermNode);
}
-#line 10441 "MachineIndependent/glslang_tab.cpp"
+#line 11143 "MachineIndependent/glslang_tab.cpp"
break;
- case 564: /* statement_list: statement */
-#line 3681 "MachineIndependent/glslang.y"
+ case 575: /* statement_list: statement */
+#line 3764 "MachineIndependent/glslang.y"
{
(yyval.interm.intermNode) = parseContext.intermediate.makeAggregate((yyvsp[0].interm.intermNode));
if ((yyvsp[0].interm.intermNode) && (yyvsp[0].interm.intermNode)->getAsBranchNode() && ((yyvsp[0].interm.intermNode)->getAsBranchNode()->getFlowOp() == EOpCase ||
@@ -10450,11 +11152,11 @@ yyreduce:
(yyval.interm.intermNode) = 0; // start a fresh subsequence for what's after this case
}
}
-#line 10454 "MachineIndependent/glslang_tab.cpp"
+#line 11156 "MachineIndependent/glslang_tab.cpp"
break;
- case 565: /* statement_list: statement_list statement */
-#line 3689 "MachineIndependent/glslang.y"
+ case 576: /* statement_list: statement_list statement */
+#line 3772 "MachineIndependent/glslang.y"
{
if ((yyvsp[0].interm.intermNode) && (yyvsp[0].interm.intermNode)->getAsBranchNode() && ((yyvsp[0].interm.intermNode)->getAsBranchNode()->getFlowOp() == EOpCase ||
(yyvsp[0].interm.intermNode)->getAsBranchNode()->getFlowOp() == EOpDefault)) {
@@ -10463,76 +11165,77 @@ yyreduce:
} else
(yyval.interm.intermNode) = parseContext.intermediate.growAggregate((yyvsp[-1].interm.intermNode), (yyvsp[0].interm.intermNode));
}
-#line 10467 "MachineIndependent/glslang_tab.cpp"
+#line 11169 "MachineIndependent/glslang_tab.cpp"
break;
- case 566: /* expression_statement: SEMICOLON */
-#line 3700 "MachineIndependent/glslang.y"
+ case 577: /* expression_statement: SEMICOLON */
+#line 3783 "MachineIndependent/glslang.y"
{ (yyval.interm.intermNode) = 0; }
-#line 10473 "MachineIndependent/glslang_tab.cpp"
+#line 11175 "MachineIndependent/glslang_tab.cpp"
break;
- case 567: /* expression_statement: expression SEMICOLON */
-#line 3701 "MachineIndependent/glslang.y"
+ case 578: /* expression_statement: expression SEMICOLON */
+#line 3784 "MachineIndependent/glslang.y"
{ (yyval.interm.intermNode) = static_cast<TIntermNode*>((yyvsp[-1].interm.intermTypedNode)); }
-#line 10479 "MachineIndependent/glslang_tab.cpp"
+#line 11181 "MachineIndependent/glslang_tab.cpp"
break;
- case 568: /* selection_statement: selection_statement_nonattributed */
-#line 3705 "MachineIndependent/glslang.y"
+ case 579: /* selection_statement: selection_statement_nonattributed */
+#line 3788 "MachineIndependent/glslang.y"
{
(yyval.interm.intermNode) = (yyvsp[0].interm.intermNode);
}
-#line 10487 "MachineIndependent/glslang_tab.cpp"
+#line 11189 "MachineIndependent/glslang_tab.cpp"
break;
- case 569: /* selection_statement: attribute selection_statement_nonattributed */
-#line 3709 "MachineIndependent/glslang.y"
+ case 580: /* selection_statement: attribute selection_statement_nonattributed */
+#line 3792 "MachineIndependent/glslang.y"
{
+ parseContext.requireExtensions((yyvsp[0].interm.intermNode)->getLoc(), 1, &E_GL_EXT_control_flow_attributes, "attribute");
parseContext.handleSelectionAttributes(*(yyvsp[-1].interm.attributes), (yyvsp[0].interm.intermNode));
(yyval.interm.intermNode) = (yyvsp[0].interm.intermNode);
}
-#line 10496 "MachineIndependent/glslang_tab.cpp"
+#line 11199 "MachineIndependent/glslang_tab.cpp"
break;
- case 570: /* selection_statement_nonattributed: IF LEFT_PAREN expression RIGHT_PAREN selection_rest_statement */
-#line 3716 "MachineIndependent/glslang.y"
+ case 581: /* selection_statement_nonattributed: IF LEFT_PAREN expression RIGHT_PAREN selection_rest_statement */
+#line 3800 "MachineIndependent/glslang.y"
{
parseContext.boolCheck((yyvsp[-4].lex).loc, (yyvsp[-2].interm.intermTypedNode));
(yyval.interm.intermNode) = parseContext.intermediate.addSelection((yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.nodePair), (yyvsp[-4].lex).loc);
}
-#line 10505 "MachineIndependent/glslang_tab.cpp"
+#line 11208 "MachineIndependent/glslang_tab.cpp"
break;
- case 571: /* selection_rest_statement: statement_scoped ELSE statement_scoped */
-#line 3723 "MachineIndependent/glslang.y"
+ case 582: /* selection_rest_statement: statement_scoped ELSE statement_scoped */
+#line 3807 "MachineIndependent/glslang.y"
{
(yyval.interm.nodePair).node1 = (yyvsp[-2].interm.intermNode);
(yyval.interm.nodePair).node2 = (yyvsp[0].interm.intermNode);
}
-#line 10514 "MachineIndependent/glslang_tab.cpp"
+#line 11217 "MachineIndependent/glslang_tab.cpp"
break;
- case 572: /* selection_rest_statement: statement_scoped */
-#line 3727 "MachineIndependent/glslang.y"
+ case 583: /* selection_rest_statement: statement_scoped */
+#line 3811 "MachineIndependent/glslang.y"
{
(yyval.interm.nodePair).node1 = (yyvsp[0].interm.intermNode);
(yyval.interm.nodePair).node2 = 0;
}
-#line 10523 "MachineIndependent/glslang_tab.cpp"
+#line 11226 "MachineIndependent/glslang_tab.cpp"
break;
- case 573: /* condition: expression */
-#line 3735 "MachineIndependent/glslang.y"
+ case 584: /* condition: expression */
+#line 3819 "MachineIndependent/glslang.y"
{
(yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode);
parseContext.boolCheck((yyvsp[0].interm.intermTypedNode)->getLoc(), (yyvsp[0].interm.intermTypedNode));
}
-#line 10532 "MachineIndependent/glslang_tab.cpp"
+#line 11235 "MachineIndependent/glslang_tab.cpp"
break;
- case 574: /* condition: fully_specified_type IDENTIFIER EQUAL initializer */
-#line 3739 "MachineIndependent/glslang.y"
+ case 585: /* condition: fully_specified_type IDENTIFIER EQUAL initializer */
+#line 3823 "MachineIndependent/glslang.y"
{
parseContext.boolCheck((yyvsp[-2].lex).loc, (yyvsp[-3].interm.type));
@@ -10543,28 +11246,29 @@ yyreduce:
else
(yyval.interm.intermTypedNode) = 0;
}
-#line 10547 "MachineIndependent/glslang_tab.cpp"
+#line 11250 "MachineIndependent/glslang_tab.cpp"
break;
- case 575: /* switch_statement: switch_statement_nonattributed */
-#line 3752 "MachineIndependent/glslang.y"
+ case 586: /* switch_statement: switch_statement_nonattributed */
+#line 3836 "MachineIndependent/glslang.y"
{
(yyval.interm.intermNode) = (yyvsp[0].interm.intermNode);
}
-#line 10555 "MachineIndependent/glslang_tab.cpp"
+#line 11258 "MachineIndependent/glslang_tab.cpp"
break;
- case 576: /* switch_statement: attribute switch_statement_nonattributed */
-#line 3756 "MachineIndependent/glslang.y"
+ case 587: /* switch_statement: attribute switch_statement_nonattributed */
+#line 3840 "MachineIndependent/glslang.y"
{
+ parseContext.requireExtensions((yyvsp[0].interm.intermNode)->getLoc(), 1, &E_GL_EXT_control_flow_attributes, "attribute");
parseContext.handleSwitchAttributes(*(yyvsp[-1].interm.attributes), (yyvsp[0].interm.intermNode));
(yyval.interm.intermNode) = (yyvsp[0].interm.intermNode);
}
-#line 10564 "MachineIndependent/glslang_tab.cpp"
+#line 11268 "MachineIndependent/glslang_tab.cpp"
break;
- case 577: /* $@9: %empty */
-#line 3763 "MachineIndependent/glslang.y"
+ case 588: /* $@9: %empty */
+#line 3848 "MachineIndependent/glslang.y"
{
// start new switch sequence on the switch stack
++parseContext.controlFlowNestingLevel;
@@ -10573,11 +11277,11 @@ yyreduce:
parseContext.switchLevel.push_back(parseContext.statementNestingLevel);
parseContext.symbolTable.push();
}
-#line 10577 "MachineIndependent/glslang_tab.cpp"
+#line 11281 "MachineIndependent/glslang_tab.cpp"
break;
- case 578: /* switch_statement_nonattributed: SWITCH LEFT_PAREN expression RIGHT_PAREN $@9 LEFT_BRACE switch_statement_list RIGHT_BRACE */
-#line 3771 "MachineIndependent/glslang.y"
+ case 589: /* switch_statement_nonattributed: SWITCH LEFT_PAREN expression RIGHT_PAREN $@9 LEFT_BRACE switch_statement_list RIGHT_BRACE */
+#line 3856 "MachineIndependent/glslang.y"
{
(yyval.interm.intermNode) = parseContext.addSwitch((yyvsp[-7].lex).loc, (yyvsp[-5].interm.intermTypedNode), (yyvsp[-1].interm.intermNode) ? (yyvsp[-1].interm.intermNode)->getAsAggregate() : 0);
delete parseContext.switchSequenceStack.back();
@@ -10587,27 +11291,27 @@ yyreduce:
--parseContext.statementNestingLevel;
--parseContext.controlFlowNestingLevel;
}
-#line 10591 "MachineIndependent/glslang_tab.cpp"
+#line 11295 "MachineIndependent/glslang_tab.cpp"
break;
- case 579: /* switch_statement_list: %empty */
-#line 3783 "MachineIndependent/glslang.y"
+ case 590: /* switch_statement_list: %empty */
+#line 3868 "MachineIndependent/glslang.y"
{
(yyval.interm.intermNode) = 0;
}
-#line 10599 "MachineIndependent/glslang_tab.cpp"
+#line 11303 "MachineIndependent/glslang_tab.cpp"
break;
- case 580: /* switch_statement_list: statement_list */
-#line 3786 "MachineIndependent/glslang.y"
+ case 591: /* switch_statement_list: statement_list */
+#line 3871 "MachineIndependent/glslang.y"
{
(yyval.interm.intermNode) = (yyvsp[0].interm.intermNode);
}
-#line 10607 "MachineIndependent/glslang_tab.cpp"
+#line 11311 "MachineIndependent/glslang_tab.cpp"
break;
- case 581: /* case_label: CASE expression COLON */
-#line 3792 "MachineIndependent/glslang.y"
+ case 592: /* case_label: CASE expression COLON */
+#line 3877 "MachineIndependent/glslang.y"
{
(yyval.interm.intermNode) = 0;
if (parseContext.switchLevel.size() == 0)
@@ -10620,11 +11324,11 @@ yyreduce:
(yyval.interm.intermNode) = parseContext.intermediate.addBranch(EOpCase, (yyvsp[-1].interm.intermTypedNode), (yyvsp[-2].lex).loc);
}
}
-#line 10624 "MachineIndependent/glslang_tab.cpp"
+#line 11328 "MachineIndependent/glslang_tab.cpp"
break;
- case 582: /* case_label: DEFAULT COLON */
-#line 3804 "MachineIndependent/glslang.y"
+ case 593: /* case_label: DEFAULT COLON */
+#line 3889 "MachineIndependent/glslang.y"
{
(yyval.interm.intermNode) = 0;
if (parseContext.switchLevel.size() == 0)
@@ -10634,28 +11338,29 @@ yyreduce:
else
(yyval.interm.intermNode) = parseContext.intermediate.addBranch(EOpDefault, (yyvsp[-1].lex).loc);
}
-#line 10638 "MachineIndependent/glslang_tab.cpp"
+#line 11342 "MachineIndependent/glslang_tab.cpp"
break;
- case 583: /* iteration_statement: iteration_statement_nonattributed */
-#line 3816 "MachineIndependent/glslang.y"
+ case 594: /* iteration_statement: iteration_statement_nonattributed */
+#line 3901 "MachineIndependent/glslang.y"
{
(yyval.interm.intermNode) = (yyvsp[0].interm.intermNode);
}
-#line 10646 "MachineIndependent/glslang_tab.cpp"
+#line 11350 "MachineIndependent/glslang_tab.cpp"
break;
- case 584: /* iteration_statement: attribute iteration_statement_nonattributed */
-#line 3820 "MachineIndependent/glslang.y"
+ case 595: /* iteration_statement: attribute iteration_statement_nonattributed */
+#line 3905 "MachineIndependent/glslang.y"
{
+ parseContext.requireExtensions((yyvsp[0].interm.intermNode)->getLoc(), 1, &E_GL_EXT_control_flow_attributes, "attribute");
parseContext.handleLoopAttributes(*(yyvsp[-1].interm.attributes), (yyvsp[0].interm.intermNode));
(yyval.interm.intermNode) = (yyvsp[0].interm.intermNode);
}
-#line 10655 "MachineIndependent/glslang_tab.cpp"
+#line 11360 "MachineIndependent/glslang_tab.cpp"
break;
- case 585: /* $@10: %empty */
-#line 3827 "MachineIndependent/glslang.y"
+ case 596: /* $@10: %empty */
+#line 3913 "MachineIndependent/glslang.y"
{
if (! parseContext.limits.whileLoops)
parseContext.error((yyvsp[-1].lex).loc, "while loops not available", "limitation", "");
@@ -10664,11 +11369,11 @@ yyreduce:
++parseContext.statementNestingLevel;
++parseContext.controlFlowNestingLevel;
}
-#line 10668 "MachineIndependent/glslang_tab.cpp"
+#line 11373 "MachineIndependent/glslang_tab.cpp"
break;
- case 586: /* iteration_statement_nonattributed: WHILE LEFT_PAREN $@10 condition RIGHT_PAREN statement_no_new_scope */
-#line 3835 "MachineIndependent/glslang.y"
+ case 597: /* iteration_statement_nonattributed: WHILE LEFT_PAREN $@10 condition RIGHT_PAREN statement_no_new_scope */
+#line 3921 "MachineIndependent/glslang.y"
{
parseContext.symbolTable.pop(&parseContext.defaultPrecision[0]);
(yyval.interm.intermNode) = parseContext.intermediate.addLoop((yyvsp[0].interm.intermNode), (yyvsp[-2].interm.intermTypedNode), 0, true, (yyvsp[-5].lex).loc);
@@ -10676,21 +11381,21 @@ yyreduce:
--parseContext.statementNestingLevel;
--parseContext.controlFlowNestingLevel;
}
-#line 10680 "MachineIndependent/glslang_tab.cpp"
+#line 11385 "MachineIndependent/glslang_tab.cpp"
break;
- case 587: /* $@11: %empty */
-#line 3842 "MachineIndependent/glslang.y"
+ case 598: /* $@11: %empty */
+#line 3928 "MachineIndependent/glslang.y"
{
++parseContext.loopNestingLevel;
++parseContext.statementNestingLevel;
++parseContext.controlFlowNestingLevel;
}
-#line 10690 "MachineIndependent/glslang_tab.cpp"
+#line 11395 "MachineIndependent/glslang_tab.cpp"
break;
- case 588: /* iteration_statement_nonattributed: DO $@11 statement WHILE LEFT_PAREN expression RIGHT_PAREN SEMICOLON */
-#line 3847 "MachineIndependent/glslang.y"
+ case 599: /* iteration_statement_nonattributed: DO $@11 statement WHILE LEFT_PAREN expression RIGHT_PAREN SEMICOLON */
+#line 3933 "MachineIndependent/glslang.y"
{
if (! parseContext.limits.whileLoops)
parseContext.error((yyvsp[-7].lex).loc, "do-while loops not available", "limitation", "");
@@ -10702,22 +11407,22 @@ yyreduce:
--parseContext.statementNestingLevel;
--parseContext.controlFlowNestingLevel;
}
-#line 10706 "MachineIndependent/glslang_tab.cpp"
+#line 11411 "MachineIndependent/glslang_tab.cpp"
break;
- case 589: /* $@12: %empty */
-#line 3858 "MachineIndependent/glslang.y"
+ case 600: /* $@12: %empty */
+#line 3944 "MachineIndependent/glslang.y"
{
parseContext.symbolTable.push();
++parseContext.loopNestingLevel;
++parseContext.statementNestingLevel;
++parseContext.controlFlowNestingLevel;
}
-#line 10717 "MachineIndependent/glslang_tab.cpp"
+#line 11422 "MachineIndependent/glslang_tab.cpp"
break;
- case 590: /* iteration_statement_nonattributed: FOR LEFT_PAREN $@12 for_init_statement for_rest_statement RIGHT_PAREN statement_no_new_scope */
-#line 3864 "MachineIndependent/glslang.y"
+ case 601: /* iteration_statement_nonattributed: FOR LEFT_PAREN $@12 for_init_statement for_rest_statement RIGHT_PAREN statement_no_new_scope */
+#line 3950 "MachineIndependent/glslang.y"
{
parseContext.symbolTable.pop(&parseContext.defaultPrecision[0]);
(yyval.interm.intermNode) = parseContext.intermediate.makeAggregate((yyvsp[-3].interm.intermNode), (yyvsp[-5].lex).loc);
@@ -10730,81 +11435,81 @@ yyreduce:
--parseContext.statementNestingLevel;
--parseContext.controlFlowNestingLevel;
}
-#line 10734 "MachineIndependent/glslang_tab.cpp"
+#line 11439 "MachineIndependent/glslang_tab.cpp"
break;
- case 591: /* for_init_statement: expression_statement */
-#line 3879 "MachineIndependent/glslang.y"
+ case 602: /* for_init_statement: expression_statement */
+#line 3965 "MachineIndependent/glslang.y"
{
(yyval.interm.intermNode) = (yyvsp[0].interm.intermNode);
}
-#line 10742 "MachineIndependent/glslang_tab.cpp"
+#line 11447 "MachineIndependent/glslang_tab.cpp"
break;
- case 592: /* for_init_statement: declaration_statement */
-#line 3882 "MachineIndependent/glslang.y"
+ case 603: /* for_init_statement: declaration_statement */
+#line 3968 "MachineIndependent/glslang.y"
{
(yyval.interm.intermNode) = (yyvsp[0].interm.intermNode);
}
-#line 10750 "MachineIndependent/glslang_tab.cpp"
+#line 11455 "MachineIndependent/glslang_tab.cpp"
break;
- case 593: /* conditionopt: condition */
-#line 3888 "MachineIndependent/glslang.y"
+ case 604: /* conditionopt: condition */
+#line 3974 "MachineIndependent/glslang.y"
{
(yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode);
}
-#line 10758 "MachineIndependent/glslang_tab.cpp"
+#line 11463 "MachineIndependent/glslang_tab.cpp"
break;
- case 594: /* conditionopt: %empty */
-#line 3891 "MachineIndependent/glslang.y"
+ case 605: /* conditionopt: %empty */
+#line 3977 "MachineIndependent/glslang.y"
{
(yyval.interm.intermTypedNode) = 0;
}
-#line 10766 "MachineIndependent/glslang_tab.cpp"
+#line 11471 "MachineIndependent/glslang_tab.cpp"
break;
- case 595: /* for_rest_statement: conditionopt SEMICOLON */
-#line 3897 "MachineIndependent/glslang.y"
+ case 606: /* for_rest_statement: conditionopt SEMICOLON */
+#line 3983 "MachineIndependent/glslang.y"
{
(yyval.interm.nodePair).node1 = (yyvsp[-1].interm.intermTypedNode);
(yyval.interm.nodePair).node2 = 0;
}
-#line 10775 "MachineIndependent/glslang_tab.cpp"
+#line 11480 "MachineIndependent/glslang_tab.cpp"
break;
- case 596: /* for_rest_statement: conditionopt SEMICOLON expression */
-#line 3901 "MachineIndependent/glslang.y"
+ case 607: /* for_rest_statement: conditionopt SEMICOLON expression */
+#line 3987 "MachineIndependent/glslang.y"
{
(yyval.interm.nodePair).node1 = (yyvsp[-2].interm.intermTypedNode);
(yyval.interm.nodePair).node2 = (yyvsp[0].interm.intermTypedNode);
}
-#line 10784 "MachineIndependent/glslang_tab.cpp"
+#line 11489 "MachineIndependent/glslang_tab.cpp"
break;
- case 597: /* jump_statement: CONTINUE SEMICOLON */
-#line 3908 "MachineIndependent/glslang.y"
+ case 608: /* jump_statement: CONTINUE SEMICOLON */
+#line 3994 "MachineIndependent/glslang.y"
{
if (parseContext.loopNestingLevel <= 0)
parseContext.error((yyvsp[-1].lex).loc, "continue statement only allowed in loops", "", "");
(yyval.interm.intermNode) = parseContext.intermediate.addBranch(EOpContinue, (yyvsp[-1].lex).loc);
}
-#line 10794 "MachineIndependent/glslang_tab.cpp"
+#line 11499 "MachineIndependent/glslang_tab.cpp"
break;
- case 598: /* jump_statement: BREAK SEMICOLON */
-#line 3913 "MachineIndependent/glslang.y"
+ case 609: /* jump_statement: BREAK SEMICOLON */
+#line 3999 "MachineIndependent/glslang.y"
{
if (parseContext.loopNestingLevel + parseContext.switchSequenceStack.size() <= 0)
parseContext.error((yyvsp[-1].lex).loc, "break statement only allowed in switch and loops", "", "");
(yyval.interm.intermNode) = parseContext.intermediate.addBranch(EOpBreak, (yyvsp[-1].lex).loc);
}
-#line 10804 "MachineIndependent/glslang_tab.cpp"
+#line 11509 "MachineIndependent/glslang_tab.cpp"
break;
- case 599: /* jump_statement: RETURN SEMICOLON */
-#line 3918 "MachineIndependent/glslang.y"
+ case 610: /* jump_statement: RETURN SEMICOLON */
+#line 4004 "MachineIndependent/glslang.y"
{
(yyval.interm.intermNode) = parseContext.intermediate.addBranch(EOpReturn, (yyvsp[-1].lex).loc);
if (parseContext.currentFunctionType->getBasicType() != EbtVoid)
@@ -10812,101 +11517,101 @@ yyreduce:
if (parseContext.inMain)
parseContext.postEntryPointReturn = true;
}
-#line 10816 "MachineIndependent/glslang_tab.cpp"
+#line 11521 "MachineIndependent/glslang_tab.cpp"
break;
- case 600: /* jump_statement: RETURN expression SEMICOLON */
-#line 3925 "MachineIndependent/glslang.y"
+ case 611: /* jump_statement: RETURN expression SEMICOLON */
+#line 4011 "MachineIndependent/glslang.y"
{
(yyval.interm.intermNode) = parseContext.handleReturnValue((yyvsp[-2].lex).loc, (yyvsp[-1].interm.intermTypedNode));
}
-#line 10824 "MachineIndependent/glslang_tab.cpp"
+#line 11529 "MachineIndependent/glslang_tab.cpp"
break;
- case 601: /* jump_statement: DISCARD SEMICOLON */
-#line 3928 "MachineIndependent/glslang.y"
+ case 612: /* jump_statement: DISCARD SEMICOLON */
+#line 4014 "MachineIndependent/glslang.y"
{
parseContext.requireStage((yyvsp[-1].lex).loc, EShLangFragment, "discard");
(yyval.interm.intermNode) = parseContext.intermediate.addBranch(EOpKill, (yyvsp[-1].lex).loc);
}
-#line 10833 "MachineIndependent/glslang_tab.cpp"
+#line 11538 "MachineIndependent/glslang_tab.cpp"
break;
- case 602: /* jump_statement: TERMINATE_INVOCATION SEMICOLON */
-#line 3932 "MachineIndependent/glslang.y"
+ case 613: /* jump_statement: TERMINATE_INVOCATION SEMICOLON */
+#line 4018 "MachineIndependent/glslang.y"
{
parseContext.requireStage((yyvsp[-1].lex).loc, EShLangFragment, "terminateInvocation");
(yyval.interm.intermNode) = parseContext.intermediate.addBranch(EOpTerminateInvocation, (yyvsp[-1].lex).loc);
}
-#line 10842 "MachineIndependent/glslang_tab.cpp"
+#line 11547 "MachineIndependent/glslang_tab.cpp"
break;
- case 603: /* jump_statement: TERMINATE_RAY SEMICOLON */
-#line 3937 "MachineIndependent/glslang.y"
+ case 614: /* jump_statement: TERMINATE_RAY SEMICOLON */
+#line 4023 "MachineIndependent/glslang.y"
{
parseContext.requireStage((yyvsp[-1].lex).loc, EShLangAnyHit, "terminateRayEXT");
(yyval.interm.intermNode) = parseContext.intermediate.addBranch(EOpTerminateRayKHR, (yyvsp[-1].lex).loc);
}
-#line 10851 "MachineIndependent/glslang_tab.cpp"
+#line 11556 "MachineIndependent/glslang_tab.cpp"
break;
- case 604: /* jump_statement: IGNORE_INTERSECTION SEMICOLON */
-#line 3941 "MachineIndependent/glslang.y"
+ case 615: /* jump_statement: IGNORE_INTERSECTION SEMICOLON */
+#line 4027 "MachineIndependent/glslang.y"
{
parseContext.requireStage((yyvsp[-1].lex).loc, EShLangAnyHit, "ignoreIntersectionEXT");
(yyval.interm.intermNode) = parseContext.intermediate.addBranch(EOpIgnoreIntersectionKHR, (yyvsp[-1].lex).loc);
}
-#line 10860 "MachineIndependent/glslang_tab.cpp"
+#line 11565 "MachineIndependent/glslang_tab.cpp"
break;
- case 605: /* translation_unit: external_declaration */
-#line 3951 "MachineIndependent/glslang.y"
+ case 616: /* translation_unit: external_declaration */
+#line 4037 "MachineIndependent/glslang.y"
{
(yyval.interm.intermNode) = (yyvsp[0].interm.intermNode);
parseContext.intermediate.setTreeRoot((yyval.interm.intermNode));
}
-#line 10869 "MachineIndependent/glslang_tab.cpp"
+#line 11574 "MachineIndependent/glslang_tab.cpp"
break;
- case 606: /* translation_unit: translation_unit external_declaration */
-#line 3955 "MachineIndependent/glslang.y"
+ case 617: /* translation_unit: translation_unit external_declaration */
+#line 4041 "MachineIndependent/glslang.y"
{
if ((yyvsp[0].interm.intermNode) != nullptr) {
(yyval.interm.intermNode) = parseContext.intermediate.growAggregate((yyvsp[-1].interm.intermNode), (yyvsp[0].interm.intermNode));
parseContext.intermediate.setTreeRoot((yyval.interm.intermNode));
}
}
-#line 10880 "MachineIndependent/glslang_tab.cpp"
+#line 11585 "MachineIndependent/glslang_tab.cpp"
break;
- case 607: /* external_declaration: function_definition */
-#line 3964 "MachineIndependent/glslang.y"
+ case 618: /* external_declaration: function_definition */
+#line 4050 "MachineIndependent/glslang.y"
{
(yyval.interm.intermNode) = (yyvsp[0].interm.intermNode);
}
-#line 10888 "MachineIndependent/glslang_tab.cpp"
+#line 11593 "MachineIndependent/glslang_tab.cpp"
break;
- case 608: /* external_declaration: declaration */
-#line 3967 "MachineIndependent/glslang.y"
+ case 619: /* external_declaration: declaration */
+#line 4053 "MachineIndependent/glslang.y"
{
(yyval.interm.intermNode) = (yyvsp[0].interm.intermNode);
}
-#line 10896 "MachineIndependent/glslang_tab.cpp"
+#line 11601 "MachineIndependent/glslang_tab.cpp"
break;
- case 609: /* external_declaration: SEMICOLON */
-#line 3971 "MachineIndependent/glslang.y"
+ case 620: /* external_declaration: SEMICOLON */
+#line 4057 "MachineIndependent/glslang.y"
{
parseContext.requireProfile((yyvsp[0].lex).loc, ~EEsProfile, "extraneous semicolon");
parseContext.profileRequires((yyvsp[0].lex).loc, ~EEsProfile, 460, nullptr, "extraneous semicolon");
(yyval.interm.intermNode) = nullptr;
}
-#line 10906 "MachineIndependent/glslang_tab.cpp"
+#line 11611 "MachineIndependent/glslang_tab.cpp"
break;
- case 610: /* $@13: %empty */
-#line 3980 "MachineIndependent/glslang.y"
+ case 621: /* $@13: %empty */
+#line 4066 "MachineIndependent/glslang.y"
{
(yyvsp[0].interm).function = parseContext.handleFunctionDeclarator((yyvsp[0].interm).loc, *(yyvsp[0].interm).function, false /* not prototype */);
(yyvsp[0].interm).intermNode = parseContext.handleFunctionDefinition((yyvsp[0].interm).loc, *(yyvsp[0].interm).function);
@@ -10919,11 +11624,11 @@ yyreduce:
++parseContext.statementNestingLevel;
}
}
-#line 10923 "MachineIndependent/glslang_tab.cpp"
+#line 11628 "MachineIndependent/glslang_tab.cpp"
break;
- case 611: /* function_definition: function_prototype $@13 compound_statement_no_new_scope */
-#line 3992 "MachineIndependent/glslang.y"
+ case 622: /* function_definition: function_prototype $@13 compound_statement_no_new_scope */
+#line 4078 "MachineIndependent/glslang.y"
{
// May be best done as post process phase on intermediate code
if (parseContext.currentFunctionType->getBasicType() != EbtVoid && ! parseContext.functionReturnsValue)
@@ -10950,52 +11655,563 @@ yyreduce:
--parseContext.statementNestingLevel;
}
}
-#line 10954 "MachineIndependent/glslang_tab.cpp"
+#line 11659 "MachineIndependent/glslang_tab.cpp"
break;
- case 612: /* attribute: LEFT_BRACKET LEFT_BRACKET attribute_list RIGHT_BRACKET RIGHT_BRACKET */
-#line 4022 "MachineIndependent/glslang.y"
+ case 623: /* attribute: LEFT_BRACKET LEFT_BRACKET attribute_list RIGHT_BRACKET RIGHT_BRACKET */
+#line 4108 "MachineIndependent/glslang.y"
{
(yyval.interm.attributes) = (yyvsp[-2].interm.attributes);
- parseContext.requireExtensions((yyvsp[-4].lex).loc, 1, &E_GL_EXT_control_flow_attributes, "attribute");
}
-#line 10963 "MachineIndependent/glslang_tab.cpp"
+#line 11667 "MachineIndependent/glslang_tab.cpp"
break;
- case 613: /* attribute_list: single_attribute */
-#line 4028 "MachineIndependent/glslang.y"
+ case 624: /* attribute_list: single_attribute */
+#line 4113 "MachineIndependent/glslang.y"
{
(yyval.interm.attributes) = (yyvsp[0].interm.attributes);
}
-#line 10971 "MachineIndependent/glslang_tab.cpp"
+#line 11675 "MachineIndependent/glslang_tab.cpp"
break;
- case 614: /* attribute_list: attribute_list COMMA single_attribute */
-#line 4031 "MachineIndependent/glslang.y"
+ case 625: /* attribute_list: attribute_list COMMA single_attribute */
+#line 4116 "MachineIndependent/glslang.y"
{
(yyval.interm.attributes) = parseContext.mergeAttributes((yyvsp[-2].interm.attributes), (yyvsp[0].interm.attributes));
}
-#line 10979 "MachineIndependent/glslang_tab.cpp"
+#line 11683 "MachineIndependent/glslang_tab.cpp"
break;
- case 615: /* single_attribute: IDENTIFIER */
-#line 4036 "MachineIndependent/glslang.y"
+ case 626: /* single_attribute: IDENTIFIER */
+#line 4121 "MachineIndependent/glslang.y"
{
(yyval.interm.attributes) = parseContext.makeAttributes(*(yyvsp[0].lex).string);
}
-#line 10987 "MachineIndependent/glslang_tab.cpp"
+#line 11691 "MachineIndependent/glslang_tab.cpp"
break;
- case 616: /* single_attribute: IDENTIFIER LEFT_PAREN constant_expression RIGHT_PAREN */
-#line 4039 "MachineIndependent/glslang.y"
+ case 627: /* single_attribute: IDENTIFIER LEFT_PAREN constant_expression RIGHT_PAREN */
+#line 4124 "MachineIndependent/glslang.y"
{
(yyval.interm.attributes) = parseContext.makeAttributes(*(yyvsp[-3].lex).string, (yyvsp[-1].interm.intermTypedNode));
}
-#line 10995 "MachineIndependent/glslang_tab.cpp"
+#line 11699 "MachineIndependent/glslang_tab.cpp"
+ break;
+
+ case 628: /* spirv_requirements_list: spirv_requirements_parameter */
+#line 4131 "MachineIndependent/glslang.y"
+ {
+ (yyval.interm.spirvReq) = (yyvsp[0].interm.spirvReq);
+ }
+#line 11707 "MachineIndependent/glslang_tab.cpp"
+ break;
+
+ case 629: /* spirv_requirements_list: spirv_requirements_list COMMA spirv_requirements_parameter */
+#line 4134 "MachineIndependent/glslang.y"
+ {
+ (yyval.interm.spirvReq) = parseContext.mergeSpirvRequirements((yyvsp[-1].lex).loc, (yyvsp[-2].interm.spirvReq), (yyvsp[0].interm.spirvReq));
+ }
+#line 11715 "MachineIndependent/glslang_tab.cpp"
+ break;
+
+ case 630: /* spirv_requirements_parameter: IDENTIFIER EQUAL LEFT_BRACKET spirv_extension_list RIGHT_BRACKET */
+#line 4139 "MachineIndependent/glslang.y"
+ {
+ (yyval.interm.spirvReq) = parseContext.makeSpirvRequirement((yyvsp[-3].lex).loc, *(yyvsp[-4].lex).string, (yyvsp[-1].interm.intermNode)->getAsAggregate(), nullptr);
+ }
+#line 11723 "MachineIndependent/glslang_tab.cpp"
+ break;
+
+ case 631: /* spirv_requirements_parameter: IDENTIFIER EQUAL LEFT_BRACKET spirv_capability_list RIGHT_BRACKET */
+#line 4142 "MachineIndependent/glslang.y"
+ {
+ (yyval.interm.spirvReq) = parseContext.makeSpirvRequirement((yyvsp[-3].lex).loc, *(yyvsp[-4].lex).string, nullptr, (yyvsp[-1].interm.intermNode)->getAsAggregate());
+ }
+#line 11731 "MachineIndependent/glslang_tab.cpp"
+ break;
+
+ case 632: /* spirv_extension_list: STRING_LITERAL */
+#line 4147 "MachineIndependent/glslang.y"
+ {
+ (yyval.interm.intermNode) = parseContext.intermediate.makeAggregate(parseContext.intermediate.addConstantUnion((yyvsp[0].lex).string, (yyvsp[0].lex).loc, true));
+ }
+#line 11739 "MachineIndependent/glslang_tab.cpp"
+ break;
+
+ case 633: /* spirv_extension_list: spirv_extension_list COMMA STRING_LITERAL */
+#line 4150 "MachineIndependent/glslang.y"
+ {
+ (yyval.interm.intermNode) = parseContext.intermediate.growAggregate((yyvsp[-2].interm.intermNode), parseContext.intermediate.addConstantUnion((yyvsp[0].lex).string, (yyvsp[0].lex).loc, true));
+ }
+#line 11747 "MachineIndependent/glslang_tab.cpp"
+ break;
+
+ case 634: /* spirv_capability_list: INTCONSTANT */
+#line 4155 "MachineIndependent/glslang.y"
+ {
+ (yyval.interm.intermNode) = parseContext.intermediate.makeAggregate(parseContext.intermediate.addConstantUnion((yyvsp[0].lex).i, (yyvsp[0].lex).loc, true));
+ }
+#line 11755 "MachineIndependent/glslang_tab.cpp"
+ break;
+
+ case 635: /* spirv_capability_list: spirv_capability_list COMMA INTCONSTANT */
+#line 4158 "MachineIndependent/glslang.y"
+ {
+ (yyval.interm.intermNode) = parseContext.intermediate.growAggregate((yyvsp[-2].interm.intermNode), parseContext.intermediate.addConstantUnion((yyvsp[0].lex).i, (yyvsp[0].lex).loc, true));
+ }
+#line 11763 "MachineIndependent/glslang_tab.cpp"
+ break;
+
+ case 636: /* spirv_execution_mode_qualifier: SPIRV_EXECUTION_MODE LEFT_PAREN INTCONSTANT RIGHT_PAREN */
+#line 4163 "MachineIndependent/glslang.y"
+ {
+ parseContext.intermediate.insertSpirvExecutionMode((yyvsp[-1].lex).i);
+ (yyval.interm.intermNode) = 0;
+ }
+#line 11772 "MachineIndependent/glslang_tab.cpp"
+ break;
+
+ case 637: /* spirv_execution_mode_qualifier: SPIRV_EXECUTION_MODE LEFT_PAREN spirv_requirements_list COMMA INTCONSTANT RIGHT_PAREN */
+#line 4167 "MachineIndependent/glslang.y"
+ {
+ parseContext.intermediate.insertSpirvRequirement((yyvsp[-3].interm.spirvReq));
+ parseContext.intermediate.insertSpirvExecutionMode((yyvsp[-1].lex).i);
+ (yyval.interm.intermNode) = 0;
+ }
+#line 11782 "MachineIndependent/glslang_tab.cpp"
+ break;
+
+ case 638: /* spirv_execution_mode_qualifier: SPIRV_EXECUTION_MODE LEFT_PAREN INTCONSTANT COMMA spirv_execution_mode_parameter_list RIGHT_PAREN */
+#line 4172 "MachineIndependent/glslang.y"
+ {
+ parseContext.intermediate.insertSpirvExecutionMode((yyvsp[-3].lex).i, (yyvsp[-1].interm.intermNode)->getAsAggregate());
+ (yyval.interm.intermNode) = 0;
+ }
+#line 11791 "MachineIndependent/glslang_tab.cpp"
+ break;
+
+ case 639: /* spirv_execution_mode_qualifier: SPIRV_EXECUTION_MODE LEFT_PAREN spirv_requirements_list COMMA INTCONSTANT COMMA spirv_execution_mode_parameter_list RIGHT_PAREN */
+#line 4176 "MachineIndependent/glslang.y"
+ {
+ parseContext.intermediate.insertSpirvRequirement((yyvsp[-5].interm.spirvReq));
+ parseContext.intermediate.insertSpirvExecutionMode((yyvsp[-3].lex).i, (yyvsp[-1].interm.intermNode)->getAsAggregate());
+ (yyval.interm.intermNode) = 0;
+ }
+#line 11801 "MachineIndependent/glslang_tab.cpp"
+ break;
+
+ case 640: /* spirv_execution_mode_qualifier: SPIRV_EXECUTION_MODE_ID LEFT_PAREN INTCONSTANT COMMA spirv_execution_mode_id_parameter_list RIGHT_PAREN */
+#line 4181 "MachineIndependent/glslang.y"
+ {
+ parseContext.intermediate.insertSpirvExecutionModeId((yyvsp[-3].lex).i, (yyvsp[-1].interm.intermNode)->getAsAggregate());
+ (yyval.interm.intermNode) = 0;
+ }
+#line 11810 "MachineIndependent/glslang_tab.cpp"
+ break;
+
+ case 641: /* spirv_execution_mode_qualifier: SPIRV_EXECUTION_MODE_ID LEFT_PAREN spirv_requirements_list COMMA INTCONSTANT COMMA spirv_execution_mode_id_parameter_list RIGHT_PAREN */
+#line 4185 "MachineIndependent/glslang.y"
+ {
+ parseContext.intermediate.insertSpirvRequirement((yyvsp[-5].interm.spirvReq));
+ parseContext.intermediate.insertSpirvExecutionModeId((yyvsp[-3].lex).i, (yyvsp[-1].interm.intermNode)->getAsAggregate());
+ (yyval.interm.intermNode) = 0;
+ }
+#line 11820 "MachineIndependent/glslang_tab.cpp"
+ break;
+
+ case 642: /* spirv_execution_mode_parameter_list: spirv_execution_mode_parameter */
+#line 4192 "MachineIndependent/glslang.y"
+ {
+ (yyval.interm.intermNode) = parseContext.intermediate.makeAggregate((yyvsp[0].interm.intermNode));
+ }
+#line 11828 "MachineIndependent/glslang_tab.cpp"
+ break;
+
+ case 643: /* spirv_execution_mode_parameter_list: spirv_execution_mode_parameter_list COMMA spirv_execution_mode_parameter */
+#line 4195 "MachineIndependent/glslang.y"
+ {
+ (yyval.interm.intermNode) = parseContext.intermediate.growAggregate((yyvsp[-2].interm.intermNode), (yyvsp[0].interm.intermNode));
+ }
+#line 11836 "MachineIndependent/glslang_tab.cpp"
+ break;
+
+ case 644: /* spirv_execution_mode_parameter: FLOATCONSTANT */
+#line 4200 "MachineIndependent/glslang.y"
+ {
+ (yyval.interm.intermNode) = parseContext.intermediate.addConstantUnion((yyvsp[0].lex).d, EbtFloat, (yyvsp[0].lex).loc, true);
+ }
+#line 11844 "MachineIndependent/glslang_tab.cpp"
+ break;
+
+ case 645: /* spirv_execution_mode_parameter: INTCONSTANT */
+#line 4203 "MachineIndependent/glslang.y"
+ {
+ (yyval.interm.intermNode) = parseContext.intermediate.addConstantUnion((yyvsp[0].lex).i, (yyvsp[0].lex).loc, true);
+ }
+#line 11852 "MachineIndependent/glslang_tab.cpp"
+ break;
+
+ case 646: /* spirv_execution_mode_parameter: UINTCONSTANT */
+#line 4206 "MachineIndependent/glslang.y"
+ {
+ (yyval.interm.intermNode) = parseContext.intermediate.addConstantUnion((yyvsp[0].lex).u, (yyvsp[0].lex).loc, true);
+ }
+#line 11860 "MachineIndependent/glslang_tab.cpp"
+ break;
+
+ case 647: /* spirv_execution_mode_parameter: BOOLCONSTANT */
+#line 4209 "MachineIndependent/glslang.y"
+ {
+ (yyval.interm.intermNode) = parseContext.intermediate.addConstantUnion((yyvsp[0].lex).b, (yyvsp[0].lex).loc, true);
+ }
+#line 11868 "MachineIndependent/glslang_tab.cpp"
+ break;
+
+ case 648: /* spirv_execution_mode_parameter: STRING_LITERAL */
+#line 4212 "MachineIndependent/glslang.y"
+ {
+ (yyval.interm.intermNode) = parseContext.intermediate.addConstantUnion((yyvsp[0].lex).string, (yyvsp[0].lex).loc, true);
+ }
+#line 11876 "MachineIndependent/glslang_tab.cpp"
+ break;
+
+ case 649: /* spirv_execution_mode_id_parameter_list: constant_expression */
+#line 4217 "MachineIndependent/glslang.y"
+ {
+ if ((yyvsp[0].interm.intermTypedNode)->getBasicType() != EbtFloat &&
+ (yyvsp[0].interm.intermTypedNode)->getBasicType() != EbtInt &&
+ (yyvsp[0].interm.intermTypedNode)->getBasicType() != EbtUint &&
+ (yyvsp[0].interm.intermTypedNode)->getBasicType() != EbtBool &&
+ (yyvsp[0].interm.intermTypedNode)->getBasicType() != EbtString)
+ parseContext.error((yyvsp[0].interm.intermTypedNode)->getLoc(), "this type not allowed", (yyvsp[0].interm.intermTypedNode)->getType().getBasicString(), "");
+ (yyval.interm.intermNode) = parseContext.intermediate.makeAggregate((yyvsp[0].interm.intermTypedNode));
+ }
+#line 11890 "MachineIndependent/glslang_tab.cpp"
+ break;
+
+ case 650: /* spirv_execution_mode_id_parameter_list: spirv_execution_mode_id_parameter_list COMMA constant_expression */
+#line 4226 "MachineIndependent/glslang.y"
+ {
+ if ((yyvsp[0].interm.intermTypedNode)->getBasicType() != EbtFloat &&
+ (yyvsp[0].interm.intermTypedNode)->getBasicType() != EbtInt &&
+ (yyvsp[0].interm.intermTypedNode)->getBasicType() != EbtUint &&
+ (yyvsp[0].interm.intermTypedNode)->getBasicType() != EbtBool &&
+ (yyvsp[0].interm.intermTypedNode)->getBasicType() != EbtString)
+ parseContext.error((yyvsp[0].interm.intermTypedNode)->getLoc(), "this type not allowed", (yyvsp[0].interm.intermTypedNode)->getType().getBasicString(), "");
+ (yyval.interm.intermNode) = parseContext.intermediate.growAggregate((yyvsp[-2].interm.intermNode), (yyvsp[0].interm.intermTypedNode));
+ }
+#line 11904 "MachineIndependent/glslang_tab.cpp"
+ break;
+
+ case 651: /* spirv_storage_class_qualifier: SPIRV_STORAGE_CLASS LEFT_PAREN INTCONSTANT RIGHT_PAREN */
+#line 4237 "MachineIndependent/glslang.y"
+ {
+ (yyval.interm.type).init((yyvsp[-3].lex).loc);
+ (yyval.interm.type).qualifier.storage = EvqSpirvStorageClass;
+ (yyval.interm.type).qualifier.spirvStorageClass = (yyvsp[-1].lex).i;
+ }
+#line 11914 "MachineIndependent/glslang_tab.cpp"
+ break;
+
+ case 652: /* spirv_storage_class_qualifier: SPIRV_STORAGE_CLASS LEFT_PAREN spirv_requirements_list COMMA INTCONSTANT RIGHT_PAREN */
+#line 4242 "MachineIndependent/glslang.y"
+ {
+ (yyval.interm.type).init((yyvsp[-5].lex).loc);
+ parseContext.intermediate.insertSpirvRequirement((yyvsp[-3].interm.spirvReq));
+ (yyval.interm.type).qualifier.storage = EvqSpirvStorageClass;
+ (yyval.interm.type).qualifier.spirvStorageClass = (yyvsp[-1].lex).i;
+ }
+#line 11925 "MachineIndependent/glslang_tab.cpp"
+ break;
+
+ case 653: /* spirv_decorate_qualifier: SPIRV_DECORATE LEFT_PAREN INTCONSTANT RIGHT_PAREN */
+#line 4250 "MachineIndependent/glslang.y"
+ {
+ (yyval.interm.type).init((yyvsp[-3].lex).loc);
+ (yyval.interm.type).qualifier.setSpirvDecorate((yyvsp[-1].lex).i);
+ }
+#line 11934 "MachineIndependent/glslang_tab.cpp"
+ break;
+
+ case 654: /* spirv_decorate_qualifier: SPIRV_DECORATE LEFT_PAREN spirv_requirements_list COMMA INTCONSTANT RIGHT_PAREN */
+#line 4254 "MachineIndependent/glslang.y"
+ {
+ (yyval.interm.type).init((yyvsp[-5].lex).loc);
+ parseContext.intermediate.insertSpirvRequirement((yyvsp[-3].interm.spirvReq));
+ (yyval.interm.type).qualifier.setSpirvDecorate((yyvsp[-1].lex).i);
+ }
+#line 11944 "MachineIndependent/glslang_tab.cpp"
+ break;
+
+ case 655: /* spirv_decorate_qualifier: SPIRV_DECORATE LEFT_PAREN INTCONSTANT COMMA spirv_decorate_parameter_list RIGHT_PAREN */
+#line 4259 "MachineIndependent/glslang.y"
+ {
+ (yyval.interm.type).init((yyvsp[-5].lex).loc);
+ (yyval.interm.type).qualifier.setSpirvDecorate((yyvsp[-3].lex).i, (yyvsp[-1].interm.intermNode)->getAsAggregate());
+ }
+#line 11953 "MachineIndependent/glslang_tab.cpp"
+ break;
+
+ case 656: /* spirv_decorate_qualifier: SPIRV_DECORATE LEFT_PAREN spirv_requirements_list COMMA INTCONSTANT COMMA spirv_decorate_parameter_list RIGHT_PAREN */
+#line 4263 "MachineIndependent/glslang.y"
+ {
+ (yyval.interm.type).init((yyvsp[-7].lex).loc);
+ parseContext.intermediate.insertSpirvRequirement((yyvsp[-5].interm.spirvReq));
+ (yyval.interm.type).qualifier.setSpirvDecorate((yyvsp[-3].lex).i, (yyvsp[-1].interm.intermNode)->getAsAggregate());
+ }
+#line 11963 "MachineIndependent/glslang_tab.cpp"
+ break;
+
+ case 657: /* spirv_decorate_qualifier: SPIRV_DECORATE_ID LEFT_PAREN INTCONSTANT COMMA spirv_decorate_id_parameter_list RIGHT_PAREN */
+#line 4268 "MachineIndependent/glslang.y"
+ {
+ (yyval.interm.type).init((yyvsp[-5].lex).loc);
+ (yyval.interm.type).qualifier.setSpirvDecorateId((yyvsp[-3].lex).i, (yyvsp[-1].interm.intermNode)->getAsAggregate());
+ }
+#line 11972 "MachineIndependent/glslang_tab.cpp"
+ break;
+
+ case 658: /* spirv_decorate_qualifier: SPIRV_DECORATE_ID LEFT_PAREN spirv_requirements_list COMMA INTCONSTANT COMMA spirv_decorate_id_parameter_list RIGHT_PAREN */
+#line 4272 "MachineIndependent/glslang.y"
+ {
+ (yyval.interm.type).init((yyvsp[-7].lex).loc);
+ parseContext.intermediate.insertSpirvRequirement((yyvsp[-5].interm.spirvReq));
+ (yyval.interm.type).qualifier.setSpirvDecorateId((yyvsp[-3].lex).i, (yyvsp[-1].interm.intermNode)->getAsAggregate());
+ }
+#line 11982 "MachineIndependent/glslang_tab.cpp"
+ break;
+
+ case 659: /* spirv_decorate_qualifier: SPIRV_DECORATE_STRING LEFT_PAREN INTCONSTANT COMMA spirv_decorate_string_parameter_list RIGHT_PAREN */
+#line 4277 "MachineIndependent/glslang.y"
+ {
+ (yyval.interm.type).init((yyvsp[-5].lex).loc);
+ (yyval.interm.type).qualifier.setSpirvDecorateString((yyvsp[-3].lex).i, (yyvsp[-1].interm.intermNode)->getAsAggregate());
+ }
+#line 11991 "MachineIndependent/glslang_tab.cpp"
+ break;
+
+ case 660: /* spirv_decorate_qualifier: SPIRV_DECORATE_STRING LEFT_PAREN spirv_requirements_list COMMA INTCONSTANT COMMA spirv_decorate_string_parameter_list RIGHT_PAREN */
+#line 4281 "MachineIndependent/glslang.y"
+ {
+ (yyval.interm.type).init((yyvsp[-7].lex).loc);
+ parseContext.intermediate.insertSpirvRequirement((yyvsp[-5].interm.spirvReq));
+ (yyval.interm.type).qualifier.setSpirvDecorateString((yyvsp[-3].lex).i, (yyvsp[-1].interm.intermNode)->getAsAggregate());
+ }
+#line 12001 "MachineIndependent/glslang_tab.cpp"
+ break;
+
+ case 661: /* spirv_decorate_parameter_list: spirv_decorate_parameter */
+#line 4288 "MachineIndependent/glslang.y"
+ {
+ (yyval.interm.intermNode) = parseContext.intermediate.makeAggregate((yyvsp[0].interm.intermNode));
+ }
+#line 12009 "MachineIndependent/glslang_tab.cpp"
+ break;
+
+ case 662: /* spirv_decorate_parameter_list: spirv_decorate_parameter_list COMMA spirv_decorate_parameter */
+#line 4291 "MachineIndependent/glslang.y"
+ {
+ (yyval.interm.intermNode) = parseContext.intermediate.growAggregate((yyvsp[-2].interm.intermNode), (yyvsp[0].interm.intermNode));
+ }
+#line 12017 "MachineIndependent/glslang_tab.cpp"
+ break;
+
+ case 663: /* spirv_decorate_parameter: FLOATCONSTANT */
+#line 4296 "MachineIndependent/glslang.y"
+ {
+ (yyval.interm.intermNode) = parseContext.intermediate.addConstantUnion((yyvsp[0].lex).d, EbtFloat, (yyvsp[0].lex).loc, true);
+ }
+#line 12025 "MachineIndependent/glslang_tab.cpp"
+ break;
+
+ case 664: /* spirv_decorate_parameter: INTCONSTANT */
+#line 4299 "MachineIndependent/glslang.y"
+ {
+ (yyval.interm.intermNode) = parseContext.intermediate.addConstantUnion((yyvsp[0].lex).i, (yyvsp[0].lex).loc, true);
+ }
+#line 12033 "MachineIndependent/glslang_tab.cpp"
+ break;
+
+ case 665: /* spirv_decorate_parameter: UINTCONSTANT */
+#line 4302 "MachineIndependent/glslang.y"
+ {
+ (yyval.interm.intermNode) = parseContext.intermediate.addConstantUnion((yyvsp[0].lex).u, (yyvsp[0].lex).loc, true);
+ }
+#line 12041 "MachineIndependent/glslang_tab.cpp"
+ break;
+
+ case 666: /* spirv_decorate_parameter: BOOLCONSTANT */
+#line 4305 "MachineIndependent/glslang.y"
+ {
+ (yyval.interm.intermNode) = parseContext.intermediate.addConstantUnion((yyvsp[0].lex).b, (yyvsp[0].lex).loc, true);
+ }
+#line 12049 "MachineIndependent/glslang_tab.cpp"
+ break;
+
+ case 667: /* spirv_decorate_id_parameter_list: constant_expression */
+#line 4310 "MachineIndependent/glslang.y"
+ {
+ if ((yyvsp[0].interm.intermTypedNode)->getBasicType() != EbtFloat &&
+ (yyvsp[0].interm.intermTypedNode)->getBasicType() != EbtInt &&
+ (yyvsp[0].interm.intermTypedNode)->getBasicType() != EbtUint &&
+ (yyvsp[0].interm.intermTypedNode)->getBasicType() != EbtBool)
+ parseContext.error((yyvsp[0].interm.intermTypedNode)->getLoc(), "this type not allowed", (yyvsp[0].interm.intermTypedNode)->getType().getBasicString(), "");
+ (yyval.interm.intermNode) = parseContext.intermediate.makeAggregate((yyvsp[0].interm.intermTypedNode));
+ }
+#line 12062 "MachineIndependent/glslang_tab.cpp"
+ break;
+
+ case 668: /* spirv_decorate_id_parameter_list: spirv_decorate_id_parameter_list COMMA constant_expression */
+#line 4318 "MachineIndependent/glslang.y"
+ {
+ if ((yyvsp[0].interm.intermTypedNode)->getBasicType() != EbtFloat &&
+ (yyvsp[0].interm.intermTypedNode)->getBasicType() != EbtInt &&
+ (yyvsp[0].interm.intermTypedNode)->getBasicType() != EbtUint &&
+ (yyvsp[0].interm.intermTypedNode)->getBasicType() != EbtBool)
+ parseContext.error((yyvsp[0].interm.intermTypedNode)->getLoc(), "this type not allowed", (yyvsp[0].interm.intermTypedNode)->getType().getBasicString(), "");
+ (yyval.interm.intermNode) = parseContext.intermediate.growAggregate((yyvsp[-2].interm.intermNode), (yyvsp[0].interm.intermTypedNode));
+ }
+#line 12075 "MachineIndependent/glslang_tab.cpp"
+ break;
+
+ case 669: /* spirv_decorate_string_parameter_list: STRING_LITERAL */
+#line 4328 "MachineIndependent/glslang.y"
+ {
+ (yyval.interm.intermNode) = parseContext.intermediate.makeAggregate(
+ parseContext.intermediate.addConstantUnion((yyvsp[0].lex).string, (yyvsp[0].lex).loc, true));
+ }
+#line 12084 "MachineIndependent/glslang_tab.cpp"
+ break;
+
+ case 670: /* spirv_decorate_string_parameter_list: spirv_decorate_string_parameter_list COMMA STRING_LITERAL */
+#line 4332 "MachineIndependent/glslang.y"
+ {
+ (yyval.interm.intermNode) = parseContext.intermediate.growAggregate((yyvsp[-2].interm.intermNode), parseContext.intermediate.addConstantUnion((yyvsp[0].lex).string, (yyvsp[0].lex).loc, true));
+ }
+#line 12092 "MachineIndependent/glslang_tab.cpp"
+ break;
+
+ case 671: /* spirv_type_specifier: SPIRV_TYPE LEFT_PAREN spirv_instruction_qualifier_list COMMA spirv_type_parameter_list RIGHT_PAREN */
+#line 4337 "MachineIndependent/glslang.y"
+ {
+ (yyval.interm.type).init((yyvsp[-5].lex).loc, parseContext.symbolTable.atGlobalLevel());
+ (yyval.interm.type).setSpirvType(*(yyvsp[-3].interm.spirvInst), (yyvsp[-1].interm.spirvTypeParams));
+ }
+#line 12101 "MachineIndependent/glslang_tab.cpp"
+ break;
+
+ case 672: /* spirv_type_specifier: SPIRV_TYPE LEFT_PAREN spirv_requirements_list COMMA spirv_instruction_qualifier_list COMMA spirv_type_parameter_list RIGHT_PAREN */
+#line 4341 "MachineIndependent/glslang.y"
+ {
+ (yyval.interm.type).init((yyvsp[-7].lex).loc, parseContext.symbolTable.atGlobalLevel());
+ parseContext.intermediate.insertSpirvRequirement((yyvsp[-5].interm.spirvReq));
+ (yyval.interm.type).setSpirvType(*(yyvsp[-3].interm.spirvInst), (yyvsp[-1].interm.spirvTypeParams));
+ }
+#line 12111 "MachineIndependent/glslang_tab.cpp"
+ break;
+
+ case 673: /* spirv_type_specifier: SPIRV_TYPE LEFT_PAREN spirv_instruction_qualifier_list RIGHT_PAREN */
+#line 4346 "MachineIndependent/glslang.y"
+ {
+ (yyval.interm.type).init((yyvsp[-3].lex).loc, parseContext.symbolTable.atGlobalLevel());
+ (yyval.interm.type).setSpirvType(*(yyvsp[-1].interm.spirvInst));
+ }
+#line 12120 "MachineIndependent/glslang_tab.cpp"
+ break;
+
+ case 674: /* spirv_type_specifier: SPIRV_TYPE LEFT_PAREN spirv_requirements_list COMMA spirv_instruction_qualifier_list RIGHT_PAREN */
+#line 4350 "MachineIndependent/glslang.y"
+ {
+ (yyval.interm.type).init((yyvsp[-5].lex).loc, parseContext.symbolTable.atGlobalLevel());
+ parseContext.intermediate.insertSpirvRequirement((yyvsp[-3].interm.spirvReq));
+ (yyval.interm.type).setSpirvType(*(yyvsp[-1].interm.spirvInst));
+ }
+#line 12130 "MachineIndependent/glslang_tab.cpp"
+ break;
+
+ case 675: /* spirv_type_parameter_list: spirv_type_parameter */
+#line 4357 "MachineIndependent/glslang.y"
+ {
+ (yyval.interm.spirvTypeParams) = (yyvsp[0].interm.spirvTypeParams);
+ }
+#line 12138 "MachineIndependent/glslang_tab.cpp"
+ break;
+
+ case 676: /* spirv_type_parameter_list: spirv_type_parameter_list COMMA spirv_type_parameter */
+#line 4360 "MachineIndependent/glslang.y"
+ {
+ (yyval.interm.spirvTypeParams) = parseContext.mergeSpirvTypeParameters((yyvsp[-2].interm.spirvTypeParams), (yyvsp[0].interm.spirvTypeParams));
+ }
+#line 12146 "MachineIndependent/glslang_tab.cpp"
+ break;
+
+ case 677: /* spirv_type_parameter: constant_expression */
+#line 4365 "MachineIndependent/glslang.y"
+ {
+ (yyval.interm.spirvTypeParams) = parseContext.makeSpirvTypeParameters((yyvsp[0].interm.intermTypedNode)->getLoc(), (yyvsp[0].interm.intermTypedNode)->getAsConstantUnion());
+ }
+#line 12154 "MachineIndependent/glslang_tab.cpp"
+ break;
+
+ case 678: /* spirv_type_parameter: type_specifier */
+#line 4368 "MachineIndependent/glslang.y"
+ {
+ (yyval.interm.spirvTypeParams) = parseContext.makeSpirvTypeParameters((yyvsp[0].interm.type));
+ }
+#line 12162 "MachineIndependent/glslang_tab.cpp"
+ break;
+
+ case 679: /* spirv_instruction_qualifier: SPIRV_INSTRUCTION LEFT_PAREN spirv_instruction_qualifier_list RIGHT_PAREN */
+#line 4373 "MachineIndependent/glslang.y"
+ {
+ (yyval.interm.spirvInst) = (yyvsp[-1].interm.spirvInst);
+ }
+#line 12170 "MachineIndependent/glslang_tab.cpp"
+ break;
+
+ case 680: /* spirv_instruction_qualifier: SPIRV_INSTRUCTION LEFT_PAREN spirv_requirements_list COMMA spirv_instruction_qualifier_list RIGHT_PAREN */
+#line 4376 "MachineIndependent/glslang.y"
+ {
+ parseContext.intermediate.insertSpirvRequirement((yyvsp[-3].interm.spirvReq));
+ (yyval.interm.spirvInst) = (yyvsp[-1].interm.spirvInst);
+ }
+#line 12179 "MachineIndependent/glslang_tab.cpp"
+ break;
+
+ case 681: /* spirv_instruction_qualifier_list: spirv_instruction_qualifier_id */
+#line 4382 "MachineIndependent/glslang.y"
+ {
+ (yyval.interm.spirvInst) = (yyvsp[0].interm.spirvInst);
+ }
+#line 12187 "MachineIndependent/glslang_tab.cpp"
+ break;
+
+ case 682: /* spirv_instruction_qualifier_list: spirv_instruction_qualifier_list COMMA spirv_instruction_qualifier_id */
+#line 4385 "MachineIndependent/glslang.y"
+ {
+ (yyval.interm.spirvInst) = parseContext.mergeSpirvInstruction((yyvsp[-1].lex).loc, (yyvsp[-2].interm.spirvInst), (yyvsp[0].interm.spirvInst));
+ }
+#line 12195 "MachineIndependent/glslang_tab.cpp"
+ break;
+
+ case 683: /* spirv_instruction_qualifier_id: IDENTIFIER EQUAL STRING_LITERAL */
+#line 4390 "MachineIndependent/glslang.y"
+ {
+ (yyval.interm.spirvInst) = parseContext.makeSpirvInstruction((yyvsp[-1].lex).loc, *(yyvsp[-2].lex).string, *(yyvsp[0].lex).string);
+ }
+#line 12203 "MachineIndependent/glslang_tab.cpp"
+ break;
+
+ case 684: /* spirv_instruction_qualifier_id: IDENTIFIER EQUAL INTCONSTANT */
+#line 4393 "MachineIndependent/glslang.y"
+ {
+ (yyval.interm.spirvInst) = parseContext.makeSpirvInstruction((yyvsp[-1].lex).loc, *(yyvsp[-2].lex).string, (yyvsp[0].lex).i);
+ }
+#line 12211 "MachineIndependent/glslang_tab.cpp"
break;
-#line 10999 "MachineIndependent/glslang_tab.cpp"
+#line 12215 "MachineIndependent/glslang_tab.cpp"
default: break;
}
@@ -11220,5 +12436,5 @@ yyreturn:
return yyresult;
}
-#line 4044 "MachineIndependent/glslang.y"
+#line 4398 "MachineIndependent/glslang.y"
diff --git a/thirdparty/glslang/glslang/MachineIndependent/glslang_tab.cpp.h b/thirdparty/glslang/glslang/MachineIndependent/glslang_tab.cpp.h
index d6bc00d9e8..596a10e6d9 100644
--- a/thirdparty/glslang/glslang/MachineIndependent/glslang_tab.cpp.h
+++ b/thirdparty/glslang/glslang/MachineIndependent/glslang_tab.cpp.h
@@ -368,134 +368,144 @@ extern int yydebug;
USUBPASSINPUTMS = 569, /* USUBPASSINPUTMS */
F16SUBPASSINPUT = 570, /* F16SUBPASSINPUT */
F16SUBPASSINPUTMS = 571, /* F16SUBPASSINPUTMS */
- LEFT_OP = 572, /* LEFT_OP */
- RIGHT_OP = 573, /* RIGHT_OP */
- INC_OP = 574, /* INC_OP */
- DEC_OP = 575, /* DEC_OP */
- LE_OP = 576, /* LE_OP */
- GE_OP = 577, /* GE_OP */
- EQ_OP = 578, /* EQ_OP */
- NE_OP = 579, /* NE_OP */
- AND_OP = 580, /* AND_OP */
- OR_OP = 581, /* OR_OP */
- XOR_OP = 582, /* XOR_OP */
- MUL_ASSIGN = 583, /* MUL_ASSIGN */
- DIV_ASSIGN = 584, /* DIV_ASSIGN */
- ADD_ASSIGN = 585, /* ADD_ASSIGN */
- MOD_ASSIGN = 586, /* MOD_ASSIGN */
- LEFT_ASSIGN = 587, /* LEFT_ASSIGN */
- RIGHT_ASSIGN = 588, /* RIGHT_ASSIGN */
- AND_ASSIGN = 589, /* AND_ASSIGN */
- XOR_ASSIGN = 590, /* XOR_ASSIGN */
- OR_ASSIGN = 591, /* OR_ASSIGN */
- SUB_ASSIGN = 592, /* SUB_ASSIGN */
- STRING_LITERAL = 593, /* STRING_LITERAL */
- LEFT_PAREN = 594, /* LEFT_PAREN */
- RIGHT_PAREN = 595, /* RIGHT_PAREN */
- LEFT_BRACKET = 596, /* LEFT_BRACKET */
- RIGHT_BRACKET = 597, /* RIGHT_BRACKET */
- LEFT_BRACE = 598, /* LEFT_BRACE */
- RIGHT_BRACE = 599, /* RIGHT_BRACE */
- DOT = 600, /* DOT */
- COMMA = 601, /* COMMA */
- COLON = 602, /* COLON */
- EQUAL = 603, /* EQUAL */
- SEMICOLON = 604, /* SEMICOLON */
- BANG = 605, /* BANG */
- DASH = 606, /* DASH */
- TILDE = 607, /* TILDE */
- PLUS = 608, /* PLUS */
- STAR = 609, /* STAR */
- SLASH = 610, /* SLASH */
- PERCENT = 611, /* PERCENT */
- LEFT_ANGLE = 612, /* LEFT_ANGLE */
- RIGHT_ANGLE = 613, /* RIGHT_ANGLE */
- VERTICAL_BAR = 614, /* VERTICAL_BAR */
- CARET = 615, /* CARET */
- AMPERSAND = 616, /* AMPERSAND */
- QUESTION = 617, /* QUESTION */
- INVARIANT = 618, /* INVARIANT */
- HIGH_PRECISION = 619, /* HIGH_PRECISION */
- MEDIUM_PRECISION = 620, /* MEDIUM_PRECISION */
- LOW_PRECISION = 621, /* LOW_PRECISION */
- PRECISION = 622, /* PRECISION */
- PACKED = 623, /* PACKED */
- RESOURCE = 624, /* RESOURCE */
- SUPERP = 625, /* SUPERP */
- FLOATCONSTANT = 626, /* FLOATCONSTANT */
- INTCONSTANT = 627, /* INTCONSTANT */
- UINTCONSTANT = 628, /* UINTCONSTANT */
- BOOLCONSTANT = 629, /* BOOLCONSTANT */
- IDENTIFIER = 630, /* IDENTIFIER */
- TYPE_NAME = 631, /* TYPE_NAME */
- CENTROID = 632, /* CENTROID */
- IN = 633, /* IN */
- OUT = 634, /* OUT */
- INOUT = 635, /* INOUT */
- STRUCT = 636, /* STRUCT */
- VOID = 637, /* VOID */
- WHILE = 638, /* WHILE */
- BREAK = 639, /* BREAK */
- CONTINUE = 640, /* CONTINUE */
- DO = 641, /* DO */
- ELSE = 642, /* ELSE */
- FOR = 643, /* FOR */
- IF = 644, /* IF */
- DISCARD = 645, /* DISCARD */
- RETURN = 646, /* RETURN */
- SWITCH = 647, /* SWITCH */
- CASE = 648, /* CASE */
- DEFAULT = 649, /* DEFAULT */
- TERMINATE_INVOCATION = 650, /* TERMINATE_INVOCATION */
- TERMINATE_RAY = 651, /* TERMINATE_RAY */
- IGNORE_INTERSECTION = 652, /* IGNORE_INTERSECTION */
- UNIFORM = 653, /* UNIFORM */
- SHARED = 654, /* SHARED */
- BUFFER = 655, /* BUFFER */
- FLAT = 656, /* FLAT */
- SMOOTH = 657, /* SMOOTH */
- LAYOUT = 658, /* LAYOUT */
- DOUBLECONSTANT = 659, /* DOUBLECONSTANT */
- INT16CONSTANT = 660, /* INT16CONSTANT */
- UINT16CONSTANT = 661, /* UINT16CONSTANT */
- FLOAT16CONSTANT = 662, /* FLOAT16CONSTANT */
- INT32CONSTANT = 663, /* INT32CONSTANT */
- UINT32CONSTANT = 664, /* UINT32CONSTANT */
- INT64CONSTANT = 665, /* INT64CONSTANT */
- UINT64CONSTANT = 666, /* UINT64CONSTANT */
- SUBROUTINE = 667, /* SUBROUTINE */
- DEMOTE = 668, /* DEMOTE */
- PAYLOADNV = 669, /* PAYLOADNV */
- PAYLOADINNV = 670, /* PAYLOADINNV */
- HITATTRNV = 671, /* HITATTRNV */
- CALLDATANV = 672, /* CALLDATANV */
- CALLDATAINNV = 673, /* CALLDATAINNV */
- PAYLOADEXT = 674, /* PAYLOADEXT */
- PAYLOADINEXT = 675, /* PAYLOADINEXT */
- HITATTREXT = 676, /* HITATTREXT */
- CALLDATAEXT = 677, /* CALLDATAEXT */
- CALLDATAINEXT = 678, /* CALLDATAINEXT */
- PATCH = 679, /* PATCH */
- SAMPLE = 680, /* SAMPLE */
- NONUNIFORM = 681, /* NONUNIFORM */
- COHERENT = 682, /* COHERENT */
- VOLATILE = 683, /* VOLATILE */
- RESTRICT = 684, /* RESTRICT */
- READONLY = 685, /* READONLY */
- WRITEONLY = 686, /* WRITEONLY */
- DEVICECOHERENT = 687, /* DEVICECOHERENT */
- QUEUEFAMILYCOHERENT = 688, /* QUEUEFAMILYCOHERENT */
- WORKGROUPCOHERENT = 689, /* WORKGROUPCOHERENT */
- SUBGROUPCOHERENT = 690, /* SUBGROUPCOHERENT */
- NONPRIVATE = 691, /* NONPRIVATE */
- SHADERCALLCOHERENT = 692, /* SHADERCALLCOHERENT */
- NOPERSPECTIVE = 693, /* NOPERSPECTIVE */
- EXPLICITINTERPAMD = 694, /* EXPLICITINTERPAMD */
- PERVERTEXNV = 695, /* PERVERTEXNV */
- PERPRIMITIVENV = 696, /* PERPRIMITIVENV */
- PERVIEWNV = 697, /* PERVIEWNV */
- PERTASKNV = 698, /* PERTASKNV */
- PRECISE = 699 /* PRECISE */
+ SPIRV_INSTRUCTION = 572, /* SPIRV_INSTRUCTION */
+ SPIRV_EXECUTION_MODE = 573, /* SPIRV_EXECUTION_MODE */
+ SPIRV_EXECUTION_MODE_ID = 574, /* SPIRV_EXECUTION_MODE_ID */
+ SPIRV_DECORATE = 575, /* SPIRV_DECORATE */
+ SPIRV_DECORATE_ID = 576, /* SPIRV_DECORATE_ID */
+ SPIRV_DECORATE_STRING = 577, /* SPIRV_DECORATE_STRING */
+ SPIRV_TYPE = 578, /* SPIRV_TYPE */
+ SPIRV_STORAGE_CLASS = 579, /* SPIRV_STORAGE_CLASS */
+ SPIRV_BY_REFERENCE = 580, /* SPIRV_BY_REFERENCE */
+ SPIRV_LITERAL = 581, /* SPIRV_LITERAL */
+ LEFT_OP = 582, /* LEFT_OP */
+ RIGHT_OP = 583, /* RIGHT_OP */
+ INC_OP = 584, /* INC_OP */
+ DEC_OP = 585, /* DEC_OP */
+ LE_OP = 586, /* LE_OP */
+ GE_OP = 587, /* GE_OP */
+ EQ_OP = 588, /* EQ_OP */
+ NE_OP = 589, /* NE_OP */
+ AND_OP = 590, /* AND_OP */
+ OR_OP = 591, /* OR_OP */
+ XOR_OP = 592, /* XOR_OP */
+ MUL_ASSIGN = 593, /* MUL_ASSIGN */
+ DIV_ASSIGN = 594, /* DIV_ASSIGN */
+ ADD_ASSIGN = 595, /* ADD_ASSIGN */
+ MOD_ASSIGN = 596, /* MOD_ASSIGN */
+ LEFT_ASSIGN = 597, /* LEFT_ASSIGN */
+ RIGHT_ASSIGN = 598, /* RIGHT_ASSIGN */
+ AND_ASSIGN = 599, /* AND_ASSIGN */
+ XOR_ASSIGN = 600, /* XOR_ASSIGN */
+ OR_ASSIGN = 601, /* OR_ASSIGN */
+ SUB_ASSIGN = 602, /* SUB_ASSIGN */
+ STRING_LITERAL = 603, /* STRING_LITERAL */
+ LEFT_PAREN = 604, /* LEFT_PAREN */
+ RIGHT_PAREN = 605, /* RIGHT_PAREN */
+ LEFT_BRACKET = 606, /* LEFT_BRACKET */
+ RIGHT_BRACKET = 607, /* RIGHT_BRACKET */
+ LEFT_BRACE = 608, /* LEFT_BRACE */
+ RIGHT_BRACE = 609, /* RIGHT_BRACE */
+ DOT = 610, /* DOT */
+ COMMA = 611, /* COMMA */
+ COLON = 612, /* COLON */
+ EQUAL = 613, /* EQUAL */
+ SEMICOLON = 614, /* SEMICOLON */
+ BANG = 615, /* BANG */
+ DASH = 616, /* DASH */
+ TILDE = 617, /* TILDE */
+ PLUS = 618, /* PLUS */
+ STAR = 619, /* STAR */
+ SLASH = 620, /* SLASH */
+ PERCENT = 621, /* PERCENT */
+ LEFT_ANGLE = 622, /* LEFT_ANGLE */
+ RIGHT_ANGLE = 623, /* RIGHT_ANGLE */
+ VERTICAL_BAR = 624, /* VERTICAL_BAR */
+ CARET = 625, /* CARET */
+ AMPERSAND = 626, /* AMPERSAND */
+ QUESTION = 627, /* QUESTION */
+ INVARIANT = 628, /* INVARIANT */
+ HIGH_PRECISION = 629, /* HIGH_PRECISION */
+ MEDIUM_PRECISION = 630, /* MEDIUM_PRECISION */
+ LOW_PRECISION = 631, /* LOW_PRECISION */
+ PRECISION = 632, /* PRECISION */
+ PACKED = 633, /* PACKED */
+ RESOURCE = 634, /* RESOURCE */
+ SUPERP = 635, /* SUPERP */
+ FLOATCONSTANT = 636, /* FLOATCONSTANT */
+ INTCONSTANT = 637, /* INTCONSTANT */
+ UINTCONSTANT = 638, /* UINTCONSTANT */
+ BOOLCONSTANT = 639, /* BOOLCONSTANT */
+ IDENTIFIER = 640, /* IDENTIFIER */
+ TYPE_NAME = 641, /* TYPE_NAME */
+ CENTROID = 642, /* CENTROID */
+ IN = 643, /* IN */
+ OUT = 644, /* OUT */
+ INOUT = 645, /* INOUT */
+ STRUCT = 646, /* STRUCT */
+ VOID = 647, /* VOID */
+ WHILE = 648, /* WHILE */
+ BREAK = 649, /* BREAK */
+ CONTINUE = 650, /* CONTINUE */
+ DO = 651, /* DO */
+ ELSE = 652, /* ELSE */
+ FOR = 653, /* FOR */
+ IF = 654, /* IF */
+ DISCARD = 655, /* DISCARD */
+ RETURN = 656, /* RETURN */
+ SWITCH = 657, /* SWITCH */
+ CASE = 658, /* CASE */
+ DEFAULT = 659, /* DEFAULT */
+ TERMINATE_INVOCATION = 660, /* TERMINATE_INVOCATION */
+ TERMINATE_RAY = 661, /* TERMINATE_RAY */
+ IGNORE_INTERSECTION = 662, /* IGNORE_INTERSECTION */
+ UNIFORM = 663, /* UNIFORM */
+ SHARED = 664, /* SHARED */
+ BUFFER = 665, /* BUFFER */
+ FLAT = 666, /* FLAT */
+ SMOOTH = 667, /* SMOOTH */
+ LAYOUT = 668, /* LAYOUT */
+ DOUBLECONSTANT = 669, /* DOUBLECONSTANT */
+ INT16CONSTANT = 670, /* INT16CONSTANT */
+ UINT16CONSTANT = 671, /* UINT16CONSTANT */
+ FLOAT16CONSTANT = 672, /* FLOAT16CONSTANT */
+ INT32CONSTANT = 673, /* INT32CONSTANT */
+ UINT32CONSTANT = 674, /* UINT32CONSTANT */
+ INT64CONSTANT = 675, /* INT64CONSTANT */
+ UINT64CONSTANT = 676, /* UINT64CONSTANT */
+ SUBROUTINE = 677, /* SUBROUTINE */
+ DEMOTE = 678, /* DEMOTE */
+ PAYLOADNV = 679, /* PAYLOADNV */
+ PAYLOADINNV = 680, /* PAYLOADINNV */
+ HITATTRNV = 681, /* HITATTRNV */
+ CALLDATANV = 682, /* CALLDATANV */
+ CALLDATAINNV = 683, /* CALLDATAINNV */
+ PAYLOADEXT = 684, /* PAYLOADEXT */
+ PAYLOADINEXT = 685, /* PAYLOADINEXT */
+ HITATTREXT = 686, /* HITATTREXT */
+ CALLDATAEXT = 687, /* CALLDATAEXT */
+ CALLDATAINEXT = 688, /* CALLDATAINEXT */
+ PATCH = 689, /* PATCH */
+ SAMPLE = 690, /* SAMPLE */
+ NONUNIFORM = 691, /* NONUNIFORM */
+ COHERENT = 692, /* COHERENT */
+ VOLATILE = 693, /* VOLATILE */
+ RESTRICT = 694, /* RESTRICT */
+ READONLY = 695, /* READONLY */
+ WRITEONLY = 696, /* WRITEONLY */
+ DEVICECOHERENT = 697, /* DEVICECOHERENT */
+ QUEUEFAMILYCOHERENT = 698, /* QUEUEFAMILYCOHERENT */
+ WORKGROUPCOHERENT = 699, /* WORKGROUPCOHERENT */
+ SUBGROUPCOHERENT = 700, /* SUBGROUPCOHERENT */
+ NONPRIVATE = 701, /* NONPRIVATE */
+ SHADERCALLCOHERENT = 702, /* SHADERCALLCOHERENT */
+ NOPERSPECTIVE = 703, /* NOPERSPECTIVE */
+ EXPLICITINTERPAMD = 704, /* EXPLICITINTERPAMD */
+ PERVERTEXNV = 705, /* PERVERTEXNV */
+ PERPRIMITIVENV = 706, /* PERPRIMITIVENV */
+ PERVIEWNV = 707, /* PERVIEWNV */
+ PERTASKNV = 708, /* PERTASKNV */
+ PRECISE = 709 /* PRECISE */
};
typedef enum yytokentype yytoken_kind_t;
#endif
@@ -527,6 +537,9 @@ union YYSTYPE
glslang::TIntermNodePair nodePair;
glslang::TIntermTyped* intermTypedNode;
glslang::TAttributes* attributes;
+ glslang::TSpirvRequirement* spirvReq;
+ glslang::TSpirvInstruction* spirvInst;
+ glslang::TSpirvTypeParameters* spirvTypeParams;
};
union {
glslang::TPublicType type;
@@ -540,7 +553,7 @@ union YYSTYPE
glslang::TArraySizes* typeParameters;
} interm;
-#line 544 "MachineIndependent/glslang_tab.cpp.h"
+#line 557 "MachineIndependent/glslang_tab.cpp.h"
};
typedef union YYSTYPE YYSTYPE;
diff --git a/thirdparty/glslang/glslang/MachineIndependent/intermOut.cpp b/thirdparty/glslang/glslang/MachineIndependent/intermOut.cpp
index 5ce3e47280..a0fade16c0 100644
--- a/thirdparty/glslang/glslang/MachineIndependent/intermOut.cpp
+++ b/thirdparty/glslang/glslang/MachineIndependent/intermOut.cpp
@@ -696,6 +696,10 @@ bool TOutputTraverser::visitUnary(TVisit /* visit */, TIntermUnary* node)
case EOpConstructReference: out.debug << "Construct reference type"; break;
+#ifndef GLSLANG_WEB
+ case EOpSpirvInst: out.debug << "spirv_instruction"; break;
+#endif
+
default: out.debug.message(EPrefixError, "Bad unary op");
}
@@ -886,6 +890,7 @@ bool TOutputTraverser::visitAggregate(TVisit /* visit */, TIntermAggregate* node
case EOpTime: out.debug << "time"; break;
case EOpAtomicAdd: out.debug << "AtomicAdd"; break;
+ case EOpAtomicSubtract: out.debug << "AtomicSubtract"; break;
case EOpAtomicMin: out.debug << "AtomicMin"; break;
case EOpAtomicMax: out.debug << "AtomicMax"; break;
case EOpAtomicAnd: out.debug << "AtomicAnd"; break;
@@ -1084,6 +1089,7 @@ bool TOutputTraverser::visitAggregate(TVisit /* visit */, TIntermAggregate* node
case EOpSubpassLoadMS: out.debug << "subpassLoadMS"; break;
case EOpTraceNV: out.debug << "traceNV"; break;
+ case EOpTraceRayMotionNV: out.debug << "traceRayMotionNV"; break;
case EOpTraceKHR: out.debug << "traceRayKHR"; break;
case EOpReportIntersection: out.debug << "reportIntersectionNV"; break;
case EOpIgnoreIntersectionNV: out.debug << "ignoreIntersectionNV"; break;
@@ -1125,6 +1131,10 @@ bool TOutputTraverser::visitAggregate(TVisit /* visit */, TIntermAggregate* node
case EOpIsHelperInvocation: out.debug << "IsHelperInvocation"; break;
case EOpDebugPrintf: out.debug << "Debug printf"; break;
+#ifndef GLSLANG_WEB
+ case EOpSpirvInst: out.debug << "spirv_instruction"; break;
+#endif
+
default: out.debug.message(EPrefixError, "Bad aggregation op");
}
@@ -1486,6 +1496,9 @@ void TIntermediate::output(TInfoSink& infoSink, bool tree)
if (xfbMode)
infoSink.debug << "in xfb mode\n";
+ if (getSubgroupUniformControlFlow())
+ infoSink.debug << "subgroup_uniform_control_flow\n";
+
switch (language) {
case EShLangVertex:
break;
diff --git a/thirdparty/glslang/glslang/MachineIndependent/iomapper.cpp b/thirdparty/glslang/glslang/MachineIndependent/iomapper.cpp
index c42e74fa5f..7e12864f36 100644
--- a/thirdparty/glslang/glslang/MachineIndependent/iomapper.cpp
+++ b/thirdparty/glslang/glslang/MachineIndependent/iomapper.cpp
@@ -210,8 +210,8 @@ struct TResolverUniformAdaptor {
ent.newIndex = -1;
const bool isValid = resolver.validateBinding(stage, ent);
if (isValid) {
- resolver.resolveBinding(ent.stage, ent);
resolver.resolveSet(ent.stage, ent);
+ resolver.resolveBinding(ent.stage, ent);
resolver.resolveUniformLocation(ent.stage, ent);
if (ent.newBinding != -1) {
@@ -317,15 +317,13 @@ private:
};
// The class is used for reserving explicit uniform locations and ubo/ssbo/opaque bindings
+// xxTODO: maybe this logic should be moved into the resolver's "validateInOut" and "validateUniform"
struct TSymbolValidater
{
TSymbolValidater(TIoMapResolver& r, TInfoSink& i, TVarLiveMap* in[EShLangCount], TVarLiveMap* out[EShLangCount],
TVarLiveMap* uniform[EShLangCount], bool& hadError, EProfile profile, int version)
- : preStage(EShLangCount)
- , currentStage(EShLangCount)
- , nextStage(EShLangCount)
- , resolver(r)
+ : resolver(r)
, infoSink(i)
, hadError(hadError)
, profile(profile)
@@ -438,17 +436,23 @@ struct TSymbolValidater
TIntermSymbol* base = ent1.symbol;
const TType& type = ent1.symbol->getType();
const TString& name = entKey.first;
- EShLanguage stage = ent1.stage;
TString mangleName1, mangleName2;
- if (currentStage != stage) {
- preStage = currentStage;
- currentStage = stage;
- nextStage = EShLangCount;
- for (int i = currentStage + 1; i < EShLangCount; i++) {
- if (inVarMaps[i] != nullptr) {
- nextStage = static_cast<EShLanguage>(i);
- break;
- }
+ EShLanguage stage = ent1.stage;
+ EShLanguage preStage, currentStage, nextStage;
+
+ preStage = EShLangCount;
+ for (int i = stage - 1; i >= 0; i--) {
+ if (inVarMaps[i] != nullptr) {
+ preStage = static_cast<EShLanguage>(i);
+ break;
+ }
+ }
+ currentStage = stage;
+ nextStage = EShLangCount;
+ for (int i = stage + 1; i < EShLangCount; i++) {
+ if (inVarMaps[i] != nullptr) {
+ nextStage = static_cast<EShLanguage>(i);
+ break;
}
}
@@ -459,6 +463,9 @@ struct TSymbolValidater
type.appendMangledName(mangleName1);
}
+
+ // basic checking that symbols match
+ // more extensive checking in the link stage
if (base->getQualifier().storage == EvqVaryingIn) {
// validate stage in;
if (preStage == EShLangCount)
@@ -484,8 +491,7 @@ struct TSymbolValidater
if (ent2->second.symbol->getType().getQualifier().isArrayedIo(preStage)) {
TType subType(ent2->second.symbol->getType(), 0);
subType.appendMangledName(mangleName2);
- }
- else {
+ } else {
ent2->second.symbol->getType().appendMangledName(mangleName2);
}
@@ -536,8 +542,7 @@ struct TSymbolValidater
if (ent2->second.symbol->getType().getQualifier().isArrayedIo(nextStage)) {
TType subType(ent2->second.symbol->getType(), 0);
subType.appendMangledName(mangleName2);
- }
- else {
+ } else {
ent2->second.symbol->getType().appendMangledName(mangleName2);
}
if (mangleName1 == mangleName2)
@@ -550,7 +555,7 @@ struct TSymbolValidater
}
return;
}
- } else if (base->getQualifier().isUniformOrBuffer() && ! base->getQualifier().isPushConstant()) {
+ } else if (base->getQualifier().isUniformOrBuffer() && !base->getQualifier().isPushConstant()) {
// validate uniform type;
for (int i = 0; i < EShLangCount; i++) {
if (i != currentStage && outVarMaps[i] != nullptr) {
@@ -558,6 +563,7 @@ struct TSymbolValidater
if (ent2 != uniformVarMap[i]->end()) {
ent2->second.symbol->getType().appendMangledName(mangleName2);
if (mangleName1 != mangleName2) {
+ ent2->second.symbol->getType().sameElementType(type);
TString err = "Invalid Uniform variable type : " + entKey.first;
infoSink.info.message(EPrefixInternalError, err.c_str());
hadError = true;
@@ -608,8 +614,7 @@ struct TSymbolValidater
}
TVarLiveMap *inVarMaps[EShLangCount], *outVarMaps[EShLangCount], *uniformVarMap[EShLangCount];
- // Use for mark pre stage, to get more interface symbol information.
- EShLanguage preStage, currentStage, nextStage;
+
// Use for mark current shader stage for resolver
TIoMapResolver& resolver;
TInfoSink& infoSink;
@@ -749,14 +754,18 @@ TDefaultIoResolverBase::TDefaultIoResolverBase(const TIntermediate& intermediate
, nextOutputLocation(0)
{
memset(stageMask, false, sizeof(bool) * (EShLangCount + 1));
+ memset(stageIntermediates, 0, sizeof(TIntermediate*) * (EShLangCount));
+ stageIntermediates[intermediate.getStage()] = &intermediate;
}
-int TDefaultIoResolverBase::getBaseBinding(TResourceType res, unsigned int set) const {
- return selectBaseBinding(intermediate.getShiftBinding(res), intermediate.getShiftBindingForSet(res, set));
+int TDefaultIoResolverBase::getBaseBinding(EShLanguage stage, TResourceType res, unsigned int set) const {
+ return stageIntermediates[stage] ? selectBaseBinding(stageIntermediates[stage]->getShiftBinding(res), stageIntermediates[stage]->getShiftBindingForSet(res, set))
+ : selectBaseBinding(intermediate.getShiftBinding(res), intermediate.getShiftBindingForSet(res, set));
}
-const std::vector<std::string>& TDefaultIoResolverBase::getResourceSetBinding() const {
- return intermediate.getResourceSetBinding();
+const std::vector<std::string>& TDefaultIoResolverBase::getResourceSetBinding(EShLanguage stage) const {
+ return stageIntermediates[stage] ? stageIntermediates[stage]->getResourceSetBinding()
+ : intermediate.getResourceSetBinding();
}
bool TDefaultIoResolverBase::doAutoBindingMapping() const { return intermediate.getAutoMapBindings(); }
@@ -797,14 +806,14 @@ int TDefaultIoResolverBase::getFreeSlot(int set, int base, int size) {
return reserveSlot(set, base, size);
}
-int TDefaultIoResolverBase::resolveSet(EShLanguage /*stage*/, TVarEntryInfo& ent) {
+int TDefaultIoResolverBase::resolveSet(EShLanguage stage, TVarEntryInfo& ent) {
const TType& type = ent.symbol->getType();
if (type.getQualifier().hasSet()) {
return ent.newSet = type.getQualifier().layoutSet;
}
// If a command line or API option requested a single descriptor set, use that (if not overrided by spaceN)
- if (getResourceSetBinding().size() == 1) {
- return ent.newSet = atoi(getResourceSetBinding()[0].c_str());
+ if (getResourceSetBinding(stage).size() == 1) {
+ return ent.newSet = atoi(getResourceSetBinding(stage)[0].c_str());
}
return ent.newSet = 0;
}
@@ -925,7 +934,7 @@ int TDefaultGlslIoResolver::resolveInOutLocation(EShLanguage stage, TVarEntryInf
preStage = currentStage;
currentStage = stage;
}
- // kick out of not doing this
+ // kick out if not doing this
if (! doAutoLocationMapping()) {
return ent.newLocation = -1;
}
@@ -1073,7 +1082,7 @@ int TDefaultGlslIoResolver::resolveUniformLocation(EShLanguage /*stage*/, TVarEn
return ent.newLocation = location;
}
-int TDefaultGlslIoResolver::resolveBinding(EShLanguage /*stage*/, TVarEntryInfo& ent) {
+int TDefaultGlslIoResolver::resolveBinding(EShLanguage stage, TVarEntryInfo& ent) {
const TType& type = ent.symbol->getType();
const TString& name = ent.symbol->getAccessName();
// On OpenGL arrays of opaque types take a separate binding for each element
@@ -1086,30 +1095,32 @@ int TDefaultGlslIoResolver::resolveBinding(EShLanguage /*stage*/, TVarEntryInfo&
// There is no 'set' qualifier in OpenGL shading language, each resource has its own
// binding name space, so remap the 'set' to resource type which make each resource
// binding is valid from 0 to MAX_XXRESOURCE_BINDINGS
- int set = resource;
+ int set = intermediate.getSpv().openGl != 0 ? resource : ent.newSet;
+ int resourceKey = set;
if (resource < EResCount) {
if (type.getQualifier().hasBinding()) {
- ent.newBinding = reserveSlot(set, getBaseBinding(resource, set) + type.getQualifier().layoutBinding, numBindings);
- return ent.newBinding;
- } else if (ent.live && doAutoBindingMapping()) {
+ int newBinding = reserveSlot(resourceKey, getBaseBinding(stage, resource, set) + type.getQualifier().layoutBinding, numBindings);
+ return ent.newBinding = newBinding;
+
+ } else {
// The resource in current stage is not declared with binding, but it is possible declared
// with explicit binding in other stages, find the resourceSlotMap firstly to check whether
// the resource has binding, don't need to allocate if it already has a binding
bool hasBinding = false;
- if (! resourceSlotMap[resource].empty()) {
- TVarSlotMap::iterator iter = resourceSlotMap[resource].find(name);
- if (iter != resourceSlotMap[resource].end()) {
+ ent.newBinding = -1; // leave as -1 if it isn't set below
+
+ if (! resourceSlotMap[resourceKey].empty()) {
+ TVarSlotMap::iterator iter = resourceSlotMap[resourceKey].find(name);
+ if (iter != resourceSlotMap[resourceKey].end()) {
hasBinding = true;
ent.newBinding = iter->second;
}
}
- if (! hasBinding) {
- TVarSlotMap varSlotMap;
+ if (!hasBinding && (ent.live && doAutoBindingMapping())) {
// find free slot, the caller did make sure it passes all vars with binding
// first and now all are passed that do not have a binding and needs one
- int binding = getFreeSlot(resource, getBaseBinding(resource, set), numBindings);
- varSlotMap[name] = binding;
- resourceSlotMap[resource] = varSlotMap;
+ int binding = getFreeSlot(resourceKey, getBaseBinding(stage, resource, set), numBindings);
+ resourceSlotMap[resourceKey][name] = binding;
ent.newBinding = binding;
}
return ent.newBinding;
@@ -1211,16 +1222,20 @@ void TDefaultGlslIoResolver::reserverStorageSlot(TVarEntryInfo& ent, TInfoSink&
void TDefaultGlslIoResolver::reserverResourceSlot(TVarEntryInfo& ent, TInfoSink& infoSink) {
const TType& type = ent.symbol->getType();
const TString& name = ent.symbol->getAccessName();
- int resource = getResourceType(type);
+ TResourceType resource = getResourceType(type);
+ int set = intermediate.getSpv().openGl != 0 ? resource : resolveSet(ent.stage, ent);
+ int resourceKey = set;
+
if (type.getQualifier().hasBinding()) {
- TVarSlotMap& varSlotMap = resourceSlotMap[resource];
+ TVarSlotMap& varSlotMap = resourceSlotMap[resourceKey];
TVarSlotMap::iterator iter = varSlotMap.find(name);
- int binding = type.getQualifier().layoutBinding;
+ int binding = type.getQualifier().layoutBinding + getBaseBinding(ent.stage, resource, set);
+
if (iter == varSlotMap.end()) {
// Reserve the slots for the ubo, ssbo and opaques who has explicit binding
- int numBindings = type.isSizedArray() ? type.getCumulativeArraySize() : 1;
+ int numBindings = intermediate.getSpv().openGl != 0 && type.isSizedArray() ? type.getCumulativeArraySize() : 1;
varSlotMap[name] = binding;
- reserveSlot(resource, binding, numBindings);
+ reserveSlot(resourceKey, binding, numBindings);
} else {
// Allocate binding by name for OpenGL driver, so the resource in different
// stages should be declared with the same binding
@@ -1269,7 +1284,7 @@ struct TDefaultIoResolver : public TDefaultIoResolverBase {
return EResCount;
}
- int resolveBinding(EShLanguage /*stage*/, TVarEntryInfo& ent) override {
+ int resolveBinding(EShLanguage stage, TVarEntryInfo& ent) override {
const TType& type = ent.symbol->getType();
const int set = getLayoutSet(type);
// On OpenGL arrays of opaque types take a seperate binding for each element
@@ -1278,11 +1293,11 @@ struct TDefaultIoResolver : public TDefaultIoResolverBase {
if (resource < EResCount) {
if (type.getQualifier().hasBinding()) {
return ent.newBinding = reserveSlot(
- set, getBaseBinding(resource, set) + type.getQualifier().layoutBinding, numBindings);
+ set, getBaseBinding(stage, resource, set) + type.getQualifier().layoutBinding, numBindings);
} else if (ent.live && doAutoBindingMapping()) {
// find free slot, the caller did make sure it passes all vars with binding
// first and now all are passed that do not have a binding and needs one
- return ent.newBinding = getFreeSlot(set, getBaseBinding(resource, set), numBindings);
+ return ent.newBinding = getFreeSlot(set, getBaseBinding(stage, resource, set), numBindings);
}
}
return ent.newBinding = -1;
@@ -1354,17 +1369,17 @@ struct TDefaultHlslIoResolver : public TDefaultIoResolverBase {
return EResCount;
}
- int resolveBinding(EShLanguage /*stage*/, TVarEntryInfo& ent) override {
+ int resolveBinding(EShLanguage stage, TVarEntryInfo& ent) override {
const TType& type = ent.symbol->getType();
const int set = getLayoutSet(type);
TResourceType resource = getResourceType(type);
if (resource < EResCount) {
if (type.getQualifier().hasBinding()) {
- return ent.newBinding = reserveSlot(set, getBaseBinding(resource, set) + type.getQualifier().layoutBinding);
+ return ent.newBinding = reserveSlot(set, getBaseBinding(stage, resource, set) + type.getQualifier().layoutBinding);
} else if (ent.live && doAutoBindingMapping()) {
// find free slot, the caller did make sure it passes all vars with binding
// first and now all are passed that do not have a binding and needs one
- return ent.newBinding = getFreeSlot(set, getBaseBinding(resource, set));
+ return ent.newBinding = getFreeSlot(set, getBaseBinding(stage, resource, set));
}
}
return ent.newBinding = -1;
@@ -1403,10 +1418,10 @@ bool TIoMapper::addStage(EShLanguage stage, TIntermediate& intermediate, TInfoSi
else
resolver = &defaultResolver;
}
- resolver->addStage(stage);
#else
resolver = &defaultResolver;
#endif
+ resolver->addStage(stage, intermediate);
TVarLiveMap inVarMap, outVarMap, uniformVarMap;
TVarLiveVector inVector, outVector, uniformVector;
@@ -1502,10 +1517,21 @@ bool TGlslIoMapper::addStage(EShLanguage stage, TIntermediate& intermediate, TIn
}
// if no resolver is provided, use the default resolver with the given shifts and auto map settings
TDefaultGlslIoResolver defaultResolver(intermediate);
+#ifdef ENABLE_HLSL
+ TDefaultHlslIoResolver defaultHlslResolver(intermediate);
+ if (resolver == nullptr) {
+ // TODO: use a passed in IO mapper for this
+ if (intermediate.usingHlslIoMapping())
+ resolver = &defaultHlslResolver;
+ else
+ resolver = &defaultResolver;
+ }
+#else
if (resolver == nullptr) {
resolver = &defaultResolver;
}
- resolver->addStage(stage);
+#endif
+ resolver->addStage(stage, intermediate);
inVarMaps[stage] = new TVarLiveMap(); outVarMaps[stage] = new TVarLiveMap(); uniformVarMap[stage] = new TVarLiveMap();
TVarGatherTraverser iter_binding_all(intermediate, true, *inVarMaps[stage], *outVarMaps[stage],
*uniformVarMap[stage]);
@@ -1547,15 +1573,51 @@ bool TGlslIoMapper::doMap(TIoMapResolver* resolver, TInfoSink& infoSink) {
TResolverInOutAdaptor inOutResolve(EShLangCount, *resolver, infoSink, hadError);
TSymbolValidater symbolValidater(*resolver, infoSink, inVarMaps,
outVarMaps, uniformVarMap, hadError, profile, version);
+
+ TVarLiveVector inVectors[EShLangCount];
+ TVarLiveVector outVectors[EShLangCount];
TVarLiveVector uniformVector;
+
resolver->beginResolve(EShLangCount);
for (int stage = EShLangVertex; stage < EShLangCount; stage++) {
if (inVarMaps[stage] != nullptr) {
inOutResolve.setStage(EShLanguage(stage));
- for (auto& var : *(inVarMaps[stage])) { symbolValidater(var); }
- for (auto& var : *(inVarMaps[stage])) { inOutResolve(var); }
- for (auto& var : *(outVarMaps[stage])) { symbolValidater(var); }
- for (auto& var : *(outVarMaps[stage])) { inOutResolve(var); }
+
+ // copy vars into a sorted list
+ std::for_each(inVarMaps[stage]->begin(), inVarMaps[stage]->end(),
+ [&inVectors, stage](TVarLivePair p) { inVectors[stage].push_back(p); });
+ std::sort(inVectors[stage].begin(), inVectors[stage].end(),
+ [](const TVarLivePair& p1, const TVarLivePair& p2) -> bool {
+ return TVarEntryInfo::TOrderByPriority()(p1.second, p2.second);
+ });
+
+ std::for_each(outVarMaps[stage]->begin(), outVarMaps[stage]->end(),
+ [&outVectors, stage](TVarLivePair p) { outVectors[stage].push_back(p); });
+ std::sort(outVectors[stage].begin(), outVectors[stage].end(),
+ [](const TVarLivePair& p1, const TVarLivePair& p2) -> bool {
+ return TVarEntryInfo::TOrderByPriority()(p1.second, p2.second);
+ });
+
+ for (auto& var : inVectors[stage]) { symbolValidater(var); }
+ for (auto& var : inVectors[stage]) { inOutResolve(var); }
+ for (auto& var : outVectors[stage]) { symbolValidater(var); }
+ for (auto& var : outVectors[stage]) { inOutResolve(var); }
+
+ // copy results back into maps
+ std::for_each(inVectors[stage].begin(), inVectors[stage].end(),
+ [this, stage](TVarLivePair p) {
+ auto at = inVarMaps[stage]->find(p.first);
+ if (at != inVarMaps[stage]->end())
+ at->second = p.second;
+ });
+
+ std::for_each(outVectors[stage].begin(), outVectors[stage].end(),
+ [this, stage](TVarLivePair p) {
+ auto at = outVarMaps[stage]->find(p.first);
+ if (at != outVarMaps[stage]->end())
+ at->second = p.second;
+ });
+
}
if (uniformVarMap[stage] != nullptr) {
uniformResolve.setStage(EShLanguage(stage));
@@ -1563,7 +1625,7 @@ bool TGlslIoMapper::doMap(TIoMapResolver* resolver, TInfoSink& infoSink) {
}
}
std::sort(uniformVector.begin(), uniformVector.end(), [](const TVarLivePair& p1, const TVarLivePair& p2) -> bool {
- return TVarEntryInfo::TOrderByPriority()(p1.second, p2.second);
+ return TVarEntryInfo::TOrderByPriorityAndLive()(p1.second, p2.second);
});
for (auto& var : uniformVector) { symbolValidater(var); }
for (auto& var : uniformVector) { uniformResolve(var); }
diff --git a/thirdparty/glslang/glslang/MachineIndependent/iomapper.h b/thirdparty/glslang/glslang/MachineIndependent/iomapper.h
index 7934c4a9d1..07357c2ef4 100644
--- a/thirdparty/glslang/glslang/MachineIndependent/iomapper.h
+++ b/thirdparty/glslang/glslang/MachineIndependent/iomapper.h
@@ -52,7 +52,7 @@ namespace glslang {
class TIntermediate;
struct TVarEntryInfo {
- int id;
+ long long id;
TIntermSymbol* symbol;
bool live;
int newBinding;
@@ -87,6 +87,35 @@ struct TVarEntryInfo {
return lPoints > rPoints;
}
};
+
+ struct TOrderByPriorityAndLive {
+ // ordering:
+ // 1) do live variables first
+ // 2) has both binding and set
+ // 3) has binding but no set
+ // 4) has no binding but set
+ // 5) has no binding and no set
+ inline bool operator()(const TVarEntryInfo& l, const TVarEntryInfo& r) {
+
+ const TQualifier& lq = l.symbol->getQualifier();
+ const TQualifier& rq = r.symbol->getQualifier();
+
+ // simple rules:
+ // has binding gives 2 points
+ // has set gives 1 point
+ // who has the most points is more important.
+ int lPoints = (lq.hasBinding() ? 2 : 0) + (lq.hasSet() ? 1 : 0);
+ int rPoints = (rq.hasBinding() ? 2 : 0) + (rq.hasSet() ? 1 : 0);
+
+ if (l.live != r.live)
+ return l.live > r.live;
+
+ if (lPoints != rPoints)
+ return lPoints > rPoints;
+
+ return l.id < r.id;
+ }
+ };
};
// Base class for shared TIoMapResolver services, used by several derivations.
@@ -107,8 +136,8 @@ public:
void endCollect(EShLanguage) override {}
void reserverResourceSlot(TVarEntryInfo& /*ent*/, TInfoSink& /*infoSink*/) override {}
void reserverStorageSlot(TVarEntryInfo& /*ent*/, TInfoSink& /*infoSink*/) override {}
- int getBaseBinding(TResourceType res, unsigned int set) const;
- const std::vector<std::string>& getResourceSetBinding() const;
+ int getBaseBinding(EShLanguage stage, TResourceType res, unsigned int set) const;
+ const std::vector<std::string>& getResourceSetBinding(EShLanguage stage) const;
virtual TResourceType getResourceType(const glslang::TType& type) = 0;
bool doAutoBindingMapping() const;
bool doAutoLocationMapping() const;
@@ -122,9 +151,11 @@ public:
int resolveInOutLocation(EShLanguage stage, TVarEntryInfo& ent) override;
int resolveInOutComponent(EShLanguage /*stage*/, TVarEntryInfo& ent) override;
int resolveInOutIndex(EShLanguage /*stage*/, TVarEntryInfo& ent) override;
- void addStage(EShLanguage stage) override {
- if (stage < EShLangCount)
+ void addStage(EShLanguage stage, TIntermediate& stageIntermediate) override {
+ if (stage < EShLangCount) {
stageMask[stage] = true;
+ stageIntermediates[stage] = &stageIntermediate;
+ }
}
uint32_t computeTypeLocationSize(const TType& type, EShLanguage stage);
@@ -139,6 +170,8 @@ protected:
int nextInputLocation;
int nextOutputLocation;
bool stageMask[EShLangCount + 1];
+ const TIntermediate* stageIntermediates[EShLangCount];
+
// Return descriptor set specific base if there is one, and the generic base otherwise.
int selectBaseBinding(int base, int descriptorSetBase) const {
return descriptorSetBase != -1 ? descriptorSetBase : base;
diff --git a/thirdparty/glslang/glslang/MachineIndependent/limits.cpp b/thirdparty/glslang/glslang/MachineIndependent/limits.cpp
index 51d9300341..391570579d 100644
--- a/thirdparty/glslang/glslang/MachineIndependent/limits.cpp
+++ b/thirdparty/glslang/glslang/MachineIndependent/limits.cpp
@@ -63,14 +63,14 @@ namespace glslang {
class TInductiveTraverser : public TIntermTraverser {
public:
- TInductiveTraverser(int id, TSymbolTable& st)
+ TInductiveTraverser(long long id, TSymbolTable& st)
: loopId(id), symbolTable(st), bad(false) { }
virtual bool visitBinary(TVisit, TIntermBinary* node);
virtual bool visitUnary(TVisit, TIntermUnary* node);
virtual bool visitAggregate(TVisit, TIntermAggregate* node);
- int loopId; // unique ID of the symbol that's the loop inductive variable
+ long long loopId; // unique ID of the symbol that's the loop inductive variable
TSymbolTable& symbolTable;
bool bad;
TSourceLoc badLoc;
@@ -129,7 +129,7 @@ bool TInductiveTraverser::visitAggregate(TVisit /* visit */, TIntermAggregate* n
//
// External function to call for loop check.
//
-void TParseContext::inductiveLoopBodyCheck(TIntermNode* body, int loopId, TSymbolTable& symbolTable)
+void TParseContext::inductiveLoopBodyCheck(TIntermNode* body, long long loopId, TSymbolTable& symbolTable)
{
TInductiveTraverser it(loopId, symbolTable);
diff --git a/thirdparty/glslang/glslang/MachineIndependent/linkValidate.cpp b/thirdparty/glslang/glslang/MachineIndependent/linkValidate.cpp
index 4e84adbf0a..9656e2e7e0 100644
--- a/thirdparty/glslang/glslang/MachineIndependent/linkValidate.cpp
+++ b/thirdparty/glslang/glslang/MachineIndependent/linkValidate.cpp
@@ -48,6 +48,7 @@
#include "localintermediate.h"
#include "../Include/InfoSink.h"
+#include "SymbolTable.h"
namespace glslang {
@@ -89,6 +90,56 @@ void TIntermediate::merge(TInfoSink& infoSink, TIntermediate& unit)
#endif
}
+//
+// check that link objects between stages
+//
+void TIntermediate::mergeUniformObjects(TInfoSink& infoSink, TIntermediate& unit) {
+ if (unit.treeRoot == nullptr || treeRoot == nullptr)
+ return;
+
+ // Get the linker-object lists
+ TIntermSequence& linkerObjects = findLinkerObjects()->getSequence();
+ TIntermSequence unitLinkerObjects = unit.findLinkerObjects()->getSequence();
+
+ // filter unitLinkerObjects to only contain uniforms
+ auto end = std::remove_if(unitLinkerObjects.begin(), unitLinkerObjects.end(),
+ [](TIntermNode* node) {return node->getAsSymbolNode()->getQualifier().storage != EvqUniform &&
+ node->getAsSymbolNode()->getQualifier().storage != EvqBuffer; });
+ unitLinkerObjects.resize(end - unitLinkerObjects.begin());
+
+ // merge uniforms and do error checking
+ bool mergeExistingOnly = false;
+ mergeGlobalUniformBlocks(infoSink, unit, mergeExistingOnly);
+ mergeLinkerObjects(infoSink, linkerObjects, unitLinkerObjects, unit.getStage());
+}
+
+//
+// do error checking on the shader boundary in / out vars
+//
+void TIntermediate::checkStageIO(TInfoSink& infoSink, TIntermediate& unit) {
+ if (unit.treeRoot == nullptr || treeRoot == nullptr)
+ return;
+
+ // Get copies of the linker-object lists
+ TIntermSequence linkerObjects = findLinkerObjects()->getSequence();
+ TIntermSequence unitLinkerObjects = unit.findLinkerObjects()->getSequence();
+
+ // filter linkerObjects to only contain out variables
+ auto end = std::remove_if(linkerObjects.begin(), linkerObjects.end(),
+ [](TIntermNode* node) {return node->getAsSymbolNode()->getQualifier().storage != EvqVaryingOut; });
+ linkerObjects.resize(end - linkerObjects.begin());
+
+ // filter unitLinkerObjects to only contain in variables
+ auto unitEnd = std::remove_if(unitLinkerObjects.begin(), unitLinkerObjects.end(),
+ [](TIntermNode* node) {return node->getAsSymbolNode()->getQualifier().storage != EvqVaryingIn; });
+ unitLinkerObjects.resize(unitEnd - unitLinkerObjects.begin());
+
+ // do matching and error checking
+ mergeLinkerObjects(infoSink, linkerObjects, unitLinkerObjects, unit.getStage());
+
+ // TODO: final check; make sure that any statically used `in` have matching `out` written to
+}
+
void TIntermediate::mergeCallGraphs(TInfoSink& infoSink, TIntermediate& unit)
{
if (unit.getNumEntryPoints() > 0) {
@@ -136,6 +187,7 @@ void TIntermediate::mergeModes(TInfoSink& infoSink, TIntermediate& unit)
MERGE_MAX(spvVersion.vulkanGlsl);
MERGE_MAX(spvVersion.vulkan);
MERGE_MAX(spvVersion.openGl);
+ MERGE_TRUE(spvVersion.vulkanRelaxed);
numErrors += unit.getNumErrors();
// Only one push_constant is allowed, mergeLinkerObjects() will ensure the push_constant
@@ -264,6 +316,7 @@ void TIntermediate::mergeModes(TInfoSink& infoSink, TIntermediate& unit)
MERGE_TRUE(useUnknownFormat);
MERGE_TRUE(hlslOffsets);
MERGE_TRUE(useStorageBuffer);
+ MERGE_TRUE(invariantAll);
MERGE_TRUE(hlslIoMapping);
// TODO: sourceFile
@@ -306,12 +359,14 @@ void TIntermediate::mergeTrees(TInfoSink& infoSink, TIntermediate& unit)
// Map by global name to unique ID to rationalize the same object having
// differing IDs in different trees.
TIdMaps idMaps;
- int maxId;
- seedIdMap(idMaps, maxId);
- remapIds(idMaps, maxId + 1, unit);
+ long long idShift;
+ seedIdMap(idMaps, idShift);
+ remapIds(idMaps, idShift + 1, unit);
mergeBodies(infoSink, globals, unitGlobals);
- mergeLinkerObjects(infoSink, linkerObjects, unitLinkerObjects);
+ bool mergeExistingOnly = false;
+ mergeGlobalUniformBlocks(infoSink, unit, mergeExistingOnly);
+ mergeLinkerObjects(infoSink, linkerObjects, unitLinkerObjects, unit.getStage());
ioAccessed.insert(unit.ioAccessed.begin(), unit.ioAccessed.end());
}
@@ -329,14 +384,14 @@ static const TString& getNameForIdMap(TIntermSymbol* symbol)
// Traverser that seeds an ID map with all built-ins, and tracks the
-// maximum ID used.
+// maximum ID used, currently using (maximum ID + 1) as new symbol id shift seed.
+// Level id will keep same after shifting.
// (It would be nice to put this in a function, but that causes warnings
// on having no bodies for the copy-constructor/operator=.)
class TBuiltInIdTraverser : public TIntermTraverser {
public:
- TBuiltInIdTraverser(TIdMaps& idMaps) : idMaps(idMaps), maxId(0) { }
+ TBuiltInIdTraverser(TIdMaps& idMaps) : idMaps(idMaps), idShift(0) { }
// If it's a built in, add it to the map.
- // Track the max ID.
virtual void visitSymbol(TIntermSymbol* symbol)
{
const TQualifier& qualifier = symbol->getType().getQualifier();
@@ -344,14 +399,16 @@ public:
TShaderInterface si = symbol->getType().getShaderInterface();
idMaps[si][getNameForIdMap(symbol)] = symbol->getId();
}
- maxId = std::max(maxId, symbol->getId());
+ idShift = (symbol->getId() & ~TSymbolTable::uniqueIdMask) |
+ std::max(idShift & TSymbolTable::uniqueIdMask,
+ symbol->getId() & TSymbolTable::uniqueIdMask);
}
- int getMaxId() const { return maxId; }
+ long long getIdShift() const { return idShift; }
protected:
TBuiltInIdTraverser(TBuiltInIdTraverser&);
TBuiltInIdTraverser& operator=(TBuiltInIdTraverser&);
TIdMaps& idMaps;
- int maxId;
+ long long idShift;
};
// Traverser that seeds an ID map with non-builtins.
@@ -377,12 +434,12 @@ protected:
};
// Initialize the the ID map with what we know of 'this' AST.
-void TIntermediate::seedIdMap(TIdMaps& idMaps, int& maxId)
+void TIntermediate::seedIdMap(TIdMaps& idMaps, long long& idShift)
{
// all built-ins everywhere need to align on IDs and contribute to the max ID
TBuiltInIdTraverser builtInIdTraverser(idMaps);
treeRoot->traverse(&builtInIdTraverser);
- maxId = builtInIdTraverser.getMaxId();
+ idShift = builtInIdTraverser.getIdShift() & TSymbolTable::uniqueIdMask;
// user variables in the linker object list need to align on ids
TUserIdTraverser userIdTraverser(idMaps);
@@ -394,7 +451,7 @@ void TIntermediate::seedIdMap(TIdMaps& idMaps, int& maxId)
// on having no bodies for the copy-constructor/operator=.)
class TRemapIdTraverser : public TIntermTraverser {
public:
- TRemapIdTraverser(const TIdMaps& idMaps, int idShift) : idMaps(idMaps), idShift(idShift) { }
+ TRemapIdTraverser(const TIdMaps& idMaps, long long idShift) : idMaps(idMaps), idShift(idShift) { }
// Do the mapping:
// - if the same symbol, adopt the 'this' ID
// - otherwise, ensure a unique ID by shifting to a new space
@@ -406,7 +463,9 @@ public:
TShaderInterface si = symbol->getType().getShaderInterface();
auto it = idMaps[si].find(getNameForIdMap(symbol));
if (it != idMaps[si].end()) {
- symbol->changeId(it->second);
+ uint64_t id = (symbol->getId() & ~TSymbolTable::uniqueIdMask) |
+ (it->second & TSymbolTable::uniqueIdMask);
+ symbol->changeId(id);
remapped = true;
}
}
@@ -417,10 +476,10 @@ protected:
TRemapIdTraverser(TRemapIdTraverser&);
TRemapIdTraverser& operator=(TRemapIdTraverser&);
const TIdMaps& idMaps;
- int idShift;
+ long long idShift;
};
-void TIntermediate::remapIds(const TIdMaps& idMaps, int idShift, TIntermediate& unit)
+void TIntermediate::remapIds(const TIdMaps& idMaps, long long idShift, TIntermediate& unit)
{
// Remap all IDs to either share or be unique, as dictated by the idMap and idShift.
TRemapIdTraverser idTraverser(idMaps, idShift);
@@ -451,11 +510,193 @@ void TIntermediate::mergeBodies(TInfoSink& infoSink, TIntermSequence& globals, c
globals.insert(globals.end() - 1, unitGlobals.begin(), unitGlobals.end() - 1);
}
+static inline bool isSameInterface(TIntermSymbol* symbol, EShLanguage stage, TIntermSymbol* unitSymbol, EShLanguage unitStage) {
+ return // 1) same stage and same shader interface
+ (stage == unitStage && symbol->getType().getShaderInterface() == unitSymbol->getType().getShaderInterface()) ||
+ // 2) accross stages and both are uniform or buffer
+ (symbol->getQualifier().storage == EvqUniform && unitSymbol->getQualifier().storage == EvqUniform) ||
+ (symbol->getQualifier().storage == EvqBuffer && unitSymbol->getQualifier().storage == EvqBuffer) ||
+ // 3) in/out matched across stage boundary
+ (stage < unitStage && symbol->getQualifier().storage == EvqVaryingOut && unitSymbol->getQualifier().storage == EvqVaryingIn) ||
+ (unitStage < stage && symbol->getQualifier().storage == EvqVaryingIn && unitSymbol->getQualifier().storage == EvqVaryingOut);
+}
+
+//
+// Global Unfiform block stores any default uniforms (i.e. uniforms without a block)
+// If two linked stages declare the same member, they are meant to be the same uniform
+// and need to be in the same block
+// merge the members of different stages to allow them to be linked properly
+// as a single block
+//
+void TIntermediate::mergeGlobalUniformBlocks(TInfoSink& infoSink, TIntermediate& unit, bool mergeExistingOnly)
+{
+ TIntermSequence& linkerObjects = findLinkerObjects()->getSequence();
+ TIntermSequence& unitLinkerObjects = unit.findLinkerObjects()->getSequence();
+
+ // build lists of default blocks from the intermediates
+ TIntermSequence defaultBlocks;
+ TIntermSequence unitDefaultBlocks;
+
+ auto filter = [](TIntermSequence& list, TIntermNode* node) {
+ if (node->getAsSymbolNode()->getQualifier().defaultBlock) {
+ list.push_back(node);
+ }
+ };
+
+ std::for_each(linkerObjects.begin(), linkerObjects.end(),
+ [&defaultBlocks, &filter](TIntermNode* node) {
+ filter(defaultBlocks, node);
+ });
+ std::for_each(unitLinkerObjects.begin(), unitLinkerObjects.end(),
+ [&unitDefaultBlocks, &filter](TIntermNode* node) {
+ filter(unitDefaultBlocks, node);
+ });
+
+ auto itUnitBlock = unitDefaultBlocks.begin();
+ for (; itUnitBlock != unitDefaultBlocks.end(); itUnitBlock++) {
+
+ bool add = !mergeExistingOnly;
+ auto itBlock = defaultBlocks.begin();
+
+ for (; itBlock != defaultBlocks.end(); itBlock++) {
+ TIntermSymbol* block = (*itBlock)->getAsSymbolNode();
+ TIntermSymbol* unitBlock = (*itUnitBlock)->getAsSymbolNode();
+
+ assert(block && unitBlock);
+
+ // if the two default blocks match, then merge their definitions
+ if (block->getType().getTypeName() == unitBlock->getType().getTypeName() &&
+ block->getQualifier().storage == unitBlock->getQualifier().storage) {
+ add = false;
+ mergeBlockDefinitions(infoSink, block, unitBlock, &unit);
+ }
+ }
+ if (add) {
+ // push back on original list; won't change the size of the list we're iterating over
+ linkerObjects.push_back(*itUnitBlock);
+ }
+ }
+}
+
+void TIntermediate::mergeBlockDefinitions(TInfoSink& infoSink, TIntermSymbol* block, TIntermSymbol* unitBlock, TIntermediate* unit) {
+ if (block->getType() == unitBlock->getType()) {
+ return;
+ }
+
+ if (block->getType().getTypeName() != unitBlock->getType().getTypeName() ||
+ block->getType().getBasicType() != unitBlock->getType().getBasicType() ||
+ block->getQualifier().storage != unitBlock->getQualifier().storage ||
+ block->getQualifier().layoutSet != unitBlock->getQualifier().layoutSet) {
+ // different block names likely means different blocks
+ return;
+ }
+
+ // merge the struct
+ // order of declarations doesn't matter and they matched based on member name
+ TTypeList* memberList = block->getType().getWritableStruct();
+ TTypeList* unitMemberList = unitBlock->getType().getWritableStruct();
+
+ // keep track of which members have changed position
+ // so we don't have to search the array again
+ std::map<unsigned int, unsigned int> memberIndexUpdates;
+
+ size_t memberListStartSize = memberList->size();
+ for (unsigned int i = 0; i < unitMemberList->size(); ++i) {
+ bool merge = true;
+ for (unsigned int j = 0; j < memberListStartSize; ++j) {
+ if ((*memberList)[j].type->getFieldName() == (*unitMemberList)[i].type->getFieldName()) {
+ merge = false;
+ const TType* memberType = (*memberList)[j].type;
+ const TType* unitMemberType = (*unitMemberList)[i].type;
+
+ // compare types
+ // don't need as many checks as when merging symbols, since
+ // initializers and most qualifiers are stripped when the member is moved into the block
+ if ((*memberType) != (*unitMemberType)) {
+ error(infoSink, "Types must match:");
+ infoSink.info << " " << memberType->getFieldName() << ": ";
+ infoSink.info << "\"" << memberType->getCompleteString() << "\" versus ";
+ infoSink.info << "\"" << unitMemberType->getCompleteString() << "\"\n";
+ }
+
+ memberIndexUpdates[i] = j;
+ }
+ }
+ if (merge) {
+ memberList->push_back((*unitMemberList)[i]);
+ memberIndexUpdates[i] = (unsigned int)memberList->size() - 1;
+ }
+ }
+
+ TType unitType;
+ unitType.shallowCopy(unitBlock->getType());
+
+ // update symbol node in unit tree,
+ // and other nodes that may reference it
+ class TMergeBlockTraverser : public TIntermTraverser {
+ public:
+ TMergeBlockTraverser(const glslang::TType &type, const glslang::TType& unitType,
+ glslang::TIntermediate& unit,
+ const std::map<unsigned int, unsigned int>& memberIdxUpdates) :
+ newType(type), unitType(unitType), unit(unit), memberIndexUpdates(memberIdxUpdates)
+ { }
+ virtual ~TMergeBlockTraverser() { }
+
+ const glslang::TType& newType; // type with modifications
+ const glslang::TType& unitType; // copy of original type
+ glslang::TIntermediate& unit; // intermediate that is being updated
+ const std::map<unsigned int, unsigned int>& memberIndexUpdates;
+
+ virtual void visitSymbol(TIntermSymbol* symbol)
+ {
+ glslang::TType& symType = symbol->getWritableType();
+
+ if (symType == unitType) {
+ // each symbol node has a local copy of the unitType
+ // if merging involves changing properties that aren't shared objects
+ // they should be updated in all instances
+
+ // e.g. the struct list is a ptr to an object, so it can be updated
+ // once, outside the traverser
+ //*symType.getWritableStruct() = *newType.getStruct();
+ }
+
+ }
+
+ virtual bool visitBinary(TVisit, glslang::TIntermBinary* node)
+ {
+ if (node->getOp() == EOpIndexDirectStruct && node->getLeft()->getType() == unitType) {
+ // this is a dereference to a member of the block since the
+ // member list changed, need to update this to point to the
+ // right index
+ assert(node->getRight()->getAsConstantUnion());
+
+ glslang::TIntermConstantUnion* constNode = node->getRight()->getAsConstantUnion();
+ unsigned int memberIdx = constNode->getConstArray()[0].getUConst();
+ unsigned int newIdx = memberIndexUpdates.at(memberIdx);
+ TIntermTyped* newConstNode = unit.addConstantUnion(newIdx, node->getRight()->getLoc());
+
+ node->setRight(newConstNode);
+ delete constNode;
+
+ return true;
+ }
+ return true;
+ }
+ } finalLinkTraverser(block->getType(), unitType, *unit, memberIndexUpdates);
+
+ // update the tree to use the new type
+ unit->getTreeRoot()->traverse(&finalLinkTraverser);
+
+ // update the member list
+ (*unitMemberList) = (*memberList);
+}
+
//
// Merge the linker objects from unitLinkerObjects into linkerObjects.
// Duplication is expected and filtered out, but contradictions are an error.
//
-void TIntermediate::mergeLinkerObjects(TInfoSink& infoSink, TIntermSequence& linkerObjects, const TIntermSequence& unitLinkerObjects)
+void TIntermediate::mergeLinkerObjects(TInfoSink& infoSink, TIntermSequence& linkerObjects, const TIntermSequence& unitLinkerObjects, EShLanguage unitStage)
{
// Error check and merge the linker objects (duplicates should not be created)
std::size_t initialNumLinkerObjects = linkerObjects.size();
@@ -470,7 +711,7 @@ void TIntermediate::mergeLinkerObjects(TInfoSink& infoSink, TIntermSequence& lin
// If they are both blocks in the same shader interface,
// match by the block-name, not the identifier name.
if (symbol->getType().getBasicType() == EbtBlock && unitSymbol->getType().getBasicType() == EbtBlock) {
- if (symbol->getType().getShaderInterface() == unitSymbol->getType().getShaderInterface()) {
+ if (isSameInterface(symbol, getStage(), unitSymbol, unitStage)) {
isSameSymbol = symbol->getType().getTypeName() == unitSymbol->getType().getTypeName();
}
}
@@ -490,18 +731,54 @@ void TIntermediate::mergeLinkerObjects(TInfoSink& infoSink, TIntermSequence& lin
if (! symbol->getQualifier().hasBinding() && unitSymbol->getQualifier().hasBinding())
symbol->getQualifier().layoutBinding = unitSymbol->getQualifier().layoutBinding;
+ // Similarly for location
+ if (!symbol->getQualifier().hasLocation() && unitSymbol->getQualifier().hasLocation()) {
+ symbol->getQualifier().layoutLocation = unitSymbol->getQualifier().layoutLocation;
+ }
+
// Update implicit array sizes
mergeImplicitArraySizes(symbol->getWritableType(), unitSymbol->getType());
// Check for consistent types/qualification/initializers etc.
- mergeErrorCheck(infoSink, *symbol, *unitSymbol, false);
+ mergeErrorCheck(infoSink, *symbol, *unitSymbol, unitStage);
}
// If different symbols, verify they arn't push_constant since there can only be one per stage
- else if (symbol->getQualifier().isPushConstant() && unitSymbol->getQualifier().isPushConstant())
+ else if (symbol->getQualifier().isPushConstant() && unitSymbol->getQualifier().isPushConstant() && getStage() == unitStage)
error(infoSink, "Only one push_constant block is allowed per stage");
}
- if (merge)
+ if (merge) {
linkerObjects.push_back(unitLinkerObjects[unitLinkObj]);
+
+ // for anonymous blocks, check that their members don't conflict with other names
+ if (unitLinkerObjects[unitLinkObj]->getAsSymbolNode()->getBasicType() == EbtBlock &&
+ IsAnonymous(unitLinkerObjects[unitLinkObj]->getAsSymbolNode()->getName())) {
+ for (std::size_t linkObj = 0; linkObj < initialNumLinkerObjects; ++linkObj) {
+ TIntermSymbol* symbol = linkerObjects[linkObj]->getAsSymbolNode();
+ TIntermSymbol* unitSymbol = unitLinkerObjects[unitLinkObj]->getAsSymbolNode();
+ assert(symbol && unitSymbol);
+
+ auto checkName = [this, unitSymbol, &infoSink](const TString& name) {
+ for (unsigned int i = 0; i < unitSymbol->getType().getStruct()->size(); ++i) {
+ if (name == (*unitSymbol->getType().getStruct())[i].type->getFieldName()) {
+ error(infoSink, "Anonymous member name used for global variable or other anonymous member: ");
+ infoSink.info << (*unitSymbol->getType().getStruct())[i].type->getCompleteString() << "\n";
+ }
+ }
+ };
+
+ if (isSameInterface(symbol, getStage(), unitSymbol, unitStage)) {
+ checkName(symbol->getName());
+
+ // check members of other anonymous blocks
+ if (symbol->getBasicType() == EbtBlock && IsAnonymous(symbol->getName())) {
+ for (unsigned int i = 0; i < symbol->getType().getStruct()->size(); ++i) {
+ checkName((*symbol->getType().getStruct())[i].type->getFieldName());
+ }
+ }
+ }
+ }
+ }
+ }
}
}
@@ -533,26 +810,75 @@ void TIntermediate::mergeImplicitArraySizes(TType& type, const TType& unitType)
//
// This function only does one of intra- or cross-stage matching per call.
//
-void TIntermediate::mergeErrorCheck(TInfoSink& infoSink, const TIntermSymbol& symbol, const TIntermSymbol& unitSymbol, bool crossStage)
+void TIntermediate::mergeErrorCheck(TInfoSink& infoSink, const TIntermSymbol& symbol, const TIntermSymbol& unitSymbol, EShLanguage unitStage)
{
#if !defined(GLSLANG_WEB) && !defined(GLSLANG_ANGLE)
+ bool crossStage = getStage() != unitStage;
bool writeTypeComparison = false;
// Types have to match
- if (symbol.getType() != unitSymbol.getType()) {
+ {
// but, we make an exception if one is an implicit array and the other is sized
- if (! (symbol.getType().isArray() && unitSymbol.getType().isArray() &&
- symbol.getType().sameElementType(unitSymbol.getType()) &&
- (symbol.getType().isUnsizedArray() || unitSymbol.getType().isUnsizedArray()))) {
- error(infoSink, "Types must match:");
+ // or if the array sizes differ because of the extra array dimension on some in/out boundaries
+ bool arraysMatch = false;
+ if (isIoResizeArray(symbol.getType(), getStage()) || isIoResizeArray(unitSymbol.getType(), unitStage)) {
+ // if the arrays have an extra dimension because of the stage.
+ // compare dimensions while ignoring the outer dimension
+ unsigned int firstDim = isIoResizeArray(symbol.getType(), getStage()) ? 1 : 0;
+ unsigned int numDim = symbol.getArraySizes()
+ ? symbol.getArraySizes()->getNumDims() : 0;
+ unsigned int unitFirstDim = isIoResizeArray(unitSymbol.getType(), unitStage) ? 1 : 0;
+ unsigned int unitNumDim = unitSymbol.getArraySizes()
+ ? unitSymbol.getArraySizes()->getNumDims() : 0;
+ arraysMatch = (numDim - firstDim) == (unitNumDim - unitFirstDim);
+ // check that array sizes match as well
+ for (unsigned int i = 0; i < (numDim - firstDim) && arraysMatch; i++) {
+ if (symbol.getArraySizes()->getDimSize(firstDim + i) !=
+ unitSymbol.getArraySizes()->getDimSize(unitFirstDim + i)) {
+ arraysMatch = false;
+ break;
+ }
+ }
+ }
+ else {
+ arraysMatch = symbol.getType().sameArrayness(unitSymbol.getType()) ||
+ (symbol.getType().isArray() && unitSymbol.getType().isArray() &&
+ (symbol.getType().isUnsizedArray() || unitSymbol.getType().isUnsizedArray()));
+ }
+
+ if (!symbol.getType().sameElementType(unitSymbol.getType()) ||
+ !symbol.getType().sameTypeParameters(unitSymbol.getType()) ||
+ !arraysMatch ) {
writeTypeComparison = true;
+ error(infoSink, "Types must match:");
}
}
- // Qualifiers have to (almost) match
+ // Interface block member-wise layout qualifiers have to match
+ if (symbol.getType().getBasicType() == EbtBlock && unitSymbol.getType().getBasicType() == EbtBlock &&
+ symbol.getType().getStruct() && unitSymbol.getType().getStruct() &&
+ symbol.getType().sameStructType(unitSymbol.getType())) {
+ for (unsigned int i = 0; i < symbol.getType().getStruct()->size(); ++i) {
+ const TQualifier& qualifier = (*symbol.getType().getStruct())[i].type->getQualifier();
+ const TQualifier& unitQualifier = (*unitSymbol.getType().getStruct())[i].type->getQualifier();
+ if (qualifier.layoutMatrix != unitQualifier.layoutMatrix ||
+ qualifier.layoutOffset != unitQualifier.layoutOffset ||
+ qualifier.layoutAlign != unitQualifier.layoutAlign ||
+ qualifier.layoutLocation != unitQualifier.layoutLocation ||
+ qualifier.layoutComponent != unitQualifier.layoutComponent) {
+ error(infoSink, "Interface block member layout qualifiers must match:");
+ writeTypeComparison = true;
+ }
+ }
+ }
+
+ bool isInOut = crossStage &&
+ ((symbol.getQualifier().storage == EvqVaryingIn && unitSymbol.getQualifier().storage == EvqVaryingOut) ||
+ (symbol.getQualifier().storage == EvqVaryingOut && unitSymbol.getQualifier().storage == EvqVaryingIn));
+ // Qualifiers have to (almost) match
// Storage...
- if (symbol.getQualifier().storage != unitSymbol.getQualifier().storage) {
+ if (!isInOut && symbol.getQualifier().storage != unitSymbol.getQualifier().storage) {
error(infoSink, "Storage qualifiers must match:");
writeTypeComparison = true;
}
@@ -574,7 +900,7 @@ void TIntermediate::mergeErrorCheck(TInfoSink& infoSink, const TIntermSymbol& sy
}
// Precision...
- if (symbol.getQualifier().precision != unitSymbol.getQualifier().precision) {
+ if (!isInOut && symbol.getQualifier().precision != unitSymbol.getQualifier().precision) {
error(infoSink, "Precision qualifiers must match:");
writeTypeComparison = true;
}
@@ -592,12 +918,16 @@ void TIntermediate::mergeErrorCheck(TInfoSink& infoSink, const TIntermSymbol& sy
}
// Auxiliary and interpolation...
- if (symbol.getQualifier().centroid != unitSymbol.getQualifier().centroid ||
+ // "interpolation qualification (e.g., flat) and auxiliary qualification (e.g. centroid) may differ.
+ // These mismatches are allowed between any pair of stages ...
+ // those provided in the fragment shader supersede those provided in previous stages."
+ if (!crossStage &&
+ (symbol.getQualifier().centroid != unitSymbol.getQualifier().centroid ||
symbol.getQualifier().smooth != unitSymbol.getQualifier().smooth ||
symbol.getQualifier().flat != unitSymbol.getQualifier().flat ||
symbol.getQualifier().isSample()!= unitSymbol.getQualifier().isSample() ||
symbol.getQualifier().isPatch() != unitSymbol.getQualifier().isPatch() ||
- symbol.getQualifier().isNonPerspective() != unitSymbol.getQualifier().isNonPerspective()) {
+ symbol.getQualifier().isNonPerspective() != unitSymbol.getQualifier().isNonPerspective())) {
error(infoSink, "Interpolation and auxiliary storage qualifiers must match:");
writeTypeComparison = true;
}
@@ -653,6 +983,25 @@ void TIntermediate::mergeErrorCheck(TInfoSink& infoSink, const TIntermSymbol& sy
#endif
}
+void TIntermediate::sharedBlockCheck(TInfoSink& infoSink)
+{
+ bool has_shared_block = false;
+ bool has_shared_non_block = false;
+ TIntermSequence& linkObjects = findLinkerObjects()->getSequence();
+ for (size_t i = 0; i < linkObjects.size(); ++i) {
+ const TType& type = linkObjects[i]->getAsTyped()->getType();
+ const TQualifier& qualifier = type.getQualifier();
+ if (qualifier.storage == glslang::EvqShared) {
+ if (type.getBasicType() == glslang::EbtBlock)
+ has_shared_block = true;
+ else
+ has_shared_non_block = true;
+ }
+ }
+ if (has_shared_block && has_shared_non_block)
+ error(infoSink, "cannot mix use of shared variables inside and outside blocks");
+}
+
//
// Do final link-time error checking of a complete (merged) intermediate representation.
// (Much error checking was done during merging).
@@ -778,6 +1127,7 @@ void TIntermediate::finalCheck(TInfoSink& infoSink, bool keepUncalled)
error(infoSink, "post_depth_coverage requires early_fragment_tests");
break;
case EShLangCompute:
+ sharedBlockCheck(infoSink);
break;
case EShLangRayGen:
case EShLangIntersect:
@@ -810,6 +1160,7 @@ void TIntermediate::finalCheck(TInfoSink& infoSink, bool keepUncalled)
case EShLangTaskNV:
if (numTaskNVBlocks > 1)
error(infoSink, "Only one taskNV interface block is allowed per shader");
+ sharedBlockCheck(infoSink);
break;
default:
error(infoSink, "Unknown Stage.");
@@ -1804,4 +2155,17 @@ int TIntermediate::computeBufferReferenceTypeSize(const TType& type)
return size;
}
+#ifndef GLSLANG_WEB
+bool TIntermediate::isIoResizeArray(const TType& type, EShLanguage language) {
+ return type.isArray() &&
+ ((language == EShLangGeometry && type.getQualifier().storage == EvqVaryingIn) ||
+ (language == EShLangTessControl && type.getQualifier().storage == EvqVaryingOut &&
+ ! type.getQualifier().patch) ||
+ (language == EShLangFragment && type.getQualifier().storage == EvqVaryingIn &&
+ type.getQualifier().pervertexNV) ||
+ (language == EShLangMeshNV && type.getQualifier().storage == EvqVaryingOut &&
+ !type.getQualifier().perTaskNV));
+}
+#endif // not GLSLANG_WEB
+
} // end namespace glslang
diff --git a/thirdparty/glslang/glslang/MachineIndependent/localintermediate.h b/thirdparty/glslang/glslang/MachineIndependent/localintermediate.h
index f8d8e80199..6aa9399dcc 100644
--- a/thirdparty/glslang/glslang/MachineIndependent/localintermediate.h
+++ b/thirdparty/glslang/glslang/MachineIndependent/localintermediate.h
@@ -227,10 +227,10 @@ enum ComputeDerivativeMode {
class TIdMaps {
public:
- TMap<TString, int>& operator[](int i) { return maps[i]; }
- const TMap<TString, int>& operator[](int i) const { return maps[i]; }
+ TMap<TString, long long>& operator[](long long i) { return maps[i]; }
+ const TMap<TString, long long>& operator[](long long i) const { return maps[i]; }
private:
- TMap<TString, int> maps[EsiCount];
+ TMap<TString, long long> maps[EsiCount];
};
class TNumericFeatures {
@@ -291,8 +291,15 @@ public:
numEntryPoints(0), numErrors(0), numPushConstants(0), recursive(false),
invertY(false),
useStorageBuffer(false),
+ invariantAll(false),
nanMinMaxClamp(false),
- depthReplacing(false)
+ depthReplacing(false),
+ uniqueId(0),
+ globalUniformBlockName(""),
+ atomicCounterBlockName(""),
+ globalUniformBlockSet(TQualifier::layoutSetEnd),
+ globalUniformBlockBinding(TQualifier::layoutBindingEnd),
+ atomicCounterBlockSet(TQualifier::layoutSetEnd)
#ifndef GLSLANG_WEB
,
implicitThisName("@this"), implicitCounterName("@count"),
@@ -322,7 +329,10 @@ public:
textureSamplerTransformMode(EShTexSampTransKeep),
needToLegalize(false),
binaryDoubleOutput(false),
+ subgroupUniformControlFlow(false),
usePhysicalStorageBuffer(false),
+ spirvRequirement(nullptr),
+ spirvExecutionMode(nullptr),
uniformLocationBase(0)
#endif
{
@@ -529,15 +539,30 @@ public:
TIntermTyped* foldSwizzle(TIntermTyped* node, TSwizzleSelectors<TVectorSelector>& fields, const TSourceLoc&);
// Tree ops
- static const TIntermTyped* findLValueBase(const TIntermTyped*, bool swizzleOkay);
+ static const TIntermTyped* findLValueBase(const TIntermTyped*, bool swizzleOkay , bool BufferReferenceOk = false);
// Linkage related
void addSymbolLinkageNodes(TIntermAggregate*& linkage, EShLanguage, TSymbolTable&);
void addSymbolLinkageNode(TIntermAggregate*& linkage, const TSymbol&);
TIntermAggregate* findLinkerObjects() const;
+ void setGlobalUniformBlockName(const char* name) { globalUniformBlockName = std::string(name); }
+ const char* getGlobalUniformBlockName() const { return globalUniformBlockName.c_str(); }
+ void setGlobalUniformSet(unsigned int set) { globalUniformBlockSet = set; }
+ unsigned int getGlobalUniformSet() const { return globalUniformBlockSet; }
+ void setGlobalUniformBinding(unsigned int binding) { globalUniformBlockBinding = binding; }
+ unsigned int getGlobalUniformBinding() const { return globalUniformBlockBinding; }
+
+ void setAtomicCounterBlockName(const char* name) { atomicCounterBlockName = std::string(name); }
+ const char* getAtomicCounterBlockName() const { return atomicCounterBlockName.c_str(); }
+ void setAtomicCounterBlockSet(unsigned int set) { atomicCounterBlockSet = set; }
+ unsigned int getAtomicCounterBlockSet() const { return atomicCounterBlockSet; }
+
+
void setUseStorageBuffer() { useStorageBuffer = true; }
bool usingStorageBuffer() const { return useStorageBuffer; }
+ void setInvariantAll() { invariantAll = true; }
+ bool isInvariantAll() const { return invariantAll; }
void setDepthReplacing() { depthReplacing = true; }
bool isDepthReplacing() const { return depthReplacing; }
bool setLocalSize(int dim, int size)
@@ -549,6 +574,11 @@ public:
return true;
}
unsigned int getLocalSize(int dim) const { return localSize[dim]; }
+ bool isLocalSizeSet() const
+ {
+ // Return true if any component has been set (i.e. any component is not default).
+ return localSizeNotDefault[0] || localSizeNotDefault[1] || localSizeNotDefault[2];
+ }
bool setLocalSizeSpecId(int dim, int id)
{
if (localSizeSpecId[dim] != TQualifier::layoutNotSet)
@@ -557,6 +587,13 @@ public:
return true;
}
int getLocalSizeSpecId(int dim) const { return localSizeSpecId[dim]; }
+ bool isLocalSizeSpecialized() const
+ {
+ // Return true if any component has been specialized.
+ return localSizeSpecId[0] != TQualifier::layoutNotSet ||
+ localSizeSpecId[1] != TQualifier::layoutNotSet ||
+ localSizeSpecId[2] != TQualifier::layoutNotSet;
+ }
#ifdef GLSLANG_WEB
void output(TInfoSink&, bool tree) { }
@@ -833,8 +870,34 @@ public:
void setBinaryDoubleOutput() { binaryDoubleOutput = true; }
bool getBinaryDoubleOutput() { return binaryDoubleOutput; }
+
+ void setSubgroupUniformControlFlow() { subgroupUniformControlFlow = true; }
+ bool getSubgroupUniformControlFlow() const { return subgroupUniformControlFlow; }
+
+ // GL_EXT_spirv_intrinsics
+ void insertSpirvRequirement(const TSpirvRequirement* spirvReq);
+ bool hasSpirvRequirement() const { return spirvRequirement != nullptr; }
+ const TSpirvRequirement& getSpirvRequirement() const { return *spirvRequirement; }
+ void insertSpirvExecutionMode(int executionMode, const TIntermAggregate* args = nullptr);
+ void insertSpirvExecutionModeId(int executionMode, const TIntermAggregate* args);
+ bool hasSpirvExecutionMode() const { return spirvExecutionMode != nullptr; }
+ const TSpirvExecutionMode& getSpirvExecutionMode() const { return *spirvExecutionMode; }
#endif // GLSLANG_WEB
+ void addBlockStorageOverride(const char* nameStr, TBlockStorageClass backing)
+ {
+ std::string name(nameStr);
+ blockBackingOverrides[name] = backing;
+ }
+ TBlockStorageClass getBlockStorageOverride(const char* nameStr) const
+ {
+ std::string name = nameStr;
+ auto pos = blockBackingOverrides.find(name);
+ if (pos == blockBackingOverrides.end())
+ return EbsNone;
+ else
+ return pos->second;
+ }
#ifdef ENABLE_HLSL
void setHlslFunctionality1() { hlslFunctionality1 = true; }
bool getHlslFunctionality1() const { return hlslFunctionality1; }
@@ -858,10 +921,27 @@ public:
bool usingHlslIoMapping() { return false; }
#endif
+ bool usingScalarBlockLayout() const {
+ for (auto extIt = requestedExtensions.begin(); extIt != requestedExtensions.end(); ++extIt) {
+ if (*extIt == E_GL_EXT_scalar_block_layout)
+ return true;
+ }
+ return false;
+ }
+
+ bool IsRequestedExtension(const char* extension) const
+ {
+ return (requestedExtensions.find(extension) != requestedExtensions.end());
+ }
+
void addToCallGraph(TInfoSink&, const TString& caller, const TString& callee);
void merge(TInfoSink&, TIntermediate&);
void finalCheck(TInfoSink&, bool keepUncalled);
+ void mergeGlobalUniformBlocks(TInfoSink& infoSink, TIntermediate& unit, bool mergeExistingOnly);
+ void mergeUniformObjects(TInfoSink& infoSink, TIntermediate& unit);
+ void checkStageIO(TInfoSink&, TIntermediate&);
+
bool buildConvertOp(TBasicType dst, TBasicType src, TOperator& convertOp) const;
TIntermTyped* createConversion(TBasicType convertTo, TIntermTyped* node) const;
@@ -885,6 +965,8 @@ public:
static int getOffset(const TType& type, int index);
static int getBlockSize(const TType& blockType);
static int computeBufferReferenceTypeSize(const TType&);
+ static bool isIoResizeArray(const TType& type, EShLanguage language);
+
bool promote(TIntermOperator*);
void setNanMinMaxClamp(bool setting) { nanMinMaxClamp = setting; }
bool getNanMinMaxClamp() const { return nanMinMaxClamp; }
@@ -903,6 +985,8 @@ public:
void addProcess(const std::string& process) { processes.addProcess(process); }
void addProcessArgument(const std::string& arg) { processes.addArgument(arg); }
const std::vector<std::string>& getProcesses() const { return processes.getProcesses(); }
+ unsigned long long getUniqueId() const { return uniqueId; }
+ void setUniqueId(unsigned long long id) { uniqueId = id; }
// Certain explicit conversions are allowed conditionally
#ifdef GLSLANG_WEB
@@ -931,21 +1015,23 @@ public:
#endif
protected:
- TIntermSymbol* addSymbol(int Id, const TString&, const TType&, const TConstUnionArray&, TIntermTyped* subtree, const TSourceLoc&);
+ TIntermSymbol* addSymbol(long long Id, const TString&, const TType&, const TConstUnionArray&, TIntermTyped* subtree, const TSourceLoc&);
void error(TInfoSink& infoSink, const char*);
void warn(TInfoSink& infoSink, const char*);
void mergeCallGraphs(TInfoSink&, TIntermediate&);
void mergeModes(TInfoSink&, TIntermediate&);
void mergeTrees(TInfoSink&, TIntermediate&);
- void seedIdMap(TIdMaps& idMaps, int& maxId);
- void remapIds(const TIdMaps& idMaps, int idShift, TIntermediate&);
+ void seedIdMap(TIdMaps& idMaps, long long& IdShift);
+ void remapIds(const TIdMaps& idMaps, long long idShift, TIntermediate&);
void mergeBodies(TInfoSink&, TIntermSequence& globals, const TIntermSequence& unitGlobals);
- void mergeLinkerObjects(TInfoSink&, TIntermSequence& linkerObjects, const TIntermSequence& unitLinkerObjects);
+ void mergeLinkerObjects(TInfoSink&, TIntermSequence& linkerObjects, const TIntermSequence& unitLinkerObjects, EShLanguage);
+ void mergeBlockDefinitions(TInfoSink&, TIntermSymbol* block, TIntermSymbol* unitBlock, TIntermediate* unitRoot);
void mergeImplicitArraySizes(TType&, const TType&);
- void mergeErrorCheck(TInfoSink&, const TIntermSymbol&, const TIntermSymbol&, bool crossStage);
+ void mergeErrorCheck(TInfoSink&, const TIntermSymbol&, const TIntermSymbol&, EShLanguage);
void checkCallGraphCycles(TInfoSink&);
void checkCallGraphBodies(TInfoSink&, bool keepUncalled);
void inOutLocationCheck(TInfoSink&);
+ void sharedBlockCheck(TInfoSink&);
bool userOutputUsed() const;
bool isSpecializationOperation(const TIntermOperator&) const;
bool isNonuniformPropagating(TOperator) const;
@@ -985,11 +1071,20 @@ protected:
bool recursive;
bool invertY;
bool useStorageBuffer;
+ bool invariantAll;
bool nanMinMaxClamp; // true if desiring min/max/clamp to favor non-NaN over NaN
bool depthReplacing;
int localSize[3];
bool localSizeNotDefault[3];
int localSizeSpecId[3];
+ unsigned long long uniqueId;
+
+ std::string globalUniformBlockName;
+ std::string atomicCounterBlockName;
+ unsigned int globalUniformBlockSet;
+ unsigned int globalUniformBlockBinding;
+ unsigned int atomicCounterBlockSet;
+
#ifndef GLSLANG_WEB
public:
const char* const implicitThisName;
@@ -1044,12 +1139,17 @@ protected:
bool needToLegalize;
bool binaryDoubleOutput;
+ bool subgroupUniformControlFlow;
bool usePhysicalStorageBuffer;
+ TSpirvRequirement* spirvRequirement;
+ TSpirvExecutionMode* spirvExecutionMode;
+
std::unordered_map<std::string, int> uniformLocationOverrides;
int uniformLocationBase;
TNumericFeatures numericFeatures;
#endif
+ std::unordered_map<std::string, TBlockStorageClass> blockBackingOverrides;
std::unordered_set<int> usedConstantId; // specialization constant ids used
std::vector<TOffsetRange> usedAtomics; // sets of bindings used by atomic counters
diff --git a/thirdparty/glslang/glslang/MachineIndependent/parseConst.cpp b/thirdparty/glslang/glslang/MachineIndependent/parseConst.cpp
index 7c04743ba6..6c182991f5 100644
--- a/thirdparty/glslang/glslang/MachineIndependent/parseConst.cpp
+++ b/thirdparty/glslang/glslang/MachineIndependent/parseConst.cpp
@@ -166,31 +166,30 @@ void TConstTraverser::visitConstantUnion(TIntermConstantUnion* node)
}
} else {
// matrix from vector or scalar
- int count = 0;
- const int startIndex = index;
int nodeComps = node->getType().computeNumComponents();
- for (int i = startIndex; i < endIndex; i++) {
- if (i >= instanceSize)
- return;
- if (nodeComps == 1) {
- // If there is a single scalar parameter to a matrix
- // constructor, it is used to initialize all the
- // components on the matrix's diagonal, with the
- // remaining components initialized to 0.0.
- if (i == startIndex || (i - startIndex) % (matrixRows + 1) == 0 )
- leftUnionArray[i] = rightUnionArray[count];
- else
- leftUnionArray[i].setDConst(0.0);
- } else {
+ if (nodeComps == 1) {
+ for (int c = 0; c < matrixCols; ++c) {
+ for (int r = 0; r < matrixRows; ++r) {
+ if (r == c)
+ leftUnionArray[index] = rightUnionArray[0];
+ else
+ leftUnionArray[index].setDConst(0.0);
+ index++;
+ }
+ }
+ } else {
+ int count = 0;
+ for (int i = index; i < endIndex; i++) {
+ if (i >= instanceSize)
+ return;
+
// construct the matrix in column-major order, from
// the components provided, in order
leftUnionArray[i] = rightUnionArray[count];
- }
-
- index++;
- if (nodeComps > 1)
+ index++;
count++;
+ }
}
}
}
diff --git a/thirdparty/glslang/glslang/MachineIndependent/preprocessor/PpScanner.cpp b/thirdparty/glslang/glslang/MachineIndependent/preprocessor/PpScanner.cpp
index e0f44f8b4f..ad11792002 100644
--- a/thirdparty/glslang/glslang/MachineIndependent/preprocessor/PpScanner.cpp
+++ b/thirdparty/glslang/glslang/MachineIndependent/preprocessor/PpScanner.cpp
@@ -1191,9 +1191,11 @@ int TPpContext::tokenize(TPpToken& ppToken)
// HLSL allows string literals.
// GLSL allows string literals with GL_EXT_debug_printf.
if (ifdepth == 0 && parseContext.intermediate.getSource() != EShSourceHlsl) {
- parseContext.requireExtensions(ppToken.loc, 1, &E_GL_EXT_debug_printf, "string literal");
- if (!parseContext.extensionTurnedOn(E_GL_EXT_debug_printf))
- continue;
+ const char* const string_literal_EXTs[] = { E_GL_EXT_debug_printf, E_GL_EXT_spirv_intrinsics };
+ parseContext.requireExtensions(ppToken.loc, 2, string_literal_EXTs, "string literal");
+ if (!parseContext.extensionTurnedOn(E_GL_EXT_debug_printf) &&
+ !parseContext.extensionTurnedOn(E_GL_EXT_spirv_intrinsics))
+ continue;
}
break;
case '\'':
diff --git a/thirdparty/glslang/glslang/MachineIndependent/reflection.cpp b/thirdparty/glslang/glslang/MachineIndependent/reflection.cpp
index 729500295e..9ea48c452d 100644
--- a/thirdparty/glslang/glslang/MachineIndependent/reflection.cpp
+++ b/thirdparty/glslang/glslang/MachineIndependent/reflection.cpp
@@ -907,8 +907,8 @@ public:
case EbtFloat16: return GL_FLOAT16_VEC2_NV + offset;
case EbtInt: return GL_INT_VEC2 + offset;
case EbtUint: return GL_UNSIGNED_INT_VEC2 + offset;
- case EbtInt64: return GL_INT64_ARB + offset;
- case EbtUint64: return GL_UNSIGNED_INT64_ARB + offset;
+ case EbtInt64: return GL_INT64_VEC2_ARB + offset;
+ case EbtUint64: return GL_UNSIGNED_INT64_VEC2_ARB + offset;
case EbtBool: return GL_BOOL_VEC2 + offset;
case EbtAtomicUint: return GL_UNSIGNED_INT_ATOMIC_COUNTER + offset;
default: return 0;
@@ -1138,6 +1138,8 @@ void TReflection::buildCounterIndices(const TIntermediate& intermediate)
if (index >= 0)
indexToUniformBlock[i].counterIndex = index;
}
+#else
+ (void)intermediate;
#endif
}
diff --git a/thirdparty/glslang/glslang/Public/ShaderLang.h b/thirdparty/glslang/glslang/Public/ShaderLang.h
index 273f1569a0..d2a4bf40a0 100644
--- a/thirdparty/glslang/glslang/Public/ShaderLang.h
+++ b/thirdparty/glslang/glslang/Public/ShaderLang.h
@@ -167,7 +167,7 @@ typedef enum {
EShTargetVulkan_1_1 = (1 << 22) | (1 << 12), // Vulkan 1.1
EShTargetVulkan_1_2 = (1 << 22) | (2 << 12), // Vulkan 1.2
EShTargetOpenGL_450 = 450, // OpenGL
- LAST_ELEMENT_MARKER(EShTargetClientVersionCount),
+ LAST_ELEMENT_MARKER(EShTargetClientVersionCount = 4),
} EShTargetClientVersion;
typedef EShTargetClientVersion EshTargetClientVersion;
@@ -179,7 +179,7 @@ typedef enum {
EShTargetSpv_1_3 = (1 << 16) | (3 << 8), // SPIR-V 1.3
EShTargetSpv_1_4 = (1 << 16) | (4 << 8), // SPIR-V 1.4
EShTargetSpv_1_5 = (1 << 16) | (5 << 8), // SPIR-V 1.5
- LAST_ELEMENT_MARKER(EShTargetLanguageVersionCount),
+ LAST_ELEMENT_MARKER(EShTargetLanguageVersionCount = 6),
} EShTargetLanguageVersion;
struct TInputLanguage {
@@ -187,6 +187,7 @@ struct TInputLanguage {
EShLanguage stage; // redundant information with other input, this one overrides when not EShSourceNone
EShClient dialect;
int dialectVersion; // version of client's language definition, not the client (when not EShClientNone)
+ bool vulkanRulesRelaxed;
};
struct TClient {
@@ -427,6 +428,14 @@ enum TResourceType {
EResCount
};
+enum TBlockStorageClass
+{
+ EbsUniform = 0,
+ EbsStorageBuffer,
+ EbsPushConstant,
+ EbsNone, // not a uniform or buffer variable
+ EbsCount,
+};
// Make one TShader per shader that you will link into a program. Then
// - provide the shader through setStrings() or setStringsWithLengths()
@@ -458,6 +467,7 @@ public:
GLSLANG_EXPORT void setEntryPoint(const char* entryPoint);
GLSLANG_EXPORT void setSourceEntryPoint(const char* sourceEntryPointName);
GLSLANG_EXPORT void addProcesses(const std::vector<std::string>&);
+ GLSLANG_EXPORT void setUniqueId(unsigned long long id);
// IO resolver binding data: see comments in ShaderLang.cpp
GLSLANG_EXPORT void setShiftBinding(TResourceType res, unsigned int base);
@@ -482,6 +492,14 @@ public:
GLSLANG_EXPORT void setNoStorageFormat(bool useUnknownFormat);
GLSLANG_EXPORT void setNanMinMaxClamp(bool nanMinMaxClamp);
GLSLANG_EXPORT void setTextureSamplerTransformMode(EShTextureSamplerTransformMode mode);
+ GLSLANG_EXPORT void addBlockStorageOverride(const char* nameStr, glslang::TBlockStorageClass backing);
+
+ GLSLANG_EXPORT void setGlobalUniformBlockName(const char* name);
+ GLSLANG_EXPORT void setAtomicCounterBlockName(const char* name);
+ GLSLANG_EXPORT void setGlobalUniformSet(unsigned int set);
+ GLSLANG_EXPORT void setGlobalUniformBinding(unsigned int binding);
+ GLSLANG_EXPORT void setAtomicCounterBlockSet(unsigned int set);
+ GLSLANG_EXPORT void setAtomicCounterBlockBinding(unsigned int binding);
// For setting up the environment (cleared to nothingness in the constructor).
// These must be called so that parsing is done for the right source language and
@@ -490,7 +508,7 @@ public:
//
// setEnvInput: The input source language and stage. If generating code for a
// specific client, the input client semantics to use and the
- // version of the that client's input semantics to use, otherwise
+ // version of that client's input semantics to use, otherwise
// use EShClientNone and version of 0, e.g. for validation mode.
// Note 'version' does not describe the target environment,
// just the version of the source dialect to compile under.
@@ -538,6 +556,9 @@ public:
bool getEnvTargetHlslFunctionality1() const { return false; }
#endif
+ void setEnvInputVulkanRulesRelaxed() { environment.input.vulkanRulesRelaxed = true; }
+ bool getEnvInputVulkanRulesRelaxed() const { return environment.input.vulkanRulesRelaxed; }
+
// Interface to #include handlers.
//
// To support #include, a client of Glslang does the following:
@@ -701,7 +722,7 @@ class TObjectReflection {
public:
GLSLANG_EXPORT TObjectReflection(const std::string& pName, const TType& pType, int pOffset, int pGLDefineType, int pSize, int pIndex);
- GLSLANG_EXPORT const TType* getType() const { return type; }
+ const TType* getType() const { return type; }
GLSLANG_EXPORT int getBinding() const;
GLSLANG_EXPORT void dump() const;
static TObjectReflection badReflection() { return TObjectReflection(); }
@@ -805,7 +826,7 @@ public:
// Called by TSlotCollector to resolve resource locations or bindings
virtual void reserverResourceSlot(TVarEntryInfo& ent, TInfoSink& infoSink) = 0;
// Called by mapIO.addStage to set shader stage mask to mark a stage be added to this pipeline
- virtual void addStage(EShLanguage stage) = 0;
+ virtual void addStage(EShLanguage stage, TIntermediate& stageIntermediate) = 0;
};
#endif // !GLSLANG_WEB && !GLSLANG_ANGLE
@@ -927,6 +948,7 @@ public:
protected:
GLSLANG_EXPORT bool linkStage(EShLanguage, EShMessages);
+ GLSLANG_EXPORT bool crossStageCheck(EShMessages);
TPoolAllocator* pool;
std::list<TShader*> stages[EShLangCount];
diff --git a/thirdparty/glslang/glslang/build_info.h b/thirdparty/glslang/glslang/build_info.h
index 319bfa5f73..661c4a3c1c 100644
--- a/thirdparty/glslang/glslang/build_info.h
+++ b/thirdparty/glslang/glslang/build_info.h
@@ -35,7 +35,7 @@
#define GLSLANG_BUILD_INFO
#define GLSLANG_VERSION_MAJOR 11
-#define GLSLANG_VERSION_MINOR 0
+#define GLSLANG_VERSION_MINOR 6
#define GLSLANG_VERSION_PATCH 0
#define GLSLANG_VERSION_FLAVOR ""
diff --git a/thirdparty/misc/easing_equations.cpp b/thirdparty/misc/easing_equations.cpp
deleted file mode 100644
index ce32c1a362..0000000000
--- a/thirdparty/misc/easing_equations.cpp
+++ /dev/null
@@ -1,319 +0,0 @@
-/**
- * Adapted from Penner Easing equations' C++ port.
- * Source: https://github.com/jesusgollonet/ofpennereasing
- * License: BSD-3-clause
- */
-
-#include "scene/animation/tween.h"
-
-const real_t pi = 3.1415926535898;
-
-///////////////////////////////////////////////////////////////////////////
-// linear
-///////////////////////////////////////////////////////////////////////////
-namespace linear {
-static real_t in(real_t t, real_t b, real_t c, real_t d) {
- return c * t / d + b;
-}
-
-static real_t out(real_t t, real_t b, real_t c, real_t d) {
- return c * t / d + b;
-}
-
-static real_t in_out(real_t t, real_t b, real_t c, real_t d) {
- return c * t / d + b;
-}
-
-static real_t out_in(real_t t, real_t b, real_t c, real_t d) {
- return c * t / d + b;
-}
-}; // namespace linear
-///////////////////////////////////////////////////////////////////////////
-// sine
-///////////////////////////////////////////////////////////////////////////
-namespace sine {
-static real_t in(real_t t, real_t b, real_t c, real_t d) {
- return -c * cos(t / d * (pi / 2)) + c + b;
-}
-
-static real_t out(real_t t, real_t b, real_t c, real_t d) {
- return c * sin(t / d * (pi / 2)) + b;
-}
-
-static real_t in_out(real_t t, real_t b, real_t c, real_t d) {
- return -c / 2 * (cos(pi * t / d) - 1) + b;
-}
-
-static real_t out_in(real_t t, real_t b, real_t c, real_t d) {
- return (t < d / 2) ? out(t * 2, b, c / 2, d) : in((t * 2) - d, b + c / 2, c / 2, d);
-}
-}; // namespace sine
-///////////////////////////////////////////////////////////////////////////
-// quint
-///////////////////////////////////////////////////////////////////////////
-namespace quint {
-static real_t in(real_t t, real_t b, real_t c, real_t d) {
- return c * pow(t / d, 5) + b;
-}
-
-static real_t out(real_t t, real_t b, real_t c, real_t d) {
- return c * (pow(t / d - 1, 5) + 1) + b;
-}
-
-static real_t in_out(real_t t, real_t b, real_t c, real_t d) {
- t = t / d * 2;
- if (t < 1) return c / 2 * pow(t, 5) + b;
- return c / 2 * (pow(t - 2, 5) + 2) + b;
-}
-
-static real_t out_in(real_t t, real_t b, real_t c, real_t d) {
- return (t < d / 2) ? out(t * 2, b, c / 2, d) : in((t * 2) - d, b + c / 2, c / 2, d);
-}
-}; // namespace quint
-///////////////////////////////////////////////////////////////////////////
-// quart
-///////////////////////////////////////////////////////////////////////////
-namespace quart {
-static real_t in(real_t t, real_t b, real_t c, real_t d) {
- return c * pow(t / d, 4) + b;
-}
-
-static real_t out(real_t t, real_t b, real_t c, real_t d) {
- return -c * (pow(t / d - 1, 4) - 1) + b;
-}
-
-static real_t in_out(real_t t, real_t b, real_t c, real_t d) {
- t = t / d * 2;
- if (t < 1) return c / 2 * pow(t, 4) + b;
- return -c / 2 * (pow(t - 2, 4) - 2) + b;
-}
-
-static real_t out_in(real_t t, real_t b, real_t c, real_t d) {
- return (t < d / 2) ? out(t * 2, b, c / 2, d) : in((t * 2) - d, b + c / 2, c / 2, d);
-}
-}; // namespace quart
-///////////////////////////////////////////////////////////////////////////
-// quad
-///////////////////////////////////////////////////////////////////////////
-namespace quad {
-static real_t in(real_t t, real_t b, real_t c, real_t d) {
- return c * pow(t / d, 2) + b;
-}
-
-static real_t out(real_t t, real_t b, real_t c, real_t d) {
- t = t / d;
- return -c * t * (t - 2) + b;
-}
-
-static real_t in_out(real_t t, real_t b, real_t c, real_t d) {
- t = t / d * 2;
- if (t < 1) return c / 2 * pow(t, 2) + b;
- return -c / 2 * ((t - 1) * (t - 3) - 1) + b;
-}
-
-static real_t out_in(real_t t, real_t b, real_t c, real_t d) {
- return (t < d / 2) ? out(t * 2, b, c / 2, d) : in((t * 2) - d, b + c / 2, c / 2, d);
-}
-}; // namespace quad
-///////////////////////////////////////////////////////////////////////////
-// expo
-///////////////////////////////////////////////////////////////////////////
-namespace expo {
-static real_t in(real_t t, real_t b, real_t c, real_t d) {
- if (t == 0) return b;
- return c * pow(2, 10 * (t / d - 1)) + b - c * 0.001;
-}
-
-static real_t out(real_t t, real_t b, real_t c, real_t d) {
- if (t == d) return b + c;
- return c * 1.001 * (-pow(2, -10 * t / d) + 1) + b;
-}
-
-static real_t in_out(real_t t, real_t b, real_t c, real_t d) {
- if (t == 0) return b;
- if (t == d) return b + c;
- t = t / d * 2;
- if (t < 1) return c / 2 * pow(2, 10 * (t - 1)) + b - c * 0.0005;
- return c / 2 * 1.0005 * (-pow(2, -10 * (t - 1)) + 2) + b;
-}
-
-static real_t out_in(real_t t, real_t b, real_t c, real_t d) {
- return (t < d / 2) ? out(t * 2, b, c / 2, d) : in((t * 2) - d, b + c / 2, c / 2, d);
-}
-}; // namespace expo
-///////////////////////////////////////////////////////////////////////////
-// elastic
-///////////////////////////////////////////////////////////////////////////
-namespace elastic {
-static real_t in(real_t t, real_t b, real_t c, real_t d) {
- if (t == 0) return b;
- if ((t /= d) == 1) return b + c;
- float p = d * 0.3f;
- float a = c;
- float s = p / 4;
- float postFix = a * pow(2, 10 * (t -= 1)); // this is a fix, again, with post-increment operators
- return -(postFix * sin((t * d - s) * (2 * pi) / p)) + b;
-}
-
-static real_t out(real_t t, real_t b, real_t c, real_t d) {
- if (t == 0) return b;
- if ((t /= d) == 1) return b + c;
- float p = d * 0.3f;
- float a = c;
- float s = p / 4;
- return (a * pow(2, -10 * t) * sin((t * d - s) * (2 * pi) / p) + c + b);
-}
-
-static real_t in_out(real_t t, real_t b, real_t c, real_t d) {
- if (t == 0) return b;
- if ((t /= d / 2) == 2) return b + c;
- float p = d * (0.3f * 1.5f);
- float a = c;
- float s = p / 4;
-
- if (t < 1) {
- float postFix = a * pow(2, 10 * (t -= 1)); // postIncrement is evil
- return -0.5f * (postFix * sin((t * d - s) * (2 * pi) / p)) + b;
- }
- float postFix = a * pow(2, -10 * (t -= 1)); // postIncrement is evil
- return postFix * sin((t * d - s) * (2 * pi) / p) * 0.5f + c + b;
-}
-
-static real_t out_in(real_t t, real_t b, real_t c, real_t d) {
- return (t < d / 2) ? out(t * 2, b, c / 2, d) : in((t * 2) - d, b + c / 2, c / 2, d);
-}
-}; // namespace elastic
-///////////////////////////////////////////////////////////////////////////
-// cubic
-///////////////////////////////////////////////////////////////////////////
-namespace cubic {
-static real_t in(real_t t, real_t b, real_t c, real_t d) {
- t /= d;
- return c * t * t * t + b;
-}
-
-static real_t out(real_t t, real_t b, real_t c, real_t d) {
- t = t / d - 1;
- return c * (t * t * t + 1) + b;
-}
-
-static real_t in_out(real_t t, real_t b, real_t c, real_t d) {
- t /= d / 2;
- if (t < 1) return c / 2 * t * t * t + b;
- t -= 2;
- return c / 2 * (t * t * t + 2) + b;
-}
-
-static real_t out_in(real_t t, real_t b, real_t c, real_t d) {
- return (t < d / 2) ? out(t * 2, b, c / 2, d) : in((t * 2) - d, b + c / 2, c / 2, d);
-}
-}; // namespace cubic
-///////////////////////////////////////////////////////////////////////////
-// circ
-///////////////////////////////////////////////////////////////////////////
-namespace circ {
-static real_t in(real_t t, real_t b, real_t c, real_t d) {
- t /= d;
- return -c * (sqrt(1 - t * t) - 1) + b;
-}
-
-static real_t out(real_t t, real_t b, real_t c, real_t d) {
- t = t / d - 1;
- return c * sqrt(1 - t * t) + b;
-}
-
-static real_t in_out(real_t t, real_t b, real_t c, real_t d) {
- t /= d / 2;
- if (t < 1) {
- return -c / 2 * (sqrt(1 - t * t) - 1) + b;
- }
- t -= 2;
- return c / 2 * (sqrt(1 - t * t) + 1) + b;
-}
-
-static real_t out_in(real_t t, real_t b, real_t c, real_t d) {
- return (t < d / 2) ? out(t * 2, b, c / 2, d) : in((t * 2) - d, b + c / 2, c / 2, d);
-}
-}; // namespace circ
-///////////////////////////////////////////////////////////////////////////
-// bounce
-///////////////////////////////////////////////////////////////////////////
-namespace bounce {
-static real_t out(real_t t, real_t b, real_t c, real_t d);
-
-static real_t in(real_t t, real_t b, real_t c, real_t d) {
- return c - out(d - t, 0, c, d) + b;
-}
-
-static real_t out(real_t t, real_t b, real_t c, real_t d) {
- if ((t /= d) < (1 / 2.75f)) {
- return c * (7.5625f * t * t) + b;
- } else if (t < (2 / 2.75f)) {
- float postFix = t -= (1.5f / 2.75f);
- return c * (7.5625f * (postFix)*t + .75f) + b;
- } else if (t < (2.5 / 2.75)) {
- float postFix = t -= (2.25f / 2.75f);
- return c * (7.5625f * (postFix)*t + .9375f) + b;
- } else {
- float postFix = t -= (2.625f / 2.75f);
- return c * (7.5625f * (postFix)*t + .984375f) + b;
- }
-}
-
-static real_t in_out(real_t t, real_t b, real_t c, real_t d) {
- return (t < d / 2) ? in(t * 2, b, c / 2, d) : out((t * 2) - d, b + c / 2, c / 2, d);
-}
-
-static real_t out_in(real_t t, real_t b, real_t c, real_t d) {
- return (t < d / 2) ? out(t * 2, b, c / 2, d) : in((t * 2) - d, b + c / 2, c / 2, d);
-}
-}; // namespace bounce
-///////////////////////////////////////////////////////////////////////////
-// back
-///////////////////////////////////////////////////////////////////////////
-namespace back {
-static real_t in(real_t t, real_t b, real_t c, real_t d) {
- float s = 1.70158f;
- float postFix = t /= d;
- return c * (postFix)*t * ((s + 1) * t - s) + b;
-}
-
-static real_t out(real_t t, real_t b, real_t c, real_t d) {
- float s = 1.70158f;
- t = t / d - 1;
- return c * (t * t * ((s + 1) * t + s) + 1) + b;
-}
-
-static real_t in_out(real_t t, real_t b, real_t c, real_t d) {
- float s = 1.70158f * 1.525f;
- t /= d / 2;
- if (t < 1) return c / 2 * (t * t * ((s + 1) * t - s)) + b;
- t -= 2;
- return c / 2 * (t * t * ((s + 1) * t + s) + 2) + b;
-}
-
-static real_t out_in(real_t t, real_t b, real_t c, real_t d) {
- return (t < d / 2) ? out(t * 2, b, c / 2, d) : in((t * 2) - d, b + c / 2, c / 2, d);
-}
-}; // namespace back
-
-Tween::interpolater Tween::interpolaters[Tween::TRANS_MAX][Tween::EASE_MAX] = {
- { &linear::in, &linear::out, &linear::in_out, &linear::out_in },
- { &sine::in, &sine::out, &sine::in_out, &sine::out_in },
- { &quint::in, &quint::out, &quint::in_out, &quint::out_in },
- { &quart::in, &quart::out, &quart::in_out, &quart::out_in },
- { &quad::in, &quad::out, &quad::in_out, &quad::out_in },
- { &expo::in, &expo::out, &expo::in_out, &expo::out_in },
- { &elastic::in, &elastic::out, &elastic::in_out, &elastic::out_in },
- { &cubic::in, &cubic::out, &cubic::in_out, &cubic::out_in },
- { &circ::in, &circ::out, &circ::in_out, &circ::out_in },
- { &bounce::in, &bounce::out, &bounce::in_out, &bounce::out_in },
- { &back::in, &back::out, &back::in_out, &back::out_in },
-};
-
-real_t Tween::run_equation(TransitionType p_trans_type, EaseType p_ease_type, real_t t, real_t b, real_t c, real_t d) {
-
- interpolater cb = interpolaters[p_trans_type][p_ease_type];
- ERR_FAIL_COND_V(cb == NULL, b);
- return cb(t, b, c, d);
-}
diff --git a/thirdparty/nanosvg/nanosvg.h b/thirdparty/nanosvg/nanosvg.h
index 4c03ee5893..f5058b179a 100644
--- a/thirdparty/nanosvg/nanosvg.h
+++ b/thirdparty/nanosvg/nanosvg.h
@@ -1215,35 +1215,22 @@ static const char* nsvg__getNextPathItem(const char* s, char* it)
static unsigned int nsvg__parseColorHex(const char* str)
{
- unsigned int c = 0, r = 0, g = 0, b = 0;
- int n = 0;
- str++; // skip #
- // Calculate number of characters.
- while(str[n] && !nsvg__isspace(str[n]))
- n++;
- if (n == 6) {
- sscanf(str, "%x", &c);
- } else if (n == 3) {
- sscanf(str, "%x", &c);
- c = (c&0xf) | ((c&0xf0) << 4) | ((c&0xf00) << 8);
- c |= c<<4;
- }
- r = (c >> 16) & 0xff;
- g = (c >> 8) & 0xff;
- b = c & 0xff;
- return NSVG_RGB(r,g,b);
+ unsigned int r=0, g=0, b=0;
+ if (sscanf(str, "#%2x%2x%2x", &r, &g, &b) == 3 ) // 2 digit hex
+ return NSVG_RGB(r, g, b);
+ if (sscanf(str, "#%1x%1x%1x", &r, &g, &b) == 3 ) // 1 digit hex, e.g. #abc -> 0xccbbaa
+ return NSVG_RGB(r*17, g*17, b*17); // same effect as (r<<4|r), (g<<4|g), ..
+ return NSVG_RGB(128, 128, 128);
}
static unsigned int nsvg__parseColorRGB(const char* str)
{
- int r = -1, g = -1, b = -1;
- char s1[32]="", s2[32]="";
- sscanf(str + 4, "%d%[%%, \t]%d%[%%, \t]%d", &r, s1, &g, s2, &b);
- if (strchr(s1, '%')) {
- return NSVG_RGB((r*255)/100,(g*255)/100,(b*255)/100);
- } else {
- return NSVG_RGB(r,g,b);
- }
+ unsigned int r=0, g=0, b=0;
+ if (sscanf(str, "rgb(%u, %u, %u)", &r, &g, &b) == 3) // decimal integers
+ return NSVG_RGB(r, g, b);
+ if (sscanf(str, "rgb(%u%%, %u%%, %u%%)", &r, &g, &b) == 3) // decimal integer percentage
+ return NSVG_RGB(r*255/100, g*255/100, b*255/100);
+ return NSVG_RGB(128, 128, 128);
}
typedef struct NSVGNamedColor {
@@ -2187,7 +2174,12 @@ static void nsvg__pathArcTo(NSVGparser* p, float* cpx, float* cpy, float* args,
// The loop assumes an iteration per end point (including start and end), this +1.
ndivs = (int)(fabsf(da) / (NSVG_PI*0.5f) + 1.0f);
hda = (da / (float)ndivs) / 2.0f;
- kappa = fabsf(4.0f / 3.0f * (1.0f - cosf(hda)) / sinf(hda));
+ // Fix for ticket #179: division by 0: avoid cotangens around 0 (infinite)
+ if ((hda < 1e-3f) && (hda > -1e-3f))
+ hda *= 0.5f;
+ else
+ hda = (1.0f - cosf(hda)) / sinf(hda);
+ kappa = fabsf(4.0f / 3.0f * hda);
if (da < 0.0f)
kappa = -kappa;
diff --git a/thirdparty/volk/volk.c b/thirdparty/volk/volk.c
index 0237cd9061..bb8b928326 100644
--- a/thirdparty/volk/volk.c
+++ b/thirdparty/volk/volk.c
@@ -631,9 +631,12 @@ static void volkGenLoadDevice(void* context, PFN_vkVoidFunction (*load)(void*, c
vkGetPastPresentationTimingGOOGLE = (PFN_vkGetPastPresentationTimingGOOGLE)load(context, "vkGetPastPresentationTimingGOOGLE");
vkGetRefreshCycleDurationGOOGLE = (PFN_vkGetRefreshCycleDurationGOOGLE)load(context, "vkGetRefreshCycleDurationGOOGLE");
#endif /* defined(VK_GOOGLE_display_timing) */
+#if defined(VK_HUAWEI_invocation_mask)
+ vkCmdBindInvocationMaskHUAWEI = (PFN_vkCmdBindInvocationMaskHUAWEI)load(context, "vkCmdBindInvocationMaskHUAWEI");
+#endif /* defined(VK_HUAWEI_invocation_mask) */
#if defined(VK_HUAWEI_subpass_shading)
vkCmdSubpassShadingHUAWEI = (PFN_vkCmdSubpassShadingHUAWEI)load(context, "vkCmdSubpassShadingHUAWEI");
- vkGetSubpassShadingMaxWorkgroupSizeHUAWEI = (PFN_vkGetSubpassShadingMaxWorkgroupSizeHUAWEI)load(context, "vkGetSubpassShadingMaxWorkgroupSizeHUAWEI");
+ vkGetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI = (PFN_vkGetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI)load(context, "vkGetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI");
#endif /* defined(VK_HUAWEI_subpass_shading) */
#if defined(VK_INTEL_performance_query)
vkAcquirePerformanceConfigurationINTEL = (PFN_vkAcquirePerformanceConfigurationINTEL)load(context, "vkAcquirePerformanceConfigurationINTEL");
@@ -758,6 +761,9 @@ static void volkGenLoadDevice(void* context, PFN_vkVoidFunction (*load)(void*, c
vkGetPipelineExecutablePropertiesKHR = (PFN_vkGetPipelineExecutablePropertiesKHR)load(context, "vkGetPipelineExecutablePropertiesKHR");
vkGetPipelineExecutableStatisticsKHR = (PFN_vkGetPipelineExecutableStatisticsKHR)load(context, "vkGetPipelineExecutableStatisticsKHR");
#endif /* defined(VK_KHR_pipeline_executable_properties) */
+#if defined(VK_KHR_present_wait)
+ vkWaitForPresentKHR = (PFN_vkWaitForPresentKHR)load(context, "vkWaitForPresentKHR");
+#endif /* defined(VK_KHR_present_wait) */
#if defined(VK_KHR_push_descriptor)
vkCmdPushDescriptorSetKHR = (PFN_vkCmdPushDescriptorSetKHR)load(context, "vkCmdPushDescriptorSetKHR");
#endif /* defined(VK_KHR_push_descriptor) */
@@ -847,6 +853,9 @@ static void volkGenLoadDevice(void* context, PFN_vkVoidFunction (*load)(void*, c
vkDestroyIndirectCommandsLayoutNV = (PFN_vkDestroyIndirectCommandsLayoutNV)load(context, "vkDestroyIndirectCommandsLayoutNV");
vkGetGeneratedCommandsMemoryRequirementsNV = (PFN_vkGetGeneratedCommandsMemoryRequirementsNV)load(context, "vkGetGeneratedCommandsMemoryRequirementsNV");
#endif /* defined(VK_NV_device_generated_commands) */
+#if defined(VK_NV_external_memory_rdma)
+ vkGetMemoryRemoteAddressNV = (PFN_vkGetMemoryRemoteAddressNV)load(context, "vkGetMemoryRemoteAddressNV");
+#endif /* defined(VK_NV_external_memory_rdma) */
#if defined(VK_NV_external_memory_win32)
vkGetMemoryWin32HandleNV = (PFN_vkGetMemoryWin32HandleNV)load(context, "vkGetMemoryWin32HandleNV");
#endif /* defined(VK_NV_external_memory_win32) */
@@ -1182,9 +1191,12 @@ static void volkGenLoadDeviceTable(struct VolkDeviceTable* table, void* context,
table->vkGetPastPresentationTimingGOOGLE = (PFN_vkGetPastPresentationTimingGOOGLE)load(context, "vkGetPastPresentationTimingGOOGLE");
table->vkGetRefreshCycleDurationGOOGLE = (PFN_vkGetRefreshCycleDurationGOOGLE)load(context, "vkGetRefreshCycleDurationGOOGLE");
#endif /* defined(VK_GOOGLE_display_timing) */
+#if defined(VK_HUAWEI_invocation_mask)
+ table->vkCmdBindInvocationMaskHUAWEI = (PFN_vkCmdBindInvocationMaskHUAWEI)load(context, "vkCmdBindInvocationMaskHUAWEI");
+#endif /* defined(VK_HUAWEI_invocation_mask) */
#if defined(VK_HUAWEI_subpass_shading)
table->vkCmdSubpassShadingHUAWEI = (PFN_vkCmdSubpassShadingHUAWEI)load(context, "vkCmdSubpassShadingHUAWEI");
- table->vkGetSubpassShadingMaxWorkgroupSizeHUAWEI = (PFN_vkGetSubpassShadingMaxWorkgroupSizeHUAWEI)load(context, "vkGetSubpassShadingMaxWorkgroupSizeHUAWEI");
+ table->vkGetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI = (PFN_vkGetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI)load(context, "vkGetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI");
#endif /* defined(VK_HUAWEI_subpass_shading) */
#if defined(VK_INTEL_performance_query)
table->vkAcquirePerformanceConfigurationINTEL = (PFN_vkAcquirePerformanceConfigurationINTEL)load(context, "vkAcquirePerformanceConfigurationINTEL");
@@ -1309,6 +1321,9 @@ static void volkGenLoadDeviceTable(struct VolkDeviceTable* table, void* context,
table->vkGetPipelineExecutablePropertiesKHR = (PFN_vkGetPipelineExecutablePropertiesKHR)load(context, "vkGetPipelineExecutablePropertiesKHR");
table->vkGetPipelineExecutableStatisticsKHR = (PFN_vkGetPipelineExecutableStatisticsKHR)load(context, "vkGetPipelineExecutableStatisticsKHR");
#endif /* defined(VK_KHR_pipeline_executable_properties) */
+#if defined(VK_KHR_present_wait)
+ table->vkWaitForPresentKHR = (PFN_vkWaitForPresentKHR)load(context, "vkWaitForPresentKHR");
+#endif /* defined(VK_KHR_present_wait) */
#if defined(VK_KHR_push_descriptor)
table->vkCmdPushDescriptorSetKHR = (PFN_vkCmdPushDescriptorSetKHR)load(context, "vkCmdPushDescriptorSetKHR");
#endif /* defined(VK_KHR_push_descriptor) */
@@ -1398,6 +1413,9 @@ static void volkGenLoadDeviceTable(struct VolkDeviceTable* table, void* context,
table->vkDestroyIndirectCommandsLayoutNV = (PFN_vkDestroyIndirectCommandsLayoutNV)load(context, "vkDestroyIndirectCommandsLayoutNV");
table->vkGetGeneratedCommandsMemoryRequirementsNV = (PFN_vkGetGeneratedCommandsMemoryRequirementsNV)load(context, "vkGetGeneratedCommandsMemoryRequirementsNV");
#endif /* defined(VK_NV_device_generated_commands) */
+#if defined(VK_NV_external_memory_rdma)
+ table->vkGetMemoryRemoteAddressNV = (PFN_vkGetMemoryRemoteAddressNV)load(context, "vkGetMemoryRemoteAddressNV");
+#endif /* defined(VK_NV_external_memory_rdma) */
#if defined(VK_NV_external_memory_win32)
table->vkGetMemoryWin32HandleNV = (PFN_vkGetMemoryWin32HandleNV)load(context, "vkGetMemoryWin32HandleNV");
#endif /* defined(VK_NV_external_memory_win32) */
@@ -1822,9 +1840,12 @@ PFN_vkCreateStreamDescriptorSurfaceGGP vkCreateStreamDescriptorSurfaceGGP;
PFN_vkGetPastPresentationTimingGOOGLE vkGetPastPresentationTimingGOOGLE;
PFN_vkGetRefreshCycleDurationGOOGLE vkGetRefreshCycleDurationGOOGLE;
#endif /* defined(VK_GOOGLE_display_timing) */
+#if defined(VK_HUAWEI_invocation_mask)
+PFN_vkCmdBindInvocationMaskHUAWEI vkCmdBindInvocationMaskHUAWEI;
+#endif /* defined(VK_HUAWEI_invocation_mask) */
#if defined(VK_HUAWEI_subpass_shading)
PFN_vkCmdSubpassShadingHUAWEI vkCmdSubpassShadingHUAWEI;
-PFN_vkGetSubpassShadingMaxWorkgroupSizeHUAWEI vkGetSubpassShadingMaxWorkgroupSizeHUAWEI;
+PFN_vkGetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI vkGetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI;
#endif /* defined(VK_HUAWEI_subpass_shading) */
#if defined(VK_INTEL_performance_query)
PFN_vkAcquirePerformanceConfigurationINTEL vkAcquirePerformanceConfigurationINTEL;
@@ -1995,6 +2016,9 @@ PFN_vkGetPipelineExecutableInternalRepresentationsKHR vkGetPipelineExecutableInt
PFN_vkGetPipelineExecutablePropertiesKHR vkGetPipelineExecutablePropertiesKHR;
PFN_vkGetPipelineExecutableStatisticsKHR vkGetPipelineExecutableStatisticsKHR;
#endif /* defined(VK_KHR_pipeline_executable_properties) */
+#if defined(VK_KHR_present_wait)
+PFN_vkWaitForPresentKHR vkWaitForPresentKHR;
+#endif /* defined(VK_KHR_present_wait) */
#if defined(VK_KHR_push_descriptor)
PFN_vkCmdPushDescriptorSetKHR vkCmdPushDescriptorSetKHR;
#endif /* defined(VK_KHR_push_descriptor) */
@@ -2131,6 +2155,9 @@ PFN_vkGetGeneratedCommandsMemoryRequirementsNV vkGetGeneratedCommandsMemoryRequi
#if defined(VK_NV_external_memory_capabilities)
PFN_vkGetPhysicalDeviceExternalImageFormatPropertiesNV vkGetPhysicalDeviceExternalImageFormatPropertiesNV;
#endif /* defined(VK_NV_external_memory_capabilities) */
+#if defined(VK_NV_external_memory_rdma)
+PFN_vkGetMemoryRemoteAddressNV vkGetMemoryRemoteAddressNV;
+#endif /* defined(VK_NV_external_memory_rdma) */
#if defined(VK_NV_external_memory_win32)
PFN_vkGetMemoryWin32HandleNV vkGetMemoryWin32HandleNV;
#endif /* defined(VK_NV_external_memory_win32) */
diff --git a/thirdparty/volk/volk.h b/thirdparty/volk/volk.h
index 15cf4df5cb..2e292ca114 100644
--- a/thirdparty/volk/volk.h
+++ b/thirdparty/volk/volk.h
@@ -15,7 +15,7 @@
#endif
/* VOLK_GENERATE_VERSION_DEFINE */
-#define VOLK_HEADER_VERSION 182
+#define VOLK_HEADER_VERSION 190
/* VOLK_GENERATE_VERSION_DEFINE */
#ifndef VK_NO_PROTOTYPES
@@ -51,10 +51,13 @@
# endif
#endif
-/* Disable VK_NVX_image_view_handle because SDK 140 introduced a change that can't be used with prior versions */
+/* Disable several extensions on earlier SDKs because later SDKs introduce a backwards incompatible change to function signatures */
#if VK_HEADER_VERSION < 140
# undef VK_NVX_image_view_handle
#endif
+#if VK_HEADER_VERSION < 184
+# undef VK_HUAWEI_subpass_shading
+#endif
#ifdef __cplusplus
extern "C" {
@@ -410,9 +413,12 @@ struct VolkDeviceTable
PFN_vkGetPastPresentationTimingGOOGLE vkGetPastPresentationTimingGOOGLE;
PFN_vkGetRefreshCycleDurationGOOGLE vkGetRefreshCycleDurationGOOGLE;
#endif /* defined(VK_GOOGLE_display_timing) */
+#if defined(VK_HUAWEI_invocation_mask)
+ PFN_vkCmdBindInvocationMaskHUAWEI vkCmdBindInvocationMaskHUAWEI;
+#endif /* defined(VK_HUAWEI_invocation_mask) */
#if defined(VK_HUAWEI_subpass_shading)
PFN_vkCmdSubpassShadingHUAWEI vkCmdSubpassShadingHUAWEI;
- PFN_vkGetSubpassShadingMaxWorkgroupSizeHUAWEI vkGetSubpassShadingMaxWorkgroupSizeHUAWEI;
+ PFN_vkGetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI vkGetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI;
#endif /* defined(VK_HUAWEI_subpass_shading) */
#if defined(VK_INTEL_performance_query)
PFN_vkAcquirePerformanceConfigurationINTEL vkAcquirePerformanceConfigurationINTEL;
@@ -537,6 +543,9 @@ struct VolkDeviceTable
PFN_vkGetPipelineExecutablePropertiesKHR vkGetPipelineExecutablePropertiesKHR;
PFN_vkGetPipelineExecutableStatisticsKHR vkGetPipelineExecutableStatisticsKHR;
#endif /* defined(VK_KHR_pipeline_executable_properties) */
+#if defined(VK_KHR_present_wait)
+ PFN_vkWaitForPresentKHR vkWaitForPresentKHR;
+#endif /* defined(VK_KHR_present_wait) */
#if defined(VK_KHR_push_descriptor)
PFN_vkCmdPushDescriptorSetKHR vkCmdPushDescriptorSetKHR;
#endif /* defined(VK_KHR_push_descriptor) */
@@ -626,6 +635,9 @@ struct VolkDeviceTable
PFN_vkDestroyIndirectCommandsLayoutNV vkDestroyIndirectCommandsLayoutNV;
PFN_vkGetGeneratedCommandsMemoryRequirementsNV vkGetGeneratedCommandsMemoryRequirementsNV;
#endif /* defined(VK_NV_device_generated_commands) */
+#if defined(VK_NV_external_memory_rdma)
+ PFN_vkGetMemoryRemoteAddressNV vkGetMemoryRemoteAddressNV;
+#endif /* defined(VK_NV_external_memory_rdma) */
#if defined(VK_NV_external_memory_win32)
PFN_vkGetMemoryWin32HandleNV vkGetMemoryWin32HandleNV;
#endif /* defined(VK_NV_external_memory_win32) */
@@ -1042,9 +1054,12 @@ extern PFN_vkCreateStreamDescriptorSurfaceGGP vkCreateStreamDescriptorSurfaceGGP
extern PFN_vkGetPastPresentationTimingGOOGLE vkGetPastPresentationTimingGOOGLE;
extern PFN_vkGetRefreshCycleDurationGOOGLE vkGetRefreshCycleDurationGOOGLE;
#endif /* defined(VK_GOOGLE_display_timing) */
+#if defined(VK_HUAWEI_invocation_mask)
+extern PFN_vkCmdBindInvocationMaskHUAWEI vkCmdBindInvocationMaskHUAWEI;
+#endif /* defined(VK_HUAWEI_invocation_mask) */
#if defined(VK_HUAWEI_subpass_shading)
extern PFN_vkCmdSubpassShadingHUAWEI vkCmdSubpassShadingHUAWEI;
-extern PFN_vkGetSubpassShadingMaxWorkgroupSizeHUAWEI vkGetSubpassShadingMaxWorkgroupSizeHUAWEI;
+extern PFN_vkGetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI vkGetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI;
#endif /* defined(VK_HUAWEI_subpass_shading) */
#if defined(VK_INTEL_performance_query)
extern PFN_vkAcquirePerformanceConfigurationINTEL vkAcquirePerformanceConfigurationINTEL;
@@ -1215,6 +1230,9 @@ extern PFN_vkGetPipelineExecutableInternalRepresentationsKHR vkGetPipelineExecut
extern PFN_vkGetPipelineExecutablePropertiesKHR vkGetPipelineExecutablePropertiesKHR;
extern PFN_vkGetPipelineExecutableStatisticsKHR vkGetPipelineExecutableStatisticsKHR;
#endif /* defined(VK_KHR_pipeline_executable_properties) */
+#if defined(VK_KHR_present_wait)
+extern PFN_vkWaitForPresentKHR vkWaitForPresentKHR;
+#endif /* defined(VK_KHR_present_wait) */
#if defined(VK_KHR_push_descriptor)
extern PFN_vkCmdPushDescriptorSetKHR vkCmdPushDescriptorSetKHR;
#endif /* defined(VK_KHR_push_descriptor) */
@@ -1351,6 +1369,9 @@ extern PFN_vkGetGeneratedCommandsMemoryRequirementsNV vkGetGeneratedCommandsMemo
#if defined(VK_NV_external_memory_capabilities)
extern PFN_vkGetPhysicalDeviceExternalImageFormatPropertiesNV vkGetPhysicalDeviceExternalImageFormatPropertiesNV;
#endif /* defined(VK_NV_external_memory_capabilities) */
+#if defined(VK_NV_external_memory_rdma)
+extern PFN_vkGetMemoryRemoteAddressNV vkGetMemoryRemoteAddressNV;
+#endif /* defined(VK_NV_external_memory_rdma) */
#if defined(VK_NV_external_memory_win32)
extern PFN_vkGetMemoryWin32HandleNV vkGetMemoryWin32HandleNV;
#endif /* defined(VK_NV_external_memory_win32) */
diff --git a/thirdparty/vulkan/include/vulkan/vulkan.hpp b/thirdparty/vulkan/include/vulkan/vulkan.hpp
index d3bc127203..63d72f4660 100644
--- a/thirdparty/vulkan/include/vulkan/vulkan.hpp
+++ b/thirdparty/vulkan/include/vulkan/vulkan.hpp
@@ -39,7 +39,6 @@
#include <tuple>
#include <type_traits>
#include <vulkan/vulkan.h>
-
#if 17 <= VULKAN_HPP_CPP_VERSION
# include <string_view>
#endif
@@ -53,6 +52,24 @@
# include <vector>
#endif
+#if defined( VULKAN_HPP_NO_CONSTRUCTORS )
+# if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
+# define VULKAN_HPP_NO_STRUCT_CONSTRUCTORS
+# endif
+# if !defined( VULKAN_HPP_NO_UNION_CONSTRUCTORS )
+# define VULKAN_HPP_NO_UNION_CONSTRUCTORS
+# endif
+#endif
+
+#if defined( VULKAN_HPP_NO_SETTERS )
+# if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
+# define VULKAN_HPP_NO_STRUCT_SETTERS
+# endif
+# if !defined( VULKAN_HPP_NO_UNION_SETTERS )
+# define VULKAN_HPP_NO_UNION_SETTERS
+# endif
+#endif
+
#if !defined( VULKAN_HPP_ASSERT )
# include <cassert>
# define VULKAN_HPP_ASSERT assert
@@ -93,7 +110,12 @@ extern "C" __declspec( dllimport ) FARPROC __stdcall GetProcAddress( HINSTANCE h
# include <compare>
#endif
-static_assert( VK_HEADER_VERSION == 182, "Wrong VK_HEADER_VERSION!" );
+#if ( 201803 <= __cpp_lib_span )
+# define VULKAN_HPP_SUPPORT_SPAN
+# include <span>
+#endif
+
+static_assert( VK_HEADER_VERSION == 190, "Wrong VK_HEADER_VERSION!" );
// 32-bit vulkan is not typesafe for handles, so don't allow copy constructors on this platform by default.
// To enable this feature on 32-bit platforms please define VULKAN_HPP_TYPESAFE_CONVERSION
@@ -334,6 +356,36 @@ namespace VULKAN_HPP_NAMESPACE
, m_ptr( data.data() )
{}
+# if defined( VULKAN_HPP_SUPPORT_SPAN )
+ template <size_t N = std::dynamic_extent>
+ ArrayProxy( std::span<T, N> const & data ) VULKAN_HPP_NOEXCEPT
+ : m_count( static_cast<uint32_t>( data.size() ) )
+ , m_ptr( data.data() )
+ {}
+
+ template <size_t N = std::dynamic_extent,
+ typename B = T,
+ typename std::enable_if<std::is_const<B>::value, int>::type = 0>
+ ArrayProxy( std::span<typename std::remove_const<T>::type, N> const & data ) VULKAN_HPP_NOEXCEPT
+ : m_count( static_cast<uint32_t>( data.size() ) )
+ , m_ptr( data.data() )
+ {}
+
+ template <size_t N = std::dynamic_extent>
+ ArrayProxy( std::span<T, N> & data ) VULKAN_HPP_NOEXCEPT
+ : m_count( static_cast<uint32_t>( data.size() ) )
+ , m_ptr( data.data() )
+ {}
+
+ template <size_t N = std::dynamic_extent,
+ typename B = T,
+ typename std::enable_if<std::is_const<B>::value, int>::type = 0>
+ ArrayProxy( std::span<typename std::remove_const<T>::type, N> & data ) VULKAN_HPP_NOEXCEPT
+ : m_count( static_cast<uint32_t>( data.size() ) )
+ , m_ptr( data.data() )
+ {}
+# endif
+
const T * begin() const VULKAN_HPP_NOEXCEPT
{
return m_ptr;
@@ -531,6 +583,36 @@ namespace VULKAN_HPP_NAMESPACE
typename std::enable_if<std::is_const<B>::value, int>::type = 0>
ArrayProxyNoTemporaries( std::vector<typename std::remove_const<T>::type, Allocator> && data ) = delete;
+# if defined( VULKAN_HPP_SUPPORT_SPAN )
+ template <size_t N = std::dynamic_extent>
+ ArrayProxyNoTemporaries( std::span<T, N> const & data ) VULKAN_HPP_NOEXCEPT
+ : m_count( static_cast<uint32_t>( data.size() ) )
+ , m_ptr( data.data() )
+ {}
+
+ template <size_t N = std::dynamic_extent,
+ typename B = T,
+ typename std::enable_if<std::is_const<B>::value, int>::type = 0>
+ ArrayProxyNoTemporaries( std::span<typename std::remove_const<T>::type, N> const & data ) VULKAN_HPP_NOEXCEPT
+ : m_count( static_cast<uint32_t>( data.size() ) )
+ , m_ptr( data.data() )
+ {}
+
+ template <size_t N = std::dynamic_extent>
+ ArrayProxyNoTemporaries( std::span<T, N> & data ) VULKAN_HPP_NOEXCEPT
+ : m_count( static_cast<uint32_t>( data.size() ) )
+ , m_ptr( data.data() )
+ {}
+
+ template <size_t N = std::dynamic_extent,
+ typename B = T,
+ typename std::enable_if<std::is_const<B>::value, int>::type = 0>
+ ArrayProxyNoTemporaries( std::span<typename std::remove_const<T>::type, N> & data ) VULKAN_HPP_NOEXCEPT
+ : m_count( static_cast<uint32_t>( data.size() ) )
+ , m_ptr( data.data() )
+ {}
+# endif
+
const T * begin() const VULKAN_HPP_NOEXCEPT
{
return m_ptr;
@@ -1296,8 +1378,22 @@ namespace VULKAN_HPP_NAMESPACE
}
#endif
+ class DispatchLoaderBase
+ {
+#if !defined( NDEBUG )
+ public:
+ size_t getVkHeaderVersion() const
+ {
+ return vkHeaderVersion;
+ }
+
+ private:
+ size_t vkHeaderVersion = VK_HEADER_VERSION;
+#endif
+ };
+
#if !defined( VK_NO_PROTOTYPES )
- class DispatchLoaderStatic
+ class DispatchLoaderStatic : public DispatchLoaderBase
{
public:
//=== VK_VERSION_1_0 ===
@@ -4715,6 +4811,16 @@ namespace VULKAN_HPP_NAMESPACE
return ::vkGetPhysicalDeviceToolPropertiesEXT( physicalDevice, pToolCount, pToolProperties );
}
+ //=== VK_KHR_present_wait ===
+
+ VkResult vkWaitForPresentKHR( VkDevice device,
+ VkSwapchainKHR swapchain,
+ uint64_t presentId,
+ uint64_t timeout ) const VULKAN_HPP_NOEXCEPT
+ {
+ return ::vkWaitForPresentKHR( device, swapchain, presentId, timeout );
+ }
+
//=== VK_NV_cooperative_matrix ===
VkResult vkGetPhysicalDeviceCooperativeMatrixPropertiesNV( VkPhysicalDevice physicalDevice,
@@ -5360,10 +5466,11 @@ namespace VULKAN_HPP_NAMESPACE
//=== VK_HUAWEI_subpass_shading ===
- VkResult vkGetSubpassShadingMaxWorkgroupSizeHUAWEI( VkRenderPass renderpass,
- VkExtent2D * pMaxWorkgroupSize ) const VULKAN_HPP_NOEXCEPT
+ VkResult vkGetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI( VkDevice device,
+ VkRenderPass renderpass,
+ VkExtent2D * pMaxWorkgroupSize ) const VULKAN_HPP_NOEXCEPT
{
- return ::vkGetSubpassShadingMaxWorkgroupSizeHUAWEI( renderpass, pMaxWorkgroupSize );
+ return ::vkGetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI( device, renderpass, pMaxWorkgroupSize );
}
void vkCmdSubpassShadingHUAWEI( VkCommandBuffer commandBuffer ) const VULKAN_HPP_NOEXCEPT
@@ -5371,6 +5478,24 @@ namespace VULKAN_HPP_NAMESPACE
return ::vkCmdSubpassShadingHUAWEI( commandBuffer );
}
+ //=== VK_HUAWEI_invocation_mask ===
+
+ void vkCmdBindInvocationMaskHUAWEI( VkCommandBuffer commandBuffer,
+ VkImageView imageView,
+ VkImageLayout imageLayout ) const VULKAN_HPP_NOEXCEPT
+ {
+ return ::vkCmdBindInvocationMaskHUAWEI( commandBuffer, imageView, imageLayout );
+ }
+
+ //=== VK_NV_external_memory_rdma ===
+
+ VkResult vkGetMemoryRemoteAddressNV( VkDevice device,
+ const VkMemoryGetRemoteAddressInfoNV * pMemoryGetRemoteAddressInfo,
+ VkRemoteAddressNV * pAddress ) const VULKAN_HPP_NOEXCEPT
+ {
+ return ::vkGetMemoryRemoteAddressNV( device, pMemoryGetRemoteAddressInfo, pAddress );
+ }
+
//=== VK_EXT_extended_dynamic_state2 ===
void vkCmdSetPatchControlPointsEXT( VkCommandBuffer commandBuffer,
@@ -5531,7 +5656,7 @@ namespace VULKAN_HPP_NAMESPACE
ObjectDestroy( OwnerType owner,
Optional<const AllocationCallbacks> allocationCallbacks
VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT,
- Dispatch const & dispatch = VULKAN_HPP_DEFAULT_DISPATCHER ) VULKAN_HPP_NOEXCEPT
+ Dispatch const & dispatch VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) VULKAN_HPP_NOEXCEPT
: m_owner( owner )
, m_allocationCallbacks( allocationCallbacks )
, m_dispatch( &dispatch )
@@ -5569,7 +5694,7 @@ namespace VULKAN_HPP_NAMESPACE
ObjectDestroy() = default;
ObjectDestroy( Optional<const AllocationCallbacks> allocationCallbacks,
- Dispatch const & dispatch = VULKAN_HPP_DEFAULT_DISPATCHER ) VULKAN_HPP_NOEXCEPT
+ Dispatch const & dispatch VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) VULKAN_HPP_NOEXCEPT
: m_allocationCallbacks( allocationCallbacks )
, m_dispatch( &dispatch )
{}
@@ -5600,7 +5725,7 @@ namespace VULKAN_HPP_NAMESPACE
ObjectFree( OwnerType owner,
Optional<const AllocationCallbacks> allocationCallbacks VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT,
- Dispatch const & dispatch = VULKAN_HPP_DEFAULT_DISPATCHER ) VULKAN_HPP_NOEXCEPT
+ Dispatch const & dispatch VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) VULKAN_HPP_NOEXCEPT
: m_owner( owner )
, m_allocationCallbacks( allocationCallbacks )
, m_dispatch( &dispatch )
@@ -5636,7 +5761,8 @@ namespace VULKAN_HPP_NAMESPACE
public:
ObjectRelease() = default;
- ObjectRelease( OwnerType owner, Dispatch const & dispatch = VULKAN_HPP_DEFAULT_DISPATCHER ) VULKAN_HPP_NOEXCEPT
+ ObjectRelease( OwnerType owner,
+ Dispatch const & dispatch VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) VULKAN_HPP_NOEXCEPT
: m_owner( owner )
, m_dispatch( &dispatch )
{}
@@ -5667,7 +5793,7 @@ namespace VULKAN_HPP_NAMESPACE
PoolFree( OwnerType owner,
PoolType pool,
- Dispatch const & dispatch = VULKAN_HPP_DEFAULT_DISPATCHER ) VULKAN_HPP_NOEXCEPT
+ Dispatch const & dispatch VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) VULKAN_HPP_NOEXCEPT
: m_owner( owner )
, m_pool( pool )
, m_dispatch( &dispatch )
@@ -5695,10 +5821,16 @@ namespace VULKAN_HPP_NAMESPACE
Dispatch const * m_dispatch = nullptr;
};
- using Bool32 = uint32_t;
- using DeviceAddress = uint64_t;
- using DeviceSize = uint64_t;
- using SampleMask = uint32_t;
+ //==================
+ //=== BASE TYPEs ===
+ //==================
+
+ using Bool32 = uint32_t;
+ using DeviceAddress = uint64_t;
+ using DeviceSize = uint64_t;
+ using RemoteAddressNV = void *;
+ using SampleMask = uint32_t;
+
} // namespace VULKAN_HPP_NAMESPACE
#include <vulkan/vulkan_enums.hpp>
@@ -6408,9 +6540,13 @@ namespace VULKAN_HPP_NAMESPACE
namespace VULKAN_HPP_NAMESPACE
{
+ //=======================
+ //=== STRUCTS EXTENDS ===
+ //=======================
+
+ //=== VK_VERSION_1_1 ===
template <>
- struct StructExtends<AccelerationStructureGeometryMotionTrianglesDataNV,
- AccelerationStructureGeometryTrianglesDataKHR>
+ struct StructExtends<PhysicalDeviceSubgroupProperties, PhysicalDeviceProperties2>
{
enum
{
@@ -6418,35 +6554,31 @@ namespace VULKAN_HPP_NAMESPACE
};
};
template <>
- struct StructExtends<AccelerationStructureMotionInfoNV, AccelerationStructureCreateInfoKHR>
+ struct StructExtends<PhysicalDevice16BitStorageFeatures, PhysicalDeviceFeatures2>
{
enum
{
value = true
};
};
-#if defined( VK_USE_PLATFORM_ANDROID_KHR )
template <>
- struct StructExtends<AndroidHardwareBufferFormatPropertiesANDROID, AndroidHardwareBufferPropertiesANDROID>
+ struct StructExtends<PhysicalDevice16BitStorageFeatures, DeviceCreateInfo>
{
enum
{
value = true
};
};
-#endif /*VK_USE_PLATFORM_ANDROID_KHR*/
-#if defined( VK_USE_PLATFORM_ANDROID_KHR )
template <>
- struct StructExtends<AndroidHardwareBufferUsageANDROID, ImageFormatProperties2>
+ struct StructExtends<MemoryDedicatedRequirements, MemoryRequirements2>
{
enum
{
value = true
};
};
-#endif /*VK_USE_PLATFORM_ANDROID_KHR*/
template <>
- struct StructExtends<AttachmentDescriptionStencilLayout, AttachmentDescription2>
+ struct StructExtends<MemoryDedicatedAllocateInfo, MemoryAllocateInfo>
{
enum
{
@@ -6454,7 +6586,39 @@ namespace VULKAN_HPP_NAMESPACE
};
};
template <>
- struct StructExtends<AttachmentReferenceStencilLayout, AttachmentReference2>
+ struct StructExtends<MemoryAllocateFlagsInfo, MemoryAllocateInfo>
+ {
+ enum
+ {
+ value = true
+ };
+ };
+ template <>
+ struct StructExtends<DeviceGroupRenderPassBeginInfo, RenderPassBeginInfo>
+ {
+ enum
+ {
+ value = true
+ };
+ };
+ template <>
+ struct StructExtends<DeviceGroupCommandBufferBeginInfo, CommandBufferBeginInfo>
+ {
+ enum
+ {
+ value = true
+ };
+ };
+ template <>
+ struct StructExtends<DeviceGroupSubmitInfo, SubmitInfo>
+ {
+ enum
+ {
+ value = true
+ };
+ };
+ template <>
+ struct StructExtends<DeviceGroupBindSparseInfo, BindSparseInfo>
{
enum
{
@@ -6478,7 +6642,7 @@ namespace VULKAN_HPP_NAMESPACE
};
};
template <>
- struct StructExtends<BindImageMemorySwapchainInfoKHR, BindImageMemoryInfo>
+ struct StructExtends<DeviceGroupDeviceCreateInfo, DeviceCreateInfo>
{
enum
{
@@ -6486,7 +6650,7 @@ namespace VULKAN_HPP_NAMESPACE
};
};
template <>
- struct StructExtends<BindImagePlaneMemoryInfo, BindImageMemoryInfo>
+ struct StructExtends<PhysicalDeviceFeatures2, DeviceCreateInfo>
{
enum
{
@@ -6494,7 +6658,7 @@ namespace VULKAN_HPP_NAMESPACE
};
};
template <>
- struct StructExtends<BufferDeviceAddressCreateInfoEXT, BufferCreateInfo>
+ struct StructExtends<PhysicalDevicePointClippingProperties, PhysicalDeviceProperties2>
{
enum
{
@@ -6502,7 +6666,7 @@ namespace VULKAN_HPP_NAMESPACE
};
};
template <>
- struct StructExtends<BufferOpaqueCaptureAddressCreateInfo, BufferCreateInfo>
+ struct StructExtends<RenderPassInputAttachmentAspectCreateInfo, RenderPassCreateInfo>
{
enum
{
@@ -6510,7 +6674,7 @@ namespace VULKAN_HPP_NAMESPACE
};
};
template <>
- struct StructExtends<CommandBufferInheritanceConditionalRenderingInfoEXT, CommandBufferInheritanceInfo>
+ struct StructExtends<ImageViewUsageCreateInfo, ImageViewCreateInfo>
{
enum
{
@@ -6518,7 +6682,7 @@ namespace VULKAN_HPP_NAMESPACE
};
};
template <>
- struct StructExtends<CommandBufferInheritanceRenderPassTransformInfoQCOM, CommandBufferInheritanceInfo>
+ struct StructExtends<PipelineTessellationDomainOriginStateCreateInfo, PipelineTessellationStateCreateInfo>
{
enum
{
@@ -6526,7 +6690,7 @@ namespace VULKAN_HPP_NAMESPACE
};
};
template <>
- struct StructExtends<CommandBufferInheritanceViewportScissorInfoNV, CommandBufferInheritanceInfo>
+ struct StructExtends<RenderPassMultiviewCreateInfo, RenderPassCreateInfo>
{
enum
{
@@ -6534,7 +6698,7 @@ namespace VULKAN_HPP_NAMESPACE
};
};
template <>
- struct StructExtends<CopyCommandTransformInfoQCOM, BufferImageCopy2KHR>
+ struct StructExtends<PhysicalDeviceMultiviewFeatures, PhysicalDeviceFeatures2>
{
enum
{
@@ -6542,25 +6706,23 @@ namespace VULKAN_HPP_NAMESPACE
};
};
template <>
- struct StructExtends<CopyCommandTransformInfoQCOM, ImageBlit2KHR>
+ struct StructExtends<PhysicalDeviceMultiviewFeatures, DeviceCreateInfo>
{
enum
{
value = true
};
};
-#if defined( VK_USE_PLATFORM_WIN32_KHR )
template <>
- struct StructExtends<D3D12FenceSubmitInfoKHR, SubmitInfo>
+ struct StructExtends<PhysicalDeviceMultiviewProperties, PhysicalDeviceProperties2>
{
enum
{
value = true
};
};
-#endif /*VK_USE_PLATFORM_WIN32_KHR*/
template <>
- struct StructExtends<DebugReportCallbackCreateInfoEXT, InstanceCreateInfo>
+ struct StructExtends<PhysicalDeviceVariablePointersFeatures, PhysicalDeviceFeatures2>
{
enum
{
@@ -6568,7 +6730,7 @@ namespace VULKAN_HPP_NAMESPACE
};
};
template <>
- struct StructExtends<DebugUtilsMessengerCreateInfoEXT, InstanceCreateInfo>
+ struct StructExtends<PhysicalDeviceVariablePointersFeatures, DeviceCreateInfo>
{
enum
{
@@ -6576,7 +6738,7 @@ namespace VULKAN_HPP_NAMESPACE
};
};
template <>
- struct StructExtends<DedicatedAllocationBufferCreateInfoNV, BufferCreateInfo>
+ struct StructExtends<PhysicalDeviceProtectedMemoryFeatures, PhysicalDeviceFeatures2>
{
enum
{
@@ -6584,7 +6746,7 @@ namespace VULKAN_HPP_NAMESPACE
};
};
template <>
- struct StructExtends<DedicatedAllocationImageCreateInfoNV, ImageCreateInfo>
+ struct StructExtends<PhysicalDeviceProtectedMemoryFeatures, DeviceCreateInfo>
{
enum
{
@@ -6592,7 +6754,7 @@ namespace VULKAN_HPP_NAMESPACE
};
};
template <>
- struct StructExtends<DedicatedAllocationMemoryAllocateInfoNV, MemoryAllocateInfo>
+ struct StructExtends<PhysicalDeviceProtectedMemoryProperties, PhysicalDeviceProperties2>
{
enum
{
@@ -6600,7 +6762,7 @@ namespace VULKAN_HPP_NAMESPACE
};
};
template <>
- struct StructExtends<DescriptorPoolInlineUniformBlockCreateInfoEXT, DescriptorPoolCreateInfo>
+ struct StructExtends<ProtectedSubmitInfo, SubmitInfo>
{
enum
{
@@ -6608,7 +6770,7 @@ namespace VULKAN_HPP_NAMESPACE
};
};
template <>
- struct StructExtends<DescriptorSetLayoutBindingFlagsCreateInfo, DescriptorSetLayoutCreateInfo>
+ struct StructExtends<SamplerYcbcrConversionInfo, SamplerCreateInfo>
{
enum
{
@@ -6616,7 +6778,7 @@ namespace VULKAN_HPP_NAMESPACE
};
};
template <>
- struct StructExtends<DescriptorSetVariableDescriptorCountAllocateInfo, DescriptorSetAllocateInfo>
+ struct StructExtends<SamplerYcbcrConversionInfo, ImageViewCreateInfo>
{
enum
{
@@ -6624,7 +6786,7 @@ namespace VULKAN_HPP_NAMESPACE
};
};
template <>
- struct StructExtends<DescriptorSetVariableDescriptorCountLayoutSupport, DescriptorSetLayoutSupport>
+ struct StructExtends<BindImagePlaneMemoryInfo, BindImageMemoryInfo>
{
enum
{
@@ -6632,7 +6794,7 @@ namespace VULKAN_HPP_NAMESPACE
};
};
template <>
- struct StructExtends<DeviceDeviceMemoryReportCreateInfoEXT, DeviceCreateInfo>
+ struct StructExtends<ImagePlaneMemoryRequirementsInfo, ImageMemoryRequirementsInfo2>
{
enum
{
@@ -6640,7 +6802,7 @@ namespace VULKAN_HPP_NAMESPACE
};
};
template <>
- struct StructExtends<DeviceDiagnosticsConfigCreateInfoNV, DeviceCreateInfo>
+ struct StructExtends<PhysicalDeviceSamplerYcbcrConversionFeatures, PhysicalDeviceFeatures2>
{
enum
{
@@ -6648,7 +6810,7 @@ namespace VULKAN_HPP_NAMESPACE
};
};
template <>
- struct StructExtends<DeviceGroupBindSparseInfo, BindSparseInfo>
+ struct StructExtends<PhysicalDeviceSamplerYcbcrConversionFeatures, DeviceCreateInfo>
{
enum
{
@@ -6656,7 +6818,7 @@ namespace VULKAN_HPP_NAMESPACE
};
};
template <>
- struct StructExtends<DeviceGroupCommandBufferBeginInfo, CommandBufferBeginInfo>
+ struct StructExtends<SamplerYcbcrConversionImageFormatProperties, ImageFormatProperties2>
{
enum
{
@@ -6664,7 +6826,7 @@ namespace VULKAN_HPP_NAMESPACE
};
};
template <>
- struct StructExtends<DeviceGroupDeviceCreateInfo, DeviceCreateInfo>
+ struct StructExtends<PhysicalDeviceExternalImageFormatInfo, PhysicalDeviceImageFormatInfo2>
{
enum
{
@@ -6672,7 +6834,7 @@ namespace VULKAN_HPP_NAMESPACE
};
};
template <>
- struct StructExtends<DeviceGroupPresentInfoKHR, PresentInfoKHR>
+ struct StructExtends<ExternalImageFormatProperties, ImageFormatProperties2>
{
enum
{
@@ -6680,7 +6842,7 @@ namespace VULKAN_HPP_NAMESPACE
};
};
template <>
- struct StructExtends<DeviceGroupRenderPassBeginInfo, RenderPassBeginInfo>
+ struct StructExtends<PhysicalDeviceIDProperties, PhysicalDeviceProperties2>
{
enum
{
@@ -6688,7 +6850,7 @@ namespace VULKAN_HPP_NAMESPACE
};
};
template <>
- struct StructExtends<DeviceGroupSubmitInfo, SubmitInfo>
+ struct StructExtends<ExternalMemoryImageCreateInfo, ImageCreateInfo>
{
enum
{
@@ -6696,7 +6858,7 @@ namespace VULKAN_HPP_NAMESPACE
};
};
template <>
- struct StructExtends<DeviceGroupSwapchainCreateInfoKHR, SwapchainCreateInfoKHR>
+ struct StructExtends<ExternalMemoryBufferCreateInfo, BufferCreateInfo>
{
enum
{
@@ -6704,7 +6866,7 @@ namespace VULKAN_HPP_NAMESPACE
};
};
template <>
- struct StructExtends<DeviceMemoryOverallocationCreateInfoAMD, DeviceCreateInfo>
+ struct StructExtends<ExportMemoryAllocateInfo, MemoryAllocateInfo>
{
enum
{
@@ -6712,7 +6874,7 @@ namespace VULKAN_HPP_NAMESPACE
};
};
template <>
- struct StructExtends<DevicePrivateDataCreateInfoEXT, DeviceCreateInfo>
+ struct StructExtends<ExportFenceCreateInfo, FenceCreateInfo>
{
enum
{
@@ -6720,7 +6882,7 @@ namespace VULKAN_HPP_NAMESPACE
};
};
template <>
- struct StructExtends<DeviceQueueGlobalPriorityCreateInfoEXT, DeviceQueueCreateInfo>
+ struct StructExtends<ExportSemaphoreCreateInfo, SemaphoreCreateInfo>
{
enum
{
@@ -6728,7 +6890,7 @@ namespace VULKAN_HPP_NAMESPACE
};
};
template <>
- struct StructExtends<DisplayNativeHdrSurfaceCapabilitiesAMD, SurfaceCapabilities2KHR>
+ struct StructExtends<PhysicalDeviceMaintenance3Properties, PhysicalDeviceProperties2>
{
enum
{
@@ -6736,7 +6898,7 @@ namespace VULKAN_HPP_NAMESPACE
};
};
template <>
- struct StructExtends<DisplayPresentInfoKHR, PresentInfoKHR>
+ struct StructExtends<PhysicalDeviceShaderDrawParametersFeatures, PhysicalDeviceFeatures2>
{
enum
{
@@ -6744,33 +6906,33 @@ namespace VULKAN_HPP_NAMESPACE
};
};
template <>
- struct StructExtends<DrmFormatModifierPropertiesListEXT, FormatProperties2>
+ struct StructExtends<PhysicalDeviceShaderDrawParametersFeatures, DeviceCreateInfo>
{
enum
{
value = true
};
};
+
+ //=== VK_VERSION_1_2 ===
template <>
- struct StructExtends<ExportFenceCreateInfo, FenceCreateInfo>
+ struct StructExtends<PhysicalDeviceVulkan11Features, PhysicalDeviceFeatures2>
{
enum
{
value = true
};
};
-#if defined( VK_USE_PLATFORM_WIN32_KHR )
template <>
- struct StructExtends<ExportFenceWin32HandleInfoKHR, FenceCreateInfo>
+ struct StructExtends<PhysicalDeviceVulkan11Features, DeviceCreateInfo>
{
enum
{
value = true
};
};
-#endif /*VK_USE_PLATFORM_WIN32_KHR*/
template <>
- struct StructExtends<ExportMemoryAllocateInfo, MemoryAllocateInfo>
+ struct StructExtends<PhysicalDeviceVulkan11Properties, PhysicalDeviceProperties2>
{
enum
{
@@ -6778,54 +6940,47 @@ namespace VULKAN_HPP_NAMESPACE
};
};
template <>
- struct StructExtends<ExportMemoryAllocateInfoNV, MemoryAllocateInfo>
+ struct StructExtends<PhysicalDeviceVulkan12Features, PhysicalDeviceFeatures2>
{
enum
{
value = true
};
};
-#if defined( VK_USE_PLATFORM_WIN32_KHR )
template <>
- struct StructExtends<ExportMemoryWin32HandleInfoKHR, MemoryAllocateInfo>
+ struct StructExtends<PhysicalDeviceVulkan12Features, DeviceCreateInfo>
{
enum
{
value = true
};
};
-#endif /*VK_USE_PLATFORM_WIN32_KHR*/
-#if defined( VK_USE_PLATFORM_WIN32_KHR )
template <>
- struct StructExtends<ExportMemoryWin32HandleInfoNV, MemoryAllocateInfo>
+ struct StructExtends<PhysicalDeviceVulkan12Properties, PhysicalDeviceProperties2>
{
enum
{
value = true
};
};
-#endif /*VK_USE_PLATFORM_WIN32_KHR*/
template <>
- struct StructExtends<ExportSemaphoreCreateInfo, SemaphoreCreateInfo>
+ struct StructExtends<ImageFormatListCreateInfo, ImageCreateInfo>
{
enum
{
value = true
};
};
-#if defined( VK_USE_PLATFORM_WIN32_KHR )
template <>
- struct StructExtends<ExportSemaphoreWin32HandleInfoKHR, SemaphoreCreateInfo>
+ struct StructExtends<ImageFormatListCreateInfo, SwapchainCreateInfoKHR>
{
enum
{
value = true
};
};
-#endif /*VK_USE_PLATFORM_WIN32_KHR*/
-#if defined( VK_USE_PLATFORM_ANDROID_KHR )
template <>
- struct StructExtends<ExternalFormatANDROID, ImageCreateInfo>
+ struct StructExtends<ImageFormatListCreateInfo, PhysicalDeviceImageFormatInfo2>
{
enum
{
@@ -6833,16 +6988,15 @@ namespace VULKAN_HPP_NAMESPACE
};
};
template <>
- struct StructExtends<ExternalFormatANDROID, SamplerYcbcrConversionCreateInfo>
+ struct StructExtends<PhysicalDevice8BitStorageFeatures, PhysicalDeviceFeatures2>
{
enum
{
value = true
};
};
-#endif /*VK_USE_PLATFORM_ANDROID_KHR*/
template <>
- struct StructExtends<ExternalImageFormatProperties, ImageFormatProperties2>
+ struct StructExtends<PhysicalDevice8BitStorageFeatures, DeviceCreateInfo>
{
enum
{
@@ -6850,7 +7004,7 @@ namespace VULKAN_HPP_NAMESPACE
};
};
template <>
- struct StructExtends<ExternalMemoryBufferCreateInfo, BufferCreateInfo>
+ struct StructExtends<PhysicalDeviceDriverProperties, PhysicalDeviceProperties2>
{
enum
{
@@ -6858,7 +7012,7 @@ namespace VULKAN_HPP_NAMESPACE
};
};
template <>
- struct StructExtends<ExternalMemoryImageCreateInfo, ImageCreateInfo>
+ struct StructExtends<PhysicalDeviceShaderAtomicInt64Features, PhysicalDeviceFeatures2>
{
enum
{
@@ -6866,7 +7020,7 @@ namespace VULKAN_HPP_NAMESPACE
};
};
template <>
- struct StructExtends<ExternalMemoryImageCreateInfoNV, ImageCreateInfo>
+ struct StructExtends<PhysicalDeviceShaderAtomicInt64Features, DeviceCreateInfo>
{
enum
{
@@ -6874,7 +7028,7 @@ namespace VULKAN_HPP_NAMESPACE
};
};
template <>
- struct StructExtends<FilterCubicImageViewImageFormatPropertiesEXT, ImageFormatProperties2>
+ struct StructExtends<PhysicalDeviceShaderFloat16Int8Features, PhysicalDeviceFeatures2>
{
enum
{
@@ -6882,7 +7036,7 @@ namespace VULKAN_HPP_NAMESPACE
};
};
template <>
- struct StructExtends<FragmentShadingRateAttachmentInfoKHR, SubpassDescription2>
+ struct StructExtends<PhysicalDeviceShaderFloat16Int8Features, DeviceCreateInfo>
{
enum
{
@@ -6890,7 +7044,7 @@ namespace VULKAN_HPP_NAMESPACE
};
};
template <>
- struct StructExtends<FramebufferAttachmentsCreateInfo, FramebufferCreateInfo>
+ struct StructExtends<PhysicalDeviceFloatControlsProperties, PhysicalDeviceProperties2>
{
enum
{
@@ -6898,7 +7052,7 @@ namespace VULKAN_HPP_NAMESPACE
};
};
template <>
- struct StructExtends<GraphicsPipelineShaderGroupsCreateInfoNV, GraphicsPipelineCreateInfo>
+ struct StructExtends<DescriptorSetLayoutBindingFlagsCreateInfo, DescriptorSetLayoutCreateInfo>
{
enum
{
@@ -6906,7 +7060,7 @@ namespace VULKAN_HPP_NAMESPACE
};
};
template <>
- struct StructExtends<ImageDrmFormatModifierExplicitCreateInfoEXT, ImageCreateInfo>
+ struct StructExtends<PhysicalDeviceDescriptorIndexingFeatures, PhysicalDeviceFeatures2>
{
enum
{
@@ -6914,7 +7068,7 @@ namespace VULKAN_HPP_NAMESPACE
};
};
template <>
- struct StructExtends<ImageDrmFormatModifierListCreateInfoEXT, ImageCreateInfo>
+ struct StructExtends<PhysicalDeviceDescriptorIndexingFeatures, DeviceCreateInfo>
{
enum
{
@@ -6922,7 +7076,7 @@ namespace VULKAN_HPP_NAMESPACE
};
};
template <>
- struct StructExtends<ImageFormatListCreateInfo, ImageCreateInfo>
+ struct StructExtends<PhysicalDeviceDescriptorIndexingProperties, PhysicalDeviceProperties2>
{
enum
{
@@ -6930,7 +7084,7 @@ namespace VULKAN_HPP_NAMESPACE
};
};
template <>
- struct StructExtends<ImageFormatListCreateInfo, SwapchainCreateInfoKHR>
+ struct StructExtends<DescriptorSetVariableDescriptorCountAllocateInfo, DescriptorSetAllocateInfo>
{
enum
{
@@ -6938,7 +7092,7 @@ namespace VULKAN_HPP_NAMESPACE
};
};
template <>
- struct StructExtends<ImageFormatListCreateInfo, PhysicalDeviceImageFormatInfo2>
+ struct StructExtends<DescriptorSetVariableDescriptorCountLayoutSupport, DescriptorSetLayoutSupport>
{
enum
{
@@ -6946,7 +7100,31 @@ namespace VULKAN_HPP_NAMESPACE
};
};
template <>
- struct StructExtends<ImagePlaneMemoryRequirementsInfo, ImageMemoryRequirementsInfo2>
+ struct StructExtends<SubpassDescriptionDepthStencilResolve, SubpassDescription2>
+ {
+ enum
+ {
+ value = true
+ };
+ };
+ template <>
+ struct StructExtends<PhysicalDeviceDepthStencilResolveProperties, PhysicalDeviceProperties2>
+ {
+ enum
+ {
+ value = true
+ };
+ };
+ template <>
+ struct StructExtends<PhysicalDeviceScalarBlockLayoutFeatures, PhysicalDeviceFeatures2>
+ {
+ enum
+ {
+ value = true
+ };
+ };
+ template <>
+ struct StructExtends<PhysicalDeviceScalarBlockLayoutFeatures, DeviceCreateInfo>
{
enum
{
@@ -6970,7 +7148,7 @@ namespace VULKAN_HPP_NAMESPACE
};
};
template <>
- struct StructExtends<ImageSwapchainCreateInfoKHR, ImageCreateInfo>
+ struct StructExtends<SamplerReductionModeCreateInfo, SamplerCreateInfo>
{
enum
{
@@ -6978,7 +7156,7 @@ namespace VULKAN_HPP_NAMESPACE
};
};
template <>
- struct StructExtends<ImageViewASTCDecodeModeEXT, ImageViewCreateInfo>
+ struct StructExtends<PhysicalDeviceSamplerFilterMinmaxProperties, PhysicalDeviceProperties2>
{
enum
{
@@ -6986,25 +7164,23 @@ namespace VULKAN_HPP_NAMESPACE
};
};
template <>
- struct StructExtends<ImageViewUsageCreateInfo, ImageViewCreateInfo>
+ struct StructExtends<PhysicalDeviceVulkanMemoryModelFeatures, PhysicalDeviceFeatures2>
{
enum
{
value = true
};
};
-#if defined( VK_USE_PLATFORM_ANDROID_KHR )
template <>
- struct StructExtends<ImportAndroidHardwareBufferInfoANDROID, MemoryAllocateInfo>
+ struct StructExtends<PhysicalDeviceVulkanMemoryModelFeatures, DeviceCreateInfo>
{
enum
{
value = true
};
};
-#endif /*VK_USE_PLATFORM_ANDROID_KHR*/
template <>
- struct StructExtends<ImportMemoryFdInfoKHR, MemoryAllocateInfo>
+ struct StructExtends<PhysicalDeviceImagelessFramebufferFeatures, PhysicalDeviceFeatures2>
{
enum
{
@@ -7012,45 +7188,39 @@ namespace VULKAN_HPP_NAMESPACE
};
};
template <>
- struct StructExtends<ImportMemoryHostPointerInfoEXT, MemoryAllocateInfo>
+ struct StructExtends<PhysicalDeviceImagelessFramebufferFeatures, DeviceCreateInfo>
{
enum
{
value = true
};
};
-#if defined( VK_USE_PLATFORM_WIN32_KHR )
template <>
- struct StructExtends<ImportMemoryWin32HandleInfoKHR, MemoryAllocateInfo>
+ struct StructExtends<FramebufferAttachmentsCreateInfo, FramebufferCreateInfo>
{
enum
{
value = true
};
};
-#endif /*VK_USE_PLATFORM_WIN32_KHR*/
-#if defined( VK_USE_PLATFORM_WIN32_KHR )
template <>
- struct StructExtends<ImportMemoryWin32HandleInfoNV, MemoryAllocateInfo>
+ struct StructExtends<RenderPassAttachmentBeginInfo, RenderPassBeginInfo>
{
enum
{
value = true
};
};
-#endif /*VK_USE_PLATFORM_WIN32_KHR*/
-#if defined( VK_USE_PLATFORM_FUCHSIA )
template <>
- struct StructExtends<ImportMemoryZirconHandleInfoFUCHSIA, MemoryAllocateInfo>
+ struct StructExtends<PhysicalDeviceUniformBufferStandardLayoutFeatures, PhysicalDeviceFeatures2>
{
enum
{
value = true
};
};
-#endif /*VK_USE_PLATFORM_FUCHSIA*/
template <>
- struct StructExtends<MemoryAllocateFlagsInfo, MemoryAllocateInfo>
+ struct StructExtends<PhysicalDeviceUniformBufferStandardLayoutFeatures, DeviceCreateInfo>
{
enum
{
@@ -7058,7 +7228,7 @@ namespace VULKAN_HPP_NAMESPACE
};
};
template <>
- struct StructExtends<MemoryBarrier2KHR, SubpassDependency2>
+ struct StructExtends<PhysicalDeviceShaderSubgroupExtendedTypesFeatures, PhysicalDeviceFeatures2>
{
enum
{
@@ -7066,7 +7236,7 @@ namespace VULKAN_HPP_NAMESPACE
};
};
template <>
- struct StructExtends<MemoryDedicatedAllocateInfo, MemoryAllocateInfo>
+ struct StructExtends<PhysicalDeviceShaderSubgroupExtendedTypesFeatures, DeviceCreateInfo>
{
enum
{
@@ -7074,7 +7244,7 @@ namespace VULKAN_HPP_NAMESPACE
};
};
template <>
- struct StructExtends<MemoryDedicatedRequirements, MemoryRequirements2>
+ struct StructExtends<PhysicalDeviceSeparateDepthStencilLayoutsFeatures, PhysicalDeviceFeatures2>
{
enum
{
@@ -7082,7 +7252,7 @@ namespace VULKAN_HPP_NAMESPACE
};
};
template <>
- struct StructExtends<MemoryOpaqueCaptureAddressAllocateInfo, MemoryAllocateInfo>
+ struct StructExtends<PhysicalDeviceSeparateDepthStencilLayoutsFeatures, DeviceCreateInfo>
{
enum
{
@@ -7090,7 +7260,7 @@ namespace VULKAN_HPP_NAMESPACE
};
};
template <>
- struct StructExtends<MemoryPriorityAllocateInfoEXT, MemoryAllocateInfo>
+ struct StructExtends<AttachmentReferenceStencilLayout, AttachmentReference2>
{
enum
{
@@ -7098,7 +7268,7 @@ namespace VULKAN_HPP_NAMESPACE
};
};
template <>
- struct StructExtends<MutableDescriptorTypeCreateInfoVALVE, DescriptorSetLayoutCreateInfo>
+ struct StructExtends<AttachmentDescriptionStencilLayout, AttachmentDescription2>
{
enum
{
@@ -7106,7 +7276,7 @@ namespace VULKAN_HPP_NAMESPACE
};
};
template <>
- struct StructExtends<MutableDescriptorTypeCreateInfoVALVE, DescriptorPoolCreateInfo>
+ struct StructExtends<PhysicalDeviceHostQueryResetFeatures, PhysicalDeviceFeatures2>
{
enum
{
@@ -7114,7 +7284,7 @@ namespace VULKAN_HPP_NAMESPACE
};
};
template <>
- struct StructExtends<PerformanceQuerySubmitInfoKHR, SubmitInfo>
+ struct StructExtends<PhysicalDeviceHostQueryResetFeatures, DeviceCreateInfo>
{
enum
{
@@ -7122,7 +7292,7 @@ namespace VULKAN_HPP_NAMESPACE
};
};
template <>
- struct StructExtends<PerformanceQuerySubmitInfoKHR, SubmitInfo2KHR>
+ struct StructExtends<PhysicalDeviceTimelineSemaphoreFeatures, PhysicalDeviceFeatures2>
{
enum
{
@@ -7130,7 +7300,7 @@ namespace VULKAN_HPP_NAMESPACE
};
};
template <>
- struct StructExtends<PhysicalDevice16BitStorageFeatures, PhysicalDeviceFeatures2>
+ struct StructExtends<PhysicalDeviceTimelineSemaphoreFeatures, DeviceCreateInfo>
{
enum
{
@@ -7138,7 +7308,7 @@ namespace VULKAN_HPP_NAMESPACE
};
};
template <>
- struct StructExtends<PhysicalDevice16BitStorageFeatures, DeviceCreateInfo>
+ struct StructExtends<PhysicalDeviceTimelineSemaphoreProperties, PhysicalDeviceProperties2>
{
enum
{
@@ -7146,7 +7316,7 @@ namespace VULKAN_HPP_NAMESPACE
};
};
template <>
- struct StructExtends<PhysicalDevice4444FormatsFeaturesEXT, PhysicalDeviceFeatures2>
+ struct StructExtends<SemaphoreTypeCreateInfo, SemaphoreCreateInfo>
{
enum
{
@@ -7154,7 +7324,7 @@ namespace VULKAN_HPP_NAMESPACE
};
};
template <>
- struct StructExtends<PhysicalDevice4444FormatsFeaturesEXT, DeviceCreateInfo>
+ struct StructExtends<SemaphoreTypeCreateInfo, PhysicalDeviceExternalSemaphoreInfo>
{
enum
{
@@ -7162,7 +7332,7 @@ namespace VULKAN_HPP_NAMESPACE
};
};
template <>
- struct StructExtends<PhysicalDevice8BitStorageFeatures, PhysicalDeviceFeatures2>
+ struct StructExtends<TimelineSemaphoreSubmitInfo, SubmitInfo>
{
enum
{
@@ -7170,7 +7340,7 @@ namespace VULKAN_HPP_NAMESPACE
};
};
template <>
- struct StructExtends<PhysicalDevice8BitStorageFeatures, DeviceCreateInfo>
+ struct StructExtends<TimelineSemaphoreSubmitInfo, BindSparseInfo>
{
enum
{
@@ -7178,7 +7348,7 @@ namespace VULKAN_HPP_NAMESPACE
};
};
template <>
- struct StructExtends<PhysicalDeviceASTCDecodeFeaturesEXT, PhysicalDeviceFeatures2>
+ struct StructExtends<PhysicalDeviceBufferDeviceAddressFeatures, PhysicalDeviceFeatures2>
{
enum
{
@@ -7186,7 +7356,7 @@ namespace VULKAN_HPP_NAMESPACE
};
};
template <>
- struct StructExtends<PhysicalDeviceASTCDecodeFeaturesEXT, DeviceCreateInfo>
+ struct StructExtends<PhysicalDeviceBufferDeviceAddressFeatures, DeviceCreateInfo>
{
enum
{
@@ -7194,7 +7364,7 @@ namespace VULKAN_HPP_NAMESPACE
};
};
template <>
- struct StructExtends<PhysicalDeviceAccelerationStructureFeaturesKHR, PhysicalDeviceFeatures2>
+ struct StructExtends<BufferOpaqueCaptureAddressCreateInfo, BufferCreateInfo>
{
enum
{
@@ -7202,15 +7372,17 @@ namespace VULKAN_HPP_NAMESPACE
};
};
template <>
- struct StructExtends<PhysicalDeviceAccelerationStructureFeaturesKHR, DeviceCreateInfo>
+ struct StructExtends<MemoryOpaqueCaptureAddressAllocateInfo, MemoryAllocateInfo>
{
enum
{
value = true
};
};
+
+ //=== VK_KHR_swapchain ===
template <>
- struct StructExtends<PhysicalDeviceAccelerationStructurePropertiesKHR, PhysicalDeviceProperties2>
+ struct StructExtends<ImageSwapchainCreateInfoKHR, ImageCreateInfo>
{
enum
{
@@ -7218,7 +7390,7 @@ namespace VULKAN_HPP_NAMESPACE
};
};
template <>
- struct StructExtends<PhysicalDeviceBlendOperationAdvancedFeaturesEXT, PhysicalDeviceFeatures2>
+ struct StructExtends<BindImageMemorySwapchainInfoKHR, BindImageMemoryInfo>
{
enum
{
@@ -7226,7 +7398,7 @@ namespace VULKAN_HPP_NAMESPACE
};
};
template <>
- struct StructExtends<PhysicalDeviceBlendOperationAdvancedFeaturesEXT, DeviceCreateInfo>
+ struct StructExtends<DeviceGroupPresentInfoKHR, PresentInfoKHR>
{
enum
{
@@ -7234,39 +7406,48 @@ namespace VULKAN_HPP_NAMESPACE
};
};
template <>
- struct StructExtends<PhysicalDeviceBlendOperationAdvancedPropertiesEXT, PhysicalDeviceProperties2>
+ struct StructExtends<DeviceGroupSwapchainCreateInfoKHR, SwapchainCreateInfoKHR>
{
enum
{
value = true
};
};
+
+ //=== VK_KHR_display_swapchain ===
template <>
- struct StructExtends<PhysicalDeviceBufferDeviceAddressFeatures, PhysicalDeviceFeatures2>
+ struct StructExtends<DisplayPresentInfoKHR, PresentInfoKHR>
{
enum
{
value = true
};
};
+
+ //=== VK_EXT_debug_report ===
template <>
- struct StructExtends<PhysicalDeviceBufferDeviceAddressFeatures, DeviceCreateInfo>
+ struct StructExtends<DebugReportCallbackCreateInfoEXT, InstanceCreateInfo>
{
enum
{
value = true
};
};
+
+ //=== VK_AMD_rasterization_order ===
template <>
- struct StructExtends<PhysicalDeviceBufferDeviceAddressFeaturesEXT, PhysicalDeviceFeatures2>
+ struct StructExtends<PipelineRasterizationStateRasterizationOrderAMD, PipelineRasterizationStateCreateInfo>
{
enum
{
value = true
};
};
+
+#if defined( VK_ENABLE_BETA_EXTENSIONS )
+ //=== VK_KHR_video_queue ===
template <>
- struct StructExtends<PhysicalDeviceBufferDeviceAddressFeaturesEXT, DeviceCreateInfo>
+ struct StructExtends<VideoQueueFamilyProperties2KHR, QueueFamilyProperties2>
{
enum
{
@@ -7274,7 +7455,7 @@ namespace VULKAN_HPP_NAMESPACE
};
};
template <>
- struct StructExtends<PhysicalDeviceCoherentMemoryFeaturesAMD, PhysicalDeviceFeatures2>
+ struct StructExtends<VideoProfileKHR, QueryPoolCreateInfo>
{
enum
{
@@ -7282,7 +7463,7 @@ namespace VULKAN_HPP_NAMESPACE
};
};
template <>
- struct StructExtends<PhysicalDeviceCoherentMemoryFeaturesAMD, DeviceCreateInfo>
+ struct StructExtends<VideoProfileKHR, FormatProperties2>
{
enum
{
@@ -7290,7 +7471,7 @@ namespace VULKAN_HPP_NAMESPACE
};
};
template <>
- struct StructExtends<PhysicalDeviceColorWriteEnableFeaturesEXT, PhysicalDeviceFeatures2>
+ struct StructExtends<VideoProfileKHR, ImageCreateInfo>
{
enum
{
@@ -7298,7 +7479,7 @@ namespace VULKAN_HPP_NAMESPACE
};
};
template <>
- struct StructExtends<PhysicalDeviceColorWriteEnableFeaturesEXT, DeviceCreateInfo>
+ struct StructExtends<VideoProfileKHR, ImageViewCreateInfo>
{
enum
{
@@ -7306,7 +7487,7 @@ namespace VULKAN_HPP_NAMESPACE
};
};
template <>
- struct StructExtends<PhysicalDeviceComputeShaderDerivativesFeaturesNV, PhysicalDeviceFeatures2>
+ struct StructExtends<VideoProfileKHR, BufferCreateInfo>
{
enum
{
@@ -7314,7 +7495,7 @@ namespace VULKAN_HPP_NAMESPACE
};
};
template <>
- struct StructExtends<PhysicalDeviceComputeShaderDerivativesFeaturesNV, DeviceCreateInfo>
+ struct StructExtends<VideoProfilesKHR, FormatProperties2>
{
enum
{
@@ -7322,7 +7503,7 @@ namespace VULKAN_HPP_NAMESPACE
};
};
template <>
- struct StructExtends<PhysicalDeviceConditionalRenderingFeaturesEXT, PhysicalDeviceFeatures2>
+ struct StructExtends<VideoProfilesKHR, ImageCreateInfo>
{
enum
{
@@ -7330,7 +7511,7 @@ namespace VULKAN_HPP_NAMESPACE
};
};
template <>
- struct StructExtends<PhysicalDeviceConditionalRenderingFeaturesEXT, DeviceCreateInfo>
+ struct StructExtends<VideoProfilesKHR, ImageViewCreateInfo>
{
enum
{
@@ -7338,15 +7519,18 @@ namespace VULKAN_HPP_NAMESPACE
};
};
template <>
- struct StructExtends<PhysicalDeviceConservativeRasterizationPropertiesEXT, PhysicalDeviceProperties2>
+ struct StructExtends<VideoProfilesKHR, BufferCreateInfo>
{
enum
{
value = true
};
};
+#endif /*VK_ENABLE_BETA_EXTENSIONS*/
+
+ //=== VK_NV_dedicated_allocation ===
template <>
- struct StructExtends<PhysicalDeviceCooperativeMatrixFeaturesNV, PhysicalDeviceFeatures2>
+ struct StructExtends<DedicatedAllocationImageCreateInfoNV, ImageCreateInfo>
{
enum
{
@@ -7354,7 +7538,7 @@ namespace VULKAN_HPP_NAMESPACE
};
};
template <>
- struct StructExtends<PhysicalDeviceCooperativeMatrixFeaturesNV, DeviceCreateInfo>
+ struct StructExtends<DedicatedAllocationBufferCreateInfoNV, BufferCreateInfo>
{
enum
{
@@ -7362,15 +7546,17 @@ namespace VULKAN_HPP_NAMESPACE
};
};
template <>
- struct StructExtends<PhysicalDeviceCooperativeMatrixPropertiesNV, PhysicalDeviceProperties2>
+ struct StructExtends<DedicatedAllocationMemoryAllocateInfoNV, MemoryAllocateInfo>
{
enum
{
value = true
};
};
+
+ //=== VK_EXT_transform_feedback ===
template <>
- struct StructExtends<PhysicalDeviceCornerSampledImageFeaturesNV, PhysicalDeviceFeatures2>
+ struct StructExtends<PhysicalDeviceTransformFeedbackFeaturesEXT, PhysicalDeviceFeatures2>
{
enum
{
@@ -7378,7 +7564,7 @@ namespace VULKAN_HPP_NAMESPACE
};
};
template <>
- struct StructExtends<PhysicalDeviceCornerSampledImageFeaturesNV, DeviceCreateInfo>
+ struct StructExtends<PhysicalDeviceTransformFeedbackFeaturesEXT, DeviceCreateInfo>
{
enum
{
@@ -7386,7 +7572,7 @@ namespace VULKAN_HPP_NAMESPACE
};
};
template <>
- struct StructExtends<PhysicalDeviceCoverageReductionModeFeaturesNV, PhysicalDeviceFeatures2>
+ struct StructExtends<PhysicalDeviceTransformFeedbackPropertiesEXT, PhysicalDeviceProperties2>
{
enum
{
@@ -7394,15 +7580,18 @@ namespace VULKAN_HPP_NAMESPACE
};
};
template <>
- struct StructExtends<PhysicalDeviceCoverageReductionModeFeaturesNV, DeviceCreateInfo>
+ struct StructExtends<PipelineRasterizationStateStreamCreateInfoEXT, PipelineRasterizationStateCreateInfo>
{
enum
{
value = true
};
};
+
+#if defined( VK_ENABLE_BETA_EXTENSIONS )
+ //=== VK_EXT_video_encode_h264 ===
template <>
- struct StructExtends<PhysicalDeviceCustomBorderColorFeaturesEXT, PhysicalDeviceFeatures2>
+ struct StructExtends<VideoEncodeH264CapabilitiesEXT, VideoCapabilitiesKHR>
{
enum
{
@@ -7410,7 +7599,7 @@ namespace VULKAN_HPP_NAMESPACE
};
};
template <>
- struct StructExtends<PhysicalDeviceCustomBorderColorFeaturesEXT, DeviceCreateInfo>
+ struct StructExtends<VideoEncodeH264SessionCreateInfoEXT, VideoSessionCreateInfoKHR>
{
enum
{
@@ -7418,7 +7607,7 @@ namespace VULKAN_HPP_NAMESPACE
};
};
template <>
- struct StructExtends<PhysicalDeviceCustomBorderColorPropertiesEXT, PhysicalDeviceProperties2>
+ struct StructExtends<VideoEncodeH264SessionParametersCreateInfoEXT, VideoSessionParametersCreateInfoKHR>
{
enum
{
@@ -7426,7 +7615,7 @@ namespace VULKAN_HPP_NAMESPACE
};
};
template <>
- struct StructExtends<PhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV, PhysicalDeviceFeatures2>
+ struct StructExtends<VideoEncodeH264SessionParametersAddInfoEXT, VideoSessionParametersUpdateInfoKHR>
{
enum
{
@@ -7434,7 +7623,7 @@ namespace VULKAN_HPP_NAMESPACE
};
};
template <>
- struct StructExtends<PhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV, DeviceCreateInfo>
+ struct StructExtends<VideoEncodeH264VclFrameInfoEXT, VideoEncodeInfoKHR>
{
enum
{
@@ -7442,7 +7631,7 @@ namespace VULKAN_HPP_NAMESPACE
};
};
template <>
- struct StructExtends<PhysicalDeviceDepthClipEnableFeaturesEXT, PhysicalDeviceFeatures2>
+ struct StructExtends<VideoEncodeH264EmitPictureParametersEXT, VideoEncodeInfoKHR>
{
enum
{
@@ -7450,15 +7639,19 @@ namespace VULKAN_HPP_NAMESPACE
};
};
template <>
- struct StructExtends<PhysicalDeviceDepthClipEnableFeaturesEXT, DeviceCreateInfo>
+ struct StructExtends<VideoEncodeH264ProfileEXT, VideoProfileKHR>
{
enum
{
value = true
};
};
+#endif /*VK_ENABLE_BETA_EXTENSIONS*/
+
+#if defined( VK_ENABLE_BETA_EXTENSIONS )
+ //=== VK_EXT_video_decode_h264 ===
template <>
- struct StructExtends<PhysicalDeviceDepthStencilResolveProperties, PhysicalDeviceProperties2>
+ struct StructExtends<VideoDecodeH264ProfileEXT, VideoProfileKHR>
{
enum
{
@@ -7466,7 +7659,7 @@ namespace VULKAN_HPP_NAMESPACE
};
};
template <>
- struct StructExtends<PhysicalDeviceDescriptorIndexingFeatures, PhysicalDeviceFeatures2>
+ struct StructExtends<VideoDecodeH264CapabilitiesEXT, VideoCapabilitiesKHR>
{
enum
{
@@ -7474,7 +7667,7 @@ namespace VULKAN_HPP_NAMESPACE
};
};
template <>
- struct StructExtends<PhysicalDeviceDescriptorIndexingFeatures, DeviceCreateInfo>
+ struct StructExtends<VideoDecodeH264SessionCreateInfoEXT, VideoSessionCreateInfoKHR>
{
enum
{
@@ -7482,7 +7675,7 @@ namespace VULKAN_HPP_NAMESPACE
};
};
template <>
- struct StructExtends<PhysicalDeviceDescriptorIndexingProperties, PhysicalDeviceProperties2>
+ struct StructExtends<VideoDecodeH264SessionParametersCreateInfoEXT, VideoSessionParametersCreateInfoKHR>
{
enum
{
@@ -7490,7 +7683,7 @@ namespace VULKAN_HPP_NAMESPACE
};
};
template <>
- struct StructExtends<PhysicalDeviceDeviceGeneratedCommandsFeaturesNV, PhysicalDeviceFeatures2>
+ struct StructExtends<VideoDecodeH264SessionParametersAddInfoEXT, VideoSessionParametersUpdateInfoKHR>
{
enum
{
@@ -7498,7 +7691,7 @@ namespace VULKAN_HPP_NAMESPACE
};
};
template <>
- struct StructExtends<PhysicalDeviceDeviceGeneratedCommandsFeaturesNV, DeviceCreateInfo>
+ struct StructExtends<VideoDecodeH264PictureInfoEXT, VideoDecodeInfoKHR>
{
enum
{
@@ -7506,7 +7699,7 @@ namespace VULKAN_HPP_NAMESPACE
};
};
template <>
- struct StructExtends<PhysicalDeviceDeviceGeneratedCommandsPropertiesNV, PhysicalDeviceProperties2>
+ struct StructExtends<VideoDecodeH264MvcEXT, VideoDecodeH264PictureInfoEXT>
{
enum
{
@@ -7514,23 +7707,28 @@ namespace VULKAN_HPP_NAMESPACE
};
};
template <>
- struct StructExtends<PhysicalDeviceDeviceMemoryReportFeaturesEXT, PhysicalDeviceFeatures2>
+ struct StructExtends<VideoDecodeH264DpbSlotInfoEXT, VideoReferenceSlotKHR>
{
enum
{
value = true
};
};
+#endif /*VK_ENABLE_BETA_EXTENSIONS*/
+
+ //=== VK_AMD_texture_gather_bias_lod ===
template <>
- struct StructExtends<PhysicalDeviceDeviceMemoryReportFeaturesEXT, DeviceCreateInfo>
+ struct StructExtends<TextureLODGatherFormatPropertiesAMD, ImageFormatProperties2>
{
enum
{
value = true
};
};
+
+ //=== VK_NV_corner_sampled_image ===
template <>
- struct StructExtends<PhysicalDeviceDiagnosticsConfigFeaturesNV, PhysicalDeviceFeatures2>
+ struct StructExtends<PhysicalDeviceCornerSampledImageFeaturesNV, PhysicalDeviceFeatures2>
{
enum
{
@@ -7538,15 +7736,17 @@ namespace VULKAN_HPP_NAMESPACE
};
};
template <>
- struct StructExtends<PhysicalDeviceDiagnosticsConfigFeaturesNV, DeviceCreateInfo>
+ struct StructExtends<PhysicalDeviceCornerSampledImageFeaturesNV, DeviceCreateInfo>
{
enum
{
value = true
};
};
+
+ //=== VK_NV_external_memory ===
template <>
- struct StructExtends<PhysicalDeviceDiscardRectanglePropertiesEXT, PhysicalDeviceProperties2>
+ struct StructExtends<ExternalMemoryImageCreateInfoNV, ImageCreateInfo>
{
enum
{
@@ -7554,15 +7754,18 @@ namespace VULKAN_HPP_NAMESPACE
};
};
template <>
- struct StructExtends<PhysicalDeviceDriverProperties, PhysicalDeviceProperties2>
+ struct StructExtends<ExportMemoryAllocateInfoNV, MemoryAllocateInfo>
{
enum
{
value = true
};
};
+
+#if defined( VK_USE_PLATFORM_WIN32_KHR )
+ //=== VK_NV_external_memory_win32 ===
template <>
- struct StructExtends<PhysicalDeviceDrmPropertiesEXT, PhysicalDeviceProperties2>
+ struct StructExtends<ImportMemoryWin32HandleInfoNV, MemoryAllocateInfo>
{
enum
{
@@ -7570,15 +7773,19 @@ namespace VULKAN_HPP_NAMESPACE
};
};
template <>
- struct StructExtends<PhysicalDeviceExclusiveScissorFeaturesNV, PhysicalDeviceFeatures2>
+ struct StructExtends<ExportMemoryWin32HandleInfoNV, MemoryAllocateInfo>
{
enum
{
value = true
};
};
+#endif /*VK_USE_PLATFORM_WIN32_KHR*/
+
+#if defined( VK_USE_PLATFORM_WIN32_KHR )
+ //=== VK_NV_win32_keyed_mutex ===
template <>
- struct StructExtends<PhysicalDeviceExclusiveScissorFeaturesNV, DeviceCreateInfo>
+ struct StructExtends<Win32KeyedMutexAcquireReleaseInfoNV, SubmitInfo>
{
enum
{
@@ -7586,23 +7793,28 @@ namespace VULKAN_HPP_NAMESPACE
};
};
template <>
- struct StructExtends<PhysicalDeviceExtendedDynamicState2FeaturesEXT, PhysicalDeviceFeatures2>
+ struct StructExtends<Win32KeyedMutexAcquireReleaseInfoNV, SubmitInfo2KHR>
{
enum
{
value = true
};
};
+#endif /*VK_USE_PLATFORM_WIN32_KHR*/
+
+ //=== VK_EXT_validation_flags ===
template <>
- struct StructExtends<PhysicalDeviceExtendedDynamicState2FeaturesEXT, DeviceCreateInfo>
+ struct StructExtends<ValidationFlagsEXT, InstanceCreateInfo>
{
enum
{
value = true
};
};
+
+ //=== VK_EXT_texture_compression_astc_hdr ===
template <>
- struct StructExtends<PhysicalDeviceExtendedDynamicStateFeaturesEXT, PhysicalDeviceFeatures2>
+ struct StructExtends<PhysicalDeviceTextureCompressionASTCHDRFeaturesEXT, PhysicalDeviceFeatures2>
{
enum
{
@@ -7610,15 +7822,17 @@ namespace VULKAN_HPP_NAMESPACE
};
};
template <>
- struct StructExtends<PhysicalDeviceExtendedDynamicStateFeaturesEXT, DeviceCreateInfo>
+ struct StructExtends<PhysicalDeviceTextureCompressionASTCHDRFeaturesEXT, DeviceCreateInfo>
{
enum
{
value = true
};
};
+
+ //=== VK_EXT_astc_decode_mode ===
template <>
- struct StructExtends<PhysicalDeviceExternalImageFormatInfo, PhysicalDeviceImageFormatInfo2>
+ struct StructExtends<ImageViewASTCDecodeModeEXT, ImageViewCreateInfo>
{
enum
{
@@ -7626,7 +7840,7 @@ namespace VULKAN_HPP_NAMESPACE
};
};
template <>
- struct StructExtends<PhysicalDeviceExternalMemoryHostPropertiesEXT, PhysicalDeviceProperties2>
+ struct StructExtends<PhysicalDeviceASTCDecodeFeaturesEXT, PhysicalDeviceFeatures2>
{
enum
{
@@ -7634,15 +7848,18 @@ namespace VULKAN_HPP_NAMESPACE
};
};
template <>
- struct StructExtends<PhysicalDeviceFeatures2, DeviceCreateInfo>
+ struct StructExtends<PhysicalDeviceASTCDecodeFeaturesEXT, DeviceCreateInfo>
{
enum
{
value = true
};
};
+
+#if defined( VK_USE_PLATFORM_WIN32_KHR )
+ //=== VK_KHR_external_memory_win32 ===
template <>
- struct StructExtends<PhysicalDeviceFloatControlsProperties, PhysicalDeviceProperties2>
+ struct StructExtends<ImportMemoryWin32HandleInfoKHR, MemoryAllocateInfo>
{
enum
{
@@ -7650,23 +7867,29 @@ namespace VULKAN_HPP_NAMESPACE
};
};
template <>
- struct StructExtends<PhysicalDeviceFragmentDensityMap2FeaturesEXT, PhysicalDeviceFeatures2>
+ struct StructExtends<ExportMemoryWin32HandleInfoKHR, MemoryAllocateInfo>
{
enum
{
value = true
};
};
+#endif /*VK_USE_PLATFORM_WIN32_KHR*/
+
+ //=== VK_KHR_external_memory_fd ===
template <>
- struct StructExtends<PhysicalDeviceFragmentDensityMap2FeaturesEXT, DeviceCreateInfo>
+ struct StructExtends<ImportMemoryFdInfoKHR, MemoryAllocateInfo>
{
enum
{
value = true
};
};
+
+#if defined( VK_USE_PLATFORM_WIN32_KHR )
+ //=== VK_KHR_win32_keyed_mutex ===
template <>
- struct StructExtends<PhysicalDeviceFragmentDensityMap2PropertiesEXT, PhysicalDeviceProperties2>
+ struct StructExtends<Win32KeyedMutexAcquireReleaseInfoKHR, SubmitInfo>
{
enum
{
@@ -7674,15 +7897,19 @@ namespace VULKAN_HPP_NAMESPACE
};
};
template <>
- struct StructExtends<PhysicalDeviceFragmentDensityMapFeaturesEXT, PhysicalDeviceFeatures2>
+ struct StructExtends<Win32KeyedMutexAcquireReleaseInfoKHR, SubmitInfo2KHR>
{
enum
{
value = true
};
};
+#endif /*VK_USE_PLATFORM_WIN32_KHR*/
+
+#if defined( VK_USE_PLATFORM_WIN32_KHR )
+ //=== VK_KHR_external_semaphore_win32 ===
template <>
- struct StructExtends<PhysicalDeviceFragmentDensityMapFeaturesEXT, DeviceCreateInfo>
+ struct StructExtends<ExportSemaphoreWin32HandleInfoKHR, SemaphoreCreateInfo>
{
enum
{
@@ -7690,23 +7917,28 @@ namespace VULKAN_HPP_NAMESPACE
};
};
template <>
- struct StructExtends<PhysicalDeviceFragmentDensityMapPropertiesEXT, PhysicalDeviceProperties2>
+ struct StructExtends<D3D12FenceSubmitInfoKHR, SubmitInfo>
{
enum
{
value = true
};
};
+#endif /*VK_USE_PLATFORM_WIN32_KHR*/
+
+ //=== VK_KHR_push_descriptor ===
template <>
- struct StructExtends<PhysicalDeviceFragmentShaderBarycentricFeaturesNV, PhysicalDeviceFeatures2>
+ struct StructExtends<PhysicalDevicePushDescriptorPropertiesKHR, PhysicalDeviceProperties2>
{
enum
{
value = true
};
};
+
+ //=== VK_EXT_conditional_rendering ===
template <>
- struct StructExtends<PhysicalDeviceFragmentShaderBarycentricFeaturesNV, DeviceCreateInfo>
+ struct StructExtends<PhysicalDeviceConditionalRenderingFeaturesEXT, PhysicalDeviceFeatures2>
{
enum
{
@@ -7714,7 +7946,7 @@ namespace VULKAN_HPP_NAMESPACE
};
};
template <>
- struct StructExtends<PhysicalDeviceFragmentShaderInterlockFeaturesEXT, PhysicalDeviceFeatures2>
+ struct StructExtends<PhysicalDeviceConditionalRenderingFeaturesEXT, DeviceCreateInfo>
{
enum
{
@@ -7722,63 +7954,77 @@ namespace VULKAN_HPP_NAMESPACE
};
};
template <>
- struct StructExtends<PhysicalDeviceFragmentShaderInterlockFeaturesEXT, DeviceCreateInfo>
+ struct StructExtends<CommandBufferInheritanceConditionalRenderingInfoEXT, CommandBufferInheritanceInfo>
{
enum
{
value = true
};
};
+
+ //=== VK_KHR_incremental_present ===
template <>
- struct StructExtends<PhysicalDeviceFragmentShadingRateEnumsFeaturesNV, PhysicalDeviceFeatures2>
+ struct StructExtends<PresentRegionsKHR, PresentInfoKHR>
{
enum
{
value = true
};
};
+
+ //=== VK_NV_clip_space_w_scaling ===
template <>
- struct StructExtends<PhysicalDeviceFragmentShadingRateEnumsFeaturesNV, DeviceCreateInfo>
+ struct StructExtends<PipelineViewportWScalingStateCreateInfoNV, PipelineViewportStateCreateInfo>
{
enum
{
value = true
};
};
+
+ //=== VK_EXT_display_control ===
template <>
- struct StructExtends<PhysicalDeviceFragmentShadingRateEnumsPropertiesNV, PhysicalDeviceProperties2>
+ struct StructExtends<SwapchainCounterCreateInfoEXT, SwapchainCreateInfoKHR>
{
enum
{
value = true
};
};
+
+ //=== VK_GOOGLE_display_timing ===
template <>
- struct StructExtends<PhysicalDeviceFragmentShadingRateFeaturesKHR, PhysicalDeviceFeatures2>
+ struct StructExtends<PresentTimesInfoGOOGLE, PresentInfoKHR>
{
enum
{
value = true
};
};
+
+ //=== VK_NVX_multiview_per_view_attributes ===
template <>
- struct StructExtends<PhysicalDeviceFragmentShadingRateFeaturesKHR, DeviceCreateInfo>
+ struct StructExtends<PhysicalDeviceMultiviewPerViewAttributesPropertiesNVX, PhysicalDeviceProperties2>
{
enum
{
value = true
};
};
+
+ //=== VK_NV_viewport_swizzle ===
template <>
- struct StructExtends<PhysicalDeviceFragmentShadingRatePropertiesKHR, PhysicalDeviceProperties2>
+ struct StructExtends<PipelineViewportSwizzleStateCreateInfoNV, PipelineViewportStateCreateInfo>
{
enum
{
value = true
};
};
+
+ //=== VK_EXT_discard_rectangles ===
template <>
- struct StructExtends<PhysicalDeviceGlobalPriorityQueryFeaturesEXT, PhysicalDeviceFeatures2>
+ struct StructExtends<PhysicalDeviceDiscardRectanglePropertiesEXT, PhysicalDeviceProperties2>
{
enum
{
@@ -7786,15 +8032,17 @@ namespace VULKAN_HPP_NAMESPACE
};
};
template <>
- struct StructExtends<PhysicalDeviceHostQueryResetFeatures, PhysicalDeviceFeatures2>
+ struct StructExtends<PipelineDiscardRectangleStateCreateInfoEXT, GraphicsPipelineCreateInfo>
{
enum
{
value = true
};
};
+
+ //=== VK_EXT_conservative_rasterization ===
template <>
- struct StructExtends<PhysicalDeviceHostQueryResetFeatures, DeviceCreateInfo>
+ struct StructExtends<PhysicalDeviceConservativeRasterizationPropertiesEXT, PhysicalDeviceProperties2>
{
enum
{
@@ -7802,15 +8050,17 @@ namespace VULKAN_HPP_NAMESPACE
};
};
template <>
- struct StructExtends<PhysicalDeviceIDProperties, PhysicalDeviceProperties2>
+ struct StructExtends<PipelineRasterizationConservativeStateCreateInfoEXT, PipelineRasterizationStateCreateInfo>
{
enum
{
value = true
};
};
+
+ //=== VK_EXT_depth_clip_enable ===
template <>
- struct StructExtends<PhysicalDeviceImageDrmFormatModifierInfoEXT, PhysicalDeviceImageFormatInfo2>
+ struct StructExtends<PhysicalDeviceDepthClipEnableFeaturesEXT, PhysicalDeviceFeatures2>
{
enum
{
@@ -7818,7 +8068,7 @@ namespace VULKAN_HPP_NAMESPACE
};
};
template <>
- struct StructExtends<PhysicalDeviceImageRobustnessFeaturesEXT, PhysicalDeviceFeatures2>
+ struct StructExtends<PhysicalDeviceDepthClipEnableFeaturesEXT, DeviceCreateInfo>
{
enum
{
@@ -7826,31 +8076,39 @@ namespace VULKAN_HPP_NAMESPACE
};
};
template <>
- struct StructExtends<PhysicalDeviceImageRobustnessFeaturesEXT, DeviceCreateInfo>
+ struct StructExtends<PipelineRasterizationDepthClipStateCreateInfoEXT, PipelineRasterizationStateCreateInfo>
{
enum
{
value = true
};
};
+
+ //=== VK_KHR_shared_presentable_image ===
template <>
- struct StructExtends<PhysicalDeviceImageViewImageFormatInfoEXT, PhysicalDeviceImageFormatInfo2>
+ struct StructExtends<SharedPresentSurfaceCapabilitiesKHR, SurfaceCapabilities2KHR>
{
enum
{
value = true
};
};
+
+#if defined( VK_USE_PLATFORM_WIN32_KHR )
+ //=== VK_KHR_external_fence_win32 ===
template <>
- struct StructExtends<PhysicalDeviceImagelessFramebufferFeatures, PhysicalDeviceFeatures2>
+ struct StructExtends<ExportFenceWin32HandleInfoKHR, FenceCreateInfo>
{
enum
{
value = true
};
};
+#endif /*VK_USE_PLATFORM_WIN32_KHR*/
+
+ //=== VK_KHR_performance_query ===
template <>
- struct StructExtends<PhysicalDeviceImagelessFramebufferFeatures, DeviceCreateInfo>
+ struct StructExtends<PhysicalDevicePerformanceQueryFeaturesKHR, PhysicalDeviceFeatures2>
{
enum
{
@@ -7858,7 +8116,7 @@ namespace VULKAN_HPP_NAMESPACE
};
};
template <>
- struct StructExtends<PhysicalDeviceIndexTypeUint8FeaturesEXT, PhysicalDeviceFeatures2>
+ struct StructExtends<PhysicalDevicePerformanceQueryFeaturesKHR, DeviceCreateInfo>
{
enum
{
@@ -7866,7 +8124,7 @@ namespace VULKAN_HPP_NAMESPACE
};
};
template <>
- struct StructExtends<PhysicalDeviceIndexTypeUint8FeaturesEXT, DeviceCreateInfo>
+ struct StructExtends<PhysicalDevicePerformanceQueryPropertiesKHR, PhysicalDeviceProperties2>
{
enum
{
@@ -7874,7 +8132,7 @@ namespace VULKAN_HPP_NAMESPACE
};
};
template <>
- struct StructExtends<PhysicalDeviceInheritedViewportScissorFeaturesNV, PhysicalDeviceFeatures2>
+ struct StructExtends<QueryPoolPerformanceCreateInfoKHR, QueryPoolCreateInfo>
{
enum
{
@@ -7882,7 +8140,7 @@ namespace VULKAN_HPP_NAMESPACE
};
};
template <>
- struct StructExtends<PhysicalDeviceInheritedViewportScissorFeaturesNV, DeviceCreateInfo>
+ struct StructExtends<PerformanceQuerySubmitInfoKHR, SubmitInfo>
{
enum
{
@@ -7890,23 +8148,28 @@ namespace VULKAN_HPP_NAMESPACE
};
};
template <>
- struct StructExtends<PhysicalDeviceInlineUniformBlockFeaturesEXT, PhysicalDeviceFeatures2>
+ struct StructExtends<PerformanceQuerySubmitInfoKHR, SubmitInfo2KHR>
{
enum
{
value = true
};
};
+
+ //=== VK_EXT_debug_utils ===
template <>
- struct StructExtends<PhysicalDeviceInlineUniformBlockFeaturesEXT, DeviceCreateInfo>
+ struct StructExtends<DebugUtilsMessengerCreateInfoEXT, InstanceCreateInfo>
{
enum
{
value = true
};
};
+
+#if defined( VK_USE_PLATFORM_ANDROID_KHR )
+ //=== VK_ANDROID_external_memory_android_hardware_buffer ===
template <>
- struct StructExtends<PhysicalDeviceInlineUniformBlockPropertiesEXT, PhysicalDeviceProperties2>
+ struct StructExtends<AndroidHardwareBufferUsageANDROID, ImageFormatProperties2>
{
enum
{
@@ -7914,7 +8177,7 @@ namespace VULKAN_HPP_NAMESPACE
};
};
template <>
- struct StructExtends<PhysicalDeviceLineRasterizationFeaturesEXT, PhysicalDeviceFeatures2>
+ struct StructExtends<AndroidHardwareBufferFormatPropertiesANDROID, AndroidHardwareBufferPropertiesANDROID>
{
enum
{
@@ -7922,7 +8185,7 @@ namespace VULKAN_HPP_NAMESPACE
};
};
template <>
- struct StructExtends<PhysicalDeviceLineRasterizationFeaturesEXT, DeviceCreateInfo>
+ struct StructExtends<ImportAndroidHardwareBufferInfoANDROID, MemoryAllocateInfo>
{
enum
{
@@ -7930,7 +8193,7 @@ namespace VULKAN_HPP_NAMESPACE
};
};
template <>
- struct StructExtends<PhysicalDeviceLineRasterizationPropertiesEXT, PhysicalDeviceProperties2>
+ struct StructExtends<ExternalFormatANDROID, ImageCreateInfo>
{
enum
{
@@ -7938,15 +8201,18 @@ namespace VULKAN_HPP_NAMESPACE
};
};
template <>
- struct StructExtends<PhysicalDeviceMaintenance3Properties, PhysicalDeviceProperties2>
+ struct StructExtends<ExternalFormatANDROID, SamplerYcbcrConversionCreateInfo>
{
enum
{
value = true
};
};
+#endif /*VK_USE_PLATFORM_ANDROID_KHR*/
+
+ //=== VK_EXT_inline_uniform_block ===
template <>
- struct StructExtends<PhysicalDeviceMemoryBudgetPropertiesEXT, PhysicalDeviceMemoryProperties2>
+ struct StructExtends<PhysicalDeviceInlineUniformBlockFeaturesEXT, PhysicalDeviceFeatures2>
{
enum
{
@@ -7954,7 +8220,7 @@ namespace VULKAN_HPP_NAMESPACE
};
};
template <>
- struct StructExtends<PhysicalDeviceMemoryPriorityFeaturesEXT, PhysicalDeviceFeatures2>
+ struct StructExtends<PhysicalDeviceInlineUniformBlockFeaturesEXT, DeviceCreateInfo>
{
enum
{
@@ -7962,7 +8228,7 @@ namespace VULKAN_HPP_NAMESPACE
};
};
template <>
- struct StructExtends<PhysicalDeviceMemoryPriorityFeaturesEXT, DeviceCreateInfo>
+ struct StructExtends<PhysicalDeviceInlineUniformBlockPropertiesEXT, PhysicalDeviceProperties2>
{
enum
{
@@ -7970,7 +8236,7 @@ namespace VULKAN_HPP_NAMESPACE
};
};
template <>
- struct StructExtends<PhysicalDeviceMeshShaderFeaturesNV, PhysicalDeviceFeatures2>
+ struct StructExtends<WriteDescriptorSetInlineUniformBlockEXT, WriteDescriptorSet>
{
enum
{
@@ -7978,15 +8244,17 @@ namespace VULKAN_HPP_NAMESPACE
};
};
template <>
- struct StructExtends<PhysicalDeviceMeshShaderFeaturesNV, DeviceCreateInfo>
+ struct StructExtends<DescriptorPoolInlineUniformBlockCreateInfoEXT, DescriptorPoolCreateInfo>
{
enum
{
value = true
};
};
+
+ //=== VK_EXT_sample_locations ===
template <>
- struct StructExtends<PhysicalDeviceMeshShaderPropertiesNV, PhysicalDeviceProperties2>
+ struct StructExtends<SampleLocationsInfoEXT, ImageMemoryBarrier>
{
enum
{
@@ -7994,7 +8262,7 @@ namespace VULKAN_HPP_NAMESPACE
};
};
template <>
- struct StructExtends<PhysicalDeviceMultiDrawFeaturesEXT, PhysicalDeviceFeatures2>
+ struct StructExtends<SampleLocationsInfoEXT, ImageMemoryBarrier2KHR>
{
enum
{
@@ -8002,7 +8270,7 @@ namespace VULKAN_HPP_NAMESPACE
};
};
template <>
- struct StructExtends<PhysicalDeviceMultiDrawFeaturesEXT, DeviceCreateInfo>
+ struct StructExtends<RenderPassSampleLocationsBeginInfoEXT, RenderPassBeginInfo>
{
enum
{
@@ -8010,7 +8278,7 @@ namespace VULKAN_HPP_NAMESPACE
};
};
template <>
- struct StructExtends<PhysicalDeviceMultiDrawPropertiesEXT, PhysicalDeviceProperties2>
+ struct StructExtends<PipelineSampleLocationsStateCreateInfoEXT, PipelineMultisampleStateCreateInfo>
{
enum
{
@@ -8018,15 +8286,17 @@ namespace VULKAN_HPP_NAMESPACE
};
};
template <>
- struct StructExtends<PhysicalDeviceMultiviewFeatures, PhysicalDeviceFeatures2>
+ struct StructExtends<PhysicalDeviceSampleLocationsPropertiesEXT, PhysicalDeviceProperties2>
{
enum
{
value = true
};
};
+
+ //=== VK_EXT_blend_operation_advanced ===
template <>
- struct StructExtends<PhysicalDeviceMultiviewFeatures, DeviceCreateInfo>
+ struct StructExtends<PhysicalDeviceBlendOperationAdvancedFeaturesEXT, PhysicalDeviceFeatures2>
{
enum
{
@@ -8034,7 +8304,7 @@ namespace VULKAN_HPP_NAMESPACE
};
};
template <>
- struct StructExtends<PhysicalDeviceMultiviewPerViewAttributesPropertiesNVX, PhysicalDeviceProperties2>
+ struct StructExtends<PhysicalDeviceBlendOperationAdvancedFeaturesEXT, DeviceCreateInfo>
{
enum
{
@@ -8042,7 +8312,7 @@ namespace VULKAN_HPP_NAMESPACE
};
};
template <>
- struct StructExtends<PhysicalDeviceMultiviewProperties, PhysicalDeviceProperties2>
+ struct StructExtends<PhysicalDeviceBlendOperationAdvancedPropertiesEXT, PhysicalDeviceProperties2>
{
enum
{
@@ -8050,23 +8320,27 @@ namespace VULKAN_HPP_NAMESPACE
};
};
template <>
- struct StructExtends<PhysicalDeviceMutableDescriptorTypeFeaturesVALVE, PhysicalDeviceFeatures2>
+ struct StructExtends<PipelineColorBlendAdvancedStateCreateInfoEXT, PipelineColorBlendStateCreateInfo>
{
enum
{
value = true
};
};
+
+ //=== VK_NV_fragment_coverage_to_color ===
template <>
- struct StructExtends<PhysicalDeviceMutableDescriptorTypeFeaturesVALVE, DeviceCreateInfo>
+ struct StructExtends<PipelineCoverageToColorStateCreateInfoNV, PipelineMultisampleStateCreateInfo>
{
enum
{
value = true
};
};
+
+ //=== VK_KHR_acceleration_structure ===
template <>
- struct StructExtends<PhysicalDevicePCIBusInfoPropertiesEXT, PhysicalDeviceProperties2>
+ struct StructExtends<WriteDescriptorSetAccelerationStructureKHR, WriteDescriptorSet>
{
enum
{
@@ -8074,7 +8348,7 @@ namespace VULKAN_HPP_NAMESPACE
};
};
template <>
- struct StructExtends<PhysicalDevicePerformanceQueryFeaturesKHR, PhysicalDeviceFeatures2>
+ struct StructExtends<PhysicalDeviceAccelerationStructureFeaturesKHR, PhysicalDeviceFeatures2>
{
enum
{
@@ -8082,7 +8356,7 @@ namespace VULKAN_HPP_NAMESPACE
};
};
template <>
- struct StructExtends<PhysicalDevicePerformanceQueryFeaturesKHR, DeviceCreateInfo>
+ struct StructExtends<PhysicalDeviceAccelerationStructureFeaturesKHR, DeviceCreateInfo>
{
enum
{
@@ -8090,23 +8364,27 @@ namespace VULKAN_HPP_NAMESPACE
};
};
template <>
- struct StructExtends<PhysicalDevicePerformanceQueryPropertiesKHR, PhysicalDeviceProperties2>
+ struct StructExtends<PhysicalDeviceAccelerationStructurePropertiesKHR, PhysicalDeviceProperties2>
{
enum
{
value = true
};
};
+
+ //=== VK_NV_framebuffer_mixed_samples ===
template <>
- struct StructExtends<PhysicalDevicePipelineCreationCacheControlFeaturesEXT, PhysicalDeviceFeatures2>
+ struct StructExtends<PipelineCoverageModulationStateCreateInfoNV, PipelineMultisampleStateCreateInfo>
{
enum
{
value = true
};
};
+
+ //=== VK_NV_shader_sm_builtins ===
template <>
- struct StructExtends<PhysicalDevicePipelineCreationCacheControlFeaturesEXT, DeviceCreateInfo>
+ struct StructExtends<PhysicalDeviceShaderSMBuiltinsPropertiesNV, PhysicalDeviceProperties2>
{
enum
{
@@ -8114,7 +8392,7 @@ namespace VULKAN_HPP_NAMESPACE
};
};
template <>
- struct StructExtends<PhysicalDevicePipelineExecutablePropertiesFeaturesKHR, PhysicalDeviceFeatures2>
+ struct StructExtends<PhysicalDeviceShaderSMBuiltinsFeaturesNV, PhysicalDeviceFeatures2>
{
enum
{
@@ -8122,24 +8400,25 @@ namespace VULKAN_HPP_NAMESPACE
};
};
template <>
- struct StructExtends<PhysicalDevicePipelineExecutablePropertiesFeaturesKHR, DeviceCreateInfo>
+ struct StructExtends<PhysicalDeviceShaderSMBuiltinsFeaturesNV, DeviceCreateInfo>
{
enum
{
value = true
};
};
+
+ //=== VK_EXT_image_drm_format_modifier ===
template <>
- struct StructExtends<PhysicalDevicePointClippingProperties, PhysicalDeviceProperties2>
+ struct StructExtends<DrmFormatModifierPropertiesListEXT, FormatProperties2>
{
enum
{
value = true
};
};
-#if defined( VK_ENABLE_BETA_EXTENSIONS )
template <>
- struct StructExtends<PhysicalDevicePortabilitySubsetFeaturesKHR, PhysicalDeviceFeatures2>
+ struct StructExtends<PhysicalDeviceImageDrmFormatModifierInfoEXT, PhysicalDeviceImageFormatInfo2>
{
enum
{
@@ -8147,26 +8426,44 @@ namespace VULKAN_HPP_NAMESPACE
};
};
template <>
- struct StructExtends<PhysicalDevicePortabilitySubsetFeaturesKHR, DeviceCreateInfo>
+ struct StructExtends<ImageDrmFormatModifierListCreateInfoEXT, ImageCreateInfo>
{
enum
{
value = true
};
};
-#endif /*VK_ENABLE_BETA_EXTENSIONS*/
+ template <>
+ struct StructExtends<ImageDrmFormatModifierExplicitCreateInfoEXT, ImageCreateInfo>
+ {
+ enum
+ {
+ value = true
+ };
+ };
+
+ //=== VK_EXT_validation_cache ===
+ template <>
+ struct StructExtends<ShaderModuleValidationCacheCreateInfoEXT, ShaderModuleCreateInfo>
+ {
+ enum
+ {
+ value = true
+ };
+ };
+
#if defined( VK_ENABLE_BETA_EXTENSIONS )
+ //=== VK_KHR_portability_subset ===
template <>
- struct StructExtends<PhysicalDevicePortabilitySubsetPropertiesKHR, PhysicalDeviceProperties2>
+ struct StructExtends<PhysicalDevicePortabilitySubsetFeaturesKHR, PhysicalDeviceFeatures2>
{
enum
{
value = true
};
};
-#endif /*VK_ENABLE_BETA_EXTENSIONS*/
template <>
- struct StructExtends<PhysicalDevicePrivateDataFeaturesEXT, PhysicalDeviceFeatures2>
+ struct StructExtends<PhysicalDevicePortabilitySubsetFeaturesKHR, DeviceCreateInfo>
{
enum
{
@@ -8174,15 +8471,18 @@ namespace VULKAN_HPP_NAMESPACE
};
};
template <>
- struct StructExtends<PhysicalDevicePrivateDataFeaturesEXT, DeviceCreateInfo>
+ struct StructExtends<PhysicalDevicePortabilitySubsetPropertiesKHR, PhysicalDeviceProperties2>
{
enum
{
value = true
};
};
+#endif /*VK_ENABLE_BETA_EXTENSIONS*/
+
+ //=== VK_NV_shading_rate_image ===
template <>
- struct StructExtends<PhysicalDeviceProtectedMemoryFeatures, PhysicalDeviceFeatures2>
+ struct StructExtends<PipelineViewportShadingRateImageStateCreateInfoNV, PipelineViewportStateCreateInfo>
{
enum
{
@@ -8190,7 +8490,7 @@ namespace VULKAN_HPP_NAMESPACE
};
};
template <>
- struct StructExtends<PhysicalDeviceProtectedMemoryFeatures, DeviceCreateInfo>
+ struct StructExtends<PhysicalDeviceShadingRateImageFeaturesNV, PhysicalDeviceFeatures2>
{
enum
{
@@ -8198,7 +8498,7 @@ namespace VULKAN_HPP_NAMESPACE
};
};
template <>
- struct StructExtends<PhysicalDeviceProtectedMemoryProperties, PhysicalDeviceProperties2>
+ struct StructExtends<PhysicalDeviceShadingRateImageFeaturesNV, DeviceCreateInfo>
{
enum
{
@@ -8206,7 +8506,7 @@ namespace VULKAN_HPP_NAMESPACE
};
};
template <>
- struct StructExtends<PhysicalDeviceProvokingVertexFeaturesEXT, PhysicalDeviceFeatures2>
+ struct StructExtends<PhysicalDeviceShadingRateImagePropertiesNV, PhysicalDeviceProperties2>
{
enum
{
@@ -8214,15 +8514,17 @@ namespace VULKAN_HPP_NAMESPACE
};
};
template <>
- struct StructExtends<PhysicalDeviceProvokingVertexFeaturesEXT, DeviceCreateInfo>
+ struct StructExtends<PipelineViewportCoarseSampleOrderStateCreateInfoNV, PipelineViewportStateCreateInfo>
{
enum
{
value = true
};
};
+
+ //=== VK_NV_ray_tracing ===
template <>
- struct StructExtends<PhysicalDeviceProvokingVertexPropertiesEXT, PhysicalDeviceProperties2>
+ struct StructExtends<WriteDescriptorSetAccelerationStructureNV, WriteDescriptorSet>
{
enum
{
@@ -8230,15 +8532,17 @@ namespace VULKAN_HPP_NAMESPACE
};
};
template <>
- struct StructExtends<PhysicalDevicePushDescriptorPropertiesKHR, PhysicalDeviceProperties2>
+ struct StructExtends<PhysicalDeviceRayTracingPropertiesNV, PhysicalDeviceProperties2>
{
enum
{
value = true
};
};
+
+ //=== VK_NV_representative_fragment_test ===
template <>
- struct StructExtends<PhysicalDeviceRayQueryFeaturesKHR, PhysicalDeviceFeatures2>
+ struct StructExtends<PhysicalDeviceRepresentativeFragmentTestFeaturesNV, PhysicalDeviceFeatures2>
{
enum
{
@@ -8246,7 +8550,7 @@ namespace VULKAN_HPP_NAMESPACE
};
};
template <>
- struct StructExtends<PhysicalDeviceRayQueryFeaturesKHR, DeviceCreateInfo>
+ struct StructExtends<PhysicalDeviceRepresentativeFragmentTestFeaturesNV, DeviceCreateInfo>
{
enum
{
@@ -8254,15 +8558,17 @@ namespace VULKAN_HPP_NAMESPACE
};
};
template <>
- struct StructExtends<PhysicalDeviceRayTracingMotionBlurFeaturesNV, PhysicalDeviceProperties2>
+ struct StructExtends<PipelineRepresentativeFragmentTestStateCreateInfoNV, GraphicsPipelineCreateInfo>
{
enum
{
value = true
};
};
+
+ //=== VK_EXT_filter_cubic ===
template <>
- struct StructExtends<PhysicalDeviceRayTracingMotionBlurFeaturesNV, DeviceCreateInfo>
+ struct StructExtends<PhysicalDeviceImageViewImageFormatInfoEXT, PhysicalDeviceImageFormatInfo2>
{
enum
{
@@ -8270,23 +8576,27 @@ namespace VULKAN_HPP_NAMESPACE
};
};
template <>
- struct StructExtends<PhysicalDeviceRayTracingPipelineFeaturesKHR, PhysicalDeviceFeatures2>
+ struct StructExtends<FilterCubicImageViewImageFormatPropertiesEXT, ImageFormatProperties2>
{
enum
{
value = true
};
};
+
+ //=== VK_EXT_global_priority ===
template <>
- struct StructExtends<PhysicalDeviceRayTracingPipelineFeaturesKHR, DeviceCreateInfo>
+ struct StructExtends<DeviceQueueGlobalPriorityCreateInfoEXT, DeviceQueueCreateInfo>
{
enum
{
value = true
};
};
+
+ //=== VK_EXT_external_memory_host ===
template <>
- struct StructExtends<PhysicalDeviceRayTracingPipelinePropertiesKHR, PhysicalDeviceProperties2>
+ struct StructExtends<ImportMemoryHostPointerInfoEXT, MemoryAllocateInfo>
{
enum
{
@@ -8294,15 +8604,17 @@ namespace VULKAN_HPP_NAMESPACE
};
};
template <>
- struct StructExtends<PhysicalDeviceRayTracingPropertiesNV, PhysicalDeviceProperties2>
+ struct StructExtends<PhysicalDeviceExternalMemoryHostPropertiesEXT, PhysicalDeviceProperties2>
{
enum
{
value = true
};
};
+
+ //=== VK_KHR_shader_clock ===
template <>
- struct StructExtends<PhysicalDeviceRepresentativeFragmentTestFeaturesNV, PhysicalDeviceFeatures2>
+ struct StructExtends<PhysicalDeviceShaderClockFeaturesKHR, PhysicalDeviceFeatures2>
{
enum
{
@@ -8310,15 +8622,17 @@ namespace VULKAN_HPP_NAMESPACE
};
};
template <>
- struct StructExtends<PhysicalDeviceRepresentativeFragmentTestFeaturesNV, DeviceCreateInfo>
+ struct StructExtends<PhysicalDeviceShaderClockFeaturesKHR, DeviceCreateInfo>
{
enum
{
value = true
};
};
+
+ //=== VK_AMD_pipeline_compiler_control ===
template <>
- struct StructExtends<PhysicalDeviceRobustness2FeaturesEXT, PhysicalDeviceFeatures2>
+ struct StructExtends<PipelineCompilerControlCreateInfoAMD, GraphicsPipelineCreateInfo>
{
enum
{
@@ -8326,23 +8640,28 @@ namespace VULKAN_HPP_NAMESPACE
};
};
template <>
- struct StructExtends<PhysicalDeviceRobustness2FeaturesEXT, DeviceCreateInfo>
+ struct StructExtends<PipelineCompilerControlCreateInfoAMD, ComputePipelineCreateInfo>
{
enum
{
value = true
};
};
+
+ //=== VK_AMD_shader_core_properties ===
template <>
- struct StructExtends<PhysicalDeviceRobustness2PropertiesEXT, PhysicalDeviceProperties2>
+ struct StructExtends<PhysicalDeviceShaderCorePropertiesAMD, PhysicalDeviceProperties2>
{
enum
{
value = true
};
};
+
+#if defined( VK_ENABLE_BETA_EXTENSIONS )
+ //=== VK_EXT_video_decode_h265 ===
template <>
- struct StructExtends<PhysicalDeviceSampleLocationsPropertiesEXT, PhysicalDeviceProperties2>
+ struct StructExtends<VideoDecodeH265ProfileEXT, VideoProfileKHR>
{
enum
{
@@ -8350,7 +8669,7 @@ namespace VULKAN_HPP_NAMESPACE
};
};
template <>
- struct StructExtends<PhysicalDeviceSamplerFilterMinmaxProperties, PhysicalDeviceProperties2>
+ struct StructExtends<VideoDecodeH265CapabilitiesEXT, VideoCapabilitiesKHR>
{
enum
{
@@ -8358,7 +8677,7 @@ namespace VULKAN_HPP_NAMESPACE
};
};
template <>
- struct StructExtends<PhysicalDeviceSamplerYcbcrConversionFeatures, PhysicalDeviceFeatures2>
+ struct StructExtends<VideoDecodeH265SessionCreateInfoEXT, VideoSessionCreateInfoKHR>
{
enum
{
@@ -8366,7 +8685,7 @@ namespace VULKAN_HPP_NAMESPACE
};
};
template <>
- struct StructExtends<PhysicalDeviceSamplerYcbcrConversionFeatures, DeviceCreateInfo>
+ struct StructExtends<VideoDecodeH265SessionParametersCreateInfoEXT, VideoSessionParametersCreateInfoKHR>
{
enum
{
@@ -8374,7 +8693,7 @@ namespace VULKAN_HPP_NAMESPACE
};
};
template <>
- struct StructExtends<PhysicalDeviceScalarBlockLayoutFeatures, PhysicalDeviceFeatures2>
+ struct StructExtends<VideoDecodeH265SessionParametersAddInfoEXT, VideoSessionParametersUpdateInfoKHR>
{
enum
{
@@ -8382,7 +8701,7 @@ namespace VULKAN_HPP_NAMESPACE
};
};
template <>
- struct StructExtends<PhysicalDeviceScalarBlockLayoutFeatures, DeviceCreateInfo>
+ struct StructExtends<VideoDecodeH265PictureInfoEXT, VideoDecodeInfoKHR>
{
enum
{
@@ -8390,23 +8709,28 @@ namespace VULKAN_HPP_NAMESPACE
};
};
template <>
- struct StructExtends<PhysicalDeviceSeparateDepthStencilLayoutsFeatures, PhysicalDeviceFeatures2>
+ struct StructExtends<VideoDecodeH265DpbSlotInfoEXT, VideoReferenceSlotKHR>
{
enum
{
value = true
};
};
+#endif /*VK_ENABLE_BETA_EXTENSIONS*/
+
+ //=== VK_AMD_memory_overallocation_behavior ===
template <>
- struct StructExtends<PhysicalDeviceSeparateDepthStencilLayoutsFeatures, DeviceCreateInfo>
+ struct StructExtends<DeviceMemoryOverallocationCreateInfoAMD, DeviceCreateInfo>
{
enum
{
value = true
};
};
+
+ //=== VK_EXT_vertex_attribute_divisor ===
template <>
- struct StructExtends<PhysicalDeviceShaderAtomicFloatFeaturesEXT, PhysicalDeviceFeatures2>
+ struct StructExtends<PhysicalDeviceVertexAttributeDivisorPropertiesEXT, PhysicalDeviceProperties2>
{
enum
{
@@ -8414,7 +8738,7 @@ namespace VULKAN_HPP_NAMESPACE
};
};
template <>
- struct StructExtends<PhysicalDeviceShaderAtomicFloatFeaturesEXT, DeviceCreateInfo>
+ struct StructExtends<PipelineVertexInputDivisorStateCreateInfoEXT, PipelineVertexInputStateCreateInfo>
{
enum
{
@@ -8422,7 +8746,7 @@ namespace VULKAN_HPP_NAMESPACE
};
};
template <>
- struct StructExtends<PhysicalDeviceShaderAtomicInt64Features, PhysicalDeviceFeatures2>
+ struct StructExtends<PhysicalDeviceVertexAttributeDivisorFeaturesEXT, PhysicalDeviceFeatures2>
{
enum
{
@@ -8430,23 +8754,29 @@ namespace VULKAN_HPP_NAMESPACE
};
};
template <>
- struct StructExtends<PhysicalDeviceShaderAtomicInt64Features, DeviceCreateInfo>
+ struct StructExtends<PhysicalDeviceVertexAttributeDivisorFeaturesEXT, DeviceCreateInfo>
{
enum
{
value = true
};
};
+
+#if defined( VK_USE_PLATFORM_GGP )
+ //=== VK_GGP_frame_token ===
template <>
- struct StructExtends<PhysicalDeviceShaderClockFeaturesKHR, PhysicalDeviceFeatures2>
+ struct StructExtends<PresentFrameTokenGGP, PresentInfoKHR>
{
enum
{
value = true
};
};
+#endif /*VK_USE_PLATFORM_GGP*/
+
+ //=== VK_EXT_pipeline_creation_feedback ===
template <>
- struct StructExtends<PhysicalDeviceShaderClockFeaturesKHR, DeviceCreateInfo>
+ struct StructExtends<PipelineCreationFeedbackCreateInfoEXT, GraphicsPipelineCreateInfo>
{
enum
{
@@ -8454,7 +8784,7 @@ namespace VULKAN_HPP_NAMESPACE
};
};
template <>
- struct StructExtends<PhysicalDeviceShaderCoreProperties2AMD, PhysicalDeviceProperties2>
+ struct StructExtends<PipelineCreationFeedbackCreateInfoEXT, ComputePipelineCreateInfo>
{
enum
{
@@ -8462,7 +8792,7 @@ namespace VULKAN_HPP_NAMESPACE
};
};
template <>
- struct StructExtends<PhysicalDeviceShaderCorePropertiesAMD, PhysicalDeviceProperties2>
+ struct StructExtends<PipelineCreationFeedbackCreateInfoEXT, RayTracingPipelineCreateInfoNV>
{
enum
{
@@ -8470,15 +8800,17 @@ namespace VULKAN_HPP_NAMESPACE
};
};
template <>
- struct StructExtends<PhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT, PhysicalDeviceFeatures2>
+ struct StructExtends<PipelineCreationFeedbackCreateInfoEXT, RayTracingPipelineCreateInfoKHR>
{
enum
{
value = true
};
};
+
+ //=== VK_NV_compute_shader_derivatives ===
template <>
- struct StructExtends<PhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT, DeviceCreateInfo>
+ struct StructExtends<PhysicalDeviceComputeShaderDerivativesFeaturesNV, PhysicalDeviceFeatures2>
{
enum
{
@@ -8486,15 +8818,17 @@ namespace VULKAN_HPP_NAMESPACE
};
};
template <>
- struct StructExtends<PhysicalDeviceShaderDrawParametersFeatures, PhysicalDeviceFeatures2>
+ struct StructExtends<PhysicalDeviceComputeShaderDerivativesFeaturesNV, DeviceCreateInfo>
{
enum
{
value = true
};
};
+
+ //=== VK_NV_mesh_shader ===
template <>
- struct StructExtends<PhysicalDeviceShaderDrawParametersFeatures, DeviceCreateInfo>
+ struct StructExtends<PhysicalDeviceMeshShaderFeaturesNV, PhysicalDeviceFeatures2>
{
enum
{
@@ -8502,7 +8836,7 @@ namespace VULKAN_HPP_NAMESPACE
};
};
template <>
- struct StructExtends<PhysicalDeviceShaderFloat16Int8Features, PhysicalDeviceFeatures2>
+ struct StructExtends<PhysicalDeviceMeshShaderFeaturesNV, DeviceCreateInfo>
{
enum
{
@@ -8510,15 +8844,17 @@ namespace VULKAN_HPP_NAMESPACE
};
};
template <>
- struct StructExtends<PhysicalDeviceShaderFloat16Int8Features, DeviceCreateInfo>
+ struct StructExtends<PhysicalDeviceMeshShaderPropertiesNV, PhysicalDeviceProperties2>
{
enum
{
value = true
};
};
+
+ //=== VK_NV_fragment_shader_barycentric ===
template <>
- struct StructExtends<PhysicalDeviceShaderImageAtomicInt64FeaturesEXT, PhysicalDeviceFeatures2>
+ struct StructExtends<PhysicalDeviceFragmentShaderBarycentricFeaturesNV, PhysicalDeviceFeatures2>
{
enum
{
@@ -8526,13 +8862,15 @@ namespace VULKAN_HPP_NAMESPACE
};
};
template <>
- struct StructExtends<PhysicalDeviceShaderImageAtomicInt64FeaturesEXT, DeviceCreateInfo>
+ struct StructExtends<PhysicalDeviceFragmentShaderBarycentricFeaturesNV, DeviceCreateInfo>
{
enum
{
value = true
};
};
+
+ //=== VK_NV_shader_image_footprint ===
template <>
struct StructExtends<PhysicalDeviceShaderImageFootprintFeaturesNV, PhysicalDeviceFeatures2>
{
@@ -8549,8 +8887,10 @@ namespace VULKAN_HPP_NAMESPACE
value = true
};
};
+
+ //=== VK_NV_scissor_exclusive ===
template <>
- struct StructExtends<PhysicalDeviceShaderIntegerFunctions2FeaturesINTEL, PhysicalDeviceFeatures2>
+ struct StructExtends<PipelineViewportExclusiveScissorStateCreateInfoNV, PipelineViewportStateCreateInfo>
{
enum
{
@@ -8558,7 +8898,7 @@ namespace VULKAN_HPP_NAMESPACE
};
};
template <>
- struct StructExtends<PhysicalDeviceShaderIntegerFunctions2FeaturesINTEL, DeviceCreateInfo>
+ struct StructExtends<PhysicalDeviceExclusiveScissorFeaturesNV, PhysicalDeviceFeatures2>
{
enum
{
@@ -8566,23 +8906,27 @@ namespace VULKAN_HPP_NAMESPACE
};
};
template <>
- struct StructExtends<PhysicalDeviceShaderSMBuiltinsFeaturesNV, PhysicalDeviceFeatures2>
+ struct StructExtends<PhysicalDeviceExclusiveScissorFeaturesNV, DeviceCreateInfo>
{
enum
{
value = true
};
};
+
+ //=== VK_NV_device_diagnostic_checkpoints ===
template <>
- struct StructExtends<PhysicalDeviceShaderSMBuiltinsFeaturesNV, DeviceCreateInfo>
+ struct StructExtends<QueueFamilyCheckpointPropertiesNV, QueueFamilyProperties2>
{
enum
{
value = true
};
};
+
+ //=== VK_INTEL_shader_integer_functions2 ===
template <>
- struct StructExtends<PhysicalDeviceShaderSMBuiltinsPropertiesNV, PhysicalDeviceProperties2>
+ struct StructExtends<PhysicalDeviceShaderIntegerFunctions2FeaturesINTEL, PhysicalDeviceFeatures2>
{
enum
{
@@ -8590,31 +8934,37 @@ namespace VULKAN_HPP_NAMESPACE
};
};
template <>
- struct StructExtends<PhysicalDeviceShaderSubgroupExtendedTypesFeatures, PhysicalDeviceFeatures2>
+ struct StructExtends<PhysicalDeviceShaderIntegerFunctions2FeaturesINTEL, DeviceCreateInfo>
{
enum
{
value = true
};
};
+
+ //=== VK_INTEL_performance_query ===
template <>
- struct StructExtends<PhysicalDeviceShaderSubgroupExtendedTypesFeatures, DeviceCreateInfo>
+ struct StructExtends<QueryPoolPerformanceQueryCreateInfoINTEL, QueryPoolCreateInfo>
{
enum
{
value = true
};
};
+
+ //=== VK_EXT_pci_bus_info ===
template <>
- struct StructExtends<PhysicalDeviceShaderSubgroupUniformControlFlowFeaturesKHR, PhysicalDeviceFeatures2>
+ struct StructExtends<PhysicalDevicePCIBusInfoPropertiesEXT, PhysicalDeviceProperties2>
{
enum
{
value = true
};
};
+
+ //=== VK_AMD_display_native_hdr ===
template <>
- struct StructExtends<PhysicalDeviceShaderSubgroupUniformControlFlowFeaturesKHR, DeviceCreateInfo>
+ struct StructExtends<DisplayNativeHdrSurfaceCapabilitiesAMD, SurfaceCapabilities2KHR>
{
enum
{
@@ -8622,6 +8972,16 @@ namespace VULKAN_HPP_NAMESPACE
};
};
template <>
+ struct StructExtends<SwapchainDisplayNativeHdrCreateInfoAMD, SwapchainCreateInfoKHR>
+ {
+ enum
+ {
+ value = true
+ };
+ };
+
+ //=== VK_KHR_shader_terminate_invocation ===
+ template <>
struct StructExtends<PhysicalDeviceShaderTerminateInvocationFeaturesKHR, PhysicalDeviceFeatures2>
{
enum
@@ -8637,8 +8997,10 @@ namespace VULKAN_HPP_NAMESPACE
value = true
};
};
+
+ //=== VK_EXT_fragment_density_map ===
template <>
- struct StructExtends<PhysicalDeviceShadingRateImageFeaturesNV, PhysicalDeviceFeatures2>
+ struct StructExtends<PhysicalDeviceFragmentDensityMapFeaturesEXT, PhysicalDeviceFeatures2>
{
enum
{
@@ -8646,7 +9008,7 @@ namespace VULKAN_HPP_NAMESPACE
};
};
template <>
- struct StructExtends<PhysicalDeviceShadingRateImageFeaturesNV, DeviceCreateInfo>
+ struct StructExtends<PhysicalDeviceFragmentDensityMapFeaturesEXT, DeviceCreateInfo>
{
enum
{
@@ -8654,7 +9016,7 @@ namespace VULKAN_HPP_NAMESPACE
};
};
template <>
- struct StructExtends<PhysicalDeviceShadingRateImagePropertiesNV, PhysicalDeviceProperties2>
+ struct StructExtends<PhysicalDeviceFragmentDensityMapPropertiesEXT, PhysicalDeviceProperties2>
{
enum
{
@@ -8662,13 +9024,23 @@ namespace VULKAN_HPP_NAMESPACE
};
};
template <>
- struct StructExtends<PhysicalDeviceSubgroupProperties, PhysicalDeviceProperties2>
+ struct StructExtends<RenderPassFragmentDensityMapCreateInfoEXT, RenderPassCreateInfo>
+ {
+ enum
+ {
+ value = true
+ };
+ };
+ template <>
+ struct StructExtends<RenderPassFragmentDensityMapCreateInfoEXT, RenderPassCreateInfo2>
{
enum
{
value = true
};
};
+
+ //=== VK_EXT_subgroup_size_control ===
template <>
struct StructExtends<PhysicalDeviceSubgroupSizeControlFeaturesEXT, PhysicalDeviceFeatures2>
{
@@ -8694,15 +9066,17 @@ namespace VULKAN_HPP_NAMESPACE
};
};
template <>
- struct StructExtends<PhysicalDeviceSubpassShadingFeaturesHUAWEI, PhysicalDeviceFeatures2>
+ struct StructExtends<PipelineShaderStageRequiredSubgroupSizeCreateInfoEXT, PipelineShaderStageCreateInfo>
{
enum
{
value = true
};
};
+
+ //=== VK_KHR_fragment_shading_rate ===
template <>
- struct StructExtends<PhysicalDeviceSubpassShadingFeaturesHUAWEI, DeviceCreateInfo>
+ struct StructExtends<FragmentShadingRateAttachmentInfoKHR, SubpassDescription2>
{
enum
{
@@ -8710,7 +9084,7 @@ namespace VULKAN_HPP_NAMESPACE
};
};
template <>
- struct StructExtends<PhysicalDeviceSubpassShadingPropertiesHUAWEI, PhysicalDeviceProperties2>
+ struct StructExtends<PipelineFragmentShadingRateStateCreateInfoKHR, GraphicsPipelineCreateInfo>
{
enum
{
@@ -8718,7 +9092,7 @@ namespace VULKAN_HPP_NAMESPACE
};
};
template <>
- struct StructExtends<PhysicalDeviceSynchronization2FeaturesKHR, PhysicalDeviceFeatures2>
+ struct StructExtends<PhysicalDeviceFragmentShadingRateFeaturesKHR, PhysicalDeviceFeatures2>
{
enum
{
@@ -8726,7 +9100,7 @@ namespace VULKAN_HPP_NAMESPACE
};
};
template <>
- struct StructExtends<PhysicalDeviceSynchronization2FeaturesKHR, DeviceCreateInfo>
+ struct StructExtends<PhysicalDeviceFragmentShadingRateFeaturesKHR, DeviceCreateInfo>
{
enum
{
@@ -8734,23 +9108,27 @@ namespace VULKAN_HPP_NAMESPACE
};
};
template <>
- struct StructExtends<PhysicalDeviceTexelBufferAlignmentFeaturesEXT, PhysicalDeviceFeatures2>
+ struct StructExtends<PhysicalDeviceFragmentShadingRatePropertiesKHR, PhysicalDeviceProperties2>
{
enum
{
value = true
};
};
+
+ //=== VK_AMD_shader_core_properties2 ===
template <>
- struct StructExtends<PhysicalDeviceTexelBufferAlignmentFeaturesEXT, DeviceCreateInfo>
+ struct StructExtends<PhysicalDeviceShaderCoreProperties2AMD, PhysicalDeviceProperties2>
{
enum
{
value = true
};
};
+
+ //=== VK_AMD_device_coherent_memory ===
template <>
- struct StructExtends<PhysicalDeviceTexelBufferAlignmentPropertiesEXT, PhysicalDeviceProperties2>
+ struct StructExtends<PhysicalDeviceCoherentMemoryFeaturesAMD, PhysicalDeviceFeatures2>
{
enum
{
@@ -8758,15 +9136,17 @@ namespace VULKAN_HPP_NAMESPACE
};
};
template <>
- struct StructExtends<PhysicalDeviceTextureCompressionASTCHDRFeaturesEXT, PhysicalDeviceFeatures2>
+ struct StructExtends<PhysicalDeviceCoherentMemoryFeaturesAMD, DeviceCreateInfo>
{
enum
{
value = true
};
};
+
+ //=== VK_EXT_shader_image_atomic_int64 ===
template <>
- struct StructExtends<PhysicalDeviceTextureCompressionASTCHDRFeaturesEXT, DeviceCreateInfo>
+ struct StructExtends<PhysicalDeviceShaderImageAtomicInt64FeaturesEXT, PhysicalDeviceFeatures2>
{
enum
{
@@ -8774,23 +9154,27 @@ namespace VULKAN_HPP_NAMESPACE
};
};
template <>
- struct StructExtends<PhysicalDeviceTimelineSemaphoreFeatures, PhysicalDeviceFeatures2>
+ struct StructExtends<PhysicalDeviceShaderImageAtomicInt64FeaturesEXT, DeviceCreateInfo>
{
enum
{
value = true
};
};
+
+ //=== VK_EXT_memory_budget ===
template <>
- struct StructExtends<PhysicalDeviceTimelineSemaphoreFeatures, DeviceCreateInfo>
+ struct StructExtends<PhysicalDeviceMemoryBudgetPropertiesEXT, PhysicalDeviceMemoryProperties2>
{
enum
{
value = true
};
};
+
+ //=== VK_EXT_memory_priority ===
template <>
- struct StructExtends<PhysicalDeviceTimelineSemaphoreProperties, PhysicalDeviceProperties2>
+ struct StructExtends<PhysicalDeviceMemoryPriorityFeaturesEXT, PhysicalDeviceFeatures2>
{
enum
{
@@ -8798,7 +9182,7 @@ namespace VULKAN_HPP_NAMESPACE
};
};
template <>
- struct StructExtends<PhysicalDeviceTransformFeedbackFeaturesEXT, PhysicalDeviceFeatures2>
+ struct StructExtends<PhysicalDeviceMemoryPriorityFeaturesEXT, DeviceCreateInfo>
{
enum
{
@@ -8806,23 +9190,27 @@ namespace VULKAN_HPP_NAMESPACE
};
};
template <>
- struct StructExtends<PhysicalDeviceTransformFeedbackFeaturesEXT, DeviceCreateInfo>
+ struct StructExtends<MemoryPriorityAllocateInfoEXT, MemoryAllocateInfo>
{
enum
{
value = true
};
};
+
+ //=== VK_KHR_surface_protected_capabilities ===
template <>
- struct StructExtends<PhysicalDeviceTransformFeedbackPropertiesEXT, PhysicalDeviceProperties2>
+ struct StructExtends<SurfaceProtectedCapabilitiesKHR, SurfaceCapabilities2KHR>
{
enum
{
value = true
};
};
+
+ //=== VK_NV_dedicated_allocation_image_aliasing ===
template <>
- struct StructExtends<PhysicalDeviceUniformBufferStandardLayoutFeatures, PhysicalDeviceFeatures2>
+ struct StructExtends<PhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV, PhysicalDeviceFeatures2>
{
enum
{
@@ -8830,15 +9218,17 @@ namespace VULKAN_HPP_NAMESPACE
};
};
template <>
- struct StructExtends<PhysicalDeviceUniformBufferStandardLayoutFeatures, DeviceCreateInfo>
+ struct StructExtends<PhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV, DeviceCreateInfo>
{
enum
{
value = true
};
};
+
+ //=== VK_EXT_buffer_device_address ===
template <>
- struct StructExtends<PhysicalDeviceVariablePointersFeatures, PhysicalDeviceFeatures2>
+ struct StructExtends<PhysicalDeviceBufferDeviceAddressFeaturesEXT, PhysicalDeviceFeatures2>
{
enum
{
@@ -8846,7 +9236,7 @@ namespace VULKAN_HPP_NAMESPACE
};
};
template <>
- struct StructExtends<PhysicalDeviceVariablePointersFeatures, DeviceCreateInfo>
+ struct StructExtends<PhysicalDeviceBufferDeviceAddressFeaturesEXT, DeviceCreateInfo>
{
enum
{
@@ -8854,23 +9244,27 @@ namespace VULKAN_HPP_NAMESPACE
};
};
template <>
- struct StructExtends<PhysicalDeviceVertexAttributeDivisorFeaturesEXT, PhysicalDeviceFeatures2>
+ struct StructExtends<BufferDeviceAddressCreateInfoEXT, BufferCreateInfo>
{
enum
{
value = true
};
};
+
+ //=== VK_EXT_validation_features ===
template <>
- struct StructExtends<PhysicalDeviceVertexAttributeDivisorFeaturesEXT, DeviceCreateInfo>
+ struct StructExtends<ValidationFeaturesEXT, InstanceCreateInfo>
{
enum
{
value = true
};
};
+
+ //=== VK_KHR_present_wait ===
template <>
- struct StructExtends<PhysicalDeviceVertexAttributeDivisorPropertiesEXT, PhysicalDeviceProperties2>
+ struct StructExtends<PhysicalDevicePresentWaitFeaturesKHR, PhysicalDeviceFeatures2>
{
enum
{
@@ -8878,15 +9272,17 @@ namespace VULKAN_HPP_NAMESPACE
};
};
template <>
- struct StructExtends<PhysicalDeviceVertexInputDynamicStateFeaturesEXT, PhysicalDeviceFeatures2>
+ struct StructExtends<PhysicalDevicePresentWaitFeaturesKHR, DeviceCreateInfo>
{
enum
{
value = true
};
};
+
+ //=== VK_NV_cooperative_matrix ===
template <>
- struct StructExtends<PhysicalDeviceVertexInputDynamicStateFeaturesEXT, DeviceCreateInfo>
+ struct StructExtends<PhysicalDeviceCooperativeMatrixFeaturesNV, PhysicalDeviceFeatures2>
{
enum
{
@@ -8894,7 +9290,7 @@ namespace VULKAN_HPP_NAMESPACE
};
};
template <>
- struct StructExtends<PhysicalDeviceVulkan11Features, PhysicalDeviceFeatures2>
+ struct StructExtends<PhysicalDeviceCooperativeMatrixFeaturesNV, DeviceCreateInfo>
{
enum
{
@@ -8902,15 +9298,17 @@ namespace VULKAN_HPP_NAMESPACE
};
};
template <>
- struct StructExtends<PhysicalDeviceVulkan11Features, DeviceCreateInfo>
+ struct StructExtends<PhysicalDeviceCooperativeMatrixPropertiesNV, PhysicalDeviceProperties2>
{
enum
{
value = true
};
};
+
+ //=== VK_NV_coverage_reduction_mode ===
template <>
- struct StructExtends<PhysicalDeviceVulkan11Properties, PhysicalDeviceProperties2>
+ struct StructExtends<PhysicalDeviceCoverageReductionModeFeaturesNV, PhysicalDeviceFeatures2>
{
enum
{
@@ -8918,7 +9316,7 @@ namespace VULKAN_HPP_NAMESPACE
};
};
template <>
- struct StructExtends<PhysicalDeviceVulkan12Features, PhysicalDeviceFeatures2>
+ struct StructExtends<PhysicalDeviceCoverageReductionModeFeaturesNV, DeviceCreateInfo>
{
enum
{
@@ -8926,15 +9324,17 @@ namespace VULKAN_HPP_NAMESPACE
};
};
template <>
- struct StructExtends<PhysicalDeviceVulkan12Features, DeviceCreateInfo>
+ struct StructExtends<PipelineCoverageReductionStateCreateInfoNV, PipelineMultisampleStateCreateInfo>
{
enum
{
value = true
};
};
+
+ //=== VK_EXT_fragment_shader_interlock ===
template <>
- struct StructExtends<PhysicalDeviceVulkan12Properties, PhysicalDeviceProperties2>
+ struct StructExtends<PhysicalDeviceFragmentShaderInterlockFeaturesEXT, PhysicalDeviceFeatures2>
{
enum
{
@@ -8942,15 +9342,17 @@ namespace VULKAN_HPP_NAMESPACE
};
};
template <>
- struct StructExtends<PhysicalDeviceVulkanMemoryModelFeatures, PhysicalDeviceFeatures2>
+ struct StructExtends<PhysicalDeviceFragmentShaderInterlockFeaturesEXT, DeviceCreateInfo>
{
enum
{
value = true
};
};
+
+ //=== VK_EXT_ycbcr_image_arrays ===
template <>
- struct StructExtends<PhysicalDeviceVulkanMemoryModelFeatures, DeviceCreateInfo>
+ struct StructExtends<PhysicalDeviceYcbcrImageArraysFeaturesEXT, PhysicalDeviceFeatures2>
{
enum
{
@@ -8958,15 +9360,17 @@ namespace VULKAN_HPP_NAMESPACE
};
};
template <>
- struct StructExtends<PhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR, PhysicalDeviceFeatures2>
+ struct StructExtends<PhysicalDeviceYcbcrImageArraysFeaturesEXT, DeviceCreateInfo>
{
enum
{
value = true
};
};
+
+ //=== VK_EXT_provoking_vertex ===
template <>
- struct StructExtends<PhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR, DeviceCreateInfo>
+ struct StructExtends<PhysicalDeviceProvokingVertexFeaturesEXT, PhysicalDeviceFeatures2>
{
enum
{
@@ -8974,7 +9378,7 @@ namespace VULKAN_HPP_NAMESPACE
};
};
template <>
- struct StructExtends<PhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT, PhysicalDeviceFeatures2>
+ struct StructExtends<PhysicalDeviceProvokingVertexFeaturesEXT, DeviceCreateInfo>
{
enum
{
@@ -8982,7 +9386,7 @@ namespace VULKAN_HPP_NAMESPACE
};
};
template <>
- struct StructExtends<PhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT, DeviceCreateInfo>
+ struct StructExtends<PhysicalDeviceProvokingVertexPropertiesEXT, PhysicalDeviceProperties2>
{
enum
{
@@ -8990,15 +9394,18 @@ namespace VULKAN_HPP_NAMESPACE
};
};
template <>
- struct StructExtends<PhysicalDeviceYcbcrImageArraysFeaturesEXT, PhysicalDeviceFeatures2>
+ struct StructExtends<PipelineRasterizationProvokingVertexStateCreateInfoEXT, PipelineRasterizationStateCreateInfo>
{
enum
{
value = true
};
};
+
+#if defined( VK_USE_PLATFORM_WIN32_KHR )
+ //=== VK_EXT_full_screen_exclusive ===
template <>
- struct StructExtends<PhysicalDeviceYcbcrImageArraysFeaturesEXT, DeviceCreateInfo>
+ struct StructExtends<SurfaceFullScreenExclusiveInfoEXT, PhysicalDeviceSurfaceInfo2KHR>
{
enum
{
@@ -9006,7 +9413,7 @@ namespace VULKAN_HPP_NAMESPACE
};
};
template <>
- struct StructExtends<PhysicalDeviceZeroInitializeWorkgroupMemoryFeaturesKHR, PhysicalDeviceFeatures2>
+ struct StructExtends<SurfaceFullScreenExclusiveInfoEXT, SwapchainCreateInfoKHR>
{
enum
{
@@ -9014,7 +9421,7 @@ namespace VULKAN_HPP_NAMESPACE
};
};
template <>
- struct StructExtends<PhysicalDeviceZeroInitializeWorkgroupMemoryFeaturesKHR, DeviceCreateInfo>
+ struct StructExtends<SurfaceCapabilitiesFullScreenExclusiveEXT, SurfaceCapabilities2KHR>
{
enum
{
@@ -9022,7 +9429,7 @@ namespace VULKAN_HPP_NAMESPACE
};
};
template <>
- struct StructExtends<PipelineColorBlendAdvancedStateCreateInfoEXT, PipelineColorBlendStateCreateInfo>
+ struct StructExtends<SurfaceFullScreenExclusiveWin32InfoEXT, PhysicalDeviceSurfaceInfo2KHR>
{
enum
{
@@ -9030,15 +9437,18 @@ namespace VULKAN_HPP_NAMESPACE
};
};
template <>
- struct StructExtends<PipelineColorWriteCreateInfoEXT, PipelineColorBlendStateCreateInfo>
+ struct StructExtends<SurfaceFullScreenExclusiveWin32InfoEXT, SwapchainCreateInfoKHR>
{
enum
{
value = true
};
};
+#endif /*VK_USE_PLATFORM_WIN32_KHR*/
+
+ //=== VK_EXT_line_rasterization ===
template <>
- struct StructExtends<PipelineCompilerControlCreateInfoAMD, GraphicsPipelineCreateInfo>
+ struct StructExtends<PhysicalDeviceLineRasterizationFeaturesEXT, PhysicalDeviceFeatures2>
{
enum
{
@@ -9046,7 +9456,7 @@ namespace VULKAN_HPP_NAMESPACE
};
};
template <>
- struct StructExtends<PipelineCompilerControlCreateInfoAMD, ComputePipelineCreateInfo>
+ struct StructExtends<PhysicalDeviceLineRasterizationFeaturesEXT, DeviceCreateInfo>
{
enum
{
@@ -9054,7 +9464,7 @@ namespace VULKAN_HPP_NAMESPACE
};
};
template <>
- struct StructExtends<PipelineCoverageModulationStateCreateInfoNV, PipelineMultisampleStateCreateInfo>
+ struct StructExtends<PhysicalDeviceLineRasterizationPropertiesEXT, PhysicalDeviceProperties2>
{
enum
{
@@ -9062,15 +9472,17 @@ namespace VULKAN_HPP_NAMESPACE
};
};
template <>
- struct StructExtends<PipelineCoverageReductionStateCreateInfoNV, PipelineMultisampleStateCreateInfo>
+ struct StructExtends<PipelineRasterizationLineStateCreateInfoEXT, PipelineRasterizationStateCreateInfo>
{
enum
{
value = true
};
};
+
+ //=== VK_EXT_shader_atomic_float ===
template <>
- struct StructExtends<PipelineCoverageToColorStateCreateInfoNV, PipelineMultisampleStateCreateInfo>
+ struct StructExtends<PhysicalDeviceShaderAtomicFloatFeaturesEXT, PhysicalDeviceFeatures2>
{
enum
{
@@ -9078,15 +9490,17 @@ namespace VULKAN_HPP_NAMESPACE
};
};
template <>
- struct StructExtends<PipelineCreationFeedbackCreateInfoEXT, GraphicsPipelineCreateInfo>
+ struct StructExtends<PhysicalDeviceShaderAtomicFloatFeaturesEXT, DeviceCreateInfo>
{
enum
{
value = true
};
};
+
+ //=== VK_EXT_index_type_uint8 ===
template <>
- struct StructExtends<PipelineCreationFeedbackCreateInfoEXT, ComputePipelineCreateInfo>
+ struct StructExtends<PhysicalDeviceIndexTypeUint8FeaturesEXT, PhysicalDeviceFeatures2>
{
enum
{
@@ -9094,15 +9508,17 @@ namespace VULKAN_HPP_NAMESPACE
};
};
template <>
- struct StructExtends<PipelineCreationFeedbackCreateInfoEXT, RayTracingPipelineCreateInfoNV>
+ struct StructExtends<PhysicalDeviceIndexTypeUint8FeaturesEXT, DeviceCreateInfo>
{
enum
{
value = true
};
};
+
+ //=== VK_EXT_extended_dynamic_state ===
template <>
- struct StructExtends<PipelineCreationFeedbackCreateInfoEXT, RayTracingPipelineCreateInfoKHR>
+ struct StructExtends<PhysicalDeviceExtendedDynamicStateFeaturesEXT, PhysicalDeviceFeatures2>
{
enum
{
@@ -9110,15 +9526,17 @@ namespace VULKAN_HPP_NAMESPACE
};
};
template <>
- struct StructExtends<PipelineDiscardRectangleStateCreateInfoEXT, GraphicsPipelineCreateInfo>
+ struct StructExtends<PhysicalDeviceExtendedDynamicStateFeaturesEXT, DeviceCreateInfo>
{
enum
{
value = true
};
};
+
+ //=== VK_KHR_pipeline_executable_properties ===
template <>
- struct StructExtends<PipelineFragmentShadingRateEnumStateCreateInfoNV, GraphicsPipelineCreateInfo>
+ struct StructExtends<PhysicalDevicePipelineExecutablePropertiesFeaturesKHR, PhysicalDeviceFeatures2>
{
enum
{
@@ -9126,15 +9544,17 @@ namespace VULKAN_HPP_NAMESPACE
};
};
template <>
- struct StructExtends<PipelineFragmentShadingRateStateCreateInfoKHR, GraphicsPipelineCreateInfo>
+ struct StructExtends<PhysicalDevicePipelineExecutablePropertiesFeaturesKHR, DeviceCreateInfo>
{
enum
{
value = true
};
};
+
+ //=== VK_EXT_shader_atomic_float2 ===
template <>
- struct StructExtends<PipelineRasterizationConservativeStateCreateInfoEXT, PipelineRasterizationStateCreateInfo>
+ struct StructExtends<PhysicalDeviceShaderAtomicFloat2FeaturesEXT, PhysicalDeviceFeatures2>
{
enum
{
@@ -9142,15 +9562,17 @@ namespace VULKAN_HPP_NAMESPACE
};
};
template <>
- struct StructExtends<PipelineRasterizationDepthClipStateCreateInfoEXT, PipelineRasterizationStateCreateInfo>
+ struct StructExtends<PhysicalDeviceShaderAtomicFloat2FeaturesEXT, DeviceCreateInfo>
{
enum
{
value = true
};
};
+
+ //=== VK_EXT_shader_demote_to_helper_invocation ===
template <>
- struct StructExtends<PipelineRasterizationLineStateCreateInfoEXT, PipelineRasterizationStateCreateInfo>
+ struct StructExtends<PhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT, PhysicalDeviceFeatures2>
{
enum
{
@@ -9158,15 +9580,17 @@ namespace VULKAN_HPP_NAMESPACE
};
};
template <>
- struct StructExtends<PipelineRasterizationProvokingVertexStateCreateInfoEXT, PipelineRasterizationStateCreateInfo>
+ struct StructExtends<PhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT, DeviceCreateInfo>
{
enum
{
value = true
};
};
+
+ //=== VK_NV_device_generated_commands ===
template <>
- struct StructExtends<PipelineRasterizationStateRasterizationOrderAMD, PipelineRasterizationStateCreateInfo>
+ struct StructExtends<PhysicalDeviceDeviceGeneratedCommandsPropertiesNV, PhysicalDeviceProperties2>
{
enum
{
@@ -9174,7 +9598,7 @@ namespace VULKAN_HPP_NAMESPACE
};
};
template <>
- struct StructExtends<PipelineRasterizationStateStreamCreateInfoEXT, PipelineRasterizationStateCreateInfo>
+ struct StructExtends<PhysicalDeviceDeviceGeneratedCommandsFeaturesNV, PhysicalDeviceFeatures2>
{
enum
{
@@ -9182,7 +9606,7 @@ namespace VULKAN_HPP_NAMESPACE
};
};
template <>
- struct StructExtends<PipelineRepresentativeFragmentTestStateCreateInfoNV, GraphicsPipelineCreateInfo>
+ struct StructExtends<PhysicalDeviceDeviceGeneratedCommandsFeaturesNV, DeviceCreateInfo>
{
enum
{
@@ -9190,15 +9614,17 @@ namespace VULKAN_HPP_NAMESPACE
};
};
template <>
- struct StructExtends<PipelineSampleLocationsStateCreateInfoEXT, PipelineMultisampleStateCreateInfo>
+ struct StructExtends<GraphicsPipelineShaderGroupsCreateInfoNV, GraphicsPipelineCreateInfo>
{
enum
{
value = true
};
};
+
+ //=== VK_NV_inherited_viewport_scissor ===
template <>
- struct StructExtends<PipelineShaderStageRequiredSubgroupSizeCreateInfoEXT, PipelineShaderStageCreateInfo>
+ struct StructExtends<PhysicalDeviceInheritedViewportScissorFeaturesNV, PhysicalDeviceFeatures2>
{
enum
{
@@ -9206,7 +9632,7 @@ namespace VULKAN_HPP_NAMESPACE
};
};
template <>
- struct StructExtends<PipelineTessellationDomainOriginStateCreateInfo, PipelineTessellationStateCreateInfo>
+ struct StructExtends<PhysicalDeviceInheritedViewportScissorFeaturesNV, DeviceCreateInfo>
{
enum
{
@@ -9214,15 +9640,17 @@ namespace VULKAN_HPP_NAMESPACE
};
};
template <>
- struct StructExtends<PipelineVertexInputDivisorStateCreateInfoEXT, PipelineVertexInputStateCreateInfo>
+ struct StructExtends<CommandBufferInheritanceViewportScissorInfoNV, CommandBufferInheritanceInfo>
{
enum
{
value = true
};
};
+
+ //=== VK_KHR_shader_integer_dot_product ===
template <>
- struct StructExtends<PipelineViewportCoarseSampleOrderStateCreateInfoNV, PipelineViewportStateCreateInfo>
+ struct StructExtends<PhysicalDeviceShaderIntegerDotProductFeaturesKHR, PhysicalDeviceFeatures2>
{
enum
{
@@ -9230,7 +9658,7 @@ namespace VULKAN_HPP_NAMESPACE
};
};
template <>
- struct StructExtends<PipelineViewportExclusiveScissorStateCreateInfoNV, PipelineViewportStateCreateInfo>
+ struct StructExtends<PhysicalDeviceShaderIntegerDotProductFeaturesKHR, DeviceCreateInfo>
{
enum
{
@@ -9238,15 +9666,17 @@ namespace VULKAN_HPP_NAMESPACE
};
};
template <>
- struct StructExtends<PipelineViewportShadingRateImageStateCreateInfoNV, PipelineViewportStateCreateInfo>
+ struct StructExtends<PhysicalDeviceShaderIntegerDotProductPropertiesKHR, PhysicalDeviceProperties2>
{
enum
{
value = true
};
};
+
+ //=== VK_EXT_texel_buffer_alignment ===
template <>
- struct StructExtends<PipelineViewportSwizzleStateCreateInfoNV, PipelineViewportStateCreateInfo>
+ struct StructExtends<PhysicalDeviceTexelBufferAlignmentFeaturesEXT, PhysicalDeviceFeatures2>
{
enum
{
@@ -9254,25 +9684,25 @@ namespace VULKAN_HPP_NAMESPACE
};
};
template <>
- struct StructExtends<PipelineViewportWScalingStateCreateInfoNV, PipelineViewportStateCreateInfo>
+ struct StructExtends<PhysicalDeviceTexelBufferAlignmentFeaturesEXT, DeviceCreateInfo>
{
enum
{
value = true
};
};
-#if defined( VK_USE_PLATFORM_GGP )
template <>
- struct StructExtends<PresentFrameTokenGGP, PresentInfoKHR>
+ struct StructExtends<PhysicalDeviceTexelBufferAlignmentPropertiesEXT, PhysicalDeviceProperties2>
{
enum
{
value = true
};
};
-#endif /*VK_USE_PLATFORM_GGP*/
+
+ //=== VK_QCOM_render_pass_transform ===
template <>
- struct StructExtends<PresentRegionsKHR, PresentInfoKHR>
+ struct StructExtends<RenderPassTransformBeginInfoQCOM, RenderPassBeginInfo>
{
enum
{
@@ -9280,15 +9710,17 @@ namespace VULKAN_HPP_NAMESPACE
};
};
template <>
- struct StructExtends<PresentTimesInfoGOOGLE, PresentInfoKHR>
+ struct StructExtends<CommandBufferInheritanceRenderPassTransformInfoQCOM, CommandBufferInheritanceInfo>
{
enum
{
value = true
};
};
+
+ //=== VK_EXT_device_memory_report ===
template <>
- struct StructExtends<ProtectedSubmitInfo, SubmitInfo>
+ struct StructExtends<PhysicalDeviceDeviceMemoryReportFeaturesEXT, PhysicalDeviceFeatures2>
{
enum
{
@@ -9296,7 +9728,7 @@ namespace VULKAN_HPP_NAMESPACE
};
};
template <>
- struct StructExtends<QueryPoolPerformanceCreateInfoKHR, QueryPoolCreateInfo>
+ struct StructExtends<PhysicalDeviceDeviceMemoryReportFeaturesEXT, DeviceCreateInfo>
{
enum
{
@@ -9304,15 +9736,17 @@ namespace VULKAN_HPP_NAMESPACE
};
};
template <>
- struct StructExtends<QueryPoolPerformanceQueryCreateInfoINTEL, QueryPoolCreateInfo>
+ struct StructExtends<DeviceDeviceMemoryReportCreateInfoEXT, DeviceCreateInfo>
{
enum
{
value = true
};
};
+
+ //=== VK_EXT_robustness2 ===
template <>
- struct StructExtends<QueueFamilyCheckpointProperties2NV, QueueFamilyProperties2>
+ struct StructExtends<PhysicalDeviceRobustness2FeaturesEXT, PhysicalDeviceFeatures2>
{
enum
{
@@ -9320,7 +9754,7 @@ namespace VULKAN_HPP_NAMESPACE
};
};
template <>
- struct StructExtends<QueueFamilyCheckpointPropertiesNV, QueueFamilyProperties2>
+ struct StructExtends<PhysicalDeviceRobustness2FeaturesEXT, DeviceCreateInfo>
{
enum
{
@@ -9328,15 +9762,17 @@ namespace VULKAN_HPP_NAMESPACE
};
};
template <>
- struct StructExtends<QueueFamilyGlobalPriorityPropertiesEXT, QueueFamilyProperties2>
+ struct StructExtends<PhysicalDeviceRobustness2PropertiesEXT, PhysicalDeviceProperties2>
{
enum
{
value = true
};
};
+
+ //=== VK_EXT_custom_border_color ===
template <>
- struct StructExtends<RenderPassAttachmentBeginInfo, RenderPassBeginInfo>
+ struct StructExtends<SamplerCustomBorderColorCreateInfoEXT, SamplerCreateInfo>
{
enum
{
@@ -9344,7 +9780,7 @@ namespace VULKAN_HPP_NAMESPACE
};
};
template <>
- struct StructExtends<RenderPassFragmentDensityMapCreateInfoEXT, RenderPassCreateInfo>
+ struct StructExtends<PhysicalDeviceCustomBorderColorPropertiesEXT, PhysicalDeviceProperties2>
{
enum
{
@@ -9352,7 +9788,7 @@ namespace VULKAN_HPP_NAMESPACE
};
};
template <>
- struct StructExtends<RenderPassFragmentDensityMapCreateInfoEXT, RenderPassCreateInfo2>
+ struct StructExtends<PhysicalDeviceCustomBorderColorFeaturesEXT, PhysicalDeviceFeatures2>
{
enum
{
@@ -9360,15 +9796,17 @@ namespace VULKAN_HPP_NAMESPACE
};
};
template <>
- struct StructExtends<RenderPassInputAttachmentAspectCreateInfo, RenderPassCreateInfo>
+ struct StructExtends<PhysicalDeviceCustomBorderColorFeaturesEXT, DeviceCreateInfo>
{
enum
{
value = true
};
};
+
+ //=== VK_KHR_present_id ===
template <>
- struct StructExtends<RenderPassMultiviewCreateInfo, RenderPassCreateInfo>
+ struct StructExtends<PresentIdKHR, PresentInfoKHR>
{
enum
{
@@ -9376,7 +9814,7 @@ namespace VULKAN_HPP_NAMESPACE
};
};
template <>
- struct StructExtends<RenderPassSampleLocationsBeginInfoEXT, RenderPassBeginInfo>
+ struct StructExtends<PhysicalDevicePresentIdFeaturesKHR, PhysicalDeviceFeatures2>
{
enum
{
@@ -9384,15 +9822,17 @@ namespace VULKAN_HPP_NAMESPACE
};
};
template <>
- struct StructExtends<RenderPassTransformBeginInfoQCOM, RenderPassBeginInfo>
+ struct StructExtends<PhysicalDevicePresentIdFeaturesKHR, DeviceCreateInfo>
{
enum
{
value = true
};
};
+
+ //=== VK_EXT_private_data ===
template <>
- struct StructExtends<SampleLocationsInfoEXT, ImageMemoryBarrier>
+ struct StructExtends<PhysicalDevicePrivateDataFeaturesEXT, PhysicalDeviceFeatures2>
{
enum
{
@@ -9400,7 +9840,7 @@ namespace VULKAN_HPP_NAMESPACE
};
};
template <>
- struct StructExtends<SampleLocationsInfoEXT, ImageMemoryBarrier2KHR>
+ struct StructExtends<PhysicalDevicePrivateDataFeaturesEXT, DeviceCreateInfo>
{
enum
{
@@ -9408,15 +9848,17 @@ namespace VULKAN_HPP_NAMESPACE
};
};
template <>
- struct StructExtends<SamplerCustomBorderColorCreateInfoEXT, SamplerCreateInfo>
+ struct StructExtends<DevicePrivateDataCreateInfoEXT, DeviceCreateInfo>
{
enum
{
value = true
};
};
+
+ //=== VK_EXT_pipeline_creation_cache_control ===
template <>
- struct StructExtends<SamplerReductionModeCreateInfo, SamplerCreateInfo>
+ struct StructExtends<PhysicalDevicePipelineCreationCacheControlFeaturesEXT, PhysicalDeviceFeatures2>
{
enum
{
@@ -9424,23 +9866,29 @@ namespace VULKAN_HPP_NAMESPACE
};
};
template <>
- struct StructExtends<SamplerYcbcrConversionImageFormatProperties, ImageFormatProperties2>
+ struct StructExtends<PhysicalDevicePipelineCreationCacheControlFeaturesEXT, DeviceCreateInfo>
{
enum
{
value = true
};
};
+
+#if defined( VK_ENABLE_BETA_EXTENSIONS )
+ //=== VK_KHR_video_encode_queue ===
template <>
- struct StructExtends<SamplerYcbcrConversionInfo, SamplerCreateInfo>
+ struct StructExtends<VideoEncodeRateControlInfoKHR, VideoCodingControlInfoKHR>
{
enum
{
value = true
};
};
+#endif /*VK_ENABLE_BETA_EXTENSIONS*/
+
+ //=== VK_NV_device_diagnostics_config ===
template <>
- struct StructExtends<SamplerYcbcrConversionInfo, ImageViewCreateInfo>
+ struct StructExtends<PhysicalDeviceDiagnosticsConfigFeaturesNV, PhysicalDeviceFeatures2>
{
enum
{
@@ -9448,7 +9896,7 @@ namespace VULKAN_HPP_NAMESPACE
};
};
template <>
- struct StructExtends<SemaphoreTypeCreateInfo, SemaphoreCreateInfo>
+ struct StructExtends<PhysicalDeviceDiagnosticsConfigFeaturesNV, DeviceCreateInfo>
{
enum
{
@@ -9456,15 +9904,17 @@ namespace VULKAN_HPP_NAMESPACE
};
};
template <>
- struct StructExtends<SemaphoreTypeCreateInfo, PhysicalDeviceExternalSemaphoreInfo>
+ struct StructExtends<DeviceDiagnosticsConfigCreateInfoNV, DeviceCreateInfo>
{
enum
{
value = true
};
};
+
+ //=== VK_KHR_synchronization2 ===
template <>
- struct StructExtends<ShaderModuleValidationCacheCreateInfoEXT, ShaderModuleCreateInfo>
+ struct StructExtends<MemoryBarrier2KHR, SubpassDependency2>
{
enum
{
@@ -9472,7 +9922,7 @@ namespace VULKAN_HPP_NAMESPACE
};
};
template <>
- struct StructExtends<SharedPresentSurfaceCapabilitiesKHR, SurfaceCapabilities2KHR>
+ struct StructExtends<PhysicalDeviceSynchronization2FeaturesKHR, PhysicalDeviceFeatures2>
{
enum
{
@@ -9480,7 +9930,7 @@ namespace VULKAN_HPP_NAMESPACE
};
};
template <>
- struct StructExtends<SubpassDescriptionDepthStencilResolve, SubpassDescription2>
+ struct StructExtends<PhysicalDeviceSynchronization2FeaturesKHR, DeviceCreateInfo>
{
enum
{
@@ -9488,61 +9938,61 @@ namespace VULKAN_HPP_NAMESPACE
};
};
template <>
- struct StructExtends<SubpassShadingPipelineCreateInfoHUAWEI, ComputePipelineCreateInfo>
+ struct StructExtends<QueueFamilyCheckpointProperties2NV, QueueFamilyProperties2>
{
enum
{
value = true
};
};
-#if defined( VK_USE_PLATFORM_WIN32_KHR )
+
+ //=== VK_KHR_shader_subgroup_uniform_control_flow ===
template <>
- struct StructExtends<SurfaceCapabilitiesFullScreenExclusiveEXT, SurfaceCapabilities2KHR>
+ struct StructExtends<PhysicalDeviceShaderSubgroupUniformControlFlowFeaturesKHR, PhysicalDeviceFeatures2>
{
enum
{
value = true
};
};
-#endif /*VK_USE_PLATFORM_WIN32_KHR*/
-#if defined( VK_USE_PLATFORM_WIN32_KHR )
template <>
- struct StructExtends<SurfaceFullScreenExclusiveInfoEXT, PhysicalDeviceSurfaceInfo2KHR>
+ struct StructExtends<PhysicalDeviceShaderSubgroupUniformControlFlowFeaturesKHR, DeviceCreateInfo>
{
enum
{
value = true
};
};
+
+ //=== VK_KHR_zero_initialize_workgroup_memory ===
template <>
- struct StructExtends<SurfaceFullScreenExclusiveInfoEXT, SwapchainCreateInfoKHR>
+ struct StructExtends<PhysicalDeviceZeroInitializeWorkgroupMemoryFeaturesKHR, PhysicalDeviceFeatures2>
{
enum
{
value = true
};
};
-#endif /*VK_USE_PLATFORM_WIN32_KHR*/
-#if defined( VK_USE_PLATFORM_WIN32_KHR )
template <>
- struct StructExtends<SurfaceFullScreenExclusiveWin32InfoEXT, PhysicalDeviceSurfaceInfo2KHR>
+ struct StructExtends<PhysicalDeviceZeroInitializeWorkgroupMemoryFeaturesKHR, DeviceCreateInfo>
{
enum
{
value = true
};
};
+
+ //=== VK_NV_fragment_shading_rate_enums ===
template <>
- struct StructExtends<SurfaceFullScreenExclusiveWin32InfoEXT, SwapchainCreateInfoKHR>
+ struct StructExtends<PhysicalDeviceFragmentShadingRateEnumsFeaturesNV, PhysicalDeviceFeatures2>
{
enum
{
value = true
};
};
-#endif /*VK_USE_PLATFORM_WIN32_KHR*/
template <>
- struct StructExtends<SurfaceProtectedCapabilitiesKHR, SurfaceCapabilities2KHR>
+ struct StructExtends<PhysicalDeviceFragmentShadingRateEnumsFeaturesNV, DeviceCreateInfo>
{
enum
{
@@ -9550,7 +10000,7 @@ namespace VULKAN_HPP_NAMESPACE
};
};
template <>
- struct StructExtends<SwapchainCounterCreateInfoEXT, SwapchainCreateInfoKHR>
+ struct StructExtends<PhysicalDeviceFragmentShadingRateEnumsPropertiesNV, PhysicalDeviceProperties2>
{
enum
{
@@ -9558,15 +10008,18 @@ namespace VULKAN_HPP_NAMESPACE
};
};
template <>
- struct StructExtends<SwapchainDisplayNativeHdrCreateInfoAMD, SwapchainCreateInfoKHR>
+ struct StructExtends<PipelineFragmentShadingRateEnumStateCreateInfoNV, GraphicsPipelineCreateInfo>
{
enum
{
value = true
};
};
+
+ //=== VK_NV_ray_tracing_motion_blur ===
template <>
- struct StructExtends<TextureLODGatherFormatPropertiesAMD, ImageFormatProperties2>
+ struct StructExtends<AccelerationStructureGeometryMotionTrianglesDataNV,
+ AccelerationStructureGeometryTrianglesDataKHR>
{
enum
{
@@ -9574,7 +10027,7 @@ namespace VULKAN_HPP_NAMESPACE
};
};
template <>
- struct StructExtends<TimelineSemaphoreSubmitInfo, SubmitInfo>
+ struct StructExtends<AccelerationStructureMotionInfoNV, AccelerationStructureCreateInfoKHR>
{
enum
{
@@ -9582,7 +10035,7 @@ namespace VULKAN_HPP_NAMESPACE
};
};
template <>
- struct StructExtends<TimelineSemaphoreSubmitInfo, BindSparseInfo>
+ struct StructExtends<PhysicalDeviceRayTracingMotionBlurFeaturesNV, PhysicalDeviceFeatures2>
{
enum
{
@@ -9590,262 +10043,239 @@ namespace VULKAN_HPP_NAMESPACE
};
};
template <>
- struct StructExtends<ValidationFeaturesEXT, InstanceCreateInfo>
+ struct StructExtends<PhysicalDeviceRayTracingMotionBlurFeaturesNV, DeviceCreateInfo>
{
enum
{
value = true
};
};
+
+ //=== VK_EXT_ycbcr_2plane_444_formats ===
template <>
- struct StructExtends<ValidationFlagsEXT, InstanceCreateInfo>
+ struct StructExtends<PhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT, PhysicalDeviceFeatures2>
{
enum
{
value = true
};
};
-#if defined( VK_ENABLE_BETA_EXTENSIONS )
template <>
- struct StructExtends<VideoDecodeH264CapabilitiesEXT, VideoCapabilitiesKHR>
+ struct StructExtends<PhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT, DeviceCreateInfo>
{
enum
{
value = true
};
};
-#endif /*VK_ENABLE_BETA_EXTENSIONS*/
-#if defined( VK_ENABLE_BETA_EXTENSIONS )
+
+ //=== VK_EXT_fragment_density_map2 ===
template <>
- struct StructExtends<VideoDecodeH264DpbSlotInfoEXT, VideoReferenceSlotKHR>
+ struct StructExtends<PhysicalDeviceFragmentDensityMap2FeaturesEXT, PhysicalDeviceFeatures2>
{
enum
{
value = true
};
};
-#endif /*VK_ENABLE_BETA_EXTENSIONS*/
-#if defined( VK_ENABLE_BETA_EXTENSIONS )
template <>
- struct StructExtends<VideoDecodeH264MvcEXT, VideoDecodeH264PictureInfoEXT>
+ struct StructExtends<PhysicalDeviceFragmentDensityMap2FeaturesEXT, DeviceCreateInfo>
{
enum
{
value = true
};
};
-#endif /*VK_ENABLE_BETA_EXTENSIONS*/
-#if defined( VK_ENABLE_BETA_EXTENSIONS )
template <>
- struct StructExtends<VideoDecodeH264PictureInfoEXT, VideoDecodeInfoKHR>
+ struct StructExtends<PhysicalDeviceFragmentDensityMap2PropertiesEXT, PhysicalDeviceProperties2>
{
enum
{
value = true
};
};
-#endif /*VK_ENABLE_BETA_EXTENSIONS*/
-#if defined( VK_ENABLE_BETA_EXTENSIONS )
+
+ //=== VK_QCOM_rotated_copy_commands ===
template <>
- struct StructExtends<VideoDecodeH264ProfileEXT, VideoProfileKHR>
+ struct StructExtends<CopyCommandTransformInfoQCOM, BufferImageCopy2KHR>
{
enum
{
value = true
};
};
-#endif /*VK_ENABLE_BETA_EXTENSIONS*/
-#if defined( VK_ENABLE_BETA_EXTENSIONS )
template <>
- struct StructExtends<VideoDecodeH264SessionCreateInfoEXT, VideoSessionCreateInfoKHR>
+ struct StructExtends<CopyCommandTransformInfoQCOM, ImageBlit2KHR>
{
enum
{
value = true
};
};
-#endif /*VK_ENABLE_BETA_EXTENSIONS*/
-#if defined( VK_ENABLE_BETA_EXTENSIONS )
+
+ //=== VK_EXT_image_robustness ===
template <>
- struct StructExtends<VideoDecodeH264SessionParametersAddInfoEXT, VideoSessionParametersUpdateInfoKHR>
+ struct StructExtends<PhysicalDeviceImageRobustnessFeaturesEXT, PhysicalDeviceFeatures2>
{
enum
{
value = true
};
};
-#endif /*VK_ENABLE_BETA_EXTENSIONS*/
-#if defined( VK_ENABLE_BETA_EXTENSIONS )
template <>
- struct StructExtends<VideoDecodeH264SessionParametersCreateInfoEXT, VideoSessionParametersCreateInfoKHR>
+ struct StructExtends<PhysicalDeviceImageRobustnessFeaturesEXT, DeviceCreateInfo>
{
enum
{
value = true
};
};
-#endif /*VK_ENABLE_BETA_EXTENSIONS*/
-#if defined( VK_ENABLE_BETA_EXTENSIONS )
+
+ //=== VK_KHR_workgroup_memory_explicit_layout ===
template <>
- struct StructExtends<VideoDecodeH265CapabilitiesEXT, VideoCapabilitiesKHR>
+ struct StructExtends<PhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR, PhysicalDeviceFeatures2>
{
enum
{
value = true
};
};
-#endif /*VK_ENABLE_BETA_EXTENSIONS*/
-#if defined( VK_ENABLE_BETA_EXTENSIONS )
template <>
- struct StructExtends<VideoDecodeH265DpbSlotInfoEXT, VideoReferenceSlotKHR>
+ struct StructExtends<PhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR, DeviceCreateInfo>
{
enum
{
value = true
};
};
-#endif /*VK_ENABLE_BETA_EXTENSIONS*/
-#if defined( VK_ENABLE_BETA_EXTENSIONS )
+
+ //=== VK_EXT_4444_formats ===
template <>
- struct StructExtends<VideoDecodeH265PictureInfoEXT, VideoDecodeInfoKHR>
+ struct StructExtends<PhysicalDevice4444FormatsFeaturesEXT, PhysicalDeviceFeatures2>
{
enum
{
value = true
};
};
-#endif /*VK_ENABLE_BETA_EXTENSIONS*/
-#if defined( VK_ENABLE_BETA_EXTENSIONS )
template <>
- struct StructExtends<VideoDecodeH265ProfileEXT, VideoProfileKHR>
+ struct StructExtends<PhysicalDevice4444FormatsFeaturesEXT, DeviceCreateInfo>
{
enum
{
value = true
};
};
-#endif /*VK_ENABLE_BETA_EXTENSIONS*/
-#if defined( VK_ENABLE_BETA_EXTENSIONS )
+
+ //=== VK_KHR_ray_tracing_pipeline ===
template <>
- struct StructExtends<VideoDecodeH265SessionCreateInfoEXT, VideoSessionCreateInfoKHR>
+ struct StructExtends<PhysicalDeviceRayTracingPipelineFeaturesKHR, PhysicalDeviceFeatures2>
{
enum
{
value = true
};
};
-#endif /*VK_ENABLE_BETA_EXTENSIONS*/
-#if defined( VK_ENABLE_BETA_EXTENSIONS )
template <>
- struct StructExtends<VideoDecodeH265SessionParametersAddInfoEXT, VideoSessionParametersUpdateInfoKHR>
+ struct StructExtends<PhysicalDeviceRayTracingPipelineFeaturesKHR, DeviceCreateInfo>
{
enum
{
value = true
};
};
-#endif /*VK_ENABLE_BETA_EXTENSIONS*/
-#if defined( VK_ENABLE_BETA_EXTENSIONS )
template <>
- struct StructExtends<VideoDecodeH265SessionParametersCreateInfoEXT, VideoSessionParametersCreateInfoKHR>
+ struct StructExtends<PhysicalDeviceRayTracingPipelinePropertiesKHR, PhysicalDeviceProperties2>
{
enum
{
value = true
};
};
-#endif /*VK_ENABLE_BETA_EXTENSIONS*/
-#if defined( VK_ENABLE_BETA_EXTENSIONS )
+
+ //=== VK_KHR_ray_query ===
template <>
- struct StructExtends<VideoEncodeH264CapabilitiesEXT, VideoCapabilitiesKHR>
+ struct StructExtends<PhysicalDeviceRayQueryFeaturesKHR, PhysicalDeviceFeatures2>
{
enum
{
value = true
};
};
-#endif /*VK_ENABLE_BETA_EXTENSIONS*/
-#if defined( VK_ENABLE_BETA_EXTENSIONS )
template <>
- struct StructExtends<VideoEncodeH264EmitPictureParametersEXT, VideoEncodeInfoKHR>
+ struct StructExtends<PhysicalDeviceRayQueryFeaturesKHR, DeviceCreateInfo>
{
enum
{
value = true
};
};
-#endif /*VK_ENABLE_BETA_EXTENSIONS*/
-#if defined( VK_ENABLE_BETA_EXTENSIONS )
+
+ //=== VK_VALVE_mutable_descriptor_type ===
template <>
- struct StructExtends<VideoEncodeH264ProfileEXT, VideoProfileKHR>
+ struct StructExtends<PhysicalDeviceMutableDescriptorTypeFeaturesVALVE, PhysicalDeviceFeatures2>
{
enum
{
value = true
};
};
-#endif /*VK_ENABLE_BETA_EXTENSIONS*/
-#if defined( VK_ENABLE_BETA_EXTENSIONS )
template <>
- struct StructExtends<VideoEncodeH264SessionCreateInfoEXT, VideoSessionCreateInfoKHR>
+ struct StructExtends<PhysicalDeviceMutableDescriptorTypeFeaturesVALVE, DeviceCreateInfo>
{
enum
{
value = true
};
};
-#endif /*VK_ENABLE_BETA_EXTENSIONS*/
-#if defined( VK_ENABLE_BETA_EXTENSIONS )
template <>
- struct StructExtends<VideoEncodeH264SessionParametersAddInfoEXT, VideoSessionParametersUpdateInfoKHR>
+ struct StructExtends<MutableDescriptorTypeCreateInfoVALVE, DescriptorSetLayoutCreateInfo>
{
enum
{
value = true
};
};
-#endif /*VK_ENABLE_BETA_EXTENSIONS*/
-#if defined( VK_ENABLE_BETA_EXTENSIONS )
template <>
- struct StructExtends<VideoEncodeH264SessionParametersCreateInfoEXT, VideoSessionParametersCreateInfoKHR>
+ struct StructExtends<MutableDescriptorTypeCreateInfoVALVE, DescriptorPoolCreateInfo>
{
enum
{
value = true
};
};
-#endif /*VK_ENABLE_BETA_EXTENSIONS*/
-#if defined( VK_ENABLE_BETA_EXTENSIONS )
+
+ //=== VK_EXT_vertex_input_dynamic_state ===
template <>
- struct StructExtends<VideoEncodeH264VclFrameInfoEXT, VideoEncodeInfoKHR>
+ struct StructExtends<PhysicalDeviceVertexInputDynamicStateFeaturesEXT, PhysicalDeviceFeatures2>
{
enum
{
value = true
};
};
-#endif /*VK_ENABLE_BETA_EXTENSIONS*/
-#if defined( VK_ENABLE_BETA_EXTENSIONS )
template <>
- struct StructExtends<VideoEncodeRateControlInfoKHR, VideoCodingControlInfoKHR>
+ struct StructExtends<PhysicalDeviceVertexInputDynamicStateFeaturesEXT, DeviceCreateInfo>
{
enum
{
value = true
};
};
-#endif /*VK_ENABLE_BETA_EXTENSIONS*/
-#if defined( VK_ENABLE_BETA_EXTENSIONS )
+
+ //=== VK_EXT_physical_device_drm ===
template <>
- struct StructExtends<VideoProfileKHR, QueryPoolCreateInfo>
+ struct StructExtends<PhysicalDeviceDrmPropertiesEXT, PhysicalDeviceProperties2>
{
enum
{
value = true
};
};
+
+ //=== VK_EXT_primitive_topology_list_restart ===
template <>
- struct StructExtends<VideoProfileKHR, FormatProperties2>
+ struct StructExtends<PhysicalDevicePrimitiveTopologyListRestartFeaturesEXT, PhysicalDeviceFeatures2>
{
enum
{
@@ -9853,33 +10283,37 @@ namespace VULKAN_HPP_NAMESPACE
};
};
template <>
- struct StructExtends<VideoProfileKHR, ImageCreateInfo>
+ struct StructExtends<PhysicalDevicePrimitiveTopologyListRestartFeaturesEXT, DeviceCreateInfo>
{
enum
{
value = true
};
};
+
+#if defined( VK_USE_PLATFORM_FUCHSIA )
+ //=== VK_FUCHSIA_external_memory ===
template <>
- struct StructExtends<VideoProfileKHR, ImageViewCreateInfo>
+ struct StructExtends<ImportMemoryZirconHandleInfoFUCHSIA, MemoryAllocateInfo>
{
enum
{
value = true
};
};
+#endif /*VK_USE_PLATFORM_FUCHSIA*/
+
+ //=== VK_HUAWEI_subpass_shading ===
template <>
- struct StructExtends<VideoProfileKHR, BufferCreateInfo>
+ struct StructExtends<SubpassShadingPipelineCreateInfoHUAWEI, ComputePipelineCreateInfo>
{
enum
{
value = true
};
};
-#endif /*VK_ENABLE_BETA_EXTENSIONS*/
-#if defined( VK_ENABLE_BETA_EXTENSIONS )
template <>
- struct StructExtends<VideoProfilesKHR, FormatProperties2>
+ struct StructExtends<PhysicalDeviceSubpassShadingFeaturesHUAWEI, PhysicalDeviceFeatures2>
{
enum
{
@@ -9887,7 +10321,7 @@ namespace VULKAN_HPP_NAMESPACE
};
};
template <>
- struct StructExtends<VideoProfilesKHR, ImageCreateInfo>
+ struct StructExtends<PhysicalDeviceSubpassShadingFeaturesHUAWEI, DeviceCreateInfo>
{
enum
{
@@ -9895,35 +10329,35 @@ namespace VULKAN_HPP_NAMESPACE
};
};
template <>
- struct StructExtends<VideoProfilesKHR, ImageViewCreateInfo>
+ struct StructExtends<PhysicalDeviceSubpassShadingPropertiesHUAWEI, PhysicalDeviceProperties2>
{
enum
{
value = true
};
};
+
+ //=== VK_HUAWEI_invocation_mask ===
template <>
- struct StructExtends<VideoProfilesKHR, BufferCreateInfo>
+ struct StructExtends<PhysicalDeviceInvocationMaskFeaturesHUAWEI, PhysicalDeviceFeatures2>
{
enum
{
value = true
};
};
-#endif /*VK_ENABLE_BETA_EXTENSIONS*/
-#if defined( VK_ENABLE_BETA_EXTENSIONS )
template <>
- struct StructExtends<VideoQueueFamilyProperties2KHR, QueueFamilyProperties2>
+ struct StructExtends<PhysicalDeviceInvocationMaskFeaturesHUAWEI, DeviceCreateInfo>
{
enum
{
value = true
};
};
-#endif /*VK_ENABLE_BETA_EXTENSIONS*/
-#if defined( VK_USE_PLATFORM_WIN32_KHR )
+
+ //=== VK_NV_external_memory_rdma ===
template <>
- struct StructExtends<Win32KeyedMutexAcquireReleaseInfoKHR, SubmitInfo>
+ struct StructExtends<PhysicalDeviceExternalMemoryRDMAFeaturesNV, PhysicalDeviceFeatures2>
{
enum
{
@@ -9931,17 +10365,17 @@ namespace VULKAN_HPP_NAMESPACE
};
};
template <>
- struct StructExtends<Win32KeyedMutexAcquireReleaseInfoKHR, SubmitInfo2KHR>
+ struct StructExtends<PhysicalDeviceExternalMemoryRDMAFeaturesNV, DeviceCreateInfo>
{
enum
{
value = true
};
};
-#endif /*VK_USE_PLATFORM_WIN32_KHR*/
-#if defined( VK_USE_PLATFORM_WIN32_KHR )
+
+ //=== VK_EXT_extended_dynamic_state2 ===
template <>
- struct StructExtends<Win32KeyedMutexAcquireReleaseInfoNV, SubmitInfo>
+ struct StructExtends<PhysicalDeviceExtendedDynamicState2FeaturesEXT, PhysicalDeviceFeatures2>
{
enum
{
@@ -9949,16 +10383,17 @@ namespace VULKAN_HPP_NAMESPACE
};
};
template <>
- struct StructExtends<Win32KeyedMutexAcquireReleaseInfoNV, SubmitInfo2KHR>
+ struct StructExtends<PhysicalDeviceExtendedDynamicState2FeaturesEXT, DeviceCreateInfo>
{
enum
{
value = true
};
};
-#endif /*VK_USE_PLATFORM_WIN32_KHR*/
+
+ //=== VK_EXT_color_write_enable ===
template <>
- struct StructExtends<WriteDescriptorSetAccelerationStructureKHR, WriteDescriptorSet>
+ struct StructExtends<PhysicalDeviceColorWriteEnableFeaturesEXT, PhysicalDeviceFeatures2>
{
enum
{
@@ -9966,7 +10401,7 @@ namespace VULKAN_HPP_NAMESPACE
};
};
template <>
- struct StructExtends<WriteDescriptorSetAccelerationStructureNV, WriteDescriptorSet>
+ struct StructExtends<PhysicalDeviceColorWriteEnableFeaturesEXT, DeviceCreateInfo>
{
enum
{
@@ -9974,7 +10409,59 @@ namespace VULKAN_HPP_NAMESPACE
};
};
template <>
- struct StructExtends<WriteDescriptorSetInlineUniformBlockEXT, WriteDescriptorSet>
+ struct StructExtends<PipelineColorWriteCreateInfoEXT, PipelineColorBlendStateCreateInfo>
+ {
+ enum
+ {
+ value = true
+ };
+ };
+
+ //=== VK_EXT_global_priority_query ===
+ template <>
+ struct StructExtends<PhysicalDeviceGlobalPriorityQueryFeaturesEXT, PhysicalDeviceFeatures2>
+ {
+ enum
+ {
+ value = true
+ };
+ };
+ template <>
+ struct StructExtends<PhysicalDeviceGlobalPriorityQueryFeaturesEXT, DeviceCreateInfo>
+ {
+ enum
+ {
+ value = true
+ };
+ };
+ template <>
+ struct StructExtends<QueueFamilyGlobalPriorityPropertiesEXT, QueueFamilyProperties2>
+ {
+ enum
+ {
+ value = true
+ };
+ };
+
+ //=== VK_EXT_multi_draw ===
+ template <>
+ struct StructExtends<PhysicalDeviceMultiDrawFeaturesEXT, PhysicalDeviceFeatures2>
+ {
+ enum
+ {
+ value = true
+ };
+ };
+ template <>
+ struct StructExtends<PhysicalDeviceMultiDrawFeaturesEXT, DeviceCreateInfo>
+ {
+ enum
+ {
+ value = true
+ };
+ };
+ template <>
+ struct StructExtends<PhysicalDeviceMultiDrawPropertiesEXT, PhysicalDeviceProperties2>
{
enum
{
@@ -10086,722 +10573,868 @@ namespace VULKAN_HPP_NAMESPACE
};
#endif
- class DispatchLoaderDynamic
+ using PFN_dummy = void ( * )();
+
+ class DispatchLoaderDynamic : public DispatchLoaderBase
{
public:
- using PFN_dummy = void ( * )();
+ //=== VK_VERSION_1_0 ===
+ PFN_vkCreateInstance vkCreateInstance = 0;
+ PFN_vkDestroyInstance vkDestroyInstance = 0;
+ PFN_vkEnumeratePhysicalDevices vkEnumeratePhysicalDevices = 0;
+ PFN_vkGetPhysicalDeviceFeatures vkGetPhysicalDeviceFeatures = 0;
+ PFN_vkGetPhysicalDeviceFormatProperties vkGetPhysicalDeviceFormatProperties = 0;
+ PFN_vkGetPhysicalDeviceImageFormatProperties vkGetPhysicalDeviceImageFormatProperties = 0;
+ PFN_vkGetPhysicalDeviceProperties vkGetPhysicalDeviceProperties = 0;
+ PFN_vkGetPhysicalDeviceQueueFamilyProperties vkGetPhysicalDeviceQueueFamilyProperties = 0;
+ PFN_vkGetPhysicalDeviceMemoryProperties vkGetPhysicalDeviceMemoryProperties = 0;
+ PFN_vkGetInstanceProcAddr vkGetInstanceProcAddr = 0;
+ PFN_vkGetDeviceProcAddr vkGetDeviceProcAddr = 0;
+ PFN_vkCreateDevice vkCreateDevice = 0;
+ PFN_vkDestroyDevice vkDestroyDevice = 0;
+ PFN_vkEnumerateInstanceExtensionProperties vkEnumerateInstanceExtensionProperties = 0;
+ PFN_vkEnumerateDeviceExtensionProperties vkEnumerateDeviceExtensionProperties = 0;
+ PFN_vkEnumerateInstanceLayerProperties vkEnumerateInstanceLayerProperties = 0;
+ PFN_vkEnumerateDeviceLayerProperties vkEnumerateDeviceLayerProperties = 0;
+ PFN_vkGetDeviceQueue vkGetDeviceQueue = 0;
+ PFN_vkQueueSubmit vkQueueSubmit = 0;
+ PFN_vkQueueWaitIdle vkQueueWaitIdle = 0;
+ PFN_vkDeviceWaitIdle vkDeviceWaitIdle = 0;
+ PFN_vkAllocateMemory vkAllocateMemory = 0;
+ PFN_vkFreeMemory vkFreeMemory = 0;
+ PFN_vkMapMemory vkMapMemory = 0;
+ PFN_vkUnmapMemory vkUnmapMemory = 0;
+ PFN_vkFlushMappedMemoryRanges vkFlushMappedMemoryRanges = 0;
+ PFN_vkInvalidateMappedMemoryRanges vkInvalidateMappedMemoryRanges = 0;
+ PFN_vkGetDeviceMemoryCommitment vkGetDeviceMemoryCommitment = 0;
+ PFN_vkBindBufferMemory vkBindBufferMemory = 0;
+ PFN_vkBindImageMemory vkBindImageMemory = 0;
+ PFN_vkGetBufferMemoryRequirements vkGetBufferMemoryRequirements = 0;
+ PFN_vkGetImageMemoryRequirements vkGetImageMemoryRequirements = 0;
+ PFN_vkGetImageSparseMemoryRequirements vkGetImageSparseMemoryRequirements = 0;
+ PFN_vkGetPhysicalDeviceSparseImageFormatProperties vkGetPhysicalDeviceSparseImageFormatProperties = 0;
+ PFN_vkQueueBindSparse vkQueueBindSparse = 0;
+ PFN_vkCreateFence vkCreateFence = 0;
+ PFN_vkDestroyFence vkDestroyFence = 0;
+ PFN_vkResetFences vkResetFences = 0;
+ PFN_vkGetFenceStatus vkGetFenceStatus = 0;
+ PFN_vkWaitForFences vkWaitForFences = 0;
+ PFN_vkCreateSemaphore vkCreateSemaphore = 0;
+ PFN_vkDestroySemaphore vkDestroySemaphore = 0;
+ PFN_vkCreateEvent vkCreateEvent = 0;
+ PFN_vkDestroyEvent vkDestroyEvent = 0;
+ PFN_vkGetEventStatus vkGetEventStatus = 0;
+ PFN_vkSetEvent vkSetEvent = 0;
+ PFN_vkResetEvent vkResetEvent = 0;
+ PFN_vkCreateQueryPool vkCreateQueryPool = 0;
+ PFN_vkDestroyQueryPool vkDestroyQueryPool = 0;
+ PFN_vkGetQueryPoolResults vkGetQueryPoolResults = 0;
+ PFN_vkCreateBuffer vkCreateBuffer = 0;
+ PFN_vkDestroyBuffer vkDestroyBuffer = 0;
+ PFN_vkCreateBufferView vkCreateBufferView = 0;
+ PFN_vkDestroyBufferView vkDestroyBufferView = 0;
+ PFN_vkCreateImage vkCreateImage = 0;
+ PFN_vkDestroyImage vkDestroyImage = 0;
+ PFN_vkGetImageSubresourceLayout vkGetImageSubresourceLayout = 0;
+ PFN_vkCreateImageView vkCreateImageView = 0;
+ PFN_vkDestroyImageView vkDestroyImageView = 0;
+ PFN_vkCreateShaderModule vkCreateShaderModule = 0;
+ PFN_vkDestroyShaderModule vkDestroyShaderModule = 0;
+ PFN_vkCreatePipelineCache vkCreatePipelineCache = 0;
+ PFN_vkDestroyPipelineCache vkDestroyPipelineCache = 0;
+ PFN_vkGetPipelineCacheData vkGetPipelineCacheData = 0;
+ PFN_vkMergePipelineCaches vkMergePipelineCaches = 0;
+ PFN_vkCreateGraphicsPipelines vkCreateGraphicsPipelines = 0;
+ PFN_vkCreateComputePipelines vkCreateComputePipelines = 0;
+ PFN_vkDestroyPipeline vkDestroyPipeline = 0;
+ PFN_vkCreatePipelineLayout vkCreatePipelineLayout = 0;
+ PFN_vkDestroyPipelineLayout vkDestroyPipelineLayout = 0;
+ PFN_vkCreateSampler vkCreateSampler = 0;
+ PFN_vkDestroySampler vkDestroySampler = 0;
+ PFN_vkCreateDescriptorSetLayout vkCreateDescriptorSetLayout = 0;
+ PFN_vkDestroyDescriptorSetLayout vkDestroyDescriptorSetLayout = 0;
+ PFN_vkCreateDescriptorPool vkCreateDescriptorPool = 0;
+ PFN_vkDestroyDescriptorPool vkDestroyDescriptorPool = 0;
+ PFN_vkResetDescriptorPool vkResetDescriptorPool = 0;
+ PFN_vkAllocateDescriptorSets vkAllocateDescriptorSets = 0;
+ PFN_vkFreeDescriptorSets vkFreeDescriptorSets = 0;
+ PFN_vkUpdateDescriptorSets vkUpdateDescriptorSets = 0;
+ PFN_vkCreateFramebuffer vkCreateFramebuffer = 0;
+ PFN_vkDestroyFramebuffer vkDestroyFramebuffer = 0;
+ PFN_vkCreateRenderPass vkCreateRenderPass = 0;
+ PFN_vkDestroyRenderPass vkDestroyRenderPass = 0;
+ PFN_vkGetRenderAreaGranularity vkGetRenderAreaGranularity = 0;
+ PFN_vkCreateCommandPool vkCreateCommandPool = 0;
+ PFN_vkDestroyCommandPool vkDestroyCommandPool = 0;
+ PFN_vkResetCommandPool vkResetCommandPool = 0;
+ PFN_vkAllocateCommandBuffers vkAllocateCommandBuffers = 0;
+ PFN_vkFreeCommandBuffers vkFreeCommandBuffers = 0;
+ PFN_vkBeginCommandBuffer vkBeginCommandBuffer = 0;
+ PFN_vkEndCommandBuffer vkEndCommandBuffer = 0;
+ PFN_vkResetCommandBuffer vkResetCommandBuffer = 0;
+ PFN_vkCmdBindPipeline vkCmdBindPipeline = 0;
+ PFN_vkCmdSetViewport vkCmdSetViewport = 0;
+ PFN_vkCmdSetScissor vkCmdSetScissor = 0;
+ PFN_vkCmdSetLineWidth vkCmdSetLineWidth = 0;
+ PFN_vkCmdSetDepthBias vkCmdSetDepthBias = 0;
+ PFN_vkCmdSetBlendConstants vkCmdSetBlendConstants = 0;
+ PFN_vkCmdSetDepthBounds vkCmdSetDepthBounds = 0;
+ PFN_vkCmdSetStencilCompareMask vkCmdSetStencilCompareMask = 0;
+ PFN_vkCmdSetStencilWriteMask vkCmdSetStencilWriteMask = 0;
+ PFN_vkCmdSetStencilReference vkCmdSetStencilReference = 0;
+ PFN_vkCmdBindDescriptorSets vkCmdBindDescriptorSets = 0;
+ PFN_vkCmdBindIndexBuffer vkCmdBindIndexBuffer = 0;
+ PFN_vkCmdBindVertexBuffers vkCmdBindVertexBuffers = 0;
+ PFN_vkCmdDraw vkCmdDraw = 0;
+ PFN_vkCmdDrawIndexed vkCmdDrawIndexed = 0;
+ PFN_vkCmdDrawIndirect vkCmdDrawIndirect = 0;
+ PFN_vkCmdDrawIndexedIndirect vkCmdDrawIndexedIndirect = 0;
+ PFN_vkCmdDispatch vkCmdDispatch = 0;
+ PFN_vkCmdDispatchIndirect vkCmdDispatchIndirect = 0;
+ PFN_vkCmdCopyBuffer vkCmdCopyBuffer = 0;
+ PFN_vkCmdCopyImage vkCmdCopyImage = 0;
+ PFN_vkCmdBlitImage vkCmdBlitImage = 0;
+ PFN_vkCmdCopyBufferToImage vkCmdCopyBufferToImage = 0;
+ PFN_vkCmdCopyImageToBuffer vkCmdCopyImageToBuffer = 0;
+ PFN_vkCmdUpdateBuffer vkCmdUpdateBuffer = 0;
+ PFN_vkCmdFillBuffer vkCmdFillBuffer = 0;
+ PFN_vkCmdClearColorImage vkCmdClearColorImage = 0;
+ PFN_vkCmdClearDepthStencilImage vkCmdClearDepthStencilImage = 0;
+ PFN_vkCmdClearAttachments vkCmdClearAttachments = 0;
+ PFN_vkCmdResolveImage vkCmdResolveImage = 0;
+ PFN_vkCmdSetEvent vkCmdSetEvent = 0;
+ PFN_vkCmdResetEvent vkCmdResetEvent = 0;
+ PFN_vkCmdWaitEvents vkCmdWaitEvents = 0;
+ PFN_vkCmdPipelineBarrier vkCmdPipelineBarrier = 0;
+ PFN_vkCmdBeginQuery vkCmdBeginQuery = 0;
+ PFN_vkCmdEndQuery vkCmdEndQuery = 0;
+ PFN_vkCmdResetQueryPool vkCmdResetQueryPool = 0;
+ PFN_vkCmdWriteTimestamp vkCmdWriteTimestamp = 0;
+ PFN_vkCmdCopyQueryPoolResults vkCmdCopyQueryPoolResults = 0;
+ PFN_vkCmdPushConstants vkCmdPushConstants = 0;
+ PFN_vkCmdBeginRenderPass vkCmdBeginRenderPass = 0;
+ PFN_vkCmdNextSubpass vkCmdNextSubpass = 0;
+ PFN_vkCmdEndRenderPass vkCmdEndRenderPass = 0;
+ PFN_vkCmdExecuteCommands vkCmdExecuteCommands = 0;
- PFN_vkAcquireDrmDisplayEXT vkAcquireDrmDisplayEXT = 0;
-#if defined( VK_USE_PLATFORM_WIN32_KHR )
- PFN_vkAcquireFullScreenExclusiveModeEXT vkAcquireFullScreenExclusiveModeEXT = 0;
+ //=== VK_VERSION_1_1 ===
+ PFN_vkEnumerateInstanceVersion vkEnumerateInstanceVersion = 0;
+ PFN_vkBindBufferMemory2 vkBindBufferMemory2 = 0;
+ PFN_vkBindImageMemory2 vkBindImageMemory2 = 0;
+ PFN_vkGetDeviceGroupPeerMemoryFeatures vkGetDeviceGroupPeerMemoryFeatures = 0;
+ PFN_vkCmdSetDeviceMask vkCmdSetDeviceMask = 0;
+ PFN_vkCmdDispatchBase vkCmdDispatchBase = 0;
+ PFN_vkEnumeratePhysicalDeviceGroups vkEnumeratePhysicalDeviceGroups = 0;
+ PFN_vkGetImageMemoryRequirements2 vkGetImageMemoryRequirements2 = 0;
+ PFN_vkGetBufferMemoryRequirements2 vkGetBufferMemoryRequirements2 = 0;
+ PFN_vkGetImageSparseMemoryRequirements2 vkGetImageSparseMemoryRequirements2 = 0;
+ PFN_vkGetPhysicalDeviceFeatures2 vkGetPhysicalDeviceFeatures2 = 0;
+ PFN_vkGetPhysicalDeviceProperties2 vkGetPhysicalDeviceProperties2 = 0;
+ PFN_vkGetPhysicalDeviceFormatProperties2 vkGetPhysicalDeviceFormatProperties2 = 0;
+ PFN_vkGetPhysicalDeviceImageFormatProperties2 vkGetPhysicalDeviceImageFormatProperties2 = 0;
+ PFN_vkGetPhysicalDeviceQueueFamilyProperties2 vkGetPhysicalDeviceQueueFamilyProperties2 = 0;
+ PFN_vkGetPhysicalDeviceMemoryProperties2 vkGetPhysicalDeviceMemoryProperties2 = 0;
+ PFN_vkGetPhysicalDeviceSparseImageFormatProperties2 vkGetPhysicalDeviceSparseImageFormatProperties2 = 0;
+ PFN_vkTrimCommandPool vkTrimCommandPool = 0;
+ PFN_vkGetDeviceQueue2 vkGetDeviceQueue2 = 0;
+ PFN_vkCreateSamplerYcbcrConversion vkCreateSamplerYcbcrConversion = 0;
+ PFN_vkDestroySamplerYcbcrConversion vkDestroySamplerYcbcrConversion = 0;
+ PFN_vkCreateDescriptorUpdateTemplate vkCreateDescriptorUpdateTemplate = 0;
+ PFN_vkDestroyDescriptorUpdateTemplate vkDestroyDescriptorUpdateTemplate = 0;
+ PFN_vkUpdateDescriptorSetWithTemplate vkUpdateDescriptorSetWithTemplate = 0;
+ PFN_vkGetPhysicalDeviceExternalBufferProperties vkGetPhysicalDeviceExternalBufferProperties = 0;
+ PFN_vkGetPhysicalDeviceExternalFenceProperties vkGetPhysicalDeviceExternalFenceProperties = 0;
+ PFN_vkGetPhysicalDeviceExternalSemaphoreProperties vkGetPhysicalDeviceExternalSemaphoreProperties = 0;
+ PFN_vkGetDescriptorSetLayoutSupport vkGetDescriptorSetLayoutSupport = 0;
+
+ //=== VK_VERSION_1_2 ===
+ PFN_vkCmdDrawIndirectCount vkCmdDrawIndirectCount = 0;
+ PFN_vkCmdDrawIndexedIndirectCount vkCmdDrawIndexedIndirectCount = 0;
+ PFN_vkCreateRenderPass2 vkCreateRenderPass2 = 0;
+ PFN_vkCmdBeginRenderPass2 vkCmdBeginRenderPass2 = 0;
+ PFN_vkCmdNextSubpass2 vkCmdNextSubpass2 = 0;
+ PFN_vkCmdEndRenderPass2 vkCmdEndRenderPass2 = 0;
+ PFN_vkResetQueryPool vkResetQueryPool = 0;
+ PFN_vkGetSemaphoreCounterValue vkGetSemaphoreCounterValue = 0;
+ PFN_vkWaitSemaphores vkWaitSemaphores = 0;
+ PFN_vkSignalSemaphore vkSignalSemaphore = 0;
+ PFN_vkGetBufferDeviceAddress vkGetBufferDeviceAddress = 0;
+ PFN_vkGetBufferOpaqueCaptureAddress vkGetBufferOpaqueCaptureAddress = 0;
+ PFN_vkGetDeviceMemoryOpaqueCaptureAddress vkGetDeviceMemoryOpaqueCaptureAddress = 0;
+
+ //=== VK_KHR_surface ===
+ PFN_vkDestroySurfaceKHR vkDestroySurfaceKHR = 0;
+ PFN_vkGetPhysicalDeviceSurfaceSupportKHR vkGetPhysicalDeviceSurfaceSupportKHR = 0;
+ PFN_vkGetPhysicalDeviceSurfaceCapabilitiesKHR vkGetPhysicalDeviceSurfaceCapabilitiesKHR = 0;
+ PFN_vkGetPhysicalDeviceSurfaceFormatsKHR vkGetPhysicalDeviceSurfaceFormatsKHR = 0;
+ PFN_vkGetPhysicalDeviceSurfacePresentModesKHR vkGetPhysicalDeviceSurfacePresentModesKHR = 0;
+
+ //=== VK_KHR_swapchain ===
+ PFN_vkCreateSwapchainKHR vkCreateSwapchainKHR = 0;
+ PFN_vkDestroySwapchainKHR vkDestroySwapchainKHR = 0;
+ PFN_vkGetSwapchainImagesKHR vkGetSwapchainImagesKHR = 0;
+ PFN_vkAcquireNextImageKHR vkAcquireNextImageKHR = 0;
+ PFN_vkQueuePresentKHR vkQueuePresentKHR = 0;
+ PFN_vkGetDeviceGroupPresentCapabilitiesKHR vkGetDeviceGroupPresentCapabilitiesKHR = 0;
+ PFN_vkGetDeviceGroupSurfacePresentModesKHR vkGetDeviceGroupSurfacePresentModesKHR = 0;
+ PFN_vkGetPhysicalDevicePresentRectanglesKHR vkGetPhysicalDevicePresentRectanglesKHR = 0;
+ PFN_vkAcquireNextImage2KHR vkAcquireNextImage2KHR = 0;
+
+ //=== VK_KHR_display ===
+ PFN_vkGetPhysicalDeviceDisplayPropertiesKHR vkGetPhysicalDeviceDisplayPropertiesKHR = 0;
+ PFN_vkGetPhysicalDeviceDisplayPlanePropertiesKHR vkGetPhysicalDeviceDisplayPlanePropertiesKHR = 0;
+ PFN_vkGetDisplayPlaneSupportedDisplaysKHR vkGetDisplayPlaneSupportedDisplaysKHR = 0;
+ PFN_vkGetDisplayModePropertiesKHR vkGetDisplayModePropertiesKHR = 0;
+ PFN_vkCreateDisplayModeKHR vkCreateDisplayModeKHR = 0;
+ PFN_vkGetDisplayPlaneCapabilitiesKHR vkGetDisplayPlaneCapabilitiesKHR = 0;
+ PFN_vkCreateDisplayPlaneSurfaceKHR vkCreateDisplayPlaneSurfaceKHR = 0;
+
+ //=== VK_KHR_display_swapchain ===
+ PFN_vkCreateSharedSwapchainsKHR vkCreateSharedSwapchainsKHR = 0;
+
+#if defined( VK_USE_PLATFORM_XLIB_KHR )
+ //=== VK_KHR_xlib_surface ===
+ PFN_vkCreateXlibSurfaceKHR vkCreateXlibSurfaceKHR = 0;
+ PFN_vkGetPhysicalDeviceXlibPresentationSupportKHR vkGetPhysicalDeviceXlibPresentationSupportKHR = 0;
#else
- PFN_dummy placeholder_dont_call_vkAcquireFullScreenExclusiveModeEXT = 0;
-#endif /*VK_USE_PLATFORM_WIN32_KHR*/
- PFN_vkAcquireNextImage2KHR vkAcquireNextImage2KHR = 0;
- PFN_vkAcquireNextImageKHR vkAcquireNextImageKHR = 0;
- PFN_vkAcquirePerformanceConfigurationINTEL vkAcquirePerformanceConfigurationINTEL = 0;
- PFN_vkAcquireProfilingLockKHR vkAcquireProfilingLockKHR = 0;
-#if defined( VK_USE_PLATFORM_WIN32_KHR )
- PFN_vkAcquireWinrtDisplayNV vkAcquireWinrtDisplayNV = 0;
+ PFN_dummy vkCreateXlibSurfaceKHR_placeholder = 0;
+ PFN_dummy vkGetPhysicalDeviceXlibPresentationSupportKHR_placeholder = 0;
+#endif /*VK_USE_PLATFORM_XLIB_KHR*/
+
+#if defined( VK_USE_PLATFORM_XCB_KHR )
+ //=== VK_KHR_xcb_surface ===
+ PFN_vkCreateXcbSurfaceKHR vkCreateXcbSurfaceKHR = 0;
+ PFN_vkGetPhysicalDeviceXcbPresentationSupportKHR vkGetPhysicalDeviceXcbPresentationSupportKHR = 0;
#else
- PFN_dummy placeholder_dont_call_vkAcquireWinrtDisplayNV = 0;
-#endif /*VK_USE_PLATFORM_WIN32_KHR*/
-#if defined( VK_USE_PLATFORM_XLIB_XRANDR_EXT )
- PFN_vkAcquireXlibDisplayEXT vkAcquireXlibDisplayEXT = 0;
+ PFN_dummy vkCreateXcbSurfaceKHR_placeholder = 0;
+ PFN_dummy vkGetPhysicalDeviceXcbPresentationSupportKHR_placeholder = 0;
+#endif /*VK_USE_PLATFORM_XCB_KHR*/
+
+#if defined( VK_USE_PLATFORM_WAYLAND_KHR )
+ //=== VK_KHR_wayland_surface ===
+ PFN_vkCreateWaylandSurfaceKHR vkCreateWaylandSurfaceKHR = 0;
+ PFN_vkGetPhysicalDeviceWaylandPresentationSupportKHR vkGetPhysicalDeviceWaylandPresentationSupportKHR = 0;
#else
- PFN_dummy placeholder_dont_call_vkAcquireXlibDisplayEXT = 0;
-#endif /*VK_USE_PLATFORM_XLIB_XRANDR_EXT*/
- PFN_vkAllocateCommandBuffers vkAllocateCommandBuffers = 0;
- PFN_vkAllocateDescriptorSets vkAllocateDescriptorSets = 0;
- PFN_vkAllocateMemory vkAllocateMemory = 0;
- PFN_vkBeginCommandBuffer vkBeginCommandBuffer = 0;
- PFN_vkBindAccelerationStructureMemoryNV vkBindAccelerationStructureMemoryNV = 0;
- PFN_vkBindBufferMemory vkBindBufferMemory = 0;
- PFN_vkBindBufferMemory2 vkBindBufferMemory2 = 0;
- PFN_vkBindBufferMemory2KHR vkBindBufferMemory2KHR = 0;
- PFN_vkBindImageMemory vkBindImageMemory = 0;
- PFN_vkBindImageMemory2 vkBindImageMemory2 = 0;
- PFN_vkBindImageMemory2KHR vkBindImageMemory2KHR = 0;
-#if defined( VK_ENABLE_BETA_EXTENSIONS )
- PFN_vkBindVideoSessionMemoryKHR vkBindVideoSessionMemoryKHR = 0;
+ PFN_dummy vkCreateWaylandSurfaceKHR_placeholder = 0;
+ PFN_dummy vkGetPhysicalDeviceWaylandPresentationSupportKHR_placeholder = 0;
+#endif /*VK_USE_PLATFORM_WAYLAND_KHR*/
+
+#if defined( VK_USE_PLATFORM_ANDROID_KHR )
+ //=== VK_KHR_android_surface ===
+ PFN_vkCreateAndroidSurfaceKHR vkCreateAndroidSurfaceKHR = 0;
#else
- PFN_dummy placeholder_dont_call_vkBindVideoSessionMemoryKHR = 0;
-#endif /*VK_ENABLE_BETA_EXTENSIONS*/
- PFN_vkBuildAccelerationStructuresKHR vkBuildAccelerationStructuresKHR = 0;
- PFN_vkCmdBeginConditionalRenderingEXT vkCmdBeginConditionalRenderingEXT = 0;
- PFN_vkCmdBeginDebugUtilsLabelEXT vkCmdBeginDebugUtilsLabelEXT = 0;
- PFN_vkCmdBeginQuery vkCmdBeginQuery = 0;
- PFN_vkCmdBeginQueryIndexedEXT vkCmdBeginQueryIndexedEXT = 0;
- PFN_vkCmdBeginRenderPass vkCmdBeginRenderPass = 0;
- PFN_vkCmdBeginRenderPass2 vkCmdBeginRenderPass2 = 0;
- PFN_vkCmdBeginRenderPass2KHR vkCmdBeginRenderPass2KHR = 0;
- PFN_vkCmdBeginTransformFeedbackEXT vkCmdBeginTransformFeedbackEXT = 0;
-#if defined( VK_ENABLE_BETA_EXTENSIONS )
- PFN_vkCmdBeginVideoCodingKHR vkCmdBeginVideoCodingKHR = 0;
+ PFN_dummy vkCreateAndroidSurfaceKHR_placeholder = 0;
+#endif /*VK_USE_PLATFORM_ANDROID_KHR*/
+
+#if defined( VK_USE_PLATFORM_WIN32_KHR )
+ //=== VK_KHR_win32_surface ===
+ PFN_vkCreateWin32SurfaceKHR vkCreateWin32SurfaceKHR = 0;
+ PFN_vkGetPhysicalDeviceWin32PresentationSupportKHR vkGetPhysicalDeviceWin32PresentationSupportKHR = 0;
#else
- PFN_dummy placeholder_dont_call_vkCmdBeginVideoCodingKHR = 0;
-#endif /*VK_ENABLE_BETA_EXTENSIONS*/
- PFN_vkCmdBindDescriptorSets vkCmdBindDescriptorSets = 0;
- PFN_vkCmdBindIndexBuffer vkCmdBindIndexBuffer = 0;
- PFN_vkCmdBindPipeline vkCmdBindPipeline = 0;
- PFN_vkCmdBindPipelineShaderGroupNV vkCmdBindPipelineShaderGroupNV = 0;
- PFN_vkCmdBindShadingRateImageNV vkCmdBindShadingRateImageNV = 0;
- PFN_vkCmdBindTransformFeedbackBuffersEXT vkCmdBindTransformFeedbackBuffersEXT = 0;
- PFN_vkCmdBindVertexBuffers vkCmdBindVertexBuffers = 0;
- PFN_vkCmdBindVertexBuffers2EXT vkCmdBindVertexBuffers2EXT = 0;
- PFN_vkCmdBlitImage vkCmdBlitImage = 0;
- PFN_vkCmdBlitImage2KHR vkCmdBlitImage2KHR = 0;
- PFN_vkCmdBuildAccelerationStructureNV vkCmdBuildAccelerationStructureNV = 0;
- PFN_vkCmdBuildAccelerationStructuresIndirectKHR vkCmdBuildAccelerationStructuresIndirectKHR = 0;
- PFN_vkCmdBuildAccelerationStructuresKHR vkCmdBuildAccelerationStructuresKHR = 0;
- PFN_vkCmdClearAttachments vkCmdClearAttachments = 0;
- PFN_vkCmdClearColorImage vkCmdClearColorImage = 0;
- PFN_vkCmdClearDepthStencilImage vkCmdClearDepthStencilImage = 0;
+ PFN_dummy vkCreateWin32SurfaceKHR_placeholder = 0;
+ PFN_dummy vkGetPhysicalDeviceWin32PresentationSupportKHR_placeholder = 0;
+#endif /*VK_USE_PLATFORM_WIN32_KHR*/
+
+ //=== VK_EXT_debug_report ===
+ PFN_vkCreateDebugReportCallbackEXT vkCreateDebugReportCallbackEXT = 0;
+ PFN_vkDestroyDebugReportCallbackEXT vkDestroyDebugReportCallbackEXT = 0;
+ PFN_vkDebugReportMessageEXT vkDebugReportMessageEXT = 0;
+
+ //=== VK_EXT_debug_marker ===
+ PFN_vkDebugMarkerSetObjectTagEXT vkDebugMarkerSetObjectTagEXT = 0;
+ PFN_vkDebugMarkerSetObjectNameEXT vkDebugMarkerSetObjectNameEXT = 0;
+ PFN_vkCmdDebugMarkerBeginEXT vkCmdDebugMarkerBeginEXT = 0;
+ PFN_vkCmdDebugMarkerEndEXT vkCmdDebugMarkerEndEXT = 0;
+ PFN_vkCmdDebugMarkerInsertEXT vkCmdDebugMarkerInsertEXT = 0;
+
#if defined( VK_ENABLE_BETA_EXTENSIONS )
- PFN_vkCmdControlVideoCodingKHR vkCmdControlVideoCodingKHR = 0;
+ //=== VK_KHR_video_queue ===
+ PFN_vkGetPhysicalDeviceVideoCapabilitiesKHR vkGetPhysicalDeviceVideoCapabilitiesKHR = 0;
+ PFN_vkGetPhysicalDeviceVideoFormatPropertiesKHR vkGetPhysicalDeviceVideoFormatPropertiesKHR = 0;
+ PFN_vkCreateVideoSessionKHR vkCreateVideoSessionKHR = 0;
+ PFN_vkDestroyVideoSessionKHR vkDestroyVideoSessionKHR = 0;
+ PFN_vkGetVideoSessionMemoryRequirementsKHR vkGetVideoSessionMemoryRequirementsKHR = 0;
+ PFN_vkBindVideoSessionMemoryKHR vkBindVideoSessionMemoryKHR = 0;
+ PFN_vkCreateVideoSessionParametersKHR vkCreateVideoSessionParametersKHR = 0;
+ PFN_vkUpdateVideoSessionParametersKHR vkUpdateVideoSessionParametersKHR = 0;
+ PFN_vkDestroyVideoSessionParametersKHR vkDestroyVideoSessionParametersKHR = 0;
+ PFN_vkCmdBeginVideoCodingKHR vkCmdBeginVideoCodingKHR = 0;
+ PFN_vkCmdEndVideoCodingKHR vkCmdEndVideoCodingKHR = 0;
+ PFN_vkCmdControlVideoCodingKHR vkCmdControlVideoCodingKHR = 0;
#else
- PFN_dummy placeholder_dont_call_vkCmdControlVideoCodingKHR = 0;
+ PFN_dummy vkGetPhysicalDeviceVideoCapabilitiesKHR_placeholder = 0;
+ PFN_dummy vkGetPhysicalDeviceVideoFormatPropertiesKHR_placeholder = 0;
+ PFN_dummy vkCreateVideoSessionKHR_placeholder = 0;
+ PFN_dummy vkDestroyVideoSessionKHR_placeholder = 0;
+ PFN_dummy vkGetVideoSessionMemoryRequirementsKHR_placeholder = 0;
+ PFN_dummy vkBindVideoSessionMemoryKHR_placeholder = 0;
+ PFN_dummy vkCreateVideoSessionParametersKHR_placeholder = 0;
+ PFN_dummy vkUpdateVideoSessionParametersKHR_placeholder = 0;
+ PFN_dummy vkDestroyVideoSessionParametersKHR_placeholder = 0;
+ PFN_dummy vkCmdBeginVideoCodingKHR_placeholder = 0;
+ PFN_dummy vkCmdEndVideoCodingKHR_placeholder = 0;
+ PFN_dummy vkCmdControlVideoCodingKHR_placeholder = 0;
#endif /*VK_ENABLE_BETA_EXTENSIONS*/
- PFN_vkCmdCopyAccelerationStructureKHR vkCmdCopyAccelerationStructureKHR = 0;
- PFN_vkCmdCopyAccelerationStructureNV vkCmdCopyAccelerationStructureNV = 0;
- PFN_vkCmdCopyAccelerationStructureToMemoryKHR vkCmdCopyAccelerationStructureToMemoryKHR = 0;
- PFN_vkCmdCopyBuffer vkCmdCopyBuffer = 0;
- PFN_vkCmdCopyBuffer2KHR vkCmdCopyBuffer2KHR = 0;
- PFN_vkCmdCopyBufferToImage vkCmdCopyBufferToImage = 0;
- PFN_vkCmdCopyBufferToImage2KHR vkCmdCopyBufferToImage2KHR = 0;
- PFN_vkCmdCopyImage vkCmdCopyImage = 0;
- PFN_vkCmdCopyImage2KHR vkCmdCopyImage2KHR = 0;
- PFN_vkCmdCopyImageToBuffer vkCmdCopyImageToBuffer = 0;
- PFN_vkCmdCopyImageToBuffer2KHR vkCmdCopyImageToBuffer2KHR = 0;
- PFN_vkCmdCopyMemoryToAccelerationStructureKHR vkCmdCopyMemoryToAccelerationStructureKHR = 0;
- PFN_vkCmdCopyQueryPoolResults vkCmdCopyQueryPoolResults = 0;
- PFN_vkCmdCuLaunchKernelNVX vkCmdCuLaunchKernelNVX = 0;
- PFN_vkCmdDebugMarkerBeginEXT vkCmdDebugMarkerBeginEXT = 0;
- PFN_vkCmdDebugMarkerEndEXT vkCmdDebugMarkerEndEXT = 0;
- PFN_vkCmdDebugMarkerInsertEXT vkCmdDebugMarkerInsertEXT = 0;
+
#if defined( VK_ENABLE_BETA_EXTENSIONS )
+ //=== VK_KHR_video_decode_queue ===
PFN_vkCmdDecodeVideoKHR vkCmdDecodeVideoKHR = 0;
#else
- PFN_dummy placeholder_dont_call_vkCmdDecodeVideoKHR = 0;
-#endif /*VK_ENABLE_BETA_EXTENSIONS*/
- PFN_vkCmdDispatch vkCmdDispatch = 0;
- PFN_vkCmdDispatchBase vkCmdDispatchBase = 0;
- PFN_vkCmdDispatchBaseKHR vkCmdDispatchBaseKHR = 0;
- PFN_vkCmdDispatchIndirect vkCmdDispatchIndirect = 0;
- PFN_vkCmdDraw vkCmdDraw = 0;
- PFN_vkCmdDrawIndexed vkCmdDrawIndexed = 0;
- PFN_vkCmdDrawIndexedIndirect vkCmdDrawIndexedIndirect = 0;
- PFN_vkCmdDrawIndexedIndirectCount vkCmdDrawIndexedIndirectCount = 0;
- PFN_vkCmdDrawIndexedIndirectCountAMD vkCmdDrawIndexedIndirectCountAMD = 0;
- PFN_vkCmdDrawIndexedIndirectCountKHR vkCmdDrawIndexedIndirectCountKHR = 0;
- PFN_vkCmdDrawIndirect vkCmdDrawIndirect = 0;
- PFN_vkCmdDrawIndirectByteCountEXT vkCmdDrawIndirectByteCountEXT = 0;
- PFN_vkCmdDrawIndirectCount vkCmdDrawIndirectCount = 0;
- PFN_vkCmdDrawIndirectCountAMD vkCmdDrawIndirectCountAMD = 0;
- PFN_vkCmdDrawIndirectCountKHR vkCmdDrawIndirectCountKHR = 0;
- PFN_vkCmdDrawMeshTasksIndirectCountNV vkCmdDrawMeshTasksIndirectCountNV = 0;
- PFN_vkCmdDrawMeshTasksIndirectNV vkCmdDrawMeshTasksIndirectNV = 0;
- PFN_vkCmdDrawMeshTasksNV vkCmdDrawMeshTasksNV = 0;
- PFN_vkCmdDrawMultiEXT vkCmdDrawMultiEXT = 0;
- PFN_vkCmdDrawMultiIndexedEXT vkCmdDrawMultiIndexedEXT = 0;
-#if defined( VK_ENABLE_BETA_EXTENSIONS )
- PFN_vkCmdEncodeVideoKHR vkCmdEncodeVideoKHR = 0;
-#else
- PFN_dummy placeholder_dont_call_vkCmdEncodeVideoKHR = 0;
-#endif /*VK_ENABLE_BETA_EXTENSIONS*/
- PFN_vkCmdEndConditionalRenderingEXT vkCmdEndConditionalRenderingEXT = 0;
- PFN_vkCmdEndDebugUtilsLabelEXT vkCmdEndDebugUtilsLabelEXT = 0;
- PFN_vkCmdEndQuery vkCmdEndQuery = 0;
- PFN_vkCmdEndQueryIndexedEXT vkCmdEndQueryIndexedEXT = 0;
- PFN_vkCmdEndRenderPass vkCmdEndRenderPass = 0;
- PFN_vkCmdEndRenderPass2 vkCmdEndRenderPass2 = 0;
- PFN_vkCmdEndRenderPass2KHR vkCmdEndRenderPass2KHR = 0;
- PFN_vkCmdEndTransformFeedbackEXT vkCmdEndTransformFeedbackEXT = 0;
-#if defined( VK_ENABLE_BETA_EXTENSIONS )
- PFN_vkCmdEndVideoCodingKHR vkCmdEndVideoCodingKHR = 0;
-#else
- PFN_dummy placeholder_dont_call_vkCmdEndVideoCodingKHR = 0;
+ PFN_dummy vkCmdDecodeVideoKHR_placeholder = 0;
#endif /*VK_ENABLE_BETA_EXTENSIONS*/
- PFN_vkCmdExecuteCommands vkCmdExecuteCommands = 0;
- PFN_vkCmdExecuteGeneratedCommandsNV vkCmdExecuteGeneratedCommandsNV = 0;
- PFN_vkCmdFillBuffer vkCmdFillBuffer = 0;
- PFN_vkCmdInsertDebugUtilsLabelEXT vkCmdInsertDebugUtilsLabelEXT = 0;
- PFN_vkCmdNextSubpass vkCmdNextSubpass = 0;
- PFN_vkCmdNextSubpass2 vkCmdNextSubpass2 = 0;
- PFN_vkCmdNextSubpass2KHR vkCmdNextSubpass2KHR = 0;
- PFN_vkCmdPipelineBarrier vkCmdPipelineBarrier = 0;
- PFN_vkCmdPipelineBarrier2KHR vkCmdPipelineBarrier2KHR = 0;
- PFN_vkCmdPreprocessGeneratedCommandsNV vkCmdPreprocessGeneratedCommandsNV = 0;
- PFN_vkCmdPushConstants vkCmdPushConstants = 0;
- PFN_vkCmdPushDescriptorSetKHR vkCmdPushDescriptorSetKHR = 0;
- PFN_vkCmdPushDescriptorSetWithTemplateKHR vkCmdPushDescriptorSetWithTemplateKHR = 0;
- PFN_vkCmdResetEvent vkCmdResetEvent = 0;
- PFN_vkCmdResetEvent2KHR vkCmdResetEvent2KHR = 0;
- PFN_vkCmdResetQueryPool vkCmdResetQueryPool = 0;
- PFN_vkCmdResolveImage vkCmdResolveImage = 0;
- PFN_vkCmdResolveImage2KHR vkCmdResolveImage2KHR = 0;
- PFN_vkCmdSetBlendConstants vkCmdSetBlendConstants = 0;
- PFN_vkCmdSetCheckpointNV vkCmdSetCheckpointNV = 0;
- PFN_vkCmdSetCoarseSampleOrderNV vkCmdSetCoarseSampleOrderNV = 0;
- PFN_vkCmdSetColorWriteEnableEXT vkCmdSetColorWriteEnableEXT = 0;
- PFN_vkCmdSetCullModeEXT vkCmdSetCullModeEXT = 0;
- PFN_vkCmdSetDepthBias vkCmdSetDepthBias = 0;
- PFN_vkCmdSetDepthBiasEnableEXT vkCmdSetDepthBiasEnableEXT = 0;
- PFN_vkCmdSetDepthBounds vkCmdSetDepthBounds = 0;
- PFN_vkCmdSetDepthBoundsTestEnableEXT vkCmdSetDepthBoundsTestEnableEXT = 0;
- PFN_vkCmdSetDepthCompareOpEXT vkCmdSetDepthCompareOpEXT = 0;
- PFN_vkCmdSetDepthTestEnableEXT vkCmdSetDepthTestEnableEXT = 0;
- PFN_vkCmdSetDepthWriteEnableEXT vkCmdSetDepthWriteEnableEXT = 0;
- PFN_vkCmdSetDeviceMask vkCmdSetDeviceMask = 0;
- PFN_vkCmdSetDeviceMaskKHR vkCmdSetDeviceMaskKHR = 0;
- PFN_vkCmdSetDiscardRectangleEXT vkCmdSetDiscardRectangleEXT = 0;
- PFN_vkCmdSetEvent vkCmdSetEvent = 0;
- PFN_vkCmdSetEvent2KHR vkCmdSetEvent2KHR = 0;
- PFN_vkCmdSetExclusiveScissorNV vkCmdSetExclusiveScissorNV = 0;
- PFN_vkCmdSetFragmentShadingRateEnumNV vkCmdSetFragmentShadingRateEnumNV = 0;
- PFN_vkCmdSetFragmentShadingRateKHR vkCmdSetFragmentShadingRateKHR = 0;
- PFN_vkCmdSetFrontFaceEXT vkCmdSetFrontFaceEXT = 0;
- PFN_vkCmdSetLineStippleEXT vkCmdSetLineStippleEXT = 0;
- PFN_vkCmdSetLineWidth vkCmdSetLineWidth = 0;
- PFN_vkCmdSetLogicOpEXT vkCmdSetLogicOpEXT = 0;
- PFN_vkCmdSetPatchControlPointsEXT vkCmdSetPatchControlPointsEXT = 0;
- PFN_vkCmdSetPerformanceMarkerINTEL vkCmdSetPerformanceMarkerINTEL = 0;
- PFN_vkCmdSetPerformanceOverrideINTEL vkCmdSetPerformanceOverrideINTEL = 0;
- PFN_vkCmdSetPerformanceStreamMarkerINTEL vkCmdSetPerformanceStreamMarkerINTEL = 0;
- PFN_vkCmdSetPrimitiveRestartEnableEXT vkCmdSetPrimitiveRestartEnableEXT = 0;
- PFN_vkCmdSetPrimitiveTopologyEXT vkCmdSetPrimitiveTopologyEXT = 0;
- PFN_vkCmdSetRasterizerDiscardEnableEXT vkCmdSetRasterizerDiscardEnableEXT = 0;
- PFN_vkCmdSetRayTracingPipelineStackSizeKHR vkCmdSetRayTracingPipelineStackSizeKHR = 0;
- PFN_vkCmdSetSampleLocationsEXT vkCmdSetSampleLocationsEXT = 0;
- PFN_vkCmdSetScissor vkCmdSetScissor = 0;
- PFN_vkCmdSetScissorWithCountEXT vkCmdSetScissorWithCountEXT = 0;
- PFN_vkCmdSetStencilCompareMask vkCmdSetStencilCompareMask = 0;
- PFN_vkCmdSetStencilOpEXT vkCmdSetStencilOpEXT = 0;
- PFN_vkCmdSetStencilReference vkCmdSetStencilReference = 0;
- PFN_vkCmdSetStencilTestEnableEXT vkCmdSetStencilTestEnableEXT = 0;
- PFN_vkCmdSetStencilWriteMask vkCmdSetStencilWriteMask = 0;
- PFN_vkCmdSetVertexInputEXT vkCmdSetVertexInputEXT = 0;
- PFN_vkCmdSetViewport vkCmdSetViewport = 0;
- PFN_vkCmdSetViewportShadingRatePaletteNV vkCmdSetViewportShadingRatePaletteNV = 0;
- PFN_vkCmdSetViewportWScalingNV vkCmdSetViewportWScalingNV = 0;
- PFN_vkCmdSetViewportWithCountEXT vkCmdSetViewportWithCountEXT = 0;
- PFN_vkCmdSubpassShadingHUAWEI vkCmdSubpassShadingHUAWEI = 0;
- PFN_vkCmdTraceRaysIndirectKHR vkCmdTraceRaysIndirectKHR = 0;
- PFN_vkCmdTraceRaysKHR vkCmdTraceRaysKHR = 0;
- PFN_vkCmdTraceRaysNV vkCmdTraceRaysNV = 0;
- PFN_vkCmdUpdateBuffer vkCmdUpdateBuffer = 0;
- PFN_vkCmdWaitEvents vkCmdWaitEvents = 0;
- PFN_vkCmdWaitEvents2KHR vkCmdWaitEvents2KHR = 0;
- PFN_vkCmdWriteAccelerationStructuresPropertiesKHR vkCmdWriteAccelerationStructuresPropertiesKHR = 0;
- PFN_vkCmdWriteAccelerationStructuresPropertiesNV vkCmdWriteAccelerationStructuresPropertiesNV = 0;
- PFN_vkCmdWriteBufferMarker2AMD vkCmdWriteBufferMarker2AMD = 0;
- PFN_vkCmdWriteBufferMarkerAMD vkCmdWriteBufferMarkerAMD = 0;
- PFN_vkCmdWriteTimestamp vkCmdWriteTimestamp = 0;
- PFN_vkCmdWriteTimestamp2KHR vkCmdWriteTimestamp2KHR = 0;
- PFN_vkCompileDeferredNV vkCompileDeferredNV = 0;
- PFN_vkCopyAccelerationStructureKHR vkCopyAccelerationStructureKHR = 0;
- PFN_vkCopyAccelerationStructureToMemoryKHR vkCopyAccelerationStructureToMemoryKHR = 0;
- PFN_vkCopyMemoryToAccelerationStructureKHR vkCopyMemoryToAccelerationStructureKHR = 0;
- PFN_vkCreateAccelerationStructureKHR vkCreateAccelerationStructureKHR = 0;
- PFN_vkCreateAccelerationStructureNV vkCreateAccelerationStructureNV = 0;
-#if defined( VK_USE_PLATFORM_ANDROID_KHR )
- PFN_vkCreateAndroidSurfaceKHR vkCreateAndroidSurfaceKHR = 0;
-#else
- PFN_dummy placeholder_dont_call_vkCreateAndroidSurfaceKHR = 0;
-#endif /*VK_USE_PLATFORM_ANDROID_KHR*/
- PFN_vkCreateBuffer vkCreateBuffer = 0;
- PFN_vkCreateBufferView vkCreateBufferView = 0;
- PFN_vkCreateCommandPool vkCreateCommandPool = 0;
- PFN_vkCreateComputePipelines vkCreateComputePipelines = 0;
- PFN_vkCreateCuFunctionNVX vkCreateCuFunctionNVX = 0;
- PFN_vkCreateCuModuleNVX vkCreateCuModuleNVX = 0;
- PFN_vkCreateDebugReportCallbackEXT vkCreateDebugReportCallbackEXT = 0;
- PFN_vkCreateDebugUtilsMessengerEXT vkCreateDebugUtilsMessengerEXT = 0;
- PFN_vkCreateDeferredOperationKHR vkCreateDeferredOperationKHR = 0;
- PFN_vkCreateDescriptorPool vkCreateDescriptorPool = 0;
- PFN_vkCreateDescriptorSetLayout vkCreateDescriptorSetLayout = 0;
- PFN_vkCreateDescriptorUpdateTemplate vkCreateDescriptorUpdateTemplate = 0;
- PFN_vkCreateDescriptorUpdateTemplateKHR vkCreateDescriptorUpdateTemplateKHR = 0;
- PFN_vkCreateDevice vkCreateDevice = 0;
-#if defined( VK_USE_PLATFORM_DIRECTFB_EXT )
- PFN_vkCreateDirectFBSurfaceEXT vkCreateDirectFBSurfaceEXT = 0;
-#else
- PFN_dummy placeholder_dont_call_vkCreateDirectFBSurfaceEXT = 0;
-#endif /*VK_USE_PLATFORM_DIRECTFB_EXT*/
- PFN_vkCreateDisplayModeKHR vkCreateDisplayModeKHR = 0;
- PFN_vkCreateDisplayPlaneSurfaceKHR vkCreateDisplayPlaneSurfaceKHR = 0;
- PFN_vkCreateEvent vkCreateEvent = 0;
- PFN_vkCreateFence vkCreateFence = 0;
- PFN_vkCreateFramebuffer vkCreateFramebuffer = 0;
- PFN_vkCreateGraphicsPipelines vkCreateGraphicsPipelines = 0;
- PFN_vkCreateHeadlessSurfaceEXT vkCreateHeadlessSurfaceEXT = 0;
-#if defined( VK_USE_PLATFORM_IOS_MVK )
- PFN_vkCreateIOSSurfaceMVK vkCreateIOSSurfaceMVK = 0;
-#else
- PFN_dummy placeholder_dont_call_vkCreateIOSSurfaceMVK = 0;
-#endif /*VK_USE_PLATFORM_IOS_MVK*/
- PFN_vkCreateImage vkCreateImage = 0;
-#if defined( VK_USE_PLATFORM_FUCHSIA )
- PFN_vkCreateImagePipeSurfaceFUCHSIA vkCreateImagePipeSurfaceFUCHSIA = 0;
-#else
- PFN_dummy placeholder_dont_call_vkCreateImagePipeSurfaceFUCHSIA = 0;
-#endif /*VK_USE_PLATFORM_FUCHSIA*/
- PFN_vkCreateImageView vkCreateImageView = 0;
- PFN_vkCreateIndirectCommandsLayoutNV vkCreateIndirectCommandsLayoutNV = 0;
- PFN_vkCreateInstance vkCreateInstance = 0;
-#if defined( VK_USE_PLATFORM_MACOS_MVK )
- PFN_vkCreateMacOSSurfaceMVK vkCreateMacOSSurfaceMVK = 0;
-#else
- PFN_dummy placeholder_dont_call_vkCreateMacOSSurfaceMVK = 0;
-#endif /*VK_USE_PLATFORM_MACOS_MVK*/
-#if defined( VK_USE_PLATFORM_METAL_EXT )
- PFN_vkCreateMetalSurfaceEXT vkCreateMetalSurfaceEXT = 0;
-#else
- PFN_dummy placeholder_dont_call_vkCreateMetalSurfaceEXT = 0;
-#endif /*VK_USE_PLATFORM_METAL_EXT*/
- PFN_vkCreatePipelineCache vkCreatePipelineCache = 0;
- PFN_vkCreatePipelineLayout vkCreatePipelineLayout = 0;
- PFN_vkCreatePrivateDataSlotEXT vkCreatePrivateDataSlotEXT = 0;
- PFN_vkCreateQueryPool vkCreateQueryPool = 0;
- PFN_vkCreateRayTracingPipelinesKHR vkCreateRayTracingPipelinesKHR = 0;
- PFN_vkCreateRayTracingPipelinesNV vkCreateRayTracingPipelinesNV = 0;
- PFN_vkCreateRenderPass vkCreateRenderPass = 0;
- PFN_vkCreateRenderPass2 vkCreateRenderPass2 = 0;
- PFN_vkCreateRenderPass2KHR vkCreateRenderPass2KHR = 0;
- PFN_vkCreateSampler vkCreateSampler = 0;
- PFN_vkCreateSamplerYcbcrConversion vkCreateSamplerYcbcrConversion = 0;
- PFN_vkCreateSamplerYcbcrConversionKHR vkCreateSamplerYcbcrConversionKHR = 0;
-#if defined( VK_USE_PLATFORM_SCREEN_QNX )
- PFN_vkCreateScreenSurfaceQNX vkCreateScreenSurfaceQNX = 0;
-#else
- PFN_dummy placeholder_dont_call_vkCreateScreenSurfaceQNX = 0;
-#endif /*VK_USE_PLATFORM_SCREEN_QNX*/
- PFN_vkCreateSemaphore vkCreateSemaphore = 0;
- PFN_vkCreateShaderModule vkCreateShaderModule = 0;
- PFN_vkCreateSharedSwapchainsKHR vkCreateSharedSwapchainsKHR = 0;
+
+ //=== VK_EXT_transform_feedback ===
+ PFN_vkCmdBindTransformFeedbackBuffersEXT vkCmdBindTransformFeedbackBuffersEXT = 0;
+ PFN_vkCmdBeginTransformFeedbackEXT vkCmdBeginTransformFeedbackEXT = 0;
+ PFN_vkCmdEndTransformFeedbackEXT vkCmdEndTransformFeedbackEXT = 0;
+ PFN_vkCmdBeginQueryIndexedEXT vkCmdBeginQueryIndexedEXT = 0;
+ PFN_vkCmdEndQueryIndexedEXT vkCmdEndQueryIndexedEXT = 0;
+ PFN_vkCmdDrawIndirectByteCountEXT vkCmdDrawIndirectByteCountEXT = 0;
+
+ //=== VK_NVX_binary_import ===
+ PFN_vkCreateCuModuleNVX vkCreateCuModuleNVX = 0;
+ PFN_vkCreateCuFunctionNVX vkCreateCuFunctionNVX = 0;
+ PFN_vkDestroyCuModuleNVX vkDestroyCuModuleNVX = 0;
+ PFN_vkDestroyCuFunctionNVX vkDestroyCuFunctionNVX = 0;
+ PFN_vkCmdCuLaunchKernelNVX vkCmdCuLaunchKernelNVX = 0;
+
+ //=== VK_NVX_image_view_handle ===
+ PFN_vkGetImageViewHandleNVX vkGetImageViewHandleNVX = 0;
+ PFN_vkGetImageViewAddressNVX vkGetImageViewAddressNVX = 0;
+
+ //=== VK_AMD_draw_indirect_count ===
+ PFN_vkCmdDrawIndirectCountAMD vkCmdDrawIndirectCountAMD = 0;
+ PFN_vkCmdDrawIndexedIndirectCountAMD vkCmdDrawIndexedIndirectCountAMD = 0;
+
+ //=== VK_AMD_shader_info ===
+ PFN_vkGetShaderInfoAMD vkGetShaderInfoAMD = 0;
+
#if defined( VK_USE_PLATFORM_GGP )
+ //=== VK_GGP_stream_descriptor_surface ===
PFN_vkCreateStreamDescriptorSurfaceGGP vkCreateStreamDescriptorSurfaceGGP = 0;
#else
- PFN_dummy placeholder_dont_call_vkCreateStreamDescriptorSurfaceGGP = 0;
+ PFN_dummy vkCreateStreamDescriptorSurfaceGGP_placeholder = 0;
#endif /*VK_USE_PLATFORM_GGP*/
- PFN_vkCreateSwapchainKHR vkCreateSwapchainKHR = 0;
- PFN_vkCreateValidationCacheEXT vkCreateValidationCacheEXT = 0;
+
+ //=== VK_NV_external_memory_capabilities ===
+ PFN_vkGetPhysicalDeviceExternalImageFormatPropertiesNV vkGetPhysicalDeviceExternalImageFormatPropertiesNV = 0;
+
+#if defined( VK_USE_PLATFORM_WIN32_KHR )
+ //=== VK_NV_external_memory_win32 ===
+ PFN_vkGetMemoryWin32HandleNV vkGetMemoryWin32HandleNV = 0;
+#else
+ PFN_dummy vkGetMemoryWin32HandleNV_placeholder = 0;
+#endif /*VK_USE_PLATFORM_WIN32_KHR*/
+
+ //=== VK_KHR_get_physical_device_properties2 ===
+ PFN_vkGetPhysicalDeviceFeatures2KHR vkGetPhysicalDeviceFeatures2KHR = 0;
+ PFN_vkGetPhysicalDeviceProperties2KHR vkGetPhysicalDeviceProperties2KHR = 0;
+ PFN_vkGetPhysicalDeviceFormatProperties2KHR vkGetPhysicalDeviceFormatProperties2KHR = 0;
+ PFN_vkGetPhysicalDeviceImageFormatProperties2KHR vkGetPhysicalDeviceImageFormatProperties2KHR = 0;
+ PFN_vkGetPhysicalDeviceQueueFamilyProperties2KHR vkGetPhysicalDeviceQueueFamilyProperties2KHR = 0;
+ PFN_vkGetPhysicalDeviceMemoryProperties2KHR vkGetPhysicalDeviceMemoryProperties2KHR = 0;
+ PFN_vkGetPhysicalDeviceSparseImageFormatProperties2KHR vkGetPhysicalDeviceSparseImageFormatProperties2KHR = 0;
+
+ //=== VK_KHR_device_group ===
+ PFN_vkGetDeviceGroupPeerMemoryFeaturesKHR vkGetDeviceGroupPeerMemoryFeaturesKHR = 0;
+ PFN_vkCmdSetDeviceMaskKHR vkCmdSetDeviceMaskKHR = 0;
+ PFN_vkCmdDispatchBaseKHR vkCmdDispatchBaseKHR = 0;
+
#if defined( VK_USE_PLATFORM_VI_NN )
+ //=== VK_NN_vi_surface ===
PFN_vkCreateViSurfaceNN vkCreateViSurfaceNN = 0;
#else
- PFN_dummy placeholder_dont_call_vkCreateViSurfaceNN = 0;
+ PFN_dummy vkCreateViSurfaceNN_placeholder = 0;
#endif /*VK_USE_PLATFORM_VI_NN*/
-#if defined( VK_ENABLE_BETA_EXTENSIONS )
- PFN_vkCreateVideoSessionKHR vkCreateVideoSessionKHR = 0;
-#else
- PFN_dummy placeholder_dont_call_vkCreateVideoSessionKHR = 0;
-#endif /*VK_ENABLE_BETA_EXTENSIONS*/
-#if defined( VK_ENABLE_BETA_EXTENSIONS )
- PFN_vkCreateVideoSessionParametersKHR vkCreateVideoSessionParametersKHR = 0;
-#else
- PFN_dummy placeholder_dont_call_vkCreateVideoSessionParametersKHR = 0;
-#endif /*VK_ENABLE_BETA_EXTENSIONS*/
-#if defined( VK_USE_PLATFORM_WAYLAND_KHR )
- PFN_vkCreateWaylandSurfaceKHR vkCreateWaylandSurfaceKHR = 0;
-#else
- PFN_dummy placeholder_dont_call_vkCreateWaylandSurfaceKHR = 0;
-#endif /*VK_USE_PLATFORM_WAYLAND_KHR*/
+
+ //=== VK_KHR_maintenance1 ===
+ PFN_vkTrimCommandPoolKHR vkTrimCommandPoolKHR = 0;
+
+ //=== VK_KHR_device_group_creation ===
+ PFN_vkEnumeratePhysicalDeviceGroupsKHR vkEnumeratePhysicalDeviceGroupsKHR = 0;
+
+ //=== VK_KHR_external_memory_capabilities ===
+ PFN_vkGetPhysicalDeviceExternalBufferPropertiesKHR vkGetPhysicalDeviceExternalBufferPropertiesKHR = 0;
+
#if defined( VK_USE_PLATFORM_WIN32_KHR )
- PFN_vkCreateWin32SurfaceKHR vkCreateWin32SurfaceKHR = 0;
+ //=== VK_KHR_external_memory_win32 ===
+ PFN_vkGetMemoryWin32HandleKHR vkGetMemoryWin32HandleKHR = 0;
+ PFN_vkGetMemoryWin32HandlePropertiesKHR vkGetMemoryWin32HandlePropertiesKHR = 0;
#else
- PFN_dummy placeholder_dont_call_vkCreateWin32SurfaceKHR = 0;
+ PFN_dummy vkGetMemoryWin32HandleKHR_placeholder = 0;
+ PFN_dummy vkGetMemoryWin32HandlePropertiesKHR_placeholder = 0;
#endif /*VK_USE_PLATFORM_WIN32_KHR*/
-#if defined( VK_USE_PLATFORM_XCB_KHR )
- PFN_vkCreateXcbSurfaceKHR vkCreateXcbSurfaceKHR = 0;
-#else
- PFN_dummy placeholder_dont_call_vkCreateXcbSurfaceKHR = 0;
-#endif /*VK_USE_PLATFORM_XCB_KHR*/
-#if defined( VK_USE_PLATFORM_XLIB_KHR )
- PFN_vkCreateXlibSurfaceKHR vkCreateXlibSurfaceKHR = 0;
+
+ //=== VK_KHR_external_memory_fd ===
+ PFN_vkGetMemoryFdKHR vkGetMemoryFdKHR = 0;
+ PFN_vkGetMemoryFdPropertiesKHR vkGetMemoryFdPropertiesKHR = 0;
+
+ //=== VK_KHR_external_semaphore_capabilities ===
+ PFN_vkGetPhysicalDeviceExternalSemaphorePropertiesKHR vkGetPhysicalDeviceExternalSemaphorePropertiesKHR = 0;
+
+#if defined( VK_USE_PLATFORM_WIN32_KHR )
+ //=== VK_KHR_external_semaphore_win32 ===
+ PFN_vkImportSemaphoreWin32HandleKHR vkImportSemaphoreWin32HandleKHR = 0;
+ PFN_vkGetSemaphoreWin32HandleKHR vkGetSemaphoreWin32HandleKHR = 0;
#else
- PFN_dummy placeholder_dont_call_vkCreateXlibSurfaceKHR = 0;
-#endif /*VK_USE_PLATFORM_XLIB_KHR*/
- PFN_vkDebugMarkerSetObjectNameEXT vkDebugMarkerSetObjectNameEXT = 0;
- PFN_vkDebugMarkerSetObjectTagEXT vkDebugMarkerSetObjectTagEXT = 0;
- PFN_vkDebugReportMessageEXT vkDebugReportMessageEXT = 0;
- PFN_vkDeferredOperationJoinKHR vkDeferredOperationJoinKHR = 0;
- PFN_vkDestroyAccelerationStructureKHR vkDestroyAccelerationStructureKHR = 0;
- PFN_vkDestroyAccelerationStructureNV vkDestroyAccelerationStructureNV = 0;
- PFN_vkDestroyBuffer vkDestroyBuffer = 0;
- PFN_vkDestroyBufferView vkDestroyBufferView = 0;
- PFN_vkDestroyCommandPool vkDestroyCommandPool = 0;
- PFN_vkDestroyCuFunctionNVX vkDestroyCuFunctionNVX = 0;
- PFN_vkDestroyCuModuleNVX vkDestroyCuModuleNVX = 0;
- PFN_vkDestroyDebugReportCallbackEXT vkDestroyDebugReportCallbackEXT = 0;
- PFN_vkDestroyDebugUtilsMessengerEXT vkDestroyDebugUtilsMessengerEXT = 0;
- PFN_vkDestroyDeferredOperationKHR vkDestroyDeferredOperationKHR = 0;
- PFN_vkDestroyDescriptorPool vkDestroyDescriptorPool = 0;
- PFN_vkDestroyDescriptorSetLayout vkDestroyDescriptorSetLayout = 0;
- PFN_vkDestroyDescriptorUpdateTemplate vkDestroyDescriptorUpdateTemplate = 0;
+ PFN_dummy vkImportSemaphoreWin32HandleKHR_placeholder = 0;
+ PFN_dummy vkGetSemaphoreWin32HandleKHR_placeholder = 0;
+#endif /*VK_USE_PLATFORM_WIN32_KHR*/
+
+ //=== VK_KHR_external_semaphore_fd ===
+ PFN_vkImportSemaphoreFdKHR vkImportSemaphoreFdKHR = 0;
+ PFN_vkGetSemaphoreFdKHR vkGetSemaphoreFdKHR = 0;
+
+ //=== VK_KHR_push_descriptor ===
+ PFN_vkCmdPushDescriptorSetKHR vkCmdPushDescriptorSetKHR = 0;
+ PFN_vkCmdPushDescriptorSetWithTemplateKHR vkCmdPushDescriptorSetWithTemplateKHR = 0;
+
+ //=== VK_EXT_conditional_rendering ===
+ PFN_vkCmdBeginConditionalRenderingEXT vkCmdBeginConditionalRenderingEXT = 0;
+ PFN_vkCmdEndConditionalRenderingEXT vkCmdEndConditionalRenderingEXT = 0;
+
+ //=== VK_KHR_descriptor_update_template ===
+ PFN_vkCreateDescriptorUpdateTemplateKHR vkCreateDescriptorUpdateTemplateKHR = 0;
PFN_vkDestroyDescriptorUpdateTemplateKHR vkDestroyDescriptorUpdateTemplateKHR = 0;
- PFN_vkDestroyDevice vkDestroyDevice = 0;
- PFN_vkDestroyEvent vkDestroyEvent = 0;
- PFN_vkDestroyFence vkDestroyFence = 0;
- PFN_vkDestroyFramebuffer vkDestroyFramebuffer = 0;
- PFN_vkDestroyImage vkDestroyImage = 0;
- PFN_vkDestroyImageView vkDestroyImageView = 0;
- PFN_vkDestroyIndirectCommandsLayoutNV vkDestroyIndirectCommandsLayoutNV = 0;
- PFN_vkDestroyInstance vkDestroyInstance = 0;
- PFN_vkDestroyPipeline vkDestroyPipeline = 0;
- PFN_vkDestroyPipelineCache vkDestroyPipelineCache = 0;
- PFN_vkDestroyPipelineLayout vkDestroyPipelineLayout = 0;
- PFN_vkDestroyPrivateDataSlotEXT vkDestroyPrivateDataSlotEXT = 0;
- PFN_vkDestroyQueryPool vkDestroyQueryPool = 0;
- PFN_vkDestroyRenderPass vkDestroyRenderPass = 0;
- PFN_vkDestroySampler vkDestroySampler = 0;
- PFN_vkDestroySamplerYcbcrConversion vkDestroySamplerYcbcrConversion = 0;
- PFN_vkDestroySamplerYcbcrConversionKHR vkDestroySamplerYcbcrConversionKHR = 0;
- PFN_vkDestroySemaphore vkDestroySemaphore = 0;
- PFN_vkDestroyShaderModule vkDestroyShaderModule = 0;
- PFN_vkDestroySurfaceKHR vkDestroySurfaceKHR = 0;
- PFN_vkDestroySwapchainKHR vkDestroySwapchainKHR = 0;
- PFN_vkDestroyValidationCacheEXT vkDestroyValidationCacheEXT = 0;
-#if defined( VK_ENABLE_BETA_EXTENSIONS )
- PFN_vkDestroyVideoSessionKHR vkDestroyVideoSessionKHR = 0;
-#else
- PFN_dummy placeholder_dont_call_vkDestroyVideoSessionKHR = 0;
-#endif /*VK_ENABLE_BETA_EXTENSIONS*/
-#if defined( VK_ENABLE_BETA_EXTENSIONS )
- PFN_vkDestroyVideoSessionParametersKHR vkDestroyVideoSessionParametersKHR = 0;
-#else
- PFN_dummy placeholder_dont_call_vkDestroyVideoSessionParametersKHR = 0;
-#endif /*VK_ENABLE_BETA_EXTENSIONS*/
- PFN_vkDeviceWaitIdle vkDeviceWaitIdle = 0;
- PFN_vkDisplayPowerControlEXT vkDisplayPowerControlEXT = 0;
- PFN_vkEndCommandBuffer vkEndCommandBuffer = 0;
- PFN_vkEnumerateDeviceExtensionProperties vkEnumerateDeviceExtensionProperties = 0;
- PFN_vkEnumerateDeviceLayerProperties vkEnumerateDeviceLayerProperties = 0;
- PFN_vkEnumerateInstanceExtensionProperties vkEnumerateInstanceExtensionProperties = 0;
- PFN_vkEnumerateInstanceLayerProperties vkEnumerateInstanceLayerProperties = 0;
- PFN_vkEnumerateInstanceVersion vkEnumerateInstanceVersion = 0;
- PFN_vkEnumeratePhysicalDeviceGroups vkEnumeratePhysicalDeviceGroups = 0;
- PFN_vkEnumeratePhysicalDeviceGroupsKHR vkEnumeratePhysicalDeviceGroupsKHR = 0;
- PFN_vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR
- vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR = 0;
- PFN_vkEnumeratePhysicalDevices vkEnumeratePhysicalDevices = 0;
- PFN_vkFlushMappedMemoryRanges vkFlushMappedMemoryRanges = 0;
- PFN_vkFreeCommandBuffers vkFreeCommandBuffers = 0;
- PFN_vkFreeDescriptorSets vkFreeDescriptorSets = 0;
- PFN_vkFreeMemory vkFreeMemory = 0;
- PFN_vkGetAccelerationStructureBuildSizesKHR vkGetAccelerationStructureBuildSizesKHR = 0;
- PFN_vkGetAccelerationStructureDeviceAddressKHR vkGetAccelerationStructureDeviceAddressKHR = 0;
- PFN_vkGetAccelerationStructureHandleNV vkGetAccelerationStructureHandleNV = 0;
- PFN_vkGetAccelerationStructureMemoryRequirementsNV vkGetAccelerationStructureMemoryRequirementsNV = 0;
-#if defined( VK_USE_PLATFORM_ANDROID_KHR )
- PFN_vkGetAndroidHardwareBufferPropertiesANDROID vkGetAndroidHardwareBufferPropertiesANDROID = 0;
+ PFN_vkUpdateDescriptorSetWithTemplateKHR vkUpdateDescriptorSetWithTemplateKHR = 0;
+
+ //=== VK_NV_clip_space_w_scaling ===
+ PFN_vkCmdSetViewportWScalingNV vkCmdSetViewportWScalingNV = 0;
+
+ //=== VK_EXT_direct_mode_display ===
+ PFN_vkReleaseDisplayEXT vkReleaseDisplayEXT = 0;
+
+#if defined( VK_USE_PLATFORM_XLIB_XRANDR_EXT )
+ //=== VK_EXT_acquire_xlib_display ===
+ PFN_vkAcquireXlibDisplayEXT vkAcquireXlibDisplayEXT = 0;
+ PFN_vkGetRandROutputDisplayEXT vkGetRandROutputDisplayEXT = 0;
#else
- PFN_dummy placeholder_dont_call_vkGetAndroidHardwareBufferPropertiesANDROID = 0;
-#endif /*VK_USE_PLATFORM_ANDROID_KHR*/
- PFN_vkGetBufferDeviceAddress vkGetBufferDeviceAddress = 0;
- PFN_vkGetBufferDeviceAddressEXT vkGetBufferDeviceAddressEXT = 0;
- PFN_vkGetBufferDeviceAddressKHR vkGetBufferDeviceAddressKHR = 0;
- PFN_vkGetBufferMemoryRequirements vkGetBufferMemoryRequirements = 0;
- PFN_vkGetBufferMemoryRequirements2 vkGetBufferMemoryRequirements2 = 0;
- PFN_vkGetBufferMemoryRequirements2KHR vkGetBufferMemoryRequirements2KHR = 0;
- PFN_vkGetBufferOpaqueCaptureAddress vkGetBufferOpaqueCaptureAddress = 0;
- PFN_vkGetBufferOpaqueCaptureAddressKHR vkGetBufferOpaqueCaptureAddressKHR = 0;
- PFN_vkGetCalibratedTimestampsEXT vkGetCalibratedTimestampsEXT = 0;
- PFN_vkGetDeferredOperationMaxConcurrencyKHR vkGetDeferredOperationMaxConcurrencyKHR = 0;
- PFN_vkGetDeferredOperationResultKHR vkGetDeferredOperationResultKHR = 0;
- PFN_vkGetDescriptorSetLayoutSupport vkGetDescriptorSetLayoutSupport = 0;
- PFN_vkGetDescriptorSetLayoutSupportKHR vkGetDescriptorSetLayoutSupportKHR = 0;
- PFN_vkGetDeviceAccelerationStructureCompatibilityKHR vkGetDeviceAccelerationStructureCompatibilityKHR = 0;
- PFN_vkGetDeviceGroupPeerMemoryFeatures vkGetDeviceGroupPeerMemoryFeatures = 0;
- PFN_vkGetDeviceGroupPeerMemoryFeaturesKHR vkGetDeviceGroupPeerMemoryFeaturesKHR = 0;
- PFN_vkGetDeviceGroupPresentCapabilitiesKHR vkGetDeviceGroupPresentCapabilitiesKHR = 0;
+ PFN_dummy vkAcquireXlibDisplayEXT_placeholder = 0;
+ PFN_dummy vkGetRandROutputDisplayEXT_placeholder = 0;
+#endif /*VK_USE_PLATFORM_XLIB_XRANDR_EXT*/
+
+ //=== VK_EXT_display_surface_counter ===
+ PFN_vkGetPhysicalDeviceSurfaceCapabilities2EXT vkGetPhysicalDeviceSurfaceCapabilities2EXT = 0;
+
+ //=== VK_EXT_display_control ===
+ PFN_vkDisplayPowerControlEXT vkDisplayPowerControlEXT = 0;
+ PFN_vkRegisterDeviceEventEXT vkRegisterDeviceEventEXT = 0;
+ PFN_vkRegisterDisplayEventEXT vkRegisterDisplayEventEXT = 0;
+ PFN_vkGetSwapchainCounterEXT vkGetSwapchainCounterEXT = 0;
+
+ //=== VK_GOOGLE_display_timing ===
+ PFN_vkGetRefreshCycleDurationGOOGLE vkGetRefreshCycleDurationGOOGLE = 0;
+ PFN_vkGetPastPresentationTimingGOOGLE vkGetPastPresentationTimingGOOGLE = 0;
+
+ //=== VK_EXT_discard_rectangles ===
+ PFN_vkCmdSetDiscardRectangleEXT vkCmdSetDiscardRectangleEXT = 0;
+
+ //=== VK_EXT_hdr_metadata ===
+ PFN_vkSetHdrMetadataEXT vkSetHdrMetadataEXT = 0;
+
+ //=== VK_KHR_create_renderpass2 ===
+ PFN_vkCreateRenderPass2KHR vkCreateRenderPass2KHR = 0;
+ PFN_vkCmdBeginRenderPass2KHR vkCmdBeginRenderPass2KHR = 0;
+ PFN_vkCmdNextSubpass2KHR vkCmdNextSubpass2KHR = 0;
+ PFN_vkCmdEndRenderPass2KHR vkCmdEndRenderPass2KHR = 0;
+
+ //=== VK_KHR_shared_presentable_image ===
+ PFN_vkGetSwapchainStatusKHR vkGetSwapchainStatusKHR = 0;
+
+ //=== VK_KHR_external_fence_capabilities ===
+ PFN_vkGetPhysicalDeviceExternalFencePropertiesKHR vkGetPhysicalDeviceExternalFencePropertiesKHR = 0;
+
#if defined( VK_USE_PLATFORM_WIN32_KHR )
- PFN_vkGetDeviceGroupSurfacePresentModes2EXT vkGetDeviceGroupSurfacePresentModes2EXT = 0;
+ //=== VK_KHR_external_fence_win32 ===
+ PFN_vkImportFenceWin32HandleKHR vkImportFenceWin32HandleKHR = 0;
+ PFN_vkGetFenceWin32HandleKHR vkGetFenceWin32HandleKHR = 0;
#else
- PFN_dummy placeholder_dont_call_vkGetDeviceGroupSurfacePresentModes2EXT = 0;
+ PFN_dummy vkImportFenceWin32HandleKHR_placeholder = 0;
+ PFN_dummy vkGetFenceWin32HandleKHR_placeholder = 0;
#endif /*VK_USE_PLATFORM_WIN32_KHR*/
- PFN_vkGetDeviceGroupSurfacePresentModesKHR vkGetDeviceGroupSurfacePresentModesKHR = 0;
- PFN_vkGetDeviceMemoryCommitment vkGetDeviceMemoryCommitment = 0;
- PFN_vkGetDeviceMemoryOpaqueCaptureAddress vkGetDeviceMemoryOpaqueCaptureAddress = 0;
- PFN_vkGetDeviceMemoryOpaqueCaptureAddressKHR vkGetDeviceMemoryOpaqueCaptureAddressKHR = 0;
- PFN_vkGetDeviceProcAddr vkGetDeviceProcAddr = 0;
- PFN_vkGetDeviceQueue vkGetDeviceQueue = 0;
- PFN_vkGetDeviceQueue2 vkGetDeviceQueue2 = 0;
- PFN_vkGetDisplayModeProperties2KHR vkGetDisplayModeProperties2KHR = 0;
- PFN_vkGetDisplayModePropertiesKHR vkGetDisplayModePropertiesKHR = 0;
- PFN_vkGetDisplayPlaneCapabilities2KHR vkGetDisplayPlaneCapabilities2KHR = 0;
- PFN_vkGetDisplayPlaneCapabilitiesKHR vkGetDisplayPlaneCapabilitiesKHR = 0;
- PFN_vkGetDisplayPlaneSupportedDisplaysKHR vkGetDisplayPlaneSupportedDisplaysKHR = 0;
- PFN_vkGetDrmDisplayEXT vkGetDrmDisplayEXT = 0;
- PFN_vkGetEventStatus vkGetEventStatus = 0;
- PFN_vkGetFenceFdKHR vkGetFenceFdKHR = 0;
- PFN_vkGetFenceStatus vkGetFenceStatus = 0;
-#if defined( VK_USE_PLATFORM_WIN32_KHR )
- PFN_vkGetFenceWin32HandleKHR vkGetFenceWin32HandleKHR = 0;
+
+ //=== VK_KHR_external_fence_fd ===
+ PFN_vkImportFenceFdKHR vkImportFenceFdKHR = 0;
+ PFN_vkGetFenceFdKHR vkGetFenceFdKHR = 0;
+
+ //=== VK_KHR_performance_query ===
+ PFN_vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR
+ vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR = 0;
+ PFN_vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR
+ vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR = 0;
+ PFN_vkAcquireProfilingLockKHR vkAcquireProfilingLockKHR = 0;
+ PFN_vkReleaseProfilingLockKHR vkReleaseProfilingLockKHR = 0;
+
+ //=== VK_KHR_get_surface_capabilities2 ===
+ PFN_vkGetPhysicalDeviceSurfaceCapabilities2KHR vkGetPhysicalDeviceSurfaceCapabilities2KHR = 0;
+ PFN_vkGetPhysicalDeviceSurfaceFormats2KHR vkGetPhysicalDeviceSurfaceFormats2KHR = 0;
+
+ //=== VK_KHR_get_display_properties2 ===
+ PFN_vkGetPhysicalDeviceDisplayProperties2KHR vkGetPhysicalDeviceDisplayProperties2KHR = 0;
+ PFN_vkGetPhysicalDeviceDisplayPlaneProperties2KHR vkGetPhysicalDeviceDisplayPlaneProperties2KHR = 0;
+ PFN_vkGetDisplayModeProperties2KHR vkGetDisplayModeProperties2KHR = 0;
+ PFN_vkGetDisplayPlaneCapabilities2KHR vkGetDisplayPlaneCapabilities2KHR = 0;
+
+#if defined( VK_USE_PLATFORM_IOS_MVK )
+ //=== VK_MVK_ios_surface ===
+ PFN_vkCreateIOSSurfaceMVK vkCreateIOSSurfaceMVK = 0;
#else
- PFN_dummy placeholder_dont_call_vkGetFenceWin32HandleKHR = 0;
-#endif /*VK_USE_PLATFORM_WIN32_KHR*/
- PFN_vkGetGeneratedCommandsMemoryRequirementsNV vkGetGeneratedCommandsMemoryRequirementsNV = 0;
- PFN_vkGetImageDrmFormatModifierPropertiesEXT vkGetImageDrmFormatModifierPropertiesEXT = 0;
- PFN_vkGetImageMemoryRequirements vkGetImageMemoryRequirements = 0;
- PFN_vkGetImageMemoryRequirements2 vkGetImageMemoryRequirements2 = 0;
- PFN_vkGetImageMemoryRequirements2KHR vkGetImageMemoryRequirements2KHR = 0;
- PFN_vkGetImageSparseMemoryRequirements vkGetImageSparseMemoryRequirements = 0;
- PFN_vkGetImageSparseMemoryRequirements2 vkGetImageSparseMemoryRequirements2 = 0;
- PFN_vkGetImageSparseMemoryRequirements2KHR vkGetImageSparseMemoryRequirements2KHR = 0;
- PFN_vkGetImageSubresourceLayout vkGetImageSubresourceLayout = 0;
- PFN_vkGetImageViewAddressNVX vkGetImageViewAddressNVX = 0;
- PFN_vkGetImageViewHandleNVX vkGetImageViewHandleNVX = 0;
- PFN_vkGetInstanceProcAddr vkGetInstanceProcAddr = 0;
+ PFN_dummy vkCreateIOSSurfaceMVK_placeholder = 0;
+#endif /*VK_USE_PLATFORM_IOS_MVK*/
+
+#if defined( VK_USE_PLATFORM_MACOS_MVK )
+ //=== VK_MVK_macos_surface ===
+ PFN_vkCreateMacOSSurfaceMVK vkCreateMacOSSurfaceMVK = 0;
+#else
+ PFN_dummy vkCreateMacOSSurfaceMVK_placeholder = 0;
+#endif /*VK_USE_PLATFORM_MACOS_MVK*/
+
+ //=== VK_EXT_debug_utils ===
+ PFN_vkSetDebugUtilsObjectNameEXT vkSetDebugUtilsObjectNameEXT = 0;
+ PFN_vkSetDebugUtilsObjectTagEXT vkSetDebugUtilsObjectTagEXT = 0;
+ PFN_vkQueueBeginDebugUtilsLabelEXT vkQueueBeginDebugUtilsLabelEXT = 0;
+ PFN_vkQueueEndDebugUtilsLabelEXT vkQueueEndDebugUtilsLabelEXT = 0;
+ PFN_vkQueueInsertDebugUtilsLabelEXT vkQueueInsertDebugUtilsLabelEXT = 0;
+ PFN_vkCmdBeginDebugUtilsLabelEXT vkCmdBeginDebugUtilsLabelEXT = 0;
+ PFN_vkCmdEndDebugUtilsLabelEXT vkCmdEndDebugUtilsLabelEXT = 0;
+ PFN_vkCmdInsertDebugUtilsLabelEXT vkCmdInsertDebugUtilsLabelEXT = 0;
+ PFN_vkCreateDebugUtilsMessengerEXT vkCreateDebugUtilsMessengerEXT = 0;
+ PFN_vkDestroyDebugUtilsMessengerEXT vkDestroyDebugUtilsMessengerEXT = 0;
+ PFN_vkSubmitDebugUtilsMessageEXT vkSubmitDebugUtilsMessageEXT = 0;
+
#if defined( VK_USE_PLATFORM_ANDROID_KHR )
- PFN_vkGetMemoryAndroidHardwareBufferANDROID vkGetMemoryAndroidHardwareBufferANDROID = 0;
+ //=== VK_ANDROID_external_memory_android_hardware_buffer ===
+ PFN_vkGetAndroidHardwareBufferPropertiesANDROID vkGetAndroidHardwareBufferPropertiesANDROID = 0;
+ PFN_vkGetMemoryAndroidHardwareBufferANDROID vkGetMemoryAndroidHardwareBufferANDROID = 0;
#else
- PFN_dummy placeholder_dont_call_vkGetMemoryAndroidHardwareBufferANDROID = 0;
+ PFN_dummy vkGetAndroidHardwareBufferPropertiesANDROID_placeholder = 0;
+ PFN_dummy vkGetMemoryAndroidHardwareBufferANDROID_placeholder = 0;
#endif /*VK_USE_PLATFORM_ANDROID_KHR*/
- PFN_vkGetMemoryFdKHR vkGetMemoryFdKHR = 0;
- PFN_vkGetMemoryFdPropertiesKHR vkGetMemoryFdPropertiesKHR = 0;
+
+ //=== VK_EXT_sample_locations ===
+ PFN_vkCmdSetSampleLocationsEXT vkCmdSetSampleLocationsEXT = 0;
+ PFN_vkGetPhysicalDeviceMultisamplePropertiesEXT vkGetPhysicalDeviceMultisamplePropertiesEXT = 0;
+
+ //=== VK_KHR_get_memory_requirements2 ===
+ PFN_vkGetImageMemoryRequirements2KHR vkGetImageMemoryRequirements2KHR = 0;
+ PFN_vkGetBufferMemoryRequirements2KHR vkGetBufferMemoryRequirements2KHR = 0;
+ PFN_vkGetImageSparseMemoryRequirements2KHR vkGetImageSparseMemoryRequirements2KHR = 0;
+
+ //=== VK_KHR_acceleration_structure ===
+ PFN_vkCreateAccelerationStructureKHR vkCreateAccelerationStructureKHR = 0;
+ PFN_vkDestroyAccelerationStructureKHR vkDestroyAccelerationStructureKHR = 0;
+ PFN_vkCmdBuildAccelerationStructuresKHR vkCmdBuildAccelerationStructuresKHR = 0;
+ PFN_vkCmdBuildAccelerationStructuresIndirectKHR vkCmdBuildAccelerationStructuresIndirectKHR = 0;
+ PFN_vkBuildAccelerationStructuresKHR vkBuildAccelerationStructuresKHR = 0;
+ PFN_vkCopyAccelerationStructureKHR vkCopyAccelerationStructureKHR = 0;
+ PFN_vkCopyAccelerationStructureToMemoryKHR vkCopyAccelerationStructureToMemoryKHR = 0;
+ PFN_vkCopyMemoryToAccelerationStructureKHR vkCopyMemoryToAccelerationStructureKHR = 0;
+ PFN_vkWriteAccelerationStructuresPropertiesKHR vkWriteAccelerationStructuresPropertiesKHR = 0;
+ PFN_vkCmdCopyAccelerationStructureKHR vkCmdCopyAccelerationStructureKHR = 0;
+ PFN_vkCmdCopyAccelerationStructureToMemoryKHR vkCmdCopyAccelerationStructureToMemoryKHR = 0;
+ PFN_vkCmdCopyMemoryToAccelerationStructureKHR vkCmdCopyMemoryToAccelerationStructureKHR = 0;
+ PFN_vkGetAccelerationStructureDeviceAddressKHR vkGetAccelerationStructureDeviceAddressKHR = 0;
+ PFN_vkCmdWriteAccelerationStructuresPropertiesKHR vkCmdWriteAccelerationStructuresPropertiesKHR = 0;
+ PFN_vkGetDeviceAccelerationStructureCompatibilityKHR vkGetDeviceAccelerationStructureCompatibilityKHR = 0;
+ PFN_vkGetAccelerationStructureBuildSizesKHR vkGetAccelerationStructureBuildSizesKHR = 0;
+
+ //=== VK_KHR_sampler_ycbcr_conversion ===
+ PFN_vkCreateSamplerYcbcrConversionKHR vkCreateSamplerYcbcrConversionKHR = 0;
+ PFN_vkDestroySamplerYcbcrConversionKHR vkDestroySamplerYcbcrConversionKHR = 0;
+
+ //=== VK_KHR_bind_memory2 ===
+ PFN_vkBindBufferMemory2KHR vkBindBufferMemory2KHR = 0;
+ PFN_vkBindImageMemory2KHR vkBindImageMemory2KHR = 0;
+
+ //=== VK_EXT_image_drm_format_modifier ===
+ PFN_vkGetImageDrmFormatModifierPropertiesEXT vkGetImageDrmFormatModifierPropertiesEXT = 0;
+
+ //=== VK_EXT_validation_cache ===
+ PFN_vkCreateValidationCacheEXT vkCreateValidationCacheEXT = 0;
+ PFN_vkDestroyValidationCacheEXT vkDestroyValidationCacheEXT = 0;
+ PFN_vkMergeValidationCachesEXT vkMergeValidationCachesEXT = 0;
+ PFN_vkGetValidationCacheDataEXT vkGetValidationCacheDataEXT = 0;
+
+ //=== VK_NV_shading_rate_image ===
+ PFN_vkCmdBindShadingRateImageNV vkCmdBindShadingRateImageNV = 0;
+ PFN_vkCmdSetViewportShadingRatePaletteNV vkCmdSetViewportShadingRatePaletteNV = 0;
+ PFN_vkCmdSetCoarseSampleOrderNV vkCmdSetCoarseSampleOrderNV = 0;
+
+ //=== VK_NV_ray_tracing ===
+ PFN_vkCreateAccelerationStructureNV vkCreateAccelerationStructureNV = 0;
+ PFN_vkDestroyAccelerationStructureNV vkDestroyAccelerationStructureNV = 0;
+ PFN_vkGetAccelerationStructureMemoryRequirementsNV vkGetAccelerationStructureMemoryRequirementsNV = 0;
+ PFN_vkBindAccelerationStructureMemoryNV vkBindAccelerationStructureMemoryNV = 0;
+ PFN_vkCmdBuildAccelerationStructureNV vkCmdBuildAccelerationStructureNV = 0;
+ PFN_vkCmdCopyAccelerationStructureNV vkCmdCopyAccelerationStructureNV = 0;
+ PFN_vkCmdTraceRaysNV vkCmdTraceRaysNV = 0;
+ PFN_vkCreateRayTracingPipelinesNV vkCreateRayTracingPipelinesNV = 0;
+ PFN_vkGetRayTracingShaderGroupHandlesNV vkGetRayTracingShaderGroupHandlesNV = 0;
+ PFN_vkGetAccelerationStructureHandleNV vkGetAccelerationStructureHandleNV = 0;
+ PFN_vkCmdWriteAccelerationStructuresPropertiesNV vkCmdWriteAccelerationStructuresPropertiesNV = 0;
+ PFN_vkCompileDeferredNV vkCompileDeferredNV = 0;
+
+ //=== VK_KHR_maintenance3 ===
+ PFN_vkGetDescriptorSetLayoutSupportKHR vkGetDescriptorSetLayoutSupportKHR = 0;
+
+ //=== VK_KHR_draw_indirect_count ===
+ PFN_vkCmdDrawIndirectCountKHR vkCmdDrawIndirectCountKHR = 0;
+ PFN_vkCmdDrawIndexedIndirectCountKHR vkCmdDrawIndexedIndirectCountKHR = 0;
+
+ //=== VK_EXT_external_memory_host ===
PFN_vkGetMemoryHostPointerPropertiesEXT vkGetMemoryHostPointerPropertiesEXT = 0;
-#if defined( VK_USE_PLATFORM_WIN32_KHR )
- PFN_vkGetMemoryWin32HandleKHR vkGetMemoryWin32HandleKHR = 0;
-#else
- PFN_dummy placeholder_dont_call_vkGetMemoryWin32HandleKHR = 0;
-#endif /*VK_USE_PLATFORM_WIN32_KHR*/
-#if defined( VK_USE_PLATFORM_WIN32_KHR )
- PFN_vkGetMemoryWin32HandleNV vkGetMemoryWin32HandleNV = 0;
-#else
- PFN_dummy placeholder_dont_call_vkGetMemoryWin32HandleNV = 0;
-#endif /*VK_USE_PLATFORM_WIN32_KHR*/
-#if defined( VK_USE_PLATFORM_WIN32_KHR )
- PFN_vkGetMemoryWin32HandlePropertiesKHR vkGetMemoryWin32HandlePropertiesKHR = 0;
-#else
- PFN_dummy placeholder_dont_call_vkGetMemoryWin32HandlePropertiesKHR = 0;
-#endif /*VK_USE_PLATFORM_WIN32_KHR*/
+
+ //=== VK_AMD_buffer_marker ===
+ PFN_vkCmdWriteBufferMarkerAMD vkCmdWriteBufferMarkerAMD = 0;
+
+ //=== VK_EXT_calibrated_timestamps ===
+ PFN_vkGetPhysicalDeviceCalibrateableTimeDomainsEXT vkGetPhysicalDeviceCalibrateableTimeDomainsEXT = 0;
+ PFN_vkGetCalibratedTimestampsEXT vkGetCalibratedTimestampsEXT = 0;
+
+ //=== VK_NV_mesh_shader ===
+ PFN_vkCmdDrawMeshTasksNV vkCmdDrawMeshTasksNV = 0;
+ PFN_vkCmdDrawMeshTasksIndirectNV vkCmdDrawMeshTasksIndirectNV = 0;
+ PFN_vkCmdDrawMeshTasksIndirectCountNV vkCmdDrawMeshTasksIndirectCountNV = 0;
+
+ //=== VK_NV_scissor_exclusive ===
+ PFN_vkCmdSetExclusiveScissorNV vkCmdSetExclusiveScissorNV = 0;
+
+ //=== VK_NV_device_diagnostic_checkpoints ===
+ PFN_vkCmdSetCheckpointNV vkCmdSetCheckpointNV = 0;
+ PFN_vkGetQueueCheckpointDataNV vkGetQueueCheckpointDataNV = 0;
+
+ //=== VK_KHR_timeline_semaphore ===
+ PFN_vkGetSemaphoreCounterValueKHR vkGetSemaphoreCounterValueKHR = 0;
+ PFN_vkWaitSemaphoresKHR vkWaitSemaphoresKHR = 0;
+ PFN_vkSignalSemaphoreKHR vkSignalSemaphoreKHR = 0;
+
+ //=== VK_INTEL_performance_query ===
+ PFN_vkInitializePerformanceApiINTEL vkInitializePerformanceApiINTEL = 0;
+ PFN_vkUninitializePerformanceApiINTEL vkUninitializePerformanceApiINTEL = 0;
+ PFN_vkCmdSetPerformanceMarkerINTEL vkCmdSetPerformanceMarkerINTEL = 0;
+ PFN_vkCmdSetPerformanceStreamMarkerINTEL vkCmdSetPerformanceStreamMarkerINTEL = 0;
+ PFN_vkCmdSetPerformanceOverrideINTEL vkCmdSetPerformanceOverrideINTEL = 0;
+ PFN_vkAcquirePerformanceConfigurationINTEL vkAcquirePerformanceConfigurationINTEL = 0;
+ PFN_vkReleasePerformanceConfigurationINTEL vkReleasePerformanceConfigurationINTEL = 0;
+ PFN_vkQueueSetPerformanceConfigurationINTEL vkQueueSetPerformanceConfigurationINTEL = 0;
+ PFN_vkGetPerformanceParameterINTEL vkGetPerformanceParameterINTEL = 0;
+
+ //=== VK_AMD_display_native_hdr ===
+ PFN_vkSetLocalDimmingAMD vkSetLocalDimmingAMD = 0;
+
#if defined( VK_USE_PLATFORM_FUCHSIA )
- PFN_vkGetMemoryZirconHandleFUCHSIA vkGetMemoryZirconHandleFUCHSIA = 0;
+ //=== VK_FUCHSIA_imagepipe_surface ===
+ PFN_vkCreateImagePipeSurfaceFUCHSIA vkCreateImagePipeSurfaceFUCHSIA = 0;
#else
- PFN_dummy placeholder_dont_call_vkGetMemoryZirconHandleFUCHSIA = 0;
+ PFN_dummy vkCreateImagePipeSurfaceFUCHSIA_placeholder = 0;
#endif /*VK_USE_PLATFORM_FUCHSIA*/
-#if defined( VK_USE_PLATFORM_FUCHSIA )
- PFN_vkGetMemoryZirconHandlePropertiesFUCHSIA vkGetMemoryZirconHandlePropertiesFUCHSIA = 0;
+
+#if defined( VK_USE_PLATFORM_METAL_EXT )
+ //=== VK_EXT_metal_surface ===
+ PFN_vkCreateMetalSurfaceEXT vkCreateMetalSurfaceEXT = 0;
#else
- PFN_dummy placeholder_dont_call_vkGetMemoryZirconHandlePropertiesFUCHSIA = 0;
-#endif /*VK_USE_PLATFORM_FUCHSIA*/
- PFN_vkGetPastPresentationTimingGOOGLE vkGetPastPresentationTimingGOOGLE = 0;
- PFN_vkGetPerformanceParameterINTEL vkGetPerformanceParameterINTEL = 0;
- PFN_vkGetPhysicalDeviceCalibrateableTimeDomainsEXT vkGetPhysicalDeviceCalibrateableTimeDomainsEXT = 0;
+ PFN_dummy vkCreateMetalSurfaceEXT_placeholder = 0;
+#endif /*VK_USE_PLATFORM_METAL_EXT*/
+
+ //=== VK_KHR_fragment_shading_rate ===
+ PFN_vkGetPhysicalDeviceFragmentShadingRatesKHR vkGetPhysicalDeviceFragmentShadingRatesKHR = 0;
+ PFN_vkCmdSetFragmentShadingRateKHR vkCmdSetFragmentShadingRateKHR = 0;
+
+ //=== VK_EXT_buffer_device_address ===
+ PFN_vkGetBufferDeviceAddressEXT vkGetBufferDeviceAddressEXT = 0;
+
+ //=== VK_EXT_tooling_info ===
+ PFN_vkGetPhysicalDeviceToolPropertiesEXT vkGetPhysicalDeviceToolPropertiesEXT = 0;
+
+ //=== VK_KHR_present_wait ===
+ PFN_vkWaitForPresentKHR vkWaitForPresentKHR = 0;
+
+ //=== VK_NV_cooperative_matrix ===
PFN_vkGetPhysicalDeviceCooperativeMatrixPropertiesNV vkGetPhysicalDeviceCooperativeMatrixPropertiesNV = 0;
-#if defined( VK_USE_PLATFORM_DIRECTFB_EXT )
- PFN_vkGetPhysicalDeviceDirectFBPresentationSupportEXT vkGetPhysicalDeviceDirectFBPresentationSupportEXT = 0;
-#else
- PFN_dummy placeholder_dont_call_vkGetPhysicalDeviceDirectFBPresentationSupportEXT = 0;
-#endif /*VK_USE_PLATFORM_DIRECTFB_EXT*/
- PFN_vkGetPhysicalDeviceDisplayPlaneProperties2KHR vkGetPhysicalDeviceDisplayPlaneProperties2KHR = 0;
- PFN_vkGetPhysicalDeviceDisplayPlanePropertiesKHR vkGetPhysicalDeviceDisplayPlanePropertiesKHR = 0;
- PFN_vkGetPhysicalDeviceDisplayProperties2KHR vkGetPhysicalDeviceDisplayProperties2KHR = 0;
- PFN_vkGetPhysicalDeviceDisplayPropertiesKHR vkGetPhysicalDeviceDisplayPropertiesKHR = 0;
- PFN_vkGetPhysicalDeviceExternalBufferProperties vkGetPhysicalDeviceExternalBufferProperties = 0;
- PFN_vkGetPhysicalDeviceExternalBufferPropertiesKHR vkGetPhysicalDeviceExternalBufferPropertiesKHR = 0;
- PFN_vkGetPhysicalDeviceExternalFenceProperties vkGetPhysicalDeviceExternalFenceProperties = 0;
- PFN_vkGetPhysicalDeviceExternalFencePropertiesKHR vkGetPhysicalDeviceExternalFencePropertiesKHR = 0;
- PFN_vkGetPhysicalDeviceExternalImageFormatPropertiesNV vkGetPhysicalDeviceExternalImageFormatPropertiesNV = 0;
- PFN_vkGetPhysicalDeviceExternalSemaphoreProperties vkGetPhysicalDeviceExternalSemaphoreProperties = 0;
- PFN_vkGetPhysicalDeviceExternalSemaphorePropertiesKHR vkGetPhysicalDeviceExternalSemaphorePropertiesKHR = 0;
- PFN_vkGetPhysicalDeviceFeatures vkGetPhysicalDeviceFeatures = 0;
- PFN_vkGetPhysicalDeviceFeatures2 vkGetPhysicalDeviceFeatures2 = 0;
- PFN_vkGetPhysicalDeviceFeatures2KHR vkGetPhysicalDeviceFeatures2KHR = 0;
- PFN_vkGetPhysicalDeviceFormatProperties vkGetPhysicalDeviceFormatProperties = 0;
- PFN_vkGetPhysicalDeviceFormatProperties2 vkGetPhysicalDeviceFormatProperties2 = 0;
- PFN_vkGetPhysicalDeviceFormatProperties2KHR vkGetPhysicalDeviceFormatProperties2KHR = 0;
- PFN_vkGetPhysicalDeviceFragmentShadingRatesKHR vkGetPhysicalDeviceFragmentShadingRatesKHR = 0;
- PFN_vkGetPhysicalDeviceImageFormatProperties vkGetPhysicalDeviceImageFormatProperties = 0;
- PFN_vkGetPhysicalDeviceImageFormatProperties2 vkGetPhysicalDeviceImageFormatProperties2 = 0;
- PFN_vkGetPhysicalDeviceImageFormatProperties2KHR vkGetPhysicalDeviceImageFormatProperties2KHR = 0;
- PFN_vkGetPhysicalDeviceMemoryProperties vkGetPhysicalDeviceMemoryProperties = 0;
- PFN_vkGetPhysicalDeviceMemoryProperties2 vkGetPhysicalDeviceMemoryProperties2 = 0;
- PFN_vkGetPhysicalDeviceMemoryProperties2KHR vkGetPhysicalDeviceMemoryProperties2KHR = 0;
- PFN_vkGetPhysicalDeviceMultisamplePropertiesEXT vkGetPhysicalDeviceMultisamplePropertiesEXT = 0;
- PFN_vkGetPhysicalDevicePresentRectanglesKHR vkGetPhysicalDevicePresentRectanglesKHR = 0;
- PFN_vkGetPhysicalDeviceProperties vkGetPhysicalDeviceProperties = 0;
- PFN_vkGetPhysicalDeviceProperties2 vkGetPhysicalDeviceProperties2 = 0;
- PFN_vkGetPhysicalDeviceProperties2KHR vkGetPhysicalDeviceProperties2KHR = 0;
- PFN_vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR
- vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR = 0;
- PFN_vkGetPhysicalDeviceQueueFamilyProperties vkGetPhysicalDeviceQueueFamilyProperties = 0;
- PFN_vkGetPhysicalDeviceQueueFamilyProperties2 vkGetPhysicalDeviceQueueFamilyProperties2 = 0;
- PFN_vkGetPhysicalDeviceQueueFamilyProperties2KHR vkGetPhysicalDeviceQueueFamilyProperties2KHR = 0;
-#if defined( VK_USE_PLATFORM_SCREEN_QNX )
- PFN_vkGetPhysicalDeviceScreenPresentationSupportQNX vkGetPhysicalDeviceScreenPresentationSupportQNX = 0;
-#else
- PFN_dummy placeholder_dont_call_vkGetPhysicalDeviceScreenPresentationSupportQNX = 0;
-#endif /*VK_USE_PLATFORM_SCREEN_QNX*/
- PFN_vkGetPhysicalDeviceSparseImageFormatProperties vkGetPhysicalDeviceSparseImageFormatProperties = 0;
- PFN_vkGetPhysicalDeviceSparseImageFormatProperties2 vkGetPhysicalDeviceSparseImageFormatProperties2 = 0;
- PFN_vkGetPhysicalDeviceSparseImageFormatProperties2KHR vkGetPhysicalDeviceSparseImageFormatProperties2KHR = 0;
+
+ //=== VK_NV_coverage_reduction_mode ===
PFN_vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV
- vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV = 0;
- PFN_vkGetPhysicalDeviceSurfaceCapabilities2EXT vkGetPhysicalDeviceSurfaceCapabilities2EXT = 0;
- PFN_vkGetPhysicalDeviceSurfaceCapabilities2KHR vkGetPhysicalDeviceSurfaceCapabilities2KHR = 0;
- PFN_vkGetPhysicalDeviceSurfaceCapabilitiesKHR vkGetPhysicalDeviceSurfaceCapabilitiesKHR = 0;
- PFN_vkGetPhysicalDeviceSurfaceFormats2KHR vkGetPhysicalDeviceSurfaceFormats2KHR = 0;
- PFN_vkGetPhysicalDeviceSurfaceFormatsKHR vkGetPhysicalDeviceSurfaceFormatsKHR = 0;
+ vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV = 0;
+
#if defined( VK_USE_PLATFORM_WIN32_KHR )
+ //=== VK_EXT_full_screen_exclusive ===
PFN_vkGetPhysicalDeviceSurfacePresentModes2EXT vkGetPhysicalDeviceSurfacePresentModes2EXT = 0;
+ PFN_vkAcquireFullScreenExclusiveModeEXT vkAcquireFullScreenExclusiveModeEXT = 0;
+ PFN_vkReleaseFullScreenExclusiveModeEXT vkReleaseFullScreenExclusiveModeEXT = 0;
+ PFN_vkGetDeviceGroupSurfacePresentModes2EXT vkGetDeviceGroupSurfacePresentModes2EXT = 0;
#else
- PFN_dummy placeholder_dont_call_vkGetPhysicalDeviceSurfacePresentModes2EXT = 0;
+ PFN_dummy vkGetPhysicalDeviceSurfacePresentModes2EXT_placeholder = 0;
+ PFN_dummy vkAcquireFullScreenExclusiveModeEXT_placeholder = 0;
+ PFN_dummy vkReleaseFullScreenExclusiveModeEXT_placeholder = 0;
+ PFN_dummy vkGetDeviceGroupSurfacePresentModes2EXT_placeholder = 0;
#endif /*VK_USE_PLATFORM_WIN32_KHR*/
- PFN_vkGetPhysicalDeviceSurfacePresentModesKHR vkGetPhysicalDeviceSurfacePresentModesKHR = 0;
- PFN_vkGetPhysicalDeviceSurfaceSupportKHR vkGetPhysicalDeviceSurfaceSupportKHR = 0;
- PFN_vkGetPhysicalDeviceToolPropertiesEXT vkGetPhysicalDeviceToolPropertiesEXT = 0;
-#if defined( VK_ENABLE_BETA_EXTENSIONS )
- PFN_vkGetPhysicalDeviceVideoCapabilitiesKHR vkGetPhysicalDeviceVideoCapabilitiesKHR = 0;
-#else
- PFN_dummy placeholder_dont_call_vkGetPhysicalDeviceVideoCapabilitiesKHR = 0;
-#endif /*VK_ENABLE_BETA_EXTENSIONS*/
+
+ //=== VK_EXT_headless_surface ===
+ PFN_vkCreateHeadlessSurfaceEXT vkCreateHeadlessSurfaceEXT = 0;
+
+ //=== VK_KHR_buffer_device_address ===
+ PFN_vkGetBufferDeviceAddressKHR vkGetBufferDeviceAddressKHR = 0;
+ PFN_vkGetBufferOpaqueCaptureAddressKHR vkGetBufferOpaqueCaptureAddressKHR = 0;
+ PFN_vkGetDeviceMemoryOpaqueCaptureAddressKHR vkGetDeviceMemoryOpaqueCaptureAddressKHR = 0;
+
+ //=== VK_EXT_line_rasterization ===
+ PFN_vkCmdSetLineStippleEXT vkCmdSetLineStippleEXT = 0;
+
+ //=== VK_EXT_host_query_reset ===
+ PFN_vkResetQueryPoolEXT vkResetQueryPoolEXT = 0;
+
+ //=== VK_EXT_extended_dynamic_state ===
+ PFN_vkCmdSetCullModeEXT vkCmdSetCullModeEXT = 0;
+ PFN_vkCmdSetFrontFaceEXT vkCmdSetFrontFaceEXT = 0;
+ PFN_vkCmdSetPrimitiveTopologyEXT vkCmdSetPrimitiveTopologyEXT = 0;
+ PFN_vkCmdSetViewportWithCountEXT vkCmdSetViewportWithCountEXT = 0;
+ PFN_vkCmdSetScissorWithCountEXT vkCmdSetScissorWithCountEXT = 0;
+ PFN_vkCmdBindVertexBuffers2EXT vkCmdBindVertexBuffers2EXT = 0;
+ PFN_vkCmdSetDepthTestEnableEXT vkCmdSetDepthTestEnableEXT = 0;
+ PFN_vkCmdSetDepthWriteEnableEXT vkCmdSetDepthWriteEnableEXT = 0;
+ PFN_vkCmdSetDepthCompareOpEXT vkCmdSetDepthCompareOpEXT = 0;
+ PFN_vkCmdSetDepthBoundsTestEnableEXT vkCmdSetDepthBoundsTestEnableEXT = 0;
+ PFN_vkCmdSetStencilTestEnableEXT vkCmdSetStencilTestEnableEXT = 0;
+ PFN_vkCmdSetStencilOpEXT vkCmdSetStencilOpEXT = 0;
+
+ //=== VK_KHR_deferred_host_operations ===
+ PFN_vkCreateDeferredOperationKHR vkCreateDeferredOperationKHR = 0;
+ PFN_vkDestroyDeferredOperationKHR vkDestroyDeferredOperationKHR = 0;
+ PFN_vkGetDeferredOperationMaxConcurrencyKHR vkGetDeferredOperationMaxConcurrencyKHR = 0;
+ PFN_vkGetDeferredOperationResultKHR vkGetDeferredOperationResultKHR = 0;
+ PFN_vkDeferredOperationJoinKHR vkDeferredOperationJoinKHR = 0;
+
+ //=== VK_KHR_pipeline_executable_properties ===
+ PFN_vkGetPipelineExecutablePropertiesKHR vkGetPipelineExecutablePropertiesKHR = 0;
+ PFN_vkGetPipelineExecutableStatisticsKHR vkGetPipelineExecutableStatisticsKHR = 0;
+ PFN_vkGetPipelineExecutableInternalRepresentationsKHR vkGetPipelineExecutableInternalRepresentationsKHR = 0;
+
+ //=== VK_NV_device_generated_commands ===
+ PFN_vkGetGeneratedCommandsMemoryRequirementsNV vkGetGeneratedCommandsMemoryRequirementsNV = 0;
+ PFN_vkCmdPreprocessGeneratedCommandsNV vkCmdPreprocessGeneratedCommandsNV = 0;
+ PFN_vkCmdExecuteGeneratedCommandsNV vkCmdExecuteGeneratedCommandsNV = 0;
+ PFN_vkCmdBindPipelineShaderGroupNV vkCmdBindPipelineShaderGroupNV = 0;
+ PFN_vkCreateIndirectCommandsLayoutNV vkCreateIndirectCommandsLayoutNV = 0;
+ PFN_vkDestroyIndirectCommandsLayoutNV vkDestroyIndirectCommandsLayoutNV = 0;
+
+ //=== VK_EXT_acquire_drm_display ===
+ PFN_vkAcquireDrmDisplayEXT vkAcquireDrmDisplayEXT = 0;
+ PFN_vkGetDrmDisplayEXT vkGetDrmDisplayEXT = 0;
+
+ //=== VK_EXT_private_data ===
+ PFN_vkCreatePrivateDataSlotEXT vkCreatePrivateDataSlotEXT = 0;
+ PFN_vkDestroyPrivateDataSlotEXT vkDestroyPrivateDataSlotEXT = 0;
+ PFN_vkSetPrivateDataEXT vkSetPrivateDataEXT = 0;
+ PFN_vkGetPrivateDataEXT vkGetPrivateDataEXT = 0;
+
#if defined( VK_ENABLE_BETA_EXTENSIONS )
- PFN_vkGetPhysicalDeviceVideoFormatPropertiesKHR vkGetPhysicalDeviceVideoFormatPropertiesKHR = 0;
+ //=== VK_KHR_video_encode_queue ===
+ PFN_vkCmdEncodeVideoKHR vkCmdEncodeVideoKHR = 0;
#else
- PFN_dummy placeholder_dont_call_vkGetPhysicalDeviceVideoFormatPropertiesKHR = 0;
+ PFN_dummy vkCmdEncodeVideoKHR_placeholder = 0;
#endif /*VK_ENABLE_BETA_EXTENSIONS*/
-#if defined( VK_USE_PLATFORM_WAYLAND_KHR )
- PFN_vkGetPhysicalDeviceWaylandPresentationSupportKHR vkGetPhysicalDeviceWaylandPresentationSupportKHR = 0;
-#else
- PFN_dummy placeholder_dont_call_vkGetPhysicalDeviceWaylandPresentationSupportKHR = 0;
-#endif /*VK_USE_PLATFORM_WAYLAND_KHR*/
+
+ //=== VK_KHR_synchronization2 ===
+ PFN_vkCmdSetEvent2KHR vkCmdSetEvent2KHR = 0;
+ PFN_vkCmdResetEvent2KHR vkCmdResetEvent2KHR = 0;
+ PFN_vkCmdWaitEvents2KHR vkCmdWaitEvents2KHR = 0;
+ PFN_vkCmdPipelineBarrier2KHR vkCmdPipelineBarrier2KHR = 0;
+ PFN_vkCmdWriteTimestamp2KHR vkCmdWriteTimestamp2KHR = 0;
+ PFN_vkQueueSubmit2KHR vkQueueSubmit2KHR = 0;
+ PFN_vkCmdWriteBufferMarker2AMD vkCmdWriteBufferMarker2AMD = 0;
+ PFN_vkGetQueueCheckpointData2NV vkGetQueueCheckpointData2NV = 0;
+
+ //=== VK_NV_fragment_shading_rate_enums ===
+ PFN_vkCmdSetFragmentShadingRateEnumNV vkCmdSetFragmentShadingRateEnumNV = 0;
+
+ //=== VK_KHR_copy_commands2 ===
+ PFN_vkCmdCopyBuffer2KHR vkCmdCopyBuffer2KHR = 0;
+ PFN_vkCmdCopyImage2KHR vkCmdCopyImage2KHR = 0;
+ PFN_vkCmdCopyBufferToImage2KHR vkCmdCopyBufferToImage2KHR = 0;
+ PFN_vkCmdCopyImageToBuffer2KHR vkCmdCopyImageToBuffer2KHR = 0;
+ PFN_vkCmdBlitImage2KHR vkCmdBlitImage2KHR = 0;
+ PFN_vkCmdResolveImage2KHR vkCmdResolveImage2KHR = 0;
+
#if defined( VK_USE_PLATFORM_WIN32_KHR )
- PFN_vkGetPhysicalDeviceWin32PresentationSupportKHR vkGetPhysicalDeviceWin32PresentationSupportKHR = 0;
+ //=== VK_NV_acquire_winrt_display ===
+ PFN_vkAcquireWinrtDisplayNV vkAcquireWinrtDisplayNV = 0;
+ PFN_vkGetWinrtDisplayNV vkGetWinrtDisplayNV = 0;
#else
- PFN_dummy placeholder_dont_call_vkGetPhysicalDeviceWin32PresentationSupportKHR = 0;
+ PFN_dummy vkAcquireWinrtDisplayNV_placeholder = 0;
+ PFN_dummy vkGetWinrtDisplayNV_placeholder = 0;
#endif /*VK_USE_PLATFORM_WIN32_KHR*/
-#if defined( VK_USE_PLATFORM_XCB_KHR )
- PFN_vkGetPhysicalDeviceXcbPresentationSupportKHR vkGetPhysicalDeviceXcbPresentationSupportKHR = 0;
-#else
- PFN_dummy placeholder_dont_call_vkGetPhysicalDeviceXcbPresentationSupportKHR = 0;
-#endif /*VK_USE_PLATFORM_XCB_KHR*/
-#if defined( VK_USE_PLATFORM_XLIB_KHR )
- PFN_vkGetPhysicalDeviceXlibPresentationSupportKHR vkGetPhysicalDeviceXlibPresentationSupportKHR = 0;
-#else
- PFN_dummy placeholder_dont_call_vkGetPhysicalDeviceXlibPresentationSupportKHR = 0;
-#endif /*VK_USE_PLATFORM_XLIB_KHR*/
- PFN_vkGetPipelineCacheData vkGetPipelineCacheData = 0;
- PFN_vkGetPipelineExecutableInternalRepresentationsKHR vkGetPipelineExecutableInternalRepresentationsKHR = 0;
- PFN_vkGetPipelineExecutablePropertiesKHR vkGetPipelineExecutablePropertiesKHR = 0;
- PFN_vkGetPipelineExecutableStatisticsKHR vkGetPipelineExecutableStatisticsKHR = 0;
- PFN_vkGetPrivateDataEXT vkGetPrivateDataEXT = 0;
- PFN_vkGetQueryPoolResults vkGetQueryPoolResults = 0;
- PFN_vkGetQueueCheckpointData2NV vkGetQueueCheckpointData2NV = 0;
- PFN_vkGetQueueCheckpointDataNV vkGetQueueCheckpointDataNV = 0;
-#if defined( VK_USE_PLATFORM_XLIB_XRANDR_EXT )
- PFN_vkGetRandROutputDisplayEXT vkGetRandROutputDisplayEXT = 0;
+
+#if defined( VK_USE_PLATFORM_DIRECTFB_EXT )
+ //=== VK_EXT_directfb_surface ===
+ PFN_vkCreateDirectFBSurfaceEXT vkCreateDirectFBSurfaceEXT = 0;
+ PFN_vkGetPhysicalDeviceDirectFBPresentationSupportEXT vkGetPhysicalDeviceDirectFBPresentationSupportEXT = 0;
#else
- PFN_dummy placeholder_dont_call_vkGetRandROutputDisplayEXT = 0;
-#endif /*VK_USE_PLATFORM_XLIB_XRANDR_EXT*/
- PFN_vkGetRayTracingCaptureReplayShaderGroupHandlesKHR vkGetRayTracingCaptureReplayShaderGroupHandlesKHR = 0;
+ PFN_dummy vkCreateDirectFBSurfaceEXT_placeholder = 0;
+ PFN_dummy vkGetPhysicalDeviceDirectFBPresentationSupportEXT_placeholder = 0;
+#endif /*VK_USE_PLATFORM_DIRECTFB_EXT*/
+
+ //=== VK_KHR_ray_tracing_pipeline ===
+ PFN_vkCmdTraceRaysKHR vkCmdTraceRaysKHR = 0;
+ PFN_vkCreateRayTracingPipelinesKHR vkCreateRayTracingPipelinesKHR = 0;
PFN_vkGetRayTracingShaderGroupHandlesKHR vkGetRayTracingShaderGroupHandlesKHR = 0;
- PFN_vkGetRayTracingShaderGroupHandlesNV vkGetRayTracingShaderGroupHandlesNV = 0;
+ PFN_vkGetRayTracingCaptureReplayShaderGroupHandlesKHR vkGetRayTracingCaptureReplayShaderGroupHandlesKHR = 0;
+ PFN_vkCmdTraceRaysIndirectKHR vkCmdTraceRaysIndirectKHR = 0;
PFN_vkGetRayTracingShaderGroupStackSizeKHR vkGetRayTracingShaderGroupStackSizeKHR = 0;
- PFN_vkGetRefreshCycleDurationGOOGLE vkGetRefreshCycleDurationGOOGLE = 0;
- PFN_vkGetRenderAreaGranularity vkGetRenderAreaGranularity = 0;
- PFN_vkGetSemaphoreCounterValue vkGetSemaphoreCounterValue = 0;
- PFN_vkGetSemaphoreCounterValueKHR vkGetSemaphoreCounterValueKHR = 0;
- PFN_vkGetSemaphoreFdKHR vkGetSemaphoreFdKHR = 0;
-#if defined( VK_USE_PLATFORM_WIN32_KHR )
- PFN_vkGetSemaphoreWin32HandleKHR vkGetSemaphoreWin32HandleKHR = 0;
-#else
- PFN_dummy placeholder_dont_call_vkGetSemaphoreWin32HandleKHR = 0;
-#endif /*VK_USE_PLATFORM_WIN32_KHR*/
+ PFN_vkCmdSetRayTracingPipelineStackSizeKHR vkCmdSetRayTracingPipelineStackSizeKHR = 0;
+
+ //=== VK_EXT_vertex_input_dynamic_state ===
+ PFN_vkCmdSetVertexInputEXT vkCmdSetVertexInputEXT = 0;
+
#if defined( VK_USE_PLATFORM_FUCHSIA )
- PFN_vkGetSemaphoreZirconHandleFUCHSIA vkGetSemaphoreZirconHandleFUCHSIA = 0;
+ //=== VK_FUCHSIA_external_memory ===
+ PFN_vkGetMemoryZirconHandleFUCHSIA vkGetMemoryZirconHandleFUCHSIA = 0;
+ PFN_vkGetMemoryZirconHandlePropertiesFUCHSIA vkGetMemoryZirconHandlePropertiesFUCHSIA = 0;
#else
- PFN_dummy placeholder_dont_call_vkGetSemaphoreZirconHandleFUCHSIA = 0;
+ PFN_dummy vkGetMemoryZirconHandleFUCHSIA_placeholder = 0;
+ PFN_dummy vkGetMemoryZirconHandlePropertiesFUCHSIA_placeholder = 0;
#endif /*VK_USE_PLATFORM_FUCHSIA*/
- PFN_vkGetShaderInfoAMD vkGetShaderInfoAMD = 0;
- PFN_vkGetSubpassShadingMaxWorkgroupSizeHUAWEI vkGetSubpassShadingMaxWorkgroupSizeHUAWEI = 0;
- PFN_vkGetSwapchainCounterEXT vkGetSwapchainCounterEXT = 0;
- PFN_vkGetSwapchainImagesKHR vkGetSwapchainImagesKHR = 0;
- PFN_vkGetSwapchainStatusKHR vkGetSwapchainStatusKHR = 0;
- PFN_vkGetValidationCacheDataEXT vkGetValidationCacheDataEXT = 0;
-#if defined( VK_ENABLE_BETA_EXTENSIONS )
- PFN_vkGetVideoSessionMemoryRequirementsKHR vkGetVideoSessionMemoryRequirementsKHR = 0;
-#else
- PFN_dummy placeholder_dont_call_vkGetVideoSessionMemoryRequirementsKHR = 0;
-#endif /*VK_ENABLE_BETA_EXTENSIONS*/
-#if defined( VK_USE_PLATFORM_WIN32_KHR )
- PFN_vkGetWinrtDisplayNV vkGetWinrtDisplayNV = 0;
-#else
- PFN_dummy placeholder_dont_call_vkGetWinrtDisplayNV = 0;
-#endif /*VK_USE_PLATFORM_WIN32_KHR*/
- PFN_vkImportFenceFdKHR vkImportFenceFdKHR = 0;
-#if defined( VK_USE_PLATFORM_WIN32_KHR )
- PFN_vkImportFenceWin32HandleKHR vkImportFenceWin32HandleKHR = 0;
-#else
- PFN_dummy placeholder_dont_call_vkImportFenceWin32HandleKHR = 0;
-#endif /*VK_USE_PLATFORM_WIN32_KHR*/
- PFN_vkImportSemaphoreFdKHR vkImportSemaphoreFdKHR = 0;
-#if defined( VK_USE_PLATFORM_WIN32_KHR )
- PFN_vkImportSemaphoreWin32HandleKHR vkImportSemaphoreWin32HandleKHR = 0;
-#else
- PFN_dummy placeholder_dont_call_vkImportSemaphoreWin32HandleKHR = 0;
-#endif /*VK_USE_PLATFORM_WIN32_KHR*/
+
#if defined( VK_USE_PLATFORM_FUCHSIA )
+ //=== VK_FUCHSIA_external_semaphore ===
PFN_vkImportSemaphoreZirconHandleFUCHSIA vkImportSemaphoreZirconHandleFUCHSIA = 0;
+ PFN_vkGetSemaphoreZirconHandleFUCHSIA vkGetSemaphoreZirconHandleFUCHSIA = 0;
#else
- PFN_dummy placeholder_dont_call_vkImportSemaphoreZirconHandleFUCHSIA = 0;
+ PFN_dummy vkImportSemaphoreZirconHandleFUCHSIA_placeholder = 0;
+ PFN_dummy vkGetSemaphoreZirconHandleFUCHSIA_placeholder = 0;
#endif /*VK_USE_PLATFORM_FUCHSIA*/
- PFN_vkInitializePerformanceApiINTEL vkInitializePerformanceApiINTEL = 0;
- PFN_vkInvalidateMappedMemoryRanges vkInvalidateMappedMemoryRanges = 0;
- PFN_vkMapMemory vkMapMemory = 0;
- PFN_vkMergePipelineCaches vkMergePipelineCaches = 0;
- PFN_vkMergeValidationCachesEXT vkMergeValidationCachesEXT = 0;
- PFN_vkQueueBeginDebugUtilsLabelEXT vkQueueBeginDebugUtilsLabelEXT = 0;
- PFN_vkQueueBindSparse vkQueueBindSparse = 0;
- PFN_vkQueueEndDebugUtilsLabelEXT vkQueueEndDebugUtilsLabelEXT = 0;
- PFN_vkQueueInsertDebugUtilsLabelEXT vkQueueInsertDebugUtilsLabelEXT = 0;
- PFN_vkQueuePresentKHR vkQueuePresentKHR = 0;
- PFN_vkQueueSetPerformanceConfigurationINTEL vkQueueSetPerformanceConfigurationINTEL = 0;
- PFN_vkQueueSubmit vkQueueSubmit = 0;
- PFN_vkQueueSubmit2KHR vkQueueSubmit2KHR = 0;
- PFN_vkQueueWaitIdle vkQueueWaitIdle = 0;
- PFN_vkRegisterDeviceEventEXT vkRegisterDeviceEventEXT = 0;
- PFN_vkRegisterDisplayEventEXT vkRegisterDisplayEventEXT = 0;
- PFN_vkReleaseDisplayEXT vkReleaseDisplayEXT = 0;
-#if defined( VK_USE_PLATFORM_WIN32_KHR )
- PFN_vkReleaseFullScreenExclusiveModeEXT vkReleaseFullScreenExclusiveModeEXT = 0;
-#else
- PFN_dummy placeholder_dont_call_vkReleaseFullScreenExclusiveModeEXT = 0;
-#endif /*VK_USE_PLATFORM_WIN32_KHR*/
- PFN_vkReleasePerformanceConfigurationINTEL vkReleasePerformanceConfigurationINTEL = 0;
- PFN_vkReleaseProfilingLockKHR vkReleaseProfilingLockKHR = 0;
- PFN_vkResetCommandBuffer vkResetCommandBuffer = 0;
- PFN_vkResetCommandPool vkResetCommandPool = 0;
- PFN_vkResetDescriptorPool vkResetDescriptorPool = 0;
- PFN_vkResetEvent vkResetEvent = 0;
- PFN_vkResetFences vkResetFences = 0;
- PFN_vkResetQueryPool vkResetQueryPool = 0;
- PFN_vkResetQueryPoolEXT vkResetQueryPoolEXT = 0;
- PFN_vkSetDebugUtilsObjectNameEXT vkSetDebugUtilsObjectNameEXT = 0;
- PFN_vkSetDebugUtilsObjectTagEXT vkSetDebugUtilsObjectTagEXT = 0;
- PFN_vkSetEvent vkSetEvent = 0;
- PFN_vkSetHdrMetadataEXT vkSetHdrMetadataEXT = 0;
- PFN_vkSetLocalDimmingAMD vkSetLocalDimmingAMD = 0;
- PFN_vkSetPrivateDataEXT vkSetPrivateDataEXT = 0;
- PFN_vkSignalSemaphore vkSignalSemaphore = 0;
- PFN_vkSignalSemaphoreKHR vkSignalSemaphoreKHR = 0;
- PFN_vkSubmitDebugUtilsMessageEXT vkSubmitDebugUtilsMessageEXT = 0;
- PFN_vkTrimCommandPool vkTrimCommandPool = 0;
- PFN_vkTrimCommandPoolKHR vkTrimCommandPoolKHR = 0;
- PFN_vkUninitializePerformanceApiINTEL vkUninitializePerformanceApiINTEL = 0;
- PFN_vkUnmapMemory vkUnmapMemory = 0;
- PFN_vkUpdateDescriptorSetWithTemplate vkUpdateDescriptorSetWithTemplate = 0;
- PFN_vkUpdateDescriptorSetWithTemplateKHR vkUpdateDescriptorSetWithTemplateKHR = 0;
- PFN_vkUpdateDescriptorSets vkUpdateDescriptorSets = 0;
-#if defined( VK_ENABLE_BETA_EXTENSIONS )
- PFN_vkUpdateVideoSessionParametersKHR vkUpdateVideoSessionParametersKHR = 0;
+
+ //=== VK_HUAWEI_subpass_shading ===
+ PFN_vkGetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI vkGetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI = 0;
+ PFN_vkCmdSubpassShadingHUAWEI vkCmdSubpassShadingHUAWEI = 0;
+
+ //=== VK_HUAWEI_invocation_mask ===
+ PFN_vkCmdBindInvocationMaskHUAWEI vkCmdBindInvocationMaskHUAWEI = 0;
+
+ //=== VK_NV_external_memory_rdma ===
+ PFN_vkGetMemoryRemoteAddressNV vkGetMemoryRemoteAddressNV = 0;
+
+ //=== VK_EXT_extended_dynamic_state2 ===
+ PFN_vkCmdSetPatchControlPointsEXT vkCmdSetPatchControlPointsEXT = 0;
+ PFN_vkCmdSetRasterizerDiscardEnableEXT vkCmdSetRasterizerDiscardEnableEXT = 0;
+ PFN_vkCmdSetDepthBiasEnableEXT vkCmdSetDepthBiasEnableEXT = 0;
+ PFN_vkCmdSetLogicOpEXT vkCmdSetLogicOpEXT = 0;
+ PFN_vkCmdSetPrimitiveRestartEnableEXT vkCmdSetPrimitiveRestartEnableEXT = 0;
+
+#if defined( VK_USE_PLATFORM_SCREEN_QNX )
+ //=== VK_QNX_screen_surface ===
+ PFN_vkCreateScreenSurfaceQNX vkCreateScreenSurfaceQNX = 0;
+ PFN_vkGetPhysicalDeviceScreenPresentationSupportQNX vkGetPhysicalDeviceScreenPresentationSupportQNX = 0;
#else
- PFN_dummy placeholder_dont_call_vkUpdateVideoSessionParametersKHR = 0;
-#endif /*VK_ENABLE_BETA_EXTENSIONS*/
- PFN_vkWaitForFences vkWaitForFences = 0;
- PFN_vkWaitSemaphores vkWaitSemaphores = 0;
- PFN_vkWaitSemaphoresKHR vkWaitSemaphoresKHR = 0;
- PFN_vkWriteAccelerationStructuresPropertiesKHR vkWriteAccelerationStructuresPropertiesKHR = 0;
+ PFN_dummy vkCreateScreenSurfaceQNX_placeholder = 0;
+ PFN_dummy vkGetPhysicalDeviceScreenPresentationSupportQNX_placeholder = 0;
+#endif /*VK_USE_PLATFORM_SCREEN_QNX*/
+
+ //=== VK_EXT_color_write_enable ===
+ PFN_vkCmdSetColorWriteEnableEXT vkCmdSetColorWriteEnableEXT = 0;
+
+ //=== VK_EXT_multi_draw ===
+ PFN_vkCmdDrawMultiEXT vkCmdDrawMultiEXT = 0;
+ PFN_vkCmdDrawMultiIndexedEXT vkCmdDrawMultiIndexedEXT = 0;
public:
DispatchLoaderDynamic() VULKAN_HPP_NOEXCEPT = default;
@@ -10850,11 +11483,15 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_ASSERT( getInstanceProcAddr );
vkGetInstanceProcAddr = getInstanceProcAddr;
- vkCreateInstance = PFN_vkCreateInstance( vkGetInstanceProcAddr( NULL, "vkCreateInstance" ) );
+
+ //=== VK_VERSION_1_0 ===
+ vkCreateInstance = PFN_vkCreateInstance( vkGetInstanceProcAddr( NULL, "vkCreateInstance" ) );
vkEnumerateInstanceExtensionProperties = PFN_vkEnumerateInstanceExtensionProperties(
vkGetInstanceProcAddr( NULL, "vkEnumerateInstanceExtensionProperties" ) );
vkEnumerateInstanceLayerProperties =
PFN_vkEnumerateInstanceLayerProperties( vkGetInstanceProcAddr( NULL, "vkEnumerateInstanceLayerProperties" ) );
+
+ //=== VK_VERSION_1_1 ===
vkEnumerateInstanceVersion =
PFN_vkEnumerateInstanceVersion( vkGetInstanceProcAddr( NULL, "vkEnumerateInstanceVersion" ) );
}
@@ -10886,1951 +11523,2267 @@ namespace VULKAN_HPP_NAMESPACE
void init( VULKAN_HPP_NAMESPACE::Instance instanceCpp ) VULKAN_HPP_NOEXCEPT
{
VkInstance instance = static_cast<VkInstance>( instanceCpp );
- vkAcquireDrmDisplayEXT =
- PFN_vkAcquireDrmDisplayEXT( vkGetInstanceProcAddr( instance, "vkAcquireDrmDisplayEXT" ) );
-#if defined( VK_USE_PLATFORM_WIN32_KHR )
- vkAcquireWinrtDisplayNV =
- PFN_vkAcquireWinrtDisplayNV( vkGetInstanceProcAddr( instance, "vkAcquireWinrtDisplayNV" ) );
-#endif /*VK_USE_PLATFORM_WIN32_KHR*/
-#if defined( VK_USE_PLATFORM_XLIB_XRANDR_EXT )
- vkAcquireXlibDisplayEXT =
- PFN_vkAcquireXlibDisplayEXT( vkGetInstanceProcAddr( instance, "vkAcquireXlibDisplayEXT" ) );
-#endif /*VK_USE_PLATFORM_XLIB_XRANDR_EXT*/
-#if defined( VK_USE_PLATFORM_ANDROID_KHR )
- vkCreateAndroidSurfaceKHR =
- PFN_vkCreateAndroidSurfaceKHR( vkGetInstanceProcAddr( instance, "vkCreateAndroidSurfaceKHR" ) );
-#endif /*VK_USE_PLATFORM_ANDROID_KHR*/
- vkCreateDebugReportCallbackEXT =
- PFN_vkCreateDebugReportCallbackEXT( vkGetInstanceProcAddr( instance, "vkCreateDebugReportCallbackEXT" ) );
- vkCreateDebugUtilsMessengerEXT =
- PFN_vkCreateDebugUtilsMessengerEXT( vkGetInstanceProcAddr( instance, "vkCreateDebugUtilsMessengerEXT" ) );
- vkCreateDevice = PFN_vkCreateDevice( vkGetInstanceProcAddr( instance, "vkCreateDevice" ) );
-#if defined( VK_USE_PLATFORM_DIRECTFB_EXT )
- vkCreateDirectFBSurfaceEXT =
- PFN_vkCreateDirectFBSurfaceEXT( vkGetInstanceProcAddr( instance, "vkCreateDirectFBSurfaceEXT" ) );
-#endif /*VK_USE_PLATFORM_DIRECTFB_EXT*/
- vkCreateDisplayModeKHR =
- PFN_vkCreateDisplayModeKHR( vkGetInstanceProcAddr( instance, "vkCreateDisplayModeKHR" ) );
- vkCreateDisplayPlaneSurfaceKHR =
- PFN_vkCreateDisplayPlaneSurfaceKHR( vkGetInstanceProcAddr( instance, "vkCreateDisplayPlaneSurfaceKHR" ) );
- vkCreateHeadlessSurfaceEXT =
- PFN_vkCreateHeadlessSurfaceEXT( vkGetInstanceProcAddr( instance, "vkCreateHeadlessSurfaceEXT" ) );
-#if defined( VK_USE_PLATFORM_IOS_MVK )
- vkCreateIOSSurfaceMVK = PFN_vkCreateIOSSurfaceMVK( vkGetInstanceProcAddr( instance, "vkCreateIOSSurfaceMVK" ) );
-#endif /*VK_USE_PLATFORM_IOS_MVK*/
-#if defined( VK_USE_PLATFORM_FUCHSIA )
- vkCreateImagePipeSurfaceFUCHSIA =
- PFN_vkCreateImagePipeSurfaceFUCHSIA( vkGetInstanceProcAddr( instance, "vkCreateImagePipeSurfaceFUCHSIA" ) );
-#endif /*VK_USE_PLATFORM_FUCHSIA*/
-#if defined( VK_USE_PLATFORM_MACOS_MVK )
- vkCreateMacOSSurfaceMVK =
- PFN_vkCreateMacOSSurfaceMVK( vkGetInstanceProcAddr( instance, "vkCreateMacOSSurfaceMVK" ) );
-#endif /*VK_USE_PLATFORM_MACOS_MVK*/
-#if defined( VK_USE_PLATFORM_METAL_EXT )
- vkCreateMetalSurfaceEXT =
- PFN_vkCreateMetalSurfaceEXT( vkGetInstanceProcAddr( instance, "vkCreateMetalSurfaceEXT" ) );
-#endif /*VK_USE_PLATFORM_METAL_EXT*/
-#if defined( VK_USE_PLATFORM_SCREEN_QNX )
- vkCreateScreenSurfaceQNX =
- PFN_vkCreateScreenSurfaceQNX( vkGetInstanceProcAddr( instance, "vkCreateScreenSurfaceQNX" ) );
-#endif /*VK_USE_PLATFORM_SCREEN_QNX*/
-#if defined( VK_USE_PLATFORM_GGP )
- vkCreateStreamDescriptorSurfaceGGP = PFN_vkCreateStreamDescriptorSurfaceGGP(
- vkGetInstanceProcAddr( instance, "vkCreateStreamDescriptorSurfaceGGP" ) );
-#endif /*VK_USE_PLATFORM_GGP*/
-#if defined( VK_USE_PLATFORM_VI_NN )
- vkCreateViSurfaceNN = PFN_vkCreateViSurfaceNN( vkGetInstanceProcAddr( instance, "vkCreateViSurfaceNN" ) );
-#endif /*VK_USE_PLATFORM_VI_NN*/
-#if defined( VK_USE_PLATFORM_WAYLAND_KHR )
- vkCreateWaylandSurfaceKHR =
- PFN_vkCreateWaylandSurfaceKHR( vkGetInstanceProcAddr( instance, "vkCreateWaylandSurfaceKHR" ) );
-#endif /*VK_USE_PLATFORM_WAYLAND_KHR*/
-#if defined( VK_USE_PLATFORM_WIN32_KHR )
- vkCreateWin32SurfaceKHR =
- PFN_vkCreateWin32SurfaceKHR( vkGetInstanceProcAddr( instance, "vkCreateWin32SurfaceKHR" ) );
-#endif /*VK_USE_PLATFORM_WIN32_KHR*/
-#if defined( VK_USE_PLATFORM_XCB_KHR )
- vkCreateXcbSurfaceKHR = PFN_vkCreateXcbSurfaceKHR( vkGetInstanceProcAddr( instance, "vkCreateXcbSurfaceKHR" ) );
-#endif /*VK_USE_PLATFORM_XCB_KHR*/
-#if defined( VK_USE_PLATFORM_XLIB_KHR )
- vkCreateXlibSurfaceKHR =
- PFN_vkCreateXlibSurfaceKHR( vkGetInstanceProcAddr( instance, "vkCreateXlibSurfaceKHR" ) );
-#endif /*VK_USE_PLATFORM_XLIB_KHR*/
- vkDebugReportMessageEXT =
- PFN_vkDebugReportMessageEXT( vkGetInstanceProcAddr( instance, "vkDebugReportMessageEXT" ) );
- vkDestroyDebugReportCallbackEXT =
- PFN_vkDestroyDebugReportCallbackEXT( vkGetInstanceProcAddr( instance, "vkDestroyDebugReportCallbackEXT" ) );
- vkDestroyDebugUtilsMessengerEXT =
- PFN_vkDestroyDebugUtilsMessengerEXT( vkGetInstanceProcAddr( instance, "vkDestroyDebugUtilsMessengerEXT" ) );
- vkDestroyInstance = PFN_vkDestroyInstance( vkGetInstanceProcAddr( instance, "vkDestroyInstance" ) );
- vkDestroySurfaceKHR = PFN_vkDestroySurfaceKHR( vkGetInstanceProcAddr( instance, "vkDestroySurfaceKHR" ) );
- vkEnumerateDeviceExtensionProperties = PFN_vkEnumerateDeviceExtensionProperties(
- vkGetInstanceProcAddr( instance, "vkEnumerateDeviceExtensionProperties" ) );
- vkEnumerateDeviceLayerProperties =
- PFN_vkEnumerateDeviceLayerProperties( vkGetInstanceProcAddr( instance, "vkEnumerateDeviceLayerProperties" ) );
- vkEnumeratePhysicalDeviceGroups =
- PFN_vkEnumeratePhysicalDeviceGroups( vkGetInstanceProcAddr( instance, "vkEnumeratePhysicalDeviceGroups" ) );
- vkEnumeratePhysicalDeviceGroupsKHR = PFN_vkEnumeratePhysicalDeviceGroupsKHR(
- vkGetInstanceProcAddr( instance, "vkEnumeratePhysicalDeviceGroupsKHR" ) );
- if ( !vkEnumeratePhysicalDeviceGroups )
- vkEnumeratePhysicalDeviceGroups = vkEnumeratePhysicalDeviceGroupsKHR;
- vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR =
- PFN_vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR(
- vkGetInstanceProcAddr( instance, "vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR" ) );
+
+ //=== VK_VERSION_1_0 ===
+ vkDestroyInstance = PFN_vkDestroyInstance( vkGetInstanceProcAddr( instance, "vkDestroyInstance" ) );
vkEnumeratePhysicalDevices =
PFN_vkEnumeratePhysicalDevices( vkGetInstanceProcAddr( instance, "vkEnumeratePhysicalDevices" ) );
- vkGetDisplayModeProperties2KHR =
- PFN_vkGetDisplayModeProperties2KHR( vkGetInstanceProcAddr( instance, "vkGetDisplayModeProperties2KHR" ) );
- vkGetDisplayModePropertiesKHR =
- PFN_vkGetDisplayModePropertiesKHR( vkGetInstanceProcAddr( instance, "vkGetDisplayModePropertiesKHR" ) );
- vkGetDisplayPlaneCapabilities2KHR =
- PFN_vkGetDisplayPlaneCapabilities2KHR( vkGetInstanceProcAddr( instance, "vkGetDisplayPlaneCapabilities2KHR" ) );
- vkGetDisplayPlaneCapabilitiesKHR =
- PFN_vkGetDisplayPlaneCapabilitiesKHR( vkGetInstanceProcAddr( instance, "vkGetDisplayPlaneCapabilitiesKHR" ) );
- vkGetDisplayPlaneSupportedDisplaysKHR = PFN_vkGetDisplayPlaneSupportedDisplaysKHR(
- vkGetInstanceProcAddr( instance, "vkGetDisplayPlaneSupportedDisplaysKHR" ) );
- vkGetDrmDisplayEXT = PFN_vkGetDrmDisplayEXT( vkGetInstanceProcAddr( instance, "vkGetDrmDisplayEXT" ) );
- vkGetInstanceProcAddr = PFN_vkGetInstanceProcAddr( vkGetInstanceProcAddr( instance, "vkGetInstanceProcAddr" ) );
- vkGetPhysicalDeviceCalibrateableTimeDomainsEXT = PFN_vkGetPhysicalDeviceCalibrateableTimeDomainsEXT(
- vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceCalibrateableTimeDomainsEXT" ) );
- vkGetPhysicalDeviceCooperativeMatrixPropertiesNV = PFN_vkGetPhysicalDeviceCooperativeMatrixPropertiesNV(
- vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceCooperativeMatrixPropertiesNV" ) );
-#if defined( VK_USE_PLATFORM_DIRECTFB_EXT )
- vkGetPhysicalDeviceDirectFBPresentationSupportEXT = PFN_vkGetPhysicalDeviceDirectFBPresentationSupportEXT(
- vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceDirectFBPresentationSupportEXT" ) );
-#endif /*VK_USE_PLATFORM_DIRECTFB_EXT*/
- vkGetPhysicalDeviceDisplayPlaneProperties2KHR = PFN_vkGetPhysicalDeviceDisplayPlaneProperties2KHR(
- vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceDisplayPlaneProperties2KHR" ) );
- vkGetPhysicalDeviceDisplayPlanePropertiesKHR = PFN_vkGetPhysicalDeviceDisplayPlanePropertiesKHR(
- vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceDisplayPlanePropertiesKHR" ) );
- vkGetPhysicalDeviceDisplayProperties2KHR = PFN_vkGetPhysicalDeviceDisplayProperties2KHR(
- vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceDisplayProperties2KHR" ) );
- vkGetPhysicalDeviceDisplayPropertiesKHR = PFN_vkGetPhysicalDeviceDisplayPropertiesKHR(
- vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceDisplayPropertiesKHR" ) );
- vkGetPhysicalDeviceExternalBufferProperties = PFN_vkGetPhysicalDeviceExternalBufferProperties(
- vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceExternalBufferProperties" ) );
- vkGetPhysicalDeviceExternalBufferPropertiesKHR = PFN_vkGetPhysicalDeviceExternalBufferPropertiesKHR(
- vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceExternalBufferPropertiesKHR" ) );
- if ( !vkGetPhysicalDeviceExternalBufferProperties )
- vkGetPhysicalDeviceExternalBufferProperties = vkGetPhysicalDeviceExternalBufferPropertiesKHR;
- vkGetPhysicalDeviceExternalFenceProperties = PFN_vkGetPhysicalDeviceExternalFenceProperties(
- vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceExternalFenceProperties" ) );
- vkGetPhysicalDeviceExternalFencePropertiesKHR = PFN_vkGetPhysicalDeviceExternalFencePropertiesKHR(
- vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceExternalFencePropertiesKHR" ) );
- if ( !vkGetPhysicalDeviceExternalFenceProperties )
- vkGetPhysicalDeviceExternalFenceProperties = vkGetPhysicalDeviceExternalFencePropertiesKHR;
- vkGetPhysicalDeviceExternalImageFormatPropertiesNV = PFN_vkGetPhysicalDeviceExternalImageFormatPropertiesNV(
- vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceExternalImageFormatPropertiesNV" ) );
- vkGetPhysicalDeviceExternalSemaphoreProperties = PFN_vkGetPhysicalDeviceExternalSemaphoreProperties(
- vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceExternalSemaphoreProperties" ) );
- vkGetPhysicalDeviceExternalSemaphorePropertiesKHR = PFN_vkGetPhysicalDeviceExternalSemaphorePropertiesKHR(
- vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceExternalSemaphorePropertiesKHR" ) );
- if ( !vkGetPhysicalDeviceExternalSemaphoreProperties )
- vkGetPhysicalDeviceExternalSemaphoreProperties = vkGetPhysicalDeviceExternalSemaphorePropertiesKHR;
vkGetPhysicalDeviceFeatures =
PFN_vkGetPhysicalDeviceFeatures( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceFeatures" ) );
- vkGetPhysicalDeviceFeatures2 =
- PFN_vkGetPhysicalDeviceFeatures2( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceFeatures2" ) );
- vkGetPhysicalDeviceFeatures2KHR =
- PFN_vkGetPhysicalDeviceFeatures2KHR( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceFeatures2KHR" ) );
- if ( !vkGetPhysicalDeviceFeatures2 )
- vkGetPhysicalDeviceFeatures2 = vkGetPhysicalDeviceFeatures2KHR;
vkGetPhysicalDeviceFormatProperties = PFN_vkGetPhysicalDeviceFormatProperties(
vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceFormatProperties" ) );
- vkGetPhysicalDeviceFormatProperties2 = PFN_vkGetPhysicalDeviceFormatProperties2(
- vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceFormatProperties2" ) );
- vkGetPhysicalDeviceFormatProperties2KHR = PFN_vkGetPhysicalDeviceFormatProperties2KHR(
- vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceFormatProperties2KHR" ) );
- if ( !vkGetPhysicalDeviceFormatProperties2 )
- vkGetPhysicalDeviceFormatProperties2 = vkGetPhysicalDeviceFormatProperties2KHR;
- vkGetPhysicalDeviceFragmentShadingRatesKHR = PFN_vkGetPhysicalDeviceFragmentShadingRatesKHR(
- vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceFragmentShadingRatesKHR" ) );
vkGetPhysicalDeviceImageFormatProperties = PFN_vkGetPhysicalDeviceImageFormatProperties(
vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceImageFormatProperties" ) );
- vkGetPhysicalDeviceImageFormatProperties2 = PFN_vkGetPhysicalDeviceImageFormatProperties2(
- vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceImageFormatProperties2" ) );
- vkGetPhysicalDeviceImageFormatProperties2KHR = PFN_vkGetPhysicalDeviceImageFormatProperties2KHR(
- vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceImageFormatProperties2KHR" ) );
- if ( !vkGetPhysicalDeviceImageFormatProperties2 )
- vkGetPhysicalDeviceImageFormatProperties2 = vkGetPhysicalDeviceImageFormatProperties2KHR;
- vkGetPhysicalDeviceMemoryProperties = PFN_vkGetPhysicalDeviceMemoryProperties(
- vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceMemoryProperties" ) );
- vkGetPhysicalDeviceMemoryProperties2 = PFN_vkGetPhysicalDeviceMemoryProperties2(
- vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceMemoryProperties2" ) );
- vkGetPhysicalDeviceMemoryProperties2KHR = PFN_vkGetPhysicalDeviceMemoryProperties2KHR(
- vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceMemoryProperties2KHR" ) );
- if ( !vkGetPhysicalDeviceMemoryProperties2 )
- vkGetPhysicalDeviceMemoryProperties2 = vkGetPhysicalDeviceMemoryProperties2KHR;
- vkGetPhysicalDeviceMultisamplePropertiesEXT = PFN_vkGetPhysicalDeviceMultisamplePropertiesEXT(
- vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceMultisamplePropertiesEXT" ) );
- vkGetPhysicalDevicePresentRectanglesKHR = PFN_vkGetPhysicalDevicePresentRectanglesKHR(
- vkGetInstanceProcAddr( instance, "vkGetPhysicalDevicePresentRectanglesKHR" ) );
vkGetPhysicalDeviceProperties =
PFN_vkGetPhysicalDeviceProperties( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceProperties" ) );
- vkGetPhysicalDeviceProperties2 =
- PFN_vkGetPhysicalDeviceProperties2( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceProperties2" ) );
- vkGetPhysicalDeviceProperties2KHR =
- PFN_vkGetPhysicalDeviceProperties2KHR( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceProperties2KHR" ) );
- if ( !vkGetPhysicalDeviceProperties2 )
- vkGetPhysicalDeviceProperties2 = vkGetPhysicalDeviceProperties2KHR;
- vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR =
- PFN_vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR(
- vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR" ) );
vkGetPhysicalDeviceQueueFamilyProperties = PFN_vkGetPhysicalDeviceQueueFamilyProperties(
vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceQueueFamilyProperties" ) );
- vkGetPhysicalDeviceQueueFamilyProperties2 = PFN_vkGetPhysicalDeviceQueueFamilyProperties2(
- vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceQueueFamilyProperties2" ) );
- vkGetPhysicalDeviceQueueFamilyProperties2KHR = PFN_vkGetPhysicalDeviceQueueFamilyProperties2KHR(
- vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceQueueFamilyProperties2KHR" ) );
- if ( !vkGetPhysicalDeviceQueueFamilyProperties2 )
- vkGetPhysicalDeviceQueueFamilyProperties2 = vkGetPhysicalDeviceQueueFamilyProperties2KHR;
-#if defined( VK_USE_PLATFORM_SCREEN_QNX )
- vkGetPhysicalDeviceScreenPresentationSupportQNX = PFN_vkGetPhysicalDeviceScreenPresentationSupportQNX(
- vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceScreenPresentationSupportQNX" ) );
-#endif /*VK_USE_PLATFORM_SCREEN_QNX*/
+ vkGetPhysicalDeviceMemoryProperties = PFN_vkGetPhysicalDeviceMemoryProperties(
+ vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceMemoryProperties" ) );
+ vkGetInstanceProcAddr = PFN_vkGetInstanceProcAddr( vkGetInstanceProcAddr( instance, "vkGetInstanceProcAddr" ) );
+ vkGetDeviceProcAddr = PFN_vkGetDeviceProcAddr( vkGetInstanceProcAddr( instance, "vkGetDeviceProcAddr" ) );
+ vkCreateDevice = PFN_vkCreateDevice( vkGetInstanceProcAddr( instance, "vkCreateDevice" ) );
+ vkDestroyDevice = PFN_vkDestroyDevice( vkGetInstanceProcAddr( instance, "vkDestroyDevice" ) );
+ vkEnumerateDeviceExtensionProperties = PFN_vkEnumerateDeviceExtensionProperties(
+ vkGetInstanceProcAddr( instance, "vkEnumerateDeviceExtensionProperties" ) );
+ vkEnumerateDeviceLayerProperties =
+ PFN_vkEnumerateDeviceLayerProperties( vkGetInstanceProcAddr( instance, "vkEnumerateDeviceLayerProperties" ) );
+ vkGetDeviceQueue = PFN_vkGetDeviceQueue( vkGetInstanceProcAddr( instance, "vkGetDeviceQueue" ) );
+ vkQueueSubmit = PFN_vkQueueSubmit( vkGetInstanceProcAddr( instance, "vkQueueSubmit" ) );
+ vkQueueWaitIdle = PFN_vkQueueWaitIdle( vkGetInstanceProcAddr( instance, "vkQueueWaitIdle" ) );
+ vkDeviceWaitIdle = PFN_vkDeviceWaitIdle( vkGetInstanceProcAddr( instance, "vkDeviceWaitIdle" ) );
+ vkAllocateMemory = PFN_vkAllocateMemory( vkGetInstanceProcAddr( instance, "vkAllocateMemory" ) );
+ vkFreeMemory = PFN_vkFreeMemory( vkGetInstanceProcAddr( instance, "vkFreeMemory" ) );
+ vkMapMemory = PFN_vkMapMemory( vkGetInstanceProcAddr( instance, "vkMapMemory" ) );
+ vkUnmapMemory = PFN_vkUnmapMemory( vkGetInstanceProcAddr( instance, "vkUnmapMemory" ) );
+ vkFlushMappedMemoryRanges =
+ PFN_vkFlushMappedMemoryRanges( vkGetInstanceProcAddr( instance, "vkFlushMappedMemoryRanges" ) );
+ vkInvalidateMappedMemoryRanges =
+ PFN_vkInvalidateMappedMemoryRanges( vkGetInstanceProcAddr( instance, "vkInvalidateMappedMemoryRanges" ) );
+ vkGetDeviceMemoryCommitment =
+ PFN_vkGetDeviceMemoryCommitment( vkGetInstanceProcAddr( instance, "vkGetDeviceMemoryCommitment" ) );
+ vkBindBufferMemory = PFN_vkBindBufferMemory( vkGetInstanceProcAddr( instance, "vkBindBufferMemory" ) );
+ vkBindImageMemory = PFN_vkBindImageMemory( vkGetInstanceProcAddr( instance, "vkBindImageMemory" ) );
+ vkGetBufferMemoryRequirements =
+ PFN_vkGetBufferMemoryRequirements( vkGetInstanceProcAddr( instance, "vkGetBufferMemoryRequirements" ) );
+ vkGetImageMemoryRequirements =
+ PFN_vkGetImageMemoryRequirements( vkGetInstanceProcAddr( instance, "vkGetImageMemoryRequirements" ) );
+ vkGetImageSparseMemoryRequirements = PFN_vkGetImageSparseMemoryRequirements(
+ vkGetInstanceProcAddr( instance, "vkGetImageSparseMemoryRequirements" ) );
vkGetPhysicalDeviceSparseImageFormatProperties = PFN_vkGetPhysicalDeviceSparseImageFormatProperties(
vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceSparseImageFormatProperties" ) );
+ vkQueueBindSparse = PFN_vkQueueBindSparse( vkGetInstanceProcAddr( instance, "vkQueueBindSparse" ) );
+ vkCreateFence = PFN_vkCreateFence( vkGetInstanceProcAddr( instance, "vkCreateFence" ) );
+ vkDestroyFence = PFN_vkDestroyFence( vkGetInstanceProcAddr( instance, "vkDestroyFence" ) );
+ vkResetFences = PFN_vkResetFences( vkGetInstanceProcAddr( instance, "vkResetFences" ) );
+ vkGetFenceStatus = PFN_vkGetFenceStatus( vkGetInstanceProcAddr( instance, "vkGetFenceStatus" ) );
+ vkWaitForFences = PFN_vkWaitForFences( vkGetInstanceProcAddr( instance, "vkWaitForFences" ) );
+ vkCreateSemaphore = PFN_vkCreateSemaphore( vkGetInstanceProcAddr( instance, "vkCreateSemaphore" ) );
+ vkDestroySemaphore = PFN_vkDestroySemaphore( vkGetInstanceProcAddr( instance, "vkDestroySemaphore" ) );
+ vkCreateEvent = PFN_vkCreateEvent( vkGetInstanceProcAddr( instance, "vkCreateEvent" ) );
+ vkDestroyEvent = PFN_vkDestroyEvent( vkGetInstanceProcAddr( instance, "vkDestroyEvent" ) );
+ vkGetEventStatus = PFN_vkGetEventStatus( vkGetInstanceProcAddr( instance, "vkGetEventStatus" ) );
+ vkSetEvent = PFN_vkSetEvent( vkGetInstanceProcAddr( instance, "vkSetEvent" ) );
+ vkResetEvent = PFN_vkResetEvent( vkGetInstanceProcAddr( instance, "vkResetEvent" ) );
+ vkCreateQueryPool = PFN_vkCreateQueryPool( vkGetInstanceProcAddr( instance, "vkCreateQueryPool" ) );
+ vkDestroyQueryPool = PFN_vkDestroyQueryPool( vkGetInstanceProcAddr( instance, "vkDestroyQueryPool" ) );
+ vkGetQueryPoolResults = PFN_vkGetQueryPoolResults( vkGetInstanceProcAddr( instance, "vkGetQueryPoolResults" ) );
+ vkCreateBuffer = PFN_vkCreateBuffer( vkGetInstanceProcAddr( instance, "vkCreateBuffer" ) );
+ vkDestroyBuffer = PFN_vkDestroyBuffer( vkGetInstanceProcAddr( instance, "vkDestroyBuffer" ) );
+ vkCreateBufferView = PFN_vkCreateBufferView( vkGetInstanceProcAddr( instance, "vkCreateBufferView" ) );
+ vkDestroyBufferView = PFN_vkDestroyBufferView( vkGetInstanceProcAddr( instance, "vkDestroyBufferView" ) );
+ vkCreateImage = PFN_vkCreateImage( vkGetInstanceProcAddr( instance, "vkCreateImage" ) );
+ vkDestroyImage = PFN_vkDestroyImage( vkGetInstanceProcAddr( instance, "vkDestroyImage" ) );
+ vkGetImageSubresourceLayout =
+ PFN_vkGetImageSubresourceLayout( vkGetInstanceProcAddr( instance, "vkGetImageSubresourceLayout" ) );
+ vkCreateImageView = PFN_vkCreateImageView( vkGetInstanceProcAddr( instance, "vkCreateImageView" ) );
+ vkDestroyImageView = PFN_vkDestroyImageView( vkGetInstanceProcAddr( instance, "vkDestroyImageView" ) );
+ vkCreateShaderModule = PFN_vkCreateShaderModule( vkGetInstanceProcAddr( instance, "vkCreateShaderModule" ) );
+ vkDestroyShaderModule = PFN_vkDestroyShaderModule( vkGetInstanceProcAddr( instance, "vkDestroyShaderModule" ) );
+ vkCreatePipelineCache = PFN_vkCreatePipelineCache( vkGetInstanceProcAddr( instance, "vkCreatePipelineCache" ) );
+ vkDestroyPipelineCache =
+ PFN_vkDestroyPipelineCache( vkGetInstanceProcAddr( instance, "vkDestroyPipelineCache" ) );
+ vkGetPipelineCacheData =
+ PFN_vkGetPipelineCacheData( vkGetInstanceProcAddr( instance, "vkGetPipelineCacheData" ) );
+ vkMergePipelineCaches = PFN_vkMergePipelineCaches( vkGetInstanceProcAddr( instance, "vkMergePipelineCaches" ) );
+ vkCreateGraphicsPipelines =
+ PFN_vkCreateGraphicsPipelines( vkGetInstanceProcAddr( instance, "vkCreateGraphicsPipelines" ) );
+ vkCreateComputePipelines =
+ PFN_vkCreateComputePipelines( vkGetInstanceProcAddr( instance, "vkCreateComputePipelines" ) );
+ vkDestroyPipeline = PFN_vkDestroyPipeline( vkGetInstanceProcAddr( instance, "vkDestroyPipeline" ) );
+ vkCreatePipelineLayout =
+ PFN_vkCreatePipelineLayout( vkGetInstanceProcAddr( instance, "vkCreatePipelineLayout" ) );
+ vkDestroyPipelineLayout =
+ PFN_vkDestroyPipelineLayout( vkGetInstanceProcAddr( instance, "vkDestroyPipelineLayout" ) );
+ vkCreateSampler = PFN_vkCreateSampler( vkGetInstanceProcAddr( instance, "vkCreateSampler" ) );
+ vkDestroySampler = PFN_vkDestroySampler( vkGetInstanceProcAddr( instance, "vkDestroySampler" ) );
+ vkCreateDescriptorSetLayout =
+ PFN_vkCreateDescriptorSetLayout( vkGetInstanceProcAddr( instance, "vkCreateDescriptorSetLayout" ) );
+ vkDestroyDescriptorSetLayout =
+ PFN_vkDestroyDescriptorSetLayout( vkGetInstanceProcAddr( instance, "vkDestroyDescriptorSetLayout" ) );
+ vkCreateDescriptorPool =
+ PFN_vkCreateDescriptorPool( vkGetInstanceProcAddr( instance, "vkCreateDescriptorPool" ) );
+ vkDestroyDescriptorPool =
+ PFN_vkDestroyDescriptorPool( vkGetInstanceProcAddr( instance, "vkDestroyDescriptorPool" ) );
+ vkResetDescriptorPool = PFN_vkResetDescriptorPool( vkGetInstanceProcAddr( instance, "vkResetDescriptorPool" ) );
+ vkAllocateDescriptorSets =
+ PFN_vkAllocateDescriptorSets( vkGetInstanceProcAddr( instance, "vkAllocateDescriptorSets" ) );
+ vkFreeDescriptorSets = PFN_vkFreeDescriptorSets( vkGetInstanceProcAddr( instance, "vkFreeDescriptorSets" ) );
+ vkUpdateDescriptorSets =
+ PFN_vkUpdateDescriptorSets( vkGetInstanceProcAddr( instance, "vkUpdateDescriptorSets" ) );
+ vkCreateFramebuffer = PFN_vkCreateFramebuffer( vkGetInstanceProcAddr( instance, "vkCreateFramebuffer" ) );
+ vkDestroyFramebuffer = PFN_vkDestroyFramebuffer( vkGetInstanceProcAddr( instance, "vkDestroyFramebuffer" ) );
+ vkCreateRenderPass = PFN_vkCreateRenderPass( vkGetInstanceProcAddr( instance, "vkCreateRenderPass" ) );
+ vkDestroyRenderPass = PFN_vkDestroyRenderPass( vkGetInstanceProcAddr( instance, "vkDestroyRenderPass" ) );
+ vkGetRenderAreaGranularity =
+ PFN_vkGetRenderAreaGranularity( vkGetInstanceProcAddr( instance, "vkGetRenderAreaGranularity" ) );
+ vkCreateCommandPool = PFN_vkCreateCommandPool( vkGetInstanceProcAddr( instance, "vkCreateCommandPool" ) );
+ vkDestroyCommandPool = PFN_vkDestroyCommandPool( vkGetInstanceProcAddr( instance, "vkDestroyCommandPool" ) );
+ vkResetCommandPool = PFN_vkResetCommandPool( vkGetInstanceProcAddr( instance, "vkResetCommandPool" ) );
+ vkAllocateCommandBuffers =
+ PFN_vkAllocateCommandBuffers( vkGetInstanceProcAddr( instance, "vkAllocateCommandBuffers" ) );
+ vkFreeCommandBuffers = PFN_vkFreeCommandBuffers( vkGetInstanceProcAddr( instance, "vkFreeCommandBuffers" ) );
+ vkBeginCommandBuffer = PFN_vkBeginCommandBuffer( vkGetInstanceProcAddr( instance, "vkBeginCommandBuffer" ) );
+ vkEndCommandBuffer = PFN_vkEndCommandBuffer( vkGetInstanceProcAddr( instance, "vkEndCommandBuffer" ) );
+ vkResetCommandBuffer = PFN_vkResetCommandBuffer( vkGetInstanceProcAddr( instance, "vkResetCommandBuffer" ) );
+ vkCmdBindPipeline = PFN_vkCmdBindPipeline( vkGetInstanceProcAddr( instance, "vkCmdBindPipeline" ) );
+ vkCmdSetViewport = PFN_vkCmdSetViewport( vkGetInstanceProcAddr( instance, "vkCmdSetViewport" ) );
+ vkCmdSetScissor = PFN_vkCmdSetScissor( vkGetInstanceProcAddr( instance, "vkCmdSetScissor" ) );
+ vkCmdSetLineWidth = PFN_vkCmdSetLineWidth( vkGetInstanceProcAddr( instance, "vkCmdSetLineWidth" ) );
+ vkCmdSetDepthBias = PFN_vkCmdSetDepthBias( vkGetInstanceProcAddr( instance, "vkCmdSetDepthBias" ) );
+ vkCmdSetBlendConstants =
+ PFN_vkCmdSetBlendConstants( vkGetInstanceProcAddr( instance, "vkCmdSetBlendConstants" ) );
+ vkCmdSetDepthBounds = PFN_vkCmdSetDepthBounds( vkGetInstanceProcAddr( instance, "vkCmdSetDepthBounds" ) );
+ vkCmdSetStencilCompareMask =
+ PFN_vkCmdSetStencilCompareMask( vkGetInstanceProcAddr( instance, "vkCmdSetStencilCompareMask" ) );
+ vkCmdSetStencilWriteMask =
+ PFN_vkCmdSetStencilWriteMask( vkGetInstanceProcAddr( instance, "vkCmdSetStencilWriteMask" ) );
+ vkCmdSetStencilReference =
+ PFN_vkCmdSetStencilReference( vkGetInstanceProcAddr( instance, "vkCmdSetStencilReference" ) );
+ vkCmdBindDescriptorSets =
+ PFN_vkCmdBindDescriptorSets( vkGetInstanceProcAddr( instance, "vkCmdBindDescriptorSets" ) );
+ vkCmdBindIndexBuffer = PFN_vkCmdBindIndexBuffer( vkGetInstanceProcAddr( instance, "vkCmdBindIndexBuffer" ) );
+ vkCmdBindVertexBuffers =
+ PFN_vkCmdBindVertexBuffers( vkGetInstanceProcAddr( instance, "vkCmdBindVertexBuffers" ) );
+ vkCmdDraw = PFN_vkCmdDraw( vkGetInstanceProcAddr( instance, "vkCmdDraw" ) );
+ vkCmdDrawIndexed = PFN_vkCmdDrawIndexed( vkGetInstanceProcAddr( instance, "vkCmdDrawIndexed" ) );
+ vkCmdDrawIndirect = PFN_vkCmdDrawIndirect( vkGetInstanceProcAddr( instance, "vkCmdDrawIndirect" ) );
+ vkCmdDrawIndexedIndirect =
+ PFN_vkCmdDrawIndexedIndirect( vkGetInstanceProcAddr( instance, "vkCmdDrawIndexedIndirect" ) );
+ vkCmdDispatch = PFN_vkCmdDispatch( vkGetInstanceProcAddr( instance, "vkCmdDispatch" ) );
+ vkCmdDispatchIndirect = PFN_vkCmdDispatchIndirect( vkGetInstanceProcAddr( instance, "vkCmdDispatchIndirect" ) );
+ vkCmdCopyBuffer = PFN_vkCmdCopyBuffer( vkGetInstanceProcAddr( instance, "vkCmdCopyBuffer" ) );
+ vkCmdCopyImage = PFN_vkCmdCopyImage( vkGetInstanceProcAddr( instance, "vkCmdCopyImage" ) );
+ vkCmdBlitImage = PFN_vkCmdBlitImage( vkGetInstanceProcAddr( instance, "vkCmdBlitImage" ) );
+ vkCmdCopyBufferToImage =
+ PFN_vkCmdCopyBufferToImage( vkGetInstanceProcAddr( instance, "vkCmdCopyBufferToImage" ) );
+ vkCmdCopyImageToBuffer =
+ PFN_vkCmdCopyImageToBuffer( vkGetInstanceProcAddr( instance, "vkCmdCopyImageToBuffer" ) );
+ vkCmdUpdateBuffer = PFN_vkCmdUpdateBuffer( vkGetInstanceProcAddr( instance, "vkCmdUpdateBuffer" ) );
+ vkCmdFillBuffer = PFN_vkCmdFillBuffer( vkGetInstanceProcAddr( instance, "vkCmdFillBuffer" ) );
+ vkCmdClearColorImage = PFN_vkCmdClearColorImage( vkGetInstanceProcAddr( instance, "vkCmdClearColorImage" ) );
+ vkCmdClearDepthStencilImage =
+ PFN_vkCmdClearDepthStencilImage( vkGetInstanceProcAddr( instance, "vkCmdClearDepthStencilImage" ) );
+ vkCmdClearAttachments = PFN_vkCmdClearAttachments( vkGetInstanceProcAddr( instance, "vkCmdClearAttachments" ) );
+ vkCmdResolveImage = PFN_vkCmdResolveImage( vkGetInstanceProcAddr( instance, "vkCmdResolveImage" ) );
+ vkCmdSetEvent = PFN_vkCmdSetEvent( vkGetInstanceProcAddr( instance, "vkCmdSetEvent" ) );
+ vkCmdResetEvent = PFN_vkCmdResetEvent( vkGetInstanceProcAddr( instance, "vkCmdResetEvent" ) );
+ vkCmdWaitEvents = PFN_vkCmdWaitEvents( vkGetInstanceProcAddr( instance, "vkCmdWaitEvents" ) );
+ vkCmdPipelineBarrier = PFN_vkCmdPipelineBarrier( vkGetInstanceProcAddr( instance, "vkCmdPipelineBarrier" ) );
+ vkCmdBeginQuery = PFN_vkCmdBeginQuery( vkGetInstanceProcAddr( instance, "vkCmdBeginQuery" ) );
+ vkCmdEndQuery = PFN_vkCmdEndQuery( vkGetInstanceProcAddr( instance, "vkCmdEndQuery" ) );
+ vkCmdResetQueryPool = PFN_vkCmdResetQueryPool( vkGetInstanceProcAddr( instance, "vkCmdResetQueryPool" ) );
+ vkCmdWriteTimestamp = PFN_vkCmdWriteTimestamp( vkGetInstanceProcAddr( instance, "vkCmdWriteTimestamp" ) );
+ vkCmdCopyQueryPoolResults =
+ PFN_vkCmdCopyQueryPoolResults( vkGetInstanceProcAddr( instance, "vkCmdCopyQueryPoolResults" ) );
+ vkCmdPushConstants = PFN_vkCmdPushConstants( vkGetInstanceProcAddr( instance, "vkCmdPushConstants" ) );
+ vkCmdBeginRenderPass = PFN_vkCmdBeginRenderPass( vkGetInstanceProcAddr( instance, "vkCmdBeginRenderPass" ) );
+ vkCmdNextSubpass = PFN_vkCmdNextSubpass( vkGetInstanceProcAddr( instance, "vkCmdNextSubpass" ) );
+ vkCmdEndRenderPass = PFN_vkCmdEndRenderPass( vkGetInstanceProcAddr( instance, "vkCmdEndRenderPass" ) );
+ vkCmdExecuteCommands = PFN_vkCmdExecuteCommands( vkGetInstanceProcAddr( instance, "vkCmdExecuteCommands" ) );
+
+ //=== VK_VERSION_1_1 ===
+ vkBindBufferMemory2 = PFN_vkBindBufferMemory2( vkGetInstanceProcAddr( instance, "vkBindBufferMemory2" ) );
+ vkBindImageMemory2 = PFN_vkBindImageMemory2( vkGetInstanceProcAddr( instance, "vkBindImageMemory2" ) );
+ vkGetDeviceGroupPeerMemoryFeatures = PFN_vkGetDeviceGroupPeerMemoryFeatures(
+ vkGetInstanceProcAddr( instance, "vkGetDeviceGroupPeerMemoryFeatures" ) );
+ vkCmdSetDeviceMask = PFN_vkCmdSetDeviceMask( vkGetInstanceProcAddr( instance, "vkCmdSetDeviceMask" ) );
+ vkCmdDispatchBase = PFN_vkCmdDispatchBase( vkGetInstanceProcAddr( instance, "vkCmdDispatchBase" ) );
+ vkEnumeratePhysicalDeviceGroups =
+ PFN_vkEnumeratePhysicalDeviceGroups( vkGetInstanceProcAddr( instance, "vkEnumeratePhysicalDeviceGroups" ) );
+ vkGetImageMemoryRequirements2 =
+ PFN_vkGetImageMemoryRequirements2( vkGetInstanceProcAddr( instance, "vkGetImageMemoryRequirements2" ) );
+ vkGetBufferMemoryRequirements2 =
+ PFN_vkGetBufferMemoryRequirements2( vkGetInstanceProcAddr( instance, "vkGetBufferMemoryRequirements2" ) );
+ vkGetImageSparseMemoryRequirements2 = PFN_vkGetImageSparseMemoryRequirements2(
+ vkGetInstanceProcAddr( instance, "vkGetImageSparseMemoryRequirements2" ) );
+ vkGetPhysicalDeviceFeatures2 =
+ PFN_vkGetPhysicalDeviceFeatures2( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceFeatures2" ) );
+ vkGetPhysicalDeviceProperties2 =
+ PFN_vkGetPhysicalDeviceProperties2( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceProperties2" ) );
+ vkGetPhysicalDeviceFormatProperties2 = PFN_vkGetPhysicalDeviceFormatProperties2(
+ vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceFormatProperties2" ) );
+ vkGetPhysicalDeviceImageFormatProperties2 = PFN_vkGetPhysicalDeviceImageFormatProperties2(
+ vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceImageFormatProperties2" ) );
+ vkGetPhysicalDeviceQueueFamilyProperties2 = PFN_vkGetPhysicalDeviceQueueFamilyProperties2(
+ vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceQueueFamilyProperties2" ) );
+ vkGetPhysicalDeviceMemoryProperties2 = PFN_vkGetPhysicalDeviceMemoryProperties2(
+ vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceMemoryProperties2" ) );
vkGetPhysicalDeviceSparseImageFormatProperties2 = PFN_vkGetPhysicalDeviceSparseImageFormatProperties2(
vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceSparseImageFormatProperties2" ) );
- vkGetPhysicalDeviceSparseImageFormatProperties2KHR = PFN_vkGetPhysicalDeviceSparseImageFormatProperties2KHR(
- vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceSparseImageFormatProperties2KHR" ) );
- if ( !vkGetPhysicalDeviceSparseImageFormatProperties2 )
- vkGetPhysicalDeviceSparseImageFormatProperties2 = vkGetPhysicalDeviceSparseImageFormatProperties2KHR;
- vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV =
- PFN_vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV(
- vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV" ) );
- vkGetPhysicalDeviceSurfaceCapabilities2EXT = PFN_vkGetPhysicalDeviceSurfaceCapabilities2EXT(
- vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceSurfaceCapabilities2EXT" ) );
- vkGetPhysicalDeviceSurfaceCapabilities2KHR = PFN_vkGetPhysicalDeviceSurfaceCapabilities2KHR(
- vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceSurfaceCapabilities2KHR" ) );
+ vkTrimCommandPool = PFN_vkTrimCommandPool( vkGetInstanceProcAddr( instance, "vkTrimCommandPool" ) );
+ vkGetDeviceQueue2 = PFN_vkGetDeviceQueue2( vkGetInstanceProcAddr( instance, "vkGetDeviceQueue2" ) );
+ vkCreateSamplerYcbcrConversion =
+ PFN_vkCreateSamplerYcbcrConversion( vkGetInstanceProcAddr( instance, "vkCreateSamplerYcbcrConversion" ) );
+ vkDestroySamplerYcbcrConversion =
+ PFN_vkDestroySamplerYcbcrConversion( vkGetInstanceProcAddr( instance, "vkDestroySamplerYcbcrConversion" ) );
+ vkCreateDescriptorUpdateTemplate =
+ PFN_vkCreateDescriptorUpdateTemplate( vkGetInstanceProcAddr( instance, "vkCreateDescriptorUpdateTemplate" ) );
+ vkDestroyDescriptorUpdateTemplate =
+ PFN_vkDestroyDescriptorUpdateTemplate( vkGetInstanceProcAddr( instance, "vkDestroyDescriptorUpdateTemplate" ) );
+ vkUpdateDescriptorSetWithTemplate =
+ PFN_vkUpdateDescriptorSetWithTemplate( vkGetInstanceProcAddr( instance, "vkUpdateDescriptorSetWithTemplate" ) );
+ vkGetPhysicalDeviceExternalBufferProperties = PFN_vkGetPhysicalDeviceExternalBufferProperties(
+ vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceExternalBufferProperties" ) );
+ vkGetPhysicalDeviceExternalFenceProperties = PFN_vkGetPhysicalDeviceExternalFenceProperties(
+ vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceExternalFenceProperties" ) );
+ vkGetPhysicalDeviceExternalSemaphoreProperties = PFN_vkGetPhysicalDeviceExternalSemaphoreProperties(
+ vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceExternalSemaphoreProperties" ) );
+ vkGetDescriptorSetLayoutSupport =
+ PFN_vkGetDescriptorSetLayoutSupport( vkGetInstanceProcAddr( instance, "vkGetDescriptorSetLayoutSupport" ) );
+
+ //=== VK_VERSION_1_2 ===
+ vkCmdDrawIndirectCount =
+ PFN_vkCmdDrawIndirectCount( vkGetInstanceProcAddr( instance, "vkCmdDrawIndirectCount" ) );
+ vkCmdDrawIndexedIndirectCount =
+ PFN_vkCmdDrawIndexedIndirectCount( vkGetInstanceProcAddr( instance, "vkCmdDrawIndexedIndirectCount" ) );
+ vkCreateRenderPass2 = PFN_vkCreateRenderPass2( vkGetInstanceProcAddr( instance, "vkCreateRenderPass2" ) );
+ vkCmdBeginRenderPass2 = PFN_vkCmdBeginRenderPass2( vkGetInstanceProcAddr( instance, "vkCmdBeginRenderPass2" ) );
+ vkCmdNextSubpass2 = PFN_vkCmdNextSubpass2( vkGetInstanceProcAddr( instance, "vkCmdNextSubpass2" ) );
+ vkCmdEndRenderPass2 = PFN_vkCmdEndRenderPass2( vkGetInstanceProcAddr( instance, "vkCmdEndRenderPass2" ) );
+ vkResetQueryPool = PFN_vkResetQueryPool( vkGetInstanceProcAddr( instance, "vkResetQueryPool" ) );
+ vkGetSemaphoreCounterValue =
+ PFN_vkGetSemaphoreCounterValue( vkGetInstanceProcAddr( instance, "vkGetSemaphoreCounterValue" ) );
+ vkWaitSemaphores = PFN_vkWaitSemaphores( vkGetInstanceProcAddr( instance, "vkWaitSemaphores" ) );
+ vkSignalSemaphore = PFN_vkSignalSemaphore( vkGetInstanceProcAddr( instance, "vkSignalSemaphore" ) );
+ vkGetBufferDeviceAddress =
+ PFN_vkGetBufferDeviceAddress( vkGetInstanceProcAddr( instance, "vkGetBufferDeviceAddress" ) );
+ vkGetBufferOpaqueCaptureAddress =
+ PFN_vkGetBufferOpaqueCaptureAddress( vkGetInstanceProcAddr( instance, "vkGetBufferOpaqueCaptureAddress" ) );
+ vkGetDeviceMemoryOpaqueCaptureAddress = PFN_vkGetDeviceMemoryOpaqueCaptureAddress(
+ vkGetInstanceProcAddr( instance, "vkGetDeviceMemoryOpaqueCaptureAddress" ) );
+
+ //=== VK_KHR_surface ===
+ vkDestroySurfaceKHR = PFN_vkDestroySurfaceKHR( vkGetInstanceProcAddr( instance, "vkDestroySurfaceKHR" ) );
+ vkGetPhysicalDeviceSurfaceSupportKHR = PFN_vkGetPhysicalDeviceSurfaceSupportKHR(
+ vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceSurfaceSupportKHR" ) );
vkGetPhysicalDeviceSurfaceCapabilitiesKHR = PFN_vkGetPhysicalDeviceSurfaceCapabilitiesKHR(
vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceSurfaceCapabilitiesKHR" ) );
- vkGetPhysicalDeviceSurfaceFormats2KHR = PFN_vkGetPhysicalDeviceSurfaceFormats2KHR(
- vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceSurfaceFormats2KHR" ) );
vkGetPhysicalDeviceSurfaceFormatsKHR = PFN_vkGetPhysicalDeviceSurfaceFormatsKHR(
vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceSurfaceFormatsKHR" ) );
-#if defined( VK_USE_PLATFORM_WIN32_KHR )
- vkGetPhysicalDeviceSurfacePresentModes2EXT = PFN_vkGetPhysicalDeviceSurfacePresentModes2EXT(
- vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceSurfacePresentModes2EXT" ) );
-#endif /*VK_USE_PLATFORM_WIN32_KHR*/
vkGetPhysicalDeviceSurfacePresentModesKHR = PFN_vkGetPhysicalDeviceSurfacePresentModesKHR(
vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceSurfacePresentModesKHR" ) );
- vkGetPhysicalDeviceSurfaceSupportKHR = PFN_vkGetPhysicalDeviceSurfaceSupportKHR(
- vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceSurfaceSupportKHR" ) );
- vkGetPhysicalDeviceToolPropertiesEXT = PFN_vkGetPhysicalDeviceToolPropertiesEXT(
- vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceToolPropertiesEXT" ) );
-#if defined( VK_ENABLE_BETA_EXTENSIONS )
- vkGetPhysicalDeviceVideoCapabilitiesKHR = PFN_vkGetPhysicalDeviceVideoCapabilitiesKHR(
- vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceVideoCapabilitiesKHR" ) );
-#endif /*VK_ENABLE_BETA_EXTENSIONS*/
-#if defined( VK_ENABLE_BETA_EXTENSIONS )
- vkGetPhysicalDeviceVideoFormatPropertiesKHR = PFN_vkGetPhysicalDeviceVideoFormatPropertiesKHR(
- vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceVideoFormatPropertiesKHR" ) );
-#endif /*VK_ENABLE_BETA_EXTENSIONS*/
+
+ //=== VK_KHR_swapchain ===
+ vkCreateSwapchainKHR = PFN_vkCreateSwapchainKHR( vkGetInstanceProcAddr( instance, "vkCreateSwapchainKHR" ) );
+ vkDestroySwapchainKHR = PFN_vkDestroySwapchainKHR( vkGetInstanceProcAddr( instance, "vkDestroySwapchainKHR" ) );
+ vkGetSwapchainImagesKHR =
+ PFN_vkGetSwapchainImagesKHR( vkGetInstanceProcAddr( instance, "vkGetSwapchainImagesKHR" ) );
+ vkAcquireNextImageKHR = PFN_vkAcquireNextImageKHR( vkGetInstanceProcAddr( instance, "vkAcquireNextImageKHR" ) );
+ vkQueuePresentKHR = PFN_vkQueuePresentKHR( vkGetInstanceProcAddr( instance, "vkQueuePresentKHR" ) );
+ vkGetDeviceGroupPresentCapabilitiesKHR = PFN_vkGetDeviceGroupPresentCapabilitiesKHR(
+ vkGetInstanceProcAddr( instance, "vkGetDeviceGroupPresentCapabilitiesKHR" ) );
+ vkGetDeviceGroupSurfacePresentModesKHR = PFN_vkGetDeviceGroupSurfacePresentModesKHR(
+ vkGetInstanceProcAddr( instance, "vkGetDeviceGroupSurfacePresentModesKHR" ) );
+ vkGetPhysicalDevicePresentRectanglesKHR = PFN_vkGetPhysicalDevicePresentRectanglesKHR(
+ vkGetInstanceProcAddr( instance, "vkGetPhysicalDevicePresentRectanglesKHR" ) );
+ vkAcquireNextImage2KHR =
+ PFN_vkAcquireNextImage2KHR( vkGetInstanceProcAddr( instance, "vkAcquireNextImage2KHR" ) );
+
+ //=== VK_KHR_display ===
+ vkGetPhysicalDeviceDisplayPropertiesKHR = PFN_vkGetPhysicalDeviceDisplayPropertiesKHR(
+ vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceDisplayPropertiesKHR" ) );
+ vkGetPhysicalDeviceDisplayPlanePropertiesKHR = PFN_vkGetPhysicalDeviceDisplayPlanePropertiesKHR(
+ vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceDisplayPlanePropertiesKHR" ) );
+ vkGetDisplayPlaneSupportedDisplaysKHR = PFN_vkGetDisplayPlaneSupportedDisplaysKHR(
+ vkGetInstanceProcAddr( instance, "vkGetDisplayPlaneSupportedDisplaysKHR" ) );
+ vkGetDisplayModePropertiesKHR =
+ PFN_vkGetDisplayModePropertiesKHR( vkGetInstanceProcAddr( instance, "vkGetDisplayModePropertiesKHR" ) );
+ vkCreateDisplayModeKHR =
+ PFN_vkCreateDisplayModeKHR( vkGetInstanceProcAddr( instance, "vkCreateDisplayModeKHR" ) );
+ vkGetDisplayPlaneCapabilitiesKHR =
+ PFN_vkGetDisplayPlaneCapabilitiesKHR( vkGetInstanceProcAddr( instance, "vkGetDisplayPlaneCapabilitiesKHR" ) );
+ vkCreateDisplayPlaneSurfaceKHR =
+ PFN_vkCreateDisplayPlaneSurfaceKHR( vkGetInstanceProcAddr( instance, "vkCreateDisplayPlaneSurfaceKHR" ) );
+
+ //=== VK_KHR_display_swapchain ===
+ vkCreateSharedSwapchainsKHR =
+ PFN_vkCreateSharedSwapchainsKHR( vkGetInstanceProcAddr( instance, "vkCreateSharedSwapchainsKHR" ) );
+
+#if defined( VK_USE_PLATFORM_XLIB_KHR )
+ //=== VK_KHR_xlib_surface ===
+ vkCreateXlibSurfaceKHR =
+ PFN_vkCreateXlibSurfaceKHR( vkGetInstanceProcAddr( instance, "vkCreateXlibSurfaceKHR" ) );
+ vkGetPhysicalDeviceXlibPresentationSupportKHR = PFN_vkGetPhysicalDeviceXlibPresentationSupportKHR(
+ vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceXlibPresentationSupportKHR" ) );
+#endif /*VK_USE_PLATFORM_XLIB_KHR*/
+
+#if defined( VK_USE_PLATFORM_XCB_KHR )
+ //=== VK_KHR_xcb_surface ===
+ vkCreateXcbSurfaceKHR = PFN_vkCreateXcbSurfaceKHR( vkGetInstanceProcAddr( instance, "vkCreateXcbSurfaceKHR" ) );
+ vkGetPhysicalDeviceXcbPresentationSupportKHR = PFN_vkGetPhysicalDeviceXcbPresentationSupportKHR(
+ vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceXcbPresentationSupportKHR" ) );
+#endif /*VK_USE_PLATFORM_XCB_KHR*/
+
#if defined( VK_USE_PLATFORM_WAYLAND_KHR )
+ //=== VK_KHR_wayland_surface ===
+ vkCreateWaylandSurfaceKHR =
+ PFN_vkCreateWaylandSurfaceKHR( vkGetInstanceProcAddr( instance, "vkCreateWaylandSurfaceKHR" ) );
vkGetPhysicalDeviceWaylandPresentationSupportKHR = PFN_vkGetPhysicalDeviceWaylandPresentationSupportKHR(
vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceWaylandPresentationSupportKHR" ) );
#endif /*VK_USE_PLATFORM_WAYLAND_KHR*/
+
+#if defined( VK_USE_PLATFORM_ANDROID_KHR )
+ //=== VK_KHR_android_surface ===
+ vkCreateAndroidSurfaceKHR =
+ PFN_vkCreateAndroidSurfaceKHR( vkGetInstanceProcAddr( instance, "vkCreateAndroidSurfaceKHR" ) );
+#endif /*VK_USE_PLATFORM_ANDROID_KHR*/
+
#if defined( VK_USE_PLATFORM_WIN32_KHR )
+ //=== VK_KHR_win32_surface ===
+ vkCreateWin32SurfaceKHR =
+ PFN_vkCreateWin32SurfaceKHR( vkGetInstanceProcAddr( instance, "vkCreateWin32SurfaceKHR" ) );
vkGetPhysicalDeviceWin32PresentationSupportKHR = PFN_vkGetPhysicalDeviceWin32PresentationSupportKHR(
vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceWin32PresentationSupportKHR" ) );
#endif /*VK_USE_PLATFORM_WIN32_KHR*/
-#if defined( VK_USE_PLATFORM_XCB_KHR )
- vkGetPhysicalDeviceXcbPresentationSupportKHR = PFN_vkGetPhysicalDeviceXcbPresentationSupportKHR(
- vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceXcbPresentationSupportKHR" ) );
-#endif /*VK_USE_PLATFORM_XCB_KHR*/
-#if defined( VK_USE_PLATFORM_XLIB_KHR )
- vkGetPhysicalDeviceXlibPresentationSupportKHR = PFN_vkGetPhysicalDeviceXlibPresentationSupportKHR(
- vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceXlibPresentationSupportKHR" ) );
-#endif /*VK_USE_PLATFORM_XLIB_KHR*/
-#if defined( VK_USE_PLATFORM_XLIB_XRANDR_EXT )
- vkGetRandROutputDisplayEXT =
- PFN_vkGetRandROutputDisplayEXT( vkGetInstanceProcAddr( instance, "vkGetRandROutputDisplayEXT" ) );
-#endif /*VK_USE_PLATFORM_XLIB_XRANDR_EXT*/
-#if defined( VK_USE_PLATFORM_WIN32_KHR )
- vkGetWinrtDisplayNV = PFN_vkGetWinrtDisplayNV( vkGetInstanceProcAddr( instance, "vkGetWinrtDisplayNV" ) );
-#endif /*VK_USE_PLATFORM_WIN32_KHR*/
- vkReleaseDisplayEXT = PFN_vkReleaseDisplayEXT( vkGetInstanceProcAddr( instance, "vkReleaseDisplayEXT" ) );
- vkSubmitDebugUtilsMessageEXT =
- PFN_vkSubmitDebugUtilsMessageEXT( vkGetInstanceProcAddr( instance, "vkSubmitDebugUtilsMessageEXT" ) );
-#if defined( VK_USE_PLATFORM_WIN32_KHR )
- vkAcquireFullScreenExclusiveModeEXT = PFN_vkAcquireFullScreenExclusiveModeEXT(
- vkGetInstanceProcAddr( instance, "vkAcquireFullScreenExclusiveModeEXT" ) );
-#endif /*VK_USE_PLATFORM_WIN32_KHR*/
- vkAcquireNextImage2KHR =
- PFN_vkAcquireNextImage2KHR( vkGetInstanceProcAddr( instance, "vkAcquireNextImage2KHR" ) );
- vkAcquireNextImageKHR = PFN_vkAcquireNextImageKHR( vkGetInstanceProcAddr( instance, "vkAcquireNextImageKHR" ) );
- vkAcquirePerformanceConfigurationINTEL = PFN_vkAcquirePerformanceConfigurationINTEL(
- vkGetInstanceProcAddr( instance, "vkAcquirePerformanceConfigurationINTEL" ) );
- vkAcquireProfilingLockKHR =
- PFN_vkAcquireProfilingLockKHR( vkGetInstanceProcAddr( instance, "vkAcquireProfilingLockKHR" ) );
- vkAllocateCommandBuffers =
- PFN_vkAllocateCommandBuffers( vkGetInstanceProcAddr( instance, "vkAllocateCommandBuffers" ) );
- vkAllocateDescriptorSets =
- PFN_vkAllocateDescriptorSets( vkGetInstanceProcAddr( instance, "vkAllocateDescriptorSets" ) );
- vkAllocateMemory = PFN_vkAllocateMemory( vkGetInstanceProcAddr( instance, "vkAllocateMemory" ) );
- vkBeginCommandBuffer = PFN_vkBeginCommandBuffer( vkGetInstanceProcAddr( instance, "vkBeginCommandBuffer" ) );
- vkBindAccelerationStructureMemoryNV = PFN_vkBindAccelerationStructureMemoryNV(
- vkGetInstanceProcAddr( instance, "vkBindAccelerationStructureMemoryNV" ) );
- vkBindBufferMemory = PFN_vkBindBufferMemory( vkGetInstanceProcAddr( instance, "vkBindBufferMemory" ) );
- vkBindBufferMemory2 = PFN_vkBindBufferMemory2( vkGetInstanceProcAddr( instance, "vkBindBufferMemory2" ) );
- vkBindBufferMemory2KHR =
- PFN_vkBindBufferMemory2KHR( vkGetInstanceProcAddr( instance, "vkBindBufferMemory2KHR" ) );
- if ( !vkBindBufferMemory2 )
- vkBindBufferMemory2 = vkBindBufferMemory2KHR;
- vkBindImageMemory = PFN_vkBindImageMemory( vkGetInstanceProcAddr( instance, "vkBindImageMemory" ) );
- vkBindImageMemory2 = PFN_vkBindImageMemory2( vkGetInstanceProcAddr( instance, "vkBindImageMemory2" ) );
- vkBindImageMemory2KHR = PFN_vkBindImageMemory2KHR( vkGetInstanceProcAddr( instance, "vkBindImageMemory2KHR" ) );
- if ( !vkBindImageMemory2 )
- vkBindImageMemory2 = vkBindImageMemory2KHR;
+
+ //=== VK_EXT_debug_report ===
+ vkCreateDebugReportCallbackEXT =
+ PFN_vkCreateDebugReportCallbackEXT( vkGetInstanceProcAddr( instance, "vkCreateDebugReportCallbackEXT" ) );
+ vkDestroyDebugReportCallbackEXT =
+ PFN_vkDestroyDebugReportCallbackEXT( vkGetInstanceProcAddr( instance, "vkDestroyDebugReportCallbackEXT" ) );
+ vkDebugReportMessageEXT =
+ PFN_vkDebugReportMessageEXT( vkGetInstanceProcAddr( instance, "vkDebugReportMessageEXT" ) );
+
+ //=== VK_EXT_debug_marker ===
+ vkDebugMarkerSetObjectTagEXT =
+ PFN_vkDebugMarkerSetObjectTagEXT( vkGetInstanceProcAddr( instance, "vkDebugMarkerSetObjectTagEXT" ) );
+ vkDebugMarkerSetObjectNameEXT =
+ PFN_vkDebugMarkerSetObjectNameEXT( vkGetInstanceProcAddr( instance, "vkDebugMarkerSetObjectNameEXT" ) );
+ vkCmdDebugMarkerBeginEXT =
+ PFN_vkCmdDebugMarkerBeginEXT( vkGetInstanceProcAddr( instance, "vkCmdDebugMarkerBeginEXT" ) );
+ vkCmdDebugMarkerEndEXT =
+ PFN_vkCmdDebugMarkerEndEXT( vkGetInstanceProcAddr( instance, "vkCmdDebugMarkerEndEXT" ) );
+ vkCmdDebugMarkerInsertEXT =
+ PFN_vkCmdDebugMarkerInsertEXT( vkGetInstanceProcAddr( instance, "vkCmdDebugMarkerInsertEXT" ) );
+
#if defined( VK_ENABLE_BETA_EXTENSIONS )
+ //=== VK_KHR_video_queue ===
+ vkGetPhysicalDeviceVideoCapabilitiesKHR = PFN_vkGetPhysicalDeviceVideoCapabilitiesKHR(
+ vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceVideoCapabilitiesKHR" ) );
+ vkGetPhysicalDeviceVideoFormatPropertiesKHR = PFN_vkGetPhysicalDeviceVideoFormatPropertiesKHR(
+ vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceVideoFormatPropertiesKHR" ) );
+ vkCreateVideoSessionKHR =
+ PFN_vkCreateVideoSessionKHR( vkGetInstanceProcAddr( instance, "vkCreateVideoSessionKHR" ) );
+ vkDestroyVideoSessionKHR =
+ PFN_vkDestroyVideoSessionKHR( vkGetInstanceProcAddr( instance, "vkDestroyVideoSessionKHR" ) );
+ vkGetVideoSessionMemoryRequirementsKHR = PFN_vkGetVideoSessionMemoryRequirementsKHR(
+ vkGetInstanceProcAddr( instance, "vkGetVideoSessionMemoryRequirementsKHR" ) );
vkBindVideoSessionMemoryKHR =
PFN_vkBindVideoSessionMemoryKHR( vkGetInstanceProcAddr( instance, "vkBindVideoSessionMemoryKHR" ) );
-#endif /*VK_ENABLE_BETA_EXTENSIONS*/
- vkBuildAccelerationStructuresKHR =
- PFN_vkBuildAccelerationStructuresKHR( vkGetInstanceProcAddr( instance, "vkBuildAccelerationStructuresKHR" ) );
- vkCmdBeginConditionalRenderingEXT =
- PFN_vkCmdBeginConditionalRenderingEXT( vkGetInstanceProcAddr( instance, "vkCmdBeginConditionalRenderingEXT" ) );
- vkCmdBeginDebugUtilsLabelEXT =
- PFN_vkCmdBeginDebugUtilsLabelEXT( vkGetInstanceProcAddr( instance, "vkCmdBeginDebugUtilsLabelEXT" ) );
- vkCmdBeginQuery = PFN_vkCmdBeginQuery( vkGetInstanceProcAddr( instance, "vkCmdBeginQuery" ) );
- vkCmdBeginQueryIndexedEXT =
- PFN_vkCmdBeginQueryIndexedEXT( vkGetInstanceProcAddr( instance, "vkCmdBeginQueryIndexedEXT" ) );
- vkCmdBeginRenderPass = PFN_vkCmdBeginRenderPass( vkGetInstanceProcAddr( instance, "vkCmdBeginRenderPass" ) );
- vkCmdBeginRenderPass2 = PFN_vkCmdBeginRenderPass2( vkGetInstanceProcAddr( instance, "vkCmdBeginRenderPass2" ) );
- vkCmdBeginRenderPass2KHR =
- PFN_vkCmdBeginRenderPass2KHR( vkGetInstanceProcAddr( instance, "vkCmdBeginRenderPass2KHR" ) );
- if ( !vkCmdBeginRenderPass2 )
- vkCmdBeginRenderPass2 = vkCmdBeginRenderPass2KHR;
- vkCmdBeginTransformFeedbackEXT =
- PFN_vkCmdBeginTransformFeedbackEXT( vkGetInstanceProcAddr( instance, "vkCmdBeginTransformFeedbackEXT" ) );
-#if defined( VK_ENABLE_BETA_EXTENSIONS )
+ vkCreateVideoSessionParametersKHR =
+ PFN_vkCreateVideoSessionParametersKHR( vkGetInstanceProcAddr( instance, "vkCreateVideoSessionParametersKHR" ) );
+ vkUpdateVideoSessionParametersKHR =
+ PFN_vkUpdateVideoSessionParametersKHR( vkGetInstanceProcAddr( instance, "vkUpdateVideoSessionParametersKHR" ) );
+ vkDestroyVideoSessionParametersKHR = PFN_vkDestroyVideoSessionParametersKHR(
+ vkGetInstanceProcAddr( instance, "vkDestroyVideoSessionParametersKHR" ) );
vkCmdBeginVideoCodingKHR =
PFN_vkCmdBeginVideoCodingKHR( vkGetInstanceProcAddr( instance, "vkCmdBeginVideoCodingKHR" ) );
-#endif /*VK_ENABLE_BETA_EXTENSIONS*/
- vkCmdBindDescriptorSets =
- PFN_vkCmdBindDescriptorSets( vkGetInstanceProcAddr( instance, "vkCmdBindDescriptorSets" ) );
- vkCmdBindIndexBuffer = PFN_vkCmdBindIndexBuffer( vkGetInstanceProcAddr( instance, "vkCmdBindIndexBuffer" ) );
- vkCmdBindPipeline = PFN_vkCmdBindPipeline( vkGetInstanceProcAddr( instance, "vkCmdBindPipeline" ) );
- vkCmdBindPipelineShaderGroupNV =
- PFN_vkCmdBindPipelineShaderGroupNV( vkGetInstanceProcAddr( instance, "vkCmdBindPipelineShaderGroupNV" ) );
- vkCmdBindShadingRateImageNV =
- PFN_vkCmdBindShadingRateImageNV( vkGetInstanceProcAddr( instance, "vkCmdBindShadingRateImageNV" ) );
- vkCmdBindTransformFeedbackBuffersEXT = PFN_vkCmdBindTransformFeedbackBuffersEXT(
- vkGetInstanceProcAddr( instance, "vkCmdBindTransformFeedbackBuffersEXT" ) );
- vkCmdBindVertexBuffers =
- PFN_vkCmdBindVertexBuffers( vkGetInstanceProcAddr( instance, "vkCmdBindVertexBuffers" ) );
- vkCmdBindVertexBuffers2EXT =
- PFN_vkCmdBindVertexBuffers2EXT( vkGetInstanceProcAddr( instance, "vkCmdBindVertexBuffers2EXT" ) );
- vkCmdBlitImage = PFN_vkCmdBlitImage( vkGetInstanceProcAddr( instance, "vkCmdBlitImage" ) );
- vkCmdBlitImage2KHR = PFN_vkCmdBlitImage2KHR( vkGetInstanceProcAddr( instance, "vkCmdBlitImage2KHR" ) );
- vkCmdBuildAccelerationStructureNV =
- PFN_vkCmdBuildAccelerationStructureNV( vkGetInstanceProcAddr( instance, "vkCmdBuildAccelerationStructureNV" ) );
- vkCmdBuildAccelerationStructuresIndirectKHR = PFN_vkCmdBuildAccelerationStructuresIndirectKHR(
- vkGetInstanceProcAddr( instance, "vkCmdBuildAccelerationStructuresIndirectKHR" ) );
- vkCmdBuildAccelerationStructuresKHR = PFN_vkCmdBuildAccelerationStructuresKHR(
- vkGetInstanceProcAddr( instance, "vkCmdBuildAccelerationStructuresKHR" ) );
- vkCmdClearAttachments = PFN_vkCmdClearAttachments( vkGetInstanceProcAddr( instance, "vkCmdClearAttachments" ) );
- vkCmdClearColorImage = PFN_vkCmdClearColorImage( vkGetInstanceProcAddr( instance, "vkCmdClearColorImage" ) );
- vkCmdClearDepthStencilImage =
- PFN_vkCmdClearDepthStencilImage( vkGetInstanceProcAddr( instance, "vkCmdClearDepthStencilImage" ) );
-#if defined( VK_ENABLE_BETA_EXTENSIONS )
+ vkCmdEndVideoCodingKHR =
+ PFN_vkCmdEndVideoCodingKHR( vkGetInstanceProcAddr( instance, "vkCmdEndVideoCodingKHR" ) );
vkCmdControlVideoCodingKHR =
PFN_vkCmdControlVideoCodingKHR( vkGetInstanceProcAddr( instance, "vkCmdControlVideoCodingKHR" ) );
#endif /*VK_ENABLE_BETA_EXTENSIONS*/
- vkCmdCopyAccelerationStructureKHR =
- PFN_vkCmdCopyAccelerationStructureKHR( vkGetInstanceProcAddr( instance, "vkCmdCopyAccelerationStructureKHR" ) );
- vkCmdCopyAccelerationStructureNV =
- PFN_vkCmdCopyAccelerationStructureNV( vkGetInstanceProcAddr( instance, "vkCmdCopyAccelerationStructureNV" ) );
- vkCmdCopyAccelerationStructureToMemoryKHR = PFN_vkCmdCopyAccelerationStructureToMemoryKHR(
- vkGetInstanceProcAddr( instance, "vkCmdCopyAccelerationStructureToMemoryKHR" ) );
- vkCmdCopyBuffer = PFN_vkCmdCopyBuffer( vkGetInstanceProcAddr( instance, "vkCmdCopyBuffer" ) );
- vkCmdCopyBuffer2KHR = PFN_vkCmdCopyBuffer2KHR( vkGetInstanceProcAddr( instance, "vkCmdCopyBuffer2KHR" ) );
- vkCmdCopyBufferToImage =
- PFN_vkCmdCopyBufferToImage( vkGetInstanceProcAddr( instance, "vkCmdCopyBufferToImage" ) );
- vkCmdCopyBufferToImage2KHR =
- PFN_vkCmdCopyBufferToImage2KHR( vkGetInstanceProcAddr( instance, "vkCmdCopyBufferToImage2KHR" ) );
- vkCmdCopyImage = PFN_vkCmdCopyImage( vkGetInstanceProcAddr( instance, "vkCmdCopyImage" ) );
- vkCmdCopyImage2KHR = PFN_vkCmdCopyImage2KHR( vkGetInstanceProcAddr( instance, "vkCmdCopyImage2KHR" ) );
- vkCmdCopyImageToBuffer =
- PFN_vkCmdCopyImageToBuffer( vkGetInstanceProcAddr( instance, "vkCmdCopyImageToBuffer" ) );
- vkCmdCopyImageToBuffer2KHR =
- PFN_vkCmdCopyImageToBuffer2KHR( vkGetInstanceProcAddr( instance, "vkCmdCopyImageToBuffer2KHR" ) );
- vkCmdCopyMemoryToAccelerationStructureKHR = PFN_vkCmdCopyMemoryToAccelerationStructureKHR(
- vkGetInstanceProcAddr( instance, "vkCmdCopyMemoryToAccelerationStructureKHR" ) );
- vkCmdCopyQueryPoolResults =
- PFN_vkCmdCopyQueryPoolResults( vkGetInstanceProcAddr( instance, "vkCmdCopyQueryPoolResults" ) );
- vkCmdCuLaunchKernelNVX =
- PFN_vkCmdCuLaunchKernelNVX( vkGetInstanceProcAddr( instance, "vkCmdCuLaunchKernelNVX" ) );
- vkCmdDebugMarkerBeginEXT =
- PFN_vkCmdDebugMarkerBeginEXT( vkGetInstanceProcAddr( instance, "vkCmdDebugMarkerBeginEXT" ) );
- vkCmdDebugMarkerEndEXT =
- PFN_vkCmdDebugMarkerEndEXT( vkGetInstanceProcAddr( instance, "vkCmdDebugMarkerEndEXT" ) );
- vkCmdDebugMarkerInsertEXT =
- PFN_vkCmdDebugMarkerInsertEXT( vkGetInstanceProcAddr( instance, "vkCmdDebugMarkerInsertEXT" ) );
+
#if defined( VK_ENABLE_BETA_EXTENSIONS )
+ //=== VK_KHR_video_decode_queue ===
vkCmdDecodeVideoKHR = PFN_vkCmdDecodeVideoKHR( vkGetInstanceProcAddr( instance, "vkCmdDecodeVideoKHR" ) );
#endif /*VK_ENABLE_BETA_EXTENSIONS*/
- vkCmdDispatch = PFN_vkCmdDispatch( vkGetInstanceProcAddr( instance, "vkCmdDispatch" ) );
- vkCmdDispatchBase = PFN_vkCmdDispatchBase( vkGetInstanceProcAddr( instance, "vkCmdDispatchBase" ) );
- vkCmdDispatchBaseKHR = PFN_vkCmdDispatchBaseKHR( vkGetInstanceProcAddr( instance, "vkCmdDispatchBaseKHR" ) );
- if ( !vkCmdDispatchBase )
- vkCmdDispatchBase = vkCmdDispatchBaseKHR;
- vkCmdDispatchIndirect = PFN_vkCmdDispatchIndirect( vkGetInstanceProcAddr( instance, "vkCmdDispatchIndirect" ) );
- vkCmdDraw = PFN_vkCmdDraw( vkGetInstanceProcAddr( instance, "vkCmdDraw" ) );
- vkCmdDrawIndexed = PFN_vkCmdDrawIndexed( vkGetInstanceProcAddr( instance, "vkCmdDrawIndexed" ) );
- vkCmdDrawIndexedIndirect =
- PFN_vkCmdDrawIndexedIndirect( vkGetInstanceProcAddr( instance, "vkCmdDrawIndexedIndirect" ) );
- vkCmdDrawIndexedIndirectCount =
- PFN_vkCmdDrawIndexedIndirectCount( vkGetInstanceProcAddr( instance, "vkCmdDrawIndexedIndirectCount" ) );
- vkCmdDrawIndexedIndirectCountAMD =
- PFN_vkCmdDrawIndexedIndirectCountAMD( vkGetInstanceProcAddr( instance, "vkCmdDrawIndexedIndirectCountAMD" ) );
- if ( !vkCmdDrawIndexedIndirectCount )
- vkCmdDrawIndexedIndirectCount = vkCmdDrawIndexedIndirectCountAMD;
- vkCmdDrawIndexedIndirectCountKHR =
- PFN_vkCmdDrawIndexedIndirectCountKHR( vkGetInstanceProcAddr( instance, "vkCmdDrawIndexedIndirectCountKHR" ) );
- if ( !vkCmdDrawIndexedIndirectCount )
- vkCmdDrawIndexedIndirectCount = vkCmdDrawIndexedIndirectCountKHR;
- vkCmdDrawIndirect = PFN_vkCmdDrawIndirect( vkGetInstanceProcAddr( instance, "vkCmdDrawIndirect" ) );
+
+ //=== VK_EXT_transform_feedback ===
+ vkCmdBindTransformFeedbackBuffersEXT = PFN_vkCmdBindTransformFeedbackBuffersEXT(
+ vkGetInstanceProcAddr( instance, "vkCmdBindTransformFeedbackBuffersEXT" ) );
+ vkCmdBeginTransformFeedbackEXT =
+ PFN_vkCmdBeginTransformFeedbackEXT( vkGetInstanceProcAddr( instance, "vkCmdBeginTransformFeedbackEXT" ) );
+ vkCmdEndTransformFeedbackEXT =
+ PFN_vkCmdEndTransformFeedbackEXT( vkGetInstanceProcAddr( instance, "vkCmdEndTransformFeedbackEXT" ) );
+ vkCmdBeginQueryIndexedEXT =
+ PFN_vkCmdBeginQueryIndexedEXT( vkGetInstanceProcAddr( instance, "vkCmdBeginQueryIndexedEXT" ) );
+ vkCmdEndQueryIndexedEXT =
+ PFN_vkCmdEndQueryIndexedEXT( vkGetInstanceProcAddr( instance, "vkCmdEndQueryIndexedEXT" ) );
vkCmdDrawIndirectByteCountEXT =
PFN_vkCmdDrawIndirectByteCountEXT( vkGetInstanceProcAddr( instance, "vkCmdDrawIndirectByteCountEXT" ) );
- vkCmdDrawIndirectCount =
- PFN_vkCmdDrawIndirectCount( vkGetInstanceProcAddr( instance, "vkCmdDrawIndirectCount" ) );
+
+ //=== VK_NVX_binary_import ===
+ vkCreateCuModuleNVX = PFN_vkCreateCuModuleNVX( vkGetInstanceProcAddr( instance, "vkCreateCuModuleNVX" ) );
+ vkCreateCuFunctionNVX = PFN_vkCreateCuFunctionNVX( vkGetInstanceProcAddr( instance, "vkCreateCuFunctionNVX" ) );
+ vkDestroyCuModuleNVX = PFN_vkDestroyCuModuleNVX( vkGetInstanceProcAddr( instance, "vkDestroyCuModuleNVX" ) );
+ vkDestroyCuFunctionNVX =
+ PFN_vkDestroyCuFunctionNVX( vkGetInstanceProcAddr( instance, "vkDestroyCuFunctionNVX" ) );
+ vkCmdCuLaunchKernelNVX =
+ PFN_vkCmdCuLaunchKernelNVX( vkGetInstanceProcAddr( instance, "vkCmdCuLaunchKernelNVX" ) );
+
+ //=== VK_NVX_image_view_handle ===
+ vkGetImageViewHandleNVX =
+ PFN_vkGetImageViewHandleNVX( vkGetInstanceProcAddr( instance, "vkGetImageViewHandleNVX" ) );
+ vkGetImageViewAddressNVX =
+ PFN_vkGetImageViewAddressNVX( vkGetInstanceProcAddr( instance, "vkGetImageViewAddressNVX" ) );
+
+ //=== VK_AMD_draw_indirect_count ===
vkCmdDrawIndirectCountAMD =
PFN_vkCmdDrawIndirectCountAMD( vkGetInstanceProcAddr( instance, "vkCmdDrawIndirectCountAMD" ) );
if ( !vkCmdDrawIndirectCount )
vkCmdDrawIndirectCount = vkCmdDrawIndirectCountAMD;
- vkCmdDrawIndirectCountKHR =
- PFN_vkCmdDrawIndirectCountKHR( vkGetInstanceProcAddr( instance, "vkCmdDrawIndirectCountKHR" ) );
- if ( !vkCmdDrawIndirectCount )
- vkCmdDrawIndirectCount = vkCmdDrawIndirectCountKHR;
- vkCmdDrawMeshTasksIndirectCountNV =
- PFN_vkCmdDrawMeshTasksIndirectCountNV( vkGetInstanceProcAddr( instance, "vkCmdDrawMeshTasksIndirectCountNV" ) );
- vkCmdDrawMeshTasksIndirectNV =
- PFN_vkCmdDrawMeshTasksIndirectNV( vkGetInstanceProcAddr( instance, "vkCmdDrawMeshTasksIndirectNV" ) );
- vkCmdDrawMeshTasksNV = PFN_vkCmdDrawMeshTasksNV( vkGetInstanceProcAddr( instance, "vkCmdDrawMeshTasksNV" ) );
- vkCmdDrawMultiEXT = PFN_vkCmdDrawMultiEXT( vkGetInstanceProcAddr( instance, "vkCmdDrawMultiEXT" ) );
- vkCmdDrawMultiIndexedEXT =
- PFN_vkCmdDrawMultiIndexedEXT( vkGetInstanceProcAddr( instance, "vkCmdDrawMultiIndexedEXT" ) );
-#if defined( VK_ENABLE_BETA_EXTENSIONS )
- vkCmdEncodeVideoKHR = PFN_vkCmdEncodeVideoKHR( vkGetInstanceProcAddr( instance, "vkCmdEncodeVideoKHR" ) );
-#endif /*VK_ENABLE_BETA_EXTENSIONS*/
+ vkCmdDrawIndexedIndirectCountAMD =
+ PFN_vkCmdDrawIndexedIndirectCountAMD( vkGetInstanceProcAddr( instance, "vkCmdDrawIndexedIndirectCountAMD" ) );
+ if ( !vkCmdDrawIndexedIndirectCount )
+ vkCmdDrawIndexedIndirectCount = vkCmdDrawIndexedIndirectCountAMD;
+
+ //=== VK_AMD_shader_info ===
+ vkGetShaderInfoAMD = PFN_vkGetShaderInfoAMD( vkGetInstanceProcAddr( instance, "vkGetShaderInfoAMD" ) );
+
+#if defined( VK_USE_PLATFORM_GGP )
+ //=== VK_GGP_stream_descriptor_surface ===
+ vkCreateStreamDescriptorSurfaceGGP = PFN_vkCreateStreamDescriptorSurfaceGGP(
+ vkGetInstanceProcAddr( instance, "vkCreateStreamDescriptorSurfaceGGP" ) );
+#endif /*VK_USE_PLATFORM_GGP*/
+
+ //=== VK_NV_external_memory_capabilities ===
+ vkGetPhysicalDeviceExternalImageFormatPropertiesNV = PFN_vkGetPhysicalDeviceExternalImageFormatPropertiesNV(
+ vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceExternalImageFormatPropertiesNV" ) );
+
+#if defined( VK_USE_PLATFORM_WIN32_KHR )
+ //=== VK_NV_external_memory_win32 ===
+ vkGetMemoryWin32HandleNV =
+ PFN_vkGetMemoryWin32HandleNV( vkGetInstanceProcAddr( instance, "vkGetMemoryWin32HandleNV" ) );
+#endif /*VK_USE_PLATFORM_WIN32_KHR*/
+
+ //=== VK_KHR_get_physical_device_properties2 ===
+ vkGetPhysicalDeviceFeatures2KHR =
+ PFN_vkGetPhysicalDeviceFeatures2KHR( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceFeatures2KHR" ) );
+ if ( !vkGetPhysicalDeviceFeatures2 )
+ vkGetPhysicalDeviceFeatures2 = vkGetPhysicalDeviceFeatures2KHR;
+ vkGetPhysicalDeviceProperties2KHR =
+ PFN_vkGetPhysicalDeviceProperties2KHR( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceProperties2KHR" ) );
+ if ( !vkGetPhysicalDeviceProperties2 )
+ vkGetPhysicalDeviceProperties2 = vkGetPhysicalDeviceProperties2KHR;
+ vkGetPhysicalDeviceFormatProperties2KHR = PFN_vkGetPhysicalDeviceFormatProperties2KHR(
+ vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceFormatProperties2KHR" ) );
+ if ( !vkGetPhysicalDeviceFormatProperties2 )
+ vkGetPhysicalDeviceFormatProperties2 = vkGetPhysicalDeviceFormatProperties2KHR;
+ vkGetPhysicalDeviceImageFormatProperties2KHR = PFN_vkGetPhysicalDeviceImageFormatProperties2KHR(
+ vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceImageFormatProperties2KHR" ) );
+ if ( !vkGetPhysicalDeviceImageFormatProperties2 )
+ vkGetPhysicalDeviceImageFormatProperties2 = vkGetPhysicalDeviceImageFormatProperties2KHR;
+ vkGetPhysicalDeviceQueueFamilyProperties2KHR = PFN_vkGetPhysicalDeviceQueueFamilyProperties2KHR(
+ vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceQueueFamilyProperties2KHR" ) );
+ if ( !vkGetPhysicalDeviceQueueFamilyProperties2 )
+ vkGetPhysicalDeviceQueueFamilyProperties2 = vkGetPhysicalDeviceQueueFamilyProperties2KHR;
+ vkGetPhysicalDeviceMemoryProperties2KHR = PFN_vkGetPhysicalDeviceMemoryProperties2KHR(
+ vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceMemoryProperties2KHR" ) );
+ if ( !vkGetPhysicalDeviceMemoryProperties2 )
+ vkGetPhysicalDeviceMemoryProperties2 = vkGetPhysicalDeviceMemoryProperties2KHR;
+ vkGetPhysicalDeviceSparseImageFormatProperties2KHR = PFN_vkGetPhysicalDeviceSparseImageFormatProperties2KHR(
+ vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceSparseImageFormatProperties2KHR" ) );
+ if ( !vkGetPhysicalDeviceSparseImageFormatProperties2 )
+ vkGetPhysicalDeviceSparseImageFormatProperties2 = vkGetPhysicalDeviceSparseImageFormatProperties2KHR;
+
+ //=== VK_KHR_device_group ===
+ vkGetDeviceGroupPeerMemoryFeaturesKHR = PFN_vkGetDeviceGroupPeerMemoryFeaturesKHR(
+ vkGetInstanceProcAddr( instance, "vkGetDeviceGroupPeerMemoryFeaturesKHR" ) );
+ if ( !vkGetDeviceGroupPeerMemoryFeatures )
+ vkGetDeviceGroupPeerMemoryFeatures = vkGetDeviceGroupPeerMemoryFeaturesKHR;
+ vkCmdSetDeviceMaskKHR = PFN_vkCmdSetDeviceMaskKHR( vkGetInstanceProcAddr( instance, "vkCmdSetDeviceMaskKHR" ) );
+ if ( !vkCmdSetDeviceMask )
+ vkCmdSetDeviceMask = vkCmdSetDeviceMaskKHR;
+ vkCmdDispatchBaseKHR = PFN_vkCmdDispatchBaseKHR( vkGetInstanceProcAddr( instance, "vkCmdDispatchBaseKHR" ) );
+ if ( !vkCmdDispatchBase )
+ vkCmdDispatchBase = vkCmdDispatchBaseKHR;
+
+#if defined( VK_USE_PLATFORM_VI_NN )
+ //=== VK_NN_vi_surface ===
+ vkCreateViSurfaceNN = PFN_vkCreateViSurfaceNN( vkGetInstanceProcAddr( instance, "vkCreateViSurfaceNN" ) );
+#endif /*VK_USE_PLATFORM_VI_NN*/
+
+ //=== VK_KHR_maintenance1 ===
+ vkTrimCommandPoolKHR = PFN_vkTrimCommandPoolKHR( vkGetInstanceProcAddr( instance, "vkTrimCommandPoolKHR" ) );
+ if ( !vkTrimCommandPool )
+ vkTrimCommandPool = vkTrimCommandPoolKHR;
+
+ //=== VK_KHR_device_group_creation ===
+ vkEnumeratePhysicalDeviceGroupsKHR = PFN_vkEnumeratePhysicalDeviceGroupsKHR(
+ vkGetInstanceProcAddr( instance, "vkEnumeratePhysicalDeviceGroupsKHR" ) );
+ if ( !vkEnumeratePhysicalDeviceGroups )
+ vkEnumeratePhysicalDeviceGroups = vkEnumeratePhysicalDeviceGroupsKHR;
+
+ //=== VK_KHR_external_memory_capabilities ===
+ vkGetPhysicalDeviceExternalBufferPropertiesKHR = PFN_vkGetPhysicalDeviceExternalBufferPropertiesKHR(
+ vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceExternalBufferPropertiesKHR" ) );
+ if ( !vkGetPhysicalDeviceExternalBufferProperties )
+ vkGetPhysicalDeviceExternalBufferProperties = vkGetPhysicalDeviceExternalBufferPropertiesKHR;
+
+#if defined( VK_USE_PLATFORM_WIN32_KHR )
+ //=== VK_KHR_external_memory_win32 ===
+ vkGetMemoryWin32HandleKHR =
+ PFN_vkGetMemoryWin32HandleKHR( vkGetInstanceProcAddr( instance, "vkGetMemoryWin32HandleKHR" ) );
+ vkGetMemoryWin32HandlePropertiesKHR = PFN_vkGetMemoryWin32HandlePropertiesKHR(
+ vkGetInstanceProcAddr( instance, "vkGetMemoryWin32HandlePropertiesKHR" ) );
+#endif /*VK_USE_PLATFORM_WIN32_KHR*/
+
+ //=== VK_KHR_external_memory_fd ===
+ vkGetMemoryFdKHR = PFN_vkGetMemoryFdKHR( vkGetInstanceProcAddr( instance, "vkGetMemoryFdKHR" ) );
+ vkGetMemoryFdPropertiesKHR =
+ PFN_vkGetMemoryFdPropertiesKHR( vkGetInstanceProcAddr( instance, "vkGetMemoryFdPropertiesKHR" ) );
+
+ //=== VK_KHR_external_semaphore_capabilities ===
+ vkGetPhysicalDeviceExternalSemaphorePropertiesKHR = PFN_vkGetPhysicalDeviceExternalSemaphorePropertiesKHR(
+ vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceExternalSemaphorePropertiesKHR" ) );
+ if ( !vkGetPhysicalDeviceExternalSemaphoreProperties )
+ vkGetPhysicalDeviceExternalSemaphoreProperties = vkGetPhysicalDeviceExternalSemaphorePropertiesKHR;
+
+#if defined( VK_USE_PLATFORM_WIN32_KHR )
+ //=== VK_KHR_external_semaphore_win32 ===
+ vkImportSemaphoreWin32HandleKHR =
+ PFN_vkImportSemaphoreWin32HandleKHR( vkGetInstanceProcAddr( instance, "vkImportSemaphoreWin32HandleKHR" ) );
+ vkGetSemaphoreWin32HandleKHR =
+ PFN_vkGetSemaphoreWin32HandleKHR( vkGetInstanceProcAddr( instance, "vkGetSemaphoreWin32HandleKHR" ) );
+#endif /*VK_USE_PLATFORM_WIN32_KHR*/
+
+ //=== VK_KHR_external_semaphore_fd ===
+ vkImportSemaphoreFdKHR =
+ PFN_vkImportSemaphoreFdKHR( vkGetInstanceProcAddr( instance, "vkImportSemaphoreFdKHR" ) );
+ vkGetSemaphoreFdKHR = PFN_vkGetSemaphoreFdKHR( vkGetInstanceProcAddr( instance, "vkGetSemaphoreFdKHR" ) );
+
+ //=== VK_KHR_push_descriptor ===
+ vkCmdPushDescriptorSetKHR =
+ PFN_vkCmdPushDescriptorSetKHR( vkGetInstanceProcAddr( instance, "vkCmdPushDescriptorSetKHR" ) );
+ vkCmdPushDescriptorSetWithTemplateKHR = PFN_vkCmdPushDescriptorSetWithTemplateKHR(
+ vkGetInstanceProcAddr( instance, "vkCmdPushDescriptorSetWithTemplateKHR" ) );
+
+ //=== VK_EXT_conditional_rendering ===
+ vkCmdBeginConditionalRenderingEXT =
+ PFN_vkCmdBeginConditionalRenderingEXT( vkGetInstanceProcAddr( instance, "vkCmdBeginConditionalRenderingEXT" ) );
vkCmdEndConditionalRenderingEXT =
PFN_vkCmdEndConditionalRenderingEXT( vkGetInstanceProcAddr( instance, "vkCmdEndConditionalRenderingEXT" ) );
- vkCmdEndDebugUtilsLabelEXT =
- PFN_vkCmdEndDebugUtilsLabelEXT( vkGetInstanceProcAddr( instance, "vkCmdEndDebugUtilsLabelEXT" ) );
- vkCmdEndQuery = PFN_vkCmdEndQuery( vkGetInstanceProcAddr( instance, "vkCmdEndQuery" ) );
- vkCmdEndQueryIndexedEXT =
- PFN_vkCmdEndQueryIndexedEXT( vkGetInstanceProcAddr( instance, "vkCmdEndQueryIndexedEXT" ) );
- vkCmdEndRenderPass = PFN_vkCmdEndRenderPass( vkGetInstanceProcAddr( instance, "vkCmdEndRenderPass" ) );
- vkCmdEndRenderPass2 = PFN_vkCmdEndRenderPass2( vkGetInstanceProcAddr( instance, "vkCmdEndRenderPass2" ) );
+
+ //=== VK_KHR_descriptor_update_template ===
+ vkCreateDescriptorUpdateTemplateKHR = PFN_vkCreateDescriptorUpdateTemplateKHR(
+ vkGetInstanceProcAddr( instance, "vkCreateDescriptorUpdateTemplateKHR" ) );
+ if ( !vkCreateDescriptorUpdateTemplate )
+ vkCreateDescriptorUpdateTemplate = vkCreateDescriptorUpdateTemplateKHR;
+ vkDestroyDescriptorUpdateTemplateKHR = PFN_vkDestroyDescriptorUpdateTemplateKHR(
+ vkGetInstanceProcAddr( instance, "vkDestroyDescriptorUpdateTemplateKHR" ) );
+ if ( !vkDestroyDescriptorUpdateTemplate )
+ vkDestroyDescriptorUpdateTemplate = vkDestroyDescriptorUpdateTemplateKHR;
+ vkUpdateDescriptorSetWithTemplateKHR = PFN_vkUpdateDescriptorSetWithTemplateKHR(
+ vkGetInstanceProcAddr( instance, "vkUpdateDescriptorSetWithTemplateKHR" ) );
+ if ( !vkUpdateDescriptorSetWithTemplate )
+ vkUpdateDescriptorSetWithTemplate = vkUpdateDescriptorSetWithTemplateKHR;
+
+ //=== VK_NV_clip_space_w_scaling ===
+ vkCmdSetViewportWScalingNV =
+ PFN_vkCmdSetViewportWScalingNV( vkGetInstanceProcAddr( instance, "vkCmdSetViewportWScalingNV" ) );
+
+ //=== VK_EXT_direct_mode_display ===
+ vkReleaseDisplayEXT = PFN_vkReleaseDisplayEXT( vkGetInstanceProcAddr( instance, "vkReleaseDisplayEXT" ) );
+
+#if defined( VK_USE_PLATFORM_XLIB_XRANDR_EXT )
+ //=== VK_EXT_acquire_xlib_display ===
+ vkAcquireXlibDisplayEXT =
+ PFN_vkAcquireXlibDisplayEXT( vkGetInstanceProcAddr( instance, "vkAcquireXlibDisplayEXT" ) );
+ vkGetRandROutputDisplayEXT =
+ PFN_vkGetRandROutputDisplayEXT( vkGetInstanceProcAddr( instance, "vkGetRandROutputDisplayEXT" ) );
+#endif /*VK_USE_PLATFORM_XLIB_XRANDR_EXT*/
+
+ //=== VK_EXT_display_surface_counter ===
+ vkGetPhysicalDeviceSurfaceCapabilities2EXT = PFN_vkGetPhysicalDeviceSurfaceCapabilities2EXT(
+ vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceSurfaceCapabilities2EXT" ) );
+
+ //=== VK_EXT_display_control ===
+ vkDisplayPowerControlEXT =
+ PFN_vkDisplayPowerControlEXT( vkGetInstanceProcAddr( instance, "vkDisplayPowerControlEXT" ) );
+ vkRegisterDeviceEventEXT =
+ PFN_vkRegisterDeviceEventEXT( vkGetInstanceProcAddr( instance, "vkRegisterDeviceEventEXT" ) );
+ vkRegisterDisplayEventEXT =
+ PFN_vkRegisterDisplayEventEXT( vkGetInstanceProcAddr( instance, "vkRegisterDisplayEventEXT" ) );
+ vkGetSwapchainCounterEXT =
+ PFN_vkGetSwapchainCounterEXT( vkGetInstanceProcAddr( instance, "vkGetSwapchainCounterEXT" ) );
+
+ //=== VK_GOOGLE_display_timing ===
+ vkGetRefreshCycleDurationGOOGLE =
+ PFN_vkGetRefreshCycleDurationGOOGLE( vkGetInstanceProcAddr( instance, "vkGetRefreshCycleDurationGOOGLE" ) );
+ vkGetPastPresentationTimingGOOGLE =
+ PFN_vkGetPastPresentationTimingGOOGLE( vkGetInstanceProcAddr( instance, "vkGetPastPresentationTimingGOOGLE" ) );
+
+ //=== VK_EXT_discard_rectangles ===
+ vkCmdSetDiscardRectangleEXT =
+ PFN_vkCmdSetDiscardRectangleEXT( vkGetInstanceProcAddr( instance, "vkCmdSetDiscardRectangleEXT" ) );
+
+ //=== VK_EXT_hdr_metadata ===
+ vkSetHdrMetadataEXT = PFN_vkSetHdrMetadataEXT( vkGetInstanceProcAddr( instance, "vkSetHdrMetadataEXT" ) );
+
+ //=== VK_KHR_create_renderpass2 ===
+ vkCreateRenderPass2KHR =
+ PFN_vkCreateRenderPass2KHR( vkGetInstanceProcAddr( instance, "vkCreateRenderPass2KHR" ) );
+ if ( !vkCreateRenderPass2 )
+ vkCreateRenderPass2 = vkCreateRenderPass2KHR;
+ vkCmdBeginRenderPass2KHR =
+ PFN_vkCmdBeginRenderPass2KHR( vkGetInstanceProcAddr( instance, "vkCmdBeginRenderPass2KHR" ) );
+ if ( !vkCmdBeginRenderPass2 )
+ vkCmdBeginRenderPass2 = vkCmdBeginRenderPass2KHR;
+ vkCmdNextSubpass2KHR = PFN_vkCmdNextSubpass2KHR( vkGetInstanceProcAddr( instance, "vkCmdNextSubpass2KHR" ) );
+ if ( !vkCmdNextSubpass2 )
+ vkCmdNextSubpass2 = vkCmdNextSubpass2KHR;
vkCmdEndRenderPass2KHR =
PFN_vkCmdEndRenderPass2KHR( vkGetInstanceProcAddr( instance, "vkCmdEndRenderPass2KHR" ) );
if ( !vkCmdEndRenderPass2 )
vkCmdEndRenderPass2 = vkCmdEndRenderPass2KHR;
- vkCmdEndTransformFeedbackEXT =
- PFN_vkCmdEndTransformFeedbackEXT( vkGetInstanceProcAddr( instance, "vkCmdEndTransformFeedbackEXT" ) );
-#if defined( VK_ENABLE_BETA_EXTENSIONS )
- vkCmdEndVideoCodingKHR =
- PFN_vkCmdEndVideoCodingKHR( vkGetInstanceProcAddr( instance, "vkCmdEndVideoCodingKHR" ) );
-#endif /*VK_ENABLE_BETA_EXTENSIONS*/
- vkCmdExecuteCommands = PFN_vkCmdExecuteCommands( vkGetInstanceProcAddr( instance, "vkCmdExecuteCommands" ) );
- vkCmdExecuteGeneratedCommandsNV =
- PFN_vkCmdExecuteGeneratedCommandsNV( vkGetInstanceProcAddr( instance, "vkCmdExecuteGeneratedCommandsNV" ) );
- vkCmdFillBuffer = PFN_vkCmdFillBuffer( vkGetInstanceProcAddr( instance, "vkCmdFillBuffer" ) );
+
+ //=== VK_KHR_shared_presentable_image ===
+ vkGetSwapchainStatusKHR =
+ PFN_vkGetSwapchainStatusKHR( vkGetInstanceProcAddr( instance, "vkGetSwapchainStatusKHR" ) );
+
+ //=== VK_KHR_external_fence_capabilities ===
+ vkGetPhysicalDeviceExternalFencePropertiesKHR = PFN_vkGetPhysicalDeviceExternalFencePropertiesKHR(
+ vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceExternalFencePropertiesKHR" ) );
+ if ( !vkGetPhysicalDeviceExternalFenceProperties )
+ vkGetPhysicalDeviceExternalFenceProperties = vkGetPhysicalDeviceExternalFencePropertiesKHR;
+
+#if defined( VK_USE_PLATFORM_WIN32_KHR )
+ //=== VK_KHR_external_fence_win32 ===
+ vkImportFenceWin32HandleKHR =
+ PFN_vkImportFenceWin32HandleKHR( vkGetInstanceProcAddr( instance, "vkImportFenceWin32HandleKHR" ) );
+ vkGetFenceWin32HandleKHR =
+ PFN_vkGetFenceWin32HandleKHR( vkGetInstanceProcAddr( instance, "vkGetFenceWin32HandleKHR" ) );
+#endif /*VK_USE_PLATFORM_WIN32_KHR*/
+
+ //=== VK_KHR_external_fence_fd ===
+ vkImportFenceFdKHR = PFN_vkImportFenceFdKHR( vkGetInstanceProcAddr( instance, "vkImportFenceFdKHR" ) );
+ vkGetFenceFdKHR = PFN_vkGetFenceFdKHR( vkGetInstanceProcAddr( instance, "vkGetFenceFdKHR" ) );
+
+ //=== VK_KHR_performance_query ===
+ vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR =
+ PFN_vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR(
+ vkGetInstanceProcAddr( instance, "vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR" ) );
+ vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR =
+ PFN_vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR(
+ vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR" ) );
+ vkAcquireProfilingLockKHR =
+ PFN_vkAcquireProfilingLockKHR( vkGetInstanceProcAddr( instance, "vkAcquireProfilingLockKHR" ) );
+ vkReleaseProfilingLockKHR =
+ PFN_vkReleaseProfilingLockKHR( vkGetInstanceProcAddr( instance, "vkReleaseProfilingLockKHR" ) );
+
+ //=== VK_KHR_get_surface_capabilities2 ===
+ vkGetPhysicalDeviceSurfaceCapabilities2KHR = PFN_vkGetPhysicalDeviceSurfaceCapabilities2KHR(
+ vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceSurfaceCapabilities2KHR" ) );
+ vkGetPhysicalDeviceSurfaceFormats2KHR = PFN_vkGetPhysicalDeviceSurfaceFormats2KHR(
+ vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceSurfaceFormats2KHR" ) );
+
+ //=== VK_KHR_get_display_properties2 ===
+ vkGetPhysicalDeviceDisplayProperties2KHR = PFN_vkGetPhysicalDeviceDisplayProperties2KHR(
+ vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceDisplayProperties2KHR" ) );
+ vkGetPhysicalDeviceDisplayPlaneProperties2KHR = PFN_vkGetPhysicalDeviceDisplayPlaneProperties2KHR(
+ vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceDisplayPlaneProperties2KHR" ) );
+ vkGetDisplayModeProperties2KHR =
+ PFN_vkGetDisplayModeProperties2KHR( vkGetInstanceProcAddr( instance, "vkGetDisplayModeProperties2KHR" ) );
+ vkGetDisplayPlaneCapabilities2KHR =
+ PFN_vkGetDisplayPlaneCapabilities2KHR( vkGetInstanceProcAddr( instance, "vkGetDisplayPlaneCapabilities2KHR" ) );
+
+#if defined( VK_USE_PLATFORM_IOS_MVK )
+ //=== VK_MVK_ios_surface ===
+ vkCreateIOSSurfaceMVK = PFN_vkCreateIOSSurfaceMVK( vkGetInstanceProcAddr( instance, "vkCreateIOSSurfaceMVK" ) );
+#endif /*VK_USE_PLATFORM_IOS_MVK*/
+
+#if defined( VK_USE_PLATFORM_MACOS_MVK )
+ //=== VK_MVK_macos_surface ===
+ vkCreateMacOSSurfaceMVK =
+ PFN_vkCreateMacOSSurfaceMVK( vkGetInstanceProcAddr( instance, "vkCreateMacOSSurfaceMVK" ) );
+#endif /*VK_USE_PLATFORM_MACOS_MVK*/
+
+ //=== VK_EXT_debug_utils ===
+ vkSetDebugUtilsObjectNameEXT =
+ PFN_vkSetDebugUtilsObjectNameEXT( vkGetInstanceProcAddr( instance, "vkSetDebugUtilsObjectNameEXT" ) );
+ vkSetDebugUtilsObjectTagEXT =
+ PFN_vkSetDebugUtilsObjectTagEXT( vkGetInstanceProcAddr( instance, "vkSetDebugUtilsObjectTagEXT" ) );
+ vkQueueBeginDebugUtilsLabelEXT =
+ PFN_vkQueueBeginDebugUtilsLabelEXT( vkGetInstanceProcAddr( instance, "vkQueueBeginDebugUtilsLabelEXT" ) );
+ vkQueueEndDebugUtilsLabelEXT =
+ PFN_vkQueueEndDebugUtilsLabelEXT( vkGetInstanceProcAddr( instance, "vkQueueEndDebugUtilsLabelEXT" ) );
+ vkQueueInsertDebugUtilsLabelEXT =
+ PFN_vkQueueInsertDebugUtilsLabelEXT( vkGetInstanceProcAddr( instance, "vkQueueInsertDebugUtilsLabelEXT" ) );
+ vkCmdBeginDebugUtilsLabelEXT =
+ PFN_vkCmdBeginDebugUtilsLabelEXT( vkGetInstanceProcAddr( instance, "vkCmdBeginDebugUtilsLabelEXT" ) );
+ vkCmdEndDebugUtilsLabelEXT =
+ PFN_vkCmdEndDebugUtilsLabelEXT( vkGetInstanceProcAddr( instance, "vkCmdEndDebugUtilsLabelEXT" ) );
vkCmdInsertDebugUtilsLabelEXT =
PFN_vkCmdInsertDebugUtilsLabelEXT( vkGetInstanceProcAddr( instance, "vkCmdInsertDebugUtilsLabelEXT" ) );
- vkCmdNextSubpass = PFN_vkCmdNextSubpass( vkGetInstanceProcAddr( instance, "vkCmdNextSubpass" ) );
- vkCmdNextSubpass2 = PFN_vkCmdNextSubpass2( vkGetInstanceProcAddr( instance, "vkCmdNextSubpass2" ) );
- vkCmdNextSubpass2KHR = PFN_vkCmdNextSubpass2KHR( vkGetInstanceProcAddr( instance, "vkCmdNextSubpass2KHR" ) );
- if ( !vkCmdNextSubpass2 )
- vkCmdNextSubpass2 = vkCmdNextSubpass2KHR;
- vkCmdPipelineBarrier = PFN_vkCmdPipelineBarrier( vkGetInstanceProcAddr( instance, "vkCmdPipelineBarrier" ) );
- vkCmdPipelineBarrier2KHR =
- PFN_vkCmdPipelineBarrier2KHR( vkGetInstanceProcAddr( instance, "vkCmdPipelineBarrier2KHR" ) );
- vkCmdPreprocessGeneratedCommandsNV = PFN_vkCmdPreprocessGeneratedCommandsNV(
- vkGetInstanceProcAddr( instance, "vkCmdPreprocessGeneratedCommandsNV" ) );
- vkCmdPushConstants = PFN_vkCmdPushConstants( vkGetInstanceProcAddr( instance, "vkCmdPushConstants" ) );
- vkCmdPushDescriptorSetKHR =
- PFN_vkCmdPushDescriptorSetKHR( vkGetInstanceProcAddr( instance, "vkCmdPushDescriptorSetKHR" ) );
- vkCmdPushDescriptorSetWithTemplateKHR = PFN_vkCmdPushDescriptorSetWithTemplateKHR(
- vkGetInstanceProcAddr( instance, "vkCmdPushDescriptorSetWithTemplateKHR" ) );
- vkCmdResetEvent = PFN_vkCmdResetEvent( vkGetInstanceProcAddr( instance, "vkCmdResetEvent" ) );
- vkCmdResetEvent2KHR = PFN_vkCmdResetEvent2KHR( vkGetInstanceProcAddr( instance, "vkCmdResetEvent2KHR" ) );
- vkCmdResetQueryPool = PFN_vkCmdResetQueryPool( vkGetInstanceProcAddr( instance, "vkCmdResetQueryPool" ) );
- vkCmdResolveImage = PFN_vkCmdResolveImage( vkGetInstanceProcAddr( instance, "vkCmdResolveImage" ) );
- vkCmdResolveImage2KHR = PFN_vkCmdResolveImage2KHR( vkGetInstanceProcAddr( instance, "vkCmdResolveImage2KHR" ) );
- vkCmdSetBlendConstants =
- PFN_vkCmdSetBlendConstants( vkGetInstanceProcAddr( instance, "vkCmdSetBlendConstants" ) );
- vkCmdSetCheckpointNV = PFN_vkCmdSetCheckpointNV( vkGetInstanceProcAddr( instance, "vkCmdSetCheckpointNV" ) );
- vkCmdSetCoarseSampleOrderNV =
- PFN_vkCmdSetCoarseSampleOrderNV( vkGetInstanceProcAddr( instance, "vkCmdSetCoarseSampleOrderNV" ) );
- vkCmdSetColorWriteEnableEXT =
- PFN_vkCmdSetColorWriteEnableEXT( vkGetInstanceProcAddr( instance, "vkCmdSetColorWriteEnableEXT" ) );
- vkCmdSetCullModeEXT = PFN_vkCmdSetCullModeEXT( vkGetInstanceProcAddr( instance, "vkCmdSetCullModeEXT" ) );
- vkCmdSetDepthBias = PFN_vkCmdSetDepthBias( vkGetInstanceProcAddr( instance, "vkCmdSetDepthBias" ) );
- vkCmdSetDepthBiasEnableEXT =
- PFN_vkCmdSetDepthBiasEnableEXT( vkGetInstanceProcAddr( instance, "vkCmdSetDepthBiasEnableEXT" ) );
- vkCmdSetDepthBounds = PFN_vkCmdSetDepthBounds( vkGetInstanceProcAddr( instance, "vkCmdSetDepthBounds" ) );
- vkCmdSetDepthBoundsTestEnableEXT =
- PFN_vkCmdSetDepthBoundsTestEnableEXT( vkGetInstanceProcAddr( instance, "vkCmdSetDepthBoundsTestEnableEXT" ) );
- vkCmdSetDepthCompareOpEXT =
- PFN_vkCmdSetDepthCompareOpEXT( vkGetInstanceProcAddr( instance, "vkCmdSetDepthCompareOpEXT" ) );
- vkCmdSetDepthTestEnableEXT =
- PFN_vkCmdSetDepthTestEnableEXT( vkGetInstanceProcAddr( instance, "vkCmdSetDepthTestEnableEXT" ) );
- vkCmdSetDepthWriteEnableEXT =
- PFN_vkCmdSetDepthWriteEnableEXT( vkGetInstanceProcAddr( instance, "vkCmdSetDepthWriteEnableEXT" ) );
- vkCmdSetDeviceMask = PFN_vkCmdSetDeviceMask( vkGetInstanceProcAddr( instance, "vkCmdSetDeviceMask" ) );
- vkCmdSetDeviceMaskKHR = PFN_vkCmdSetDeviceMaskKHR( vkGetInstanceProcAddr( instance, "vkCmdSetDeviceMaskKHR" ) );
- if ( !vkCmdSetDeviceMask )
- vkCmdSetDeviceMask = vkCmdSetDeviceMaskKHR;
- vkCmdSetDiscardRectangleEXT =
- PFN_vkCmdSetDiscardRectangleEXT( vkGetInstanceProcAddr( instance, "vkCmdSetDiscardRectangleEXT" ) );
- vkCmdSetEvent = PFN_vkCmdSetEvent( vkGetInstanceProcAddr( instance, "vkCmdSetEvent" ) );
- vkCmdSetEvent2KHR = PFN_vkCmdSetEvent2KHR( vkGetInstanceProcAddr( instance, "vkCmdSetEvent2KHR" ) );
- vkCmdSetExclusiveScissorNV =
- PFN_vkCmdSetExclusiveScissorNV( vkGetInstanceProcAddr( instance, "vkCmdSetExclusiveScissorNV" ) );
- vkCmdSetFragmentShadingRateEnumNV =
- PFN_vkCmdSetFragmentShadingRateEnumNV( vkGetInstanceProcAddr( instance, "vkCmdSetFragmentShadingRateEnumNV" ) );
- vkCmdSetFragmentShadingRateKHR =
- PFN_vkCmdSetFragmentShadingRateKHR( vkGetInstanceProcAddr( instance, "vkCmdSetFragmentShadingRateKHR" ) );
- vkCmdSetFrontFaceEXT = PFN_vkCmdSetFrontFaceEXT( vkGetInstanceProcAddr( instance, "vkCmdSetFrontFaceEXT" ) );
- vkCmdSetLineStippleEXT =
- PFN_vkCmdSetLineStippleEXT( vkGetInstanceProcAddr( instance, "vkCmdSetLineStippleEXT" ) );
- vkCmdSetLineWidth = PFN_vkCmdSetLineWidth( vkGetInstanceProcAddr( instance, "vkCmdSetLineWidth" ) );
- vkCmdSetLogicOpEXT = PFN_vkCmdSetLogicOpEXT( vkGetInstanceProcAddr( instance, "vkCmdSetLogicOpEXT" ) );
- vkCmdSetPatchControlPointsEXT =
- PFN_vkCmdSetPatchControlPointsEXT( vkGetInstanceProcAddr( instance, "vkCmdSetPatchControlPointsEXT" ) );
- vkCmdSetPerformanceMarkerINTEL =
- PFN_vkCmdSetPerformanceMarkerINTEL( vkGetInstanceProcAddr( instance, "vkCmdSetPerformanceMarkerINTEL" ) );
- vkCmdSetPerformanceOverrideINTEL =
- PFN_vkCmdSetPerformanceOverrideINTEL( vkGetInstanceProcAddr( instance, "vkCmdSetPerformanceOverrideINTEL" ) );
- vkCmdSetPerformanceStreamMarkerINTEL = PFN_vkCmdSetPerformanceStreamMarkerINTEL(
- vkGetInstanceProcAddr( instance, "vkCmdSetPerformanceStreamMarkerINTEL" ) );
- vkCmdSetPrimitiveRestartEnableEXT =
- PFN_vkCmdSetPrimitiveRestartEnableEXT( vkGetInstanceProcAddr( instance, "vkCmdSetPrimitiveRestartEnableEXT" ) );
- vkCmdSetPrimitiveTopologyEXT =
- PFN_vkCmdSetPrimitiveTopologyEXT( vkGetInstanceProcAddr( instance, "vkCmdSetPrimitiveTopologyEXT" ) );
- vkCmdSetRasterizerDiscardEnableEXT = PFN_vkCmdSetRasterizerDiscardEnableEXT(
- vkGetInstanceProcAddr( instance, "vkCmdSetRasterizerDiscardEnableEXT" ) );
- vkCmdSetRayTracingPipelineStackSizeKHR = PFN_vkCmdSetRayTracingPipelineStackSizeKHR(
- vkGetInstanceProcAddr( instance, "vkCmdSetRayTracingPipelineStackSizeKHR" ) );
+ vkCreateDebugUtilsMessengerEXT =
+ PFN_vkCreateDebugUtilsMessengerEXT( vkGetInstanceProcAddr( instance, "vkCreateDebugUtilsMessengerEXT" ) );
+ vkDestroyDebugUtilsMessengerEXT =
+ PFN_vkDestroyDebugUtilsMessengerEXT( vkGetInstanceProcAddr( instance, "vkDestroyDebugUtilsMessengerEXT" ) );
+ vkSubmitDebugUtilsMessageEXT =
+ PFN_vkSubmitDebugUtilsMessageEXT( vkGetInstanceProcAddr( instance, "vkSubmitDebugUtilsMessageEXT" ) );
+
+#if defined( VK_USE_PLATFORM_ANDROID_KHR )
+ //=== VK_ANDROID_external_memory_android_hardware_buffer ===
+ vkGetAndroidHardwareBufferPropertiesANDROID = PFN_vkGetAndroidHardwareBufferPropertiesANDROID(
+ vkGetInstanceProcAddr( instance, "vkGetAndroidHardwareBufferPropertiesANDROID" ) );
+ vkGetMemoryAndroidHardwareBufferANDROID = PFN_vkGetMemoryAndroidHardwareBufferANDROID(
+ vkGetInstanceProcAddr( instance, "vkGetMemoryAndroidHardwareBufferANDROID" ) );
+#endif /*VK_USE_PLATFORM_ANDROID_KHR*/
+
+ //=== VK_EXT_sample_locations ===
vkCmdSetSampleLocationsEXT =
PFN_vkCmdSetSampleLocationsEXT( vkGetInstanceProcAddr( instance, "vkCmdSetSampleLocationsEXT" ) );
- vkCmdSetScissor = PFN_vkCmdSetScissor( vkGetInstanceProcAddr( instance, "vkCmdSetScissor" ) );
- vkCmdSetScissorWithCountEXT =
- PFN_vkCmdSetScissorWithCountEXT( vkGetInstanceProcAddr( instance, "vkCmdSetScissorWithCountEXT" ) );
- vkCmdSetStencilCompareMask =
- PFN_vkCmdSetStencilCompareMask( vkGetInstanceProcAddr( instance, "vkCmdSetStencilCompareMask" ) );
- vkCmdSetStencilOpEXT = PFN_vkCmdSetStencilOpEXT( vkGetInstanceProcAddr( instance, "vkCmdSetStencilOpEXT" ) );
- vkCmdSetStencilReference =
- PFN_vkCmdSetStencilReference( vkGetInstanceProcAddr( instance, "vkCmdSetStencilReference" ) );
- vkCmdSetStencilTestEnableEXT =
- PFN_vkCmdSetStencilTestEnableEXT( vkGetInstanceProcAddr( instance, "vkCmdSetStencilTestEnableEXT" ) );
- vkCmdSetStencilWriteMask =
- PFN_vkCmdSetStencilWriteMask( vkGetInstanceProcAddr( instance, "vkCmdSetStencilWriteMask" ) );
- vkCmdSetVertexInputEXT =
- PFN_vkCmdSetVertexInputEXT( vkGetInstanceProcAddr( instance, "vkCmdSetVertexInputEXT" ) );
- vkCmdSetViewport = PFN_vkCmdSetViewport( vkGetInstanceProcAddr( instance, "vkCmdSetViewport" ) );
- vkCmdSetViewportShadingRatePaletteNV = PFN_vkCmdSetViewportShadingRatePaletteNV(
- vkGetInstanceProcAddr( instance, "vkCmdSetViewportShadingRatePaletteNV" ) );
- vkCmdSetViewportWScalingNV =
- PFN_vkCmdSetViewportWScalingNV( vkGetInstanceProcAddr( instance, "vkCmdSetViewportWScalingNV" ) );
- vkCmdSetViewportWithCountEXT =
- PFN_vkCmdSetViewportWithCountEXT( vkGetInstanceProcAddr( instance, "vkCmdSetViewportWithCountEXT" ) );
- vkCmdSubpassShadingHUAWEI =
- PFN_vkCmdSubpassShadingHUAWEI( vkGetInstanceProcAddr( instance, "vkCmdSubpassShadingHUAWEI" ) );
- vkCmdTraceRaysIndirectKHR =
- PFN_vkCmdTraceRaysIndirectKHR( vkGetInstanceProcAddr( instance, "vkCmdTraceRaysIndirectKHR" ) );
- vkCmdTraceRaysKHR = PFN_vkCmdTraceRaysKHR( vkGetInstanceProcAddr( instance, "vkCmdTraceRaysKHR" ) );
- vkCmdTraceRaysNV = PFN_vkCmdTraceRaysNV( vkGetInstanceProcAddr( instance, "vkCmdTraceRaysNV" ) );
- vkCmdUpdateBuffer = PFN_vkCmdUpdateBuffer( vkGetInstanceProcAddr( instance, "vkCmdUpdateBuffer" ) );
- vkCmdWaitEvents = PFN_vkCmdWaitEvents( vkGetInstanceProcAddr( instance, "vkCmdWaitEvents" ) );
- vkCmdWaitEvents2KHR = PFN_vkCmdWaitEvents2KHR( vkGetInstanceProcAddr( instance, "vkCmdWaitEvents2KHR" ) );
- vkCmdWriteAccelerationStructuresPropertiesKHR = PFN_vkCmdWriteAccelerationStructuresPropertiesKHR(
- vkGetInstanceProcAddr( instance, "vkCmdWriteAccelerationStructuresPropertiesKHR" ) );
- vkCmdWriteAccelerationStructuresPropertiesNV = PFN_vkCmdWriteAccelerationStructuresPropertiesNV(
- vkGetInstanceProcAddr( instance, "vkCmdWriteAccelerationStructuresPropertiesNV" ) );
- vkCmdWriteBufferMarker2AMD =
- PFN_vkCmdWriteBufferMarker2AMD( vkGetInstanceProcAddr( instance, "vkCmdWriteBufferMarker2AMD" ) );
- vkCmdWriteBufferMarkerAMD =
- PFN_vkCmdWriteBufferMarkerAMD( vkGetInstanceProcAddr( instance, "vkCmdWriteBufferMarkerAMD" ) );
- vkCmdWriteTimestamp = PFN_vkCmdWriteTimestamp( vkGetInstanceProcAddr( instance, "vkCmdWriteTimestamp" ) );
- vkCmdWriteTimestamp2KHR =
- PFN_vkCmdWriteTimestamp2KHR( vkGetInstanceProcAddr( instance, "vkCmdWriteTimestamp2KHR" ) );
- vkCompileDeferredNV = PFN_vkCompileDeferredNV( vkGetInstanceProcAddr( instance, "vkCompileDeferredNV" ) );
+ vkGetPhysicalDeviceMultisamplePropertiesEXT = PFN_vkGetPhysicalDeviceMultisamplePropertiesEXT(
+ vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceMultisamplePropertiesEXT" ) );
+
+ //=== VK_KHR_get_memory_requirements2 ===
+ vkGetImageMemoryRequirements2KHR =
+ PFN_vkGetImageMemoryRequirements2KHR( vkGetInstanceProcAddr( instance, "vkGetImageMemoryRequirements2KHR" ) );
+ if ( !vkGetImageMemoryRequirements2 )
+ vkGetImageMemoryRequirements2 = vkGetImageMemoryRequirements2KHR;
+ vkGetBufferMemoryRequirements2KHR =
+ PFN_vkGetBufferMemoryRequirements2KHR( vkGetInstanceProcAddr( instance, "vkGetBufferMemoryRequirements2KHR" ) );
+ if ( !vkGetBufferMemoryRequirements2 )
+ vkGetBufferMemoryRequirements2 = vkGetBufferMemoryRequirements2KHR;
+ vkGetImageSparseMemoryRequirements2KHR = PFN_vkGetImageSparseMemoryRequirements2KHR(
+ vkGetInstanceProcAddr( instance, "vkGetImageSparseMemoryRequirements2KHR" ) );
+ if ( !vkGetImageSparseMemoryRequirements2 )
+ vkGetImageSparseMemoryRequirements2 = vkGetImageSparseMemoryRequirements2KHR;
+
+ //=== VK_KHR_acceleration_structure ===
+ vkCreateAccelerationStructureKHR =
+ PFN_vkCreateAccelerationStructureKHR( vkGetInstanceProcAddr( instance, "vkCreateAccelerationStructureKHR" ) );
+ vkDestroyAccelerationStructureKHR =
+ PFN_vkDestroyAccelerationStructureKHR( vkGetInstanceProcAddr( instance, "vkDestroyAccelerationStructureKHR" ) );
+ vkCmdBuildAccelerationStructuresKHR = PFN_vkCmdBuildAccelerationStructuresKHR(
+ vkGetInstanceProcAddr( instance, "vkCmdBuildAccelerationStructuresKHR" ) );
+ vkCmdBuildAccelerationStructuresIndirectKHR = PFN_vkCmdBuildAccelerationStructuresIndirectKHR(
+ vkGetInstanceProcAddr( instance, "vkCmdBuildAccelerationStructuresIndirectKHR" ) );
+ vkBuildAccelerationStructuresKHR =
+ PFN_vkBuildAccelerationStructuresKHR( vkGetInstanceProcAddr( instance, "vkBuildAccelerationStructuresKHR" ) );
vkCopyAccelerationStructureKHR =
PFN_vkCopyAccelerationStructureKHR( vkGetInstanceProcAddr( instance, "vkCopyAccelerationStructureKHR" ) );
vkCopyAccelerationStructureToMemoryKHR = PFN_vkCopyAccelerationStructureToMemoryKHR(
vkGetInstanceProcAddr( instance, "vkCopyAccelerationStructureToMemoryKHR" ) );
vkCopyMemoryToAccelerationStructureKHR = PFN_vkCopyMemoryToAccelerationStructureKHR(
vkGetInstanceProcAddr( instance, "vkCopyMemoryToAccelerationStructureKHR" ) );
- vkCreateAccelerationStructureKHR =
- PFN_vkCreateAccelerationStructureKHR( vkGetInstanceProcAddr( instance, "vkCreateAccelerationStructureKHR" ) );
- vkCreateAccelerationStructureNV =
- PFN_vkCreateAccelerationStructureNV( vkGetInstanceProcAddr( instance, "vkCreateAccelerationStructureNV" ) );
- vkCreateBuffer = PFN_vkCreateBuffer( vkGetInstanceProcAddr( instance, "vkCreateBuffer" ) );
- vkCreateBufferView = PFN_vkCreateBufferView( vkGetInstanceProcAddr( instance, "vkCreateBufferView" ) );
- vkCreateCommandPool = PFN_vkCreateCommandPool( vkGetInstanceProcAddr( instance, "vkCreateCommandPool" ) );
- vkCreateComputePipelines =
- PFN_vkCreateComputePipelines( vkGetInstanceProcAddr( instance, "vkCreateComputePipelines" ) );
- vkCreateCuFunctionNVX = PFN_vkCreateCuFunctionNVX( vkGetInstanceProcAddr( instance, "vkCreateCuFunctionNVX" ) );
- vkCreateCuModuleNVX = PFN_vkCreateCuModuleNVX( vkGetInstanceProcAddr( instance, "vkCreateCuModuleNVX" ) );
- vkCreateDeferredOperationKHR =
- PFN_vkCreateDeferredOperationKHR( vkGetInstanceProcAddr( instance, "vkCreateDeferredOperationKHR" ) );
- vkCreateDescriptorPool =
- PFN_vkCreateDescriptorPool( vkGetInstanceProcAddr( instance, "vkCreateDescriptorPool" ) );
- vkCreateDescriptorSetLayout =
- PFN_vkCreateDescriptorSetLayout( vkGetInstanceProcAddr( instance, "vkCreateDescriptorSetLayout" ) );
- vkCreateDescriptorUpdateTemplate =
- PFN_vkCreateDescriptorUpdateTemplate( vkGetInstanceProcAddr( instance, "vkCreateDescriptorUpdateTemplate" ) );
- vkCreateDescriptorUpdateTemplateKHR = PFN_vkCreateDescriptorUpdateTemplateKHR(
- vkGetInstanceProcAddr( instance, "vkCreateDescriptorUpdateTemplateKHR" ) );
- if ( !vkCreateDescriptorUpdateTemplate )
- vkCreateDescriptorUpdateTemplate = vkCreateDescriptorUpdateTemplateKHR;
- vkCreateEvent = PFN_vkCreateEvent( vkGetInstanceProcAddr( instance, "vkCreateEvent" ) );
- vkCreateFence = PFN_vkCreateFence( vkGetInstanceProcAddr( instance, "vkCreateFence" ) );
- vkCreateFramebuffer = PFN_vkCreateFramebuffer( vkGetInstanceProcAddr( instance, "vkCreateFramebuffer" ) );
- vkCreateGraphicsPipelines =
- PFN_vkCreateGraphicsPipelines( vkGetInstanceProcAddr( instance, "vkCreateGraphicsPipelines" ) );
- vkCreateImage = PFN_vkCreateImage( vkGetInstanceProcAddr( instance, "vkCreateImage" ) );
- vkCreateImageView = PFN_vkCreateImageView( vkGetInstanceProcAddr( instance, "vkCreateImageView" ) );
- vkCreateIndirectCommandsLayoutNV =
- PFN_vkCreateIndirectCommandsLayoutNV( vkGetInstanceProcAddr( instance, "vkCreateIndirectCommandsLayoutNV" ) );
- vkCreatePipelineCache = PFN_vkCreatePipelineCache( vkGetInstanceProcAddr( instance, "vkCreatePipelineCache" ) );
- vkCreatePipelineLayout =
- PFN_vkCreatePipelineLayout( vkGetInstanceProcAddr( instance, "vkCreatePipelineLayout" ) );
- vkCreatePrivateDataSlotEXT =
- PFN_vkCreatePrivateDataSlotEXT( vkGetInstanceProcAddr( instance, "vkCreatePrivateDataSlotEXT" ) );
- vkCreateQueryPool = PFN_vkCreateQueryPool( vkGetInstanceProcAddr( instance, "vkCreateQueryPool" ) );
- vkCreateRayTracingPipelinesKHR =
- PFN_vkCreateRayTracingPipelinesKHR( vkGetInstanceProcAddr( instance, "vkCreateRayTracingPipelinesKHR" ) );
- vkCreateRayTracingPipelinesNV =
- PFN_vkCreateRayTracingPipelinesNV( vkGetInstanceProcAddr( instance, "vkCreateRayTracingPipelinesNV" ) );
- vkCreateRenderPass = PFN_vkCreateRenderPass( vkGetInstanceProcAddr( instance, "vkCreateRenderPass" ) );
- vkCreateRenderPass2 = PFN_vkCreateRenderPass2( vkGetInstanceProcAddr( instance, "vkCreateRenderPass2" ) );
- vkCreateRenderPass2KHR =
- PFN_vkCreateRenderPass2KHR( vkGetInstanceProcAddr( instance, "vkCreateRenderPass2KHR" ) );
- if ( !vkCreateRenderPass2 )
- vkCreateRenderPass2 = vkCreateRenderPass2KHR;
- vkCreateSampler = PFN_vkCreateSampler( vkGetInstanceProcAddr( instance, "vkCreateSampler" ) );
- vkCreateSamplerYcbcrConversion =
- PFN_vkCreateSamplerYcbcrConversion( vkGetInstanceProcAddr( instance, "vkCreateSamplerYcbcrConversion" ) );
+ vkWriteAccelerationStructuresPropertiesKHR = PFN_vkWriteAccelerationStructuresPropertiesKHR(
+ vkGetInstanceProcAddr( instance, "vkWriteAccelerationStructuresPropertiesKHR" ) );
+ vkCmdCopyAccelerationStructureKHR =
+ PFN_vkCmdCopyAccelerationStructureKHR( vkGetInstanceProcAddr( instance, "vkCmdCopyAccelerationStructureKHR" ) );
+ vkCmdCopyAccelerationStructureToMemoryKHR = PFN_vkCmdCopyAccelerationStructureToMemoryKHR(
+ vkGetInstanceProcAddr( instance, "vkCmdCopyAccelerationStructureToMemoryKHR" ) );
+ vkCmdCopyMemoryToAccelerationStructureKHR = PFN_vkCmdCopyMemoryToAccelerationStructureKHR(
+ vkGetInstanceProcAddr( instance, "vkCmdCopyMemoryToAccelerationStructureKHR" ) );
+ vkGetAccelerationStructureDeviceAddressKHR = PFN_vkGetAccelerationStructureDeviceAddressKHR(
+ vkGetInstanceProcAddr( instance, "vkGetAccelerationStructureDeviceAddressKHR" ) );
+ vkCmdWriteAccelerationStructuresPropertiesKHR = PFN_vkCmdWriteAccelerationStructuresPropertiesKHR(
+ vkGetInstanceProcAddr( instance, "vkCmdWriteAccelerationStructuresPropertiesKHR" ) );
+ vkGetDeviceAccelerationStructureCompatibilityKHR = PFN_vkGetDeviceAccelerationStructureCompatibilityKHR(
+ vkGetInstanceProcAddr( instance, "vkGetDeviceAccelerationStructureCompatibilityKHR" ) );
+ vkGetAccelerationStructureBuildSizesKHR = PFN_vkGetAccelerationStructureBuildSizesKHR(
+ vkGetInstanceProcAddr( instance, "vkGetAccelerationStructureBuildSizesKHR" ) );
+
+ //=== VK_KHR_sampler_ycbcr_conversion ===
vkCreateSamplerYcbcrConversionKHR =
PFN_vkCreateSamplerYcbcrConversionKHR( vkGetInstanceProcAddr( instance, "vkCreateSamplerYcbcrConversionKHR" ) );
if ( !vkCreateSamplerYcbcrConversion )
vkCreateSamplerYcbcrConversion = vkCreateSamplerYcbcrConversionKHR;
- vkCreateSemaphore = PFN_vkCreateSemaphore( vkGetInstanceProcAddr( instance, "vkCreateSemaphore" ) );
- vkCreateShaderModule = PFN_vkCreateShaderModule( vkGetInstanceProcAddr( instance, "vkCreateShaderModule" ) );
- vkCreateSharedSwapchainsKHR =
- PFN_vkCreateSharedSwapchainsKHR( vkGetInstanceProcAddr( instance, "vkCreateSharedSwapchainsKHR" ) );
- vkCreateSwapchainKHR = PFN_vkCreateSwapchainKHR( vkGetInstanceProcAddr( instance, "vkCreateSwapchainKHR" ) );
- vkCreateValidationCacheEXT =
- PFN_vkCreateValidationCacheEXT( vkGetInstanceProcAddr( instance, "vkCreateValidationCacheEXT" ) );
-#if defined( VK_ENABLE_BETA_EXTENSIONS )
- vkCreateVideoSessionKHR =
- PFN_vkCreateVideoSessionKHR( vkGetInstanceProcAddr( instance, "vkCreateVideoSessionKHR" ) );
-#endif /*VK_ENABLE_BETA_EXTENSIONS*/
-#if defined( VK_ENABLE_BETA_EXTENSIONS )
- vkCreateVideoSessionParametersKHR =
- PFN_vkCreateVideoSessionParametersKHR( vkGetInstanceProcAddr( instance, "vkCreateVideoSessionParametersKHR" ) );
-#endif /*VK_ENABLE_BETA_EXTENSIONS*/
- vkDebugMarkerSetObjectNameEXT =
- PFN_vkDebugMarkerSetObjectNameEXT( vkGetInstanceProcAddr( instance, "vkDebugMarkerSetObjectNameEXT" ) );
- vkDebugMarkerSetObjectTagEXT =
- PFN_vkDebugMarkerSetObjectTagEXT( vkGetInstanceProcAddr( instance, "vkDebugMarkerSetObjectTagEXT" ) );
- vkDeferredOperationJoinKHR =
- PFN_vkDeferredOperationJoinKHR( vkGetInstanceProcAddr( instance, "vkDeferredOperationJoinKHR" ) );
- vkDestroyAccelerationStructureKHR =
- PFN_vkDestroyAccelerationStructureKHR( vkGetInstanceProcAddr( instance, "vkDestroyAccelerationStructureKHR" ) );
- vkDestroyAccelerationStructureNV =
- PFN_vkDestroyAccelerationStructureNV( vkGetInstanceProcAddr( instance, "vkDestroyAccelerationStructureNV" ) );
- vkDestroyBuffer = PFN_vkDestroyBuffer( vkGetInstanceProcAddr( instance, "vkDestroyBuffer" ) );
- vkDestroyBufferView = PFN_vkDestroyBufferView( vkGetInstanceProcAddr( instance, "vkDestroyBufferView" ) );
- vkDestroyCommandPool = PFN_vkDestroyCommandPool( vkGetInstanceProcAddr( instance, "vkDestroyCommandPool" ) );
- vkDestroyCuFunctionNVX =
- PFN_vkDestroyCuFunctionNVX( vkGetInstanceProcAddr( instance, "vkDestroyCuFunctionNVX" ) );
- vkDestroyCuModuleNVX = PFN_vkDestroyCuModuleNVX( vkGetInstanceProcAddr( instance, "vkDestroyCuModuleNVX" ) );
- vkDestroyDeferredOperationKHR =
- PFN_vkDestroyDeferredOperationKHR( vkGetInstanceProcAddr( instance, "vkDestroyDeferredOperationKHR" ) );
- vkDestroyDescriptorPool =
- PFN_vkDestroyDescriptorPool( vkGetInstanceProcAddr( instance, "vkDestroyDescriptorPool" ) );
- vkDestroyDescriptorSetLayout =
- PFN_vkDestroyDescriptorSetLayout( vkGetInstanceProcAddr( instance, "vkDestroyDescriptorSetLayout" ) );
- vkDestroyDescriptorUpdateTemplate =
- PFN_vkDestroyDescriptorUpdateTemplate( vkGetInstanceProcAddr( instance, "vkDestroyDescriptorUpdateTemplate" ) );
- vkDestroyDescriptorUpdateTemplateKHR = PFN_vkDestroyDescriptorUpdateTemplateKHR(
- vkGetInstanceProcAddr( instance, "vkDestroyDescriptorUpdateTemplateKHR" ) );
- if ( !vkDestroyDescriptorUpdateTemplate )
- vkDestroyDescriptorUpdateTemplate = vkDestroyDescriptorUpdateTemplateKHR;
- vkDestroyDevice = PFN_vkDestroyDevice( vkGetInstanceProcAddr( instance, "vkDestroyDevice" ) );
- vkDestroyEvent = PFN_vkDestroyEvent( vkGetInstanceProcAddr( instance, "vkDestroyEvent" ) );
- vkDestroyFence = PFN_vkDestroyFence( vkGetInstanceProcAddr( instance, "vkDestroyFence" ) );
- vkDestroyFramebuffer = PFN_vkDestroyFramebuffer( vkGetInstanceProcAddr( instance, "vkDestroyFramebuffer" ) );
- vkDestroyImage = PFN_vkDestroyImage( vkGetInstanceProcAddr( instance, "vkDestroyImage" ) );
- vkDestroyImageView = PFN_vkDestroyImageView( vkGetInstanceProcAddr( instance, "vkDestroyImageView" ) );
- vkDestroyIndirectCommandsLayoutNV =
- PFN_vkDestroyIndirectCommandsLayoutNV( vkGetInstanceProcAddr( instance, "vkDestroyIndirectCommandsLayoutNV" ) );
- vkDestroyPipeline = PFN_vkDestroyPipeline( vkGetInstanceProcAddr( instance, "vkDestroyPipeline" ) );
- vkDestroyPipelineCache =
- PFN_vkDestroyPipelineCache( vkGetInstanceProcAddr( instance, "vkDestroyPipelineCache" ) );
- vkDestroyPipelineLayout =
- PFN_vkDestroyPipelineLayout( vkGetInstanceProcAddr( instance, "vkDestroyPipelineLayout" ) );
- vkDestroyPrivateDataSlotEXT =
- PFN_vkDestroyPrivateDataSlotEXT( vkGetInstanceProcAddr( instance, "vkDestroyPrivateDataSlotEXT" ) );
- vkDestroyQueryPool = PFN_vkDestroyQueryPool( vkGetInstanceProcAddr( instance, "vkDestroyQueryPool" ) );
- vkDestroyRenderPass = PFN_vkDestroyRenderPass( vkGetInstanceProcAddr( instance, "vkDestroyRenderPass" ) );
- vkDestroySampler = PFN_vkDestroySampler( vkGetInstanceProcAddr( instance, "vkDestroySampler" ) );
- vkDestroySamplerYcbcrConversion =
- PFN_vkDestroySamplerYcbcrConversion( vkGetInstanceProcAddr( instance, "vkDestroySamplerYcbcrConversion" ) );
vkDestroySamplerYcbcrConversionKHR = PFN_vkDestroySamplerYcbcrConversionKHR(
vkGetInstanceProcAddr( instance, "vkDestroySamplerYcbcrConversionKHR" ) );
if ( !vkDestroySamplerYcbcrConversion )
vkDestroySamplerYcbcrConversion = vkDestroySamplerYcbcrConversionKHR;
- vkDestroySemaphore = PFN_vkDestroySemaphore( vkGetInstanceProcAddr( instance, "vkDestroySemaphore" ) );
- vkDestroyShaderModule = PFN_vkDestroyShaderModule( vkGetInstanceProcAddr( instance, "vkDestroyShaderModule" ) );
- vkDestroySwapchainKHR = PFN_vkDestroySwapchainKHR( vkGetInstanceProcAddr( instance, "vkDestroySwapchainKHR" ) );
+
+ //=== VK_KHR_bind_memory2 ===
+ vkBindBufferMemory2KHR =
+ PFN_vkBindBufferMemory2KHR( vkGetInstanceProcAddr( instance, "vkBindBufferMemory2KHR" ) );
+ if ( !vkBindBufferMemory2 )
+ vkBindBufferMemory2 = vkBindBufferMemory2KHR;
+ vkBindImageMemory2KHR = PFN_vkBindImageMemory2KHR( vkGetInstanceProcAddr( instance, "vkBindImageMemory2KHR" ) );
+ if ( !vkBindImageMemory2 )
+ vkBindImageMemory2 = vkBindImageMemory2KHR;
+
+ //=== VK_EXT_image_drm_format_modifier ===
+ vkGetImageDrmFormatModifierPropertiesEXT = PFN_vkGetImageDrmFormatModifierPropertiesEXT(
+ vkGetInstanceProcAddr( instance, "vkGetImageDrmFormatModifierPropertiesEXT" ) );
+
+ //=== VK_EXT_validation_cache ===
+ vkCreateValidationCacheEXT =
+ PFN_vkCreateValidationCacheEXT( vkGetInstanceProcAddr( instance, "vkCreateValidationCacheEXT" ) );
vkDestroyValidationCacheEXT =
PFN_vkDestroyValidationCacheEXT( vkGetInstanceProcAddr( instance, "vkDestroyValidationCacheEXT" ) );
-#if defined( VK_ENABLE_BETA_EXTENSIONS )
- vkDestroyVideoSessionKHR =
- PFN_vkDestroyVideoSessionKHR( vkGetInstanceProcAddr( instance, "vkDestroyVideoSessionKHR" ) );
-#endif /*VK_ENABLE_BETA_EXTENSIONS*/
-#if defined( VK_ENABLE_BETA_EXTENSIONS )
- vkDestroyVideoSessionParametersKHR = PFN_vkDestroyVideoSessionParametersKHR(
- vkGetInstanceProcAddr( instance, "vkDestroyVideoSessionParametersKHR" ) );
-#endif /*VK_ENABLE_BETA_EXTENSIONS*/
- vkDeviceWaitIdle = PFN_vkDeviceWaitIdle( vkGetInstanceProcAddr( instance, "vkDeviceWaitIdle" ) );
- vkDisplayPowerControlEXT =
- PFN_vkDisplayPowerControlEXT( vkGetInstanceProcAddr( instance, "vkDisplayPowerControlEXT" ) );
- vkEndCommandBuffer = PFN_vkEndCommandBuffer( vkGetInstanceProcAddr( instance, "vkEndCommandBuffer" ) );
- vkFlushMappedMemoryRanges =
- PFN_vkFlushMappedMemoryRanges( vkGetInstanceProcAddr( instance, "vkFlushMappedMemoryRanges" ) );
- vkFreeCommandBuffers = PFN_vkFreeCommandBuffers( vkGetInstanceProcAddr( instance, "vkFreeCommandBuffers" ) );
- vkFreeDescriptorSets = PFN_vkFreeDescriptorSets( vkGetInstanceProcAddr( instance, "vkFreeDescriptorSets" ) );
- vkFreeMemory = PFN_vkFreeMemory( vkGetInstanceProcAddr( instance, "vkFreeMemory" ) );
- vkGetAccelerationStructureBuildSizesKHR = PFN_vkGetAccelerationStructureBuildSizesKHR(
- vkGetInstanceProcAddr( instance, "vkGetAccelerationStructureBuildSizesKHR" ) );
- vkGetAccelerationStructureDeviceAddressKHR = PFN_vkGetAccelerationStructureDeviceAddressKHR(
- vkGetInstanceProcAddr( instance, "vkGetAccelerationStructureDeviceAddressKHR" ) );
- vkGetAccelerationStructureHandleNV = PFN_vkGetAccelerationStructureHandleNV(
- vkGetInstanceProcAddr( instance, "vkGetAccelerationStructureHandleNV" ) );
+ vkMergeValidationCachesEXT =
+ PFN_vkMergeValidationCachesEXT( vkGetInstanceProcAddr( instance, "vkMergeValidationCachesEXT" ) );
+ vkGetValidationCacheDataEXT =
+ PFN_vkGetValidationCacheDataEXT( vkGetInstanceProcAddr( instance, "vkGetValidationCacheDataEXT" ) );
+
+ //=== VK_NV_shading_rate_image ===
+ vkCmdBindShadingRateImageNV =
+ PFN_vkCmdBindShadingRateImageNV( vkGetInstanceProcAddr( instance, "vkCmdBindShadingRateImageNV" ) );
+ vkCmdSetViewportShadingRatePaletteNV = PFN_vkCmdSetViewportShadingRatePaletteNV(
+ vkGetInstanceProcAddr( instance, "vkCmdSetViewportShadingRatePaletteNV" ) );
+ vkCmdSetCoarseSampleOrderNV =
+ PFN_vkCmdSetCoarseSampleOrderNV( vkGetInstanceProcAddr( instance, "vkCmdSetCoarseSampleOrderNV" ) );
+
+ //=== VK_NV_ray_tracing ===
+ vkCreateAccelerationStructureNV =
+ PFN_vkCreateAccelerationStructureNV( vkGetInstanceProcAddr( instance, "vkCreateAccelerationStructureNV" ) );
+ vkDestroyAccelerationStructureNV =
+ PFN_vkDestroyAccelerationStructureNV( vkGetInstanceProcAddr( instance, "vkDestroyAccelerationStructureNV" ) );
vkGetAccelerationStructureMemoryRequirementsNV = PFN_vkGetAccelerationStructureMemoryRequirementsNV(
vkGetInstanceProcAddr( instance, "vkGetAccelerationStructureMemoryRequirementsNV" ) );
-#if defined( VK_USE_PLATFORM_ANDROID_KHR )
- vkGetAndroidHardwareBufferPropertiesANDROID = PFN_vkGetAndroidHardwareBufferPropertiesANDROID(
- vkGetInstanceProcAddr( instance, "vkGetAndroidHardwareBufferPropertiesANDROID" ) );
-#endif /*VK_USE_PLATFORM_ANDROID_KHR*/
- vkGetBufferDeviceAddress =
- PFN_vkGetBufferDeviceAddress( vkGetInstanceProcAddr( instance, "vkGetBufferDeviceAddress" ) );
+ vkBindAccelerationStructureMemoryNV = PFN_vkBindAccelerationStructureMemoryNV(
+ vkGetInstanceProcAddr( instance, "vkBindAccelerationStructureMemoryNV" ) );
+ vkCmdBuildAccelerationStructureNV =
+ PFN_vkCmdBuildAccelerationStructureNV( vkGetInstanceProcAddr( instance, "vkCmdBuildAccelerationStructureNV" ) );
+ vkCmdCopyAccelerationStructureNV =
+ PFN_vkCmdCopyAccelerationStructureNV( vkGetInstanceProcAddr( instance, "vkCmdCopyAccelerationStructureNV" ) );
+ vkCmdTraceRaysNV = PFN_vkCmdTraceRaysNV( vkGetInstanceProcAddr( instance, "vkCmdTraceRaysNV" ) );
+ vkCreateRayTracingPipelinesNV =
+ PFN_vkCreateRayTracingPipelinesNV( vkGetInstanceProcAddr( instance, "vkCreateRayTracingPipelinesNV" ) );
+ vkGetRayTracingShaderGroupHandlesNV = PFN_vkGetRayTracingShaderGroupHandlesNV(
+ vkGetInstanceProcAddr( instance, "vkGetRayTracingShaderGroupHandlesNV" ) );
+ if ( !vkGetRayTracingShaderGroupHandlesKHR )
+ vkGetRayTracingShaderGroupHandlesKHR = vkGetRayTracingShaderGroupHandlesNV;
+ vkGetAccelerationStructureHandleNV = PFN_vkGetAccelerationStructureHandleNV(
+ vkGetInstanceProcAddr( instance, "vkGetAccelerationStructureHandleNV" ) );
+ vkCmdWriteAccelerationStructuresPropertiesNV = PFN_vkCmdWriteAccelerationStructuresPropertiesNV(
+ vkGetInstanceProcAddr( instance, "vkCmdWriteAccelerationStructuresPropertiesNV" ) );
+ vkCompileDeferredNV = PFN_vkCompileDeferredNV( vkGetInstanceProcAddr( instance, "vkCompileDeferredNV" ) );
+
+ //=== VK_KHR_maintenance3 ===
+ vkGetDescriptorSetLayoutSupportKHR = PFN_vkGetDescriptorSetLayoutSupportKHR(
+ vkGetInstanceProcAddr( instance, "vkGetDescriptorSetLayoutSupportKHR" ) );
+ if ( !vkGetDescriptorSetLayoutSupport )
+ vkGetDescriptorSetLayoutSupport = vkGetDescriptorSetLayoutSupportKHR;
+
+ //=== VK_KHR_draw_indirect_count ===
+ vkCmdDrawIndirectCountKHR =
+ PFN_vkCmdDrawIndirectCountKHR( vkGetInstanceProcAddr( instance, "vkCmdDrawIndirectCountKHR" ) );
+ if ( !vkCmdDrawIndirectCount )
+ vkCmdDrawIndirectCount = vkCmdDrawIndirectCountKHR;
+ vkCmdDrawIndexedIndirectCountKHR =
+ PFN_vkCmdDrawIndexedIndirectCountKHR( vkGetInstanceProcAddr( instance, "vkCmdDrawIndexedIndirectCountKHR" ) );
+ if ( !vkCmdDrawIndexedIndirectCount )
+ vkCmdDrawIndexedIndirectCount = vkCmdDrawIndexedIndirectCountKHR;
+
+ //=== VK_EXT_external_memory_host ===
+ vkGetMemoryHostPointerPropertiesEXT = PFN_vkGetMemoryHostPointerPropertiesEXT(
+ vkGetInstanceProcAddr( instance, "vkGetMemoryHostPointerPropertiesEXT" ) );
+
+ //=== VK_AMD_buffer_marker ===
+ vkCmdWriteBufferMarkerAMD =
+ PFN_vkCmdWriteBufferMarkerAMD( vkGetInstanceProcAddr( instance, "vkCmdWriteBufferMarkerAMD" ) );
+
+ //=== VK_EXT_calibrated_timestamps ===
+ vkGetPhysicalDeviceCalibrateableTimeDomainsEXT = PFN_vkGetPhysicalDeviceCalibrateableTimeDomainsEXT(
+ vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceCalibrateableTimeDomainsEXT" ) );
+ vkGetCalibratedTimestampsEXT =
+ PFN_vkGetCalibratedTimestampsEXT( vkGetInstanceProcAddr( instance, "vkGetCalibratedTimestampsEXT" ) );
+
+ //=== VK_NV_mesh_shader ===
+ vkCmdDrawMeshTasksNV = PFN_vkCmdDrawMeshTasksNV( vkGetInstanceProcAddr( instance, "vkCmdDrawMeshTasksNV" ) );
+ vkCmdDrawMeshTasksIndirectNV =
+ PFN_vkCmdDrawMeshTasksIndirectNV( vkGetInstanceProcAddr( instance, "vkCmdDrawMeshTasksIndirectNV" ) );
+ vkCmdDrawMeshTasksIndirectCountNV =
+ PFN_vkCmdDrawMeshTasksIndirectCountNV( vkGetInstanceProcAddr( instance, "vkCmdDrawMeshTasksIndirectCountNV" ) );
+
+ //=== VK_NV_scissor_exclusive ===
+ vkCmdSetExclusiveScissorNV =
+ PFN_vkCmdSetExclusiveScissorNV( vkGetInstanceProcAddr( instance, "vkCmdSetExclusiveScissorNV" ) );
+
+ //=== VK_NV_device_diagnostic_checkpoints ===
+ vkCmdSetCheckpointNV = PFN_vkCmdSetCheckpointNV( vkGetInstanceProcAddr( instance, "vkCmdSetCheckpointNV" ) );
+ vkGetQueueCheckpointDataNV =
+ PFN_vkGetQueueCheckpointDataNV( vkGetInstanceProcAddr( instance, "vkGetQueueCheckpointDataNV" ) );
+
+ //=== VK_KHR_timeline_semaphore ===
+ vkGetSemaphoreCounterValueKHR =
+ PFN_vkGetSemaphoreCounterValueKHR( vkGetInstanceProcAddr( instance, "vkGetSemaphoreCounterValueKHR" ) );
+ if ( !vkGetSemaphoreCounterValue )
+ vkGetSemaphoreCounterValue = vkGetSemaphoreCounterValueKHR;
+ vkWaitSemaphoresKHR = PFN_vkWaitSemaphoresKHR( vkGetInstanceProcAddr( instance, "vkWaitSemaphoresKHR" ) );
+ if ( !vkWaitSemaphores )
+ vkWaitSemaphores = vkWaitSemaphoresKHR;
+ vkSignalSemaphoreKHR = PFN_vkSignalSemaphoreKHR( vkGetInstanceProcAddr( instance, "vkSignalSemaphoreKHR" ) );
+ if ( !vkSignalSemaphore )
+ vkSignalSemaphore = vkSignalSemaphoreKHR;
+
+ //=== VK_INTEL_performance_query ===
+ vkInitializePerformanceApiINTEL =
+ PFN_vkInitializePerformanceApiINTEL( vkGetInstanceProcAddr( instance, "vkInitializePerformanceApiINTEL" ) );
+ vkUninitializePerformanceApiINTEL =
+ PFN_vkUninitializePerformanceApiINTEL( vkGetInstanceProcAddr( instance, "vkUninitializePerformanceApiINTEL" ) );
+ vkCmdSetPerformanceMarkerINTEL =
+ PFN_vkCmdSetPerformanceMarkerINTEL( vkGetInstanceProcAddr( instance, "vkCmdSetPerformanceMarkerINTEL" ) );
+ vkCmdSetPerformanceStreamMarkerINTEL = PFN_vkCmdSetPerformanceStreamMarkerINTEL(
+ vkGetInstanceProcAddr( instance, "vkCmdSetPerformanceStreamMarkerINTEL" ) );
+ vkCmdSetPerformanceOverrideINTEL =
+ PFN_vkCmdSetPerformanceOverrideINTEL( vkGetInstanceProcAddr( instance, "vkCmdSetPerformanceOverrideINTEL" ) );
+ vkAcquirePerformanceConfigurationINTEL = PFN_vkAcquirePerformanceConfigurationINTEL(
+ vkGetInstanceProcAddr( instance, "vkAcquirePerformanceConfigurationINTEL" ) );
+ vkReleasePerformanceConfigurationINTEL = PFN_vkReleasePerformanceConfigurationINTEL(
+ vkGetInstanceProcAddr( instance, "vkReleasePerformanceConfigurationINTEL" ) );
+ vkQueueSetPerformanceConfigurationINTEL = PFN_vkQueueSetPerformanceConfigurationINTEL(
+ vkGetInstanceProcAddr( instance, "vkQueueSetPerformanceConfigurationINTEL" ) );
+ vkGetPerformanceParameterINTEL =
+ PFN_vkGetPerformanceParameterINTEL( vkGetInstanceProcAddr( instance, "vkGetPerformanceParameterINTEL" ) );
+
+ //=== VK_AMD_display_native_hdr ===
+ vkSetLocalDimmingAMD = PFN_vkSetLocalDimmingAMD( vkGetInstanceProcAddr( instance, "vkSetLocalDimmingAMD" ) );
+
+#if defined( VK_USE_PLATFORM_FUCHSIA )
+ //=== VK_FUCHSIA_imagepipe_surface ===
+ vkCreateImagePipeSurfaceFUCHSIA =
+ PFN_vkCreateImagePipeSurfaceFUCHSIA( vkGetInstanceProcAddr( instance, "vkCreateImagePipeSurfaceFUCHSIA" ) );
+#endif /*VK_USE_PLATFORM_FUCHSIA*/
+
+#if defined( VK_USE_PLATFORM_METAL_EXT )
+ //=== VK_EXT_metal_surface ===
+ vkCreateMetalSurfaceEXT =
+ PFN_vkCreateMetalSurfaceEXT( vkGetInstanceProcAddr( instance, "vkCreateMetalSurfaceEXT" ) );
+#endif /*VK_USE_PLATFORM_METAL_EXT*/
+
+ //=== VK_KHR_fragment_shading_rate ===
+ vkGetPhysicalDeviceFragmentShadingRatesKHR = PFN_vkGetPhysicalDeviceFragmentShadingRatesKHR(
+ vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceFragmentShadingRatesKHR" ) );
+ vkCmdSetFragmentShadingRateKHR =
+ PFN_vkCmdSetFragmentShadingRateKHR( vkGetInstanceProcAddr( instance, "vkCmdSetFragmentShadingRateKHR" ) );
+
+ //=== VK_EXT_buffer_device_address ===
vkGetBufferDeviceAddressEXT =
PFN_vkGetBufferDeviceAddressEXT( vkGetInstanceProcAddr( instance, "vkGetBufferDeviceAddressEXT" ) );
if ( !vkGetBufferDeviceAddress )
vkGetBufferDeviceAddress = vkGetBufferDeviceAddressEXT;
+
+ //=== VK_EXT_tooling_info ===
+ vkGetPhysicalDeviceToolPropertiesEXT = PFN_vkGetPhysicalDeviceToolPropertiesEXT(
+ vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceToolPropertiesEXT" ) );
+
+ //=== VK_KHR_present_wait ===
+ vkWaitForPresentKHR = PFN_vkWaitForPresentKHR( vkGetInstanceProcAddr( instance, "vkWaitForPresentKHR" ) );
+
+ //=== VK_NV_cooperative_matrix ===
+ vkGetPhysicalDeviceCooperativeMatrixPropertiesNV = PFN_vkGetPhysicalDeviceCooperativeMatrixPropertiesNV(
+ vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceCooperativeMatrixPropertiesNV" ) );
+
+ //=== VK_NV_coverage_reduction_mode ===
+ vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV =
+ PFN_vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV(
+ vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV" ) );
+
+#if defined( VK_USE_PLATFORM_WIN32_KHR )
+ //=== VK_EXT_full_screen_exclusive ===
+ vkGetPhysicalDeviceSurfacePresentModes2EXT = PFN_vkGetPhysicalDeviceSurfacePresentModes2EXT(
+ vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceSurfacePresentModes2EXT" ) );
+ vkAcquireFullScreenExclusiveModeEXT = PFN_vkAcquireFullScreenExclusiveModeEXT(
+ vkGetInstanceProcAddr( instance, "vkAcquireFullScreenExclusiveModeEXT" ) );
+ vkReleaseFullScreenExclusiveModeEXT = PFN_vkReleaseFullScreenExclusiveModeEXT(
+ vkGetInstanceProcAddr( instance, "vkReleaseFullScreenExclusiveModeEXT" ) );
+ vkGetDeviceGroupSurfacePresentModes2EXT = PFN_vkGetDeviceGroupSurfacePresentModes2EXT(
+ vkGetInstanceProcAddr( instance, "vkGetDeviceGroupSurfacePresentModes2EXT" ) );
+#endif /*VK_USE_PLATFORM_WIN32_KHR*/
+
+ //=== VK_EXT_headless_surface ===
+ vkCreateHeadlessSurfaceEXT =
+ PFN_vkCreateHeadlessSurfaceEXT( vkGetInstanceProcAddr( instance, "vkCreateHeadlessSurfaceEXT" ) );
+
+ //=== VK_KHR_buffer_device_address ===
vkGetBufferDeviceAddressKHR =
PFN_vkGetBufferDeviceAddressKHR( vkGetInstanceProcAddr( instance, "vkGetBufferDeviceAddressKHR" ) );
if ( !vkGetBufferDeviceAddress )
vkGetBufferDeviceAddress = vkGetBufferDeviceAddressKHR;
- vkGetBufferMemoryRequirements =
- PFN_vkGetBufferMemoryRequirements( vkGetInstanceProcAddr( instance, "vkGetBufferMemoryRequirements" ) );
- vkGetBufferMemoryRequirements2 =
- PFN_vkGetBufferMemoryRequirements2( vkGetInstanceProcAddr( instance, "vkGetBufferMemoryRequirements2" ) );
- vkGetBufferMemoryRequirements2KHR =
- PFN_vkGetBufferMemoryRequirements2KHR( vkGetInstanceProcAddr( instance, "vkGetBufferMemoryRequirements2KHR" ) );
- if ( !vkGetBufferMemoryRequirements2 )
- vkGetBufferMemoryRequirements2 = vkGetBufferMemoryRequirements2KHR;
- vkGetBufferOpaqueCaptureAddress =
- PFN_vkGetBufferOpaqueCaptureAddress( vkGetInstanceProcAddr( instance, "vkGetBufferOpaqueCaptureAddress" ) );
vkGetBufferOpaqueCaptureAddressKHR = PFN_vkGetBufferOpaqueCaptureAddressKHR(
vkGetInstanceProcAddr( instance, "vkGetBufferOpaqueCaptureAddressKHR" ) );
if ( !vkGetBufferOpaqueCaptureAddress )
vkGetBufferOpaqueCaptureAddress = vkGetBufferOpaqueCaptureAddressKHR;
- vkGetCalibratedTimestampsEXT =
- PFN_vkGetCalibratedTimestampsEXT( vkGetInstanceProcAddr( instance, "vkGetCalibratedTimestampsEXT" ) );
- vkGetDeferredOperationMaxConcurrencyKHR = PFN_vkGetDeferredOperationMaxConcurrencyKHR(
- vkGetInstanceProcAddr( instance, "vkGetDeferredOperationMaxConcurrencyKHR" ) );
- vkGetDeferredOperationResultKHR =
- PFN_vkGetDeferredOperationResultKHR( vkGetInstanceProcAddr( instance, "vkGetDeferredOperationResultKHR" ) );
- vkGetDescriptorSetLayoutSupport =
- PFN_vkGetDescriptorSetLayoutSupport( vkGetInstanceProcAddr( instance, "vkGetDescriptorSetLayoutSupport" ) );
- vkGetDescriptorSetLayoutSupportKHR = PFN_vkGetDescriptorSetLayoutSupportKHR(
- vkGetInstanceProcAddr( instance, "vkGetDescriptorSetLayoutSupportKHR" ) );
- if ( !vkGetDescriptorSetLayoutSupport )
- vkGetDescriptorSetLayoutSupport = vkGetDescriptorSetLayoutSupportKHR;
- vkGetDeviceAccelerationStructureCompatibilityKHR = PFN_vkGetDeviceAccelerationStructureCompatibilityKHR(
- vkGetInstanceProcAddr( instance, "vkGetDeviceAccelerationStructureCompatibilityKHR" ) );
- vkGetDeviceGroupPeerMemoryFeatures = PFN_vkGetDeviceGroupPeerMemoryFeatures(
- vkGetInstanceProcAddr( instance, "vkGetDeviceGroupPeerMemoryFeatures" ) );
- vkGetDeviceGroupPeerMemoryFeaturesKHR = PFN_vkGetDeviceGroupPeerMemoryFeaturesKHR(
- vkGetInstanceProcAddr( instance, "vkGetDeviceGroupPeerMemoryFeaturesKHR" ) );
- if ( !vkGetDeviceGroupPeerMemoryFeatures )
- vkGetDeviceGroupPeerMemoryFeatures = vkGetDeviceGroupPeerMemoryFeaturesKHR;
- vkGetDeviceGroupPresentCapabilitiesKHR = PFN_vkGetDeviceGroupPresentCapabilitiesKHR(
- vkGetInstanceProcAddr( instance, "vkGetDeviceGroupPresentCapabilitiesKHR" ) );
-#if defined( VK_USE_PLATFORM_WIN32_KHR )
- vkGetDeviceGroupSurfacePresentModes2EXT = PFN_vkGetDeviceGroupSurfacePresentModes2EXT(
- vkGetInstanceProcAddr( instance, "vkGetDeviceGroupSurfacePresentModes2EXT" ) );
-#endif /*VK_USE_PLATFORM_WIN32_KHR*/
- vkGetDeviceGroupSurfacePresentModesKHR = PFN_vkGetDeviceGroupSurfacePresentModesKHR(
- vkGetInstanceProcAddr( instance, "vkGetDeviceGroupSurfacePresentModesKHR" ) );
- vkGetDeviceMemoryCommitment =
- PFN_vkGetDeviceMemoryCommitment( vkGetInstanceProcAddr( instance, "vkGetDeviceMemoryCommitment" ) );
- vkGetDeviceMemoryOpaqueCaptureAddress = PFN_vkGetDeviceMemoryOpaqueCaptureAddress(
- vkGetInstanceProcAddr( instance, "vkGetDeviceMemoryOpaqueCaptureAddress" ) );
vkGetDeviceMemoryOpaqueCaptureAddressKHR = PFN_vkGetDeviceMemoryOpaqueCaptureAddressKHR(
vkGetInstanceProcAddr( instance, "vkGetDeviceMemoryOpaqueCaptureAddressKHR" ) );
if ( !vkGetDeviceMemoryOpaqueCaptureAddress )
vkGetDeviceMemoryOpaqueCaptureAddress = vkGetDeviceMemoryOpaqueCaptureAddressKHR;
- vkGetDeviceProcAddr = PFN_vkGetDeviceProcAddr( vkGetInstanceProcAddr( instance, "vkGetDeviceProcAddr" ) );
- vkGetDeviceQueue = PFN_vkGetDeviceQueue( vkGetInstanceProcAddr( instance, "vkGetDeviceQueue" ) );
- vkGetDeviceQueue2 = PFN_vkGetDeviceQueue2( vkGetInstanceProcAddr( instance, "vkGetDeviceQueue2" ) );
- vkGetEventStatus = PFN_vkGetEventStatus( vkGetInstanceProcAddr( instance, "vkGetEventStatus" ) );
- vkGetFenceFdKHR = PFN_vkGetFenceFdKHR( vkGetInstanceProcAddr( instance, "vkGetFenceFdKHR" ) );
- vkGetFenceStatus = PFN_vkGetFenceStatus( vkGetInstanceProcAddr( instance, "vkGetFenceStatus" ) );
-#if defined( VK_USE_PLATFORM_WIN32_KHR )
- vkGetFenceWin32HandleKHR =
- PFN_vkGetFenceWin32HandleKHR( vkGetInstanceProcAddr( instance, "vkGetFenceWin32HandleKHR" ) );
-#endif /*VK_USE_PLATFORM_WIN32_KHR*/
- vkGetGeneratedCommandsMemoryRequirementsNV = PFN_vkGetGeneratedCommandsMemoryRequirementsNV(
- vkGetInstanceProcAddr( instance, "vkGetGeneratedCommandsMemoryRequirementsNV" ) );
- vkGetImageDrmFormatModifierPropertiesEXT = PFN_vkGetImageDrmFormatModifierPropertiesEXT(
- vkGetInstanceProcAddr( instance, "vkGetImageDrmFormatModifierPropertiesEXT" ) );
- vkGetImageMemoryRequirements =
- PFN_vkGetImageMemoryRequirements( vkGetInstanceProcAddr( instance, "vkGetImageMemoryRequirements" ) );
- vkGetImageMemoryRequirements2 =
- PFN_vkGetImageMemoryRequirements2( vkGetInstanceProcAddr( instance, "vkGetImageMemoryRequirements2" ) );
- vkGetImageMemoryRequirements2KHR =
- PFN_vkGetImageMemoryRequirements2KHR( vkGetInstanceProcAddr( instance, "vkGetImageMemoryRequirements2KHR" ) );
- if ( !vkGetImageMemoryRequirements2 )
- vkGetImageMemoryRequirements2 = vkGetImageMemoryRequirements2KHR;
- vkGetImageSparseMemoryRequirements = PFN_vkGetImageSparseMemoryRequirements(
- vkGetInstanceProcAddr( instance, "vkGetImageSparseMemoryRequirements" ) );
- vkGetImageSparseMemoryRequirements2 = PFN_vkGetImageSparseMemoryRequirements2(
- vkGetInstanceProcAddr( instance, "vkGetImageSparseMemoryRequirements2" ) );
- vkGetImageSparseMemoryRequirements2KHR = PFN_vkGetImageSparseMemoryRequirements2KHR(
- vkGetInstanceProcAddr( instance, "vkGetImageSparseMemoryRequirements2KHR" ) );
- if ( !vkGetImageSparseMemoryRequirements2 )
- vkGetImageSparseMemoryRequirements2 = vkGetImageSparseMemoryRequirements2KHR;
- vkGetImageSubresourceLayout =
- PFN_vkGetImageSubresourceLayout( vkGetInstanceProcAddr( instance, "vkGetImageSubresourceLayout" ) );
- vkGetImageViewAddressNVX =
- PFN_vkGetImageViewAddressNVX( vkGetInstanceProcAddr( instance, "vkGetImageViewAddressNVX" ) );
- vkGetImageViewHandleNVX =
- PFN_vkGetImageViewHandleNVX( vkGetInstanceProcAddr( instance, "vkGetImageViewHandleNVX" ) );
-#if defined( VK_USE_PLATFORM_ANDROID_KHR )
- vkGetMemoryAndroidHardwareBufferANDROID = PFN_vkGetMemoryAndroidHardwareBufferANDROID(
- vkGetInstanceProcAddr( instance, "vkGetMemoryAndroidHardwareBufferANDROID" ) );
-#endif /*VK_USE_PLATFORM_ANDROID_KHR*/
- vkGetMemoryFdKHR = PFN_vkGetMemoryFdKHR( vkGetInstanceProcAddr( instance, "vkGetMemoryFdKHR" ) );
- vkGetMemoryFdPropertiesKHR =
- PFN_vkGetMemoryFdPropertiesKHR( vkGetInstanceProcAddr( instance, "vkGetMemoryFdPropertiesKHR" ) );
- vkGetMemoryHostPointerPropertiesEXT = PFN_vkGetMemoryHostPointerPropertiesEXT(
- vkGetInstanceProcAddr( instance, "vkGetMemoryHostPointerPropertiesEXT" ) );
-#if defined( VK_USE_PLATFORM_WIN32_KHR )
- vkGetMemoryWin32HandleKHR =
- PFN_vkGetMemoryWin32HandleKHR( vkGetInstanceProcAddr( instance, "vkGetMemoryWin32HandleKHR" ) );
-#endif /*VK_USE_PLATFORM_WIN32_KHR*/
-#if defined( VK_USE_PLATFORM_WIN32_KHR )
- vkGetMemoryWin32HandleNV =
- PFN_vkGetMemoryWin32HandleNV( vkGetInstanceProcAddr( instance, "vkGetMemoryWin32HandleNV" ) );
-#endif /*VK_USE_PLATFORM_WIN32_KHR*/
-#if defined( VK_USE_PLATFORM_WIN32_KHR )
- vkGetMemoryWin32HandlePropertiesKHR = PFN_vkGetMemoryWin32HandlePropertiesKHR(
- vkGetInstanceProcAddr( instance, "vkGetMemoryWin32HandlePropertiesKHR" ) );
-#endif /*VK_USE_PLATFORM_WIN32_KHR*/
-#if defined( VK_USE_PLATFORM_FUCHSIA )
- vkGetMemoryZirconHandleFUCHSIA =
- PFN_vkGetMemoryZirconHandleFUCHSIA( vkGetInstanceProcAddr( instance, "vkGetMemoryZirconHandleFUCHSIA" ) );
-#endif /*VK_USE_PLATFORM_FUCHSIA*/
-#if defined( VK_USE_PLATFORM_FUCHSIA )
- vkGetMemoryZirconHandlePropertiesFUCHSIA = PFN_vkGetMemoryZirconHandlePropertiesFUCHSIA(
- vkGetInstanceProcAddr( instance, "vkGetMemoryZirconHandlePropertiesFUCHSIA" ) );
-#endif /*VK_USE_PLATFORM_FUCHSIA*/
- vkGetPastPresentationTimingGOOGLE =
- PFN_vkGetPastPresentationTimingGOOGLE( vkGetInstanceProcAddr( instance, "vkGetPastPresentationTimingGOOGLE" ) );
- vkGetPerformanceParameterINTEL =
- PFN_vkGetPerformanceParameterINTEL( vkGetInstanceProcAddr( instance, "vkGetPerformanceParameterINTEL" ) );
- vkGetPipelineCacheData =
- PFN_vkGetPipelineCacheData( vkGetInstanceProcAddr( instance, "vkGetPipelineCacheData" ) );
- vkGetPipelineExecutableInternalRepresentationsKHR = PFN_vkGetPipelineExecutableInternalRepresentationsKHR(
- vkGetInstanceProcAddr( instance, "vkGetPipelineExecutableInternalRepresentationsKHR" ) );
+
+ //=== VK_EXT_line_rasterization ===
+ vkCmdSetLineStippleEXT =
+ PFN_vkCmdSetLineStippleEXT( vkGetInstanceProcAddr( instance, "vkCmdSetLineStippleEXT" ) );
+
+ //=== VK_EXT_host_query_reset ===
+ vkResetQueryPoolEXT = PFN_vkResetQueryPoolEXT( vkGetInstanceProcAddr( instance, "vkResetQueryPoolEXT" ) );
+ if ( !vkResetQueryPool )
+ vkResetQueryPool = vkResetQueryPoolEXT;
+
+ //=== VK_EXT_extended_dynamic_state ===
+ vkCmdSetCullModeEXT = PFN_vkCmdSetCullModeEXT( vkGetInstanceProcAddr( instance, "vkCmdSetCullModeEXT" ) );
+ vkCmdSetFrontFaceEXT = PFN_vkCmdSetFrontFaceEXT( vkGetInstanceProcAddr( instance, "vkCmdSetFrontFaceEXT" ) );
+ vkCmdSetPrimitiveTopologyEXT =
+ PFN_vkCmdSetPrimitiveTopologyEXT( vkGetInstanceProcAddr( instance, "vkCmdSetPrimitiveTopologyEXT" ) );
+ vkCmdSetViewportWithCountEXT =
+ PFN_vkCmdSetViewportWithCountEXT( vkGetInstanceProcAddr( instance, "vkCmdSetViewportWithCountEXT" ) );
+ vkCmdSetScissorWithCountEXT =
+ PFN_vkCmdSetScissorWithCountEXT( vkGetInstanceProcAddr( instance, "vkCmdSetScissorWithCountEXT" ) );
+ vkCmdBindVertexBuffers2EXT =
+ PFN_vkCmdBindVertexBuffers2EXT( vkGetInstanceProcAddr( instance, "vkCmdBindVertexBuffers2EXT" ) );
+ vkCmdSetDepthTestEnableEXT =
+ PFN_vkCmdSetDepthTestEnableEXT( vkGetInstanceProcAddr( instance, "vkCmdSetDepthTestEnableEXT" ) );
+ vkCmdSetDepthWriteEnableEXT =
+ PFN_vkCmdSetDepthWriteEnableEXT( vkGetInstanceProcAddr( instance, "vkCmdSetDepthWriteEnableEXT" ) );
+ vkCmdSetDepthCompareOpEXT =
+ PFN_vkCmdSetDepthCompareOpEXT( vkGetInstanceProcAddr( instance, "vkCmdSetDepthCompareOpEXT" ) );
+ vkCmdSetDepthBoundsTestEnableEXT =
+ PFN_vkCmdSetDepthBoundsTestEnableEXT( vkGetInstanceProcAddr( instance, "vkCmdSetDepthBoundsTestEnableEXT" ) );
+ vkCmdSetStencilTestEnableEXT =
+ PFN_vkCmdSetStencilTestEnableEXT( vkGetInstanceProcAddr( instance, "vkCmdSetStencilTestEnableEXT" ) );
+ vkCmdSetStencilOpEXT = PFN_vkCmdSetStencilOpEXT( vkGetInstanceProcAddr( instance, "vkCmdSetStencilOpEXT" ) );
+
+ //=== VK_KHR_deferred_host_operations ===
+ vkCreateDeferredOperationKHR =
+ PFN_vkCreateDeferredOperationKHR( vkGetInstanceProcAddr( instance, "vkCreateDeferredOperationKHR" ) );
+ vkDestroyDeferredOperationKHR =
+ PFN_vkDestroyDeferredOperationKHR( vkGetInstanceProcAddr( instance, "vkDestroyDeferredOperationKHR" ) );
+ vkGetDeferredOperationMaxConcurrencyKHR = PFN_vkGetDeferredOperationMaxConcurrencyKHR(
+ vkGetInstanceProcAddr( instance, "vkGetDeferredOperationMaxConcurrencyKHR" ) );
+ vkGetDeferredOperationResultKHR =
+ PFN_vkGetDeferredOperationResultKHR( vkGetInstanceProcAddr( instance, "vkGetDeferredOperationResultKHR" ) );
+ vkDeferredOperationJoinKHR =
+ PFN_vkDeferredOperationJoinKHR( vkGetInstanceProcAddr( instance, "vkDeferredOperationJoinKHR" ) );
+
+ //=== VK_KHR_pipeline_executable_properties ===
vkGetPipelineExecutablePropertiesKHR = PFN_vkGetPipelineExecutablePropertiesKHR(
vkGetInstanceProcAddr( instance, "vkGetPipelineExecutablePropertiesKHR" ) );
vkGetPipelineExecutableStatisticsKHR = PFN_vkGetPipelineExecutableStatisticsKHR(
vkGetInstanceProcAddr( instance, "vkGetPipelineExecutableStatisticsKHR" ) );
- vkGetPrivateDataEXT = PFN_vkGetPrivateDataEXT( vkGetInstanceProcAddr( instance, "vkGetPrivateDataEXT" ) );
- vkGetQueryPoolResults = PFN_vkGetQueryPoolResults( vkGetInstanceProcAddr( instance, "vkGetQueryPoolResults" ) );
+ vkGetPipelineExecutableInternalRepresentationsKHR = PFN_vkGetPipelineExecutableInternalRepresentationsKHR(
+ vkGetInstanceProcAddr( instance, "vkGetPipelineExecutableInternalRepresentationsKHR" ) );
+
+ //=== VK_NV_device_generated_commands ===
+ vkGetGeneratedCommandsMemoryRequirementsNV = PFN_vkGetGeneratedCommandsMemoryRequirementsNV(
+ vkGetInstanceProcAddr( instance, "vkGetGeneratedCommandsMemoryRequirementsNV" ) );
+ vkCmdPreprocessGeneratedCommandsNV = PFN_vkCmdPreprocessGeneratedCommandsNV(
+ vkGetInstanceProcAddr( instance, "vkCmdPreprocessGeneratedCommandsNV" ) );
+ vkCmdExecuteGeneratedCommandsNV =
+ PFN_vkCmdExecuteGeneratedCommandsNV( vkGetInstanceProcAddr( instance, "vkCmdExecuteGeneratedCommandsNV" ) );
+ vkCmdBindPipelineShaderGroupNV =
+ PFN_vkCmdBindPipelineShaderGroupNV( vkGetInstanceProcAddr( instance, "vkCmdBindPipelineShaderGroupNV" ) );
+ vkCreateIndirectCommandsLayoutNV =
+ PFN_vkCreateIndirectCommandsLayoutNV( vkGetInstanceProcAddr( instance, "vkCreateIndirectCommandsLayoutNV" ) );
+ vkDestroyIndirectCommandsLayoutNV =
+ PFN_vkDestroyIndirectCommandsLayoutNV( vkGetInstanceProcAddr( instance, "vkDestroyIndirectCommandsLayoutNV" ) );
+
+ //=== VK_EXT_acquire_drm_display ===
+ vkAcquireDrmDisplayEXT =
+ PFN_vkAcquireDrmDisplayEXT( vkGetInstanceProcAddr( instance, "vkAcquireDrmDisplayEXT" ) );
+ vkGetDrmDisplayEXT = PFN_vkGetDrmDisplayEXT( vkGetInstanceProcAddr( instance, "vkGetDrmDisplayEXT" ) );
+
+ //=== VK_EXT_private_data ===
+ vkCreatePrivateDataSlotEXT =
+ PFN_vkCreatePrivateDataSlotEXT( vkGetInstanceProcAddr( instance, "vkCreatePrivateDataSlotEXT" ) );
+ vkDestroyPrivateDataSlotEXT =
+ PFN_vkDestroyPrivateDataSlotEXT( vkGetInstanceProcAddr( instance, "vkDestroyPrivateDataSlotEXT" ) );
+ vkSetPrivateDataEXT = PFN_vkSetPrivateDataEXT( vkGetInstanceProcAddr( instance, "vkSetPrivateDataEXT" ) );
+ vkGetPrivateDataEXT = PFN_vkGetPrivateDataEXT( vkGetInstanceProcAddr( instance, "vkGetPrivateDataEXT" ) );
+
+#if defined( VK_ENABLE_BETA_EXTENSIONS )
+ //=== VK_KHR_video_encode_queue ===
+ vkCmdEncodeVideoKHR = PFN_vkCmdEncodeVideoKHR( vkGetInstanceProcAddr( instance, "vkCmdEncodeVideoKHR" ) );
+#endif /*VK_ENABLE_BETA_EXTENSIONS*/
+
+ //=== VK_KHR_synchronization2 ===
+ vkCmdSetEvent2KHR = PFN_vkCmdSetEvent2KHR( vkGetInstanceProcAddr( instance, "vkCmdSetEvent2KHR" ) );
+ vkCmdResetEvent2KHR = PFN_vkCmdResetEvent2KHR( vkGetInstanceProcAddr( instance, "vkCmdResetEvent2KHR" ) );
+ vkCmdWaitEvents2KHR = PFN_vkCmdWaitEvents2KHR( vkGetInstanceProcAddr( instance, "vkCmdWaitEvents2KHR" ) );
+ vkCmdPipelineBarrier2KHR =
+ PFN_vkCmdPipelineBarrier2KHR( vkGetInstanceProcAddr( instance, "vkCmdPipelineBarrier2KHR" ) );
+ vkCmdWriteTimestamp2KHR =
+ PFN_vkCmdWriteTimestamp2KHR( vkGetInstanceProcAddr( instance, "vkCmdWriteTimestamp2KHR" ) );
+ vkQueueSubmit2KHR = PFN_vkQueueSubmit2KHR( vkGetInstanceProcAddr( instance, "vkQueueSubmit2KHR" ) );
+ vkCmdWriteBufferMarker2AMD =
+ PFN_vkCmdWriteBufferMarker2AMD( vkGetInstanceProcAddr( instance, "vkCmdWriteBufferMarker2AMD" ) );
vkGetQueueCheckpointData2NV =
PFN_vkGetQueueCheckpointData2NV( vkGetInstanceProcAddr( instance, "vkGetQueueCheckpointData2NV" ) );
- vkGetQueueCheckpointDataNV =
- PFN_vkGetQueueCheckpointDataNV( vkGetInstanceProcAddr( instance, "vkGetQueueCheckpointDataNV" ) );
- vkGetRayTracingCaptureReplayShaderGroupHandlesKHR = PFN_vkGetRayTracingCaptureReplayShaderGroupHandlesKHR(
- vkGetInstanceProcAddr( instance, "vkGetRayTracingCaptureReplayShaderGroupHandlesKHR" ) );
+
+ //=== VK_NV_fragment_shading_rate_enums ===
+ vkCmdSetFragmentShadingRateEnumNV =
+ PFN_vkCmdSetFragmentShadingRateEnumNV( vkGetInstanceProcAddr( instance, "vkCmdSetFragmentShadingRateEnumNV" ) );
+
+ //=== VK_KHR_copy_commands2 ===
+ vkCmdCopyBuffer2KHR = PFN_vkCmdCopyBuffer2KHR( vkGetInstanceProcAddr( instance, "vkCmdCopyBuffer2KHR" ) );
+ vkCmdCopyImage2KHR = PFN_vkCmdCopyImage2KHR( vkGetInstanceProcAddr( instance, "vkCmdCopyImage2KHR" ) );
+ vkCmdCopyBufferToImage2KHR =
+ PFN_vkCmdCopyBufferToImage2KHR( vkGetInstanceProcAddr( instance, "vkCmdCopyBufferToImage2KHR" ) );
+ vkCmdCopyImageToBuffer2KHR =
+ PFN_vkCmdCopyImageToBuffer2KHR( vkGetInstanceProcAddr( instance, "vkCmdCopyImageToBuffer2KHR" ) );
+ vkCmdBlitImage2KHR = PFN_vkCmdBlitImage2KHR( vkGetInstanceProcAddr( instance, "vkCmdBlitImage2KHR" ) );
+ vkCmdResolveImage2KHR = PFN_vkCmdResolveImage2KHR( vkGetInstanceProcAddr( instance, "vkCmdResolveImage2KHR" ) );
+
+#if defined( VK_USE_PLATFORM_WIN32_KHR )
+ //=== VK_NV_acquire_winrt_display ===
+ vkAcquireWinrtDisplayNV =
+ PFN_vkAcquireWinrtDisplayNV( vkGetInstanceProcAddr( instance, "vkAcquireWinrtDisplayNV" ) );
+ vkGetWinrtDisplayNV = PFN_vkGetWinrtDisplayNV( vkGetInstanceProcAddr( instance, "vkGetWinrtDisplayNV" ) );
+#endif /*VK_USE_PLATFORM_WIN32_KHR*/
+
+#if defined( VK_USE_PLATFORM_DIRECTFB_EXT )
+ //=== VK_EXT_directfb_surface ===
+ vkCreateDirectFBSurfaceEXT =
+ PFN_vkCreateDirectFBSurfaceEXT( vkGetInstanceProcAddr( instance, "vkCreateDirectFBSurfaceEXT" ) );
+ vkGetPhysicalDeviceDirectFBPresentationSupportEXT = PFN_vkGetPhysicalDeviceDirectFBPresentationSupportEXT(
+ vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceDirectFBPresentationSupportEXT" ) );
+#endif /*VK_USE_PLATFORM_DIRECTFB_EXT*/
+
+ //=== VK_KHR_ray_tracing_pipeline ===
+ vkCmdTraceRaysKHR = PFN_vkCmdTraceRaysKHR( vkGetInstanceProcAddr( instance, "vkCmdTraceRaysKHR" ) );
+ vkCreateRayTracingPipelinesKHR =
+ PFN_vkCreateRayTracingPipelinesKHR( vkGetInstanceProcAddr( instance, "vkCreateRayTracingPipelinesKHR" ) );
vkGetRayTracingShaderGroupHandlesKHR = PFN_vkGetRayTracingShaderGroupHandlesKHR(
vkGetInstanceProcAddr( instance, "vkGetRayTracingShaderGroupHandlesKHR" ) );
- vkGetRayTracingShaderGroupHandlesNV = PFN_vkGetRayTracingShaderGroupHandlesNV(
- vkGetInstanceProcAddr( instance, "vkGetRayTracingShaderGroupHandlesNV" ) );
- if ( !vkGetRayTracingShaderGroupHandlesKHR )
- vkGetRayTracingShaderGroupHandlesKHR = vkGetRayTracingShaderGroupHandlesNV;
+ vkGetRayTracingCaptureReplayShaderGroupHandlesKHR = PFN_vkGetRayTracingCaptureReplayShaderGroupHandlesKHR(
+ vkGetInstanceProcAddr( instance, "vkGetRayTracingCaptureReplayShaderGroupHandlesKHR" ) );
+ vkCmdTraceRaysIndirectKHR =
+ PFN_vkCmdTraceRaysIndirectKHR( vkGetInstanceProcAddr( instance, "vkCmdTraceRaysIndirectKHR" ) );
vkGetRayTracingShaderGroupStackSizeKHR = PFN_vkGetRayTracingShaderGroupStackSizeKHR(
vkGetInstanceProcAddr( instance, "vkGetRayTracingShaderGroupStackSizeKHR" ) );
- vkGetRefreshCycleDurationGOOGLE =
- PFN_vkGetRefreshCycleDurationGOOGLE( vkGetInstanceProcAddr( instance, "vkGetRefreshCycleDurationGOOGLE" ) );
- vkGetRenderAreaGranularity =
- PFN_vkGetRenderAreaGranularity( vkGetInstanceProcAddr( instance, "vkGetRenderAreaGranularity" ) );
- vkGetSemaphoreCounterValue =
- PFN_vkGetSemaphoreCounterValue( vkGetInstanceProcAddr( instance, "vkGetSemaphoreCounterValue" ) );
- vkGetSemaphoreCounterValueKHR =
- PFN_vkGetSemaphoreCounterValueKHR( vkGetInstanceProcAddr( instance, "vkGetSemaphoreCounterValueKHR" ) );
- if ( !vkGetSemaphoreCounterValue )
- vkGetSemaphoreCounterValue = vkGetSemaphoreCounterValueKHR;
- vkGetSemaphoreFdKHR = PFN_vkGetSemaphoreFdKHR( vkGetInstanceProcAddr( instance, "vkGetSemaphoreFdKHR" ) );
-#if defined( VK_USE_PLATFORM_WIN32_KHR )
- vkGetSemaphoreWin32HandleKHR =
- PFN_vkGetSemaphoreWin32HandleKHR( vkGetInstanceProcAddr( instance, "vkGetSemaphoreWin32HandleKHR" ) );
-#endif /*VK_USE_PLATFORM_WIN32_KHR*/
+ vkCmdSetRayTracingPipelineStackSizeKHR = PFN_vkCmdSetRayTracingPipelineStackSizeKHR(
+ vkGetInstanceProcAddr( instance, "vkCmdSetRayTracingPipelineStackSizeKHR" ) );
+
+ //=== VK_EXT_vertex_input_dynamic_state ===
+ vkCmdSetVertexInputEXT =
+ PFN_vkCmdSetVertexInputEXT( vkGetInstanceProcAddr( instance, "vkCmdSetVertexInputEXT" ) );
+
#if defined( VK_USE_PLATFORM_FUCHSIA )
- vkGetSemaphoreZirconHandleFUCHSIA =
- PFN_vkGetSemaphoreZirconHandleFUCHSIA( vkGetInstanceProcAddr( instance, "vkGetSemaphoreZirconHandleFUCHSIA" ) );
+ //=== VK_FUCHSIA_external_memory ===
+ vkGetMemoryZirconHandleFUCHSIA =
+ PFN_vkGetMemoryZirconHandleFUCHSIA( vkGetInstanceProcAddr( instance, "vkGetMemoryZirconHandleFUCHSIA" ) );
+ vkGetMemoryZirconHandlePropertiesFUCHSIA = PFN_vkGetMemoryZirconHandlePropertiesFUCHSIA(
+ vkGetInstanceProcAddr( instance, "vkGetMemoryZirconHandlePropertiesFUCHSIA" ) );
#endif /*VK_USE_PLATFORM_FUCHSIA*/
- vkGetShaderInfoAMD = PFN_vkGetShaderInfoAMD( vkGetInstanceProcAddr( instance, "vkGetShaderInfoAMD" ) );
- vkGetSubpassShadingMaxWorkgroupSizeHUAWEI = PFN_vkGetSubpassShadingMaxWorkgroupSizeHUAWEI(
- vkGetInstanceProcAddr( instance, "vkGetSubpassShadingMaxWorkgroupSizeHUAWEI" ) );
- vkGetSwapchainCounterEXT =
- PFN_vkGetSwapchainCounterEXT( vkGetInstanceProcAddr( instance, "vkGetSwapchainCounterEXT" ) );
- vkGetSwapchainImagesKHR =
- PFN_vkGetSwapchainImagesKHR( vkGetInstanceProcAddr( instance, "vkGetSwapchainImagesKHR" ) );
- vkGetSwapchainStatusKHR =
- PFN_vkGetSwapchainStatusKHR( vkGetInstanceProcAddr( instance, "vkGetSwapchainStatusKHR" ) );
- vkGetValidationCacheDataEXT =
- PFN_vkGetValidationCacheDataEXT( vkGetInstanceProcAddr( instance, "vkGetValidationCacheDataEXT" ) );
-#if defined( VK_ENABLE_BETA_EXTENSIONS )
- vkGetVideoSessionMemoryRequirementsKHR = PFN_vkGetVideoSessionMemoryRequirementsKHR(
- vkGetInstanceProcAddr( instance, "vkGetVideoSessionMemoryRequirementsKHR" ) );
-#endif /*VK_ENABLE_BETA_EXTENSIONS*/
- vkImportFenceFdKHR = PFN_vkImportFenceFdKHR( vkGetInstanceProcAddr( instance, "vkImportFenceFdKHR" ) );
-#if defined( VK_USE_PLATFORM_WIN32_KHR )
- vkImportFenceWin32HandleKHR =
- PFN_vkImportFenceWin32HandleKHR( vkGetInstanceProcAddr( instance, "vkImportFenceWin32HandleKHR" ) );
-#endif /*VK_USE_PLATFORM_WIN32_KHR*/
- vkImportSemaphoreFdKHR =
- PFN_vkImportSemaphoreFdKHR( vkGetInstanceProcAddr( instance, "vkImportSemaphoreFdKHR" ) );
-#if defined( VK_USE_PLATFORM_WIN32_KHR )
- vkImportSemaphoreWin32HandleKHR =
- PFN_vkImportSemaphoreWin32HandleKHR( vkGetInstanceProcAddr( instance, "vkImportSemaphoreWin32HandleKHR" ) );
-#endif /*VK_USE_PLATFORM_WIN32_KHR*/
+
#if defined( VK_USE_PLATFORM_FUCHSIA )
+ //=== VK_FUCHSIA_external_semaphore ===
vkImportSemaphoreZirconHandleFUCHSIA = PFN_vkImportSemaphoreZirconHandleFUCHSIA(
vkGetInstanceProcAddr( instance, "vkImportSemaphoreZirconHandleFUCHSIA" ) );
+ vkGetSemaphoreZirconHandleFUCHSIA =
+ PFN_vkGetSemaphoreZirconHandleFUCHSIA( vkGetInstanceProcAddr( instance, "vkGetSemaphoreZirconHandleFUCHSIA" ) );
#endif /*VK_USE_PLATFORM_FUCHSIA*/
- vkInitializePerformanceApiINTEL =
- PFN_vkInitializePerformanceApiINTEL( vkGetInstanceProcAddr( instance, "vkInitializePerformanceApiINTEL" ) );
- vkInvalidateMappedMemoryRanges =
- PFN_vkInvalidateMappedMemoryRanges( vkGetInstanceProcAddr( instance, "vkInvalidateMappedMemoryRanges" ) );
- vkMapMemory = PFN_vkMapMemory( vkGetInstanceProcAddr( instance, "vkMapMemory" ) );
- vkMergePipelineCaches = PFN_vkMergePipelineCaches( vkGetInstanceProcAddr( instance, "vkMergePipelineCaches" ) );
- vkMergeValidationCachesEXT =
- PFN_vkMergeValidationCachesEXT( vkGetInstanceProcAddr( instance, "vkMergeValidationCachesEXT" ) );
- vkQueueBeginDebugUtilsLabelEXT =
- PFN_vkQueueBeginDebugUtilsLabelEXT( vkGetInstanceProcAddr( instance, "vkQueueBeginDebugUtilsLabelEXT" ) );
- vkQueueBindSparse = PFN_vkQueueBindSparse( vkGetInstanceProcAddr( instance, "vkQueueBindSparse" ) );
- vkQueueEndDebugUtilsLabelEXT =
- PFN_vkQueueEndDebugUtilsLabelEXT( vkGetInstanceProcAddr( instance, "vkQueueEndDebugUtilsLabelEXT" ) );
- vkQueueInsertDebugUtilsLabelEXT =
- PFN_vkQueueInsertDebugUtilsLabelEXT( vkGetInstanceProcAddr( instance, "vkQueueInsertDebugUtilsLabelEXT" ) );
- vkQueuePresentKHR = PFN_vkQueuePresentKHR( vkGetInstanceProcAddr( instance, "vkQueuePresentKHR" ) );
- vkQueueSetPerformanceConfigurationINTEL = PFN_vkQueueSetPerformanceConfigurationINTEL(
- vkGetInstanceProcAddr( instance, "vkQueueSetPerformanceConfigurationINTEL" ) );
- vkQueueSubmit = PFN_vkQueueSubmit( vkGetInstanceProcAddr( instance, "vkQueueSubmit" ) );
- vkQueueSubmit2KHR = PFN_vkQueueSubmit2KHR( vkGetInstanceProcAddr( instance, "vkQueueSubmit2KHR" ) );
- vkQueueWaitIdle = PFN_vkQueueWaitIdle( vkGetInstanceProcAddr( instance, "vkQueueWaitIdle" ) );
- vkRegisterDeviceEventEXT =
- PFN_vkRegisterDeviceEventEXT( vkGetInstanceProcAddr( instance, "vkRegisterDeviceEventEXT" ) );
- vkRegisterDisplayEventEXT =
- PFN_vkRegisterDisplayEventEXT( vkGetInstanceProcAddr( instance, "vkRegisterDisplayEventEXT" ) );
-#if defined( VK_USE_PLATFORM_WIN32_KHR )
- vkReleaseFullScreenExclusiveModeEXT = PFN_vkReleaseFullScreenExclusiveModeEXT(
- vkGetInstanceProcAddr( instance, "vkReleaseFullScreenExclusiveModeEXT" ) );
-#endif /*VK_USE_PLATFORM_WIN32_KHR*/
- vkReleasePerformanceConfigurationINTEL = PFN_vkReleasePerformanceConfigurationINTEL(
- vkGetInstanceProcAddr( instance, "vkReleasePerformanceConfigurationINTEL" ) );
- vkReleaseProfilingLockKHR =
- PFN_vkReleaseProfilingLockKHR( vkGetInstanceProcAddr( instance, "vkReleaseProfilingLockKHR" ) );
- vkResetCommandBuffer = PFN_vkResetCommandBuffer( vkGetInstanceProcAddr( instance, "vkResetCommandBuffer" ) );
- vkResetCommandPool = PFN_vkResetCommandPool( vkGetInstanceProcAddr( instance, "vkResetCommandPool" ) );
- vkResetDescriptorPool = PFN_vkResetDescriptorPool( vkGetInstanceProcAddr( instance, "vkResetDescriptorPool" ) );
- vkResetEvent = PFN_vkResetEvent( vkGetInstanceProcAddr( instance, "vkResetEvent" ) );
- vkResetFences = PFN_vkResetFences( vkGetInstanceProcAddr( instance, "vkResetFences" ) );
- vkResetQueryPool = PFN_vkResetQueryPool( vkGetInstanceProcAddr( instance, "vkResetQueryPool" ) );
- vkResetQueryPoolEXT = PFN_vkResetQueryPoolEXT( vkGetInstanceProcAddr( instance, "vkResetQueryPoolEXT" ) );
- if ( !vkResetQueryPool )
- vkResetQueryPool = vkResetQueryPoolEXT;
- vkSetDebugUtilsObjectNameEXT =
- PFN_vkSetDebugUtilsObjectNameEXT( vkGetInstanceProcAddr( instance, "vkSetDebugUtilsObjectNameEXT" ) );
- vkSetDebugUtilsObjectTagEXT =
- PFN_vkSetDebugUtilsObjectTagEXT( vkGetInstanceProcAddr( instance, "vkSetDebugUtilsObjectTagEXT" ) );
- vkSetEvent = PFN_vkSetEvent( vkGetInstanceProcAddr( instance, "vkSetEvent" ) );
- vkSetHdrMetadataEXT = PFN_vkSetHdrMetadataEXT( vkGetInstanceProcAddr( instance, "vkSetHdrMetadataEXT" ) );
- vkSetLocalDimmingAMD = PFN_vkSetLocalDimmingAMD( vkGetInstanceProcAddr( instance, "vkSetLocalDimmingAMD" ) );
- vkSetPrivateDataEXT = PFN_vkSetPrivateDataEXT( vkGetInstanceProcAddr( instance, "vkSetPrivateDataEXT" ) );
- vkSignalSemaphore = PFN_vkSignalSemaphore( vkGetInstanceProcAddr( instance, "vkSignalSemaphore" ) );
- vkSignalSemaphoreKHR = PFN_vkSignalSemaphoreKHR( vkGetInstanceProcAddr( instance, "vkSignalSemaphoreKHR" ) );
- if ( !vkSignalSemaphore )
- vkSignalSemaphore = vkSignalSemaphoreKHR;
- vkTrimCommandPool = PFN_vkTrimCommandPool( vkGetInstanceProcAddr( instance, "vkTrimCommandPool" ) );
- vkTrimCommandPoolKHR = PFN_vkTrimCommandPoolKHR( vkGetInstanceProcAddr( instance, "vkTrimCommandPoolKHR" ) );
- if ( !vkTrimCommandPool )
- vkTrimCommandPool = vkTrimCommandPoolKHR;
- vkUninitializePerformanceApiINTEL =
- PFN_vkUninitializePerformanceApiINTEL( vkGetInstanceProcAddr( instance, "vkUninitializePerformanceApiINTEL" ) );
- vkUnmapMemory = PFN_vkUnmapMemory( vkGetInstanceProcAddr( instance, "vkUnmapMemory" ) );
- vkUpdateDescriptorSetWithTemplate =
- PFN_vkUpdateDescriptorSetWithTemplate( vkGetInstanceProcAddr( instance, "vkUpdateDescriptorSetWithTemplate" ) );
- vkUpdateDescriptorSetWithTemplateKHR = PFN_vkUpdateDescriptorSetWithTemplateKHR(
- vkGetInstanceProcAddr( instance, "vkUpdateDescriptorSetWithTemplateKHR" ) );
- if ( !vkUpdateDescriptorSetWithTemplate )
- vkUpdateDescriptorSetWithTemplate = vkUpdateDescriptorSetWithTemplateKHR;
- vkUpdateDescriptorSets =
- PFN_vkUpdateDescriptorSets( vkGetInstanceProcAddr( instance, "vkUpdateDescriptorSets" ) );
-#if defined( VK_ENABLE_BETA_EXTENSIONS )
- vkUpdateVideoSessionParametersKHR =
- PFN_vkUpdateVideoSessionParametersKHR( vkGetInstanceProcAddr( instance, "vkUpdateVideoSessionParametersKHR" ) );
-#endif /*VK_ENABLE_BETA_EXTENSIONS*/
- vkWaitForFences = PFN_vkWaitForFences( vkGetInstanceProcAddr( instance, "vkWaitForFences" ) );
- vkWaitSemaphores = PFN_vkWaitSemaphores( vkGetInstanceProcAddr( instance, "vkWaitSemaphores" ) );
- vkWaitSemaphoresKHR = PFN_vkWaitSemaphoresKHR( vkGetInstanceProcAddr( instance, "vkWaitSemaphoresKHR" ) );
- if ( !vkWaitSemaphores )
- vkWaitSemaphores = vkWaitSemaphoresKHR;
- vkWriteAccelerationStructuresPropertiesKHR = PFN_vkWriteAccelerationStructuresPropertiesKHR(
- vkGetInstanceProcAddr( instance, "vkWriteAccelerationStructuresPropertiesKHR" ) );
+
+ //=== VK_HUAWEI_subpass_shading ===
+ vkGetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI = PFN_vkGetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI(
+ vkGetInstanceProcAddr( instance, "vkGetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI" ) );
+ vkCmdSubpassShadingHUAWEI =
+ PFN_vkCmdSubpassShadingHUAWEI( vkGetInstanceProcAddr( instance, "vkCmdSubpassShadingHUAWEI" ) );
+
+ //=== VK_HUAWEI_invocation_mask ===
+ vkCmdBindInvocationMaskHUAWEI =
+ PFN_vkCmdBindInvocationMaskHUAWEI( vkGetInstanceProcAddr( instance, "vkCmdBindInvocationMaskHUAWEI" ) );
+
+ //=== VK_NV_external_memory_rdma ===
+ vkGetMemoryRemoteAddressNV =
+ PFN_vkGetMemoryRemoteAddressNV( vkGetInstanceProcAddr( instance, "vkGetMemoryRemoteAddressNV" ) );
+
+ //=== VK_EXT_extended_dynamic_state2 ===
+ vkCmdSetPatchControlPointsEXT =
+ PFN_vkCmdSetPatchControlPointsEXT( vkGetInstanceProcAddr( instance, "vkCmdSetPatchControlPointsEXT" ) );
+ vkCmdSetRasterizerDiscardEnableEXT = PFN_vkCmdSetRasterizerDiscardEnableEXT(
+ vkGetInstanceProcAddr( instance, "vkCmdSetRasterizerDiscardEnableEXT" ) );
+ vkCmdSetDepthBiasEnableEXT =
+ PFN_vkCmdSetDepthBiasEnableEXT( vkGetInstanceProcAddr( instance, "vkCmdSetDepthBiasEnableEXT" ) );
+ vkCmdSetLogicOpEXT = PFN_vkCmdSetLogicOpEXT( vkGetInstanceProcAddr( instance, "vkCmdSetLogicOpEXT" ) );
+ vkCmdSetPrimitiveRestartEnableEXT =
+ PFN_vkCmdSetPrimitiveRestartEnableEXT( vkGetInstanceProcAddr( instance, "vkCmdSetPrimitiveRestartEnableEXT" ) );
+
+#if defined( VK_USE_PLATFORM_SCREEN_QNX )
+ //=== VK_QNX_screen_surface ===
+ vkCreateScreenSurfaceQNX =
+ PFN_vkCreateScreenSurfaceQNX( vkGetInstanceProcAddr( instance, "vkCreateScreenSurfaceQNX" ) );
+ vkGetPhysicalDeviceScreenPresentationSupportQNX = PFN_vkGetPhysicalDeviceScreenPresentationSupportQNX(
+ vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceScreenPresentationSupportQNX" ) );
+#endif /*VK_USE_PLATFORM_SCREEN_QNX*/
+
+ //=== VK_EXT_color_write_enable ===
+ vkCmdSetColorWriteEnableEXT =
+ PFN_vkCmdSetColorWriteEnableEXT( vkGetInstanceProcAddr( instance, "vkCmdSetColorWriteEnableEXT" ) );
+
+ //=== VK_EXT_multi_draw ===
+ vkCmdDrawMultiEXT = PFN_vkCmdDrawMultiEXT( vkGetInstanceProcAddr( instance, "vkCmdDrawMultiEXT" ) );
+ vkCmdDrawMultiIndexedEXT =
+ PFN_vkCmdDrawMultiIndexedEXT( vkGetInstanceProcAddr( instance, "vkCmdDrawMultiIndexedEXT" ) );
}
void init( VULKAN_HPP_NAMESPACE::Device deviceCpp ) VULKAN_HPP_NOEXCEPT
{
VkDevice device = static_cast<VkDevice>( deviceCpp );
-#if defined( VK_USE_PLATFORM_WIN32_KHR )
- vkAcquireFullScreenExclusiveModeEXT =
- PFN_vkAcquireFullScreenExclusiveModeEXT( vkGetDeviceProcAddr( device, "vkAcquireFullScreenExclusiveModeEXT" ) );
-#endif /*VK_USE_PLATFORM_WIN32_KHR*/
- vkAcquireNextImage2KHR = PFN_vkAcquireNextImage2KHR( vkGetDeviceProcAddr( device, "vkAcquireNextImage2KHR" ) );
- vkAcquireNextImageKHR = PFN_vkAcquireNextImageKHR( vkGetDeviceProcAddr( device, "vkAcquireNextImageKHR" ) );
- vkAcquirePerformanceConfigurationINTEL = PFN_vkAcquirePerformanceConfigurationINTEL(
- vkGetDeviceProcAddr( device, "vkAcquirePerformanceConfigurationINTEL" ) );
- vkAcquireProfilingLockKHR =
- PFN_vkAcquireProfilingLockKHR( vkGetDeviceProcAddr( device, "vkAcquireProfilingLockKHR" ) );
- vkAllocateCommandBuffers =
- PFN_vkAllocateCommandBuffers( vkGetDeviceProcAddr( device, "vkAllocateCommandBuffers" ) );
+
+ //=== VK_VERSION_1_0 ===
+ vkGetDeviceProcAddr = PFN_vkGetDeviceProcAddr( vkGetDeviceProcAddr( device, "vkGetDeviceProcAddr" ) );
+ vkDestroyDevice = PFN_vkDestroyDevice( vkGetDeviceProcAddr( device, "vkDestroyDevice" ) );
+ vkGetDeviceQueue = PFN_vkGetDeviceQueue( vkGetDeviceProcAddr( device, "vkGetDeviceQueue" ) );
+ vkQueueSubmit = PFN_vkQueueSubmit( vkGetDeviceProcAddr( device, "vkQueueSubmit" ) );
+ vkQueueWaitIdle = PFN_vkQueueWaitIdle( vkGetDeviceProcAddr( device, "vkQueueWaitIdle" ) );
+ vkDeviceWaitIdle = PFN_vkDeviceWaitIdle( vkGetDeviceProcAddr( device, "vkDeviceWaitIdle" ) );
+ vkAllocateMemory = PFN_vkAllocateMemory( vkGetDeviceProcAddr( device, "vkAllocateMemory" ) );
+ vkFreeMemory = PFN_vkFreeMemory( vkGetDeviceProcAddr( device, "vkFreeMemory" ) );
+ vkMapMemory = PFN_vkMapMemory( vkGetDeviceProcAddr( device, "vkMapMemory" ) );
+ vkUnmapMemory = PFN_vkUnmapMemory( vkGetDeviceProcAddr( device, "vkUnmapMemory" ) );
+ vkFlushMappedMemoryRanges =
+ PFN_vkFlushMappedMemoryRanges( vkGetDeviceProcAddr( device, "vkFlushMappedMemoryRanges" ) );
+ vkInvalidateMappedMemoryRanges =
+ PFN_vkInvalidateMappedMemoryRanges( vkGetDeviceProcAddr( device, "vkInvalidateMappedMemoryRanges" ) );
+ vkGetDeviceMemoryCommitment =
+ PFN_vkGetDeviceMemoryCommitment( vkGetDeviceProcAddr( device, "vkGetDeviceMemoryCommitment" ) );
+ vkBindBufferMemory = PFN_vkBindBufferMemory( vkGetDeviceProcAddr( device, "vkBindBufferMemory" ) );
+ vkBindImageMemory = PFN_vkBindImageMemory( vkGetDeviceProcAddr( device, "vkBindImageMemory" ) );
+ vkGetBufferMemoryRequirements =
+ PFN_vkGetBufferMemoryRequirements( vkGetDeviceProcAddr( device, "vkGetBufferMemoryRequirements" ) );
+ vkGetImageMemoryRequirements =
+ PFN_vkGetImageMemoryRequirements( vkGetDeviceProcAddr( device, "vkGetImageMemoryRequirements" ) );
+ vkGetImageSparseMemoryRequirements =
+ PFN_vkGetImageSparseMemoryRequirements( vkGetDeviceProcAddr( device, "vkGetImageSparseMemoryRequirements" ) );
+ vkQueueBindSparse = PFN_vkQueueBindSparse( vkGetDeviceProcAddr( device, "vkQueueBindSparse" ) );
+ vkCreateFence = PFN_vkCreateFence( vkGetDeviceProcAddr( device, "vkCreateFence" ) );
+ vkDestroyFence = PFN_vkDestroyFence( vkGetDeviceProcAddr( device, "vkDestroyFence" ) );
+ vkResetFences = PFN_vkResetFences( vkGetDeviceProcAddr( device, "vkResetFences" ) );
+ vkGetFenceStatus = PFN_vkGetFenceStatus( vkGetDeviceProcAddr( device, "vkGetFenceStatus" ) );
+ vkWaitForFences = PFN_vkWaitForFences( vkGetDeviceProcAddr( device, "vkWaitForFences" ) );
+ vkCreateSemaphore = PFN_vkCreateSemaphore( vkGetDeviceProcAddr( device, "vkCreateSemaphore" ) );
+ vkDestroySemaphore = PFN_vkDestroySemaphore( vkGetDeviceProcAddr( device, "vkDestroySemaphore" ) );
+ vkCreateEvent = PFN_vkCreateEvent( vkGetDeviceProcAddr( device, "vkCreateEvent" ) );
+ vkDestroyEvent = PFN_vkDestroyEvent( vkGetDeviceProcAddr( device, "vkDestroyEvent" ) );
+ vkGetEventStatus = PFN_vkGetEventStatus( vkGetDeviceProcAddr( device, "vkGetEventStatus" ) );
+ vkSetEvent = PFN_vkSetEvent( vkGetDeviceProcAddr( device, "vkSetEvent" ) );
+ vkResetEvent = PFN_vkResetEvent( vkGetDeviceProcAddr( device, "vkResetEvent" ) );
+ vkCreateQueryPool = PFN_vkCreateQueryPool( vkGetDeviceProcAddr( device, "vkCreateQueryPool" ) );
+ vkDestroyQueryPool = PFN_vkDestroyQueryPool( vkGetDeviceProcAddr( device, "vkDestroyQueryPool" ) );
+ vkGetQueryPoolResults = PFN_vkGetQueryPoolResults( vkGetDeviceProcAddr( device, "vkGetQueryPoolResults" ) );
+ vkCreateBuffer = PFN_vkCreateBuffer( vkGetDeviceProcAddr( device, "vkCreateBuffer" ) );
+ vkDestroyBuffer = PFN_vkDestroyBuffer( vkGetDeviceProcAddr( device, "vkDestroyBuffer" ) );
+ vkCreateBufferView = PFN_vkCreateBufferView( vkGetDeviceProcAddr( device, "vkCreateBufferView" ) );
+ vkDestroyBufferView = PFN_vkDestroyBufferView( vkGetDeviceProcAddr( device, "vkDestroyBufferView" ) );
+ vkCreateImage = PFN_vkCreateImage( vkGetDeviceProcAddr( device, "vkCreateImage" ) );
+ vkDestroyImage = PFN_vkDestroyImage( vkGetDeviceProcAddr( device, "vkDestroyImage" ) );
+ vkGetImageSubresourceLayout =
+ PFN_vkGetImageSubresourceLayout( vkGetDeviceProcAddr( device, "vkGetImageSubresourceLayout" ) );
+ vkCreateImageView = PFN_vkCreateImageView( vkGetDeviceProcAddr( device, "vkCreateImageView" ) );
+ vkDestroyImageView = PFN_vkDestroyImageView( vkGetDeviceProcAddr( device, "vkDestroyImageView" ) );
+ vkCreateShaderModule = PFN_vkCreateShaderModule( vkGetDeviceProcAddr( device, "vkCreateShaderModule" ) );
+ vkDestroyShaderModule = PFN_vkDestroyShaderModule( vkGetDeviceProcAddr( device, "vkDestroyShaderModule" ) );
+ vkCreatePipelineCache = PFN_vkCreatePipelineCache( vkGetDeviceProcAddr( device, "vkCreatePipelineCache" ) );
+ vkDestroyPipelineCache = PFN_vkDestroyPipelineCache( vkGetDeviceProcAddr( device, "vkDestroyPipelineCache" ) );
+ vkGetPipelineCacheData = PFN_vkGetPipelineCacheData( vkGetDeviceProcAddr( device, "vkGetPipelineCacheData" ) );
+ vkMergePipelineCaches = PFN_vkMergePipelineCaches( vkGetDeviceProcAddr( device, "vkMergePipelineCaches" ) );
+ vkCreateGraphicsPipelines =
+ PFN_vkCreateGraphicsPipelines( vkGetDeviceProcAddr( device, "vkCreateGraphicsPipelines" ) );
+ vkCreateComputePipelines =
+ PFN_vkCreateComputePipelines( vkGetDeviceProcAddr( device, "vkCreateComputePipelines" ) );
+ vkDestroyPipeline = PFN_vkDestroyPipeline( vkGetDeviceProcAddr( device, "vkDestroyPipeline" ) );
+ vkCreatePipelineLayout = PFN_vkCreatePipelineLayout( vkGetDeviceProcAddr( device, "vkCreatePipelineLayout" ) );
+ vkDestroyPipelineLayout = PFN_vkDestroyPipelineLayout( vkGetDeviceProcAddr( device, "vkDestroyPipelineLayout" ) );
+ vkCreateSampler = PFN_vkCreateSampler( vkGetDeviceProcAddr( device, "vkCreateSampler" ) );
+ vkDestroySampler = PFN_vkDestroySampler( vkGetDeviceProcAddr( device, "vkDestroySampler" ) );
+ vkCreateDescriptorSetLayout =
+ PFN_vkCreateDescriptorSetLayout( vkGetDeviceProcAddr( device, "vkCreateDescriptorSetLayout" ) );
+ vkDestroyDescriptorSetLayout =
+ PFN_vkDestroyDescriptorSetLayout( vkGetDeviceProcAddr( device, "vkDestroyDescriptorSetLayout" ) );
+ vkCreateDescriptorPool = PFN_vkCreateDescriptorPool( vkGetDeviceProcAddr( device, "vkCreateDescriptorPool" ) );
+ vkDestroyDescriptorPool = PFN_vkDestroyDescriptorPool( vkGetDeviceProcAddr( device, "vkDestroyDescriptorPool" ) );
+ vkResetDescriptorPool = PFN_vkResetDescriptorPool( vkGetDeviceProcAddr( device, "vkResetDescriptorPool" ) );
vkAllocateDescriptorSets =
PFN_vkAllocateDescriptorSets( vkGetDeviceProcAddr( device, "vkAllocateDescriptorSets" ) );
- vkAllocateMemory = PFN_vkAllocateMemory( vkGetDeviceProcAddr( device, "vkAllocateMemory" ) );
- vkBeginCommandBuffer = PFN_vkBeginCommandBuffer( vkGetDeviceProcAddr( device, "vkBeginCommandBuffer" ) );
- vkBindAccelerationStructureMemoryNV =
- PFN_vkBindAccelerationStructureMemoryNV( vkGetDeviceProcAddr( device, "vkBindAccelerationStructureMemoryNV" ) );
- vkBindBufferMemory = PFN_vkBindBufferMemory( vkGetDeviceProcAddr( device, "vkBindBufferMemory" ) );
- vkBindBufferMemory2 = PFN_vkBindBufferMemory2( vkGetDeviceProcAddr( device, "vkBindBufferMemory2" ) );
- vkBindBufferMemory2KHR = PFN_vkBindBufferMemory2KHR( vkGetDeviceProcAddr( device, "vkBindBufferMemory2KHR" ) );
- if ( !vkBindBufferMemory2 )
- vkBindBufferMemory2 = vkBindBufferMemory2KHR;
- vkBindImageMemory = PFN_vkBindImageMemory( vkGetDeviceProcAddr( device, "vkBindImageMemory" ) );
- vkBindImageMemory2 = PFN_vkBindImageMemory2( vkGetDeviceProcAddr( device, "vkBindImageMemory2" ) );
- vkBindImageMemory2KHR = PFN_vkBindImageMemory2KHR( vkGetDeviceProcAddr( device, "vkBindImageMemory2KHR" ) );
- if ( !vkBindImageMemory2 )
- vkBindImageMemory2 = vkBindImageMemory2KHR;
-#if defined( VK_ENABLE_BETA_EXTENSIONS )
- vkBindVideoSessionMemoryKHR =
- PFN_vkBindVideoSessionMemoryKHR( vkGetDeviceProcAddr( device, "vkBindVideoSessionMemoryKHR" ) );
-#endif /*VK_ENABLE_BETA_EXTENSIONS*/
- vkBuildAccelerationStructuresKHR =
- PFN_vkBuildAccelerationStructuresKHR( vkGetDeviceProcAddr( device, "vkBuildAccelerationStructuresKHR" ) );
- vkCmdBeginConditionalRenderingEXT =
- PFN_vkCmdBeginConditionalRenderingEXT( vkGetDeviceProcAddr( device, "vkCmdBeginConditionalRenderingEXT" ) );
- vkCmdBeginDebugUtilsLabelEXT =
- PFN_vkCmdBeginDebugUtilsLabelEXT( vkGetDeviceProcAddr( device, "vkCmdBeginDebugUtilsLabelEXT" ) );
- vkCmdBeginQuery = PFN_vkCmdBeginQuery( vkGetDeviceProcAddr( device, "vkCmdBeginQuery" ) );
- vkCmdBeginQueryIndexedEXT =
- PFN_vkCmdBeginQueryIndexedEXT( vkGetDeviceProcAddr( device, "vkCmdBeginQueryIndexedEXT" ) );
- vkCmdBeginRenderPass = PFN_vkCmdBeginRenderPass( vkGetDeviceProcAddr( device, "vkCmdBeginRenderPass" ) );
- vkCmdBeginRenderPass2 = PFN_vkCmdBeginRenderPass2( vkGetDeviceProcAddr( device, "vkCmdBeginRenderPass2" ) );
- vkCmdBeginRenderPass2KHR =
- PFN_vkCmdBeginRenderPass2KHR( vkGetDeviceProcAddr( device, "vkCmdBeginRenderPass2KHR" ) );
- if ( !vkCmdBeginRenderPass2 )
- vkCmdBeginRenderPass2 = vkCmdBeginRenderPass2KHR;
- vkCmdBeginTransformFeedbackEXT =
- PFN_vkCmdBeginTransformFeedbackEXT( vkGetDeviceProcAddr( device, "vkCmdBeginTransformFeedbackEXT" ) );
-#if defined( VK_ENABLE_BETA_EXTENSIONS )
- vkCmdBeginVideoCodingKHR =
- PFN_vkCmdBeginVideoCodingKHR( vkGetDeviceProcAddr( device, "vkCmdBeginVideoCodingKHR" ) );
-#endif /*VK_ENABLE_BETA_EXTENSIONS*/
+ vkFreeDescriptorSets = PFN_vkFreeDescriptorSets( vkGetDeviceProcAddr( device, "vkFreeDescriptorSets" ) );
+ vkUpdateDescriptorSets = PFN_vkUpdateDescriptorSets( vkGetDeviceProcAddr( device, "vkUpdateDescriptorSets" ) );
+ vkCreateFramebuffer = PFN_vkCreateFramebuffer( vkGetDeviceProcAddr( device, "vkCreateFramebuffer" ) );
+ vkDestroyFramebuffer = PFN_vkDestroyFramebuffer( vkGetDeviceProcAddr( device, "vkDestroyFramebuffer" ) );
+ vkCreateRenderPass = PFN_vkCreateRenderPass( vkGetDeviceProcAddr( device, "vkCreateRenderPass" ) );
+ vkDestroyRenderPass = PFN_vkDestroyRenderPass( vkGetDeviceProcAddr( device, "vkDestroyRenderPass" ) );
+ vkGetRenderAreaGranularity =
+ PFN_vkGetRenderAreaGranularity( vkGetDeviceProcAddr( device, "vkGetRenderAreaGranularity" ) );
+ vkCreateCommandPool = PFN_vkCreateCommandPool( vkGetDeviceProcAddr( device, "vkCreateCommandPool" ) );
+ vkDestroyCommandPool = PFN_vkDestroyCommandPool( vkGetDeviceProcAddr( device, "vkDestroyCommandPool" ) );
+ vkResetCommandPool = PFN_vkResetCommandPool( vkGetDeviceProcAddr( device, "vkResetCommandPool" ) );
+ vkAllocateCommandBuffers =
+ PFN_vkAllocateCommandBuffers( vkGetDeviceProcAddr( device, "vkAllocateCommandBuffers" ) );
+ vkFreeCommandBuffers = PFN_vkFreeCommandBuffers( vkGetDeviceProcAddr( device, "vkFreeCommandBuffers" ) );
+ vkBeginCommandBuffer = PFN_vkBeginCommandBuffer( vkGetDeviceProcAddr( device, "vkBeginCommandBuffer" ) );
+ vkEndCommandBuffer = PFN_vkEndCommandBuffer( vkGetDeviceProcAddr( device, "vkEndCommandBuffer" ) );
+ vkResetCommandBuffer = PFN_vkResetCommandBuffer( vkGetDeviceProcAddr( device, "vkResetCommandBuffer" ) );
+ vkCmdBindPipeline = PFN_vkCmdBindPipeline( vkGetDeviceProcAddr( device, "vkCmdBindPipeline" ) );
+ vkCmdSetViewport = PFN_vkCmdSetViewport( vkGetDeviceProcAddr( device, "vkCmdSetViewport" ) );
+ vkCmdSetScissor = PFN_vkCmdSetScissor( vkGetDeviceProcAddr( device, "vkCmdSetScissor" ) );
+ vkCmdSetLineWidth = PFN_vkCmdSetLineWidth( vkGetDeviceProcAddr( device, "vkCmdSetLineWidth" ) );
+ vkCmdSetDepthBias = PFN_vkCmdSetDepthBias( vkGetDeviceProcAddr( device, "vkCmdSetDepthBias" ) );
+ vkCmdSetBlendConstants = PFN_vkCmdSetBlendConstants( vkGetDeviceProcAddr( device, "vkCmdSetBlendConstants" ) );
+ vkCmdSetDepthBounds = PFN_vkCmdSetDepthBounds( vkGetDeviceProcAddr( device, "vkCmdSetDepthBounds" ) );
+ vkCmdSetStencilCompareMask =
+ PFN_vkCmdSetStencilCompareMask( vkGetDeviceProcAddr( device, "vkCmdSetStencilCompareMask" ) );
+ vkCmdSetStencilWriteMask =
+ PFN_vkCmdSetStencilWriteMask( vkGetDeviceProcAddr( device, "vkCmdSetStencilWriteMask" ) );
+ vkCmdSetStencilReference =
+ PFN_vkCmdSetStencilReference( vkGetDeviceProcAddr( device, "vkCmdSetStencilReference" ) );
vkCmdBindDescriptorSets = PFN_vkCmdBindDescriptorSets( vkGetDeviceProcAddr( device, "vkCmdBindDescriptorSets" ) );
vkCmdBindIndexBuffer = PFN_vkCmdBindIndexBuffer( vkGetDeviceProcAddr( device, "vkCmdBindIndexBuffer" ) );
- vkCmdBindPipeline = PFN_vkCmdBindPipeline( vkGetDeviceProcAddr( device, "vkCmdBindPipeline" ) );
- vkCmdBindPipelineShaderGroupNV =
- PFN_vkCmdBindPipelineShaderGroupNV( vkGetDeviceProcAddr( device, "vkCmdBindPipelineShaderGroupNV" ) );
- vkCmdBindShadingRateImageNV =
- PFN_vkCmdBindShadingRateImageNV( vkGetDeviceProcAddr( device, "vkCmdBindShadingRateImageNV" ) );
- vkCmdBindTransformFeedbackBuffersEXT = PFN_vkCmdBindTransformFeedbackBuffersEXT(
- vkGetDeviceProcAddr( device, "vkCmdBindTransformFeedbackBuffersEXT" ) );
- vkCmdBindVertexBuffers = PFN_vkCmdBindVertexBuffers( vkGetDeviceProcAddr( device, "vkCmdBindVertexBuffers" ) );
- vkCmdBindVertexBuffers2EXT =
- PFN_vkCmdBindVertexBuffers2EXT( vkGetDeviceProcAddr( device, "vkCmdBindVertexBuffers2EXT" ) );
- vkCmdBlitImage = PFN_vkCmdBlitImage( vkGetDeviceProcAddr( device, "vkCmdBlitImage" ) );
- vkCmdBlitImage2KHR = PFN_vkCmdBlitImage2KHR( vkGetDeviceProcAddr( device, "vkCmdBlitImage2KHR" ) );
- vkCmdBuildAccelerationStructureNV =
- PFN_vkCmdBuildAccelerationStructureNV( vkGetDeviceProcAddr( device, "vkCmdBuildAccelerationStructureNV" ) );
- vkCmdBuildAccelerationStructuresIndirectKHR = PFN_vkCmdBuildAccelerationStructuresIndirectKHR(
- vkGetDeviceProcAddr( device, "vkCmdBuildAccelerationStructuresIndirectKHR" ) );
- vkCmdBuildAccelerationStructuresKHR =
- PFN_vkCmdBuildAccelerationStructuresKHR( vkGetDeviceProcAddr( device, "vkCmdBuildAccelerationStructuresKHR" ) );
- vkCmdClearAttachments = PFN_vkCmdClearAttachments( vkGetDeviceProcAddr( device, "vkCmdClearAttachments" ) );
- vkCmdClearColorImage = PFN_vkCmdClearColorImage( vkGetDeviceProcAddr( device, "vkCmdClearColorImage" ) );
- vkCmdClearDepthStencilImage =
- PFN_vkCmdClearDepthStencilImage( vkGetDeviceProcAddr( device, "vkCmdClearDepthStencilImage" ) );
-#if defined( VK_ENABLE_BETA_EXTENSIONS )
- vkCmdControlVideoCodingKHR =
- PFN_vkCmdControlVideoCodingKHR( vkGetDeviceProcAddr( device, "vkCmdControlVideoCodingKHR" ) );
-#endif /*VK_ENABLE_BETA_EXTENSIONS*/
- vkCmdCopyAccelerationStructureKHR =
- PFN_vkCmdCopyAccelerationStructureKHR( vkGetDeviceProcAddr( device, "vkCmdCopyAccelerationStructureKHR" ) );
- vkCmdCopyAccelerationStructureNV =
- PFN_vkCmdCopyAccelerationStructureNV( vkGetDeviceProcAddr( device, "vkCmdCopyAccelerationStructureNV" ) );
- vkCmdCopyAccelerationStructureToMemoryKHR = PFN_vkCmdCopyAccelerationStructureToMemoryKHR(
- vkGetDeviceProcAddr( device, "vkCmdCopyAccelerationStructureToMemoryKHR" ) );
+ vkCmdBindVertexBuffers = PFN_vkCmdBindVertexBuffers( vkGetDeviceProcAddr( device, "vkCmdBindVertexBuffers" ) );
+ vkCmdDraw = PFN_vkCmdDraw( vkGetDeviceProcAddr( device, "vkCmdDraw" ) );
+ vkCmdDrawIndexed = PFN_vkCmdDrawIndexed( vkGetDeviceProcAddr( device, "vkCmdDrawIndexed" ) );
+ vkCmdDrawIndirect = PFN_vkCmdDrawIndirect( vkGetDeviceProcAddr( device, "vkCmdDrawIndirect" ) );
+ vkCmdDrawIndexedIndirect =
+ PFN_vkCmdDrawIndexedIndirect( vkGetDeviceProcAddr( device, "vkCmdDrawIndexedIndirect" ) );
+ vkCmdDispatch = PFN_vkCmdDispatch( vkGetDeviceProcAddr( device, "vkCmdDispatch" ) );
+ vkCmdDispatchIndirect = PFN_vkCmdDispatchIndirect( vkGetDeviceProcAddr( device, "vkCmdDispatchIndirect" ) );
vkCmdCopyBuffer = PFN_vkCmdCopyBuffer( vkGetDeviceProcAddr( device, "vkCmdCopyBuffer" ) );
- vkCmdCopyBuffer2KHR = PFN_vkCmdCopyBuffer2KHR( vkGetDeviceProcAddr( device, "vkCmdCopyBuffer2KHR" ) );
- vkCmdCopyBufferToImage = PFN_vkCmdCopyBufferToImage( vkGetDeviceProcAddr( device, "vkCmdCopyBufferToImage" ) );
- vkCmdCopyBufferToImage2KHR =
- PFN_vkCmdCopyBufferToImage2KHR( vkGetDeviceProcAddr( device, "vkCmdCopyBufferToImage2KHR" ) );
vkCmdCopyImage = PFN_vkCmdCopyImage( vkGetDeviceProcAddr( device, "vkCmdCopyImage" ) );
- vkCmdCopyImage2KHR = PFN_vkCmdCopyImage2KHR( vkGetDeviceProcAddr( device, "vkCmdCopyImage2KHR" ) );
+ vkCmdBlitImage = PFN_vkCmdBlitImage( vkGetDeviceProcAddr( device, "vkCmdBlitImage" ) );
+ vkCmdCopyBufferToImage = PFN_vkCmdCopyBufferToImage( vkGetDeviceProcAddr( device, "vkCmdCopyBufferToImage" ) );
vkCmdCopyImageToBuffer = PFN_vkCmdCopyImageToBuffer( vkGetDeviceProcAddr( device, "vkCmdCopyImageToBuffer" ) );
- vkCmdCopyImageToBuffer2KHR =
- PFN_vkCmdCopyImageToBuffer2KHR( vkGetDeviceProcAddr( device, "vkCmdCopyImageToBuffer2KHR" ) );
- vkCmdCopyMemoryToAccelerationStructureKHR = PFN_vkCmdCopyMemoryToAccelerationStructureKHR(
- vkGetDeviceProcAddr( device, "vkCmdCopyMemoryToAccelerationStructureKHR" ) );
+ vkCmdUpdateBuffer = PFN_vkCmdUpdateBuffer( vkGetDeviceProcAddr( device, "vkCmdUpdateBuffer" ) );
+ vkCmdFillBuffer = PFN_vkCmdFillBuffer( vkGetDeviceProcAddr( device, "vkCmdFillBuffer" ) );
+ vkCmdClearColorImage = PFN_vkCmdClearColorImage( vkGetDeviceProcAddr( device, "vkCmdClearColorImage" ) );
+ vkCmdClearDepthStencilImage =
+ PFN_vkCmdClearDepthStencilImage( vkGetDeviceProcAddr( device, "vkCmdClearDepthStencilImage" ) );
+ vkCmdClearAttachments = PFN_vkCmdClearAttachments( vkGetDeviceProcAddr( device, "vkCmdClearAttachments" ) );
+ vkCmdResolveImage = PFN_vkCmdResolveImage( vkGetDeviceProcAddr( device, "vkCmdResolveImage" ) );
+ vkCmdSetEvent = PFN_vkCmdSetEvent( vkGetDeviceProcAddr( device, "vkCmdSetEvent" ) );
+ vkCmdResetEvent = PFN_vkCmdResetEvent( vkGetDeviceProcAddr( device, "vkCmdResetEvent" ) );
+ vkCmdWaitEvents = PFN_vkCmdWaitEvents( vkGetDeviceProcAddr( device, "vkCmdWaitEvents" ) );
+ vkCmdPipelineBarrier = PFN_vkCmdPipelineBarrier( vkGetDeviceProcAddr( device, "vkCmdPipelineBarrier" ) );
+ vkCmdBeginQuery = PFN_vkCmdBeginQuery( vkGetDeviceProcAddr( device, "vkCmdBeginQuery" ) );
+ vkCmdEndQuery = PFN_vkCmdEndQuery( vkGetDeviceProcAddr( device, "vkCmdEndQuery" ) );
+ vkCmdResetQueryPool = PFN_vkCmdResetQueryPool( vkGetDeviceProcAddr( device, "vkCmdResetQueryPool" ) );
+ vkCmdWriteTimestamp = PFN_vkCmdWriteTimestamp( vkGetDeviceProcAddr( device, "vkCmdWriteTimestamp" ) );
vkCmdCopyQueryPoolResults =
PFN_vkCmdCopyQueryPoolResults( vkGetDeviceProcAddr( device, "vkCmdCopyQueryPoolResults" ) );
- vkCmdCuLaunchKernelNVX = PFN_vkCmdCuLaunchKernelNVX( vkGetDeviceProcAddr( device, "vkCmdCuLaunchKernelNVX" ) );
+ vkCmdPushConstants = PFN_vkCmdPushConstants( vkGetDeviceProcAddr( device, "vkCmdPushConstants" ) );
+ vkCmdBeginRenderPass = PFN_vkCmdBeginRenderPass( vkGetDeviceProcAddr( device, "vkCmdBeginRenderPass" ) );
+ vkCmdNextSubpass = PFN_vkCmdNextSubpass( vkGetDeviceProcAddr( device, "vkCmdNextSubpass" ) );
+ vkCmdEndRenderPass = PFN_vkCmdEndRenderPass( vkGetDeviceProcAddr( device, "vkCmdEndRenderPass" ) );
+ vkCmdExecuteCommands = PFN_vkCmdExecuteCommands( vkGetDeviceProcAddr( device, "vkCmdExecuteCommands" ) );
+
+ //=== VK_VERSION_1_1 ===
+ vkBindBufferMemory2 = PFN_vkBindBufferMemory2( vkGetDeviceProcAddr( device, "vkBindBufferMemory2" ) );
+ vkBindImageMemory2 = PFN_vkBindImageMemory2( vkGetDeviceProcAddr( device, "vkBindImageMemory2" ) );
+ vkGetDeviceGroupPeerMemoryFeatures =
+ PFN_vkGetDeviceGroupPeerMemoryFeatures( vkGetDeviceProcAddr( device, "vkGetDeviceGroupPeerMemoryFeatures" ) );
+ vkCmdSetDeviceMask = PFN_vkCmdSetDeviceMask( vkGetDeviceProcAddr( device, "vkCmdSetDeviceMask" ) );
+ vkCmdDispatchBase = PFN_vkCmdDispatchBase( vkGetDeviceProcAddr( device, "vkCmdDispatchBase" ) );
+ vkGetImageMemoryRequirements2 =
+ PFN_vkGetImageMemoryRequirements2( vkGetDeviceProcAddr( device, "vkGetImageMemoryRequirements2" ) );
+ vkGetBufferMemoryRequirements2 =
+ PFN_vkGetBufferMemoryRequirements2( vkGetDeviceProcAddr( device, "vkGetBufferMemoryRequirements2" ) );
+ vkGetImageSparseMemoryRequirements2 =
+ PFN_vkGetImageSparseMemoryRequirements2( vkGetDeviceProcAddr( device, "vkGetImageSparseMemoryRequirements2" ) );
+ vkTrimCommandPool = PFN_vkTrimCommandPool( vkGetDeviceProcAddr( device, "vkTrimCommandPool" ) );
+ vkGetDeviceQueue2 = PFN_vkGetDeviceQueue2( vkGetDeviceProcAddr( device, "vkGetDeviceQueue2" ) );
+ vkCreateSamplerYcbcrConversion =
+ PFN_vkCreateSamplerYcbcrConversion( vkGetDeviceProcAddr( device, "vkCreateSamplerYcbcrConversion" ) );
+ vkDestroySamplerYcbcrConversion =
+ PFN_vkDestroySamplerYcbcrConversion( vkGetDeviceProcAddr( device, "vkDestroySamplerYcbcrConversion" ) );
+ vkCreateDescriptorUpdateTemplate =
+ PFN_vkCreateDescriptorUpdateTemplate( vkGetDeviceProcAddr( device, "vkCreateDescriptorUpdateTemplate" ) );
+ vkDestroyDescriptorUpdateTemplate =
+ PFN_vkDestroyDescriptorUpdateTemplate( vkGetDeviceProcAddr( device, "vkDestroyDescriptorUpdateTemplate" ) );
+ vkUpdateDescriptorSetWithTemplate =
+ PFN_vkUpdateDescriptorSetWithTemplate( vkGetDeviceProcAddr( device, "vkUpdateDescriptorSetWithTemplate" ) );
+ vkGetDescriptorSetLayoutSupport =
+ PFN_vkGetDescriptorSetLayoutSupport( vkGetDeviceProcAddr( device, "vkGetDescriptorSetLayoutSupport" ) );
+
+ //=== VK_VERSION_1_2 ===
+ vkCmdDrawIndirectCount = PFN_vkCmdDrawIndirectCount( vkGetDeviceProcAddr( device, "vkCmdDrawIndirectCount" ) );
+ vkCmdDrawIndexedIndirectCount =
+ PFN_vkCmdDrawIndexedIndirectCount( vkGetDeviceProcAddr( device, "vkCmdDrawIndexedIndirectCount" ) );
+ vkCreateRenderPass2 = PFN_vkCreateRenderPass2( vkGetDeviceProcAddr( device, "vkCreateRenderPass2" ) );
+ vkCmdBeginRenderPass2 = PFN_vkCmdBeginRenderPass2( vkGetDeviceProcAddr( device, "vkCmdBeginRenderPass2" ) );
+ vkCmdNextSubpass2 = PFN_vkCmdNextSubpass2( vkGetDeviceProcAddr( device, "vkCmdNextSubpass2" ) );
+ vkCmdEndRenderPass2 = PFN_vkCmdEndRenderPass2( vkGetDeviceProcAddr( device, "vkCmdEndRenderPass2" ) );
+ vkResetQueryPool = PFN_vkResetQueryPool( vkGetDeviceProcAddr( device, "vkResetQueryPool" ) );
+ vkGetSemaphoreCounterValue =
+ PFN_vkGetSemaphoreCounterValue( vkGetDeviceProcAddr( device, "vkGetSemaphoreCounterValue" ) );
+ vkWaitSemaphores = PFN_vkWaitSemaphores( vkGetDeviceProcAddr( device, "vkWaitSemaphores" ) );
+ vkSignalSemaphore = PFN_vkSignalSemaphore( vkGetDeviceProcAddr( device, "vkSignalSemaphore" ) );
+ vkGetBufferDeviceAddress =
+ PFN_vkGetBufferDeviceAddress( vkGetDeviceProcAddr( device, "vkGetBufferDeviceAddress" ) );
+ vkGetBufferOpaqueCaptureAddress =
+ PFN_vkGetBufferOpaqueCaptureAddress( vkGetDeviceProcAddr( device, "vkGetBufferOpaqueCaptureAddress" ) );
+ vkGetDeviceMemoryOpaqueCaptureAddress = PFN_vkGetDeviceMemoryOpaqueCaptureAddress(
+ vkGetDeviceProcAddr( device, "vkGetDeviceMemoryOpaqueCaptureAddress" ) );
+
+ //=== VK_KHR_swapchain ===
+ vkCreateSwapchainKHR = PFN_vkCreateSwapchainKHR( vkGetDeviceProcAddr( device, "vkCreateSwapchainKHR" ) );
+ vkDestroySwapchainKHR = PFN_vkDestroySwapchainKHR( vkGetDeviceProcAddr( device, "vkDestroySwapchainKHR" ) );
+ vkGetSwapchainImagesKHR = PFN_vkGetSwapchainImagesKHR( vkGetDeviceProcAddr( device, "vkGetSwapchainImagesKHR" ) );
+ vkAcquireNextImageKHR = PFN_vkAcquireNextImageKHR( vkGetDeviceProcAddr( device, "vkAcquireNextImageKHR" ) );
+ vkQueuePresentKHR = PFN_vkQueuePresentKHR( vkGetDeviceProcAddr( device, "vkQueuePresentKHR" ) );
+ vkGetDeviceGroupPresentCapabilitiesKHR = PFN_vkGetDeviceGroupPresentCapabilitiesKHR(
+ vkGetDeviceProcAddr( device, "vkGetDeviceGroupPresentCapabilitiesKHR" ) );
+ vkGetDeviceGroupSurfacePresentModesKHR = PFN_vkGetDeviceGroupSurfacePresentModesKHR(
+ vkGetDeviceProcAddr( device, "vkGetDeviceGroupSurfacePresentModesKHR" ) );
+ vkAcquireNextImage2KHR = PFN_vkAcquireNextImage2KHR( vkGetDeviceProcAddr( device, "vkAcquireNextImage2KHR" ) );
+
+ //=== VK_KHR_display_swapchain ===
+ vkCreateSharedSwapchainsKHR =
+ PFN_vkCreateSharedSwapchainsKHR( vkGetDeviceProcAddr( device, "vkCreateSharedSwapchainsKHR" ) );
+
+ //=== VK_EXT_debug_marker ===
+ vkDebugMarkerSetObjectTagEXT =
+ PFN_vkDebugMarkerSetObjectTagEXT( vkGetDeviceProcAddr( device, "vkDebugMarkerSetObjectTagEXT" ) );
+ vkDebugMarkerSetObjectNameEXT =
+ PFN_vkDebugMarkerSetObjectNameEXT( vkGetDeviceProcAddr( device, "vkDebugMarkerSetObjectNameEXT" ) );
vkCmdDebugMarkerBeginEXT =
PFN_vkCmdDebugMarkerBeginEXT( vkGetDeviceProcAddr( device, "vkCmdDebugMarkerBeginEXT" ) );
vkCmdDebugMarkerEndEXT = PFN_vkCmdDebugMarkerEndEXT( vkGetDeviceProcAddr( device, "vkCmdDebugMarkerEndEXT" ) );
vkCmdDebugMarkerInsertEXT =
PFN_vkCmdDebugMarkerInsertEXT( vkGetDeviceProcAddr( device, "vkCmdDebugMarkerInsertEXT" ) );
+
#if defined( VK_ENABLE_BETA_EXTENSIONS )
+ //=== VK_KHR_video_queue ===
+ vkCreateVideoSessionKHR = PFN_vkCreateVideoSessionKHR( vkGetDeviceProcAddr( device, "vkCreateVideoSessionKHR" ) );
+ vkDestroyVideoSessionKHR =
+ PFN_vkDestroyVideoSessionKHR( vkGetDeviceProcAddr( device, "vkDestroyVideoSessionKHR" ) );
+ vkGetVideoSessionMemoryRequirementsKHR = PFN_vkGetVideoSessionMemoryRequirementsKHR(
+ vkGetDeviceProcAddr( device, "vkGetVideoSessionMemoryRequirementsKHR" ) );
+ vkBindVideoSessionMemoryKHR =
+ PFN_vkBindVideoSessionMemoryKHR( vkGetDeviceProcAddr( device, "vkBindVideoSessionMemoryKHR" ) );
+ vkCreateVideoSessionParametersKHR =
+ PFN_vkCreateVideoSessionParametersKHR( vkGetDeviceProcAddr( device, "vkCreateVideoSessionParametersKHR" ) );
+ vkUpdateVideoSessionParametersKHR =
+ PFN_vkUpdateVideoSessionParametersKHR( vkGetDeviceProcAddr( device, "vkUpdateVideoSessionParametersKHR" ) );
+ vkDestroyVideoSessionParametersKHR =
+ PFN_vkDestroyVideoSessionParametersKHR( vkGetDeviceProcAddr( device, "vkDestroyVideoSessionParametersKHR" ) );
+ vkCmdBeginVideoCodingKHR =
+ PFN_vkCmdBeginVideoCodingKHR( vkGetDeviceProcAddr( device, "vkCmdBeginVideoCodingKHR" ) );
+ vkCmdEndVideoCodingKHR = PFN_vkCmdEndVideoCodingKHR( vkGetDeviceProcAddr( device, "vkCmdEndVideoCodingKHR" ) );
+ vkCmdControlVideoCodingKHR =
+ PFN_vkCmdControlVideoCodingKHR( vkGetDeviceProcAddr( device, "vkCmdControlVideoCodingKHR" ) );
+#endif /*VK_ENABLE_BETA_EXTENSIONS*/
+
+#if defined( VK_ENABLE_BETA_EXTENSIONS )
+ //=== VK_KHR_video_decode_queue ===
vkCmdDecodeVideoKHR = PFN_vkCmdDecodeVideoKHR( vkGetDeviceProcAddr( device, "vkCmdDecodeVideoKHR" ) );
#endif /*VK_ENABLE_BETA_EXTENSIONS*/
- vkCmdDispatch = PFN_vkCmdDispatch( vkGetDeviceProcAddr( device, "vkCmdDispatch" ) );
- vkCmdDispatchBase = PFN_vkCmdDispatchBase( vkGetDeviceProcAddr( device, "vkCmdDispatchBase" ) );
- vkCmdDispatchBaseKHR = PFN_vkCmdDispatchBaseKHR( vkGetDeviceProcAddr( device, "vkCmdDispatchBaseKHR" ) );
- if ( !vkCmdDispatchBase )
- vkCmdDispatchBase = vkCmdDispatchBaseKHR;
- vkCmdDispatchIndirect = PFN_vkCmdDispatchIndirect( vkGetDeviceProcAddr( device, "vkCmdDispatchIndirect" ) );
- vkCmdDraw = PFN_vkCmdDraw( vkGetDeviceProcAddr( device, "vkCmdDraw" ) );
- vkCmdDrawIndexed = PFN_vkCmdDrawIndexed( vkGetDeviceProcAddr( device, "vkCmdDrawIndexed" ) );
- vkCmdDrawIndexedIndirect =
- PFN_vkCmdDrawIndexedIndirect( vkGetDeviceProcAddr( device, "vkCmdDrawIndexedIndirect" ) );
- vkCmdDrawIndexedIndirectCount =
- PFN_vkCmdDrawIndexedIndirectCount( vkGetDeviceProcAddr( device, "vkCmdDrawIndexedIndirectCount" ) );
- vkCmdDrawIndexedIndirectCountAMD =
- PFN_vkCmdDrawIndexedIndirectCountAMD( vkGetDeviceProcAddr( device, "vkCmdDrawIndexedIndirectCountAMD" ) );
- if ( !vkCmdDrawIndexedIndirectCount )
- vkCmdDrawIndexedIndirectCount = vkCmdDrawIndexedIndirectCountAMD;
- vkCmdDrawIndexedIndirectCountKHR =
- PFN_vkCmdDrawIndexedIndirectCountKHR( vkGetDeviceProcAddr( device, "vkCmdDrawIndexedIndirectCountKHR" ) );
- if ( !vkCmdDrawIndexedIndirectCount )
- vkCmdDrawIndexedIndirectCount = vkCmdDrawIndexedIndirectCountKHR;
- vkCmdDrawIndirect = PFN_vkCmdDrawIndirect( vkGetDeviceProcAddr( device, "vkCmdDrawIndirect" ) );
+
+ //=== VK_EXT_transform_feedback ===
+ vkCmdBindTransformFeedbackBuffersEXT = PFN_vkCmdBindTransformFeedbackBuffersEXT(
+ vkGetDeviceProcAddr( device, "vkCmdBindTransformFeedbackBuffersEXT" ) );
+ vkCmdBeginTransformFeedbackEXT =
+ PFN_vkCmdBeginTransformFeedbackEXT( vkGetDeviceProcAddr( device, "vkCmdBeginTransformFeedbackEXT" ) );
+ vkCmdEndTransformFeedbackEXT =
+ PFN_vkCmdEndTransformFeedbackEXT( vkGetDeviceProcAddr( device, "vkCmdEndTransformFeedbackEXT" ) );
+ vkCmdBeginQueryIndexedEXT =
+ PFN_vkCmdBeginQueryIndexedEXT( vkGetDeviceProcAddr( device, "vkCmdBeginQueryIndexedEXT" ) );
+ vkCmdEndQueryIndexedEXT = PFN_vkCmdEndQueryIndexedEXT( vkGetDeviceProcAddr( device, "vkCmdEndQueryIndexedEXT" ) );
vkCmdDrawIndirectByteCountEXT =
PFN_vkCmdDrawIndirectByteCountEXT( vkGetDeviceProcAddr( device, "vkCmdDrawIndirectByteCountEXT" ) );
- vkCmdDrawIndirectCount = PFN_vkCmdDrawIndirectCount( vkGetDeviceProcAddr( device, "vkCmdDrawIndirectCount" ) );
+
+ //=== VK_NVX_binary_import ===
+ vkCreateCuModuleNVX = PFN_vkCreateCuModuleNVX( vkGetDeviceProcAddr( device, "vkCreateCuModuleNVX" ) );
+ vkCreateCuFunctionNVX = PFN_vkCreateCuFunctionNVX( vkGetDeviceProcAddr( device, "vkCreateCuFunctionNVX" ) );
+ vkDestroyCuModuleNVX = PFN_vkDestroyCuModuleNVX( vkGetDeviceProcAddr( device, "vkDestroyCuModuleNVX" ) );
+ vkDestroyCuFunctionNVX = PFN_vkDestroyCuFunctionNVX( vkGetDeviceProcAddr( device, "vkDestroyCuFunctionNVX" ) );
+ vkCmdCuLaunchKernelNVX = PFN_vkCmdCuLaunchKernelNVX( vkGetDeviceProcAddr( device, "vkCmdCuLaunchKernelNVX" ) );
+
+ //=== VK_NVX_image_view_handle ===
+ vkGetImageViewHandleNVX = PFN_vkGetImageViewHandleNVX( vkGetDeviceProcAddr( device, "vkGetImageViewHandleNVX" ) );
+ vkGetImageViewAddressNVX =
+ PFN_vkGetImageViewAddressNVX( vkGetDeviceProcAddr( device, "vkGetImageViewAddressNVX" ) );
+
+ //=== VK_AMD_draw_indirect_count ===
vkCmdDrawIndirectCountAMD =
PFN_vkCmdDrawIndirectCountAMD( vkGetDeviceProcAddr( device, "vkCmdDrawIndirectCountAMD" ) );
if ( !vkCmdDrawIndirectCount )
vkCmdDrawIndirectCount = vkCmdDrawIndirectCountAMD;
- vkCmdDrawIndirectCountKHR =
- PFN_vkCmdDrawIndirectCountKHR( vkGetDeviceProcAddr( device, "vkCmdDrawIndirectCountKHR" ) );
- if ( !vkCmdDrawIndirectCount )
- vkCmdDrawIndirectCount = vkCmdDrawIndirectCountKHR;
- vkCmdDrawMeshTasksIndirectCountNV =
- PFN_vkCmdDrawMeshTasksIndirectCountNV( vkGetDeviceProcAddr( device, "vkCmdDrawMeshTasksIndirectCountNV" ) );
- vkCmdDrawMeshTasksIndirectNV =
- PFN_vkCmdDrawMeshTasksIndirectNV( vkGetDeviceProcAddr( device, "vkCmdDrawMeshTasksIndirectNV" ) );
- vkCmdDrawMeshTasksNV = PFN_vkCmdDrawMeshTasksNV( vkGetDeviceProcAddr( device, "vkCmdDrawMeshTasksNV" ) );
- vkCmdDrawMultiEXT = PFN_vkCmdDrawMultiEXT( vkGetDeviceProcAddr( device, "vkCmdDrawMultiEXT" ) );
- vkCmdDrawMultiIndexedEXT =
- PFN_vkCmdDrawMultiIndexedEXT( vkGetDeviceProcAddr( device, "vkCmdDrawMultiIndexedEXT" ) );
-#if defined( VK_ENABLE_BETA_EXTENSIONS )
- vkCmdEncodeVideoKHR = PFN_vkCmdEncodeVideoKHR( vkGetDeviceProcAddr( device, "vkCmdEncodeVideoKHR" ) );
-#endif /*VK_ENABLE_BETA_EXTENSIONS*/
- vkCmdEndConditionalRenderingEXT =
- PFN_vkCmdEndConditionalRenderingEXT( vkGetDeviceProcAddr( device, "vkCmdEndConditionalRenderingEXT" ) );
- vkCmdEndDebugUtilsLabelEXT =
- PFN_vkCmdEndDebugUtilsLabelEXT( vkGetDeviceProcAddr( device, "vkCmdEndDebugUtilsLabelEXT" ) );
- vkCmdEndQuery = PFN_vkCmdEndQuery( vkGetDeviceProcAddr( device, "vkCmdEndQuery" ) );
- vkCmdEndQueryIndexedEXT = PFN_vkCmdEndQueryIndexedEXT( vkGetDeviceProcAddr( device, "vkCmdEndQueryIndexedEXT" ) );
- vkCmdEndRenderPass = PFN_vkCmdEndRenderPass( vkGetDeviceProcAddr( device, "vkCmdEndRenderPass" ) );
- vkCmdEndRenderPass2 = PFN_vkCmdEndRenderPass2( vkGetDeviceProcAddr( device, "vkCmdEndRenderPass2" ) );
- vkCmdEndRenderPass2KHR = PFN_vkCmdEndRenderPass2KHR( vkGetDeviceProcAddr( device, "vkCmdEndRenderPass2KHR" ) );
- if ( !vkCmdEndRenderPass2 )
- vkCmdEndRenderPass2 = vkCmdEndRenderPass2KHR;
- vkCmdEndTransformFeedbackEXT =
- PFN_vkCmdEndTransformFeedbackEXT( vkGetDeviceProcAddr( device, "vkCmdEndTransformFeedbackEXT" ) );
-#if defined( VK_ENABLE_BETA_EXTENSIONS )
- vkCmdEndVideoCodingKHR = PFN_vkCmdEndVideoCodingKHR( vkGetDeviceProcAddr( device, "vkCmdEndVideoCodingKHR" ) );
-#endif /*VK_ENABLE_BETA_EXTENSIONS*/
- vkCmdExecuteCommands = PFN_vkCmdExecuteCommands( vkGetDeviceProcAddr( device, "vkCmdExecuteCommands" ) );
- vkCmdExecuteGeneratedCommandsNV =
- PFN_vkCmdExecuteGeneratedCommandsNV( vkGetDeviceProcAddr( device, "vkCmdExecuteGeneratedCommandsNV" ) );
- vkCmdFillBuffer = PFN_vkCmdFillBuffer( vkGetDeviceProcAddr( device, "vkCmdFillBuffer" ) );
- vkCmdInsertDebugUtilsLabelEXT =
- PFN_vkCmdInsertDebugUtilsLabelEXT( vkGetDeviceProcAddr( device, "vkCmdInsertDebugUtilsLabelEXT" ) );
- vkCmdNextSubpass = PFN_vkCmdNextSubpass( vkGetDeviceProcAddr( device, "vkCmdNextSubpass" ) );
- vkCmdNextSubpass2 = PFN_vkCmdNextSubpass2( vkGetDeviceProcAddr( device, "vkCmdNextSubpass2" ) );
- vkCmdNextSubpass2KHR = PFN_vkCmdNextSubpass2KHR( vkGetDeviceProcAddr( device, "vkCmdNextSubpass2KHR" ) );
- if ( !vkCmdNextSubpass2 )
- vkCmdNextSubpass2 = vkCmdNextSubpass2KHR;
- vkCmdPipelineBarrier = PFN_vkCmdPipelineBarrier( vkGetDeviceProcAddr( device, "vkCmdPipelineBarrier" ) );
- vkCmdPipelineBarrier2KHR =
- PFN_vkCmdPipelineBarrier2KHR( vkGetDeviceProcAddr( device, "vkCmdPipelineBarrier2KHR" ) );
- vkCmdPreprocessGeneratedCommandsNV =
- PFN_vkCmdPreprocessGeneratedCommandsNV( vkGetDeviceProcAddr( device, "vkCmdPreprocessGeneratedCommandsNV" ) );
- vkCmdPushConstants = PFN_vkCmdPushConstants( vkGetDeviceProcAddr( device, "vkCmdPushConstants" ) );
+ vkCmdDrawIndexedIndirectCountAMD =
+ PFN_vkCmdDrawIndexedIndirectCountAMD( vkGetDeviceProcAddr( device, "vkCmdDrawIndexedIndirectCountAMD" ) );
+ if ( !vkCmdDrawIndexedIndirectCount )
+ vkCmdDrawIndexedIndirectCount = vkCmdDrawIndexedIndirectCountAMD;
+
+ //=== VK_AMD_shader_info ===
+ vkGetShaderInfoAMD = PFN_vkGetShaderInfoAMD( vkGetDeviceProcAddr( device, "vkGetShaderInfoAMD" ) );
+
+#if defined( VK_USE_PLATFORM_WIN32_KHR )
+ //=== VK_NV_external_memory_win32 ===
+ vkGetMemoryWin32HandleNV =
+ PFN_vkGetMemoryWin32HandleNV( vkGetDeviceProcAddr( device, "vkGetMemoryWin32HandleNV" ) );
+#endif /*VK_USE_PLATFORM_WIN32_KHR*/
+
+ //=== VK_KHR_device_group ===
+ vkGetDeviceGroupPeerMemoryFeaturesKHR = PFN_vkGetDeviceGroupPeerMemoryFeaturesKHR(
+ vkGetDeviceProcAddr( device, "vkGetDeviceGroupPeerMemoryFeaturesKHR" ) );
+ if ( !vkGetDeviceGroupPeerMemoryFeatures )
+ vkGetDeviceGroupPeerMemoryFeatures = vkGetDeviceGroupPeerMemoryFeaturesKHR;
+ vkCmdSetDeviceMaskKHR = PFN_vkCmdSetDeviceMaskKHR( vkGetDeviceProcAddr( device, "vkCmdSetDeviceMaskKHR" ) );
+ if ( !vkCmdSetDeviceMask )
+ vkCmdSetDeviceMask = vkCmdSetDeviceMaskKHR;
+ vkCmdDispatchBaseKHR = PFN_vkCmdDispatchBaseKHR( vkGetDeviceProcAddr( device, "vkCmdDispatchBaseKHR" ) );
+ if ( !vkCmdDispatchBase )
+ vkCmdDispatchBase = vkCmdDispatchBaseKHR;
+
+ //=== VK_KHR_maintenance1 ===
+ vkTrimCommandPoolKHR = PFN_vkTrimCommandPoolKHR( vkGetDeviceProcAddr( device, "vkTrimCommandPoolKHR" ) );
+ if ( !vkTrimCommandPool )
+ vkTrimCommandPool = vkTrimCommandPoolKHR;
+
+#if defined( VK_USE_PLATFORM_WIN32_KHR )
+ //=== VK_KHR_external_memory_win32 ===
+ vkGetMemoryWin32HandleKHR =
+ PFN_vkGetMemoryWin32HandleKHR( vkGetDeviceProcAddr( device, "vkGetMemoryWin32HandleKHR" ) );
+ vkGetMemoryWin32HandlePropertiesKHR =
+ PFN_vkGetMemoryWin32HandlePropertiesKHR( vkGetDeviceProcAddr( device, "vkGetMemoryWin32HandlePropertiesKHR" ) );
+#endif /*VK_USE_PLATFORM_WIN32_KHR*/
+
+ //=== VK_KHR_external_memory_fd ===
+ vkGetMemoryFdKHR = PFN_vkGetMemoryFdKHR( vkGetDeviceProcAddr( device, "vkGetMemoryFdKHR" ) );
+ vkGetMemoryFdPropertiesKHR =
+ PFN_vkGetMemoryFdPropertiesKHR( vkGetDeviceProcAddr( device, "vkGetMemoryFdPropertiesKHR" ) );
+
+#if defined( VK_USE_PLATFORM_WIN32_KHR )
+ //=== VK_KHR_external_semaphore_win32 ===
+ vkImportSemaphoreWin32HandleKHR =
+ PFN_vkImportSemaphoreWin32HandleKHR( vkGetDeviceProcAddr( device, "vkImportSemaphoreWin32HandleKHR" ) );
+ vkGetSemaphoreWin32HandleKHR =
+ PFN_vkGetSemaphoreWin32HandleKHR( vkGetDeviceProcAddr( device, "vkGetSemaphoreWin32HandleKHR" ) );
+#endif /*VK_USE_PLATFORM_WIN32_KHR*/
+
+ //=== VK_KHR_external_semaphore_fd ===
+ vkImportSemaphoreFdKHR = PFN_vkImportSemaphoreFdKHR( vkGetDeviceProcAddr( device, "vkImportSemaphoreFdKHR" ) );
+ vkGetSemaphoreFdKHR = PFN_vkGetSemaphoreFdKHR( vkGetDeviceProcAddr( device, "vkGetSemaphoreFdKHR" ) );
+
+ //=== VK_KHR_push_descriptor ===
vkCmdPushDescriptorSetKHR =
PFN_vkCmdPushDescriptorSetKHR( vkGetDeviceProcAddr( device, "vkCmdPushDescriptorSetKHR" ) );
vkCmdPushDescriptorSetWithTemplateKHR = PFN_vkCmdPushDescriptorSetWithTemplateKHR(
vkGetDeviceProcAddr( device, "vkCmdPushDescriptorSetWithTemplateKHR" ) );
- vkCmdResetEvent = PFN_vkCmdResetEvent( vkGetDeviceProcAddr( device, "vkCmdResetEvent" ) );
- vkCmdResetEvent2KHR = PFN_vkCmdResetEvent2KHR( vkGetDeviceProcAddr( device, "vkCmdResetEvent2KHR" ) );
- vkCmdResetQueryPool = PFN_vkCmdResetQueryPool( vkGetDeviceProcAddr( device, "vkCmdResetQueryPool" ) );
- vkCmdResolveImage = PFN_vkCmdResolveImage( vkGetDeviceProcAddr( device, "vkCmdResolveImage" ) );
- vkCmdResolveImage2KHR = PFN_vkCmdResolveImage2KHR( vkGetDeviceProcAddr( device, "vkCmdResolveImage2KHR" ) );
- vkCmdSetBlendConstants = PFN_vkCmdSetBlendConstants( vkGetDeviceProcAddr( device, "vkCmdSetBlendConstants" ) );
- vkCmdSetCheckpointNV = PFN_vkCmdSetCheckpointNV( vkGetDeviceProcAddr( device, "vkCmdSetCheckpointNV" ) );
- vkCmdSetCoarseSampleOrderNV =
- PFN_vkCmdSetCoarseSampleOrderNV( vkGetDeviceProcAddr( device, "vkCmdSetCoarseSampleOrderNV" ) );
- vkCmdSetColorWriteEnableEXT =
- PFN_vkCmdSetColorWriteEnableEXT( vkGetDeviceProcAddr( device, "vkCmdSetColorWriteEnableEXT" ) );
- vkCmdSetCullModeEXT = PFN_vkCmdSetCullModeEXT( vkGetDeviceProcAddr( device, "vkCmdSetCullModeEXT" ) );
- vkCmdSetDepthBias = PFN_vkCmdSetDepthBias( vkGetDeviceProcAddr( device, "vkCmdSetDepthBias" ) );
- vkCmdSetDepthBiasEnableEXT =
- PFN_vkCmdSetDepthBiasEnableEXT( vkGetDeviceProcAddr( device, "vkCmdSetDepthBiasEnableEXT" ) );
- vkCmdSetDepthBounds = PFN_vkCmdSetDepthBounds( vkGetDeviceProcAddr( device, "vkCmdSetDepthBounds" ) );
- vkCmdSetDepthBoundsTestEnableEXT =
- PFN_vkCmdSetDepthBoundsTestEnableEXT( vkGetDeviceProcAddr( device, "vkCmdSetDepthBoundsTestEnableEXT" ) );
- vkCmdSetDepthCompareOpEXT =
- PFN_vkCmdSetDepthCompareOpEXT( vkGetDeviceProcAddr( device, "vkCmdSetDepthCompareOpEXT" ) );
- vkCmdSetDepthTestEnableEXT =
- PFN_vkCmdSetDepthTestEnableEXT( vkGetDeviceProcAddr( device, "vkCmdSetDepthTestEnableEXT" ) );
- vkCmdSetDepthWriteEnableEXT =
- PFN_vkCmdSetDepthWriteEnableEXT( vkGetDeviceProcAddr( device, "vkCmdSetDepthWriteEnableEXT" ) );
- vkCmdSetDeviceMask = PFN_vkCmdSetDeviceMask( vkGetDeviceProcAddr( device, "vkCmdSetDeviceMask" ) );
- vkCmdSetDeviceMaskKHR = PFN_vkCmdSetDeviceMaskKHR( vkGetDeviceProcAddr( device, "vkCmdSetDeviceMaskKHR" ) );
- if ( !vkCmdSetDeviceMask )
- vkCmdSetDeviceMask = vkCmdSetDeviceMaskKHR;
+
+ //=== VK_EXT_conditional_rendering ===
+ vkCmdBeginConditionalRenderingEXT =
+ PFN_vkCmdBeginConditionalRenderingEXT( vkGetDeviceProcAddr( device, "vkCmdBeginConditionalRenderingEXT" ) );
+ vkCmdEndConditionalRenderingEXT =
+ PFN_vkCmdEndConditionalRenderingEXT( vkGetDeviceProcAddr( device, "vkCmdEndConditionalRenderingEXT" ) );
+
+ //=== VK_KHR_descriptor_update_template ===
+ vkCreateDescriptorUpdateTemplateKHR =
+ PFN_vkCreateDescriptorUpdateTemplateKHR( vkGetDeviceProcAddr( device, "vkCreateDescriptorUpdateTemplateKHR" ) );
+ if ( !vkCreateDescriptorUpdateTemplate )
+ vkCreateDescriptorUpdateTemplate = vkCreateDescriptorUpdateTemplateKHR;
+ vkDestroyDescriptorUpdateTemplateKHR = PFN_vkDestroyDescriptorUpdateTemplateKHR(
+ vkGetDeviceProcAddr( device, "vkDestroyDescriptorUpdateTemplateKHR" ) );
+ if ( !vkDestroyDescriptorUpdateTemplate )
+ vkDestroyDescriptorUpdateTemplate = vkDestroyDescriptorUpdateTemplateKHR;
+ vkUpdateDescriptorSetWithTemplateKHR = PFN_vkUpdateDescriptorSetWithTemplateKHR(
+ vkGetDeviceProcAddr( device, "vkUpdateDescriptorSetWithTemplateKHR" ) );
+ if ( !vkUpdateDescriptorSetWithTemplate )
+ vkUpdateDescriptorSetWithTemplate = vkUpdateDescriptorSetWithTemplateKHR;
+
+ //=== VK_NV_clip_space_w_scaling ===
+ vkCmdSetViewportWScalingNV =
+ PFN_vkCmdSetViewportWScalingNV( vkGetDeviceProcAddr( device, "vkCmdSetViewportWScalingNV" ) );
+
+ //=== VK_EXT_display_control ===
+ vkDisplayPowerControlEXT =
+ PFN_vkDisplayPowerControlEXT( vkGetDeviceProcAddr( device, "vkDisplayPowerControlEXT" ) );
+ vkRegisterDeviceEventEXT =
+ PFN_vkRegisterDeviceEventEXT( vkGetDeviceProcAddr( device, "vkRegisterDeviceEventEXT" ) );
+ vkRegisterDisplayEventEXT =
+ PFN_vkRegisterDisplayEventEXT( vkGetDeviceProcAddr( device, "vkRegisterDisplayEventEXT" ) );
+ vkGetSwapchainCounterEXT =
+ PFN_vkGetSwapchainCounterEXT( vkGetDeviceProcAddr( device, "vkGetSwapchainCounterEXT" ) );
+
+ //=== VK_GOOGLE_display_timing ===
+ vkGetRefreshCycleDurationGOOGLE =
+ PFN_vkGetRefreshCycleDurationGOOGLE( vkGetDeviceProcAddr( device, "vkGetRefreshCycleDurationGOOGLE" ) );
+ vkGetPastPresentationTimingGOOGLE =
+ PFN_vkGetPastPresentationTimingGOOGLE( vkGetDeviceProcAddr( device, "vkGetPastPresentationTimingGOOGLE" ) );
+
+ //=== VK_EXT_discard_rectangles ===
vkCmdSetDiscardRectangleEXT =
PFN_vkCmdSetDiscardRectangleEXT( vkGetDeviceProcAddr( device, "vkCmdSetDiscardRectangleEXT" ) );
- vkCmdSetEvent = PFN_vkCmdSetEvent( vkGetDeviceProcAddr( device, "vkCmdSetEvent" ) );
- vkCmdSetEvent2KHR = PFN_vkCmdSetEvent2KHR( vkGetDeviceProcAddr( device, "vkCmdSetEvent2KHR" ) );
- vkCmdSetExclusiveScissorNV =
- PFN_vkCmdSetExclusiveScissorNV( vkGetDeviceProcAddr( device, "vkCmdSetExclusiveScissorNV" ) );
- vkCmdSetFragmentShadingRateEnumNV =
- PFN_vkCmdSetFragmentShadingRateEnumNV( vkGetDeviceProcAddr( device, "vkCmdSetFragmentShadingRateEnumNV" ) );
- vkCmdSetFragmentShadingRateKHR =
- PFN_vkCmdSetFragmentShadingRateKHR( vkGetDeviceProcAddr( device, "vkCmdSetFragmentShadingRateKHR" ) );
- vkCmdSetFrontFaceEXT = PFN_vkCmdSetFrontFaceEXT( vkGetDeviceProcAddr( device, "vkCmdSetFrontFaceEXT" ) );
- vkCmdSetLineStippleEXT = PFN_vkCmdSetLineStippleEXT( vkGetDeviceProcAddr( device, "vkCmdSetLineStippleEXT" ) );
- vkCmdSetLineWidth = PFN_vkCmdSetLineWidth( vkGetDeviceProcAddr( device, "vkCmdSetLineWidth" ) );
- vkCmdSetLogicOpEXT = PFN_vkCmdSetLogicOpEXT( vkGetDeviceProcAddr( device, "vkCmdSetLogicOpEXT" ) );
- vkCmdSetPatchControlPointsEXT =
- PFN_vkCmdSetPatchControlPointsEXT( vkGetDeviceProcAddr( device, "vkCmdSetPatchControlPointsEXT" ) );
- vkCmdSetPerformanceMarkerINTEL =
- PFN_vkCmdSetPerformanceMarkerINTEL( vkGetDeviceProcAddr( device, "vkCmdSetPerformanceMarkerINTEL" ) );
- vkCmdSetPerformanceOverrideINTEL =
- PFN_vkCmdSetPerformanceOverrideINTEL( vkGetDeviceProcAddr( device, "vkCmdSetPerformanceOverrideINTEL" ) );
- vkCmdSetPerformanceStreamMarkerINTEL = PFN_vkCmdSetPerformanceStreamMarkerINTEL(
- vkGetDeviceProcAddr( device, "vkCmdSetPerformanceStreamMarkerINTEL" ) );
- vkCmdSetPrimitiveRestartEnableEXT =
- PFN_vkCmdSetPrimitiveRestartEnableEXT( vkGetDeviceProcAddr( device, "vkCmdSetPrimitiveRestartEnableEXT" ) );
- vkCmdSetPrimitiveTopologyEXT =
- PFN_vkCmdSetPrimitiveTopologyEXT( vkGetDeviceProcAddr( device, "vkCmdSetPrimitiveTopologyEXT" ) );
- vkCmdSetRasterizerDiscardEnableEXT =
- PFN_vkCmdSetRasterizerDiscardEnableEXT( vkGetDeviceProcAddr( device, "vkCmdSetRasterizerDiscardEnableEXT" ) );
- vkCmdSetRayTracingPipelineStackSizeKHR = PFN_vkCmdSetRayTracingPipelineStackSizeKHR(
- vkGetDeviceProcAddr( device, "vkCmdSetRayTracingPipelineStackSizeKHR" ) );
+
+ //=== VK_EXT_hdr_metadata ===
+ vkSetHdrMetadataEXT = PFN_vkSetHdrMetadataEXT( vkGetDeviceProcAddr( device, "vkSetHdrMetadataEXT" ) );
+
+ //=== VK_KHR_create_renderpass2 ===
+ vkCreateRenderPass2KHR = PFN_vkCreateRenderPass2KHR( vkGetDeviceProcAddr( device, "vkCreateRenderPass2KHR" ) );
+ if ( !vkCreateRenderPass2 )
+ vkCreateRenderPass2 = vkCreateRenderPass2KHR;
+ vkCmdBeginRenderPass2KHR =
+ PFN_vkCmdBeginRenderPass2KHR( vkGetDeviceProcAddr( device, "vkCmdBeginRenderPass2KHR" ) );
+ if ( !vkCmdBeginRenderPass2 )
+ vkCmdBeginRenderPass2 = vkCmdBeginRenderPass2KHR;
+ vkCmdNextSubpass2KHR = PFN_vkCmdNextSubpass2KHR( vkGetDeviceProcAddr( device, "vkCmdNextSubpass2KHR" ) );
+ if ( !vkCmdNextSubpass2 )
+ vkCmdNextSubpass2 = vkCmdNextSubpass2KHR;
+ vkCmdEndRenderPass2KHR = PFN_vkCmdEndRenderPass2KHR( vkGetDeviceProcAddr( device, "vkCmdEndRenderPass2KHR" ) );
+ if ( !vkCmdEndRenderPass2 )
+ vkCmdEndRenderPass2 = vkCmdEndRenderPass2KHR;
+
+ //=== VK_KHR_shared_presentable_image ===
+ vkGetSwapchainStatusKHR = PFN_vkGetSwapchainStatusKHR( vkGetDeviceProcAddr( device, "vkGetSwapchainStatusKHR" ) );
+
+#if defined( VK_USE_PLATFORM_WIN32_KHR )
+ //=== VK_KHR_external_fence_win32 ===
+ vkImportFenceWin32HandleKHR =
+ PFN_vkImportFenceWin32HandleKHR( vkGetDeviceProcAddr( device, "vkImportFenceWin32HandleKHR" ) );
+ vkGetFenceWin32HandleKHR =
+ PFN_vkGetFenceWin32HandleKHR( vkGetDeviceProcAddr( device, "vkGetFenceWin32HandleKHR" ) );
+#endif /*VK_USE_PLATFORM_WIN32_KHR*/
+
+ //=== VK_KHR_external_fence_fd ===
+ vkImportFenceFdKHR = PFN_vkImportFenceFdKHR( vkGetDeviceProcAddr( device, "vkImportFenceFdKHR" ) );
+ vkGetFenceFdKHR = PFN_vkGetFenceFdKHR( vkGetDeviceProcAddr( device, "vkGetFenceFdKHR" ) );
+
+ //=== VK_KHR_performance_query ===
+ vkAcquireProfilingLockKHR =
+ PFN_vkAcquireProfilingLockKHR( vkGetDeviceProcAddr( device, "vkAcquireProfilingLockKHR" ) );
+ vkReleaseProfilingLockKHR =
+ PFN_vkReleaseProfilingLockKHR( vkGetDeviceProcAddr( device, "vkReleaseProfilingLockKHR" ) );
+
+ //=== VK_EXT_debug_utils ===
+ vkSetDebugUtilsObjectNameEXT =
+ PFN_vkSetDebugUtilsObjectNameEXT( vkGetDeviceProcAddr( device, "vkSetDebugUtilsObjectNameEXT" ) );
+ vkSetDebugUtilsObjectTagEXT =
+ PFN_vkSetDebugUtilsObjectTagEXT( vkGetDeviceProcAddr( device, "vkSetDebugUtilsObjectTagEXT" ) );
+ vkQueueBeginDebugUtilsLabelEXT =
+ PFN_vkQueueBeginDebugUtilsLabelEXT( vkGetDeviceProcAddr( device, "vkQueueBeginDebugUtilsLabelEXT" ) );
+ vkQueueEndDebugUtilsLabelEXT =
+ PFN_vkQueueEndDebugUtilsLabelEXT( vkGetDeviceProcAddr( device, "vkQueueEndDebugUtilsLabelEXT" ) );
+ vkQueueInsertDebugUtilsLabelEXT =
+ PFN_vkQueueInsertDebugUtilsLabelEXT( vkGetDeviceProcAddr( device, "vkQueueInsertDebugUtilsLabelEXT" ) );
+ vkCmdBeginDebugUtilsLabelEXT =
+ PFN_vkCmdBeginDebugUtilsLabelEXT( vkGetDeviceProcAddr( device, "vkCmdBeginDebugUtilsLabelEXT" ) );
+ vkCmdEndDebugUtilsLabelEXT =
+ PFN_vkCmdEndDebugUtilsLabelEXT( vkGetDeviceProcAddr( device, "vkCmdEndDebugUtilsLabelEXT" ) );
+ vkCmdInsertDebugUtilsLabelEXT =
+ PFN_vkCmdInsertDebugUtilsLabelEXT( vkGetDeviceProcAddr( device, "vkCmdInsertDebugUtilsLabelEXT" ) );
+
+#if defined( VK_USE_PLATFORM_ANDROID_KHR )
+ //=== VK_ANDROID_external_memory_android_hardware_buffer ===
+ vkGetAndroidHardwareBufferPropertiesANDROID = PFN_vkGetAndroidHardwareBufferPropertiesANDROID(
+ vkGetDeviceProcAddr( device, "vkGetAndroidHardwareBufferPropertiesANDROID" ) );
+ vkGetMemoryAndroidHardwareBufferANDROID = PFN_vkGetMemoryAndroidHardwareBufferANDROID(
+ vkGetDeviceProcAddr( device, "vkGetMemoryAndroidHardwareBufferANDROID" ) );
+#endif /*VK_USE_PLATFORM_ANDROID_KHR*/
+
+ //=== VK_EXT_sample_locations ===
vkCmdSetSampleLocationsEXT =
PFN_vkCmdSetSampleLocationsEXT( vkGetDeviceProcAddr( device, "vkCmdSetSampleLocationsEXT" ) );
- vkCmdSetScissor = PFN_vkCmdSetScissor( vkGetDeviceProcAddr( device, "vkCmdSetScissor" ) );
- vkCmdSetScissorWithCountEXT =
- PFN_vkCmdSetScissorWithCountEXT( vkGetDeviceProcAddr( device, "vkCmdSetScissorWithCountEXT" ) );
- vkCmdSetStencilCompareMask =
- PFN_vkCmdSetStencilCompareMask( vkGetDeviceProcAddr( device, "vkCmdSetStencilCompareMask" ) );
- vkCmdSetStencilOpEXT = PFN_vkCmdSetStencilOpEXT( vkGetDeviceProcAddr( device, "vkCmdSetStencilOpEXT" ) );
- vkCmdSetStencilReference =
- PFN_vkCmdSetStencilReference( vkGetDeviceProcAddr( device, "vkCmdSetStencilReference" ) );
- vkCmdSetStencilTestEnableEXT =
- PFN_vkCmdSetStencilTestEnableEXT( vkGetDeviceProcAddr( device, "vkCmdSetStencilTestEnableEXT" ) );
- vkCmdSetStencilWriteMask =
- PFN_vkCmdSetStencilWriteMask( vkGetDeviceProcAddr( device, "vkCmdSetStencilWriteMask" ) );
- vkCmdSetVertexInputEXT = PFN_vkCmdSetVertexInputEXT( vkGetDeviceProcAddr( device, "vkCmdSetVertexInputEXT" ) );
- vkCmdSetViewport = PFN_vkCmdSetViewport( vkGetDeviceProcAddr( device, "vkCmdSetViewport" ) );
- vkCmdSetViewportShadingRatePaletteNV = PFN_vkCmdSetViewportShadingRatePaletteNV(
- vkGetDeviceProcAddr( device, "vkCmdSetViewportShadingRatePaletteNV" ) );
- vkCmdSetViewportWScalingNV =
- PFN_vkCmdSetViewportWScalingNV( vkGetDeviceProcAddr( device, "vkCmdSetViewportWScalingNV" ) );
- vkCmdSetViewportWithCountEXT =
- PFN_vkCmdSetViewportWithCountEXT( vkGetDeviceProcAddr( device, "vkCmdSetViewportWithCountEXT" ) );
- vkCmdSubpassShadingHUAWEI =
- PFN_vkCmdSubpassShadingHUAWEI( vkGetDeviceProcAddr( device, "vkCmdSubpassShadingHUAWEI" ) );
- vkCmdTraceRaysIndirectKHR =
- PFN_vkCmdTraceRaysIndirectKHR( vkGetDeviceProcAddr( device, "vkCmdTraceRaysIndirectKHR" ) );
- vkCmdTraceRaysKHR = PFN_vkCmdTraceRaysKHR( vkGetDeviceProcAddr( device, "vkCmdTraceRaysKHR" ) );
- vkCmdTraceRaysNV = PFN_vkCmdTraceRaysNV( vkGetDeviceProcAddr( device, "vkCmdTraceRaysNV" ) );
- vkCmdUpdateBuffer = PFN_vkCmdUpdateBuffer( vkGetDeviceProcAddr( device, "vkCmdUpdateBuffer" ) );
- vkCmdWaitEvents = PFN_vkCmdWaitEvents( vkGetDeviceProcAddr( device, "vkCmdWaitEvents" ) );
- vkCmdWaitEvents2KHR = PFN_vkCmdWaitEvents2KHR( vkGetDeviceProcAddr( device, "vkCmdWaitEvents2KHR" ) );
- vkCmdWriteAccelerationStructuresPropertiesKHR = PFN_vkCmdWriteAccelerationStructuresPropertiesKHR(
- vkGetDeviceProcAddr( device, "vkCmdWriteAccelerationStructuresPropertiesKHR" ) );
- vkCmdWriteAccelerationStructuresPropertiesNV = PFN_vkCmdWriteAccelerationStructuresPropertiesNV(
- vkGetDeviceProcAddr( device, "vkCmdWriteAccelerationStructuresPropertiesNV" ) );
- vkCmdWriteBufferMarker2AMD =
- PFN_vkCmdWriteBufferMarker2AMD( vkGetDeviceProcAddr( device, "vkCmdWriteBufferMarker2AMD" ) );
- vkCmdWriteBufferMarkerAMD =
- PFN_vkCmdWriteBufferMarkerAMD( vkGetDeviceProcAddr( device, "vkCmdWriteBufferMarkerAMD" ) );
- vkCmdWriteTimestamp = PFN_vkCmdWriteTimestamp( vkGetDeviceProcAddr( device, "vkCmdWriteTimestamp" ) );
- vkCmdWriteTimestamp2KHR = PFN_vkCmdWriteTimestamp2KHR( vkGetDeviceProcAddr( device, "vkCmdWriteTimestamp2KHR" ) );
- vkCompileDeferredNV = PFN_vkCompileDeferredNV( vkGetDeviceProcAddr( device, "vkCompileDeferredNV" ) );
+
+ //=== VK_KHR_get_memory_requirements2 ===
+ vkGetImageMemoryRequirements2KHR =
+ PFN_vkGetImageMemoryRequirements2KHR( vkGetDeviceProcAddr( device, "vkGetImageMemoryRequirements2KHR" ) );
+ if ( !vkGetImageMemoryRequirements2 )
+ vkGetImageMemoryRequirements2 = vkGetImageMemoryRequirements2KHR;
+ vkGetBufferMemoryRequirements2KHR =
+ PFN_vkGetBufferMemoryRequirements2KHR( vkGetDeviceProcAddr( device, "vkGetBufferMemoryRequirements2KHR" ) );
+ if ( !vkGetBufferMemoryRequirements2 )
+ vkGetBufferMemoryRequirements2 = vkGetBufferMemoryRequirements2KHR;
+ vkGetImageSparseMemoryRequirements2KHR = PFN_vkGetImageSparseMemoryRequirements2KHR(
+ vkGetDeviceProcAddr( device, "vkGetImageSparseMemoryRequirements2KHR" ) );
+ if ( !vkGetImageSparseMemoryRequirements2 )
+ vkGetImageSparseMemoryRequirements2 = vkGetImageSparseMemoryRequirements2KHR;
+
+ //=== VK_KHR_acceleration_structure ===
+ vkCreateAccelerationStructureKHR =
+ PFN_vkCreateAccelerationStructureKHR( vkGetDeviceProcAddr( device, "vkCreateAccelerationStructureKHR" ) );
+ vkDestroyAccelerationStructureKHR =
+ PFN_vkDestroyAccelerationStructureKHR( vkGetDeviceProcAddr( device, "vkDestroyAccelerationStructureKHR" ) );
+ vkCmdBuildAccelerationStructuresKHR =
+ PFN_vkCmdBuildAccelerationStructuresKHR( vkGetDeviceProcAddr( device, "vkCmdBuildAccelerationStructuresKHR" ) );
+ vkCmdBuildAccelerationStructuresIndirectKHR = PFN_vkCmdBuildAccelerationStructuresIndirectKHR(
+ vkGetDeviceProcAddr( device, "vkCmdBuildAccelerationStructuresIndirectKHR" ) );
+ vkBuildAccelerationStructuresKHR =
+ PFN_vkBuildAccelerationStructuresKHR( vkGetDeviceProcAddr( device, "vkBuildAccelerationStructuresKHR" ) );
vkCopyAccelerationStructureKHR =
PFN_vkCopyAccelerationStructureKHR( vkGetDeviceProcAddr( device, "vkCopyAccelerationStructureKHR" ) );
vkCopyAccelerationStructureToMemoryKHR = PFN_vkCopyAccelerationStructureToMemoryKHR(
vkGetDeviceProcAddr( device, "vkCopyAccelerationStructureToMemoryKHR" ) );
vkCopyMemoryToAccelerationStructureKHR = PFN_vkCopyMemoryToAccelerationStructureKHR(
vkGetDeviceProcAddr( device, "vkCopyMemoryToAccelerationStructureKHR" ) );
- vkCreateAccelerationStructureKHR =
- PFN_vkCreateAccelerationStructureKHR( vkGetDeviceProcAddr( device, "vkCreateAccelerationStructureKHR" ) );
- vkCreateAccelerationStructureNV =
- PFN_vkCreateAccelerationStructureNV( vkGetDeviceProcAddr( device, "vkCreateAccelerationStructureNV" ) );
- vkCreateBuffer = PFN_vkCreateBuffer( vkGetDeviceProcAddr( device, "vkCreateBuffer" ) );
- vkCreateBufferView = PFN_vkCreateBufferView( vkGetDeviceProcAddr( device, "vkCreateBufferView" ) );
- vkCreateCommandPool = PFN_vkCreateCommandPool( vkGetDeviceProcAddr( device, "vkCreateCommandPool" ) );
- vkCreateComputePipelines =
- PFN_vkCreateComputePipelines( vkGetDeviceProcAddr( device, "vkCreateComputePipelines" ) );
- vkCreateCuFunctionNVX = PFN_vkCreateCuFunctionNVX( vkGetDeviceProcAddr( device, "vkCreateCuFunctionNVX" ) );
- vkCreateCuModuleNVX = PFN_vkCreateCuModuleNVX( vkGetDeviceProcAddr( device, "vkCreateCuModuleNVX" ) );
- vkCreateDeferredOperationKHR =
- PFN_vkCreateDeferredOperationKHR( vkGetDeviceProcAddr( device, "vkCreateDeferredOperationKHR" ) );
- vkCreateDescriptorPool = PFN_vkCreateDescriptorPool( vkGetDeviceProcAddr( device, "vkCreateDescriptorPool" ) );
- vkCreateDescriptorSetLayout =
- PFN_vkCreateDescriptorSetLayout( vkGetDeviceProcAddr( device, "vkCreateDescriptorSetLayout" ) );
- vkCreateDescriptorUpdateTemplate =
- PFN_vkCreateDescriptorUpdateTemplate( vkGetDeviceProcAddr( device, "vkCreateDescriptorUpdateTemplate" ) );
- vkCreateDescriptorUpdateTemplateKHR =
- PFN_vkCreateDescriptorUpdateTemplateKHR( vkGetDeviceProcAddr( device, "vkCreateDescriptorUpdateTemplateKHR" ) );
- if ( !vkCreateDescriptorUpdateTemplate )
- vkCreateDescriptorUpdateTemplate = vkCreateDescriptorUpdateTemplateKHR;
- vkCreateEvent = PFN_vkCreateEvent( vkGetDeviceProcAddr( device, "vkCreateEvent" ) );
- vkCreateFence = PFN_vkCreateFence( vkGetDeviceProcAddr( device, "vkCreateFence" ) );
- vkCreateFramebuffer = PFN_vkCreateFramebuffer( vkGetDeviceProcAddr( device, "vkCreateFramebuffer" ) );
- vkCreateGraphicsPipelines =
- PFN_vkCreateGraphicsPipelines( vkGetDeviceProcAddr( device, "vkCreateGraphicsPipelines" ) );
- vkCreateImage = PFN_vkCreateImage( vkGetDeviceProcAddr( device, "vkCreateImage" ) );
- vkCreateImageView = PFN_vkCreateImageView( vkGetDeviceProcAddr( device, "vkCreateImageView" ) );
- vkCreateIndirectCommandsLayoutNV =
- PFN_vkCreateIndirectCommandsLayoutNV( vkGetDeviceProcAddr( device, "vkCreateIndirectCommandsLayoutNV" ) );
- vkCreatePipelineCache = PFN_vkCreatePipelineCache( vkGetDeviceProcAddr( device, "vkCreatePipelineCache" ) );
- vkCreatePipelineLayout = PFN_vkCreatePipelineLayout( vkGetDeviceProcAddr( device, "vkCreatePipelineLayout" ) );
- vkCreatePrivateDataSlotEXT =
- PFN_vkCreatePrivateDataSlotEXT( vkGetDeviceProcAddr( device, "vkCreatePrivateDataSlotEXT" ) );
- vkCreateQueryPool = PFN_vkCreateQueryPool( vkGetDeviceProcAddr( device, "vkCreateQueryPool" ) );
- vkCreateRayTracingPipelinesKHR =
- PFN_vkCreateRayTracingPipelinesKHR( vkGetDeviceProcAddr( device, "vkCreateRayTracingPipelinesKHR" ) );
- vkCreateRayTracingPipelinesNV =
- PFN_vkCreateRayTracingPipelinesNV( vkGetDeviceProcAddr( device, "vkCreateRayTracingPipelinesNV" ) );
- vkCreateRenderPass = PFN_vkCreateRenderPass( vkGetDeviceProcAddr( device, "vkCreateRenderPass" ) );
- vkCreateRenderPass2 = PFN_vkCreateRenderPass2( vkGetDeviceProcAddr( device, "vkCreateRenderPass2" ) );
- vkCreateRenderPass2KHR = PFN_vkCreateRenderPass2KHR( vkGetDeviceProcAddr( device, "vkCreateRenderPass2KHR" ) );
- if ( !vkCreateRenderPass2 )
- vkCreateRenderPass2 = vkCreateRenderPass2KHR;
- vkCreateSampler = PFN_vkCreateSampler( vkGetDeviceProcAddr( device, "vkCreateSampler" ) );
- vkCreateSamplerYcbcrConversion =
- PFN_vkCreateSamplerYcbcrConversion( vkGetDeviceProcAddr( device, "vkCreateSamplerYcbcrConversion" ) );
+ vkWriteAccelerationStructuresPropertiesKHR = PFN_vkWriteAccelerationStructuresPropertiesKHR(
+ vkGetDeviceProcAddr( device, "vkWriteAccelerationStructuresPropertiesKHR" ) );
+ vkCmdCopyAccelerationStructureKHR =
+ PFN_vkCmdCopyAccelerationStructureKHR( vkGetDeviceProcAddr( device, "vkCmdCopyAccelerationStructureKHR" ) );
+ vkCmdCopyAccelerationStructureToMemoryKHR = PFN_vkCmdCopyAccelerationStructureToMemoryKHR(
+ vkGetDeviceProcAddr( device, "vkCmdCopyAccelerationStructureToMemoryKHR" ) );
+ vkCmdCopyMemoryToAccelerationStructureKHR = PFN_vkCmdCopyMemoryToAccelerationStructureKHR(
+ vkGetDeviceProcAddr( device, "vkCmdCopyMemoryToAccelerationStructureKHR" ) );
+ vkGetAccelerationStructureDeviceAddressKHR = PFN_vkGetAccelerationStructureDeviceAddressKHR(
+ vkGetDeviceProcAddr( device, "vkGetAccelerationStructureDeviceAddressKHR" ) );
+ vkCmdWriteAccelerationStructuresPropertiesKHR = PFN_vkCmdWriteAccelerationStructuresPropertiesKHR(
+ vkGetDeviceProcAddr( device, "vkCmdWriteAccelerationStructuresPropertiesKHR" ) );
+ vkGetDeviceAccelerationStructureCompatibilityKHR = PFN_vkGetDeviceAccelerationStructureCompatibilityKHR(
+ vkGetDeviceProcAddr( device, "vkGetDeviceAccelerationStructureCompatibilityKHR" ) );
+ vkGetAccelerationStructureBuildSizesKHR = PFN_vkGetAccelerationStructureBuildSizesKHR(
+ vkGetDeviceProcAddr( device, "vkGetAccelerationStructureBuildSizesKHR" ) );
+
+ //=== VK_KHR_sampler_ycbcr_conversion ===
vkCreateSamplerYcbcrConversionKHR =
PFN_vkCreateSamplerYcbcrConversionKHR( vkGetDeviceProcAddr( device, "vkCreateSamplerYcbcrConversionKHR" ) );
if ( !vkCreateSamplerYcbcrConversion )
vkCreateSamplerYcbcrConversion = vkCreateSamplerYcbcrConversionKHR;
- vkCreateSemaphore = PFN_vkCreateSemaphore( vkGetDeviceProcAddr( device, "vkCreateSemaphore" ) );
- vkCreateShaderModule = PFN_vkCreateShaderModule( vkGetDeviceProcAddr( device, "vkCreateShaderModule" ) );
- vkCreateSharedSwapchainsKHR =
- PFN_vkCreateSharedSwapchainsKHR( vkGetDeviceProcAddr( device, "vkCreateSharedSwapchainsKHR" ) );
- vkCreateSwapchainKHR = PFN_vkCreateSwapchainKHR( vkGetDeviceProcAddr( device, "vkCreateSwapchainKHR" ) );
- vkCreateValidationCacheEXT =
- PFN_vkCreateValidationCacheEXT( vkGetDeviceProcAddr( device, "vkCreateValidationCacheEXT" ) );
-#if defined( VK_ENABLE_BETA_EXTENSIONS )
- vkCreateVideoSessionKHR = PFN_vkCreateVideoSessionKHR( vkGetDeviceProcAddr( device, "vkCreateVideoSessionKHR" ) );
-#endif /*VK_ENABLE_BETA_EXTENSIONS*/
-#if defined( VK_ENABLE_BETA_EXTENSIONS )
- vkCreateVideoSessionParametersKHR =
- PFN_vkCreateVideoSessionParametersKHR( vkGetDeviceProcAddr( device, "vkCreateVideoSessionParametersKHR" ) );
-#endif /*VK_ENABLE_BETA_EXTENSIONS*/
- vkDebugMarkerSetObjectNameEXT =
- PFN_vkDebugMarkerSetObjectNameEXT( vkGetDeviceProcAddr( device, "vkDebugMarkerSetObjectNameEXT" ) );
- vkDebugMarkerSetObjectTagEXT =
- PFN_vkDebugMarkerSetObjectTagEXT( vkGetDeviceProcAddr( device, "vkDebugMarkerSetObjectTagEXT" ) );
- vkDeferredOperationJoinKHR =
- PFN_vkDeferredOperationJoinKHR( vkGetDeviceProcAddr( device, "vkDeferredOperationJoinKHR" ) );
- vkDestroyAccelerationStructureKHR =
- PFN_vkDestroyAccelerationStructureKHR( vkGetDeviceProcAddr( device, "vkDestroyAccelerationStructureKHR" ) );
- vkDestroyAccelerationStructureNV =
- PFN_vkDestroyAccelerationStructureNV( vkGetDeviceProcAddr( device, "vkDestroyAccelerationStructureNV" ) );
- vkDestroyBuffer = PFN_vkDestroyBuffer( vkGetDeviceProcAddr( device, "vkDestroyBuffer" ) );
- vkDestroyBufferView = PFN_vkDestroyBufferView( vkGetDeviceProcAddr( device, "vkDestroyBufferView" ) );
- vkDestroyCommandPool = PFN_vkDestroyCommandPool( vkGetDeviceProcAddr( device, "vkDestroyCommandPool" ) );
- vkDestroyCuFunctionNVX = PFN_vkDestroyCuFunctionNVX( vkGetDeviceProcAddr( device, "vkDestroyCuFunctionNVX" ) );
- vkDestroyCuModuleNVX = PFN_vkDestroyCuModuleNVX( vkGetDeviceProcAddr( device, "vkDestroyCuModuleNVX" ) );
- vkDestroyDeferredOperationKHR =
- PFN_vkDestroyDeferredOperationKHR( vkGetDeviceProcAddr( device, "vkDestroyDeferredOperationKHR" ) );
- vkDestroyDescriptorPool = PFN_vkDestroyDescriptorPool( vkGetDeviceProcAddr( device, "vkDestroyDescriptorPool" ) );
- vkDestroyDescriptorSetLayout =
- PFN_vkDestroyDescriptorSetLayout( vkGetDeviceProcAddr( device, "vkDestroyDescriptorSetLayout" ) );
- vkDestroyDescriptorUpdateTemplate =
- PFN_vkDestroyDescriptorUpdateTemplate( vkGetDeviceProcAddr( device, "vkDestroyDescriptorUpdateTemplate" ) );
- vkDestroyDescriptorUpdateTemplateKHR = PFN_vkDestroyDescriptorUpdateTemplateKHR(
- vkGetDeviceProcAddr( device, "vkDestroyDescriptorUpdateTemplateKHR" ) );
- if ( !vkDestroyDescriptorUpdateTemplate )
- vkDestroyDescriptorUpdateTemplate = vkDestroyDescriptorUpdateTemplateKHR;
- vkDestroyDevice = PFN_vkDestroyDevice( vkGetDeviceProcAddr( device, "vkDestroyDevice" ) );
- vkDestroyEvent = PFN_vkDestroyEvent( vkGetDeviceProcAddr( device, "vkDestroyEvent" ) );
- vkDestroyFence = PFN_vkDestroyFence( vkGetDeviceProcAddr( device, "vkDestroyFence" ) );
- vkDestroyFramebuffer = PFN_vkDestroyFramebuffer( vkGetDeviceProcAddr( device, "vkDestroyFramebuffer" ) );
- vkDestroyImage = PFN_vkDestroyImage( vkGetDeviceProcAddr( device, "vkDestroyImage" ) );
- vkDestroyImageView = PFN_vkDestroyImageView( vkGetDeviceProcAddr( device, "vkDestroyImageView" ) );
- vkDestroyIndirectCommandsLayoutNV =
- PFN_vkDestroyIndirectCommandsLayoutNV( vkGetDeviceProcAddr( device, "vkDestroyIndirectCommandsLayoutNV" ) );
- vkDestroyPipeline = PFN_vkDestroyPipeline( vkGetDeviceProcAddr( device, "vkDestroyPipeline" ) );
- vkDestroyPipelineCache = PFN_vkDestroyPipelineCache( vkGetDeviceProcAddr( device, "vkDestroyPipelineCache" ) );
- vkDestroyPipelineLayout = PFN_vkDestroyPipelineLayout( vkGetDeviceProcAddr( device, "vkDestroyPipelineLayout" ) );
- vkDestroyPrivateDataSlotEXT =
- PFN_vkDestroyPrivateDataSlotEXT( vkGetDeviceProcAddr( device, "vkDestroyPrivateDataSlotEXT" ) );
- vkDestroyQueryPool = PFN_vkDestroyQueryPool( vkGetDeviceProcAddr( device, "vkDestroyQueryPool" ) );
- vkDestroyRenderPass = PFN_vkDestroyRenderPass( vkGetDeviceProcAddr( device, "vkDestroyRenderPass" ) );
- vkDestroySampler = PFN_vkDestroySampler( vkGetDeviceProcAddr( device, "vkDestroySampler" ) );
- vkDestroySamplerYcbcrConversion =
- PFN_vkDestroySamplerYcbcrConversion( vkGetDeviceProcAddr( device, "vkDestroySamplerYcbcrConversion" ) );
vkDestroySamplerYcbcrConversionKHR =
PFN_vkDestroySamplerYcbcrConversionKHR( vkGetDeviceProcAddr( device, "vkDestroySamplerYcbcrConversionKHR" ) );
if ( !vkDestroySamplerYcbcrConversion )
vkDestroySamplerYcbcrConversion = vkDestroySamplerYcbcrConversionKHR;
- vkDestroySemaphore = PFN_vkDestroySemaphore( vkGetDeviceProcAddr( device, "vkDestroySemaphore" ) );
- vkDestroyShaderModule = PFN_vkDestroyShaderModule( vkGetDeviceProcAddr( device, "vkDestroyShaderModule" ) );
- vkDestroySwapchainKHR = PFN_vkDestroySwapchainKHR( vkGetDeviceProcAddr( device, "vkDestroySwapchainKHR" ) );
+
+ //=== VK_KHR_bind_memory2 ===
+ vkBindBufferMemory2KHR = PFN_vkBindBufferMemory2KHR( vkGetDeviceProcAddr( device, "vkBindBufferMemory2KHR" ) );
+ if ( !vkBindBufferMemory2 )
+ vkBindBufferMemory2 = vkBindBufferMemory2KHR;
+ vkBindImageMemory2KHR = PFN_vkBindImageMemory2KHR( vkGetDeviceProcAddr( device, "vkBindImageMemory2KHR" ) );
+ if ( !vkBindImageMemory2 )
+ vkBindImageMemory2 = vkBindImageMemory2KHR;
+
+ //=== VK_EXT_image_drm_format_modifier ===
+ vkGetImageDrmFormatModifierPropertiesEXT = PFN_vkGetImageDrmFormatModifierPropertiesEXT(
+ vkGetDeviceProcAddr( device, "vkGetImageDrmFormatModifierPropertiesEXT" ) );
+
+ //=== VK_EXT_validation_cache ===
+ vkCreateValidationCacheEXT =
+ PFN_vkCreateValidationCacheEXT( vkGetDeviceProcAddr( device, "vkCreateValidationCacheEXT" ) );
vkDestroyValidationCacheEXT =
PFN_vkDestroyValidationCacheEXT( vkGetDeviceProcAddr( device, "vkDestroyValidationCacheEXT" ) );
-#if defined( VK_ENABLE_BETA_EXTENSIONS )
- vkDestroyVideoSessionKHR =
- PFN_vkDestroyVideoSessionKHR( vkGetDeviceProcAddr( device, "vkDestroyVideoSessionKHR" ) );
-#endif /*VK_ENABLE_BETA_EXTENSIONS*/
-#if defined( VK_ENABLE_BETA_EXTENSIONS )
- vkDestroyVideoSessionParametersKHR =
- PFN_vkDestroyVideoSessionParametersKHR( vkGetDeviceProcAddr( device, "vkDestroyVideoSessionParametersKHR" ) );
-#endif /*VK_ENABLE_BETA_EXTENSIONS*/
- vkDeviceWaitIdle = PFN_vkDeviceWaitIdle( vkGetDeviceProcAddr( device, "vkDeviceWaitIdle" ) );
- vkDisplayPowerControlEXT =
- PFN_vkDisplayPowerControlEXT( vkGetDeviceProcAddr( device, "vkDisplayPowerControlEXT" ) );
- vkEndCommandBuffer = PFN_vkEndCommandBuffer( vkGetDeviceProcAddr( device, "vkEndCommandBuffer" ) );
- vkFlushMappedMemoryRanges =
- PFN_vkFlushMappedMemoryRanges( vkGetDeviceProcAddr( device, "vkFlushMappedMemoryRanges" ) );
- vkFreeCommandBuffers = PFN_vkFreeCommandBuffers( vkGetDeviceProcAddr( device, "vkFreeCommandBuffers" ) );
- vkFreeDescriptorSets = PFN_vkFreeDescriptorSets( vkGetDeviceProcAddr( device, "vkFreeDescriptorSets" ) );
- vkFreeMemory = PFN_vkFreeMemory( vkGetDeviceProcAddr( device, "vkFreeMemory" ) );
- vkGetAccelerationStructureBuildSizesKHR = PFN_vkGetAccelerationStructureBuildSizesKHR(
- vkGetDeviceProcAddr( device, "vkGetAccelerationStructureBuildSizesKHR" ) );
- vkGetAccelerationStructureDeviceAddressKHR = PFN_vkGetAccelerationStructureDeviceAddressKHR(
- vkGetDeviceProcAddr( device, "vkGetAccelerationStructureDeviceAddressKHR" ) );
- vkGetAccelerationStructureHandleNV =
- PFN_vkGetAccelerationStructureHandleNV( vkGetDeviceProcAddr( device, "vkGetAccelerationStructureHandleNV" ) );
+ vkMergeValidationCachesEXT =
+ PFN_vkMergeValidationCachesEXT( vkGetDeviceProcAddr( device, "vkMergeValidationCachesEXT" ) );
+ vkGetValidationCacheDataEXT =
+ PFN_vkGetValidationCacheDataEXT( vkGetDeviceProcAddr( device, "vkGetValidationCacheDataEXT" ) );
+
+ //=== VK_NV_shading_rate_image ===
+ vkCmdBindShadingRateImageNV =
+ PFN_vkCmdBindShadingRateImageNV( vkGetDeviceProcAddr( device, "vkCmdBindShadingRateImageNV" ) );
+ vkCmdSetViewportShadingRatePaletteNV = PFN_vkCmdSetViewportShadingRatePaletteNV(
+ vkGetDeviceProcAddr( device, "vkCmdSetViewportShadingRatePaletteNV" ) );
+ vkCmdSetCoarseSampleOrderNV =
+ PFN_vkCmdSetCoarseSampleOrderNV( vkGetDeviceProcAddr( device, "vkCmdSetCoarseSampleOrderNV" ) );
+
+ //=== VK_NV_ray_tracing ===
+ vkCreateAccelerationStructureNV =
+ PFN_vkCreateAccelerationStructureNV( vkGetDeviceProcAddr( device, "vkCreateAccelerationStructureNV" ) );
+ vkDestroyAccelerationStructureNV =
+ PFN_vkDestroyAccelerationStructureNV( vkGetDeviceProcAddr( device, "vkDestroyAccelerationStructureNV" ) );
vkGetAccelerationStructureMemoryRequirementsNV = PFN_vkGetAccelerationStructureMemoryRequirementsNV(
vkGetDeviceProcAddr( device, "vkGetAccelerationStructureMemoryRequirementsNV" ) );
-#if defined( VK_USE_PLATFORM_ANDROID_KHR )
- vkGetAndroidHardwareBufferPropertiesANDROID = PFN_vkGetAndroidHardwareBufferPropertiesANDROID(
- vkGetDeviceProcAddr( device, "vkGetAndroidHardwareBufferPropertiesANDROID" ) );
-#endif /*VK_USE_PLATFORM_ANDROID_KHR*/
- vkGetBufferDeviceAddress =
- PFN_vkGetBufferDeviceAddress( vkGetDeviceProcAddr( device, "vkGetBufferDeviceAddress" ) );
+ vkBindAccelerationStructureMemoryNV =
+ PFN_vkBindAccelerationStructureMemoryNV( vkGetDeviceProcAddr( device, "vkBindAccelerationStructureMemoryNV" ) );
+ vkCmdBuildAccelerationStructureNV =
+ PFN_vkCmdBuildAccelerationStructureNV( vkGetDeviceProcAddr( device, "vkCmdBuildAccelerationStructureNV" ) );
+ vkCmdCopyAccelerationStructureNV =
+ PFN_vkCmdCopyAccelerationStructureNV( vkGetDeviceProcAddr( device, "vkCmdCopyAccelerationStructureNV" ) );
+ vkCmdTraceRaysNV = PFN_vkCmdTraceRaysNV( vkGetDeviceProcAddr( device, "vkCmdTraceRaysNV" ) );
+ vkCreateRayTracingPipelinesNV =
+ PFN_vkCreateRayTracingPipelinesNV( vkGetDeviceProcAddr( device, "vkCreateRayTracingPipelinesNV" ) );
+ vkGetRayTracingShaderGroupHandlesNV =
+ PFN_vkGetRayTracingShaderGroupHandlesNV( vkGetDeviceProcAddr( device, "vkGetRayTracingShaderGroupHandlesNV" ) );
+ if ( !vkGetRayTracingShaderGroupHandlesKHR )
+ vkGetRayTracingShaderGroupHandlesKHR = vkGetRayTracingShaderGroupHandlesNV;
+ vkGetAccelerationStructureHandleNV =
+ PFN_vkGetAccelerationStructureHandleNV( vkGetDeviceProcAddr( device, "vkGetAccelerationStructureHandleNV" ) );
+ vkCmdWriteAccelerationStructuresPropertiesNV = PFN_vkCmdWriteAccelerationStructuresPropertiesNV(
+ vkGetDeviceProcAddr( device, "vkCmdWriteAccelerationStructuresPropertiesNV" ) );
+ vkCompileDeferredNV = PFN_vkCompileDeferredNV( vkGetDeviceProcAddr( device, "vkCompileDeferredNV" ) );
+
+ //=== VK_KHR_maintenance3 ===
+ vkGetDescriptorSetLayoutSupportKHR =
+ PFN_vkGetDescriptorSetLayoutSupportKHR( vkGetDeviceProcAddr( device, "vkGetDescriptorSetLayoutSupportKHR" ) );
+ if ( !vkGetDescriptorSetLayoutSupport )
+ vkGetDescriptorSetLayoutSupport = vkGetDescriptorSetLayoutSupportKHR;
+
+ //=== VK_KHR_draw_indirect_count ===
+ vkCmdDrawIndirectCountKHR =
+ PFN_vkCmdDrawIndirectCountKHR( vkGetDeviceProcAddr( device, "vkCmdDrawIndirectCountKHR" ) );
+ if ( !vkCmdDrawIndirectCount )
+ vkCmdDrawIndirectCount = vkCmdDrawIndirectCountKHR;
+ vkCmdDrawIndexedIndirectCountKHR =
+ PFN_vkCmdDrawIndexedIndirectCountKHR( vkGetDeviceProcAddr( device, "vkCmdDrawIndexedIndirectCountKHR" ) );
+ if ( !vkCmdDrawIndexedIndirectCount )
+ vkCmdDrawIndexedIndirectCount = vkCmdDrawIndexedIndirectCountKHR;
+
+ //=== VK_EXT_external_memory_host ===
+ vkGetMemoryHostPointerPropertiesEXT =
+ PFN_vkGetMemoryHostPointerPropertiesEXT( vkGetDeviceProcAddr( device, "vkGetMemoryHostPointerPropertiesEXT" ) );
+
+ //=== VK_AMD_buffer_marker ===
+ vkCmdWriteBufferMarkerAMD =
+ PFN_vkCmdWriteBufferMarkerAMD( vkGetDeviceProcAddr( device, "vkCmdWriteBufferMarkerAMD" ) );
+
+ //=== VK_EXT_calibrated_timestamps ===
+ vkGetCalibratedTimestampsEXT =
+ PFN_vkGetCalibratedTimestampsEXT( vkGetDeviceProcAddr( device, "vkGetCalibratedTimestampsEXT" ) );
+
+ //=== VK_NV_mesh_shader ===
+ vkCmdDrawMeshTasksNV = PFN_vkCmdDrawMeshTasksNV( vkGetDeviceProcAddr( device, "vkCmdDrawMeshTasksNV" ) );
+ vkCmdDrawMeshTasksIndirectNV =
+ PFN_vkCmdDrawMeshTasksIndirectNV( vkGetDeviceProcAddr( device, "vkCmdDrawMeshTasksIndirectNV" ) );
+ vkCmdDrawMeshTasksIndirectCountNV =
+ PFN_vkCmdDrawMeshTasksIndirectCountNV( vkGetDeviceProcAddr( device, "vkCmdDrawMeshTasksIndirectCountNV" ) );
+
+ //=== VK_NV_scissor_exclusive ===
+ vkCmdSetExclusiveScissorNV =
+ PFN_vkCmdSetExclusiveScissorNV( vkGetDeviceProcAddr( device, "vkCmdSetExclusiveScissorNV" ) );
+
+ //=== VK_NV_device_diagnostic_checkpoints ===
+ vkCmdSetCheckpointNV = PFN_vkCmdSetCheckpointNV( vkGetDeviceProcAddr( device, "vkCmdSetCheckpointNV" ) );
+ vkGetQueueCheckpointDataNV =
+ PFN_vkGetQueueCheckpointDataNV( vkGetDeviceProcAddr( device, "vkGetQueueCheckpointDataNV" ) );
+
+ //=== VK_KHR_timeline_semaphore ===
+ vkGetSemaphoreCounterValueKHR =
+ PFN_vkGetSemaphoreCounterValueKHR( vkGetDeviceProcAddr( device, "vkGetSemaphoreCounterValueKHR" ) );
+ if ( !vkGetSemaphoreCounterValue )
+ vkGetSemaphoreCounterValue = vkGetSemaphoreCounterValueKHR;
+ vkWaitSemaphoresKHR = PFN_vkWaitSemaphoresKHR( vkGetDeviceProcAddr( device, "vkWaitSemaphoresKHR" ) );
+ if ( !vkWaitSemaphores )
+ vkWaitSemaphores = vkWaitSemaphoresKHR;
+ vkSignalSemaphoreKHR = PFN_vkSignalSemaphoreKHR( vkGetDeviceProcAddr( device, "vkSignalSemaphoreKHR" ) );
+ if ( !vkSignalSemaphore )
+ vkSignalSemaphore = vkSignalSemaphoreKHR;
+
+ //=== VK_INTEL_performance_query ===
+ vkInitializePerformanceApiINTEL =
+ PFN_vkInitializePerformanceApiINTEL( vkGetDeviceProcAddr( device, "vkInitializePerformanceApiINTEL" ) );
+ vkUninitializePerformanceApiINTEL =
+ PFN_vkUninitializePerformanceApiINTEL( vkGetDeviceProcAddr( device, "vkUninitializePerformanceApiINTEL" ) );
+ vkCmdSetPerformanceMarkerINTEL =
+ PFN_vkCmdSetPerformanceMarkerINTEL( vkGetDeviceProcAddr( device, "vkCmdSetPerformanceMarkerINTEL" ) );
+ vkCmdSetPerformanceStreamMarkerINTEL = PFN_vkCmdSetPerformanceStreamMarkerINTEL(
+ vkGetDeviceProcAddr( device, "vkCmdSetPerformanceStreamMarkerINTEL" ) );
+ vkCmdSetPerformanceOverrideINTEL =
+ PFN_vkCmdSetPerformanceOverrideINTEL( vkGetDeviceProcAddr( device, "vkCmdSetPerformanceOverrideINTEL" ) );
+ vkAcquirePerformanceConfigurationINTEL = PFN_vkAcquirePerformanceConfigurationINTEL(
+ vkGetDeviceProcAddr( device, "vkAcquirePerformanceConfigurationINTEL" ) );
+ vkReleasePerformanceConfigurationINTEL = PFN_vkReleasePerformanceConfigurationINTEL(
+ vkGetDeviceProcAddr( device, "vkReleasePerformanceConfigurationINTEL" ) );
+ vkQueueSetPerformanceConfigurationINTEL = PFN_vkQueueSetPerformanceConfigurationINTEL(
+ vkGetDeviceProcAddr( device, "vkQueueSetPerformanceConfigurationINTEL" ) );
+ vkGetPerformanceParameterINTEL =
+ PFN_vkGetPerformanceParameterINTEL( vkGetDeviceProcAddr( device, "vkGetPerformanceParameterINTEL" ) );
+
+ //=== VK_AMD_display_native_hdr ===
+ vkSetLocalDimmingAMD = PFN_vkSetLocalDimmingAMD( vkGetDeviceProcAddr( device, "vkSetLocalDimmingAMD" ) );
+
+ //=== VK_KHR_fragment_shading_rate ===
+ vkCmdSetFragmentShadingRateKHR =
+ PFN_vkCmdSetFragmentShadingRateKHR( vkGetDeviceProcAddr( device, "vkCmdSetFragmentShadingRateKHR" ) );
+
+ //=== VK_EXT_buffer_device_address ===
vkGetBufferDeviceAddressEXT =
PFN_vkGetBufferDeviceAddressEXT( vkGetDeviceProcAddr( device, "vkGetBufferDeviceAddressEXT" ) );
if ( !vkGetBufferDeviceAddress )
vkGetBufferDeviceAddress = vkGetBufferDeviceAddressEXT;
+
+ //=== VK_KHR_present_wait ===
+ vkWaitForPresentKHR = PFN_vkWaitForPresentKHR( vkGetDeviceProcAddr( device, "vkWaitForPresentKHR" ) );
+
+#if defined( VK_USE_PLATFORM_WIN32_KHR )
+ //=== VK_EXT_full_screen_exclusive ===
+ vkAcquireFullScreenExclusiveModeEXT =
+ PFN_vkAcquireFullScreenExclusiveModeEXT( vkGetDeviceProcAddr( device, "vkAcquireFullScreenExclusiveModeEXT" ) );
+ vkReleaseFullScreenExclusiveModeEXT =
+ PFN_vkReleaseFullScreenExclusiveModeEXT( vkGetDeviceProcAddr( device, "vkReleaseFullScreenExclusiveModeEXT" ) );
+ vkGetDeviceGroupSurfacePresentModes2EXT = PFN_vkGetDeviceGroupSurfacePresentModes2EXT(
+ vkGetDeviceProcAddr( device, "vkGetDeviceGroupSurfacePresentModes2EXT" ) );
+#endif /*VK_USE_PLATFORM_WIN32_KHR*/
+
+ //=== VK_KHR_buffer_device_address ===
vkGetBufferDeviceAddressKHR =
PFN_vkGetBufferDeviceAddressKHR( vkGetDeviceProcAddr( device, "vkGetBufferDeviceAddressKHR" ) );
if ( !vkGetBufferDeviceAddress )
vkGetBufferDeviceAddress = vkGetBufferDeviceAddressKHR;
- vkGetBufferMemoryRequirements =
- PFN_vkGetBufferMemoryRequirements( vkGetDeviceProcAddr( device, "vkGetBufferMemoryRequirements" ) );
- vkGetBufferMemoryRequirements2 =
- PFN_vkGetBufferMemoryRequirements2( vkGetDeviceProcAddr( device, "vkGetBufferMemoryRequirements2" ) );
- vkGetBufferMemoryRequirements2KHR =
- PFN_vkGetBufferMemoryRequirements2KHR( vkGetDeviceProcAddr( device, "vkGetBufferMemoryRequirements2KHR" ) );
- if ( !vkGetBufferMemoryRequirements2 )
- vkGetBufferMemoryRequirements2 = vkGetBufferMemoryRequirements2KHR;
- vkGetBufferOpaqueCaptureAddress =
- PFN_vkGetBufferOpaqueCaptureAddress( vkGetDeviceProcAddr( device, "vkGetBufferOpaqueCaptureAddress" ) );
vkGetBufferOpaqueCaptureAddressKHR =
PFN_vkGetBufferOpaqueCaptureAddressKHR( vkGetDeviceProcAddr( device, "vkGetBufferOpaqueCaptureAddressKHR" ) );
if ( !vkGetBufferOpaqueCaptureAddress )
vkGetBufferOpaqueCaptureAddress = vkGetBufferOpaqueCaptureAddressKHR;
- vkGetCalibratedTimestampsEXT =
- PFN_vkGetCalibratedTimestampsEXT( vkGetDeviceProcAddr( device, "vkGetCalibratedTimestampsEXT" ) );
- vkGetDeferredOperationMaxConcurrencyKHR = PFN_vkGetDeferredOperationMaxConcurrencyKHR(
- vkGetDeviceProcAddr( device, "vkGetDeferredOperationMaxConcurrencyKHR" ) );
- vkGetDeferredOperationResultKHR =
- PFN_vkGetDeferredOperationResultKHR( vkGetDeviceProcAddr( device, "vkGetDeferredOperationResultKHR" ) );
- vkGetDescriptorSetLayoutSupport =
- PFN_vkGetDescriptorSetLayoutSupport( vkGetDeviceProcAddr( device, "vkGetDescriptorSetLayoutSupport" ) );
- vkGetDescriptorSetLayoutSupportKHR =
- PFN_vkGetDescriptorSetLayoutSupportKHR( vkGetDeviceProcAddr( device, "vkGetDescriptorSetLayoutSupportKHR" ) );
- if ( !vkGetDescriptorSetLayoutSupport )
- vkGetDescriptorSetLayoutSupport = vkGetDescriptorSetLayoutSupportKHR;
- vkGetDeviceAccelerationStructureCompatibilityKHR = PFN_vkGetDeviceAccelerationStructureCompatibilityKHR(
- vkGetDeviceProcAddr( device, "vkGetDeviceAccelerationStructureCompatibilityKHR" ) );
- vkGetDeviceGroupPeerMemoryFeatures =
- PFN_vkGetDeviceGroupPeerMemoryFeatures( vkGetDeviceProcAddr( device, "vkGetDeviceGroupPeerMemoryFeatures" ) );
- vkGetDeviceGroupPeerMemoryFeaturesKHR = PFN_vkGetDeviceGroupPeerMemoryFeaturesKHR(
- vkGetDeviceProcAddr( device, "vkGetDeviceGroupPeerMemoryFeaturesKHR" ) );
- if ( !vkGetDeviceGroupPeerMemoryFeatures )
- vkGetDeviceGroupPeerMemoryFeatures = vkGetDeviceGroupPeerMemoryFeaturesKHR;
- vkGetDeviceGroupPresentCapabilitiesKHR = PFN_vkGetDeviceGroupPresentCapabilitiesKHR(
- vkGetDeviceProcAddr( device, "vkGetDeviceGroupPresentCapabilitiesKHR" ) );
-#if defined( VK_USE_PLATFORM_WIN32_KHR )
- vkGetDeviceGroupSurfacePresentModes2EXT = PFN_vkGetDeviceGroupSurfacePresentModes2EXT(
- vkGetDeviceProcAddr( device, "vkGetDeviceGroupSurfacePresentModes2EXT" ) );
-#endif /*VK_USE_PLATFORM_WIN32_KHR*/
- vkGetDeviceGroupSurfacePresentModesKHR = PFN_vkGetDeviceGroupSurfacePresentModesKHR(
- vkGetDeviceProcAddr( device, "vkGetDeviceGroupSurfacePresentModesKHR" ) );
- vkGetDeviceMemoryCommitment =
- PFN_vkGetDeviceMemoryCommitment( vkGetDeviceProcAddr( device, "vkGetDeviceMemoryCommitment" ) );
- vkGetDeviceMemoryOpaqueCaptureAddress = PFN_vkGetDeviceMemoryOpaqueCaptureAddress(
- vkGetDeviceProcAddr( device, "vkGetDeviceMemoryOpaqueCaptureAddress" ) );
vkGetDeviceMemoryOpaqueCaptureAddressKHR = PFN_vkGetDeviceMemoryOpaqueCaptureAddressKHR(
vkGetDeviceProcAddr( device, "vkGetDeviceMemoryOpaqueCaptureAddressKHR" ) );
if ( !vkGetDeviceMemoryOpaqueCaptureAddress )
vkGetDeviceMemoryOpaqueCaptureAddress = vkGetDeviceMemoryOpaqueCaptureAddressKHR;
- vkGetDeviceProcAddr = PFN_vkGetDeviceProcAddr( vkGetDeviceProcAddr( device, "vkGetDeviceProcAddr" ) );
- vkGetDeviceQueue = PFN_vkGetDeviceQueue( vkGetDeviceProcAddr( device, "vkGetDeviceQueue" ) );
- vkGetDeviceQueue2 = PFN_vkGetDeviceQueue2( vkGetDeviceProcAddr( device, "vkGetDeviceQueue2" ) );
- vkGetEventStatus = PFN_vkGetEventStatus( vkGetDeviceProcAddr( device, "vkGetEventStatus" ) );
- vkGetFenceFdKHR = PFN_vkGetFenceFdKHR( vkGetDeviceProcAddr( device, "vkGetFenceFdKHR" ) );
- vkGetFenceStatus = PFN_vkGetFenceStatus( vkGetDeviceProcAddr( device, "vkGetFenceStatus" ) );
-#if defined( VK_USE_PLATFORM_WIN32_KHR )
- vkGetFenceWin32HandleKHR =
- PFN_vkGetFenceWin32HandleKHR( vkGetDeviceProcAddr( device, "vkGetFenceWin32HandleKHR" ) );
-#endif /*VK_USE_PLATFORM_WIN32_KHR*/
- vkGetGeneratedCommandsMemoryRequirementsNV = PFN_vkGetGeneratedCommandsMemoryRequirementsNV(
- vkGetDeviceProcAddr( device, "vkGetGeneratedCommandsMemoryRequirementsNV" ) );
- vkGetImageDrmFormatModifierPropertiesEXT = PFN_vkGetImageDrmFormatModifierPropertiesEXT(
- vkGetDeviceProcAddr( device, "vkGetImageDrmFormatModifierPropertiesEXT" ) );
- vkGetImageMemoryRequirements =
- PFN_vkGetImageMemoryRequirements( vkGetDeviceProcAddr( device, "vkGetImageMemoryRequirements" ) );
- vkGetImageMemoryRequirements2 =
- PFN_vkGetImageMemoryRequirements2( vkGetDeviceProcAddr( device, "vkGetImageMemoryRequirements2" ) );
- vkGetImageMemoryRequirements2KHR =
- PFN_vkGetImageMemoryRequirements2KHR( vkGetDeviceProcAddr( device, "vkGetImageMemoryRequirements2KHR" ) );
- if ( !vkGetImageMemoryRequirements2 )
- vkGetImageMemoryRequirements2 = vkGetImageMemoryRequirements2KHR;
- vkGetImageSparseMemoryRequirements =
- PFN_vkGetImageSparseMemoryRequirements( vkGetDeviceProcAddr( device, "vkGetImageSparseMemoryRequirements" ) );
- vkGetImageSparseMemoryRequirements2 =
- PFN_vkGetImageSparseMemoryRequirements2( vkGetDeviceProcAddr( device, "vkGetImageSparseMemoryRequirements2" ) );
- vkGetImageSparseMemoryRequirements2KHR = PFN_vkGetImageSparseMemoryRequirements2KHR(
- vkGetDeviceProcAddr( device, "vkGetImageSparseMemoryRequirements2KHR" ) );
- if ( !vkGetImageSparseMemoryRequirements2 )
- vkGetImageSparseMemoryRequirements2 = vkGetImageSparseMemoryRequirements2KHR;
- vkGetImageSubresourceLayout =
- PFN_vkGetImageSubresourceLayout( vkGetDeviceProcAddr( device, "vkGetImageSubresourceLayout" ) );
- vkGetImageViewAddressNVX =
- PFN_vkGetImageViewAddressNVX( vkGetDeviceProcAddr( device, "vkGetImageViewAddressNVX" ) );
- vkGetImageViewHandleNVX = PFN_vkGetImageViewHandleNVX( vkGetDeviceProcAddr( device, "vkGetImageViewHandleNVX" ) );
-#if defined( VK_USE_PLATFORM_ANDROID_KHR )
- vkGetMemoryAndroidHardwareBufferANDROID = PFN_vkGetMemoryAndroidHardwareBufferANDROID(
- vkGetDeviceProcAddr( device, "vkGetMemoryAndroidHardwareBufferANDROID" ) );
-#endif /*VK_USE_PLATFORM_ANDROID_KHR*/
- vkGetMemoryFdKHR = PFN_vkGetMemoryFdKHR( vkGetDeviceProcAddr( device, "vkGetMemoryFdKHR" ) );
- vkGetMemoryFdPropertiesKHR =
- PFN_vkGetMemoryFdPropertiesKHR( vkGetDeviceProcAddr( device, "vkGetMemoryFdPropertiesKHR" ) );
- vkGetMemoryHostPointerPropertiesEXT =
- PFN_vkGetMemoryHostPointerPropertiesEXT( vkGetDeviceProcAddr( device, "vkGetMemoryHostPointerPropertiesEXT" ) );
-#if defined( VK_USE_PLATFORM_WIN32_KHR )
- vkGetMemoryWin32HandleKHR =
- PFN_vkGetMemoryWin32HandleKHR( vkGetDeviceProcAddr( device, "vkGetMemoryWin32HandleKHR" ) );
-#endif /*VK_USE_PLATFORM_WIN32_KHR*/
-#if defined( VK_USE_PLATFORM_WIN32_KHR )
- vkGetMemoryWin32HandleNV =
- PFN_vkGetMemoryWin32HandleNV( vkGetDeviceProcAddr( device, "vkGetMemoryWin32HandleNV" ) );
-#endif /*VK_USE_PLATFORM_WIN32_KHR*/
-#if defined( VK_USE_PLATFORM_WIN32_KHR )
- vkGetMemoryWin32HandlePropertiesKHR =
- PFN_vkGetMemoryWin32HandlePropertiesKHR( vkGetDeviceProcAddr( device, "vkGetMemoryWin32HandlePropertiesKHR" ) );
-#endif /*VK_USE_PLATFORM_WIN32_KHR*/
-#if defined( VK_USE_PLATFORM_FUCHSIA )
- vkGetMemoryZirconHandleFUCHSIA =
- PFN_vkGetMemoryZirconHandleFUCHSIA( vkGetDeviceProcAddr( device, "vkGetMemoryZirconHandleFUCHSIA" ) );
-#endif /*VK_USE_PLATFORM_FUCHSIA*/
-#if defined( VK_USE_PLATFORM_FUCHSIA )
- vkGetMemoryZirconHandlePropertiesFUCHSIA = PFN_vkGetMemoryZirconHandlePropertiesFUCHSIA(
- vkGetDeviceProcAddr( device, "vkGetMemoryZirconHandlePropertiesFUCHSIA" ) );
-#endif /*VK_USE_PLATFORM_FUCHSIA*/
- vkGetPastPresentationTimingGOOGLE =
- PFN_vkGetPastPresentationTimingGOOGLE( vkGetDeviceProcAddr( device, "vkGetPastPresentationTimingGOOGLE" ) );
- vkGetPerformanceParameterINTEL =
- PFN_vkGetPerformanceParameterINTEL( vkGetDeviceProcAddr( device, "vkGetPerformanceParameterINTEL" ) );
- vkGetPipelineCacheData = PFN_vkGetPipelineCacheData( vkGetDeviceProcAddr( device, "vkGetPipelineCacheData" ) );
- vkGetPipelineExecutableInternalRepresentationsKHR = PFN_vkGetPipelineExecutableInternalRepresentationsKHR(
- vkGetDeviceProcAddr( device, "vkGetPipelineExecutableInternalRepresentationsKHR" ) );
+
+ //=== VK_EXT_line_rasterization ===
+ vkCmdSetLineStippleEXT = PFN_vkCmdSetLineStippleEXT( vkGetDeviceProcAddr( device, "vkCmdSetLineStippleEXT" ) );
+
+ //=== VK_EXT_host_query_reset ===
+ vkResetQueryPoolEXT = PFN_vkResetQueryPoolEXT( vkGetDeviceProcAddr( device, "vkResetQueryPoolEXT" ) );
+ if ( !vkResetQueryPool )
+ vkResetQueryPool = vkResetQueryPoolEXT;
+
+ //=== VK_EXT_extended_dynamic_state ===
+ vkCmdSetCullModeEXT = PFN_vkCmdSetCullModeEXT( vkGetDeviceProcAddr( device, "vkCmdSetCullModeEXT" ) );
+ vkCmdSetFrontFaceEXT = PFN_vkCmdSetFrontFaceEXT( vkGetDeviceProcAddr( device, "vkCmdSetFrontFaceEXT" ) );
+ vkCmdSetPrimitiveTopologyEXT =
+ PFN_vkCmdSetPrimitiveTopologyEXT( vkGetDeviceProcAddr( device, "vkCmdSetPrimitiveTopologyEXT" ) );
+ vkCmdSetViewportWithCountEXT =
+ PFN_vkCmdSetViewportWithCountEXT( vkGetDeviceProcAddr( device, "vkCmdSetViewportWithCountEXT" ) );
+ vkCmdSetScissorWithCountEXT =
+ PFN_vkCmdSetScissorWithCountEXT( vkGetDeviceProcAddr( device, "vkCmdSetScissorWithCountEXT" ) );
+ vkCmdBindVertexBuffers2EXT =
+ PFN_vkCmdBindVertexBuffers2EXT( vkGetDeviceProcAddr( device, "vkCmdBindVertexBuffers2EXT" ) );
+ vkCmdSetDepthTestEnableEXT =
+ PFN_vkCmdSetDepthTestEnableEXT( vkGetDeviceProcAddr( device, "vkCmdSetDepthTestEnableEXT" ) );
+ vkCmdSetDepthWriteEnableEXT =
+ PFN_vkCmdSetDepthWriteEnableEXT( vkGetDeviceProcAddr( device, "vkCmdSetDepthWriteEnableEXT" ) );
+ vkCmdSetDepthCompareOpEXT =
+ PFN_vkCmdSetDepthCompareOpEXT( vkGetDeviceProcAddr( device, "vkCmdSetDepthCompareOpEXT" ) );
+ vkCmdSetDepthBoundsTestEnableEXT =
+ PFN_vkCmdSetDepthBoundsTestEnableEXT( vkGetDeviceProcAddr( device, "vkCmdSetDepthBoundsTestEnableEXT" ) );
+ vkCmdSetStencilTestEnableEXT =
+ PFN_vkCmdSetStencilTestEnableEXT( vkGetDeviceProcAddr( device, "vkCmdSetStencilTestEnableEXT" ) );
+ vkCmdSetStencilOpEXT = PFN_vkCmdSetStencilOpEXT( vkGetDeviceProcAddr( device, "vkCmdSetStencilOpEXT" ) );
+
+ //=== VK_KHR_deferred_host_operations ===
+ vkCreateDeferredOperationKHR =
+ PFN_vkCreateDeferredOperationKHR( vkGetDeviceProcAddr( device, "vkCreateDeferredOperationKHR" ) );
+ vkDestroyDeferredOperationKHR =
+ PFN_vkDestroyDeferredOperationKHR( vkGetDeviceProcAddr( device, "vkDestroyDeferredOperationKHR" ) );
+ vkGetDeferredOperationMaxConcurrencyKHR = PFN_vkGetDeferredOperationMaxConcurrencyKHR(
+ vkGetDeviceProcAddr( device, "vkGetDeferredOperationMaxConcurrencyKHR" ) );
+ vkGetDeferredOperationResultKHR =
+ PFN_vkGetDeferredOperationResultKHR( vkGetDeviceProcAddr( device, "vkGetDeferredOperationResultKHR" ) );
+ vkDeferredOperationJoinKHR =
+ PFN_vkDeferredOperationJoinKHR( vkGetDeviceProcAddr( device, "vkDeferredOperationJoinKHR" ) );
+
+ //=== VK_KHR_pipeline_executable_properties ===
vkGetPipelineExecutablePropertiesKHR = PFN_vkGetPipelineExecutablePropertiesKHR(
vkGetDeviceProcAddr( device, "vkGetPipelineExecutablePropertiesKHR" ) );
vkGetPipelineExecutableStatisticsKHR = PFN_vkGetPipelineExecutableStatisticsKHR(
vkGetDeviceProcAddr( device, "vkGetPipelineExecutableStatisticsKHR" ) );
- vkGetPrivateDataEXT = PFN_vkGetPrivateDataEXT( vkGetDeviceProcAddr( device, "vkGetPrivateDataEXT" ) );
- vkGetQueryPoolResults = PFN_vkGetQueryPoolResults( vkGetDeviceProcAddr( device, "vkGetQueryPoolResults" ) );
+ vkGetPipelineExecutableInternalRepresentationsKHR = PFN_vkGetPipelineExecutableInternalRepresentationsKHR(
+ vkGetDeviceProcAddr( device, "vkGetPipelineExecutableInternalRepresentationsKHR" ) );
+
+ //=== VK_NV_device_generated_commands ===
+ vkGetGeneratedCommandsMemoryRequirementsNV = PFN_vkGetGeneratedCommandsMemoryRequirementsNV(
+ vkGetDeviceProcAddr( device, "vkGetGeneratedCommandsMemoryRequirementsNV" ) );
+ vkCmdPreprocessGeneratedCommandsNV =
+ PFN_vkCmdPreprocessGeneratedCommandsNV( vkGetDeviceProcAddr( device, "vkCmdPreprocessGeneratedCommandsNV" ) );
+ vkCmdExecuteGeneratedCommandsNV =
+ PFN_vkCmdExecuteGeneratedCommandsNV( vkGetDeviceProcAddr( device, "vkCmdExecuteGeneratedCommandsNV" ) );
+ vkCmdBindPipelineShaderGroupNV =
+ PFN_vkCmdBindPipelineShaderGroupNV( vkGetDeviceProcAddr( device, "vkCmdBindPipelineShaderGroupNV" ) );
+ vkCreateIndirectCommandsLayoutNV =
+ PFN_vkCreateIndirectCommandsLayoutNV( vkGetDeviceProcAddr( device, "vkCreateIndirectCommandsLayoutNV" ) );
+ vkDestroyIndirectCommandsLayoutNV =
+ PFN_vkDestroyIndirectCommandsLayoutNV( vkGetDeviceProcAddr( device, "vkDestroyIndirectCommandsLayoutNV" ) );
+
+ //=== VK_EXT_private_data ===
+ vkCreatePrivateDataSlotEXT =
+ PFN_vkCreatePrivateDataSlotEXT( vkGetDeviceProcAddr( device, "vkCreatePrivateDataSlotEXT" ) );
+ vkDestroyPrivateDataSlotEXT =
+ PFN_vkDestroyPrivateDataSlotEXT( vkGetDeviceProcAddr( device, "vkDestroyPrivateDataSlotEXT" ) );
+ vkSetPrivateDataEXT = PFN_vkSetPrivateDataEXT( vkGetDeviceProcAddr( device, "vkSetPrivateDataEXT" ) );
+ vkGetPrivateDataEXT = PFN_vkGetPrivateDataEXT( vkGetDeviceProcAddr( device, "vkGetPrivateDataEXT" ) );
+
+#if defined( VK_ENABLE_BETA_EXTENSIONS )
+ //=== VK_KHR_video_encode_queue ===
+ vkCmdEncodeVideoKHR = PFN_vkCmdEncodeVideoKHR( vkGetDeviceProcAddr( device, "vkCmdEncodeVideoKHR" ) );
+#endif /*VK_ENABLE_BETA_EXTENSIONS*/
+
+ //=== VK_KHR_synchronization2 ===
+ vkCmdSetEvent2KHR = PFN_vkCmdSetEvent2KHR( vkGetDeviceProcAddr( device, "vkCmdSetEvent2KHR" ) );
+ vkCmdResetEvent2KHR = PFN_vkCmdResetEvent2KHR( vkGetDeviceProcAddr( device, "vkCmdResetEvent2KHR" ) );
+ vkCmdWaitEvents2KHR = PFN_vkCmdWaitEvents2KHR( vkGetDeviceProcAddr( device, "vkCmdWaitEvents2KHR" ) );
+ vkCmdPipelineBarrier2KHR =
+ PFN_vkCmdPipelineBarrier2KHR( vkGetDeviceProcAddr( device, "vkCmdPipelineBarrier2KHR" ) );
+ vkCmdWriteTimestamp2KHR = PFN_vkCmdWriteTimestamp2KHR( vkGetDeviceProcAddr( device, "vkCmdWriteTimestamp2KHR" ) );
+ vkQueueSubmit2KHR = PFN_vkQueueSubmit2KHR( vkGetDeviceProcAddr( device, "vkQueueSubmit2KHR" ) );
+ vkCmdWriteBufferMarker2AMD =
+ PFN_vkCmdWriteBufferMarker2AMD( vkGetDeviceProcAddr( device, "vkCmdWriteBufferMarker2AMD" ) );
vkGetQueueCheckpointData2NV =
PFN_vkGetQueueCheckpointData2NV( vkGetDeviceProcAddr( device, "vkGetQueueCheckpointData2NV" ) );
- vkGetQueueCheckpointDataNV =
- PFN_vkGetQueueCheckpointDataNV( vkGetDeviceProcAddr( device, "vkGetQueueCheckpointDataNV" ) );
- vkGetRayTracingCaptureReplayShaderGroupHandlesKHR = PFN_vkGetRayTracingCaptureReplayShaderGroupHandlesKHR(
- vkGetDeviceProcAddr( device, "vkGetRayTracingCaptureReplayShaderGroupHandlesKHR" ) );
+
+ //=== VK_NV_fragment_shading_rate_enums ===
+ vkCmdSetFragmentShadingRateEnumNV =
+ PFN_vkCmdSetFragmentShadingRateEnumNV( vkGetDeviceProcAddr( device, "vkCmdSetFragmentShadingRateEnumNV" ) );
+
+ //=== VK_KHR_copy_commands2 ===
+ vkCmdCopyBuffer2KHR = PFN_vkCmdCopyBuffer2KHR( vkGetDeviceProcAddr( device, "vkCmdCopyBuffer2KHR" ) );
+ vkCmdCopyImage2KHR = PFN_vkCmdCopyImage2KHR( vkGetDeviceProcAddr( device, "vkCmdCopyImage2KHR" ) );
+ vkCmdCopyBufferToImage2KHR =
+ PFN_vkCmdCopyBufferToImage2KHR( vkGetDeviceProcAddr( device, "vkCmdCopyBufferToImage2KHR" ) );
+ vkCmdCopyImageToBuffer2KHR =
+ PFN_vkCmdCopyImageToBuffer2KHR( vkGetDeviceProcAddr( device, "vkCmdCopyImageToBuffer2KHR" ) );
+ vkCmdBlitImage2KHR = PFN_vkCmdBlitImage2KHR( vkGetDeviceProcAddr( device, "vkCmdBlitImage2KHR" ) );
+ vkCmdResolveImage2KHR = PFN_vkCmdResolveImage2KHR( vkGetDeviceProcAddr( device, "vkCmdResolveImage2KHR" ) );
+
+ //=== VK_KHR_ray_tracing_pipeline ===
+ vkCmdTraceRaysKHR = PFN_vkCmdTraceRaysKHR( vkGetDeviceProcAddr( device, "vkCmdTraceRaysKHR" ) );
+ vkCreateRayTracingPipelinesKHR =
+ PFN_vkCreateRayTracingPipelinesKHR( vkGetDeviceProcAddr( device, "vkCreateRayTracingPipelinesKHR" ) );
vkGetRayTracingShaderGroupHandlesKHR = PFN_vkGetRayTracingShaderGroupHandlesKHR(
vkGetDeviceProcAddr( device, "vkGetRayTracingShaderGroupHandlesKHR" ) );
- vkGetRayTracingShaderGroupHandlesNV =
- PFN_vkGetRayTracingShaderGroupHandlesNV( vkGetDeviceProcAddr( device, "vkGetRayTracingShaderGroupHandlesNV" ) );
- if ( !vkGetRayTracingShaderGroupHandlesKHR )
- vkGetRayTracingShaderGroupHandlesKHR = vkGetRayTracingShaderGroupHandlesNV;
+ vkGetRayTracingCaptureReplayShaderGroupHandlesKHR = PFN_vkGetRayTracingCaptureReplayShaderGroupHandlesKHR(
+ vkGetDeviceProcAddr( device, "vkGetRayTracingCaptureReplayShaderGroupHandlesKHR" ) );
+ vkCmdTraceRaysIndirectKHR =
+ PFN_vkCmdTraceRaysIndirectKHR( vkGetDeviceProcAddr( device, "vkCmdTraceRaysIndirectKHR" ) );
vkGetRayTracingShaderGroupStackSizeKHR = PFN_vkGetRayTracingShaderGroupStackSizeKHR(
vkGetDeviceProcAddr( device, "vkGetRayTracingShaderGroupStackSizeKHR" ) );
- vkGetRefreshCycleDurationGOOGLE =
- PFN_vkGetRefreshCycleDurationGOOGLE( vkGetDeviceProcAddr( device, "vkGetRefreshCycleDurationGOOGLE" ) );
- vkGetRenderAreaGranularity =
- PFN_vkGetRenderAreaGranularity( vkGetDeviceProcAddr( device, "vkGetRenderAreaGranularity" ) );
- vkGetSemaphoreCounterValue =
- PFN_vkGetSemaphoreCounterValue( vkGetDeviceProcAddr( device, "vkGetSemaphoreCounterValue" ) );
- vkGetSemaphoreCounterValueKHR =
- PFN_vkGetSemaphoreCounterValueKHR( vkGetDeviceProcAddr( device, "vkGetSemaphoreCounterValueKHR" ) );
- if ( !vkGetSemaphoreCounterValue )
- vkGetSemaphoreCounterValue = vkGetSemaphoreCounterValueKHR;
- vkGetSemaphoreFdKHR = PFN_vkGetSemaphoreFdKHR( vkGetDeviceProcAddr( device, "vkGetSemaphoreFdKHR" ) );
-#if defined( VK_USE_PLATFORM_WIN32_KHR )
- vkGetSemaphoreWin32HandleKHR =
- PFN_vkGetSemaphoreWin32HandleKHR( vkGetDeviceProcAddr( device, "vkGetSemaphoreWin32HandleKHR" ) );
-#endif /*VK_USE_PLATFORM_WIN32_KHR*/
+ vkCmdSetRayTracingPipelineStackSizeKHR = PFN_vkCmdSetRayTracingPipelineStackSizeKHR(
+ vkGetDeviceProcAddr( device, "vkCmdSetRayTracingPipelineStackSizeKHR" ) );
+
+ //=== VK_EXT_vertex_input_dynamic_state ===
+ vkCmdSetVertexInputEXT = PFN_vkCmdSetVertexInputEXT( vkGetDeviceProcAddr( device, "vkCmdSetVertexInputEXT" ) );
+
#if defined( VK_USE_PLATFORM_FUCHSIA )
- vkGetSemaphoreZirconHandleFUCHSIA =
- PFN_vkGetSemaphoreZirconHandleFUCHSIA( vkGetDeviceProcAddr( device, "vkGetSemaphoreZirconHandleFUCHSIA" ) );
+ //=== VK_FUCHSIA_external_memory ===
+ vkGetMemoryZirconHandleFUCHSIA =
+ PFN_vkGetMemoryZirconHandleFUCHSIA( vkGetDeviceProcAddr( device, "vkGetMemoryZirconHandleFUCHSIA" ) );
+ vkGetMemoryZirconHandlePropertiesFUCHSIA = PFN_vkGetMemoryZirconHandlePropertiesFUCHSIA(
+ vkGetDeviceProcAddr( device, "vkGetMemoryZirconHandlePropertiesFUCHSIA" ) );
#endif /*VK_USE_PLATFORM_FUCHSIA*/
- vkGetShaderInfoAMD = PFN_vkGetShaderInfoAMD( vkGetDeviceProcAddr( device, "vkGetShaderInfoAMD" ) );
- vkGetSubpassShadingMaxWorkgroupSizeHUAWEI = PFN_vkGetSubpassShadingMaxWorkgroupSizeHUAWEI(
- vkGetDeviceProcAddr( device, "vkGetSubpassShadingMaxWorkgroupSizeHUAWEI" ) );
- vkGetSwapchainCounterEXT =
- PFN_vkGetSwapchainCounterEXT( vkGetDeviceProcAddr( device, "vkGetSwapchainCounterEXT" ) );
- vkGetSwapchainImagesKHR = PFN_vkGetSwapchainImagesKHR( vkGetDeviceProcAddr( device, "vkGetSwapchainImagesKHR" ) );
- vkGetSwapchainStatusKHR = PFN_vkGetSwapchainStatusKHR( vkGetDeviceProcAddr( device, "vkGetSwapchainStatusKHR" ) );
- vkGetValidationCacheDataEXT =
- PFN_vkGetValidationCacheDataEXT( vkGetDeviceProcAddr( device, "vkGetValidationCacheDataEXT" ) );
-#if defined( VK_ENABLE_BETA_EXTENSIONS )
- vkGetVideoSessionMemoryRequirementsKHR = PFN_vkGetVideoSessionMemoryRequirementsKHR(
- vkGetDeviceProcAddr( device, "vkGetVideoSessionMemoryRequirementsKHR" ) );
-#endif /*VK_ENABLE_BETA_EXTENSIONS*/
- vkImportFenceFdKHR = PFN_vkImportFenceFdKHR( vkGetDeviceProcAddr( device, "vkImportFenceFdKHR" ) );
-#if defined( VK_USE_PLATFORM_WIN32_KHR )
- vkImportFenceWin32HandleKHR =
- PFN_vkImportFenceWin32HandleKHR( vkGetDeviceProcAddr( device, "vkImportFenceWin32HandleKHR" ) );
-#endif /*VK_USE_PLATFORM_WIN32_KHR*/
- vkImportSemaphoreFdKHR = PFN_vkImportSemaphoreFdKHR( vkGetDeviceProcAddr( device, "vkImportSemaphoreFdKHR" ) );
-#if defined( VK_USE_PLATFORM_WIN32_KHR )
- vkImportSemaphoreWin32HandleKHR =
- PFN_vkImportSemaphoreWin32HandleKHR( vkGetDeviceProcAddr( device, "vkImportSemaphoreWin32HandleKHR" ) );
-#endif /*VK_USE_PLATFORM_WIN32_KHR*/
+
#if defined( VK_USE_PLATFORM_FUCHSIA )
+ //=== VK_FUCHSIA_external_semaphore ===
vkImportSemaphoreZirconHandleFUCHSIA = PFN_vkImportSemaphoreZirconHandleFUCHSIA(
vkGetDeviceProcAddr( device, "vkImportSemaphoreZirconHandleFUCHSIA" ) );
+ vkGetSemaphoreZirconHandleFUCHSIA =
+ PFN_vkGetSemaphoreZirconHandleFUCHSIA( vkGetDeviceProcAddr( device, "vkGetSemaphoreZirconHandleFUCHSIA" ) );
#endif /*VK_USE_PLATFORM_FUCHSIA*/
- vkInitializePerformanceApiINTEL =
- PFN_vkInitializePerformanceApiINTEL( vkGetDeviceProcAddr( device, "vkInitializePerformanceApiINTEL" ) );
- vkInvalidateMappedMemoryRanges =
- PFN_vkInvalidateMappedMemoryRanges( vkGetDeviceProcAddr( device, "vkInvalidateMappedMemoryRanges" ) );
- vkMapMemory = PFN_vkMapMemory( vkGetDeviceProcAddr( device, "vkMapMemory" ) );
- vkMergePipelineCaches = PFN_vkMergePipelineCaches( vkGetDeviceProcAddr( device, "vkMergePipelineCaches" ) );
- vkMergeValidationCachesEXT =
- PFN_vkMergeValidationCachesEXT( vkGetDeviceProcAddr( device, "vkMergeValidationCachesEXT" ) );
- vkQueueBeginDebugUtilsLabelEXT =
- PFN_vkQueueBeginDebugUtilsLabelEXT( vkGetDeviceProcAddr( device, "vkQueueBeginDebugUtilsLabelEXT" ) );
- vkQueueBindSparse = PFN_vkQueueBindSparse( vkGetDeviceProcAddr( device, "vkQueueBindSparse" ) );
- vkQueueEndDebugUtilsLabelEXT =
- PFN_vkQueueEndDebugUtilsLabelEXT( vkGetDeviceProcAddr( device, "vkQueueEndDebugUtilsLabelEXT" ) );
- vkQueueInsertDebugUtilsLabelEXT =
- PFN_vkQueueInsertDebugUtilsLabelEXT( vkGetDeviceProcAddr( device, "vkQueueInsertDebugUtilsLabelEXT" ) );
- vkQueuePresentKHR = PFN_vkQueuePresentKHR( vkGetDeviceProcAddr( device, "vkQueuePresentKHR" ) );
- vkQueueSetPerformanceConfigurationINTEL = PFN_vkQueueSetPerformanceConfigurationINTEL(
- vkGetDeviceProcAddr( device, "vkQueueSetPerformanceConfigurationINTEL" ) );
- vkQueueSubmit = PFN_vkQueueSubmit( vkGetDeviceProcAddr( device, "vkQueueSubmit" ) );
- vkQueueSubmit2KHR = PFN_vkQueueSubmit2KHR( vkGetDeviceProcAddr( device, "vkQueueSubmit2KHR" ) );
- vkQueueWaitIdle = PFN_vkQueueWaitIdle( vkGetDeviceProcAddr( device, "vkQueueWaitIdle" ) );
- vkRegisterDeviceEventEXT =
- PFN_vkRegisterDeviceEventEXT( vkGetDeviceProcAddr( device, "vkRegisterDeviceEventEXT" ) );
- vkRegisterDisplayEventEXT =
- PFN_vkRegisterDisplayEventEXT( vkGetDeviceProcAddr( device, "vkRegisterDisplayEventEXT" ) );
-#if defined( VK_USE_PLATFORM_WIN32_KHR )
- vkReleaseFullScreenExclusiveModeEXT =
- PFN_vkReleaseFullScreenExclusiveModeEXT( vkGetDeviceProcAddr( device, "vkReleaseFullScreenExclusiveModeEXT" ) );
-#endif /*VK_USE_PLATFORM_WIN32_KHR*/
- vkReleasePerformanceConfigurationINTEL = PFN_vkReleasePerformanceConfigurationINTEL(
- vkGetDeviceProcAddr( device, "vkReleasePerformanceConfigurationINTEL" ) );
- vkReleaseProfilingLockKHR =
- PFN_vkReleaseProfilingLockKHR( vkGetDeviceProcAddr( device, "vkReleaseProfilingLockKHR" ) );
- vkResetCommandBuffer = PFN_vkResetCommandBuffer( vkGetDeviceProcAddr( device, "vkResetCommandBuffer" ) );
- vkResetCommandPool = PFN_vkResetCommandPool( vkGetDeviceProcAddr( device, "vkResetCommandPool" ) );
- vkResetDescriptorPool = PFN_vkResetDescriptorPool( vkGetDeviceProcAddr( device, "vkResetDescriptorPool" ) );
- vkResetEvent = PFN_vkResetEvent( vkGetDeviceProcAddr( device, "vkResetEvent" ) );
- vkResetFences = PFN_vkResetFences( vkGetDeviceProcAddr( device, "vkResetFences" ) );
- vkResetQueryPool = PFN_vkResetQueryPool( vkGetDeviceProcAddr( device, "vkResetQueryPool" ) );
- vkResetQueryPoolEXT = PFN_vkResetQueryPoolEXT( vkGetDeviceProcAddr( device, "vkResetQueryPoolEXT" ) );
- if ( !vkResetQueryPool )
- vkResetQueryPool = vkResetQueryPoolEXT;
- vkSetDebugUtilsObjectNameEXT =
- PFN_vkSetDebugUtilsObjectNameEXT( vkGetDeviceProcAddr( device, "vkSetDebugUtilsObjectNameEXT" ) );
- vkSetDebugUtilsObjectTagEXT =
- PFN_vkSetDebugUtilsObjectTagEXT( vkGetDeviceProcAddr( device, "vkSetDebugUtilsObjectTagEXT" ) );
- vkSetEvent = PFN_vkSetEvent( vkGetDeviceProcAddr( device, "vkSetEvent" ) );
- vkSetHdrMetadataEXT = PFN_vkSetHdrMetadataEXT( vkGetDeviceProcAddr( device, "vkSetHdrMetadataEXT" ) );
- vkSetLocalDimmingAMD = PFN_vkSetLocalDimmingAMD( vkGetDeviceProcAddr( device, "vkSetLocalDimmingAMD" ) );
- vkSetPrivateDataEXT = PFN_vkSetPrivateDataEXT( vkGetDeviceProcAddr( device, "vkSetPrivateDataEXT" ) );
- vkSignalSemaphore = PFN_vkSignalSemaphore( vkGetDeviceProcAddr( device, "vkSignalSemaphore" ) );
- vkSignalSemaphoreKHR = PFN_vkSignalSemaphoreKHR( vkGetDeviceProcAddr( device, "vkSignalSemaphoreKHR" ) );
- if ( !vkSignalSemaphore )
- vkSignalSemaphore = vkSignalSemaphoreKHR;
- vkTrimCommandPool = PFN_vkTrimCommandPool( vkGetDeviceProcAddr( device, "vkTrimCommandPool" ) );
- vkTrimCommandPoolKHR = PFN_vkTrimCommandPoolKHR( vkGetDeviceProcAddr( device, "vkTrimCommandPoolKHR" ) );
- if ( !vkTrimCommandPool )
- vkTrimCommandPool = vkTrimCommandPoolKHR;
- vkUninitializePerformanceApiINTEL =
- PFN_vkUninitializePerformanceApiINTEL( vkGetDeviceProcAddr( device, "vkUninitializePerformanceApiINTEL" ) );
- vkUnmapMemory = PFN_vkUnmapMemory( vkGetDeviceProcAddr( device, "vkUnmapMemory" ) );
- vkUpdateDescriptorSetWithTemplate =
- PFN_vkUpdateDescriptorSetWithTemplate( vkGetDeviceProcAddr( device, "vkUpdateDescriptorSetWithTemplate" ) );
- vkUpdateDescriptorSetWithTemplateKHR = PFN_vkUpdateDescriptorSetWithTemplateKHR(
- vkGetDeviceProcAddr( device, "vkUpdateDescriptorSetWithTemplateKHR" ) );
- if ( !vkUpdateDescriptorSetWithTemplate )
- vkUpdateDescriptorSetWithTemplate = vkUpdateDescriptorSetWithTemplateKHR;
- vkUpdateDescriptorSets = PFN_vkUpdateDescriptorSets( vkGetDeviceProcAddr( device, "vkUpdateDescriptorSets" ) );
-#if defined( VK_ENABLE_BETA_EXTENSIONS )
- vkUpdateVideoSessionParametersKHR =
- PFN_vkUpdateVideoSessionParametersKHR( vkGetDeviceProcAddr( device, "vkUpdateVideoSessionParametersKHR" ) );
-#endif /*VK_ENABLE_BETA_EXTENSIONS*/
- vkWaitForFences = PFN_vkWaitForFences( vkGetDeviceProcAddr( device, "vkWaitForFences" ) );
- vkWaitSemaphores = PFN_vkWaitSemaphores( vkGetDeviceProcAddr( device, "vkWaitSemaphores" ) );
- vkWaitSemaphoresKHR = PFN_vkWaitSemaphoresKHR( vkGetDeviceProcAddr( device, "vkWaitSemaphoresKHR" ) );
- if ( !vkWaitSemaphores )
- vkWaitSemaphores = vkWaitSemaphoresKHR;
- vkWriteAccelerationStructuresPropertiesKHR = PFN_vkWriteAccelerationStructuresPropertiesKHR(
- vkGetDeviceProcAddr( device, "vkWriteAccelerationStructuresPropertiesKHR" ) );
+
+ //=== VK_HUAWEI_subpass_shading ===
+ vkGetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI = PFN_vkGetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI(
+ vkGetDeviceProcAddr( device, "vkGetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI" ) );
+ vkCmdSubpassShadingHUAWEI =
+ PFN_vkCmdSubpassShadingHUAWEI( vkGetDeviceProcAddr( device, "vkCmdSubpassShadingHUAWEI" ) );
+
+ //=== VK_HUAWEI_invocation_mask ===
+ vkCmdBindInvocationMaskHUAWEI =
+ PFN_vkCmdBindInvocationMaskHUAWEI( vkGetDeviceProcAddr( device, "vkCmdBindInvocationMaskHUAWEI" ) );
+
+ //=== VK_NV_external_memory_rdma ===
+ vkGetMemoryRemoteAddressNV =
+ PFN_vkGetMemoryRemoteAddressNV( vkGetDeviceProcAddr( device, "vkGetMemoryRemoteAddressNV" ) );
+
+ //=== VK_EXT_extended_dynamic_state2 ===
+ vkCmdSetPatchControlPointsEXT =
+ PFN_vkCmdSetPatchControlPointsEXT( vkGetDeviceProcAddr( device, "vkCmdSetPatchControlPointsEXT" ) );
+ vkCmdSetRasterizerDiscardEnableEXT =
+ PFN_vkCmdSetRasterizerDiscardEnableEXT( vkGetDeviceProcAddr( device, "vkCmdSetRasterizerDiscardEnableEXT" ) );
+ vkCmdSetDepthBiasEnableEXT =
+ PFN_vkCmdSetDepthBiasEnableEXT( vkGetDeviceProcAddr( device, "vkCmdSetDepthBiasEnableEXT" ) );
+ vkCmdSetLogicOpEXT = PFN_vkCmdSetLogicOpEXT( vkGetDeviceProcAddr( device, "vkCmdSetLogicOpEXT" ) );
+ vkCmdSetPrimitiveRestartEnableEXT =
+ PFN_vkCmdSetPrimitiveRestartEnableEXT( vkGetDeviceProcAddr( device, "vkCmdSetPrimitiveRestartEnableEXT" ) );
+
+ //=== VK_EXT_color_write_enable ===
+ vkCmdSetColorWriteEnableEXT =
+ PFN_vkCmdSetColorWriteEnableEXT( vkGetDeviceProcAddr( device, "vkCmdSetColorWriteEnableEXT" ) );
+
+ //=== VK_EXT_multi_draw ===
+ vkCmdDrawMultiEXT = PFN_vkCmdDrawMultiEXT( vkGetDeviceProcAddr( device, "vkCmdDrawMultiEXT" ) );
+ vkCmdDrawMultiIndexedEXT =
+ PFN_vkCmdDrawMultiIndexedEXT( vkGetDeviceProcAddr( device, "vkCmdDrawMultiIndexedEXT" ) );
}
};
-
} // namespace VULKAN_HPP_NAMESPACE
namespace std
{
+ //=======================
+ //=== HASH structures ===
+ //=======================
+
+ template <typename BitType>
+ struct hash<VULKAN_HPP_NAMESPACE::Flags<BitType>>
+ {
+ std::size_t operator()( VULKAN_HPP_NAMESPACE::Flags<BitType> const & flags ) const VULKAN_HPP_NOEXCEPT
+ {
+ return std::hash<typename std::underlying_type<BitType>::type>{}(
+ static_cast<typename std::underlying_type<BitType>::type>( flags ) );
+ }
+ };
+
+ //=== VK_VERSION_1_0 ===
+
template <>
- struct hash<VULKAN_HPP_NAMESPACE::AccelerationStructureKHR>
+ struct hash<VULKAN_HPP_NAMESPACE::Instance>
{
- std::size_t operator()( VULKAN_HPP_NAMESPACE::AccelerationStructureKHR const & accelerationStructureKHR ) const
- VULKAN_HPP_NOEXCEPT
+ std::size_t operator()( VULKAN_HPP_NAMESPACE::Instance const & instance ) const VULKAN_HPP_NOEXCEPT
{
- return std::hash<VkAccelerationStructureKHR>{}(
- static_cast<VkAccelerationStructureKHR>( accelerationStructureKHR ) );
+ return std::hash<VkInstance>{}( static_cast<VkInstance>( instance ) );
}
};
template <>
- struct hash<VULKAN_HPP_NAMESPACE::AccelerationStructureNV>
+ struct hash<VULKAN_HPP_NAMESPACE::PhysicalDevice>
{
- std::size_t operator()( VULKAN_HPP_NAMESPACE::AccelerationStructureNV const & accelerationStructureNV ) const
- VULKAN_HPP_NOEXCEPT
+ std::size_t operator()( VULKAN_HPP_NAMESPACE::PhysicalDevice const & physicalDevice ) const VULKAN_HPP_NOEXCEPT
{
- return std::hash<VkAccelerationStructureNV>{}(
- static_cast<VkAccelerationStructureNV>( accelerationStructureNV ) );
+ return std::hash<VkPhysicalDevice>{}( static_cast<VkPhysicalDevice>( physicalDevice ) );
}
};
template <>
- struct hash<VULKAN_HPP_NAMESPACE::Buffer>
+ struct hash<VULKAN_HPP_NAMESPACE::Device>
{
- std::size_t operator()( VULKAN_HPP_NAMESPACE::Buffer const & buffer ) const VULKAN_HPP_NOEXCEPT
+ std::size_t operator()( VULKAN_HPP_NAMESPACE::Device const & device ) const VULKAN_HPP_NOEXCEPT
{
- return std::hash<VkBuffer>{}( static_cast<VkBuffer>( buffer ) );
+ return std::hash<VkDevice>{}( static_cast<VkDevice>( device ) );
}
};
template <>
- struct hash<VULKAN_HPP_NAMESPACE::BufferView>
+ struct hash<VULKAN_HPP_NAMESPACE::Queue>
{
- std::size_t operator()( VULKAN_HPP_NAMESPACE::BufferView const & bufferView ) const VULKAN_HPP_NOEXCEPT
+ std::size_t operator()( VULKAN_HPP_NAMESPACE::Queue const & queue ) const VULKAN_HPP_NOEXCEPT
{
- return std::hash<VkBufferView>{}( static_cast<VkBufferView>( bufferView ) );
+ return std::hash<VkQueue>{}( static_cast<VkQueue>( queue ) );
}
};
template <>
- struct hash<VULKAN_HPP_NAMESPACE::CommandBuffer>
+ struct hash<VULKAN_HPP_NAMESPACE::DeviceMemory>
{
- std::size_t operator()( VULKAN_HPP_NAMESPACE::CommandBuffer const & commandBuffer ) const VULKAN_HPP_NOEXCEPT
+ std::size_t operator()( VULKAN_HPP_NAMESPACE::DeviceMemory const & deviceMemory ) const VULKAN_HPP_NOEXCEPT
{
- return std::hash<VkCommandBuffer>{}( static_cast<VkCommandBuffer>( commandBuffer ) );
+ return std::hash<VkDeviceMemory>{}( static_cast<VkDeviceMemory>( deviceMemory ) );
}
};
template <>
- struct hash<VULKAN_HPP_NAMESPACE::CommandPool>
+ struct hash<VULKAN_HPP_NAMESPACE::Fence>
{
- std::size_t operator()( VULKAN_HPP_NAMESPACE::CommandPool const & commandPool ) const VULKAN_HPP_NOEXCEPT
+ std::size_t operator()( VULKAN_HPP_NAMESPACE::Fence const & fence ) const VULKAN_HPP_NOEXCEPT
{
- return std::hash<VkCommandPool>{}( static_cast<VkCommandPool>( commandPool ) );
+ return std::hash<VkFence>{}( static_cast<VkFence>( fence ) );
}
};
template <>
- struct hash<VULKAN_HPP_NAMESPACE::CuFunctionNVX>
+ struct hash<VULKAN_HPP_NAMESPACE::Semaphore>
{
- std::size_t operator()( VULKAN_HPP_NAMESPACE::CuFunctionNVX const & cuFunctionNVX ) const VULKAN_HPP_NOEXCEPT
+ std::size_t operator()( VULKAN_HPP_NAMESPACE::Semaphore const & semaphore ) const VULKAN_HPP_NOEXCEPT
{
- return std::hash<VkCuFunctionNVX>{}( static_cast<VkCuFunctionNVX>( cuFunctionNVX ) );
+ return std::hash<VkSemaphore>{}( static_cast<VkSemaphore>( semaphore ) );
}
};
template <>
- struct hash<VULKAN_HPP_NAMESPACE::CuModuleNVX>
+ struct hash<VULKAN_HPP_NAMESPACE::Event>
{
- std::size_t operator()( VULKAN_HPP_NAMESPACE::CuModuleNVX const & cuModuleNVX ) const VULKAN_HPP_NOEXCEPT
+ std::size_t operator()( VULKAN_HPP_NAMESPACE::Event const & event ) const VULKAN_HPP_NOEXCEPT
{
- return std::hash<VkCuModuleNVX>{}( static_cast<VkCuModuleNVX>( cuModuleNVX ) );
+ return std::hash<VkEvent>{}( static_cast<VkEvent>( event ) );
}
};
template <>
- struct hash<VULKAN_HPP_NAMESPACE::DebugReportCallbackEXT>
+ struct hash<VULKAN_HPP_NAMESPACE::QueryPool>
{
- std::size_t operator()( VULKAN_HPP_NAMESPACE::DebugReportCallbackEXT const & debugReportCallbackEXT ) const
- VULKAN_HPP_NOEXCEPT
+ std::size_t operator()( VULKAN_HPP_NAMESPACE::QueryPool const & queryPool ) const VULKAN_HPP_NOEXCEPT
{
- return std::hash<VkDebugReportCallbackEXT>{}( static_cast<VkDebugReportCallbackEXT>( debugReportCallbackEXT ) );
+ return std::hash<VkQueryPool>{}( static_cast<VkQueryPool>( queryPool ) );
}
};
template <>
- struct hash<VULKAN_HPP_NAMESPACE::DebugUtilsMessengerEXT>
+ struct hash<VULKAN_HPP_NAMESPACE::Buffer>
{
- std::size_t operator()( VULKAN_HPP_NAMESPACE::DebugUtilsMessengerEXT const & debugUtilsMessengerEXT ) const
- VULKAN_HPP_NOEXCEPT
+ std::size_t operator()( VULKAN_HPP_NAMESPACE::Buffer const & buffer ) const VULKAN_HPP_NOEXCEPT
{
- return std::hash<VkDebugUtilsMessengerEXT>{}( static_cast<VkDebugUtilsMessengerEXT>( debugUtilsMessengerEXT ) );
+ return std::hash<VkBuffer>{}( static_cast<VkBuffer>( buffer ) );
}
};
template <>
- struct hash<VULKAN_HPP_NAMESPACE::DeferredOperationKHR>
+ struct hash<VULKAN_HPP_NAMESPACE::BufferView>
{
- std::size_t
- operator()( VULKAN_HPP_NAMESPACE::DeferredOperationKHR const & deferredOperationKHR ) const VULKAN_HPP_NOEXCEPT
+ std::size_t operator()( VULKAN_HPP_NAMESPACE::BufferView const & bufferView ) const VULKAN_HPP_NOEXCEPT
{
- return std::hash<VkDeferredOperationKHR>{}( static_cast<VkDeferredOperationKHR>( deferredOperationKHR ) );
+ return std::hash<VkBufferView>{}( static_cast<VkBufferView>( bufferView ) );
}
};
template <>
- struct hash<VULKAN_HPP_NAMESPACE::DescriptorPool>
+ struct hash<VULKAN_HPP_NAMESPACE::Image>
{
- std::size_t operator()( VULKAN_HPP_NAMESPACE::DescriptorPool const & descriptorPool ) const VULKAN_HPP_NOEXCEPT
+ std::size_t operator()( VULKAN_HPP_NAMESPACE::Image const & image ) const VULKAN_HPP_NOEXCEPT
{
- return std::hash<VkDescriptorPool>{}( static_cast<VkDescriptorPool>( descriptorPool ) );
+ return std::hash<VkImage>{}( static_cast<VkImage>( image ) );
}
};
template <>
- struct hash<VULKAN_HPP_NAMESPACE::DescriptorSet>
+ struct hash<VULKAN_HPP_NAMESPACE::ImageView>
{
- std::size_t operator()( VULKAN_HPP_NAMESPACE::DescriptorSet const & descriptorSet ) const VULKAN_HPP_NOEXCEPT
+ std::size_t operator()( VULKAN_HPP_NAMESPACE::ImageView const & imageView ) const VULKAN_HPP_NOEXCEPT
{
- return std::hash<VkDescriptorSet>{}( static_cast<VkDescriptorSet>( descriptorSet ) );
+ return std::hash<VkImageView>{}( static_cast<VkImageView>( imageView ) );
}
};
template <>
- struct hash<VULKAN_HPP_NAMESPACE::DescriptorSetLayout>
+ struct hash<VULKAN_HPP_NAMESPACE::ShaderModule>
{
- std::size_t
- operator()( VULKAN_HPP_NAMESPACE::DescriptorSetLayout const & descriptorSetLayout ) const VULKAN_HPP_NOEXCEPT
+ std::size_t operator()( VULKAN_HPP_NAMESPACE::ShaderModule const & shaderModule ) const VULKAN_HPP_NOEXCEPT
{
- return std::hash<VkDescriptorSetLayout>{}( static_cast<VkDescriptorSetLayout>( descriptorSetLayout ) );
+ return std::hash<VkShaderModule>{}( static_cast<VkShaderModule>( shaderModule ) );
}
};
template <>
- struct hash<VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplate>
+ struct hash<VULKAN_HPP_NAMESPACE::PipelineCache>
{
- std::size_t operator()( VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplate const & descriptorUpdateTemplate ) const
- VULKAN_HPP_NOEXCEPT
+ std::size_t operator()( VULKAN_HPP_NAMESPACE::PipelineCache const & pipelineCache ) const VULKAN_HPP_NOEXCEPT
{
- return std::hash<VkDescriptorUpdateTemplate>{}(
- static_cast<VkDescriptorUpdateTemplate>( descriptorUpdateTemplate ) );
+ return std::hash<VkPipelineCache>{}( static_cast<VkPipelineCache>( pipelineCache ) );
}
};
template <>
- struct hash<VULKAN_HPP_NAMESPACE::Device>
+ struct hash<VULKAN_HPP_NAMESPACE::Pipeline>
{
- std::size_t operator()( VULKAN_HPP_NAMESPACE::Device const & device ) const VULKAN_HPP_NOEXCEPT
+ std::size_t operator()( VULKAN_HPP_NAMESPACE::Pipeline const & pipeline ) const VULKAN_HPP_NOEXCEPT
{
- return std::hash<VkDevice>{}( static_cast<VkDevice>( device ) );
+ return std::hash<VkPipeline>{}( static_cast<VkPipeline>( pipeline ) );
}
};
template <>
- struct hash<VULKAN_HPP_NAMESPACE::DeviceMemory>
+ struct hash<VULKAN_HPP_NAMESPACE::PipelineLayout>
{
- std::size_t operator()( VULKAN_HPP_NAMESPACE::DeviceMemory const & deviceMemory ) const VULKAN_HPP_NOEXCEPT
+ std::size_t operator()( VULKAN_HPP_NAMESPACE::PipelineLayout const & pipelineLayout ) const VULKAN_HPP_NOEXCEPT
{
- return std::hash<VkDeviceMemory>{}( static_cast<VkDeviceMemory>( deviceMemory ) );
+ return std::hash<VkPipelineLayout>{}( static_cast<VkPipelineLayout>( pipelineLayout ) );
}
};
template <>
- struct hash<VULKAN_HPP_NAMESPACE::DisplayKHR>
+ struct hash<VULKAN_HPP_NAMESPACE::Sampler>
{
- std::size_t operator()( VULKAN_HPP_NAMESPACE::DisplayKHR const & displayKHR ) const VULKAN_HPP_NOEXCEPT
+ std::size_t operator()( VULKAN_HPP_NAMESPACE::Sampler const & sampler ) const VULKAN_HPP_NOEXCEPT
{
- return std::hash<VkDisplayKHR>{}( static_cast<VkDisplayKHR>( displayKHR ) );
+ return std::hash<VkSampler>{}( static_cast<VkSampler>( sampler ) );
}
};
template <>
- struct hash<VULKAN_HPP_NAMESPACE::DisplayModeKHR>
+ struct hash<VULKAN_HPP_NAMESPACE::DescriptorPool>
{
- std::size_t operator()( VULKAN_HPP_NAMESPACE::DisplayModeKHR const & displayModeKHR ) const VULKAN_HPP_NOEXCEPT
+ std::size_t operator()( VULKAN_HPP_NAMESPACE::DescriptorPool const & descriptorPool ) const VULKAN_HPP_NOEXCEPT
{
- return std::hash<VkDisplayModeKHR>{}( static_cast<VkDisplayModeKHR>( displayModeKHR ) );
+ return std::hash<VkDescriptorPool>{}( static_cast<VkDescriptorPool>( descriptorPool ) );
}
};
template <>
- struct hash<VULKAN_HPP_NAMESPACE::Event>
+ struct hash<VULKAN_HPP_NAMESPACE::DescriptorSet>
{
- std::size_t operator()( VULKAN_HPP_NAMESPACE::Event const & event ) const VULKAN_HPP_NOEXCEPT
+ std::size_t operator()( VULKAN_HPP_NAMESPACE::DescriptorSet const & descriptorSet ) const VULKAN_HPP_NOEXCEPT
{
- return std::hash<VkEvent>{}( static_cast<VkEvent>( event ) );
+ return std::hash<VkDescriptorSet>{}( static_cast<VkDescriptorSet>( descriptorSet ) );
}
};
template <>
- struct hash<VULKAN_HPP_NAMESPACE::Fence>
+ struct hash<VULKAN_HPP_NAMESPACE::DescriptorSetLayout>
{
- std::size_t operator()( VULKAN_HPP_NAMESPACE::Fence const & fence ) const VULKAN_HPP_NOEXCEPT
+ std::size_t
+ operator()( VULKAN_HPP_NAMESPACE::DescriptorSetLayout const & descriptorSetLayout ) const VULKAN_HPP_NOEXCEPT
{
- return std::hash<VkFence>{}( static_cast<VkFence>( fence ) );
+ return std::hash<VkDescriptorSetLayout>{}( static_cast<VkDescriptorSetLayout>( descriptorSetLayout ) );
}
};
@@ -12844,214 +13797,252 @@ namespace std
};
template <>
- struct hash<VULKAN_HPP_NAMESPACE::Image>
+ struct hash<VULKAN_HPP_NAMESPACE::RenderPass>
{
- std::size_t operator()( VULKAN_HPP_NAMESPACE::Image const & image ) const VULKAN_HPP_NOEXCEPT
+ std::size_t operator()( VULKAN_HPP_NAMESPACE::RenderPass const & renderPass ) const VULKAN_HPP_NOEXCEPT
{
- return std::hash<VkImage>{}( static_cast<VkImage>( image ) );
+ return std::hash<VkRenderPass>{}( static_cast<VkRenderPass>( renderPass ) );
}
};
template <>
- struct hash<VULKAN_HPP_NAMESPACE::ImageView>
+ struct hash<VULKAN_HPP_NAMESPACE::CommandPool>
{
- std::size_t operator()( VULKAN_HPP_NAMESPACE::ImageView const & imageView ) const VULKAN_HPP_NOEXCEPT
+ std::size_t operator()( VULKAN_HPP_NAMESPACE::CommandPool const & commandPool ) const VULKAN_HPP_NOEXCEPT
{
- return std::hash<VkImageView>{}( static_cast<VkImageView>( imageView ) );
+ return std::hash<VkCommandPool>{}( static_cast<VkCommandPool>( commandPool ) );
}
};
template <>
- struct hash<VULKAN_HPP_NAMESPACE::IndirectCommandsLayoutNV>
+ struct hash<VULKAN_HPP_NAMESPACE::CommandBuffer>
{
- std::size_t operator()( VULKAN_HPP_NAMESPACE::IndirectCommandsLayoutNV const & indirectCommandsLayoutNV ) const
- VULKAN_HPP_NOEXCEPT
+ std::size_t operator()( VULKAN_HPP_NAMESPACE::CommandBuffer const & commandBuffer ) const VULKAN_HPP_NOEXCEPT
{
- return std::hash<VkIndirectCommandsLayoutNV>{}(
- static_cast<VkIndirectCommandsLayoutNV>( indirectCommandsLayoutNV ) );
+ return std::hash<VkCommandBuffer>{}( static_cast<VkCommandBuffer>( commandBuffer ) );
}
};
+ //=== VK_VERSION_1_1 ===
+
template <>
- struct hash<VULKAN_HPP_NAMESPACE::Instance>
+ struct hash<VULKAN_HPP_NAMESPACE::SamplerYcbcrConversion>
{
- std::size_t operator()( VULKAN_HPP_NAMESPACE::Instance const & instance ) const VULKAN_HPP_NOEXCEPT
+ std::size_t operator()( VULKAN_HPP_NAMESPACE::SamplerYcbcrConversion const & samplerYcbcrConversion ) const
+ VULKAN_HPP_NOEXCEPT
{
- return std::hash<VkInstance>{}( static_cast<VkInstance>( instance ) );
+ return std::hash<VkSamplerYcbcrConversion>{}( static_cast<VkSamplerYcbcrConversion>( samplerYcbcrConversion ) );
}
};
template <>
- struct hash<VULKAN_HPP_NAMESPACE::PerformanceConfigurationINTEL>
+ struct hash<VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplate>
{
- std::size_t operator()( VULKAN_HPP_NAMESPACE::PerformanceConfigurationINTEL const & performanceConfigurationINTEL )
- const VULKAN_HPP_NOEXCEPT
+ std::size_t operator()( VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplate const & descriptorUpdateTemplate ) const
+ VULKAN_HPP_NOEXCEPT
{
- return std::hash<VkPerformanceConfigurationINTEL>{}(
- static_cast<VkPerformanceConfigurationINTEL>( performanceConfigurationINTEL ) );
+ return std::hash<VkDescriptorUpdateTemplate>{}(
+ static_cast<VkDescriptorUpdateTemplate>( descriptorUpdateTemplate ) );
}
};
+ //=== VK_KHR_surface ===
+
template <>
- struct hash<VULKAN_HPP_NAMESPACE::PhysicalDevice>
+ struct hash<VULKAN_HPP_NAMESPACE::SurfaceKHR>
{
- std::size_t operator()( VULKAN_HPP_NAMESPACE::PhysicalDevice const & physicalDevice ) const VULKAN_HPP_NOEXCEPT
+ std::size_t operator()( VULKAN_HPP_NAMESPACE::SurfaceKHR const & surfaceKHR ) const VULKAN_HPP_NOEXCEPT
{
- return std::hash<VkPhysicalDevice>{}( static_cast<VkPhysicalDevice>( physicalDevice ) );
+ return std::hash<VkSurfaceKHR>{}( static_cast<VkSurfaceKHR>( surfaceKHR ) );
}
};
+ //=== VK_KHR_swapchain ===
+
template <>
- struct hash<VULKAN_HPP_NAMESPACE::Pipeline>
+ struct hash<VULKAN_HPP_NAMESPACE::SwapchainKHR>
{
- std::size_t operator()( VULKAN_HPP_NAMESPACE::Pipeline const & pipeline ) const VULKAN_HPP_NOEXCEPT
+ std::size_t operator()( VULKAN_HPP_NAMESPACE::SwapchainKHR const & swapchainKHR ) const VULKAN_HPP_NOEXCEPT
{
- return std::hash<VkPipeline>{}( static_cast<VkPipeline>( pipeline ) );
+ return std::hash<VkSwapchainKHR>{}( static_cast<VkSwapchainKHR>( swapchainKHR ) );
}
};
+ //=== VK_KHR_display ===
+
template <>
- struct hash<VULKAN_HPP_NAMESPACE::PipelineCache>
+ struct hash<VULKAN_HPP_NAMESPACE::DisplayKHR>
{
- std::size_t operator()( VULKAN_HPP_NAMESPACE::PipelineCache const & pipelineCache ) const VULKAN_HPP_NOEXCEPT
+ std::size_t operator()( VULKAN_HPP_NAMESPACE::DisplayKHR const & displayKHR ) const VULKAN_HPP_NOEXCEPT
{
- return std::hash<VkPipelineCache>{}( static_cast<VkPipelineCache>( pipelineCache ) );
+ return std::hash<VkDisplayKHR>{}( static_cast<VkDisplayKHR>( displayKHR ) );
}
};
template <>
- struct hash<VULKAN_HPP_NAMESPACE::PipelineLayout>
+ struct hash<VULKAN_HPP_NAMESPACE::DisplayModeKHR>
{
- std::size_t operator()( VULKAN_HPP_NAMESPACE::PipelineLayout const & pipelineLayout ) const VULKAN_HPP_NOEXCEPT
+ std::size_t operator()( VULKAN_HPP_NAMESPACE::DisplayModeKHR const & displayModeKHR ) const VULKAN_HPP_NOEXCEPT
{
- return std::hash<VkPipelineLayout>{}( static_cast<VkPipelineLayout>( pipelineLayout ) );
+ return std::hash<VkDisplayModeKHR>{}( static_cast<VkDisplayModeKHR>( displayModeKHR ) );
}
};
+ //=== VK_EXT_debug_report ===
+
template <>
- struct hash<VULKAN_HPP_NAMESPACE::PrivateDataSlotEXT>
+ struct hash<VULKAN_HPP_NAMESPACE::DebugReportCallbackEXT>
{
- std::size_t
- operator()( VULKAN_HPP_NAMESPACE::PrivateDataSlotEXT const & privateDataSlotEXT ) const VULKAN_HPP_NOEXCEPT
+ std::size_t operator()( VULKAN_HPP_NAMESPACE::DebugReportCallbackEXT const & debugReportCallbackEXT ) const
+ VULKAN_HPP_NOEXCEPT
{
- return std::hash<VkPrivateDataSlotEXT>{}( static_cast<VkPrivateDataSlotEXT>( privateDataSlotEXT ) );
+ return std::hash<VkDebugReportCallbackEXT>{}( static_cast<VkDebugReportCallbackEXT>( debugReportCallbackEXT ) );
}
};
+#if defined( VK_ENABLE_BETA_EXTENSIONS )
+ //=== VK_KHR_video_queue ===
+
template <>
- struct hash<VULKAN_HPP_NAMESPACE::QueryPool>
+ struct hash<VULKAN_HPP_NAMESPACE::VideoSessionKHR>
{
- std::size_t operator()( VULKAN_HPP_NAMESPACE::QueryPool const & queryPool ) const VULKAN_HPP_NOEXCEPT
+ std::size_t operator()( VULKAN_HPP_NAMESPACE::VideoSessionKHR const & videoSessionKHR ) const VULKAN_HPP_NOEXCEPT
{
- return std::hash<VkQueryPool>{}( static_cast<VkQueryPool>( queryPool ) );
+ return std::hash<VkVideoSessionKHR>{}( static_cast<VkVideoSessionKHR>( videoSessionKHR ) );
}
};
template <>
- struct hash<VULKAN_HPP_NAMESPACE::Queue>
+ struct hash<VULKAN_HPP_NAMESPACE::VideoSessionParametersKHR>
{
- std::size_t operator()( VULKAN_HPP_NAMESPACE::Queue const & queue ) const VULKAN_HPP_NOEXCEPT
+ std::size_t operator()( VULKAN_HPP_NAMESPACE::VideoSessionParametersKHR const & videoSessionParametersKHR ) const
+ VULKAN_HPP_NOEXCEPT
{
- return std::hash<VkQueue>{}( static_cast<VkQueue>( queue ) );
+ return std::hash<VkVideoSessionParametersKHR>{}(
+ static_cast<VkVideoSessionParametersKHR>( videoSessionParametersKHR ) );
}
};
+#endif /*VK_ENABLE_BETA_EXTENSIONS*/
+
+ //=== VK_NVX_binary_import ===
template <>
- struct hash<VULKAN_HPP_NAMESPACE::RenderPass>
+ struct hash<VULKAN_HPP_NAMESPACE::CuModuleNVX>
{
- std::size_t operator()( VULKAN_HPP_NAMESPACE::RenderPass const & renderPass ) const VULKAN_HPP_NOEXCEPT
+ std::size_t operator()( VULKAN_HPP_NAMESPACE::CuModuleNVX const & cuModuleNVX ) const VULKAN_HPP_NOEXCEPT
{
- return std::hash<VkRenderPass>{}( static_cast<VkRenderPass>( renderPass ) );
+ return std::hash<VkCuModuleNVX>{}( static_cast<VkCuModuleNVX>( cuModuleNVX ) );
}
};
template <>
- struct hash<VULKAN_HPP_NAMESPACE::Sampler>
+ struct hash<VULKAN_HPP_NAMESPACE::CuFunctionNVX>
{
- std::size_t operator()( VULKAN_HPP_NAMESPACE::Sampler const & sampler ) const VULKAN_HPP_NOEXCEPT
+ std::size_t operator()( VULKAN_HPP_NAMESPACE::CuFunctionNVX const & cuFunctionNVX ) const VULKAN_HPP_NOEXCEPT
{
- return std::hash<VkSampler>{}( static_cast<VkSampler>( sampler ) );
+ return std::hash<VkCuFunctionNVX>{}( static_cast<VkCuFunctionNVX>( cuFunctionNVX ) );
}
};
+ //=== VK_EXT_debug_utils ===
+
template <>
- struct hash<VULKAN_HPP_NAMESPACE::SamplerYcbcrConversion>
+ struct hash<VULKAN_HPP_NAMESPACE::DebugUtilsMessengerEXT>
{
- std::size_t operator()( VULKAN_HPP_NAMESPACE::SamplerYcbcrConversion const & samplerYcbcrConversion ) const
+ std::size_t operator()( VULKAN_HPP_NAMESPACE::DebugUtilsMessengerEXT const & debugUtilsMessengerEXT ) const
VULKAN_HPP_NOEXCEPT
{
- return std::hash<VkSamplerYcbcrConversion>{}( static_cast<VkSamplerYcbcrConversion>( samplerYcbcrConversion ) );
+ return std::hash<VkDebugUtilsMessengerEXT>{}( static_cast<VkDebugUtilsMessengerEXT>( debugUtilsMessengerEXT ) );
}
};
+ //=== VK_KHR_acceleration_structure ===
+
template <>
- struct hash<VULKAN_HPP_NAMESPACE::Semaphore>
+ struct hash<VULKAN_HPP_NAMESPACE::AccelerationStructureKHR>
{
- std::size_t operator()( VULKAN_HPP_NAMESPACE::Semaphore const & semaphore ) const VULKAN_HPP_NOEXCEPT
+ std::size_t operator()( VULKAN_HPP_NAMESPACE::AccelerationStructureKHR const & accelerationStructureKHR ) const
+ VULKAN_HPP_NOEXCEPT
{
- return std::hash<VkSemaphore>{}( static_cast<VkSemaphore>( semaphore ) );
+ return std::hash<VkAccelerationStructureKHR>{}(
+ static_cast<VkAccelerationStructureKHR>( accelerationStructureKHR ) );
}
};
+ //=== VK_EXT_validation_cache ===
+
template <>
- struct hash<VULKAN_HPP_NAMESPACE::ShaderModule>
+ struct hash<VULKAN_HPP_NAMESPACE::ValidationCacheEXT>
{
- std::size_t operator()( VULKAN_HPP_NAMESPACE::ShaderModule const & shaderModule ) const VULKAN_HPP_NOEXCEPT
+ std::size_t
+ operator()( VULKAN_HPP_NAMESPACE::ValidationCacheEXT const & validationCacheEXT ) const VULKAN_HPP_NOEXCEPT
{
- return std::hash<VkShaderModule>{}( static_cast<VkShaderModule>( shaderModule ) );
+ return std::hash<VkValidationCacheEXT>{}( static_cast<VkValidationCacheEXT>( validationCacheEXT ) );
}
};
+ //=== VK_NV_ray_tracing ===
+
template <>
- struct hash<VULKAN_HPP_NAMESPACE::SurfaceKHR>
+ struct hash<VULKAN_HPP_NAMESPACE::AccelerationStructureNV>
{
- std::size_t operator()( VULKAN_HPP_NAMESPACE::SurfaceKHR const & surfaceKHR ) const VULKAN_HPP_NOEXCEPT
+ std::size_t operator()( VULKAN_HPP_NAMESPACE::AccelerationStructureNV const & accelerationStructureNV ) const
+ VULKAN_HPP_NOEXCEPT
{
- return std::hash<VkSurfaceKHR>{}( static_cast<VkSurfaceKHR>( surfaceKHR ) );
+ return std::hash<VkAccelerationStructureNV>{}(
+ static_cast<VkAccelerationStructureNV>( accelerationStructureNV ) );
}
};
+ //=== VK_INTEL_performance_query ===
+
template <>
- struct hash<VULKAN_HPP_NAMESPACE::SwapchainKHR>
+ struct hash<VULKAN_HPP_NAMESPACE::PerformanceConfigurationINTEL>
{
- std::size_t operator()( VULKAN_HPP_NAMESPACE::SwapchainKHR const & swapchainKHR ) const VULKAN_HPP_NOEXCEPT
+ std::size_t operator()( VULKAN_HPP_NAMESPACE::PerformanceConfigurationINTEL const & performanceConfigurationINTEL )
+ const VULKAN_HPP_NOEXCEPT
{
- return std::hash<VkSwapchainKHR>{}( static_cast<VkSwapchainKHR>( swapchainKHR ) );
+ return std::hash<VkPerformanceConfigurationINTEL>{}(
+ static_cast<VkPerformanceConfigurationINTEL>( performanceConfigurationINTEL ) );
}
};
+ //=== VK_KHR_deferred_host_operations ===
+
template <>
- struct hash<VULKAN_HPP_NAMESPACE::ValidationCacheEXT>
+ struct hash<VULKAN_HPP_NAMESPACE::DeferredOperationKHR>
{
std::size_t
- operator()( VULKAN_HPP_NAMESPACE::ValidationCacheEXT const & validationCacheEXT ) const VULKAN_HPP_NOEXCEPT
+ operator()( VULKAN_HPP_NAMESPACE::DeferredOperationKHR const & deferredOperationKHR ) const VULKAN_HPP_NOEXCEPT
{
- return std::hash<VkValidationCacheEXT>{}( static_cast<VkValidationCacheEXT>( validationCacheEXT ) );
+ return std::hash<VkDeferredOperationKHR>{}( static_cast<VkDeferredOperationKHR>( deferredOperationKHR ) );
}
};
-#if defined( VK_ENABLE_BETA_EXTENSIONS )
+ //=== VK_NV_device_generated_commands ===
+
template <>
- struct hash<VULKAN_HPP_NAMESPACE::VideoSessionKHR>
+ struct hash<VULKAN_HPP_NAMESPACE::IndirectCommandsLayoutNV>
{
- std::size_t operator()( VULKAN_HPP_NAMESPACE::VideoSessionKHR const & videoSessionKHR ) const VULKAN_HPP_NOEXCEPT
+ std::size_t operator()( VULKAN_HPP_NAMESPACE::IndirectCommandsLayoutNV const & indirectCommandsLayoutNV ) const
+ VULKAN_HPP_NOEXCEPT
{
- return std::hash<VkVideoSessionKHR>{}( static_cast<VkVideoSessionKHR>( videoSessionKHR ) );
+ return std::hash<VkIndirectCommandsLayoutNV>{}(
+ static_cast<VkIndirectCommandsLayoutNV>( indirectCommandsLayoutNV ) );
}
};
-#endif /*VK_ENABLE_BETA_EXTENSIONS*/
-#if defined( VK_ENABLE_BETA_EXTENSIONS )
+ //=== VK_EXT_private_data ===
+
template <>
- struct hash<VULKAN_HPP_NAMESPACE::VideoSessionParametersKHR>
+ struct hash<VULKAN_HPP_NAMESPACE::PrivateDataSlotEXT>
{
- std::size_t operator()( VULKAN_HPP_NAMESPACE::VideoSessionParametersKHR const & videoSessionParametersKHR ) const
- VULKAN_HPP_NOEXCEPT
+ std::size_t
+ operator()( VULKAN_HPP_NAMESPACE::PrivateDataSlotEXT const & privateDataSlotEXT ) const VULKAN_HPP_NOEXCEPT
{
- return std::hash<VkVideoSessionParametersKHR>{}(
- static_cast<VkVideoSessionParametersKHR>( videoSessionParametersKHR ) );
+ return std::hash<VkPrivateDataSlotEXT>{}( static_cast<VkPrivateDataSlotEXT>( privateDataSlotEXT ) );
}
};
-#endif /*VK_ENABLE_BETA_EXTENSIONS*/
+
} // namespace std
#endif
diff --git a/thirdparty/vulkan/include/vulkan/vulkan_beta.h b/thirdparty/vulkan/include/vulkan/vulkan_beta.h
index 9aebb1abb2..e2337adfde 100644
--- a/thirdparty/vulkan/include/vulkan/vulkan_beta.h
+++ b/thirdparty/vulkan/include/vulkan/vulkan_beta.h
@@ -22,7 +22,7 @@ extern "C" {
#define VK_KHR_video_queue 1
VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkVideoSessionKHR)
VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkVideoSessionParametersKHR)
-#define VK_KHR_VIDEO_QUEUE_SPEC_VERSION 1
+#define VK_KHR_VIDEO_QUEUE_SPEC_VERSION 2
#define VK_KHR_VIDEO_QUEUE_EXTENSION_NAME "VK_KHR_video_queue"
typedef enum VkQueryResultStatusKHR {
@@ -66,12 +66,12 @@ typedef enum VkVideoComponentBitDepthFlagBitsKHR {
} VkVideoComponentBitDepthFlagBitsKHR;
typedef VkFlags VkVideoComponentBitDepthFlagsKHR;
-typedef enum VkVideoCapabilitiesFlagBitsKHR {
- VK_VIDEO_CAPABILITIES_PROTECTED_CONTENT_BIT_KHR = 0x00000001,
- VK_VIDEO_CAPABILITIES_SEPARATE_REFERENCE_IMAGES_BIT_KHR = 0x00000002,
- VK_VIDEO_CAPABILITIES_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
-} VkVideoCapabilitiesFlagBitsKHR;
-typedef VkFlags VkVideoCapabilitiesFlagsKHR;
+typedef enum VkVideoCapabilityFlagBitsKHR {
+ VK_VIDEO_CAPABILITY_PROTECTED_CONTENT_BIT_KHR = 0x00000001,
+ VK_VIDEO_CAPABILITY_SEPARATE_REFERENCE_IMAGES_BIT_KHR = 0x00000002,
+ VK_VIDEO_CAPABILITY_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
+} VkVideoCapabilityFlagBitsKHR;
+typedef VkFlags VkVideoCapabilityFlagsKHR;
typedef enum VkVideoSessionCreateFlagBitsKHR {
VK_VIDEO_SESSION_CREATE_DEFAULT_KHR = 0,
@@ -120,21 +120,21 @@ typedef struct VkVideoProfilesKHR {
} VkVideoProfilesKHR;
typedef struct VkVideoCapabilitiesKHR {
- VkStructureType sType;
- void* pNext;
- VkVideoCapabilitiesFlagsKHR capabilityFlags;
- VkDeviceSize minBitstreamBufferOffsetAlignment;
- VkDeviceSize minBitstreamBufferSizeAlignment;
- VkExtent2D videoPictureExtentGranularity;
- VkExtent2D minExtent;
- VkExtent2D maxExtent;
- uint32_t maxReferencePicturesSlotsCount;
- uint32_t maxReferencePicturesActiveCount;
+ VkStructureType sType;
+ void* pNext;
+ VkVideoCapabilityFlagsKHR capabilityFlags;
+ VkDeviceSize minBitstreamBufferOffsetAlignment;
+ VkDeviceSize minBitstreamBufferSizeAlignment;
+ VkExtent2D videoPictureExtentGranularity;
+ VkExtent2D minExtent;
+ VkExtent2D maxExtent;
+ uint32_t maxReferencePicturesSlotsCount;
+ uint32_t maxReferencePicturesActiveCount;
} VkVideoCapabilitiesKHR;
typedef struct VkPhysicalDeviceVideoFormatInfoKHR {
VkStructureType sType;
- const void* pNext;
+ void* pNext;
VkImageUsageFlags imageUsage;
const VkVideoProfilesKHR* pVideoProfiles;
} VkPhysicalDeviceVideoFormatInfoKHR;
@@ -433,10 +433,10 @@ VKAPI_ATTR void VKAPI_CALL vkCmdEncodeVideoKHR(
#define VK_EXT_video_encode_h264 1
#include "vk_video/vulkan_video_codec_h264std.h"
#include "vk_video/vulkan_video_codec_h264std_encode.h"
-#define VK_EXT_VIDEO_ENCODE_H264_SPEC_VERSION 1
+#define VK_EXT_VIDEO_ENCODE_H264_SPEC_VERSION 2
#define VK_EXT_VIDEO_ENCODE_H264_EXTENSION_NAME "VK_EXT_video_encode_h264"
-typedef enum VkVideoEncodeH264CapabilitiesFlagBitsEXT {
+typedef enum VkVideoEncodeH264CapabilityFlagBitsEXT {
VK_VIDEO_ENCODE_H264_CAPABILITY_CABAC_BIT_EXT = 0x00000001,
VK_VIDEO_ENCODE_H264_CAPABILITY_CAVLC_BIT_EXT = 0x00000002,
VK_VIDEO_ENCODE_H264_CAPABILITY_WEIGHTED_BI_PRED_IMPLICIT_BIT_EXT = 0x00000004,
@@ -448,9 +448,9 @@ typedef enum VkVideoEncodeH264CapabilitiesFlagBitsEXT {
VK_VIDEO_ENCODE_H264_CAPABILITY_DEBLOCKING_FILTER_PARTIAL_BIT_EXT = 0x00000100,
VK_VIDEO_ENCODE_H264_CAPABILITY_MULTIPLE_SLICE_PER_FRAME_BIT_EXT = 0x00000200,
VK_VIDEO_ENCODE_H264_CAPABILITY_EVENLY_DISTRIBUTED_SLICE_SIZE_BIT_EXT = 0x00000400,
- VK_VIDEO_ENCODE_H264_CAPABILITIES_FLAG_BITS_MAX_ENUM_EXT = 0x7FFFFFFF
-} VkVideoEncodeH264CapabilitiesFlagBitsEXT;
-typedef VkFlags VkVideoEncodeH264CapabilitiesFlagsEXT;
+ VK_VIDEO_ENCODE_H264_CAPABILITY_FLAG_BITS_MAX_ENUM_EXT = 0x7FFFFFFF
+} VkVideoEncodeH264CapabilityFlagBitsEXT;
+typedef VkFlags VkVideoEncodeH264CapabilityFlagsEXT;
typedef enum VkVideoEncodeH264InputModeFlagBitsEXT {
VK_VIDEO_ENCODE_H264_INPUT_MODE_FRAME_BIT_EXT = 0x00000001,
@@ -475,19 +475,19 @@ typedef enum VkVideoEncodeH264CreateFlagBitsEXT {
} VkVideoEncodeH264CreateFlagBitsEXT;
typedef VkFlags VkVideoEncodeH264CreateFlagsEXT;
typedef struct VkVideoEncodeH264CapabilitiesEXT {
- VkStructureType sType;
- const void* pNext;
- VkVideoEncodeH264CapabilitiesFlagsEXT flags;
- VkVideoEncodeH264InputModeFlagsEXT inputModeFlags;
- VkVideoEncodeH264OutputModeFlagsEXT outputModeFlags;
- VkExtent2D minPictureSizeInMbs;
- VkExtent2D maxPictureSizeInMbs;
- VkExtent2D inputImageDataAlignment;
- uint8_t maxNumL0ReferenceForP;
- uint8_t maxNumL0ReferenceForB;
- uint8_t maxNumL1Reference;
- uint8_t qualityLevelCount;
- VkExtensionProperties stdExtensionVersion;
+ VkStructureType sType;
+ const void* pNext;
+ VkVideoEncodeH264CapabilityFlagsEXT flags;
+ VkVideoEncodeH264InputModeFlagsEXT inputModeFlags;
+ VkVideoEncodeH264OutputModeFlagsEXT outputModeFlags;
+ VkExtent2D minPictureSizeInMbs;
+ VkExtent2D maxPictureSizeInMbs;
+ VkExtent2D inputImageDataAlignment;
+ uint8_t maxNumL0ReferenceForP;
+ uint8_t maxNumL0ReferenceForB;
+ uint8_t maxNumL1Reference;
+ uint8_t qualityLevelCount;
+ VkExtensionProperties stdExtensionVersion;
} VkVideoEncodeH264CapabilitiesEXT;
typedef struct VkVideoEncodeH264SessionCreateInfoEXT {
@@ -567,22 +567,22 @@ typedef struct VkVideoEncodeH264ProfileEXT {
#define VK_EXT_video_decode_h264 1
#include "vk_video/vulkan_video_codec_h264std_decode.h"
-#define VK_EXT_VIDEO_DECODE_H264_SPEC_VERSION 1
+#define VK_EXT_VIDEO_DECODE_H264_SPEC_VERSION 3
#define VK_EXT_VIDEO_DECODE_H264_EXTENSION_NAME "VK_EXT_video_decode_h264"
-typedef enum VkVideoDecodeH264FieldLayoutFlagBitsEXT {
- VK_VIDEO_DECODE_H264_PROGRESSIVE_PICTURES_ONLY_EXT = 0,
- VK_VIDEO_DECODE_H264_FIELD_LAYOUT_LINE_INTERLACED_PLANE_BIT_EXT = 0x00000001,
- VK_VIDEO_DECODE_H264_FIELD_LAYOUT_SEPARATE_INTERLACED_PLANE_BIT_EXT = 0x00000002,
- VK_VIDEO_DECODE_H264_FIELD_LAYOUT_FLAG_BITS_MAX_ENUM_EXT = 0x7FFFFFFF
-} VkVideoDecodeH264FieldLayoutFlagBitsEXT;
-typedef VkFlags VkVideoDecodeH264FieldLayoutFlagsEXT;
+typedef enum VkVideoDecodeH264PictureLayoutFlagBitsEXT {
+ VK_VIDEO_DECODE_H264_PICTURE_LAYOUT_PROGRESSIVE_EXT = 0,
+ VK_VIDEO_DECODE_H264_PICTURE_LAYOUT_INTERLACED_INTERLEAVED_LINES_BIT_EXT = 0x00000001,
+ VK_VIDEO_DECODE_H264_PICTURE_LAYOUT_INTERLACED_SEPARATE_PLANES_BIT_EXT = 0x00000002,
+ VK_VIDEO_DECODE_H264_PICTURE_LAYOUT_FLAG_BITS_MAX_ENUM_EXT = 0x7FFFFFFF
+} VkVideoDecodeH264PictureLayoutFlagBitsEXT;
+typedef VkFlags VkVideoDecodeH264PictureLayoutFlagsEXT;
typedef VkFlags VkVideoDecodeH264CreateFlagsEXT;
typedef struct VkVideoDecodeH264ProfileEXT {
- VkStructureType sType;
- const void* pNext;
- StdVideoH264ProfileIdc stdProfileIdc;
- VkVideoDecodeH264FieldLayoutFlagsEXT fieldLayout;
+ VkStructureType sType;
+ const void* pNext;
+ StdVideoH264ProfileIdc stdProfileIdc;
+ VkVideoDecodeH264PictureLayoutFlagsEXT pictureLayout;
} VkVideoDecodeH264ProfileEXT;
typedef struct VkVideoDecodeH264CapabilitiesEXT {
diff --git a/thirdparty/vulkan/include/vulkan/vulkan_core.h b/thirdparty/vulkan/include/vulkan/vulkan_core.h
index b2448fb2e1..36013cbed7 100644
--- a/thirdparty/vulkan/include/vulkan/vulkan_core.h
+++ b/thirdparty/vulkan/include/vulkan/vulkan_core.h
@@ -72,7 +72,7 @@ extern "C" {
#define VK_API_VERSION_1_0 VK_MAKE_API_VERSION(0, 1, 0, 0)// Patch version should always be set to 0
// Version of this file
-#define VK_HEADER_VERSION 182
+#define VK_HEADER_VERSION 190
// Complete version of this file
#define VK_HEADER_VERSION_COMPLETE VK_MAKE_API_VERSION(0, 1, 2, VK_HEADER_VERSION)
@@ -120,6 +120,7 @@ VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkDescriptorSet)
VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkDescriptorPool)
VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkFramebuffer)
VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkCommandPool)
+#define VK_UUID_SIZE 16U
#define VK_ATTACHMENT_UNUSED (~0U)
#define VK_FALSE 0U
#define VK_LOD_CLAMP_NONE 1000.0F
@@ -132,7 +133,6 @@ VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkCommandPool)
#define VK_MAX_MEMORY_TYPES 32U
#define VK_MAX_MEMORY_HEAPS 16U
#define VK_MAX_PHYSICAL_DEVICE_NAME_SIZE 256U
-#define VK_UUID_SIZE 16U
#define VK_MAX_EXTENSION_NAME_SIZE 256U
#define VK_MAX_DESCRIPTION_SIZE 256U
@@ -714,6 +714,7 @@ typedef enum VkStructureType {
VK_STRUCTURE_TYPE_BUFFER_DEVICE_ADDRESS_CREATE_INFO_EXT = 1000244002,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TOOL_PROPERTIES_EXT = 1000245000,
VK_STRUCTURE_TYPE_VALIDATION_FEATURES_EXT = 1000247000,
+ VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRESENT_WAIT_FEATURES_KHR = 1000248000,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_MATRIX_FEATURES_NV = 1000249000,
VK_STRUCTURE_TYPE_COOPERATIVE_MATRIX_PROPERTIES_NV = 1000249001,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_MATRIX_PROPERTIES_NV = 1000249002,
@@ -741,6 +742,7 @@ typedef enum VkStructureType {
VK_STRUCTURE_TYPE_PIPELINE_EXECUTABLE_INFO_KHR = 1000269003,
VK_STRUCTURE_TYPE_PIPELINE_EXECUTABLE_STATISTIC_KHR = 1000269004,
VK_STRUCTURE_TYPE_PIPELINE_EXECUTABLE_INTERNAL_REPRESENTATION_KHR = 1000269005,
+ VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_FLOAT_2_FEATURES_EXT = 1000273000,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DEMOTE_TO_HELPER_INVOCATION_FEATURES_EXT = 1000276000,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_GENERATED_COMMANDS_PROPERTIES_NV = 1000277000,
VK_STRUCTURE_TYPE_GRAPHICS_SHADER_GROUP_CREATE_INFO_NV = 1000277001,
@@ -752,6 +754,8 @@ typedef enum VkStructureType {
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_GENERATED_COMMANDS_FEATURES_NV = 1000277007,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INHERITED_VIEWPORT_SCISSOR_FEATURES_NV = 1000278000,
VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_VIEWPORT_SCISSOR_INFO_NV = 1000278001,
+ VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_DOT_PRODUCT_FEATURES_KHR = 1000280000,
+ VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_DOT_PRODUCT_PROPERTIES_KHR = 1000280001,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXEL_BUFFER_ALIGNMENT_FEATURES_EXT = 1000281000,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXEL_BUFFER_ALIGNMENT_PROPERTIES_EXT = 1000281001,
VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_RENDER_PASS_TRANSFORM_INFO_QCOM = 1000282000,
@@ -765,6 +769,8 @@ typedef enum VkStructureType {
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CUSTOM_BORDER_COLOR_PROPERTIES_EXT = 1000287001,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CUSTOM_BORDER_COLOR_FEATURES_EXT = 1000287002,
VK_STRUCTURE_TYPE_PIPELINE_LIBRARY_CREATE_INFO_KHR = 1000290000,
+ VK_STRUCTURE_TYPE_PRESENT_ID_KHR = 1000294000,
+ VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRESENT_ID_FEATURES_KHR = 1000294001,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIVATE_DATA_FEATURES_EXT = 1000295000,
VK_STRUCTURE_TYPE_DEVICE_PRIVATE_DATA_CREATE_INFO_EXT = 1000295001,
VK_STRUCTURE_TYPE_PRIVATE_DATA_SLOT_CREATE_INFO_EXT = 1000295002,
@@ -820,14 +826,18 @@ typedef enum VkStructureType {
VK_STRUCTURE_TYPE_VERTEX_INPUT_BINDING_DESCRIPTION_2_EXT = 1000352001,
VK_STRUCTURE_TYPE_VERTEX_INPUT_ATTRIBUTE_DESCRIPTION_2_EXT = 1000352002,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DRM_PROPERTIES_EXT = 1000353000,
+ VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIMITIVE_TOPOLOGY_LIST_RESTART_FEATURES_EXT = 1000356000,
VK_STRUCTURE_TYPE_IMPORT_MEMORY_ZIRCON_HANDLE_INFO_FUCHSIA = 1000364000,
VK_STRUCTURE_TYPE_MEMORY_ZIRCON_HANDLE_PROPERTIES_FUCHSIA = 1000364001,
VK_STRUCTURE_TYPE_MEMORY_GET_ZIRCON_HANDLE_INFO_FUCHSIA = 1000364002,
VK_STRUCTURE_TYPE_IMPORT_SEMAPHORE_ZIRCON_HANDLE_INFO_FUCHSIA = 1000365000,
VK_STRUCTURE_TYPE_SEMAPHORE_GET_ZIRCON_HANDLE_INFO_FUCHSIA = 1000365001,
- VK_STRUCTURE_TYPE_SUBPASSS_SHADING_PIPELINE_CREATE_INFO_HUAWEI = 1000369000,
+ VK_STRUCTURE_TYPE_SUBPASS_SHADING_PIPELINE_CREATE_INFO_HUAWEI = 1000369000,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBPASS_SHADING_FEATURES_HUAWEI = 1000369001,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBPASS_SHADING_PROPERTIES_HUAWEI = 1000369002,
+ VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INVOCATION_MASK_FEATURES_HUAWEI = 1000370000,
+ VK_STRUCTURE_TYPE_MEMORY_GET_REMOTE_ADDRESS_INFO_NV = 1000371000,
+ VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_MEMORY_RDMA_FEATURES_NV = 1000371001,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_2_FEATURES_EXT = 1000377000,
VK_STRUCTURE_TYPE_SCREEN_SURFACE_CREATE_INFO_QNX = 1000378000,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COLOR_WRITE_ENABLE_FEATURES_EXT = 1000381000,
@@ -1058,6 +1068,11 @@ typedef enum VkObjectType {
VK_OBJECT_TYPE_MAX_ENUM = 0x7FFFFFFF
} VkObjectType;
+typedef enum VkPipelineCacheHeaderVersion {
+ VK_PIPELINE_CACHE_HEADER_VERSION_ONE = 1,
+ VK_PIPELINE_CACHE_HEADER_VERSION_MAX_ENUM = 0x7FFFFFFF
+} VkPipelineCacheHeaderVersion;
+
typedef enum VkVendorId {
VK_VENDOR_ID_VIV = 0x10001,
VK_VENDOR_ID_VSI = 0x10002,
@@ -1068,11 +1083,6 @@ typedef enum VkVendorId {
VK_VENDOR_ID_MAX_ENUM = 0x7FFFFFFF
} VkVendorId;
-typedef enum VkPipelineCacheHeaderVersion {
- VK_PIPELINE_CACHE_HEADER_VERSION_ONE = 1,
- VK_PIPELINE_CACHE_HEADER_VERSION_MAX_ENUM = 0x7FFFFFFF
-} VkPipelineCacheHeaderVersion;
-
typedef enum VkSystemAllocationScope {
VK_SYSTEM_ALLOCATION_SCOPE_COMMAND = 0,
VK_SYSTEM_ALLOCATION_SCOPE_OBJECT = 1,
@@ -1699,13 +1709,15 @@ typedef enum VkAttachmentLoadOp {
VK_ATTACHMENT_LOAD_OP_LOAD = 0,
VK_ATTACHMENT_LOAD_OP_CLEAR = 1,
VK_ATTACHMENT_LOAD_OP_DONT_CARE = 2,
+ VK_ATTACHMENT_LOAD_OP_NONE_EXT = 1000400000,
VK_ATTACHMENT_LOAD_OP_MAX_ENUM = 0x7FFFFFFF
} VkAttachmentLoadOp;
typedef enum VkAttachmentStoreOp {
VK_ATTACHMENT_STORE_OP_STORE = 0,
VK_ATTACHMENT_STORE_OP_DONT_CARE = 1,
- VK_ATTACHMENT_STORE_OP_NONE_QCOM = 1000301000,
+ VK_ATTACHMENT_STORE_OP_NONE_EXT = 1000301000,
+ VK_ATTACHMENT_STORE_OP_NONE_QCOM = VK_ATTACHMENT_STORE_OP_NONE_EXT,
VK_ATTACHMENT_STORE_OP_MAX_ENUM = 0x7FFFFFFF
} VkAttachmentStoreOp;
@@ -1917,6 +1929,7 @@ typedef enum VkImageUsageFlagBits {
#ifdef VK_ENABLE_BETA_EXTENSIONS
VK_IMAGE_USAGE_VIDEO_ENCODE_DPB_BIT_KHR = 0x00008000,
#endif
+ VK_IMAGE_USAGE_INVOCATION_MASK_BIT_HUAWEI = 0x00040000,
VK_IMAGE_USAGE_SHADING_RATE_IMAGE_BIT_NV = VK_IMAGE_USAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR,
VK_IMAGE_USAGE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
} VkImageUsageFlagBits;
@@ -1940,6 +1953,7 @@ typedef enum VkMemoryPropertyFlagBits {
VK_MEMORY_PROPERTY_PROTECTED_BIT = 0x00000020,
VK_MEMORY_PROPERTY_DEVICE_COHERENT_BIT_AMD = 0x00000040,
VK_MEMORY_PROPERTY_DEVICE_UNCACHED_BIT_AMD = 0x00000080,
+ VK_MEMORY_PROPERTY_RDMA_CAPABLE_BIT_NV = 0x00000100,
VK_MEMORY_PROPERTY_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
} VkMemoryPropertyFlagBits;
typedef VkFlags VkMemoryPropertyFlags;
@@ -2114,10 +2128,6 @@ typedef enum VkImageViewCreateFlagBits {
VK_IMAGE_VIEW_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
} VkImageViewCreateFlagBits;
typedef VkFlags VkImageViewCreateFlags;
-
-typedef enum VkShaderModuleCreateFlagBits {
- VK_SHADER_MODULE_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
-} VkShaderModuleCreateFlagBits;
typedef VkFlags VkShaderModuleCreateFlags;
typedef enum VkPipelineCacheCreateFlagBits {
@@ -2421,6 +2431,14 @@ typedef struct VkMemoryBarrier {
VkAccessFlags dstAccessMask;
} VkMemoryBarrier;
+typedef struct VkPipelineCacheHeaderVersionOne {
+ uint32_t headerSize;
+ VkPipelineCacheHeaderVersion headerVersion;
+ uint32_t vendorID;
+ uint32_t deviceID;
+ uint8_t pipelineCacheUUID[VK_UUID_SIZE];
+} VkPipelineCacheHeaderVersionOne;
+
typedef void* (VKAPI_PTR *PFN_vkAllocationFunction)(
void* pUserData,
size_t size,
@@ -4492,6 +4510,7 @@ typedef enum VkExternalMemoryHandleTypeFlagBits {
VK_EXTERNAL_MEMORY_HANDLE_TYPE_HOST_ALLOCATION_BIT_EXT = 0x00000080,
VK_EXTERNAL_MEMORY_HANDLE_TYPE_HOST_MAPPED_FOREIGN_MEMORY_BIT_EXT = 0x00000100,
VK_EXTERNAL_MEMORY_HANDLE_TYPE_ZIRCON_VMO_BIT_FUCHSIA = 0x00000800,
+ VK_EXTERNAL_MEMORY_HANDLE_TYPE_RDMA_ADDRESS_BIT_NV = 0x00001000,
VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_FD_BIT_KHR = VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_FD_BIT,
VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_BIT_KHR = VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_BIT,
VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT_KHR = VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT,
@@ -5264,6 +5283,7 @@ typedef enum VkDriverId {
VK_DRIVER_ID_MOLTENVK = 14,
VK_DRIVER_ID_COREAVI_PROPRIETARY = 15,
VK_DRIVER_ID_JUICE_PROPRIETARY = 16,
+ VK_DRIVER_ID_VERISILICON_PROPRIETARY = 17,
VK_DRIVER_ID_AMD_PROPRIETARY_KHR = VK_DRIVER_ID_AMD_PROPRIETARY,
VK_DRIVER_ID_AMD_OPEN_SOURCE_KHR = VK_DRIVER_ID_AMD_OPEN_SOURCE,
VK_DRIVER_ID_MESA_RADV_KHR = VK_DRIVER_ID_MESA_RADV,
@@ -6177,7 +6197,7 @@ typedef struct VkAcquireNextImageInfoKHR {
typedef struct VkDeviceGroupPresentCapabilitiesKHR {
VkStructureType sType;
- const void* pNext;
+ void* pNext;
uint32_t presentMask[VK_MAX_DEVICE_GROUP_SIZE];
VkDeviceGroupPresentModeFlagsKHR modes;
} VkDeviceGroupPresentCapabilitiesKHR;
@@ -7052,7 +7072,7 @@ typedef struct VkPhysicalDevicePerformanceQueryPropertiesKHR {
typedef struct VkPerformanceCounterKHR {
VkStructureType sType;
- const void* pNext;
+ void* pNext;
VkPerformanceCounterUnitKHR unit;
VkPerformanceCounterScopeKHR scope;
VkPerformanceCounterStorageKHR storage;
@@ -7061,7 +7081,7 @@ typedef struct VkPerformanceCounterKHR {
typedef struct VkPerformanceCounterDescriptionKHR {
VkStructureType sType;
- const void* pNext;
+ void* pNext;
VkPerformanceCounterDescriptionFlagsKHR flags;
char name[VK_MAX_DESCRIPTION_SIZE];
char category[VK_MAX_DESCRIPTION_SIZE];
@@ -7662,6 +7682,26 @@ typedef VkAttachmentDescriptionStencilLayout VkAttachmentDescriptionStencilLayou
+#define VK_KHR_present_wait 1
+#define VK_KHR_PRESENT_WAIT_SPEC_VERSION 1
+#define VK_KHR_PRESENT_WAIT_EXTENSION_NAME "VK_KHR_present_wait"
+typedef struct VkPhysicalDevicePresentWaitFeaturesKHR {
+ VkStructureType sType;
+ void* pNext;
+ VkBool32 presentWait;
+} VkPhysicalDevicePresentWaitFeaturesKHR;
+
+typedef VkResult (VKAPI_PTR *PFN_vkWaitForPresentKHR)(VkDevice device, VkSwapchainKHR swapchain, uint64_t presentId, uint64_t timeout);
+
+#ifndef VK_NO_PROTOTYPES
+VKAPI_ATTR VkResult VKAPI_CALL vkWaitForPresentKHR(
+ VkDevice device,
+ VkSwapchainKHR swapchain,
+ uint64_t presentId,
+ uint64_t timeout);
+#endif
+
+
#define VK_KHR_uniform_buffer_standard_layout 1
#define VK_KHR_UNIFORM_BUFFER_STANDARD_LAYOUT_SPEC_VERSION 1
#define VK_KHR_UNIFORM_BUFFER_STANDARD_LAYOUT_EXTENSION_NAME "VK_KHR_uniform_buffer_standard_layout"
@@ -7826,6 +7866,52 @@ VKAPI_ATTR VkResult VKAPI_CALL vkGetPipelineExecutableInternalRepresentationsKHR
#endif
+#define VK_KHR_shader_integer_dot_product 1
+#define VK_KHR_SHADER_INTEGER_DOT_PRODUCT_SPEC_VERSION 1
+#define VK_KHR_SHADER_INTEGER_DOT_PRODUCT_EXTENSION_NAME "VK_KHR_shader_integer_dot_product"
+typedef struct VkPhysicalDeviceShaderIntegerDotProductFeaturesKHR {
+ VkStructureType sType;
+ void* pNext;
+ VkBool32 shaderIntegerDotProduct;
+} VkPhysicalDeviceShaderIntegerDotProductFeaturesKHR;
+
+typedef struct VkPhysicalDeviceShaderIntegerDotProductPropertiesKHR {
+ VkStructureType sType;
+ void* pNext;
+ VkBool32 integerDotProduct8BitUnsignedAccelerated;
+ VkBool32 integerDotProduct8BitSignedAccelerated;
+ VkBool32 integerDotProduct8BitMixedSignednessAccelerated;
+ VkBool32 integerDotProduct4x8BitPackedUnsignedAccelerated;
+ VkBool32 integerDotProduct4x8BitPackedSignedAccelerated;
+ VkBool32 integerDotProduct4x8BitPackedMixedSignednessAccelerated;
+ VkBool32 integerDotProduct16BitUnsignedAccelerated;
+ VkBool32 integerDotProduct16BitSignedAccelerated;
+ VkBool32 integerDotProduct16BitMixedSignednessAccelerated;
+ VkBool32 integerDotProduct32BitUnsignedAccelerated;
+ VkBool32 integerDotProduct32BitSignedAccelerated;
+ VkBool32 integerDotProduct32BitMixedSignednessAccelerated;
+ VkBool32 integerDotProduct64BitUnsignedAccelerated;
+ VkBool32 integerDotProduct64BitSignedAccelerated;
+ VkBool32 integerDotProduct64BitMixedSignednessAccelerated;
+ VkBool32 integerDotProductAccumulatingSaturating8BitUnsignedAccelerated;
+ VkBool32 integerDotProductAccumulatingSaturating8BitSignedAccelerated;
+ VkBool32 integerDotProductAccumulatingSaturating8BitMixedSignednessAccelerated;
+ VkBool32 integerDotProductAccumulatingSaturating4x8BitPackedUnsignedAccelerated;
+ VkBool32 integerDotProductAccumulatingSaturating4x8BitPackedSignedAccelerated;
+ VkBool32 integerDotProductAccumulatingSaturating4x8BitPackedMixedSignednessAccelerated;
+ VkBool32 integerDotProductAccumulatingSaturating16BitUnsignedAccelerated;
+ VkBool32 integerDotProductAccumulatingSaturating16BitSignedAccelerated;
+ VkBool32 integerDotProductAccumulatingSaturating16BitMixedSignednessAccelerated;
+ VkBool32 integerDotProductAccumulatingSaturating32BitUnsignedAccelerated;
+ VkBool32 integerDotProductAccumulatingSaturating32BitSignedAccelerated;
+ VkBool32 integerDotProductAccumulatingSaturating32BitMixedSignednessAccelerated;
+ VkBool32 integerDotProductAccumulatingSaturating64BitUnsignedAccelerated;
+ VkBool32 integerDotProductAccumulatingSaturating64BitSignedAccelerated;
+ VkBool32 integerDotProductAccumulatingSaturating64BitMixedSignednessAccelerated;
+} VkPhysicalDeviceShaderIntegerDotProductPropertiesKHR;
+
+
+
#define VK_KHR_pipeline_library 1
#define VK_KHR_PIPELINE_LIBRARY_SPEC_VERSION 1
#define VK_KHR_PIPELINE_LIBRARY_EXTENSION_NAME "VK_KHR_pipeline_library"
@@ -7843,6 +7929,24 @@ typedef struct VkPipelineLibraryCreateInfoKHR {
#define VK_KHR_SHADER_NON_SEMANTIC_INFO_EXTENSION_NAME "VK_KHR_shader_non_semantic_info"
+#define VK_KHR_present_id 1
+#define VK_KHR_PRESENT_ID_SPEC_VERSION 1
+#define VK_KHR_PRESENT_ID_EXTENSION_NAME "VK_KHR_present_id"
+typedef struct VkPresentIdKHR {
+ VkStructureType sType;
+ const void* pNext;
+ uint32_t swapchainCount;
+ const uint64_t* pPresentIds;
+} VkPresentIdKHR;
+
+typedef struct VkPhysicalDevicePresentIdFeaturesKHR {
+ VkStructureType sType;
+ void* pNext;
+ VkBool32 presentId;
+} VkPhysicalDevicePresentIdFeaturesKHR;
+
+
+
#define VK_KHR_synchronization2 1
typedef uint64_t VkFlags64;
#define VK_KHR_SYNCHRONIZATION_2_SPEC_VERSION 1
@@ -7865,7 +7969,7 @@ static const VkPipelineStageFlagBits2KHR VK_PIPELINE_STAGE_2_LATE_FRAGMENT_TESTS
static const VkPipelineStageFlagBits2KHR VK_PIPELINE_STAGE_2_COLOR_ATTACHMENT_OUTPUT_BIT_KHR = 0x00000400ULL;
static const VkPipelineStageFlagBits2KHR VK_PIPELINE_STAGE_2_COMPUTE_SHADER_BIT_KHR = 0x00000800ULL;
static const VkPipelineStageFlagBits2KHR VK_PIPELINE_STAGE_2_ALL_TRANSFER_BIT_KHR = 0x00001000ULL;
-static const VkPipelineStageFlagBits2KHR VK_PIPELINE_STAGE_2_TRANSFER_BIT_KHR = 0x00001000;
+static const VkPipelineStageFlagBits2KHR VK_PIPELINE_STAGE_2_TRANSFER_BIT_KHR = 0x00001000ULL;
static const VkPipelineStageFlagBits2KHR VK_PIPELINE_STAGE_2_BOTTOM_OF_PIPE_BIT_KHR = 0x00002000ULL;
static const VkPipelineStageFlagBits2KHR VK_PIPELINE_STAGE_2_HOST_BIT_KHR = 0x00004000ULL;
static const VkPipelineStageFlagBits2KHR VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT_KHR = 0x00008000ULL;
@@ -7887,15 +7991,16 @@ static const VkPipelineStageFlagBits2KHR VK_PIPELINE_STAGE_2_TRANSFORM_FEEDBACK_
static const VkPipelineStageFlagBits2KHR VK_PIPELINE_STAGE_2_CONDITIONAL_RENDERING_BIT_EXT = 0x00040000ULL;
static const VkPipelineStageFlagBits2KHR VK_PIPELINE_STAGE_2_COMMAND_PREPROCESS_BIT_NV = 0x00020000ULL;
static const VkPipelineStageFlagBits2KHR VK_PIPELINE_STAGE_2_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR = 0x00400000ULL;
-static const VkPipelineStageFlagBits2KHR VK_PIPELINE_STAGE_2_SHADING_RATE_IMAGE_BIT_NV = 0x00400000;
+static const VkPipelineStageFlagBits2KHR VK_PIPELINE_STAGE_2_SHADING_RATE_IMAGE_BIT_NV = 0x00400000ULL;
static const VkPipelineStageFlagBits2KHR VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR = 0x02000000ULL;
static const VkPipelineStageFlagBits2KHR VK_PIPELINE_STAGE_2_RAY_TRACING_SHADER_BIT_KHR = 0x00200000ULL;
-static const VkPipelineStageFlagBits2KHR VK_PIPELINE_STAGE_2_RAY_TRACING_SHADER_BIT_NV = 0x00200000;
-static const VkPipelineStageFlagBits2KHR VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_NV = 0x02000000;
+static const VkPipelineStageFlagBits2KHR VK_PIPELINE_STAGE_2_RAY_TRACING_SHADER_BIT_NV = 0x00200000ULL;
+static const VkPipelineStageFlagBits2KHR VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_NV = 0x02000000ULL;
static const VkPipelineStageFlagBits2KHR VK_PIPELINE_STAGE_2_FRAGMENT_DENSITY_PROCESS_BIT_EXT = 0x00800000ULL;
static const VkPipelineStageFlagBits2KHR VK_PIPELINE_STAGE_2_TASK_SHADER_BIT_NV = 0x00080000ULL;
static const VkPipelineStageFlagBits2KHR VK_PIPELINE_STAGE_2_MESH_SHADER_BIT_NV = 0x00100000ULL;
static const VkPipelineStageFlagBits2KHR VK_PIPELINE_STAGE_2_SUBPASS_SHADING_BIT_HUAWEI = 0x8000000000ULL;
+static const VkPipelineStageFlagBits2KHR VK_PIPELINE_STAGE_2_INVOCATION_MASK_BIT_HUAWEI = 0x10000000000ULL;
typedef VkFlags64 VkAccessFlags2KHR;
@@ -7941,13 +8046,14 @@ static const VkAccessFlagBits2KHR VK_ACCESS_2_CONDITIONAL_RENDERING_READ_BIT_EXT
static const VkAccessFlagBits2KHR VK_ACCESS_2_COMMAND_PREPROCESS_READ_BIT_NV = 0x00020000ULL;
static const VkAccessFlagBits2KHR VK_ACCESS_2_COMMAND_PREPROCESS_WRITE_BIT_NV = 0x00040000ULL;
static const VkAccessFlagBits2KHR VK_ACCESS_2_FRAGMENT_SHADING_RATE_ATTACHMENT_READ_BIT_KHR = 0x00800000ULL;
-static const VkAccessFlagBits2KHR VK_ACCESS_2_SHADING_RATE_IMAGE_READ_BIT_NV = 0x00800000;
+static const VkAccessFlagBits2KHR VK_ACCESS_2_SHADING_RATE_IMAGE_READ_BIT_NV = 0x00800000ULL;
static const VkAccessFlagBits2KHR VK_ACCESS_2_ACCELERATION_STRUCTURE_READ_BIT_KHR = 0x00200000ULL;
static const VkAccessFlagBits2KHR VK_ACCESS_2_ACCELERATION_STRUCTURE_WRITE_BIT_KHR = 0x00400000ULL;
-static const VkAccessFlagBits2KHR VK_ACCESS_2_ACCELERATION_STRUCTURE_READ_BIT_NV = 0x00200000;
-static const VkAccessFlagBits2KHR VK_ACCESS_2_ACCELERATION_STRUCTURE_WRITE_BIT_NV = 0x00400000;
+static const VkAccessFlagBits2KHR VK_ACCESS_2_ACCELERATION_STRUCTURE_READ_BIT_NV = 0x00200000ULL;
+static const VkAccessFlagBits2KHR VK_ACCESS_2_ACCELERATION_STRUCTURE_WRITE_BIT_NV = 0x00400000ULL;
static const VkAccessFlagBits2KHR VK_ACCESS_2_FRAGMENT_DENSITY_MAP_READ_BIT_EXT = 0x01000000ULL;
static const VkAccessFlagBits2KHR VK_ACCESS_2_COLOR_ATTACHMENT_READ_NONCOHERENT_BIT_EXT = 0x00080000ULL;
+static const VkAccessFlagBits2KHR VK_ACCESS_2_INVOCATION_MASK_READ_BIT_HUAWEI = 0x8000000000ULL;
typedef enum VkSubmitFlagBitsKHR {
@@ -10075,9 +10181,10 @@ typedef VkGeometryFlagBitsKHR VkGeometryFlagBitsNV;
typedef enum VkGeometryInstanceFlagBitsKHR {
VK_GEOMETRY_INSTANCE_TRIANGLE_FACING_CULL_DISABLE_BIT_KHR = 0x00000001,
- VK_GEOMETRY_INSTANCE_TRIANGLE_FRONT_COUNTERCLOCKWISE_BIT_KHR = 0x00000002,
+ VK_GEOMETRY_INSTANCE_TRIANGLE_FLIP_FACING_BIT_KHR = 0x00000002,
VK_GEOMETRY_INSTANCE_FORCE_OPAQUE_BIT_KHR = 0x00000004,
VK_GEOMETRY_INSTANCE_FORCE_NO_OPAQUE_BIT_KHR = 0x00000008,
+ VK_GEOMETRY_INSTANCE_TRIANGLE_FRONT_COUNTERCLOCKWISE_BIT_KHR = VK_GEOMETRY_INSTANCE_TRIANGLE_FLIP_FACING_BIT_KHR,
VK_GEOMETRY_INSTANCE_TRIANGLE_CULL_DISABLE_BIT_NV = VK_GEOMETRY_INSTANCE_TRIANGLE_FACING_CULL_DISABLE_BIT_KHR,
VK_GEOMETRY_INSTANCE_TRIANGLE_FRONT_COUNTERCLOCKWISE_BIT_NV = VK_GEOMETRY_INSTANCE_TRIANGLE_FRONT_COUNTERCLOCKWISE_BIT_KHR,
VK_GEOMETRY_INSTANCE_FORCE_OPAQUE_BIT_NV = VK_GEOMETRY_INSTANCE_FORCE_OPAQUE_BIT_KHR,
@@ -11588,6 +11695,28 @@ VKAPI_ATTR void VKAPI_CALL vkCmdSetStencilOpEXT(
#endif
+#define VK_EXT_shader_atomic_float2 1
+#define VK_EXT_SHADER_ATOMIC_FLOAT_2_SPEC_VERSION 1
+#define VK_EXT_SHADER_ATOMIC_FLOAT_2_EXTENSION_NAME "VK_EXT_shader_atomic_float2"
+typedef struct VkPhysicalDeviceShaderAtomicFloat2FeaturesEXT {
+ VkStructureType sType;
+ void* pNext;
+ VkBool32 shaderBufferFloat16Atomics;
+ VkBool32 shaderBufferFloat16AtomicAdd;
+ VkBool32 shaderBufferFloat16AtomicMinMax;
+ VkBool32 shaderBufferFloat32AtomicMinMax;
+ VkBool32 shaderBufferFloat64AtomicMinMax;
+ VkBool32 shaderSharedFloat16Atomics;
+ VkBool32 shaderSharedFloat16AtomicAdd;
+ VkBool32 shaderSharedFloat16AtomicMinMax;
+ VkBool32 shaderSharedFloat32AtomicMinMax;
+ VkBool32 shaderSharedFloat64AtomicMinMax;
+ VkBool32 shaderImageFloat32AtomicMinMax;
+ VkBool32 sparseImageFloat32AtomicMinMax;
+} VkPhysicalDeviceShaderAtomicFloat2FeaturesEXT;
+
+
+
#define VK_EXT_shader_demote_to_helper_invocation 1
#define VK_EXT_SHADER_DEMOTE_TO_HELPER_INVOCATION_SPEC_VERSION 1
#define VK_EXT_SHADER_DEMOTE_TO_HELPER_INVOCATION_EXTENSION_NAME "VK_EXT_shader_demote_to_helper_invocation"
@@ -11867,7 +11996,7 @@ typedef struct VkPhysicalDeviceDeviceMemoryReportFeaturesEXT {
typedef struct VkDeviceMemoryReportCallbackDataEXT {
VkStructureType sType;
- const void* pNext;
+ void* pNext;
VkDeviceMemoryReportFlagsEXT flags;
VkDeviceMemoryReportEventTypeEXT type;
uint64_t memoryObjectId;
@@ -12202,7 +12331,7 @@ typedef struct VkAccelerationStructureMotionInstanceNV {
typedef struct VkPhysicalDeviceRayTracingMotionBlurFeaturesNV {
VkStructureType sType;
- const void* pNext;
+ void* pNext;
VkBool32 rayTracingMotionBlur;
VkBool32 rayTracingMotionBlurPipelineTraceRaysIndirect;
} VkPhysicalDeviceRayTracingMotionBlurFeaturesNV;
@@ -12370,8 +12499,20 @@ typedef struct VkPhysicalDeviceDrmPropertiesEXT {
+#define VK_EXT_primitive_topology_list_restart 1
+#define VK_EXT_PRIMITIVE_TOPOLOGY_LIST_RESTART_SPEC_VERSION 1
+#define VK_EXT_PRIMITIVE_TOPOLOGY_LIST_RESTART_EXTENSION_NAME "VK_EXT_primitive_topology_list_restart"
+typedef struct VkPhysicalDevicePrimitiveTopologyListRestartFeaturesEXT {
+ VkStructureType sType;
+ void* pNext;
+ VkBool32 primitiveTopologyListRestart;
+ VkBool32 primitiveTopologyPatchListRestart;
+} VkPhysicalDevicePrimitiveTopologyListRestartFeaturesEXT;
+
+
+
#define VK_HUAWEI_subpass_shading 1
-#define VK_HUAWEI_SUBPASS_SHADING_SPEC_VERSION 0
+#define VK_HUAWEI_SUBPASS_SHADING_SPEC_VERSION 2
#define VK_HUAWEI_SUBPASS_SHADING_EXTENSION_NAME "VK_HUAWEI_subpass_shading"
typedef struct VkSubpassShadingPipelineCreateInfoHUAWEI {
VkStructureType sType;
@@ -12392,11 +12533,12 @@ typedef struct VkPhysicalDeviceSubpassShadingPropertiesHUAWEI {
uint32_t maxSubpassShadingWorkgroupSizeAspectRatio;
} VkPhysicalDeviceSubpassShadingPropertiesHUAWEI;
-typedef VkResult (VKAPI_PTR *PFN_vkGetSubpassShadingMaxWorkgroupSizeHUAWEI)(VkRenderPass renderpass, VkExtent2D* pMaxWorkgroupSize);
+typedef VkResult (VKAPI_PTR *PFN_vkGetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI)(VkDevice device, VkRenderPass renderpass, VkExtent2D* pMaxWorkgroupSize);
typedef void (VKAPI_PTR *PFN_vkCmdSubpassShadingHUAWEI)(VkCommandBuffer commandBuffer);
#ifndef VK_NO_PROTOTYPES
-VKAPI_ATTR VkResult VKAPI_CALL vkGetSubpassShadingMaxWorkgroupSizeHUAWEI(
+VKAPI_ATTR VkResult VKAPI_CALL vkGetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI(
+ VkDevice device,
VkRenderPass renderpass,
VkExtent2D* pMaxWorkgroupSize);
@@ -12405,6 +12547,52 @@ VKAPI_ATTR void VKAPI_CALL vkCmdSubpassShadingHUAWEI(
#endif
+#define VK_HUAWEI_invocation_mask 1
+#define VK_HUAWEI_INVOCATION_MASK_SPEC_VERSION 1
+#define VK_HUAWEI_INVOCATION_MASK_EXTENSION_NAME "VK_HUAWEI_invocation_mask"
+typedef struct VkPhysicalDeviceInvocationMaskFeaturesHUAWEI {
+ VkStructureType sType;
+ void* pNext;
+ VkBool32 invocationMask;
+} VkPhysicalDeviceInvocationMaskFeaturesHUAWEI;
+
+typedef void (VKAPI_PTR *PFN_vkCmdBindInvocationMaskHUAWEI)(VkCommandBuffer commandBuffer, VkImageView imageView, VkImageLayout imageLayout);
+
+#ifndef VK_NO_PROTOTYPES
+VKAPI_ATTR void VKAPI_CALL vkCmdBindInvocationMaskHUAWEI(
+ VkCommandBuffer commandBuffer,
+ VkImageView imageView,
+ VkImageLayout imageLayout);
+#endif
+
+
+#define VK_NV_external_memory_rdma 1
+typedef void* VkRemoteAddressNV;
+#define VK_NV_EXTERNAL_MEMORY_RDMA_SPEC_VERSION 1
+#define VK_NV_EXTERNAL_MEMORY_RDMA_EXTENSION_NAME "VK_NV_external_memory_rdma"
+typedef struct VkMemoryGetRemoteAddressInfoNV {
+ VkStructureType sType;
+ const void* pNext;
+ VkDeviceMemory memory;
+ VkExternalMemoryHandleTypeFlagBits handleType;
+} VkMemoryGetRemoteAddressInfoNV;
+
+typedef struct VkPhysicalDeviceExternalMemoryRDMAFeaturesNV {
+ VkStructureType sType;
+ void* pNext;
+ VkBool32 externalMemoryRDMA;
+} VkPhysicalDeviceExternalMemoryRDMAFeaturesNV;
+
+typedef VkResult (VKAPI_PTR *PFN_vkGetMemoryRemoteAddressNV)(VkDevice device, const VkMemoryGetRemoteAddressInfoNV* pMemoryGetRemoteAddressInfo, VkRemoteAddressNV* pAddress);
+
+#ifndef VK_NO_PROTOTYPES
+VKAPI_ATTR VkResult VKAPI_CALL vkGetMemoryRemoteAddressNV(
+ VkDevice device,
+ const VkMemoryGetRemoteAddressInfoNV* pMemoryGetRemoteAddressInfo,
+ VkRemoteAddressNV* pAddress);
+#endif
+
+
#define VK_EXT_extended_dynamic_state2 1
#define VK_EXT_EXTENDED_DYNAMIC_STATE_2_SPEC_VERSION 1
#define VK_EXT_EXTENDED_DYNAMIC_STATE_2_EXTENSION_NAME "VK_EXT_extended_dynamic_state2"
@@ -12539,9 +12727,14 @@ VKAPI_ATTR void VKAPI_CALL vkCmdDrawMultiIndexedEXT(
#endif
+#define VK_EXT_load_store_op_none 1
+#define VK_EXT_LOAD_STORE_OP_NONE_SPEC_VERSION 1
+#define VK_EXT_LOAD_STORE_OP_NONE_EXTENSION_NAME "VK_EXT_load_store_op_none"
+
+
#define VK_KHR_acceleration_structure 1
VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkAccelerationStructureKHR)
-#define VK_KHR_ACCELERATION_STRUCTURE_SPEC_VERSION 11
+#define VK_KHR_ACCELERATION_STRUCTURE_SPEC_VERSION 12
#define VK_KHR_ACCELERATION_STRUCTURE_EXTENSION_NAME "VK_KHR_acceleration_structure"
typedef enum VkBuildAccelerationStructureModeKHR {
diff --git a/thirdparty/vulkan/include/vulkan/vulkan_enums.hpp b/thirdparty/vulkan/include/vulkan/vulkan_enums.hpp
index 5aed891303..ca535a1b9b 100644
--- a/thirdparty/vulkan/include/vulkan/vulkan_enums.hpp
+++ b/thirdparty/vulkan/include/vulkan/vulkan_enums.hpp
@@ -672,6 +672,7 @@ namespace VULKAN_HPP_NAMESPACE
eBufferDeviceAddressCreateInfoEXT = VK_STRUCTURE_TYPE_BUFFER_DEVICE_ADDRESS_CREATE_INFO_EXT,
ePhysicalDeviceToolPropertiesEXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TOOL_PROPERTIES_EXT,
eValidationFeaturesEXT = VK_STRUCTURE_TYPE_VALIDATION_FEATURES_EXT,
+ ePhysicalDevicePresentWaitFeaturesKHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRESENT_WAIT_FEATURES_KHR,
ePhysicalDeviceCooperativeMatrixFeaturesNV = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_MATRIX_FEATURES_NV,
eCooperativeMatrixPropertiesNV = VK_STRUCTURE_TYPE_COOPERATIVE_MATRIX_PROPERTIES_NV,
ePhysicalDeviceCooperativeMatrixPropertiesNV = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_MATRIX_PROPERTIES_NV,
@@ -706,6 +707,7 @@ namespace VULKAN_HPP_NAMESPACE
ePipelineExecutableInfoKHR = VK_STRUCTURE_TYPE_PIPELINE_EXECUTABLE_INFO_KHR,
ePipelineExecutableStatisticKHR = VK_STRUCTURE_TYPE_PIPELINE_EXECUTABLE_STATISTIC_KHR,
ePipelineExecutableInternalRepresentationKHR = VK_STRUCTURE_TYPE_PIPELINE_EXECUTABLE_INTERNAL_REPRESENTATION_KHR,
+ ePhysicalDeviceShaderAtomicFloat2FeaturesEXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_FLOAT_2_FEATURES_EXT,
ePhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT =
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DEMOTE_TO_HELPER_INVOCATION_FEATURES_EXT,
ePhysicalDeviceDeviceGeneratedCommandsPropertiesNV =
@@ -722,6 +724,10 @@ namespace VULKAN_HPP_NAMESPACE
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INHERITED_VIEWPORT_SCISSOR_FEATURES_NV,
eCommandBufferInheritanceViewportScissorInfoNV =
VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_VIEWPORT_SCISSOR_INFO_NV,
+ ePhysicalDeviceShaderIntegerDotProductFeaturesKHR =
+ VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_DOT_PRODUCT_FEATURES_KHR,
+ ePhysicalDeviceShaderIntegerDotProductPropertiesKHR =
+ VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_DOT_PRODUCT_PROPERTIES_KHR,
ePhysicalDeviceTexelBufferAlignmentFeaturesEXT =
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXEL_BUFFER_ALIGNMENT_FEATURES_EXT,
ePhysicalDeviceTexelBufferAlignmentPropertiesEXT =
@@ -739,6 +745,8 @@ namespace VULKAN_HPP_NAMESPACE
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CUSTOM_BORDER_COLOR_PROPERTIES_EXT,
ePhysicalDeviceCustomBorderColorFeaturesEXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CUSTOM_BORDER_COLOR_FEATURES_EXT,
ePipelineLibraryCreateInfoKHR = VK_STRUCTURE_TYPE_PIPELINE_LIBRARY_CREATE_INFO_KHR,
+ ePresentIdKHR = VK_STRUCTURE_TYPE_PRESENT_ID_KHR,
+ ePhysicalDevicePresentIdFeaturesKHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRESENT_ID_FEATURES_KHR,
ePhysicalDevicePrivateDataFeaturesEXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIVATE_DATA_FEATURES_EXT,
eDevicePrivateDataCreateInfoEXT = VK_STRUCTURE_TYPE_DEVICE_PRIVATE_DATA_CREATE_INFO_EXT,
ePrivateDataSlotCreateInfoEXT = VK_STRUCTURE_TYPE_PRIVATE_DATA_SLOT_CREATE_INFO_EXT,
@@ -808,6 +816,8 @@ namespace VULKAN_HPP_NAMESPACE
eVertexInputBindingDescription2EXT = VK_STRUCTURE_TYPE_VERTEX_INPUT_BINDING_DESCRIPTION_2_EXT,
eVertexInputAttributeDescription2EXT = VK_STRUCTURE_TYPE_VERTEX_INPUT_ATTRIBUTE_DESCRIPTION_2_EXT,
ePhysicalDeviceDrmPropertiesEXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DRM_PROPERTIES_EXT,
+ ePhysicalDevicePrimitiveTopologyListRestartFeaturesEXT =
+ VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIMITIVE_TOPOLOGY_LIST_RESTART_FEATURES_EXT,
#if defined( VK_USE_PLATFORM_FUCHSIA )
eImportMemoryZirconHandleInfoFUCHSIA = VK_STRUCTURE_TYPE_IMPORT_MEMORY_ZIRCON_HANDLE_INFO_FUCHSIA,
eMemoryZirconHandlePropertiesFUCHSIA = VK_STRUCTURE_TYPE_MEMORY_ZIRCON_HANDLE_PROPERTIES_FUCHSIA,
@@ -815,9 +825,12 @@ namespace VULKAN_HPP_NAMESPACE
eImportSemaphoreZirconHandleInfoFUCHSIA = VK_STRUCTURE_TYPE_IMPORT_SEMAPHORE_ZIRCON_HANDLE_INFO_FUCHSIA,
eSemaphoreGetZirconHandleInfoFUCHSIA = VK_STRUCTURE_TYPE_SEMAPHORE_GET_ZIRCON_HANDLE_INFO_FUCHSIA,
#endif /*VK_USE_PLATFORM_FUCHSIA*/
- eSubpasssShadingPipelineCreateInfoHUAWEI = VK_STRUCTURE_TYPE_SUBPASSS_SHADING_PIPELINE_CREATE_INFO_HUAWEI,
+ eSubpassShadingPipelineCreateInfoHUAWEI = VK_STRUCTURE_TYPE_SUBPASS_SHADING_PIPELINE_CREATE_INFO_HUAWEI,
ePhysicalDeviceSubpassShadingFeaturesHUAWEI = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBPASS_SHADING_FEATURES_HUAWEI,
ePhysicalDeviceSubpassShadingPropertiesHUAWEI = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBPASS_SHADING_PROPERTIES_HUAWEI,
+ ePhysicalDeviceInvocationMaskFeaturesHUAWEI = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INVOCATION_MASK_FEATURES_HUAWEI,
+ eMemoryGetRemoteAddressInfoNV = VK_STRUCTURE_TYPE_MEMORY_GET_REMOTE_ADDRESS_INFO_NV,
+ ePhysicalDeviceExternalMemoryRdmaFeaturesNV = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_MEMORY_RDMA_FEATURES_NV,
ePhysicalDeviceExtendedDynamicState2FeaturesEXT =
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_2_FEATURES_EXT,
#if defined( VK_USE_PLATFORM_SCREEN_QNX )
@@ -1547,6 +1560,7 @@ namespace VULKAN_HPP_NAMESPACE
case StructureType::eBufferDeviceAddressCreateInfoEXT: return "BufferDeviceAddressCreateInfoEXT";
case StructureType::ePhysicalDeviceToolPropertiesEXT: return "PhysicalDeviceToolPropertiesEXT";
case StructureType::eValidationFeaturesEXT: return "ValidationFeaturesEXT";
+ case StructureType::ePhysicalDevicePresentWaitFeaturesKHR: return "PhysicalDevicePresentWaitFeaturesKHR";
case StructureType::ePhysicalDeviceCooperativeMatrixFeaturesNV:
return "PhysicalDeviceCooperativeMatrixFeaturesNV";
case StructureType::eCooperativeMatrixPropertiesNV: return "CooperativeMatrixPropertiesNV";
@@ -1592,6 +1606,8 @@ namespace VULKAN_HPP_NAMESPACE
case StructureType::ePipelineExecutableStatisticKHR: return "PipelineExecutableStatisticKHR";
case StructureType::ePipelineExecutableInternalRepresentationKHR:
return "PipelineExecutableInternalRepresentationKHR";
+ case StructureType::ePhysicalDeviceShaderAtomicFloat2FeaturesEXT:
+ return "PhysicalDeviceShaderAtomicFloat2FeaturesEXT";
case StructureType::ePhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT:
return "PhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT";
case StructureType::ePhysicalDeviceDeviceGeneratedCommandsPropertiesNV:
@@ -1609,6 +1625,10 @@ namespace VULKAN_HPP_NAMESPACE
return "PhysicalDeviceInheritedViewportScissorFeaturesNV";
case StructureType::eCommandBufferInheritanceViewportScissorInfoNV:
return "CommandBufferInheritanceViewportScissorInfoNV";
+ case StructureType::ePhysicalDeviceShaderIntegerDotProductFeaturesKHR:
+ return "PhysicalDeviceShaderIntegerDotProductFeaturesKHR";
+ case StructureType::ePhysicalDeviceShaderIntegerDotProductPropertiesKHR:
+ return "PhysicalDeviceShaderIntegerDotProductPropertiesKHR";
case StructureType::ePhysicalDeviceTexelBufferAlignmentFeaturesEXT:
return "PhysicalDeviceTexelBufferAlignmentFeaturesEXT";
case StructureType::ePhysicalDeviceTexelBufferAlignmentPropertiesEXT:
@@ -1628,6 +1648,8 @@ namespace VULKAN_HPP_NAMESPACE
case StructureType::ePhysicalDeviceCustomBorderColorFeaturesEXT:
return "PhysicalDeviceCustomBorderColorFeaturesEXT";
case StructureType::ePipelineLibraryCreateInfoKHR: return "PipelineLibraryCreateInfoKHR";
+ case StructureType::ePresentIdKHR: return "PresentIdKHR";
+ case StructureType::ePhysicalDevicePresentIdFeaturesKHR: return "PhysicalDevicePresentIdFeaturesKHR";
case StructureType::ePhysicalDevicePrivateDataFeaturesEXT: return "PhysicalDevicePrivateDataFeaturesEXT";
case StructureType::eDevicePrivateDataCreateInfoEXT: return "DevicePrivateDataCreateInfoEXT";
case StructureType::ePrivateDataSlotCreateInfoEXT: return "PrivateDataSlotCreateInfoEXT";
@@ -1699,6 +1721,8 @@ namespace VULKAN_HPP_NAMESPACE
case StructureType::eVertexInputBindingDescription2EXT: return "VertexInputBindingDescription2EXT";
case StructureType::eVertexInputAttributeDescription2EXT: return "VertexInputAttributeDescription2EXT";
case StructureType::ePhysicalDeviceDrmPropertiesEXT: return "PhysicalDeviceDrmPropertiesEXT";
+ case StructureType::ePhysicalDevicePrimitiveTopologyListRestartFeaturesEXT:
+ return "PhysicalDevicePrimitiveTopologyListRestartFeaturesEXT";
#if defined( VK_USE_PLATFORM_FUCHSIA )
case StructureType::eImportMemoryZirconHandleInfoFUCHSIA: return "ImportMemoryZirconHandleInfoFUCHSIA";
case StructureType::eMemoryZirconHandlePropertiesFUCHSIA: return "MemoryZirconHandlePropertiesFUCHSIA";
@@ -1706,11 +1730,16 @@ namespace VULKAN_HPP_NAMESPACE
case StructureType::eImportSemaphoreZirconHandleInfoFUCHSIA: return "ImportSemaphoreZirconHandleInfoFUCHSIA";
case StructureType::eSemaphoreGetZirconHandleInfoFUCHSIA: return "SemaphoreGetZirconHandleInfoFUCHSIA";
#endif /*VK_USE_PLATFORM_FUCHSIA*/
- case StructureType::eSubpasssShadingPipelineCreateInfoHUAWEI: return "SubpasssShadingPipelineCreateInfoHUAWEI";
+ case StructureType::eSubpassShadingPipelineCreateInfoHUAWEI: return "SubpassShadingPipelineCreateInfoHUAWEI";
case StructureType::ePhysicalDeviceSubpassShadingFeaturesHUAWEI:
return "PhysicalDeviceSubpassShadingFeaturesHUAWEI";
case StructureType::ePhysicalDeviceSubpassShadingPropertiesHUAWEI:
return "PhysicalDeviceSubpassShadingPropertiesHUAWEI";
+ case StructureType::ePhysicalDeviceInvocationMaskFeaturesHUAWEI:
+ return "PhysicalDeviceInvocationMaskFeaturesHUAWEI";
+ case StructureType::eMemoryGetRemoteAddressInfoNV: return "MemoryGetRemoteAddressInfoNV";
+ case StructureType::ePhysicalDeviceExternalMemoryRdmaFeaturesNV:
+ return "PhysicalDeviceExternalMemoryRdmaFeaturesNV";
case StructureType::ePhysicalDeviceExtendedDynamicState2FeaturesEXT:
return "PhysicalDeviceExtendedDynamicState2FeaturesEXT";
#if defined( VK_USE_PLATFORM_SCREEN_QNX )
@@ -2624,7 +2653,8 @@ namespace VULKAN_HPP_NAMESPACE
eVideoEncodeSrcKHR = VK_IMAGE_USAGE_VIDEO_ENCODE_SRC_BIT_KHR,
eVideoEncodeDpbKHR = VK_IMAGE_USAGE_VIDEO_ENCODE_DPB_BIT_KHR,
#endif /*VK_ENABLE_BETA_EXTENSIONS*/
- eShadingRateImageNV = VK_IMAGE_USAGE_SHADING_RATE_IMAGE_BIT_NV
+ eInvocationMaskHUAWEI = VK_IMAGE_USAGE_INVOCATION_MASK_BIT_HUAWEI,
+ eShadingRateImageNV = VK_IMAGE_USAGE_SHADING_RATE_IMAGE_BIT_NV
};
VULKAN_HPP_INLINE std::string to_string( ImageUsageFlagBits value )
@@ -2651,6 +2681,7 @@ namespace VULKAN_HPP_NAMESPACE
case ImageUsageFlagBits::eVideoEncodeSrcKHR: return "VideoEncodeSrcKHR";
case ImageUsageFlagBits::eVideoEncodeDpbKHR: return "VideoEncodeDpbKHR";
#endif /*VK_ENABLE_BETA_EXTENSIONS*/
+ case ImageUsageFlagBits::eInvocationMaskHUAWEI: return "InvocationMaskHUAWEI";
default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
}
}
@@ -2695,7 +2726,8 @@ namespace VULKAN_HPP_NAMESPACE
eLazilyAllocated = VK_MEMORY_PROPERTY_LAZILY_ALLOCATED_BIT,
eProtected = VK_MEMORY_PROPERTY_PROTECTED_BIT,
eDeviceCoherentAMD = VK_MEMORY_PROPERTY_DEVICE_COHERENT_BIT_AMD,
- eDeviceUncachedAMD = VK_MEMORY_PROPERTY_DEVICE_UNCACHED_BIT_AMD
+ eDeviceUncachedAMD = VK_MEMORY_PROPERTY_DEVICE_UNCACHED_BIT_AMD,
+ eRdmaCapableNV = VK_MEMORY_PROPERTY_RDMA_CAPABLE_BIT_NV
};
VULKAN_HPP_INLINE std::string to_string( MemoryPropertyFlagBits value )
@@ -2710,6 +2742,7 @@ namespace VULKAN_HPP_NAMESPACE
case MemoryPropertyFlagBits::eProtected: return "Protected";
case MemoryPropertyFlagBits::eDeviceCoherentAMD: return "DeviceCoherentAMD";
case MemoryPropertyFlagBits::eDeviceUncachedAMD: return "DeviceUncachedAMD";
+ case MemoryPropertyFlagBits::eRdmaCapableNV: return "RdmaCapableNV";
default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
}
}
@@ -2814,18 +2847,22 @@ namespace VULKAN_HPP_NAMESPACE
}
}
- enum class DeviceQueueCreateFlagBits : VkDeviceQueueCreateFlags
+ enum class InstanceCreateFlagBits
{
- eProtected = VK_DEVICE_QUEUE_CREATE_PROTECTED_BIT
};
- VULKAN_HPP_INLINE std::string to_string( DeviceQueueCreateFlagBits value )
+ VULKAN_HPP_INLINE std::string to_string( InstanceCreateFlagBits )
{
- switch ( value )
- {
- case DeviceQueueCreateFlagBits::eProtected: return "Protected";
- default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
- }
+ return "(void)";
+ }
+
+ enum class DeviceCreateFlagBits
+ {
+ };
+
+ VULKAN_HPP_INLINE std::string to_string( DeviceCreateFlagBits )
+ {
+ return "(void)";
}
enum class PipelineStageFlagBits : VkPipelineStageFlags
@@ -2897,6 +2934,15 @@ namespace VULKAN_HPP_NAMESPACE
}
}
+ enum class MemoryMapFlagBits : VkMemoryMapFlags
+ {
+ };
+
+ VULKAN_HPP_INLINE std::string to_string( MemoryMapFlagBits )
+ {
+ return "(void)";
+ }
+
enum class ImageAspectFlagBits : VkImageAspectFlags
{
eColor = VK_IMAGE_ASPECT_COLOR_BIT,
@@ -2980,6 +3026,15 @@ namespace VULKAN_HPP_NAMESPACE
}
}
+ enum class SemaphoreCreateFlagBits : VkSemaphoreCreateFlags
+ {
+ };
+
+ VULKAN_HPP_INLINE std::string to_string( SemaphoreCreateFlagBits )
+ {
+ return "(void)";
+ }
+
enum class EventCreateFlagBits : VkEventCreateFlags
{
eDeviceOnlyKHR = VK_EVENT_CREATE_DEVICE_ONLY_BIT_KHR
@@ -3098,6 +3153,15 @@ namespace VULKAN_HPP_NAMESPACE
}
}
+ enum class QueryPoolCreateFlagBits
+ {
+ };
+
+ VULKAN_HPP_INLINE std::string to_string( QueryPoolCreateFlagBits )
+ {
+ return "(void)";
+ }
+
enum class BufferCreateFlagBits : VkBufferCreateFlags
{
eSparseBinding = VK_BUFFER_CREATE_SPARSE_BINDING_BIT,
@@ -3202,6 +3266,15 @@ namespace VULKAN_HPP_NAMESPACE
}
}
+ enum class BufferViewCreateFlagBits : VkBufferViewCreateFlags
+ {
+ };
+
+ VULKAN_HPP_INLINE std::string to_string( BufferViewCreateFlagBits )
+ {
+ return "(void)";
+ }
+
enum class ImageLayout
{
eUndefined = VK_IMAGE_LAYOUT_UNDEFINED,
@@ -3360,20 +3433,6 @@ namespace VULKAN_HPP_NAMESPACE
return "(void)";
}
- enum class PipelineCacheCreateFlagBits : VkPipelineCacheCreateFlags
- {
- eExternallySynchronizedEXT = VK_PIPELINE_CACHE_CREATE_EXTERNALLY_SYNCHRONIZED_BIT_EXT
- };
-
- VULKAN_HPP_INLINE std::string to_string( PipelineCacheCreateFlagBits value )
- {
- switch ( value )
- {
- case PipelineCacheCreateFlagBits::eExternallySynchronizedEXT: return "ExternallySynchronizedEXT";
- default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
- }
- }
-
enum class BlendFactor
{
eZero = VK_BLEND_FACTOR_ZERO,
@@ -3975,6 +4034,96 @@ namespace VULKAN_HPP_NAMESPACE
}
}
+ enum class PipelineColorBlendStateCreateFlagBits : VkPipelineColorBlendStateCreateFlags
+ {
+ };
+
+ VULKAN_HPP_INLINE std::string to_string( PipelineColorBlendStateCreateFlagBits )
+ {
+ return "(void)";
+ }
+
+ enum class PipelineDepthStencilStateCreateFlagBits : VkPipelineDepthStencilStateCreateFlags
+ {
+ };
+
+ VULKAN_HPP_INLINE std::string to_string( PipelineDepthStencilStateCreateFlagBits )
+ {
+ return "(void)";
+ }
+
+ enum class PipelineDynamicStateCreateFlagBits : VkPipelineDynamicStateCreateFlags
+ {
+ };
+
+ VULKAN_HPP_INLINE std::string to_string( PipelineDynamicStateCreateFlagBits )
+ {
+ return "(void)";
+ }
+
+ enum class PipelineInputAssemblyStateCreateFlagBits : VkPipelineInputAssemblyStateCreateFlags
+ {
+ };
+
+ VULKAN_HPP_INLINE std::string to_string( PipelineInputAssemblyStateCreateFlagBits )
+ {
+ return "(void)";
+ }
+
+ enum class PipelineLayoutCreateFlagBits : VkPipelineLayoutCreateFlags
+ {
+ };
+
+ VULKAN_HPP_INLINE std::string to_string( PipelineLayoutCreateFlagBits )
+ {
+ return "(void)";
+ }
+
+ enum class PipelineMultisampleStateCreateFlagBits : VkPipelineMultisampleStateCreateFlags
+ {
+ };
+
+ VULKAN_HPP_INLINE std::string to_string( PipelineMultisampleStateCreateFlagBits )
+ {
+ return "(void)";
+ }
+
+ enum class PipelineRasterizationStateCreateFlagBits : VkPipelineRasterizationStateCreateFlags
+ {
+ };
+
+ VULKAN_HPP_INLINE std::string to_string( PipelineRasterizationStateCreateFlagBits )
+ {
+ return "(void)";
+ }
+
+ enum class PipelineTessellationStateCreateFlagBits : VkPipelineTessellationStateCreateFlags
+ {
+ };
+
+ VULKAN_HPP_INLINE std::string to_string( PipelineTessellationStateCreateFlagBits )
+ {
+ return "(void)";
+ }
+
+ enum class PipelineVertexInputStateCreateFlagBits : VkPipelineVertexInputStateCreateFlags
+ {
+ };
+
+ VULKAN_HPP_INLINE std::string to_string( PipelineVertexInputStateCreateFlagBits )
+ {
+ return "(void)";
+ }
+
+ enum class PipelineViewportStateCreateFlagBits : VkPipelineViewportStateCreateFlags
+ {
+ };
+
+ VULKAN_HPP_INLINE std::string to_string( PipelineViewportStateCreateFlagBits )
+ {
+ return "(void)";
+ }
+
enum class BorderColor
{
eFloatTransparentBlack = VK_BORDER_COLOR_FLOAT_TRANSPARENT_BLACK,
@@ -4157,6 +4306,15 @@ namespace VULKAN_HPP_NAMESPACE
}
}
+ enum class DescriptorPoolResetFlagBits : VkDescriptorPoolResetFlags
+ {
+ };
+
+ VULKAN_HPP_INLINE std::string to_string( DescriptorPoolResetFlagBits )
+ {
+ return "(void)";
+ }
+
enum class AccessFlagBits : VkAccessFlags
{
eIndirectCommandRead = VK_ACCESS_INDIRECT_COMMAND_READ_BIT,
@@ -4248,7 +4406,8 @@ namespace VULKAN_HPP_NAMESPACE
{
eLoad = VK_ATTACHMENT_LOAD_OP_LOAD,
eClear = VK_ATTACHMENT_LOAD_OP_CLEAR,
- eDontCare = VK_ATTACHMENT_LOAD_OP_DONT_CARE
+ eDontCare = VK_ATTACHMENT_LOAD_OP_DONT_CARE,
+ eNoneEXT = VK_ATTACHMENT_LOAD_OP_NONE_EXT
};
VULKAN_HPP_INLINE std::string to_string( AttachmentLoadOp value )
@@ -4258,6 +4417,7 @@ namespace VULKAN_HPP_NAMESPACE
case AttachmentLoadOp::eLoad: return "Load";
case AttachmentLoadOp::eClear: return "Clear";
case AttachmentLoadOp::eDontCare: return "DontCare";
+ case AttachmentLoadOp::eNoneEXT: return "NoneEXT";
default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
}
}
@@ -4266,6 +4426,7 @@ namespace VULKAN_HPP_NAMESPACE
{
eStore = VK_ATTACHMENT_STORE_OP_STORE,
eDontCare = VK_ATTACHMENT_STORE_OP_DONT_CARE,
+ eNoneEXT = VK_ATTACHMENT_STORE_OP_NONE_EXT,
eNoneQCOM = VK_ATTACHMENT_STORE_OP_NONE_QCOM
};
@@ -4275,7 +4436,7 @@ namespace VULKAN_HPP_NAMESPACE
{
case AttachmentStoreOp::eStore: return "Store";
case AttachmentStoreOp::eDontCare: return "DontCare";
- case AttachmentStoreOp::eNoneQCOM: return "NoneQCOM";
+ case AttachmentStoreOp::eNoneEXT: return "NoneEXT";
default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
}
}
@@ -4520,159 +4681,6 @@ namespace VULKAN_HPP_NAMESPACE
}
}
- enum class InstanceCreateFlagBits
- {
- };
-
- VULKAN_HPP_INLINE std::string to_string( InstanceCreateFlagBits )
- {
- return "(void)";
- }
-
- enum class DeviceCreateFlagBits
- {
- };
-
- VULKAN_HPP_INLINE std::string to_string( DeviceCreateFlagBits )
- {
- return "(void)";
- }
-
- enum class MemoryMapFlagBits : VkMemoryMapFlags
- {
- };
-
- VULKAN_HPP_INLINE std::string to_string( MemoryMapFlagBits )
- {
- return "(void)";
- }
-
- enum class SemaphoreCreateFlagBits : VkSemaphoreCreateFlags
- {
- };
-
- VULKAN_HPP_INLINE std::string to_string( SemaphoreCreateFlagBits )
- {
- return "(void)";
- }
-
- enum class QueryPoolCreateFlagBits
- {
- };
-
- VULKAN_HPP_INLINE std::string to_string( QueryPoolCreateFlagBits )
- {
- return "(void)";
- }
-
- enum class BufferViewCreateFlagBits : VkBufferViewCreateFlags
- {
- };
-
- VULKAN_HPP_INLINE std::string to_string( BufferViewCreateFlagBits )
- {
- return "(void)";
- }
-
- enum class PipelineColorBlendStateCreateFlagBits : VkPipelineColorBlendStateCreateFlags
- {
- };
-
- VULKAN_HPP_INLINE std::string to_string( PipelineColorBlendStateCreateFlagBits )
- {
- return "(void)";
- }
-
- enum class PipelineDepthStencilStateCreateFlagBits : VkPipelineDepthStencilStateCreateFlags
- {
- };
-
- VULKAN_HPP_INLINE std::string to_string( PipelineDepthStencilStateCreateFlagBits )
- {
- return "(void)";
- }
-
- enum class PipelineDynamicStateCreateFlagBits : VkPipelineDynamicStateCreateFlags
- {
- };
-
- VULKAN_HPP_INLINE std::string to_string( PipelineDynamicStateCreateFlagBits )
- {
- return "(void)";
- }
-
- enum class PipelineInputAssemblyStateCreateFlagBits : VkPipelineInputAssemblyStateCreateFlags
- {
- };
-
- VULKAN_HPP_INLINE std::string to_string( PipelineInputAssemblyStateCreateFlagBits )
- {
- return "(void)";
- }
-
- enum class PipelineLayoutCreateFlagBits : VkPipelineLayoutCreateFlags
- {
- };
-
- VULKAN_HPP_INLINE std::string to_string( PipelineLayoutCreateFlagBits )
- {
- return "(void)";
- }
-
- enum class PipelineMultisampleStateCreateFlagBits : VkPipelineMultisampleStateCreateFlags
- {
- };
-
- VULKAN_HPP_INLINE std::string to_string( PipelineMultisampleStateCreateFlagBits )
- {
- return "(void)";
- }
-
- enum class PipelineRasterizationStateCreateFlagBits : VkPipelineRasterizationStateCreateFlags
- {
- };
-
- VULKAN_HPP_INLINE std::string to_string( PipelineRasterizationStateCreateFlagBits )
- {
- return "(void)";
- }
-
- enum class PipelineTessellationStateCreateFlagBits : VkPipelineTessellationStateCreateFlags
- {
- };
-
- VULKAN_HPP_INLINE std::string to_string( PipelineTessellationStateCreateFlagBits )
- {
- return "(void)";
- }
-
- enum class PipelineVertexInputStateCreateFlagBits : VkPipelineVertexInputStateCreateFlags
- {
- };
-
- VULKAN_HPP_INLINE std::string to_string( PipelineVertexInputStateCreateFlagBits )
- {
- return "(void)";
- }
-
- enum class PipelineViewportStateCreateFlagBits : VkPipelineViewportStateCreateFlags
- {
- };
-
- VULKAN_HPP_INLINE std::string to_string( PipelineViewportStateCreateFlagBits )
- {
- return "(void)";
- }
-
- enum class DescriptorPoolResetFlagBits : VkDescriptorPoolResetFlags
- {
- };
-
- VULKAN_HPP_INLINE std::string to_string( DescriptorPoolResetFlagBits )
- {
- return "(void)";
- }
-
//=== VK_VERSION_1_1 ===
enum class SubgroupFeatureFlagBits : VkSubgroupFeatureFlags
@@ -4745,6 +4753,15 @@ namespace VULKAN_HPP_NAMESPACE
}
}
+ enum class CommandPoolTrimFlagBits : VkCommandPoolTrimFlags
+ {
+ };
+
+ VULKAN_HPP_INLINE std::string to_string( CommandPoolTrimFlagBits )
+ {
+ return "(void)";
+ }
+
enum class PointClippingBehavior
{
eAllClipPlanes = VK_POINT_CLIPPING_BEHAVIOR_ALL_CLIP_PLANES,
@@ -4779,6 +4796,20 @@ namespace VULKAN_HPP_NAMESPACE
}
}
+ enum class DeviceQueueCreateFlagBits : VkDeviceQueueCreateFlags
+ {
+ eProtected = VK_DEVICE_QUEUE_CREATE_PROTECTED_BIT
+ };
+
+ VULKAN_HPP_INLINE std::string to_string( DeviceQueueCreateFlagBits value )
+ {
+ switch ( value )
+ {
+ case DeviceQueueCreateFlagBits::eProtected: return "Protected";
+ default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
+ }
+ }
+
enum class SamplerYcbcrModelConversion
{
eRgbIdentity = VK_SAMPLER_YCBCR_MODEL_CONVERSION_RGB_IDENTITY,
@@ -4853,6 +4884,15 @@ namespace VULKAN_HPP_NAMESPACE
}
}
+ enum class DescriptorUpdateTemplateCreateFlagBits : VkDescriptorUpdateTemplateCreateFlags
+ {
+ };
+
+ VULKAN_HPP_INLINE std::string to_string( DescriptorUpdateTemplateCreateFlagBits )
+ {
+ return "(void)";
+ }
+
enum class ExternalMemoryHandleTypeFlagBits : VkExternalMemoryHandleTypeFlags
{
eOpaqueFd = VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_FD_BIT,
@@ -4869,8 +4909,9 @@ namespace VULKAN_HPP_NAMESPACE
eHostAllocationEXT = VK_EXTERNAL_MEMORY_HANDLE_TYPE_HOST_ALLOCATION_BIT_EXT,
eHostMappedForeignMemoryEXT = VK_EXTERNAL_MEMORY_HANDLE_TYPE_HOST_MAPPED_FOREIGN_MEMORY_BIT_EXT,
#if defined( VK_USE_PLATFORM_FUCHSIA )
- eZirconVmoFUCHSIA = VK_EXTERNAL_MEMORY_HANDLE_TYPE_ZIRCON_VMO_BIT_FUCHSIA
+ eZirconVmoFUCHSIA = VK_EXTERNAL_MEMORY_HANDLE_TYPE_ZIRCON_VMO_BIT_FUCHSIA,
#endif /*VK_USE_PLATFORM_FUCHSIA*/
+ eRdmaAddressNV = VK_EXTERNAL_MEMORY_HANDLE_TYPE_RDMA_ADDRESS_BIT_NV
};
using ExternalMemoryHandleTypeFlagBitsKHR = ExternalMemoryHandleTypeFlagBits;
@@ -4894,6 +4935,7 @@ namespace VULKAN_HPP_NAMESPACE
#if defined( VK_USE_PLATFORM_FUCHSIA )
case ExternalMemoryHandleTypeFlagBits::eZirconVmoFUCHSIA: return "ZirconVmoFUCHSIA";
#endif /*VK_USE_PLATFORM_FUCHSIA*/
+ case ExternalMemoryHandleTypeFlagBits::eRdmaAddressNV: return "RdmaAddressNV";
default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
}
}
@@ -5032,24 +5074,6 @@ namespace VULKAN_HPP_NAMESPACE
}
}
- enum class CommandPoolTrimFlagBits : VkCommandPoolTrimFlags
- {
- };
-
- VULKAN_HPP_INLINE std::string to_string( CommandPoolTrimFlagBits )
- {
- return "(void)";
- }
-
- enum class DescriptorUpdateTemplateCreateFlagBits : VkDescriptorUpdateTemplateCreateFlags
- {
- };
-
- VULKAN_HPP_INLINE std::string to_string( DescriptorUpdateTemplateCreateFlagBits )
- {
- return "(void)";
- }
-
//=== VK_VERSION_1_2 ===
enum class DriverId
@@ -5069,7 +5093,8 @@ namespace VULKAN_HPP_NAMESPACE
eMesaLlvmpipe = VK_DRIVER_ID_MESA_LLVMPIPE,
eMoltenvk = VK_DRIVER_ID_MOLTENVK,
eCoreaviProprietary = VK_DRIVER_ID_COREAVI_PROPRIETARY,
- eJuiceProprietary = VK_DRIVER_ID_JUICE_PROPRIETARY
+ eJuiceProprietary = VK_DRIVER_ID_JUICE_PROPRIETARY,
+ eVerisiliconProprietary = VK_DRIVER_ID_VERISILICON_PROPRIETARY
};
using DriverIdKHR = DriverId;
@@ -5093,6 +5118,7 @@ namespace VULKAN_HPP_NAMESPACE
case DriverId::eMoltenvk: return "Moltenvk";
case DriverId::eCoreaviProprietary: return "CoreaviProprietary";
case DriverId::eJuiceProprietary: return "JuiceProprietary";
+ case DriverId::eVerisiliconProprietary: return "VerisiliconProprietary";
default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
}
}
@@ -5681,18 +5707,18 @@ namespace VULKAN_HPP_NAMESPACE
}
}
- enum class VideoCapabilitiesFlagBitsKHR : VkVideoCapabilitiesFlagsKHR
+ enum class VideoCapabilityFlagBitsKHR : VkVideoCapabilityFlagsKHR
{
- eProtectedContent = VK_VIDEO_CAPABILITIES_PROTECTED_CONTENT_BIT_KHR,
- eSeparateReferenceImages = VK_VIDEO_CAPABILITIES_SEPARATE_REFERENCE_IMAGES_BIT_KHR
+ eProtectedContent = VK_VIDEO_CAPABILITY_PROTECTED_CONTENT_BIT_KHR,
+ eSeparateReferenceImages = VK_VIDEO_CAPABILITY_SEPARATE_REFERENCE_IMAGES_BIT_KHR
};
- VULKAN_HPP_INLINE std::string to_string( VideoCapabilitiesFlagBitsKHR value )
+ VULKAN_HPP_INLINE std::string to_string( VideoCapabilityFlagBitsKHR value )
{
switch ( value )
{
- case VideoCapabilitiesFlagBitsKHR::eProtectedContent: return "ProtectedContent";
- case VideoCapabilitiesFlagBitsKHR::eSeparateReferenceImages: return "SeparateReferenceImages";
+ case VideoCapabilityFlagBitsKHR::eProtectedContent: return "ProtectedContent";
+ case VideoCapabilityFlagBitsKHR::eSeparateReferenceImages: return "SeparateReferenceImages";
default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
}
}
@@ -5820,53 +5846,36 @@ namespace VULKAN_HPP_NAMESPACE
#if defined( VK_ENABLE_BETA_EXTENSIONS )
//=== VK_EXT_video_encode_h264 ===
- enum class VideoEncodeH264CapabilitiesFlagBitsEXT : VkVideoEncodeH264CapabilitiesFlagsEXT
- {
- eVkVideoEncodeH264CapabilityCabac = VK_VIDEO_ENCODE_H264_CAPABILITY_CABAC_BIT_EXT,
- eVkVideoEncodeH264CapabilityCavlc = VK_VIDEO_ENCODE_H264_CAPABILITY_CAVLC_BIT_EXT,
- eVkVideoEncodeH264CapabilityWeightedBiPredImplicit =
- VK_VIDEO_ENCODE_H264_CAPABILITY_WEIGHTED_BI_PRED_IMPLICIT_BIT_EXT,
- eVkVideoEncodeH264CapabilityTransform8X8 = VK_VIDEO_ENCODE_H264_CAPABILITY_TRANSFORM_8X8_BIT_EXT,
- eVkVideoEncodeH264CapabilityChromaQpOffset = VK_VIDEO_ENCODE_H264_CAPABILITY_CHROMA_QP_OFFSET_BIT_EXT,
- eVkVideoEncodeH264CapabilitySecondChromaQpOffset = VK_VIDEO_ENCODE_H264_CAPABILITY_SECOND_CHROMA_QP_OFFSET_BIT_EXT,
- eVkVideoEncodeH264CapabilityDeblockingFilterDisabled =
- VK_VIDEO_ENCODE_H264_CAPABILITY_DEBLOCKING_FILTER_DISABLED_BIT_EXT,
- eVkVideoEncodeH264CapabilityDeblockingFilterEnabled =
- VK_VIDEO_ENCODE_H264_CAPABILITY_DEBLOCKING_FILTER_ENABLED_BIT_EXT,
- eVkVideoEncodeH264CapabilityDeblockingFilterPartial =
- VK_VIDEO_ENCODE_H264_CAPABILITY_DEBLOCKING_FILTER_PARTIAL_BIT_EXT,
- eVkVideoEncodeH264CapabilityMultipleSlicePerFrame =
- VK_VIDEO_ENCODE_H264_CAPABILITY_MULTIPLE_SLICE_PER_FRAME_BIT_EXT,
- eVkVideoEncodeH264CapabilityEvenlyDistributedSliceSize =
- VK_VIDEO_ENCODE_H264_CAPABILITY_EVENLY_DISTRIBUTED_SLICE_SIZE_BIT_EXT
- };
-
- VULKAN_HPP_INLINE std::string to_string( VideoEncodeH264CapabilitiesFlagBitsEXT value )
- {
- switch ( value )
- {
- case VideoEncodeH264CapabilitiesFlagBitsEXT::eVkVideoEncodeH264CapabilityCabac:
- return "VkVideoEncodeH264CapabilityCabac";
- case VideoEncodeH264CapabilitiesFlagBitsEXT::eVkVideoEncodeH264CapabilityCavlc:
- return "VkVideoEncodeH264CapabilityCavlc";
- case VideoEncodeH264CapabilitiesFlagBitsEXT::eVkVideoEncodeH264CapabilityWeightedBiPredImplicit:
- return "VkVideoEncodeH264CapabilityWeightedBiPredImplicit";
- case VideoEncodeH264CapabilitiesFlagBitsEXT::eVkVideoEncodeH264CapabilityTransform8X8:
- return "VkVideoEncodeH264CapabilityTransform8X8";
- case VideoEncodeH264CapabilitiesFlagBitsEXT::eVkVideoEncodeH264CapabilityChromaQpOffset:
- return "VkVideoEncodeH264CapabilityChromaQpOffset";
- case VideoEncodeH264CapabilitiesFlagBitsEXT::eVkVideoEncodeH264CapabilitySecondChromaQpOffset:
- return "VkVideoEncodeH264CapabilitySecondChromaQpOffset";
- case VideoEncodeH264CapabilitiesFlagBitsEXT::eVkVideoEncodeH264CapabilityDeblockingFilterDisabled:
- return "VkVideoEncodeH264CapabilityDeblockingFilterDisabled";
- case VideoEncodeH264CapabilitiesFlagBitsEXT::eVkVideoEncodeH264CapabilityDeblockingFilterEnabled:
- return "VkVideoEncodeH264CapabilityDeblockingFilterEnabled";
- case VideoEncodeH264CapabilitiesFlagBitsEXT::eVkVideoEncodeH264CapabilityDeblockingFilterPartial:
- return "VkVideoEncodeH264CapabilityDeblockingFilterPartial";
- case VideoEncodeH264CapabilitiesFlagBitsEXT::eVkVideoEncodeH264CapabilityMultipleSlicePerFrame:
- return "VkVideoEncodeH264CapabilityMultipleSlicePerFrame";
- case VideoEncodeH264CapabilitiesFlagBitsEXT::eVkVideoEncodeH264CapabilityEvenlyDistributedSliceSize:
- return "VkVideoEncodeH264CapabilityEvenlyDistributedSliceSize";
+ enum class VideoEncodeH264CapabilityFlagBitsEXT : VkVideoEncodeH264CapabilityFlagsEXT
+ {
+ eCabac = VK_VIDEO_ENCODE_H264_CAPABILITY_CABAC_BIT_EXT,
+ eCavlc = VK_VIDEO_ENCODE_H264_CAPABILITY_CAVLC_BIT_EXT,
+ eWeightedBiPredImplicit = VK_VIDEO_ENCODE_H264_CAPABILITY_WEIGHTED_BI_PRED_IMPLICIT_BIT_EXT,
+ eTransform8X8 = VK_VIDEO_ENCODE_H264_CAPABILITY_TRANSFORM_8X8_BIT_EXT,
+ eChromaQpOffset = VK_VIDEO_ENCODE_H264_CAPABILITY_CHROMA_QP_OFFSET_BIT_EXT,
+ eSecondChromaQpOffset = VK_VIDEO_ENCODE_H264_CAPABILITY_SECOND_CHROMA_QP_OFFSET_BIT_EXT,
+ eDeblockingFilterDisabled = VK_VIDEO_ENCODE_H264_CAPABILITY_DEBLOCKING_FILTER_DISABLED_BIT_EXT,
+ eDeblockingFilterEnabled = VK_VIDEO_ENCODE_H264_CAPABILITY_DEBLOCKING_FILTER_ENABLED_BIT_EXT,
+ eDeblockingFilterPartial = VK_VIDEO_ENCODE_H264_CAPABILITY_DEBLOCKING_FILTER_PARTIAL_BIT_EXT,
+ eMultipleSlicePerFrame = VK_VIDEO_ENCODE_H264_CAPABILITY_MULTIPLE_SLICE_PER_FRAME_BIT_EXT,
+ eEvenlyDistributedSliceSize = VK_VIDEO_ENCODE_H264_CAPABILITY_EVENLY_DISTRIBUTED_SLICE_SIZE_BIT_EXT
+ };
+
+ VULKAN_HPP_INLINE std::string to_string( VideoEncodeH264CapabilityFlagBitsEXT value )
+ {
+ switch ( value )
+ {
+ case VideoEncodeH264CapabilityFlagBitsEXT::eCabac: return "Cabac";
+ case VideoEncodeH264CapabilityFlagBitsEXT::eCavlc: return "Cavlc";
+ case VideoEncodeH264CapabilityFlagBitsEXT::eWeightedBiPredImplicit: return "WeightedBiPredImplicit";
+ case VideoEncodeH264CapabilityFlagBitsEXT::eTransform8X8: return "Transform8X8";
+ case VideoEncodeH264CapabilityFlagBitsEXT::eChromaQpOffset: return "ChromaQpOffset";
+ case VideoEncodeH264CapabilityFlagBitsEXT::eSecondChromaQpOffset: return "SecondChromaQpOffset";
+ case VideoEncodeH264CapabilityFlagBitsEXT::eDeblockingFilterDisabled: return "DeblockingFilterDisabled";
+ case VideoEncodeH264CapabilityFlagBitsEXT::eDeblockingFilterEnabled: return "DeblockingFilterEnabled";
+ case VideoEncodeH264CapabilityFlagBitsEXT::eDeblockingFilterPartial: return "DeblockingFilterPartial";
+ case VideoEncodeH264CapabilityFlagBitsEXT::eMultipleSlicePerFrame: return "MultipleSlicePerFrame";
+ case VideoEncodeH264CapabilityFlagBitsEXT::eEvenlyDistributedSliceSize: return "EvenlyDistributedSliceSize";
default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
}
}
@@ -5927,21 +5936,20 @@ namespace VULKAN_HPP_NAMESPACE
#if defined( VK_ENABLE_BETA_EXTENSIONS )
//=== VK_EXT_video_decode_h264 ===
- enum class VideoDecodeH264FieldLayoutFlagBitsEXT : VkVideoDecodeH264FieldLayoutFlagsEXT
+ enum class VideoDecodeH264PictureLayoutFlagBitsEXT : VkVideoDecodeH264PictureLayoutFlagsEXT
{
- eVkVideoDecodeH264ProgressivePicturesOnly = VK_VIDEO_DECODE_H264_PROGRESSIVE_PICTURES_ONLY_EXT,
- eLineInterlacedPlane = VK_VIDEO_DECODE_H264_FIELD_LAYOUT_LINE_INTERLACED_PLANE_BIT_EXT,
- eSeparateInterlacedPlane = VK_VIDEO_DECODE_H264_FIELD_LAYOUT_SEPARATE_INTERLACED_PLANE_BIT_EXT
+ eProgressive = VK_VIDEO_DECODE_H264_PICTURE_LAYOUT_PROGRESSIVE_EXT,
+ eInterlacedInterleavedLines = VK_VIDEO_DECODE_H264_PICTURE_LAYOUT_INTERLACED_INTERLEAVED_LINES_BIT_EXT,
+ eInterlacedSeparatePlanes = VK_VIDEO_DECODE_H264_PICTURE_LAYOUT_INTERLACED_SEPARATE_PLANES_BIT_EXT
};
- VULKAN_HPP_INLINE std::string to_string( VideoDecodeH264FieldLayoutFlagBitsEXT value )
+ VULKAN_HPP_INLINE std::string to_string( VideoDecodeH264PictureLayoutFlagBitsEXT value )
{
switch ( value )
{
- case VideoDecodeH264FieldLayoutFlagBitsEXT::eVkVideoDecodeH264ProgressivePicturesOnly:
- return "VkVideoDecodeH264ProgressivePicturesOnly";
- case VideoDecodeH264FieldLayoutFlagBitsEXT::eLineInterlacedPlane: return "LineInterlacedPlane";
- case VideoDecodeH264FieldLayoutFlagBitsEXT::eSeparateInterlacedPlane: return "SeparateInterlacedPlane";
+ case VideoDecodeH264PictureLayoutFlagBitsEXT::eProgressive: return "Progressive";
+ case VideoDecodeH264PictureLayoutFlagBitsEXT::eInterlacedInterleavedLines: return "InterlacedInterleavedLines";
+ case VideoDecodeH264PictureLayoutFlagBitsEXT::eInterlacedSeparatePlanes: return "InterlacedSeparatePlanes";
default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
}
}
@@ -6526,11 +6534,13 @@ namespace VULKAN_HPP_NAMESPACE
enum class GeometryInstanceFlagBitsKHR : VkGeometryInstanceFlagsKHR
{
- eTriangleFacingCullDisable = VK_GEOMETRY_INSTANCE_TRIANGLE_FACING_CULL_DISABLE_BIT_KHR,
- eTriangleFrontCounterclockwise = VK_GEOMETRY_INSTANCE_TRIANGLE_FRONT_COUNTERCLOCKWISE_BIT_KHR,
- eForceOpaque = VK_GEOMETRY_INSTANCE_FORCE_OPAQUE_BIT_KHR,
- eForceNoOpaque = VK_GEOMETRY_INSTANCE_FORCE_NO_OPAQUE_BIT_KHR,
- eTriangleCullDisable = VK_GEOMETRY_INSTANCE_TRIANGLE_CULL_DISABLE_BIT_NV
+ eTriangleFacingCullDisable = VK_GEOMETRY_INSTANCE_TRIANGLE_FACING_CULL_DISABLE_BIT_KHR,
+ eTriangleFlipFacing = VK_GEOMETRY_INSTANCE_TRIANGLE_FLIP_FACING_BIT_KHR,
+ eForceOpaque = VK_GEOMETRY_INSTANCE_FORCE_OPAQUE_BIT_KHR,
+ eForceNoOpaque = VK_GEOMETRY_INSTANCE_FORCE_NO_OPAQUE_BIT_KHR,
+ eTriangleCullDisable = VK_GEOMETRY_INSTANCE_TRIANGLE_CULL_DISABLE_BIT_NV,
+ eTriangleFrontCounterclockwiseKHR = VK_GEOMETRY_INSTANCE_TRIANGLE_FRONT_COUNTERCLOCKWISE_BIT_KHR,
+ eTriangleFrontCounterclockwise = VK_GEOMETRY_INSTANCE_TRIANGLE_FRONT_COUNTERCLOCKWISE_BIT_NV
};
using GeometryInstanceFlagBitsNV = GeometryInstanceFlagBitsKHR;
@@ -6539,7 +6549,7 @@ namespace VULKAN_HPP_NAMESPACE
switch ( value )
{
case GeometryInstanceFlagBitsKHR::eTriangleFacingCullDisable: return "TriangleFacingCullDisable";
- case GeometryInstanceFlagBitsKHR::eTriangleFrontCounterclockwise: return "TriangleFrontCounterclockwise";
+ case GeometryInstanceFlagBitsKHR::eTriangleFlipFacing: return "TriangleFlipFacing";
case GeometryInstanceFlagBitsKHR::eForceOpaque: return "ForceOpaque";
case GeometryInstanceFlagBitsKHR::eForceNoOpaque: return "ForceNoOpaque";
default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
@@ -7414,6 +7424,22 @@ namespace VULKAN_HPP_NAMESPACE
return "(void)";
}
+ //=== VK_EXT_pipeline_creation_cache_control ===
+
+ enum class PipelineCacheCreateFlagBits : VkPipelineCacheCreateFlags
+ {
+ eExternallySynchronizedEXT = VK_PIPELINE_CACHE_CREATE_EXTERNALLY_SYNCHRONIZED_BIT_EXT
+ };
+
+ VULKAN_HPP_INLINE std::string to_string( PipelineCacheCreateFlagBits value )
+ {
+ switch ( value )
+ {
+ case PipelineCacheCreateFlagBits::eExternallySynchronizedEXT: return "ExternallySynchronizedEXT";
+ default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
+ }
+ }
+
#if defined( VK_ENABLE_BETA_EXTENSIONS )
//=== VK_KHR_video_encode_queue ===
@@ -7531,6 +7557,7 @@ namespace VULKAN_HPP_NAMESPACE
eTaskShaderNV = VK_PIPELINE_STAGE_2_TASK_SHADER_BIT_NV,
eMeshShaderNV = VK_PIPELINE_STAGE_2_MESH_SHADER_BIT_NV,
eSubpassShadingHUAWEI = VK_PIPELINE_STAGE_2_SUBPASS_SHADING_BIT_HUAWEI,
+ eInvocationMaskHUAWEI = VK_PIPELINE_STAGE_2_INVOCATION_MASK_BIT_HUAWEI,
eAccelerationStructureBuildNV = VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_NV,
eRayTracingShaderNV = VK_PIPELINE_STAGE_2_RAY_TRACING_SHADER_BIT_NV,
eShadingRateImageNV = VK_PIPELINE_STAGE_2_SHADING_RATE_IMAGE_BIT_NV,
@@ -7580,6 +7607,7 @@ namespace VULKAN_HPP_NAMESPACE
case PipelineStageFlagBits2KHR::eTaskShaderNV: return "TaskShaderNV";
case PipelineStageFlagBits2KHR::eMeshShaderNV: return "MeshShaderNV";
case PipelineStageFlagBits2KHR::eSubpassShadingHUAWEI: return "SubpassShadingHUAWEI";
+ case PipelineStageFlagBits2KHR::eInvocationMaskHUAWEI: return "InvocationMaskHUAWEI";
default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
}
}
@@ -7624,6 +7652,7 @@ namespace VULKAN_HPP_NAMESPACE
eAccelerationStructureWrite = VK_ACCESS_2_ACCELERATION_STRUCTURE_WRITE_BIT_KHR,
eFragmentDensityMapReadEXT = VK_ACCESS_2_FRAGMENT_DENSITY_MAP_READ_BIT_EXT,
eColorAttachmentReadNoncoherentEXT = VK_ACCESS_2_COLOR_ATTACHMENT_READ_NONCOHERENT_BIT_EXT,
+ eInvocationMaskReadHUAWEI = VK_ACCESS_2_INVOCATION_MASK_READ_BIT_HUAWEI,
eAccelerationStructureReadNV = VK_ACCESS_2_ACCELERATION_STRUCTURE_READ_BIT_NV,
eAccelerationStructureWriteNV = VK_ACCESS_2_ACCELERATION_STRUCTURE_WRITE_BIT_NV,
eShadingRateImageReadNV = VK_ACCESS_2_SHADING_RATE_IMAGE_READ_BIT_NV
@@ -7671,6 +7700,7 @@ namespace VULKAN_HPP_NAMESPACE
case AccessFlagBits2KHR::eAccelerationStructureWrite: return "AccelerationStructureWrite";
case AccessFlagBits2KHR::eFragmentDensityMapReadEXT: return "FragmentDensityMapReadEXT";
case AccessFlagBits2KHR::eColorAttachmentReadNoncoherentEXT: return "ColorAttachmentReadNoncoherentEXT";
+ case AccessFlagBits2KHR::eInvocationMaskReadHUAWEI: return "InvocationMaskReadHUAWEI";
default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
}
}
@@ -8014,8 +8044,6 @@ namespace VULKAN_HPP_NAMESPACE
#if defined( VK_ENABLE_BETA_EXTENSIONS )
if ( value & FormatFeatureFlagBits::eVideoDecodeOutputKHR )
result += "VideoDecodeOutputKHR | ";
-#endif /*VK_ENABLE_BETA_EXTENSIONS*/
-#if defined( VK_ENABLE_BETA_EXTENSIONS )
if ( value & FormatFeatureFlagBits::eVideoDecodeDpbKHR )
result += "VideoDecodeDpbKHR | ";
#endif /*VK_ENABLE_BETA_EXTENSIONS*/
@@ -8028,11 +8056,10 @@ namespace VULKAN_HPP_NAMESPACE
#if defined( VK_ENABLE_BETA_EXTENSIONS )
if ( value & FormatFeatureFlagBits::eVideoEncodeInputKHR )
result += "VideoEncodeInputKHR | ";
-#endif /*VK_ENABLE_BETA_EXTENSIONS*/
-#if defined( VK_ENABLE_BETA_EXTENSIONS )
if ( value & FormatFeatureFlagBits::eVideoEncodeDpbKHR )
result += "VideoEncodeDpbKHR | ";
#endif /*VK_ENABLE_BETA_EXTENSIONS*/
+
return "{ " + result.substr( 0, result.size() - 3 ) + " }";
}
@@ -8115,6 +8142,7 @@ namespace VULKAN_HPP_NAMESPACE
result += "SampleLocationsCompatibleDepthEXT | ";
if ( value & ImageCreateFlagBits::eSubsampledEXT )
result += "SubsampledEXT | ";
+
return "{ " + result.substr( 0, result.size() - 3 ) + " }";
}
@@ -8140,6 +8168,7 @@ namespace VULKAN_HPP_NAMESPACE
| VkFlags( ImageUsageFlagBits::eVideoEncodeDstKHR ) |
VkFlags( ImageUsageFlagBits::eVideoEncodeSrcKHR ) | VkFlags( ImageUsageFlagBits::eVideoEncodeDpbKHR )
#endif /*VK_ENABLE_BETA_EXTENSIONS*/
+ | VkFlags( ImageUsageFlagBits::eInvocationMaskHUAWEI )
};
};
@@ -8191,12 +8220,8 @@ namespace VULKAN_HPP_NAMESPACE
#if defined( VK_ENABLE_BETA_EXTENSIONS )
if ( value & ImageUsageFlagBits::eVideoDecodeDstKHR )
result += "VideoDecodeDstKHR | ";
-#endif /*VK_ENABLE_BETA_EXTENSIONS*/
-#if defined( VK_ENABLE_BETA_EXTENSIONS )
if ( value & ImageUsageFlagBits::eVideoDecodeSrcKHR )
result += "VideoDecodeSrcKHR | ";
-#endif /*VK_ENABLE_BETA_EXTENSIONS*/
-#if defined( VK_ENABLE_BETA_EXTENSIONS )
if ( value & ImageUsageFlagBits::eVideoDecodeDpbKHR )
result += "VideoDecodeDpbKHR | ";
#endif /*VK_ENABLE_BETA_EXTENSIONS*/
@@ -8207,15 +8232,14 @@ namespace VULKAN_HPP_NAMESPACE
#if defined( VK_ENABLE_BETA_EXTENSIONS )
if ( value & ImageUsageFlagBits::eVideoEncodeDstKHR )
result += "VideoEncodeDstKHR | ";
-#endif /*VK_ENABLE_BETA_EXTENSIONS*/
-#if defined( VK_ENABLE_BETA_EXTENSIONS )
if ( value & ImageUsageFlagBits::eVideoEncodeSrcKHR )
result += "VideoEncodeSrcKHR | ";
-#endif /*VK_ENABLE_BETA_EXTENSIONS*/
-#if defined( VK_ENABLE_BETA_EXTENSIONS )
if ( value & ImageUsageFlagBits::eVideoEncodeDpbKHR )
result += "VideoEncodeDpbKHR | ";
#endif /*VK_ENABLE_BETA_EXTENSIONS*/
+ if ( value & ImageUsageFlagBits::eInvocationMaskHUAWEI )
+ result += "InvocationMaskHUAWEI | ";
+
return "{ " + result.substr( 0, result.size() - 3 ) + " }";
}
@@ -8270,6 +8294,7 @@ namespace VULKAN_HPP_NAMESPACE
result += "DeviceLocal | ";
if ( value & MemoryHeapFlagBits::eMultiInstance )
result += "MultiInstance | ";
+
return "{ " + result.substr( 0, result.size() - 3 ) + " }";
}
@@ -8284,7 +8309,8 @@ namespace VULKAN_HPP_NAMESPACE
VkFlags( MemoryPropertyFlagBits::eHostCoherent ) | VkFlags( MemoryPropertyFlagBits::eHostCached ) |
VkFlags( MemoryPropertyFlagBits::eLazilyAllocated ) | VkFlags( MemoryPropertyFlagBits::eProtected ) |
VkFlags( MemoryPropertyFlagBits::eDeviceCoherentAMD ) |
- VkFlags( MemoryPropertyFlagBits::eDeviceUncachedAMD )
+ VkFlags( MemoryPropertyFlagBits::eDeviceUncachedAMD ) |
+ VkFlags( MemoryPropertyFlagBits::eRdmaCapableNV )
};
};
@@ -8334,6 +8360,9 @@ namespace VULKAN_HPP_NAMESPACE
result += "DeviceCoherentAMD | ";
if ( value & MemoryPropertyFlagBits::eDeviceUncachedAMD )
result += "DeviceUncachedAMD | ";
+ if ( value & MemoryPropertyFlagBits::eRdmaCapableNV )
+ result += "RdmaCapableNV | ";
+
return "{ " + result.substr( 0, result.size() - 3 ) + " }";
}
@@ -8394,11 +8423,10 @@ namespace VULKAN_HPP_NAMESPACE
#if defined( VK_ENABLE_BETA_EXTENSIONS )
if ( value & QueueFlagBits::eVideoDecodeKHR )
result += "VideoDecodeKHR | ";
-#endif /*VK_ENABLE_BETA_EXTENSIONS*/
-#if defined( VK_ENABLE_BETA_EXTENSIONS )
if ( value & QueueFlagBits::eVideoEncodeKHR )
result += "VideoEncodeKHR | ";
#endif /*VK_ENABLE_BETA_EXTENSIONS*/
+
return "{ " + result.substr( 0, result.size() - 3 ) + " }";
}
@@ -8459,6 +8487,7 @@ namespace VULKAN_HPP_NAMESPACE
result += "32 | ";
if ( value & SampleCountFlagBits::e64 )
result += "64 | ";
+
return "{ " + result.substr( 0, result.size() - 3 ) + " }";
}
@@ -8512,6 +8541,7 @@ namespace VULKAN_HPP_NAMESPACE
std::string result;
if ( value & DeviceQueueCreateFlagBits::eProtected )
result += "Protected | ";
+
return "{ " + result.substr( 0, result.size() - 3 ) + " }";
}
@@ -8623,6 +8653,7 @@ namespace VULKAN_HPP_NAMESPACE
result += "FragmentShadingRateAttachmentKHR | ";
if ( value & PipelineStageFlagBits::eCommandPreprocessNV )
result += "CommandPreprocessNV | ";
+
return "{ " + result.substr( 0, result.size() - 3 ) + " }";
}
@@ -8700,6 +8731,7 @@ namespace VULKAN_HPP_NAMESPACE
result += "MemoryPlane2EXT | ";
if ( value & ImageAspectFlagBits::eMemoryPlane3EXT )
result += "MemoryPlane3EXT | ";
+
return "{ " + result.substr( 0, result.size() - 3 ) + " }";
}
@@ -8752,6 +8784,7 @@ namespace VULKAN_HPP_NAMESPACE
result += "AlignedMipSize | ";
if ( value & SparseImageFormatFlagBits::eNonstandardBlockSize )
result += "NonstandardBlockSize | ";
+
return "{ " + result.substr( 0, result.size() - 3 ) + " }";
}
@@ -8798,6 +8831,7 @@ namespace VULKAN_HPP_NAMESPACE
std::string result;
if ( value & SparseMemoryBindFlagBits::eMetadata )
result += "Metadata | ";
+
return "{ " + result.substr( 0, result.size() - 3 ) + " }";
}
@@ -8843,6 +8877,7 @@ namespace VULKAN_HPP_NAMESPACE
std::string result;
if ( value & FenceCreateFlagBits::eSignaled )
result += "Signaled | ";
+
return "{ " + result.substr( 0, result.size() - 3 ) + " }";
}
@@ -8895,6 +8930,7 @@ namespace VULKAN_HPP_NAMESPACE
std::string result;
if ( value & EventCreateFlagBits::eDeviceOnlyKHR )
result += "DeviceOnlyKHR | ";
+
return "{ " + result.substr( 0, result.size() - 3 ) + " }";
}
@@ -8971,6 +9007,7 @@ namespace VULKAN_HPP_NAMESPACE
result += "TessellationEvaluationShaderInvocations | ";
if ( value & QueryPipelineStatisticFlagBits::eComputeShaderInvocations )
result += "ComputeShaderInvocations | ";
+
return "{ " + result.substr( 0, result.size() - 3 ) + " }";
}
@@ -9037,6 +9074,7 @@ namespace VULKAN_HPP_NAMESPACE
if ( value & QueryResultFlagBits::eWithStatusKHR )
result += "WithStatusKHR | ";
#endif /*VK_ENABLE_BETA_EXTENSIONS*/
+
return "{ " + result.substr( 0, result.size() - 3 ) + " }";
}
@@ -9092,6 +9130,7 @@ namespace VULKAN_HPP_NAMESPACE
result += "Protected | ";
if ( value & BufferCreateFlagBits::eDeviceAddressCaptureReplay )
result += "DeviceAddressCaptureReplay | ";
+
return "{ " + result.substr( 0, result.size() - 3 ) + " }";
}
@@ -9175,8 +9214,6 @@ namespace VULKAN_HPP_NAMESPACE
#if defined( VK_ENABLE_BETA_EXTENSIONS )
if ( value & BufferUsageFlagBits::eVideoDecodeSrcKHR )
result += "VideoDecodeSrcKHR | ";
-#endif /*VK_ENABLE_BETA_EXTENSIONS*/
-#if defined( VK_ENABLE_BETA_EXTENSIONS )
if ( value & BufferUsageFlagBits::eVideoDecodeDstKHR )
result += "VideoDecodeDstKHR | ";
#endif /*VK_ENABLE_BETA_EXTENSIONS*/
@@ -9195,11 +9232,10 @@ namespace VULKAN_HPP_NAMESPACE
#if defined( VK_ENABLE_BETA_EXTENSIONS )
if ( value & BufferUsageFlagBits::eVideoEncodeDstKHR )
result += "VideoEncodeDstKHR | ";
-#endif /*VK_ENABLE_BETA_EXTENSIONS*/
-#if defined( VK_ENABLE_BETA_EXTENSIONS )
if ( value & BufferUsageFlagBits::eVideoEncodeSrcKHR )
result += "VideoEncodeSrcKHR | ";
#endif /*VK_ENABLE_BETA_EXTENSIONS*/
+
return "{ " + result.substr( 0, result.size() - 3 ) + " }";
}
@@ -9256,6 +9292,7 @@ namespace VULKAN_HPP_NAMESPACE
result += "FragmentDensityMapDynamicEXT | ";
if ( value & ImageViewCreateFlagBits::eFragmentDensityMapDeferredEXT )
result += "FragmentDensityMapDeferredEXT | ";
+
return "{ " + result.substr( 0, result.size() - 3 ) + " }";
}
@@ -9309,6 +9346,7 @@ namespace VULKAN_HPP_NAMESPACE
std::string result;
if ( value & PipelineCacheCreateFlagBits::eExternallySynchronizedEXT )
result += "ExternallySynchronizedEXT | ";
+
return "{ " + result.substr( 0, result.size() - 3 ) + " }";
}
@@ -9362,6 +9400,7 @@ namespace VULKAN_HPP_NAMESPACE
result += "B | ";
if ( value & ColorComponentFlagBits::eA )
result += "A | ";
+
return "{ " + result.substr( 0, result.size() - 3 ) + " }";
}
@@ -9410,6 +9449,7 @@ namespace VULKAN_HPP_NAMESPACE
result += "Front | ";
if ( value & CullModeFlagBits::eBack )
result += "Back | ";
+
return "{ " + result.substr( 0, result.size() - 3 ) + " }";
}
@@ -9517,6 +9557,7 @@ namespace VULKAN_HPP_NAMESPACE
result += "EarlyReturnOnFailureEXT | ";
if ( value & PipelineCreateFlagBits::eRayTracingAllowMotionNV )
result += "RayTracingAllowMotionNV | ";
+
return "{ " + result.substr( 0, result.size() - 3 ) + " }";
}
@@ -9608,6 +9649,7 @@ namespace VULKAN_HPP_NAMESPACE
result += "AllowVaryingSubgroupSizeEXT | ";
if ( value & PipelineShaderStageCreateFlagBits::eRequireFullSubgroupsEXT )
result += "RequireFullSubgroupsEXT | ";
+
return "{ " + result.substr( 0, result.size() - 3 ) + " }";
}
@@ -9710,6 +9752,7 @@ namespace VULKAN_HPP_NAMESPACE
result += "MeshNV | ";
if ( value & ShaderStageFlagBits::eSubpassShadingHUAWEI )
result += "SubpassShadingHUAWEI | ";
+
return "{ " + result.substr( 0, result.size() - 3 ) + " }";
}
@@ -9758,6 +9801,7 @@ namespace VULKAN_HPP_NAMESPACE
result += "SubsampledEXT | ";
if ( value & SamplerCreateFlagBits::eSubsampledCoarseReconstructionEXT )
result += "SubsampledCoarseReconstructionEXT | ";
+
return "{ " + result.substr( 0, result.size() - 3 ) + " }";
}
@@ -9810,6 +9854,7 @@ namespace VULKAN_HPP_NAMESPACE
result += "UpdateAfterBind | ";
if ( value & DescriptorPoolCreateFlagBits::eHostOnlyVALVE )
result += "HostOnlyVALVE | ";
+
return "{ " + result.substr( 0, result.size() - 3 ) + " }";
}
@@ -9869,6 +9914,7 @@ namespace VULKAN_HPP_NAMESPACE
result += "PushDescriptorKHR | ";
if ( value & DescriptorSetLayoutCreateFlagBits::eHostOnlyPoolVALVE )
result += "HostOnlyPoolVALVE | ";
+
return "{ " + result.substr( 0, result.size() - 3 ) + " }";
}
@@ -9987,6 +10033,7 @@ namespace VULKAN_HPP_NAMESPACE
result += "CommandPreprocessReadNV | ";
if ( value & AccessFlagBits::eCommandPreprocessWriteNV )
result += "CommandPreprocessWriteNV | ";
+
return "{ " + result.substr( 0, result.size() - 3 ) + " }";
}
@@ -10033,6 +10080,7 @@ namespace VULKAN_HPP_NAMESPACE
std::string result;
if ( value & AttachmentDescriptionFlagBits::eMayAlias )
result += "MayAlias | ";
+
return "{ " + result.substr( 0, result.size() - 3 ) + " }";
}
@@ -10083,6 +10131,7 @@ namespace VULKAN_HPP_NAMESPACE
result += "DeviceGroup | ";
if ( value & DependencyFlagBits::eViewLocal )
result += "ViewLocal | ";
+
return "{ " + result.substr( 0, result.size() - 3 ) + " }";
}
@@ -10129,6 +10178,7 @@ namespace VULKAN_HPP_NAMESPACE
std::string result;
if ( value & FramebufferCreateFlagBits::eImageless )
result += "Imageless | ";
+
return "{ " + result.substr( 0, result.size() - 3 ) + " }";
}
@@ -10175,6 +10225,7 @@ namespace VULKAN_HPP_NAMESPACE
std::string result;
if ( value & RenderPassCreateFlagBits::eTransformQCOM )
result += "TransformQCOM | ";
+
return "{ " + result.substr( 0, result.size() - 3 ) + " }";
}
@@ -10230,6 +10281,7 @@ namespace VULKAN_HPP_NAMESPACE
result += "FragmentRegionQCOM | ";
if ( value & SubpassDescriptionFlagBits::eShaderResolveQCOM )
result += "ShaderResolveQCOM | ";
+
return "{ " + result.substr( 0, result.size() - 3 ) + " }";
}
@@ -10282,6 +10334,7 @@ namespace VULKAN_HPP_NAMESPACE
result += "ResetCommandBuffer | ";
if ( value & CommandPoolCreateFlagBits::eProtected )
result += "Protected | ";
+
return "{ " + result.substr( 0, result.size() - 3 ) + " }";
}
@@ -10328,6 +10381,7 @@ namespace VULKAN_HPP_NAMESPACE
std::string result;
if ( value & CommandPoolResetFlagBits::eReleaseResources )
result += "ReleaseResources | ";
+
return "{ " + result.substr( 0, result.size() - 3 ) + " }";
}
@@ -10374,6 +10428,7 @@ namespace VULKAN_HPP_NAMESPACE
std::string result;
if ( value & CommandBufferResetFlagBits::eReleaseResources )
result += "ReleaseResources | ";
+
return "{ " + result.substr( 0, result.size() - 3 ) + " }";
}
@@ -10426,6 +10481,7 @@ namespace VULKAN_HPP_NAMESPACE
result += "RenderPassContinue | ";
if ( value & CommandBufferUsageFlagBits::eSimultaneousUse )
result += "SimultaneousUse | ";
+
return "{ " + result.substr( 0, result.size() - 3 ) + " }";
}
@@ -10471,6 +10527,7 @@ namespace VULKAN_HPP_NAMESPACE
std::string result;
if ( value & QueryControlFlagBits::ePrecise )
result += "Precise | ";
+
return "{ " + result.substr( 0, result.size() - 3 ) + " }";
}
@@ -10519,6 +10576,7 @@ namespace VULKAN_HPP_NAMESPACE
result += "Front | ";
if ( value & StencilFaceFlagBits::eBack )
result += "Back | ";
+
return "{ " + result.substr( 0, result.size() - 3 ) + " }";
}
@@ -10587,6 +10645,7 @@ namespace VULKAN_HPP_NAMESPACE
result += "Quad | ";
if ( value & SubgroupFeatureFlagBits::ePartitionedNV )
result += "PartitionedNV | ";
+
return "{ " + result.substr( 0, result.size() - 3 ) + " }";
}
@@ -10642,6 +10701,7 @@ namespace VULKAN_HPP_NAMESPACE
result += "GenericSrc | ";
if ( value & PeerMemoryFeatureFlagBits::eGenericDst )
result += "GenericDst | ";
+
return "{ " + result.substr( 0, result.size() - 3 ) + " }";
}
@@ -10695,6 +10755,7 @@ namespace VULKAN_HPP_NAMESPACE
result += "DeviceAddress | ";
if ( value & MemoryAllocateFlagBits::eDeviceAddressCaptureReplay )
result += "DeviceAddressCaptureReplay | ";
+
return "{ " + result.substr( 0, result.size() - 3 ) + " }";
}
@@ -10739,6 +10800,7 @@ namespace VULKAN_HPP_NAMESPACE
#if defined( VK_USE_PLATFORM_FUCHSIA )
| VkFlags( ExternalMemoryHandleTypeFlagBits::eZirconVmoFUCHSIA )
#endif /*VK_USE_PLATFORM_FUCHSIA*/
+ | VkFlags( ExternalMemoryHandleTypeFlagBits::eRdmaAddressNV )
};
};
@@ -10802,6 +10864,9 @@ namespace VULKAN_HPP_NAMESPACE
if ( value & ExternalMemoryHandleTypeFlagBits::eZirconVmoFUCHSIA )
result += "ZirconVmoFUCHSIA | ";
#endif /*VK_USE_PLATFORM_FUCHSIA*/
+ if ( value & ExternalMemoryHandleTypeFlagBits::eRdmaAddressNV )
+ result += "RdmaAddressNV | ";
+
return "{ " + result.substr( 0, result.size() - 3 ) + " }";
}
@@ -10856,6 +10921,7 @@ namespace VULKAN_HPP_NAMESPACE
result += "Exportable | ";
if ( value & ExternalMemoryFeatureFlagBits::eImportable )
result += "Importable | ";
+
return "{ " + result.substr( 0, result.size() - 3 ) + " }";
}
@@ -10913,6 +10979,7 @@ namespace VULKAN_HPP_NAMESPACE
result += "OpaqueWin32Kmt | ";
if ( value & ExternalFenceHandleTypeFlagBits::eSyncFd )
result += "SyncFd | ";
+
return "{ " + result.substr( 0, result.size() - 3 ) + " }";
}
@@ -10964,6 +11031,7 @@ namespace VULKAN_HPP_NAMESPACE
result += "Exportable | ";
if ( value & ExternalFenceFeatureFlagBits::eImportable )
result += "Importable | ";
+
return "{ " + result.substr( 0, result.size() - 3 ) + " }";
}
@@ -11011,6 +11079,7 @@ namespace VULKAN_HPP_NAMESPACE
std::string result;
if ( value & FenceImportFlagBits::eTemporary )
result += "Temporary | ";
+
return "{ " + result.substr( 0, result.size() - 3 ) + " }";
}
@@ -11059,6 +11128,7 @@ namespace VULKAN_HPP_NAMESPACE
std::string result;
if ( value & SemaphoreImportFlagBits::eTemporary )
result += "Temporary | ";
+
return "{ " + result.substr( 0, result.size() - 3 ) + " }";
}
@@ -11126,6 +11196,7 @@ namespace VULKAN_HPP_NAMESPACE
if ( value & ExternalSemaphoreHandleTypeFlagBits::eZirconEventFUCHSIA )
result += "ZirconEventFUCHSIA | ";
#endif /*VK_USE_PLATFORM_FUCHSIA*/
+
return "{ " + result.substr( 0, result.size() - 3 ) + " }";
}
@@ -11177,6 +11248,7 @@ namespace VULKAN_HPP_NAMESPACE
result += "Exportable | ";
if ( value & ExternalSemaphoreFeatureFlagBits::eImportable )
result += "Importable | ";
+
return "{ " + result.substr( 0, result.size() - 3 ) + " }";
}
@@ -11236,6 +11308,7 @@ namespace VULKAN_HPP_NAMESPACE
result += "PartiallyBound | ";
if ( value & DescriptorBindingFlagBits::eVariableDescriptorCount )
result += "VariableDescriptorCount | ";
+
return "{ " + result.substr( 0, result.size() - 3 ) + " }";
}
@@ -11291,6 +11364,7 @@ namespace VULKAN_HPP_NAMESPACE
result += "Min | ";
if ( value & ResolveModeFlagBits::eMax )
result += "Max | ";
+
return "{ " + result.substr( 0, result.size() - 3 ) + " }";
}
@@ -11338,6 +11412,7 @@ namespace VULKAN_HPP_NAMESPACE
std::string result;
if ( value & SemaphoreWaitFlagBits::eAny )
result += "Any | ";
+
return "{ " + result.substr( 0, result.size() - 3 ) + " }";
}
@@ -11393,6 +11468,7 @@ namespace VULKAN_HPP_NAMESPACE
result += "PostMultiplied | ";
if ( value & CompositeAlphaFlagBitsKHR::eInherit )
result += "Inherit | ";
+
return "{ " + result.substr( 0, result.size() - 3 ) + " }";
}
@@ -11447,6 +11523,7 @@ namespace VULKAN_HPP_NAMESPACE
result += "Protected | ";
if ( value & SwapchainCreateFlagBitsKHR::eMutableFormat )
result += "MutableFormat | ";
+
return "{ " + result.substr( 0, result.size() - 3 ) + " }";
}
@@ -11502,6 +11579,7 @@ namespace VULKAN_HPP_NAMESPACE
result += "Sum | ";
if ( value & DeviceGroupPresentModeFlagBitsKHR::eLocalMultiDevice )
result += "LocalMultiDevice | ";
+
return "{ " + result.substr( 0, result.size() - 3 ) + " }";
}
@@ -11565,6 +11643,7 @@ namespace VULKAN_HPP_NAMESPACE
result += "PerPixel | ";
if ( value & DisplayPlaneAlphaFlagBitsKHR::ePerPixelPremultiplied )
result += "PerPixelPremultiplied | ";
+
return "{ " + result.substr( 0, result.size() - 3 ) + " }";
}
@@ -11641,6 +11720,7 @@ namespace VULKAN_HPP_NAMESPACE
result += "HorizontalMirrorRotate270 | ";
if ( value & SurfaceTransformFlagBitsKHR::eInherit )
result += "Inherit | ";
+
return "{ " + result.substr( 0, result.size() - 3 ) + " }";
}
@@ -11754,6 +11834,7 @@ namespace VULKAN_HPP_NAMESPACE
result += "Error | ";
if ( value & DebugReportFlagBitsEXT::eDebug )
result += "Debug | ";
+
return "{ " + result.substr( 0, result.size() - 3 ) + " }";
}
@@ -11809,15 +11890,12 @@ namespace VULKAN_HPP_NAMESPACE
# if defined( VK_ENABLE_BETA_EXTENSIONS )
if ( value & VideoCodecOperationFlagBitsKHR::eEncodeH264EXT )
result += "EncodeH264EXT | ";
-# endif /*VK_ENABLE_BETA_EXTENSIONS*/
-# if defined( VK_ENABLE_BETA_EXTENSIONS )
if ( value & VideoCodecOperationFlagBitsKHR::eDecodeH264EXT )
result += "DecodeH264EXT | ";
-# endif /*VK_ENABLE_BETA_EXTENSIONS*/
-# if defined( VK_ENABLE_BETA_EXTENSIONS )
if ( value & VideoCodecOperationFlagBitsKHR::eDecodeH265EXT )
result += "DecodeH265EXT | ";
# endif /*VK_ENABLE_BETA_EXTENSIONS*/
+
return "{ " + result.substr( 0, result.size() - 3 ) + " }";
}
@@ -11873,6 +11951,7 @@ namespace VULKAN_HPP_NAMESPACE
result += "422 | ";
if ( value & VideoChromaSubsamplingFlagBitsKHR::e444 )
result += "444 | ";
+
return "{ " + result.substr( 0, result.size() - 3 ) + " }";
}
@@ -11925,55 +12004,57 @@ namespace VULKAN_HPP_NAMESPACE
result += "10 | ";
if ( value & VideoComponentBitDepthFlagBitsKHR::e12 )
result += "12 | ";
+
return "{ " + result.substr( 0, result.size() - 3 ) + " }";
}
- using VideoCapabilitiesFlagsKHR = Flags<VideoCapabilitiesFlagBitsKHR>;
+ using VideoCapabilityFlagsKHR = Flags<VideoCapabilityFlagBitsKHR>;
template <>
- struct FlagTraits<VideoCapabilitiesFlagBitsKHR>
+ struct FlagTraits<VideoCapabilityFlagBitsKHR>
{
enum : VkFlags
{
- allFlags = VkFlags( VideoCapabilitiesFlagBitsKHR::eProtectedContent ) |
- VkFlags( VideoCapabilitiesFlagBitsKHR::eSeparateReferenceImages )
+ allFlags = VkFlags( VideoCapabilityFlagBitsKHR::eProtectedContent ) |
+ VkFlags( VideoCapabilityFlagBitsKHR::eSeparateReferenceImages )
};
};
- VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR VideoCapabilitiesFlagsKHR
- operator|( VideoCapabilitiesFlagBitsKHR bit0, VideoCapabilitiesFlagBitsKHR bit1 ) VULKAN_HPP_NOEXCEPT
+ VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR VideoCapabilityFlagsKHR
+ operator|( VideoCapabilityFlagBitsKHR bit0, VideoCapabilityFlagBitsKHR bit1 ) VULKAN_HPP_NOEXCEPT
{
- return VideoCapabilitiesFlagsKHR( bit0 ) | bit1;
+ return VideoCapabilityFlagsKHR( bit0 ) | bit1;
}
- VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR VideoCapabilitiesFlagsKHR
- operator&(VideoCapabilitiesFlagBitsKHR bit0, VideoCapabilitiesFlagBitsKHR bit1)VULKAN_HPP_NOEXCEPT
+ VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR VideoCapabilityFlagsKHR
+ operator&(VideoCapabilityFlagBitsKHR bit0, VideoCapabilityFlagBitsKHR bit1)VULKAN_HPP_NOEXCEPT
{
- return VideoCapabilitiesFlagsKHR( bit0 ) & bit1;
+ return VideoCapabilityFlagsKHR( bit0 ) & bit1;
}
- VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR VideoCapabilitiesFlagsKHR
- operator^( VideoCapabilitiesFlagBitsKHR bit0, VideoCapabilitiesFlagBitsKHR bit1 ) VULKAN_HPP_NOEXCEPT
+ VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR VideoCapabilityFlagsKHR
+ operator^( VideoCapabilityFlagBitsKHR bit0, VideoCapabilityFlagBitsKHR bit1 ) VULKAN_HPP_NOEXCEPT
{
- return VideoCapabilitiesFlagsKHR( bit0 ) ^ bit1;
+ return VideoCapabilityFlagsKHR( bit0 ) ^ bit1;
}
- VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR VideoCapabilitiesFlagsKHR operator~( VideoCapabilitiesFlagBitsKHR bits )
+ VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR VideoCapabilityFlagsKHR operator~( VideoCapabilityFlagBitsKHR bits )
VULKAN_HPP_NOEXCEPT
{
- return ~( VideoCapabilitiesFlagsKHR( bits ) );
+ return ~( VideoCapabilityFlagsKHR( bits ) );
}
- VULKAN_HPP_INLINE std::string to_string( VideoCapabilitiesFlagsKHR value )
+ VULKAN_HPP_INLINE std::string to_string( VideoCapabilityFlagsKHR value )
{
if ( !value )
return "{}";
std::string result;
- if ( value & VideoCapabilitiesFlagBitsKHR::eProtectedContent )
+ if ( value & VideoCapabilityFlagBitsKHR::eProtectedContent )
result += "ProtectedContent | ";
- if ( value & VideoCapabilitiesFlagBitsKHR::eSeparateReferenceImages )
+ if ( value & VideoCapabilityFlagBitsKHR::eSeparateReferenceImages )
result += "SeparateReferenceImages | ";
+
return "{ " + result.substr( 0, result.size() - 3 ) + " }";
}
@@ -12021,6 +12102,7 @@ namespace VULKAN_HPP_NAMESPACE
std::string result;
if ( value & VideoSessionCreateFlagBitsKHR::eProtectedContent )
result += "ProtectedContent | ";
+
return "{ " + result.substr( 0, result.size() - 3 ) + " }";
}
@@ -12081,6 +12163,7 @@ namespace VULKAN_HPP_NAMESPACE
std::string result;
if ( value & VideoCodingControlFlagBitsKHR::eReset )
result += "Reset | ";
+
return "{ " + result.substr( 0, result.size() - 3 ) + " }";
}
@@ -12134,6 +12217,7 @@ namespace VULKAN_HPP_NAMESPACE
result += "Power | ";
if ( value & VideoCodingQualityPresetFlagBitsKHR::eQuality )
result += "Quality | ";
+
return "{ " + result.substr( 0, result.size() - 3 ) + " }";
}
#endif /*VK_ENABLE_BETA_EXTENSIONS*/
@@ -12184,6 +12268,7 @@ namespace VULKAN_HPP_NAMESPACE
std::string result;
if ( value & VideoDecodeFlagBitsKHR::eReserved0 )
result += "Reserved0 | ";
+
return "{ " + result.substr( 0, result.size() - 3 ) + " }";
}
#endif /*VK_ENABLE_BETA_EXTENSIONS*/
@@ -12200,80 +12285,80 @@ namespace VULKAN_HPP_NAMESPACE
#if defined( VK_ENABLE_BETA_EXTENSIONS )
//=== VK_EXT_video_encode_h264 ===
- using VideoEncodeH264CapabilitiesFlagsEXT = Flags<VideoEncodeH264CapabilitiesFlagBitsEXT>;
+ using VideoEncodeH264CapabilityFlagsEXT = Flags<VideoEncodeH264CapabilityFlagBitsEXT>;
template <>
- struct FlagTraits<VideoEncodeH264CapabilitiesFlagBitsEXT>
+ struct FlagTraits<VideoEncodeH264CapabilityFlagBitsEXT>
{
enum : VkFlags
{
- allFlags =
- VkFlags( VideoEncodeH264CapabilitiesFlagBitsEXT::eVkVideoEncodeH264CapabilityCabac ) |
- VkFlags( VideoEncodeH264CapabilitiesFlagBitsEXT::eVkVideoEncodeH264CapabilityCavlc ) |
- VkFlags( VideoEncodeH264CapabilitiesFlagBitsEXT::eVkVideoEncodeH264CapabilityWeightedBiPredImplicit ) |
- VkFlags( VideoEncodeH264CapabilitiesFlagBitsEXT::eVkVideoEncodeH264CapabilityTransform8X8 ) |
- VkFlags( VideoEncodeH264CapabilitiesFlagBitsEXT::eVkVideoEncodeH264CapabilityChromaQpOffset ) |
- VkFlags( VideoEncodeH264CapabilitiesFlagBitsEXT::eVkVideoEncodeH264CapabilitySecondChromaQpOffset ) |
- VkFlags( VideoEncodeH264CapabilitiesFlagBitsEXT::eVkVideoEncodeH264CapabilityDeblockingFilterDisabled ) |
- VkFlags( VideoEncodeH264CapabilitiesFlagBitsEXT::eVkVideoEncodeH264CapabilityDeblockingFilterEnabled ) |
- VkFlags( VideoEncodeH264CapabilitiesFlagBitsEXT::eVkVideoEncodeH264CapabilityDeblockingFilterPartial ) |
- VkFlags( VideoEncodeH264CapabilitiesFlagBitsEXT::eVkVideoEncodeH264CapabilityMultipleSlicePerFrame ) |
- VkFlags( VideoEncodeH264CapabilitiesFlagBitsEXT::eVkVideoEncodeH264CapabilityEvenlyDistributedSliceSize )
+ allFlags = VkFlags( VideoEncodeH264CapabilityFlagBitsEXT::eCabac ) |
+ VkFlags( VideoEncodeH264CapabilityFlagBitsEXT::eCavlc ) |
+ VkFlags( VideoEncodeH264CapabilityFlagBitsEXT::eWeightedBiPredImplicit ) |
+ VkFlags( VideoEncodeH264CapabilityFlagBitsEXT::eTransform8X8 ) |
+ VkFlags( VideoEncodeH264CapabilityFlagBitsEXT::eChromaQpOffset ) |
+ VkFlags( VideoEncodeH264CapabilityFlagBitsEXT::eSecondChromaQpOffset ) |
+ VkFlags( VideoEncodeH264CapabilityFlagBitsEXT::eDeblockingFilterDisabled ) |
+ VkFlags( VideoEncodeH264CapabilityFlagBitsEXT::eDeblockingFilterEnabled ) |
+ VkFlags( VideoEncodeH264CapabilityFlagBitsEXT::eDeblockingFilterPartial ) |
+ VkFlags( VideoEncodeH264CapabilityFlagBitsEXT::eMultipleSlicePerFrame ) |
+ VkFlags( VideoEncodeH264CapabilityFlagBitsEXT::eEvenlyDistributedSliceSize )
};
};
- VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR VideoEncodeH264CapabilitiesFlagsEXT operator|(
- VideoEncodeH264CapabilitiesFlagBitsEXT bit0, VideoEncodeH264CapabilitiesFlagBitsEXT bit1 ) VULKAN_HPP_NOEXCEPT
+ VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR VideoEncodeH264CapabilityFlagsEXT operator|(
+ VideoEncodeH264CapabilityFlagBitsEXT bit0, VideoEncodeH264CapabilityFlagBitsEXT bit1 ) VULKAN_HPP_NOEXCEPT
{
- return VideoEncodeH264CapabilitiesFlagsEXT( bit0 ) | bit1;
+ return VideoEncodeH264CapabilityFlagsEXT( bit0 ) | bit1;
}
- VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR VideoEncodeH264CapabilitiesFlagsEXT operator&(
- VideoEncodeH264CapabilitiesFlagBitsEXT bit0, VideoEncodeH264CapabilitiesFlagBitsEXT bit1)VULKAN_HPP_NOEXCEPT
+ VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR VideoEncodeH264CapabilityFlagsEXT
+ operator&(VideoEncodeH264CapabilityFlagBitsEXT bit0, VideoEncodeH264CapabilityFlagBitsEXT bit1)VULKAN_HPP_NOEXCEPT
{
- return VideoEncodeH264CapabilitiesFlagsEXT( bit0 ) & bit1;
+ return VideoEncodeH264CapabilityFlagsEXT( bit0 ) & bit1;
}
- VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR VideoEncodeH264CapabilitiesFlagsEXT operator^(
- VideoEncodeH264CapabilitiesFlagBitsEXT bit0, VideoEncodeH264CapabilitiesFlagBitsEXT bit1 ) VULKAN_HPP_NOEXCEPT
+ VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR VideoEncodeH264CapabilityFlagsEXT operator^(
+ VideoEncodeH264CapabilityFlagBitsEXT bit0, VideoEncodeH264CapabilityFlagBitsEXT bit1 ) VULKAN_HPP_NOEXCEPT
{
- return VideoEncodeH264CapabilitiesFlagsEXT( bit0 ) ^ bit1;
+ return VideoEncodeH264CapabilityFlagsEXT( bit0 ) ^ bit1;
}
- VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR VideoEncodeH264CapabilitiesFlagsEXT
- operator~( VideoEncodeH264CapabilitiesFlagBitsEXT bits ) VULKAN_HPP_NOEXCEPT
+ VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR VideoEncodeH264CapabilityFlagsEXT
+ operator~( VideoEncodeH264CapabilityFlagBitsEXT bits ) VULKAN_HPP_NOEXCEPT
{
- return ~( VideoEncodeH264CapabilitiesFlagsEXT( bits ) );
+ return ~( VideoEncodeH264CapabilityFlagsEXT( bits ) );
}
- VULKAN_HPP_INLINE std::string to_string( VideoEncodeH264CapabilitiesFlagsEXT value )
+ VULKAN_HPP_INLINE std::string to_string( VideoEncodeH264CapabilityFlagsEXT value )
{
if ( !value )
return "{}";
std::string result;
- if ( value & VideoEncodeH264CapabilitiesFlagBitsEXT::eVkVideoEncodeH264CapabilityCabac )
- result += "VkVideoEncodeH264CapabilityCabac | ";
- if ( value & VideoEncodeH264CapabilitiesFlagBitsEXT::eVkVideoEncodeH264CapabilityCavlc )
- result += "VkVideoEncodeH264CapabilityCavlc | ";
- if ( value & VideoEncodeH264CapabilitiesFlagBitsEXT::eVkVideoEncodeH264CapabilityWeightedBiPredImplicit )
- result += "VkVideoEncodeH264CapabilityWeightedBiPredImplicit | ";
- if ( value & VideoEncodeH264CapabilitiesFlagBitsEXT::eVkVideoEncodeH264CapabilityTransform8X8 )
- result += "VkVideoEncodeH264CapabilityTransform8X8 | ";
- if ( value & VideoEncodeH264CapabilitiesFlagBitsEXT::eVkVideoEncodeH264CapabilityChromaQpOffset )
- result += "VkVideoEncodeH264CapabilityChromaQpOffset | ";
- if ( value & VideoEncodeH264CapabilitiesFlagBitsEXT::eVkVideoEncodeH264CapabilitySecondChromaQpOffset )
- result += "VkVideoEncodeH264CapabilitySecondChromaQpOffset | ";
- if ( value & VideoEncodeH264CapabilitiesFlagBitsEXT::eVkVideoEncodeH264CapabilityDeblockingFilterDisabled )
- result += "VkVideoEncodeH264CapabilityDeblockingFilterDisabled | ";
- if ( value & VideoEncodeH264CapabilitiesFlagBitsEXT::eVkVideoEncodeH264CapabilityDeblockingFilterEnabled )
- result += "VkVideoEncodeH264CapabilityDeblockingFilterEnabled | ";
- if ( value & VideoEncodeH264CapabilitiesFlagBitsEXT::eVkVideoEncodeH264CapabilityDeblockingFilterPartial )
- result += "VkVideoEncodeH264CapabilityDeblockingFilterPartial | ";
- if ( value & VideoEncodeH264CapabilitiesFlagBitsEXT::eVkVideoEncodeH264CapabilityMultipleSlicePerFrame )
- result += "VkVideoEncodeH264CapabilityMultipleSlicePerFrame | ";
- if ( value & VideoEncodeH264CapabilitiesFlagBitsEXT::eVkVideoEncodeH264CapabilityEvenlyDistributedSliceSize )
- result += "VkVideoEncodeH264CapabilityEvenlyDistributedSliceSize | ";
+ if ( value & VideoEncodeH264CapabilityFlagBitsEXT::eCabac )
+ result += "Cabac | ";
+ if ( value & VideoEncodeH264CapabilityFlagBitsEXT::eCavlc )
+ result += "Cavlc | ";
+ if ( value & VideoEncodeH264CapabilityFlagBitsEXT::eWeightedBiPredImplicit )
+ result += "WeightedBiPredImplicit | ";
+ if ( value & VideoEncodeH264CapabilityFlagBitsEXT::eTransform8X8 )
+ result += "Transform8X8 | ";
+ if ( value & VideoEncodeH264CapabilityFlagBitsEXT::eChromaQpOffset )
+ result += "ChromaQpOffset | ";
+ if ( value & VideoEncodeH264CapabilityFlagBitsEXT::eSecondChromaQpOffset )
+ result += "SecondChromaQpOffset | ";
+ if ( value & VideoEncodeH264CapabilityFlagBitsEXT::eDeblockingFilterDisabled )
+ result += "DeblockingFilterDisabled | ";
+ if ( value & VideoEncodeH264CapabilityFlagBitsEXT::eDeblockingFilterEnabled )
+ result += "DeblockingFilterEnabled | ";
+ if ( value & VideoEncodeH264CapabilityFlagBitsEXT::eDeblockingFilterPartial )
+ result += "DeblockingFilterPartial | ";
+ if ( value & VideoEncodeH264CapabilityFlagBitsEXT::eMultipleSlicePerFrame )
+ result += "MultipleSlicePerFrame | ";
+ if ( value & VideoEncodeH264CapabilityFlagBitsEXT::eEvenlyDistributedSliceSize )
+ result += "EvenlyDistributedSliceSize | ";
+
return "{ " + result.substr( 0, result.size() - 3 ) + " }";
}
@@ -12326,6 +12411,7 @@ namespace VULKAN_HPP_NAMESPACE
result += "Slice | ";
if ( value & VideoEncodeH264InputModeFlagBitsEXT::eNonVcl )
result += "NonVcl | ";
+
return "{ " + result.substr( 0, result.size() - 3 ) + " }";
}
@@ -12378,6 +12464,7 @@ namespace VULKAN_HPP_NAMESPACE
result += "Slice | ";
if ( value & VideoEncodeH264OutputModeFlagBitsEXT::eNonVcl )
result += "NonVcl | ";
+
return "{ " + result.substr( 0, result.size() - 3 ) + " }";
}
@@ -12425,6 +12512,7 @@ namespace VULKAN_HPP_NAMESPACE
std::string result;
if ( value & VideoEncodeH264CreateFlagBitsEXT::eReserved0 )
result += "Reserved0 | ";
+
return "{ " + result.substr( 0, result.size() - 3 ) + " }";
}
#endif /*VK_ENABLE_BETA_EXTENSIONS*/
@@ -12432,53 +12520,54 @@ namespace VULKAN_HPP_NAMESPACE
#if defined( VK_ENABLE_BETA_EXTENSIONS )
//=== VK_EXT_video_decode_h264 ===
- using VideoDecodeH264FieldLayoutFlagsEXT = Flags<VideoDecodeH264FieldLayoutFlagBitsEXT>;
+ using VideoDecodeH264PictureLayoutFlagsEXT = Flags<VideoDecodeH264PictureLayoutFlagBitsEXT>;
template <>
- struct FlagTraits<VideoDecodeH264FieldLayoutFlagBitsEXT>
+ struct FlagTraits<VideoDecodeH264PictureLayoutFlagBitsEXT>
{
enum : VkFlags
{
- allFlags = VkFlags( VideoDecodeH264FieldLayoutFlagBitsEXT::eVkVideoDecodeH264ProgressivePicturesOnly ) |
- VkFlags( VideoDecodeH264FieldLayoutFlagBitsEXT::eLineInterlacedPlane ) |
- VkFlags( VideoDecodeH264FieldLayoutFlagBitsEXT::eSeparateInterlacedPlane )
+ allFlags = VkFlags( VideoDecodeH264PictureLayoutFlagBitsEXT::eProgressive ) |
+ VkFlags( VideoDecodeH264PictureLayoutFlagBitsEXT::eInterlacedInterleavedLines ) |
+ VkFlags( VideoDecodeH264PictureLayoutFlagBitsEXT::eInterlacedSeparatePlanes )
};
};
- VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR VideoDecodeH264FieldLayoutFlagsEXT operator|(
- VideoDecodeH264FieldLayoutFlagBitsEXT bit0, VideoDecodeH264FieldLayoutFlagBitsEXT bit1 ) VULKAN_HPP_NOEXCEPT
+ VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR VideoDecodeH264PictureLayoutFlagsEXT operator|(
+ VideoDecodeH264PictureLayoutFlagBitsEXT bit0, VideoDecodeH264PictureLayoutFlagBitsEXT bit1 ) VULKAN_HPP_NOEXCEPT
{
- return VideoDecodeH264FieldLayoutFlagsEXT( bit0 ) | bit1;
+ return VideoDecodeH264PictureLayoutFlagsEXT( bit0 ) | bit1;
}
- VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR VideoDecodeH264FieldLayoutFlagsEXT
- operator&(VideoDecodeH264FieldLayoutFlagBitsEXT bit0, VideoDecodeH264FieldLayoutFlagBitsEXT bit1)VULKAN_HPP_NOEXCEPT
+ VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR VideoDecodeH264PictureLayoutFlagsEXT operator&(
+ VideoDecodeH264PictureLayoutFlagBitsEXT bit0, VideoDecodeH264PictureLayoutFlagBitsEXT bit1)VULKAN_HPP_NOEXCEPT
{
- return VideoDecodeH264FieldLayoutFlagsEXT( bit0 ) & bit1;
+ return VideoDecodeH264PictureLayoutFlagsEXT( bit0 ) & bit1;
}
- VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR VideoDecodeH264FieldLayoutFlagsEXT operator^(
- VideoDecodeH264FieldLayoutFlagBitsEXT bit0, VideoDecodeH264FieldLayoutFlagBitsEXT bit1 ) VULKAN_HPP_NOEXCEPT
+ VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR VideoDecodeH264PictureLayoutFlagsEXT operator^(
+ VideoDecodeH264PictureLayoutFlagBitsEXT bit0, VideoDecodeH264PictureLayoutFlagBitsEXT bit1 ) VULKAN_HPP_NOEXCEPT
{
- return VideoDecodeH264FieldLayoutFlagsEXT( bit0 ) ^ bit1;
+ return VideoDecodeH264PictureLayoutFlagsEXT( bit0 ) ^ bit1;
}
- VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR VideoDecodeH264FieldLayoutFlagsEXT
- operator~( VideoDecodeH264FieldLayoutFlagBitsEXT bits ) VULKAN_HPP_NOEXCEPT
+ VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR VideoDecodeH264PictureLayoutFlagsEXT
+ operator~( VideoDecodeH264PictureLayoutFlagBitsEXT bits ) VULKAN_HPP_NOEXCEPT
{
- return ~( VideoDecodeH264FieldLayoutFlagsEXT( bits ) );
+ return ~( VideoDecodeH264PictureLayoutFlagsEXT( bits ) );
}
- VULKAN_HPP_INLINE std::string to_string( VideoDecodeH264FieldLayoutFlagsEXT value )
+ VULKAN_HPP_INLINE std::string to_string( VideoDecodeH264PictureLayoutFlagsEXT value )
{
if ( !value )
return "{}";
std::string result;
- if ( value & VideoDecodeH264FieldLayoutFlagBitsEXT::eLineInterlacedPlane )
- result += "LineInterlacedPlane | ";
- if ( value & VideoDecodeH264FieldLayoutFlagBitsEXT::eSeparateInterlacedPlane )
- result += "SeparateInterlacedPlane | ";
+ if ( value & VideoDecodeH264PictureLayoutFlagBitsEXT::eInterlacedInterleavedLines )
+ result += "InterlacedInterleavedLines | ";
+ if ( value & VideoDecodeH264PictureLayoutFlagBitsEXT::eInterlacedSeparatePlanes )
+ result += "InterlacedSeparatePlanes | ";
+
return "{ " + result.substr( 0, result.size() - 3 ) + " }";
}
@@ -12555,6 +12644,7 @@ namespace VULKAN_HPP_NAMESPACE
result += "D3D11Image | ";
if ( value & ExternalMemoryHandleTypeFlagBitsNV::eD3D11ImageKmt )
result += "D3D11ImageKmt | ";
+
return "{ " + result.substr( 0, result.size() - 3 ) + " }";
}
@@ -12607,6 +12697,7 @@ namespace VULKAN_HPP_NAMESPACE
result += "Exportable | ";
if ( value & ExternalMemoryFeatureFlagBitsNV::eImportable )
result += "Importable | ";
+
return "{ " + result.substr( 0, result.size() - 3 ) + " }";
}
@@ -12666,6 +12757,7 @@ namespace VULKAN_HPP_NAMESPACE
std::string result;
if ( value & ConditionalRenderingFlagBitsEXT::eInverted )
result += "Inverted | ";
+
return "{ " + result.substr( 0, result.size() - 3 ) + " }";
}
@@ -12714,6 +12806,7 @@ namespace VULKAN_HPP_NAMESPACE
std::string result;
if ( value & SurfaceCounterFlagBitsEXT::eVblank )
result += "Vblank | ";
+
return "{ " + result.substr( 0, result.size() - 3 ) + " }";
}
@@ -12802,6 +12895,7 @@ namespace VULKAN_HPP_NAMESPACE
result += "PerformanceImpacting | ";
if ( value & PerformanceCounterDescriptionFlagBitsKHR::eConcurrentlyImpacted )
result += "ConcurrentlyImpacted | ";
+
return "{ " + result.substr( 0, result.size() - 3 ) + " }";
}
@@ -12888,6 +12982,7 @@ namespace VULKAN_HPP_NAMESPACE
result += "Warning | ";
if ( value & DebugUtilsMessageSeverityFlagBitsEXT::eError )
result += "Error | ";
+
return "{ " + result.substr( 0, result.size() - 3 ) + " }";
}
@@ -12940,6 +13035,7 @@ namespace VULKAN_HPP_NAMESPACE
result += "Validation | ";
if ( value & DebugUtilsMessageTypeFlagBitsEXT::ePerformance )
result += "Performance | ";
+
return "{ " + result.substr( 0, result.size() - 3 ) + " }";
}
@@ -13014,6 +13110,7 @@ namespace VULKAN_HPP_NAMESPACE
result += "Opaque | ";
if ( value & GeometryFlagBitsKHR::eNoDuplicateAnyHitInvocation )
result += "NoDuplicateAnyHitInvocation | ";
+
return "{ " + result.substr( 0, result.size() - 3 ) + " }";
}
@@ -13025,7 +13122,7 @@ namespace VULKAN_HPP_NAMESPACE
enum : VkFlags
{
allFlags = VkFlags( GeometryInstanceFlagBitsKHR::eTriangleFacingCullDisable ) |
- VkFlags( GeometryInstanceFlagBitsKHR::eTriangleFrontCounterclockwise ) |
+ VkFlags( GeometryInstanceFlagBitsKHR::eTriangleFlipFacing ) |
VkFlags( GeometryInstanceFlagBitsKHR::eForceOpaque ) |
VkFlags( GeometryInstanceFlagBitsKHR::eForceNoOpaque )
};
@@ -13065,12 +13162,13 @@ namespace VULKAN_HPP_NAMESPACE
std::string result;
if ( value & GeometryInstanceFlagBitsKHR::eTriangleFacingCullDisable )
result += "TriangleFacingCullDisable | ";
- if ( value & GeometryInstanceFlagBitsKHR::eTriangleFrontCounterclockwise )
- result += "TriangleFrontCounterclockwise | ";
+ if ( value & GeometryInstanceFlagBitsKHR::eTriangleFlipFacing )
+ result += "TriangleFlipFacing | ";
if ( value & GeometryInstanceFlagBitsKHR::eForceOpaque )
result += "ForceOpaque | ";
if ( value & GeometryInstanceFlagBitsKHR::eForceNoOpaque )
result += "ForceNoOpaque | ";
+
return "{ " + result.substr( 0, result.size() - 3 ) + " }";
}
@@ -13134,6 +13232,7 @@ namespace VULKAN_HPP_NAMESPACE
result += "LowMemory | ";
if ( value & BuildAccelerationStructureFlagBitsKHR::eMotionNV )
result += "MotionNV | ";
+
return "{ " + result.substr( 0, result.size() - 3 ) + " }";
}
@@ -13183,6 +13282,7 @@ namespace VULKAN_HPP_NAMESPACE
result += "DeviceAddressCaptureReplay | ";
if ( value & AccelerationStructureCreateFlagBitsKHR::eMotionNV )
result += "MotionNV | ";
+
return "{ " + result.substr( 0, result.size() - 3 ) + " }";
}
@@ -13275,6 +13375,7 @@ namespace VULKAN_HPP_NAMESPACE
result += "ApplicationPipelineCacheHit | ";
if ( value & PipelineCreationFeedbackFlagBitsEXT::eBasePipelineAcceleration )
result += "BasePipelineAcceleration | ";
+
return "{ " + result.substr( 0, result.size() - 3 ) + " }";
}
@@ -13369,6 +13470,7 @@ namespace VULKAN_HPP_NAMESPACE
result += "DebugReporting | ";
if ( value & ToolPurposeFlagBitsEXT::eDebugMarkers )
result += "DebugMarkers | ";
+
return "{ " + result.substr( 0, result.size() - 3 ) + " }";
}
@@ -13435,6 +13537,7 @@ namespace VULKAN_HPP_NAMESPACE
std::string result;
if ( value & IndirectStateFlagBitsNV::eFlagFrontface )
result += "FlagFrontface | ";
+
return "{ " + result.substr( 0, result.size() - 3 ) + " }";
}
@@ -13487,6 +13590,7 @@ namespace VULKAN_HPP_NAMESPACE
result += "IndexedSequences | ";
if ( value & IndirectCommandsLayoutUsageFlagBitsNV::eUnorderedSequences )
result += "UnorderedSequences | ";
+
return "{ " + result.substr( 0, result.size() - 3 ) + " }";
}
@@ -13554,6 +13658,7 @@ namespace VULKAN_HPP_NAMESPACE
std::string result;
if ( value & VideoEncodeFlagBitsKHR::eReserved0 )
result += "Reserved0 | ";
+
return "{ " + result.substr( 0, result.size() - 3 ) + " }";
}
@@ -13601,6 +13706,7 @@ namespace VULKAN_HPP_NAMESPACE
std::string result;
if ( value & VideoEncodeRateControlFlagBitsKHR::eReset )
result += "Reset | ";
+
return "{ " + result.substr( 0, result.size() - 3 ) + " }";
}
@@ -13647,6 +13753,7 @@ namespace VULKAN_HPP_NAMESPACE
return "{}";
std::string result;
+
return "{ " + result.substr( 0, result.size() - 3 ) + " }";
}
#endif /*VK_ENABLE_BETA_EXTENSIONS*/
@@ -13702,6 +13809,7 @@ namespace VULKAN_HPP_NAMESPACE
result += "EnableResourceTracking | ";
if ( value & DeviceDiagnosticsConfigFlagBitsNV::eEnableAutomaticCheckpoints )
result += "EnableAutomaticCheckpoints | ";
+
return "{ " + result.substr( 0, result.size() - 3 ) + " }";
}
@@ -13744,7 +13852,8 @@ namespace VULKAN_HPP_NAMESPACE
VkFlags64( PipelineStageFlagBits2KHR::eRayTracingShader ) |
VkFlags64( PipelineStageFlagBits2KHR::eFragmentDensityProcessEXT ) |
VkFlags64( PipelineStageFlagBits2KHR::eTaskShaderNV ) | VkFlags64( PipelineStageFlagBits2KHR::eMeshShaderNV ) |
- VkFlags64( PipelineStageFlagBits2KHR::eSubpassShadingHUAWEI )
+ VkFlags64( PipelineStageFlagBits2KHR::eSubpassShadingHUAWEI ) |
+ VkFlags64( PipelineStageFlagBits2KHR::eInvocationMaskHUAWEI )
};
};
@@ -13829,8 +13938,6 @@ namespace VULKAN_HPP_NAMESPACE
#if defined( VK_ENABLE_BETA_EXTENSIONS )
if ( value & PipelineStageFlagBits2KHR::eVideoDecode )
result += "VideoDecode | ";
-#endif /*VK_ENABLE_BETA_EXTENSIONS*/
-#if defined( VK_ENABLE_BETA_EXTENSIONS )
if ( value & PipelineStageFlagBits2KHR::eVideoEncode )
result += "VideoEncode | ";
#endif /*VK_ENABLE_BETA_EXTENSIONS*/
@@ -13854,6 +13961,9 @@ namespace VULKAN_HPP_NAMESPACE
result += "MeshShaderNV | ";
if ( value & PipelineStageFlagBits2KHR::eSubpassShadingHUAWEI )
result += "SubpassShadingHUAWEI | ";
+ if ( value & PipelineStageFlagBits2KHR::eInvocationMaskHUAWEI )
+ result += "InvocationMaskHUAWEI | ";
+
return "{ " + result.substr( 0, result.size() - 3 ) + " }";
}
@@ -13890,7 +14000,8 @@ namespace VULKAN_HPP_NAMESPACE
VkFlags64( AccessFlagBits2KHR::eAccelerationStructureRead ) |
VkFlags64( AccessFlagBits2KHR::eAccelerationStructureWrite ) |
VkFlags64( AccessFlagBits2KHR::eFragmentDensityMapReadEXT ) |
- VkFlags64( AccessFlagBits2KHR::eColorAttachmentReadNoncoherentEXT )
+ VkFlags64( AccessFlagBits2KHR::eColorAttachmentReadNoncoherentEXT ) |
+ VkFlags64( AccessFlagBits2KHR::eInvocationMaskReadHUAWEI )
};
};
@@ -13966,16 +14077,10 @@ namespace VULKAN_HPP_NAMESPACE
#if defined( VK_ENABLE_BETA_EXTENSIONS )
if ( value & AccessFlagBits2KHR::eVideoDecodeRead )
result += "VideoDecodeRead | ";
-#endif /*VK_ENABLE_BETA_EXTENSIONS*/
-#if defined( VK_ENABLE_BETA_EXTENSIONS )
if ( value & AccessFlagBits2KHR::eVideoDecodeWrite )
result += "VideoDecodeWrite | ";
-#endif /*VK_ENABLE_BETA_EXTENSIONS*/
-#if defined( VK_ENABLE_BETA_EXTENSIONS )
if ( value & AccessFlagBits2KHR::eVideoEncodeRead )
result += "VideoEncodeRead | ";
-#endif /*VK_ENABLE_BETA_EXTENSIONS*/
-#if defined( VK_ENABLE_BETA_EXTENSIONS )
if ( value & AccessFlagBits2KHR::eVideoEncodeWrite )
result += "VideoEncodeWrite | ";
#endif /*VK_ENABLE_BETA_EXTENSIONS*/
@@ -14001,6 +14106,9 @@ namespace VULKAN_HPP_NAMESPACE
result += "FragmentDensityMapReadEXT | ";
if ( value & AccessFlagBits2KHR::eColorAttachmentReadNoncoherentEXT )
result += "ColorAttachmentReadNoncoherentEXT | ";
+ if ( value & AccessFlagBits2KHR::eInvocationMaskReadHUAWEI )
+ result += "InvocationMaskReadHUAWEI | ";
+
return "{ " + result.substr( 0, result.size() - 3 ) + " }";
}
@@ -14046,6 +14154,7 @@ namespace VULKAN_HPP_NAMESPACE
std::string result;
if ( value & SubmitFlagBitsKHR::eProtected )
result += "Protected | ";
+
return "{ " + result.substr( 0, result.size() - 3 ) + " }";
}
diff --git a/thirdparty/vulkan/include/vulkan/vulkan_funcs.hpp b/thirdparty/vulkan/include/vulkan/vulkan_funcs.hpp
index 544cbddfa9..d638fa774f 100644
--- a/thirdparty/vulkan/include/vulkan/vulkan_funcs.hpp
+++ b/thirdparty/vulkan/include/vulkan/vulkan_funcs.hpp
@@ -23,6 +23,7 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_NAMESPACE::Instance * pInstance,
Dispatch const & d ) VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
return static_cast<Result>( d.vkCreateInstance( reinterpret_cast<const VkInstanceCreateInfo *>( pCreateInfo ),
reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ),
reinterpret_cast<VkInstance *>( pInstance ) ) );
@@ -36,6 +37,7 @@ namespace VULKAN_HPP_NAMESPACE
Optional<const AllocationCallbacks> allocator,
Dispatch const & d )
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
VULKAN_HPP_NAMESPACE::Instance instance;
Result result = static_cast<Result>(
d.vkCreateInstance( reinterpret_cast<const VkInstanceCreateInfo *>( &createInfo ),
@@ -53,6 +55,7 @@ namespace VULKAN_HPP_NAMESPACE
Optional<const AllocationCallbacks> allocator,
Dispatch const & d )
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
VULKAN_HPP_NAMESPACE::Instance instance;
Result result = static_cast<Result>(
d.vkCreateInstance( reinterpret_cast<const VkInstanceCreateInfo *>( &createInfo ),
@@ -70,6 +73,7 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_INLINE void Instance::destroy( const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
d.vkDestroyInstance( m_instance, reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ) );
}
@@ -78,6 +82,7 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_INLINE void Instance::destroy( Optional<const AllocationCallbacks> allocator,
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
d.vkDestroyInstance( m_instance,
reinterpret_cast<const VkAllocationCallbacks *>(
static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ) );
@@ -90,6 +95,7 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_NAMESPACE::PhysicalDevice * pPhysicalDevices,
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
return static_cast<Result>( d.vkEnumeratePhysicalDevices(
m_instance, pPhysicalDeviceCount, reinterpret_cast<VkPhysicalDevice *>( pPhysicalDevices ) ) );
}
@@ -100,6 +106,7 @@ namespace VULKAN_HPP_NAMESPACE
typename ResultValueType<std::vector<PhysicalDevice, PhysicalDeviceAllocator>>::type
Instance::enumeratePhysicalDevices( Dispatch const & d ) const
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
std::vector<PhysicalDevice, PhysicalDeviceAllocator> physicalDevices;
uint32_t physicalDeviceCount;
Result result;
@@ -130,6 +137,7 @@ namespace VULKAN_HPP_NAMESPACE
typename ResultValueType<std::vector<PhysicalDevice, PhysicalDeviceAllocator>>::type
Instance::enumeratePhysicalDevices( PhysicalDeviceAllocator & physicalDeviceAllocator, Dispatch const & d ) const
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
std::vector<PhysicalDevice, PhysicalDeviceAllocator> physicalDevices( physicalDeviceAllocator );
uint32_t physicalDeviceCount;
Result result;
@@ -157,6 +165,7 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_INLINE void PhysicalDevice::getFeatures( VULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures * pFeatures,
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
d.vkGetPhysicalDeviceFeatures( m_physicalDevice, reinterpret_cast<VkPhysicalDeviceFeatures *>( pFeatures ) );
}
@@ -165,6 +174,7 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures
PhysicalDevice::getFeatures( Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
VULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures features;
d.vkGetPhysicalDeviceFeatures( m_physicalDevice, reinterpret_cast<VkPhysicalDeviceFeatures *>( &features ) );
return features;
@@ -177,6 +187,7 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_NAMESPACE::FormatProperties * pFormatProperties,
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
d.vkGetPhysicalDeviceFormatProperties(
m_physicalDevice, static_cast<VkFormat>( format ), reinterpret_cast<VkFormatProperties *>( pFormatProperties ) );
}
@@ -187,6 +198,7 @@ namespace VULKAN_HPP_NAMESPACE
PhysicalDevice::getFormatProperties( VULKAN_HPP_NAMESPACE::Format format,
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
VULKAN_HPP_NAMESPACE::FormatProperties formatProperties;
d.vkGetPhysicalDeviceFormatProperties(
m_physicalDevice, static_cast<VkFormat>( format ), reinterpret_cast<VkFormatProperties *>( &formatProperties ) );
@@ -204,6 +216,7 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_NAMESPACE::ImageFormatProperties * pImageFormatProperties,
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
return static_cast<Result>( d.vkGetPhysicalDeviceImageFormatProperties(
m_physicalDevice,
static_cast<VkFormat>( format ),
@@ -225,6 +238,7 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_NAMESPACE::ImageCreateFlags flags,
Dispatch const & d ) const
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
VULKAN_HPP_NAMESPACE::ImageFormatProperties imageFormatProperties;
Result result = static_cast<Result>( d.vkGetPhysicalDeviceImageFormatProperties(
m_physicalDevice,
@@ -243,6 +257,7 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_INLINE void PhysicalDevice::getProperties( VULKAN_HPP_NAMESPACE::PhysicalDeviceProperties * pProperties,
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
d.vkGetPhysicalDeviceProperties( m_physicalDevice, reinterpret_cast<VkPhysicalDeviceProperties *>( pProperties ) );
}
@@ -251,6 +266,7 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::PhysicalDeviceProperties
PhysicalDevice::getProperties( Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
VULKAN_HPP_NAMESPACE::PhysicalDeviceProperties properties;
d.vkGetPhysicalDeviceProperties( m_physicalDevice, reinterpret_cast<VkPhysicalDeviceProperties *>( &properties ) );
return properties;
@@ -263,6 +279,7 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_NAMESPACE::QueueFamilyProperties * pQueueFamilyProperties,
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
d.vkGetPhysicalDeviceQueueFamilyProperties( m_physicalDevice,
pQueueFamilyPropertyCount,
reinterpret_cast<VkQueueFamilyProperties *>( pQueueFamilyProperties ) );
@@ -273,6 +290,7 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE std::vector<QueueFamilyProperties, QueueFamilyPropertiesAllocator>
PhysicalDevice::getQueueFamilyProperties( Dispatch const & d ) const
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
std::vector<QueueFamilyProperties, QueueFamilyPropertiesAllocator> queueFamilyProperties;
uint32_t queueFamilyPropertyCount;
d.vkGetPhysicalDeviceQueueFamilyProperties( m_physicalDevice, &queueFamilyPropertyCount, nullptr );
@@ -293,6 +311,7 @@ namespace VULKAN_HPP_NAMESPACE
PhysicalDevice::getQueueFamilyProperties( QueueFamilyPropertiesAllocator & queueFamilyPropertiesAllocator,
Dispatch const & d ) const
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
std::vector<QueueFamilyProperties, QueueFamilyPropertiesAllocator> queueFamilyProperties(
queueFamilyPropertiesAllocator );
uint32_t queueFamilyPropertyCount;
@@ -312,6 +331,7 @@ namespace VULKAN_HPP_NAMESPACE
PhysicalDevice::getMemoryProperties( VULKAN_HPP_NAMESPACE::PhysicalDeviceMemoryProperties * pMemoryProperties,
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
d.vkGetPhysicalDeviceMemoryProperties( m_physicalDevice,
reinterpret_cast<VkPhysicalDeviceMemoryProperties *>( pMemoryProperties ) );
}
@@ -321,6 +341,7 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::PhysicalDeviceMemoryProperties
PhysicalDevice::getMemoryProperties( Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
VULKAN_HPP_NAMESPACE::PhysicalDeviceMemoryProperties memoryProperties;
d.vkGetPhysicalDeviceMemoryProperties( m_physicalDevice,
reinterpret_cast<VkPhysicalDeviceMemoryProperties *>( &memoryProperties ) );
@@ -332,6 +353,7 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_INLINE PFN_vkVoidFunction Instance::getProcAddr( const char * pName,
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
return d.vkGetInstanceProcAddr( m_instance, pName );
}
@@ -340,6 +362,7 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_INLINE PFN_vkVoidFunction Instance::getProcAddr( const std::string & name,
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
return d.vkGetInstanceProcAddr( m_instance, name.c_str() );
}
#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
@@ -348,6 +371,7 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_INLINE PFN_vkVoidFunction Device::getProcAddr( const char * pName,
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
return d.vkGetDeviceProcAddr( m_device, pName );
}
@@ -356,6 +380,7 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_INLINE PFN_vkVoidFunction Device::getProcAddr( const std::string & name,
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
return d.vkGetDeviceProcAddr( m_device, name.c_str() );
}
#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
@@ -367,6 +392,7 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_NAMESPACE::Device * pDevice,
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
return static_cast<Result>( d.vkCreateDevice( m_physicalDevice,
reinterpret_cast<const VkDeviceCreateInfo *>( pCreateInfo ),
reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ),
@@ -380,6 +406,7 @@ namespace VULKAN_HPP_NAMESPACE
Optional<const AllocationCallbacks> allocator,
Dispatch const & d ) const
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
VULKAN_HPP_NAMESPACE::Device device;
Result result = static_cast<Result>(
d.vkCreateDevice( m_physicalDevice,
@@ -398,6 +425,7 @@ namespace VULKAN_HPP_NAMESPACE
Optional<const AllocationCallbacks> allocator,
Dispatch const & d ) const
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
VULKAN_HPP_NAMESPACE::Device device;
Result result = static_cast<Result>(
d.vkCreateDevice( m_physicalDevice,
@@ -416,6 +444,7 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_INLINE void Device::destroy( const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
d.vkDestroyDevice( m_device, reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ) );
}
@@ -424,6 +453,7 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_INLINE void Device::destroy( Optional<const AllocationCallbacks> allocator,
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
d.vkDestroyDevice( m_device,
reinterpret_cast<const VkAllocationCallbacks *>(
static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ) );
@@ -437,6 +467,7 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_NAMESPACE::ExtensionProperties * pProperties,
Dispatch const & d ) VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
return static_cast<Result>( d.vkEnumerateInstanceExtensionProperties(
pLayerName, pPropertyCount, reinterpret_cast<VkExtensionProperties *>( pProperties ) ) );
}
@@ -447,6 +478,7 @@ namespace VULKAN_HPP_NAMESPACE
typename ResultValueType<std::vector<ExtensionProperties, ExtensionPropertiesAllocator>>::type
enumerateInstanceExtensionProperties( Optional<const std::string> layerName, Dispatch const & d )
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
std::vector<ExtensionProperties, ExtensionPropertiesAllocator> properties;
uint32_t propertyCount;
Result result;
@@ -482,6 +514,7 @@ namespace VULKAN_HPP_NAMESPACE
ExtensionPropertiesAllocator & extensionPropertiesAllocator,
Dispatch const & d )
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
std::vector<ExtensionProperties, ExtensionPropertiesAllocator> properties( extensionPropertiesAllocator );
uint32_t propertyCount;
Result result;
@@ -515,6 +548,7 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_NAMESPACE::ExtensionProperties * pProperties,
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
return static_cast<Result>( d.vkEnumerateDeviceExtensionProperties(
m_physicalDevice, pLayerName, pPropertyCount, reinterpret_cast<VkExtensionProperties *>( pProperties ) ) );
}
@@ -526,6 +560,7 @@ namespace VULKAN_HPP_NAMESPACE
PhysicalDevice::enumerateDeviceExtensionProperties( Optional<const std::string> layerName,
Dispatch const & d ) const
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
std::vector<ExtensionProperties, ExtensionPropertiesAllocator> properties;
uint32_t propertyCount;
Result result;
@@ -562,6 +597,7 @@ namespace VULKAN_HPP_NAMESPACE
ExtensionPropertiesAllocator & extensionPropertiesAllocator,
Dispatch const & d ) const
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
std::vector<ExtensionProperties, ExtensionPropertiesAllocator> properties( extensionPropertiesAllocator );
uint32_t propertyCount;
Result result;
@@ -595,6 +631,7 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_NAMESPACE::LayerProperties * pProperties,
Dispatch const & d ) VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
return static_cast<Result>(
d.vkEnumerateInstanceLayerProperties( pPropertyCount, reinterpret_cast<VkLayerProperties *>( pProperties ) ) );
}
@@ -605,6 +642,7 @@ namespace VULKAN_HPP_NAMESPACE
typename ResultValueType<std::vector<LayerProperties, LayerPropertiesAllocator>>::type
enumerateInstanceLayerProperties( Dispatch const & d )
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
std::vector<LayerProperties, LayerPropertiesAllocator> properties;
uint32_t propertyCount;
Result result;
@@ -634,6 +672,7 @@ namespace VULKAN_HPP_NAMESPACE
typename ResultValueType<std::vector<LayerProperties, LayerPropertiesAllocator>>::type
enumerateInstanceLayerProperties( LayerPropertiesAllocator & layerPropertiesAllocator, Dispatch const & d )
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
std::vector<LayerProperties, LayerPropertiesAllocator> properties( layerPropertiesAllocator );
uint32_t propertyCount;
Result result;
@@ -662,6 +701,7 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_NAMESPACE::LayerProperties * pProperties,
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
return static_cast<Result>( d.vkEnumerateDeviceLayerProperties(
m_physicalDevice, pPropertyCount, reinterpret_cast<VkLayerProperties *>( pProperties ) ) );
}
@@ -672,6 +712,7 @@ namespace VULKAN_HPP_NAMESPACE
typename ResultValueType<std::vector<LayerProperties, LayerPropertiesAllocator>>::type
PhysicalDevice::enumerateDeviceLayerProperties( Dispatch const & d ) const
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
std::vector<LayerProperties, LayerPropertiesAllocator> properties;
uint32_t propertyCount;
Result result;
@@ -703,6 +744,7 @@ namespace VULKAN_HPP_NAMESPACE
PhysicalDevice::enumerateDeviceLayerProperties( LayerPropertiesAllocator & layerPropertiesAllocator,
Dispatch const & d ) const
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
std::vector<LayerProperties, LayerPropertiesAllocator> properties( layerPropertiesAllocator );
uint32_t propertyCount;
Result result;
@@ -732,6 +774,7 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_NAMESPACE::Queue * pQueue,
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
d.vkGetDeviceQueue( m_device, queueFamilyIndex, queueIndex, reinterpret_cast<VkQueue *>( pQueue ) );
}
@@ -740,6 +783,7 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::Queue
Device::getQueue( uint32_t queueFamilyIndex, uint32_t queueIndex, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
VULKAN_HPP_NAMESPACE::Queue queue;
d.vkGetDeviceQueue( m_device, queueFamilyIndex, queueIndex, reinterpret_cast<VkQueue *>( &queue ) );
return queue;
@@ -752,6 +796,7 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_NAMESPACE::Fence fence,
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
return static_cast<Result>( d.vkQueueSubmit(
m_queue, submitCount, reinterpret_cast<const VkSubmitInfo *>( pSubmits ), static_cast<VkFence>( fence ) ) );
}
@@ -763,6 +808,7 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_NAMESPACE::Fence fence,
Dispatch const & d ) const
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
Result result = static_cast<Result>( d.vkQueueSubmit( m_queue,
submits.size(),
reinterpret_cast<const VkSubmitInfo *>( submits.data() ),
@@ -775,6 +821,7 @@ namespace VULKAN_HPP_NAMESPACE
template <typename Dispatch>
VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Queue::waitIdle( Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
return static_cast<Result>( d.vkQueueWaitIdle( m_queue ) );
}
#else
@@ -782,6 +829,7 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType<void>::type
Queue::waitIdle( Dispatch const & d ) const
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
Result result = static_cast<Result>( d.vkQueueWaitIdle( m_queue ) );
return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING "::Queue::waitIdle" );
}
@@ -791,6 +839,7 @@ namespace VULKAN_HPP_NAMESPACE
template <typename Dispatch>
VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::waitIdle( Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
return static_cast<Result>( d.vkDeviceWaitIdle( m_device ) );
}
#else
@@ -798,6 +847,7 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType<void>::type
Device::waitIdle( Dispatch const & d ) const
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
Result result = static_cast<Result>( d.vkDeviceWaitIdle( m_device ) );
return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING "::Device::waitIdle" );
}
@@ -810,6 +860,7 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_NAMESPACE::DeviceMemory * pMemory,
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
return static_cast<Result>( d.vkAllocateMemory( m_device,
reinterpret_cast<const VkMemoryAllocateInfo *>( pAllocateInfo ),
reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ),
@@ -824,6 +875,7 @@ namespace VULKAN_HPP_NAMESPACE
Optional<const AllocationCallbacks> allocator,
Dispatch const & d ) const
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
VULKAN_HPP_NAMESPACE::DeviceMemory memory;
Result result = static_cast<Result>(
d.vkAllocateMemory( m_device,
@@ -842,6 +894,7 @@ namespace VULKAN_HPP_NAMESPACE
Optional<const AllocationCallbacks> allocator,
Dispatch const & d ) const
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
VULKAN_HPP_NAMESPACE::DeviceMemory memory;
Result result = static_cast<Result>(
d.vkAllocateMemory( m_device,
@@ -861,6 +914,7 @@ namespace VULKAN_HPP_NAMESPACE
const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
d.vkFreeMemory(
m_device, static_cast<VkDeviceMemory>( memory ), reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ) );
}
@@ -871,6 +925,7 @@ namespace VULKAN_HPP_NAMESPACE
Optional<const AllocationCallbacks> allocator,
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
d.vkFreeMemory( m_device,
static_cast<VkDeviceMemory>( memory ),
reinterpret_cast<const VkAllocationCallbacks *>(
@@ -883,6 +938,7 @@ namespace VULKAN_HPP_NAMESPACE
const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
d.vkFreeMemory(
m_device, static_cast<VkDeviceMemory>( memory ), reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ) );
}
@@ -893,6 +949,7 @@ namespace VULKAN_HPP_NAMESPACE
Optional<const AllocationCallbacks> allocator,
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
d.vkFreeMemory( m_device,
static_cast<VkDeviceMemory>( memory ),
reinterpret_cast<const VkAllocationCallbacks *>(
@@ -908,6 +965,7 @@ namespace VULKAN_HPP_NAMESPACE
void ** ppData,
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
return static_cast<Result>( d.vkMapMemory( m_device,
static_cast<VkDeviceMemory>( memory ),
static_cast<VkDeviceSize>( offset ),
@@ -925,6 +983,7 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_NAMESPACE::MemoryMapFlags flags,
Dispatch const & d ) const
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
void * pData;
Result result = static_cast<Result>( d.vkMapMemory( m_device,
static_cast<VkDeviceMemory>( memory ),
@@ -940,6 +999,7 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_INLINE void Device::unmapMemory( VULKAN_HPP_NAMESPACE::DeviceMemory memory,
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
d.vkUnmapMemory( m_device, static_cast<VkDeviceMemory>( memory ) );
}
@@ -949,6 +1009,7 @@ namespace VULKAN_HPP_NAMESPACE
const VULKAN_HPP_NAMESPACE::MappedMemoryRange * pMemoryRanges,
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
return static_cast<Result>( d.vkFlushMappedMemoryRanges(
m_device, memoryRangeCount, reinterpret_cast<const VkMappedMemoryRange *>( pMemoryRanges ) ) );
}
@@ -959,6 +1020,7 @@ namespace VULKAN_HPP_NAMESPACE
Device::flushMappedMemoryRanges( ArrayProxy<const VULKAN_HPP_NAMESPACE::MappedMemoryRange> const & memoryRanges,
Dispatch const & d ) const
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
Result result = static_cast<Result>( d.vkFlushMappedMemoryRanges(
m_device, memoryRanges.size(), reinterpret_cast<const VkMappedMemoryRange *>( memoryRanges.data() ) ) );
return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING "::Device::flushMappedMemoryRanges" );
@@ -971,6 +1033,7 @@ namespace VULKAN_HPP_NAMESPACE
const VULKAN_HPP_NAMESPACE::MappedMemoryRange * pMemoryRanges,
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
return static_cast<Result>( d.vkInvalidateMappedMemoryRanges(
m_device, memoryRangeCount, reinterpret_cast<const VkMappedMemoryRange *>( pMemoryRanges ) ) );
}
@@ -981,6 +1044,7 @@ namespace VULKAN_HPP_NAMESPACE
Device::invalidateMappedMemoryRanges(
ArrayProxy<const VULKAN_HPP_NAMESPACE::MappedMemoryRange> const & memoryRanges, Dispatch const & d ) const
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
Result result = static_cast<Result>( d.vkInvalidateMappedMemoryRanges(
m_device, memoryRanges.size(), reinterpret_cast<const VkMappedMemoryRange *>( memoryRanges.data() ) ) );
return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING "::Device::invalidateMappedMemoryRanges" );
@@ -992,6 +1056,7 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_NAMESPACE::DeviceSize * pCommittedMemoryInBytes,
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
d.vkGetDeviceMemoryCommitment(
m_device, static_cast<VkDeviceMemory>( memory ), reinterpret_cast<VkDeviceSize *>( pCommittedMemoryInBytes ) );
}
@@ -1002,6 +1067,7 @@ namespace VULKAN_HPP_NAMESPACE
Device::getMemoryCommitment( VULKAN_HPP_NAMESPACE::DeviceMemory memory,
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
VULKAN_HPP_NAMESPACE::DeviceSize committedMemoryInBytes;
d.vkGetDeviceMemoryCommitment(
m_device, static_cast<VkDeviceMemory>( memory ), reinterpret_cast<VkDeviceSize *>( &committedMemoryInBytes ) );
@@ -1016,6 +1082,7 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_NAMESPACE::DeviceSize memoryOffset,
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
return static_cast<Result>( d.vkBindBufferMemory( m_device,
static_cast<VkBuffer>( buffer ),
static_cast<VkDeviceMemory>( memory ),
@@ -1029,6 +1096,7 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_NAMESPACE::DeviceSize memoryOffset,
Dispatch const & d ) const
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
Result result = static_cast<Result>( d.vkBindBufferMemory( m_device,
static_cast<VkBuffer>( buffer ),
static_cast<VkDeviceMemory>( memory ),
@@ -1044,6 +1112,7 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_NAMESPACE::DeviceSize memoryOffset,
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
return static_cast<Result>( d.vkBindImageMemory( m_device,
static_cast<VkImage>( image ),
static_cast<VkDeviceMemory>( memory ),
@@ -1057,6 +1126,7 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_NAMESPACE::DeviceSize memoryOffset,
Dispatch const & d ) const
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
Result result = static_cast<Result>( d.vkBindImageMemory( m_device,
static_cast<VkImage>( image ),
static_cast<VkDeviceMemory>( memory ),
@@ -1071,6 +1141,7 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_NAMESPACE::MemoryRequirements * pMemoryRequirements,
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
d.vkGetBufferMemoryRequirements(
m_device, static_cast<VkBuffer>( buffer ), reinterpret_cast<VkMemoryRequirements *>( pMemoryRequirements ) );
}
@@ -1081,6 +1152,7 @@ namespace VULKAN_HPP_NAMESPACE
Device::getBufferMemoryRequirements( VULKAN_HPP_NAMESPACE::Buffer buffer,
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
VULKAN_HPP_NAMESPACE::MemoryRequirements memoryRequirements;
d.vkGetBufferMemoryRequirements(
m_device, static_cast<VkBuffer>( buffer ), reinterpret_cast<VkMemoryRequirements *>( &memoryRequirements ) );
@@ -1094,6 +1166,7 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_NAMESPACE::MemoryRequirements * pMemoryRequirements,
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
d.vkGetImageMemoryRequirements(
m_device, static_cast<VkImage>( image ), reinterpret_cast<VkMemoryRequirements *>( pMemoryRequirements ) );
}
@@ -1104,6 +1177,7 @@ namespace VULKAN_HPP_NAMESPACE
Device::getImageMemoryRequirements( VULKAN_HPP_NAMESPACE::Image image,
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
VULKAN_HPP_NAMESPACE::MemoryRequirements memoryRequirements;
d.vkGetImageMemoryRequirements(
m_device, static_cast<VkImage>( image ), reinterpret_cast<VkMemoryRequirements *>( &memoryRequirements ) );
@@ -1118,6 +1192,7 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_NAMESPACE::SparseImageMemoryRequirements * pSparseMemoryRequirements,
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
d.vkGetImageSparseMemoryRequirements(
m_device,
static_cast<VkImage>( image ),
@@ -1131,6 +1206,7 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_INLINE std::vector<SparseImageMemoryRequirements, SparseImageMemoryRequirementsAllocator>
Device::getImageSparseMemoryRequirements( VULKAN_HPP_NAMESPACE::Image image, Dispatch const & d ) const
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
std::vector<SparseImageMemoryRequirements, SparseImageMemoryRequirementsAllocator> sparseMemoryRequirements;
uint32_t sparseMemoryRequirementCount;
d.vkGetImageSparseMemoryRequirements(
@@ -1157,6 +1233,7 @@ namespace VULKAN_HPP_NAMESPACE
SparseImageMemoryRequirementsAllocator & sparseImageMemoryRequirementsAllocator,
Dispatch const & d ) const
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
std::vector<SparseImageMemoryRequirements, SparseImageMemoryRequirementsAllocator> sparseMemoryRequirements(
sparseImageMemoryRequirementsAllocator );
uint32_t sparseMemoryRequirementCount;
@@ -1184,6 +1261,7 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_NAMESPACE::SparseImageFormatProperties * pProperties,
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
d.vkGetPhysicalDeviceSparseImageFormatProperties(
m_physicalDevice,
static_cast<VkFormat>( format ),
@@ -1205,6 +1283,7 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_NAMESPACE::ImageTiling tiling,
Dispatch const & d ) const
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
std::vector<SparseImageFormatProperties, SparseImageFormatPropertiesAllocator> properties;
uint32_t propertyCount;
d.vkGetPhysicalDeviceSparseImageFormatProperties( m_physicalDevice,
@@ -1244,6 +1323,7 @@ namespace VULKAN_HPP_NAMESPACE
SparseImageFormatPropertiesAllocator & sparseImageFormatPropertiesAllocator,
Dispatch const & d ) const
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
std::vector<SparseImageFormatProperties, SparseImageFormatPropertiesAllocator> properties(
sparseImageFormatPropertiesAllocator );
uint32_t propertyCount;
@@ -1277,6 +1357,7 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_NAMESPACE::Fence fence,
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
return static_cast<Result>( d.vkQueueBindSparse( m_queue,
bindInfoCount,
reinterpret_cast<const VkBindSparseInfo *>( pBindInfo ),
@@ -1290,6 +1371,7 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_NAMESPACE::Fence fence,
Dispatch const & d ) const
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
Result result =
static_cast<Result>( d.vkQueueBindSparse( m_queue,
bindInfo.size(),
@@ -1306,6 +1388,7 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_NAMESPACE::Fence * pFence,
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
return static_cast<Result>( d.vkCreateFence( m_device,
reinterpret_cast<const VkFenceCreateInfo *>( pCreateInfo ),
reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ),
@@ -1319,6 +1402,7 @@ namespace VULKAN_HPP_NAMESPACE
Optional<const AllocationCallbacks> allocator,
Dispatch const & d ) const
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
VULKAN_HPP_NAMESPACE::Fence fence;
Result result = static_cast<Result>(
d.vkCreateFence( m_device,
@@ -1337,6 +1421,7 @@ namespace VULKAN_HPP_NAMESPACE
Optional<const AllocationCallbacks> allocator,
Dispatch const & d ) const
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
VULKAN_HPP_NAMESPACE::Fence fence;
Result result = static_cast<Result>(
d.vkCreateFence( m_device,
@@ -1356,6 +1441,7 @@ namespace VULKAN_HPP_NAMESPACE
const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
d.vkDestroyFence(
m_device, static_cast<VkFence>( fence ), reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ) );
}
@@ -1366,6 +1452,7 @@ namespace VULKAN_HPP_NAMESPACE
Optional<const AllocationCallbacks> allocator,
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
d.vkDestroyFence( m_device,
static_cast<VkFence>( fence ),
reinterpret_cast<const VkAllocationCallbacks *>(
@@ -1378,6 +1465,7 @@ namespace VULKAN_HPP_NAMESPACE
const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
d.vkDestroyFence(
m_device, static_cast<VkFence>( fence ), reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ) );
}
@@ -1388,6 +1476,7 @@ namespace VULKAN_HPP_NAMESPACE
Optional<const AllocationCallbacks> allocator,
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
d.vkDestroyFence( m_device,
static_cast<VkFence>( fence ),
reinterpret_cast<const VkAllocationCallbacks *>(
@@ -1400,6 +1489,7 @@ namespace VULKAN_HPP_NAMESPACE
const VULKAN_HPP_NAMESPACE::Fence * pFences,
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
return static_cast<Result>( d.vkResetFences( m_device, fenceCount, reinterpret_cast<const VkFence *>( pFences ) ) );
}
@@ -1408,6 +1498,7 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_INLINE typename ResultValueType<void>::type
Device::resetFences( ArrayProxy<const VULKAN_HPP_NAMESPACE::Fence> const & fences, Dispatch const & d ) const
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
Result result = static_cast<Result>(
d.vkResetFences( m_device, fences.size(), reinterpret_cast<const VkFence *>( fences.data() ) ) );
return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING "::Device::resetFences" );
@@ -1419,6 +1510,7 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::getFenceStatus( VULKAN_HPP_NAMESPACE::Fence fence,
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
return static_cast<Result>( d.vkGetFenceStatus( m_device, static_cast<VkFence>( fence ) ) );
}
#else
@@ -1426,6 +1518,7 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::getFenceStatus( VULKAN_HPP_NAMESPACE::Fence fence,
Dispatch const & d ) const
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
Result result = static_cast<Result>( d.vkGetFenceStatus( m_device, static_cast<VkFence>( fence ) ) );
return createResultValue( result,
VULKAN_HPP_NAMESPACE_STRING "::Device::getFenceStatus",
@@ -1440,6 +1533,7 @@ namespace VULKAN_HPP_NAMESPACE
uint64_t timeout,
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
return static_cast<Result>( d.vkWaitForFences(
m_device, fenceCount, reinterpret_cast<const VkFence *>( pFences ), static_cast<VkBool32>( waitAll ), timeout ) );
}
@@ -1452,6 +1546,7 @@ namespace VULKAN_HPP_NAMESPACE
uint64_t timeout,
Dispatch const & d ) const
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
Result result = static_cast<Result>( d.vkWaitForFences( m_device,
fences.size(),
reinterpret_cast<const VkFence *>( fences.data() ),
@@ -1470,6 +1565,7 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_NAMESPACE::Semaphore * pSemaphore,
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
return static_cast<Result>( d.vkCreateSemaphore( m_device,
reinterpret_cast<const VkSemaphoreCreateInfo *>( pCreateInfo ),
reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ),
@@ -1484,6 +1580,7 @@ namespace VULKAN_HPP_NAMESPACE
Optional<const AllocationCallbacks> allocator,
Dispatch const & d ) const
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
VULKAN_HPP_NAMESPACE::Semaphore semaphore;
Result result = static_cast<Result>(
d.vkCreateSemaphore( m_device,
@@ -1502,6 +1599,7 @@ namespace VULKAN_HPP_NAMESPACE
Optional<const AllocationCallbacks> allocator,
Dispatch const & d ) const
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
VULKAN_HPP_NAMESPACE::Semaphore semaphore;
Result result = static_cast<Result>(
d.vkCreateSemaphore( m_device,
@@ -1521,6 +1619,7 @@ namespace VULKAN_HPP_NAMESPACE
const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
d.vkDestroySemaphore(
m_device, static_cast<VkSemaphore>( semaphore ), reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ) );
}
@@ -1531,6 +1630,7 @@ namespace VULKAN_HPP_NAMESPACE
Optional<const AllocationCallbacks> allocator,
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
d.vkDestroySemaphore( m_device,
static_cast<VkSemaphore>( semaphore ),
reinterpret_cast<const VkAllocationCallbacks *>(
@@ -1543,6 +1643,7 @@ namespace VULKAN_HPP_NAMESPACE
const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
d.vkDestroySemaphore(
m_device, static_cast<VkSemaphore>( semaphore ), reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ) );
}
@@ -1553,6 +1654,7 @@ namespace VULKAN_HPP_NAMESPACE
Optional<const AllocationCallbacks> allocator,
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
d.vkDestroySemaphore( m_device,
static_cast<VkSemaphore>( semaphore ),
reinterpret_cast<const VkAllocationCallbacks *>(
@@ -1567,6 +1669,7 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_NAMESPACE::Event * pEvent,
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
return static_cast<Result>( d.vkCreateEvent( m_device,
reinterpret_cast<const VkEventCreateInfo *>( pCreateInfo ),
reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ),
@@ -1580,6 +1683,7 @@ namespace VULKAN_HPP_NAMESPACE
Optional<const AllocationCallbacks> allocator,
Dispatch const & d ) const
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
VULKAN_HPP_NAMESPACE::Event event;
Result result = static_cast<Result>(
d.vkCreateEvent( m_device,
@@ -1598,6 +1702,7 @@ namespace VULKAN_HPP_NAMESPACE
Optional<const AllocationCallbacks> allocator,
Dispatch const & d ) const
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
VULKAN_HPP_NAMESPACE::Event event;
Result result = static_cast<Result>(
d.vkCreateEvent( m_device,
@@ -1617,6 +1722,7 @@ namespace VULKAN_HPP_NAMESPACE
const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
d.vkDestroyEvent(
m_device, static_cast<VkEvent>( event ), reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ) );
}
@@ -1627,6 +1733,7 @@ namespace VULKAN_HPP_NAMESPACE
Optional<const AllocationCallbacks> allocator,
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
d.vkDestroyEvent( m_device,
static_cast<VkEvent>( event ),
reinterpret_cast<const VkAllocationCallbacks *>(
@@ -1639,6 +1746,7 @@ namespace VULKAN_HPP_NAMESPACE
const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
d.vkDestroyEvent(
m_device, static_cast<VkEvent>( event ), reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ) );
}
@@ -1649,6 +1757,7 @@ namespace VULKAN_HPP_NAMESPACE
Optional<const AllocationCallbacks> allocator,
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
d.vkDestroyEvent( m_device,
static_cast<VkEvent>( event ),
reinterpret_cast<const VkAllocationCallbacks *>(
@@ -1661,6 +1770,7 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::getEventStatus( VULKAN_HPP_NAMESPACE::Event event,
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
return static_cast<Result>( d.vkGetEventStatus( m_device, static_cast<VkEvent>( event ) ) );
}
#else
@@ -1668,6 +1778,7 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::getEventStatus( VULKAN_HPP_NAMESPACE::Event event,
Dispatch const & d ) const
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
Result result = static_cast<Result>( d.vkGetEventStatus( m_device, static_cast<VkEvent>( event ) ) );
return createResultValue( result,
VULKAN_HPP_NAMESPACE_STRING "::Device::getEventStatus",
@@ -1680,6 +1791,7 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::setEvent( VULKAN_HPP_NAMESPACE::Event event,
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
return static_cast<Result>( d.vkSetEvent( m_device, static_cast<VkEvent>( event ) ) );
}
#else
@@ -1687,6 +1799,7 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType<void>::type
Device::setEvent( VULKAN_HPP_NAMESPACE::Event event, Dispatch const & d ) const
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
Result result = static_cast<Result>( d.vkSetEvent( m_device, static_cast<VkEvent>( event ) ) );
return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING "::Device::setEvent" );
}
@@ -1697,6 +1810,7 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::resetEvent( VULKAN_HPP_NAMESPACE::Event event,
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
return static_cast<Result>( d.vkResetEvent( m_device, static_cast<VkEvent>( event ) ) );
}
#else
@@ -1704,6 +1818,7 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_INLINE typename ResultValueType<void>::type Device::resetEvent( VULKAN_HPP_NAMESPACE::Event event,
Dispatch const & d ) const
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
Result result = static_cast<Result>( d.vkResetEvent( m_device, static_cast<VkEvent>( event ) ) );
return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING "::Device::resetEvent" );
}
@@ -1716,6 +1831,7 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_NAMESPACE::QueryPool * pQueryPool,
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
return static_cast<Result>( d.vkCreateQueryPool( m_device,
reinterpret_cast<const VkQueryPoolCreateInfo *>( pCreateInfo ),
reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ),
@@ -1730,6 +1846,7 @@ namespace VULKAN_HPP_NAMESPACE
Optional<const AllocationCallbacks> allocator,
Dispatch const & d ) const
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
VULKAN_HPP_NAMESPACE::QueryPool queryPool;
Result result = static_cast<Result>(
d.vkCreateQueryPool( m_device,
@@ -1748,6 +1865,7 @@ namespace VULKAN_HPP_NAMESPACE
Optional<const AllocationCallbacks> allocator,
Dispatch const & d ) const
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
VULKAN_HPP_NAMESPACE::QueryPool queryPool;
Result result = static_cast<Result>(
d.vkCreateQueryPool( m_device,
@@ -1767,6 +1885,7 @@ namespace VULKAN_HPP_NAMESPACE
const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
d.vkDestroyQueryPool(
m_device, static_cast<VkQueryPool>( queryPool ), reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ) );
}
@@ -1777,6 +1896,7 @@ namespace VULKAN_HPP_NAMESPACE
Optional<const AllocationCallbacks> allocator,
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
d.vkDestroyQueryPool( m_device,
static_cast<VkQueryPool>( queryPool ),
reinterpret_cast<const VkAllocationCallbacks *>(
@@ -1789,6 +1909,7 @@ namespace VULKAN_HPP_NAMESPACE
const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
d.vkDestroyQueryPool(
m_device, static_cast<VkQueryPool>( queryPool ), reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ) );
}
@@ -1799,6 +1920,7 @@ namespace VULKAN_HPP_NAMESPACE
Optional<const AllocationCallbacks> allocator,
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
d.vkDestroyQueryPool( m_device,
static_cast<VkQueryPool>( queryPool ),
reinterpret_cast<const VkAllocationCallbacks *>(
@@ -1817,6 +1939,7 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_NAMESPACE::QueryResultFlags flags,
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
return static_cast<Result>( d.vkGetQueryPoolResults( m_device,
static_cast<VkQueryPool>( queryPool ),
firstQuery,
@@ -1839,6 +1962,7 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_NAMESPACE::QueryResultFlags flags,
Dispatch const & d ) const
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
Result result = static_cast<Result>( d.vkGetQueryPoolResults( m_device,
static_cast<VkQueryPool>( queryPool ),
firstQuery,
@@ -1862,6 +1986,7 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_NAMESPACE::QueryResultFlags flags,
Dispatch const & d ) const
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
VULKAN_HPP_ASSERT( dataSize % sizeof( T ) == 0 );
std::vector<T, Allocator> data( dataSize / sizeof( T ) );
Result result = static_cast<Result>( d.vkGetQueryPoolResults( m_device,
@@ -1887,6 +2012,7 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_NAMESPACE::QueryResultFlags flags,
Dispatch const & d ) const
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
T data;
Result result = static_cast<Result>( d.vkGetQueryPoolResults( m_device,
static_cast<VkQueryPool>( queryPool ),
@@ -1910,6 +2036,7 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_NAMESPACE::Buffer * pBuffer,
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
return static_cast<Result>( d.vkCreateBuffer( m_device,
reinterpret_cast<const VkBufferCreateInfo *>( pCreateInfo ),
reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ),
@@ -1923,6 +2050,7 @@ namespace VULKAN_HPP_NAMESPACE
Optional<const AllocationCallbacks> allocator,
Dispatch const & d ) const
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
VULKAN_HPP_NAMESPACE::Buffer buffer;
Result result = static_cast<Result>(
d.vkCreateBuffer( m_device,
@@ -1941,6 +2069,7 @@ namespace VULKAN_HPP_NAMESPACE
Optional<const AllocationCallbacks> allocator,
Dispatch const & d ) const
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
VULKAN_HPP_NAMESPACE::Buffer buffer;
Result result = static_cast<Result>(
d.vkCreateBuffer( m_device,
@@ -1960,6 +2089,7 @@ namespace VULKAN_HPP_NAMESPACE
const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
d.vkDestroyBuffer(
m_device, static_cast<VkBuffer>( buffer ), reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ) );
}
@@ -1970,6 +2100,7 @@ namespace VULKAN_HPP_NAMESPACE
Optional<const AllocationCallbacks> allocator,
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
d.vkDestroyBuffer( m_device,
static_cast<VkBuffer>( buffer ),
reinterpret_cast<const VkAllocationCallbacks *>(
@@ -1982,6 +2113,7 @@ namespace VULKAN_HPP_NAMESPACE
const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
d.vkDestroyBuffer(
m_device, static_cast<VkBuffer>( buffer ), reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ) );
}
@@ -1992,6 +2124,7 @@ namespace VULKAN_HPP_NAMESPACE
Optional<const AllocationCallbacks> allocator,
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
d.vkDestroyBuffer( m_device,
static_cast<VkBuffer>( buffer ),
reinterpret_cast<const VkAllocationCallbacks *>(
@@ -2006,6 +2139,7 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_NAMESPACE::BufferView * pView,
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
return static_cast<Result>( d.vkCreateBufferView( m_device,
reinterpret_cast<const VkBufferViewCreateInfo *>( pCreateInfo ),
reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ),
@@ -2020,6 +2154,7 @@ namespace VULKAN_HPP_NAMESPACE
Optional<const AllocationCallbacks> allocator,
Dispatch const & d ) const
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
VULKAN_HPP_NAMESPACE::BufferView view;
Result result = static_cast<Result>(
d.vkCreateBufferView( m_device,
@@ -2038,6 +2173,7 @@ namespace VULKAN_HPP_NAMESPACE
Optional<const AllocationCallbacks> allocator,
Dispatch const & d ) const
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
VULKAN_HPP_NAMESPACE::BufferView view;
Result result = static_cast<Result>(
d.vkCreateBufferView( m_device,
@@ -2057,6 +2193,7 @@ namespace VULKAN_HPP_NAMESPACE
const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
d.vkDestroyBufferView( m_device,
static_cast<VkBufferView>( bufferView ),
reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ) );
@@ -2068,6 +2205,7 @@ namespace VULKAN_HPP_NAMESPACE
Optional<const AllocationCallbacks> allocator,
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
d.vkDestroyBufferView( m_device,
static_cast<VkBufferView>( bufferView ),
reinterpret_cast<const VkAllocationCallbacks *>(
@@ -2080,6 +2218,7 @@ namespace VULKAN_HPP_NAMESPACE
const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
d.vkDestroyBufferView( m_device,
static_cast<VkBufferView>( bufferView ),
reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ) );
@@ -2091,6 +2230,7 @@ namespace VULKAN_HPP_NAMESPACE
Optional<const AllocationCallbacks> allocator,
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
d.vkDestroyBufferView( m_device,
static_cast<VkBufferView>( bufferView ),
reinterpret_cast<const VkAllocationCallbacks *>(
@@ -2105,6 +2245,7 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_NAMESPACE::Image * pImage,
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
return static_cast<Result>( d.vkCreateImage( m_device,
reinterpret_cast<const VkImageCreateInfo *>( pCreateInfo ),
reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ),
@@ -2118,6 +2259,7 @@ namespace VULKAN_HPP_NAMESPACE
Optional<const AllocationCallbacks> allocator,
Dispatch const & d ) const
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
VULKAN_HPP_NAMESPACE::Image image;
Result result = static_cast<Result>(
d.vkCreateImage( m_device,
@@ -2136,6 +2278,7 @@ namespace VULKAN_HPP_NAMESPACE
Optional<const AllocationCallbacks> allocator,
Dispatch const & d ) const
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
VULKAN_HPP_NAMESPACE::Image image;
Result result = static_cast<Result>(
d.vkCreateImage( m_device,
@@ -2155,6 +2298,7 @@ namespace VULKAN_HPP_NAMESPACE
const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
d.vkDestroyImage(
m_device, static_cast<VkImage>( image ), reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ) );
}
@@ -2165,6 +2309,7 @@ namespace VULKAN_HPP_NAMESPACE
Optional<const AllocationCallbacks> allocator,
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
d.vkDestroyImage( m_device,
static_cast<VkImage>( image ),
reinterpret_cast<const VkAllocationCallbacks *>(
@@ -2177,6 +2322,7 @@ namespace VULKAN_HPP_NAMESPACE
const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
d.vkDestroyImage(
m_device, static_cast<VkImage>( image ), reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ) );
}
@@ -2187,6 +2333,7 @@ namespace VULKAN_HPP_NAMESPACE
Optional<const AllocationCallbacks> allocator,
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
d.vkDestroyImage( m_device,
static_cast<VkImage>( image ),
reinterpret_cast<const VkAllocationCallbacks *>(
@@ -2200,6 +2347,7 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_NAMESPACE::SubresourceLayout * pLayout,
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
d.vkGetImageSubresourceLayout( m_device,
static_cast<VkImage>( image ),
reinterpret_cast<const VkImageSubresource *>( pSubresource ),
@@ -2213,6 +2361,7 @@ namespace VULKAN_HPP_NAMESPACE
const ImageSubresource & subresource,
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
VULKAN_HPP_NAMESPACE::SubresourceLayout layout;
d.vkGetImageSubresourceLayout( m_device,
static_cast<VkImage>( image ),
@@ -2229,6 +2378,7 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_NAMESPACE::ImageView * pView,
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
return static_cast<Result>( d.vkCreateImageView( m_device,
reinterpret_cast<const VkImageViewCreateInfo *>( pCreateInfo ),
reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ),
@@ -2243,6 +2393,7 @@ namespace VULKAN_HPP_NAMESPACE
Optional<const AllocationCallbacks> allocator,
Dispatch const & d ) const
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
VULKAN_HPP_NAMESPACE::ImageView view;
Result result = static_cast<Result>(
d.vkCreateImageView( m_device,
@@ -2261,6 +2412,7 @@ namespace VULKAN_HPP_NAMESPACE
Optional<const AllocationCallbacks> allocator,
Dispatch const & d ) const
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
VULKAN_HPP_NAMESPACE::ImageView view;
Result result = static_cast<Result>(
d.vkCreateImageView( m_device,
@@ -2280,6 +2432,7 @@ namespace VULKAN_HPP_NAMESPACE
const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
d.vkDestroyImageView(
m_device, static_cast<VkImageView>( imageView ), reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ) );
}
@@ -2290,6 +2443,7 @@ namespace VULKAN_HPP_NAMESPACE
Optional<const AllocationCallbacks> allocator,
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
d.vkDestroyImageView( m_device,
static_cast<VkImageView>( imageView ),
reinterpret_cast<const VkAllocationCallbacks *>(
@@ -2302,6 +2456,7 @@ namespace VULKAN_HPP_NAMESPACE
const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
d.vkDestroyImageView(
m_device, static_cast<VkImageView>( imageView ), reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ) );
}
@@ -2312,6 +2467,7 @@ namespace VULKAN_HPP_NAMESPACE
Optional<const AllocationCallbacks> allocator,
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
d.vkDestroyImageView( m_device,
static_cast<VkImageView>( imageView ),
reinterpret_cast<const VkAllocationCallbacks *>(
@@ -2326,6 +2482,7 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_NAMESPACE::ShaderModule * pShaderModule,
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
return static_cast<Result>(
d.vkCreateShaderModule( m_device,
reinterpret_cast<const VkShaderModuleCreateInfo *>( pCreateInfo ),
@@ -2341,6 +2498,7 @@ namespace VULKAN_HPP_NAMESPACE
Optional<const AllocationCallbacks> allocator,
Dispatch const & d ) const
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
VULKAN_HPP_NAMESPACE::ShaderModule shaderModule;
Result result = static_cast<Result>(
d.vkCreateShaderModule( m_device,
@@ -2359,6 +2517,7 @@ namespace VULKAN_HPP_NAMESPACE
Optional<const AllocationCallbacks> allocator,
Dispatch const & d ) const
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
VULKAN_HPP_NAMESPACE::ShaderModule shaderModule;
Result result = static_cast<Result>(
d.vkCreateShaderModule( m_device,
@@ -2378,6 +2537,7 @@ namespace VULKAN_HPP_NAMESPACE
const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
d.vkDestroyShaderModule( m_device,
static_cast<VkShaderModule>( shaderModule ),
reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ) );
@@ -2389,6 +2549,7 @@ namespace VULKAN_HPP_NAMESPACE
Optional<const AllocationCallbacks> allocator,
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
d.vkDestroyShaderModule( m_device,
static_cast<VkShaderModule>( shaderModule ),
reinterpret_cast<const VkAllocationCallbacks *>(
@@ -2401,6 +2562,7 @@ namespace VULKAN_HPP_NAMESPACE
const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
d.vkDestroyShaderModule( m_device,
static_cast<VkShaderModule>( shaderModule ),
reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ) );
@@ -2412,6 +2574,7 @@ namespace VULKAN_HPP_NAMESPACE
Optional<const AllocationCallbacks> allocator,
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
d.vkDestroyShaderModule( m_device,
static_cast<VkShaderModule>( shaderModule ),
reinterpret_cast<const VkAllocationCallbacks *>(
@@ -2426,6 +2589,7 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_NAMESPACE::PipelineCache * pPipelineCache,
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
return static_cast<Result>(
d.vkCreatePipelineCache( m_device,
reinterpret_cast<const VkPipelineCacheCreateInfo *>( pCreateInfo ),
@@ -2441,6 +2605,7 @@ namespace VULKAN_HPP_NAMESPACE
Optional<const AllocationCallbacks> allocator,
Dispatch const & d ) const
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache;
Result result = static_cast<Result>(
d.vkCreatePipelineCache( m_device,
@@ -2459,6 +2624,7 @@ namespace VULKAN_HPP_NAMESPACE
Optional<const AllocationCallbacks> allocator,
Dispatch const & d ) const
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache;
Result result = static_cast<Result>(
d.vkCreatePipelineCache( m_device,
@@ -2478,6 +2644,7 @@ namespace VULKAN_HPP_NAMESPACE
const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
d.vkDestroyPipelineCache( m_device,
static_cast<VkPipelineCache>( pipelineCache ),
reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ) );
@@ -2489,6 +2656,7 @@ namespace VULKAN_HPP_NAMESPACE
Optional<const AllocationCallbacks> allocator,
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
d.vkDestroyPipelineCache( m_device,
static_cast<VkPipelineCache>( pipelineCache ),
reinterpret_cast<const VkAllocationCallbacks *>(
@@ -2501,6 +2669,7 @@ namespace VULKAN_HPP_NAMESPACE
const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
d.vkDestroyPipelineCache( m_device,
static_cast<VkPipelineCache>( pipelineCache ),
reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ) );
@@ -2512,6 +2681,7 @@ namespace VULKAN_HPP_NAMESPACE
Optional<const AllocationCallbacks> allocator,
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
d.vkDestroyPipelineCache( m_device,
static_cast<VkPipelineCache>( pipelineCache ),
reinterpret_cast<const VkAllocationCallbacks *>(
@@ -2526,6 +2696,7 @@ namespace VULKAN_HPP_NAMESPACE
void * pData,
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
return static_cast<Result>(
d.vkGetPipelineCacheData( m_device, static_cast<VkPipelineCache>( pipelineCache ), pDataSize, pData ) );
}
@@ -2535,6 +2706,7 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType<std::vector<uint8_t, Uint8_tAllocator>>::type
Device::getPipelineCacheData( VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache, Dispatch const & d ) const
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
std::vector<uint8_t, Uint8_tAllocator> data;
size_t dataSize;
Result result;
@@ -2568,6 +2740,7 @@ namespace VULKAN_HPP_NAMESPACE
Uint8_tAllocator & uint8_tAllocator,
Dispatch const & d ) const
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
std::vector<uint8_t, Uint8_tAllocator> data( uint8_tAllocator );
size_t dataSize;
Result result;
@@ -2600,6 +2773,7 @@ namespace VULKAN_HPP_NAMESPACE
const VULKAN_HPP_NAMESPACE::PipelineCache * pSrcCaches,
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
return static_cast<Result>( d.vkMergePipelineCaches( m_device,
static_cast<VkPipelineCache>( dstCache ),
srcCacheCount,
@@ -2613,6 +2787,7 @@ namespace VULKAN_HPP_NAMESPACE
ArrayProxy<const VULKAN_HPP_NAMESPACE::PipelineCache> const & srcCaches,
Dispatch const & d ) const
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
Result result =
static_cast<Result>( d.vkMergePipelineCaches( m_device,
static_cast<VkPipelineCache>( dstCache ),
@@ -2631,6 +2806,7 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_NAMESPACE::Pipeline * pPipelines,
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
return static_cast<Result>(
d.vkCreateGraphicsPipelines( m_device,
static_cast<VkPipelineCache>( pipelineCache ),
@@ -2649,6 +2825,7 @@ namespace VULKAN_HPP_NAMESPACE
Optional<const AllocationCallbacks> allocator,
Dispatch const & d ) const
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
std::vector<Pipeline, PipelineAllocator> pipelines( createInfos.size() );
Result result = static_cast<Result>(
d.vkCreateGraphicsPipelines( m_device,
@@ -2677,6 +2854,7 @@ namespace VULKAN_HPP_NAMESPACE
PipelineAllocator & pipelineAllocator,
Dispatch const & d ) const
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
std::vector<Pipeline, PipelineAllocator> pipelines( createInfos.size(), pipelineAllocator );
Result result = static_cast<Result>(
d.vkCreateGraphicsPipelines( m_device,
@@ -2700,6 +2878,7 @@ namespace VULKAN_HPP_NAMESPACE
Optional<const AllocationCallbacks> allocator,
Dispatch const & d ) const
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
Pipeline pipeline;
Result result = static_cast<Result>(
d.vkCreateGraphicsPipelines( m_device,
@@ -2725,6 +2904,7 @@ namespace VULKAN_HPP_NAMESPACE
Optional<const AllocationCallbacks> allocator,
Dispatch const & d ) const
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
std::vector<UniqueHandle<Pipeline, Dispatch>, PipelineAllocator> uniquePipelines;
std::vector<Pipeline> pipelines( createInfos.size() );
Result result = static_cast<Result>(
@@ -2765,6 +2945,7 @@ namespace VULKAN_HPP_NAMESPACE
PipelineAllocator & pipelineAllocator,
Dispatch const & d ) const
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
std::vector<UniqueHandle<Pipeline, Dispatch>, PipelineAllocator> uniquePipelines( pipelineAllocator );
std::vector<Pipeline> pipelines( createInfos.size() );
Result result = static_cast<Result>(
@@ -2799,6 +2980,7 @@ namespace VULKAN_HPP_NAMESPACE
Optional<const AllocationCallbacks> allocator,
Dispatch const & d ) const
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
Pipeline pipeline;
Result result = static_cast<Result>(
d.vkCreateGraphicsPipelines( m_device,
@@ -2828,6 +3010,7 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_NAMESPACE::Pipeline * pPipelines,
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
return static_cast<Result>(
d.vkCreateComputePipelines( m_device,
static_cast<VkPipelineCache>( pipelineCache ),
@@ -2846,6 +3029,7 @@ namespace VULKAN_HPP_NAMESPACE
Optional<const AllocationCallbacks> allocator,
Dispatch const & d ) const
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
std::vector<Pipeline, PipelineAllocator> pipelines( createInfos.size() );
Result result = static_cast<Result>(
d.vkCreateComputePipelines( m_device,
@@ -2874,6 +3058,7 @@ namespace VULKAN_HPP_NAMESPACE
PipelineAllocator & pipelineAllocator,
Dispatch const & d ) const
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
std::vector<Pipeline, PipelineAllocator> pipelines( createInfos.size(), pipelineAllocator );
Result result = static_cast<Result>(
d.vkCreateComputePipelines( m_device,
@@ -2897,6 +3082,7 @@ namespace VULKAN_HPP_NAMESPACE
Optional<const AllocationCallbacks> allocator,
Dispatch const & d ) const
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
Pipeline pipeline;
Result result = static_cast<Result>(
d.vkCreateComputePipelines( m_device,
@@ -2922,6 +3108,7 @@ namespace VULKAN_HPP_NAMESPACE
Optional<const AllocationCallbacks> allocator,
Dispatch const & d ) const
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
std::vector<UniqueHandle<Pipeline, Dispatch>, PipelineAllocator> uniquePipelines;
std::vector<Pipeline> pipelines( createInfos.size() );
Result result = static_cast<Result>(
@@ -2962,6 +3149,7 @@ namespace VULKAN_HPP_NAMESPACE
PipelineAllocator & pipelineAllocator,
Dispatch const & d ) const
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
std::vector<UniqueHandle<Pipeline, Dispatch>, PipelineAllocator> uniquePipelines( pipelineAllocator );
std::vector<Pipeline> pipelines( createInfos.size() );
Result result = static_cast<Result>(
@@ -2996,6 +3184,7 @@ namespace VULKAN_HPP_NAMESPACE
Optional<const AllocationCallbacks> allocator,
Dispatch const & d ) const
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
Pipeline pipeline;
Result result = static_cast<Result>(
d.vkCreateComputePipelines( m_device,
@@ -3021,6 +3210,7 @@ namespace VULKAN_HPP_NAMESPACE
const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
d.vkDestroyPipeline(
m_device, static_cast<VkPipeline>( pipeline ), reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ) );
}
@@ -3031,6 +3221,7 @@ namespace VULKAN_HPP_NAMESPACE
Optional<const AllocationCallbacks> allocator,
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
d.vkDestroyPipeline( m_device,
static_cast<VkPipeline>( pipeline ),
reinterpret_cast<const VkAllocationCallbacks *>(
@@ -3043,6 +3234,7 @@ namespace VULKAN_HPP_NAMESPACE
const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
d.vkDestroyPipeline(
m_device, static_cast<VkPipeline>( pipeline ), reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ) );
}
@@ -3053,6 +3245,7 @@ namespace VULKAN_HPP_NAMESPACE
Optional<const AllocationCallbacks> allocator,
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
d.vkDestroyPipeline( m_device,
static_cast<VkPipeline>( pipeline ),
reinterpret_cast<const VkAllocationCallbacks *>(
@@ -3067,6 +3260,7 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_NAMESPACE::PipelineLayout * pPipelineLayout,
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
return static_cast<Result>(
d.vkCreatePipelineLayout( m_device,
reinterpret_cast<const VkPipelineLayoutCreateInfo *>( pCreateInfo ),
@@ -3082,6 +3276,7 @@ namespace VULKAN_HPP_NAMESPACE
Optional<const AllocationCallbacks> allocator,
Dispatch const & d ) const
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
VULKAN_HPP_NAMESPACE::PipelineLayout pipelineLayout;
Result result = static_cast<Result>(
d.vkCreatePipelineLayout( m_device,
@@ -3100,6 +3295,7 @@ namespace VULKAN_HPP_NAMESPACE
Optional<const AllocationCallbacks> allocator,
Dispatch const & d ) const
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
VULKAN_HPP_NAMESPACE::PipelineLayout pipelineLayout;
Result result = static_cast<Result>(
d.vkCreatePipelineLayout( m_device,
@@ -3119,6 +3315,7 @@ namespace VULKAN_HPP_NAMESPACE
const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
d.vkDestroyPipelineLayout( m_device,
static_cast<VkPipelineLayout>( pipelineLayout ),
reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ) );
@@ -3130,6 +3327,7 @@ namespace VULKAN_HPP_NAMESPACE
Optional<const AllocationCallbacks> allocator,
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
d.vkDestroyPipelineLayout( m_device,
static_cast<VkPipelineLayout>( pipelineLayout ),
reinterpret_cast<const VkAllocationCallbacks *>(
@@ -3142,6 +3340,7 @@ namespace VULKAN_HPP_NAMESPACE
const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
d.vkDestroyPipelineLayout( m_device,
static_cast<VkPipelineLayout>( pipelineLayout ),
reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ) );
@@ -3153,6 +3352,7 @@ namespace VULKAN_HPP_NAMESPACE
Optional<const AllocationCallbacks> allocator,
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
d.vkDestroyPipelineLayout( m_device,
static_cast<VkPipelineLayout>( pipelineLayout ),
reinterpret_cast<const VkAllocationCallbacks *>(
@@ -3167,6 +3367,7 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_NAMESPACE::Sampler * pSampler,
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
return static_cast<Result>( d.vkCreateSampler( m_device,
reinterpret_cast<const VkSamplerCreateInfo *>( pCreateInfo ),
reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ),
@@ -3181,6 +3382,7 @@ namespace VULKAN_HPP_NAMESPACE
Optional<const AllocationCallbacks> allocator,
Dispatch const & d ) const
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
VULKAN_HPP_NAMESPACE::Sampler sampler;
Result result = static_cast<Result>(
d.vkCreateSampler( m_device,
@@ -3199,6 +3401,7 @@ namespace VULKAN_HPP_NAMESPACE
Optional<const AllocationCallbacks> allocator,
Dispatch const & d ) const
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
VULKAN_HPP_NAMESPACE::Sampler sampler;
Result result = static_cast<Result>(
d.vkCreateSampler( m_device,
@@ -3218,6 +3421,7 @@ namespace VULKAN_HPP_NAMESPACE
const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
d.vkDestroySampler(
m_device, static_cast<VkSampler>( sampler ), reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ) );
}
@@ -3228,6 +3432,7 @@ namespace VULKAN_HPP_NAMESPACE
Optional<const AllocationCallbacks> allocator,
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
d.vkDestroySampler( m_device,
static_cast<VkSampler>( sampler ),
reinterpret_cast<const VkAllocationCallbacks *>(
@@ -3240,6 +3445,7 @@ namespace VULKAN_HPP_NAMESPACE
const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
d.vkDestroySampler(
m_device, static_cast<VkSampler>( sampler ), reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ) );
}
@@ -3250,6 +3456,7 @@ namespace VULKAN_HPP_NAMESPACE
Optional<const AllocationCallbacks> allocator,
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
d.vkDestroySampler( m_device,
static_cast<VkSampler>( sampler ),
reinterpret_cast<const VkAllocationCallbacks *>(
@@ -3264,6 +3471,7 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_NAMESPACE::DescriptorSetLayout * pSetLayout,
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
return static_cast<Result>(
d.vkCreateDescriptorSetLayout( m_device,
reinterpret_cast<const VkDescriptorSetLayoutCreateInfo *>( pCreateInfo ),
@@ -3279,6 +3487,7 @@ namespace VULKAN_HPP_NAMESPACE
Optional<const AllocationCallbacks> allocator,
Dispatch const & d ) const
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
VULKAN_HPP_NAMESPACE::DescriptorSetLayout setLayout;
Result result = static_cast<Result>(
d.vkCreateDescriptorSetLayout( m_device,
@@ -3297,6 +3506,7 @@ namespace VULKAN_HPP_NAMESPACE
Optional<const AllocationCallbacks> allocator,
Dispatch const & d ) const
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
VULKAN_HPP_NAMESPACE::DescriptorSetLayout setLayout;
Result result = static_cast<Result>(
d.vkCreateDescriptorSetLayout( m_device,
@@ -3317,6 +3527,7 @@ namespace VULKAN_HPP_NAMESPACE
const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
d.vkDestroyDescriptorSetLayout( m_device,
static_cast<VkDescriptorSetLayout>( descriptorSetLayout ),
reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ) );
@@ -3329,6 +3540,7 @@ namespace VULKAN_HPP_NAMESPACE
Optional<const AllocationCallbacks> allocator,
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
d.vkDestroyDescriptorSetLayout( m_device,
static_cast<VkDescriptorSetLayout>( descriptorSetLayout ),
reinterpret_cast<const VkAllocationCallbacks *>(
@@ -3341,6 +3553,7 @@ namespace VULKAN_HPP_NAMESPACE
const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
d.vkDestroyDescriptorSetLayout( m_device,
static_cast<VkDescriptorSetLayout>( descriptorSetLayout ),
reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ) );
@@ -3352,6 +3565,7 @@ namespace VULKAN_HPP_NAMESPACE
Optional<const AllocationCallbacks> allocator,
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
d.vkDestroyDescriptorSetLayout( m_device,
static_cast<VkDescriptorSetLayout>( descriptorSetLayout ),
reinterpret_cast<const VkAllocationCallbacks *>(
@@ -3366,6 +3580,7 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_NAMESPACE::DescriptorPool * pDescriptorPool,
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
return static_cast<Result>(
d.vkCreateDescriptorPool( m_device,
reinterpret_cast<const VkDescriptorPoolCreateInfo *>( pCreateInfo ),
@@ -3381,6 +3596,7 @@ namespace VULKAN_HPP_NAMESPACE
Optional<const AllocationCallbacks> allocator,
Dispatch const & d ) const
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
VULKAN_HPP_NAMESPACE::DescriptorPool descriptorPool;
Result result = static_cast<Result>(
d.vkCreateDescriptorPool( m_device,
@@ -3399,6 +3615,7 @@ namespace VULKAN_HPP_NAMESPACE
Optional<const AllocationCallbacks> allocator,
Dispatch const & d ) const
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
VULKAN_HPP_NAMESPACE::DescriptorPool descriptorPool;
Result result = static_cast<Result>(
d.vkCreateDescriptorPool( m_device,
@@ -3418,6 +3635,7 @@ namespace VULKAN_HPP_NAMESPACE
const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
d.vkDestroyDescriptorPool( m_device,
static_cast<VkDescriptorPool>( descriptorPool ),
reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ) );
@@ -3429,6 +3647,7 @@ namespace VULKAN_HPP_NAMESPACE
Optional<const AllocationCallbacks> allocator,
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
d.vkDestroyDescriptorPool( m_device,
static_cast<VkDescriptorPool>( descriptorPool ),
reinterpret_cast<const VkAllocationCallbacks *>(
@@ -3441,6 +3660,7 @@ namespace VULKAN_HPP_NAMESPACE
const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
d.vkDestroyDescriptorPool( m_device,
static_cast<VkDescriptorPool>( descriptorPool ),
reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ) );
@@ -3452,6 +3672,7 @@ namespace VULKAN_HPP_NAMESPACE
Optional<const AllocationCallbacks> allocator,
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
d.vkDestroyDescriptorPool( m_device,
static_cast<VkDescriptorPool>( descriptorPool ),
reinterpret_cast<const VkAllocationCallbacks *>(
@@ -3465,6 +3686,7 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_NAMESPACE::DescriptorPoolResetFlags flags,
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
return static_cast<Result>( d.vkResetDescriptorPool(
m_device, static_cast<VkDescriptorPool>( descriptorPool ), static_cast<VkDescriptorPoolResetFlags>( flags ) ) );
}
@@ -3475,6 +3697,7 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_NAMESPACE::DescriptorPoolResetFlags flags,
Dispatch const & d ) const
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
Result result = static_cast<Result>( d.vkResetDescriptorPool(
m_device, static_cast<VkDescriptorPool>( descriptorPool ), static_cast<VkDescriptorPoolResetFlags>( flags ) ) );
return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING "::Device::resetDescriptorPool" );
@@ -3487,6 +3710,7 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_NAMESPACE::DescriptorSet * pDescriptorSets,
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
return static_cast<Result>(
d.vkAllocateDescriptorSets( m_device,
reinterpret_cast<const VkDescriptorSetAllocateInfo *>( pAllocateInfo ),
@@ -3499,6 +3723,7 @@ namespace VULKAN_HPP_NAMESPACE
typename ResultValueType<std::vector<DescriptorSet, DescriptorSetAllocator>>::type
Device::allocateDescriptorSets( const DescriptorSetAllocateInfo & allocateInfo, Dispatch const & d ) const
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
std::vector<DescriptorSet, DescriptorSetAllocator> descriptorSets( allocateInfo.descriptorSetCount );
Result result = static_cast<Result>(
d.vkAllocateDescriptorSets( m_device,
@@ -3517,6 +3742,7 @@ namespace VULKAN_HPP_NAMESPACE
DescriptorSetAllocator & descriptorSetAllocator,
Dispatch const & d ) const
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
std::vector<DescriptorSet, DescriptorSetAllocator> descriptorSets( allocateInfo.descriptorSetCount,
descriptorSetAllocator );
Result result = static_cast<Result>(
@@ -3532,6 +3758,7 @@ namespace VULKAN_HPP_NAMESPACE
typename ResultValueType<std::vector<UniqueHandle<DescriptorSet, Dispatch>, DescriptorSetAllocator>>::type
Device::allocateDescriptorSetsUnique( const DescriptorSetAllocateInfo & allocateInfo, Dispatch const & d ) const
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
std::vector<UniqueHandle<DescriptorSet, Dispatch>, DescriptorSetAllocator> uniqueDescriptorSets;
std::vector<DescriptorSet> descriptorSets( allocateInfo.descriptorSetCount );
Result result = static_cast<Result>(
@@ -3562,6 +3789,7 @@ namespace VULKAN_HPP_NAMESPACE
DescriptorSetAllocator & descriptorSetAllocator,
Dispatch const & d ) const
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
std::vector<UniqueHandle<DescriptorSet, Dispatch>, DescriptorSetAllocator> uniqueDescriptorSets(
descriptorSetAllocator );
std::vector<DescriptorSet> descriptorSets( allocateInfo.descriptorSetCount );
@@ -3590,6 +3818,7 @@ namespace VULKAN_HPP_NAMESPACE
const VULKAN_HPP_NAMESPACE::DescriptorSet * pDescriptorSets,
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
return static_cast<Result>(
d.vkFreeDescriptorSets( m_device,
static_cast<VkDescriptorPool>( descriptorPool ),
@@ -3604,6 +3833,7 @@ namespace VULKAN_HPP_NAMESPACE
ArrayProxy<const VULKAN_HPP_NAMESPACE::DescriptorSet> const & descriptorSets,
Dispatch const & d ) const
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
Result result = static_cast<Result>(
d.vkFreeDescriptorSets( m_device,
static_cast<VkDescriptorPool>( descriptorPool ),
@@ -3619,6 +3849,7 @@ namespace VULKAN_HPP_NAMESPACE
const VULKAN_HPP_NAMESPACE::DescriptorSet * pDescriptorSets,
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
return static_cast<Result>(
d.vkFreeDescriptorSets( m_device,
static_cast<VkDescriptorPool>( descriptorPool ),
@@ -3633,6 +3864,7 @@ namespace VULKAN_HPP_NAMESPACE
ArrayProxy<const VULKAN_HPP_NAMESPACE::DescriptorSet> const & descriptorSets,
Dispatch const & d ) const
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
Result result = static_cast<Result>(
d.vkFreeDescriptorSets( m_device,
static_cast<VkDescriptorPool>( descriptorPool ),
@@ -3650,6 +3882,7 @@ namespace VULKAN_HPP_NAMESPACE
const VULKAN_HPP_NAMESPACE::CopyDescriptorSet * pDescriptorCopies,
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
d.vkUpdateDescriptorSets( m_device,
descriptorWriteCount,
reinterpret_cast<const VkWriteDescriptorSet *>( pDescriptorWrites ),
@@ -3664,6 +3897,7 @@ namespace VULKAN_HPP_NAMESPACE
ArrayProxy<const VULKAN_HPP_NAMESPACE::CopyDescriptorSet> const & descriptorCopies,
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
d.vkUpdateDescriptorSets( m_device,
descriptorWrites.size(),
reinterpret_cast<const VkWriteDescriptorSet *>( descriptorWrites.data() ),
@@ -3679,6 +3913,7 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_NAMESPACE::Framebuffer * pFramebuffer,
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
return static_cast<Result>( d.vkCreateFramebuffer( m_device,
reinterpret_cast<const VkFramebufferCreateInfo *>( pCreateInfo ),
reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ),
@@ -3693,6 +3928,7 @@ namespace VULKAN_HPP_NAMESPACE
Optional<const AllocationCallbacks> allocator,
Dispatch const & d ) const
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
VULKAN_HPP_NAMESPACE::Framebuffer framebuffer;
Result result = static_cast<Result>(
d.vkCreateFramebuffer( m_device,
@@ -3711,6 +3947,7 @@ namespace VULKAN_HPP_NAMESPACE
Optional<const AllocationCallbacks> allocator,
Dispatch const & d ) const
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
VULKAN_HPP_NAMESPACE::Framebuffer framebuffer;
Result result = static_cast<Result>(
d.vkCreateFramebuffer( m_device,
@@ -3730,6 +3967,7 @@ namespace VULKAN_HPP_NAMESPACE
const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
d.vkDestroyFramebuffer( m_device,
static_cast<VkFramebuffer>( framebuffer ),
reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ) );
@@ -3741,6 +3979,7 @@ namespace VULKAN_HPP_NAMESPACE
Optional<const AllocationCallbacks> allocator,
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
d.vkDestroyFramebuffer( m_device,
static_cast<VkFramebuffer>( framebuffer ),
reinterpret_cast<const VkAllocationCallbacks *>(
@@ -3753,6 +3992,7 @@ namespace VULKAN_HPP_NAMESPACE
const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
d.vkDestroyFramebuffer( m_device,
static_cast<VkFramebuffer>( framebuffer ),
reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ) );
@@ -3764,6 +4004,7 @@ namespace VULKAN_HPP_NAMESPACE
Optional<const AllocationCallbacks> allocator,
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
d.vkDestroyFramebuffer( m_device,
static_cast<VkFramebuffer>( framebuffer ),
reinterpret_cast<const VkAllocationCallbacks *>(
@@ -3778,6 +4019,7 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_NAMESPACE::RenderPass * pRenderPass,
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
return static_cast<Result>( d.vkCreateRenderPass( m_device,
reinterpret_cast<const VkRenderPassCreateInfo *>( pCreateInfo ),
reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ),
@@ -3792,6 +4034,7 @@ namespace VULKAN_HPP_NAMESPACE
Optional<const AllocationCallbacks> allocator,
Dispatch const & d ) const
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
VULKAN_HPP_NAMESPACE::RenderPass renderPass;
Result result = static_cast<Result>(
d.vkCreateRenderPass( m_device,
@@ -3810,6 +4053,7 @@ namespace VULKAN_HPP_NAMESPACE
Optional<const AllocationCallbacks> allocator,
Dispatch const & d ) const
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
VULKAN_HPP_NAMESPACE::RenderPass renderPass;
Result result = static_cast<Result>(
d.vkCreateRenderPass( m_device,
@@ -3829,6 +4073,7 @@ namespace VULKAN_HPP_NAMESPACE
const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
d.vkDestroyRenderPass( m_device,
static_cast<VkRenderPass>( renderPass ),
reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ) );
@@ -3840,6 +4085,7 @@ namespace VULKAN_HPP_NAMESPACE
Optional<const AllocationCallbacks> allocator,
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
d.vkDestroyRenderPass( m_device,
static_cast<VkRenderPass>( renderPass ),
reinterpret_cast<const VkAllocationCallbacks *>(
@@ -3852,6 +4098,7 @@ namespace VULKAN_HPP_NAMESPACE
const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
d.vkDestroyRenderPass( m_device,
static_cast<VkRenderPass>( renderPass ),
reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ) );
@@ -3863,6 +4110,7 @@ namespace VULKAN_HPP_NAMESPACE
Optional<const AllocationCallbacks> allocator,
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
d.vkDestroyRenderPass( m_device,
static_cast<VkRenderPass>( renderPass ),
reinterpret_cast<const VkAllocationCallbacks *>(
@@ -3875,6 +4123,7 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_NAMESPACE::Extent2D * pGranularity,
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
d.vkGetRenderAreaGranularity(
m_device, static_cast<VkRenderPass>( renderPass ), reinterpret_cast<VkExtent2D *>( pGranularity ) );
}
@@ -3885,6 +4134,7 @@ namespace VULKAN_HPP_NAMESPACE
Device::getRenderAreaGranularity( VULKAN_HPP_NAMESPACE::RenderPass renderPass,
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
VULKAN_HPP_NAMESPACE::Extent2D granularity;
d.vkGetRenderAreaGranularity(
m_device, static_cast<VkRenderPass>( renderPass ), reinterpret_cast<VkExtent2D *>( &granularity ) );
@@ -3899,6 +4149,7 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_NAMESPACE::CommandPool * pCommandPool,
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
return static_cast<Result>( d.vkCreateCommandPool( m_device,
reinterpret_cast<const VkCommandPoolCreateInfo *>( pCreateInfo ),
reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ),
@@ -3913,6 +4164,7 @@ namespace VULKAN_HPP_NAMESPACE
Optional<const AllocationCallbacks> allocator,
Dispatch const & d ) const
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
VULKAN_HPP_NAMESPACE::CommandPool commandPool;
Result result = static_cast<Result>(
d.vkCreateCommandPool( m_device,
@@ -3931,6 +4183,7 @@ namespace VULKAN_HPP_NAMESPACE
Optional<const AllocationCallbacks> allocator,
Dispatch const & d ) const
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
VULKAN_HPP_NAMESPACE::CommandPool commandPool;
Result result = static_cast<Result>(
d.vkCreateCommandPool( m_device,
@@ -3950,6 +4203,7 @@ namespace VULKAN_HPP_NAMESPACE
const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
d.vkDestroyCommandPool( m_device,
static_cast<VkCommandPool>( commandPool ),
reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ) );
@@ -3961,6 +4215,7 @@ namespace VULKAN_HPP_NAMESPACE
Optional<const AllocationCallbacks> allocator,
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
d.vkDestroyCommandPool( m_device,
static_cast<VkCommandPool>( commandPool ),
reinterpret_cast<const VkAllocationCallbacks *>(
@@ -3973,6 +4228,7 @@ namespace VULKAN_HPP_NAMESPACE
const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
d.vkDestroyCommandPool( m_device,
static_cast<VkCommandPool>( commandPool ),
reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ) );
@@ -3984,6 +4240,7 @@ namespace VULKAN_HPP_NAMESPACE
Optional<const AllocationCallbacks> allocator,
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
d.vkDestroyCommandPool( m_device,
static_cast<VkCommandPool>( commandPool ),
reinterpret_cast<const VkAllocationCallbacks *>(
@@ -3998,6 +4255,7 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_NAMESPACE::CommandPoolResetFlags flags,
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
return static_cast<Result>( d.vkResetCommandPool(
m_device, static_cast<VkCommandPool>( commandPool ), static_cast<VkCommandPoolResetFlags>( flags ) ) );
}
@@ -4008,6 +4266,7 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_NAMESPACE::CommandPoolResetFlags flags,
Dispatch const & d ) const
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
Result result = static_cast<Result>( d.vkResetCommandPool(
m_device, static_cast<VkCommandPool>( commandPool ), static_cast<VkCommandPoolResetFlags>( flags ) ) );
return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING "::Device::resetCommandPool" );
@@ -4020,6 +4279,7 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_NAMESPACE::CommandBuffer * pCommandBuffers,
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
return static_cast<Result>(
d.vkAllocateCommandBuffers( m_device,
reinterpret_cast<const VkCommandBufferAllocateInfo *>( pAllocateInfo ),
@@ -4032,6 +4292,7 @@ namespace VULKAN_HPP_NAMESPACE
typename ResultValueType<std::vector<CommandBuffer, CommandBufferAllocator>>::type
Device::allocateCommandBuffers( const CommandBufferAllocateInfo & allocateInfo, Dispatch const & d ) const
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
std::vector<CommandBuffer, CommandBufferAllocator> commandBuffers( allocateInfo.commandBufferCount );
Result result = static_cast<Result>(
d.vkAllocateCommandBuffers( m_device,
@@ -4050,6 +4311,7 @@ namespace VULKAN_HPP_NAMESPACE
CommandBufferAllocator & commandBufferAllocator,
Dispatch const & d ) const
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
std::vector<CommandBuffer, CommandBufferAllocator> commandBuffers( allocateInfo.commandBufferCount,
commandBufferAllocator );
Result result = static_cast<Result>(
@@ -4065,6 +4327,7 @@ namespace VULKAN_HPP_NAMESPACE
typename ResultValueType<std::vector<UniqueHandle<CommandBuffer, Dispatch>, CommandBufferAllocator>>::type
Device::allocateCommandBuffersUnique( const CommandBufferAllocateInfo & allocateInfo, Dispatch const & d ) const
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
std::vector<UniqueHandle<CommandBuffer, Dispatch>, CommandBufferAllocator> uniqueCommandBuffers;
std::vector<CommandBuffer> commandBuffers( allocateInfo.commandBufferCount );
Result result = static_cast<Result>(
@@ -4095,6 +4358,7 @@ namespace VULKAN_HPP_NAMESPACE
CommandBufferAllocator & commandBufferAllocator,
Dispatch const & d ) const
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
std::vector<UniqueHandle<CommandBuffer, Dispatch>, CommandBufferAllocator> uniqueCommandBuffers(
commandBufferAllocator );
std::vector<CommandBuffer> commandBuffers( allocateInfo.commandBufferCount );
@@ -4123,6 +4387,7 @@ namespace VULKAN_HPP_NAMESPACE
const VULKAN_HPP_NAMESPACE::CommandBuffer * pCommandBuffers,
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
d.vkFreeCommandBuffers( m_device,
static_cast<VkCommandPool>( commandPool ),
commandBufferCount,
@@ -4136,6 +4401,7 @@ namespace VULKAN_HPP_NAMESPACE
ArrayProxy<const VULKAN_HPP_NAMESPACE::CommandBuffer> const & commandBuffers,
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
d.vkFreeCommandBuffers( m_device,
static_cast<VkCommandPool>( commandPool ),
commandBuffers.size(),
@@ -4149,6 +4415,7 @@ namespace VULKAN_HPP_NAMESPACE
const VULKAN_HPP_NAMESPACE::CommandBuffer * pCommandBuffers,
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
d.vkFreeCommandBuffers( m_device,
static_cast<VkCommandPool>( commandPool ),
commandBufferCount,
@@ -4161,6 +4428,7 @@ namespace VULKAN_HPP_NAMESPACE
ArrayProxy<const VULKAN_HPP_NAMESPACE::CommandBuffer> const & commandBuffers,
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
d.vkFreeCommandBuffers( m_device,
static_cast<VkCommandPool>( commandPool ),
commandBuffers.size(),
@@ -4172,6 +4440,7 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result CommandBuffer::begin(
const VULKAN_HPP_NAMESPACE::CommandBufferBeginInfo * pBeginInfo, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
return static_cast<Result>(
d.vkBeginCommandBuffer( m_commandBuffer, reinterpret_cast<const VkCommandBufferBeginInfo *>( pBeginInfo ) ) );
}
@@ -4181,6 +4450,7 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType<void>::type
CommandBuffer::begin( const CommandBufferBeginInfo & beginInfo, Dispatch const & d ) const
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
Result result = static_cast<Result>(
d.vkBeginCommandBuffer( m_commandBuffer, reinterpret_cast<const VkCommandBufferBeginInfo *>( &beginInfo ) ) );
return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING "::CommandBuffer::begin" );
@@ -4191,6 +4461,7 @@ namespace VULKAN_HPP_NAMESPACE
template <typename Dispatch>
VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result CommandBuffer::end( Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
return static_cast<Result>( d.vkEndCommandBuffer( m_commandBuffer ) );
}
#else
@@ -4198,6 +4469,7 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType<void>::type
CommandBuffer::end( Dispatch const & d ) const
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
Result result = static_cast<Result>( d.vkEndCommandBuffer( m_commandBuffer ) );
return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING "::CommandBuffer::end" );
}
@@ -4208,6 +4480,7 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result CommandBuffer::reset(
VULKAN_HPP_NAMESPACE::CommandBufferResetFlags flags, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
return static_cast<Result>(
d.vkResetCommandBuffer( m_commandBuffer, static_cast<VkCommandBufferResetFlags>( flags ) ) );
}
@@ -4216,6 +4489,7 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_INLINE typename ResultValueType<void>::type
CommandBuffer::reset( VULKAN_HPP_NAMESPACE::CommandBufferResetFlags flags, Dispatch const & d ) const
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
Result result =
static_cast<Result>( d.vkResetCommandBuffer( m_commandBuffer, static_cast<VkCommandBufferResetFlags>( flags ) ) );
return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING "::CommandBuffer::reset" );
@@ -4227,6 +4501,7 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_NAMESPACE::Pipeline pipeline,
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
d.vkCmdBindPipeline(
m_commandBuffer, static_cast<VkPipelineBindPoint>( pipelineBindPoint ), static_cast<VkPipeline>( pipeline ) );
}
@@ -4237,6 +4512,7 @@ namespace VULKAN_HPP_NAMESPACE
const VULKAN_HPP_NAMESPACE::Viewport * pViewports,
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
d.vkCmdSetViewport(
m_commandBuffer, firstViewport, viewportCount, reinterpret_cast<const VkViewport *>( pViewports ) );
}
@@ -4247,6 +4523,7 @@ namespace VULKAN_HPP_NAMESPACE
ArrayProxy<const VULKAN_HPP_NAMESPACE::Viewport> const & viewports,
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
d.vkCmdSetViewport(
m_commandBuffer, firstViewport, viewports.size(), reinterpret_cast<const VkViewport *>( viewports.data() ) );
}
@@ -4258,6 +4535,7 @@ namespace VULKAN_HPP_NAMESPACE
const VULKAN_HPP_NAMESPACE::Rect2D * pScissors,
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
d.vkCmdSetScissor( m_commandBuffer, firstScissor, scissorCount, reinterpret_cast<const VkRect2D *>( pScissors ) );
}
@@ -4267,6 +4545,7 @@ namespace VULKAN_HPP_NAMESPACE
ArrayProxy<const VULKAN_HPP_NAMESPACE::Rect2D> const & scissors,
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
d.vkCmdSetScissor(
m_commandBuffer, firstScissor, scissors.size(), reinterpret_cast<const VkRect2D *>( scissors.data() ) );
}
@@ -4275,6 +4554,7 @@ namespace VULKAN_HPP_NAMESPACE
template <typename Dispatch>
VULKAN_HPP_INLINE void CommandBuffer::setLineWidth( float lineWidth, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
d.vkCmdSetLineWidth( m_commandBuffer, lineWidth );
}
@@ -4284,6 +4564,7 @@ namespace VULKAN_HPP_NAMESPACE
float depthBiasSlopeFactor,
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
d.vkCmdSetDepthBias( m_commandBuffer, depthBiasConstantFactor, depthBiasClamp, depthBiasSlopeFactor );
}
@@ -4291,6 +4572,7 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_INLINE void CommandBuffer::setBlendConstants( const float blendConstants[4],
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
d.vkCmdSetBlendConstants( m_commandBuffer, blendConstants );
}
@@ -4299,6 +4581,7 @@ namespace VULKAN_HPP_NAMESPACE
float maxDepthBounds,
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
d.vkCmdSetDepthBounds( m_commandBuffer, minDepthBounds, maxDepthBounds );
}
@@ -4307,6 +4590,7 @@ namespace VULKAN_HPP_NAMESPACE
uint32_t compareMask,
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
d.vkCmdSetStencilCompareMask( m_commandBuffer, static_cast<VkStencilFaceFlags>( faceMask ), compareMask );
}
@@ -4315,6 +4599,7 @@ namespace VULKAN_HPP_NAMESPACE
uint32_t writeMask,
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
d.vkCmdSetStencilWriteMask( m_commandBuffer, static_cast<VkStencilFaceFlags>( faceMask ), writeMask );
}
@@ -4323,6 +4608,7 @@ namespace VULKAN_HPP_NAMESPACE
uint32_t reference,
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
d.vkCmdSetStencilReference( m_commandBuffer, static_cast<VkStencilFaceFlags>( faceMask ), reference );
}
@@ -4336,6 +4622,7 @@ namespace VULKAN_HPP_NAMESPACE
const uint32_t * pDynamicOffsets,
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
d.vkCmdBindDescriptorSets( m_commandBuffer,
static_cast<VkPipelineBindPoint>( pipelineBindPoint ),
static_cast<VkPipelineLayout>( layout ),
@@ -4356,6 +4643,7 @@ namespace VULKAN_HPP_NAMESPACE
ArrayProxy<const uint32_t> const & dynamicOffsets,
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
d.vkCmdBindDescriptorSets( m_commandBuffer,
static_cast<VkPipelineBindPoint>( pipelineBindPoint ),
static_cast<VkPipelineLayout>( layout ),
@@ -4373,6 +4661,7 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_NAMESPACE::IndexType indexType,
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
d.vkCmdBindIndexBuffer( m_commandBuffer,
static_cast<VkBuffer>( buffer ),
static_cast<VkDeviceSize>( offset ),
@@ -4386,6 +4675,7 @@ namespace VULKAN_HPP_NAMESPACE
const VULKAN_HPP_NAMESPACE::DeviceSize * pOffsets,
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
d.vkCmdBindVertexBuffers( m_commandBuffer,
firstBinding,
bindingCount,
@@ -4401,6 +4691,7 @@ namespace VULKAN_HPP_NAMESPACE
ArrayProxy<const VULKAN_HPP_NAMESPACE::DeviceSize> const & offsets,
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT_WHEN_NO_EXCEPTIONS
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
# ifdef VULKAN_HPP_NO_EXCEPTIONS
VULKAN_HPP_ASSERT( buffers.size() == offsets.size() );
# else
@@ -4426,6 +4717,7 @@ namespace VULKAN_HPP_NAMESPACE
uint32_t firstInstance,
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
d.vkCmdDraw( m_commandBuffer, vertexCount, instanceCount, firstVertex, firstInstance );
}
@@ -4437,6 +4729,7 @@ namespace VULKAN_HPP_NAMESPACE
uint32_t firstInstance,
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
d.vkCmdDrawIndexed( m_commandBuffer, indexCount, instanceCount, firstIndex, vertexOffset, firstInstance );
}
@@ -4447,6 +4740,7 @@ namespace VULKAN_HPP_NAMESPACE
uint32_t stride,
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
d.vkCmdDrawIndirect(
m_commandBuffer, static_cast<VkBuffer>( buffer ), static_cast<VkDeviceSize>( offset ), drawCount, stride );
}
@@ -4458,6 +4752,7 @@ namespace VULKAN_HPP_NAMESPACE
uint32_t stride,
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
d.vkCmdDrawIndexedIndirect(
m_commandBuffer, static_cast<VkBuffer>( buffer ), static_cast<VkDeviceSize>( offset ), drawCount, stride );
}
@@ -4468,6 +4763,7 @@ namespace VULKAN_HPP_NAMESPACE
uint32_t groupCountZ,
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
d.vkCmdDispatch( m_commandBuffer, groupCountX, groupCountY, groupCountZ );
}
@@ -4476,6 +4772,7 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_NAMESPACE::DeviceSize offset,
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
d.vkCmdDispatchIndirect( m_commandBuffer, static_cast<VkBuffer>( buffer ), static_cast<VkDeviceSize>( offset ) );
}
@@ -4486,6 +4783,7 @@ namespace VULKAN_HPP_NAMESPACE
const VULKAN_HPP_NAMESPACE::BufferCopy * pRegions,
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
d.vkCmdCopyBuffer( m_commandBuffer,
static_cast<VkBuffer>( srcBuffer ),
static_cast<VkBuffer>( dstBuffer ),
@@ -4500,6 +4798,7 @@ namespace VULKAN_HPP_NAMESPACE
ArrayProxy<const VULKAN_HPP_NAMESPACE::BufferCopy> const & regions,
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
d.vkCmdCopyBuffer( m_commandBuffer,
static_cast<VkBuffer>( srcBuffer ),
static_cast<VkBuffer>( dstBuffer ),
@@ -4517,6 +4816,7 @@ namespace VULKAN_HPP_NAMESPACE
const VULKAN_HPP_NAMESPACE::ImageCopy * pRegions,
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
d.vkCmdCopyImage( m_commandBuffer,
static_cast<VkImage>( srcImage ),
static_cast<VkImageLayout>( srcImageLayout ),
@@ -4535,6 +4835,7 @@ namespace VULKAN_HPP_NAMESPACE
ArrayProxy<const VULKAN_HPP_NAMESPACE::ImageCopy> const & regions,
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
d.vkCmdCopyImage( m_commandBuffer,
static_cast<VkImage>( srcImage ),
static_cast<VkImageLayout>( srcImageLayout ),
@@ -4555,6 +4856,7 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_NAMESPACE::Filter filter,
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
d.vkCmdBlitImage( m_commandBuffer,
static_cast<VkImage>( srcImage ),
static_cast<VkImageLayout>( srcImageLayout ),
@@ -4575,6 +4877,7 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_NAMESPACE::Filter filter,
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
d.vkCmdBlitImage( m_commandBuffer,
static_cast<VkImage>( srcImage ),
static_cast<VkImageLayout>( srcImageLayout ),
@@ -4594,6 +4897,7 @@ namespace VULKAN_HPP_NAMESPACE
const VULKAN_HPP_NAMESPACE::BufferImageCopy * pRegions,
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
d.vkCmdCopyBufferToImage( m_commandBuffer,
static_cast<VkBuffer>( srcBuffer ),
static_cast<VkImage>( dstImage ),
@@ -4611,6 +4915,7 @@ namespace VULKAN_HPP_NAMESPACE
ArrayProxy<const VULKAN_HPP_NAMESPACE::BufferImageCopy> const & regions,
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
d.vkCmdCopyBufferToImage( m_commandBuffer,
static_cast<VkBuffer>( srcBuffer ),
static_cast<VkImage>( dstImage ),
@@ -4628,6 +4933,7 @@ namespace VULKAN_HPP_NAMESPACE
const VULKAN_HPP_NAMESPACE::BufferImageCopy * pRegions,
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
d.vkCmdCopyImageToBuffer( m_commandBuffer,
static_cast<VkImage>( srcImage ),
static_cast<VkImageLayout>( srcImageLayout ),
@@ -4645,6 +4951,7 @@ namespace VULKAN_HPP_NAMESPACE
ArrayProxy<const VULKAN_HPP_NAMESPACE::BufferImageCopy> const & regions,
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
d.vkCmdCopyImageToBuffer( m_commandBuffer,
static_cast<VkImage>( srcImage ),
static_cast<VkImageLayout>( srcImageLayout ),
@@ -4661,6 +4968,7 @@ namespace VULKAN_HPP_NAMESPACE
const void * pData,
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
d.vkCmdUpdateBuffer( m_commandBuffer,
static_cast<VkBuffer>( dstBuffer ),
static_cast<VkDeviceSize>( dstOffset ),
@@ -4675,6 +4983,7 @@ namespace VULKAN_HPP_NAMESPACE
ArrayProxy<const T> const & data,
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
d.vkCmdUpdateBuffer( m_commandBuffer,
static_cast<VkBuffer>( dstBuffer ),
static_cast<VkDeviceSize>( dstOffset ),
@@ -4690,6 +4999,7 @@ namespace VULKAN_HPP_NAMESPACE
uint32_t data,
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
d.vkCmdFillBuffer( m_commandBuffer,
static_cast<VkBuffer>( dstBuffer ),
static_cast<VkDeviceSize>( dstOffset ),
@@ -4705,6 +5015,7 @@ namespace VULKAN_HPP_NAMESPACE
const VULKAN_HPP_NAMESPACE::ImageSubresourceRange * pRanges,
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
d.vkCmdClearColorImage( m_commandBuffer,
static_cast<VkImage>( image ),
static_cast<VkImageLayout>( imageLayout ),
@@ -4722,6 +5033,7 @@ namespace VULKAN_HPP_NAMESPACE
ArrayProxy<const VULKAN_HPP_NAMESPACE::ImageSubresourceRange> const & ranges,
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
d.vkCmdClearColorImage( m_commandBuffer,
static_cast<VkImage>( image ),
static_cast<VkImageLayout>( imageLayout ),
@@ -4740,6 +5052,7 @@ namespace VULKAN_HPP_NAMESPACE
const VULKAN_HPP_NAMESPACE::ImageSubresourceRange * pRanges,
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
d.vkCmdClearDepthStencilImage( m_commandBuffer,
static_cast<VkImage>( image ),
static_cast<VkImageLayout>( imageLayout ),
@@ -4757,6 +5070,7 @@ namespace VULKAN_HPP_NAMESPACE
ArrayProxy<const VULKAN_HPP_NAMESPACE::ImageSubresourceRange> const & ranges,
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
d.vkCmdClearDepthStencilImage( m_commandBuffer,
static_cast<VkImage>( image ),
static_cast<VkImageLayout>( imageLayout ),
@@ -4773,6 +5087,7 @@ namespace VULKAN_HPP_NAMESPACE
const VULKAN_HPP_NAMESPACE::ClearRect * pRects,
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
d.vkCmdClearAttachments( m_commandBuffer,
attachmentCount,
reinterpret_cast<const VkClearAttachment *>( pAttachments ),
@@ -4787,6 +5102,7 @@ namespace VULKAN_HPP_NAMESPACE
ArrayProxy<const VULKAN_HPP_NAMESPACE::ClearRect> const & rects,
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
d.vkCmdClearAttachments( m_commandBuffer,
attachments.size(),
reinterpret_cast<const VkClearAttachment *>( attachments.data() ),
@@ -4804,6 +5120,7 @@ namespace VULKAN_HPP_NAMESPACE
const VULKAN_HPP_NAMESPACE::ImageResolve * pRegions,
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
d.vkCmdResolveImage( m_commandBuffer,
static_cast<VkImage>( srcImage ),
static_cast<VkImageLayout>( srcImageLayout ),
@@ -4823,6 +5140,7 @@ namespace VULKAN_HPP_NAMESPACE
ArrayProxy<const VULKAN_HPP_NAMESPACE::ImageResolve> const & regions,
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
d.vkCmdResolveImage( m_commandBuffer,
static_cast<VkImage>( srcImage ),
static_cast<VkImageLayout>( srcImageLayout ),
@@ -4838,6 +5156,7 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_NAMESPACE::PipelineStageFlags stageMask,
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
d.vkCmdSetEvent( m_commandBuffer, static_cast<VkEvent>( event ), static_cast<VkPipelineStageFlags>( stageMask ) );
}
@@ -4846,6 +5165,7 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_NAMESPACE::PipelineStageFlags stageMask,
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
d.vkCmdResetEvent( m_commandBuffer, static_cast<VkEvent>( event ), static_cast<VkPipelineStageFlags>( stageMask ) );
}
@@ -4863,6 +5183,7 @@ namespace VULKAN_HPP_NAMESPACE
const VULKAN_HPP_NAMESPACE::ImageMemoryBarrier * pImageMemoryBarriers,
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
d.vkCmdWaitEvents( m_commandBuffer,
eventCount,
reinterpret_cast<const VkEvent *>( pEvents ),
@@ -4887,6 +5208,7 @@ namespace VULKAN_HPP_NAMESPACE
ArrayProxy<const VULKAN_HPP_NAMESPACE::ImageMemoryBarrier> const & imageMemoryBarriers,
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
d.vkCmdWaitEvents( m_commandBuffer,
events.size(),
reinterpret_cast<const VkEvent *>( events.data() ),
@@ -4914,6 +5236,7 @@ namespace VULKAN_HPP_NAMESPACE
const VULKAN_HPP_NAMESPACE::ImageMemoryBarrier * pImageMemoryBarriers,
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
d.vkCmdPipelineBarrier( m_commandBuffer,
static_cast<VkPipelineStageFlags>( srcStageMask ),
static_cast<VkPipelineStageFlags>( dstStageMask ),
@@ -4937,6 +5260,7 @@ namespace VULKAN_HPP_NAMESPACE
ArrayProxy<const VULKAN_HPP_NAMESPACE::ImageMemoryBarrier> const & imageMemoryBarriers,
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
d.vkCmdPipelineBarrier( m_commandBuffer,
static_cast<VkPipelineStageFlags>( srcStageMask ),
static_cast<VkPipelineStageFlags>( dstStageMask ),
@@ -4956,6 +5280,7 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_NAMESPACE::QueryControlFlags flags,
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
d.vkCmdBeginQuery(
m_commandBuffer, static_cast<VkQueryPool>( queryPool ), query, static_cast<VkQueryControlFlags>( flags ) );
}
@@ -4965,6 +5290,7 @@ namespace VULKAN_HPP_NAMESPACE
uint32_t query,
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
d.vkCmdEndQuery( m_commandBuffer, static_cast<VkQueryPool>( queryPool ), query );
}
@@ -4974,6 +5300,7 @@ namespace VULKAN_HPP_NAMESPACE
uint32_t queryCount,
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
d.vkCmdResetQueryPool( m_commandBuffer, static_cast<VkQueryPool>( queryPool ), firstQuery, queryCount );
}
@@ -4983,6 +5310,7 @@ namespace VULKAN_HPP_NAMESPACE
uint32_t query,
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
d.vkCmdWriteTimestamp( m_commandBuffer,
static_cast<VkPipelineStageFlagBits>( pipelineStage ),
static_cast<VkQueryPool>( queryPool ),
@@ -4999,6 +5327,7 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_NAMESPACE::QueryResultFlags flags,
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
d.vkCmdCopyQueryPoolResults( m_commandBuffer,
static_cast<VkQueryPool>( queryPool ),
firstQuery,
@@ -5017,6 +5346,7 @@ namespace VULKAN_HPP_NAMESPACE
const void * pValues,
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
d.vkCmdPushConstants( m_commandBuffer,
static_cast<VkPipelineLayout>( layout ),
static_cast<VkShaderStageFlags>( stageFlags ),
@@ -5033,6 +5363,7 @@ namespace VULKAN_HPP_NAMESPACE
ArrayProxy<const T> const & values,
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
d.vkCmdPushConstants( m_commandBuffer,
static_cast<VkPipelineLayout>( layout ),
static_cast<VkShaderStageFlags>( stageFlags ),
@@ -5048,6 +5379,7 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_NAMESPACE::SubpassContents contents,
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
d.vkCmdBeginRenderPass( m_commandBuffer,
reinterpret_cast<const VkRenderPassBeginInfo *>( pRenderPassBegin ),
static_cast<VkSubpassContents>( contents ) );
@@ -5059,6 +5391,7 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_NAMESPACE::SubpassContents contents,
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
d.vkCmdBeginRenderPass( m_commandBuffer,
reinterpret_cast<const VkRenderPassBeginInfo *>( &renderPassBegin ),
static_cast<VkSubpassContents>( contents ) );
@@ -5069,12 +5402,14 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_INLINE void CommandBuffer::nextSubpass( VULKAN_HPP_NAMESPACE::SubpassContents contents,
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
d.vkCmdNextSubpass( m_commandBuffer, static_cast<VkSubpassContents>( contents ) );
}
template <typename Dispatch>
VULKAN_HPP_INLINE void CommandBuffer::endRenderPass( Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
d.vkCmdEndRenderPass( m_commandBuffer );
}
@@ -5083,6 +5418,7 @@ namespace VULKAN_HPP_NAMESPACE
const VULKAN_HPP_NAMESPACE::CommandBuffer * pCommandBuffers,
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
d.vkCmdExecuteCommands(
m_commandBuffer, commandBufferCount, reinterpret_cast<const VkCommandBuffer *>( pCommandBuffers ) );
}
@@ -5093,6 +5429,7 @@ namespace VULKAN_HPP_NAMESPACE
CommandBuffer::executeCommands( ArrayProxy<const VULKAN_HPP_NAMESPACE::CommandBuffer> const & commandBuffers,
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
d.vkCmdExecuteCommands(
m_commandBuffer, commandBuffers.size(), reinterpret_cast<const VkCommandBuffer *>( commandBuffers.data() ) );
}
@@ -5104,6 +5441,7 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result enumerateInstanceVersion( uint32_t * pApiVersion,
Dispatch const & d ) VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
return static_cast<Result>( d.vkEnumerateInstanceVersion( pApiVersion ) );
}
@@ -5111,6 +5449,7 @@ namespace VULKAN_HPP_NAMESPACE
template <typename Dispatch>
VULKAN_HPP_INLINE typename ResultValueType<uint32_t>::type enumerateInstanceVersion( Dispatch const & d )
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
uint32_t apiVersion;
Result result = static_cast<Result>( d.vkEnumerateInstanceVersion( &apiVersion ) );
return createResultValue( result, apiVersion, VULKAN_HPP_NAMESPACE_STRING "::enumerateInstanceVersion" );
@@ -5123,6 +5462,7 @@ namespace VULKAN_HPP_NAMESPACE
const VULKAN_HPP_NAMESPACE::BindBufferMemoryInfo * pBindInfos,
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
return static_cast<Result>( d.vkBindBufferMemory2(
m_device, bindInfoCount, reinterpret_cast<const VkBindBufferMemoryInfo *>( pBindInfos ) ) );
}
@@ -5133,6 +5473,7 @@ namespace VULKAN_HPP_NAMESPACE
Device::bindBufferMemory2( ArrayProxy<const VULKAN_HPP_NAMESPACE::BindBufferMemoryInfo> const & bindInfos,
Dispatch const & d ) const
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
Result result = static_cast<Result>( d.vkBindBufferMemory2(
m_device, bindInfos.size(), reinterpret_cast<const VkBindBufferMemoryInfo *>( bindInfos.data() ) ) );
return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING "::Device::bindBufferMemory2" );
@@ -5145,6 +5486,7 @@ namespace VULKAN_HPP_NAMESPACE
const VULKAN_HPP_NAMESPACE::BindImageMemoryInfo * pBindInfos,
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
return static_cast<Result>(
d.vkBindImageMemory2( m_device, bindInfoCount, reinterpret_cast<const VkBindImageMemoryInfo *>( pBindInfos ) ) );
}
@@ -5155,6 +5497,7 @@ namespace VULKAN_HPP_NAMESPACE
Device::bindImageMemory2( ArrayProxy<const VULKAN_HPP_NAMESPACE::BindImageMemoryInfo> const & bindInfos,
Dispatch const & d ) const
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
Result result = static_cast<Result>( d.vkBindImageMemory2(
m_device, bindInfos.size(), reinterpret_cast<const VkBindImageMemoryInfo *>( bindInfos.data() ) ) );
return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING "::Device::bindImageMemory2" );
@@ -5169,6 +5512,7 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_NAMESPACE::PeerMemoryFeatureFlags * pPeerMemoryFeatures,
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
d.vkGetDeviceGroupPeerMemoryFeatures( m_device,
heapIndex,
localDeviceIndex,
@@ -5184,6 +5528,7 @@ namespace VULKAN_HPP_NAMESPACE
uint32_t remoteDeviceIndex,
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
VULKAN_HPP_NAMESPACE::PeerMemoryFeatureFlags peerMemoryFeatures;
d.vkGetDeviceGroupPeerMemoryFeatures( m_device,
heapIndex,
@@ -5198,6 +5543,7 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_INLINE void CommandBuffer::setDeviceMask( uint32_t deviceMask,
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
d.vkCmdSetDeviceMask( m_commandBuffer, deviceMask );
}
@@ -5210,6 +5556,7 @@ namespace VULKAN_HPP_NAMESPACE
uint32_t groupCountZ,
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
d.vkCmdDispatchBase( m_commandBuffer, baseGroupX, baseGroupY, baseGroupZ, groupCountX, groupCountY, groupCountZ );
}
@@ -5219,6 +5566,7 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_NAMESPACE::PhysicalDeviceGroupProperties * pPhysicalDeviceGroupProperties,
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
return static_cast<Result>( d.vkEnumeratePhysicalDeviceGroups(
m_instance,
pPhysicalDeviceGroupCount,
@@ -5231,6 +5579,7 @@ namespace VULKAN_HPP_NAMESPACE
typename ResultValueType<std::vector<PhysicalDeviceGroupProperties, PhysicalDeviceGroupPropertiesAllocator>>::type
Instance::enumeratePhysicalDeviceGroups( Dispatch const & d ) const
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
std::vector<PhysicalDeviceGroupProperties, PhysicalDeviceGroupPropertiesAllocator> physicalDeviceGroupProperties;
uint32_t physicalDeviceGroupCount;
Result result;
@@ -5266,6 +5615,7 @@ namespace VULKAN_HPP_NAMESPACE
Instance::enumeratePhysicalDeviceGroups(
PhysicalDeviceGroupPropertiesAllocator & physicalDeviceGroupPropertiesAllocator, Dispatch const & d ) const
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
std::vector<PhysicalDeviceGroupProperties, PhysicalDeviceGroupPropertiesAllocator> physicalDeviceGroupProperties(
physicalDeviceGroupPropertiesAllocator );
uint32_t physicalDeviceGroupCount;
@@ -5299,6 +5649,7 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_NAMESPACE::MemoryRequirements2 * pMemoryRequirements,
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
d.vkGetImageMemoryRequirements2( m_device,
reinterpret_cast<const VkImageMemoryRequirementsInfo2 *>( pInfo ),
reinterpret_cast<VkMemoryRequirements2 *>( pMemoryRequirements ) );
@@ -5310,6 +5661,7 @@ namespace VULKAN_HPP_NAMESPACE
Device::getImageMemoryRequirements2( const ImageMemoryRequirementsInfo2 & info,
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
VULKAN_HPP_NAMESPACE::MemoryRequirements2 memoryRequirements;
d.vkGetImageMemoryRequirements2( m_device,
reinterpret_cast<const VkImageMemoryRequirementsInfo2 *>( &info ),
@@ -5322,6 +5674,7 @@ namespace VULKAN_HPP_NAMESPACE
Device::getImageMemoryRequirements2( const ImageMemoryRequirementsInfo2 & info,
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
StructureChain<X, Y, Z...> structureChain;
VULKAN_HPP_NAMESPACE::MemoryRequirements2 & memoryRequirements =
structureChain.template get<VULKAN_HPP_NAMESPACE::MemoryRequirements2>();
@@ -5338,6 +5691,7 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_NAMESPACE::MemoryRequirements2 * pMemoryRequirements,
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
d.vkGetBufferMemoryRequirements2( m_device,
reinterpret_cast<const VkBufferMemoryRequirementsInfo2 *>( pInfo ),
reinterpret_cast<VkMemoryRequirements2 *>( pMemoryRequirements ) );
@@ -5349,6 +5703,7 @@ namespace VULKAN_HPP_NAMESPACE
Device::getBufferMemoryRequirements2( const BufferMemoryRequirementsInfo2 & info,
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
VULKAN_HPP_NAMESPACE::MemoryRequirements2 memoryRequirements;
d.vkGetBufferMemoryRequirements2( m_device,
reinterpret_cast<const VkBufferMemoryRequirementsInfo2 *>( &info ),
@@ -5361,6 +5716,7 @@ namespace VULKAN_HPP_NAMESPACE
Device::getBufferMemoryRequirements2( const BufferMemoryRequirementsInfo2 & info,
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
StructureChain<X, Y, Z...> structureChain;
VULKAN_HPP_NAMESPACE::MemoryRequirements2 & memoryRequirements =
structureChain.template get<VULKAN_HPP_NAMESPACE::MemoryRequirements2>();
@@ -5378,6 +5734,7 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_NAMESPACE::SparseImageMemoryRequirements2 * pSparseMemoryRequirements,
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
d.vkGetImageSparseMemoryRequirements2(
m_device,
reinterpret_cast<const VkImageSparseMemoryRequirementsInfo2 *>( pInfo ),
@@ -5392,6 +5749,7 @@ namespace VULKAN_HPP_NAMESPACE
Device::getImageSparseMemoryRequirements2( const ImageSparseMemoryRequirementsInfo2 & info,
Dispatch const & d ) const
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
std::vector<SparseImageMemoryRequirements2, SparseImageMemoryRequirements2Allocator> sparseMemoryRequirements;
uint32_t sparseMemoryRequirementCount;
d.vkGetImageSparseMemoryRequirements2( m_device,
@@ -5420,6 +5778,7 @@ namespace VULKAN_HPP_NAMESPACE
SparseImageMemoryRequirements2Allocator & sparseImageMemoryRequirements2Allocator,
Dispatch const & d ) const
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
std::vector<SparseImageMemoryRequirements2, SparseImageMemoryRequirements2Allocator> sparseMemoryRequirements(
sparseImageMemoryRequirements2Allocator );
uint32_t sparseMemoryRequirementCount;
@@ -5442,6 +5801,7 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_INLINE void PhysicalDevice::getFeatures2( VULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures2 * pFeatures,
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
d.vkGetPhysicalDeviceFeatures2( m_physicalDevice, reinterpret_cast<VkPhysicalDeviceFeatures2 *>( pFeatures ) );
}
@@ -5450,6 +5810,7 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures2
PhysicalDevice::getFeatures2( Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
VULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures2 features;
d.vkGetPhysicalDeviceFeatures2( m_physicalDevice, reinterpret_cast<VkPhysicalDeviceFeatures2 *>( &features ) );
return features;
@@ -5459,6 +5820,7 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE StructureChain<X, Y, Z...>
PhysicalDevice::getFeatures2( Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
StructureChain<X, Y, Z...> structureChain;
VULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures2 & features =
structureChain.template get<VULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures2>();
@@ -5471,6 +5833,7 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_INLINE void PhysicalDevice::getProperties2( VULKAN_HPP_NAMESPACE::PhysicalDeviceProperties2 * pProperties,
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
d.vkGetPhysicalDeviceProperties2( m_physicalDevice,
reinterpret_cast<VkPhysicalDeviceProperties2 *>( pProperties ) );
}
@@ -5480,6 +5843,7 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::PhysicalDeviceProperties2
PhysicalDevice::getProperties2( Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
VULKAN_HPP_NAMESPACE::PhysicalDeviceProperties2 properties;
d.vkGetPhysicalDeviceProperties2( m_physicalDevice,
reinterpret_cast<VkPhysicalDeviceProperties2 *>( &properties ) );
@@ -5490,6 +5854,7 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE StructureChain<X, Y, Z...>
PhysicalDevice::getProperties2( Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
StructureChain<X, Y, Z...> structureChain;
VULKAN_HPP_NAMESPACE::PhysicalDeviceProperties2 & properties =
structureChain.template get<VULKAN_HPP_NAMESPACE::PhysicalDeviceProperties2>();
@@ -5505,6 +5870,7 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_NAMESPACE::FormatProperties2 * pFormatProperties,
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
d.vkGetPhysicalDeviceFormatProperties2(
m_physicalDevice, static_cast<VkFormat>( format ), reinterpret_cast<VkFormatProperties2 *>( pFormatProperties ) );
}
@@ -5515,6 +5881,7 @@ namespace VULKAN_HPP_NAMESPACE
PhysicalDevice::getFormatProperties2( VULKAN_HPP_NAMESPACE::Format format,
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
VULKAN_HPP_NAMESPACE::FormatProperties2 formatProperties;
d.vkGetPhysicalDeviceFormatProperties2(
m_physicalDevice, static_cast<VkFormat>( format ), reinterpret_cast<VkFormatProperties2 *>( &formatProperties ) );
@@ -5526,6 +5893,7 @@ namespace VULKAN_HPP_NAMESPACE
PhysicalDevice::getFormatProperties2( VULKAN_HPP_NAMESPACE::Format format,
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
StructureChain<X, Y, Z...> structureChain;
VULKAN_HPP_NAMESPACE::FormatProperties2 & formatProperties =
structureChain.template get<VULKAN_HPP_NAMESPACE::FormatProperties2>();
@@ -5541,6 +5909,7 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_NAMESPACE::ImageFormatProperties2 * pImageFormatProperties,
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
return static_cast<Result>( d.vkGetPhysicalDeviceImageFormatProperties2(
m_physicalDevice,
reinterpret_cast<const VkPhysicalDeviceImageFormatInfo2 *>( pImageFormatInfo ),
@@ -5554,6 +5923,7 @@ namespace VULKAN_HPP_NAMESPACE
PhysicalDevice::getImageFormatProperties2( const PhysicalDeviceImageFormatInfo2 & imageFormatInfo,
Dispatch const & d ) const
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
VULKAN_HPP_NAMESPACE::ImageFormatProperties2 imageFormatProperties;
Result result = static_cast<Result>( d.vkGetPhysicalDeviceImageFormatProperties2(
m_physicalDevice,
@@ -5568,6 +5938,7 @@ namespace VULKAN_HPP_NAMESPACE
PhysicalDevice::getImageFormatProperties2( const PhysicalDeviceImageFormatInfo2 & imageFormatInfo,
Dispatch const & d ) const
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
StructureChain<X, Y, Z...> structureChain;
VULKAN_HPP_NAMESPACE::ImageFormatProperties2 & imageFormatProperties =
structureChain.template get<VULKAN_HPP_NAMESPACE::ImageFormatProperties2>();
@@ -5586,6 +5957,7 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_NAMESPACE::QueueFamilyProperties2 * pQueueFamilyProperties,
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
d.vkGetPhysicalDeviceQueueFamilyProperties2(
m_physicalDevice,
pQueueFamilyPropertyCount,
@@ -5597,6 +5969,7 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE std::vector<QueueFamilyProperties2, QueueFamilyProperties2Allocator>
PhysicalDevice::getQueueFamilyProperties2( Dispatch const & d ) const
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
std::vector<QueueFamilyProperties2, QueueFamilyProperties2Allocator> queueFamilyProperties;
uint32_t queueFamilyPropertyCount;
d.vkGetPhysicalDeviceQueueFamilyProperties2( m_physicalDevice, &queueFamilyPropertyCount, nullptr );
@@ -5617,6 +5990,7 @@ namespace VULKAN_HPP_NAMESPACE
PhysicalDevice::getQueueFamilyProperties2( QueueFamilyProperties2Allocator & queueFamilyProperties2Allocator,
Dispatch const & d ) const
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
std::vector<QueueFamilyProperties2, QueueFamilyProperties2Allocator> queueFamilyProperties(
queueFamilyProperties2Allocator );
uint32_t queueFamilyPropertyCount;
@@ -5634,6 +6008,7 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE std::vector<StructureChain, StructureChainAllocator>
PhysicalDevice::getQueueFamilyProperties2( Dispatch const & d ) const
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
uint32_t queueFamilyPropertyCount;
d.vkGetPhysicalDeviceQueueFamilyProperties2( m_physicalDevice, &queueFamilyPropertyCount, nullptr );
std::vector<StructureChain, StructureChainAllocator> returnVector( queueFamilyPropertyCount );
@@ -5664,6 +6039,7 @@ namespace VULKAN_HPP_NAMESPACE
PhysicalDevice::getQueueFamilyProperties2( StructureChainAllocator & structureChainAllocator,
Dispatch const & d ) const
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
uint32_t queueFamilyPropertyCount;
d.vkGetPhysicalDeviceQueueFamilyProperties2( m_physicalDevice, &queueFamilyPropertyCount, nullptr );
std::vector<StructureChain, StructureChainAllocator> returnVector( queueFamilyPropertyCount,
@@ -5692,6 +6068,7 @@ namespace VULKAN_HPP_NAMESPACE
PhysicalDevice::getMemoryProperties2( VULKAN_HPP_NAMESPACE::PhysicalDeviceMemoryProperties2 * pMemoryProperties,
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
d.vkGetPhysicalDeviceMemoryProperties2(
m_physicalDevice, reinterpret_cast<VkPhysicalDeviceMemoryProperties2 *>( pMemoryProperties ) );
}
@@ -5701,6 +6078,7 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::PhysicalDeviceMemoryProperties2
PhysicalDevice::getMemoryProperties2( Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
VULKAN_HPP_NAMESPACE::PhysicalDeviceMemoryProperties2 memoryProperties;
d.vkGetPhysicalDeviceMemoryProperties2(
m_physicalDevice, reinterpret_cast<VkPhysicalDeviceMemoryProperties2 *>( &memoryProperties ) );
@@ -5711,6 +6089,7 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE StructureChain<X, Y, Z...>
PhysicalDevice::getMemoryProperties2( Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
StructureChain<X, Y, Z...> structureChain;
VULKAN_HPP_NAMESPACE::PhysicalDeviceMemoryProperties2 & memoryProperties =
structureChain.template get<VULKAN_HPP_NAMESPACE::PhysicalDeviceMemoryProperties2>();
@@ -5727,6 +6106,7 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_NAMESPACE::SparseImageFormatProperties2 * pProperties,
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
d.vkGetPhysicalDeviceSparseImageFormatProperties2(
m_physicalDevice,
reinterpret_cast<const VkPhysicalDeviceSparseImageFormatInfo2 *>( pFormatInfo ),
@@ -5741,6 +6121,7 @@ namespace VULKAN_HPP_NAMESPACE
PhysicalDevice::getSparseImageFormatProperties2( const PhysicalDeviceSparseImageFormatInfo2 & formatInfo,
Dispatch const & d ) const
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
std::vector<SparseImageFormatProperties2, SparseImageFormatProperties2Allocator> properties;
uint32_t propertyCount;
d.vkGetPhysicalDeviceSparseImageFormatProperties2(
@@ -5770,6 +6151,7 @@ namespace VULKAN_HPP_NAMESPACE
SparseImageFormatProperties2Allocator & sparseImageFormatProperties2Allocator,
Dispatch const & d ) const
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
std::vector<SparseImageFormatProperties2, SparseImageFormatProperties2Allocator> properties(
sparseImageFormatProperties2Allocator );
uint32_t propertyCount;
@@ -5794,6 +6176,7 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_NAMESPACE::CommandPoolTrimFlags flags,
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
d.vkTrimCommandPool(
m_device, static_cast<VkCommandPool>( commandPool ), static_cast<VkCommandPoolTrimFlags>( flags ) );
}
@@ -5803,6 +6186,7 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_NAMESPACE::Queue * pQueue,
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
d.vkGetDeviceQueue2(
m_device, reinterpret_cast<const VkDeviceQueueInfo2 *>( pQueueInfo ), reinterpret_cast<VkQueue *>( pQueue ) );
}
@@ -5812,6 +6196,7 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::Queue
Device::getQueue2( const DeviceQueueInfo2 & queueInfo, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
VULKAN_HPP_NAMESPACE::Queue queue;
d.vkGetDeviceQueue2(
m_device, reinterpret_cast<const VkDeviceQueueInfo2 *>( &queueInfo ), reinterpret_cast<VkQueue *>( &queue ) );
@@ -5826,6 +6211,7 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_NAMESPACE::SamplerYcbcrConversion * pYcbcrConversion,
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
return static_cast<Result>(
d.vkCreateSamplerYcbcrConversion( m_device,
reinterpret_cast<const VkSamplerYcbcrConversionCreateInfo *>( pCreateInfo ),
@@ -5841,6 +6227,7 @@ namespace VULKAN_HPP_NAMESPACE
Optional<const AllocationCallbacks> allocator,
Dispatch const & d ) const
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
VULKAN_HPP_NAMESPACE::SamplerYcbcrConversion ycbcrConversion;
Result result = static_cast<Result>(
d.vkCreateSamplerYcbcrConversion( m_device,
@@ -5860,6 +6247,7 @@ namespace VULKAN_HPP_NAMESPACE
Optional<const AllocationCallbacks> allocator,
Dispatch const & d ) const
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
VULKAN_HPP_NAMESPACE::SamplerYcbcrConversion ycbcrConversion;
Result result = static_cast<Result>(
d.vkCreateSamplerYcbcrConversion( m_device,
@@ -5880,6 +6268,7 @@ namespace VULKAN_HPP_NAMESPACE
const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
d.vkDestroySamplerYcbcrConversion( m_device,
static_cast<VkSamplerYcbcrConversion>( ycbcrConversion ),
reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ) );
@@ -5892,6 +6281,7 @@ namespace VULKAN_HPP_NAMESPACE
Optional<const AllocationCallbacks> allocator,
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
d.vkDestroySamplerYcbcrConversion(
m_device,
static_cast<VkSamplerYcbcrConversion>( ycbcrConversion ),
@@ -5905,6 +6295,7 @@ namespace VULKAN_HPP_NAMESPACE
const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
d.vkDestroySamplerYcbcrConversion( m_device,
static_cast<VkSamplerYcbcrConversion>( ycbcrConversion ),
reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ) );
@@ -5916,6 +6307,7 @@ namespace VULKAN_HPP_NAMESPACE
Optional<const AllocationCallbacks> allocator,
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
d.vkDestroySamplerYcbcrConversion(
m_device,
static_cast<VkSamplerYcbcrConversion>( ycbcrConversion ),
@@ -5931,6 +6323,7 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplate * pDescriptorUpdateTemplate,
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
return static_cast<Result>( d.vkCreateDescriptorUpdateTemplate(
m_device,
reinterpret_cast<const VkDescriptorUpdateTemplateCreateInfo *>( pCreateInfo ),
@@ -5946,6 +6339,7 @@ namespace VULKAN_HPP_NAMESPACE
Optional<const AllocationCallbacks> allocator,
Dispatch const & d ) const
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplate descriptorUpdateTemplate;
Result result = static_cast<Result>( d.vkCreateDescriptorUpdateTemplate(
m_device,
@@ -5965,6 +6359,7 @@ namespace VULKAN_HPP_NAMESPACE
Optional<const AllocationCallbacks> allocator,
Dispatch const & d ) const
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplate descriptorUpdateTemplate;
Result result = static_cast<Result>( d.vkCreateDescriptorUpdateTemplate(
m_device,
@@ -5988,6 +6383,7 @@ namespace VULKAN_HPP_NAMESPACE
const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
d.vkDestroyDescriptorUpdateTemplate( m_device,
static_cast<VkDescriptorUpdateTemplate>( descriptorUpdateTemplate ),
reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ) );
@@ -6000,6 +6396,7 @@ namespace VULKAN_HPP_NAMESPACE
Optional<const AllocationCallbacks> allocator,
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
d.vkDestroyDescriptorUpdateTemplate(
m_device,
static_cast<VkDescriptorUpdateTemplate>( descriptorUpdateTemplate ),
@@ -6013,6 +6410,7 @@ namespace VULKAN_HPP_NAMESPACE
const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
d.vkDestroyDescriptorUpdateTemplate( m_device,
static_cast<VkDescriptorUpdateTemplate>( descriptorUpdateTemplate ),
reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ) );
@@ -6024,6 +6422,7 @@ namespace VULKAN_HPP_NAMESPACE
Optional<const AllocationCallbacks> allocator,
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
d.vkDestroyDescriptorUpdateTemplate(
m_device,
static_cast<VkDescriptorUpdateTemplate>( descriptorUpdateTemplate ),
@@ -6039,6 +6438,7 @@ namespace VULKAN_HPP_NAMESPACE
const void * pData,
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
d.vkUpdateDescriptorSetWithTemplate( m_device,
static_cast<VkDescriptorSet>( descriptorSet ),
static_cast<VkDescriptorUpdateTemplate>( descriptorUpdateTemplate ),
@@ -6051,6 +6451,7 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_NAMESPACE::ExternalBufferProperties * pExternalBufferProperties,
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
d.vkGetPhysicalDeviceExternalBufferProperties(
m_physicalDevice,
reinterpret_cast<const VkPhysicalDeviceExternalBufferInfo *>( pExternalBufferInfo ),
@@ -6063,6 +6464,7 @@ namespace VULKAN_HPP_NAMESPACE
PhysicalDevice::getExternalBufferProperties( const PhysicalDeviceExternalBufferInfo & externalBufferInfo,
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
VULKAN_HPP_NAMESPACE::ExternalBufferProperties externalBufferProperties;
d.vkGetPhysicalDeviceExternalBufferProperties(
m_physicalDevice,
@@ -6078,6 +6480,7 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_NAMESPACE::ExternalFenceProperties * pExternalFenceProperties,
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
d.vkGetPhysicalDeviceExternalFenceProperties(
m_physicalDevice,
reinterpret_cast<const VkPhysicalDeviceExternalFenceInfo *>( pExternalFenceInfo ),
@@ -6090,6 +6493,7 @@ namespace VULKAN_HPP_NAMESPACE
PhysicalDevice::getExternalFenceProperties( const PhysicalDeviceExternalFenceInfo & externalFenceInfo,
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
VULKAN_HPP_NAMESPACE::ExternalFenceProperties externalFenceProperties;
d.vkGetPhysicalDeviceExternalFenceProperties(
m_physicalDevice,
@@ -6105,6 +6509,7 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_NAMESPACE::ExternalSemaphoreProperties * pExternalSemaphoreProperties,
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
d.vkGetPhysicalDeviceExternalSemaphoreProperties(
m_physicalDevice,
reinterpret_cast<const VkPhysicalDeviceExternalSemaphoreInfo *>( pExternalSemaphoreInfo ),
@@ -6117,6 +6522,7 @@ namespace VULKAN_HPP_NAMESPACE
PhysicalDevice::getExternalSemaphoreProperties( const PhysicalDeviceExternalSemaphoreInfo & externalSemaphoreInfo,
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
VULKAN_HPP_NAMESPACE::ExternalSemaphoreProperties externalSemaphoreProperties;
d.vkGetPhysicalDeviceExternalSemaphoreProperties(
m_physicalDevice,
@@ -6132,6 +6538,7 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_NAMESPACE::DescriptorSetLayoutSupport * pSupport,
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
d.vkGetDescriptorSetLayoutSupport( m_device,
reinterpret_cast<const VkDescriptorSetLayoutCreateInfo *>( pCreateInfo ),
reinterpret_cast<VkDescriptorSetLayoutSupport *>( pSupport ) );
@@ -6143,6 +6550,7 @@ namespace VULKAN_HPP_NAMESPACE
Device::getDescriptorSetLayoutSupport( const DescriptorSetLayoutCreateInfo & createInfo,
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
VULKAN_HPP_NAMESPACE::DescriptorSetLayoutSupport support;
d.vkGetDescriptorSetLayoutSupport( m_device,
reinterpret_cast<const VkDescriptorSetLayoutCreateInfo *>( &createInfo ),
@@ -6155,6 +6563,7 @@ namespace VULKAN_HPP_NAMESPACE
Device::getDescriptorSetLayoutSupport( const DescriptorSetLayoutCreateInfo & createInfo,
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
StructureChain<X, Y, Z...> structureChain;
VULKAN_HPP_NAMESPACE::DescriptorSetLayoutSupport & support =
structureChain.template get<VULKAN_HPP_NAMESPACE::DescriptorSetLayoutSupport>();
@@ -6176,6 +6585,7 @@ namespace VULKAN_HPP_NAMESPACE
uint32_t stride,
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
d.vkCmdDrawIndirectCount( m_commandBuffer,
static_cast<VkBuffer>( buffer ),
static_cast<VkDeviceSize>( offset ),
@@ -6194,6 +6604,7 @@ namespace VULKAN_HPP_NAMESPACE
uint32_t stride,
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
d.vkCmdDrawIndexedIndirectCount( m_commandBuffer,
static_cast<VkBuffer>( buffer ),
static_cast<VkDeviceSize>( offset ),
@@ -6210,6 +6621,7 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_NAMESPACE::RenderPass * pRenderPass,
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
return static_cast<Result>( d.vkCreateRenderPass2( m_device,
reinterpret_cast<const VkRenderPassCreateInfo2 *>( pCreateInfo ),
reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ),
@@ -6224,6 +6636,7 @@ namespace VULKAN_HPP_NAMESPACE
Optional<const AllocationCallbacks> allocator,
Dispatch const & d ) const
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
VULKAN_HPP_NAMESPACE::RenderPass renderPass;
Result result = static_cast<Result>(
d.vkCreateRenderPass2( m_device,
@@ -6242,6 +6655,7 @@ namespace VULKAN_HPP_NAMESPACE
Optional<const AllocationCallbacks> allocator,
Dispatch const & d ) const
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
VULKAN_HPP_NAMESPACE::RenderPass renderPass;
Result result = static_cast<Result>(
d.vkCreateRenderPass2( m_device,
@@ -6262,6 +6676,7 @@ namespace VULKAN_HPP_NAMESPACE
const VULKAN_HPP_NAMESPACE::SubpassBeginInfo * pSubpassBeginInfo,
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
d.vkCmdBeginRenderPass2( m_commandBuffer,
reinterpret_cast<const VkRenderPassBeginInfo *>( pRenderPassBegin ),
reinterpret_cast<const VkSubpassBeginInfo *>( pSubpassBeginInfo ) );
@@ -6273,6 +6688,7 @@ namespace VULKAN_HPP_NAMESPACE
const SubpassBeginInfo & subpassBeginInfo,
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
d.vkCmdBeginRenderPass2( m_commandBuffer,
reinterpret_cast<const VkRenderPassBeginInfo *>( &renderPassBegin ),
reinterpret_cast<const VkSubpassBeginInfo *>( &subpassBeginInfo ) );
@@ -6284,6 +6700,7 @@ namespace VULKAN_HPP_NAMESPACE
const VULKAN_HPP_NAMESPACE::SubpassEndInfo * pSubpassEndInfo,
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
d.vkCmdNextSubpass2( m_commandBuffer,
reinterpret_cast<const VkSubpassBeginInfo *>( pSubpassBeginInfo ),
reinterpret_cast<const VkSubpassEndInfo *>( pSubpassEndInfo ) );
@@ -6295,6 +6712,7 @@ namespace VULKAN_HPP_NAMESPACE
const SubpassEndInfo & subpassEndInfo,
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
d.vkCmdNextSubpass2( m_commandBuffer,
reinterpret_cast<const VkSubpassBeginInfo *>( &subpassBeginInfo ),
reinterpret_cast<const VkSubpassEndInfo *>( &subpassEndInfo ) );
@@ -6305,6 +6723,7 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_INLINE void CommandBuffer::endRenderPass2( const VULKAN_HPP_NAMESPACE::SubpassEndInfo * pSubpassEndInfo,
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
d.vkCmdEndRenderPass2( m_commandBuffer, reinterpret_cast<const VkSubpassEndInfo *>( pSubpassEndInfo ) );
}
@@ -6313,6 +6732,7 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_INLINE void CommandBuffer::endRenderPass2( const SubpassEndInfo & subpassEndInfo,
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
d.vkCmdEndRenderPass2( m_commandBuffer, reinterpret_cast<const VkSubpassEndInfo *>( &subpassEndInfo ) );
}
#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
@@ -6323,6 +6743,7 @@ namespace VULKAN_HPP_NAMESPACE
uint32_t queryCount,
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
d.vkResetQueryPool( m_device, static_cast<VkQueryPool>( queryPool ), firstQuery, queryCount );
}
@@ -6330,6 +6751,7 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::getSemaphoreCounterValue(
VULKAN_HPP_NAMESPACE::Semaphore semaphore, uint64_t * pValue, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
return static_cast<Result>(
d.vkGetSemaphoreCounterValue( m_device, static_cast<VkSemaphore>( semaphore ), pValue ) );
}
@@ -6339,6 +6761,7 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType<uint64_t>::type
Device::getSemaphoreCounterValue( VULKAN_HPP_NAMESPACE::Semaphore semaphore, Dispatch const & d ) const
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
uint64_t value;
Result result =
static_cast<Result>( d.vkGetSemaphoreCounterValue( m_device, static_cast<VkSemaphore>( semaphore ), &value ) );
@@ -6352,6 +6775,7 @@ namespace VULKAN_HPP_NAMESPACE
uint64_t timeout,
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
return static_cast<Result>(
d.vkWaitSemaphores( m_device, reinterpret_cast<const VkSemaphoreWaitInfo *>( pWaitInfo ), timeout ) );
}
@@ -6362,6 +6786,7 @@ namespace VULKAN_HPP_NAMESPACE
uint64_t timeout,
Dispatch const & d ) const
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
Result result = static_cast<Result>(
d.vkWaitSemaphores( m_device, reinterpret_cast<const VkSemaphoreWaitInfo *>( &waitInfo ), timeout ) );
return createResultValue( result,
@@ -6374,6 +6799,7 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::signalSemaphore(
const VULKAN_HPP_NAMESPACE::SemaphoreSignalInfo * pSignalInfo, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
return static_cast<Result>(
d.vkSignalSemaphore( m_device, reinterpret_cast<const VkSemaphoreSignalInfo *>( pSignalInfo ) ) );
}
@@ -6383,6 +6809,7 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType<void>::type
Device::signalSemaphore( const SemaphoreSignalInfo & signalInfo, Dispatch const & d ) const
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
Result result = static_cast<Result>(
d.vkSignalSemaphore( m_device, reinterpret_cast<const VkSemaphoreSignalInfo *>( &signalInfo ) ) );
return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING "::Device::signalSemaphore" );
@@ -6393,6 +6820,7 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_INLINE DeviceAddress Device::getBufferAddress( const VULKAN_HPP_NAMESPACE::BufferDeviceAddressInfo * pInfo,
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
return static_cast<DeviceAddress>(
d.vkGetBufferDeviceAddress( m_device, reinterpret_cast<const VkBufferDeviceAddressInfo *>( pInfo ) ) );
}
@@ -6402,6 +6830,7 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_INLINE DeviceAddress Device::getBufferAddress( const BufferDeviceAddressInfo & info,
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
return d.vkGetBufferDeviceAddress( m_device, reinterpret_cast<const VkBufferDeviceAddressInfo *>( &info ) );
}
#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
@@ -6410,6 +6839,7 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_INLINE uint64_t Device::getBufferOpaqueCaptureAddress(
const VULKAN_HPP_NAMESPACE::BufferDeviceAddressInfo * pInfo, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
return d.vkGetBufferOpaqueCaptureAddress( m_device, reinterpret_cast<const VkBufferDeviceAddressInfo *>( pInfo ) );
}
@@ -6418,6 +6848,7 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_INLINE uint64_t Device::getBufferOpaqueCaptureAddress( const BufferDeviceAddressInfo & info,
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
return d.vkGetBufferOpaqueCaptureAddress( m_device, reinterpret_cast<const VkBufferDeviceAddressInfo *>( &info ) );
}
#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
@@ -6427,6 +6858,7 @@ namespace VULKAN_HPP_NAMESPACE
Device::getMemoryOpaqueCaptureAddress( const VULKAN_HPP_NAMESPACE::DeviceMemoryOpaqueCaptureAddressInfo * pInfo,
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
return d.vkGetDeviceMemoryOpaqueCaptureAddress(
m_device, reinterpret_cast<const VkDeviceMemoryOpaqueCaptureAddressInfo *>( pInfo ) );
}
@@ -6436,6 +6868,7 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_INLINE uint64_t Device::getMemoryOpaqueCaptureAddress( const DeviceMemoryOpaqueCaptureAddressInfo & info,
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
return d.vkGetDeviceMemoryOpaqueCaptureAddress(
m_device, reinterpret_cast<const VkDeviceMemoryOpaqueCaptureAddressInfo *>( &info ) );
}
@@ -6448,6 +6881,7 @@ namespace VULKAN_HPP_NAMESPACE
const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
d.vkDestroySurfaceKHR(
m_instance, static_cast<VkSurfaceKHR>( surface ), reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ) );
}
@@ -6458,6 +6892,7 @@ namespace VULKAN_HPP_NAMESPACE
Optional<const AllocationCallbacks> allocator,
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
d.vkDestroySurfaceKHR( m_instance,
static_cast<VkSurfaceKHR>( surface ),
reinterpret_cast<const VkAllocationCallbacks *>(
@@ -6470,6 +6905,7 @@ namespace VULKAN_HPP_NAMESPACE
const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
d.vkDestroySurfaceKHR(
m_instance, static_cast<VkSurfaceKHR>( surface ), reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ) );
}
@@ -6480,6 +6916,7 @@ namespace VULKAN_HPP_NAMESPACE
Optional<const AllocationCallbacks> allocator,
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
d.vkDestroySurfaceKHR( m_instance,
static_cast<VkSurfaceKHR>( surface ),
reinterpret_cast<const VkAllocationCallbacks *>(
@@ -6494,6 +6931,7 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_NAMESPACE::Bool32 * pSupported,
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
return static_cast<Result>( d.vkGetPhysicalDeviceSurfaceSupportKHR( m_physicalDevice,
queueFamilyIndex,
static_cast<VkSurfaceKHR>( surface ),
@@ -6507,6 +6945,7 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_NAMESPACE::SurfaceKHR surface,
Dispatch const & d ) const
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
VULKAN_HPP_NAMESPACE::Bool32 supported;
Result result =
static_cast<Result>( d.vkGetPhysicalDeviceSurfaceSupportKHR( m_physicalDevice,
@@ -6523,6 +6962,7 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_NAMESPACE::SurfaceCapabilitiesKHR * pSurfaceCapabilities,
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
return static_cast<Result>( d.vkGetPhysicalDeviceSurfaceCapabilitiesKHR(
m_physicalDevice,
static_cast<VkSurfaceKHR>( surface ),
@@ -6535,6 +6975,7 @@ namespace VULKAN_HPP_NAMESPACE
typename ResultValueType<VULKAN_HPP_NAMESPACE::SurfaceCapabilitiesKHR>::type
PhysicalDevice::getSurfaceCapabilitiesKHR( VULKAN_HPP_NAMESPACE::SurfaceKHR surface, Dispatch const & d ) const
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
VULKAN_HPP_NAMESPACE::SurfaceCapabilitiesKHR surfaceCapabilities;
Result result = static_cast<Result>( d.vkGetPhysicalDeviceSurfaceCapabilitiesKHR(
m_physicalDevice,
@@ -6552,6 +6993,7 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_NAMESPACE::SurfaceFormatKHR * pSurfaceFormats,
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
return static_cast<Result>(
d.vkGetPhysicalDeviceSurfaceFormatsKHR( m_physicalDevice,
static_cast<VkSurfaceKHR>( surface ),
@@ -6565,6 +7007,7 @@ namespace VULKAN_HPP_NAMESPACE
typename ResultValueType<std::vector<SurfaceFormatKHR, SurfaceFormatKHRAllocator>>::type
PhysicalDevice::getSurfaceFormatsKHR( VULKAN_HPP_NAMESPACE::SurfaceKHR surface, Dispatch const & d ) const
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
std::vector<SurfaceFormatKHR, SurfaceFormatKHRAllocator> surfaceFormats;
uint32_t surfaceFormatCount;
Result result;
@@ -6601,6 +7044,7 @@ namespace VULKAN_HPP_NAMESPACE
SurfaceFormatKHRAllocator & surfaceFormatKHRAllocator,
Dispatch const & d ) const
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
std::vector<SurfaceFormatKHR, SurfaceFormatKHRAllocator> surfaceFormats( surfaceFormatKHRAllocator );
uint32_t surfaceFormatCount;
Result result;
@@ -6635,6 +7079,7 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_NAMESPACE::PresentModeKHR * pPresentModes,
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
return static_cast<Result>(
d.vkGetPhysicalDeviceSurfacePresentModesKHR( m_physicalDevice,
static_cast<VkSurfaceKHR>( surface ),
@@ -6648,6 +7093,7 @@ namespace VULKAN_HPP_NAMESPACE
typename ResultValueType<std::vector<PresentModeKHR, PresentModeKHRAllocator>>::type
PhysicalDevice::getSurfacePresentModesKHR( VULKAN_HPP_NAMESPACE::SurfaceKHR surface, Dispatch const & d ) const
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
std::vector<PresentModeKHR, PresentModeKHRAllocator> presentModes;
uint32_t presentModeCount;
Result result;
@@ -6684,6 +7130,7 @@ namespace VULKAN_HPP_NAMESPACE
PresentModeKHRAllocator & presentModeKHRAllocator,
Dispatch const & d ) const
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
std::vector<PresentModeKHR, PresentModeKHRAllocator> presentModes( presentModeKHRAllocator );
uint32_t presentModeCount;
Result result;
@@ -6720,6 +7167,7 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_NAMESPACE::SwapchainKHR * pSwapchain,
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
return static_cast<Result>(
d.vkCreateSwapchainKHR( m_device,
reinterpret_cast<const VkSwapchainCreateInfoKHR *>( pCreateInfo ),
@@ -6735,6 +7183,7 @@ namespace VULKAN_HPP_NAMESPACE
Optional<const AllocationCallbacks> allocator,
Dispatch const & d ) const
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain;
Result result = static_cast<Result>(
d.vkCreateSwapchainKHR( m_device,
@@ -6753,6 +7202,7 @@ namespace VULKAN_HPP_NAMESPACE
Optional<const AllocationCallbacks> allocator,
Dispatch const & d ) const
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain;
Result result = static_cast<Result>(
d.vkCreateSwapchainKHR( m_device,
@@ -6772,6 +7222,7 @@ namespace VULKAN_HPP_NAMESPACE
const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
d.vkDestroySwapchainKHR( m_device,
static_cast<VkSwapchainKHR>( swapchain ),
reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ) );
@@ -6783,6 +7234,7 @@ namespace VULKAN_HPP_NAMESPACE
Optional<const AllocationCallbacks> allocator,
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
d.vkDestroySwapchainKHR( m_device,
static_cast<VkSwapchainKHR>( swapchain ),
reinterpret_cast<const VkAllocationCallbacks *>(
@@ -6795,6 +7247,7 @@ namespace VULKAN_HPP_NAMESPACE
const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
d.vkDestroySwapchainKHR( m_device,
static_cast<VkSwapchainKHR>( swapchain ),
reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ) );
@@ -6806,6 +7259,7 @@ namespace VULKAN_HPP_NAMESPACE
Optional<const AllocationCallbacks> allocator,
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
d.vkDestroySwapchainKHR( m_device,
static_cast<VkSwapchainKHR>( swapchain ),
reinterpret_cast<const VkAllocationCallbacks *>(
@@ -6820,6 +7274,7 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_NAMESPACE::Image * pSwapchainImages,
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
return static_cast<Result>( d.vkGetSwapchainImagesKHR( m_device,
static_cast<VkSwapchainKHR>( swapchain ),
pSwapchainImageCount,
@@ -6831,6 +7286,7 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType<std::vector<Image, ImageAllocator>>::type
Device::getSwapchainImagesKHR( VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain, Dispatch const & d ) const
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
std::vector<Image, ImageAllocator> swapchainImages;
uint32_t swapchainImageCount;
Result result;
@@ -6865,6 +7321,7 @@ namespace VULKAN_HPP_NAMESPACE
ImageAllocator & imageAllocator,
Dispatch const & d ) const
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
std::vector<Image, ImageAllocator> swapchainImages( imageAllocator );
uint32_t swapchainImageCount;
Result result;
@@ -6900,6 +7357,7 @@ namespace VULKAN_HPP_NAMESPACE
uint32_t * pImageIndex,
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
return static_cast<Result>( d.vkAcquireNextImageKHR( m_device,
static_cast<VkSwapchainKHR>( swapchain ),
timeout,
@@ -6917,6 +7375,7 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_NAMESPACE::Fence fence,
Dispatch const & d ) const
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
uint32_t imageIndex;
Result result = static_cast<Result>( d.vkAcquireNextImageKHR( m_device,
static_cast<VkSwapchainKHR>( swapchain ),
@@ -6938,6 +7397,7 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Queue::presentKHR(
const VULKAN_HPP_NAMESPACE::PresentInfoKHR * pPresentInfo, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
return static_cast<Result>(
d.vkQueuePresentKHR( m_queue, reinterpret_cast<const VkPresentInfoKHR *>( pPresentInfo ) ) );
}
@@ -6947,6 +7407,7 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Queue::presentKHR( const PresentInfoKHR & presentInfo,
Dispatch const & d ) const
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
Result result =
static_cast<Result>( d.vkQueuePresentKHR( m_queue, reinterpret_cast<const VkPresentInfoKHR *>( &presentInfo ) ) );
return createResultValue(
@@ -6961,6 +7422,7 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_NAMESPACE::DeviceGroupPresentCapabilitiesKHR * pDeviceGroupPresentCapabilities,
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
return static_cast<Result>( d.vkGetDeviceGroupPresentCapabilitiesKHR(
m_device, reinterpret_cast<VkDeviceGroupPresentCapabilitiesKHR *>( pDeviceGroupPresentCapabilities ) ) );
}
@@ -6971,6 +7433,7 @@ namespace VULKAN_HPP_NAMESPACE
typename ResultValueType<VULKAN_HPP_NAMESPACE::DeviceGroupPresentCapabilitiesKHR>::type
Device::getGroupPresentCapabilitiesKHR( Dispatch const & d ) const
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
VULKAN_HPP_NAMESPACE::DeviceGroupPresentCapabilitiesKHR deviceGroupPresentCapabilities;
Result result = static_cast<Result>( d.vkGetDeviceGroupPresentCapabilitiesKHR(
m_device, reinterpret_cast<VkDeviceGroupPresentCapabilitiesKHR *>( &deviceGroupPresentCapabilities ) ) );
@@ -6985,6 +7448,7 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_NAMESPACE::DeviceGroupPresentModeFlagsKHR * pModes,
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
return static_cast<Result>(
d.vkGetDeviceGroupSurfacePresentModesKHR( m_device,
static_cast<VkSurfaceKHR>( surface ),
@@ -6997,6 +7461,7 @@ namespace VULKAN_HPP_NAMESPACE
typename ResultValueType<VULKAN_HPP_NAMESPACE::DeviceGroupPresentModeFlagsKHR>::type
Device::getGroupSurfacePresentModesKHR( VULKAN_HPP_NAMESPACE::SurfaceKHR surface, Dispatch const & d ) const
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
VULKAN_HPP_NAMESPACE::DeviceGroupPresentModeFlagsKHR modes;
Result result = static_cast<Result>(
d.vkGetDeviceGroupSurfacePresentModesKHR( m_device,
@@ -7013,6 +7478,7 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_NAMESPACE::Rect2D * pRects,
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
return static_cast<Result>( d.vkGetPhysicalDevicePresentRectanglesKHR(
m_physicalDevice, static_cast<VkSurfaceKHR>( surface ), pRectCount, reinterpret_cast<VkRect2D *>( pRects ) ) );
}
@@ -7022,6 +7488,7 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType<std::vector<Rect2D, Rect2DAllocator>>::type
PhysicalDevice::getPresentRectanglesKHR( VULKAN_HPP_NAMESPACE::SurfaceKHR surface, Dispatch const & d ) const
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
std::vector<Rect2D, Rect2DAllocator> rects;
uint32_t rectCount;
Result result;
@@ -7056,6 +7523,7 @@ namespace VULKAN_HPP_NAMESPACE
Rect2DAllocator & rect2DAllocator,
Dispatch const & d ) const
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
std::vector<Rect2D, Rect2DAllocator> rects( rect2DAllocator );
uint32_t rectCount;
Result result;
@@ -7088,6 +7556,7 @@ namespace VULKAN_HPP_NAMESPACE
uint32_t * pImageIndex,
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
return static_cast<Result>( d.vkAcquireNextImage2KHR(
m_device, reinterpret_cast<const VkAcquireNextImageInfoKHR *>( pAcquireInfo ), pImageIndex ) );
}
@@ -7097,6 +7566,7 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE ResultValue<uint32_t>
Device::acquireNextImage2KHR( const AcquireNextImageInfoKHR & acquireInfo, Dispatch const & d ) const
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
uint32_t imageIndex;
Result result = static_cast<Result>( d.vkAcquireNextImage2KHR(
m_device, reinterpret_cast<const VkAcquireNextImageInfoKHR *>( &acquireInfo ), &imageIndex ) );
@@ -7118,6 +7588,7 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_NAMESPACE::DisplayPropertiesKHR * pProperties,
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
return static_cast<Result>( d.vkGetPhysicalDeviceDisplayPropertiesKHR(
m_physicalDevice, pPropertyCount, reinterpret_cast<VkDisplayPropertiesKHR *>( pProperties ) ) );
}
@@ -7128,6 +7599,7 @@ namespace VULKAN_HPP_NAMESPACE
typename ResultValueType<std::vector<DisplayPropertiesKHR, DisplayPropertiesKHRAllocator>>::type
PhysicalDevice::getDisplayPropertiesKHR( Dispatch const & d ) const
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
std::vector<DisplayPropertiesKHR, DisplayPropertiesKHRAllocator> properties;
uint32_t propertyCount;
Result result;
@@ -7160,6 +7632,7 @@ namespace VULKAN_HPP_NAMESPACE
PhysicalDevice::getDisplayPropertiesKHR( DisplayPropertiesKHRAllocator & displayPropertiesKHRAllocator,
Dispatch const & d ) const
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
std::vector<DisplayPropertiesKHR, DisplayPropertiesKHRAllocator> properties( displayPropertiesKHRAllocator );
uint32_t propertyCount;
Result result;
@@ -7190,6 +7663,7 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_NAMESPACE::DisplayPlanePropertiesKHR * pProperties,
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
return static_cast<Result>( d.vkGetPhysicalDeviceDisplayPlanePropertiesKHR(
m_physicalDevice, pPropertyCount, reinterpret_cast<VkDisplayPlanePropertiesKHR *>( pProperties ) ) );
}
@@ -7200,6 +7674,7 @@ namespace VULKAN_HPP_NAMESPACE
typename ResultValueType<std::vector<DisplayPlanePropertiesKHR, DisplayPlanePropertiesKHRAllocator>>::type
PhysicalDevice::getDisplayPlanePropertiesKHR( Dispatch const & d ) const
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
std::vector<DisplayPlanePropertiesKHR, DisplayPlanePropertiesKHRAllocator> properties;
uint32_t propertyCount;
Result result;
@@ -7232,6 +7707,7 @@ namespace VULKAN_HPP_NAMESPACE
PhysicalDevice::getDisplayPlanePropertiesKHR(
DisplayPlanePropertiesKHRAllocator & displayPlanePropertiesKHRAllocator, Dispatch const & d ) const
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
std::vector<DisplayPlanePropertiesKHR, DisplayPlanePropertiesKHRAllocator> properties(
displayPlanePropertiesKHRAllocator );
uint32_t propertyCount;
@@ -7264,6 +7740,7 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_NAMESPACE::DisplayKHR * pDisplays,
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
return static_cast<Result>( d.vkGetDisplayPlaneSupportedDisplaysKHR(
m_physicalDevice, planeIndex, pDisplayCount, reinterpret_cast<VkDisplayKHR *>( pDisplays ) ) );
}
@@ -7273,6 +7750,7 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType<std::vector<DisplayKHR, DisplayKHRAllocator>>::type
PhysicalDevice::getDisplayPlaneSupportedDisplaysKHR( uint32_t planeIndex, Dispatch const & d ) const
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
std::vector<DisplayKHR, DisplayKHRAllocator> displays;
uint32_t displayCount;
Result result;
@@ -7305,6 +7783,7 @@ namespace VULKAN_HPP_NAMESPACE
DisplayKHRAllocator & displayKHRAllocator,
Dispatch const & d ) const
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
std::vector<DisplayKHR, DisplayKHRAllocator> displays( displayKHRAllocator );
uint32_t displayCount;
Result result;
@@ -7336,6 +7815,7 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_NAMESPACE::DisplayModePropertiesKHR * pProperties,
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
return static_cast<Result>(
d.vkGetDisplayModePropertiesKHR( m_physicalDevice,
static_cast<VkDisplayKHR>( display ),
@@ -7349,6 +7829,7 @@ namespace VULKAN_HPP_NAMESPACE
typename ResultValueType<std::vector<DisplayModePropertiesKHR, DisplayModePropertiesKHRAllocator>>::type
PhysicalDevice::getDisplayModePropertiesKHR( VULKAN_HPP_NAMESPACE::DisplayKHR display, Dispatch const & d ) const
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
std::vector<DisplayModePropertiesKHR, DisplayModePropertiesKHRAllocator> properties;
uint32_t propertyCount;
Result result;
@@ -7385,6 +7866,7 @@ namespace VULKAN_HPP_NAMESPACE
DisplayModePropertiesKHRAllocator & displayModePropertiesKHRAllocator,
Dispatch const & d ) const
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
std::vector<DisplayModePropertiesKHR, DisplayModePropertiesKHRAllocator> properties(
displayModePropertiesKHRAllocator );
uint32_t propertyCount;
@@ -7421,6 +7903,7 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_NAMESPACE::DisplayModeKHR * pMode,
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
return static_cast<Result>(
d.vkCreateDisplayModeKHR( m_physicalDevice,
static_cast<VkDisplayKHR>( display ),
@@ -7438,6 +7921,7 @@ namespace VULKAN_HPP_NAMESPACE
Optional<const AllocationCallbacks> allocator,
Dispatch const & d ) const
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
VULKAN_HPP_NAMESPACE::DisplayModeKHR mode;
Result result = static_cast<Result>(
d.vkCreateDisplayModeKHR( m_physicalDevice,
@@ -7458,6 +7942,7 @@ namespace VULKAN_HPP_NAMESPACE
Optional<const AllocationCallbacks> allocator,
Dispatch const & d ) const
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
VULKAN_HPP_NAMESPACE::DisplayModeKHR mode;
Result result = static_cast<Result>(
d.vkCreateDisplayModeKHR( m_physicalDevice,
@@ -7480,6 +7965,7 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_NAMESPACE::DisplayPlaneCapabilitiesKHR * pCapabilities,
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
return static_cast<Result>(
d.vkGetDisplayPlaneCapabilitiesKHR( m_physicalDevice,
static_cast<VkDisplayModeKHR>( mode ),
@@ -7495,6 +7981,7 @@ namespace VULKAN_HPP_NAMESPACE
uint32_t planeIndex,
Dispatch const & d ) const
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
VULKAN_HPP_NAMESPACE::DisplayPlaneCapabilitiesKHR capabilities;
Result result = static_cast<Result>(
d.vkGetDisplayPlaneCapabilitiesKHR( m_physicalDevice,
@@ -7513,6 +8000,7 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_NAMESPACE::SurfaceKHR * pSurface,
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
return static_cast<Result>(
d.vkCreateDisplayPlaneSurfaceKHR( m_instance,
reinterpret_cast<const VkDisplaySurfaceCreateInfoKHR *>( pCreateInfo ),
@@ -7528,6 +8016,7 @@ namespace VULKAN_HPP_NAMESPACE
Optional<const AllocationCallbacks> allocator,
Dispatch const & d ) const
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
VULKAN_HPP_NAMESPACE::SurfaceKHR surface;
Result result = static_cast<Result>(
d.vkCreateDisplayPlaneSurfaceKHR( m_instance,
@@ -7546,6 +8035,7 @@ namespace VULKAN_HPP_NAMESPACE
Optional<const AllocationCallbacks> allocator,
Dispatch const & d ) const
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
VULKAN_HPP_NAMESPACE::SurfaceKHR surface;
Result result = static_cast<Result>(
d.vkCreateDisplayPlaneSurfaceKHR( m_instance,
@@ -7570,6 +8060,7 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_NAMESPACE::SwapchainKHR * pSwapchains,
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
return static_cast<Result>(
d.vkCreateSharedSwapchainsKHR( m_device,
swapchainCount,
@@ -7587,6 +8078,7 @@ namespace VULKAN_HPP_NAMESPACE
Optional<const AllocationCallbacks> allocator,
Dispatch const & d ) const
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
std::vector<SwapchainKHR, SwapchainKHRAllocator> swapchains( createInfos.size() );
Result result = static_cast<Result>(
d.vkCreateSharedSwapchainsKHR( m_device,
@@ -7610,6 +8102,7 @@ namespace VULKAN_HPP_NAMESPACE
SwapchainKHRAllocator & swapchainKHRAllocator,
Dispatch const & d ) const
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
std::vector<SwapchainKHR, SwapchainKHRAllocator> swapchains( createInfos.size(), swapchainKHRAllocator );
Result result = static_cast<Result>(
d.vkCreateSharedSwapchainsKHR( m_device,
@@ -7627,6 +8120,7 @@ namespace VULKAN_HPP_NAMESPACE
Optional<const AllocationCallbacks> allocator,
Dispatch const & d ) const
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
SwapchainKHR swapchain;
Result result = static_cast<Result>(
d.vkCreateSharedSwapchainsKHR( m_device,
@@ -7647,6 +8141,7 @@ namespace VULKAN_HPP_NAMESPACE
Optional<const AllocationCallbacks> allocator,
Dispatch const & d ) const
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
std::vector<UniqueHandle<SwapchainKHR, Dispatch>, SwapchainKHRAllocator> uniqueSwapchains;
std::vector<SwapchainKHR> swapchains( createInfos.size() );
Result result = static_cast<Result>(
@@ -7682,6 +8177,7 @@ namespace VULKAN_HPP_NAMESPACE
SwapchainKHRAllocator & swapchainKHRAllocator,
Dispatch const & d ) const
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
std::vector<UniqueHandle<SwapchainKHR, Dispatch>, SwapchainKHRAllocator> uniqueSwapchains( swapchainKHRAllocator );
std::vector<SwapchainKHR> swapchains( createInfos.size() );
Result result = static_cast<Result>(
@@ -7711,6 +8207,7 @@ namespace VULKAN_HPP_NAMESPACE
Optional<const AllocationCallbacks> allocator,
Dispatch const & d ) const
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
SwapchainKHR swapchain;
Result result = static_cast<Result>(
d.vkCreateSharedSwapchainsKHR( m_device,
@@ -7736,6 +8233,7 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_NAMESPACE::SurfaceKHR * pSurface,
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
return static_cast<Result>(
d.vkCreateXlibSurfaceKHR( m_instance,
reinterpret_cast<const VkXlibSurfaceCreateInfoKHR *>( pCreateInfo ),
@@ -7751,6 +8249,7 @@ namespace VULKAN_HPP_NAMESPACE
Optional<const AllocationCallbacks> allocator,
Dispatch const & d ) const
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
VULKAN_HPP_NAMESPACE::SurfaceKHR surface;
Result result = static_cast<Result>(
d.vkCreateXlibSurfaceKHR( m_instance,
@@ -7769,6 +8268,7 @@ namespace VULKAN_HPP_NAMESPACE
Optional<const AllocationCallbacks> allocator,
Dispatch const & d ) const
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
VULKAN_HPP_NAMESPACE::SurfaceKHR surface;
Result result = static_cast<Result>(
d.vkCreateXlibSurfaceKHR( m_instance,
@@ -7789,6 +8289,7 @@ namespace VULKAN_HPP_NAMESPACE
VisualID visualID,
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
return static_cast<Bool32>(
d.vkGetPhysicalDeviceXlibPresentationSupportKHR( m_physicalDevice, queueFamilyIndex, dpy, visualID ) );
}
@@ -7800,6 +8301,7 @@ namespace VULKAN_HPP_NAMESPACE
VisualID visualID,
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
return d.vkGetPhysicalDeviceXlibPresentationSupportKHR( m_physicalDevice, queueFamilyIndex, &dpy, visualID );
}
# endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
@@ -7815,6 +8317,7 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_NAMESPACE::SurfaceKHR * pSurface,
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
return static_cast<Result>(
d.vkCreateXcbSurfaceKHR( m_instance,
reinterpret_cast<const VkXcbSurfaceCreateInfoKHR *>( pCreateInfo ),
@@ -7830,6 +8333,7 @@ namespace VULKAN_HPP_NAMESPACE
Optional<const AllocationCallbacks> allocator,
Dispatch const & d ) const
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
VULKAN_HPP_NAMESPACE::SurfaceKHR surface;
Result result = static_cast<Result>(
d.vkCreateXcbSurfaceKHR( m_instance,
@@ -7848,6 +8352,7 @@ namespace VULKAN_HPP_NAMESPACE
Optional<const AllocationCallbacks> allocator,
Dispatch const & d ) const
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
VULKAN_HPP_NAMESPACE::SurfaceKHR surface;
Result result = static_cast<Result>(
d.vkCreateXcbSurfaceKHR( m_instance,
@@ -7868,6 +8373,7 @@ namespace VULKAN_HPP_NAMESPACE
xcb_visualid_t visual_id,
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
return static_cast<Bool32>(
d.vkGetPhysicalDeviceXcbPresentationSupportKHR( m_physicalDevice, queueFamilyIndex, connection, visual_id ) );
}
@@ -7879,6 +8385,7 @@ namespace VULKAN_HPP_NAMESPACE
xcb_visualid_t visual_id,
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
return d.vkGetPhysicalDeviceXcbPresentationSupportKHR( m_physicalDevice, queueFamilyIndex, &connection, visual_id );
}
# endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
@@ -7894,6 +8401,7 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_NAMESPACE::SurfaceKHR * pSurface,
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
return static_cast<Result>(
d.vkCreateWaylandSurfaceKHR( m_instance,
reinterpret_cast<const VkWaylandSurfaceCreateInfoKHR *>( pCreateInfo ),
@@ -7909,6 +8417,7 @@ namespace VULKAN_HPP_NAMESPACE
Optional<const AllocationCallbacks> allocator,
Dispatch const & d ) const
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
VULKAN_HPP_NAMESPACE::SurfaceKHR surface;
Result result = static_cast<Result>(
d.vkCreateWaylandSurfaceKHR( m_instance,
@@ -7927,6 +8436,7 @@ namespace VULKAN_HPP_NAMESPACE
Optional<const AllocationCallbacks> allocator,
Dispatch const & d ) const
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
VULKAN_HPP_NAMESPACE::SurfaceKHR surface;
Result result = static_cast<Result>(
d.vkCreateWaylandSurfaceKHR( m_instance,
@@ -7945,6 +8455,7 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_INLINE Bool32 PhysicalDevice::getWaylandPresentationSupportKHR(
uint32_t queueFamilyIndex, struct wl_display * display, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
return static_cast<Bool32>(
d.vkGetPhysicalDeviceWaylandPresentationSupportKHR( m_physicalDevice, queueFamilyIndex, display ) );
}
@@ -7954,6 +8465,7 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_INLINE Bool32 PhysicalDevice::getWaylandPresentationSupportKHR(
uint32_t queueFamilyIndex, struct wl_display & display, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
return d.vkGetPhysicalDeviceWaylandPresentationSupportKHR( m_physicalDevice, queueFamilyIndex, &display );
}
# endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
@@ -7969,6 +8481,7 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_NAMESPACE::SurfaceKHR * pSurface,
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
return static_cast<Result>(
d.vkCreateAndroidSurfaceKHR( m_instance,
reinterpret_cast<const VkAndroidSurfaceCreateInfoKHR *>( pCreateInfo ),
@@ -7984,6 +8497,7 @@ namespace VULKAN_HPP_NAMESPACE
Optional<const AllocationCallbacks> allocator,
Dispatch const & d ) const
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
VULKAN_HPP_NAMESPACE::SurfaceKHR surface;
Result result = static_cast<Result>(
d.vkCreateAndroidSurfaceKHR( m_instance,
@@ -8002,6 +8516,7 @@ namespace VULKAN_HPP_NAMESPACE
Optional<const AllocationCallbacks> allocator,
Dispatch const & d ) const
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
VULKAN_HPP_NAMESPACE::SurfaceKHR surface;
Result result = static_cast<Result>(
d.vkCreateAndroidSurfaceKHR( m_instance,
@@ -8027,6 +8542,7 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_NAMESPACE::SurfaceKHR * pSurface,
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
return static_cast<Result>(
d.vkCreateWin32SurfaceKHR( m_instance,
reinterpret_cast<const VkWin32SurfaceCreateInfoKHR *>( pCreateInfo ),
@@ -8042,6 +8558,7 @@ namespace VULKAN_HPP_NAMESPACE
Optional<const AllocationCallbacks> allocator,
Dispatch const & d ) const
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
VULKAN_HPP_NAMESPACE::SurfaceKHR surface;
Result result = static_cast<Result>(
d.vkCreateWin32SurfaceKHR( m_instance,
@@ -8060,6 +8577,7 @@ namespace VULKAN_HPP_NAMESPACE
Optional<const AllocationCallbacks> allocator,
Dispatch const & d ) const
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
VULKAN_HPP_NAMESPACE::SurfaceKHR surface;
Result result = static_cast<Result>(
d.vkCreateWin32SurfaceKHR( m_instance,
@@ -8078,6 +8596,7 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_INLINE Bool32 PhysicalDevice::getWin32PresentationSupportKHR(
uint32_t queueFamilyIndex, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
return static_cast<Bool32>(
d.vkGetPhysicalDeviceWin32PresentationSupportKHR( m_physicalDevice, queueFamilyIndex ) );
}
@@ -8092,6 +8611,7 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_NAMESPACE::DebugReportCallbackEXT * pCallback,
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
return static_cast<Result>(
d.vkCreateDebugReportCallbackEXT( m_instance,
reinterpret_cast<const VkDebugReportCallbackCreateInfoEXT *>( pCreateInfo ),
@@ -8106,6 +8626,7 @@ namespace VULKAN_HPP_NAMESPACE
Optional<const AllocationCallbacks> allocator,
Dispatch const & d ) const
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
VULKAN_HPP_NAMESPACE::DebugReportCallbackEXT callback;
Result result = static_cast<Result>(
d.vkCreateDebugReportCallbackEXT( m_instance,
@@ -8124,6 +8645,7 @@ namespace VULKAN_HPP_NAMESPACE
Optional<const AllocationCallbacks> allocator,
Dispatch const & d ) const
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
VULKAN_HPP_NAMESPACE::DebugReportCallbackEXT callback;
Result result = static_cast<Result>(
d.vkCreateDebugReportCallbackEXT( m_instance,
@@ -8144,6 +8666,7 @@ namespace VULKAN_HPP_NAMESPACE
const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
d.vkDestroyDebugReportCallbackEXT( m_instance,
static_cast<VkDebugReportCallbackEXT>( callback ),
reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ) );
@@ -8155,6 +8678,7 @@ namespace VULKAN_HPP_NAMESPACE
Optional<const AllocationCallbacks> allocator,
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
d.vkDestroyDebugReportCallbackEXT(
m_instance,
static_cast<VkDebugReportCallbackEXT>( callback ),
@@ -8168,6 +8692,7 @@ namespace VULKAN_HPP_NAMESPACE
const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
d.vkDestroyDebugReportCallbackEXT( m_instance,
static_cast<VkDebugReportCallbackEXT>( callback ),
reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ) );
@@ -8179,6 +8704,7 @@ namespace VULKAN_HPP_NAMESPACE
Optional<const AllocationCallbacks> allocator,
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
d.vkDestroyDebugReportCallbackEXT(
m_instance,
static_cast<VkDebugReportCallbackEXT>( callback ),
@@ -8197,6 +8723,7 @@ namespace VULKAN_HPP_NAMESPACE
const char * pMessage,
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
d.vkDebugReportMessageEXT( m_instance,
static_cast<VkDebugReportFlagsEXT>( flags ),
static_cast<VkDebugReportObjectTypeEXT>( objectType ),
@@ -8218,6 +8745,7 @@ namespace VULKAN_HPP_NAMESPACE
const std::string & message,
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
d.vkDebugReportMessageEXT( m_instance,
static_cast<VkDebugReportFlagsEXT>( flags ),
static_cast<VkDebugReportObjectTypeEXT>( objectType ),
@@ -8235,6 +8763,7 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::debugMarkerSetObjectTagEXT(
const VULKAN_HPP_NAMESPACE::DebugMarkerObjectTagInfoEXT * pTagInfo, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
return static_cast<Result>(
d.vkDebugMarkerSetObjectTagEXT( m_device, reinterpret_cast<const VkDebugMarkerObjectTagInfoEXT *>( pTagInfo ) ) );
}
@@ -8244,6 +8773,7 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType<void>::type
Device::debugMarkerSetObjectTagEXT( const DebugMarkerObjectTagInfoEXT & tagInfo, Dispatch const & d ) const
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
Result result = static_cast<Result>(
d.vkDebugMarkerSetObjectTagEXT( m_device, reinterpret_cast<const VkDebugMarkerObjectTagInfoEXT *>( &tagInfo ) ) );
return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING "::Device::debugMarkerSetObjectTagEXT" );
@@ -8254,6 +8784,7 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::debugMarkerSetObjectNameEXT(
const VULKAN_HPP_NAMESPACE::DebugMarkerObjectNameInfoEXT * pNameInfo, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
return static_cast<Result>( d.vkDebugMarkerSetObjectNameEXT(
m_device, reinterpret_cast<const VkDebugMarkerObjectNameInfoEXT *>( pNameInfo ) ) );
}
@@ -8263,6 +8794,7 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType<void>::type
Device::debugMarkerSetObjectNameEXT( const DebugMarkerObjectNameInfoEXT & nameInfo, Dispatch const & d ) const
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
Result result = static_cast<Result>( d.vkDebugMarkerSetObjectNameEXT(
m_device, reinterpret_cast<const VkDebugMarkerObjectNameInfoEXT *>( &nameInfo ) ) );
return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING "::Device::debugMarkerSetObjectNameEXT" );
@@ -8274,6 +8806,7 @@ namespace VULKAN_HPP_NAMESPACE
CommandBuffer::debugMarkerBeginEXT( const VULKAN_HPP_NAMESPACE::DebugMarkerMarkerInfoEXT * pMarkerInfo,
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
d.vkCmdDebugMarkerBeginEXT( m_commandBuffer, reinterpret_cast<const VkDebugMarkerMarkerInfoEXT *>( pMarkerInfo ) );
}
@@ -8282,6 +8815,7 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_INLINE void CommandBuffer::debugMarkerBeginEXT( const DebugMarkerMarkerInfoEXT & markerInfo,
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
d.vkCmdDebugMarkerBeginEXT( m_commandBuffer, reinterpret_cast<const VkDebugMarkerMarkerInfoEXT *>( &markerInfo ) );
}
#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
@@ -8289,6 +8823,7 @@ namespace VULKAN_HPP_NAMESPACE
template <typename Dispatch>
VULKAN_HPP_INLINE void CommandBuffer::debugMarkerEndEXT( Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
d.vkCmdDebugMarkerEndEXT( m_commandBuffer );
}
@@ -8297,6 +8832,7 @@ namespace VULKAN_HPP_NAMESPACE
CommandBuffer::debugMarkerInsertEXT( const VULKAN_HPP_NAMESPACE::DebugMarkerMarkerInfoEXT * pMarkerInfo,
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
d.vkCmdDebugMarkerInsertEXT( m_commandBuffer, reinterpret_cast<const VkDebugMarkerMarkerInfoEXT *>( pMarkerInfo ) );
}
@@ -8305,6 +8841,7 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_INLINE void CommandBuffer::debugMarkerInsertEXT( const DebugMarkerMarkerInfoEXT & markerInfo,
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
d.vkCmdDebugMarkerInsertEXT( m_commandBuffer, reinterpret_cast<const VkDebugMarkerMarkerInfoEXT *>( &markerInfo ) );
}
#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
@@ -8318,6 +8855,7 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_NAMESPACE::VideoCapabilitiesKHR * pCapabilities,
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
return static_cast<Result>(
d.vkGetPhysicalDeviceVideoCapabilitiesKHR( m_physicalDevice,
reinterpret_cast<const VkVideoProfileKHR *>( pVideoProfile ),
@@ -8330,6 +8868,7 @@ namespace VULKAN_HPP_NAMESPACE
typename ResultValueType<VULKAN_HPP_NAMESPACE::VideoCapabilitiesKHR>::type
PhysicalDevice::getVideoCapabilitiesKHR( const VideoProfileKHR & videoProfile, Dispatch const & d ) const
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
VULKAN_HPP_NAMESPACE::VideoCapabilitiesKHR capabilities;
Result result = static_cast<Result>(
d.vkGetPhysicalDeviceVideoCapabilitiesKHR( m_physicalDevice,
@@ -8343,6 +8882,7 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType<StructureChain<X, Y, Z...>>::type
PhysicalDevice::getVideoCapabilitiesKHR( const VideoProfileKHR & videoProfile, Dispatch const & d ) const
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
StructureChain<X, Y, Z...> structureChain;
VULKAN_HPP_NAMESPACE::VideoCapabilitiesKHR & capabilities =
structureChain.template get<VULKAN_HPP_NAMESPACE::VideoCapabilitiesKHR>();
@@ -8362,6 +8902,7 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_NAMESPACE::VideoFormatPropertiesKHR * pVideoFormatProperties,
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
return static_cast<Result>( d.vkGetPhysicalDeviceVideoFormatPropertiesKHR(
m_physicalDevice,
reinterpret_cast<const VkPhysicalDeviceVideoFormatInfoKHR *>( pVideoFormatInfo ),
@@ -8376,6 +8917,7 @@ namespace VULKAN_HPP_NAMESPACE
PhysicalDevice::getVideoFormatPropertiesKHR( const PhysicalDeviceVideoFormatInfoKHR & videoFormatInfo,
Dispatch const & d ) const
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
std::vector<VideoFormatPropertiesKHR, VideoFormatPropertiesKHRAllocator> videoFormatProperties;
uint32_t videoFormatPropertyCount;
Result result;
@@ -8415,6 +8957,7 @@ namespace VULKAN_HPP_NAMESPACE
VideoFormatPropertiesKHRAllocator & videoFormatPropertiesKHRAllocator,
Dispatch const & d ) const
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
std::vector<VideoFormatPropertiesKHR, VideoFormatPropertiesKHRAllocator> videoFormatProperties(
videoFormatPropertiesKHRAllocator );
uint32_t videoFormatPropertyCount;
@@ -8453,6 +8996,7 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_NAMESPACE::VideoSessionKHR * pVideoSession,
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
return static_cast<Result>(
d.vkCreateVideoSessionKHR( m_device,
reinterpret_cast<const VkVideoSessionCreateInfoKHR *>( pCreateInfo ),
@@ -8468,6 +9012,7 @@ namespace VULKAN_HPP_NAMESPACE
Optional<const AllocationCallbacks> allocator,
Dispatch const & d ) const
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
VULKAN_HPP_NAMESPACE::VideoSessionKHR videoSession;
Result result = static_cast<Result>(
d.vkCreateVideoSessionKHR( m_device,
@@ -8486,6 +9031,7 @@ namespace VULKAN_HPP_NAMESPACE
Optional<const AllocationCallbacks> allocator,
Dispatch const & d ) const
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
VULKAN_HPP_NAMESPACE::VideoSessionKHR videoSession;
Result result = static_cast<Result>(
d.vkCreateVideoSessionKHR( m_device,
@@ -8505,6 +9051,7 @@ namespace VULKAN_HPP_NAMESPACE
const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
d.vkDestroyVideoSessionKHR( m_device,
static_cast<VkVideoSessionKHR>( videoSession ),
reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ) );
@@ -8516,6 +9063,7 @@ namespace VULKAN_HPP_NAMESPACE
Optional<const AllocationCallbacks> allocator,
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
d.vkDestroyVideoSessionKHR( m_device,
static_cast<VkVideoSessionKHR>( videoSession ),
reinterpret_cast<const VkAllocationCallbacks *>(
@@ -8528,6 +9076,7 @@ namespace VULKAN_HPP_NAMESPACE
const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
d.vkDestroyVideoSessionKHR( m_device,
static_cast<VkVideoSessionKHR>( videoSession ),
reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ) );
@@ -8539,6 +9088,7 @@ namespace VULKAN_HPP_NAMESPACE
Optional<const AllocationCallbacks> allocator,
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
d.vkDestroyVideoSessionKHR( m_device,
static_cast<VkVideoSessionKHR>( videoSession ),
reinterpret_cast<const VkAllocationCallbacks *>(
@@ -8553,6 +9103,7 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_NAMESPACE::VideoGetMemoryPropertiesKHR * pVideoSessionMemoryRequirements,
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
return static_cast<Result>( d.vkGetVideoSessionMemoryRequirementsKHR(
m_device,
static_cast<VkVideoSessionKHR>( videoSession ),
@@ -8567,6 +9118,7 @@ namespace VULKAN_HPP_NAMESPACE
Device::getVideoSessionMemoryRequirementsKHR( VULKAN_HPP_NAMESPACE::VideoSessionKHR videoSession,
Dispatch const & d ) const
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
std::vector<VideoGetMemoryPropertiesKHR, VideoGetMemoryPropertiesKHRAllocator> videoSessionMemoryRequirements;
uint32_t videoSessionMemoryRequirementsCount;
Result result;
@@ -8607,6 +9159,7 @@ namespace VULKAN_HPP_NAMESPACE
VideoGetMemoryPropertiesKHRAllocator & videoGetMemoryPropertiesKHRAllocator,
Dispatch const & d ) const
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
std::vector<VideoGetMemoryPropertiesKHR, VideoGetMemoryPropertiesKHRAllocator> videoSessionMemoryRequirements(
videoGetMemoryPropertiesKHRAllocator );
uint32_t videoSessionMemoryRequirementsCount;
@@ -8644,6 +9197,7 @@ namespace VULKAN_HPP_NAMESPACE
const VULKAN_HPP_NAMESPACE::VideoBindMemoryKHR * pVideoSessionBindMemories,
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
return static_cast<Result>(
d.vkBindVideoSessionMemoryKHR( m_device,
static_cast<VkVideoSessionKHR>( videoSession ),
@@ -8659,6 +9213,7 @@ namespace VULKAN_HPP_NAMESPACE
ArrayProxy<const VULKAN_HPP_NAMESPACE::VideoBindMemoryKHR> const & videoSessionBindMemories,
Dispatch const & d ) const
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
Result result = static_cast<Result>( d.vkBindVideoSessionMemoryKHR(
m_device,
static_cast<VkVideoSessionKHR>( videoSession ),
@@ -8675,6 +9230,7 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_NAMESPACE::VideoSessionParametersKHR * pVideoSessionParameters,
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
return static_cast<Result>( d.vkCreateVideoSessionParametersKHR(
m_device,
reinterpret_cast<const VkVideoSessionParametersCreateInfoKHR *>( pCreateInfo ),
@@ -8690,6 +9246,7 @@ namespace VULKAN_HPP_NAMESPACE
Optional<const AllocationCallbacks> allocator,
Dispatch const & d ) const
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
VULKAN_HPP_NAMESPACE::VideoSessionParametersKHR videoSessionParameters;
Result result = static_cast<Result>( d.vkCreateVideoSessionParametersKHR(
m_device,
@@ -8709,6 +9266,7 @@ namespace VULKAN_HPP_NAMESPACE
Optional<const AllocationCallbacks> allocator,
Dispatch const & d ) const
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
VULKAN_HPP_NAMESPACE::VideoSessionParametersKHR videoSessionParameters;
Result result = static_cast<Result>( d.vkCreateVideoSessionParametersKHR(
m_device,
@@ -8732,6 +9290,7 @@ namespace VULKAN_HPP_NAMESPACE
const VULKAN_HPP_NAMESPACE::VideoSessionParametersUpdateInfoKHR * pUpdateInfo,
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
return static_cast<Result>( d.vkUpdateVideoSessionParametersKHR(
m_device,
static_cast<VkVideoSessionParametersKHR>( videoSessionParameters ),
@@ -8745,6 +9304,7 @@ namespace VULKAN_HPP_NAMESPACE
const VideoSessionParametersUpdateInfoKHR & updateInfo,
Dispatch const & d ) const
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
Result result = static_cast<Result>( d.vkUpdateVideoSessionParametersKHR(
m_device,
static_cast<VkVideoSessionParametersKHR>( videoSessionParameters ),
@@ -8759,6 +9319,7 @@ namespace VULKAN_HPP_NAMESPACE
const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
d.vkDestroyVideoSessionParametersKHR( m_device,
static_cast<VkVideoSessionParametersKHR>( videoSessionParameters ),
reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ) );
@@ -8771,6 +9332,7 @@ namespace VULKAN_HPP_NAMESPACE
Optional<const AllocationCallbacks> allocator,
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
d.vkDestroyVideoSessionParametersKHR(
m_device,
static_cast<VkVideoSessionParametersKHR>( videoSessionParameters ),
@@ -8784,6 +9346,7 @@ namespace VULKAN_HPP_NAMESPACE
const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
d.vkDestroyVideoSessionParametersKHR( m_device,
static_cast<VkVideoSessionParametersKHR>( videoSessionParameters ),
reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ) );
@@ -8795,6 +9358,7 @@ namespace VULKAN_HPP_NAMESPACE
Optional<const AllocationCallbacks> allocator,
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
d.vkDestroyVideoSessionParametersKHR(
m_device,
static_cast<VkVideoSessionParametersKHR>( videoSessionParameters ),
@@ -8808,6 +9372,7 @@ namespace VULKAN_HPP_NAMESPACE
CommandBuffer::beginVideoCodingKHR( const VULKAN_HPP_NAMESPACE::VideoBeginCodingInfoKHR * pBeginInfo,
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
d.vkCmdBeginVideoCodingKHR( m_commandBuffer, reinterpret_cast<const VkVideoBeginCodingInfoKHR *>( pBeginInfo ) );
}
@@ -8816,6 +9381,7 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_INLINE void CommandBuffer::beginVideoCodingKHR( const VideoBeginCodingInfoKHR & beginInfo,
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
d.vkCmdBeginVideoCodingKHR( m_commandBuffer, reinterpret_cast<const VkVideoBeginCodingInfoKHR *>( &beginInfo ) );
}
# endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
@@ -8825,6 +9391,7 @@ namespace VULKAN_HPP_NAMESPACE
CommandBuffer::endVideoCodingKHR( const VULKAN_HPP_NAMESPACE::VideoEndCodingInfoKHR * pEndCodingInfo,
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
d.vkCmdEndVideoCodingKHR( m_commandBuffer, reinterpret_cast<const VkVideoEndCodingInfoKHR *>( pEndCodingInfo ) );
}
@@ -8833,6 +9400,7 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_INLINE void CommandBuffer::endVideoCodingKHR( const VideoEndCodingInfoKHR & endCodingInfo,
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
d.vkCmdEndVideoCodingKHR( m_commandBuffer, reinterpret_cast<const VkVideoEndCodingInfoKHR *>( &endCodingInfo ) );
}
# endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
@@ -8842,6 +9410,7 @@ namespace VULKAN_HPP_NAMESPACE
CommandBuffer::controlVideoCodingKHR( const VULKAN_HPP_NAMESPACE::VideoCodingControlInfoKHR * pCodingControlInfo,
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
d.vkCmdControlVideoCodingKHR( m_commandBuffer,
reinterpret_cast<const VkVideoCodingControlInfoKHR *>( pCodingControlInfo ) );
}
@@ -8851,6 +9420,7 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_INLINE void CommandBuffer::controlVideoCodingKHR( const VideoCodingControlInfoKHR & codingControlInfo,
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
d.vkCmdControlVideoCodingKHR( m_commandBuffer,
reinterpret_cast<const VkVideoCodingControlInfoKHR *>( &codingControlInfo ) );
}
@@ -8864,6 +9434,7 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_INLINE void CommandBuffer::decodeVideoKHR( const VULKAN_HPP_NAMESPACE::VideoDecodeInfoKHR * pFrameInfo,
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
d.vkCmdDecodeVideoKHR( m_commandBuffer, reinterpret_cast<const VkVideoDecodeInfoKHR *>( pFrameInfo ) );
}
@@ -8872,6 +9443,7 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_INLINE void CommandBuffer::decodeVideoKHR( const VideoDecodeInfoKHR & frameInfo,
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
d.vkCmdDecodeVideoKHR( m_commandBuffer, reinterpret_cast<const VkVideoDecodeInfoKHR *>( &frameInfo ) );
}
# endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
@@ -8888,6 +9460,7 @@ namespace VULKAN_HPP_NAMESPACE
const VULKAN_HPP_NAMESPACE::DeviceSize * pSizes,
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
d.vkCmdBindTransformFeedbackBuffersEXT( m_commandBuffer,
firstBinding,
bindingCount,
@@ -8905,6 +9478,7 @@ namespace VULKAN_HPP_NAMESPACE
ArrayProxy<const VULKAN_HPP_NAMESPACE::DeviceSize> const & sizes,
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT_WHEN_NO_EXCEPTIONS
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
# ifdef VULKAN_HPP_NO_EXCEPTIONS
VULKAN_HPP_ASSERT( buffers.size() == offsets.size() );
VULKAN_HPP_ASSERT( sizes.empty() || buffers.size() == sizes.size() );
@@ -8938,6 +9512,7 @@ namespace VULKAN_HPP_NAMESPACE
const VULKAN_HPP_NAMESPACE::DeviceSize * pCounterBufferOffsets,
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
d.vkCmdBeginTransformFeedbackEXT( m_commandBuffer,
firstCounterBuffer,
counterBufferCount,
@@ -8953,6 +9528,7 @@ namespace VULKAN_HPP_NAMESPACE
ArrayProxy<const VULKAN_HPP_NAMESPACE::DeviceSize> const & counterBufferOffsets,
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT_WHEN_NO_EXCEPTIONS
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
# ifdef VULKAN_HPP_NO_EXCEPTIONS
VULKAN_HPP_ASSERT( counterBufferOffsets.empty() || counterBuffers.size() == counterBufferOffsets.size() );
# else
@@ -8980,6 +9556,7 @@ namespace VULKAN_HPP_NAMESPACE
const VULKAN_HPP_NAMESPACE::DeviceSize * pCounterBufferOffsets,
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
d.vkCmdEndTransformFeedbackEXT( m_commandBuffer,
firstCounterBuffer,
counterBufferCount,
@@ -8995,6 +9572,7 @@ namespace VULKAN_HPP_NAMESPACE
ArrayProxy<const VULKAN_HPP_NAMESPACE::DeviceSize> const & counterBufferOffsets,
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT_WHEN_NO_EXCEPTIONS
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
# ifdef VULKAN_HPP_NO_EXCEPTIONS
VULKAN_HPP_ASSERT( counterBufferOffsets.empty() || counterBuffers.size() == counterBufferOffsets.size() );
# else
@@ -9021,6 +9599,7 @@ namespace VULKAN_HPP_NAMESPACE
uint32_t index,
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
d.vkCmdBeginQueryIndexedEXT(
m_commandBuffer, static_cast<VkQueryPool>( queryPool ), query, static_cast<VkQueryControlFlags>( flags ), index );
}
@@ -9031,6 +9610,7 @@ namespace VULKAN_HPP_NAMESPACE
uint32_t index,
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
d.vkCmdEndQueryIndexedEXT( m_commandBuffer, static_cast<VkQueryPool>( queryPool ), query, index );
}
@@ -9043,6 +9623,7 @@ namespace VULKAN_HPP_NAMESPACE
uint32_t vertexStride,
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
d.vkCmdDrawIndirectByteCountEXT( m_commandBuffer,
instanceCount,
firstInstance,
@@ -9061,6 +9642,7 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_NAMESPACE::CuModuleNVX * pModule,
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
return static_cast<Result>( d.vkCreateCuModuleNVX( m_device,
reinterpret_cast<const VkCuModuleCreateInfoNVX *>( pCreateInfo ),
reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ),
@@ -9075,6 +9657,7 @@ namespace VULKAN_HPP_NAMESPACE
Optional<const AllocationCallbacks> allocator,
Dispatch const & d ) const
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
VULKAN_HPP_NAMESPACE::CuModuleNVX module;
Result result = static_cast<Result>(
d.vkCreateCuModuleNVX( m_device,
@@ -9093,6 +9676,7 @@ namespace VULKAN_HPP_NAMESPACE
Optional<const AllocationCallbacks> allocator,
Dispatch const & d ) const
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
VULKAN_HPP_NAMESPACE::CuModuleNVX module;
Result result = static_cast<Result>(
d.vkCreateCuModuleNVX( m_device,
@@ -9114,6 +9698,7 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_NAMESPACE::CuFunctionNVX * pFunction,
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
return static_cast<Result>(
d.vkCreateCuFunctionNVX( m_device,
reinterpret_cast<const VkCuFunctionCreateInfoNVX *>( pCreateInfo ),
@@ -9129,6 +9714,7 @@ namespace VULKAN_HPP_NAMESPACE
Optional<const AllocationCallbacks> allocator,
Dispatch const & d ) const
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
VULKAN_HPP_NAMESPACE::CuFunctionNVX function;
Result result = static_cast<Result>(
d.vkCreateCuFunctionNVX( m_device,
@@ -9147,6 +9733,7 @@ namespace VULKAN_HPP_NAMESPACE
Optional<const AllocationCallbacks> allocator,
Dispatch const & d ) const
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
VULKAN_HPP_NAMESPACE::CuFunctionNVX function;
Result result = static_cast<Result>(
d.vkCreateCuFunctionNVX( m_device,
@@ -9166,6 +9753,7 @@ namespace VULKAN_HPP_NAMESPACE
const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
d.vkDestroyCuModuleNVX(
m_device, static_cast<VkCuModuleNVX>( module ), reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ) );
}
@@ -9176,6 +9764,7 @@ namespace VULKAN_HPP_NAMESPACE
Optional<const AllocationCallbacks> allocator,
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
d.vkDestroyCuModuleNVX( m_device,
static_cast<VkCuModuleNVX>( module ),
reinterpret_cast<const VkAllocationCallbacks *>(
@@ -9188,6 +9777,7 @@ namespace VULKAN_HPP_NAMESPACE
const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
d.vkDestroyCuModuleNVX(
m_device, static_cast<VkCuModuleNVX>( module ), reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ) );
}
@@ -9198,6 +9788,7 @@ namespace VULKAN_HPP_NAMESPACE
Optional<const AllocationCallbacks> allocator,
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
d.vkDestroyCuModuleNVX( m_device,
static_cast<VkCuModuleNVX>( module ),
reinterpret_cast<const VkAllocationCallbacks *>(
@@ -9210,6 +9801,7 @@ namespace VULKAN_HPP_NAMESPACE
const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
d.vkDestroyCuFunctionNVX( m_device,
static_cast<VkCuFunctionNVX>( function ),
reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ) );
@@ -9221,6 +9813,7 @@ namespace VULKAN_HPP_NAMESPACE
Optional<const AllocationCallbacks> allocator,
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
d.vkDestroyCuFunctionNVX( m_device,
static_cast<VkCuFunctionNVX>( function ),
reinterpret_cast<const VkAllocationCallbacks *>(
@@ -9233,6 +9826,7 @@ namespace VULKAN_HPP_NAMESPACE
const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
d.vkDestroyCuFunctionNVX( m_device,
static_cast<VkCuFunctionNVX>( function ),
reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ) );
@@ -9244,6 +9838,7 @@ namespace VULKAN_HPP_NAMESPACE
Optional<const AllocationCallbacks> allocator,
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
d.vkDestroyCuFunctionNVX( m_device,
static_cast<VkCuFunctionNVX>( function ),
reinterpret_cast<const VkAllocationCallbacks *>(
@@ -9255,6 +9850,7 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_INLINE void CommandBuffer::cuLaunchKernelNVX( const VULKAN_HPP_NAMESPACE::CuLaunchInfoNVX * pLaunchInfo,
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
d.vkCmdCuLaunchKernelNVX( m_commandBuffer, reinterpret_cast<const VkCuLaunchInfoNVX *>( pLaunchInfo ) );
}
@@ -9263,6 +9859,7 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_INLINE void CommandBuffer::cuLaunchKernelNVX( const CuLaunchInfoNVX & launchInfo,
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
d.vkCmdCuLaunchKernelNVX( m_commandBuffer, reinterpret_cast<const VkCuLaunchInfoNVX *>( &launchInfo ) );
}
#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
@@ -9273,6 +9870,7 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_INLINE uint32_t Device::getImageViewHandleNVX( const VULKAN_HPP_NAMESPACE::ImageViewHandleInfoNVX * pInfo,
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
return d.vkGetImageViewHandleNVX( m_device, reinterpret_cast<const VkImageViewHandleInfoNVX *>( pInfo ) );
}
@@ -9281,6 +9879,7 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_INLINE uint32_t Device::getImageViewHandleNVX( const ImageViewHandleInfoNVX & info,
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
return d.vkGetImageViewHandleNVX( m_device, reinterpret_cast<const VkImageViewHandleInfoNVX *>( &info ) );
}
#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
@@ -9291,6 +9890,7 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_NAMESPACE::ImageViewAddressPropertiesNVX * pProperties,
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
return static_cast<Result>(
d.vkGetImageViewAddressNVX( m_device,
static_cast<VkImageView>( imageView ),
@@ -9303,6 +9903,7 @@ namespace VULKAN_HPP_NAMESPACE
typename ResultValueType<VULKAN_HPP_NAMESPACE::ImageViewAddressPropertiesNVX>::type
Device::getImageViewAddressNVX( VULKAN_HPP_NAMESPACE::ImageView imageView, Dispatch const & d ) const
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
VULKAN_HPP_NAMESPACE::ImageViewAddressPropertiesNVX properties;
Result result = static_cast<Result>(
d.vkGetImageViewAddressNVX( m_device,
@@ -9323,6 +9924,7 @@ namespace VULKAN_HPP_NAMESPACE
uint32_t stride,
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
d.vkCmdDrawIndirectCountAMD( m_commandBuffer,
static_cast<VkBuffer>( buffer ),
static_cast<VkDeviceSize>( offset ),
@@ -9341,6 +9943,7 @@ namespace VULKAN_HPP_NAMESPACE
uint32_t stride,
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
d.vkCmdDrawIndexedIndirectCountAMD( m_commandBuffer,
static_cast<VkBuffer>( buffer ),
static_cast<VkDeviceSize>( offset ),
@@ -9361,6 +9964,7 @@ namespace VULKAN_HPP_NAMESPACE
void * pInfo,
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
return static_cast<Result>( d.vkGetShaderInfoAMD( m_device,
static_cast<VkPipeline>( pipeline ),
static_cast<VkShaderStageFlagBits>( shaderStage ),
@@ -9377,6 +9981,7 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_NAMESPACE::ShaderInfoTypeAMD infoType,
Dispatch const & d ) const
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
std::vector<uint8_t, Uint8_tAllocator> info;
size_t infoSize;
Result result;
@@ -9418,6 +10023,7 @@ namespace VULKAN_HPP_NAMESPACE
Uint8_tAllocator & uint8_tAllocator,
Dispatch const & d ) const
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
std::vector<uint8_t, Uint8_tAllocator> info( uint8_tAllocator );
size_t infoSize;
Result result;
@@ -9459,6 +10065,7 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_NAMESPACE::SurfaceKHR * pSurface,
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
return static_cast<Result>( d.vkCreateStreamDescriptorSurfaceGGP(
m_instance,
reinterpret_cast<const VkStreamDescriptorSurfaceCreateInfoGGP *>( pCreateInfo ),
@@ -9474,6 +10081,7 @@ namespace VULKAN_HPP_NAMESPACE
Optional<const AllocationCallbacks> allocator,
Dispatch const & d ) const
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
VULKAN_HPP_NAMESPACE::SurfaceKHR surface;
Result result = static_cast<Result>( d.vkCreateStreamDescriptorSurfaceGGP(
m_instance,
@@ -9493,6 +10101,7 @@ namespace VULKAN_HPP_NAMESPACE
Optional<const AllocationCallbacks> allocator,
Dispatch const & d ) const
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
VULKAN_HPP_NAMESPACE::SurfaceKHR surface;
Result result = static_cast<Result>( d.vkCreateStreamDescriptorSurfaceGGP(
m_instance,
@@ -9521,6 +10130,7 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_NAMESPACE::ExternalImageFormatPropertiesNV * pExternalImageFormatProperties,
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
return static_cast<Result>( d.vkGetPhysicalDeviceExternalImageFormatPropertiesNV(
m_physicalDevice,
static_cast<VkFormat>( format ),
@@ -9545,6 +10155,7 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagsNV externalHandleType,
Dispatch const & d ) const
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
VULKAN_HPP_NAMESPACE::ExternalImageFormatPropertiesNV externalImageFormatProperties;
Result result = static_cast<Result>( d.vkGetPhysicalDeviceExternalImageFormatPropertiesNV(
m_physicalDevice,
@@ -9571,6 +10182,7 @@ namespace VULKAN_HPP_NAMESPACE
HANDLE * pHandle,
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
return static_cast<Result>(
d.vkGetMemoryWin32HandleNV( m_device,
static_cast<VkDeviceMemory>( memory ),
@@ -9585,6 +10197,7 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagsNV handleType,
Dispatch const & d ) const
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
HANDLE handle;
Result result =
static_cast<Result>( d.vkGetMemoryWin32HandleNV( m_device,
@@ -9602,6 +10215,7 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_INLINE void PhysicalDevice::getFeatures2KHR( VULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures2 * pFeatures,
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
d.vkGetPhysicalDeviceFeatures2KHR( m_physicalDevice, reinterpret_cast<VkPhysicalDeviceFeatures2 *>( pFeatures ) );
}
@@ -9610,6 +10224,7 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures2
PhysicalDevice::getFeatures2KHR( Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
VULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures2 features;
d.vkGetPhysicalDeviceFeatures2KHR( m_physicalDevice, reinterpret_cast<VkPhysicalDeviceFeatures2 *>( &features ) );
return features;
@@ -9619,6 +10234,7 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE StructureChain<X, Y, Z...>
PhysicalDevice::getFeatures2KHR( Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
StructureChain<X, Y, Z...> structureChain;
VULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures2 & features =
structureChain.template get<VULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures2>();
@@ -9632,6 +10248,7 @@ namespace VULKAN_HPP_NAMESPACE
PhysicalDevice::getProperties2KHR( VULKAN_HPP_NAMESPACE::PhysicalDeviceProperties2 * pProperties,
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
d.vkGetPhysicalDeviceProperties2KHR( m_physicalDevice,
reinterpret_cast<VkPhysicalDeviceProperties2 *>( pProperties ) );
}
@@ -9641,6 +10258,7 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::PhysicalDeviceProperties2
PhysicalDevice::getProperties2KHR( Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
VULKAN_HPP_NAMESPACE::PhysicalDeviceProperties2 properties;
d.vkGetPhysicalDeviceProperties2KHR( m_physicalDevice,
reinterpret_cast<VkPhysicalDeviceProperties2 *>( &properties ) );
@@ -9651,6 +10269,7 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE StructureChain<X, Y, Z...>
PhysicalDevice::getProperties2KHR( Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
StructureChain<X, Y, Z...> structureChain;
VULKAN_HPP_NAMESPACE::PhysicalDeviceProperties2 & properties =
structureChain.template get<VULKAN_HPP_NAMESPACE::PhysicalDeviceProperties2>();
@@ -9666,6 +10285,7 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_NAMESPACE::FormatProperties2 * pFormatProperties,
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
d.vkGetPhysicalDeviceFormatProperties2KHR(
m_physicalDevice, static_cast<VkFormat>( format ), reinterpret_cast<VkFormatProperties2 *>( pFormatProperties ) );
}
@@ -9676,6 +10296,7 @@ namespace VULKAN_HPP_NAMESPACE
PhysicalDevice::getFormatProperties2KHR( VULKAN_HPP_NAMESPACE::Format format,
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
VULKAN_HPP_NAMESPACE::FormatProperties2 formatProperties;
d.vkGetPhysicalDeviceFormatProperties2KHR(
m_physicalDevice, static_cast<VkFormat>( format ), reinterpret_cast<VkFormatProperties2 *>( &formatProperties ) );
@@ -9687,6 +10308,7 @@ namespace VULKAN_HPP_NAMESPACE
PhysicalDevice::getFormatProperties2KHR( VULKAN_HPP_NAMESPACE::Format format,
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
StructureChain<X, Y, Z...> structureChain;
VULKAN_HPP_NAMESPACE::FormatProperties2 & formatProperties =
structureChain.template get<VULKAN_HPP_NAMESPACE::FormatProperties2>();
@@ -9702,6 +10324,7 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_NAMESPACE::ImageFormatProperties2 * pImageFormatProperties,
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
return static_cast<Result>( d.vkGetPhysicalDeviceImageFormatProperties2KHR(
m_physicalDevice,
reinterpret_cast<const VkPhysicalDeviceImageFormatInfo2 *>( pImageFormatInfo ),
@@ -9715,6 +10338,7 @@ namespace VULKAN_HPP_NAMESPACE
PhysicalDevice::getImageFormatProperties2KHR( const PhysicalDeviceImageFormatInfo2 & imageFormatInfo,
Dispatch const & d ) const
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
VULKAN_HPP_NAMESPACE::ImageFormatProperties2 imageFormatProperties;
Result result = static_cast<Result>( d.vkGetPhysicalDeviceImageFormatProperties2KHR(
m_physicalDevice,
@@ -9729,6 +10353,7 @@ namespace VULKAN_HPP_NAMESPACE
PhysicalDevice::getImageFormatProperties2KHR( const PhysicalDeviceImageFormatInfo2 & imageFormatInfo,
Dispatch const & d ) const
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
StructureChain<X, Y, Z...> structureChain;
VULKAN_HPP_NAMESPACE::ImageFormatProperties2 & imageFormatProperties =
structureChain.template get<VULKAN_HPP_NAMESPACE::ImageFormatProperties2>();
@@ -9747,6 +10372,7 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_NAMESPACE::QueueFamilyProperties2 * pQueueFamilyProperties,
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
d.vkGetPhysicalDeviceQueueFamilyProperties2KHR(
m_physicalDevice,
pQueueFamilyPropertyCount,
@@ -9758,6 +10384,7 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE std::vector<QueueFamilyProperties2, QueueFamilyProperties2Allocator>
PhysicalDevice::getQueueFamilyProperties2KHR( Dispatch const & d ) const
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
std::vector<QueueFamilyProperties2, QueueFamilyProperties2Allocator> queueFamilyProperties;
uint32_t queueFamilyPropertyCount;
d.vkGetPhysicalDeviceQueueFamilyProperties2KHR( m_physicalDevice, &queueFamilyPropertyCount, nullptr );
@@ -9778,6 +10405,7 @@ namespace VULKAN_HPP_NAMESPACE
PhysicalDevice::getQueueFamilyProperties2KHR( QueueFamilyProperties2Allocator & queueFamilyProperties2Allocator,
Dispatch const & d ) const
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
std::vector<QueueFamilyProperties2, QueueFamilyProperties2Allocator> queueFamilyProperties(
queueFamilyProperties2Allocator );
uint32_t queueFamilyPropertyCount;
@@ -9795,6 +10423,7 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE std::vector<StructureChain, StructureChainAllocator>
PhysicalDevice::getQueueFamilyProperties2KHR( Dispatch const & d ) const
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
uint32_t queueFamilyPropertyCount;
d.vkGetPhysicalDeviceQueueFamilyProperties2KHR( m_physicalDevice, &queueFamilyPropertyCount, nullptr );
std::vector<StructureChain, StructureChainAllocator> returnVector( queueFamilyPropertyCount );
@@ -9825,6 +10454,7 @@ namespace VULKAN_HPP_NAMESPACE
PhysicalDevice::getQueueFamilyProperties2KHR( StructureChainAllocator & structureChainAllocator,
Dispatch const & d ) const
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
uint32_t queueFamilyPropertyCount;
d.vkGetPhysicalDeviceQueueFamilyProperties2KHR( m_physicalDevice, &queueFamilyPropertyCount, nullptr );
std::vector<StructureChain, StructureChainAllocator> returnVector( queueFamilyPropertyCount,
@@ -9853,6 +10483,7 @@ namespace VULKAN_HPP_NAMESPACE
PhysicalDevice::getMemoryProperties2KHR( VULKAN_HPP_NAMESPACE::PhysicalDeviceMemoryProperties2 * pMemoryProperties,
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
d.vkGetPhysicalDeviceMemoryProperties2KHR(
m_physicalDevice, reinterpret_cast<VkPhysicalDeviceMemoryProperties2 *>( pMemoryProperties ) );
}
@@ -9862,6 +10493,7 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::PhysicalDeviceMemoryProperties2
PhysicalDevice::getMemoryProperties2KHR( Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
VULKAN_HPP_NAMESPACE::PhysicalDeviceMemoryProperties2 memoryProperties;
d.vkGetPhysicalDeviceMemoryProperties2KHR(
m_physicalDevice, reinterpret_cast<VkPhysicalDeviceMemoryProperties2 *>( &memoryProperties ) );
@@ -9872,6 +10504,7 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE StructureChain<X, Y, Z...>
PhysicalDevice::getMemoryProperties2KHR( Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
StructureChain<X, Y, Z...> structureChain;
VULKAN_HPP_NAMESPACE::PhysicalDeviceMemoryProperties2 & memoryProperties =
structureChain.template get<VULKAN_HPP_NAMESPACE::PhysicalDeviceMemoryProperties2>();
@@ -9888,6 +10521,7 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_NAMESPACE::SparseImageFormatProperties2 * pProperties,
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
d.vkGetPhysicalDeviceSparseImageFormatProperties2KHR(
m_physicalDevice,
reinterpret_cast<const VkPhysicalDeviceSparseImageFormatInfo2 *>( pFormatInfo ),
@@ -9902,6 +10536,7 @@ namespace VULKAN_HPP_NAMESPACE
PhysicalDevice::getSparseImageFormatProperties2KHR( const PhysicalDeviceSparseImageFormatInfo2 & formatInfo,
Dispatch const & d ) const
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
std::vector<SparseImageFormatProperties2, SparseImageFormatProperties2Allocator> properties;
uint32_t propertyCount;
d.vkGetPhysicalDeviceSparseImageFormatProperties2KHR(
@@ -9931,6 +10566,7 @@ namespace VULKAN_HPP_NAMESPACE
SparseImageFormatProperties2Allocator & sparseImageFormatProperties2Allocator,
Dispatch const & d ) const
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
std::vector<SparseImageFormatProperties2, SparseImageFormatProperties2Allocator> properties(
sparseImageFormatProperties2Allocator );
uint32_t propertyCount;
@@ -9960,6 +10596,7 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_NAMESPACE::PeerMemoryFeatureFlags * pPeerMemoryFeatures,
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
d.vkGetDeviceGroupPeerMemoryFeaturesKHR( m_device,
heapIndex,
localDeviceIndex,
@@ -9975,6 +10612,7 @@ namespace VULKAN_HPP_NAMESPACE
uint32_t remoteDeviceIndex,
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
VULKAN_HPP_NAMESPACE::PeerMemoryFeatureFlags peerMemoryFeatures;
d.vkGetDeviceGroupPeerMemoryFeaturesKHR( m_device,
heapIndex,
@@ -9989,6 +10627,7 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_INLINE void CommandBuffer::setDeviceMaskKHR( uint32_t deviceMask,
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
d.vkCmdSetDeviceMaskKHR( m_commandBuffer, deviceMask );
}
@@ -10001,6 +10640,7 @@ namespace VULKAN_HPP_NAMESPACE
uint32_t groupCountZ,
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
d.vkCmdDispatchBaseKHR(
m_commandBuffer, baseGroupX, baseGroupY, baseGroupZ, groupCountX, groupCountY, groupCountZ );
}
@@ -10015,6 +10655,7 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_NAMESPACE::SurfaceKHR * pSurface,
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
return static_cast<Result>( d.vkCreateViSurfaceNN( m_instance,
reinterpret_cast<const VkViSurfaceCreateInfoNN *>( pCreateInfo ),
reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ),
@@ -10029,6 +10670,7 @@ namespace VULKAN_HPP_NAMESPACE
Optional<const AllocationCallbacks> allocator,
Dispatch const & d ) const
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
VULKAN_HPP_NAMESPACE::SurfaceKHR surface;
Result result = static_cast<Result>(
d.vkCreateViSurfaceNN( m_instance,
@@ -10047,6 +10689,7 @@ namespace VULKAN_HPP_NAMESPACE
Optional<const AllocationCallbacks> allocator,
Dispatch const & d ) const
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
VULKAN_HPP_NAMESPACE::SurfaceKHR surface;
Result result = static_cast<Result>(
d.vkCreateViSurfaceNN( m_instance,
@@ -10069,6 +10712,7 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_NAMESPACE::CommandPoolTrimFlags flags,
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
d.vkTrimCommandPoolKHR(
m_device, static_cast<VkCommandPool>( commandPool ), static_cast<VkCommandPoolTrimFlags>( flags ) );
}
@@ -10081,6 +10725,7 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_NAMESPACE::PhysicalDeviceGroupProperties * pPhysicalDeviceGroupProperties,
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
return static_cast<Result>( d.vkEnumeratePhysicalDeviceGroupsKHR(
m_instance,
pPhysicalDeviceGroupCount,
@@ -10093,6 +10738,7 @@ namespace VULKAN_HPP_NAMESPACE
typename ResultValueType<std::vector<PhysicalDeviceGroupProperties, PhysicalDeviceGroupPropertiesAllocator>>::type
Instance::enumeratePhysicalDeviceGroupsKHR( Dispatch const & d ) const
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
std::vector<PhysicalDeviceGroupProperties, PhysicalDeviceGroupPropertiesAllocator> physicalDeviceGroupProperties;
uint32_t physicalDeviceGroupCount;
Result result;
@@ -10129,6 +10775,7 @@ namespace VULKAN_HPP_NAMESPACE
Instance::enumeratePhysicalDeviceGroupsKHR(
PhysicalDeviceGroupPropertiesAllocator & physicalDeviceGroupPropertiesAllocator, Dispatch const & d ) const
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
std::vector<PhysicalDeviceGroupProperties, PhysicalDeviceGroupPropertiesAllocator> physicalDeviceGroupProperties(
physicalDeviceGroupPropertiesAllocator );
uint32_t physicalDeviceGroupCount;
@@ -10165,6 +10812,7 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_NAMESPACE::ExternalBufferProperties * pExternalBufferProperties,
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
d.vkGetPhysicalDeviceExternalBufferPropertiesKHR(
m_physicalDevice,
reinterpret_cast<const VkPhysicalDeviceExternalBufferInfo *>( pExternalBufferInfo ),
@@ -10177,6 +10825,7 @@ namespace VULKAN_HPP_NAMESPACE
PhysicalDevice::getExternalBufferPropertiesKHR( const PhysicalDeviceExternalBufferInfo & externalBufferInfo,
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
VULKAN_HPP_NAMESPACE::ExternalBufferProperties externalBufferProperties;
d.vkGetPhysicalDeviceExternalBufferPropertiesKHR(
m_physicalDevice,
@@ -10195,6 +10844,7 @@ namespace VULKAN_HPP_NAMESPACE
HANDLE * pHandle,
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
return static_cast<Result>( d.vkGetMemoryWin32HandleKHR(
m_device, reinterpret_cast<const VkMemoryGetWin32HandleInfoKHR *>( pGetWin32HandleInfo ), pHandle ) );
}
@@ -10204,6 +10854,7 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType<HANDLE>::type
Device::getMemoryWin32HandleKHR( const MemoryGetWin32HandleInfoKHR & getWin32HandleInfo, Dispatch const & d ) const
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
HANDLE handle;
Result result = static_cast<Result>( d.vkGetMemoryWin32HandleKHR(
m_device, reinterpret_cast<const VkMemoryGetWin32HandleInfoKHR *>( &getWin32HandleInfo ), &handle ) );
@@ -10218,6 +10869,7 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_NAMESPACE::MemoryWin32HandlePropertiesKHR * pMemoryWin32HandleProperties,
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
return static_cast<Result>( d.vkGetMemoryWin32HandlePropertiesKHR(
m_device,
static_cast<VkExternalMemoryHandleTypeFlagBits>( handleType ),
@@ -10233,6 +10885,7 @@ namespace VULKAN_HPP_NAMESPACE
HANDLE handle,
Dispatch const & d ) const
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
VULKAN_HPP_NAMESPACE::MemoryWin32HandlePropertiesKHR memoryWin32HandleProperties;
Result result = static_cast<Result>( d.vkGetMemoryWin32HandlePropertiesKHR(
m_device,
@@ -10253,6 +10906,7 @@ namespace VULKAN_HPP_NAMESPACE
int * pFd,
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
return static_cast<Result>(
d.vkGetMemoryFdKHR( m_device, reinterpret_cast<const VkMemoryGetFdInfoKHR *>( pGetFdInfo ), pFd ) );
}
@@ -10262,6 +10916,7 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType<int>::type
Device::getMemoryFdKHR( const MemoryGetFdInfoKHR & getFdInfo, Dispatch const & d ) const
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
int fd;
Result result = static_cast<Result>(
d.vkGetMemoryFdKHR( m_device, reinterpret_cast<const VkMemoryGetFdInfoKHR *>( &getFdInfo ), &fd ) );
@@ -10276,6 +10931,7 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_NAMESPACE::MemoryFdPropertiesKHR * pMemoryFdProperties,
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
return static_cast<Result>(
d.vkGetMemoryFdPropertiesKHR( m_device,
static_cast<VkExternalMemoryHandleTypeFlagBits>( handleType ),
@@ -10291,6 +10947,7 @@ namespace VULKAN_HPP_NAMESPACE
int fd,
Dispatch const & d ) const
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
VULKAN_HPP_NAMESPACE::MemoryFdPropertiesKHR memoryFdProperties;
Result result = static_cast<Result>(
d.vkGetMemoryFdPropertiesKHR( m_device,
@@ -10310,6 +10967,7 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_NAMESPACE::ExternalSemaphoreProperties * pExternalSemaphoreProperties,
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
d.vkGetPhysicalDeviceExternalSemaphorePropertiesKHR(
m_physicalDevice,
reinterpret_cast<const VkPhysicalDeviceExternalSemaphoreInfo *>( pExternalSemaphoreInfo ),
@@ -10322,6 +10980,7 @@ namespace VULKAN_HPP_NAMESPACE
PhysicalDevice::getExternalSemaphorePropertiesKHR(
const PhysicalDeviceExternalSemaphoreInfo & externalSemaphoreInfo, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
VULKAN_HPP_NAMESPACE::ExternalSemaphoreProperties externalSemaphoreProperties;
d.vkGetPhysicalDeviceExternalSemaphorePropertiesKHR(
m_physicalDevice,
@@ -10339,6 +10998,7 @@ namespace VULKAN_HPP_NAMESPACE
const VULKAN_HPP_NAMESPACE::ImportSemaphoreWin32HandleInfoKHR * pImportSemaphoreWin32HandleInfo,
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
return static_cast<Result>( d.vkImportSemaphoreWin32HandleKHR(
m_device, reinterpret_cast<const VkImportSemaphoreWin32HandleInfoKHR *>( pImportSemaphoreWin32HandleInfo ) ) );
}
@@ -10349,6 +11009,7 @@ namespace VULKAN_HPP_NAMESPACE
Device::importSemaphoreWin32HandleKHR( const ImportSemaphoreWin32HandleInfoKHR & importSemaphoreWin32HandleInfo,
Dispatch const & d ) const
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
Result result = static_cast<Result>( d.vkImportSemaphoreWin32HandleKHR(
m_device, reinterpret_cast<const VkImportSemaphoreWin32HandleInfoKHR *>( &importSemaphoreWin32HandleInfo ) ) );
return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING "::Device::importSemaphoreWin32HandleKHR" );
@@ -10361,6 +11022,7 @@ namespace VULKAN_HPP_NAMESPACE
HANDLE * pHandle,
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
return static_cast<Result>( d.vkGetSemaphoreWin32HandleKHR(
m_device, reinterpret_cast<const VkSemaphoreGetWin32HandleInfoKHR *>( pGetWin32HandleInfo ), pHandle ) );
}
@@ -10371,6 +11033,7 @@ namespace VULKAN_HPP_NAMESPACE
Device::getSemaphoreWin32HandleKHR( const SemaphoreGetWin32HandleInfoKHR & getWin32HandleInfo,
Dispatch const & d ) const
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
HANDLE handle;
Result result = static_cast<Result>( d.vkGetSemaphoreWin32HandleKHR(
m_device, reinterpret_cast<const VkSemaphoreGetWin32HandleInfoKHR *>( &getWin32HandleInfo ), &handle ) );
@@ -10386,6 +11049,7 @@ namespace VULKAN_HPP_NAMESPACE
Device::importSemaphoreFdKHR( const VULKAN_HPP_NAMESPACE::ImportSemaphoreFdInfoKHR * pImportSemaphoreFdInfo,
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
return static_cast<Result>( d.vkImportSemaphoreFdKHR(
m_device, reinterpret_cast<const VkImportSemaphoreFdInfoKHR *>( pImportSemaphoreFdInfo ) ) );
}
@@ -10395,6 +11059,7 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType<void>::type
Device::importSemaphoreFdKHR( const ImportSemaphoreFdInfoKHR & importSemaphoreFdInfo, Dispatch const & d ) const
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
Result result = static_cast<Result>( d.vkImportSemaphoreFdKHR(
m_device, reinterpret_cast<const VkImportSemaphoreFdInfoKHR *>( &importSemaphoreFdInfo ) ) );
return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING "::Device::importSemaphoreFdKHR" );
@@ -10407,6 +11072,7 @@ namespace VULKAN_HPP_NAMESPACE
int * pFd,
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
return static_cast<Result>(
d.vkGetSemaphoreFdKHR( m_device, reinterpret_cast<const VkSemaphoreGetFdInfoKHR *>( pGetFdInfo ), pFd ) );
}
@@ -10416,6 +11082,7 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType<int>::type
Device::getSemaphoreFdKHR( const SemaphoreGetFdInfoKHR & getFdInfo, Dispatch const & d ) const
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
int fd;
Result result = static_cast<Result>(
d.vkGetSemaphoreFdKHR( m_device, reinterpret_cast<const VkSemaphoreGetFdInfoKHR *>( &getFdInfo ), &fd ) );
@@ -10434,6 +11101,7 @@ namespace VULKAN_HPP_NAMESPACE
const VULKAN_HPP_NAMESPACE::WriteDescriptorSet * pDescriptorWrites,
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
d.vkCmdPushDescriptorSetKHR( m_commandBuffer,
static_cast<VkPipelineBindPoint>( pipelineBindPoint ),
static_cast<VkPipelineLayout>( layout ),
@@ -10451,6 +11119,7 @@ namespace VULKAN_HPP_NAMESPACE
ArrayProxy<const VULKAN_HPP_NAMESPACE::WriteDescriptorSet> const & descriptorWrites,
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
d.vkCmdPushDescriptorSetKHR( m_commandBuffer,
static_cast<VkPipelineBindPoint>( pipelineBindPoint ),
static_cast<VkPipelineLayout>( layout ),
@@ -10468,6 +11137,7 @@ namespace VULKAN_HPP_NAMESPACE
const void * pData,
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
d.vkCmdPushDescriptorSetWithTemplateKHR( m_commandBuffer,
static_cast<VkDescriptorUpdateTemplate>( descriptorUpdateTemplate ),
static_cast<VkPipelineLayout>( layout ),
@@ -10482,6 +11152,7 @@ namespace VULKAN_HPP_NAMESPACE
const VULKAN_HPP_NAMESPACE::ConditionalRenderingBeginInfoEXT * pConditionalRenderingBegin,
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
d.vkCmdBeginConditionalRenderingEXT(
m_commandBuffer, reinterpret_cast<const VkConditionalRenderingBeginInfoEXT *>( pConditionalRenderingBegin ) );
}
@@ -10492,6 +11163,7 @@ namespace VULKAN_HPP_NAMESPACE
CommandBuffer::beginConditionalRenderingEXT( const ConditionalRenderingBeginInfoEXT & conditionalRenderingBegin,
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
d.vkCmdBeginConditionalRenderingEXT(
m_commandBuffer, reinterpret_cast<const VkConditionalRenderingBeginInfoEXT *>( &conditionalRenderingBegin ) );
}
@@ -10500,6 +11172,7 @@ namespace VULKAN_HPP_NAMESPACE
template <typename Dispatch>
VULKAN_HPP_INLINE void CommandBuffer::endConditionalRenderingEXT( Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
d.vkCmdEndConditionalRenderingEXT( m_commandBuffer );
}
@@ -10512,6 +11185,7 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplate * pDescriptorUpdateTemplate,
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
return static_cast<Result>( d.vkCreateDescriptorUpdateTemplateKHR(
m_device,
reinterpret_cast<const VkDescriptorUpdateTemplateCreateInfo *>( pCreateInfo ),
@@ -10527,6 +11201,7 @@ namespace VULKAN_HPP_NAMESPACE
Optional<const AllocationCallbacks> allocator,
Dispatch const & d ) const
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplate descriptorUpdateTemplate;
Result result = static_cast<Result>( d.vkCreateDescriptorUpdateTemplateKHR(
m_device,
@@ -10546,6 +11221,7 @@ namespace VULKAN_HPP_NAMESPACE
Optional<const AllocationCallbacks> allocator,
Dispatch const & d ) const
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplate descriptorUpdateTemplate;
Result result = static_cast<Result>( d.vkCreateDescriptorUpdateTemplateKHR(
m_device,
@@ -10569,6 +11245,7 @@ namespace VULKAN_HPP_NAMESPACE
const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
d.vkDestroyDescriptorUpdateTemplateKHR( m_device,
static_cast<VkDescriptorUpdateTemplate>( descriptorUpdateTemplate ),
reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ) );
@@ -10581,6 +11258,7 @@ namespace VULKAN_HPP_NAMESPACE
Optional<const AllocationCallbacks> allocator,
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
d.vkDestroyDescriptorUpdateTemplateKHR(
m_device,
static_cast<VkDescriptorUpdateTemplate>( descriptorUpdateTemplate ),
@@ -10596,6 +11274,7 @@ namespace VULKAN_HPP_NAMESPACE
const void * pData,
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
d.vkUpdateDescriptorSetWithTemplateKHR( m_device,
static_cast<VkDescriptorSet>( descriptorSet ),
static_cast<VkDescriptorUpdateTemplate>( descriptorUpdateTemplate ),
@@ -10611,6 +11290,7 @@ namespace VULKAN_HPP_NAMESPACE
const VULKAN_HPP_NAMESPACE::ViewportWScalingNV * pViewportWScalings,
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
d.vkCmdSetViewportWScalingNV( m_commandBuffer,
firstViewport,
viewportCount,
@@ -10624,6 +11304,7 @@ namespace VULKAN_HPP_NAMESPACE
ArrayProxy<const VULKAN_HPP_NAMESPACE::ViewportWScalingNV> const & viewportWScalings,
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
d.vkCmdSetViewportWScalingNV( m_commandBuffer,
firstViewport,
viewportWScalings.size(),
@@ -10638,6 +11319,7 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_INLINE Result PhysicalDevice::releaseDisplayEXT( VULKAN_HPP_NAMESPACE::DisplayKHR display,
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
return static_cast<Result>( d.vkReleaseDisplayEXT( m_physicalDevice, static_cast<VkDisplayKHR>( display ) ) );
}
#else
@@ -10645,6 +11327,7 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_INLINE typename ResultValueType<void>::type
PhysicalDevice::releaseDisplayEXT( VULKAN_HPP_NAMESPACE::DisplayKHR display, Dispatch const & d ) const
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
Result result =
static_cast<Result>( d.vkReleaseDisplayEXT( m_physicalDevice, static_cast<VkDisplayKHR>( display ) ) );
return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING "::PhysicalDevice::releaseDisplayEXT" );
@@ -10658,6 +11341,7 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result PhysicalDevice::acquireXlibDisplayEXT(
Display * dpy, VULKAN_HPP_NAMESPACE::DisplayKHR display, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
return static_cast<Result>(
d.vkAcquireXlibDisplayEXT( m_physicalDevice, dpy, static_cast<VkDisplayKHR>( display ) ) );
}
@@ -10669,6 +11353,7 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_NAMESPACE::DisplayKHR display,
Dispatch const & d ) const
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
Result result =
static_cast<Result>( d.vkAcquireXlibDisplayEXT( m_physicalDevice, &dpy, static_cast<VkDisplayKHR>( display ) ) );
return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING "::PhysicalDevice::acquireXlibDisplayEXT" );
@@ -10682,6 +11367,7 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_NAMESPACE::DisplayKHR * pDisplay,
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
return static_cast<Result>(
d.vkGetRandROutputDisplayEXT( m_physicalDevice, dpy, rrOutput, reinterpret_cast<VkDisplayKHR *>( pDisplay ) ) );
}
@@ -10691,6 +11377,7 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_INLINE typename ResultValueType<VULKAN_HPP_NAMESPACE::DisplayKHR>::type
PhysicalDevice::getRandROutputDisplayEXT( Display & dpy, RROutput rrOutput, Dispatch const & d ) const
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
VULKAN_HPP_NAMESPACE::DisplayKHR display;
Result result = static_cast<Result>(
d.vkGetRandROutputDisplayEXT( m_physicalDevice, &dpy, rrOutput, reinterpret_cast<VkDisplayKHR *>( &display ) ) );
@@ -10703,6 +11390,7 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_INLINE typename ResultValueType<UniqueHandle<VULKAN_HPP_NAMESPACE::DisplayKHR, Dispatch>>::type
PhysicalDevice::getRandROutputDisplayEXTUnique( Display & dpy, RROutput rrOutput, Dispatch const & d ) const
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
VULKAN_HPP_NAMESPACE::DisplayKHR display;
Result result = static_cast<Result>(
d.vkGetRandROutputDisplayEXT( m_physicalDevice, &dpy, rrOutput, reinterpret_cast<VkDisplayKHR *>( &display ) ) );
@@ -10722,6 +11410,7 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_NAMESPACE::SurfaceCapabilities2EXT * pSurfaceCapabilities,
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
return static_cast<Result>( d.vkGetPhysicalDeviceSurfaceCapabilities2EXT(
m_physicalDevice,
static_cast<VkSurfaceKHR>( surface ),
@@ -10734,6 +11423,7 @@ namespace VULKAN_HPP_NAMESPACE
typename ResultValueType<VULKAN_HPP_NAMESPACE::SurfaceCapabilities2EXT>::type
PhysicalDevice::getSurfaceCapabilities2EXT( VULKAN_HPP_NAMESPACE::SurfaceKHR surface, Dispatch const & d ) const
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
VULKAN_HPP_NAMESPACE::SurfaceCapabilities2EXT surfaceCapabilities;
Result result = static_cast<Result>( d.vkGetPhysicalDeviceSurfaceCapabilities2EXT(
m_physicalDevice,
@@ -10752,6 +11442,7 @@ namespace VULKAN_HPP_NAMESPACE
const VULKAN_HPP_NAMESPACE::DisplayPowerInfoEXT * pDisplayPowerInfo,
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
return static_cast<Result>(
d.vkDisplayPowerControlEXT( m_device,
static_cast<VkDisplayKHR>( display ),
@@ -10763,6 +11454,7 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_INLINE typename ResultValueType<void>::type Device::displayPowerControlEXT(
VULKAN_HPP_NAMESPACE::DisplayKHR display, const DisplayPowerInfoEXT & displayPowerInfo, Dispatch const & d ) const
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
Result result = static_cast<Result>(
d.vkDisplayPowerControlEXT( m_device,
static_cast<VkDisplayKHR>( display ),
@@ -10778,6 +11470,7 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_NAMESPACE::Fence * pFence,
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
return static_cast<Result>(
d.vkRegisterDeviceEventEXT( m_device,
reinterpret_cast<const VkDeviceEventInfoEXT *>( pDeviceEventInfo ),
@@ -10792,6 +11485,7 @@ namespace VULKAN_HPP_NAMESPACE
Optional<const AllocationCallbacks> allocator,
Dispatch const & d ) const
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
VULKAN_HPP_NAMESPACE::Fence fence;
Result result = static_cast<Result>(
d.vkRegisterDeviceEventEXT( m_device,
@@ -10809,6 +11503,7 @@ namespace VULKAN_HPP_NAMESPACE
Optional<const AllocationCallbacks> allocator,
Dispatch const & d ) const
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
VULKAN_HPP_NAMESPACE::Fence fence;
Result result = static_cast<Result>(
d.vkRegisterDeviceEventEXT( m_device,
@@ -10831,6 +11526,7 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_NAMESPACE::Fence * pFence,
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
return static_cast<Result>(
d.vkRegisterDisplayEventEXT( m_device,
static_cast<VkDisplayKHR>( display ),
@@ -10847,6 +11543,7 @@ namespace VULKAN_HPP_NAMESPACE
Optional<const AllocationCallbacks> allocator,
Dispatch const & d ) const
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
VULKAN_HPP_NAMESPACE::Fence fence;
Result result = static_cast<Result>(
d.vkRegisterDisplayEventEXT( m_device,
@@ -10866,6 +11563,7 @@ namespace VULKAN_HPP_NAMESPACE
Optional<const AllocationCallbacks> allocator,
Dispatch const & d ) const
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
VULKAN_HPP_NAMESPACE::Fence fence;
Result result = static_cast<Result>(
d.vkRegisterDisplayEventEXT( m_device,
@@ -10888,6 +11586,7 @@ namespace VULKAN_HPP_NAMESPACE
uint64_t * pCounterValue,
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
return static_cast<Result>( d.vkGetSwapchainCounterEXT( m_device,
static_cast<VkSwapchainKHR>( swapchain ),
static_cast<VkSurfaceCounterFlagBitsEXT>( counter ),
@@ -10901,6 +11600,7 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_NAMESPACE::SurfaceCounterFlagBitsEXT counter,
Dispatch const & d ) const
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
uint64_t counterValue;
Result result =
static_cast<Result>( d.vkGetSwapchainCounterEXT( m_device,
@@ -10919,6 +11619,7 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_NAMESPACE::RefreshCycleDurationGOOGLE * pDisplayTimingProperties,
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
return static_cast<Result>( d.vkGetRefreshCycleDurationGOOGLE(
m_device,
static_cast<VkSwapchainKHR>( swapchain ),
@@ -10931,6 +11632,7 @@ namespace VULKAN_HPP_NAMESPACE
typename ResultValueType<VULKAN_HPP_NAMESPACE::RefreshCycleDurationGOOGLE>::type
Device::getRefreshCycleDurationGOOGLE( VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain, Dispatch const & d ) const
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
VULKAN_HPP_NAMESPACE::RefreshCycleDurationGOOGLE displayTimingProperties;
Result result = static_cast<Result>( d.vkGetRefreshCycleDurationGOOGLE(
m_device,
@@ -10948,6 +11650,7 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_NAMESPACE::PastPresentationTimingGOOGLE * pPresentationTimings,
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
return static_cast<Result>( d.vkGetPastPresentationTimingGOOGLE(
m_device,
static_cast<VkSwapchainKHR>( swapchain ),
@@ -10961,6 +11664,7 @@ namespace VULKAN_HPP_NAMESPACE
typename ResultValueType<std::vector<PastPresentationTimingGOOGLE, PastPresentationTimingGOOGLEAllocator>>::type
Device::getPastPresentationTimingGOOGLE( VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain, Dispatch const & d ) const
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
std::vector<PastPresentationTimingGOOGLE, PastPresentationTimingGOOGLEAllocator> presentationTimings;
uint32_t presentationTimingCount;
Result result;
@@ -10999,6 +11703,7 @@ namespace VULKAN_HPP_NAMESPACE
PastPresentationTimingGOOGLEAllocator & pastPresentationTimingGOOGLEAllocator,
Dispatch const & d ) const
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
std::vector<PastPresentationTimingGOOGLE, PastPresentationTimingGOOGLEAllocator> presentationTimings(
pastPresentationTimingGOOGLEAllocator );
uint32_t presentationTimingCount;
@@ -11035,6 +11740,7 @@ namespace VULKAN_HPP_NAMESPACE
const VULKAN_HPP_NAMESPACE::Rect2D * pDiscardRectangles,
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
d.vkCmdSetDiscardRectangleEXT( m_commandBuffer,
firstDiscardRectangle,
discardRectangleCount,
@@ -11048,6 +11754,7 @@ namespace VULKAN_HPP_NAMESPACE
ArrayProxy<const VULKAN_HPP_NAMESPACE::Rect2D> const & discardRectangles,
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
d.vkCmdSetDiscardRectangleEXT( m_commandBuffer,
firstDiscardRectangle,
discardRectangles.size(),
@@ -11063,6 +11770,7 @@ namespace VULKAN_HPP_NAMESPACE
const VULKAN_HPP_NAMESPACE::HdrMetadataEXT * pMetadata,
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
d.vkSetHdrMetadataEXT( m_device,
swapchainCount,
reinterpret_cast<const VkSwapchainKHR *>( pSwapchains ),
@@ -11076,6 +11784,7 @@ namespace VULKAN_HPP_NAMESPACE
ArrayProxy<const VULKAN_HPP_NAMESPACE::HdrMetadataEXT> const & metadata,
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT_WHEN_NO_EXCEPTIONS
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
# ifdef VULKAN_HPP_NO_EXCEPTIONS
VULKAN_HPP_ASSERT( swapchains.size() == metadata.size() );
# else
@@ -11102,6 +11811,7 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_NAMESPACE::RenderPass * pRenderPass,
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
return static_cast<Result>(
d.vkCreateRenderPass2KHR( m_device,
reinterpret_cast<const VkRenderPassCreateInfo2 *>( pCreateInfo ),
@@ -11117,6 +11827,7 @@ namespace VULKAN_HPP_NAMESPACE
Optional<const AllocationCallbacks> allocator,
Dispatch const & d ) const
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
VULKAN_HPP_NAMESPACE::RenderPass renderPass;
Result result = static_cast<Result>(
d.vkCreateRenderPass2KHR( m_device,
@@ -11135,6 +11846,7 @@ namespace VULKAN_HPP_NAMESPACE
Optional<const AllocationCallbacks> allocator,
Dispatch const & d ) const
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
VULKAN_HPP_NAMESPACE::RenderPass renderPass;
Result result = static_cast<Result>(
d.vkCreateRenderPass2KHR( m_device,
@@ -11155,6 +11867,7 @@ namespace VULKAN_HPP_NAMESPACE
const VULKAN_HPP_NAMESPACE::SubpassBeginInfo * pSubpassBeginInfo,
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
d.vkCmdBeginRenderPass2KHR( m_commandBuffer,
reinterpret_cast<const VkRenderPassBeginInfo *>( pRenderPassBegin ),
reinterpret_cast<const VkSubpassBeginInfo *>( pSubpassBeginInfo ) );
@@ -11166,6 +11879,7 @@ namespace VULKAN_HPP_NAMESPACE
const SubpassBeginInfo & subpassBeginInfo,
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
d.vkCmdBeginRenderPass2KHR( m_commandBuffer,
reinterpret_cast<const VkRenderPassBeginInfo *>( &renderPassBegin ),
reinterpret_cast<const VkSubpassBeginInfo *>( &subpassBeginInfo ) );
@@ -11178,6 +11892,7 @@ namespace VULKAN_HPP_NAMESPACE
const VULKAN_HPP_NAMESPACE::SubpassEndInfo * pSubpassEndInfo,
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
d.vkCmdNextSubpass2KHR( m_commandBuffer,
reinterpret_cast<const VkSubpassBeginInfo *>( pSubpassBeginInfo ),
reinterpret_cast<const VkSubpassEndInfo *>( pSubpassEndInfo ) );
@@ -11189,6 +11904,7 @@ namespace VULKAN_HPP_NAMESPACE
const SubpassEndInfo & subpassEndInfo,
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
d.vkCmdNextSubpass2KHR( m_commandBuffer,
reinterpret_cast<const VkSubpassBeginInfo *>( &subpassBeginInfo ),
reinterpret_cast<const VkSubpassEndInfo *>( &subpassEndInfo ) );
@@ -11199,6 +11915,7 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_INLINE void CommandBuffer::endRenderPass2KHR( const VULKAN_HPP_NAMESPACE::SubpassEndInfo * pSubpassEndInfo,
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
d.vkCmdEndRenderPass2KHR( m_commandBuffer, reinterpret_cast<const VkSubpassEndInfo *>( pSubpassEndInfo ) );
}
@@ -11207,6 +11924,7 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_INLINE void CommandBuffer::endRenderPass2KHR( const SubpassEndInfo & subpassEndInfo,
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
d.vkCmdEndRenderPass2KHR( m_commandBuffer, reinterpret_cast<const VkSubpassEndInfo *>( &subpassEndInfo ) );
}
#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
@@ -11218,6 +11936,7 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::getSwapchainStatusKHR(
VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
return static_cast<Result>( d.vkGetSwapchainStatusKHR( m_device, static_cast<VkSwapchainKHR>( swapchain ) ) );
}
#else
@@ -11225,6 +11944,7 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result
Device::getSwapchainStatusKHR( VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain, Dispatch const & d ) const
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
Result result =
static_cast<Result>( d.vkGetSwapchainStatusKHR( m_device, static_cast<VkSwapchainKHR>( swapchain ) ) );
return createResultValue(
@@ -11242,6 +11962,7 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_NAMESPACE::ExternalFenceProperties * pExternalFenceProperties,
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
d.vkGetPhysicalDeviceExternalFencePropertiesKHR(
m_physicalDevice,
reinterpret_cast<const VkPhysicalDeviceExternalFenceInfo *>( pExternalFenceInfo ),
@@ -11254,6 +11975,7 @@ namespace VULKAN_HPP_NAMESPACE
PhysicalDevice::getExternalFencePropertiesKHR( const PhysicalDeviceExternalFenceInfo & externalFenceInfo,
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
VULKAN_HPP_NAMESPACE::ExternalFenceProperties externalFenceProperties;
d.vkGetPhysicalDeviceExternalFencePropertiesKHR(
m_physicalDevice,
@@ -11271,6 +11993,7 @@ namespace VULKAN_HPP_NAMESPACE
const VULKAN_HPP_NAMESPACE::ImportFenceWin32HandleInfoKHR * pImportFenceWin32HandleInfo,
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
return static_cast<Result>( d.vkImportFenceWin32HandleKHR(
m_device, reinterpret_cast<const VkImportFenceWin32HandleInfoKHR *>( pImportFenceWin32HandleInfo ) ) );
}
@@ -11281,6 +12004,7 @@ namespace VULKAN_HPP_NAMESPACE
Device::importFenceWin32HandleKHR( const ImportFenceWin32HandleInfoKHR & importFenceWin32HandleInfo,
Dispatch const & d ) const
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
Result result = static_cast<Result>( d.vkImportFenceWin32HandleKHR(
m_device, reinterpret_cast<const VkImportFenceWin32HandleInfoKHR *>( &importFenceWin32HandleInfo ) ) );
return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING "::Device::importFenceWin32HandleKHR" );
@@ -11293,6 +12017,7 @@ namespace VULKAN_HPP_NAMESPACE
HANDLE * pHandle,
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
return static_cast<Result>( d.vkGetFenceWin32HandleKHR(
m_device, reinterpret_cast<const VkFenceGetWin32HandleInfoKHR *>( pGetWin32HandleInfo ), pHandle ) );
}
@@ -11302,6 +12027,7 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType<HANDLE>::type
Device::getFenceWin32HandleKHR( const FenceGetWin32HandleInfoKHR & getWin32HandleInfo, Dispatch const & d ) const
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
HANDLE handle;
Result result = static_cast<Result>( d.vkGetFenceWin32HandleKHR(
m_device, reinterpret_cast<const VkFenceGetWin32HandleInfoKHR *>( &getWin32HandleInfo ), &handle ) );
@@ -11317,6 +12043,7 @@ namespace VULKAN_HPP_NAMESPACE
Device::importFenceFdKHR( const VULKAN_HPP_NAMESPACE::ImportFenceFdInfoKHR * pImportFenceFdInfo,
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
return static_cast<Result>(
d.vkImportFenceFdKHR( m_device, reinterpret_cast<const VkImportFenceFdInfoKHR *>( pImportFenceFdInfo ) ) );
}
@@ -11326,6 +12053,7 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType<void>::type
Device::importFenceFdKHR( const ImportFenceFdInfoKHR & importFenceFdInfo, Dispatch const & d ) const
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
Result result = static_cast<Result>(
d.vkImportFenceFdKHR( m_device, reinterpret_cast<const VkImportFenceFdInfoKHR *>( &importFenceFdInfo ) ) );
return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING "::Device::importFenceFdKHR" );
@@ -11338,6 +12066,7 @@ namespace VULKAN_HPP_NAMESPACE
int * pFd,
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
return static_cast<Result>(
d.vkGetFenceFdKHR( m_device, reinterpret_cast<const VkFenceGetFdInfoKHR *>( pGetFdInfo ), pFd ) );
}
@@ -11347,6 +12076,7 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType<int>::type
Device::getFenceFdKHR( const FenceGetFdInfoKHR & getFdInfo, Dispatch const & d ) const
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
int fd;
Result result = static_cast<Result>(
d.vkGetFenceFdKHR( m_device, reinterpret_cast<const VkFenceGetFdInfoKHR *>( &getFdInfo ), &fd ) );
@@ -11364,6 +12094,7 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_NAMESPACE::PerformanceCounterDescriptionKHR * pCounterDescriptions,
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
return static_cast<Result>( d.vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR(
m_physicalDevice,
queueFamilyIndex,
@@ -11382,6 +12113,7 @@ namespace VULKAN_HPP_NAMESPACE
ArrayProxy<VULKAN_HPP_NAMESPACE::PerformanceCounterKHR> const & counters,
Dispatch const & d ) const
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
std::vector<PerformanceCounterDescriptionKHR, Allocator> counterDescriptions;
uint32_t counterCount;
Result result;
@@ -11429,6 +12161,7 @@ namespace VULKAN_HPP_NAMESPACE
Allocator const & vectorAllocator,
Dispatch const & d ) const
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
std::vector<PerformanceCounterDescriptionKHR, Allocator> counterDescriptions( vectorAllocator );
uint32_t counterCount;
Result result;
@@ -11471,6 +12204,7 @@ namespace VULKAN_HPP_NAMESPACE
PhysicalDevice::enumerateQueueFamilyPerformanceQueryCountersKHR( uint32_t queueFamilyIndex,
Dispatch const & d ) const
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
std::pair<std::vector<PerformanceCounterKHR, PerformanceCounterKHRAllocator>,
std::vector<PerformanceCounterDescriptionKHR, PerformanceCounterDescriptionKHRAllocator>>
data;
@@ -11522,6 +12256,7 @@ namespace VULKAN_HPP_NAMESPACE
PerformanceCounterDescriptionKHRAllocator & performanceCounterDescriptionKHRAllocator,
Dispatch const & d ) const
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
std::pair<std::vector<PerformanceCounterKHR, PerformanceCounterKHRAllocator>,
std::vector<PerformanceCounterDescriptionKHR, PerformanceCounterDescriptionKHRAllocator>>
data( std::piecewise_construct,
@@ -11565,6 +12300,7 @@ namespace VULKAN_HPP_NAMESPACE
uint32_t * pNumPasses,
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
d.vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR(
m_physicalDevice,
reinterpret_cast<const VkQueryPoolPerformanceCreateInfoKHR *>( pPerformanceQueryCreateInfo ),
@@ -11576,6 +12312,7 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE uint32_t PhysicalDevice::getQueueFamilyPerformanceQueryPassesKHR(
const QueryPoolPerformanceCreateInfoKHR & performanceQueryCreateInfo, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
uint32_t numPasses;
d.vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR(
m_physicalDevice,
@@ -11589,6 +12326,7 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::acquireProfilingLockKHR(
const VULKAN_HPP_NAMESPACE::AcquireProfilingLockInfoKHR * pInfo, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
return static_cast<Result>(
d.vkAcquireProfilingLockKHR( m_device, reinterpret_cast<const VkAcquireProfilingLockInfoKHR *>( pInfo ) ) );
}
@@ -11598,6 +12336,7 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType<void>::type
Device::acquireProfilingLockKHR( const AcquireProfilingLockInfoKHR & info, Dispatch const & d ) const
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
Result result = static_cast<Result>(
d.vkAcquireProfilingLockKHR( m_device, reinterpret_cast<const VkAcquireProfilingLockInfoKHR *>( &info ) ) );
return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING "::Device::acquireProfilingLockKHR" );
@@ -11607,6 +12346,7 @@ namespace VULKAN_HPP_NAMESPACE
template <typename Dispatch>
VULKAN_HPP_INLINE void Device::releaseProfilingLockKHR( Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
d.vkReleaseProfilingLockKHR( m_device );
}
@@ -11618,6 +12358,7 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_NAMESPACE::SurfaceCapabilities2KHR * pSurfaceCapabilities,
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
return static_cast<Result>( d.vkGetPhysicalDeviceSurfaceCapabilities2KHR(
m_physicalDevice,
reinterpret_cast<const VkPhysicalDeviceSurfaceInfo2KHR *>( pSurfaceInfo ),
@@ -11631,6 +12372,7 @@ namespace VULKAN_HPP_NAMESPACE
PhysicalDevice::getSurfaceCapabilities2KHR( const PhysicalDeviceSurfaceInfo2KHR & surfaceInfo,
Dispatch const & d ) const
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
VULKAN_HPP_NAMESPACE::SurfaceCapabilities2KHR surfaceCapabilities;
Result result = static_cast<Result>( d.vkGetPhysicalDeviceSurfaceCapabilities2KHR(
m_physicalDevice,
@@ -11645,6 +12387,7 @@ namespace VULKAN_HPP_NAMESPACE
PhysicalDevice::getSurfaceCapabilities2KHR( const PhysicalDeviceSurfaceInfo2KHR & surfaceInfo,
Dispatch const & d ) const
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
StructureChain<X, Y, Z...> structureChain;
VULKAN_HPP_NAMESPACE::SurfaceCapabilities2KHR & surfaceCapabilities =
structureChain.template get<VULKAN_HPP_NAMESPACE::SurfaceCapabilities2KHR>();
@@ -11664,6 +12407,7 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_NAMESPACE::SurfaceFormat2KHR * pSurfaceFormats,
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
return static_cast<Result>( d.vkGetPhysicalDeviceSurfaceFormats2KHR(
m_physicalDevice,
reinterpret_cast<const VkPhysicalDeviceSurfaceInfo2KHR *>( pSurfaceInfo ),
@@ -11677,6 +12421,7 @@ namespace VULKAN_HPP_NAMESPACE
typename ResultValueType<std::vector<SurfaceFormat2KHR, SurfaceFormat2KHRAllocator>>::type
PhysicalDevice::getSurfaceFormats2KHR( const PhysicalDeviceSurfaceInfo2KHR & surfaceInfo, Dispatch const & d ) const
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
std::vector<SurfaceFormat2KHR, SurfaceFormat2KHRAllocator> surfaceFormats;
uint32_t surfaceFormatCount;
Result result;
@@ -11716,6 +12461,7 @@ namespace VULKAN_HPP_NAMESPACE
SurfaceFormat2KHRAllocator & surfaceFormat2KHRAllocator,
Dispatch const & d ) const
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
std::vector<SurfaceFormat2KHR, SurfaceFormat2KHRAllocator> surfaceFormats( surfaceFormat2KHRAllocator );
uint32_t surfaceFormatCount;
Result result;
@@ -11754,6 +12500,7 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_NAMESPACE::DisplayProperties2KHR * pProperties,
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
return static_cast<Result>( d.vkGetPhysicalDeviceDisplayProperties2KHR(
m_physicalDevice, pPropertyCount, reinterpret_cast<VkDisplayProperties2KHR *>( pProperties ) ) );
}
@@ -11764,6 +12511,7 @@ namespace VULKAN_HPP_NAMESPACE
typename ResultValueType<std::vector<DisplayProperties2KHR, DisplayProperties2KHRAllocator>>::type
PhysicalDevice::getDisplayProperties2KHR( Dispatch const & d ) const
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
std::vector<DisplayProperties2KHR, DisplayProperties2KHRAllocator> properties;
uint32_t propertyCount;
Result result;
@@ -11796,6 +12544,7 @@ namespace VULKAN_HPP_NAMESPACE
PhysicalDevice::getDisplayProperties2KHR( DisplayProperties2KHRAllocator & displayProperties2KHRAllocator,
Dispatch const & d ) const
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
std::vector<DisplayProperties2KHR, DisplayProperties2KHRAllocator> properties( displayProperties2KHRAllocator );
uint32_t propertyCount;
Result result;
@@ -11826,6 +12575,7 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_NAMESPACE::DisplayPlaneProperties2KHR * pProperties,
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
return static_cast<Result>( d.vkGetPhysicalDeviceDisplayPlaneProperties2KHR(
m_physicalDevice, pPropertyCount, reinterpret_cast<VkDisplayPlaneProperties2KHR *>( pProperties ) ) );
}
@@ -11836,6 +12586,7 @@ namespace VULKAN_HPP_NAMESPACE
typename ResultValueType<std::vector<DisplayPlaneProperties2KHR, DisplayPlaneProperties2KHRAllocator>>::type
PhysicalDevice::getDisplayPlaneProperties2KHR( Dispatch const & d ) const
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
std::vector<DisplayPlaneProperties2KHR, DisplayPlaneProperties2KHRAllocator> properties;
uint32_t propertyCount;
Result result;
@@ -11868,6 +12619,7 @@ namespace VULKAN_HPP_NAMESPACE
PhysicalDevice::getDisplayPlaneProperties2KHR(
DisplayPlaneProperties2KHRAllocator & displayPlaneProperties2KHRAllocator, Dispatch const & d ) const
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
std::vector<DisplayPlaneProperties2KHR, DisplayPlaneProperties2KHRAllocator> properties(
displayPlaneProperties2KHRAllocator );
uint32_t propertyCount;
@@ -11900,6 +12652,7 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_NAMESPACE::DisplayModeProperties2KHR * pProperties,
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
return static_cast<Result>(
d.vkGetDisplayModeProperties2KHR( m_physicalDevice,
static_cast<VkDisplayKHR>( display ),
@@ -11913,6 +12666,7 @@ namespace VULKAN_HPP_NAMESPACE
typename ResultValueType<std::vector<DisplayModeProperties2KHR, DisplayModeProperties2KHRAllocator>>::type
PhysicalDevice::getDisplayModeProperties2KHR( VULKAN_HPP_NAMESPACE::DisplayKHR display, Dispatch const & d ) const
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
std::vector<DisplayModeProperties2KHR, DisplayModeProperties2KHRAllocator> properties;
uint32_t propertyCount;
Result result;
@@ -11950,6 +12704,7 @@ namespace VULKAN_HPP_NAMESPACE
DisplayModeProperties2KHRAllocator & displayModeProperties2KHRAllocator,
Dispatch const & d ) const
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
std::vector<DisplayModeProperties2KHR, DisplayModeProperties2KHRAllocator> properties(
displayModeProperties2KHRAllocator );
uint32_t propertyCount;
@@ -11984,6 +12739,7 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_NAMESPACE::DisplayPlaneCapabilities2KHR * pCapabilities,
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
return static_cast<Result>(
d.vkGetDisplayPlaneCapabilities2KHR( m_physicalDevice,
reinterpret_cast<const VkDisplayPlaneInfo2KHR *>( pDisplayPlaneInfo ),
@@ -11997,6 +12753,7 @@ namespace VULKAN_HPP_NAMESPACE
PhysicalDevice::getDisplayPlaneCapabilities2KHR( const DisplayPlaneInfo2KHR & displayPlaneInfo,
Dispatch const & d ) const
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
VULKAN_HPP_NAMESPACE::DisplayPlaneCapabilities2KHR capabilities;
Result result = static_cast<Result>(
d.vkGetDisplayPlaneCapabilities2KHR( m_physicalDevice,
@@ -12017,6 +12774,7 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_NAMESPACE::SurfaceKHR * pSurface,
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
return static_cast<Result>(
d.vkCreateIOSSurfaceMVK( m_instance,
reinterpret_cast<const VkIOSSurfaceCreateInfoMVK *>( pCreateInfo ),
@@ -12032,6 +12790,7 @@ namespace VULKAN_HPP_NAMESPACE
Optional<const AllocationCallbacks> allocator,
Dispatch const & d ) const
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
VULKAN_HPP_NAMESPACE::SurfaceKHR surface;
Result result = static_cast<Result>(
d.vkCreateIOSSurfaceMVK( m_instance,
@@ -12050,6 +12809,7 @@ namespace VULKAN_HPP_NAMESPACE
Optional<const AllocationCallbacks> allocator,
Dispatch const & d ) const
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
VULKAN_HPP_NAMESPACE::SurfaceKHR surface;
Result result = static_cast<Result>(
d.vkCreateIOSSurfaceMVK( m_instance,
@@ -12075,6 +12835,7 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_NAMESPACE::SurfaceKHR * pSurface,
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
return static_cast<Result>(
d.vkCreateMacOSSurfaceMVK( m_instance,
reinterpret_cast<const VkMacOSSurfaceCreateInfoMVK *>( pCreateInfo ),
@@ -12090,6 +12851,7 @@ namespace VULKAN_HPP_NAMESPACE
Optional<const AllocationCallbacks> allocator,
Dispatch const & d ) const
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
VULKAN_HPP_NAMESPACE::SurfaceKHR surface;
Result result = static_cast<Result>(
d.vkCreateMacOSSurfaceMVK( m_instance,
@@ -12108,6 +12870,7 @@ namespace VULKAN_HPP_NAMESPACE
Optional<const AllocationCallbacks> allocator,
Dispatch const & d ) const
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
VULKAN_HPP_NAMESPACE::SurfaceKHR surface;
Result result = static_cast<Result>(
d.vkCreateMacOSSurfaceMVK( m_instance,
@@ -12129,6 +12892,7 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::setDebugUtilsObjectNameEXT(
const VULKAN_HPP_NAMESPACE::DebugUtilsObjectNameInfoEXT * pNameInfo, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
return static_cast<Result>( d.vkSetDebugUtilsObjectNameEXT(
m_device, reinterpret_cast<const VkDebugUtilsObjectNameInfoEXT *>( pNameInfo ) ) );
}
@@ -12138,6 +12902,7 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType<void>::type
Device::setDebugUtilsObjectNameEXT( const DebugUtilsObjectNameInfoEXT & nameInfo, Dispatch const & d ) const
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
Result result = static_cast<Result>( d.vkSetDebugUtilsObjectNameEXT(
m_device, reinterpret_cast<const VkDebugUtilsObjectNameInfoEXT *>( &nameInfo ) ) );
return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING "::Device::setDebugUtilsObjectNameEXT" );
@@ -12148,6 +12913,7 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::setDebugUtilsObjectTagEXT(
const VULKAN_HPP_NAMESPACE::DebugUtilsObjectTagInfoEXT * pTagInfo, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
return static_cast<Result>(
d.vkSetDebugUtilsObjectTagEXT( m_device, reinterpret_cast<const VkDebugUtilsObjectTagInfoEXT *>( pTagInfo ) ) );
}
@@ -12157,6 +12923,7 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType<void>::type
Device::setDebugUtilsObjectTagEXT( const DebugUtilsObjectTagInfoEXT & tagInfo, Dispatch const & d ) const
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
Result result = static_cast<Result>(
d.vkSetDebugUtilsObjectTagEXT( m_device, reinterpret_cast<const VkDebugUtilsObjectTagInfoEXT *>( &tagInfo ) ) );
return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING "::Device::setDebugUtilsObjectTagEXT" );
@@ -12167,6 +12934,7 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_INLINE void Queue::beginDebugUtilsLabelEXT( const VULKAN_HPP_NAMESPACE::DebugUtilsLabelEXT * pLabelInfo,
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
d.vkQueueBeginDebugUtilsLabelEXT( m_queue, reinterpret_cast<const VkDebugUtilsLabelEXT *>( pLabelInfo ) );
}
@@ -12175,6 +12943,7 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_INLINE void Queue::beginDebugUtilsLabelEXT( const DebugUtilsLabelEXT & labelInfo,
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
d.vkQueueBeginDebugUtilsLabelEXT( m_queue, reinterpret_cast<const VkDebugUtilsLabelEXT *>( &labelInfo ) );
}
#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
@@ -12182,6 +12951,7 @@ namespace VULKAN_HPP_NAMESPACE
template <typename Dispatch>
VULKAN_HPP_INLINE void Queue::endDebugUtilsLabelEXT( Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
d.vkQueueEndDebugUtilsLabelEXT( m_queue );
}
@@ -12189,6 +12959,7 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_INLINE void Queue::insertDebugUtilsLabelEXT( const VULKAN_HPP_NAMESPACE::DebugUtilsLabelEXT * pLabelInfo,
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
d.vkQueueInsertDebugUtilsLabelEXT( m_queue, reinterpret_cast<const VkDebugUtilsLabelEXT *>( pLabelInfo ) );
}
@@ -12197,6 +12968,7 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_INLINE void Queue::insertDebugUtilsLabelEXT( const DebugUtilsLabelEXT & labelInfo,
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
d.vkQueueInsertDebugUtilsLabelEXT( m_queue, reinterpret_cast<const VkDebugUtilsLabelEXT *>( &labelInfo ) );
}
#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
@@ -12206,6 +12978,7 @@ namespace VULKAN_HPP_NAMESPACE
CommandBuffer::beginDebugUtilsLabelEXT( const VULKAN_HPP_NAMESPACE::DebugUtilsLabelEXT * pLabelInfo,
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
d.vkCmdBeginDebugUtilsLabelEXT( m_commandBuffer, reinterpret_cast<const VkDebugUtilsLabelEXT *>( pLabelInfo ) );
}
@@ -12214,6 +12987,7 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_INLINE void CommandBuffer::beginDebugUtilsLabelEXT( const DebugUtilsLabelEXT & labelInfo,
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
d.vkCmdBeginDebugUtilsLabelEXT( m_commandBuffer, reinterpret_cast<const VkDebugUtilsLabelEXT *>( &labelInfo ) );
}
#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
@@ -12221,6 +12995,7 @@ namespace VULKAN_HPP_NAMESPACE
template <typename Dispatch>
VULKAN_HPP_INLINE void CommandBuffer::endDebugUtilsLabelEXT( Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
d.vkCmdEndDebugUtilsLabelEXT( m_commandBuffer );
}
@@ -12229,6 +13004,7 @@ namespace VULKAN_HPP_NAMESPACE
CommandBuffer::insertDebugUtilsLabelEXT( const VULKAN_HPP_NAMESPACE::DebugUtilsLabelEXT * pLabelInfo,
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
d.vkCmdInsertDebugUtilsLabelEXT( m_commandBuffer, reinterpret_cast<const VkDebugUtilsLabelEXT *>( pLabelInfo ) );
}
@@ -12237,6 +13013,7 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_INLINE void CommandBuffer::insertDebugUtilsLabelEXT( const DebugUtilsLabelEXT & labelInfo,
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
d.vkCmdInsertDebugUtilsLabelEXT( m_commandBuffer, reinterpret_cast<const VkDebugUtilsLabelEXT *>( &labelInfo ) );
}
#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
@@ -12248,6 +13025,7 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_NAMESPACE::DebugUtilsMessengerEXT * pMessenger,
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
return static_cast<Result>(
d.vkCreateDebugUtilsMessengerEXT( m_instance,
reinterpret_cast<const VkDebugUtilsMessengerCreateInfoEXT *>( pCreateInfo ),
@@ -12262,6 +13040,7 @@ namespace VULKAN_HPP_NAMESPACE
Optional<const AllocationCallbacks> allocator,
Dispatch const & d ) const
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
VULKAN_HPP_NAMESPACE::DebugUtilsMessengerEXT messenger;
Result result = static_cast<Result>(
d.vkCreateDebugUtilsMessengerEXT( m_instance,
@@ -12280,6 +13059,7 @@ namespace VULKAN_HPP_NAMESPACE
Optional<const AllocationCallbacks> allocator,
Dispatch const & d ) const
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
VULKAN_HPP_NAMESPACE::DebugUtilsMessengerEXT messenger;
Result result = static_cast<Result>(
d.vkCreateDebugUtilsMessengerEXT( m_instance,
@@ -12300,6 +13080,7 @@ namespace VULKAN_HPP_NAMESPACE
const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
d.vkDestroyDebugUtilsMessengerEXT( m_instance,
static_cast<VkDebugUtilsMessengerEXT>( messenger ),
reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ) );
@@ -12312,6 +13093,7 @@ namespace VULKAN_HPP_NAMESPACE
Optional<const AllocationCallbacks> allocator,
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
d.vkDestroyDebugUtilsMessengerEXT(
m_instance,
static_cast<VkDebugUtilsMessengerEXT>( messenger ),
@@ -12325,6 +13107,7 @@ namespace VULKAN_HPP_NAMESPACE
const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
d.vkDestroyDebugUtilsMessengerEXT( m_instance,
static_cast<VkDebugUtilsMessengerEXT>( messenger ),
reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ) );
@@ -12336,6 +13119,7 @@ namespace VULKAN_HPP_NAMESPACE
Optional<const AllocationCallbacks> allocator,
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
d.vkDestroyDebugUtilsMessengerEXT(
m_instance,
static_cast<VkDebugUtilsMessengerEXT>( messenger ),
@@ -12351,6 +13135,7 @@ namespace VULKAN_HPP_NAMESPACE
const VULKAN_HPP_NAMESPACE::DebugUtilsMessengerCallbackDataEXT * pCallbackData,
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
d.vkSubmitDebugUtilsMessageEXT( m_instance,
static_cast<VkDebugUtilsMessageSeverityFlagBitsEXT>( messageSeverity ),
static_cast<VkDebugUtilsMessageTypeFlagsEXT>( messageTypes ),
@@ -12365,6 +13150,7 @@ namespace VULKAN_HPP_NAMESPACE
const DebugUtilsMessengerCallbackDataEXT & callbackData,
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
d.vkSubmitDebugUtilsMessageEXT( m_instance,
static_cast<VkDebugUtilsMessageSeverityFlagBitsEXT>( messageSeverity ),
static_cast<VkDebugUtilsMessageTypeFlagsEXT>( messageTypes ),
@@ -12381,6 +13167,7 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_NAMESPACE::AndroidHardwareBufferPropertiesANDROID * pProperties,
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
return static_cast<Result>( d.vkGetAndroidHardwareBufferPropertiesANDROID(
m_device, buffer, reinterpret_cast<VkAndroidHardwareBufferPropertiesANDROID *>( pProperties ) ) );
}
@@ -12391,6 +13178,7 @@ namespace VULKAN_HPP_NAMESPACE
typename ResultValueType<VULKAN_HPP_NAMESPACE::AndroidHardwareBufferPropertiesANDROID>::type
Device::getAndroidHardwareBufferPropertiesANDROID( const struct AHardwareBuffer & buffer, Dispatch const & d ) const
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
VULKAN_HPP_NAMESPACE::AndroidHardwareBufferPropertiesANDROID properties;
Result result = static_cast<Result>( d.vkGetAndroidHardwareBufferPropertiesANDROID(
m_device, &buffer, reinterpret_cast<VkAndroidHardwareBufferPropertiesANDROID *>( &properties ) ) );
@@ -12402,6 +13190,7 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType<StructureChain<X, Y, Z...>>::type
Device::getAndroidHardwareBufferPropertiesANDROID( const struct AHardwareBuffer & buffer, Dispatch const & d ) const
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
StructureChain<X, Y, Z...> structureChain;
VULKAN_HPP_NAMESPACE::AndroidHardwareBufferPropertiesANDROID & properties =
structureChain.template get<VULKAN_HPP_NAMESPACE::AndroidHardwareBufferPropertiesANDROID>();
@@ -12418,6 +13207,7 @@ namespace VULKAN_HPP_NAMESPACE
struct AHardwareBuffer ** pBuffer,
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
return static_cast<Result>( d.vkGetMemoryAndroidHardwareBufferANDROID(
m_device, reinterpret_cast<const VkMemoryGetAndroidHardwareBufferInfoANDROID *>( pInfo ), pBuffer ) );
}
@@ -12428,6 +13218,7 @@ namespace VULKAN_HPP_NAMESPACE
Device::getMemoryAndroidHardwareBufferANDROID( const MemoryGetAndroidHardwareBufferInfoANDROID & info,
Dispatch const & d ) const
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
struct AHardwareBuffer * buffer;
Result result = static_cast<Result>( d.vkGetMemoryAndroidHardwareBufferANDROID(
m_device, reinterpret_cast<const VkMemoryGetAndroidHardwareBufferInfoANDROID *>( &info ), &buffer ) );
@@ -12444,6 +13235,7 @@ namespace VULKAN_HPP_NAMESPACE
CommandBuffer::setSampleLocationsEXT( const VULKAN_HPP_NAMESPACE::SampleLocationsInfoEXT * pSampleLocationsInfo,
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
d.vkCmdSetSampleLocationsEXT( m_commandBuffer,
reinterpret_cast<const VkSampleLocationsInfoEXT *>( pSampleLocationsInfo ) );
}
@@ -12453,6 +13245,7 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_INLINE void CommandBuffer::setSampleLocationsEXT( const SampleLocationsInfoEXT & sampleLocationsInfo,
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
d.vkCmdSetSampleLocationsEXT( m_commandBuffer,
reinterpret_cast<const VkSampleLocationsInfoEXT *>( &sampleLocationsInfo ) );
}
@@ -12464,6 +13257,7 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_NAMESPACE::MultisamplePropertiesEXT * pMultisampleProperties,
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
d.vkGetPhysicalDeviceMultisamplePropertiesEXT(
m_physicalDevice,
static_cast<VkSampleCountFlagBits>( samples ),
@@ -12476,6 +13270,7 @@ namespace VULKAN_HPP_NAMESPACE
PhysicalDevice::getMultisamplePropertiesEXT( VULKAN_HPP_NAMESPACE::SampleCountFlagBits samples,
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
VULKAN_HPP_NAMESPACE::MultisamplePropertiesEXT multisampleProperties;
d.vkGetPhysicalDeviceMultisamplePropertiesEXT(
m_physicalDevice,
@@ -12493,6 +13288,7 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_NAMESPACE::MemoryRequirements2 * pMemoryRequirements,
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
d.vkGetImageMemoryRequirements2KHR( m_device,
reinterpret_cast<const VkImageMemoryRequirementsInfo2 *>( pInfo ),
reinterpret_cast<VkMemoryRequirements2 *>( pMemoryRequirements ) );
@@ -12504,6 +13300,7 @@ namespace VULKAN_HPP_NAMESPACE
Device::getImageMemoryRequirements2KHR( const ImageMemoryRequirementsInfo2 & info,
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
VULKAN_HPP_NAMESPACE::MemoryRequirements2 memoryRequirements;
d.vkGetImageMemoryRequirements2KHR( m_device,
reinterpret_cast<const VkImageMemoryRequirementsInfo2 *>( &info ),
@@ -12516,6 +13313,7 @@ namespace VULKAN_HPP_NAMESPACE
Device::getImageMemoryRequirements2KHR( const ImageMemoryRequirementsInfo2 & info,
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
StructureChain<X, Y, Z...> structureChain;
VULKAN_HPP_NAMESPACE::MemoryRequirements2 & memoryRequirements =
structureChain.template get<VULKAN_HPP_NAMESPACE::MemoryRequirements2>();
@@ -12532,6 +13330,7 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_NAMESPACE::MemoryRequirements2 * pMemoryRequirements,
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
d.vkGetBufferMemoryRequirements2KHR( m_device,
reinterpret_cast<const VkBufferMemoryRequirementsInfo2 *>( pInfo ),
reinterpret_cast<VkMemoryRequirements2 *>( pMemoryRequirements ) );
@@ -12543,6 +13342,7 @@ namespace VULKAN_HPP_NAMESPACE
Device::getBufferMemoryRequirements2KHR( const BufferMemoryRequirementsInfo2 & info,
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
VULKAN_HPP_NAMESPACE::MemoryRequirements2 memoryRequirements;
d.vkGetBufferMemoryRequirements2KHR( m_device,
reinterpret_cast<const VkBufferMemoryRequirementsInfo2 *>( &info ),
@@ -12555,6 +13355,7 @@ namespace VULKAN_HPP_NAMESPACE
Device::getBufferMemoryRequirements2KHR( const BufferMemoryRequirementsInfo2 & info,
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
StructureChain<X, Y, Z...> structureChain;
VULKAN_HPP_NAMESPACE::MemoryRequirements2 & memoryRequirements =
structureChain.template get<VULKAN_HPP_NAMESPACE::MemoryRequirements2>();
@@ -12572,6 +13373,7 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_NAMESPACE::SparseImageMemoryRequirements2 * pSparseMemoryRequirements,
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
d.vkGetImageSparseMemoryRequirements2KHR(
m_device,
reinterpret_cast<const VkImageSparseMemoryRequirementsInfo2 *>( pInfo ),
@@ -12586,6 +13388,7 @@ namespace VULKAN_HPP_NAMESPACE
Device::getImageSparseMemoryRequirements2KHR( const ImageSparseMemoryRequirementsInfo2 & info,
Dispatch const & d ) const
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
std::vector<SparseImageMemoryRequirements2, SparseImageMemoryRequirements2Allocator> sparseMemoryRequirements;
uint32_t sparseMemoryRequirementCount;
d.vkGetImageSparseMemoryRequirements2KHR( m_device,
@@ -12614,6 +13417,7 @@ namespace VULKAN_HPP_NAMESPACE
SparseImageMemoryRequirements2Allocator & sparseImageMemoryRequirements2Allocator,
Dispatch const & d ) const
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
std::vector<SparseImageMemoryRequirements2, SparseImageMemoryRequirements2Allocator> sparseMemoryRequirements(
sparseImageMemoryRequirements2Allocator );
uint32_t sparseMemoryRequirementCount;
@@ -12641,6 +13445,7 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_NAMESPACE::AccelerationStructureKHR * pAccelerationStructure,
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
return static_cast<Result>(
d.vkCreateAccelerationStructureKHR( m_device,
reinterpret_cast<const VkAccelerationStructureCreateInfoKHR *>( pCreateInfo ),
@@ -12656,6 +13461,7 @@ namespace VULKAN_HPP_NAMESPACE
Optional<const AllocationCallbacks> allocator,
Dispatch const & d ) const
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
VULKAN_HPP_NAMESPACE::AccelerationStructureKHR accelerationStructure;
Result result = static_cast<Result>( d.vkCreateAccelerationStructureKHR(
m_device,
@@ -12675,6 +13481,7 @@ namespace VULKAN_HPP_NAMESPACE
Optional<const AllocationCallbacks> allocator,
Dispatch const & d ) const
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
VULKAN_HPP_NAMESPACE::AccelerationStructureKHR accelerationStructure;
Result result = static_cast<Result>( d.vkCreateAccelerationStructureKHR(
m_device,
@@ -12698,6 +13505,7 @@ namespace VULKAN_HPP_NAMESPACE
const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
d.vkDestroyAccelerationStructureKHR( m_device,
static_cast<VkAccelerationStructureKHR>( accelerationStructure ),
reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ) );
@@ -12710,6 +13518,7 @@ namespace VULKAN_HPP_NAMESPACE
Optional<const AllocationCallbacks> allocator,
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
d.vkDestroyAccelerationStructureKHR(
m_device,
static_cast<VkAccelerationStructureKHR>( accelerationStructure ),
@@ -12723,6 +13532,7 @@ namespace VULKAN_HPP_NAMESPACE
const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
d.vkDestroyAccelerationStructureKHR( m_device,
static_cast<VkAccelerationStructureKHR>( accelerationStructure ),
reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ) );
@@ -12734,6 +13544,7 @@ namespace VULKAN_HPP_NAMESPACE
Optional<const AllocationCallbacks> allocator,
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
d.vkDestroyAccelerationStructureKHR(
m_device,
static_cast<VkAccelerationStructureKHR>( accelerationStructure ),
@@ -12749,6 +13560,7 @@ namespace VULKAN_HPP_NAMESPACE
const VULKAN_HPP_NAMESPACE::AccelerationStructureBuildRangeInfoKHR * const * ppBuildRangeInfos,
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
d.vkCmdBuildAccelerationStructuresKHR(
m_commandBuffer,
infoCount,
@@ -12763,6 +13575,7 @@ namespace VULKAN_HPP_NAMESPACE
ArrayProxy<const VULKAN_HPP_NAMESPACE::AccelerationStructureBuildRangeInfoKHR * const> const & pBuildRangeInfos,
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT_WHEN_NO_EXCEPTIONS
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
# ifdef VULKAN_HPP_NO_EXCEPTIONS
VULKAN_HPP_ASSERT( infos.size() == pBuildRangeInfos.size() );
# else
@@ -12790,6 +13603,7 @@ namespace VULKAN_HPP_NAMESPACE
const uint32_t * const * ppMaxPrimitiveCounts,
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
d.vkCmdBuildAccelerationStructuresIndirectKHR(
m_commandBuffer,
infoCount,
@@ -12808,6 +13622,7 @@ namespace VULKAN_HPP_NAMESPACE
ArrayProxy<const uint32_t * const> const & pMaxPrimitiveCounts,
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT_WHEN_NO_EXCEPTIONS
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
# ifdef VULKAN_HPP_NO_EXCEPTIONS
VULKAN_HPP_ASSERT( infos.size() == indirectDeviceAddresses.size() );
VULKAN_HPP_ASSERT( infos.size() == indirectStrides.size() );
@@ -12851,6 +13666,7 @@ namespace VULKAN_HPP_NAMESPACE
const VULKAN_HPP_NAMESPACE::AccelerationStructureBuildRangeInfoKHR * const * ppBuildRangeInfos,
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
return static_cast<Result>( d.vkBuildAccelerationStructuresKHR(
m_device,
static_cast<VkDeferredOperationKHR>( deferredOperation ),
@@ -12867,6 +13683,7 @@ namespace VULKAN_HPP_NAMESPACE
ArrayProxy<const VULKAN_HPP_NAMESPACE::AccelerationStructureBuildRangeInfoKHR * const> const & pBuildRangeInfos,
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT_WHEN_NO_EXCEPTIONS
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
# ifdef VULKAN_HPP_NO_EXCEPTIONS
VULKAN_HPP_ASSERT( infos.size() == pBuildRangeInfos.size() );
# else
@@ -12897,6 +13714,7 @@ namespace VULKAN_HPP_NAMESPACE
const VULKAN_HPP_NAMESPACE::CopyAccelerationStructureInfoKHR * pInfo,
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
return static_cast<Result>(
d.vkCopyAccelerationStructureKHR( m_device,
static_cast<VkDeferredOperationKHR>( deferredOperation ),
@@ -12910,6 +13728,7 @@ namespace VULKAN_HPP_NAMESPACE
const CopyAccelerationStructureInfoKHR & info,
Dispatch const & d ) const
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
Result result = static_cast<Result>(
d.vkCopyAccelerationStructureKHR( m_device,
static_cast<VkDeferredOperationKHR>( deferredOperation ),
@@ -12928,6 +13747,7 @@ namespace VULKAN_HPP_NAMESPACE
const VULKAN_HPP_NAMESPACE::CopyAccelerationStructureToMemoryInfoKHR * pInfo,
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
return static_cast<Result>( d.vkCopyAccelerationStructureToMemoryKHR(
m_device,
static_cast<VkDeferredOperationKHR>( deferredOperation ),
@@ -12941,6 +13761,7 @@ namespace VULKAN_HPP_NAMESPACE
const CopyAccelerationStructureToMemoryInfoKHR & info,
Dispatch const & d ) const
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
Result result = static_cast<Result>( d.vkCopyAccelerationStructureToMemoryKHR(
m_device,
static_cast<VkDeferredOperationKHR>( deferredOperation ),
@@ -12959,6 +13780,7 @@ namespace VULKAN_HPP_NAMESPACE
const VULKAN_HPP_NAMESPACE::CopyMemoryToAccelerationStructureInfoKHR * pInfo,
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
return static_cast<Result>( d.vkCopyMemoryToAccelerationStructureKHR(
m_device,
static_cast<VkDeferredOperationKHR>( deferredOperation ),
@@ -12972,6 +13794,7 @@ namespace VULKAN_HPP_NAMESPACE
const CopyMemoryToAccelerationStructureInfoKHR & info,
Dispatch const & d ) const
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
Result result = static_cast<Result>( d.vkCopyMemoryToAccelerationStructureKHR(
m_device,
static_cast<VkDeferredOperationKHR>( deferredOperation ),
@@ -12994,6 +13817,7 @@ namespace VULKAN_HPP_NAMESPACE
size_t stride,
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
return static_cast<Result>( d.vkWriteAccelerationStructuresPropertiesKHR(
m_device,
accelerationStructureCount,
@@ -13015,6 +13839,7 @@ namespace VULKAN_HPP_NAMESPACE
size_t stride,
Dispatch const & d ) const
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
Result result = static_cast<Result>( d.vkWriteAccelerationStructuresPropertiesKHR(
m_device,
accelerationStructures.size(),
@@ -13036,6 +13861,7 @@ namespace VULKAN_HPP_NAMESPACE
size_t stride,
Dispatch const & d ) const
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
VULKAN_HPP_ASSERT( dataSize % sizeof( T ) == 0 );
std::vector<T, Allocator> data( dataSize / sizeof( T ) );
Result result = static_cast<Result>( d.vkWriteAccelerationStructuresPropertiesKHR(
@@ -13058,6 +13884,7 @@ namespace VULKAN_HPP_NAMESPACE
size_t stride,
Dispatch const & d ) const
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
T data;
Result result = static_cast<Result>( d.vkWriteAccelerationStructuresPropertiesKHR(
m_device,
@@ -13077,6 +13904,7 @@ namespace VULKAN_HPP_NAMESPACE
CommandBuffer::copyAccelerationStructureKHR( const VULKAN_HPP_NAMESPACE::CopyAccelerationStructureInfoKHR * pInfo,
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
d.vkCmdCopyAccelerationStructureKHR( m_commandBuffer,
reinterpret_cast<const VkCopyAccelerationStructureInfoKHR *>( pInfo ) );
}
@@ -13086,6 +13914,7 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_INLINE void CommandBuffer::copyAccelerationStructureKHR( const CopyAccelerationStructureInfoKHR & info,
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
d.vkCmdCopyAccelerationStructureKHR( m_commandBuffer,
reinterpret_cast<const VkCopyAccelerationStructureInfoKHR *>( &info ) );
}
@@ -13096,6 +13925,7 @@ namespace VULKAN_HPP_NAMESPACE
const VULKAN_HPP_NAMESPACE::CopyAccelerationStructureToMemoryInfoKHR * pInfo,
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
d.vkCmdCopyAccelerationStructureToMemoryKHR(
m_commandBuffer, reinterpret_cast<const VkCopyAccelerationStructureToMemoryInfoKHR *>( pInfo ) );
}
@@ -13106,6 +13936,7 @@ namespace VULKAN_HPP_NAMESPACE
CommandBuffer::copyAccelerationStructureToMemoryKHR( const CopyAccelerationStructureToMemoryInfoKHR & info,
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
d.vkCmdCopyAccelerationStructureToMemoryKHR(
m_commandBuffer, reinterpret_cast<const VkCopyAccelerationStructureToMemoryInfoKHR *>( &info ) );
}
@@ -13116,6 +13947,7 @@ namespace VULKAN_HPP_NAMESPACE
const VULKAN_HPP_NAMESPACE::CopyMemoryToAccelerationStructureInfoKHR * pInfo,
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
d.vkCmdCopyMemoryToAccelerationStructureKHR(
m_commandBuffer, reinterpret_cast<const VkCopyMemoryToAccelerationStructureInfoKHR *>( pInfo ) );
}
@@ -13126,6 +13958,7 @@ namespace VULKAN_HPP_NAMESPACE
CommandBuffer::copyMemoryToAccelerationStructureKHR( const CopyMemoryToAccelerationStructureInfoKHR & info,
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
d.vkCmdCopyMemoryToAccelerationStructureKHR(
m_commandBuffer, reinterpret_cast<const VkCopyMemoryToAccelerationStructureInfoKHR *>( &info ) );
}
@@ -13136,6 +13969,7 @@ namespace VULKAN_HPP_NAMESPACE
const VULKAN_HPP_NAMESPACE::AccelerationStructureDeviceAddressInfoKHR * pInfo,
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
return static_cast<DeviceAddress>( d.vkGetAccelerationStructureDeviceAddressKHR(
m_device, reinterpret_cast<const VkAccelerationStructureDeviceAddressInfoKHR *>( pInfo ) ) );
}
@@ -13145,6 +13979,7 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_INLINE DeviceAddress Device::getAccelerationStructureAddressKHR(
const AccelerationStructureDeviceAddressInfoKHR & info, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
return d.vkGetAccelerationStructureDeviceAddressKHR(
m_device, reinterpret_cast<const VkAccelerationStructureDeviceAddressInfoKHR *>( &info ) );
}
@@ -13159,6 +13994,7 @@ namespace VULKAN_HPP_NAMESPACE
uint32_t firstQuery,
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
d.vkCmdWriteAccelerationStructuresPropertiesKHR(
m_commandBuffer,
accelerationStructureCount,
@@ -13177,6 +14013,7 @@ namespace VULKAN_HPP_NAMESPACE
uint32_t firstQuery,
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
d.vkCmdWriteAccelerationStructuresPropertiesKHR(
m_commandBuffer,
accelerationStructures.size(),
@@ -13193,6 +14030,7 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_NAMESPACE::AccelerationStructureCompatibilityKHR * pCompatibility,
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
d.vkGetDeviceAccelerationStructureCompatibilityKHR(
m_device,
reinterpret_cast<const VkAccelerationStructureVersionInfoKHR *>( pVersionInfo ),
@@ -13205,6 +14043,7 @@ namespace VULKAN_HPP_NAMESPACE
Device::getAccelerationStructureCompatibilityKHR( const AccelerationStructureVersionInfoKHR & versionInfo,
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
VULKAN_HPP_NAMESPACE::AccelerationStructureCompatibilityKHR compatibility;
d.vkGetDeviceAccelerationStructureCompatibilityKHR(
m_device,
@@ -13222,6 +14061,7 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_NAMESPACE::AccelerationStructureBuildSizesInfoKHR * pSizeInfo,
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
d.vkGetAccelerationStructureBuildSizesKHR(
m_device,
static_cast<VkAccelerationStructureBuildTypeKHR>( buildType ),
@@ -13238,6 +14078,7 @@ namespace VULKAN_HPP_NAMESPACE
ArrayProxy<const uint32_t> const & maxPrimitiveCounts,
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT_WHEN_NO_EXCEPTIONS
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
# ifdef VULKAN_HPP_NO_EXCEPTIONS
VULKAN_HPP_ASSERT( maxPrimitiveCounts.size() == buildInfo.geometryCount );
# else
@@ -13268,6 +14109,7 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_NAMESPACE::SamplerYcbcrConversion * pYcbcrConversion,
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
return static_cast<Result>(
d.vkCreateSamplerYcbcrConversionKHR( m_device,
reinterpret_cast<const VkSamplerYcbcrConversionCreateInfo *>( pCreateInfo ),
@@ -13283,6 +14125,7 @@ namespace VULKAN_HPP_NAMESPACE
Optional<const AllocationCallbacks> allocator,
Dispatch const & d ) const
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
VULKAN_HPP_NAMESPACE::SamplerYcbcrConversion ycbcrConversion;
Result result = static_cast<Result>( d.vkCreateSamplerYcbcrConversionKHR(
m_device,
@@ -13302,6 +14145,7 @@ namespace VULKAN_HPP_NAMESPACE
Optional<const AllocationCallbacks> allocator,
Dispatch const & d ) const
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
VULKAN_HPP_NAMESPACE::SamplerYcbcrConversion ycbcrConversion;
Result result = static_cast<Result>( d.vkCreateSamplerYcbcrConversionKHR(
m_device,
@@ -13322,6 +14166,7 @@ namespace VULKAN_HPP_NAMESPACE
const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
d.vkDestroySamplerYcbcrConversionKHR( m_device,
static_cast<VkSamplerYcbcrConversion>( ycbcrConversion ),
reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ) );
@@ -13334,6 +14179,7 @@ namespace VULKAN_HPP_NAMESPACE
Optional<const AllocationCallbacks> allocator,
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
d.vkDestroySamplerYcbcrConversionKHR(
m_device,
static_cast<VkSamplerYcbcrConversion>( ycbcrConversion ),
@@ -13350,6 +14196,7 @@ namespace VULKAN_HPP_NAMESPACE
const VULKAN_HPP_NAMESPACE::BindBufferMemoryInfo * pBindInfos,
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
return static_cast<Result>( d.vkBindBufferMemory2KHR(
m_device, bindInfoCount, reinterpret_cast<const VkBindBufferMemoryInfo *>( pBindInfos ) ) );
}
@@ -13360,6 +14207,7 @@ namespace VULKAN_HPP_NAMESPACE
Device::bindBufferMemory2KHR( ArrayProxy<const VULKAN_HPP_NAMESPACE::BindBufferMemoryInfo> const & bindInfos,
Dispatch const & d ) const
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
Result result = static_cast<Result>( d.vkBindBufferMemory2KHR(
m_device, bindInfos.size(), reinterpret_cast<const VkBindBufferMemoryInfo *>( bindInfos.data() ) ) );
return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING "::Device::bindBufferMemory2KHR" );
@@ -13372,6 +14220,7 @@ namespace VULKAN_HPP_NAMESPACE
const VULKAN_HPP_NAMESPACE::BindImageMemoryInfo * pBindInfos,
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
return static_cast<Result>( d.vkBindImageMemory2KHR(
m_device, bindInfoCount, reinterpret_cast<const VkBindImageMemoryInfo *>( pBindInfos ) ) );
}
@@ -13382,6 +14231,7 @@ namespace VULKAN_HPP_NAMESPACE
Device::bindImageMemory2KHR( ArrayProxy<const VULKAN_HPP_NAMESPACE::BindImageMemoryInfo> const & bindInfos,
Dispatch const & d ) const
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
Result result = static_cast<Result>( d.vkBindImageMemory2KHR(
m_device, bindInfos.size(), reinterpret_cast<const VkBindImageMemoryInfo *>( bindInfos.data() ) ) );
return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING "::Device::bindImageMemory2KHR" );
@@ -13396,6 +14246,7 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_NAMESPACE::ImageDrmFormatModifierPropertiesEXT * pProperties,
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
return static_cast<Result>( d.vkGetImageDrmFormatModifierPropertiesEXT(
m_device,
static_cast<VkImage>( image ),
@@ -13407,6 +14258,7 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_INLINE typename ResultValueType<VULKAN_HPP_NAMESPACE::ImageDrmFormatModifierPropertiesEXT>::type
Device::getImageDrmFormatModifierPropertiesEXT( VULKAN_HPP_NAMESPACE::Image image, Dispatch const & d ) const
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
VULKAN_HPP_NAMESPACE::ImageDrmFormatModifierPropertiesEXT properties;
Result result = static_cast<Result>( d.vkGetImageDrmFormatModifierPropertiesEXT(
m_device,
@@ -13426,6 +14278,7 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_NAMESPACE::ValidationCacheEXT * pValidationCache,
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
return static_cast<Result>(
d.vkCreateValidationCacheEXT( m_device,
reinterpret_cast<const VkValidationCacheCreateInfoEXT *>( pCreateInfo ),
@@ -13440,6 +14293,7 @@ namespace VULKAN_HPP_NAMESPACE
Optional<const AllocationCallbacks> allocator,
Dispatch const & d ) const
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
VULKAN_HPP_NAMESPACE::ValidationCacheEXT validationCache;
Result result = static_cast<Result>(
d.vkCreateValidationCacheEXT( m_device,
@@ -13458,6 +14312,7 @@ namespace VULKAN_HPP_NAMESPACE
Optional<const AllocationCallbacks> allocator,
Dispatch const & d ) const
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
VULKAN_HPP_NAMESPACE::ValidationCacheEXT validationCache;
Result result = static_cast<Result>(
d.vkCreateValidationCacheEXT( m_device,
@@ -13478,6 +14333,7 @@ namespace VULKAN_HPP_NAMESPACE
const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
d.vkDestroyValidationCacheEXT( m_device,
static_cast<VkValidationCacheEXT>( validationCache ),
reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ) );
@@ -13489,6 +14345,7 @@ namespace VULKAN_HPP_NAMESPACE
Optional<const AllocationCallbacks> allocator,
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
d.vkDestroyValidationCacheEXT( m_device,
static_cast<VkValidationCacheEXT>( validationCache ),
reinterpret_cast<const VkAllocationCallbacks *>(
@@ -13501,6 +14358,7 @@ namespace VULKAN_HPP_NAMESPACE
const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
d.vkDestroyValidationCacheEXT( m_device,
static_cast<VkValidationCacheEXT>( validationCache ),
reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ) );
@@ -13512,6 +14370,7 @@ namespace VULKAN_HPP_NAMESPACE
Optional<const AllocationCallbacks> allocator,
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
d.vkDestroyValidationCacheEXT( m_device,
static_cast<VkValidationCacheEXT>( validationCache ),
reinterpret_cast<const VkAllocationCallbacks *>(
@@ -13526,6 +14385,7 @@ namespace VULKAN_HPP_NAMESPACE
const VULKAN_HPP_NAMESPACE::ValidationCacheEXT * pSrcCaches,
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
return static_cast<Result>(
d.vkMergeValidationCachesEXT( m_device,
static_cast<VkValidationCacheEXT>( dstCache ),
@@ -13540,6 +14400,7 @@ namespace VULKAN_HPP_NAMESPACE
ArrayProxy<const VULKAN_HPP_NAMESPACE::ValidationCacheEXT> const & srcCaches,
Dispatch const & d ) const
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
Result result = static_cast<Result>(
d.vkMergeValidationCachesEXT( m_device,
static_cast<VkValidationCacheEXT>( dstCache ),
@@ -13556,6 +14417,7 @@ namespace VULKAN_HPP_NAMESPACE
void * pData,
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
return static_cast<Result>( d.vkGetValidationCacheDataEXT(
m_device, static_cast<VkValidationCacheEXT>( validationCache ), pDataSize, pData ) );
}
@@ -13566,6 +14428,7 @@ namespace VULKAN_HPP_NAMESPACE
Device::getValidationCacheDataEXT( VULKAN_HPP_NAMESPACE::ValidationCacheEXT validationCache,
Dispatch const & d ) const
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
std::vector<uint8_t, Uint8_tAllocator> data;
size_t dataSize;
Result result;
@@ -13600,6 +14463,7 @@ namespace VULKAN_HPP_NAMESPACE
Uint8_tAllocator & uint8_tAllocator,
Dispatch const & d ) const
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
std::vector<uint8_t, Uint8_tAllocator> data( uint8_tAllocator );
size_t dataSize;
Result result;
@@ -13633,6 +14497,7 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_NAMESPACE::ImageLayout imageLayout,
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
d.vkCmdBindShadingRateImageNV(
m_commandBuffer, static_cast<VkImageView>( imageView ), static_cast<VkImageLayout>( imageLayout ) );
}
@@ -13644,6 +14509,7 @@ namespace VULKAN_HPP_NAMESPACE
const VULKAN_HPP_NAMESPACE::ShadingRatePaletteNV * pShadingRatePalettes,
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
d.vkCmdSetViewportShadingRatePaletteNV( m_commandBuffer,
firstViewport,
viewportCount,
@@ -13657,6 +14523,7 @@ namespace VULKAN_HPP_NAMESPACE
ArrayProxy<const VULKAN_HPP_NAMESPACE::ShadingRatePaletteNV> const & shadingRatePalettes,
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
d.vkCmdSetViewportShadingRatePaletteNV(
m_commandBuffer,
firstViewport,
@@ -13672,6 +14539,7 @@ namespace VULKAN_HPP_NAMESPACE
const VULKAN_HPP_NAMESPACE::CoarseSampleOrderCustomNV * pCustomSampleOrders,
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
d.vkCmdSetCoarseSampleOrderNV( m_commandBuffer,
static_cast<VkCoarseSampleOrderTypeNV>( sampleOrderType ),
customSampleOrderCount,
@@ -13685,6 +14553,7 @@ namespace VULKAN_HPP_NAMESPACE
ArrayProxy<const VULKAN_HPP_NAMESPACE::CoarseSampleOrderCustomNV> const & customSampleOrders,
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
d.vkCmdSetCoarseSampleOrderNV( m_commandBuffer,
static_cast<VkCoarseSampleOrderTypeNV>( sampleOrderType ),
customSampleOrders.size(),
@@ -13701,6 +14570,7 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_NAMESPACE::AccelerationStructureNV * pAccelerationStructure,
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
return static_cast<Result>(
d.vkCreateAccelerationStructureNV( m_device,
reinterpret_cast<const VkAccelerationStructureCreateInfoNV *>( pCreateInfo ),
@@ -13715,6 +14585,7 @@ namespace VULKAN_HPP_NAMESPACE
Optional<const AllocationCallbacks> allocator,
Dispatch const & d ) const
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
VULKAN_HPP_NAMESPACE::AccelerationStructureNV accelerationStructure;
Result result = static_cast<Result>( d.vkCreateAccelerationStructureNV(
m_device,
@@ -13734,6 +14605,7 @@ namespace VULKAN_HPP_NAMESPACE
Optional<const AllocationCallbacks> allocator,
Dispatch const & d ) const
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
VULKAN_HPP_NAMESPACE::AccelerationStructureNV accelerationStructure;
Result result = static_cast<Result>( d.vkCreateAccelerationStructureNV(
m_device,
@@ -13757,6 +14629,7 @@ namespace VULKAN_HPP_NAMESPACE
const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
d.vkDestroyAccelerationStructureNV( m_device,
static_cast<VkAccelerationStructureNV>( accelerationStructure ),
reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ) );
@@ -13769,6 +14642,7 @@ namespace VULKAN_HPP_NAMESPACE
Optional<const AllocationCallbacks> allocator,
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
d.vkDestroyAccelerationStructureNV(
m_device,
static_cast<VkAccelerationStructureNV>( accelerationStructure ),
@@ -13782,6 +14656,7 @@ namespace VULKAN_HPP_NAMESPACE
const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
d.vkDestroyAccelerationStructureNV( m_device,
static_cast<VkAccelerationStructureNV>( accelerationStructure ),
reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ) );
@@ -13793,6 +14668,7 @@ namespace VULKAN_HPP_NAMESPACE
Optional<const AllocationCallbacks> allocator,
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
d.vkDestroyAccelerationStructureNV(
m_device,
static_cast<VkAccelerationStructureNV>( accelerationStructure ),
@@ -13807,6 +14683,7 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_NAMESPACE::MemoryRequirements2KHR * pMemoryRequirements,
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
d.vkGetAccelerationStructureMemoryRequirementsNV(
m_device,
reinterpret_cast<const VkAccelerationStructureMemoryRequirementsInfoNV *>( pInfo ),
@@ -13819,6 +14696,7 @@ namespace VULKAN_HPP_NAMESPACE
Device::getAccelerationStructureMemoryRequirementsNV( const AccelerationStructureMemoryRequirementsInfoNV & info,
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
VULKAN_HPP_NAMESPACE::MemoryRequirements2KHR memoryRequirements;
d.vkGetAccelerationStructureMemoryRequirementsNV(
m_device,
@@ -13832,6 +14710,7 @@ namespace VULKAN_HPP_NAMESPACE
Device::getAccelerationStructureMemoryRequirementsNV( const AccelerationStructureMemoryRequirementsInfoNV & info,
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
StructureChain<X, Y, Z...> structureChain;
VULKAN_HPP_NAMESPACE::MemoryRequirements2KHR & memoryRequirements =
structureChain.template get<VULKAN_HPP_NAMESPACE::MemoryRequirements2KHR>();
@@ -13849,6 +14728,7 @@ namespace VULKAN_HPP_NAMESPACE
const VULKAN_HPP_NAMESPACE::BindAccelerationStructureMemoryInfoNV * pBindInfos,
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
return static_cast<Result>( d.vkBindAccelerationStructureMemoryNV(
m_device, bindInfoCount, reinterpret_cast<const VkBindAccelerationStructureMemoryInfoNV *>( pBindInfos ) ) );
}
@@ -13860,6 +14740,7 @@ namespace VULKAN_HPP_NAMESPACE
ArrayProxy<const VULKAN_HPP_NAMESPACE::BindAccelerationStructureMemoryInfoNV> const & bindInfos,
Dispatch const & d ) const
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
Result result = static_cast<Result>( d.vkBindAccelerationStructureMemoryNV(
m_device,
bindInfos.size(),
@@ -13880,6 +14761,7 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_NAMESPACE::DeviceSize scratchOffset,
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
d.vkCmdBuildAccelerationStructureNV( m_commandBuffer,
reinterpret_cast<const VkAccelerationStructureInfoNV *>( pInfo ),
static_cast<VkBuffer>( instanceData ),
@@ -13903,6 +14785,7 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_NAMESPACE::DeviceSize scratchOffset,
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
d.vkCmdBuildAccelerationStructureNV( m_commandBuffer,
reinterpret_cast<const VkAccelerationStructureInfoNV *>( &info ),
static_cast<VkBuffer>( instanceData ),
@@ -13922,6 +14805,7 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_NAMESPACE::CopyAccelerationStructureModeKHR mode,
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
d.vkCmdCopyAccelerationStructureNV( m_commandBuffer,
static_cast<VkAccelerationStructureNV>( dst ),
static_cast<VkAccelerationStructureNV>( src ),
@@ -13945,6 +14829,7 @@ namespace VULKAN_HPP_NAMESPACE
uint32_t depth,
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
d.vkCmdTraceRaysNV( m_commandBuffer,
static_cast<VkBuffer>( raygenShaderBindingTableBuffer ),
static_cast<VkDeviceSize>( raygenShaderBindingOffset ),
@@ -13971,6 +14856,7 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_NAMESPACE::Pipeline * pPipelines,
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
return static_cast<Result>(
d.vkCreateRayTracingPipelinesNV( m_device,
static_cast<VkPipelineCache>( pipelineCache ),
@@ -13989,6 +14875,7 @@ namespace VULKAN_HPP_NAMESPACE
Optional<const AllocationCallbacks> allocator,
Dispatch const & d ) const
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
std::vector<Pipeline, PipelineAllocator> pipelines( createInfos.size() );
Result result = static_cast<Result>(
d.vkCreateRayTracingPipelinesNV( m_device,
@@ -14017,6 +14904,7 @@ namespace VULKAN_HPP_NAMESPACE
PipelineAllocator & pipelineAllocator,
Dispatch const & d ) const
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
std::vector<Pipeline, PipelineAllocator> pipelines( createInfos.size(), pipelineAllocator );
Result result = static_cast<Result>(
d.vkCreateRayTracingPipelinesNV( m_device,
@@ -14040,6 +14928,7 @@ namespace VULKAN_HPP_NAMESPACE
Optional<const AllocationCallbacks> allocator,
Dispatch const & d ) const
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
Pipeline pipeline;
Result result = static_cast<Result>(
d.vkCreateRayTracingPipelinesNV( m_device,
@@ -14065,6 +14954,7 @@ namespace VULKAN_HPP_NAMESPACE
Optional<const AllocationCallbacks> allocator,
Dispatch const & d ) const
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
std::vector<UniqueHandle<Pipeline, Dispatch>, PipelineAllocator> uniquePipelines;
std::vector<Pipeline> pipelines( createInfos.size() );
Result result = static_cast<Result>(
@@ -14105,6 +14995,7 @@ namespace VULKAN_HPP_NAMESPACE
PipelineAllocator & pipelineAllocator,
Dispatch const & d ) const
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
std::vector<UniqueHandle<Pipeline, Dispatch>, PipelineAllocator> uniquePipelines( pipelineAllocator );
std::vector<Pipeline> pipelines( createInfos.size() );
Result result = static_cast<Result>(
@@ -14139,6 +15030,7 @@ namespace VULKAN_HPP_NAMESPACE
Optional<const AllocationCallbacks> allocator,
Dispatch const & d ) const
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
Pipeline pipeline;
Result result = static_cast<Result>(
d.vkCreateRayTracingPipelinesNV( m_device,
@@ -14168,6 +15060,7 @@ namespace VULKAN_HPP_NAMESPACE
void * pData,
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
return static_cast<Result>( d.vkGetRayTracingShaderGroupHandlesNV(
m_device, static_cast<VkPipeline>( pipeline ), firstGroup, groupCount, dataSize, pData ) );
}
@@ -14183,6 +15076,7 @@ namespace VULKAN_HPP_NAMESPACE
ArrayProxy<T> const & data,
Dispatch const & d ) const
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
Result result =
static_cast<Result>( d.vkGetRayTracingShaderGroupHandlesNV( m_device,
static_cast<VkPipeline>( pipeline ),
@@ -14201,6 +15095,7 @@ namespace VULKAN_HPP_NAMESPACE
size_t dataSize,
Dispatch const & d ) const
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
VULKAN_HPP_ASSERT( dataSize % sizeof( T ) == 0 );
std::vector<T, Allocator> data( dataSize / sizeof( T ) );
Result result =
@@ -14220,6 +15115,7 @@ namespace VULKAN_HPP_NAMESPACE
uint32_t groupCount,
Dispatch const & d ) const
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
T data;
Result result = static_cast<Result>( d.vkGetRayTracingShaderGroupHandlesNV( m_device,
static_cast<VkPipeline>( pipeline ),
@@ -14238,6 +15134,7 @@ namespace VULKAN_HPP_NAMESPACE
void * pData,
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
return static_cast<Result>( d.vkGetAccelerationStructureHandleNV(
m_device, static_cast<VkAccelerationStructureNV>( accelerationStructure ), dataSize, pData ) );
}
@@ -14251,6 +15148,7 @@ namespace VULKAN_HPP_NAMESPACE
ArrayProxy<T> const & data,
Dispatch const & d ) const
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
Result result = static_cast<Result>(
d.vkGetAccelerationStructureHandleNV( m_device,
static_cast<VkAccelerationStructureNV>( accelerationStructure ),
@@ -14265,6 +15163,7 @@ namespace VULKAN_HPP_NAMESPACE
size_t dataSize,
Dispatch const & d ) const
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
VULKAN_HPP_ASSERT( dataSize % sizeof( T ) == 0 );
std::vector<T, Allocator> data( dataSize / sizeof( T ) );
Result result = static_cast<Result>(
@@ -14280,6 +15179,7 @@ namespace VULKAN_HPP_NAMESPACE
Device::getAccelerationStructureHandleNV( VULKAN_HPP_NAMESPACE::AccelerationStructureNV accelerationStructure,
Dispatch const & d ) const
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
T data;
Result result = static_cast<Result>(
d.vkGetAccelerationStructureHandleNV( m_device,
@@ -14299,6 +15199,7 @@ namespace VULKAN_HPP_NAMESPACE
uint32_t firstQuery,
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
d.vkCmdWriteAccelerationStructuresPropertiesNV(
m_commandBuffer,
accelerationStructureCount,
@@ -14317,6 +15218,7 @@ namespace VULKAN_HPP_NAMESPACE
uint32_t firstQuery,
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
d.vkCmdWriteAccelerationStructuresPropertiesNV(
m_commandBuffer,
accelerationStructures.size(),
@@ -14332,6 +15234,7 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::compileDeferredNV(
VULKAN_HPP_NAMESPACE::Pipeline pipeline, uint32_t shader, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
return static_cast<Result>( d.vkCompileDeferredNV( m_device, static_cast<VkPipeline>( pipeline ), shader ) );
}
#else
@@ -14339,6 +15242,7 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType<void>::type
Device::compileDeferredNV( VULKAN_HPP_NAMESPACE::Pipeline pipeline, uint32_t shader, Dispatch const & d ) const
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
Result result =
static_cast<Result>( d.vkCompileDeferredNV( m_device, static_cast<VkPipeline>( pipeline ), shader ) );
return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING "::Device::compileDeferredNV" );
@@ -14353,6 +15257,7 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_NAMESPACE::DescriptorSetLayoutSupport * pSupport,
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
d.vkGetDescriptorSetLayoutSupportKHR( m_device,
reinterpret_cast<const VkDescriptorSetLayoutCreateInfo *>( pCreateInfo ),
reinterpret_cast<VkDescriptorSetLayoutSupport *>( pSupport ) );
@@ -14364,6 +15269,7 @@ namespace VULKAN_HPP_NAMESPACE
Device::getDescriptorSetLayoutSupportKHR( const DescriptorSetLayoutCreateInfo & createInfo,
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
VULKAN_HPP_NAMESPACE::DescriptorSetLayoutSupport support;
d.vkGetDescriptorSetLayoutSupportKHR( m_device,
reinterpret_cast<const VkDescriptorSetLayoutCreateInfo *>( &createInfo ),
@@ -14376,6 +15282,7 @@ namespace VULKAN_HPP_NAMESPACE
Device::getDescriptorSetLayoutSupportKHR( const DescriptorSetLayoutCreateInfo & createInfo,
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
StructureChain<X, Y, Z...> structureChain;
VULKAN_HPP_NAMESPACE::DescriptorSetLayoutSupport & support =
structureChain.template get<VULKAN_HPP_NAMESPACE::DescriptorSetLayoutSupport>();
@@ -14397,6 +15304,7 @@ namespace VULKAN_HPP_NAMESPACE
uint32_t stride,
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
d.vkCmdDrawIndirectCountKHR( m_commandBuffer,
static_cast<VkBuffer>( buffer ),
static_cast<VkDeviceSize>( offset ),
@@ -14415,6 +15323,7 @@ namespace VULKAN_HPP_NAMESPACE
uint32_t stride,
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
d.vkCmdDrawIndexedIndirectCountKHR( m_commandBuffer,
static_cast<VkBuffer>( buffer ),
static_cast<VkDeviceSize>( offset ),
@@ -14433,6 +15342,7 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_NAMESPACE::MemoryHostPointerPropertiesEXT * pMemoryHostPointerProperties,
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
return static_cast<Result>( d.vkGetMemoryHostPointerPropertiesEXT(
m_device,
static_cast<VkExternalMemoryHandleTypeFlagBits>( handleType ),
@@ -14448,6 +15358,7 @@ namespace VULKAN_HPP_NAMESPACE
const void * pHostPointer,
Dispatch const & d ) const
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
VULKAN_HPP_NAMESPACE::MemoryHostPointerPropertiesEXT memoryHostPointerProperties;
Result result = static_cast<Result>( d.vkGetMemoryHostPointerPropertiesEXT(
m_device,
@@ -14468,6 +15379,7 @@ namespace VULKAN_HPP_NAMESPACE
uint32_t marker,
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
d.vkCmdWriteBufferMarkerAMD( m_commandBuffer,
static_cast<VkPipelineStageFlagBits>( pipelineStage ),
static_cast<VkBuffer>( dstBuffer ),
@@ -14483,6 +15395,7 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_NAMESPACE::TimeDomainEXT * pTimeDomains,
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
return static_cast<Result>( d.vkGetPhysicalDeviceCalibrateableTimeDomainsEXT(
m_physicalDevice, pTimeDomainCount, reinterpret_cast<VkTimeDomainEXT *>( pTimeDomains ) ) );
}
@@ -14493,6 +15406,7 @@ namespace VULKAN_HPP_NAMESPACE
typename ResultValueType<std::vector<TimeDomainEXT, TimeDomainEXTAllocator>>::type
PhysicalDevice::getCalibrateableTimeDomainsEXT( Dispatch const & d ) const
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
std::vector<TimeDomainEXT, TimeDomainEXTAllocator> timeDomains;
uint32_t timeDomainCount;
Result result;
@@ -14525,6 +15439,7 @@ namespace VULKAN_HPP_NAMESPACE
PhysicalDevice::getCalibrateableTimeDomainsEXT( TimeDomainEXTAllocator & timeDomainEXTAllocator,
Dispatch const & d ) const
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
std::vector<TimeDomainEXT, TimeDomainEXTAllocator> timeDomains( timeDomainEXTAllocator );
uint32_t timeDomainCount;
Result result;
@@ -14557,6 +15472,7 @@ namespace VULKAN_HPP_NAMESPACE
uint64_t * pMaxDeviation,
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
return static_cast<Result>(
d.vkGetCalibratedTimestampsEXT( m_device,
timestampCount,
@@ -14574,6 +15490,7 @@ namespace VULKAN_HPP_NAMESPACE
ArrayProxy<uint64_t> const & timestamps,
Dispatch const & d ) const
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
# ifdef VULKAN_HPP_NO_EXCEPTIONS
VULKAN_HPP_ASSERT( timestampInfos.size() == timestamps.size() );
# else
@@ -14601,6 +15518,7 @@ namespace VULKAN_HPP_NAMESPACE
ArrayProxy<const VULKAN_HPP_NAMESPACE::CalibratedTimestampInfoEXT> const & timestampInfos,
Dispatch const & d ) const
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
std::pair<std::vector<uint64_t, Uint64_tAllocator>, uint64_t> data(
std::piecewise_construct, std::forward_as_tuple( timestampInfos.size() ), std::forward_as_tuple( 0 ) );
std::vector<uint64_t, Uint64_tAllocator> & timestamps = data.first;
@@ -14625,6 +15543,7 @@ namespace VULKAN_HPP_NAMESPACE
Uint64_tAllocator & uint64_tAllocator,
Dispatch const & d ) const
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
std::pair<std::vector<uint64_t, Uint64_tAllocator>, uint64_t> data(
std::piecewise_construct,
std::forward_as_tuple( timestampInfos.size(), uint64_tAllocator ),
@@ -14648,6 +15567,7 @@ namespace VULKAN_HPP_NAMESPACE
uint32_t firstTask,
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
d.vkCmdDrawMeshTasksNV( m_commandBuffer, taskCount, firstTask );
}
@@ -14658,6 +15578,7 @@ namespace VULKAN_HPP_NAMESPACE
uint32_t stride,
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
d.vkCmdDrawMeshTasksIndirectNV(
m_commandBuffer, static_cast<VkBuffer>( buffer ), static_cast<VkDeviceSize>( offset ), drawCount, stride );
}
@@ -14672,6 +15593,7 @@ namespace VULKAN_HPP_NAMESPACE
uint32_t stride,
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
d.vkCmdDrawMeshTasksIndirectCountNV( m_commandBuffer,
static_cast<VkBuffer>( buffer ),
static_cast<VkDeviceSize>( offset ),
@@ -14689,6 +15611,7 @@ namespace VULKAN_HPP_NAMESPACE
const VULKAN_HPP_NAMESPACE::Rect2D * pExclusiveScissors,
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
d.vkCmdSetExclusiveScissorNV( m_commandBuffer,
firstExclusiveScissor,
exclusiveScissorCount,
@@ -14702,6 +15625,7 @@ namespace VULKAN_HPP_NAMESPACE
ArrayProxy<const VULKAN_HPP_NAMESPACE::Rect2D> const & exclusiveScissors,
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
d.vkCmdSetExclusiveScissorNV( m_commandBuffer,
firstExclusiveScissor,
exclusiveScissors.size(),
@@ -14715,6 +15639,7 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_INLINE void CommandBuffer::setCheckpointNV( const void * pCheckpointMarker,
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
d.vkCmdSetCheckpointNV( m_commandBuffer, pCheckpointMarker );
}
@@ -14723,6 +15648,7 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_NAMESPACE::CheckpointDataNV * pCheckpointData,
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
d.vkGetQueueCheckpointDataNV(
m_queue, pCheckpointDataCount, reinterpret_cast<VkCheckpointDataNV *>( pCheckpointData ) );
}
@@ -14732,6 +15658,7 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE std::vector<CheckpointDataNV, CheckpointDataNVAllocator>
Queue::getCheckpointDataNV( Dispatch const & d ) const
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
std::vector<CheckpointDataNV, CheckpointDataNVAllocator> checkpointData;
uint32_t checkpointDataCount;
d.vkGetQueueCheckpointDataNV( m_queue, &checkpointDataCount, nullptr );
@@ -14749,6 +15676,7 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE std::vector<CheckpointDataNV, CheckpointDataNVAllocator>
Queue::getCheckpointDataNV( CheckpointDataNVAllocator & checkpointDataNVAllocator, Dispatch const & d ) const
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
std::vector<CheckpointDataNV, CheckpointDataNVAllocator> checkpointData( checkpointDataNVAllocator );
uint32_t checkpointDataCount;
d.vkGetQueueCheckpointDataNV( m_queue, &checkpointDataCount, nullptr );
@@ -14766,6 +15694,7 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::getSemaphoreCounterValueKHR(
VULKAN_HPP_NAMESPACE::Semaphore semaphore, uint64_t * pValue, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
return static_cast<Result>(
d.vkGetSemaphoreCounterValueKHR( m_device, static_cast<VkSemaphore>( semaphore ), pValue ) );
}
@@ -14775,6 +15704,7 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType<uint64_t>::type
Device::getSemaphoreCounterValueKHR( VULKAN_HPP_NAMESPACE::Semaphore semaphore, Dispatch const & d ) const
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
uint64_t value;
Result result =
static_cast<Result>( d.vkGetSemaphoreCounterValueKHR( m_device, static_cast<VkSemaphore>( semaphore ), &value ) );
@@ -14788,6 +15718,7 @@ namespace VULKAN_HPP_NAMESPACE
uint64_t timeout,
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
return static_cast<Result>(
d.vkWaitSemaphoresKHR( m_device, reinterpret_cast<const VkSemaphoreWaitInfo *>( pWaitInfo ), timeout ) );
}
@@ -14798,6 +15729,7 @@ namespace VULKAN_HPP_NAMESPACE
uint64_t timeout,
Dispatch const & d ) const
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
Result result = static_cast<Result>(
d.vkWaitSemaphoresKHR( m_device, reinterpret_cast<const VkSemaphoreWaitInfo *>( &waitInfo ), timeout ) );
return createResultValue( result,
@@ -14810,6 +15742,7 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::signalSemaphoreKHR(
const VULKAN_HPP_NAMESPACE::SemaphoreSignalInfo * pSignalInfo, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
return static_cast<Result>(
d.vkSignalSemaphoreKHR( m_device, reinterpret_cast<const VkSemaphoreSignalInfo *>( pSignalInfo ) ) );
}
@@ -14819,6 +15752,7 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType<void>::type
Device::signalSemaphoreKHR( const SemaphoreSignalInfo & signalInfo, Dispatch const & d ) const
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
Result result = static_cast<Result>(
d.vkSignalSemaphoreKHR( m_device, reinterpret_cast<const VkSemaphoreSignalInfo *>( &signalInfo ) ) );
return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING "::Device::signalSemaphoreKHR" );
@@ -14832,6 +15766,7 @@ namespace VULKAN_HPP_NAMESPACE
const VULKAN_HPP_NAMESPACE::InitializePerformanceApiInfoINTEL * pInitializeInfo,
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
return static_cast<Result>( d.vkInitializePerformanceApiINTEL(
m_device, reinterpret_cast<const VkInitializePerformanceApiInfoINTEL *>( pInitializeInfo ) ) );
}
@@ -14842,6 +15777,7 @@ namespace VULKAN_HPP_NAMESPACE
Device::initializePerformanceApiINTEL( const InitializePerformanceApiInfoINTEL & initializeInfo,
Dispatch const & d ) const
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
Result result = static_cast<Result>( d.vkInitializePerformanceApiINTEL(
m_device, reinterpret_cast<const VkInitializePerformanceApiInfoINTEL *>( &initializeInfo ) ) );
return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING "::Device::initializePerformanceApiINTEL" );
@@ -14851,6 +15787,7 @@ namespace VULKAN_HPP_NAMESPACE
template <typename Dispatch>
VULKAN_HPP_INLINE void Device::uninitializePerformanceApiINTEL( Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
d.vkUninitializePerformanceApiINTEL( m_device );
}
@@ -14858,6 +15795,7 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result CommandBuffer::setPerformanceMarkerINTEL(
const VULKAN_HPP_NAMESPACE::PerformanceMarkerInfoINTEL * pMarkerInfo, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
return static_cast<Result>( d.vkCmdSetPerformanceMarkerINTEL(
m_commandBuffer, reinterpret_cast<const VkPerformanceMarkerInfoINTEL *>( pMarkerInfo ) ) );
}
@@ -14867,6 +15805,7 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType<void>::type
CommandBuffer::setPerformanceMarkerINTEL( const PerformanceMarkerInfoINTEL & markerInfo, Dispatch const & d ) const
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
Result result = static_cast<Result>( d.vkCmdSetPerformanceMarkerINTEL(
m_commandBuffer, reinterpret_cast<const VkPerformanceMarkerInfoINTEL *>( &markerInfo ) ) );
return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING "::CommandBuffer::setPerformanceMarkerINTEL" );
@@ -14878,6 +15817,7 @@ namespace VULKAN_HPP_NAMESPACE
const VULKAN_HPP_NAMESPACE::PerformanceStreamMarkerInfoINTEL * pMarkerInfo,
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
return static_cast<Result>( d.vkCmdSetPerformanceStreamMarkerINTEL(
m_commandBuffer, reinterpret_cast<const VkPerformanceStreamMarkerInfoINTEL *>( pMarkerInfo ) ) );
}
@@ -14888,6 +15828,7 @@ namespace VULKAN_HPP_NAMESPACE
CommandBuffer::setPerformanceStreamMarkerINTEL( const PerformanceStreamMarkerInfoINTEL & markerInfo,
Dispatch const & d ) const
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
Result result = static_cast<Result>( d.vkCmdSetPerformanceStreamMarkerINTEL(
m_commandBuffer, reinterpret_cast<const VkPerformanceStreamMarkerInfoINTEL *>( &markerInfo ) ) );
return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING "::CommandBuffer::setPerformanceStreamMarkerINTEL" );
@@ -14899,6 +15840,7 @@ namespace VULKAN_HPP_NAMESPACE
const VULKAN_HPP_NAMESPACE::PerformanceOverrideInfoINTEL * pOverrideInfo,
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
return static_cast<Result>( d.vkCmdSetPerformanceOverrideINTEL(
m_commandBuffer, reinterpret_cast<const VkPerformanceOverrideInfoINTEL *>( pOverrideInfo ) ) );
}
@@ -14909,6 +15851,7 @@ namespace VULKAN_HPP_NAMESPACE
CommandBuffer::setPerformanceOverrideINTEL( const PerformanceOverrideInfoINTEL & overrideInfo,
Dispatch const & d ) const
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
Result result = static_cast<Result>( d.vkCmdSetPerformanceOverrideINTEL(
m_commandBuffer, reinterpret_cast<const VkPerformanceOverrideInfoINTEL *>( &overrideInfo ) ) );
return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING "::CommandBuffer::setPerformanceOverrideINTEL" );
@@ -14921,6 +15864,7 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_NAMESPACE::PerformanceConfigurationINTEL * pConfiguration,
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
return static_cast<Result>( d.vkAcquirePerformanceConfigurationINTEL(
m_device,
reinterpret_cast<const VkPerformanceConfigurationAcquireInfoINTEL *>( pAcquireInfo ),
@@ -14934,6 +15878,7 @@ namespace VULKAN_HPP_NAMESPACE
Device::acquirePerformanceConfigurationINTEL( const PerformanceConfigurationAcquireInfoINTEL & acquireInfo,
Dispatch const & d ) const
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
VULKAN_HPP_NAMESPACE::PerformanceConfigurationINTEL configuration;
Result result = static_cast<Result>( d.vkAcquirePerformanceConfigurationINTEL(
m_device,
@@ -14950,6 +15895,7 @@ namespace VULKAN_HPP_NAMESPACE
Device::acquirePerformanceConfigurationINTELUnique( const PerformanceConfigurationAcquireInfoINTEL & acquireInfo,
Dispatch const & d ) const
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
VULKAN_HPP_NAMESPACE::PerformanceConfigurationINTEL configuration;
Result result = static_cast<Result>( d.vkAcquirePerformanceConfigurationINTEL(
m_device,
@@ -14970,6 +15916,7 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::releasePerformanceConfigurationINTEL(
VULKAN_HPP_NAMESPACE::PerformanceConfigurationINTEL configuration, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
return static_cast<Result>( d.vkReleasePerformanceConfigurationINTEL(
m_device, static_cast<VkPerformanceConfigurationINTEL>( configuration ) ) );
}
@@ -14979,6 +15926,7 @@ namespace VULKAN_HPP_NAMESPACE
Device::releasePerformanceConfigurationINTEL( VULKAN_HPP_NAMESPACE::PerformanceConfigurationINTEL configuration,
Dispatch const & d ) const
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
Result result = static_cast<Result>( d.vkReleasePerformanceConfigurationINTEL(
m_device, static_cast<VkPerformanceConfigurationINTEL>( configuration ) ) );
return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING "::Device::releasePerformanceConfigurationINTEL" );
@@ -14990,6 +15938,7 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::release(
VULKAN_HPP_NAMESPACE::PerformanceConfigurationINTEL configuration, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
return static_cast<Result>( d.vkReleasePerformanceConfigurationINTEL(
m_device, static_cast<VkPerformanceConfigurationINTEL>( configuration ) ) );
}
@@ -14998,6 +15947,7 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType<void>::type
Device::release( VULKAN_HPP_NAMESPACE::PerformanceConfigurationINTEL configuration, Dispatch const & d ) const
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
Result result = static_cast<Result>( d.vkReleasePerformanceConfigurationINTEL(
m_device, static_cast<VkPerformanceConfigurationINTEL>( configuration ) ) );
return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING "::Device::release" );
@@ -15009,6 +15959,7 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Queue::setPerformanceConfigurationINTEL(
VULKAN_HPP_NAMESPACE::PerformanceConfigurationINTEL configuration, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
return static_cast<Result>( d.vkQueueSetPerformanceConfigurationINTEL(
m_queue, static_cast<VkPerformanceConfigurationINTEL>( configuration ) ) );
}
@@ -15018,6 +15969,7 @@ namespace VULKAN_HPP_NAMESPACE
Queue::setPerformanceConfigurationINTEL( VULKAN_HPP_NAMESPACE::PerformanceConfigurationINTEL configuration,
Dispatch const & d ) const
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
Result result = static_cast<Result>( d.vkQueueSetPerformanceConfigurationINTEL(
m_queue, static_cast<VkPerformanceConfigurationINTEL>( configuration ) ) );
return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING "::Queue::setPerformanceConfigurationINTEL" );
@@ -15030,6 +15982,7 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_NAMESPACE::PerformanceValueINTEL * pValue,
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
return static_cast<Result>(
d.vkGetPerformanceParameterINTEL( m_device,
static_cast<VkPerformanceParameterTypeINTEL>( parameter ),
@@ -15043,6 +15996,7 @@ namespace VULKAN_HPP_NAMESPACE
Device::getPerformanceParameterINTEL( VULKAN_HPP_NAMESPACE::PerformanceParameterTypeINTEL parameter,
Dispatch const & d ) const
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
VULKAN_HPP_NAMESPACE::PerformanceValueINTEL value;
Result result =
static_cast<Result>( d.vkGetPerformanceParameterINTEL( m_device,
@@ -15059,6 +16013,7 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_NAMESPACE::Bool32 localDimmingEnable,
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
d.vkSetLocalDimmingAMD(
m_device, static_cast<VkSwapchainKHR>( swapChain ), static_cast<VkBool32>( localDimmingEnable ) );
}
@@ -15073,6 +16028,7 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_NAMESPACE::SurfaceKHR * pSurface,
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
return static_cast<Result>(
d.vkCreateImagePipeSurfaceFUCHSIA( m_instance,
reinterpret_cast<const VkImagePipeSurfaceCreateInfoFUCHSIA *>( pCreateInfo ),
@@ -15088,6 +16044,7 @@ namespace VULKAN_HPP_NAMESPACE
Optional<const AllocationCallbacks> allocator,
Dispatch const & d ) const
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
VULKAN_HPP_NAMESPACE::SurfaceKHR surface;
Result result = static_cast<Result>( d.vkCreateImagePipeSurfaceFUCHSIA(
m_instance,
@@ -15107,6 +16064,7 @@ namespace VULKAN_HPP_NAMESPACE
Optional<const AllocationCallbacks> allocator,
Dispatch const & d ) const
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
VULKAN_HPP_NAMESPACE::SurfaceKHR surface;
Result result = static_cast<Result>( d.vkCreateImagePipeSurfaceFUCHSIA(
m_instance,
@@ -15132,6 +16090,7 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_NAMESPACE::SurfaceKHR * pSurface,
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
return static_cast<Result>(
d.vkCreateMetalSurfaceEXT( m_instance,
reinterpret_cast<const VkMetalSurfaceCreateInfoEXT *>( pCreateInfo ),
@@ -15147,6 +16106,7 @@ namespace VULKAN_HPP_NAMESPACE
Optional<const AllocationCallbacks> allocator,
Dispatch const & d ) const
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
VULKAN_HPP_NAMESPACE::SurfaceKHR surface;
Result result = static_cast<Result>(
d.vkCreateMetalSurfaceEXT( m_instance,
@@ -15165,6 +16125,7 @@ namespace VULKAN_HPP_NAMESPACE
Optional<const AllocationCallbacks> allocator,
Dispatch const & d ) const
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
VULKAN_HPP_NAMESPACE::SurfaceKHR surface;
Result result = static_cast<Result>(
d.vkCreateMetalSurfaceEXT( m_instance,
@@ -15188,6 +16149,7 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentShadingRateKHR * pFragmentShadingRates,
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
return static_cast<Result>( d.vkGetPhysicalDeviceFragmentShadingRatesKHR(
m_physicalDevice,
pFragmentShadingRateCount,
@@ -15200,6 +16162,7 @@ namespace VULKAN_HPP_NAMESPACE
std::vector<PhysicalDeviceFragmentShadingRateKHR, PhysicalDeviceFragmentShadingRateKHRAllocator>>::type
PhysicalDevice::getFragmentShadingRatesKHR( Dispatch const & d ) const
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
std::vector<PhysicalDeviceFragmentShadingRateKHR, PhysicalDeviceFragmentShadingRateKHRAllocator>
fragmentShadingRates;
uint32_t fragmentShadingRateCount;
@@ -15237,6 +16200,7 @@ namespace VULKAN_HPP_NAMESPACE
PhysicalDeviceFragmentShadingRateKHRAllocator & physicalDeviceFragmentShadingRateKHRAllocator,
Dispatch const & d ) const
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
std::vector<PhysicalDeviceFragmentShadingRateKHR, PhysicalDeviceFragmentShadingRateKHRAllocator>
fragmentShadingRates( physicalDeviceFragmentShadingRateKHRAllocator );
uint32_t fragmentShadingRateCount;
@@ -15270,6 +16234,7 @@ namespace VULKAN_HPP_NAMESPACE
const VULKAN_HPP_NAMESPACE::FragmentShadingRateCombinerOpKHR combinerOps[2],
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
d.vkCmdSetFragmentShadingRateKHR( m_commandBuffer,
reinterpret_cast<const VkExtent2D *>( pFragmentSize ),
reinterpret_cast<const VkFragmentShadingRateCombinerOpKHR *>( combinerOps ) );
@@ -15282,6 +16247,7 @@ namespace VULKAN_HPP_NAMESPACE
const VULKAN_HPP_NAMESPACE::FragmentShadingRateCombinerOpKHR combinerOps[2],
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
d.vkCmdSetFragmentShadingRateKHR( m_commandBuffer,
reinterpret_cast<const VkExtent2D *>( &fragmentSize ),
reinterpret_cast<const VkFragmentShadingRateCombinerOpKHR *>( combinerOps ) );
@@ -15294,6 +16260,7 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_INLINE DeviceAddress Device::getBufferAddressEXT(
const VULKAN_HPP_NAMESPACE::BufferDeviceAddressInfo * pInfo, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
return static_cast<DeviceAddress>(
d.vkGetBufferDeviceAddressEXT( m_device, reinterpret_cast<const VkBufferDeviceAddressInfo *>( pInfo ) ) );
}
@@ -15303,6 +16270,7 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_INLINE DeviceAddress Device::getBufferAddressEXT( const BufferDeviceAddressInfo & info,
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
return d.vkGetBufferDeviceAddressEXT( m_device, reinterpret_cast<const VkBufferDeviceAddressInfo *>( &info ) );
}
#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
@@ -15315,6 +16283,7 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_NAMESPACE::PhysicalDeviceToolPropertiesEXT * pToolProperties,
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
return static_cast<Result>( d.vkGetPhysicalDeviceToolPropertiesEXT(
m_physicalDevice, pToolCount, reinterpret_cast<VkPhysicalDeviceToolPropertiesEXT *>( pToolProperties ) ) );
}
@@ -15325,6 +16294,7 @@ namespace VULKAN_HPP_NAMESPACE
std::vector<PhysicalDeviceToolPropertiesEXT, PhysicalDeviceToolPropertiesEXTAllocator>>::type
PhysicalDevice::getToolPropertiesEXT( Dispatch const & d ) const
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
std::vector<PhysicalDeviceToolPropertiesEXT, PhysicalDeviceToolPropertiesEXTAllocator> toolProperties;
uint32_t toolCount;
Result result;
@@ -15359,6 +16329,7 @@ namespace VULKAN_HPP_NAMESPACE
PhysicalDevice::getToolPropertiesEXT(
PhysicalDeviceToolPropertiesEXTAllocator & physicalDeviceToolPropertiesEXTAllocator, Dispatch const & d ) const
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
std::vector<PhysicalDeviceToolPropertiesEXT, PhysicalDeviceToolPropertiesEXTAllocator> toolProperties(
physicalDeviceToolPropertiesEXTAllocator );
uint32_t toolCount;
@@ -15385,6 +16356,36 @@ namespace VULKAN_HPP_NAMESPACE
}
#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
+ //=== VK_KHR_present_wait ===
+
+#ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE
+ template <typename Dispatch>
+ VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result
+ Device::waitForPresentKHR( VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain,
+ uint64_t presentId,
+ uint64_t timeout,
+ Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
+ {
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
+ return static_cast<Result>(
+ d.vkWaitForPresentKHR( m_device, static_cast<VkSwapchainKHR>( swapchain ), presentId, timeout ) );
+ }
+#else
+ template <typename Dispatch>
+ VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::waitForPresentKHR( VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain,
+ uint64_t presentId,
+ uint64_t timeout,
+ Dispatch const & d ) const
+ {
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
+ Result result = static_cast<Result>(
+ d.vkWaitForPresentKHR( m_device, static_cast<VkSwapchainKHR>( swapchain ), presentId, timeout ) );
+ return createResultValue( result,
+ VULKAN_HPP_NAMESPACE_STRING "::Device::waitForPresentKHR",
+ { VULKAN_HPP_NAMESPACE::Result::eSuccess, VULKAN_HPP_NAMESPACE::Result::eTimeout } );
+ }
+#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
+
//=== VK_NV_cooperative_matrix ===
template <typename Dispatch>
@@ -15393,6 +16394,7 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_NAMESPACE::CooperativeMatrixPropertiesNV * pProperties,
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
return static_cast<Result>( d.vkGetPhysicalDeviceCooperativeMatrixPropertiesNV(
m_physicalDevice, pPropertyCount, reinterpret_cast<VkCooperativeMatrixPropertiesNV *>( pProperties ) ) );
}
@@ -15403,6 +16405,7 @@ namespace VULKAN_HPP_NAMESPACE
typename ResultValueType<std::vector<CooperativeMatrixPropertiesNV, CooperativeMatrixPropertiesNVAllocator>>::type
PhysicalDevice::getCooperativeMatrixPropertiesNV( Dispatch const & d ) const
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
std::vector<CooperativeMatrixPropertiesNV, CooperativeMatrixPropertiesNVAllocator> properties;
uint32_t propertyCount;
Result result;
@@ -15438,6 +16441,7 @@ namespace VULKAN_HPP_NAMESPACE
PhysicalDevice::getCooperativeMatrixPropertiesNV(
CooperativeMatrixPropertiesNVAllocator & cooperativeMatrixPropertiesNVAllocator, Dispatch const & d ) const
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
std::vector<CooperativeMatrixPropertiesNV, CooperativeMatrixPropertiesNVAllocator> properties(
cooperativeMatrixPropertiesNVAllocator );
uint32_t propertyCount;
@@ -15473,6 +16477,7 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_NAMESPACE::FramebufferMixedSamplesCombinationNV * pCombinations,
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
return static_cast<Result>( d.vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV(
m_physicalDevice,
pCombinationCount,
@@ -15485,6 +16490,7 @@ namespace VULKAN_HPP_NAMESPACE
std::vector<FramebufferMixedSamplesCombinationNV, FramebufferMixedSamplesCombinationNVAllocator>>::type
PhysicalDevice::getSupportedFramebufferMixedSamplesCombinationsNV( Dispatch const & d ) const
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
std::vector<FramebufferMixedSamplesCombinationNV, FramebufferMixedSamplesCombinationNVAllocator> combinations;
uint32_t combinationCount;
Result result;
@@ -15523,6 +16529,7 @@ namespace VULKAN_HPP_NAMESPACE
FramebufferMixedSamplesCombinationNVAllocator & framebufferMixedSamplesCombinationNVAllocator,
Dispatch const & d ) const
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
std::vector<FramebufferMixedSamplesCombinationNV, FramebufferMixedSamplesCombinationNVAllocator> combinations(
framebufferMixedSamplesCombinationNVAllocator );
uint32_t combinationCount;
@@ -15562,6 +16569,7 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_NAMESPACE::PresentModeKHR * pPresentModes,
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
return static_cast<Result>( d.vkGetPhysicalDeviceSurfacePresentModes2EXT(
m_physicalDevice,
reinterpret_cast<const VkPhysicalDeviceSurfaceInfo2KHR *>( pSurfaceInfo ),
@@ -15576,6 +16584,7 @@ namespace VULKAN_HPP_NAMESPACE
PhysicalDevice::getSurfacePresentModes2EXT( const PhysicalDeviceSurfaceInfo2KHR & surfaceInfo,
Dispatch const & d ) const
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
std::vector<PresentModeKHR, PresentModeKHRAllocator> presentModes;
uint32_t presentModeCount;
Result result;
@@ -15615,6 +16624,7 @@ namespace VULKAN_HPP_NAMESPACE
PresentModeKHRAllocator & presentModeKHRAllocator,
Dispatch const & d ) const
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
std::vector<PresentModeKHR, PresentModeKHRAllocator> presentModes( presentModeKHRAllocator );
uint32_t presentModeCount;
Result result;
@@ -15650,6 +16660,7 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::acquireFullScreenExclusiveModeEXT(
VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
return static_cast<Result>(
d.vkAcquireFullScreenExclusiveModeEXT( m_device, static_cast<VkSwapchainKHR>( swapchain ) ) );
}
@@ -15658,6 +16669,7 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType<void>::type
Device::acquireFullScreenExclusiveModeEXT( VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain, Dispatch const & d ) const
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
Result result = static_cast<Result>(
d.vkAcquireFullScreenExclusiveModeEXT( m_device, static_cast<VkSwapchainKHR>( swapchain ) ) );
return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING "::Device::acquireFullScreenExclusiveModeEXT" );
@@ -15669,6 +16681,7 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::releaseFullScreenExclusiveModeEXT(
VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
return static_cast<Result>(
d.vkReleaseFullScreenExclusiveModeEXT( m_device, static_cast<VkSwapchainKHR>( swapchain ) ) );
}
@@ -15677,6 +16690,7 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType<void>::type
Device::releaseFullScreenExclusiveModeEXT( VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain, Dispatch const & d ) const
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
Result result = static_cast<Result>(
d.vkReleaseFullScreenExclusiveModeEXT( m_device, static_cast<VkSwapchainKHR>( swapchain ) ) );
return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING "::Device::releaseFullScreenExclusiveModeEXT" );
@@ -15689,6 +16703,7 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_NAMESPACE::DeviceGroupPresentModeFlagsKHR * pModes,
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
return static_cast<Result>( d.vkGetDeviceGroupSurfacePresentModes2EXT(
m_device,
reinterpret_cast<const VkPhysicalDeviceSurfaceInfo2KHR *>( pSurfaceInfo ),
@@ -15702,6 +16717,7 @@ namespace VULKAN_HPP_NAMESPACE
Device::getGroupSurfacePresentModes2EXT( const PhysicalDeviceSurfaceInfo2KHR & surfaceInfo,
Dispatch const & d ) const
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
VULKAN_HPP_NAMESPACE::DeviceGroupPresentModeFlagsKHR modes;
Result result = static_cast<Result>( d.vkGetDeviceGroupSurfacePresentModes2EXT(
m_device,
@@ -15721,6 +16737,7 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_NAMESPACE::SurfaceKHR * pSurface,
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
return static_cast<Result>(
d.vkCreateHeadlessSurfaceEXT( m_instance,
reinterpret_cast<const VkHeadlessSurfaceCreateInfoEXT *>( pCreateInfo ),
@@ -15736,6 +16753,7 @@ namespace VULKAN_HPP_NAMESPACE
Optional<const AllocationCallbacks> allocator,
Dispatch const & d ) const
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
VULKAN_HPP_NAMESPACE::SurfaceKHR surface;
Result result = static_cast<Result>(
d.vkCreateHeadlessSurfaceEXT( m_instance,
@@ -15754,6 +16772,7 @@ namespace VULKAN_HPP_NAMESPACE
Optional<const AllocationCallbacks> allocator,
Dispatch const & d ) const
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
VULKAN_HPP_NAMESPACE::SurfaceKHR surface;
Result result = static_cast<Result>(
d.vkCreateHeadlessSurfaceEXT( m_instance,
@@ -15774,6 +16793,7 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_INLINE DeviceAddress Device::getBufferAddressKHR(
const VULKAN_HPP_NAMESPACE::BufferDeviceAddressInfo * pInfo, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
return static_cast<DeviceAddress>(
d.vkGetBufferDeviceAddressKHR( m_device, reinterpret_cast<const VkBufferDeviceAddressInfo *>( pInfo ) ) );
}
@@ -15783,6 +16803,7 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_INLINE DeviceAddress Device::getBufferAddressKHR( const BufferDeviceAddressInfo & info,
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
return d.vkGetBufferDeviceAddressKHR( m_device, reinterpret_cast<const VkBufferDeviceAddressInfo *>( &info ) );
}
#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
@@ -15791,6 +16812,7 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_INLINE uint64_t Device::getBufferOpaqueCaptureAddressKHR(
const VULKAN_HPP_NAMESPACE::BufferDeviceAddressInfo * pInfo, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
return d.vkGetBufferOpaqueCaptureAddressKHR( m_device,
reinterpret_cast<const VkBufferDeviceAddressInfo *>( pInfo ) );
}
@@ -15800,6 +16822,7 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_INLINE uint64_t Device::getBufferOpaqueCaptureAddressKHR( const BufferDeviceAddressInfo & info,
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
return d.vkGetBufferOpaqueCaptureAddressKHR( m_device,
reinterpret_cast<const VkBufferDeviceAddressInfo *>( &info ) );
}
@@ -15810,6 +16833,7 @@ namespace VULKAN_HPP_NAMESPACE
Device::getMemoryOpaqueCaptureAddressKHR( const VULKAN_HPP_NAMESPACE::DeviceMemoryOpaqueCaptureAddressInfo * pInfo,
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
return d.vkGetDeviceMemoryOpaqueCaptureAddressKHR(
m_device, reinterpret_cast<const VkDeviceMemoryOpaqueCaptureAddressInfo *>( pInfo ) );
}
@@ -15819,6 +16843,7 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_INLINE uint64_t Device::getMemoryOpaqueCaptureAddressKHR(
const DeviceMemoryOpaqueCaptureAddressInfo & info, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
return d.vkGetDeviceMemoryOpaqueCaptureAddressKHR(
m_device, reinterpret_cast<const VkDeviceMemoryOpaqueCaptureAddressInfo *>( &info ) );
}
@@ -15831,6 +16856,7 @@ namespace VULKAN_HPP_NAMESPACE
uint16_t lineStipplePattern,
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
d.vkCmdSetLineStippleEXT( m_commandBuffer, lineStippleFactor, lineStipplePattern );
}
@@ -15842,6 +16868,7 @@ namespace VULKAN_HPP_NAMESPACE
uint32_t queryCount,
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
d.vkResetQueryPoolEXT( m_device, static_cast<VkQueryPool>( queryPool ), firstQuery, queryCount );
}
@@ -15851,6 +16878,7 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_INLINE void CommandBuffer::setCullModeEXT( VULKAN_HPP_NAMESPACE::CullModeFlags cullMode,
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
d.vkCmdSetCullModeEXT( m_commandBuffer, static_cast<VkCullModeFlags>( cullMode ) );
}
@@ -15858,6 +16886,7 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_INLINE void CommandBuffer::setFrontFaceEXT( VULKAN_HPP_NAMESPACE::FrontFace frontFace,
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
d.vkCmdSetFrontFaceEXT( m_commandBuffer, static_cast<VkFrontFace>( frontFace ) );
}
@@ -15866,6 +16895,7 @@ namespace VULKAN_HPP_NAMESPACE
CommandBuffer::setPrimitiveTopologyEXT( VULKAN_HPP_NAMESPACE::PrimitiveTopology primitiveTopology,
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
d.vkCmdSetPrimitiveTopologyEXT( m_commandBuffer, static_cast<VkPrimitiveTopology>( primitiveTopology ) );
}
@@ -15874,6 +16904,7 @@ namespace VULKAN_HPP_NAMESPACE
const VULKAN_HPP_NAMESPACE::Viewport * pViewports,
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
d.vkCmdSetViewportWithCountEXT(
m_commandBuffer, viewportCount, reinterpret_cast<const VkViewport *>( pViewports ) );
}
@@ -15884,6 +16915,7 @@ namespace VULKAN_HPP_NAMESPACE
CommandBuffer::setViewportWithCountEXT( ArrayProxy<const VULKAN_HPP_NAMESPACE::Viewport> const & viewports,
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
d.vkCmdSetViewportWithCountEXT(
m_commandBuffer, viewports.size(), reinterpret_cast<const VkViewport *>( viewports.data() ) );
}
@@ -15894,6 +16926,7 @@ namespace VULKAN_HPP_NAMESPACE
const VULKAN_HPP_NAMESPACE::Rect2D * pScissors,
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
d.vkCmdSetScissorWithCountEXT( m_commandBuffer, scissorCount, reinterpret_cast<const VkRect2D *>( pScissors ) );
}
@@ -15903,6 +16936,7 @@ namespace VULKAN_HPP_NAMESPACE
CommandBuffer::setScissorWithCountEXT( ArrayProxy<const VULKAN_HPP_NAMESPACE::Rect2D> const & scissors,
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
d.vkCmdSetScissorWithCountEXT(
m_commandBuffer, scissors.size(), reinterpret_cast<const VkRect2D *>( scissors.data() ) );
}
@@ -15917,6 +16951,7 @@ namespace VULKAN_HPP_NAMESPACE
const VULKAN_HPP_NAMESPACE::DeviceSize * pStrides,
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
d.vkCmdBindVertexBuffers2EXT( m_commandBuffer,
firstBinding,
bindingCount,
@@ -15936,6 +16971,7 @@ namespace VULKAN_HPP_NAMESPACE
ArrayProxy<const VULKAN_HPP_NAMESPACE::DeviceSize> const & strides,
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT_WHEN_NO_EXCEPTIONS
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
# ifdef VULKAN_HPP_NO_EXCEPTIONS
VULKAN_HPP_ASSERT( buffers.size() == offsets.size() );
VULKAN_HPP_ASSERT( sizes.empty() || buffers.size() == sizes.size() );
@@ -15972,6 +17008,7 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_INLINE void CommandBuffer::setDepthTestEnableEXT( VULKAN_HPP_NAMESPACE::Bool32 depthTestEnable,
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
d.vkCmdSetDepthTestEnableEXT( m_commandBuffer, static_cast<VkBool32>( depthTestEnable ) );
}
@@ -15979,6 +17016,7 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_INLINE void CommandBuffer::setDepthWriteEnableEXT( VULKAN_HPP_NAMESPACE::Bool32 depthWriteEnable,
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
d.vkCmdSetDepthWriteEnableEXT( m_commandBuffer, static_cast<VkBool32>( depthWriteEnable ) );
}
@@ -15986,6 +17024,7 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_INLINE void CommandBuffer::setDepthCompareOpEXT( VULKAN_HPP_NAMESPACE::CompareOp depthCompareOp,
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
d.vkCmdSetDepthCompareOpEXT( m_commandBuffer, static_cast<VkCompareOp>( depthCompareOp ) );
}
@@ -15993,6 +17032,7 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_INLINE void CommandBuffer::setDepthBoundsTestEnableEXT( VULKAN_HPP_NAMESPACE::Bool32 depthBoundsTestEnable,
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
d.vkCmdSetDepthBoundsTestEnableEXT( m_commandBuffer, static_cast<VkBool32>( depthBoundsTestEnable ) );
}
@@ -16000,6 +17040,7 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_INLINE void CommandBuffer::setStencilTestEnableEXT( VULKAN_HPP_NAMESPACE::Bool32 stencilTestEnable,
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
d.vkCmdSetStencilTestEnableEXT( m_commandBuffer, static_cast<VkBool32>( stencilTestEnable ) );
}
@@ -16011,6 +17052,7 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_NAMESPACE::CompareOp compareOp,
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
d.vkCmdSetStencilOpEXT( m_commandBuffer,
static_cast<VkStencilFaceFlags>( faceMask ),
static_cast<VkStencilOp>( failOp ),
@@ -16027,6 +17069,7 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_NAMESPACE::DeferredOperationKHR * pDeferredOperation,
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
return static_cast<Result>(
d.vkCreateDeferredOperationKHR( m_device,
reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ),
@@ -16038,6 +17081,7 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_INLINE typename ResultValueType<VULKAN_HPP_NAMESPACE::DeferredOperationKHR>::type
Device::createDeferredOperationKHR( Optional<const AllocationCallbacks> allocator, Dispatch const & d ) const
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
VULKAN_HPP_NAMESPACE::DeferredOperationKHR deferredOperation;
Result result = static_cast<Result>(
d.vkCreateDeferredOperationKHR( m_device,
@@ -16053,6 +17097,7 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_INLINE typename ResultValueType<UniqueHandle<VULKAN_HPP_NAMESPACE::DeferredOperationKHR, Dispatch>>::type
Device::createDeferredOperationKHRUnique( Optional<const AllocationCallbacks> allocator, Dispatch const & d ) const
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
VULKAN_HPP_NAMESPACE::DeferredOperationKHR deferredOperation;
Result result = static_cast<Result>(
d.vkCreateDeferredOperationKHR( m_device,
@@ -16072,6 +17117,7 @@ namespace VULKAN_HPP_NAMESPACE
const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
d.vkDestroyDeferredOperationKHR( m_device,
static_cast<VkDeferredOperationKHR>( operation ),
reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ) );
@@ -16083,6 +17129,7 @@ namespace VULKAN_HPP_NAMESPACE
Optional<const AllocationCallbacks> allocator,
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
d.vkDestroyDeferredOperationKHR( m_device,
static_cast<VkDeferredOperationKHR>( operation ),
reinterpret_cast<const VkAllocationCallbacks *>(
@@ -16095,6 +17142,7 @@ namespace VULKAN_HPP_NAMESPACE
const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
d.vkDestroyDeferredOperationKHR( m_device,
static_cast<VkDeferredOperationKHR>( operation ),
reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ) );
@@ -16106,6 +17154,7 @@ namespace VULKAN_HPP_NAMESPACE
Optional<const AllocationCallbacks> allocator,
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
d.vkDestroyDeferredOperationKHR( m_device,
static_cast<VkDeferredOperationKHR>( operation ),
reinterpret_cast<const VkAllocationCallbacks *>(
@@ -16117,6 +17166,7 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_INLINE uint32_t Device::getDeferredOperationMaxConcurrencyKHR(
VULKAN_HPP_NAMESPACE::DeferredOperationKHR operation, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
return d.vkGetDeferredOperationMaxConcurrencyKHR( m_device, static_cast<VkDeferredOperationKHR>( operation ) );
}
@@ -16125,6 +17175,7 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::getDeferredOperationResultKHR(
VULKAN_HPP_NAMESPACE::DeferredOperationKHR operation, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
return static_cast<Result>(
d.vkGetDeferredOperationResultKHR( m_device, static_cast<VkDeferredOperationKHR>( operation ) ) );
}
@@ -16133,6 +17184,7 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::getDeferredOperationResultKHR(
VULKAN_HPP_NAMESPACE::DeferredOperationKHR operation, Dispatch const & d ) const
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
Result result = static_cast<Result>(
d.vkGetDeferredOperationResultKHR( m_device, static_cast<VkDeferredOperationKHR>( operation ) ) );
return createResultValue( result,
@@ -16146,6 +17198,7 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::deferredOperationJoinKHR(
VULKAN_HPP_NAMESPACE::DeferredOperationKHR operation, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
return static_cast<Result>(
d.vkDeferredOperationJoinKHR( m_device, static_cast<VkDeferredOperationKHR>( operation ) ) );
}
@@ -16154,6 +17207,7 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result
Device::deferredOperationJoinKHR( VULKAN_HPP_NAMESPACE::DeferredOperationKHR operation, Dispatch const & d ) const
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
Result result =
static_cast<Result>( d.vkDeferredOperationJoinKHR( m_device, static_cast<VkDeferredOperationKHR>( operation ) ) );
return createResultValue( result,
@@ -16173,6 +17227,7 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_NAMESPACE::PipelineExecutablePropertiesKHR * pProperties,
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
return static_cast<Result>(
d.vkGetPipelineExecutablePropertiesKHR( m_device,
reinterpret_cast<const VkPipelineInfoKHR *>( pPipelineInfo ),
@@ -16186,6 +17241,7 @@ namespace VULKAN_HPP_NAMESPACE
std::vector<PipelineExecutablePropertiesKHR, PipelineExecutablePropertiesKHRAllocator>>::type
Device::getPipelineExecutablePropertiesKHR( const PipelineInfoKHR & pipelineInfo, Dispatch const & d ) const
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
std::vector<PipelineExecutablePropertiesKHR, PipelineExecutablePropertiesKHRAllocator> properties;
uint32_t executableCount;
Result result;
@@ -16224,6 +17280,7 @@ namespace VULKAN_HPP_NAMESPACE
PipelineExecutablePropertiesKHRAllocator & pipelineExecutablePropertiesKHRAllocator,
Dispatch const & d ) const
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
std::vector<PipelineExecutablePropertiesKHR, PipelineExecutablePropertiesKHRAllocator> properties(
pipelineExecutablePropertiesKHRAllocator );
uint32_t executableCount;
@@ -16259,6 +17316,7 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_NAMESPACE::PipelineExecutableStatisticKHR * pStatistics,
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
return static_cast<Result>(
d.vkGetPipelineExecutableStatisticsKHR( m_device,
reinterpret_cast<const VkPipelineExecutableInfoKHR *>( pExecutableInfo ),
@@ -16273,6 +17331,7 @@ namespace VULKAN_HPP_NAMESPACE
Device::getPipelineExecutableStatisticsKHR( const PipelineExecutableInfoKHR & executableInfo,
Dispatch const & d ) const
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
std::vector<PipelineExecutableStatisticKHR, PipelineExecutableStatisticKHRAllocator> statistics;
uint32_t statisticCount;
Result result;
@@ -16314,6 +17373,7 @@ namespace VULKAN_HPP_NAMESPACE
PipelineExecutableStatisticKHRAllocator & pipelineExecutableStatisticKHRAllocator,
Dispatch const & d ) const
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
std::vector<PipelineExecutableStatisticKHR, PipelineExecutableStatisticKHRAllocator> statistics(
pipelineExecutableStatisticKHRAllocator );
uint32_t statisticCount;
@@ -16352,6 +17412,7 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_NAMESPACE::PipelineExecutableInternalRepresentationKHR * pInternalRepresentations,
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
return static_cast<Result>( d.vkGetPipelineExecutableInternalRepresentationsKHR(
m_device,
reinterpret_cast<const VkPipelineExecutableInfoKHR *>( pExecutableInfo ),
@@ -16367,6 +17428,7 @@ namespace VULKAN_HPP_NAMESPACE
Device::getPipelineExecutableInternalRepresentationsKHR( const PipelineExecutableInfoKHR & executableInfo,
Dispatch const & d ) const
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
std::vector<PipelineExecutableInternalRepresentationKHR, PipelineExecutableInternalRepresentationKHRAllocator>
internalRepresentations;
uint32_t internalRepresentationCount;
@@ -16412,6 +17474,7 @@ namespace VULKAN_HPP_NAMESPACE
PipelineExecutableInternalRepresentationKHRAllocator & pipelineExecutableInternalRepresentationKHRAllocator,
Dispatch const & d ) const
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
std::vector<PipelineExecutableInternalRepresentationKHR, PipelineExecutableInternalRepresentationKHRAllocator>
internalRepresentations( pipelineExecutableInternalRepresentationKHRAllocator );
uint32_t internalRepresentationCount;
@@ -16452,6 +17515,7 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_NAMESPACE::MemoryRequirements2 * pMemoryRequirements,
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
d.vkGetGeneratedCommandsMemoryRequirementsNV(
m_device,
reinterpret_cast<const VkGeneratedCommandsMemoryRequirementsInfoNV *>( pInfo ),
@@ -16464,6 +17528,7 @@ namespace VULKAN_HPP_NAMESPACE
Device::getGeneratedCommandsMemoryRequirementsNV( const GeneratedCommandsMemoryRequirementsInfoNV & info,
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
VULKAN_HPP_NAMESPACE::MemoryRequirements2 memoryRequirements;
d.vkGetGeneratedCommandsMemoryRequirementsNV(
m_device,
@@ -16477,6 +17542,7 @@ namespace VULKAN_HPP_NAMESPACE
Device::getGeneratedCommandsMemoryRequirementsNV( const GeneratedCommandsMemoryRequirementsInfoNV & info,
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
StructureChain<X, Y, Z...> structureChain;
VULKAN_HPP_NAMESPACE::MemoryRequirements2 & memoryRequirements =
structureChain.template get<VULKAN_HPP_NAMESPACE::MemoryRequirements2>();
@@ -16493,6 +17559,7 @@ namespace VULKAN_HPP_NAMESPACE
const VULKAN_HPP_NAMESPACE::GeneratedCommandsInfoNV * pGeneratedCommandsInfo,
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
d.vkCmdPreprocessGeneratedCommandsNV(
m_commandBuffer, reinterpret_cast<const VkGeneratedCommandsInfoNV *>( pGeneratedCommandsInfo ) );
}
@@ -16503,6 +17570,7 @@ namespace VULKAN_HPP_NAMESPACE
CommandBuffer::preprocessGeneratedCommandsNV( const GeneratedCommandsInfoNV & generatedCommandsInfo,
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
d.vkCmdPreprocessGeneratedCommandsNV(
m_commandBuffer, reinterpret_cast<const VkGeneratedCommandsInfoNV *>( &generatedCommandsInfo ) );
}
@@ -16514,6 +17582,7 @@ namespace VULKAN_HPP_NAMESPACE
const VULKAN_HPP_NAMESPACE::GeneratedCommandsInfoNV * pGeneratedCommandsInfo,
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
d.vkCmdExecuteGeneratedCommandsNV( m_commandBuffer,
static_cast<VkBool32>( isPreprocessed ),
reinterpret_cast<const VkGeneratedCommandsInfoNV *>( pGeneratedCommandsInfo ) );
@@ -16526,6 +17595,7 @@ namespace VULKAN_HPP_NAMESPACE
const GeneratedCommandsInfoNV & generatedCommandsInfo,
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
d.vkCmdExecuteGeneratedCommandsNV( m_commandBuffer,
static_cast<VkBool32>( isPreprocessed ),
reinterpret_cast<const VkGeneratedCommandsInfoNV *>( &generatedCommandsInfo ) );
@@ -16539,6 +17609,7 @@ namespace VULKAN_HPP_NAMESPACE
uint32_t groupIndex,
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
d.vkCmdBindPipelineShaderGroupNV( m_commandBuffer,
static_cast<VkPipelineBindPoint>( pipelineBindPoint ),
static_cast<VkPipeline>( pipeline ),
@@ -16552,6 +17623,7 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_NAMESPACE::IndirectCommandsLayoutNV * pIndirectCommandsLayout,
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
return static_cast<Result>(
d.vkCreateIndirectCommandsLayoutNV( m_device,
reinterpret_cast<const VkIndirectCommandsLayoutCreateInfoNV *>( pCreateInfo ),
@@ -16567,6 +17639,7 @@ namespace VULKAN_HPP_NAMESPACE
Optional<const AllocationCallbacks> allocator,
Dispatch const & d ) const
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
VULKAN_HPP_NAMESPACE::IndirectCommandsLayoutNV indirectCommandsLayout;
Result result = static_cast<Result>( d.vkCreateIndirectCommandsLayoutNV(
m_device,
@@ -16586,6 +17659,7 @@ namespace VULKAN_HPP_NAMESPACE
Optional<const AllocationCallbacks> allocator,
Dispatch const & d ) const
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
VULKAN_HPP_NAMESPACE::IndirectCommandsLayoutNV indirectCommandsLayout;
Result result = static_cast<Result>( d.vkCreateIndirectCommandsLayoutNV(
m_device,
@@ -16609,6 +17683,7 @@ namespace VULKAN_HPP_NAMESPACE
const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
d.vkDestroyIndirectCommandsLayoutNV( m_device,
static_cast<VkIndirectCommandsLayoutNV>( indirectCommandsLayout ),
reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ) );
@@ -16621,6 +17696,7 @@ namespace VULKAN_HPP_NAMESPACE
Optional<const AllocationCallbacks> allocator,
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
d.vkDestroyIndirectCommandsLayoutNV(
m_device,
static_cast<VkIndirectCommandsLayoutNV>( indirectCommandsLayout ),
@@ -16634,6 +17710,7 @@ namespace VULKAN_HPP_NAMESPACE
const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
d.vkDestroyIndirectCommandsLayoutNV( m_device,
static_cast<VkIndirectCommandsLayoutNV>( indirectCommandsLayout ),
reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ) );
@@ -16645,6 +17722,7 @@ namespace VULKAN_HPP_NAMESPACE
Optional<const AllocationCallbacks> allocator,
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
d.vkDestroyIndirectCommandsLayoutNV(
m_device,
static_cast<VkIndirectCommandsLayoutNV>( indirectCommandsLayout ),
@@ -16660,6 +17738,7 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result PhysicalDevice::acquireDrmDisplayEXT(
int32_t drmFd, VULKAN_HPP_NAMESPACE::DisplayKHR display, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
return static_cast<Result>(
d.vkAcquireDrmDisplayEXT( m_physicalDevice, drmFd, static_cast<VkDisplayKHR>( display ) ) );
}
@@ -16668,6 +17747,7 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_INLINE typename ResultValueType<void>::type PhysicalDevice::acquireDrmDisplayEXT(
int32_t drmFd, VULKAN_HPP_NAMESPACE::DisplayKHR display, Dispatch const & d ) const
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
Result result =
static_cast<Result>( d.vkAcquireDrmDisplayEXT( m_physicalDevice, drmFd, static_cast<VkDisplayKHR>( display ) ) );
return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING "::PhysicalDevice::acquireDrmDisplayEXT" );
@@ -16681,6 +17761,7 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_NAMESPACE::DisplayKHR * display,
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
return static_cast<Result>(
d.vkGetDrmDisplayEXT( m_physicalDevice, drmFd, connectorId, reinterpret_cast<VkDisplayKHR *>( display ) ) );
}
@@ -16691,6 +17772,7 @@ namespace VULKAN_HPP_NAMESPACE
typename ResultValueType<VULKAN_HPP_NAMESPACE::DisplayKHR>::type
PhysicalDevice::getDrmDisplayEXT( int32_t drmFd, uint32_t connectorId, Dispatch const & d ) const
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
VULKAN_HPP_NAMESPACE::DisplayKHR display;
Result result = static_cast<Result>(
d.vkGetDrmDisplayEXT( m_physicalDevice, drmFd, connectorId, reinterpret_cast<VkDisplayKHR *>( &display ) ) );
@@ -16703,6 +17785,7 @@ namespace VULKAN_HPP_NAMESPACE
typename ResultValueType<UniqueHandle<VULKAN_HPP_NAMESPACE::DisplayKHR, Dispatch>>::type
PhysicalDevice::getDrmDisplayEXTUnique( int32_t drmFd, uint32_t connectorId, Dispatch const & d ) const
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
VULKAN_HPP_NAMESPACE::DisplayKHR display;
Result result = static_cast<Result>(
d.vkGetDrmDisplayEXT( m_physicalDevice, drmFd, connectorId, reinterpret_cast<VkDisplayKHR *>( &display ) ) );
@@ -16722,6 +17805,7 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_NAMESPACE::PrivateDataSlotEXT * pPrivateDataSlot,
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
return static_cast<Result>(
d.vkCreatePrivateDataSlotEXT( m_device,
reinterpret_cast<const VkPrivateDataSlotCreateInfoEXT *>( pCreateInfo ),
@@ -16736,6 +17820,7 @@ namespace VULKAN_HPP_NAMESPACE
Optional<const AllocationCallbacks> allocator,
Dispatch const & d ) const
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
VULKAN_HPP_NAMESPACE::PrivateDataSlotEXT privateDataSlot;
Result result = static_cast<Result>(
d.vkCreatePrivateDataSlotEXT( m_device,
@@ -16754,6 +17839,7 @@ namespace VULKAN_HPP_NAMESPACE
Optional<const AllocationCallbacks> allocator,
Dispatch const & d ) const
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
VULKAN_HPP_NAMESPACE::PrivateDataSlotEXT privateDataSlot;
Result result = static_cast<Result>(
d.vkCreatePrivateDataSlotEXT( m_device,
@@ -16774,6 +17860,7 @@ namespace VULKAN_HPP_NAMESPACE
const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
d.vkDestroyPrivateDataSlotEXT( m_device,
static_cast<VkPrivateDataSlotEXT>( privateDataSlot ),
reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ) );
@@ -16785,6 +17872,7 @@ namespace VULKAN_HPP_NAMESPACE
Optional<const AllocationCallbacks> allocator,
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
d.vkDestroyPrivateDataSlotEXT( m_device,
static_cast<VkPrivateDataSlotEXT>( privateDataSlot ),
reinterpret_cast<const VkAllocationCallbacks *>(
@@ -16797,6 +17885,7 @@ namespace VULKAN_HPP_NAMESPACE
const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
d.vkDestroyPrivateDataSlotEXT( m_device,
static_cast<VkPrivateDataSlotEXT>( privateDataSlot ),
reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ) );
@@ -16808,6 +17897,7 @@ namespace VULKAN_HPP_NAMESPACE
Optional<const AllocationCallbacks> allocator,
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
d.vkDestroyPrivateDataSlotEXT( m_device,
static_cast<VkPrivateDataSlotEXT>( privateDataSlot ),
reinterpret_cast<const VkAllocationCallbacks *>(
@@ -16824,6 +17914,7 @@ namespace VULKAN_HPP_NAMESPACE
uint64_t data,
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
return static_cast<Result>( d.vkSetPrivateDataEXT( m_device,
static_cast<VkObjectType>( objectType ),
objectHandle,
@@ -16839,6 +17930,7 @@ namespace VULKAN_HPP_NAMESPACE
uint64_t data,
Dispatch const & d ) const
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
Result result = static_cast<Result>( d.vkSetPrivateDataEXT( m_device,
static_cast<VkObjectType>( objectType ),
objectHandle,
@@ -16855,6 +17947,7 @@ namespace VULKAN_HPP_NAMESPACE
uint64_t * pData,
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
d.vkGetPrivateDataEXT( m_device,
static_cast<VkObjectType>( objectType ),
objectHandle,
@@ -16870,6 +17963,7 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_NAMESPACE::PrivateDataSlotEXT privateDataSlot,
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
uint64_t data;
d.vkGetPrivateDataEXT( m_device,
static_cast<VkObjectType>( objectType ),
@@ -16887,6 +17981,7 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_INLINE void CommandBuffer::encodeVideoKHR( const VULKAN_HPP_NAMESPACE::VideoEncodeInfoKHR * pEncodeInfo,
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
d.vkCmdEncodeVideoKHR( m_commandBuffer, reinterpret_cast<const VkVideoEncodeInfoKHR *>( pEncodeInfo ) );
}
@@ -16895,6 +17990,7 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_INLINE void CommandBuffer::encodeVideoKHR( const VideoEncodeInfoKHR & encodeInfo,
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
d.vkCmdEncodeVideoKHR( m_commandBuffer, reinterpret_cast<const VkVideoEncodeInfoKHR *>( &encodeInfo ) );
}
# endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
@@ -16907,6 +18003,7 @@ namespace VULKAN_HPP_NAMESPACE
const VULKAN_HPP_NAMESPACE::DependencyInfoKHR * pDependencyInfo,
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
d.vkCmdSetEvent2KHR( m_commandBuffer,
static_cast<VkEvent>( event ),
reinterpret_cast<const VkDependencyInfoKHR *>( pDependencyInfo ) );
@@ -16918,6 +18015,7 @@ namespace VULKAN_HPP_NAMESPACE
const DependencyInfoKHR & dependencyInfo,
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
d.vkCmdSetEvent2KHR( m_commandBuffer,
static_cast<VkEvent>( event ),
reinterpret_cast<const VkDependencyInfoKHR *>( &dependencyInfo ) );
@@ -16929,6 +18027,7 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_NAMESPACE::PipelineStageFlags2KHR stageMask,
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
d.vkCmdResetEvent2KHR(
m_commandBuffer, static_cast<VkEvent>( event ), static_cast<VkPipelineStageFlags2KHR>( stageMask ) );
}
@@ -16940,6 +18039,7 @@ namespace VULKAN_HPP_NAMESPACE
const VULKAN_HPP_NAMESPACE::DependencyInfoKHR * pDependencyInfos,
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
d.vkCmdWaitEvents2KHR( m_commandBuffer,
eventCount,
reinterpret_cast<const VkEvent *>( pEvents ),
@@ -16953,6 +18053,7 @@ namespace VULKAN_HPP_NAMESPACE
ArrayProxy<const VULKAN_HPP_NAMESPACE::DependencyInfoKHR> const & dependencyInfos,
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT_WHEN_NO_EXCEPTIONS
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
# ifdef VULKAN_HPP_NO_EXCEPTIONS
VULKAN_HPP_ASSERT( events.size() == dependencyInfos.size() );
# else
@@ -16975,6 +18076,7 @@ namespace VULKAN_HPP_NAMESPACE
CommandBuffer::pipelineBarrier2KHR( const VULKAN_HPP_NAMESPACE::DependencyInfoKHR * pDependencyInfo,
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
d.vkCmdPipelineBarrier2KHR( m_commandBuffer, reinterpret_cast<const VkDependencyInfoKHR *>( pDependencyInfo ) );
}
@@ -16983,6 +18085,7 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_INLINE void CommandBuffer::pipelineBarrier2KHR( const DependencyInfoKHR & dependencyInfo,
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
d.vkCmdPipelineBarrier2KHR( m_commandBuffer, reinterpret_cast<const VkDependencyInfoKHR *>( &dependencyInfo ) );
}
#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
@@ -16993,6 +18096,7 @@ namespace VULKAN_HPP_NAMESPACE
uint32_t query,
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
d.vkCmdWriteTimestamp2KHR(
m_commandBuffer, static_cast<VkPipelineStageFlags2KHR>( stage ), static_cast<VkQueryPool>( queryPool ), query );
}
@@ -17004,6 +18108,7 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_NAMESPACE::Fence fence,
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
return static_cast<Result>( d.vkQueueSubmit2KHR(
m_queue, submitCount, reinterpret_cast<const VkSubmitInfo2KHR *>( pSubmits ), static_cast<VkFence>( fence ) ) );
}
@@ -17015,6 +18120,7 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_NAMESPACE::Fence fence,
Dispatch const & d ) const
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
Result result =
static_cast<Result>( d.vkQueueSubmit2KHR( m_queue,
submits.size(),
@@ -17031,6 +18137,7 @@ namespace VULKAN_HPP_NAMESPACE
uint32_t marker,
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
d.vkCmdWriteBufferMarker2AMD( m_commandBuffer,
static_cast<VkPipelineStageFlags2KHR>( stage ),
static_cast<VkBuffer>( dstBuffer ),
@@ -17043,6 +18150,7 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_NAMESPACE::CheckpointData2NV * pCheckpointData,
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
d.vkGetQueueCheckpointData2NV(
m_queue, pCheckpointDataCount, reinterpret_cast<VkCheckpointData2NV *>( pCheckpointData ) );
}
@@ -17052,6 +18160,7 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE std::vector<CheckpointData2NV, CheckpointData2NVAllocator>
Queue::getCheckpointData2NV( Dispatch const & d ) const
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
std::vector<CheckpointData2NV, CheckpointData2NVAllocator> checkpointData;
uint32_t checkpointDataCount;
d.vkGetQueueCheckpointData2NV( m_queue, &checkpointDataCount, nullptr );
@@ -17069,6 +18178,7 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE std::vector<CheckpointData2NV, CheckpointData2NVAllocator>
Queue::getCheckpointData2NV( CheckpointData2NVAllocator & checkpointData2NVAllocator, Dispatch const & d ) const
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
std::vector<CheckpointData2NV, CheckpointData2NVAllocator> checkpointData( checkpointData2NVAllocator );
uint32_t checkpointDataCount;
d.vkGetQueueCheckpointData2NV( m_queue, &checkpointDataCount, nullptr );
@@ -17088,6 +18198,7 @@ namespace VULKAN_HPP_NAMESPACE
const VULKAN_HPP_NAMESPACE::FragmentShadingRateCombinerOpKHR combinerOps[2],
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
d.vkCmdSetFragmentShadingRateEnumNV( m_commandBuffer,
static_cast<VkFragmentShadingRateNV>( shadingRate ),
reinterpret_cast<const VkFragmentShadingRateCombinerOpKHR *>( combinerOps ) );
@@ -17100,6 +18211,7 @@ namespace VULKAN_HPP_NAMESPACE
CommandBuffer::copyBuffer2KHR( const VULKAN_HPP_NAMESPACE::CopyBufferInfo2KHR * pCopyBufferInfo,
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
d.vkCmdCopyBuffer2KHR( m_commandBuffer, reinterpret_cast<const VkCopyBufferInfo2KHR *>( pCopyBufferInfo ) );
}
@@ -17108,6 +18220,7 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_INLINE void CommandBuffer::copyBuffer2KHR( const CopyBufferInfo2KHR & copyBufferInfo,
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
d.vkCmdCopyBuffer2KHR( m_commandBuffer, reinterpret_cast<const VkCopyBufferInfo2KHR *>( &copyBufferInfo ) );
}
#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
@@ -17116,6 +18229,7 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_INLINE void CommandBuffer::copyImage2KHR( const VULKAN_HPP_NAMESPACE::CopyImageInfo2KHR * pCopyImageInfo,
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
d.vkCmdCopyImage2KHR( m_commandBuffer, reinterpret_cast<const VkCopyImageInfo2KHR *>( pCopyImageInfo ) );
}
@@ -17124,6 +18238,7 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_INLINE void CommandBuffer::copyImage2KHR( const CopyImageInfo2KHR & copyImageInfo,
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
d.vkCmdCopyImage2KHR( m_commandBuffer, reinterpret_cast<const VkCopyImageInfo2KHR *>( &copyImageInfo ) );
}
#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
@@ -17133,6 +18248,7 @@ namespace VULKAN_HPP_NAMESPACE
const VULKAN_HPP_NAMESPACE::CopyBufferToImageInfo2KHR * pCopyBufferToImageInfo,
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
d.vkCmdCopyBufferToImage2KHR( m_commandBuffer,
reinterpret_cast<const VkCopyBufferToImageInfo2KHR *>( pCopyBufferToImageInfo ) );
}
@@ -17142,6 +18258,7 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_INLINE void CommandBuffer::copyBufferToImage2KHR( const CopyBufferToImageInfo2KHR & copyBufferToImageInfo,
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
d.vkCmdCopyBufferToImage2KHR( m_commandBuffer,
reinterpret_cast<const VkCopyBufferToImageInfo2KHR *>( &copyBufferToImageInfo ) );
}
@@ -17152,6 +18269,7 @@ namespace VULKAN_HPP_NAMESPACE
const VULKAN_HPP_NAMESPACE::CopyImageToBufferInfo2KHR * pCopyImageToBufferInfo,
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
d.vkCmdCopyImageToBuffer2KHR( m_commandBuffer,
reinterpret_cast<const VkCopyImageToBufferInfo2KHR *>( pCopyImageToBufferInfo ) );
}
@@ -17161,6 +18279,7 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_INLINE void CommandBuffer::copyImageToBuffer2KHR( const CopyImageToBufferInfo2KHR & copyImageToBufferInfo,
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
d.vkCmdCopyImageToBuffer2KHR( m_commandBuffer,
reinterpret_cast<const VkCopyImageToBufferInfo2KHR *>( &copyImageToBufferInfo ) );
}
@@ -17170,6 +18289,7 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_INLINE void CommandBuffer::blitImage2KHR( const VULKAN_HPP_NAMESPACE::BlitImageInfo2KHR * pBlitImageInfo,
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
d.vkCmdBlitImage2KHR( m_commandBuffer, reinterpret_cast<const VkBlitImageInfo2KHR *>( pBlitImageInfo ) );
}
@@ -17178,6 +18298,7 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_INLINE void CommandBuffer::blitImage2KHR( const BlitImageInfo2KHR & blitImageInfo,
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
d.vkCmdBlitImage2KHR( m_commandBuffer, reinterpret_cast<const VkBlitImageInfo2KHR *>( &blitImageInfo ) );
}
#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
@@ -17187,6 +18308,7 @@ namespace VULKAN_HPP_NAMESPACE
CommandBuffer::resolveImage2KHR( const VULKAN_HPP_NAMESPACE::ResolveImageInfo2KHR * pResolveImageInfo,
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
d.vkCmdResolveImage2KHR( m_commandBuffer, reinterpret_cast<const VkResolveImageInfo2KHR *>( pResolveImageInfo ) );
}
@@ -17195,6 +18317,7 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_INLINE void CommandBuffer::resolveImage2KHR( const ResolveImageInfo2KHR & resolveImageInfo,
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
d.vkCmdResolveImage2KHR( m_commandBuffer, reinterpret_cast<const VkResolveImageInfo2KHR *>( &resolveImageInfo ) );
}
#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
@@ -17207,6 +18330,7 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result PhysicalDevice::acquireWinrtDisplayNV(
VULKAN_HPP_NAMESPACE::DisplayKHR display, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
return static_cast<Result>( d.vkAcquireWinrtDisplayNV( m_physicalDevice, static_cast<VkDisplayKHR>( display ) ) );
}
# else
@@ -17214,6 +18338,7 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType<void>::type
PhysicalDevice::acquireWinrtDisplayNV( VULKAN_HPP_NAMESPACE::DisplayKHR display, Dispatch const & d ) const
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
Result result =
static_cast<Result>( d.vkAcquireWinrtDisplayNV( m_physicalDevice, static_cast<VkDisplayKHR>( display ) ) );
return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING "::PhysicalDevice::acquireWinrtDisplayNV" );
@@ -17226,6 +18351,7 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_NAMESPACE::DisplayKHR * pDisplay,
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
return static_cast<Result>(
d.vkGetWinrtDisplayNV( m_physicalDevice, deviceRelativeId, reinterpret_cast<VkDisplayKHR *>( pDisplay ) ) );
}
@@ -17236,6 +18362,7 @@ namespace VULKAN_HPP_NAMESPACE
typename ResultValueType<VULKAN_HPP_NAMESPACE::DisplayKHR>::type
PhysicalDevice::getWinrtDisplayNV( uint32_t deviceRelativeId, Dispatch const & d ) const
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
VULKAN_HPP_NAMESPACE::DisplayKHR display;
Result result = static_cast<Result>(
d.vkGetWinrtDisplayNV( m_physicalDevice, deviceRelativeId, reinterpret_cast<VkDisplayKHR *>( &display ) ) );
@@ -17248,6 +18375,7 @@ namespace VULKAN_HPP_NAMESPACE
typename ResultValueType<UniqueHandle<VULKAN_HPP_NAMESPACE::DisplayKHR, Dispatch>>::type
PhysicalDevice::getWinrtDisplayNVUnique( uint32_t deviceRelativeId, Dispatch const & d ) const
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
VULKAN_HPP_NAMESPACE::DisplayKHR display;
Result result = static_cast<Result>(
d.vkGetWinrtDisplayNV( m_physicalDevice, deviceRelativeId, reinterpret_cast<VkDisplayKHR *>( &display ) ) );
@@ -17269,6 +18397,7 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_NAMESPACE::SurfaceKHR * pSurface,
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
return static_cast<Result>(
d.vkCreateDirectFBSurfaceEXT( m_instance,
reinterpret_cast<const VkDirectFBSurfaceCreateInfoEXT *>( pCreateInfo ),
@@ -17284,6 +18413,7 @@ namespace VULKAN_HPP_NAMESPACE
Optional<const AllocationCallbacks> allocator,
Dispatch const & d ) const
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
VULKAN_HPP_NAMESPACE::SurfaceKHR surface;
Result result = static_cast<Result>(
d.vkCreateDirectFBSurfaceEXT( m_instance,
@@ -17302,6 +18432,7 @@ namespace VULKAN_HPP_NAMESPACE
Optional<const AllocationCallbacks> allocator,
Dispatch const & d ) const
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
VULKAN_HPP_NAMESPACE::SurfaceKHR surface;
Result result = static_cast<Result>(
d.vkCreateDirectFBSurfaceEXT( m_instance,
@@ -17320,6 +18451,7 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_INLINE Bool32 PhysicalDevice::getDirectFBPresentationSupportEXT(
uint32_t queueFamilyIndex, IDirectFB * dfb, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
return static_cast<Bool32>(
d.vkGetPhysicalDeviceDirectFBPresentationSupportEXT( m_physicalDevice, queueFamilyIndex, dfb ) );
}
@@ -17329,6 +18461,7 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_INLINE Bool32 PhysicalDevice::getDirectFBPresentationSupportEXT(
uint32_t queueFamilyIndex, IDirectFB & dfb, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
return d.vkGetPhysicalDeviceDirectFBPresentationSupportEXT( m_physicalDevice, queueFamilyIndex, &dfb );
}
# endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
@@ -17347,6 +18480,7 @@ namespace VULKAN_HPP_NAMESPACE
uint32_t depth,
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
d.vkCmdTraceRaysKHR( m_commandBuffer,
reinterpret_cast<const VkStridedDeviceAddressRegionKHR *>( pRaygenShaderBindingTable ),
reinterpret_cast<const VkStridedDeviceAddressRegionKHR *>( pMissShaderBindingTable ),
@@ -17368,6 +18502,7 @@ namespace VULKAN_HPP_NAMESPACE
uint32_t depth,
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
d.vkCmdTraceRaysKHR( m_commandBuffer,
reinterpret_cast<const VkStridedDeviceAddressRegionKHR *>( &raygenShaderBindingTable ),
reinterpret_cast<const VkStridedDeviceAddressRegionKHR *>( &missShaderBindingTable ),
@@ -17389,6 +18524,7 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_NAMESPACE::Pipeline * pPipelines,
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
return static_cast<Result>(
d.vkCreateRayTracingPipelinesKHR( m_device,
static_cast<VkDeferredOperationKHR>( deferredOperation ),
@@ -17409,6 +18545,7 @@ namespace VULKAN_HPP_NAMESPACE
Optional<const AllocationCallbacks> allocator,
Dispatch const & d ) const
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
std::vector<Pipeline, PipelineAllocator> pipelines( createInfos.size() );
Result result = static_cast<Result>( d.vkCreateRayTracingPipelinesKHR(
m_device,
@@ -17441,6 +18578,7 @@ namespace VULKAN_HPP_NAMESPACE
PipelineAllocator & pipelineAllocator,
Dispatch const & d ) const
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
std::vector<Pipeline, PipelineAllocator> pipelines( createInfos.size(), pipelineAllocator );
Result result = static_cast<Result>( d.vkCreateRayTracingPipelinesKHR(
m_device,
@@ -17468,6 +18606,7 @@ namespace VULKAN_HPP_NAMESPACE
Optional<const AllocationCallbacks> allocator,
Dispatch const & d ) const
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
Pipeline pipeline;
Result result = static_cast<Result>(
d.vkCreateRayTracingPipelinesKHR( m_device,
@@ -17497,6 +18636,7 @@ namespace VULKAN_HPP_NAMESPACE
Optional<const AllocationCallbacks> allocator,
Dispatch const & d ) const
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
std::vector<UniqueHandle<Pipeline, Dispatch>, PipelineAllocator> uniquePipelines;
std::vector<Pipeline> pipelines( createInfos.size() );
Result result = static_cast<Result>( d.vkCreateRayTracingPipelinesKHR(
@@ -17543,6 +18683,7 @@ namespace VULKAN_HPP_NAMESPACE
PipelineAllocator & pipelineAllocator,
Dispatch const & d ) const
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
std::vector<UniqueHandle<Pipeline, Dispatch>, PipelineAllocator> uniquePipelines( pipelineAllocator );
std::vector<Pipeline> pipelines( createInfos.size() );
Result result = static_cast<Result>( d.vkCreateRayTracingPipelinesKHR(
@@ -17583,6 +18724,7 @@ namespace VULKAN_HPP_NAMESPACE
Optional<const AllocationCallbacks> allocator,
Dispatch const & d ) const
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
Pipeline pipeline;
Result result = static_cast<Result>(
d.vkCreateRayTracingPipelinesKHR( m_device,
@@ -17616,6 +18758,7 @@ namespace VULKAN_HPP_NAMESPACE
void * pData,
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
return static_cast<Result>( d.vkGetRayTracingShaderGroupHandlesKHR(
m_device, static_cast<VkPipeline>( pipeline ), firstGroup, groupCount, dataSize, pData ) );
}
@@ -17631,6 +18774,7 @@ namespace VULKAN_HPP_NAMESPACE
ArrayProxy<T> const & data,
Dispatch const & d ) const
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
Result result =
static_cast<Result>( d.vkGetRayTracingShaderGroupHandlesKHR( m_device,
static_cast<VkPipeline>( pipeline ),
@@ -17649,6 +18793,7 @@ namespace VULKAN_HPP_NAMESPACE
size_t dataSize,
Dispatch const & d ) const
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
VULKAN_HPP_ASSERT( dataSize % sizeof( T ) == 0 );
std::vector<T, Allocator> data( dataSize / sizeof( T ) );
Result result =
@@ -17669,6 +18814,7 @@ namespace VULKAN_HPP_NAMESPACE
uint32_t groupCount,
Dispatch const & d ) const
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
T data;
Result result = static_cast<Result>( d.vkGetRayTracingShaderGroupHandlesKHR( m_device,
static_cast<VkPipeline>( pipeline ),
@@ -17689,6 +18835,7 @@ namespace VULKAN_HPP_NAMESPACE
void * pData,
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
return static_cast<Result>( d.vkGetRayTracingCaptureReplayShaderGroupHandlesKHR(
m_device, static_cast<VkPipeline>( pipeline ), firstGroup, groupCount, dataSize, pData ) );
}
@@ -17704,6 +18851,7 @@ namespace VULKAN_HPP_NAMESPACE
ArrayProxy<T> const & data,
Dispatch const & d ) const
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
Result result = static_cast<Result>(
d.vkGetRayTracingCaptureReplayShaderGroupHandlesKHR( m_device,
static_cast<VkPipeline>( pipeline ),
@@ -17723,6 +18871,7 @@ namespace VULKAN_HPP_NAMESPACE
size_t dataSize,
Dispatch const & d ) const
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
VULKAN_HPP_ASSERT( dataSize % sizeof( T ) == 0 );
std::vector<T, Allocator> data( dataSize / sizeof( T ) );
Result result = static_cast<Result>(
@@ -17743,6 +18892,7 @@ namespace VULKAN_HPP_NAMESPACE
uint32_t groupCount,
Dispatch const & d ) const
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
T data;
Result result =
static_cast<Result>( d.vkGetRayTracingCaptureReplayShaderGroupHandlesKHR( m_device,
@@ -17765,6 +18915,7 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_NAMESPACE::DeviceAddress indirectDeviceAddress,
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
d.vkCmdTraceRaysIndirectKHR(
m_commandBuffer,
reinterpret_cast<const VkStridedDeviceAddressRegionKHR *>( pRaygenShaderBindingTable ),
@@ -17784,6 +18935,7 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_NAMESPACE::DeviceAddress indirectDeviceAddress,
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
d.vkCmdTraceRaysIndirectKHR(
m_commandBuffer,
reinterpret_cast<const VkStridedDeviceAddressRegionKHR *>( &raygenShaderBindingTable ),
@@ -17801,6 +18953,7 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_NAMESPACE::ShaderGroupShaderKHR groupShader,
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
return static_cast<DeviceSize>( d.vkGetRayTracingShaderGroupStackSizeKHR(
m_device, static_cast<VkPipeline>( pipeline ), group, static_cast<VkShaderGroupShaderKHR>( groupShader ) ) );
}
@@ -17810,6 +18963,7 @@ namespace VULKAN_HPP_NAMESPACE
CommandBuffer::setRayTracingPipelineStackSizeKHR( uint32_t pipelineStackSize,
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
d.vkCmdSetRayTracingPipelineStackSizeKHR( m_commandBuffer, pipelineStackSize );
}
@@ -17823,6 +18977,7 @@ namespace VULKAN_HPP_NAMESPACE
const VULKAN_HPP_NAMESPACE::VertexInputAttributeDescription2EXT * pVertexAttributeDescriptions,
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
d.vkCmdSetVertexInputEXT(
m_commandBuffer,
vertexBindingDescriptionCount,
@@ -17838,6 +18993,7 @@ namespace VULKAN_HPP_NAMESPACE
ArrayProxy<const VULKAN_HPP_NAMESPACE::VertexInputAttributeDescription2EXT> const & vertexAttributeDescriptions,
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
d.vkCmdSetVertexInputEXT(
m_commandBuffer,
vertexBindingDescriptions.size(),
@@ -17856,6 +19012,7 @@ namespace VULKAN_HPP_NAMESPACE
zx_handle_t * pZirconHandle,
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
return static_cast<Result>( d.vkGetMemoryZirconHandleFUCHSIA(
m_device, reinterpret_cast<const VkMemoryGetZirconHandleInfoFUCHSIA *>( pGetZirconHandleInfo ), pZirconHandle ) );
}
@@ -17866,6 +19023,7 @@ namespace VULKAN_HPP_NAMESPACE
Device::getMemoryZirconHandleFUCHSIA( const MemoryGetZirconHandleInfoFUCHSIA & getZirconHandleInfo,
Dispatch const & d ) const
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
zx_handle_t zirconHandle;
Result result = static_cast<Result>( d.vkGetMemoryZirconHandleFUCHSIA(
m_device, reinterpret_cast<const VkMemoryGetZirconHandleInfoFUCHSIA *>( &getZirconHandleInfo ), &zirconHandle ) );
@@ -17881,6 +19039,7 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_NAMESPACE::MemoryZirconHandlePropertiesFUCHSIA * pMemoryZirconHandleProperties,
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
return static_cast<Result>( d.vkGetMemoryZirconHandlePropertiesFUCHSIA(
m_device,
static_cast<VkExternalMemoryHandleTypeFlagBits>( handleType ),
@@ -17895,6 +19054,7 @@ namespace VULKAN_HPP_NAMESPACE
zx_handle_t zirconHandle,
Dispatch const & d ) const
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
VULKAN_HPP_NAMESPACE::MemoryZirconHandlePropertiesFUCHSIA memoryZirconHandleProperties;
Result result = static_cast<Result>( d.vkGetMemoryZirconHandlePropertiesFUCHSIA(
m_device,
@@ -17916,6 +19076,7 @@ namespace VULKAN_HPP_NAMESPACE
const VULKAN_HPP_NAMESPACE::ImportSemaphoreZirconHandleInfoFUCHSIA * pImportSemaphoreZirconHandleInfo,
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
return static_cast<Result>( d.vkImportSemaphoreZirconHandleFUCHSIA(
m_device,
reinterpret_cast<const VkImportSemaphoreZirconHandleInfoFUCHSIA *>( pImportSemaphoreZirconHandleInfo ) ) );
@@ -17927,6 +19088,7 @@ namespace VULKAN_HPP_NAMESPACE
Device::importSemaphoreZirconHandleFUCHSIA(
const ImportSemaphoreZirconHandleInfoFUCHSIA & importSemaphoreZirconHandleInfo, Dispatch const & d ) const
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
Result result = static_cast<Result>( d.vkImportSemaphoreZirconHandleFUCHSIA(
m_device,
reinterpret_cast<const VkImportSemaphoreZirconHandleInfoFUCHSIA *>( &importSemaphoreZirconHandleInfo ) ) );
@@ -17940,6 +19102,7 @@ namespace VULKAN_HPP_NAMESPACE
zx_handle_t * pZirconHandle,
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
return static_cast<Result>( d.vkGetSemaphoreZirconHandleFUCHSIA(
m_device,
reinterpret_cast<const VkSemaphoreGetZirconHandleInfoFUCHSIA *>( pGetZirconHandleInfo ),
@@ -17952,6 +19115,7 @@ namespace VULKAN_HPP_NAMESPACE
Device::getSemaphoreZirconHandleFUCHSIA( const SemaphoreGetZirconHandleInfoFUCHSIA & getZirconHandleInfo,
Dispatch const & d ) const
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
zx_handle_t zirconHandle;
Result result = static_cast<Result>( d.vkGetSemaphoreZirconHandleFUCHSIA(
m_device,
@@ -17966,24 +19130,29 @@ namespace VULKAN_HPP_NAMESPACE
//=== VK_HUAWEI_subpass_shading ===
template <typename Dispatch>
- VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result RenderPass::getSubpassShadingMaxWorkgroupSizeHUAWEI(
- VULKAN_HPP_NAMESPACE::Extent2D * pMaxWorkgroupSize, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
+ VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result
+ Device::getSubpassShadingMaxWorkgroupSizeHUAWEI( VULKAN_HPP_NAMESPACE::RenderPass renderpass,
+ VULKAN_HPP_NAMESPACE::Extent2D * pMaxWorkgroupSize,
+ Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
- return static_cast<Result>( d.vkGetSubpassShadingMaxWorkgroupSizeHUAWEI(
- m_renderPass, reinterpret_cast<VkExtent2D *>( pMaxWorkgroupSize ) ) );
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
+ return static_cast<Result>( d.vkGetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI(
+ m_device, static_cast<VkRenderPass>( renderpass ), reinterpret_cast<VkExtent2D *>( pMaxWorkgroupSize ) ) );
}
#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
template <typename Dispatch>
VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE ResultValue<VULKAN_HPP_NAMESPACE::Extent2D>
- RenderPass::getSubpassShadingMaxWorkgroupSizeHUAWEI( Dispatch const & d ) const
+ Device::getSubpassShadingMaxWorkgroupSizeHUAWEI( VULKAN_HPP_NAMESPACE::RenderPass renderpass,
+ Dispatch const & d ) const
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
VULKAN_HPP_NAMESPACE::Extent2D maxWorkgroupSize;
- Result result = static_cast<Result>( d.vkGetSubpassShadingMaxWorkgroupSizeHUAWEI(
- m_renderPass, reinterpret_cast<VkExtent2D *>( &maxWorkgroupSize ) ) );
+ Result result = static_cast<Result>( d.vkGetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI(
+ m_device, static_cast<VkRenderPass>( renderpass ), reinterpret_cast<VkExtent2D *>( &maxWorkgroupSize ) ) );
return createResultValue( result,
maxWorkgroupSize,
- VULKAN_HPP_NAMESPACE_STRING "::RenderPass::getSubpassShadingMaxWorkgroupSizeHUAWEI",
+ VULKAN_HPP_NAMESPACE_STRING "::Device::getSubpassShadingMaxWorkgroupSizeHUAWEI",
{ VULKAN_HPP_NAMESPACE::Result::eSuccess, VULKAN_HPP_NAMESPACE::Result::eIncomplete } );
}
#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
@@ -17991,15 +19160,60 @@ namespace VULKAN_HPP_NAMESPACE
template <typename Dispatch>
VULKAN_HPP_INLINE void CommandBuffer::subpassShadingHUAWEI( Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
d.vkCmdSubpassShadingHUAWEI( m_commandBuffer );
}
+ //=== VK_HUAWEI_invocation_mask ===
+
+ template <typename Dispatch>
+ VULKAN_HPP_INLINE void CommandBuffer::bindInvocationMaskHUAWEI( VULKAN_HPP_NAMESPACE::ImageView imageView,
+ VULKAN_HPP_NAMESPACE::ImageLayout imageLayout,
+ Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
+ {
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
+ d.vkCmdBindInvocationMaskHUAWEI(
+ m_commandBuffer, static_cast<VkImageView>( imageView ), static_cast<VkImageLayout>( imageLayout ) );
+ }
+
+ //=== VK_NV_external_memory_rdma ===
+
+ template <typename Dispatch>
+ VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::getMemoryRemoteAddressNV(
+ const VULKAN_HPP_NAMESPACE::MemoryGetRemoteAddressInfoNV * pMemoryGetRemoteAddressInfo,
+ VULKAN_HPP_NAMESPACE::RemoteAddressNV * pAddress,
+ Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
+ {
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
+ return static_cast<Result>( d.vkGetMemoryRemoteAddressNV(
+ m_device,
+ reinterpret_cast<const VkMemoryGetRemoteAddressInfoNV *>( pMemoryGetRemoteAddressInfo ),
+ reinterpret_cast<VkRemoteAddressNV *>( pAddress ) ) );
+ }
+
+#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
+ template <typename Dispatch>
+ VULKAN_HPP_INLINE typename ResultValueType<VULKAN_HPP_NAMESPACE::RemoteAddressNV>::type
+ Device::getMemoryRemoteAddressNV( const MemoryGetRemoteAddressInfoNV & memoryGetRemoteAddressInfo,
+ Dispatch const & d ) const
+ {
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
+ VULKAN_HPP_NAMESPACE::RemoteAddressNV address;
+ Result result = static_cast<Result>( d.vkGetMemoryRemoteAddressNV(
+ m_device,
+ reinterpret_cast<const VkMemoryGetRemoteAddressInfoNV *>( &memoryGetRemoteAddressInfo ),
+ reinterpret_cast<VkRemoteAddressNV *>( &address ) ) );
+ return createResultValue( result, address, VULKAN_HPP_NAMESPACE_STRING "::Device::getMemoryRemoteAddressNV" );
+ }
+#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
+
//=== VK_EXT_extended_dynamic_state2 ===
template <typename Dispatch>
VULKAN_HPP_INLINE void CommandBuffer::setPatchControlPointsEXT( uint32_t patchControlPoints,
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
d.vkCmdSetPatchControlPointsEXT( m_commandBuffer, patchControlPoints );
}
@@ -18008,6 +19222,7 @@ namespace VULKAN_HPP_NAMESPACE
CommandBuffer::setRasterizerDiscardEnableEXT( VULKAN_HPP_NAMESPACE::Bool32 rasterizerDiscardEnable,
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
d.vkCmdSetRasterizerDiscardEnableEXT( m_commandBuffer, static_cast<VkBool32>( rasterizerDiscardEnable ) );
}
@@ -18015,6 +19230,7 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_INLINE void CommandBuffer::setDepthBiasEnableEXT( VULKAN_HPP_NAMESPACE::Bool32 depthBiasEnable,
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
d.vkCmdSetDepthBiasEnableEXT( m_commandBuffer, static_cast<VkBool32>( depthBiasEnable ) );
}
@@ -18022,6 +19238,7 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_INLINE void CommandBuffer::setLogicOpEXT( VULKAN_HPP_NAMESPACE::LogicOp logicOp,
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
d.vkCmdSetLogicOpEXT( m_commandBuffer, static_cast<VkLogicOp>( logicOp ) );
}
@@ -18030,6 +19247,7 @@ namespace VULKAN_HPP_NAMESPACE
CommandBuffer::setPrimitiveRestartEnableEXT( VULKAN_HPP_NAMESPACE::Bool32 primitiveRestartEnable,
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
d.vkCmdSetPrimitiveRestartEnableEXT( m_commandBuffer, static_cast<VkBool32>( primitiveRestartEnable ) );
}
@@ -18043,6 +19261,7 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_NAMESPACE::SurfaceKHR * pSurface,
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
return static_cast<Result>(
d.vkCreateScreenSurfaceQNX( m_instance,
reinterpret_cast<const VkScreenSurfaceCreateInfoQNX *>( pCreateInfo ),
@@ -18058,6 +19277,7 @@ namespace VULKAN_HPP_NAMESPACE
Optional<const AllocationCallbacks> allocator,
Dispatch const & d ) const
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
VULKAN_HPP_NAMESPACE::SurfaceKHR surface;
Result result = static_cast<Result>(
d.vkCreateScreenSurfaceQNX( m_instance,
@@ -18076,6 +19296,7 @@ namespace VULKAN_HPP_NAMESPACE
Optional<const AllocationCallbacks> allocator,
Dispatch const & d ) const
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
VULKAN_HPP_NAMESPACE::SurfaceKHR surface;
Result result = static_cast<Result>(
d.vkCreateScreenSurfaceQNX( m_instance,
@@ -18094,6 +19315,7 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_INLINE Bool32 PhysicalDevice::getScreenPresentationSupportQNX(
uint32_t queueFamilyIndex, struct _screen_window * window, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
return static_cast<Bool32>(
d.vkGetPhysicalDeviceScreenPresentationSupportQNX( m_physicalDevice, queueFamilyIndex, window ) );
}
@@ -18103,6 +19325,7 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_INLINE Bool32 PhysicalDevice::getScreenPresentationSupportQNX(
uint32_t queueFamilyIndex, struct _screen_window & window, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
return d.vkGetPhysicalDeviceScreenPresentationSupportQNX( m_physicalDevice, queueFamilyIndex, &window );
}
# endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
@@ -18115,6 +19338,7 @@ namespace VULKAN_HPP_NAMESPACE
const VULKAN_HPP_NAMESPACE::Bool32 * pColorWriteEnables,
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
d.vkCmdSetColorWriteEnableEXT(
m_commandBuffer, attachmentCount, reinterpret_cast<const VkBool32 *>( pColorWriteEnables ) );
}
@@ -18125,6 +19349,7 @@ namespace VULKAN_HPP_NAMESPACE
CommandBuffer::setColorWriteEnableEXT( ArrayProxy<const VULKAN_HPP_NAMESPACE::Bool32> const & colorWriteEnables,
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
d.vkCmdSetColorWriteEnableEXT(
m_commandBuffer, colorWriteEnables.size(), reinterpret_cast<const VkBool32 *>( colorWriteEnables.data() ) );
}
@@ -18140,6 +19365,7 @@ namespace VULKAN_HPP_NAMESPACE
uint32_t stride,
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
d.vkCmdDrawMultiEXT( m_commandBuffer,
drawCount,
reinterpret_cast<const VkMultiDrawInfoEXT *>( pVertexInfo ),
@@ -18157,6 +19383,7 @@ namespace VULKAN_HPP_NAMESPACE
uint32_t stride,
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
d.vkCmdDrawMultiEXT( m_commandBuffer,
vertexInfo.size(),
reinterpret_cast<const VkMultiDrawInfoEXT *>( vertexInfo.data() ),
@@ -18176,6 +19403,7 @@ namespace VULKAN_HPP_NAMESPACE
const int32_t * pVertexOffset,
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
d.vkCmdDrawMultiIndexedEXT( m_commandBuffer,
drawCount,
reinterpret_cast<const VkMultiDrawIndexedInfoEXT *>( pIndexInfo ),
@@ -18195,6 +19423,7 @@ namespace VULKAN_HPP_NAMESPACE
Optional<const int32_t> vertexOffset,
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
d.vkCmdDrawMultiIndexedEXT( m_commandBuffer,
indexInfo.size(),
reinterpret_cast<const VkMultiDrawIndexedInfoEXT *>( indexInfo.data() ),
diff --git a/thirdparty/vulkan/include/vulkan/vulkan_handles.hpp b/thirdparty/vulkan/include/vulkan/vulkan_handles.hpp
index 0b846c6191..a06156ec0a 100644
--- a/thirdparty/vulkan/include/vulkan/vulkan_handles.hpp
+++ b/thirdparty/vulkan/include/vulkan/vulkan_handles.hpp
@@ -10,981 +10,1229 @@
namespace VULKAN_HPP_NAMESPACE
{
- struct AabbPositionsKHR;
- using AabbPositionsNV = AabbPositionsKHR;
- struct AccelerationStructureBuildGeometryInfoKHR;
- struct AccelerationStructureBuildRangeInfoKHR;
- struct AccelerationStructureBuildSizesInfoKHR;
- struct AccelerationStructureCreateInfoKHR;
- struct AccelerationStructureCreateInfoNV;
- struct AccelerationStructureDeviceAddressInfoKHR;
- struct AccelerationStructureGeometryAabbsDataKHR;
- union AccelerationStructureGeometryDataKHR;
- struct AccelerationStructureGeometryInstancesDataKHR;
- struct AccelerationStructureGeometryKHR;
- struct AccelerationStructureGeometryMotionTrianglesDataNV;
- struct AccelerationStructureGeometryTrianglesDataKHR;
- struct AccelerationStructureInfoNV;
- struct AccelerationStructureInstanceKHR;
- using AccelerationStructureInstanceNV = AccelerationStructureInstanceKHR;
- struct AccelerationStructureMatrixMotionInstanceNV;
- struct AccelerationStructureMemoryRequirementsInfoNV;
- struct AccelerationStructureMotionInfoNV;
- union AccelerationStructureMotionInstanceDataNV;
- struct AccelerationStructureMotionInstanceNV;
- struct AccelerationStructureSRTMotionInstanceNV;
- struct AccelerationStructureVersionInfoKHR;
- struct AcquireNextImageInfoKHR;
- struct AcquireProfilingLockInfoKHR;
- struct AllocationCallbacks;
-#if defined( VK_USE_PLATFORM_ANDROID_KHR )
- struct AndroidHardwareBufferFormatPropertiesANDROID;
-#endif /*VK_USE_PLATFORM_ANDROID_KHR*/
-#if defined( VK_USE_PLATFORM_ANDROID_KHR )
- struct AndroidHardwareBufferPropertiesANDROID;
-#endif /*VK_USE_PLATFORM_ANDROID_KHR*/
-#if defined( VK_USE_PLATFORM_ANDROID_KHR )
- struct AndroidHardwareBufferUsageANDROID;
-#endif /*VK_USE_PLATFORM_ANDROID_KHR*/
-#if defined( VK_USE_PLATFORM_ANDROID_KHR )
- struct AndroidSurfaceCreateInfoKHR;
-#endif /*VK_USE_PLATFORM_ANDROID_KHR*/
- struct ApplicationInfo;
- struct AttachmentDescription;
- struct AttachmentDescription2;
- using AttachmentDescription2KHR = AttachmentDescription2;
- struct AttachmentDescriptionStencilLayout;
- using AttachmentDescriptionStencilLayoutKHR = AttachmentDescriptionStencilLayout;
- struct AttachmentReference;
- struct AttachmentReference2;
- using AttachmentReference2KHR = AttachmentReference2;
- struct AttachmentReferenceStencilLayout;
- using AttachmentReferenceStencilLayoutKHR = AttachmentReferenceStencilLayout;
- struct AttachmentSampleLocationsEXT;
+ //===================================
+ //=== STRUCT forward declarations ===
+ //===================================
+
+ //=== VK_VERSION_1_0 ===
+ struct Extent2D;
+ struct Extent3D;
+ struct Offset2D;
+ struct Offset3D;
+ struct Rect2D;
struct BaseInStructure;
struct BaseOutStructure;
- struct BindAccelerationStructureMemoryInfoNV;
- struct BindBufferMemoryDeviceGroupInfo;
- using BindBufferMemoryDeviceGroupInfoKHR = BindBufferMemoryDeviceGroupInfo;
- struct BindBufferMemoryInfo;
- using BindBufferMemoryInfoKHR = BindBufferMemoryInfo;
- struct BindImageMemoryDeviceGroupInfo;
- using BindImageMemoryDeviceGroupInfoKHR = BindImageMemoryDeviceGroupInfo;
- struct BindImageMemoryInfo;
- using BindImageMemoryInfoKHR = BindImageMemoryInfo;
- struct BindImageMemorySwapchainInfoKHR;
- struct BindImagePlaneMemoryInfo;
- using BindImagePlaneMemoryInfoKHR = BindImagePlaneMemoryInfo;
- struct BindIndexBufferIndirectCommandNV;
- struct BindShaderGroupIndirectCommandNV;
+ struct BufferMemoryBarrier;
+ struct DispatchIndirectCommand;
+ struct DrawIndexedIndirectCommand;
+ struct DrawIndirectCommand;
+ struct ImageMemoryBarrier;
+ struct MemoryBarrier;
+ struct PipelineCacheHeaderVersionOne;
+ struct AllocationCallbacks;
+ struct ApplicationInfo;
+ struct FormatProperties;
+ struct ImageFormatProperties;
+ struct InstanceCreateInfo;
+ struct MemoryHeap;
+ struct MemoryType;
+ struct PhysicalDeviceFeatures;
+ struct PhysicalDeviceLimits;
+ struct PhysicalDeviceMemoryProperties;
+ struct PhysicalDeviceProperties;
+ struct PhysicalDeviceSparseProperties;
+ struct QueueFamilyProperties;
+ struct DeviceCreateInfo;
+ struct DeviceQueueCreateInfo;
+ struct ExtensionProperties;
+ struct LayerProperties;
+ struct SubmitInfo;
+ struct MappedMemoryRange;
+ struct MemoryAllocateInfo;
+ struct MemoryRequirements;
struct BindSparseInfo;
- struct BindVertexBufferIndirectCommandNV;
- struct BlitImageInfo2KHR;
- struct BufferCopy;
- struct BufferCopy2KHR;
+ struct ImageSubresource;
+ struct SparseBufferMemoryBindInfo;
+ struct SparseImageFormatProperties;
+ struct SparseImageMemoryBind;
+ struct SparseImageMemoryBindInfo;
+ struct SparseImageMemoryRequirements;
+ struct SparseImageOpaqueMemoryBindInfo;
+ struct SparseMemoryBind;
+ struct FenceCreateInfo;
+ struct SemaphoreCreateInfo;
+ struct EventCreateInfo;
+ struct QueryPoolCreateInfo;
struct BufferCreateInfo;
- struct BufferDeviceAddressCreateInfoEXT;
- struct BufferDeviceAddressInfo;
- using BufferDeviceAddressInfoEXT = BufferDeviceAddressInfo;
- using BufferDeviceAddressInfoKHR = BufferDeviceAddressInfo;
- struct BufferImageCopy;
- struct BufferImageCopy2KHR;
- struct BufferMemoryBarrier;
- struct BufferMemoryBarrier2KHR;
- struct BufferMemoryRequirementsInfo2;
- using BufferMemoryRequirementsInfo2KHR = BufferMemoryRequirementsInfo2;
- struct BufferOpaqueCaptureAddressCreateInfo;
- using BufferOpaqueCaptureAddressCreateInfoKHR = BufferOpaqueCaptureAddressCreateInfo;
struct BufferViewCreateInfo;
- struct CalibratedTimestampInfoEXT;
- struct CheckpointData2NV;
- struct CheckpointDataNV;
- struct ClearAttachment;
- union ClearColorValue;
- struct ClearDepthStencilValue;
- struct ClearRect;
- union ClearValue;
- struct CoarseSampleLocationNV;
- struct CoarseSampleOrderCustomNV;
- struct CommandBufferAllocateInfo;
- struct CommandBufferBeginInfo;
- struct CommandBufferInheritanceConditionalRenderingInfoEXT;
- struct CommandBufferInheritanceInfo;
- struct CommandBufferInheritanceRenderPassTransformInfoQCOM;
- struct CommandBufferInheritanceViewportScissorInfoNV;
- struct CommandBufferSubmitInfoKHR;
- struct CommandPoolCreateInfo;
+ struct ImageCreateInfo;
+ struct SubresourceLayout;
struct ComponentMapping;
+ struct ImageSubresourceRange;
+ struct ImageViewCreateInfo;
+ struct ShaderModuleCreateInfo;
+ struct PipelineCacheCreateInfo;
struct ComputePipelineCreateInfo;
- struct ConditionalRenderingBeginInfoEXT;
- struct ConformanceVersion;
- using ConformanceVersionKHR = ConformanceVersion;
- struct CooperativeMatrixPropertiesNV;
- struct CopyAccelerationStructureInfoKHR;
- struct CopyAccelerationStructureToMemoryInfoKHR;
- struct CopyBufferInfo2KHR;
- struct CopyBufferToImageInfo2KHR;
- struct CopyCommandTransformInfoQCOM;
+ struct GraphicsPipelineCreateInfo;
+ struct PipelineColorBlendAttachmentState;
+ struct PipelineColorBlendStateCreateInfo;
+ struct PipelineDepthStencilStateCreateInfo;
+ struct PipelineDynamicStateCreateInfo;
+ struct PipelineInputAssemblyStateCreateInfo;
+ struct PipelineMultisampleStateCreateInfo;
+ struct PipelineRasterizationStateCreateInfo;
+ struct PipelineShaderStageCreateInfo;
+ struct PipelineTessellationStateCreateInfo;
+ struct PipelineVertexInputStateCreateInfo;
+ struct PipelineViewportStateCreateInfo;
+ struct SpecializationInfo;
+ struct SpecializationMapEntry;
+ struct StencilOpState;
+ struct VertexInputAttributeDescription;
+ struct VertexInputBindingDescription;
+ struct Viewport;
+ struct PipelineLayoutCreateInfo;
+ struct PushConstantRange;
+ struct SamplerCreateInfo;
struct CopyDescriptorSet;
- struct CopyImageInfo2KHR;
- struct CopyImageToBufferInfo2KHR;
- struct CopyMemoryToAccelerationStructureInfoKHR;
- struct CuFunctionCreateInfoNVX;
- struct CuLaunchInfoNVX;
- struct CuModuleCreateInfoNVX;
-#if defined( VK_USE_PLATFORM_WIN32_KHR )
- struct D3D12FenceSubmitInfoKHR;
-#endif /*VK_USE_PLATFORM_WIN32_KHR*/
- struct DebugMarkerMarkerInfoEXT;
- struct DebugMarkerObjectNameInfoEXT;
- struct DebugMarkerObjectTagInfoEXT;
- struct DebugReportCallbackCreateInfoEXT;
- struct DebugUtilsLabelEXT;
- struct DebugUtilsMessengerCallbackDataEXT;
- struct DebugUtilsMessengerCreateInfoEXT;
- struct DebugUtilsObjectNameInfoEXT;
- struct DebugUtilsObjectTagInfoEXT;
- struct DedicatedAllocationBufferCreateInfoNV;
- struct DedicatedAllocationImageCreateInfoNV;
- struct DedicatedAllocationMemoryAllocateInfoNV;
- struct DependencyInfoKHR;
struct DescriptorBufferInfo;
struct DescriptorImageInfo;
struct DescriptorPoolCreateInfo;
- struct DescriptorPoolInlineUniformBlockCreateInfoEXT;
struct DescriptorPoolSize;
struct DescriptorSetAllocateInfo;
struct DescriptorSetLayoutBinding;
- struct DescriptorSetLayoutBindingFlagsCreateInfo;
- using DescriptorSetLayoutBindingFlagsCreateInfoEXT = DescriptorSetLayoutBindingFlagsCreateInfo;
struct DescriptorSetLayoutCreateInfo;
+ struct WriteDescriptorSet;
+ struct AttachmentDescription;
+ struct AttachmentReference;
+ struct FramebufferCreateInfo;
+ struct RenderPassCreateInfo;
+ struct SubpassDependency;
+ struct SubpassDescription;
+ struct CommandPoolCreateInfo;
+ struct CommandBufferAllocateInfo;
+ struct CommandBufferBeginInfo;
+ struct CommandBufferInheritanceInfo;
+ struct BufferCopy;
+ struct BufferImageCopy;
+ struct ClearAttachment;
+ union ClearColorValue;
+ struct ClearDepthStencilValue;
+ struct ClearRect;
+ union ClearValue;
+ struct ImageBlit;
+ struct ImageCopy;
+ struct ImageResolve;
+ struct ImageSubresourceLayers;
+ struct RenderPassBeginInfo;
+
+ //=== VK_VERSION_1_1 ===
+ struct PhysicalDeviceSubgroupProperties;
+ struct BindBufferMemoryInfo;
+ using BindBufferMemoryInfoKHR = BindBufferMemoryInfo;
+ struct BindImageMemoryInfo;
+ using BindImageMemoryInfoKHR = BindImageMemoryInfo;
+ struct PhysicalDevice16BitStorageFeatures;
+ using PhysicalDevice16BitStorageFeaturesKHR = PhysicalDevice16BitStorageFeatures;
+ struct MemoryDedicatedRequirements;
+ using MemoryDedicatedRequirementsKHR = MemoryDedicatedRequirements;
+ struct MemoryDedicatedAllocateInfo;
+ using MemoryDedicatedAllocateInfoKHR = MemoryDedicatedAllocateInfo;
+ struct MemoryAllocateFlagsInfo;
+ using MemoryAllocateFlagsInfoKHR = MemoryAllocateFlagsInfo;
+ struct DeviceGroupRenderPassBeginInfo;
+ using DeviceGroupRenderPassBeginInfoKHR = DeviceGroupRenderPassBeginInfo;
+ struct DeviceGroupCommandBufferBeginInfo;
+ using DeviceGroupCommandBufferBeginInfoKHR = DeviceGroupCommandBufferBeginInfo;
+ struct DeviceGroupSubmitInfo;
+ using DeviceGroupSubmitInfoKHR = DeviceGroupSubmitInfo;
+ struct DeviceGroupBindSparseInfo;
+ using DeviceGroupBindSparseInfoKHR = DeviceGroupBindSparseInfo;
+ struct BindBufferMemoryDeviceGroupInfo;
+ using BindBufferMemoryDeviceGroupInfoKHR = BindBufferMemoryDeviceGroupInfo;
+ struct BindImageMemoryDeviceGroupInfo;
+ using BindImageMemoryDeviceGroupInfoKHR = BindImageMemoryDeviceGroupInfo;
+ struct PhysicalDeviceGroupProperties;
+ using PhysicalDeviceGroupPropertiesKHR = PhysicalDeviceGroupProperties;
+ struct DeviceGroupDeviceCreateInfo;
+ using DeviceGroupDeviceCreateInfoKHR = DeviceGroupDeviceCreateInfo;
+ struct BufferMemoryRequirementsInfo2;
+ using BufferMemoryRequirementsInfo2KHR = BufferMemoryRequirementsInfo2;
+ struct ImageMemoryRequirementsInfo2;
+ using ImageMemoryRequirementsInfo2KHR = ImageMemoryRequirementsInfo2;
+ struct ImageSparseMemoryRequirementsInfo2;
+ using ImageSparseMemoryRequirementsInfo2KHR = ImageSparseMemoryRequirementsInfo2;
+ struct MemoryRequirements2;
+ using MemoryRequirements2KHR = MemoryRequirements2;
+ struct SparseImageMemoryRequirements2;
+ using SparseImageMemoryRequirements2KHR = SparseImageMemoryRequirements2;
+ struct PhysicalDeviceFeatures2;
+ using PhysicalDeviceFeatures2KHR = PhysicalDeviceFeatures2;
+ struct PhysicalDeviceProperties2;
+ using PhysicalDeviceProperties2KHR = PhysicalDeviceProperties2;
+ struct FormatProperties2;
+ using FormatProperties2KHR = FormatProperties2;
+ struct ImageFormatProperties2;
+ using ImageFormatProperties2KHR = ImageFormatProperties2;
+ struct PhysicalDeviceImageFormatInfo2;
+ using PhysicalDeviceImageFormatInfo2KHR = PhysicalDeviceImageFormatInfo2;
+ struct QueueFamilyProperties2;
+ using QueueFamilyProperties2KHR = QueueFamilyProperties2;
+ struct PhysicalDeviceMemoryProperties2;
+ using PhysicalDeviceMemoryProperties2KHR = PhysicalDeviceMemoryProperties2;
+ struct SparseImageFormatProperties2;
+ using SparseImageFormatProperties2KHR = SparseImageFormatProperties2;
+ struct PhysicalDeviceSparseImageFormatInfo2;
+ using PhysicalDeviceSparseImageFormatInfo2KHR = PhysicalDeviceSparseImageFormatInfo2;
+ struct PhysicalDevicePointClippingProperties;
+ using PhysicalDevicePointClippingPropertiesKHR = PhysicalDevicePointClippingProperties;
+ struct RenderPassInputAttachmentAspectCreateInfo;
+ using RenderPassInputAttachmentAspectCreateInfoKHR = RenderPassInputAttachmentAspectCreateInfo;
+ struct InputAttachmentAspectReference;
+ using InputAttachmentAspectReferenceKHR = InputAttachmentAspectReference;
+ struct ImageViewUsageCreateInfo;
+ using ImageViewUsageCreateInfoKHR = ImageViewUsageCreateInfo;
+ struct PipelineTessellationDomainOriginStateCreateInfo;
+ using PipelineTessellationDomainOriginStateCreateInfoKHR = PipelineTessellationDomainOriginStateCreateInfo;
+ struct RenderPassMultiviewCreateInfo;
+ using RenderPassMultiviewCreateInfoKHR = RenderPassMultiviewCreateInfo;
+ struct PhysicalDeviceMultiviewFeatures;
+ using PhysicalDeviceMultiviewFeaturesKHR = PhysicalDeviceMultiviewFeatures;
+ struct PhysicalDeviceMultiviewProperties;
+ using PhysicalDeviceMultiviewPropertiesKHR = PhysicalDeviceMultiviewProperties;
+ struct PhysicalDeviceVariablePointersFeatures;
+ using PhysicalDeviceVariablePointerFeatures = PhysicalDeviceVariablePointersFeatures;
+ using PhysicalDeviceVariablePointerFeaturesKHR = PhysicalDeviceVariablePointersFeatures;
+ using PhysicalDeviceVariablePointersFeaturesKHR = PhysicalDeviceVariablePointersFeatures;
+ struct PhysicalDeviceProtectedMemoryFeatures;
+ struct PhysicalDeviceProtectedMemoryProperties;
+ struct DeviceQueueInfo2;
+ struct ProtectedSubmitInfo;
+ struct SamplerYcbcrConversionCreateInfo;
+ using SamplerYcbcrConversionCreateInfoKHR = SamplerYcbcrConversionCreateInfo;
+ struct SamplerYcbcrConversionInfo;
+ using SamplerYcbcrConversionInfoKHR = SamplerYcbcrConversionInfo;
+ struct BindImagePlaneMemoryInfo;
+ using BindImagePlaneMemoryInfoKHR = BindImagePlaneMemoryInfo;
+ struct ImagePlaneMemoryRequirementsInfo;
+ using ImagePlaneMemoryRequirementsInfoKHR = ImagePlaneMemoryRequirementsInfo;
+ struct PhysicalDeviceSamplerYcbcrConversionFeatures;
+ using PhysicalDeviceSamplerYcbcrConversionFeaturesKHR = PhysicalDeviceSamplerYcbcrConversionFeatures;
+ struct SamplerYcbcrConversionImageFormatProperties;
+ using SamplerYcbcrConversionImageFormatPropertiesKHR = SamplerYcbcrConversionImageFormatProperties;
+ struct DescriptorUpdateTemplateEntry;
+ using DescriptorUpdateTemplateEntryKHR = DescriptorUpdateTemplateEntry;
+ struct DescriptorUpdateTemplateCreateInfo;
+ using DescriptorUpdateTemplateCreateInfoKHR = DescriptorUpdateTemplateCreateInfo;
+ struct ExternalMemoryProperties;
+ using ExternalMemoryPropertiesKHR = ExternalMemoryProperties;
+ struct PhysicalDeviceExternalImageFormatInfo;
+ using PhysicalDeviceExternalImageFormatInfoKHR = PhysicalDeviceExternalImageFormatInfo;
+ struct ExternalImageFormatProperties;
+ using ExternalImageFormatPropertiesKHR = ExternalImageFormatProperties;
+ struct PhysicalDeviceExternalBufferInfo;
+ using PhysicalDeviceExternalBufferInfoKHR = PhysicalDeviceExternalBufferInfo;
+ struct ExternalBufferProperties;
+ using ExternalBufferPropertiesKHR = ExternalBufferProperties;
+ struct PhysicalDeviceIDProperties;
+ using PhysicalDeviceIDPropertiesKHR = PhysicalDeviceIDProperties;
+ struct ExternalMemoryImageCreateInfo;
+ using ExternalMemoryImageCreateInfoKHR = ExternalMemoryImageCreateInfo;
+ struct ExternalMemoryBufferCreateInfo;
+ using ExternalMemoryBufferCreateInfoKHR = ExternalMemoryBufferCreateInfo;
+ struct ExportMemoryAllocateInfo;
+ using ExportMemoryAllocateInfoKHR = ExportMemoryAllocateInfo;
+ struct PhysicalDeviceExternalFenceInfo;
+ using PhysicalDeviceExternalFenceInfoKHR = PhysicalDeviceExternalFenceInfo;
+ struct ExternalFenceProperties;
+ using ExternalFencePropertiesKHR = ExternalFenceProperties;
+ struct ExportFenceCreateInfo;
+ using ExportFenceCreateInfoKHR = ExportFenceCreateInfo;
+ struct ExportSemaphoreCreateInfo;
+ using ExportSemaphoreCreateInfoKHR = ExportSemaphoreCreateInfo;
+ struct PhysicalDeviceExternalSemaphoreInfo;
+ using PhysicalDeviceExternalSemaphoreInfoKHR = PhysicalDeviceExternalSemaphoreInfo;
+ struct ExternalSemaphoreProperties;
+ using ExternalSemaphorePropertiesKHR = ExternalSemaphoreProperties;
+ struct PhysicalDeviceMaintenance3Properties;
+ using PhysicalDeviceMaintenance3PropertiesKHR = PhysicalDeviceMaintenance3Properties;
struct DescriptorSetLayoutSupport;
using DescriptorSetLayoutSupportKHR = DescriptorSetLayoutSupport;
+ struct PhysicalDeviceShaderDrawParametersFeatures;
+ using PhysicalDeviceShaderDrawParameterFeatures = PhysicalDeviceShaderDrawParametersFeatures;
+
+ //=== VK_VERSION_1_2 ===
+ struct PhysicalDeviceVulkan11Features;
+ struct PhysicalDeviceVulkan11Properties;
+ struct PhysicalDeviceVulkan12Features;
+ struct PhysicalDeviceVulkan12Properties;
+ struct ImageFormatListCreateInfo;
+ using ImageFormatListCreateInfoKHR = ImageFormatListCreateInfo;
+ struct RenderPassCreateInfo2;
+ using RenderPassCreateInfo2KHR = RenderPassCreateInfo2;
+ struct AttachmentDescription2;
+ using AttachmentDescription2KHR = AttachmentDescription2;
+ struct AttachmentReference2;
+ using AttachmentReference2KHR = AttachmentReference2;
+ struct SubpassDescription2;
+ using SubpassDescription2KHR = SubpassDescription2;
+ struct SubpassDependency2;
+ using SubpassDependency2KHR = SubpassDependency2;
+ struct SubpassBeginInfo;
+ using SubpassBeginInfoKHR = SubpassBeginInfo;
+ struct SubpassEndInfo;
+ using SubpassEndInfoKHR = SubpassEndInfo;
+ struct PhysicalDevice8BitStorageFeatures;
+ using PhysicalDevice8BitStorageFeaturesKHR = PhysicalDevice8BitStorageFeatures;
+ struct ConformanceVersion;
+ using ConformanceVersionKHR = ConformanceVersion;
+ struct PhysicalDeviceDriverProperties;
+ using PhysicalDeviceDriverPropertiesKHR = PhysicalDeviceDriverProperties;
+ struct PhysicalDeviceShaderAtomicInt64Features;
+ using PhysicalDeviceShaderAtomicInt64FeaturesKHR = PhysicalDeviceShaderAtomicInt64Features;
+ struct PhysicalDeviceShaderFloat16Int8Features;
+ using PhysicalDeviceFloat16Int8FeaturesKHR = PhysicalDeviceShaderFloat16Int8Features;
+ using PhysicalDeviceShaderFloat16Int8FeaturesKHR = PhysicalDeviceShaderFloat16Int8Features;
+ struct PhysicalDeviceFloatControlsProperties;
+ using PhysicalDeviceFloatControlsPropertiesKHR = PhysicalDeviceFloatControlsProperties;
+ struct DescriptorSetLayoutBindingFlagsCreateInfo;
+ using DescriptorSetLayoutBindingFlagsCreateInfoEXT = DescriptorSetLayoutBindingFlagsCreateInfo;
+ struct PhysicalDeviceDescriptorIndexingFeatures;
+ using PhysicalDeviceDescriptorIndexingFeaturesEXT = PhysicalDeviceDescriptorIndexingFeatures;
+ struct PhysicalDeviceDescriptorIndexingProperties;
+ using PhysicalDeviceDescriptorIndexingPropertiesEXT = PhysicalDeviceDescriptorIndexingProperties;
struct DescriptorSetVariableDescriptorCountAllocateInfo;
using DescriptorSetVariableDescriptorCountAllocateInfoEXT = DescriptorSetVariableDescriptorCountAllocateInfo;
struct DescriptorSetVariableDescriptorCountLayoutSupport;
using DescriptorSetVariableDescriptorCountLayoutSupportEXT = DescriptorSetVariableDescriptorCountLayoutSupport;
- struct DescriptorUpdateTemplateCreateInfo;
- using DescriptorUpdateTemplateCreateInfoKHR = DescriptorUpdateTemplateCreateInfo;
- struct DescriptorUpdateTemplateEntry;
- using DescriptorUpdateTemplateEntryKHR = DescriptorUpdateTemplateEntry;
- struct DeviceCreateInfo;
- struct DeviceDeviceMemoryReportCreateInfoEXT;
- struct DeviceDiagnosticsConfigCreateInfoNV;
- struct DeviceEventInfoEXT;
- struct DeviceGroupBindSparseInfo;
- using DeviceGroupBindSparseInfoKHR = DeviceGroupBindSparseInfo;
- struct DeviceGroupCommandBufferBeginInfo;
- using DeviceGroupCommandBufferBeginInfoKHR = DeviceGroupCommandBufferBeginInfo;
- struct DeviceGroupDeviceCreateInfo;
- using DeviceGroupDeviceCreateInfoKHR = DeviceGroupDeviceCreateInfo;
+ struct SubpassDescriptionDepthStencilResolve;
+ using SubpassDescriptionDepthStencilResolveKHR = SubpassDescriptionDepthStencilResolve;
+ struct PhysicalDeviceDepthStencilResolveProperties;
+ using PhysicalDeviceDepthStencilResolvePropertiesKHR = PhysicalDeviceDepthStencilResolveProperties;
+ struct PhysicalDeviceScalarBlockLayoutFeatures;
+ using PhysicalDeviceScalarBlockLayoutFeaturesEXT = PhysicalDeviceScalarBlockLayoutFeatures;
+ struct ImageStencilUsageCreateInfo;
+ using ImageStencilUsageCreateInfoEXT = ImageStencilUsageCreateInfo;
+ struct SamplerReductionModeCreateInfo;
+ using SamplerReductionModeCreateInfoEXT = SamplerReductionModeCreateInfo;
+ struct PhysicalDeviceSamplerFilterMinmaxProperties;
+ using PhysicalDeviceSamplerFilterMinmaxPropertiesEXT = PhysicalDeviceSamplerFilterMinmaxProperties;
+ struct PhysicalDeviceVulkanMemoryModelFeatures;
+ using PhysicalDeviceVulkanMemoryModelFeaturesKHR = PhysicalDeviceVulkanMemoryModelFeatures;
+ struct PhysicalDeviceImagelessFramebufferFeatures;
+ using PhysicalDeviceImagelessFramebufferFeaturesKHR = PhysicalDeviceImagelessFramebufferFeatures;
+ struct FramebufferAttachmentsCreateInfo;
+ using FramebufferAttachmentsCreateInfoKHR = FramebufferAttachmentsCreateInfo;
+ struct FramebufferAttachmentImageInfo;
+ using FramebufferAttachmentImageInfoKHR = FramebufferAttachmentImageInfo;
+ struct RenderPassAttachmentBeginInfo;
+ using RenderPassAttachmentBeginInfoKHR = RenderPassAttachmentBeginInfo;
+ struct PhysicalDeviceUniformBufferStandardLayoutFeatures;
+ using PhysicalDeviceUniformBufferStandardLayoutFeaturesKHR = PhysicalDeviceUniformBufferStandardLayoutFeatures;
+ struct PhysicalDeviceShaderSubgroupExtendedTypesFeatures;
+ using PhysicalDeviceShaderSubgroupExtendedTypesFeaturesKHR = PhysicalDeviceShaderSubgroupExtendedTypesFeatures;
+ struct PhysicalDeviceSeparateDepthStencilLayoutsFeatures;
+ using PhysicalDeviceSeparateDepthStencilLayoutsFeaturesKHR = PhysicalDeviceSeparateDepthStencilLayoutsFeatures;
+ struct AttachmentReferenceStencilLayout;
+ using AttachmentReferenceStencilLayoutKHR = AttachmentReferenceStencilLayout;
+ struct AttachmentDescriptionStencilLayout;
+ using AttachmentDescriptionStencilLayoutKHR = AttachmentDescriptionStencilLayout;
+ struct PhysicalDeviceHostQueryResetFeatures;
+ using PhysicalDeviceHostQueryResetFeaturesEXT = PhysicalDeviceHostQueryResetFeatures;
+ struct PhysicalDeviceTimelineSemaphoreFeatures;
+ using PhysicalDeviceTimelineSemaphoreFeaturesKHR = PhysicalDeviceTimelineSemaphoreFeatures;
+ struct PhysicalDeviceTimelineSemaphoreProperties;
+ using PhysicalDeviceTimelineSemaphorePropertiesKHR = PhysicalDeviceTimelineSemaphoreProperties;
+ struct SemaphoreTypeCreateInfo;
+ using SemaphoreTypeCreateInfoKHR = SemaphoreTypeCreateInfo;
+ struct TimelineSemaphoreSubmitInfo;
+ using TimelineSemaphoreSubmitInfoKHR = TimelineSemaphoreSubmitInfo;
+ struct SemaphoreWaitInfo;
+ using SemaphoreWaitInfoKHR = SemaphoreWaitInfo;
+ struct SemaphoreSignalInfo;
+ using SemaphoreSignalInfoKHR = SemaphoreSignalInfo;
+ struct PhysicalDeviceBufferDeviceAddressFeatures;
+ using PhysicalDeviceBufferDeviceAddressFeaturesKHR = PhysicalDeviceBufferDeviceAddressFeatures;
+ struct BufferDeviceAddressInfo;
+ using BufferDeviceAddressInfoEXT = BufferDeviceAddressInfo;
+ using BufferDeviceAddressInfoKHR = BufferDeviceAddressInfo;
+ struct BufferOpaqueCaptureAddressCreateInfo;
+ using BufferOpaqueCaptureAddressCreateInfoKHR = BufferOpaqueCaptureAddressCreateInfo;
+ struct MemoryOpaqueCaptureAddressAllocateInfo;
+ using MemoryOpaqueCaptureAddressAllocateInfoKHR = MemoryOpaqueCaptureAddressAllocateInfo;
+ struct DeviceMemoryOpaqueCaptureAddressInfo;
+ using DeviceMemoryOpaqueCaptureAddressInfoKHR = DeviceMemoryOpaqueCaptureAddressInfo;
+
+ //=== VK_KHR_surface ===
+ struct SurfaceCapabilitiesKHR;
+ struct SurfaceFormatKHR;
+
+ //=== VK_KHR_swapchain ===
+ struct SwapchainCreateInfoKHR;
+ struct PresentInfoKHR;
+ struct ImageSwapchainCreateInfoKHR;
+ struct BindImageMemorySwapchainInfoKHR;
+ struct AcquireNextImageInfoKHR;
struct DeviceGroupPresentCapabilitiesKHR;
struct DeviceGroupPresentInfoKHR;
- struct DeviceGroupRenderPassBeginInfo;
- using DeviceGroupRenderPassBeginInfoKHR = DeviceGroupRenderPassBeginInfo;
- struct DeviceGroupSubmitInfo;
- using DeviceGroupSubmitInfoKHR = DeviceGroupSubmitInfo;
struct DeviceGroupSwapchainCreateInfoKHR;
- struct DeviceMemoryOpaqueCaptureAddressInfo;
- using DeviceMemoryOpaqueCaptureAddressInfoKHR = DeviceMemoryOpaqueCaptureAddressInfo;
- struct DeviceMemoryOverallocationCreateInfoAMD;
- struct DeviceMemoryReportCallbackDataEXT;
- union DeviceOrHostAddressConstKHR;
- union DeviceOrHostAddressKHR;
- struct DevicePrivateDataCreateInfoEXT;
- struct DeviceQueueCreateInfo;
- struct DeviceQueueGlobalPriorityCreateInfoEXT;
- struct DeviceQueueInfo2;
-#if defined( VK_USE_PLATFORM_DIRECTFB_EXT )
- struct DirectFBSurfaceCreateInfoEXT;
-#endif /*VK_USE_PLATFORM_DIRECTFB_EXT*/
- struct DispatchIndirectCommand;
- struct DisplayEventInfoEXT;
+
+ //=== VK_KHR_display ===
struct DisplayModeCreateInfoKHR;
struct DisplayModeParametersKHR;
- struct DisplayModeProperties2KHR;
struct DisplayModePropertiesKHR;
- struct DisplayNativeHdrSurfaceCapabilitiesAMD;
- struct DisplayPlaneCapabilities2KHR;
struct DisplayPlaneCapabilitiesKHR;
- struct DisplayPlaneInfo2KHR;
- struct DisplayPlaneProperties2KHR;
struct DisplayPlanePropertiesKHR;
- struct DisplayPowerInfoEXT;
- struct DisplayPresentInfoKHR;
- struct DisplayProperties2KHR;
struct DisplayPropertiesKHR;
struct DisplaySurfaceCreateInfoKHR;
- struct DrawIndexedIndirectCommand;
- struct DrawIndirectCommand;
- struct DrawMeshTasksIndirectCommandNV;
- struct DrmFormatModifierPropertiesEXT;
- struct DrmFormatModifierPropertiesListEXT;
- struct EventCreateInfo;
- struct ExportFenceCreateInfo;
- using ExportFenceCreateInfoKHR = ExportFenceCreateInfo;
+
+ //=== VK_KHR_display_swapchain ===
+ struct DisplayPresentInfoKHR;
+
+#if defined( VK_USE_PLATFORM_XLIB_KHR )
+ //=== VK_KHR_xlib_surface ===
+ struct XlibSurfaceCreateInfoKHR;
+#endif /*VK_USE_PLATFORM_XLIB_KHR*/
+
+#if defined( VK_USE_PLATFORM_XCB_KHR )
+ //=== VK_KHR_xcb_surface ===
+ struct XcbSurfaceCreateInfoKHR;
+#endif /*VK_USE_PLATFORM_XCB_KHR*/
+
+#if defined( VK_USE_PLATFORM_WAYLAND_KHR )
+ //=== VK_KHR_wayland_surface ===
+ struct WaylandSurfaceCreateInfoKHR;
+#endif /*VK_USE_PLATFORM_WAYLAND_KHR*/
+
+#if defined( VK_USE_PLATFORM_ANDROID_KHR )
+ //=== VK_KHR_android_surface ===
+ struct AndroidSurfaceCreateInfoKHR;
+#endif /*VK_USE_PLATFORM_ANDROID_KHR*/
+
#if defined( VK_USE_PLATFORM_WIN32_KHR )
- struct ExportFenceWin32HandleInfoKHR;
+ //=== VK_KHR_win32_surface ===
+ struct Win32SurfaceCreateInfoKHR;
#endif /*VK_USE_PLATFORM_WIN32_KHR*/
- struct ExportMemoryAllocateInfo;
- using ExportMemoryAllocateInfoKHR = ExportMemoryAllocateInfo;
+
+ //=== VK_EXT_debug_report ===
+ struct DebugReportCallbackCreateInfoEXT;
+
+ //=== VK_AMD_rasterization_order ===
+ struct PipelineRasterizationStateRasterizationOrderAMD;
+
+ //=== VK_EXT_debug_marker ===
+ struct DebugMarkerObjectNameInfoEXT;
+ struct DebugMarkerObjectTagInfoEXT;
+ struct DebugMarkerMarkerInfoEXT;
+
+#if defined( VK_ENABLE_BETA_EXTENSIONS )
+ //=== VK_KHR_video_queue ===
+ struct VideoQueueFamilyProperties2KHR;
+ struct VideoProfileKHR;
+ struct VideoProfilesKHR;
+ struct VideoCapabilitiesKHR;
+ struct PhysicalDeviceVideoFormatInfoKHR;
+ struct VideoFormatPropertiesKHR;
+ struct VideoPictureResourceKHR;
+ struct VideoReferenceSlotKHR;
+ struct VideoGetMemoryPropertiesKHR;
+ struct VideoBindMemoryKHR;
+ struct VideoSessionCreateInfoKHR;
+ struct VideoSessionParametersCreateInfoKHR;
+ struct VideoSessionParametersUpdateInfoKHR;
+ struct VideoBeginCodingInfoKHR;
+ struct VideoEndCodingInfoKHR;
+ struct VideoCodingControlInfoKHR;
+#endif /*VK_ENABLE_BETA_EXTENSIONS*/
+
+#if defined( VK_ENABLE_BETA_EXTENSIONS )
+ //=== VK_KHR_video_decode_queue ===
+ struct VideoDecodeInfoKHR;
+#endif /*VK_ENABLE_BETA_EXTENSIONS*/
+
+ //=== VK_NV_dedicated_allocation ===
+ struct DedicatedAllocationImageCreateInfoNV;
+ struct DedicatedAllocationBufferCreateInfoNV;
+ struct DedicatedAllocationMemoryAllocateInfoNV;
+
+ //=== VK_EXT_transform_feedback ===
+ struct PhysicalDeviceTransformFeedbackFeaturesEXT;
+ struct PhysicalDeviceTransformFeedbackPropertiesEXT;
+ struct PipelineRasterizationStateStreamCreateInfoEXT;
+
+ //=== VK_NVX_binary_import ===
+ struct CuModuleCreateInfoNVX;
+ struct CuFunctionCreateInfoNVX;
+ struct CuLaunchInfoNVX;
+
+ //=== VK_NVX_image_view_handle ===
+ struct ImageViewHandleInfoNVX;
+ struct ImageViewAddressPropertiesNVX;
+
+#if defined( VK_ENABLE_BETA_EXTENSIONS )
+ //=== VK_EXT_video_encode_h264 ===
+ struct VideoEncodeH264CapabilitiesEXT;
+ struct VideoEncodeH264SessionCreateInfoEXT;
+ struct VideoEncodeH264SessionParametersCreateInfoEXT;
+ struct VideoEncodeH264SessionParametersAddInfoEXT;
+ struct VideoEncodeH264VclFrameInfoEXT;
+ struct VideoEncodeH264EmitPictureParametersEXT;
+ struct VideoEncodeH264DpbSlotInfoEXT;
+ struct VideoEncodeH264NaluSliceEXT;
+ struct VideoEncodeH264ProfileEXT;
+#endif /*VK_ENABLE_BETA_EXTENSIONS*/
+
+#if defined( VK_ENABLE_BETA_EXTENSIONS )
+ //=== VK_EXT_video_decode_h264 ===
+ struct VideoDecodeH264ProfileEXT;
+ struct VideoDecodeH264CapabilitiesEXT;
+ struct VideoDecodeH264SessionCreateInfoEXT;
+ struct VideoDecodeH264SessionParametersCreateInfoEXT;
+ struct VideoDecodeH264SessionParametersAddInfoEXT;
+ struct VideoDecodeH264PictureInfoEXT;
+ struct VideoDecodeH264MvcEXT;
+ struct VideoDecodeH264DpbSlotInfoEXT;
+#endif /*VK_ENABLE_BETA_EXTENSIONS*/
+
+ //=== VK_AMD_texture_gather_bias_lod ===
+ struct TextureLODGatherFormatPropertiesAMD;
+
+ //=== VK_AMD_shader_info ===
+ struct ShaderResourceUsageAMD;
+ struct ShaderStatisticsInfoAMD;
+
+#if defined( VK_USE_PLATFORM_GGP )
+ //=== VK_GGP_stream_descriptor_surface ===
+ struct StreamDescriptorSurfaceCreateInfoGGP;
+#endif /*VK_USE_PLATFORM_GGP*/
+
+ //=== VK_NV_corner_sampled_image ===
+ struct PhysicalDeviceCornerSampledImageFeaturesNV;
+
+ //=== VK_NV_external_memory_capabilities ===
+ struct ExternalImageFormatPropertiesNV;
+
+ //=== VK_NV_external_memory ===
+ struct ExternalMemoryImageCreateInfoNV;
struct ExportMemoryAllocateInfoNV;
+
#if defined( VK_USE_PLATFORM_WIN32_KHR )
- struct ExportMemoryWin32HandleInfoKHR;
-#endif /*VK_USE_PLATFORM_WIN32_KHR*/
-#if defined( VK_USE_PLATFORM_WIN32_KHR )
+ //=== VK_NV_external_memory_win32 ===
+ struct ImportMemoryWin32HandleInfoNV;
struct ExportMemoryWin32HandleInfoNV;
#endif /*VK_USE_PLATFORM_WIN32_KHR*/
- struct ExportSemaphoreCreateInfo;
- using ExportSemaphoreCreateInfoKHR = ExportSemaphoreCreateInfo;
-#if defined( VK_USE_PLATFORM_WIN32_KHR )
- struct ExportSemaphoreWin32HandleInfoKHR;
-#endif /*VK_USE_PLATFORM_WIN32_KHR*/
- struct ExtensionProperties;
- struct Extent2D;
- struct Extent3D;
- struct ExternalBufferProperties;
- using ExternalBufferPropertiesKHR = ExternalBufferProperties;
- struct ExternalFenceProperties;
- using ExternalFencePropertiesKHR = ExternalFenceProperties;
-#if defined( VK_USE_PLATFORM_ANDROID_KHR )
- struct ExternalFormatANDROID;
-#endif /*VK_USE_PLATFORM_ANDROID_KHR*/
- struct ExternalImageFormatProperties;
- using ExternalImageFormatPropertiesKHR = ExternalImageFormatProperties;
- struct ExternalImageFormatPropertiesNV;
- struct ExternalMemoryBufferCreateInfo;
- using ExternalMemoryBufferCreateInfoKHR = ExternalMemoryBufferCreateInfo;
- struct ExternalMemoryImageCreateInfo;
- using ExternalMemoryImageCreateInfoKHR = ExternalMemoryImageCreateInfo;
- struct ExternalMemoryImageCreateInfoNV;
- struct ExternalMemoryProperties;
- using ExternalMemoryPropertiesKHR = ExternalMemoryProperties;
- struct ExternalSemaphoreProperties;
- using ExternalSemaphorePropertiesKHR = ExternalSemaphoreProperties;
- struct FenceCreateInfo;
- struct FenceGetFdInfoKHR;
+
#if defined( VK_USE_PLATFORM_WIN32_KHR )
- struct FenceGetWin32HandleInfoKHR;
+ //=== VK_NV_win32_keyed_mutex ===
+ struct Win32KeyedMutexAcquireReleaseInfoNV;
#endif /*VK_USE_PLATFORM_WIN32_KHR*/
- struct FilterCubicImageViewImageFormatPropertiesEXT;
- struct FormatProperties;
- struct FormatProperties2;
- using FormatProperties2KHR = FormatProperties2;
- struct FragmentShadingRateAttachmentInfoKHR;
- struct FramebufferAttachmentImageInfo;
- using FramebufferAttachmentImageInfoKHR = FramebufferAttachmentImageInfo;
- struct FramebufferAttachmentsCreateInfo;
- using FramebufferAttachmentsCreateInfoKHR = FramebufferAttachmentsCreateInfo;
- struct FramebufferCreateInfo;
- struct FramebufferMixedSamplesCombinationNV;
- struct GeneratedCommandsInfoNV;
- struct GeneratedCommandsMemoryRequirementsInfoNV;
- struct GeometryAABBNV;
- struct GeometryDataNV;
- struct GeometryNV;
- struct GeometryTrianglesNV;
- struct GraphicsPipelineCreateInfo;
- struct GraphicsPipelineShaderGroupsCreateInfoNV;
- struct GraphicsShaderGroupCreateInfoNV;
- struct HdrMetadataEXT;
- struct HeadlessSurfaceCreateInfoEXT;
-#if defined( VK_USE_PLATFORM_IOS_MVK )
- struct IOSSurfaceCreateInfoMVK;
-#endif /*VK_USE_PLATFORM_IOS_MVK*/
- struct ImageBlit;
- struct ImageBlit2KHR;
- struct ImageCopy;
- struct ImageCopy2KHR;
- struct ImageCreateInfo;
- struct ImageDrmFormatModifierExplicitCreateInfoEXT;
- struct ImageDrmFormatModifierListCreateInfoEXT;
- struct ImageDrmFormatModifierPropertiesEXT;
- struct ImageFormatListCreateInfo;
- using ImageFormatListCreateInfoKHR = ImageFormatListCreateInfo;
- struct ImageFormatProperties;
- struct ImageFormatProperties2;
- using ImageFormatProperties2KHR = ImageFormatProperties2;
- struct ImageMemoryBarrier;
- struct ImageMemoryBarrier2KHR;
- struct ImageMemoryRequirementsInfo2;
- using ImageMemoryRequirementsInfo2KHR = ImageMemoryRequirementsInfo2;
-#if defined( VK_USE_PLATFORM_FUCHSIA )
- struct ImagePipeSurfaceCreateInfoFUCHSIA;
-#endif /*VK_USE_PLATFORM_FUCHSIA*/
- struct ImagePlaneMemoryRequirementsInfo;
- using ImagePlaneMemoryRequirementsInfoKHR = ImagePlaneMemoryRequirementsInfo;
- struct ImageResolve;
- struct ImageResolve2KHR;
- struct ImageSparseMemoryRequirementsInfo2;
- using ImageSparseMemoryRequirementsInfo2KHR = ImageSparseMemoryRequirementsInfo2;
- struct ImageStencilUsageCreateInfo;
- using ImageStencilUsageCreateInfoEXT = ImageStencilUsageCreateInfo;
- struct ImageSubresource;
- struct ImageSubresourceLayers;
- struct ImageSubresourceRange;
- struct ImageSwapchainCreateInfoKHR;
+
+ //=== VK_EXT_validation_flags ===
+ struct ValidationFlagsEXT;
+
+#if defined( VK_USE_PLATFORM_VI_NN )
+ //=== VK_NN_vi_surface ===
+ struct ViSurfaceCreateInfoNN;
+#endif /*VK_USE_PLATFORM_VI_NN*/
+
+ //=== VK_EXT_texture_compression_astc_hdr ===
+ struct PhysicalDeviceTextureCompressionASTCHDRFeaturesEXT;
+
+ //=== VK_EXT_astc_decode_mode ===
struct ImageViewASTCDecodeModeEXT;
- struct ImageViewAddressPropertiesNVX;
- struct ImageViewCreateInfo;
- struct ImageViewHandleInfoNVX;
- struct ImageViewUsageCreateInfo;
- using ImageViewUsageCreateInfoKHR = ImageViewUsageCreateInfo;
-#if defined( VK_USE_PLATFORM_ANDROID_KHR )
- struct ImportAndroidHardwareBufferInfoANDROID;
-#endif /*VK_USE_PLATFORM_ANDROID_KHR*/
- struct ImportFenceFdInfoKHR;
+ struct PhysicalDeviceASTCDecodeFeaturesEXT;
+
#if defined( VK_USE_PLATFORM_WIN32_KHR )
- struct ImportFenceWin32HandleInfoKHR;
+ //=== VK_KHR_external_memory_win32 ===
+ struct ImportMemoryWin32HandleInfoKHR;
+ struct ExportMemoryWin32HandleInfoKHR;
+ struct MemoryWin32HandlePropertiesKHR;
+ struct MemoryGetWin32HandleInfoKHR;
#endif /*VK_USE_PLATFORM_WIN32_KHR*/
+
+ //=== VK_KHR_external_memory_fd ===
struct ImportMemoryFdInfoKHR;
- struct ImportMemoryHostPointerInfoEXT;
+ struct MemoryFdPropertiesKHR;
+ struct MemoryGetFdInfoKHR;
+
#if defined( VK_USE_PLATFORM_WIN32_KHR )
- struct ImportMemoryWin32HandleInfoKHR;
+ //=== VK_KHR_win32_keyed_mutex ===
+ struct Win32KeyedMutexAcquireReleaseInfoKHR;
#endif /*VK_USE_PLATFORM_WIN32_KHR*/
+
#if defined( VK_USE_PLATFORM_WIN32_KHR )
- struct ImportMemoryWin32HandleInfoNV;
+ //=== VK_KHR_external_semaphore_win32 ===
+ struct ImportSemaphoreWin32HandleInfoKHR;
+ struct ExportSemaphoreWin32HandleInfoKHR;
+ struct D3D12FenceSubmitInfoKHR;
+ struct SemaphoreGetWin32HandleInfoKHR;
#endif /*VK_USE_PLATFORM_WIN32_KHR*/
-#if defined( VK_USE_PLATFORM_FUCHSIA )
- struct ImportMemoryZirconHandleInfoFUCHSIA;
-#endif /*VK_USE_PLATFORM_FUCHSIA*/
+
+ //=== VK_KHR_external_semaphore_fd ===
struct ImportSemaphoreFdInfoKHR;
+ struct SemaphoreGetFdInfoKHR;
+
+ //=== VK_KHR_push_descriptor ===
+ struct PhysicalDevicePushDescriptorPropertiesKHR;
+
+ //=== VK_EXT_conditional_rendering ===
+ struct ConditionalRenderingBeginInfoEXT;
+ struct PhysicalDeviceConditionalRenderingFeaturesEXT;
+ struct CommandBufferInheritanceConditionalRenderingInfoEXT;
+
+ //=== VK_KHR_incremental_present ===
+ struct PresentRegionsKHR;
+ struct PresentRegionKHR;
+ struct RectLayerKHR;
+
+ //=== VK_NV_clip_space_w_scaling ===
+ struct ViewportWScalingNV;
+ struct PipelineViewportWScalingStateCreateInfoNV;
+
+ //=== VK_EXT_display_surface_counter ===
+ struct SurfaceCapabilities2EXT;
+
+ //=== VK_EXT_display_control ===
+ struct DisplayPowerInfoEXT;
+ struct DeviceEventInfoEXT;
+ struct DisplayEventInfoEXT;
+ struct SwapchainCounterCreateInfoEXT;
+
+ //=== VK_GOOGLE_display_timing ===
+ struct RefreshCycleDurationGOOGLE;
+ struct PastPresentationTimingGOOGLE;
+ struct PresentTimesInfoGOOGLE;
+ struct PresentTimeGOOGLE;
+
+ //=== VK_NVX_multiview_per_view_attributes ===
+ struct PhysicalDeviceMultiviewPerViewAttributesPropertiesNVX;
+
+ //=== VK_NV_viewport_swizzle ===
+ struct ViewportSwizzleNV;
+ struct PipelineViewportSwizzleStateCreateInfoNV;
+
+ //=== VK_EXT_discard_rectangles ===
+ struct PhysicalDeviceDiscardRectanglePropertiesEXT;
+ struct PipelineDiscardRectangleStateCreateInfoEXT;
+
+ //=== VK_EXT_conservative_rasterization ===
+ struct PhysicalDeviceConservativeRasterizationPropertiesEXT;
+ struct PipelineRasterizationConservativeStateCreateInfoEXT;
+
+ //=== VK_EXT_depth_clip_enable ===
+ struct PhysicalDeviceDepthClipEnableFeaturesEXT;
+ struct PipelineRasterizationDepthClipStateCreateInfoEXT;
+
+ //=== VK_EXT_hdr_metadata ===
+ struct HdrMetadataEXT;
+ struct XYColorEXT;
+
+ //=== VK_KHR_shared_presentable_image ===
+ struct SharedPresentSurfaceCapabilitiesKHR;
+
#if defined( VK_USE_PLATFORM_WIN32_KHR )
- struct ImportSemaphoreWin32HandleInfoKHR;
+ //=== VK_KHR_external_fence_win32 ===
+ struct ImportFenceWin32HandleInfoKHR;
+ struct ExportFenceWin32HandleInfoKHR;
+ struct FenceGetWin32HandleInfoKHR;
#endif /*VK_USE_PLATFORM_WIN32_KHR*/
-#if defined( VK_USE_PLATFORM_FUCHSIA )
- struct ImportSemaphoreZirconHandleInfoFUCHSIA;
-#endif /*VK_USE_PLATFORM_FUCHSIA*/
- struct IndirectCommandsLayoutCreateInfoNV;
- struct IndirectCommandsLayoutTokenNV;
- struct IndirectCommandsStreamNV;
- struct InitializePerformanceApiInfoINTEL;
- struct InputAttachmentAspectReference;
- using InputAttachmentAspectReferenceKHR = InputAttachmentAspectReference;
- struct InstanceCreateInfo;
- struct LayerProperties;
+
+ //=== VK_KHR_external_fence_fd ===
+ struct ImportFenceFdInfoKHR;
+ struct FenceGetFdInfoKHR;
+
+ //=== VK_KHR_performance_query ===
+ struct PhysicalDevicePerformanceQueryFeaturesKHR;
+ struct PhysicalDevicePerformanceQueryPropertiesKHR;
+ struct PerformanceCounterKHR;
+ struct PerformanceCounterDescriptionKHR;
+ struct QueryPoolPerformanceCreateInfoKHR;
+ union PerformanceCounterResultKHR;
+ struct AcquireProfilingLockInfoKHR;
+ struct PerformanceQuerySubmitInfoKHR;
+
+ //=== VK_KHR_get_surface_capabilities2 ===
+ struct PhysicalDeviceSurfaceInfo2KHR;
+ struct SurfaceCapabilities2KHR;
+ struct SurfaceFormat2KHR;
+
+ //=== VK_KHR_get_display_properties2 ===
+ struct DisplayProperties2KHR;
+ struct DisplayPlaneProperties2KHR;
+ struct DisplayModeProperties2KHR;
+ struct DisplayPlaneInfo2KHR;
+ struct DisplayPlaneCapabilities2KHR;
+
+#if defined( VK_USE_PLATFORM_IOS_MVK )
+ //=== VK_MVK_ios_surface ===
+ struct IOSSurfaceCreateInfoMVK;
+#endif /*VK_USE_PLATFORM_IOS_MVK*/
+
#if defined( VK_USE_PLATFORM_MACOS_MVK )
+ //=== VK_MVK_macos_surface ===
struct MacOSSurfaceCreateInfoMVK;
#endif /*VK_USE_PLATFORM_MACOS_MVK*/
- struct MappedMemoryRange;
- struct MemoryAllocateFlagsInfo;
- using MemoryAllocateFlagsInfoKHR = MemoryAllocateFlagsInfo;
- struct MemoryAllocateInfo;
- struct MemoryBarrier;
- struct MemoryBarrier2KHR;
- struct MemoryDedicatedAllocateInfo;
- using MemoryDedicatedAllocateInfoKHR = MemoryDedicatedAllocateInfo;
- struct MemoryDedicatedRequirements;
- using MemoryDedicatedRequirementsKHR = MemoryDedicatedRequirements;
- struct MemoryFdPropertiesKHR;
+
+ //=== VK_EXT_debug_utils ===
+ struct DebugUtilsLabelEXT;
+ struct DebugUtilsMessengerCallbackDataEXT;
+ struct DebugUtilsMessengerCreateInfoEXT;
+ struct DebugUtilsObjectNameInfoEXT;
+ struct DebugUtilsObjectTagInfoEXT;
+
#if defined( VK_USE_PLATFORM_ANDROID_KHR )
+ //=== VK_ANDROID_external_memory_android_hardware_buffer ===
+ struct AndroidHardwareBufferUsageANDROID;
+ struct AndroidHardwareBufferPropertiesANDROID;
+ struct AndroidHardwareBufferFormatPropertiesANDROID;
+ struct ImportAndroidHardwareBufferInfoANDROID;
struct MemoryGetAndroidHardwareBufferInfoANDROID;
+ struct ExternalFormatANDROID;
#endif /*VK_USE_PLATFORM_ANDROID_KHR*/
- struct MemoryGetFdInfoKHR;
-#if defined( VK_USE_PLATFORM_WIN32_KHR )
- struct MemoryGetWin32HandleInfoKHR;
-#endif /*VK_USE_PLATFORM_WIN32_KHR*/
-#if defined( VK_USE_PLATFORM_FUCHSIA )
- struct MemoryGetZirconHandleInfoFUCHSIA;
-#endif /*VK_USE_PLATFORM_FUCHSIA*/
- struct MemoryHeap;
- struct MemoryHostPointerPropertiesEXT;
- struct MemoryOpaqueCaptureAddressAllocateInfo;
- using MemoryOpaqueCaptureAddressAllocateInfoKHR = MemoryOpaqueCaptureAddressAllocateInfo;
- struct MemoryPriorityAllocateInfoEXT;
- struct MemoryRequirements;
- struct MemoryRequirements2;
- using MemoryRequirements2KHR = MemoryRequirements2;
- struct MemoryType;
-#if defined( VK_USE_PLATFORM_WIN32_KHR )
- struct MemoryWin32HandlePropertiesKHR;
-#endif /*VK_USE_PLATFORM_WIN32_KHR*/
-#if defined( VK_USE_PLATFORM_FUCHSIA )
- struct MemoryZirconHandlePropertiesFUCHSIA;
-#endif /*VK_USE_PLATFORM_FUCHSIA*/
-#if defined( VK_USE_PLATFORM_METAL_EXT )
- struct MetalSurfaceCreateInfoEXT;
-#endif /*VK_USE_PLATFORM_METAL_EXT*/
- struct MultiDrawIndexedInfoEXT;
- struct MultiDrawInfoEXT;
+
+ //=== VK_EXT_inline_uniform_block ===
+ struct PhysicalDeviceInlineUniformBlockFeaturesEXT;
+ struct PhysicalDeviceInlineUniformBlockPropertiesEXT;
+ struct WriteDescriptorSetInlineUniformBlockEXT;
+ struct DescriptorPoolInlineUniformBlockCreateInfoEXT;
+
+ //=== VK_EXT_sample_locations ===
+ struct SampleLocationEXT;
+ struct SampleLocationsInfoEXT;
+ struct AttachmentSampleLocationsEXT;
+ struct SubpassSampleLocationsEXT;
+ struct RenderPassSampleLocationsBeginInfoEXT;
+ struct PipelineSampleLocationsStateCreateInfoEXT;
+ struct PhysicalDeviceSampleLocationsPropertiesEXT;
struct MultisamplePropertiesEXT;
- struct MutableDescriptorTypeCreateInfoVALVE;
- struct MutableDescriptorTypeListVALVE;
- struct Offset2D;
- struct Offset3D;
- struct PastPresentationTimingGOOGLE;
- struct PerformanceConfigurationAcquireInfoINTEL;
- struct PerformanceCounterDescriptionKHR;
- struct PerformanceCounterKHR;
- union PerformanceCounterResultKHR;
- struct PerformanceMarkerInfoINTEL;
- struct PerformanceOverrideInfoINTEL;
- struct PerformanceQuerySubmitInfoKHR;
- struct PerformanceStreamMarkerInfoINTEL;
- union PerformanceValueDataINTEL;
- struct PerformanceValueINTEL;
- struct PhysicalDevice16BitStorageFeatures;
- using PhysicalDevice16BitStorageFeaturesKHR = PhysicalDevice16BitStorageFeatures;
- struct PhysicalDevice4444FormatsFeaturesEXT;
- struct PhysicalDevice8BitStorageFeatures;
- using PhysicalDevice8BitStorageFeaturesKHR = PhysicalDevice8BitStorageFeatures;
- struct PhysicalDeviceASTCDecodeFeaturesEXT;
- struct PhysicalDeviceAccelerationStructureFeaturesKHR;
- struct PhysicalDeviceAccelerationStructurePropertiesKHR;
+
+ //=== VK_EXT_blend_operation_advanced ===
struct PhysicalDeviceBlendOperationAdvancedFeaturesEXT;
struct PhysicalDeviceBlendOperationAdvancedPropertiesEXT;
- struct PhysicalDeviceBufferDeviceAddressFeatures;
- using PhysicalDeviceBufferDeviceAddressFeaturesKHR = PhysicalDeviceBufferDeviceAddressFeatures;
- struct PhysicalDeviceBufferDeviceAddressFeaturesEXT;
- using PhysicalDeviceBufferAddressFeaturesEXT = PhysicalDeviceBufferDeviceAddressFeaturesEXT;
- struct PhysicalDeviceCoherentMemoryFeaturesAMD;
- struct PhysicalDeviceColorWriteEnableFeaturesEXT;
- struct PhysicalDeviceComputeShaderDerivativesFeaturesNV;
- struct PhysicalDeviceConditionalRenderingFeaturesEXT;
- struct PhysicalDeviceConservativeRasterizationPropertiesEXT;
- struct PhysicalDeviceCooperativeMatrixFeaturesNV;
- struct PhysicalDeviceCooperativeMatrixPropertiesNV;
- struct PhysicalDeviceCornerSampledImageFeaturesNV;
- struct PhysicalDeviceCoverageReductionModeFeaturesNV;
- struct PhysicalDeviceCustomBorderColorFeaturesEXT;
- struct PhysicalDeviceCustomBorderColorPropertiesEXT;
- struct PhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV;
- struct PhysicalDeviceDepthClipEnableFeaturesEXT;
- struct PhysicalDeviceDepthStencilResolveProperties;
- using PhysicalDeviceDepthStencilResolvePropertiesKHR = PhysicalDeviceDepthStencilResolveProperties;
- struct PhysicalDeviceDescriptorIndexingFeatures;
- using PhysicalDeviceDescriptorIndexingFeaturesEXT = PhysicalDeviceDescriptorIndexingFeatures;
- struct PhysicalDeviceDescriptorIndexingProperties;
- using PhysicalDeviceDescriptorIndexingPropertiesEXT = PhysicalDeviceDescriptorIndexingProperties;
- struct PhysicalDeviceDeviceGeneratedCommandsFeaturesNV;
- struct PhysicalDeviceDeviceGeneratedCommandsPropertiesNV;
- struct PhysicalDeviceDeviceMemoryReportFeaturesEXT;
- struct PhysicalDeviceDiagnosticsConfigFeaturesNV;
- struct PhysicalDeviceDiscardRectanglePropertiesEXT;
- struct PhysicalDeviceDriverProperties;
- using PhysicalDeviceDriverPropertiesKHR = PhysicalDeviceDriverProperties;
- struct PhysicalDeviceDrmPropertiesEXT;
- struct PhysicalDeviceExclusiveScissorFeaturesNV;
- struct PhysicalDeviceExtendedDynamicState2FeaturesEXT;
- struct PhysicalDeviceExtendedDynamicStateFeaturesEXT;
- struct PhysicalDeviceExternalBufferInfo;
- using PhysicalDeviceExternalBufferInfoKHR = PhysicalDeviceExternalBufferInfo;
- struct PhysicalDeviceExternalFenceInfo;
- using PhysicalDeviceExternalFenceInfoKHR = PhysicalDeviceExternalFenceInfo;
- struct PhysicalDeviceExternalImageFormatInfo;
- using PhysicalDeviceExternalImageFormatInfoKHR = PhysicalDeviceExternalImageFormatInfo;
- struct PhysicalDeviceExternalMemoryHostPropertiesEXT;
- struct PhysicalDeviceExternalSemaphoreInfo;
- using PhysicalDeviceExternalSemaphoreInfoKHR = PhysicalDeviceExternalSemaphoreInfo;
- struct PhysicalDeviceFeatures;
- struct PhysicalDeviceFeatures2;
- using PhysicalDeviceFeatures2KHR = PhysicalDeviceFeatures2;
- struct PhysicalDeviceFloatControlsProperties;
- using PhysicalDeviceFloatControlsPropertiesKHR = PhysicalDeviceFloatControlsProperties;
- struct PhysicalDeviceFragmentDensityMap2FeaturesEXT;
- struct PhysicalDeviceFragmentDensityMap2PropertiesEXT;
- struct PhysicalDeviceFragmentDensityMapFeaturesEXT;
- struct PhysicalDeviceFragmentDensityMapPropertiesEXT;
- struct PhysicalDeviceFragmentShaderBarycentricFeaturesNV;
- struct PhysicalDeviceFragmentShaderInterlockFeaturesEXT;
- struct PhysicalDeviceFragmentShadingRateEnumsFeaturesNV;
- struct PhysicalDeviceFragmentShadingRateEnumsPropertiesNV;
- struct PhysicalDeviceFragmentShadingRateFeaturesKHR;
- struct PhysicalDeviceFragmentShadingRateKHR;
- struct PhysicalDeviceFragmentShadingRatePropertiesKHR;
- struct PhysicalDeviceGlobalPriorityQueryFeaturesEXT;
- struct PhysicalDeviceGroupProperties;
- using PhysicalDeviceGroupPropertiesKHR = PhysicalDeviceGroupProperties;
- struct PhysicalDeviceHostQueryResetFeatures;
- using PhysicalDeviceHostQueryResetFeaturesEXT = PhysicalDeviceHostQueryResetFeatures;
- struct PhysicalDeviceIDProperties;
- using PhysicalDeviceIDPropertiesKHR = PhysicalDeviceIDProperties;
+ struct PipelineColorBlendAdvancedStateCreateInfoEXT;
+
+ //=== VK_NV_fragment_coverage_to_color ===
+ struct PipelineCoverageToColorStateCreateInfoNV;
+
+ //=== VK_KHR_acceleration_structure ===
+ union DeviceOrHostAddressKHR;
+ union DeviceOrHostAddressConstKHR;
+ struct AccelerationStructureBuildRangeInfoKHR;
+ struct AabbPositionsKHR;
+ using AabbPositionsNV = AabbPositionsKHR;
+ struct AccelerationStructureGeometryTrianglesDataKHR;
+ struct TransformMatrixKHR;
+ using TransformMatrixNV = TransformMatrixKHR;
+ struct AccelerationStructureBuildGeometryInfoKHR;
+ struct AccelerationStructureGeometryAabbsDataKHR;
+ struct AccelerationStructureInstanceKHR;
+ using AccelerationStructureInstanceNV = AccelerationStructureInstanceKHR;
+ struct AccelerationStructureGeometryInstancesDataKHR;
+ union AccelerationStructureGeometryDataKHR;
+ struct AccelerationStructureGeometryKHR;
+ struct AccelerationStructureCreateInfoKHR;
+ struct WriteDescriptorSetAccelerationStructureKHR;
+ struct PhysicalDeviceAccelerationStructureFeaturesKHR;
+ struct PhysicalDeviceAccelerationStructurePropertiesKHR;
+ struct AccelerationStructureDeviceAddressInfoKHR;
+ struct AccelerationStructureVersionInfoKHR;
+ struct CopyAccelerationStructureToMemoryInfoKHR;
+ struct CopyMemoryToAccelerationStructureInfoKHR;
+ struct CopyAccelerationStructureInfoKHR;
+ struct AccelerationStructureBuildSizesInfoKHR;
+
+ //=== VK_NV_framebuffer_mixed_samples ===
+ struct PipelineCoverageModulationStateCreateInfoNV;
+
+ //=== VK_NV_shader_sm_builtins ===
+ struct PhysicalDeviceShaderSMBuiltinsPropertiesNV;
+ struct PhysicalDeviceShaderSMBuiltinsFeaturesNV;
+
+ //=== VK_EXT_image_drm_format_modifier ===
+ struct DrmFormatModifierPropertiesListEXT;
+ struct DrmFormatModifierPropertiesEXT;
struct PhysicalDeviceImageDrmFormatModifierInfoEXT;
- struct PhysicalDeviceImageFormatInfo2;
- using PhysicalDeviceImageFormatInfo2KHR = PhysicalDeviceImageFormatInfo2;
- struct PhysicalDeviceImageRobustnessFeaturesEXT;
- struct PhysicalDeviceImageViewImageFormatInfoEXT;
- struct PhysicalDeviceImagelessFramebufferFeatures;
- using PhysicalDeviceImagelessFramebufferFeaturesKHR = PhysicalDeviceImagelessFramebufferFeatures;
- struct PhysicalDeviceIndexTypeUint8FeaturesEXT;
- struct PhysicalDeviceInheritedViewportScissorFeaturesNV;
- struct PhysicalDeviceInlineUniformBlockFeaturesEXT;
- struct PhysicalDeviceInlineUniformBlockPropertiesEXT;
- struct PhysicalDeviceLimits;
- struct PhysicalDeviceLineRasterizationFeaturesEXT;
- struct PhysicalDeviceLineRasterizationPropertiesEXT;
- struct PhysicalDeviceMaintenance3Properties;
- using PhysicalDeviceMaintenance3PropertiesKHR = PhysicalDeviceMaintenance3Properties;
- struct PhysicalDeviceMemoryBudgetPropertiesEXT;
- struct PhysicalDeviceMemoryPriorityFeaturesEXT;
- struct PhysicalDeviceMemoryProperties;
- struct PhysicalDeviceMemoryProperties2;
- using PhysicalDeviceMemoryProperties2KHR = PhysicalDeviceMemoryProperties2;
- struct PhysicalDeviceMeshShaderFeaturesNV;
- struct PhysicalDeviceMeshShaderPropertiesNV;
- struct PhysicalDeviceMultiDrawFeaturesEXT;
- struct PhysicalDeviceMultiDrawPropertiesEXT;
- struct PhysicalDeviceMultiviewFeatures;
- using PhysicalDeviceMultiviewFeaturesKHR = PhysicalDeviceMultiviewFeatures;
- struct PhysicalDeviceMultiviewPerViewAttributesPropertiesNVX;
- struct PhysicalDeviceMultiviewProperties;
- using PhysicalDeviceMultiviewPropertiesKHR = PhysicalDeviceMultiviewProperties;
- struct PhysicalDeviceMutableDescriptorTypeFeaturesVALVE;
- struct PhysicalDevicePCIBusInfoPropertiesEXT;
- struct PhysicalDevicePerformanceQueryFeaturesKHR;
- struct PhysicalDevicePerformanceQueryPropertiesKHR;
- struct PhysicalDevicePipelineCreationCacheControlFeaturesEXT;
- struct PhysicalDevicePipelineExecutablePropertiesFeaturesKHR;
- struct PhysicalDevicePointClippingProperties;
- using PhysicalDevicePointClippingPropertiesKHR = PhysicalDevicePointClippingProperties;
+ struct ImageDrmFormatModifierListCreateInfoEXT;
+ struct ImageDrmFormatModifierExplicitCreateInfoEXT;
+ struct ImageDrmFormatModifierPropertiesEXT;
+
+ //=== VK_EXT_validation_cache ===
+ struct ValidationCacheCreateInfoEXT;
+ struct ShaderModuleValidationCacheCreateInfoEXT;
+
#if defined( VK_ENABLE_BETA_EXTENSIONS )
+ //=== VK_KHR_portability_subset ===
struct PhysicalDevicePortabilitySubsetFeaturesKHR;
-#endif /*VK_ENABLE_BETA_EXTENSIONS*/
-#if defined( VK_ENABLE_BETA_EXTENSIONS )
struct PhysicalDevicePortabilitySubsetPropertiesKHR;
#endif /*VK_ENABLE_BETA_EXTENSIONS*/
- struct PhysicalDevicePrivateDataFeaturesEXT;
- struct PhysicalDeviceProperties;
- struct PhysicalDeviceProperties2;
- using PhysicalDeviceProperties2KHR = PhysicalDeviceProperties2;
- struct PhysicalDeviceProtectedMemoryFeatures;
- struct PhysicalDeviceProtectedMemoryProperties;
- struct PhysicalDeviceProvokingVertexFeaturesEXT;
- struct PhysicalDeviceProvokingVertexPropertiesEXT;
- struct PhysicalDevicePushDescriptorPropertiesKHR;
- struct PhysicalDeviceRayQueryFeaturesKHR;
- struct PhysicalDeviceRayTracingMotionBlurFeaturesNV;
- struct PhysicalDeviceRayTracingPipelineFeaturesKHR;
- struct PhysicalDeviceRayTracingPipelinePropertiesKHR;
+
+ //=== VK_NV_shading_rate_image ===
+ struct ShadingRatePaletteNV;
+ struct PipelineViewportShadingRateImageStateCreateInfoNV;
+ struct PhysicalDeviceShadingRateImageFeaturesNV;
+ struct PhysicalDeviceShadingRateImagePropertiesNV;
+ struct CoarseSampleLocationNV;
+ struct CoarseSampleOrderCustomNV;
+ struct PipelineViewportCoarseSampleOrderStateCreateInfoNV;
+
+ //=== VK_NV_ray_tracing ===
+ struct RayTracingShaderGroupCreateInfoNV;
+ struct RayTracingPipelineCreateInfoNV;
+ struct GeometryTrianglesNV;
+ struct GeometryAABBNV;
+ struct GeometryDataNV;
+ struct GeometryNV;
+ struct AccelerationStructureInfoNV;
+ struct AccelerationStructureCreateInfoNV;
+ struct BindAccelerationStructureMemoryInfoNV;
+ struct WriteDescriptorSetAccelerationStructureNV;
+ struct AccelerationStructureMemoryRequirementsInfoNV;
struct PhysicalDeviceRayTracingPropertiesNV;
+
+ //=== VK_NV_representative_fragment_test ===
struct PhysicalDeviceRepresentativeFragmentTestFeaturesNV;
- struct PhysicalDeviceRobustness2FeaturesEXT;
- struct PhysicalDeviceRobustness2PropertiesEXT;
- struct PhysicalDeviceSampleLocationsPropertiesEXT;
- struct PhysicalDeviceSamplerFilterMinmaxProperties;
- using PhysicalDeviceSamplerFilterMinmaxPropertiesEXT = PhysicalDeviceSamplerFilterMinmaxProperties;
- struct PhysicalDeviceSamplerYcbcrConversionFeatures;
- using PhysicalDeviceSamplerYcbcrConversionFeaturesKHR = PhysicalDeviceSamplerYcbcrConversionFeatures;
- struct PhysicalDeviceScalarBlockLayoutFeatures;
- using PhysicalDeviceScalarBlockLayoutFeaturesEXT = PhysicalDeviceScalarBlockLayoutFeatures;
- struct PhysicalDeviceSeparateDepthStencilLayoutsFeatures;
- using PhysicalDeviceSeparateDepthStencilLayoutsFeaturesKHR = PhysicalDeviceSeparateDepthStencilLayoutsFeatures;
- struct PhysicalDeviceShaderAtomicFloatFeaturesEXT;
- struct PhysicalDeviceShaderAtomicInt64Features;
- using PhysicalDeviceShaderAtomicInt64FeaturesKHR = PhysicalDeviceShaderAtomicInt64Features;
+ struct PipelineRepresentativeFragmentTestStateCreateInfoNV;
+
+ //=== VK_EXT_filter_cubic ===
+ struct PhysicalDeviceImageViewImageFormatInfoEXT;
+ struct FilterCubicImageViewImageFormatPropertiesEXT;
+
+ //=== VK_EXT_global_priority ===
+ struct DeviceQueueGlobalPriorityCreateInfoEXT;
+
+ //=== VK_EXT_external_memory_host ===
+ struct ImportMemoryHostPointerInfoEXT;
+ struct MemoryHostPointerPropertiesEXT;
+ struct PhysicalDeviceExternalMemoryHostPropertiesEXT;
+
+ //=== VK_KHR_shader_clock ===
struct PhysicalDeviceShaderClockFeaturesKHR;
- struct PhysicalDeviceShaderCoreProperties2AMD;
+
+ //=== VK_AMD_pipeline_compiler_control ===
+ struct PipelineCompilerControlCreateInfoAMD;
+
+ //=== VK_EXT_calibrated_timestamps ===
+ struct CalibratedTimestampInfoEXT;
+
+ //=== VK_AMD_shader_core_properties ===
struct PhysicalDeviceShaderCorePropertiesAMD;
- struct PhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT;
- struct PhysicalDeviceShaderDrawParametersFeatures;
- using PhysicalDeviceShaderDrawParameterFeatures = PhysicalDeviceShaderDrawParametersFeatures;
- struct PhysicalDeviceShaderFloat16Int8Features;
- using PhysicalDeviceFloat16Int8FeaturesKHR = PhysicalDeviceShaderFloat16Int8Features;
- using PhysicalDeviceShaderFloat16Int8FeaturesKHR = PhysicalDeviceShaderFloat16Int8Features;
- struct PhysicalDeviceShaderImageAtomicInt64FeaturesEXT;
- struct PhysicalDeviceShaderImageFootprintFeaturesNV;
- struct PhysicalDeviceShaderIntegerFunctions2FeaturesINTEL;
- struct PhysicalDeviceShaderSMBuiltinsFeaturesNV;
- struct PhysicalDeviceShaderSMBuiltinsPropertiesNV;
- struct PhysicalDeviceShaderSubgroupExtendedTypesFeatures;
- using PhysicalDeviceShaderSubgroupExtendedTypesFeaturesKHR = PhysicalDeviceShaderSubgroupExtendedTypesFeatures;
- struct PhysicalDeviceShaderSubgroupUniformControlFlowFeaturesKHR;
- struct PhysicalDeviceShaderTerminateInvocationFeaturesKHR;
- struct PhysicalDeviceShadingRateImageFeaturesNV;
- struct PhysicalDeviceShadingRateImagePropertiesNV;
- struct PhysicalDeviceSparseImageFormatInfo2;
- using PhysicalDeviceSparseImageFormatInfo2KHR = PhysicalDeviceSparseImageFormatInfo2;
- struct PhysicalDeviceSparseProperties;
- struct PhysicalDeviceSubgroupProperties;
- struct PhysicalDeviceSubgroupSizeControlFeaturesEXT;
- struct PhysicalDeviceSubgroupSizeControlPropertiesEXT;
- struct PhysicalDeviceSubpassShadingFeaturesHUAWEI;
- struct PhysicalDeviceSubpassShadingPropertiesHUAWEI;
- struct PhysicalDeviceSurfaceInfo2KHR;
- struct PhysicalDeviceSynchronization2FeaturesKHR;
- struct PhysicalDeviceTexelBufferAlignmentFeaturesEXT;
- struct PhysicalDeviceTexelBufferAlignmentPropertiesEXT;
- struct PhysicalDeviceTextureCompressionASTCHDRFeaturesEXT;
- struct PhysicalDeviceTimelineSemaphoreFeatures;
- using PhysicalDeviceTimelineSemaphoreFeaturesKHR = PhysicalDeviceTimelineSemaphoreFeatures;
- struct PhysicalDeviceTimelineSemaphoreProperties;
- using PhysicalDeviceTimelineSemaphorePropertiesKHR = PhysicalDeviceTimelineSemaphoreProperties;
- struct PhysicalDeviceToolPropertiesEXT;
- struct PhysicalDeviceTransformFeedbackFeaturesEXT;
- struct PhysicalDeviceTransformFeedbackPropertiesEXT;
- struct PhysicalDeviceUniformBufferStandardLayoutFeatures;
- using PhysicalDeviceUniformBufferStandardLayoutFeaturesKHR = PhysicalDeviceUniformBufferStandardLayoutFeatures;
- struct PhysicalDeviceVariablePointersFeatures;
- using PhysicalDeviceVariablePointerFeatures = PhysicalDeviceVariablePointersFeatures;
- using PhysicalDeviceVariablePointerFeaturesKHR = PhysicalDeviceVariablePointersFeatures;
- using PhysicalDeviceVariablePointersFeaturesKHR = PhysicalDeviceVariablePointersFeatures;
- struct PhysicalDeviceVertexAttributeDivisorFeaturesEXT;
- struct PhysicalDeviceVertexAttributeDivisorPropertiesEXT;
- struct PhysicalDeviceVertexInputDynamicStateFeaturesEXT;
+
#if defined( VK_ENABLE_BETA_EXTENSIONS )
- struct PhysicalDeviceVideoFormatInfoKHR;
+ //=== VK_EXT_video_decode_h265 ===
+ struct VideoDecodeH265ProfileEXT;
+ struct VideoDecodeH265CapabilitiesEXT;
+ struct VideoDecodeH265SessionCreateInfoEXT;
+ struct VideoDecodeH265SessionParametersCreateInfoEXT;
+ struct VideoDecodeH265SessionParametersAddInfoEXT;
+ struct VideoDecodeH265PictureInfoEXT;
+ struct VideoDecodeH265DpbSlotInfoEXT;
#endif /*VK_ENABLE_BETA_EXTENSIONS*/
- struct PhysicalDeviceVulkan11Features;
- struct PhysicalDeviceVulkan11Properties;
- struct PhysicalDeviceVulkan12Features;
- struct PhysicalDeviceVulkan12Properties;
- struct PhysicalDeviceVulkanMemoryModelFeatures;
- using PhysicalDeviceVulkanMemoryModelFeaturesKHR = PhysicalDeviceVulkanMemoryModelFeatures;
- struct PhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR;
- struct PhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT;
- struct PhysicalDeviceYcbcrImageArraysFeaturesEXT;
- struct PhysicalDeviceZeroInitializeWorkgroupMemoryFeaturesKHR;
- struct PipelineCacheCreateInfo;
- struct PipelineColorBlendAdvancedStateCreateInfoEXT;
- struct PipelineColorBlendAttachmentState;
- struct PipelineColorBlendStateCreateInfo;
- struct PipelineColorWriteCreateInfoEXT;
- struct PipelineCompilerControlCreateInfoAMD;
- struct PipelineCoverageModulationStateCreateInfoNV;
- struct PipelineCoverageReductionStateCreateInfoNV;
- struct PipelineCoverageToColorStateCreateInfoNV;
- struct PipelineCreationFeedbackCreateInfoEXT;
- struct PipelineCreationFeedbackEXT;
- struct PipelineDepthStencilStateCreateInfo;
- struct PipelineDiscardRectangleStateCreateInfoEXT;
- struct PipelineDynamicStateCreateInfo;
- struct PipelineExecutableInfoKHR;
- struct PipelineExecutableInternalRepresentationKHR;
- struct PipelineExecutablePropertiesKHR;
- struct PipelineExecutableStatisticKHR;
- union PipelineExecutableStatisticValueKHR;
- struct PipelineFragmentShadingRateEnumStateCreateInfoNV;
- struct PipelineFragmentShadingRateStateCreateInfoKHR;
- struct PipelineInfoKHR;
- struct PipelineInputAssemblyStateCreateInfo;
- struct PipelineLayoutCreateInfo;
- struct PipelineLibraryCreateInfoKHR;
- struct PipelineMultisampleStateCreateInfo;
- struct PipelineRasterizationConservativeStateCreateInfoEXT;
- struct PipelineRasterizationDepthClipStateCreateInfoEXT;
- struct PipelineRasterizationLineStateCreateInfoEXT;
- struct PipelineRasterizationProvokingVertexStateCreateInfoEXT;
- struct PipelineRasterizationStateCreateInfo;
- struct PipelineRasterizationStateRasterizationOrderAMD;
- struct PipelineRasterizationStateStreamCreateInfoEXT;
- struct PipelineRepresentativeFragmentTestStateCreateInfoNV;
- struct PipelineSampleLocationsStateCreateInfoEXT;
- struct PipelineShaderStageCreateInfo;
- struct PipelineShaderStageRequiredSubgroupSizeCreateInfoEXT;
- struct PipelineTessellationDomainOriginStateCreateInfo;
- using PipelineTessellationDomainOriginStateCreateInfoKHR = PipelineTessellationDomainOriginStateCreateInfo;
- struct PipelineTessellationStateCreateInfo;
+
+ //=== VK_AMD_memory_overallocation_behavior ===
+ struct DeviceMemoryOverallocationCreateInfoAMD;
+
+ //=== VK_EXT_vertex_attribute_divisor ===
+ struct PhysicalDeviceVertexAttributeDivisorPropertiesEXT;
+ struct VertexInputBindingDivisorDescriptionEXT;
struct PipelineVertexInputDivisorStateCreateInfoEXT;
- struct PipelineVertexInputStateCreateInfo;
- struct PipelineViewportCoarseSampleOrderStateCreateInfoNV;
- struct PipelineViewportExclusiveScissorStateCreateInfoNV;
- struct PipelineViewportShadingRateImageStateCreateInfoNV;
- struct PipelineViewportStateCreateInfo;
- struct PipelineViewportSwizzleStateCreateInfoNV;
- struct PipelineViewportWScalingStateCreateInfoNV;
+ struct PhysicalDeviceVertexAttributeDivisorFeaturesEXT;
+
#if defined( VK_USE_PLATFORM_GGP )
+ //=== VK_GGP_frame_token ===
struct PresentFrameTokenGGP;
#endif /*VK_USE_PLATFORM_GGP*/
- struct PresentInfoKHR;
- struct PresentRegionKHR;
- struct PresentRegionsKHR;
- struct PresentTimeGOOGLE;
- struct PresentTimesInfoGOOGLE;
- struct PrivateDataSlotCreateInfoEXT;
- struct ProtectedSubmitInfo;
- struct PushConstantRange;
- struct QueryPoolCreateInfo;
- struct QueryPoolPerformanceCreateInfoKHR;
+
+ //=== VK_EXT_pipeline_creation_feedback ===
+ struct PipelineCreationFeedbackCreateInfoEXT;
+ struct PipelineCreationFeedbackEXT;
+
+ //=== VK_NV_compute_shader_derivatives ===
+ struct PhysicalDeviceComputeShaderDerivativesFeaturesNV;
+
+ //=== VK_NV_mesh_shader ===
+ struct PhysicalDeviceMeshShaderFeaturesNV;
+ struct PhysicalDeviceMeshShaderPropertiesNV;
+ struct DrawMeshTasksIndirectCommandNV;
+
+ //=== VK_NV_fragment_shader_barycentric ===
+ struct PhysicalDeviceFragmentShaderBarycentricFeaturesNV;
+
+ //=== VK_NV_shader_image_footprint ===
+ struct PhysicalDeviceShaderImageFootprintFeaturesNV;
+
+ //=== VK_NV_scissor_exclusive ===
+ struct PipelineViewportExclusiveScissorStateCreateInfoNV;
+ struct PhysicalDeviceExclusiveScissorFeaturesNV;
+
+ //=== VK_NV_device_diagnostic_checkpoints ===
+ struct QueueFamilyCheckpointPropertiesNV;
+ struct CheckpointDataNV;
+
+ //=== VK_INTEL_shader_integer_functions2 ===
+ struct PhysicalDeviceShaderIntegerFunctions2FeaturesINTEL;
+
+ //=== VK_INTEL_performance_query ===
+ union PerformanceValueDataINTEL;
+ struct PerformanceValueINTEL;
+ struct InitializePerformanceApiInfoINTEL;
struct QueryPoolPerformanceQueryCreateInfoINTEL;
using QueryPoolCreateInfoINTEL = QueryPoolPerformanceQueryCreateInfoINTEL;
- struct QueueFamilyCheckpointProperties2NV;
- struct QueueFamilyCheckpointPropertiesNV;
- struct QueueFamilyGlobalPriorityPropertiesEXT;
- struct QueueFamilyProperties;
- struct QueueFamilyProperties2;
- using QueueFamilyProperties2KHR = QueueFamilyProperties2;
- struct RayTracingPipelineCreateInfoKHR;
- struct RayTracingPipelineCreateInfoNV;
- struct RayTracingPipelineInterfaceCreateInfoKHR;
- struct RayTracingShaderGroupCreateInfoKHR;
- struct RayTracingShaderGroupCreateInfoNV;
- struct Rect2D;
- struct RectLayerKHR;
- struct RefreshCycleDurationGOOGLE;
- struct RenderPassAttachmentBeginInfo;
- using RenderPassAttachmentBeginInfoKHR = RenderPassAttachmentBeginInfo;
- struct RenderPassBeginInfo;
- struct RenderPassCreateInfo;
- struct RenderPassCreateInfo2;
- using RenderPassCreateInfo2KHR = RenderPassCreateInfo2;
- struct RenderPassFragmentDensityMapCreateInfoEXT;
- struct RenderPassInputAttachmentAspectCreateInfo;
- using RenderPassInputAttachmentAspectCreateInfoKHR = RenderPassInputAttachmentAspectCreateInfo;
- struct RenderPassMultiviewCreateInfo;
- using RenderPassMultiviewCreateInfoKHR = RenderPassMultiviewCreateInfo;
- struct RenderPassSampleLocationsBeginInfoEXT;
- struct RenderPassTransformBeginInfoQCOM;
- struct ResolveImageInfo2KHR;
- struct SRTDataNV;
- struct SampleLocationEXT;
- struct SampleLocationsInfoEXT;
- struct SamplerCreateInfo;
- struct SamplerCustomBorderColorCreateInfoEXT;
- struct SamplerReductionModeCreateInfo;
- using SamplerReductionModeCreateInfoEXT = SamplerReductionModeCreateInfo;
- struct SamplerYcbcrConversionCreateInfo;
- using SamplerYcbcrConversionCreateInfoKHR = SamplerYcbcrConversionCreateInfo;
- struct SamplerYcbcrConversionImageFormatProperties;
- using SamplerYcbcrConversionImageFormatPropertiesKHR = SamplerYcbcrConversionImageFormatProperties;
- struct SamplerYcbcrConversionInfo;
- using SamplerYcbcrConversionInfoKHR = SamplerYcbcrConversionInfo;
-#if defined( VK_USE_PLATFORM_SCREEN_QNX )
- struct ScreenSurfaceCreateInfoQNX;
-#endif /*VK_USE_PLATFORM_SCREEN_QNX*/
- struct SemaphoreCreateInfo;
- struct SemaphoreGetFdInfoKHR;
-#if defined( VK_USE_PLATFORM_WIN32_KHR )
- struct SemaphoreGetWin32HandleInfoKHR;
-#endif /*VK_USE_PLATFORM_WIN32_KHR*/
+ struct PerformanceMarkerInfoINTEL;
+ struct PerformanceStreamMarkerInfoINTEL;
+ struct PerformanceOverrideInfoINTEL;
+ struct PerformanceConfigurationAcquireInfoINTEL;
+
+ //=== VK_EXT_pci_bus_info ===
+ struct PhysicalDevicePCIBusInfoPropertiesEXT;
+
+ //=== VK_AMD_display_native_hdr ===
+ struct DisplayNativeHdrSurfaceCapabilitiesAMD;
+ struct SwapchainDisplayNativeHdrCreateInfoAMD;
+
#if defined( VK_USE_PLATFORM_FUCHSIA )
- struct SemaphoreGetZirconHandleInfoFUCHSIA;
+ //=== VK_FUCHSIA_imagepipe_surface ===
+ struct ImagePipeSurfaceCreateInfoFUCHSIA;
#endif /*VK_USE_PLATFORM_FUCHSIA*/
- struct SemaphoreSignalInfo;
- using SemaphoreSignalInfoKHR = SemaphoreSignalInfo;
- struct SemaphoreSubmitInfoKHR;
- struct SemaphoreTypeCreateInfo;
- using SemaphoreTypeCreateInfoKHR = SemaphoreTypeCreateInfo;
- struct SemaphoreWaitInfo;
- using SemaphoreWaitInfoKHR = SemaphoreWaitInfo;
- struct SetStateFlagsIndirectCommandNV;
- struct ShaderModuleCreateInfo;
- struct ShaderModuleValidationCacheCreateInfoEXT;
- struct ShaderResourceUsageAMD;
- struct ShaderStatisticsInfoAMD;
- struct ShadingRatePaletteNV;
- struct SharedPresentSurfaceCapabilitiesKHR;
- struct SparseBufferMemoryBindInfo;
- struct SparseImageFormatProperties;
- struct SparseImageFormatProperties2;
- using SparseImageFormatProperties2KHR = SparseImageFormatProperties2;
- struct SparseImageMemoryBind;
- struct SparseImageMemoryBindInfo;
- struct SparseImageMemoryRequirements;
- struct SparseImageMemoryRequirements2;
- using SparseImageMemoryRequirements2KHR = SparseImageMemoryRequirements2;
- struct SparseImageOpaqueMemoryBindInfo;
- struct SparseMemoryBind;
- struct SpecializationInfo;
- struct SpecializationMapEntry;
- struct StencilOpState;
-#if defined( VK_USE_PLATFORM_GGP )
- struct StreamDescriptorSurfaceCreateInfoGGP;
-#endif /*VK_USE_PLATFORM_GGP*/
- struct StridedDeviceAddressRegionKHR;
- struct SubmitInfo;
- struct SubmitInfo2KHR;
- struct SubpassBeginInfo;
- using SubpassBeginInfoKHR = SubpassBeginInfo;
- struct SubpassDependency;
- struct SubpassDependency2;
- using SubpassDependency2KHR = SubpassDependency2;
- struct SubpassDescription;
- struct SubpassDescription2;
- using SubpassDescription2KHR = SubpassDescription2;
- struct SubpassDescriptionDepthStencilResolve;
- using SubpassDescriptionDepthStencilResolveKHR = SubpassDescriptionDepthStencilResolve;
- struct SubpassEndInfo;
- using SubpassEndInfoKHR = SubpassEndInfo;
- struct SubpassSampleLocationsEXT;
- struct SubpassShadingPipelineCreateInfoHUAWEI;
- struct SubresourceLayout;
- struct SurfaceCapabilities2EXT;
- struct SurfaceCapabilities2KHR;
-#if defined( VK_USE_PLATFORM_WIN32_KHR )
- struct SurfaceCapabilitiesFullScreenExclusiveEXT;
-#endif /*VK_USE_PLATFORM_WIN32_KHR*/
- struct SurfaceCapabilitiesKHR;
- struct SurfaceFormat2KHR;
- struct SurfaceFormatKHR;
+
+ //=== VK_KHR_shader_terminate_invocation ===
+ struct PhysicalDeviceShaderTerminateInvocationFeaturesKHR;
+
+#if defined( VK_USE_PLATFORM_METAL_EXT )
+ //=== VK_EXT_metal_surface ===
+ struct MetalSurfaceCreateInfoEXT;
+#endif /*VK_USE_PLATFORM_METAL_EXT*/
+
+ //=== VK_EXT_fragment_density_map ===
+ struct PhysicalDeviceFragmentDensityMapFeaturesEXT;
+ struct PhysicalDeviceFragmentDensityMapPropertiesEXT;
+ struct RenderPassFragmentDensityMapCreateInfoEXT;
+
+ //=== VK_EXT_subgroup_size_control ===
+ struct PhysicalDeviceSubgroupSizeControlFeaturesEXT;
+ struct PhysicalDeviceSubgroupSizeControlPropertiesEXT;
+ struct PipelineShaderStageRequiredSubgroupSizeCreateInfoEXT;
+
+ //=== VK_KHR_fragment_shading_rate ===
+ struct FragmentShadingRateAttachmentInfoKHR;
+ struct PipelineFragmentShadingRateStateCreateInfoKHR;
+ struct PhysicalDeviceFragmentShadingRateFeaturesKHR;
+ struct PhysicalDeviceFragmentShadingRatePropertiesKHR;
+ struct PhysicalDeviceFragmentShadingRateKHR;
+
+ //=== VK_AMD_shader_core_properties2 ===
+ struct PhysicalDeviceShaderCoreProperties2AMD;
+
+ //=== VK_AMD_device_coherent_memory ===
+ struct PhysicalDeviceCoherentMemoryFeaturesAMD;
+
+ //=== VK_EXT_shader_image_atomic_int64 ===
+ struct PhysicalDeviceShaderImageAtomicInt64FeaturesEXT;
+
+ //=== VK_EXT_memory_budget ===
+ struct PhysicalDeviceMemoryBudgetPropertiesEXT;
+
+ //=== VK_EXT_memory_priority ===
+ struct PhysicalDeviceMemoryPriorityFeaturesEXT;
+ struct MemoryPriorityAllocateInfoEXT;
+
+ //=== VK_KHR_surface_protected_capabilities ===
+ struct SurfaceProtectedCapabilitiesKHR;
+
+ //=== VK_NV_dedicated_allocation_image_aliasing ===
+ struct PhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV;
+
+ //=== VK_EXT_buffer_device_address ===
+ struct PhysicalDeviceBufferDeviceAddressFeaturesEXT;
+ using PhysicalDeviceBufferAddressFeaturesEXT = PhysicalDeviceBufferDeviceAddressFeaturesEXT;
+ struct BufferDeviceAddressCreateInfoEXT;
+
+ //=== VK_EXT_tooling_info ===
+ struct PhysicalDeviceToolPropertiesEXT;
+
+ //=== VK_EXT_validation_features ===
+ struct ValidationFeaturesEXT;
+
+ //=== VK_KHR_present_wait ===
+ struct PhysicalDevicePresentWaitFeaturesKHR;
+
+ //=== VK_NV_cooperative_matrix ===
+ struct CooperativeMatrixPropertiesNV;
+ struct PhysicalDeviceCooperativeMatrixFeaturesNV;
+ struct PhysicalDeviceCooperativeMatrixPropertiesNV;
+
+ //=== VK_NV_coverage_reduction_mode ===
+ struct PhysicalDeviceCoverageReductionModeFeaturesNV;
+ struct PipelineCoverageReductionStateCreateInfoNV;
+ struct FramebufferMixedSamplesCombinationNV;
+
+ //=== VK_EXT_fragment_shader_interlock ===
+ struct PhysicalDeviceFragmentShaderInterlockFeaturesEXT;
+
+ //=== VK_EXT_ycbcr_image_arrays ===
+ struct PhysicalDeviceYcbcrImageArraysFeaturesEXT;
+
+ //=== VK_EXT_provoking_vertex ===
+ struct PhysicalDeviceProvokingVertexFeaturesEXT;
+ struct PhysicalDeviceProvokingVertexPropertiesEXT;
+ struct PipelineRasterizationProvokingVertexStateCreateInfoEXT;
+
#if defined( VK_USE_PLATFORM_WIN32_KHR )
+ //=== VK_EXT_full_screen_exclusive ===
struct SurfaceFullScreenExclusiveInfoEXT;
-#endif /*VK_USE_PLATFORM_WIN32_KHR*/
-#if defined( VK_USE_PLATFORM_WIN32_KHR )
+ struct SurfaceCapabilitiesFullScreenExclusiveEXT;
struct SurfaceFullScreenExclusiveWin32InfoEXT;
#endif /*VK_USE_PLATFORM_WIN32_KHR*/
- struct SurfaceProtectedCapabilitiesKHR;
- struct SwapchainCounterCreateInfoEXT;
- struct SwapchainCreateInfoKHR;
- struct SwapchainDisplayNativeHdrCreateInfoAMD;
- struct TextureLODGatherFormatPropertiesAMD;
- struct TimelineSemaphoreSubmitInfo;
- using TimelineSemaphoreSubmitInfoKHR = TimelineSemaphoreSubmitInfo;
- struct TraceRaysIndirectCommandKHR;
- struct TransformMatrixKHR;
- using TransformMatrixNV = TransformMatrixKHR;
- struct ValidationCacheCreateInfoEXT;
- struct ValidationFeaturesEXT;
- struct ValidationFlagsEXT;
- struct VertexInputAttributeDescription;
- struct VertexInputAttributeDescription2EXT;
- struct VertexInputBindingDescription;
- struct VertexInputBindingDescription2EXT;
- struct VertexInputBindingDivisorDescriptionEXT;
-#if defined( VK_USE_PLATFORM_VI_NN )
- struct ViSurfaceCreateInfoNN;
-#endif /*VK_USE_PLATFORM_VI_NN*/
-#if defined( VK_ENABLE_BETA_EXTENSIONS )
- struct VideoBeginCodingInfoKHR;
-#endif /*VK_ENABLE_BETA_EXTENSIONS*/
-#if defined( VK_ENABLE_BETA_EXTENSIONS )
- struct VideoBindMemoryKHR;
-#endif /*VK_ENABLE_BETA_EXTENSIONS*/
-#if defined( VK_ENABLE_BETA_EXTENSIONS )
- struct VideoCapabilitiesKHR;
-#endif /*VK_ENABLE_BETA_EXTENSIONS*/
-#if defined( VK_ENABLE_BETA_EXTENSIONS )
- struct VideoCodingControlInfoKHR;
-#endif /*VK_ENABLE_BETA_EXTENSIONS*/
-#if defined( VK_ENABLE_BETA_EXTENSIONS )
- struct VideoDecodeH264CapabilitiesEXT;
-#endif /*VK_ENABLE_BETA_EXTENSIONS*/
-#if defined( VK_ENABLE_BETA_EXTENSIONS )
- struct VideoDecodeH264DpbSlotInfoEXT;
-#endif /*VK_ENABLE_BETA_EXTENSIONS*/
-#if defined( VK_ENABLE_BETA_EXTENSIONS )
- struct VideoDecodeH264MvcEXT;
-#endif /*VK_ENABLE_BETA_EXTENSIONS*/
-#if defined( VK_ENABLE_BETA_EXTENSIONS )
- struct VideoDecodeH264PictureInfoEXT;
-#endif /*VK_ENABLE_BETA_EXTENSIONS*/
-#if defined( VK_ENABLE_BETA_EXTENSIONS )
- struct VideoDecodeH264ProfileEXT;
-#endif /*VK_ENABLE_BETA_EXTENSIONS*/
-#if defined( VK_ENABLE_BETA_EXTENSIONS )
- struct VideoDecodeH264SessionCreateInfoEXT;
-#endif /*VK_ENABLE_BETA_EXTENSIONS*/
-#if defined( VK_ENABLE_BETA_EXTENSIONS )
- struct VideoDecodeH264SessionParametersAddInfoEXT;
-#endif /*VK_ENABLE_BETA_EXTENSIONS*/
-#if defined( VK_ENABLE_BETA_EXTENSIONS )
- struct VideoDecodeH264SessionParametersCreateInfoEXT;
-#endif /*VK_ENABLE_BETA_EXTENSIONS*/
-#if defined( VK_ENABLE_BETA_EXTENSIONS )
- struct VideoDecodeH265CapabilitiesEXT;
-#endif /*VK_ENABLE_BETA_EXTENSIONS*/
-#if defined( VK_ENABLE_BETA_EXTENSIONS )
- struct VideoDecodeH265DpbSlotInfoEXT;
-#endif /*VK_ENABLE_BETA_EXTENSIONS*/
-#if defined( VK_ENABLE_BETA_EXTENSIONS )
- struct VideoDecodeH265PictureInfoEXT;
-#endif /*VK_ENABLE_BETA_EXTENSIONS*/
-#if defined( VK_ENABLE_BETA_EXTENSIONS )
- struct VideoDecodeH265ProfileEXT;
-#endif /*VK_ENABLE_BETA_EXTENSIONS*/
-#if defined( VK_ENABLE_BETA_EXTENSIONS )
- struct VideoDecodeH265SessionCreateInfoEXT;
-#endif /*VK_ENABLE_BETA_EXTENSIONS*/
-#if defined( VK_ENABLE_BETA_EXTENSIONS )
- struct VideoDecodeH265SessionParametersAddInfoEXT;
-#endif /*VK_ENABLE_BETA_EXTENSIONS*/
-#if defined( VK_ENABLE_BETA_EXTENSIONS )
- struct VideoDecodeH265SessionParametersCreateInfoEXT;
-#endif /*VK_ENABLE_BETA_EXTENSIONS*/
-#if defined( VK_ENABLE_BETA_EXTENSIONS )
- struct VideoDecodeInfoKHR;
-#endif /*VK_ENABLE_BETA_EXTENSIONS*/
-#if defined( VK_ENABLE_BETA_EXTENSIONS )
- struct VideoEncodeH264CapabilitiesEXT;
-#endif /*VK_ENABLE_BETA_EXTENSIONS*/
-#if defined( VK_ENABLE_BETA_EXTENSIONS )
- struct VideoEncodeH264DpbSlotInfoEXT;
-#endif /*VK_ENABLE_BETA_EXTENSIONS*/
-#if defined( VK_ENABLE_BETA_EXTENSIONS )
- struct VideoEncodeH264EmitPictureParametersEXT;
-#endif /*VK_ENABLE_BETA_EXTENSIONS*/
-#if defined( VK_ENABLE_BETA_EXTENSIONS )
- struct VideoEncodeH264NaluSliceEXT;
-#endif /*VK_ENABLE_BETA_EXTENSIONS*/
-#if defined( VK_ENABLE_BETA_EXTENSIONS )
- struct VideoEncodeH264ProfileEXT;
-#endif /*VK_ENABLE_BETA_EXTENSIONS*/
-#if defined( VK_ENABLE_BETA_EXTENSIONS )
- struct VideoEncodeH264SessionCreateInfoEXT;
-#endif /*VK_ENABLE_BETA_EXTENSIONS*/
-#if defined( VK_ENABLE_BETA_EXTENSIONS )
- struct VideoEncodeH264SessionParametersAddInfoEXT;
-#endif /*VK_ENABLE_BETA_EXTENSIONS*/
-#if defined( VK_ENABLE_BETA_EXTENSIONS )
- struct VideoEncodeH264SessionParametersCreateInfoEXT;
-#endif /*VK_ENABLE_BETA_EXTENSIONS*/
-#if defined( VK_ENABLE_BETA_EXTENSIONS )
- struct VideoEncodeH264VclFrameInfoEXT;
-#endif /*VK_ENABLE_BETA_EXTENSIONS*/
+
+ //=== VK_EXT_headless_surface ===
+ struct HeadlessSurfaceCreateInfoEXT;
+
+ //=== VK_EXT_line_rasterization ===
+ struct PhysicalDeviceLineRasterizationFeaturesEXT;
+ struct PhysicalDeviceLineRasterizationPropertiesEXT;
+ struct PipelineRasterizationLineStateCreateInfoEXT;
+
+ //=== VK_EXT_shader_atomic_float ===
+ struct PhysicalDeviceShaderAtomicFloatFeaturesEXT;
+
+ //=== VK_EXT_index_type_uint8 ===
+ struct PhysicalDeviceIndexTypeUint8FeaturesEXT;
+
+ //=== VK_EXT_extended_dynamic_state ===
+ struct PhysicalDeviceExtendedDynamicStateFeaturesEXT;
+
+ //=== VK_KHR_pipeline_executable_properties ===
+ struct PhysicalDevicePipelineExecutablePropertiesFeaturesKHR;
+ struct PipelineInfoKHR;
+ struct PipelineExecutablePropertiesKHR;
+ struct PipelineExecutableInfoKHR;
+ union PipelineExecutableStatisticValueKHR;
+ struct PipelineExecutableStatisticKHR;
+ struct PipelineExecutableInternalRepresentationKHR;
+
+ //=== VK_EXT_shader_atomic_float2 ===
+ struct PhysicalDeviceShaderAtomicFloat2FeaturesEXT;
+
+ //=== VK_EXT_shader_demote_to_helper_invocation ===
+ struct PhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT;
+
+ //=== VK_NV_device_generated_commands ===
+ struct PhysicalDeviceDeviceGeneratedCommandsPropertiesNV;
+ struct PhysicalDeviceDeviceGeneratedCommandsFeaturesNV;
+ struct GraphicsShaderGroupCreateInfoNV;
+ struct GraphicsPipelineShaderGroupsCreateInfoNV;
+ struct BindShaderGroupIndirectCommandNV;
+ struct BindIndexBufferIndirectCommandNV;
+ struct BindVertexBufferIndirectCommandNV;
+ struct SetStateFlagsIndirectCommandNV;
+ struct IndirectCommandsStreamNV;
+ struct IndirectCommandsLayoutTokenNV;
+ struct IndirectCommandsLayoutCreateInfoNV;
+ struct GeneratedCommandsInfoNV;
+ struct GeneratedCommandsMemoryRequirementsInfoNV;
+
+ //=== VK_NV_inherited_viewport_scissor ===
+ struct PhysicalDeviceInheritedViewportScissorFeaturesNV;
+ struct CommandBufferInheritanceViewportScissorInfoNV;
+
+ //=== VK_KHR_shader_integer_dot_product ===
+ struct PhysicalDeviceShaderIntegerDotProductFeaturesKHR;
+ struct PhysicalDeviceShaderIntegerDotProductPropertiesKHR;
+
+ //=== VK_EXT_texel_buffer_alignment ===
+ struct PhysicalDeviceTexelBufferAlignmentFeaturesEXT;
+ struct PhysicalDeviceTexelBufferAlignmentPropertiesEXT;
+
+ //=== VK_QCOM_render_pass_transform ===
+ struct RenderPassTransformBeginInfoQCOM;
+ struct CommandBufferInheritanceRenderPassTransformInfoQCOM;
+
+ //=== VK_EXT_device_memory_report ===
+ struct PhysicalDeviceDeviceMemoryReportFeaturesEXT;
+ struct DeviceDeviceMemoryReportCreateInfoEXT;
+ struct DeviceMemoryReportCallbackDataEXT;
+
+ //=== VK_EXT_robustness2 ===
+ struct PhysicalDeviceRobustness2FeaturesEXT;
+ struct PhysicalDeviceRobustness2PropertiesEXT;
+
+ //=== VK_EXT_custom_border_color ===
+ struct SamplerCustomBorderColorCreateInfoEXT;
+ struct PhysicalDeviceCustomBorderColorPropertiesEXT;
+ struct PhysicalDeviceCustomBorderColorFeaturesEXT;
+
+ //=== VK_KHR_pipeline_library ===
+ struct PipelineLibraryCreateInfoKHR;
+
+ //=== VK_KHR_present_id ===
+ struct PresentIdKHR;
+ struct PhysicalDevicePresentIdFeaturesKHR;
+
+ //=== VK_EXT_private_data ===
+ struct PhysicalDevicePrivateDataFeaturesEXT;
+ struct DevicePrivateDataCreateInfoEXT;
+ struct PrivateDataSlotCreateInfoEXT;
+
+ //=== VK_EXT_pipeline_creation_cache_control ===
+ struct PhysicalDevicePipelineCreationCacheControlFeaturesEXT;
+
#if defined( VK_ENABLE_BETA_EXTENSIONS )
+ //=== VK_KHR_video_encode_queue ===
struct VideoEncodeInfoKHR;
-#endif /*VK_ENABLE_BETA_EXTENSIONS*/
-#if defined( VK_ENABLE_BETA_EXTENSIONS )
struct VideoEncodeRateControlInfoKHR;
#endif /*VK_ENABLE_BETA_EXTENSIONS*/
-#if defined( VK_ENABLE_BETA_EXTENSIONS )
- struct VideoEndCodingInfoKHR;
-#endif /*VK_ENABLE_BETA_EXTENSIONS*/
-#if defined( VK_ENABLE_BETA_EXTENSIONS )
- struct VideoFormatPropertiesKHR;
-#endif /*VK_ENABLE_BETA_EXTENSIONS*/
-#if defined( VK_ENABLE_BETA_EXTENSIONS )
- struct VideoGetMemoryPropertiesKHR;
-#endif /*VK_ENABLE_BETA_EXTENSIONS*/
-#if defined( VK_ENABLE_BETA_EXTENSIONS )
- struct VideoPictureResourceKHR;
-#endif /*VK_ENABLE_BETA_EXTENSIONS*/
-#if defined( VK_ENABLE_BETA_EXTENSIONS )
- struct VideoProfileKHR;
-#endif /*VK_ENABLE_BETA_EXTENSIONS*/
-#if defined( VK_ENABLE_BETA_EXTENSIONS )
- struct VideoProfilesKHR;
-#endif /*VK_ENABLE_BETA_EXTENSIONS*/
-#if defined( VK_ENABLE_BETA_EXTENSIONS )
- struct VideoQueueFamilyProperties2KHR;
-#endif /*VK_ENABLE_BETA_EXTENSIONS*/
-#if defined( VK_ENABLE_BETA_EXTENSIONS )
- struct VideoReferenceSlotKHR;
-#endif /*VK_ENABLE_BETA_EXTENSIONS*/
-#if defined( VK_ENABLE_BETA_EXTENSIONS )
- struct VideoSessionCreateInfoKHR;
-#endif /*VK_ENABLE_BETA_EXTENSIONS*/
-#if defined( VK_ENABLE_BETA_EXTENSIONS )
- struct VideoSessionParametersCreateInfoKHR;
-#endif /*VK_ENABLE_BETA_EXTENSIONS*/
-#if defined( VK_ENABLE_BETA_EXTENSIONS )
- struct VideoSessionParametersUpdateInfoKHR;
-#endif /*VK_ENABLE_BETA_EXTENSIONS*/
- struct Viewport;
- struct ViewportSwizzleNV;
- struct ViewportWScalingNV;
-#if defined( VK_USE_PLATFORM_WAYLAND_KHR )
- struct WaylandSurfaceCreateInfoKHR;
-#endif /*VK_USE_PLATFORM_WAYLAND_KHR*/
-#if defined( VK_USE_PLATFORM_WIN32_KHR )
- struct Win32KeyedMutexAcquireReleaseInfoKHR;
-#endif /*VK_USE_PLATFORM_WIN32_KHR*/
-#if defined( VK_USE_PLATFORM_WIN32_KHR )
- struct Win32KeyedMutexAcquireReleaseInfoNV;
-#endif /*VK_USE_PLATFORM_WIN32_KHR*/
-#if defined( VK_USE_PLATFORM_WIN32_KHR )
- struct Win32SurfaceCreateInfoKHR;
-#endif /*VK_USE_PLATFORM_WIN32_KHR*/
- struct WriteDescriptorSet;
- struct WriteDescriptorSetAccelerationStructureKHR;
- struct WriteDescriptorSetAccelerationStructureNV;
- struct WriteDescriptorSetInlineUniformBlockEXT;
- struct XYColorEXT;
-#if defined( VK_USE_PLATFORM_XCB_KHR )
- struct XcbSurfaceCreateInfoKHR;
-#endif /*VK_USE_PLATFORM_XCB_KHR*/
-#if defined( VK_USE_PLATFORM_XLIB_KHR )
- struct XlibSurfaceCreateInfoKHR;
-#endif /*VK_USE_PLATFORM_XLIB_KHR*/
+
+ //=== VK_NV_device_diagnostics_config ===
+ struct PhysicalDeviceDiagnosticsConfigFeaturesNV;
+ struct DeviceDiagnosticsConfigCreateInfoNV;
+
+ //=== VK_KHR_synchronization2 ===
+ struct MemoryBarrier2KHR;
+ struct BufferMemoryBarrier2KHR;
+ struct ImageMemoryBarrier2KHR;
+ struct DependencyInfoKHR;
+ struct SubmitInfo2KHR;
+ struct SemaphoreSubmitInfoKHR;
+ struct CommandBufferSubmitInfoKHR;
+ struct PhysicalDeviceSynchronization2FeaturesKHR;
+ struct QueueFamilyCheckpointProperties2NV;
+ struct CheckpointData2NV;
+
+ //=== VK_KHR_shader_subgroup_uniform_control_flow ===
+ struct PhysicalDeviceShaderSubgroupUniformControlFlowFeaturesKHR;
+
+ //=== VK_KHR_zero_initialize_workgroup_memory ===
+ struct PhysicalDeviceZeroInitializeWorkgroupMemoryFeaturesKHR;
+
+ //=== VK_NV_fragment_shading_rate_enums ===
+ struct PhysicalDeviceFragmentShadingRateEnumsFeaturesNV;
+ struct PhysicalDeviceFragmentShadingRateEnumsPropertiesNV;
+ struct PipelineFragmentShadingRateEnumStateCreateInfoNV;
+
+ //=== VK_NV_ray_tracing_motion_blur ===
+ struct AccelerationStructureGeometryMotionTrianglesDataNV;
+ struct AccelerationStructureMotionInfoNV;
+ struct AccelerationStructureMotionInstanceNV;
+ union AccelerationStructureMotionInstanceDataNV;
+ struct AccelerationStructureMatrixMotionInstanceNV;
+ struct AccelerationStructureSRTMotionInstanceNV;
+ struct SRTDataNV;
+ struct PhysicalDeviceRayTracingMotionBlurFeaturesNV;
+
+ //=== VK_EXT_ycbcr_2plane_444_formats ===
+ struct PhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT;
+
+ //=== VK_EXT_fragment_density_map2 ===
+ struct PhysicalDeviceFragmentDensityMap2FeaturesEXT;
+ struct PhysicalDeviceFragmentDensityMap2PropertiesEXT;
+
+ //=== VK_QCOM_rotated_copy_commands ===
+ struct CopyCommandTransformInfoQCOM;
+
+ //=== VK_EXT_image_robustness ===
+ struct PhysicalDeviceImageRobustnessFeaturesEXT;
+
+ //=== VK_KHR_workgroup_memory_explicit_layout ===
+ struct PhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR;
+
+ //=== VK_KHR_copy_commands2 ===
+ struct CopyBufferInfo2KHR;
+ struct CopyImageInfo2KHR;
+ struct CopyBufferToImageInfo2KHR;
+ struct CopyImageToBufferInfo2KHR;
+ struct BlitImageInfo2KHR;
+ struct ResolveImageInfo2KHR;
+ struct BufferCopy2KHR;
+ struct ImageCopy2KHR;
+ struct ImageBlit2KHR;
+ struct BufferImageCopy2KHR;
+ struct ImageResolve2KHR;
+
+ //=== VK_EXT_4444_formats ===
+ struct PhysicalDevice4444FormatsFeaturesEXT;
+
+#if defined( VK_USE_PLATFORM_DIRECTFB_EXT )
+ //=== VK_EXT_directfb_surface ===
+ struct DirectFBSurfaceCreateInfoEXT;
+#endif /*VK_USE_PLATFORM_DIRECTFB_EXT*/
+
+ //=== VK_KHR_ray_tracing_pipeline ===
+ struct RayTracingShaderGroupCreateInfoKHR;
+ struct RayTracingPipelineCreateInfoKHR;
+ struct PhysicalDeviceRayTracingPipelineFeaturesKHR;
+ struct PhysicalDeviceRayTracingPipelinePropertiesKHR;
+ struct StridedDeviceAddressRegionKHR;
+ struct TraceRaysIndirectCommandKHR;
+ struct RayTracingPipelineInterfaceCreateInfoKHR;
+
+ //=== VK_KHR_ray_query ===
+ struct PhysicalDeviceRayQueryFeaturesKHR;
+
+ //=== VK_VALVE_mutable_descriptor_type ===
+ struct PhysicalDeviceMutableDescriptorTypeFeaturesVALVE;
+ struct MutableDescriptorTypeListVALVE;
+ struct MutableDescriptorTypeCreateInfoVALVE;
+
+ //=== VK_EXT_vertex_input_dynamic_state ===
+ struct PhysicalDeviceVertexInputDynamicStateFeaturesEXT;
+ struct VertexInputBindingDescription2EXT;
+ struct VertexInputAttributeDescription2EXT;
+
+ //=== VK_EXT_physical_device_drm ===
+ struct PhysicalDeviceDrmPropertiesEXT;
+
+ //=== VK_EXT_primitive_topology_list_restart ===
+ struct PhysicalDevicePrimitiveTopologyListRestartFeaturesEXT;
+
+#if defined( VK_USE_PLATFORM_FUCHSIA )
+ //=== VK_FUCHSIA_external_memory ===
+ struct ImportMemoryZirconHandleInfoFUCHSIA;
+ struct MemoryZirconHandlePropertiesFUCHSIA;
+ struct MemoryGetZirconHandleInfoFUCHSIA;
+#endif /*VK_USE_PLATFORM_FUCHSIA*/
+
+#if defined( VK_USE_PLATFORM_FUCHSIA )
+ //=== VK_FUCHSIA_external_semaphore ===
+ struct ImportSemaphoreZirconHandleInfoFUCHSIA;
+ struct SemaphoreGetZirconHandleInfoFUCHSIA;
+#endif /*VK_USE_PLATFORM_FUCHSIA*/
+
+ //=== VK_HUAWEI_subpass_shading ===
+ struct SubpassShadingPipelineCreateInfoHUAWEI;
+ struct PhysicalDeviceSubpassShadingFeaturesHUAWEI;
+ struct PhysicalDeviceSubpassShadingPropertiesHUAWEI;
+
+ //=== VK_HUAWEI_invocation_mask ===
+ struct PhysicalDeviceInvocationMaskFeaturesHUAWEI;
+
+ //=== VK_NV_external_memory_rdma ===
+ struct MemoryGetRemoteAddressInfoNV;
+ struct PhysicalDeviceExternalMemoryRDMAFeaturesNV;
+
+ //=== VK_EXT_extended_dynamic_state2 ===
+ struct PhysicalDeviceExtendedDynamicState2FeaturesEXT;
+
+#if defined( VK_USE_PLATFORM_SCREEN_QNX )
+ //=== VK_QNX_screen_surface ===
+ struct ScreenSurfaceCreateInfoQNX;
+#endif /*VK_USE_PLATFORM_SCREEN_QNX*/
+
+ //=== VK_EXT_color_write_enable ===
+ struct PhysicalDeviceColorWriteEnableFeaturesEXT;
+ struct PipelineColorWriteCreateInfoEXT;
+
+ //=== VK_EXT_global_priority_query ===
+ struct PhysicalDeviceGlobalPriorityQueryFeaturesEXT;
+ struct QueueFamilyGlobalPriorityPropertiesEXT;
+
+ //=== VK_EXT_multi_draw ===
+ struct PhysicalDeviceMultiDrawFeaturesEXT;
+ struct PhysicalDeviceMultiDrawPropertiesEXT;
+ struct MultiDrawInfoEXT;
+ struct MultiDrawIndexedInfoEXT;
+
+ //===============
+ //=== HANDLEs ===
+ //===============
class SurfaceKHR
{
@@ -2128,191 +2376,191 @@ namespace VULKAN_HPP_NAMESPACE
static VULKAN_HPP_CONST_OR_CONSTEXPR bool value = true;
};
- class Pipeline
+ class ImageView
{
public:
- using CType = VkPipeline;
+ using CType = VkImageView;
static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::ObjectType objectType =
- VULKAN_HPP_NAMESPACE::ObjectType::ePipeline;
+ VULKAN_HPP_NAMESPACE::ObjectType::eImageView;
static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT debugReportObjectType =
- VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::ePipeline;
+ VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eImageView;
public:
- VULKAN_HPP_CONSTEXPR Pipeline() = default;
- VULKAN_HPP_CONSTEXPR Pipeline( std::nullptr_t ) VULKAN_HPP_NOEXCEPT {}
- VULKAN_HPP_TYPESAFE_EXPLICIT Pipeline( VkPipeline pipeline ) VULKAN_HPP_NOEXCEPT : m_pipeline( pipeline ) {}
+ VULKAN_HPP_CONSTEXPR ImageView() = default;
+ VULKAN_HPP_CONSTEXPR ImageView( std::nullptr_t ) VULKAN_HPP_NOEXCEPT {}
+ VULKAN_HPP_TYPESAFE_EXPLICIT ImageView( VkImageView imageView ) VULKAN_HPP_NOEXCEPT : m_imageView( imageView ) {}
#if defined( VULKAN_HPP_TYPESAFE_CONVERSION )
- Pipeline & operator=( VkPipeline pipeline ) VULKAN_HPP_NOEXCEPT
+ ImageView & operator=( VkImageView imageView ) VULKAN_HPP_NOEXCEPT
{
- m_pipeline = pipeline;
+ m_imageView = imageView;
return *this;
}
#endif
- Pipeline & operator=( std::nullptr_t ) VULKAN_HPP_NOEXCEPT
+ ImageView & operator=( std::nullptr_t ) VULKAN_HPP_NOEXCEPT
{
- m_pipeline = {};
+ m_imageView = {};
return *this;
}
#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
- auto operator<=>( Pipeline const & ) const = default;
+ auto operator<=>( ImageView const & ) const = default;
#else
- bool operator==( Pipeline const & rhs ) const VULKAN_HPP_NOEXCEPT
+ bool operator==( ImageView const & rhs ) const VULKAN_HPP_NOEXCEPT
{
- return m_pipeline == rhs.m_pipeline;
+ return m_imageView == rhs.m_imageView;
}
- bool operator!=( Pipeline const & rhs ) const VULKAN_HPP_NOEXCEPT
+ bool operator!=( ImageView const & rhs ) const VULKAN_HPP_NOEXCEPT
{
- return m_pipeline != rhs.m_pipeline;
+ return m_imageView != rhs.m_imageView;
}
- bool operator<( Pipeline const & rhs ) const VULKAN_HPP_NOEXCEPT
+ bool operator<( ImageView const & rhs ) const VULKAN_HPP_NOEXCEPT
{
- return m_pipeline < rhs.m_pipeline;
+ return m_imageView < rhs.m_imageView;
}
#endif
- VULKAN_HPP_TYPESAFE_EXPLICIT operator VkPipeline() const VULKAN_HPP_NOEXCEPT
+ VULKAN_HPP_TYPESAFE_EXPLICIT operator VkImageView() const VULKAN_HPP_NOEXCEPT
{
- return m_pipeline;
+ return m_imageView;
}
explicit operator bool() const VULKAN_HPP_NOEXCEPT
{
- return m_pipeline != VK_NULL_HANDLE;
+ return m_imageView != VK_NULL_HANDLE;
}
bool operator!() const VULKAN_HPP_NOEXCEPT
{
- return m_pipeline == VK_NULL_HANDLE;
+ return m_imageView == VK_NULL_HANDLE;
}
private:
- VkPipeline m_pipeline = {};
+ VkImageView m_imageView = {};
};
- static_assert( sizeof( VULKAN_HPP_NAMESPACE::Pipeline ) == sizeof( VkPipeline ),
+ static_assert( sizeof( VULKAN_HPP_NAMESPACE::ImageView ) == sizeof( VkImageView ),
"handle and wrapper have different size!" );
template <>
- struct VULKAN_HPP_DEPRECATED( "vk::cpp_type is deprecated. Use vk::CppType instead." ) cpp_type<ObjectType::ePipeline>
+ struct VULKAN_HPP_DEPRECATED(
+ "vk::cpp_type is deprecated. Use vk::CppType instead." ) cpp_type<ObjectType::eImageView>
{
- using type = VULKAN_HPP_NAMESPACE::Pipeline;
+ using type = VULKAN_HPP_NAMESPACE::ImageView;
};
template <>
- struct CppType<VULKAN_HPP_NAMESPACE::ObjectType, VULKAN_HPP_NAMESPACE::ObjectType::ePipeline>
+ struct CppType<VULKAN_HPP_NAMESPACE::ObjectType, VULKAN_HPP_NAMESPACE::ObjectType::eImageView>
{
- using Type = VULKAN_HPP_NAMESPACE::Pipeline;
+ using Type = VULKAN_HPP_NAMESPACE::ImageView;
};
template <>
struct CppType<VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT,
- VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::ePipeline>
+ VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eImageView>
{
- using Type = VULKAN_HPP_NAMESPACE::Pipeline;
+ using Type = VULKAN_HPP_NAMESPACE::ImageView;
};
template <>
- struct isVulkanHandleType<VULKAN_HPP_NAMESPACE::Pipeline>
+ struct isVulkanHandleType<VULKAN_HPP_NAMESPACE::ImageView>
{
static VULKAN_HPP_CONST_OR_CONSTEXPR bool value = true;
};
- class ImageView
+ class Pipeline
{
public:
- using CType = VkImageView;
+ using CType = VkPipeline;
static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::ObjectType objectType =
- VULKAN_HPP_NAMESPACE::ObjectType::eImageView;
+ VULKAN_HPP_NAMESPACE::ObjectType::ePipeline;
static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT debugReportObjectType =
- VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eImageView;
+ VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::ePipeline;
public:
- VULKAN_HPP_CONSTEXPR ImageView() = default;
- VULKAN_HPP_CONSTEXPR ImageView( std::nullptr_t ) VULKAN_HPP_NOEXCEPT {}
- VULKAN_HPP_TYPESAFE_EXPLICIT ImageView( VkImageView imageView ) VULKAN_HPP_NOEXCEPT : m_imageView( imageView ) {}
+ VULKAN_HPP_CONSTEXPR Pipeline() = default;
+ VULKAN_HPP_CONSTEXPR Pipeline( std::nullptr_t ) VULKAN_HPP_NOEXCEPT {}
+ VULKAN_HPP_TYPESAFE_EXPLICIT Pipeline( VkPipeline pipeline ) VULKAN_HPP_NOEXCEPT : m_pipeline( pipeline ) {}
#if defined( VULKAN_HPP_TYPESAFE_CONVERSION )
- ImageView & operator=( VkImageView imageView ) VULKAN_HPP_NOEXCEPT
+ Pipeline & operator=( VkPipeline pipeline ) VULKAN_HPP_NOEXCEPT
{
- m_imageView = imageView;
+ m_pipeline = pipeline;
return *this;
}
#endif
- ImageView & operator=( std::nullptr_t ) VULKAN_HPP_NOEXCEPT
+ Pipeline & operator=( std::nullptr_t ) VULKAN_HPP_NOEXCEPT
{
- m_imageView = {};
+ m_pipeline = {};
return *this;
}
#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
- auto operator<=>( ImageView const & ) const = default;
+ auto operator<=>( Pipeline const & ) const = default;
#else
- bool operator==( ImageView const & rhs ) const VULKAN_HPP_NOEXCEPT
+ bool operator==( Pipeline const & rhs ) const VULKAN_HPP_NOEXCEPT
{
- return m_imageView == rhs.m_imageView;
+ return m_pipeline == rhs.m_pipeline;
}
- bool operator!=( ImageView const & rhs ) const VULKAN_HPP_NOEXCEPT
+ bool operator!=( Pipeline const & rhs ) const VULKAN_HPP_NOEXCEPT
{
- return m_imageView != rhs.m_imageView;
+ return m_pipeline != rhs.m_pipeline;
}
- bool operator<( ImageView const & rhs ) const VULKAN_HPP_NOEXCEPT
+ bool operator<( Pipeline const & rhs ) const VULKAN_HPP_NOEXCEPT
{
- return m_imageView < rhs.m_imageView;
+ return m_pipeline < rhs.m_pipeline;
}
#endif
- VULKAN_HPP_TYPESAFE_EXPLICIT operator VkImageView() const VULKAN_HPP_NOEXCEPT
+ VULKAN_HPP_TYPESAFE_EXPLICIT operator VkPipeline() const VULKAN_HPP_NOEXCEPT
{
- return m_imageView;
+ return m_pipeline;
}
explicit operator bool() const VULKAN_HPP_NOEXCEPT
{
- return m_imageView != VK_NULL_HANDLE;
+ return m_pipeline != VK_NULL_HANDLE;
}
bool operator!() const VULKAN_HPP_NOEXCEPT
{
- return m_imageView == VK_NULL_HANDLE;
+ return m_pipeline == VK_NULL_HANDLE;
}
private:
- VkImageView m_imageView = {};
+ VkPipeline m_pipeline = {};
};
- static_assert( sizeof( VULKAN_HPP_NAMESPACE::ImageView ) == sizeof( VkImageView ),
+ static_assert( sizeof( VULKAN_HPP_NAMESPACE::Pipeline ) == sizeof( VkPipeline ),
"handle and wrapper have different size!" );
template <>
- struct VULKAN_HPP_DEPRECATED(
- "vk::cpp_type is deprecated. Use vk::CppType instead." ) cpp_type<ObjectType::eImageView>
+ struct VULKAN_HPP_DEPRECATED( "vk::cpp_type is deprecated. Use vk::CppType instead." ) cpp_type<ObjectType::ePipeline>
{
- using type = VULKAN_HPP_NAMESPACE::ImageView;
+ using type = VULKAN_HPP_NAMESPACE::Pipeline;
};
template <>
- struct CppType<VULKAN_HPP_NAMESPACE::ObjectType, VULKAN_HPP_NAMESPACE::ObjectType::eImageView>
+ struct CppType<VULKAN_HPP_NAMESPACE::ObjectType, VULKAN_HPP_NAMESPACE::ObjectType::ePipeline>
{
- using Type = VULKAN_HPP_NAMESPACE::ImageView;
+ using Type = VULKAN_HPP_NAMESPACE::Pipeline;
};
template <>
struct CppType<VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT,
- VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eImageView>
+ VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::ePipeline>
{
- using Type = VULKAN_HPP_NAMESPACE::ImageView;
+ using Type = VULKAN_HPP_NAMESPACE::Pipeline;
};
template <>
- struct isVulkanHandleType<VULKAN_HPP_NAMESPACE::ImageView>
+ struct isVulkanHandleType<VULKAN_HPP_NAMESPACE::Pipeline>
{
static VULKAN_HPP_CONST_OR_CONSTEXPR bool value = true;
};
@@ -4371,6 +4619,14 @@ namespace VULKAN_HPP_NAMESPACE
template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
void subpassShadingHUAWEI( Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
+ //=== VK_HUAWEI_invocation_mask ===
+
+ template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
+ void
+ bindInvocationMaskHUAWEI( VULKAN_HPP_NAMESPACE::ImageView imageView,
+ VULKAN_HPP_NAMESPACE::ImageLayout imageLayout,
+ Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
+
//=== VK_EXT_extended_dynamic_state2 ===
template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
@@ -5777,18 +6033,6 @@ namespace VULKAN_HPP_NAMESPACE
}
#endif
- //=== VK_HUAWEI_subpass_shading ===
-
- template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
- VULKAN_HPP_NODISCARD Result getSubpassShadingMaxWorkgroupSizeHUAWEI(
- VULKAN_HPP_NAMESPACE::Extent2D * pMaxWorkgroupSize,
- Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
-#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
- template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
- VULKAN_HPP_NODISCARD ResultValue<VULKAN_HPP_NAMESPACE::Extent2D>
- getSubpassShadingMaxWorkgroupSizeHUAWEI( Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
-#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
-
VULKAN_HPP_TYPESAFE_EXPLICIT operator VkRenderPass() const VULKAN_HPP_NOEXCEPT
{
return m_renderPass;
@@ -10503,6 +10747,23 @@ namespace VULKAN_HPP_NAMESPACE
Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
+ //=== VK_KHR_present_wait ===
+
+#ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE
+ template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
+ VULKAN_HPP_NODISCARD Result
+ waitForPresentKHR( VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain,
+ uint64_t presentId,
+ uint64_t timeout,
+ Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
+#else
+ template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
+ VULKAN_HPP_NODISCARD Result waitForPresentKHR( VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain,
+ uint64_t presentId,
+ uint64_t timeout,
+ Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
+#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
+
#if defined( VK_USE_PLATFORM_WIN32_KHR )
//=== VK_EXT_full_screen_exclusive ===
@@ -11099,6 +11360,34 @@ namespace VULKAN_HPP_NAMESPACE
# endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
#endif /*VK_USE_PLATFORM_FUCHSIA*/
+ //=== VK_HUAWEI_subpass_shading ===
+
+ template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
+ VULKAN_HPP_NODISCARD Result getSubpassShadingMaxWorkgroupSizeHUAWEI(
+ VULKAN_HPP_NAMESPACE::RenderPass renderpass,
+ VULKAN_HPP_NAMESPACE::Extent2D * pMaxWorkgroupSize,
+ Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
+#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
+ template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
+ VULKAN_HPP_NODISCARD ResultValue<VULKAN_HPP_NAMESPACE::Extent2D>
+ getSubpassShadingMaxWorkgroupSizeHUAWEI( VULKAN_HPP_NAMESPACE::RenderPass renderpass,
+ Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
+#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
+
+ //=== VK_NV_external_memory_rdma ===
+
+ template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
+ VULKAN_HPP_NODISCARD Result
+ getMemoryRemoteAddressNV( const VULKAN_HPP_NAMESPACE::MemoryGetRemoteAddressInfoNV * pMemoryGetRemoteAddressInfo,
+ VULKAN_HPP_NAMESPACE::RemoteAddressNV * pAddress,
+ Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
+#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
+ template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
+ typename ResultValueType<VULKAN_HPP_NAMESPACE::RemoteAddressNV>::type
+ getMemoryRemoteAddressNV( const MemoryGetRemoteAddressInfoNV & memoryGetRemoteAddressInfo,
+ Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
+#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
+
VULKAN_HPP_TYPESAFE_EXPLICIT operator VkDevice() const VULKAN_HPP_NOEXCEPT
{
return m_device;
diff --git a/thirdparty/vulkan/include/vulkan/vulkan_raii.hpp b/thirdparty/vulkan/include/vulkan/vulkan_raii.hpp
index 9b15ebaa16..390e527992 100644
--- a/thirdparty/vulkan/include/vulkan/vulkan_raii.hpp
+++ b/thirdparty/vulkan/include/vulkan/vulkan_raii.hpp
@@ -32,1651 +32,2147 @@ namespace VULKAN_HPP_NAMESPACE
# endif
}
- class ContextDispatcher
+ class ContextDispatcher : public DispatchLoaderBase
{
public:
ContextDispatcher( PFN_vkGetInstanceProcAddr getProcAddr )
: vkGetInstanceProcAddr( getProcAddr )
+ //=== VK_VERSION_1_0 ===
, vkCreateInstance( PFN_vkCreateInstance( getProcAddr( NULL, "vkCreateInstance" ) ) )
, vkEnumerateInstanceExtensionProperties( PFN_vkEnumerateInstanceExtensionProperties(
getProcAddr( NULL, "vkEnumerateInstanceExtensionProperties" ) ) )
, vkEnumerateInstanceLayerProperties(
PFN_vkEnumerateInstanceLayerProperties( getProcAddr( NULL, "vkEnumerateInstanceLayerProperties" ) ) )
+ //=== VK_VERSION_1_1 ===
, vkEnumerateInstanceVersion(
PFN_vkEnumerateInstanceVersion( getProcAddr( NULL, "vkEnumerateInstanceVersion" ) ) )
{}
public:
- PFN_vkGetInstanceProcAddr vkGetInstanceProcAddr = 0;
+ PFN_vkGetInstanceProcAddr vkGetInstanceProcAddr = 0;
+
+ //=== VK_VERSION_1_0 ===
PFN_vkCreateInstance vkCreateInstance = 0;
PFN_vkEnumerateInstanceExtensionProperties vkEnumerateInstanceExtensionProperties = 0;
PFN_vkEnumerateInstanceLayerProperties vkEnumerateInstanceLayerProperties = 0;
- PFN_vkEnumerateInstanceVersion vkEnumerateInstanceVersion = 0;
+
+ //=== VK_VERSION_1_1 ===
+ PFN_vkEnumerateInstanceVersion vkEnumerateInstanceVersion = 0;
};
- class InstanceDispatcher
+ class InstanceDispatcher : public DispatchLoaderBase
{
public:
InstanceDispatcher( PFN_vkGetInstanceProcAddr getProcAddr ) : vkGetInstanceProcAddr( getProcAddr ) {}
+# if defined( VULKAN_HPP_RAII_ENABLE_DEFAULT_CONSTRUCTORS )
+ InstanceDispatcher() = default;
+# endif
+
void init( VkInstance instance )
{
+ //=== VK_VERSION_1_0 ===
+ vkDestroyInstance = PFN_vkDestroyInstance( vkGetInstanceProcAddr( instance, "vkDestroyInstance" ) );
+ vkEnumeratePhysicalDevices =
+ PFN_vkEnumeratePhysicalDevices( vkGetInstanceProcAddr( instance, "vkEnumeratePhysicalDevices" ) );
+ vkGetPhysicalDeviceFeatures =
+ PFN_vkGetPhysicalDeviceFeatures( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceFeatures" ) );
+ vkGetPhysicalDeviceFormatProperties = PFN_vkGetPhysicalDeviceFormatProperties(
+ vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceFormatProperties" ) );
+ vkGetPhysicalDeviceImageFormatProperties = PFN_vkGetPhysicalDeviceImageFormatProperties(
+ vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceImageFormatProperties" ) );
+ vkGetPhysicalDeviceProperties =
+ PFN_vkGetPhysicalDeviceProperties( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceProperties" ) );
+ vkGetPhysicalDeviceQueueFamilyProperties = PFN_vkGetPhysicalDeviceQueueFamilyProperties(
+ vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceQueueFamilyProperties" ) );
+ vkGetPhysicalDeviceMemoryProperties = PFN_vkGetPhysicalDeviceMemoryProperties(
+ vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceMemoryProperties" ) );
+ vkGetInstanceProcAddr = PFN_vkGetInstanceProcAddr( vkGetInstanceProcAddr( instance, "vkGetInstanceProcAddr" ) );
+ vkCreateDevice = PFN_vkCreateDevice( vkGetInstanceProcAddr( instance, "vkCreateDevice" ) );
+ vkEnumerateDeviceExtensionProperties = PFN_vkEnumerateDeviceExtensionProperties(
+ vkGetInstanceProcAddr( instance, "vkEnumerateDeviceExtensionProperties" ) );
+ vkEnumerateDeviceLayerProperties =
+ PFN_vkEnumerateDeviceLayerProperties( vkGetInstanceProcAddr( instance, "vkEnumerateDeviceLayerProperties" ) );
+ vkGetPhysicalDeviceSparseImageFormatProperties = PFN_vkGetPhysicalDeviceSparseImageFormatProperties(
+ vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceSparseImageFormatProperties" ) );
+
+ //=== VK_VERSION_1_1 ===
+ vkEnumeratePhysicalDeviceGroups =
+ PFN_vkEnumeratePhysicalDeviceGroups( vkGetInstanceProcAddr( instance, "vkEnumeratePhysicalDeviceGroups" ) );
+ vkGetPhysicalDeviceFeatures2 =
+ PFN_vkGetPhysicalDeviceFeatures2( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceFeatures2" ) );
+ vkGetPhysicalDeviceProperties2 =
+ PFN_vkGetPhysicalDeviceProperties2( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceProperties2" ) );
+ vkGetPhysicalDeviceFormatProperties2 = PFN_vkGetPhysicalDeviceFormatProperties2(
+ vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceFormatProperties2" ) );
+ vkGetPhysicalDeviceImageFormatProperties2 = PFN_vkGetPhysicalDeviceImageFormatProperties2(
+ vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceImageFormatProperties2" ) );
+ vkGetPhysicalDeviceQueueFamilyProperties2 = PFN_vkGetPhysicalDeviceQueueFamilyProperties2(
+ vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceQueueFamilyProperties2" ) );
+ vkGetPhysicalDeviceMemoryProperties2 = PFN_vkGetPhysicalDeviceMemoryProperties2(
+ vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceMemoryProperties2" ) );
+ vkGetPhysicalDeviceSparseImageFormatProperties2 = PFN_vkGetPhysicalDeviceSparseImageFormatProperties2(
+ vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceSparseImageFormatProperties2" ) );
+ vkGetPhysicalDeviceExternalBufferProperties = PFN_vkGetPhysicalDeviceExternalBufferProperties(
+ vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceExternalBufferProperties" ) );
+ vkGetPhysicalDeviceExternalFenceProperties = PFN_vkGetPhysicalDeviceExternalFenceProperties(
+ vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceExternalFenceProperties" ) );
+ vkGetPhysicalDeviceExternalSemaphoreProperties = PFN_vkGetPhysicalDeviceExternalSemaphoreProperties(
+ vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceExternalSemaphoreProperties" ) );
+
+ //=== VK_EXT_acquire_drm_display ===
vkAcquireDrmDisplayEXT =
PFN_vkAcquireDrmDisplayEXT( vkGetInstanceProcAddr( instance, "vkAcquireDrmDisplayEXT" ) );
-# if defined( VK_USE_PLATFORM_WIN32_KHR )
- vkAcquireWinrtDisplayNV =
- PFN_vkAcquireWinrtDisplayNV( vkGetInstanceProcAddr( instance, "vkAcquireWinrtDisplayNV" ) );
-# endif /*VK_USE_PLATFORM_WIN32_KHR*/
+ vkGetDrmDisplayEXT = PFN_vkGetDrmDisplayEXT( vkGetInstanceProcAddr( instance, "vkGetDrmDisplayEXT" ) );
+
# if defined( VK_USE_PLATFORM_XLIB_XRANDR_EXT )
+ //=== VK_EXT_acquire_xlib_display ===
vkAcquireXlibDisplayEXT =
PFN_vkAcquireXlibDisplayEXT( vkGetInstanceProcAddr( instance, "vkAcquireXlibDisplayEXT" ) );
+ vkGetRandROutputDisplayEXT =
+ PFN_vkGetRandROutputDisplayEXT( vkGetInstanceProcAddr( instance, "vkGetRandROutputDisplayEXT" ) );
# endif /*VK_USE_PLATFORM_XLIB_XRANDR_EXT*/
-# if defined( VK_USE_PLATFORM_ANDROID_KHR )
- vkCreateAndroidSurfaceKHR =
- PFN_vkCreateAndroidSurfaceKHR( vkGetInstanceProcAddr( instance, "vkCreateAndroidSurfaceKHR" ) );
-# endif /*VK_USE_PLATFORM_ANDROID_KHR*/
+
+ //=== VK_EXT_calibrated_timestamps ===
+ vkGetPhysicalDeviceCalibrateableTimeDomainsEXT = PFN_vkGetPhysicalDeviceCalibrateableTimeDomainsEXT(
+ vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceCalibrateableTimeDomainsEXT" ) );
+
+ //=== VK_EXT_debug_report ===
vkCreateDebugReportCallbackEXT =
PFN_vkCreateDebugReportCallbackEXT( vkGetInstanceProcAddr( instance, "vkCreateDebugReportCallbackEXT" ) );
+ vkDestroyDebugReportCallbackEXT =
+ PFN_vkDestroyDebugReportCallbackEXT( vkGetInstanceProcAddr( instance, "vkDestroyDebugReportCallbackEXT" ) );
+ vkDebugReportMessageEXT =
+ PFN_vkDebugReportMessageEXT( vkGetInstanceProcAddr( instance, "vkDebugReportMessageEXT" ) );
+
+ //=== VK_EXT_debug_utils ===
vkCreateDebugUtilsMessengerEXT =
PFN_vkCreateDebugUtilsMessengerEXT( vkGetInstanceProcAddr( instance, "vkCreateDebugUtilsMessengerEXT" ) );
- vkCreateDevice = PFN_vkCreateDevice( vkGetInstanceProcAddr( instance, "vkCreateDevice" ) );
+ vkDestroyDebugUtilsMessengerEXT =
+ PFN_vkDestroyDebugUtilsMessengerEXT( vkGetInstanceProcAddr( instance, "vkDestroyDebugUtilsMessengerEXT" ) );
+ vkSubmitDebugUtilsMessageEXT =
+ PFN_vkSubmitDebugUtilsMessageEXT( vkGetInstanceProcAddr( instance, "vkSubmitDebugUtilsMessageEXT" ) );
+
+ //=== VK_EXT_direct_mode_display ===
+ vkReleaseDisplayEXT = PFN_vkReleaseDisplayEXT( vkGetInstanceProcAddr( instance, "vkReleaseDisplayEXT" ) );
+
# if defined( VK_USE_PLATFORM_DIRECTFB_EXT )
+ //=== VK_EXT_directfb_surface ===
vkCreateDirectFBSurfaceEXT =
PFN_vkCreateDirectFBSurfaceEXT( vkGetInstanceProcAddr( instance, "vkCreateDirectFBSurfaceEXT" ) );
+ vkGetPhysicalDeviceDirectFBPresentationSupportEXT = PFN_vkGetPhysicalDeviceDirectFBPresentationSupportEXT(
+ vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceDirectFBPresentationSupportEXT" ) );
# endif /*VK_USE_PLATFORM_DIRECTFB_EXT*/
- vkCreateDisplayModeKHR =
- PFN_vkCreateDisplayModeKHR( vkGetInstanceProcAddr( instance, "vkCreateDisplayModeKHR" ) );
- vkCreateDisplayPlaneSurfaceKHR =
- PFN_vkCreateDisplayPlaneSurfaceKHR( vkGetInstanceProcAddr( instance, "vkCreateDisplayPlaneSurfaceKHR" ) );
+
+ //=== VK_EXT_display_surface_counter ===
+ vkGetPhysicalDeviceSurfaceCapabilities2EXT = PFN_vkGetPhysicalDeviceSurfaceCapabilities2EXT(
+ vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceSurfaceCapabilities2EXT" ) );
+
+# if defined( VK_USE_PLATFORM_WIN32_KHR )
+ //=== VK_EXT_full_screen_exclusive ===
+ vkGetPhysicalDeviceSurfacePresentModes2EXT = PFN_vkGetPhysicalDeviceSurfacePresentModes2EXT(
+ vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceSurfacePresentModes2EXT" ) );
+# endif /*VK_USE_PLATFORM_WIN32_KHR*/
+
+ //=== VK_EXT_headless_surface ===
vkCreateHeadlessSurfaceEXT =
PFN_vkCreateHeadlessSurfaceEXT( vkGetInstanceProcAddr( instance, "vkCreateHeadlessSurfaceEXT" ) );
-# if defined( VK_USE_PLATFORM_IOS_MVK )
- vkCreateIOSSurfaceMVK = PFN_vkCreateIOSSurfaceMVK( vkGetInstanceProcAddr( instance, "vkCreateIOSSurfaceMVK" ) );
-# endif /*VK_USE_PLATFORM_IOS_MVK*/
-# if defined( VK_USE_PLATFORM_FUCHSIA )
- vkCreateImagePipeSurfaceFUCHSIA =
- PFN_vkCreateImagePipeSurfaceFUCHSIA( vkGetInstanceProcAddr( instance, "vkCreateImagePipeSurfaceFUCHSIA" ) );
-# endif /*VK_USE_PLATFORM_FUCHSIA*/
-# if defined( VK_USE_PLATFORM_MACOS_MVK )
- vkCreateMacOSSurfaceMVK =
- PFN_vkCreateMacOSSurfaceMVK( vkGetInstanceProcAddr( instance, "vkCreateMacOSSurfaceMVK" ) );
-# endif /*VK_USE_PLATFORM_MACOS_MVK*/
+
# if defined( VK_USE_PLATFORM_METAL_EXT )
+ //=== VK_EXT_metal_surface ===
vkCreateMetalSurfaceEXT =
PFN_vkCreateMetalSurfaceEXT( vkGetInstanceProcAddr( instance, "vkCreateMetalSurfaceEXT" ) );
# endif /*VK_USE_PLATFORM_METAL_EXT*/
-# if defined( VK_USE_PLATFORM_SCREEN_QNX )
- vkCreateScreenSurfaceQNX =
- PFN_vkCreateScreenSurfaceQNX( vkGetInstanceProcAddr( instance, "vkCreateScreenSurfaceQNX" ) );
-# endif /*VK_USE_PLATFORM_SCREEN_QNX*/
+
+ //=== VK_EXT_sample_locations ===
+ vkGetPhysicalDeviceMultisamplePropertiesEXT = PFN_vkGetPhysicalDeviceMultisamplePropertiesEXT(
+ vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceMultisamplePropertiesEXT" ) );
+
+ //=== VK_EXT_tooling_info ===
+ vkGetPhysicalDeviceToolPropertiesEXT = PFN_vkGetPhysicalDeviceToolPropertiesEXT(
+ vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceToolPropertiesEXT" ) );
+
+# if defined( VK_USE_PLATFORM_FUCHSIA )
+ //=== VK_FUCHSIA_imagepipe_surface ===
+ vkCreateImagePipeSurfaceFUCHSIA =
+ PFN_vkCreateImagePipeSurfaceFUCHSIA( vkGetInstanceProcAddr( instance, "vkCreateImagePipeSurfaceFUCHSIA" ) );
+# endif /*VK_USE_PLATFORM_FUCHSIA*/
+
# if defined( VK_USE_PLATFORM_GGP )
+ //=== VK_GGP_stream_descriptor_surface ===
vkCreateStreamDescriptorSurfaceGGP = PFN_vkCreateStreamDescriptorSurfaceGGP(
vkGetInstanceProcAddr( instance, "vkCreateStreamDescriptorSurfaceGGP" ) );
# endif /*VK_USE_PLATFORM_GGP*/
-# if defined( VK_USE_PLATFORM_VI_NN )
- vkCreateViSurfaceNN = PFN_vkCreateViSurfaceNN( vkGetInstanceProcAddr( instance, "vkCreateViSurfaceNN" ) );
-# endif /*VK_USE_PLATFORM_VI_NN*/
-# if defined( VK_USE_PLATFORM_WAYLAND_KHR )
- vkCreateWaylandSurfaceKHR =
- PFN_vkCreateWaylandSurfaceKHR( vkGetInstanceProcAddr( instance, "vkCreateWaylandSurfaceKHR" ) );
-# endif /*VK_USE_PLATFORM_WAYLAND_KHR*/
-# if defined( VK_USE_PLATFORM_WIN32_KHR )
- vkCreateWin32SurfaceKHR =
- PFN_vkCreateWin32SurfaceKHR( vkGetInstanceProcAddr( instance, "vkCreateWin32SurfaceKHR" ) );
-# endif /*VK_USE_PLATFORM_WIN32_KHR*/
-# if defined( VK_USE_PLATFORM_XCB_KHR )
- vkCreateXcbSurfaceKHR = PFN_vkCreateXcbSurfaceKHR( vkGetInstanceProcAddr( instance, "vkCreateXcbSurfaceKHR" ) );
-# endif /*VK_USE_PLATFORM_XCB_KHR*/
-# if defined( VK_USE_PLATFORM_XLIB_KHR )
- vkCreateXlibSurfaceKHR =
- PFN_vkCreateXlibSurfaceKHR( vkGetInstanceProcAddr( instance, "vkCreateXlibSurfaceKHR" ) );
-# endif /*VK_USE_PLATFORM_XLIB_KHR*/
- vkDebugReportMessageEXT =
- PFN_vkDebugReportMessageEXT( vkGetInstanceProcAddr( instance, "vkDebugReportMessageEXT" ) );
- vkDestroyDebugReportCallbackEXT =
- PFN_vkDestroyDebugReportCallbackEXT( vkGetInstanceProcAddr( instance, "vkDestroyDebugReportCallbackEXT" ) );
- vkDestroyDebugUtilsMessengerEXT =
- PFN_vkDestroyDebugUtilsMessengerEXT( vkGetInstanceProcAddr( instance, "vkDestroyDebugUtilsMessengerEXT" ) );
- vkDestroyInstance = PFN_vkDestroyInstance( vkGetInstanceProcAddr( instance, "vkDestroyInstance" ) );
- vkDestroySurfaceKHR = PFN_vkDestroySurfaceKHR( vkGetInstanceProcAddr( instance, "vkDestroySurfaceKHR" ) );
- vkEnumerateDeviceExtensionProperties = PFN_vkEnumerateDeviceExtensionProperties(
- vkGetInstanceProcAddr( instance, "vkEnumerateDeviceExtensionProperties" ) );
- vkEnumerateDeviceLayerProperties =
- PFN_vkEnumerateDeviceLayerProperties( vkGetInstanceProcAddr( instance, "vkEnumerateDeviceLayerProperties" ) );
- vkEnumeratePhysicalDeviceGroups =
- PFN_vkEnumeratePhysicalDeviceGroups( vkGetInstanceProcAddr( instance, "vkEnumeratePhysicalDeviceGroups" ) );
+
+# if defined( VK_USE_PLATFORM_ANDROID_KHR )
+ //=== VK_KHR_android_surface ===
+ vkCreateAndroidSurfaceKHR =
+ PFN_vkCreateAndroidSurfaceKHR( vkGetInstanceProcAddr( instance, "vkCreateAndroidSurfaceKHR" ) );
+# endif /*VK_USE_PLATFORM_ANDROID_KHR*/
+
+ //=== VK_KHR_device_group ===
+ vkGetPhysicalDevicePresentRectanglesKHR = PFN_vkGetPhysicalDevicePresentRectanglesKHR(
+ vkGetInstanceProcAddr( instance, "vkGetPhysicalDevicePresentRectanglesKHR" ) );
+
+ //=== VK_KHR_device_group_creation ===
vkEnumeratePhysicalDeviceGroupsKHR = PFN_vkEnumeratePhysicalDeviceGroupsKHR(
vkGetInstanceProcAddr( instance, "vkEnumeratePhysicalDeviceGroupsKHR" ) );
if ( !vkEnumeratePhysicalDeviceGroups )
vkEnumeratePhysicalDeviceGroups = vkEnumeratePhysicalDeviceGroupsKHR;
- vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR =
- PFN_vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR(
- vkGetInstanceProcAddr( instance, "vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR" ) );
- vkEnumeratePhysicalDevices =
- PFN_vkEnumeratePhysicalDevices( vkGetInstanceProcAddr( instance, "vkEnumeratePhysicalDevices" ) );
- vkGetDisplayModeProperties2KHR =
- PFN_vkGetDisplayModeProperties2KHR( vkGetInstanceProcAddr( instance, "vkGetDisplayModeProperties2KHR" ) );
+
+ //=== VK_KHR_display ===
+ vkGetPhysicalDeviceDisplayPropertiesKHR = PFN_vkGetPhysicalDeviceDisplayPropertiesKHR(
+ vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceDisplayPropertiesKHR" ) );
+ vkGetPhysicalDeviceDisplayPlanePropertiesKHR = PFN_vkGetPhysicalDeviceDisplayPlanePropertiesKHR(
+ vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceDisplayPlanePropertiesKHR" ) );
+ vkGetDisplayPlaneSupportedDisplaysKHR = PFN_vkGetDisplayPlaneSupportedDisplaysKHR(
+ vkGetInstanceProcAddr( instance, "vkGetDisplayPlaneSupportedDisplaysKHR" ) );
vkGetDisplayModePropertiesKHR =
PFN_vkGetDisplayModePropertiesKHR( vkGetInstanceProcAddr( instance, "vkGetDisplayModePropertiesKHR" ) );
- vkGetDisplayPlaneCapabilities2KHR = PFN_vkGetDisplayPlaneCapabilities2KHR(
- vkGetInstanceProcAddr( instance, "vkGetDisplayPlaneCapabilities2KHR" ) );
+ vkCreateDisplayModeKHR =
+ PFN_vkCreateDisplayModeKHR( vkGetInstanceProcAddr( instance, "vkCreateDisplayModeKHR" ) );
vkGetDisplayPlaneCapabilitiesKHR =
PFN_vkGetDisplayPlaneCapabilitiesKHR( vkGetInstanceProcAddr( instance, "vkGetDisplayPlaneCapabilitiesKHR" ) );
- vkGetDisplayPlaneSupportedDisplaysKHR = PFN_vkGetDisplayPlaneSupportedDisplaysKHR(
- vkGetInstanceProcAddr( instance, "vkGetDisplayPlaneSupportedDisplaysKHR" ) );
- vkGetDrmDisplayEXT = PFN_vkGetDrmDisplayEXT( vkGetInstanceProcAddr( instance, "vkGetDrmDisplayEXT" ) );
- vkGetInstanceProcAddr = PFN_vkGetInstanceProcAddr( vkGetInstanceProcAddr( instance, "vkGetInstanceProcAddr" ) );
- vkGetPhysicalDeviceCalibrateableTimeDomainsEXT = PFN_vkGetPhysicalDeviceCalibrateableTimeDomainsEXT(
- vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceCalibrateableTimeDomainsEXT" ) );
- vkGetPhysicalDeviceCooperativeMatrixPropertiesNV = PFN_vkGetPhysicalDeviceCooperativeMatrixPropertiesNV(
- vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceCooperativeMatrixPropertiesNV" ) );
-# if defined( VK_USE_PLATFORM_DIRECTFB_EXT )
- vkGetPhysicalDeviceDirectFBPresentationSupportEXT = PFN_vkGetPhysicalDeviceDirectFBPresentationSupportEXT(
- vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceDirectFBPresentationSupportEXT" ) );
-# endif /*VK_USE_PLATFORM_DIRECTFB_EXT*/
- vkGetPhysicalDeviceDisplayPlaneProperties2KHR = PFN_vkGetPhysicalDeviceDisplayPlaneProperties2KHR(
- vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceDisplayPlaneProperties2KHR" ) );
- vkGetPhysicalDeviceDisplayPlanePropertiesKHR = PFN_vkGetPhysicalDeviceDisplayPlanePropertiesKHR(
- vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceDisplayPlanePropertiesKHR" ) );
- vkGetPhysicalDeviceDisplayProperties2KHR = PFN_vkGetPhysicalDeviceDisplayProperties2KHR(
- vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceDisplayProperties2KHR" ) );
- vkGetPhysicalDeviceDisplayPropertiesKHR = PFN_vkGetPhysicalDeviceDisplayPropertiesKHR(
- vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceDisplayPropertiesKHR" ) );
- vkGetPhysicalDeviceExternalBufferProperties = PFN_vkGetPhysicalDeviceExternalBufferProperties(
- vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceExternalBufferProperties" ) );
- vkGetPhysicalDeviceExternalBufferPropertiesKHR = PFN_vkGetPhysicalDeviceExternalBufferPropertiesKHR(
- vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceExternalBufferPropertiesKHR" ) );
- if ( !vkGetPhysicalDeviceExternalBufferProperties )
- vkGetPhysicalDeviceExternalBufferProperties = vkGetPhysicalDeviceExternalBufferPropertiesKHR;
- vkGetPhysicalDeviceExternalFenceProperties = PFN_vkGetPhysicalDeviceExternalFenceProperties(
- vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceExternalFenceProperties" ) );
+ vkCreateDisplayPlaneSurfaceKHR =
+ PFN_vkCreateDisplayPlaneSurfaceKHR( vkGetInstanceProcAddr( instance, "vkCreateDisplayPlaneSurfaceKHR" ) );
+
+ //=== VK_KHR_external_fence_capabilities ===
vkGetPhysicalDeviceExternalFencePropertiesKHR = PFN_vkGetPhysicalDeviceExternalFencePropertiesKHR(
vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceExternalFencePropertiesKHR" ) );
if ( !vkGetPhysicalDeviceExternalFenceProperties )
vkGetPhysicalDeviceExternalFenceProperties = vkGetPhysicalDeviceExternalFencePropertiesKHR;
- vkGetPhysicalDeviceExternalImageFormatPropertiesNV = PFN_vkGetPhysicalDeviceExternalImageFormatPropertiesNV(
- vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceExternalImageFormatPropertiesNV" ) );
- vkGetPhysicalDeviceExternalSemaphoreProperties = PFN_vkGetPhysicalDeviceExternalSemaphoreProperties(
- vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceExternalSemaphoreProperties" ) );
+
+ //=== VK_KHR_external_memory_capabilities ===
+ vkGetPhysicalDeviceExternalBufferPropertiesKHR = PFN_vkGetPhysicalDeviceExternalBufferPropertiesKHR(
+ vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceExternalBufferPropertiesKHR" ) );
+ if ( !vkGetPhysicalDeviceExternalBufferProperties )
+ vkGetPhysicalDeviceExternalBufferProperties = vkGetPhysicalDeviceExternalBufferPropertiesKHR;
+
+ //=== VK_KHR_external_semaphore_capabilities ===
vkGetPhysicalDeviceExternalSemaphorePropertiesKHR = PFN_vkGetPhysicalDeviceExternalSemaphorePropertiesKHR(
vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceExternalSemaphorePropertiesKHR" ) );
if ( !vkGetPhysicalDeviceExternalSemaphoreProperties )
vkGetPhysicalDeviceExternalSemaphoreProperties = vkGetPhysicalDeviceExternalSemaphorePropertiesKHR;
- vkGetPhysicalDeviceFeatures =
- PFN_vkGetPhysicalDeviceFeatures( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceFeatures" ) );
- vkGetPhysicalDeviceFeatures2 =
- PFN_vkGetPhysicalDeviceFeatures2( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceFeatures2" ) );
+
+ //=== VK_KHR_fragment_shading_rate ===
+ vkGetPhysicalDeviceFragmentShadingRatesKHR = PFN_vkGetPhysicalDeviceFragmentShadingRatesKHR(
+ vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceFragmentShadingRatesKHR" ) );
+
+ //=== VK_KHR_get_display_properties2 ===
+ vkGetPhysicalDeviceDisplayProperties2KHR = PFN_vkGetPhysicalDeviceDisplayProperties2KHR(
+ vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceDisplayProperties2KHR" ) );
+ vkGetPhysicalDeviceDisplayPlaneProperties2KHR = PFN_vkGetPhysicalDeviceDisplayPlaneProperties2KHR(
+ vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceDisplayPlaneProperties2KHR" ) );
+ vkGetDisplayModeProperties2KHR =
+ PFN_vkGetDisplayModeProperties2KHR( vkGetInstanceProcAddr( instance, "vkGetDisplayModeProperties2KHR" ) );
+ vkGetDisplayPlaneCapabilities2KHR = PFN_vkGetDisplayPlaneCapabilities2KHR(
+ vkGetInstanceProcAddr( instance, "vkGetDisplayPlaneCapabilities2KHR" ) );
+
+ //=== VK_KHR_get_physical_device_properties2 ===
vkGetPhysicalDeviceFeatures2KHR =
PFN_vkGetPhysicalDeviceFeatures2KHR( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceFeatures2KHR" ) );
if ( !vkGetPhysicalDeviceFeatures2 )
vkGetPhysicalDeviceFeatures2 = vkGetPhysicalDeviceFeatures2KHR;
- vkGetPhysicalDeviceFormatProperties = PFN_vkGetPhysicalDeviceFormatProperties(
- vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceFormatProperties" ) );
- vkGetPhysicalDeviceFormatProperties2 = PFN_vkGetPhysicalDeviceFormatProperties2(
- vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceFormatProperties2" ) );
+ vkGetPhysicalDeviceProperties2KHR = PFN_vkGetPhysicalDeviceProperties2KHR(
+ vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceProperties2KHR" ) );
+ if ( !vkGetPhysicalDeviceProperties2 )
+ vkGetPhysicalDeviceProperties2 = vkGetPhysicalDeviceProperties2KHR;
vkGetPhysicalDeviceFormatProperties2KHR = PFN_vkGetPhysicalDeviceFormatProperties2KHR(
vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceFormatProperties2KHR" ) );
if ( !vkGetPhysicalDeviceFormatProperties2 )
vkGetPhysicalDeviceFormatProperties2 = vkGetPhysicalDeviceFormatProperties2KHR;
- vkGetPhysicalDeviceFragmentShadingRatesKHR = PFN_vkGetPhysicalDeviceFragmentShadingRatesKHR(
- vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceFragmentShadingRatesKHR" ) );
- vkGetPhysicalDeviceImageFormatProperties = PFN_vkGetPhysicalDeviceImageFormatProperties(
- vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceImageFormatProperties" ) );
- vkGetPhysicalDeviceImageFormatProperties2 = PFN_vkGetPhysicalDeviceImageFormatProperties2(
- vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceImageFormatProperties2" ) );
vkGetPhysicalDeviceImageFormatProperties2KHR = PFN_vkGetPhysicalDeviceImageFormatProperties2KHR(
vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceImageFormatProperties2KHR" ) );
if ( !vkGetPhysicalDeviceImageFormatProperties2 )
vkGetPhysicalDeviceImageFormatProperties2 = vkGetPhysicalDeviceImageFormatProperties2KHR;
- vkGetPhysicalDeviceMemoryProperties = PFN_vkGetPhysicalDeviceMemoryProperties(
- vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceMemoryProperties" ) );
- vkGetPhysicalDeviceMemoryProperties2 = PFN_vkGetPhysicalDeviceMemoryProperties2(
- vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceMemoryProperties2" ) );
- vkGetPhysicalDeviceMemoryProperties2KHR = PFN_vkGetPhysicalDeviceMemoryProperties2KHR(
- vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceMemoryProperties2KHR" ) );
- if ( !vkGetPhysicalDeviceMemoryProperties2 )
- vkGetPhysicalDeviceMemoryProperties2 = vkGetPhysicalDeviceMemoryProperties2KHR;
- vkGetPhysicalDeviceMultisamplePropertiesEXT = PFN_vkGetPhysicalDeviceMultisamplePropertiesEXT(
- vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceMultisamplePropertiesEXT" ) );
- vkGetPhysicalDevicePresentRectanglesKHR = PFN_vkGetPhysicalDevicePresentRectanglesKHR(
- vkGetInstanceProcAddr( instance, "vkGetPhysicalDevicePresentRectanglesKHR" ) );
- vkGetPhysicalDeviceProperties =
- PFN_vkGetPhysicalDeviceProperties( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceProperties" ) );
- vkGetPhysicalDeviceProperties2 =
- PFN_vkGetPhysicalDeviceProperties2( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceProperties2" ) );
- vkGetPhysicalDeviceProperties2KHR = PFN_vkGetPhysicalDeviceProperties2KHR(
- vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceProperties2KHR" ) );
- if ( !vkGetPhysicalDeviceProperties2 )
- vkGetPhysicalDeviceProperties2 = vkGetPhysicalDeviceProperties2KHR;
- vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR =
- PFN_vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR(
- vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR" ) );
- vkGetPhysicalDeviceQueueFamilyProperties = PFN_vkGetPhysicalDeviceQueueFamilyProperties(
- vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceQueueFamilyProperties" ) );
- vkGetPhysicalDeviceQueueFamilyProperties2 = PFN_vkGetPhysicalDeviceQueueFamilyProperties2(
- vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceQueueFamilyProperties2" ) );
vkGetPhysicalDeviceQueueFamilyProperties2KHR = PFN_vkGetPhysicalDeviceQueueFamilyProperties2KHR(
vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceQueueFamilyProperties2KHR" ) );
if ( !vkGetPhysicalDeviceQueueFamilyProperties2 )
vkGetPhysicalDeviceQueueFamilyProperties2 = vkGetPhysicalDeviceQueueFamilyProperties2KHR;
-# if defined( VK_USE_PLATFORM_SCREEN_QNX )
- vkGetPhysicalDeviceScreenPresentationSupportQNX = PFN_vkGetPhysicalDeviceScreenPresentationSupportQNX(
- vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceScreenPresentationSupportQNX" ) );
-# endif /*VK_USE_PLATFORM_SCREEN_QNX*/
- vkGetPhysicalDeviceSparseImageFormatProperties = PFN_vkGetPhysicalDeviceSparseImageFormatProperties(
- vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceSparseImageFormatProperties" ) );
- vkGetPhysicalDeviceSparseImageFormatProperties2 = PFN_vkGetPhysicalDeviceSparseImageFormatProperties2(
- vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceSparseImageFormatProperties2" ) );
+ vkGetPhysicalDeviceMemoryProperties2KHR = PFN_vkGetPhysicalDeviceMemoryProperties2KHR(
+ vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceMemoryProperties2KHR" ) );
+ if ( !vkGetPhysicalDeviceMemoryProperties2 )
+ vkGetPhysicalDeviceMemoryProperties2 = vkGetPhysicalDeviceMemoryProperties2KHR;
vkGetPhysicalDeviceSparseImageFormatProperties2KHR = PFN_vkGetPhysicalDeviceSparseImageFormatProperties2KHR(
vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceSparseImageFormatProperties2KHR" ) );
if ( !vkGetPhysicalDeviceSparseImageFormatProperties2 )
vkGetPhysicalDeviceSparseImageFormatProperties2 = vkGetPhysicalDeviceSparseImageFormatProperties2KHR;
- vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV =
- PFN_vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV(
- vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV" ) );
- vkGetPhysicalDeviceSurfaceCapabilities2EXT = PFN_vkGetPhysicalDeviceSurfaceCapabilities2EXT(
- vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceSurfaceCapabilities2EXT" ) );
+
+ //=== VK_KHR_get_surface_capabilities2 ===
vkGetPhysicalDeviceSurfaceCapabilities2KHR = PFN_vkGetPhysicalDeviceSurfaceCapabilities2KHR(
vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceSurfaceCapabilities2KHR" ) );
- vkGetPhysicalDeviceSurfaceCapabilitiesKHR = PFN_vkGetPhysicalDeviceSurfaceCapabilitiesKHR(
- vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceSurfaceCapabilitiesKHR" ) );
vkGetPhysicalDeviceSurfaceFormats2KHR = PFN_vkGetPhysicalDeviceSurfaceFormats2KHR(
vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceSurfaceFormats2KHR" ) );
+
+ //=== VK_KHR_performance_query ===
+ vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR =
+ PFN_vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR(
+ vkGetInstanceProcAddr( instance, "vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR" ) );
+ vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR =
+ PFN_vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR(
+ vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR" ) );
+
+ //=== VK_KHR_surface ===
+ vkDestroySurfaceKHR = PFN_vkDestroySurfaceKHR( vkGetInstanceProcAddr( instance, "vkDestroySurfaceKHR" ) );
+ vkGetPhysicalDeviceSurfaceSupportKHR = PFN_vkGetPhysicalDeviceSurfaceSupportKHR(
+ vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceSurfaceSupportKHR" ) );
+ vkGetPhysicalDeviceSurfaceCapabilitiesKHR = PFN_vkGetPhysicalDeviceSurfaceCapabilitiesKHR(
+ vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceSurfaceCapabilitiesKHR" ) );
vkGetPhysicalDeviceSurfaceFormatsKHR = PFN_vkGetPhysicalDeviceSurfaceFormatsKHR(
vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceSurfaceFormatsKHR" ) );
-# if defined( VK_USE_PLATFORM_WIN32_KHR )
- vkGetPhysicalDeviceSurfacePresentModes2EXT = PFN_vkGetPhysicalDeviceSurfacePresentModes2EXT(
- vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceSurfacePresentModes2EXT" ) );
-# endif /*VK_USE_PLATFORM_WIN32_KHR*/
vkGetPhysicalDeviceSurfacePresentModesKHR = PFN_vkGetPhysicalDeviceSurfacePresentModesKHR(
vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceSurfacePresentModesKHR" ) );
- vkGetPhysicalDeviceSurfaceSupportKHR = PFN_vkGetPhysicalDeviceSurfaceSupportKHR(
- vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceSurfaceSupportKHR" ) );
- vkGetPhysicalDeviceToolPropertiesEXT = PFN_vkGetPhysicalDeviceToolPropertiesEXT(
- vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceToolPropertiesEXT" ) );
+
# if defined( VK_ENABLE_BETA_EXTENSIONS )
+ //=== VK_KHR_video_queue ===
vkGetPhysicalDeviceVideoCapabilitiesKHR = PFN_vkGetPhysicalDeviceVideoCapabilitiesKHR(
vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceVideoCapabilitiesKHR" ) );
-# endif /*VK_ENABLE_BETA_EXTENSIONS*/
-# if defined( VK_ENABLE_BETA_EXTENSIONS )
vkGetPhysicalDeviceVideoFormatPropertiesKHR = PFN_vkGetPhysicalDeviceVideoFormatPropertiesKHR(
vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceVideoFormatPropertiesKHR" ) );
# endif /*VK_ENABLE_BETA_EXTENSIONS*/
+
# if defined( VK_USE_PLATFORM_WAYLAND_KHR )
+ //=== VK_KHR_wayland_surface ===
+ vkCreateWaylandSurfaceKHR =
+ PFN_vkCreateWaylandSurfaceKHR( vkGetInstanceProcAddr( instance, "vkCreateWaylandSurfaceKHR" ) );
vkGetPhysicalDeviceWaylandPresentationSupportKHR = PFN_vkGetPhysicalDeviceWaylandPresentationSupportKHR(
vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceWaylandPresentationSupportKHR" ) );
# endif /*VK_USE_PLATFORM_WAYLAND_KHR*/
+
# if defined( VK_USE_PLATFORM_WIN32_KHR )
+ //=== VK_KHR_win32_surface ===
+ vkCreateWin32SurfaceKHR =
+ PFN_vkCreateWin32SurfaceKHR( vkGetInstanceProcAddr( instance, "vkCreateWin32SurfaceKHR" ) );
vkGetPhysicalDeviceWin32PresentationSupportKHR = PFN_vkGetPhysicalDeviceWin32PresentationSupportKHR(
vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceWin32PresentationSupportKHR" ) );
# endif /*VK_USE_PLATFORM_WIN32_KHR*/
+
# if defined( VK_USE_PLATFORM_XCB_KHR )
+ //=== VK_KHR_xcb_surface ===
+ vkCreateXcbSurfaceKHR = PFN_vkCreateXcbSurfaceKHR( vkGetInstanceProcAddr( instance, "vkCreateXcbSurfaceKHR" ) );
vkGetPhysicalDeviceXcbPresentationSupportKHR = PFN_vkGetPhysicalDeviceXcbPresentationSupportKHR(
vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceXcbPresentationSupportKHR" ) );
# endif /*VK_USE_PLATFORM_XCB_KHR*/
+
# if defined( VK_USE_PLATFORM_XLIB_KHR )
+ //=== VK_KHR_xlib_surface ===
+ vkCreateXlibSurfaceKHR =
+ PFN_vkCreateXlibSurfaceKHR( vkGetInstanceProcAddr( instance, "vkCreateXlibSurfaceKHR" ) );
vkGetPhysicalDeviceXlibPresentationSupportKHR = PFN_vkGetPhysicalDeviceXlibPresentationSupportKHR(
vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceXlibPresentationSupportKHR" ) );
# endif /*VK_USE_PLATFORM_XLIB_KHR*/
-# if defined( VK_USE_PLATFORM_XLIB_XRANDR_EXT )
- vkGetRandROutputDisplayEXT =
- PFN_vkGetRandROutputDisplayEXT( vkGetInstanceProcAddr( instance, "vkGetRandROutputDisplayEXT" ) );
-# endif /*VK_USE_PLATFORM_XLIB_XRANDR_EXT*/
+
+# if defined( VK_USE_PLATFORM_IOS_MVK )
+ //=== VK_MVK_ios_surface ===
+ vkCreateIOSSurfaceMVK = PFN_vkCreateIOSSurfaceMVK( vkGetInstanceProcAddr( instance, "vkCreateIOSSurfaceMVK" ) );
+# endif /*VK_USE_PLATFORM_IOS_MVK*/
+
+# if defined( VK_USE_PLATFORM_MACOS_MVK )
+ //=== VK_MVK_macos_surface ===
+ vkCreateMacOSSurfaceMVK =
+ PFN_vkCreateMacOSSurfaceMVK( vkGetInstanceProcAddr( instance, "vkCreateMacOSSurfaceMVK" ) );
+# endif /*VK_USE_PLATFORM_MACOS_MVK*/
+
+# if defined( VK_USE_PLATFORM_VI_NN )
+ //=== VK_NN_vi_surface ===
+ vkCreateViSurfaceNN = PFN_vkCreateViSurfaceNN( vkGetInstanceProcAddr( instance, "vkCreateViSurfaceNN" ) );
+# endif /*VK_USE_PLATFORM_VI_NN*/
+
# if defined( VK_USE_PLATFORM_WIN32_KHR )
+ //=== VK_NV_acquire_winrt_display ===
+ vkAcquireWinrtDisplayNV =
+ PFN_vkAcquireWinrtDisplayNV( vkGetInstanceProcAddr( instance, "vkAcquireWinrtDisplayNV" ) );
vkGetWinrtDisplayNV = PFN_vkGetWinrtDisplayNV( vkGetInstanceProcAddr( instance, "vkGetWinrtDisplayNV" ) );
# endif /*VK_USE_PLATFORM_WIN32_KHR*/
- vkReleaseDisplayEXT = PFN_vkReleaseDisplayEXT( vkGetInstanceProcAddr( instance, "vkReleaseDisplayEXT" ) );
- vkSubmitDebugUtilsMessageEXT =
- PFN_vkSubmitDebugUtilsMessageEXT( vkGetInstanceProcAddr( instance, "vkSubmitDebugUtilsMessageEXT" ) );
+
+ //=== VK_NV_cooperative_matrix ===
+ vkGetPhysicalDeviceCooperativeMatrixPropertiesNV = PFN_vkGetPhysicalDeviceCooperativeMatrixPropertiesNV(
+ vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceCooperativeMatrixPropertiesNV" ) );
+
+ //=== VK_NV_coverage_reduction_mode ===
+ vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV =
+ PFN_vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV(
+ vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV" ) );
+
+ //=== VK_NV_external_memory_capabilities ===
+ vkGetPhysicalDeviceExternalImageFormatPropertiesNV = PFN_vkGetPhysicalDeviceExternalImageFormatPropertiesNV(
+ vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceExternalImageFormatPropertiesNV" ) );
+
+# if defined( VK_USE_PLATFORM_SCREEN_QNX )
+ //=== VK_QNX_screen_surface ===
+ vkCreateScreenSurfaceQNX =
+ PFN_vkCreateScreenSurfaceQNX( vkGetInstanceProcAddr( instance, "vkCreateScreenSurfaceQNX" ) );
+ vkGetPhysicalDeviceScreenPresentationSupportQNX = PFN_vkGetPhysicalDeviceScreenPresentationSupportQNX(
+ vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceScreenPresentationSupportQNX" ) );
+# endif /*VK_USE_PLATFORM_SCREEN_QNX*/
vkGetDeviceProcAddr = PFN_vkGetDeviceProcAddr( vkGetInstanceProcAddr( instance, "vkGetDeviceProcAddr" ) );
}
public:
+ //=== VK_VERSION_1_0 ===
+ PFN_vkDestroyInstance vkDestroyInstance = 0;
+ PFN_vkEnumeratePhysicalDevices vkEnumeratePhysicalDevices = 0;
+ PFN_vkGetPhysicalDeviceFeatures vkGetPhysicalDeviceFeatures = 0;
+ PFN_vkGetPhysicalDeviceFormatProperties vkGetPhysicalDeviceFormatProperties = 0;
+ PFN_vkGetPhysicalDeviceImageFormatProperties vkGetPhysicalDeviceImageFormatProperties = 0;
+ PFN_vkGetPhysicalDeviceProperties vkGetPhysicalDeviceProperties = 0;
+ PFN_vkGetPhysicalDeviceQueueFamilyProperties vkGetPhysicalDeviceQueueFamilyProperties = 0;
+ PFN_vkGetPhysicalDeviceMemoryProperties vkGetPhysicalDeviceMemoryProperties = 0;
+ PFN_vkGetInstanceProcAddr vkGetInstanceProcAddr = 0;
+ PFN_vkCreateDevice vkCreateDevice = 0;
+ PFN_vkEnumerateDeviceExtensionProperties vkEnumerateDeviceExtensionProperties = 0;
+ PFN_vkEnumerateDeviceLayerProperties vkEnumerateDeviceLayerProperties = 0;
+ PFN_vkGetPhysicalDeviceSparseImageFormatProperties vkGetPhysicalDeviceSparseImageFormatProperties = 0;
+
+ //=== VK_VERSION_1_1 ===
+ PFN_vkEnumeratePhysicalDeviceGroups vkEnumeratePhysicalDeviceGroups = 0;
+ PFN_vkGetPhysicalDeviceFeatures2 vkGetPhysicalDeviceFeatures2 = 0;
+ PFN_vkGetPhysicalDeviceProperties2 vkGetPhysicalDeviceProperties2 = 0;
+ PFN_vkGetPhysicalDeviceFormatProperties2 vkGetPhysicalDeviceFormatProperties2 = 0;
+ PFN_vkGetPhysicalDeviceImageFormatProperties2 vkGetPhysicalDeviceImageFormatProperties2 = 0;
+ PFN_vkGetPhysicalDeviceQueueFamilyProperties2 vkGetPhysicalDeviceQueueFamilyProperties2 = 0;
+ PFN_vkGetPhysicalDeviceMemoryProperties2 vkGetPhysicalDeviceMemoryProperties2 = 0;
+ PFN_vkGetPhysicalDeviceSparseImageFormatProperties2 vkGetPhysicalDeviceSparseImageFormatProperties2 = 0;
+ PFN_vkGetPhysicalDeviceExternalBufferProperties vkGetPhysicalDeviceExternalBufferProperties = 0;
+ PFN_vkGetPhysicalDeviceExternalFenceProperties vkGetPhysicalDeviceExternalFenceProperties = 0;
+ PFN_vkGetPhysicalDeviceExternalSemaphoreProperties vkGetPhysicalDeviceExternalSemaphoreProperties = 0;
+
+ //=== VK_EXT_acquire_drm_display ===
PFN_vkAcquireDrmDisplayEXT vkAcquireDrmDisplayEXT = 0;
-# if defined( VK_USE_PLATFORM_WIN32_KHR )
- PFN_vkAcquireWinrtDisplayNV vkAcquireWinrtDisplayNV = 0;
-# endif /*VK_USE_PLATFORM_WIN32_KHR*/
+ PFN_vkGetDrmDisplayEXT vkGetDrmDisplayEXT = 0;
+
# if defined( VK_USE_PLATFORM_XLIB_XRANDR_EXT )
- PFN_vkAcquireXlibDisplayEXT vkAcquireXlibDisplayEXT = 0;
+ //=== VK_EXT_acquire_xlib_display ===
+ PFN_vkAcquireXlibDisplayEXT vkAcquireXlibDisplayEXT = 0;
+ PFN_vkGetRandROutputDisplayEXT vkGetRandROutputDisplayEXT = 0;
+# else
+ PFN_dummy vkAcquireXlibDisplayEXT_placeholder = 0;
+ PFN_dummy vkGetRandROutputDisplayEXT_placeholder = 0;
# endif /*VK_USE_PLATFORM_XLIB_XRANDR_EXT*/
-# if defined( VK_USE_PLATFORM_ANDROID_KHR )
- PFN_vkCreateAndroidSurfaceKHR vkCreateAndroidSurfaceKHR = 0;
-# endif /*VK_USE_PLATFORM_ANDROID_KHR*/
- PFN_vkCreateDebugReportCallbackEXT vkCreateDebugReportCallbackEXT = 0;
- PFN_vkCreateDebugUtilsMessengerEXT vkCreateDebugUtilsMessengerEXT = 0;
- PFN_vkCreateDevice vkCreateDevice = 0;
+
+ //=== VK_EXT_calibrated_timestamps ===
+ PFN_vkGetPhysicalDeviceCalibrateableTimeDomainsEXT vkGetPhysicalDeviceCalibrateableTimeDomainsEXT = 0;
+
+ //=== VK_EXT_debug_report ===
+ PFN_vkCreateDebugReportCallbackEXT vkCreateDebugReportCallbackEXT = 0;
+ PFN_vkDestroyDebugReportCallbackEXT vkDestroyDebugReportCallbackEXT = 0;
+ PFN_vkDebugReportMessageEXT vkDebugReportMessageEXT = 0;
+
+ //=== VK_EXT_debug_utils ===
+ PFN_vkCreateDebugUtilsMessengerEXT vkCreateDebugUtilsMessengerEXT = 0;
+ PFN_vkDestroyDebugUtilsMessengerEXT vkDestroyDebugUtilsMessengerEXT = 0;
+ PFN_vkSubmitDebugUtilsMessageEXT vkSubmitDebugUtilsMessageEXT = 0;
+
+ //=== VK_EXT_direct_mode_display ===
+ PFN_vkReleaseDisplayEXT vkReleaseDisplayEXT = 0;
+
# if defined( VK_USE_PLATFORM_DIRECTFB_EXT )
- PFN_vkCreateDirectFBSurfaceEXT vkCreateDirectFBSurfaceEXT = 0;
+ //=== VK_EXT_directfb_surface ===
+ PFN_vkCreateDirectFBSurfaceEXT vkCreateDirectFBSurfaceEXT = 0;
+ PFN_vkGetPhysicalDeviceDirectFBPresentationSupportEXT vkGetPhysicalDeviceDirectFBPresentationSupportEXT = 0;
+# else
+ PFN_dummy vkCreateDirectFBSurfaceEXT_placeholder = 0;
+ PFN_dummy vkGetPhysicalDeviceDirectFBPresentationSupportEXT_placeholder = 0;
# endif /*VK_USE_PLATFORM_DIRECTFB_EXT*/
- PFN_vkCreateDisplayModeKHR vkCreateDisplayModeKHR = 0;
- PFN_vkCreateDisplayPlaneSurfaceKHR vkCreateDisplayPlaneSurfaceKHR = 0;
- PFN_vkCreateHeadlessSurfaceEXT vkCreateHeadlessSurfaceEXT = 0;
-# if defined( VK_USE_PLATFORM_IOS_MVK )
- PFN_vkCreateIOSSurfaceMVK vkCreateIOSSurfaceMVK = 0;
-# endif /*VK_USE_PLATFORM_IOS_MVK*/
-# if defined( VK_USE_PLATFORM_FUCHSIA )
- PFN_vkCreateImagePipeSurfaceFUCHSIA vkCreateImagePipeSurfaceFUCHSIA = 0;
-# endif /*VK_USE_PLATFORM_FUCHSIA*/
-# if defined( VK_USE_PLATFORM_MACOS_MVK )
- PFN_vkCreateMacOSSurfaceMVK vkCreateMacOSSurfaceMVK = 0;
-# endif /*VK_USE_PLATFORM_MACOS_MVK*/
+
+ //=== VK_EXT_display_surface_counter ===
+ PFN_vkGetPhysicalDeviceSurfaceCapabilities2EXT vkGetPhysicalDeviceSurfaceCapabilities2EXT = 0;
+
+# if defined( VK_USE_PLATFORM_WIN32_KHR )
+ //=== VK_EXT_full_screen_exclusive ===
+ PFN_vkGetPhysicalDeviceSurfacePresentModes2EXT vkGetPhysicalDeviceSurfacePresentModes2EXT = 0;
+# else
+ PFN_dummy vkGetPhysicalDeviceSurfacePresentModes2EXT_placeholder = 0;
+# endif /*VK_USE_PLATFORM_WIN32_KHR*/
+
+ //=== VK_EXT_headless_surface ===
+ PFN_vkCreateHeadlessSurfaceEXT vkCreateHeadlessSurfaceEXT = 0;
+
# if defined( VK_USE_PLATFORM_METAL_EXT )
+ //=== VK_EXT_metal_surface ===
PFN_vkCreateMetalSurfaceEXT vkCreateMetalSurfaceEXT = 0;
+# else
+ PFN_dummy vkCreateMetalSurfaceEXT_placeholder = 0;
# endif /*VK_USE_PLATFORM_METAL_EXT*/
-# if defined( VK_USE_PLATFORM_SCREEN_QNX )
- PFN_vkCreateScreenSurfaceQNX vkCreateScreenSurfaceQNX = 0;
-# endif /*VK_USE_PLATFORM_SCREEN_QNX*/
+
+ //=== VK_EXT_sample_locations ===
+ PFN_vkGetPhysicalDeviceMultisamplePropertiesEXT vkGetPhysicalDeviceMultisamplePropertiesEXT = 0;
+
+ //=== VK_EXT_tooling_info ===
+ PFN_vkGetPhysicalDeviceToolPropertiesEXT vkGetPhysicalDeviceToolPropertiesEXT = 0;
+
+# if defined( VK_USE_PLATFORM_FUCHSIA )
+ //=== VK_FUCHSIA_imagepipe_surface ===
+ PFN_vkCreateImagePipeSurfaceFUCHSIA vkCreateImagePipeSurfaceFUCHSIA = 0;
+# else
+ PFN_dummy vkCreateImagePipeSurfaceFUCHSIA_placeholder = 0;
+# endif /*VK_USE_PLATFORM_FUCHSIA*/
+
# if defined( VK_USE_PLATFORM_GGP )
+ //=== VK_GGP_stream_descriptor_surface ===
PFN_vkCreateStreamDescriptorSurfaceGGP vkCreateStreamDescriptorSurfaceGGP = 0;
+# else
+ PFN_dummy vkCreateStreamDescriptorSurfaceGGP_placeholder = 0;
# endif /*VK_USE_PLATFORM_GGP*/
-# if defined( VK_USE_PLATFORM_VI_NN )
- PFN_vkCreateViSurfaceNN vkCreateViSurfaceNN = 0;
-# endif /*VK_USE_PLATFORM_VI_NN*/
-# if defined( VK_USE_PLATFORM_WAYLAND_KHR )
- PFN_vkCreateWaylandSurfaceKHR vkCreateWaylandSurfaceKHR = 0;
-# endif /*VK_USE_PLATFORM_WAYLAND_KHR*/
-# if defined( VK_USE_PLATFORM_WIN32_KHR )
- PFN_vkCreateWin32SurfaceKHR vkCreateWin32SurfaceKHR = 0;
-# endif /*VK_USE_PLATFORM_WIN32_KHR*/
-# if defined( VK_USE_PLATFORM_XCB_KHR )
- PFN_vkCreateXcbSurfaceKHR vkCreateXcbSurfaceKHR = 0;
-# endif /*VK_USE_PLATFORM_XCB_KHR*/
-# if defined( VK_USE_PLATFORM_XLIB_KHR )
- PFN_vkCreateXlibSurfaceKHR vkCreateXlibSurfaceKHR = 0;
-# endif /*VK_USE_PLATFORM_XLIB_KHR*/
- PFN_vkDebugReportMessageEXT vkDebugReportMessageEXT = 0;
- PFN_vkDestroyDebugReportCallbackEXT vkDestroyDebugReportCallbackEXT = 0;
- PFN_vkDestroyDebugUtilsMessengerEXT vkDestroyDebugUtilsMessengerEXT = 0;
- PFN_vkDestroyInstance vkDestroyInstance = 0;
- PFN_vkDestroySurfaceKHR vkDestroySurfaceKHR = 0;
- PFN_vkEnumerateDeviceExtensionProperties vkEnumerateDeviceExtensionProperties = 0;
- PFN_vkEnumerateDeviceLayerProperties vkEnumerateDeviceLayerProperties = 0;
- PFN_vkEnumeratePhysicalDeviceGroups vkEnumeratePhysicalDeviceGroups = 0;
- PFN_vkEnumeratePhysicalDeviceGroupsKHR vkEnumeratePhysicalDeviceGroupsKHR = 0;
- PFN_vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR
- vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR = 0;
- PFN_vkEnumeratePhysicalDevices vkEnumeratePhysicalDevices = 0;
- PFN_vkGetDisplayModeProperties2KHR vkGetDisplayModeProperties2KHR = 0;
- PFN_vkGetDisplayModePropertiesKHR vkGetDisplayModePropertiesKHR = 0;
- PFN_vkGetDisplayPlaneCapabilities2KHR vkGetDisplayPlaneCapabilities2KHR = 0;
- PFN_vkGetDisplayPlaneCapabilitiesKHR vkGetDisplayPlaneCapabilitiesKHR = 0;
- PFN_vkGetDisplayPlaneSupportedDisplaysKHR vkGetDisplayPlaneSupportedDisplaysKHR = 0;
- PFN_vkGetDrmDisplayEXT vkGetDrmDisplayEXT = 0;
- PFN_vkGetInstanceProcAddr vkGetInstanceProcAddr = 0;
- PFN_vkGetPhysicalDeviceCalibrateableTimeDomainsEXT vkGetPhysicalDeviceCalibrateableTimeDomainsEXT = 0;
- PFN_vkGetPhysicalDeviceCooperativeMatrixPropertiesNV vkGetPhysicalDeviceCooperativeMatrixPropertiesNV = 0;
-# if defined( VK_USE_PLATFORM_DIRECTFB_EXT )
- PFN_vkGetPhysicalDeviceDirectFBPresentationSupportEXT vkGetPhysicalDeviceDirectFBPresentationSupportEXT = 0;
-# endif /*VK_USE_PLATFORM_DIRECTFB_EXT*/
- PFN_vkGetPhysicalDeviceDisplayPlaneProperties2KHR vkGetPhysicalDeviceDisplayPlaneProperties2KHR = 0;
- PFN_vkGetPhysicalDeviceDisplayPlanePropertiesKHR vkGetPhysicalDeviceDisplayPlanePropertiesKHR = 0;
- PFN_vkGetPhysicalDeviceDisplayProperties2KHR vkGetPhysicalDeviceDisplayProperties2KHR = 0;
- PFN_vkGetPhysicalDeviceDisplayPropertiesKHR vkGetPhysicalDeviceDisplayPropertiesKHR = 0;
- PFN_vkGetPhysicalDeviceExternalBufferProperties vkGetPhysicalDeviceExternalBufferProperties = 0;
- PFN_vkGetPhysicalDeviceExternalBufferPropertiesKHR vkGetPhysicalDeviceExternalBufferPropertiesKHR = 0;
- PFN_vkGetPhysicalDeviceExternalFenceProperties vkGetPhysicalDeviceExternalFenceProperties = 0;
- PFN_vkGetPhysicalDeviceExternalFencePropertiesKHR vkGetPhysicalDeviceExternalFencePropertiesKHR = 0;
- PFN_vkGetPhysicalDeviceExternalImageFormatPropertiesNV vkGetPhysicalDeviceExternalImageFormatPropertiesNV = 0;
- PFN_vkGetPhysicalDeviceExternalSemaphoreProperties vkGetPhysicalDeviceExternalSemaphoreProperties = 0;
- PFN_vkGetPhysicalDeviceExternalSemaphorePropertiesKHR vkGetPhysicalDeviceExternalSemaphorePropertiesKHR = 0;
- PFN_vkGetPhysicalDeviceFeatures vkGetPhysicalDeviceFeatures = 0;
- PFN_vkGetPhysicalDeviceFeatures2 vkGetPhysicalDeviceFeatures2 = 0;
+
+# if defined( VK_USE_PLATFORM_ANDROID_KHR )
+ //=== VK_KHR_android_surface ===
+ PFN_vkCreateAndroidSurfaceKHR vkCreateAndroidSurfaceKHR = 0;
+# else
+ PFN_dummy vkCreateAndroidSurfaceKHR_placeholder = 0;
+# endif /*VK_USE_PLATFORM_ANDROID_KHR*/
+
+ //=== VK_KHR_device_group ===
+ PFN_vkGetPhysicalDevicePresentRectanglesKHR vkGetPhysicalDevicePresentRectanglesKHR = 0;
+
+ //=== VK_KHR_device_group_creation ===
+ PFN_vkEnumeratePhysicalDeviceGroupsKHR vkEnumeratePhysicalDeviceGroupsKHR = 0;
+
+ //=== VK_KHR_display ===
+ PFN_vkGetPhysicalDeviceDisplayPropertiesKHR vkGetPhysicalDeviceDisplayPropertiesKHR = 0;
+ PFN_vkGetPhysicalDeviceDisplayPlanePropertiesKHR vkGetPhysicalDeviceDisplayPlanePropertiesKHR = 0;
+ PFN_vkGetDisplayPlaneSupportedDisplaysKHR vkGetDisplayPlaneSupportedDisplaysKHR = 0;
+ PFN_vkGetDisplayModePropertiesKHR vkGetDisplayModePropertiesKHR = 0;
+ PFN_vkCreateDisplayModeKHR vkCreateDisplayModeKHR = 0;
+ PFN_vkGetDisplayPlaneCapabilitiesKHR vkGetDisplayPlaneCapabilitiesKHR = 0;
+ PFN_vkCreateDisplayPlaneSurfaceKHR vkCreateDisplayPlaneSurfaceKHR = 0;
+
+ //=== VK_KHR_external_fence_capabilities ===
+ PFN_vkGetPhysicalDeviceExternalFencePropertiesKHR vkGetPhysicalDeviceExternalFencePropertiesKHR = 0;
+
+ //=== VK_KHR_external_memory_capabilities ===
+ PFN_vkGetPhysicalDeviceExternalBufferPropertiesKHR vkGetPhysicalDeviceExternalBufferPropertiesKHR = 0;
+
+ //=== VK_KHR_external_semaphore_capabilities ===
+ PFN_vkGetPhysicalDeviceExternalSemaphorePropertiesKHR vkGetPhysicalDeviceExternalSemaphorePropertiesKHR = 0;
+
+ //=== VK_KHR_fragment_shading_rate ===
+ PFN_vkGetPhysicalDeviceFragmentShadingRatesKHR vkGetPhysicalDeviceFragmentShadingRatesKHR = 0;
+
+ //=== VK_KHR_get_display_properties2 ===
+ PFN_vkGetPhysicalDeviceDisplayProperties2KHR vkGetPhysicalDeviceDisplayProperties2KHR = 0;
+ PFN_vkGetPhysicalDeviceDisplayPlaneProperties2KHR vkGetPhysicalDeviceDisplayPlaneProperties2KHR = 0;
+ PFN_vkGetDisplayModeProperties2KHR vkGetDisplayModeProperties2KHR = 0;
+ PFN_vkGetDisplayPlaneCapabilities2KHR vkGetDisplayPlaneCapabilities2KHR = 0;
+
+ //=== VK_KHR_get_physical_device_properties2 ===
PFN_vkGetPhysicalDeviceFeatures2KHR vkGetPhysicalDeviceFeatures2KHR = 0;
- PFN_vkGetPhysicalDeviceFormatProperties vkGetPhysicalDeviceFormatProperties = 0;
- PFN_vkGetPhysicalDeviceFormatProperties2 vkGetPhysicalDeviceFormatProperties2 = 0;
+ PFN_vkGetPhysicalDeviceProperties2KHR vkGetPhysicalDeviceProperties2KHR = 0;
PFN_vkGetPhysicalDeviceFormatProperties2KHR vkGetPhysicalDeviceFormatProperties2KHR = 0;
- PFN_vkGetPhysicalDeviceFragmentShadingRatesKHR vkGetPhysicalDeviceFragmentShadingRatesKHR = 0;
- PFN_vkGetPhysicalDeviceImageFormatProperties vkGetPhysicalDeviceImageFormatProperties = 0;
- PFN_vkGetPhysicalDeviceImageFormatProperties2 vkGetPhysicalDeviceImageFormatProperties2 = 0;
PFN_vkGetPhysicalDeviceImageFormatProperties2KHR vkGetPhysicalDeviceImageFormatProperties2KHR = 0;
- PFN_vkGetPhysicalDeviceMemoryProperties vkGetPhysicalDeviceMemoryProperties = 0;
- PFN_vkGetPhysicalDeviceMemoryProperties2 vkGetPhysicalDeviceMemoryProperties2 = 0;
+ PFN_vkGetPhysicalDeviceQueueFamilyProperties2KHR vkGetPhysicalDeviceQueueFamilyProperties2KHR = 0;
PFN_vkGetPhysicalDeviceMemoryProperties2KHR vkGetPhysicalDeviceMemoryProperties2KHR = 0;
- PFN_vkGetPhysicalDeviceMultisamplePropertiesEXT vkGetPhysicalDeviceMultisamplePropertiesEXT = 0;
- PFN_vkGetPhysicalDevicePresentRectanglesKHR vkGetPhysicalDevicePresentRectanglesKHR = 0;
- PFN_vkGetPhysicalDeviceProperties vkGetPhysicalDeviceProperties = 0;
- PFN_vkGetPhysicalDeviceProperties2 vkGetPhysicalDeviceProperties2 = 0;
- PFN_vkGetPhysicalDeviceProperties2KHR vkGetPhysicalDeviceProperties2KHR = 0;
- PFN_vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR
- vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR = 0;
- PFN_vkGetPhysicalDeviceQueueFamilyProperties vkGetPhysicalDeviceQueueFamilyProperties = 0;
- PFN_vkGetPhysicalDeviceQueueFamilyProperties2 vkGetPhysicalDeviceQueueFamilyProperties2 = 0;
- PFN_vkGetPhysicalDeviceQueueFamilyProperties2KHR vkGetPhysicalDeviceQueueFamilyProperties2KHR = 0;
-# if defined( VK_USE_PLATFORM_SCREEN_QNX )
- PFN_vkGetPhysicalDeviceScreenPresentationSupportQNX vkGetPhysicalDeviceScreenPresentationSupportQNX = 0;
-# endif /*VK_USE_PLATFORM_SCREEN_QNX*/
- PFN_vkGetPhysicalDeviceSparseImageFormatProperties vkGetPhysicalDeviceSparseImageFormatProperties = 0;
- PFN_vkGetPhysicalDeviceSparseImageFormatProperties2 vkGetPhysicalDeviceSparseImageFormatProperties2 = 0;
PFN_vkGetPhysicalDeviceSparseImageFormatProperties2KHR vkGetPhysicalDeviceSparseImageFormatProperties2KHR = 0;
- PFN_vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV
- vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV = 0;
- PFN_vkGetPhysicalDeviceSurfaceCapabilities2EXT vkGetPhysicalDeviceSurfaceCapabilities2EXT = 0;
+
+ //=== VK_KHR_get_surface_capabilities2 ===
PFN_vkGetPhysicalDeviceSurfaceCapabilities2KHR vkGetPhysicalDeviceSurfaceCapabilities2KHR = 0;
- PFN_vkGetPhysicalDeviceSurfaceCapabilitiesKHR vkGetPhysicalDeviceSurfaceCapabilitiesKHR = 0;
PFN_vkGetPhysicalDeviceSurfaceFormats2KHR vkGetPhysicalDeviceSurfaceFormats2KHR = 0;
- PFN_vkGetPhysicalDeviceSurfaceFormatsKHR vkGetPhysicalDeviceSurfaceFormatsKHR = 0;
-# if defined( VK_USE_PLATFORM_WIN32_KHR )
- PFN_vkGetPhysicalDeviceSurfacePresentModes2EXT vkGetPhysicalDeviceSurfacePresentModes2EXT = 0;
-# endif /*VK_USE_PLATFORM_WIN32_KHR*/
- PFN_vkGetPhysicalDeviceSurfacePresentModesKHR vkGetPhysicalDeviceSurfacePresentModesKHR = 0;
+
+ //=== VK_KHR_performance_query ===
+ PFN_vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR
+ vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR = 0;
+ PFN_vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR
+ vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR = 0;
+
+ //=== VK_KHR_surface ===
+ PFN_vkDestroySurfaceKHR vkDestroySurfaceKHR = 0;
PFN_vkGetPhysicalDeviceSurfaceSupportKHR vkGetPhysicalDeviceSurfaceSupportKHR = 0;
- PFN_vkGetPhysicalDeviceToolPropertiesEXT vkGetPhysicalDeviceToolPropertiesEXT = 0;
-# if defined( VK_ENABLE_BETA_EXTENSIONS )
- PFN_vkGetPhysicalDeviceVideoCapabilitiesKHR vkGetPhysicalDeviceVideoCapabilitiesKHR = 0;
-# endif /*VK_ENABLE_BETA_EXTENSIONS*/
+ PFN_vkGetPhysicalDeviceSurfaceCapabilitiesKHR vkGetPhysicalDeviceSurfaceCapabilitiesKHR = 0;
+ PFN_vkGetPhysicalDeviceSurfaceFormatsKHR vkGetPhysicalDeviceSurfaceFormatsKHR = 0;
+ PFN_vkGetPhysicalDeviceSurfacePresentModesKHR vkGetPhysicalDeviceSurfacePresentModesKHR = 0;
+
# if defined( VK_ENABLE_BETA_EXTENSIONS )
+ //=== VK_KHR_video_queue ===
+ PFN_vkGetPhysicalDeviceVideoCapabilitiesKHR vkGetPhysicalDeviceVideoCapabilitiesKHR = 0;
PFN_vkGetPhysicalDeviceVideoFormatPropertiesKHR vkGetPhysicalDeviceVideoFormatPropertiesKHR = 0;
+# else
+ PFN_dummy vkGetPhysicalDeviceVideoCapabilitiesKHR_placeholder = 0;
+ PFN_dummy vkGetPhysicalDeviceVideoFormatPropertiesKHR_placeholder = 0;
# endif /*VK_ENABLE_BETA_EXTENSIONS*/
+
# if defined( VK_USE_PLATFORM_WAYLAND_KHR )
+ //=== VK_KHR_wayland_surface ===
+ PFN_vkCreateWaylandSurfaceKHR vkCreateWaylandSurfaceKHR = 0;
PFN_vkGetPhysicalDeviceWaylandPresentationSupportKHR vkGetPhysicalDeviceWaylandPresentationSupportKHR = 0;
+# else
+ PFN_dummy vkCreateWaylandSurfaceKHR_placeholder = 0;
+ PFN_dummy vkGetPhysicalDeviceWaylandPresentationSupportKHR_placeholder = 0;
# endif /*VK_USE_PLATFORM_WAYLAND_KHR*/
+
# if defined( VK_USE_PLATFORM_WIN32_KHR )
+ //=== VK_KHR_win32_surface ===
+ PFN_vkCreateWin32SurfaceKHR vkCreateWin32SurfaceKHR = 0;
PFN_vkGetPhysicalDeviceWin32PresentationSupportKHR vkGetPhysicalDeviceWin32PresentationSupportKHR = 0;
+# else
+ PFN_dummy vkCreateWin32SurfaceKHR_placeholder = 0;
+ PFN_dummy vkGetPhysicalDeviceWin32PresentationSupportKHR_placeholder = 0;
# endif /*VK_USE_PLATFORM_WIN32_KHR*/
+
# if defined( VK_USE_PLATFORM_XCB_KHR )
+ //=== VK_KHR_xcb_surface ===
+ PFN_vkCreateXcbSurfaceKHR vkCreateXcbSurfaceKHR = 0;
PFN_vkGetPhysicalDeviceXcbPresentationSupportKHR vkGetPhysicalDeviceXcbPresentationSupportKHR = 0;
+# else
+ PFN_dummy vkCreateXcbSurfaceKHR_placeholder = 0;
+ PFN_dummy vkGetPhysicalDeviceXcbPresentationSupportKHR_placeholder = 0;
# endif /*VK_USE_PLATFORM_XCB_KHR*/
+
# if defined( VK_USE_PLATFORM_XLIB_KHR )
+ //=== VK_KHR_xlib_surface ===
+ PFN_vkCreateXlibSurfaceKHR vkCreateXlibSurfaceKHR = 0;
PFN_vkGetPhysicalDeviceXlibPresentationSupportKHR vkGetPhysicalDeviceXlibPresentationSupportKHR = 0;
+# else
+ PFN_dummy vkCreateXlibSurfaceKHR_placeholder = 0;
+ PFN_dummy vkGetPhysicalDeviceXlibPresentationSupportKHR_placeholder = 0;
# endif /*VK_USE_PLATFORM_XLIB_KHR*/
-# if defined( VK_USE_PLATFORM_XLIB_XRANDR_EXT )
- PFN_vkGetRandROutputDisplayEXT vkGetRandROutputDisplayEXT = 0;
-# endif /*VK_USE_PLATFORM_XLIB_XRANDR_EXT*/
+
+# if defined( VK_USE_PLATFORM_IOS_MVK )
+ //=== VK_MVK_ios_surface ===
+ PFN_vkCreateIOSSurfaceMVK vkCreateIOSSurfaceMVK = 0;
+# else
+ PFN_dummy vkCreateIOSSurfaceMVK_placeholder = 0;
+# endif /*VK_USE_PLATFORM_IOS_MVK*/
+
+# if defined( VK_USE_PLATFORM_MACOS_MVK )
+ //=== VK_MVK_macos_surface ===
+ PFN_vkCreateMacOSSurfaceMVK vkCreateMacOSSurfaceMVK = 0;
+# else
+ PFN_dummy vkCreateMacOSSurfaceMVK_placeholder = 0;
+# endif /*VK_USE_PLATFORM_MACOS_MVK*/
+
+# if defined( VK_USE_PLATFORM_VI_NN )
+ //=== VK_NN_vi_surface ===
+ PFN_vkCreateViSurfaceNN vkCreateViSurfaceNN = 0;
+# else
+ PFN_dummy vkCreateViSurfaceNN_placeholder = 0;
+# endif /*VK_USE_PLATFORM_VI_NN*/
+
# if defined( VK_USE_PLATFORM_WIN32_KHR )
- PFN_vkGetWinrtDisplayNV vkGetWinrtDisplayNV = 0;
+ //=== VK_NV_acquire_winrt_display ===
+ PFN_vkAcquireWinrtDisplayNV vkAcquireWinrtDisplayNV = 0;
+ PFN_vkGetWinrtDisplayNV vkGetWinrtDisplayNV = 0;
+# else
+ PFN_dummy vkAcquireWinrtDisplayNV_placeholder = 0;
+ PFN_dummy vkGetWinrtDisplayNV_placeholder = 0;
# endif /*VK_USE_PLATFORM_WIN32_KHR*/
- PFN_vkReleaseDisplayEXT vkReleaseDisplayEXT = 0;
- PFN_vkSubmitDebugUtilsMessageEXT vkSubmitDebugUtilsMessageEXT = 0;
+
+ //=== VK_NV_cooperative_matrix ===
+ PFN_vkGetPhysicalDeviceCooperativeMatrixPropertiesNV vkGetPhysicalDeviceCooperativeMatrixPropertiesNV = 0;
+
+ //=== VK_NV_coverage_reduction_mode ===
+ PFN_vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV
+ vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV = 0;
+
+ //=== VK_NV_external_memory_capabilities ===
+ PFN_vkGetPhysicalDeviceExternalImageFormatPropertiesNV vkGetPhysicalDeviceExternalImageFormatPropertiesNV = 0;
+
+# if defined( VK_USE_PLATFORM_SCREEN_QNX )
+ //=== VK_QNX_screen_surface ===
+ PFN_vkCreateScreenSurfaceQNX vkCreateScreenSurfaceQNX = 0;
+ PFN_vkGetPhysicalDeviceScreenPresentationSupportQNX vkGetPhysicalDeviceScreenPresentationSupportQNX = 0;
+# else
+ PFN_dummy vkCreateScreenSurfaceQNX_placeholder = 0;
+ PFN_dummy vkGetPhysicalDeviceScreenPresentationSupportQNX_placeholder = 0;
+# endif /*VK_USE_PLATFORM_SCREEN_QNX*/
PFN_vkGetDeviceProcAddr vkGetDeviceProcAddr = 0;
};
- class DeviceDispatcher
+ class DeviceDispatcher : public DispatchLoaderBase
{
public:
DeviceDispatcher( PFN_vkGetDeviceProcAddr getProcAddr ) : vkGetDeviceProcAddr( getProcAddr ) {}
+# if defined( VULKAN_HPP_RAII_ENABLE_DEFAULT_CONSTRUCTORS )
+ DeviceDispatcher() = default;
+# endif
+
void init( VkDevice device )
{
-# if defined( VK_USE_PLATFORM_WIN32_KHR )
- vkAcquireFullScreenExclusiveModeEXT = PFN_vkAcquireFullScreenExclusiveModeEXT(
- vkGetDeviceProcAddr( device, "vkAcquireFullScreenExclusiveModeEXT" ) );
-# endif /*VK_USE_PLATFORM_WIN32_KHR*/
- vkAcquireNextImage2KHR = PFN_vkAcquireNextImage2KHR( vkGetDeviceProcAddr( device, "vkAcquireNextImage2KHR" ) );
- vkAcquireNextImageKHR = PFN_vkAcquireNextImageKHR( vkGetDeviceProcAddr( device, "vkAcquireNextImageKHR" ) );
- vkAcquirePerformanceConfigurationINTEL = PFN_vkAcquirePerformanceConfigurationINTEL(
- vkGetDeviceProcAddr( device, "vkAcquirePerformanceConfigurationINTEL" ) );
- vkAcquireProfilingLockKHR =
- PFN_vkAcquireProfilingLockKHR( vkGetDeviceProcAddr( device, "vkAcquireProfilingLockKHR" ) );
- vkAllocateCommandBuffers =
- PFN_vkAllocateCommandBuffers( vkGetDeviceProcAddr( device, "vkAllocateCommandBuffers" ) );
+ //=== VK_VERSION_1_0 ===
+ vkGetDeviceProcAddr = PFN_vkGetDeviceProcAddr( vkGetDeviceProcAddr( device, "vkGetDeviceProcAddr" ) );
+ vkDestroyDevice = PFN_vkDestroyDevice( vkGetDeviceProcAddr( device, "vkDestroyDevice" ) );
+ vkGetDeviceQueue = PFN_vkGetDeviceQueue( vkGetDeviceProcAddr( device, "vkGetDeviceQueue" ) );
+ vkQueueSubmit = PFN_vkQueueSubmit( vkGetDeviceProcAddr( device, "vkQueueSubmit" ) );
+ vkQueueWaitIdle = PFN_vkQueueWaitIdle( vkGetDeviceProcAddr( device, "vkQueueWaitIdle" ) );
+ vkDeviceWaitIdle = PFN_vkDeviceWaitIdle( vkGetDeviceProcAddr( device, "vkDeviceWaitIdle" ) );
+ vkAllocateMemory = PFN_vkAllocateMemory( vkGetDeviceProcAddr( device, "vkAllocateMemory" ) );
+ vkFreeMemory = PFN_vkFreeMemory( vkGetDeviceProcAddr( device, "vkFreeMemory" ) );
+ vkMapMemory = PFN_vkMapMemory( vkGetDeviceProcAddr( device, "vkMapMemory" ) );
+ vkUnmapMemory = PFN_vkUnmapMemory( vkGetDeviceProcAddr( device, "vkUnmapMemory" ) );
+ vkFlushMappedMemoryRanges =
+ PFN_vkFlushMappedMemoryRanges( vkGetDeviceProcAddr( device, "vkFlushMappedMemoryRanges" ) );
+ vkInvalidateMappedMemoryRanges =
+ PFN_vkInvalidateMappedMemoryRanges( vkGetDeviceProcAddr( device, "vkInvalidateMappedMemoryRanges" ) );
+ vkGetDeviceMemoryCommitment =
+ PFN_vkGetDeviceMemoryCommitment( vkGetDeviceProcAddr( device, "vkGetDeviceMemoryCommitment" ) );
+ vkBindBufferMemory = PFN_vkBindBufferMemory( vkGetDeviceProcAddr( device, "vkBindBufferMemory" ) );
+ vkBindImageMemory = PFN_vkBindImageMemory( vkGetDeviceProcAddr( device, "vkBindImageMemory" ) );
+ vkGetBufferMemoryRequirements =
+ PFN_vkGetBufferMemoryRequirements( vkGetDeviceProcAddr( device, "vkGetBufferMemoryRequirements" ) );
+ vkGetImageMemoryRequirements =
+ PFN_vkGetImageMemoryRequirements( vkGetDeviceProcAddr( device, "vkGetImageMemoryRequirements" ) );
+ vkGetImageSparseMemoryRequirements =
+ PFN_vkGetImageSparseMemoryRequirements( vkGetDeviceProcAddr( device, "vkGetImageSparseMemoryRequirements" ) );
+ vkQueueBindSparse = PFN_vkQueueBindSparse( vkGetDeviceProcAddr( device, "vkQueueBindSparse" ) );
+ vkCreateFence = PFN_vkCreateFence( vkGetDeviceProcAddr( device, "vkCreateFence" ) );
+ vkDestroyFence = PFN_vkDestroyFence( vkGetDeviceProcAddr( device, "vkDestroyFence" ) );
+ vkResetFences = PFN_vkResetFences( vkGetDeviceProcAddr( device, "vkResetFences" ) );
+ vkGetFenceStatus = PFN_vkGetFenceStatus( vkGetDeviceProcAddr( device, "vkGetFenceStatus" ) );
+ vkWaitForFences = PFN_vkWaitForFences( vkGetDeviceProcAddr( device, "vkWaitForFences" ) );
+ vkCreateSemaphore = PFN_vkCreateSemaphore( vkGetDeviceProcAddr( device, "vkCreateSemaphore" ) );
+ vkDestroySemaphore = PFN_vkDestroySemaphore( vkGetDeviceProcAddr( device, "vkDestroySemaphore" ) );
+ vkCreateEvent = PFN_vkCreateEvent( vkGetDeviceProcAddr( device, "vkCreateEvent" ) );
+ vkDestroyEvent = PFN_vkDestroyEvent( vkGetDeviceProcAddr( device, "vkDestroyEvent" ) );
+ vkGetEventStatus = PFN_vkGetEventStatus( vkGetDeviceProcAddr( device, "vkGetEventStatus" ) );
+ vkSetEvent = PFN_vkSetEvent( vkGetDeviceProcAddr( device, "vkSetEvent" ) );
+ vkResetEvent = PFN_vkResetEvent( vkGetDeviceProcAddr( device, "vkResetEvent" ) );
+ vkCreateQueryPool = PFN_vkCreateQueryPool( vkGetDeviceProcAddr( device, "vkCreateQueryPool" ) );
+ vkDestroyQueryPool = PFN_vkDestroyQueryPool( vkGetDeviceProcAddr( device, "vkDestroyQueryPool" ) );
+ vkGetQueryPoolResults = PFN_vkGetQueryPoolResults( vkGetDeviceProcAddr( device, "vkGetQueryPoolResults" ) );
+ vkCreateBuffer = PFN_vkCreateBuffer( vkGetDeviceProcAddr( device, "vkCreateBuffer" ) );
+ vkDestroyBuffer = PFN_vkDestroyBuffer( vkGetDeviceProcAddr( device, "vkDestroyBuffer" ) );
+ vkCreateBufferView = PFN_vkCreateBufferView( vkGetDeviceProcAddr( device, "vkCreateBufferView" ) );
+ vkDestroyBufferView = PFN_vkDestroyBufferView( vkGetDeviceProcAddr( device, "vkDestroyBufferView" ) );
+ vkCreateImage = PFN_vkCreateImage( vkGetDeviceProcAddr( device, "vkCreateImage" ) );
+ vkDestroyImage = PFN_vkDestroyImage( vkGetDeviceProcAddr( device, "vkDestroyImage" ) );
+ vkGetImageSubresourceLayout =
+ PFN_vkGetImageSubresourceLayout( vkGetDeviceProcAddr( device, "vkGetImageSubresourceLayout" ) );
+ vkCreateImageView = PFN_vkCreateImageView( vkGetDeviceProcAddr( device, "vkCreateImageView" ) );
+ vkDestroyImageView = PFN_vkDestroyImageView( vkGetDeviceProcAddr( device, "vkDestroyImageView" ) );
+ vkCreateShaderModule = PFN_vkCreateShaderModule( vkGetDeviceProcAddr( device, "vkCreateShaderModule" ) );
+ vkDestroyShaderModule = PFN_vkDestroyShaderModule( vkGetDeviceProcAddr( device, "vkDestroyShaderModule" ) );
+ vkCreatePipelineCache = PFN_vkCreatePipelineCache( vkGetDeviceProcAddr( device, "vkCreatePipelineCache" ) );
+ vkDestroyPipelineCache = PFN_vkDestroyPipelineCache( vkGetDeviceProcAddr( device, "vkDestroyPipelineCache" ) );
+ vkGetPipelineCacheData = PFN_vkGetPipelineCacheData( vkGetDeviceProcAddr( device, "vkGetPipelineCacheData" ) );
+ vkMergePipelineCaches = PFN_vkMergePipelineCaches( vkGetDeviceProcAddr( device, "vkMergePipelineCaches" ) );
+ vkCreateGraphicsPipelines =
+ PFN_vkCreateGraphicsPipelines( vkGetDeviceProcAddr( device, "vkCreateGraphicsPipelines" ) );
+ vkCreateComputePipelines =
+ PFN_vkCreateComputePipelines( vkGetDeviceProcAddr( device, "vkCreateComputePipelines" ) );
+ vkDestroyPipeline = PFN_vkDestroyPipeline( vkGetDeviceProcAddr( device, "vkDestroyPipeline" ) );
+ vkCreatePipelineLayout = PFN_vkCreatePipelineLayout( vkGetDeviceProcAddr( device, "vkCreatePipelineLayout" ) );
+ vkDestroyPipelineLayout =
+ PFN_vkDestroyPipelineLayout( vkGetDeviceProcAddr( device, "vkDestroyPipelineLayout" ) );
+ vkCreateSampler = PFN_vkCreateSampler( vkGetDeviceProcAddr( device, "vkCreateSampler" ) );
+ vkDestroySampler = PFN_vkDestroySampler( vkGetDeviceProcAddr( device, "vkDestroySampler" ) );
+ vkCreateDescriptorSetLayout =
+ PFN_vkCreateDescriptorSetLayout( vkGetDeviceProcAddr( device, "vkCreateDescriptorSetLayout" ) );
+ vkDestroyDescriptorSetLayout =
+ PFN_vkDestroyDescriptorSetLayout( vkGetDeviceProcAddr( device, "vkDestroyDescriptorSetLayout" ) );
+ vkCreateDescriptorPool = PFN_vkCreateDescriptorPool( vkGetDeviceProcAddr( device, "vkCreateDescriptorPool" ) );
+ vkDestroyDescriptorPool =
+ PFN_vkDestroyDescriptorPool( vkGetDeviceProcAddr( device, "vkDestroyDescriptorPool" ) );
+ vkResetDescriptorPool = PFN_vkResetDescriptorPool( vkGetDeviceProcAddr( device, "vkResetDescriptorPool" ) );
vkAllocateDescriptorSets =
PFN_vkAllocateDescriptorSets( vkGetDeviceProcAddr( device, "vkAllocateDescriptorSets" ) );
- vkAllocateMemory = PFN_vkAllocateMemory( vkGetDeviceProcAddr( device, "vkAllocateMemory" ) );
- vkBeginCommandBuffer = PFN_vkBeginCommandBuffer( vkGetDeviceProcAddr( device, "vkBeginCommandBuffer" ) );
- vkBindAccelerationStructureMemoryNV = PFN_vkBindAccelerationStructureMemoryNV(
- vkGetDeviceProcAddr( device, "vkBindAccelerationStructureMemoryNV" ) );
- vkBindBufferMemory = PFN_vkBindBufferMemory( vkGetDeviceProcAddr( device, "vkBindBufferMemory" ) );
- vkBindBufferMemory2 = PFN_vkBindBufferMemory2( vkGetDeviceProcAddr( device, "vkBindBufferMemory2" ) );
- vkBindBufferMemory2KHR = PFN_vkBindBufferMemory2KHR( vkGetDeviceProcAddr( device, "vkBindBufferMemory2KHR" ) );
- if ( !vkBindBufferMemory2 )
- vkBindBufferMemory2 = vkBindBufferMemory2KHR;
- vkBindImageMemory = PFN_vkBindImageMemory( vkGetDeviceProcAddr( device, "vkBindImageMemory" ) );
- vkBindImageMemory2 = PFN_vkBindImageMemory2( vkGetDeviceProcAddr( device, "vkBindImageMemory2" ) );
- vkBindImageMemory2KHR = PFN_vkBindImageMemory2KHR( vkGetDeviceProcAddr( device, "vkBindImageMemory2KHR" ) );
- if ( !vkBindImageMemory2 )
- vkBindImageMemory2 = vkBindImageMemory2KHR;
-# if defined( VK_ENABLE_BETA_EXTENSIONS )
- vkBindVideoSessionMemoryKHR =
- PFN_vkBindVideoSessionMemoryKHR( vkGetDeviceProcAddr( device, "vkBindVideoSessionMemoryKHR" ) );
-# endif /*VK_ENABLE_BETA_EXTENSIONS*/
- vkBuildAccelerationStructuresKHR =
- PFN_vkBuildAccelerationStructuresKHR( vkGetDeviceProcAddr( device, "vkBuildAccelerationStructuresKHR" ) );
- vkCmdBeginConditionalRenderingEXT =
- PFN_vkCmdBeginConditionalRenderingEXT( vkGetDeviceProcAddr( device, "vkCmdBeginConditionalRenderingEXT" ) );
- vkCmdBeginDebugUtilsLabelEXT =
- PFN_vkCmdBeginDebugUtilsLabelEXT( vkGetDeviceProcAddr( device, "vkCmdBeginDebugUtilsLabelEXT" ) );
- vkCmdBeginQuery = PFN_vkCmdBeginQuery( vkGetDeviceProcAddr( device, "vkCmdBeginQuery" ) );
- vkCmdBeginQueryIndexedEXT =
- PFN_vkCmdBeginQueryIndexedEXT( vkGetDeviceProcAddr( device, "vkCmdBeginQueryIndexedEXT" ) );
- vkCmdBeginRenderPass = PFN_vkCmdBeginRenderPass( vkGetDeviceProcAddr( device, "vkCmdBeginRenderPass" ) );
- vkCmdBeginRenderPass2 = PFN_vkCmdBeginRenderPass2( vkGetDeviceProcAddr( device, "vkCmdBeginRenderPass2" ) );
- vkCmdBeginRenderPass2KHR =
- PFN_vkCmdBeginRenderPass2KHR( vkGetDeviceProcAddr( device, "vkCmdBeginRenderPass2KHR" ) );
- if ( !vkCmdBeginRenderPass2 )
- vkCmdBeginRenderPass2 = vkCmdBeginRenderPass2KHR;
- vkCmdBeginTransformFeedbackEXT =
- PFN_vkCmdBeginTransformFeedbackEXT( vkGetDeviceProcAddr( device, "vkCmdBeginTransformFeedbackEXT" ) );
-# if defined( VK_ENABLE_BETA_EXTENSIONS )
- vkCmdBeginVideoCodingKHR =
- PFN_vkCmdBeginVideoCodingKHR( vkGetDeviceProcAddr( device, "vkCmdBeginVideoCodingKHR" ) );
-# endif /*VK_ENABLE_BETA_EXTENSIONS*/
+ vkFreeDescriptorSets = PFN_vkFreeDescriptorSets( vkGetDeviceProcAddr( device, "vkFreeDescriptorSets" ) );
+ vkUpdateDescriptorSets = PFN_vkUpdateDescriptorSets( vkGetDeviceProcAddr( device, "vkUpdateDescriptorSets" ) );
+ vkCreateFramebuffer = PFN_vkCreateFramebuffer( vkGetDeviceProcAddr( device, "vkCreateFramebuffer" ) );
+ vkDestroyFramebuffer = PFN_vkDestroyFramebuffer( vkGetDeviceProcAddr( device, "vkDestroyFramebuffer" ) );
+ vkCreateRenderPass = PFN_vkCreateRenderPass( vkGetDeviceProcAddr( device, "vkCreateRenderPass" ) );
+ vkDestroyRenderPass = PFN_vkDestroyRenderPass( vkGetDeviceProcAddr( device, "vkDestroyRenderPass" ) );
+ vkGetRenderAreaGranularity =
+ PFN_vkGetRenderAreaGranularity( vkGetDeviceProcAddr( device, "vkGetRenderAreaGranularity" ) );
+ vkCreateCommandPool = PFN_vkCreateCommandPool( vkGetDeviceProcAddr( device, "vkCreateCommandPool" ) );
+ vkDestroyCommandPool = PFN_vkDestroyCommandPool( vkGetDeviceProcAddr( device, "vkDestroyCommandPool" ) );
+ vkResetCommandPool = PFN_vkResetCommandPool( vkGetDeviceProcAddr( device, "vkResetCommandPool" ) );
+ vkAllocateCommandBuffers =
+ PFN_vkAllocateCommandBuffers( vkGetDeviceProcAddr( device, "vkAllocateCommandBuffers" ) );
+ vkFreeCommandBuffers = PFN_vkFreeCommandBuffers( vkGetDeviceProcAddr( device, "vkFreeCommandBuffers" ) );
+ vkBeginCommandBuffer = PFN_vkBeginCommandBuffer( vkGetDeviceProcAddr( device, "vkBeginCommandBuffer" ) );
+ vkEndCommandBuffer = PFN_vkEndCommandBuffer( vkGetDeviceProcAddr( device, "vkEndCommandBuffer" ) );
+ vkResetCommandBuffer = PFN_vkResetCommandBuffer( vkGetDeviceProcAddr( device, "vkResetCommandBuffer" ) );
+ vkCmdBindPipeline = PFN_vkCmdBindPipeline( vkGetDeviceProcAddr( device, "vkCmdBindPipeline" ) );
+ vkCmdSetViewport = PFN_vkCmdSetViewport( vkGetDeviceProcAddr( device, "vkCmdSetViewport" ) );
+ vkCmdSetScissor = PFN_vkCmdSetScissor( vkGetDeviceProcAddr( device, "vkCmdSetScissor" ) );
+ vkCmdSetLineWidth = PFN_vkCmdSetLineWidth( vkGetDeviceProcAddr( device, "vkCmdSetLineWidth" ) );
+ vkCmdSetDepthBias = PFN_vkCmdSetDepthBias( vkGetDeviceProcAddr( device, "vkCmdSetDepthBias" ) );
+ vkCmdSetBlendConstants = PFN_vkCmdSetBlendConstants( vkGetDeviceProcAddr( device, "vkCmdSetBlendConstants" ) );
+ vkCmdSetDepthBounds = PFN_vkCmdSetDepthBounds( vkGetDeviceProcAddr( device, "vkCmdSetDepthBounds" ) );
+ vkCmdSetStencilCompareMask =
+ PFN_vkCmdSetStencilCompareMask( vkGetDeviceProcAddr( device, "vkCmdSetStencilCompareMask" ) );
+ vkCmdSetStencilWriteMask =
+ PFN_vkCmdSetStencilWriteMask( vkGetDeviceProcAddr( device, "vkCmdSetStencilWriteMask" ) );
+ vkCmdSetStencilReference =
+ PFN_vkCmdSetStencilReference( vkGetDeviceProcAddr( device, "vkCmdSetStencilReference" ) );
vkCmdBindDescriptorSets =
PFN_vkCmdBindDescriptorSets( vkGetDeviceProcAddr( device, "vkCmdBindDescriptorSets" ) );
- vkCmdBindIndexBuffer = PFN_vkCmdBindIndexBuffer( vkGetDeviceProcAddr( device, "vkCmdBindIndexBuffer" ) );
- vkCmdBindPipeline = PFN_vkCmdBindPipeline( vkGetDeviceProcAddr( device, "vkCmdBindPipeline" ) );
- vkCmdBindPipelineShaderGroupNV =
- PFN_vkCmdBindPipelineShaderGroupNV( vkGetDeviceProcAddr( device, "vkCmdBindPipelineShaderGroupNV" ) );
- vkCmdBindShadingRateImageNV =
- PFN_vkCmdBindShadingRateImageNV( vkGetDeviceProcAddr( device, "vkCmdBindShadingRateImageNV" ) );
- vkCmdBindTransformFeedbackBuffersEXT = PFN_vkCmdBindTransformFeedbackBuffersEXT(
- vkGetDeviceProcAddr( device, "vkCmdBindTransformFeedbackBuffersEXT" ) );
+ vkCmdBindIndexBuffer = PFN_vkCmdBindIndexBuffer( vkGetDeviceProcAddr( device, "vkCmdBindIndexBuffer" ) );
vkCmdBindVertexBuffers = PFN_vkCmdBindVertexBuffers( vkGetDeviceProcAddr( device, "vkCmdBindVertexBuffers" ) );
- vkCmdBindVertexBuffers2EXT =
- PFN_vkCmdBindVertexBuffers2EXT( vkGetDeviceProcAddr( device, "vkCmdBindVertexBuffers2EXT" ) );
- vkCmdBlitImage = PFN_vkCmdBlitImage( vkGetDeviceProcAddr( device, "vkCmdBlitImage" ) );
- vkCmdBlitImage2KHR = PFN_vkCmdBlitImage2KHR( vkGetDeviceProcAddr( device, "vkCmdBlitImage2KHR" ) );
- vkCmdBuildAccelerationStructureNV =
- PFN_vkCmdBuildAccelerationStructureNV( vkGetDeviceProcAddr( device, "vkCmdBuildAccelerationStructureNV" ) );
- vkCmdBuildAccelerationStructuresIndirectKHR = PFN_vkCmdBuildAccelerationStructuresIndirectKHR(
- vkGetDeviceProcAddr( device, "vkCmdBuildAccelerationStructuresIndirectKHR" ) );
- vkCmdBuildAccelerationStructuresKHR = PFN_vkCmdBuildAccelerationStructuresKHR(
- vkGetDeviceProcAddr( device, "vkCmdBuildAccelerationStructuresKHR" ) );
- vkCmdClearAttachments = PFN_vkCmdClearAttachments( vkGetDeviceProcAddr( device, "vkCmdClearAttachments" ) );
- vkCmdClearColorImage = PFN_vkCmdClearColorImage( vkGetDeviceProcAddr( device, "vkCmdClearColorImage" ) );
- vkCmdClearDepthStencilImage =
- PFN_vkCmdClearDepthStencilImage( vkGetDeviceProcAddr( device, "vkCmdClearDepthStencilImage" ) );
-# if defined( VK_ENABLE_BETA_EXTENSIONS )
- vkCmdControlVideoCodingKHR =
- PFN_vkCmdControlVideoCodingKHR( vkGetDeviceProcAddr( device, "vkCmdControlVideoCodingKHR" ) );
-# endif /*VK_ENABLE_BETA_EXTENSIONS*/
- vkCmdCopyAccelerationStructureKHR =
- PFN_vkCmdCopyAccelerationStructureKHR( vkGetDeviceProcAddr( device, "vkCmdCopyAccelerationStructureKHR" ) );
- vkCmdCopyAccelerationStructureNV =
- PFN_vkCmdCopyAccelerationStructureNV( vkGetDeviceProcAddr( device, "vkCmdCopyAccelerationStructureNV" ) );
- vkCmdCopyAccelerationStructureToMemoryKHR = PFN_vkCmdCopyAccelerationStructureToMemoryKHR(
- vkGetDeviceProcAddr( device, "vkCmdCopyAccelerationStructureToMemoryKHR" ) );
+ vkCmdDraw = PFN_vkCmdDraw( vkGetDeviceProcAddr( device, "vkCmdDraw" ) );
+ vkCmdDrawIndexed = PFN_vkCmdDrawIndexed( vkGetDeviceProcAddr( device, "vkCmdDrawIndexed" ) );
+ vkCmdDrawIndirect = PFN_vkCmdDrawIndirect( vkGetDeviceProcAddr( device, "vkCmdDrawIndirect" ) );
+ vkCmdDrawIndexedIndirect =
+ PFN_vkCmdDrawIndexedIndirect( vkGetDeviceProcAddr( device, "vkCmdDrawIndexedIndirect" ) );
+ vkCmdDispatch = PFN_vkCmdDispatch( vkGetDeviceProcAddr( device, "vkCmdDispatch" ) );
+ vkCmdDispatchIndirect = PFN_vkCmdDispatchIndirect( vkGetDeviceProcAddr( device, "vkCmdDispatchIndirect" ) );
vkCmdCopyBuffer = PFN_vkCmdCopyBuffer( vkGetDeviceProcAddr( device, "vkCmdCopyBuffer" ) );
- vkCmdCopyBuffer2KHR = PFN_vkCmdCopyBuffer2KHR( vkGetDeviceProcAddr( device, "vkCmdCopyBuffer2KHR" ) );
- vkCmdCopyBufferToImage = PFN_vkCmdCopyBufferToImage( vkGetDeviceProcAddr( device, "vkCmdCopyBufferToImage" ) );
- vkCmdCopyBufferToImage2KHR =
- PFN_vkCmdCopyBufferToImage2KHR( vkGetDeviceProcAddr( device, "vkCmdCopyBufferToImage2KHR" ) );
vkCmdCopyImage = PFN_vkCmdCopyImage( vkGetDeviceProcAddr( device, "vkCmdCopyImage" ) );
- vkCmdCopyImage2KHR = PFN_vkCmdCopyImage2KHR( vkGetDeviceProcAddr( device, "vkCmdCopyImage2KHR" ) );
+ vkCmdBlitImage = PFN_vkCmdBlitImage( vkGetDeviceProcAddr( device, "vkCmdBlitImage" ) );
+ vkCmdCopyBufferToImage = PFN_vkCmdCopyBufferToImage( vkGetDeviceProcAddr( device, "vkCmdCopyBufferToImage" ) );
vkCmdCopyImageToBuffer = PFN_vkCmdCopyImageToBuffer( vkGetDeviceProcAddr( device, "vkCmdCopyImageToBuffer" ) );
- vkCmdCopyImageToBuffer2KHR =
- PFN_vkCmdCopyImageToBuffer2KHR( vkGetDeviceProcAddr( device, "vkCmdCopyImageToBuffer2KHR" ) );
- vkCmdCopyMemoryToAccelerationStructureKHR = PFN_vkCmdCopyMemoryToAccelerationStructureKHR(
- vkGetDeviceProcAddr( device, "vkCmdCopyMemoryToAccelerationStructureKHR" ) );
+ vkCmdUpdateBuffer = PFN_vkCmdUpdateBuffer( vkGetDeviceProcAddr( device, "vkCmdUpdateBuffer" ) );
+ vkCmdFillBuffer = PFN_vkCmdFillBuffer( vkGetDeviceProcAddr( device, "vkCmdFillBuffer" ) );
+ vkCmdClearColorImage = PFN_vkCmdClearColorImage( vkGetDeviceProcAddr( device, "vkCmdClearColorImage" ) );
+ vkCmdClearDepthStencilImage =
+ PFN_vkCmdClearDepthStencilImage( vkGetDeviceProcAddr( device, "vkCmdClearDepthStencilImage" ) );
+ vkCmdClearAttachments = PFN_vkCmdClearAttachments( vkGetDeviceProcAddr( device, "vkCmdClearAttachments" ) );
+ vkCmdResolveImage = PFN_vkCmdResolveImage( vkGetDeviceProcAddr( device, "vkCmdResolveImage" ) );
+ vkCmdSetEvent = PFN_vkCmdSetEvent( vkGetDeviceProcAddr( device, "vkCmdSetEvent" ) );
+ vkCmdResetEvent = PFN_vkCmdResetEvent( vkGetDeviceProcAddr( device, "vkCmdResetEvent" ) );
+ vkCmdWaitEvents = PFN_vkCmdWaitEvents( vkGetDeviceProcAddr( device, "vkCmdWaitEvents" ) );
+ vkCmdPipelineBarrier = PFN_vkCmdPipelineBarrier( vkGetDeviceProcAddr( device, "vkCmdPipelineBarrier" ) );
+ vkCmdBeginQuery = PFN_vkCmdBeginQuery( vkGetDeviceProcAddr( device, "vkCmdBeginQuery" ) );
+ vkCmdEndQuery = PFN_vkCmdEndQuery( vkGetDeviceProcAddr( device, "vkCmdEndQuery" ) );
+ vkCmdResetQueryPool = PFN_vkCmdResetQueryPool( vkGetDeviceProcAddr( device, "vkCmdResetQueryPool" ) );
+ vkCmdWriteTimestamp = PFN_vkCmdWriteTimestamp( vkGetDeviceProcAddr( device, "vkCmdWriteTimestamp" ) );
vkCmdCopyQueryPoolResults =
PFN_vkCmdCopyQueryPoolResults( vkGetDeviceProcAddr( device, "vkCmdCopyQueryPoolResults" ) );
- vkCmdCuLaunchKernelNVX = PFN_vkCmdCuLaunchKernelNVX( vkGetDeviceProcAddr( device, "vkCmdCuLaunchKernelNVX" ) );
- vkCmdDebugMarkerBeginEXT =
- PFN_vkCmdDebugMarkerBeginEXT( vkGetDeviceProcAddr( device, "vkCmdDebugMarkerBeginEXT" ) );
- vkCmdDebugMarkerEndEXT = PFN_vkCmdDebugMarkerEndEXT( vkGetDeviceProcAddr( device, "vkCmdDebugMarkerEndEXT" ) );
- vkCmdDebugMarkerInsertEXT =
- PFN_vkCmdDebugMarkerInsertEXT( vkGetDeviceProcAddr( device, "vkCmdDebugMarkerInsertEXT" ) );
-# if defined( VK_ENABLE_BETA_EXTENSIONS )
- vkCmdDecodeVideoKHR = PFN_vkCmdDecodeVideoKHR( vkGetDeviceProcAddr( device, "vkCmdDecodeVideoKHR" ) );
-# endif /*VK_ENABLE_BETA_EXTENSIONS*/
- vkCmdDispatch = PFN_vkCmdDispatch( vkGetDeviceProcAddr( device, "vkCmdDispatch" ) );
- vkCmdDispatchBase = PFN_vkCmdDispatchBase( vkGetDeviceProcAddr( device, "vkCmdDispatchBase" ) );
- vkCmdDispatchBaseKHR = PFN_vkCmdDispatchBaseKHR( vkGetDeviceProcAddr( device, "vkCmdDispatchBaseKHR" ) );
- if ( !vkCmdDispatchBase )
- vkCmdDispatchBase = vkCmdDispatchBaseKHR;
- vkCmdDispatchIndirect = PFN_vkCmdDispatchIndirect( vkGetDeviceProcAddr( device, "vkCmdDispatchIndirect" ) );
- vkCmdDraw = PFN_vkCmdDraw( vkGetDeviceProcAddr( device, "vkCmdDraw" ) );
- vkCmdDrawIndexed = PFN_vkCmdDrawIndexed( vkGetDeviceProcAddr( device, "vkCmdDrawIndexed" ) );
- vkCmdDrawIndexedIndirect =
- PFN_vkCmdDrawIndexedIndirect( vkGetDeviceProcAddr( device, "vkCmdDrawIndexedIndirect" ) );
+ vkCmdPushConstants = PFN_vkCmdPushConstants( vkGetDeviceProcAddr( device, "vkCmdPushConstants" ) );
+ vkCmdBeginRenderPass = PFN_vkCmdBeginRenderPass( vkGetDeviceProcAddr( device, "vkCmdBeginRenderPass" ) );
+ vkCmdNextSubpass = PFN_vkCmdNextSubpass( vkGetDeviceProcAddr( device, "vkCmdNextSubpass" ) );
+ vkCmdEndRenderPass = PFN_vkCmdEndRenderPass( vkGetDeviceProcAddr( device, "vkCmdEndRenderPass" ) );
+ vkCmdExecuteCommands = PFN_vkCmdExecuteCommands( vkGetDeviceProcAddr( device, "vkCmdExecuteCommands" ) );
+
+ //=== VK_VERSION_1_1 ===
+ vkBindBufferMemory2 = PFN_vkBindBufferMemory2( vkGetDeviceProcAddr( device, "vkBindBufferMemory2" ) );
+ vkBindImageMemory2 = PFN_vkBindImageMemory2( vkGetDeviceProcAddr( device, "vkBindImageMemory2" ) );
+ vkGetDeviceGroupPeerMemoryFeatures =
+ PFN_vkGetDeviceGroupPeerMemoryFeatures( vkGetDeviceProcAddr( device, "vkGetDeviceGroupPeerMemoryFeatures" ) );
+ vkCmdSetDeviceMask = PFN_vkCmdSetDeviceMask( vkGetDeviceProcAddr( device, "vkCmdSetDeviceMask" ) );
+ vkCmdDispatchBase = PFN_vkCmdDispatchBase( vkGetDeviceProcAddr( device, "vkCmdDispatchBase" ) );
+ vkGetImageMemoryRequirements2 =
+ PFN_vkGetImageMemoryRequirements2( vkGetDeviceProcAddr( device, "vkGetImageMemoryRequirements2" ) );
+ vkGetBufferMemoryRequirements2 =
+ PFN_vkGetBufferMemoryRequirements2( vkGetDeviceProcAddr( device, "vkGetBufferMemoryRequirements2" ) );
+ vkGetImageSparseMemoryRequirements2 = PFN_vkGetImageSparseMemoryRequirements2(
+ vkGetDeviceProcAddr( device, "vkGetImageSparseMemoryRequirements2" ) );
+ vkTrimCommandPool = PFN_vkTrimCommandPool( vkGetDeviceProcAddr( device, "vkTrimCommandPool" ) );
+ vkGetDeviceQueue2 = PFN_vkGetDeviceQueue2( vkGetDeviceProcAddr( device, "vkGetDeviceQueue2" ) );
+ vkCreateSamplerYcbcrConversion =
+ PFN_vkCreateSamplerYcbcrConversion( vkGetDeviceProcAddr( device, "vkCreateSamplerYcbcrConversion" ) );
+ vkDestroySamplerYcbcrConversion =
+ PFN_vkDestroySamplerYcbcrConversion( vkGetDeviceProcAddr( device, "vkDestroySamplerYcbcrConversion" ) );
+ vkCreateDescriptorUpdateTemplate =
+ PFN_vkCreateDescriptorUpdateTemplate( vkGetDeviceProcAddr( device, "vkCreateDescriptorUpdateTemplate" ) );
+ vkDestroyDescriptorUpdateTemplate =
+ PFN_vkDestroyDescriptorUpdateTemplate( vkGetDeviceProcAddr( device, "vkDestroyDescriptorUpdateTemplate" ) );
+ vkUpdateDescriptorSetWithTemplate =
+ PFN_vkUpdateDescriptorSetWithTemplate( vkGetDeviceProcAddr( device, "vkUpdateDescriptorSetWithTemplate" ) );
+ vkGetDescriptorSetLayoutSupport =
+ PFN_vkGetDescriptorSetLayoutSupport( vkGetDeviceProcAddr( device, "vkGetDescriptorSetLayoutSupport" ) );
+
+ //=== VK_VERSION_1_2 ===
+ vkCmdDrawIndirectCount = PFN_vkCmdDrawIndirectCount( vkGetDeviceProcAddr( device, "vkCmdDrawIndirectCount" ) );
vkCmdDrawIndexedIndirectCount =
PFN_vkCmdDrawIndexedIndirectCount( vkGetDeviceProcAddr( device, "vkCmdDrawIndexedIndirectCount" ) );
- vkCmdDrawIndexedIndirectCountAMD =
- PFN_vkCmdDrawIndexedIndirectCountAMD( vkGetDeviceProcAddr( device, "vkCmdDrawIndexedIndirectCountAMD" ) );
- if ( !vkCmdDrawIndexedIndirectCount )
- vkCmdDrawIndexedIndirectCount = vkCmdDrawIndexedIndirectCountAMD;
- vkCmdDrawIndexedIndirectCountKHR =
- PFN_vkCmdDrawIndexedIndirectCountKHR( vkGetDeviceProcAddr( device, "vkCmdDrawIndexedIndirectCountKHR" ) );
- if ( !vkCmdDrawIndexedIndirectCount )
- vkCmdDrawIndexedIndirectCount = vkCmdDrawIndexedIndirectCountKHR;
- vkCmdDrawIndirect = PFN_vkCmdDrawIndirect( vkGetDeviceProcAddr( device, "vkCmdDrawIndirect" ) );
- vkCmdDrawIndirectByteCountEXT =
- PFN_vkCmdDrawIndirectByteCountEXT( vkGetDeviceProcAddr( device, "vkCmdDrawIndirectByteCountEXT" ) );
- vkCmdDrawIndirectCount = PFN_vkCmdDrawIndirectCount( vkGetDeviceProcAddr( device, "vkCmdDrawIndirectCount" ) );
+ vkCreateRenderPass2 = PFN_vkCreateRenderPass2( vkGetDeviceProcAddr( device, "vkCreateRenderPass2" ) );
+ vkCmdBeginRenderPass2 = PFN_vkCmdBeginRenderPass2( vkGetDeviceProcAddr( device, "vkCmdBeginRenderPass2" ) );
+ vkCmdNextSubpass2 = PFN_vkCmdNextSubpass2( vkGetDeviceProcAddr( device, "vkCmdNextSubpass2" ) );
+ vkCmdEndRenderPass2 = PFN_vkCmdEndRenderPass2( vkGetDeviceProcAddr( device, "vkCmdEndRenderPass2" ) );
+ vkResetQueryPool = PFN_vkResetQueryPool( vkGetDeviceProcAddr( device, "vkResetQueryPool" ) );
+ vkGetSemaphoreCounterValue =
+ PFN_vkGetSemaphoreCounterValue( vkGetDeviceProcAddr( device, "vkGetSemaphoreCounterValue" ) );
+ vkWaitSemaphores = PFN_vkWaitSemaphores( vkGetDeviceProcAddr( device, "vkWaitSemaphores" ) );
+ vkSignalSemaphore = PFN_vkSignalSemaphore( vkGetDeviceProcAddr( device, "vkSignalSemaphore" ) );
+ vkGetBufferDeviceAddress =
+ PFN_vkGetBufferDeviceAddress( vkGetDeviceProcAddr( device, "vkGetBufferDeviceAddress" ) );
+ vkGetBufferOpaqueCaptureAddress =
+ PFN_vkGetBufferOpaqueCaptureAddress( vkGetDeviceProcAddr( device, "vkGetBufferOpaqueCaptureAddress" ) );
+ vkGetDeviceMemoryOpaqueCaptureAddress = PFN_vkGetDeviceMemoryOpaqueCaptureAddress(
+ vkGetDeviceProcAddr( device, "vkGetDeviceMemoryOpaqueCaptureAddress" ) );
+
+ //=== VK_AMD_buffer_marker ===
+ vkCmdWriteBufferMarkerAMD =
+ PFN_vkCmdWriteBufferMarkerAMD( vkGetDeviceProcAddr( device, "vkCmdWriteBufferMarkerAMD" ) );
+
+ //=== VK_AMD_display_native_hdr ===
+ vkSetLocalDimmingAMD = PFN_vkSetLocalDimmingAMD( vkGetDeviceProcAddr( device, "vkSetLocalDimmingAMD" ) );
+
+ //=== VK_AMD_draw_indirect_count ===
vkCmdDrawIndirectCountAMD =
PFN_vkCmdDrawIndirectCountAMD( vkGetDeviceProcAddr( device, "vkCmdDrawIndirectCountAMD" ) );
if ( !vkCmdDrawIndirectCount )
vkCmdDrawIndirectCount = vkCmdDrawIndirectCountAMD;
- vkCmdDrawIndirectCountKHR =
- PFN_vkCmdDrawIndirectCountKHR( vkGetDeviceProcAddr( device, "vkCmdDrawIndirectCountKHR" ) );
- if ( !vkCmdDrawIndirectCount )
- vkCmdDrawIndirectCount = vkCmdDrawIndirectCountKHR;
- vkCmdDrawMeshTasksIndirectCountNV =
- PFN_vkCmdDrawMeshTasksIndirectCountNV( vkGetDeviceProcAddr( device, "vkCmdDrawMeshTasksIndirectCountNV" ) );
- vkCmdDrawMeshTasksIndirectNV =
- PFN_vkCmdDrawMeshTasksIndirectNV( vkGetDeviceProcAddr( device, "vkCmdDrawMeshTasksIndirectNV" ) );
- vkCmdDrawMeshTasksNV = PFN_vkCmdDrawMeshTasksNV( vkGetDeviceProcAddr( device, "vkCmdDrawMeshTasksNV" ) );
- vkCmdDrawMultiEXT = PFN_vkCmdDrawMultiEXT( vkGetDeviceProcAddr( device, "vkCmdDrawMultiEXT" ) );
- vkCmdDrawMultiIndexedEXT =
- PFN_vkCmdDrawMultiIndexedEXT( vkGetDeviceProcAddr( device, "vkCmdDrawMultiIndexedEXT" ) );
-# if defined( VK_ENABLE_BETA_EXTENSIONS )
- vkCmdEncodeVideoKHR = PFN_vkCmdEncodeVideoKHR( vkGetDeviceProcAddr( device, "vkCmdEncodeVideoKHR" ) );
-# endif /*VK_ENABLE_BETA_EXTENSIONS*/
+ vkCmdDrawIndexedIndirectCountAMD =
+ PFN_vkCmdDrawIndexedIndirectCountAMD( vkGetDeviceProcAddr( device, "vkCmdDrawIndexedIndirectCountAMD" ) );
+ if ( !vkCmdDrawIndexedIndirectCount )
+ vkCmdDrawIndexedIndirectCount = vkCmdDrawIndexedIndirectCountAMD;
+
+ //=== VK_AMD_shader_info ===
+ vkGetShaderInfoAMD = PFN_vkGetShaderInfoAMD( vkGetDeviceProcAddr( device, "vkGetShaderInfoAMD" ) );
+
+# if defined( VK_USE_PLATFORM_ANDROID_KHR )
+ //=== VK_ANDROID_external_memory_android_hardware_buffer ===
+ vkGetAndroidHardwareBufferPropertiesANDROID = PFN_vkGetAndroidHardwareBufferPropertiesANDROID(
+ vkGetDeviceProcAddr( device, "vkGetAndroidHardwareBufferPropertiesANDROID" ) );
+ vkGetMemoryAndroidHardwareBufferANDROID = PFN_vkGetMemoryAndroidHardwareBufferANDROID(
+ vkGetDeviceProcAddr( device, "vkGetMemoryAndroidHardwareBufferANDROID" ) );
+# endif /*VK_USE_PLATFORM_ANDROID_KHR*/
+
+ //=== VK_EXT_buffer_device_address ===
+ vkGetBufferDeviceAddressEXT =
+ PFN_vkGetBufferDeviceAddressEXT( vkGetDeviceProcAddr( device, "vkGetBufferDeviceAddressEXT" ) );
+ if ( !vkGetBufferDeviceAddress )
+ vkGetBufferDeviceAddress = vkGetBufferDeviceAddressEXT;
+
+ //=== VK_EXT_calibrated_timestamps ===
+ vkGetCalibratedTimestampsEXT =
+ PFN_vkGetCalibratedTimestampsEXT( vkGetDeviceProcAddr( device, "vkGetCalibratedTimestampsEXT" ) );
+
+ //=== VK_EXT_color_write_enable ===
+ vkCmdSetColorWriteEnableEXT =
+ PFN_vkCmdSetColorWriteEnableEXT( vkGetDeviceProcAddr( device, "vkCmdSetColorWriteEnableEXT" ) );
+
+ //=== VK_EXT_conditional_rendering ===
+ vkCmdBeginConditionalRenderingEXT =
+ PFN_vkCmdBeginConditionalRenderingEXT( vkGetDeviceProcAddr( device, "vkCmdBeginConditionalRenderingEXT" ) );
vkCmdEndConditionalRenderingEXT =
PFN_vkCmdEndConditionalRenderingEXT( vkGetDeviceProcAddr( device, "vkCmdEndConditionalRenderingEXT" ) );
+
+ //=== VK_EXT_debug_marker ===
+ vkDebugMarkerSetObjectTagEXT =
+ PFN_vkDebugMarkerSetObjectTagEXT( vkGetDeviceProcAddr( device, "vkDebugMarkerSetObjectTagEXT" ) );
+ vkDebugMarkerSetObjectNameEXT =
+ PFN_vkDebugMarkerSetObjectNameEXT( vkGetDeviceProcAddr( device, "vkDebugMarkerSetObjectNameEXT" ) );
+ vkCmdDebugMarkerBeginEXT =
+ PFN_vkCmdDebugMarkerBeginEXT( vkGetDeviceProcAddr( device, "vkCmdDebugMarkerBeginEXT" ) );
+ vkCmdDebugMarkerEndEXT = PFN_vkCmdDebugMarkerEndEXT( vkGetDeviceProcAddr( device, "vkCmdDebugMarkerEndEXT" ) );
+ vkCmdDebugMarkerInsertEXT =
+ PFN_vkCmdDebugMarkerInsertEXT( vkGetDeviceProcAddr( device, "vkCmdDebugMarkerInsertEXT" ) );
+
+ //=== VK_EXT_debug_utils ===
+ vkSetDebugUtilsObjectNameEXT =
+ PFN_vkSetDebugUtilsObjectNameEXT( vkGetDeviceProcAddr( device, "vkSetDebugUtilsObjectNameEXT" ) );
+ vkSetDebugUtilsObjectTagEXT =
+ PFN_vkSetDebugUtilsObjectTagEXT( vkGetDeviceProcAddr( device, "vkSetDebugUtilsObjectTagEXT" ) );
+ vkQueueBeginDebugUtilsLabelEXT =
+ PFN_vkQueueBeginDebugUtilsLabelEXT( vkGetDeviceProcAddr( device, "vkQueueBeginDebugUtilsLabelEXT" ) );
+ vkQueueEndDebugUtilsLabelEXT =
+ PFN_vkQueueEndDebugUtilsLabelEXT( vkGetDeviceProcAddr( device, "vkQueueEndDebugUtilsLabelEXT" ) );
+ vkQueueInsertDebugUtilsLabelEXT =
+ PFN_vkQueueInsertDebugUtilsLabelEXT( vkGetDeviceProcAddr( device, "vkQueueInsertDebugUtilsLabelEXT" ) );
+ vkCmdBeginDebugUtilsLabelEXT =
+ PFN_vkCmdBeginDebugUtilsLabelEXT( vkGetDeviceProcAddr( device, "vkCmdBeginDebugUtilsLabelEXT" ) );
vkCmdEndDebugUtilsLabelEXT =
PFN_vkCmdEndDebugUtilsLabelEXT( vkGetDeviceProcAddr( device, "vkCmdEndDebugUtilsLabelEXT" ) );
- vkCmdEndQuery = PFN_vkCmdEndQuery( vkGetDeviceProcAddr( device, "vkCmdEndQuery" ) );
- vkCmdEndQueryIndexedEXT =
- PFN_vkCmdEndQueryIndexedEXT( vkGetDeviceProcAddr( device, "vkCmdEndQueryIndexedEXT" ) );
- vkCmdEndRenderPass = PFN_vkCmdEndRenderPass( vkGetDeviceProcAddr( device, "vkCmdEndRenderPass" ) );
- vkCmdEndRenderPass2 = PFN_vkCmdEndRenderPass2( vkGetDeviceProcAddr( device, "vkCmdEndRenderPass2" ) );
- vkCmdEndRenderPass2KHR = PFN_vkCmdEndRenderPass2KHR( vkGetDeviceProcAddr( device, "vkCmdEndRenderPass2KHR" ) );
- if ( !vkCmdEndRenderPass2 )
- vkCmdEndRenderPass2 = vkCmdEndRenderPass2KHR;
- vkCmdEndTransformFeedbackEXT =
- PFN_vkCmdEndTransformFeedbackEXT( vkGetDeviceProcAddr( device, "vkCmdEndTransformFeedbackEXT" ) );
-# if defined( VK_ENABLE_BETA_EXTENSIONS )
- vkCmdEndVideoCodingKHR = PFN_vkCmdEndVideoCodingKHR( vkGetDeviceProcAddr( device, "vkCmdEndVideoCodingKHR" ) );
-# endif /*VK_ENABLE_BETA_EXTENSIONS*/
- vkCmdExecuteCommands = PFN_vkCmdExecuteCommands( vkGetDeviceProcAddr( device, "vkCmdExecuteCommands" ) );
- vkCmdExecuteGeneratedCommandsNV =
- PFN_vkCmdExecuteGeneratedCommandsNV( vkGetDeviceProcAddr( device, "vkCmdExecuteGeneratedCommandsNV" ) );
- vkCmdFillBuffer = PFN_vkCmdFillBuffer( vkGetDeviceProcAddr( device, "vkCmdFillBuffer" ) );
vkCmdInsertDebugUtilsLabelEXT =
PFN_vkCmdInsertDebugUtilsLabelEXT( vkGetDeviceProcAddr( device, "vkCmdInsertDebugUtilsLabelEXT" ) );
- vkCmdNextSubpass = PFN_vkCmdNextSubpass( vkGetDeviceProcAddr( device, "vkCmdNextSubpass" ) );
- vkCmdNextSubpass2 = PFN_vkCmdNextSubpass2( vkGetDeviceProcAddr( device, "vkCmdNextSubpass2" ) );
- vkCmdNextSubpass2KHR = PFN_vkCmdNextSubpass2KHR( vkGetDeviceProcAddr( device, "vkCmdNextSubpass2KHR" ) );
- if ( !vkCmdNextSubpass2 )
- vkCmdNextSubpass2 = vkCmdNextSubpass2KHR;
- vkCmdPipelineBarrier = PFN_vkCmdPipelineBarrier( vkGetDeviceProcAddr( device, "vkCmdPipelineBarrier" ) );
- vkCmdPipelineBarrier2KHR =
- PFN_vkCmdPipelineBarrier2KHR( vkGetDeviceProcAddr( device, "vkCmdPipelineBarrier2KHR" ) );
- vkCmdPreprocessGeneratedCommandsNV =
- PFN_vkCmdPreprocessGeneratedCommandsNV( vkGetDeviceProcAddr( device, "vkCmdPreprocessGeneratedCommandsNV" ) );
- vkCmdPushConstants = PFN_vkCmdPushConstants( vkGetDeviceProcAddr( device, "vkCmdPushConstants" ) );
- vkCmdPushDescriptorSetKHR =
- PFN_vkCmdPushDescriptorSetKHR( vkGetDeviceProcAddr( device, "vkCmdPushDescriptorSetKHR" ) );
- vkCmdPushDescriptorSetWithTemplateKHR = PFN_vkCmdPushDescriptorSetWithTemplateKHR(
- vkGetDeviceProcAddr( device, "vkCmdPushDescriptorSetWithTemplateKHR" ) );
- vkCmdResetEvent = PFN_vkCmdResetEvent( vkGetDeviceProcAddr( device, "vkCmdResetEvent" ) );
- vkCmdResetEvent2KHR = PFN_vkCmdResetEvent2KHR( vkGetDeviceProcAddr( device, "vkCmdResetEvent2KHR" ) );
- vkCmdResetQueryPool = PFN_vkCmdResetQueryPool( vkGetDeviceProcAddr( device, "vkCmdResetQueryPool" ) );
- vkCmdResolveImage = PFN_vkCmdResolveImage( vkGetDeviceProcAddr( device, "vkCmdResolveImage" ) );
- vkCmdResolveImage2KHR = PFN_vkCmdResolveImage2KHR( vkGetDeviceProcAddr( device, "vkCmdResolveImage2KHR" ) );
- vkCmdSetBlendConstants = PFN_vkCmdSetBlendConstants( vkGetDeviceProcAddr( device, "vkCmdSetBlendConstants" ) );
- vkCmdSetCheckpointNV = PFN_vkCmdSetCheckpointNV( vkGetDeviceProcAddr( device, "vkCmdSetCheckpointNV" ) );
- vkCmdSetCoarseSampleOrderNV =
- PFN_vkCmdSetCoarseSampleOrderNV( vkGetDeviceProcAddr( device, "vkCmdSetCoarseSampleOrderNV" ) );
- vkCmdSetColorWriteEnableEXT =
- PFN_vkCmdSetColorWriteEnableEXT( vkGetDeviceProcAddr( device, "vkCmdSetColorWriteEnableEXT" ) );
- vkCmdSetCullModeEXT = PFN_vkCmdSetCullModeEXT( vkGetDeviceProcAddr( device, "vkCmdSetCullModeEXT" ) );
- vkCmdSetDepthBias = PFN_vkCmdSetDepthBias( vkGetDeviceProcAddr( device, "vkCmdSetDepthBias" ) );
- vkCmdSetDepthBiasEnableEXT =
- PFN_vkCmdSetDepthBiasEnableEXT( vkGetDeviceProcAddr( device, "vkCmdSetDepthBiasEnableEXT" ) );
- vkCmdSetDepthBounds = PFN_vkCmdSetDepthBounds( vkGetDeviceProcAddr( device, "vkCmdSetDepthBounds" ) );
- vkCmdSetDepthBoundsTestEnableEXT =
- PFN_vkCmdSetDepthBoundsTestEnableEXT( vkGetDeviceProcAddr( device, "vkCmdSetDepthBoundsTestEnableEXT" ) );
- vkCmdSetDepthCompareOpEXT =
- PFN_vkCmdSetDepthCompareOpEXT( vkGetDeviceProcAddr( device, "vkCmdSetDepthCompareOpEXT" ) );
+
+ //=== VK_EXT_discard_rectangles ===
+ vkCmdSetDiscardRectangleEXT =
+ PFN_vkCmdSetDiscardRectangleEXT( vkGetDeviceProcAddr( device, "vkCmdSetDiscardRectangleEXT" ) );
+
+ //=== VK_EXT_display_control ===
+ vkDisplayPowerControlEXT =
+ PFN_vkDisplayPowerControlEXT( vkGetDeviceProcAddr( device, "vkDisplayPowerControlEXT" ) );
+ vkRegisterDeviceEventEXT =
+ PFN_vkRegisterDeviceEventEXT( vkGetDeviceProcAddr( device, "vkRegisterDeviceEventEXT" ) );
+ vkRegisterDisplayEventEXT =
+ PFN_vkRegisterDisplayEventEXT( vkGetDeviceProcAddr( device, "vkRegisterDisplayEventEXT" ) );
+ vkGetSwapchainCounterEXT =
+ PFN_vkGetSwapchainCounterEXT( vkGetDeviceProcAddr( device, "vkGetSwapchainCounterEXT" ) );
+
+ //=== VK_EXT_extended_dynamic_state ===
+ vkCmdSetCullModeEXT = PFN_vkCmdSetCullModeEXT( vkGetDeviceProcAddr( device, "vkCmdSetCullModeEXT" ) );
+ vkCmdSetFrontFaceEXT = PFN_vkCmdSetFrontFaceEXT( vkGetDeviceProcAddr( device, "vkCmdSetFrontFaceEXT" ) );
+ vkCmdSetPrimitiveTopologyEXT =
+ PFN_vkCmdSetPrimitiveTopologyEXT( vkGetDeviceProcAddr( device, "vkCmdSetPrimitiveTopologyEXT" ) );
+ vkCmdSetViewportWithCountEXT =
+ PFN_vkCmdSetViewportWithCountEXT( vkGetDeviceProcAddr( device, "vkCmdSetViewportWithCountEXT" ) );
+ vkCmdSetScissorWithCountEXT =
+ PFN_vkCmdSetScissorWithCountEXT( vkGetDeviceProcAddr( device, "vkCmdSetScissorWithCountEXT" ) );
+ vkCmdBindVertexBuffers2EXT =
+ PFN_vkCmdBindVertexBuffers2EXT( vkGetDeviceProcAddr( device, "vkCmdBindVertexBuffers2EXT" ) );
vkCmdSetDepthTestEnableEXT =
PFN_vkCmdSetDepthTestEnableEXT( vkGetDeviceProcAddr( device, "vkCmdSetDepthTestEnableEXT" ) );
vkCmdSetDepthWriteEnableEXT =
PFN_vkCmdSetDepthWriteEnableEXT( vkGetDeviceProcAddr( device, "vkCmdSetDepthWriteEnableEXT" ) );
- vkCmdSetDeviceMask = PFN_vkCmdSetDeviceMask( vkGetDeviceProcAddr( device, "vkCmdSetDeviceMask" ) );
- vkCmdSetDeviceMaskKHR = PFN_vkCmdSetDeviceMaskKHR( vkGetDeviceProcAddr( device, "vkCmdSetDeviceMaskKHR" ) );
- if ( !vkCmdSetDeviceMask )
- vkCmdSetDeviceMask = vkCmdSetDeviceMaskKHR;
- vkCmdSetDiscardRectangleEXT =
- PFN_vkCmdSetDiscardRectangleEXT( vkGetDeviceProcAddr( device, "vkCmdSetDiscardRectangleEXT" ) );
- vkCmdSetEvent = PFN_vkCmdSetEvent( vkGetDeviceProcAddr( device, "vkCmdSetEvent" ) );
- vkCmdSetEvent2KHR = PFN_vkCmdSetEvent2KHR( vkGetDeviceProcAddr( device, "vkCmdSetEvent2KHR" ) );
- vkCmdSetExclusiveScissorNV =
- PFN_vkCmdSetExclusiveScissorNV( vkGetDeviceProcAddr( device, "vkCmdSetExclusiveScissorNV" ) );
- vkCmdSetFragmentShadingRateEnumNV =
- PFN_vkCmdSetFragmentShadingRateEnumNV( vkGetDeviceProcAddr( device, "vkCmdSetFragmentShadingRateEnumNV" ) );
- vkCmdSetFragmentShadingRateKHR =
- PFN_vkCmdSetFragmentShadingRateKHR( vkGetDeviceProcAddr( device, "vkCmdSetFragmentShadingRateKHR" ) );
- vkCmdSetFrontFaceEXT = PFN_vkCmdSetFrontFaceEXT( vkGetDeviceProcAddr( device, "vkCmdSetFrontFaceEXT" ) );
- vkCmdSetLineStippleEXT = PFN_vkCmdSetLineStippleEXT( vkGetDeviceProcAddr( device, "vkCmdSetLineStippleEXT" ) );
- vkCmdSetLineWidth = PFN_vkCmdSetLineWidth( vkGetDeviceProcAddr( device, "vkCmdSetLineWidth" ) );
- vkCmdSetLogicOpEXT = PFN_vkCmdSetLogicOpEXT( vkGetDeviceProcAddr( device, "vkCmdSetLogicOpEXT" ) );
+ vkCmdSetDepthCompareOpEXT =
+ PFN_vkCmdSetDepthCompareOpEXT( vkGetDeviceProcAddr( device, "vkCmdSetDepthCompareOpEXT" ) );
+ vkCmdSetDepthBoundsTestEnableEXT =
+ PFN_vkCmdSetDepthBoundsTestEnableEXT( vkGetDeviceProcAddr( device, "vkCmdSetDepthBoundsTestEnableEXT" ) );
+ vkCmdSetStencilTestEnableEXT =
+ PFN_vkCmdSetStencilTestEnableEXT( vkGetDeviceProcAddr( device, "vkCmdSetStencilTestEnableEXT" ) );
+ vkCmdSetStencilOpEXT = PFN_vkCmdSetStencilOpEXT( vkGetDeviceProcAddr( device, "vkCmdSetStencilOpEXT" ) );
+
+ //=== VK_EXT_extended_dynamic_state2 ===
vkCmdSetPatchControlPointsEXT =
PFN_vkCmdSetPatchControlPointsEXT( vkGetDeviceProcAddr( device, "vkCmdSetPatchControlPointsEXT" ) );
- vkCmdSetPerformanceMarkerINTEL =
- PFN_vkCmdSetPerformanceMarkerINTEL( vkGetDeviceProcAddr( device, "vkCmdSetPerformanceMarkerINTEL" ) );
- vkCmdSetPerformanceOverrideINTEL =
- PFN_vkCmdSetPerformanceOverrideINTEL( vkGetDeviceProcAddr( device, "vkCmdSetPerformanceOverrideINTEL" ) );
- vkCmdSetPerformanceStreamMarkerINTEL = PFN_vkCmdSetPerformanceStreamMarkerINTEL(
- vkGetDeviceProcAddr( device, "vkCmdSetPerformanceStreamMarkerINTEL" ) );
- vkCmdSetPrimitiveRestartEnableEXT =
- PFN_vkCmdSetPrimitiveRestartEnableEXT( vkGetDeviceProcAddr( device, "vkCmdSetPrimitiveRestartEnableEXT" ) );
- vkCmdSetPrimitiveTopologyEXT =
- PFN_vkCmdSetPrimitiveTopologyEXT( vkGetDeviceProcAddr( device, "vkCmdSetPrimitiveTopologyEXT" ) );
vkCmdSetRasterizerDiscardEnableEXT =
PFN_vkCmdSetRasterizerDiscardEnableEXT( vkGetDeviceProcAddr( device, "vkCmdSetRasterizerDiscardEnableEXT" ) );
- vkCmdSetRayTracingPipelineStackSizeKHR = PFN_vkCmdSetRayTracingPipelineStackSizeKHR(
- vkGetDeviceProcAddr( device, "vkCmdSetRayTracingPipelineStackSizeKHR" ) );
+ vkCmdSetDepthBiasEnableEXT =
+ PFN_vkCmdSetDepthBiasEnableEXT( vkGetDeviceProcAddr( device, "vkCmdSetDepthBiasEnableEXT" ) );
+ vkCmdSetLogicOpEXT = PFN_vkCmdSetLogicOpEXT( vkGetDeviceProcAddr( device, "vkCmdSetLogicOpEXT" ) );
+ vkCmdSetPrimitiveRestartEnableEXT =
+ PFN_vkCmdSetPrimitiveRestartEnableEXT( vkGetDeviceProcAddr( device, "vkCmdSetPrimitiveRestartEnableEXT" ) );
+
+ //=== VK_EXT_external_memory_host ===
+ vkGetMemoryHostPointerPropertiesEXT = PFN_vkGetMemoryHostPointerPropertiesEXT(
+ vkGetDeviceProcAddr( device, "vkGetMemoryHostPointerPropertiesEXT" ) );
+
+# if defined( VK_USE_PLATFORM_WIN32_KHR )
+ //=== VK_EXT_full_screen_exclusive ===
+ vkAcquireFullScreenExclusiveModeEXT = PFN_vkAcquireFullScreenExclusiveModeEXT(
+ vkGetDeviceProcAddr( device, "vkAcquireFullScreenExclusiveModeEXT" ) );
+ vkReleaseFullScreenExclusiveModeEXT = PFN_vkReleaseFullScreenExclusiveModeEXT(
+ vkGetDeviceProcAddr( device, "vkReleaseFullScreenExclusiveModeEXT" ) );
+ vkGetDeviceGroupSurfacePresentModes2EXT = PFN_vkGetDeviceGroupSurfacePresentModes2EXT(
+ vkGetDeviceProcAddr( device, "vkGetDeviceGroupSurfacePresentModes2EXT" ) );
+# endif /*VK_USE_PLATFORM_WIN32_KHR*/
+
+ //=== VK_EXT_hdr_metadata ===
+ vkSetHdrMetadataEXT = PFN_vkSetHdrMetadataEXT( vkGetDeviceProcAddr( device, "vkSetHdrMetadataEXT" ) );
+
+ //=== VK_EXT_host_query_reset ===
+ vkResetQueryPoolEXT = PFN_vkResetQueryPoolEXT( vkGetDeviceProcAddr( device, "vkResetQueryPoolEXT" ) );
+ if ( !vkResetQueryPool )
+ vkResetQueryPool = vkResetQueryPoolEXT;
+
+ //=== VK_EXT_image_drm_format_modifier ===
+ vkGetImageDrmFormatModifierPropertiesEXT = PFN_vkGetImageDrmFormatModifierPropertiesEXT(
+ vkGetDeviceProcAddr( device, "vkGetImageDrmFormatModifierPropertiesEXT" ) );
+
+ //=== VK_EXT_line_rasterization ===
+ vkCmdSetLineStippleEXT = PFN_vkCmdSetLineStippleEXT( vkGetDeviceProcAddr( device, "vkCmdSetLineStippleEXT" ) );
+
+ //=== VK_EXT_multi_draw ===
+ vkCmdDrawMultiEXT = PFN_vkCmdDrawMultiEXT( vkGetDeviceProcAddr( device, "vkCmdDrawMultiEXT" ) );
+ vkCmdDrawMultiIndexedEXT =
+ PFN_vkCmdDrawMultiIndexedEXT( vkGetDeviceProcAddr( device, "vkCmdDrawMultiIndexedEXT" ) );
+
+ //=== VK_EXT_private_data ===
+ vkCreatePrivateDataSlotEXT =
+ PFN_vkCreatePrivateDataSlotEXT( vkGetDeviceProcAddr( device, "vkCreatePrivateDataSlotEXT" ) );
+ vkDestroyPrivateDataSlotEXT =
+ PFN_vkDestroyPrivateDataSlotEXT( vkGetDeviceProcAddr( device, "vkDestroyPrivateDataSlotEXT" ) );
+ vkSetPrivateDataEXT = PFN_vkSetPrivateDataEXT( vkGetDeviceProcAddr( device, "vkSetPrivateDataEXT" ) );
+ vkGetPrivateDataEXT = PFN_vkGetPrivateDataEXT( vkGetDeviceProcAddr( device, "vkGetPrivateDataEXT" ) );
+
+ //=== VK_EXT_sample_locations ===
vkCmdSetSampleLocationsEXT =
PFN_vkCmdSetSampleLocationsEXT( vkGetDeviceProcAddr( device, "vkCmdSetSampleLocationsEXT" ) );
- vkCmdSetScissor = PFN_vkCmdSetScissor( vkGetDeviceProcAddr( device, "vkCmdSetScissor" ) );
- vkCmdSetScissorWithCountEXT =
- PFN_vkCmdSetScissorWithCountEXT( vkGetDeviceProcAddr( device, "vkCmdSetScissorWithCountEXT" ) );
- vkCmdSetStencilCompareMask =
- PFN_vkCmdSetStencilCompareMask( vkGetDeviceProcAddr( device, "vkCmdSetStencilCompareMask" ) );
- vkCmdSetStencilOpEXT = PFN_vkCmdSetStencilOpEXT( vkGetDeviceProcAddr( device, "vkCmdSetStencilOpEXT" ) );
- vkCmdSetStencilReference =
- PFN_vkCmdSetStencilReference( vkGetDeviceProcAddr( device, "vkCmdSetStencilReference" ) );
- vkCmdSetStencilTestEnableEXT =
- PFN_vkCmdSetStencilTestEnableEXT( vkGetDeviceProcAddr( device, "vkCmdSetStencilTestEnableEXT" ) );
- vkCmdSetStencilWriteMask =
- PFN_vkCmdSetStencilWriteMask( vkGetDeviceProcAddr( device, "vkCmdSetStencilWriteMask" ) );
+
+ //=== VK_EXT_transform_feedback ===
+ vkCmdBindTransformFeedbackBuffersEXT = PFN_vkCmdBindTransformFeedbackBuffersEXT(
+ vkGetDeviceProcAddr( device, "vkCmdBindTransformFeedbackBuffersEXT" ) );
+ vkCmdBeginTransformFeedbackEXT =
+ PFN_vkCmdBeginTransformFeedbackEXT( vkGetDeviceProcAddr( device, "vkCmdBeginTransformFeedbackEXT" ) );
+ vkCmdEndTransformFeedbackEXT =
+ PFN_vkCmdEndTransformFeedbackEXT( vkGetDeviceProcAddr( device, "vkCmdEndTransformFeedbackEXT" ) );
+ vkCmdBeginQueryIndexedEXT =
+ PFN_vkCmdBeginQueryIndexedEXT( vkGetDeviceProcAddr( device, "vkCmdBeginQueryIndexedEXT" ) );
+ vkCmdEndQueryIndexedEXT =
+ PFN_vkCmdEndQueryIndexedEXT( vkGetDeviceProcAddr( device, "vkCmdEndQueryIndexedEXT" ) );
+ vkCmdDrawIndirectByteCountEXT =
+ PFN_vkCmdDrawIndirectByteCountEXT( vkGetDeviceProcAddr( device, "vkCmdDrawIndirectByteCountEXT" ) );
+
+ //=== VK_EXT_validation_cache ===
+ vkCreateValidationCacheEXT =
+ PFN_vkCreateValidationCacheEXT( vkGetDeviceProcAddr( device, "vkCreateValidationCacheEXT" ) );
+ vkDestroyValidationCacheEXT =
+ PFN_vkDestroyValidationCacheEXT( vkGetDeviceProcAddr( device, "vkDestroyValidationCacheEXT" ) );
+ vkMergeValidationCachesEXT =
+ PFN_vkMergeValidationCachesEXT( vkGetDeviceProcAddr( device, "vkMergeValidationCachesEXT" ) );
+ vkGetValidationCacheDataEXT =
+ PFN_vkGetValidationCacheDataEXT( vkGetDeviceProcAddr( device, "vkGetValidationCacheDataEXT" ) );
+
+ //=== VK_EXT_vertex_input_dynamic_state ===
vkCmdSetVertexInputEXT = PFN_vkCmdSetVertexInputEXT( vkGetDeviceProcAddr( device, "vkCmdSetVertexInputEXT" ) );
- vkCmdSetViewport = PFN_vkCmdSetViewport( vkGetDeviceProcAddr( device, "vkCmdSetViewport" ) );
- vkCmdSetViewportShadingRatePaletteNV = PFN_vkCmdSetViewportShadingRatePaletteNV(
- vkGetDeviceProcAddr( device, "vkCmdSetViewportShadingRatePaletteNV" ) );
- vkCmdSetViewportWScalingNV =
- PFN_vkCmdSetViewportWScalingNV( vkGetDeviceProcAddr( device, "vkCmdSetViewportWScalingNV" ) );
- vkCmdSetViewportWithCountEXT =
- PFN_vkCmdSetViewportWithCountEXT( vkGetDeviceProcAddr( device, "vkCmdSetViewportWithCountEXT" ) );
+
+# if defined( VK_USE_PLATFORM_FUCHSIA )
+ //=== VK_FUCHSIA_external_memory ===
+ vkGetMemoryZirconHandleFUCHSIA =
+ PFN_vkGetMemoryZirconHandleFUCHSIA( vkGetDeviceProcAddr( device, "vkGetMemoryZirconHandleFUCHSIA" ) );
+ vkGetMemoryZirconHandlePropertiesFUCHSIA = PFN_vkGetMemoryZirconHandlePropertiesFUCHSIA(
+ vkGetDeviceProcAddr( device, "vkGetMemoryZirconHandlePropertiesFUCHSIA" ) );
+# endif /*VK_USE_PLATFORM_FUCHSIA*/
+
+# if defined( VK_USE_PLATFORM_FUCHSIA )
+ //=== VK_FUCHSIA_external_semaphore ===
+ vkImportSemaphoreZirconHandleFUCHSIA = PFN_vkImportSemaphoreZirconHandleFUCHSIA(
+ vkGetDeviceProcAddr( device, "vkImportSemaphoreZirconHandleFUCHSIA" ) );
+ vkGetSemaphoreZirconHandleFUCHSIA =
+ PFN_vkGetSemaphoreZirconHandleFUCHSIA( vkGetDeviceProcAddr( device, "vkGetSemaphoreZirconHandleFUCHSIA" ) );
+# endif /*VK_USE_PLATFORM_FUCHSIA*/
+
+ //=== VK_GOOGLE_display_timing ===
+ vkGetRefreshCycleDurationGOOGLE =
+ PFN_vkGetRefreshCycleDurationGOOGLE( vkGetDeviceProcAddr( device, "vkGetRefreshCycleDurationGOOGLE" ) );
+ vkGetPastPresentationTimingGOOGLE =
+ PFN_vkGetPastPresentationTimingGOOGLE( vkGetDeviceProcAddr( device, "vkGetPastPresentationTimingGOOGLE" ) );
+
+ //=== VK_HUAWEI_invocation_mask ===
+ vkCmdBindInvocationMaskHUAWEI =
+ PFN_vkCmdBindInvocationMaskHUAWEI( vkGetDeviceProcAddr( device, "vkCmdBindInvocationMaskHUAWEI" ) );
+
+ //=== VK_HUAWEI_subpass_shading ===
+ vkGetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI = PFN_vkGetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI(
+ vkGetDeviceProcAddr( device, "vkGetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI" ) );
vkCmdSubpassShadingHUAWEI =
PFN_vkCmdSubpassShadingHUAWEI( vkGetDeviceProcAddr( device, "vkCmdSubpassShadingHUAWEI" ) );
- vkCmdTraceRaysIndirectKHR =
- PFN_vkCmdTraceRaysIndirectKHR( vkGetDeviceProcAddr( device, "vkCmdTraceRaysIndirectKHR" ) );
- vkCmdTraceRaysKHR = PFN_vkCmdTraceRaysKHR( vkGetDeviceProcAddr( device, "vkCmdTraceRaysKHR" ) );
- vkCmdTraceRaysNV = PFN_vkCmdTraceRaysNV( vkGetDeviceProcAddr( device, "vkCmdTraceRaysNV" ) );
- vkCmdUpdateBuffer = PFN_vkCmdUpdateBuffer( vkGetDeviceProcAddr( device, "vkCmdUpdateBuffer" ) );
- vkCmdWaitEvents = PFN_vkCmdWaitEvents( vkGetDeviceProcAddr( device, "vkCmdWaitEvents" ) );
- vkCmdWaitEvents2KHR = PFN_vkCmdWaitEvents2KHR( vkGetDeviceProcAddr( device, "vkCmdWaitEvents2KHR" ) );
- vkCmdWriteAccelerationStructuresPropertiesKHR = PFN_vkCmdWriteAccelerationStructuresPropertiesKHR(
- vkGetDeviceProcAddr( device, "vkCmdWriteAccelerationStructuresPropertiesKHR" ) );
- vkCmdWriteAccelerationStructuresPropertiesNV = PFN_vkCmdWriteAccelerationStructuresPropertiesNV(
- vkGetDeviceProcAddr( device, "vkCmdWriteAccelerationStructuresPropertiesNV" ) );
- vkCmdWriteBufferMarker2AMD =
- PFN_vkCmdWriteBufferMarker2AMD( vkGetDeviceProcAddr( device, "vkCmdWriteBufferMarker2AMD" ) );
- vkCmdWriteBufferMarkerAMD =
- PFN_vkCmdWriteBufferMarkerAMD( vkGetDeviceProcAddr( device, "vkCmdWriteBufferMarkerAMD" ) );
- vkCmdWriteTimestamp = PFN_vkCmdWriteTimestamp( vkGetDeviceProcAddr( device, "vkCmdWriteTimestamp" ) );
- vkCmdWriteTimestamp2KHR =
- PFN_vkCmdWriteTimestamp2KHR( vkGetDeviceProcAddr( device, "vkCmdWriteTimestamp2KHR" ) );
- vkCompileDeferredNV = PFN_vkCompileDeferredNV( vkGetDeviceProcAddr( device, "vkCompileDeferredNV" ) );
+
+ //=== VK_INTEL_performance_query ===
+ vkInitializePerformanceApiINTEL =
+ PFN_vkInitializePerformanceApiINTEL( vkGetDeviceProcAddr( device, "vkInitializePerformanceApiINTEL" ) );
+ vkUninitializePerformanceApiINTEL =
+ PFN_vkUninitializePerformanceApiINTEL( vkGetDeviceProcAddr( device, "vkUninitializePerformanceApiINTEL" ) );
+ vkCmdSetPerformanceMarkerINTEL =
+ PFN_vkCmdSetPerformanceMarkerINTEL( vkGetDeviceProcAddr( device, "vkCmdSetPerformanceMarkerINTEL" ) );
+ vkCmdSetPerformanceStreamMarkerINTEL = PFN_vkCmdSetPerformanceStreamMarkerINTEL(
+ vkGetDeviceProcAddr( device, "vkCmdSetPerformanceStreamMarkerINTEL" ) );
+ vkCmdSetPerformanceOverrideINTEL =
+ PFN_vkCmdSetPerformanceOverrideINTEL( vkGetDeviceProcAddr( device, "vkCmdSetPerformanceOverrideINTEL" ) );
+ vkAcquirePerformanceConfigurationINTEL = PFN_vkAcquirePerformanceConfigurationINTEL(
+ vkGetDeviceProcAddr( device, "vkAcquirePerformanceConfigurationINTEL" ) );
+ vkReleasePerformanceConfigurationINTEL = PFN_vkReleasePerformanceConfigurationINTEL(
+ vkGetDeviceProcAddr( device, "vkReleasePerformanceConfigurationINTEL" ) );
+ vkQueueSetPerformanceConfigurationINTEL = PFN_vkQueueSetPerformanceConfigurationINTEL(
+ vkGetDeviceProcAddr( device, "vkQueueSetPerformanceConfigurationINTEL" ) );
+ vkGetPerformanceParameterINTEL =
+ PFN_vkGetPerformanceParameterINTEL( vkGetDeviceProcAddr( device, "vkGetPerformanceParameterINTEL" ) );
+
+ //=== VK_KHR_acceleration_structure ===
+ vkCreateAccelerationStructureKHR =
+ PFN_vkCreateAccelerationStructureKHR( vkGetDeviceProcAddr( device, "vkCreateAccelerationStructureKHR" ) );
+ vkDestroyAccelerationStructureKHR =
+ PFN_vkDestroyAccelerationStructureKHR( vkGetDeviceProcAddr( device, "vkDestroyAccelerationStructureKHR" ) );
+ vkCmdBuildAccelerationStructuresKHR = PFN_vkCmdBuildAccelerationStructuresKHR(
+ vkGetDeviceProcAddr( device, "vkCmdBuildAccelerationStructuresKHR" ) );
+ vkCmdBuildAccelerationStructuresIndirectKHR = PFN_vkCmdBuildAccelerationStructuresIndirectKHR(
+ vkGetDeviceProcAddr( device, "vkCmdBuildAccelerationStructuresIndirectKHR" ) );
+ vkBuildAccelerationStructuresKHR =
+ PFN_vkBuildAccelerationStructuresKHR( vkGetDeviceProcAddr( device, "vkBuildAccelerationStructuresKHR" ) );
vkCopyAccelerationStructureKHR =
PFN_vkCopyAccelerationStructureKHR( vkGetDeviceProcAddr( device, "vkCopyAccelerationStructureKHR" ) );
vkCopyAccelerationStructureToMemoryKHR = PFN_vkCopyAccelerationStructureToMemoryKHR(
vkGetDeviceProcAddr( device, "vkCopyAccelerationStructureToMemoryKHR" ) );
vkCopyMemoryToAccelerationStructureKHR = PFN_vkCopyMemoryToAccelerationStructureKHR(
vkGetDeviceProcAddr( device, "vkCopyMemoryToAccelerationStructureKHR" ) );
- vkCreateAccelerationStructureKHR =
- PFN_vkCreateAccelerationStructureKHR( vkGetDeviceProcAddr( device, "vkCreateAccelerationStructureKHR" ) );
- vkCreateAccelerationStructureNV =
- PFN_vkCreateAccelerationStructureNV( vkGetDeviceProcAddr( device, "vkCreateAccelerationStructureNV" ) );
- vkCreateBuffer = PFN_vkCreateBuffer( vkGetDeviceProcAddr( device, "vkCreateBuffer" ) );
- vkCreateBufferView = PFN_vkCreateBufferView( vkGetDeviceProcAddr( device, "vkCreateBufferView" ) );
- vkCreateCommandPool = PFN_vkCreateCommandPool( vkGetDeviceProcAddr( device, "vkCreateCommandPool" ) );
- vkCreateComputePipelines =
- PFN_vkCreateComputePipelines( vkGetDeviceProcAddr( device, "vkCreateComputePipelines" ) );
- vkCreateCuFunctionNVX = PFN_vkCreateCuFunctionNVX( vkGetDeviceProcAddr( device, "vkCreateCuFunctionNVX" ) );
- vkCreateCuModuleNVX = PFN_vkCreateCuModuleNVX( vkGetDeviceProcAddr( device, "vkCreateCuModuleNVX" ) );
- vkCreateDeferredOperationKHR =
- PFN_vkCreateDeferredOperationKHR( vkGetDeviceProcAddr( device, "vkCreateDeferredOperationKHR" ) );
- vkCreateDescriptorPool = PFN_vkCreateDescriptorPool( vkGetDeviceProcAddr( device, "vkCreateDescriptorPool" ) );
- vkCreateDescriptorSetLayout =
- PFN_vkCreateDescriptorSetLayout( vkGetDeviceProcAddr( device, "vkCreateDescriptorSetLayout" ) );
- vkCreateDescriptorUpdateTemplate =
- PFN_vkCreateDescriptorUpdateTemplate( vkGetDeviceProcAddr( device, "vkCreateDescriptorUpdateTemplate" ) );
- vkCreateDescriptorUpdateTemplateKHR = PFN_vkCreateDescriptorUpdateTemplateKHR(
- vkGetDeviceProcAddr( device, "vkCreateDescriptorUpdateTemplateKHR" ) );
- if ( !vkCreateDescriptorUpdateTemplate )
- vkCreateDescriptorUpdateTemplate = vkCreateDescriptorUpdateTemplateKHR;
- vkCreateEvent = PFN_vkCreateEvent( vkGetDeviceProcAddr( device, "vkCreateEvent" ) );
- vkCreateFence = PFN_vkCreateFence( vkGetDeviceProcAddr( device, "vkCreateFence" ) );
- vkCreateFramebuffer = PFN_vkCreateFramebuffer( vkGetDeviceProcAddr( device, "vkCreateFramebuffer" ) );
- vkCreateGraphicsPipelines =
- PFN_vkCreateGraphicsPipelines( vkGetDeviceProcAddr( device, "vkCreateGraphicsPipelines" ) );
- vkCreateImage = PFN_vkCreateImage( vkGetDeviceProcAddr( device, "vkCreateImage" ) );
- vkCreateImageView = PFN_vkCreateImageView( vkGetDeviceProcAddr( device, "vkCreateImageView" ) );
- vkCreateIndirectCommandsLayoutNV =
- PFN_vkCreateIndirectCommandsLayoutNV( vkGetDeviceProcAddr( device, "vkCreateIndirectCommandsLayoutNV" ) );
- vkCreatePipelineCache = PFN_vkCreatePipelineCache( vkGetDeviceProcAddr( device, "vkCreatePipelineCache" ) );
- vkCreatePipelineLayout = PFN_vkCreatePipelineLayout( vkGetDeviceProcAddr( device, "vkCreatePipelineLayout" ) );
- vkCreatePrivateDataSlotEXT =
- PFN_vkCreatePrivateDataSlotEXT( vkGetDeviceProcAddr( device, "vkCreatePrivateDataSlotEXT" ) );
- vkCreateQueryPool = PFN_vkCreateQueryPool( vkGetDeviceProcAddr( device, "vkCreateQueryPool" ) );
- vkCreateRayTracingPipelinesKHR =
- PFN_vkCreateRayTracingPipelinesKHR( vkGetDeviceProcAddr( device, "vkCreateRayTracingPipelinesKHR" ) );
- vkCreateRayTracingPipelinesNV =
- PFN_vkCreateRayTracingPipelinesNV( vkGetDeviceProcAddr( device, "vkCreateRayTracingPipelinesNV" ) );
- vkCreateRenderPass = PFN_vkCreateRenderPass( vkGetDeviceProcAddr( device, "vkCreateRenderPass" ) );
- vkCreateRenderPass2 = PFN_vkCreateRenderPass2( vkGetDeviceProcAddr( device, "vkCreateRenderPass2" ) );
- vkCreateRenderPass2KHR = PFN_vkCreateRenderPass2KHR( vkGetDeviceProcAddr( device, "vkCreateRenderPass2KHR" ) );
- if ( !vkCreateRenderPass2 )
- vkCreateRenderPass2 = vkCreateRenderPass2KHR;
- vkCreateSampler = PFN_vkCreateSampler( vkGetDeviceProcAddr( device, "vkCreateSampler" ) );
- vkCreateSamplerYcbcrConversion =
- PFN_vkCreateSamplerYcbcrConversion( vkGetDeviceProcAddr( device, "vkCreateSamplerYcbcrConversion" ) );
- vkCreateSamplerYcbcrConversionKHR =
- PFN_vkCreateSamplerYcbcrConversionKHR( vkGetDeviceProcAddr( device, "vkCreateSamplerYcbcrConversionKHR" ) );
- if ( !vkCreateSamplerYcbcrConversion )
- vkCreateSamplerYcbcrConversion = vkCreateSamplerYcbcrConversionKHR;
- vkCreateSemaphore = PFN_vkCreateSemaphore( vkGetDeviceProcAddr( device, "vkCreateSemaphore" ) );
- vkCreateShaderModule = PFN_vkCreateShaderModule( vkGetDeviceProcAddr( device, "vkCreateShaderModule" ) );
- vkCreateSharedSwapchainsKHR =
- PFN_vkCreateSharedSwapchainsKHR( vkGetDeviceProcAddr( device, "vkCreateSharedSwapchainsKHR" ) );
- vkCreateSwapchainKHR = PFN_vkCreateSwapchainKHR( vkGetDeviceProcAddr( device, "vkCreateSwapchainKHR" ) );
- vkCreateValidationCacheEXT =
- PFN_vkCreateValidationCacheEXT( vkGetDeviceProcAddr( device, "vkCreateValidationCacheEXT" ) );
-# if defined( VK_ENABLE_BETA_EXTENSIONS )
- vkCreateVideoSessionKHR =
- PFN_vkCreateVideoSessionKHR( vkGetDeviceProcAddr( device, "vkCreateVideoSessionKHR" ) );
-# endif /*VK_ENABLE_BETA_EXTENSIONS*/
-# if defined( VK_ENABLE_BETA_EXTENSIONS )
- vkCreateVideoSessionParametersKHR =
- PFN_vkCreateVideoSessionParametersKHR( vkGetDeviceProcAddr( device, "vkCreateVideoSessionParametersKHR" ) );
-# endif /*VK_ENABLE_BETA_EXTENSIONS*/
- vkDebugMarkerSetObjectNameEXT =
- PFN_vkDebugMarkerSetObjectNameEXT( vkGetDeviceProcAddr( device, "vkDebugMarkerSetObjectNameEXT" ) );
- vkDebugMarkerSetObjectTagEXT =
- PFN_vkDebugMarkerSetObjectTagEXT( vkGetDeviceProcAddr( device, "vkDebugMarkerSetObjectTagEXT" ) );
- vkDeferredOperationJoinKHR =
- PFN_vkDeferredOperationJoinKHR( vkGetDeviceProcAddr( device, "vkDeferredOperationJoinKHR" ) );
- vkDestroyAccelerationStructureKHR =
- PFN_vkDestroyAccelerationStructureKHR( vkGetDeviceProcAddr( device, "vkDestroyAccelerationStructureKHR" ) );
- vkDestroyAccelerationStructureNV =
- PFN_vkDestroyAccelerationStructureNV( vkGetDeviceProcAddr( device, "vkDestroyAccelerationStructureNV" ) );
- vkDestroyBuffer = PFN_vkDestroyBuffer( vkGetDeviceProcAddr( device, "vkDestroyBuffer" ) );
- vkDestroyBufferView = PFN_vkDestroyBufferView( vkGetDeviceProcAddr( device, "vkDestroyBufferView" ) );
- vkDestroyCommandPool = PFN_vkDestroyCommandPool( vkGetDeviceProcAddr( device, "vkDestroyCommandPool" ) );
- vkDestroyCuFunctionNVX = PFN_vkDestroyCuFunctionNVX( vkGetDeviceProcAddr( device, "vkDestroyCuFunctionNVX" ) );
- vkDestroyCuModuleNVX = PFN_vkDestroyCuModuleNVX( vkGetDeviceProcAddr( device, "vkDestroyCuModuleNVX" ) );
- vkDestroyDeferredOperationKHR =
- PFN_vkDestroyDeferredOperationKHR( vkGetDeviceProcAddr( device, "vkDestroyDeferredOperationKHR" ) );
- vkDestroyDescriptorPool =
- PFN_vkDestroyDescriptorPool( vkGetDeviceProcAddr( device, "vkDestroyDescriptorPool" ) );
- vkDestroyDescriptorSetLayout =
- PFN_vkDestroyDescriptorSetLayout( vkGetDeviceProcAddr( device, "vkDestroyDescriptorSetLayout" ) );
- vkDestroyDescriptorUpdateTemplate =
- PFN_vkDestroyDescriptorUpdateTemplate( vkGetDeviceProcAddr( device, "vkDestroyDescriptorUpdateTemplate" ) );
- vkDestroyDescriptorUpdateTemplateKHR = PFN_vkDestroyDescriptorUpdateTemplateKHR(
- vkGetDeviceProcAddr( device, "vkDestroyDescriptorUpdateTemplateKHR" ) );
- if ( !vkDestroyDescriptorUpdateTemplate )
- vkDestroyDescriptorUpdateTemplate = vkDestroyDescriptorUpdateTemplateKHR;
- vkDestroyDevice = PFN_vkDestroyDevice( vkGetDeviceProcAddr( device, "vkDestroyDevice" ) );
- vkDestroyEvent = PFN_vkDestroyEvent( vkGetDeviceProcAddr( device, "vkDestroyEvent" ) );
- vkDestroyFence = PFN_vkDestroyFence( vkGetDeviceProcAddr( device, "vkDestroyFence" ) );
- vkDestroyFramebuffer = PFN_vkDestroyFramebuffer( vkGetDeviceProcAddr( device, "vkDestroyFramebuffer" ) );
- vkDestroyImage = PFN_vkDestroyImage( vkGetDeviceProcAddr( device, "vkDestroyImage" ) );
- vkDestroyImageView = PFN_vkDestroyImageView( vkGetDeviceProcAddr( device, "vkDestroyImageView" ) );
- vkDestroyIndirectCommandsLayoutNV =
- PFN_vkDestroyIndirectCommandsLayoutNV( vkGetDeviceProcAddr( device, "vkDestroyIndirectCommandsLayoutNV" ) );
- vkDestroyPipeline = PFN_vkDestroyPipeline( vkGetDeviceProcAddr( device, "vkDestroyPipeline" ) );
- vkDestroyPipelineCache = PFN_vkDestroyPipelineCache( vkGetDeviceProcAddr( device, "vkDestroyPipelineCache" ) );
- vkDestroyPipelineLayout =
- PFN_vkDestroyPipelineLayout( vkGetDeviceProcAddr( device, "vkDestroyPipelineLayout" ) );
- vkDestroyPrivateDataSlotEXT =
- PFN_vkDestroyPrivateDataSlotEXT( vkGetDeviceProcAddr( device, "vkDestroyPrivateDataSlotEXT" ) );
- vkDestroyQueryPool = PFN_vkDestroyQueryPool( vkGetDeviceProcAddr( device, "vkDestroyQueryPool" ) );
- vkDestroyRenderPass = PFN_vkDestroyRenderPass( vkGetDeviceProcAddr( device, "vkDestroyRenderPass" ) );
- vkDestroySampler = PFN_vkDestroySampler( vkGetDeviceProcAddr( device, "vkDestroySampler" ) );
- vkDestroySamplerYcbcrConversion =
- PFN_vkDestroySamplerYcbcrConversion( vkGetDeviceProcAddr( device, "vkDestroySamplerYcbcrConversion" ) );
- vkDestroySamplerYcbcrConversionKHR =
- PFN_vkDestroySamplerYcbcrConversionKHR( vkGetDeviceProcAddr( device, "vkDestroySamplerYcbcrConversionKHR" ) );
- if ( !vkDestroySamplerYcbcrConversion )
- vkDestroySamplerYcbcrConversion = vkDestroySamplerYcbcrConversionKHR;
- vkDestroySemaphore = PFN_vkDestroySemaphore( vkGetDeviceProcAddr( device, "vkDestroySemaphore" ) );
- vkDestroyShaderModule = PFN_vkDestroyShaderModule( vkGetDeviceProcAddr( device, "vkDestroyShaderModule" ) );
- vkDestroySwapchainKHR = PFN_vkDestroySwapchainKHR( vkGetDeviceProcAddr( device, "vkDestroySwapchainKHR" ) );
- vkDestroyValidationCacheEXT =
- PFN_vkDestroyValidationCacheEXT( vkGetDeviceProcAddr( device, "vkDestroyValidationCacheEXT" ) );
-# if defined( VK_ENABLE_BETA_EXTENSIONS )
- vkDestroyVideoSessionKHR =
- PFN_vkDestroyVideoSessionKHR( vkGetDeviceProcAddr( device, "vkDestroyVideoSessionKHR" ) );
-# endif /*VK_ENABLE_BETA_EXTENSIONS*/
-# if defined( VK_ENABLE_BETA_EXTENSIONS )
- vkDestroyVideoSessionParametersKHR =
- PFN_vkDestroyVideoSessionParametersKHR( vkGetDeviceProcAddr( device, "vkDestroyVideoSessionParametersKHR" ) );
-# endif /*VK_ENABLE_BETA_EXTENSIONS*/
- vkDeviceWaitIdle = PFN_vkDeviceWaitIdle( vkGetDeviceProcAddr( device, "vkDeviceWaitIdle" ) );
- vkDisplayPowerControlEXT =
- PFN_vkDisplayPowerControlEXT( vkGetDeviceProcAddr( device, "vkDisplayPowerControlEXT" ) );
- vkEndCommandBuffer = PFN_vkEndCommandBuffer( vkGetDeviceProcAddr( device, "vkEndCommandBuffer" ) );
- vkFlushMappedMemoryRanges =
- PFN_vkFlushMappedMemoryRanges( vkGetDeviceProcAddr( device, "vkFlushMappedMemoryRanges" ) );
- vkFreeCommandBuffers = PFN_vkFreeCommandBuffers( vkGetDeviceProcAddr( device, "vkFreeCommandBuffers" ) );
- vkFreeDescriptorSets = PFN_vkFreeDescriptorSets( vkGetDeviceProcAddr( device, "vkFreeDescriptorSets" ) );
- vkFreeMemory = PFN_vkFreeMemory( vkGetDeviceProcAddr( device, "vkFreeMemory" ) );
- vkGetAccelerationStructureBuildSizesKHR = PFN_vkGetAccelerationStructureBuildSizesKHR(
- vkGetDeviceProcAddr( device, "vkGetAccelerationStructureBuildSizesKHR" ) );
+ vkWriteAccelerationStructuresPropertiesKHR = PFN_vkWriteAccelerationStructuresPropertiesKHR(
+ vkGetDeviceProcAddr( device, "vkWriteAccelerationStructuresPropertiesKHR" ) );
+ vkCmdCopyAccelerationStructureKHR =
+ PFN_vkCmdCopyAccelerationStructureKHR( vkGetDeviceProcAddr( device, "vkCmdCopyAccelerationStructureKHR" ) );
+ vkCmdCopyAccelerationStructureToMemoryKHR = PFN_vkCmdCopyAccelerationStructureToMemoryKHR(
+ vkGetDeviceProcAddr( device, "vkCmdCopyAccelerationStructureToMemoryKHR" ) );
+ vkCmdCopyMemoryToAccelerationStructureKHR = PFN_vkCmdCopyMemoryToAccelerationStructureKHR(
+ vkGetDeviceProcAddr( device, "vkCmdCopyMemoryToAccelerationStructureKHR" ) );
vkGetAccelerationStructureDeviceAddressKHR = PFN_vkGetAccelerationStructureDeviceAddressKHR(
vkGetDeviceProcAddr( device, "vkGetAccelerationStructureDeviceAddressKHR" ) );
- vkGetAccelerationStructureHandleNV =
- PFN_vkGetAccelerationStructureHandleNV( vkGetDeviceProcAddr( device, "vkGetAccelerationStructureHandleNV" ) );
- vkGetAccelerationStructureMemoryRequirementsNV = PFN_vkGetAccelerationStructureMemoryRequirementsNV(
- vkGetDeviceProcAddr( device, "vkGetAccelerationStructureMemoryRequirementsNV" ) );
-# if defined( VK_USE_PLATFORM_ANDROID_KHR )
- vkGetAndroidHardwareBufferPropertiesANDROID = PFN_vkGetAndroidHardwareBufferPropertiesANDROID(
- vkGetDeviceProcAddr( device, "vkGetAndroidHardwareBufferPropertiesANDROID" ) );
-# endif /*VK_USE_PLATFORM_ANDROID_KHR*/
- vkGetBufferDeviceAddress =
- PFN_vkGetBufferDeviceAddress( vkGetDeviceProcAddr( device, "vkGetBufferDeviceAddress" ) );
- vkGetBufferDeviceAddressEXT =
- PFN_vkGetBufferDeviceAddressEXT( vkGetDeviceProcAddr( device, "vkGetBufferDeviceAddressEXT" ) );
- if ( !vkGetBufferDeviceAddress )
- vkGetBufferDeviceAddress = vkGetBufferDeviceAddressEXT;
+ vkCmdWriteAccelerationStructuresPropertiesKHR = PFN_vkCmdWriteAccelerationStructuresPropertiesKHR(
+ vkGetDeviceProcAddr( device, "vkCmdWriteAccelerationStructuresPropertiesKHR" ) );
+ vkGetDeviceAccelerationStructureCompatibilityKHR = PFN_vkGetDeviceAccelerationStructureCompatibilityKHR(
+ vkGetDeviceProcAddr( device, "vkGetDeviceAccelerationStructureCompatibilityKHR" ) );
+ vkGetAccelerationStructureBuildSizesKHR = PFN_vkGetAccelerationStructureBuildSizesKHR(
+ vkGetDeviceProcAddr( device, "vkGetAccelerationStructureBuildSizesKHR" ) );
+
+ //=== VK_KHR_bind_memory2 ===
+ vkBindBufferMemory2KHR = PFN_vkBindBufferMemory2KHR( vkGetDeviceProcAddr( device, "vkBindBufferMemory2KHR" ) );
+ if ( !vkBindBufferMemory2 )
+ vkBindBufferMemory2 = vkBindBufferMemory2KHR;
+ vkBindImageMemory2KHR = PFN_vkBindImageMemory2KHR( vkGetDeviceProcAddr( device, "vkBindImageMemory2KHR" ) );
+ if ( !vkBindImageMemory2 )
+ vkBindImageMemory2 = vkBindImageMemory2KHR;
+
+ //=== VK_KHR_buffer_device_address ===
vkGetBufferDeviceAddressKHR =
PFN_vkGetBufferDeviceAddressKHR( vkGetDeviceProcAddr( device, "vkGetBufferDeviceAddressKHR" ) );
if ( !vkGetBufferDeviceAddress )
vkGetBufferDeviceAddress = vkGetBufferDeviceAddressKHR;
- vkGetBufferMemoryRequirements =
- PFN_vkGetBufferMemoryRequirements( vkGetDeviceProcAddr( device, "vkGetBufferMemoryRequirements" ) );
- vkGetBufferMemoryRequirements2 =
- PFN_vkGetBufferMemoryRequirements2( vkGetDeviceProcAddr( device, "vkGetBufferMemoryRequirements2" ) );
- vkGetBufferMemoryRequirements2KHR =
- PFN_vkGetBufferMemoryRequirements2KHR( vkGetDeviceProcAddr( device, "vkGetBufferMemoryRequirements2KHR" ) );
- if ( !vkGetBufferMemoryRequirements2 )
- vkGetBufferMemoryRequirements2 = vkGetBufferMemoryRequirements2KHR;
- vkGetBufferOpaqueCaptureAddress =
- PFN_vkGetBufferOpaqueCaptureAddress( vkGetDeviceProcAddr( device, "vkGetBufferOpaqueCaptureAddress" ) );
vkGetBufferOpaqueCaptureAddressKHR =
PFN_vkGetBufferOpaqueCaptureAddressKHR( vkGetDeviceProcAddr( device, "vkGetBufferOpaqueCaptureAddressKHR" ) );
if ( !vkGetBufferOpaqueCaptureAddress )
vkGetBufferOpaqueCaptureAddress = vkGetBufferOpaqueCaptureAddressKHR;
- vkGetCalibratedTimestampsEXT =
- PFN_vkGetCalibratedTimestampsEXT( vkGetDeviceProcAddr( device, "vkGetCalibratedTimestampsEXT" ) );
+ vkGetDeviceMemoryOpaqueCaptureAddressKHR = PFN_vkGetDeviceMemoryOpaqueCaptureAddressKHR(
+ vkGetDeviceProcAddr( device, "vkGetDeviceMemoryOpaqueCaptureAddressKHR" ) );
+ if ( !vkGetDeviceMemoryOpaqueCaptureAddress )
+ vkGetDeviceMemoryOpaqueCaptureAddress = vkGetDeviceMemoryOpaqueCaptureAddressKHR;
+
+ //=== VK_KHR_copy_commands2 ===
+ vkCmdCopyBuffer2KHR = PFN_vkCmdCopyBuffer2KHR( vkGetDeviceProcAddr( device, "vkCmdCopyBuffer2KHR" ) );
+ vkCmdCopyImage2KHR = PFN_vkCmdCopyImage2KHR( vkGetDeviceProcAddr( device, "vkCmdCopyImage2KHR" ) );
+ vkCmdCopyBufferToImage2KHR =
+ PFN_vkCmdCopyBufferToImage2KHR( vkGetDeviceProcAddr( device, "vkCmdCopyBufferToImage2KHR" ) );
+ vkCmdCopyImageToBuffer2KHR =
+ PFN_vkCmdCopyImageToBuffer2KHR( vkGetDeviceProcAddr( device, "vkCmdCopyImageToBuffer2KHR" ) );
+ vkCmdBlitImage2KHR = PFN_vkCmdBlitImage2KHR( vkGetDeviceProcAddr( device, "vkCmdBlitImage2KHR" ) );
+ vkCmdResolveImage2KHR = PFN_vkCmdResolveImage2KHR( vkGetDeviceProcAddr( device, "vkCmdResolveImage2KHR" ) );
+
+ //=== VK_KHR_create_renderpass2 ===
+ vkCreateRenderPass2KHR = PFN_vkCreateRenderPass2KHR( vkGetDeviceProcAddr( device, "vkCreateRenderPass2KHR" ) );
+ if ( !vkCreateRenderPass2 )
+ vkCreateRenderPass2 = vkCreateRenderPass2KHR;
+ vkCmdBeginRenderPass2KHR =
+ PFN_vkCmdBeginRenderPass2KHR( vkGetDeviceProcAddr( device, "vkCmdBeginRenderPass2KHR" ) );
+ if ( !vkCmdBeginRenderPass2 )
+ vkCmdBeginRenderPass2 = vkCmdBeginRenderPass2KHR;
+ vkCmdNextSubpass2KHR = PFN_vkCmdNextSubpass2KHR( vkGetDeviceProcAddr( device, "vkCmdNextSubpass2KHR" ) );
+ if ( !vkCmdNextSubpass2 )
+ vkCmdNextSubpass2 = vkCmdNextSubpass2KHR;
+ vkCmdEndRenderPass2KHR = PFN_vkCmdEndRenderPass2KHR( vkGetDeviceProcAddr( device, "vkCmdEndRenderPass2KHR" ) );
+ if ( !vkCmdEndRenderPass2 )
+ vkCmdEndRenderPass2 = vkCmdEndRenderPass2KHR;
+
+ //=== VK_KHR_deferred_host_operations ===
+ vkCreateDeferredOperationKHR =
+ PFN_vkCreateDeferredOperationKHR( vkGetDeviceProcAddr( device, "vkCreateDeferredOperationKHR" ) );
+ vkDestroyDeferredOperationKHR =
+ PFN_vkDestroyDeferredOperationKHR( vkGetDeviceProcAddr( device, "vkDestroyDeferredOperationKHR" ) );
vkGetDeferredOperationMaxConcurrencyKHR = PFN_vkGetDeferredOperationMaxConcurrencyKHR(
vkGetDeviceProcAddr( device, "vkGetDeferredOperationMaxConcurrencyKHR" ) );
vkGetDeferredOperationResultKHR =
PFN_vkGetDeferredOperationResultKHR( vkGetDeviceProcAddr( device, "vkGetDeferredOperationResultKHR" ) );
- vkGetDescriptorSetLayoutSupport =
- PFN_vkGetDescriptorSetLayoutSupport( vkGetDeviceProcAddr( device, "vkGetDescriptorSetLayoutSupport" ) );
- vkGetDescriptorSetLayoutSupportKHR =
- PFN_vkGetDescriptorSetLayoutSupportKHR( vkGetDeviceProcAddr( device, "vkGetDescriptorSetLayoutSupportKHR" ) );
- if ( !vkGetDescriptorSetLayoutSupport )
- vkGetDescriptorSetLayoutSupport = vkGetDescriptorSetLayoutSupportKHR;
- vkGetDeviceAccelerationStructureCompatibilityKHR = PFN_vkGetDeviceAccelerationStructureCompatibilityKHR(
- vkGetDeviceProcAddr( device, "vkGetDeviceAccelerationStructureCompatibilityKHR" ) );
- vkGetDeviceGroupPeerMemoryFeatures =
- PFN_vkGetDeviceGroupPeerMemoryFeatures( vkGetDeviceProcAddr( device, "vkGetDeviceGroupPeerMemoryFeatures" ) );
+ vkDeferredOperationJoinKHR =
+ PFN_vkDeferredOperationJoinKHR( vkGetDeviceProcAddr( device, "vkDeferredOperationJoinKHR" ) );
+
+ //=== VK_KHR_descriptor_update_template ===
+ vkCreateDescriptorUpdateTemplateKHR = PFN_vkCreateDescriptorUpdateTemplateKHR(
+ vkGetDeviceProcAddr( device, "vkCreateDescriptorUpdateTemplateKHR" ) );
+ if ( !vkCreateDescriptorUpdateTemplate )
+ vkCreateDescriptorUpdateTemplate = vkCreateDescriptorUpdateTemplateKHR;
+ vkDestroyDescriptorUpdateTemplateKHR = PFN_vkDestroyDescriptorUpdateTemplateKHR(
+ vkGetDeviceProcAddr( device, "vkDestroyDescriptorUpdateTemplateKHR" ) );
+ if ( !vkDestroyDescriptorUpdateTemplate )
+ vkDestroyDescriptorUpdateTemplate = vkDestroyDescriptorUpdateTemplateKHR;
+ vkUpdateDescriptorSetWithTemplateKHR = PFN_vkUpdateDescriptorSetWithTemplateKHR(
+ vkGetDeviceProcAddr( device, "vkUpdateDescriptorSetWithTemplateKHR" ) );
+ if ( !vkUpdateDescriptorSetWithTemplate )
+ vkUpdateDescriptorSetWithTemplate = vkUpdateDescriptorSetWithTemplateKHR;
+ vkCmdPushDescriptorSetWithTemplateKHR = PFN_vkCmdPushDescriptorSetWithTemplateKHR(
+ vkGetDeviceProcAddr( device, "vkCmdPushDescriptorSetWithTemplateKHR" ) );
+
+ //=== VK_KHR_device_group ===
vkGetDeviceGroupPeerMemoryFeaturesKHR = PFN_vkGetDeviceGroupPeerMemoryFeaturesKHR(
vkGetDeviceProcAddr( device, "vkGetDeviceGroupPeerMemoryFeaturesKHR" ) );
if ( !vkGetDeviceGroupPeerMemoryFeatures )
vkGetDeviceGroupPeerMemoryFeatures = vkGetDeviceGroupPeerMemoryFeaturesKHR;
+ vkCmdSetDeviceMaskKHR = PFN_vkCmdSetDeviceMaskKHR( vkGetDeviceProcAddr( device, "vkCmdSetDeviceMaskKHR" ) );
+ if ( !vkCmdSetDeviceMask )
+ vkCmdSetDeviceMask = vkCmdSetDeviceMaskKHR;
+ vkCmdDispatchBaseKHR = PFN_vkCmdDispatchBaseKHR( vkGetDeviceProcAddr( device, "vkCmdDispatchBaseKHR" ) );
+ if ( !vkCmdDispatchBase )
+ vkCmdDispatchBase = vkCmdDispatchBaseKHR;
vkGetDeviceGroupPresentCapabilitiesKHR = PFN_vkGetDeviceGroupPresentCapabilitiesKHR(
vkGetDeviceProcAddr( device, "vkGetDeviceGroupPresentCapabilitiesKHR" ) );
-# if defined( VK_USE_PLATFORM_WIN32_KHR )
- vkGetDeviceGroupSurfacePresentModes2EXT = PFN_vkGetDeviceGroupSurfacePresentModes2EXT(
- vkGetDeviceProcAddr( device, "vkGetDeviceGroupSurfacePresentModes2EXT" ) );
-# endif /*VK_USE_PLATFORM_WIN32_KHR*/
vkGetDeviceGroupSurfacePresentModesKHR = PFN_vkGetDeviceGroupSurfacePresentModesKHR(
vkGetDeviceProcAddr( device, "vkGetDeviceGroupSurfacePresentModesKHR" ) );
- vkGetDeviceMemoryCommitment =
- PFN_vkGetDeviceMemoryCommitment( vkGetDeviceProcAddr( device, "vkGetDeviceMemoryCommitment" ) );
- vkGetDeviceMemoryOpaqueCaptureAddress = PFN_vkGetDeviceMemoryOpaqueCaptureAddress(
- vkGetDeviceProcAddr( device, "vkGetDeviceMemoryOpaqueCaptureAddress" ) );
- vkGetDeviceMemoryOpaqueCaptureAddressKHR = PFN_vkGetDeviceMemoryOpaqueCaptureAddressKHR(
- vkGetDeviceProcAddr( device, "vkGetDeviceMemoryOpaqueCaptureAddressKHR" ) );
- if ( !vkGetDeviceMemoryOpaqueCaptureAddress )
- vkGetDeviceMemoryOpaqueCaptureAddress = vkGetDeviceMemoryOpaqueCaptureAddressKHR;
- vkGetDeviceProcAddr = PFN_vkGetDeviceProcAddr( vkGetDeviceProcAddr( device, "vkGetDeviceProcAddr" ) );
- vkGetDeviceQueue = PFN_vkGetDeviceQueue( vkGetDeviceProcAddr( device, "vkGetDeviceQueue" ) );
- vkGetDeviceQueue2 = PFN_vkGetDeviceQueue2( vkGetDeviceProcAddr( device, "vkGetDeviceQueue2" ) );
- vkGetEventStatus = PFN_vkGetEventStatus( vkGetDeviceProcAddr( device, "vkGetEventStatus" ) );
- vkGetFenceFdKHR = PFN_vkGetFenceFdKHR( vkGetDeviceProcAddr( device, "vkGetFenceFdKHR" ) );
- vkGetFenceStatus = PFN_vkGetFenceStatus( vkGetDeviceProcAddr( device, "vkGetFenceStatus" ) );
+ vkAcquireNextImage2KHR = PFN_vkAcquireNextImage2KHR( vkGetDeviceProcAddr( device, "vkAcquireNextImage2KHR" ) );
+
+ //=== VK_KHR_display_swapchain ===
+ vkCreateSharedSwapchainsKHR =
+ PFN_vkCreateSharedSwapchainsKHR( vkGetDeviceProcAddr( device, "vkCreateSharedSwapchainsKHR" ) );
+
+ //=== VK_KHR_draw_indirect_count ===
+ vkCmdDrawIndirectCountKHR =
+ PFN_vkCmdDrawIndirectCountKHR( vkGetDeviceProcAddr( device, "vkCmdDrawIndirectCountKHR" ) );
+ if ( !vkCmdDrawIndirectCount )
+ vkCmdDrawIndirectCount = vkCmdDrawIndirectCountKHR;
+ vkCmdDrawIndexedIndirectCountKHR =
+ PFN_vkCmdDrawIndexedIndirectCountKHR( vkGetDeviceProcAddr( device, "vkCmdDrawIndexedIndirectCountKHR" ) );
+ if ( !vkCmdDrawIndexedIndirectCount )
+ vkCmdDrawIndexedIndirectCount = vkCmdDrawIndexedIndirectCountKHR;
+
+ //=== VK_KHR_external_fence_fd ===
+ vkImportFenceFdKHR = PFN_vkImportFenceFdKHR( vkGetDeviceProcAddr( device, "vkImportFenceFdKHR" ) );
+ vkGetFenceFdKHR = PFN_vkGetFenceFdKHR( vkGetDeviceProcAddr( device, "vkGetFenceFdKHR" ) );
+
# if defined( VK_USE_PLATFORM_WIN32_KHR )
+ //=== VK_KHR_external_fence_win32 ===
+ vkImportFenceWin32HandleKHR =
+ PFN_vkImportFenceWin32HandleKHR( vkGetDeviceProcAddr( device, "vkImportFenceWin32HandleKHR" ) );
vkGetFenceWin32HandleKHR =
PFN_vkGetFenceWin32HandleKHR( vkGetDeviceProcAddr( device, "vkGetFenceWin32HandleKHR" ) );
# endif /*VK_USE_PLATFORM_WIN32_KHR*/
- vkGetGeneratedCommandsMemoryRequirementsNV = PFN_vkGetGeneratedCommandsMemoryRequirementsNV(
- vkGetDeviceProcAddr( device, "vkGetGeneratedCommandsMemoryRequirementsNV" ) );
- vkGetImageDrmFormatModifierPropertiesEXT = PFN_vkGetImageDrmFormatModifierPropertiesEXT(
- vkGetDeviceProcAddr( device, "vkGetImageDrmFormatModifierPropertiesEXT" ) );
- vkGetImageMemoryRequirements =
- PFN_vkGetImageMemoryRequirements( vkGetDeviceProcAddr( device, "vkGetImageMemoryRequirements" ) );
- vkGetImageMemoryRequirements2 =
- PFN_vkGetImageMemoryRequirements2( vkGetDeviceProcAddr( device, "vkGetImageMemoryRequirements2" ) );
- vkGetImageMemoryRequirements2KHR =
- PFN_vkGetImageMemoryRequirements2KHR( vkGetDeviceProcAddr( device, "vkGetImageMemoryRequirements2KHR" ) );
- if ( !vkGetImageMemoryRequirements2 )
- vkGetImageMemoryRequirements2 = vkGetImageMemoryRequirements2KHR;
- vkGetImageSparseMemoryRequirements =
- PFN_vkGetImageSparseMemoryRequirements( vkGetDeviceProcAddr( device, "vkGetImageSparseMemoryRequirements" ) );
- vkGetImageSparseMemoryRequirements2 = PFN_vkGetImageSparseMemoryRequirements2(
- vkGetDeviceProcAddr( device, "vkGetImageSparseMemoryRequirements2" ) );
- vkGetImageSparseMemoryRequirements2KHR = PFN_vkGetImageSparseMemoryRequirements2KHR(
- vkGetDeviceProcAddr( device, "vkGetImageSparseMemoryRequirements2KHR" ) );
- if ( !vkGetImageSparseMemoryRequirements2 )
- vkGetImageSparseMemoryRequirements2 = vkGetImageSparseMemoryRequirements2KHR;
- vkGetImageSubresourceLayout =
- PFN_vkGetImageSubresourceLayout( vkGetDeviceProcAddr( device, "vkGetImageSubresourceLayout" ) );
- vkGetImageViewAddressNVX =
- PFN_vkGetImageViewAddressNVX( vkGetDeviceProcAddr( device, "vkGetImageViewAddressNVX" ) );
- vkGetImageViewHandleNVX =
- PFN_vkGetImageViewHandleNVX( vkGetDeviceProcAddr( device, "vkGetImageViewHandleNVX" ) );
-# if defined( VK_USE_PLATFORM_ANDROID_KHR )
- vkGetMemoryAndroidHardwareBufferANDROID = PFN_vkGetMemoryAndroidHardwareBufferANDROID(
- vkGetDeviceProcAddr( device, "vkGetMemoryAndroidHardwareBufferANDROID" ) );
-# endif /*VK_USE_PLATFORM_ANDROID_KHR*/
+
+ //=== VK_KHR_external_memory_fd ===
vkGetMemoryFdKHR = PFN_vkGetMemoryFdKHR( vkGetDeviceProcAddr( device, "vkGetMemoryFdKHR" ) );
vkGetMemoryFdPropertiesKHR =
PFN_vkGetMemoryFdPropertiesKHR( vkGetDeviceProcAddr( device, "vkGetMemoryFdPropertiesKHR" ) );
- vkGetMemoryHostPointerPropertiesEXT = PFN_vkGetMemoryHostPointerPropertiesEXT(
- vkGetDeviceProcAddr( device, "vkGetMemoryHostPointerPropertiesEXT" ) );
+
# if defined( VK_USE_PLATFORM_WIN32_KHR )
+ //=== VK_KHR_external_memory_win32 ===
vkGetMemoryWin32HandleKHR =
PFN_vkGetMemoryWin32HandleKHR( vkGetDeviceProcAddr( device, "vkGetMemoryWin32HandleKHR" ) );
-# endif /*VK_USE_PLATFORM_WIN32_KHR*/
-# if defined( VK_USE_PLATFORM_WIN32_KHR )
- vkGetMemoryWin32HandleNV =
- PFN_vkGetMemoryWin32HandleNV( vkGetDeviceProcAddr( device, "vkGetMemoryWin32HandleNV" ) );
-# endif /*VK_USE_PLATFORM_WIN32_KHR*/
-# if defined( VK_USE_PLATFORM_WIN32_KHR )
vkGetMemoryWin32HandlePropertiesKHR = PFN_vkGetMemoryWin32HandlePropertiesKHR(
vkGetDeviceProcAddr( device, "vkGetMemoryWin32HandlePropertiesKHR" ) );
# endif /*VK_USE_PLATFORM_WIN32_KHR*/
-# if defined( VK_USE_PLATFORM_FUCHSIA )
- vkGetMemoryZirconHandleFUCHSIA =
- PFN_vkGetMemoryZirconHandleFUCHSIA( vkGetDeviceProcAddr( device, "vkGetMemoryZirconHandleFUCHSIA" ) );
-# endif /*VK_USE_PLATFORM_FUCHSIA*/
-# if defined( VK_USE_PLATFORM_FUCHSIA )
- vkGetMemoryZirconHandlePropertiesFUCHSIA = PFN_vkGetMemoryZirconHandlePropertiesFUCHSIA(
- vkGetDeviceProcAddr( device, "vkGetMemoryZirconHandlePropertiesFUCHSIA" ) );
-# endif /*VK_USE_PLATFORM_FUCHSIA*/
- vkGetPastPresentationTimingGOOGLE =
- PFN_vkGetPastPresentationTimingGOOGLE( vkGetDeviceProcAddr( device, "vkGetPastPresentationTimingGOOGLE" ) );
- vkGetPerformanceParameterINTEL =
- PFN_vkGetPerformanceParameterINTEL( vkGetDeviceProcAddr( device, "vkGetPerformanceParameterINTEL" ) );
- vkGetPipelineCacheData = PFN_vkGetPipelineCacheData( vkGetDeviceProcAddr( device, "vkGetPipelineCacheData" ) );
- vkGetPipelineExecutableInternalRepresentationsKHR = PFN_vkGetPipelineExecutableInternalRepresentationsKHR(
- vkGetDeviceProcAddr( device, "vkGetPipelineExecutableInternalRepresentationsKHR" ) );
+
+ //=== VK_KHR_external_semaphore_fd ===
+ vkImportSemaphoreFdKHR = PFN_vkImportSemaphoreFdKHR( vkGetDeviceProcAddr( device, "vkImportSemaphoreFdKHR" ) );
+ vkGetSemaphoreFdKHR = PFN_vkGetSemaphoreFdKHR( vkGetDeviceProcAddr( device, "vkGetSemaphoreFdKHR" ) );
+
+# if defined( VK_USE_PLATFORM_WIN32_KHR )
+ //=== VK_KHR_external_semaphore_win32 ===
+ vkImportSemaphoreWin32HandleKHR =
+ PFN_vkImportSemaphoreWin32HandleKHR( vkGetDeviceProcAddr( device, "vkImportSemaphoreWin32HandleKHR" ) );
+ vkGetSemaphoreWin32HandleKHR =
+ PFN_vkGetSemaphoreWin32HandleKHR( vkGetDeviceProcAddr( device, "vkGetSemaphoreWin32HandleKHR" ) );
+# endif /*VK_USE_PLATFORM_WIN32_KHR*/
+
+ //=== VK_KHR_fragment_shading_rate ===
+ vkCmdSetFragmentShadingRateKHR =
+ PFN_vkCmdSetFragmentShadingRateKHR( vkGetDeviceProcAddr( device, "vkCmdSetFragmentShadingRateKHR" ) );
+
+ //=== VK_KHR_get_memory_requirements2 ===
+ vkGetImageMemoryRequirements2KHR =
+ PFN_vkGetImageMemoryRequirements2KHR( vkGetDeviceProcAddr( device, "vkGetImageMemoryRequirements2KHR" ) );
+ if ( !vkGetImageMemoryRequirements2 )
+ vkGetImageMemoryRequirements2 = vkGetImageMemoryRequirements2KHR;
+ vkGetBufferMemoryRequirements2KHR =
+ PFN_vkGetBufferMemoryRequirements2KHR( vkGetDeviceProcAddr( device, "vkGetBufferMemoryRequirements2KHR" ) );
+ if ( !vkGetBufferMemoryRequirements2 )
+ vkGetBufferMemoryRequirements2 = vkGetBufferMemoryRequirements2KHR;
+ vkGetImageSparseMemoryRequirements2KHR = PFN_vkGetImageSparseMemoryRequirements2KHR(
+ vkGetDeviceProcAddr( device, "vkGetImageSparseMemoryRequirements2KHR" ) );
+ if ( !vkGetImageSparseMemoryRequirements2 )
+ vkGetImageSparseMemoryRequirements2 = vkGetImageSparseMemoryRequirements2KHR;
+
+ //=== VK_KHR_maintenance1 ===
+ vkTrimCommandPoolKHR = PFN_vkTrimCommandPoolKHR( vkGetDeviceProcAddr( device, "vkTrimCommandPoolKHR" ) );
+ if ( !vkTrimCommandPool )
+ vkTrimCommandPool = vkTrimCommandPoolKHR;
+
+ //=== VK_KHR_maintenance3 ===
+ vkGetDescriptorSetLayoutSupportKHR =
+ PFN_vkGetDescriptorSetLayoutSupportKHR( vkGetDeviceProcAddr( device, "vkGetDescriptorSetLayoutSupportKHR" ) );
+ if ( !vkGetDescriptorSetLayoutSupport )
+ vkGetDescriptorSetLayoutSupport = vkGetDescriptorSetLayoutSupportKHR;
+
+ //=== VK_KHR_performance_query ===
+ vkAcquireProfilingLockKHR =
+ PFN_vkAcquireProfilingLockKHR( vkGetDeviceProcAddr( device, "vkAcquireProfilingLockKHR" ) );
+ vkReleaseProfilingLockKHR =
+ PFN_vkReleaseProfilingLockKHR( vkGetDeviceProcAddr( device, "vkReleaseProfilingLockKHR" ) );
+
+ //=== VK_KHR_pipeline_executable_properties ===
vkGetPipelineExecutablePropertiesKHR = PFN_vkGetPipelineExecutablePropertiesKHR(
vkGetDeviceProcAddr( device, "vkGetPipelineExecutablePropertiesKHR" ) );
vkGetPipelineExecutableStatisticsKHR = PFN_vkGetPipelineExecutableStatisticsKHR(
vkGetDeviceProcAddr( device, "vkGetPipelineExecutableStatisticsKHR" ) );
- vkGetPrivateDataEXT = PFN_vkGetPrivateDataEXT( vkGetDeviceProcAddr( device, "vkGetPrivateDataEXT" ) );
- vkGetQueryPoolResults = PFN_vkGetQueryPoolResults( vkGetDeviceProcAddr( device, "vkGetQueryPoolResults" ) );
- vkGetQueueCheckpointData2NV =
- PFN_vkGetQueueCheckpointData2NV( vkGetDeviceProcAddr( device, "vkGetQueueCheckpointData2NV" ) );
- vkGetQueueCheckpointDataNV =
- PFN_vkGetQueueCheckpointDataNV( vkGetDeviceProcAddr( device, "vkGetQueueCheckpointDataNV" ) );
- vkGetRayTracingCaptureReplayShaderGroupHandlesKHR = PFN_vkGetRayTracingCaptureReplayShaderGroupHandlesKHR(
- vkGetDeviceProcAddr( device, "vkGetRayTracingCaptureReplayShaderGroupHandlesKHR" ) );
+ vkGetPipelineExecutableInternalRepresentationsKHR = PFN_vkGetPipelineExecutableInternalRepresentationsKHR(
+ vkGetDeviceProcAddr( device, "vkGetPipelineExecutableInternalRepresentationsKHR" ) );
+
+ //=== VK_KHR_present_wait ===
+ vkWaitForPresentKHR = PFN_vkWaitForPresentKHR( vkGetDeviceProcAddr( device, "vkWaitForPresentKHR" ) );
+
+ //=== VK_KHR_push_descriptor ===
+ vkCmdPushDescriptorSetKHR =
+ PFN_vkCmdPushDescriptorSetKHR( vkGetDeviceProcAddr( device, "vkCmdPushDescriptorSetKHR" ) );
+
+ //=== VK_KHR_ray_tracing_pipeline ===
+ vkCmdTraceRaysKHR = PFN_vkCmdTraceRaysKHR( vkGetDeviceProcAddr( device, "vkCmdTraceRaysKHR" ) );
+ vkCreateRayTracingPipelinesKHR =
+ PFN_vkCreateRayTracingPipelinesKHR( vkGetDeviceProcAddr( device, "vkCreateRayTracingPipelinesKHR" ) );
vkGetRayTracingShaderGroupHandlesKHR = PFN_vkGetRayTracingShaderGroupHandlesKHR(
vkGetDeviceProcAddr( device, "vkGetRayTracingShaderGroupHandlesKHR" ) );
- vkGetRayTracingShaderGroupHandlesNV = PFN_vkGetRayTracingShaderGroupHandlesNV(
- vkGetDeviceProcAddr( device, "vkGetRayTracingShaderGroupHandlesNV" ) );
- if ( !vkGetRayTracingShaderGroupHandlesKHR )
- vkGetRayTracingShaderGroupHandlesKHR = vkGetRayTracingShaderGroupHandlesNV;
+ vkGetRayTracingCaptureReplayShaderGroupHandlesKHR = PFN_vkGetRayTracingCaptureReplayShaderGroupHandlesKHR(
+ vkGetDeviceProcAddr( device, "vkGetRayTracingCaptureReplayShaderGroupHandlesKHR" ) );
+ vkCmdTraceRaysIndirectKHR =
+ PFN_vkCmdTraceRaysIndirectKHR( vkGetDeviceProcAddr( device, "vkCmdTraceRaysIndirectKHR" ) );
vkGetRayTracingShaderGroupStackSizeKHR = PFN_vkGetRayTracingShaderGroupStackSizeKHR(
vkGetDeviceProcAddr( device, "vkGetRayTracingShaderGroupStackSizeKHR" ) );
- vkGetRefreshCycleDurationGOOGLE =
- PFN_vkGetRefreshCycleDurationGOOGLE( vkGetDeviceProcAddr( device, "vkGetRefreshCycleDurationGOOGLE" ) );
- vkGetRenderAreaGranularity =
- PFN_vkGetRenderAreaGranularity( vkGetDeviceProcAddr( device, "vkGetRenderAreaGranularity" ) );
- vkGetSemaphoreCounterValue =
- PFN_vkGetSemaphoreCounterValue( vkGetDeviceProcAddr( device, "vkGetSemaphoreCounterValue" ) );
+ vkCmdSetRayTracingPipelineStackSizeKHR = PFN_vkCmdSetRayTracingPipelineStackSizeKHR(
+ vkGetDeviceProcAddr( device, "vkCmdSetRayTracingPipelineStackSizeKHR" ) );
+
+ //=== VK_KHR_sampler_ycbcr_conversion ===
+ vkCreateSamplerYcbcrConversionKHR =
+ PFN_vkCreateSamplerYcbcrConversionKHR( vkGetDeviceProcAddr( device, "vkCreateSamplerYcbcrConversionKHR" ) );
+ if ( !vkCreateSamplerYcbcrConversion )
+ vkCreateSamplerYcbcrConversion = vkCreateSamplerYcbcrConversionKHR;
+ vkDestroySamplerYcbcrConversionKHR =
+ PFN_vkDestroySamplerYcbcrConversionKHR( vkGetDeviceProcAddr( device, "vkDestroySamplerYcbcrConversionKHR" ) );
+ if ( !vkDestroySamplerYcbcrConversion )
+ vkDestroySamplerYcbcrConversion = vkDestroySamplerYcbcrConversionKHR;
+
+ //=== VK_KHR_shared_presentable_image ===
+ vkGetSwapchainStatusKHR =
+ PFN_vkGetSwapchainStatusKHR( vkGetDeviceProcAddr( device, "vkGetSwapchainStatusKHR" ) );
+
+ //=== VK_KHR_swapchain ===
+ vkCreateSwapchainKHR = PFN_vkCreateSwapchainKHR( vkGetDeviceProcAddr( device, "vkCreateSwapchainKHR" ) );
+ vkDestroySwapchainKHR = PFN_vkDestroySwapchainKHR( vkGetDeviceProcAddr( device, "vkDestroySwapchainKHR" ) );
+ vkGetSwapchainImagesKHR =
+ PFN_vkGetSwapchainImagesKHR( vkGetDeviceProcAddr( device, "vkGetSwapchainImagesKHR" ) );
+ vkAcquireNextImageKHR = PFN_vkAcquireNextImageKHR( vkGetDeviceProcAddr( device, "vkAcquireNextImageKHR" ) );
+ vkQueuePresentKHR = PFN_vkQueuePresentKHR( vkGetDeviceProcAddr( device, "vkQueuePresentKHR" ) );
+
+ //=== VK_KHR_synchronization2 ===
+ vkCmdSetEvent2KHR = PFN_vkCmdSetEvent2KHR( vkGetDeviceProcAddr( device, "vkCmdSetEvent2KHR" ) );
+ vkCmdResetEvent2KHR = PFN_vkCmdResetEvent2KHR( vkGetDeviceProcAddr( device, "vkCmdResetEvent2KHR" ) );
+ vkCmdWaitEvents2KHR = PFN_vkCmdWaitEvents2KHR( vkGetDeviceProcAddr( device, "vkCmdWaitEvents2KHR" ) );
+ vkCmdPipelineBarrier2KHR =
+ PFN_vkCmdPipelineBarrier2KHR( vkGetDeviceProcAddr( device, "vkCmdPipelineBarrier2KHR" ) );
+ vkCmdWriteTimestamp2KHR =
+ PFN_vkCmdWriteTimestamp2KHR( vkGetDeviceProcAddr( device, "vkCmdWriteTimestamp2KHR" ) );
+ vkQueueSubmit2KHR = PFN_vkQueueSubmit2KHR( vkGetDeviceProcAddr( device, "vkQueueSubmit2KHR" ) );
+ vkCmdWriteBufferMarker2AMD =
+ PFN_vkCmdWriteBufferMarker2AMD( vkGetDeviceProcAddr( device, "vkCmdWriteBufferMarker2AMD" ) );
+ vkGetQueueCheckpointData2NV =
+ PFN_vkGetQueueCheckpointData2NV( vkGetDeviceProcAddr( device, "vkGetQueueCheckpointData2NV" ) );
+
+ //=== VK_KHR_timeline_semaphore ===
vkGetSemaphoreCounterValueKHR =
PFN_vkGetSemaphoreCounterValueKHR( vkGetDeviceProcAddr( device, "vkGetSemaphoreCounterValueKHR" ) );
if ( !vkGetSemaphoreCounterValue )
vkGetSemaphoreCounterValue = vkGetSemaphoreCounterValueKHR;
- vkGetSemaphoreFdKHR = PFN_vkGetSemaphoreFdKHR( vkGetDeviceProcAddr( device, "vkGetSemaphoreFdKHR" ) );
-# if defined( VK_USE_PLATFORM_WIN32_KHR )
- vkGetSemaphoreWin32HandleKHR =
- PFN_vkGetSemaphoreWin32HandleKHR( vkGetDeviceProcAddr( device, "vkGetSemaphoreWin32HandleKHR" ) );
-# endif /*VK_USE_PLATFORM_WIN32_KHR*/
-# if defined( VK_USE_PLATFORM_FUCHSIA )
- vkGetSemaphoreZirconHandleFUCHSIA =
- PFN_vkGetSemaphoreZirconHandleFUCHSIA( vkGetDeviceProcAddr( device, "vkGetSemaphoreZirconHandleFUCHSIA" ) );
-# endif /*VK_USE_PLATFORM_FUCHSIA*/
- vkGetShaderInfoAMD = PFN_vkGetShaderInfoAMD( vkGetDeviceProcAddr( device, "vkGetShaderInfoAMD" ) );
- vkGetSubpassShadingMaxWorkgroupSizeHUAWEI = PFN_vkGetSubpassShadingMaxWorkgroupSizeHUAWEI(
- vkGetDeviceProcAddr( device, "vkGetSubpassShadingMaxWorkgroupSizeHUAWEI" ) );
- vkGetSwapchainCounterEXT =
- PFN_vkGetSwapchainCounterEXT( vkGetDeviceProcAddr( device, "vkGetSwapchainCounterEXT" ) );
- vkGetSwapchainImagesKHR =
- PFN_vkGetSwapchainImagesKHR( vkGetDeviceProcAddr( device, "vkGetSwapchainImagesKHR" ) );
- vkGetSwapchainStatusKHR =
- PFN_vkGetSwapchainStatusKHR( vkGetDeviceProcAddr( device, "vkGetSwapchainStatusKHR" ) );
- vkGetValidationCacheDataEXT =
- PFN_vkGetValidationCacheDataEXT( vkGetDeviceProcAddr( device, "vkGetValidationCacheDataEXT" ) );
-# if defined( VK_ENABLE_BETA_EXTENSIONS )
- vkGetVideoSessionMemoryRequirementsKHR = PFN_vkGetVideoSessionMemoryRequirementsKHR(
- vkGetDeviceProcAddr( device, "vkGetVideoSessionMemoryRequirementsKHR" ) );
-# endif /*VK_ENABLE_BETA_EXTENSIONS*/
- vkImportFenceFdKHR = PFN_vkImportFenceFdKHR( vkGetDeviceProcAddr( device, "vkImportFenceFdKHR" ) );
-# if defined( VK_USE_PLATFORM_WIN32_KHR )
- vkImportFenceWin32HandleKHR =
- PFN_vkImportFenceWin32HandleKHR( vkGetDeviceProcAddr( device, "vkImportFenceWin32HandleKHR" ) );
-# endif /*VK_USE_PLATFORM_WIN32_KHR*/
- vkImportSemaphoreFdKHR = PFN_vkImportSemaphoreFdKHR( vkGetDeviceProcAddr( device, "vkImportSemaphoreFdKHR" ) );
-# if defined( VK_USE_PLATFORM_WIN32_KHR )
- vkImportSemaphoreWin32HandleKHR =
- PFN_vkImportSemaphoreWin32HandleKHR( vkGetDeviceProcAddr( device, "vkImportSemaphoreWin32HandleKHR" ) );
-# endif /*VK_USE_PLATFORM_WIN32_KHR*/
-# if defined( VK_USE_PLATFORM_FUCHSIA )
- vkImportSemaphoreZirconHandleFUCHSIA = PFN_vkImportSemaphoreZirconHandleFUCHSIA(
- vkGetDeviceProcAddr( device, "vkImportSemaphoreZirconHandleFUCHSIA" ) );
-# endif /*VK_USE_PLATFORM_FUCHSIA*/
- vkInitializePerformanceApiINTEL =
- PFN_vkInitializePerformanceApiINTEL( vkGetDeviceProcAddr( device, "vkInitializePerformanceApiINTEL" ) );
- vkInvalidateMappedMemoryRanges =
- PFN_vkInvalidateMappedMemoryRanges( vkGetDeviceProcAddr( device, "vkInvalidateMappedMemoryRanges" ) );
- vkMapMemory = PFN_vkMapMemory( vkGetDeviceProcAddr( device, "vkMapMemory" ) );
- vkMergePipelineCaches = PFN_vkMergePipelineCaches( vkGetDeviceProcAddr( device, "vkMergePipelineCaches" ) );
- vkMergeValidationCachesEXT =
- PFN_vkMergeValidationCachesEXT( vkGetDeviceProcAddr( device, "vkMergeValidationCachesEXT" ) );
- vkQueueBeginDebugUtilsLabelEXT =
- PFN_vkQueueBeginDebugUtilsLabelEXT( vkGetDeviceProcAddr( device, "vkQueueBeginDebugUtilsLabelEXT" ) );
- vkQueueBindSparse = PFN_vkQueueBindSparse( vkGetDeviceProcAddr( device, "vkQueueBindSparse" ) );
- vkQueueEndDebugUtilsLabelEXT =
- PFN_vkQueueEndDebugUtilsLabelEXT( vkGetDeviceProcAddr( device, "vkQueueEndDebugUtilsLabelEXT" ) );
- vkQueueInsertDebugUtilsLabelEXT =
- PFN_vkQueueInsertDebugUtilsLabelEXT( vkGetDeviceProcAddr( device, "vkQueueInsertDebugUtilsLabelEXT" ) );
- vkQueuePresentKHR = PFN_vkQueuePresentKHR( vkGetDeviceProcAddr( device, "vkQueuePresentKHR" ) );
- vkQueueSetPerformanceConfigurationINTEL = PFN_vkQueueSetPerformanceConfigurationINTEL(
- vkGetDeviceProcAddr( device, "vkQueueSetPerformanceConfigurationINTEL" ) );
- vkQueueSubmit = PFN_vkQueueSubmit( vkGetDeviceProcAddr( device, "vkQueueSubmit" ) );
- vkQueueSubmit2KHR = PFN_vkQueueSubmit2KHR( vkGetDeviceProcAddr( device, "vkQueueSubmit2KHR" ) );
- vkQueueWaitIdle = PFN_vkQueueWaitIdle( vkGetDeviceProcAddr( device, "vkQueueWaitIdle" ) );
- vkRegisterDeviceEventEXT =
- PFN_vkRegisterDeviceEventEXT( vkGetDeviceProcAddr( device, "vkRegisterDeviceEventEXT" ) );
- vkRegisterDisplayEventEXT =
- PFN_vkRegisterDisplayEventEXT( vkGetDeviceProcAddr( device, "vkRegisterDisplayEventEXT" ) );
-# if defined( VK_USE_PLATFORM_WIN32_KHR )
- vkReleaseFullScreenExclusiveModeEXT = PFN_vkReleaseFullScreenExclusiveModeEXT(
- vkGetDeviceProcAddr( device, "vkReleaseFullScreenExclusiveModeEXT" ) );
-# endif /*VK_USE_PLATFORM_WIN32_KHR*/
- vkReleasePerformanceConfigurationINTEL = PFN_vkReleasePerformanceConfigurationINTEL(
- vkGetDeviceProcAddr( device, "vkReleasePerformanceConfigurationINTEL" ) );
- vkReleaseProfilingLockKHR =
- PFN_vkReleaseProfilingLockKHR( vkGetDeviceProcAddr( device, "vkReleaseProfilingLockKHR" ) );
- vkResetCommandBuffer = PFN_vkResetCommandBuffer( vkGetDeviceProcAddr( device, "vkResetCommandBuffer" ) );
- vkResetCommandPool = PFN_vkResetCommandPool( vkGetDeviceProcAddr( device, "vkResetCommandPool" ) );
- vkResetDescriptorPool = PFN_vkResetDescriptorPool( vkGetDeviceProcAddr( device, "vkResetDescriptorPool" ) );
- vkResetEvent = PFN_vkResetEvent( vkGetDeviceProcAddr( device, "vkResetEvent" ) );
- vkResetFences = PFN_vkResetFences( vkGetDeviceProcAddr( device, "vkResetFences" ) );
- vkResetQueryPool = PFN_vkResetQueryPool( vkGetDeviceProcAddr( device, "vkResetQueryPool" ) );
- vkResetQueryPoolEXT = PFN_vkResetQueryPoolEXT( vkGetDeviceProcAddr( device, "vkResetQueryPoolEXT" ) );
- if ( !vkResetQueryPool )
- vkResetQueryPool = vkResetQueryPoolEXT;
- vkSetDebugUtilsObjectNameEXT =
- PFN_vkSetDebugUtilsObjectNameEXT( vkGetDeviceProcAddr( device, "vkSetDebugUtilsObjectNameEXT" ) );
- vkSetDebugUtilsObjectTagEXT =
- PFN_vkSetDebugUtilsObjectTagEXT( vkGetDeviceProcAddr( device, "vkSetDebugUtilsObjectTagEXT" ) );
- vkSetEvent = PFN_vkSetEvent( vkGetDeviceProcAddr( device, "vkSetEvent" ) );
- vkSetHdrMetadataEXT = PFN_vkSetHdrMetadataEXT( vkGetDeviceProcAddr( device, "vkSetHdrMetadataEXT" ) );
- vkSetLocalDimmingAMD = PFN_vkSetLocalDimmingAMD( vkGetDeviceProcAddr( device, "vkSetLocalDimmingAMD" ) );
- vkSetPrivateDataEXT = PFN_vkSetPrivateDataEXT( vkGetDeviceProcAddr( device, "vkSetPrivateDataEXT" ) );
- vkSignalSemaphore = PFN_vkSignalSemaphore( vkGetDeviceProcAddr( device, "vkSignalSemaphore" ) );
- vkSignalSemaphoreKHR = PFN_vkSignalSemaphoreKHR( vkGetDeviceProcAddr( device, "vkSignalSemaphoreKHR" ) );
- if ( !vkSignalSemaphore )
- vkSignalSemaphore = vkSignalSemaphoreKHR;
- vkTrimCommandPool = PFN_vkTrimCommandPool( vkGetDeviceProcAddr( device, "vkTrimCommandPool" ) );
- vkTrimCommandPoolKHR = PFN_vkTrimCommandPoolKHR( vkGetDeviceProcAddr( device, "vkTrimCommandPoolKHR" ) );
- if ( !vkTrimCommandPool )
- vkTrimCommandPool = vkTrimCommandPoolKHR;
- vkUninitializePerformanceApiINTEL =
- PFN_vkUninitializePerformanceApiINTEL( vkGetDeviceProcAddr( device, "vkUninitializePerformanceApiINTEL" ) );
- vkUnmapMemory = PFN_vkUnmapMemory( vkGetDeviceProcAddr( device, "vkUnmapMemory" ) );
- vkUpdateDescriptorSetWithTemplate =
- PFN_vkUpdateDescriptorSetWithTemplate( vkGetDeviceProcAddr( device, "vkUpdateDescriptorSetWithTemplate" ) );
- vkUpdateDescriptorSetWithTemplateKHR = PFN_vkUpdateDescriptorSetWithTemplateKHR(
- vkGetDeviceProcAddr( device, "vkUpdateDescriptorSetWithTemplateKHR" ) );
- if ( !vkUpdateDescriptorSetWithTemplate )
- vkUpdateDescriptorSetWithTemplate = vkUpdateDescriptorSetWithTemplateKHR;
- vkUpdateDescriptorSets = PFN_vkUpdateDescriptorSets( vkGetDeviceProcAddr( device, "vkUpdateDescriptorSets" ) );
-# if defined( VK_ENABLE_BETA_EXTENSIONS )
- vkUpdateVideoSessionParametersKHR =
- PFN_vkUpdateVideoSessionParametersKHR( vkGetDeviceProcAddr( device, "vkUpdateVideoSessionParametersKHR" ) );
-# endif /*VK_ENABLE_BETA_EXTENSIONS*/
- vkWaitForFences = PFN_vkWaitForFences( vkGetDeviceProcAddr( device, "vkWaitForFences" ) );
- vkWaitSemaphores = PFN_vkWaitSemaphores( vkGetDeviceProcAddr( device, "vkWaitSemaphores" ) );
vkWaitSemaphoresKHR = PFN_vkWaitSemaphoresKHR( vkGetDeviceProcAddr( device, "vkWaitSemaphoresKHR" ) );
if ( !vkWaitSemaphores )
vkWaitSemaphores = vkWaitSemaphoresKHR;
- vkWriteAccelerationStructuresPropertiesKHR = PFN_vkWriteAccelerationStructuresPropertiesKHR(
- vkGetDeviceProcAddr( device, "vkWriteAccelerationStructuresPropertiesKHR" ) );
- }
+ vkSignalSemaphoreKHR = PFN_vkSignalSemaphoreKHR( vkGetDeviceProcAddr( device, "vkSignalSemaphoreKHR" ) );
+ if ( !vkSignalSemaphore )
+ vkSignalSemaphore = vkSignalSemaphoreKHR;
- public:
-# if defined( VK_USE_PLATFORM_WIN32_KHR )
- PFN_vkAcquireFullScreenExclusiveModeEXT vkAcquireFullScreenExclusiveModeEXT = 0;
-# endif /*VK_USE_PLATFORM_WIN32_KHR*/
- PFN_vkAcquireNextImage2KHR vkAcquireNextImage2KHR = 0;
- PFN_vkAcquireNextImageKHR vkAcquireNextImageKHR = 0;
- PFN_vkAcquirePerformanceConfigurationINTEL vkAcquirePerformanceConfigurationINTEL = 0;
- PFN_vkAcquireProfilingLockKHR vkAcquireProfilingLockKHR = 0;
- PFN_vkAllocateCommandBuffers vkAllocateCommandBuffers = 0;
- PFN_vkAllocateDescriptorSets vkAllocateDescriptorSets = 0;
- PFN_vkAllocateMemory vkAllocateMemory = 0;
- PFN_vkBeginCommandBuffer vkBeginCommandBuffer = 0;
- PFN_vkBindAccelerationStructureMemoryNV vkBindAccelerationStructureMemoryNV = 0;
- PFN_vkBindBufferMemory vkBindBufferMemory = 0;
- PFN_vkBindBufferMemory2 vkBindBufferMemory2 = 0;
- PFN_vkBindBufferMemory2KHR vkBindBufferMemory2KHR = 0;
- PFN_vkBindImageMemory vkBindImageMemory = 0;
- PFN_vkBindImageMemory2 vkBindImageMemory2 = 0;
- PFN_vkBindImageMemory2KHR vkBindImageMemory2KHR = 0;
-# if defined( VK_ENABLE_BETA_EXTENSIONS )
- PFN_vkBindVideoSessionMemoryKHR vkBindVideoSessionMemoryKHR = 0;
-# endif /*VK_ENABLE_BETA_EXTENSIONS*/
- PFN_vkBuildAccelerationStructuresKHR vkBuildAccelerationStructuresKHR = 0;
- PFN_vkCmdBeginConditionalRenderingEXT vkCmdBeginConditionalRenderingEXT = 0;
- PFN_vkCmdBeginDebugUtilsLabelEXT vkCmdBeginDebugUtilsLabelEXT = 0;
- PFN_vkCmdBeginQuery vkCmdBeginQuery = 0;
- PFN_vkCmdBeginQueryIndexedEXT vkCmdBeginQueryIndexedEXT = 0;
- PFN_vkCmdBeginRenderPass vkCmdBeginRenderPass = 0;
- PFN_vkCmdBeginRenderPass2 vkCmdBeginRenderPass2 = 0;
- PFN_vkCmdBeginRenderPass2KHR vkCmdBeginRenderPass2KHR = 0;
- PFN_vkCmdBeginTransformFeedbackEXT vkCmdBeginTransformFeedbackEXT = 0;
-# if defined( VK_ENABLE_BETA_EXTENSIONS )
- PFN_vkCmdBeginVideoCodingKHR vkCmdBeginVideoCodingKHR = 0;
-# endif /*VK_ENABLE_BETA_EXTENSIONS*/
- PFN_vkCmdBindDescriptorSets vkCmdBindDescriptorSets = 0;
- PFN_vkCmdBindIndexBuffer vkCmdBindIndexBuffer = 0;
- PFN_vkCmdBindPipeline vkCmdBindPipeline = 0;
- PFN_vkCmdBindPipelineShaderGroupNV vkCmdBindPipelineShaderGroupNV = 0;
- PFN_vkCmdBindShadingRateImageNV vkCmdBindShadingRateImageNV = 0;
- PFN_vkCmdBindTransformFeedbackBuffersEXT vkCmdBindTransformFeedbackBuffersEXT = 0;
- PFN_vkCmdBindVertexBuffers vkCmdBindVertexBuffers = 0;
- PFN_vkCmdBindVertexBuffers2EXT vkCmdBindVertexBuffers2EXT = 0;
- PFN_vkCmdBlitImage vkCmdBlitImage = 0;
- PFN_vkCmdBlitImage2KHR vkCmdBlitImage2KHR = 0;
- PFN_vkCmdBuildAccelerationStructureNV vkCmdBuildAccelerationStructureNV = 0;
- PFN_vkCmdBuildAccelerationStructuresIndirectKHR vkCmdBuildAccelerationStructuresIndirectKHR = 0;
- PFN_vkCmdBuildAccelerationStructuresKHR vkCmdBuildAccelerationStructuresKHR = 0;
- PFN_vkCmdClearAttachments vkCmdClearAttachments = 0;
- PFN_vkCmdClearColorImage vkCmdClearColorImage = 0;
- PFN_vkCmdClearDepthStencilImage vkCmdClearDepthStencilImage = 0;
-# if defined( VK_ENABLE_BETA_EXTENSIONS )
- PFN_vkCmdControlVideoCodingKHR vkCmdControlVideoCodingKHR = 0;
-# endif /*VK_ENABLE_BETA_EXTENSIONS*/
- PFN_vkCmdCopyAccelerationStructureKHR vkCmdCopyAccelerationStructureKHR = 0;
- PFN_vkCmdCopyAccelerationStructureNV vkCmdCopyAccelerationStructureNV = 0;
- PFN_vkCmdCopyAccelerationStructureToMemoryKHR vkCmdCopyAccelerationStructureToMemoryKHR = 0;
- PFN_vkCmdCopyBuffer vkCmdCopyBuffer = 0;
- PFN_vkCmdCopyBuffer2KHR vkCmdCopyBuffer2KHR = 0;
- PFN_vkCmdCopyBufferToImage vkCmdCopyBufferToImage = 0;
- PFN_vkCmdCopyBufferToImage2KHR vkCmdCopyBufferToImage2KHR = 0;
- PFN_vkCmdCopyImage vkCmdCopyImage = 0;
- PFN_vkCmdCopyImage2KHR vkCmdCopyImage2KHR = 0;
- PFN_vkCmdCopyImageToBuffer vkCmdCopyImageToBuffer = 0;
- PFN_vkCmdCopyImageToBuffer2KHR vkCmdCopyImageToBuffer2KHR = 0;
- PFN_vkCmdCopyMemoryToAccelerationStructureKHR vkCmdCopyMemoryToAccelerationStructureKHR = 0;
- PFN_vkCmdCopyQueryPoolResults vkCmdCopyQueryPoolResults = 0;
- PFN_vkCmdCuLaunchKernelNVX vkCmdCuLaunchKernelNVX = 0;
- PFN_vkCmdDebugMarkerBeginEXT vkCmdDebugMarkerBeginEXT = 0;
- PFN_vkCmdDebugMarkerEndEXT vkCmdDebugMarkerEndEXT = 0;
- PFN_vkCmdDebugMarkerInsertEXT vkCmdDebugMarkerInsertEXT = 0;
-# if defined( VK_ENABLE_BETA_EXTENSIONS )
- PFN_vkCmdDecodeVideoKHR vkCmdDecodeVideoKHR = 0;
-# endif /*VK_ENABLE_BETA_EXTENSIONS*/
- PFN_vkCmdDispatch vkCmdDispatch = 0;
- PFN_vkCmdDispatchBase vkCmdDispatchBase = 0;
- PFN_vkCmdDispatchBaseKHR vkCmdDispatchBaseKHR = 0;
- PFN_vkCmdDispatchIndirect vkCmdDispatchIndirect = 0;
- PFN_vkCmdDraw vkCmdDraw = 0;
- PFN_vkCmdDrawIndexed vkCmdDrawIndexed = 0;
- PFN_vkCmdDrawIndexedIndirect vkCmdDrawIndexedIndirect = 0;
- PFN_vkCmdDrawIndexedIndirectCount vkCmdDrawIndexedIndirectCount = 0;
- PFN_vkCmdDrawIndexedIndirectCountAMD vkCmdDrawIndexedIndirectCountAMD = 0;
- PFN_vkCmdDrawIndexedIndirectCountKHR vkCmdDrawIndexedIndirectCountKHR = 0;
- PFN_vkCmdDrawIndirect vkCmdDrawIndirect = 0;
- PFN_vkCmdDrawIndirectByteCountEXT vkCmdDrawIndirectByteCountEXT = 0;
- PFN_vkCmdDrawIndirectCount vkCmdDrawIndirectCount = 0;
- PFN_vkCmdDrawIndirectCountAMD vkCmdDrawIndirectCountAMD = 0;
- PFN_vkCmdDrawIndirectCountKHR vkCmdDrawIndirectCountKHR = 0;
- PFN_vkCmdDrawMeshTasksIndirectCountNV vkCmdDrawMeshTasksIndirectCountNV = 0;
- PFN_vkCmdDrawMeshTasksIndirectNV vkCmdDrawMeshTasksIndirectNV = 0;
- PFN_vkCmdDrawMeshTasksNV vkCmdDrawMeshTasksNV = 0;
- PFN_vkCmdDrawMultiEXT vkCmdDrawMultiEXT = 0;
- PFN_vkCmdDrawMultiIndexedEXT vkCmdDrawMultiIndexedEXT = 0;
-# if defined( VK_ENABLE_BETA_EXTENSIONS )
- PFN_vkCmdEncodeVideoKHR vkCmdEncodeVideoKHR = 0;
-# endif /*VK_ENABLE_BETA_EXTENSIONS*/
- PFN_vkCmdEndConditionalRenderingEXT vkCmdEndConditionalRenderingEXT = 0;
- PFN_vkCmdEndDebugUtilsLabelEXT vkCmdEndDebugUtilsLabelEXT = 0;
- PFN_vkCmdEndQuery vkCmdEndQuery = 0;
- PFN_vkCmdEndQueryIndexedEXT vkCmdEndQueryIndexedEXT = 0;
- PFN_vkCmdEndRenderPass vkCmdEndRenderPass = 0;
- PFN_vkCmdEndRenderPass2 vkCmdEndRenderPass2 = 0;
- PFN_vkCmdEndRenderPass2KHR vkCmdEndRenderPass2KHR = 0;
- PFN_vkCmdEndTransformFeedbackEXT vkCmdEndTransformFeedbackEXT = 0;
# if defined( VK_ENABLE_BETA_EXTENSIONS )
- PFN_vkCmdEndVideoCodingKHR vkCmdEndVideoCodingKHR = 0;
-# endif /*VK_ENABLE_BETA_EXTENSIONS*/
- PFN_vkCmdExecuteCommands vkCmdExecuteCommands = 0;
- PFN_vkCmdExecuteGeneratedCommandsNV vkCmdExecuteGeneratedCommandsNV = 0;
- PFN_vkCmdFillBuffer vkCmdFillBuffer = 0;
- PFN_vkCmdInsertDebugUtilsLabelEXT vkCmdInsertDebugUtilsLabelEXT = 0;
- PFN_vkCmdNextSubpass vkCmdNextSubpass = 0;
- PFN_vkCmdNextSubpass2 vkCmdNextSubpass2 = 0;
- PFN_vkCmdNextSubpass2KHR vkCmdNextSubpass2KHR = 0;
- PFN_vkCmdPipelineBarrier vkCmdPipelineBarrier = 0;
- PFN_vkCmdPipelineBarrier2KHR vkCmdPipelineBarrier2KHR = 0;
- PFN_vkCmdPreprocessGeneratedCommandsNV vkCmdPreprocessGeneratedCommandsNV = 0;
- PFN_vkCmdPushConstants vkCmdPushConstants = 0;
- PFN_vkCmdPushDescriptorSetKHR vkCmdPushDescriptorSetKHR = 0;
- PFN_vkCmdPushDescriptorSetWithTemplateKHR vkCmdPushDescriptorSetWithTemplateKHR = 0;
- PFN_vkCmdResetEvent vkCmdResetEvent = 0;
- PFN_vkCmdResetEvent2KHR vkCmdResetEvent2KHR = 0;
- PFN_vkCmdResetQueryPool vkCmdResetQueryPool = 0;
- PFN_vkCmdResolveImage vkCmdResolveImage = 0;
- PFN_vkCmdResolveImage2KHR vkCmdResolveImage2KHR = 0;
- PFN_vkCmdSetBlendConstants vkCmdSetBlendConstants = 0;
- PFN_vkCmdSetCheckpointNV vkCmdSetCheckpointNV = 0;
- PFN_vkCmdSetCoarseSampleOrderNV vkCmdSetCoarseSampleOrderNV = 0;
- PFN_vkCmdSetColorWriteEnableEXT vkCmdSetColorWriteEnableEXT = 0;
- PFN_vkCmdSetCullModeEXT vkCmdSetCullModeEXT = 0;
- PFN_vkCmdSetDepthBias vkCmdSetDepthBias = 0;
- PFN_vkCmdSetDepthBiasEnableEXT vkCmdSetDepthBiasEnableEXT = 0;
- PFN_vkCmdSetDepthBounds vkCmdSetDepthBounds = 0;
- PFN_vkCmdSetDepthBoundsTestEnableEXT vkCmdSetDepthBoundsTestEnableEXT = 0;
- PFN_vkCmdSetDepthCompareOpEXT vkCmdSetDepthCompareOpEXT = 0;
- PFN_vkCmdSetDepthTestEnableEXT vkCmdSetDepthTestEnableEXT = 0;
- PFN_vkCmdSetDepthWriteEnableEXT vkCmdSetDepthWriteEnableEXT = 0;
- PFN_vkCmdSetDeviceMask vkCmdSetDeviceMask = 0;
- PFN_vkCmdSetDeviceMaskKHR vkCmdSetDeviceMaskKHR = 0;
- PFN_vkCmdSetDiscardRectangleEXT vkCmdSetDiscardRectangleEXT = 0;
- PFN_vkCmdSetEvent vkCmdSetEvent = 0;
- PFN_vkCmdSetEvent2KHR vkCmdSetEvent2KHR = 0;
- PFN_vkCmdSetExclusiveScissorNV vkCmdSetExclusiveScissorNV = 0;
- PFN_vkCmdSetFragmentShadingRateEnumNV vkCmdSetFragmentShadingRateEnumNV = 0;
- PFN_vkCmdSetFragmentShadingRateKHR vkCmdSetFragmentShadingRateKHR = 0;
- PFN_vkCmdSetFrontFaceEXT vkCmdSetFrontFaceEXT = 0;
- PFN_vkCmdSetLineStippleEXT vkCmdSetLineStippleEXT = 0;
- PFN_vkCmdSetLineWidth vkCmdSetLineWidth = 0;
- PFN_vkCmdSetLogicOpEXT vkCmdSetLogicOpEXT = 0;
- PFN_vkCmdSetPatchControlPointsEXT vkCmdSetPatchControlPointsEXT = 0;
- PFN_vkCmdSetPerformanceMarkerINTEL vkCmdSetPerformanceMarkerINTEL = 0;
- PFN_vkCmdSetPerformanceOverrideINTEL vkCmdSetPerformanceOverrideINTEL = 0;
- PFN_vkCmdSetPerformanceStreamMarkerINTEL vkCmdSetPerformanceStreamMarkerINTEL = 0;
- PFN_vkCmdSetPrimitiveRestartEnableEXT vkCmdSetPrimitiveRestartEnableEXT = 0;
- PFN_vkCmdSetPrimitiveTopologyEXT vkCmdSetPrimitiveTopologyEXT = 0;
- PFN_vkCmdSetRasterizerDiscardEnableEXT vkCmdSetRasterizerDiscardEnableEXT = 0;
- PFN_vkCmdSetRayTracingPipelineStackSizeKHR vkCmdSetRayTracingPipelineStackSizeKHR = 0;
- PFN_vkCmdSetSampleLocationsEXT vkCmdSetSampleLocationsEXT = 0;
- PFN_vkCmdSetScissor vkCmdSetScissor = 0;
- PFN_vkCmdSetScissorWithCountEXT vkCmdSetScissorWithCountEXT = 0;
- PFN_vkCmdSetStencilCompareMask vkCmdSetStencilCompareMask = 0;
- PFN_vkCmdSetStencilOpEXT vkCmdSetStencilOpEXT = 0;
- PFN_vkCmdSetStencilReference vkCmdSetStencilReference = 0;
- PFN_vkCmdSetStencilTestEnableEXT vkCmdSetStencilTestEnableEXT = 0;
- PFN_vkCmdSetStencilWriteMask vkCmdSetStencilWriteMask = 0;
- PFN_vkCmdSetVertexInputEXT vkCmdSetVertexInputEXT = 0;
- PFN_vkCmdSetViewport vkCmdSetViewport = 0;
- PFN_vkCmdSetViewportShadingRatePaletteNV vkCmdSetViewportShadingRatePaletteNV = 0;
- PFN_vkCmdSetViewportWScalingNV vkCmdSetViewportWScalingNV = 0;
- PFN_vkCmdSetViewportWithCountEXT vkCmdSetViewportWithCountEXT = 0;
- PFN_vkCmdSubpassShadingHUAWEI vkCmdSubpassShadingHUAWEI = 0;
- PFN_vkCmdTraceRaysIndirectKHR vkCmdTraceRaysIndirectKHR = 0;
- PFN_vkCmdTraceRaysKHR vkCmdTraceRaysKHR = 0;
- PFN_vkCmdTraceRaysNV vkCmdTraceRaysNV = 0;
- PFN_vkCmdUpdateBuffer vkCmdUpdateBuffer = 0;
- PFN_vkCmdWaitEvents vkCmdWaitEvents = 0;
- PFN_vkCmdWaitEvents2KHR vkCmdWaitEvents2KHR = 0;
- PFN_vkCmdWriteAccelerationStructuresPropertiesKHR vkCmdWriteAccelerationStructuresPropertiesKHR = 0;
- PFN_vkCmdWriteAccelerationStructuresPropertiesNV vkCmdWriteAccelerationStructuresPropertiesNV = 0;
- PFN_vkCmdWriteBufferMarker2AMD vkCmdWriteBufferMarker2AMD = 0;
- PFN_vkCmdWriteBufferMarkerAMD vkCmdWriteBufferMarkerAMD = 0;
- PFN_vkCmdWriteTimestamp vkCmdWriteTimestamp = 0;
- PFN_vkCmdWriteTimestamp2KHR vkCmdWriteTimestamp2KHR = 0;
- PFN_vkCompileDeferredNV vkCompileDeferredNV = 0;
- PFN_vkCopyAccelerationStructureKHR vkCopyAccelerationStructureKHR = 0;
- PFN_vkCopyAccelerationStructureToMemoryKHR vkCopyAccelerationStructureToMemoryKHR = 0;
- PFN_vkCopyMemoryToAccelerationStructureKHR vkCopyMemoryToAccelerationStructureKHR = 0;
- PFN_vkCreateAccelerationStructureKHR vkCreateAccelerationStructureKHR = 0;
- PFN_vkCreateAccelerationStructureNV vkCreateAccelerationStructureNV = 0;
- PFN_vkCreateBuffer vkCreateBuffer = 0;
- PFN_vkCreateBufferView vkCreateBufferView = 0;
- PFN_vkCreateCommandPool vkCreateCommandPool = 0;
- PFN_vkCreateComputePipelines vkCreateComputePipelines = 0;
- PFN_vkCreateCuFunctionNVX vkCreateCuFunctionNVX = 0;
- PFN_vkCreateCuModuleNVX vkCreateCuModuleNVX = 0;
- PFN_vkCreateDeferredOperationKHR vkCreateDeferredOperationKHR = 0;
- PFN_vkCreateDescriptorPool vkCreateDescriptorPool = 0;
- PFN_vkCreateDescriptorSetLayout vkCreateDescriptorSetLayout = 0;
- PFN_vkCreateDescriptorUpdateTemplate vkCreateDescriptorUpdateTemplate = 0;
- PFN_vkCreateDescriptorUpdateTemplateKHR vkCreateDescriptorUpdateTemplateKHR = 0;
- PFN_vkCreateEvent vkCreateEvent = 0;
- PFN_vkCreateFence vkCreateFence = 0;
- PFN_vkCreateFramebuffer vkCreateFramebuffer = 0;
- PFN_vkCreateGraphicsPipelines vkCreateGraphicsPipelines = 0;
- PFN_vkCreateImage vkCreateImage = 0;
- PFN_vkCreateImageView vkCreateImageView = 0;
- PFN_vkCreateIndirectCommandsLayoutNV vkCreateIndirectCommandsLayoutNV = 0;
- PFN_vkCreatePipelineCache vkCreatePipelineCache = 0;
- PFN_vkCreatePipelineLayout vkCreatePipelineLayout = 0;
- PFN_vkCreatePrivateDataSlotEXT vkCreatePrivateDataSlotEXT = 0;
- PFN_vkCreateQueryPool vkCreateQueryPool = 0;
- PFN_vkCreateRayTracingPipelinesKHR vkCreateRayTracingPipelinesKHR = 0;
- PFN_vkCreateRayTracingPipelinesNV vkCreateRayTracingPipelinesNV = 0;
- PFN_vkCreateRenderPass vkCreateRenderPass = 0;
- PFN_vkCreateRenderPass2 vkCreateRenderPass2 = 0;
- PFN_vkCreateRenderPass2KHR vkCreateRenderPass2KHR = 0;
- PFN_vkCreateSampler vkCreateSampler = 0;
- PFN_vkCreateSamplerYcbcrConversion vkCreateSamplerYcbcrConversion = 0;
- PFN_vkCreateSamplerYcbcrConversionKHR vkCreateSamplerYcbcrConversionKHR = 0;
- PFN_vkCreateSemaphore vkCreateSemaphore = 0;
- PFN_vkCreateShaderModule vkCreateShaderModule = 0;
- PFN_vkCreateSharedSwapchainsKHR vkCreateSharedSwapchainsKHR = 0;
- PFN_vkCreateSwapchainKHR vkCreateSwapchainKHR = 0;
- PFN_vkCreateValidationCacheEXT vkCreateValidationCacheEXT = 0;
-# if defined( VK_ENABLE_BETA_EXTENSIONS )
- PFN_vkCreateVideoSessionKHR vkCreateVideoSessionKHR = 0;
-# endif /*VK_ENABLE_BETA_EXTENSIONS*/
-# if defined( VK_ENABLE_BETA_EXTENSIONS )
- PFN_vkCreateVideoSessionParametersKHR vkCreateVideoSessionParametersKHR = 0;
+ //=== VK_KHR_video_decode_queue ===
+ vkCmdDecodeVideoKHR = PFN_vkCmdDecodeVideoKHR( vkGetDeviceProcAddr( device, "vkCmdDecodeVideoKHR" ) );
# endif /*VK_ENABLE_BETA_EXTENSIONS*/
- PFN_vkDebugMarkerSetObjectNameEXT vkDebugMarkerSetObjectNameEXT = 0;
- PFN_vkDebugMarkerSetObjectTagEXT vkDebugMarkerSetObjectTagEXT = 0;
- PFN_vkDeferredOperationJoinKHR vkDeferredOperationJoinKHR = 0;
- PFN_vkDestroyAccelerationStructureKHR vkDestroyAccelerationStructureKHR = 0;
- PFN_vkDestroyAccelerationStructureNV vkDestroyAccelerationStructureNV = 0;
- PFN_vkDestroyBuffer vkDestroyBuffer = 0;
- PFN_vkDestroyBufferView vkDestroyBufferView = 0;
- PFN_vkDestroyCommandPool vkDestroyCommandPool = 0;
- PFN_vkDestroyCuFunctionNVX vkDestroyCuFunctionNVX = 0;
- PFN_vkDestroyCuModuleNVX vkDestroyCuModuleNVX = 0;
- PFN_vkDestroyDeferredOperationKHR vkDestroyDeferredOperationKHR = 0;
- PFN_vkDestroyDescriptorPool vkDestroyDescriptorPool = 0;
- PFN_vkDestroyDescriptorSetLayout vkDestroyDescriptorSetLayout = 0;
- PFN_vkDestroyDescriptorUpdateTemplate vkDestroyDescriptorUpdateTemplate = 0;
- PFN_vkDestroyDescriptorUpdateTemplateKHR vkDestroyDescriptorUpdateTemplateKHR = 0;
- PFN_vkDestroyDevice vkDestroyDevice = 0;
- PFN_vkDestroyEvent vkDestroyEvent = 0;
- PFN_vkDestroyFence vkDestroyFence = 0;
- PFN_vkDestroyFramebuffer vkDestroyFramebuffer = 0;
- PFN_vkDestroyImage vkDestroyImage = 0;
- PFN_vkDestroyImageView vkDestroyImageView = 0;
- PFN_vkDestroyIndirectCommandsLayoutNV vkDestroyIndirectCommandsLayoutNV = 0;
- PFN_vkDestroyPipeline vkDestroyPipeline = 0;
- PFN_vkDestroyPipelineCache vkDestroyPipelineCache = 0;
- PFN_vkDestroyPipelineLayout vkDestroyPipelineLayout = 0;
- PFN_vkDestroyPrivateDataSlotEXT vkDestroyPrivateDataSlotEXT = 0;
- PFN_vkDestroyQueryPool vkDestroyQueryPool = 0;
- PFN_vkDestroyRenderPass vkDestroyRenderPass = 0;
- PFN_vkDestroySampler vkDestroySampler = 0;
- PFN_vkDestroySamplerYcbcrConversion vkDestroySamplerYcbcrConversion = 0;
- PFN_vkDestroySamplerYcbcrConversionKHR vkDestroySamplerYcbcrConversionKHR = 0;
- PFN_vkDestroySemaphore vkDestroySemaphore = 0;
- PFN_vkDestroyShaderModule vkDestroyShaderModule = 0;
- PFN_vkDestroySwapchainKHR vkDestroySwapchainKHR = 0;
- PFN_vkDestroyValidationCacheEXT vkDestroyValidationCacheEXT = 0;
+
# if defined( VK_ENABLE_BETA_EXTENSIONS )
- PFN_vkDestroyVideoSessionKHR vkDestroyVideoSessionKHR = 0;
+ //=== VK_KHR_video_encode_queue ===
+ vkCmdEncodeVideoKHR = PFN_vkCmdEncodeVideoKHR( vkGetDeviceProcAddr( device, "vkCmdEncodeVideoKHR" ) );
# endif /*VK_ENABLE_BETA_EXTENSIONS*/
+
# if defined( VK_ENABLE_BETA_EXTENSIONS )
- PFN_vkDestroyVideoSessionParametersKHR vkDestroyVideoSessionParametersKHR = 0;
+ //=== VK_KHR_video_queue ===
+ vkCreateVideoSessionKHR =
+ PFN_vkCreateVideoSessionKHR( vkGetDeviceProcAddr( device, "vkCreateVideoSessionKHR" ) );
+ vkDestroyVideoSessionKHR =
+ PFN_vkDestroyVideoSessionKHR( vkGetDeviceProcAddr( device, "vkDestroyVideoSessionKHR" ) );
+ vkGetVideoSessionMemoryRequirementsKHR = PFN_vkGetVideoSessionMemoryRequirementsKHR(
+ vkGetDeviceProcAddr( device, "vkGetVideoSessionMemoryRequirementsKHR" ) );
+ vkBindVideoSessionMemoryKHR =
+ PFN_vkBindVideoSessionMemoryKHR( vkGetDeviceProcAddr( device, "vkBindVideoSessionMemoryKHR" ) );
+ vkCreateVideoSessionParametersKHR =
+ PFN_vkCreateVideoSessionParametersKHR( vkGetDeviceProcAddr( device, "vkCreateVideoSessionParametersKHR" ) );
+ vkUpdateVideoSessionParametersKHR =
+ PFN_vkUpdateVideoSessionParametersKHR( vkGetDeviceProcAddr( device, "vkUpdateVideoSessionParametersKHR" ) );
+ vkDestroyVideoSessionParametersKHR =
+ PFN_vkDestroyVideoSessionParametersKHR( vkGetDeviceProcAddr( device, "vkDestroyVideoSessionParametersKHR" ) );
+ vkCmdBeginVideoCodingKHR =
+ PFN_vkCmdBeginVideoCodingKHR( vkGetDeviceProcAddr( device, "vkCmdBeginVideoCodingKHR" ) );
+ vkCmdEndVideoCodingKHR = PFN_vkCmdEndVideoCodingKHR( vkGetDeviceProcAddr( device, "vkCmdEndVideoCodingKHR" ) );
+ vkCmdControlVideoCodingKHR =
+ PFN_vkCmdControlVideoCodingKHR( vkGetDeviceProcAddr( device, "vkCmdControlVideoCodingKHR" ) );
# endif /*VK_ENABLE_BETA_EXTENSIONS*/
- PFN_vkDeviceWaitIdle vkDeviceWaitIdle = 0;
- PFN_vkDisplayPowerControlEXT vkDisplayPowerControlEXT = 0;
- PFN_vkEndCommandBuffer vkEndCommandBuffer = 0;
- PFN_vkFlushMappedMemoryRanges vkFlushMappedMemoryRanges = 0;
- PFN_vkFreeCommandBuffers vkFreeCommandBuffers = 0;
- PFN_vkFreeDescriptorSets vkFreeDescriptorSets = 0;
- PFN_vkFreeMemory vkFreeMemory = 0;
- PFN_vkGetAccelerationStructureBuildSizesKHR vkGetAccelerationStructureBuildSizesKHR = 0;
- PFN_vkGetAccelerationStructureDeviceAddressKHR vkGetAccelerationStructureDeviceAddressKHR = 0;
- PFN_vkGetAccelerationStructureHandleNV vkGetAccelerationStructureHandleNV = 0;
- PFN_vkGetAccelerationStructureMemoryRequirementsNV vkGetAccelerationStructureMemoryRequirementsNV = 0;
-# if defined( VK_USE_PLATFORM_ANDROID_KHR )
- PFN_vkGetAndroidHardwareBufferPropertiesANDROID vkGetAndroidHardwareBufferPropertiesANDROID = 0;
-# endif /*VK_USE_PLATFORM_ANDROID_KHR*/
- PFN_vkGetBufferDeviceAddress vkGetBufferDeviceAddress = 0;
- PFN_vkGetBufferDeviceAddressEXT vkGetBufferDeviceAddressEXT = 0;
- PFN_vkGetBufferDeviceAddressKHR vkGetBufferDeviceAddressKHR = 0;
- PFN_vkGetBufferMemoryRequirements vkGetBufferMemoryRequirements = 0;
- PFN_vkGetBufferMemoryRequirements2 vkGetBufferMemoryRequirements2 = 0;
- PFN_vkGetBufferMemoryRequirements2KHR vkGetBufferMemoryRequirements2KHR = 0;
- PFN_vkGetBufferOpaqueCaptureAddress vkGetBufferOpaqueCaptureAddress = 0;
- PFN_vkGetBufferOpaqueCaptureAddressKHR vkGetBufferOpaqueCaptureAddressKHR = 0;
- PFN_vkGetCalibratedTimestampsEXT vkGetCalibratedTimestampsEXT = 0;
- PFN_vkGetDeferredOperationMaxConcurrencyKHR vkGetDeferredOperationMaxConcurrencyKHR = 0;
- PFN_vkGetDeferredOperationResultKHR vkGetDeferredOperationResultKHR = 0;
- PFN_vkGetDescriptorSetLayoutSupport vkGetDescriptorSetLayoutSupport = 0;
- PFN_vkGetDescriptorSetLayoutSupportKHR vkGetDescriptorSetLayoutSupportKHR = 0;
- PFN_vkGetDeviceAccelerationStructureCompatibilityKHR vkGetDeviceAccelerationStructureCompatibilityKHR = 0;
- PFN_vkGetDeviceGroupPeerMemoryFeatures vkGetDeviceGroupPeerMemoryFeatures = 0;
- PFN_vkGetDeviceGroupPeerMemoryFeaturesKHR vkGetDeviceGroupPeerMemoryFeaturesKHR = 0;
- PFN_vkGetDeviceGroupPresentCapabilitiesKHR vkGetDeviceGroupPresentCapabilitiesKHR = 0;
-# if defined( VK_USE_PLATFORM_WIN32_KHR )
- PFN_vkGetDeviceGroupSurfacePresentModes2EXT vkGetDeviceGroupSurfacePresentModes2EXT = 0;
-# endif /*VK_USE_PLATFORM_WIN32_KHR*/
- PFN_vkGetDeviceGroupSurfacePresentModesKHR vkGetDeviceGroupSurfacePresentModesKHR = 0;
- PFN_vkGetDeviceMemoryCommitment vkGetDeviceMemoryCommitment = 0;
- PFN_vkGetDeviceMemoryOpaqueCaptureAddress vkGetDeviceMemoryOpaqueCaptureAddress = 0;
- PFN_vkGetDeviceMemoryOpaqueCaptureAddressKHR vkGetDeviceMemoryOpaqueCaptureAddressKHR = 0;
- PFN_vkGetDeviceProcAddr vkGetDeviceProcAddr = 0;
- PFN_vkGetDeviceQueue vkGetDeviceQueue = 0;
- PFN_vkGetDeviceQueue2 vkGetDeviceQueue2 = 0;
- PFN_vkGetEventStatus vkGetEventStatus = 0;
- PFN_vkGetFenceFdKHR vkGetFenceFdKHR = 0;
- PFN_vkGetFenceStatus vkGetFenceStatus = 0;
+
+ //=== VK_NVX_binary_import ===
+ vkCreateCuModuleNVX = PFN_vkCreateCuModuleNVX( vkGetDeviceProcAddr( device, "vkCreateCuModuleNVX" ) );
+ vkCreateCuFunctionNVX = PFN_vkCreateCuFunctionNVX( vkGetDeviceProcAddr( device, "vkCreateCuFunctionNVX" ) );
+ vkDestroyCuModuleNVX = PFN_vkDestroyCuModuleNVX( vkGetDeviceProcAddr( device, "vkDestroyCuModuleNVX" ) );
+ vkDestroyCuFunctionNVX = PFN_vkDestroyCuFunctionNVX( vkGetDeviceProcAddr( device, "vkDestroyCuFunctionNVX" ) );
+ vkCmdCuLaunchKernelNVX = PFN_vkCmdCuLaunchKernelNVX( vkGetDeviceProcAddr( device, "vkCmdCuLaunchKernelNVX" ) );
+
+ //=== VK_NVX_image_view_handle ===
+ vkGetImageViewHandleNVX =
+ PFN_vkGetImageViewHandleNVX( vkGetDeviceProcAddr( device, "vkGetImageViewHandleNVX" ) );
+ vkGetImageViewAddressNVX =
+ PFN_vkGetImageViewAddressNVX( vkGetDeviceProcAddr( device, "vkGetImageViewAddressNVX" ) );
+
+ //=== VK_NV_clip_space_w_scaling ===
+ vkCmdSetViewportWScalingNV =
+ PFN_vkCmdSetViewportWScalingNV( vkGetDeviceProcAddr( device, "vkCmdSetViewportWScalingNV" ) );
+
+ //=== VK_NV_device_diagnostic_checkpoints ===
+ vkCmdSetCheckpointNV = PFN_vkCmdSetCheckpointNV( vkGetDeviceProcAddr( device, "vkCmdSetCheckpointNV" ) );
+ vkGetQueueCheckpointDataNV =
+ PFN_vkGetQueueCheckpointDataNV( vkGetDeviceProcAddr( device, "vkGetQueueCheckpointDataNV" ) );
+
+ //=== VK_NV_device_generated_commands ===
+ vkGetGeneratedCommandsMemoryRequirementsNV = PFN_vkGetGeneratedCommandsMemoryRequirementsNV(
+ vkGetDeviceProcAddr( device, "vkGetGeneratedCommandsMemoryRequirementsNV" ) );
+ vkCmdPreprocessGeneratedCommandsNV =
+ PFN_vkCmdPreprocessGeneratedCommandsNV( vkGetDeviceProcAddr( device, "vkCmdPreprocessGeneratedCommandsNV" ) );
+ vkCmdExecuteGeneratedCommandsNV =
+ PFN_vkCmdExecuteGeneratedCommandsNV( vkGetDeviceProcAddr( device, "vkCmdExecuteGeneratedCommandsNV" ) );
+ vkCmdBindPipelineShaderGroupNV =
+ PFN_vkCmdBindPipelineShaderGroupNV( vkGetDeviceProcAddr( device, "vkCmdBindPipelineShaderGroupNV" ) );
+ vkCreateIndirectCommandsLayoutNV =
+ PFN_vkCreateIndirectCommandsLayoutNV( vkGetDeviceProcAddr( device, "vkCreateIndirectCommandsLayoutNV" ) );
+ vkDestroyIndirectCommandsLayoutNV =
+ PFN_vkDestroyIndirectCommandsLayoutNV( vkGetDeviceProcAddr( device, "vkDestroyIndirectCommandsLayoutNV" ) );
+
+ //=== VK_NV_external_memory_rdma ===
+ vkGetMemoryRemoteAddressNV =
+ PFN_vkGetMemoryRemoteAddressNV( vkGetDeviceProcAddr( device, "vkGetMemoryRemoteAddressNV" ) );
+
# if defined( VK_USE_PLATFORM_WIN32_KHR )
- PFN_vkGetFenceWin32HandleKHR vkGetFenceWin32HandleKHR = 0;
+ //=== VK_NV_external_memory_win32 ===
+ vkGetMemoryWin32HandleNV =
+ PFN_vkGetMemoryWin32HandleNV( vkGetDeviceProcAddr( device, "vkGetMemoryWin32HandleNV" ) );
# endif /*VK_USE_PLATFORM_WIN32_KHR*/
- PFN_vkGetGeneratedCommandsMemoryRequirementsNV vkGetGeneratedCommandsMemoryRequirementsNV = 0;
- PFN_vkGetImageDrmFormatModifierPropertiesEXT vkGetImageDrmFormatModifierPropertiesEXT = 0;
- PFN_vkGetImageMemoryRequirements vkGetImageMemoryRequirements = 0;
- PFN_vkGetImageMemoryRequirements2 vkGetImageMemoryRequirements2 = 0;
- PFN_vkGetImageMemoryRequirements2KHR vkGetImageMemoryRequirements2KHR = 0;
- PFN_vkGetImageSparseMemoryRequirements vkGetImageSparseMemoryRequirements = 0;
- PFN_vkGetImageSparseMemoryRequirements2 vkGetImageSparseMemoryRequirements2 = 0;
- PFN_vkGetImageSparseMemoryRequirements2KHR vkGetImageSparseMemoryRequirements2KHR = 0;
- PFN_vkGetImageSubresourceLayout vkGetImageSubresourceLayout = 0;
- PFN_vkGetImageViewAddressNVX vkGetImageViewAddressNVX = 0;
- PFN_vkGetImageViewHandleNVX vkGetImageViewHandleNVX = 0;
+
+ //=== VK_NV_fragment_shading_rate_enums ===
+ vkCmdSetFragmentShadingRateEnumNV =
+ PFN_vkCmdSetFragmentShadingRateEnumNV( vkGetDeviceProcAddr( device, "vkCmdSetFragmentShadingRateEnumNV" ) );
+
+ //=== VK_NV_mesh_shader ===
+ vkCmdDrawMeshTasksNV = PFN_vkCmdDrawMeshTasksNV( vkGetDeviceProcAddr( device, "vkCmdDrawMeshTasksNV" ) );
+ vkCmdDrawMeshTasksIndirectNV =
+ PFN_vkCmdDrawMeshTasksIndirectNV( vkGetDeviceProcAddr( device, "vkCmdDrawMeshTasksIndirectNV" ) );
+ vkCmdDrawMeshTasksIndirectCountNV =
+ PFN_vkCmdDrawMeshTasksIndirectCountNV( vkGetDeviceProcAddr( device, "vkCmdDrawMeshTasksIndirectCountNV" ) );
+
+ //=== VK_NV_ray_tracing ===
+ vkCreateAccelerationStructureNV =
+ PFN_vkCreateAccelerationStructureNV( vkGetDeviceProcAddr( device, "vkCreateAccelerationStructureNV" ) );
+ vkDestroyAccelerationStructureNV =
+ PFN_vkDestroyAccelerationStructureNV( vkGetDeviceProcAddr( device, "vkDestroyAccelerationStructureNV" ) );
+ vkGetAccelerationStructureMemoryRequirementsNV = PFN_vkGetAccelerationStructureMemoryRequirementsNV(
+ vkGetDeviceProcAddr( device, "vkGetAccelerationStructureMemoryRequirementsNV" ) );
+ vkBindAccelerationStructureMemoryNV = PFN_vkBindAccelerationStructureMemoryNV(
+ vkGetDeviceProcAddr( device, "vkBindAccelerationStructureMemoryNV" ) );
+ vkCmdBuildAccelerationStructureNV =
+ PFN_vkCmdBuildAccelerationStructureNV( vkGetDeviceProcAddr( device, "vkCmdBuildAccelerationStructureNV" ) );
+ vkCmdCopyAccelerationStructureNV =
+ PFN_vkCmdCopyAccelerationStructureNV( vkGetDeviceProcAddr( device, "vkCmdCopyAccelerationStructureNV" ) );
+ vkCmdTraceRaysNV = PFN_vkCmdTraceRaysNV( vkGetDeviceProcAddr( device, "vkCmdTraceRaysNV" ) );
+ vkCreateRayTracingPipelinesNV =
+ PFN_vkCreateRayTracingPipelinesNV( vkGetDeviceProcAddr( device, "vkCreateRayTracingPipelinesNV" ) );
+ vkGetRayTracingShaderGroupHandlesNV = PFN_vkGetRayTracingShaderGroupHandlesNV(
+ vkGetDeviceProcAddr( device, "vkGetRayTracingShaderGroupHandlesNV" ) );
+ if ( !vkGetRayTracingShaderGroupHandlesKHR )
+ vkGetRayTracingShaderGroupHandlesKHR = vkGetRayTracingShaderGroupHandlesNV;
+ vkGetAccelerationStructureHandleNV =
+ PFN_vkGetAccelerationStructureHandleNV( vkGetDeviceProcAddr( device, "vkGetAccelerationStructureHandleNV" ) );
+ vkCmdWriteAccelerationStructuresPropertiesNV = PFN_vkCmdWriteAccelerationStructuresPropertiesNV(
+ vkGetDeviceProcAddr( device, "vkCmdWriteAccelerationStructuresPropertiesNV" ) );
+ vkCompileDeferredNV = PFN_vkCompileDeferredNV( vkGetDeviceProcAddr( device, "vkCompileDeferredNV" ) );
+
+ //=== VK_NV_scissor_exclusive ===
+ vkCmdSetExclusiveScissorNV =
+ PFN_vkCmdSetExclusiveScissorNV( vkGetDeviceProcAddr( device, "vkCmdSetExclusiveScissorNV" ) );
+
+ //=== VK_NV_shading_rate_image ===
+ vkCmdBindShadingRateImageNV =
+ PFN_vkCmdBindShadingRateImageNV( vkGetDeviceProcAddr( device, "vkCmdBindShadingRateImageNV" ) );
+ vkCmdSetViewportShadingRatePaletteNV = PFN_vkCmdSetViewportShadingRatePaletteNV(
+ vkGetDeviceProcAddr( device, "vkCmdSetViewportShadingRatePaletteNV" ) );
+ vkCmdSetCoarseSampleOrderNV =
+ PFN_vkCmdSetCoarseSampleOrderNV( vkGetDeviceProcAddr( device, "vkCmdSetCoarseSampleOrderNV" ) );
+ }
+
+ public:
+ //=== VK_VERSION_1_0 ===
+ PFN_vkGetDeviceProcAddr vkGetDeviceProcAddr = 0;
+ PFN_vkDestroyDevice vkDestroyDevice = 0;
+ PFN_vkGetDeviceQueue vkGetDeviceQueue = 0;
+ PFN_vkQueueSubmit vkQueueSubmit = 0;
+ PFN_vkQueueWaitIdle vkQueueWaitIdle = 0;
+ PFN_vkDeviceWaitIdle vkDeviceWaitIdle = 0;
+ PFN_vkAllocateMemory vkAllocateMemory = 0;
+ PFN_vkFreeMemory vkFreeMemory = 0;
+ PFN_vkMapMemory vkMapMemory = 0;
+ PFN_vkUnmapMemory vkUnmapMemory = 0;
+ PFN_vkFlushMappedMemoryRanges vkFlushMappedMemoryRanges = 0;
+ PFN_vkInvalidateMappedMemoryRanges vkInvalidateMappedMemoryRanges = 0;
+ PFN_vkGetDeviceMemoryCommitment vkGetDeviceMemoryCommitment = 0;
+ PFN_vkBindBufferMemory vkBindBufferMemory = 0;
+ PFN_vkBindImageMemory vkBindImageMemory = 0;
+ PFN_vkGetBufferMemoryRequirements vkGetBufferMemoryRequirements = 0;
+ PFN_vkGetImageMemoryRequirements vkGetImageMemoryRequirements = 0;
+ PFN_vkGetImageSparseMemoryRequirements vkGetImageSparseMemoryRequirements = 0;
+ PFN_vkQueueBindSparse vkQueueBindSparse = 0;
+ PFN_vkCreateFence vkCreateFence = 0;
+ PFN_vkDestroyFence vkDestroyFence = 0;
+ PFN_vkResetFences vkResetFences = 0;
+ PFN_vkGetFenceStatus vkGetFenceStatus = 0;
+ PFN_vkWaitForFences vkWaitForFences = 0;
+ PFN_vkCreateSemaphore vkCreateSemaphore = 0;
+ PFN_vkDestroySemaphore vkDestroySemaphore = 0;
+ PFN_vkCreateEvent vkCreateEvent = 0;
+ PFN_vkDestroyEvent vkDestroyEvent = 0;
+ PFN_vkGetEventStatus vkGetEventStatus = 0;
+ PFN_vkSetEvent vkSetEvent = 0;
+ PFN_vkResetEvent vkResetEvent = 0;
+ PFN_vkCreateQueryPool vkCreateQueryPool = 0;
+ PFN_vkDestroyQueryPool vkDestroyQueryPool = 0;
+ PFN_vkGetQueryPoolResults vkGetQueryPoolResults = 0;
+ PFN_vkCreateBuffer vkCreateBuffer = 0;
+ PFN_vkDestroyBuffer vkDestroyBuffer = 0;
+ PFN_vkCreateBufferView vkCreateBufferView = 0;
+ PFN_vkDestroyBufferView vkDestroyBufferView = 0;
+ PFN_vkCreateImage vkCreateImage = 0;
+ PFN_vkDestroyImage vkDestroyImage = 0;
+ PFN_vkGetImageSubresourceLayout vkGetImageSubresourceLayout = 0;
+ PFN_vkCreateImageView vkCreateImageView = 0;
+ PFN_vkDestroyImageView vkDestroyImageView = 0;
+ PFN_vkCreateShaderModule vkCreateShaderModule = 0;
+ PFN_vkDestroyShaderModule vkDestroyShaderModule = 0;
+ PFN_vkCreatePipelineCache vkCreatePipelineCache = 0;
+ PFN_vkDestroyPipelineCache vkDestroyPipelineCache = 0;
+ PFN_vkGetPipelineCacheData vkGetPipelineCacheData = 0;
+ PFN_vkMergePipelineCaches vkMergePipelineCaches = 0;
+ PFN_vkCreateGraphicsPipelines vkCreateGraphicsPipelines = 0;
+ PFN_vkCreateComputePipelines vkCreateComputePipelines = 0;
+ PFN_vkDestroyPipeline vkDestroyPipeline = 0;
+ PFN_vkCreatePipelineLayout vkCreatePipelineLayout = 0;
+ PFN_vkDestroyPipelineLayout vkDestroyPipelineLayout = 0;
+ PFN_vkCreateSampler vkCreateSampler = 0;
+ PFN_vkDestroySampler vkDestroySampler = 0;
+ PFN_vkCreateDescriptorSetLayout vkCreateDescriptorSetLayout = 0;
+ PFN_vkDestroyDescriptorSetLayout vkDestroyDescriptorSetLayout = 0;
+ PFN_vkCreateDescriptorPool vkCreateDescriptorPool = 0;
+ PFN_vkDestroyDescriptorPool vkDestroyDescriptorPool = 0;
+ PFN_vkResetDescriptorPool vkResetDescriptorPool = 0;
+ PFN_vkAllocateDescriptorSets vkAllocateDescriptorSets = 0;
+ PFN_vkFreeDescriptorSets vkFreeDescriptorSets = 0;
+ PFN_vkUpdateDescriptorSets vkUpdateDescriptorSets = 0;
+ PFN_vkCreateFramebuffer vkCreateFramebuffer = 0;
+ PFN_vkDestroyFramebuffer vkDestroyFramebuffer = 0;
+ PFN_vkCreateRenderPass vkCreateRenderPass = 0;
+ PFN_vkDestroyRenderPass vkDestroyRenderPass = 0;
+ PFN_vkGetRenderAreaGranularity vkGetRenderAreaGranularity = 0;
+ PFN_vkCreateCommandPool vkCreateCommandPool = 0;
+ PFN_vkDestroyCommandPool vkDestroyCommandPool = 0;
+ PFN_vkResetCommandPool vkResetCommandPool = 0;
+ PFN_vkAllocateCommandBuffers vkAllocateCommandBuffers = 0;
+ PFN_vkFreeCommandBuffers vkFreeCommandBuffers = 0;
+ PFN_vkBeginCommandBuffer vkBeginCommandBuffer = 0;
+ PFN_vkEndCommandBuffer vkEndCommandBuffer = 0;
+ PFN_vkResetCommandBuffer vkResetCommandBuffer = 0;
+ PFN_vkCmdBindPipeline vkCmdBindPipeline = 0;
+ PFN_vkCmdSetViewport vkCmdSetViewport = 0;
+ PFN_vkCmdSetScissor vkCmdSetScissor = 0;
+ PFN_vkCmdSetLineWidth vkCmdSetLineWidth = 0;
+ PFN_vkCmdSetDepthBias vkCmdSetDepthBias = 0;
+ PFN_vkCmdSetBlendConstants vkCmdSetBlendConstants = 0;
+ PFN_vkCmdSetDepthBounds vkCmdSetDepthBounds = 0;
+ PFN_vkCmdSetStencilCompareMask vkCmdSetStencilCompareMask = 0;
+ PFN_vkCmdSetStencilWriteMask vkCmdSetStencilWriteMask = 0;
+ PFN_vkCmdSetStencilReference vkCmdSetStencilReference = 0;
+ PFN_vkCmdBindDescriptorSets vkCmdBindDescriptorSets = 0;
+ PFN_vkCmdBindIndexBuffer vkCmdBindIndexBuffer = 0;
+ PFN_vkCmdBindVertexBuffers vkCmdBindVertexBuffers = 0;
+ PFN_vkCmdDraw vkCmdDraw = 0;
+ PFN_vkCmdDrawIndexed vkCmdDrawIndexed = 0;
+ PFN_vkCmdDrawIndirect vkCmdDrawIndirect = 0;
+ PFN_vkCmdDrawIndexedIndirect vkCmdDrawIndexedIndirect = 0;
+ PFN_vkCmdDispatch vkCmdDispatch = 0;
+ PFN_vkCmdDispatchIndirect vkCmdDispatchIndirect = 0;
+ PFN_vkCmdCopyBuffer vkCmdCopyBuffer = 0;
+ PFN_vkCmdCopyImage vkCmdCopyImage = 0;
+ PFN_vkCmdBlitImage vkCmdBlitImage = 0;
+ PFN_vkCmdCopyBufferToImage vkCmdCopyBufferToImage = 0;
+ PFN_vkCmdCopyImageToBuffer vkCmdCopyImageToBuffer = 0;
+ PFN_vkCmdUpdateBuffer vkCmdUpdateBuffer = 0;
+ PFN_vkCmdFillBuffer vkCmdFillBuffer = 0;
+ PFN_vkCmdClearColorImage vkCmdClearColorImage = 0;
+ PFN_vkCmdClearDepthStencilImage vkCmdClearDepthStencilImage = 0;
+ PFN_vkCmdClearAttachments vkCmdClearAttachments = 0;
+ PFN_vkCmdResolveImage vkCmdResolveImage = 0;
+ PFN_vkCmdSetEvent vkCmdSetEvent = 0;
+ PFN_vkCmdResetEvent vkCmdResetEvent = 0;
+ PFN_vkCmdWaitEvents vkCmdWaitEvents = 0;
+ PFN_vkCmdPipelineBarrier vkCmdPipelineBarrier = 0;
+ PFN_vkCmdBeginQuery vkCmdBeginQuery = 0;
+ PFN_vkCmdEndQuery vkCmdEndQuery = 0;
+ PFN_vkCmdResetQueryPool vkCmdResetQueryPool = 0;
+ PFN_vkCmdWriteTimestamp vkCmdWriteTimestamp = 0;
+ PFN_vkCmdCopyQueryPoolResults vkCmdCopyQueryPoolResults = 0;
+ PFN_vkCmdPushConstants vkCmdPushConstants = 0;
+ PFN_vkCmdBeginRenderPass vkCmdBeginRenderPass = 0;
+ PFN_vkCmdNextSubpass vkCmdNextSubpass = 0;
+ PFN_vkCmdEndRenderPass vkCmdEndRenderPass = 0;
+ PFN_vkCmdExecuteCommands vkCmdExecuteCommands = 0;
+
+ //=== VK_VERSION_1_1 ===
+ PFN_vkBindBufferMemory2 vkBindBufferMemory2 = 0;
+ PFN_vkBindImageMemory2 vkBindImageMemory2 = 0;
+ PFN_vkGetDeviceGroupPeerMemoryFeatures vkGetDeviceGroupPeerMemoryFeatures = 0;
+ PFN_vkCmdSetDeviceMask vkCmdSetDeviceMask = 0;
+ PFN_vkCmdDispatchBase vkCmdDispatchBase = 0;
+ PFN_vkGetImageMemoryRequirements2 vkGetImageMemoryRequirements2 = 0;
+ PFN_vkGetBufferMemoryRequirements2 vkGetBufferMemoryRequirements2 = 0;
+ PFN_vkGetImageSparseMemoryRequirements2 vkGetImageSparseMemoryRequirements2 = 0;
+ PFN_vkTrimCommandPool vkTrimCommandPool = 0;
+ PFN_vkGetDeviceQueue2 vkGetDeviceQueue2 = 0;
+ PFN_vkCreateSamplerYcbcrConversion vkCreateSamplerYcbcrConversion = 0;
+ PFN_vkDestroySamplerYcbcrConversion vkDestroySamplerYcbcrConversion = 0;
+ PFN_vkCreateDescriptorUpdateTemplate vkCreateDescriptorUpdateTemplate = 0;
+ PFN_vkDestroyDescriptorUpdateTemplate vkDestroyDescriptorUpdateTemplate = 0;
+ PFN_vkUpdateDescriptorSetWithTemplate vkUpdateDescriptorSetWithTemplate = 0;
+ PFN_vkGetDescriptorSetLayoutSupport vkGetDescriptorSetLayoutSupport = 0;
+
+ //=== VK_VERSION_1_2 ===
+ PFN_vkCmdDrawIndirectCount vkCmdDrawIndirectCount = 0;
+ PFN_vkCmdDrawIndexedIndirectCount vkCmdDrawIndexedIndirectCount = 0;
+ PFN_vkCreateRenderPass2 vkCreateRenderPass2 = 0;
+ PFN_vkCmdBeginRenderPass2 vkCmdBeginRenderPass2 = 0;
+ PFN_vkCmdNextSubpass2 vkCmdNextSubpass2 = 0;
+ PFN_vkCmdEndRenderPass2 vkCmdEndRenderPass2 = 0;
+ PFN_vkResetQueryPool vkResetQueryPool = 0;
+ PFN_vkGetSemaphoreCounterValue vkGetSemaphoreCounterValue = 0;
+ PFN_vkWaitSemaphores vkWaitSemaphores = 0;
+ PFN_vkSignalSemaphore vkSignalSemaphore = 0;
+ PFN_vkGetBufferDeviceAddress vkGetBufferDeviceAddress = 0;
+ PFN_vkGetBufferOpaqueCaptureAddress vkGetBufferOpaqueCaptureAddress = 0;
+ PFN_vkGetDeviceMemoryOpaqueCaptureAddress vkGetDeviceMemoryOpaqueCaptureAddress = 0;
+
+ //=== VK_AMD_buffer_marker ===
+ PFN_vkCmdWriteBufferMarkerAMD vkCmdWriteBufferMarkerAMD = 0;
+
+ //=== VK_AMD_display_native_hdr ===
+ PFN_vkSetLocalDimmingAMD vkSetLocalDimmingAMD = 0;
+
+ //=== VK_AMD_draw_indirect_count ===
+ PFN_vkCmdDrawIndirectCountAMD vkCmdDrawIndirectCountAMD = 0;
+ PFN_vkCmdDrawIndexedIndirectCountAMD vkCmdDrawIndexedIndirectCountAMD = 0;
+
+ //=== VK_AMD_shader_info ===
+ PFN_vkGetShaderInfoAMD vkGetShaderInfoAMD = 0;
+
# if defined( VK_USE_PLATFORM_ANDROID_KHR )
- PFN_vkGetMemoryAndroidHardwareBufferANDROID vkGetMemoryAndroidHardwareBufferANDROID = 0;
+ //=== VK_ANDROID_external_memory_android_hardware_buffer ===
+ PFN_vkGetAndroidHardwareBufferPropertiesANDROID vkGetAndroidHardwareBufferPropertiesANDROID = 0;
+ PFN_vkGetMemoryAndroidHardwareBufferANDROID vkGetMemoryAndroidHardwareBufferANDROID = 0;
+# else
+ PFN_dummy vkGetAndroidHardwareBufferPropertiesANDROID_placeholder = 0;
+ PFN_dummy vkGetMemoryAndroidHardwareBufferANDROID_placeholder = 0;
# endif /*VK_USE_PLATFORM_ANDROID_KHR*/
- PFN_vkGetMemoryFdKHR vkGetMemoryFdKHR = 0;
- PFN_vkGetMemoryFdPropertiesKHR vkGetMemoryFdPropertiesKHR = 0;
+
+ //=== VK_EXT_buffer_device_address ===
+ PFN_vkGetBufferDeviceAddressEXT vkGetBufferDeviceAddressEXT = 0;
+
+ //=== VK_EXT_calibrated_timestamps ===
+ PFN_vkGetCalibratedTimestampsEXT vkGetCalibratedTimestampsEXT = 0;
+
+ //=== VK_EXT_color_write_enable ===
+ PFN_vkCmdSetColorWriteEnableEXT vkCmdSetColorWriteEnableEXT = 0;
+
+ //=== VK_EXT_conditional_rendering ===
+ PFN_vkCmdBeginConditionalRenderingEXT vkCmdBeginConditionalRenderingEXT = 0;
+ PFN_vkCmdEndConditionalRenderingEXT vkCmdEndConditionalRenderingEXT = 0;
+
+ //=== VK_EXT_debug_marker ===
+ PFN_vkDebugMarkerSetObjectTagEXT vkDebugMarkerSetObjectTagEXT = 0;
+ PFN_vkDebugMarkerSetObjectNameEXT vkDebugMarkerSetObjectNameEXT = 0;
+ PFN_vkCmdDebugMarkerBeginEXT vkCmdDebugMarkerBeginEXT = 0;
+ PFN_vkCmdDebugMarkerEndEXT vkCmdDebugMarkerEndEXT = 0;
+ PFN_vkCmdDebugMarkerInsertEXT vkCmdDebugMarkerInsertEXT = 0;
+
+ //=== VK_EXT_debug_utils ===
+ PFN_vkSetDebugUtilsObjectNameEXT vkSetDebugUtilsObjectNameEXT = 0;
+ PFN_vkSetDebugUtilsObjectTagEXT vkSetDebugUtilsObjectTagEXT = 0;
+ PFN_vkQueueBeginDebugUtilsLabelEXT vkQueueBeginDebugUtilsLabelEXT = 0;
+ PFN_vkQueueEndDebugUtilsLabelEXT vkQueueEndDebugUtilsLabelEXT = 0;
+ PFN_vkQueueInsertDebugUtilsLabelEXT vkQueueInsertDebugUtilsLabelEXT = 0;
+ PFN_vkCmdBeginDebugUtilsLabelEXT vkCmdBeginDebugUtilsLabelEXT = 0;
+ PFN_vkCmdEndDebugUtilsLabelEXT vkCmdEndDebugUtilsLabelEXT = 0;
+ PFN_vkCmdInsertDebugUtilsLabelEXT vkCmdInsertDebugUtilsLabelEXT = 0;
+
+ //=== VK_EXT_discard_rectangles ===
+ PFN_vkCmdSetDiscardRectangleEXT vkCmdSetDiscardRectangleEXT = 0;
+
+ //=== VK_EXT_display_control ===
+ PFN_vkDisplayPowerControlEXT vkDisplayPowerControlEXT = 0;
+ PFN_vkRegisterDeviceEventEXT vkRegisterDeviceEventEXT = 0;
+ PFN_vkRegisterDisplayEventEXT vkRegisterDisplayEventEXT = 0;
+ PFN_vkGetSwapchainCounterEXT vkGetSwapchainCounterEXT = 0;
+
+ //=== VK_EXT_extended_dynamic_state ===
+ PFN_vkCmdSetCullModeEXT vkCmdSetCullModeEXT = 0;
+ PFN_vkCmdSetFrontFaceEXT vkCmdSetFrontFaceEXT = 0;
+ PFN_vkCmdSetPrimitiveTopologyEXT vkCmdSetPrimitiveTopologyEXT = 0;
+ PFN_vkCmdSetViewportWithCountEXT vkCmdSetViewportWithCountEXT = 0;
+ PFN_vkCmdSetScissorWithCountEXT vkCmdSetScissorWithCountEXT = 0;
+ PFN_vkCmdBindVertexBuffers2EXT vkCmdBindVertexBuffers2EXT = 0;
+ PFN_vkCmdSetDepthTestEnableEXT vkCmdSetDepthTestEnableEXT = 0;
+ PFN_vkCmdSetDepthWriteEnableEXT vkCmdSetDepthWriteEnableEXT = 0;
+ PFN_vkCmdSetDepthCompareOpEXT vkCmdSetDepthCompareOpEXT = 0;
+ PFN_vkCmdSetDepthBoundsTestEnableEXT vkCmdSetDepthBoundsTestEnableEXT = 0;
+ PFN_vkCmdSetStencilTestEnableEXT vkCmdSetStencilTestEnableEXT = 0;
+ PFN_vkCmdSetStencilOpEXT vkCmdSetStencilOpEXT = 0;
+
+ //=== VK_EXT_extended_dynamic_state2 ===
+ PFN_vkCmdSetPatchControlPointsEXT vkCmdSetPatchControlPointsEXT = 0;
+ PFN_vkCmdSetRasterizerDiscardEnableEXT vkCmdSetRasterizerDiscardEnableEXT = 0;
+ PFN_vkCmdSetDepthBiasEnableEXT vkCmdSetDepthBiasEnableEXT = 0;
+ PFN_vkCmdSetLogicOpEXT vkCmdSetLogicOpEXT = 0;
+ PFN_vkCmdSetPrimitiveRestartEnableEXT vkCmdSetPrimitiveRestartEnableEXT = 0;
+
+ //=== VK_EXT_external_memory_host ===
PFN_vkGetMemoryHostPointerPropertiesEXT vkGetMemoryHostPointerPropertiesEXT = 0;
+
# if defined( VK_USE_PLATFORM_WIN32_KHR )
- PFN_vkGetMemoryWin32HandleKHR vkGetMemoryWin32HandleKHR = 0;
-# endif /*VK_USE_PLATFORM_WIN32_KHR*/
-# if defined( VK_USE_PLATFORM_WIN32_KHR )
- PFN_vkGetMemoryWin32HandleNV vkGetMemoryWin32HandleNV = 0;
-# endif /*VK_USE_PLATFORM_WIN32_KHR*/
-# if defined( VK_USE_PLATFORM_WIN32_KHR )
- PFN_vkGetMemoryWin32HandlePropertiesKHR vkGetMemoryWin32HandlePropertiesKHR = 0;
+ //=== VK_EXT_full_screen_exclusive ===
+ PFN_vkAcquireFullScreenExclusiveModeEXT vkAcquireFullScreenExclusiveModeEXT = 0;
+ PFN_vkReleaseFullScreenExclusiveModeEXT vkReleaseFullScreenExclusiveModeEXT = 0;
+ PFN_vkGetDeviceGroupSurfacePresentModes2EXT vkGetDeviceGroupSurfacePresentModes2EXT = 0;
+# else
+ PFN_dummy vkAcquireFullScreenExclusiveModeEXT_placeholder = 0;
+ PFN_dummy vkReleaseFullScreenExclusiveModeEXT_placeholder = 0;
+ PFN_dummy vkGetDeviceGroupSurfacePresentModes2EXT_placeholder = 0;
# endif /*VK_USE_PLATFORM_WIN32_KHR*/
+
+ //=== VK_EXT_hdr_metadata ===
+ PFN_vkSetHdrMetadataEXT vkSetHdrMetadataEXT = 0;
+
+ //=== VK_EXT_host_query_reset ===
+ PFN_vkResetQueryPoolEXT vkResetQueryPoolEXT = 0;
+
+ //=== VK_EXT_image_drm_format_modifier ===
+ PFN_vkGetImageDrmFormatModifierPropertiesEXT vkGetImageDrmFormatModifierPropertiesEXT = 0;
+
+ //=== VK_EXT_line_rasterization ===
+ PFN_vkCmdSetLineStippleEXT vkCmdSetLineStippleEXT = 0;
+
+ //=== VK_EXT_multi_draw ===
+ PFN_vkCmdDrawMultiEXT vkCmdDrawMultiEXT = 0;
+ PFN_vkCmdDrawMultiIndexedEXT vkCmdDrawMultiIndexedEXT = 0;
+
+ //=== VK_EXT_private_data ===
+ PFN_vkCreatePrivateDataSlotEXT vkCreatePrivateDataSlotEXT = 0;
+ PFN_vkDestroyPrivateDataSlotEXT vkDestroyPrivateDataSlotEXT = 0;
+ PFN_vkSetPrivateDataEXT vkSetPrivateDataEXT = 0;
+ PFN_vkGetPrivateDataEXT vkGetPrivateDataEXT = 0;
+
+ //=== VK_EXT_sample_locations ===
+ PFN_vkCmdSetSampleLocationsEXT vkCmdSetSampleLocationsEXT = 0;
+
+ //=== VK_EXT_transform_feedback ===
+ PFN_vkCmdBindTransformFeedbackBuffersEXT vkCmdBindTransformFeedbackBuffersEXT = 0;
+ PFN_vkCmdBeginTransformFeedbackEXT vkCmdBeginTransformFeedbackEXT = 0;
+ PFN_vkCmdEndTransformFeedbackEXT vkCmdEndTransformFeedbackEXT = 0;
+ PFN_vkCmdBeginQueryIndexedEXT vkCmdBeginQueryIndexedEXT = 0;
+ PFN_vkCmdEndQueryIndexedEXT vkCmdEndQueryIndexedEXT = 0;
+ PFN_vkCmdDrawIndirectByteCountEXT vkCmdDrawIndirectByteCountEXT = 0;
+
+ //=== VK_EXT_validation_cache ===
+ PFN_vkCreateValidationCacheEXT vkCreateValidationCacheEXT = 0;
+ PFN_vkDestroyValidationCacheEXT vkDestroyValidationCacheEXT = 0;
+ PFN_vkMergeValidationCachesEXT vkMergeValidationCachesEXT = 0;
+ PFN_vkGetValidationCacheDataEXT vkGetValidationCacheDataEXT = 0;
+
+ //=== VK_EXT_vertex_input_dynamic_state ===
+ PFN_vkCmdSetVertexInputEXT vkCmdSetVertexInputEXT = 0;
+
# if defined( VK_USE_PLATFORM_FUCHSIA )
- PFN_vkGetMemoryZirconHandleFUCHSIA vkGetMemoryZirconHandleFUCHSIA = 0;
-# endif /*VK_USE_PLATFORM_FUCHSIA*/
-# if defined( VK_USE_PLATFORM_FUCHSIA )
+ //=== VK_FUCHSIA_external_memory ===
+ PFN_vkGetMemoryZirconHandleFUCHSIA vkGetMemoryZirconHandleFUCHSIA = 0;
PFN_vkGetMemoryZirconHandlePropertiesFUCHSIA vkGetMemoryZirconHandlePropertiesFUCHSIA = 0;
+# else
+ PFN_dummy vkGetMemoryZirconHandleFUCHSIA_placeholder = 0;
+ PFN_dummy vkGetMemoryZirconHandlePropertiesFUCHSIA_placeholder = 0;
# endif /*VK_USE_PLATFORM_FUCHSIA*/
- PFN_vkGetPastPresentationTimingGOOGLE vkGetPastPresentationTimingGOOGLE = 0;
- PFN_vkGetPerformanceParameterINTEL vkGetPerformanceParameterINTEL = 0;
- PFN_vkGetPipelineCacheData vkGetPipelineCacheData = 0;
- PFN_vkGetPipelineExecutableInternalRepresentationsKHR vkGetPipelineExecutableInternalRepresentationsKHR = 0;
- PFN_vkGetPipelineExecutablePropertiesKHR vkGetPipelineExecutablePropertiesKHR = 0;
- PFN_vkGetPipelineExecutableStatisticsKHR vkGetPipelineExecutableStatisticsKHR = 0;
- PFN_vkGetPrivateDataEXT vkGetPrivateDataEXT = 0;
- PFN_vkGetQueryPoolResults vkGetQueryPoolResults = 0;
- PFN_vkGetQueueCheckpointData2NV vkGetQueueCheckpointData2NV = 0;
- PFN_vkGetQueueCheckpointDataNV vkGetQueueCheckpointDataNV = 0;
- PFN_vkGetRayTracingCaptureReplayShaderGroupHandlesKHR vkGetRayTracingCaptureReplayShaderGroupHandlesKHR = 0;
- PFN_vkGetRayTracingShaderGroupHandlesKHR vkGetRayTracingShaderGroupHandlesKHR = 0;
- PFN_vkGetRayTracingShaderGroupHandlesNV vkGetRayTracingShaderGroupHandlesNV = 0;
- PFN_vkGetRayTracingShaderGroupStackSizeKHR vkGetRayTracingShaderGroupStackSizeKHR = 0;
- PFN_vkGetRefreshCycleDurationGOOGLE vkGetRefreshCycleDurationGOOGLE = 0;
- PFN_vkGetRenderAreaGranularity vkGetRenderAreaGranularity = 0;
- PFN_vkGetSemaphoreCounterValue vkGetSemaphoreCounterValue = 0;
- PFN_vkGetSemaphoreCounterValueKHR vkGetSemaphoreCounterValueKHR = 0;
- PFN_vkGetSemaphoreFdKHR vkGetSemaphoreFdKHR = 0;
-# if defined( VK_USE_PLATFORM_WIN32_KHR )
- PFN_vkGetSemaphoreWin32HandleKHR vkGetSemaphoreWin32HandleKHR = 0;
-# endif /*VK_USE_PLATFORM_WIN32_KHR*/
+
# if defined( VK_USE_PLATFORM_FUCHSIA )
- PFN_vkGetSemaphoreZirconHandleFUCHSIA vkGetSemaphoreZirconHandleFUCHSIA = 0;
+ //=== VK_FUCHSIA_external_semaphore ===
+ PFN_vkImportSemaphoreZirconHandleFUCHSIA vkImportSemaphoreZirconHandleFUCHSIA = 0;
+ PFN_vkGetSemaphoreZirconHandleFUCHSIA vkGetSemaphoreZirconHandleFUCHSIA = 0;
+# else
+ PFN_dummy vkImportSemaphoreZirconHandleFUCHSIA_placeholder = 0;
+ PFN_dummy vkGetSemaphoreZirconHandleFUCHSIA_placeholder = 0;
# endif /*VK_USE_PLATFORM_FUCHSIA*/
- PFN_vkGetShaderInfoAMD vkGetShaderInfoAMD = 0;
- PFN_vkGetSubpassShadingMaxWorkgroupSizeHUAWEI vkGetSubpassShadingMaxWorkgroupSizeHUAWEI = 0;
- PFN_vkGetSwapchainCounterEXT vkGetSwapchainCounterEXT = 0;
- PFN_vkGetSwapchainImagesKHR vkGetSwapchainImagesKHR = 0;
- PFN_vkGetSwapchainStatusKHR vkGetSwapchainStatusKHR = 0;
- PFN_vkGetValidationCacheDataEXT vkGetValidationCacheDataEXT = 0;
-# if defined( VK_ENABLE_BETA_EXTENSIONS )
- PFN_vkGetVideoSessionMemoryRequirementsKHR vkGetVideoSessionMemoryRequirementsKHR = 0;
-# endif /*VK_ENABLE_BETA_EXTENSIONS*/
+
+ //=== VK_GOOGLE_display_timing ===
+ PFN_vkGetRefreshCycleDurationGOOGLE vkGetRefreshCycleDurationGOOGLE = 0;
+ PFN_vkGetPastPresentationTimingGOOGLE vkGetPastPresentationTimingGOOGLE = 0;
+
+ //=== VK_HUAWEI_invocation_mask ===
+ PFN_vkCmdBindInvocationMaskHUAWEI vkCmdBindInvocationMaskHUAWEI = 0;
+
+ //=== VK_HUAWEI_subpass_shading ===
+ PFN_vkGetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI vkGetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI = 0;
+ PFN_vkCmdSubpassShadingHUAWEI vkCmdSubpassShadingHUAWEI = 0;
+
+ //=== VK_INTEL_performance_query ===
+ PFN_vkInitializePerformanceApiINTEL vkInitializePerformanceApiINTEL = 0;
+ PFN_vkUninitializePerformanceApiINTEL vkUninitializePerformanceApiINTEL = 0;
+ PFN_vkCmdSetPerformanceMarkerINTEL vkCmdSetPerformanceMarkerINTEL = 0;
+ PFN_vkCmdSetPerformanceStreamMarkerINTEL vkCmdSetPerformanceStreamMarkerINTEL = 0;
+ PFN_vkCmdSetPerformanceOverrideINTEL vkCmdSetPerformanceOverrideINTEL = 0;
+ PFN_vkAcquirePerformanceConfigurationINTEL vkAcquirePerformanceConfigurationINTEL = 0;
+ PFN_vkReleasePerformanceConfigurationINTEL vkReleasePerformanceConfigurationINTEL = 0;
+ PFN_vkQueueSetPerformanceConfigurationINTEL vkQueueSetPerformanceConfigurationINTEL = 0;
+ PFN_vkGetPerformanceParameterINTEL vkGetPerformanceParameterINTEL = 0;
+
+ //=== VK_KHR_acceleration_structure ===
+ PFN_vkCreateAccelerationStructureKHR vkCreateAccelerationStructureKHR = 0;
+ PFN_vkDestroyAccelerationStructureKHR vkDestroyAccelerationStructureKHR = 0;
+ PFN_vkCmdBuildAccelerationStructuresKHR vkCmdBuildAccelerationStructuresKHR = 0;
+ PFN_vkCmdBuildAccelerationStructuresIndirectKHR vkCmdBuildAccelerationStructuresIndirectKHR = 0;
+ PFN_vkBuildAccelerationStructuresKHR vkBuildAccelerationStructuresKHR = 0;
+ PFN_vkCopyAccelerationStructureKHR vkCopyAccelerationStructureKHR = 0;
+ PFN_vkCopyAccelerationStructureToMemoryKHR vkCopyAccelerationStructureToMemoryKHR = 0;
+ PFN_vkCopyMemoryToAccelerationStructureKHR vkCopyMemoryToAccelerationStructureKHR = 0;
+ PFN_vkWriteAccelerationStructuresPropertiesKHR vkWriteAccelerationStructuresPropertiesKHR = 0;
+ PFN_vkCmdCopyAccelerationStructureKHR vkCmdCopyAccelerationStructureKHR = 0;
+ PFN_vkCmdCopyAccelerationStructureToMemoryKHR vkCmdCopyAccelerationStructureToMemoryKHR = 0;
+ PFN_vkCmdCopyMemoryToAccelerationStructureKHR vkCmdCopyMemoryToAccelerationStructureKHR = 0;
+ PFN_vkGetAccelerationStructureDeviceAddressKHR vkGetAccelerationStructureDeviceAddressKHR = 0;
+ PFN_vkCmdWriteAccelerationStructuresPropertiesKHR vkCmdWriteAccelerationStructuresPropertiesKHR = 0;
+ PFN_vkGetDeviceAccelerationStructureCompatibilityKHR vkGetDeviceAccelerationStructureCompatibilityKHR = 0;
+ PFN_vkGetAccelerationStructureBuildSizesKHR vkGetAccelerationStructureBuildSizesKHR = 0;
+
+ //=== VK_KHR_bind_memory2 ===
+ PFN_vkBindBufferMemory2KHR vkBindBufferMemory2KHR = 0;
+ PFN_vkBindImageMemory2KHR vkBindImageMemory2KHR = 0;
+
+ //=== VK_KHR_buffer_device_address ===
+ PFN_vkGetBufferDeviceAddressKHR vkGetBufferDeviceAddressKHR = 0;
+ PFN_vkGetBufferOpaqueCaptureAddressKHR vkGetBufferOpaqueCaptureAddressKHR = 0;
+ PFN_vkGetDeviceMemoryOpaqueCaptureAddressKHR vkGetDeviceMemoryOpaqueCaptureAddressKHR = 0;
+
+ //=== VK_KHR_copy_commands2 ===
+ PFN_vkCmdCopyBuffer2KHR vkCmdCopyBuffer2KHR = 0;
+ PFN_vkCmdCopyImage2KHR vkCmdCopyImage2KHR = 0;
+ PFN_vkCmdCopyBufferToImage2KHR vkCmdCopyBufferToImage2KHR = 0;
+ PFN_vkCmdCopyImageToBuffer2KHR vkCmdCopyImageToBuffer2KHR = 0;
+ PFN_vkCmdBlitImage2KHR vkCmdBlitImage2KHR = 0;
+ PFN_vkCmdResolveImage2KHR vkCmdResolveImage2KHR = 0;
+
+ //=== VK_KHR_create_renderpass2 ===
+ PFN_vkCreateRenderPass2KHR vkCreateRenderPass2KHR = 0;
+ PFN_vkCmdBeginRenderPass2KHR vkCmdBeginRenderPass2KHR = 0;
+ PFN_vkCmdNextSubpass2KHR vkCmdNextSubpass2KHR = 0;
+ PFN_vkCmdEndRenderPass2KHR vkCmdEndRenderPass2KHR = 0;
+
+ //=== VK_KHR_deferred_host_operations ===
+ PFN_vkCreateDeferredOperationKHR vkCreateDeferredOperationKHR = 0;
+ PFN_vkDestroyDeferredOperationKHR vkDestroyDeferredOperationKHR = 0;
+ PFN_vkGetDeferredOperationMaxConcurrencyKHR vkGetDeferredOperationMaxConcurrencyKHR = 0;
+ PFN_vkGetDeferredOperationResultKHR vkGetDeferredOperationResultKHR = 0;
+ PFN_vkDeferredOperationJoinKHR vkDeferredOperationJoinKHR = 0;
+
+ //=== VK_KHR_descriptor_update_template ===
+ PFN_vkCreateDescriptorUpdateTemplateKHR vkCreateDescriptorUpdateTemplateKHR = 0;
+ PFN_vkDestroyDescriptorUpdateTemplateKHR vkDestroyDescriptorUpdateTemplateKHR = 0;
+ PFN_vkUpdateDescriptorSetWithTemplateKHR vkUpdateDescriptorSetWithTemplateKHR = 0;
+ PFN_vkCmdPushDescriptorSetWithTemplateKHR vkCmdPushDescriptorSetWithTemplateKHR = 0;
+
+ //=== VK_KHR_device_group ===
+ PFN_vkGetDeviceGroupPeerMemoryFeaturesKHR vkGetDeviceGroupPeerMemoryFeaturesKHR = 0;
+ PFN_vkCmdSetDeviceMaskKHR vkCmdSetDeviceMaskKHR = 0;
+ PFN_vkCmdDispatchBaseKHR vkCmdDispatchBaseKHR = 0;
+ PFN_vkGetDeviceGroupPresentCapabilitiesKHR vkGetDeviceGroupPresentCapabilitiesKHR = 0;
+ PFN_vkGetDeviceGroupSurfacePresentModesKHR vkGetDeviceGroupSurfacePresentModesKHR = 0;
+ PFN_vkAcquireNextImage2KHR vkAcquireNextImage2KHR = 0;
+
+ //=== VK_KHR_display_swapchain ===
+ PFN_vkCreateSharedSwapchainsKHR vkCreateSharedSwapchainsKHR = 0;
+
+ //=== VK_KHR_draw_indirect_count ===
+ PFN_vkCmdDrawIndirectCountKHR vkCmdDrawIndirectCountKHR = 0;
+ PFN_vkCmdDrawIndexedIndirectCountKHR vkCmdDrawIndexedIndirectCountKHR = 0;
+
+ //=== VK_KHR_external_fence_fd ===
PFN_vkImportFenceFdKHR vkImportFenceFdKHR = 0;
+ PFN_vkGetFenceFdKHR vkGetFenceFdKHR = 0;
+
# if defined( VK_USE_PLATFORM_WIN32_KHR )
+ //=== VK_KHR_external_fence_win32 ===
PFN_vkImportFenceWin32HandleKHR vkImportFenceWin32HandleKHR = 0;
+ PFN_vkGetFenceWin32HandleKHR vkGetFenceWin32HandleKHR = 0;
+# else
+ PFN_dummy vkImportFenceWin32HandleKHR_placeholder = 0;
+ PFN_dummy vkGetFenceWin32HandleKHR_placeholder = 0;
# endif /*VK_USE_PLATFORM_WIN32_KHR*/
- PFN_vkImportSemaphoreFdKHR vkImportSemaphoreFdKHR = 0;
+
+ //=== VK_KHR_external_memory_fd ===
+ PFN_vkGetMemoryFdKHR vkGetMemoryFdKHR = 0;
+ PFN_vkGetMemoryFdPropertiesKHR vkGetMemoryFdPropertiesKHR = 0;
+
# if defined( VK_USE_PLATFORM_WIN32_KHR )
- PFN_vkImportSemaphoreWin32HandleKHR vkImportSemaphoreWin32HandleKHR = 0;
+ //=== VK_KHR_external_memory_win32 ===
+ PFN_vkGetMemoryWin32HandleKHR vkGetMemoryWin32HandleKHR = 0;
+ PFN_vkGetMemoryWin32HandlePropertiesKHR vkGetMemoryWin32HandlePropertiesKHR = 0;
+# else
+ PFN_dummy vkGetMemoryWin32HandleKHR_placeholder = 0;
+ PFN_dummy vkGetMemoryWin32HandlePropertiesKHR_placeholder = 0;
# endif /*VK_USE_PLATFORM_WIN32_KHR*/
-# if defined( VK_USE_PLATFORM_FUCHSIA )
- PFN_vkImportSemaphoreZirconHandleFUCHSIA vkImportSemaphoreZirconHandleFUCHSIA = 0;
-# endif /*VK_USE_PLATFORM_FUCHSIA*/
- PFN_vkInitializePerformanceApiINTEL vkInitializePerformanceApiINTEL = 0;
- PFN_vkInvalidateMappedMemoryRanges vkInvalidateMappedMemoryRanges = 0;
- PFN_vkMapMemory vkMapMemory = 0;
- PFN_vkMergePipelineCaches vkMergePipelineCaches = 0;
- PFN_vkMergeValidationCachesEXT vkMergeValidationCachesEXT = 0;
- PFN_vkQueueBeginDebugUtilsLabelEXT vkQueueBeginDebugUtilsLabelEXT = 0;
- PFN_vkQueueBindSparse vkQueueBindSparse = 0;
- PFN_vkQueueEndDebugUtilsLabelEXT vkQueueEndDebugUtilsLabelEXT = 0;
- PFN_vkQueueInsertDebugUtilsLabelEXT vkQueueInsertDebugUtilsLabelEXT = 0;
- PFN_vkQueuePresentKHR vkQueuePresentKHR = 0;
- PFN_vkQueueSetPerformanceConfigurationINTEL vkQueueSetPerformanceConfigurationINTEL = 0;
- PFN_vkQueueSubmit vkQueueSubmit = 0;
- PFN_vkQueueSubmit2KHR vkQueueSubmit2KHR = 0;
- PFN_vkQueueWaitIdle vkQueueWaitIdle = 0;
- PFN_vkRegisterDeviceEventEXT vkRegisterDeviceEventEXT = 0;
- PFN_vkRegisterDisplayEventEXT vkRegisterDisplayEventEXT = 0;
+
+ //=== VK_KHR_external_semaphore_fd ===
+ PFN_vkImportSemaphoreFdKHR vkImportSemaphoreFdKHR = 0;
+ PFN_vkGetSemaphoreFdKHR vkGetSemaphoreFdKHR = 0;
+
# if defined( VK_USE_PLATFORM_WIN32_KHR )
- PFN_vkReleaseFullScreenExclusiveModeEXT vkReleaseFullScreenExclusiveModeEXT = 0;
+ //=== VK_KHR_external_semaphore_win32 ===
+ PFN_vkImportSemaphoreWin32HandleKHR vkImportSemaphoreWin32HandleKHR = 0;
+ PFN_vkGetSemaphoreWin32HandleKHR vkGetSemaphoreWin32HandleKHR = 0;
+# else
+ PFN_dummy vkImportSemaphoreWin32HandleKHR_placeholder = 0;
+ PFN_dummy vkGetSemaphoreWin32HandleKHR_placeholder = 0;
# endif /*VK_USE_PLATFORM_WIN32_KHR*/
- PFN_vkReleasePerformanceConfigurationINTEL vkReleasePerformanceConfigurationINTEL = 0;
- PFN_vkReleaseProfilingLockKHR vkReleaseProfilingLockKHR = 0;
- PFN_vkResetCommandBuffer vkResetCommandBuffer = 0;
- PFN_vkResetCommandPool vkResetCommandPool = 0;
- PFN_vkResetDescriptorPool vkResetDescriptorPool = 0;
- PFN_vkResetEvent vkResetEvent = 0;
- PFN_vkResetFences vkResetFences = 0;
- PFN_vkResetQueryPool vkResetQueryPool = 0;
- PFN_vkResetQueryPoolEXT vkResetQueryPoolEXT = 0;
- PFN_vkSetDebugUtilsObjectNameEXT vkSetDebugUtilsObjectNameEXT = 0;
- PFN_vkSetDebugUtilsObjectTagEXT vkSetDebugUtilsObjectTagEXT = 0;
- PFN_vkSetEvent vkSetEvent = 0;
- PFN_vkSetHdrMetadataEXT vkSetHdrMetadataEXT = 0;
- PFN_vkSetLocalDimmingAMD vkSetLocalDimmingAMD = 0;
- PFN_vkSetPrivateDataEXT vkSetPrivateDataEXT = 0;
- PFN_vkSignalSemaphore vkSignalSemaphore = 0;
- PFN_vkSignalSemaphoreKHR vkSignalSemaphoreKHR = 0;
- PFN_vkTrimCommandPool vkTrimCommandPool = 0;
- PFN_vkTrimCommandPoolKHR vkTrimCommandPoolKHR = 0;
- PFN_vkUninitializePerformanceApiINTEL vkUninitializePerformanceApiINTEL = 0;
- PFN_vkUnmapMemory vkUnmapMemory = 0;
- PFN_vkUpdateDescriptorSetWithTemplate vkUpdateDescriptorSetWithTemplate = 0;
- PFN_vkUpdateDescriptorSetWithTemplateKHR vkUpdateDescriptorSetWithTemplateKHR = 0;
- PFN_vkUpdateDescriptorSets vkUpdateDescriptorSets = 0;
+
+ //=== VK_KHR_fragment_shading_rate ===
+ PFN_vkCmdSetFragmentShadingRateKHR vkCmdSetFragmentShadingRateKHR = 0;
+
+ //=== VK_KHR_get_memory_requirements2 ===
+ PFN_vkGetImageMemoryRequirements2KHR vkGetImageMemoryRequirements2KHR = 0;
+ PFN_vkGetBufferMemoryRequirements2KHR vkGetBufferMemoryRequirements2KHR = 0;
+ PFN_vkGetImageSparseMemoryRequirements2KHR vkGetImageSparseMemoryRequirements2KHR = 0;
+
+ //=== VK_KHR_maintenance1 ===
+ PFN_vkTrimCommandPoolKHR vkTrimCommandPoolKHR = 0;
+
+ //=== VK_KHR_maintenance3 ===
+ PFN_vkGetDescriptorSetLayoutSupportKHR vkGetDescriptorSetLayoutSupportKHR = 0;
+
+ //=== VK_KHR_performance_query ===
+ PFN_vkAcquireProfilingLockKHR vkAcquireProfilingLockKHR = 0;
+ PFN_vkReleaseProfilingLockKHR vkReleaseProfilingLockKHR = 0;
+
+ //=== VK_KHR_pipeline_executable_properties ===
+ PFN_vkGetPipelineExecutablePropertiesKHR vkGetPipelineExecutablePropertiesKHR = 0;
+ PFN_vkGetPipelineExecutableStatisticsKHR vkGetPipelineExecutableStatisticsKHR = 0;
+ PFN_vkGetPipelineExecutableInternalRepresentationsKHR vkGetPipelineExecutableInternalRepresentationsKHR = 0;
+
+ //=== VK_KHR_present_wait ===
+ PFN_vkWaitForPresentKHR vkWaitForPresentKHR = 0;
+
+ //=== VK_KHR_push_descriptor ===
+ PFN_vkCmdPushDescriptorSetKHR vkCmdPushDescriptorSetKHR = 0;
+
+ //=== VK_KHR_ray_tracing_pipeline ===
+ PFN_vkCmdTraceRaysKHR vkCmdTraceRaysKHR = 0;
+ PFN_vkCreateRayTracingPipelinesKHR vkCreateRayTracingPipelinesKHR = 0;
+ PFN_vkGetRayTracingShaderGroupHandlesKHR vkGetRayTracingShaderGroupHandlesKHR = 0;
+ PFN_vkGetRayTracingCaptureReplayShaderGroupHandlesKHR vkGetRayTracingCaptureReplayShaderGroupHandlesKHR = 0;
+ PFN_vkCmdTraceRaysIndirectKHR vkCmdTraceRaysIndirectKHR = 0;
+ PFN_vkGetRayTracingShaderGroupStackSizeKHR vkGetRayTracingShaderGroupStackSizeKHR = 0;
+ PFN_vkCmdSetRayTracingPipelineStackSizeKHR vkCmdSetRayTracingPipelineStackSizeKHR = 0;
+
+ //=== VK_KHR_sampler_ycbcr_conversion ===
+ PFN_vkCreateSamplerYcbcrConversionKHR vkCreateSamplerYcbcrConversionKHR = 0;
+ PFN_vkDestroySamplerYcbcrConversionKHR vkDestroySamplerYcbcrConversionKHR = 0;
+
+ //=== VK_KHR_shared_presentable_image ===
+ PFN_vkGetSwapchainStatusKHR vkGetSwapchainStatusKHR = 0;
+
+ //=== VK_KHR_swapchain ===
+ PFN_vkCreateSwapchainKHR vkCreateSwapchainKHR = 0;
+ PFN_vkDestroySwapchainKHR vkDestroySwapchainKHR = 0;
+ PFN_vkGetSwapchainImagesKHR vkGetSwapchainImagesKHR = 0;
+ PFN_vkAcquireNextImageKHR vkAcquireNextImageKHR = 0;
+ PFN_vkQueuePresentKHR vkQueuePresentKHR = 0;
+
+ //=== VK_KHR_synchronization2 ===
+ PFN_vkCmdSetEvent2KHR vkCmdSetEvent2KHR = 0;
+ PFN_vkCmdResetEvent2KHR vkCmdResetEvent2KHR = 0;
+ PFN_vkCmdWaitEvents2KHR vkCmdWaitEvents2KHR = 0;
+ PFN_vkCmdPipelineBarrier2KHR vkCmdPipelineBarrier2KHR = 0;
+ PFN_vkCmdWriteTimestamp2KHR vkCmdWriteTimestamp2KHR = 0;
+ PFN_vkQueueSubmit2KHR vkQueueSubmit2KHR = 0;
+ PFN_vkCmdWriteBufferMarker2AMD vkCmdWriteBufferMarker2AMD = 0;
+ PFN_vkGetQueueCheckpointData2NV vkGetQueueCheckpointData2NV = 0;
+
+ //=== VK_KHR_timeline_semaphore ===
+ PFN_vkGetSemaphoreCounterValueKHR vkGetSemaphoreCounterValueKHR = 0;
+ PFN_vkWaitSemaphoresKHR vkWaitSemaphoresKHR = 0;
+ PFN_vkSignalSemaphoreKHR vkSignalSemaphoreKHR = 0;
+
# if defined( VK_ENABLE_BETA_EXTENSIONS )
- PFN_vkUpdateVideoSessionParametersKHR vkUpdateVideoSessionParametersKHR = 0;
+ //=== VK_KHR_video_decode_queue ===
+ PFN_vkCmdDecodeVideoKHR vkCmdDecodeVideoKHR = 0;
+# else
+ PFN_dummy vkCmdDecodeVideoKHR_placeholder = 0;
# endif /*VK_ENABLE_BETA_EXTENSIONS*/
- PFN_vkWaitForFences vkWaitForFences = 0;
- PFN_vkWaitSemaphores vkWaitSemaphores = 0;
- PFN_vkWaitSemaphoresKHR vkWaitSemaphoresKHR = 0;
- PFN_vkWriteAccelerationStructuresPropertiesKHR vkWriteAccelerationStructuresPropertiesKHR = 0;
+
+# if defined( VK_ENABLE_BETA_EXTENSIONS )
+ //=== VK_KHR_video_encode_queue ===
+ PFN_vkCmdEncodeVideoKHR vkCmdEncodeVideoKHR = 0;
+# else
+ PFN_dummy vkCmdEncodeVideoKHR_placeholder = 0;
+# endif /*VK_ENABLE_BETA_EXTENSIONS*/
+
+# if defined( VK_ENABLE_BETA_EXTENSIONS )
+ //=== VK_KHR_video_queue ===
+ PFN_vkCreateVideoSessionKHR vkCreateVideoSessionKHR = 0;
+ PFN_vkDestroyVideoSessionKHR vkDestroyVideoSessionKHR = 0;
+ PFN_vkGetVideoSessionMemoryRequirementsKHR vkGetVideoSessionMemoryRequirementsKHR = 0;
+ PFN_vkBindVideoSessionMemoryKHR vkBindVideoSessionMemoryKHR = 0;
+ PFN_vkCreateVideoSessionParametersKHR vkCreateVideoSessionParametersKHR = 0;
+ PFN_vkUpdateVideoSessionParametersKHR vkUpdateVideoSessionParametersKHR = 0;
+ PFN_vkDestroyVideoSessionParametersKHR vkDestroyVideoSessionParametersKHR = 0;
+ PFN_vkCmdBeginVideoCodingKHR vkCmdBeginVideoCodingKHR = 0;
+ PFN_vkCmdEndVideoCodingKHR vkCmdEndVideoCodingKHR = 0;
+ PFN_vkCmdControlVideoCodingKHR vkCmdControlVideoCodingKHR = 0;
+# else
+ PFN_dummy vkCreateVideoSessionKHR_placeholder = 0;
+ PFN_dummy vkDestroyVideoSessionKHR_placeholder = 0;
+ PFN_dummy vkGetVideoSessionMemoryRequirementsKHR_placeholder = 0;
+ PFN_dummy vkBindVideoSessionMemoryKHR_placeholder = 0;
+ PFN_dummy vkCreateVideoSessionParametersKHR_placeholder = 0;
+ PFN_dummy vkUpdateVideoSessionParametersKHR_placeholder = 0;
+ PFN_dummy vkDestroyVideoSessionParametersKHR_placeholder = 0;
+ PFN_dummy vkCmdBeginVideoCodingKHR_placeholder = 0;
+ PFN_dummy vkCmdEndVideoCodingKHR_placeholder = 0;
+ PFN_dummy vkCmdControlVideoCodingKHR_placeholder = 0;
+# endif /*VK_ENABLE_BETA_EXTENSIONS*/
+
+ //=== VK_NVX_binary_import ===
+ PFN_vkCreateCuModuleNVX vkCreateCuModuleNVX = 0;
+ PFN_vkCreateCuFunctionNVX vkCreateCuFunctionNVX = 0;
+ PFN_vkDestroyCuModuleNVX vkDestroyCuModuleNVX = 0;
+ PFN_vkDestroyCuFunctionNVX vkDestroyCuFunctionNVX = 0;
+ PFN_vkCmdCuLaunchKernelNVX vkCmdCuLaunchKernelNVX = 0;
+
+ //=== VK_NVX_image_view_handle ===
+ PFN_vkGetImageViewHandleNVX vkGetImageViewHandleNVX = 0;
+ PFN_vkGetImageViewAddressNVX vkGetImageViewAddressNVX = 0;
+
+ //=== VK_NV_clip_space_w_scaling ===
+ PFN_vkCmdSetViewportWScalingNV vkCmdSetViewportWScalingNV = 0;
+
+ //=== VK_NV_device_diagnostic_checkpoints ===
+ PFN_vkCmdSetCheckpointNV vkCmdSetCheckpointNV = 0;
+ PFN_vkGetQueueCheckpointDataNV vkGetQueueCheckpointDataNV = 0;
+
+ //=== VK_NV_device_generated_commands ===
+ PFN_vkGetGeneratedCommandsMemoryRequirementsNV vkGetGeneratedCommandsMemoryRequirementsNV = 0;
+ PFN_vkCmdPreprocessGeneratedCommandsNV vkCmdPreprocessGeneratedCommandsNV = 0;
+ PFN_vkCmdExecuteGeneratedCommandsNV vkCmdExecuteGeneratedCommandsNV = 0;
+ PFN_vkCmdBindPipelineShaderGroupNV vkCmdBindPipelineShaderGroupNV = 0;
+ PFN_vkCreateIndirectCommandsLayoutNV vkCreateIndirectCommandsLayoutNV = 0;
+ PFN_vkDestroyIndirectCommandsLayoutNV vkDestroyIndirectCommandsLayoutNV = 0;
+
+ //=== VK_NV_external_memory_rdma ===
+ PFN_vkGetMemoryRemoteAddressNV vkGetMemoryRemoteAddressNV = 0;
+
+# if defined( VK_USE_PLATFORM_WIN32_KHR )
+ //=== VK_NV_external_memory_win32 ===
+ PFN_vkGetMemoryWin32HandleNV vkGetMemoryWin32HandleNV = 0;
+# else
+ PFN_dummy vkGetMemoryWin32HandleNV_placeholder = 0;
+# endif /*VK_USE_PLATFORM_WIN32_KHR*/
+
+ //=== VK_NV_fragment_shading_rate_enums ===
+ PFN_vkCmdSetFragmentShadingRateEnumNV vkCmdSetFragmentShadingRateEnumNV = 0;
+
+ //=== VK_NV_mesh_shader ===
+ PFN_vkCmdDrawMeshTasksNV vkCmdDrawMeshTasksNV = 0;
+ PFN_vkCmdDrawMeshTasksIndirectNV vkCmdDrawMeshTasksIndirectNV = 0;
+ PFN_vkCmdDrawMeshTasksIndirectCountNV vkCmdDrawMeshTasksIndirectCountNV = 0;
+
+ //=== VK_NV_ray_tracing ===
+ PFN_vkCreateAccelerationStructureNV vkCreateAccelerationStructureNV = 0;
+ PFN_vkDestroyAccelerationStructureNV vkDestroyAccelerationStructureNV = 0;
+ PFN_vkGetAccelerationStructureMemoryRequirementsNV vkGetAccelerationStructureMemoryRequirementsNV = 0;
+ PFN_vkBindAccelerationStructureMemoryNV vkBindAccelerationStructureMemoryNV = 0;
+ PFN_vkCmdBuildAccelerationStructureNV vkCmdBuildAccelerationStructureNV = 0;
+ PFN_vkCmdCopyAccelerationStructureNV vkCmdCopyAccelerationStructureNV = 0;
+ PFN_vkCmdTraceRaysNV vkCmdTraceRaysNV = 0;
+ PFN_vkCreateRayTracingPipelinesNV vkCreateRayTracingPipelinesNV = 0;
+ PFN_vkGetRayTracingShaderGroupHandlesNV vkGetRayTracingShaderGroupHandlesNV = 0;
+ PFN_vkGetAccelerationStructureHandleNV vkGetAccelerationStructureHandleNV = 0;
+ PFN_vkCmdWriteAccelerationStructuresPropertiesNV vkCmdWriteAccelerationStructuresPropertiesNV = 0;
+ PFN_vkCompileDeferredNV vkCompileDeferredNV = 0;
+
+ //=== VK_NV_scissor_exclusive ===
+ PFN_vkCmdSetExclusiveScissorNV vkCmdSetExclusiveScissorNV = 0;
+
+ //=== VK_NV_shading_rate_image ===
+ PFN_vkCmdBindShadingRateImageNV vkCmdBindShadingRateImageNV = 0;
+ PFN_vkCmdSetViewportShadingRatePaletteNV vkCmdSetViewportShadingRatePaletteNV = 0;
+ PFN_vkCmdSetCoarseSampleOrderNV vkCmdSetCoarseSampleOrderNV = 0;
};
+ //====================
+ //=== RAII HANDLES ===
+ //====================
+
class Context
{
public:
@@ -1714,6 +2210,7 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::ContextDispatcher const * getDispatcher() const
{
+ VULKAN_HPP_ASSERT( m_dispatcher.getVkHeaderVersion() == VK_HEADER_VERSION );
return &m_dispatcher;
}
@@ -1770,7 +2267,11 @@ namespace VULKAN_HPP_NAMESPACE
}
}
- Instance() = delete;
+# if defined( VULKAN_HPP_RAII_ENABLE_DEFAULT_CONSTRUCTORS )
+ Instance() = default;
+# else
+ Instance() = delete;
+# endif
Instance( Instance const & ) = delete;
Instance( Instance && rhs ) VULKAN_HPP_NOEXCEPT
: m_instance( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_instance, {} ) )
@@ -1782,7 +2283,10 @@ namespace VULKAN_HPP_NAMESPACE
{
if ( this != &rhs )
{
- getDispatcher()->vkDestroyInstance( static_cast<VkInstance>( m_instance ), m_allocator );
+ if ( m_instance )
+ {
+ getDispatcher()->vkDestroyInstance( static_cast<VkInstance>( m_instance ), m_allocator );
+ }
m_instance = VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_instance, {} );
m_allocator = rhs.m_allocator;
m_dispatcher = rhs.m_dispatcher;
@@ -1790,6 +2294,29 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
+ VULKAN_HPP_NAMESPACE::Instance const & operator*() const VULKAN_HPP_NOEXCEPT
+ {
+ return m_instance;
+ }
+
+ VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::InstanceDispatcher const * getDispatcher() const
+ {
+ VULKAN_HPP_ASSERT( m_dispatcher.getVkHeaderVersion() == VK_HEADER_VERSION );
+ return &m_dispatcher;
+ }
+
+# if defined( VULKAN_HPP_RAII_ENABLE_DEFAULT_CONSTRUCTORS )
+ explicit operator bool() const VULKAN_HPP_NOEXCEPT
+ {
+ return m_instance.operator bool();
+ }
+
+ bool operator!() const VULKAN_HPP_NOEXCEPT
+ {
+ return m_instance.operator!();
+ }
+# endif
+
//=== VK_VERSION_1_0 ===
VULKAN_HPP_NODISCARD PFN_vkVoidFunction getProcAddr( const std::string & name ) const VULKAN_HPP_NOEXCEPT;
@@ -1821,16 +2348,6 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_NAMESPACE::DebugUtilsMessageTypeFlagsEXT messageTypes,
const DebugUtilsMessengerCallbackDataEXT & callbackData ) const VULKAN_HPP_NOEXCEPT;
- VULKAN_HPP_NAMESPACE::Instance const & operator*() const VULKAN_HPP_NOEXCEPT
- {
- return m_instance;
- }
-
- VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::InstanceDispatcher const * getDispatcher() const
- {
- return &m_dispatcher;
- }
-
private:
VULKAN_HPP_NAMESPACE::Instance m_instance;
const VkAllocationCallbacks * m_allocator;
@@ -1858,7 +2375,11 @@ namespace VULKAN_HPP_NAMESPACE
: m_physicalDevice( physicalDevice ), m_dispatcher( dispatcher )
{}
- PhysicalDevice() = delete;
+# if defined( VULKAN_HPP_RAII_ENABLE_DEFAULT_CONSTRUCTORS )
+ PhysicalDevice() = default;
+# else
+ PhysicalDevice() = delete;
+# endif
PhysicalDevice( PhysicalDevice const & ) = delete;
PhysicalDevice( PhysicalDevice && rhs ) VULKAN_HPP_NOEXCEPT
: m_physicalDevice( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_physicalDevice, {} ) )
@@ -1875,6 +2396,29 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
+ VULKAN_HPP_NAMESPACE::PhysicalDevice const & operator*() const VULKAN_HPP_NOEXCEPT
+ {
+ return m_physicalDevice;
+ }
+
+ VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::InstanceDispatcher const * getDispatcher() const
+ {
+ VULKAN_HPP_ASSERT( m_dispatcher->getVkHeaderVersion() == VK_HEADER_VERSION );
+ return m_dispatcher;
+ }
+
+# if defined( VULKAN_HPP_RAII_ENABLE_DEFAULT_CONSTRUCTORS )
+ explicit operator bool() const VULKAN_HPP_NOEXCEPT
+ {
+ return m_physicalDevice.operator bool();
+ }
+
+ bool operator!() const VULKAN_HPP_NOEXCEPT
+ {
+ return m_physicalDevice.operator!();
+ }
+# endif
+
//=== VK_VERSION_1_0 ===
VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures getFeatures() const VULKAN_HPP_NOEXCEPT;
@@ -2194,16 +2738,6 @@ namespace VULKAN_HPP_NAMESPACE
struct _screen_window & window ) const VULKAN_HPP_NOEXCEPT;
# endif /*VK_USE_PLATFORM_SCREEN_QNX*/
- VULKAN_HPP_NAMESPACE::PhysicalDevice const & operator*() const VULKAN_HPP_NOEXCEPT
- {
- return m_physicalDevice;
- }
-
- VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::InstanceDispatcher const * getDispatcher() const
- {
- return m_dispatcher;
- }
-
private:
VULKAN_HPP_NAMESPACE::PhysicalDevice m_physicalDevice;
VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::InstanceDispatcher const * m_dispatcher;
@@ -2245,7 +2779,11 @@ namespace VULKAN_HPP_NAMESPACE
}
}
- PhysicalDevices() = delete;
+# if defined( VULKAN_HPP_RAII_ENABLE_DEFAULT_CONSTRUCTORS )
+ PhysicalDevices() = default;
+# else
+ PhysicalDevices() = delete;
+# endif
PhysicalDevices( PhysicalDevices const & ) = delete;
PhysicalDevices( PhysicalDevices && rhs ) = default;
PhysicalDevices & operator=( PhysicalDevices const & ) = delete;
@@ -2301,7 +2839,11 @@ namespace VULKAN_HPP_NAMESPACE
}
}
- Device() = delete;
+# if defined( VULKAN_HPP_RAII_ENABLE_DEFAULT_CONSTRUCTORS )
+ Device() = default;
+# else
+ Device() = delete;
+# endif
Device( Device const & ) = delete;
Device( Device && rhs ) VULKAN_HPP_NOEXCEPT
: m_device( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_device, {} ) )
@@ -2313,7 +2855,10 @@ namespace VULKAN_HPP_NAMESPACE
{
if ( this != &rhs )
{
- getDispatcher()->vkDestroyDevice( static_cast<VkDevice>( m_device ), m_allocator );
+ if ( m_device )
+ {
+ getDispatcher()->vkDestroyDevice( static_cast<VkDevice>( m_device ), m_allocator );
+ }
m_device = VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_device, {} );
m_allocator = rhs.m_allocator;
m_dispatcher = rhs.m_dispatcher;
@@ -2321,6 +2866,29 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
+ VULKAN_HPP_NAMESPACE::Device const & operator*() const VULKAN_HPP_NOEXCEPT
+ {
+ return m_device;
+ }
+
+ VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::DeviceDispatcher const * getDispatcher() const
+ {
+ VULKAN_HPP_ASSERT( m_dispatcher.getVkHeaderVersion() == VK_HEADER_VERSION );
+ return &m_dispatcher;
+ }
+
+# if defined( VULKAN_HPP_RAII_ENABLE_DEFAULT_CONSTRUCTORS )
+ explicit operator bool() const VULKAN_HPP_NOEXCEPT
+ {
+ return m_device.operator bool();
+ }
+
+ bool operator!() const VULKAN_HPP_NOEXCEPT
+ {
+ return m_device.operator!();
+ }
+# endif
+
//=== VK_VERSION_1_0 ===
VULKAN_HPP_NODISCARD PFN_vkVoidFunction getProcAddr( const std::string & name ) const VULKAN_HPP_NOEXCEPT;
@@ -2716,15 +3284,10 @@ namespace VULKAN_HPP_NAMESPACE
getSemaphoreZirconHandleFUCHSIA( const SemaphoreGetZirconHandleInfoFUCHSIA & getZirconHandleInfo ) const;
# endif /*VK_USE_PLATFORM_FUCHSIA*/
- VULKAN_HPP_NAMESPACE::Device const & operator*() const VULKAN_HPP_NOEXCEPT
- {
- return m_device;
- }
+ //=== VK_NV_external_memory_rdma ===
- VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::DeviceDispatcher const * getDispatcher() const
- {
- return &m_dispatcher;
- }
+ VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::RemoteAddressNV
+ getMemoryRemoteAddressNV( const MemoryGetRemoteAddressInfoNV & memoryGetRemoteAddressInfo ) const;
private:
VULKAN_HPP_NAMESPACE::Device m_device;
@@ -2784,7 +3347,11 @@ namespace VULKAN_HPP_NAMESPACE
}
}
- AccelerationStructureKHR() = delete;
+# if defined( VULKAN_HPP_RAII_ENABLE_DEFAULT_CONSTRUCTORS )
+ AccelerationStructureKHR() = default;
+# else
+ AccelerationStructureKHR() = delete;
+# endif
AccelerationStructureKHR( AccelerationStructureKHR const & ) = delete;
AccelerationStructureKHR( AccelerationStructureKHR && rhs ) VULKAN_HPP_NOEXCEPT
: m_accelerationStructureKHR(
@@ -2798,8 +3365,11 @@ namespace VULKAN_HPP_NAMESPACE
{
if ( this != &rhs )
{
- getDispatcher()->vkDestroyAccelerationStructureKHR(
- m_device, static_cast<VkAccelerationStructureKHR>( m_accelerationStructureKHR ), m_allocator );
+ if ( m_accelerationStructureKHR )
+ {
+ getDispatcher()->vkDestroyAccelerationStructureKHR(
+ m_device, static_cast<VkAccelerationStructureKHR>( m_accelerationStructureKHR ), m_allocator );
+ }
m_accelerationStructureKHR =
VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_accelerationStructureKHR, {} );
m_device = rhs.m_device;
@@ -2816,9 +3386,22 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::DeviceDispatcher const * getDispatcher() const
{
+ VULKAN_HPP_ASSERT( m_dispatcher->getVkHeaderVersion() == VK_HEADER_VERSION );
return m_dispatcher;
}
+# if defined( VULKAN_HPP_RAII_ENABLE_DEFAULT_CONSTRUCTORS )
+ explicit operator bool() const VULKAN_HPP_NOEXCEPT
+ {
+ return m_accelerationStructureKHR.operator bool();
+ }
+
+ bool operator!() const VULKAN_HPP_NOEXCEPT
+ {
+ return m_accelerationStructureKHR.operator!();
+ }
+# endif
+
private:
VULKAN_HPP_NAMESPACE::AccelerationStructureKHR m_accelerationStructureKHR;
VkDevice m_device;
@@ -2878,7 +3461,11 @@ namespace VULKAN_HPP_NAMESPACE
}
}
- AccelerationStructureNV() = delete;
+# if defined( VULKAN_HPP_RAII_ENABLE_DEFAULT_CONSTRUCTORS )
+ AccelerationStructureNV() = default;
+# else
+ AccelerationStructureNV() = delete;
+# endif
AccelerationStructureNV( AccelerationStructureNV const & ) = delete;
AccelerationStructureNV( AccelerationStructureNV && rhs ) VULKAN_HPP_NOEXCEPT
: m_accelerationStructureNV(
@@ -2892,8 +3479,11 @@ namespace VULKAN_HPP_NAMESPACE
{
if ( this != &rhs )
{
- getDispatcher()->vkDestroyAccelerationStructureNV(
- m_device, static_cast<VkAccelerationStructureNV>( m_accelerationStructureNV ), m_allocator );
+ if ( m_accelerationStructureNV )
+ {
+ getDispatcher()->vkDestroyAccelerationStructureNV(
+ m_device, static_cast<VkAccelerationStructureNV>( m_accelerationStructureNV ), m_allocator );
+ }
m_accelerationStructureNV =
VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_accelerationStructureNV, {} );
m_device = rhs.m_device;
@@ -2903,14 +3493,6 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
- //=== VK_NV_ray_tracing ===
-
- template <typename T>
- VULKAN_HPP_NODISCARD std::vector<T> getHandle( size_t dataSize ) const;
-
- template <typename T>
- VULKAN_HPP_NODISCARD T getHandle() const;
-
VULKAN_HPP_NAMESPACE::AccelerationStructureNV const & operator*() const VULKAN_HPP_NOEXCEPT
{
return m_accelerationStructureNV;
@@ -2918,9 +3500,30 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::DeviceDispatcher const * getDispatcher() const
{
+ VULKAN_HPP_ASSERT( m_dispatcher->getVkHeaderVersion() == VK_HEADER_VERSION );
return m_dispatcher;
}
+# if defined( VULKAN_HPP_RAII_ENABLE_DEFAULT_CONSTRUCTORS )
+ explicit operator bool() const VULKAN_HPP_NOEXCEPT
+ {
+ return m_accelerationStructureNV.operator bool();
+ }
+
+ bool operator!() const VULKAN_HPP_NOEXCEPT
+ {
+ return m_accelerationStructureNV.operator!();
+ }
+# endif
+
+ //=== VK_NV_ray_tracing ===
+
+ template <typename T>
+ VULKAN_HPP_NODISCARD std::vector<T> getHandle( size_t dataSize ) const;
+
+ template <typename T>
+ VULKAN_HPP_NODISCARD T getHandle() const;
+
private:
VULKAN_HPP_NAMESPACE::AccelerationStructureNV m_accelerationStructureNV;
VkDevice m_device;
@@ -2976,7 +3579,11 @@ namespace VULKAN_HPP_NAMESPACE
}
}
- Buffer() = delete;
+# if defined( VULKAN_HPP_RAII_ENABLE_DEFAULT_CONSTRUCTORS )
+ Buffer() = default;
+# else
+ Buffer() = delete;
+# endif
Buffer( Buffer const & ) = delete;
Buffer( Buffer && rhs ) VULKAN_HPP_NOEXCEPT
: m_buffer( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_buffer, {} ) )
@@ -2989,7 +3596,10 @@ namespace VULKAN_HPP_NAMESPACE
{
if ( this != &rhs )
{
- getDispatcher()->vkDestroyBuffer( m_device, static_cast<VkBuffer>( m_buffer ), m_allocator );
+ if ( m_buffer )
+ {
+ getDispatcher()->vkDestroyBuffer( m_device, static_cast<VkBuffer>( m_buffer ), m_allocator );
+ }
m_buffer = VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_buffer, {} );
m_device = rhs.m_device;
m_allocator = rhs.m_allocator;
@@ -2998,12 +3608,6 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
- //=== VK_VERSION_1_0 ===
-
- void bindMemory( VULKAN_HPP_NAMESPACE::DeviceMemory memory, VULKAN_HPP_NAMESPACE::DeviceSize memoryOffset ) const;
-
- VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::MemoryRequirements getMemoryRequirements() const VULKAN_HPP_NOEXCEPT;
-
VULKAN_HPP_NAMESPACE::Buffer const & operator*() const VULKAN_HPP_NOEXCEPT
{
return m_buffer;
@@ -3011,9 +3615,28 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::DeviceDispatcher const * getDispatcher() const
{
+ VULKAN_HPP_ASSERT( m_dispatcher->getVkHeaderVersion() == VK_HEADER_VERSION );
return m_dispatcher;
}
+# if defined( VULKAN_HPP_RAII_ENABLE_DEFAULT_CONSTRUCTORS )
+ explicit operator bool() const VULKAN_HPP_NOEXCEPT
+ {
+ return m_buffer.operator bool();
+ }
+
+ bool operator!() const VULKAN_HPP_NOEXCEPT
+ {
+ return m_buffer.operator!();
+ }
+# endif
+
+ //=== VK_VERSION_1_0 ===
+
+ void bindMemory( VULKAN_HPP_NAMESPACE::DeviceMemory memory, VULKAN_HPP_NAMESPACE::DeviceSize memoryOffset ) const;
+
+ VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::MemoryRequirements getMemoryRequirements() const VULKAN_HPP_NOEXCEPT;
+
private:
VULKAN_HPP_NAMESPACE::Buffer m_buffer;
VkDevice m_device;
@@ -3069,7 +3692,11 @@ namespace VULKAN_HPP_NAMESPACE
}
}
- BufferView() = delete;
+# if defined( VULKAN_HPP_RAII_ENABLE_DEFAULT_CONSTRUCTORS )
+ BufferView() = default;
+# else
+ BufferView() = delete;
+# endif
BufferView( BufferView const & ) = delete;
BufferView( BufferView && rhs ) VULKAN_HPP_NOEXCEPT
: m_bufferView( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_bufferView, {} ) )
@@ -3082,7 +3709,10 @@ namespace VULKAN_HPP_NAMESPACE
{
if ( this != &rhs )
{
- getDispatcher()->vkDestroyBufferView( m_device, static_cast<VkBufferView>( m_bufferView ), m_allocator );
+ if ( m_bufferView )
+ {
+ getDispatcher()->vkDestroyBufferView( m_device, static_cast<VkBufferView>( m_bufferView ), m_allocator );
+ }
m_bufferView = VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_bufferView, {} );
m_device = rhs.m_device;
m_allocator = rhs.m_allocator;
@@ -3098,9 +3728,22 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::DeviceDispatcher const * getDispatcher() const
{
+ VULKAN_HPP_ASSERT( m_dispatcher->getVkHeaderVersion() == VK_HEADER_VERSION );
return m_dispatcher;
}
+# if defined( VULKAN_HPP_RAII_ENABLE_DEFAULT_CONSTRUCTORS )
+ explicit operator bool() const VULKAN_HPP_NOEXCEPT
+ {
+ return m_bufferView.operator bool();
+ }
+
+ bool operator!() const VULKAN_HPP_NOEXCEPT
+ {
+ return m_bufferView.operator!();
+ }
+# endif
+
private:
VULKAN_HPP_NAMESPACE::BufferView m_bufferView;
VkDevice m_device;
@@ -3156,7 +3799,11 @@ namespace VULKAN_HPP_NAMESPACE
}
}
- CommandPool() = delete;
+# if defined( VULKAN_HPP_RAII_ENABLE_DEFAULT_CONSTRUCTORS )
+ CommandPool() = default;
+# else
+ CommandPool() = delete;
+# endif
CommandPool( CommandPool const & ) = delete;
CommandPool( CommandPool && rhs ) VULKAN_HPP_NOEXCEPT
: m_commandPool( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_commandPool, {} ) )
@@ -3169,7 +3816,10 @@ namespace VULKAN_HPP_NAMESPACE
{
if ( this != &rhs )
{
- getDispatcher()->vkDestroyCommandPool( m_device, static_cast<VkCommandPool>( m_commandPool ), m_allocator );
+ if ( m_commandPool )
+ {
+ getDispatcher()->vkDestroyCommandPool( m_device, static_cast<VkCommandPool>( m_commandPool ), m_allocator );
+ }
m_commandPool = VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_commandPool, {} );
m_device = rhs.m_device;
m_allocator = rhs.m_allocator;
@@ -3178,6 +3828,29 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
+ VULKAN_HPP_NAMESPACE::CommandPool const & operator*() const VULKAN_HPP_NOEXCEPT
+ {
+ return m_commandPool;
+ }
+
+ VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::DeviceDispatcher const * getDispatcher() const
+ {
+ VULKAN_HPP_ASSERT( m_dispatcher->getVkHeaderVersion() == VK_HEADER_VERSION );
+ return m_dispatcher;
+ }
+
+# if defined( VULKAN_HPP_RAII_ENABLE_DEFAULT_CONSTRUCTORS )
+ explicit operator bool() const VULKAN_HPP_NOEXCEPT
+ {
+ return m_commandPool.operator bool();
+ }
+
+ bool operator!() const VULKAN_HPP_NOEXCEPT
+ {
+ return m_commandPool.operator!();
+ }
+# endif
+
//=== VK_VERSION_1_0 ===
void reset( VULKAN_HPP_NAMESPACE::CommandPoolResetFlags flags VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT ) const;
@@ -3192,16 +3865,6 @@ namespace VULKAN_HPP_NAMESPACE
void trimKHR( VULKAN_HPP_NAMESPACE::CommandPoolTrimFlags flags VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT ) const
VULKAN_HPP_NOEXCEPT;
- VULKAN_HPP_NAMESPACE::CommandPool const & operator*() const VULKAN_HPP_NOEXCEPT
- {
- return m_commandPool;
- }
-
- VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::DeviceDispatcher const * getDispatcher() const
- {
- return m_dispatcher;
- }
-
private:
VULKAN_HPP_NAMESPACE::CommandPool m_commandPool;
VkDevice m_device;
@@ -3245,7 +3908,11 @@ namespace VULKAN_HPP_NAMESPACE
}
}
- CommandBuffer() = delete;
+# if defined( VULKAN_HPP_RAII_ENABLE_DEFAULT_CONSTRUCTORS )
+ CommandBuffer() = default;
+# else
+ CommandBuffer() = delete;
+# endif
CommandBuffer( CommandBuffer const & ) = delete;
CommandBuffer( CommandBuffer && rhs ) VULKAN_HPP_NOEXCEPT
: m_commandBuffer( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_commandBuffer, {} ) )
@@ -3258,8 +3925,11 @@ namespace VULKAN_HPP_NAMESPACE
{
if ( this != &rhs )
{
- getDispatcher()->vkFreeCommandBuffers(
- m_device, m_commandPool, 1, reinterpret_cast<VkCommandBuffer const *>( &m_commandBuffer ) );
+ if ( m_commandBuffer )
+ {
+ getDispatcher()->vkFreeCommandBuffers(
+ m_device, m_commandPool, 1, reinterpret_cast<VkCommandBuffer const *>( &m_commandBuffer ) );
+ }
m_commandBuffer = VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_commandBuffer, {} );
m_device = rhs.m_device;
m_commandPool = rhs.m_commandPool;
@@ -3268,6 +3938,29 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
+ VULKAN_HPP_NAMESPACE::CommandBuffer const & operator*() const VULKAN_HPP_NOEXCEPT
+ {
+ return m_commandBuffer;
+ }
+
+ VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::DeviceDispatcher const * getDispatcher() const
+ {
+ VULKAN_HPP_ASSERT( m_dispatcher->getVkHeaderVersion() == VK_HEADER_VERSION );
+ return m_dispatcher;
+ }
+
+# if defined( VULKAN_HPP_RAII_ENABLE_DEFAULT_CONSTRUCTORS )
+ explicit operator bool() const VULKAN_HPP_NOEXCEPT
+ {
+ return m_commandBuffer.operator bool();
+ }
+
+ bool operator!() const VULKAN_HPP_NOEXCEPT
+ {
+ return m_commandBuffer.operator!();
+ }
+# endif
+
//=== VK_VERSION_1_0 ===
void begin( const CommandBufferBeginInfo & beginInfo ) const;
@@ -3408,10 +4101,12 @@ namespace VULKAN_HPP_NAMESPACE
ArrayProxy<const VULKAN_HPP_NAMESPACE::ImageResolve> const & regions ) const VULKAN_HPP_NOEXCEPT;
void setEvent( VULKAN_HPP_NAMESPACE::Event event,
- VULKAN_HPP_NAMESPACE::PipelineStageFlags stageMask ) const VULKAN_HPP_NOEXCEPT;
+ VULKAN_HPP_NAMESPACE::PipelineStageFlags stageMask
+ VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
void resetEvent( VULKAN_HPP_NAMESPACE::Event event,
- VULKAN_HPP_NAMESPACE::PipelineStageFlags stageMask ) const VULKAN_HPP_NOEXCEPT;
+ VULKAN_HPP_NAMESPACE::PipelineStageFlags stageMask
+ VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
void waitEvents( ArrayProxy<const VULKAN_HPP_NAMESPACE::Event> const & events,
VULKAN_HPP_NAMESPACE::PipelineStageFlags srcStageMask,
@@ -3925,6 +4620,11 @@ namespace VULKAN_HPP_NAMESPACE
void subpassShadingHUAWEI() const VULKAN_HPP_NOEXCEPT;
+ //=== VK_HUAWEI_invocation_mask ===
+
+ void bindInvocationMaskHUAWEI( VULKAN_HPP_NAMESPACE::ImageView imageView,
+ VULKAN_HPP_NAMESPACE::ImageLayout imageLayout ) const VULKAN_HPP_NOEXCEPT;
+
//=== VK_EXT_extended_dynamic_state2 ===
void setPatchControlPointsEXT( uint32_t patchControlPoints ) const VULKAN_HPP_NOEXCEPT;
@@ -3958,16 +4658,6 @@ namespace VULKAN_HPP_NAMESPACE
Optional<const int32_t> vertexOffset
VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
- VULKAN_HPP_NAMESPACE::CommandBuffer const & operator*() const VULKAN_HPP_NOEXCEPT
- {
- return m_commandBuffer;
- }
-
- VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::DeviceDispatcher const * getDispatcher() const
- {
- return m_dispatcher;
- }
-
private:
VULKAN_HPP_NAMESPACE::CommandBuffer m_commandBuffer;
VkDevice m_device;
@@ -4004,7 +4694,11 @@ namespace VULKAN_HPP_NAMESPACE
}
}
- CommandBuffers() = delete;
+# if defined( VULKAN_HPP_RAII_ENABLE_DEFAULT_CONSTRUCTORS )
+ CommandBuffers() = default;
+# else
+ CommandBuffers() = delete;
+# endif
CommandBuffers( CommandBuffers const & ) = delete;
CommandBuffers( CommandBuffers && rhs ) = default;
CommandBuffers & operator=( CommandBuffers const & ) = delete;
@@ -4062,7 +4756,11 @@ namespace VULKAN_HPP_NAMESPACE
}
}
- CuFunctionNVX() = delete;
+# if defined( VULKAN_HPP_RAII_ENABLE_DEFAULT_CONSTRUCTORS )
+ CuFunctionNVX() = default;
+# else
+ CuFunctionNVX() = delete;
+# endif
CuFunctionNVX( CuFunctionNVX const & ) = delete;
CuFunctionNVX( CuFunctionNVX && rhs ) VULKAN_HPP_NOEXCEPT
: m_cuFunctionNVX( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_cuFunctionNVX, {} ) )
@@ -4075,8 +4773,11 @@ namespace VULKAN_HPP_NAMESPACE
{
if ( this != &rhs )
{
- getDispatcher()->vkDestroyCuFunctionNVX(
- m_device, static_cast<VkCuFunctionNVX>( m_cuFunctionNVX ), m_allocator );
+ if ( m_cuFunctionNVX )
+ {
+ getDispatcher()->vkDestroyCuFunctionNVX(
+ m_device, static_cast<VkCuFunctionNVX>( m_cuFunctionNVX ), m_allocator );
+ }
m_cuFunctionNVX = VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_cuFunctionNVX, {} );
m_device = rhs.m_device;
m_allocator = rhs.m_allocator;
@@ -4092,9 +4793,22 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::DeviceDispatcher const * getDispatcher() const
{
+ VULKAN_HPP_ASSERT( m_dispatcher->getVkHeaderVersion() == VK_HEADER_VERSION );
return m_dispatcher;
}
+# if defined( VULKAN_HPP_RAII_ENABLE_DEFAULT_CONSTRUCTORS )
+ explicit operator bool() const VULKAN_HPP_NOEXCEPT
+ {
+ return m_cuFunctionNVX.operator bool();
+ }
+
+ bool operator!() const VULKAN_HPP_NOEXCEPT
+ {
+ return m_cuFunctionNVX.operator!();
+ }
+# endif
+
private:
VULKAN_HPP_NAMESPACE::CuFunctionNVX m_cuFunctionNVX;
VkDevice m_device;
@@ -4150,7 +4864,11 @@ namespace VULKAN_HPP_NAMESPACE
}
}
- CuModuleNVX() = delete;
+# if defined( VULKAN_HPP_RAII_ENABLE_DEFAULT_CONSTRUCTORS )
+ CuModuleNVX() = default;
+# else
+ CuModuleNVX() = delete;
+# endif
CuModuleNVX( CuModuleNVX const & ) = delete;
CuModuleNVX( CuModuleNVX && rhs ) VULKAN_HPP_NOEXCEPT
: m_cuModuleNVX( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_cuModuleNVX, {} ) )
@@ -4163,7 +4881,10 @@ namespace VULKAN_HPP_NAMESPACE
{
if ( this != &rhs )
{
- getDispatcher()->vkDestroyCuModuleNVX( m_device, static_cast<VkCuModuleNVX>( m_cuModuleNVX ), m_allocator );
+ if ( m_cuModuleNVX )
+ {
+ getDispatcher()->vkDestroyCuModuleNVX( m_device, static_cast<VkCuModuleNVX>( m_cuModuleNVX ), m_allocator );
+ }
m_cuModuleNVX = VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_cuModuleNVX, {} );
m_device = rhs.m_device;
m_allocator = rhs.m_allocator;
@@ -4179,9 +4900,22 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::DeviceDispatcher const * getDispatcher() const
{
+ VULKAN_HPP_ASSERT( m_dispatcher->getVkHeaderVersion() == VK_HEADER_VERSION );
return m_dispatcher;
}
+# if defined( VULKAN_HPP_RAII_ENABLE_DEFAULT_CONSTRUCTORS )
+ explicit operator bool() const VULKAN_HPP_NOEXCEPT
+ {
+ return m_cuModuleNVX.operator bool();
+ }
+
+ bool operator!() const VULKAN_HPP_NOEXCEPT
+ {
+ return m_cuModuleNVX.operator!();
+ }
+# endif
+
private:
VULKAN_HPP_NAMESPACE::CuModuleNVX m_cuModuleNVX;
VkDevice m_device;
@@ -4241,7 +4975,11 @@ namespace VULKAN_HPP_NAMESPACE
}
}
- DebugReportCallbackEXT() = delete;
+# if defined( VULKAN_HPP_RAII_ENABLE_DEFAULT_CONSTRUCTORS )
+ DebugReportCallbackEXT() = default;
+# else
+ DebugReportCallbackEXT() = delete;
+# endif
DebugReportCallbackEXT( DebugReportCallbackEXT const & ) = delete;
DebugReportCallbackEXT( DebugReportCallbackEXT && rhs ) VULKAN_HPP_NOEXCEPT
: m_debugReportCallbackEXT(
@@ -4255,8 +4993,11 @@ namespace VULKAN_HPP_NAMESPACE
{
if ( this != &rhs )
{
- getDispatcher()->vkDestroyDebugReportCallbackEXT(
- m_instance, static_cast<VkDebugReportCallbackEXT>( m_debugReportCallbackEXT ), m_allocator );
+ if ( m_debugReportCallbackEXT )
+ {
+ getDispatcher()->vkDestroyDebugReportCallbackEXT(
+ m_instance, static_cast<VkDebugReportCallbackEXT>( m_debugReportCallbackEXT ), m_allocator );
+ }
m_debugReportCallbackEXT =
VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_debugReportCallbackEXT, {} );
m_instance = rhs.m_instance;
@@ -4273,9 +5014,22 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::InstanceDispatcher const * getDispatcher() const
{
+ VULKAN_HPP_ASSERT( m_dispatcher->getVkHeaderVersion() == VK_HEADER_VERSION );
return m_dispatcher;
}
+# if defined( VULKAN_HPP_RAII_ENABLE_DEFAULT_CONSTRUCTORS )
+ explicit operator bool() const VULKAN_HPP_NOEXCEPT
+ {
+ return m_debugReportCallbackEXT.operator bool();
+ }
+
+ bool operator!() const VULKAN_HPP_NOEXCEPT
+ {
+ return m_debugReportCallbackEXT.operator!();
+ }
+# endif
+
private:
VULKAN_HPP_NAMESPACE::DebugReportCallbackEXT m_debugReportCallbackEXT;
VkInstance m_instance;
@@ -4335,7 +5089,11 @@ namespace VULKAN_HPP_NAMESPACE
}
}
- DebugUtilsMessengerEXT() = delete;
+# if defined( VULKAN_HPP_RAII_ENABLE_DEFAULT_CONSTRUCTORS )
+ DebugUtilsMessengerEXT() = default;
+# else
+ DebugUtilsMessengerEXT() = delete;
+# endif
DebugUtilsMessengerEXT( DebugUtilsMessengerEXT const & ) = delete;
DebugUtilsMessengerEXT( DebugUtilsMessengerEXT && rhs ) VULKAN_HPP_NOEXCEPT
: m_debugUtilsMessengerEXT(
@@ -4349,8 +5107,11 @@ namespace VULKAN_HPP_NAMESPACE
{
if ( this != &rhs )
{
- getDispatcher()->vkDestroyDebugUtilsMessengerEXT(
- m_instance, static_cast<VkDebugUtilsMessengerEXT>( m_debugUtilsMessengerEXT ), m_allocator );
+ if ( m_debugUtilsMessengerEXT )
+ {
+ getDispatcher()->vkDestroyDebugUtilsMessengerEXT(
+ m_instance, static_cast<VkDebugUtilsMessengerEXT>( m_debugUtilsMessengerEXT ), m_allocator );
+ }
m_debugUtilsMessengerEXT =
VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_debugUtilsMessengerEXT, {} );
m_instance = rhs.m_instance;
@@ -4367,9 +5128,22 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::InstanceDispatcher const * getDispatcher() const
{
+ VULKAN_HPP_ASSERT( m_dispatcher->getVkHeaderVersion() == VK_HEADER_VERSION );
return m_dispatcher;
}
+# if defined( VULKAN_HPP_RAII_ENABLE_DEFAULT_CONSTRUCTORS )
+ explicit operator bool() const VULKAN_HPP_NOEXCEPT
+ {
+ return m_debugUtilsMessengerEXT.operator bool();
+ }
+
+ bool operator!() const VULKAN_HPP_NOEXCEPT
+ {
+ return m_debugUtilsMessengerEXT.operator!();
+ }
+# endif
+
private:
VULKAN_HPP_NAMESPACE::DebugUtilsMessengerEXT m_debugUtilsMessengerEXT;
VkInstance m_instance;
@@ -4427,7 +5201,11 @@ namespace VULKAN_HPP_NAMESPACE
}
}
- DeferredOperationKHR() = delete;
+# if defined( VULKAN_HPP_RAII_ENABLE_DEFAULT_CONSTRUCTORS )
+ DeferredOperationKHR() = default;
+# else
+ DeferredOperationKHR() = delete;
+# endif
DeferredOperationKHR( DeferredOperationKHR const & ) = delete;
DeferredOperationKHR( DeferredOperationKHR && rhs ) VULKAN_HPP_NOEXCEPT
: m_deferredOperationKHR( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_deferredOperationKHR,
@@ -4441,8 +5219,11 @@ namespace VULKAN_HPP_NAMESPACE
{
if ( this != &rhs )
{
- getDispatcher()->vkDestroyDeferredOperationKHR(
- m_device, static_cast<VkDeferredOperationKHR>( m_deferredOperationKHR ), m_allocator );
+ if ( m_deferredOperationKHR )
+ {
+ getDispatcher()->vkDestroyDeferredOperationKHR(
+ m_device, static_cast<VkDeferredOperationKHR>( m_deferredOperationKHR ), m_allocator );
+ }
m_deferredOperationKHR =
VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_deferredOperationKHR, {} );
m_device = rhs.m_device;
@@ -4452,14 +5233,6 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
- //=== VK_KHR_deferred_host_operations ===
-
- VULKAN_HPP_NODISCARD uint32_t getMaxConcurrency() const VULKAN_HPP_NOEXCEPT;
-
- VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::Result getResult() const VULKAN_HPP_NOEXCEPT;
-
- VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::Result join() const;
-
VULKAN_HPP_NAMESPACE::DeferredOperationKHR const & operator*() const VULKAN_HPP_NOEXCEPT
{
return m_deferredOperationKHR;
@@ -4467,9 +5240,30 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::DeviceDispatcher const * getDispatcher() const
{
+ VULKAN_HPP_ASSERT( m_dispatcher->getVkHeaderVersion() == VK_HEADER_VERSION );
return m_dispatcher;
}
+# if defined( VULKAN_HPP_RAII_ENABLE_DEFAULT_CONSTRUCTORS )
+ explicit operator bool() const VULKAN_HPP_NOEXCEPT
+ {
+ return m_deferredOperationKHR.operator bool();
+ }
+
+ bool operator!() const VULKAN_HPP_NOEXCEPT
+ {
+ return m_deferredOperationKHR.operator!();
+ }
+# endif
+
+ //=== VK_KHR_deferred_host_operations ===
+
+ VULKAN_HPP_NODISCARD uint32_t getMaxConcurrency() const VULKAN_HPP_NOEXCEPT;
+
+ VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::Result getResult() const VULKAN_HPP_NOEXCEPT;
+
+ VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::Result join() const;
+
private:
VULKAN_HPP_NAMESPACE::DeferredOperationKHR m_deferredOperationKHR;
VkDevice m_device;
@@ -4528,7 +5322,11 @@ namespace VULKAN_HPP_NAMESPACE
}
}
- DescriptorPool() = delete;
+# if defined( VULKAN_HPP_RAII_ENABLE_DEFAULT_CONSTRUCTORS )
+ DescriptorPool() = default;
+# else
+ DescriptorPool() = delete;
+# endif
DescriptorPool( DescriptorPool const & ) = delete;
DescriptorPool( DescriptorPool && rhs ) VULKAN_HPP_NOEXCEPT
: m_descriptorPool( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_descriptorPool, {} ) )
@@ -4541,8 +5339,11 @@ namespace VULKAN_HPP_NAMESPACE
{
if ( this != &rhs )
{
- getDispatcher()->vkDestroyDescriptorPool(
- m_device, static_cast<VkDescriptorPool>( m_descriptorPool ), m_allocator );
+ if ( m_descriptorPool )
+ {
+ getDispatcher()->vkDestroyDescriptorPool(
+ m_device, static_cast<VkDescriptorPool>( m_descriptorPool ), m_allocator );
+ }
m_descriptorPool = VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_descriptorPool, {} );
m_device = rhs.m_device;
m_allocator = rhs.m_allocator;
@@ -4551,11 +5352,6 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
- //=== VK_VERSION_1_0 ===
-
- void reset( VULKAN_HPP_NAMESPACE::DescriptorPoolResetFlags flags VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT ) const
- VULKAN_HPP_NOEXCEPT;
-
VULKAN_HPP_NAMESPACE::DescriptorPool const & operator*() const VULKAN_HPP_NOEXCEPT
{
return m_descriptorPool;
@@ -4563,9 +5359,27 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::DeviceDispatcher const * getDispatcher() const
{
+ VULKAN_HPP_ASSERT( m_dispatcher->getVkHeaderVersion() == VK_HEADER_VERSION );
return m_dispatcher;
}
+# if defined( VULKAN_HPP_RAII_ENABLE_DEFAULT_CONSTRUCTORS )
+ explicit operator bool() const VULKAN_HPP_NOEXCEPT
+ {
+ return m_descriptorPool.operator bool();
+ }
+
+ bool operator!() const VULKAN_HPP_NOEXCEPT
+ {
+ return m_descriptorPool.operator!();
+ }
+# endif
+
+ //=== VK_VERSION_1_0 ===
+
+ void reset( VULKAN_HPP_NAMESPACE::DescriptorPoolResetFlags flags VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT ) const
+ VULKAN_HPP_NOEXCEPT;
+
private:
VULKAN_HPP_NAMESPACE::DescriptorPool m_descriptorPool;
VkDevice m_device;
@@ -4612,7 +5426,11 @@ namespace VULKAN_HPP_NAMESPACE
}
}
- DescriptorSet() = delete;
+# if defined( VULKAN_HPP_RAII_ENABLE_DEFAULT_CONSTRUCTORS )
+ DescriptorSet() = default;
+# else
+ DescriptorSet() = delete;
+# endif
DescriptorSet( DescriptorSet const & ) = delete;
DescriptorSet( DescriptorSet && rhs ) VULKAN_HPP_NOEXCEPT
: m_descriptorSet( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_descriptorSet, {} ) )
@@ -4625,8 +5443,11 @@ namespace VULKAN_HPP_NAMESPACE
{
if ( this != &rhs )
{
- getDispatcher()->vkFreeDescriptorSets(
- m_device, m_descriptorPool, 1, reinterpret_cast<VkDescriptorSet const *>( &m_descriptorSet ) );
+ if ( m_descriptorSet )
+ {
+ getDispatcher()->vkFreeDescriptorSets(
+ m_device, m_descriptorPool, 1, reinterpret_cast<VkDescriptorSet const *>( &m_descriptorSet ) );
+ }
m_descriptorSet = VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_descriptorSet, {} );
m_device = rhs.m_device;
m_descriptorPool = rhs.m_descriptorPool;
@@ -4635,16 +5456,6 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
- //=== VK_VERSION_1_1 ===
-
- void updateWithTemplate( VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplate descriptorUpdateTemplate,
- const void * pData ) const VULKAN_HPP_NOEXCEPT;
-
- //=== VK_KHR_descriptor_update_template ===
-
- void updateWithTemplateKHR( VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplate descriptorUpdateTemplate,
- const void * pData ) const VULKAN_HPP_NOEXCEPT;
-
VULKAN_HPP_NAMESPACE::DescriptorSet const & operator*() const VULKAN_HPP_NOEXCEPT
{
return m_descriptorSet;
@@ -4652,9 +5463,32 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::DeviceDispatcher const * getDispatcher() const
{
+ VULKAN_HPP_ASSERT( m_dispatcher->getVkHeaderVersion() == VK_HEADER_VERSION );
return m_dispatcher;
}
+# if defined( VULKAN_HPP_RAII_ENABLE_DEFAULT_CONSTRUCTORS )
+ explicit operator bool() const VULKAN_HPP_NOEXCEPT
+ {
+ return m_descriptorSet.operator bool();
+ }
+
+ bool operator!() const VULKAN_HPP_NOEXCEPT
+ {
+ return m_descriptorSet.operator!();
+ }
+# endif
+
+ //=== VK_VERSION_1_1 ===
+
+ void updateWithTemplate( VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplate descriptorUpdateTemplate,
+ const void * pData ) const VULKAN_HPP_NOEXCEPT;
+
+ //=== VK_KHR_descriptor_update_template ===
+
+ void updateWithTemplateKHR( VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplate descriptorUpdateTemplate,
+ const void * pData ) const VULKAN_HPP_NOEXCEPT;
+
private:
VULKAN_HPP_NAMESPACE::DescriptorSet m_descriptorSet;
VkDevice m_device;
@@ -4691,7 +5525,11 @@ namespace VULKAN_HPP_NAMESPACE
}
}
- DescriptorSets() = delete;
+# if defined( VULKAN_HPP_RAII_ENABLE_DEFAULT_CONSTRUCTORS )
+ DescriptorSets() = default;
+# else
+ DescriptorSets() = delete;
+# endif
DescriptorSets( DescriptorSets const & ) = delete;
DescriptorSets( DescriptorSets && rhs ) = default;
DescriptorSets & operator=( DescriptorSets const & ) = delete;
@@ -4750,7 +5588,11 @@ namespace VULKAN_HPP_NAMESPACE
}
}
- DescriptorSetLayout() = delete;
+# if defined( VULKAN_HPP_RAII_ENABLE_DEFAULT_CONSTRUCTORS )
+ DescriptorSetLayout() = default;
+# else
+ DescriptorSetLayout() = delete;
+# endif
DescriptorSetLayout( DescriptorSetLayout const & ) = delete;
DescriptorSetLayout( DescriptorSetLayout && rhs ) VULKAN_HPP_NOEXCEPT
: m_descriptorSetLayout( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_descriptorSetLayout,
@@ -4764,8 +5606,11 @@ namespace VULKAN_HPP_NAMESPACE
{
if ( this != &rhs )
{
- getDispatcher()->vkDestroyDescriptorSetLayout(
- m_device, static_cast<VkDescriptorSetLayout>( m_descriptorSetLayout ), m_allocator );
+ if ( m_descriptorSetLayout )
+ {
+ getDispatcher()->vkDestroyDescriptorSetLayout(
+ m_device, static_cast<VkDescriptorSetLayout>( m_descriptorSetLayout ), m_allocator );
+ }
m_descriptorSetLayout =
VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_descriptorSetLayout, {} );
m_device = rhs.m_device;
@@ -4782,9 +5627,22 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::DeviceDispatcher const * getDispatcher() const
{
+ VULKAN_HPP_ASSERT( m_dispatcher->getVkHeaderVersion() == VK_HEADER_VERSION );
return m_dispatcher;
}
+# if defined( VULKAN_HPP_RAII_ENABLE_DEFAULT_CONSTRUCTORS )
+ explicit operator bool() const VULKAN_HPP_NOEXCEPT
+ {
+ return m_descriptorSetLayout.operator bool();
+ }
+
+ bool operator!() const VULKAN_HPP_NOEXCEPT
+ {
+ return m_descriptorSetLayout.operator!();
+ }
+# endif
+
private:
VULKAN_HPP_NAMESPACE::DescriptorSetLayout m_descriptorSetLayout;
VkDevice m_device;
@@ -4844,7 +5702,11 @@ namespace VULKAN_HPP_NAMESPACE
}
}
- DescriptorUpdateTemplate() = delete;
+# if defined( VULKAN_HPP_RAII_ENABLE_DEFAULT_CONSTRUCTORS )
+ DescriptorUpdateTemplate() = default;
+# else
+ DescriptorUpdateTemplate() = delete;
+# endif
DescriptorUpdateTemplate( DescriptorUpdateTemplate const & ) = delete;
DescriptorUpdateTemplate( DescriptorUpdateTemplate && rhs ) VULKAN_HPP_NOEXCEPT
: m_descriptorUpdateTemplate(
@@ -4858,8 +5720,11 @@ namespace VULKAN_HPP_NAMESPACE
{
if ( this != &rhs )
{
- getDispatcher()->vkDestroyDescriptorUpdateTemplate(
- m_device, static_cast<VkDescriptorUpdateTemplate>( m_descriptorUpdateTemplate ), m_allocator );
+ if ( m_descriptorUpdateTemplate )
+ {
+ getDispatcher()->vkDestroyDescriptorUpdateTemplate(
+ m_device, static_cast<VkDescriptorUpdateTemplate>( m_descriptorUpdateTemplate ), m_allocator );
+ }
m_descriptorUpdateTemplate =
VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_descriptorUpdateTemplate, {} );
m_device = rhs.m_device;
@@ -4876,9 +5741,22 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::DeviceDispatcher const * getDispatcher() const
{
+ VULKAN_HPP_ASSERT( m_dispatcher->getVkHeaderVersion() == VK_HEADER_VERSION );
return m_dispatcher;
}
+# if defined( VULKAN_HPP_RAII_ENABLE_DEFAULT_CONSTRUCTORS )
+ explicit operator bool() const VULKAN_HPP_NOEXCEPT
+ {
+ return m_descriptorUpdateTemplate.operator bool();
+ }
+
+ bool operator!() const VULKAN_HPP_NOEXCEPT
+ {
+ return m_descriptorUpdateTemplate.operator!();
+ }
+# endif
+
private:
VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplate m_descriptorUpdateTemplate;
VkDevice m_device;
@@ -4936,7 +5814,11 @@ namespace VULKAN_HPP_NAMESPACE
}
}
- DeviceMemory() = delete;
+# if defined( VULKAN_HPP_RAII_ENABLE_DEFAULT_CONSTRUCTORS )
+ DeviceMemory() = default;
+# else
+ DeviceMemory() = delete;
+# endif
DeviceMemory( DeviceMemory const & ) = delete;
DeviceMemory( DeviceMemory && rhs ) VULKAN_HPP_NOEXCEPT
: m_deviceMemory( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_deviceMemory, {} ) )
@@ -4949,7 +5831,10 @@ namespace VULKAN_HPP_NAMESPACE
{
if ( this != &rhs )
{
- getDispatcher()->vkFreeMemory( m_device, static_cast<VkDeviceMemory>( m_deviceMemory ), m_allocator );
+ if ( m_deviceMemory )
+ {
+ getDispatcher()->vkFreeMemory( m_device, static_cast<VkDeviceMemory>( m_deviceMemory ), m_allocator );
+ }
m_deviceMemory = VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_deviceMemory, {} );
m_device = rhs.m_device;
m_allocator = rhs.m_allocator;
@@ -4958,6 +5843,29 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
+ VULKAN_HPP_NAMESPACE::DeviceMemory const & operator*() const VULKAN_HPP_NOEXCEPT
+ {
+ return m_deviceMemory;
+ }
+
+ VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::DeviceDispatcher const * getDispatcher() const
+ {
+ VULKAN_HPP_ASSERT( m_dispatcher->getVkHeaderVersion() == VK_HEADER_VERSION );
+ return m_dispatcher;
+ }
+
+# if defined( VULKAN_HPP_RAII_ENABLE_DEFAULT_CONSTRUCTORS )
+ explicit operator bool() const VULKAN_HPP_NOEXCEPT
+ {
+ return m_deviceMemory.operator bool();
+ }
+
+ bool operator!() const VULKAN_HPP_NOEXCEPT
+ {
+ return m_deviceMemory.operator!();
+ }
+# endif
+
//=== VK_VERSION_1_0 ===
VULKAN_HPP_NODISCARD void *
@@ -4976,16 +5884,6 @@ namespace VULKAN_HPP_NAMESPACE
getMemoryWin32HandleNV( VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagsNV handleType ) const;
# endif /*VK_USE_PLATFORM_WIN32_KHR*/
- VULKAN_HPP_NAMESPACE::DeviceMemory const & operator*() const VULKAN_HPP_NOEXCEPT
- {
- return m_deviceMemory;
- }
-
- VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::DeviceDispatcher const * getDispatcher() const
- {
- return m_dispatcher;
- }
-
private:
VULKAN_HPP_NAMESPACE::DeviceMemory m_deviceMemory;
VkDevice m_device;
@@ -5075,7 +5973,11 @@ namespace VULKAN_HPP_NAMESPACE
}
}
- DisplayKHR() = delete;
+# if defined( VULKAN_HPP_RAII_ENABLE_DEFAULT_CONSTRUCTORS )
+ DisplayKHR() = default;
+# else
+ DisplayKHR() = delete;
+# endif
DisplayKHR( DisplayKHR const & ) = delete;
DisplayKHR( DisplayKHR && rhs ) VULKAN_HPP_NOEXCEPT
: m_displayKHR( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_displayKHR, {} ) )
@@ -5087,7 +5989,10 @@ namespace VULKAN_HPP_NAMESPACE
{
if ( this != &rhs )
{
- getDispatcher()->vkReleaseDisplayEXT( m_physicalDevice, static_cast<VkDisplayKHR>( m_displayKHR ) );
+ if ( m_displayKHR )
+ {
+ getDispatcher()->vkReleaseDisplayEXT( m_physicalDevice, static_cast<VkDisplayKHR>( m_displayKHR ) );
+ }
m_displayKHR = VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_displayKHR, {} );
m_physicalDevice = rhs.m_physicalDevice;
m_dispatcher = rhs.m_dispatcher;
@@ -5095,6 +6000,29 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
+ VULKAN_HPP_NAMESPACE::DisplayKHR const & operator*() const VULKAN_HPP_NOEXCEPT
+ {
+ return m_displayKHR;
+ }
+
+ VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::InstanceDispatcher const * getDispatcher() const
+ {
+ VULKAN_HPP_ASSERT( m_dispatcher->getVkHeaderVersion() == VK_HEADER_VERSION );
+ return m_dispatcher;
+ }
+
+# if defined( VULKAN_HPP_RAII_ENABLE_DEFAULT_CONSTRUCTORS )
+ explicit operator bool() const VULKAN_HPP_NOEXCEPT
+ {
+ return m_displayKHR.operator bool();
+ }
+
+ bool operator!() const VULKAN_HPP_NOEXCEPT
+ {
+ return m_displayKHR.operator!();
+ }
+# endif
+
//=== VK_KHR_display ===
VULKAN_HPP_NODISCARD std::vector<VULKAN_HPP_NAMESPACE::DisplayModePropertiesKHR> getModeProperties() const;
@@ -5109,16 +6037,6 @@ namespace VULKAN_HPP_NAMESPACE
void acquireWinrtNV() const;
# endif /*VK_USE_PLATFORM_WIN32_KHR*/
- VULKAN_HPP_NAMESPACE::DisplayKHR const & operator*() const VULKAN_HPP_NOEXCEPT
- {
- return m_displayKHR;
- }
-
- VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::InstanceDispatcher const * getDispatcher() const
- {
- return m_dispatcher;
- }
-
private:
VULKAN_HPP_NAMESPACE::DisplayKHR m_displayKHR;
VkPhysicalDevice m_physicalDevice;
@@ -5162,7 +6080,11 @@ namespace VULKAN_HPP_NAMESPACE
}
}
- DisplayKHRs() = delete;
+# if defined( VULKAN_HPP_RAII_ENABLE_DEFAULT_CONSTRUCTORS )
+ DisplayKHRs() = default;
+# else
+ DisplayKHRs() = delete;
+# endif
DisplayKHRs( DisplayKHRs const & ) = delete;
DisplayKHRs( DisplayKHRs && rhs ) = default;
DisplayKHRs & operator=( DisplayKHRs const & ) = delete;
@@ -5208,7 +6130,11 @@ namespace VULKAN_HPP_NAMESPACE
, m_dispatcher( physicalDevice.getDispatcher() )
{}
- DisplayModeKHR() = delete;
+# if defined( VULKAN_HPP_RAII_ENABLE_DEFAULT_CONSTRUCTORS )
+ DisplayModeKHR() = default;
+# else
+ DisplayModeKHR() = delete;
+# endif
DisplayModeKHR( DisplayModeKHR const & ) = delete;
DisplayModeKHR( DisplayModeKHR && rhs ) VULKAN_HPP_NOEXCEPT
: m_displayModeKHR( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_displayModeKHR, {} ) )
@@ -5225,11 +6151,6 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
- //=== VK_KHR_display ===
-
- VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::DisplayPlaneCapabilitiesKHR
- getDisplayPlaneCapabilities( uint32_t planeIndex ) const;
-
VULKAN_HPP_NAMESPACE::DisplayModeKHR const & operator*() const VULKAN_HPP_NOEXCEPT
{
return m_displayModeKHR;
@@ -5237,9 +6158,27 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::InstanceDispatcher const * getDispatcher() const
{
+ VULKAN_HPP_ASSERT( m_dispatcher->getVkHeaderVersion() == VK_HEADER_VERSION );
return m_dispatcher;
}
+# if defined( VULKAN_HPP_RAII_ENABLE_DEFAULT_CONSTRUCTORS )
+ explicit operator bool() const VULKAN_HPP_NOEXCEPT
+ {
+ return m_displayModeKHR.operator bool();
+ }
+
+ bool operator!() const VULKAN_HPP_NOEXCEPT
+ {
+ return m_displayModeKHR.operator!();
+ }
+# endif
+
+ //=== VK_KHR_display ===
+
+ VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::DisplayPlaneCapabilitiesKHR
+ getDisplayPlaneCapabilities( uint32_t planeIndex ) const;
+
private:
VULKAN_HPP_NAMESPACE::DisplayModeKHR m_displayModeKHR;
VULKAN_HPP_NAMESPACE::PhysicalDevice m_physicalDevice;
@@ -5294,7 +6233,11 @@ namespace VULKAN_HPP_NAMESPACE
}
}
- Event() = delete;
+# if defined( VULKAN_HPP_RAII_ENABLE_DEFAULT_CONSTRUCTORS )
+ Event() = default;
+# else
+ Event() = delete;
+# endif
Event( Event const & ) = delete;
Event( Event && rhs ) VULKAN_HPP_NOEXCEPT
: m_event( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_event, {} ) )
@@ -5307,7 +6250,10 @@ namespace VULKAN_HPP_NAMESPACE
{
if ( this != &rhs )
{
- getDispatcher()->vkDestroyEvent( m_device, static_cast<VkEvent>( m_event ), m_allocator );
+ if ( m_event )
+ {
+ getDispatcher()->vkDestroyEvent( m_device, static_cast<VkEvent>( m_event ), m_allocator );
+ }
m_event = VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_event, {} );
m_device = rhs.m_device;
m_allocator = rhs.m_allocator;
@@ -5316,14 +6262,6 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
- //=== VK_VERSION_1_0 ===
-
- VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::Result getStatus() const;
-
- void set() const;
-
- void reset() const;
-
VULKAN_HPP_NAMESPACE::Event const & operator*() const VULKAN_HPP_NOEXCEPT
{
return m_event;
@@ -5331,9 +6269,30 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::DeviceDispatcher const * getDispatcher() const
{
+ VULKAN_HPP_ASSERT( m_dispatcher->getVkHeaderVersion() == VK_HEADER_VERSION );
return m_dispatcher;
}
+# if defined( VULKAN_HPP_RAII_ENABLE_DEFAULT_CONSTRUCTORS )
+ explicit operator bool() const VULKAN_HPP_NOEXCEPT
+ {
+ return m_event.operator bool();
+ }
+
+ bool operator!() const VULKAN_HPP_NOEXCEPT
+ {
+ return m_event.operator!();
+ }
+# endif
+
+ //=== VK_VERSION_1_0 ===
+
+ VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::Result getStatus() const;
+
+ void set() const;
+
+ void reset() const;
+
private:
VULKAN_HPP_NAMESPACE::Event m_event;
VkDevice m_device;
@@ -5430,7 +6389,11 @@ namespace VULKAN_HPP_NAMESPACE
}
}
- Fence() = delete;
+# if defined( VULKAN_HPP_RAII_ENABLE_DEFAULT_CONSTRUCTORS )
+ Fence() = default;
+# else
+ Fence() = delete;
+# endif
Fence( Fence const & ) = delete;
Fence( Fence && rhs ) VULKAN_HPP_NOEXCEPT
: m_fence( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_fence, {} ) )
@@ -5443,7 +6406,10 @@ namespace VULKAN_HPP_NAMESPACE
{
if ( this != &rhs )
{
- getDispatcher()->vkDestroyFence( m_device, static_cast<VkFence>( m_fence ), m_allocator );
+ if ( m_fence )
+ {
+ getDispatcher()->vkDestroyFence( m_device, static_cast<VkFence>( m_fence ), m_allocator );
+ }
m_fence = VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_fence, {} );
m_device = rhs.m_device;
m_allocator = rhs.m_allocator;
@@ -5452,10 +6418,6 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
- //=== VK_VERSION_1_0 ===
-
- VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::Result getStatus() const;
-
VULKAN_HPP_NAMESPACE::Fence const & operator*() const VULKAN_HPP_NOEXCEPT
{
return m_fence;
@@ -5463,9 +6425,26 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::DeviceDispatcher const * getDispatcher() const
{
+ VULKAN_HPP_ASSERT( m_dispatcher->getVkHeaderVersion() == VK_HEADER_VERSION );
return m_dispatcher;
}
+# if defined( VULKAN_HPP_RAII_ENABLE_DEFAULT_CONSTRUCTORS )
+ explicit operator bool() const VULKAN_HPP_NOEXCEPT
+ {
+ return m_fence.operator bool();
+ }
+
+ bool operator!() const VULKAN_HPP_NOEXCEPT
+ {
+ return m_fence.operator!();
+ }
+# endif
+
+ //=== VK_VERSION_1_0 ===
+
+ VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::Result getStatus() const;
+
private:
VULKAN_HPP_NAMESPACE::Fence m_fence;
VkDevice m_device;
@@ -5521,7 +6500,11 @@ namespace VULKAN_HPP_NAMESPACE
}
}
- Framebuffer() = delete;
+# if defined( VULKAN_HPP_RAII_ENABLE_DEFAULT_CONSTRUCTORS )
+ Framebuffer() = default;
+# else
+ Framebuffer() = delete;
+# endif
Framebuffer( Framebuffer const & ) = delete;
Framebuffer( Framebuffer && rhs ) VULKAN_HPP_NOEXCEPT
: m_framebuffer( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_framebuffer, {} ) )
@@ -5534,7 +6517,10 @@ namespace VULKAN_HPP_NAMESPACE
{
if ( this != &rhs )
{
- getDispatcher()->vkDestroyFramebuffer( m_device, static_cast<VkFramebuffer>( m_framebuffer ), m_allocator );
+ if ( m_framebuffer )
+ {
+ getDispatcher()->vkDestroyFramebuffer( m_device, static_cast<VkFramebuffer>( m_framebuffer ), m_allocator );
+ }
m_framebuffer = VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_framebuffer, {} );
m_device = rhs.m_device;
m_allocator = rhs.m_allocator;
@@ -5550,9 +6536,22 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::DeviceDispatcher const * getDispatcher() const
{
+ VULKAN_HPP_ASSERT( m_dispatcher->getVkHeaderVersion() == VK_HEADER_VERSION );
return m_dispatcher;
}
+# if defined( VULKAN_HPP_RAII_ENABLE_DEFAULT_CONSTRUCTORS )
+ explicit operator bool() const VULKAN_HPP_NOEXCEPT
+ {
+ return m_framebuffer.operator bool();
+ }
+
+ bool operator!() const VULKAN_HPP_NOEXCEPT
+ {
+ return m_framebuffer.operator!();
+ }
+# endif
+
private:
VULKAN_HPP_NAMESPACE::Framebuffer m_framebuffer;
VkDevice m_device;
@@ -5608,7 +6607,11 @@ namespace VULKAN_HPP_NAMESPACE
}
}
- Image() = delete;
+# if defined( VULKAN_HPP_RAII_ENABLE_DEFAULT_CONSTRUCTORS )
+ Image() = default;
+# else
+ Image() = delete;
+# endif
Image( Image const & ) = delete;
Image( Image && rhs ) VULKAN_HPP_NOEXCEPT
: m_image( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_image, {} ) )
@@ -5621,7 +6624,10 @@ namespace VULKAN_HPP_NAMESPACE
{
if ( this != &rhs )
{
- getDispatcher()->vkDestroyImage( m_device, static_cast<VkImage>( m_image ), m_allocator );
+ if ( m_image )
+ {
+ getDispatcher()->vkDestroyImage( m_device, static_cast<VkImage>( m_image ), m_allocator );
+ }
m_image = VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_image, {} );
m_device = rhs.m_device;
m_allocator = rhs.m_allocator;
@@ -5630,6 +6636,29 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
+ VULKAN_HPP_NAMESPACE::Image const & operator*() const VULKAN_HPP_NOEXCEPT
+ {
+ return m_image;
+ }
+
+ VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::DeviceDispatcher const * getDispatcher() const
+ {
+ VULKAN_HPP_ASSERT( m_dispatcher->getVkHeaderVersion() == VK_HEADER_VERSION );
+ return m_dispatcher;
+ }
+
+# if defined( VULKAN_HPP_RAII_ENABLE_DEFAULT_CONSTRUCTORS )
+ explicit operator bool() const VULKAN_HPP_NOEXCEPT
+ {
+ return m_image.operator bool();
+ }
+
+ bool operator!() const VULKAN_HPP_NOEXCEPT
+ {
+ return m_image.operator!();
+ }
+# endif
+
//=== VK_VERSION_1_0 ===
void bindMemory( VULKAN_HPP_NAMESPACE::DeviceMemory memory, VULKAN_HPP_NAMESPACE::DeviceSize memoryOffset ) const;
@@ -5647,16 +6676,6 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::ImageDrmFormatModifierPropertiesEXT
getDrmFormatModifierPropertiesEXT() const;
- VULKAN_HPP_NAMESPACE::Image const & operator*() const VULKAN_HPP_NOEXCEPT
- {
- return m_image;
- }
-
- VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::DeviceDispatcher const * getDispatcher() const
- {
- return m_dispatcher;
- }
-
private:
VULKAN_HPP_NAMESPACE::Image m_image;
VkDevice m_device;
@@ -5712,7 +6731,11 @@ namespace VULKAN_HPP_NAMESPACE
}
}
- ImageView() = delete;
+# if defined( VULKAN_HPP_RAII_ENABLE_DEFAULT_CONSTRUCTORS )
+ ImageView() = default;
+# else
+ ImageView() = delete;
+# endif
ImageView( ImageView const & ) = delete;
ImageView( ImageView && rhs ) VULKAN_HPP_NOEXCEPT
: m_imageView( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_imageView, {} ) )
@@ -5725,7 +6748,10 @@ namespace VULKAN_HPP_NAMESPACE
{
if ( this != &rhs )
{
- getDispatcher()->vkDestroyImageView( m_device, static_cast<VkImageView>( m_imageView ), m_allocator );
+ if ( m_imageView )
+ {
+ getDispatcher()->vkDestroyImageView( m_device, static_cast<VkImageView>( m_imageView ), m_allocator );
+ }
m_imageView = VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_imageView, {} );
m_device = rhs.m_device;
m_allocator = rhs.m_allocator;
@@ -5734,10 +6760,6 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
- //=== VK_NVX_image_view_handle ===
-
- VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::ImageViewAddressPropertiesNVX getAddressNVX() const;
-
VULKAN_HPP_NAMESPACE::ImageView const & operator*() const VULKAN_HPP_NOEXCEPT
{
return m_imageView;
@@ -5745,9 +6767,26 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::DeviceDispatcher const * getDispatcher() const
{
+ VULKAN_HPP_ASSERT( m_dispatcher->getVkHeaderVersion() == VK_HEADER_VERSION );
return m_dispatcher;
}
+# if defined( VULKAN_HPP_RAII_ENABLE_DEFAULT_CONSTRUCTORS )
+ explicit operator bool() const VULKAN_HPP_NOEXCEPT
+ {
+ return m_imageView.operator bool();
+ }
+
+ bool operator!() const VULKAN_HPP_NOEXCEPT
+ {
+ return m_imageView.operator!();
+ }
+# endif
+
+ //=== VK_NVX_image_view_handle ===
+
+ VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::ImageViewAddressPropertiesNVX getAddressNVX() const;
+
private:
VULKAN_HPP_NAMESPACE::ImageView m_imageView;
VkDevice m_device;
@@ -5807,7 +6846,11 @@ namespace VULKAN_HPP_NAMESPACE
}
}
- IndirectCommandsLayoutNV() = delete;
+# if defined( VULKAN_HPP_RAII_ENABLE_DEFAULT_CONSTRUCTORS )
+ IndirectCommandsLayoutNV() = default;
+# else
+ IndirectCommandsLayoutNV() = delete;
+# endif
IndirectCommandsLayoutNV( IndirectCommandsLayoutNV const & ) = delete;
IndirectCommandsLayoutNV( IndirectCommandsLayoutNV && rhs ) VULKAN_HPP_NOEXCEPT
: m_indirectCommandsLayoutNV(
@@ -5821,8 +6864,11 @@ namespace VULKAN_HPP_NAMESPACE
{
if ( this != &rhs )
{
- getDispatcher()->vkDestroyIndirectCommandsLayoutNV(
- m_device, static_cast<VkIndirectCommandsLayoutNV>( m_indirectCommandsLayoutNV ), m_allocator );
+ if ( m_indirectCommandsLayoutNV )
+ {
+ getDispatcher()->vkDestroyIndirectCommandsLayoutNV(
+ m_device, static_cast<VkIndirectCommandsLayoutNV>( m_indirectCommandsLayoutNV ), m_allocator );
+ }
m_indirectCommandsLayoutNV =
VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_indirectCommandsLayoutNV, {} );
m_device = rhs.m_device;
@@ -5839,9 +6885,22 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::DeviceDispatcher const * getDispatcher() const
{
+ VULKAN_HPP_ASSERT( m_dispatcher->getVkHeaderVersion() == VK_HEADER_VERSION );
return m_dispatcher;
}
+# if defined( VULKAN_HPP_RAII_ENABLE_DEFAULT_CONSTRUCTORS )
+ explicit operator bool() const VULKAN_HPP_NOEXCEPT
+ {
+ return m_indirectCommandsLayoutNV.operator bool();
+ }
+
+ bool operator!() const VULKAN_HPP_NOEXCEPT
+ {
+ return m_indirectCommandsLayoutNV.operator!();
+ }
+# endif
+
private:
VULKAN_HPP_NAMESPACE::IndirectCommandsLayoutNV m_indirectCommandsLayoutNV;
VkDevice m_device;
@@ -5892,7 +6951,11 @@ namespace VULKAN_HPP_NAMESPACE
}
}
- PerformanceConfigurationINTEL() = delete;
+# if defined( VULKAN_HPP_RAII_ENABLE_DEFAULT_CONSTRUCTORS )
+ PerformanceConfigurationINTEL() = default;
+# else
+ PerformanceConfigurationINTEL() = delete;
+# endif
PerformanceConfigurationINTEL( PerformanceConfigurationINTEL const & ) = delete;
PerformanceConfigurationINTEL( PerformanceConfigurationINTEL && rhs ) VULKAN_HPP_NOEXCEPT
: m_performanceConfigurationINTEL(
@@ -5905,8 +6968,11 @@ namespace VULKAN_HPP_NAMESPACE
{
if ( this != &rhs )
{
- getDispatcher()->vkReleasePerformanceConfigurationINTEL(
- m_device, static_cast<VkPerformanceConfigurationINTEL>( m_performanceConfigurationINTEL ) );
+ if ( m_performanceConfigurationINTEL )
+ {
+ getDispatcher()->vkReleasePerformanceConfigurationINTEL(
+ m_device, static_cast<VkPerformanceConfigurationINTEL>( m_performanceConfigurationINTEL ) );
+ }
m_performanceConfigurationINTEL =
VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_performanceConfigurationINTEL, {} );
m_device = rhs.m_device;
@@ -5922,9 +6988,22 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::DeviceDispatcher const * getDispatcher() const
{
+ VULKAN_HPP_ASSERT( m_dispatcher->getVkHeaderVersion() == VK_HEADER_VERSION );
return m_dispatcher;
}
+# if defined( VULKAN_HPP_RAII_ENABLE_DEFAULT_CONSTRUCTORS )
+ explicit operator bool() const VULKAN_HPP_NOEXCEPT
+ {
+ return m_performanceConfigurationINTEL.operator bool();
+ }
+
+ bool operator!() const VULKAN_HPP_NOEXCEPT
+ {
+ return m_performanceConfigurationINTEL.operator!();
+ }
+# endif
+
private:
VULKAN_HPP_NAMESPACE::PerformanceConfigurationINTEL m_performanceConfigurationINTEL;
VkDevice m_device;
@@ -5982,7 +7061,11 @@ namespace VULKAN_HPP_NAMESPACE
}
}
- PipelineCache() = delete;
+# if defined( VULKAN_HPP_RAII_ENABLE_DEFAULT_CONSTRUCTORS )
+ PipelineCache() = default;
+# else
+ PipelineCache() = delete;
+# endif
PipelineCache( PipelineCache const & ) = delete;
PipelineCache( PipelineCache && rhs ) VULKAN_HPP_NOEXCEPT
: m_pipelineCache( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_pipelineCache, {} ) )
@@ -5995,8 +7078,11 @@ namespace VULKAN_HPP_NAMESPACE
{
if ( this != &rhs )
{
- getDispatcher()->vkDestroyPipelineCache(
- m_device, static_cast<VkPipelineCache>( m_pipelineCache ), m_allocator );
+ if ( m_pipelineCache )
+ {
+ getDispatcher()->vkDestroyPipelineCache(
+ m_device, static_cast<VkPipelineCache>( m_pipelineCache ), m_allocator );
+ }
m_pipelineCache = VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_pipelineCache, {} );
m_device = rhs.m_device;
m_allocator = rhs.m_allocator;
@@ -6005,12 +7091,6 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
- //=== VK_VERSION_1_0 ===
-
- VULKAN_HPP_NODISCARD std::vector<uint8_t> getData() const;
-
- void merge( ArrayProxy<const VULKAN_HPP_NAMESPACE::PipelineCache> const & srcCaches ) const;
-
VULKAN_HPP_NAMESPACE::PipelineCache const & operator*() const VULKAN_HPP_NOEXCEPT
{
return m_pipelineCache;
@@ -6018,9 +7098,28 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::DeviceDispatcher const * getDispatcher() const
{
+ VULKAN_HPP_ASSERT( m_dispatcher->getVkHeaderVersion() == VK_HEADER_VERSION );
return m_dispatcher;
}
+# if defined( VULKAN_HPP_RAII_ENABLE_DEFAULT_CONSTRUCTORS )
+ explicit operator bool() const VULKAN_HPP_NOEXCEPT
+ {
+ return m_pipelineCache.operator bool();
+ }
+
+ bool operator!() const VULKAN_HPP_NOEXCEPT
+ {
+ return m_pipelineCache.operator!();
+ }
+# endif
+
+ //=== VK_VERSION_1_0 ===
+
+ VULKAN_HPP_NODISCARD std::vector<uint8_t> getData() const;
+
+ void merge( ArrayProxy<const VULKAN_HPP_NAMESPACE::PipelineCache> const & srcCaches ) const;
+
private:
VULKAN_HPP_NAMESPACE::PipelineCache m_pipelineCache;
VkDevice m_device;
@@ -6177,7 +7276,11 @@ namespace VULKAN_HPP_NAMESPACE
}
}
- Pipeline() = delete;
+# if defined( VULKAN_HPP_RAII_ENABLE_DEFAULT_CONSTRUCTORS )
+ Pipeline() = default;
+# else
+ Pipeline() = delete;
+# endif
Pipeline( Pipeline const & ) = delete;
Pipeline( Pipeline && rhs ) VULKAN_HPP_NOEXCEPT
: m_pipeline( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_pipeline, {} ) )
@@ -6190,7 +7293,10 @@ namespace VULKAN_HPP_NAMESPACE
{
if ( this != &rhs )
{
- getDispatcher()->vkDestroyPipeline( m_device, static_cast<VkPipeline>( m_pipeline ), m_allocator );
+ if ( m_pipeline )
+ {
+ getDispatcher()->vkDestroyPipeline( m_device, static_cast<VkPipeline>( m_pipeline ), m_allocator );
+ }
m_pipeline = VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_pipeline, {} );
m_device = rhs.m_device;
m_allocator = rhs.m_allocator;
@@ -6199,6 +7305,34 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
+ VULKAN_HPP_NAMESPACE::Pipeline const & operator*() const VULKAN_HPP_NOEXCEPT
+ {
+ return m_pipeline;
+ }
+
+ VULKAN_HPP_NAMESPACE::Result getConstructorSuccessCode() const
+ {
+ return m_constructorSuccessCode;
+ }
+
+ VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::DeviceDispatcher const * getDispatcher() const
+ {
+ VULKAN_HPP_ASSERT( m_dispatcher->getVkHeaderVersion() == VK_HEADER_VERSION );
+ return m_dispatcher;
+ }
+
+# if defined( VULKAN_HPP_RAII_ENABLE_DEFAULT_CONSTRUCTORS )
+ explicit operator bool() const VULKAN_HPP_NOEXCEPT
+ {
+ return m_pipeline.operator bool();
+ }
+
+ bool operator!() const VULKAN_HPP_NOEXCEPT
+ {
+ return m_pipeline.operator!();
+ }
+# endif
+
//=== VK_AMD_shader_info ===
VULKAN_HPP_NODISCARD std::vector<uint8_t>
@@ -6237,21 +7371,6 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::DeviceSize getRayTracingShaderGroupStackSizeKHR(
uint32_t group, VULKAN_HPP_NAMESPACE::ShaderGroupShaderKHR groupShader ) const VULKAN_HPP_NOEXCEPT;
- VULKAN_HPP_NAMESPACE::Pipeline const & operator*() const VULKAN_HPP_NOEXCEPT
- {
- return m_pipeline;
- }
-
- VULKAN_HPP_NAMESPACE::Result getConstructorSuccessCode() const
- {
- return m_constructorSuccessCode;
- }
-
- VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::DeviceDispatcher const * getDispatcher() const
- {
- return m_dispatcher;
- }
-
private:
VULKAN_HPP_NAMESPACE::Pipeline m_pipeline;
VkDevice m_device;
@@ -6420,7 +7539,11 @@ namespace VULKAN_HPP_NAMESPACE
}
}
- Pipelines() = delete;
+# if defined( VULKAN_HPP_RAII_ENABLE_DEFAULT_CONSTRUCTORS )
+ Pipelines() = default;
+# else
+ Pipelines() = delete;
+# endif
Pipelines( Pipelines const & ) = delete;
Pipelines( Pipelines && rhs ) = default;
Pipelines & operator=( Pipelines const & ) = delete;
@@ -6478,7 +7601,11 @@ namespace VULKAN_HPP_NAMESPACE
}
}
- PipelineLayout() = delete;
+# if defined( VULKAN_HPP_RAII_ENABLE_DEFAULT_CONSTRUCTORS )
+ PipelineLayout() = default;
+# else
+ PipelineLayout() = delete;
+# endif
PipelineLayout( PipelineLayout const & ) = delete;
PipelineLayout( PipelineLayout && rhs ) VULKAN_HPP_NOEXCEPT
: m_pipelineLayout( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_pipelineLayout, {} ) )
@@ -6491,8 +7618,11 @@ namespace VULKAN_HPP_NAMESPACE
{
if ( this != &rhs )
{
- getDispatcher()->vkDestroyPipelineLayout(
- m_device, static_cast<VkPipelineLayout>( m_pipelineLayout ), m_allocator );
+ if ( m_pipelineLayout )
+ {
+ getDispatcher()->vkDestroyPipelineLayout(
+ m_device, static_cast<VkPipelineLayout>( m_pipelineLayout ), m_allocator );
+ }
m_pipelineLayout = VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_pipelineLayout, {} );
m_device = rhs.m_device;
m_allocator = rhs.m_allocator;
@@ -6508,9 +7638,22 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::DeviceDispatcher const * getDispatcher() const
{
+ VULKAN_HPP_ASSERT( m_dispatcher->getVkHeaderVersion() == VK_HEADER_VERSION );
return m_dispatcher;
}
+# if defined( VULKAN_HPP_RAII_ENABLE_DEFAULT_CONSTRUCTORS )
+ explicit operator bool() const VULKAN_HPP_NOEXCEPT
+ {
+ return m_pipelineLayout.operator bool();
+ }
+
+ bool operator!() const VULKAN_HPP_NOEXCEPT
+ {
+ return m_pipelineLayout.operator!();
+ }
+# endif
+
private:
VULKAN_HPP_NAMESPACE::PipelineLayout m_pipelineLayout;
VkDevice m_device;
@@ -6570,7 +7713,11 @@ namespace VULKAN_HPP_NAMESPACE
}
}
- PrivateDataSlotEXT() = delete;
+# if defined( VULKAN_HPP_RAII_ENABLE_DEFAULT_CONSTRUCTORS )
+ PrivateDataSlotEXT() = default;
+# else
+ PrivateDataSlotEXT() = delete;
+# endif
PrivateDataSlotEXT( PrivateDataSlotEXT const & ) = delete;
PrivateDataSlotEXT( PrivateDataSlotEXT && rhs ) VULKAN_HPP_NOEXCEPT
: m_privateDataSlotEXT( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_privateDataSlotEXT,
@@ -6584,8 +7731,11 @@ namespace VULKAN_HPP_NAMESPACE
{
if ( this != &rhs )
{
- getDispatcher()->vkDestroyPrivateDataSlotEXT(
- m_device, static_cast<VkPrivateDataSlotEXT>( m_privateDataSlotEXT ), m_allocator );
+ if ( m_privateDataSlotEXT )
+ {
+ getDispatcher()->vkDestroyPrivateDataSlotEXT(
+ m_device, static_cast<VkPrivateDataSlotEXT>( m_privateDataSlotEXT ), m_allocator );
+ }
m_privateDataSlotEXT =
VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_privateDataSlotEXT, {} );
m_device = rhs.m_device;
@@ -6602,9 +7752,22 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::DeviceDispatcher const * getDispatcher() const
{
+ VULKAN_HPP_ASSERT( m_dispatcher->getVkHeaderVersion() == VK_HEADER_VERSION );
return m_dispatcher;
}
+# if defined( VULKAN_HPP_RAII_ENABLE_DEFAULT_CONSTRUCTORS )
+ explicit operator bool() const VULKAN_HPP_NOEXCEPT
+ {
+ return m_privateDataSlotEXT.operator bool();
+ }
+
+ bool operator!() const VULKAN_HPP_NOEXCEPT
+ {
+ return m_privateDataSlotEXT.operator!();
+ }
+# endif
+
private:
VULKAN_HPP_NAMESPACE::PrivateDataSlotEXT m_privateDataSlotEXT;
VkDevice m_device;
@@ -6660,7 +7823,11 @@ namespace VULKAN_HPP_NAMESPACE
}
}
- QueryPool() = delete;
+# if defined( VULKAN_HPP_RAII_ENABLE_DEFAULT_CONSTRUCTORS )
+ QueryPool() = default;
+# else
+ QueryPool() = delete;
+# endif
QueryPool( QueryPool const & ) = delete;
QueryPool( QueryPool && rhs ) VULKAN_HPP_NOEXCEPT
: m_queryPool( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_queryPool, {} ) )
@@ -6673,7 +7840,10 @@ namespace VULKAN_HPP_NAMESPACE
{
if ( this != &rhs )
{
- getDispatcher()->vkDestroyQueryPool( m_device, static_cast<VkQueryPool>( m_queryPool ), m_allocator );
+ if ( m_queryPool )
+ {
+ getDispatcher()->vkDestroyQueryPool( m_device, static_cast<VkQueryPool>( m_queryPool ), m_allocator );
+ }
m_queryPool = VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_queryPool, {} );
m_device = rhs.m_device;
m_allocator = rhs.m_allocator;
@@ -6682,6 +7852,29 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
+ VULKAN_HPP_NAMESPACE::QueryPool const & operator*() const VULKAN_HPP_NOEXCEPT
+ {
+ return m_queryPool;
+ }
+
+ VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::DeviceDispatcher const * getDispatcher() const
+ {
+ VULKAN_HPP_ASSERT( m_dispatcher->getVkHeaderVersion() == VK_HEADER_VERSION );
+ return m_dispatcher;
+ }
+
+# if defined( VULKAN_HPP_RAII_ENABLE_DEFAULT_CONSTRUCTORS )
+ explicit operator bool() const VULKAN_HPP_NOEXCEPT
+ {
+ return m_queryPool.operator bool();
+ }
+
+ bool operator!() const VULKAN_HPP_NOEXCEPT
+ {
+ return m_queryPool.operator!();
+ }
+# endif
+
//=== VK_VERSION_1_0 ===
template <typename T>
@@ -6707,16 +7900,6 @@ namespace VULKAN_HPP_NAMESPACE
void resetEXT( uint32_t firstQuery, uint32_t queryCount ) const VULKAN_HPP_NOEXCEPT;
- VULKAN_HPP_NAMESPACE::QueryPool const & operator*() const VULKAN_HPP_NOEXCEPT
- {
- return m_queryPool;
- }
-
- VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::DeviceDispatcher const * getDispatcher() const
- {
- return m_dispatcher;
- }
-
private:
VULKAN_HPP_NAMESPACE::QueryPool m_queryPool;
VkDevice m_device;
@@ -6757,7 +7940,11 @@ namespace VULKAN_HPP_NAMESPACE
: m_queue( queue ), m_dispatcher( device.getDispatcher() )
{}
- Queue() = delete;
+# if defined( VULKAN_HPP_RAII_ENABLE_DEFAULT_CONSTRUCTORS )
+ Queue() = default;
+# else
+ Queue() = delete;
+# endif
Queue( Queue const & ) = delete;
Queue( Queue && rhs ) VULKAN_HPP_NOEXCEPT
: m_queue( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_queue, {} ) )
@@ -6774,6 +7961,29 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
+ VULKAN_HPP_NAMESPACE::Queue const & operator*() const VULKAN_HPP_NOEXCEPT
+ {
+ return m_queue;
+ }
+
+ VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::DeviceDispatcher const * getDispatcher() const
+ {
+ VULKAN_HPP_ASSERT( m_dispatcher->getVkHeaderVersion() == VK_HEADER_VERSION );
+ return m_dispatcher;
+ }
+
+# if defined( VULKAN_HPP_RAII_ENABLE_DEFAULT_CONSTRUCTORS )
+ explicit operator bool() const VULKAN_HPP_NOEXCEPT
+ {
+ return m_queue.operator bool();
+ }
+
+ bool operator!() const VULKAN_HPP_NOEXCEPT
+ {
+ return m_queue.operator!();
+ }
+# endif
+
//=== VK_VERSION_1_0 ===
void submit( ArrayProxy<const VULKAN_HPP_NAMESPACE::SubmitInfo> const & submits,
@@ -6813,16 +8023,6 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_NODISCARD std::vector<VULKAN_HPP_NAMESPACE::CheckpointData2NV>
getCheckpointData2NV() const VULKAN_HPP_NOEXCEPT;
- VULKAN_HPP_NAMESPACE::Queue const & operator*() const VULKAN_HPP_NOEXCEPT
- {
- return m_queue;
- }
-
- VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::DeviceDispatcher const * getDispatcher() const
- {
- return m_dispatcher;
- }
-
private:
VULKAN_HPP_NAMESPACE::Queue m_queue;
VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::DeviceDispatcher const * m_dispatcher;
@@ -6895,7 +8095,11 @@ namespace VULKAN_HPP_NAMESPACE
}
}
- RenderPass() = delete;
+# if defined( VULKAN_HPP_RAII_ENABLE_DEFAULT_CONSTRUCTORS )
+ RenderPass() = default;
+# else
+ RenderPass() = delete;
+# endif
RenderPass( RenderPass const & ) = delete;
RenderPass( RenderPass && rhs ) VULKAN_HPP_NOEXCEPT
: m_renderPass( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_renderPass, {} ) )
@@ -6908,7 +8112,10 @@ namespace VULKAN_HPP_NAMESPACE
{
if ( this != &rhs )
{
- getDispatcher()->vkDestroyRenderPass( m_device, static_cast<VkRenderPass>( m_renderPass ), m_allocator );
+ if ( m_renderPass )
+ {
+ getDispatcher()->vkDestroyRenderPass( m_device, static_cast<VkRenderPass>( m_renderPass ), m_allocator );
+ }
m_renderPass = VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_renderPass, {} );
m_device = rhs.m_device;
m_allocator = rhs.m_allocator;
@@ -6917,15 +8124,6 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
- //=== VK_VERSION_1_0 ===
-
- VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::Extent2D getRenderAreaGranularity() const VULKAN_HPP_NOEXCEPT;
-
- //=== VK_HUAWEI_subpass_shading ===
-
- VULKAN_HPP_NODISCARD std::pair<VULKAN_HPP_NAMESPACE::Result, VULKAN_HPP_NAMESPACE::Extent2D>
- getSubpassShadingMaxWorkgroupSizeHUAWEI() const;
-
VULKAN_HPP_NAMESPACE::RenderPass const & operator*() const VULKAN_HPP_NOEXCEPT
{
return m_renderPass;
@@ -6933,9 +8131,31 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::DeviceDispatcher const * getDispatcher() const
{
+ VULKAN_HPP_ASSERT( m_dispatcher->getVkHeaderVersion() == VK_HEADER_VERSION );
return m_dispatcher;
}
+# if defined( VULKAN_HPP_RAII_ENABLE_DEFAULT_CONSTRUCTORS )
+ explicit operator bool() const VULKAN_HPP_NOEXCEPT
+ {
+ return m_renderPass.operator bool();
+ }
+
+ bool operator!() const VULKAN_HPP_NOEXCEPT
+ {
+ return m_renderPass.operator!();
+ }
+# endif
+
+ //=== VK_VERSION_1_0 ===
+
+ VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::Extent2D getRenderAreaGranularity() const VULKAN_HPP_NOEXCEPT;
+
+ //=== VK_HUAWEI_subpass_shading ===
+
+ VULKAN_HPP_NODISCARD std::pair<VULKAN_HPP_NAMESPACE::Result, VULKAN_HPP_NAMESPACE::Extent2D>
+ getSubpassShadingMaxWorkgroupSizeHUAWEI() const;
+
private:
VULKAN_HPP_NAMESPACE::RenderPass m_renderPass;
VkDevice m_device;
@@ -6991,7 +8211,11 @@ namespace VULKAN_HPP_NAMESPACE
}
}
- Sampler() = delete;
+# if defined( VULKAN_HPP_RAII_ENABLE_DEFAULT_CONSTRUCTORS )
+ Sampler() = default;
+# else
+ Sampler() = delete;
+# endif
Sampler( Sampler const & ) = delete;
Sampler( Sampler && rhs ) VULKAN_HPP_NOEXCEPT
: m_sampler( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_sampler, {} ) )
@@ -7004,7 +8228,10 @@ namespace VULKAN_HPP_NAMESPACE
{
if ( this != &rhs )
{
- getDispatcher()->vkDestroySampler( m_device, static_cast<VkSampler>( m_sampler ), m_allocator );
+ if ( m_sampler )
+ {
+ getDispatcher()->vkDestroySampler( m_device, static_cast<VkSampler>( m_sampler ), m_allocator );
+ }
m_sampler = VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_sampler, {} );
m_device = rhs.m_device;
m_allocator = rhs.m_allocator;
@@ -7020,9 +8247,22 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::DeviceDispatcher const * getDispatcher() const
{
+ VULKAN_HPP_ASSERT( m_dispatcher->getVkHeaderVersion() == VK_HEADER_VERSION );
return m_dispatcher;
}
+# if defined( VULKAN_HPP_RAII_ENABLE_DEFAULT_CONSTRUCTORS )
+ explicit operator bool() const VULKAN_HPP_NOEXCEPT
+ {
+ return m_sampler.operator bool();
+ }
+
+ bool operator!() const VULKAN_HPP_NOEXCEPT
+ {
+ return m_sampler.operator!();
+ }
+# endif
+
private:
VULKAN_HPP_NAMESPACE::Sampler m_sampler;
VkDevice m_device;
@@ -7082,7 +8322,11 @@ namespace VULKAN_HPP_NAMESPACE
}
}
- SamplerYcbcrConversion() = delete;
+# if defined( VULKAN_HPP_RAII_ENABLE_DEFAULT_CONSTRUCTORS )
+ SamplerYcbcrConversion() = default;
+# else
+ SamplerYcbcrConversion() = delete;
+# endif
SamplerYcbcrConversion( SamplerYcbcrConversion const & ) = delete;
SamplerYcbcrConversion( SamplerYcbcrConversion && rhs ) VULKAN_HPP_NOEXCEPT
: m_samplerYcbcrConversion(
@@ -7096,8 +8340,11 @@ namespace VULKAN_HPP_NAMESPACE
{
if ( this != &rhs )
{
- getDispatcher()->vkDestroySamplerYcbcrConversion(
- m_device, static_cast<VkSamplerYcbcrConversion>( m_samplerYcbcrConversion ), m_allocator );
+ if ( m_samplerYcbcrConversion )
+ {
+ getDispatcher()->vkDestroySamplerYcbcrConversion(
+ m_device, static_cast<VkSamplerYcbcrConversion>( m_samplerYcbcrConversion ), m_allocator );
+ }
m_samplerYcbcrConversion =
VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_samplerYcbcrConversion, {} );
m_device = rhs.m_device;
@@ -7114,9 +8361,22 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::DeviceDispatcher const * getDispatcher() const
{
+ VULKAN_HPP_ASSERT( m_dispatcher->getVkHeaderVersion() == VK_HEADER_VERSION );
return m_dispatcher;
}
+# if defined( VULKAN_HPP_RAII_ENABLE_DEFAULT_CONSTRUCTORS )
+ explicit operator bool() const VULKAN_HPP_NOEXCEPT
+ {
+ return m_samplerYcbcrConversion.operator bool();
+ }
+
+ bool operator!() const VULKAN_HPP_NOEXCEPT
+ {
+ return m_samplerYcbcrConversion.operator!();
+ }
+# endif
+
private:
VULKAN_HPP_NAMESPACE::SamplerYcbcrConversion m_samplerYcbcrConversion;
VkDevice m_device;
@@ -7172,7 +8432,11 @@ namespace VULKAN_HPP_NAMESPACE
}
}
- Semaphore() = delete;
+# if defined( VULKAN_HPP_RAII_ENABLE_DEFAULT_CONSTRUCTORS )
+ Semaphore() = default;
+# else
+ Semaphore() = delete;
+# endif
Semaphore( Semaphore const & ) = delete;
Semaphore( Semaphore && rhs ) VULKAN_HPP_NOEXCEPT
: m_semaphore( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_semaphore, {} ) )
@@ -7185,7 +8449,10 @@ namespace VULKAN_HPP_NAMESPACE
{
if ( this != &rhs )
{
- getDispatcher()->vkDestroySemaphore( m_device, static_cast<VkSemaphore>( m_semaphore ), m_allocator );
+ if ( m_semaphore )
+ {
+ getDispatcher()->vkDestroySemaphore( m_device, static_cast<VkSemaphore>( m_semaphore ), m_allocator );
+ }
m_semaphore = VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_semaphore, {} );
m_device = rhs.m_device;
m_allocator = rhs.m_allocator;
@@ -7194,14 +8461,6 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
- //=== VK_VERSION_1_2 ===
-
- VULKAN_HPP_NODISCARD uint64_t getCounterValue() const;
-
- //=== VK_KHR_timeline_semaphore ===
-
- VULKAN_HPP_NODISCARD uint64_t getCounterValueKHR() const;
-
VULKAN_HPP_NAMESPACE::Semaphore const & operator*() const VULKAN_HPP_NOEXCEPT
{
return m_semaphore;
@@ -7209,9 +8468,30 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::DeviceDispatcher const * getDispatcher() const
{
+ VULKAN_HPP_ASSERT( m_dispatcher->getVkHeaderVersion() == VK_HEADER_VERSION );
return m_dispatcher;
}
+# if defined( VULKAN_HPP_RAII_ENABLE_DEFAULT_CONSTRUCTORS )
+ explicit operator bool() const VULKAN_HPP_NOEXCEPT
+ {
+ return m_semaphore.operator bool();
+ }
+
+ bool operator!() const VULKAN_HPP_NOEXCEPT
+ {
+ return m_semaphore.operator!();
+ }
+# endif
+
+ //=== VK_VERSION_1_2 ===
+
+ VULKAN_HPP_NODISCARD uint64_t getCounterValue() const;
+
+ //=== VK_KHR_timeline_semaphore ===
+
+ VULKAN_HPP_NODISCARD uint64_t getCounterValueKHR() const;
+
private:
VULKAN_HPP_NAMESPACE::Semaphore m_semaphore;
VkDevice m_device;
@@ -7270,7 +8550,11 @@ namespace VULKAN_HPP_NAMESPACE
}
}
- ShaderModule() = delete;
+# if defined( VULKAN_HPP_RAII_ENABLE_DEFAULT_CONSTRUCTORS )
+ ShaderModule() = default;
+# else
+ ShaderModule() = delete;
+# endif
ShaderModule( ShaderModule const & ) = delete;
ShaderModule( ShaderModule && rhs ) VULKAN_HPP_NOEXCEPT
: m_shaderModule( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_shaderModule, {} ) )
@@ -7283,8 +8567,11 @@ namespace VULKAN_HPP_NAMESPACE
{
if ( this != &rhs )
{
- getDispatcher()->vkDestroyShaderModule(
- m_device, static_cast<VkShaderModule>( m_shaderModule ), m_allocator );
+ if ( m_shaderModule )
+ {
+ getDispatcher()->vkDestroyShaderModule(
+ m_device, static_cast<VkShaderModule>( m_shaderModule ), m_allocator );
+ }
m_shaderModule = VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_shaderModule, {} );
m_device = rhs.m_device;
m_allocator = rhs.m_allocator;
@@ -7300,9 +8587,22 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::DeviceDispatcher const * getDispatcher() const
{
+ VULKAN_HPP_ASSERT( m_dispatcher->getVkHeaderVersion() == VK_HEADER_VERSION );
return m_dispatcher;
}
+# if defined( VULKAN_HPP_RAII_ENABLE_DEFAULT_CONSTRUCTORS )
+ explicit operator bool() const VULKAN_HPP_NOEXCEPT
+ {
+ return m_shaderModule.operator bool();
+ }
+
+ bool operator!() const VULKAN_HPP_NOEXCEPT
+ {
+ return m_shaderModule.operator!();
+ }
+# endif
+
private:
VULKAN_HPP_NAMESPACE::ShaderModule m_shaderModule;
VkDevice m_device;
@@ -7661,7 +8961,11 @@ namespace VULKAN_HPP_NAMESPACE
}
}
- SurfaceKHR() = delete;
+# if defined( VULKAN_HPP_RAII_ENABLE_DEFAULT_CONSTRUCTORS )
+ SurfaceKHR() = default;
+# else
+ SurfaceKHR() = delete;
+# endif
SurfaceKHR( SurfaceKHR const & ) = delete;
SurfaceKHR( SurfaceKHR && rhs ) VULKAN_HPP_NOEXCEPT
: m_surfaceKHR( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_surfaceKHR, {} ) )
@@ -7674,7 +8978,10 @@ namespace VULKAN_HPP_NAMESPACE
{
if ( this != &rhs )
{
- getDispatcher()->vkDestroySurfaceKHR( m_instance, static_cast<VkSurfaceKHR>( m_surfaceKHR ), m_allocator );
+ if ( m_surfaceKHR )
+ {
+ getDispatcher()->vkDestroySurfaceKHR( m_instance, static_cast<VkSurfaceKHR>( m_surfaceKHR ), m_allocator );
+ }
m_surfaceKHR = VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_surfaceKHR, {} );
m_instance = rhs.m_instance;
m_allocator = rhs.m_allocator;
@@ -7690,9 +8997,22 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::InstanceDispatcher const * getDispatcher() const
{
+ VULKAN_HPP_ASSERT( m_dispatcher->getVkHeaderVersion() == VK_HEADER_VERSION );
return m_dispatcher;
}
+# if defined( VULKAN_HPP_RAII_ENABLE_DEFAULT_CONSTRUCTORS )
+ explicit operator bool() const VULKAN_HPP_NOEXCEPT
+ {
+ return m_surfaceKHR.operator bool();
+ }
+
+ bool operator!() const VULKAN_HPP_NOEXCEPT
+ {
+ return m_surfaceKHR.operator!();
+ }
+# endif
+
private:
VULKAN_HPP_NAMESPACE::SurfaceKHR m_surfaceKHR;
VkInstance m_instance;
@@ -7758,7 +9078,11 @@ namespace VULKAN_HPP_NAMESPACE
}
}
- SwapchainKHR() = delete;
+# if defined( VULKAN_HPP_RAII_ENABLE_DEFAULT_CONSTRUCTORS )
+ SwapchainKHR() = default;
+# else
+ SwapchainKHR() = delete;
+# endif
SwapchainKHR( SwapchainKHR const & ) = delete;
SwapchainKHR( SwapchainKHR && rhs ) VULKAN_HPP_NOEXCEPT
: m_swapchainKHR( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_swapchainKHR, {} ) )
@@ -7771,8 +9095,11 @@ namespace VULKAN_HPP_NAMESPACE
{
if ( this != &rhs )
{
- getDispatcher()->vkDestroySwapchainKHR(
- m_device, static_cast<VkSwapchainKHR>( m_swapchainKHR ), m_allocator );
+ if ( m_swapchainKHR )
+ {
+ getDispatcher()->vkDestroySwapchainKHR(
+ m_device, static_cast<VkSwapchainKHR>( m_swapchainKHR ), m_allocator );
+ }
m_swapchainKHR = VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_swapchainKHR, {} );
m_device = rhs.m_device;
m_allocator = rhs.m_allocator;
@@ -7781,6 +9108,29 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
+ VULKAN_HPP_NAMESPACE::SwapchainKHR const & operator*() const VULKAN_HPP_NOEXCEPT
+ {
+ return m_swapchainKHR;
+ }
+
+ VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::DeviceDispatcher const * getDispatcher() const
+ {
+ VULKAN_HPP_ASSERT( m_dispatcher->getVkHeaderVersion() == VK_HEADER_VERSION );
+ return m_dispatcher;
+ }
+
+# if defined( VULKAN_HPP_RAII_ENABLE_DEFAULT_CONSTRUCTORS )
+ explicit operator bool() const VULKAN_HPP_NOEXCEPT
+ {
+ return m_swapchainKHR.operator bool();
+ }
+
+ bool operator!() const VULKAN_HPP_NOEXCEPT
+ {
+ return m_swapchainKHR.operator!();
+ }
+# endif
+
//=== VK_KHR_swapchain ===
VULKAN_HPP_NODISCARD std::vector<VkImage> getImages() const;
@@ -7809,6 +9159,10 @@ namespace VULKAN_HPP_NAMESPACE
void setLocalDimmingAMD( VULKAN_HPP_NAMESPACE::Bool32 localDimmingEnable ) const VULKAN_HPP_NOEXCEPT;
+ //=== VK_KHR_present_wait ===
+
+ VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::Result waitForPresent( uint64_t presentId, uint64_t timeout ) const;
+
# if defined( VK_USE_PLATFORM_WIN32_KHR )
//=== VK_EXT_full_screen_exclusive ===
@@ -7817,16 +9171,6 @@ namespace VULKAN_HPP_NAMESPACE
void releaseFullScreenExclusiveModeEXT() const;
# endif /*VK_USE_PLATFORM_WIN32_KHR*/
- VULKAN_HPP_NAMESPACE::SwapchainKHR const & operator*() const VULKAN_HPP_NOEXCEPT
- {
- return m_swapchainKHR;
- }
-
- VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::DeviceDispatcher const * getDispatcher() const
- {
- return m_dispatcher;
- }
-
private:
VULKAN_HPP_NAMESPACE::SwapchainKHR m_swapchainKHR;
VkDevice m_device;
@@ -7870,7 +9214,11 @@ namespace VULKAN_HPP_NAMESPACE
}
}
- SwapchainKHRs() = delete;
+# if defined( VULKAN_HPP_RAII_ENABLE_DEFAULT_CONSTRUCTORS )
+ SwapchainKHRs() = default;
+# else
+ SwapchainKHRs() = delete;
+# endif
SwapchainKHRs( SwapchainKHRs const & ) = delete;
SwapchainKHRs( SwapchainKHRs && rhs ) = default;
SwapchainKHRs & operator=( SwapchainKHRs const & ) = delete;
@@ -7929,7 +9277,11 @@ namespace VULKAN_HPP_NAMESPACE
}
}
- ValidationCacheEXT() = delete;
+# if defined( VULKAN_HPP_RAII_ENABLE_DEFAULT_CONSTRUCTORS )
+ ValidationCacheEXT() = default;
+# else
+ ValidationCacheEXT() = delete;
+# endif
ValidationCacheEXT( ValidationCacheEXT const & ) = delete;
ValidationCacheEXT( ValidationCacheEXT && rhs ) VULKAN_HPP_NOEXCEPT
: m_validationCacheEXT( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_validationCacheEXT,
@@ -7943,8 +9295,11 @@ namespace VULKAN_HPP_NAMESPACE
{
if ( this != &rhs )
{
- getDispatcher()->vkDestroyValidationCacheEXT(
- m_device, static_cast<VkValidationCacheEXT>( m_validationCacheEXT ), m_allocator );
+ if ( m_validationCacheEXT )
+ {
+ getDispatcher()->vkDestroyValidationCacheEXT(
+ m_device, static_cast<VkValidationCacheEXT>( m_validationCacheEXT ), m_allocator );
+ }
m_validationCacheEXT =
VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_validationCacheEXT, {} );
m_device = rhs.m_device;
@@ -7954,12 +9309,6 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
- //=== VK_EXT_validation_cache ===
-
- void merge( ArrayProxy<const VULKAN_HPP_NAMESPACE::ValidationCacheEXT> const & srcCaches ) const;
-
- VULKAN_HPP_NODISCARD std::vector<uint8_t> getData() const;
-
VULKAN_HPP_NAMESPACE::ValidationCacheEXT const & operator*() const VULKAN_HPP_NOEXCEPT
{
return m_validationCacheEXT;
@@ -7967,9 +9316,28 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::DeviceDispatcher const * getDispatcher() const
{
+ VULKAN_HPP_ASSERT( m_dispatcher->getVkHeaderVersion() == VK_HEADER_VERSION );
return m_dispatcher;
}
+# if defined( VULKAN_HPP_RAII_ENABLE_DEFAULT_CONSTRUCTORS )
+ explicit operator bool() const VULKAN_HPP_NOEXCEPT
+ {
+ return m_validationCacheEXT.operator bool();
+ }
+
+ bool operator!() const VULKAN_HPP_NOEXCEPT
+ {
+ return m_validationCacheEXT.operator!();
+ }
+# endif
+
+ //=== VK_EXT_validation_cache ===
+
+ void merge( ArrayProxy<const VULKAN_HPP_NAMESPACE::ValidationCacheEXT> const & srcCaches ) const;
+
+ VULKAN_HPP_NODISCARD std::vector<uint8_t> getData() const;
+
private:
VULKAN_HPP_NAMESPACE::ValidationCacheEXT m_validationCacheEXT;
VkDevice m_device;
@@ -8030,7 +9398,11 @@ namespace VULKAN_HPP_NAMESPACE
}
}
- VideoSessionKHR() = delete;
+# if defined( VULKAN_HPP_RAII_ENABLE_DEFAULT_CONSTRUCTORS )
+ VideoSessionKHR() = default;
+# else
+ VideoSessionKHR() = delete;
+# endif
VideoSessionKHR( VideoSessionKHR const & ) = delete;
VideoSessionKHR( VideoSessionKHR && rhs ) VULKAN_HPP_NOEXCEPT
: m_videoSessionKHR( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_videoSessionKHR, {} ) )
@@ -8043,8 +9415,11 @@ namespace VULKAN_HPP_NAMESPACE
{
if ( this != &rhs )
{
- getDispatcher()->vkDestroyVideoSessionKHR(
- m_device, static_cast<VkVideoSessionKHR>( m_videoSessionKHR ), m_allocator );
+ if ( m_videoSessionKHR )
+ {
+ getDispatcher()->vkDestroyVideoSessionKHR(
+ m_device, static_cast<VkVideoSessionKHR>( m_videoSessionKHR ), m_allocator );
+ }
m_videoSessionKHR = VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_videoSessionKHR, {} );
m_device = rhs.m_device;
m_allocator = rhs.m_allocator;
@@ -8053,13 +9428,6 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
- //=== VK_KHR_video_queue ===
-
- VULKAN_HPP_NODISCARD std::vector<VULKAN_HPP_NAMESPACE::VideoGetMemoryPropertiesKHR> getMemoryRequirements() const;
-
- void
- bindMemory( ArrayProxy<const VULKAN_HPP_NAMESPACE::VideoBindMemoryKHR> const & videoSessionBindMemories ) const;
-
VULKAN_HPP_NAMESPACE::VideoSessionKHR const & operator*() const VULKAN_HPP_NOEXCEPT
{
return m_videoSessionKHR;
@@ -8067,9 +9435,29 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::DeviceDispatcher const * getDispatcher() const
{
+ VULKAN_HPP_ASSERT( m_dispatcher->getVkHeaderVersion() == VK_HEADER_VERSION );
return m_dispatcher;
}
+# if defined( VULKAN_HPP_RAII_ENABLE_DEFAULT_CONSTRUCTORS )
+ explicit operator bool() const VULKAN_HPP_NOEXCEPT
+ {
+ return m_videoSessionKHR.operator bool();
+ }
+
+ bool operator!() const VULKAN_HPP_NOEXCEPT
+ {
+ return m_videoSessionKHR.operator!();
+ }
+# endif
+
+ //=== VK_KHR_video_queue ===
+
+ VULKAN_HPP_NODISCARD std::vector<VULKAN_HPP_NAMESPACE::VideoGetMemoryPropertiesKHR> getMemoryRequirements() const;
+
+ void
+ bindMemory( ArrayProxy<const VULKAN_HPP_NAMESPACE::VideoBindMemoryKHR> const & videoSessionBindMemories ) const;
+
private:
VULKAN_HPP_NAMESPACE::VideoSessionKHR m_videoSessionKHR;
VkDevice m_device;
@@ -8131,7 +9519,11 @@ namespace VULKAN_HPP_NAMESPACE
}
}
- VideoSessionParametersKHR() = delete;
+# if defined( VULKAN_HPP_RAII_ENABLE_DEFAULT_CONSTRUCTORS )
+ VideoSessionParametersKHR() = default;
+# else
+ VideoSessionParametersKHR() = delete;
+# endif
VideoSessionParametersKHR( VideoSessionParametersKHR const & ) = delete;
VideoSessionParametersKHR( VideoSessionParametersKHR && rhs ) VULKAN_HPP_NOEXCEPT
: m_videoSessionParametersKHR(
@@ -8145,8 +9537,11 @@ namespace VULKAN_HPP_NAMESPACE
{
if ( this != &rhs )
{
- getDispatcher()->vkDestroyVideoSessionParametersKHR(
- m_device, static_cast<VkVideoSessionParametersKHR>( m_videoSessionParametersKHR ), m_allocator );
+ if ( m_videoSessionParametersKHR )
+ {
+ getDispatcher()->vkDestroyVideoSessionParametersKHR(
+ m_device, static_cast<VkVideoSessionParametersKHR>( m_videoSessionParametersKHR ), m_allocator );
+ }
m_videoSessionParametersKHR =
VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_videoSessionParametersKHR, {} );
m_device = rhs.m_device;
@@ -8156,10 +9551,6 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
- //=== VK_KHR_video_queue ===
-
- void update( const VideoSessionParametersUpdateInfoKHR & updateInfo ) const;
-
VULKAN_HPP_NAMESPACE::VideoSessionParametersKHR const & operator*() const VULKAN_HPP_NOEXCEPT
{
return m_videoSessionParametersKHR;
@@ -8167,9 +9558,26 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::DeviceDispatcher const * getDispatcher() const
{
+ VULKAN_HPP_ASSERT( m_dispatcher->getVkHeaderVersion() == VK_HEADER_VERSION );
return m_dispatcher;
}
+# if defined( VULKAN_HPP_RAII_ENABLE_DEFAULT_CONSTRUCTORS )
+ explicit operator bool() const VULKAN_HPP_NOEXCEPT
+ {
+ return m_videoSessionParametersKHR.operator bool();
+ }
+
+ bool operator!() const VULKAN_HPP_NOEXCEPT
+ {
+ return m_videoSessionParametersKHR.operator!();
+ }
+# endif
+
+ //=== VK_KHR_video_queue ===
+
+ void update( const VideoSessionParametersUpdateInfoKHR & updateInfo ) const;
+
private:
VULKAN_HPP_NAMESPACE::VideoSessionParametersKHR m_videoSessionParametersKHR;
VkDevice m_device;
@@ -13894,6 +15302,25 @@ namespace VULKAN_HPP_NAMESPACE
return toolProperties;
}
+ //=== VK_KHR_present_wait ===
+
+ VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::Result
+ SwapchainKHR::waitForPresent( uint64_t presentId, uint64_t timeout ) const
+ {
+ VULKAN_HPP_ASSERT( getDispatcher()->vkWaitForPresentKHR &&
+ "Function <vkWaitForPresentKHR> needs extension <VK_KHR_present_wait> enabled!" );
+
+ VULKAN_HPP_NAMESPACE::Result result =
+ static_cast<VULKAN_HPP_NAMESPACE::Result>( getDispatcher()->vkWaitForPresentKHR(
+ static_cast<VkDevice>( m_device ), static_cast<VkSwapchainKHR>( m_swapchainKHR ), presentId, timeout ) );
+ if ( ( result != VULKAN_HPP_NAMESPACE::Result::eSuccess ) &&
+ ( result != VULKAN_HPP_NAMESPACE::Result::eTimeout ) )
+ {
+ throwResultException( result, VULKAN_HPP_NAMESPACE_STRING "::SwapchainKHR::waitForPresent" );
+ }
+ return result;
+ }
+
//=== VK_NV_cooperative_matrix ===
VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE std::vector<VULKAN_HPP_NAMESPACE::CooperativeMatrixPropertiesNV>
@@ -15116,13 +16543,15 @@ namespace VULKAN_HPP_NAMESPACE
RenderPass::getSubpassShadingMaxWorkgroupSizeHUAWEI() const
{
VULKAN_HPP_ASSERT(
- getDispatcher()->vkGetSubpassShadingMaxWorkgroupSizeHUAWEI &&
- "Function <vkGetSubpassShadingMaxWorkgroupSizeHUAWEI> needs extension <VK_HUAWEI_subpass_shading> enabled!" );
+ getDispatcher()->vkGetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI &&
+ "Function <vkGetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI> needs extension <VK_HUAWEI_subpass_shading> enabled!" );
VULKAN_HPP_NAMESPACE::Extent2D maxWorkgroupSize;
VULKAN_HPP_NAMESPACE::Result result =
- static_cast<VULKAN_HPP_NAMESPACE::Result>( getDispatcher()->vkGetSubpassShadingMaxWorkgroupSizeHUAWEI(
- static_cast<VkRenderPass>( m_renderPass ), reinterpret_cast<VkExtent2D *>( &maxWorkgroupSize ) ) );
+ static_cast<VULKAN_HPP_NAMESPACE::Result>( getDispatcher()->vkGetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI(
+ static_cast<VkDevice>( m_device ),
+ static_cast<VkRenderPass>( m_renderPass ),
+ reinterpret_cast<VkExtent2D *>( &maxWorkgroupSize ) ) );
if ( ( result != VULKAN_HPP_NAMESPACE::Result::eSuccess ) &&
( result != VULKAN_HPP_NAMESPACE::Result::eIncomplete ) )
{
@@ -15140,6 +16569,43 @@ namespace VULKAN_HPP_NAMESPACE
getDispatcher()->vkCmdSubpassShadingHUAWEI( static_cast<VkCommandBuffer>( m_commandBuffer ) );
}
+ //=== VK_HUAWEI_invocation_mask ===
+
+ VULKAN_HPP_INLINE void
+ CommandBuffer::bindInvocationMaskHUAWEI( VULKAN_HPP_NAMESPACE::ImageView imageView,
+ VULKAN_HPP_NAMESPACE::ImageLayout imageLayout ) const VULKAN_HPP_NOEXCEPT
+ {
+ VULKAN_HPP_ASSERT(
+ getDispatcher()->vkCmdBindInvocationMaskHUAWEI &&
+ "Function <vkCmdBindInvocationMaskHUAWEI> needs extension <VK_HUAWEI_invocation_mask> enabled!" );
+
+ getDispatcher()->vkCmdBindInvocationMaskHUAWEI( static_cast<VkCommandBuffer>( m_commandBuffer ),
+ static_cast<VkImageView>( imageView ),
+ static_cast<VkImageLayout>( imageLayout ) );
+ }
+
+ //=== VK_NV_external_memory_rdma ===
+
+ VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::RemoteAddressNV
+ Device::getMemoryRemoteAddressNV( const MemoryGetRemoteAddressInfoNV & memoryGetRemoteAddressInfo ) const
+ {
+ VULKAN_HPP_ASSERT(
+ getDispatcher()->vkGetMemoryRemoteAddressNV &&
+ "Function <vkGetMemoryRemoteAddressNV> needs extension <VK_NV_external_memory_rdma> enabled!" );
+
+ VULKAN_HPP_NAMESPACE::RemoteAddressNV address;
+ VULKAN_HPP_NAMESPACE::Result result =
+ static_cast<VULKAN_HPP_NAMESPACE::Result>( getDispatcher()->vkGetMemoryRemoteAddressNV(
+ static_cast<VkDevice>( m_device ),
+ reinterpret_cast<const VkMemoryGetRemoteAddressInfoNV *>( &memoryGetRemoteAddressInfo ),
+ reinterpret_cast<VkRemoteAddressNV *>( &address ) ) );
+ if ( result != VULKAN_HPP_NAMESPACE::Result::eSuccess )
+ {
+ throwResultException( result, VULKAN_HPP_NAMESPACE_STRING "::Device::getMemoryRemoteAddressNV" );
+ }
+ return address;
+ }
+
//=== VK_EXT_extended_dynamic_state2 ===
VULKAN_HPP_INLINE void
diff --git a/thirdparty/vulkan/include/vulkan/vulkan_structs.hpp b/thirdparty/vulkan/include/vulkan/vulkan_structs.hpp
index 257c78d9fa..bb0332a741 100644
--- a/thirdparty/vulkan/include/vulkan/vulkan_structs.hpp
+++ b/thirdparty/vulkan/include/vulkan/vulkan_structs.hpp
@@ -10,6 +10,10 @@
namespace VULKAN_HPP_NAMESPACE
{
+ //===============
+ //=== STRUCTS ===
+ //===============
+
struct AabbPositionsKHR
{
#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
@@ -42,6 +46,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
+#if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
AabbPositionsKHR & setMinX( float minX_ ) VULKAN_HPP_NOEXCEPT
{
minX = minX_;
@@ -77,6 +82,7 @@ namespace VULKAN_HPP_NAMESPACE
maxZ = maxZ_;
return *this;
}
+#endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
operator VkAabbPositionsKHR const &() const VULKAN_HPP_NOEXCEPT
{
@@ -118,6 +124,7 @@ namespace VULKAN_HPP_NAMESPACE
union DeviceOrHostAddressConstKHR
{
+#if !defined( VULKAN_HPP_NO_UNION_CONSTRUCTORS )
DeviceOrHostAddressConstKHR( VULKAN_HPP_NAMESPACE::DeviceOrHostAddressConstKHR const & rhs ) VULKAN_HPP_NOEXCEPT
{
memcpy( static_cast<void *>( this ), &rhs, sizeof( VULKAN_HPP_NAMESPACE::DeviceOrHostAddressConstKHR ) );
@@ -128,7 +135,9 @@ namespace VULKAN_HPP_NAMESPACE
{}
DeviceOrHostAddressConstKHR( const void * hostAddress_ ) : hostAddress( hostAddress_ ) {}
+#endif /*VULKAN_HPP_NO_UNION_CONSTRUCTORS*/
+#if !defined( VULKAN_HPP_NO_UNION_SETTERS )
DeviceOrHostAddressConstKHR &
setDeviceAddress( VULKAN_HPP_NAMESPACE::DeviceAddress deviceAddress_ ) VULKAN_HPP_NOEXCEPT
{
@@ -141,6 +150,7 @@ namespace VULKAN_HPP_NAMESPACE
hostAddress = hostAddress_;
return *this;
}
+#endif /*VULKAN_HPP_NO_UNION_SETTERS*/
VULKAN_HPP_NAMESPACE::DeviceOrHostAddressConstKHR &
operator=( VULKAN_HPP_NAMESPACE::DeviceOrHostAddressConstKHR const & rhs ) VULKAN_HPP_NOEXCEPT
@@ -212,6 +222,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
+#if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
AccelerationStructureGeometryTrianglesDataKHR & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
{
pNext = pNext_;
@@ -265,6 +276,7 @@ namespace VULKAN_HPP_NAMESPACE
transformData = transformData_;
return *this;
}
+#endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
operator VkAccelerationStructureGeometryTrianglesDataKHR const &() const VULKAN_HPP_NOEXCEPT
{
@@ -332,6 +344,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
+#if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
AccelerationStructureGeometryAabbsDataKHR & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
{
pNext = pNext_;
@@ -351,6 +364,7 @@ namespace VULKAN_HPP_NAMESPACE
stride = stride_;
return *this;
}
+#endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
operator VkAccelerationStructureGeometryAabbsDataKHR const &() const VULKAN_HPP_NOEXCEPT
{
@@ -414,6 +428,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
+#if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
AccelerationStructureGeometryInstancesDataKHR & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
{
pNext = pNext_;
@@ -433,6 +448,7 @@ namespace VULKAN_HPP_NAMESPACE
data = data_;
return *this;
}
+#endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
operator VkAccelerationStructureGeometryInstancesDataKHR const &() const VULKAN_HPP_NOEXCEPT
{
@@ -464,6 +480,7 @@ namespace VULKAN_HPP_NAMESPACE
union AccelerationStructureGeometryDataKHR
{
+#if !defined( VULKAN_HPP_NO_UNION_CONSTRUCTORS )
AccelerationStructureGeometryDataKHR( VULKAN_HPP_NAMESPACE::AccelerationStructureGeometryDataKHR const & rhs )
VULKAN_HPP_NOEXCEPT
{
@@ -483,7 +500,9 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_NAMESPACE::AccelerationStructureGeometryInstancesDataKHR instances_ )
: instances( instances_ )
{}
+#endif /*VULKAN_HPP_NO_UNION_CONSTRUCTORS*/
+#if !defined( VULKAN_HPP_NO_UNION_SETTERS )
AccelerationStructureGeometryDataKHR & setTriangles(
VULKAN_HPP_NAMESPACE::AccelerationStructureGeometryTrianglesDataKHR const & triangles_ ) VULKAN_HPP_NOEXCEPT
{
@@ -504,6 +523,7 @@ namespace VULKAN_HPP_NAMESPACE
instances = instances_;
return *this;
}
+#endif /*VULKAN_HPP_NO_UNION_SETTERS*/
VULKAN_HPP_NAMESPACE::AccelerationStructureGeometryDataKHR &
operator=( VULKAN_HPP_NAMESPACE::AccelerationStructureGeometryDataKHR const & rhs ) VULKAN_HPP_NOEXCEPT
@@ -564,6 +584,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
+#if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
AccelerationStructureGeometryKHR & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
{
pNext = pNext_;
@@ -589,6 +610,7 @@ namespace VULKAN_HPP_NAMESPACE
flags = flags_;
return *this;
}
+#endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
operator VkAccelerationStructureGeometryKHR const &() const VULKAN_HPP_NOEXCEPT
{
@@ -620,6 +642,7 @@ namespace VULKAN_HPP_NAMESPACE
union DeviceOrHostAddressKHR
{
+#if !defined( VULKAN_HPP_NO_UNION_CONSTRUCTORS )
DeviceOrHostAddressKHR( VULKAN_HPP_NAMESPACE::DeviceOrHostAddressKHR const & rhs ) VULKAN_HPP_NOEXCEPT
{
memcpy( static_cast<void *>( this ), &rhs, sizeof( VULKAN_HPP_NAMESPACE::DeviceOrHostAddressKHR ) );
@@ -629,7 +652,9 @@ namespace VULKAN_HPP_NAMESPACE
{}
DeviceOrHostAddressKHR( void * hostAddress_ ) : hostAddress( hostAddress_ ) {}
+#endif /*VULKAN_HPP_NO_UNION_CONSTRUCTORS*/
+#if !defined( VULKAN_HPP_NO_UNION_SETTERS )
DeviceOrHostAddressKHR & setDeviceAddress( VULKAN_HPP_NAMESPACE::DeviceAddress deviceAddress_ ) VULKAN_HPP_NOEXCEPT
{
deviceAddress = deviceAddress_;
@@ -641,6 +666,7 @@ namespace VULKAN_HPP_NAMESPACE
hostAddress = hostAddress_;
return *this;
}
+#endif /*VULKAN_HPP_NO_UNION_SETTERS*/
VULKAN_HPP_NAMESPACE::DeviceOrHostAddressKHR &
operator=( VULKAN_HPP_NAMESPACE::DeviceOrHostAddressKHR const & rhs ) VULKAN_HPP_NOEXCEPT
@@ -753,6 +779,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
+#if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
AccelerationStructureBuildGeometryInfoKHR & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
{
pNext = pNext_;
@@ -807,7 +834,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
-#if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
+# if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
AccelerationStructureBuildGeometryInfoKHR & setGeometries(
VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<
const VULKAN_HPP_NAMESPACE::AccelerationStructureGeometryKHR> const & geometries_ ) VULKAN_HPP_NOEXCEPT
@@ -816,7 +843,7 @@ namespace VULKAN_HPP_NAMESPACE
pGeometries = geometries_.data();
return *this;
}
-#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
+# endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
AccelerationStructureBuildGeometryInfoKHR & setPpGeometries(
const VULKAN_HPP_NAMESPACE::AccelerationStructureGeometryKHR * const * ppGeometries_ ) VULKAN_HPP_NOEXCEPT
@@ -825,7 +852,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
-#if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
+# if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
AccelerationStructureBuildGeometryInfoKHR & setPGeometries(
VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<
const VULKAN_HPP_NAMESPACE::AccelerationStructureGeometryKHR * const> const & pGeometries_ ) VULKAN_HPP_NOEXCEPT
@@ -834,7 +861,7 @@ namespace VULKAN_HPP_NAMESPACE
ppGeometries = pGeometries_.data();
return *this;
}
-#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
+# endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
AccelerationStructureBuildGeometryInfoKHR &
setScratchData( VULKAN_HPP_NAMESPACE::DeviceOrHostAddressKHR const & scratchData_ ) VULKAN_HPP_NOEXCEPT
@@ -842,6 +869,7 @@ namespace VULKAN_HPP_NAMESPACE
scratchData = scratchData_;
return *this;
}
+#endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
operator VkAccelerationStructureBuildGeometryInfoKHR const &() const VULKAN_HPP_NOEXCEPT
{
@@ -912,6 +940,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
+#if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
AccelerationStructureBuildRangeInfoKHR & setPrimitiveCount( uint32_t primitiveCount_ ) VULKAN_HPP_NOEXCEPT
{
primitiveCount = primitiveCount_;
@@ -935,6 +964,7 @@ namespace VULKAN_HPP_NAMESPACE
transformOffset = transformOffset_;
return *this;
}
+#endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
operator VkAccelerationStructureBuildRangeInfoKHR const &() const VULKAN_HPP_NOEXCEPT
{
@@ -1007,6 +1037,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
+#if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
AccelerationStructureBuildSizesInfoKHR & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
{
pNext = pNext_;
@@ -1033,6 +1064,7 @@ namespace VULKAN_HPP_NAMESPACE
buildScratchSize = buildScratchSize_;
return *this;
}
+#endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
operator VkAccelerationStructureBuildSizesInfoKHR const &() const VULKAN_HPP_NOEXCEPT
{
@@ -1119,6 +1151,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
+#if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
AccelerationStructureCreateInfoKHR & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
{
pNext = pNext_;
@@ -1163,6 +1196,7 @@ namespace VULKAN_HPP_NAMESPACE
deviceAddress = deviceAddress_;
return *this;
}
+#endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
operator VkAccelerationStructureCreateInfoKHR const &() const VULKAN_HPP_NOEXCEPT
{
@@ -1259,6 +1293,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
+#if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
GeometryTrianglesNV & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
{
pNext = pNext_;
@@ -1330,6 +1365,7 @@ namespace VULKAN_HPP_NAMESPACE
transformOffset = transformOffset_;
return *this;
}
+#endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
operator VkGeometryTrianglesNV const &() const VULKAN_HPP_NOEXCEPT
{
@@ -1416,6 +1452,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
+#if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
GeometryAABBNV & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
{
pNext = pNext_;
@@ -1445,6 +1482,7 @@ namespace VULKAN_HPP_NAMESPACE
offset = offset_;
return *this;
}
+#endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
operator VkGeometryAABBNV const &() const VULKAN_HPP_NOEXCEPT
{
@@ -1512,6 +1550,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
+#if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
GeometryDataNV & setTriangles( VULKAN_HPP_NAMESPACE::GeometryTrianglesNV const & triangles_ ) VULKAN_HPP_NOEXCEPT
{
triangles = triangles_;
@@ -1523,6 +1562,7 @@ namespace VULKAN_HPP_NAMESPACE
aabbs = aabbs_;
return *this;
}
+#endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
operator VkGeometryDataNV const &() const VULKAN_HPP_NOEXCEPT
{
@@ -1585,6 +1625,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
+#if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
GeometryNV & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
{
pNext = pNext_;
@@ -1608,6 +1649,7 @@ namespace VULKAN_HPP_NAMESPACE
flags = flags_;
return *this;
}
+#endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
operator VkGeometryNV const &() const VULKAN_HPP_NOEXCEPT
{
@@ -1700,6 +1742,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
+#if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
AccelerationStructureInfoNV & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
{
pNext = pNext_;
@@ -1738,7 +1781,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
-#if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
+# if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
AccelerationStructureInfoNV & setGeometries(
VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::GeometryNV> const & geometries_ )
VULKAN_HPP_NOEXCEPT
@@ -1747,7 +1790,8 @@ namespace VULKAN_HPP_NAMESPACE
pGeometries = geometries_.data();
return *this;
}
-#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
+# endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
+#endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
operator VkAccelerationStructureInfoNV const &() const VULKAN_HPP_NOEXCEPT
{
@@ -1826,6 +1870,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
+#if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
AccelerationStructureCreateInfoNV & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
{
pNext = pNext_;
@@ -1845,6 +1890,7 @@ namespace VULKAN_HPP_NAMESPACE
info = info_;
return *this;
}
+#endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
operator VkAccelerationStructureCreateInfoNV const &() const VULKAN_HPP_NOEXCEPT
{
@@ -1920,6 +1966,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
+#if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
AccelerationStructureDeviceAddressInfoKHR & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
{
pNext = pNext_;
@@ -1932,6 +1979,7 @@ namespace VULKAN_HPP_NAMESPACE
accelerationStructure = accelerationStructure_;
return *this;
}
+#endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
operator VkAccelerationStructureDeviceAddressInfoKHR const &() const VULKAN_HPP_NOEXCEPT
{
@@ -2007,6 +2055,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
+#if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
AccelerationStructureGeometryMotionTrianglesDataNV & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
{
pNext = pNext_;
@@ -2019,6 +2068,7 @@ namespace VULKAN_HPP_NAMESPACE
vertexData = vertexData_;
return *this;
}
+#endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
operator VkAccelerationStructureGeometryMotionTrianglesDataNV const &() const VULKAN_HPP_NOEXCEPT
{
@@ -2071,11 +2121,13 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
+#if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
TransformMatrixKHR & setMatrix( std::array<std::array<float, 4>, 3> matrix_ ) VULKAN_HPP_NOEXCEPT
{
matrix = matrix_;
return *this;
}
+#endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
operator VkTransformMatrixKHR const &() const VULKAN_HPP_NOEXCEPT
{
@@ -2144,6 +2196,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
+#if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
AccelerationStructureInstanceKHR &
setTransform( VULKAN_HPP_NAMESPACE::TransformMatrixKHR const & transform_ ) VULKAN_HPP_NOEXCEPT
{
@@ -2183,6 +2236,7 @@ namespace VULKAN_HPP_NAMESPACE
accelerationStructureReference = accelerationStructureReference_;
return *this;
}
+#endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
operator VkAccelerationStructureInstanceKHR const &() const VULKAN_HPP_NOEXCEPT
{
@@ -2265,6 +2319,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
+#if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
AccelerationStructureMatrixMotionInstanceNV &
setTransformT0( VULKAN_HPP_NAMESPACE::TransformMatrixKHR const & transformT0_ ) VULKAN_HPP_NOEXCEPT
{
@@ -2312,6 +2367,7 @@ namespace VULKAN_HPP_NAMESPACE
accelerationStructureReference = accelerationStructureReference_;
return *this;
}
+#endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
operator VkAccelerationStructureMatrixMotionInstanceNV const &() const VULKAN_HPP_NOEXCEPT
{
@@ -2390,6 +2446,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
+#if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
AccelerationStructureMemoryRequirementsInfoNV & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
{
pNext = pNext_;
@@ -2409,6 +2466,7 @@ namespace VULKAN_HPP_NAMESPACE
accelerationStructure = accelerationStructure_;
return *this;
}
+#endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
operator VkAccelerationStructureMemoryRequirementsInfoNV const &() const VULKAN_HPP_NOEXCEPT
{
@@ -2485,6 +2543,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
+#if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
AccelerationStructureMotionInfoNV & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
{
pNext = pNext_;
@@ -2503,6 +2562,7 @@ namespace VULKAN_HPP_NAMESPACE
flags = flags_;
return *this;
}
+#endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
operator VkAccelerationStructureMotionInfoNV const &() const VULKAN_HPP_NOEXCEPT
{
@@ -2597,6 +2657,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
+#if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
SRTDataNV & setSx( float sx_ ) VULKAN_HPP_NOEXCEPT
{
sx = sx_;
@@ -2692,6 +2753,7 @@ namespace VULKAN_HPP_NAMESPACE
tz = tz_;
return *this;
}
+#endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
operator VkSRTDataNV const &() const VULKAN_HPP_NOEXCEPT
{
@@ -2781,6 +2843,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
+#if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
AccelerationStructureSRTMotionInstanceNV &
setTransformT0( VULKAN_HPP_NAMESPACE::SRTDataNV const & transformT0_ ) VULKAN_HPP_NOEXCEPT
{
@@ -2828,6 +2891,7 @@ namespace VULKAN_HPP_NAMESPACE
accelerationStructureReference = accelerationStructureReference_;
return *this;
}
+#endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
operator VkAccelerationStructureSRTMotionInstanceNV const &() const VULKAN_HPP_NOEXCEPT
{
@@ -2873,6 +2937,7 @@ namespace VULKAN_HPP_NAMESPACE
union AccelerationStructureMotionInstanceDataNV
{
+#if !defined( VULKAN_HPP_NO_UNION_CONSTRUCTORS )
AccelerationStructureMotionInstanceDataNV(
VULKAN_HPP_NAMESPACE::AccelerationStructureMotionInstanceDataNV const & rhs ) VULKAN_HPP_NOEXCEPT
{
@@ -2894,7 +2959,9 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_NAMESPACE::AccelerationStructureSRTMotionInstanceNV srtMotionInstance_ )
: srtMotionInstance( srtMotionInstance_ )
{}
+#endif /*VULKAN_HPP_NO_UNION_CONSTRUCTORS*/
+#if !defined( VULKAN_HPP_NO_UNION_SETTERS )
AccelerationStructureMotionInstanceDataNV & setStaticInstance(
VULKAN_HPP_NAMESPACE::AccelerationStructureInstanceKHR const & staticInstance_ ) VULKAN_HPP_NOEXCEPT
{
@@ -2916,6 +2983,7 @@ namespace VULKAN_HPP_NAMESPACE
srtMotionInstance = srtMotionInstance_;
return *this;
}
+#endif /*VULKAN_HPP_NO_UNION_SETTERS*/
VULKAN_HPP_NAMESPACE::AccelerationStructureMotionInstanceDataNV &
operator=( VULKAN_HPP_NAMESPACE::AccelerationStructureMotionInstanceDataNV const & rhs ) VULKAN_HPP_NOEXCEPT
@@ -2978,6 +3046,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
+#if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
AccelerationStructureMotionInstanceNV &
setType( VULKAN_HPP_NAMESPACE::AccelerationStructureMotionInstanceTypeNV type_ ) VULKAN_HPP_NOEXCEPT
{
@@ -2998,6 +3067,7 @@ namespace VULKAN_HPP_NAMESPACE
data = data_;
return *this;
}
+#endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
operator VkAccelerationStructureMotionInstanceNV const &() const VULKAN_HPP_NOEXCEPT
{
@@ -3049,6 +3119,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
+#if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
AccelerationStructureVersionInfoKHR & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
{
pNext = pNext_;
@@ -3060,6 +3131,7 @@ namespace VULKAN_HPP_NAMESPACE
pVersionData = pVersionData_;
return *this;
}
+#endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
operator VkAccelerationStructureVersionInfoKHR const &() const VULKAN_HPP_NOEXCEPT
{
@@ -3135,6 +3207,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
+#if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
AcquireNextImageInfoKHR & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
{
pNext = pNext_;
@@ -3170,6 +3243,7 @@ namespace VULKAN_HPP_NAMESPACE
deviceMask = deviceMask_;
return *this;
}
+#endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
operator VkAcquireNextImageInfoKHR const &() const VULKAN_HPP_NOEXCEPT
{
@@ -3245,6 +3319,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
+#if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
AcquireProfilingLockInfoKHR & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
{
pNext = pNext_;
@@ -3263,6 +3338,7 @@ namespace VULKAN_HPP_NAMESPACE
timeout = timeout_;
return *this;
}
+#endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
operator VkAcquireProfilingLockInfoKHR const &() const VULKAN_HPP_NOEXCEPT
{
@@ -3338,6 +3414,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
+#if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
AllocationCallbacks & setPUserData( void * pUserData_ ) VULKAN_HPP_NOEXCEPT
{
pUserData = pUserData_;
@@ -3374,6 +3451,7 @@ namespace VULKAN_HPP_NAMESPACE
pfnInternalFree = pfnInternalFree_;
return *this;
}
+#endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
operator VkAllocationCallbacks const &() const VULKAN_HPP_NOEXCEPT
{
@@ -3443,6 +3521,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
+#if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
ComponentMapping & setR( VULKAN_HPP_NAMESPACE::ComponentSwizzle r_ ) VULKAN_HPP_NOEXCEPT
{
r = r_;
@@ -3466,6 +3545,7 @@ namespace VULKAN_HPP_NAMESPACE
a = a_;
return *this;
}
+#endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
operator VkComponentMapping const &() const VULKAN_HPP_NOEXCEPT
{
@@ -3783,6 +3863,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
+# if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
AndroidSurfaceCreateInfoKHR & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
{
pNext = pNext_;
@@ -3801,6 +3882,7 @@ namespace VULKAN_HPP_NAMESPACE
window = window_;
return *this;
}
+# endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
operator VkAndroidSurfaceCreateInfoKHR const &() const VULKAN_HPP_NOEXCEPT
{
@@ -3877,6 +3959,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
+#if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
ApplicationInfo & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
{
pNext = pNext_;
@@ -3912,6 +3995,7 @@ namespace VULKAN_HPP_NAMESPACE
apiVersion = apiVersion_;
return *this;
}
+#endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
operator VkApplicationInfo const &() const VULKAN_HPP_NOEXCEPT
{
@@ -3998,6 +4082,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
+#if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
AttachmentDescription & setFlags( VULKAN_HPP_NAMESPACE::AttachmentDescriptionFlags flags_ ) VULKAN_HPP_NOEXCEPT
{
flags = flags_;
@@ -4053,6 +4138,7 @@ namespace VULKAN_HPP_NAMESPACE
finalLayout = finalLayout_;
return *this;
}
+#endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
operator VkAttachmentDescription const &() const VULKAN_HPP_NOEXCEPT
{
@@ -4140,6 +4226,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
+#if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
AttachmentDescription2 & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
{
pNext = pNext_;
@@ -4201,6 +4288,7 @@ namespace VULKAN_HPP_NAMESPACE
finalLayout = finalLayout_;
return *this;
}
+#endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
operator VkAttachmentDescription2 const &() const VULKAN_HPP_NOEXCEPT
{
@@ -4286,6 +4374,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
+#if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
AttachmentDescriptionStencilLayout & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
{
pNext = pNext_;
@@ -4305,6 +4394,7 @@ namespace VULKAN_HPP_NAMESPACE
stencilFinalLayout = stencilFinalLayout_;
return *this;
}
+#endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
operator VkAttachmentDescriptionStencilLayout const &() const VULKAN_HPP_NOEXCEPT
{
@@ -4375,6 +4465,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
+#if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
AttachmentReference & setAttachment( uint32_t attachment_ ) VULKAN_HPP_NOEXCEPT
{
attachment = attachment_;
@@ -4386,6 +4477,7 @@ namespace VULKAN_HPP_NAMESPACE
layout = layout_;
return *this;
}
+#endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
operator VkAttachmentReference const &() const VULKAN_HPP_NOEXCEPT
{
@@ -4450,6 +4542,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
+#if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
AttachmentReference2 & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
{
pNext = pNext_;
@@ -4473,6 +4566,7 @@ namespace VULKAN_HPP_NAMESPACE
aspectMask = aspectMask_;
return *this;
}
+#endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
operator VkAttachmentReference2 const &() const VULKAN_HPP_NOEXCEPT
{
@@ -4546,6 +4640,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
+#if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
AttachmentReferenceStencilLayout & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
{
pNext = pNext_;
@@ -4558,6 +4653,7 @@ namespace VULKAN_HPP_NAMESPACE
stencilLayout = stencilLayout_;
return *this;
}
+#endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
operator VkAttachmentReferenceStencilLayout const &() const VULKAN_HPP_NOEXCEPT
{
@@ -4621,6 +4717,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
+#if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
Extent2D & setWidth( uint32_t width_ ) VULKAN_HPP_NOEXCEPT
{
width = width_;
@@ -4632,6 +4729,7 @@ namespace VULKAN_HPP_NAMESPACE
height = height_;
return *this;
}
+#endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
operator VkExtent2D const &() const VULKAN_HPP_NOEXCEPT
{
@@ -4688,6 +4786,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
+#if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
SampleLocationEXT & setX( float x_ ) VULKAN_HPP_NOEXCEPT
{
x = x_;
@@ -4699,6 +4798,7 @@ namespace VULKAN_HPP_NAMESPACE
y = y_;
return *this;
}
+#endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
operator VkSampleLocationEXT const &() const VULKAN_HPP_NOEXCEPT
{
@@ -4779,6 +4879,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
+#if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
SampleLocationsInfoEXT & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
{
pNext = pNext_;
@@ -4812,7 +4913,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
-#if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
+# if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
SampleLocationsInfoEXT & setSampleLocations(
VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::SampleLocationEXT> const &
sampleLocations_ ) VULKAN_HPP_NOEXCEPT
@@ -4821,7 +4922,8 @@ namespace VULKAN_HPP_NAMESPACE
pSampleLocations = sampleLocations_.data();
return *this;
}
-#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
+# endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
+#endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
operator VkSampleLocationsInfoEXT const &() const VULKAN_HPP_NOEXCEPT
{
@@ -4895,6 +4997,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
+#if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
AttachmentSampleLocationsEXT & setAttachmentIndex( uint32_t attachmentIndex_ ) VULKAN_HPP_NOEXCEPT
{
attachmentIndex = attachmentIndex_;
@@ -4907,6 +5010,7 @@ namespace VULKAN_HPP_NAMESPACE
sampleLocationsInfo = sampleLocationsInfo_;
return *this;
}
+#endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
operator VkAttachmentSampleLocationsEXT const &() const VULKAN_HPP_NOEXCEPT
{
@@ -4963,11 +5067,13 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
+#if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
BaseInStructure & setPNext( const struct VULKAN_HPP_NAMESPACE::BaseInStructure * pNext_ ) VULKAN_HPP_NOEXCEPT
{
pNext = pNext_;
return *this;
}
+#endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
operator VkBaseInStructure const &() const VULKAN_HPP_NOEXCEPT
{
@@ -5022,11 +5128,13 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
+#if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
BaseOutStructure & setPNext( struct VULKAN_HPP_NAMESPACE::BaseOutStructure * pNext_ ) VULKAN_HPP_NOEXCEPT
{
pNext = pNext_;
return *this;
}
+#endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
operator VkBaseOutStructure const &() const VULKAN_HPP_NOEXCEPT
{
@@ -5113,6 +5221,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
+#if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
BindAccelerationStructureMemoryInfoNV & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
{
pNext = pNext_;
@@ -5151,7 +5260,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
-#if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
+# if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
BindAccelerationStructureMemoryInfoNV & setDeviceIndices(
VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const uint32_t> const & deviceIndices_ ) VULKAN_HPP_NOEXCEPT
{
@@ -5159,7 +5268,8 @@ namespace VULKAN_HPP_NAMESPACE
pDeviceIndices = deviceIndices_.data();
return *this;
}
-#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
+# endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
+#endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
operator VkBindAccelerationStructureMemoryInfoNV const &() const VULKAN_HPP_NOEXCEPT
{
@@ -5244,6 +5354,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
+#if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
BindBufferMemoryDeviceGroupInfo & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
{
pNext = pNext_;
@@ -5262,7 +5373,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
-#if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
+# if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
BindBufferMemoryDeviceGroupInfo & setDeviceIndices(
VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const uint32_t> const & deviceIndices_ ) VULKAN_HPP_NOEXCEPT
{
@@ -5270,7 +5381,8 @@ namespace VULKAN_HPP_NAMESPACE
pDeviceIndices = deviceIndices_.data();
return *this;
}
-#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
+# endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
+#endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
operator VkBindBufferMemoryDeviceGroupInfo const &() const VULKAN_HPP_NOEXCEPT
{
@@ -5345,6 +5457,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
+#if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
BindBufferMemoryInfo & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
{
pNext = pNext_;
@@ -5368,6 +5481,7 @@ namespace VULKAN_HPP_NAMESPACE
memoryOffset = memoryOffset_;
return *this;
}
+#endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
operator VkBindBufferMemoryInfo const &() const VULKAN_HPP_NOEXCEPT
{
@@ -5433,6 +5547,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
+#if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
Offset2D & setX( int32_t x_ ) VULKAN_HPP_NOEXCEPT
{
x = x_;
@@ -5444,6 +5559,7 @@ namespace VULKAN_HPP_NAMESPACE
y = y_;
return *this;
}
+#endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
operator VkOffset2D const &() const VULKAN_HPP_NOEXCEPT
{
@@ -5498,6 +5614,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
+#if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
Rect2D & setOffset( VULKAN_HPP_NAMESPACE::Offset2D const & offset_ ) VULKAN_HPP_NOEXCEPT
{
offset = offset_;
@@ -5509,6 +5626,7 @@ namespace VULKAN_HPP_NAMESPACE
extent = extent_;
return *this;
}
+#endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
operator VkRect2D const &() const VULKAN_HPP_NOEXCEPT
{
@@ -5587,6 +5705,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
+#if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
BindImageMemoryDeviceGroupInfo & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
{
pNext = pNext_;
@@ -5605,7 +5724,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
-#if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
+# if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
BindImageMemoryDeviceGroupInfo & setDeviceIndices(
VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const uint32_t> const & deviceIndices_ ) VULKAN_HPP_NOEXCEPT
{
@@ -5613,7 +5732,7 @@ namespace VULKAN_HPP_NAMESPACE
pDeviceIndices = deviceIndices_.data();
return *this;
}
-#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
+# endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
BindImageMemoryDeviceGroupInfo &
setSplitInstanceBindRegionCount( uint32_t splitInstanceBindRegionCount_ ) VULKAN_HPP_NOEXCEPT
@@ -5629,7 +5748,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
-#if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
+# if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
BindImageMemoryDeviceGroupInfo & setSplitInstanceBindRegions(
VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::Rect2D> const &
splitInstanceBindRegions_ ) VULKAN_HPP_NOEXCEPT
@@ -5638,7 +5757,8 @@ namespace VULKAN_HPP_NAMESPACE
pSplitInstanceBindRegions = splitInstanceBindRegions_.data();
return *this;
}
-#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
+# endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
+#endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
operator VkBindImageMemoryDeviceGroupInfo const &() const VULKAN_HPP_NOEXCEPT
{
@@ -5717,6 +5837,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
+#if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
BindImageMemoryInfo & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
{
pNext = pNext_;
@@ -5740,6 +5861,7 @@ namespace VULKAN_HPP_NAMESPACE
memoryOffset = memoryOffset_;
return *this;
}
+#endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
operator VkBindImageMemoryInfo const &() const VULKAN_HPP_NOEXCEPT
{
@@ -5813,6 +5935,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
+#if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
BindImageMemorySwapchainInfoKHR & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
{
pNext = pNext_;
@@ -5830,6 +5953,7 @@ namespace VULKAN_HPP_NAMESPACE
imageIndex = imageIndex_;
return *this;
}
+#endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
operator VkBindImageMemorySwapchainInfoKHR const &() const VULKAN_HPP_NOEXCEPT
{
@@ -5901,6 +6025,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
+#if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
BindImagePlaneMemoryInfo & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
{
pNext = pNext_;
@@ -5913,6 +6038,7 @@ namespace VULKAN_HPP_NAMESPACE
planeAspect = planeAspect_;
return *this;
}
+#endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
operator VkBindImagePlaneMemoryInfo const &() const VULKAN_HPP_NOEXCEPT
{
@@ -5983,6 +6109,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
+#if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
BindIndexBufferIndirectCommandNV &
setBufferAddress( VULKAN_HPP_NAMESPACE::DeviceAddress bufferAddress_ ) VULKAN_HPP_NOEXCEPT
{
@@ -6001,6 +6128,7 @@ namespace VULKAN_HPP_NAMESPACE
indexType = indexType_;
return *this;
}
+#endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
operator VkBindIndexBufferIndirectCommandNV const &() const VULKAN_HPP_NOEXCEPT
{
@@ -6060,11 +6188,13 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
+#if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
BindShaderGroupIndirectCommandNV & setGroupIndex( uint32_t groupIndex_ ) VULKAN_HPP_NOEXCEPT
{
groupIndex = groupIndex_;
return *this;
}
+#endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
operator VkBindShaderGroupIndirectCommandNV const &() const VULKAN_HPP_NOEXCEPT
{
@@ -6128,6 +6258,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
+#if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
SparseMemoryBind & setResourceOffset( VULKAN_HPP_NAMESPACE::DeviceSize resourceOffset_ ) VULKAN_HPP_NOEXCEPT
{
resourceOffset = resourceOffset_;
@@ -6157,6 +6288,7 @@ namespace VULKAN_HPP_NAMESPACE
flags = flags_;
return *this;
}
+#endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
operator VkSparseMemoryBind const &() const VULKAN_HPP_NOEXCEPT
{
@@ -6231,6 +6363,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
+#if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
SparseBufferMemoryBindInfo & setBuffer( VULKAN_HPP_NAMESPACE::Buffer buffer_ ) VULKAN_HPP_NOEXCEPT
{
buffer = buffer_;
@@ -6249,7 +6382,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
-#if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
+# if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
SparseBufferMemoryBindInfo & setBinds(
VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::SparseMemoryBind> const & binds_ )
VULKAN_HPP_NOEXCEPT
@@ -6258,7 +6391,8 @@ namespace VULKAN_HPP_NAMESPACE
pBinds = binds_.data();
return *this;
}
-#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
+# endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
+#endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
operator VkSparseBufferMemoryBindInfo const &() const VULKAN_HPP_NOEXCEPT
{
@@ -6331,6 +6465,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
+#if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
SparseImageOpaqueMemoryBindInfo & setImage( VULKAN_HPP_NAMESPACE::Image image_ ) VULKAN_HPP_NOEXCEPT
{
image = image_;
@@ -6350,7 +6485,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
-#if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
+# if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
SparseImageOpaqueMemoryBindInfo & setBinds(
VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::SparseMemoryBind> const & binds_ )
VULKAN_HPP_NOEXCEPT
@@ -6359,7 +6494,8 @@ namespace VULKAN_HPP_NAMESPACE
pBinds = binds_.data();
return *this;
}
-#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
+# endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
+#endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
operator VkSparseImageOpaqueMemoryBindInfo const &() const VULKAN_HPP_NOEXCEPT
{
@@ -6421,6 +6557,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
+#if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
ImageSubresource & setAspectMask( VULKAN_HPP_NAMESPACE::ImageAspectFlags aspectMask_ ) VULKAN_HPP_NOEXCEPT
{
aspectMask = aspectMask_;
@@ -6438,6 +6575,7 @@ namespace VULKAN_HPP_NAMESPACE
arrayLayer = arrayLayer_;
return *this;
}
+#endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
operator VkImageSubresource const &() const VULKAN_HPP_NOEXCEPT
{
@@ -6496,6 +6634,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
+#if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
Offset3D & setX( int32_t x_ ) VULKAN_HPP_NOEXCEPT
{
x = x_;
@@ -6513,6 +6652,7 @@ namespace VULKAN_HPP_NAMESPACE
z = z_;
return *this;
}
+#endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
operator VkOffset3D const &() const VULKAN_HPP_NOEXCEPT
{
@@ -6573,6 +6713,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
+#if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
Extent3D & setWidth( uint32_t width_ ) VULKAN_HPP_NOEXCEPT
{
width = width_;
@@ -6590,6 +6731,7 @@ namespace VULKAN_HPP_NAMESPACE
depth = depth_;
return *this;
}
+#endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
operator VkExtent3D const &() const VULKAN_HPP_NOEXCEPT
{
@@ -6657,6 +6799,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
+#if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
SparseImageMemoryBind &
setSubresource( VULKAN_HPP_NAMESPACE::ImageSubresource const & subresource_ ) VULKAN_HPP_NOEXCEPT
{
@@ -6693,6 +6836,7 @@ namespace VULKAN_HPP_NAMESPACE
flags = flags_;
return *this;
}
+#endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
operator VkSparseImageMemoryBind const &() const VULKAN_HPP_NOEXCEPT
{
@@ -6768,6 +6912,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
+#if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
SparseImageMemoryBindInfo & setImage( VULKAN_HPP_NAMESPACE::Image image_ ) VULKAN_HPP_NOEXCEPT
{
image = image_;
@@ -6787,7 +6932,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
-#if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
+# if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
SparseImageMemoryBindInfo & setBinds(
VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::SparseImageMemoryBind> const & binds_ )
VULKAN_HPP_NOEXCEPT
@@ -6796,7 +6941,8 @@ namespace VULKAN_HPP_NAMESPACE
pBinds = binds_.data();
return *this;
}
-#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
+# endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
+#endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
operator VkSparseImageMemoryBindInfo const &() const VULKAN_HPP_NOEXCEPT
{
@@ -6900,6 +7046,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
+#if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
BindSparseInfo & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
{
pNext = pNext_;
@@ -6918,7 +7065,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
-#if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
+# if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
BindSparseInfo & setWaitSemaphores(
VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::Semaphore> const & waitSemaphores_ )
VULKAN_HPP_NOEXCEPT
@@ -6927,7 +7074,7 @@ namespace VULKAN_HPP_NAMESPACE
pWaitSemaphores = waitSemaphores_.data();
return *this;
}
-#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
+# endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
BindSparseInfo & setBufferBindCount( uint32_t bufferBindCount_ ) VULKAN_HPP_NOEXCEPT
{
@@ -6942,7 +7089,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
-#if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
+# if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
BindSparseInfo & setBufferBinds(
VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::SparseBufferMemoryBindInfo> const &
bufferBinds_ ) VULKAN_HPP_NOEXCEPT
@@ -6951,7 +7098,7 @@ namespace VULKAN_HPP_NAMESPACE
pBufferBinds = bufferBinds_.data();
return *this;
}
-#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
+# endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
BindSparseInfo & setImageOpaqueBindCount( uint32_t imageOpaqueBindCount_ ) VULKAN_HPP_NOEXCEPT
{
@@ -6966,7 +7113,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
-#if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
+# if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
BindSparseInfo & setImageOpaqueBinds(
VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::SparseImageOpaqueMemoryBindInfo> const &
imageOpaqueBinds_ ) VULKAN_HPP_NOEXCEPT
@@ -6975,7 +7122,7 @@ namespace VULKAN_HPP_NAMESPACE
pImageOpaqueBinds = imageOpaqueBinds_.data();
return *this;
}
-#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
+# endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
BindSparseInfo & setImageBindCount( uint32_t imageBindCount_ ) VULKAN_HPP_NOEXCEPT
{
@@ -6990,7 +7137,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
-#if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
+# if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
BindSparseInfo & setImageBinds(
VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::SparseImageMemoryBindInfo> const &
imageBinds_ ) VULKAN_HPP_NOEXCEPT
@@ -6999,7 +7146,7 @@ namespace VULKAN_HPP_NAMESPACE
pImageBinds = imageBinds_.data();
return *this;
}
-#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
+# endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
BindSparseInfo & setSignalSemaphoreCount( uint32_t signalSemaphoreCount_ ) VULKAN_HPP_NOEXCEPT
{
@@ -7014,7 +7161,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
-#if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
+# if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
BindSparseInfo & setSignalSemaphores(
VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::Semaphore> const & signalSemaphores_ )
VULKAN_HPP_NOEXCEPT
@@ -7023,7 +7170,8 @@ namespace VULKAN_HPP_NAMESPACE
pSignalSemaphores = signalSemaphores_.data();
return *this;
}
-#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
+# endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
+#endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
operator VkBindSparseInfo const &() const VULKAN_HPP_NOEXCEPT
{
@@ -7105,6 +7253,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
+#if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
BindVertexBufferIndirectCommandNV &
setBufferAddress( VULKAN_HPP_NAMESPACE::DeviceAddress bufferAddress_ ) VULKAN_HPP_NOEXCEPT
{
@@ -7123,6 +7272,7 @@ namespace VULKAN_HPP_NAMESPACE
stride = stride_;
return *this;
}
+#endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
operator VkBindVertexBufferIndirectCommandNV const &() const VULKAN_HPP_NOEXCEPT
{
@@ -7187,6 +7337,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
+#if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
ImageSubresourceLayers & setAspectMask( VULKAN_HPP_NAMESPACE::ImageAspectFlags aspectMask_ ) VULKAN_HPP_NOEXCEPT
{
aspectMask = aspectMask_;
@@ -7210,6 +7361,7 @@ namespace VULKAN_HPP_NAMESPACE
layerCount = layerCount_;
return *this;
}
+#endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
operator VkImageSubresourceLayers const &() const VULKAN_HPP_NOEXCEPT
{
@@ -7278,6 +7430,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
+#if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
ImageBlit2KHR & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
{
pNext = pNext_;
@@ -7311,6 +7464,7 @@ namespace VULKAN_HPP_NAMESPACE
dstOffsets = dstOffsets_;
return *this;
}
+#endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
operator VkImageBlit2KHR const &() const VULKAN_HPP_NOEXCEPT
{
@@ -7412,6 +7566,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
+#if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
BlitImageInfo2KHR & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
{
pNext = pNext_;
@@ -7454,7 +7609,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
-#if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
+# if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
BlitImageInfo2KHR & setRegions(
VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::ImageBlit2KHR> const & regions_ )
VULKAN_HPP_NOEXCEPT
@@ -7463,13 +7618,14 @@ namespace VULKAN_HPP_NAMESPACE
pRegions = regions_.data();
return *this;
}
-#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
+# endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
BlitImageInfo2KHR & setFilter( VULKAN_HPP_NAMESPACE::Filter filter_ ) VULKAN_HPP_NOEXCEPT
{
filter = filter_;
return *this;
}
+#endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
operator VkBlitImageInfo2KHR const &() const VULKAN_HPP_NOEXCEPT
{
@@ -7545,6 +7701,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
+#if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
BufferCopy & setSrcOffset( VULKAN_HPP_NAMESPACE::DeviceSize srcOffset_ ) VULKAN_HPP_NOEXCEPT
{
srcOffset = srcOffset_;
@@ -7562,6 +7719,7 @@ namespace VULKAN_HPP_NAMESPACE
size = size_;
return *this;
}
+#endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
operator VkBufferCopy const &() const VULKAN_HPP_NOEXCEPT
{
@@ -7624,6 +7782,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
+#if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
BufferCopy2KHR & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
{
pNext = pNext_;
@@ -7647,6 +7806,7 @@ namespace VULKAN_HPP_NAMESPACE
size = size_;
return *this;
}
+#endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
operator VkBufferCopy2KHR const &() const VULKAN_HPP_NOEXCEPT
{
@@ -7740,6 +7900,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
+#if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
BufferCreateInfo & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
{
pNext = pNext_;
@@ -7782,7 +7943,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
-#if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
+# if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
BufferCreateInfo & setQueueFamilyIndices(
VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const uint32_t> const & queueFamilyIndices_ ) VULKAN_HPP_NOEXCEPT
{
@@ -7790,7 +7951,8 @@ namespace VULKAN_HPP_NAMESPACE
pQueueFamilyIndices = queueFamilyIndices_.data();
return *this;
}
-#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
+# endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
+#endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
operator VkBufferCreateInfo const &() const VULKAN_HPP_NOEXCEPT
{
@@ -7867,6 +8029,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
+#if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
BufferDeviceAddressCreateInfoEXT & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
{
pNext = pNext_;
@@ -7879,6 +8042,7 @@ namespace VULKAN_HPP_NAMESPACE
deviceAddress = deviceAddress_;
return *this;
}
+#endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
operator VkBufferDeviceAddressCreateInfoEXT const &() const VULKAN_HPP_NOEXCEPT
{
@@ -7946,6 +8110,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
+#if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
BufferDeviceAddressInfo & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
{
pNext = pNext_;
@@ -7957,6 +8122,7 @@ namespace VULKAN_HPP_NAMESPACE
buffer = buffer_;
return *this;
}
+#endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
operator VkBufferDeviceAddressInfo const &() const VULKAN_HPP_NOEXCEPT
{
@@ -8031,6 +8197,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
+#if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
BufferImageCopy & setBufferOffset( VULKAN_HPP_NAMESPACE::DeviceSize bufferOffset_ ) VULKAN_HPP_NOEXCEPT
{
bufferOffset = bufferOffset_;
@@ -8067,6 +8234,7 @@ namespace VULKAN_HPP_NAMESPACE
imageExtent = imageExtent_;
return *this;
}
+#endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
operator VkBufferImageCopy const &() const VULKAN_HPP_NOEXCEPT
{
@@ -8141,6 +8309,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
+#if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
BufferImageCopy2KHR & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
{
pNext = pNext_;
@@ -8183,6 +8352,7 @@ namespace VULKAN_HPP_NAMESPACE
imageExtent = imageExtent_;
return *this;
}
+#endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
operator VkBufferImageCopy2KHR const &() const VULKAN_HPP_NOEXCEPT
{
@@ -8269,6 +8439,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
+#if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
BufferMemoryBarrier & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
{
pNext = pNext_;
@@ -8316,6 +8487,7 @@ namespace VULKAN_HPP_NAMESPACE
size = size_;
return *this;
}
+#endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
operator VkBufferMemoryBarrier const &() const VULKAN_HPP_NOEXCEPT
{
@@ -8407,6 +8579,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
+#if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
BufferMemoryBarrier2KHR & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
{
pNext = pNext_;
@@ -8470,6 +8643,7 @@ namespace VULKAN_HPP_NAMESPACE
size = size_;
return *this;
}
+#endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
operator VkBufferMemoryBarrier2KHR const &() const VULKAN_HPP_NOEXCEPT
{
@@ -8549,6 +8723,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
+#if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
BufferMemoryRequirementsInfo2 & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
{
pNext = pNext_;
@@ -8560,6 +8735,7 @@ namespace VULKAN_HPP_NAMESPACE
buffer = buffer_;
return *this;
}
+#endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
operator VkBufferMemoryRequirementsInfo2 const &() const VULKAN_HPP_NOEXCEPT
{
@@ -8631,6 +8807,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
+#if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
BufferOpaqueCaptureAddressCreateInfo & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
{
pNext = pNext_;
@@ -8642,6 +8819,7 @@ namespace VULKAN_HPP_NAMESPACE
opaqueCaptureAddress = opaqueCaptureAddress_;
return *this;
}
+#endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
operator VkBufferOpaqueCaptureAddressCreateInfo const &() const VULKAN_HPP_NOEXCEPT
{
@@ -8719,6 +8897,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
+#if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
BufferViewCreateInfo & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
{
pNext = pNext_;
@@ -8754,6 +8933,7 @@ namespace VULKAN_HPP_NAMESPACE
range = range_;
return *this;
}
+#endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
operator VkBufferViewCreateInfo const &() const VULKAN_HPP_NOEXCEPT
{
@@ -8828,6 +9008,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
+#if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
CalibratedTimestampInfoEXT & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
{
pNext = pNext_;
@@ -8839,6 +9020,7 @@ namespace VULKAN_HPP_NAMESPACE
timeDomain = timeDomain_;
return *this;
}
+#endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
operator VkCalibratedTimestampInfoEXT const &() const VULKAN_HPP_NOEXCEPT
{
@@ -9020,6 +9202,7 @@ namespace VULKAN_HPP_NAMESPACE
union ClearColorValue
{
+#if !defined( VULKAN_HPP_NO_UNION_CONSTRUCTORS )
ClearColorValue( VULKAN_HPP_NAMESPACE::ClearColorValue const & rhs ) VULKAN_HPP_NOEXCEPT
{
memcpy( static_cast<void *>( this ), &rhs, sizeof( VULKAN_HPP_NAMESPACE::ClearColorValue ) );
@@ -9030,7 +9213,9 @@ namespace VULKAN_HPP_NAMESPACE
ClearColorValue( const std::array<int32_t, 4> & int32_ ) : int32( int32_ ) {}
ClearColorValue( const std::array<uint32_t, 4> & uint32_ ) : uint32( uint32_ ) {}
+#endif /*VULKAN_HPP_NO_UNION_CONSTRUCTORS*/
+#if !defined( VULKAN_HPP_NO_UNION_SETTERS )
ClearColorValue & setFloat32( std::array<float, 4> float32_ ) VULKAN_HPP_NOEXCEPT
{
float32 = float32_;
@@ -9048,6 +9233,7 @@ namespace VULKAN_HPP_NAMESPACE
uint32 = uint32_;
return *this;
}
+#endif /*VULKAN_HPP_NO_UNION_SETTERS*/
VULKAN_HPP_NAMESPACE::ClearColorValue &
operator=( VULKAN_HPP_NAMESPACE::ClearColorValue const & rhs ) VULKAN_HPP_NOEXCEPT
@@ -9095,6 +9281,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
+#if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
ClearDepthStencilValue & setDepth( float depth_ ) VULKAN_HPP_NOEXCEPT
{
depth = depth_;
@@ -9106,6 +9293,7 @@ namespace VULKAN_HPP_NAMESPACE
stencil = stencil_;
return *this;
}
+#endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
operator VkClearDepthStencilValue const &() const VULKAN_HPP_NOEXCEPT
{
@@ -9141,6 +9329,7 @@ namespace VULKAN_HPP_NAMESPACE
union ClearValue
{
+#if !defined( VULKAN_HPP_NO_UNION_CONSTRUCTORS )
ClearValue( VULKAN_HPP_NAMESPACE::ClearValue const & rhs ) VULKAN_HPP_NOEXCEPT
{
memcpy( static_cast<void *>( this ), &rhs, sizeof( VULKAN_HPP_NAMESPACE::ClearValue ) );
@@ -9149,7 +9338,9 @@ namespace VULKAN_HPP_NAMESPACE
ClearValue( VULKAN_HPP_NAMESPACE::ClearColorValue color_ = {} ) : color( color_ ) {}
ClearValue( VULKAN_HPP_NAMESPACE::ClearDepthStencilValue depthStencil_ ) : depthStencil( depthStencil_ ) {}
+#endif /*VULKAN_HPP_NO_UNION_CONSTRUCTORS*/
+#if !defined( VULKAN_HPP_NO_UNION_SETTERS )
ClearValue & setColor( VULKAN_HPP_NAMESPACE::ClearColorValue const & color_ ) VULKAN_HPP_NOEXCEPT
{
color = color_;
@@ -9162,6 +9353,7 @@ namespace VULKAN_HPP_NAMESPACE
depthStencil = depthStencil_;
return *this;
}
+#endif /*VULKAN_HPP_NO_UNION_SETTERS*/
VULKAN_HPP_NAMESPACE::ClearValue & operator=( VULKAN_HPP_NAMESPACE::ClearValue const & rhs ) VULKAN_HPP_NOEXCEPT
{
@@ -9214,6 +9406,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
+#if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
ClearAttachment & setAspectMask( VULKAN_HPP_NAMESPACE::ImageAspectFlags aspectMask_ ) VULKAN_HPP_NOEXCEPT
{
aspectMask = aspectMask_;
@@ -9231,6 +9424,7 @@ namespace VULKAN_HPP_NAMESPACE
clearValue = clearValue_;
return *this;
}
+#endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
operator VkClearAttachment const &() const VULKAN_HPP_NOEXCEPT
{
@@ -9275,6 +9469,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
+#if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
ClearRect & setRect( VULKAN_HPP_NAMESPACE::Rect2D const & rect_ ) VULKAN_HPP_NOEXCEPT
{
rect = rect_;
@@ -9292,6 +9487,7 @@ namespace VULKAN_HPP_NAMESPACE
layerCount = layerCount_;
return *this;
}
+#endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
operator VkClearRect const &() const VULKAN_HPP_NOEXCEPT
{
@@ -9351,6 +9547,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
+#if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
CoarseSampleLocationNV & setPixelX( uint32_t pixelX_ ) VULKAN_HPP_NOEXCEPT
{
pixelX = pixelX_;
@@ -9368,6 +9565,7 @@ namespace VULKAN_HPP_NAMESPACE
sample = sample_;
return *this;
}
+#endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
operator VkCoarseSampleLocationNV const &() const VULKAN_HPP_NOEXCEPT
{
@@ -9447,6 +9645,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
+#if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
CoarseSampleOrderCustomNV &
setShadingRate( VULKAN_HPP_NAMESPACE::ShadingRatePaletteEntryNV shadingRate_ ) VULKAN_HPP_NOEXCEPT
{
@@ -9473,7 +9672,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
-#if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
+# if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
CoarseSampleOrderCustomNV & setSampleLocations(
VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::CoarseSampleLocationNV> const &
sampleLocations_ ) VULKAN_HPP_NOEXCEPT
@@ -9482,7 +9681,8 @@ namespace VULKAN_HPP_NAMESPACE
pSampleLocations = sampleLocations_.data();
return *this;
}
-#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
+# endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
+#endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
operator VkCoarseSampleOrderCustomNV const &() const VULKAN_HPP_NOEXCEPT
{
@@ -9553,6 +9753,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
+#if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
CommandBufferAllocateInfo & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
{
pNext = pNext_;
@@ -9576,6 +9777,7 @@ namespace VULKAN_HPP_NAMESPACE
commandBufferCount = commandBufferCount_;
return *this;
}
+#endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
operator VkCommandBufferAllocateInfo const &() const VULKAN_HPP_NOEXCEPT
{
@@ -9658,6 +9860,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
+#if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
CommandBufferInheritanceInfo & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
{
pNext = pNext_;
@@ -9702,6 +9905,7 @@ namespace VULKAN_HPP_NAMESPACE
pipelineStatistics = pipelineStatistics_;
return *this;
}
+#endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
operator VkCommandBufferInheritanceInfo const &() const VULKAN_HPP_NOEXCEPT
{
@@ -9780,6 +9984,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
+#if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
CommandBufferBeginInfo & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
{
pNext = pNext_;
@@ -9798,6 +10003,7 @@ namespace VULKAN_HPP_NAMESPACE
pInheritanceInfo = pInheritanceInfo_;
return *this;
}
+#endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
operator VkCommandBufferBeginInfo const &() const VULKAN_HPP_NOEXCEPT
{
@@ -9873,6 +10079,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
+#if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
CommandBufferInheritanceConditionalRenderingInfoEXT & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
{
pNext = pNext_;
@@ -9885,6 +10092,7 @@ namespace VULKAN_HPP_NAMESPACE
conditionalRenderingEnable = conditionalRenderingEnable_;
return *this;
}
+#endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
operator VkCommandBufferInheritanceConditionalRenderingInfoEXT const &() const VULKAN_HPP_NOEXCEPT
{
@@ -9964,6 +10172,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
+#if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
CommandBufferInheritanceRenderPassTransformInfoQCOM & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
{
pNext = pNext_;
@@ -9983,6 +10192,7 @@ namespace VULKAN_HPP_NAMESPACE
renderArea = renderArea_;
return *this;
}
+#endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
operator VkCommandBufferInheritanceRenderPassTransformInfoQCOM const &() const VULKAN_HPP_NOEXCEPT
{
@@ -10058,6 +10268,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
+#if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
Viewport & setX( float x_ ) VULKAN_HPP_NOEXCEPT
{
x = x_;
@@ -10093,6 +10304,7 @@ namespace VULKAN_HPP_NAMESPACE
maxDepth = maxDepth_;
return *this;
}
+#endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
operator VkViewport const &() const VULKAN_HPP_NOEXCEPT
{
@@ -10166,6 +10378,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
+#if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
CommandBufferInheritanceViewportScissorInfoNV & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
{
pNext = pNext_;
@@ -10192,6 +10405,7 @@ namespace VULKAN_HPP_NAMESPACE
pViewportDepths = pViewportDepths_;
return *this;
}
+#endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
operator VkCommandBufferInheritanceViewportScissorInfoNV const &() const VULKAN_HPP_NOEXCEPT
{
@@ -10266,6 +10480,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
+#if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
CommandBufferSubmitInfoKHR & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
{
pNext = pNext_;
@@ -10284,6 +10499,7 @@ namespace VULKAN_HPP_NAMESPACE
deviceMask = deviceMask_;
return *this;
}
+#endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
operator VkCommandBufferSubmitInfoKHR const &() const VULKAN_HPP_NOEXCEPT
{
@@ -10355,6 +10571,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
+#if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
CommandPoolCreateInfo & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
{
pNext = pNext_;
@@ -10372,6 +10589,7 @@ namespace VULKAN_HPP_NAMESPACE
queueFamilyIndex = queueFamilyIndex_;
return *this;
}
+#endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
operator VkCommandPoolCreateInfo const &() const VULKAN_HPP_NOEXCEPT
{
@@ -10440,6 +10658,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
+#if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
SpecializationMapEntry & setConstantID( uint32_t constantID_ ) VULKAN_HPP_NOEXCEPT
{
constantID = constantID_;
@@ -10457,6 +10676,7 @@ namespace VULKAN_HPP_NAMESPACE
size = size_;
return *this;
}
+#endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
operator VkSpecializationMapEntry const &() const VULKAN_HPP_NOEXCEPT
{
@@ -10532,6 +10752,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
+#if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
SpecializationInfo & setMapEntryCount( uint32_t mapEntryCount_ ) VULKAN_HPP_NOEXCEPT
{
mapEntryCount = mapEntryCount_;
@@ -10545,7 +10766,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
-#if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
+# if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
SpecializationInfo & setMapEntries(
VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::SpecializationMapEntry> const &
mapEntries_ ) VULKAN_HPP_NOEXCEPT
@@ -10554,7 +10775,7 @@ namespace VULKAN_HPP_NAMESPACE
pMapEntries = mapEntries_.data();
return *this;
}
-#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
+# endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
SpecializationInfo & setDataSize( size_t dataSize_ ) VULKAN_HPP_NOEXCEPT
{
@@ -10568,7 +10789,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
-#if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
+# if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
template <typename T>
SpecializationInfo &
setData( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const T> const & data_ ) VULKAN_HPP_NOEXCEPT
@@ -10577,7 +10798,8 @@ namespace VULKAN_HPP_NAMESPACE
pData = data_.data();
return *this;
}
-#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
+# endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
+#endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
operator VkSpecializationInfo const &() const VULKAN_HPP_NOEXCEPT
{
@@ -10650,6 +10872,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
+#if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
PipelineShaderStageCreateInfo & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
{
pNext = pNext_;
@@ -10687,6 +10910,7 @@ namespace VULKAN_HPP_NAMESPACE
pSpecializationInfo = pSpecializationInfo_;
return *this;
}
+#endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
operator VkPipelineShaderStageCreateInfo const &() const VULKAN_HPP_NOEXCEPT
{
@@ -10768,6 +10992,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
+#if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
ComputePipelineCreateInfo & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
{
pNext = pNext_;
@@ -10805,6 +11030,7 @@ namespace VULKAN_HPP_NAMESPACE
basePipelineIndex = basePipelineIndex_;
return *this;
}
+#endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
operator VkComputePipelineCreateInfo const &() const VULKAN_HPP_NOEXCEPT
{
@@ -10884,6 +11110,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
+#if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
ConditionalRenderingBeginInfoEXT & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
{
pNext = pNext_;
@@ -10908,6 +11135,7 @@ namespace VULKAN_HPP_NAMESPACE
flags = flags_;
return *this;
}
+#endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
operator VkConditionalRenderingBeginInfoEXT const &() const VULKAN_HPP_NOEXCEPT
{
@@ -10981,6 +11209,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
+#if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
ConformanceVersion & setMajor( uint8_t major_ ) VULKAN_HPP_NOEXCEPT
{
major = major_;
@@ -11004,6 +11233,7 @@ namespace VULKAN_HPP_NAMESPACE
patch = patch_;
return *this;
}
+#endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
operator VkConformanceVersion const &() const VULKAN_HPP_NOEXCEPT
{
@@ -11082,6 +11312,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
+#if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
CooperativeMatrixPropertiesNV & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
{
pNext = pNext_;
@@ -11135,6 +11366,7 @@ namespace VULKAN_HPP_NAMESPACE
scope = scope_;
return *this;
}
+#endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
operator VkCooperativeMatrixPropertiesNV const &() const VULKAN_HPP_NOEXCEPT
{
@@ -11218,6 +11450,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
+#if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
CopyAccelerationStructureInfoKHR & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
{
pNext = pNext_;
@@ -11242,6 +11475,7 @@ namespace VULKAN_HPP_NAMESPACE
mode = mode_;
return *this;
}
+#endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
operator VkCopyAccelerationStructureInfoKHR const &() const VULKAN_HPP_NOEXCEPT
{
@@ -11324,6 +11558,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
+#if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
CopyAccelerationStructureToMemoryInfoKHR & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
{
pNext = pNext_;
@@ -11350,6 +11585,7 @@ namespace VULKAN_HPP_NAMESPACE
mode = mode_;
return *this;
}
+#endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
operator VkCopyAccelerationStructureToMemoryInfoKHR const &() const VULKAN_HPP_NOEXCEPT
{
@@ -11426,6 +11662,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
+#if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
CopyBufferInfo2KHR & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
{
pNext = pNext_;
@@ -11456,7 +11693,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
-#if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
+# if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
CopyBufferInfo2KHR & setRegions(
VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::BufferCopy2KHR> const & regions_ )
VULKAN_HPP_NOEXCEPT
@@ -11465,7 +11702,8 @@ namespace VULKAN_HPP_NAMESPACE
pRegions = regions_.data();
return *this;
}
-#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
+# endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
+#endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
operator VkCopyBufferInfo2KHR const &() const VULKAN_HPP_NOEXCEPT
{
@@ -11560,6 +11798,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
+#if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
CopyBufferToImageInfo2KHR & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
{
pNext = pNext_;
@@ -11598,7 +11837,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
-#if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
+# if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
CopyBufferToImageInfo2KHR & setRegions(
VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::BufferImageCopy2KHR> const & regions_ )
VULKAN_HPP_NOEXCEPT
@@ -11607,7 +11846,8 @@ namespace VULKAN_HPP_NAMESPACE
pRegions = regions_.data();
return *this;
}
-#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
+# endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
+#endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
operator VkCopyBufferToImageInfo2KHR const &() const VULKAN_HPP_NOEXCEPT
{
@@ -11684,6 +11924,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
+#if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
CopyCommandTransformInfoQCOM & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
{
pNext = pNext_;
@@ -11696,6 +11937,7 @@ namespace VULKAN_HPP_NAMESPACE
transform = transform_;
return *this;
}
+#endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
operator VkCopyCommandTransformInfoQCOM const &() const VULKAN_HPP_NOEXCEPT
{
@@ -11776,6 +12018,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
+#if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
CopyDescriptorSet & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
{
pNext = pNext_;
@@ -11823,6 +12066,7 @@ namespace VULKAN_HPP_NAMESPACE
descriptorCount = descriptorCount_;
return *this;
}
+#endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
operator VkCopyDescriptorSet const &() const VULKAN_HPP_NOEXCEPT
{
@@ -11905,6 +12149,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
+#if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
ImageCopy2KHR & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
{
pNext = pNext_;
@@ -11942,6 +12187,7 @@ namespace VULKAN_HPP_NAMESPACE
extent = extent_;
return *this;
}
+#endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
operator VkImageCopy2KHR const &() const VULKAN_HPP_NOEXCEPT
{
@@ -12040,6 +12286,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
+#if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
CopyImageInfo2KHR & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
{
pNext = pNext_;
@@ -12082,7 +12329,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
-#if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
+# if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
CopyImageInfo2KHR & setRegions(
VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::ImageCopy2KHR> const & regions_ )
VULKAN_HPP_NOEXCEPT
@@ -12091,7 +12338,8 @@ namespace VULKAN_HPP_NAMESPACE
pRegions = regions_.data();
return *this;
}
-#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
+# endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
+#endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
operator VkCopyImageInfo2KHR const &() const VULKAN_HPP_NOEXCEPT
{
@@ -12190,6 +12438,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
+#if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
CopyImageToBufferInfo2KHR & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
{
pNext = pNext_;
@@ -12228,7 +12477,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
-#if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
+# if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
CopyImageToBufferInfo2KHR & setRegions(
VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::BufferImageCopy2KHR> const & regions_ )
VULKAN_HPP_NOEXCEPT
@@ -12237,7 +12486,8 @@ namespace VULKAN_HPP_NAMESPACE
pRegions = regions_.data();
return *this;
}
-#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
+# endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
+#endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
operator VkCopyImageToBufferInfo2KHR const &() const VULKAN_HPP_NOEXCEPT
{
@@ -12322,6 +12572,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
+#if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
CopyMemoryToAccelerationStructureInfoKHR & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
{
pNext = pNext_;
@@ -12348,6 +12599,7 @@ namespace VULKAN_HPP_NAMESPACE
mode = mode_;
return *this;
}
+#endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
operator VkCopyMemoryToAccelerationStructureInfoKHR const &() const VULKAN_HPP_NOEXCEPT
{
@@ -12407,6 +12659,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
+#if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
CuFunctionCreateInfoNVX & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
{
pNext = pNext_;
@@ -12424,6 +12677,7 @@ namespace VULKAN_HPP_NAMESPACE
pName = pName_;
return *this;
}
+#endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
operator VkCuFunctionCreateInfoNVX const &() const VULKAN_HPP_NOEXCEPT
{
@@ -12502,7 +12756,33 @@ namespace VULKAN_HPP_NAMESPACE
CuLaunchInfoNVX( VkCuLaunchInfoNVX const & rhs ) VULKAN_HPP_NOEXCEPT
: CuLaunchInfoNVX( *reinterpret_cast<CuLaunchInfoNVX const *>( &rhs ) )
{}
-#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
+
+# if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
+ CuLaunchInfoNVX( VULKAN_HPP_NAMESPACE::CuFunctionNVX function_,
+ uint32_t gridDimX_,
+ uint32_t gridDimY_,
+ uint32_t gridDimZ_,
+ uint32_t blockDimX_,
+ uint32_t blockDimY_,
+ uint32_t blockDimZ_,
+ uint32_t sharedMemBytes_,
+ VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const void * const> const & params_,
+ VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const void * const> const & extras_ = {} )
+ : function( function_ )
+ , gridDimX( gridDimX_ )
+ , gridDimY( gridDimY_ )
+ , gridDimZ( gridDimZ_ )
+ , blockDimX( blockDimX_ )
+ , blockDimY( blockDimY_ )
+ , blockDimZ( blockDimZ_ )
+ , sharedMemBytes( sharedMemBytes_ )
+ , paramCount( params_.size() )
+ , pParams( params_.data() )
+ , extraCount( extras_.size() )
+ , pExtras( extras_.data() )
+ {}
+# endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
+#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
VULKAN_HPP_CONSTEXPR_14 CuLaunchInfoNVX & operator=( CuLaunchInfoNVX const & rhs ) VULKAN_HPP_NOEXCEPT = default;
@@ -12512,6 +12792,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
+#if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
CuLaunchInfoNVX & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
{
pNext = pNext_;
@@ -12578,6 +12859,16 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
+# if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
+ CuLaunchInfoNVX &
+ setParams( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const void * const> const & params_ ) VULKAN_HPP_NOEXCEPT
+ {
+ paramCount = params_.size();
+ pParams = params_.data();
+ return *this;
+ }
+# endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
+
CuLaunchInfoNVX & setExtraCount( size_t extraCount_ ) VULKAN_HPP_NOEXCEPT
{
extraCount = extraCount_;
@@ -12590,6 +12881,17 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
+# if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
+ CuLaunchInfoNVX &
+ setExtras( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const void * const> const & extras_ ) VULKAN_HPP_NOEXCEPT
+ {
+ extraCount = extras_.size();
+ pExtras = extras_.data();
+ return *this;
+ }
+# endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
+#endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
+
operator VkCuLaunchInfoNVX const &() const VULKAN_HPP_NOEXCEPT
{
return *reinterpret_cast<const VkCuLaunchInfoNVX *>( this );
@@ -12670,6 +12972,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
+#if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
CuModuleCreateInfoNVX & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
{
pNext = pNext_;
@@ -12687,6 +12990,7 @@ namespace VULKAN_HPP_NAMESPACE
pData = pData_;
return *this;
}
+#endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
operator VkCuModuleCreateInfoNVX const &() const VULKAN_HPP_NOEXCEPT
{
@@ -12772,6 +13076,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
+# if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
D3D12FenceSubmitInfoKHR & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
{
pNext = pNext_;
@@ -12790,7 +13095,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
-# if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
+# if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
D3D12FenceSubmitInfoKHR & setWaitSemaphoreValues(
VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const uint64_t> const & waitSemaphoreValues_ ) VULKAN_HPP_NOEXCEPT
{
@@ -12798,7 +13103,7 @@ namespace VULKAN_HPP_NAMESPACE
pWaitSemaphoreValues = waitSemaphoreValues_.data();
return *this;
}
-# endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
+# endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
D3D12FenceSubmitInfoKHR & setSignalSemaphoreValuesCount( uint32_t signalSemaphoreValuesCount_ ) VULKAN_HPP_NOEXCEPT
{
@@ -12812,7 +13117,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
-# if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
+# if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
D3D12FenceSubmitInfoKHR & setSignalSemaphoreValues(
VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const uint64_t> const & signalSemaphoreValues_ ) VULKAN_HPP_NOEXCEPT
{
@@ -12820,7 +13125,8 @@ namespace VULKAN_HPP_NAMESPACE
pSignalSemaphoreValues = signalSemaphoreValues_.data();
return *this;
}
-# endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
+# endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
+# endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
operator VkD3D12FenceSubmitInfoKHR const &() const VULKAN_HPP_NOEXCEPT
{
@@ -12898,6 +13204,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
+#if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
DebugMarkerMarkerInfoEXT & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
{
pNext = pNext_;
@@ -12915,6 +13222,7 @@ namespace VULKAN_HPP_NAMESPACE
color = color_;
return *this;
}
+#endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
operator VkDebugMarkerMarkerInfoEXT const &() const VULKAN_HPP_NOEXCEPT
{
@@ -12989,6 +13297,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
+#if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
DebugMarkerObjectNameInfoEXT & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
{
pNext = pNext_;
@@ -13013,6 +13322,7 @@ namespace VULKAN_HPP_NAMESPACE
pObjectName = pObjectName_;
return *this;
}
+#endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
operator VkDebugMarkerObjectNameInfoEXT const &() const VULKAN_HPP_NOEXCEPT
{
@@ -13108,6 +13418,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
+#if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
DebugMarkerObjectTagInfoEXT & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
{
pNext = pNext_;
@@ -13145,7 +13456,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
-#if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
+# if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
template <typename T>
DebugMarkerObjectTagInfoEXT &
setTag( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const T> const & tag_ ) VULKAN_HPP_NOEXCEPT
@@ -13154,7 +13465,8 @@ namespace VULKAN_HPP_NAMESPACE
pTag = tag_.data();
return *this;
}
-#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
+# endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
+#endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
operator VkDebugMarkerObjectTagInfoEXT const &() const VULKAN_HPP_NOEXCEPT
{
@@ -13234,6 +13546,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
+#if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
DebugReportCallbackCreateInfoEXT & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
{
pNext = pNext_;
@@ -13257,6 +13570,7 @@ namespace VULKAN_HPP_NAMESPACE
pUserData = pUserData_;
return *this;
}
+#endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
operator VkDebugReportCallbackCreateInfoEXT const &() const VULKAN_HPP_NOEXCEPT
{
@@ -13329,6 +13643,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
+#if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
DebugUtilsLabelEXT & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
{
pNext = pNext_;
@@ -13346,6 +13661,7 @@ namespace VULKAN_HPP_NAMESPACE
color = color_;
return *this;
}
+#endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
operator VkDebugUtilsLabelEXT const &() const VULKAN_HPP_NOEXCEPT
{
@@ -13420,6 +13736,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
+#if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
DebugUtilsObjectNameInfoEXT & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
{
pNext = pNext_;
@@ -13443,6 +13760,7 @@ namespace VULKAN_HPP_NAMESPACE
pObjectName = pObjectName_;
return *this;
}
+#endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
operator VkDebugUtilsObjectNameInfoEXT const &() const VULKAN_HPP_NOEXCEPT
{
@@ -13560,6 +13878,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
+#if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
DebugUtilsMessengerCallbackDataEXT & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
{
pNext = pNext_;
@@ -13604,7 +13923,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
-#if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
+# if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
DebugUtilsMessengerCallbackDataEXT & setQueueLabels(
VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::DebugUtilsLabelEXT> const &
queueLabels_ ) VULKAN_HPP_NOEXCEPT
@@ -13613,7 +13932,7 @@ namespace VULKAN_HPP_NAMESPACE
pQueueLabels = queueLabels_.data();
return *this;
}
-#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
+# endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
DebugUtilsMessengerCallbackDataEXT & setCmdBufLabelCount( uint32_t cmdBufLabelCount_ ) VULKAN_HPP_NOEXCEPT
{
@@ -13628,7 +13947,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
-#if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
+# if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
DebugUtilsMessengerCallbackDataEXT & setCmdBufLabels(
VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::DebugUtilsLabelEXT> const &
cmdBufLabels_ ) VULKAN_HPP_NOEXCEPT
@@ -13637,7 +13956,7 @@ namespace VULKAN_HPP_NAMESPACE
pCmdBufLabels = cmdBufLabels_.data();
return *this;
}
-#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
+# endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
DebugUtilsMessengerCallbackDataEXT & setObjectCount( uint32_t objectCount_ ) VULKAN_HPP_NOEXCEPT
{
@@ -13652,7 +13971,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
-#if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
+# if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
DebugUtilsMessengerCallbackDataEXT & setObjects(
VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::DebugUtilsObjectNameInfoEXT> const &
objects_ ) VULKAN_HPP_NOEXCEPT
@@ -13661,7 +13980,8 @@ namespace VULKAN_HPP_NAMESPACE
pObjects = objects_.data();
return *this;
}
-#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
+# endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
+#endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
operator VkDebugUtilsMessengerCallbackDataEXT const &() const VULKAN_HPP_NOEXCEPT
{
@@ -13753,6 +14073,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
+#if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
DebugUtilsMessengerCreateInfoEXT & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
{
pNext = pNext_;
@@ -13792,6 +14113,7 @@ namespace VULKAN_HPP_NAMESPACE
pUserData = pUserData_;
return *this;
}
+#endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
operator VkDebugUtilsMessengerCreateInfoEXT const &() const VULKAN_HPP_NOEXCEPT
{
@@ -13889,6 +14211,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
+#if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
DebugUtilsObjectTagInfoEXT & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
{
pNext = pNext_;
@@ -13925,7 +14248,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
-#if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
+# if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
template <typename T>
DebugUtilsObjectTagInfoEXT &
setTag( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const T> const & tag_ ) VULKAN_HPP_NOEXCEPT
@@ -13934,7 +14257,8 @@ namespace VULKAN_HPP_NAMESPACE
pTag = tag_.data();
return *this;
}
-#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
+# endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
+#endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
operator VkDebugUtilsObjectTagInfoEXT const &() const VULKAN_HPP_NOEXCEPT
{
@@ -14012,6 +14336,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
+#if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
DedicatedAllocationBufferCreateInfoNV & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
{
pNext = pNext_;
@@ -14024,6 +14349,7 @@ namespace VULKAN_HPP_NAMESPACE
dedicatedAllocation = dedicatedAllocation_;
return *this;
}
+#endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
operator VkDedicatedAllocationBufferCreateInfoNV const &() const VULKAN_HPP_NOEXCEPT
{
@@ -14095,6 +14421,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
+#if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
DedicatedAllocationImageCreateInfoNV & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
{
pNext = pNext_;
@@ -14107,6 +14434,7 @@ namespace VULKAN_HPP_NAMESPACE
dedicatedAllocation = dedicatedAllocation_;
return *this;
}
+#endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
operator VkDedicatedAllocationImageCreateInfoNV const &() const VULKAN_HPP_NOEXCEPT
{
@@ -14181,6 +14509,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
+#if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
DedicatedAllocationMemoryAllocateInfoNV & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
{
pNext = pNext_;
@@ -14198,6 +14527,7 @@ namespace VULKAN_HPP_NAMESPACE
buffer = buffer_;
return *this;
}
+#endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
operator VkDedicatedAllocationMemoryAllocateInfoNV const &() const VULKAN_HPP_NOEXCEPT
{
@@ -14274,6 +14604,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
+#if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
MemoryBarrier2KHR & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
{
pNext = pNext_;
@@ -14305,6 +14636,7 @@ namespace VULKAN_HPP_NAMESPACE
dstAccessMask = dstAccessMask_;
return *this;
}
+#endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
operator VkMemoryBarrier2KHR const &() const VULKAN_HPP_NOEXCEPT
{
@@ -14381,6 +14713,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
+#if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
ImageSubresourceRange & setAspectMask( VULKAN_HPP_NAMESPACE::ImageAspectFlags aspectMask_ ) VULKAN_HPP_NOEXCEPT
{
aspectMask = aspectMask_;
@@ -14410,6 +14743,7 @@ namespace VULKAN_HPP_NAMESPACE
layerCount = layerCount_;
return *this;
}
+#endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
operator VkImageSubresourceRange const &() const VULKAN_HPP_NOEXCEPT
{
@@ -14493,6 +14827,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
+#if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
ImageMemoryBarrier2KHR & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
{
pNext = pNext_;
@@ -14563,6 +14898,7 @@ namespace VULKAN_HPP_NAMESPACE
subresourceRange = subresourceRange_;
return *this;
}
+#endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
operator VkImageMemoryBarrier2KHR const &() const VULKAN_HPP_NOEXCEPT
{
@@ -14675,6 +15011,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
+#if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
DependencyInfoKHR & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
{
pNext = pNext_;
@@ -14700,7 +15037,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
-#if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
+# if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
DependencyInfoKHR & setMemoryBarriers(
VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::MemoryBarrier2KHR> const &
memoryBarriers_ ) VULKAN_HPP_NOEXCEPT
@@ -14709,7 +15046,7 @@ namespace VULKAN_HPP_NAMESPACE
pMemoryBarriers = memoryBarriers_.data();
return *this;
}
-#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
+# endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
DependencyInfoKHR & setBufferMemoryBarrierCount( uint32_t bufferMemoryBarrierCount_ ) VULKAN_HPP_NOEXCEPT
{
@@ -14724,7 +15061,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
-#if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
+# if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
DependencyInfoKHR & setBufferMemoryBarriers(
VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::BufferMemoryBarrier2KHR> const &
bufferMemoryBarriers_ ) VULKAN_HPP_NOEXCEPT
@@ -14733,7 +15070,7 @@ namespace VULKAN_HPP_NAMESPACE
pBufferMemoryBarriers = bufferMemoryBarriers_.data();
return *this;
}
-#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
+# endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
DependencyInfoKHR & setImageMemoryBarrierCount( uint32_t imageMemoryBarrierCount_ ) VULKAN_HPP_NOEXCEPT
{
@@ -14748,7 +15085,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
-#if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
+# if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
DependencyInfoKHR & setImageMemoryBarriers(
VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::ImageMemoryBarrier2KHR> const &
imageMemoryBarriers_ ) VULKAN_HPP_NOEXCEPT
@@ -14757,7 +15094,8 @@ namespace VULKAN_HPP_NAMESPACE
pImageMemoryBarriers = imageMemoryBarriers_.data();
return *this;
}
-#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
+# endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
+#endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
operator VkDependencyInfoKHR const &() const VULKAN_HPP_NOEXCEPT
{
@@ -14836,6 +15174,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
+#if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
DescriptorBufferInfo & setBuffer( VULKAN_HPP_NAMESPACE::Buffer buffer_ ) VULKAN_HPP_NOEXCEPT
{
buffer = buffer_;
@@ -14853,6 +15192,7 @@ namespace VULKAN_HPP_NAMESPACE
range = range_;
return *this;
}
+#endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
operator VkDescriptorBufferInfo const &() const VULKAN_HPP_NOEXCEPT
{
@@ -14915,6 +15255,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
+#if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
DescriptorImageInfo & setSampler( VULKAN_HPP_NAMESPACE::Sampler sampler_ ) VULKAN_HPP_NOEXCEPT
{
sampler = sampler_;
@@ -14932,6 +15273,7 @@ namespace VULKAN_HPP_NAMESPACE
imageLayout = imageLayout_;
return *this;
}
+#endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
operator VkDescriptorImageInfo const &() const VULKAN_HPP_NOEXCEPT
{
@@ -14992,6 +15334,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
+#if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
DescriptorPoolSize & setType( VULKAN_HPP_NAMESPACE::DescriptorType type_ ) VULKAN_HPP_NOEXCEPT
{
type = type_;
@@ -15003,6 +15346,7 @@ namespace VULKAN_HPP_NAMESPACE
descriptorCount = descriptorCount_;
return *this;
}
+#endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
operator VkDescriptorPoolSize const &() const VULKAN_HPP_NOEXCEPT
{
@@ -15081,6 +15425,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
+#if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
DescriptorPoolCreateInfo & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
{
pNext = pNext_;
@@ -15112,7 +15457,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
-#if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
+# if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
DescriptorPoolCreateInfo & setPoolSizes(
VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::DescriptorPoolSize> const & poolSizes_ )
VULKAN_HPP_NOEXCEPT
@@ -15121,7 +15466,8 @@ namespace VULKAN_HPP_NAMESPACE
pPoolSizes = poolSizes_.data();
return *this;
}
-#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
+# endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
+#endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
operator VkDescriptorPoolCreateInfo const &() const VULKAN_HPP_NOEXCEPT
{
@@ -15198,6 +15544,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
+#if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
DescriptorPoolInlineUniformBlockCreateInfoEXT & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
{
pNext = pNext_;
@@ -15210,6 +15557,7 @@ namespace VULKAN_HPP_NAMESPACE
maxInlineUniformBlockBindings = maxInlineUniformBlockBindings_;
return *this;
}
+#endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
operator VkDescriptorPoolInlineUniformBlockCreateInfoEXT const &() const VULKAN_HPP_NOEXCEPT
{
@@ -15296,6 +15644,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
+#if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
DescriptorSetAllocateInfo & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
{
pNext = pNext_;
@@ -15322,7 +15671,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
-#if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
+# if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
DescriptorSetAllocateInfo & setSetLayouts(
VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::DescriptorSetLayout> const &
setLayouts_ ) VULKAN_HPP_NOEXCEPT
@@ -15331,7 +15680,8 @@ namespace VULKAN_HPP_NAMESPACE
pSetLayouts = setLayouts_.data();
return *this;
}
-#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
+# endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
+#endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
operator VkDescriptorSetAllocateInfo const &() const VULKAN_HPP_NOEXCEPT
{
@@ -15423,6 +15773,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
+#if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
DescriptorSetLayoutBinding & setBinding( uint32_t binding_ ) VULKAN_HPP_NOEXCEPT
{
binding = binding_;
@@ -15455,7 +15806,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
-#if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
+# if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
DescriptorSetLayoutBinding & setImmutableSamplers(
VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::Sampler> const & immutableSamplers_ )
VULKAN_HPP_NOEXCEPT
@@ -15464,7 +15815,8 @@ namespace VULKAN_HPP_NAMESPACE
pImmutableSamplers = immutableSamplers_.data();
return *this;
}
-#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
+# endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
+#endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
operator VkDescriptorSetLayoutBinding const &() const VULKAN_HPP_NOEXCEPT
{
@@ -15546,6 +15898,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
+#if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
DescriptorSetLayoutBindingFlagsCreateInfo & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
{
pNext = pNext_;
@@ -15565,7 +15918,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
-#if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
+# if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
DescriptorSetLayoutBindingFlagsCreateInfo & setBindingFlags(
VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::DescriptorBindingFlags> const &
bindingFlags_ ) VULKAN_HPP_NOEXCEPT
@@ -15574,7 +15927,8 @@ namespace VULKAN_HPP_NAMESPACE
pBindingFlags = bindingFlags_.data();
return *this;
}
-#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
+# endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
+#endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
operator VkDescriptorSetLayoutBindingFlagsCreateInfo const &() const VULKAN_HPP_NOEXCEPT
{
@@ -15661,6 +16015,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
+#if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
DescriptorSetLayoutCreateInfo & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
{
pNext = pNext_;
@@ -15687,7 +16042,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
-#if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
+# if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
DescriptorSetLayoutCreateInfo & setBindings(
VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::DescriptorSetLayoutBinding> const &
bindings_ ) VULKAN_HPP_NOEXCEPT
@@ -15696,7 +16051,8 @@ namespace VULKAN_HPP_NAMESPACE
pBindings = bindings_.data();
return *this;
}
-#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
+# endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
+#endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
operator VkDescriptorSetLayoutCreateInfo const &() const VULKAN_HPP_NOEXCEPT
{
@@ -15851,6 +16207,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
+#if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
DescriptorSetVariableDescriptorCountAllocateInfo & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
{
pNext = pNext_;
@@ -15871,7 +16228,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
-#if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
+# if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
DescriptorSetVariableDescriptorCountAllocateInfo & setDescriptorCounts(
VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const uint32_t> const & descriptorCounts_ ) VULKAN_HPP_NOEXCEPT
{
@@ -15879,7 +16236,8 @@ namespace VULKAN_HPP_NAMESPACE
pDescriptorCounts = descriptorCounts_.data();
return *this;
}
-#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
+# endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
+#endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
operator VkDescriptorSetVariableDescriptorCountAllocateInfo const &() const VULKAN_HPP_NOEXCEPT
{
@@ -16036,6 +16394,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
+#if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
DescriptorUpdateTemplateEntry & setDstBinding( uint32_t dstBinding_ ) VULKAN_HPP_NOEXCEPT
{
dstBinding = dstBinding_;
@@ -16072,6 +16431,7 @@ namespace VULKAN_HPP_NAMESPACE
stride = stride_;
return *this;
}
+#endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
operator VkDescriptorUpdateTemplateEntry const &() const VULKAN_HPP_NOEXCEPT
{
@@ -16180,6 +16540,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
+#if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
DescriptorUpdateTemplateCreateInfo & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
{
pNext = pNext_;
@@ -16207,7 +16568,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
-#if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
+# if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
DescriptorUpdateTemplateCreateInfo & setDescriptorUpdateEntries(
VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplateEntry> const &
descriptorUpdateEntries_ ) VULKAN_HPP_NOEXCEPT
@@ -16216,7 +16577,7 @@ namespace VULKAN_HPP_NAMESPACE
pDescriptorUpdateEntries = descriptorUpdateEntries_.data();
return *this;
}
-#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
+# endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
DescriptorUpdateTemplateCreateInfo &
setTemplateType( VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplateType templateType_ ) VULKAN_HPP_NOEXCEPT
@@ -16251,6 +16612,7 @@ namespace VULKAN_HPP_NAMESPACE
set = set_;
return *this;
}
+#endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
operator VkDescriptorUpdateTemplateCreateInfo const &() const VULKAN_HPP_NOEXCEPT
{
@@ -16348,6 +16710,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
+#if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
DeviceQueueCreateInfo & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
{
pNext = pNext_;
@@ -16378,7 +16741,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
-#if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
+# if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
DeviceQueueCreateInfo & setQueuePriorities(
VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const float> const & queuePriorities_ ) VULKAN_HPP_NOEXCEPT
{
@@ -16386,7 +16749,8 @@ namespace VULKAN_HPP_NAMESPACE
pQueuePriorities = queuePriorities_.data();
return *this;
}
-#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
+# endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
+#endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
operator VkDeviceQueueCreateInfo const &() const VULKAN_HPP_NOEXCEPT
{
@@ -16564,6 +16928,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
+#if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
PhysicalDeviceFeatures &
setRobustBufferAccess( VULKAN_HPP_NAMESPACE::Bool32 robustBufferAccess_ ) VULKAN_HPP_NOEXCEPT
{
@@ -16927,6 +17292,7 @@ namespace VULKAN_HPP_NAMESPACE
inheritedQueries = inheritedQueries_;
return *this;
}
+#endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
operator VkPhysicalDeviceFeatures const &() const VULKAN_HPP_NOEXCEPT
{
@@ -17111,6 +17477,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
+#if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
DeviceCreateInfo & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
{
pNext = pNext_;
@@ -17136,7 +17503,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
-#if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
+# if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
DeviceCreateInfo & setQueueCreateInfos(
VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::DeviceQueueCreateInfo> const &
queueCreateInfos_ ) VULKAN_HPP_NOEXCEPT
@@ -17145,7 +17512,7 @@ namespace VULKAN_HPP_NAMESPACE
pQueueCreateInfos = queueCreateInfos_.data();
return *this;
}
-#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
+# endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
DeviceCreateInfo & setEnabledLayerCount( uint32_t enabledLayerCount_ ) VULKAN_HPP_NOEXCEPT
{
@@ -17159,7 +17526,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
-#if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
+# if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
DeviceCreateInfo & setPEnabledLayerNames( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const char * const> const &
pEnabledLayerNames_ ) VULKAN_HPP_NOEXCEPT
{
@@ -17167,7 +17534,7 @@ namespace VULKAN_HPP_NAMESPACE
ppEnabledLayerNames = pEnabledLayerNames_.data();
return *this;
}
-#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
+# endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
DeviceCreateInfo & setEnabledExtensionCount( uint32_t enabledExtensionCount_ ) VULKAN_HPP_NOEXCEPT
{
@@ -17181,7 +17548,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
-#if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
+# if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
DeviceCreateInfo & setPEnabledExtensionNames(
VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const char * const> const & pEnabledExtensionNames_ )
VULKAN_HPP_NOEXCEPT
@@ -17190,7 +17557,7 @@ namespace VULKAN_HPP_NAMESPACE
ppEnabledExtensionNames = pEnabledExtensionNames_.data();
return *this;
}
-#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
+# endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
DeviceCreateInfo &
setPEnabledFeatures( const VULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures * pEnabledFeatures_ ) VULKAN_HPP_NOEXCEPT
@@ -17198,6 +17565,7 @@ namespace VULKAN_HPP_NAMESPACE
pEnabledFeatures = pEnabledFeatures_;
return *this;
}
+#endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
operator VkDeviceCreateInfo const &() const VULKAN_HPP_NOEXCEPT
{
@@ -17284,6 +17652,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
+#if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
DeviceDeviceMemoryReportCreateInfoEXT & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
{
pNext = pNext_;
@@ -17309,6 +17678,7 @@ namespace VULKAN_HPP_NAMESPACE
pUserData = pUserData_;
return *this;
}
+#endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
operator VkDeviceDeviceMemoryReportCreateInfoEXT const &() const VULKAN_HPP_NOEXCEPT
{
@@ -17382,6 +17752,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
+#if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
DeviceDiagnosticsConfigCreateInfoNV & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
{
pNext = pNext_;
@@ -17394,6 +17765,7 @@ namespace VULKAN_HPP_NAMESPACE
flags = flags_;
return *this;
}
+#endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
operator VkDeviceDiagnosticsConfigCreateInfoNV const &() const VULKAN_HPP_NOEXCEPT
{
@@ -17463,6 +17835,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
+#if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
DeviceEventInfoEXT & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
{
pNext = pNext_;
@@ -17474,6 +17847,7 @@ namespace VULKAN_HPP_NAMESPACE
deviceEvent = deviceEvent_;
return *this;
}
+#endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
operator VkDeviceEventInfoEXT const &() const VULKAN_HPP_NOEXCEPT
{
@@ -17543,6 +17917,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
+#if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
DeviceGroupBindSparseInfo & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
{
pNext = pNext_;
@@ -17560,6 +17935,7 @@ namespace VULKAN_HPP_NAMESPACE
memoryDeviceIndex = memoryDeviceIndex_;
return *this;
}
+#endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
operator VkDeviceGroupBindSparseInfo const &() const VULKAN_HPP_NOEXCEPT
{
@@ -17632,6 +18008,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
+#if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
DeviceGroupCommandBufferBeginInfo & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
{
pNext = pNext_;
@@ -17643,6 +18020,7 @@ namespace VULKAN_HPP_NAMESPACE
deviceMask = deviceMask_;
return *this;
}
+#endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
operator VkDeviceGroupCommandBufferBeginInfo const &() const VULKAN_HPP_NOEXCEPT
{
@@ -17724,6 +18102,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
+#if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
DeviceGroupDeviceCreateInfo & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
{
pNext = pNext_;
@@ -17743,7 +18122,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
-#if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
+# if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
DeviceGroupDeviceCreateInfo & setPhysicalDevices(
VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::PhysicalDevice> const &
physicalDevices_ ) VULKAN_HPP_NOEXCEPT
@@ -17752,7 +18131,8 @@ namespace VULKAN_HPP_NAMESPACE
pPhysicalDevices = physicalDevices_.data();
return *this;
}
-#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
+# endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
+#endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
operator VkDeviceGroupDeviceCreateInfo const &() const VULKAN_HPP_NOEXCEPT
{
@@ -17855,7 +18235,7 @@ namespace VULKAN_HPP_NAMESPACE
public:
VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eDeviceGroupPresentCapabilitiesKHR;
- const void * pNext = {};
+ void * pNext = {};
VULKAN_HPP_NAMESPACE::ArrayWrapper1D<uint32_t, VK_MAX_DEVICE_GROUP_SIZE> presentMask = {};
VULKAN_HPP_NAMESPACE::DeviceGroupPresentModeFlagsKHR modes = {};
};
@@ -17913,6 +18293,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
+#if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
DeviceGroupPresentInfoKHR & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
{
pNext = pNext_;
@@ -17931,7 +18312,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
-#if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
+# if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
DeviceGroupPresentInfoKHR & setDeviceMasks(
VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const uint32_t> const & deviceMasks_ ) VULKAN_HPP_NOEXCEPT
{
@@ -17939,7 +18320,7 @@ namespace VULKAN_HPP_NAMESPACE
pDeviceMasks = deviceMasks_.data();
return *this;
}
-#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
+# endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
DeviceGroupPresentInfoKHR &
setMode( VULKAN_HPP_NAMESPACE::DeviceGroupPresentModeFlagBitsKHR mode_ ) VULKAN_HPP_NOEXCEPT
@@ -17947,6 +18328,7 @@ namespace VULKAN_HPP_NAMESPACE
mode = mode_;
return *this;
}
+#endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
operator VkDeviceGroupPresentInfoKHR const &() const VULKAN_HPP_NOEXCEPT
{
@@ -18034,6 +18416,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
+#if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
DeviceGroupRenderPassBeginInfo & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
{
pNext = pNext_;
@@ -18059,7 +18442,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
-#if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
+# if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
DeviceGroupRenderPassBeginInfo & setDeviceRenderAreas(
VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::Rect2D> const & deviceRenderAreas_ )
VULKAN_HPP_NOEXCEPT
@@ -18068,7 +18451,8 @@ namespace VULKAN_HPP_NAMESPACE
pDeviceRenderAreas = deviceRenderAreas_.data();
return *this;
}
-#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
+# endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
+#endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
operator VkDeviceGroupRenderPassBeginInfo const &() const VULKAN_HPP_NOEXCEPT
{
@@ -18165,6 +18549,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
+#if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
DeviceGroupSubmitInfo & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
{
pNext = pNext_;
@@ -18184,7 +18569,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
-#if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
+# if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
DeviceGroupSubmitInfo & setWaitSemaphoreDeviceIndices(
VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const uint32_t> const & waitSemaphoreDeviceIndices_ )
VULKAN_HPP_NOEXCEPT
@@ -18193,7 +18578,7 @@ namespace VULKAN_HPP_NAMESPACE
pWaitSemaphoreDeviceIndices = waitSemaphoreDeviceIndices_.data();
return *this;
}
-#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
+# endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
DeviceGroupSubmitInfo & setCommandBufferCount( uint32_t commandBufferCount_ ) VULKAN_HPP_NOEXCEPT
{
@@ -18208,7 +18593,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
-#if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
+# if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
DeviceGroupSubmitInfo & setCommandBufferDeviceMasks(
VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const uint32_t> const & commandBufferDeviceMasks_ )
VULKAN_HPP_NOEXCEPT
@@ -18217,7 +18602,7 @@ namespace VULKAN_HPP_NAMESPACE
pCommandBufferDeviceMasks = commandBufferDeviceMasks_.data();
return *this;
}
-#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
+# endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
DeviceGroupSubmitInfo & setSignalSemaphoreCount( uint32_t signalSemaphoreCount_ ) VULKAN_HPP_NOEXCEPT
{
@@ -18232,7 +18617,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
-#if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
+# if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
DeviceGroupSubmitInfo & setSignalSemaphoreDeviceIndices(
VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const uint32_t> const & signalSemaphoreDeviceIndices_ )
VULKAN_HPP_NOEXCEPT
@@ -18241,7 +18626,8 @@ namespace VULKAN_HPP_NAMESPACE
pSignalSemaphoreDeviceIndices = signalSemaphoreDeviceIndices_.data();
return *this;
}
-#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
+# endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
+#endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
operator VkDeviceGroupSubmitInfo const &() const VULKAN_HPP_NOEXCEPT
{
@@ -18321,6 +18707,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
+#if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
DeviceGroupSwapchainCreateInfoKHR & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
{
pNext = pNext_;
@@ -18333,6 +18720,7 @@ namespace VULKAN_HPP_NAMESPACE
modes = modes_;
return *this;
}
+#endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
operator VkDeviceGroupSwapchainCreateInfoKHR const &() const VULKAN_HPP_NOEXCEPT
{
@@ -18404,6 +18792,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
+#if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
DeviceMemoryOpaqueCaptureAddressInfo & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
{
pNext = pNext_;
@@ -18415,6 +18804,7 @@ namespace VULKAN_HPP_NAMESPACE
memory = memory_;
return *this;
}
+#endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
operator VkDeviceMemoryOpaqueCaptureAddressInfo const &() const VULKAN_HPP_NOEXCEPT
{
@@ -18489,6 +18879,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
+#if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
DeviceMemoryOverallocationCreateInfoAMD & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
{
pNext = pNext_;
@@ -18501,6 +18892,7 @@ namespace VULKAN_HPP_NAMESPACE
overallocationBehavior = overallocationBehavior_;
return *this;
}
+#endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
operator VkDeviceMemoryOverallocationCreateInfoAMD const &() const VULKAN_HPP_NOEXCEPT
{
@@ -18615,7 +19007,7 @@ namespace VULKAN_HPP_NAMESPACE
public:
VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eDeviceMemoryReportCallbackDataEXT;
- const void * pNext = {};
+ void * pNext = {};
VULKAN_HPP_NAMESPACE::DeviceMemoryReportFlagsEXT flags = {};
VULKAN_HPP_NAMESPACE::DeviceMemoryReportEventTypeEXT type =
VULKAN_HPP_NAMESPACE::DeviceMemoryReportEventTypeEXT::eAllocate;
@@ -18664,6 +19056,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
+#if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
DevicePrivateDataCreateInfoEXT & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
{
pNext = pNext_;
@@ -18676,6 +19069,7 @@ namespace VULKAN_HPP_NAMESPACE
privateDataSlotRequestCount = privateDataSlotRequestCount_;
return *this;
}
+#endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
operator VkDevicePrivateDataCreateInfoEXT const &() const VULKAN_HPP_NOEXCEPT
{
@@ -18750,6 +19144,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
+#if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
DeviceQueueGlobalPriorityCreateInfoEXT & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
{
pNext = pNext_;
@@ -18762,6 +19157,7 @@ namespace VULKAN_HPP_NAMESPACE
globalPriority = globalPriority_;
return *this;
}
+#endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
operator VkDeviceQueueGlobalPriorityCreateInfoEXT const &() const VULKAN_HPP_NOEXCEPT
{
@@ -18832,6 +19228,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
+#if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
DeviceQueueInfo2 & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
{
pNext = pNext_;
@@ -18855,6 +19252,7 @@ namespace VULKAN_HPP_NAMESPACE
queueIndex = queueIndex_;
return *this;
}
+#endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
operator VkDeviceQueueInfo2 const &() const VULKAN_HPP_NOEXCEPT
{
@@ -18930,6 +19328,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
+# if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
DirectFBSurfaceCreateInfoEXT & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
{
pNext = pNext_;
@@ -18954,6 +19353,7 @@ namespace VULKAN_HPP_NAMESPACE
surface = surface_;
return *this;
}
+# endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
operator VkDirectFBSurfaceCreateInfoEXT const &() const VULKAN_HPP_NOEXCEPT
{
@@ -19025,6 +19425,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
+#if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
DispatchIndirectCommand & setX( uint32_t x_ ) VULKAN_HPP_NOEXCEPT
{
x = x_;
@@ -19042,6 +19443,7 @@ namespace VULKAN_HPP_NAMESPACE
z = z_;
return *this;
}
+#endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
operator VkDispatchIndirectCommand const &() const VULKAN_HPP_NOEXCEPT
{
@@ -19104,6 +19506,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
+#if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
DisplayEventInfoEXT & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
{
pNext = pNext_;
@@ -19115,6 +19518,7 @@ namespace VULKAN_HPP_NAMESPACE
displayEvent = displayEvent_;
return *this;
}
+#endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
operator VkDisplayEventInfoEXT const &() const VULKAN_HPP_NOEXCEPT
{
@@ -19180,6 +19584,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
+#if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
DisplayModeParametersKHR &
setVisibleRegion( VULKAN_HPP_NAMESPACE::Extent2D const & visibleRegion_ ) VULKAN_HPP_NOEXCEPT
{
@@ -19192,6 +19597,7 @@ namespace VULKAN_HPP_NAMESPACE
refreshRate = refreshRate_;
return *this;
}
+#endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
operator VkDisplayModeParametersKHR const &() const VULKAN_HPP_NOEXCEPT
{
@@ -19254,6 +19660,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
+#if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
DisplayModeCreateInfoKHR & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
{
pNext = pNext_;
@@ -19272,6 +19679,7 @@ namespace VULKAN_HPP_NAMESPACE
parameters = parameters_;
return *this;
}
+#endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
operator VkDisplayModeCreateInfoKHR const &() const VULKAN_HPP_NOEXCEPT
{
@@ -19692,6 +20100,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
+#if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
DisplayPlaneInfo2KHR & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
{
pNext = pNext_;
@@ -19709,6 +20118,7 @@ namespace VULKAN_HPP_NAMESPACE
planeIndex = planeIndex_;
return *this;
}
+#endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
operator VkDisplayPlaneInfo2KHR const &() const VULKAN_HPP_NOEXCEPT
{
@@ -19906,6 +20316,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
+#if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
DisplayPowerInfoEXT & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
{
pNext = pNext_;
@@ -19917,6 +20328,7 @@ namespace VULKAN_HPP_NAMESPACE
powerState = powerState_;
return *this;
}
+#endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
operator VkDisplayPowerInfoEXT const &() const VULKAN_HPP_NOEXCEPT
{
@@ -19987,6 +20399,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
+#if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
DisplayPresentInfoKHR & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
{
pNext = pNext_;
@@ -20010,6 +20423,7 @@ namespace VULKAN_HPP_NAMESPACE
persistent = persistent_;
return *this;
}
+#endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
operator VkDisplayPresentInfoKHR const &() const VULKAN_HPP_NOEXCEPT
{
@@ -20239,6 +20653,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
+#if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
DisplaySurfaceCreateInfoKHR & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
{
pNext = pNext_;
@@ -20297,6 +20712,7 @@ namespace VULKAN_HPP_NAMESPACE
imageExtent = imageExtent_;
return *this;
}
+#endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
operator VkDisplaySurfaceCreateInfoKHR const &() const VULKAN_HPP_NOEXCEPT
{
@@ -20382,6 +20798,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
+#if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
DrawIndexedIndirectCommand & setIndexCount( uint32_t indexCount_ ) VULKAN_HPP_NOEXCEPT
{
indexCount = indexCount_;
@@ -20411,6 +20828,7 @@ namespace VULKAN_HPP_NAMESPACE
firstInstance = firstInstance_;
return *this;
}
+#endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
operator VkDrawIndexedIndirectCommand const &() const VULKAN_HPP_NOEXCEPT
{
@@ -20479,6 +20897,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
+#if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
DrawIndirectCommand & setVertexCount( uint32_t vertexCount_ ) VULKAN_HPP_NOEXCEPT
{
vertexCount = vertexCount_;
@@ -20502,6 +20921,7 @@ namespace VULKAN_HPP_NAMESPACE
firstInstance = firstInstance_;
return *this;
}
+#endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
operator VkDrawIndirectCommand const &() const VULKAN_HPP_NOEXCEPT
{
@@ -20564,6 +20984,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
+#if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
DrawMeshTasksIndirectCommandNV & setTaskCount( uint32_t taskCount_ ) VULKAN_HPP_NOEXCEPT
{
taskCount = taskCount_;
@@ -20575,6 +20996,7 @@ namespace VULKAN_HPP_NAMESPACE
firstTask = firstTask_;
return *this;
}
+#endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
operator VkDrawMeshTasksIndirectCommandNV const &() const VULKAN_HPP_NOEXCEPT
{
@@ -20783,6 +21205,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
+#if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
EventCreateInfo & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
{
pNext = pNext_;
@@ -20794,6 +21217,7 @@ namespace VULKAN_HPP_NAMESPACE
flags = flags_;
return *this;
}
+#endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
operator VkEventCreateInfo const &() const VULKAN_HPP_NOEXCEPT
{
@@ -20860,6 +21284,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
+#if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
ExportFenceCreateInfo & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
{
pNext = pNext_;
@@ -20872,6 +21297,7 @@ namespace VULKAN_HPP_NAMESPACE
handleTypes = handleTypes_;
return *this;
}
+#endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
operator VkExportFenceCreateInfo const &() const VULKAN_HPP_NOEXCEPT
{
@@ -20945,6 +21371,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
+# if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
ExportFenceWin32HandleInfoKHR & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
{
pNext = pNext_;
@@ -20968,6 +21395,7 @@ namespace VULKAN_HPP_NAMESPACE
name = name_;
return *this;
}
+# endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
operator VkExportFenceWin32HandleInfoKHR const &() const VULKAN_HPP_NOEXCEPT
{
@@ -21040,6 +21468,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
+#if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
ExportMemoryAllocateInfo & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
{
pNext = pNext_;
@@ -21052,6 +21481,7 @@ namespace VULKAN_HPP_NAMESPACE
handleTypes = handleTypes_;
return *this;
}
+#endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
operator VkExportMemoryAllocateInfo const &() const VULKAN_HPP_NOEXCEPT
{
@@ -21121,6 +21551,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
+#if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
ExportMemoryAllocateInfoNV & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
{
pNext = pNext_;
@@ -21133,6 +21564,7 @@ namespace VULKAN_HPP_NAMESPACE
handleTypes = handleTypes_;
return *this;
}
+#endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
operator VkExportMemoryAllocateInfoNV const &() const VULKAN_HPP_NOEXCEPT
{
@@ -21206,6 +21638,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
+# if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
ExportMemoryWin32HandleInfoKHR & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
{
pNext = pNext_;
@@ -21229,6 +21662,7 @@ namespace VULKAN_HPP_NAMESPACE
name = name_;
return *this;
}
+# endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
operator VkExportMemoryWin32HandleInfoKHR const &() const VULKAN_HPP_NOEXCEPT
{
@@ -21304,6 +21738,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
+# if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
ExportMemoryWin32HandleInfoNV & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
{
pNext = pNext_;
@@ -21321,6 +21756,7 @@ namespace VULKAN_HPP_NAMESPACE
dwAccess = dwAccess_;
return *this;
}
+# endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
operator VkExportMemoryWin32HandleInfoNV const &() const VULKAN_HPP_NOEXCEPT
{
@@ -21393,6 +21829,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
+#if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
ExportSemaphoreCreateInfo & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
{
pNext = pNext_;
@@ -21405,6 +21842,7 @@ namespace VULKAN_HPP_NAMESPACE
handleTypes = handleTypes_;
return *this;
}
+#endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
operator VkExportSemaphoreCreateInfo const &() const VULKAN_HPP_NOEXCEPT
{
@@ -21480,6 +21918,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
+# if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
ExportSemaphoreWin32HandleInfoKHR & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
{
pNext = pNext_;
@@ -21503,6 +21942,7 @@ namespace VULKAN_HPP_NAMESPACE
name = name_;
return *this;
}
+# endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
operator VkExportSemaphoreWin32HandleInfoKHR const &() const VULKAN_HPP_NOEXCEPT
{
@@ -21841,6 +22281,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
+# if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
ExternalFormatANDROID & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
{
pNext = pNext_;
@@ -21852,6 +22293,7 @@ namespace VULKAN_HPP_NAMESPACE
externalFormat = externalFormat_;
return *this;
}
+# endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
operator VkExternalFormatANDROID const &() const VULKAN_HPP_NOEXCEPT
{
@@ -22129,6 +22571,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
+#if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
ExternalMemoryBufferCreateInfo & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
{
pNext = pNext_;
@@ -22141,6 +22584,7 @@ namespace VULKAN_HPP_NAMESPACE
handleTypes = handleTypes_;
return *this;
}
+#endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
operator VkExternalMemoryBufferCreateInfo const &() const VULKAN_HPP_NOEXCEPT
{
@@ -22211,6 +22655,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
+#if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
ExternalMemoryImageCreateInfo & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
{
pNext = pNext_;
@@ -22223,6 +22668,7 @@ namespace VULKAN_HPP_NAMESPACE
handleTypes = handleTypes_;
return *this;
}
+#endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
operator VkExternalMemoryImageCreateInfo const &() const VULKAN_HPP_NOEXCEPT
{
@@ -22293,6 +22739,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
+#if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
ExternalMemoryImageCreateInfoNV & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
{
pNext = pNext_;
@@ -22305,6 +22752,7 @@ namespace VULKAN_HPP_NAMESPACE
handleTypes = handleTypes_;
return *this;
}
+#endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
operator VkExternalMemoryImageCreateInfoNV const &() const VULKAN_HPP_NOEXCEPT
{
@@ -22449,6 +22897,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
+#if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
FenceCreateInfo & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
{
pNext = pNext_;
@@ -22460,6 +22909,7 @@ namespace VULKAN_HPP_NAMESPACE
flags = flags_;
return *this;
}
+#endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
operator VkFenceCreateInfo const &() const VULKAN_HPP_NOEXCEPT
{
@@ -22529,6 +22979,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
+#if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
FenceGetFdInfoKHR & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
{
pNext = pNext_;
@@ -22547,6 +22998,7 @@ namespace VULKAN_HPP_NAMESPACE
handleType = handleType_;
return *this;
}
+#endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
operator VkFenceGetFdInfoKHR const &() const VULKAN_HPP_NOEXCEPT
{
@@ -22622,6 +23074,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
+# if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
FenceGetWin32HandleInfoKHR & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
{
pNext = pNext_;
@@ -22640,6 +23093,7 @@ namespace VULKAN_HPP_NAMESPACE
handleType = handleType_;
return *this;
}
+# endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
operator VkFenceGetWin32HandleInfoKHR const &() const VULKAN_HPP_NOEXCEPT
{
@@ -22922,6 +23376,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
+#if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
FragmentShadingRateAttachmentInfoKHR & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
{
pNext = pNext_;
@@ -22941,6 +23396,7 @@ namespace VULKAN_HPP_NAMESPACE
shadingRateAttachmentTexelSize = shadingRateAttachmentTexelSize_;
return *this;
}
+#endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
operator VkFragmentShadingRateAttachmentInfoKHR const &() const VULKAN_HPP_NOEXCEPT
{
@@ -23043,6 +23499,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
+#if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
FramebufferAttachmentImageInfo & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
{
pNext = pNext_;
@@ -23092,7 +23549,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
-#if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
+# if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
FramebufferAttachmentImageInfo & setViewFormats(
VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::Format> const & viewFormats_ )
VULKAN_HPP_NOEXCEPT
@@ -23101,7 +23558,8 @@ namespace VULKAN_HPP_NAMESPACE
pViewFormats = viewFormats_.data();
return *this;
}
-#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
+# endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
+#endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
operator VkFramebufferAttachmentImageInfo const &() const VULKAN_HPP_NOEXCEPT
{
@@ -23191,6 +23649,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
+#if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
FramebufferAttachmentsCreateInfo & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
{
pNext = pNext_;
@@ -23211,7 +23670,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
-#if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
+# if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
FramebufferAttachmentsCreateInfo & setAttachmentImageInfos(
VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::FramebufferAttachmentImageInfo> const &
attachmentImageInfos_ ) VULKAN_HPP_NOEXCEPT
@@ -23220,7 +23679,8 @@ namespace VULKAN_HPP_NAMESPACE
pAttachmentImageInfos = attachmentImageInfos_.data();
return *this;
}
-#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
+# endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
+#endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
operator VkFramebufferAttachmentsCreateInfo const &() const VULKAN_HPP_NOEXCEPT
{
@@ -23322,6 +23782,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
+#if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
FramebufferCreateInfo & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
{
pNext = pNext_;
@@ -23352,7 +23813,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
-#if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
+# if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
FramebufferCreateInfo & setAttachments(
VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::ImageView> const & attachments_ )
VULKAN_HPP_NOEXCEPT
@@ -23361,7 +23822,7 @@ namespace VULKAN_HPP_NAMESPACE
pAttachments = attachments_.data();
return *this;
}
-#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
+# endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
FramebufferCreateInfo & setWidth( uint32_t width_ ) VULKAN_HPP_NOEXCEPT
{
@@ -23380,6 +23841,7 @@ namespace VULKAN_HPP_NAMESPACE
layers = layers_;
return *this;
}
+#endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
operator VkFramebufferCreateInfo const &() const VULKAN_HPP_NOEXCEPT
{
@@ -23538,6 +24000,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
+#if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
IndirectCommandsStreamNV & setBuffer( VULKAN_HPP_NAMESPACE::Buffer buffer_ ) VULKAN_HPP_NOEXCEPT
{
buffer = buffer_;
@@ -23549,6 +24012,7 @@ namespace VULKAN_HPP_NAMESPACE
offset = offset_;
return *this;
}
+#endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
operator VkIndirectCommandsStreamNV const &() const VULKAN_HPP_NOEXCEPT
{
@@ -23664,6 +24128,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
+#if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
GeneratedCommandsInfoNV & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
{
pNext = pNext_;
@@ -23703,7 +24168,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
-#if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
+# if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
GeneratedCommandsInfoNV & setStreams(
VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::IndirectCommandsStreamNV> const &
streams_ ) VULKAN_HPP_NOEXCEPT
@@ -23712,7 +24177,7 @@ namespace VULKAN_HPP_NAMESPACE
pStreams = streams_.data();
return *this;
}
-#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
+# endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
GeneratedCommandsInfoNV & setSequencesCount( uint32_t sequencesCount_ ) VULKAN_HPP_NOEXCEPT
{
@@ -23766,6 +24231,7 @@ namespace VULKAN_HPP_NAMESPACE
sequencesIndexOffset = sequencesIndexOffset_;
return *this;
}
+#endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
operator VkGeneratedCommandsInfoNV const &() const VULKAN_HPP_NOEXCEPT
{
@@ -23864,6 +24330,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
+#if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
GeneratedCommandsMemoryRequirementsInfoNV & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
{
pNext = pNext_;
@@ -23896,6 +24363,7 @@ namespace VULKAN_HPP_NAMESPACE
maxSequencesCount = maxSequencesCount_;
return *this;
}
+#endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
operator VkGeneratedCommandsMemoryRequirementsInfoNV const &() const VULKAN_HPP_NOEXCEPT
{
@@ -23973,6 +24441,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
+#if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
VertexInputBindingDescription & setBinding( uint32_t binding_ ) VULKAN_HPP_NOEXCEPT
{
binding = binding_;
@@ -23990,6 +24459,7 @@ namespace VULKAN_HPP_NAMESPACE
inputRate = inputRate_;
return *this;
}
+#endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
operator VkVertexInputBindingDescription const &() const VULKAN_HPP_NOEXCEPT
{
@@ -24056,6 +24526,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
+#if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
VertexInputAttributeDescription & setLocation( uint32_t location_ ) VULKAN_HPP_NOEXCEPT
{
location = location_;
@@ -24079,6 +24550,7 @@ namespace VULKAN_HPP_NAMESPACE
offset = offset_;
return *this;
}
+#endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
operator VkVertexInputAttributeDescription const &() const VULKAN_HPP_NOEXCEPT
{
@@ -24170,6 +24642,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
+#if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
PipelineVertexInputStateCreateInfo & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
{
pNext = pNext_;
@@ -24197,7 +24670,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
-#if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
+# if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
PipelineVertexInputStateCreateInfo & setVertexBindingDescriptions(
VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::VertexInputBindingDescription> const &
vertexBindingDescriptions_ ) VULKAN_HPP_NOEXCEPT
@@ -24206,7 +24679,7 @@ namespace VULKAN_HPP_NAMESPACE
pVertexBindingDescriptions = vertexBindingDescriptions_.data();
return *this;
}
-#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
+# endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
PipelineVertexInputStateCreateInfo &
setVertexAttributeDescriptionCount( uint32_t vertexAttributeDescriptionCount_ ) VULKAN_HPP_NOEXCEPT
@@ -24222,7 +24695,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
-#if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
+# if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
PipelineVertexInputStateCreateInfo & setVertexAttributeDescriptions(
VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::VertexInputAttributeDescription> const &
vertexAttributeDescriptions_ ) VULKAN_HPP_NOEXCEPT
@@ -24231,7 +24704,8 @@ namespace VULKAN_HPP_NAMESPACE
pVertexAttributeDescriptions = vertexAttributeDescriptions_.data();
return *this;
}
-#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
+# endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
+#endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
operator VkPipelineVertexInputStateCreateInfo const &() const VULKAN_HPP_NOEXCEPT
{
@@ -24315,6 +24789,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
+#if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
PipelineInputAssemblyStateCreateInfo & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
{
pNext = pNext_;
@@ -24341,6 +24816,7 @@ namespace VULKAN_HPP_NAMESPACE
primitiveRestartEnable = primitiveRestartEnable_;
return *this;
}
+#endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
operator VkPipelineInputAssemblyStateCreateInfo const &() const VULKAN_HPP_NOEXCEPT
{
@@ -24417,6 +24893,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
+#if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
PipelineTessellationStateCreateInfo & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
{
pNext = pNext_;
@@ -24435,6 +24912,7 @@ namespace VULKAN_HPP_NAMESPACE
patchControlPoints = patchControlPoints_;
return *this;
}
+#endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
operator VkPipelineTessellationStateCreateInfo const &() const VULKAN_HPP_NOEXCEPT
{
@@ -24527,6 +25005,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
+#if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
PipelineViewportStateCreateInfo & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
{
pNext = pNext_;
@@ -24553,7 +25032,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
-#if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
+# if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
PipelineViewportStateCreateInfo & setViewports(
VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::Viewport> const & viewports_ )
VULKAN_HPP_NOEXCEPT
@@ -24562,7 +25041,7 @@ namespace VULKAN_HPP_NAMESPACE
pViewports = viewports_.data();
return *this;
}
-#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
+# endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
PipelineViewportStateCreateInfo & setScissorCount( uint32_t scissorCount_ ) VULKAN_HPP_NOEXCEPT
{
@@ -24577,7 +25056,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
-#if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
+# if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
PipelineViewportStateCreateInfo &
setScissors( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::Rect2D> const & scissors_ )
VULKAN_HPP_NOEXCEPT
@@ -24586,7 +25065,8 @@ namespace VULKAN_HPP_NAMESPACE
pScissors = scissors_.data();
return *this;
}
-#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
+# endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
+#endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
operator VkPipelineViewportStateCreateInfo const &() const VULKAN_HPP_NOEXCEPT
{
@@ -24684,6 +25164,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
+#if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
PipelineRasterizationStateCreateInfo & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
{
pNext = pNext_;
@@ -24763,6 +25244,7 @@ namespace VULKAN_HPP_NAMESPACE
lineWidth = lineWidth_;
return *this;
}
+#endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
operator VkPipelineRasterizationStateCreateInfo const &() const VULKAN_HPP_NOEXCEPT
{
@@ -24862,6 +25344,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
+#if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
PipelineMultisampleStateCreateInfo & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
{
pNext = pNext_;
@@ -24915,6 +25398,7 @@ namespace VULKAN_HPP_NAMESPACE
alphaToOneEnable = alphaToOneEnable_;
return *this;
}
+#endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
operator VkPipelineMultisampleStateCreateInfo const &() const VULKAN_HPP_NOEXCEPT
{
@@ -25001,6 +25485,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
+#if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
StencilOpState & setFailOp( VULKAN_HPP_NAMESPACE::StencilOp failOp_ ) VULKAN_HPP_NOEXCEPT
{
failOp = failOp_;
@@ -25042,6 +25527,7 @@ namespace VULKAN_HPP_NAMESPACE
reference = reference_;
return *this;
}
+#endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
operator VkStencilOpState const &() const VULKAN_HPP_NOEXCEPT
{
@@ -25129,6 +25615,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
+#if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
PipelineDepthStencilStateCreateInfo & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
{
pNext = pNext_;
@@ -25202,6 +25689,7 @@ namespace VULKAN_HPP_NAMESPACE
maxDepthBounds = maxDepthBounds_;
return *this;
}
+#endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
operator VkPipelineDepthStencilStateCreateInfo const &() const VULKAN_HPP_NOEXCEPT
{
@@ -25295,6 +25783,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
+#if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
PipelineColorBlendAttachmentState & setBlendEnable( VULKAN_HPP_NAMESPACE::Bool32 blendEnable_ ) VULKAN_HPP_NOEXCEPT
{
blendEnable = blendEnable_;
@@ -25349,6 +25838,7 @@ namespace VULKAN_HPP_NAMESPACE
colorWriteMask = colorWriteMask_;
return *this;
}
+#endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
operator VkPipelineColorBlendAttachmentState const &() const VULKAN_HPP_NOEXCEPT
{
@@ -25448,6 +25938,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
+#if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
PipelineColorBlendStateCreateInfo & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
{
pNext = pNext_;
@@ -25487,7 +25978,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
-#if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
+# if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
PipelineColorBlendStateCreateInfo & setAttachments(
VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<
const VULKAN_HPP_NAMESPACE::PipelineColorBlendAttachmentState> const & attachments_ ) VULKAN_HPP_NOEXCEPT
@@ -25496,13 +25987,14 @@ namespace VULKAN_HPP_NAMESPACE
pAttachments = attachments_.data();
return *this;
}
-#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
+# endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
PipelineColorBlendStateCreateInfo & setBlendConstants( std::array<float, 4> blendConstants_ ) VULKAN_HPP_NOEXCEPT
{
blendConstants = blendConstants_;
return *this;
}
+#endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
operator VkPipelineColorBlendStateCreateInfo const &() const VULKAN_HPP_NOEXCEPT
{
@@ -25594,6 +26086,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
+#if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
PipelineDynamicStateCreateInfo & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
{
pNext = pNext_;
@@ -25620,7 +26113,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
-#if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
+# if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
PipelineDynamicStateCreateInfo & setDynamicStates(
VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::DynamicState> const & dynamicStates_ )
VULKAN_HPP_NOEXCEPT
@@ -25629,7 +26122,8 @@ namespace VULKAN_HPP_NAMESPACE
pDynamicStates = dynamicStates_.data();
return *this;
}
-#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
+# endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
+#endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
operator VkPipelineDynamicStateCreateInfo const &() const VULKAN_HPP_NOEXCEPT
{
@@ -25773,6 +26267,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
+#if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
GraphicsPipelineCreateInfo & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
{
pNext = pNext_;
@@ -25798,7 +26293,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
-#if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
+# if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
GraphicsPipelineCreateInfo & setStages(
VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::PipelineShaderStageCreateInfo> const &
stages_ ) VULKAN_HPP_NOEXCEPT
@@ -25807,7 +26302,7 @@ namespace VULKAN_HPP_NAMESPACE
pStages = stages_.data();
return *this;
}
-#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
+# endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
GraphicsPipelineCreateInfo & setPVertexInputState(
const VULKAN_HPP_NAMESPACE::PipelineVertexInputStateCreateInfo * pVertexInputState_ ) VULKAN_HPP_NOEXCEPT
@@ -25902,6 +26397,7 @@ namespace VULKAN_HPP_NAMESPACE
basePipelineIndex = basePipelineIndex_;
return *this;
}
+#endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
operator VkGraphicsPipelineCreateInfo const &() const VULKAN_HPP_NOEXCEPT
{
@@ -26014,6 +26510,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
+#if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
GraphicsShaderGroupCreateInfoNV & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
{
pNext = pNext_;
@@ -26033,7 +26530,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
-#if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
+# if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
GraphicsShaderGroupCreateInfoNV & setStages(
VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::PipelineShaderStageCreateInfo> const &
stages_ ) VULKAN_HPP_NOEXCEPT
@@ -26042,7 +26539,7 @@ namespace VULKAN_HPP_NAMESPACE
pStages = stages_.data();
return *this;
}
-#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
+# endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
GraphicsShaderGroupCreateInfoNV & setPVertexInputState(
const VULKAN_HPP_NAMESPACE::PipelineVertexInputStateCreateInfo * pVertexInputState_ ) VULKAN_HPP_NOEXCEPT
@@ -26057,6 +26554,7 @@ namespace VULKAN_HPP_NAMESPACE
pTessellationState = pTessellationState_;
return *this;
}
+#endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
operator VkGraphicsShaderGroupCreateInfoNV const &() const VULKAN_HPP_NOEXCEPT
{
@@ -26153,6 +26651,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
+#if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
GraphicsPipelineShaderGroupsCreateInfoNV & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
{
pNext = pNext_;
@@ -26172,7 +26671,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
-#if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
+# if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
GraphicsPipelineShaderGroupsCreateInfoNV & setGroups(
VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::GraphicsShaderGroupCreateInfoNV> const &
groups_ ) VULKAN_HPP_NOEXCEPT
@@ -26181,7 +26680,7 @@ namespace VULKAN_HPP_NAMESPACE
pGroups = groups_.data();
return *this;
}
-#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
+# endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
GraphicsPipelineShaderGroupsCreateInfoNV & setPipelineCount( uint32_t pipelineCount_ ) VULKAN_HPP_NOEXCEPT
{
@@ -26196,7 +26695,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
-#if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
+# if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
GraphicsPipelineShaderGroupsCreateInfoNV & setPipelines(
VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::Pipeline> const & pipelines_ )
VULKAN_HPP_NOEXCEPT
@@ -26205,7 +26704,8 @@ namespace VULKAN_HPP_NAMESPACE
pPipelines = pipelines_.data();
return *this;
}
-#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
+# endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
+#endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
operator VkGraphicsPipelineShaderGroupsCreateInfoNV const &() const VULKAN_HPP_NOEXCEPT
{
@@ -26275,6 +26775,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
+#if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
XYColorEXT & setX( float x_ ) VULKAN_HPP_NOEXCEPT
{
x = x_;
@@ -26286,6 +26787,7 @@ namespace VULKAN_HPP_NAMESPACE
y = y_;
return *this;
}
+#endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
operator VkXYColorEXT const &() const VULKAN_HPP_NOEXCEPT
{
@@ -26357,6 +26859,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
+#if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
HdrMetadataEXT & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
{
pNext = pNext_;
@@ -26413,6 +26916,7 @@ namespace VULKAN_HPP_NAMESPACE
maxFrameAverageLightLevel = maxFrameAverageLightLevel_;
return *this;
}
+#endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
operator VkHdrMetadataEXT const &() const VULKAN_HPP_NOEXCEPT
{
@@ -26490,6 +26994,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
+#if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
HeadlessSurfaceCreateInfoEXT & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
{
pNext = pNext_;
@@ -26502,6 +27007,7 @@ namespace VULKAN_HPP_NAMESPACE
flags = flags_;
return *this;
}
+#endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
operator VkHeadlessSurfaceCreateInfoEXT const &() const VULKAN_HPP_NOEXCEPT
{
@@ -26572,6 +27078,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
+# if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
IOSSurfaceCreateInfoMVK & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
{
pNext = pNext_;
@@ -26589,6 +27096,7 @@ namespace VULKAN_HPP_NAMESPACE
pView = pView_;
return *this;
}
+# endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
operator VkIOSSurfaceCreateInfoMVK const &() const VULKAN_HPP_NOEXCEPT
{
@@ -26659,6 +27167,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
+#if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
ImageBlit &
setSrcSubresource( VULKAN_HPP_NAMESPACE::ImageSubresourceLayers const & srcSubresource_ ) VULKAN_HPP_NOEXCEPT
{
@@ -26684,6 +27193,7 @@ namespace VULKAN_HPP_NAMESPACE
dstOffsets = dstOffsets_;
return *this;
}
+#endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
operator VkImageBlit const &() const VULKAN_HPP_NOEXCEPT
{
@@ -26748,6 +27258,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
+#if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
ImageCopy &
setSrcSubresource( VULKAN_HPP_NAMESPACE::ImageSubresourceLayers const & srcSubresource_ ) VULKAN_HPP_NOEXCEPT
{
@@ -26779,6 +27290,7 @@ namespace VULKAN_HPP_NAMESPACE
extent = extent_;
return *this;
}
+#endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
operator VkImageCopy const &() const VULKAN_HPP_NOEXCEPT
{
@@ -26895,6 +27407,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
+#if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
ImageCreateInfo & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
{
pNext = pNext_;
@@ -26973,7 +27486,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
-#if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
+# if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
ImageCreateInfo & setQueueFamilyIndices(
VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const uint32_t> const & queueFamilyIndices_ ) VULKAN_HPP_NOEXCEPT
{
@@ -26981,13 +27494,14 @@ namespace VULKAN_HPP_NAMESPACE
pQueueFamilyIndices = queueFamilyIndices_.data();
return *this;
}
-#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
+# endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
ImageCreateInfo & setInitialLayout( VULKAN_HPP_NAMESPACE::ImageLayout initialLayout_ ) VULKAN_HPP_NOEXCEPT
{
initialLayout = initialLayout_;
return *this;
}
+#endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
operator VkImageCreateInfo const &() const VULKAN_HPP_NOEXCEPT
{
@@ -27158,6 +27672,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
+#if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
ImageDrmFormatModifierExplicitCreateInfoEXT & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
{
pNext = pNext_;
@@ -27185,7 +27700,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
-#if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
+# if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
ImageDrmFormatModifierExplicitCreateInfoEXT & setPlaneLayouts(
VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::SubresourceLayout> const &
planeLayouts_ ) VULKAN_HPP_NOEXCEPT
@@ -27194,7 +27709,8 @@ namespace VULKAN_HPP_NAMESPACE
pPlaneLayouts = planeLayouts_.data();
return *this;
}
-#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
+# endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
+#endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
operator VkImageDrmFormatModifierExplicitCreateInfoEXT const &() const VULKAN_HPP_NOEXCEPT
{
@@ -27282,6 +27798,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
+#if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
ImageDrmFormatModifierListCreateInfoEXT & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
{
pNext = pNext_;
@@ -27302,7 +27819,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
-#if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
+# if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
ImageDrmFormatModifierListCreateInfoEXT & setDrmFormatModifiers(
VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const uint64_t> const & drmFormatModifiers_ ) VULKAN_HPP_NOEXCEPT
{
@@ -27310,7 +27827,8 @@ namespace VULKAN_HPP_NAMESPACE
pDrmFormatModifiers = drmFormatModifiers_.data();
return *this;
}
-#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
+# endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
+#endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
operator VkImageDrmFormatModifierListCreateInfoEXT const &() const VULKAN_HPP_NOEXCEPT
{
@@ -27462,6 +27980,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
+#if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
ImageFormatListCreateInfo & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
{
pNext = pNext_;
@@ -27481,7 +28000,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
-#if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
+# if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
ImageFormatListCreateInfo & setViewFormats(
VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::Format> const & viewFormats_ )
VULKAN_HPP_NOEXCEPT
@@ -27490,7 +28009,8 @@ namespace VULKAN_HPP_NAMESPACE
pViewFormats = viewFormats_.data();
return *this;
}
-#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
+# endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
+#endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
operator VkImageFormatListCreateInfo const &() const VULKAN_HPP_NOEXCEPT
{
@@ -27643,6 +28163,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
+#if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
ImageMemoryBarrier & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
{
pNext = pNext_;
@@ -27697,6 +28218,7 @@ namespace VULKAN_HPP_NAMESPACE
subresourceRange = subresourceRange_;
return *this;
}
+#endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
operator VkImageMemoryBarrier const &() const VULKAN_HPP_NOEXCEPT
{
@@ -27775,6 +28297,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
+#if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
ImageMemoryRequirementsInfo2 & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
{
pNext = pNext_;
@@ -27786,6 +28309,7 @@ namespace VULKAN_HPP_NAMESPACE
image = image_;
return *this;
}
+#endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
operator VkImageMemoryRequirementsInfo2 const &() const VULKAN_HPP_NOEXCEPT
{
@@ -27860,6 +28384,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
+# if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
ImagePipeSurfaceCreateInfoFUCHSIA & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
{
pNext = pNext_;
@@ -27878,6 +28403,7 @@ namespace VULKAN_HPP_NAMESPACE
imagePipeHandle = imagePipeHandle_;
return *this;
}
+# endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
operator VkImagePipeSurfaceCreateInfoFUCHSIA const &() const VULKAN_HPP_NOEXCEPT
{
@@ -27951,6 +28477,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
+#if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
ImagePlaneMemoryRequirementsInfo & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
{
pNext = pNext_;
@@ -27963,6 +28490,7 @@ namespace VULKAN_HPP_NAMESPACE
planeAspect = planeAspect_;
return *this;
}
+#endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
operator VkImagePlaneMemoryRequirementsInfo const &() const VULKAN_HPP_NOEXCEPT
{
@@ -28035,6 +28563,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
+#if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
ImageResolve &
setSrcSubresource( VULKAN_HPP_NAMESPACE::ImageSubresourceLayers const & srcSubresource_ ) VULKAN_HPP_NOEXCEPT
{
@@ -28066,6 +28595,7 @@ namespace VULKAN_HPP_NAMESPACE
extent = extent_;
return *this;
}
+#endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
operator VkImageResolve const &() const VULKAN_HPP_NOEXCEPT
{
@@ -28135,6 +28665,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
+#if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
ImageResolve2KHR & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
{
pNext = pNext_;
@@ -28172,6 +28703,7 @@ namespace VULKAN_HPP_NAMESPACE
extent = extent_;
return *this;
}
+#endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
operator VkImageResolve2KHR const &() const VULKAN_HPP_NOEXCEPT
{
@@ -28248,6 +28780,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
+#if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
ImageSparseMemoryRequirementsInfo2 & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
{
pNext = pNext_;
@@ -28259,6 +28792,7 @@ namespace VULKAN_HPP_NAMESPACE
image = image_;
return *this;
}
+#endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
operator VkImageSparseMemoryRequirementsInfo2 const &() const VULKAN_HPP_NOEXCEPT
{
@@ -28329,6 +28863,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
+#if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
ImageStencilUsageCreateInfo & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
{
pNext = pNext_;
@@ -28341,6 +28876,7 @@ namespace VULKAN_HPP_NAMESPACE
stencilUsage = stencilUsage_;
return *this;
}
+#endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
operator VkImageStencilUsageCreateInfo const &() const VULKAN_HPP_NOEXCEPT
{
@@ -28411,6 +28947,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
+#if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
ImageSwapchainCreateInfoKHR & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
{
pNext = pNext_;
@@ -28422,6 +28959,7 @@ namespace VULKAN_HPP_NAMESPACE
swapchain = swapchain_;
return *this;
}
+#endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
operator VkImageSwapchainCreateInfoKHR const &() const VULKAN_HPP_NOEXCEPT
{
@@ -28491,6 +29029,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
+#if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
ImageViewASTCDecodeModeEXT & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
{
pNext = pNext_;
@@ -28502,6 +29041,7 @@ namespace VULKAN_HPP_NAMESPACE
decodeMode = decodeMode_;
return *this;
}
+#endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
operator VkImageViewASTCDecodeModeEXT const &() const VULKAN_HPP_NOEXCEPT
{
@@ -28652,6 +29192,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
+#if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
ImageViewCreateInfo & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
{
pNext = pNext_;
@@ -28695,6 +29236,7 @@ namespace VULKAN_HPP_NAMESPACE
subresourceRange = subresourceRange_;
return *this;
}
+#endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
operator VkImageViewCreateInfo const &() const VULKAN_HPP_NOEXCEPT
{
@@ -28773,6 +29315,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
+#if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
ImageViewHandleInfoNVX & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
{
pNext = pNext_;
@@ -28797,6 +29340,7 @@ namespace VULKAN_HPP_NAMESPACE
sampler = sampler_;
return *this;
}
+#endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
operator VkImageViewHandleInfoNVX const &() const VULKAN_HPP_NOEXCEPT
{
@@ -28867,6 +29411,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
+#if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
ImageViewUsageCreateInfo & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
{
pNext = pNext_;
@@ -28878,6 +29423,7 @@ namespace VULKAN_HPP_NAMESPACE
usage = usage_;
return *this;
}
+#endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
operator VkImageViewUsageCreateInfo const &() const VULKAN_HPP_NOEXCEPT
{
@@ -28951,6 +29497,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
+# if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
ImportAndroidHardwareBufferInfoANDROID & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
{
pNext = pNext_;
@@ -28962,6 +29509,7 @@ namespace VULKAN_HPP_NAMESPACE
buffer = buffer_;
return *this;
}
+# endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
operator VkImportAndroidHardwareBufferInfoANDROID const &() const VULKAN_HPP_NOEXCEPT
{
@@ -29037,6 +29585,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
+#if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
ImportFenceFdInfoKHR & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
{
pNext = pNext_;
@@ -29067,6 +29616,7 @@ namespace VULKAN_HPP_NAMESPACE
fd = fd_;
return *this;
}
+#endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
operator VkImportFenceFdInfoKHR const &() const VULKAN_HPP_NOEXCEPT
{
@@ -29150,6 +29700,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
+# if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
ImportFenceWin32HandleInfoKHR & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
{
pNext = pNext_;
@@ -29186,6 +29737,7 @@ namespace VULKAN_HPP_NAMESPACE
name = name_;
return *this;
}
+# endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
operator VkImportFenceWin32HandleInfoKHR const &() const VULKAN_HPP_NOEXCEPT
{
@@ -29263,6 +29815,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
+#if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
ImportMemoryFdInfoKHR & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
{
pNext = pNext_;
@@ -29281,6 +29834,7 @@ namespace VULKAN_HPP_NAMESPACE
fd = fd_;
return *this;
}
+#endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
operator VkImportMemoryFdInfoKHR const &() const VULKAN_HPP_NOEXCEPT
{
@@ -29354,6 +29908,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
+#if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
ImportMemoryHostPointerInfoEXT & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
{
pNext = pNext_;
@@ -29372,6 +29927,7 @@ namespace VULKAN_HPP_NAMESPACE
pHostPointer = pHostPointer_;
return *this;
}
+#endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
operator VkImportMemoryHostPointerInfoEXT const &() const VULKAN_HPP_NOEXCEPT
{
@@ -29450,6 +30006,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
+# if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
ImportMemoryWin32HandleInfoKHR & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
{
pNext = pNext_;
@@ -29474,6 +30031,7 @@ namespace VULKAN_HPP_NAMESPACE
name = name_;
return *this;
}
+# endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
operator VkImportMemoryWin32HandleInfoKHR const &() const VULKAN_HPP_NOEXCEPT
{
@@ -29551,6 +30109,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
+# if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
ImportMemoryWin32HandleInfoNV & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
{
pNext = pNext_;
@@ -29569,6 +30128,7 @@ namespace VULKAN_HPP_NAMESPACE
handle = handle_;
return *this;
}
+# endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
operator VkImportMemoryWin32HandleInfoNV const &() const VULKAN_HPP_NOEXCEPT
{
@@ -29647,6 +30207,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
+# if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
ImportMemoryZirconHandleInfoFUCHSIA & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
{
pNext = pNext_;
@@ -29665,6 +30226,7 @@ namespace VULKAN_HPP_NAMESPACE
handle = handle_;
return *this;
}
+# endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
operator VkImportMemoryZirconHandleInfoFUCHSIA const &() const VULKAN_HPP_NOEXCEPT
{
@@ -29744,6 +30306,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
+#if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
ImportSemaphoreFdInfoKHR & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
{
pNext = pNext_;
@@ -29774,6 +30337,7 @@ namespace VULKAN_HPP_NAMESPACE
fd = fd_;
return *this;
}
+#endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
operator VkImportSemaphoreFdInfoKHR const &() const VULKAN_HPP_NOEXCEPT
{
@@ -29858,6 +30422,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
+# if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
ImportSemaphoreWin32HandleInfoKHR & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
{
pNext = pNext_;
@@ -29895,6 +30460,7 @@ namespace VULKAN_HPP_NAMESPACE
name = name_;
return *this;
}
+# endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
operator VkImportSemaphoreWin32HandleInfoKHR const &() const VULKAN_HPP_NOEXCEPT
{
@@ -29983,6 +30549,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
+# if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
ImportSemaphoreZirconHandleInfoFUCHSIA & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
{
pNext = pNext_;
@@ -30015,6 +30582,7 @@ namespace VULKAN_HPP_NAMESPACE
zirconHandle = zirconHandle_;
return *this;
}
+# endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
operator VkImportSemaphoreZirconHandleInfoFUCHSIA const &() const VULKAN_HPP_NOEXCEPT
{
@@ -30157,6 +30725,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
+#if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
IndirectCommandsLayoutTokenNV & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
{
pNext = pNext_;
@@ -30241,7 +30810,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
-#if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
+# if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
IndirectCommandsLayoutTokenNV & setIndexTypes(
VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::IndexType> const & indexTypes_ )
VULKAN_HPP_NOEXCEPT
@@ -30250,7 +30819,7 @@ namespace VULKAN_HPP_NAMESPACE
pIndexTypes = indexTypes_.data();
return *this;
}
-#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
+# endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
IndirectCommandsLayoutTokenNV & setPIndexTypeValues( const uint32_t * pIndexTypeValues_ ) VULKAN_HPP_NOEXCEPT
{
@@ -30258,7 +30827,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
-#if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
+# if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
IndirectCommandsLayoutTokenNV & setIndexTypeValues(
VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const uint32_t> const & indexTypeValues_ ) VULKAN_HPP_NOEXCEPT
{
@@ -30266,7 +30835,8 @@ namespace VULKAN_HPP_NAMESPACE
pIndexTypeValues = indexTypeValues_.data();
return *this;
}
-#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
+# endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
+#endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
operator VkIndirectCommandsLayoutTokenNV const &() const VULKAN_HPP_NOEXCEPT
{
@@ -30384,6 +30954,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
+#if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
IndirectCommandsLayoutCreateInfoNV & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
{
pNext = pNext_;
@@ -30417,7 +30988,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
-#if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
+# if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
IndirectCommandsLayoutCreateInfoNV & setTokens(
VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::IndirectCommandsLayoutTokenNV> const &
tokens_ ) VULKAN_HPP_NOEXCEPT
@@ -30426,7 +30997,7 @@ namespace VULKAN_HPP_NAMESPACE
pTokens = tokens_.data();
return *this;
}
-#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
+# endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
IndirectCommandsLayoutCreateInfoNV & setStreamCount( uint32_t streamCount_ ) VULKAN_HPP_NOEXCEPT
{
@@ -30440,7 +31011,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
-#if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
+# if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
IndirectCommandsLayoutCreateInfoNV & setStreamStrides(
VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const uint32_t> const & streamStrides_ ) VULKAN_HPP_NOEXCEPT
{
@@ -30448,7 +31019,8 @@ namespace VULKAN_HPP_NAMESPACE
pStreamStrides = streamStrides_.data();
return *this;
}
-#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
+# endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
+#endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
operator VkIndirectCommandsLayoutCreateInfoNV const &() const VULKAN_HPP_NOEXCEPT
{
@@ -30526,6 +31098,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
+#if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
InitializePerformanceApiInfoINTEL & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
{
pNext = pNext_;
@@ -30537,6 +31110,7 @@ namespace VULKAN_HPP_NAMESPACE
pUserData = pUserData_;
return *this;
}
+#endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
operator VkInitializePerformanceApiInfoINTEL const &() const VULKAN_HPP_NOEXCEPT
{
@@ -30607,6 +31181,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
+#if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
InputAttachmentAspectReference & setSubpass( uint32_t subpass_ ) VULKAN_HPP_NOEXCEPT
{
subpass = subpass_;
@@ -30625,6 +31200,7 @@ namespace VULKAN_HPP_NAMESPACE
aspectMask = aspectMask_;
return *this;
}
+#endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
operator VkInputAttachmentAspectReference const &() const VULKAN_HPP_NOEXCEPT
{
@@ -30713,6 +31289,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
+#if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
InstanceCreateInfo & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
{
pNext = pNext_;
@@ -30744,7 +31321,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
-#if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
+# if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
InstanceCreateInfo & setPEnabledLayerNames(
VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const char * const> const & pEnabledLayerNames_ )
VULKAN_HPP_NOEXCEPT
@@ -30753,7 +31330,7 @@ namespace VULKAN_HPP_NAMESPACE
ppEnabledLayerNames = pEnabledLayerNames_.data();
return *this;
}
-#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
+# endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
InstanceCreateInfo & setEnabledExtensionCount( uint32_t enabledExtensionCount_ ) VULKAN_HPP_NOEXCEPT
{
@@ -30767,7 +31344,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
-#if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
+# if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
InstanceCreateInfo & setPEnabledExtensionNames(
VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const char * const> const & pEnabledExtensionNames_ )
VULKAN_HPP_NOEXCEPT
@@ -30776,7 +31353,8 @@ namespace VULKAN_HPP_NAMESPACE
ppEnabledExtensionNames = pEnabledExtensionNames_.data();
return *this;
}
-#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
+# endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
+#endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
operator VkInstanceCreateInfo const &() const VULKAN_HPP_NOEXCEPT
{
@@ -30919,6 +31497,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
+# if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
MacOSSurfaceCreateInfoMVK & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
{
pNext = pNext_;
@@ -30936,6 +31515,7 @@ namespace VULKAN_HPP_NAMESPACE
pView = pView_;
return *this;
}
+# endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
operator VkMacOSSurfaceCreateInfoMVK const &() const VULKAN_HPP_NOEXCEPT
{
@@ -31009,6 +31589,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
+#if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
MappedMemoryRange & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
{
pNext = pNext_;
@@ -31032,6 +31613,7 @@ namespace VULKAN_HPP_NAMESPACE
size = size_;
return *this;
}
+#endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
operator VkMappedMemoryRange const &() const VULKAN_HPP_NOEXCEPT
{
@@ -31103,6 +31685,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
+#if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
MemoryAllocateFlagsInfo & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
{
pNext = pNext_;
@@ -31120,6 +31703,7 @@ namespace VULKAN_HPP_NAMESPACE
deviceMask = deviceMask_;
return *this;
}
+#endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
operator VkMemoryAllocateFlagsInfo const &() const VULKAN_HPP_NOEXCEPT
{
@@ -31191,6 +31775,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
+#if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
MemoryAllocateInfo & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
{
pNext = pNext_;
@@ -31208,6 +31793,7 @@ namespace VULKAN_HPP_NAMESPACE
memoryTypeIndex = memoryTypeIndex_;
return *this;
}
+#endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
operator VkMemoryAllocateInfo const &() const VULKAN_HPP_NOEXCEPT
{
@@ -31277,6 +31863,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
+#if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
MemoryBarrier & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
{
pNext = pNext_;
@@ -31294,6 +31881,7 @@ namespace VULKAN_HPP_NAMESPACE
dstAccessMask = dstAccessMask_;
return *this;
}
+#endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
operator VkMemoryBarrier const &() const VULKAN_HPP_NOEXCEPT
{
@@ -31364,6 +31952,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
+#if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
MemoryDedicatedAllocateInfo & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
{
pNext = pNext_;
@@ -31381,6 +31970,7 @@ namespace VULKAN_HPP_NAMESPACE
buffer = buffer_;
return *this;
}
+#endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
operator VkMemoryDedicatedAllocateInfo const &() const VULKAN_HPP_NOEXCEPT
{
@@ -31596,6 +32186,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
+# if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
MemoryGetAndroidHardwareBufferInfoANDROID & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
{
pNext = pNext_;
@@ -31608,6 +32199,7 @@ namespace VULKAN_HPP_NAMESPACE
memory = memory_;
return *this;
}
+# endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
operator VkMemoryGetAndroidHardwareBufferInfoANDROID const &() const VULKAN_HPP_NOEXCEPT
{
@@ -31681,6 +32273,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
+#if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
MemoryGetFdInfoKHR & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
{
pNext = pNext_;
@@ -31699,6 +32292,7 @@ namespace VULKAN_HPP_NAMESPACE
handleType = handleType_;
return *this;
}
+#endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
operator VkMemoryGetFdInfoKHR const &() const VULKAN_HPP_NOEXCEPT
{
@@ -31742,6 +32336,101 @@ namespace VULKAN_HPP_NAMESPACE
using Type = MemoryGetFdInfoKHR;
};
+ struct MemoryGetRemoteAddressInfoNV
+ {
+ static const bool allowDuplicate = false;
+ static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eMemoryGetRemoteAddressInfoNV;
+
+#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
+ VULKAN_HPP_CONSTEXPR MemoryGetRemoteAddressInfoNV(
+ VULKAN_HPP_NAMESPACE::DeviceMemory memory_ = {},
+ VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits handleType_ =
+ VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits::eOpaqueFd ) VULKAN_HPP_NOEXCEPT
+ : memory( memory_ )
+ , handleType( handleType_ )
+ {}
+
+ VULKAN_HPP_CONSTEXPR
+ MemoryGetRemoteAddressInfoNV( MemoryGetRemoteAddressInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
+
+ MemoryGetRemoteAddressInfoNV( VkMemoryGetRemoteAddressInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT
+ : MemoryGetRemoteAddressInfoNV( *reinterpret_cast<MemoryGetRemoteAddressInfoNV const *>( &rhs ) )
+ {}
+#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
+
+ VULKAN_HPP_CONSTEXPR_14 MemoryGetRemoteAddressInfoNV &
+ operator=( MemoryGetRemoteAddressInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
+
+ MemoryGetRemoteAddressInfoNV & operator=( VkMemoryGetRemoteAddressInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT
+ {
+ *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::MemoryGetRemoteAddressInfoNV const *>( &rhs );
+ return *this;
+ }
+
+#if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
+ MemoryGetRemoteAddressInfoNV & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
+ {
+ pNext = pNext_;
+ return *this;
+ }
+
+ MemoryGetRemoteAddressInfoNV & setMemory( VULKAN_HPP_NAMESPACE::DeviceMemory memory_ ) VULKAN_HPP_NOEXCEPT
+ {
+ memory = memory_;
+ return *this;
+ }
+
+ MemoryGetRemoteAddressInfoNV &
+ setHandleType( VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits handleType_ ) VULKAN_HPP_NOEXCEPT
+ {
+ handleType = handleType_;
+ return *this;
+ }
+#endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
+
+ operator VkMemoryGetRemoteAddressInfoNV const &() const VULKAN_HPP_NOEXCEPT
+ {
+ return *reinterpret_cast<const VkMemoryGetRemoteAddressInfoNV *>( this );
+ }
+
+ operator VkMemoryGetRemoteAddressInfoNV &() VULKAN_HPP_NOEXCEPT
+ {
+ return *reinterpret_cast<VkMemoryGetRemoteAddressInfoNV *>( this );
+ }
+
+#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
+ auto operator<=>( MemoryGetRemoteAddressInfoNV const & ) const = default;
+#else
+ bool operator==( MemoryGetRemoteAddressInfoNV const & rhs ) const VULKAN_HPP_NOEXCEPT
+ {
+ return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( memory == rhs.memory ) &&
+ ( handleType == rhs.handleType );
+ }
+
+ bool operator!=( MemoryGetRemoteAddressInfoNV const & rhs ) const VULKAN_HPP_NOEXCEPT
+ {
+ return !operator==( rhs );
+ }
+#endif
+
+ public:
+ VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eMemoryGetRemoteAddressInfoNV;
+ const void * pNext = {};
+ VULKAN_HPP_NAMESPACE::DeviceMemory memory = {};
+ VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits handleType =
+ VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits::eOpaqueFd;
+ };
+ static_assert( sizeof( MemoryGetRemoteAddressInfoNV ) == sizeof( VkMemoryGetRemoteAddressInfoNV ),
+ "struct and wrapper have different size!" );
+ static_assert( std::is_standard_layout<MemoryGetRemoteAddressInfoNV>::value,
+ "struct wrapper is not a standard layout!" );
+
+ template <>
+ struct CppType<StructureType, StructureType::eMemoryGetRemoteAddressInfoNV>
+ {
+ using Type = MemoryGetRemoteAddressInfoNV;
+ };
+
#if defined( VK_USE_PLATFORM_WIN32_KHR )
struct MemoryGetWin32HandleInfoKHR
{
@@ -31774,6 +32463,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
+# if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
MemoryGetWin32HandleInfoKHR & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
{
pNext = pNext_;
@@ -31792,6 +32482,7 @@ namespace VULKAN_HPP_NAMESPACE
handleType = handleType_;
return *this;
}
+# endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
operator VkMemoryGetWin32HandleInfoKHR const &() const VULKAN_HPP_NOEXCEPT
{
@@ -31869,6 +32560,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
+# if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
MemoryGetZirconHandleInfoFUCHSIA & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
{
pNext = pNext_;
@@ -31887,6 +32579,7 @@ namespace VULKAN_HPP_NAMESPACE
handleType = handleType_;
return *this;
}
+# endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
operator VkMemoryGetZirconHandleInfoFUCHSIA const &() const VULKAN_HPP_NOEXCEPT
{
@@ -32085,6 +32778,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
+#if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
MemoryOpaqueCaptureAddressAllocateInfo & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
{
pNext = pNext_;
@@ -32097,6 +32791,7 @@ namespace VULKAN_HPP_NAMESPACE
opaqueCaptureAddress = opaqueCaptureAddress_;
return *this;
}
+#endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
operator VkMemoryOpaqueCaptureAddressAllocateInfo const &() const VULKAN_HPP_NOEXCEPT
{
@@ -32166,6 +32861,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
+#if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
MemoryPriorityAllocateInfoEXT & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
{
pNext = pNext_;
@@ -32177,6 +32873,7 @@ namespace VULKAN_HPP_NAMESPACE
priority = priority_;
return *this;
}
+#endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
operator VkMemoryPriorityAllocateInfoEXT const &() const VULKAN_HPP_NOEXCEPT
{
@@ -32570,6 +33267,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
+# if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
MetalSurfaceCreateInfoEXT & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
{
pNext = pNext_;
@@ -32587,6 +33285,7 @@ namespace VULKAN_HPP_NAMESPACE
pLayer = pLayer_;
return *this;
}
+# endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
operator VkMetalSurfaceCreateInfoEXT const &() const VULKAN_HPP_NOEXCEPT
{
@@ -32657,6 +33356,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
+#if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
MultiDrawIndexedInfoEXT & setFirstIndex( uint32_t firstIndex_ ) VULKAN_HPP_NOEXCEPT
{
firstIndex = firstIndex_;
@@ -32674,6 +33374,7 @@ namespace VULKAN_HPP_NAMESPACE
vertexOffset = vertexOffset_;
return *this;
}
+#endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
operator VkMultiDrawIndexedInfoEXT const &() const VULKAN_HPP_NOEXCEPT
{
@@ -32732,6 +33433,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
+#if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
MultiDrawInfoEXT & setFirstVertex( uint32_t firstVertex_ ) VULKAN_HPP_NOEXCEPT
{
firstVertex = firstVertex_;
@@ -32743,6 +33445,7 @@ namespace VULKAN_HPP_NAMESPACE
vertexCount = vertexCount_;
return *this;
}
+#endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
operator VkMultiDrawInfoEXT const &() const VULKAN_HPP_NOEXCEPT
{
@@ -32879,6 +33582,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
+#if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
MutableDescriptorTypeListVALVE & setDescriptorTypeCount( uint32_t descriptorTypeCount_ ) VULKAN_HPP_NOEXCEPT
{
descriptorTypeCount = descriptorTypeCount_;
@@ -32892,7 +33596,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
-#if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
+# if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
MutableDescriptorTypeListVALVE & setDescriptorTypes(
VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::DescriptorType> const &
descriptorTypes_ ) VULKAN_HPP_NOEXCEPT
@@ -32901,7 +33605,8 @@ namespace VULKAN_HPP_NAMESPACE
pDescriptorTypes = descriptorTypes_.data();
return *this;
}
-#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
+# endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
+#endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
operator VkMutableDescriptorTypeListVALVE const &() const VULKAN_HPP_NOEXCEPT
{
@@ -32978,6 +33683,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
+#if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
MutableDescriptorTypeCreateInfoVALVE & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
{
pNext = pNext_;
@@ -32998,7 +33704,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
-#if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
+# if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
MutableDescriptorTypeCreateInfoVALVE & setMutableDescriptorTypeLists(
VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::MutableDescriptorTypeListVALVE> const &
mutableDescriptorTypeLists_ ) VULKAN_HPP_NOEXCEPT
@@ -33007,7 +33713,8 @@ namespace VULKAN_HPP_NAMESPACE
pMutableDescriptorTypeLists = mutableDescriptorTypeLists_.data();
return *this;
}
-#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
+# endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
+#endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
operator VkMutableDescriptorTypeCreateInfoVALVE const &() const VULKAN_HPP_NOEXCEPT
{
@@ -33155,6 +33862,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
+#if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
PerformanceConfigurationAcquireInfoINTEL & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
{
pNext = pNext_;
@@ -33167,6 +33875,7 @@ namespace VULKAN_HPP_NAMESPACE
type = type_;
return *this;
}
+#endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
operator VkPerformanceConfigurationAcquireInfoINTEL const &() const VULKAN_HPP_NOEXCEPT
{
@@ -33271,7 +33980,7 @@ namespace VULKAN_HPP_NAMESPACE
public:
VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePerformanceCounterDescriptionKHR;
- const void * pNext = {};
+ void * pNext = {};
VULKAN_HPP_NAMESPACE::PerformanceCounterDescriptionFlagsKHR flags = {};
VULKAN_HPP_NAMESPACE::ArrayWrapper1D<char, VK_MAX_DESCRIPTION_SIZE> name = {};
VULKAN_HPP_NAMESPACE::ArrayWrapper1D<char, VK_MAX_DESCRIPTION_SIZE> category = {};
@@ -33350,7 +34059,7 @@ namespace VULKAN_HPP_NAMESPACE
public:
VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePerformanceCounterKHR;
- const void * pNext = {};
+ void * pNext = {};
VULKAN_HPP_NAMESPACE::PerformanceCounterUnitKHR unit = VULKAN_HPP_NAMESPACE::PerformanceCounterUnitKHR::eGeneric;
VULKAN_HPP_NAMESPACE::PerformanceCounterScopeKHR scope =
VULKAN_HPP_NAMESPACE::PerformanceCounterScopeKHR::eCommandBuffer;
@@ -33370,6 +34079,7 @@ namespace VULKAN_HPP_NAMESPACE
union PerformanceCounterResultKHR
{
+#if !defined( VULKAN_HPP_NO_UNION_CONSTRUCTORS )
PerformanceCounterResultKHR( VULKAN_HPP_NAMESPACE::PerformanceCounterResultKHR const & rhs ) VULKAN_HPP_NOEXCEPT
{
memcpy( static_cast<void *>( this ), &rhs, sizeof( VULKAN_HPP_NAMESPACE::PerformanceCounterResultKHR ) );
@@ -33386,7 +34096,9 @@ namespace VULKAN_HPP_NAMESPACE
PerformanceCounterResultKHR( float float32_ ) : float32( float32_ ) {}
PerformanceCounterResultKHR( double float64_ ) : float64( float64_ ) {}
+#endif /*VULKAN_HPP_NO_UNION_CONSTRUCTORS*/
+#if !defined( VULKAN_HPP_NO_UNION_SETTERS )
PerformanceCounterResultKHR & setInt32( int32_t int32_ ) VULKAN_HPP_NOEXCEPT
{
int32 = int32_;
@@ -33422,6 +34134,7 @@ namespace VULKAN_HPP_NAMESPACE
float64 = float64_;
return *this;
}
+#endif /*VULKAN_HPP_NO_UNION_SETTERS*/
VULKAN_HPP_NAMESPACE::PerformanceCounterResultKHR &
operator=( VULKAN_HPP_NAMESPACE::PerformanceCounterResultKHR const & rhs ) VULKAN_HPP_NOEXCEPT
@@ -33473,6 +34186,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
+#if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
PerformanceMarkerInfoINTEL & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
{
pNext = pNext_;
@@ -33484,6 +34198,7 @@ namespace VULKAN_HPP_NAMESPACE
marker = marker_;
return *this;
}
+#endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
operator VkPerformanceMarkerInfoINTEL const &() const VULKAN_HPP_NOEXCEPT
{
@@ -33558,6 +34273,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
+#if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
PerformanceOverrideInfoINTEL & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
{
pNext = pNext_;
@@ -33582,6 +34298,7 @@ namespace VULKAN_HPP_NAMESPACE
parameter = parameter_;
return *this;
}
+#endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
operator VkPerformanceOverrideInfoINTEL const &() const VULKAN_HPP_NOEXCEPT
{
@@ -33654,6 +34371,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
+#if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
PerformanceQuerySubmitInfoKHR & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
{
pNext = pNext_;
@@ -33665,6 +34383,7 @@ namespace VULKAN_HPP_NAMESPACE
counterPassIndex = counterPassIndex_;
return *this;
}
+#endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
operator VkPerformanceQuerySubmitInfoKHR const &() const VULKAN_HPP_NOEXCEPT
{
@@ -33733,6 +34452,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
+#if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
PerformanceStreamMarkerInfoINTEL & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
{
pNext = pNext_;
@@ -33744,6 +34464,7 @@ namespace VULKAN_HPP_NAMESPACE
marker = marker_;
return *this;
}
+#endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
operator VkPerformanceStreamMarkerInfoINTEL const &() const VULKAN_HPP_NOEXCEPT
{
@@ -33787,6 +34508,7 @@ namespace VULKAN_HPP_NAMESPACE
union PerformanceValueDataINTEL
{
+#if !defined( VULKAN_HPP_NO_UNION_CONSTRUCTORS )
PerformanceValueDataINTEL( VULKAN_HPP_NAMESPACE::PerformanceValueDataINTEL const & rhs ) VULKAN_HPP_NOEXCEPT
{
memcpy( static_cast<void *>( this ), &rhs, sizeof( VULKAN_HPP_NAMESPACE::PerformanceValueDataINTEL ) );
@@ -33799,7 +34521,9 @@ namespace VULKAN_HPP_NAMESPACE
PerformanceValueDataINTEL( float valueFloat_ ) : valueFloat( valueFloat_ ) {}
PerformanceValueDataINTEL( const char * valueString_ ) : valueString( valueString_ ) {}
+#endif /*VULKAN_HPP_NO_UNION_CONSTRUCTORS*/
+#if !defined( VULKAN_HPP_NO_UNION_SETTERS )
PerformanceValueDataINTEL & setValue32( uint32_t value32_ ) VULKAN_HPP_NOEXCEPT
{
value32 = value32_;
@@ -33829,6 +34553,7 @@ namespace VULKAN_HPP_NAMESPACE
valueString = valueString_;
return *this;
}
+#endif /*VULKAN_HPP_NO_UNION_SETTERS*/
VULKAN_HPP_NAMESPACE::PerformanceValueDataINTEL &
operator=( VULKAN_HPP_NAMESPACE::PerformanceValueDataINTEL const & rhs ) VULKAN_HPP_NOEXCEPT
@@ -33887,6 +34612,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
+#if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
PerformanceValueINTEL & setType( VULKAN_HPP_NAMESPACE::PerformanceValueTypeINTEL type_ ) VULKAN_HPP_NOEXCEPT
{
type = type_;
@@ -33898,6 +34624,7 @@ namespace VULKAN_HPP_NAMESPACE
data = data_;
return *this;
}
+#endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
operator VkPerformanceValueINTEL const &() const VULKAN_HPP_NOEXCEPT
{
@@ -33953,6 +34680,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
+#if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
PhysicalDevice16BitStorageFeatures & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
{
pNext = pNext_;
@@ -33986,6 +34714,7 @@ namespace VULKAN_HPP_NAMESPACE
storageInputOutput16 = storageInputOutput16_;
return *this;
}
+#endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
operator VkPhysicalDevice16BitStorageFeatures const &() const VULKAN_HPP_NOEXCEPT
{
@@ -34067,6 +34796,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
+#if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
PhysicalDevice4444FormatsFeaturesEXT & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
{
pNext = pNext_;
@@ -34086,6 +34816,7 @@ namespace VULKAN_HPP_NAMESPACE
formatA4B4G4R4 = formatA4B4G4R4_;
return *this;
}
+#endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
operator VkPhysicalDevice4444FormatsFeaturesEXT const &() const VULKAN_HPP_NOEXCEPT
{
@@ -34162,6 +34893,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
+#if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
PhysicalDevice8BitStorageFeatures & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
{
pNext = pNext_;
@@ -34188,6 +34920,7 @@ namespace VULKAN_HPP_NAMESPACE
storagePushConstant8 = storagePushConstant8_;
return *this;
}
+#endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
operator VkPhysicalDevice8BitStorageFeatures const &() const VULKAN_HPP_NOEXCEPT
{
@@ -34265,6 +34998,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
+#if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
PhysicalDeviceASTCDecodeFeaturesEXT & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
{
pNext = pNext_;
@@ -34277,6 +35011,7 @@ namespace VULKAN_HPP_NAMESPACE
decodeModeSharedExponent = decodeModeSharedExponent_;
return *this;
}
+#endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
operator VkPhysicalDeviceASTCDecodeFeaturesEXT const &() const VULKAN_HPP_NOEXCEPT
{
@@ -34359,6 +35094,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
+#if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
PhysicalDeviceAccelerationStructureFeaturesKHR & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
{
pNext = pNext_;
@@ -34399,6 +35135,7 @@ namespace VULKAN_HPP_NAMESPACE
descriptorBindingAccelerationStructureUpdateAfterBind = descriptorBindingAccelerationStructureUpdateAfterBind_;
return *this;
}
+#endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
operator VkPhysicalDeviceAccelerationStructureFeaturesKHR const &() const VULKAN_HPP_NOEXCEPT
{
@@ -34586,6 +35323,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
+#if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
PhysicalDeviceBlendOperationAdvancedFeaturesEXT & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
{
pNext = pNext_;
@@ -34598,6 +35336,7 @@ namespace VULKAN_HPP_NAMESPACE
advancedBlendCoherentOperations = advancedBlendCoherentOperations_;
return *this;
}
+#endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
operator VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT const &() const VULKAN_HPP_NOEXCEPT
{
@@ -34772,6 +35511,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
+#if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
PhysicalDeviceBufferDeviceAddressFeatures & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
{
pNext = pNext_;
@@ -34798,6 +35538,7 @@ namespace VULKAN_HPP_NAMESPACE
bufferDeviceAddressMultiDevice = bufferDeviceAddressMultiDevice_;
return *this;
}
+#endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
operator VkPhysicalDeviceBufferDeviceAddressFeatures const &() const VULKAN_HPP_NOEXCEPT
{
@@ -34881,6 +35622,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
+#if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
PhysicalDeviceBufferDeviceAddressFeaturesEXT & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
{
pNext = pNext_;
@@ -34907,6 +35649,7 @@ namespace VULKAN_HPP_NAMESPACE
bufferDeviceAddressMultiDevice = bufferDeviceAddressMultiDevice_;
return *this;
}
+#endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
operator VkPhysicalDeviceBufferDeviceAddressFeaturesEXT const &() const VULKAN_HPP_NOEXCEPT
{
@@ -34985,6 +35728,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
+#if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
PhysicalDeviceCoherentMemoryFeaturesAMD & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
{
pNext = pNext_;
@@ -34997,6 +35741,7 @@ namespace VULKAN_HPP_NAMESPACE
deviceCoherentMemory = deviceCoherentMemory_;
return *this;
}
+#endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
operator VkPhysicalDeviceCoherentMemoryFeaturesAMD const &() const VULKAN_HPP_NOEXCEPT
{
@@ -35070,6 +35815,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
+#if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
PhysicalDeviceColorWriteEnableFeaturesEXT & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
{
pNext = pNext_;
@@ -35082,6 +35828,7 @@ namespace VULKAN_HPP_NAMESPACE
colorWriteEnable = colorWriteEnable_;
return *this;
}
+#endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
operator VkPhysicalDeviceColorWriteEnableFeaturesEXT const &() const VULKAN_HPP_NOEXCEPT
{
@@ -35158,6 +35905,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
+#if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
PhysicalDeviceComputeShaderDerivativesFeaturesNV & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
{
pNext = pNext_;
@@ -35177,6 +35925,7 @@ namespace VULKAN_HPP_NAMESPACE
computeDerivativeGroupLinear = computeDerivativeGroupLinear_;
return *this;
}
+#endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
operator VkPhysicalDeviceComputeShaderDerivativesFeaturesNV const &() const VULKAN_HPP_NOEXCEPT
{
@@ -35256,6 +36005,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
+#if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
PhysicalDeviceConditionalRenderingFeaturesEXT & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
{
pNext = pNext_;
@@ -35275,6 +36025,7 @@ namespace VULKAN_HPP_NAMESPACE
inheritedConditionalRendering = inheritedConditionalRendering_;
return *this;
}
+#endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
operator VkPhysicalDeviceConditionalRenderingFeaturesEXT const &() const VULKAN_HPP_NOEXCEPT
{
@@ -35460,6 +36211,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
+#if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
PhysicalDeviceCooperativeMatrixFeaturesNV & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
{
pNext = pNext_;
@@ -35479,6 +36231,7 @@ namespace VULKAN_HPP_NAMESPACE
cooperativeMatrixRobustBufferAccess = cooperativeMatrixRobustBufferAccess_;
return *this;
}
+#endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
operator VkPhysicalDeviceCooperativeMatrixFeaturesNV const &() const VULKAN_HPP_NOEXCEPT
{
@@ -35629,6 +36382,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
+#if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
PhysicalDeviceCornerSampledImageFeaturesNV & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
{
pNext = pNext_;
@@ -35641,6 +36395,7 @@ namespace VULKAN_HPP_NAMESPACE
cornerSampledImage = cornerSampledImage_;
return *this;
}
+#endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
operator VkPhysicalDeviceCornerSampledImageFeaturesNV const &() const VULKAN_HPP_NOEXCEPT
{
@@ -35715,6 +36470,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
+#if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
PhysicalDeviceCoverageReductionModeFeaturesNV & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
{
pNext = pNext_;
@@ -35727,6 +36483,7 @@ namespace VULKAN_HPP_NAMESPACE
coverageReductionMode = coverageReductionMode_;
return *this;
}
+#endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
operator VkPhysicalDeviceCoverageReductionModeFeaturesNV const &() const VULKAN_HPP_NOEXCEPT
{
@@ -35803,6 +36560,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
+#if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
PhysicalDeviceCustomBorderColorFeaturesEXT & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
{
pNext = pNext_;
@@ -35822,6 +36580,7 @@ namespace VULKAN_HPP_NAMESPACE
customBorderColorWithoutFormat = customBorderColorWithoutFormat_;
return *this;
}
+#endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
operator VkPhysicalDeviceCustomBorderColorFeaturesEXT const &() const VULKAN_HPP_NOEXCEPT
{
@@ -35973,6 +36732,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
+#if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
PhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
{
pNext = pNext_;
@@ -35985,6 +36745,7 @@ namespace VULKAN_HPP_NAMESPACE
dedicatedAllocationImageAliasing = dedicatedAllocationImageAliasing_;
return *this;
}
+#endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
operator VkPhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV const &() const VULKAN_HPP_NOEXCEPT
{
@@ -36061,6 +36822,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
+#if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
PhysicalDeviceDepthClipEnableFeaturesEXT & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
{
pNext = pNext_;
@@ -36073,6 +36835,7 @@ namespace VULKAN_HPP_NAMESPACE
depthClipEnable = depthClipEnable_;
return *this;
}
+#endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
operator VkPhysicalDeviceDepthClipEnableFeaturesEXT const &() const VULKAN_HPP_NOEXCEPT
{
@@ -36272,6 +37035,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
+#if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
PhysicalDeviceDescriptorIndexingFeatures & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
{
pNext = pNext_;
@@ -36417,6 +37181,7 @@ namespace VULKAN_HPP_NAMESPACE
runtimeDescriptorArray = runtimeDescriptorArray_;
return *this;
}
+#endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
operator VkPhysicalDeviceDescriptorIndexingFeatures const &() const VULKAN_HPP_NOEXCEPT
{
@@ -36710,6 +37475,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
+#if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
PhysicalDeviceDeviceGeneratedCommandsFeaturesNV & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
{
pNext = pNext_;
@@ -36722,6 +37488,7 @@ namespace VULKAN_HPP_NAMESPACE
deviceGeneratedCommands = deviceGeneratedCommands_;
return *this;
}
+#endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
operator VkPhysicalDeviceDeviceGeneratedCommandsFeaturesNV const &() const VULKAN_HPP_NOEXCEPT
{
@@ -36904,6 +37671,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
+#if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
PhysicalDeviceDeviceMemoryReportFeaturesEXT & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
{
pNext = pNext_;
@@ -36916,6 +37684,7 @@ namespace VULKAN_HPP_NAMESPACE
deviceMemoryReport = deviceMemoryReport_;
return *this;
}
+#endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
operator VkPhysicalDeviceDeviceMemoryReportFeaturesEXT const &() const VULKAN_HPP_NOEXCEPT
{
@@ -36990,6 +37759,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
+#if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
PhysicalDeviceDiagnosticsConfigFeaturesNV & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
{
pNext = pNext_;
@@ -37002,6 +37772,7 @@ namespace VULKAN_HPP_NAMESPACE
diagnosticsConfig = diagnosticsConfig_;
return *this;
}
+#endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
operator VkPhysicalDeviceDiagnosticsConfigFeaturesNV const &() const VULKAN_HPP_NOEXCEPT
{
@@ -37313,6 +38084,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
+#if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
PhysicalDeviceExclusiveScissorFeaturesNV & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
{
pNext = pNext_;
@@ -37325,6 +38097,7 @@ namespace VULKAN_HPP_NAMESPACE
exclusiveScissor = exclusiveScissor_;
return *this;
}
+#endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
operator VkPhysicalDeviceExclusiveScissorFeaturesNV const &() const VULKAN_HPP_NOEXCEPT
{
@@ -37403,6 +38176,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
+#if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
PhysicalDeviceExtendedDynamicState2FeaturesEXT & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
{
pNext = pNext_;
@@ -37429,6 +38203,7 @@ namespace VULKAN_HPP_NAMESPACE
extendedDynamicState2PatchControlPoints = extendedDynamicState2PatchControlPoints_;
return *this;
}
+#endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
operator VkPhysicalDeviceExtendedDynamicState2FeaturesEXT const &() const VULKAN_HPP_NOEXCEPT
{
@@ -37508,6 +38283,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
+#if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
PhysicalDeviceExtendedDynamicStateFeaturesEXT & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
{
pNext = pNext_;
@@ -37520,6 +38296,7 @@ namespace VULKAN_HPP_NAMESPACE
extendedDynamicState = extendedDynamicState_;
return *this;
}
+#endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
operator VkPhysicalDeviceExtendedDynamicStateFeaturesEXT const &() const VULKAN_HPP_NOEXCEPT
{
@@ -37595,6 +38372,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
+#if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
PhysicalDeviceExternalBufferInfo & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
{
pNext = pNext_;
@@ -37619,6 +38397,7 @@ namespace VULKAN_HPP_NAMESPACE
handleType = handleType_;
return *this;
}
+#endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
operator VkPhysicalDeviceExternalBufferInfo const &() const VULKAN_HPP_NOEXCEPT
{
@@ -37694,6 +38473,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
+#if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
PhysicalDeviceExternalFenceInfo & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
{
pNext = pNext_;
@@ -37706,6 +38486,7 @@ namespace VULKAN_HPP_NAMESPACE
handleType = handleType_;
return *this;
}
+#endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
operator VkPhysicalDeviceExternalFenceInfo const &() const VULKAN_HPP_NOEXCEPT
{
@@ -37781,6 +38562,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
+#if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
PhysicalDeviceExternalImageFormatInfo & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
{
pNext = pNext_;
@@ -37793,6 +38575,7 @@ namespace VULKAN_HPP_NAMESPACE
handleType = handleType_;
return *this;
}
+#endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
operator VkPhysicalDeviceExternalImageFormatInfo const &() const VULKAN_HPP_NOEXCEPT
{
@@ -37910,6 +38693,94 @@ namespace VULKAN_HPP_NAMESPACE
using Type = PhysicalDeviceExternalMemoryHostPropertiesEXT;
};
+ struct PhysicalDeviceExternalMemoryRDMAFeaturesNV
+ {
+ static const bool allowDuplicate = false;
+ static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType =
+ StructureType::ePhysicalDeviceExternalMemoryRdmaFeaturesNV;
+
+#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
+ VULKAN_HPP_CONSTEXPR PhysicalDeviceExternalMemoryRDMAFeaturesNV(
+ VULKAN_HPP_NAMESPACE::Bool32 externalMemoryRDMA_ = {} ) VULKAN_HPP_NOEXCEPT
+ : externalMemoryRDMA( externalMemoryRDMA_ )
+ {}
+
+ VULKAN_HPP_CONSTEXPR PhysicalDeviceExternalMemoryRDMAFeaturesNV(
+ PhysicalDeviceExternalMemoryRDMAFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
+
+ PhysicalDeviceExternalMemoryRDMAFeaturesNV( VkPhysicalDeviceExternalMemoryRDMAFeaturesNV const & rhs )
+ VULKAN_HPP_NOEXCEPT
+ : PhysicalDeviceExternalMemoryRDMAFeaturesNV(
+ *reinterpret_cast<PhysicalDeviceExternalMemoryRDMAFeaturesNV const *>( &rhs ) )
+ {}
+#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
+
+ VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceExternalMemoryRDMAFeaturesNV &
+ operator=( PhysicalDeviceExternalMemoryRDMAFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
+
+ PhysicalDeviceExternalMemoryRDMAFeaturesNV &
+ operator=( VkPhysicalDeviceExternalMemoryRDMAFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT
+ {
+ *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceExternalMemoryRDMAFeaturesNV const *>( &rhs );
+ return *this;
+ }
+
+#if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
+ PhysicalDeviceExternalMemoryRDMAFeaturesNV & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
+ {
+ pNext = pNext_;
+ return *this;
+ }
+
+ PhysicalDeviceExternalMemoryRDMAFeaturesNV &
+ setExternalMemoryRDMA( VULKAN_HPP_NAMESPACE::Bool32 externalMemoryRDMA_ ) VULKAN_HPP_NOEXCEPT
+ {
+ externalMemoryRDMA = externalMemoryRDMA_;
+ return *this;
+ }
+#endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
+
+ operator VkPhysicalDeviceExternalMemoryRDMAFeaturesNV const &() const VULKAN_HPP_NOEXCEPT
+ {
+ return *reinterpret_cast<const VkPhysicalDeviceExternalMemoryRDMAFeaturesNV *>( this );
+ }
+
+ operator VkPhysicalDeviceExternalMemoryRDMAFeaturesNV &() VULKAN_HPP_NOEXCEPT
+ {
+ return *reinterpret_cast<VkPhysicalDeviceExternalMemoryRDMAFeaturesNV *>( this );
+ }
+
+#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
+ auto operator<=>( PhysicalDeviceExternalMemoryRDMAFeaturesNV const & ) const = default;
+#else
+ bool operator==( PhysicalDeviceExternalMemoryRDMAFeaturesNV const & rhs ) const VULKAN_HPP_NOEXCEPT
+ {
+ return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( externalMemoryRDMA == rhs.externalMemoryRDMA );
+ }
+
+ bool operator!=( PhysicalDeviceExternalMemoryRDMAFeaturesNV const & rhs ) const VULKAN_HPP_NOEXCEPT
+ {
+ return !operator==( rhs );
+ }
+#endif
+
+ public:
+ VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceExternalMemoryRdmaFeaturesNV;
+ void * pNext = {};
+ VULKAN_HPP_NAMESPACE::Bool32 externalMemoryRDMA = {};
+ };
+ static_assert( sizeof( PhysicalDeviceExternalMemoryRDMAFeaturesNV ) ==
+ sizeof( VkPhysicalDeviceExternalMemoryRDMAFeaturesNV ),
+ "struct and wrapper have different size!" );
+ static_assert( std::is_standard_layout<PhysicalDeviceExternalMemoryRDMAFeaturesNV>::value,
+ "struct wrapper is not a standard layout!" );
+
+ template <>
+ struct CppType<StructureType, StructureType::ePhysicalDeviceExternalMemoryRdmaFeaturesNV>
+ {
+ using Type = PhysicalDeviceExternalMemoryRDMAFeaturesNV;
+ };
+
struct PhysicalDeviceExternalSemaphoreInfo
{
static const bool allowDuplicate = false;
@@ -37941,6 +38812,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
+#if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
PhysicalDeviceExternalSemaphoreInfo & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
{
pNext = pNext_;
@@ -37953,6 +38825,7 @@ namespace VULKAN_HPP_NAMESPACE
handleType = handleType_;
return *this;
}
+#endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
operator VkPhysicalDeviceExternalSemaphoreInfo const &() const VULKAN_HPP_NOEXCEPT
{
@@ -38023,6 +38896,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
+#if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
PhysicalDeviceFeatures2 & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
{
pNext = pNext_;
@@ -38035,6 +38909,7 @@ namespace VULKAN_HPP_NAMESPACE
features = features_;
return *this;
}
+#endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
operator VkPhysicalDeviceFeatures2 const &() const VULKAN_HPP_NOEXCEPT
{
@@ -38249,6 +39124,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
+#if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
PhysicalDeviceFragmentDensityMap2FeaturesEXT & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
{
pNext = pNext_;
@@ -38261,6 +39137,7 @@ namespace VULKAN_HPP_NAMESPACE
fragmentDensityMapDeferred = fragmentDensityMapDeferred_;
return *this;
}
+#endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
operator VkPhysicalDeviceFragmentDensityMap2FeaturesEXT const &() const VULKAN_HPP_NOEXCEPT
{
@@ -38425,6 +39302,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
+#if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
PhysicalDeviceFragmentDensityMapFeaturesEXT & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
{
pNext = pNext_;
@@ -38451,6 +39329,7 @@ namespace VULKAN_HPP_NAMESPACE
fragmentDensityMapNonSubsampledImages = fragmentDensityMapNonSubsampledImages_;
return *this;
}
+#endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
operator VkPhysicalDeviceFragmentDensityMapFeaturesEXT const &() const VULKAN_HPP_NOEXCEPT
{
@@ -38612,6 +39491,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
+#if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
PhysicalDeviceFragmentShaderBarycentricFeaturesNV & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
{
pNext = pNext_;
@@ -38624,6 +39504,7 @@ namespace VULKAN_HPP_NAMESPACE
fragmentShaderBarycentric = fragmentShaderBarycentric_;
return *this;
}
+#endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
operator VkPhysicalDeviceFragmentShaderBarycentricFeaturesNV const &() const VULKAN_HPP_NOEXCEPT
{
@@ -38703,6 +39584,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
+#if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
PhysicalDeviceFragmentShaderInterlockFeaturesEXT & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
{
pNext = pNext_;
@@ -38729,6 +39611,7 @@ namespace VULKAN_HPP_NAMESPACE
fragmentShaderShadingRateInterlock = fragmentShaderShadingRateInterlock_;
return *this;
}
+#endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
operator VkPhysicalDeviceFragmentShaderInterlockFeaturesEXT const &() const VULKAN_HPP_NOEXCEPT
{
@@ -38812,6 +39695,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
+#if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
PhysicalDeviceFragmentShadingRateEnumsFeaturesNV & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
{
pNext = pNext_;
@@ -38838,6 +39722,7 @@ namespace VULKAN_HPP_NAMESPACE
noInvocationFragmentShadingRates = noInvocationFragmentShadingRates_;
return *this;
}
+#endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
operator VkPhysicalDeviceFragmentShadingRateEnumsFeaturesNV const &() const VULKAN_HPP_NOEXCEPT
{
@@ -38919,6 +39804,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
+#if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
PhysicalDeviceFragmentShadingRateEnumsPropertiesNV & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
{
pNext = pNext_;
@@ -38931,6 +39817,7 @@ namespace VULKAN_HPP_NAMESPACE
maxFragmentShadingRateInvocationCount = maxFragmentShadingRateInvocationCount_;
return *this;
}
+#endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
operator VkPhysicalDeviceFragmentShadingRateEnumsPropertiesNV const &() const VULKAN_HPP_NOEXCEPT
{
@@ -39011,6 +39898,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
+#if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
PhysicalDeviceFragmentShadingRateFeaturesKHR & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
{
pNext = pNext_;
@@ -39037,6 +39925,7 @@ namespace VULKAN_HPP_NAMESPACE
attachmentFragmentShadingRate = attachmentFragmentShadingRate_;
return *this;
}
+#endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
operator VkPhysicalDeviceFragmentShadingRateFeaturesKHR const &() const VULKAN_HPP_NOEXCEPT
{
@@ -39334,6 +40223,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
+#if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
PhysicalDeviceGlobalPriorityQueryFeaturesEXT & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
{
pNext = pNext_;
@@ -39346,6 +40236,7 @@ namespace VULKAN_HPP_NAMESPACE
globalPriorityQuery = globalPriorityQuery_;
return *this;
}
+#endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
operator VkPhysicalDeviceGlobalPriorityQueryFeaturesEXT const &() const VULKAN_HPP_NOEXCEPT
{
@@ -39495,6 +40386,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
+#if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
PhysicalDeviceHostQueryResetFeatures & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
{
pNext = pNext_;
@@ -39507,6 +40399,7 @@ namespace VULKAN_HPP_NAMESPACE
hostQueryReset = hostQueryReset_;
return *this;
}
+#endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
operator VkPhysicalDeviceHostQueryResetFeatures const &() const VULKAN_HPP_NOEXCEPT
{
@@ -39682,6 +40575,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
+#if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
PhysicalDeviceImageDrmFormatModifierInfoEXT & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
{
pNext = pNext_;
@@ -39716,7 +40610,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
-#if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
+# if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
PhysicalDeviceImageDrmFormatModifierInfoEXT & setQueueFamilyIndices(
VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const uint32_t> const & queueFamilyIndices_ ) VULKAN_HPP_NOEXCEPT
{
@@ -39724,7 +40618,8 @@ namespace VULKAN_HPP_NAMESPACE
pQueueFamilyIndices = queueFamilyIndices_.data();
return *this;
}
-#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
+# endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
+#endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
operator VkPhysicalDeviceImageDrmFormatModifierInfoEXT const &() const VULKAN_HPP_NOEXCEPT
{
@@ -39808,6 +40703,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
+#if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
PhysicalDeviceImageFormatInfo2 & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
{
pNext = pNext_;
@@ -39843,6 +40739,7 @@ namespace VULKAN_HPP_NAMESPACE
flags = flags_;
return *this;
}
+#endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
operator VkPhysicalDeviceImageFormatInfo2 const &() const VULKAN_HPP_NOEXCEPT
{
@@ -39922,6 +40819,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
+#if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
PhysicalDeviceImageRobustnessFeaturesEXT & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
{
pNext = pNext_;
@@ -39934,6 +40832,7 @@ namespace VULKAN_HPP_NAMESPACE
robustImageAccess = robustImageAccess_;
return *this;
}
+#endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
operator VkPhysicalDeviceImageRobustnessFeaturesEXT const &() const VULKAN_HPP_NOEXCEPT
{
@@ -40009,6 +40908,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
+#if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
PhysicalDeviceImageViewImageFormatInfoEXT & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
{
pNext = pNext_;
@@ -40021,6 +40921,7 @@ namespace VULKAN_HPP_NAMESPACE
imageViewType = imageViewType_;
return *this;
}
+#endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
operator VkPhysicalDeviceImageViewImageFormatInfoEXT const &() const VULKAN_HPP_NOEXCEPT
{
@@ -40095,6 +40996,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
+#if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
PhysicalDeviceImagelessFramebufferFeatures & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
{
pNext = pNext_;
@@ -40107,6 +41009,7 @@ namespace VULKAN_HPP_NAMESPACE
imagelessFramebuffer = imagelessFramebuffer_;
return *this;
}
+#endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
operator VkPhysicalDeviceImagelessFramebufferFeatures const &() const VULKAN_HPP_NOEXCEPT
{
@@ -40181,6 +41084,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
+#if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
PhysicalDeviceIndexTypeUint8FeaturesEXT & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
{
pNext = pNext_;
@@ -40193,6 +41097,7 @@ namespace VULKAN_HPP_NAMESPACE
indexTypeUint8 = indexTypeUint8_;
return *this;
}
+#endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
operator VkPhysicalDeviceIndexTypeUint8FeaturesEXT const &() const VULKAN_HPP_NOEXCEPT
{
@@ -40267,6 +41172,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
+#if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
PhysicalDeviceInheritedViewportScissorFeaturesNV & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
{
pNext = pNext_;
@@ -40279,6 +41185,7 @@ namespace VULKAN_HPP_NAMESPACE
inheritedViewportScissor2D = inheritedViewportScissor2D_;
return *this;
}
+#endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
operator VkPhysicalDeviceInheritedViewportScissorFeaturesNV const &() const VULKAN_HPP_NOEXCEPT
{
@@ -40356,6 +41263,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
+#if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
PhysicalDeviceInlineUniformBlockFeaturesEXT & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
{
pNext = pNext_;
@@ -40375,6 +41283,7 @@ namespace VULKAN_HPP_NAMESPACE
descriptorBindingInlineUniformBlockUpdateAfterBind = descriptorBindingInlineUniformBlockUpdateAfterBind_;
return *this;
}
+#endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
operator VkPhysicalDeviceInlineUniformBlockFeaturesEXT const &() const VULKAN_HPP_NOEXCEPT
{
@@ -40513,6 +41422,93 @@ namespace VULKAN_HPP_NAMESPACE
using Type = PhysicalDeviceInlineUniformBlockPropertiesEXT;
};
+ struct PhysicalDeviceInvocationMaskFeaturesHUAWEI
+ {
+ static const bool allowDuplicate = false;
+ static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType =
+ StructureType::ePhysicalDeviceInvocationMaskFeaturesHUAWEI;
+
+#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
+ VULKAN_HPP_CONSTEXPR PhysicalDeviceInvocationMaskFeaturesHUAWEI( VULKAN_HPP_NAMESPACE::Bool32 invocationMask_ = {} )
+ VULKAN_HPP_NOEXCEPT : invocationMask( invocationMask_ )
+ {}
+
+ VULKAN_HPP_CONSTEXPR PhysicalDeviceInvocationMaskFeaturesHUAWEI(
+ PhysicalDeviceInvocationMaskFeaturesHUAWEI const & rhs ) VULKAN_HPP_NOEXCEPT = default;
+
+ PhysicalDeviceInvocationMaskFeaturesHUAWEI( VkPhysicalDeviceInvocationMaskFeaturesHUAWEI const & rhs )
+ VULKAN_HPP_NOEXCEPT
+ : PhysicalDeviceInvocationMaskFeaturesHUAWEI(
+ *reinterpret_cast<PhysicalDeviceInvocationMaskFeaturesHUAWEI const *>( &rhs ) )
+ {}
+#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
+
+ VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceInvocationMaskFeaturesHUAWEI &
+ operator=( PhysicalDeviceInvocationMaskFeaturesHUAWEI const & rhs ) VULKAN_HPP_NOEXCEPT = default;
+
+ PhysicalDeviceInvocationMaskFeaturesHUAWEI &
+ operator=( VkPhysicalDeviceInvocationMaskFeaturesHUAWEI const & rhs ) VULKAN_HPP_NOEXCEPT
+ {
+ *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceInvocationMaskFeaturesHUAWEI const *>( &rhs );
+ return *this;
+ }
+
+#if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
+ PhysicalDeviceInvocationMaskFeaturesHUAWEI & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
+ {
+ pNext = pNext_;
+ return *this;
+ }
+
+ PhysicalDeviceInvocationMaskFeaturesHUAWEI &
+ setInvocationMask( VULKAN_HPP_NAMESPACE::Bool32 invocationMask_ ) VULKAN_HPP_NOEXCEPT
+ {
+ invocationMask = invocationMask_;
+ return *this;
+ }
+#endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
+
+ operator VkPhysicalDeviceInvocationMaskFeaturesHUAWEI const &() const VULKAN_HPP_NOEXCEPT
+ {
+ return *reinterpret_cast<const VkPhysicalDeviceInvocationMaskFeaturesHUAWEI *>( this );
+ }
+
+ operator VkPhysicalDeviceInvocationMaskFeaturesHUAWEI &() VULKAN_HPP_NOEXCEPT
+ {
+ return *reinterpret_cast<VkPhysicalDeviceInvocationMaskFeaturesHUAWEI *>( this );
+ }
+
+#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
+ auto operator<=>( PhysicalDeviceInvocationMaskFeaturesHUAWEI const & ) const = default;
+#else
+ bool operator==( PhysicalDeviceInvocationMaskFeaturesHUAWEI const & rhs ) const VULKAN_HPP_NOEXCEPT
+ {
+ return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( invocationMask == rhs.invocationMask );
+ }
+
+ bool operator!=( PhysicalDeviceInvocationMaskFeaturesHUAWEI const & rhs ) const VULKAN_HPP_NOEXCEPT
+ {
+ return !operator==( rhs );
+ }
+#endif
+
+ public:
+ VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceInvocationMaskFeaturesHUAWEI;
+ void * pNext = {};
+ VULKAN_HPP_NAMESPACE::Bool32 invocationMask = {};
+ };
+ static_assert( sizeof( PhysicalDeviceInvocationMaskFeaturesHUAWEI ) ==
+ sizeof( VkPhysicalDeviceInvocationMaskFeaturesHUAWEI ),
+ "struct and wrapper have different size!" );
+ static_assert( std::is_standard_layout<PhysicalDeviceInvocationMaskFeaturesHUAWEI>::value,
+ "struct wrapper is not a standard layout!" );
+
+ template <>
+ struct CppType<StructureType, StructureType::ePhysicalDeviceInvocationMaskFeaturesHUAWEI>
+ {
+ using Type = PhysicalDeviceInvocationMaskFeaturesHUAWEI;
+ };
+
struct PhysicalDeviceLimits
{
#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
@@ -41023,6 +42019,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
+#if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
PhysicalDeviceLineRasterizationFeaturesEXT & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
{
pNext = pNext_;
@@ -41070,6 +42067,7 @@ namespace VULKAN_HPP_NAMESPACE
stippledSmoothLines = stippledSmoothLines_;
return *this;
}
+#endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
operator VkPhysicalDeviceLineRasterizationFeaturesEXT const &() const VULKAN_HPP_NOEXCEPT
{
@@ -41377,6 +42375,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
+#if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
PhysicalDeviceMemoryPriorityFeaturesEXT & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
{
pNext = pNext_;
@@ -41389,6 +42388,7 @@ namespace VULKAN_HPP_NAMESPACE
memoryPriority = memoryPriority_;
return *this;
}
+#endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
operator VkPhysicalDeviceMemoryPriorityFeaturesEXT const &() const VULKAN_HPP_NOEXCEPT
{
@@ -41599,6 +42599,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
+#if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
PhysicalDeviceMeshShaderFeaturesNV & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
{
pNext = pNext_;
@@ -41616,6 +42617,7 @@ namespace VULKAN_HPP_NAMESPACE
meshShader = meshShader_;
return *this;
}
+#endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
operator VkPhysicalDeviceMeshShaderFeaturesNV const &() const VULKAN_HPP_NOEXCEPT
{
@@ -41808,6 +42810,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
+#if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
PhysicalDeviceMultiDrawFeaturesEXT & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
{
pNext = pNext_;
@@ -41819,6 +42822,7 @@ namespace VULKAN_HPP_NAMESPACE
multiDraw = multiDraw_;
return *this;
}
+#endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
operator VkPhysicalDeviceMultiDrawFeaturesEXT const &() const VULKAN_HPP_NOEXCEPT
{
@@ -41961,6 +42965,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
+#if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
PhysicalDeviceMultiviewFeatures & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
{
pNext = pNext_;
@@ -41986,6 +42991,7 @@ namespace VULKAN_HPP_NAMESPACE
multiviewTessellationShader = multiviewTessellationShader_;
return *this;
}
+#endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
operator VkPhysicalDeviceMultiviewFeatures const &() const VULKAN_HPP_NOEXCEPT
{
@@ -42214,6 +43220,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
+#if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
PhysicalDeviceMutableDescriptorTypeFeaturesVALVE & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
{
pNext = pNext_;
@@ -42226,6 +43233,7 @@ namespace VULKAN_HPP_NAMESPACE
mutableDescriptorType = mutableDescriptorType_;
return *this;
}
+#endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
operator VkPhysicalDeviceMutableDescriptorTypeFeaturesVALVE const &() const VULKAN_HPP_NOEXCEPT
{
@@ -42382,6 +43390,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
+#if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
PhysicalDevicePerformanceQueryFeaturesKHR & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
{
pNext = pNext_;
@@ -42401,6 +43410,7 @@ namespace VULKAN_HPP_NAMESPACE
performanceCounterMultipleQueryPools = performanceCounterMultipleQueryPools_;
return *this;
}
+#endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
operator VkPhysicalDevicePerformanceQueryFeaturesKHR const &() const VULKAN_HPP_NOEXCEPT
{
@@ -42553,6 +43563,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
+#if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
PhysicalDevicePipelineCreationCacheControlFeaturesEXT & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
{
pNext = pNext_;
@@ -42565,6 +43576,7 @@ namespace VULKAN_HPP_NAMESPACE
pipelineCreationCacheControl = pipelineCreationCacheControl_;
return *this;
}
+#endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
operator VkPhysicalDevicePipelineCreationCacheControlFeaturesEXT const &() const VULKAN_HPP_NOEXCEPT
{
@@ -42641,6 +43653,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
+#if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
PhysicalDevicePipelineExecutablePropertiesFeaturesKHR & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
{
pNext = pNext_;
@@ -42653,6 +43666,7 @@ namespace VULKAN_HPP_NAMESPACE
pipelineExecutableInfo = pipelineExecutableInfo_;
return *this;
}
+#endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
operator VkPhysicalDevicePipelineExecutablePropertiesFeaturesKHR const &() const VULKAN_HPP_NOEXCEPT
{
@@ -42831,6 +43845,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
+# if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
PhysicalDevicePortabilitySubsetFeaturesKHR & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
{
pNext = pNext_;
@@ -42940,6 +43955,7 @@ namespace VULKAN_HPP_NAMESPACE
vertexAttributeAccessBeyondStride = vertexAttributeAccessBeyondStride_;
return *this;
}
+# endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
operator VkPhysicalDevicePortabilitySubsetFeaturesKHR const &() const VULKAN_HPP_NOEXCEPT
{
@@ -43042,6 +44058,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
+# if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
PhysicalDevicePortabilitySubsetPropertiesKHR & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
{
pNext = pNext_;
@@ -43054,6 +44071,7 @@ namespace VULKAN_HPP_NAMESPACE
minVertexInputBindingStrideAlignment = minVertexInputBindingStrideAlignment_;
return *this;
}
+# endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
operator VkPhysicalDevicePortabilitySubsetPropertiesKHR const &() const VULKAN_HPP_NOEXCEPT
{
@@ -43098,6 +44116,276 @@ namespace VULKAN_HPP_NAMESPACE
};
#endif /*VK_ENABLE_BETA_EXTENSIONS*/
+ struct PhysicalDevicePresentIdFeaturesKHR
+ {
+ static const bool allowDuplicate = false;
+ static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType =
+ StructureType::ePhysicalDevicePresentIdFeaturesKHR;
+
+#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
+ VULKAN_HPP_CONSTEXPR
+ PhysicalDevicePresentIdFeaturesKHR( VULKAN_HPP_NAMESPACE::Bool32 presentId_ = {} ) VULKAN_HPP_NOEXCEPT
+ : presentId( presentId_ )
+ {}
+
+ VULKAN_HPP_CONSTEXPR PhysicalDevicePresentIdFeaturesKHR( PhysicalDevicePresentIdFeaturesKHR const & rhs )
+ VULKAN_HPP_NOEXCEPT = default;
+
+ PhysicalDevicePresentIdFeaturesKHR( VkPhysicalDevicePresentIdFeaturesKHR const & rhs ) VULKAN_HPP_NOEXCEPT
+ : PhysicalDevicePresentIdFeaturesKHR( *reinterpret_cast<PhysicalDevicePresentIdFeaturesKHR const *>( &rhs ) )
+ {}
+#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
+
+ VULKAN_HPP_CONSTEXPR_14 PhysicalDevicePresentIdFeaturesKHR &
+ operator=( PhysicalDevicePresentIdFeaturesKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
+
+ PhysicalDevicePresentIdFeaturesKHR &
+ operator=( VkPhysicalDevicePresentIdFeaturesKHR const & rhs ) VULKAN_HPP_NOEXCEPT
+ {
+ *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDevicePresentIdFeaturesKHR const *>( &rhs );
+ return *this;
+ }
+
+#if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
+ PhysicalDevicePresentIdFeaturesKHR & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
+ {
+ pNext = pNext_;
+ return *this;
+ }
+
+ PhysicalDevicePresentIdFeaturesKHR & setPresentId( VULKAN_HPP_NAMESPACE::Bool32 presentId_ ) VULKAN_HPP_NOEXCEPT
+ {
+ presentId = presentId_;
+ return *this;
+ }
+#endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
+
+ operator VkPhysicalDevicePresentIdFeaturesKHR const &() const VULKAN_HPP_NOEXCEPT
+ {
+ return *reinterpret_cast<const VkPhysicalDevicePresentIdFeaturesKHR *>( this );
+ }
+
+ operator VkPhysicalDevicePresentIdFeaturesKHR &() VULKAN_HPP_NOEXCEPT
+ {
+ return *reinterpret_cast<VkPhysicalDevicePresentIdFeaturesKHR *>( this );
+ }
+
+#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
+ auto operator<=>( PhysicalDevicePresentIdFeaturesKHR const & ) const = default;
+#else
+ bool operator==( PhysicalDevicePresentIdFeaturesKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
+ {
+ return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( presentId == rhs.presentId );
+ }
+
+ bool operator!=( PhysicalDevicePresentIdFeaturesKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
+ {
+ return !operator==( rhs );
+ }
+#endif
+
+ public:
+ VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDevicePresentIdFeaturesKHR;
+ void * pNext = {};
+ VULKAN_HPP_NAMESPACE::Bool32 presentId = {};
+ };
+ static_assert( sizeof( PhysicalDevicePresentIdFeaturesKHR ) == sizeof( VkPhysicalDevicePresentIdFeaturesKHR ),
+ "struct and wrapper have different size!" );
+ static_assert( std::is_standard_layout<PhysicalDevicePresentIdFeaturesKHR>::value,
+ "struct wrapper is not a standard layout!" );
+
+ template <>
+ struct CppType<StructureType, StructureType::ePhysicalDevicePresentIdFeaturesKHR>
+ {
+ using Type = PhysicalDevicePresentIdFeaturesKHR;
+ };
+
+ struct PhysicalDevicePresentWaitFeaturesKHR
+ {
+ static const bool allowDuplicate = false;
+ static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType =
+ StructureType::ePhysicalDevicePresentWaitFeaturesKHR;
+
+#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
+ VULKAN_HPP_CONSTEXPR
+ PhysicalDevicePresentWaitFeaturesKHR( VULKAN_HPP_NAMESPACE::Bool32 presentWait_ = {} ) VULKAN_HPP_NOEXCEPT
+ : presentWait( presentWait_ )
+ {}
+
+ VULKAN_HPP_CONSTEXPR PhysicalDevicePresentWaitFeaturesKHR( PhysicalDevicePresentWaitFeaturesKHR const & rhs )
+ VULKAN_HPP_NOEXCEPT = default;
+
+ PhysicalDevicePresentWaitFeaturesKHR( VkPhysicalDevicePresentWaitFeaturesKHR const & rhs ) VULKAN_HPP_NOEXCEPT
+ : PhysicalDevicePresentWaitFeaturesKHR( *reinterpret_cast<PhysicalDevicePresentWaitFeaturesKHR const *>( &rhs ) )
+ {}
+#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
+
+ VULKAN_HPP_CONSTEXPR_14 PhysicalDevicePresentWaitFeaturesKHR &
+ operator=( PhysicalDevicePresentWaitFeaturesKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
+
+ PhysicalDevicePresentWaitFeaturesKHR &
+ operator=( VkPhysicalDevicePresentWaitFeaturesKHR const & rhs ) VULKAN_HPP_NOEXCEPT
+ {
+ *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDevicePresentWaitFeaturesKHR const *>( &rhs );
+ return *this;
+ }
+
+#if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
+ PhysicalDevicePresentWaitFeaturesKHR & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
+ {
+ pNext = pNext_;
+ return *this;
+ }
+
+ PhysicalDevicePresentWaitFeaturesKHR &
+ setPresentWait( VULKAN_HPP_NAMESPACE::Bool32 presentWait_ ) VULKAN_HPP_NOEXCEPT
+ {
+ presentWait = presentWait_;
+ return *this;
+ }
+#endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
+
+ operator VkPhysicalDevicePresentWaitFeaturesKHR const &() const VULKAN_HPP_NOEXCEPT
+ {
+ return *reinterpret_cast<const VkPhysicalDevicePresentWaitFeaturesKHR *>( this );
+ }
+
+ operator VkPhysicalDevicePresentWaitFeaturesKHR &() VULKAN_HPP_NOEXCEPT
+ {
+ return *reinterpret_cast<VkPhysicalDevicePresentWaitFeaturesKHR *>( this );
+ }
+
+#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
+ auto operator<=>( PhysicalDevicePresentWaitFeaturesKHR const & ) const = default;
+#else
+ bool operator==( PhysicalDevicePresentWaitFeaturesKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
+ {
+ return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( presentWait == rhs.presentWait );
+ }
+
+ bool operator!=( PhysicalDevicePresentWaitFeaturesKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
+ {
+ return !operator==( rhs );
+ }
+#endif
+
+ public:
+ VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDevicePresentWaitFeaturesKHR;
+ void * pNext = {};
+ VULKAN_HPP_NAMESPACE::Bool32 presentWait = {};
+ };
+ static_assert( sizeof( PhysicalDevicePresentWaitFeaturesKHR ) == sizeof( VkPhysicalDevicePresentWaitFeaturesKHR ),
+ "struct and wrapper have different size!" );
+ static_assert( std::is_standard_layout<PhysicalDevicePresentWaitFeaturesKHR>::value,
+ "struct wrapper is not a standard layout!" );
+
+ template <>
+ struct CppType<StructureType, StructureType::ePhysicalDevicePresentWaitFeaturesKHR>
+ {
+ using Type = PhysicalDevicePresentWaitFeaturesKHR;
+ };
+
+ struct PhysicalDevicePrimitiveTopologyListRestartFeaturesEXT
+ {
+ static const bool allowDuplicate = false;
+ static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType =
+ StructureType::ePhysicalDevicePrimitiveTopologyListRestartFeaturesEXT;
+
+#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
+ VULKAN_HPP_CONSTEXPR PhysicalDevicePrimitiveTopologyListRestartFeaturesEXT(
+ VULKAN_HPP_NAMESPACE::Bool32 primitiveTopologyListRestart_ = {},
+ VULKAN_HPP_NAMESPACE::Bool32 primitiveTopologyPatchListRestart_ = {} ) VULKAN_HPP_NOEXCEPT
+ : primitiveTopologyListRestart( primitiveTopologyListRestart_ )
+ , primitiveTopologyPatchListRestart( primitiveTopologyPatchListRestart_ )
+ {}
+
+ VULKAN_HPP_CONSTEXPR PhysicalDevicePrimitiveTopologyListRestartFeaturesEXT(
+ PhysicalDevicePrimitiveTopologyListRestartFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
+
+ PhysicalDevicePrimitiveTopologyListRestartFeaturesEXT(
+ VkPhysicalDevicePrimitiveTopologyListRestartFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
+ : PhysicalDevicePrimitiveTopologyListRestartFeaturesEXT(
+ *reinterpret_cast<PhysicalDevicePrimitiveTopologyListRestartFeaturesEXT const *>( &rhs ) )
+ {}
+#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
+
+ VULKAN_HPP_CONSTEXPR_14 PhysicalDevicePrimitiveTopologyListRestartFeaturesEXT &
+ operator=( PhysicalDevicePrimitiveTopologyListRestartFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
+
+ PhysicalDevicePrimitiveTopologyListRestartFeaturesEXT &
+ operator=( VkPhysicalDevicePrimitiveTopologyListRestartFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
+ {
+ *this =
+ *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDevicePrimitiveTopologyListRestartFeaturesEXT const *>( &rhs );
+ return *this;
+ }
+
+#if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
+ PhysicalDevicePrimitiveTopologyListRestartFeaturesEXT & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
+ {
+ pNext = pNext_;
+ return *this;
+ }
+
+ PhysicalDevicePrimitiveTopologyListRestartFeaturesEXT &
+ setPrimitiveTopologyListRestart( VULKAN_HPP_NAMESPACE::Bool32 primitiveTopologyListRestart_ ) VULKAN_HPP_NOEXCEPT
+ {
+ primitiveTopologyListRestart = primitiveTopologyListRestart_;
+ return *this;
+ }
+
+ PhysicalDevicePrimitiveTopologyListRestartFeaturesEXT & setPrimitiveTopologyPatchListRestart(
+ VULKAN_HPP_NAMESPACE::Bool32 primitiveTopologyPatchListRestart_ ) VULKAN_HPP_NOEXCEPT
+ {
+ primitiveTopologyPatchListRestart = primitiveTopologyPatchListRestart_;
+ return *this;
+ }
+#endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
+
+ operator VkPhysicalDevicePrimitiveTopologyListRestartFeaturesEXT const &() const VULKAN_HPP_NOEXCEPT
+ {
+ return *reinterpret_cast<const VkPhysicalDevicePrimitiveTopologyListRestartFeaturesEXT *>( this );
+ }
+
+ operator VkPhysicalDevicePrimitiveTopologyListRestartFeaturesEXT &() VULKAN_HPP_NOEXCEPT
+ {
+ return *reinterpret_cast<VkPhysicalDevicePrimitiveTopologyListRestartFeaturesEXT *>( this );
+ }
+
+#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
+ auto operator<=>( PhysicalDevicePrimitiveTopologyListRestartFeaturesEXT const & ) const = default;
+#else
+ bool operator==( PhysicalDevicePrimitiveTopologyListRestartFeaturesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
+ {
+ return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) &&
+ ( primitiveTopologyListRestart == rhs.primitiveTopologyListRestart ) &&
+ ( primitiveTopologyPatchListRestart == rhs.primitiveTopologyPatchListRestart );
+ }
+
+ bool operator!=( PhysicalDevicePrimitiveTopologyListRestartFeaturesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
+ {
+ return !operator==( rhs );
+ }
+#endif
+
+ public:
+ VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDevicePrimitiveTopologyListRestartFeaturesEXT;
+ void * pNext = {};
+ VULKAN_HPP_NAMESPACE::Bool32 primitiveTopologyListRestart = {};
+ VULKAN_HPP_NAMESPACE::Bool32 primitiveTopologyPatchListRestart = {};
+ };
+ static_assert( sizeof( PhysicalDevicePrimitiveTopologyListRestartFeaturesEXT ) ==
+ sizeof( VkPhysicalDevicePrimitiveTopologyListRestartFeaturesEXT ),
+ "struct and wrapper have different size!" );
+ static_assert( std::is_standard_layout<PhysicalDevicePrimitiveTopologyListRestartFeaturesEXT>::value,
+ "struct wrapper is not a standard layout!" );
+
+ template <>
+ struct CppType<StructureType, StructureType::ePhysicalDevicePrimitiveTopologyListRestartFeaturesEXT>
+ {
+ using Type = PhysicalDevicePrimitiveTopologyListRestartFeaturesEXT;
+ };
+
struct PhysicalDevicePrivateDataFeaturesEXT
{
static const bool allowDuplicate = false;
@@ -43128,6 +44416,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
+#if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
PhysicalDevicePrivateDataFeaturesEXT & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
{
pNext = pNext_;
@@ -43140,6 +44429,7 @@ namespace VULKAN_HPP_NAMESPACE
privateData = privateData_;
return *this;
}
+#endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
operator VkPhysicalDevicePrivateDataFeaturesEXT const &() const VULKAN_HPP_NOEXCEPT
{
@@ -43437,6 +44727,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
+#if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
PhysicalDeviceProtectedMemoryFeatures & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
{
pNext = pNext_;
@@ -43449,6 +44740,7 @@ namespace VULKAN_HPP_NAMESPACE
protectedMemory = protectedMemory_;
return *this;
}
+#endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
operator VkPhysicalDeviceProtectedMemoryFeatures const &() const VULKAN_HPP_NOEXCEPT
{
@@ -43596,6 +44888,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
+#if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
PhysicalDeviceProvokingVertexFeaturesEXT & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
{
pNext = pNext_;
@@ -43615,6 +44908,7 @@ namespace VULKAN_HPP_NAMESPACE
transformFeedbackPreservesProvokingVertex = transformFeedbackPreservesProvokingVertex_;
return *this;
}
+#endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
operator VkPhysicalDeviceProvokingVertexFeaturesEXT const &() const VULKAN_HPP_NOEXCEPT
{
@@ -43840,6 +45134,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
+#if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
PhysicalDeviceRayQueryFeaturesKHR & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
{
pNext = pNext_;
@@ -43851,6 +45146,7 @@ namespace VULKAN_HPP_NAMESPACE
rayQuery = rayQuery_;
return *this;
}
+#endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
operator VkPhysicalDeviceRayQueryFeaturesKHR const &() const VULKAN_HPP_NOEXCEPT
{
@@ -43926,7 +45222,8 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
- PhysicalDeviceRayTracingMotionBlurFeaturesNV & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
+#if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
+ PhysicalDeviceRayTracingMotionBlurFeaturesNV & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
{
pNext = pNext_;
return *this;
@@ -43945,6 +45242,7 @@ namespace VULKAN_HPP_NAMESPACE
rayTracingMotionBlurPipelineTraceRaysIndirect = rayTracingMotionBlurPipelineTraceRaysIndirect_;
return *this;
}
+#endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
operator VkPhysicalDeviceRayTracingMotionBlurFeaturesNV const &() const VULKAN_HPP_NOEXCEPT
{
@@ -43973,7 +45271,7 @@ namespace VULKAN_HPP_NAMESPACE
public:
VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceRayTracingMotionBlurFeaturesNV;
- const void * pNext = {};
+ void * pNext = {};
VULKAN_HPP_NAMESPACE::Bool32 rayTracingMotionBlur = {};
VULKAN_HPP_NAMESPACE::Bool32 rayTracingMotionBlurPipelineTraceRaysIndirect = {};
};
@@ -44029,6 +45327,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
+#if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
PhysicalDeviceRayTracingPipelineFeaturesKHR & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
{
pNext = pNext_;
@@ -44069,6 +45368,7 @@ namespace VULKAN_HPP_NAMESPACE
rayTraversalPrimitiveCulling = rayTraversalPrimitiveCulling_;
return *this;
}
+#endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
operator VkPhysicalDeviceRayTracingPipelineFeaturesKHR const &() const VULKAN_HPP_NOEXCEPT
{
@@ -44353,6 +45653,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
+#if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
PhysicalDeviceRepresentativeFragmentTestFeaturesNV & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
{
pNext = pNext_;
@@ -44365,6 +45666,7 @@ namespace VULKAN_HPP_NAMESPACE
representativeFragmentTest = representativeFragmentTest_;
return *this;
}
+#endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
operator VkPhysicalDeviceRepresentativeFragmentTestFeaturesNV const &() const VULKAN_HPP_NOEXCEPT
{
@@ -44442,6 +45744,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
+#if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
PhysicalDeviceRobustness2FeaturesEXT & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
{
pNext = pNext_;
@@ -44468,6 +45771,7 @@ namespace VULKAN_HPP_NAMESPACE
nullDescriptor = nullDescriptor_;
return *this;
}
+#endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
operator VkPhysicalDeviceRobustness2FeaturesEXT const &() const VULKAN_HPP_NOEXCEPT
{
@@ -44789,6 +46093,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
+#if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
PhysicalDeviceSamplerYcbcrConversionFeatures & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
{
pNext = pNext_;
@@ -44801,6 +46106,7 @@ namespace VULKAN_HPP_NAMESPACE
samplerYcbcrConversion = samplerYcbcrConversion_;
return *this;
}
+#endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
operator VkPhysicalDeviceSamplerYcbcrConversionFeatures const &() const VULKAN_HPP_NOEXCEPT
{
@@ -44875,6 +46181,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
+#if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
PhysicalDeviceScalarBlockLayoutFeatures & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
{
pNext = pNext_;
@@ -44887,6 +46194,7 @@ namespace VULKAN_HPP_NAMESPACE
scalarBlockLayout = scalarBlockLayout_;
return *this;
}
+#endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
operator VkPhysicalDeviceScalarBlockLayoutFeatures const &() const VULKAN_HPP_NOEXCEPT
{
@@ -44963,6 +46271,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
+#if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
PhysicalDeviceSeparateDepthStencilLayoutsFeatures & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
{
pNext = pNext_;
@@ -44975,6 +46284,7 @@ namespace VULKAN_HPP_NAMESPACE
separateDepthStencilLayouts = separateDepthStencilLayouts_;
return *this;
}
+#endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
operator VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures const &() const VULKAN_HPP_NOEXCEPT
{
@@ -45019,6 +46329,216 @@ namespace VULKAN_HPP_NAMESPACE
};
using PhysicalDeviceSeparateDepthStencilLayoutsFeaturesKHR = PhysicalDeviceSeparateDepthStencilLayoutsFeatures;
+ struct PhysicalDeviceShaderAtomicFloat2FeaturesEXT
+ {
+ static const bool allowDuplicate = false;
+ static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType =
+ StructureType::ePhysicalDeviceShaderAtomicFloat2FeaturesEXT;
+
+#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
+ VULKAN_HPP_CONSTEXPR PhysicalDeviceShaderAtomicFloat2FeaturesEXT(
+ VULKAN_HPP_NAMESPACE::Bool32 shaderBufferFloat16Atomics_ = {},
+ VULKAN_HPP_NAMESPACE::Bool32 shaderBufferFloat16AtomicAdd_ = {},
+ VULKAN_HPP_NAMESPACE::Bool32 shaderBufferFloat16AtomicMinMax_ = {},
+ VULKAN_HPP_NAMESPACE::Bool32 shaderBufferFloat32AtomicMinMax_ = {},
+ VULKAN_HPP_NAMESPACE::Bool32 shaderBufferFloat64AtomicMinMax_ = {},
+ VULKAN_HPP_NAMESPACE::Bool32 shaderSharedFloat16Atomics_ = {},
+ VULKAN_HPP_NAMESPACE::Bool32 shaderSharedFloat16AtomicAdd_ = {},
+ VULKAN_HPP_NAMESPACE::Bool32 shaderSharedFloat16AtomicMinMax_ = {},
+ VULKAN_HPP_NAMESPACE::Bool32 shaderSharedFloat32AtomicMinMax_ = {},
+ VULKAN_HPP_NAMESPACE::Bool32 shaderSharedFloat64AtomicMinMax_ = {},
+ VULKAN_HPP_NAMESPACE::Bool32 shaderImageFloat32AtomicMinMax_ = {},
+ VULKAN_HPP_NAMESPACE::Bool32 sparseImageFloat32AtomicMinMax_ = {} ) VULKAN_HPP_NOEXCEPT
+ : shaderBufferFloat16Atomics( shaderBufferFloat16Atomics_ )
+ , shaderBufferFloat16AtomicAdd( shaderBufferFloat16AtomicAdd_ )
+ , shaderBufferFloat16AtomicMinMax( shaderBufferFloat16AtomicMinMax_ )
+ , shaderBufferFloat32AtomicMinMax( shaderBufferFloat32AtomicMinMax_ )
+ , shaderBufferFloat64AtomicMinMax( shaderBufferFloat64AtomicMinMax_ )
+ , shaderSharedFloat16Atomics( shaderSharedFloat16Atomics_ )
+ , shaderSharedFloat16AtomicAdd( shaderSharedFloat16AtomicAdd_ )
+ , shaderSharedFloat16AtomicMinMax( shaderSharedFloat16AtomicMinMax_ )
+ , shaderSharedFloat32AtomicMinMax( shaderSharedFloat32AtomicMinMax_ )
+ , shaderSharedFloat64AtomicMinMax( shaderSharedFloat64AtomicMinMax_ )
+ , shaderImageFloat32AtomicMinMax( shaderImageFloat32AtomicMinMax_ )
+ , sparseImageFloat32AtomicMinMax( sparseImageFloat32AtomicMinMax_ )
+ {}
+
+ VULKAN_HPP_CONSTEXPR PhysicalDeviceShaderAtomicFloat2FeaturesEXT(
+ PhysicalDeviceShaderAtomicFloat2FeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
+
+ PhysicalDeviceShaderAtomicFloat2FeaturesEXT( VkPhysicalDeviceShaderAtomicFloat2FeaturesEXT const & rhs )
+ VULKAN_HPP_NOEXCEPT
+ : PhysicalDeviceShaderAtomicFloat2FeaturesEXT(
+ *reinterpret_cast<PhysicalDeviceShaderAtomicFloat2FeaturesEXT const *>( &rhs ) )
+ {}
+#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
+
+ VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceShaderAtomicFloat2FeaturesEXT &
+ operator=( PhysicalDeviceShaderAtomicFloat2FeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
+
+ PhysicalDeviceShaderAtomicFloat2FeaturesEXT &
+ operator=( VkPhysicalDeviceShaderAtomicFloat2FeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
+ {
+ *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderAtomicFloat2FeaturesEXT const *>( &rhs );
+ return *this;
+ }
+
+#if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
+ PhysicalDeviceShaderAtomicFloat2FeaturesEXT & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
+ {
+ pNext = pNext_;
+ return *this;
+ }
+
+ PhysicalDeviceShaderAtomicFloat2FeaturesEXT &
+ setShaderBufferFloat16Atomics( VULKAN_HPP_NAMESPACE::Bool32 shaderBufferFloat16Atomics_ ) VULKAN_HPP_NOEXCEPT
+ {
+ shaderBufferFloat16Atomics = shaderBufferFloat16Atomics_;
+ return *this;
+ }
+
+ PhysicalDeviceShaderAtomicFloat2FeaturesEXT &
+ setShaderBufferFloat16AtomicAdd( VULKAN_HPP_NAMESPACE::Bool32 shaderBufferFloat16AtomicAdd_ ) VULKAN_HPP_NOEXCEPT
+ {
+ shaderBufferFloat16AtomicAdd = shaderBufferFloat16AtomicAdd_;
+ return *this;
+ }
+
+ PhysicalDeviceShaderAtomicFloat2FeaturesEXT & setShaderBufferFloat16AtomicMinMax(
+ VULKAN_HPP_NAMESPACE::Bool32 shaderBufferFloat16AtomicMinMax_ ) VULKAN_HPP_NOEXCEPT
+ {
+ shaderBufferFloat16AtomicMinMax = shaderBufferFloat16AtomicMinMax_;
+ return *this;
+ }
+
+ PhysicalDeviceShaderAtomicFloat2FeaturesEXT & setShaderBufferFloat32AtomicMinMax(
+ VULKAN_HPP_NAMESPACE::Bool32 shaderBufferFloat32AtomicMinMax_ ) VULKAN_HPP_NOEXCEPT
+ {
+ shaderBufferFloat32AtomicMinMax = shaderBufferFloat32AtomicMinMax_;
+ return *this;
+ }
+
+ PhysicalDeviceShaderAtomicFloat2FeaturesEXT & setShaderBufferFloat64AtomicMinMax(
+ VULKAN_HPP_NAMESPACE::Bool32 shaderBufferFloat64AtomicMinMax_ ) VULKAN_HPP_NOEXCEPT
+ {
+ shaderBufferFloat64AtomicMinMax = shaderBufferFloat64AtomicMinMax_;
+ return *this;
+ }
+
+ PhysicalDeviceShaderAtomicFloat2FeaturesEXT &
+ setShaderSharedFloat16Atomics( VULKAN_HPP_NAMESPACE::Bool32 shaderSharedFloat16Atomics_ ) VULKAN_HPP_NOEXCEPT
+ {
+ shaderSharedFloat16Atomics = shaderSharedFloat16Atomics_;
+ return *this;
+ }
+
+ PhysicalDeviceShaderAtomicFloat2FeaturesEXT &
+ setShaderSharedFloat16AtomicAdd( VULKAN_HPP_NAMESPACE::Bool32 shaderSharedFloat16AtomicAdd_ ) VULKAN_HPP_NOEXCEPT
+ {
+ shaderSharedFloat16AtomicAdd = shaderSharedFloat16AtomicAdd_;
+ return *this;
+ }
+
+ PhysicalDeviceShaderAtomicFloat2FeaturesEXT & setShaderSharedFloat16AtomicMinMax(
+ VULKAN_HPP_NAMESPACE::Bool32 shaderSharedFloat16AtomicMinMax_ ) VULKAN_HPP_NOEXCEPT
+ {
+ shaderSharedFloat16AtomicMinMax = shaderSharedFloat16AtomicMinMax_;
+ return *this;
+ }
+
+ PhysicalDeviceShaderAtomicFloat2FeaturesEXT & setShaderSharedFloat32AtomicMinMax(
+ VULKAN_HPP_NAMESPACE::Bool32 shaderSharedFloat32AtomicMinMax_ ) VULKAN_HPP_NOEXCEPT
+ {
+ shaderSharedFloat32AtomicMinMax = shaderSharedFloat32AtomicMinMax_;
+ return *this;
+ }
+
+ PhysicalDeviceShaderAtomicFloat2FeaturesEXT & setShaderSharedFloat64AtomicMinMax(
+ VULKAN_HPP_NAMESPACE::Bool32 shaderSharedFloat64AtomicMinMax_ ) VULKAN_HPP_NOEXCEPT
+ {
+ shaderSharedFloat64AtomicMinMax = shaderSharedFloat64AtomicMinMax_;
+ return *this;
+ }
+
+ PhysicalDeviceShaderAtomicFloat2FeaturesEXT & setShaderImageFloat32AtomicMinMax(
+ VULKAN_HPP_NAMESPACE::Bool32 shaderImageFloat32AtomicMinMax_ ) VULKAN_HPP_NOEXCEPT
+ {
+ shaderImageFloat32AtomicMinMax = shaderImageFloat32AtomicMinMax_;
+ return *this;
+ }
+
+ PhysicalDeviceShaderAtomicFloat2FeaturesEXT & setSparseImageFloat32AtomicMinMax(
+ VULKAN_HPP_NAMESPACE::Bool32 sparseImageFloat32AtomicMinMax_ ) VULKAN_HPP_NOEXCEPT
+ {
+ sparseImageFloat32AtomicMinMax = sparseImageFloat32AtomicMinMax_;
+ return *this;
+ }
+#endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
+
+ operator VkPhysicalDeviceShaderAtomicFloat2FeaturesEXT const &() const VULKAN_HPP_NOEXCEPT
+ {
+ return *reinterpret_cast<const VkPhysicalDeviceShaderAtomicFloat2FeaturesEXT *>( this );
+ }
+
+ operator VkPhysicalDeviceShaderAtomicFloat2FeaturesEXT &() VULKAN_HPP_NOEXCEPT
+ {
+ return *reinterpret_cast<VkPhysicalDeviceShaderAtomicFloat2FeaturesEXT *>( this );
+ }
+
+#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
+ auto operator<=>( PhysicalDeviceShaderAtomicFloat2FeaturesEXT const & ) const = default;
+#else
+ bool operator==( PhysicalDeviceShaderAtomicFloat2FeaturesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
+ {
+ return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) &&
+ ( shaderBufferFloat16Atomics == rhs.shaderBufferFloat16Atomics ) &&
+ ( shaderBufferFloat16AtomicAdd == rhs.shaderBufferFloat16AtomicAdd ) &&
+ ( shaderBufferFloat16AtomicMinMax == rhs.shaderBufferFloat16AtomicMinMax ) &&
+ ( shaderBufferFloat32AtomicMinMax == rhs.shaderBufferFloat32AtomicMinMax ) &&
+ ( shaderBufferFloat64AtomicMinMax == rhs.shaderBufferFloat64AtomicMinMax ) &&
+ ( shaderSharedFloat16Atomics == rhs.shaderSharedFloat16Atomics ) &&
+ ( shaderSharedFloat16AtomicAdd == rhs.shaderSharedFloat16AtomicAdd ) &&
+ ( shaderSharedFloat16AtomicMinMax == rhs.shaderSharedFloat16AtomicMinMax ) &&
+ ( shaderSharedFloat32AtomicMinMax == rhs.shaderSharedFloat32AtomicMinMax ) &&
+ ( shaderSharedFloat64AtomicMinMax == rhs.shaderSharedFloat64AtomicMinMax ) &&
+ ( shaderImageFloat32AtomicMinMax == rhs.shaderImageFloat32AtomicMinMax ) &&
+ ( sparseImageFloat32AtomicMinMax == rhs.sparseImageFloat32AtomicMinMax );
+ }
+
+ bool operator!=( PhysicalDeviceShaderAtomicFloat2FeaturesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
+ {
+ return !operator==( rhs );
+ }
+#endif
+
+ public:
+ VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceShaderAtomicFloat2FeaturesEXT;
+ void * pNext = {};
+ VULKAN_HPP_NAMESPACE::Bool32 shaderBufferFloat16Atomics = {};
+ VULKAN_HPP_NAMESPACE::Bool32 shaderBufferFloat16AtomicAdd = {};
+ VULKAN_HPP_NAMESPACE::Bool32 shaderBufferFloat16AtomicMinMax = {};
+ VULKAN_HPP_NAMESPACE::Bool32 shaderBufferFloat32AtomicMinMax = {};
+ VULKAN_HPP_NAMESPACE::Bool32 shaderBufferFloat64AtomicMinMax = {};
+ VULKAN_HPP_NAMESPACE::Bool32 shaderSharedFloat16Atomics = {};
+ VULKAN_HPP_NAMESPACE::Bool32 shaderSharedFloat16AtomicAdd = {};
+ VULKAN_HPP_NAMESPACE::Bool32 shaderSharedFloat16AtomicMinMax = {};
+ VULKAN_HPP_NAMESPACE::Bool32 shaderSharedFloat32AtomicMinMax = {};
+ VULKAN_HPP_NAMESPACE::Bool32 shaderSharedFloat64AtomicMinMax = {};
+ VULKAN_HPP_NAMESPACE::Bool32 shaderImageFloat32AtomicMinMax = {};
+ VULKAN_HPP_NAMESPACE::Bool32 sparseImageFloat32AtomicMinMax = {};
+ };
+ static_assert( sizeof( PhysicalDeviceShaderAtomicFloat2FeaturesEXT ) ==
+ sizeof( VkPhysicalDeviceShaderAtomicFloat2FeaturesEXT ),
+ "struct and wrapper have different size!" );
+ static_assert( std::is_standard_layout<PhysicalDeviceShaderAtomicFloat2FeaturesEXT>::value,
+ "struct wrapper is not a standard layout!" );
+
+ template <>
+ struct CppType<StructureType, StructureType::ePhysicalDeviceShaderAtomicFloat2FeaturesEXT>
+ {
+ using Type = PhysicalDeviceShaderAtomicFloat2FeaturesEXT;
+ };
+
struct PhysicalDeviceShaderAtomicFloatFeaturesEXT
{
static const bool allowDuplicate = false;
@@ -45073,6 +46593,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
+#if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
PhysicalDeviceShaderAtomicFloatFeaturesEXT & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
{
pNext = pNext_;
@@ -45162,6 +46683,7 @@ namespace VULKAN_HPP_NAMESPACE
sparseImageFloat32AtomicAdd = sparseImageFloat32AtomicAdd_;
return *this;
}
+#endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
operator VkPhysicalDeviceShaderAtomicFloatFeaturesEXT const &() const VULKAN_HPP_NOEXCEPT
{
@@ -45260,6 +46782,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
+#if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
PhysicalDeviceShaderAtomicInt64Features & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
{
pNext = pNext_;
@@ -45279,6 +46802,7 @@ namespace VULKAN_HPP_NAMESPACE
shaderSharedInt64Atomics = shaderSharedInt64Atomics_;
return *this;
}
+#endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
operator VkPhysicalDeviceShaderAtomicInt64Features const &() const VULKAN_HPP_NOEXCEPT
{
@@ -45357,6 +46881,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
+#if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
PhysicalDeviceShaderClockFeaturesKHR & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
{
pNext = pNext_;
@@ -45376,6 +46901,7 @@ namespace VULKAN_HPP_NAMESPACE
shaderDeviceClock = shaderDeviceClock_;
return *this;
}
+#endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
operator VkPhysicalDeviceShaderClockFeaturesKHR const &() const VULKAN_HPP_NOEXCEPT
{
@@ -45645,6 +47171,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
+#if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
PhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
{
pNext = pNext_;
@@ -45657,6 +47184,7 @@ namespace VULKAN_HPP_NAMESPACE
shaderDemoteToHelperInvocation = shaderDemoteToHelperInvocation_;
return *this;
}
+#endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
operator VkPhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT const &() const VULKAN_HPP_NOEXCEPT
{
@@ -45732,6 +47260,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
+#if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
PhysicalDeviceShaderDrawParametersFeatures & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
{
pNext = pNext_;
@@ -45744,6 +47273,7 @@ namespace VULKAN_HPP_NAMESPACE
shaderDrawParameters = shaderDrawParameters_;
return *this;
}
+#endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
operator VkPhysicalDeviceShaderDrawParametersFeatures const &() const VULKAN_HPP_NOEXCEPT
{
@@ -45820,6 +47350,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
+#if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
PhysicalDeviceShaderFloat16Int8Features & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
{
pNext = pNext_;
@@ -45839,6 +47370,7 @@ namespace VULKAN_HPP_NAMESPACE
shaderInt8 = shaderInt8_;
return *this;
}
+#endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
operator VkPhysicalDeviceShaderFloat16Int8Features const &() const VULKAN_HPP_NOEXCEPT
{
@@ -45919,6 +47451,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
+#if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
PhysicalDeviceShaderImageAtomicInt64FeaturesEXT & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
{
pNext = pNext_;
@@ -45938,6 +47471,7 @@ namespace VULKAN_HPP_NAMESPACE
sparseImageInt64Atomics = sparseImageInt64Atomics_;
return *this;
}
+#endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
operator VkPhysicalDeviceShaderImageAtomicInt64FeaturesEXT const &() const VULKAN_HPP_NOEXCEPT
{
@@ -46014,6 +47548,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
+#if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
PhysicalDeviceShaderImageFootprintFeaturesNV & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
{
pNext = pNext_;
@@ -46026,6 +47561,7 @@ namespace VULKAN_HPP_NAMESPACE
imageFootprint = imageFootprint_;
return *this;
}
+#endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
operator VkPhysicalDeviceShaderImageFootprintFeaturesNV const &() const VULKAN_HPP_NOEXCEPT
{
@@ -46068,6 +47604,587 @@ namespace VULKAN_HPP_NAMESPACE
using Type = PhysicalDeviceShaderImageFootprintFeaturesNV;
};
+ struct PhysicalDeviceShaderIntegerDotProductFeaturesKHR
+ {
+ static const bool allowDuplicate = false;
+ static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType =
+ StructureType::ePhysicalDeviceShaderIntegerDotProductFeaturesKHR;
+
+#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
+ VULKAN_HPP_CONSTEXPR PhysicalDeviceShaderIntegerDotProductFeaturesKHR(
+ VULKAN_HPP_NAMESPACE::Bool32 shaderIntegerDotProduct_ = {} ) VULKAN_HPP_NOEXCEPT
+ : shaderIntegerDotProduct( shaderIntegerDotProduct_ )
+ {}
+
+ VULKAN_HPP_CONSTEXPR PhysicalDeviceShaderIntegerDotProductFeaturesKHR(
+ PhysicalDeviceShaderIntegerDotProductFeaturesKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
+
+ PhysicalDeviceShaderIntegerDotProductFeaturesKHR( VkPhysicalDeviceShaderIntegerDotProductFeaturesKHR const & rhs )
+ VULKAN_HPP_NOEXCEPT
+ : PhysicalDeviceShaderIntegerDotProductFeaturesKHR(
+ *reinterpret_cast<PhysicalDeviceShaderIntegerDotProductFeaturesKHR const *>( &rhs ) )
+ {}
+#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
+
+ VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceShaderIntegerDotProductFeaturesKHR &
+ operator=( PhysicalDeviceShaderIntegerDotProductFeaturesKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
+
+ PhysicalDeviceShaderIntegerDotProductFeaturesKHR &
+ operator=( VkPhysicalDeviceShaderIntegerDotProductFeaturesKHR const & rhs ) VULKAN_HPP_NOEXCEPT
+ {
+ *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderIntegerDotProductFeaturesKHR const *>( &rhs );
+ return *this;
+ }
+
+#if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
+ PhysicalDeviceShaderIntegerDotProductFeaturesKHR & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
+ {
+ pNext = pNext_;
+ return *this;
+ }
+
+ PhysicalDeviceShaderIntegerDotProductFeaturesKHR &
+ setShaderIntegerDotProduct( VULKAN_HPP_NAMESPACE::Bool32 shaderIntegerDotProduct_ ) VULKAN_HPP_NOEXCEPT
+ {
+ shaderIntegerDotProduct = shaderIntegerDotProduct_;
+ return *this;
+ }
+#endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
+
+ operator VkPhysicalDeviceShaderIntegerDotProductFeaturesKHR const &() const VULKAN_HPP_NOEXCEPT
+ {
+ return *reinterpret_cast<const VkPhysicalDeviceShaderIntegerDotProductFeaturesKHR *>( this );
+ }
+
+ operator VkPhysicalDeviceShaderIntegerDotProductFeaturesKHR &() VULKAN_HPP_NOEXCEPT
+ {
+ return *reinterpret_cast<VkPhysicalDeviceShaderIntegerDotProductFeaturesKHR *>( this );
+ }
+
+#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
+ auto operator<=>( PhysicalDeviceShaderIntegerDotProductFeaturesKHR const & ) const = default;
+#else
+ bool operator==( PhysicalDeviceShaderIntegerDotProductFeaturesKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
+ {
+ return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) &&
+ ( shaderIntegerDotProduct == rhs.shaderIntegerDotProduct );
+ }
+
+ bool operator!=( PhysicalDeviceShaderIntegerDotProductFeaturesKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
+ {
+ return !operator==( rhs );
+ }
+#endif
+
+ public:
+ VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceShaderIntegerDotProductFeaturesKHR;
+ void * pNext = {};
+ VULKAN_HPP_NAMESPACE::Bool32 shaderIntegerDotProduct = {};
+ };
+ static_assert( sizeof( PhysicalDeviceShaderIntegerDotProductFeaturesKHR ) ==
+ sizeof( VkPhysicalDeviceShaderIntegerDotProductFeaturesKHR ),
+ "struct and wrapper have different size!" );
+ static_assert( std::is_standard_layout<PhysicalDeviceShaderIntegerDotProductFeaturesKHR>::value,
+ "struct wrapper is not a standard layout!" );
+
+ template <>
+ struct CppType<StructureType, StructureType::ePhysicalDeviceShaderIntegerDotProductFeaturesKHR>
+ {
+ using Type = PhysicalDeviceShaderIntegerDotProductFeaturesKHR;
+ };
+
+ struct PhysicalDeviceShaderIntegerDotProductPropertiesKHR
+ {
+ static const bool allowDuplicate = false;
+ static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType =
+ StructureType::ePhysicalDeviceShaderIntegerDotProductPropertiesKHR;
+
+#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
+ VULKAN_HPP_CONSTEXPR PhysicalDeviceShaderIntegerDotProductPropertiesKHR(
+ VULKAN_HPP_NAMESPACE::Bool32 integerDotProduct8BitUnsignedAccelerated_ = {},
+ VULKAN_HPP_NAMESPACE::Bool32 integerDotProduct8BitSignedAccelerated_ = {},
+ VULKAN_HPP_NAMESPACE::Bool32 integerDotProduct8BitMixedSignednessAccelerated_ = {},
+ VULKAN_HPP_NAMESPACE::Bool32 integerDotProduct4x8BitPackedUnsignedAccelerated_ = {},
+ VULKAN_HPP_NAMESPACE::Bool32 integerDotProduct4x8BitPackedSignedAccelerated_ = {},
+ VULKAN_HPP_NAMESPACE::Bool32 integerDotProduct4x8BitPackedMixedSignednessAccelerated_ = {},
+ VULKAN_HPP_NAMESPACE::Bool32 integerDotProduct16BitUnsignedAccelerated_ = {},
+ VULKAN_HPP_NAMESPACE::Bool32 integerDotProduct16BitSignedAccelerated_ = {},
+ VULKAN_HPP_NAMESPACE::Bool32 integerDotProduct16BitMixedSignednessAccelerated_ = {},
+ VULKAN_HPP_NAMESPACE::Bool32 integerDotProduct32BitUnsignedAccelerated_ = {},
+ VULKAN_HPP_NAMESPACE::Bool32 integerDotProduct32BitSignedAccelerated_ = {},
+ VULKAN_HPP_NAMESPACE::Bool32 integerDotProduct32BitMixedSignednessAccelerated_ = {},
+ VULKAN_HPP_NAMESPACE::Bool32 integerDotProduct64BitUnsignedAccelerated_ = {},
+ VULKAN_HPP_NAMESPACE::Bool32 integerDotProduct64BitSignedAccelerated_ = {},
+ VULKAN_HPP_NAMESPACE::Bool32 integerDotProduct64BitMixedSignednessAccelerated_ = {},
+ VULKAN_HPP_NAMESPACE::Bool32 integerDotProductAccumulatingSaturating8BitUnsignedAccelerated_ = {},
+ VULKAN_HPP_NAMESPACE::Bool32 integerDotProductAccumulatingSaturating8BitSignedAccelerated_ = {},
+ VULKAN_HPP_NAMESPACE::Bool32 integerDotProductAccumulatingSaturating8BitMixedSignednessAccelerated_ = {},
+ VULKAN_HPP_NAMESPACE::Bool32 integerDotProductAccumulatingSaturating4x8BitPackedUnsignedAccelerated_ = {},
+ VULKAN_HPP_NAMESPACE::Bool32 integerDotProductAccumulatingSaturating4x8BitPackedSignedAccelerated_ = {},
+ VULKAN_HPP_NAMESPACE::Bool32 integerDotProductAccumulatingSaturating4x8BitPackedMixedSignednessAccelerated_ = {},
+ VULKAN_HPP_NAMESPACE::Bool32 integerDotProductAccumulatingSaturating16BitUnsignedAccelerated_ = {},
+ VULKAN_HPP_NAMESPACE::Bool32 integerDotProductAccumulatingSaturating16BitSignedAccelerated_ = {},
+ VULKAN_HPP_NAMESPACE::Bool32 integerDotProductAccumulatingSaturating16BitMixedSignednessAccelerated_ = {},
+ VULKAN_HPP_NAMESPACE::Bool32 integerDotProductAccumulatingSaturating32BitUnsignedAccelerated_ = {},
+ VULKAN_HPP_NAMESPACE::Bool32 integerDotProductAccumulatingSaturating32BitSignedAccelerated_ = {},
+ VULKAN_HPP_NAMESPACE::Bool32 integerDotProductAccumulatingSaturating32BitMixedSignednessAccelerated_ = {},
+ VULKAN_HPP_NAMESPACE::Bool32 integerDotProductAccumulatingSaturating64BitUnsignedAccelerated_ = {},
+ VULKAN_HPP_NAMESPACE::Bool32 integerDotProductAccumulatingSaturating64BitSignedAccelerated_ = {},
+ VULKAN_HPP_NAMESPACE::Bool32 integerDotProductAccumulatingSaturating64BitMixedSignednessAccelerated_ = {} )
+ VULKAN_HPP_NOEXCEPT
+ : integerDotProduct8BitUnsignedAccelerated( integerDotProduct8BitUnsignedAccelerated_ )
+ , integerDotProduct8BitSignedAccelerated( integerDotProduct8BitSignedAccelerated_ )
+ , integerDotProduct8BitMixedSignednessAccelerated( integerDotProduct8BitMixedSignednessAccelerated_ )
+ , integerDotProduct4x8BitPackedUnsignedAccelerated( integerDotProduct4x8BitPackedUnsignedAccelerated_ )
+ , integerDotProduct4x8BitPackedSignedAccelerated( integerDotProduct4x8BitPackedSignedAccelerated_ )
+ , integerDotProduct4x8BitPackedMixedSignednessAccelerated(
+ integerDotProduct4x8BitPackedMixedSignednessAccelerated_ )
+ , integerDotProduct16BitUnsignedAccelerated( integerDotProduct16BitUnsignedAccelerated_ )
+ , integerDotProduct16BitSignedAccelerated( integerDotProduct16BitSignedAccelerated_ )
+ , integerDotProduct16BitMixedSignednessAccelerated( integerDotProduct16BitMixedSignednessAccelerated_ )
+ , integerDotProduct32BitUnsignedAccelerated( integerDotProduct32BitUnsignedAccelerated_ )
+ , integerDotProduct32BitSignedAccelerated( integerDotProduct32BitSignedAccelerated_ )
+ , integerDotProduct32BitMixedSignednessAccelerated( integerDotProduct32BitMixedSignednessAccelerated_ )
+ , integerDotProduct64BitUnsignedAccelerated( integerDotProduct64BitUnsignedAccelerated_ )
+ , integerDotProduct64BitSignedAccelerated( integerDotProduct64BitSignedAccelerated_ )
+ , integerDotProduct64BitMixedSignednessAccelerated( integerDotProduct64BitMixedSignednessAccelerated_ )
+ , integerDotProductAccumulatingSaturating8BitUnsignedAccelerated(
+ integerDotProductAccumulatingSaturating8BitUnsignedAccelerated_ )
+ , integerDotProductAccumulatingSaturating8BitSignedAccelerated(
+ integerDotProductAccumulatingSaturating8BitSignedAccelerated_ )
+ , integerDotProductAccumulatingSaturating8BitMixedSignednessAccelerated(
+ integerDotProductAccumulatingSaturating8BitMixedSignednessAccelerated_ )
+ , integerDotProductAccumulatingSaturating4x8BitPackedUnsignedAccelerated(
+ integerDotProductAccumulatingSaturating4x8BitPackedUnsignedAccelerated_ )
+ , integerDotProductAccumulatingSaturating4x8BitPackedSignedAccelerated(
+ integerDotProductAccumulatingSaturating4x8BitPackedSignedAccelerated_ )
+ , integerDotProductAccumulatingSaturating4x8BitPackedMixedSignednessAccelerated(
+ integerDotProductAccumulatingSaturating4x8BitPackedMixedSignednessAccelerated_ )
+ , integerDotProductAccumulatingSaturating16BitUnsignedAccelerated(
+ integerDotProductAccumulatingSaturating16BitUnsignedAccelerated_ )
+ , integerDotProductAccumulatingSaturating16BitSignedAccelerated(
+ integerDotProductAccumulatingSaturating16BitSignedAccelerated_ )
+ , integerDotProductAccumulatingSaturating16BitMixedSignednessAccelerated(
+ integerDotProductAccumulatingSaturating16BitMixedSignednessAccelerated_ )
+ , integerDotProductAccumulatingSaturating32BitUnsignedAccelerated(
+ integerDotProductAccumulatingSaturating32BitUnsignedAccelerated_ )
+ , integerDotProductAccumulatingSaturating32BitSignedAccelerated(
+ integerDotProductAccumulatingSaturating32BitSignedAccelerated_ )
+ , integerDotProductAccumulatingSaturating32BitMixedSignednessAccelerated(
+ integerDotProductAccumulatingSaturating32BitMixedSignednessAccelerated_ )
+ , integerDotProductAccumulatingSaturating64BitUnsignedAccelerated(
+ integerDotProductAccumulatingSaturating64BitUnsignedAccelerated_ )
+ , integerDotProductAccumulatingSaturating64BitSignedAccelerated(
+ integerDotProductAccumulatingSaturating64BitSignedAccelerated_ )
+ , integerDotProductAccumulatingSaturating64BitMixedSignednessAccelerated(
+ integerDotProductAccumulatingSaturating64BitMixedSignednessAccelerated_ )
+ {}
+
+ VULKAN_HPP_CONSTEXPR PhysicalDeviceShaderIntegerDotProductPropertiesKHR(
+ PhysicalDeviceShaderIntegerDotProductPropertiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
+
+ PhysicalDeviceShaderIntegerDotProductPropertiesKHR(
+ VkPhysicalDeviceShaderIntegerDotProductPropertiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT
+ : PhysicalDeviceShaderIntegerDotProductPropertiesKHR(
+ *reinterpret_cast<PhysicalDeviceShaderIntegerDotProductPropertiesKHR const *>( &rhs ) )
+ {}
+#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
+
+ VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceShaderIntegerDotProductPropertiesKHR &
+ operator=( PhysicalDeviceShaderIntegerDotProductPropertiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
+
+ PhysicalDeviceShaderIntegerDotProductPropertiesKHR &
+ operator=( VkPhysicalDeviceShaderIntegerDotProductPropertiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT
+ {
+ *this =
+ *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderIntegerDotProductPropertiesKHR const *>( &rhs );
+ return *this;
+ }
+
+#if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
+ PhysicalDeviceShaderIntegerDotProductPropertiesKHR & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
+ {
+ pNext = pNext_;
+ return *this;
+ }
+
+ PhysicalDeviceShaderIntegerDotProductPropertiesKHR & setIntegerDotProduct8BitUnsignedAccelerated(
+ VULKAN_HPP_NAMESPACE::Bool32 integerDotProduct8BitUnsignedAccelerated_ ) VULKAN_HPP_NOEXCEPT
+ {
+ integerDotProduct8BitUnsignedAccelerated = integerDotProduct8BitUnsignedAccelerated_;
+ return *this;
+ }
+
+ PhysicalDeviceShaderIntegerDotProductPropertiesKHR & setIntegerDotProduct8BitSignedAccelerated(
+ VULKAN_HPP_NAMESPACE::Bool32 integerDotProduct8BitSignedAccelerated_ ) VULKAN_HPP_NOEXCEPT
+ {
+ integerDotProduct8BitSignedAccelerated = integerDotProduct8BitSignedAccelerated_;
+ return *this;
+ }
+
+ PhysicalDeviceShaderIntegerDotProductPropertiesKHR & setIntegerDotProduct8BitMixedSignednessAccelerated(
+ VULKAN_HPP_NAMESPACE::Bool32 integerDotProduct8BitMixedSignednessAccelerated_ ) VULKAN_HPP_NOEXCEPT
+ {
+ integerDotProduct8BitMixedSignednessAccelerated = integerDotProduct8BitMixedSignednessAccelerated_;
+ return *this;
+ }
+
+ PhysicalDeviceShaderIntegerDotProductPropertiesKHR & setIntegerDotProduct4x8BitPackedUnsignedAccelerated(
+ VULKAN_HPP_NAMESPACE::Bool32 integerDotProduct4x8BitPackedUnsignedAccelerated_ ) VULKAN_HPP_NOEXCEPT
+ {
+ integerDotProduct4x8BitPackedUnsignedAccelerated = integerDotProduct4x8BitPackedUnsignedAccelerated_;
+ return *this;
+ }
+
+ PhysicalDeviceShaderIntegerDotProductPropertiesKHR & setIntegerDotProduct4x8BitPackedSignedAccelerated(
+ VULKAN_HPP_NAMESPACE::Bool32 integerDotProduct4x8BitPackedSignedAccelerated_ ) VULKAN_HPP_NOEXCEPT
+ {
+ integerDotProduct4x8BitPackedSignedAccelerated = integerDotProduct4x8BitPackedSignedAccelerated_;
+ return *this;
+ }
+
+ PhysicalDeviceShaderIntegerDotProductPropertiesKHR & setIntegerDotProduct4x8BitPackedMixedSignednessAccelerated(
+ VULKAN_HPP_NAMESPACE::Bool32 integerDotProduct4x8BitPackedMixedSignednessAccelerated_ ) VULKAN_HPP_NOEXCEPT
+ {
+ integerDotProduct4x8BitPackedMixedSignednessAccelerated =
+ integerDotProduct4x8BitPackedMixedSignednessAccelerated_;
+ return *this;
+ }
+
+ PhysicalDeviceShaderIntegerDotProductPropertiesKHR & setIntegerDotProduct16BitUnsignedAccelerated(
+ VULKAN_HPP_NAMESPACE::Bool32 integerDotProduct16BitUnsignedAccelerated_ ) VULKAN_HPP_NOEXCEPT
+ {
+ integerDotProduct16BitUnsignedAccelerated = integerDotProduct16BitUnsignedAccelerated_;
+ return *this;
+ }
+
+ PhysicalDeviceShaderIntegerDotProductPropertiesKHR & setIntegerDotProduct16BitSignedAccelerated(
+ VULKAN_HPP_NAMESPACE::Bool32 integerDotProduct16BitSignedAccelerated_ ) VULKAN_HPP_NOEXCEPT
+ {
+ integerDotProduct16BitSignedAccelerated = integerDotProduct16BitSignedAccelerated_;
+ return *this;
+ }
+
+ PhysicalDeviceShaderIntegerDotProductPropertiesKHR & setIntegerDotProduct16BitMixedSignednessAccelerated(
+ VULKAN_HPP_NAMESPACE::Bool32 integerDotProduct16BitMixedSignednessAccelerated_ ) VULKAN_HPP_NOEXCEPT
+ {
+ integerDotProduct16BitMixedSignednessAccelerated = integerDotProduct16BitMixedSignednessAccelerated_;
+ return *this;
+ }
+
+ PhysicalDeviceShaderIntegerDotProductPropertiesKHR & setIntegerDotProduct32BitUnsignedAccelerated(
+ VULKAN_HPP_NAMESPACE::Bool32 integerDotProduct32BitUnsignedAccelerated_ ) VULKAN_HPP_NOEXCEPT
+ {
+ integerDotProduct32BitUnsignedAccelerated = integerDotProduct32BitUnsignedAccelerated_;
+ return *this;
+ }
+
+ PhysicalDeviceShaderIntegerDotProductPropertiesKHR & setIntegerDotProduct32BitSignedAccelerated(
+ VULKAN_HPP_NAMESPACE::Bool32 integerDotProduct32BitSignedAccelerated_ ) VULKAN_HPP_NOEXCEPT
+ {
+ integerDotProduct32BitSignedAccelerated = integerDotProduct32BitSignedAccelerated_;
+ return *this;
+ }
+
+ PhysicalDeviceShaderIntegerDotProductPropertiesKHR & setIntegerDotProduct32BitMixedSignednessAccelerated(
+ VULKAN_HPP_NAMESPACE::Bool32 integerDotProduct32BitMixedSignednessAccelerated_ ) VULKAN_HPP_NOEXCEPT
+ {
+ integerDotProduct32BitMixedSignednessAccelerated = integerDotProduct32BitMixedSignednessAccelerated_;
+ return *this;
+ }
+
+ PhysicalDeviceShaderIntegerDotProductPropertiesKHR & setIntegerDotProduct64BitUnsignedAccelerated(
+ VULKAN_HPP_NAMESPACE::Bool32 integerDotProduct64BitUnsignedAccelerated_ ) VULKAN_HPP_NOEXCEPT
+ {
+ integerDotProduct64BitUnsignedAccelerated = integerDotProduct64BitUnsignedAccelerated_;
+ return *this;
+ }
+
+ PhysicalDeviceShaderIntegerDotProductPropertiesKHR & setIntegerDotProduct64BitSignedAccelerated(
+ VULKAN_HPP_NAMESPACE::Bool32 integerDotProduct64BitSignedAccelerated_ ) VULKAN_HPP_NOEXCEPT
+ {
+ integerDotProduct64BitSignedAccelerated = integerDotProduct64BitSignedAccelerated_;
+ return *this;
+ }
+
+ PhysicalDeviceShaderIntegerDotProductPropertiesKHR & setIntegerDotProduct64BitMixedSignednessAccelerated(
+ VULKAN_HPP_NAMESPACE::Bool32 integerDotProduct64BitMixedSignednessAccelerated_ ) VULKAN_HPP_NOEXCEPT
+ {
+ integerDotProduct64BitMixedSignednessAccelerated = integerDotProduct64BitMixedSignednessAccelerated_;
+ return *this;
+ }
+
+ PhysicalDeviceShaderIntegerDotProductPropertiesKHR &
+ setIntegerDotProductAccumulatingSaturating8BitUnsignedAccelerated(
+ VULKAN_HPP_NAMESPACE::Bool32 integerDotProductAccumulatingSaturating8BitUnsignedAccelerated_ )
+ VULKAN_HPP_NOEXCEPT
+ {
+ integerDotProductAccumulatingSaturating8BitUnsignedAccelerated =
+ integerDotProductAccumulatingSaturating8BitUnsignedAccelerated_;
+ return *this;
+ }
+
+ PhysicalDeviceShaderIntegerDotProductPropertiesKHR &
+ setIntegerDotProductAccumulatingSaturating8BitSignedAccelerated(
+ VULKAN_HPP_NAMESPACE::Bool32 integerDotProductAccumulatingSaturating8BitSignedAccelerated_ ) VULKAN_HPP_NOEXCEPT
+ {
+ integerDotProductAccumulatingSaturating8BitSignedAccelerated =
+ integerDotProductAccumulatingSaturating8BitSignedAccelerated_;
+ return *this;
+ }
+
+ PhysicalDeviceShaderIntegerDotProductPropertiesKHR &
+ setIntegerDotProductAccumulatingSaturating8BitMixedSignednessAccelerated(
+ VULKAN_HPP_NAMESPACE::Bool32 integerDotProductAccumulatingSaturating8BitMixedSignednessAccelerated_ )
+ VULKAN_HPP_NOEXCEPT
+ {
+ integerDotProductAccumulatingSaturating8BitMixedSignednessAccelerated =
+ integerDotProductAccumulatingSaturating8BitMixedSignednessAccelerated_;
+ return *this;
+ }
+
+ PhysicalDeviceShaderIntegerDotProductPropertiesKHR &
+ setIntegerDotProductAccumulatingSaturating4x8BitPackedUnsignedAccelerated(
+ VULKAN_HPP_NAMESPACE::Bool32 integerDotProductAccumulatingSaturating4x8BitPackedUnsignedAccelerated_ )
+ VULKAN_HPP_NOEXCEPT
+ {
+ integerDotProductAccumulatingSaturating4x8BitPackedUnsignedAccelerated =
+ integerDotProductAccumulatingSaturating4x8BitPackedUnsignedAccelerated_;
+ return *this;
+ }
+
+ PhysicalDeviceShaderIntegerDotProductPropertiesKHR &
+ setIntegerDotProductAccumulatingSaturating4x8BitPackedSignedAccelerated(
+ VULKAN_HPP_NAMESPACE::Bool32 integerDotProductAccumulatingSaturating4x8BitPackedSignedAccelerated_ )
+ VULKAN_HPP_NOEXCEPT
+ {
+ integerDotProductAccumulatingSaturating4x8BitPackedSignedAccelerated =
+ integerDotProductAccumulatingSaturating4x8BitPackedSignedAccelerated_;
+ return *this;
+ }
+
+ PhysicalDeviceShaderIntegerDotProductPropertiesKHR &
+ setIntegerDotProductAccumulatingSaturating4x8BitPackedMixedSignednessAccelerated(
+ VULKAN_HPP_NAMESPACE::Bool32 integerDotProductAccumulatingSaturating4x8BitPackedMixedSignednessAccelerated_ )
+ VULKAN_HPP_NOEXCEPT
+ {
+ integerDotProductAccumulatingSaturating4x8BitPackedMixedSignednessAccelerated =
+ integerDotProductAccumulatingSaturating4x8BitPackedMixedSignednessAccelerated_;
+ return *this;
+ }
+
+ PhysicalDeviceShaderIntegerDotProductPropertiesKHR &
+ setIntegerDotProductAccumulatingSaturating16BitUnsignedAccelerated(
+ VULKAN_HPP_NAMESPACE::Bool32 integerDotProductAccumulatingSaturating16BitUnsignedAccelerated_ )
+ VULKAN_HPP_NOEXCEPT
+ {
+ integerDotProductAccumulatingSaturating16BitUnsignedAccelerated =
+ integerDotProductAccumulatingSaturating16BitUnsignedAccelerated_;
+ return *this;
+ }
+
+ PhysicalDeviceShaderIntegerDotProductPropertiesKHR &
+ setIntegerDotProductAccumulatingSaturating16BitSignedAccelerated(
+ VULKAN_HPP_NAMESPACE::Bool32 integerDotProductAccumulatingSaturating16BitSignedAccelerated_ )
+ VULKAN_HPP_NOEXCEPT
+ {
+ integerDotProductAccumulatingSaturating16BitSignedAccelerated =
+ integerDotProductAccumulatingSaturating16BitSignedAccelerated_;
+ return *this;
+ }
+
+ PhysicalDeviceShaderIntegerDotProductPropertiesKHR &
+ setIntegerDotProductAccumulatingSaturating16BitMixedSignednessAccelerated(
+ VULKAN_HPP_NAMESPACE::Bool32 integerDotProductAccumulatingSaturating16BitMixedSignednessAccelerated_ )
+ VULKAN_HPP_NOEXCEPT
+ {
+ integerDotProductAccumulatingSaturating16BitMixedSignednessAccelerated =
+ integerDotProductAccumulatingSaturating16BitMixedSignednessAccelerated_;
+ return *this;
+ }
+
+ PhysicalDeviceShaderIntegerDotProductPropertiesKHR &
+ setIntegerDotProductAccumulatingSaturating32BitUnsignedAccelerated(
+ VULKAN_HPP_NAMESPACE::Bool32 integerDotProductAccumulatingSaturating32BitUnsignedAccelerated_ )
+ VULKAN_HPP_NOEXCEPT
+ {
+ integerDotProductAccumulatingSaturating32BitUnsignedAccelerated =
+ integerDotProductAccumulatingSaturating32BitUnsignedAccelerated_;
+ return *this;
+ }
+
+ PhysicalDeviceShaderIntegerDotProductPropertiesKHR &
+ setIntegerDotProductAccumulatingSaturating32BitSignedAccelerated(
+ VULKAN_HPP_NAMESPACE::Bool32 integerDotProductAccumulatingSaturating32BitSignedAccelerated_ )
+ VULKAN_HPP_NOEXCEPT
+ {
+ integerDotProductAccumulatingSaturating32BitSignedAccelerated =
+ integerDotProductAccumulatingSaturating32BitSignedAccelerated_;
+ return *this;
+ }
+
+ PhysicalDeviceShaderIntegerDotProductPropertiesKHR &
+ setIntegerDotProductAccumulatingSaturating32BitMixedSignednessAccelerated(
+ VULKAN_HPP_NAMESPACE::Bool32 integerDotProductAccumulatingSaturating32BitMixedSignednessAccelerated_ )
+ VULKAN_HPP_NOEXCEPT
+ {
+ integerDotProductAccumulatingSaturating32BitMixedSignednessAccelerated =
+ integerDotProductAccumulatingSaturating32BitMixedSignednessAccelerated_;
+ return *this;
+ }
+
+ PhysicalDeviceShaderIntegerDotProductPropertiesKHR &
+ setIntegerDotProductAccumulatingSaturating64BitUnsignedAccelerated(
+ VULKAN_HPP_NAMESPACE::Bool32 integerDotProductAccumulatingSaturating64BitUnsignedAccelerated_ )
+ VULKAN_HPP_NOEXCEPT
+ {
+ integerDotProductAccumulatingSaturating64BitUnsignedAccelerated =
+ integerDotProductAccumulatingSaturating64BitUnsignedAccelerated_;
+ return *this;
+ }
+
+ PhysicalDeviceShaderIntegerDotProductPropertiesKHR &
+ setIntegerDotProductAccumulatingSaturating64BitSignedAccelerated(
+ VULKAN_HPP_NAMESPACE::Bool32 integerDotProductAccumulatingSaturating64BitSignedAccelerated_ )
+ VULKAN_HPP_NOEXCEPT
+ {
+ integerDotProductAccumulatingSaturating64BitSignedAccelerated =
+ integerDotProductAccumulatingSaturating64BitSignedAccelerated_;
+ return *this;
+ }
+
+ PhysicalDeviceShaderIntegerDotProductPropertiesKHR &
+ setIntegerDotProductAccumulatingSaturating64BitMixedSignednessAccelerated(
+ VULKAN_HPP_NAMESPACE::Bool32 integerDotProductAccumulatingSaturating64BitMixedSignednessAccelerated_ )
+ VULKAN_HPP_NOEXCEPT
+ {
+ integerDotProductAccumulatingSaturating64BitMixedSignednessAccelerated =
+ integerDotProductAccumulatingSaturating64BitMixedSignednessAccelerated_;
+ return *this;
+ }
+#endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
+
+ operator VkPhysicalDeviceShaderIntegerDotProductPropertiesKHR const &() const VULKAN_HPP_NOEXCEPT
+ {
+ return *reinterpret_cast<const VkPhysicalDeviceShaderIntegerDotProductPropertiesKHR *>( this );
+ }
+
+ operator VkPhysicalDeviceShaderIntegerDotProductPropertiesKHR &() VULKAN_HPP_NOEXCEPT
+ {
+ return *reinterpret_cast<VkPhysicalDeviceShaderIntegerDotProductPropertiesKHR *>( this );
+ }
+
+#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
+ auto operator<=>( PhysicalDeviceShaderIntegerDotProductPropertiesKHR const & ) const = default;
+#else
+ bool operator==( PhysicalDeviceShaderIntegerDotProductPropertiesKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
+ {
+ return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) &&
+ ( integerDotProduct8BitUnsignedAccelerated == rhs.integerDotProduct8BitUnsignedAccelerated ) &&
+ ( integerDotProduct8BitSignedAccelerated == rhs.integerDotProduct8BitSignedAccelerated ) &&
+ ( integerDotProduct8BitMixedSignednessAccelerated ==
+ rhs.integerDotProduct8BitMixedSignednessAccelerated ) &&
+ ( integerDotProduct4x8BitPackedUnsignedAccelerated ==
+ rhs.integerDotProduct4x8BitPackedUnsignedAccelerated ) &&
+ ( integerDotProduct4x8BitPackedSignedAccelerated == rhs.integerDotProduct4x8BitPackedSignedAccelerated ) &&
+ ( integerDotProduct4x8BitPackedMixedSignednessAccelerated ==
+ rhs.integerDotProduct4x8BitPackedMixedSignednessAccelerated ) &&
+ ( integerDotProduct16BitUnsignedAccelerated == rhs.integerDotProduct16BitUnsignedAccelerated ) &&
+ ( integerDotProduct16BitSignedAccelerated == rhs.integerDotProduct16BitSignedAccelerated ) &&
+ ( integerDotProduct16BitMixedSignednessAccelerated ==
+ rhs.integerDotProduct16BitMixedSignednessAccelerated ) &&
+ ( integerDotProduct32BitUnsignedAccelerated == rhs.integerDotProduct32BitUnsignedAccelerated ) &&
+ ( integerDotProduct32BitSignedAccelerated == rhs.integerDotProduct32BitSignedAccelerated ) &&
+ ( integerDotProduct32BitMixedSignednessAccelerated ==
+ rhs.integerDotProduct32BitMixedSignednessAccelerated ) &&
+ ( integerDotProduct64BitUnsignedAccelerated == rhs.integerDotProduct64BitUnsignedAccelerated ) &&
+ ( integerDotProduct64BitSignedAccelerated == rhs.integerDotProduct64BitSignedAccelerated ) &&
+ ( integerDotProduct64BitMixedSignednessAccelerated ==
+ rhs.integerDotProduct64BitMixedSignednessAccelerated ) &&
+ ( integerDotProductAccumulatingSaturating8BitUnsignedAccelerated ==
+ rhs.integerDotProductAccumulatingSaturating8BitUnsignedAccelerated ) &&
+ ( integerDotProductAccumulatingSaturating8BitSignedAccelerated ==
+ rhs.integerDotProductAccumulatingSaturating8BitSignedAccelerated ) &&
+ ( integerDotProductAccumulatingSaturating8BitMixedSignednessAccelerated ==
+ rhs.integerDotProductAccumulatingSaturating8BitMixedSignednessAccelerated ) &&
+ ( integerDotProductAccumulatingSaturating4x8BitPackedUnsignedAccelerated ==
+ rhs.integerDotProductAccumulatingSaturating4x8BitPackedUnsignedAccelerated ) &&
+ ( integerDotProductAccumulatingSaturating4x8BitPackedSignedAccelerated ==
+ rhs.integerDotProductAccumulatingSaturating4x8BitPackedSignedAccelerated ) &&
+ ( integerDotProductAccumulatingSaturating4x8BitPackedMixedSignednessAccelerated ==
+ rhs.integerDotProductAccumulatingSaturating4x8BitPackedMixedSignednessAccelerated ) &&
+ ( integerDotProductAccumulatingSaturating16BitUnsignedAccelerated ==
+ rhs.integerDotProductAccumulatingSaturating16BitUnsignedAccelerated ) &&
+ ( integerDotProductAccumulatingSaturating16BitSignedAccelerated ==
+ rhs.integerDotProductAccumulatingSaturating16BitSignedAccelerated ) &&
+ ( integerDotProductAccumulatingSaturating16BitMixedSignednessAccelerated ==
+ rhs.integerDotProductAccumulatingSaturating16BitMixedSignednessAccelerated ) &&
+ ( integerDotProductAccumulatingSaturating32BitUnsignedAccelerated ==
+ rhs.integerDotProductAccumulatingSaturating32BitUnsignedAccelerated ) &&
+ ( integerDotProductAccumulatingSaturating32BitSignedAccelerated ==
+ rhs.integerDotProductAccumulatingSaturating32BitSignedAccelerated ) &&
+ ( integerDotProductAccumulatingSaturating32BitMixedSignednessAccelerated ==
+ rhs.integerDotProductAccumulatingSaturating32BitMixedSignednessAccelerated ) &&
+ ( integerDotProductAccumulatingSaturating64BitUnsignedAccelerated ==
+ rhs.integerDotProductAccumulatingSaturating64BitUnsignedAccelerated ) &&
+ ( integerDotProductAccumulatingSaturating64BitSignedAccelerated ==
+ rhs.integerDotProductAccumulatingSaturating64BitSignedAccelerated ) &&
+ ( integerDotProductAccumulatingSaturating64BitMixedSignednessAccelerated ==
+ rhs.integerDotProductAccumulatingSaturating64BitMixedSignednessAccelerated );
+ }
+
+ bool operator!=( PhysicalDeviceShaderIntegerDotProductPropertiesKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
+ {
+ return !operator==( rhs );
+ }
+#endif
+
+ public:
+ VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceShaderIntegerDotProductPropertiesKHR;
+ void * pNext = {};
+ VULKAN_HPP_NAMESPACE::Bool32 integerDotProduct8BitUnsignedAccelerated = {};
+ VULKAN_HPP_NAMESPACE::Bool32 integerDotProduct8BitSignedAccelerated = {};
+ VULKAN_HPP_NAMESPACE::Bool32 integerDotProduct8BitMixedSignednessAccelerated = {};
+ VULKAN_HPP_NAMESPACE::Bool32 integerDotProduct4x8BitPackedUnsignedAccelerated = {};
+ VULKAN_HPP_NAMESPACE::Bool32 integerDotProduct4x8BitPackedSignedAccelerated = {};
+ VULKAN_HPP_NAMESPACE::Bool32 integerDotProduct4x8BitPackedMixedSignednessAccelerated = {};
+ VULKAN_HPP_NAMESPACE::Bool32 integerDotProduct16BitUnsignedAccelerated = {};
+ VULKAN_HPP_NAMESPACE::Bool32 integerDotProduct16BitSignedAccelerated = {};
+ VULKAN_HPP_NAMESPACE::Bool32 integerDotProduct16BitMixedSignednessAccelerated = {};
+ VULKAN_HPP_NAMESPACE::Bool32 integerDotProduct32BitUnsignedAccelerated = {};
+ VULKAN_HPP_NAMESPACE::Bool32 integerDotProduct32BitSignedAccelerated = {};
+ VULKAN_HPP_NAMESPACE::Bool32 integerDotProduct32BitMixedSignednessAccelerated = {};
+ VULKAN_HPP_NAMESPACE::Bool32 integerDotProduct64BitUnsignedAccelerated = {};
+ VULKAN_HPP_NAMESPACE::Bool32 integerDotProduct64BitSignedAccelerated = {};
+ VULKAN_HPP_NAMESPACE::Bool32 integerDotProduct64BitMixedSignednessAccelerated = {};
+ VULKAN_HPP_NAMESPACE::Bool32 integerDotProductAccumulatingSaturating8BitUnsignedAccelerated = {};
+ VULKAN_HPP_NAMESPACE::Bool32 integerDotProductAccumulatingSaturating8BitSignedAccelerated = {};
+ VULKAN_HPP_NAMESPACE::Bool32 integerDotProductAccumulatingSaturating8BitMixedSignednessAccelerated = {};
+ VULKAN_HPP_NAMESPACE::Bool32 integerDotProductAccumulatingSaturating4x8BitPackedUnsignedAccelerated = {};
+ VULKAN_HPP_NAMESPACE::Bool32 integerDotProductAccumulatingSaturating4x8BitPackedSignedAccelerated = {};
+ VULKAN_HPP_NAMESPACE::Bool32 integerDotProductAccumulatingSaturating4x8BitPackedMixedSignednessAccelerated = {};
+ VULKAN_HPP_NAMESPACE::Bool32 integerDotProductAccumulatingSaturating16BitUnsignedAccelerated = {};
+ VULKAN_HPP_NAMESPACE::Bool32 integerDotProductAccumulatingSaturating16BitSignedAccelerated = {};
+ VULKAN_HPP_NAMESPACE::Bool32 integerDotProductAccumulatingSaturating16BitMixedSignednessAccelerated = {};
+ VULKAN_HPP_NAMESPACE::Bool32 integerDotProductAccumulatingSaturating32BitUnsignedAccelerated = {};
+ VULKAN_HPP_NAMESPACE::Bool32 integerDotProductAccumulatingSaturating32BitSignedAccelerated = {};
+ VULKAN_HPP_NAMESPACE::Bool32 integerDotProductAccumulatingSaturating32BitMixedSignednessAccelerated = {};
+ VULKAN_HPP_NAMESPACE::Bool32 integerDotProductAccumulatingSaturating64BitUnsignedAccelerated = {};
+ VULKAN_HPP_NAMESPACE::Bool32 integerDotProductAccumulatingSaturating64BitSignedAccelerated = {};
+ VULKAN_HPP_NAMESPACE::Bool32 integerDotProductAccumulatingSaturating64BitMixedSignednessAccelerated = {};
+ };
+ static_assert( sizeof( PhysicalDeviceShaderIntegerDotProductPropertiesKHR ) ==
+ sizeof( VkPhysicalDeviceShaderIntegerDotProductPropertiesKHR ),
+ "struct and wrapper have different size!" );
+ static_assert( std::is_standard_layout<PhysicalDeviceShaderIntegerDotProductPropertiesKHR>::value,
+ "struct wrapper is not a standard layout!" );
+
+ template <>
+ struct CppType<StructureType, StructureType::ePhysicalDeviceShaderIntegerDotProductPropertiesKHR>
+ {
+ using Type = PhysicalDeviceShaderIntegerDotProductPropertiesKHR;
+ };
+
struct PhysicalDeviceShaderIntegerFunctions2FeaturesINTEL
{
static const bool allowDuplicate = false;
@@ -46101,6 +48218,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
+#if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
PhysicalDeviceShaderIntegerFunctions2FeaturesINTEL & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
{
pNext = pNext_;
@@ -46113,6 +48231,7 @@ namespace VULKAN_HPP_NAMESPACE
shaderIntegerFunctions2 = shaderIntegerFunctions2_;
return *this;
}
+#endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
operator VkPhysicalDeviceShaderIntegerFunctions2FeaturesINTEL const &() const VULKAN_HPP_NOEXCEPT
{
@@ -46187,6 +48306,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
+#if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
PhysicalDeviceShaderSMBuiltinsFeaturesNV & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
{
pNext = pNext_;
@@ -46199,6 +48319,7 @@ namespace VULKAN_HPP_NAMESPACE
shaderSMBuiltins = shaderSMBuiltins_;
return *this;
}
+#endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
operator VkPhysicalDeviceShaderSMBuiltinsFeaturesNV const &() const VULKAN_HPP_NOEXCEPT
{
@@ -46351,6 +48472,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
+#if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
PhysicalDeviceShaderSubgroupExtendedTypesFeatures & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
{
pNext = pNext_;
@@ -46363,6 +48485,7 @@ namespace VULKAN_HPP_NAMESPACE
shaderSubgroupExtendedTypes = shaderSubgroupExtendedTypes_;
return *this;
}
+#endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
operator VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures const &() const VULKAN_HPP_NOEXCEPT
{
@@ -46441,6 +48564,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
+#if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
PhysicalDeviceShaderSubgroupUniformControlFlowFeaturesKHR & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
{
pNext = pNext_;
@@ -46453,6 +48577,7 @@ namespace VULKAN_HPP_NAMESPACE
shaderSubgroupUniformControlFlow = shaderSubgroupUniformControlFlow_;
return *this;
}
+#endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
operator VkPhysicalDeviceShaderSubgroupUniformControlFlowFeaturesKHR const &() const VULKAN_HPP_NOEXCEPT
{
@@ -46530,6 +48655,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
+#if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
PhysicalDeviceShaderTerminateInvocationFeaturesKHR & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
{
pNext = pNext_;
@@ -46542,6 +48668,7 @@ namespace VULKAN_HPP_NAMESPACE
shaderTerminateInvocation = shaderTerminateInvocation_;
return *this;
}
+#endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
operator VkPhysicalDeviceShaderTerminateInvocationFeaturesKHR const &() const VULKAN_HPP_NOEXCEPT
{
@@ -46619,6 +48746,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
+#if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
PhysicalDeviceShadingRateImageFeaturesNV & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
{
pNext = pNext_;
@@ -46638,6 +48766,7 @@ namespace VULKAN_HPP_NAMESPACE
shadingRateCoarseSampleOrder = shadingRateCoarseSampleOrder_;
return *this;
}
+#endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
operator VkPhysicalDeviceShadingRateImageFeaturesNV const &() const VULKAN_HPP_NOEXCEPT
{
@@ -46801,6 +48930,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
+#if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
PhysicalDeviceSparseImageFormatInfo2 & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
{
pNext = pNext_;
@@ -46837,6 +48967,7 @@ namespace VULKAN_HPP_NAMESPACE
tiling = tiling_;
return *this;
}
+#endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
operator VkPhysicalDeviceSparseImageFormatInfo2 const &() const VULKAN_HPP_NOEXCEPT
{
@@ -46997,6 +49128,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
+#if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
PhysicalDeviceSubgroupSizeControlFeaturesEXT & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
{
pNext = pNext_;
@@ -47016,6 +49148,7 @@ namespace VULKAN_HPP_NAMESPACE
computeFullSubgroups = computeFullSubgroups_;
return *this;
}
+#endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
operator VkPhysicalDeviceSubgroupSizeControlFeaturesEXT const &() const VULKAN_HPP_NOEXCEPT
{
@@ -47176,6 +49309,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
+#if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
PhysicalDeviceSubpassShadingFeaturesHUAWEI & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
{
pNext = pNext_;
@@ -47188,6 +49322,7 @@ namespace VULKAN_HPP_NAMESPACE
subpassShading = subpassShading_;
return *this;
}
+#endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
operator VkPhysicalDeviceSubpassShadingFeaturesHUAWEI const &() const VULKAN_HPP_NOEXCEPT
{
@@ -47332,6 +49467,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
+#if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
PhysicalDeviceSurfaceInfo2KHR & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
{
pNext = pNext_;
@@ -47343,6 +49479,7 @@ namespace VULKAN_HPP_NAMESPACE
surface = surface_;
return *this;
}
+#endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
operator VkPhysicalDeviceSurfaceInfo2KHR const &() const VULKAN_HPP_NOEXCEPT
{
@@ -47415,6 +49552,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
+#if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
PhysicalDeviceSynchronization2FeaturesKHR & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
{
pNext = pNext_;
@@ -47427,6 +49565,7 @@ namespace VULKAN_HPP_NAMESPACE
synchronization2 = synchronization2_;
return *this;
}
+#endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
operator VkPhysicalDeviceSynchronization2FeaturesKHR const &() const VULKAN_HPP_NOEXCEPT
{
@@ -47501,6 +49640,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
+#if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
PhysicalDeviceTexelBufferAlignmentFeaturesEXT & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
{
pNext = pNext_;
@@ -47513,6 +49653,7 @@ namespace VULKAN_HPP_NAMESPACE
texelBufferAlignment = texelBufferAlignment_;
return *this;
}
+#endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
operator VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT const &() const VULKAN_HPP_NOEXCEPT
{
@@ -47674,6 +49815,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
+#if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
PhysicalDeviceTextureCompressionASTCHDRFeaturesEXT & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
{
pNext = pNext_;
@@ -47686,6 +49828,7 @@ namespace VULKAN_HPP_NAMESPACE
textureCompressionASTC_HDR = textureCompressionASTC_HDR_;
return *this;
}
+#endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
operator VkPhysicalDeviceTextureCompressionASTCHDRFeaturesEXT const &() const VULKAN_HPP_NOEXCEPT
{
@@ -47759,6 +49902,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
+#if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
PhysicalDeviceTimelineSemaphoreFeatures & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
{
pNext = pNext_;
@@ -47771,6 +49915,7 @@ namespace VULKAN_HPP_NAMESPACE
timelineSemaphore = timelineSemaphore_;
return *this;
}
+#endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
operator VkPhysicalDeviceTimelineSemaphoreFeatures const &() const VULKAN_HPP_NOEXCEPT
{
@@ -48003,6 +50148,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
+#if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
PhysicalDeviceTransformFeedbackFeaturesEXT & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
{
pNext = pNext_;
@@ -48022,6 +50168,7 @@ namespace VULKAN_HPP_NAMESPACE
geometryStreams = geometryStreams_;
return *this;
}
+#endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
operator VkPhysicalDeviceTransformFeedbackFeaturesEXT const &() const VULKAN_HPP_NOEXCEPT
{
@@ -48209,6 +50356,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
+#if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
PhysicalDeviceUniformBufferStandardLayoutFeatures & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
{
pNext = pNext_;
@@ -48221,6 +50369,7 @@ namespace VULKAN_HPP_NAMESPACE
uniformBufferStandardLayout = uniformBufferStandardLayout_;
return *this;
}
+#endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
operator VkPhysicalDeviceUniformBufferStandardLayoutFeatures const &() const VULKAN_HPP_NOEXCEPT
{
@@ -48298,6 +50447,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
+#if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
PhysicalDeviceVariablePointersFeatures & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
{
pNext = pNext_;
@@ -48317,6 +50467,7 @@ namespace VULKAN_HPP_NAMESPACE
variablePointers = variablePointers_;
return *this;
}
+#endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
operator VkPhysicalDeviceVariablePointersFeatures const &() const VULKAN_HPP_NOEXCEPT
{
@@ -48398,6 +50549,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
+#if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
PhysicalDeviceVertexAttributeDivisorFeaturesEXT & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
{
pNext = pNext_;
@@ -48417,6 +50569,7 @@ namespace VULKAN_HPP_NAMESPACE
vertexAttributeInstanceRateZeroDivisor = vertexAttributeInstanceRateZeroDivisor_;
return *this;
}
+#endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
operator VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT const &() const VULKAN_HPP_NOEXCEPT
{
@@ -48569,6 +50722,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
+#if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
PhysicalDeviceVertexInputDynamicStateFeaturesEXT & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
{
pNext = pNext_;
@@ -48581,6 +50735,7 @@ namespace VULKAN_HPP_NAMESPACE
vertexInputDynamicState = vertexInputDynamicState_;
return *this;
}
+#endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
operator VkPhysicalDeviceVertexInputDynamicStateFeaturesEXT const &() const VULKAN_HPP_NOEXCEPT
{
@@ -48658,6 +50813,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
+# if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
VideoProfileKHR & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
{
pNext = pNext_;
@@ -48691,6 +50847,7 @@ namespace VULKAN_HPP_NAMESPACE
chromaBitDepth = chromaBitDepth_;
return *this;
}
+# endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
operator VkVideoProfileKHR const &() const VULKAN_HPP_NOEXCEPT
{
@@ -48766,6 +50923,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
+# if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
VideoProfilesKHR & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
{
pNext = pNext_;
@@ -48783,6 +50941,7 @@ namespace VULKAN_HPP_NAMESPACE
pProfiles = pProfiles_;
return *this;
}
+# endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
operator VkVideoProfilesKHR const &() const VULKAN_HPP_NOEXCEPT
{
@@ -48884,7 +51043,7 @@ namespace VULKAN_HPP_NAMESPACE
public:
VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceVideoFormatInfoKHR;
- const void * pNext = {};
+ void * pNext = {};
VULKAN_HPP_NAMESPACE::ImageUsageFlags imageUsage = {};
const VULKAN_HPP_NAMESPACE::VideoProfilesKHR * pVideoProfiles = {};
};
@@ -48950,6 +51109,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
+#if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
PhysicalDeviceVulkan11Features & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
{
pNext = pNext_;
@@ -49038,6 +51198,7 @@ namespace VULKAN_HPP_NAMESPACE
shaderDrawParameters = shaderDrawParameters_;
return *this;
}
+#endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
operator VkPhysicalDeviceVulkan11Features const &() const VULKAN_HPP_NOEXCEPT
{
@@ -49342,6 +51503,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
+#if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
PhysicalDeviceVulkan12Features & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
{
pNext = pNext_;
@@ -49674,6 +51836,7 @@ namespace VULKAN_HPP_NAMESPACE
subgroupBroadcastDynamicId = subgroupBroadcastDynamicId_;
return *this;
}
+#endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
operator VkPhysicalDeviceVulkan12Features const &() const VULKAN_HPP_NOEXCEPT
{
@@ -50131,6 +52294,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
+#if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
PhysicalDeviceVulkanMemoryModelFeatures & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
{
pNext = pNext_;
@@ -50157,6 +52321,7 @@ namespace VULKAN_HPP_NAMESPACE
vulkanMemoryModelAvailabilityVisibilityChains = vulkanMemoryModelAvailabilityVisibilityChains_;
return *this;
}
+#endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
operator VkPhysicalDeviceVulkanMemoryModelFeatures const &() const VULKAN_HPP_NOEXCEPT
{
@@ -50243,6 +52408,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
+#if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
PhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
{
pNext = pNext_;
@@ -50276,6 +52442,7 @@ namespace VULKAN_HPP_NAMESPACE
workgroupMemoryExplicitLayout16BitAccess = workgroupMemoryExplicitLayout16BitAccess_;
return *this;
}
+#endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
operator VkPhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR const &() const VULKAN_HPP_NOEXCEPT
{
@@ -50357,6 +52524,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
+#if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
PhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
{
pNext = pNext_;
@@ -50369,6 +52537,7 @@ namespace VULKAN_HPP_NAMESPACE
ycbcr2plane444Formats = ycbcr2plane444Formats_;
return *this;
}
+#endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
operator VkPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT const &() const VULKAN_HPP_NOEXCEPT
{
@@ -50442,6 +52611,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
+#if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
PhysicalDeviceYcbcrImageArraysFeaturesEXT & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
{
pNext = pNext_;
@@ -50454,6 +52624,7 @@ namespace VULKAN_HPP_NAMESPACE
ycbcrImageArrays = ycbcrImageArrays_;
return *this;
}
+#endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
operator VkPhysicalDeviceYcbcrImageArraysFeaturesEXT const &() const VULKAN_HPP_NOEXCEPT
{
@@ -50529,6 +52700,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
+#if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
PhysicalDeviceZeroInitializeWorkgroupMemoryFeaturesKHR & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
{
pNext = pNext_;
@@ -50541,6 +52713,7 @@ namespace VULKAN_HPP_NAMESPACE
shaderZeroInitializeWorkgroupMemory = shaderZeroInitializeWorkgroupMemory_;
return *this;
}
+#endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
operator VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeaturesKHR const &() const VULKAN_HPP_NOEXCEPT
{
@@ -50622,6 +52795,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
+#if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
PipelineCacheCreateInfo & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
{
pNext = pNext_;
@@ -50646,7 +52820,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
-#if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
+# if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
template <typename T>
PipelineCacheCreateInfo &
setInitialData( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const T> const & initialData_ ) VULKAN_HPP_NOEXCEPT
@@ -50655,7 +52829,8 @@ namespace VULKAN_HPP_NAMESPACE
pInitialData = initialData_.data();
return *this;
}
-#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
+# endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
+#endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
operator VkPipelineCacheCreateInfo const &() const VULKAN_HPP_NOEXCEPT
{
@@ -50699,6 +52874,113 @@ namespace VULKAN_HPP_NAMESPACE
using Type = PipelineCacheCreateInfo;
};
+ struct PipelineCacheHeaderVersionOne
+ {
+#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
+ VULKAN_HPP_CONSTEXPR_14 PipelineCacheHeaderVersionOne(
+ uint32_t headerSize_ = {},
+ VULKAN_HPP_NAMESPACE::PipelineCacheHeaderVersion headerVersion_ =
+ VULKAN_HPP_NAMESPACE::PipelineCacheHeaderVersion::eOne,
+ uint32_t vendorID_ = {},
+ uint32_t deviceID_ = {},
+ std::array<uint8_t, VK_UUID_SIZE> const & pipelineCacheUUID_ = {} ) VULKAN_HPP_NOEXCEPT
+ : headerSize( headerSize_ )
+ , headerVersion( headerVersion_ )
+ , vendorID( vendorID_ )
+ , deviceID( deviceID_ )
+ , pipelineCacheUUID( pipelineCacheUUID_ )
+ {}
+
+ VULKAN_HPP_CONSTEXPR_14
+ PipelineCacheHeaderVersionOne( PipelineCacheHeaderVersionOne const & rhs ) VULKAN_HPP_NOEXCEPT = default;
+
+ PipelineCacheHeaderVersionOne( VkPipelineCacheHeaderVersionOne const & rhs ) VULKAN_HPP_NOEXCEPT
+ : PipelineCacheHeaderVersionOne( *reinterpret_cast<PipelineCacheHeaderVersionOne const *>( &rhs ) )
+ {}
+#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
+
+ VULKAN_HPP_CONSTEXPR_14 PipelineCacheHeaderVersionOne &
+ operator=( PipelineCacheHeaderVersionOne const & rhs ) VULKAN_HPP_NOEXCEPT = default;
+
+ PipelineCacheHeaderVersionOne & operator=( VkPipelineCacheHeaderVersionOne const & rhs ) VULKAN_HPP_NOEXCEPT
+ {
+ *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PipelineCacheHeaderVersionOne const *>( &rhs );
+ return *this;
+ }
+
+#if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
+ PipelineCacheHeaderVersionOne & setHeaderSize( uint32_t headerSize_ ) VULKAN_HPP_NOEXCEPT
+ {
+ headerSize = headerSize_;
+ return *this;
+ }
+
+ PipelineCacheHeaderVersionOne &
+ setHeaderVersion( VULKAN_HPP_NAMESPACE::PipelineCacheHeaderVersion headerVersion_ ) VULKAN_HPP_NOEXCEPT
+ {
+ headerVersion = headerVersion_;
+ return *this;
+ }
+
+ PipelineCacheHeaderVersionOne & setVendorID( uint32_t vendorID_ ) VULKAN_HPP_NOEXCEPT
+ {
+ vendorID = vendorID_;
+ return *this;
+ }
+
+ PipelineCacheHeaderVersionOne & setDeviceID( uint32_t deviceID_ ) VULKAN_HPP_NOEXCEPT
+ {
+ deviceID = deviceID_;
+ return *this;
+ }
+
+ PipelineCacheHeaderVersionOne &
+ setPipelineCacheUUID( std::array<uint8_t, VK_UUID_SIZE> pipelineCacheUUID_ ) VULKAN_HPP_NOEXCEPT
+ {
+ pipelineCacheUUID = pipelineCacheUUID_;
+ return *this;
+ }
+#endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
+
+ operator VkPipelineCacheHeaderVersionOne const &() const VULKAN_HPP_NOEXCEPT
+ {
+ return *reinterpret_cast<const VkPipelineCacheHeaderVersionOne *>( this );
+ }
+
+ operator VkPipelineCacheHeaderVersionOne &() VULKAN_HPP_NOEXCEPT
+ {
+ return *reinterpret_cast<VkPipelineCacheHeaderVersionOne *>( this );
+ }
+
+#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
+ auto operator<=>( PipelineCacheHeaderVersionOne const & ) const = default;
+#else
+ bool operator==( PipelineCacheHeaderVersionOne const & rhs ) const VULKAN_HPP_NOEXCEPT
+ {
+ return ( headerSize == rhs.headerSize ) && ( headerVersion == rhs.headerVersion ) &&
+ ( vendorID == rhs.vendorID ) && ( deviceID == rhs.deviceID ) &&
+ ( pipelineCacheUUID == rhs.pipelineCacheUUID );
+ }
+
+ bool operator!=( PipelineCacheHeaderVersionOne const & rhs ) const VULKAN_HPP_NOEXCEPT
+ {
+ return !operator==( rhs );
+ }
+#endif
+
+ public:
+ uint32_t headerSize = {};
+ VULKAN_HPP_NAMESPACE::PipelineCacheHeaderVersion headerVersion =
+ VULKAN_HPP_NAMESPACE::PipelineCacheHeaderVersion::eOne;
+ uint32_t vendorID = {};
+ uint32_t deviceID = {};
+ VULKAN_HPP_NAMESPACE::ArrayWrapper1D<uint8_t, VK_UUID_SIZE> pipelineCacheUUID = {};
+ };
+ static_assert( sizeof( PipelineCacheHeaderVersionOne ) == sizeof( VkPipelineCacheHeaderVersionOne ),
+ "struct and wrapper have different size!" );
+ static_assert( std::is_standard_layout<PipelineCacheHeaderVersionOne>::value,
+ "struct wrapper is not a standard layout!" );
+
struct PipelineColorBlendAdvancedStateCreateInfoEXT
{
static const bool allowDuplicate = false;
@@ -50736,6 +53018,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
+#if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
PipelineColorBlendAdvancedStateCreateInfoEXT & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
{
pNext = pNext_;
@@ -50762,6 +53045,7 @@ namespace VULKAN_HPP_NAMESPACE
blendOverlap = blendOverlap_;
return *this;
}
+#endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
operator VkPipelineColorBlendAdvancedStateCreateInfoEXT const &() const VULKAN_HPP_NOEXCEPT
{
@@ -50845,6 +53129,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
+#if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
PipelineColorWriteCreateInfoEXT & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
{
pNext = pNext_;
@@ -50864,7 +53149,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
-#if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
+# if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
PipelineColorWriteCreateInfoEXT & setColorWriteEnables(
VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::Bool32> const & colorWriteEnables_ )
VULKAN_HPP_NOEXCEPT
@@ -50873,7 +53158,8 @@ namespace VULKAN_HPP_NAMESPACE
pColorWriteEnables = colorWriteEnables_.data();
return *this;
}
-#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
+# endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
+#endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
operator VkPipelineColorWriteCreateInfoEXT const &() const VULKAN_HPP_NOEXCEPT
{
@@ -50947,6 +53233,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
+#if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
PipelineCompilerControlCreateInfoAMD & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
{
pNext = pNext_;
@@ -50959,6 +53246,7 @@ namespace VULKAN_HPP_NAMESPACE
compilerControlFlags = compilerControlFlags_;
return *this;
}
+#endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
operator VkPipelineCompilerControlCreateInfoAMD const &() const VULKAN_HPP_NOEXCEPT
{
@@ -51055,6 +53343,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
+#if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
PipelineCoverageModulationStateCreateInfoNV & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
{
pNext = pNext_;
@@ -51096,7 +53385,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
-#if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
+# if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
PipelineCoverageModulationStateCreateInfoNV & setCoverageModulationTable(
VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const float> const & coverageModulationTable_ ) VULKAN_HPP_NOEXCEPT
{
@@ -51104,7 +53393,8 @@ namespace VULKAN_HPP_NAMESPACE
pCoverageModulationTable = coverageModulationTable_.data();
return *this;
}
-#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
+# endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
+#endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
operator VkPipelineCoverageModulationStateCreateInfoNV const &() const VULKAN_HPP_NOEXCEPT
{
@@ -51191,6 +53481,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
+#if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
PipelineCoverageReductionStateCreateInfoNV & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
{
pNext = pNext_;
@@ -51210,6 +53501,7 @@ namespace VULKAN_HPP_NAMESPACE
coverageReductionMode = coverageReductionMode_;
return *this;
}
+#endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
operator VkPipelineCoverageReductionStateCreateInfoNV const &() const VULKAN_HPP_NOEXCEPT
{
@@ -51291,6 +53583,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
+#if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
PipelineCoverageToColorStateCreateInfoNV & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
{
pNext = pNext_;
@@ -51317,6 +53610,7 @@ namespace VULKAN_HPP_NAMESPACE
coverageToColorLocation = coverageToColorLocation_;
return *this;
}
+#endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
operator VkPipelineCoverageToColorStateCreateInfoNV const &() const VULKAN_HPP_NOEXCEPT
{
@@ -51469,6 +53763,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
+#if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
PipelineCreationFeedbackCreateInfoEXT & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
{
pNext = pNext_;
@@ -51496,7 +53791,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
-#if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
+# if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
PipelineCreationFeedbackCreateInfoEXT & setPipelineStageCreationFeedbacks(
VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<VULKAN_HPP_NAMESPACE::PipelineCreationFeedbackEXT> const &
pipelineStageCreationFeedbacks_ ) VULKAN_HPP_NOEXCEPT
@@ -51505,7 +53800,8 @@ namespace VULKAN_HPP_NAMESPACE
pPipelineStageCreationFeedbacks = pipelineStageCreationFeedbacks_.data();
return *this;
}
-#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
+# endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
+#endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
operator VkPipelineCreationFeedbackCreateInfoEXT const &() const VULKAN_HPP_NOEXCEPT
{
@@ -51603,6 +53899,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
+#if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
PipelineDiscardRectangleStateCreateInfoEXT & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
{
pNext = pNext_;
@@ -51637,7 +53934,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
-#if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
+# if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
PipelineDiscardRectangleStateCreateInfoEXT & setDiscardRectangles(
VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::Rect2D> const & discardRectangles_ )
VULKAN_HPP_NOEXCEPT
@@ -51646,7 +53943,8 @@ namespace VULKAN_HPP_NAMESPACE
pDiscardRectangles = discardRectangles_.data();
return *this;
}
-#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
+# endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
+#endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
operator VkPipelineDiscardRectangleStateCreateInfoEXT const &() const VULKAN_HPP_NOEXCEPT
{
@@ -51724,6 +54022,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
+#if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
PipelineExecutableInfoKHR & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
{
pNext = pNext_;
@@ -51741,6 +54040,7 @@ namespace VULKAN_HPP_NAMESPACE
executableIndex = executableIndex_;
return *this;
}
+#endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
operator VkPipelineExecutableInfoKHR const &() const VULKAN_HPP_NOEXCEPT
{
@@ -51965,6 +54265,7 @@ namespace VULKAN_HPP_NAMESPACE
union PipelineExecutableStatisticValueKHR
{
+#if !defined( VULKAN_HPP_NO_UNION_CONSTRUCTORS )
PipelineExecutableStatisticValueKHR( VULKAN_HPP_NAMESPACE::PipelineExecutableStatisticValueKHR const & rhs )
VULKAN_HPP_NOEXCEPT
{
@@ -51978,7 +54279,9 @@ namespace VULKAN_HPP_NAMESPACE
PipelineExecutableStatisticValueKHR( uint64_t u64_ ) : u64( u64_ ) {}
PipelineExecutableStatisticValueKHR( double f64_ ) : f64( f64_ ) {}
+#endif /*VULKAN_HPP_NO_UNION_CONSTRUCTORS*/
+#if !defined( VULKAN_HPP_NO_UNION_SETTERS )
PipelineExecutableStatisticValueKHR & setB32( VULKAN_HPP_NAMESPACE::Bool32 b32_ ) VULKAN_HPP_NOEXCEPT
{
b32 = b32_;
@@ -52002,6 +54305,7 @@ namespace VULKAN_HPP_NAMESPACE
f64 = f64_;
return *this;
}
+#endif /*VULKAN_HPP_NO_UNION_SETTERS*/
VULKAN_HPP_NAMESPACE::PipelineExecutableStatisticValueKHR &
operator=( VULKAN_HPP_NAMESPACE::PipelineExecutableStatisticValueKHR const & rhs ) VULKAN_HPP_NOEXCEPT
@@ -52137,6 +54441,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
+#if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
PipelineFragmentShadingRateEnumStateCreateInfoNV & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
{
pNext = pNext_;
@@ -52163,6 +54468,7 @@ namespace VULKAN_HPP_NAMESPACE
combinerOps = combinerOps_;
return *this;
}
+#endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
operator VkPipelineFragmentShadingRateEnumStateCreateInfoNV const &() const VULKAN_HPP_NOEXCEPT
{
@@ -52246,6 +54552,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
+#if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
PipelineFragmentShadingRateStateCreateInfoKHR & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
{
pNext = pNext_;
@@ -52265,6 +54572,7 @@ namespace VULKAN_HPP_NAMESPACE
combinerOps = combinerOps_;
return *this;
}
+#endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
operator VkPipelineFragmentShadingRateStateCreateInfoKHR const &() const VULKAN_HPP_NOEXCEPT
{
@@ -52334,6 +54642,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
+#if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
PipelineInfoKHR & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
{
pNext = pNext_;
@@ -52345,6 +54654,7 @@ namespace VULKAN_HPP_NAMESPACE
pipeline = pipeline_;
return *this;
}
+#endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
operator VkPipelineInfoKHR const &() const VULKAN_HPP_NOEXCEPT
{
@@ -52411,6 +54721,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
+#if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
PushConstantRange & setStageFlags( VULKAN_HPP_NAMESPACE::ShaderStageFlags stageFlags_ ) VULKAN_HPP_NOEXCEPT
{
stageFlags = stageFlags_;
@@ -52428,6 +54739,7 @@ namespace VULKAN_HPP_NAMESPACE
size = size_;
return *this;
}
+#endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
operator VkPushConstantRange const &() const VULKAN_HPP_NOEXCEPT
{
@@ -52512,6 +54824,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
+#if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
PipelineLayoutCreateInfo & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
{
pNext = pNext_;
@@ -52537,7 +54850,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
-#if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
+# if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
PipelineLayoutCreateInfo & setSetLayouts(
VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::DescriptorSetLayout> const &
setLayouts_ ) VULKAN_HPP_NOEXCEPT
@@ -52546,7 +54859,7 @@ namespace VULKAN_HPP_NAMESPACE
pSetLayouts = setLayouts_.data();
return *this;
}
-#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
+# endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
PipelineLayoutCreateInfo & setPushConstantRangeCount( uint32_t pushConstantRangeCount_ ) VULKAN_HPP_NOEXCEPT
{
@@ -52561,7 +54874,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
-#if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
+# if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
PipelineLayoutCreateInfo & setPushConstantRanges(
VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::PushConstantRange> const &
pushConstantRanges_ ) VULKAN_HPP_NOEXCEPT
@@ -52570,7 +54883,8 @@ namespace VULKAN_HPP_NAMESPACE
pPushConstantRanges = pushConstantRanges_.data();
return *this;
}
-#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
+# endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
+#endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
operator VkPipelineLayoutCreateInfo const &() const VULKAN_HPP_NOEXCEPT
{
@@ -52655,6 +54969,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
+#if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
PipelineLibraryCreateInfoKHR & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
{
pNext = pNext_;
@@ -52674,7 +54989,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
-#if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
+# if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
PipelineLibraryCreateInfoKHR & setLibraries(
VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::Pipeline> const & libraries_ )
VULKAN_HPP_NOEXCEPT
@@ -52683,7 +54998,8 @@ namespace VULKAN_HPP_NAMESPACE
pLibraries = libraries_.data();
return *this;
}
-#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
+# endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
+#endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
operator VkPipelineLibraryCreateInfoKHR const &() const VULKAN_HPP_NOEXCEPT
{
@@ -52765,6 +55081,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
+#if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
PipelineRasterizationConservativeStateCreateInfoEXT & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
{
pNext = pNext_;
@@ -52791,6 +55108,7 @@ namespace VULKAN_HPP_NAMESPACE
extraPrimitiveOverestimationSize = extraPrimitiveOverestimationSize_;
return *this;
}
+#endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
operator VkPipelineRasterizationConservativeStateCreateInfoEXT const &() const VULKAN_HPP_NOEXCEPT
{
@@ -52872,6 +55190,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
+#if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
PipelineRasterizationDepthClipStateCreateInfoEXT & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
{
pNext = pNext_;
@@ -52891,6 +55210,7 @@ namespace VULKAN_HPP_NAMESPACE
depthClipEnable = depthClipEnable_;
return *this;
}
+#endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
operator VkPipelineRasterizationDepthClipStateCreateInfoEXT const &() const VULKAN_HPP_NOEXCEPT
{
@@ -52974,6 +55294,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
+#if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
PipelineRasterizationLineStateCreateInfoEXT & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
{
pNext = pNext_;
@@ -53007,6 +55328,7 @@ namespace VULKAN_HPP_NAMESPACE
lineStipplePattern = lineStipplePattern_;
return *this;
}
+#endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
operator VkPipelineRasterizationLineStateCreateInfoEXT const &() const VULKAN_HPP_NOEXCEPT
{
@@ -53090,6 +55412,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
+#if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
PipelineRasterizationProvokingVertexStateCreateInfoEXT & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
{
pNext = pNext_;
@@ -53102,6 +55425,7 @@ namespace VULKAN_HPP_NAMESPACE
provokingVertexMode = provokingVertexMode_;
return *this;
}
+#endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
operator VkPipelineRasterizationProvokingVertexStateCreateInfoEXT const &() const VULKAN_HPP_NOEXCEPT
{
@@ -53178,6 +55502,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
+#if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
PipelineRasterizationStateRasterizationOrderAMD & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
{
pNext = pNext_;
@@ -53190,6 +55515,7 @@ namespace VULKAN_HPP_NAMESPACE
rasterizationOrder = rasterizationOrder_;
return *this;
}
+#endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
operator VkPipelineRasterizationStateRasterizationOrderAMD const &() const VULKAN_HPP_NOEXCEPT
{
@@ -53267,6 +55593,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
+#if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
PipelineRasterizationStateStreamCreateInfoEXT & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
{
pNext = pNext_;
@@ -53286,6 +55613,7 @@ namespace VULKAN_HPP_NAMESPACE
rasterizationStream = rasterizationStream_;
return *this;
}
+#endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
operator VkPipelineRasterizationStateStreamCreateInfoEXT const &() const VULKAN_HPP_NOEXCEPT
{
@@ -53363,6 +55691,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
+#if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
PipelineRepresentativeFragmentTestStateCreateInfoNV & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
{
pNext = pNext_;
@@ -53375,6 +55704,7 @@ namespace VULKAN_HPP_NAMESPACE
representativeFragmentTestEnable = representativeFragmentTestEnable_;
return *this;
}
+#endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
operator VkPipelineRepresentativeFragmentTestStateCreateInfoNV const &() const VULKAN_HPP_NOEXCEPT
{
@@ -53452,6 +55782,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
+#if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
PipelineSampleLocationsStateCreateInfoEXT & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
{
pNext = pNext_;
@@ -53471,6 +55802,7 @@ namespace VULKAN_HPP_NAMESPACE
sampleLocationsInfo = sampleLocationsInfo_;
return *this;
}
+#endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
operator VkPipelineSampleLocationsStateCreateInfoEXT const &() const VULKAN_HPP_NOEXCEPT
{
@@ -53622,6 +55954,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
+#if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
PipelineTessellationDomainOriginStateCreateInfo & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
{
pNext = pNext_;
@@ -53634,6 +55967,7 @@ namespace VULKAN_HPP_NAMESPACE
domainOrigin = domainOrigin_;
return *this;
}
+#endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
operator VkPipelineTessellationDomainOriginStateCreateInfo const &() const VULKAN_HPP_NOEXCEPT
{
@@ -53706,6 +56040,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
+#if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
VertexInputBindingDivisorDescriptionEXT & setBinding( uint32_t binding_ ) VULKAN_HPP_NOEXCEPT
{
binding = binding_;
@@ -53717,6 +56052,7 @@ namespace VULKAN_HPP_NAMESPACE
divisor = divisor_;
return *this;
}
+#endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
operator VkVertexInputBindingDivisorDescriptionEXT const &() const VULKAN_HPP_NOEXCEPT
{
@@ -53796,6 +56132,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
+#if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
PipelineVertexInputDivisorStateCreateInfoEXT & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
{
pNext = pNext_;
@@ -53817,7 +56154,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
-#if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
+# if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
PipelineVertexInputDivisorStateCreateInfoEXT & setVertexBindingDivisors(
VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<
const VULKAN_HPP_NAMESPACE::VertexInputBindingDivisorDescriptionEXT> const & vertexBindingDivisors_ )
@@ -53827,7 +56164,8 @@ namespace VULKAN_HPP_NAMESPACE
pVertexBindingDivisors = vertexBindingDivisors_.data();
return *this;
}
-#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
+# endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
+#endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
operator VkPipelineVertexInputDivisorStateCreateInfoEXT const &() const VULKAN_HPP_NOEXCEPT
{
@@ -53922,6 +56260,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
+#if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
PipelineViewportCoarseSampleOrderStateCreateInfoNV & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
{
pNext = pNext_;
@@ -53949,7 +56288,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
-#if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
+# if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
PipelineViewportCoarseSampleOrderStateCreateInfoNV & setCustomSampleOrders(
VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::CoarseSampleOrderCustomNV> const &
customSampleOrders_ ) VULKAN_HPP_NOEXCEPT
@@ -53958,7 +56297,8 @@ namespace VULKAN_HPP_NAMESPACE
pCustomSampleOrders = customSampleOrders_.data();
return *this;
}
-#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
+# endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
+#endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
operator VkPipelineViewportCoarseSampleOrderStateCreateInfoNV const &() const VULKAN_HPP_NOEXCEPT
{
@@ -54049,6 +56389,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
+#if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
PipelineViewportExclusiveScissorStateCreateInfoNV & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
{
pNext = pNext_;
@@ -54069,7 +56410,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
-#if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
+# if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
PipelineViewportExclusiveScissorStateCreateInfoNV & setExclusiveScissors(
VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::Rect2D> const & exclusiveScissors_ )
VULKAN_HPP_NOEXCEPT
@@ -54078,7 +56419,8 @@ namespace VULKAN_HPP_NAMESPACE
pExclusiveScissors = exclusiveScissors_.data();
return *this;
}
-#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
+# endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
+#endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
operator VkPipelineViewportExclusiveScissorStateCreateInfoNV const &() const VULKAN_HPP_NOEXCEPT
{
@@ -54158,6 +56500,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
+#if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
ShadingRatePaletteNV & setShadingRatePaletteEntryCount( uint32_t shadingRatePaletteEntryCount_ ) VULKAN_HPP_NOEXCEPT
{
shadingRatePaletteEntryCount = shadingRatePaletteEntryCount_;
@@ -54171,7 +56514,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
-#if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
+# if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
ShadingRatePaletteNV & setShadingRatePaletteEntries(
VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::ShadingRatePaletteEntryNV> const &
shadingRatePaletteEntries_ ) VULKAN_HPP_NOEXCEPT
@@ -54180,7 +56523,8 @@ namespace VULKAN_HPP_NAMESPACE
pShadingRatePaletteEntries = shadingRatePaletteEntries_.data();
return *this;
}
-#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
+# endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
+#endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
operator VkShadingRatePaletteNV const &() const VULKAN_HPP_NOEXCEPT
{
@@ -54263,6 +56607,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
+#if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
PipelineViewportShadingRateImageStateCreateInfoNV & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
{
pNext = pNext_;
@@ -54289,7 +56634,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
-#if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
+# if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
PipelineViewportShadingRateImageStateCreateInfoNV & setShadingRatePalettes(
VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::ShadingRatePaletteNV> const &
shadingRatePalettes_ ) VULKAN_HPP_NOEXCEPT
@@ -54298,7 +56643,8 @@ namespace VULKAN_HPP_NAMESPACE
pShadingRatePalettes = shadingRatePalettes_.data();
return *this;
}
-#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
+# endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
+#endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
operator VkPipelineViewportShadingRateImageStateCreateInfoNV const &() const VULKAN_HPP_NOEXCEPT
{
@@ -54379,6 +56725,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
+#if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
ViewportSwizzleNV & setX( VULKAN_HPP_NAMESPACE::ViewportCoordinateSwizzleNV x_ ) VULKAN_HPP_NOEXCEPT
{
x = x_;
@@ -54402,6 +56749,7 @@ namespace VULKAN_HPP_NAMESPACE
w = w_;
return *this;
}
+#endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
operator VkViewportSwizzleNV const &() const VULKAN_HPP_NOEXCEPT
{
@@ -54484,6 +56832,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
+#if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
PipelineViewportSwizzleStateCreateInfoNV & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
{
pNext = pNext_;
@@ -54510,7 +56859,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
-#if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
+# if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
PipelineViewportSwizzleStateCreateInfoNV & setViewportSwizzles(
VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::ViewportSwizzleNV> const &
viewportSwizzles_ ) VULKAN_HPP_NOEXCEPT
@@ -54519,7 +56868,8 @@ namespace VULKAN_HPP_NAMESPACE
pViewportSwizzles = viewportSwizzles_.data();
return *this;
}
-#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
+# endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
+#endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
operator VkPipelineViewportSwizzleStateCreateInfoNV const &() const VULKAN_HPP_NOEXCEPT
{
@@ -54589,6 +56939,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
+#if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
ViewportWScalingNV & setXcoeff( float xcoeff_ ) VULKAN_HPP_NOEXCEPT
{
xcoeff = xcoeff_;
@@ -54600,6 +56951,7 @@ namespace VULKAN_HPP_NAMESPACE
ycoeff = ycoeff_;
return *this;
}
+#endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
operator VkViewportWScalingNV const &() const VULKAN_HPP_NOEXCEPT
{
@@ -54680,6 +57032,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
+#if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
PipelineViewportWScalingStateCreateInfoNV & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
{
pNext = pNext_;
@@ -54706,7 +57059,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
-#if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
+# if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
PipelineViewportWScalingStateCreateInfoNV & setViewportWScalings(
VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::ViewportWScalingNV> const &
viewportWScalings_ ) VULKAN_HPP_NOEXCEPT
@@ -54715,7 +57068,8 @@ namespace VULKAN_HPP_NAMESPACE
pViewportWScalings = viewportWScalings_.data();
return *this;
}
-#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
+# endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
+#endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
operator VkPipelineViewportWScalingStateCreateInfoNV const &() const VULKAN_HPP_NOEXCEPT
{
@@ -54789,6 +57143,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
+# if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
PresentFrameTokenGGP & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
{
pNext = pNext_;
@@ -54800,6 +57155,7 @@ namespace VULKAN_HPP_NAMESPACE
frameToken = frameToken_;
return *this;
}
+# endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
operator VkPresentFrameTokenGGP const &() const VULKAN_HPP_NOEXCEPT
{
@@ -54842,6 +57198,109 @@ namespace VULKAN_HPP_NAMESPACE
};
#endif /*VK_USE_PLATFORM_GGP*/
+ struct PresentIdKHR
+ {
+ static const bool allowDuplicate = false;
+ static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePresentIdKHR;
+
+#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
+ VULKAN_HPP_CONSTEXPR PresentIdKHR( uint32_t swapchainCount_ = {},
+ const uint64_t * pPresentIds_ = {} ) VULKAN_HPP_NOEXCEPT
+ : swapchainCount( swapchainCount_ )
+ , pPresentIds( pPresentIds_ )
+ {}
+
+ VULKAN_HPP_CONSTEXPR PresentIdKHR( PresentIdKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
+
+ PresentIdKHR( VkPresentIdKHR const & rhs ) VULKAN_HPP_NOEXCEPT
+ : PresentIdKHR( *reinterpret_cast<PresentIdKHR const *>( &rhs ) )
+ {}
+
+# if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
+ PresentIdKHR( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const uint64_t> const & presentIds_ )
+ : swapchainCount( static_cast<uint32_t>( presentIds_.size() ) ), pPresentIds( presentIds_.data() )
+ {}
+# endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
+#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
+
+ VULKAN_HPP_CONSTEXPR_14 PresentIdKHR & operator=( PresentIdKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
+
+ PresentIdKHR & operator=( VkPresentIdKHR const & rhs ) VULKAN_HPP_NOEXCEPT
+ {
+ *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PresentIdKHR const *>( &rhs );
+ return *this;
+ }
+
+#if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
+ PresentIdKHR & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
+ {
+ pNext = pNext_;
+ return *this;
+ }
+
+ PresentIdKHR & setSwapchainCount( uint32_t swapchainCount_ ) VULKAN_HPP_NOEXCEPT
+ {
+ swapchainCount = swapchainCount_;
+ return *this;
+ }
+
+ PresentIdKHR & setPPresentIds( const uint64_t * pPresentIds_ ) VULKAN_HPP_NOEXCEPT
+ {
+ pPresentIds = pPresentIds_;
+ return *this;
+ }
+
+# if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
+ PresentIdKHR & setPresentIds( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const uint64_t> const & presentIds_ )
+ VULKAN_HPP_NOEXCEPT
+ {
+ swapchainCount = static_cast<uint32_t>( presentIds_.size() );
+ pPresentIds = presentIds_.data();
+ return *this;
+ }
+# endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
+#endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
+
+ operator VkPresentIdKHR const &() const VULKAN_HPP_NOEXCEPT
+ {
+ return *reinterpret_cast<const VkPresentIdKHR *>( this );
+ }
+
+ operator VkPresentIdKHR &() VULKAN_HPP_NOEXCEPT
+ {
+ return *reinterpret_cast<VkPresentIdKHR *>( this );
+ }
+
+#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
+ auto operator<=>( PresentIdKHR const & ) const = default;
+#else
+ bool operator==( PresentIdKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
+ {
+ return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( swapchainCount == rhs.swapchainCount ) &&
+ ( pPresentIds == rhs.pPresentIds );
+ }
+
+ bool operator!=( PresentIdKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
+ {
+ return !operator==( rhs );
+ }
+#endif
+
+ public:
+ VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePresentIdKHR;
+ const void * pNext = {};
+ uint32_t swapchainCount = {};
+ const uint64_t * pPresentIds = {};
+ };
+ static_assert( sizeof( PresentIdKHR ) == sizeof( VkPresentIdKHR ), "struct and wrapper have different size!" );
+ static_assert( std::is_standard_layout<PresentIdKHR>::value, "struct wrapper is not a standard layout!" );
+
+ template <>
+ struct CppType<StructureType, StructureType::ePresentIdKHR>
+ {
+ using Type = PresentIdKHR;
+ };
+
struct PresentInfoKHR
{
static const bool allowDuplicate = false;
@@ -54916,6 +57375,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
+#if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
PresentInfoKHR & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
{
pNext = pNext_;
@@ -54934,7 +57394,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
-#if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
+# if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
PresentInfoKHR & setWaitSemaphores(
VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::Semaphore> const & waitSemaphores_ )
VULKAN_HPP_NOEXCEPT
@@ -54943,7 +57403,7 @@ namespace VULKAN_HPP_NAMESPACE
pWaitSemaphores = waitSemaphores_.data();
return *this;
}
-#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
+# endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
PresentInfoKHR & setSwapchainCount( uint32_t swapchainCount_ ) VULKAN_HPP_NOEXCEPT
{
@@ -54957,7 +57417,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
-#if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
+# if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
PresentInfoKHR & setSwapchains(
VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::SwapchainKHR> const & swapchains_ )
VULKAN_HPP_NOEXCEPT
@@ -54966,7 +57426,7 @@ namespace VULKAN_HPP_NAMESPACE
pSwapchains = swapchains_.data();
return *this;
}
-#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
+# endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
PresentInfoKHR & setPImageIndices( const uint32_t * pImageIndices_ ) VULKAN_HPP_NOEXCEPT
{
@@ -54974,7 +57434,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
-#if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
+# if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
PresentInfoKHR & setImageIndices(
VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const uint32_t> const & imageIndices_ ) VULKAN_HPP_NOEXCEPT
{
@@ -54982,7 +57442,7 @@ namespace VULKAN_HPP_NAMESPACE
pImageIndices = imageIndices_.data();
return *this;
}
-#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
+# endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
PresentInfoKHR & setPResults( VULKAN_HPP_NAMESPACE::Result * pResults_ ) VULKAN_HPP_NOEXCEPT
{
@@ -54990,7 +57450,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
-#if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
+# if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
PresentInfoKHR & setResults(
VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<VULKAN_HPP_NAMESPACE::Result> const & results_ ) VULKAN_HPP_NOEXCEPT
{
@@ -54998,7 +57458,8 @@ namespace VULKAN_HPP_NAMESPACE
pResults = results_.data();
return *this;
}
-#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
+# endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
+#endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
operator VkPresentInfoKHR const &() const VULKAN_HPP_NOEXCEPT
{
@@ -55076,6 +57537,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
+#if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
RectLayerKHR & setOffset( VULKAN_HPP_NAMESPACE::Offset2D const & offset_ ) VULKAN_HPP_NOEXCEPT
{
offset = offset_;
@@ -55093,6 +57555,7 @@ namespace VULKAN_HPP_NAMESPACE
layer = layer_;
return *this;
}
+#endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
operator VkRectLayerKHR const &() const VULKAN_HPP_NOEXCEPT
{
@@ -55158,6 +57621,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
+#if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
PresentRegionKHR & setRectangleCount( uint32_t rectangleCount_ ) VULKAN_HPP_NOEXCEPT
{
rectangleCount = rectangleCount_;
@@ -55170,7 +57634,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
-#if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
+# if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
PresentRegionKHR & setRectangles(
VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::RectLayerKHR> const & rectangles_ )
VULKAN_HPP_NOEXCEPT
@@ -55179,7 +57643,8 @@ namespace VULKAN_HPP_NAMESPACE
pRectangles = rectangles_.data();
return *this;
}
-#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
+# endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
+#endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
operator VkPresentRegionKHR const &() const VULKAN_HPP_NOEXCEPT
{
@@ -55249,6 +57714,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
+#if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
PresentRegionsKHR & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
{
pNext = pNext_;
@@ -55267,7 +57733,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
-#if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
+# if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
PresentRegionsKHR & setRegions(
VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::PresentRegionKHR> const & regions_ )
VULKAN_HPP_NOEXCEPT
@@ -55276,7 +57742,8 @@ namespace VULKAN_HPP_NAMESPACE
pRegions = regions_.data();
return *this;
}
-#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
+# endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
+#endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
operator VkPresentRegionsKHR const &() const VULKAN_HPP_NOEXCEPT
{
@@ -55344,6 +57811,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
+#if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
PresentTimeGOOGLE & setPresentID( uint32_t presentID_ ) VULKAN_HPP_NOEXCEPT
{
presentID = presentID_;
@@ -55355,6 +57823,7 @@ namespace VULKAN_HPP_NAMESPACE
desiredPresentTime = desiredPresentTime_;
return *this;
}
+#endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
operator VkPresentTimeGOOGLE const &() const VULKAN_HPP_NOEXCEPT
{
@@ -55424,6 +57893,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
+#if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
PresentTimesInfoGOOGLE & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
{
pNext = pNext_;
@@ -55442,7 +57912,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
-#if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
+# if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
PresentTimesInfoGOOGLE & setTimes(
VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::PresentTimeGOOGLE> const & times_ )
VULKAN_HPP_NOEXCEPT
@@ -55451,7 +57921,8 @@ namespace VULKAN_HPP_NAMESPACE
pTimes = times_.data();
return *this;
}
-#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
+# endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
+#endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
operator VkPresentTimesInfoGOOGLE const &() const VULKAN_HPP_NOEXCEPT
{
@@ -55521,6 +57992,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
+#if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
PrivateDataSlotCreateInfoEXT & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
{
pNext = pNext_;
@@ -55533,6 +58005,7 @@ namespace VULKAN_HPP_NAMESPACE
flags = flags_;
return *this;
}
+#endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
operator VkPrivateDataSlotCreateInfoEXT const &() const VULKAN_HPP_NOEXCEPT
{
@@ -55600,6 +58073,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
+#if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
ProtectedSubmitInfo & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
{
pNext = pNext_;
@@ -55611,6 +58085,7 @@ namespace VULKAN_HPP_NAMESPACE
protectedSubmit = protectedSubmit_;
return *this;
}
+#endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
operator VkProtectedSubmitInfo const &() const VULKAN_HPP_NOEXCEPT
{
@@ -55684,6 +58159,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
+#if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
QueryPoolCreateInfo & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
{
pNext = pNext_;
@@ -55714,6 +58190,7 @@ namespace VULKAN_HPP_NAMESPACE
pipelineStatistics = pipelineStatistics_;
return *this;
}
+#endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
operator VkQueryPoolCreateInfo const &() const VULKAN_HPP_NOEXCEPT
{
@@ -55801,6 +58278,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
+#if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
QueryPoolPerformanceCreateInfoKHR & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
{
pNext = pNext_;
@@ -55825,7 +58303,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
-#if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
+# if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
QueryPoolPerformanceCreateInfoKHR & setCounterIndices(
VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const uint32_t> const & counterIndices_ ) VULKAN_HPP_NOEXCEPT
{
@@ -55833,7 +58311,8 @@ namespace VULKAN_HPP_NAMESPACE
pCounterIndices = counterIndices_.data();
return *this;
}
-#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
+# endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
+#endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
operator VkQueryPoolPerformanceCreateInfoKHR const &() const VULKAN_HPP_NOEXCEPT
{
@@ -55911,6 +58390,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
+#if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
QueryPoolPerformanceQueryCreateInfoINTEL & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
{
pNext = pNext_;
@@ -55923,6 +58403,7 @@ namespace VULKAN_HPP_NAMESPACE
performanceCountersSampling = performanceCountersSampling_;
return *this;
}
+#endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
operator VkQueryPoolPerformanceQueryCreateInfoINTEL const &() const VULKAN_HPP_NOEXCEPT
{
@@ -56158,6 +58639,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
+#if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
QueueFamilyGlobalPriorityPropertiesEXT & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
{
pNext = pNext_;
@@ -56177,6 +58659,7 @@ namespace VULKAN_HPP_NAMESPACE
priorities = priorities_;
return *this;
}
+#endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
operator VkQueueFamilyGlobalPriorityPropertiesEXT const &() const VULKAN_HPP_NOEXCEPT
{
@@ -56395,6 +58878,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
+#if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
RayTracingShaderGroupCreateInfoKHR & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
{
pNext = pNext_;
@@ -56438,6 +58922,7 @@ namespace VULKAN_HPP_NAMESPACE
pShaderGroupCaptureReplayHandle = pShaderGroupCaptureReplayHandle_;
return *this;
}
+#endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
operator VkRayTracingShaderGroupCreateInfoKHR const &() const VULKAN_HPP_NOEXCEPT
{
@@ -56522,6 +59007,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
+#if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
RayTracingPipelineInterfaceCreateInfoKHR & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
{
pNext = pNext_;
@@ -56541,6 +59027,7 @@ namespace VULKAN_HPP_NAMESPACE
maxPipelineRayHitAttributeSize = maxPipelineRayHitAttributeSize_;
return *this;
}
+#endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
operator VkRayTracingPipelineInterfaceCreateInfoKHR const &() const VULKAN_HPP_NOEXCEPT
{
@@ -56665,6 +59152,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
+#if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
RayTracingPipelineCreateInfoKHR & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
{
pNext = pNext_;
@@ -56690,7 +59178,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
-#if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
+# if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
RayTracingPipelineCreateInfoKHR & setStages(
VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::PipelineShaderStageCreateInfo> const &
stages_ ) VULKAN_HPP_NOEXCEPT
@@ -56699,7 +59187,7 @@ namespace VULKAN_HPP_NAMESPACE
pStages = stages_.data();
return *this;
}
-#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
+# endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
RayTracingPipelineCreateInfoKHR & setGroupCount( uint32_t groupCount_ ) VULKAN_HPP_NOEXCEPT
{
@@ -56714,7 +59202,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
-#if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
+# if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
RayTracingPipelineCreateInfoKHR &
setGroups( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<
const VULKAN_HPP_NAMESPACE::RayTracingShaderGroupCreateInfoKHR> const & groups_ ) VULKAN_HPP_NOEXCEPT
@@ -56723,7 +59211,7 @@ namespace VULKAN_HPP_NAMESPACE
pGroups = groups_.data();
return *this;
}
-#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
+# endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
RayTracingPipelineCreateInfoKHR &
setMaxPipelineRayRecursionDepth( uint32_t maxPipelineRayRecursionDepth_ ) VULKAN_HPP_NOEXCEPT
@@ -56771,6 +59259,7 @@ namespace VULKAN_HPP_NAMESPACE
basePipelineIndex = basePipelineIndex_;
return *this;
}
+#endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
operator VkRayTracingPipelineCreateInfoKHR const &() const VULKAN_HPP_NOEXCEPT
{
@@ -56866,6 +59355,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
+#if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
RayTracingShaderGroupCreateInfoNV & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
{
pNext = pNext_;
@@ -56902,6 +59392,7 @@ namespace VULKAN_HPP_NAMESPACE
intersectionShader = intersectionShader_;
return *this;
}
+#endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
operator VkRayTracingShaderGroupCreateInfoNV const &() const VULKAN_HPP_NOEXCEPT
{
@@ -57017,6 +59508,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
+#if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
RayTracingPipelineCreateInfoNV & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
{
pNext = pNext_;
@@ -57042,7 +59534,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
-#if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
+# if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
RayTracingPipelineCreateInfoNV & setStages(
VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::PipelineShaderStageCreateInfo> const &
stages_ ) VULKAN_HPP_NOEXCEPT
@@ -57051,7 +59543,7 @@ namespace VULKAN_HPP_NAMESPACE
pStages = stages_.data();
return *this;
}
-#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
+# endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
RayTracingPipelineCreateInfoNV & setGroupCount( uint32_t groupCount_ ) VULKAN_HPP_NOEXCEPT
{
@@ -57066,7 +59558,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
-#if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
+# if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
RayTracingPipelineCreateInfoNV &
setGroups( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<
const VULKAN_HPP_NAMESPACE::RayTracingShaderGroupCreateInfoNV> const & groups_ ) VULKAN_HPP_NOEXCEPT
@@ -57075,7 +59567,7 @@ namespace VULKAN_HPP_NAMESPACE
pGroups = groups_.data();
return *this;
}
-#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
+# endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
RayTracingPipelineCreateInfoNV & setMaxRecursionDepth( uint32_t maxRecursionDepth_ ) VULKAN_HPP_NOEXCEPT
{
@@ -57101,6 +59593,7 @@ namespace VULKAN_HPP_NAMESPACE
basePipelineIndex = basePipelineIndex_;
return *this;
}
+#endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
operator VkRayTracingPipelineCreateInfoNV const &() const VULKAN_HPP_NOEXCEPT
{
@@ -57246,6 +59739,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
+#if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
RenderPassAttachmentBeginInfo & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
{
pNext = pNext_;
@@ -57265,7 +59759,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
-#if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
+# if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
RenderPassAttachmentBeginInfo & setAttachments(
VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::ImageView> const & attachments_ )
VULKAN_HPP_NOEXCEPT
@@ -57274,7 +59768,8 @@ namespace VULKAN_HPP_NAMESPACE
pAttachments = attachments_.data();
return *this;
}
-#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
+# endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
+#endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
operator VkRenderPassAttachmentBeginInfo const &() const VULKAN_HPP_NOEXCEPT
{
@@ -57368,6 +59863,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
+#if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
RenderPassBeginInfo & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
{
pNext = pNext_;
@@ -57404,7 +59900,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
-#if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
+# if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
RenderPassBeginInfo & setClearValues(
VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::ClearValue> const & clearValues_ )
VULKAN_HPP_NOEXCEPT
@@ -57413,7 +59909,8 @@ namespace VULKAN_HPP_NAMESPACE
pClearValues = clearValues_.data();
return *this;
}
-#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
+# endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
+#endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
operator VkRenderPassBeginInfo const &() const VULKAN_HPP_NOEXCEPT
{
@@ -57538,6 +60035,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
+#if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
SubpassDescription & setFlags( VULKAN_HPP_NAMESPACE::SubpassDescriptionFlags flags_ ) VULKAN_HPP_NOEXCEPT
{
flags = flags_;
@@ -57564,7 +60062,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
-#if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
+# if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
SubpassDescription & setInputAttachments(
VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::AttachmentReference> const &
inputAttachments_ ) VULKAN_HPP_NOEXCEPT
@@ -57573,7 +60071,7 @@ namespace VULKAN_HPP_NAMESPACE
pInputAttachments = inputAttachments_.data();
return *this;
}
-#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
+# endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
SubpassDescription & setColorAttachmentCount( uint32_t colorAttachmentCount_ ) VULKAN_HPP_NOEXCEPT
{
@@ -57588,7 +60086,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
-#if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
+# if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
SubpassDescription & setColorAttachments(
VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::AttachmentReference> const &
colorAttachments_ ) VULKAN_HPP_NOEXCEPT
@@ -57597,7 +60095,7 @@ namespace VULKAN_HPP_NAMESPACE
pColorAttachments = colorAttachments_.data();
return *this;
}
-#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
+# endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
SubpassDescription & setPResolveAttachments(
const VULKAN_HPP_NAMESPACE::AttachmentReference * pResolveAttachments_ ) VULKAN_HPP_NOEXCEPT
@@ -57606,7 +60104,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
-#if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
+# if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
SubpassDescription & setResolveAttachments(
VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::AttachmentReference> const &
resolveAttachments_ ) VULKAN_HPP_NOEXCEPT
@@ -57615,7 +60113,7 @@ namespace VULKAN_HPP_NAMESPACE
pResolveAttachments = resolveAttachments_.data();
return *this;
}
-#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
+# endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
SubpassDescription & setPDepthStencilAttachment(
const VULKAN_HPP_NAMESPACE::AttachmentReference * pDepthStencilAttachment_ ) VULKAN_HPP_NOEXCEPT
@@ -57636,7 +60134,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
-#if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
+# if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
SubpassDescription & setPreserveAttachments(
VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const uint32_t> const & preserveAttachments_ ) VULKAN_HPP_NOEXCEPT
{
@@ -57644,7 +60142,8 @@ namespace VULKAN_HPP_NAMESPACE
pPreserveAttachments = preserveAttachments_.data();
return *this;
}
-#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
+# endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
+#endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
operator VkSubpassDescription const &() const VULKAN_HPP_NOEXCEPT
{
@@ -57728,6 +60227,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
+#if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
SubpassDependency & setSrcSubpass( uint32_t srcSubpass_ ) VULKAN_HPP_NOEXCEPT
{
srcSubpass = srcSubpass_;
@@ -57769,6 +60269,7 @@ namespace VULKAN_HPP_NAMESPACE
dependencyFlags = dependencyFlags_;
return *this;
}
+#endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
operator VkSubpassDependency const &() const VULKAN_HPP_NOEXCEPT
{
@@ -57868,6 +60369,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
+#if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
RenderPassCreateInfo & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
{
pNext = pNext_;
@@ -57893,7 +60395,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
-#if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
+# if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
RenderPassCreateInfo & setAttachments(
VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::AttachmentDescription> const &
attachments_ ) VULKAN_HPP_NOEXCEPT
@@ -57902,7 +60404,7 @@ namespace VULKAN_HPP_NAMESPACE
pAttachments = attachments_.data();
return *this;
}
-#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
+# endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
RenderPassCreateInfo & setSubpassCount( uint32_t subpassCount_ ) VULKAN_HPP_NOEXCEPT
{
@@ -57917,7 +60419,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
-#if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
+# if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
RenderPassCreateInfo & setSubpasses(
VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::SubpassDescription> const & subpasses_ )
VULKAN_HPP_NOEXCEPT
@@ -57926,7 +60428,7 @@ namespace VULKAN_HPP_NAMESPACE
pSubpasses = subpasses_.data();
return *this;
}
-#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
+# endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
RenderPassCreateInfo & setDependencyCount( uint32_t dependencyCount_ ) VULKAN_HPP_NOEXCEPT
{
@@ -57941,7 +60443,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
-#if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
+# if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
RenderPassCreateInfo & setDependencies(
VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::SubpassDependency> const &
dependencies_ ) VULKAN_HPP_NOEXCEPT
@@ -57950,7 +60452,8 @@ namespace VULKAN_HPP_NAMESPACE
pDependencies = dependencies_.data();
return *this;
}
-#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
+# endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
+#endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
operator VkRenderPassCreateInfo const &() const VULKAN_HPP_NOEXCEPT
{
@@ -58085,6 +60588,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
+#if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
SubpassDescription2 & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
{
pNext = pNext_;
@@ -58123,7 +60627,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
-#if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
+# if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
SubpassDescription2 & setInputAttachments(
VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::AttachmentReference2> const &
inputAttachments_ ) VULKAN_HPP_NOEXCEPT
@@ -58132,7 +60636,7 @@ namespace VULKAN_HPP_NAMESPACE
pInputAttachments = inputAttachments_.data();
return *this;
}
-#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
+# endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
SubpassDescription2 & setColorAttachmentCount( uint32_t colorAttachmentCount_ ) VULKAN_HPP_NOEXCEPT
{
@@ -58147,7 +60651,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
-#if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
+# if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
SubpassDescription2 & setColorAttachments(
VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::AttachmentReference2> const &
colorAttachments_ ) VULKAN_HPP_NOEXCEPT
@@ -58156,7 +60660,7 @@ namespace VULKAN_HPP_NAMESPACE
pColorAttachments = colorAttachments_.data();
return *this;
}
-#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
+# endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
SubpassDescription2 & setPResolveAttachments(
const VULKAN_HPP_NAMESPACE::AttachmentReference2 * pResolveAttachments_ ) VULKAN_HPP_NOEXCEPT
@@ -58165,7 +60669,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
-#if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
+# if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
SubpassDescription2 & setResolveAttachments(
VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::AttachmentReference2> const &
resolveAttachments_ ) VULKAN_HPP_NOEXCEPT
@@ -58174,7 +60678,7 @@ namespace VULKAN_HPP_NAMESPACE
pResolveAttachments = resolveAttachments_.data();
return *this;
}
-#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
+# endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
SubpassDescription2 & setPDepthStencilAttachment(
const VULKAN_HPP_NAMESPACE::AttachmentReference2 * pDepthStencilAttachment_ ) VULKAN_HPP_NOEXCEPT
@@ -58195,7 +60699,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
-#if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
+# if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
SubpassDescription2 & setPreserveAttachments(
VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const uint32_t> const & preserveAttachments_ ) VULKAN_HPP_NOEXCEPT
{
@@ -58203,7 +60707,8 @@ namespace VULKAN_HPP_NAMESPACE
pPreserveAttachments = preserveAttachments_.data();
return *this;
}
-#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
+# endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
+#endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
operator VkSubpassDescription2 const &() const VULKAN_HPP_NOEXCEPT
{
@@ -58302,6 +60807,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
+#if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
SubpassDependency2 & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
{
pNext = pNext_;
@@ -58356,6 +60862,7 @@ namespace VULKAN_HPP_NAMESPACE
viewOffset = viewOffset_;
return *this;
}
+#endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
operator VkSubpassDependency2 const &() const VULKAN_HPP_NOEXCEPT
{
@@ -58472,6 +60979,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
+#if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
RenderPassCreateInfo2 & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
{
pNext = pNext_;
@@ -58497,7 +61005,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
-#if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
+# if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
RenderPassCreateInfo2 & setAttachments(
VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::AttachmentDescription2> const &
attachments_ ) VULKAN_HPP_NOEXCEPT
@@ -58506,7 +61014,7 @@ namespace VULKAN_HPP_NAMESPACE
pAttachments = attachments_.data();
return *this;
}
-#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
+# endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
RenderPassCreateInfo2 & setSubpassCount( uint32_t subpassCount_ ) VULKAN_HPP_NOEXCEPT
{
@@ -58521,7 +61029,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
-#if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
+# if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
RenderPassCreateInfo2 & setSubpasses(
VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::SubpassDescription2> const &
subpasses_ ) VULKAN_HPP_NOEXCEPT
@@ -58530,7 +61038,7 @@ namespace VULKAN_HPP_NAMESPACE
pSubpasses = subpasses_.data();
return *this;
}
-#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
+# endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
RenderPassCreateInfo2 & setDependencyCount( uint32_t dependencyCount_ ) VULKAN_HPP_NOEXCEPT
{
@@ -58545,7 +61053,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
-#if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
+# if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
RenderPassCreateInfo2 & setDependencies(
VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::SubpassDependency2> const &
dependencies_ ) VULKAN_HPP_NOEXCEPT
@@ -58554,7 +61062,7 @@ namespace VULKAN_HPP_NAMESPACE
pDependencies = dependencies_.data();
return *this;
}
-#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
+# endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
RenderPassCreateInfo2 & setCorrelatedViewMaskCount( uint32_t correlatedViewMaskCount_ ) VULKAN_HPP_NOEXCEPT
{
@@ -58568,7 +61076,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
-#if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
+# if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
RenderPassCreateInfo2 & setCorrelatedViewMasks(
VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const uint32_t> const & correlatedViewMasks_ ) VULKAN_HPP_NOEXCEPT
{
@@ -58576,7 +61084,8 @@ namespace VULKAN_HPP_NAMESPACE
pCorrelatedViewMasks = correlatedViewMasks_.data();
return *this;
}
-#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
+# endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
+#endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
operator VkRenderPassCreateInfo2 const &() const VULKAN_HPP_NOEXCEPT
{
@@ -58663,6 +61172,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
+#if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
RenderPassFragmentDensityMapCreateInfoEXT & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
{
pNext = pNext_;
@@ -58675,6 +61185,7 @@ namespace VULKAN_HPP_NAMESPACE
fragmentDensityMapAttachment = fragmentDensityMapAttachment_;
return *this;
}
+#endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
operator VkRenderPassFragmentDensityMapCreateInfoEXT const &() const VULKAN_HPP_NOEXCEPT
{
@@ -58761,6 +61272,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
+#if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
RenderPassInputAttachmentAspectCreateInfo & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
{
pNext = pNext_;
@@ -58781,7 +61293,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
-#if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
+# if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
RenderPassInputAttachmentAspectCreateInfo & setAspectReferences(
VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::InputAttachmentAspectReference> const &
aspectReferences_ ) VULKAN_HPP_NOEXCEPT
@@ -58790,7 +61302,8 @@ namespace VULKAN_HPP_NAMESPACE
pAspectReferences = aspectReferences_.data();
return *this;
}
-#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
+# endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
+#endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
operator VkRenderPassInputAttachmentAspectCreateInfo const &() const VULKAN_HPP_NOEXCEPT
{
@@ -58887,6 +61400,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
+#if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
RenderPassMultiviewCreateInfo & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
{
pNext = pNext_;
@@ -58905,7 +61419,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
-#if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
+# if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
RenderPassMultiviewCreateInfo & setViewMasks(
VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const uint32_t> const & viewMasks_ ) VULKAN_HPP_NOEXCEPT
{
@@ -58913,7 +61427,7 @@ namespace VULKAN_HPP_NAMESPACE
pViewMasks = viewMasks_.data();
return *this;
}
-#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
+# endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
RenderPassMultiviewCreateInfo & setDependencyCount( uint32_t dependencyCount_ ) VULKAN_HPP_NOEXCEPT
{
@@ -58927,7 +61441,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
-#if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
+# if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
RenderPassMultiviewCreateInfo & setViewOffsets(
VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const int32_t> const & viewOffsets_ ) VULKAN_HPP_NOEXCEPT
{
@@ -58935,7 +61449,7 @@ namespace VULKAN_HPP_NAMESPACE
pViewOffsets = viewOffsets_.data();
return *this;
}
-#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
+# endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
RenderPassMultiviewCreateInfo & setCorrelationMaskCount( uint32_t correlationMaskCount_ ) VULKAN_HPP_NOEXCEPT
{
@@ -58949,7 +61463,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
-#if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
+# if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
RenderPassMultiviewCreateInfo & setCorrelationMasks(
VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const uint32_t> const & correlationMasks_ ) VULKAN_HPP_NOEXCEPT
{
@@ -58957,7 +61471,8 @@ namespace VULKAN_HPP_NAMESPACE
pCorrelationMasks = correlationMasks_.data();
return *this;
}
-#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
+# endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
+#endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
operator VkRenderPassMultiviewCreateInfo const &() const VULKAN_HPP_NOEXCEPT
{
@@ -59035,6 +61550,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
+#if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
SubpassSampleLocationsEXT & setSubpassIndex( uint32_t subpassIndex_ ) VULKAN_HPP_NOEXCEPT
{
subpassIndex = subpassIndex_;
@@ -59047,6 +61563,7 @@ namespace VULKAN_HPP_NAMESPACE
sampleLocationsInfo = sampleLocationsInfo_;
return *this;
}
+#endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
operator VkSubpassSampleLocationsEXT const &() const VULKAN_HPP_NOEXCEPT
{
@@ -59131,6 +61648,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
+#if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
RenderPassSampleLocationsBeginInfoEXT & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
{
pNext = pNext_;
@@ -59152,7 +61670,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
-#if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
+# if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
RenderPassSampleLocationsBeginInfoEXT & setAttachmentInitialSampleLocations(
VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::AttachmentSampleLocationsEXT> const &
attachmentInitialSampleLocations_ ) VULKAN_HPP_NOEXCEPT
@@ -59161,7 +61679,7 @@ namespace VULKAN_HPP_NAMESPACE
pAttachmentInitialSampleLocations = attachmentInitialSampleLocations_.data();
return *this;
}
-#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
+# endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
RenderPassSampleLocationsBeginInfoEXT &
setPostSubpassSampleLocationsCount( uint32_t postSubpassSampleLocationsCount_ ) VULKAN_HPP_NOEXCEPT
@@ -59177,7 +61695,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
-#if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
+# if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
RenderPassSampleLocationsBeginInfoEXT & setPostSubpassSampleLocations(
VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::SubpassSampleLocationsEXT> const &
postSubpassSampleLocations_ ) VULKAN_HPP_NOEXCEPT
@@ -59186,7 +61704,8 @@ namespace VULKAN_HPP_NAMESPACE
pPostSubpassSampleLocations = postSubpassSampleLocations_.data();
return *this;
}
-#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
+# endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
+#endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
operator VkRenderPassSampleLocationsBeginInfoEXT const &() const VULKAN_HPP_NOEXCEPT
{
@@ -59263,6 +61782,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
+#if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
RenderPassTransformBeginInfoQCOM & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
{
pNext = pNext_;
@@ -59275,6 +61795,7 @@ namespace VULKAN_HPP_NAMESPACE
transform = transform_;
return *this;
}
+#endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
operator VkRenderPassTransformBeginInfoQCOM const &() const VULKAN_HPP_NOEXCEPT
{
@@ -59370,6 +61891,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
+#if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
ResolveImageInfo2KHR & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
{
pNext = pNext_;
@@ -59412,7 +61934,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
-#if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
+# if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
ResolveImageInfo2KHR & setRegions(
VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::ImageResolve2KHR> const & regions_ )
VULKAN_HPP_NOEXCEPT
@@ -59421,7 +61943,8 @@ namespace VULKAN_HPP_NAMESPACE
pRegions = regions_.data();
return *this;
}
-#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
+# endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
+#endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
operator VkResolveImageInfo2KHR const &() const VULKAN_HPP_NOEXCEPT
{
@@ -59527,6 +62050,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
+#if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
SamplerCreateInfo & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
{
pNext = pNext_;
@@ -59629,6 +62153,7 @@ namespace VULKAN_HPP_NAMESPACE
unnormalizedCoordinates = unnormalizedCoordinates_;
return *this;
}
+#endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
operator VkSamplerCreateInfo const &() const VULKAN_HPP_NOEXCEPT
{
@@ -59724,6 +62249,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
+#if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
SamplerCustomBorderColorCreateInfoEXT & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
{
pNext = pNext_;
@@ -59742,6 +62268,7 @@ namespace VULKAN_HPP_NAMESPACE
format = format_;
return *this;
}
+#endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
operator VkSamplerCustomBorderColorCreateInfoEXT const &() const VULKAN_HPP_NOEXCEPT
{
@@ -59799,6 +62326,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
+#if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
SamplerReductionModeCreateInfo & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
{
pNext = pNext_;
@@ -59811,6 +62339,7 @@ namespace VULKAN_HPP_NAMESPACE
reductionMode = reductionMode_;
return *this;
}
+#endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
operator VkSamplerReductionModeCreateInfo const &() const VULKAN_HPP_NOEXCEPT
{
@@ -59897,6 +62426,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
+#if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
SamplerYcbcrConversionCreateInfo & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
{
pNext = pNext_;
@@ -59956,6 +62486,7 @@ namespace VULKAN_HPP_NAMESPACE
forceExplicitReconstruction = forceExplicitReconstruction_;
return *this;
}
+#endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
operator VkSamplerYcbcrConversionCreateInfo const &() const VULKAN_HPP_NOEXCEPT
{
@@ -60112,6 +62643,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
+#if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
SamplerYcbcrConversionInfo & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
{
pNext = pNext_;
@@ -60124,6 +62656,7 @@ namespace VULKAN_HPP_NAMESPACE
conversion = conversion_;
return *this;
}
+#endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
operator VkSamplerYcbcrConversionInfo const &() const VULKAN_HPP_NOEXCEPT
{
@@ -60198,6 +62731,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
+# if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
ScreenSurfaceCreateInfoQNX & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
{
pNext = pNext_;
@@ -60222,6 +62756,7 @@ namespace VULKAN_HPP_NAMESPACE
window = window_;
return *this;
}
+# endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
operator VkScreenSurfaceCreateInfoQNX const &() const VULKAN_HPP_NOEXCEPT
{
@@ -60294,6 +62829,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
+#if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
SemaphoreCreateInfo & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
{
pNext = pNext_;
@@ -60305,6 +62841,7 @@ namespace VULKAN_HPP_NAMESPACE
flags = flags_;
return *this;
}
+#endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
operator VkSemaphoreCreateInfo const &() const VULKAN_HPP_NOEXCEPT
{
@@ -60375,6 +62912,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
+#if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
SemaphoreGetFdInfoKHR & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
{
pNext = pNext_;
@@ -60393,6 +62931,7 @@ namespace VULKAN_HPP_NAMESPACE
handleType = handleType_;
return *this;
}
+#endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
operator VkSemaphoreGetFdInfoKHR const &() const VULKAN_HPP_NOEXCEPT
{
@@ -60468,6 +63007,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
+# if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
SemaphoreGetWin32HandleInfoKHR & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
{
pNext = pNext_;
@@ -60486,6 +63026,7 @@ namespace VULKAN_HPP_NAMESPACE
handleType = handleType_;
return *this;
}
+# endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
operator VkSemaphoreGetWin32HandleInfoKHR const &() const VULKAN_HPP_NOEXCEPT
{
@@ -60565,6 +63106,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
+# if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
SemaphoreGetZirconHandleInfoFUCHSIA & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
{
pNext = pNext_;
@@ -60583,6 +63125,7 @@ namespace VULKAN_HPP_NAMESPACE
handleType = handleType_;
return *this;
}
+# endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
operator VkSemaphoreGetZirconHandleInfoFUCHSIA const &() const VULKAN_HPP_NOEXCEPT
{
@@ -60656,6 +63199,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
+#if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
SemaphoreSignalInfo & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
{
pNext = pNext_;
@@ -60673,6 +63217,7 @@ namespace VULKAN_HPP_NAMESPACE
value = value_;
return *this;
}
+#endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
operator VkSemaphoreSignalInfo const &() const VULKAN_HPP_NOEXCEPT
{
@@ -60748,6 +63293,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
+#if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
SemaphoreSubmitInfoKHR & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
{
pNext = pNext_;
@@ -60777,6 +63323,7 @@ namespace VULKAN_HPP_NAMESPACE
deviceIndex = deviceIndex_;
return *this;
}
+#endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
operator VkSemaphoreSubmitInfoKHR const &() const VULKAN_HPP_NOEXCEPT
{
@@ -60850,6 +63397,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
+#if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
SemaphoreTypeCreateInfo & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
{
pNext = pNext_;
@@ -60867,6 +63415,7 @@ namespace VULKAN_HPP_NAMESPACE
initialValue = initialValue_;
return *this;
}
+#endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
operator VkSemaphoreTypeCreateInfo const &() const VULKAN_HPP_NOEXCEPT
{
@@ -60964,6 +63513,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
+#if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
SemaphoreWaitInfo & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
{
pNext = pNext_;
@@ -60988,7 +63538,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
-#if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
+# if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
SemaphoreWaitInfo & setSemaphores(
VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::Semaphore> const & semaphores_ )
VULKAN_HPP_NOEXCEPT
@@ -60997,7 +63547,7 @@ namespace VULKAN_HPP_NAMESPACE
pSemaphores = semaphores_.data();
return *this;
}
-#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
+# endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
SemaphoreWaitInfo & setPValues( const uint64_t * pValues_ ) VULKAN_HPP_NOEXCEPT
{
@@ -61005,7 +63555,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
-#if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
+# if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
SemaphoreWaitInfo &
setValues( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const uint64_t> const & values_ ) VULKAN_HPP_NOEXCEPT
{
@@ -61013,7 +63563,8 @@ namespace VULKAN_HPP_NAMESPACE
pValues = values_.data();
return *this;
}
-#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
+# endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
+#endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
operator VkSemaphoreWaitInfo const &() const VULKAN_HPP_NOEXCEPT
{
@@ -61082,11 +63633,13 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
+#if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
SetStateFlagsIndirectCommandNV & setData( uint32_t data_ ) VULKAN_HPP_NOEXCEPT
{
data = data_;
return *this;
}
+#endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
operator VkSetStateFlagsIndirectCommandNV const &() const VULKAN_HPP_NOEXCEPT
{
@@ -61157,6 +63710,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
+#if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
ShaderModuleCreateInfo & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
{
pNext = pNext_;
@@ -61181,7 +63735,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
-#if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
+# if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
ShaderModuleCreateInfo &
setCode( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const uint32_t> const & code_ ) VULKAN_HPP_NOEXCEPT
{
@@ -61189,7 +63743,8 @@ namespace VULKAN_HPP_NAMESPACE
pCode = code_.data();
return *this;
}
-#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
+# endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
+#endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
operator VkShaderModuleCreateInfo const &() const VULKAN_HPP_NOEXCEPT
{
@@ -61265,6 +63820,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
+#if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
ShaderModuleValidationCacheCreateInfoEXT & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
{
pNext = pNext_;
@@ -61277,6 +63833,7 @@ namespace VULKAN_HPP_NAMESPACE
validationCache = validationCache_;
return *this;
}
+#endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
operator VkShaderModuleValidationCacheCreateInfoEXT const &() const VULKAN_HPP_NOEXCEPT
{
@@ -61841,6 +64398,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
+# if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
StreamDescriptorSurfaceCreateInfoGGP & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
{
pNext = pNext_;
@@ -61860,6 +64418,7 @@ namespace VULKAN_HPP_NAMESPACE
streamDescriptor = streamDescriptor_;
return *this;
}
+# endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
operator VkStreamDescriptorSurfaceCreateInfoGGP const &() const VULKAN_HPP_NOEXCEPT
{
@@ -61933,6 +64492,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
+#if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
StridedDeviceAddressRegionKHR &
setDeviceAddress( VULKAN_HPP_NAMESPACE::DeviceAddress deviceAddress_ ) VULKAN_HPP_NOEXCEPT
{
@@ -61951,6 +64511,7 @@ namespace VULKAN_HPP_NAMESPACE
size = size_;
return *this;
}
+#endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
operator VkStridedDeviceAddressRegionKHR const &() const VULKAN_HPP_NOEXCEPT
{
@@ -62053,6 +64614,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
+#if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
SubmitInfo & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
{
pNext = pNext_;
@@ -62071,7 +64633,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
-#if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
+# if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
SubmitInfo & setWaitSemaphores(
VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::Semaphore> const & waitSemaphores_ )
VULKAN_HPP_NOEXCEPT
@@ -62080,7 +64642,7 @@ namespace VULKAN_HPP_NAMESPACE
pWaitSemaphores = waitSemaphores_.data();
return *this;
}
-#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
+# endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
SubmitInfo &
setPWaitDstStageMask( const VULKAN_HPP_NAMESPACE::PipelineStageFlags * pWaitDstStageMask_ ) VULKAN_HPP_NOEXCEPT
@@ -62089,7 +64651,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
-#if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
+# if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
SubmitInfo & setWaitDstStageMask(
VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::PipelineStageFlags> const &
waitDstStageMask_ ) VULKAN_HPP_NOEXCEPT
@@ -62098,7 +64660,7 @@ namespace VULKAN_HPP_NAMESPACE
pWaitDstStageMask = waitDstStageMask_.data();
return *this;
}
-#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
+# endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
SubmitInfo & setCommandBufferCount( uint32_t commandBufferCount_ ) VULKAN_HPP_NOEXCEPT
{
@@ -62112,7 +64674,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
-#if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
+# if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
SubmitInfo & setCommandBuffers(
VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::CommandBuffer> const & commandBuffers_ )
VULKAN_HPP_NOEXCEPT
@@ -62121,7 +64683,7 @@ namespace VULKAN_HPP_NAMESPACE
pCommandBuffers = commandBuffers_.data();
return *this;
}
-#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
+# endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
SubmitInfo & setSignalSemaphoreCount( uint32_t signalSemaphoreCount_ ) VULKAN_HPP_NOEXCEPT
{
@@ -62135,7 +64697,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
-#if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
+# if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
SubmitInfo & setSignalSemaphores(
VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::Semaphore> const & signalSemaphores_ )
VULKAN_HPP_NOEXCEPT
@@ -62144,7 +64706,8 @@ namespace VULKAN_HPP_NAMESPACE
pSignalSemaphores = signalSemaphores_.data();
return *this;
}
-#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
+# endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
+#endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
operator VkSubmitInfo const &() const VULKAN_HPP_NOEXCEPT
{
@@ -62250,6 +64813,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
+#if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
SubmitInfo2KHR & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
{
pNext = pNext_;
@@ -62275,7 +64839,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
-#if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
+# if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
SubmitInfo2KHR & setWaitSemaphoreInfos(
VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::SemaphoreSubmitInfoKHR> const &
waitSemaphoreInfos_ ) VULKAN_HPP_NOEXCEPT
@@ -62284,7 +64848,7 @@ namespace VULKAN_HPP_NAMESPACE
pWaitSemaphoreInfos = waitSemaphoreInfos_.data();
return *this;
}
-#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
+# endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
SubmitInfo2KHR & setCommandBufferInfoCount( uint32_t commandBufferInfoCount_ ) VULKAN_HPP_NOEXCEPT
{
@@ -62299,7 +64863,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
-#if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
+# if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
SubmitInfo2KHR & setCommandBufferInfos(
VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::CommandBufferSubmitInfoKHR> const &
commandBufferInfos_ ) VULKAN_HPP_NOEXCEPT
@@ -62308,7 +64872,7 @@ namespace VULKAN_HPP_NAMESPACE
pCommandBufferInfos = commandBufferInfos_.data();
return *this;
}
-#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
+# endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
SubmitInfo2KHR & setSignalSemaphoreInfoCount( uint32_t signalSemaphoreInfoCount_ ) VULKAN_HPP_NOEXCEPT
{
@@ -62323,7 +64887,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
-#if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
+# if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
SubmitInfo2KHR & setSignalSemaphoreInfos(
VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::SemaphoreSubmitInfoKHR> const &
signalSemaphoreInfos_ ) VULKAN_HPP_NOEXCEPT
@@ -62332,7 +64896,8 @@ namespace VULKAN_HPP_NAMESPACE
pSignalSemaphoreInfos = signalSemaphoreInfos_.data();
return *this;
}
-#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
+# endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
+#endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
operator VkSubmitInfo2KHR const &() const VULKAN_HPP_NOEXCEPT
{
@@ -62410,6 +64975,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
+#if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
SubpassBeginInfo & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
{
pNext = pNext_;
@@ -62421,6 +64987,7 @@ namespace VULKAN_HPP_NAMESPACE
contents = contents_;
return *this;
}
+#endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
operator VkSubpassBeginInfo const &() const VULKAN_HPP_NOEXCEPT
{
@@ -62497,6 +65064,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
+#if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
SubpassDescriptionDepthStencilResolve & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
{
pNext = pNext_;
@@ -62523,6 +65091,7 @@ namespace VULKAN_HPP_NAMESPACE
pDepthStencilResolveAttachment = pDepthStencilResolveAttachment_;
return *this;
}
+#endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
operator VkSubpassDescriptionDepthStencilResolve const &() const VULKAN_HPP_NOEXCEPT
{
@@ -62592,11 +65161,13 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
+#if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
SubpassEndInfo & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
{
pNext = pNext_;
return *this;
}
+#endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
operator VkSubpassEndInfo const &() const VULKAN_HPP_NOEXCEPT
{
@@ -62640,7 +65211,7 @@ namespace VULKAN_HPP_NAMESPACE
{
static const bool allowDuplicate = false;
static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType =
- StructureType::eSubpasssShadingPipelineCreateInfoHUAWEI;
+ StructureType::eSubpassShadingPipelineCreateInfoHUAWEI;
#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
VULKAN_HPP_CONSTEXPR SubpassShadingPipelineCreateInfoHUAWEI( VULKAN_HPP_NAMESPACE::RenderPass renderPass_ = {},
@@ -62694,7 +65265,7 @@ namespace VULKAN_HPP_NAMESPACE
#endif
public:
- VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eSubpasssShadingPipelineCreateInfoHUAWEI;
+ VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eSubpassShadingPipelineCreateInfoHUAWEI;
void * pNext = {};
VULKAN_HPP_NAMESPACE::RenderPass renderPass = {};
uint32_t subpass = {};
@@ -62705,7 +65276,7 @@ namespace VULKAN_HPP_NAMESPACE
"struct wrapper is not a standard layout!" );
template <>
- struct CppType<StructureType, StructureType::eSubpasssShadingPipelineCreateInfoHUAWEI>
+ struct CppType<StructureType, StructureType::eSubpassShadingPipelineCreateInfoHUAWEI>
{
using Type = SubpassShadingPipelineCreateInfoHUAWEI;
};
@@ -63003,6 +65574,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
+# if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
SurfaceCapabilitiesFullScreenExclusiveEXT & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
{
pNext = pNext_;
@@ -63015,6 +65587,7 @@ namespace VULKAN_HPP_NAMESPACE
fullScreenExclusiveSupported = fullScreenExclusiveSupported_;
return *this;
}
+# endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
operator VkSurfaceCapabilitiesFullScreenExclusiveEXT const &() const VULKAN_HPP_NOEXCEPT
{
@@ -63214,6 +65787,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
+# if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
SurfaceFullScreenExclusiveInfoEXT & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
{
pNext = pNext_;
@@ -63226,6 +65800,7 @@ namespace VULKAN_HPP_NAMESPACE
fullScreenExclusive = fullScreenExclusive_;
return *this;
}
+# endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
operator VkSurfaceFullScreenExclusiveInfoEXT const &() const VULKAN_HPP_NOEXCEPT
{
@@ -63300,6 +65875,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
+# if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
SurfaceFullScreenExclusiveWin32InfoEXT & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
{
pNext = pNext_;
@@ -63311,6 +65887,7 @@ namespace VULKAN_HPP_NAMESPACE
hmonitor = hmonitor_;
return *this;
}
+# endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
operator VkSurfaceFullScreenExclusiveWin32InfoEXT const &() const VULKAN_HPP_NOEXCEPT
{
@@ -63381,6 +65958,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
+#if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
SurfaceProtectedCapabilitiesKHR & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
{
pNext = pNext_;
@@ -63393,6 +65971,7 @@ namespace VULKAN_HPP_NAMESPACE
supportsProtected = supportsProtected_;
return *this;
}
+#endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
operator VkSurfaceProtectedCapabilitiesKHR const &() const VULKAN_HPP_NOEXCEPT
{
@@ -63462,6 +66041,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
+#if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
SwapchainCounterCreateInfoEXT & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
{
pNext = pNext_;
@@ -63474,6 +66054,7 @@ namespace VULKAN_HPP_NAMESPACE
surfaceCounters = surfaceCounters_;
return *this;
}
+#endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
operator VkSwapchainCounterCreateInfoEXT const &() const VULKAN_HPP_NOEXCEPT
{
@@ -63612,6 +66193,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
+#if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
SwapchainCreateInfoKHR & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
{
pNext = pNext_;
@@ -63686,7 +66268,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
-#if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
+# if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
SwapchainCreateInfoKHR & setQueueFamilyIndices(
VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const uint32_t> const & queueFamilyIndices_ ) VULKAN_HPP_NOEXCEPT
{
@@ -63694,7 +66276,7 @@ namespace VULKAN_HPP_NAMESPACE
pQueueFamilyIndices = queueFamilyIndices_.data();
return *this;
}
-#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
+# endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
SwapchainCreateInfoKHR &
setPreTransform( VULKAN_HPP_NAMESPACE::SurfaceTransformFlagBitsKHR preTransform_ ) VULKAN_HPP_NOEXCEPT
@@ -63727,6 +66309,7 @@ namespace VULKAN_HPP_NAMESPACE
oldSwapchain = oldSwapchain_;
return *this;
}
+#endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
operator VkSwapchainCreateInfoKHR const &() const VULKAN_HPP_NOEXCEPT
{
@@ -63821,6 +66404,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
+#if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
SwapchainDisplayNativeHdrCreateInfoAMD & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
{
pNext = pNext_;
@@ -63833,6 +66417,7 @@ namespace VULKAN_HPP_NAMESPACE
localDimmingEnable = localDimmingEnable_;
return *this;
}
+#endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
operator VkSwapchainDisplayNativeHdrCreateInfoAMD const &() const VULKAN_HPP_NOEXCEPT
{
@@ -63990,6 +66575,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
+#if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
TimelineSemaphoreSubmitInfo & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
{
pNext = pNext_;
@@ -64008,7 +66594,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
-#if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
+# if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
TimelineSemaphoreSubmitInfo & setWaitSemaphoreValues(
VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const uint64_t> const & waitSemaphoreValues_ ) VULKAN_HPP_NOEXCEPT
{
@@ -64016,7 +66602,7 @@ namespace VULKAN_HPP_NAMESPACE
pWaitSemaphoreValues = waitSemaphoreValues_.data();
return *this;
}
-#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
+# endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
TimelineSemaphoreSubmitInfo &
setSignalSemaphoreValueCount( uint32_t signalSemaphoreValueCount_ ) VULKAN_HPP_NOEXCEPT
@@ -64032,7 +66618,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
-#if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
+# if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
TimelineSemaphoreSubmitInfo & setSignalSemaphoreValues(
VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const uint64_t> const & signalSemaphoreValues_ ) VULKAN_HPP_NOEXCEPT
{
@@ -64040,7 +66626,8 @@ namespace VULKAN_HPP_NAMESPACE
pSignalSemaphoreValues = signalSemaphoreValues_.data();
return *this;
}
-#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
+# endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
+#endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
operator VkTimelineSemaphoreSubmitInfo const &() const VULKAN_HPP_NOEXCEPT
{
@@ -64122,6 +66709,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
+#if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
TraceRaysIndirectCommandKHR & setWidth( uint32_t width_ ) VULKAN_HPP_NOEXCEPT
{
width = width_;
@@ -64139,6 +66727,7 @@ namespace VULKAN_HPP_NAMESPACE
depth = depth_;
return *this;
}
+#endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
operator VkTraceRaysIndirectCommandKHR const &() const VULKAN_HPP_NOEXCEPT
{
@@ -64213,6 +66802,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
+#if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
ValidationCacheCreateInfoEXT & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
{
pNext = pNext_;
@@ -64238,7 +66828,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
-#if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
+# if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
template <typename T>
ValidationCacheCreateInfoEXT &
setInitialData( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const T> const & initialData_ ) VULKAN_HPP_NOEXCEPT
@@ -64247,7 +66837,8 @@ namespace VULKAN_HPP_NAMESPACE
pInitialData = initialData_.data();
return *this;
}
-#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
+# endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
+#endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
operator VkValidationCacheCreateInfoEXT const &() const VULKAN_HPP_NOEXCEPT
{
@@ -64338,6 +66929,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
+#if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
ValidationFeaturesEXT & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
{
pNext = pNext_;
@@ -64358,7 +66950,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
-#if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
+# if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
ValidationFeaturesEXT & setEnabledValidationFeatures(
VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::ValidationFeatureEnableEXT> const &
enabledValidationFeatures_ ) VULKAN_HPP_NOEXCEPT
@@ -64367,7 +66959,7 @@ namespace VULKAN_HPP_NAMESPACE
pEnabledValidationFeatures = enabledValidationFeatures_.data();
return *this;
}
-#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
+# endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
ValidationFeaturesEXT &
setDisabledValidationFeatureCount( uint32_t disabledValidationFeatureCount_ ) VULKAN_HPP_NOEXCEPT
@@ -64383,7 +66975,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
-#if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
+# if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
ValidationFeaturesEXT & setDisabledValidationFeatures(
VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::ValidationFeatureDisableEXT> const &
disabledValidationFeatures_ ) VULKAN_HPP_NOEXCEPT
@@ -64392,7 +66984,8 @@ namespace VULKAN_HPP_NAMESPACE
pDisabledValidationFeatures = disabledValidationFeatures_.data();
return *this;
}
-#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
+# endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
+#endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
operator VkValidationFeaturesEXT const &() const VULKAN_HPP_NOEXCEPT
{
@@ -64478,6 +67071,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
+#if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
ValidationFlagsEXT & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
{
pNext = pNext_;
@@ -64497,7 +67091,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
-#if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
+# if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
ValidationFlagsEXT & setDisabledValidationChecks(
VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::ValidationCheckEXT> const &
disabledValidationChecks_ ) VULKAN_HPP_NOEXCEPT
@@ -64506,7 +67100,8 @@ namespace VULKAN_HPP_NAMESPACE
pDisabledValidationChecks = disabledValidationChecks_.data();
return *this;
}
-#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
+# endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
+#endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
operator VkValidationFlagsEXT const &() const VULKAN_HPP_NOEXCEPT
{
@@ -64586,6 +67181,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
+#if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
VertexInputAttributeDescription2EXT & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
{
pNext = pNext_;
@@ -64615,6 +67211,7 @@ namespace VULKAN_HPP_NAMESPACE
offset = offset_;
return *this;
}
+#endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
operator VkVertexInputAttributeDescription2EXT const &() const VULKAN_HPP_NOEXCEPT
{
@@ -64695,6 +67292,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
+#if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
VertexInputBindingDescription2EXT & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
{
pNext = pNext_;
@@ -64725,6 +67323,7 @@ namespace VULKAN_HPP_NAMESPACE
divisor = divisor_;
return *this;
}
+#endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
operator VkVertexInputBindingDescription2EXT const &() const VULKAN_HPP_NOEXCEPT
{
@@ -64799,6 +67398,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
+# if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
ViSurfaceCreateInfoNN & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
{
pNext = pNext_;
@@ -64816,6 +67416,7 @@ namespace VULKAN_HPP_NAMESPACE
window = window_;
return *this;
}
+# endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
operator VkViSurfaceCreateInfoNN const &() const VULKAN_HPP_NOEXCEPT
{
@@ -64892,6 +67493,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
+# if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
VideoPictureResourceKHR & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
{
pNext = pNext_;
@@ -64922,6 +67524,7 @@ namespace VULKAN_HPP_NAMESPACE
imageViewBinding = imageViewBinding_;
return *this;
}
+# endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
operator VkVideoPictureResourceKHR const &() const VULKAN_HPP_NOEXCEPT
{
@@ -64998,6 +67601,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
+# if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
VideoReferenceSlotKHR & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
{
pNext = pNext_;
@@ -65016,6 +67620,7 @@ namespace VULKAN_HPP_NAMESPACE
pPictureResource = pPictureResource_;
return *this;
}
+# endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
operator VkVideoReferenceSlotKHR const &() const VULKAN_HPP_NOEXCEPT
{
@@ -65114,6 +67719,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
+# if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
VideoBeginCodingInfoKHR & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
{
pNext = pNext_;
@@ -65159,7 +67765,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
-# if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
+# if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
VideoBeginCodingInfoKHR & setReferenceSlots(
VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::VideoReferenceSlotKHR> const &
referenceSlots_ ) VULKAN_HPP_NOEXCEPT
@@ -65168,7 +67774,8 @@ namespace VULKAN_HPP_NAMESPACE
pReferenceSlots = referenceSlots_.data();
return *this;
}
-# endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
+# endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
+# endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
operator VkVideoBeginCodingInfoKHR const &() const VULKAN_HPP_NOEXCEPT
{
@@ -65251,6 +67858,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
+# if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
VideoBindMemoryKHR & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
{
pNext = pNext_;
@@ -65280,6 +67888,7 @@ namespace VULKAN_HPP_NAMESPACE
memorySize = memorySize_;
return *this;
}
+# endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
operator VkVideoBindMemoryKHR const &() const VULKAN_HPP_NOEXCEPT
{
@@ -65332,7 +67941,7 @@ namespace VULKAN_HPP_NAMESPACE
static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eVideoCapabilitiesKHR;
# if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
- VULKAN_HPP_CONSTEXPR VideoCapabilitiesKHR( VULKAN_HPP_NAMESPACE::VideoCapabilitiesFlagsKHR capabilityFlags_ = {},
+ VULKAN_HPP_CONSTEXPR VideoCapabilitiesKHR( VULKAN_HPP_NAMESPACE::VideoCapabilityFlagsKHR capabilityFlags_ = {},
VULKAN_HPP_NAMESPACE::DeviceSize minBitstreamBufferOffsetAlignment_ = {},
VULKAN_HPP_NAMESPACE::DeviceSize minBitstreamBufferSizeAlignment_ = {},
VULKAN_HPP_NAMESPACE::Extent2D videoPictureExtentGranularity_ = {},
@@ -65397,16 +68006,16 @@ namespace VULKAN_HPP_NAMESPACE
# endif
public:
- VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eVideoCapabilitiesKHR;
- void * pNext = {};
- VULKAN_HPP_NAMESPACE::VideoCapabilitiesFlagsKHR capabilityFlags = {};
- VULKAN_HPP_NAMESPACE::DeviceSize minBitstreamBufferOffsetAlignment = {};
- VULKAN_HPP_NAMESPACE::DeviceSize minBitstreamBufferSizeAlignment = {};
- VULKAN_HPP_NAMESPACE::Extent2D videoPictureExtentGranularity = {};
- VULKAN_HPP_NAMESPACE::Extent2D minExtent = {};
- VULKAN_HPP_NAMESPACE::Extent2D maxExtent = {};
- uint32_t maxReferencePicturesSlotsCount = {};
- uint32_t maxReferencePicturesActiveCount = {};
+ VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eVideoCapabilitiesKHR;
+ void * pNext = {};
+ VULKAN_HPP_NAMESPACE::VideoCapabilityFlagsKHR capabilityFlags = {};
+ VULKAN_HPP_NAMESPACE::DeviceSize minBitstreamBufferOffsetAlignment = {};
+ VULKAN_HPP_NAMESPACE::DeviceSize minBitstreamBufferSizeAlignment = {};
+ VULKAN_HPP_NAMESPACE::Extent2D videoPictureExtentGranularity = {};
+ VULKAN_HPP_NAMESPACE::Extent2D minExtent = {};
+ VULKAN_HPP_NAMESPACE::Extent2D maxExtent = {};
+ uint32_t maxReferencePicturesSlotsCount = {};
+ uint32_t maxReferencePicturesActiveCount = {};
};
static_assert( sizeof( VideoCapabilitiesKHR ) == sizeof( VkVideoCapabilitiesKHR ),
"struct and wrapper have different size!" );
@@ -65448,6 +68057,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
+# if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
VideoCodingControlInfoKHR & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
{
pNext = pNext_;
@@ -65459,6 +68069,7 @@ namespace VULKAN_HPP_NAMESPACE
flags = flags_;
return *this;
}
+# endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
operator VkVideoCodingControlInfoKHR const &() const VULKAN_HPP_NOEXCEPT
{
@@ -65608,6 +68219,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
+# if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
VideoDecodeH264DpbSlotInfoEXT & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
{
pNext = pNext_;
@@ -65620,6 +68232,7 @@ namespace VULKAN_HPP_NAMESPACE
pStdReferenceInfo = pStdReferenceInfo_;
return *this;
}
+# endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
operator VkVideoDecodeH264DpbSlotInfoEXT const &() const VULKAN_HPP_NOEXCEPT
{
@@ -65689,6 +68302,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
+# if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
VideoDecodeH264MvcEXT & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
{
pNext = pNext_;
@@ -65700,6 +68314,7 @@ namespace VULKAN_HPP_NAMESPACE
pStdMvc = pStdMvc_;
return *this;
}
+# endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
operator VkVideoDecodeH264MvcEXT const &() const VULKAN_HPP_NOEXCEPT
{
@@ -65783,6 +68398,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
+# if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
VideoDecodeH264PictureInfoEXT & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
{
pNext = pNext_;
@@ -65808,7 +68424,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
-# if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
+# if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
VideoDecodeH264PictureInfoEXT & setSlicesDataOffsets(
VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const uint32_t> const & slicesDataOffsets_ ) VULKAN_HPP_NOEXCEPT
{
@@ -65816,7 +68432,8 @@ namespace VULKAN_HPP_NAMESPACE
pSlicesDataOffsets = slicesDataOffsets_.data();
return *this;
}
-# endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
+# endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
+# endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
operator VkVideoDecodeH264PictureInfoEXT const &() const VULKAN_HPP_NOEXCEPT
{
@@ -65870,10 +68487,10 @@ namespace VULKAN_HPP_NAMESPACE
# if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
VULKAN_HPP_CONSTEXPR VideoDecodeH264ProfileEXT(
- StdVideoH264ProfileIdc stdProfileIdc_ = {},
- VULKAN_HPP_NAMESPACE::VideoDecodeH264FieldLayoutFlagsEXT fieldLayout_ = {} ) VULKAN_HPP_NOEXCEPT
+ StdVideoH264ProfileIdc stdProfileIdc_ = {},
+ VULKAN_HPP_NAMESPACE::VideoDecodeH264PictureLayoutFlagsEXT pictureLayout_ = {} ) VULKAN_HPP_NOEXCEPT
: stdProfileIdc( stdProfileIdc_ )
- , fieldLayout( fieldLayout_ )
+ , pictureLayout( pictureLayout_ )
{}
VULKAN_HPP_CONSTEXPR
@@ -65893,6 +68510,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
+# if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
VideoDecodeH264ProfileEXT & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
{
pNext = pNext_;
@@ -65906,11 +68524,12 @@ namespace VULKAN_HPP_NAMESPACE
}
VideoDecodeH264ProfileEXT &
- setFieldLayout( VULKAN_HPP_NAMESPACE::VideoDecodeH264FieldLayoutFlagsEXT fieldLayout_ ) VULKAN_HPP_NOEXCEPT
+ setPictureLayout( VULKAN_HPP_NAMESPACE::VideoDecodeH264PictureLayoutFlagsEXT pictureLayout_ ) VULKAN_HPP_NOEXCEPT
{
- fieldLayout = fieldLayout_;
+ pictureLayout = pictureLayout_;
return *this;
}
+# endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
operator VkVideoDecodeH264ProfileEXT const &() const VULKAN_HPP_NOEXCEPT
{
@@ -65929,7 +68548,7 @@ namespace VULKAN_HPP_NAMESPACE
{
return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) &&
( memcmp( &stdProfileIdc, &rhs.stdProfileIdc, sizeof( StdVideoH264ProfileIdc ) ) == 0 ) &&
- ( fieldLayout == rhs.fieldLayout );
+ ( pictureLayout == rhs.pictureLayout );
}
bool operator!=( VideoDecodeH264ProfileEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
@@ -65939,10 +68558,10 @@ namespace VULKAN_HPP_NAMESPACE
# endif
public:
- VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eVideoDecodeH264ProfileEXT;
- const void * pNext = {};
- StdVideoH264ProfileIdc stdProfileIdc = {};
- VULKAN_HPP_NAMESPACE::VideoDecodeH264FieldLayoutFlagsEXT fieldLayout = {};
+ VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eVideoDecodeH264ProfileEXT;
+ const void * pNext = {};
+ StdVideoH264ProfileIdc stdProfileIdc = {};
+ VULKAN_HPP_NAMESPACE::VideoDecodeH264PictureLayoutFlagsEXT pictureLayout = {};
};
static_assert( sizeof( VideoDecodeH264ProfileEXT ) == sizeof( VkVideoDecodeH264ProfileEXT ),
"struct and wrapper have different size!" );
@@ -65989,6 +68608,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
+# if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
VideoDecodeH264SessionCreateInfoEXT & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
{
pNext = pNext_;
@@ -66008,6 +68628,7 @@ namespace VULKAN_HPP_NAMESPACE
pStdExtensionVersion = pStdExtensionVersion_;
return *this;
}
+# endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
operator VkVideoDecodeH264SessionCreateInfoEXT const &() const VULKAN_HPP_NOEXCEPT
{
@@ -66102,6 +68723,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
+# if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
VideoDecodeH264SessionParametersAddInfoEXT & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
{
pNext = pNext_;
@@ -66121,7 +68743,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
-# if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
+# if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
VideoDecodeH264SessionParametersAddInfoEXT &
setSpsStd( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const StdVideoH264SequenceParameterSet> const & spsStd_ )
VULKAN_HPP_NOEXCEPT
@@ -66130,7 +68752,7 @@ namespace VULKAN_HPP_NAMESPACE
pSpsStd = spsStd_.data();
return *this;
}
-# endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
+# endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
VideoDecodeH264SessionParametersAddInfoEXT & setPpsStdCount( uint32_t ppsStdCount_ ) VULKAN_HPP_NOEXCEPT
{
@@ -66145,7 +68767,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
-# if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
+# if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
VideoDecodeH264SessionParametersAddInfoEXT &
setPpsStd( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const StdVideoH264PictureParameterSet> const & ppsStd_ )
VULKAN_HPP_NOEXCEPT
@@ -66154,7 +68776,8 @@ namespace VULKAN_HPP_NAMESPACE
pPpsStd = ppsStd_.data();
return *this;
}
-# endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
+# endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
+# endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
operator VkVideoDecodeH264SessionParametersAddInfoEXT const &() const VULKAN_HPP_NOEXCEPT
{
@@ -66240,6 +68863,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
+# if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
VideoDecodeH264SessionParametersCreateInfoEXT & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
{
pNext = pNext_;
@@ -66264,6 +68888,7 @@ namespace VULKAN_HPP_NAMESPACE
pParametersAddInfo = pParametersAddInfo_;
return *this;
}
+# endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
operator VkVideoDecodeH264SessionParametersCreateInfoEXT const &() const VULKAN_HPP_NOEXCEPT
{
@@ -66412,6 +69037,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
+# if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
VideoDecodeH265DpbSlotInfoEXT & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
{
pNext = pNext_;
@@ -66424,6 +69050,7 @@ namespace VULKAN_HPP_NAMESPACE
pStdReferenceInfo = pStdReferenceInfo_;
return *this;
}
+# endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
operator VkVideoDecodeH265DpbSlotInfoEXT const &() const VULKAN_HPP_NOEXCEPT
{
@@ -66508,6 +69135,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
+# if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
VideoDecodeH265PictureInfoEXT & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
{
pNext = pNext_;
@@ -66533,7 +69161,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
-# if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
+# if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
VideoDecodeH265PictureInfoEXT & setSlicesDataOffsets(
VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const uint32_t> const & slicesDataOffsets_ ) VULKAN_HPP_NOEXCEPT
{
@@ -66541,7 +69169,8 @@ namespace VULKAN_HPP_NAMESPACE
pSlicesDataOffsets = slicesDataOffsets_.data();
return *this;
}
-# endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
+# endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
+# endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
operator VkVideoDecodeH265PictureInfoEXT const &() const VULKAN_HPP_NOEXCEPT
{
@@ -66615,6 +69244,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
+# if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
VideoDecodeH265ProfileEXT & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
{
pNext = pNext_;
@@ -66626,6 +69256,7 @@ namespace VULKAN_HPP_NAMESPACE
stdProfileIdc = stdProfileIdc_;
return *this;
}
+# endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
operator VkVideoDecodeH265ProfileEXT const &() const VULKAN_HPP_NOEXCEPT
{
@@ -66702,6 +69333,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
+# if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
VideoDecodeH265SessionCreateInfoEXT & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
{
pNext = pNext_;
@@ -66721,6 +69353,7 @@ namespace VULKAN_HPP_NAMESPACE
pStdExtensionVersion = pStdExtensionVersion_;
return *this;
}
+# endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
operator VkVideoDecodeH265SessionCreateInfoEXT const &() const VULKAN_HPP_NOEXCEPT
{
@@ -66815,6 +69448,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
+# if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
VideoDecodeH265SessionParametersAddInfoEXT & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
{
pNext = pNext_;
@@ -66834,7 +69468,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
-# if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
+# if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
VideoDecodeH265SessionParametersAddInfoEXT &
setSpsStd( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const StdVideoH265SequenceParameterSet> const & spsStd_ )
VULKAN_HPP_NOEXCEPT
@@ -66843,7 +69477,7 @@ namespace VULKAN_HPP_NAMESPACE
pSpsStd = spsStd_.data();
return *this;
}
-# endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
+# endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
VideoDecodeH265SessionParametersAddInfoEXT & setPpsStdCount( uint32_t ppsStdCount_ ) VULKAN_HPP_NOEXCEPT
{
@@ -66858,7 +69492,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
-# if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
+# if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
VideoDecodeH265SessionParametersAddInfoEXT &
setPpsStd( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const StdVideoH265PictureParameterSet> const & ppsStd_ )
VULKAN_HPP_NOEXCEPT
@@ -66867,7 +69501,8 @@ namespace VULKAN_HPP_NAMESPACE
pPpsStd = ppsStd_.data();
return *this;
}
-# endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
+# endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
+# endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
operator VkVideoDecodeH265SessionParametersAddInfoEXT const &() const VULKAN_HPP_NOEXCEPT
{
@@ -66953,6 +69588,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
+# if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
VideoDecodeH265SessionParametersCreateInfoEXT & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
{
pNext = pNext_;
@@ -66977,6 +69613,7 @@ namespace VULKAN_HPP_NAMESPACE
pParametersAddInfo = pParametersAddInfo_;
return *this;
}
+# endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
operator VkVideoDecodeH265SessionParametersCreateInfoEXT const &() const VULKAN_HPP_NOEXCEPT
{
@@ -67094,6 +69731,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
+# if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
VideoDecodeInfoKHR & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
{
pNext = pNext_;
@@ -67163,7 +69801,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
-# if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
+# if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
VideoDecodeInfoKHR & setReferenceSlots(
VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::VideoReferenceSlotKHR> const &
referenceSlots_ ) VULKAN_HPP_NOEXCEPT
@@ -67172,7 +69810,8 @@ namespace VULKAN_HPP_NAMESPACE
pReferenceSlots = referenceSlots_.data();
return *this;
}
-# endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
+# endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
+# endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
operator VkVideoDecodeInfoKHR const &() const VULKAN_HPP_NOEXCEPT
{
@@ -67236,17 +69875,17 @@ namespace VULKAN_HPP_NAMESPACE
# if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
VULKAN_HPP_CONSTEXPR_14 VideoEncodeH264CapabilitiesEXT(
- VULKAN_HPP_NAMESPACE::VideoEncodeH264CapabilitiesFlagsEXT flags_ = {},
- VULKAN_HPP_NAMESPACE::VideoEncodeH264InputModeFlagsEXT inputModeFlags_ = {},
- VULKAN_HPP_NAMESPACE::VideoEncodeH264OutputModeFlagsEXT outputModeFlags_ = {},
- VULKAN_HPP_NAMESPACE::Extent2D minPictureSizeInMbs_ = {},
- VULKAN_HPP_NAMESPACE::Extent2D maxPictureSizeInMbs_ = {},
- VULKAN_HPP_NAMESPACE::Extent2D inputImageDataAlignment_ = {},
- uint8_t maxNumL0ReferenceForP_ = {},
- uint8_t maxNumL0ReferenceForB_ = {},
- uint8_t maxNumL1Reference_ = {},
- uint8_t qualityLevelCount_ = {},
- VULKAN_HPP_NAMESPACE::ExtensionProperties stdExtensionVersion_ = {} ) VULKAN_HPP_NOEXCEPT
+ VULKAN_HPP_NAMESPACE::VideoEncodeH264CapabilityFlagsEXT flags_ = {},
+ VULKAN_HPP_NAMESPACE::VideoEncodeH264InputModeFlagsEXT inputModeFlags_ = {},
+ VULKAN_HPP_NAMESPACE::VideoEncodeH264OutputModeFlagsEXT outputModeFlags_ = {},
+ VULKAN_HPP_NAMESPACE::Extent2D minPictureSizeInMbs_ = {},
+ VULKAN_HPP_NAMESPACE::Extent2D maxPictureSizeInMbs_ = {},
+ VULKAN_HPP_NAMESPACE::Extent2D inputImageDataAlignment_ = {},
+ uint8_t maxNumL0ReferenceForP_ = {},
+ uint8_t maxNumL0ReferenceForB_ = {},
+ uint8_t maxNumL1Reference_ = {},
+ uint8_t qualityLevelCount_ = {},
+ VULKAN_HPP_NAMESPACE::ExtensionProperties stdExtensionVersion_ = {} ) VULKAN_HPP_NOEXCEPT
: flags( flags_ )
, inputModeFlags( inputModeFlags_ )
, outputModeFlags( outputModeFlags_ )
@@ -67277,6 +69916,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
+# if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
VideoEncodeH264CapabilitiesEXT & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
{
pNext = pNext_;
@@ -67284,7 +69924,7 @@ namespace VULKAN_HPP_NAMESPACE
}
VideoEncodeH264CapabilitiesEXT &
- setFlags( VULKAN_HPP_NAMESPACE::VideoEncodeH264CapabilitiesFlagsEXT flags_ ) VULKAN_HPP_NOEXCEPT
+ setFlags( VULKAN_HPP_NAMESPACE::VideoEncodeH264CapabilityFlagsEXT flags_ ) VULKAN_HPP_NOEXCEPT
{
flags = flags_;
return *this;
@@ -67355,6 +69995,7 @@ namespace VULKAN_HPP_NAMESPACE
stdExtensionVersion = stdExtensionVersion_;
return *this;
}
+# endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
operator VkVideoEncodeH264CapabilitiesEXT const &() const VULKAN_HPP_NOEXCEPT
{
@@ -67387,19 +70028,19 @@ namespace VULKAN_HPP_NAMESPACE
# endif
public:
- VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eVideoEncodeH264CapabilitiesEXT;
- const void * pNext = {};
- VULKAN_HPP_NAMESPACE::VideoEncodeH264CapabilitiesFlagsEXT flags = {};
- VULKAN_HPP_NAMESPACE::VideoEncodeH264InputModeFlagsEXT inputModeFlags = {};
- VULKAN_HPP_NAMESPACE::VideoEncodeH264OutputModeFlagsEXT outputModeFlags = {};
- VULKAN_HPP_NAMESPACE::Extent2D minPictureSizeInMbs = {};
- VULKAN_HPP_NAMESPACE::Extent2D maxPictureSizeInMbs = {};
- VULKAN_HPP_NAMESPACE::Extent2D inputImageDataAlignment = {};
- uint8_t maxNumL0ReferenceForP = {};
- uint8_t maxNumL0ReferenceForB = {};
- uint8_t maxNumL1Reference = {};
- uint8_t qualityLevelCount = {};
- VULKAN_HPP_NAMESPACE::ExtensionProperties stdExtensionVersion = {};
+ VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eVideoEncodeH264CapabilitiesEXT;
+ const void * pNext = {};
+ VULKAN_HPP_NAMESPACE::VideoEncodeH264CapabilityFlagsEXT flags = {};
+ VULKAN_HPP_NAMESPACE::VideoEncodeH264InputModeFlagsEXT inputModeFlags = {};
+ VULKAN_HPP_NAMESPACE::VideoEncodeH264OutputModeFlagsEXT outputModeFlags = {};
+ VULKAN_HPP_NAMESPACE::Extent2D minPictureSizeInMbs = {};
+ VULKAN_HPP_NAMESPACE::Extent2D maxPictureSizeInMbs = {};
+ VULKAN_HPP_NAMESPACE::Extent2D inputImageDataAlignment = {};
+ uint8_t maxNumL0ReferenceForP = {};
+ uint8_t maxNumL0ReferenceForB = {};
+ uint8_t maxNumL1Reference = {};
+ uint8_t qualityLevelCount = {};
+ VULKAN_HPP_NAMESPACE::ExtensionProperties stdExtensionVersion = {};
};
static_assert( sizeof( VideoEncodeH264CapabilitiesEXT ) == sizeof( VkVideoEncodeH264CapabilitiesEXT ),
"struct and wrapper have different size!" );
@@ -67444,6 +70085,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
+# if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
VideoEncodeH264DpbSlotInfoEXT & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
{
pNext = pNext_;
@@ -67462,6 +70104,7 @@ namespace VULKAN_HPP_NAMESPACE
pStdPictureInfo = pStdPictureInfo_;
return *this;
}
+# endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
operator VkVideoEncodeH264DpbSlotInfoEXT const &() const VULKAN_HPP_NOEXCEPT
{
@@ -67556,6 +70199,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
+# if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
VideoEncodeH264EmitPictureParametersEXT & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
{
pNext = pNext_;
@@ -67587,7 +70231,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
-# if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
+# if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
VideoEncodeH264EmitPictureParametersEXT & setPsIdEntries(
VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const uint8_t> const & psIdEntries_ ) VULKAN_HPP_NOEXCEPT
{
@@ -67595,7 +70239,8 @@ namespace VULKAN_HPP_NAMESPACE
ppsIdEntries = psIdEntries_.data();
return *this;
}
-# endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
+# endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
+# endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
operator VkVideoEncodeH264EmitPictureParametersEXT const &() const VULKAN_HPP_NOEXCEPT
{
@@ -67712,6 +70357,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
+# if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
VideoEncodeH264NaluSliceEXT & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
{
pNext = pNext_;
@@ -67744,7 +70390,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
-# if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
+# if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
VideoEncodeH264NaluSliceEXT & setRefFinalList0Entries(
VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::VideoEncodeH264DpbSlotInfoEXT> const &
refFinalList0Entries_ ) VULKAN_HPP_NOEXCEPT
@@ -67753,7 +70399,7 @@ namespace VULKAN_HPP_NAMESPACE
pRefFinalList0Entries = refFinalList0Entries_.data();
return *this;
}
-# endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
+# endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
VideoEncodeH264NaluSliceEXT & setRefFinalList1EntryCount( uint8_t refFinalList1EntryCount_ ) VULKAN_HPP_NOEXCEPT
{
@@ -67768,7 +70414,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
-# if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
+# if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
VideoEncodeH264NaluSliceEXT & setRefFinalList1Entries(
VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::VideoEncodeH264DpbSlotInfoEXT> const &
refFinalList1Entries_ ) VULKAN_HPP_NOEXCEPT
@@ -67777,7 +70423,7 @@ namespace VULKAN_HPP_NAMESPACE
pRefFinalList1Entries = refFinalList1Entries_.data();
return *this;
}
-# endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
+# endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
VideoEncodeH264NaluSliceEXT & setPrecedingNaluBytes( uint32_t precedingNaluBytes_ ) VULKAN_HPP_NOEXCEPT
{
@@ -67796,6 +70442,7 @@ namespace VULKAN_HPP_NAMESPACE
maxQp = maxQp_;
return *this;
}
+# endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
operator VkVideoEncodeH264NaluSliceEXT const &() const VULKAN_HPP_NOEXCEPT
{
@@ -67879,6 +70526,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
+# if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
VideoEncodeH264ProfileEXT & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
{
pNext = pNext_;
@@ -67890,6 +70538,7 @@ namespace VULKAN_HPP_NAMESPACE
stdProfileIdc = stdProfileIdc_;
return *this;
}
+# endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
operator VkVideoEncodeH264ProfileEXT const &() const VULKAN_HPP_NOEXCEPT
{
@@ -67968,6 +70617,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
+# if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
VideoEncodeH264SessionCreateInfoEXT & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
{
pNext = pNext_;
@@ -67994,6 +70644,7 @@ namespace VULKAN_HPP_NAMESPACE
pStdExtensionVersion = pStdExtensionVersion_;
return *this;
}
+# endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
operator VkVideoEncodeH264SessionCreateInfoEXT const &() const VULKAN_HPP_NOEXCEPT
{
@@ -68089,6 +70740,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
+# if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
VideoEncodeH264SessionParametersAddInfoEXT & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
{
pNext = pNext_;
@@ -68108,7 +70760,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
-# if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
+# if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
VideoEncodeH264SessionParametersAddInfoEXT &
setSpsStd( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const StdVideoH264SequenceParameterSet> const & spsStd_ )
VULKAN_HPP_NOEXCEPT
@@ -68117,7 +70769,7 @@ namespace VULKAN_HPP_NAMESPACE
pSpsStd = spsStd_.data();
return *this;
}
-# endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
+# endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
VideoEncodeH264SessionParametersAddInfoEXT & setPpsStdCount( uint32_t ppsStdCount_ ) VULKAN_HPP_NOEXCEPT
{
@@ -68132,7 +70784,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
-# if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
+# if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
VideoEncodeH264SessionParametersAddInfoEXT &
setPpsStd( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const StdVideoH264PictureParameterSet> const & ppsStd_ )
VULKAN_HPP_NOEXCEPT
@@ -68141,7 +70793,8 @@ namespace VULKAN_HPP_NAMESPACE
pPpsStd = ppsStd_.data();
return *this;
}
-# endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
+# endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
+# endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
operator VkVideoEncodeH264SessionParametersAddInfoEXT const &() const VULKAN_HPP_NOEXCEPT
{
@@ -68227,6 +70880,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
+# if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
VideoEncodeH264SessionParametersCreateInfoEXT & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
{
pNext = pNext_;
@@ -68251,6 +70905,7 @@ namespace VULKAN_HPP_NAMESPACE
pParametersAddInfo = pParametersAddInfo_;
return *this;
}
+# endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
operator VkVideoEncodeH264SessionParametersCreateInfoEXT const &() const VULKAN_HPP_NOEXCEPT
{
@@ -68357,6 +71012,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
+# if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
VideoEncodeH264VclFrameInfoEXT & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
{
pNext = pNext_;
@@ -68377,7 +71033,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
-# if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
+# if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
VideoEncodeH264VclFrameInfoEXT & setRefDefaultFinalList0Entries(
VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::VideoEncodeH264DpbSlotInfoEXT> const &
refDefaultFinalList0Entries_ ) VULKAN_HPP_NOEXCEPT
@@ -68386,7 +71042,7 @@ namespace VULKAN_HPP_NAMESPACE
pRefDefaultFinalList0Entries = refDefaultFinalList0Entries_.data();
return *this;
}
-# endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
+# endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
VideoEncodeH264VclFrameInfoEXT &
setRefDefaultFinalList1EntryCount( uint8_t refDefaultFinalList1EntryCount_ ) VULKAN_HPP_NOEXCEPT
@@ -68402,7 +71058,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
-# if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
+# if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
VideoEncodeH264VclFrameInfoEXT & setRefDefaultFinalList1Entries(
VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::VideoEncodeH264DpbSlotInfoEXT> const &
refDefaultFinalList1Entries_ ) VULKAN_HPP_NOEXCEPT
@@ -68411,7 +71067,7 @@ namespace VULKAN_HPP_NAMESPACE
pRefDefaultFinalList1Entries = refDefaultFinalList1Entries_.data();
return *this;
}
-# endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
+# endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
VideoEncodeH264VclFrameInfoEXT & setNaluSliceEntryCount( uint32_t naluSliceEntryCount_ ) VULKAN_HPP_NOEXCEPT
{
@@ -68426,7 +71082,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
-# if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
+# if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
VideoEncodeH264VclFrameInfoEXT & setNaluSliceEntries(
VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::VideoEncodeH264NaluSliceEXT> const &
naluSliceEntries_ ) VULKAN_HPP_NOEXCEPT
@@ -68435,7 +71091,7 @@ namespace VULKAN_HPP_NAMESPACE
pNaluSliceEntries = naluSliceEntries_.data();
return *this;
}
-# endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
+# endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
VideoEncodeH264VclFrameInfoEXT & setPCurrentPictureInfo(
const VULKAN_HPP_NAMESPACE::VideoEncodeH264DpbSlotInfoEXT * pCurrentPictureInfo_ ) VULKAN_HPP_NOEXCEPT
@@ -68443,6 +71099,7 @@ namespace VULKAN_HPP_NAMESPACE
pCurrentPictureInfo = pCurrentPictureInfo_;
return *this;
}
+# endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
operator VkVideoEncodeH264VclFrameInfoEXT const &() const VULKAN_HPP_NOEXCEPT
{
@@ -68568,6 +71225,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
+# if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
VideoEncodeInfoKHR & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
{
pNext = pNext_;
@@ -68639,7 +71297,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
-# if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
+# if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
VideoEncodeInfoKHR & setReferenceSlots(
VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::VideoReferenceSlotKHR> const &
referenceSlots_ ) VULKAN_HPP_NOEXCEPT
@@ -68648,7 +71306,8 @@ namespace VULKAN_HPP_NAMESPACE
pReferenceSlots = referenceSlots_.data();
return *this;
}
-# endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
+# endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
+# endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
operator VkVideoEncodeInfoKHR const &() const VULKAN_HPP_NOEXCEPT
{
@@ -68747,6 +71406,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
+# if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
VideoEncodeRateControlInfoKHR & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
{
pNext = pNext_;
@@ -68797,6 +71457,7 @@ namespace VULKAN_HPP_NAMESPACE
virtualBufferSizeInMs = virtualBufferSizeInMs_;
return *this;
}
+# endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
operator VkVideoEncodeRateControlInfoKHR const &() const VULKAN_HPP_NOEXCEPT
{
@@ -68878,6 +71539,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
+# if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
VideoEndCodingInfoKHR & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
{
pNext = pNext_;
@@ -68889,6 +71551,7 @@ namespace VULKAN_HPP_NAMESPACE
flags = flags_;
return *this;
}
+# endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
operator VkVideoEndCodingInfoKHR const &() const VULKAN_HPP_NOEXCEPT
{
@@ -69029,6 +71692,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
+# if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
VideoGetMemoryPropertiesKHR & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
{
pNext = pNext_;
@@ -69047,6 +71711,7 @@ namespace VULKAN_HPP_NAMESPACE
pMemoryRequirements = pMemoryRequirements_;
return *this;
}
+# endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
operator VkVideoGetMemoryPropertiesKHR const &() const VULKAN_HPP_NOEXCEPT
{
@@ -69120,6 +71785,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
+# if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
VideoQueueFamilyProperties2KHR & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
{
pNext = pNext_;
@@ -69132,6 +71798,7 @@ namespace VULKAN_HPP_NAMESPACE
videoCodecOperations = videoCodecOperations_;
return *this;
}
+# endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
operator VkVideoQueueFamilyProperties2KHR const &() const VULKAN_HPP_NOEXCEPT
{
@@ -69217,6 +71884,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
+# if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
VideoSessionCreateInfoKHR & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
{
pNext = pNext_;
@@ -69275,6 +71943,7 @@ namespace VULKAN_HPP_NAMESPACE
maxReferencePicturesActiveCount = maxReferencePicturesActiveCount_;
return *this;
}
+# endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
operator VkVideoSessionCreateInfoKHR const &() const VULKAN_HPP_NOEXCEPT
{
@@ -69362,6 +72031,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
+# if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
VideoSessionParametersCreateInfoKHR & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
{
pNext = pNext_;
@@ -69381,6 +72051,7 @@ namespace VULKAN_HPP_NAMESPACE
videoSession = videoSession_;
return *this;
}
+# endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
operator VkVideoSessionParametersCreateInfoKHR const &() const VULKAN_HPP_NOEXCEPT
{
@@ -69456,6 +72127,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
+# if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
VideoSessionParametersUpdateInfoKHR & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
{
pNext = pNext_;
@@ -69467,6 +72139,7 @@ namespace VULKAN_HPP_NAMESPACE
updateSequenceCount = updateSequenceCount_;
return *this;
}
+# endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
operator VkVideoSessionParametersUpdateInfoKHR const &() const VULKAN_HPP_NOEXCEPT
{
@@ -69541,6 +72214,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
+# if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
WaylandSurfaceCreateInfoKHR & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
{
pNext = pNext_;
@@ -69565,6 +72239,7 @@ namespace VULKAN_HPP_NAMESPACE
surface = surface_;
return *this;
}
+# endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
operator VkWaylandSurfaceCreateInfoKHR const &() const VULKAN_HPP_NOEXCEPT
{
@@ -69707,6 +72382,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
+# if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
Win32KeyedMutexAcquireReleaseInfoKHR & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
{
pNext = pNext_;
@@ -69726,7 +72402,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
-# if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
+# if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
Win32KeyedMutexAcquireReleaseInfoKHR & setAcquireSyncs(
VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::DeviceMemory> const & acquireSyncs_ )
VULKAN_HPP_NOEXCEPT
@@ -69735,7 +72411,7 @@ namespace VULKAN_HPP_NAMESPACE
pAcquireSyncs = acquireSyncs_.data();
return *this;
}
-# endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
+# endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
Win32KeyedMutexAcquireReleaseInfoKHR & setPAcquireKeys( const uint64_t * pAcquireKeys_ ) VULKAN_HPP_NOEXCEPT
{
@@ -69743,7 +72419,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
-# if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
+# if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
Win32KeyedMutexAcquireReleaseInfoKHR & setAcquireKeys(
VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const uint64_t> const & acquireKeys_ ) VULKAN_HPP_NOEXCEPT
{
@@ -69751,7 +72427,7 @@ namespace VULKAN_HPP_NAMESPACE
pAcquireKeys = acquireKeys_.data();
return *this;
}
-# endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
+# endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
Win32KeyedMutexAcquireReleaseInfoKHR & setPAcquireTimeouts( const uint32_t * pAcquireTimeouts_ ) VULKAN_HPP_NOEXCEPT
{
@@ -69759,7 +72435,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
-# if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
+# if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
Win32KeyedMutexAcquireReleaseInfoKHR & setAcquireTimeouts(
VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const uint32_t> const & acquireTimeouts_ ) VULKAN_HPP_NOEXCEPT
{
@@ -69767,7 +72443,7 @@ namespace VULKAN_HPP_NAMESPACE
pAcquireTimeouts = acquireTimeouts_.data();
return *this;
}
-# endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
+# endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
Win32KeyedMutexAcquireReleaseInfoKHR & setReleaseCount( uint32_t releaseCount_ ) VULKAN_HPP_NOEXCEPT
{
@@ -69782,7 +72458,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
-# if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
+# if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
Win32KeyedMutexAcquireReleaseInfoKHR & setReleaseSyncs(
VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::DeviceMemory> const & releaseSyncs_ )
VULKAN_HPP_NOEXCEPT
@@ -69791,7 +72467,7 @@ namespace VULKAN_HPP_NAMESPACE
pReleaseSyncs = releaseSyncs_.data();
return *this;
}
-# endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
+# endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
Win32KeyedMutexAcquireReleaseInfoKHR & setPReleaseKeys( const uint64_t * pReleaseKeys_ ) VULKAN_HPP_NOEXCEPT
{
@@ -69799,7 +72475,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
-# if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
+# if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
Win32KeyedMutexAcquireReleaseInfoKHR & setReleaseKeys(
VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const uint64_t> const & releaseKeys_ ) VULKAN_HPP_NOEXCEPT
{
@@ -69807,7 +72483,8 @@ namespace VULKAN_HPP_NAMESPACE
pReleaseKeys = releaseKeys_.data();
return *this;
}
-# endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
+# endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
+# endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
operator VkWin32KeyedMutexAcquireReleaseInfoKHR const &() const VULKAN_HPP_NOEXCEPT
{
@@ -69956,6 +72633,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
+# if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
Win32KeyedMutexAcquireReleaseInfoNV & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
{
pNext = pNext_;
@@ -69975,7 +72653,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
-# if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
+# if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
Win32KeyedMutexAcquireReleaseInfoNV & setAcquireSyncs(
VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::DeviceMemory> const & acquireSyncs_ )
VULKAN_HPP_NOEXCEPT
@@ -69984,7 +72662,7 @@ namespace VULKAN_HPP_NAMESPACE
pAcquireSyncs = acquireSyncs_.data();
return *this;
}
-# endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
+# endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
Win32KeyedMutexAcquireReleaseInfoNV & setPAcquireKeys( const uint64_t * pAcquireKeys_ ) VULKAN_HPP_NOEXCEPT
{
@@ -69992,7 +72670,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
-# if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
+# if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
Win32KeyedMutexAcquireReleaseInfoNV & setAcquireKeys(
VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const uint64_t> const & acquireKeys_ ) VULKAN_HPP_NOEXCEPT
{
@@ -70000,7 +72678,7 @@ namespace VULKAN_HPP_NAMESPACE
pAcquireKeys = acquireKeys_.data();
return *this;
}
-# endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
+# endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
Win32KeyedMutexAcquireReleaseInfoNV &
setPAcquireTimeoutMilliseconds( const uint32_t * pAcquireTimeoutMilliseconds_ ) VULKAN_HPP_NOEXCEPT
@@ -70009,7 +72687,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
-# if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
+# if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
Win32KeyedMutexAcquireReleaseInfoNV & setAcquireTimeoutMilliseconds(
VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const uint32_t> const & acquireTimeoutMilliseconds_ )
VULKAN_HPP_NOEXCEPT
@@ -70018,7 +72696,7 @@ namespace VULKAN_HPP_NAMESPACE
pAcquireTimeoutMilliseconds = acquireTimeoutMilliseconds_.data();
return *this;
}
-# endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
+# endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
Win32KeyedMutexAcquireReleaseInfoNV & setReleaseCount( uint32_t releaseCount_ ) VULKAN_HPP_NOEXCEPT
{
@@ -70033,7 +72711,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
-# if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
+# if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
Win32KeyedMutexAcquireReleaseInfoNV & setReleaseSyncs(
VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::DeviceMemory> const & releaseSyncs_ )
VULKAN_HPP_NOEXCEPT
@@ -70042,7 +72720,7 @@ namespace VULKAN_HPP_NAMESPACE
pReleaseSyncs = releaseSyncs_.data();
return *this;
}
-# endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
+# endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
Win32KeyedMutexAcquireReleaseInfoNV & setPReleaseKeys( const uint64_t * pReleaseKeys_ ) VULKAN_HPP_NOEXCEPT
{
@@ -70050,7 +72728,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
-# if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
+# if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
Win32KeyedMutexAcquireReleaseInfoNV & setReleaseKeys(
VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const uint64_t> const & releaseKeys_ ) VULKAN_HPP_NOEXCEPT
{
@@ -70058,7 +72736,8 @@ namespace VULKAN_HPP_NAMESPACE
pReleaseKeys = releaseKeys_.data();
return *this;
}
-# endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
+# endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
+# endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
operator VkWin32KeyedMutexAcquireReleaseInfoNV const &() const VULKAN_HPP_NOEXCEPT
{
@@ -70143,6 +72822,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
+# if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
Win32SurfaceCreateInfoKHR & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
{
pNext = pNext_;
@@ -70166,6 +72846,7 @@ namespace VULKAN_HPP_NAMESPACE
hwnd = hwnd_;
return *this;
}
+# endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
operator VkWin32SurfaceCreateInfoKHR const &() const VULKAN_HPP_NOEXCEPT
{
@@ -70287,6 +72968,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
+#if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
WriteDescriptorSet & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
{
pNext = pNext_;
@@ -70330,7 +73012,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
-#if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
+# if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
WriteDescriptorSet & setImageInfo(
VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::DescriptorImageInfo> const &
imageInfo_ ) VULKAN_HPP_NOEXCEPT
@@ -70339,7 +73021,7 @@ namespace VULKAN_HPP_NAMESPACE
pImageInfo = imageInfo_.data();
return *this;
}
-#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
+# endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
WriteDescriptorSet &
setPBufferInfo( const VULKAN_HPP_NAMESPACE::DescriptorBufferInfo * pBufferInfo_ ) VULKAN_HPP_NOEXCEPT
@@ -70348,7 +73030,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
-#if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
+# if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
WriteDescriptorSet & setBufferInfo(
VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::DescriptorBufferInfo> const &
bufferInfo_ ) VULKAN_HPP_NOEXCEPT
@@ -70357,7 +73039,7 @@ namespace VULKAN_HPP_NAMESPACE
pBufferInfo = bufferInfo_.data();
return *this;
}
-#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
+# endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
WriteDescriptorSet &
setPTexelBufferView( const VULKAN_HPP_NAMESPACE::BufferView * pTexelBufferView_ ) VULKAN_HPP_NOEXCEPT
@@ -70366,7 +73048,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
-#if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
+# if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
WriteDescriptorSet & setTexelBufferView(
VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::BufferView> const & texelBufferView_ )
VULKAN_HPP_NOEXCEPT
@@ -70375,7 +73057,8 @@ namespace VULKAN_HPP_NAMESPACE
pTexelBufferView = texelBufferView_.data();
return *this;
}
-#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
+# endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
+#endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
operator VkWriteDescriptorSet const &() const VULKAN_HPP_NOEXCEPT
{
@@ -70470,6 +73153,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
+#if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
WriteDescriptorSetAccelerationStructureKHR & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
{
pNext = pNext_;
@@ -70490,7 +73174,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
-#if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
+# if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
WriteDescriptorSetAccelerationStructureKHR & setAccelerationStructures(
VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::AccelerationStructureKHR> const &
accelerationStructures_ ) VULKAN_HPP_NOEXCEPT
@@ -70499,7 +73183,8 @@ namespace VULKAN_HPP_NAMESPACE
pAccelerationStructures = accelerationStructures_.data();
return *this;
}
-#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
+# endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
+#endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
operator VkWriteDescriptorSetAccelerationStructureKHR const &() const VULKAN_HPP_NOEXCEPT
{
@@ -70588,6 +73273,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
+#if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
WriteDescriptorSetAccelerationStructureNV & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
{
pNext = pNext_;
@@ -70608,7 +73294,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
-#if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
+# if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
WriteDescriptorSetAccelerationStructureNV & setAccelerationStructures(
VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::AccelerationStructureNV> const &
accelerationStructures_ ) VULKAN_HPP_NOEXCEPT
@@ -70617,7 +73303,8 @@ namespace VULKAN_HPP_NAMESPACE
pAccelerationStructures = accelerationStructures_.data();
return *this;
}
-#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
+# endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
+#endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
operator VkWriteDescriptorSetAccelerationStructureNV const &() const VULKAN_HPP_NOEXCEPT
{
@@ -70702,6 +73389,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
+#if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
WriteDescriptorSetInlineUniformBlockEXT & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
{
pNext = pNext_;
@@ -70720,7 +73408,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
-#if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
+# if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
template <typename T>
WriteDescriptorSetInlineUniformBlockEXT &
setData( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const T> const & data_ ) VULKAN_HPP_NOEXCEPT
@@ -70729,7 +73417,8 @@ namespace VULKAN_HPP_NAMESPACE
pData = data_.data();
return *this;
}
-#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
+# endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
+#endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
operator VkWriteDescriptorSetInlineUniformBlockEXT const &() const VULKAN_HPP_NOEXCEPT
{
@@ -70804,6 +73493,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
+# if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
XcbSurfaceCreateInfoKHR & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
{
pNext = pNext_;
@@ -70827,6 +73517,7 @@ namespace VULKAN_HPP_NAMESPACE
window = window_;
return *this;
}
+# endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
operator VkXcbSurfaceCreateInfoKHR const &() const VULKAN_HPP_NOEXCEPT
{
@@ -70902,6 +73593,7 @@ namespace VULKAN_HPP_NAMESPACE
return *this;
}
+# if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
XlibSurfaceCreateInfoKHR & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
{
pNext = pNext_;
@@ -70925,6 +73617,7 @@ namespace VULKAN_HPP_NAMESPACE
window = window_;
return *this;
}
+# endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
operator VkXlibSurfaceCreateInfoKHR const &() const VULKAN_HPP_NOEXCEPT
{
diff --git a/thirdparty/vulkan/patches/VKEnumStringHelper-use-volk.patch b/thirdparty/vulkan/patches/VKEnumStringHelper-use-volk.patch
index 0fd22281d9..9a2267e2b6 100644
--- a/thirdparty/vulkan/patches/VKEnumStringHelper-use-volk.patch
+++ b/thirdparty/vulkan/patches/VKEnumStringHelper-use-volk.patch
@@ -1,5 +1,5 @@
diff --git a/thirdparty/vulkan/vk_enum_string_helper.h b/thirdparty/vulkan/vk_enum_string_helper.h
-index 4c36430341..004a861774 100755
+index 4c36430341..004a861774 100644
--- a/thirdparty/vulkan/vk_enum_string_helper.h
+++ b/thirdparty/vulkan/vk_enum_string_helper.h
@@ -36,7 +36,11 @@
diff --git a/thirdparty/vulkan/patches/VMA-use-volk.patch b/thirdparty/vulkan/patches/VMA-use-volk.patch
index 4ba84c9a60..81bfcccd89 100644
--- a/thirdparty/vulkan/patches/VMA-use-volk.patch
+++ b/thirdparty/vulkan/patches/VMA-use-volk.patch
@@ -1,9 +1,9 @@
diff --git a/thirdparty/vulkan/vk_mem_alloc.h b/thirdparty/vulkan/vk_mem_alloc.h
-index 8a42699e7f..510fa4d3ef 100644
+index 65d6243419..9890f20f7c 100644
--- a/thirdparty/vulkan/vk_mem_alloc.h
+++ b/thirdparty/vulkan/vk_mem_alloc.h
-@@ -1771,7 +1771,11 @@ available through VmaAllocatorCreateInfo::pRecordSettings.
- #endif
+@@ -2063,7 +2063,11 @@ available through VmaAllocatorCreateInfo::pRecordSettings.
+ #endif // #if defined(__ANDROID__) && VMA_STATIC_VULKAN_FUNCTIONS && VK_NO_PROTOTYPES
#ifndef VULKAN_H_
- #include <vulkan/vulkan.h>
@@ -14,4 +14,4 @@ index 8a42699e7f..510fa4d3ef 100644
+ #endif
#endif
- #if VMA_RECORDING_ENABLED
+ // Define this macro to declare maximum supported Vulkan version in format AAABBBCCC,
diff --git a/thirdparty/vulkan/vk_enum_string_helper.h b/thirdparty/vulkan/vk_enum_string_helper.h
index 004a861774..30bdcac16c 100644
--- a/thirdparty/vulkan/vk_enum_string_helper.h
+++ b/thirdparty/vulkan/vk_enum_string_helper.h
@@ -558,6 +558,8 @@ static inline const char* string_VkStructureType(VkStructureType input_value)
return "VK_STRUCTURE_TYPE_MEMORY_GET_ANDROID_HARDWARE_BUFFER_INFO_ANDROID";
case VK_STRUCTURE_TYPE_MEMORY_GET_FD_INFO_KHR:
return "VK_STRUCTURE_TYPE_MEMORY_GET_FD_INFO_KHR";
+ case VK_STRUCTURE_TYPE_MEMORY_GET_REMOTE_ADDRESS_INFO_NV:
+ return "VK_STRUCTURE_TYPE_MEMORY_GET_REMOTE_ADDRESS_INFO_NV";
case VK_STRUCTURE_TYPE_MEMORY_GET_WIN32_HANDLE_INFO_KHR:
return "VK_STRUCTURE_TYPE_MEMORY_GET_WIN32_HANDLE_INFO_KHR";
case VK_STRUCTURE_TYPE_MEMORY_GET_ZIRCON_HANDLE_INFO_FUCHSIA:
@@ -674,6 +676,8 @@ static inline const char* string_VkStructureType(VkStructureType input_value)
return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_IMAGE_FORMAT_INFO";
case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_MEMORY_HOST_PROPERTIES_EXT:
return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_MEMORY_HOST_PROPERTIES_EXT";
+ case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_MEMORY_RDMA_FEATURES_NV:
+ return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_MEMORY_RDMA_FEATURES_NV";
case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_SEMAPHORE_INFO:
return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_SEMAPHORE_INFO";
case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FEATURES_2:
@@ -728,6 +732,8 @@ static inline const char* string_VkStructureType(VkStructureType input_value)
return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_FEATURES_EXT";
case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_PROPERTIES_EXT:
return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_PROPERTIES_EXT";
+ case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INVOCATION_MASK_FEATURES_HUAWEI:
+ return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INVOCATION_MASK_FEATURES_HUAWEI";
case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LINE_RASTERIZATION_FEATURES_EXT:
return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LINE_RASTERIZATION_FEATURES_EXT";
case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LINE_RASTERIZATION_PROPERTIES_EXT:
@@ -776,6 +782,12 @@ static inline const char* string_VkStructureType(VkStructureType input_value)
case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PORTABILITY_SUBSET_PROPERTIES_KHR:
return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PORTABILITY_SUBSET_PROPERTIES_KHR";
#endif // VK_ENABLE_BETA_EXTENSIONS
+ case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRESENT_ID_FEATURES_KHR:
+ return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRESENT_ID_FEATURES_KHR";
+ case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRESENT_WAIT_FEATURES_KHR:
+ return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRESENT_WAIT_FEATURES_KHR";
+ case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIMITIVE_TOPOLOGY_LIST_RESTART_FEATURES_EXT:
+ return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIMITIVE_TOPOLOGY_LIST_RESTART_FEATURES_EXT";
case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIVATE_DATA_FEATURES_EXT:
return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIVATE_DATA_FEATURES_EXT";
case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROPERTIES_2:
@@ -816,6 +828,8 @@ static inline const char* string_VkStructureType(VkStructureType input_value)
return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SCALAR_BLOCK_LAYOUT_FEATURES";
case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SEPARATE_DEPTH_STENCIL_LAYOUTS_FEATURES:
return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SEPARATE_DEPTH_STENCIL_LAYOUTS_FEATURES";
+ case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_FLOAT_2_FEATURES_EXT:
+ return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_FLOAT_2_FEATURES_EXT";
case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_FLOAT_FEATURES_EXT:
return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_FLOAT_FEATURES_EXT";
case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_INT64_FEATURES:
@@ -836,6 +850,10 @@ static inline const char* string_VkStructureType(VkStructureType input_value)
return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_IMAGE_ATOMIC_INT64_FEATURES_EXT";
case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_IMAGE_FOOTPRINT_FEATURES_NV:
return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_IMAGE_FOOTPRINT_FEATURES_NV";
+ case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_DOT_PRODUCT_FEATURES_KHR:
+ return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_DOT_PRODUCT_FEATURES_KHR";
+ case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_DOT_PRODUCT_PROPERTIES_KHR:
+ return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_DOT_PRODUCT_PROPERTIES_KHR";
case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_FUNCTIONS_2_FEATURES_INTEL:
return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_FUNCTIONS_2_FEATURES_INTEL";
case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SM_BUILTINS_FEATURES_NV:
@@ -1006,6 +1024,8 @@ static inline const char* string_VkStructureType(VkStructureType input_value)
return "VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_W_SCALING_STATE_CREATE_INFO_NV";
case VK_STRUCTURE_TYPE_PRESENT_FRAME_TOKEN_GGP:
return "VK_STRUCTURE_TYPE_PRESENT_FRAME_TOKEN_GGP";
+ case VK_STRUCTURE_TYPE_PRESENT_ID_KHR:
+ return "VK_STRUCTURE_TYPE_PRESENT_ID_KHR";
case VK_STRUCTURE_TYPE_PRESENT_INFO_KHR:
return "VK_STRUCTURE_TYPE_PRESENT_INFO_KHR";
case VK_STRUCTURE_TYPE_PRESENT_REGIONS_KHR:
@@ -1108,8 +1128,6 @@ static inline const char* string_VkStructureType(VkStructureType input_value)
return "VK_STRUCTURE_TYPE_SUBMIT_INFO";
case VK_STRUCTURE_TYPE_SUBMIT_INFO_2_KHR:
return "VK_STRUCTURE_TYPE_SUBMIT_INFO_2_KHR";
- case VK_STRUCTURE_TYPE_SUBPASSS_SHADING_PIPELINE_CREATE_INFO_HUAWEI:
- return "VK_STRUCTURE_TYPE_SUBPASSS_SHADING_PIPELINE_CREATE_INFO_HUAWEI";
case VK_STRUCTURE_TYPE_SUBPASS_BEGIN_INFO:
return "VK_STRUCTURE_TYPE_SUBPASS_BEGIN_INFO";
case VK_STRUCTURE_TYPE_SUBPASS_DEPENDENCY_2:
@@ -1120,6 +1138,8 @@ static inline const char* string_VkStructureType(VkStructureType input_value)
return "VK_STRUCTURE_TYPE_SUBPASS_DESCRIPTION_DEPTH_STENCIL_RESOLVE";
case VK_STRUCTURE_TYPE_SUBPASS_END_INFO:
return "VK_STRUCTURE_TYPE_SUBPASS_END_INFO";
+ case VK_STRUCTURE_TYPE_SUBPASS_SHADING_PIPELINE_CREATE_INFO_HUAWEI:
+ return "VK_STRUCTURE_TYPE_SUBPASS_SHADING_PIPELINE_CREATE_INFO_HUAWEI";
case VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES_2_EXT:
return "VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES_2_EXT";
case VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES_2_KHR:
@@ -1657,6 +1677,17 @@ static inline const char* string_VkObjectType(VkObjectType input_value)
}
}
+static inline const char* string_VkPipelineCacheHeaderVersion(VkPipelineCacheHeaderVersion input_value)
+{
+ switch (input_value)
+ {
+ case VK_PIPELINE_CACHE_HEADER_VERSION_ONE:
+ return "VK_PIPELINE_CACHE_HEADER_VERSION_ONE";
+ default:
+ return "Unhandled VkPipelineCacheHeaderVersion";
+ }
+}
+
static inline const char* string_VkVendorId(VkVendorId input_value)
{
switch (input_value)
@@ -1678,17 +1709,6 @@ static inline const char* string_VkVendorId(VkVendorId input_value)
}
}
-static inline const char* string_VkPipelineCacheHeaderVersion(VkPipelineCacheHeaderVersion input_value)
-{
- switch (input_value)
- {
- case VK_PIPELINE_CACHE_HEADER_VERSION_ONE:
- return "VK_PIPELINE_CACHE_HEADER_VERSION_ONE";
- default:
- return "Unhandled VkPipelineCacheHeaderVersion";
- }
-}
-
static inline const char* string_VkSystemAllocationScope(VkSystemAllocationScope input_value)
{
switch (input_value)
@@ -2455,6 +2475,8 @@ static inline const char* string_VkImageUsageFlagBits(VkImageUsageFlagBits input
return "VK_IMAGE_USAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR";
case VK_IMAGE_USAGE_INPUT_ATTACHMENT_BIT:
return "VK_IMAGE_USAGE_INPUT_ATTACHMENT_BIT";
+ case VK_IMAGE_USAGE_INVOCATION_MASK_BIT_HUAWEI:
+ return "VK_IMAGE_USAGE_INVOCATION_MASK_BIT_HUAWEI";
case VK_IMAGE_USAGE_SAMPLED_BIT:
return "VK_IMAGE_USAGE_SAMPLED_BIT";
case VK_IMAGE_USAGE_STORAGE_BIT:
@@ -2559,6 +2581,8 @@ static inline const char* string_VkMemoryPropertyFlagBits(VkMemoryPropertyFlagBi
return "VK_MEMORY_PROPERTY_LAZILY_ALLOCATED_BIT";
case VK_MEMORY_PROPERTY_PROTECTED_BIT:
return "VK_MEMORY_PROPERTY_PROTECTED_BIT";
+ case VK_MEMORY_PROPERTY_RDMA_CAPABLE_BIT_NV:
+ return "VK_MEMORY_PROPERTY_RDMA_CAPABLE_BIT_NV";
default:
return "Unhandled VkMemoryPropertyFlagBits";
}
@@ -4066,6 +4090,8 @@ static inline const char* string_VkAttachmentLoadOp(VkAttachmentLoadOp input_val
return "VK_ATTACHMENT_LOAD_OP_DONT_CARE";
case VK_ATTACHMENT_LOAD_OP_LOAD:
return "VK_ATTACHMENT_LOAD_OP_LOAD";
+ case VK_ATTACHMENT_LOAD_OP_NONE_EXT:
+ return "VK_ATTACHMENT_LOAD_OP_NONE_EXT";
default:
return "Unhandled VkAttachmentLoadOp";
}
@@ -4077,8 +4103,8 @@ static inline const char* string_VkAttachmentStoreOp(VkAttachmentStoreOp input_v
{
case VK_ATTACHMENT_STORE_OP_DONT_CARE:
return "VK_ATTACHMENT_STORE_OP_DONT_CARE";
- case VK_ATTACHMENT_STORE_OP_NONE_QCOM:
- return "VK_ATTACHMENT_STORE_OP_NONE_QCOM";
+ case VK_ATTACHMENT_STORE_OP_NONE_EXT:
+ return "VK_ATTACHMENT_STORE_OP_NONE_EXT";
case VK_ATTACHMENT_STORE_OP_STORE:
return "VK_ATTACHMENT_STORE_OP_STORE";
default:
@@ -4655,6 +4681,8 @@ static inline const char* string_VkExternalMemoryHandleTypeFlagBits(VkExternalMe
return "VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_BIT";
case VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT:
return "VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT";
+ case VK_EXTERNAL_MEMORY_HANDLE_TYPE_RDMA_ADDRESS_BIT_NV:
+ return "VK_EXTERNAL_MEMORY_HANDLE_TYPE_RDMA_ADDRESS_BIT_NV";
case VK_EXTERNAL_MEMORY_HANDLE_TYPE_ZIRCON_VMO_BIT_FUCHSIA:
return "VK_EXTERNAL_MEMORY_HANDLE_TYPE_ZIRCON_VMO_BIT_FUCHSIA";
default:
@@ -4927,6 +4955,8 @@ static inline const char* string_VkDriverId(VkDriverId input_value)
return "VK_DRIVER_ID_NVIDIA_PROPRIETARY";
case VK_DRIVER_ID_QUALCOMM_PROPRIETARY:
return "VK_DRIVER_ID_QUALCOMM_PROPRIETARY";
+ case VK_DRIVER_ID_VERISILICON_PROPRIETARY:
+ return "VK_DRIVER_ID_VERISILICON_PROPRIETARY";
default:
return "Unhandled VkDriverId";
}
@@ -5427,32 +5457,32 @@ static inline std::string string_VkVideoComponentBitDepthFlagsKHR(VkVideoCompone
#ifdef VK_ENABLE_BETA_EXTENSIONS
-static inline const char* string_VkVideoCapabilitiesFlagBitsKHR(VkVideoCapabilitiesFlagBitsKHR input_value)
+static inline const char* string_VkVideoCapabilityFlagBitsKHR(VkVideoCapabilityFlagBitsKHR input_value)
{
switch (input_value)
{
- case VK_VIDEO_CAPABILITIES_PROTECTED_CONTENT_BIT_KHR:
- return "VK_VIDEO_CAPABILITIES_PROTECTED_CONTENT_BIT_KHR";
- case VK_VIDEO_CAPABILITIES_SEPARATE_REFERENCE_IMAGES_BIT_KHR:
- return "VK_VIDEO_CAPABILITIES_SEPARATE_REFERENCE_IMAGES_BIT_KHR";
+ case VK_VIDEO_CAPABILITY_PROTECTED_CONTENT_BIT_KHR:
+ return "VK_VIDEO_CAPABILITY_PROTECTED_CONTENT_BIT_KHR";
+ case VK_VIDEO_CAPABILITY_SEPARATE_REFERENCE_IMAGES_BIT_KHR:
+ return "VK_VIDEO_CAPABILITY_SEPARATE_REFERENCE_IMAGES_BIT_KHR";
default:
- return "Unhandled VkVideoCapabilitiesFlagBitsKHR";
+ return "Unhandled VkVideoCapabilityFlagBitsKHR";
}
}
-static inline std::string string_VkVideoCapabilitiesFlagsKHR(VkVideoCapabilitiesFlagsKHR input_value)
+static inline std::string string_VkVideoCapabilityFlagsKHR(VkVideoCapabilityFlagsKHR input_value)
{
std::string ret;
int index = 0;
while(input_value) {
if (input_value & 1) {
if( !ret.empty()) ret.append("|");
- ret.append(string_VkVideoCapabilitiesFlagBitsKHR(static_cast<VkVideoCapabilitiesFlagBitsKHR>(1U << index)));
+ ret.append(string_VkVideoCapabilityFlagBitsKHR(static_cast<VkVideoCapabilityFlagBitsKHR>(1U << index)));
}
++index;
input_value >>= 1;
}
- if( ret.empty()) ret.append(string_VkVideoCapabilitiesFlagBitsKHR(static_cast<VkVideoCapabilitiesFlagBitsKHR>(0)));
+ if( ret.empty()) ret.append(string_VkVideoCapabilityFlagBitsKHR(static_cast<VkVideoCapabilityFlagBitsKHR>(0)));
return ret;
}
#endif // VK_ENABLE_BETA_EXTENSIONS
@@ -5702,6 +5732,8 @@ static inline const char* string_VkExternalMemoryHandleTypeFlagBitsKHR(VkExterna
return "VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_BIT";
case VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT:
return "VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT";
+ case VK_EXTERNAL_MEMORY_HANDLE_TYPE_RDMA_ADDRESS_BIT_NV:
+ return "VK_EXTERNAL_MEMORY_HANDLE_TYPE_RDMA_ADDRESS_BIT_NV";
case VK_EXTERNAL_MEMORY_HANDLE_TYPE_ZIRCON_VMO_BIT_FUCHSIA:
return "VK_EXTERNAL_MEMORY_HANDLE_TYPE_ZIRCON_VMO_BIT_FUCHSIA";
default:
@@ -6154,6 +6186,8 @@ static inline const char* string_VkDriverIdKHR(VkDriverIdKHR input_value)
return "VK_DRIVER_ID_NVIDIA_PROPRIETARY";
case VK_DRIVER_ID_QUALCOMM_PROPRIETARY:
return "VK_DRIVER_ID_QUALCOMM_PROPRIETARY";
+ case VK_DRIVER_ID_VERISILICON_PROPRIETARY:
+ return "VK_DRIVER_ID_VERISILICON_PROPRIETARY";
default:
return "Unhandled VkDriverIdKHR";
}
@@ -6430,6 +6464,8 @@ static inline const char* string_VkPipelineStageFlagBits2KHR(uint64_t input_valu
return "VK_PIPELINE_STAGE_2_HOST_BIT_KHR";
case VK_PIPELINE_STAGE_2_INDEX_INPUT_BIT_KHR:
return "VK_PIPELINE_STAGE_2_INDEX_INPUT_BIT_KHR";
+ case VK_PIPELINE_STAGE_2_INVOCATION_MASK_BIT_HUAWEI:
+ return "VK_PIPELINE_STAGE_2_INVOCATION_MASK_BIT_HUAWEI";
case VK_PIPELINE_STAGE_2_LATE_FRAGMENT_TESTS_BIT_KHR:
return "VK_PIPELINE_STAGE_2_LATE_FRAGMENT_TESTS_BIT_KHR";
case VK_PIPELINE_STAGE_2_MESH_SHADER_BIT_NV:
@@ -6527,6 +6563,8 @@ static inline const char* string_VkAccessFlagBits2KHR(uint64_t input_value)
return "VK_ACCESS_2_INDIRECT_COMMAND_READ_BIT_KHR";
case VK_ACCESS_2_INPUT_ATTACHMENT_READ_BIT_KHR:
return "VK_ACCESS_2_INPUT_ATTACHMENT_READ_BIT_KHR";
+ case VK_ACCESS_2_INVOCATION_MASK_READ_BIT_HUAWEI:
+ return "VK_ACCESS_2_INVOCATION_MASK_READ_BIT_HUAWEI";
case VK_ACCESS_2_MEMORY_READ_BIT_KHR:
return "VK_ACCESS_2_MEMORY_READ_BIT_KHR";
case VK_ACCESS_2_MEMORY_WRITE_BIT_KHR:
@@ -6757,7 +6795,7 @@ static inline const char* string_VkRasterizationOrderAMD(VkRasterizationOrderAMD
#ifdef VK_ENABLE_BETA_EXTENSIONS
-static inline const char* string_VkVideoEncodeH264CapabilitiesFlagBitsEXT(VkVideoEncodeH264CapabilitiesFlagBitsEXT input_value)
+static inline const char* string_VkVideoEncodeH264CapabilityFlagBitsEXT(VkVideoEncodeH264CapabilityFlagBitsEXT input_value)
{
switch (input_value)
{
@@ -6784,23 +6822,23 @@ static inline const char* string_VkVideoEncodeH264CapabilitiesFlagBitsEXT(VkVide
case VK_VIDEO_ENCODE_H264_CAPABILITY_WEIGHTED_BI_PRED_IMPLICIT_BIT_EXT:
return "VK_VIDEO_ENCODE_H264_CAPABILITY_WEIGHTED_BI_PRED_IMPLICIT_BIT_EXT";
default:
- return "Unhandled VkVideoEncodeH264CapabilitiesFlagBitsEXT";
+ return "Unhandled VkVideoEncodeH264CapabilityFlagBitsEXT";
}
}
-static inline std::string string_VkVideoEncodeH264CapabilitiesFlagsEXT(VkVideoEncodeH264CapabilitiesFlagsEXT input_value)
+static inline std::string string_VkVideoEncodeH264CapabilityFlagsEXT(VkVideoEncodeH264CapabilityFlagsEXT input_value)
{
std::string ret;
int index = 0;
while(input_value) {
if (input_value & 1) {
if( !ret.empty()) ret.append("|");
- ret.append(string_VkVideoEncodeH264CapabilitiesFlagBitsEXT(static_cast<VkVideoEncodeH264CapabilitiesFlagBitsEXT>(1U << index)));
+ ret.append(string_VkVideoEncodeH264CapabilityFlagBitsEXT(static_cast<VkVideoEncodeH264CapabilityFlagBitsEXT>(1U << index)));
}
++index;
input_value >>= 1;
}
- if( ret.empty()) ret.append(string_VkVideoEncodeH264CapabilitiesFlagBitsEXT(static_cast<VkVideoEncodeH264CapabilitiesFlagBitsEXT>(0)));
+ if( ret.empty()) ret.append(string_VkVideoEncodeH264CapabilityFlagBitsEXT(static_cast<VkVideoEncodeH264CapabilityFlagBitsEXT>(0)));
return ret;
}
#endif // VK_ENABLE_BETA_EXTENSIONS
@@ -6911,34 +6949,34 @@ static inline std::string string_VkVideoEncodeH264CreateFlagsEXT(VkVideoEncodeH2
#ifdef VK_ENABLE_BETA_EXTENSIONS
-static inline const char* string_VkVideoDecodeH264FieldLayoutFlagBitsEXT(VkVideoDecodeH264FieldLayoutFlagBitsEXT input_value)
+static inline const char* string_VkVideoDecodeH264PictureLayoutFlagBitsEXT(VkVideoDecodeH264PictureLayoutFlagBitsEXT input_value)
{
switch (input_value)
{
- case VK_VIDEO_DECODE_H264_FIELD_LAYOUT_LINE_INTERLACED_PLANE_BIT_EXT:
- return "VK_VIDEO_DECODE_H264_FIELD_LAYOUT_LINE_INTERLACED_PLANE_BIT_EXT";
- case VK_VIDEO_DECODE_H264_FIELD_LAYOUT_SEPARATE_INTERLACED_PLANE_BIT_EXT:
- return "VK_VIDEO_DECODE_H264_FIELD_LAYOUT_SEPARATE_INTERLACED_PLANE_BIT_EXT";
- case VK_VIDEO_DECODE_H264_PROGRESSIVE_PICTURES_ONLY_EXT:
- return "VK_VIDEO_DECODE_H264_PROGRESSIVE_PICTURES_ONLY_EXT";
+ case VK_VIDEO_DECODE_H264_PICTURE_LAYOUT_INTERLACED_INTERLEAVED_LINES_BIT_EXT:
+ return "VK_VIDEO_DECODE_H264_PICTURE_LAYOUT_INTERLACED_INTERLEAVED_LINES_BIT_EXT";
+ case VK_VIDEO_DECODE_H264_PICTURE_LAYOUT_INTERLACED_SEPARATE_PLANES_BIT_EXT:
+ return "VK_VIDEO_DECODE_H264_PICTURE_LAYOUT_INTERLACED_SEPARATE_PLANES_BIT_EXT";
+ case VK_VIDEO_DECODE_H264_PICTURE_LAYOUT_PROGRESSIVE_EXT:
+ return "VK_VIDEO_DECODE_H264_PICTURE_LAYOUT_PROGRESSIVE_EXT";
default:
- return "Unhandled VkVideoDecodeH264FieldLayoutFlagBitsEXT";
+ return "Unhandled VkVideoDecodeH264PictureLayoutFlagBitsEXT";
}
}
-static inline std::string string_VkVideoDecodeH264FieldLayoutFlagsEXT(VkVideoDecodeH264FieldLayoutFlagsEXT input_value)
+static inline std::string string_VkVideoDecodeH264PictureLayoutFlagsEXT(VkVideoDecodeH264PictureLayoutFlagsEXT input_value)
{
std::string ret;
int index = 0;
while(input_value) {
if (input_value & 1) {
if( !ret.empty()) ret.append("|");
- ret.append(string_VkVideoDecodeH264FieldLayoutFlagBitsEXT(static_cast<VkVideoDecodeH264FieldLayoutFlagBitsEXT>(1U << index)));
+ ret.append(string_VkVideoDecodeH264PictureLayoutFlagBitsEXT(static_cast<VkVideoDecodeH264PictureLayoutFlagBitsEXT>(1U << index)));
}
++index;
input_value >>= 1;
}
- if( ret.empty()) ret.append(string_VkVideoDecodeH264FieldLayoutFlagBitsEXT(static_cast<VkVideoDecodeH264FieldLayoutFlagBitsEXT>(0)));
+ if( ret.empty()) ret.append(string_VkVideoDecodeH264PictureLayoutFlagBitsEXT(static_cast<VkVideoDecodeH264PictureLayoutFlagBitsEXT>(0)));
return ret;
}
#endif // VK_ENABLE_BETA_EXTENSIONS
@@ -7542,8 +7580,8 @@ static inline const char* string_VkGeometryInstanceFlagBitsKHR(VkGeometryInstanc
return "VK_GEOMETRY_INSTANCE_FORCE_OPAQUE_BIT_KHR";
case VK_GEOMETRY_INSTANCE_TRIANGLE_FACING_CULL_DISABLE_BIT_KHR:
return "VK_GEOMETRY_INSTANCE_TRIANGLE_FACING_CULL_DISABLE_BIT_KHR";
- case VK_GEOMETRY_INSTANCE_TRIANGLE_FRONT_COUNTERCLOCKWISE_BIT_KHR:
- return "VK_GEOMETRY_INSTANCE_TRIANGLE_FRONT_COUNTERCLOCKWISE_BIT_KHR";
+ case VK_GEOMETRY_INSTANCE_TRIANGLE_FLIP_FACING_BIT_KHR:
+ return "VK_GEOMETRY_INSTANCE_TRIANGLE_FLIP_FACING_BIT_KHR";
default:
return "Unhandled VkGeometryInstanceFlagBitsKHR";
}
@@ -7575,8 +7613,8 @@ static inline const char* string_VkGeometryInstanceFlagBitsNV(VkGeometryInstance
return "VK_GEOMETRY_INSTANCE_FORCE_OPAQUE_BIT_KHR";
case VK_GEOMETRY_INSTANCE_TRIANGLE_FACING_CULL_DISABLE_BIT_KHR:
return "VK_GEOMETRY_INSTANCE_TRIANGLE_FACING_CULL_DISABLE_BIT_KHR";
- case VK_GEOMETRY_INSTANCE_TRIANGLE_FRONT_COUNTERCLOCKWISE_BIT_KHR:
- return "VK_GEOMETRY_INSTANCE_TRIANGLE_FRONT_COUNTERCLOCKWISE_BIT_KHR";
+ case VK_GEOMETRY_INSTANCE_TRIANGLE_FLIP_FACING_BIT_KHR:
+ return "VK_GEOMETRY_INSTANCE_TRIANGLE_FLIP_FACING_BIT_KHR";
default:
return "Unhandled VkGeometryInstanceFlagBitsNV";
}