- Timestamp:
- 05/16/15 17:40:16 (10 years ago)
- Location:
- trunk
- Files:
-
- 1 added
- 27 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk
-
Property
svn:global-ignores
set to
vs2012
vs2013
gmake
gmake-clang
-
Property
svn:global-ignores
set to
-
trunk/nv/core/array2d.hh
r327 r365 320 320 if ( dest_start_x + min(size_x, source.m_size.x - source_start_x) > m_size.x || dest_start_y + min(size_y, source.m_size.y - source_start_y) > m_size.y ) 321 321 { 322 NV_LOG ( LOG_WARNING,"set_sub_array: Source area does not fit in the destination area. Data will be truncated." );322 NV_LOG_WARNING( "set_sub_array: Source area does not fit in the destination area. Data will be truncated." ); 323 323 } 324 324 -
trunk/nv/core/common.hh
r357 r365 130 130 #include <cstdint> 131 131 #include <cassert> 132 #include <nv/core/logging.hh>132 //#include <nv/core/logging.hh> 133 133 134 134 #define NV_STRINGIZE_DETAIL(x) #x … … 146 146 #define NV_ASSERT(cond, msg) assert( (cond) && msg ) 147 147 #define NV_THROW(eobj, ...) { \ 148 NV_LOG ( nv::LOG_ERROR,__FILE__ " line " NV_STRINGIZE(__LINE__) " - exception thrown - " #eobj ); \148 NV_LOG_ERROR( __FILE__ " line " NV_STRINGIZE(__LINE__) " - exception thrown - " #eobj ); \ 149 149 throw eobj( __VA_ARGS__ ); \ 150 150 } -
trunk/nv/core/logger.hh
r319 r365 16 16 #include <nv/core/string.hh> 17 17 #include <nv/core/logging.hh> 18 #include <iosfwd>19 #include <list>20 18 21 19 namespace nv … … 35 33 * @param message message to be logged. 36 34 */ 37 virtual void log( log_level level, const st d::string& message ) = 0;35 virtual void log( log_level level, const string_ref& message ) = 0; 38 36 /** 39 37 * Optional timestamp string 40 38 */ 41 const char*timestamp() const;39 string_ref timestamp() const; 42 40 /** 43 41 * Log level name (unpadded) 44 42 */ 45 const char*level_name( log_level level ) const;43 string_ref level_name( log_level level ) const; 46 44 /** 47 45 * Log level name (padded) 48 46 */ 49 const char*padded_level_name( log_level level ) const;47 string_ref padded_level_name( log_level level ) const; 50 48 /** 51 49 * Enforcement of virtual destructor. … … 86 84 * @param message message to be logged. 87 85 */ 88 virtual void log( log_level level, const st d::string& message );86 virtual void log( log_level level, const string_ref& message ); 89 87 90 88 /** … … 118 116 119 117 protected: 120 /** Type for the log sink list. */ 121 typedef std::list< std::pair< log_level, log_sink* > > log_sink_list; 118 struct log_sink_info 119 { 120 log_sink* sink; 121 uint32 level; 122 log_sink_info() : sink( nullptr ), level(0) {} 123 }; 122 124 123 125 /** Log sink list. */ 124 log_sink_ list m_log_sinks;126 log_sink_info m_log_sinks[16]; 125 127 }; 126 128 … … 140 142 * Logging function. 141 143 */ 142 virtual void log( log_level level, const st d::string& message );144 virtual void log( log_level level, const string_ref& message ); 143 145 144 146 private: … … 148 150 149 151 /** 150 * General streamsink.151 152 * Logs to passed stream.153 154 class log_ stream_sink : public log_sink152 * General handle sink. 153 * 154 * Logs to passed handle. 155 */ 156 class log_handle_sink : public log_sink 155 157 { 156 158 public: … … 161 163 * Flushing can be controlled by optional flush parameter. 162 164 * 163 * @param s tream streamto be logged to.165 * @param sys_handle system dependent handle to be logged to. 164 166 * @param flush_always if set to false, wont flush after each line. 165 167 */ 166 log_stream_sink( std::ostream* stream, bool flush_always ) 167 : m_stream(stream), m_flush(flush_always) {} 168 169 /** 170 * Logging function. 171 */ 172 virtual void log( log_level level, const std::string& message ); 168 log_handle_sink( void* sys_handle, bool flush_always ) 169 : m_handle( sys_handle ), m_flush( flush_always ) 170 { 171 } 172 173 /** 174 * Logging function. 175 */ 176 virtual void log( log_level level, const string_ref& message ); 173 177 174 178 protected: 175 /** Stored stream. */176 std::ostream* m_stream;179 /** Stored handle. */ 180 void* m_handle; 177 181 /** Controls flushing. */ 178 182 bool m_flush; … … 181 185 /** 182 186 * File logger sink. 183 * 184 * Logs to std::out -- be sure a console window is open, or std::out redirected! 185 */ 186 class log_file_sink : public log_stream_sink 187 { 188 public: 189 /** 190 * Constructor. 191 * 192 * Logs to the file passed. File is closed and disposed of after ending. 193 * File is not appended, it's overwritten. If file is not creatable, 194 * the constructor will throw! 195 * 196 * @param file_name file to be logged to. 197 * @param flush_always if set to false, wont flush after each line. 198 * @throws runtime_error if file_name cannot be opened. 199 */ 200 log_file_sink( const std::string file_name, bool flush_always = true ); 201 202 /** 203 * Destructor. 204 * 205 * Flushes, closes file and disposes of the stream. 206 */ 187 */ 188 class log_file_sink : public log_handle_sink 189 { 190 public: 191 /** 192 * Constructor. 193 * 194 * Logs to the file passed. File is closed and disposed of after ending. 195 * File is not appended, it's overwritten. If file is not createable, 196 * the constructor will throw! 197 * 198 * @param file_name file to be logged to. 199 * @param flush_always if set to false, wont flush after each line. 200 */ 201 log_file_sink( const string_ref& file_name, bool flush_always = true ); 202 203 /** 204 * Destructor. 205 * 206 * Flushes, closes file and disposes of the stream. 207 */ 207 208 virtual ~log_file_sink(); 208 209 }; -
trunk/nv/core/logging.hh
r319 r365 15 15 16 16 #include <nv/core/common.hh> 17 #include <nv/core/string.hh> 17 18 #include <nv/core/singleton.hh> 18 #include <string>19 19 #include <sstream> 20 21 #include <nv/core/profiler.hh> 22 23 20 24 21 25 namespace nv … … 38 42 { 39 43 public: 44 logger_base() 45 { 46 m_pos = m_message; 47 } 40 48 unsigned int get_level() 41 49 { … … 46 54 m_level = level; 47 55 } 48 virtual void log( log_level level, const std::string& message ) = 0; 56 virtual void log( log_level level, const string_ref& message ) = 0; 57 void log_append( string_ref ref ) 58 { 59 memcpy( m_pos, ref.data(), ref.size() ); 60 m_pos += ref.size(); 61 } 62 void log_append( uint32 u ) 63 { 64 m_pos += uint32_to_buffer( u, m_pos ); 65 } 66 void log_append( sint32 s ) 67 { 68 m_pos += sint32_to_buffer( s, m_pos ); 69 } 70 void log_append( f32 f ) 71 { 72 m_pos += f32_to_buffer( f, m_pos ); 73 } 74 void log( log_level level ) 75 { 76 *m_pos = '\0'; 77 log( level, string_ref( m_message, (size_t) ( m_pos - m_message ) ) ); 78 m_pos = m_message; 79 } 80 static bool can_log( log_level level ) 81 { 82 return logger_base::is_valid() && (unsigned int)reference().get_level() >= (unsigned int)level; 83 } 49 84 virtual ~logger_base() {} 50 85 protected: 86 char m_message[256]; 87 char* m_pos; 51 88 unsigned int m_level; 52 89 }; 53 90 91 namespace detail 92 { 93 inline void streamer( std::stringstream& ) 94 { 95 // noop; 96 } 97 98 template < typename T, typename... Args > 99 inline void streamer( std::stringstream& ss, T&& t, Args&&... args ) 100 { 101 ss << t; 102 streamer( ss, std::forward<Args>(args)... ); 103 } 104 inline void logger( log_level level, logger_base& base ) 105 { 106 base.log( level ); 107 } 108 109 template < typename T, typename... Args > 110 inline void logger( log_level level, logger_base& base, T&& t, Args&&... args ) 111 { 112 base.log_append( t ); 113 logger( level, base, std::forward<Args>( args )... ); 114 } 115 } 116 54 117 } // namespace nv 55 118 56 #define NV_LOG(level, message_stream) \ 57 if ( nv::logger_base::is_valid() && \ 58 (unsigned int)nv::logger_base::reference().get_level() >= (unsigned int)level ) \ 119 #define NV_LOG_STREAM(level, message_stream) \ 120 if ( nv::logger_base::can_log(level) ) \ 59 121 { \ 60 122 std::stringstream ss; \ 61 ss << message_stream; 62 nv::logger_base::reference().log( level, s s.str() ); \123 ss << message_stream;\ 124 nv::logger_base::reference().log( level, string_ref( ss.str() ) ); \ 63 125 } 64 126 127 #define NV_LOG(level, ...) \ 128 if ( nv::logger_base::can_log(level) ) \ 129 { \ 130 NV_PROFILE( "logging" );\ 131 nv::detail::logger( level, nv::logger_base::reference(), __VA_ARGS__ ); \ 132 } 133 65 134 #if NV_DEBUG == 1 66 #define NV_DEBUG_LOG(level, message_stream) \ 67 if ( nv::logger_base::is_valid() && \ 68 (unsigned int)nv::logger_base::reference().get_level() >= (unsigned int)level ) \ 135 #define NV_DEBUG_LOG(level, ...) \ 136 if ( nv::logger_base::can_log(level) ) \ 69 137 { \ 70 std::stringstream ss; \ 71 ss << message_stream; \ 72 nv::logger_base::reference().log( level, ss.str() ); \ 138 nv::detail::logger( level, nv::logger_base::reference(), __VA_ARGS__ ); \ 73 139 } 74 140 #else 75 #define NV_DEBUG_LOG(level, message_stream)141 #define NV_DEBUG_LOG(level, ...) 76 142 #endif 77 143 144 #define NV_LOG_FATAL(...) NV_LOG( nv::LOG_FATAL, __VA_ARGS__ ) 145 #define NV_LOG_CRITICAL(...) NV_LOG( nv::LOG_CRITICAL, __VA_ARGS__ ) 146 #define NV_LOG_ERROR(...) NV_LOG( nv::LOG_ERROR, __VA_ARGS__ ) 147 #define NV_LOG_WARNING(...) NV_LOG( nv::LOG_WARNING, __VA_ARGS__ ) 148 #define NV_LOG_NOTICE(...) NV_LOG( nv::LOG_NOTICE, __VA_ARGS__ ) 149 #define NV_LOG_INFO(...) NV_LOG( nv::LOG_INFO, __VA_ARGS__ ) 150 #define NV_LOG_DEBUG(...) NV_LOG( nv::LOG_DEBUG, __VA_ARGS__ ) 151 #define NV_LOG_TRACE(...) NV_LOG( nv::LOG_TRACE, __VA_ARGS__ ) 152 78 153 #endif // NV_CORE_LOGGING_HH -
trunk/nv/core/string.hh
r364 r365 33 33 using std::string; 34 34 35 36 35 37 /** 36 38 * Utility function for converting any value to string. … … 49 51 if ( stream.fail() ) 50 52 { 51 NV_THROW( runtime_error, "bad cast" );53 // NV_THROW( runtime_error, "bad cast" ); 52 54 } 53 55 … … 79 81 if ( value.fail() ) 80 82 { 81 NV_THROW( runtime_error, "bad cast" );83 // NV_THROW( runtime_error, "bad cast" ); 82 84 } 83 85 } … … 98 100 if ( value.fail() ) 99 101 { 100 NV_THROW( runtime_error, "bad cast" );102 // NV_THROW( runtime_error, "bad cast" ); 101 103 } 102 104 return vout; … … 130 132 { 131 133 std::ifstream input(filename); 132 if ( !input.is_open() ) NV_THROW( std::runtime_error, "File "+filename+" not found!");134 // if ( !input.is_open() ) NV_THROW( std::runtime_error, "File "+filename+" not found!"); 133 135 std::stringstream sstr; 134 136 while(input >> sstr.rdbuf()); … … 328 330 } 329 331 330 inline NV_CONSTEXPR char front() const { return m_data[0]; }331 inline NV_CONSTEXPR char back() const { return m_data[m_size - 1]; }332 inline NV_CONSTEXPR char front() const { return m_data[0]; } 333 inline NV_CONSTEXPR char back() const { return m_data[m_size - 1]; } 332 334 inline NV_CONSTEXPR const char* data() const { return m_data; } 333 335 … … 472 474 // Non-literal constructors 473 475 template< typename U, typename std::enable_if<std::is_same<U, const char*>::value>::type* = nullptr > 476 inline string_ref( U str ) : string_base( str, std::strlen( str ) ) {} 477 478 // Non-literal constructors 479 template< typename U, typename std::enable_if<std::is_same<U, char*>::value>::type* = nullptr > 474 480 inline string_ref( U str ) : string_base( str, std::strlen( str ) ) {} 475 481 … … 625 631 #undef NV_STRING_REF_CAST_OPERATORS 626 632 633 size_t sint32_to_buffer( sint32 n, char* str ); 634 size_t sint64_to_buffer( sint64 n, char* str ); 635 size_t uint32_to_buffer( uint32 n, char* str ); 636 size_t uint64_to_buffer( uint64 n, char* str ); 637 size_t f32_to_buffer( f32 n, char* str ); 638 size_t f64_to_buffer( f64 n, char* str ); 639 627 640 628 641 } -
trunk/nv/lib/assimp.hh
r319 r365 78 78 inline void assimp_log_callback( const char* message, char* ) 79 79 { 80 NV_LOG ( LOG_DEBUG,rtrimmed( message ) );80 NV_LOG_DEBUG( rtrimmed( message ) ); 81 81 } 82 82 -
trunk/src/core/io_event.cc
r338 r365 46 46 void nv::log_event( const io_event& e ) 47 47 { 48 NV_LOG ( LOG_INFO, "Event: " <<get_io_event_name( e.type ) );48 NV_LOG_INFO( "Event: ", get_io_event_name( e.type ) ); 49 49 } 50 50 -
trunk/src/core/library.cc
r319 r365 71 71 return true; 72 72 } 73 NV_LOG ( LOG_NOTICE, "library : loading '" + m_name +"'..." );73 NV_LOG_NOTICE( "library : loading '", m_name, "'..." ); 74 74 75 75 string name = m_name; … … 86 86 if ( m_handle == NULL ) 87 87 { 88 NV_LOG ( LOG_NOTICE, "library : '" + name +"' failed to open." );88 NV_LOG_NOTICE( "library : '", name, "' failed to open." ); 89 89 return false; 90 90 } 91 NV_LOG ( LOG_NOTICE, "library : '" + name +"' loaded." );91 NV_LOG_NOTICE( "library : '", name, "' loaded." ); 92 92 return true; 93 93 } … … 117 117 if ( NV_LIB_CLOSE( (NV_LIB_HANDLE)m_handle ) ) 118 118 { 119 NV_LOG ( LOG_ERROR, "library : can't close library '" + m_name +"'!" );119 NV_LOG_ERROR( "library : can't close library '", m_name, "'!" ); 120 120 } 121 121 m_handle = NULL; -
trunk/src/core/logger.cc
r319 r365 6 6 7 7 #include "nv/core/common.hh" 8 #include <iostream> 9 #include <utility> 10 #include <algorithm> 11 #include <fstream> 12 #include <ctime> 8 #include "nv/core/time.hh" 13 9 #include <cstdio> 14 #include "nv/core/exception.hh"15 10 #if NV_PLATFORM == NV_WINDOWS 16 11 #define WIN32_LEAN_AND_MEAN … … 89 84 90 85 // log function 91 void logger::log( log_level level, const std::string& message ) 92 { 93 // get the iterator to the beginning of the log_sink list 94 log_sink_list::reverse_iterator it = m_log_sinks.rbegin(); 95 96 // iterate 97 while ( it != m_log_sinks.rend() ) 98 { 99 // if we have a log sink with high enough level... 100 if ( it->first >= level ) 86 void logger::log( log_level level, const string_ref& message ) 87 { 88 for ( auto& sink_info : m_log_sinks ) 89 { 90 if ( sink_info.sink && (sink_info.level >= (uint32)level) ) 101 91 { 102 92 // log and iterate 103 it->second->log( level, message );93 sink_info.sink->log( level, message ); 104 94 } 105 else 95 } 96 } 97 98 // add a new sink 99 void logger::add_sink( log_sink* sink, int level ) 100 { 101 // add a sink 102 for ( auto& sink_info : m_log_sinks ) 103 { 104 if ( sink_info.sink == nullptr ) 106 105 { 107 // otherwise return, the list is sorted by log level 106 sink_info.sink = sink; 107 sink_info.level = (uint32)level; 108 108 return; 109 109 } 110 ++it; 111 } 112 } 113 114 // add a new sink 115 void logger::add_sink( log_sink* sink, int level ) 116 { 117 // add a sink 118 m_log_sinks.push_back( std::make_pair( log_level(level), sink ) ); 119 // and sort the list (default sort of pairs is by first element) 120 m_log_sinks.sort(); 110 } 111 NV_ASSERT( false, "ran out of log sink space!" ); 121 112 } 122 113 … … 124 115 bool logger::remove_sink( log_sink* sink ) 125 116 { 126 // get the iterator to the beginning of the log_sink list 127 log_sink_list::iterator it = m_log_sinks.begin(); 128 129 // iterate 130 while ( it != m_log_sinks.end() ) 131 { 132 // found? 133 if ( it->second == sink ) 117 for ( auto& sink_info : m_log_sinks ) 118 { 119 if ( sink_info.sink == sink ) 134 120 { 135 // erase and return true to report success136 m_log_sinks.erase(it);121 delete sink_info.sink; 122 sink_info.sink = nullptr; 137 123 return true; 138 124 } 139 ++it; 140 } 141 125 } 142 126 // not found, return false 143 127 return false; … … 147 131 logger::~logger() 148 132 { 149 // while we have sinks 150 while ( !m_log_sinks.empty() ) 151 { 152 // delete the last one 153 delete m_log_sinks.back().second; 154 // and pop it 155 m_log_sinks.pop_back(); 133 // delete all sinks 134 for ( auto& sink_info : m_log_sinks ) 135 { 136 delete sink_info.sink; 156 137 } 157 138 } … … 159 140 160 141 // console logging 161 void log_console_sink::log( log_level level, const std::string& message ) 162 { 163 if (m_color) 164 { 165 #if NV_PLATFORM == NV_WINDOWS 166 SetConsoleTextAttribute( m_handle, FOREGROUND_INTENSITY ); 167 std::cout << timestamp() << " ["; 168 SetConsoleTextAttribute( m_handle, log_color[ (level) / 10 ] ); 169 std::cout << NV_LOG_LEVEL_NAME_PAD(level); 170 SetConsoleTextAttribute( m_handle, FOREGROUND_INTENSITY ); 171 std::cout << "] "; 172 SetConsoleTextAttribute( m_handle, FOREGROUND_INTENSITY | FOREGROUND_RED | FOREGROUND_GREEN | FOREGROUND_BLUE ); 173 std::cout << message << std::endl; 174 #else 175 std::cout << "\33[30;1m" << timestamp() << " [" << log_color[ (level) / 10 ] << NV_LOG_LEVEL_NAME_PAD(level) << "\33[30;1m] \33[37;1m" << message << std::endl; 176 #endif 177 } 142 void log_console_sink::log( log_level level, const string_ref& message ) 143 { 144 #if NV_PLATFORM == NV_WINDOWS 145 if ( m_color ) SetConsoleTextAttribute( m_handle, FOREGROUND_INTENSITY ); 146 string_ref stamp( timestamp() ); 147 WriteConsole( m_handle, stamp.data(), stamp.size(), nullptr, nullptr ); 148 WriteConsole( m_handle, " [", 2, nullptr, nullptr ); 149 if (m_color) SetConsoleTextAttribute( m_handle, log_color[( level ) / 10] ); 150 WriteConsole( m_handle, NV_LOG_LEVEL_NAME_PAD( level ), 8, nullptr, nullptr ); 151 if ( m_color ) SetConsoleTextAttribute( m_handle, FOREGROUND_INTENSITY ); 152 WriteConsole( m_handle, "] ", 2, nullptr, nullptr ); 153 if ( m_color ) SetConsoleTextAttribute( m_handle, FOREGROUND_INTENSITY | FOREGROUND_RED | FOREGROUND_GREEN | FOREGROUND_BLUE ); 154 WriteConsole( m_handle, message.data(), message.size(), nullptr, nullptr ); 155 WriteConsole( m_handle, "\n", 1, nullptr, nullptr ); 156 #else 157 if ( m_color ) fwrite( "\33[30;1m", 7, 1, stdout ); 158 fwrite( stamp.data(), stamp.size(), 1, stdout ); 159 fwrite( " [", 2, 1, stdout ); 160 if ( m_color ) 161 { 162 const char* lcolor = log_color[( level ) / 10]; 163 fwrite( lcolor, strlen(lcolor), 1, stdout ); 164 } 165 fwrite( NV_LOG_LEVEL_NAME_PAD( level ), 8, 1, stdout ); 166 if ( m_color ) 167 fwrite( "\33[30;1m] \33[37;1m", 16, 1, stdout ); 178 168 else 179 { 180 std::cout << timestamp() << " [" << NV_LOG_LEVEL_NAME_PAD(level) << "] " << message << std::endl; 181 } 182 } 183 184 // stream logging 185 void log_stream_sink::log( log_level level, const std::string& message ) 186 { 187 // if flushing is enabled 188 if ( m_flush ) 189 { 190 // write and flush using std::endl 191 *m_stream << timestamp() << " [" << NV_LOG_LEVEL_NAME(level) << "] " << message << std::endl; 192 } 193 else 194 { 195 // write and end with "\n" (no flush) 196 *m_stream << timestamp() << " [" << NV_LOG_LEVEL_NAME(level) << "] " << message << "\n"; 197 } 198 } 199 200 // file logging 201 log_file_sink::log_file_sink( const std::string file_name, bool flush_always /*= true */ ) 202 : log_stream_sink( nullptr, flush_always ) 203 { 204 // create the stream manually 205 std::ofstream* fstream = new std::ofstream( file_name ); 206 207 // check if it's open 208 if ( !fstream->is_open() ) 209 { 210 // throw if not open 211 NV_THROW( runtime_error, "Could not open file \""+file_name+"\" for logging!" ); 212 } 213 214 m_stream = fstream; 215 } 216 217 // file logger destructor 218 log_file_sink::~log_file_sink() 219 { 220 // close the file 221 dynamic_cast< std::ofstream* >(m_stream)->close(); 222 // dispose of the stream 223 delete m_stream; 224 } 169 fwrite( "] ", 2, 1, stdout ); 170 fwrite( stamp.data(), stamp.size(), 1, stdout ); 171 fwrite( "\n", 1, 1, stdout ); 172 #endif 173 } 174 175 // handle logging 176 void log_handle_sink::log( log_level level, const string_ref& message ) 177 { 178 string_ref stamp( timestamp() ); 179 #if 0 // NV_PLATFORM == NV_WINDOWS 180 // Turns out WriteFile on Windows is unbuffered and quite slower than fwrite 181 // due to this fact -- especially UNUSABLE with manual FlushFileBuffers 182 // If we want to get rid of C runtime, this would need a buffered I/O layer. 183 DWORD unused = 0; 184 WriteFile( m_handle, stamp.data(), stamp.size(), &unused, nullptr ); 185 WriteFile( m_handle, " [", 2, &unused, nullptr ); 186 WriteFile( m_handle, NV_LOG_LEVEL_NAME_PAD( level ), 8, &unused, nullptr ); 187 WriteFile( m_handle, "] ", 2, &unused, nullptr ); 188 WriteFile( m_handle, message.data(), message.size(), &unused, nullptr ); 189 WriteFile( m_handle, "\n", 1, &unused, nullptr ); 190 //if ( m_flush ) FlushFileBuffers( m_handle ); 191 #else 192 fwrite( stamp.data(), stamp.size(), 1, (FILE*)m_handle ); 193 fwrite( " [", 2, 1, (FILE*)m_handle ); 194 fwrite( NV_LOG_LEVEL_NAME_PAD( level ), 8, 1, (FILE*)m_handle ); 195 fwrite( "] ", 2, 1, (FILE*)m_handle ); 196 fwrite( message.data(), message.size(), 1, (FILE*)m_handle ); 197 fwrite( "\n", 1, 1, (FILE*)m_handle ); 198 if ( m_flush ) fflush( (FILE*)m_handle ); 199 #endif 200 } 201 202 nv::log_file_sink::log_file_sink( const string_ref& file_name, bool flush_always /*= true */ ) 203 : log_handle_sink( nullptr, flush_always ) 204 { 205 #if 0 // NV_PLATFORM == NV_WINDOWS 206 // See comments in log_handle_sink 207 HANDLE handle = CreateFile( file_name.data(), GENERIC_WRITE, 0, nullptr, CREATE_ALWAYS, FILE_ATTRIBUTE_NORMAL, nullptr ); 208 if ( INVALID_HANDLE_VALUE == handle ) 209 { 210 NV_ASSERT( false, "invalid log handle" ); 211 } 212 m_handle = handle; 213 #else 214 m_handle = fopen( file_name.data(), "w" ); 215 #endif 216 } 217 218 nv::log_file_sink::~log_file_sink() 219 { 220 #if 0 // NV_PLATFORM == NV_WINDOWS 221 // See comments in log_handle_sink 222 CloseHandle( m_handle ); 223 #else 224 fclose( (FILE*) m_handle ); 225 #endif 226 } 227 225 228 226 229 nv::log_console_sink::log_console_sink( bool coloring ) … … 234 237 } 235 238 236 const char*nv::log_sink::timestamp() const237 { 238 std::clock_t time = std::clock();239 unsigned int secs = (unsigned int)( time / CLOCKS_PER_SEC);240 unsigned int mm = (unsigned int)( time*100 / CLOCKS_PER_SEC) % 100;239 string_ref nv::log_sink::timestamp() const 240 { 241 uint32 ms = get_system_ms(); 242 unsigned int secs = (unsigned int)(ms / 1000); 243 unsigned int mm = (unsigned int)( ms * 100 / 1000 ) % 100; 241 244 unsigned int h = (unsigned int)(secs / (60*60)); 242 245 unsigned int m = (unsigned int)(secs / 60) % 60; 243 246 unsigned int s = secs % 60; 244 static char buffer[1 28];245 #if NV_PLATFORM == NV_WINDOWS 246 sprintf_s( buffer, 1 28, "%02d:%02d:%02d.%02d", h, m, s, mm );247 #else 248 s printf( buffer, "%02d:%02d:%02d.%02d", h, m, s, mm );247 static char buffer[16]; 248 #if NV_PLATFORM == NV_WINDOWS 249 sprintf_s( buffer, 16, "%02d:%02d:%02d.%02d", h, m, s, mm ); 250 #else 251 snprintf( buffer, 16, "%02d:%02d:%02d.%02d", h, m, s, mm ); 249 252 #endif 250 253 buffer[11] = '\0'; 251 return buffer;252 } 253 254 const char*nv::log_sink::level_name( log_level level ) const254 return string_ref( buffer, 10 ); 255 } 256 257 string_ref nv::log_sink::level_name( log_level level ) const 255 258 { 256 259 return NV_LOG_LEVEL_NAME( level ); 257 260 } 258 261 259 const char* nv::log_sink::padded_level_name( log_level level ) const 260 { 261 return NV_LOG_LEVEL_NAME_PAD( level ); 262 } 262 string_ref nv::log_sink::padded_level_name( log_level level ) const 263 { 264 return string_ref( NV_LOG_LEVEL_NAME_PAD( level ), 8 ); 265 } 266 -
trunk/src/core/profiler.cc
r319 r365 8 8 #include <ios> 9 9 #include "nv/core/time.hh" 10 #include "nv/core/logging.hh" 10 11 11 12 using namespace nv; … … 97 98 } 98 99 99 100 100 void profiler::log_report() 101 101 { 102 102 m_root->stop(); 103 NV_LOG ( LOG_INFO,"-- PROFILER REPORT -----------------------------------------" );104 NV_LOG ( LOG_INFO, std::left << std::setw(24) << "TAG"103 NV_LOG_INFO( "-- PROFILER REPORT -----------------------------------------" ); 104 NV_LOG_STREAM( LOG_INFO, std::left << std::setw(24) << "TAG" 105 105 << std::setw(7) << "%PARNT" 106 106 << std::setw(7) << "CALLS" … … 108 108 << std::setw(10) << "AVG(ms)" ); 109 109 log_node_children( "", m_root ); 110 NV_LOG ( LOG_INFO,"-- PROFILER REPORT END -------------------------------------" );110 NV_LOG_INFO( "-- PROFILER REPORT END -------------------------------------" ); 111 111 m_root->start(); 112 112 } … … 119 119 if ( c->m_calls > 0 ) 120 120 { 121 NV_LOG ( LOG_INFO, std::left << std::setw(24) << ind + c->m_tag121 NV_LOG_STREAM( LOG_INFO, std::left << std::setw(24) << ind + c->m_tag 122 122 << std::setw(7) << std::setprecision(2) << std::fixed << ( (double)c->m_total_time_us / (double)c->m_parent->m_total_time_us ) * 100.0 123 123 << std::setw(7) << c->m_calls -
trunk/src/engine/particle_engine.cc
r361 r365 303 303 if ( id == "" ) 304 304 { 305 NV_LOG ( LOG_ERROR,"Bad table passed to particle_engine!" )305 NV_LOG_ERROR( "Bad table passed to particle_engine!" ) 306 306 } 307 307 // TODO : overwrite check … … 325 325 else 326 326 { 327 NV_LOG ( LOG_ERROR, "Unknown orientation type! (" << orientation <<")!" );327 NV_LOG_ERROR( "Unknown orientation type! (", orientation, ")!" ); 328 328 data.orientation = particle_orientation::POINT; 329 329 } … … 341 341 else 342 342 { 343 NV_LOG ( LOG_ERROR, "Unknown particle origin! (" << origin <<")!" );343 NV_LOG_ERROR( "Unknown particle origin! (", origin, ")!" ); 344 344 data.origin = particle_origin::CENTER; 345 345 } … … 368 368 { 369 369 edata.emmiter_func = nv_particle_emmiter_point; 370 NV_LOG ( LOG_WARNING, "Unknown emmiter type in particle system! (" << sub_type <<")" );370 NV_LOG_WARNING( "Unknown emmiter type in particle system! (", sub_type, ")" ); 371 371 } 372 372 … … 417 417 else 418 418 { 419 NV_LOG ( LOG_ERROR, "Too many emmiters (" << MAX_PARTICLE_EMMITERS <<" is MAX)!" );419 NV_LOG_ERROR( "Too many emmiters (", MAX_PARTICLE_EMMITERS, " is MAX)!" ); 420 420 } 421 421 } … … 433 433 { 434 434 data.affector_count--; 435 NV_LOG ( LOG_WARNING, "Bad data passed to " << sub_type <<" affector in particle system!" );435 NV_LOG_WARNING( "Bad data passed to ", sub_type, " affector in particle system!" ); 436 436 } 437 437 } … … 439 439 { 440 440 data.affector_count--; 441 NV_LOG ( LOG_WARNING, "Unknown affector type in particle system! (" << sub_type <<")" );441 NV_LOG_WARNING( "Unknown affector type in particle system! (", sub_type, ")" ); 442 442 } 443 443 } 444 444 else 445 445 { 446 NV_LOG ( LOG_ERROR, "Too many affectors (" << MAX_PARTICLE_AFFECTORS <<" is MAX)!" );446 NV_LOG_ERROR( "Too many affectors (", MAX_PARTICLE_AFFECTORS, " is MAX)!" ); 447 447 } 448 448 } 449 449 else 450 450 { 451 NV_LOG ( LOG_WARNING, "Unknown element in particle system! (" << type <<")" );451 NV_LOG_WARNING( "Unknown element in particle system! (", type, ")" ); 452 452 } 453 453 } -
trunk/src/engine/program_manager.cc
r361 r365 7 7 #include "nv/engine/program_manager.hh" 8 8 #include "nv/core/range.hh" 9 #include "nv/core/logging.hh" 9 10 #include "nv/lua/lua_nova.hh" 11 10 12 11 13 nv::program_manager::program_manager( context* a_context ) : m_context( a_context ) … … 17 19 nv::resource_id nv::program_manager::load_resource( lua::table_guard& table ) 18 20 { 19 NV_LOG ( LOG_DEBUG,table.get_string("id") );21 NV_LOG_DEBUG( table.get_string("id") ); 20 22 std::string vsource; 21 23 std::string fsource; -
trunk/src/fmod/fmod_audio.cc
r330 r365 24 24 if ( result != FMOD_OK ) 25 25 { 26 NV_LOG ( LOG_CRITICAL, "Failed to create FMOD System -- " <<FMOD_ErrorString( result ) );26 NV_LOG_CRITICAL( "Failed to create FMOD System -- ", FMOD_ErrorString( result ) ); 27 27 return; 28 28 } … … 30 30 if ( result != FMOD_OK ) 31 31 { 32 NV_LOG ( LOG_ERROR, "Failed to initialize FMOD System -- " <<FMOD_ErrorString( result ) );32 NV_LOG_ERROR( "Failed to initialize FMOD System -- ", FMOD_ErrorString( result ) ); 33 33 return; 34 34 } … … 47 47 if ( result != FMOD_OK ) 48 48 { 49 NV_LOG ( LOG_WARNING, "FMOD failed to play sound -- " <<FMOD_ErrorString( result ) );49 NV_LOG_WARNING( "FMOD failed to play sound -- ", FMOD_ErrorString( result ) ); 50 50 } 51 51 else … … 70 70 if ( result != FMOD_OK ) 71 71 { 72 NV_LOG ( LOG_WARNING, "FMOD failed to play sound -- " <<FMOD_ErrorString( result ) );72 NV_LOG_WARNING( "FMOD failed to play sound -- ", FMOD_ErrorString( result ) ); 73 73 } 74 74 else … … 95 95 if ( fm_result != FMOD_OK ) 96 96 { 97 NV_LOG ( LOG_ERROR, "FMOD failed to load sample '" << a_path << "' -- " <<FMOD_ErrorString( fm_result ) );97 NV_LOG_ERROR( "FMOD failed to load sample '", a_path, "' -- ", FMOD_ErrorString( fm_result ) ); 98 98 return sound(); 99 99 } -
trunk/src/formats/assimp_loader.cc
r332 r365 89 89 m_scene = nullptr; 90 90 m_mesh_count = 0; 91 NV_LOG ( nv::LOG_NOTICE,"AssImp loading file..." );91 NV_LOG_NOTICE( "AssImp loading file..." ); 92 92 size_t size = source.size(); 93 93 char* data = new char[ size ]; … … 97 97 if( !scene) 98 98 { 99 NV_LOG ( nv::LOG_ERROR,aiGetErrorString() );99 NV_LOG_ERROR( aiGetErrorString() ); 100 100 return false; 101 101 } 102 102 m_scene = scene; 103 103 m_mesh_count = scene->mNumMeshes; 104 NV_LOG ( nv::LOG_NOTICE,"Loading successfull" );104 NV_LOG_NOTICE( "Loading successfull" ); 105 105 return true; 106 106 } … … 213 213 if ( scene == nullptr ) return; 214 214 215 NV_LOG ( nv::LOG_NOTICE,"------------------------" );216 NV_LOG ( nv::LOG_NOTICE, "Texture count - " <<scene->mNumTextures );217 NV_LOG ( nv::LOG_NOTICE, "Animation count - " <<scene->mNumAnimations );218 NV_LOG ( nv::LOG_NOTICE, "Material count - " <<scene->mNumMaterials );219 NV_LOG ( nv::LOG_NOTICE, "Meshes count - " <<scene->mNumMeshes );220 NV_LOG ( nv::LOG_NOTICE,"------------------------" );215 NV_LOG_NOTICE( "------------------------" ); 216 NV_LOG_NOTICE( "Texture count - ", scene->mNumTextures ); 217 NV_LOG_NOTICE( "Animation count - ", scene->mNumAnimations ); 218 NV_LOG_NOTICE( "Material count - ", scene->mNumMaterials ); 219 NV_LOG_NOTICE( "Meshes count - ", scene->mNumMeshes ); 220 NV_LOG_NOTICE( "------------------------" ); 221 221 222 222 aiNode* root = scene->mRootNode; 223 223 if (root) 224 224 { 225 NV_LOG ( nv::LOG_NOTICE, "Root node - " <<root->mName.data );226 NV_LOG ( nv::LOG_NOTICE, " meshes - " <<root->mNumMeshes );227 NV_LOG ( nv::LOG_NOTICE, " children - " <<root->mNumChildren );225 NV_LOG_NOTICE( "Root node - ", root->mName.data ); 226 NV_LOG_NOTICE( " meshes - ", root->mNumMeshes ); 227 NV_LOG_NOTICE( " children - ", root->mNumChildren ); 228 228 } 229 229 else 230 230 { 231 NV_LOG ( nv::LOG_NOTICE,"No root node!" );232 } 233 NV_LOG ( nv::LOG_NOTICE,"------------------------" );231 NV_LOG_NOTICE( "No root node!" ); 232 } 233 NV_LOG_NOTICE( "------------------------" ); 234 234 235 235 if ( scene->mNumMeshes > 0 ) … … 239 239 aiMesh* mesh = scene->mMeshes[mc]; 240 240 241 NV_LOG ( nv::LOG_NOTICE, "Mesh #"<<mc<<" - " <<std::string( mesh->mName.data ) );242 NV_LOG ( nv::LOG_NOTICE, " bones - " <<mesh->mNumBones );243 NV_LOG ( nv::LOG_NOTICE, " uvs - " <<mesh->mNumUVComponents[0] );244 NV_LOG ( nv::LOG_NOTICE, " verts - " <<mesh->mNumVertices );245 NV_LOG ( nv::LOG_NOTICE, " faces - " <<mesh->mNumFaces );246 247 // NV_LOG ( nv::LOG_NOTICE,"Bones:" );241 NV_LOG_NOTICE( "Mesh #", mc, " - ", std::string( mesh->mName.data ) ); 242 NV_LOG_NOTICE( " bones - ", mesh->mNumBones ); 243 NV_LOG_NOTICE( " uvs - ", mesh->mNumUVComponents[0] ); 244 NV_LOG_NOTICE( " verts - ", mesh->mNumVertices ); 245 NV_LOG_NOTICE( " faces - ", mesh->mNumFaces ); 246 247 // NV_LOG_NOTICE( "Bones:" ); 248 248 // for (unsigned int m=0; m<mesh->mNumBones; m++) 249 249 // { 250 250 // aiBone* bone = mesh->mBones[m]; 251 // NV_LOG ( nv::LOG_DEBUG,bone->mName.C_Str() );251 // NV_LOG_NOTICE( bone->mName.C_Str() ); 252 252 // } 253 253 } … … 255 255 else 256 256 { 257 NV_LOG ( nv::LOG_NOTICE,"No meshes!" );258 } 259 NV_LOG ( nv::LOG_NOTICE,"------------------------" );257 NV_LOG_NOTICE( "No meshes!" ); 258 } 259 NV_LOG_NOTICE( "------------------------" ); 260 260 261 261 … … 270 270 // { 271 271 // texFound = scene->mMaterials[m]->GetTexture(aiTextureType_DIFFUSE, texIndex, &path); 272 // NV_LOG ( nv::LOG_NOTICE, " material - " <<path.data );272 // NV_LOG_NOTICE( " material - ", path.data ); 273 273 // texIndex++; 274 274 // } … … 277 277 // else 278 278 // { 279 // NV_LOG ( nv::LOG_NOTICE,"No materials" );279 // NV_LOG_NOTICE( "No materials" ); 280 280 // } 281 // NV_LOG ( nv::LOG_NOTICE,"------------------------" );281 // NV_LOG_NOTICE( "------------------------" ); 282 282 283 283 } -
trunk/src/formats/md2_loader.cc
r319 r365 155 155 } 156 156 157 NV_LOG ( LOG_INFO, "num_skins = " <<md2->header.num_skins );158 NV_LOG ( LOG_INFO, "num_vertices = " <<md2->header.num_vertices );159 NV_LOG ( LOG_INFO, "num_st = " <<md2->header.num_st );160 NV_LOG ( LOG_INFO, "num_tris = " <<md2->header.num_tris );161 NV_LOG ( LOG_INFO, "num_frames = " <<md2->header.num_frames );157 NV_LOG_INFO( "num_skins = ", md2->header.num_skins ); 158 NV_LOG_INFO( "num_vertices = ", md2->header.num_vertices ); 159 NV_LOG_INFO( "num_st = ", md2->header.num_st ); 160 NV_LOG_INFO( "num_tris = ", md2->header.num_tris ); 161 NV_LOG_INFO( "num_frames = ", md2->header.num_frames ); 162 162 163 163 … … 295 295 } 296 296 297 NV_LOG ( LOG_INFO, "New vertex count = " <<m_new_vindexes.size() );298 NV_LOG ( LOG_INFO, "Collisions = " <<stats_collision );299 NV_LOG ( LOG_INFO, "Reuse count = " <<stats_reuse );297 NV_LOG_INFO( "New vertex count = ", m_new_vindexes.size() ); 298 NV_LOG_INFO( "Collisions = ", stats_collision ); 299 NV_LOG_INFO( "Reuse count = ", stats_reuse ); 300 300 } 301 301 … … 335 335 { 336 336 const md2_frame_t& cframe = md2->frames[current_frame]; 337 NV_LOG ( LOG_INFO, "FrameID = " <<cframe.name );337 NV_LOG_INFO( "FrameID = ", cframe.name ); 338 338 339 339 vec3 scale = md2_vec3( cframe.scale ); -
trunk/src/gfx/texture_font.cc
r319 r365 9 9 #include <stdexcept> 10 10 #include "nv/lib/freetype2.hh" 11 #include "nv/core/logging.hh" 11 12 12 13 using namespace nv; -
trunk/src/gl/gl_context.cc
r364 r365 8 8 #include "nv/lib/gl.hh" 9 9 #include "nv/gl/gl_device.hh" 10 #include "nv/core/logger.hh" 10 11 11 12 using namespace nv; … … 168 169 switch ( result ) 169 170 { 170 case GL_FRAMEBUFFER_INCOMPLETE_ATTACHMENT : NV_LOG ( LOG_ERROR,"gl_context::check : Framebuffer incomplete attachment!" ); break;171 case GL_FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT : NV_LOG ( LOG_ERROR,"gl_context::check : Framebuffer missing attachment!" ); break;172 case GL_FRAMEBUFFER_INCOMPLETE_DIMENSIONS : NV_LOG ( LOG_ERROR,"gl_context::check : Framebuffer incomplete dimensions!" ); break;173 case GL_FRAMEBUFFER_INCOMPLETE_FORMATS : NV_LOG ( LOG_ERROR,"gl_context::check : Framebuffer incomplete formats!" ); break;174 case GL_FRAMEBUFFER_INCOMPLETE_DRAW_BUFFER : NV_LOG ( LOG_ERROR,"gl_context::check : Framebuffer incomplete draw buffer!" ); break;175 case GL_FRAMEBUFFER_INCOMPLETE_READ_BUFFER : NV_LOG ( LOG_ERROR,"gl_context::check : Framebuffer incomplete read buffer!" ); break;176 case GL_FRAMEBUFFER_UNSUPPORTED : NV_LOG ( LOG_ERROR,"gl_context::check : Framebuffer format combination unsupported!" ); break;177 default : NV_LOG( LOG_ERROR, "gl_context::check : Unknown Framebuffer error! (" << result <<")" ); break;171 case GL_FRAMEBUFFER_INCOMPLETE_ATTACHMENT : NV_LOG_ERROR( "gl_context::check : Framebuffer incomplete attachment!" ); break; 172 case GL_FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT : NV_LOG_ERROR( "gl_context::check : Framebuffer missing attachment!" ); break; 173 case GL_FRAMEBUFFER_INCOMPLETE_DIMENSIONS : NV_LOG_ERROR( "gl_context::check : Framebuffer incomplete dimensions!" ); break; 174 case GL_FRAMEBUFFER_INCOMPLETE_FORMATS : NV_LOG_ERROR( "gl_context::check : Framebuffer incomplete formats!" ); break; 175 case GL_FRAMEBUFFER_INCOMPLETE_DRAW_BUFFER : NV_LOG_ERROR( "gl_context::check : Framebuffer incomplete draw buffer!" ); break; 176 case GL_FRAMEBUFFER_INCOMPLETE_READ_BUFFER : NV_LOG_ERROR( "gl_context::check : Framebuffer incomplete read buffer!" ); break; 177 case GL_FRAMEBUFFER_UNSUPPORTED : NV_LOG_ERROR( "gl_context::check : Framebuffer format combination unsupported!" ); break; 178 default: NV_LOG_ERROR( "gl_context::check : Unknown Framebuffer error! (", result, ")" ); break; 178 179 } 179 180 } 180 181 else 181 182 { 182 NV_LOG ( LOG_ERROR,"gl_context::check : Framebuffer extensions not loaded!" );183 NV_LOG_ERROR( "gl_context::check : Framebuffer extensions not loaded!" ); 183 184 } 184 185 return false; -
trunk/src/gl/gl_device.cc
r364 r365 41 41 if (!image) 42 42 { 43 NV_LOG ( LOG_ERROR, "Image file " << filename <<" not found!" );43 NV_LOG_ERROR( "Image file ", filename, " not found!" ); 44 44 return nullptr; 45 45 } … … 59 59 if ( !image ) 60 60 { 61 NV_LOG ( LOG_ERROR,"Image binary data cannot be loaded found!" );61 NV_LOG_ERROR( "Image binary data cannot be loaded found!" ); 62 62 return nullptr; 63 63 } … … 228 228 if ( fatal ) 229 229 { 230 NV_LOG ( LOG_ERROR, "Uniform '" << name <<"' not found in program!" );230 NV_LOG_ERROR( "Uniform '", name, "' not found in program!" ); 231 231 NV_THROW( runtime_error, ( "Uniform '"+name+"' not found!" ) ); 232 232 } … … 247 247 if ( fatal ) 248 248 { 249 NV_LOG ( LOG_ERROR, "Attribute '" << name <<"' not found in program!" );250 NV_THROW( runtime_error, ( "Attribute '"+ name+"' not found!" ) );249 NV_LOG_ERROR( "Attribute '", name, "' not found in program!" ); 250 NV_THROW( runtime_error, ( "Attribute '"+ name + "' not found!" ) ); 251 251 } 252 252 } … … 279 279 glGetProgramInfoLog( p->glid, buffer_size, &length, buffer ); 280 280 281 NV_LOG ( LOG_INFO, "Program #" << p->glid <<(status == GL_FALSE ? " failed to compile!" : " compiled successfully.") );281 NV_LOG_INFO( "Program #", p->glid, (status == GL_FALSE ? " failed to compile!" : " compiled successfully.") ); 282 282 283 283 if ( length > 0 ) 284 284 { 285 NV_LOG ( LOG_INFO, "Program #" << p->glid << " log: " <<buffer );285 NV_LOG_INFO( "Program #", p->glid, " log: ", buffer ); 286 286 } 287 287 … … 297 297 { 298 298 glGetProgramInfoLog( p->glid, buffer_size, &length, buffer ); 299 NV_LOG ( LOG_ERROR, "Program #" << p->glid << " validation error : " <<buffer );299 NV_LOG_ERROR( "Program #", p->glid, " validation error : ", buffer ); 300 300 return false; 301 301 } … … 418 418 if ( compile_ok == 0 ) 419 419 { 420 NV_LOG ( LOG_ERROR, "Shader #" << glid << " error: " <<buffer );420 NV_LOG_ERROR( "Shader #", glid, " error: ", buffer ); 421 421 } 422 422 else 423 423 { 424 NV_LOG ( LOG_INFO, "Shader #" << glid << " compiled successfully: " <<buffer );424 NV_LOG_INFO( "Shader #", glid, " compiled successfully: ", buffer ); 425 425 } 426 426 } 427 427 else 428 428 { 429 NV_LOG ( LOG_INFO, "Shader #" << glid <<" compiled successfully." );429 NV_LOG_INFO( "Shader #", glid, " compiled successfully." ); 430 430 } 431 431 return compile_ok != 0; -
trunk/src/gui/gui_ascii_renderer.cc
r364 r365 6 6 7 7 #include "nv/gui/gui_ascii_renderer.hh" 8 9 #include "nv/core/logging.hh" 8 10 9 11 using namespace nv; … … 115 117 // TODO: FIX 116 118 int fix_me; 117 NV_LOG ( nv::LOG_DEBUG,"on_hover_change" );119 NV_LOG_DEBUG( "on_hover_change" ); 118 120 e->m_flags[DIRTY] = true; 119 121 } … … 123 125 // TODO: FIX 124 126 int fix_me; 125 NV_LOG ( nv::LOG_DEBUG,"on_select_change" );127 NV_LOG_DEBUG( "on_select_change" ); 126 128 e->m_flags[DIRTY] = true; 127 129 } -
trunk/src/gui/gui_gfx_renderer.cc
r364 r365 143 143 , m_reupload( true ) 144 144 { 145 NV_LOG ( LOG_TRACE,"Creating GUI renderer..." );145 NV_LOG_TRACE( "Creating GUI renderer..." ); 146 146 m_context = w->get_context(); 147 147 m_area.dim( dimension( w->get_width(), w->get_height() ) ); … … 154 154 delete[] wfill; 155 155 156 NV_LOG ( LOG_TRACE,"Creating render data..." );156 NV_LOG_TRACE( "Creating render data..." ); 157 157 screen_render_data* sr = new screen_render_data( w->get_context(), 1024 ); 158 158 m_render_data = sr; … … 174 174 m_render_state.blending.src_alpha_factor = blending::SRC_ALPHA; 175 175 m_render_state.blending.dst_alpha_factor = blending::ONE_MINUS_SRC_ALPHA; 176 NV_LOG ( LOG_TRACE,"GUI Renderer created" );176 NV_LOG_TRACE( "GUI Renderer created" ); 177 177 } 178 178 … … 347 347 // TODO: FIX 348 348 int fix_me; 349 NV_LOG ( nv::LOG_DEBUG,"on_hover_change" );349 NV_LOG_DEBUG( "on_hover_change" ); 350 350 e->m_flags[DIRTY] = true; 351 351 } … … 355 355 // TODO: FIX 356 356 int fix_me; 357 NV_LOG ( nv::LOG_DEBUG,"on_select_change" );357 NV_LOG_DEBUG( "on_select_change" ); 358 358 e->m_flags[DIRTY] = true; 359 359 } -
trunk/src/lib/gl.cc
r331 r365 7 7 #include "nv/core/common.hh" 8 8 #include "nv/core/range.hh" 9 #include "nv/core/logging.hh" 9 10 #include "nv/lib/gl.hh" 10 11 … … 58 59 { 59 60 void* result = gl_ext_loader( name ); 60 NV_LOG( ( result ? nv::LOG_DEBUG : fail_level ), "load_gl_ext_symbol : " << name <<( result ? " succeded." : "failed." ) );61 NV_LOG( ( result ? nv::LOG_DEBUG : fail_level ), "load_gl_ext_symbol : ", name, ( result ? " succeded." : "failed." ) ); 61 62 return result; 62 63 } … … 237 238 if ( !gl_library.is_open() ) 238 239 { 239 NV_LOG ( nv::LOG_ERROR,"load_gl_extension used, while gl_library was closed!" );240 NV_LOG_ERROR( "load_gl_extension used, while gl_library was closed!" ); 240 241 return false; 241 242 } … … 243 244 if ( gl_ext_loader == nullptr ) 244 245 { 245 NV_LOG ( nv::LOG_ERROR,"load_gl_extension used, while gl_ext_loader was undefined!" );246 NV_LOG_ERROR( "load_gl_extension used, while gl_ext_loader was undefined!" ); 246 247 return false; 247 248 } 248 NV_LOG ( nv::LOG_DEBUG, "load_gl_extension - loading extension - \"" << name <<"\"..." );249 NV_LOG_DEBUG( "load_gl_extension - loading extension - \"", name, "\"..." ); 249 250 250 251 uint32 count = 0; … … 264 265 } break; 265 266 default : { 266 NV_LOG ( nv::LOG_ERROR, "load_gl_extension - unknown extension \"" << name <<"\"!" );267 NV_LOG_ERROR( "load_gl_extension - unknown extension \"", name, "\"!" ); 267 268 return nullptr; 268 269 } … … 272 273 if ( fail_count == 0 ) 273 274 { 274 NV_LOG ( nv::LOG_NOTICE, "load_gl_extension - extension \"" << name << "\" loaded (" << count <<" symbols)" );275 NV_LOG_NOTICE( "load_gl_extension - extension \"", name, "\" loaded (", count, " symbols)" ); 275 276 gl_loaded_extensions = (gl_extensions)( gl_loaded_extensions | (unsigned)extension ); 276 277 return false; 277 278 } 278 NV_LOG ( nv::LOG_NOTICE, "load_gl_extension - failed to load extension \"" << name << "\" (" << count << "/" << fail_count <<" symbols loaded)" );279 NV_LOG_NOTICE( "load_gl_extension - failed to load extension \"", name, "\" (", count, "/", fail_count, " symbols loaded)" ); 279 280 return true; 280 281 } -
trunk/src/lua/lua_handle.cc
r364 r365 7 7 #include "nv/lua/lua_handle.hh" 8 8 9 #include "nv/core/logging.hh" 9 10 #include "nv/lua/lua_state.hh" 10 11 #include "nv/lua/lua_raw.hh" … … 18 19 if ( !lua_istable( L, -1 ) ) 19 20 { 20 NV_LOG ( nv::LOG_ERROR,"NIL" );21 NV_LOG_ERROR( "NIL" ); 21 22 lua_pop( L, 2 ); 22 23 lua_pushnil( L ); -
trunk/src/lua/lua_state.cc
r361 r365 111 111 if ( !p.resolve( m_state, global ) ) 112 112 { 113 NV_LOG ( LOG_ERROR, "Lua error : not a valid path - " +p.to_string() );113 NV_LOG_ERROR( "Lua error : not a valid path - ", p.to_string() ); 114 114 return false; 115 115 } … … 118 118 { 119 119 lua_pop( m_state, 1 ); 120 NV_LOG ( LOG_ERROR, "Lua error : not a valid function - " +p.to_string() );120 NV_LOG_ERROR( "Lua error : not a valid function - ", p.to_string() ); 121 121 return false; 122 122 } … … 129 129 if ( status != 0 ) 130 130 { 131 NV_LOG ( LOG_ERROR, "Lua error : " <<lua_tostring( m_state, -1 ) );131 NV_LOG_ERROR( "Lua error : ", lua_tostring( m_state, -1 ) ); 132 132 lua_pop( m_state, 1 ); 133 133 } … … 144 144 if ( !p.resolve( m_state, global ) || lua_type(m_state, -1) != LUA_TTABLE ) 145 145 { 146 NV_LOG ( LOG_ERROR,"Could not resolve table!" );146 NV_LOG_ERROR( "Could not resolve table!" ); 147 147 // TODO : error handling 148 148 } … … 156 156 if ( !p.resolve( m_state, false ) || lua_type(m_state, -1) != LUA_TTABLE ) 157 157 { 158 NV_LOG ( LOG_ERROR,"Could not resolve table!" );158 NV_LOG_ERROR( "Could not resolve table!" ); 159 159 // TODO : error handling 160 160 } … … 347 347 } 348 348 349 NV_LOG ( nv::LOG_TRACE,"Lua state created" );349 NV_LOG_TRACE( "Lua state created" ); 350 350 } 351 351 352 352 int lua::state::load_string( string_ref code, string_ref name ) 353 353 { 354 NV_LOG ( nv::LOG_TRACE, "Loading Lua string '" << name <<"'");354 NV_LOG_TRACE( "Loading Lua string '", name, "'"); 355 355 return luaL_loadbuffer( m_state, code.data(), code.length(), name.data() ); 356 356 } … … 358 358 int lua::state::load_stream( std::istream& stream, string_ref name ) 359 359 { 360 NV_LOG ( nv::LOG_NOTICE, "Loading Lua stream '" << name <<"'");360 NV_LOG_NOTICE( "Loading Lua stream '", name, "'"); 361 361 return load_string( std::string( 362 362 (std::istreambuf_iterator<char>(stream)), … … 366 366 int lua::state::load_file( string_ref filename ) 367 367 { 368 NV_LOG ( nv::LOG_NOTICE, "Loading Lua file '" << filename <<"'");368 NV_LOG_NOTICE( "Loading Lua file '", filename, "'"); 369 369 return luaL_loadfile( m_state, filename.data() ); 370 370 } … … 376 376 if (result) 377 377 { 378 NV_LOG ( nv::LOG_WARNING, "Failed to load string " << name << ": " <<lua_tostring(m_state, -1));378 NV_LOG_WARNING( "Failed to load string ", name, ": ", lua_tostring(m_state, -1)); 379 379 return false; 380 380 } … … 388 388 if (result) 389 389 { 390 NV_LOG ( nv::LOG_WARNING, "Failed to open stream " << name << ": " << lua_tostring(m_state, -1));390 NV_LOG_WARNING( "Failed to open stream ", name, ": ", lua_tostring( m_state, -1 ) ); 391 391 return false; 392 392 } … … 400 400 if (result) 401 401 { 402 NV_LOG ( nv::LOG_WARNING, "Failed to open file " << filename << ": " << lua_tostring(m_state, -1));402 NV_LOG_WARNING( "Failed to open file ", filename, ": ", lua_tostring( m_state, -1 ) ); 403 403 return false; 404 404 } … … 411 411 if (result) 412 412 { 413 NV_LOG ( nv::LOG_WARNING, "Failed to run script " << name << ": " << lua_tostring(m_state, -1));413 NV_LOG_WARNING( "Failed to run script ", name, ": ", lua_tostring( m_state, -1 ) ); 414 414 lua_pop( m_state, 1 ); 415 415 } … … 425 425 { 426 426 int top = lua_gettop(m_state); 427 NV_LOG ( LOG_DEBUG, "Stack dump (" << top <<")");427 NV_LOG_DEBUG( "Stack dump (", top, ")"); 428 428 for ( int i = 0; i < top; ++i ) 429 429 { 430 NV_LOG ( LOG_DEBUG, "#" << i+1 << " - " << lua_typename(m_state, lua_type(m_state, i+1) ) << " = " <<nlua_typecontent(m_state, i+1) );430 NV_LOG_DEBUG( "#", i+1, " - ", lua_typename(m_state, lua_type(m_state, i+1) ), " = ", nlua_typecontent(m_state, i+1) ); 431 431 } 432 432 } -
trunk/src/sdl/sdl_audio.cc
r330 r365 21 21 if ( SDL_Init( SDL_INIT_AUDIO ) == -1 ) 22 22 { 23 NV_LOG ( LOG_CRITICAL, "SDL_AUDIO failed to load -- " <<SDL_GetError() );23 NV_LOG_CRITICAL( "SDL_AUDIO failed to load -- ", SDL_GetError() ); 24 24 return; 25 25 } … … 27 27 if( Mix_OpenAudio( 44100, MIX_DEFAULT_FORMAT, 2, 1024 ) == -1 ) 28 28 { 29 NV_LOG ( LOG_CRITICAL, "SDL_mixer failed to load -- " <<Mix_GetError() );29 NV_LOG_CRITICAL( "SDL_mixer failed to load -- ", Mix_GetError() ); 30 30 return; 31 31 } … … 40 40 if ( channel == -1 ) 41 41 { 42 NV_LOG ( LOG_WARNING, "SDL_mixer failed to play -- " <<Mix_GetError() );42 NV_LOG_WARNING( "SDL_mixer failed to play -- ", Mix_GetError() ); 43 43 } 44 44 else … … 67 67 if ( channel == -1 ) 68 68 { 69 NV_LOG ( LOG_WARNING, "SDL_mixer failed to play -- " <<Mix_GetError() );69 NV_LOG_WARNING( "SDL_mixer failed to play -- ", Mix_GetError() ); 70 70 } 71 71 else … … 91 91 if ( Mix_LoadWAV_RW == nullptr || SDL_RWFromFile == nullptr ) 92 92 { 93 NV_LOG ( LOG_ERROR,"SDL_mixer not loaded!" );93 NV_LOG_ERROR( "SDL_mixer not loaded!" ); 94 94 } 95 95 Mix_Chunk *sample = Mix_LoadWAV_RW(SDL_RWFromFile(a_path.c_str(), "rb"), 1); 96 96 if ( sample == nullptr ) 97 97 { 98 NV_LOG ( LOG_ERROR, "SDL_mixer failed to load sample '" << a_path << "' -- " <<Mix_GetError() );98 NV_LOG_ERROR( "SDL_mixer failed to load sample '", a_path, "' -- ", Mix_GetError() ); 99 99 return sound(); 100 100 } -
trunk/src/sdl/sdl_window.cc
r343 r365 38 38 if ( m_handle == 0 ) 39 39 { 40 NV_LOG ( LOG_CRITICAL, "Video mode set failed: " <<SDL_GetError( ) );40 NV_LOG_CRITICAL( "Video mode set failed: ", SDL_GetError( ) ); 41 41 return; // TODO: Error report 42 42 } … … 56 56 if ( ctx_handle == 0 ) 57 57 { 58 NV_LOG ( LOG_CRITICAL, "GL Context creation failed: " <<SDL_GetError( ) );58 NV_LOG_CRITICAL( "GL Context creation failed: ", SDL_GetError( ) ); 59 59 return; // TODO: Error report 60 60 } 61 61 62 62 nv::load_gl_library(); 63 NV_LOG ( LOG_INFO, "OpenGL Vendor : " <<glGetString(GL_VENDOR) );64 NV_LOG ( LOG_INFO, "OpenGL Renderer : " << glGetString(GL_RENDERER) );65 NV_LOG ( LOG_INFO, "OpenGL Version : " << glGetString(GL_VERSION) );66 NV_LOG ( LOG_INFO, "OpenGL GLSL Version : " << glGetString(GL_SHADING_LANGUAGE_VERSION) );63 NV_LOG_INFO( "OpenGL Vendor : ", (const char*)glGetString(GL_VENDOR) ); 64 NV_LOG_INFO( "OpenGL Renderer : ", (const char*)glGetString( GL_RENDERER ) ); 65 NV_LOG_INFO( "OpenGL Version : ", (const char*)glGetString( GL_VERSION ) ); 66 NV_LOG_INFO( "OpenGL GLSL Version : ", (const char*)glGetString( GL_SHADING_LANGUAGE_VERSION ) ); 67 67 SDL_GL_SetSwapInterval(1); 68 68 -
trunk/src/sdl/sdl_window_manager.cc
r336 r365 19 19 if ( SDL_Init(0) < 0 ) 20 20 { 21 NV_LOG ( LOG_CRITICAL, "SDL initialization failed: " <<SDL_GetError( ) );21 NV_LOG_CRITICAL( "SDL initialization failed: ", SDL_GetError( ) ); 22 22 return; // TODO: Error report 23 23 }
Note: See TracChangeset
for help on using the changeset viewer.