ashura icon indicating copy to clipboard operation
ashura copied to clipboard

Tasks

Open lamarrr opened this issue 1 year ago • 0 comments

2D

  • [x] Implement Renderer-Agnostic Canvas API
  • [x] Implement Vulkan Renderer for Canvas
  • [x] Integrate Audio and Video codecs for WebM (video: AVI + audio: Opus/Vorbis) (to be used showcase)
  • [x] Integrate animation codec for AVIF (to be used in showcase)
  • [ ] Integrate audio codec for Opus and Vorbis (to be used in showcase)
  • [x] Implement WebP, JPG, and PNG image decoders
  • [ ] Implement 2D animations (i.e. easein, easeout, etc.)
  • [ ] Wide Gamut Support for image decoding (png and some formats specify color space) and swapchain images i.e. P3, Adobe SRGB (see: https://developer.android.com/training/wide-color-gamut, https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VK_EXT_swapchain_colorspace.html, https://en.wikipedia.org/wiki/DCI-P3, https://docs.google.com/document/d/17C7UAaLSX2hHOq-hYENeJ1HwMhPCL-e0pb9Pn8rXUok/edit) Terms: Gamut: color range supported by device from a color space, Color space: range of values

Widgets & Engine

  • [x] Implement Box widget
  • [x] Implement Button widget
  • [x] Implement Grid widget
  • [x] Implement Padding widget
  • [x] Implement Stack widget
  • [x] Implement text widget
  • [x] Implement Flex widget
  • [x] Implement image widget
  • [x] Integrate and evaluate 2d animations in widgets
  • [x] Drag and drop (see: https://github.com/flutter/flutter/issues/30719)
  • [ ] Add NetworkImageSource for Image Widget, with optional caching specified via image widget props (try_load_from_cache, cache_image)
  • [x] Fix text layout
  • [x] Remove use of pointers for identifying widgets

3D (Optional. low priority)

  • [ ] Implement quaternions and operations
  • [x] Implement 3d render pipeline
  • [ ] Implement bloom post-processing (based on unreal engine's) https://www.youtube.com/watch?v=ml-5OGZC7vE
  • [ ] Implement blur post-processing https://github.com/GPUOpen-LibrariesAndSDKs/FidelityFX-SDK/blob/main/docs/samples/blur.md
  • [ ] Implement PBR rendering post-processing
  • [ ] Implement chromatic aberration post-processing
  • [ ] Implement depth of field post-processing https://github.com/GPUOpen-LibrariesAndSDKs/FidelityFX-SDK/blob/main/docs/samples/depth-of-field.md
  • [ ] Implement shadow mapping
  • [ ] Implement particle effects
  • [ ] Implement bokeh effect
  • [ ] Implement global illumination

Plugins

  • [ ] Implement an async streaming http client using CuRL as backend
  • [ ] Implement async file io streaming (with io_uring as backend on linux if supported otherwise c-posix api, and ioring on windows)
  • [ ] Implement window controller API and explore solutions to allow creating and attaching widgets to multi-window supported platforms
  • [ ] Implement clipboard plugin that can copy and paste multimedia content
  • [x] Implement vulkan font loader plugin

Infrastructure

  • [x] Implement CI for checking for build errors
  • [x] Implement basic unit tests where reasonable
  • [ ] Consider implementing regression tests once the code becomes more complex and more churn is performed in the system

Abstract

  • [ ] Survey Flutter, React Native, SwiftUI, Web, Chromium, UE5, and Unity's features, strengths, and areas of weaknesses we can work on or improve

Statistics

  • [x] Memory Usage and widget
  • [x] CPU utilization API and widget
  • [x] GPU utilization
  • [ ] API and task tracing
  • [x] Add Vulkan Command Query Pool

Custom UI Graphics Pipelines

lamarrr avatar Mar 06 '23 21:03 lamarrr