aseprite / aseprite/laf

Prepare API for the first release

Open
#11 1 comment 0 reactions 1 assignee Claimed by @dacap View on GitHub
Dominant language
C++
Stars
349
Forks
97
Avg merge
4d 7h
Merged PRs (30d)
2

Description

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):

- [x] update to Skia m81
- [x] ~~add Surface::drawText()~~ expand the current `os::draw_text()` function (#12) and remove freetype usage if possible, use Skia directly to draw text, `SkShaper` module uses harfbuzz+icu
- [x] rename `os::Display::setTitleBar()` -> `setTitle()`
- [x] `os::Surface::bounds()` -> `Rect(0, 0, width, height)`
- [x] `os::Display::invalidate()` = `os::Display->invalidateRegion(display->surface->bounds)`
- [x] what to do with `os::ScopedHandle`? add `os::DisplayHandle` and `os::SurfaceHandle` aliases? or use move semantic and pimpl idiom?
- [x] rename `os::Display` -> `os::Window`?
- [x] add API to get main monitor/screen, list of monitors/screen, bounds of each monitor, etc.
- [x] create an example that can create 4 windows in a 2x2 grid of windows on each monitor
- [x] add a new kind of coordinate/position for `os::Display` that is bounds + monitor/screen
- [x] ~~`getEvent()` -> replace bool arg with an `enum { WaitForEvents, DontWait }`~~ we've replaced the parameter with a timeout
- [x] enable GPU support again and create a simple OpenGL example
- [x] 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](https://developer.mozilla.org/en-US/docs/Web/API/UI_Events/Keyboard_event_code_values) as a reference / #50
- [ ] create test about color spaces
- [ ] prepare API documentation / tutorial
- [ ] ...

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.