Browse Source

lovrMain entrypoint;

bjorn 5 years ago
parent
commit
4510fb58d7

File diff suppressed because it is too large
+ 5 - 5
api/init.lua


+ 4 - 4
api/lovr/graphics/Canvas/init.lua

@@ -26,15 +26,15 @@ return {
         canvas = lovr.graphics.newCanvas(lovr.headset.getDisplayDimensions())
 
         wave = lovr.graphics.newShader([[
-          vec4 position(mat4 projection, mat4 transform, vec4 vertex) {
-            return vertex;
+          vec4 lovrMain() {
+            return lovrRVertex;
           }
         ]], [[
           uniform float time;
-          vec4 color(vec4 graphicsColor, sampler2D image, vec2 uv) {
+          vec4 lovrMain() {
             uv.x += sin(uv.y * 10 + time * 4) * .01;
             uv.y += cos(uv.x * 10 + time * 4) * .01;
-            return graphicsColor * lovrDiffuseColor * vertexColor * texture(image, uv);
+            return lovrGraphicsColor * lovrDiffuseColor * lovrVertexColor * texture(lovrDiffuseTexture, lovrTexCoord);
           }
         ]])
       end

+ 1 - 1
api/lovr/graphics/Mesh/init.lua

@@ -49,7 +49,7 @@ return {
         in vec4 vColor;
         in int vWeight;
 
-        vec4 position(mat4 projection, mat4 transform, vec4 vertex) {
+        vec4 lovrMain() {
           // Here we can access the vPosition, vColor, and vWeight of each vertex in the Mesh!
         }
 

+ 11 - 13
api/lovr/graphics/Shader/init.lua

@@ -15,14 +15,14 @@ return {
 
     The default vertex shader:
 
-        vec4 position(mat4 projection, mat4 transform, vec4 vertex) {
-          return projection * transform * vertex;
+        vec4 lovrMain() {
+          return lovrProjection * lovrTransform * lovrVertex;
         }
 
     The default fragment shader:
 
-        vec4 color(vec4 graphicsColor, sampler2D image, vec2 uv) {
-          return graphicsColor * lovrDiffuseColor * vertexColor * texture(image, uv);
+        vec4 lovrMain() {
+          return lovrGraphicsColor * lovrDiffuseColor * lovrVertexColor * texture(lovrDiffuseTexture, lovrTexCoord);
         }
 
     Additionally, the following headers are prepended to the shader source, giving you convenient
@@ -38,9 +38,7 @@ return {
         in uvec4 lovrBones;
         in vec4 lovrBoneWeights;
         in uint lovrDrawID;
-        out vec2 texCoord;
-        out vec4 vertexColor;
-        out vec4 lovrColor;
+        out vec4 lovrGraphicsColor;
         uniform mat4 lovrModel;
         uniform mat4 lovrView;
         uniform mat4 lovrProjection;
@@ -56,9 +54,9 @@ return {
 
     Fragment shader header:
 
-        in vec2 texCoord;
-        in vec4 vertexColor;
-        in vec4 lovrColor;
+        in vec2 lovrTexCoord;
+        in vec4 lovrVertexColor;
+        in vec4 lovrGraphicsColor;
         out vec4 lovrCanvas[gl_MaxDrawBuffers];
         uniform float lovrMetalness;
         uniform float lovrRoughness;
@@ -110,14 +108,14 @@ return {
         lovr.graphics.setShader(lovr.graphics.newShader([[
           out vec3 vNormal; // This gets passed to the fragment shader
 
-          vec4 position(mat4 projection, mat4 transform, vec4 vertex) {
+          vec4 lovrMain() {
             vNormal = lovrNormal;
-            return projection * transform * vertex;
+            return lovrProjection * lovrTransform * lovrVertex;
           }
         ]], [[
           in vec3 vNormal; // This gets passed from the vertex shader
 
-          vec4 color(vec4 graphicsColor, sampler2D image, vec2 uv) {
+          vec4 lovrMain() {
             return vec4(vNormal * .5 + .5, 1.0);
           }
         ]]))

+ 3 - 2
api/lovr/graphics/Shader/send.lua

@@ -104,9 +104,10 @@ return {
       function lovr.load()
         shader = lovr.graphics.newShader [[
           uniform vec3 offset;
-          vec4 position(mat4 projection, mat4 transform, vec4 vertex) {
+          vec4 lovrMain() {
+            vec4 vertex = lovrVertex;
             vertex.xyz += offset;
-            return projection * transform * vertex;
+            return lovrProjection * lovrTransform * vertex;
           }
         ]]
 

+ 2 - 2
api/lovr/graphics/ShaderBlock/init.lua

@@ -41,8 +41,8 @@ return {
       -- Create the shader, injecting the shader code for the block
       shader = lovr.graphics.newShader(
         block:getShaderCode('ModelBlock') .. [[
-        vec4 position(mat4 projection, mat4 transform, vec4 vertex) {
-          return projection * transform * modelPositions[gl_InstanceID] * vertex;
+        vec4 lovrMain() {
+          return lovrProjection * lovrTransform * modelPositions[gl_InstanceID] * lovrVertex;
         }
       ]])
 

+ 5 - 5
api/lovr/graphics/newShaderBlock.lua

@@ -59,22 +59,22 @@ return {
           lightColors = { 'vec3', 16 },
           objectCount = 'int',
           objectTransforms = { 'mat4', 256 }
-        })
+        }, 'uniform')
 
         shader = lovr.graphics.newShader(
           block:getShaderCode('Block') .. -- Define the block in the shader
           [[
-            vec4 position(mat4 projection, mat4 transform, vec4 vertex) {
+            vec4 lovrMain() {
               // ...use the object transforms from the block
-              return projection * transform * vertex;
+              return lovrProjection * lovrTransform * lovrVertex;
             }
           ]],
 
           block:getShaderCode('Block') ..
           [[
-            vec4 color(vec4 gColor, sampler2D image, vec2 uv) {
+            vec4 lovrMain() {
               // ...use the lights from the block
-              return gColor * texture(image, uv);
+              return lovrGraphicsColor * texture(lovrDiffuseTexture, lovrTexCoord);
             }
           ]]
         )

+ 3 - 2
api/lovr/headset/getDisplayMask.lua

@@ -21,7 +21,8 @@ return {
       lovr.graphics.setBackgroundColor(1, 1, 1)
 
       shader = lovr.graphics.newShader([[
-        vec4 position(mat4 projection, mat4 transform, vec4 vertex) {
+        vec4 lovrMain() {
+          vec4 vertex = lovrVertex;
 
           // Rescale mesh coordinates from (0,1) to (-1,1)
           vertex.xy *= 2.;
@@ -36,7 +37,7 @@ return {
         }
       ]], [[
         // The fragment shader returns solid black for illustration purposes.  It could be transparent.
-        vec4 color(vec4 graphicsColor, sampler2D image, vec2 uv) {
+        vec4 lovrMain() {
           return vec4(0., 0., 0., 1.);
         }
       ]])

Some files were not shown because too many files changed in this diff