Commit Graph

2267 Commits

Author SHA1 Message Date
bjorn 6fdeda9e61 Make lovrRelease non-generic;
We know what type we're releasing 99% of the time, we don't need to
play a guessing game in lovrRelease, just have the caller say which
destructor to use.

There is lovrGenericRelease for situations where we need it, which
does the slower lookup of the destructor.
2019-04-05 03:41:03 -07:00
bjorn 7932ef6f9f Add type lookup;
Now Ref has a type id instead of a destructor/name, and use the type to
lookup the destructor and name when needed.

This improves performance, since now Ref contains a lot less data and we
can do an integer comparison instead of a string comparison when reading
objects from Lua.
2019-04-05 02:54:54 -07:00
bjorn 64b7ee85f7 Fix rendering with vertexCount of 0; 2019-04-05 01:28:17 -07:00
bjorn c2c4322e3b Add drawMode to lovrModelDraw Batch; 2019-04-05 01:23:48 -07:00
bjorn 94f112dea3 Disable SSE on arm;
Currently we turn off SSE based on the OS (Android or Emscripten),
but this causes a build error on non-android arm CPUs.  Now we
correctly look at the CPU architecture.
2019-04-05 01:21:33 -07:00
bjorn a28b333899 Split draw data stream into two streams;
Also the max number of draws can be hardcoded to 256 now.
2019-04-05 00:49:50 -07:00
bjorn 88b54a7ab9 Make cursors generic; 2019-04-05 00:49:50 -07:00
bjorn efbc88073e Write vertices at batch time; 2019-04-05 00:49:50 -07:00
bjorn 7409f34d36 lovr.graphics.getStats does a flush; 2019-04-01 07:37:05 +09:00
bjorn ab42e2ca18 Fix bug when reading point/line/triangle primitive data;
- When reading points from a table of numbers, the array
  indexing was not correct and vertex positions were not
  getting correctly written.
- The normals/texture coordinates weren't getting written,
  so their values were using whatever was in the buffer.
  Now they are always set to zero.
