bjorn
374492c586
Add experimental hotkeys flag;
...
- Add t.hotkeys flag to conf.lua, which defaults to true.
- If t.hotkeys is truthy, the following hotkeys will be enabled:
- Escape: Quit the experience
- F5: Restart the experience
2019-06-02 03:00:12 -07:00
bjorn
22fe333150
Update refcounting (again);
...
- Ref struct only stores refcount now and is more general.
- Proxy stores a hash of its type name instead of an enum.
- Variants store additional information instead of using a vtable.
- Remove the concept of superclasses from the API.
- Clean up some miscellaneous includes.
2019-06-02 01:02:26 -07:00
bjorn
d2bff7d239
lovr.graphics.tick and tock;
...
Initial support for GPU timer queries.
2019-06-01 17:29:53 -07:00
bjorn
84bd50379d
Add primary button/axis;
...
It's called "primary".
2019-05-31 12:00:15 -07:00
bjorn
7ac3d6938b
rm TRACKER devices for now;
...
This is not the correct way to expose them. It doesn't seem like
there is consensus on how to expose them yet. At the very least
LÖVR should instead use the hardcoded OpenVR tracker paths like
/camera, /keyboard, /foot/left, /foot/right, etc.
See these issues:
- https://github.com/ValveSoftware/openvr/issues/1030
- https://github.com/ValveSoftware/openvr/issues/962
2019-05-31 10:57:29 -07:00
bjorn
9674276ff7
Add lovr.headset.getHands;
...
The iterator is nice and concise, but a table is more conventional
and allows you to easily retrieve the number of tracked hands. The
iterator version may be removed in favor of the table version, since
you can always iterate over a table yourself.
2019-05-31 10:52:31 -07:00
bjorn
af0678f9e9
rm DEVICE_HAND;
...
If we expose both unhanded hands and handed hands, people need to
deal with handling (haha) both cases in their apps. It's simpler
to always deal with left and right hands, even though it is a bit
less general. Still, this is congruent with the current state of
OpenVR and OpenXR, and I think there are still open questions about
the more uncommon cases where there are more than two hands.
2019-05-31 10:41:40 -07:00
bjorn
d11e9be175
Lua userdata store their destructor in their metatable;
2019-05-28 16:31:13 -07:00
bjorn
c5210deae8
Fix ShaderFlag parsing;
2019-05-28 03:43:12 -07:00
bjorn
9b6f7c35b4
Fix lovr.headset.isTouched;
2019-05-24 15:14:20 -07:00
bjorn
3bf08f0ca3
Add the ability to create default shaders;
...
lovr.graphics.newShader('font')
2019-05-22 18:00:02 -07:00
bjorn
c464bde609
Add DefaultShaders enum;
2019-05-22 16:36:40 -07:00
bjorn
3dc4d06285
Fix eye enum;
2019-05-22 14:37:46 -07:00
bjorn
3804a1c0ee
lovrPlatformGetName;
...
Used in lovr.getOS.
2019-05-20 20:44:39 -07:00
bjorn
4cc154fdfa
More number conversions;
2019-05-20 20:35:07 -07:00
bjorn
df6b7fc96a
Ref is mostly private now;
...
It's really nice how objects don't need to care about how they're
allocated/managed now.
2019-05-20 15:09:06 -07:00
bjorn
57aad490ae
Start sized int conversions;
2019-05-20 14:34:03 -07:00
bjorn
e368723248
Improve platform-specific defines;
2019-05-20 04:05:39 -07:00
bjorn
67ddefd0c2
Ensure platform functions have prefix;
2019-05-20 04:02:25 -07:00
bjorn
b1e848ef6b
Cleanup filesystem module;
2019-05-20 03:51:22 -07:00
bjorn
7645f4c014
Add core folder;
2019-05-20 02:47:33 -07:00
bjorn
4a47afca38
Organize api folder;
2019-05-19 00:31:42 -07:00
bjorn
a4e563fe6f
Clean up event module;
2019-05-14 04:37:56 -07:00
bjorn
3267bad4fa
Add ShaderFlags;
...
newShader and newComputeShader accept an optional options table
that can contain a table of flags. Flags are turned into #defines
in the shader source and can be used as specialization constants in
the future.
Currently they can only be bools and ints. This might change to add
float and/or remove bools.
2019-05-14 03:48:01 -07:00
bjorn
6134abe866
Handle vsync better;
...
- Add vsync flag to t.window and lovr.graphics.createWindow.
- vsync is 1 by default.
- Some headset drivers override vsync if they have special timing requirements.
2019-05-14 00:18:22 -07:00
bjorn
f786c40b4e
Rework Buffer updates;
...
Use unsynchronized mapped buffers on macOS.
Reduce amount of Buffer flushes and stalls by flushing once per
batch instead of once per draw.
2019-05-13 20:35:21 -07:00
bjorn
83b8ee2d08
Audio cleanup;
2019-05-13 03:53:17 -07:00
bjorn
963f496ac1
Lua hides a Type in its userdata;
2019-05-13 03:21:11 -07:00
bjorn
51ce0c1418
rm compat;
2019-05-12 22:28:02 -07:00
bjorn
7c2a119324
SteamVR Input
2019-05-12 22:23:28 -07:00
bjorn
5b0fa8b522
Fix warnings;
2019-05-12 22:23:28 -07:00
bjorn
db3c3dbb1e
Fix lovr.headset.hands;
2019-05-12 22:23:28 -07:00
bjorn
6ff35420bd
More leap fixes;
...
Also reduce branching in headset accessors.
2019-05-12 22:23:28 -07:00
bjorn
26c1859531
Update WebVR;
2019-05-12 22:23:28 -07:00
bjorn
2ecae65925
trackpad -> touchpad;
...
Sorry
2019-05-12 22:23:02 -07:00
bjorn
57321db2cd
lovr.headset.getDriver accepts devices;
2019-05-12 22:23:02 -07:00
bjorn
5413f6a427
Device iterators;
2019-05-12 22:23:02 -07:00
bjorn
7807b1abd7
lovr.headset.getAcceleration, getAngularAcceleration;
...
Add missing getBonePose impls.
Refactor some ovr stuff.
2019-05-12 22:23:02 -07:00
bjorn
b6e1e5e3b0
lovr.headset.getBonePose; Device shorthands;
2019-05-12 22:23:02 -07:00
bjorn
05f4ba7342
Change everything;
...
Use enums because they make things easier.
2019-05-12 22:23:02 -07:00
bjorn
89ccf750ba
Start compat system;
2019-05-12 22:23:02 -07:00
bjorn
c2fc7daf2d
Split mat4_getTransform;
2019-05-12 22:22:29 -07:00
bjorn
801f997b0a
Use vectors for headset pose accessors;
2019-05-12 22:22:29 -07:00
bjorn
344edd8c30
Add missing OpenXR string constant;
2019-05-12 22:22:29 -07:00
bjorn
e22d98e09e
Finish Leap backend;
2019-05-12 22:22:29 -07:00
bjorn
5ff49e73c2
Leap WIP;
2019-05-12 22:22:29 -07:00
bjorn
400598735c
rm isTracked for now;
2019-05-12 22:22:29 -07:00
bjorn
df5de9a35e
Use strings for paths;
...
It's probably slower, but it's way less complicated, so it seems like
a win for now. Can implement compile-time hashing, tries etc. later
if it's identified as a performance issue for a real person.
Also a bunch of cleanup in openvr.c and oculus.c.
2019-05-12 22:22:29 -07:00
bjorn
45931d005a
lovr.headset.isTracked;
2019-05-12 22:22:29 -07:00
bjorn
bb06b211cd
Add missing getDirection binding;
2019-05-12 22:22:29 -07:00
bjorn
5c6163580b
rm unused headset.h;
2019-05-12 22:22:29 -07:00
bjorn
d8581106d4
Support Vive trackers again;
...
/trackers/1
2019-05-12 22:22:29 -07:00
bjorn
85d461e71c
Fixup lovr.headset.getName;
2019-05-12 22:22:29 -07:00
bjorn
50e77fc023
Combine getVelocity and getAngularVelocity impls;
2019-05-12 22:22:29 -07:00
bjorn
a9ef3656a1
lovr.headset.getDirection;
2019-05-12 22:22:29 -07:00
bjorn
965f39f834
Do less work in lovr.headset.getPosition/getOrientation;
2019-05-12 22:22:29 -07:00
bjorn
9a8b119a81
Add missing enum;
2019-05-12 22:22:29 -07:00
bjorn
77f848ea8f
Update oculus backend;
2019-05-12 22:22:29 -07:00
bjorn
f5b976cfae
Actually read paths in API;
2019-05-12 22:22:29 -07:00
bjorn
e406678b1c
rm luax_pushpath;
2019-05-12 22:22:29 -07:00
bjorn
2584809c23
Reorganize path enum;
2019-05-12 22:22:29 -07:00
bjorn
4edb8de0b0
Shorten path enum prefix;
2019-05-12 22:22:29 -07:00
bjorn
86537141ac
Add eye path;
2019-05-12 22:22:29 -07:00
bjorn
b42c3ffc0e
Rename hands to hand;
2019-05-12 22:22:29 -07:00
bjorn
60d2111937
Add proximity to Subpaths;
2019-05-12 22:22:29 -07:00
bjorn
b0067233f7
getType -> getName;
2019-05-12 22:22:29 -07:00
bjorn
fd985c95ff
rm isMounted;
2019-05-12 22:22:29 -07:00
bjorn
da6fd4d07c
Remove Controllers;
2019-05-12 22:22:29 -07:00
bjorn
bd609fc338
rm Controller:getHand;
2019-05-12 22:21:06 -07:00
bjorn
cb0a40a4b6
lovr.headset.isDown; lovr.headset.isTouched;
2019-05-12 22:21:06 -07:00
bjorn
45757f2fa3
Fixes;
2019-05-12 22:21:06 -07:00
bjorn
b95280006a
lovr.headset.newModel;
2019-05-12 22:21:06 -07:00
bjorn
cb79973b98
lovr.headset.vibrate;
...
Signature changed to take strength, duration, and frequency. All
are optional.
2019-05-12 22:21:06 -07:00
bjorn
36e4529dca
lovr.headset.getAxis;
...
Takes a path and returns 1-3 float values representing the components
of the axis at the path. The "touchx" and "touchy" axes are now just
"touchpad".
2019-05-12 22:21:06 -07:00
bjorn
5ab8904809
Controller polyfill; rm Controller pose functions; OpenVR paths;
2019-05-12 22:21:06 -07:00
bjorn
f87b4e6a25
Read paths; Desktop driver uses paths;
2019-05-12 22:21:06 -07:00
bjorn
48cf7e1874
Start paths;
2019-05-12 22:21:06 -07:00
bjorn
8208238df7
Support multiple tracking drivers;
...
Now the lovr.headset module initializes one display driver (the
first one in the list) and multiple tracking drivers. Only drivers
that implement 'renderTo' will be considered for display driver.
Tracking drivers are stored in a linked list, and retrieving pose
information involves trying all of the tracking drivers until the
pose is found.
2019-05-12 22:21:06 -07:00
bjorn
c9775c84ac
Remove t.gammacorrect flag;
...
Gamma correct rendering is core in all supported OpenGL versions,
and it's usually a good idea to enable it.
2019-05-03 17:53:33 -07:00
bjorn
594921d2ec
newThread: can load thread code from a file or Blob;
...
Also fix a lifetime issue: If the string containing thread code was
garbage collected before you started the thread, you would have been
running free'd memory as Lua code!
2019-05-02 15:09:54 -07:00
bjorn
0e0cfee6e8
Font:getWidth returns lineCount;
2019-04-27 11:13:37 -07:00
bjorn
c021afedae
Fix more warnings;
2019-04-20 18:42:25 -07:00
bjorn
b95c97ff57
rm unused mat4_setTransform function;
2019-04-20 14:15:43 -07:00
bjorn
0341233876
Also support hexcodes in lovr.graphics.clear;
2019-04-20 13:38:09 -07:00
bjorn
f268810d2a
Minor cleanup; Fix some undefined behavior;
2019-04-20 13:11:11 -07:00
bjorn
ec7afed2cb
Update one trailing reference to lib/math.h;
...
In a comment...
2019-04-20 11:41:29 -07:00
bjorn
196b4ed010
Rename math to maf;
...
It's funnier and more compatible with some compiler setups,
since it won't get confused with the system <math.h>.
2019-04-20 11:39:20 -07:00
bjorn
9d90e83657
Fix Mesh attribute normalization;
...
Normalize i8 and u8 attribute by default.
Forward attribute normalization from glTF accessors.
2019-04-13 16:08:58 -07:00
bjorn
44be3608a7
lovr.headset.getDirection; Controller:getDirection;
2019-04-12 15:08:45 -07:00
bjorn
fa4f240b7b
Fix plane uv argument parsing;
2019-04-05 05:50:43 -07:00
bjorn
011db5f1e5
Revert "Free objects in their destructors;"
...
This reverts commit d31dca5520
.
We can't unconditionally free because sometimes objects are temporarily
allocated on the stack.
2019-04-05 05:45:05 -07:00
bjorn
a5891bad92
lovr.graphics.plane uv arguments;
2019-04-05 05:34:28 -07:00
bjorn
941fc1717f
headset: forward declarations;
2019-04-05 05:08:03 -07:00
bjorn
ee27af1a85
graphics: forward declarations;
2019-04-05 04:59:14 -07:00
bjorn
66b7288764
event: forward declarations;
2019-04-05 04:32:58 -07:00
bjorn
0d30448bd0
audio: forward declarations;
2019-04-05 04:16:34 -07:00
bjorn
ae470d8804
Make registertype/extend type a macro;
...
Just a nice-to-have.
2019-04-05 03:48:36 -07:00
bjorn
6fdeda9e61
Make lovrRelease non-generic;
...
We know what type we're releasing 99% of the time, we don't need to
play a guessing game in lovrRelease, just have the caller say which
destructor to use.
There is lovrGenericRelease for situations where we need it, which
does the slower lookup of the destructor.
2019-04-05 03:41:03 -07:00
bjorn
efbc88073e
Write vertices at batch time;
2019-04-05 00:49:50 -07:00
bjorn
7409f34d36
lovr.graphics.getStats does a flush;
2019-04-01 07:37:05 +09:00
bjorn
ab42e2ca18
Fix bug when reading point/line/triangle primitive data;
...
- When reading points from a table of numbers, the array
indexing was not correct and vertex positions were not
getting correctly written.
- The normals/texture coordinates weren't getting written,
so their values were using whatever was in the buffer.
Now they are always set to zero.
2019-03-31 00:23:02 +09:00
bjorn
85c51399a6
Fix MSVC warnings;
2019-03-17 00:58:13 -07:00
bjorn
7441456aab
Rename lovr.graphics.getSupported and getSystemLimits;
...
"Features" and "Limits" will be the standard terminology used now.
2019-03-14 21:24:25 -07:00
bjorn
bf5dd56254
vec3:add and vec3:sub accept numbers;
2019-03-13 20:36:50 -07:00
bjorn
8722b6e296
Improve Canvas attachment errors;
2019-03-13 09:35:28 -07:00
bjorn
921d14014e
TextureData:setPixel supports more formats;
2019-03-11 13:36:22 -07:00
bjorn
569c9f7a11
Refactor asynchronous headset render errors;
...
It's now a more general error stored in the registry instead of
in a global variable. There are more helper functions.
2019-03-06 23:17:29 -08:00
bjorn
d45e56146a
Rename fake to desktop;
2019-03-06 23:02:47 -08:00
bjorn
d340fc7aaa
Polyfill LUA_RIDX_MAINTHREAD;
...
Instead of using a static variable.
2019-03-06 08:42:32 -08:00
bjorn
d4c8382306
Fix improper istype calls in LuaJIT;
2019-03-05 02:45:46 -08:00
bjorn
55670ab408
rm trailing whitespace;
2019-03-05 02:29:21 -08:00
bjorn
3d928c1118
lovr.graphics.newMesh accepts Blob again;
2019-03-05 02:08:53 -08:00
bjorn
27e2c56bee
lovr.filesystem.read takes and returns byte count;
2019-03-05 01:59:31 -08:00
bjorn
a8e201d89e
TextureData:getFormat;
2019-02-28 19:29:30 -08:00
bjorn
5e0c2e531f
Source:getPose; Source:setPose;
2019-02-18 18:07:28 -08:00
bjorn
41dbf6115b
Source:getOrientation; Source:setOrientation;
2019-02-18 18:01:17 -08:00
bjorn
af155ff0c5
Ensure Blob size is positive;
2019-02-17 18:43:52 -08:00
bjorn
0cba1ba28d
lovr.audio.getPose; lovr.audio.setPose;
2019-02-17 18:26:56 -08:00
bjorn
075b71e58c
Collider:getPose; Collider:setPose;
2019-02-17 18:20:35 -08:00
bjorn
90d6e2b407
Make binding functions static;
2019-02-17 14:52:22 -08:00
bjorn
d529620fea
rm unused variables;
2019-02-17 14:19:39 -08:00
bjorn
581d1d7a74
Fix warnings;
2019-02-16 23:43:20 -08:00
bjorn
62bce139d3
Fix mat4 constructor;
2019-02-14 10:31:22 -08:00
bjorn
69b6e599e9
Re-add Model:getMaterial and Model:setMaterial;
2019-02-13 23:55:47 -08:00
bjorn
b9b719e862
Fix gamma correct issue with built-in Camera;
2019-02-13 21:14:45 -08:00
bjorn
be58911276
Fix several Mesh problems;
2019-02-13 17:20:43 -08:00
bjorn
a02d4eb659
rm VertexData;
2019-02-13 15:10:52 -08:00
bjorn
9136c7e3c1
Model:getAABB;
...
It takes animated node transforms into account! But not skinning.
2019-02-13 15:10:52 -08:00
bjorn
a24d7e5447
Bugfixes during testing;
2019-02-13 15:10:52 -08:00
bjorn
3911c9d7c8
Support animation names;
2019-02-13 15:10:52 -08:00
bjorn
bea2140676
Animation optimization; Cleanup;
2019-02-13 15:10:52 -08:00
bjorn
09936a8ae2
Load animation names; General testing;
2019-02-13 15:10:52 -08:00
bjorn
540b6a60e0
Refactoring;
2019-02-13 15:10:52 -08:00
bjorn
0a4344577e
Skinning work; Bugfixes;
2019-02-13 15:10:52 -08:00
bjorn
70dc871f88
More work on Animator;
2019-02-13 15:10:52 -08:00
bjorn
80bb75968e
WIP animator rewrite;
2019-02-13 15:10:52 -08:00
bjorn
6b323e3476
Start parsing glTF;
2019-02-13 15:10:52 -08:00
bjorn
50e86579c2
vec3:min; vec3:max;
2019-02-08 12:39:10 -08:00
bjorn
3c83b36845
LuaJIT: Add .name metafields for compatibility;
2019-02-08 08:13:47 -08:00
bjorn
4a25a0120f
Vector rework;
2019-02-08 08:13:47 -08:00
bjorn
dc7f9cd0d5
lovr.graphics.getPixelDensity;
2019-02-05 12:46:48 -08:00
bjorn
8e942561f1
Simplify CompareMode handling;
2019-02-01 15:10:12 -08:00
bjorn
85ab7c7c6e
Fix comment typo;
2019-02-01 14:44:13 -08:00
mcc
4859360209
Fix compile with -DLOVR_ENABLE_HEADSET=NO
2019-02-01 13:20:28 -08:00
bjorn
eae3669fea
Rebuild math.lua.h;
2019-01-31 13:54:54 -08:00
bjorn
a1361fcd41
mat4:unpack accepts raw flag; rm redundant functions;
2019-01-30 16:18:08 -08:00
bjorn
0eb2789a2d
Improve mat4:set;
...
Ended up removing the diagonal variant, sorry holo.
2019-01-30 16:13:44 -08:00
bjorn
3d4cb166bc
Add quat:length;
2019-01-30 00:56:57 -08:00
bjorn
bf89216997
Explicitly convert lua_Numbers to floats;
2019-01-29 22:04:04 -08:00
bjorn
03e3e14718
Font:setFlipEnabled; Font:isFlipEnabled;
2019-01-29 21:49:49 -08:00