Commit Graph

2644 Commits

Author SHA1 Message Date
bjorn bfdebffb34 Fix volume textures; 2020-02-17 17:27:57 -08:00
Bjorn 74b9258671
Merge pull request #228 from mcclure/skybox-uv
Fix lovr.graphics.skybox()
2020-02-17 16:48:32 -08:00
mcc 6536216aa2 Fix lovr.graphics.skybox() 2020-02-17 18:19:05 -05:00
mcc c22c55865a Instead of showing post-distortion in Oculus mirror, show the left eye (no stereo) 2020-02-17 17:43:47 -05:00
mcc 7db4e4976b Fix compile warnings (MSVC2019) 2020-02-17 17:42:13 -05:00
mcc e7938fe514 Fix ref.h in recent MSVC when compiled as C++
A cast is required at this point in MSVC 2019 when ref.h is included from a C++ file. This change has no effect on Lovr compiled normally (which compiles only as C), what this change does is make it possible for forks to extend Lovr with C++ files.
2020-02-17 14:47:08 -05:00
bjorn 18dcb07b98 Convert stuff over to use new enum system; 2020-02-16 18:31:02 -08:00
bjorn d5487cbd40 Better luax_checkoption error messages; 2020-02-16 18:06:06 -08:00
bjorn c20a6507d2 Add StringEntry for faster enums; 2020-02-16 17:50:51 -08:00
bjorn 47f4319ba8 core/png; rm stb_image_write; 2020-02-16 04:11:55 -08:00
bjorn 7f205d2fb1 WebGL shader fix; 2020-02-16 01:32:07 -08:00
bjorn 2db1f2b743 Fix erroneous GLES enables;
None of these exist in OpenGL ES.  These were throwing seemingly
innocuous GL errors, so this is mostly just a matter of correctness.
2020-02-16 01:23:27 -08:00
bjorn 8477638fad Fix warning; 2020-02-15 23:27:25 -08:00
bjorn d2f4628791 Add pointer devices; 2020-02-14 19:10:37 -08:00
Bjorn cce7fa8581
Merge pull request #197 from bjornbytes/hand-devices
More Hand Stuff
2020-02-13 16:35:14 -08:00
bjorn 409c2ad0c6 Fix projection matrices; 2020-02-13 16:33:17 -08:00
Bjorn f048f6d6f0
Merge pull request #218 from bjornbytes/android-bounds-size
oculus_mobile: Expose bounds dimensions;
2020-02-13 15:53:25 -08:00
Bjorn 56dad769dd
Merge pull request #217 from bjornbytes/android-button-changed
oculus_mobile: Expose button changed states;
2020-02-13 15:53:11 -08:00
Bjorn 4b041820aa
Merge pull request #216 from bjornbytes/android-display-frequency
oculus_mobile: lovr.headset.getDisplayFrequency;
2020-02-13 15:52:56 -08:00
bjorn e218733ee2 Make splay axis 1D; 2020-02-13 15:18:12 -08:00
bjorn a0c7d0235f leap: rm curl/splay emulation; 2020-02-13 15:13:08 -08:00
bjorn 5197d30b94 Add getSkeleton; 2020-02-13 15:08:59 -08:00
bjorn 0e4c42c8b0 Add pinch axis; 2020-02-13 15:08:58 -08:00
bjorn 81e3119321 leap: curl/splay emulation; openvr fixes; 2020-02-13 15:08:58 -08:00
bjorn 7e34c7adcc leap: getPose for finger devices; 2020-02-13 15:08:58 -08:00
bjorn 71e63ddac2 openvr: add curl/splay axes for finger devices; 2020-02-13 15:08:58 -08:00
bjorn d448bdc95c Finger devices/axes; OpenVR finger poses; 2020-02-13 15:08:58 -08:00
Nevyn Bengtsson f2d5824a2b desktop: fix wasPressed/wasReleased 2020-02-13 18:28:02 +01:00
bjorn 443376efde ModelData: Use union for transform fields;
Nodes can have either a transform matrix, or decomposed transform
properties, but never both.  Using a union means we can store both
of those variants in the same piece of memory, using the existing
matrix boolean to figure out which one to use.

