1
0
Fork 0
mirror of https://github.com/bjornbytes/lovr.git synced 2024-07-15 18:23:35 +00:00
Commit graph

1615 commits

Author SHA1 Message Date
bjorn 9734ef005c Fix Pass:setClear w/ table of numbers; 2023-10-02 08:47:04 -07:00
bjorn d901481cdc Clear canvas info properly when setting canvas to nil; 2023-09-30 13:19:31 -07:00
bjorn fd2b2e7e4a Render pass samples can't be a boolean that's weird; 2023-09-30 12:31:10 -07:00
bjorn d7c6461916 Render targets with mipmaps get transfer usage;
Also I think no mipmaps is more sane default for render targets.
2023-09-29 05:22:03 -07:00
bjorn a2f539de56 Update glslang; Shader #include uses virtual filesystem;
This update seemed to increased glslang's binary size even more...
2023-09-28 22:04:05 -07:00
bjorn 684560ef81 Fix Mesh:getDrawRange not returning base vertex; 2023-09-28 03:17:18 -07:00
bjorn c3c5284f11 Improve viewport/scissor accessors;
- Better validation
- Can set to nil to "disable"
- Getter returns nil when "disabled"
- Negative viewport height works again
2023-09-27 00:24:01 -07:00
bjorn 3fb3590b77 Mat4:mul/Quat:mul return temp vectors;
Quat:mul also takes numbers.
They both require 3 args when using numbers.
I didn't opt for the 4-component Mat4:mul(numbers) variant, mostly out
of laziness.

Co-Authored-By: Josip Miskovic <josipmiskovic@gmail.com>
2023-09-26 01:30:54 -07:00
bjorn 6883c36397 Rename Mat4:getTranslation/Rotation -> position/orientation;
It's a little less correct, but literally everything else is
"getPosition" and "getOrientation".
2023-09-25 21:59:51 -07:00
bjorn fbdecda440 Render textures have mipmaps by default again;
They defaulted to 1 to avoid confusion when mipmaps weren't generated
during a render pass (withou the { mipmaps = true } flag), but now the
mipmaps flag is obsolete and render passes automatically generate
mipmaps for all levels in their texture views.  This means that render
passes can have mipmaps by default again, which leads to better
appearance when sampling them later.
2023-09-25 00:07:26 -07:00
bjorn ed0756bfa2 rm variant of newMesh that takes indices;
Too many variants!  Also it had bugs.
2023-09-24 23:39:51 -07:00
bjorn 860ebbd133 Fix Shader:getBufferFormat; 2023-09-22 20:44:06 -07:00
bjorn 6eae891eb3 Add Mat4:getPose;
Companion to Mat4:getTranslation/Rotation/Scale;
2023-09-21 20:11:26 -07:00
bjorn 2a97fc0380 Vec3:transform; Vec4:transform; Vec3:rotate;
Co-Authored-By: Josip Miskovic <josipmiskovic@gmail.com>
2023-09-21 20:03:48 -07:00
bjorn f318c68796 Buffers can be cleared to values other than zero; 2023-09-18 23:05:27 -07:00
bjorn ead7a0ccc1 Add backwards compat for lovr.headset.animate;
If the first argument is a string, it's ignored and the second is
expected to be a Model.  Otherwise, the usual single-argument path is
taken.
2023-09-18 17:31:28 -07:00
Josip Miskovic f16956b07d Fix getter for distance joint anchors 2023-09-13 22:06:51 +02:00
bjorn efbcdbfe8e Fix issue where Material:getProperties was returning uv shift as uv scale; 2023-09-12 01:11:49 -07:00
bjorn f2343a2056 Fix crash when uvShift/uvScale are tables; 2023-09-12 01:11:49 -07:00
bjorn f6216415e6 Rename pass memory stats to indicate they're CPU; 2023-09-11 20:19:36 -07:00
bjorn bfbde95bb2 Fix minor issues with Texture:clear bindings; 2023-09-11 20:11:31 -07:00
bjorn 5b6d882475 Add Image:mapPixel; 2023-09-11 18:48:46 -07:00
bjorn 9542d46f33 Buffer format cleanup; 2023-09-11 03:01:11 -07:00
bjorn 942dc77b7a Pass Java VM to plugins on Android;
Currently I don't think there's a way for plugins to use JNI, because they
have no way to access the JavaVM or JNIEnv pointers.  JNI_OnLoad is only
called for native libraries loaded by Java, and the plugin library has
no way of loading liblovr.so or accessing its symbols because the
library is inside the APK.  This change emulates JNI_OnLoad as a means
of smuggling the JavaVM over to plugins before they're loaded.  On
Android API level 31, the JNI_GetCreatedJavaVMs function was exposed on
Android, so that may be an alternative for plugins to use in the future.
2023-09-06 21:48:49 -07:00
bjorn 81e1c8fbad Add methods for accessing binary numbers from a Blob; 2023-08-28 10:31:32 -07:00
bjorn 0fcbdcbf5d Fixup overlay order;
- state.features.overlay should remain a bool since it just indicates
  whether the extension is supported/enabled.
