bjorn
de6d3dab5b
Add tup build system;
...
It's still a rough draft and likely only works on my machine, but can be
improved over time.
Rough explanation:
- tup.config contains high-level build configuration defaults.
- Tuprules.tup contains mostly compiler flags (generated from the
tup.config) and declares some macros used to compile code.
- Tupfile takes all generated object files and links them into the
lovr executable.
- src/Tupdefault defines the default build steps for src and all
subdirectories, which is to compile all .c files to .o files and put
them in the <objects> bucket for linking by the toplevel Tupfile.
It's possible to have multiple configs active at once for different
platforms, projects, etc. To do this, create a folder for each build
variant you want, and place a tup.config in each folder (it can be a
symlink, which is helpful). Then, invoking `tup` will build all your
variants, or you can build a specific one by doing `tup <foldername>`.
2019-06-10 04:06:22 -07:00
bjorn
31a1dc6cee
Details;
2019-06-10 03:39:53 -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
0b5c609264
Add OpenVR touch bindings;
...
Untested.
2019-06-06 01:10:50 -07:00
bjorn
5551f76557
Reset render data when restarting in oculus_mobile;
...
Fixes a crash where rendering would occur with the old Lua state
after a restart.
2019-06-05 20:23:21 -07:00
bjorn
c0f4e2848b
Update android build;
2019-06-05 20:22:51 -07:00
bjorn
0c75f40793
rm the other restrict;
...
I guess it just isn't portable.
2019-06-04 04:43:02 -07:00
bjorn
feae7bdf3a
rm extra restrict qualifier;
...
Maybe this is confusing MSVC. Doesn't appear to impact codegen.
2019-06-04 04:20:23 -07:00
bjorn
d1f754d5f9
Fix Model memory leaks;
2019-06-03 08:13:42 -07:00
bjorn
06c6b172de
vec3 has 4 elements;
2019-06-03 07:20:03 -07:00
bjorn
31e086edaf
Inline all the maf functions;
2019-06-03 07:19:25 -07:00
bjorn
4eb03006d7
Fix SoundData loading;
2019-06-03 00:29:41 -07:00
Bjorn Swenson
68c1b6a201
Merge pull request #122 from bjornbytes/hand-updates
...
Hand updates
2019-06-03 00:14:45 -07:00
bjorn
dc34ed4570
Start to trend towards 4-element arrays for vec3;
...
It will be important for enabling more SIMD.
2019-06-02 20:35:52 -07:00
bjorn
c7a2e513d3
Inline hash function;
2019-06-02 04:15:46 -07:00
bjorn
575552a147
Restart hotkey works on default error screen;
2019-06-02 03:29:34 -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
cf7a738a9f
Fix openvr.c;
2019-06-02 02:27:19 -07:00
bjorn
83c2d3ceef
Optimize timer module slightly;
2019-06-02 02:02:15 -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
fe559903e1
Oculus Go controller has handedness;
2019-05-31 10:37:43 -07:00
bjorn
d11e9be175
Lua userdata store their destructor in their metatable;
2019-05-28 16:31:13 -07:00
Bjorn Swenson
5ec6f1d1d1
Merge pull request #120 from mcclure/oculus-quest
...
Oculus quest support
2019-05-28 16:30:17 -07:00
mcc
1449d4c914
Oculus mobile: Support getAcceleration
2019-05-28 18:59:05 -04:00
bjorn
06e3ef702c
Add built-in ShaderFlag for skinning vertices;
...
Now you can pass in the { skinned = true } flag when creating a Shader
to get skinning behavior without needing to write it yourself. The
default is still false.
Need to profile to make sure the if is getting optimized out.
2019-05-28 03:43:54 -07:00
bjorn
c5210deae8
Fix ShaderFlag parsing;
2019-05-28 03:43:12 -07:00
bjorn
f3d31cf4ef
Add multiview and timer query extensions;
2019-05-28 03:14:08 -07:00
bjorn
1cfc2adf4a
Fix typo;
2019-05-28 02:45:08 -07:00
bjorn
6b439327fa
Make refcounts atomic;
2019-05-28 02:43:15 -07:00
bjorn
29b2420dea
Work around macOS flicker bug;
...
At this point I don't know if maybe I'm just using UBOs wrong but whatever.
2019-05-27 19:05:47 -07:00
bjorn
4221c547d7
glTF: Add support for base64 buffer data;
2019-05-26 21:13:59 -07:00
bjorn
56f4c812ce
Small intermediate fix for models without animators;
2019-05-26 21:12:07 -07:00
bjorn
d08c454f46
Fix sign issue in rasterizer;
...
Fixes missing glyphs.
2019-05-26 12:51:25 -07:00
mcc
f4189d13e8
Oculus Mobile fixes: Fix potential crash, fix touches on Go after Quest changes
2019-05-26 11:17:49 -04:00
mcc
991b35a628
Oculus mobile: revamp bridge to support Oculus Quest
2019-05-26 10:29:42 -04:00
bjorn
0b8bc4145e
openxr: Begin the session at the correct time;
2019-05-25 20:15:42 -07:00
bjorn
b26e29cb7b
Fix more LuaJIT math casts;
2019-05-24 20:54:38 -07:00
bjorn
831ebda303
Fix LuaJIT Pool integration;
2019-05-24 20:39:05 -07:00
bjorn
d5ad10f408
Permit symbolic links in lovr.filesystem;
...
If needed, it can be made configurable later.
2019-05-24 19:16:43 -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
db5076a100
Rename SHADER_DEFAULT to SHADER_UNLIT;
2019-05-22 16:34:57 -07:00
bjorn
3dc4d06285
Fix eye enum;
2019-05-22 14:37:46 -07:00
bjorn
698466d19c
Add missing include in animator.h;
2019-05-21 00:32:20 -07:00
bjorn
5b1e281d4c
Switch to a fork of LuaJIT that supports android;
2019-05-21 00:26:21 -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
e4c32d2f08
Fix oculus_mobile api.h include;
2019-05-20 15:17:38 -07:00
bjorn
e87b81e34a
Fix android platform include order;
2019-05-20 15:16:27 -07:00
bjorn
a9972a88de
Fix oculus_mobile_bridge include path;
2019-05-20 15:15:10 -07:00
bjorn
e8a8f6718e
Fix vrapi_getAxis;
2019-05-20 15:13:05 -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
c31853a1d4
Fix build;
2019-05-20 14:31:46 -07:00
bjorn
67b76e08c2
Details;
2019-05-20 04:15:24 -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
1335ab55ae
Warnings/cleanup;
2019-05-20 03:41:12 -07:00
bjorn
7645f4c014
Add core folder;
2019-05-20 02:47:33 -07:00
bjorn
a17f10e273
Add modules folder;
2019-05-19 00:38:35 -07:00
bjorn
4a47afca38
Organize api folder;
2019-05-19 00:31:42 -07:00
bjorn
79ba7a7ad5
gltf: Support partially-keyed animation properties;
2019-05-18 22:19:28 -07:00
bjorn
8d1b335da4
More mapping fixes;
2019-05-18 21:34:36 -07:00
bjorn
440b30df59
Add filter/wrap to default texture;
2019-05-18 04:33:28 -07:00
bjorn
1792f066f2
Fix CMakeLists; Fix buffer unmapping; Formatting;
2019-05-18 01:09:06 -07:00
bjorn
e3e52a7808
Fix issue when animated model has no animator;
2019-05-18 00:30:43 -07:00
bjorn
976d59e364
Undo single-translation-unit experiment for now;
2019-05-17 16:29:24 -07:00
bjorn
6f7c30e7e2
Single-translation-unit experiment;
2019-05-15 12:05:56 -07:00
bjorn
1aef9963f5
Clean up thread module;
2019-05-14 04:43:38 -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
15c4b6fcd2
Fix me ifdefs;
2019-05-13 20:52:11 -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
b8ed63fcc4
Fix double/float conversions;
2019-05-13 04:28:57 -07:00
bjorn
566cd20984
Cleanup;
2019-05-13 04:25:34 -07:00
bjorn
69260cfbb3
openvr: rm state.rift;
...
Yay actions?
2019-05-13 04:25:34 -07:00
bjorn
8e7a4323d0
rm custom PI define;
2019-05-13 03:56:34 -07:00
bjorn
83b8ee2d08
Audio cleanup;
2019-05-13 03:53:17 -07:00
bjorn
97e3774718
Make TimerState private;
2019-05-13 03:35:41 -07:00
bjorn
963f496ac1
Lua hides a Type in its userdata;
2019-05-13 03:21:11 -07:00
bjorn
429efcb38d
Change circle size argument from diameter to radius;
2019-05-12 23:34:04 -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
c20554645e
Initial KTX support;
2019-05-12 22:23:28 -07:00
bjorn
5b0fa8b522
Fix warnings;
2019-05-12 22:23:28 -07:00
bjorn
9a1579a773
Ensure maf symbols are exported on unix;
2019-05-12 22:23:28 -07:00
bjorn
db3c3dbb1e
Fix lovr.headset.hands;
2019-05-12 22:23:28 -07:00
bjorn
ebcdc6d36e
Ensure bone pose gets reset when not animating;
2019-05-12 22:23:28 -07:00
bjorn
28c453075a
Fix batching overflow;
2019-05-12 22:23:28 -07:00
bjorn
511afef0c6
Fix batching issue with non-instanced primitives;
2019-05-12 22:23:28 -07:00