bjorn
24ba340929
Add CHECK_SIZEOF;
...
It can be used to check the size of a type at compile time.
2018-12-09 23:36:02 -08:00
bjorn
7f333ce956
Refactor Mesh attributes;
2018-12-07 19:11:14 -08:00
bjorn
40454d1380
Use ShaderBlock for transforms/colors;
2018-12-07 18:19:03 -08:00
bjorn
e2886d3bb5
Mesh uses Buffer;
2018-12-07 15:57:45 -08:00
bjorn
9a0f7c919a
ShaderBlocks use Buffers;
2018-12-06 16:34:14 -08:00
bjorn
ac33b8b085
Add Buffer objects;
2018-12-06 16:14:30 -08:00
bjorn
b586bc2cce
lovrFontRender uses raw float* instead of VertexPointer;
2018-12-05 10:23:26 -08:00
bjorn
a8361677f5
Move pose from Mesh to DrawCommand;
2018-12-05 10:22:12 -08:00
bjorn
0a6de472ae
Add ARB_buffer_storage;
2018-12-05 10:19:24 -08:00
mcc
4238402ec0
lovrFileWrite buffer can be const and therefore should
2018-12-04 12:40:30 -08:00
bjorn
3a774354e8
Remove lovrHeadsetGetEyePose;
...
A lot of drivers didn't bother to support it, it's not used very often,
and there are better ways to expose it that will soon be implemented.
2018-12-02 13:27:55 -08:00
bjorn
9a3ba5fb52
LuaJIT: mat4:scale accepts single number;
2018-12-02 13:03:29 -08:00
bjorn
9d965e1d7a
LuaJIT: mat4:translate, rotate, scale support chaining;
2018-12-02 13:02:10 -08:00
bjorn
0054c771b2
Properly release Curves on creation;
2018-12-02 12:51:20 -08:00
bjorn
fb455a671c
LuaJIT: dereference vector pointers before use;
...
That way __sub doesn't break due to built-in pointer operator.
2018-12-02 12:48:44 -08:00
bjorn
4e6bf41e67
mat4 fixes;
2018-12-02 12:08:07 -08:00
bjorn
ecabec9bf2
Finish LuaJIT API;
2018-12-02 12:08:07 -08:00
bjorn
43567e561a
Update lovr.graphics.points/lines to work with vectors;
2018-12-02 12:08:07 -08:00
bjorn
2aadc9bde1
rm Transform;
2018-12-02 12:08:07 -08:00
bjorn
c7934b3b13
Update API to work with vectors;
2018-12-02 12:08:07 -08:00
bjorn
ba192374dc
Start math types;
2018-12-02 12:08:07 -08:00
mcc
ca75cb37c1
Awkward hotfix to tinycthread.h
...
Becuase of https://github.com/tinycthread/tinycthread/issues/47 . Only needed on Android. Not needed in the glfw tinycthread because we don't use glfw on Android.
2018-11-30 13:00:28 -08:00
bjorn
783115c2cf
Add newlines to the end of some files;
2018-11-27 15:03:52 -08:00
mcc
778b654f1d
Move lovr.android.getApplicationId() to lovr.filesystem.getApplicationId(). Kill Android module
...
This requires adding an application id function to platform and adding a mini definition to sds into platform.h. All platforms except Android return NULL (no application id)
2018-11-27 15:02:25 -08:00
mcc
264db37ce6
Fix lovr.event.quit("restart") on Android
2018-11-27 15:02:25 -08:00
mcc
adabf4c6ef
Fix broken android lua module
...
The LOVR_ENABLE_ANDROID flag wasn't getting passed to C, and the getApplicationId code had bugs
2018-11-27 15:02:25 -08:00
mcc
99026af5ca
Fix Android compile
2018-11-27 15:02:25 -08:00
mcc
961bf859f6
Android lua module
...
Currently provides only a lovr.android.getApplicationId(). This returns an Android-specific identifier that doesn't cleanly map to anything specific in other OSes.
2018-11-27 15:02:25 -08:00
mcc
8e8091ccbc
Fixes to error handling in boot.lua
...
- The pcalls to run conf were triggering their error very late, and were detecting error based on the second return value of pcall being non-nil. In fact the second return value of pcall is often non-nil in the case of *success*. We should check the first parameter, success/failure, instead.
- It is possible in principle to call error() with a non-string value, so errhand should sanitize its values with tostring.
- There is a check in the main boot.lua loop whether xpcall returned a string, which is the sign luajit hit an error in an error handler. This check was occurring in the wrong place (my fault; merge error when preparing PR) so if lovr.load() hit this case we were falling back to the horrible “could not call a string” error.
2018-11-24 18:48:29 -08:00
bjorn
0e99d47394
Fix module destruction;
...
There is a problem when a Thread stops: it destroys all of the modules
that it required. This is because we unconditionally call luax_atexit
when modules are required, and when the thread lua_State dies it takes
all of the modules with it. To fix this, lovr<Module>Init will return
whether or not initialization successfully happened, which provides us
with enough info to know if we should place the luax_atexit destructor
2018-11-19 09:24:28 -08:00
bjorn
465e5c2010
Controller:getVelocity; Controller:getAngularVelocity;
2018-11-19 09:24:10 -08:00
bjorn
e5dd0a2c17
Fix wasm build.........;
2018-11-16 07:36:44 -08:00
bjorn
6168ec243f
Add platform/glfw.h;
...
Platforms that want to use glfw for most of their platform code can
include "glfw.h" for common functions, in a single-file-lib fashion.
All glfw code is in this file.
2018-11-16 07:24:20 -08:00
bjorn
217a2f6354
Fix problems not caught by MSVC;
2018-11-16 07:19:29 -08:00
bjorn
ca0034e0aa
rm lib/glfw;
2018-11-16 04:44:36 -08:00
bjorn
ba253a0716
oculus_mobile: lovrPlatform instead of glfw;
...
please don't break!
2018-11-16 04:44:20 -08:00
bjorn
c9793eae49
lovrPlatform: init/destroy;
2018-11-16 03:59:06 -08:00
bjorn
b7deda3758
lovrPlatform: Keyboard/mouse;
...
Update fake.c
2018-11-16 03:18:08 -08:00
bjorn
5c3280ba2a
boot.lua: Improve errors when loading modules fails;
...
Remove hardcoded list of modules as well.
2018-11-16 02:27:34 -08:00
bjorn
ba60e99890
lovrPlatform: Window creation;
2018-11-16 02:26:56 -08:00
bjorn
6514492cb8
glfwGetTime -> lovrPlatformGetTime;
...
Same for glfwSetTime;
2018-11-16 00:28:45 -08:00
bjorn
4cd5505ac2
glfwPollEvents -> lovrPlatformPollEvents;
2018-11-16 00:24:43 -08:00
bjorn
da92cce634
Fix wasm build;
2018-11-15 08:21:26 -08:00
bjorn
005d4b93f2
Move math helpers into lib;
...
They aren't really part of the math module since they are shared
across several modules, more "util"-y.
2018-11-15 08:03:51 -08:00
bjorn
2238f51338
Use lovrLog functions in oculus_mobile.c;
...
Question: Are we okay to simplify log levels to DEBUG/WARN? If not,
maybe we add a LOVR_LOG_LEVEL thing...
2018-11-15 07:51:21 -08:00
bjorn
81451eb99d
rm trailing whitespace;
2018-11-15 07:51:21 -08:00
bjorn
ab232571d0
Make sure error messages get printed;
2018-11-15 07:51:21 -08:00
bjorn
0b78e238b3
luax_traceback;
...
Simplifies traceback code by adding a polyfill for Lua 5.2's
luaL_traceback function that can be used by the panic helper and
luax_getstack.
2018-11-15 07:51:21 -08:00
bjorn
c6126bed59
Move print_override to luax;
...
It makes more sense for it to live there since it's a Lua override.
I misunderstood something when communicating about this initially.
2018-11-15 07:51:21 -08:00
bjorn
784d61ef4a
Modify module loading;
...
Dynamically loading things was cool but is causing more pain than
pleasure because it just barely doesn't work everywhere. Instead,
find a better way to load modules. Use a data driven luaL_Reg array
to define the module mapping and luaL_register to smoosh it into
package.preload at boot time. Benefits:
- LOVR_ENABLE_<x> defines are respected and only require a single #if
- Module list is data driven and defined in one place
- It's faster (luax_preloadmodule did a global lookup every invocation)
- It works everywhere
Oh also threads were totally broken and this (mostly) fixes them.
2018-11-15 07:51:21 -08:00
bjorn
0cf52a2ce8
Attempt to use macros for android logging;
...
Does this work? It seems like it should. If it doesn't, let's use
functions consistently for logging on all platforms.
2018-11-15 07:51:21 -08:00
bjorn
7ff12740b8
rm trailing whitespace;
2018-11-15 07:51:21 -08:00
mcc
64b187ef3f
Manual merge args-and-physfs PR branch with master
2018-11-13 22:09:47 -05:00
mcc
91daeae634
Style/functional fixes to args for PR. --inside is now --root
2018-11-13 22:07:19 -05:00
mcc
96eed2786c
Amend oculus_mobile error handling so headset.c renderHelper drives
...
Back out lovrHeadsetExtractRenderFn, don't let oculus_mobile.c pcall the render function, instead fit the render error saving inside renderHelper (emscripten/oculusmobile path). The render error is now saved in the environment at _lovrHeadsetRenderError. For this to work, luax now keeps track of a global variable for the current "main" environment.
This does means the render error path now works on emscripten (this has not been tested).
2018-11-13 16:50:31 -08:00
mcc
684fd77316
Various changes around error reporting to support Oculus Mobile
...
General changes:
- Amended the boot.lua error handling so when an error occurs in the error handler, the inner error is printed before quitting
- Silent quit instead of crash if a user implements lovr.errhand but it doesn't return a function
Oculus Mobile changes:
- The lovr.errhand screen is now correctly invoked for errors that occur inside lovr.draw. Multiple changes were needed to make this work:
- Instead of calling renderHelper, which uses lua_call (unsafe as Oculus Mobile does not call renderHelper) the oculus driver gets hold of the Lua ref and lua_pcalls itself. A new lovrHeadsetExtractRenderFn is added to make this possible.
- A mechanism is added where if the coroutine resume in boot.lua returns a value, boot.lua treats this as the string returned from luax_getstack and invokes lovr.errhand.
- Added a custom atpanic that routes through lovrThrow (since stderr gets eaten). With the draw() changes this should never be encountered, but it's good just in case. In current testing the tracebacks this prints don't seem to be right.
- Fix major bug in android_vthrow that meant % codes didn't work in lovrThrow on Android
- Nothing to do with errors, but fix getAxis("trigger")
2018-11-13 16:50:31 -08:00
mcc
2213b3bcfd
Allow the mountpoint to be set "inside" a zip file, using an --inside parameter.
...
This is used in the oculus mobile driver, allowing replacement of the (dubious) recursive-copy-from-zip code.
In order for this to work, the argument parsing must be beefed up a bit and also PhysFS must be updated to the newest master in order to get a new PHYSFS_setRoot. The github submodule source has been changed to one which updates more frequently to get this.
2018-11-13 15:20:04 -05:00
mcc
26af794e3c
Adjust the lovr command line construction to follow the lua/love standards. This is a BC-breaking change.
...
Source for lua standard: https://en.wikibooks.org/wiki/Lua_Programming/command_line_parameter
2018-11-13 16:28:56 -05:00
bjorn
a1237029de
lovr.graphics.translate: Arguments default to 0;
2018-11-12 19:28:41 -08:00
bjorn
7e1527ddca
(Ab)use calloc for OpenVR controller models;
...
Avoids a potential invalid call to free on destroy.
2018-11-12 19:00:17 -08:00
bjorn
4188fd53ec
Handle tabs in fonts;
2018-11-11 18:28:51 -08:00
bjorn
185bb8438e
Set error handler context to correct Lua state;
2018-11-11 17:33:16 -08:00
bjorn
112d775635
Font:hasGlyphs;
2018-11-11 17:29:41 -08:00
bjorn
20ddad4a9e
Improve error message when glyph is not found;
2018-11-11 17:17:42 -08:00
bjorn
8b2f0eb0ba
Add newline to glfw.h;
2018-11-08 14:13:39 -08:00
bjorn
76c2dc757a
Curve:getTangent;
2018-11-08 12:56:45 -08:00
bjorn
2703192f1d
Make a constructor;
2018-11-08 12:56:45 -08:00
bjorn
2acf49fb34
Curve;
2018-11-08 12:56:45 -08:00
bjorn
a06734ae97
Use alpha to coverage and alpha test for text;
2018-11-08 11:58:43 -08:00
bjorn
bfeb3d2d51
lovr.graphics.discard;
2018-11-08 11:58:31 -08:00
mcc
b01a349275
Merge Windows build fixes for SDS library, from https://github.com/LynnKirby/sds fork commit 1ea0479693a8fd85351b75a6d41cef40a8e3e67c
2018-11-07 17:03:31 -05:00
mcc
a46b4afbb8
Split out the "oculus mobile" headset type into GEAR and GO.
2018-11-07 14:34:51 -05:00
mcc
2675b51013
Make oculus mobile build self-contained
...
The initial version of the oculus mobile driver incorporated two files, BridgeLovr.cpp and BridgeLovr.h, which were assumed to be outside of the Lovr repo in the repo for a separate Android app. The Android app now is wholly separated and communicates with the Lovr shared object via the interface in oculus_mobile_bridge.h.
A file print_override.c now contains a drop-in replacement for Lua print() which prints to lovrLog. This is useful for Android or for other future platforms where stdout/stderr aren't usable.
2018-11-07 10:24:44 -05:00
mcc
b146ad422f
Add SDS string library from commit 8dc8d6fb373bdc08eb82a72904841998d30b7cf2
2018-11-06 18:39:12 -05:00
mcc
d8de87d789
Fix headset and controller poses
2018-11-06 15:56:27 -05:00
mcc
bf7fd349e2
Fix math bug in glfwSetTime
2018-11-06 11:28:45 -05:00
mcc
8301bd7dd8
Remerge oculus-mobile branch with master
2018-11-02 18:10:08 -04:00
mcc
428995b54b
Controller support (orientation wrong currently) and time/dt support
2018-11-02 17:35:24 -04:00
bjorn
0945702d27
Update CMakeLists for new platform layer;
2018-10-29 17:13:53 -07:00
bjorn
105953e743
Use a folder;
2018-10-29 14:00:16 -07:00
bjorn
f8011f7bf7
Initial platform.h;
2018-10-29 14:00:16 -07:00
bjorn
d5064844a7
Rewrite main.c;
2018-10-29 13:52:50 -07:00
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
bjorn
f0806bb270
Pointers;
2018-08-29 21:19:41 -07:00
bjorn
21a869cc8b
Clean up;
2018-08-29 21:19:41 -07:00
bjorn
671f0835c0
Fix lovr.headset.getDisplayWidth/Height;
2018-08-29 21:19:07 -07:00
bjorn
1ea3c84be9
Ugly viewport stuff;
2018-08-29 21:19:07 -07:00
bjorn
251f197c68
Free renderbuffer;
2018-08-29 21:18:33 -07:00
bjorn
ee0f75484d
newCanvas stereo flag;
2018-08-29 21:18:33 -07:00
bjorn
329668eb39
Additional Canvas validation;
2018-08-29 21:18:33 -07:00
bjorn
68d66f3f98
Canvas:renderTo;
2018-08-29 21:18:33 -07:00
bjorn
4cc8bd7582
Canvas depth buffer;
2018-08-29 21:18:33 -07:00
bjorn
3bf76e3497
Fix clear and canvas texture refcounts;
2018-08-29 21:18:33 -07:00
bjorn
e8ec73657d
lovrCanvasBind;
2018-08-29 21:18:33 -07:00
bjorn
7e74441afd
getCanvas; setCanvas; Canvas attachments;
2018-08-29 21:18:33 -07:00
bjorn
d39e9f1687
Depth texture formats;
...
I hope I don't hate myself for calling them d16, d32, etc.
2018-08-29 21:18:32 -07:00
bjorn
f09f0d9424
newTexture takes w/h/format;
2018-08-29 21:18:32 -07:00
bjorn
e9ebdc2d58
Rework TextureData creation functions;
2018-08-29 21:18:32 -07:00
bjorn
7795bb9276
I came in like a wrecking ball;
2018-08-29 21:18:32 -07:00
bjorn
87c1429778
Rebuild boot.lua.h;
2018-08-23 12:53:05 -07:00
bjorn
7569b7934f
conf flag for singlepass; Shader fixes;
2018-08-23 12:52:18 -07:00