Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #pragma GCC push_options
- #pragma GCC optimize ("unroll-loops")
- #define GLM_CONVERT_VEC(L, T, IN)\
- ({\
- __typeof__(IN) in = IN;\
- glm_vec(L, T) out;\
- for(size_t i = 0; i < L; ++i) out.data[i] = (T)in.data[i];\
- out;\
- })
- #define GLM_CONVERT_TVEC1(T, IN) GLM_CONVERT_VEC(1, T, IN)
- #define GLM_CONVERT_TVEC2(T, IN) GLM_CONVERT_VEC(2, T, IN)
- #define GLM_CONVERT_TVEC3(T, IN) GLM_CONVERT_VEC(3, T, IN)
- #define GLM_CONVERT_TVEC4(T, IN) GLM_CONVERT_VEC(4, T, IN)
- int main(int argc, char** argv)
- {
- {
- /* Vector casting */
- glm_ivec4 v1 = {52, 0, 22, -24};
- glm_bvec2 v2;
- v2 = GLM_CONVERT_TVEC2(bool, v1);
- printf("bvec2(%d, %d)\n", v2.x, v2.y);
- }
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement