- 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