bjorn
97e90a8699
Fix checkvariant error message;
2019-08-19 14:16:42 -07:00
bjorn
584261e21f
rm ffi vectors;
2019-08-19 14:13:36 -07:00
bjorn
c703092f87
Add missing timers GraphicsFeature;
2019-08-13 22:11:59 -07:00
bjorn
93f076acc9
Fix default uniform values;
...
Not supported in GLES.
2019-08-09 17:36:14 -07:00
bjorn
4d3bfea67c
Model:getMaterial(name|index); rm Model:setMaterial;
2019-08-09 16:10:46 -07:00
bjorn
a1cc3fb838
rm lovr.headset.getDisplayTime;
...
It is not useful in its current state, but will be useful later.
2019-08-09 00:01:08 -07:00
bjorn
289d365866
Better error messages when loading cubemaps;
2019-08-07 15:14:59 -07:00
bjorn
96c47d590c
rm lovrEnvironmentTexture from Material;
2019-08-05 15:20:17 -07:00
bjorn
06fb8b2503
Simplify fill;
...
lovr.graphics.fill renders a fullscreen quad, it's convenient because
you don't need to set up a mesh and toggle all the pipeline states.
However, if you are dealing with copying/rendering between stereo
textures, you have to write your own shader for that. For now.
2019-08-03 16:03:13 -07:00
bjorn
38671d4ca9
Fix warning;
2019-08-01 13:01:41 -07:00
bjorn
7690db28af
Windows: Fix all the int warnings;
2019-07-31 17:51:49 -07:00
bjorn
ca8e280dcd
Fix texture refcounting in lovr.graphics.newTexture;
...
Also a memory leak with window icons (does anyone use that?)
2019-07-31 14:43:35 -07:00
bjorn
78f2060405
rm lovr.headset.getAcceleration, getAngularAcceleration;
...
Because OpenXR did...
2019-07-30 20:22:08 -07:00
bjorn
9712f4765c
lovr.headset.hands is CURSED;
2019-07-30 20:17:38 -07:00
bjorn
947c468eb1
Don't restart twice on F5;
2019-07-29 11:52:06 -07:00
bjorn
2b19c64aca
rm primary DeviceButton and DeviceAxis;
...
It is confusing and doesn't really solve the intended problem very well.
For now we will all just suffer with our tedious device-specific Lua code.
2019-07-17 17:33:21 -07:00
bjorn
c92c0ef3c5
lovr.headset.isTracked;
2019-07-17 17:09:45 -07:00
bjorn
416f28990a
Tracking functions return 0 instead of nil; rm lovr.headset.getDirection;
2019-07-17 17:07:33 -07:00
bjorn
a04d55d13e
Fix quat indexing in vanilla Lua;
2019-07-16 23:03:27 -07:00
bjorn
013d301c35
Fix vec3:sub in vanilla lua;
2019-07-16 22:53:01 -07:00
bjorn
7f445db3cc
Update mat4:set for vanilla lua;
2019-07-16 22:51:26 -07:00
bjorn
122143b13a
vec4;
2019-07-16 20:30:51 -07:00
bjorn
9156fa2cbf
Vector rework;
2019-07-16 20:30:51 -07:00
bjorn
4b4020d3a7
Model:pose; Model:getNodePose;
2019-07-11 20:09:46 -07:00
bjorn
6b87576e6d
Channel: cleanup;
2019-07-11 11:29:18 -07:00
bjorn
1f8a7e073f
Curve: cleanup;
2019-07-11 11:22:03 -07:00
bjorn
3c07ad6b0b
Replace Animator with Model:animate;
2019-07-10 22:08:19 -07:00
bjorn
4372eb293e
rm comma operator;
...
everyone is making fun of me haha
2019-07-10 18:46:51 -07:00
mcc
a6936b5649
Fix -DLOVR_ENABLE_THREAD=OFF compile
...
l_event.c was processing a thread-related event and in the process using a thread struct, even when LOVR_ENABLE_THREAD is undefined and threads do not exist. I caused the thread event type to simply not exist when the thread module is not being built.
Since the event is now only sometimes present, I put it at the end of the enum as slight protection against binary mismatches with dynamically loaded modules.
2019-07-10 16:23:20 -07:00
bjorn
2fb393306c
rm skybox args;
...
They used to always be necessary, now they are almost never necessary.
2019-06-29 21:01:03 -07:00
bjorn
d3f08fd1f0
rm logo.png;
2019-06-29 18:28:20 -07:00
bjorn
e82ba030a6
lovr.headset.getDisplayTime;
...
Returns the predicted display time, which is the estimated time at which
the photons of the next frame will hit the eyeballs of a person in the HMD.
This should be used instead of lovr.timer.getTime when used for rendering
something that is time-dependent. Updating simulations, logic, or access
to high frequency times should still use lovr.timer.getTime.
2019-06-29 17:36:36 -07:00
bjorn
d87fc56b63
lovr.headset.getDisplayMask;
2019-06-28 00:13:45 -07:00
bjorn
551dea8c86
Adjust includes;
2019-06-27 13:44:09 -07:00
bjorn
fe21de403b
lovrGraphicsDrawMesh;
2019-06-27 13:35:43 -07:00
bjorn
928ccee5f1
Multiview;
2019-06-25 01:21:59 -07:00
bjorn
9f3638b018
TextureData:paste;
2019-06-20 23:36:18 -07:00
bjorn
7ebee200ea
rm strdup;
...
It isn't part of C, causing compiler errors on some platforms.
2019-06-20 22:21:31 -07:00
bjorn
879c789a08
Polyfill M_PI;
...
It technically isn't part of C, which is causing problems on some systems.
2019-06-20 21:43:40 -07:00
bjorn
4611b1c9a3
Add no-op standard shader;
2019-06-20 14:21:35 -07:00
bjorn
eb1e257209
Add new array implementation; Upgrade filesystem;
...
Filesystem:
- Uses streaming file IO.
- Uses less memory when requiring files.
- Simplifies its require path implementation.
2019-06-16 13:30:30 -07:00
bjorn
f8f6d98df4
Use better default for identity quat;
2019-06-14 15:04:17 -07:00
bjorn
9c322495fa
Fix bug when reading mat4s;
2019-06-14 13:22:13 -07:00
bjorn
2f3c23ed7e
Ensure getHands uses 4-element vec3;
2019-06-14 13:04:10 -07:00
bjorn
79083c7df1
Fix warnings on newer versions of gcc;
2019-06-11 19:57:20 -07:00
bjorn
e9853ed3c7
t.math.ffi conf flag;
2019-06-10 00:11:20 -07:00
bjorn
98f4365474
Add astc and dxt GraphicsFeatures;
2019-06-09 23:59:57 -07:00
bjorn
b0a7d5c122
ASTC textures;
...
I like typing numbers.
2019-06-09 09:11:29 -07:00
bjorn
06c6b172de
vec3 has 4 elements;
2019-06-03 07:20:03 -07:00
Bjorn Swenson
68c1b6a201
Merge pull request #122 from bjornbytes/hand-updates
...
Hand updates
2019-06-03 00:14:45 -07:00
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