Martin Fouilleul
feca7d1026
[ui] moved ui_panel() into ui.c
2023-03-09 14:27:46 +01:00
Martin Fouilleul
56874c99d6
[ui, layout] layout constraint solving, first draft
2023-03-09 12:36:38 +01:00
Martin Fouilleul
a569454df5
[ui, wip] scrolling / scrolling panels
2023-03-08 19:53:28 +01:00
Martin Fouilleul
873d4ab6db
[ui, canvas]
...
- Allow querying the size of the canvas's underlying surface
- Set size of ui root to canvas' size
2023-03-08 15:03:35 +01:00
Martin Fouilleul
1212d714d5
[platform/canvas]
...
- Changed canvas coordinate system to match UI coord system (origin at top left, y axis down)
- Changed mouse coordinate system to match UI and canvas
- No need to pass width/height to ui_begin_frame() anymore
2023-03-08 13:19:18 +01:00
Martin Fouilleul
7b2ef080e8
[util, formatting] shorten list loop names to for_list_xxx
2023-03-08 12:03:33 +01:00
Martin Fouilleul
3682605f97
[util, formatting] changed list api to snakecase for consistency with the rest of the codebase
2023-03-08 12:00:10 +01:00
Martin Fouilleul
bfc19665ce
[util]
...
- shorten str8_lit macro to STR8
- use strlen() in STR8 and remove str8_from_cstring(). Usage with string literal seem to always be optimized by compile-time constant, so there's little need for a confusing macro that only works with literals and breaks with pointers.
- replaced str8_unbox() with str8_lp/str8_ip
2023-03-08 11:40:40 +01:00
Martin Fouilleul
f07f56948d
[ui] shorten ui styling api names
2023-03-08 11:13:32 +01:00
Martin Fouilleul
8b06cb31ba
[ui, styling]
...
- Put all styling calls _before_ the styled box.
- Renamed full pattern matching API to ui_style_match_next_before/after
- Helper to style next box only (ui_style_next())
2023-03-08 11:09:28 +01:00
Martin Fouilleul
c551135933
[ui] remove the need to pass a default style to ui_frame()
2023-03-07 19:44:22 +01:00
Martin Fouilleul
2466241b1e
[ui, styling] finished first pass on core layout/styling system
2023-03-07 19:27:01 +01:00
Martin Fouilleul
8032c7340b
[ui, styling] revisiting layout/sizing
2023-03-07 19:06:04 +01:00
Martin Fouilleul
7b10a99a8c
[ui, styling] First draft of rule-based styling to replace old stack-based system
2023-03-06 19:33:01 +01:00
Martin Fouilleul
b52a35c753
[ui, textbox] Fixed selection background rectangle
2023-03-05 17:03:00 +01:00
Martin Fouilleul
592f4cdecd
end of line renormalization
2023-03-05 16:05:43 +01:00
Martin Fouilleul
4359bdaa3c
[ui, textbox] position cursor at mouse position / extend selection on shift + mouse press or drag
2023-03-05 15:59:57 +01:00
Martin Fouilleul
731e5b1ae8
[surface] pull mp_layer into the generic mg_surface_data struct, out of each backend-specific implementation
2023-03-03 11:50:12 +01:00
martinfouilleul
ac00cc9def
[wip, win32 surface sharing] simplifyin the surface sharing API
2023-03-02 19:21:39 +01:00
martinfouilleul
ee87976429
[win32 surface sharing] hacky proof of concept
2023-03-02 18:24:15 +01:00
martinfouilleul
3ada8ece9a
[wip, win32 surface sharing] in surface sharing example, terminate child process when parent exits
2023-03-02 12:23:10 +01:00
martinfouilleul
e58ae3ef52
[surface sharing] first draft for win32 using window reparenting
2023-03-02 09:54:12 +01:00
martinfouilleul
2560ddd5b4
[win32] adding simple IPC to test delegated surface
2023-03-01 18:58:59 +01:00
Martin Fouilleul
43d413dbbc
[surface] graphics surface sharing API + osx implementation
2023-03-01 16:15:36 +01:00
Martin Fouilleul
3615775168
[canvas] decompose image atlas API into simple rect atlas API + image atlas helpers. This avoids creating a bunch of new types/handles, and exposes the underlying image/sourceRegion so that user code can freely use these for more complex scenarios (eg drawing only a sub-region of an atlased image, or using an atlas image for arbitrary path filling)
2023-02-28 16:54:39 +01:00
Martin Fouilleul
d4bceba7e9
[canvas] basic image atlas API
2023-02-28 13:16:36 +01:00
martinfouilleul
ac6a5db209
[canvas, gl] Checked batching/transparency
2023-02-27 19:39:26 +01:00
martinfouilleul
8f834fa1a5
[wip, canvas, gl] implementing basic image API
2023-02-27 19:25:41 +01:00
Martin Fouilleul
5e5f8ac5e7
adding image test/example
2023-02-27 15:43:41 +01:00
Martin Fouilleul
9ed630fc55
[canvas]
...
- Clear final surface to clear color, and enable blending layers onto it
- Fixed Batching bug where we were writing to vertex/shape buffers while the previous batch is using them
- Fixed bug where uvTransform uses transform of next shape instead of that of shape being finalized
2023-02-27 11:56:04 +01:00
Martin Fouilleul
b24de5d969
[canvas] Allow setting image source region
2023-02-25 12:59:49 +01:00
Martin Fouilleul
50569a1427
Allow setting texture on arbitrary path fills
2023-02-24 23:06:39 +01:00
Martin Fouilleul
4333ed02b0
[canvas] remove image draw commands, replace with rect/rounded rects + image source
2023-02-24 22:59:33 +01:00
Martin Fouilleul
1b62ec568c
[canvas, mtl backend] Handle image rotation
2023-02-24 20:40:16 +01:00
Martin Fouilleul
fd4c4e7be3
[canvas] simple image API
2023-02-24 12:01:00 +01:00
martinfouilleul
665c63c3d0
[win32 build/link]
...
- Build milepost as a dynamic library
- Add import/export directives to public API symbols
- Change example build scripts accordingly
2023-02-21 18:43:30 +01:00
Martin Fouilleul
3b26c92c85
[osx build/linking]
...
- Remove the need for client apps to explicitly link with all dependent libs and frameworks
- Don't require redistributing libEGL/libGLES if not used, by linking them with '-weak-l' option
- Change examples build scripts accordingly
2023-02-21 17:09:26 +01:00
martinfouilleul
2dccfa5547
[win32 surfaces] Backing win32 surfaces with child window and implementing frame/hidding control
2023-02-20 18:34:29 +01:00
Martin Fouilleul
4306d0a01c
back osx surfaces by CALayer
2023-02-20 16:49:44 +01:00
Martin Fouilleul
2232b647ed
reintroduced GLES backend to osx
2023-02-20 11:05:01 +01:00
martinfouilleul
333d3e9f9c
[gles, wip] reintroducing egl surface (for win32 at first)
2023-02-17 18:56:16 +01:00
martinfouilleul
80ea8db687
[surface/canvas cleanup]
...
- Make build-time and runtime backend selection a bit easier
- Reorganized backend-specific files with slightly more coherent naming scheme
2023-02-10 16:56:10 +01:00
martinfouilleul
f54f639db5
properly destroying windows and fonts
2023-02-10 12:05:52 +01:00
martinfouilleul
08d3521b61
[canvas/surface cleanup]
...
- properly destroy gl canvas backend
- properly destroy gl surface
2023-02-09 18:40:42 +01:00
martinfouilleul
af7cbae1fa
[canvas cleanup] cleanup canvas resources on creation failure
2023-02-09 18:18:12 +01:00
martinfouilleul
4a8c77f023
- Move and Zoom perf_text example with the mouse
...
- Reverted to using 4 bits of subpixel precision and computing cross products with 32 bits integers, for perf reasons
- Fixed some confusion in tile array size vs number of elements (could still clean-up naming a bit though)
- Fixed bug where triangles on the left or below canvas boundaries where bucketted to the first colum/row of tiles
- Fixed bug in mouse button message handling (was always sending press on left button)
2023-02-09 13:09:41 +01:00
martinfouilleul
833767d6e2
move text with the mouse in perf_text example
2023-02-09 09:50:53 +01:00
martinfouilleul
21c604104f
fix mp_app_get_resource_path()
2023-02-08 20:40:48 +01:00
martinfouilleul
3f58b2ac3d
glsl canvas shader: do cross products in 64 bits fixed point to avoid overflow
2023-02-08 20:36:39 +01:00
martinfouilleul
7cf4c3d925
opengl surface/renderer: set surface scaling according to dpi of first monitor. Use that dpi to scale backing texture of canvas renderer. Note: changing monitor isn't handled yet!
2023-02-08 18:22:54 +01:00