Skip to content

Prepare API for the first release #11

@dacap

Description

@dacap

Some changes that must be done for a probable first release of the library (some of these items are implemented in an internal beta version that will be published in the near future):

  • update to Skia m81
  • add Surface::drawText() expand the current os::draw_text() function (Drawing text as functions instead of Surface members #12) and remove freetype usage if possible, use Skia directly to draw text, SkShaper module uses harfbuzz+icu
  • rename os::Display::setTitleBar() -> setTitle()
  • os::Surface::bounds() -> Rect(0, 0, width, height)
  • os::Display::invalidate() = os::Display->invalidateRegion(display->surface->bounds)
  • what to do with os::ScopedHandle? add os::DisplayHandle and os::SurfaceHandle aliases? or use move semantic and pimpl idiom?
  • rename os::Display -> os::Window?
  • add API to get main monitor/screen, list of monitors/screen, bounds of each monitor, etc.
  • create an example that can create 4 windows in a 2x2 grid of windows on each monitor
  • add a new kind of coordinate/position for os::Display that is bounds + monitor/screen
  • getEvent() -> replace bool arg with an enum { WaitForEvents, DontWait } we've replaced the parameter with a timeout
  • enable GPU support again and create a simple OpenGL example
  • create an example about complex text layout / new text API
  • merge all os::Surface::drawSurface()/blitTo() in one member function with a os::Paint argument
  • decide if constants should have k prefix (e.g. os::Event::ResizeDisplay vs os::kArrowCursor; or os::Key::Esc instead of os::kKeyEsc) / Check web KeyboardEvent codes as a reference / Review keyboard events #50
  • create test about color spaces
  • prepare API documentation / tutorial
  • ...

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type

Projects

No projects

Relationships

None yet

Development

No branches or pull requests

Issue actions