Urho3D
Todo List
Member Dviglo::AnimatedModel::OnWorldBoundingBoxUpdate () override
If it's a skinned attachment that does not cover the whole body, it will have unnecessarily large bounds
Member Dviglo::AnimatedModel::UpdateBoneBoundingBox ()
The sphere radius should be multiplied with bone scale
Member Dviglo::Animation::CreateTrack (const String &name)
When tracks / keyframes are created dynamically, memory use is not updated
Member Dviglo::Camera::GetFrustumSize (Vector3 &near, Vector3 &far) const
Necessary? Explain this
Member Dviglo::CollisionGeometryDataCache
Remove duplicate declaration
Member Dviglo::Connection::ProcessExistingNode (Node *node, NodeReplicationState &nodeState)
Searching for the component is a potential CPU hotspot. It should be cached
Member Dviglo::Connection::ProcessSceneUpdate (int msgID, MemoryBuffer &msg)
On mobile devices processing this message may potentially cause a crash if it attempts to load new GPU resources while the application is minimized
Member Dviglo::Constraint::OnMarkedDirty (Node *node) override
This does not catch the connected body node's scale changing
Member Dviglo::Context::~Context () override
Context should not need to know about subsystems
Member Dviglo::CrowdAgent::OnMarkedDirty (Node *node) override
Handle node transform being dirtied.
Member Dviglo::DecalSet::AddDecal (Drawable *target, const Vector3 &worldPosition, const Quaternion &worldRotation, float size, float aspectRatio, float depth, const Vector2 &topLeftUV, const Vector2 &bottomRightUV, float timeToLive=0.0f, float normalCutoff=0.1f, unsigned subGeometry=M_MAX_UNSIGNED)
target transform is not right if adding a decal to StaticModelGroup
Member Dviglo::DecalSet::OnWorldBoundingBoxUpdate () override
The sphere radius should be multiplied with bone scale
Member Dviglo::EventReceiverGroup::EndSendEvent ()
Could be optimized by erase-swap, but this keeps the receiver order
Member Dviglo::File::Read (void *dest, unsigned size) override
Handle errors
Member Dviglo::FileSystem::ScanDirInternal (Vector< String > &result, String path, const String &startPath, const String &filter, unsigned flags, bool recursive) const
Filename may be unnormalized Unicode on Mac OS X. Re-normalize as necessary
Member Dviglo::Graphics::Clear (ClearTargetFlags flags, const Color &color=Color(0.0f, 0.0f, 0.0f, 0.0f), float depth=1.0f, unsigned stencil=0)
Any user-set scissor test will be lost
Member Dviglo::Image::Resize (int width, int height)
Reducing image size does not sample all needed pixels
Member Dviglo::Input::AddScreenJoystick (XMLFile *layoutFile=nullptr, XMLFile *styleFile=nullptr)

After a real joystick has been plugged in 1073741824 times, the ranges will overlap

Axis emulation for screen joystick is not fully supported yet.

Member Dviglo::Input::ResetState ()
Check if resetting joystick state on input focus loss is even necessary
Member Dviglo::JSONValue::GetVariantMap () const
Ideally this should allow any strings, but for now the convention is that the keys need to be hexadecimal StringHashes
Member Dviglo::NavigationMesh::BuildTile (Vector< NavigationGeometryInfo > &geometryList, int x, int z)
Assignment of flags from navigation areas?
Member Dviglo::NavigationMesh::CollectGeometries (Vector< NavigationGeometryInfo > &geometryList, Node *node, HashSet< Node * > &processedNodes, bool recursive)
Evaluate whether should handle other types. Now StaticModel & TerrainPatch are supported, others skipped
Member Dviglo::ParticleEffect2D::Clone (const String &cloneName=String::EMPTY) const
Zero if source was created programmatically
Member Dviglo::ParticleEffect::Clone (const String &cloneName=String::EMPTY) const
Zero if source was created programmatically
Member Dviglo::Renderer::DrawDebugGeometry (bool depthTest)
Because debug geometry is per-scene, if two cameras show views of the same area, occlusion is not shown correctly
Member Dviglo::Renderer::GetScreenBuffer (int width, int height, unsigned format, int multiSample, bool autoResolve, bool cubemap, bool filtered, bool srgb, unsigned persistentKey=0)
Mipmaps disabled for now. Allow to request mipmapped buffer?
Member Dviglo::Renderer::GetShadowMap (Light *light, Camera *camera, unsigned viewWidth, unsigned viewHeight)
Allow to specify maximum shadow maps per resolution, as smaller shadow maps take less memory
Member Dviglo::Renderer::UpdateQueuedViewport (unsigned index)
May result in incorrect debug geometry culling if the same scene is drawn from multiple viewports
Member Dviglo::Scene::UpdateAsyncLoading ()
Works poorly in scenes where one root-level child node contains all content
Member Dviglo::Spline::BezierInterpolation (const Vector< Variant > &knots, float t) const
Do not allocate a new vector each time
Member Dviglo::Spline::GetPoint (float f) const
Do not allocate a new vector each time
Member Dviglo::Sprite::IsWithinScissor (const IntRect &currentScissor) override
Implement properly, for now just checks visibility flag
Member Dviglo::Terrain::GetHeight (const Vector3 &worldPosition) const
This assumes that the terrain scene node is upright
Member Dviglo::UIElement::SortChildren ()
Order is not stable when children have same priorities
Member Dviglo::ValueAnimationInfo::GetEventFrames (float beginTime, float endTime, PODVector< const VAnimEventFrame * > &eventFrames)
This can miss an event if the deltatime is exactly the animation's length
Member Dviglo::View::PrepareInstancingBuffer ()
If rendering the same view several times back-to-back, would not need to refill the buffer
Member Dviglo::Viewport::ScreenToWorldPoint (int x, int y, float depth) const
This is incorrect if the viewport is used on a texture rendertarget instead of the backbuffer, as it may have different dimensions.
Member Dviglo::Viewport::WorldToScreenPoint (const Vector3 &worldPos) const
This is incorrect if the viewport is used on a texture rendertarget instead of the backbuffer, as it may have different dimensions.