Changeset 113


Ignore:
Timestamp:
06/09/13 16:08:04 (12 years ago)
Author:
epyon
Message:
  • LLVM C++ fixes part 3. NV compiles on LLVM
Location:
trunk
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • trunk/nv/types.hh

    r112 r113  
    199199                : name(name)
    200200                        , type_name()
    201                         , type_inf( &typeid( std::remove_pointer<typename TFIELD::value_type>::type ) )
     201                        , type_inf( &typeid( typename std::remove_pointer<typename TFIELD::value_type>::type ) )
    202202                        , type( nullptr )
    203203                        , flags( 0 )
  • trunk/src/library.cc

    r109 r113  
    1515#   define NV_LIB_GET( handle, name ) GetProcAddress( handle, name )
    1616#   define NV_LIB_CLOSE( name ) !FreeLibrary( name )
    17 #elif NV_PLATFORM == NV_LINUX
     17#elif NV_PLATFORM == NV_LINUX || NV_PLATFORM == NV_APPLE
    1818#   include <dlfcn.h>
    1919#   define NV_LIB_EXT ".so"
  • trunk/src/lua/lua_glm.cc

    r85 r113  
    4646template < typename T > struct nlua_vec_constructor< T, 3 > {
    4747        static inline T construct( lua_State* L, int index ) {
    48                 typedef glm::detail::tvec2<T::value_type> vec2;
     48                typedef glm::detail::tvec2<typename T::value_type> vec2;
    4949                if ( lua_type( L, index ) == LUA_TUSERDATA )
    5050                {
     
    6666template < typename T > struct nlua_vec_constructor< T, 4 > {
    6767        static inline T construct( lua_State* L, int index ) {
    68                 typedef glm::detail::tvec2<T::value_type> vec2;
    69                 typedef glm::detail::tvec3<T::value_type> vec3;
     68                typedef glm::detail::tvec2<typename T::value_type> vec2;
     69                typedef glm::detail::tvec3<typename T::value_type> vec3;
    7070                if ( lua_type( L, index ) == LUA_TUSERDATA )
    7171                {
     
    108108int nlua_vec_new( lua_State* L )
    109109{
    110         nlua_push_vec( L, nlua_vec_constructor<T,sizeof( T ) / sizeof( T::value_type )>::construct( L, 1 ) );
     110        nlua_push_vec( L, nlua_vec_constructor<T,sizeof( T ) / sizeof( typename T::value_type )>::construct( L, 1 ) );
    111111        return 1;
    112112}
     
    115115int nlua_vec_call( lua_State* L )
    116116{
    117         nlua_push_vec( L, nlua_vec_constructor<T,sizeof( T ) / sizeof( T::value_type )>::construct( L, 2 ) );
     117        nlua_push_vec( L, nlua_vec_constructor<T,sizeof( T ) / sizeof( typename T::value_type )>::construct( L, 2 ) );
    118118        return 1;
    119119}
     
    130130{
    131131        if ( lua_type( L, 1 ) == LUA_TNUMBER )
    132                 nlua_push_vec<T>( L, (T::value_type)(lua_tonumber( L, 1 )) + nlua_to_vec<T>( L, 2 ) );
     132                nlua_push_vec<T>( L, (typename T::value_type)(lua_tonumber( L, 1 )) + nlua_to_vec<T>( L, 2 ) );
    133133        else
    134134                if ( lua_type( L, 2 ) == LUA_TNUMBER )
    135                         nlua_push_vec<T>( L, nlua_to_vec<T>( L, 1 ) + (T::value_type)(lua_tonumber( L, 2 )) );
     135                        nlua_push_vec<T>( L, nlua_to_vec<T>( L, 1 ) + (typename T::value_type)(lua_tonumber( L, 2 )) );
    136136                else
    137137                        nlua_push_vec<T>( L, nlua_to_vec<T>( L, 1 ) + nlua_to_vec<T>( L, 2 ) );
     
    143143{
    144144        if ( lua_type( L, 1 ) == LUA_TNUMBER )
    145                 nlua_push_vec<T>( L, (T::value_type)(lua_tonumber( L, 1 )) - nlua_to_vec<T>( L, 2 ) );
     145                nlua_push_vec<T>( L, (typename T::value_type)(lua_tonumber( L, 1 )) - nlua_to_vec<T>( L, 2 ) );
    146146        else
    147147                if ( lua_type( L, 2 ) == LUA_TNUMBER )
    148                         nlua_push_vec<T>( L, nlua_to_vec<T>( L, 1 ) - (T::value_type)(lua_tonumber( L, 2 )) );
     148                        nlua_push_vec<T>( L, nlua_to_vec<T>( L, 1 ) - (typename T::value_type)(lua_tonumber( L, 2 )) );
    149149                else
    150150                        nlua_push_vec<T>( L, nlua_to_vec<T>( L, 1 ) - nlua_to_vec<T>( L, 2 ) );
     
    156156{
    157157        if ( lua_type( L, 1 ) == LUA_TNUMBER )
    158                 nlua_push_vec<T>( L, (T::value_type)(lua_tonumber( L, 1 )) * nlua_to_vec<T>( L, 2 ) );
     158                nlua_push_vec<T>( L, (typename T::value_type)(lua_tonumber( L, 1 )) * nlua_to_vec<T>( L, 2 ) );
    159159        else
    160160                if ( lua_type( L, 2 ) == LUA_TNUMBER )
    161                         nlua_push_vec<T>( L, nlua_to_vec<T>( L, 1 ) * (T::value_type)(lua_tonumber( L, 2 )) );
     161                        nlua_push_vec<T>( L, nlua_to_vec<T>( L, 1 ) * (typename T::value_type)(lua_tonumber( L, 2 )) );
    162162                else
    163163                        nlua_push_vec<T>( L, nlua_to_vec<T>( L, 1 ) * nlua_to_vec<T>( L, 2 ) );
     
    169169{
    170170        if ( lua_type( L, 1 ) == LUA_TNUMBER )
    171                 nlua_push_vec<T>( L, (T::value_type)(lua_tonumber( L, 1 )) / nlua_to_vec<T>( L, 2 ) );
     171                nlua_push_vec<T>( L, (typename T::value_type)(lua_tonumber( L, 1 )) / nlua_to_vec<T>( L, 2 ) );
    172172        else
    173173                if ( lua_type( L, 2 ) == LUA_TNUMBER )
    174                         nlua_push_vec<T>( L, nlua_to_vec<T>( L, 1 ) / (T::value_type)(lua_tonumber( L, 2 )) );
     174                        nlua_push_vec<T>( L, nlua_to_vec<T>( L, 1 ) / (typename T::value_type)(lua_tonumber( L, 2 )) );
    175175                else
    176176                        nlua_push_vec<T>( L, nlua_to_vec<T>( L, 1 ) / nlua_to_vec<T>( L, 2 ) );
     
    217217        {
    218218                switch (len) {
    219                 case 2 : nlua_push_vec( L, glm::detail::tvec2<T::value_type>( (*v)[nlua_swizzel_lookup[key[0]]], (*v)[nlua_swizzel_lookup[key[1]]] ) ); return 1;
    220                 case 3 : nlua_push_vec( L, glm::detail::tvec3<T::value_type>( (*v)[nlua_swizzel_lookup[key[0]]], (*v)[nlua_swizzel_lookup[key[1]]], (*v)[nlua_swizzel_lookup[key[2]]] ) ); return 1;
    221                 case 4 : nlua_push_vec( L, glm::detail::tvec4<T::value_type>( (*v)[nlua_swizzel_lookup[key[0]]], (*v)[nlua_swizzel_lookup[key[1]]], (*v)[nlua_swizzel_lookup[key[2]]], (*v)[nlua_swizzel_lookup[key[3]]] ) ); return 1;
     219                case 2 : nlua_push_vec( L, glm::detail::tvec2<typename T::value_type>( (*v)[nlua_swizzel_lookup[key[0]]], (*v)[nlua_swizzel_lookup[key[1]]] ) ); return 1;
     220                case 3 : nlua_push_vec( L, glm::detail::tvec3<typename T::value_type>( (*v)[nlua_swizzel_lookup[key[0]]], (*v)[nlua_swizzel_lookup[key[1]]], (*v)[nlua_swizzel_lookup[key[2]]] ) ); return 1;
     221                case 4 : nlua_push_vec( L, glm::detail::tvec4<typename T::value_type>( (*v)[nlua_swizzel_lookup[key[0]]], (*v)[nlua_swizzel_lookup[key[1]]], (*v)[nlua_swizzel_lookup[key[2]]], (*v)[nlua_swizzel_lookup[key[3]]] ) ); return 1;
    222222                default: break;
    223223                }
     
    233233int nlua_vec_newindex( lua_State* L )
    234234{
    235         typedef glm::detail::tvec2<T::value_type> vec2;
    236         typedef glm::detail::tvec3<T::value_type> vec3;
    237         typedef glm::detail::tvec4<T::value_type> vec4;
     235        typedef glm::detail::tvec2<typename T::value_type> vec2;
     236        typedef glm::detail::tvec3<typename T::value_type> vec3;
     237        typedef glm::detail::tvec4<typename T::value_type> vec4;
    238238
    239239        T* v = nlua_to_pvec<T>( L, 1 );
     
    247247                if ( idx < vlen )
    248248                {
    249                         (*v)[idx] = (T::value_type)luaL_checknumber( L, 3 );
     249                        (*v)[idx] = (typename T::value_type)luaL_checknumber( L, 3 );
    250250                        return 0;
    251251                }
Note: See TracChangeset for help on using the changeset viewer.