This reduces the size of the struct by 48 bytes (152 -> 104), which
ends up speeding up some model operations, I'm guessing due to the
CPU cache.
2020-02-11 16:38:31 -08:00
bjorn 155718d161 shaders: Change abstract parameters to named parameters; 2020-02-11 16:17:54 -08:00
bjorn 7edb562732 Add lovr.headset.getTime;
Unlike lovr.timer.getTime, this is the predicted time at which the
current frame will be displayed.  It can be used in place of
lovr.timer.getTime for smoother animations.  It's unclear if this
could be used for a suitable replacement for dt though.
2020-02-09 11:26:23 -08:00
bjorn e8fdd5d7f0 Support KTX textures containing ASTC data; 2020-02-08 03:57:59 -08:00
bjorn 2097241596 Improve ASTC loading;
Just a little more reliable and easier to read.
2020-02-08 03:57:59 -08:00
bjorn c1e231e756 oculus_mobile: Expose bounds dimensions; 2020-02-08 03:32:50 -08:00
bjorn adcbe6d707 oculus_mobile: Expose button changed states; 2020-02-07 23:01:01 -08:00
bjorn 8d22935c60 oculus_mobile: lovr.headset.getDisplayFrequency; 2020-02-07 22:21:32 -08:00
bjorn 02a73f333e oculus_mobile: respect t.headset.msaa; 2020-02-07 22:09:47 -08:00
bjorn c502f5b62a Add highp shader flag that sets default fragment precision to highp;
Also, precision qualifier is required to work on desktop GL, so
we don't need ifdefs for it!
2020-02-07 19:44:51 -08:00
bjorn cae8bba522 Remove lovrMain macro;
We want lovrMain to be the entrypoint but we can't figure out how
to do this in a way that wouldn't break things, on all platforms.
2020-02-07 19:25:55 -08:00
bjorn 723f5684cf Fix mat4_fov and desktop driver projection;
OpenVR may need updating now, but at least we know what the correct
approach is now.
2020-02-06 17:32:44 -08:00
bjorn 4a545e4d04 EGL context creation fixes; 2020-02-04 16:48:03 -08:00
bjorn 67ba5f3a82 Add more graphics stats; 2020-01-31 03:43:52 -08:00
Cassie Jones 9845fee2b6 Use different compute #version with OpenGL ES
GLES doesn't like #version 430 for compute, it wants #version 310 es.
We can conditionally compile that.
2020-01-31 06:24:08 -05:00
bjorn be4db58fa3 "Fix" compute blocks on GLES;
There can only be one compute block.
2020-01-30 19:14:25 -08:00
bjorn c9c5d43829 Shader:hasBlock; Shader:sendBlock errors on missing block; 2020-01-30 18:26:05 -08:00
bjorn a1a53b4bed sampler2DMultiview; textureMultiview; 2020-01-30 17:48:15 -08:00
bjorn 78f272247b newCanvas creates array textures when multiview; 2020-01-30 17:48:01 -08:00
bjorn d971749b85 oculus_mobile: Fix vrapi_getView* signatures; 2020-01-30 17:09:06 -08:00
bjorn f8d3172868 opengl: Prefer state.features.compute to ARB_compute_shader; 2020-01-29 18:22:16 -08:00
bjorn f89998b21f Add eye/left and eye/right devices;
Currently nobody returns data for them, though headset drivers could
start to provide poses estimated from the head pose and IPD info.

This also makes it easier to integrate eye tracking later.
2020-01-29 17:53:03 -08:00
Bjorn 12d2e32903
Merge pull request #206 from bjornbytes/headset-views
Headset views;
2020-01-29 17:24:34 -08:00
bjorn 9ea76fac7b rm placeholder getFov code; 2020-01-29 17:09:23 -08:00
bjorn c73fadf5a3 Mark compute shaders as available on ES3.2; 2020-01-29 14:08:09 -08:00
bjorn 3c2154c824 Add unused EGL context creation; 2020-01-28 21:42:44 -08:00
bjorn c9a06a37cb Refactor main; Add unused android entrypoint; 2020-01-28 21:38:44 -08:00
bjorn 0aa724116e Headset views;
- lovr.headset.getViewCount
- lovr.headset.getViewPose
- lovr.headset.getViewAngles
2020-01-27 22:11:58 -08:00
bjorn b19a391c32 desktop: emit focus events; 2020-01-27 21:10:27 -08:00
bjorn 56dc8d0b9e Handle stereo shaders better;
- Creating a shader from a DefaultShader will respect the stereo flags.
- Auto shaders will properly be stereo/nonstereo based on the target Canvas.
2020-01-27 16:33:15 -08:00
bjorn 4379d25e1c Organization; 2020-01-27 14:02:54 -08:00
Cassie Jones 3e09120173 Compile shaders using source lengths
The previous implementation relied on glShaderSource inferring source
lengths when the lengths weren't specified. This relies on the sources
being properly null-terminated, however, which isn't the case due to
file loading changes which now use pointer + length. This could cause
intermittent crashes.

