bjorn 1 year ago
parent
commit
49fac5dabf
2 changed files with 4 additions and 4 deletions
  1. 1 1
      api/init.lua
  2. 3 3
      api/lovr/graphics/Shader/getBufferFormat.lua

+ 1 - 1
api/init.lua

@@ -21105,7 +21105,7 @@ return {
                   code = "shader = lovr.graphics.newShader([[\n  layout(set = 2, binding = 0) uniform Transforms {\n    mat4 transforms[32];\n  };\n\n  vec4 lovrmain() {\n    return Projection * View * transforms[InstanceIndex] * VertexPosition;\n  }\n]], 'unlit')\n\nlocal format, length = shader:getBufferFormat('Transforms')\nprint(length) --> 32\nprint(format[1].name) --> 'transforms'\nprint(format[1].type) --> 'mat4'\n\n-- Can pass the 2 results directly to newBuffer:\ntransforms = lovr.graphics.newBuffer(shader:getBufferFormat('Transforms'))\n\n-- Or override the length with some initial data:\ntransforms = lovr.graphics.newBuffer(shader:getBufferFormat('Transforms'), objects)"
                 }
               },
-              notes = "If the buffer only has a single array field, the format will be \"unwrapped\" to an array instead of a single-field struct with an array in it.  Example:\n\n    shader = lovr.graphics.newShader([[\n      layout(set = 0, binding = 0) buffer Numbers {\n        uint numbers[64];\n      };\n\n      void lovrmain(){}\n    ]])\n\n    shader:getBufferFormat('Numbers')\n    -- returns {{ name = 'numbers', type = 'u32' }}, 64\n    -- not     {{ name = 'numbers', type = 'u32', length = 64 }}, 1\n\nSimilarly, if the buffer only has a single struct field, the format will be \"unwrapped\" to the inner struct.  This lets you use a struct for a Buffer's data without having to wrap everything in an extra namespace.  Example:\n\n    shader = lovr.graphics.newShader([[\n      struct HandParams {\n        vec3 position;\n        float trigger;\n      };\n\n      layout(set = 0, binding = 0) buffer Hand {\n        HandParams params;\n      };\n\n      void lovrmain(){}\n    ]])\n\n    shader:getBufferFormat('Hand')\n    -- returns {{ name = 'position', type = 'vec3' }, { name = 'trigger', type = 'float' }}, 1\n    -- not     {{ name = 'params', type = {...}}}, 1",
+              notes = "If the buffer only has a single array field, the format will be \"unwrapped\" to an array instead of a single-field struct with an array in it.  Example:\n\n    shader = lovr.graphics.newShader([[\n      layout(set = 0, binding = 0) buffer Numbers {\n        uint numbers[64];\n      };\n\n      void lovrmain(){}\n    ]])\n\n    shader:getBufferFormat('Numbers')\n    -- returns {{ name = 'numbers', type = 'u32' }}, 64\n    -- not     {{ name = 'numbers', type = 'u32', length = 64 }}, 1\n\nSimilarly, if the buffer only has a single struct field, the format will be \"unwrapped\" to the inner struct.  This lets you use a struct for a Buffer's data without having to wrap everything in an extra namespace.  Example:\n\n    shader = lovr.graphics.newShader([[\n      struct HandParams {\n        vec3 pos;\n        float grip;\n      };\n\n      layout(set = 0, binding = 0) buffer Hand {\n        HandParams params;\n      };\n\n      void lovrmain(){}\n    ]])\n\n    shader:getBufferFormat('Hand')\n    -- returns {{ name = 'pos', type = 'vec3' }, { name = 'grip', type = 'float' }}, 1\n    -- not     {{ name = 'params', type = {...}}}, 1",
               related = {
                 "lovr.graphics.newBuffer",
                 "Buffer:getFormat"

+ 3 - 3
api/lovr/graphics/Shader/getBufferFormat.lua

@@ -49,8 +49,8 @@ return {
 
         shader = lovr.graphics.newShader([[
           struct HandParams {
-            vec3 position;
-            float trigger;
+            vec3 pos;
+            float grip;
           };
 
           layout(set = 0, binding = 0) buffer Hand {
@@ -61,7 +61,7 @@ return {
         ]])
 
         shader:getBufferFormat('Hand')
-        -- returns {{ name = 'position', type = 'vec3' }, { name = 'trigger', type = 'float' }}, 1
+        -- returns {{ name = 'pos', type = 'vec3' }, { name = 'grip', type = 'float' }}, 1
         -- not     {{ name = 'params', type = {...}}}, 1
   ]=],
   example = [=[