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
35e396e4c4
[canvas cleanup]
...
- Remove attributes/color arguments in functions where we don't need them anymore (since they're defined when calling mg_next_shape())
- Renamed "_with_zindex" functions with "_path" -> these function only fill a path (eg rect), but don't increment the current shape
2023-02-09 17:02:58 +01:00
martinfouilleul
09a18419e4
[canvas] make shapeIndex implicit in calls to mg_push_vertex
2023-02-09 16:42:02 +01:00
martinfouilleul
4e816a838b
[Clean canvas/shaders]
...
- Simplified shader names, prefix embedded strings by "glsl_"
- Extracted shader compilation in common function
- Add shader version string and common structs in canvas code rather than in every shader file
- Renamed zIndex with shapeIndex everywhere
2023-02-09 16:14:15 +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
c0601961f1
Reposition window when changing dpi
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
martinfouilleul
7fbc4ba270
canvas renderer: Use clip rects to cull tiles/pixels in tiling and drawing passes
2023-02-08 12:59:31 +01:00
martinfouilleul
e6e674ee04
Allow setting surface swap interval in opengl surface
2023-02-08 11:49:00 +01:00
martinfouilleul
c982b524c0
Merge branch 'gl_canvas' of ssh://git.forkingpaths.dev/martinfouilleul/milepost into gl_canvas
2023-02-08 10:47:20 +01:00
martinfouilleul
38c27f21d6
canvas: allow flushing externally built commands with mg_flush_commands()
2023-02-08 10:46:12 +01:00
Martin Fouilleul
afaa95fe07
applied canvas changes to metal backend
2023-02-08 10:42:21 +01:00
martinfouilleul
2419ab7889
opengl canvas renderer: splitting vertex data and shape data
2023-02-07 18:59:51 +01:00
martinfouilleul
f0bc88c4fb
gl canvas renderer with buffer re-specification
2023-02-07 17:00:59 +01:00
martinfouilleul
5788cdbcda
Desktop opengl 4.3 canvas
2023-02-07 13:24:14 +01:00
martinfouilleul
91780b12c7
reorder fields in glsl vertex struct to be less wasteful
2023-02-06 17:01:32 +01:00
martinfouilleul
5754fc1ad2
using temporary buffer to build canvas verex data and use glBufferData with exact number of vertices to submit buffer to gpu
2023-02-06 16:14:43 +01:00
martinfouilleul
3dfaea1bba
temporarily reducing vertex buffer size to test perf impact
2023-02-06 09:20:52 +01:00
martinfouilleul
fd836c00dd
canvas renderer: parallel tiling pass and sorting pass
2023-02-05 21:03:16 +01:00
martinfouilleul
e59f2b152b
simple gles tiled renderer
2023-02-03 18:44:28 +01:00
martinfouilleul
8faf588bee
Added text rendering in win_canvas test app and confirm it's slow as is...
2023-02-02 20:36:03 +01:00
martinfouilleul
68810d8bf0
updated todo
2023-02-02 19:15:20 +01:00
martinfouilleul
19988d045e
breaking triangle buffer into batches each time the current image changes
2023-02-02 18:57:57 +01:00
Martin Fouilleul
9cadc2f23f
added notes on bindless textures indexing
2023-02-02 17:02:55 +01:00
martinfouilleul
28e2a3648e
Multisampling in gles canvas shader
2023-02-02 13:34:06 +01:00
martinfouilleul
f73241e4a6
set background clear color correctly
2023-02-02 12:08:04 +01:00
martinfouilleul
0796b2cbcd
Switched to fixed point in gles triangle rasterization, and fixed wrong offset curve check collapsing the internal control points
2023-02-02 11:40:22 +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
8e87837fcc
working on gles 3.1 canvas on windows
2023-01-31 15:51:50 +01:00
martinfouilleul
c5ae556f22
[wip] win32 gles surface using angle
2023-01-29 01:04:24 +01:00
Martin Fouilleul
bd7e1a15f1
- Conflating mp_views and surfaces
...
- Implicit canvas context in canvas API
- GLES window surface on mac
2023-01-28 17:24:43 +01:00
Martin Fouilleul
9bf62d2218
re-working graphics surfaces
2022-12-26 18:33:31 +01:00
Martin Fouilleul
db5b4966e9
- Restructure osx version to use mp_app_internal.h/mp_app.c
...
- test new run loop structure on osx
2022-12-24 15:33:32 +01:00
martinfouilleul
72338b1a25
Extracted commonalities from platform specific app backends
2022-12-23 20:46:42 +01:00
martinfouilleul
30bd704af2
win32 opengl loader nonsense
2022-12-22 18:24:43 +01:00
martinfouilleul
a696c2ba2b
Added platform detection macros and atomic/thread_local abstraction
2022-12-22 15:29:07 +01:00
martinfouilleul
c57e16db5a
[win32 port] Hello triangle in OpenGL 4.3
2022-12-21 19:43:31 +01:00
martinfouilleul
2421871c3e
windows port initial commit: simple window with GL 4.3 context
2022-12-21 12:03:55 +01:00
Martin Fouilleul
7f62938f84
directory create/remove
2022-08-28 13:49:40 +02:00
Martin Fouilleul
00b282dcd4
Platform file system functions (remove, move, etc)
2022-08-26 14:47:20 +02:00
Martin Fouilleul
884e05abd2
Adding plaform specific move file functions
2022-08-21 19:14:59 +02:00
Martin Fouilleul
1d77a36640
Fixed executable/bundle paths procs
2022-08-21 17:07:54 +02:00
Martin Fouilleul
440668129c
Remote GLES surfaces
2022-08-19 20:55:00 +02:00
Martin Fouilleul
13cccdf5de
trying to integrate mg_surface_client/server
2022-08-19 19:46:31 +02:00