Browse Source

Fix wrong vertex format

Popov72 4 years ago
parent
commit
b1caca01ae
1 changed files with 16 additions and 1 deletions
  1. 16 1
      src/Engines/webgpuEngine.ts

+ 16 - 1
src/Engines/webgpuEngine.ts

@@ -2983,32 +2983,44 @@ export class WebGPUEngine extends Engine {
         switch (type) {
             case VertexBuffer.BYTE:
                 switch (size) {
+                    case 1:
                     case 2:
                         return normalized ? WebGPUConstants.VertexFormat.Char2Norm : WebGPUConstants.VertexFormat.Char2;
+                    case 3:
                     case 4:
                         return normalized ? WebGPUConstants.VertexFormat.Char4Norm : WebGPUConstants.VertexFormat.Char4;
                 }
+                break;
             case VertexBuffer.UNSIGNED_BYTE:
                 switch (size) {
+                    case 1:
                     case 2:
                         return normalized ? WebGPUConstants.VertexFormat.Uchar2Norm : WebGPUConstants.VertexFormat.Uchar2;
+                    case 3:
                     case 4:
                         return normalized ? WebGPUConstants.VertexFormat.Uchar4Norm : WebGPUConstants.VertexFormat.Uchar4;
                 }
+                break;
             case VertexBuffer.SHORT:
                 switch (size) {
+                    case 1:
                     case 2:
                         return normalized ? WebGPUConstants.VertexFormat.Short2Norm : WebGPUConstants.VertexFormat.Short2;
+                    case 3:
                     case 4:
                         return normalized ? WebGPUConstants.VertexFormat.Short4Norm : WebGPUConstants.VertexFormat.Short4;
                 }
+                break;
             case VertexBuffer.UNSIGNED_SHORT:
                 switch (size) {
+                    case 1:
                     case 2:
                         return normalized ? WebGPUConstants.VertexFormat.Ushort2Norm : WebGPUConstants.VertexFormat.Ushort2;
+                    case 3:
                     case 4:
                         return normalized ? WebGPUConstants.VertexFormat.Ushort4Norm : WebGPUConstants.VertexFormat.Ushort4;
                 }
+                break;
             case VertexBuffer.INT:
                 switch (size) {
                     case 1:
@@ -3020,6 +3032,7 @@ export class WebGPUEngine extends Engine {
                     case 4:
                         return WebGPUConstants.VertexFormat.Int4;
                 }
+                break;
             case VertexBuffer.UNSIGNED_INT:
                 switch (size) {
                     case 1:
@@ -3031,6 +3044,7 @@ export class WebGPUEngine extends Engine {
                     case 4:
                         return WebGPUConstants.VertexFormat.Uint4;
                 }
+                break;
             case VertexBuffer.FLOAT:
                 switch (size) {
                     case 1:
@@ -3042,9 +3056,10 @@ export class WebGPUEngine extends Engine {
                     case 4:
                         return WebGPUConstants.VertexFormat.Float4;
                 }
+                break;
         }
 
-        throw new Error("Invalid Format '" + kind + "'");
+        throw new Error(`Invalid Format '${kind}' - type=${type}, normalized=${normalized}, size=${size}`);
     }
 
     private _getVertexInputDescriptor(topology: GPUPrimitiveTopology): GPUVertexStateDescriptor {