bjorn
5957d07448
Fix warnings;
2019-12-13 03:41:35 -08:00
bjorn
fe422ba60f
Use nanosleep instead of usleep;
...
usleep is deprecated and does not exist on some new Linux systems.
2019-12-13 03:41:02 -08:00
bjorn
1ebe68b934
tup: make CONFIG_ENET=n work;
2019-12-10 15:21:34 -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
8795ebb31d
Windows WIP;
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
6a8048765f
luax_loadfile uses core/fs;
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
8da7df68d8
core/fs;
2019-12-10 12:19:50 -08:00
bjorn
f3745a1edc
Use uint64_t for seed in luax_checkrandomseed;
2019-12-05 13:46:12 -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
08f90ab1bd
Make refcount 64 bits to avoid alignment issues;
...
There may be a better way to solve this, but I can't think of one
that doesn't also violate strict aliasing.
2019-11-28 16:03:42 -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
b9f5ece72b
Fix arr_splice;
2019-11-28 15:58:38 -08:00
bjorn
3e347f0521
Properly initialize uniform.dirty;
2019-11-28 15:31:27 -08:00
bjorn
ad5389b1f4
Improve luax_readquat(nil);
2019-11-28 15:26:52 -08:00
bjorn
898a3f9f35
rm double underscores from glsl;
...
This naming pattern is reserved.
2019-11-28 15:25:19 -08:00
bjorn
b69a5ba1a3
Update conf.version;
...
opps
2019-11-27 20:48:58 -08:00
bjorn
2a5bae0b18
Improve error messages for unknown types;
2019-11-27 20:45:18 -08:00
bjorn
2ecc1c552f
Fix uniform array hashing;
2019-11-26 11:34:39 -08:00
bjorn
31b5792713
ifdef out glfwInitHint on emscripten;
2019-11-22 19:36:30 -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
6ad2d8ccef
Add lovrMain macro to shaders (no breaking change);
2019-11-18 23:20:08 -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
9ac34ff190
Add :release to all objects;
2019-11-11 18:42:11 -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
8d12f0b867
Make userdata hashes 64 bit;
2019-11-11 16:39:02 -08:00
bjorn
a7e24ab28e
Joint:isEnabled; Joint:setEnabled;
2019-11-11 16:39:02 -08:00
bjorn
0bd5fced12
Use new glfw method for avoiding chdir;
2019-11-03 15:31:21 -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
d51d2b4105
Fix stack balance with luax_checkvariant;
...
Was breaking Channel:push.
2019-10-22 16:42:10 -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
e32c3ea2df
v0.13.0;
2019-10-14 18:21:07 -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
bjorn
f6cd8120ad
Add macOS bundle resources;
2019-10-14 15:23:46 -07:00
Nevyn Bengtsson
cb75b387e5
Desktop driver: Move left controller with mouse
2019-10-14 10:08:12 +02:00
bjorn
77258ec4dd
mat4 multiplication works with vec4;
2019-10-13 16:02:21 -07:00
bjorn
ac441ec15b
lovrGraphicsGetCamera;
2019-10-12 12:45:11 -07:00
bjorn
f0342341af
Fix quat:mul accidentally working on vec2/vec4;
2019-10-12 12:43:49 -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
ac53f5a56f
Fix Collider:addShape and Collider:removeShape;
2019-10-08 15:45:53 -07:00
bjorn
6ef27ec7cc
Merge branch 'master' of github.com:bjornbytes/lovr
2019-10-08 15:29:04 -07:00
programmer2
ba0aa13835
Fix World:Collide to use new luax_checkshape
...
This appears to have been missed in commit 22fe333
2019-10-08 21:30:03 +02: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
0c642a6790
Improve mat4:unpack;
...
- Orientation is correct when the matrix is scaled
- Orientation calculation is more efficient
2019-10-04 19:26:09 -07:00
bjorn
eb83962fc6
OpenXR fixes;
2019-10-02 16:29:09 -07:00
bjorn
17dda66b69
boot.lua works without headset module;
2019-10-02 16:20:50 -07:00
bjorn
cc858e062c
Don't mind me;
2019-09-26 21:58:26 -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
22beccedc3
Model:getAnimationDuration;
2019-09-19 19:21:31 -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
bjorn
6c130ebd86
Fix warning;
2019-09-18 16:12:08 -07:00
bjorn
b3f1b1db0c
mat4:rotate uses y axis by default;
2019-09-13 23:22:29 -07:00
Bjorn
e4d54f8aa6
Merge pull request #148 from mcclure/signed-lovrViewID
...
Make lovrViewID signed on Oculus Mobile (fix "mask" example)
2019-09-12 00:01:28 -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
mcc
38f4204661
Make lovrViewID signed on Oculus Mobile
...
The "mask" example was failing on Oculus Mobile on the line of glsl:
if (lovrViewID == 1) {
because lovrViewID was unsigned and 1 was signed. One way to fix this would be to replace 1 with 1u as that is unsigned, but this would be the wrong fix because lovrViewID is in fact signed on all platforms other than Oculus Mobile. lovrViewID was depending on platform defined to either gl_ViewportIndex (signed), a signed uniform, or gl_ViewID_OVR (unsigned). The solution is to place an explicit cast in the multiview definition of lovrViewID so that it is signed on all platforms.
2019-09-11 18:22:06 -04:00
mcc
c9cc5362bd
model:getAnimationName(idx) and model:getNodeName(idx)
2019-09-04 21:09:54 -04:00
mcc
8b18c735ca
model:getMaterialName(idx)
2019-09-04 17:17:56 -04:00
bjorn
5ed132635a
Fix error screen when headset module is disabled;
2019-09-03 15:34:41 -07:00
bjorn
3e47f958ad
Fix mat4:lookAt;
2019-08-31 05:45:19 -07:00
bjorn
39376a10d5
normalTexture -> normalMap;
2019-08-31 05:31:20 -07:00
bjorn
79b5d2962c
Fix problem with vector lightuserdata handles;
2019-08-31 03:08:42 -07:00
bjorn
9ea785d210
Fix normal matrix;
...
Now that lighting is in world space.
2019-08-31 03:00:54 -07:00
bjorn
17ae64baec
Fix sphere winding;
2019-08-31 03:00:40 -07:00
bjorn
00412e2e79
Add a conf.lua flag for making the window resizable;
2019-08-28 00:59:03 -07:00
bjorn
50a1629dbc
Model:get[Animation|Material|Node]Count;
2019-08-27 15:02:24 -07:00
bjorn
31fed6a940
Fix stereo flag for custom shaders;
2019-08-27 14:59:17 -07:00
bjorn
f97031a8ec
Fix Android print with multiple arguments;
2019-08-26 16:19:58 -07:00
bjorn
305596adf8
Fix windows build;
...
LOVR_EXPORT needs to be on the declaration, unfortunately.
2019-08-26 15:53:10 -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
a073206c20
Standard shader: Fix some precision issues in GLES;
2019-08-22 21:57:59 -07:00
bjorn
e9654cd067
Fix function prototypes;
2019-08-21 23:19:42 -07:00
bjorn
28344928c9
Simplify arr;
2019-08-21 23:16:58 -07:00
bjorn
9b0e43b249
Fix t.window = nil;
2019-08-21 22:26:31 -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
7c8a44cc57
Cleanup function pointer typedefs;
2019-08-21 14:44:54 -07:00
bjorn
fb279057b8
maf no longer needs to export symbols;
2019-08-21 03:29:37 -07:00
bjorn
b51dece762
Fix bug with permanent vectors;
2019-08-20 00:54:42 -07:00
bjorn
f91eed3834
Rebuild boot.lua.h;
2019-08-20 00:54:36 -07:00
bjorn
3050d70f3d
Slightly better OpenVR head pose;
2019-08-19 14:55:28 -07:00
bjorn
e6c9fd1a6e
rm error screen buttons;
2019-08-19 14:52:56 -07:00
bjorn
26e7233fde
Fix some API issues with lightuserdata;
2019-08-19 14:35:06 -07:00
bjorn
b1b97ddb02
quat:direction returns vec3;
2019-08-19 14:19:10 -07:00
bjorn
97e90a8699
Fix checkvariant error message;
2019-08-19 14:16:42 -07:00
bjorn
2f7743583f
Rebuild actions.json.h;
2019-08-19 14:16:37 -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
c703092f87
Add missing timers GraphicsFeature;
2019-08-13 22:11:59 -07:00
bjorn
a4781c7013
Fix cylinder winding;
2019-08-12 20:03:32 -07:00
bjorn
d3bf51daef
Add alphaCutoff shader flag;
2019-08-12 17:38:03 -07:00
bjorn
c3af8c14c1
Add uniformScale shader flag;
...
Used to switch to a faster version of lovrNormalMatrix, can be used
with all shader types.
2019-08-12 17:33:32 -07:00
bjorn
8821ecd340
Standard shader: Tonemap by default;
2019-08-12 02:36:23 -07:00
bjorn
4eb768b13b
Fix GLSL type cast;
2019-08-11 18:47:12 -07:00
bjorn
265931e474
Standard shader: Multiply with graphics color;
...
I guess.
2019-08-11 18:34:16 -07:00
bjorn
51b4064801
Standard shader: Refactoring;
2019-08-11 18:15:43 -07:00
bjorn
3d8313a7f1
Add analytical approximation for specular BRDF lookup;
2019-08-11 17:22:09 -07:00
bjorn
4719e5edbe
Well that was broken;
2019-08-10 18:12:16 -07:00
bjorn
93f076acc9
Fix default uniform values;
...
Not supported in GLES.
2019-08-09 17:36:14 -07:00
bjorn
b8cb53e021
Standard shader: Refactoring;
2019-08-09 17:31:30 -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
bjorn
bd773d2d6c
Add materialMap to ModelData;
2019-08-09 15:14:22 -07:00
bjorn
83b2f8d745
Add uniform for controlling light color and intensity;
2019-08-09 00:27:17 -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
851f5f27ec
Add more default headset drivers;
2019-08-09 00:00:42 -07:00
bjorn
30ea8995d2
Fix view vector;
2019-08-07 17:53:38 -07:00
bjorn
2c115ce66e
Automatically detect mipmap count for IBL;
2019-08-07 15:56:52 -07:00
bjorn
b5be93b94b
Fix problem with falsy shader flags;
2019-08-07 15:56:13 -07:00
bjorn
289d365866
Better error messages when loading cubemaps;
2019-08-07 15:14:59 -07:00
bjorn
fe939213be
Initial standard shader flags;
...
- normalTexture = true
- indirectLighting = true (requires uniform setup!)
- occlusion = true (only affects indirect lighting)
- emissive = true
- tonemap = true
2019-08-06 14:39:14 -07:00
bjorn
54d58c79cd
Fix issue where multiple shader flags don't work;
2019-08-06 14:38:49 -07:00
bjorn
edd162052c
Fix diffuse texture batching;
2019-08-06 11:38:12 -07:00
bjorn
b08d9d0b30
Standard shader: Add tonemapping;
...
ACES.
2019-08-05 15:34:21 -07:00
bjorn
96c47d590c
rm lovrEnvironmentTexture from Material;
2019-08-05 15:20:17 -07:00
bjorn
e4ab5aa85a
Standard shader: Add image-based lighting;
...
Very WIP, still need to add the BRDF lookup table.
2019-08-05 14:49:09 -07:00
bjorn
bff9399308
Rename skinned flag to animated;
2019-08-04 15:08:21 -07:00
bjorn
017dd15c78
Update OpenXR to 1.0;
...
Still untested, gib runtimes pls.
2019-08-03 19:06:57 -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
db57592646
Attempt to display SOME relevant message for 'error occurred while displaying another error' in the luajit-only nonstandard crash path
2019-08-02 20:29:28 -07:00
bjorn
e9fd052fc6
Start fixing lovr.graphics.fill;
2019-08-02 15:48:35 -07:00
bjorn
0d5c776b02
Windows opens console with --console argument;
...
Instead of all the time.
2019-08-01 13:49:39 -07:00
bjorn
aab987dbef
Fix WebGL gamma correction;
...
Ugh, WebGL doesn't have sRGB backbuffers.
2019-08-01 13:26:45 -07:00
bjorn
d03d0a39ec
Fix GCC compilation;
2019-08-01 13:02:31 -07:00
bjorn
15cdc78c6b
Rebuild xxd files;
...
xxd on windows is different or something.
2019-08-01 13:01:47 -07:00
bjorn
38671d4ca9
Fix warning;
2019-08-01 13:01:41 -07:00
bjorn
ecac39c08b
Add experimental buttons to default error screen;
2019-08-01 00:14:37 -07:00
bjorn
7690db28af
Windows: Fix all the int warnings;
2019-07-31 17:51:49 -07:00
bjorn
c384d54aa5
OpenVR: Default haptic frequency to 1Hz;
2019-07-31 17:17:41 -07:00
bjorn
9e8fcc01af
Knuckles: Use force sensor as grip axis;
2019-07-31 16:54:56 -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
507736ba2d
Oh no;
2019-07-31 14:43:31 -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
4b9e6849c8
Better boolean shader flags; Multicanvas flag;
...
Instead of boolean shader flags turning into actual booleans defines
in the shader source, for GLSL they turn into defines. This lets you
use ifdef, which is the more common intended usage.
Also MULTICANVAS is now a boolean shader flag. The old MULTICANVAS
define is deprecated.
2019-07-28 18:08:23 -07:00
bjorn
f564444641
Fix some WebGL issues;
2019-07-28 17:28:18 -07:00
mcc
d391a4750f
Use base diffuse color from materials in Standard shader
2019-07-25 15:08:53 -07:00
bjorn
239a9514ea
Model: Fix animations that aren't keyed at t=0;
2019-07-19 16:42:51 -07:00
bjorn
d0ee0d9b1a
glTF: Fix transform for scenes with multiple root nodes;
2019-07-19 16:42:13 -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
62fe520da1
maf: Fix quat_getDirection;
2019-07-16 23:03:37 -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
a5326d530a
LuaJIT: Fix quaternion __newindex;
2019-07-16 22:52:34 -07:00
bjorn
7f445db3cc
Update mat4:set for vanilla lua;
2019-07-16 22:51:26 -07:00
bjorn
db519f7f53
mat4:scale: Allow for a single argument in LuaJIT;
2019-07-16 22:02:18 -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
mcc
39f8203442
Don't reset camera position of desktop driver on reset
2019-07-16 20:27:45 -07:00
bjorn
84cdc592bc
Make sure lovrBufferUnmap always unmaps;
2019-07-12 20:16:18 -07:00
bjorn
2eb4b779ab
Model cleanup;
2019-07-11 20:13:47 -07:00
bjorn
4b4020d3a7
Model:pose; Model:getNodePose;
2019-07-11 20:09:46 -07:00
bjorn
8e2775ef6d
Math: cleanup;
2019-07-11 11:35:50 -07:00
bjorn
6b87576e6d
Channel: cleanup;
2019-07-11 11:29:18 -07:00
bjorn
8c76e6f19b
RandomGenerator: cleanup;
2019-07-11 11:24:34 -07:00
bjorn
1f8a7e073f
Curve: cleanup;
2019-07-11 11:22:03 -07:00
bjorn
f81a65430b
Add support for cubic spline keyframe interpolation;
2019-07-11 11:05:53 -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
f5633f4248
Fix lovr.filesystem.append()
...
Previously, this program function lovr.update(dt) lovr.filesystem.append("/test123", lovr.timer.getTime()) end would fail in lovr because lovrFileWrite required the file to be in write mode (not append)
2019-07-10 16:29:09 -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
mcc
070892ee12
Fix crash with lovr.event.quit("restart") on Oculus Mobile
...
Because of how and when draws occur in our Oculus Mobile path, during a restart it would attempt to draw a frame after lovrGraphicsDestroy() is called, leading to a crash in lovrGraphicsSetCamera(). This blocks draws until the restart is finished and renderTo() has been called (conveniently detectable using the existing state.renderCallback).
2019-07-10 16:10:02 -07:00
mcc
8bfc8683db
Patch maf.h so it can be included in C++
...
A C-only feature is used in one spot currently, which would be fine if maf.h were maf.c, but it's designed to be #included...
2019-07-10 14:58:55 -07:00
mcc
38886f0dc4
Patch sds.h so that it can be #included from C++
...
Empty arrays aren't allowed in C++, so a single dummy element has to be added. sds works by scary cast magic so this dummy element is never actually allocated. A #define is used in this patch so in C this compiles exactly the same as before.
2019-07-10 14:58:55 -07:00
mcc
99f8122f23
ref.h compiles in C++
...
Check for GCC version >=4.7 [covers GCC or, theoretically, Intel C Compiler] or __has_builtin(__atomic_add_fetch) [covers Clang]. If either of these are found, prefer the GCC atomic builtins instead of the C11 builtins.
Also: Gates Microsoft atomics on _MSC_VER, not _WIN32. This may help improve compatibility with mingw but has not been tested.
2019-07-10 14:58:25 -07:00
bjorn
f208a5e067
Fix array initialization;
...
Because the new arr.h contains an array on the stack, we can't
initialize it and then copy it, or the pointer to the stack array
will be pointing to the wrong thing, causing incorrect behavior.
2019-07-09 09:06:11 -07:00
bjorn
af29e29e4d
Fix lovr.graphics.setProjection;
...
Needed to be using new frameData stuff.
2019-07-08 14:35:54 -07:00
bjorn
f2feda9420
oculus: Remove offset;
...
Since we are calling SetTrackingOriginType with floor level, we don't
need to apply the seated-level t.headset.offset adjustment.
2019-07-05 01:05:02 -07:00
bjorn
348798b86c
Make shader in nogame screen more correct;
2019-07-02 20:12:24 -07:00
mcc
dc98846169
Fix error screen on Android
...
As discussed in slack, lovr.errhand appears to predate lovr.graphics.hasWindow() and does not use it. This resulted in a crash on Oculus Go
2019-07-02 18:45:08 -07:00
mcc
53270fbd76
mat4_transform_project in maf.h
...
mat4_transform ignores the final row of the matrix, which normally contains scale data. This is fine for modelview matrices, which is all lovr currently uses mat4_transform for. However it fails if you ever use mat4_transform on a projection matrix.
mat4_transform_project takes the final row into account, so you can use it with projection matrices. This was useful in my fork and might be useful to have around in lovr someday later.
2019-07-02 13:37:33 -07:00
mcc
1b085a00ea
As discussed in slack, Oculus should be letting lovrCanvasCreate decide whether to double
2019-07-02 13:28:36 -07:00
bjorn
57f97056da
Use I4ui instead of I1ui for lovrDrawID constant value;
...
glVertexAttribI1ui isn't supported on GLES for some reason.
2019-07-02 12:51:36 -07:00
bjorn
2d6aa18069
Be a little more correct about when draw id is written;
2019-07-02 00:14:01 -07:00
bjorn
775cf5cda1
Don't accidentally draw meshes too many times;
...
Oops!
2019-07-02 00:09:43 -07:00
bjorn
44da36b610
Write draw ids at the right time (fix flicker);
2019-07-01 02:47:59 -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
e3e930d6cc
Set index buffer at the right time;
...
Just a small ordering issue with previous commit.
2019-06-29 20:39:01 -07:00
bjorn
6256acfc6d
Ahhh fix everything;
...
- If you have an instanced batch, it will use the instanced mesh. That
has a drawID attribute that uses the identity buffer, which has a vertex
divisor. BUT if you only have one instance, then we won't emit an
instanced draw, and the use of a divisor'd attribute w/ a non-instanced
draw is causing mega problems on macOS.
- This also fixes observed macOS bugs like:
- Needing to have a small UBO
- Flickering at startup
- Flicker when writing to the last byte of a UBO
- etc.
- Also make the generic attribute value for lovrDrawID more correct (scalar instead of vector).
2019-06-29 20:24:36 -07:00
bjorn
afe4d8c0e3
Fix GL error with buffer unmapping;
...
This doesn't seem to fix any of the macOS rendering bugs though...
2019-06-29 20:08:31 -07:00
bjorn
d3f08fd1f0
rm logo.png;
2019-06-29 18:28:20 -07:00
bjorn
b2df3e9816
Update nogame screen;
...
- Slightly dim background color (may change).
- Use a shader for the logo (it's centered now, not quite 100% like the image).
- Adjust text optical weight (I hate it).
2019-06-29 18:27:55 -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
8faff22f38
Regenerate math.lua.h;
2019-06-28 22:07:31 -07:00
mcc
c604149428
Y-flip mirror texture on Oculus
...
Oculus gives us the mirror texture "upside down" compared to every other driver, so flip it rightside up before drawing in boot.lua.
2019-06-28 22:46:23 -04:00
bjorn
d87fc56b63
lovr.headset.getDisplayMask;
2019-06-28 00:13:45 -07:00
bjorn
4222be88b5
Use UBO for Camera matrices;
...
Ugh I don't like the "Camera" concept anymore, but I can't figure
out how to easily get rid of it. Maybe wait till displays are a thing.
2019-06-27 22:17:50 -07:00
bjorn
fa6c4a6b39
Organization;
2019-06-27 21:04:15 -07:00
bjorn
370124c88d
Batching cleanup;
...
- Rename drawMode to topology in some places.
- Batch uses DrawCommand internally to simplify stuff.
- Do less work while flushing.
- Store global head/tail cursors instead of unused per-batch cursors.
2019-06-27 20:58:42 -07:00
bjorn
779949964f
More small batching changes;
...
- Reduce number of batches to 4. Yeah it's arbitrary, will monitor.
- Just use memcmp for BatchParams. Since we're using designated initializers,
we aren't running into issues with memcmp+struct padding bits, and in the
event it does lead to false positives on some platforms, at worst we'll just
experience a harmless reduction in batching efficiency.
2019-06-27 19:05:54 -07:00
bjorn
6da17b0a91
Optimize gamma correction;
...
Currently, we gamma correct colors on every clear and every draw.
It's taking a lot of time. Instead, we'll gamma correct colors
when they're changed using lovr.graphics.setColor/setBackgroundColor.
2019-06-27 15:41:57 -07:00
bjorn
7e067da8e7
Add defaultCanvas;
...
Having a normal Canvas object that represents the backbuffer reduces
some indirection where we have to last-minute check if a Canvas is
set. It also means that all of the draw-related info that was _sometimes_
on the Canvas is now _always_ on the Canvas, which reduces the amount
of redundant information we need to provide for a draw call.
There may be some issues related to changing the width/height/stereo
of the default Canvas.
2019-06-27 15:36:51 -07:00
bjorn
26e474bcfc
Simplify Mesh handling;
...
Removes some indirection from flush (I guess moves it into batch,
not sure what's better).
2019-06-27 14:14:31 -07:00
bjorn
551dea8c86
Adjust includes;
2019-06-27 13:44:09 -07:00
bjorn
b8e63adcbf
graphics: Cleanup;
...
Make batching structs and defines private.
2019-06-27 13:38:38 -07:00
bjorn
fe21de403b
lovrGraphicsDrawMesh;
2019-06-27 13:35:43 -07:00
bjorn
b3080ae5d9
rm macos instancing hack;
...
I haven't been able to see adverse affects from it anymore. Can
always put it back if it resurfaces.
2019-06-27 13:27:43 -07:00
bjorn
39b0d2d754
graphics: Minor refactoring;
2019-06-27 13:26:39 -07:00
bjorn
297208c205
Minor cleanup to stream buffer code;
2019-06-27 13:01:04 -07:00
bjorn
052990aa47
Make some graphics structs private;
2019-06-27 01:48:35 -07:00
bjorn
2baa8d03ee
Make singlepass detection more readable;
2019-06-26 21:47:22 -07:00
bjorn
adf5e69ea1
oculus: Remove unused variable;
2019-06-26 14:51:32 -07:00
mcc
fc90a03584
Fix MSVC-specific warnings
2019-06-25 19:16:48 -07:00
mcc
430fbc27d5
ovrHand -> ovrHandType in oculus.c. We don't understand how this worked before but it fixes the oculus-windows build.
2019-06-25 19:16:48 -07:00
bjorn
6b2de4a0a1
Temporary implementation for persistent buffer discard;
...
Should fix potential crashes with persistent buffers.
2019-06-25 19:16:08 -07:00
bjorn
010bbff519
openvr: Fix stereo Canvas dimensions mismatch;
...
(The width is automatically doubled when stereo now)
2019-06-25 19:15:38 -07:00
bjorn
312a7617c3
Fix typo in shader;
2019-06-25 19:15:11 -07:00
bjorn
09b6f74acf
Native textures: initialize mipmapCount;
2019-06-25 18:59:31 -07:00
bjorn
749774e2fc
Native texture depth must be explicitly specified;
...
To fix validation errors when attaching them to Canvases.
2019-06-25 18:57:18 -07:00
bjorn
7e65116add
Fix oculus backend;
2019-06-25 18:16:54 -07:00
bjorn
a3d5371d01
rm lib/vec/vec from oculus.c;
2019-06-25 18:07:56 -07:00
bjorn
928ccee5f1
Multiview;
2019-06-25 01:21:59 -07:00
bjorn
a691192af9
lovrBufferDiscard;
2019-06-25 01:21:59 -07:00
bjorn
5cd93b66c6
rm fence syncs;
...
They are too buggy and are not as efficient as orphaning.
2019-06-24 19:17:55 -07:00
bjorn
b17d01e4aa
Don't return NULL from mat4_invert;
2019-06-22 17:25:48 -07:00
bjorn
8d2f005bf3
Add stdlib.h to oculus_mobile;
2019-06-21 11:28:40 -07:00
bjorn
9f3638b018
TextureData:paste;
2019-06-20 23:36:18 -07:00