The Nebula Device 3: Todo List

The Nebula Device 3

Todo List

Global Base::ShaderVariableInstanceBase::Apply ()
: hmm, the dynamic type switch is sort of lame...

Class CoreGraphics::StreamAnimationLoader
: document file formats

Class CoreGraphics::StreamMeshLoader
: document file formats

Class Direct3D9::D3D9Shader
lost/reset device handling

Class Direct3D9::D3D9ShaderInstance
lost/reset device handling

Class Graphics::Cell
: need to handle extra shadow bounding box

: statistics and profiling

: need to add visibility depending on LOD

: multithreaded visibility link update?

: add dirty handling to visibility links (e.g. don't need to update links between static lights and static objects)

Global Graphics::View::ResolveVisibleLights ()
: currently this methods needs to go over all visible graphics entities to find the lights...

Class IO::BinaryReader
convert endianess!

Class IO::BinaryWriter
convert endianess!

Global Lighting::SM30LightServer::ApplyModelEntityLights (const Ptr< Graphics::ModelEntity > &modelEntity)
: set light properties only once per-frame and only set a bool array with active per-model-entity-lights here!

Class Math::bbox
: UNTESTED!

Global Math::line::intersect (const line &l, point &pa, point &pb) const
: Untested! Replace with simpler code.

Class Threading::Event
describe Event class

Class Threading::Thread
describe Thread class

Class Threading::ThreadLocalPtr< T >
describe ThreadLocalPtr class

Global Util::Array::Difference (const Array< TYPE > &rhs)
this method is broken, check test case to see why!

Global Util::FixedArray::BinarySearchIndex (const TYPE &val) const
hmm, this is copy-pasted from Array...

Class Win32::Win32Timer
solve multiprocessor issues of QueryPerformanceCounter() (different processors may return different PerformanceFrequency values, thus, threads should be prevented from switching between processors with thread affinities).