Changing this on the shader side meant adding some extra arguments for
passing around shader source lengths. For most of the other cases, where
we're using string literals as the sources, we can just specify -1 as
the length, since OpenGL will calculate the string length for you any
time the length is negative.
2020-01-27 16:13:21 -05:00
bjorn 7ca23bc58a lovr.headset.getDisplayFrequency; 2020-01-24 23:06:30 -08:00
bjorn 4f7bb9e53e lovr.headset.wasPressed; lovr.headset.wasReleased; 2020-01-24 22:48:36 -08:00
bjorn c7f5406ce2 Make clipping planes consistent across most headset drivers;
The default far clipping plane was changed from 30 to 100 for openvr
and oculus.  oculus_mobile clipping planes can't be changed easily.
2020-01-23 11:25:38 -08:00
bjorn 8c429e89ac Fix -Wshadow; 2020-01-23 11:18:04 -08:00
bjorn 08577ee91b Fix cast-qual warning; 2020-01-23 11:01:27 -08:00
bjorn 4c1917f6ce Fix some prototypes; 2020-01-23 10:55:46 -08:00
bjorn 0f338c3ebd Fix getDirectoryItems on windows; 2020-01-22 16:09:35 -08:00
bjorn ddcdce25dc Minor style stuff; 2020-01-22 15:41:48 -08:00
bjorn 96d3288dae Update header; 2020-01-22 15:38:57 -08:00
bjorn a5424a1932 Microphone:getData supports sampleCount/destination; 2020-01-22 15:36:41 -08:00
Bjorn 3c65d238bc
Merge pull request #193 from alloverse/allo/mic
Sound adjustments: SoundData has-a blob, and mic sample size getter
2020-01-22 14:10:26 -08:00
bjorn f207c4d9a4 zip: Only call munmap if zip file was actually mapped; 2020-01-20 15:59:53 -08:00
mcc ea06f8d7dc Filesystem fixes: Use normalize() in lovrFilesystemMount and dir_resolve; ensure enough room for zero terminator in zip_lookup 2020-01-20 17:12:37 -05:00
Nevyn Bengtsson e10799b8c8 microphone: less throwy, more MAX()y 2020-01-20 08:52:58 +01:00
Nevyn Bengtsson a5c59e2d12 Fixes from review 2020-01-20 08:49:11 +01:00
Nevyn Bengtsson 0bdb7c7c80 More has-a-ification of texturedata
I forgot to stage this yesterday??
2020-01-20 08:48:59 +01:00
Nevyn Bengtsson 95edb43654 TextureData: holds Blob instead of being Blob, just like SoundData
also replaces TextureData:getPointer with TextureData;getBlob
2020-01-19 22:59:44 +01:00
Nevyn Bengtsson 91cc385340 Remove redundant SoundData:getPointer() 2020-01-19 22:43:13 +01:00
Nevyn Bengtsson 9127dd823c Fix bugs in sounddata-has-blob 2020-01-19 21:22:23 +01:00
Nevyn Bengtsson 7107ecd235 SoundData:getBlob() 2020-01-19 17:50:04 +01:00
Nevyn Bengtsson 790629bc3e SoundData: has-a blob instead of is-a blob 2020-01-19 17:50:04 +01:00
Nevyn Bengtsson 8515cd98fe Add destination buffer size to microphone:getData()
So that we can use OpenAL's internal ring buffer and only dequeue
exactly the amount we need at the moment.
2020-01-19 17:03:35 +01:00
Bjorn c5edc6dedb
Merge pull request #190 from bjornbytes/android-canvas
Android Canvas
2020-01-17 12:19:49 -08:00
bjorn b1eeda96cb Small safety fix; 2020-01-16 09:32:12 -08:00
bjorn 0ecd8f6b49 Fix lovr.filesystem.getExecutablePath on macOS; 2020-01-16 09:21:21 -08:00
Bjorn 3a5c3ca97c
Merge pull request #189 from bjornbytes/channel-mutex
Channel ownership stuff
2020-01-15 17:54:00 -08:00
bjorn 2a52796c6f Commenting; 2020-01-15 17:56:09 -08:00
bjorn c0d1e28deb Fix ifdef for glTexStorage;
It's always present on GLES.
2020-01-14 19:39:10 -08:00
bjorn da88766e5a oculus_mobile: Discard depth/stencil buffers after rendering;
This was present in lovr-oculus-mobile.
2020-01-14 18:46:00 -08:00
bjorn 541400e0fe oculus_mobile: Create framebuffers from bridged swapchain textures;
This is a change that shifts the responsibility regarding the creation
of OpenGL framebuffers from vrapi-provided swapchain texture handles.
Previously, the LovrApp component of lovr-oculus-mobile was creating
framebuffers and passing native framebuffer IDs to lovr.  With this
change, lovr-oculus-mobile passes vrapi's swapchain textures to lovr
unmodified.  This allows lovr to create canvases using its conventional
method and also means that the properties of the canvases are no longer
hardcoded, so things like resolution and multisampling can be
customized.

