bjorn
dc1c011380
Fix bug with std140 offset logic;
2020-01-09 21:57:25 -08:00
Nevyn Bengtsson
3279c0d3f0
Document buffer unqueueing in source play
2020-01-09 16:37:28 +01:00
Nevyn Bengtsson
ab3e7a52fa
AudioStream: fix broken GetDurationInSeconds
...
d'oh
2020-01-09 00:01:18 +01:00
Nevyn Bengtsson
86ba2feeeb
RawAudioStream: Use cursor instead of realloc-remainder
...
Previous code would wastefully reallocate memory for every time a buffer is too big to fit. New code just uses an index into the next buffer at which to start reading, requiring no extra allocation.
2020-01-08 23:52:08 +01:00
Nevyn Bengtsson
1ca57a073c
style fixes after review
2020-01-08 23:44:28 +01:00
Nevyn Bengtsson
edbfbf9bdc
audiostream: make getDuration consistent between raw and buffer-based
...
queueLength was in samples, samples was samples/channelCount. Now samples is always samples, and the division by channels occurrs in the new getter
2020-01-08 17:58:25 +01:00
Nevyn Bengtsson
af6b3515ef
audiostream: use samples
instead of queueLength
...
Instead of having a bogus samples ivar in AudioStream when it's raw, use it to denote the amount of audio data enqueued.
This means `stream:getDuration()` gets the same meaning as `stream:getQueueLength()` (except in seconds instead of samples), so we can remove the latter.
2020-01-08 17:55:04 +01:00
Nevyn Bengtsson
3cb7649996
audiostream: what the heck is memory.h
...
fixes review comment
2020-01-08 17:49:13 +01:00
Nevyn Bengtsson
ae5877a299
Rewind raw sources on explicit stop
...
I missed this one in dbe2edd8
2020-01-05 21:26:41 +01:00
Nevyn Bengtsson
1db932d856
Source: Stop, then unqueue buffers
...
Doing it the other way around is illegal; you may not unqueue unprocessed buffers, so we need to stop first.
2020-01-05 21:26:14 +01:00
Nevyn Bengtsson
b3fb31f5a4
Destructor for raw audio stream
2020-01-05 21:19:08 +01:00
Nevyn Bengtsson
dbe2edd89d
Source: Do rewind on stop like before, and clear buffers
...
I changed my mind. Let's use rewind to clear buffers on a raw stream like Bjorn suggested, and put rewind at stop like it was before.
2020-01-05 21:08:30 +01:00
Nevyn Bengtsson
a8b4dc673d
Accessor for RawAudioStream:getQueueLength
...
Useful for determining current amount of latency.
2020-01-05 00:05:29 +01:00
Nevyn Bengtsson
5232aa2ff2
RawAudioStream: Add a limit to amount of queued data
...
This is useful for making sure the audio subsystem doesn't go haywire with too much generated data
2020-01-04 23:49:58 +01:00
Nevyn Bengtsson
2d681260e5
RawAudioStream: Fix byte/sample confusion
...
dequeue_raw thought that size was in bytes, but it's in samples.
2020-01-04 23:22:58 +01:00
Nevyn Bengtsson
a3720b494b
RawAudioStream: Fix use-after-free
2020-01-04 02:02:32 +01:00
Nevyn Bengtsson
e85a9b74c6
Audio source: unqueue before playing
2020-01-04 01:58:03 +01:00
Nevyn Bengtsson
a274eb05d1
RawAudioStream: Fix a buncha crashes
...
It's still buggy but at least less so
2020-01-03 23:01:21 +01:00
Nevyn Bengtsson
33bee6ce44
Audio: Rewind on play, not stop
...
Before, streams were rewound when they stopped, so that next time they're played they're played from the start.
Instead, rewind on play instead, so that it's done when it's needed. This gets us a good point to make sure we're not rewinding raw streams too.
2020-01-03 23:00:58 +01:00
Nevyn Bengtsson
c6806f50e1
RawAudioStream: getter for isRaw
...
And disallow looping raw streams
2020-01-03 22:59:37 +01:00
Nevyn Bengtsson
4fb4f6cdd1
RawAudioStream lua API
2020-01-03 17:15:12 +01:00
Nevyn Bengtsson
f6abb8d714
Raw audiostream implementation
...
Naive unoptimized implementation to get a feel
for the API design.
2020-01-02 20:34:55 +01:00
Jason Dogariu
163367a3ba
rm pragma pack to fix OpenVR on Linux and Mac
2020-01-01 17:34:45 -05:00
bjorn
d228dc95d7
Automatically convert binary resources;
...
- Teach CMake how to compile binary resources to C headers, like xxd.
- Note: tup is already using xxd to do this.
- gitignore binary resource headers to reduce git noise and avoid problematic
interactions between git and build systems.
2019-12-29 11:25:30 -08:00
bjorn
12fcaffc3b
Slight update to lovrDirSep;
...
Macro instead of global variable.
2019-12-29 10:30:26 -08:00
bjorn
79fd5ad7d8
Name boot.lua chunk properly;
...
This makes error messages nicer.
2019-12-28 23:18:03 -08:00
bjorn
d1657f401d
Fix some memory leaks;
2019-12-20 04:13:38 -08:00
Bjorn
ebde129204
Merge pull request #174 from mcclure/android-0.14
...
Android fixes. Major change is lovrMain() {} is now lovrMain {}
2019-12-17 17:23:50 -08:00
mcc
c563787f7d
Android fixes. Major change is lovrMain() {} is now lovrMain {}
...
The oculus drivers choke on #define lovrMain()
2019-12-17 20:20:09 -05:00
mcc
3ff94d8797
Bring back old File C API (read-only currently)
...
This code path is not used anywhere in this commit, but aids in developing Lovr addons.
2019-12-17 20:06:42 -05:00
Bjorn
16b93869ee
Merge pull request #143 from bjornbytes/shadow-samplers
...
Shadow samplers;
2019-12-14 11:34:38 -08:00
bjorn
e2d8f8c645
platform -> os;
...
The function names are staying the same for now.
2019-12-13 19:55:46 -08:00
bjorn
e2f67c106d
Thread:start supports up to 4 arguments;
...
They are passed to the chunk.
2019-12-13 15:50:10 -08:00
bjorn
6f24da9f7f
Rework Tupfiles;
...
- One toplevel Tupfile that makes it more clear what happens.
- Add config flags for -Werror, -fsanitize, and separate debug/optimize flags.
- Automatically integrate with libs built by CMake (build folder, rpath, libs folder).
- Disabling modules actually works, only the stuff that's needed is built.
2019-12-13 06:52:57 -08:00
bjorn
5957d07448
Fix warnings;
2019-12-13 03:41:35 -08:00
bjorn
e316e6156b
lovr.graphics.get/setColorMask;
2019-12-10 13:44:51 -08:00
bjorn
c87d6dec3d
lovrPlatformGetProcAddress;
...
Seems nicer than a global and allows for logging/hooks;
2019-12-10 13:15:12 -08:00
bjorn
2f9400a5f7
Adjust includes;
2019-12-10 13:01:28 -08:00
bjorn
b518a4c983
rm misc physfs;
2019-12-10 12:38:06 -08:00
bjorn
403ed8d3b0
Windows;
2019-12-10 12:19:50 -08:00
bjorn
488c125c5f
Draw the rest of the owl;
2019-12-10 12:19:50 -08:00
bjorn
d2b0b30faf
Texture:encode doesn't use File;
2019-12-10 12:19:50 -08:00
bjorn
bc948e7ea5
rm trailing whitespace;
2019-12-05 13:40:05 -08:00
bjorn
bfd63e3515
Use restrict modifier in curve evaluation;
...
Allows compiler to emit SIMD, way smaller/faster.
2019-12-05 13:39:04 -08:00
bjorn
c07b9e3fec
rm unnecessary include;
2019-11-28 16:04:41 -08:00
bjorn
1030c01a35
Stop aligning pool memory;
...
It isn't necessary anymore since we aren't hiding data in the alignment
bits and it seems to be causing problems in wasm.
2019-11-28 15:59:04 -08:00
bjorn
3e347f0521
Properly initialize uniform.dirty;
2019-11-28 15:31:27 -08:00
bjorn
2ecc1c552f
Fix uniform array hashing;
2019-11-26 11:34:39 -08:00
Bjorn
539e25897b
Merge pull request #157 from bjornbytes/shape-sensor
...
Shape:isSensor; Shape:setSensor;
2019-11-20 18:35:24 -08:00
bjorn
c031c0c578
Fix comment;
2019-11-18 03:37:42 -08:00
bjorn
bd169a4a4d
Fix readable buffers;
...
Unsynchronized/invalidated mapping doesn't work if the read bit is set.
2019-11-14 12:42:52 -08:00
bjorn
13136482b9
Fix Channel memory leak;
...
Channels need to be removed from the global array/map when destroyed.
Note that this exposes an infinite loop in map_remove, which will
be fixed later.
Note also that Channel's are retained if they have any messages in
them, to prevent releasing a channel while it has pending messages.
2019-11-11 18:33:33 -08:00
bjorn
a7e24ab28e
Joint:isEnabled; Joint:setEnabled;
2019-11-11 16:39:02 -08:00
bjorn
d21911d010
Add core/map hash table; rm lib/map;
2019-10-30 00:07:05 -07:00
bjorn
b35ebc15b6
rm LOVR_USE_SSE;
...
It doesn't really improve performance on an average LÖVR app and
isn't worth the complexity.
2019-10-22 16:46:54 -07:00
bjorn
b940f2d53f
Add AABB to OBJ models;
2019-10-21 17:46:28 -07:00
Bjorn
d7b3e1cf46
Merge pull request #160 from nevyn/fix/objc_msgsend_cast
...
Cast objc_msgSend before calling it
2019-10-15 13:12:19 -07:00
Bjorn
0bb3271bb5
Merge pull request #159 from nevyn/fake-controller-position
...
Desktop driver: Move left controller with mouse
2019-10-15 13:05:36 -07:00
Nevyn Bengtsson
ab6e4891e1
Cast objc_msgSend before calling it
...
Calling objc_msgSend with its vararg signature will only work most
of the time, and fail very weirdly when it doesn't. It's weird,
but you're supposed to always cast it to the signature of the
selector you're calling.
I think this is even required when building on Catalina, or for arm64?
2019-10-15 22:00:15 +02:00
Nevyn Bengtsson
e35a5435ca
update leftHandTransform in desktop_update
...
to be consistent with how headTransform is calculated.
also, rename ‘transform’ to ‘headTransform’ for consistency.
2019-10-15 21:50:28 +02:00
bjorn
4d2aa81647
Reset active texture in lovrGpuInit;
2019-10-15 11:34:49 -07:00
bjorn
d93e17e800
Texture:setCompareMode; Shadow samplers;
2019-10-14 17:12:34 -07:00
bjorn
25fa80f1d5
Fix comment;
2019-10-14 16:10:34 -07:00
bjorn
c3f91e9ff3
Actually fix/test the issue with .lovr files on macOS apps;
2019-10-14 15:24:02 -07:00
Nevyn Bengtsson
cb75b387e5
Desktop driver: Move left controller with mouse
2019-10-14 10:08:12 +02:00
bjorn
ac441ec15b
lovrGraphicsGetCamera;
2019-10-12 12:45:11 -07:00
bjorn
b6093eda2a
Shape:isSensor; Shape:setSensor;
2019-10-10 15:36:28 -07:00
bjorn
8c0ae3fbb3
More WebVR (controller) fixes;
2019-10-09 14:54:07 -07:00
bjorn
5f404e2b1f
WebVR fixes;
...
- Re-add the maf.c file that exports all the maf symbols.
- Fix lovrGpuTock for WebGL.
2019-10-07 19:50:17 -07:00
bjorn
eb83962fc6
OpenXR fixes;
2019-10-02 16:29:09 -07:00
Bjorn
c210d4e11d
Merge pull request #152 from bjornbytes/mac-bundle
...
Load .lovr files from the macOS app bundle;
2019-09-26 20:21:50 -07:00
bjorn
2e44926767
Cleanup;
2019-09-26 20:19:50 -07:00
bjorn
f4c6e9bd12
oculus_mobile: set error callback based on current coroutine;
...
Currently:
- load/update/run/etc. take place on the boot.lua coroutine.
- draw happens "asynchronously" on the main thread.
When C needs to throw an error, it doesn't know which thread to
throw the error on. If it throws it on the wrong thread, you get
a crash instead of an error screen.
One way to fix this is to change the error context based on the
thread that's currently running, so that errors in C are thrown
on the correct thread. This is the approach that's taken here.
A potentially better approach would be to run all the code on the
same thread, but I ran into issues when I tried to do this.
It may also be possible to (ab)use the Lua panic handler to catch
errors on one of the threads and somehow forward them to the other.
2019-09-26 18:46:19 -07:00
Bjorn
d23f2f5810
Merge pull request #151 from sophiabaldonado/oculus-mobile-fix-error-screen
...
Throw lua errors in the error handler
2019-09-26 18:44:05 -07:00
mcc
dc92eb5c58
Oculus mobile vibrate() returns false on illicit second call; style changes
2019-09-26 19:32:12 -04:00
mcc
4a41f98562
Vibrate function for Oculus Quest, first pass
...
Only does "simple" vibrate (hard on/off). Supports duration but not frequency. Requires a corresponding commit in the lovr-oculus-mobile repo.
2019-09-26 18:40:04 -04:00
bjorn
0129a80b27
Load .lovr files from the macOS app bundle;
2019-09-24 21:37:44 -07:00
sophia
ef84a16716
Throw lua errors in the error handler;
2019-09-24 12:04:36 -07:00
bjorn
403b217781
Fix Model destructor memory issues;
...
- Memory leaks.
- Freeing things that weren't allocated.
2019-09-20 13:46:27 -07:00
bjorn
2c29119e44
Fix non-interpolated cubic spline keyframe evaluation;
2019-09-19 23:01:50 -07:00
bjorn
1902787b1b
Modify GPU timer API;
...
- lovr.graphics.tock returns the latest value of the timer, or 0.
- Timers are not in the stats table anymore.
This is to prepare for an upcoming internal change that affects timers.
2019-09-18 18:21:38 -07:00
bjorn
e96c541244
Multithreaded builds on Windows; Formatting;
2019-09-18 16:12:08 -07:00
bjorn
f82bcb703b
Finalize skeletal input API;
2019-09-18 16:12:08 -07:00
mcc
785c7c722b
Oculus mobile: Promote Lua print() statements to INFO
...
This means Lua print() statements can be uniquely filtered out vs anything else (because internal Lovr logging uses loglevel DEBUG and lovr errors use loglevel WARN).
2019-09-11 19:43:44 -04:00
bjorn
79b5d2962c
Fix problem with vector lightuserdata handles;
2019-08-31 03:08:42 -07:00
bjorn
17ae64baec
Fix sphere winding;
2019-08-31 03:00:40 -07:00
bjorn
f97031a8ec
Fix Android print with multiple arguments;
2019-08-26 16:19:58 -07:00
bjorn
f64e2064ef
Adjust Canvas padding so it's 128 bytes;
2019-08-23 01:43:35 -07:00
bjorn
80eaea21f1
Adjust Buffer padding so it's 48 bytes;
2019-08-23 01:35:46 -07:00
bjorn
8d8f4eef73
Adjust Texture padding so it's 64 bytes;
2019-08-23 01:34:23 -07:00
bjorn
28344928c9
Simplify arr;
2019-08-21 23:16:58 -07:00
bjorn
13655d0df4
Simplify logging;
2019-08-21 19:02:02 -07:00
bjorn
cd09e1e695
rm sds;
2019-08-21 16:30:20 -07:00
bjorn
8d4760167f
luax is now api;
2019-08-21 15:27:26 -07:00
bjorn
3050d70f3d
Slightly better OpenVR head pose;
2019-08-19 14:55:28 -07:00
bjorn
584261e21f
rm ffi vectors;
2019-08-19 14:13:36 -07:00
bjorn
e6bedba0bc
Fix OpenVR head pose;
2019-08-17 22:50:35 -07:00
bjorn
a4781c7013
Fix cylinder winding;
2019-08-12 20:03:32 -07:00
bjorn
948363e7df
OpenGL: Enable seamless cubemap filtering;
...
It is always used in WebGL 2 and OpenGL ES 3.
2019-08-09 17:22:00 -07:00
bjorn
4d3bfea67c
Model:getMaterial(name|index); rm Model:setMaterial;
2019-08-09 16:10:46 -07:00