(GLM) Get rid of some more stuff we won't need in libretro-common

This commit is contained in:
twinaphex 2016-11-01 07:15:37 +01:00
parent d8dab2af5b
commit fd1b57fb1a
33 changed files with 33 additions and 262 deletions

View File

@ -1,190 +0,0 @@
///////////////////////////////////////////////////////////////////////////////////
/// OpenGL Mathematics (glm.g-truc.net)
///
/// Copyright (c) 2005 - 2014 G-Truc Creation (www.g-truc.net)
/// Permission is hereby granted, free of charge, to any person obtaining a copy
/// of this software and associated documentation files (the "Software"), to deal
/// in the Software without restriction, including without limitation the rights
/// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
/// copies of the Software, and to permit persons to whom the Software is
/// furnished to do so, subject to the following conditions:
///
/// The above copyright notice and this permission notice shall be included in
/// all copies or substantial portions of the Software.
///
/// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
/// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
/// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
/// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
/// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
/// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
/// THE SOFTWARE.
///
/// @ref core
/// @file glm/core/dummy.cpp
/// @date 2011-01-19 / 2011-06-15
/// @author Christophe Riccio
///
/// GLM is a header only library. There is nothing to compile.
/// dummy.cpp exist only a wordaround for CMake file.
///////////////////////////////////////////////////////////////////////////////////
#define GLM_FORCE_RADIANS
#define GLM_MESSAGES
#include "../glm.hpp"
#include <limits>
struct material
{
glm::vec4 emission; // Ecm
glm::vec4 ambient; // Acm
glm::vec4 diffuse; // Dcm
glm::vec4 specular; // Scm
float shininess; // Srm
};
struct light
{
glm::vec4 ambient; // Acli
glm::vec4 diffuse; // Dcli
glm::vec4 specular; // Scli
glm::vec4 position; // Ppli
glm::vec4 halfVector; // Derived: Hi
glm::vec3 spotDirection; // Sdli
float spotExponent; // Srli
float spotCutoff; // Crli
// (range: [0.0,90.0], 180.0)
float spotCosCutoff; // Derived: cos(Crli)
// (range: [1.0,0.0],-1.0)
float constantAttenuation; // K0
float linearAttenuation; // K1
float quadraticAttenuation;// K2
};
// Sample 1
#include <glm/vec3.hpp>// glm::vec3
#include <glm/geometric.hpp>// glm::cross, glm::normalize
glm::vec3 computeNormal
(
glm::vec3 const & a,
glm::vec3 const & b,
glm::vec3 const & c
)
{
return glm::normalize(glm::cross(c - a, b - a));
}
typedef unsigned int GLuint;
#define GL_FALSE 0
void glUniformMatrix4fv(GLuint, int, int, float*){}
// Sample 2
#include <glm/vec3.hpp> // glm::vec3
#include <glm/vec4.hpp> // glm::vec4, glm::ivec4
#include <glm/mat4x4.hpp> // glm::mat4
#include <glm/gtc/matrix_transform.hpp> // glm::translate, glm::rotate, glm::scale, glm::perspective
#include <glm/gtc/type_ptr.hpp> // glm::value_ptr
void func(GLuint LocationMVP, float Translate, glm::vec2 const & Rotate)
{
glm::mat4 Projection = glm::perspective(45.0f, 4.0f / 3.0f, 0.1f, 100.f);
glm::mat4 ViewTranslate = glm::translate(glm::mat4(1.0f), glm::vec3(0.0f, 0.0f, -Translate));
glm::mat4 ViewRotateX = glm::rotate(ViewTranslate, Rotate.y, glm::vec3(-1.0f, 0.0f, 0.0f));
glm::mat4 View = glm::rotate(ViewRotateX, Rotate.x, glm::vec3(0.0f, 1.0f, 0.0f));
glm::mat4 Model = glm::scale(glm::mat4(1.0f), glm::vec3(0.5f));
glm::mat4 MVP = Projection * View * Model;
glUniformMatrix4fv(LocationMVP, 1, GL_FALSE, glm::value_ptr(MVP));
}
// Sample 3
#include <glm/vec2.hpp>// glm::vec2
#include <glm/packing.hpp>// glm::packUnorm2x16
#include <glm/integer.hpp>// glm::uint
#include <glm/gtc/type_precision.hpp>// glm::i8vec2, glm::i32vec2
std::size_t const VertexCount = 4;
// Float quad geometry
std::size_t const PositionSizeF32 = VertexCount * sizeof(glm::vec2);
glm::vec2 const PositionDataF32[VertexCount] =
{
glm::vec2(-1.0f,-1.0f),
glm::vec2( 1.0f,-1.0f),
glm::vec2( 1.0f, 1.0f),
glm::vec2(-1.0f, 1.0f)
};
// Half-float quad geometry
std::size_t const PositionSizeF16 = VertexCount * sizeof(glm::uint);
glm::uint const PositionDataF16[VertexCount] =
{
glm::uint(glm::packUnorm2x16(glm::vec2(-1.0f, -1.0f))),
glm::uint(glm::packUnorm2x16(glm::vec2( 1.0f, -1.0f))),
glm::uint(glm::packUnorm2x16(glm::vec2( 1.0f, 1.0f))),
glm::uint(glm::packUnorm2x16(glm::vec2(-1.0f, 1.0f)))
};
// 8 bits signed integer quad geometry
std::size_t const PositionSizeI8 = VertexCount * sizeof(glm::i8vec2);
glm::i8vec2 const PositionDataI8[VertexCount] =
{
glm::i8vec2(-1,-1),
glm::i8vec2( 1,-1),
glm::i8vec2( 1, 1),
glm::i8vec2(-1, 1)
};
// 32 bits signed integer quad geometry
std::size_t const PositionSizeI32 = VertexCount * sizeof(glm::i32vec2);
glm::i32vec2 const PositionDataI32[VertexCount] =
{
glm::i32vec2 (-1,-1),
glm::i32vec2 ( 1,-1),
glm::i32vec2 ( 1, 1),
glm::i32vec2 (-1, 1)
};
struct intersection
{
glm::vec4 position;
glm::vec3 normal;
};
/*
// Sample 4
#include <glm/vec3.hpp>// glm::vec3
#include <glm/geometric.hpp>// glm::normalize, glm::dot, glm::reflect
#include <glm/exponential.hpp>// glm::pow
#include <glm/gtc/random.hpp>// glm::vecRand3
glm::vec3 lighting
(
intersection const & Intersection,
material const & Material,
light const & Light,
glm::vec3 const & View
)
{
glm::vec3 Color(0.0f);
glm::vec3 LightVertor(glm::normalize(
Light.position - Intersection.position +
glm::vecRand3(0.0f, Light.inaccuracy));
if(!shadow(Intersection.position, Light.position, LightVertor))
{
float Diffuse = glm::dot(Intersection.normal, LightVector);
if(Diffuse <= 0.0f)
return Color;
if(Material.isDiffuse())
Color += Light.color() * Material.diffuse * Diffuse;
if(Material.isSpecular())
{
glm::vec3 Reflect(glm::reflect(
glm::normalize(-LightVector),
glm::normalize(Intersection.normal)));
float Dot = glm::dot(Reflect, View);
float Base = Dot > 0.0f ? Dot : 0.0f;
float Specular = glm::pow(Base, Material.exponent);
Color += Material.specular * Specular;
}
}
return Color;
}
*/
int main()
{
return 0;
}

