ezEngine  Release 25.03
Todo List
Member ezAiActions::MapMenuActions ()
Is there a way to integrate into ALL document types in a specific menu (ie. project settings)
Member ezApplicationFileSystemConfig::Load (ezStringView sPath=s_sConfigFile)
Temp fix for backwards compatibility
Class ezArrayMapBase< KEY, VALUE >::Pair
Custom comparer
Member ezAssetDocument::InternalAfterSaveDocument () override
Should only be done for platform agnostic assets
Member ezAssetDocument::SaveThumbnail (const ezImage &img, const ThumbnailInfo &thumbnailInfo) const
A conversion to B8G8R8X8_UNORM currently fails
Member ezChunkStreamWriter::EndChunk ()
Write Chunk CRC
Member ezColorGradient::EvaluateAlpha (double x, ezUInt8 &ref_uiAlpha) const
Use a midpoint interpolation
Member ezColorGradient::EvaluateColor (double x, ezColor &ref_rgb) const
Use a midpoint interpolation
Member ezColorGradient::EvaluateIntensity (double x, float &ref_fIntensity) const
Use a midpoint interpolation
Member ezColorGradientAssetData::TickFromTime (ezTime time)
Make this a property ?
Member ezCommandHistory::MergeLastTwoTransactions ()
This would not be necessary, if hierarchical transactions would not crash
Member ezCommandHistory::StartTransaction (const ezFormatString &displayString)
Allow to have a limited transaction history and clean up transactions after a while
Member ezCurve1D::CreateLinearApproximation (double fMaxError=0.01, ezUInt8 uiMaxSubDivs=8)
Since we do this, we actually don't need the linear approximation anymore and could just evaluate the full curve
Member ezCurve1DResourceDescriptor::Load (ezStreamReader &inout_stream)
We can do this on load, or somehow ensure this is always already correctly saved
Member ezDdsFileFormat::WriteImage (ezStreamWriter &inout_stream, const ezImageView &image, ezStringView sFileExtension) const override
sub-image size
Member ezDocumentObject::IsOnHeap () const
Christopher: This crashes when the pointer is nullptr, which appears to be possible It happened for me when duplicating (CTRL+D) 2 objects 2 times then moving them and finally undoing everything
Member ezEditorShapeIconsExtractor::Extract (const ezView &view, const ezDynamicArray< const ezGameObject * > &visibleObjects, ezExtractedRenderData &ref_extractedRenderData) override
Once we have a solution for objects that only have a shape icon we can switch this loop to use visibleObjects instead.
Member ezFileserveClient::EnsureConnected (ezTime timeout=ezTime::MakeFromSeconds(-5))
Somehow abstract this away ?
Member ezFileserveClient::WaitForServerInfo (ezTime timeout=ezTime::MakeFromSeconds(60.0 *5))
Abstract this somehow ?
Member ezFileSystem::ResolvePath (ezStringView sPath, ezStringBuilder *out_pAbsolutePath, ezStringBuilder *out_pDataDirRelativePath, const ezDataDirectoryInfo **out_pDataDir=nullptr)

We might also need the none-redirected path as an output

We might also need the none-redirected path as an output

Member ezGALCommandEncoder::SetIndexBuffer (ezGALBufferHandle hIndexBuffer)
Assert on index buffer type (if non nullptr)
Member ezGALCommandEncoder::SetShader (ezGALShaderHandle hShader)
Assert for shader capabilities (supported shader stages etc.)
Member ezGALDevice::CreateBuffer (const ezGALBufferCreationDescription &description, ezArrayPtr< const ezUInt8 > initialData=ezArrayPtr< const ezUInt8 >())
Platform independent validation (buffer type supported)
Member ezGALDevice::CreateRenderTargetView (const ezGALRenderTargetViewCreationDescription &description)
Platform independent validation
Member ezGALDevice::CreateSamplerState (const ezGALSamplerStateCreationDescription &description)
Platform independent validation
Member ezGALDevice::CreateSharedTexture (const ezGALTextureCreationDescription &description, ezArrayPtr< ezGALSystemMemoryDescription > initialData={})
Platform independent validation (desc width & height < platform maximum, format, etc.)
Member ezGALDevice::CreateTexture (const ezGALTextureCreationDescription &description, ezArrayPtr< ezGALSystemMemoryDescription > initialData=ezArrayPtr< ezGALSystemMemoryDescription >())
Platform independent validation (desc width & height < platform maximum, format, etc.)
Member ezGALDevice::CreateVertexDeclaration (const ezGALVertexDeclarationCreationDescription &description)
Platform independent validation
Member ezGALResourceFormat::IsDepthFormat (ezGALResourceFormat::Enum format)
A combination of propertyflags, something like srgb, normalized, ...
Member ezGALSwapChainDX11::InitPlatform (ezGALDevice *pDevice) override

