bjorn
5f990d8c9f
Attempt to fix state.offset;
...
The goal is to ensure that (for 3DOF devices) all poses are reported
to include the state.offset vertical transform applied to them. Previously,
only rendering was using state.offset.
This is important to fix spatial audio.
Is doing this in every driver problematic? What if we did it in the
Lua bindings? That way it could be handled in one place.
2018-10-29 10:36:58 -07:00
mcc
79b0c19254
Oculus mobile: First round of fixes requested in PR review
...
Formatting, back out bad change to Win32 build, support getOs()
2018-10-28 22:55:37 -04:00
bjorn
987b24fd19
lovr.filesystem.write: Fix unintended erroring behavior;
2018-10-28 19:46:31 -07:00
mcc
9328542ff5
Correct usage of conf "offset" and getOriginType in Oculus Mobile
...
Also whitespace cleanup
2018-10-28 17:16:48 -04:00
mcc
dd440b2ada
Code cleanup after all these changes, fix build
2018-10-28 15:31:27 -04:00
mcc
dba6724915
Framebuffer and depthbuffer should also be passed into the canvas create-from-handle
2018-10-27 23:11:11 -04:00
mcc
c68c850157
Give lovrCanvasCreateFromHandle the option of not deleting framebuffer on canvas delete, also fix default texture issue
2018-10-27 22:15:49 -04:00
bjorn
654b894ded
Add lovr.graphics.setProjection;
...
It's not very good. It only takes Transforms and sets the projection
for both eyes. And the projection gets reset at the beginning and
end of lovr.headset.renderTo. It's meant to be a backdoor.
2018-10-26 17:17:18 -07:00
bjorn
f6d5bf325a
Move lib/dds.h into data/textureData.h;
2018-10-26 16:56:16 -07:00
mcc
d17dec1b0e
Graphics now draw, although head tracking is not correct
2018-10-26 01:05:28 -04:00
bjorn
a0f2a34647
Prefer modules in the exe to modules on disk;
...
This fixes the lovr-docs loader and is arguably the better behavior.
2018-10-25 06:49:03 -07:00
mcc
b892d0143f
Remerge oculus mobile and master branches (to get lovrCanvasCreateFromHandle)
2018-10-25 00:06:39 -04:00
mcc
5ad8fdd3e3
Fixes as far as running without crashes, no display yet
2018-10-24 23:40:11 -04:00
bjorn
494d2c6cc8
audio: Gracefully handle absence of ALC_SOFT_HRTF;
2018-10-24 09:57:03 -07:00
bjorn
9010af3ea4
lovrRandomGeneratorGetState: Improve correctness;
2018-10-24 09:50:00 -07:00
bjorn
0f54190a9f
rm weird include in dds.h;
2018-10-24 09:42:32 -07:00
bjorn
ee9d575cba
lovrCanvasCreateFromHandle;
...
Was it really that easy?
2018-10-24 09:42:32 -07:00
bjorn
8d29bbc68c
Canvas.count -> Canvas.attachmentCount;
2018-10-24 09:42:32 -07:00
bjorn
5f8f8a540e
lovr.filesystem no longer relies on arg global;
2018-10-23 11:12:13 -07:00
bjorn
43309efc57
Fix problems with variants;
2018-10-23 11:11:47 -07:00
bjorn
cf3b060fe5
Fix MSVC issues with variables named near/far;
2018-10-22 16:40:12 -07:00
mcc
56f8f1e26b
Untested merge of Oculus Mobile branch and Oct 2018 lovr master
2018-10-22 10:44:04 -04:00
bjorn
897a09c4d7
Why are you here;
2018-10-21 09:18:58 -07:00
bjorn
485f65b013
Transform:setOrthographic; Transform:setPerspective;
2018-10-21 09:06:37 -07:00
bjorn
4f542902a1
mv lovr.js webvr.js;
...
To allow for webxr.js and lovr.js to be used for...other things.
2018-10-21 08:56:57 -07:00
bjorn
518d26aad8
getDisplayDimensions: Use unsigned ints;
...
Fixes a warning.
2018-10-21 08:40:57 -07:00
bjorn
7b9d66e845
Fix openvr warning;
2018-10-21 08:11:07 -07:00
mcc
1b7942e02f
First pass oculus mobile support
...
First of several commits, this is the state of hg:6b437880cc01 in my private repo. A version of shakesoda's Oculus-desktop support is tied up in this commit.
The oculus mobile version builds lovr as a library. To run it, you need to use a separate repo which includes this one and which builds an Android app.
2018-10-20 15:22:24 -04:00
bjorn
ffe3d9d7ef
Default emissive colors to transparent black;
2018-10-11 02:07:09 -07:00
bjorn
da3bb42db4
Fix WebVR prototype;
2018-10-09 18:03:53 -07:00
bjorn
01405e113a
Ensure Microphones properly stop recording;
2018-10-09 17:56:26 -07:00
bjorn
e1d980a2d6
Re-add lovr.headset.getBoundsGeometry;
...
Looks like more runtimes are starting to support it.
2018-10-09 17:51:05 -07:00
bjorn
28c56f959d
Use MAT4_IDENTITY macro;
2018-10-06 21:58:40 -07:00
bjorn
7829f3f75f
mat4_multiply: SSE
...
~2.5x
2018-10-06 21:42:52 -07:00
bjorn
0b2a39fb03
Return original matrix in mat4_invertPose;
2018-10-06 21:26:17 -07:00
bjorn
4279cf086f
mat4_invertPose;
...
~3.9x
2018-10-06 21:21:25 -07:00
bjorn
11e6580717
mat4_transpose: Use SSE intrinsics;
...
~1.6x
2018-10-06 20:04:39 -07:00
bjorn
7354465e12
Add LOVR_USE_SSE;
2018-10-06 20:03:48 -07:00
bjorn
5e65ac019e
OpenVR organization;
2018-10-06 18:15:32 -07:00
bjorn
ba68c0c127
Add mat4_getPose helper;
2018-10-06 16:54:41 -07:00
bjorn
e36d3d8352
openvr: Use WaitGetPoses in update;
2018-10-06 16:54:25 -07:00
bjorn
086a0030b1
Shader:send/ShaderBlock:send fills in nils with 0's;
2018-10-06 16:15:38 -07:00
bjorn
0d72922f77
Add lua_modules and deps to default C require path;
2018-10-05 00:43:41 -07:00
bjorn
70e473adb2
Add deps to default require path;
2018-10-05 00:43:41 -07:00
bjorn
6019de19d6
Add missing modelData include;
2018-10-01 21:07:29 -07:00
bjorn
a1d365fc25
Plumb new mirror settings through WebVR;
2018-09-30 18:58:51 -07:00
bjorn
7976805415
openvr/oculus support individual eye mirroring;
2018-09-30 18:58:51 -07:00
bjorn
8d076f31c1
Fill accepts UV subrect to use;
2018-09-30 18:58:51 -07:00
bjorn
a9e92b5185
Add ability to mirror specific eyes;
...
Doesn't work yet for OpenVR/Oculus.
2018-09-30 18:58:51 -07:00
bjorn
cd5df6b148
Add __declspec;
2018-09-27 21:29:28 -07:00
bjorn
2398e592a9
Darn USE_MATH_DEFINES;
2018-09-27 20:32:45 -07:00
bjorn
816fda2177
Fix everything and merge;
2018-09-27 18:38:44 -07:00
bjorn
238af0064f
Add missing lovr.filesystem.unmount function;
2018-09-27 18:38:44 -07:00
bjorn
eb40c1980b
Merge lovr.c into main.c;
2018-09-27 18:38:44 -07:00
bjorn
3e2259fc99
version/os refactor;
2018-09-27 18:38:44 -07:00
bjorn
cee3c28f4e
luax_atexit; rm lovrDestroy;
...
Modules register themselves in the registry for destruction at
lua_close instead of having a hardcoded list in lovrDestroy.
2018-09-27 18:38:44 -07:00
bjorn
92e6ad93cb
Dynamically load modules;
2018-09-27 18:38:44 -07:00
bjorn
e02d22365f
api: refactor;
2018-09-27 18:38:44 -07:00
bjorn
792834623c
api: more modular helper functions;
2018-09-27 18:38:44 -07:00
bjorn
1f12717357
Canvas creates Textures with clamp filter;
2018-09-27 18:37:13 -07:00
bjorn
cfac548e7b
Add flag to make Canvas depth texture readable;
...
- DepthFormat is now just TextureFormat.
- Canvas:getDepthTexture instead of Canvas:getDepthFormat.
2018-09-27 18:34:43 -07:00
bjorn
56fa853b09
Fix possible overflow in modelData texture path;
2018-09-26 23:16:18 -07:00
bjorn
05802f3e90
util: rm vec_uint;
2018-09-26 10:49:33 -07:00
bjorn
148a2bdb45
Error system no longer relies on Lua;
2018-09-26 10:39:17 -07:00
bjorn
737f0b6dc3
Fix edge case in lovrMeshResize;
...
Also make BufferUsage usage more consistent.
2018-09-23 19:13:32 -07:00
bjorn
2ec5c42f87
Fix compile warnings;
2018-09-21 23:34:15 -07:00
bjorn
2a17f6e4bb
Add LOVR_USE_ASSIMP;
...
lovr.graphics.newModel and lovr.data.newModelData will return nil
if assimp is disabled.
2018-09-21 19:25:48 -07:00
bjorn
2d788e2f41
rm USE_OPENAL;
2018-09-21 19:25:48 -07:00
bjorn
5a9cd5187c
Make CMakeLists more modular;
...
- Enable/disable individual modules, including enet/json
- Enable/disable different "backends" (audio/headset)
- Choose to use system vs. source versions of different libraries
2018-09-21 19:25:48 -07:00
mcclure
e2ace89b83
Fix controller:isDown() for 'grip' and 'trigger' on Oculus ( #60 )
...
Previously, controller:isDown('grip') returned always true, and for 'trigger' false was always returned. This adjusts oculusControllerIsDown() to use an axis threshold rather than the Shoulder bit for 'trigger', and to use a more demanding threshold for 'grip'.
2018-09-21 19:23:00 -07:00
bjorn
48dcb5067a
Fix lovrTextureCreateFromHandle prototype;
2018-09-11 15:56:06 -07:00
bjorn
09a67949ed
Improve CMake and build for LibOVR;
2018-09-11 15:47:03 -07:00
bjorn
72158f103a
Update for stereo rendering and new headset API;
2018-09-11 15:30:31 -07:00
bjorn
75ca4b0cba
lovrTextureCreateFromHandle;
2018-09-11 15:30:31 -07:00
bjorn
5b5e9fbc00
WIP;
2018-09-11 15:30:31 -07:00
bjorn
6b0806d04a
Don't treat lighthouses as Controllers;
2018-09-11 15:28:31 -07:00
bjorn
7309ac8ce8
Treat trackers and lighthouses as Controllers;
2018-09-11 15:23:46 -07:00
bjorn
8b7bfec9d3
Add emscripten shell file;
...
To make it easier to build and test WebVR.
2018-09-06 16:05:39 -07:00
bjorn
40e6f6a81c
Handle window resizes properly;
...
Fix for the web where the window actually resizes.
2018-09-05 11:11:57 -07:00
bjorn
924eb5fa0a
Shader:send: Add a missing break;
...
opps
2018-09-05 10:13:04 -07:00
bjorn
8a7054e793
v0.11.0;
2018-09-05 08:02:50 -07:00
bjorn
9fa18495f2
Fix fake controller positioning;
2018-09-05 06:31:18 -07:00
bjorn
ca6bd29501
bindBlockBuffer: fix buffer target for emscripten;
2018-09-05 04:44:19 -07:00
bjorn
a13849b525
ShaderBlock:getShaderCode: Fix string length calculation;
2018-09-05 04:40:22 -07:00
bjorn
7a8abc80a2
Copy Transform objects more safely in Shader[Block]:send;
2018-09-05 04:22:12 -07:00
bjorn
1e351255f1
Fix UBO usage enum;
2018-09-05 04:10:12 -07:00
bjorn
ddba19efad
Work around glGenerateMipmap on macOS;
2018-09-05 03:54:43 -07:00
bjorn
a5b9d267d0
Ensure int attributes are signed;
2018-09-05 03:25:13 -07:00
bjorn
f47dccaaa3
Ensure GL state is tracked properly between restarts;
2018-09-04 15:02:55 -07:00
bjorn
5ebea9db71
Destroy Lua objects before destroying lovr;
...
This fixes a bug where physics Worlds are destroyed after
ODE is deinitialized, which can cause a segfault. Instead we
collect Lua objects first and then destroy each module. This
makes more sense and doesn't seem to have any consequences...
2018-09-04 14:45:01 -07:00
bjorn
7e1687ce6b
Fix Shader:sendImage;
2018-09-04 06:58:54 -07:00
bjorn
1b3e8c9766
Flip cubemap x texture coordinate;
2018-09-04 06:42:04 -07:00
bjorn
4e1757210e
Load cubemap images better;
2018-09-03 20:59:12 -07:00
bjorn
f17d57e987
Fix up problems with tracking incoherent resources;
2018-09-02 22:20:32 -07:00
bjorn
fbd294f76d
Empty textures default to linear instead of sRGB;
2018-09-02 21:15:59 -07:00
bjorn
2e881cbda0
Fix bad assert for image uniforms;
2018-09-02 21:15:43 -07:00
bjorn
3cc1b60fd8
Better default for anonymous texture depth;
2018-09-02 21:11:48 -07:00
bjorn
b29a2d0471
Rework fake headset driver inertia;
2018-09-01 20:29:17 -07:00
bjorn
7aedff1278
Fix srgb settings for model import;
2018-09-01 06:27:24 -07:00
bjorn
59280c4e9d
Fixes for compressed textures;
2018-09-01 05:40:45 -07:00
bjorn
064adef0bb
Transform:getMatrix accepts target table;
2018-09-01 02:52:16 -07:00
bjorn
b959c30424
lovrPoseMatrix;
2018-09-01 02:52:02 -07:00
bjorn
c584354c92
lovrInstanceID;
2018-09-01 02:09:59 -07:00
bjorn
8b9e9eba9e
Use GLSL 430 when available;
2018-09-01 01:57:38 -07:00
bjorn
ea331a12be
Fix bugs;
2018-08-31 23:24:59 -07:00
bjorn
4e61d2ea3b
Really icky conditional shader compilation;
...
But I can't think of another way to do it.
2018-08-31 19:52:03 -07:00
bjorn
d5c884b1d8
Fix emscripten warning;
2018-08-31 18:10:51 -07:00
bjorn
7b9a0ba048
Organize uniforms better;
2018-08-31 16:45:05 -07:00
bjorn
dca52ee967
Improve newCanvas API;
2018-08-31 16:37:30 -07:00
bjorn
a5256aaa27
Happy little graphics refactors;
2018-08-31 06:03:35 -07:00
bjorn
0ce6e046a6
lovrViewportCount; Multiply vertex divisors;
2018-08-31 02:41:50 -07:00
bjorn
f872a5f094
Re-enable threads for emscripten;
...
They don't appear to work very well but this simplifies code a lot.
2018-08-30 22:09:54 -07:00
bjorn
017066d45e
More emscripten stuff;
...
SwapInterval was removed to ensure RAF timing is used.
2018-08-30 21:58:00 -07:00
bjorn
7222d1fa26
Use same window hints for webgl and desktop;
...
It doesn't seem like this causes any problems anymore.
2018-08-30 21:43:30 -07:00
bjorn
7055875cfa
rm unnecessary emscripten ifdef for glfw context;
...
Now that the bug is fixed!
2018-08-30 21:40:31 -07:00
bjorn
b7faeb8c44
Add precision for ints;
2018-08-30 21:37:45 -07:00
bjorn
7e889a564a
Emscripten fixes;
2018-08-30 20:56:08 -07:00
bjorn
ab1651a1a0
Diff active texture;
2018-08-30 19:42:01 -07:00
bjorn
a8f9b899e0
Cleanup;
2018-08-30 19:40:31 -07:00
bjorn
04e119e413
Reduce size of default font;
...
It only supports the ISO8859-1 character set now.
2018-08-30 18:13:47 -07:00
bjorn
7c21d77a6e
rm singlepass conf flag; Viewports; getSupported.singlepass;
2018-08-30 04:02:58 -07:00
bjorn
5ab15e36a8
Declare extension before in;
2018-08-30 03:43:41 -07:00
bjorn
20faaf7479
ShaderBlock buffer bind fix;
2018-08-30 03:41:10 -07:00
bjorn
4631d2dacc
Test shader extension fallback;
2018-08-30 03:38:31 -07:00
bjorn
dd889a1c4a
Diff viewport state;
2018-08-30 03:25:16 -07:00
bjorn
e6a7a4f922
Redo singlepass;
2018-08-30 00:52:38 -07:00
bjorn
6058fbc5cd
Modify GL extensions;
...
- rm NV_stereo_view_rendering
- rm NV_viewport_array2
- add AMD_vertex_shader_viewport_index
2018-08-30 00:26:10 -07:00
bjorn
a97c8e2266
Fix skybox texture mapping;
2018-08-30 00:06:29 -07:00
bjorn
1f4fee9b28
Fix newTexture flags;
2018-08-29 21:45:08 -07:00
bjorn
58747d6673
Rebase;
2018-08-29 21:31:07 -07:00
bjorn
56821b3aba
lovrCanvasBlit works with MSAA;
2018-08-29 21:22:13 -07:00
bjorn
ce2dfb523e
Make window mono by default;
...
The window is now mono by default to make the error screen better and better enable non-stereo uses. The Camera can now request that the window be treated as stereo.
2018-08-29 21:22:13 -07:00
bjorn
e2d7310914
Fix sneaky MSAA bug;
2018-08-29 21:22:13 -07:00
bjorn
0dbdc78c87
Fix fake driver projection;
2018-08-29 21:22:13 -07:00
bjorn
4215ea2e24
Canvas getters;
2018-08-29 21:22:13 -07:00
bjorn
3c78eae42b
Fix interaction between mipmaps/msaa resolution;
2018-08-29 21:22:12 -07:00
bjorn
e287cee1c9
Canvas:newTextureData;
2018-08-29 21:22:12 -07:00
bjorn
74fec01e60
Canvas mipmaps flag;
2018-08-29 21:22:12 -07:00
bjorn
06fa846680
Resolve supports multiple color attachments;
2018-08-29 21:22:12 -07:00
bjorn
6104d3362e
OpenVR MSAA flags;
2018-08-29 21:22:12 -07:00
bjorn
a4912ce96e
Only resolve if MSAA;
2018-08-29 21:22:12 -07:00
bjorn
a5f6ff506b
MSAA resolve;
2018-08-29 21:22:12 -07:00
bjorn
c244cc02c1
rm AttachmentTypes; DepthFormats;
2018-08-29 21:22:12 -07:00
bjorn
3fb1b49549
MSAA canvases/textures but no resolving yet;
2018-08-29 21:22:12 -07:00
bjorn
6b87a71261
Allow Canvases to be used as Textures sometimes;
2018-08-29 21:22:11 -07:00
bjorn
36ec69e244
Fix pointer cast;
2018-08-29 21:21:38 -07:00
bjorn
590668a8d6
lovrGraphicsBlit;
2018-08-29 21:21:38 -07:00
bjorn
8bb45f4de4
Clean up viewports;
2018-08-29 21:21:07 -07:00
bjorn
26f411f43f
Other headset drivers use stereo display dimensions;
2018-08-29 21:20:01 -07:00
bjorn
0af2704e5c
openvr canvas changes;
2018-08-29 21:20:01 -07:00