There were also some issues with multiview canvases in LÖVR due to some
misconceptions about how multisampled multiview rendering works.  These
issues have also been fixed in this commit.
2020-01-14 18:26:01 -08:00
bjorn afa5523773 Curve:render always returns 2 points if it's a line; 2020-01-14 01:08:57 -08:00
bjorn f728496608 Make math module work better in threads;
conf doesn't work in threads.  While this seems problematic, it can
kinda be considered the right thing.  Right now the math module can't
be required at all in threads which seems bad, so we'll make it work
and just ignore the "globals" flag for now.
2020-01-14 00:39:38 -08:00
bjorn 0841268d45 Fix garbled text when printing out spaces;
Apparently requesting/rendering zero vertices was clogging stuff
somewhere.  It seems good enough to just explicitly not render
anything if we weren't gonna do it anyway.
2020-01-14 00:37:09 -08:00
bjorn 3b8d485fe9 Mesh:setVertices(Blob); 2020-01-14 00:22:35 -08:00
bjorn bd6d45cd30 Add comment; 2020-01-13 23:51:59 -08:00
bjorn 056c1e7fe4 Simplify Channel cleanup; 2020-01-13 23:49:52 -08:00
bjorn 46c685bd27 Make channel creation threadsafe; 2020-01-13 23:49:52 -08:00
bjorn 48b887f7ee Always pass identity matrix for animated shader;
So at least something shows up if you have an unskinned mesh with
a skinned shader.
2020-01-13 20:47:47 -08:00
bjorn 3c68e9e97a Fix some compile warnings/style;
Also I am little unsure about the _unused part.  It seems like we
were passing it ALuint** when the spec says it takes ALuint*.
2020-01-13 20:45:36 -08:00
bjorn bb7bcb9b3d Fix lovr.data.newBlob(blob); 2020-01-13 20:39:43 -08:00
Bjorn 5dd35edcb3
Merge pull request #188 from mcclure/newthread-crash
Fix segfault on lovr.thread.newThread(nil)
2020-01-13 19:50:35 -08:00
Bjorn 180a3adb8f
Merge pull request #180 from alloverse/raw-audiostream
Real-time raw AudioStreams
2020-01-13 19:49:57 -08:00
mcc 2a3b4694f5 Fix crash on lovr.thread.newThread(nil) 2020-01-11 14:56:26 -05:00
Nevyn Bengtsson 972eb108c0 NULL is not valid for buffers in UnqueueBuffers 2020-01-11 16:31:06 +01:00
bjorn dc1c011380 Fix bug with std140 offset logic; 2020-01-09 21:57:25 -08:00
Nevyn Bengtsson 3279c0d3f0 Document buffer unqueueing in source play 2020-01-09 16:37:28 +01:00
bjorn 42c85c39fb rm 1ms sleep from main loop;
It's causing massive problems on windows, and sleeping for zero ms
is good enough to relinquish CPU time to the OS.  VR APIs also do
their own sleeping.
2020-01-08 23:58:11 -08:00
Nevyn Bengtsson ab3e7a52fa AudioStream: fix broken GetDurationInSeconds
d'oh
2020-01-09 00:01:18 +01:00
Nevyn Bengtsson 86ba2feeeb RawAudioStream: Use cursor instead of realloc-remainder
Previous code would wastefully reallocate memory for every time a buffer is too big to fit. New code just uses an index into the next buffer at which to start reading, requiring no extra allocation.
2020-01-08 23:52:08 +01:00
Nevyn Bengtsson 1ca57a073c style fixes after review 2020-01-08 23:44:28 +01:00
Nevyn Bengtsson edbfbf9bdc audiostream: make getDuration consistent between raw and buffer-based
queueLength was in samples, samples was samples/channelCount. Now samples is always samples, and the division by channels occurrs in the new getter
2020-01-08 17:58:25 +01:00
Nevyn Bengtsson af6b3515ef audiostream: use `samples` instead of `queueLength`
Instead of having a bogus samples ivar in AudioStream when it's raw, use it to denote the amount of audio data enqueued.

