Skip to content

Instantly share code, notes, and snippets.

@DylanLukes
Created October 28, 2010 17:16
Show Gist options
  • Save DylanLukes/651833 to your computer and use it in GitHub Desktop.
Save DylanLukes/651833 to your computer and use it in GitHub Desktop.
#define eglMultMatrix( C, A, B )\
{\
C[0 ] = ( ( A[0] * B[0 ] ) + ( A[4] * B[1 ] ) + ( A[8 ] * B[2 ] ) + ( A[12] * B[3 ] ) );\
C[4 ] = ( ( A[0] * B[4 ] ) + ( A[4] * B[5 ] ) + ( A[8 ] * B[6 ] ) + ( A[12] * B[7 ] ) );\
C[8 ] = ( ( A[0] * B[8 ] ) + ( A[4] * B[9 ] ) + ( A[8 ] * B[10] ) + ( A[12] * B[11] ) );\
C[12] = ( ( A[0] * B[12] ) + ( A[4] * B[13] ) + ( A[8 ] * B[14] ) + ( A[12] * B[15] ) );\
\
C[1 ] = ( ( A[1] * B[0 ] ) + ( A[5] * B[1 ] ) + ( A[9 ] * B[2 ] ) + ( A[13] * B[3 ] ) );\
C[5 ] = ( ( A[1] * B[4 ] ) + ( A[5] * B[5 ] ) + ( A[9 ] * B[6 ] ) + ( A[13] * B[7 ] ) );\
C[9 ] = ( ( A[1] * B[8 ] ) + ( A[5] * B[9 ] ) + ( A[9 ] * B[10] ) + ( A[13] * B[11] ) );\
C[13] = ( ( A[1] * B[12] ) + ( A[5] * B[13] ) + ( A[9 ] * B[14] ) + ( A[13] * B[15] ) );\
\
C[2 ] = ( ( A[2] * B[0 ] ) + ( A[6] * B[1 ] ) + ( A[10] * B[2 ] ) + ( A[14] * B[3 ] ) );\
C[6 ] = ( ( A[2] * B[4 ] ) + ( A[6] * B[5 ] ) + ( A[10] * B[6 ] ) + ( A[14] * B[7 ] ) );\
C[10] = ( ( A[2] * B[8 ] ) + ( A[6] * B[9 ] ) + ( A[10] * B[10] ) + ( A[14] * B[11] ) );\
C[14] = ( ( A[2] * B[12] ) + ( A[6] * B[13] ) + ( A[10] * B[14] ) + ( A[14] * B[15] ) );\
\
C[3 ] = ( ( A[3] * B[0 ] ) + ( A[7] * B[1 ] ) + ( A[11] * B[2 ] ) + ( A[15] * B[3 ] ) );\
C[7 ] = ( ( A[3] * B[4 ] ) + ( A[7] * B[5 ] ) + ( A[11] * B[6 ] ) + ( A[15] * B[7 ] ) );\
C[11] = ( ( A[3] * B[8 ] ) + ( A[7] * B[9 ] ) + ( A[11] * B[10] ) + ( A[15] * B[11] ) );\
C[15] = ( ( A[3] * B[12] ) + ( A[7] * B[13] ) + ( A[11] * B[14] ) + ( A[15] * B[15] ) );\
}
#define eglSetIdentity( M ) \
{\
M[0 ] = 1; M[4 ] = 0; M[8 ] = 0; M[12] = 0;\
M[1 ] = 0; M[5 ] = 1; M[9 ] = 0; M[13] = 0;\
M[2 ] = 0; M[6 ] = 0; M[10] = 1; M[14] = 0;\
M[3 ] = 0; M[7 ] = 0; M[11] = 0; M[15] = 1;\
}
#define eglSetOrtho(M, L, R, B, T, N, F) \
{\
M[0 ] = 2/((R)-(L)); M[4 ] = 0 ; M[8 ] = 0 ; M[12] = ( ( (R) + (L) ) / ( (R) - (L) ) ); \
M[1 ] = 0 ; M[5 ] = 2/((T)-(B)); M[9 ] = 0 ; M[13] = ( ( (T) + (B) ) / ( (T) - (B) ) ); \
M[2 ] = 0 ; M[6 ] = 0 ; M[10] = -2/((F)-(N)); M[14] = ( ( (F) + (N) ) / ( (F) - (N) ) ); \
M[3 ] = 0 ; M[7 ] = 0 ; M[11] = 0 ; M[15] = 1 ; \
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment