- Struct xiiArrayMapBase< KEY, VALUE >::Pair
- Custom comparer
- Member xiiAssetDocument::InternalAfterSaveDocument () override
- Should only be done for platform agnostic assets
- Member xiiAssetDocument::SaveThumbnail (const xiiImage &img, const ThumbnailInfo &thumbnailInfo) const
- A conversion to B8G8R8X8_UNORM currently fails
- Member xiiChunkStreamWriter::EndChunk ()
- Write Chunk CRC
- Member xiiColorGradient::EvaluateAlpha (double x, xiiUInt8 &ref_uiAlpha) const
- Use a midpoint interpolation
- Member xiiColorGradient::EvaluateColor (double x, xiiColor &ref_rgb) const
- Use a midpoint interpolation
- Member xiiColorGradient::EvaluateIntensity (double x, float &ref_fIntensity) const
- Use a midpoint interpolation
- Member xiiColorGradientAssetData::TickFromTime (xiiTime time)
- Make this a property ?
- Member xiiCommandHistory::MergeLastTwoTransactions ()
- This would not be necessary, if hierarchical transactions would not crash
- Member xiiCommandHistory::StartTransaction (const xiiFormatString &displayString)
- Allow to have a limited transaction history and clean up transactions after a while
- Member xiiCopyTexturePass::Execute (const xiiRenderViewContext &renderViewContext, const xiiArrayPtr< xiiRenderPipelinePassConnection *const > inputs, const xiiArrayPtr< xiiRenderPipelinePassConnection *const > outputs) override
- GraphicsCore: Use a shader when the format is not an exact match.
- Member xiiCurve1D::CreateLinearApproximation (double fMaxError=0.01, xiiUInt8 uiMaxSubDivs=8)
- Since we do this, we actually don't need the linear approximation anymore and could just evaluate the full curve
- Member xiiCurve1DResourceDescriptor::Load (xiiStreamReader &ref_stream)
- We can do this on load, or somehow ensure this is always already correctly saved
- Member xiiDdsFileFormat::WriteImage (xiiStreamWriter &inout_stream, const xiiImageView &image, xiiStringView sFileExtension) const override
- sub-image size
- Member xiiDocumentObject::IsOnHeap () const
- 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 xiiEditorShapeIconsExtractor::Extract (const xiiView &view, const xiiDynamicArray< const xiiGameObject * > &visibleObjects, xiiExtractedRenderData &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 xiiEngineProcessDocumentContext::UpdateDocumentContext ()
- Support depth pitch.
- Member xiiFileserveClient::EnsureConnected (xiiTime timeout=xiiTime::MakeFromSeconds(-5))
- Somehow abstract this away ?
- Member xiiFileserveClient::WaitForServerInfo (xiiTime timeout=xiiTime::MakeFromSeconds(60.0 *5))
- Abstract this somehow ?
- Member xiiFileSystem::ResolvePath (xiiStringView sPath, xiiStringBuilder *out_pAbsolutePath, xiiStringBuilder *out_pDataDirRelativePath, const xiiDataDirectoryInfo **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 xiiGALBufferVulkan::InitPlatform (const xiiGALBufferData *pInitialData) override final
- GraphicsVulkan: Selectively utilize vk::SharingMode::eConcurrent for multiple queue family's ownership of the Vulkan buffer.
- Member xiiGALCommandList::BeginRenderPass (const xiiGALBeginRenderPassDescription &beginRenderPass)
GraphicsFoundation: Potentially reset the current render targets here.
GraphicsFoundation: Implement render pass attachment handling in the GAL, as well as state transitions in the begin render pass description.
- Member xiiGALCommandListUtilities::BindMaterial (xiiSharedPtr< xiiGALCommandList > pCommandList, const xiiMaterialResourceHandle &hMaterial)
- Create or update pipeline state.
- Member xiiGALDevice::CreatePipelineResourceSignature (xiiGALPipelineResourceSignatureCreationDescription &description)
- Verify combined texture samplers, all samplers should be assigned to textures when combined texture samplers are used, all immutable samplers should be assigned to textures or samplers when combined texture samplers are used.
- Member xiiGALDevice::CreateRenderPass (const xiiGALRenderPassCreationDescription &description)
GraphicsFoundation: Use VkPhysicalDeviceFragmentShadingRatePropertiesKHR::maxFragmentShadingRateAttachmentTexelSizeAspectRatio.
GraphicsFoundation: Check render pass dependency source and destination stage mask is set to the undefined pipeline stage.
- Member xiiGALDevice::CreateTexture (const xiiGALTextureCreationDescription &description, const xiiGALTextureData *pInitialData=nullptr)
GraphicsFoundation: Vulkan allows the creation of 2D texture arrays, and using a single slice for view even if xiiGALShadingRateCapabilityFlags::TextureArray is not supported by the device.
GraphicsFoundation: Validate texture mip size to the tile size property.
- Member xiiGALDynamicBuffer::xiiGALDynamicBuffer (xiiSharedPtr< xiiGALDevice > pDevice, const xiiGALBufferCreationDescription &description)
- Support sparse buffer.
- Member xiiGALShaderVariableDescription::CopyDataFromVariant (xiiUInt8 *pDestination, const xiiVariant *pValue, const xiiGALShaderVariableDescription &description)
- Perform row-column major conversion on matrices.
- Member xiiGALTextureUtilities::GetSparseTextureProperties (xiiEnum< xiiGALResourceFormat > format, xiiEnum< xiiGALResourceDimension > dimension, xiiUInt32 uiSampleCount)
- GraphicsFoundation: To be implemented.
- Member xiiGALTextureVulkan::InitPlatform (const xiiGALTextureData *pInitialData) override final
- GraphicsVulkan: Selectively utilize vk::SharingMode::eConcurrent for multiple queue family's ownership of the Vulkan image.
- Member xiiGameApplication::Init_SetupDefaultResources () override
- Loading Cubemap Texture
- Member xiiGameObjectDocument::InvalidateGlobalTransformValue (const xiiDocumentObject *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 xiiGameObjectGizmoEditTool::UpdateGizmoTransformation ()
- Pivot point
- Struct xiiGenericId< InstanceIndexBits, GenerationBits >
- Document this better.
- Member xiiInstanceData::UpdateInstanceData (xiiSharedPtr< xiiGALCommandList > pCommandList, xiiUInt32 uiCount)
- Use dynamic buffer and fix the offset calculation not being applied on the GPU.
- Member xiiMaterialAssetDocument::InternalTransformAsset (xiiStringView sTargetFile, xiiStringView sOutputTag, const xiiPlatformProfile *pAssetProfile, const xiiAssetFileHeader &AssetHeader, xiiBitflags< xiiTransformFlags > transformFlags) override
- Rendering platform is currently hardcoded
- Member xiiMaterialAssetDocument::UpdateAssetDocumentInfo (xiiAssetDocumentInfo *pInfo) const override
- The Visual Shader node configuration files would need to be a dependency of the auto-generated shader.
- Member xiiMeshResourceDescriptor::Load (xiiStreamReader &inout_stream)
Material Path (relative to mesh file)
load from file
- Member xiiMeshResourceDescriptor::Save (xiiStreamWriter &inout_stream)
- Material Path (relative to mesh file)
- Member xiiOpenDdlParser::OnPrimitiveBool (xiiUInt32 count, const bool *pData, bool bThisIsAll)=0
- Currently not supported
- Member xiiPhantomRttiManager::RegisterType (xiiReflectedTypeDescriptor &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 xiiProcessingStream::SetSize (xiiUInt64 uiNumElements)
- Allow to reuse memory from a pool ?
- Member xiiPropertyAnimComponent::SerializeComponent (xiiWorldWriter &inout_stream) const override
- Somehow store the animation state (not necessary for new scenes, but for quicksaves)
- Member xiiQtColorGradientWidget::mouseMoveEvent (QMouseEvent *event) override
- Why not += ?
- Member xiiQtDataWidget::xiiQtDataWidget (ads::CDockManager *pDockManager, QWidget *pParent=nullptr)
- Improve Data Transfer UI
- Member xiiQtDuplicateDlg::xiiQtDuplicateDlg (QWidget *pParent=nullptr)
Boundingbox helper not implemented yet (get bbox size from selection)
Grouping of duplicates not implemented yet
- Member xiiQtEngineViewWidget::UpdateCameraInterpolation ()
- Hard coded up vector
- Member xiiQtPropertyEditorTagSetWidget::OnInit () override
- xiiStringView is POD? -> array<stringview>::Remove(stringview) fails, because of memcmp
- Member xiiQtReflectionWidget::ProcessTelemetry (void *pUnuseed)
- should read the message handlers here
- Member xiiQtShortcutEditorDlg::xiiQtShortcutEditorDlg (QWidget *pParent)
- Instead of removing &, replace it by underlined text (requires formatted text output)
- Member xiiRandom::DoubleMinMax (double fMinValue, double fMaxValue)
- Probably not correct
- Member xiiRandom::DoubleVariance (double fValue, double fVariance)
- Test whether this is actually correct
- Member xiiRandom::DoubleVarianceAroundZero (double fAbsMaxValue)
- Test whether this is actually correct
- Class xiiRemoteMessage
- Add move semantics for xiiRemoteMessage
- Member xiiResourceFlags::ResourceHasFallback
- Implement NoFileAccessRequired.
- Member xiiRotorComponent::Update ()
Scripting integration
Scripting integration
This will probably give precision issues pretty quickly
- Member xiiSceneActions::MapToolbarActions (xiiStringView sMapping)
- This works incorrectly with value 6.0f -> it places the action inside the snap category
- Member xiiSelectionContext::DoKeyPressEvent (QKeyEvent *e) override
- Handle the current cursor (icon) across all active input contexts
- Member xiiShadowPool::AddPointLight (const xiiPointLightComponent *pPointLight, float fScreenSpaceSize, const xiiView *pReferenceView)
- expose somewhere
- Member xiiShadowPool::AddSpotLight (const xiiSpotLightComponent *pSpotLight, float fScreenSpaceSize, const xiiView *pReferenceView)
- expose somewhere
- Member xiiSimdMat4d::Invert (const xiiSimdDouble &fEpsilon=xiiMath::SmallEpsilon< double >())
- Optimize
- Member xiiSimdMat4f::Invert (const xiiSimdFloat &fEpsilon=xiiMath::SmallEpsilon< float >())
- Optimize
- Member xiiSimdMath::Exp (const xiiSimdVec4f &f)
- optimize these methods if needed
- Member xiiSimdQuat::GetRotationAxisAndAngle (xiiSimdVec4f &ref_vAxis, xiiSimdFloat &ref_fAngle, const xiiSimdFloat &fEpsilon=xiiMath::DefaultEpsilon< float >()) const
- optimize
- Member xiiSimdQuat::MakeFromAxisAndAngle (const xiiSimdVec4f &vRotationAxis, const xiiSimdFloat &fAngle)
- optimize
- Member xiiSimdQuatd::GetRotationAxisAndAngle (xiiSimdVec4d &ref_vAxis, xiiSimdDouble &ref_fAngle, const xiiSimdDouble &fEpsilon=xiiMath::DefaultEpsilon< double >()) const
- optimize
- Member xiiSimdQuatd::MakeFromAxisAndAngle (const xiiSimdVec4d &vRotationAxis, const xiiSimdDouble &fAngle)
- optimize
- Member xiiSingletonRegistry::GetSingletonInstance ()
- Events for new/deleted singletons -> xiiInspector integration
- Member xiiSurfaceResource::InteractWithSurface (xiiWorld *pWorld, xiiGameObjectHandle hObject, const xiiVec3 &vPosition, const xiiVec3 &vSurfaceNormal, const xiiVec3 &vIncomingDirection, const xiiTempHashedString &sInteraction, const xiiUInt16 *pOverrideTeamID, float fImpulseSqr=0.0f) const
- do random deviation, make sure to clamp max deviation angle
- Class xiiTelemetry
- document and test (and finish)
- Member xiiTextureResourceLoader::OpenDataStream (const xiiResource *pResource) override
- A conversion to B8G8R8X8_UNORM currently fails
- Member xiiTextureUtils::ImageFormatToGalFormat (xiiEnum< xiiImageFormat > format, bool bSRGB)
- Not supported by some GPUs ?
- Member xiiTokenizer::GetNextLine (xiiUInt32 &ref_uiFirstToken, xiiHybridArray< const xiiToken *, 32 > &ref_tokens) const
- Theoretically, if the line ends with an identifier, and the next directly starts with one again,
- Class xiiTransformTemplate< Type >
- Fix docs and unit tests
- Member xiiVisualShaderNodeManager::InternalCanAdd (const xiiRTTI *pRtti, const xiiDocumentObject *pParent, xiiStringView sParentProperty, const xiiVariant &index) const override
- This is an arbitrary limit and it does not count how many nodes reference the same texture
- Member xiiWindowOutputTargetGAL::CaptureImage (xiiImage &out_image) override
- Support depth pitch.