bjorn
69dd0d4674
audio: rm paused and stopped states; rm rewind;
...
- There is now just one "playing" state.
- Instead of rewind, use :seek(0).
Note that now there is no way to resume or rewind all tracked sources.
This can be improved in the future if there's a need for it, probably
using variadic or table-based variants of the audio module functions.
2020-02-26 00:25:49 -08:00
bjorn
fa771b04bd
Fix CMake;
2020-02-23 01:01:34 -08:00
bjorn
ef7ebaef85
core/gpu: vulkan feature detection; rm stats;
2020-02-23 00:47:59 -08:00
bjorn
f8b8d427d7
Opaque Mesh; Opaque OpenGL;
2020-02-23 00:29:21 -08:00
bjorn
aabb8cb830
Opaque Shader;
2020-02-23 00:29:21 -08:00
bjorn
d034e8c01b
Opaque Canvas;
2020-02-23 00:29:21 -08:00
bjorn
52d4f7e520
Opaque Texture;
2020-02-23 00:29:21 -08:00
bjorn
b045d42782
Opaque Buffer;
2020-02-23 00:29:21 -08:00
bjorn
5d8bf1d45a
Fix Source:setLooping assert;
2020-02-22 01:01:17 -08:00
bjorn
2cf6d7b109
Improve lovr.filesystem.load errors;
...
Lua was happily compiling nil chunks and making them return empty
strings, which was not a good error experience in situations where
your file couldn't be loaded properly. Now we return nil plus an
error message, which matches LOVE and other Lua conventions.
2020-02-22 00:30:30 -08:00
bjorn
3d3fb71a98
core/gpu: start shader stuff; coherent buffer mapping;
2020-02-21 18:38:33 -08:00
bjorn
93d556b603
zip: read compressed size from central directory;
...
Some zip writers do not write the compressed size to the local file
headers.
2020-02-21 15:44:48 -08:00
bjorn
b9b8062c18
core/gpu: texture views;
2020-02-21 01:48:58 -08:00
bjorn
f428ceacaf
core/gpu: gl backend compiles;
2020-02-20 15:52:41 -08:00
bjorn
7d2bec7283
core/gpu: add vulkan backend;
2020-02-20 12:23:31 -08:00
bjorn
6452f51680
core/gpu: attribute formats;
2020-02-19 20:28:30 -08:00
bjorn
a658da78ad
core/gpu: Add all uncompressed texture formats;
2020-02-19 19:36:30 -08:00
bjorn
aadadb968b
core/gpu: will it blend;
2020-02-19 18:33:59 -08:00
bjorn
0620cade9e
core/gpu: gpu_set_vertex_buffers; fixes;
2020-02-19 18:02:37 -08:00
bjorn
cb4a7a5a43
core/gpu: indirect drawing commands;
2020-02-19 17:42:33 -08:00
bjorn
238496de29
Start core/gpu;
2020-02-19 17:21:40 -08:00
bjorn
81f4232da5
opengl: Init compareMode for native textures;
2020-02-19 15:34:32 -08:00
Bjorn
98d2cc6cd4
Merge pull request #227 from mcclure/no-post-distortion
...
Instead of showing post-distortion in Oculus mirror, show the left eye (no stereo)
2020-02-17 18:02:47 -08:00
Bjorn
2f78c29c07
Merge pull request #128 from mcclure/jun28-upside-down-mirror
...
Y-flip mirror texture on Oculus
2020-02-17 18:02:37 -08:00
Bjorn
c17af6c798
Merge pull request #225 from mcclure/msvc-2019-cpp
...
Fix ref.h in recent MSVC when compiled as C++
2020-02-17 17:54:44 -08:00
bjorn
aa0e01ddab
Cleanup;
2020-02-17 17:27:57 -08:00
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