Skip to content

Releases: bjornbytes/lovr

Fluffy Cuttlefish

02 Dec 04:13
Compare
Choose a tag to compare

Add:

  • Add Material objects. Materials are sets of colors and textures that can be applied to Models and Meshes. Models automatically load referenced materials and textures.
  • Add Animator objects for skeletal animation playback.
  • Add fallback mouse/keyboard controls used when VR hardware is not present.
  • Add support for loading glTF models.
  • Add gamma correct rendering, lovr.graphics.isGammaCorrect, and the gammacorrect option to conf.lua.
  • Add lovr.math.gammaToLinear and lovr.math.linearToGamma.
  • Add lovr.graphics.circle.
  • Add lovr.graphics.arc.
  • Add lovr.math.orientationToDirection.
  • Add Transform:getMatrix and Transform:setMatrix.
  • Add support for vertex colors and add the built in lovrVertexColor vertex attribute to shaders.
  • Add Model:getMesh.
  • Add Mesh:drawInstanced and Model:drawInstanced.
  • Add lines and linestrip draw modes to Meshes.
  • Add Shader:hasUniform.
  • Add the ability to customize VR runtime preferences using the headset.drivers table in conf.lua.

Change:

  • Change Shader:send to accept more types of uniforms, including arrays.
  • Change lovr.graphics.newTexture to accept 6 arguments to create a cube map texture.
  • Change functions that deal with colors to use a floating point range of 0 - 1 instead of 0 - 255.

Fix:

  • Fix Controller:getHand, lovr.graphics.setPointSize, HRTF audio, and ZIP archive mounting for WebVR.
  • Fix a bug with World:raycast that occurred when the ray hit multiple things.
  • Fix loading and rendering of more complicated models with node hierarchies and multiple materials.
  • Fix a bug with text rendering that caused flickering.
  • Fix Shader error messages to include correct line numbers.
  • Fix crash on Windows that occurred when paths had non ASCII characters.

Remove:

  • Remove Model:setTexture, Model:getTexture, Mesh:setTexture, and Mesh:getTexture. They have been replaced by Model:setMaterial, Model:getMaterial, Mesh:setMaterial, and Mesh:getMaterial.
  • Remove Skybox object. It has been replaced with lovr.graphics.skybox.
  • Remove the ability to pass Textures as the optional first argument of drawing primitives (Materials can be passed instead).
  • Remove lovr.filesystem.exists. The lovr.filesystem.isFile and lovr.filesystem.isDirectory functions can be used instead.

Cyber Pigeon

27 Aug 22:53
Compare
Choose a tag to compare

Add:

  • Add support for Linux.
  • Add official support for Oculus Touch.
  • Add the lua-enet library for multiplayer networking.
  • Add signed distance field font rendering.
  • Add support for compressed textures (DXT1, DXT3, and DXT5).
  • Add texture mipmaps.
  • Add support for trilinear and anisotropic texture sampling.
  • Add anisotropy system limit returned by lovr.graphics.getSystemLimits.
  • Add lovr.graphics.getDefaultFilter and lovr.graphics.setDefaultFilter.
  • Add lovr.math.lookAt.
  • Add lovr.math.random, lovr.math.randomNormal, and RandomGenerator objects.
  • Add new controller buttons: unknown, trigger, a, b, x, and y.
  • Add the grip ControllerAxis.
  • Add Controller:getHand and ControllerHand.
  • Add Controller:isTouched.
  • Add HeadsetOrigin, lovr.headset.getOriginType, and headset.offset option to conf.lua.
  • Add HeadsetType.
  • Add lovr.graphics.createWindow and window options to conf.lua.
  • Add lovrModel and lovrView uniform matrices for shaders.
  • Add MatrixType and allow transform stack functions to manipulate either the model or the view matrix.

Change:

  • Change emscripten build to compile to WebAssembly by default.
  • Change lovr.graphics.plane to take an angle/axis orientation instead of a normal vector.
  • Change FilterMode. The new values are nearest, bilinear, trilinear, and anisotropic.
  • Change the default depth test from less to lequal.
  • Change lovr.graphics.translate, lovr.graphics.rotate, lovr.graphics.scale, and lovr.graphics.transform to accept an optional MatrixType as the first parameter to control whether the model matrix or the view matrix is affected.
  • Change the version of OpenVR to 1.0.9.