This means `stream:getDuration()` gets the same meaning as `stream:getQueueLength()` (except in seconds instead of samples), so we can remove the latter.
2020-01-08 17:55:04 +01:00
Nevyn Bengtsson 3cb7649996 audiostream: what the heck is memory.h
fixes review comment
2020-01-08 17:49:13 +01:00
mcc dac50c4687 Pragma once in core/hash.h 2020-01-06 13:55:39 -05:00
Nevyn Bengtsson ae5877a299 Rewind raw sources on explicit stop
I missed this one in dbe2edd8
2020-01-05 21:26:41 +01:00
Nevyn Bengtsson 1db932d856 Source: Stop, then unqueue buffers
Doing it the other way around is illegal; you may not unqueue unprocessed buffers, so we need to stop first.
2020-01-05 21:26:14 +01:00
Nevyn Bengtsson b3fb31f5a4 Destructor for raw audio stream 2020-01-05 21:19:08 +01:00
Nevyn Bengtsson dbe2edd89d Source: Do rewind on stop like before, and clear buffers
I changed my mind. Let's use rewind to clear buffers on a raw stream like Bjorn suggested, and put rewind at stop like it was before.
2020-01-05 21:08:30 +01:00
Nevyn Bengtsson a8b4dc673d Accessor for RawAudioStream:getQueueLength
Useful for determining current amount of latency.
2020-01-05 00:05:29 +01:00
Nevyn Bengtsson 5232aa2ff2 RawAudioStream: Add a limit to amount of queued data
This is useful for making sure the audio subsystem doesn't go haywire with too much generated data
2020-01-04 23:49:58 +01:00
Nevyn Bengtsson 2d681260e5 RawAudioStream: Fix byte/sample confusion
dequeue_raw thought that size was in bytes, but it's in samples.
2020-01-04 23:22:58 +01:00
Nevyn Bengtsson a3720b494b RawAudioStream: Fix use-after-free 2020-01-04 02:02:32 +01:00
Nevyn Bengtsson e85a9b74c6 Audio source: unqueue before playing 2020-01-04 01:58:03 +01:00
Nevyn Bengtsson a274eb05d1 RawAudioStream: Fix a buncha crashes
It's still buggy but at least less so
2020-01-03 23:01:21 +01:00
Nevyn Bengtsson 33bee6ce44 Audio: Rewind on play, not stop
Before, streams were rewound when they stopped, so that next time they're played they're played from the start.

Instead, rewind on play instead, so that it's done when it's needed. This gets us a good point to make sure we're not rewinding raw streams too.
2020-01-03 23:00:58 +01:00
Nevyn Bengtsson c6806f50e1 RawAudioStream: getter for isRaw
And disallow looping raw streams
2020-01-03 22:59:37 +01:00
Nevyn Bengtsson 4fb4f6cdd1 RawAudioStream lua API 2020-01-03 17:15:12 +01:00
Nevyn Bengtsson f6abb8d714 Raw audiostream implementation
Naive unoptimized implementation to get a feel
for the API design.
2020-01-02 20:34:55 +01:00
Jason Dogariu 163367a3ba rm pragma pack to fix OpenVR on Linux and Mac 2020-01-01 17:34:45 -05:00
bjorn c9b1f257bf api: try new file naming convention; Tupfile: cleanup;
I assume full responsibility for any catastrophes this causes.
2019-12-31 19:31:44 -08:00
bjorn d228dc95d7 Automatically convert binary resources;
- Teach CMake how to compile binary resources to C headers, like xxd.
- Note: tup is already using xxd to do this.
- gitignore binary resource headers to reduce git noise and avoid problematic
  interactions between git and build systems.
