- Member DefaultInterpolators::Create (InterpolatorType type, const Key< KeyType > &leftKey, const Key< KeyType > &rightKey, UPtr< const IInterpolator< KeyType > > &leftInterpolator, UPtr< const IInterpolator< KeyType > > &rightInterpolator)
- Implement Bezier interpolator.
- globalScope> Member DEFINE_CONFIG_VALUE_DEFAULT (type, name, defaultValue)
- Write base class for configs and make automatic serialization and deserialization.
- Member DirectProperty< KeyType >::m_object
- Change to typed pointer some way.
- Member DX11Buffer::CopyData () override
- Nie trzeba by wykonywać kopiowania na GPU, gdyby bufor był stworzony z flagą D3D11_USAGE_STAGING lub D3D11_USAGE_DEFAULT. Trzeba sprawdzić flagi i robić kopiowanie tylko, gdy to konieczne.
- Member DX11RenderTarget::CreateRenderTarget (const std::wstring &name, const RenderTargetDescriptor &renderTargetDescriptor)
- W przyszłości powinna być możliwość tworzenia tekstur innych niż 2D. Poza tym renderować powinno się móc do dowolnego poziomu mipmap. Decyzja powinna być podejmowana w runtimie, więc trzeba chyba stworzyć wiele widoków (???). Przydatne to jest w przypadku Environmental mappingu. Jeżeli obiekt jest mocno oddalony, to nie ma co renderować mu mapy z dużą rozdzielczością.
- Member DX11RenderTarget::CreateScreenRenderTarget ()
- Wersja troszkę niewłaściwa. RenderTarget jest już stworzony wcześniej przy zwykłej inicjalizacji DX11APIObjects. Tutaj jest jedynie tworzony obiekt silnikowy, który potrafi to obsłużyć. Trzeba to zmienić, żeby całe tworzenie render targetu odbywało się tutaj.
- Member DX11SwapChain::CreateScreenSwapChain (RenderTargetObject *screenRT)
- Wersja troszkę niewłaściwa. SwapChain jest już stworzony wcześniej przy zwykłej inicjalizacji DX11APIObjects. Tutaj jest jedynie tworzony obiekt silnikowy, który potrafi to obsłużyć. Trzeba to zmienić, żeby całe tworzenie render targetu odbywało się tutaj.
- Member DX11Texture::CreateFromMemory (const MemoryChunk &texData, TextureInfo &&texInfo)
- Trzeba zacząć kiedyś obśługiwac inne typy tekstur.
- Member DX11VertexShader::CreateFromFile (const std::wstring &fileName, const std::string &shaderName, ShaderInputLayout **layout, InputLayoutDescriptor *layout_desc, const char *shaderModel="vs_4_0")
- Lepiej obsłużyć ten błąd.
- globalScope> Member EditorName
- Zaimplementować.
- Class EngineObject
- Dobrze by było, gdyby EngineObject implementował domyślną serializację, ale wtedy jest problem, że nie wiadomo, która z bibliotek powinna tę implementację kompilować.
- Module Interpolators
- Complete description.
- Member KeySet< KeyType >::Evaluate (TimeType time)
- Check if we can find keywith std::lower_bound or FindPlace. Messure performance in cases with multiple keys and choose better version.
- Module Reflection
- W obecnej wersji silnika wymaganie posiadania EngineObject w hierarchii nie jest już konieczne z punktu widzenia edytora. W kolejnych wersjach trzeba zmienić mechanizmy serializacji, żeby potrafiły zapisywać również takie struktury.
- Member RenderTargetObject::GetResourceName () const override
- RenderTargety powinny mieć swoje nazwy.
- Class ResourceContainer< TYPE >
Dodać IDki obok ścieżek.
Kontrner powinien obsługiwać ścieżki, jako obiekty typu Path zamiast wstringów.
- Class ResourceManager
- This class should implement generic high level asssets managment.
- Member ResourceManager::AddRenderTarget (RenderTargetObject *renderTarget, const std::wstring &name)
- Nie może tak zostać, że ktoś dodaje renderTarget i musi sprawdzić czy nie dostał innego. Nie można też zmuszać kogoś do zwalniania pamięci po renderTargecie. Wogóle dodawanie renderTargetów musi się odbywać jakoś inaczej. Najlepiej, żeby były one tworzone przez ResourceManager, ale wtedy trzeba wymyśleć sposób dodawania renderTargetu związanego z buforem okna.
- Member ResourceManager::CreateRenderTarget (const std::wstring &name, const RenderTargetDescriptor &renderTargetDescriptor)
- Przy dodawaniu tekstur nie jest sprawdzane czy one już istnieją. Trzeba albo to sprawdzać, albo zapewnić np. jakąś polityką nazewnictwa, że w ten sposób nie nadpisujemy istniejącej tekstury.
- Member ResourceManager::LoadVertexShader (const std::wstring &fileName, const std::string &shaderEntry, ShaderInputLayout **layout, InputLayoutDescriptor *layout_desc)
- Ten kod to jakiś totalny shit. Jak komuś się będzie nudziło kiedyś (ha ha), to może niech poprawi.
- Class ResourceObject
- Zliczanie referencji w ResourceObject nie nadaje się do wielowątkowości. Poprawić w odpowiednim momencie.
- Member ResourceObject::m_objectReferences
- To powinien być std::atomic_uint, ale wtedy nie kompiluje się z CLRem.
- Member Serialization::DeserializeArrayTypes (IDeserializer *deser, const rttr::instance &object, rttr::property &prop)
- Error handling.
- Member Serialization::DeserializeProperty (IDeserializer *deser, rttr::property prop, const rttr::instance &object)
- Można zoptymalizować pobieranie nazwy z właściwości i ograniczyć alokację stringów.
- Member Serialization::SerializeProperty (ISerializer *ser, rttr::property prop, const rttr::instance &object)
- Można zoptymalizować pobieranie nazwy z właściwości i ograniczyć alokację stringów.
- globalScope> Member ShowInEditor
- Zaimplementować filtrowanie w edytorze propertiesów.
- Class sw::gui::CommandLineArgs
- Move to separate file.
- Member sw::gui::CreateNativeGUI ()
- This should be moved domewhere else.
- Member sw::gui::DelegatesContainer< EventArgType >::m_delegates
- Consider using linked list to minimize memory usage.
- Class sw::gui::DelegatesContainerBase
- Consider extracting intrusive list as separate class.
- Member sw::gui::DependencyObject::m_dataContext
- Consider using std::shared_ptr.
- Class sw::gui::GUISystem
- Supply project templates.
- Member sw::gui::GUISystem::MainLoopCore ()
- Consider making this function virtual in future.
- Member sw::gui::HostLogic::HandleKeyInput (const input::DeviceEvent &event, input::Device *device)
Handle failing during event raising.
Handle failing during event raising.
Handle failing during event raising.
Handle failing during event raising.
Handle failing during event raising.
Handle failing during event raising.
Handle failing during event raising.
- Member sw::gui::HostLogic::HandleMouseButtonInput (const input::DeviceEvent &event, input::Device *device)
Handle failing during event raising.
Handle failing during event raising.
Handle failing during event raising.
Handle failing during event raising.
Handle failing during event raising.
Handle failing during event raising.
Handle failing during event raising.
- Member sw::gui::HostLogic::m_invalidated
- Move to different logic. Separate rearrangement and redraw.
- Class sw::gui::UIElement
- Implement logical focus in future. (Check in WPF)
- Member sw::gui::UIElement::m_isEnabled
- Maybe it's something from higher level.
- Member sw::gui::Visual::HitTest (const Position &point)=0
- We must specify if point is in relative coordinates or absolut.
- Member sw::gui::Visual::m_position
- Relative to parent ???)
- Class sw::input::DirectInputModule
Zrobić obsługę wielu urządzeń tego samego typu i jousticka.
Pozbyć się includowania direct input z EngineCore.
- Member sw::input::DirectInputModule::m_keyboardInput
- Pewnie to powienien być wektor.
- Member sw::input::DirectInputModule::m_mouseInput
- Pewnie to powienien być wektor.
- Member sw::input::DirectInputModule::Update (float timeInterval) override
- Repair
- Member sw::input::DirectInputModule::UpdateKeyboard (int idx)
- Repair
- Member sw::input::DirectInputModule::UpdateMouse (int idx)
- Repair
- Member sw::input::EventCapture::QueryEvent (Size frameNum)
- Don't ignore frameNum
- Member sw::input::EventCapture::QueueEvent (const DebugEvent &event)
- Sort events.
- Class sw::input::IInput
Deal with situation when we must have two different IInput objects to handle input. For example WinAPI deals with keyboard and mouse and other IINput with Joysticks.
We must think about handling other devices. For example WPF have such types as StylusDevice, TouchDevice and TabletDevice. Can we do it as combinations of keyboard, mouse and joysticks or we must introduce new API for that.
DirectInput should be created one per window. In this moment we have one input in whole application. We must rethink it.
- Member sw::input::WinApiInputProxy::KeyboardChange (int keyId, bool pressed)
- W przyszłości może trzeba będzie dodać informację o zmienie stanu. Mógłby to być np któryć bit ustawiony na 1 czy coś.
- Member sw::input::WinApiInputProxy::LostFocus ()
- Dokończyć
- Member sw::input::WinApiInputProxy::MouseButtonChange (int button, bool pressed)
- W przyszłości może trzeba będzie dodać informację o zmienie stanu. Mógłby to być np któryć bit ustawiony na 1 czy coś.
- Member sw::input::WPFInputProxy::LostFocus ()
- Dokończyć
- Member sw::input::WPFInputProxy::MouseButtonChange (int button, bool pressed)
- W przyszłości może trzeba będzie dodać informację o zmienie stanu. Mógłby to być np któryć bit ustawiony na 1 czy coś.
- Class sw::ThreadsBarrier
- Implement
- globalScope> Member UPtr
- Use std::unique_ptr instead. Unique_ptr didn't want to compile in current visual compiler.