Skip to content
Permalink
Browse files

Fixed bug 2755 - SDL2 fails to build on Solaris 10 u3

UX-admin

I am compiling with the Sun Studio 12 u2 compiler. There are multiple issues with the build, but this particular issue appears to be that it is illegal to declare a union of a struct of floats and a float. While GCC 4.8.1 does not flag this as an error, Sun Studio is much more standards compliant and strict, halting further compilation with an error.
  • Loading branch information
slouken committed Aug 14, 2017
1 parent 72ab258 commit 7af3786def620154b2cd91e90b535eb81c21f447
Showing with 50 additions and 50 deletions.
  1. +49 −49 src/render/SDL_d3dmath.c
  2. +1 −1 src/render/SDL_d3dmath.h
@@ -31,57 +31,57 @@ Float4X4 MatrixIdentity()
{
Float4X4 m;
SDL_zero(m);
m._11 = 1.0f;
m._22 = 1.0f;
m._33 = 1.0f;
m._44 = 1.0f;
m.v._11 = 1.0f;
m.v._22 = 1.0f;
m.v._33 = 1.0f;
m.v._44 = 1.0f;
return m;
}

Float4X4 MatrixMultiply(Float4X4 M1, Float4X4 M2)
{
Float4X4 m;
m._11 = M1._11 * M2._11 + M1._12 * M2._21 + M1._13 * M2._31 + M1._14 * M2._41;
m._12 = M1._11 * M2._12 + M1._12 * M2._22 + M1._13 * M2._32 + M1._14 * M2._42;
m._13 = M1._11 * M2._13 + M1._12 * M2._23 + M1._13 * M2._33 + M1._14 * M2._43;
m._14 = M1._11 * M2._14 + M1._12 * M2._24 + M1._13 * M2._34 + M1._14 * M2._44;
m._21 = M1._21 * M2._11 + M1._22 * M2._21 + M1._23 * M2._31 + M1._24 * M2._41;
m._22 = M1._21 * M2._12 + M1._22 * M2._22 + M1._23 * M2._32 + M1._24 * M2._42;
m._23 = M1._21 * M2._13 + M1._22 * M2._23 + M1._23 * M2._33 + M1._24 * M2._43;
m._24 = M1._21 * M2._14 + M1._22 * M2._24 + M1._23 * M2._34 + M1._24 * M2._44;
m._31 = M1._31 * M2._11 + M1._32 * M2._21 + M1._33 * M2._31 + M1._34 * M2._41;
m._32 = M1._31 * M2._12 + M1._32 * M2._22 + M1._33 * M2._32 + M1._34 * M2._42;
m._33 = M1._31 * M2._13 + M1._32 * M2._23 + M1._33 * M2._33 + M1._34 * M2._43;
m._34 = M1._31 * M2._14 + M1._32 * M2._24 + M1._33 * M2._34 + M1._34 * M2._44;
m._41 = M1._41 * M2._11 + M1._42 * M2._21 + M1._43 * M2._31 + M1._44 * M2._41;
m._42 = M1._41 * M2._12 + M1._42 * M2._22 + M1._43 * M2._32 + M1._44 * M2._42;
m._43 = M1._41 * M2._13 + M1._42 * M2._23 + M1._43 * M2._33 + M1._44 * M2._43;
m._44 = M1._41 * M2._14 + M1._42 * M2._24 + M1._43 * M2._34 + M1._44 * M2._44;
m.v._11 = M1.v._11 * M2.v._11 + M1.v._12 * M2.v._21 + M1.v._13 * M2.v._31 + M1.v._14 * M2.v._41;
m.v._12 = M1.v._11 * M2.v._12 + M1.v._12 * M2.v._22 + M1.v._13 * M2.v._32 + M1.v._14 * M2.v._42;
m.v._13 = M1.v._11 * M2.v._13 + M1.v._12 * M2.v._23 + M1.v._13 * M2.v._33 + M1.v._14 * M2.v._43;
m.v._14 = M1.v._11 * M2.v._14 + M1.v._12 * M2.v._24 + M1.v._13 * M2.v._34 + M1.v._14 * M2.v._44;
m.v._21 = M1.v._21 * M2.v._11 + M1.v._22 * M2.v._21 + M1.v._23 * M2.v._31 + M1.v._24 * M2.v._41;
m.v._22 = M1.v._21 * M2.v._12 + M1.v._22 * M2.v._22 + M1.v._23 * M2.v._32 + M1.v._24 * M2.v._42;
m.v._23 = M1.v._21 * M2.v._13 + M1.v._22 * M2.v._23 + M1.v._23 * M2.v._33 + M1.v._24 * M2.v._43;
m.v._24 = M1.v._21 * M2.v._14 + M1.v._22 * M2.v._24 + M1.v._23 * M2.v._34 + M1.v._24 * M2.v._44;
m.v._31 = M1.v._31 * M2.v._11 + M1.v._32 * M2.v._21 + M1.v._33 * M2.v._31 + M1.v._34 * M2.v._41;
m.v._32 = M1.v._31 * M2.v._12 + M1.v._32 * M2.v._22 + M1.v._33 * M2.v._32 + M1.v._34 * M2.v._42;
m.v._33 = M1.v._31 * M2.v._13 + M1.v._32 * M2.v._23 + M1.v._33 * M2.v._33 + M1.v._34 * M2.v._43;
m.v._34 = M1.v._31 * M2.v._14 + M1.v._32 * M2.v._24 + M1.v._33 * M2.v._34 + M1.v._34 * M2.v._44;
m.v._41 = M1.v._41 * M2.v._11 + M1.v._42 * M2.v._21 + M1.v._43 * M2.v._31 + M1.v._44 * M2.v._41;
m.v._42 = M1.v._41 * M2.v._12 + M1.v._42 * M2.v._22 + M1.v._43 * M2.v._32 + M1.v._44 * M2.v._42;
m.v._43 = M1.v._41 * M2.v._13 + M1.v._42 * M2.v._23 + M1.v._43 * M2.v._33 + M1.v._44 * M2.v._43;
m.v._44 = M1.v._41 * M2.v._14 + M1.v._42 * M2.v._24 + M1.v._43 * M2.v._34 + M1.v._44 * M2.v._44;
return m;
}

