Draft Agenda for the GTK+ 2017 Hackfest
1. High level topics
1.1. GDK
- Windows
- How to get rid of child windows
SubsurfaceWindow: delete or all backends
- x/y coordinate removal
Do we need WindowImpl?
- class hierarchy
- drawing context semantics
- cairo context?
- Vulkan/GL Context for same window
- sharing resources (ie glyph cache) across windows/displays/processes
- Events
- Use only for input?
- Settings
- DND/Clipboard
- review API design for Wayland
1.2. GSK
- OpenGL drivers/backend
OpenGL core profile (>4.0?)
- OpenGL legacy support
- OpenGL ES (2.0, 3.x) for embedded platforms
- Shader API for GTK/applications
- solidify use cases
replacement for GdkPixbuf
- gsk_texture_new_from_gl (context, texture_id)
- Improving performance
- Memory allocation
- Threading
- Improving data structures
- Caching
- Make it fast
1.3. Canvas/scene graph
- Should we add a mid-level scene graph for applications that want to replace Clutter?
- Not all apps want to use widgets
- No styling, no direct input handling
- e.g. games, full screen UIs
- Input transformations on GTK widgets
1.4. Animation framework
- More apps are taking the Builder animation API
Heavily modelled on ClutterAnimation
- Cost of value/property marshalling
- Potential hot path for performance
1.5. Layout
- Responsive layout - can we make this easier ? Does Emeus help for this ?
- What about Emeus - is there a future where it becomes part of GTK+, or do we keep this separate ?
1.6. Widgets
Composite UI files for direct GtkWidget subclasses (No GtkContainer, so no gtk_container_add)
- What's necessary to get rid of Gadgets entirely?
What's the preferred (most efficient) API to keep images in memory? GskTexture? Do application developers (have to) care whether it's in VRAM or not?
- model-only
- performance with large lists
replacing GtkTreeView?
GtkBuilder to construct children
- embedding
- popovers
- menus vs popups vs tooltips vs toplevels
Rework current GtkWindow class hierarchy
GtkDrawingArea => GL/Cairo/Vulkan
- spell checking
- undo
- CSS
- multiple views per buffer abstraction
- performance
1.7. Other
- Flatpak
- secure app identification
- portals
- Pango
- CSS
- GL
- Meson support for GTK4
- DX questionnaire