Fix "error X3708: continue cannot be used in a switch" in HTML export

(cherry picked from commit 5062df41a5)
This commit is contained in:
cody 2023-04-05 23:42:00 +02:00 committed by Yuri Sizov
parent aeca8f07fa
commit c1ec270b44

View file

@ -300,16 +300,14 @@ void main() {
vec3 rel_vec = xform[3].xyz - attractors[i].transform[3].xyz; vec3 rel_vec = xform[3].xyz - attractors[i].transform[3].xyz;
vec3 local_pos = rel_vec * mat3(attractors[i].transform); vec3 local_pos = rel_vec * mat3(attractors[i].transform);
switch (attractors[i].type) { if (attractors[i].type == ATTRACTOR_TYPE_SPHERE) {
case ATTRACTOR_TYPE_SPHERE: {
dir = safe_normalize(rel_vec); dir = safe_normalize(rel_vec);
float d = length(local_pos) / attractors[i].extents.x; float d = length(local_pos) / attractors[i].extents.x;
if (d > 1.0) { if (d > 1.0) {
continue; continue;
} }
amount = max(0.0, 1.0 - d); amount = max(0.0, 1.0 - d);
} break; } else if (attractors[i].type == ATTRACTOR_TYPE_BOX) {
case ATTRACTOR_TYPE_BOX: {
dir = safe_normalize(rel_vec); dir = safe_normalize(rel_vec);
vec3 abs_pos = abs(local_pos / attractors[i].extents.xyz); vec3 abs_pos = abs(local_pos / attractors[i].extents.xyz);
@ -318,10 +316,7 @@ void main() {
continue; continue;
} }
amount = max(0.0, 1.0 - d); amount = max(0.0, 1.0 - d);
} else if (attractors[i].type == ATTRACTOR_TYPE_VECTOR_FIELD) {
} break;
case ATTRACTOR_TYPE_VECTOR_FIELD: {
} break;
} }
amount = pow(amount, attractors[i].attenuation); amount = pow(amount, attractors[i].attenuation);
dir = safe_normalize(mix(dir, attractors[i].transform[2].xyz, attractors[i].directionality)); dir = safe_normalize(mix(dir, attractors[i].transform[2].xyz, attractors[i].directionality));
@ -383,8 +378,7 @@ void main() {
vec3 rel_vec = xform[3].xyz - colliders[i].transform[3].xyz; vec3 rel_vec = xform[3].xyz - colliders[i].transform[3].xyz;
vec3 local_pos = rel_vec * mat3(colliders[i].transform); vec3 local_pos = rel_vec * mat3(colliders[i].transform);
switch (colliders[i].type) { if (colliders[i].type == COLLIDER_TYPE_SPHERE) {
case COLLIDER_TYPE_SPHERE: {
float d = length(rel_vec) - (particle_size + colliders[i].extents.x); float d = length(rel_vec) - (particle_size + colliders[i].extents.x);
if (d < 0.0) { if (d < 0.0) {
@ -392,9 +386,7 @@ void main() {
depth = -d; depth = -d;
normal = normalize(rel_vec); normal = normalize(rel_vec);
} }
} else if (colliders[i].type == COLLIDER_TYPE_BOX) {
} break;
case COLLIDER_TYPE_BOX: {
vec3 abs_pos = abs(local_pos); vec3 abs_pos = abs(local_pos);
vec3 sgn_pos = sign(local_pos); vec3 sgn_pos = sign(local_pos);
@ -425,11 +417,8 @@ void main() {
depth = dot(normal * axis_len, vec3(1)) + particle_size; depth = dot(normal * axis_len, vec3(1)) + particle_size;
normal = mat3(colliders[i].transform) * (normal * sgn_pos); normal = mat3(colliders[i].transform) * (normal * sgn_pos);
} }
} else if (colliders[i].type == COLLIDER_TYPE_SDF) {
} break; } else if (colliders[i].type == COLLIDER_TYPE_HEIGHT_FIELD) {
case COLLIDER_TYPE_SDF: {
} break;
case COLLIDER_TYPE_HEIGHT_FIELD: {
vec3 local_pos_bottom = local_pos; vec3 local_pos_bottom = local_pos;
local_pos_bottom.y -= particle_size; local_pos_bottom.y -= particle_size;
@ -455,8 +444,6 @@ void main() {
col = true; col = true;
depth = dot(normal, pos1) - dot(normal, local_pos_bottom); depth = dot(normal, pos1) - dot(normal, local_pos_bottom);
} }
} break;
} }
if (col) { if (col) {