Float4X4 MatrixScaling(float x, float y, float z)
{
Float4X4 m;
SDL_zero(m);
m._11 = x;
m._22 = y;
m._33 = z;
m._44 = 1.0f;
m.v._11 = x;
m.v._22 = y;
m.v._33 = z;
m.v._44 = 1.0f;
return m;
}

Float4X4 MatrixTranslation(float x, float y, float z)
{
Float4X4 m;
SDL_zero(m);
m._11 = 1.0f;
m._22 = 1.0f;
m._33 = 1.0f;
m._44 = 1.0f;
m._41 = x;
m._42 = y;
m._43 = z;
m.v._11 = 1.0f;
m.v._22 = 1.0f;
m.v._33 = 1.0f;
m.v._44 = 1.0f;
m.v._41 = x;
m.v._42 = y;
m.v._43 = z;
return m;
}

@@ -91,12 +91,12 @@ Float4X4 MatrixRotationX(float r)
float cosR = SDL_cosf(r);
Float4X4 m;
SDL_zero(m);
m._11 = 1.0f;
m._22 = cosR;
m._23 = sinR;
m._32 = -sinR;
m._33 = cosR;
m._44 = 1.0f;
m.v._11 = 1.0f;
m.v._22 = cosR;
m.v._23 = sinR;
m.v._32 = -sinR;
m.v._33 = cosR;
m.v._44 = 1.0f;
return m;
}

@@ -106,12 +106,12 @@ Float4X4 MatrixRotationY(float r)
float cosR = SDL_cosf(r);
Float4X4 m;
SDL_zero(m);
m._11 = cosR;
m._13 = -sinR;
m._22 = 1.0f;
m._31 = sinR;
m._33 = cosR;
m._44 = 1.0f;
m.v._11 = cosR;
m.v._13 = -sinR;
m.v._22 = 1.0f;
m.v._31 = sinR;
m.v._33 = cosR;
m.v._44 = 1.0f;
return m;
}

@@ -121,12 +121,12 @@ Float4X4 MatrixRotationZ(float r)
float cosR = SDL_cosf(r);
Float4X4 m;
SDL_zero(m);
m._11 = cosR;
m._12 = sinR;
m._21 = -sinR;
m._22 = cosR;
m._33 = 1.0f;
m._44 = 1.0f;
m.v._11 = cosR;
m.v._12 = sinR;
m.v._21 = -sinR;
m.v._22 = cosR;
m.v._33 = 1.0f;
m.v._44 = 1.0f;
return m;

}
@@ -53,7 +53,7 @@ typedef struct
float _21, _22, _23, _24;
float _31, _32, _33, _34;
float _41, _42, _43, _44;
};
} v;
float m[4][4];
};
} Float4X4;

0 comments on commit 7af3786

Please sign in to comment.