1
0
Fork 0
mirror of https://github.com/bjornbytes/lovr.git synced 2024-07-22 05:33:35 +00:00
Commit graph

613 commits

Author SHA1 Message Date
bjorn 2def650abd Refactor layers/displays; 2018-03-22 09:57:44 -07:00
bjorn 1f1232505e Uniform buffer objects for matrices;
Still hacky.
2018-03-22 09:57:44 -07:00
bjorn 3064eff017 Hack everything but it mostly works; 2018-03-22 09:57:44 -07:00
bjorn 1cd1b5e11d Use a Mesh for primitives; 2018-03-22 09:46:26 -07:00
bjorn 4c2cd458ad calloc is cool; 2018-03-21 15:36:02 -07:00
bjorn 87d5cb6456 Cache shader attribute IDs; 2018-03-21 15:36:02 -07:00
bjorn d77b139d21 Make Mesh more lightweight; 2018-03-21 15:36:00 -07:00
bjorn d2e0642b59 Use calloc in lovrAlloc; 2018-03-21 12:56:16 -07:00
bjorn 6fb977b5bb Improve Mesh VAO state diffing;
Also permit empty tables for vertex formats.
2018-03-13 16:12:12 -07:00
bjorn 491fbcd2d8 Mapping the whole buffer doesn't mean we can invalidate it; 2018-03-11 11:24:50 -07:00
bjorn c0d4d33d47 lovr.graphics.newMesh accepts VertexData; 2018-03-11 11:24:11 -07:00
bjorn 10bed31ecf Fix VertexData allocation in Meshes; 2018-03-11 11:09:12 -07:00
Bjorn Swenson 9eeca62b78
Merge pull request #41 from mcclure/attach-mesh
Implementation of mesh:attachAttributes(), with instance divisor
2018-03-11 11:05:19 -07:00
bjorn 6916137dc6 VertexData and TextureData properly extend Blob;
...He hates it!
2018-03-10 21:28:22 -08:00
bjorn e4618add55 Gamma correct background color correctly; 2018-03-10 20:59:36 -08:00
mcc 1732384262 Implementation of mesh:attachAttributes(), with optional instance divisor
Some features remain to be implemented, these are marked with TODOs.

Currently it is not allowed to attach a mesh which itself has attachments.
2018-03-04 17:07:54 -05:00
bjorn 7e58e265d6 Fix cube winding; 2018-03-03 17:19:12 -08:00
bjorn 4463bd00c8 Load tangents from models; 2018-02-26 02:54:35 -08:00
bjorn cb7b99f9a6 Optimize skybox rendering;
- Fix winding order of skybox cubemaps.
- Fix skybox image ordering in lovr.graphics.newTexture.
- Change skybox shader to allow rendering cubemap skyboxes last for
  early z rejection.
- Remove overriding of depth write and depth test state for cubemap
  skyboxes.
