Commit Graph

24 Commits

Author SHA1 Message Date
martinfouilleul 3667ab30e0 [win32, io, wip] add win32 io impl. for open/close/seek/read/write 2023-05-26 16:03:23 +02:00
Martin Fouilleul c75661cfc9 [io] abstract file io API, using a request/completion model ala io_uring (w/ only synchronous completion for now), and per-platform backend 2023-05-25 20:08:38 +02:00
Martin Fouilleul ca1caf8537 splitting graphics_surface and graphics_common in order to isolate surface dispatch stuff from orca apps 2023-04-25 22:15:56 +02:00
Martin Fouilleul 346979a21a [canvas] change surface/canvas APIs to treat canvas a 'just another kind of surface', and split canvas implementation (managed by surface) from canvas _command buffer_ and implicit context (represented by mg_canvas) 2023-04-25 19:13:15 +02:00
Martin Fouilleul ab150f94f2 separating input state from app, so that it can be used in different threads that main thread. E.g. ui context uses its own input state that can be fed events in a second thread 2023-04-19 11:28:20 +02:00
Martin Fouilleul 794f47b141 abstracting logging for orca 2023-04-18 18:05:54 +02:00
Martin Fouilleul e9e9ab68c2 base memory allocator and chunked arenas for orca 2023-04-17 18:12:21 +02:00
Martin Fouilleul 592f4cdecd end of line renormalization 2023-03-05 16:05:43 +01:00
Martin Fouilleul d21e737733 [wip] re-introducing UI subsystem 2023-03-03 17:13:03 +01:00
martinfouilleul 653ddec978 [win32 surface sharing] win32 surface sharing using window reparenting 2023-03-03 12:41:09 +01:00
martinfouilleul e58ae3ef52 [surface sharing] first draft for win32 using window reparenting 2023-03-02 09:54:12 +01:00
martinfouilleul 9ea9ea7636 [surface] abstracted child window layer from win32 surfaces 2023-02-21 12:35:22 +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 20e425494f Use a custom GL loader to allow different versions of GL/GLES APIs to co-exist. The loader fills an api struct with GL functions pointers.
We have a per-thread pointer to select which api struct is used, and GL functions are pound-defined to call the versions in that struct.
GL/GLES surfaces can use one of the loader function to load their api, and the prepare proc of the surface sets its api as the current one
before gl calls are issued.
2023-02-16 19:35:01 +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 5788cdbcda Desktop opengl 4.3 canvas 2023-02-07 13:24:14 +01:00
martinfouilleul e59f2b152b simple gles tiled renderer 2023-02-03 18:44:28 +01:00
martinfouilleul e0300e9e3c Fixed indexing in gles_canvas_fragment shaders and fixed native keys buffer 2023-02-01 16:23:51 +01:00
martinfouilleul c5ae556f22 [wip] win32 gles surface using angle 2023-01-29 01:04:24 +01:00
martinfouilleul 30bd704af2 win32 opengl loader nonsense 2022-12-22 18:24:43 +01:00
Martin Fouilleul 39cfa35bfd initial commit 2022-08-14 18:19:40 +02:00