diff --git a/TODO.md b/TODO.md index 6cffec42..2f749d9f 100644 --- a/TODO.md +++ b/TODO.md @@ -62,12 +62,15 @@ https://zhuanlan.zhihu.com/p/39369370 - Virtual function - Class implements interface +### Hero DB + +### ParserGen 2 + ## GacUI ### Before 1.0 (Optional) -- `` and `` tags -- Enable Workflow script template for IGuiInstanceLoader written in text +- `` tags - INativeImage::SaveToStream handle correctly for git format. It is possible that LoadFromStream need to process diff between git raw frames. ### After 1.0 @@ -83,12 +86,20 @@ https://zhuanlan.zhihu.com/p/39369370 ### Graphics -- MetaImageElement and MetaImage data structure -- Remove PolygonElement -- Default non-text element renderer using MetaImageElement -- Replacing GDI and D2D non-text element renderers -- Meta3DElement and Meta3D data structure -- Default Meta3DElement renderer using MetaImageElement with a surface sorting based algorithm +- Proposal 1 + - MetaImageElement and MetaImage data structure + - Remove PolygonElement + - Default non-text element renderer using MetaImageElement + - Replacing GDI and D2D non-text element renderers + - Meta3DElement and Meta3D data structure + - Default Meta3DElement renderer using MetaImageElement with a surface sorting based algorithm +- Proposal 2 + - 2D drawing API + - restriction-based meta image + - basic 3D rendering based on the above item with a surface sorting based algorithm +- Others + - GIF player + - video player ### Controls @@ -113,6 +124,27 @@ https://zhuanlan.zhihu.com/p/39369370 ## GacGen.exe - Enable linking to external symbols + - Remove all loader implementation + - `mynamespaces::VirtualClassesX` for adding classes (under this namespace) and specifying their base types + - X for anything, for simulating partial classes + - following a naming convention, like: `GuiSelectableButton* CheckBox()` + - `mynamespaces::XXXLoader` for implementing different kinds of properties / constructors that are not actually exist in `mynamespaces::XXX` + - following a naming convention, e.g. `GuiTableComposition`'s rows/columns properties + - searching for correct default control templates + - GacGen.exe uses external files for control types (but not for elements / compositions) + - external files provide reflection-only type information, maybe created by Workflow +- Modulized GacUISrc sources and projects + - NativeWindow + - Windows + - WindowsGDI + - WindowsDirect2D + - GacUI + - Basic Controls / List Controls / Toolstrip Controls / TextBox Controls + - Controls in future + - UI in future (e.g. Wizard framework) + - With reflections / virtual classes / loaders placed separately + - CodePack-ed files don't change + - Compiler - In the final pass, only workflow scripts are printed - Use WorkflowCompiler.exe to do codegen externally