Fix:

  • Fix bug where using custom fonts could cause a crash.
  • Fix crash when the graphics module was disabled.
  • Fix lovr.graphics.setFont when specifying a Font of nil.
  • Fix fullscreen framebuffer texture coordinates.
  • Fix the error screen to use a more readable font size.
  • Fix lovr.headset.getType to return correct values.
  • Fix the error reporting mechanism to capture many more kinds of errors and show the error screen for them instead of printing the message to the console and closing the window.
  • Fix several graphics performance issues.
  • Fix the normal matrix passed to shaders.
  • Fix issues with nonuniform scaling transformations.

Remove:

  • Remove lovr.graphics.getScissor and lovr.graphics.setScissor.
  • Remove lovr.graphics.getColorMask and lovr.graphics.setColorMask.
  • Remove undocumented Texture:bind function.

0.7.1

24 Jun 03:08
Compare
Choose a tag to compare

Add:

  • Add lovr.graphics.cylinder.
  • Add lovr.graphics.sphere.
  • Add lovr.graphics.box.
  • Add Model:getAABB.
  • Add lovrNormalMatrix uniform to shaders.

Change:

  • Change the minimum required OpenGL version from 2.1 to 3.3.
  • Change the minimum required OpenGL ES version from 2.0 to 3.0.
  • Change the minimum required WebGL version from 1.0 to 2.0.
  • Change lovr.math.newTransform, Transform:setTransformation, and lovr.graphics.transform to accept 3 scale parameters instead of 1.

Fix:

  • Fix Mesh:getVertexMap indices.
  • Fix bug where Meshes wouldn't unmap sometimes.
  • Fix Collider:getAABB.
  • Fix Collider:applyTorque.

Remove:

  • Remove lovr.audio.getDopplerEffect and lovr.audio.setDopplerEffect.

Pesto Junkie

12 Jun 00:10
Compare
Choose a tag to compare

Add:

  • Add lovr.physics module (YES!)
  • Add lovr.timer.getAverageDelta

Change:

  • Change the window to no longer be resizable.
  • Change the window to have an improved title.
  • Improve error messages in several places.

Fix:

  • Fix unintended interactions between window mirroring and shaders.
  • Fix memory leak in require.
  • Fix lack of clean up when using Mesh vertex maps.
  • Fix occasional crash when transform stack overflows.
  • Fix WebVR rendering bug when drawing controllers.

Unstoppable Okapi

07 May 06:31
Compare
Choose a tag to compare

Add:

  • Add support for JSON encoding and decoding using lua-cjson.

Change:

  • Add support for additional OpenGL versions including OpenGL ES.
  • Add support for running in a web browser with WebVR.

Fix:

  • Fix potential crash when loading equirectangular skyboxes.
  • Fix crash on windows if the save directory does not exist.

Remove:

  • Remove headset bounds visibility functions.

Psychotic Octopus

05 Apr 04:05
Compare
Choose a tag to compare