- split the config value into a bool/u32 pair so the full u32 range can
  be used for the order (seems important to coordinate with other apps).
  - Also you can use a boolean now like before, which uses 0 as the order.
2023-08-21 15:15:39 -07:00
Bjorn f8f9c833b1
Merge branch 'dev' into master 2023-08-21 14:59:53 -07:00
bjorn 2d94841db6 Pass:skybox takes nil; 2023-08-21 14:37:05 -07:00
BabbleBones 6fbfc16f7d feat: overlay layers 2023-08-18 11:30:58 -04:00
bjorn 0d6c9a1def World:isCollisionEnabledBetween takes nils;
They act like wildcards, just like nil tags do otherwise.
2023-08-15 18:24:19 -07:00
bjorn 874f438621 Add back lovr.headset.getDirection;
It's useful.  quat(lovr.headset.getOrientation()):direction() is
verbose, noob-unfriendly, and somewhat wasteful.  I think this was
originally removed because something about not exposing the full
rotation basis.
2023-07-31 18:38:04 -07:00
bjorn 715edfd431 Add hand/*/pinch and hand/*/poke devices; 2023-07-31 18:30:35 -07:00
bjorn 5fddd28137 Add hand/left/grip and hand/right/grip devices; 2023-07-31 18:08:56 -07:00
Bjorn c38165a154
Merge pull request #688 from bjornbytes/mesh
Mesh
2023-07-29 18:21:01 -07:00
bjorn 4892d228b3 WIP; 2023-07-24 15:34:44 -07:00
bjorn f960141fd7 Add :type method to vectors; Change Mat4 __tostring; 2023-07-24 15:12:25 -07:00
xiejiangzhi ee10e22402 World query: Rename should_stop to shouldStop, early stop queryCallback if no give a callback 2023-07-21 08:00:58 +08:00
xiejiangzhi a4dc1d9ffb Support early exit for world:raycast world:queryBox world:querySphere 2023-07-20 16:34:56 +08:00
bjorn 534d47904e World:queryBox/World:querySphere callback is optional;
They also return a bool indicating if any intersections occurred.
2023-07-17 13:23:57 -07:00
bjorn 9b7433c1de Add :type method to objects;
NYI for vectors.
2023-07-17 13:18:19 -07:00
bjorn cc67e06d3c Make keyboard input functions variadic; 2023-07-17 13:13:17 -07:00
xiejiangzhi 98ee9739b4 Fix luax_readquat for lovrShapeSetPose 2023-07-17 16:42:58 +08:00
xiejiangzhi c880ed529a Add getPose/setPose for shape. #650 2023-07-17 14:34:54 +08:00
bjorn b268cd1776 World:queryBox; World:querySphere; 2023-07-10 23:20:01 -07:00
bjorn 9bf2def86d Rename box shape dimensions to be more clear; 2023-07-10 23:11:14 -07:00
bjorn 5210d474b8 Source pitchable flag defaults to true; 2023-07-10 20:09:16 -07:00
bjorn 74325d81a1 Expose runtime name in lovr.headset.getDriver; 2023-07-10 19:35:21 -07:00
bjorn dabbd449a8 Format support considers both linear/srgb encodings; 2023-07-10 19:21:11 -07:00
bjorn be795c0ebd Change vec3 back to 3 floats; Clean up maf/vectors;
The "vec3 is 4 floats" thing was consistently confusing to people.  It's
reverted everywhere except for Curve.

maf now has full sets of methods for vec2/vec3/vec4, for consistency.

Vector bindings now use luax_readvec* helper functions for the
number/vector variants, and use maf for most functionality, which cleans
things up a lot.
2023-07-10 17:51:24 -07:00
bjorn 10c2c75482 Frustum culling;
- Adds Pass:setViewCull to enable/disable frustum culling.
- Renames Pass:setCullMode to Pass:setFaceCull (with backcompat).

Some stuff currently missing:

- Text is not culled, but should be.
- VR view frusta are not merged yet.
2023-07-07 14:51:22 -07:00