View File

@ -152,14 +152,11 @@ namespace detail
std::numeric_limits<genFIType>::is_iec559 ||
(std::numeric_limits<genFIType>::is_signed && std::numeric_limits<genFIType>::is_integer), "'sign' only accept signed inputs");
genFIType result;
if(x > genFIType(0))
result = genFIType(1);
return genFIType(1);
else if(x < genFIType(0))
result = genFIType(-1);
else
result = genFIType(0);
return result;
return genFIType(-1);
return genFIType(0);
}
VECTORIZE_VEC(sign)

View File

@ -511,12 +511,6 @@
((GLM_LANG & GLM_LANG_CXX0X_FLAG) && (GLM_COMPILER & GLM_COMPILER_GCC) && (GLM_COMPILER >= GLM_COMPILER_GCC43)) || \
((GLM_LANG & GLM_LANG_CXX0X_FLAG) && (GLM_COMPILER & GLM_COMPILER_CLANG) && (GLM_COMPILER >= GLM_COMPILER_CLANG29)))
// N2235
#define GLM_HAS_CONSTEXPR ( \
(GLM_LANG & GLM_LANG_CXX11_FLAG) || \
((GLM_LANG & GLM_LANG_CXX0X_FLAG) && (GLM_COMPILER & GLM_COMPILER_GCC) && (GLM_COMPILER >= GLM_COMPILER_GCC46)) || \
__has_feature(cxx_constexpr))
// N2672
#define GLM_HAS_INITIALIZER_LISTS ( \
(GLM_LANG & GLM_LANG_CXX11_FLAG) || \
@ -524,25 +518,6 @@
((GLM_LANG & GLM_LANG_CXX0X_FLAG) && (GLM_COMPILER & GLM_COMPILER_GCC) && (GLM_COMPILER >= GLM_COMPILER_GCC44)) || \
__has_feature(cxx_generalized_initializers))
// OpenMP
#ifdef _OPENMP
# if(GLM_COMPILER & GLM_COMPILER_GCC)
# if(GLM_COMPILER > GLM_COMPILER_GCC47)
# define GLM_HAS_OPENMP 31
# elif(GLM_COMPILER > GLM_COMPILER_GCC44)
# define GLM_HAS_OPENMP 30
# elif(GLM_COMPILER > GLM_COMPILER_GCC42)
# define GLM_HAS_OPENMP 25
# endif
# endif//(GLM_COMPILER & GLM_COMPILER_GCC)
# if(GLM_COMPILER & GLM_COMPILER_VC)
# if(GLM_COMPILER > GLM_COMPILER_VC8)
# define GLM_HAS_OPENMP 20
# endif
# endif//(GLM_COMPILER & GLM_COMPILER_GCC)
#endif
// Not standard
#define GLM_HAS_ANONYMOUS_UNION (GLM_LANG & GLM_LANG_CXXMS_FLAG)
@ -667,13 +642,8 @@
// User defines: GLM_FORCE_INLINE GLM_FORCE_CUDA
#if(defined(GLM_FORCE_CUDA) || (GLM_COMPILER & GLM_COMPILER_CUDA))
# define GLM_CUDA_FUNC_DEF __device__ __host__
# define GLM_CUDA_FUNC_DECL __device__ __host__
#else
# define GLM_CUDA_FUNC_DEF
# define GLM_CUDA_FUNC_DECL
#endif
#if GLM_COMPILER & GLM_COMPILER_GCC
# define GLM_VAR_USED __attribute__ ((unused))
@ -765,10 +735,4 @@ namespace glm
# define GLM_RESTRICT_VAR
#endif//GLM_COMPILER
#if GLM_HAS_CONSTEXPR
# define GLM_CONSTEXPR constexpr
#else
# define GLM_CONSTEXPR
#endif
#endif//GLM_SETUP_INCLUDED

