Plasma Engine  2.0
Loading...
Searching...
No Matches
Todo List
Member plAiActions::MapMenuActions ()
Is there a way to integrate into ALL document types in a specific menu (ie. project settings)
Member plApplicationFileSystemConfig::Load (plStringView sPath=s_sConfigFile)
Temp fix for backwards compatibility
Struct plArrayMapBase< KEY, VALUE >::Pair
Custom comparer
Member plAssetDocument::InternalAfterSaveDocument () override
Should only be done for platform agnostic assets
Member plAssetDocument::SaveThumbnail (const plImage &img, const ThumbnailInfo &thumbnailInfo) const
A conversion to B8G8R8X8_UNORM currently fails
Member plChunkStreamWriter::EndChunk ()
Write Chunk CRC
Member plColorGradient::EvaluateAlpha (double x, plUInt8 &ref_uiAlpha) const
Use a midpoint interpolation
Member plColorGradient::EvaluateColor (double x, plColor &ref_rgb) const
Use a midpoint interpolation
Member plColorGradient::EvaluateIntensity (double x, float &ref_fIntensity) const
Use a midpoint interpolation
Member plColorGradientAssetData::TickFromTime (plTime time)
Make this a property ?
Member plCommandHistory::MergeLastTwoTransactions ()
This would not be necessary, if hierarchical transactions would not crash
Member plCommandHistory::StartTransaction (const plFormatString &displayString)
Allow to have a limited transaction history and clean up transactions after a while
Member plCurve1D::CreateLinearApproximation (double fMaxError=0.01, plUInt8 uiMaxSubDivs=8)
Since we do this, we actually don't need the linear approximation anymore and could just evaluate the full curve
Member plCurve1DResourceDescriptor::Load (plStreamReader &inout_stream)
We can do this on load, or somehow ensure this is always already correctly saved
Member plDdsFileFormat::WriteImage (plStreamWriter &inout_stream, const plImageView &image, plStringView sFileExtension) const override
sub-image size
Member plDocumentObject::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 plEditAction::plEditAction (const plActionContext &context, const char *szName, ButtonType button)
Icon
Member plEditorShapeIconsExtractor::Extract (const plView &view, const plDynamicArray< const plGameObject * > &visibleObjects, plExtractedRenderData &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 plFileserveClient::EnsureConnected (plTime timeout=plTime::MakeFromSeconds(-5))
Somehow abstract this away ?
Member plFileserveClient::WaitForServerInfo (plTime timeout=plTime::MakeFromSeconds(60.0 *5))
Abstract this somehow ?
Member plFileSystem::ResolvePath (plStringView sPath, plStringBuilder *out_pAbsolutePath, plStringBuilder *out_pDataDirRelativePath, const plDataDirectoryInfo **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 plFmodEventComponent::SetPitch (float f)
Global pitch might better be a bus setting
Member plGALCommandEncoder::SetIndexBuffer (plGALBufferHandle hIndexBuffer)
Assert on index buffer type (if non nullptr)
Member plGALCommandEncoder::SetShader (plGALShaderHandle hShader)
Assert for shader capabilities (supported shader stages etc.)
Member plGALCommandEncoderImplDX11::ReadbackTexturePlatform (const plGALTexture *pTexture) override
Other mip levels etc?
Member plGALDevice::CreateBuffer (const plGALBufferCreationDescription &description, plArrayPtr< const plUInt8 > initialData=plArrayPtr< const plUInt8 >())
Platform independent validation (buffer type supported)
Member plGALDevice::CreateRenderTargetView (const plGALRenderTargetViewCreationDescription &description)
Platform independent validation
Member plGALDevice::CreateSamplerState (const plGALSamplerStateCreationDescription &description)
Platform independent validation
Member plGALDevice::CreateSharedTexture (const plGALTextureCreationDescription &description, plArrayPtr< plGALSystemMemoryDescription > initialData={})
Platform independent validation (desc width & height < platform maximum, format, etc.)
Member plGALDevice::CreateTexture (const plGALTextureCreationDescription &description, plArrayPtr< plGALSystemMemoryDescription > initialData=plArrayPtr< plGALSystemMemoryDescription >())
Platform independent validation (desc width & height < platform maximum, format, etc.)
Member plGALDevice::CreateVertexDeclaration (const plGALVertexDeclarationCreationDescription &description)
Platform independent validation
Member plGALDevice::GetBackBufferTextureFromSwapChain (plGALSwapChainHandle hSwapChain)
Map functions to save on memcpys
Member plGALResourceFormat::IsDepthFormat (plGALResourceFormat::Enum format)
A combination of propertyflags, something like srgb, normalized, ...
Member plGALSwapChainDX11::InitPlatform (plGALDevice *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 plGALTextureDX11::InitFromNativeObject (plGALDeviceDX11 *pDXDevice)
Validation if interface of corresponding texture object exists
Member plGALVertexDeclarationDX11::InitPlatform (plGALDevice *pDevice) override
Expose step rate?
Member plGameApplication::Init_SetupDefaultResources () override
Loading Cubemap Texture
Member plGameObjectDocument::InvalidateGlobalTransformValue (const plDocumentObject *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 plGameObjectGizmoEditTool::UpdateGizmoTransformation ()
Pivot point
Struct plGenericId< InstanceIndexBits, GenerationBits >
Document this better.
Member plJoltActions::MapMenuActions ()
Is there a way to integrate into ALL document types in a specific menu (ie. project settings)
Member plJoltMeshResource::UnloadData (Unload WhatToUnload) override
Compute memory usage
Member plMaterialAssetDocument::InternalTransformAsset (const char *szTargetFile, plStringView sOutputTag, const plPlatformProfile *pAssetProfile, const plAssetFileHeader &AssetHeader, plBitflags< plTransformFlags > transformFlags) override
Rendering platform is currently hardcoded
Member plMaterialAssetDocument::UpdateAssetDocumentInfo (plAssetDocumentInfo *pInfo) const override
The Visual Shader node configuration files would need to be a dependency of the auto-generated shader.
Member plMeshResourceDescriptor::Load (plStreamReader &inout_stream)

Material Path (relative to mesh file)

load from file

Member plMeshResourceDescriptor::Save (plStreamWriter &inout_stream)
Material Path (relative to mesh file)
Member plOpenDdlParser::OnPrimitiveBool (plUInt32 count, const bool *pData, bool bThisIsAll)=0
Currently not supported
Member plParticleBehavior_ColorGradient::Process (plUInt64 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 plParticleBehavior_FadeOut::Process (plUInt64 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 plParticleBehavior_Raycast::Process (plUInt64 uiNumElements) override
Get current element index from iterator ?
Member plParticleComponent::SerializeComponent (plWorldWriter &inout_stream) const override
store effect state
Member plParticleEffectResource::UnloadData (Unload WhatToUnload) override
Clear something
Member plParticleEffectResource::UpdateMemoryUsage (MemoryUsage &out_NewMemoryUsage) override
Better statistics
Member plParticleFinalizer_Age::Process (plUInt64 uiNumElements) override
Get current element index from iterator ?
Member plParticleTypeLight::CreateRequiredStreams () override
Initialize (instead of during extraction)
Member plParticleTypeTrail::ExtractTypeRenderData (plMsgExtractRenderData &ref_msg, const plTransform &instanceTransform) const override
This loop could be done without a condition
Member plParticleTypeTrail::GetMaxParticleRadius (float fParticleSize) const override
This is a hacky guess, one would actually need to inspect the trail positions
Member plParticleTypeTrail::m_TrailPoints64
Use a shared freelist across effects instead
Member plPhantomRttiManager::RegisterType (plReflectedTypeDescriptor &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 plProcessingStream::SetSize (plUInt64 uiNumElements)
Allow to reuse memory from a pool ?
Member plPropertyAnimComponent::SerializeComponent (plWorldWriter &inout_stream) const override
Somehow store the animation state (not necessary for new scenes, but for quicksaves)
Member plQtColorGradientWidget::mouseMoveEvent (QMouseEvent *event) override
Why not += ?
Member plQtDataWidget::plQtDataWidget (QWidget *pParent=0)
Improve Data Transfer UI
Member plQtDuplicateDlg::plQtDuplicateDlg (QWidget *pParent=nullptr)

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

Grouping of duplicates not implemented yet

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

Scripting integration

Scripting integration

This will probably give precision issues pretty quickly

Member plSceneActions::MapToolbarActions (plStringView sMapping)
This works incorrectly with value 6.0f -> it places the action inside the snap category
Member plSelectionContext::DoKeyPressEvent (QKeyEvent *e) override
Handle the current cursor (icon) across all active input contexts
Member plShadowPool::AddPointLight (const plPointLightComponent *pPointLight, float fScreenSpaceSize, const plView *pReferenceView)
expose somewhere
Member plShadowPool::AddSpotLight (const plSpotLightComponent *pSpotLight, float fScreenSpaceSize, const plView *pReferenceView)
expose somewhere
Member plSimdMat4f::Invert (const plSimdFloat &fEpsilon=plMath::SmallEpsilon< float >())
optimize
Member plSimdMath::Exp (const plSimdVec4f &f)
optimize these methods if needed
Member plSimdQuat::GetRotationAxisAndAngle (plSimdVec4f &ref_vAxis, plSimdFloat &ref_fAngle, const plSimdFloat &fEpsilon=plMath::DefaultEpsilon< float >()) const
optimize
Member plSimdQuat::MakeFromAxisAndAngle (const plSimdVec4f &vRotationAxis, const plSimdFloat &fAngle)
optimize
Member plSingletonRegistry::GetSingletonInstance ()
Events for new/deleted singletons -> plInspector integration
Member plSoundBankAssetDocument::InternalTransformAsset (plStreamWriter &stream, plStringView sOutputTag, const plPlatformProfile *pAssetProfile, const plAssetFileHeader &AssetHeader, plBitflags< plTransformFlags > transformFlags) override
For platform specific sound banks, adjust the path to point to the correct file
Member plSurfaceResource::InteractWithSurface (plWorld *pWorld, plGameObjectHandle hObject, const plVec3 &vPosition, const plVec3 &vSurfaceNormal, const plVec3 &vIncomingDirection, const plTempHashedString &sInteraction, const plUInt16 *pOverrideTeamID, float fImpulseSqr=0.0f) const
do random deviation, make sure to clamp max deviation angle
Class plTelemetry
document and test (and finish)
Member plTextureResourceLoader::OpenDataStream (const plResource *pResource) override
A conversion to B8G8R8X8_UNORM currently fails
Member plTextureUtils::ImageFormatToGalFormat (plImageFormat::Enum format, bool bSRGB)
Not supported by some GPUs ?
Member plTokenizer::GetNextLine (plUInt32 &ref_uiFirstToken, plHybridArray< const plToken *, 32 > &ref_tokens) const
Theoretically, if the line ends with an identifier, and the next directly starts with one again,
Class plTransformTemplate< Type >
Fix docs and unit tests
Member plVisualShaderNodeManager::InternalCanAdd (const plRTTI *pRtti, const plDocumentObject *pParent, plStringView sParentProperty, const plVariant &index) const override
This is an arbitrary limit and it does not count how many nodes reference the same texture
Member plWindow::Initialize ()

Expose icon functionality somehow (101 == IDI_ICON1, see resource.h)

test & support for multiple windows

Member plWindowOutputTargetGAL::CaptureImage (plImage &out_image) override
Make this more efficient