The mode switch needs to be handled (ResizeBuffers + communication with engine)

Get from MSAA value of the m_WindowDesc

Get from enumeration of available modes

Member ezGALTextureDX11::InitFromNativeObject (ezGALDeviceDX11 *pDXDevice)
Validation if interface of corresponding texture object exists
Member ezGALVertexDeclarationDX11::InitPlatform (ezGALDevice *pDevice) override
Expose step rate?
Member ezGameApplication::Init_SetupDefaultResources () override
Loading Cubemap Texture
Member ezGameObjectDocument::InvalidateGlobalTransformValue (const ezDocumentObject *pObject) const
If all parents are always inserted as well, we can stop once an object is found that is not in the list
Member ezGameObjectGizmoEditTool::UpdateGizmoTransformation ()
Pivot point
Class ezGenericId< InstanceIndexBits, GenerationBits >
Document this better.
Member ezJoltActions::MapMenuActions ()
Is there a way to integrate into ALL document types in a specific menu (ie. project settings)
Member ezJoltMeshResource::UnloadData (Unload WhatToUnload) override
Compute memory usage
Member ezMaterialAssetDocument::InternalTransformAsset (const char *szTargetFile, ezStringView sOutputTag, const ezPlatformProfile *pAssetProfile, const ezAssetFileHeader &AssetHeader, ezBitflags< ezTransformFlags > transformFlags) override
Rendering platform is currently hardcoded
Member ezMaterialAssetDocument::UpdateAssetDocumentInfo (ezAssetDocumentInfo *pInfo) const override
The Visual Shader node configuration files would need to be a dependency of the auto-generated shader.
Member ezMeshResourceDescriptor::Load (ezStreamReader &inout_stream)

Material Path (relative to mesh file)

load from file

Member ezMeshResourceDescriptor::Save (ezStreamWriter &inout_stream)
Material Path (relative to mesh file)
Member ezOpenDdlParser::OnPrimitiveBool (ezUInt32 count, const bool *pData, bool bThisIsAll)=0
Currently not supported
Member ezParticleBehavior_ColorGradient::Process (ezUInt64 uiNumElements) override
Use level of detail to reduce the update interval further up close, with a high interval, animations appear choppy, especially when fading stuff out at the end
Member ezParticleBehavior_FadeOut::Process (ezUInt64 uiNumElements) override
Use level of detail to reduce the update interval further up close, with a high interval, animations appear choppy, especially when fading stuff out at the end
Member ezParticleBehavior_Raycast::Process (ezUInt64 uiNumElements) override
Get current element index from iterator ?
Member ezParticleComponent::SerializeComponent (ezWorldWriter &inout_stream) const override
store effect state
Member ezParticleEffectResource::UnloadData (Unload WhatToUnload) override
Clear something
Member ezParticleEffectResource::UpdateMemoryUsage (MemoryUsage &out_NewMemoryUsage) override
Better statistics
Member ezParticleFinalizer_Age::Process (ezUInt64 uiNumElements) override
Get current element index from iterator ?
Member ezParticleTypeLight::CreateRequiredStreams () override
Initialize (instead of during extraction)
Member ezParticleTypeTrail::ExtractTypeRenderData (ezMsgExtractRenderData &ref_msg, const ezTransform &instanceTransform) const override
This loop could be done without a condition
Member ezParticleTypeTrail::GetMaxParticleRadius (float fParticleSize) const override
This is a hacky guess, one would actually need to inspect the trail positions
Member ezParticleTypeTrail::m_TrailPoints64
Use a shared freelist across effects instead
Member ezPhantomRttiManager::RegisterType (ezReflectedTypeDescriptor &ref_desc)
Had to increase the recursion depth to allow registering phantom types that are based on actual types coming from the engine process
Member ezPhysXActions::MapMenuActions ()
Is there a way to integrate into ALL document types in a specific menu (ie. project settings)
Member ezProcessingStream::SetSize (ezUInt64 uiNumElements)
Allow to reuse memory from a pool ?
Member ezPropertyAnimComponent::SerializeComponent (ezWorldWriter &inout_stream) const override
Somehow store the animation state (not necessary for new scenes, but for quicksaves)
Member ezPxCharacterControllerComponent::Update ()
allow other gravity directions
Member ezPxMeshResource::UnloadData (Unload WhatToUnload) override
Compute memory usage
Member ezQtColorGradientWidget::mouseMoveEvent (QMouseEvent *event) override
Why not += ?
Member ezQtDataWidget::ezQtDataWidget (ads::CDockManager *pDockManager, QWidget *pParent=0)
Improve Data Transfer UI
Member ezQtDuplicateDlg::ezQtDuplicateDlg (QWidget *pParent=nullptr)