2019-03-31 00:23:02 +09:00
bjorn 10305a4fed Fix batching problem; 2019-03-25 11:36:29 +09:00
bjorn 793dca03d1 Fix resulting clang warnings; 2019-03-17 01:01:54 -07:00
bjorn 85c51399a6 Fix MSVC warnings; 2019-03-17 00:58:13 -07:00
bjorn a9ca346ee1 Fix base path in model loaders; 2019-03-16 22:03:00 -07:00
bjorn 9744d95039 Fix snprintf warning;
There's a potential string truncation here if you have a uniform array with a really long name.
2019-03-16 19:43:04 -07:00
bjorn 7441456aab Rename lovr.graphics.getSupported and getSystemLimits;
"Features" and "Limits" will be the standard terminology used now.
2019-03-14 21:24:25 -07:00
bjorn 25fe88b493 Limit UBO size in WebGL;
Currently glBindBufferRange does not seem to work properly if the
offset is bigger than the maximum size of a uniform buffer.  The
size of the draw data buffer is being limited as a workaround.
2019-03-14 13:40:19 -07:00
bjorn 1d7e8519d6 Organize luax_setmainthread; 2019-03-14 13:36:51 -07:00
bjorn 12cf311490 Use mipmaps and filtering for OpenVR Canvas;
It leads to a prettier mirror window.  There is some performance overhead, that can be dealt with as needed.
2019-03-13 20:44:15 -07:00
bjorn bf5dd56254 vec3:add and vec3:sub accept numbers; 2019-03-13 20:36:50 -07:00
bjorn 7523dcdaa7 Update CONTRIBUTING; 2019-03-13 09:43:32 -07:00
bjorn 8722b6e296 Improve Canvas attachment errors; 2019-03-13 09:35:28 -07:00
bjorn c1705da8b7 Improve shader compilation error; 2019-03-13 09:31:06 -07:00
bjorn e008ea7a28 Consistency; 2019-03-13 09:21:14 -07:00
bjorn 94ac64e7f4 Add std140 layout qualifier to DrawData block; 2019-03-13 09:20:33 -07:00
bjorn ce20447260 Use proper ifdefs for LOVR_WEBGL; 2019-03-12 13:18:14 -07:00
bjorn a14e15f856 Only fence when needed;
There appears to be some sort of problem where syncing on WASM and
Android leads to dropped frames.  The only sync that causes this
problem is the delayed sync that occurs after rolling over a
buffer -- in that case the sync is often placed one frame late
once we realize that the rollover has occurred.  I'm not sure if
this is a driver quirk or an improper use of glFenceSync but for
right now avoiding the fence on the problematic platforms fixes
the immediate issue.
2019-03-12 13:09:21 -07:00
bjorn 921d14014e TextureData:setPixel supports more formats; 2019-03-11 13:36:22 -07:00
bjorn cf5ad64deb WebVR: Use new dynCall syntax for function pointers; 2019-03-09 03:00:50 -08:00
bjorn b513990095 Allocate oculus mobile Canvas on stack; 2019-03-07 04:47:08 -08:00
bjorn 843a7b2462 Remove angle conversion in oculus_mobile;
Relies on a separate fix in lovr-oculus-mobile.
2019-03-07 03:20:23 -08:00
bjorn 9e6ead30e7 Oculus mobile formatting; 2019-03-07 03:19:50 -08:00
Bjorn Swenson 0927df8246
Merge pull request #116 from bjornbytes/headset-render-error
Refactor asynchronous headset render errors;
2019-03-07 01:24:09 -08:00
bjorn 9313394e22 Call coroutines T; 2019-03-07 01:19:40 -08:00
bjorn b28face914 Handle coroutine stuff properly; 2019-03-07 01:04:45 -08:00
bjorn e24a80685b Update stb_image_write;
And disable stdio support for it, since it isn't needed.
2019-03-07 00:02:11 -08:00
bjorn ce029cb5c5 Fix emscripten; Properly clear error on Android; 2019-03-06 23:17:29 -08:00
bjorn 569c9f7a11 Refactor asynchronous headset render errors;
It's now a more general error stored in the registry instead of
in a global variable.  There are more helper functions.
2019-03-06 23:17:29 -08:00
bjorn d45e56146a Rename fake to desktop; 2019-03-06 23:02:47 -08:00
Bjorn Swenson 86ef954287
Merge pull request #111 from mcclure/oculus-fix-19feb
Fix Oculus driver compilation
2019-03-06 22:25:31 -08:00
bjorn 2b41d6948c CMake: move_dll works with empty arguments; 2019-03-06 11:06:02 -08:00
bjorn f1ff7bc38a Use luax_setmainthread on Android; 2019-03-06 08:44:07 -08:00
bjorn d340fc7aaa Polyfill LUA_RIDX_MAINTHREAD;
Instead of using a static variable.
2019-03-06 08:42:32 -08:00
bjorn d4c8382306 Fix improper istype calls in LuaJIT; 2019-03-05 02:45:46 -08:00
bjorn 55670ab408 rm trailing whitespace; 2019-03-05 02:29:21 -08:00
bjorn 3d928c1118 lovr.graphics.newMesh accepts Blob again; 2019-03-05 02:08:53 -08:00
bjorn 27e2c56bee lovr.filesystem.read takes and returns byte count; 2019-03-05 01:59:31 -08:00
bjorn d1c6b9d9c3 Improve error message for TextureData:getPixel and setPixel; 2019-02-28 19:35:32 -08:00
bjorn a8e201d89e TextureData:getFormat; 2019-02-28 19:29:30 -08:00
bjorn 5e0c2e531f Source:getPose; Source:setPose; 2019-02-18 18:07:28 -08:00