Initial commit, includes Lua with broken Luabind as a backup for branching purposes
[terrastrategy.git] / TODO.txt
blob1e4e1afd1da83970c02c1769461f8b760d21b8c7
1 Actual TODO:
2 ~~~~~~~~~~~~
4 -registrace trid widgetu
5 -poresit widget - roztahovani a tak, je to nejake nedotazene
7 -jednoduche test menu s vypisovanim debug informaci
9 -edit widgety
10 -LOG_RESOURCE ujednotit
12 -per frame statistics - dodelat
14 -client rect - nastaveni orezavaciho regionu widgetu
15 -overlay widget - obdelnikovy widget pro ruzne vizualni efekty
16 -image widget? nebo take overlay?
18 -dodelat texturovou tridu - rozmslet, co s cube mapami a 3d texturami
20 -zacit smolit scenu
21 -RenderWidget
23 -COLLADA import
25 -NACPAT VSUDE SPRAVNE config.h a types.h, ci stltypes.h
26  az v ramci cisteni kodu
27 -common.h
29 -pro retezcove konstanty pouzit const char * a ne std::string (jako parametry fci)
31 -renderer - const iteratory?
32 -nastavovani bufferu, take pres iteratory
34 -zmenit nazvy souboru (interface.cpp -> vfs.cpp) a opravit doxygen hlavicky
35 ---------------------------------------------------------------------------
37 -widget constraints
38 -widget factory by si mela pri vytvareni widgetu zkontrolovat hloubku zanoreni
39   -treba jen v debug rezimu
41 -scroll bar, progress bar
43 -animated texture - xml
44  -one or more textures with one or more frames
45  -texture coordinates are adjusted using texture matrix
47 -pruchod a inicializace activated eventu?
49 -EXT_draw_instanced extension
50 -EXT_bindable_uniform
51 -ARB_occlusion_query
53 -aserce -> ASSERT, CHECK, REQUIRE
54 -pos vs. itr
56 -----------------------------------------------------------
58 -pojmenovavani scen (application si udrzuje mapu)
60 Future features:
61 ~~~~~~~~~~~~~~~
62 -streamable content
64 Most important tasks:
65 ~~~~~~~~~~~~~~~~~~~~~
66 -urcit smer svetla podobne jako Opengl? (x, y, z, 0)
68 -proceduralne generovana scena: sablona nactena z xml, spusten jeji init skript,
69  ktery ji naplni (napr.) skript si pripravi data, ktera se pomoci deep copy
70  prekopiruji do sceny
72 -cascaded shadow maps? devmaster.net article
73 -staticke/dynamicke objekty?
74 -svetla z textur, nebo alespon svitive textury (svetylka lodi)
75  -nebo emissive textury (nutnost pro kosmicke lode :))
77 -picking vs. ray casting - vyber jestli chce vybirat i transparentni objekty, nebo ne
78  mozna jeste flag selectable, aby se nevybiraly sprity, triggery apod.
79  -select group - bitove skupiny pro vyber (takze max 32)
81 -vlastnost light importance - objekt neni osvetlen svetly s nizsi/vyssi dulezitosti
82 -static flag - objekt ma fixni geometrii a muzee se podle toho k nemu chovat
84 -adapt SOIL library for image reader/writers
86 ===========================================
88 -upravit hlavicky souboru - copyrighty!!
89 -decals budou obecne meshe promitle na model (tj. klidne i special)
91 Big TODO areas:
92 ~~~~~~~~~~~~~~~
94 o Renderer
95   -shadows
96   -hdr + bloom
97   -animation, skinning
98   -changing videomode
99   -ubershader for global lights?
100   -decals
101   -particles (PhysX?)
102   -LOD (progressive meshes)
104 o Scripting
105   -parallelism support
106   -random number generator
108 o GUI
109   -stin textu
111 o Networking
112   -event serialization
113   -sender/receiver?
115 o Audio
116   -OpenAL module
117   -sound
118   -music
120 o Vfs
121   -support for zip and other archives
122   -colour printing - manipulators and sprintf
123   -vfs_export - removed unused functions, rename to vfs_lwrapper
125 o Physics
126   -support for the PhysX toolkit or other middleware
128 o Ai
130 o Input
131   -switch to OIS (libois-dev)
132   -tag for key events to mark whether it's meta key or not
133   -uppercase/lowercase? or conversion function, maybe return just keysyms
134    and export transform function to script (keysym + keymod -> chr/utf8)
135   -watch out for international keyboards?
136   -utf8
138 o Polishing
139   -write documentation - when codebase is stable
141 o Possible parallelisation
142   -frustum culling - "search" mapping
143   -getting effective lights of models
144     -for each model get lights that influence it
145   -cpu skinning (at least bbox skinning)
146   -rendering in separate thread?
147   -audio thread
148   -networking thread
150 o Copyright issues
151   -Lua
152   -TinyXML
153   -Freetype2 - linked
154   -Freetype autohinter - catharon licence
155   ?Cg
156   -fonts, cursors, skins
158 Other stuff:
159 ~~~~~~~~~~~~
161 Possible optimizations:
162 ~~~~~~~~~~~~~~~~~~~~~~~
163 -vectors - data alignment,templates
164 -built-in profiler
166 ----------------------------------
167 Little benchamrking:
168 ~~~~~~~~~~~~~~~~~~~
169 Most efficient way of filling buffers:
170 -Lock with amReadWrite/amWrite - rendering?
171 -Set
172 -Lock with amRead