Skip to content

Latest commit

 

History

History
82 lines (76 loc) · 3.23 KB

TODO.md

File metadata and controls

82 lines (76 loc) · 3.23 KB

TODO

  1. plot sampling uvs = done

  2. transform uvs of sampler_t = done

  3. can make an optimized render node for rectangles: interleaved(one upload call) and constant ebo = DONE

  4. maybe create a GVA - generic vertex attribute system = DONE

  5. shader compositor_t = DONE

  6. general texture sampler_t = DONE

  7. basic blending = done

  8. basic compositing = done

  9. test idea with backdrop sampling read = done

  10. attach_shaders, update_shaders, ctors - DONE

  11. static pool for main programs - DONE

  12. murmur hashcode - DONE

  13. compositing is a canvas state - DONE

  14. circle sampler - DONE

  15. rounded rect_i sampler - DONE

  16. masking sampler - DONE

  17. draw mask - DONE

  18. draw arc - DONE

  19. draw pie - DONE

  20. quadrilateral - DONE

  21. line gradient - DONE

  22. fast 2 colors gradient - DONE

  23. circle gradient - DONE

  24. angular gradient - DONE

  25. capsule shape sampler - DONE

  26. linear classifier sampler - DONE

  27. test idea of missing uvs coords for triangle batches - DONE

  28. render node for triangle batches - DONE

  29. draw polygons - DONE

  30. draw paths fills - DONE

  31. draw stroke fills - Done

  32. bezier patches - done

  33. draw text, bitmap fonts - done

  34. tint sampler - done

  35. draw lines - done

  36. test gldrawArrays for non-indexed - done

  37. convex/fan dont need to allocate indices buffer - done

  38. clean up other_functions from samplers - done

  39. const_cast with fake const samplers to catch rval refs without overloading - done

  40. add docs for canvas functions - done

  41. compatibility with older than 3.0 opengl (attributes in/out, texture/2d etc...) - done

  42. debug mode - done

  43. glsl versioning - wip

  44. create mix sampler

  45. filter sampler

  46. checkerboard sampler

  47. https://stackoverflow.com/questions/327642/opengl-and-monochrome-texture

  48. AA with rbos

  49. convert refs to pointer template so we can forward besides pointer to multi sampler

  50. text measure compute

  51. draw text, sdf version

  52. explore drawing 3d objects, might need new shader type and pool and render node

tests:

  1. test canvas with injected texture

optimizations:

  1. lazy back buffers_type. also, if taregt is requested as premul alpha, normal blending and any of the porter-duff, we can use opengl blending.

NOTES:

  • all samplers should be linear space. If one is pre-mul like a texture, then use an unmul sampler
  • branch in vertex shader for made-up uvs for traingles if not present
  • backdrop uvs should be calculated in place
  • We can compute mip-maps at client side and the mip level at client side, because, the mip level is uniform accros because it is 2d and aligned except for quadrilaterals where there is a twist and the sampling rate is varying. https://www.reddit.com/r/opengl/comments/3cdg5r/derivation_of_opengls_mipmap_level_computation/
  • all textures should be pre-multiplied alpha
  • all other samplers should be un-multiplied
  • backdrop texture does not need interpolation and min filter, therefore it can be mul/unmul alpha
  • if your texture uses any filter/interpolation and it has transperency, you need it to be alpha-mul
  • canvas inherits the alpha-stat of it's texture
  • opengl textures are top=1.0, bottom=0.0

OPTIM:

  • if normal blend-mode and any porter-duff and canvas is pre-mul stat, then you can skip backdrop texture and do it all in open-gl