This is a proposed outline of tasks to work on for the code quest (based on discussion between @campbellbarton & @sergey).
* Blender 2.8
** Interface
*** COW display evaluated data, edit original.
** Depsgraph
*** Building depsgraph from an arbitrary ID block.
**** This can be used for efficient calculation of motion paths.
**** Viewport motionblur
**** Sequencer prefetch rendering frames (in threads).
*** Best get input from Sergey.
*** Performance (investigate)
*** COW
** Modifiers
*** Remove derived-mesh
** Layers
*** UI (design)
*** Check Performance
For larger scenes current layer system likely has poor performance
given the way linked lists are used.
It would be good to measure what the difference w/ 2.7x is,
if this is something to address, set as TODO or if we can leave as-is.
*** Moving between layers
*** Best get input from Dalai
More work is needed to finish this off, not sure how much.
*** How do set-scenes work w/ layer visibility?
** Asset Manager?
Make it part of code-quest???
*** Needs discussion w/ Bastien (just focus on this until it's done?).
Suggest to finalize design w/ UI guys, can fix technical issues later.
** Drawing Code Basics
*** Workbench Engine
*** Add back some missing options? - xray, wireframe.
*** OpenGL selection has remaining bugs
Maybe small, need investigaion.
*** Sculpting Bugs
*** Performance (investigate)
*** Clipped output (alt-b)
** Drawing API's
*** Resolved fixed buffer size for immediate mode.
*** GPU - cleanup naming, remove deprecaed API's.
*** Move to GPU (use BLI_threads) Use blender's code style.
*** Wayland (ok after code-quest!)
** Overrides
*** UI Design
*** See: Bastien, Dalai for UI, more development, testing.
Depends on COW.
*** Access from Python (for later).
** Workspace
*** Topbar design (keep redo panel where it is)
*** Fix crashes in scene linking.
*** Finalize object mode design & stabalize.
*** Finalize bare minimum for release, possible extras.
** Operators
*** Port to COW
*** Undo system restructure and make linear (optional)
*** Multi-object edit-mode (optional)
** Tools
*** 101 Project, design is needed.
** Manipulators
*** UI Design
Reevaluate existing design. check if any changes are needed.
*** More work to do, polish, usability, continued development.
*** Confirm current API design is OK to go ahead with.
We could re-evaluate a handful of minor things.
*** Use to replace notifiers over the rest of Blender.
** Python API
*** COW support
At least exporters should export evaluated data>
*** Various minor changes T47811 (best handle after the code-quest).
*** Update all add-ons (again, after code-quest)
** Versioning
*** Tests loading complex production files.
Ensure basics are supported & no crashes.
*** Check if we can make 2.8 files load in 2.7x
On basic level, all layers visible.
** Refactor
*** Split some files to help w/ merge conflicts
Check files over ~3000 LOC, also use common sense!
*** CMake: remove BLENDER_SORTED_LIBS P522
** Sequencer
*** Scene strips w/ COW, layers.. drawing engines?
*** Make breaking changes
**** Transform especially has very strange behavior
**** Remove grading in linear space option.
*** FUN: Camera navigation in sequencer (optional).
(pixel based options making output at different sizes confusing)
while we dont have time for a large project, we could improve things we know are bad-by-design.
*** Prefetch frames (optional, nice to have, fits nice w/ COW)
** Physics & Particles
*** Bring back 2.7x level of support
Make the modules a blackbox, keep existing files working-ish.
** Remove deprecaed features
*** Blender Internal!
*** Texture Nodes (redo or remove - currently)
*** Armature Sketch
*** BGE Player
*** Mesh Legacy Format (pre BMesh).
*** Remove tessface
**** Cycles: use looptri (detect quads if needed).
**** Remove from RNA: Python IO needs updating
**** Particles: We need operator to re-distribute to tris (can't do in readfile).
**** BVH utils uses still.
*** Remove non-triple buffer drawing.
*** Screen Capture
*** Frame Server
*** AVI-RAW/JPEG
*** Remove Current BGE Implementation in 2.8
Replace with interation mode at later date.
* After Code-Quest Topics
** Nodes
*** Move cycles away from hard-coded C definitions.