2019-12-29 11:25:30 -08:00
bjorn 12fcaffc3b Slight update to lovrDirSep;
Macro instead of global variable.
2019-12-29 10:30:26 -08:00
bjorn 79fd5ad7d8 Name boot.lua chunk properly;
This makes error messages nicer.
2019-12-28 23:18:03 -08:00
bjorn e538965f77 Add newline to end of stb_image.h; 2019-12-28 23:16:36 -08:00
bjorn a5db2d6c5c mv appveyor config to resources folder; 2019-12-28 20:13:19 -08:00
mcc 21a52368f5 Patch in thread local storage for stb_image vflip
This makes loading images in multiple threads concurrently safe.

Adds a new CMake variable LOVR_USE_THREADLOCAL, by default on
2019-12-20 16:09:18 -05:00
mcc 735d2e1011 Upgrade stb_image from v2.12 to v2.23 2019-12-20 16:24:05 -05:00
bjorn a103637419 Fix ModelData refcounting; 2019-12-20 04:52:55 -08:00
bjorn d1657f401d Fix some memory leaks; 2019-12-20 04:13:38 -08:00
Bjorn ebde129204
Merge pull request #174 from mcclure/android-0.14
Android fixes. Major change is lovrMain() {} is now lovrMain {}
2019-12-17 17:23:50 -08:00
Bjorn 6c6e5bb60d
Merge pull request #173 from mcclure/file
Bring back old File C API (read-only currently)
2019-12-17 17:22:09 -08:00
mcc c563787f7d Android fixes. Major change is lovrMain() {} is now lovrMain {}
The oculus drivers choke on #define lovrMain()
2019-12-17 20:20:09 -05:00
mcc 3ff94d8797 Bring back old File C API (read-only currently)
This code path is not used anywhere in this commit, but aids in developing Lovr addons.
2019-12-17 20:06:42 -05:00
mcc ff1ae2c050 Minor fix to let header files compile in C++ 2019-12-17 20:02:33 -05:00
bjorn fd437423e7 Fix refcount alignment;
Once and for all?  How does alignment even work.
2019-12-15 17:04:26 -08:00
Bjorn 16b93869ee
Merge pull request #143 from bjornbytes/shadow-samplers
Shadow samplers;
2019-12-14 11:34:38 -08:00
bjorn 0d156549f7 Fix remaining references to platform; 2019-12-13 19:59:09 -08:00
bjorn bb279b451c Fix remaining platform references; 2019-12-13 19:58:22 -08:00
bjorn e2d8f8c645 platform -> os;
The function names are staying the same for now.
2019-12-13 19:55:46 -08:00
bjorn 63dc8f6c9b Only use glfw for window creation;
This allows for headless operation.  Currently GLFW throws an error
if you call glfwInit without an X server running, preventing lovr
from starting at all in that situation.

Because GLFW is currently used for time functions, those had to be
moved into the platform layer.  There's lots of duplication here,
ideally the platform layer would just return raw timer values and the
timer module would handle the epoch logic, but it was too difficult to
coordinate that right now.

Also, lovrPlatformInit is guaranteed to set the time epoch to 0 now.
2019-12-13 19:55:46 -08:00
bjorn 5957a1d007 Channel:peek also returns status; 2019-12-13 19:53:31 -08:00
bjorn e2f67c106d Thread:start supports up to 4 arguments;
They are passed to the chunk.
2019-12-13 15:50:10 -08:00
bjorn 33991b41ad tup macOS fixes;
- Need to use dylib suffix.
- Need pagezero stuff (should we only do this when using LuaJIT?)
- rpath is totally different.
- stb_vorbis alloca broke?
2019-12-13 07:27:37 -08:00
bjorn 6f24da9f7f Rework Tupfiles;
- One toplevel Tupfile that makes it more clear what happens.
- Add config flags for -Werror, -fsanitize, and separate debug/optimize flags.
- Automatically integrate with libs built by CMake (build folder, rpath, libs folder).
- Disabling modules actually works, only the stuff that's needed is built.
2019-12-13 06:52:57 -08:00
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