View File

@ -48,7 +48,7 @@ namespace detail
typedef tmat2x2<T, P> type;
typedef tmat2x2<T, P> transpose_type;
GLM_FUNC_DECL GLM_CONSTEXPR length_t length() const;
GLM_FUNC_DECL length_t length() const;
template <typename U, precision Q>
friend tvec2<U, Q> operator/(tmat2x2<U, Q> const & m, tvec2<U, Q> const & v);

View File

@ -30,7 +30,7 @@ namespace glm{
namespace detail
{
template <typename T, precision P>
GLM_FUNC_QUALIFIER GLM_CONSTEXPR length_t tmat2x2<T, P>::length() const
GLM_FUNC_QUALIFIER length_t tmat2x2<T, P>::length() const
{
return 2;
}

View File

@ -49,7 +49,7 @@ namespace detail
typedef tmat2x3<T, P> type;
typedef tmat3x2<T, P> transpose_type;
GLM_FUNC_DECL GLM_CONSTEXPR length_t length() const;
GLM_FUNC_DECL length_t length() const;
private:
// Data

View File

@ -30,7 +30,7 @@ namespace glm{
namespace detail
{
template <typename T, precision P>
GLM_FUNC_QUALIFIER GLM_CONSTEXPR length_t tmat2x3<T, P>::length() const
GLM_FUNC_QUALIFIER length_t tmat2x3<T, P>::length() const
{
return 2;
}

View File

@ -49,7 +49,7 @@ namespace detail
typedef tmat2x4<T, P> type;
typedef tmat4x2<T, P> transpose_type;
GLM_FUNC_DECL GLM_CONSTEXPR length_t length() const;
GLM_FUNC_DECL length_t length() const;
private:
// Data

View File

@ -30,7 +30,7 @@ namespace glm{
namespace detail
{
template <typename T, precision P>
GLM_FUNC_QUALIFIER GLM_CONSTEXPR length_t tmat2x4<T, P>::length() const
GLM_FUNC_QUALIFIER length_t tmat2x4<T, P>::length() const
{
return 2;
}

View File

@ -49,7 +49,7 @@ namespace detail
typedef tmat3x2<T, P> type;
typedef tmat2x3<T, P> transpose_type;
GLM_FUNC_DECL GLM_CONSTEXPR length_t length() const;
GLM_FUNC_DECL length_t length() const;
private:
// Data

View File

@ -30,7 +30,7 @@ namespace glm{
namespace detail
{
template <typename T, precision P>
GLM_FUNC_QUALIFIER GLM_CONSTEXPR length_t tmat3x2<T, P>::length() const
GLM_FUNC_QUALIFIER length_t tmat3x2<T, P>::length() const
{
return 3;
}

View File

@ -48,7 +48,7 @@ namespace detail
typedef tmat3x3<T, P> type;
typedef tmat3x3<T, P> transpose_type;
GLM_FUNC_DECL GLM_CONSTEXPR length_t length() const;
GLM_FUNC_DECL length_t length() const;
template <typename U, precision Q>
friend tvec3<U, Q> operator/(tmat3x3<U, Q> const & m, tvec3<U, Q> const & v);

View File

@ -30,7 +30,7 @@ namespace glm{
namespace detail
{
template <typename T, precision P>
GLM_FUNC_QUALIFIER GLM_CONSTEXPR length_t tmat3x3<T, P>::length() const
GLM_FUNC_QUALIFIER length_t tmat3x3<T, P>::length() const
{
return 3;
}

View File

@ -49,7 +49,7 @@ namespace detail
typedef tmat3x4<T, P> type;
typedef tmat4x3<T, P> transpose_type;
GLM_FUNC_DECL GLM_CONSTEXPR length_t length() const;
GLM_FUNC_DECL length_t length() const;
private:
// Data

View File

@ -30,7 +30,7 @@ namespace glm{
namespace detail
{
template <typename T, precision P>
GLM_FUNC_QUALIFIER GLM_CONSTEXPR length_t tmat3x4<T, P>::length() const
GLM_FUNC_QUALIFIER length_t tmat3x4<T, P>::length() const
{
return 3;
}

View File

@ -49,7 +49,7 @@ namespace detail
typedef tmat4x2<T, P> type;
typedef tmat2x4<T, P> transpose_type;
GLM_FUNC_DECL GLM_CONSTEXPR length_t length() const;
GLM_FUNC_DECL length_t length() const;
private:
// Data

View File

@ -30,7 +30,7 @@ namespace glm{
namespace detail
{
template <typename T, precision P>
GLM_FUNC_QUALIFIER GLM_CONSTEXPR length_t tmat4x2<T, P>::length() const
GLM_FUNC_QUALIFIER length_t tmat4x2<T, P>::length() const
{
return 4;
}

View File

@ -49,7 +49,7 @@ namespace detail
typedef tmat4x3<T, P> type;
typedef tmat3x4<T, P> transpose_type;
GLM_FUNC_DECL GLM_CONSTEXPR length_t length() const;
GLM_FUNC_DECL length_t length() const;
private:
// Data

View File

@ -30,7 +30,7 @@ namespace glm{
namespace detail
{
template <typename T, precision P>
GLM_FUNC_QUALIFIER GLM_CONSTEXPR length_t tmat4x3<T, P>::length() const
GLM_FUNC_QUALIFIER length_t tmat4x3<T, P>::length() const
{
return 4;
}

View File

@ -49,7 +49,7 @@ namespace detail
typedef tmat4x4<T, P> type;
typedef tmat4x4<T, P> transpose_type;
GLM_FUNC_DECL GLM_CONSTEXPR length_t length() const;
GLM_FUNC_DECL length_t length() const;
template <typename U, precision Q>
friend tvec4<U, Q> operator/(tmat4x4<U, Q> const & m, tvec4<U, Q> const & v);

View File

@ -30,7 +30,7 @@ namespace glm{
namespace detail
{
template <typename T, precision P>
GLM_FUNC_QUALIFIER GLM_CONSTEXPR length_t tmat4x4<T, P>::length() const
GLM_FUNC_QUALIFIER length_t tmat4x4<T, P>::length() const
{
return 4;
}

View File

@ -58,7 +58,7 @@ namespace detail
//////////////////////////////////////
// Helper
GLM_FUNC_DECL GLM_CONSTEXPR length_t length() const;
GLM_FUNC_DECL length_t length() const;
//////////////////////////////////////
// Data

View File

@ -30,7 +30,7 @@ namespace glm{
namespace detail
{
template <typename T, precision P>
GLM_FUNC_QUALIFIER GLM_CONSTEXPR length_t tvec1<T, P>::length() const
GLM_FUNC_QUALIFIER length_t tvec1<T, P>::length() const
{
return 1;
}

View File

@ -59,7 +59,7 @@ namespace detail
//////////////////////////////////////
// Helper
GLM_FUNC_DECL GLM_CONSTEXPR length_t length() const;
GLM_FUNC_DECL length_t length() const;
//////////////////////////////////////
// Data

View File

@ -30,7 +30,7 @@ namespace glm{
namespace detail
{
template <typename T, precision P>
GLM_FUNC_QUALIFIER GLM_CONSTEXPR length_t tvec2<T, P>::length() const
GLM_FUNC_QUALIFIER length_t tvec2<T, P>::length() const
{
return 2;
}

View File

@ -59,7 +59,7 @@ namespace detail
//////////////////////////////////////
// Helper
GLM_FUNC_DECL GLM_CONSTEXPR length_t length() const;
GLM_FUNC_DECL length_t length() const;
//////////////////////////////////////
// Data

View File

@ -30,7 +30,7 @@ namespace glm{
namespace detail
{
template <typename T, precision P>
GLM_FUNC_QUALIFIER GLM_CONSTEXPR length_t tvec3<T, P>::length() const
GLM_FUNC_QUALIFIER length_t tvec3<T, P>::length() const
{
return 3;
}

View File

@ -60,7 +60,7 @@ namespace detail
//////////////////////////////////////
// Helper
GLM_FUNC_DECL GLM_CONSTEXPR length_t length() const;
GLM_FUNC_DECL length_t length() const;
//////////////////////////////////////
// Data

View File

@ -30,7 +30,7 @@ namespace glm{
namespace detail
{
template <typename T, precision P>
GLM_FUNC_QUALIFIER GLM_CONSTEXPR length_t tvec4<T, P>::length() const
GLM_FUNC_QUALIFIER length_t tvec4<T, P>::length() const
{
return 4;
}

View File

@ -64,7 +64,7 @@ namespace detail
public:
T x, y, z, w;
GLM_FUNC_DECL GLM_CONSTEXPR length_t length() const;
GLM_FUNC_DECL length_t length() const;
// Constructors
GLM_FUNC_DECL tquat();

View File

@ -35,7 +35,7 @@ namespace glm{
namespace detail
{
template <typename T, precision P>
GLM_FUNC_QUALIFIER GLM_CONSTEXPR length_t tquat<T, P>::length() const
GLM_FUNC_QUALIFIER length_t tquat<T, P>::length() const
{
return 4;
}

View File

@ -63,7 +63,7 @@ namespace detail
public:
glm::detail::tquat<T, P> real, dual;
GLM_FUNC_DECL GLM_CONSTEXPR int length() const;
GLM_FUNC_DECL int length() const;
// Constructors
GLM_FUNC_DECL tdualquat();

View File

@ -33,7 +33,7 @@ namespace glm{
namespace detail
{
template <typename T, precision P>
GLM_FUNC_QUALIFIER GLM_CONSTEXPR int tdualquat<T, P>::length() const
GLM_FUNC_QUALIFIER int tdualquat<T, P>::length() const
{
return 8;
}