Commit Graph

439 Commits

Author SHA1 Message Date
bjorn 12700f9785 Fix font shader in WebGL; 2017-07-22 16:57:09 -07:00
bjorn abaecb7f60 Font fixes; 2017-07-18 21:48:08 -07:00
bjorn d8047cdeff rm FORMAT_LUMINANCE_ALPHA; 2017-07-19 07:00:11 +09:00
bjorn c750b64b1b Cleanup; 2017-07-19 07:00:11 +09:00
bjorn 8ad3e64a2d Font shader; 2017-07-19 07:00:11 +09:00
bjorn 93c286afb6 Glyph padding; 2017-07-19 07:00:11 +09:00
bjorn 800d07a0de Use msdfgen; 2017-07-19 07:00:11 +09:00
bjorn 41210b1bd0 lovr.graphics.plane takes regular transform; 2017-07-19 05:07:18 +09:00
bjorn b2feefe98a Fix Model:getAABB more; 2017-06-25 04:16:47 -07:00
bjorn 7843e24028 Fix Model:getAABB; 2017-06-25 01:30:19 -07:00
bjorn e5a311af09 Add glad for windows; 2017-06-23 19:35:49 -07:00
bjorn 83118a5012 lovr.graphics.sphere; 2017-06-21 23:10:45 -07:00
bjorn dd1db4c86f lovr.graphics.box; Better non-uniform scale; 2017-06-21 19:42:34 -07:00
bjorn a13c793769 Model:getAABB; 2017-06-21 18:53:11 -07:00
bjorn 3744706ade Fix zero scale; 2017-06-20 22:56:11 -07:00
bjorn dfd6c91dec lovr.graphics.cylinder; 2017-06-20 20:54:22 -07:00
bjorn ca95fa0df0 Handle texture formats better; 2017-06-18 17:28:15 -07:00
bjorn 52b203240d Fix mapped buffers for WebGL 2; 2017-06-18 16:19:26 -07:00
bjorn 8beac66db0 OpenGL ES3; Remove glad;
Stop using OpenGL extensions and drop support for OpenGL ES2,
WebGL 1, and OpenGL 2.  Remove glad.
2017-06-18 15:55:01 -07:00
bjornbytes 5f3ce18fcd Fix mesh mapping; 2017-06-13 22:59:27 -07:00
bjornbytes 9f097e64e2 Add lovrNormalMatrix; 2017-06-13 20:04:51 -07:00
bjorn b84ef967e6 Fix integer attribute test; 2017-06-11 16:48:46 -07:00
bjorn 613b1ea67f Refactor GL extension code; 2017-06-10 16:25:46 -07:00
bjorn 265a81c411 Add window title; Improve initial error handling; 2017-06-10 15:34:35 -07:00
bjorn 24a980446a Add extra room to transform stack;
Currently the transform stack doesn't take into account the fact that internal functions use
transforms.  Performing error checking for the transform stack in the internal functions is kind of
difficult (right now we just segfault), so it's easier to just reserve a few of the transforms for
internal use.
2017-06-10 14:44:04 -07:00
bjorn 616e4b9488 Clean up Mesh IBO properly; 2017-06-10 14:06:55 -07:00
bjorn 10ddc06c13 No resizable window; 2017-06-01 23:52:37 -07:00
bjorn ef89de2b5f Cleanup; 2017-05-17 13:10:37 -06:00
bjorn 08a5259aec Minor lovr.graphics.clear optimization; 2017-05-16 23:43:47 -06:00
bjorn a2400e9876 WebVR fixes; 2017-04-29 13:33:59 -07:00
bjorn 520227aa87 Fix meshes; 2017-04-22 10:34:44 -07:00
bjorn 6acebc221e Fix mesh attributes; 2017-04-22 00:12:32 -07:00
bjorn 4537e17894 Fix typo; 2017-04-20 21:20:43 -07:00
bjorn 0f1acae42a WIP; 2017-04-16 16:56:49 -07:00
bjorn 9eb4d7b393 Move all window code into graphics module; 2017-04-12 19:48:47 -07:00
bjorn 25e6f3ce4e Fix Mesh unmapping; 2017-04-09 13:40:20 -07:00
bjorn 7f687f9732 No game screen; 2017-04-02 05:55:21 -07:00
bjorn 3977db7249 Don't mess with depth test when rendering fonts; 2017-04-01 15:33:32 -07:00
bjorn a04e5013ad lovr.graphics.getSystemLimits; 2017-03-31 04:22:18 -07:00
bjorn 9d89ea5634 Allow custom fullscreen shaders; 2017-03-30 18:56:51 -07:00
bjorn fbc9805ab1 Allow custom skybox shaders; 2017-03-30 18:54:39 -07:00
bjorn 847a01b76f Fix skyboxes; 2017-03-30 18:48:03 -07:00
bjorn 6cc5a036e8 Fix Font:getWidth; 2017-03-25 18:41:25 -07:00
bjorn 7077d89a22 Font metrics; 2017-03-16 01:12:32 -07:00
bjorn 0b57b48702 Font pixel densities; 2017-03-15 20:51:16 -07:00
bjorn 390220f945 Font alignment; 2017-03-15 20:46:01 -07:00
bjorn 22526552dc Use correct texture for fonts; 2017-03-14 02:32:01 -07:00
bjorn 37c2a11172 Fix panorama Skyboxes I promise; 2017-03-12 17:31:06 -07:00
bjorn 5bd364f65f Fix skybox math; 2017-03-12 17:13:50 -07:00
bjorn a4257378f0 Panorama Skybox fixes; 2017-03-12 16:57:27 -07:00
bjorn 4feeb4d4ab Equirectangular Skybox rough draft; 2017-03-12 16:45:50 -07:00
bjorn 062086991e Blend modes; 2017-03-12 04:03:36 -07:00
bjorn c6b635a2ec rm lovr.graphics.setProjection; 2017-03-11 21:19:26 -08:00
bjorn 94a5dab7b5 Meshes use mapped buffers; 2017-03-11 17:27:18 -08:00
bjorn d1a8a5b156 Make Mesh attribute binding more intelligent; 2017-03-11 15:15:00 -08:00
bjorn 7648bffda7 Mesh:isAttributeEnabled; Mesh:setAttributeEnabled; 2017-03-11 14:47:13 -08:00
bjorn faad61614f Change Mesh isRangeEnabled to int; 2017-03-11 14:30:39 -08:00
bjorn 1abbdc5779 Missed some instances of buffer; 2017-03-11 14:28:44 -08:00
bjorn a2e1fd8972 Rename Buffer to Mesh; 2017-03-11 14:13:49 -08:00
bjorn b84f72f17e Rename vendor to lib; 2017-03-11 02:19:33 -08:00
bjorn 4df4069915 Add more filesystem functionality; 2017-03-11 01:37:00 -08:00
bjorn 8571783b4f Refactor loaders; 2017-02-19 01:54:58 -08:00
bjorn 1400e35fb2 Clear Framebuffer contents on init; 2017-02-18 15:31:16 -08:00
bjorn f46339c336 Reset coordinate system on lovr.graphics.reset; 2017-02-18 15:29:32 -08:00
bjorn cce3445f9b Fix memory management; 2017-02-18 14:44:52 -08:00
bjorn aa470d6fab Fix vive rendering; 2017-02-17 00:48:43 -08:00
bjorn a40fb02550 Remove metrics for now; 2017-02-16 18:08:48 -08:00
bjorn 2cbb381c5b Max width parameter; 2017-02-16 16:54:02 -08:00
bjorn ce89900dcc Improve newFont API; 2017-02-16 16:41:46 -08:00
bjorn 078d5290c0 Move default font into loaders; 2017-02-16 16:41:29 -08:00
bjorn ebb40867e0 lovr.graphics.print geometry; 2017-02-16 16:23:52 -08:00
bjorn 1b2527db18 Center lines by default; 2017-02-16 15:42:33 -08:00
bjorn 12bdaca72b Font stability; Font line height; 2017-02-12 03:14:10 -08:00
bjorn ff5a114e65 Font transforms; Font refcounting; 2017-02-10 03:24:13 -08:00
bjorn 54df1f2ff8 Font:getBaseline; 2017-02-09 21:06:08 -08:00
bjorn a8b338b6e1 Font:getWidth; 2017-02-09 21:06:08 -08:00
bjorn aefe788fa2 Use LEQUAL depth test when drawing text; 2017-02-09 21:06:07 -08:00
bjorn 7c1cedf809 Improve initial font texture size; 2017-02-09 21:06:07 -08:00
bjorn 530c80c63c Kerning; 2017-02-09 21:06:07 -08:00
bjorn 458aa43700 Default font; 2017-02-09 21:06:07 -08:00
bjorn 73d8b8aa3e Unicode; 2017-02-09 21:06:07 -08:00
bjorn db2ed2d0a5 Global font metrics; 2017-02-09 21:06:07 -08:00
bjorn f80e3e5a13 More font rendering; 2017-02-09 21:06:07 -08:00
bjorn 02386af34f Less terrible font rendering; 2017-02-09 21:06:07 -08:00
bjorn ab2d0ee79a Really terrible font rendering; 2017-02-09 21:06:07 -08:00
bjorn 853e9d89d7 Fonts; 2017-02-09 21:06:07 -08:00
bjorn 4a3f284881 Buffer:draw accepts transform arguments; 2017-01-29 19:12:25 -08:00
bjorn 721102456a Disable culling while drawing skyboxes; 2017-01-28 23:19:28 -08:00
bjorn e80f390151 Try #pragma once; 2017-01-26 02:21:56 -08:00
bjorn 492a75acba Properly destroy modules on exit; 2017-01-21 18:18:12 -08:00
bjorn 4303846eac Clean up includes; 2017-01-21 18:00:32 -08:00
bjorn 14dfeb688f Get rid of loadImage; 2017-01-21 17:29:20 -08:00
bjorn 666a3a23d7 Remove assimp includes from lovrGraphics; 2017-01-21 17:12:08 -08:00
bjorn 9e0d8801b6 mat4_setTransform; 2017-01-20 20:43:00 -08:00
bjorn 1f4ecad44b Shuffle things around; 2017-01-20 20:16:59 -08:00
bjorn 8a3d52b3c6 Cleanup ugh; 2017-01-20 19:55:54 -08:00
bjorn 5e2cfcc9bd graphics.cube and Model:draw accept Transform; 2017-01-20 18:39:49 -08:00
bjorn a118a6bff5 Cleanup; 2017-01-20 18:39:49 -08:00
bjorn 3dbafc8214 Cleanup; 2017-01-20 18:39:48 -08:00
bjorn e8e2a99e5b Finish internal math library; 2017-01-20 18:39:46 -08:00
bjorn 38768afda1 Sort out texture coordinates;
I hope
2017-01-15 13:49:46 -08:00
bjorn 59d1bb5ee9 MSAA Textures; Help; 2017-01-14 17:38:25 -08:00
bjorn 392962eb2b Remove unused lovrGraphicsSetShapeData; 2017-01-13 02:01:56 -08:00
bjorn a8b7af311e Improve graphics primitives; 2017-01-13 01:59:00 -08:00
bjorn af3957d3c3 Perspective projection textures; 2017-01-12 01:26:44 -08:00
bjorn 09fdb72d5c Start texture projections; 2017-01-11 23:38:28 -08:00
bjorn eba3996984 Improve CanvasState; 2017-01-11 20:26:08 -08:00
bjorn 9f43f84577 Fix Texture dimensions; 2017-01-11 18:45:01 -08:00
bjorn b05e2630dd CanvasState; 2017-01-11 09:25:43 -08:00
bjorn 1ad0ac557b Basic framebuffers; 2017-01-08 22:51:43 -08:00
bjorn 2a8d40abd6 Deprecate Buffer Textures; 2017-01-08 21:29:16 -08:00
bjorn 724e0dd6eb Shader arrays; 2016-12-30 11:57:15 -08:00
bjorn 83fb958ac0 Simplify rotations; 2016-12-01 17:32:58 -08:00
bjorn b7d1b1e5dc Style; 2016-11-30 20:32:14 -08:00
bjorn 40eeeabcff Optimize matrix stack; 2016-11-27 10:57:36 -08:00
bjorn cf6c862aaa TextureType; 2016-11-27 10:34:22 -08:00
bjorn d44cbfa5e7 Clean up textures; 2016-11-27 02:06:47 -08:00
bjorn 9b0712bb66 Add default texture; 2016-11-26 18:58:58 -08:00
bjorn 006221b7fd TextureData; 2016-11-25 23:54:45 -08:00
bjorn 3d18eb99e6 Refactor model loader; 2016-11-25 23:15:04 -08:00
bjorn 316893d132 Start loaders directory; 2016-11-25 17:13:26 -08:00
bjorn 9602a3af2f ModelFace always has 3 indices; 2016-11-25 03:16:11 -08:00
bjorn 83af2cacd7 Fix Model texture binding; 2016-11-25 03:15:13 -08:00
bjorn 7ce7c589bb Fix naming error in buffer format; 2016-11-25 03:14:48 -08:00
bjorn 172ecbbd56 Refactor Model constructor; 2016-11-25 00:49:19 -08:00
bjorn 9f4a441bf1 Allow disabling of depth test; 2016-11-24 15:45:59 -08:00
bjorn 08d63ca19c Model texture rendering; 2016-11-23 00:02:19 -08:00
bjorn cbcaef4e77 Standardize shader uniforms;
All built in uniforms are prefixed with "lovr".
Added helper functions "position" and "color" to improve general use case.
This is a breaking change.
2016-11-22 22:17:49 -08:00
bjorn a5fd7962f4 Organize lovr.graphics; 2016-11-22 21:16:13 -08:00
bjorn f18ee761cd lovr.graphics.setWireframe; 2016-11-22 21:07:33 -08:00
bjorn 15174b8299 lovr.graphics.setDepthTest; 2016-11-22 20:59:11 -08:00
bjorn 3d89338fec lovr.graphics.triangle; 2016-11-22 20:43:22 -08:00
bjorn 87a49b1903 size->count; 2016-11-20 15:53:36 -08:00
bjorn 0eea694bdd Small reference count fixes; 2016-11-19 18:26:10 -08:00
bjorn d014daaa53 Fix texture reference counting; 2016-11-19 14:21:17 -08:00
bjorn 00656b928e Buffer texture reference counting; 2016-11-19 14:14:42 -08:00
bjorn c41204f876 Shader reference counting; 2016-11-19 14:06:41 -08:00
bjorn a743cfd3b6 Initial reference counting system; 2016-11-19 13:33:40 -08:00
bjorn 7e4e9a6108 Clean up includes; 2016-11-19 01:28:01 -08:00
bjorn 3813e0b9ce Increase max shader length; 2016-11-18 02:08:49 -08:00
bjorn 67b55ac7f6 Fix Shader memory leaks; 2016-11-18 02:08:36 -08:00
bjorn 3c2fc33f1c Fix Model memory leaks; 2016-11-18 02:03:50 -08:00
bjorn 0ec31f3625 Texture:refresh; 2016-11-17 23:12:30 -08:00
bjorn 027c0db032 Fix BUFFER_INT access in shaders; 2016-11-17 23:11:58 -08:00
bjorn 7b81618198 BUFFER_INT; 2016-11-14 21:31:17 -08:00
bjorn 69ecfc550e Optimize switching Buffer vertex maps a lot; 2016-11-14 15:56:05 -08:00
bjorn 954592d8bd Refactor graphics state, especially shaders;
This should improve performance, if not then I have failed.
2016-11-14 15:48:17 -08:00
bjorn 06c71ed07c Allow loading shaders from files;
The first argument is always the vertex shader.
The second argument is always the fragment shader.
2016-11-14 14:42:40 -08:00
bjorn 21aba100a1 Refactor lovr.graphics.getDimensions and friends; 2016-11-14 13:47:15 -08:00
bjorn acde08228c Bind texture after setting buffer;
The `buffer` field was not being initialized to 0, so sometimes
the texture was binding to the wrong target.
2016-11-14 01:00:06 -08:00
bjorn daa942d932 Support BufferTextures; 2016-11-13 17:28:22 -08:00
bjorn 11f35763b7 Fix Buffer attribute indices; 2016-11-13 02:35:26 -08:00
bjorn c0db50b6ae Buffer:setVertices; 2016-11-12 23:18:53 -08:00
bjorn 11d96f1826 lovr.graphics.setPointSize; 2016-11-12 17:38:49 -08:00
bjorn ffde873299 Oh no; 2016-11-12 15:20:04 -08:00
bjorn 811bf67071 Windows fixes; 2016-11-12 01:19:47 -08:00
bjorn 7550da44d8 Model textures; 2016-11-08 14:55:16 -08:00
bjorn 8267733a42 Texture filters; 2016-11-08 14:55:16 -08:00
bjorn b69a7be1ba Better malloc error handling; 2016-11-08 14:55:07 -08:00
bjorn 17601e237b Buffer:getTexture; Buffer:setTexture; 2016-11-08 03:14:50 -08:00
bjorn 136d6b1da7 Texture; lovr.graphics.newTexture; 2016-11-08 03:14:33 -08:00
bjorn a22b158b0c Fix Buffer bug; 2016-11-08 03:13:32 -08:00
bjorn 49761a789a Add loadImage to util; 2016-11-08 01:42:31 -08:00
bjorn 48ff1fa93c lovr.graphics.points; 2016-11-07 23:16:33 -08:00
bjorn 91f46929fe Normalize rotation axis vectors; 2016-11-07 22:03:13 -08:00
bjorn fff1638414 Fix Skybox paths; 2016-11-05 16:17:29 -07:00
bjorn 5188e5d830 Fix Model paths; 2016-11-05 16:17:29 -07:00
bjorn 38c46106da Model normals; 2016-11-01 21:52:32 -07:00
bjorn 45d4029f6a Math is hard; 2016-11-01 21:52:19 -07:00
bjorn 93c13c8593 Model.draw transform; 2016-11-01 20:56:29 -07:00
bjorn 94a9c0e8cb lovrGraphicsTransform; 2016-11-01 20:48:04 -07:00
bjorn 7c5a9585fd Clean up Model better; 2016-10-31 17:35:43 -07:00
bjorn fb6c1c28ed Model; 2016-10-31 13:54:32 -07:00
bjorn 703b0c2af0 Skybox; 2016-10-24 15:02:23 -07:00
bjorn 125e2d0e13 Skybox rough draft; 2016-10-23 19:03:10 -07:00
bjorn 406eab420c lovrGraphicsSetShapeData; 2016-10-23 19:01:27 -07:00
bjorn 4afc3841d8 Fix lovrGraphicsPrepare; 2016-10-23 19:01:00 -07:00
bjorn 79397fc0e6 Fix shader uniforms; 2016-10-18 15:29:26 -07:00
bjorn 53409920c6 Skybox texture parameters; 2016-10-16 21:21:26 -07:00
bjorn 15f69d1d8a Start Skybox; 2016-10-15 20:11:54 -07:00
bjorn 7cd168aa46 Custom Buffer vertex attribute formats; 2016-10-09 17:40:02 -07:00
bjorn d35287499f Use constants for shader attributes; 2016-10-07 18:30:37 -07:00
bjorn aa5e9943ef Use explicit generic attribute indices; 2016-10-07 18:28:09 -07:00
bjorn a6df0c58c7 Rework shape internals; 2016-10-06 23:34:35 -07:00
bjorn 78f0c2d947 Clean up, clean up;
Everybody everywhere!
2016-10-04 15:13:57 -07:00
bjorn 3aa079b531 Start Model; Reorganize constructors; 2016-10-03 21:54:27 -07:00
bjorn 8ac95f4038 lovr.graphics.plane; 2016-10-03 20:56:45 -07:00
bjorn 5ef7a6a588 Graphics culling; 2016-10-03 12:02:49 -07:00
bjorn 2e48c00876 ColorMask is char; 2016-10-03 11:41:31 -07:00
bjorn c93630dd4c Fix default color; 2016-10-03 11:39:23 -07:00
bjorn 809c71d5b4 lovr.graphics.setLineWidth; 2016-10-01 13:48:31 -07:00
bjorn 9ece6c6c2c Cube rotation;
Angle-axis
2016-10-01 13:39:38 -07:00
bjorn 36cd7887f7 Filled cube basically work; 2016-10-01 12:53:15 -07:00
bjorn 82916b373b Set up draw modes; 2016-10-01 12:10:38 -07:00
bjorn 1e1acfbbd9 Fix cube rendering; 2016-09-29 23:54:31 -07:00
bjorn 5f884710e6 lovr.graphics.cube test; 2016-09-29 23:18:51 -07:00
bjorn d4f20c8379 lovr.graphics.line; 2016-09-29 19:39:25 -07:00
bjorn 8ab7c06612 Improve Vive rendering; 2016-09-29 00:21:38 -07:00
bjorn 93f007f329 Shape infrastructure; 2016-09-29 00:00:02 -07:00
bjorn 4679696288 lovr.graphics.getDimensions and friends; 2016-09-28 22:10:03 -07:00
bjorn 44b19b4e37 Use framebuffer size for scissor; 2016-09-28 22:09:57 -07:00
bjorn 7c707d9d6e Scissor; 2016-09-28 21:47:36 -07:00
bjorn e188c0beca lovr.graphics.setColor; 2016-09-28 20:11:58 -07:00
bjorn a24bdcf98a Use unsigned chars for color mask; 2016-09-28 19:38:58 -07:00
bjorn ccd0b5374e Move default shader code into shader; 2016-09-28 19:34:48 -07:00
bjorn ab14cf5d31 Rename clearColor to backgroundColor; 2016-09-27 21:37:46 -07:00
bjorn d9977a6b99 lovr.graphics.setColorMask; 2016-09-27 21:32:57 -07:00
bjorn 0d7d57acea Remove getProjection from now; 2016-09-27 20:49:31 -07:00
bjorn ad0e014c5a lovr.graphics.reset; 2016-09-27 20:20:08 -07:00
bjorn e4ecf2452f Switch to start and count for Buffer draw range; 2016-09-27 20:08:54 -07:00
bjorn 41db7ea9de Fix int->pointer conversion I think; 2016-09-27 20:05:55 -07:00
bjorn bb6a5979f5 Remove comment; 2016-09-27 19:58:54 -07:00
bjorn 64361660b9 Default shader; 2016-09-27 19:56:36 -07:00
bjorn dba017c8df Fix windows; 2016-09-27 00:24:28 -07:00
bjorn 435d7a9cf8 Projection matrices; 2016-09-26 23:48:09 -07:00
bjorn 4d4d2c34ff Fix windows; 2016-09-24 22:39:36 -07:00
bjorn 6220cf73f4 rm minor redundant assignment; 2016-09-23 22:13:43 -07:00
bjorn 8a545a0575 lovr.graphics.setProjection; 2016-09-23 22:11:56 -07:00
bjorn 1f0f586952 lovr.graphics.prepare; 2016-09-23 20:58:56 -07:00
bjorn 9f254fc783 More graphics transform functions;
lovr.graphics.translate
lovr.graphics.rotate
lovr.graphics.scale
2016-09-22 21:53:17 -07:00
bjorn 0786b67f0b lovr.graphics.origin; 2016-09-21 15:26:05 -07:00
bjorn 4ae08b771f Make graphicsState static again; 2016-09-21 00:58:31 -07:00
bjorn 579a3f9b72 Start matrix stack operations; 2016-09-21 00:55:53 -07:00
bjorn af3282a261 Fix buffer header; 2016-09-19 23:42:21 -07:00
bjorn 32d7562d8e Buffer vertex maps; 2016-09-17 17:52:52 -07:00
bjorn d3ba10a129 Buffer:getVertexCount; 2016-09-17 16:29:39 -07:00
bjorn e6d2fa4afc Improved Buffer constructor; Buffer usage hint; 2016-09-17 15:38:13 -07:00
bjorn 020a4207bb Improve lovr.graphics.clear; 2016-09-16 20:11:11 -07:00
bjorn 98994d52fb Basic VR rendering; 2016-09-13 17:02:23 -07:00
bjorn 34b6ab4f34 Shader fix; 2016-09-05 14:06:52 -07:00
bjorn 6b0f97e7f5 Sending things to shaders basically works; 2016-08-28 13:37:10 -07:00
bjorn f396e62eba Buffer newline; 2016-08-09 23:32:31 -07:00
bjorn 90147ca7bf Separate Lua API; 2016-08-09 23:28:17 -07:00
bjorn 2185922d38 Buffer draw range; 2016-08-08 18:27:35 -07:00
bjorn 207de93301 Buffer draw modes; 2016-08-08 14:40:18 -07:00
bjorn bbc2a32937 Support lovr /path/to/game; 2016-08-08 13:51:22 -07:00
bjorn beacc9d287 Improve memory management; 2016-08-08 13:23:40 -07:00
bjorn c07ea1cb2e Formatting; 2016-08-08 03:43:51 -07:00
bjorn 462b2d5f50 Refactor; 2016-08-07 18:32:37 -07:00