Add:

  • Add a no game screen.
  • Add an error screen.
  • Add lovr.controllerpressed and lovr.controllerreleased callbacks.
  • Add lovr.focus callback.
  • Add support for creating skyboxes from a single equirectangular image.
  • Add lovr --version command line flag.
  • Add lovr.getOS.
  • Add Source:getFalloff and Source:setFalloff.
  • Add Source:getVolumeLimits and Source:setVolumeLimits.
  • Add Source:getCone and Source:setCone.
  • Add Source:isRelative and Source:setRelative.
  • Add Source:getVelocity and Source:setVelocity.
  • Add lovr.audio.getVelocity and lovr.audio.setVelocity (called automatically in lovr.run).
  • Add lovr.audio.getDopplerEffect and lovr.audio.setDopplerEffect.
  • Add lovr.audio.isSpatialized.
  • Add lovr.filesystem.load.
  • Add lovr.filesystem.createDirectory.
  • Add lovr.filesystem.getAppdataDirectory.
  • Add lovr.filesystem.getDirectoryItems.
  • Add lovr.filesystem.getLastModified.
  • Add lovr.filesystem.getSaveDirectory.
  • Add lovr.filesystem.getSize.
  • Add lovr.filesystem.isFused.
  • Add lovr.filesystem.newBlob.
  • Add lovr.filesystem.remove.
  • Add lovr.filesystem.mount and lovr.filesystem.unmount.
  • Add Mesh:isAttributeEnabled and Mesh:setAttributeEnabled.
  • Add lovr.headset.isMirrored and lovr.headset.setMirrored. The initial value can be set in conf.lua (t.headset.mirrored).
  • Add parameters to lovr.graphics.print for aligning text horizontally and vertically.
  • Add Font:getPixelDensity and Font:setPixelDensity for controlling scales of fonts independent of units.
  • Add Font:getWidth, Font:getHeight, Font:getAscent, Font:getDescent, and Font:getBaseline.
  • Add lovr.graphics.getBlendMode and lovr.graphics.setBlendMode.
  • Add lovr.graphics.getSystemLimits for returning the maximum point size, the maximum texture size, and the maximum supported msaa level for render textures.

Change:

  • Rename Buffer to Mesh.
  • lovr.graphics.scale accepts a single argument that will scale all 3 axes.
  • lovr.graphics.rotate defaults to rotating around the y axis.
  • Allow sending Transforms to mat4 uniforms in shaders.
  • Framebuffers now clear their depth buffer when created.
  • Rename Source:getOrientation and Source:setOrientation to Source:getDirection and Source:setDirection.
  • Allow lovr.headset.getEyePosition to accept nil as a parameter.
  • Change the signature of lovr.graphics.print.
  • Change functions that created resources from files to accept Blobs.

Fix:

  • Fix coordinate system not resetting when calling lovr.graphics.reset.
  • Explicitly error when attempting to position a stereo Source.
  • Fix a few edge cases in reference counting that resulted in crashes.
  • Fix a crash if the error handler caused an error.

Remove:

  • Remove Source:getOrientation and Source:setOrientation (renamed to getDirection and setDirection).
  • Remove support for several 3D model file formats to reduce executable size. The supported formats are now OBJ, FBX, and COLLADA.
  • Remove support for several physfs archive formats to reduce executable size. The only supported format is now ZIP files.
  • Remove lovr.graphics.setProjection.

Cosmic Panda

17 Feb 09:07
Compare
Choose a tag to compare
  • Add lovr.math module and Transform objects.
  • Add lovr.graphics.transform.
  • Change lovr.graphics.cube, Model:draw, and Buffer:draw to accept a Transform.
  • Change lovr.graphics.newModel to accept a Texture to apply to the model as the second argument.
  • Add support for font rendering.
  • Fix memory allocation issue in lovr.event.poll.
  • Add Buffer:getVertexFormat.
  • Add lovr.headset.getEyePosition(eye).
  • Fix crash when SteamVR is unavailable.
  • Fix Skybox rendering when culling is enabled.

Electric Moose

15 Jan 22:36
Compare
Choose a tag to compare
  • Upgrade to OpenVR 1.0.5.
  • Add support for framebuffers using Texture:renderTo.
  • Add functions for drawing textured primitives by passing a Texture instead of a DrawMode to lovr.graphics.cube and lovr.graphics.plane.
  • Add shorthand for drawing fullscreen quads with lovr.graphics.plane(texture).
  • Mirror the headset display to the window on the desktop.

Molten Kitten

07 Jan 04:11
Compare
Choose a tag to compare
  • Add lovr.audio module.
  • Add support for array uniforms in Shaders.
  • Fix lovr.headset.getOrientation and Controller:getOrientation

Purple Bear

07 Jan 04:12
Compare
Choose a tag to compare
  • Add lovr.event module.
  • Add lovr.filesystem module.
  • Add lovr.graphics module.
  • Add lovr.headset module.
  • Add lovr.timer module.