Boundingbox helper not implemented yet (get bbox size from selection)

Grouping of duplicates not implemented yet

Member ezQtEngineViewWidget::UpdateCameraInterpolation ()
Hard coded up vector
Member ezQtPropertyEditorTagSetWidget::OnInit () override
ezStringView is POD? -> array<stringview>::Remove(stringview) fails, because of memcmp
Member ezQtReflectionWidget::ProcessTelemetry (void *pUnuseed)
should read the message handlers here
Member ezQtShortcutEditorDlg::ezQtShortcutEditorDlg (QWidget *pParent)
Instead of removing &, replace it by underlined text (requires formatted text output)
Member ezRandom::DoubleMinMax (double fMinValue, double fMaxValue)
Probably not correct
Member ezRandom::DoubleVariance (double fValue, double fVariance)
Test whether this is actually correct
Member ezRandom::DoubleVarianceAroundZero (double fAbsMaxValue)
Test whether this is actually correct
Member ezRcAgentComponent::FindNavMeshPolyAt (const ezVec3 &vPosition, dtPolyRef &out_polyRef, ezVec3 *out_pAdjustedPosition=nullptr, float fPlaneEpsilon=0.01f, float fHeightEpsilon=1.0f) const
Hard-coded filter
Member ezRcAgentComponent::HasReachedPosition (const ezVec3 &vPos, float fMaxDistance) const
The comment below may not always be true
Class ezRemoteMessage
Add move semantics for ezRemoteMessage
Member ezResourceFlags::ResourceHasFallback
implement NoFileAccessRequired
Member ezRotorComponent::Update ()

Scripting integration

Scripting integration

This will probably give precision issues pretty quickly

Member ezSceneActions::MapToolbarActions (ezStringView sMapping)
This works incorrectly with value 6.0f -> it places the action inside the snap category
Member ezSelectionContext::DoKeyPressEvent (QKeyEvent *e) override
Handle the current cursor (icon) across all active input contexts
Member ezShadowPool::AddPointLight (const ezPointLightComponent *pPointLight, float fScreenSpaceSize, const ezView *pReferenceView)
expose somewhere
Member ezShadowPool::AddSpotLight (const ezSpotLightComponent *pSpotLight, float fScreenSpaceSize, const ezView *pReferenceView)
expose somewhere
Member ezSimdMat4f::Invert (const ezSimdFloat &fEpsilon=ezMath::SmallEpsilon< float >())
optimize
Member ezSimdMath::Exp (const ezSimdVec4f &f)
optimize these methods if needed
Member ezSimdQuat::GetRotationAxisAndAngle (ezSimdVec4f &ref_vAxis, ezSimdFloat &ref_fAngle, const ezSimdFloat &fEpsilon=ezMath::DefaultEpsilon< float >()) const
optimize
Member ezSimdQuat::MakeFromAxisAndAngle (const ezSimdVec4f &vRotationAxis, const ezSimdFloat &fAngle)
optimize
Member ezSingletonRegistry::GetSingletonInstance ()
Events for new/deleted singletons -> ezInspector integration
Member ezSoundBankAssetDocument::InternalTransformAsset (ezStreamWriter &stream, ezStringView sOutputTag, const ezPlatformProfile *pAssetProfile, const ezAssetFileHeader &AssetHeader, ezBitflags< ezTransformFlags > transformFlags) override
For platform specific sound banks, adjust the path to point to the correct file
Member ezSurfaceResource::InteractWithSurface (ezWorld *pWorld, ezGameObjectHandle hObject, const ezVec3 &vPosition, const ezVec3 &vSurfaceNormal, const ezVec3 &vIncomingDirection, const ezTempHashedString &sInteraction, const ezUInt16 *pOverrideTeamID, float fImpulseSqr=0.0f) const
do random deviation, make sure to clamp max deviation angle
Class ezTelemetry
document and test (and finish)
Member ezTextureResourceLoader::OpenDataStream (const ezResource *pResource) override
A conversion to B8G8R8X8_UNORM currently fails
Member ezTextureUtils::ImageFormatToGalFormat (ezImageFormat::Enum format, bool bSRGB)
Not supported by some GPUs ?
Member ezTokenizer::GetNextLine (ezUInt32 &ref_uiFirstToken, ezHybridArray< const ezToken *, 32 > &ref_tokens) const
Theoretically, if the line ends with an identifier, and the next directly starts with one again,
Class ezTransformTemplate< Type >
Fix docs and unit tests
Member ezVisualShaderNodeManager::InternalCanAdd (const ezRTTI *pRtti, const ezDocumentObject *pParent, ezStringView sParentProperty, const ezVariant &index) const override
This is an arbitrary limit and it does not count how many nodes reference the same texture