2018-02-26 02:10:53 -08:00
bjorn 4df836727c Simplify refcounting; 2018-02-26 00:59:03 -08:00
bjorn f54d1c1e03 rm containerof; 2018-02-25 23:19:39 -08:00
bjorn 272cce65a2 Weird compile fixes; 2018-02-25 21:41:02 -08:00
bjorn 9ca743dc1a Headset module can be restarted; 2018-02-23 18:38:53 -08:00
bjorn f5fa9a4e5c Make modules more restartable;
Except headset.  Screw you, headset.
2018-02-23 18:38:53 -08:00
bjorn 640c4e715c rm extra lovr.h includes; 2018-02-23 18:38:34 -08:00
bjorn f3ac875ceb Don't generate mipmaps for Canvases; 2018-02-21 02:07:19 -08:00
bjorn 329f7d25c0 Fix texture stuff; 2018-02-20 23:09:36 -08:00
bjorn 67d3c49a76 Add support for 3d textures; 2018-02-20 17:57:47 -08:00
bjorn dcef23640a Fix texture allocation I think; 2018-02-20 17:47:06 -08:00
bjorn 07af705e37 Texture:getType; 2018-02-20 17:27:35 -08:00
bjorn f75530b9e1 Add support for 2d array textures; Improve mipmaps;
lovr.graphics.newTexture has been changed.
2018-02-20 17:15:47 -08:00
bjorn 17c81a3502 Clear HMD canvas properly; 2018-02-18 16:15:12 -08:00
bjorn 7cecc1489e getCanvas; setCanvas; MRT; MULTICANVAS define; 2018-02-15 19:58:35 -08:00
bjorn cca1f32d10 PBR material properties; 2018-02-11 19:16:40 -08:00
bjorn d5a1928b3d Rename a bunch of files; 2018-02-11 15:22:04 -08:00
bjorn ece5bf2f9c Node and material accessors for ModelData; 2018-02-11 13:03:52 -08:00
bjorn 8ad882e7a4 Add VertexData object; 2018-02-10 17:27:29 -08:00
bjorn 18be34a903 Expose depth write setting; 2018-02-08 21:50:47 -08:00
bjorn 3fd6f27768 Allow custom values when clearing color, depth, and stencil buffers; 2018-02-08 21:26:53 -08:00
bjorn 9205663d69 Texture:replacePixels; 2018-02-08 19:46:24 -08:00
bjorn 14a54fa7b0 rm MaterialData; 2018-01-29 21:44:32 -08:00
bjorn 4a68067e28 rm AnimationData; 2018-01-29 20:30:13 -08:00
bjorn 032788003a VertexData; IndexData; 2018-01-27 12:51:41 -08:00
bjorn 84de048fa3 Fix warnings; 2018-01-26 19:11:42 -08:00
bjorn 66d0e42908 Refactor VertexFormat; 2018-01-26 19:11:40 -08:00
bjorn ea7f3d48a2 Refactor MeshFormat; 2018-01-26 19:01:41 -08:00
Bjorn Swenson 1f3deae6ec
Merge pull request #32 from mcclure/reload-support-2
Restart-without-quit support: lovr.event.quit("restart")
2018-01-25 19:08:30 -08:00
mcc 8052896b33 Restart-without-quit support: lovr.event.quit("restart") and return-from-run() both support the string "restart" in place of an exit code. When this happens, the program reruns itself in a new, isolated environment. In Emscripten, no reboot occurs and the program only quits. 2018-01-25 21:32:16 -05:00
bjorn 3cce5fd991 ModelData; 2018-01-22 18:24:39 -08:00
bjorn ed72de1109 Make sure objects retain their underlying data; 2018-01-22 09:13:03 -08:00
bjorn a22740084c Rename FontData to Rasterizer; 2018-01-22 08:28:33 -08:00
bjorn b7a21d1f90 Fix projection matrix for 3d canvases; 2018-01-20 21:44:44 -08:00
bjorn 1e97c716de TextureData; 2018-01-20 21:33:09 -08:00
bjorn 255c001717 Simplify mipmaps; 2018-01-14 13:21:34 -08:00
bjorn 82cd9d0414 Fix Texture:setFilter for cubemap textures; 2018-01-12 20:25:41 -08:00
bjorn 881a515687 Fix model transform initialization; 2018-01-04 08:49:58 -08:00
bjorn 7b58012854 Flip sphere uvs; 2018-01-01 20:39:50 -08:00
bjorn 77d8b96cfd lovr.graphics.stencil; 2017-12-18 19:48:28 -08:00
bjorn 8acd7444af lovr.graphics.getStencilTest; lovr.graphics.setStencilTest; 2017-12-18 18:37:03 -08:00
bjorn 0028bbd51e Throw an error if a texture is too big; 2017-12-17 19:19:09 -08:00
bjorn 386ab78ae9 Throw an error if font texture overflows; 2017-12-17 19:13:04 -08:00
bjorn 5f38153cf1 Initialize animation track alphas properly; 2017-12-17 18:24:43 -08:00
bjorn 72aa7e858a Rename loaders to data; 2017-12-10 12:41:43 -08:00
bjorn 4a2cc56fef Move shaders into resources; 2017-12-10 12:41:43 -08:00
bjorn 6f58b758e3 Fix texture coordinates; 2017-12-09 20:09:27 -08:00
bjorn 6df8dfe456 Canvas:getFormat; 2017-12-09 20:09:27 -08:00
bjorn ee36b47864 Depth/stencil buffers; More work on Canvas API; 2017-12-09 20:09:27 -08:00
bjorn 928ee06655 Floating point texture formats; 2017-12-09 20:09:27 -08:00
bjorn fa8af65073 Refactor texture formats; 2017-12-09 20:09:27 -08:00
bjorn c6a395fa21 Switch to table variant of newCanvas API; 2017-12-09 20:09:27 -08:00
bjorn 2243fe10ae Flip canvas perspective projection; 2017-12-09 20:09:27 -08:00
bjorn 0eebea28a9 Canvas:getMSAA; 2017-12-09 20:09:27 -08:00
bjorn d261e4b00d Start Canvas objects; 2017-12-09 20:09:27 -08:00
bjorn 8eec247adb lovr.graphics.getStats; 2017-12-09 20:07:42 -08:00
bjorn c6b7d9729d rm lovrGraphicsGetWindow; 2017-12-03 15:23:38 -08:00
bjorn da0afb487c Small fixes for WebVR; 2017-12-01 19:59:55 -08:00
bjorn a698edc475 Bugfixes; 2017-11-30 21:17:54 -08:00
bjorn 2869bac3cd Fix animation alpha; 2017-11-29 00:00:13 -08:00
bjorn 17565ab201 Fix seeking animations to negative values; 2017-11-28 16:52:01 -08:00
bjorn c51731f869 Fix animations with negative speeds; 2017-11-28 16:50:43 -08:00
bjorn 251132d106 Fix bug with Animator:reset; 2017-11-28 14:38:47 -08:00
bjorn 097a88302e Add lines and linestrip MeshDrawModes; 2017-11-25 19:49:22 -08:00
bjorn ddd905627b Mesh:drawInstanced; Model:drawInstanced;
No attribute divisors yet.
2017-11-25 19:45:44 -08:00
bjorn cb2265e547 Remove material from graphics state;
It is now local state to models and meshes and can be passed as
an optional first argument to most primitives.
2017-11-25 19:02:28 -08:00
bjorn 093ef37bf3 Gamma correct colors correctly; 2017-11-25 17:57:59 -08:00
bjorn a9c53372ad Ensure animator is NULL on model creation; 2017-11-25 13:30:02 -08:00
bjorn bb90c8d378 Reduce max bones per mesh to 48; 2017-11-25 12:29:40 -08:00
bjorn 1695cc6be1 Subdivide meshes with high bone counts; 2017-11-25 12:03:59 -08:00
bjorn eecc675043 Make textures immutable and fix font atlas resizing; 2017-11-24 14:13:07 -08:00
bjorn fd9c714d0f Ask glfw for an srgb capable window; 2017-11-24 00:17:52 -08:00
bjorn f34d3536cf Gamma correction for OpenVR; 2017-11-23 23:40:20 -08:00
bjorn 76f690e813 Guard against empty textures; 2017-11-23 23:29:45 -08:00
bjorn 066046b408 Use proper sized texture formats; 2017-11-23 15:21:59 -08:00
bjorn 4fb72d8cb9 rm printf; 2017-11-23 14:24:50 -08:00
bjorn 1662e79f0e Use srgb formats for textures; 2017-11-23 14:19:20 -08:00
bjorn 3c6437fb20 lovr.graphics.isGammaCorrect; conf.lua t.gammacorrect; 2017-11-22 20:26:01 -08:00
bjorn 5c45282d9b lovr.graphics.arc; 2017-11-22 11:32:30 -08:00
bjorn b540fdbfdb Forgot line draw mode for circle; 2017-11-21 20:56:47 -08:00
bjorn 81c29176ab lovr.graphics.circle; 2017-11-21 20:53:45 -08:00
bjorn 602e0ced7d Floating point colors;
This is a breaking change.
2017-11-20 21:47:36 -08:00
bjorn 65418da1ec Use nodeMap to avoid node index lookup; 2017-11-20 21:19:46 -08:00
bjorn 652c31f8d4 Optional pose; 2017-11-20 21:16:16 -08:00
bjorn 659a2899e6 Allow partial uniform updates; 2017-11-20 21:13:06 -08:00
bjorn c1b95c2bd6 More multidimensional arrays; 2017-11-20 18:50:06 -08:00
bjorn 5edd616da8 Cleanup; 2017-11-20 18:42:29 -08:00
bjorn 803cdaa8a5 Early return for renderNode; 2017-11-20 18:19:39 -08:00
bjorn 17ffebd6ae Use computed global transforms instead of local; 2017-11-20 18:17:06 -08:00
bjorn 2f0aab03be Model:getAnimationCount; 2017-11-20 18:15:10 -08:00
bjorn 1a73fcb3cc Use pose instead of boneTransform; 2017-11-20 18:12:08 -08:00
bjorn 54259f816c Animation track priority; 2017-11-20 17:57:21 -08:00
bjorn b9b9a42a05 Everything works but is gross; 2017-11-19 16:45:00 -08:00
bjorn 49ab151b53 WIP; 2017-11-13 17:47:56 -08:00
bjorn 69b5569f9e Model computes bone transforms from Animator; 2017-11-06 20:25:08 -08:00
bjorn 33ff7f2b9c Add lovrAnimatorEvaluate; 2017-11-06 20:22:30 -08:00
bjorn c3749eb9bd Model:getAnimator; Model:setAnimator; 2017-11-05 13:41:47 -08:00
bjorn 03d3a9f77d Animator:getPriority; Animator:setPriority; 2017-11-04 15:55:33 -07:00
bjorn 5809a39a12 Animator:getAlpha; Animator:setAlpha; 2017-11-04 15:51:44 -07:00
bjorn c469d1ca19 Animator:isPlaying; Looping fixes; 2017-11-04 15:48:52 -07:00
bjorn 4f4d95ddec Animator:isLooping; Animator:setLooping; 2017-11-04 15:31:47 -07:00
bjorn 93c6597f09 Animator:reset; 2017-11-04 15:21:46 -07:00
bjorn 3cc02497f6 Animator:getAnimationNames; Animator:getDuration; 2017-11-04 15:11:42 -07:00
bjorn 34ddfbaed3 Animator:getSpeed; Animator:setSpeed; 2017-11-03 18:38:43 -07:00
bjorn 748c467b1c Animator:seek; Animator:tell; 2017-11-03 18:36:37 -07:00
bjorn 23b4750e9c Animator:play; Animator:stop; Animator:pause; Animator:resume; 2017-11-03 18:28:54 -07:00
bjorn 4249cb4cc6 Animator:update; 2017-11-03 18:27:02 -07:00
bjorn ff0d007afe Start Animator; 2017-11-02 23:47:25 -07:00
bjorn 051663eff6 Fix null dereference with setting mesh vertex maps; 2017-11-01 23:29:20 -07:00
bjorn 2c6cb28224 Use references when dealing with model materials; 2017-11-01 23:11:35 -07:00
bjorn 194382643b Add back Model:getAABB; 2017-11-01 19:27:58 -07:00
bjorn 60d25b2e11 Materials refcount their Textures properly; 2017-10-31 01:49:45 -07:00
bjorn cc019e5783 Improve Shader error messages; 2017-10-31 01:44:39 -07:00
bjorn 227dd67c00 Set default shader properly to avoid crash; 2017-10-31 01:33:16 -07:00
bjorn ecde864ec4 Use spooky BOOleans everywhere; 2017-10-31 01:14:09 -07:00
bjorn 1ebc527c74 Load vertex colors for models; 2017-10-23 19:24:29 -07:00
bjorn 8db7290ed3 Add vertex color attribute; 2017-10-23 19:24:29 -07:00
Bjorn Swenson 618be7b51d Merge pull request #24 from bcampbell/fake-headset
Fake headset
2017-10-23 11:24:03 -07:00
bjorn 00726fe89e Fix pointsize limit for WebGL; 2017-10-22 16:26:48 -07:00
bjorn cc651e7b4e Set point size in vertex shader for WebGL compatibility; 2017-10-22 16:14:53 -07:00
bjorn 076b378b80 Report correct line numbers for shader errors; 2017-10-22 15:39:21 -07:00
Ben Campbell 54a0077356 oops - re-enable icon setting
(I was using GLFW 3.1 and had to disable the icon-setting code)
2017-10-23 09:38:24 +13:00
Ben Campbell a22a9ed1f4 Merge branch 'master' into fake-headset 2017-10-23 09:32:32 +13:00
bjorn 51ceb2a199 Rename shape data to stream data; 2017-10-22 07:37:31 -07:00
bjorn 65c26e47f2 Remove some weird Mesh return codes; 2017-10-22 07:20:40 -07:00
bjorn 2c0d85a84a Use UNSIGNED_SHORT for indices when possible; 2017-10-22 07:04:52 -07:00
bjorn e8e09c425e Reset material in lovr.graphics.reset; 2017-10-22 04:11:39 -07:00
bjorn d5b3a2243e Rename internal canvas to view; 2017-10-22 03:34:45 -07:00
bjorn 5498a4e13e Fix fullscreen textures; 2017-10-22 03:23:58 -07:00
bjorn 9e9b0b7b94 Material support for Models; 2017-10-21 15:20:16 -07:00
bjorn dece1d896f Update skybox and font rendering; 2017-10-21 14:59:34 -07:00
bjorn 16915e4fa2 Material graphics state; 2017-10-21 14:32:41 -07:00
bjorn 3743b9d032 Add Material; 2017-10-21 14:00:33 -07:00
bjorn 4935816457 Remove texturing from primitives; 2017-10-21 13:54:50 -07:00
bjorn 54533351bb Generalize Shader to support more types of uniforms; 2017-10-21 13:39:50 -07:00
bjorn b82ed7fd56 Put shaders in their own file; 2017-10-21 13:21:30 -07:00
bjorn 32b05cb15d Support multiple texture slots; 2017-10-21 13:21:28 -07:00
bjorn a2860361e9 Consolidate Texture and Skybox; 2017-10-21 13:00:13 -07:00
bjorn e8f2166e00 Remove textures from Models and Meshes; 2017-10-21 12:34:58 -07:00
bjorn b124f7e7c2 Model:getMesh; 2017-10-15 10:26:33 -07:00
bjorn 0d3bc4cfaa Disable depth mask when drawing text; 2017-10-15 09:16:13 -07:00
bjorn f5e8535726 Use internal scene graph for models;
Allows for loading of more complicated models and multiple materials
for a single model.  Also fixes bugs with Mesh draw ranges.  Model:getAABB
is temporarily removed.
2017-10-14 18:01:00 -07:00
Ben Campbell 8f97384951 cheesy hack to module load order to get fake headset running 2017-10-12 23:04:18 +13:00
bjorn 27c914664c Clean up includes; 2017-09-19 23:49:10 -07:00
bjorn 6c3abad9f4 Fix crash in OpenVR mirror texture; 2017-09-18 00:39:47 -07:00
bjorn 6d85f512e3 Shoo tabs; 2017-09-17 17:38:22 -07:00
bjorn 9202b42d8d Try to enable antialiasing in WebVR; 2017-08-27 13:23:21 -07:00
bjorn d6aad1faba Fix RGB texture size; 2017-08-26 19:31:03 -07:00
bjorn 22a8152eb5 Fix normal matrix; 2017-08-26 18:36:30 -07:00
bjorn c6c29e3895 Fix strange font cast issue; 2017-08-26 17:15:53 -07:00
bjorn 773abf26ae Fix bug with mesh mapping; 2017-08-25 21:18:22 -07:00
bjorn 9fd4030f47 Tweak sphere coordinates; 2017-08-15 21:21:49 -07:00
bjorn e4a7c6bb47 Fix WebVR; 2017-08-15 01:05:18 -07:00
bjorn 3f875118a9 Fix shader issues; 2017-08-13 21:03:11 -07:00
bjornbytes 3c3076f8c4 Fix VR rendering; 2017-08-12 20:43:23 -07:00
bjorn 0311232ae1 Add lovrModel and lovrView matrices; 2017-08-10 22:23:19 -07:00
bjorn 74f585ca8d Use lovrAssert and lovrThrow for better errors; 2017-08-10 01:05:04 -07:00
bjorn 3cd245f2b0 Window customization via conf.lua; 2017-08-09 20:02:02 -07:00
bjorn 1d82277173 Fix mesh index buffer binding; 2017-08-09 01:31:25 -07:00
bjorn 3143c87197 Fix issues with framebuffers; 2017-08-09 01:09:19 -07:00
bjorn b94bc558fc Fix fullscreen quads; 2017-08-09 00:59:04 -07:00
bjorn 6c316c7587 Fix Shader bugs; 2017-08-09 00:56:13 -07:00
bjorn 9dd9678077 Fix default font bug; 2017-08-08 23:49:17 -07:00
bjorn 9f6f993903 Fix Mesh; 2017-08-08 22:58:11 -07:00
bjorn c76df39407 Organize lovrGraphicsReset; 2017-08-08 22:39:00 -07:00
bjorn 60867925e4 Move unused header includes; 2017-08-08 22:34:23 -07:00
bjorn d849f2429c Everything is probably broken; 2017-08-08 21:10:56 -07:00
bjorn 76f94e8ade Rename primitive data structures; 2017-08-08 18:57:41 -07:00
bjorn 88a32fd951 Simplify Skybox stuff; 2017-08-08 18:52:28 -07:00
bjorn 45618f819e Fix Skyboxes; 2017-08-08 18:24:29 -07:00
bjorn 58931f01e2 Allow lovr.graphics.setFont(nil); 2017-08-08 18:01:39 -07:00
bjorn abbe5e36d0 Canvas state is internal; 2017-08-08 02:20:55 -07:00
bjorn c89301c284 Texture is internal state; 2017-08-08 02:14:50 -07:00
bjorn fe570e19f1 Diff vao, vbo, and ibo; 2017-08-08 02:13:07 -07:00
bjorn dfd0926fab Diff framebuffer; 2017-08-08 02:05:30 -07:00
bjorn ef58eea4b8 Projection is transform state; 2017-08-08 01:37:23 -07:00
bjorn 6077cae95a Font state; 2017-08-08 01:36:29 -07:00
bjorn 80c9d7f4d8 Shader state; 2017-08-08 01:33:52 -07:00
bjorn 03c01cb97a Use access bits better when mapping Meshes; 2017-08-08 01:33:52 -07:00
bjorn 3da48027ce Use struct for shape state; 2017-08-08 01:33:52 -07:00
bjorn b65673bc3f Color object; 2017-08-08 01:33:52 -07:00
bjorn 9efa89768c Organize graphics state; 2017-08-08 01:33:52 -07:00