Changeset 406 for trunk/src/lib/gl.cc


Ignore:
Timestamp:
06/20/15 00:05:17 (10 years ago)
Author:
epyon
Message:
  • code compiles cleanly on maximum warning level
File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/lib/gl.cc

    r395 r406  
    8282        if ( gl_library_loaded && !force_reload ) return true;
    8383#if defined( NV_SDL_GL )
    84 #               define NV_GL_LOAD( symbol ) *(void **) (&symbol) = SDL_GL_GetProcAddress(#symbol);
    85 #               define NV_GL_LOAD_EXT( symbol ) *(void **) (&symbol) = SDL_GL_GetProcAddress(#symbol);
    86         *(void **) (&gl_ext_loader) = SDL_GL_GetProcAddress;
     84#               define NV_GL_LOAD( symbol ) void_assign( symbol, SDL_GL_GetProcAddress(#symbol) );
     85#               define NV_GL_LOAD_EXT( symbol ) void_assign( symbol, SDL_GL_GetProcAddress(#symbol) );
     86        void_assign( gl_ext_loader, SDL_GL_GetProcAddress );
    8787#else
    8888        if ( !gl_library.is_open() ) gl_library.open( path );
    8989
    9090#       if NV_PLATFORM == NV_WINDOWS
    91 #               define NV_GL_LOAD( symbol ) *(void **) (&symbol) = gl_library.get(#symbol);
    92                 *(void **) (&gl_ext_loader) = gl_library.get("wglGetProcAddress");
    93 #               define NV_GL_LOAD_EXT( symbol ) *(void **) (&symbol) = gl_ext_loader(#symbol);
     91#               define NV_GL_LOAD( symbol ) void_assign( symbol, gl_library.get(#symbol) );
     92                void_assign( gl_ext_loader, gl_library.get( "wglGetProcAddress" ) );
     93#               define NV_GL_LOAD_EXT( symbol ) void_assign( symbol, gl_ext_loader(#symbol) );
    9494#       elif (NV_PLATFORM == NV_LINUX || NV_PLATFORM == NV_APPLE)
    95 #               define NV_GL_LOAD( symbol ) *(void **) (&symbol) = gl_library.get(#symbol);
    96                 *(void **) (&gl_ext_loader) = gl_library.get("glXGetProcAddress");
    97 #               define NV_GL_LOAD_EXT( symbol ) *(void **) (&symbol) = gl_ext_loader(#symbol);
     95#               define NV_GL_LOAD( symbol ) void_assign( symbol, gl_library.get(#symbol) );
     96                void_assign( gl_ext_loader, gl_library.get("glXGetProcAddress") );
     97#               define NV_GL_LOAD_EXT( symbol ) void_assign( symbol, gl_ext_loader(#symbol) );
    9898#       else
    99 #               define NV_GL_LOAD( symbol ) *(void **) (&symbol) = gl_library.get(#symbol);
    100 #               define NV_GL_LOAD_EXT( symbol ) *(void **) (&symbol) = gl_library.get(#symbol);
     99#               define NV_GL_LOAD( symbol ) void_assign( symbol, gl_library.get(#symbol) );
     100#               define NV_GL_LOAD_EXT( symbol ) void_assign( symbol, gl_library.get(#symbol) );
    101101#       endif
    102102#endif
     
    114114}
    115115
     116
     117
    116118bool nv::load_wgl_library( const char* path /*= NV_GL_PATH */, bool force_reload )
    117119{
     
    119121#if NV_PLATFORM == NV_WINDOWS
    120122#if defined( NV_SDL_GL )
    121 #               define NV_GL_LOAD( symbol ) *(void **) (&symbol) = SDL_GL_GetProcAddress(#symbol);
    122 #               define NV_GL_LOAD_EXT( symbol ) *(void **) (&symbol) = SDL_GL_GetProcAddress(#symbol);
    123 #           define NV_GL_LOAD_REN( fname, rname )  *(void **) (&rname) = SDL_GL_GetProcAddress(#fname);
    124         (void **) (&gl_ext_loader) = SDL_GL_GetProcAddress;
     123#               define NV_GL_LOAD( symbol ) void_assign( symbol, SDL_GL_GetProcAddress(#symbol) );
     124#               define NV_GL_LOAD_EXT( symbol ) void_assign( symbol, SDL_GL_GetProcAddress(#symbol) );
     125#           define NV_GL_LOAD_REN( fname, rname )  void_assign( rname, SDL_GL_GetProcAddress(#fname) );
     126        void_assign( gl_ext_loader, SDL_GL_GetProcAddress );
    125127#else //
    126128        if ( !gl_library.is_open() ) gl_library.open( path );
    127129
    128         *(void **) (&gl_ext_loader) = gl_library.get("wglGetProcAddress");
    129 #define NV_GL_LOAD( symbol ) *(void **) (&symbol) = gl_library.get(#symbol);
    130 #define NV_GL_LOAD_EXT( symbol ) *(void **) (&symbol) = gl_ext_loader(#symbol);
    131 #define NV_GL_LOAD_REN( fname, rname ) *(void **) (&rname) = gl_library.get(#fname);
     130        void_assign( gl_ext_loader, gl_library.get("wglGetProcAddress") );
     131#define NV_GL_LOAD( symbol ) void_assign( symbol, gl_library.get(#symbol) );
     132#define NV_GL_LOAD_EXT( symbol ) void_assign( symbol, gl_ext_loader(#symbol) );
     133#define NV_GL_LOAD_REN( fname, rname ) void_assign( rname, gl_library.get(#fname) );
    132134#endif
    133135#       define NV_GL_FUN( rtype, fname, fparams ) NV_GL_LOAD( fname )
     
    161163        BOOL  (NV_GL_APIENTRY *wgl_deletecontext) (HGLRC)      = nullptr;
    162164
    163         *(void **) &wgl_createcontext = gl_library.get("wglCreateContext");
    164         *(void **) &wgl_makecurrent   = gl_library.get("wglMakeCurrent");
    165         *(void **) &wgl_deletecontext = gl_library.get("wglDeleteContext");
     165        void_assign( wgl_createcontext, gl_library.get("wglCreateContext") );
     166        void_assign( wgl_makecurrent,   gl_library.get("wglMakeCurrent") );
     167        void_assign( wgl_deletecontext, gl_library.get("wglDeleteContext") );
    166168
    167169        WNDCLASS wndClass;
     
    175177        wndClass.hIcon = LoadIcon(NULL, IDI_APPLICATION);
    176178        wndClass.hInstance = hInstance;
    177         wndClass.lpfnWndProc = (WNDPROC) DefWindowProc;
     179        wndClass.lpfnWndProc = reinterpret_cast<WNDPROC>( DefWindowProc );
    178180        wndClass.lpszClassName = TEXT("Dummy67789");
    179181        wndClass.lpszMenuName = 0;
     
    253255
    254256#       define NV_GL_FUN_EXT( rtype, symbol, fparams ) \
    255         *(void **) (&symbol) = load_gl_ext_symbol(#symbol, true, nullptr); \
     257        void_assign( symbol, load_gl_ext_symbol(#symbol, true, nullptr) ); \
    256258        count++; if ( !symbol ) fail_count++;
    257259
     
    266268        default : {
    267269                NV_LOG_ERROR( "load_gl_extension - unknown extension \"", name, "\"!" );
    268                 return nullptr;
     270                return false;
    269271        }
    270272        }
     
    274276        {
    275277                NV_LOG_NOTICE( "load_gl_extension - extension \"", name, "\" loaded (", count, " symbols)" );
    276                 gl_loaded_extensions = (gl_extensions)( gl_loaded_extensions | (unsigned)extension );
     278                gl_loaded_extensions = gl_extensions( gl_loaded_extensions | static_cast<unsigned>( extension ) );
    277279                return false;
    278280        }
Note: See TracChangeset for help on using the changeset viewer.