TODO.txt 5.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123
  1. --------- ALL LONG TERM TASKS / FIXES BELONG TO GOOGLE DOCS: ImplementationTODO OR PossibleImprovements ----------
  2. Do a cleanup pass on the editor? Fix the annoying little issues:
  3. - Switching between button states seem to cause 1 frame of no texture for the gui element
  4. - Much more I can't think of right now
  5. <<<<<Assembly refresh>>>>>
  6. When serializing Camera I cannot save the reference to RenderTexture. Make it a Resource?
  7. Possibly set up automatic refresh in debug mode after initialization? As an ad-hoc unit test
  8. <<<<<<Handles>>>>>>>>
  9. Add free rotate handle
  10. Add free scale handle
  11. Rotate handle:
  12. - Transparent angle start is at the wrong position
  13. - Red arc is on the wrong side when viewed from above
  14. - Missing two free rotate arcs
  15. Cursor wrap only works when cursor moves really slowly over the border, and even then it's spotty
  16. When changing handle types they do not refresh until you click on the scene view
  17. The first time I mouse over a GUI button it flashes for a frame as if it has no texture
  18. - It seems that the ParamBlockBuffer for the vertex shader gets updated one frame too late
  19. - First frame it is set to all zeroes, but fragment data seems valid (both the param block and texture/sampler)
  20. - Then syncToCore() happens next frame and data is updated.
  21. <<<<Multi-resource saving>>>>:
  22. - Modify Font so it doesn't contain a texture, but instead keeps a handle to it
  23. - Register it in its meta file
  24. - When saving such a resource with dependencies save the contained files to a sub-directory with the same name as top level resource
  25. - If it already exists in the manifest at a different location do it anyway, keep the other copy as-is in case user wanted it that way
  26. - I'm not sure whether to do this for all Resource::save calls or only ones originating from ProjectLIbrary?
  27. Other:
  28. Window resize end callback
  29. Add cutoff plane when rendering discs for rotation handle.
  30. There seems to be a delay when changing GUI element sprite textures (like 1 frame there is no texture at all)
  31. I can get mono errors by checking g_print calls in goutput.c
  32. - Calling thunks incorrectly can cause those weird errors with no real callstack
  33. Running embedded mono with VS attached causes managed null refs to be registered as access violations
  34. There seems to be a bug in Mono when passing complex structs from C# to C++. e.g. passing Rect3 as a parameter
  35. will corrupt the parameter after it, even if layout and size is exact as the C++ version.
  36. Rect3 has child structs (Vector3) which could be the reason. Be aware of other similar problems.
  37. Create a stack allocatable custom vector implementation and make getResourceDependencies and getCoreDependencies use it.
  38. - These methods are called often and cause allocations whenever they are.
  39. C# SceneView:
  40. Test new Scene window and fix every issue
  41. Add ProjectWindow and HierarchyWindow to C#
  42. - Make TreeViews a C# element?
  43. Set up a default layout and save it
  44. Need a way to drag and drop items from Scene tree view to Scene view
  45. AFTER I have scene widget in C#:
  46. - Implement free move handle and remaining handles
  47. - Test custom handles from C#
  48. - Test handle snapping
  49. IMPLEMENT SELECTION RENDERING
  50. IMPROVE SceneGrid LOOK - Use the shader created in Unity
  51. ----------------------------------------------------------------------
  52. Handles
  53. SliderLine - position, direction, length
  54. - When initially activated it records position nearest so the line as the starting point
  55. - Further mouse dragging also finds nearest position to the line
  56. - Difference between those two results in a float value (how much to move along direction from position to reach new position)
  57. - Slider line has a capsule + sphere collider size of which can be set manually
  58. SliderPlane - position, normal, size
  59. - Similar to line slider only the direction is determined dynamically as well as distance
  60. - Outputs a Vector2 (direction * distance moved)
  61. - A OOB is used as a collider
  62. SliderDisc - position, normal, radius
  63. - When initially activated it records position nearest so the disc as the starting point
  64. - Further movement calculates the dynamic direction from the starting point to the current point on the plane the disc lies on
  65. - Distance along that direction is returned as amount of movement (similar to line slider)
  66. - Outputs a single float
  67. - A torus is used as a collider
  68. Free move/rotate/scale handles need to exist as well
  69. - Scale is easy, just perform uniform scale. Use SliderPlane oriented towards camera
  70. - Move also use SliderPlane oriented towards camera
  71. - Rotation use SliderDisc oriented towards camera
  72. ----------------------------------------------------
  73. STAGE 1
  74. CONCRETE TODO:
  75. HandleSliderPlane/HandleSliderDisc
  76. - update() implementation
  77. ----------------------------------------------------
  78. STAGE 2
  79. Implement RotateHandle & ScaleHandle in C#
  80. - Nearest point to disc/arc code
  81. Add 2D move and scale
  82. Add free move, free rotate, free scale functionality
  83. Handles that remain the same size regardless of distance from camera
  84. - For both drawing and collision
  85. More complex types for drawing like DrawArrow in HandleDrawManager
  86. ----------------------------------------------------------------------
  87. SelectionRenderer
  88. Retrieve a list of selected objects from SelectionManager
  89. Find ones with Renderable components
  90. Retrieve Meshes, and world transforms from them
  91. Draw that same mesh with either a wireframe or a grayed out shader with a slight depth bias
  92. ---------------------------------------------------------------------