Commit Graph

102 Commits

Author SHA1 Message Date
bjorn 070e4f304d lovr.graphics.get/setBackground; 2022-05-11 15:38:05 -07:00
bjorn 970a84a514 Surface, swapchain, window texture, vsync; 2022-05-11 15:28:04 -07:00
bjorn f7b4ec725f Render passes; 2022-05-11 12:51:13 -07:00
bjorn bfa0d94f2d Pass pipeline API; 2022-05-11 12:50:26 -07:00
bjorn d9e5ba8b9f Slightly broken compileShader/newShader; 2022-05-09 11:47:06 -07:00
bjorn 5d078461a2 Rename copy texture usage to transfer; 2022-05-06 17:26:59 -07:00
bjorn 1fde5a36d0 Transform stack; 2022-05-06 17:26:38 -07:00
bjorn 22e15513f9 Sampler; 2022-05-01 15:47:17 -07:00
bjorn 211e3ef0f8 Compile fixes; 2022-05-01 15:18:56 -07:00
bjorn ebe77e5924 Sketch out Texture uploads; 2022-04-30 18:49:46 -07:00
bjorn 0316378f74 Fix renderView precedence; 2022-04-30 09:13:21 -07:00
bjorn e80d254dc6 Texture API;
Except newTexture because it's hard or something
2022-04-29 20:56:23 -07:00
bjorn 4be958195d Start Texture; 2022-04-29 20:38:34 -07:00
bjorn e53ddfa03b isFormatSupported; 2022-04-29 17:16:16 -07:00
bjorn 48e2509a3c lovr.graphics.wait; 2022-04-28 22:37:03 -07:00
bjorn 7aee0a4656 Add Pass; Buffer transfers; lovr.graphics.submit; Bugfixes; 2022-04-28 22:30:31 -07:00
bjorn a97193caac Buffer stride can not be smaller than the size of a single item; 2022-04-28 15:39:45 -07:00
bjorn a8b7bc75a8 Adjust; 2022-04-27 00:35:09 -07:00
bjorn e8c809a870 Temporary buffers; 2022-04-27 00:28:39 -07:00
bjorn 43f56c223c Tell Vulkan about the engine name and version; 2022-04-27 00:21:04 -07:00
bjorn d2110af83a Fixup; 2022-04-26 22:51:24 -07:00
bjorn 39418b8393 Add temp frame allocator; 2022-04-26 22:44:44 -07:00
bjorn a3438274b5 Add non-scratchpad Buffers;
This includes the memory allocator and the morgue.

You can't actually write any data to the buffer yet, since we don't have
commands or temp buffers.  Temp buffers (scratchpads) are coming soon.
2022-04-26 15:32:54 -07:00
bjorn 50ebed697e Update some features and limits;
- rm dynamicIndexing and nonUniformIndexing, for now (arrays aren't well
  supported)
- rename compressed texture features
- move clip/cull distance to limit instead of feature (limit can be 0)
2022-04-26 15:31:51 -07:00
bjorn 3ae0ff568f Rework device info; 2022-04-22 13:28:59 -07:00
bjorn be1cedc922 Always enable fullIndexBufferRange feature; 2022-04-22 01:07:07 -07:00
bjorn f37c1824da lovr.graphics.getDevice/getFeatures/getLimits; 2022-04-21 17:39:59 -07:00
bjorn 40e9a4ab73 core/gpu; 2022-04-21 17:39:59 -07:00
bjorn cf2f63f147 Add missing include; 2022-04-21 17:39:59 -07:00
bjorn 37221afbc6 rm graphics module; 2022-04-21 17:39:58 -07:00
bjorn d1dc2f3199 rm pico;
Notes:

- We can actually use a single Activity.java file for oculus/pico now
- We can unconditionally compile os_android.c on Android
- No need for including extra jars in build system
- Headset rendering is guaranteed synchronous now, no need to ref L
- Add an "android flavor" build setting to differentiate between oculus
  and pico devices, since they both use OpenXR.
- Update the pico manifest to reflect their OpenXR sample
- Remove some OpenGL hacks that aren't necessary anymore
2022-03-22 16:03:21 -07:00
bjorn 2da18d419b mv util src; 2022-03-22 00:13:38 -07:00
bjorn a4faad39f8 Font:getFilter; Font:setFilter; 2022-03-15 16:02:35 -07:00
bjorn fdfcb5539f Merge branch 'master' into dev 2022-03-14 13:19:59 -07:00
murat g ee3ba6ef3e Font filtering now respects the default setting. 2022-03-03 22:41:47 -08:00
bjorn 20e4567bd6 Merge branch 'master' into dev 2021-12-20 17:12:39 +02:00
bjorn 0a2f968850 Fix circle uvs;
After changing circle scale from diameter to radius, the uvs broke,
since they are calculated from the position.
2021-10-09 03:52:11 -07:00
bjorn 04d6996b94 Font:getWidth also returns width of last line; 2021-09-06 16:14:47 -07:00
bjorn a3b791a7e7 Fix Canvas flushing; 2021-03-07 21:19:24 -07:00
bjorn 4f5adbc64c lovr.system; 2021-02-25 09:00:12 -07:00
bjorn 39a4d2c1d5 rm lovr.graphics.triangle; 2021-02-24 17:45:31 -07:00
bjorn 0919da4091 Improve MSDF font shader; Add spread/padding settings to Font; 2021-02-10 07:08:29 -07:00
bjorn 8c714c45b0 Clean up some includes; 2021-02-08 11:16:00 -07:00
bjorn bc4cde1653 Adjust lovrRelease signature; 2021-02-08 17:52:26 -07:00
bjorn 3ded60948f rm core/ref; rm lovrAlloc; util does refcounting; 2021-02-08 17:26:44 -07:00
bjornbytes 80a33c0544 mat4_multiply -> mat4_mul;
quat_mul vs. mat4_multiply is inconsistent.  Going with mul over
multiply is consistent with vec3_sub and Lua's __mul metamethod.
2020-11-21 14:32:59 -07:00
bjorn e8db2f8187 Basic cylinder uvs; 2020-11-12 18:08:05 -07:00
bjornbytes 5c381ead34 Force set vsync in lovrGraphicsCreateWindow;
Headset drivers are allowed to override the vsync setting if vsync
messes up their frame timing.  The vsync property is effectively a
global piece of state in core/os and doesn't change across restarts
because the window is persistent.  This can mean that if you switch
from a headset driver that wants vsync off (anything except desktop)
to a headset driver that doesn't care what the vsync is (desktop),
you could end up with a vsync setting that doesn't match t.window.vsync.
I think this is a symptom of poor design somewhere and the best solution
to this probem is "to just not have it".  Similar issues exist for, e.g.
the window size (but that one is less weird because at least you were
the one who changed it).  For now we are just going to ensure that
lovr.graphics.createWindow always modifies the vsync property.
Untested, may need to adjust this fix later.
2020-11-02 11:57:02 -07:00
bjorn 38875cb399 Fix buffer flushing;
lovrGraphicsMapBuffer had the potential to cause a flush.  Flushing
unmaps buffers.  This meant that during any of the calls to map while
creating a Batch, it was possible to cause a flush and unmap other
buffers that expected to be mapped.  This caused writes to unmapped
pointers and subsequent skipping of calls to glFlushMappedBufferRange.

The fix is to figure out if we need to flush upfront and get it out
of the way before mapping any buffers.
2020-10-29 12:12:34 -06:00
bjorn 0388213be4 Reset camera after lovr.headset.renderTo; 2020-10-02 19:50:00 -06:00