diff --git a/copying.txt b/copying.txt index 422785d9..779c32fb 100644 --- a/copying.txt +++ b/copying.txt @@ -6,7 +6,7 @@ GLM is licensed under The Happy Bunny License or MIT License ================================================================================ The Happy Bunny License (Modified MIT License) -------------------------------------------------------------------------------- -Copyright (c) 2005 - 2014 G-Truc Creation +Copyright (c) 2005 - G-Truc Creation Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal @@ -33,7 +33,7 @@ THE SOFTWARE. ================================================================================ The MIT License -------------------------------------------------------------------------------- -Copyright (c) 2005 - 2014 G-Truc Creation +Copyright (c) 2005 - G-Truc Creation Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/doc/api/bc_s.png b/doc/api/bc_s.png index 224b29aa..a2741171 100644 Binary files a/doc/api/bc_s.png and b/doc/api/bc_s.png differ diff --git a/doc/api/bdwn.png b/doc/api/bdwn.png index 940a0b95..52e0f771 100644 Binary files a/doc/api/bdwn.png and b/doc/api/bdwn.png differ diff --git a/doc/api/closed.png b/doc/api/closed.png index 98cc2c90..c2ff2e8a 100644 Binary files a/doc/api/closed.png and b/doc/api/closed.png differ diff --git a/doc/api/doc.png b/doc/api/doc.png index 17edabff..f3953d1f 100644 Binary files a/doc/api/doc.png and b/doc/api/doc.png differ diff --git a/doc/api/doxygen.css b/doc/api/doxygen.css index b2c94ac2..1b9d11f3 100644 --- a/doc/api/doxygen.css +++ b/doc/api/doxygen.css @@ -4,13 +4,27 @@ body, table, div, p, dl { font: 400 14px/22px Roboto,sans-serif; } +body +{ + margin:0px; + padding:0px; + background-color:#bf6000; + background-repeat:no-repeat; + background-position:center center; + background-attachment:fixed; + min-height:1200px; + overflow:auto; +} + /* @group Heading Levels */ h1.groupheader { + color:#bf6000; font-size: 150%; } .title { + color:#bf6000; font: 400 14px/28px Roboto,sans-serif; font-size: 150%; font-weight: bold; @@ -18,8 +32,8 @@ h1.groupheader { } h2.groupheader { - border-bottom: 1px solid #879ECB; - color: #354C7B; + border-bottom: 1px solid #bf6000; + color:#bf6000; font-size: 150%; font-weight: normal; margin-top: 1.75em; @@ -93,8 +107,8 @@ h3.version { } div.qindex, div.navtab{ - background-color: #EBEFF6; - border: 1px solid #A3B4D7; + background-color: #FFF8F0; + border: 1px solid #FF8000; text-align: center; } @@ -110,13 +124,27 @@ div.navtab { /* @group Link Styling */ a { - color: #3D578C; + color: #000000; font-weight: normal; text-decoration: none; } .contents a:visited { - color: #4665A2; + color: #606060; +} + +.contents{ + background-color: #FFFFFF; + padding-top:8px; + padding-bottom:8px; + padding-left:32px; + padding-right:32px; + margin:0px; + margin-left:auto; + margin-right:auto; + width:1216px; + border-bottom-left-radius: 8px; + border-bottom-right-radius: 8px; } a:hover { @@ -160,8 +188,8 @@ dl.el { } pre.fragment { - border: 1px solid #C4CFE5; - background-color: #FBFCFD; + border: 1px solid #FF8000; + background-color: #FFF8F0; padding: 4px 6px; margin: 4px 8px 4px 2px; overflow: auto; @@ -173,15 +201,15 @@ pre.fragment { } div.fragment { - padding: 4px 6px; - margin: 4px 8px 4px 2px; - background-color: #FBFCFD; - border: 1px solid #C4CFE5; + padding: 4px 6px; + margin: 4px 8px 4px 2px; + background-color: #FFF8F0; + border: 1px solid #FF8000; } div.line { font-family: monospace, fixed; - font-size: 13px; + font-size: 13px; min-height: 13px; line-height: 1.0; text-wrap: unrestricted; @@ -217,7 +245,7 @@ span.lineno { text-align: right; border-right: 2px solid #0F0; background-color: #E8E8E8; - white-space: pre; + white-space: pre; } span.lineno a { background-color: #D8D8D8; @@ -266,36 +294,29 @@ div.groupText { } body { - background-color: white; color: black; - margin: 0; -} - -div.contents { - margin-top: 10px; - margin-left: 12px; - margin-right: 8px; + margin: 0; } td.indexkey { - background-color: #EBEFF6; + background-color: #FFF8F0; font-weight: bold; border: 1px solid #C4CFE5; margin: 2px 0px 2px 0; padding: 2px 10px; - white-space: nowrap; - vertical-align: top; + white-space: nowrap; + vertical-align: top; } td.indexvalue { - background-color: #EBEFF6; + background-color: #FFF8F0; border: 1px solid #C4CFE5; padding: 2px 10px; margin: 2px 0px; } tr.memlist { - background-color: #EEF1F7; + background-color: #FFF8F0; } p.formulaDsp { @@ -312,9 +333,9 @@ img.formulaInl { div.center { text-align: center; - margin-top: 0px; - margin-bottom: 0px; - padding: 0px; + margin-top: 0px; + margin-bottom: 0px; + padding: 0px; } div.center img { @@ -322,8 +343,7 @@ div.center img { } address.footer { - text-align: right; - padding-right: 12px; + display: none; } img.footer { @@ -412,7 +432,7 @@ td.tiny { .dirtab { padding: 4px; border-collapse: collapse; - border: 1px solid #A3B4D7; + border: 1px solid #FF8000; } th.dirtab { @@ -427,7 +447,7 @@ hr { } hr.footer { - height: 1px; + display: none; } /* @group Member Descriptions */ @@ -458,7 +478,7 @@ table.memberdecls { .mdescLeft, .mdescRight, .memItemLeft, .memItemRight, .memTemplItemLeft, .memTemplItemRight, .memTemplParams { - background-color: #F9FAFC; + background-color: #FFFCF8; border: none; margin: 4px; padding: 1px 0 0 8px; @@ -470,7 +490,7 @@ table.memberdecls { } .memSeparator { - border-bottom: 1px solid #DEE4F0; + border-bottom: 1px solid #FFF8F0; line-height: 1px; margin: 0px; padding: 0px; @@ -485,7 +505,7 @@ table.memberdecls { } .memTemplParams { - color: #4665A2; + color: #bf6000; white-space: nowrap; font-size: 80%; } @@ -504,8 +524,8 @@ table.memberdecls { } .memnav { - background-color: #EBEFF6; - border: 1px solid #A3B4D7; + background-color: #FFF8F0; + border: 1px solid #FF8000; text-align: center; margin: 2px; margin-right: 15px; @@ -543,16 +563,16 @@ table.memberdecls { } .memproto, dl.reflist dt { - border-top: 1px solid #A8B8D9; - border-left: 1px solid #A8B8D9; - border-right: 1px solid #A8B8D9; + border-top: 1px solid #bf6000; + border-left: 1px solid #bf6000; + border-right: 1px solid #bf6000; padding: 6px 0px 6px 0px; - color: #253555; + /*color: #253555;*/ font-weight: bold; - text-shadow: 0px 1px 1px rgba(255, 255, 255, 0.9); - background-image:url('nav_f.png'); + /*text-shadow: 0px 1px 1px rgba(255, 255, 255, 0.9);*/ + /*background-image:url('nav_f.png');*/ background-repeat:repeat-x; - background-color: #E2E8F2; + background-color: #FFF8F0; /* opera specific markup */ box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15); border-top-right-radius: 4px; @@ -569,15 +589,14 @@ table.memberdecls { } .memdoc, dl.reflist dd { - border-bottom: 1px solid #A8B8D9; - border-left: 1px solid #A8B8D9; - border-right: 1px solid #A8B8D9; + border-bottom: 1px solid #bf6000; + border-left: 1px solid #bf6000; + border-right: 1px solid #bf6000; padding: 6px 10px 2px 10px; - background-color: #FBFCFD; border-top-width: 0; background-image:url('nav_g.png'); background-repeat:repeat-x; - background-color: #FFFFFF; + background-color: #FFFDFB; /* opera specific markup */ border-bottom-left-radius: 4px; border-bottom-right-radius: 4px; @@ -660,11 +679,11 @@ span.mlabels { } span.mlabel { - background-color: #728DC1; - border-top:1px solid #5373B4; - border-left:1px solid #5373B4; - border-right:1px solid #C4CFE5; - border-bottom:1px solid #C4CFE5; + background-color: #728DC1; + border-top:1px solid #5373B4; + border-left:1px solid #5373B4; + border-right:1px solid #C4CFE5; + border-bottom:1px solid #C4CFE5; text-shadow: none; color: white; margin-right: 4px; @@ -683,8 +702,8 @@ span.mlabel { div.directory { margin: 10px 0px; - border-top: 1px solid #9CAFD4; - border-bottom: 1px solid #9CAFD4; + border-top: 1px solid #bf6000; + border-bottom: 1px solid #bf6000; width: 100%; } @@ -693,14 +712,14 @@ div.directory { } .directory td { - margin: 0px; - padding: 0px; + margin: 0px; + padding: 0px; vertical-align: top; } .directory td.entry { - white-space: nowrap; - padding-right: 6px; + white-space: nowrap; + padding-right: 6px; padding-top: 3px; } @@ -713,8 +732,8 @@ div.directory { } .directory td.desc { - width: 100%; - padding-left: 6px; + width: 100%; + padding-left: 6px; padding-right: 6px; padding-top: 3px; border-left: 1px solid rgba(0,0,0,0.05); @@ -722,7 +741,7 @@ div.directory { .directory tr.even { padding-left: 6px; - background-color: #F7F8FB; + background-color: #FFFDFB; } .directory img { @@ -737,14 +756,14 @@ div.directory { } .directory .levels span { - cursor: pointer; - padding-left: 2px; - padding-right: 2px; - color: #3D578C; + cursor: pointer; + padding-left: 2px; + padding-right: 2px; + color: #bf6000; } .arrow { - color: #9CAFD4; + color: #bf6000; -webkit-user-select: none; -khtml-user-select: none; -moz-user-select: none; @@ -764,7 +783,7 @@ div.directory { height: 14px; width: 16px; display: inline-block; - background-color: #728DC1; + background-color: #bf6000; color: white; text-align: center; border-radius: 4px; @@ -818,7 +837,7 @@ table.directory { /* @end */ div.dynheader { - margin-top: 8px; + margin-top: 8px; -webkit-touch-callout: none; -webkit-user-select: none; -khtml-user-select: none; @@ -834,8 +853,8 @@ address { table.doxtable { border-collapse:collapse; - margin-top: 4px; - margin-bottom: 4px; + margin-top: 4px; + margin-bottom: 4px; } table.doxtable td, table.doxtable th { @@ -928,13 +947,14 @@ table.fieldtable { .navpath ul { font-size: 11px; - background-image:url('tab_b.png'); + /*background-image:url('tab_b.png');*/ + background-color: #FFF8F0; background-repeat:repeat-x; background-position: 0 -5px; height:30px; line-height:30px; - color:#8AA0CC; - border:solid 1px #C2CDE4; + color:#bf6000; + border:solid 0px #C2CDE4; overflow:hidden; margin:0px; padding:0px; @@ -949,7 +969,7 @@ table.fieldtable { background-image:url('bc_s.png'); background-repeat:no-repeat; background-position:right; - color:#364D7C; + color:#bf6000; } .navpath li.navelem a @@ -958,9 +978,8 @@ table.fieldtable { display:block; text-decoration: none; outline: none; - color: #283A5D; + color: #bf6000; font-family: 'Lucida Grande',Geneva,Helvetica,Arial,sans-serif; - text-shadow: 0px 1px 1px rgba(255, 255, 255, 0.9); text-decoration: none; } @@ -978,11 +997,10 @@ table.fieldtable { background-image:none; background-repeat:no-repeat; background-position:right; - color:#364D7C; + color:#bf6000; font-size: 8pt; } - div.summary { float: right; @@ -990,7 +1008,7 @@ div.summary padding-right: 5px; width: 50%; text-align: right; -} +} div.summary a { @@ -1011,11 +1029,14 @@ div.ingroups a div.header { - background-image:url('nav_h.png'); - background-repeat:repeat-x; - background-color: #F9FAFC; - margin: 0px; - border-bottom: 1px solid #C4CFE5; + background-repeat:repeat-x; + background-color: #FFFCF8; + + padding:0px; + margin:0px; + margin-left:auto; + margin-right:auto; + width:1280px; } div.headertitle @@ -1072,7 +1093,7 @@ dl.todo margin-left:-7px; padding-left: 3px; border-left:4px solid; - border-color: #00C0E0; + border-color: #E0C000; } dl.test @@ -1118,6 +1139,7 @@ dl.section dd { font: 300% Tahoma, Arial,sans-serif; margin: 0px; padding: 2px 0px; + color: #FF8000; } #projectbrief @@ -1238,9 +1260,9 @@ div.toc li.level4 { } .inherit_header { - font-weight: bold; - color: gray; - cursor: pointer; + font-weight: bold; + color: gray; + cursor: pointer; -webkit-touch-callout: none; -webkit-user-select: none; -khtml-user-select: none; @@ -1433,6 +1455,26 @@ tr.heading h2 { margin-top: -11px; } +#titlearea +{ + margin: 0px; + padding-top: 8px; + padding-bottom: 8px; + margin-top: 32px; + width: 100%; + border-bottom: 0px solid #FF8000; + border-top-left-radius: 8px; + border-top-right-radius: 8px; + background-color:#FFFFFF; +} + +#top +{ + margin-left:auto; + margin-right:auto; + width:1280px; +} + @media print { #top { display: none; } diff --git a/doc/api/doxygen.png b/doc/api/doxygen.png index 3ff17d80..a7f4be80 100644 Binary files a/doc/api/doxygen.png and b/doc/api/doxygen.png differ diff --git a/doc/api/folderclosed.png b/doc/api/folderclosed.png index bb8ab35e..2a4bb4a5 100644 Binary files a/doc/api/folderclosed.png and b/doc/api/folderclosed.png differ diff --git a/doc/api/folderopen.png b/doc/api/folderopen.png index d6c7f676..cac00780 100644 Binary files a/doc/api/folderopen.png and b/doc/api/folderopen.png differ diff --git a/doc/api/nav_f.png b/doc/api/nav_f.png index 72a58a52..c77a42e7 100644 Binary files a/doc/api/nav_f.png and b/doc/api/nav_f.png differ diff --git a/doc/api/nav_h.png b/doc/api/nav_h.png index 33389b10..249a852f 100644 Binary files a/doc/api/nav_h.png and b/doc/api/nav_h.png differ diff --git a/doc/api/open.png b/doc/api/open.png index 30f75c7e..a4d70975 100644 Binary files a/doc/api/open.png and b/doc/api/open.png differ diff --git a/doc/api/splitbar.png b/doc/api/splitbar.png index fe895f2c..d5bc78b2 100644 Binary files a/doc/api/splitbar.png and b/doc/api/splitbar.png differ diff --git a/doc/api/sync_off.png b/doc/api/sync_off.png index 3b443fc6..9402c109 100644 Binary files a/doc/api/sync_off.png and b/doc/api/sync_off.png differ diff --git a/doc/api/sync_on.png b/doc/api/sync_on.png index e08320fb..85d97547 100644 Binary files a/doc/api/sync_on.png and b/doc/api/sync_on.png differ diff --git a/doc/api/tab_a.png b/doc/api/tab_a.png index 3b725c41..cd087e7d 100644 Binary files a/doc/api/tab_a.png and b/doc/api/tab_a.png differ diff --git a/doc/api/tab_b.png b/doc/api/tab_b.png index e2b4a863..e14114dc 100644 Binary files a/doc/api/tab_b.png and b/doc/api/tab_b.png differ diff --git a/doc/api/tab_h.png b/doc/api/tab_h.png index fd5cb705..eddb3f2d 100644 Binary files a/doc/api/tab_h.png and b/doc/api/tab_h.png differ diff --git a/doc/api/tab_s.png b/doc/api/tab_s.png index ab478c95..8d36eef7 100644 Binary files a/doc/api/tab_s.png and b/doc/api/tab_s.png differ diff --git a/glm/detail/type_quat.hpp b/glm/detail/type_quat.hpp index 4d082fd7..0e60bc33 100644 --- a/glm/detail/type_quat.hpp +++ b/glm/detail/type_quat.hpp @@ -42,12 +42,20 @@ namespace glm # if GLM_LANG & GLM_LANG_CXXMS_FLAG union { - struct { T x, y, z, w;}; +# ifdef GLM_FORCE_QUAT_DATA_WXYZ + struct { T w, x, y, z; }; +# else + struct { T x, y, z, w; }; +# endif typename detail::storage<4, T, detail::is_aligned::value>::type data; }; # else - T x, y, z, w; +# ifdef GLM_FORCE_QUAT_DATA_WXYZ + T w, x, y, z; +# else + T x, y, z, w; +# endif # endif # if GLM_SILENT_WARNINGS == GLM_ENABLE diff --git a/glm/detail/type_quat.inl b/glm/detail/type_quat.inl index c1824e0c..67b9310a 100644 --- a/glm/detail/type_quat.inl +++ b/glm/detail/type_quat.inl @@ -74,14 +74,22 @@ namespace detail GLM_FUNC_QUALIFIER GLM_CONSTEXPR T & qua::operator[](typename qua::length_type i) { assert(i >= 0 && i < this->length()); - return (&x)[i]; +# ifdef GLM_FORCE_QUAT_DATA_WXYZ + return (&w)[i]; +# else + return (&x)[i]; +# endif } template GLM_FUNC_QUALIFIER GLM_CONSTEXPR T const& qua::operator[](typename qua::length_type i) const { assert(i >= 0 && i < this->length()); - return (&x)[i]; +# ifdef GLM_FORCE_QUAT_DATA_WXYZ + return (&w)[i]; +# else + return (&x)[i]; +# endif } // -- Implicit basic constructors -- @@ -90,32 +98,52 @@ namespace detail template GLM_FUNC_QUALIFIER GLM_CONSTEXPR qua::qua() # if GLM_CONFIG_CTOR_INIT != GLM_CTOR_INIT_DISABLE - : x(0), y(0), z(0), w(1) +# ifdef GLM_FORCE_QUAT_DATA_WXYZ + : w(1), x(0), y(0), z(0) +# else + : x(0), y(0), z(0), w(1) +# endif # endif {} template GLM_FUNC_QUALIFIER GLM_CONSTEXPR qua::qua(qua const& q) - : x(q.x), y(q.y), z(q.z), w(q.w) +# ifdef GLM_FORCE_QUAT_DATA_WXYZ + : w(q.w), x(q.x), y(q.y), z(q.z) +# else + : x(q.x), y(q.y), z(q.z), w(q.w) +# endif {} # endif template template GLM_FUNC_QUALIFIER GLM_CONSTEXPR qua::qua(qua const& q) - : x(q.x), y(q.y), z(q.z), w(q.w) +# ifdef GLM_FORCE_QUAT_DATA_WXYZ + : w(q.w), x(q.x), y(q.y), z(q.z) +# else + : x(q.x), y(q.y), z(q.z), w(q.w) +# endif {} // -- Explicit basic constructors -- template GLM_FUNC_QUALIFIER GLM_CONSTEXPR qua::qua(T s, vec<3, T, Q> const& v) - : x(v.x), y(v.y), z(v.z), w(s) +# ifdef GLM_FORCE_QUAT_DATA_WXYZ + : w(s), x(v.x), y(v.y), z(v.z) +# else + : x(v.x), y(v.y), z(v.z), w(s) +# endif {} template GLM_FUNC_QUALIFIER GLM_CONSTEXPR qua::qua(T _w, T _x, T _y, T _z) - : x(_x), y(_y), z(_z), w(_w) +# ifdef GLM_FORCE_QUAT_DATA_WXYZ + : w(_w), x(_x), y(_y), z(_z) +# else + : x(_x), y(_y), z(_z), w(_w) +# endif {} // -- Conversion constructors -- @@ -123,10 +151,11 @@ namespace detail template template GLM_FUNC_QUALIFIER GLM_CONSTEXPR qua::qua(qua const& q) - : x(static_cast(q.x)) - , y(static_cast(q.y)) - , z(static_cast(q.z)) - , w(static_cast(q.w)) +# ifdef GLM_FORCE_QUAT_DATA_WXYZ + : w(static_cast(q.w)), x(static_cast(q.x)), y(static_cast(q.y)), z(static_cast(q.z)) +# else + : x(static_cast(q.x)), y(static_cast(q.y)), z(static_cast(q.z)), w(static_cast(q.w)) +# endif {} //template diff --git a/glm/ext/matrix_clip_space.inl b/glm/ext/matrix_clip_space.inl index 1b4c7708..7e4df330 100644 --- a/glm/ext/matrix_clip_space.inl +++ b/glm/ext/matrix_clip_space.inl @@ -473,11 +473,11 @@ namespace glm { # if GLM_CONFIG_CLIP_CONTROL == GLM_CLIP_CONTROL_LH_ZO return perspectiveFovLH_ZO(fov, width, height, zNear, zFar); - elif GLM_CONFIG_CLIP_CONTROL == GLM_CLIP_CONTROL_LH_NO +# elif GLM_CONFIG_CLIP_CONTROL == GLM_CLIP_CONTROL_LH_NO return perspectiveFovLH_NO(fov, width, height, zNear, zFar); - elif GLM_CONFIG_CLIP_CONTROL == GLM_CLIP_CONTROL_RH_ZO +# elif GLM_CONFIG_CLIP_CONTROL == GLM_CLIP_CONTROL_RH_ZO return perspectiveFovRH_ZO(fov, width, height, zNear, zFar); - elif GLM_CONFIG_CLIP_CONTROL == GLM_CLIP_CONTROL_RH_NO +# elif GLM_CONFIG_CLIP_CONTROL == GLM_CLIP_CONTROL_RH_NO return perspectiveFovRH_NO(fov, width, height, zNear, zFar); # endif } diff --git a/glm/gtx/scalar_multiplication.hpp b/glm/gtx/scalar_multiplication.hpp index f391f8de..496ba193 100644 --- a/glm/gtx/scalar_multiplication.hpp +++ b/glm/gtx/scalar_multiplication.hpp @@ -54,7 +54,7 @@ namespace glm template \ return_type_scalar_multiplication \ operator/(Vec lh, T const& s){ \ - return lh *= 1.0f / s; \ + return lh *= 1.0f / static_cast(s); \ } GLM_IMPLEMENT_SCAL_MULT(vec2) diff --git a/manual.md b/manual.md index e641a215..0efd82c6 100644 --- a/manual.md +++ b/manual.md @@ -36,6 +36,7 @@ + [2.18. GLM\_FORCE\_SIZE\_T\_LENGTH: Vector and matrix static size type](#section2_18) + [2.19. GLM\_FORCE\_UNRESTRICTED\_GENTYPE: Removing genType restriction](#section2_19) + [2.20. GLM\_FORCE\_SILENT\_WARNINGS: Silent C++ warnings from language extensions](#section2_20) ++ [2.21. GLM\_FORCE\_QUAT\_DATA\_WXYZ: Force GLM to store quat data as w,x,y,z instead of x,y,z,w](#section2_21) + [3. Stable extensions](#section3) + [3.1. Scalar types](#section3_1) + [3.2. Scalar functions](#section3_2) @@ -721,6 +722,11 @@ int average(int const A, int const B) When using /W4 on Visual C++ or -Wpedantic on GCC, for example, the compilers will generate warnings for using C++ language extensions (/Za with Visual C++) such as anonymous struct. GLM relies on anonymous structs for swizzle operators and aligned vector types. To silent those warnings define `GLM_FORCE_SILENT_WARNINGS` before including GLM headers. + +### 2.21. GLM\_FORCE\_QUAT\_DATA\_WXYZ: Force GLM to store quat data as w,x,y,z instead of x,y,z,w + +By default GLM store quaternion components with the x, y, z, w order. `GLM_FORCE_QUAT_DATA_WXYZ` allows switching the quaternion data storage to the w, x, y, z order. + ---
diff --git a/readme.md b/readme.md index bae80988..931c716f 100644 --- a/readme.md +++ b/readme.md @@ -53,18 +53,21 @@ glm::mat4 camera(float Translate, glm::vec2 const& Rotate) ## Release notes -### [GLM 0.9.9.7](https://github.com/g-truc/glm/releases/latest) - 2019-XX-XX +### [GLM 0.9.9.7](https://github.com/g-truc/glm/releases/tag/0.9.9.7) - 2020-01-05 #### Improvements: - Improved Neon support with more functions optimized #950 - Added CMake GLM interface #963 - Added fma implementation based on std::fma #969 - Added missing quat constexpr #955 +- Added GLM_FORCE_QUAT_DATA_WXYZ to store quat data as w,x,y,z instead of x,y,z,w #983 #### Fixes: - Fixed equal ULP variation when using negative sign #965 - Fixed for intersection ray/plane and added related tests #953 - Fixed ARM 64bit detection #949 - Fixed GLM_EXT_matrix_clip_space warnings #980 +- Fixed Wimplicit-int-float-conversion warnings with clang 10+ #986 +- Fixed EXT_matrix_clip_space perspectiveFov ### [GLM 0.9.9.6](https://github.com/g-truc/glm/releases/tag/0.9.9.6) - 2019-09-08 #### Features: diff --git a/test/core/CMakeLists.txt b/test/core/CMakeLists.txt index a1f1d0ff..b8dd9683 100644 --- a/test/core/CMakeLists.txt +++ b/test/core/CMakeLists.txt @@ -2,11 +2,18 @@ glmCreateTestGTC(core_cpp_constexpr) glmCreateTestGTC(core_cpp_defaulted_ctor) glmCreateTestGTC(core_force_aligned_gentypes) glmCreateTestGTC(core_force_ctor_init) +glmCreateTestGTC(core_force_cxx03) +glmCreateTestGTC(core_force_cxx98) +glmCreateTestGTC(core_force_arch_unknown) +glmCreateTestGTC(core_force_compiler_unknown) +glmCreateTestGTC(core_force_cxx_unknown) glmCreateTestGTC(core_force_explicit_ctor) glmCreateTestGTC(core_force_inline) +glmCreateTestGTC(core_force_platform_unknown) glmCreateTestGTC(core_force_pure) glmCreateTestGTC(core_force_unrestricted_gentype) glmCreateTestGTC(core_force_xyzw_only) +glmCreateTestGTC(core_force_quat_wxyz) glmCreateTestGTC(core_type_aligned) glmCreateTestGTC(core_type_cast) glmCreateTestGTC(core_type_ctor) diff --git a/test/core/core_force_arch_unknown.cpp b/test/core/core_force_arch_unknown.cpp new file mode 100644 index 00000000..45b51bf0 --- /dev/null +++ b/test/core/core_force_arch_unknown.cpp @@ -0,0 +1,14 @@ +#ifndef GLM_FORCE_ARCH_UNKNOWN +# define GLM_FORCE_ARCH_UNKNOWN +#endif + +#include +#include + +int main() +{ + int Error = 0; + + return Error; +} + diff --git a/test/core/core_force_compiler_unknown.cpp b/test/core/core_force_compiler_unknown.cpp new file mode 100644 index 00000000..44d7fc33 --- /dev/null +++ b/test/core/core_force_compiler_unknown.cpp @@ -0,0 +1,14 @@ +#ifndef GLM_FORCE_COMPILER_UNKNOWN +# define GLM_FORCE_COMPILER_UNKNOWN +#endif + +#include +#include + +int main() +{ + int Error = 0; + + return Error; +} + diff --git a/test/core/core_force_cxx03.cpp b/test/core/core_force_cxx03.cpp new file mode 100644 index 00000000..fc6e9c5d --- /dev/null +++ b/test/core/core_force_cxx03.cpp @@ -0,0 +1,14 @@ +#ifndef GLM_FORCE_CXX03 +# define GLM_FORCE_CXX03 +#endif + +#include +#include + +int main() +{ + int Error = 0; + + return Error; +} + diff --git a/test/core/core_force_cxx98.cpp b/test/core/core_force_cxx98.cpp new file mode 100644 index 00000000..42a5c259 --- /dev/null +++ b/test/core/core_force_cxx98.cpp @@ -0,0 +1,14 @@ +#ifndef GLM_FORCE_CXX98 +# define GLM_FORCE_CXX98 +#endif + +#include +#include + +int main() +{ + int Error = 0; + + return Error; +} + diff --git a/test/core/core_force_cxx_unknown.cpp b/test/core/core_force_cxx_unknown.cpp new file mode 100644 index 00000000..62299d6a --- /dev/null +++ b/test/core/core_force_cxx_unknown.cpp @@ -0,0 +1,14 @@ +#ifndef GLM_FORCE_CXX_UNKNOWN +# define GLM_FORCE_CXX_UNKNOWN +#endif + +#include +#include + +int main() +{ + int Error = 0; + + return Error; +} + diff --git a/test/core/core_force_depth_zero_to_one.cpp b/test/core/core_force_depth_zero_to_one.cpp new file mode 100644 index 00000000..23b36159 --- /dev/null +++ b/test/core/core_force_depth_zero_to_one.cpp @@ -0,0 +1,12 @@ +#define GLM_FORCE_DEPTH_ZERO_TO_ONE + +#include +#include + +int main() +{ + int Error = 0; + + return Error; +} + diff --git a/test/core/core_force_left_handed.cpp b/test/core/core_force_left_handed.cpp new file mode 100644 index 00000000..b7ec31b5 --- /dev/null +++ b/test/core/core_force_left_handed.cpp @@ -0,0 +1,12 @@ +#define GLM_FORCE_LEFT_HANDED + +#include +#include + +int main() +{ + int Error = 0; + + return Error; +} + diff --git a/test/core/core_force_platform_unknown.cpp b/test/core/core_force_platform_unknown.cpp new file mode 100644 index 00000000..fb7fa757 --- /dev/null +++ b/test/core/core_force_platform_unknown.cpp @@ -0,0 +1,14 @@ +#ifndef GLM_FORCE_PLATFORM_UNKNOWN +# define GLM_FORCE_PLATFORM_UNKNOWN +#endif + +#include +#include + +int main() +{ + int Error = 0; + + return Error; +} + diff --git a/test/core/core_force_quat_wxyz.cpp b/test/core/core_force_quat_wxyz.cpp new file mode 100644 index 00000000..bcb57394 --- /dev/null +++ b/test/core/core_force_quat_wxyz.cpp @@ -0,0 +1,13 @@ +#define GLM_FORCE_QUAT_DATA_WXYZ +#define GLM_FORCE_INLINE + +#include +#include + +int main() +{ + int Error = 0; + + return Error; +} + diff --git a/test/core/core_force_size_t_length.cpp b/test/core/core_force_size_t_length.cpp new file mode 100644 index 00000000..19dac897 --- /dev/null +++ b/test/core/core_force_size_t_length.cpp @@ -0,0 +1,12 @@ +#define GLM_FORCE_SIZE_T_LENGTH + +#include +#include + +int main() +{ + int Error = 0; + + return Error; +} + diff --git a/test/gtx/gtx_fast_trigonometry.cpp b/test/gtx/gtx_fast_trigonometry.cpp index f3bf17bf..8bf86ba0 100644 --- a/test/gtx/gtx_fast_trigonometry.cpp +++ b/test/gtx/gtx_fast_trigonometry.cpp @@ -239,12 +239,12 @@ namespace taylorCos std::vector Results; Results.resize(Samples); - float Steps = (End - Begin) / Samples; + float const Steps = (End - Begin) / static_cast(Samples); std::clock_t const TimeStampBegin = std::clock(); for(std::size_t i = 0; i < Samples; ++i) - Results[i] = fastCosNew(AngleShift + glm::vec4(Begin + Steps * i)); + Results[i] = fastCosNew(AngleShift + glm::vec4(Begin + Steps * static_cast(i))); std::clock_t const TimeStampEnd = std::clock(); @@ -280,12 +280,12 @@ namespace taylorCos std::vector Results; Results.resize(Samples); - float Steps = (End - Begin) / Samples; + float const Steps = (End - Begin) / static_cast(Samples); std::clock_t const TimeStampBegin = std::clock(); for(std::size_t i = 0; i < Samples; ++i) - Results[i] = taylorCos::fastCosDeterminisctic(AngleShift + glm::vec4(Begin + Steps * i)); + Results[i] = taylorCos::fastCosDeterminisctic(AngleShift + glm::vec4(Begin + Steps * static_cast(i))); std::clock_t const TimeStampEnd = std::clock(); @@ -327,12 +327,12 @@ namespace taylorCos std::vector Results; Results.resize(Samples); - float Steps = (End - Begin) / Samples; + float const Steps = (End - Begin) / static_cast(Samples); std::clock_t const TimeStampBegin = std::clock(); for(std::size_t i = 0; i < Samples; ++i) - Results[i] = taylorCos::fastRefCos(AngleShift + glm::vec4(Begin + Steps * i)); + Results[i] = taylorCos::fastRefCos(AngleShift + glm::vec4(Begin + Steps * static_cast(i))); std::clock_t const TimeStampEnd = std::clock(); @@ -349,12 +349,12 @@ namespace taylorCos std::vector Results; Results.resize(Samples); - float Steps = (End - Begin) / Samples; + float const Steps = (End - Begin) / static_cast(Samples); std::clock_t const TimeStampBegin = std::clock(); for(std::size_t i = 0; i < Samples; ++i) - Results[i] = glm::fastCos(AngleShift + glm::vec4(Begin + Steps * i)); + Results[i] = glm::fastCos(AngleShift + glm::vec4(Begin + Steps * static_cast(i))); std::clock_t const TimeStampEnd = std::clock(); @@ -371,12 +371,12 @@ namespace taylorCos std::vector Results; Results.resize(Samples); - float Steps = (End - Begin) / Samples; + float const Steps = (End - Begin) / static_cast(Samples); std::clock_t const TimeStampBegin = std::clock(); for(std::size_t i = 0; i < Samples; ++i) - Results[i] = glm::cos(AngleShift + glm::vec4(Begin + Steps * i)); + Results[i] = glm::cos(AngleShift + glm::vec4(Begin + Steps * static_cast(i))); std::clock_t const TimeStampEnd = std::clock(); @@ -466,12 +466,12 @@ namespace taylor2 std::vector Results; Results.resize(Samples); - float Steps = (End - Begin) / Samples; + float const Steps = (End - Begin) / static_cast(Samples); std::clock_t const TimeStampBegin = std::clock(); for(std::size_t i = 0; i < Samples; ++i) - Results[i] = taylorCosA(AngleShift.x + Begin + Steps * i); + Results[i] = taylorCosA(AngleShift.x + Begin + Steps * static_cast(i)); std::clock_t const TimeStampEnd = std::clock(); @@ -488,12 +488,12 @@ namespace taylor2 std::vector Results; Results.resize(Samples); - float Steps = (End - Begin) / Samples; + float const Steps = (End - Begin) / static_cast(Samples); std::clock_t const TimeStampBegin = std::clock(); for(std::size_t i = 0; i < Samples; ++i) - Results[i] = taylorCosB(AngleShift.x + Begin + Steps * i); + Results[i] = taylorCosB(AngleShift.x + Begin + Steps * static_cast(i)); std::clock_t const TimeStampEnd = std::clock(); @@ -510,12 +510,12 @@ namespace taylor2 std::vector Results; Results.resize(Samples); - float Steps = (End - Begin) / Samples; + float const Steps = (End - Begin) / static_cast(Samples); std::clock_t const TimeStampBegin = std::clock(); for(std::size_t i = 0; i < Samples; ++i) - Results[i] = taylorCosC(AngleShift.x + Begin + Steps * i); + Results[i] = taylorCosC(AngleShift.x + Begin + Steps * static_cast(i)); std::clock_t const TimeStampEnd = std::clock();