1
0
Fork 0
mirror of https://github.com/bjornbytes/lovr.git synced 2024-07-15 10:13:34 +00:00
Commit graph

1576 commits

Author SHA1 Message Date
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
bjorn b50c2d018a Texture is optional in lovr.graphics.fill; 2018-08-23 11:44:00 -07:00
bjorn 6f72166f59 Only use 1 texture for skybox; 2018-08-22 12:09:51 -07:00
bjorn 3cc263454b rm CONTROLLER_BUTTON_JOYSTICK; 2018-08-22 11:27:36 -07:00
bjorn 7a866552e9 Fix remaining physics leaks; 2018-08-22 09:29:34 -07:00
bjorn c3b79b7274 Use updateWindow in fake headset getDisplayDimensions; 2018-08-20 15:09:08 -07:00
bjorn 5a55e56d9c Add sleep back to main loop;
To avoid pegging the CPU.
2018-08-20 14:48:06 -07:00
Bjorn Swenson 72b2dca38d
Merge pull request #52 from mcclure/no_openal_pr
Introduce -DUSE_OPENAL=0 CMake option which prevents inclusion of OpenAL
2018-08-20 13:42:49 -07:00
mcc 883883f0fa Introduce -DUSE_OPENAL=0 CMake option which prevents inclusion of OpenAL 2018-08-20 16:33:16 -04:00
mcc f69f6169fe Fix ControllerButton ordering, which broke isDown
The first item in ControllerButtons was NULL, which meant luaL_checkoption could not work.
2018-08-20 13:29:45 -04:00
bjorn 1f00948da0 Fix world/collider memory leaks; 2018-08-18 21:16:19 -07:00
bjorn d2b6def5c2 Shader:sendImage;
Can be used to bind images with specific slices, mipmap levels,
and access hints.
2018-08-17 19:53:54 -07:00
bjorn cab12ba945 Shader:setBlock accepts access hint; 2018-08-17 19:53:54 -07:00
bjorn a32b53b2cc UniformAccess for read/write block/image hints; 2018-08-17 19:53:54 -07:00
bjorn 198400828d Source:getType; 2018-08-17 19:53:54 -07:00