Changeset 64
- Timestamp:
- 05/30/13 20:13:08 (12 years ago)
- Location:
- trunk
- Files:
-
- 2 added
- 10 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/nv/common.hh
r60 r64 10 10 #include <typeinfo> 11 11 #include <cstddef> 12 #include <cassert> 13 #include <nv/logging.hh> 12 14 13 15 // NV Library version … … 112 114 #endif 113 115 114 #include <cassert> 116 #define NV_STRINGIZE_DETAIL(x) #x 117 #define NV_STRINGIZE(x) NV_STRINGIZE_DETAIL(x) 118 115 119 #define NV_ASSERT(cond, msg) assert( (cond) && msg ) 120 #define NV_THROW(eobj, ...) { \ 121 NV_LOG( LOG_ERROR, __FILE__ " line " NV_STRINGIZE(__LINE__) " - exception thrown - " #eobj ); \ 122 throw eobj( __VA_ARGS__ ); \ 123 } 116 124 117 125 #if NV_COMPILER == NV_MSVC … … 122 130 { 123 131 class object; 132 class root; 133 class type_database; 134 class uid_store; 135 136 namespace lua 137 { 138 class state; 139 } 124 140 125 141 // Typedefs for fixed size types. … … 164 180 #if NV_DEBUG 165 181 T* p = dynamic_cast<T*>(x); 166 if (p == 0) throw std::bad_cast();182 if (p == 0) THROW( std::bad_cast, () ); 167 183 return p; 168 184 #else -
trunk/nv/interface/program.hh
r62 r64 127 127 } 128 128 NV_LOG( LOG_ERROR, "Attribute '" << name << "' not found in program!" ); 129 throw runtime_error( "Attribute '"+name+"' not found!");129 NV_THROW( runtime_error, ( "Attribute '"+name+"' not found!" ) ); 130 130 } 131 131 … … 148 148 } 149 149 NV_LOG( LOG_ERROR, "Uniform '" << name << "' not found in program!" ); 150 throw runtime_error( "Uniform '"+name+"' not found!");150 NV_THROW( runtime_error, ( "Uniform '"+name+"' not found!" ) ); 151 151 } 152 152 -
trunk/nv/logging.hh
r4 r64 14 14 #define NV_LOGGING_HH 15 15 16 #include <nv/common.hh>17 16 #include <nv/singleton.hh> 18 17 #include <sstream> -
trunk/nv/object.hh
r61 r64 12 12 namespace nv 13 13 { 14 class type_database;15 16 14 /** 17 15 * Implements a object tree-like structure. … … 36 34 * Object constructor 37 35 */ 38 object( stringaid, uid auid );36 object( root* aroot, const string& aid, uid auid ); 39 37 40 38 /** … … 154 152 155 153 protected: 154 root* m_root; ///< pointer to root 156 155 string m_id; ///< id type of the object 157 156 string m_name; ///< name of the object -
trunk/nv/string.hh
r8 r64 16 16 using std::string; 17 17 18 19 20 21 22 23 * @throw ore::runtime_error Throws ore::runtime_error on conversion fail24 25 26 27 28 29 30 18 /** 19 * Utility function for converting any value to string. 20 * 21 * @param value value to be converted, needs to have << operator 22 * to stream 23 * @throw runtime_error Throws runtime_error on conversion fail 24 * @return value converted to string 25 */ 26 template < class T > 27 string to_string( const T& value ) 28 { 29 std::stringstream stream; 30 stream << value; 31 31 32 33 34 throw runtime_error("bad cast" );35 32 if ( stream.fail() ) 33 { 34 NV_THROW( runtime_error, "bad cast" ); 35 } 36 36 37 38 37 return stream.str(); 38 } 39 39 40 41 42 43 44 45 46 47 40 /** 41 * Override function for special treatment of strings. Returns the 42 * value passed. 43 */ 44 inline string to_string( const string& value) 45 { 46 return value; 47 } 48 48 49 50 51 52 53 54 * @throw ore::runtime_error Throws ore::runtime_error on conversion fail55 56 57 58 59 60 49 /** 50 * Utility function for converting a string to the given type 51 * 52 * @param vin the string representing the value 53 * @param vout the value to be read. Must be streamable with >> 54 * @throw runtime_error Throws runtime_error on conversion fail 55 */ 56 template < class T > 57 void from_string( const string& vin, T& vout ) 58 { 59 std::istringstream value( vin ); 60 value >> vout; 61 61 62 63 64 throw runtime_error("bad cast" );65 66 62 if ( value.fail() ) 63 { 64 NV_THROW( runtime_error, "bad cast" ); 65 } 66 } 67 67 68 69 70 71 72 * @throw ore::runtime_error Throws ore::runtime_error on conversion fail73 68 /** 69 * Utility function for converting a string to the given type 70 * 71 * @param vin the string representing the value 72 * @throw runtime_error Throws runtime_error on conversion fail 73 */ 74 74 template < class T > 75 75 T string_cast( const string& vin ) … … 81 81 if ( value.fail() ) 82 82 { 83 throw runtime_error("bad cast" );83 NV_THROW( runtime_error, "bad cast" ); 84 84 } 85 85 return vout; … … 87 87 88 88 89 90 91 92 93 89 /** 90 * Override function for special treatment of strings. Returns the 91 * value passed. 92 */ 93 inline void from_string( const string& vin, string& vout ) 94 94 { 95 96 95 vout = vin; 96 } 97 97 98 98 /** 99 100 101 99 * Override function for special treatment of strings. Returns the 100 * value passed. 101 */ 102 102 template <> 103 103 inline std::string string_cast( const string& vin ) 104 104 { 105 105 return vin; 106 106 } 107 107 108 108 109 109 /** 110 111 110 * Simple function for slurping a file into a string. 111 */ 112 112 inline std::string slurp( const std::string& filename ) 113 113 { 114 114 std::ifstream input(filename); 115 if ( !input.is_open() ) throw std::runtime_error("File "+filename+" not found!");115 if ( !input.is_open() ) NV_THROW( std::runtime_error, "File "+filename+" not found!"); 116 116 std::stringstream sstr; 117 117 while(input >> sstr.rdbuf()); -
trunk/src/gl/gl_context.cc
r45 r64 49 49 if ( viewport.z < 0 || viewport.w < 0 ) 50 50 { 51 throw new logic_error("viewport width and height must be greater than zero!");51 NV_THROW( logic_error, "viewport width and height must be greater than zero!"); 52 52 } 53 53 … … 126 126 if ( scissor.dim.x < 0 || scissor.dim.y < 0 ) 127 127 { 128 throw new logic_error("scissor_test.rect width and height must be greater than zero!");128 NV_THROW( logic_error, "scissor_test.rect width and height must be greater than zero!" ); 129 129 } 130 130 … … 174 174 if ( range.near < 0.0 || range.near > 1.0 ) 175 175 { 176 throw new logic_error("render_state.depth_range.near must be between zero and one!");176 NV_THROW( logic_error, "render_state.depth_range.near must be between zero and one!"); 177 177 } 178 178 if ( range.far < 0.0 || range.far > 1.0 ) 179 179 { 180 throw new logic_error("render_state.depth_range.far must be between zero and one!");180 NV_THROW( logic_error, "render_state.depth_range.far must be between zero and one!"); 181 181 } 182 182 -
trunk/src/gl/texture_font.cc
r45 r64 44 44 45 45 error = FT_Init_FreeType( (FT_Library*)(&m_rlibrary) ); 46 if ( error ) throw std::runtime_error("FT_Error" );46 if ( error ) NV_THROW( std::runtime_error, "FT_Error" ); 47 47 48 48 error = FT_New_Face( (FT_Library)(m_rlibrary), filename, 0, (FT_Face*)(&m_rface) ); 49 if ( error ) throw std::runtime_error("FT_Error" );49 if ( error ) NV_THROW( std::runtime_error, "FT_Error" ); 50 50 51 51 error = FT_Set_Char_Size( (FT_Face)(m_rface), (int)(size*64), 0, 72*64, 72 ); 52 if ( error ) throw std::runtime_error("FT_Error" );52 if ( error ) NV_THROW( std::runtime_error, "FT_Error" ); 53 53 54 54 FT_Set_Transform( (FT_Face)(m_rface), &matrix, NULL ); … … 106 106 error_msg << "FT_Error while loading glyphs, error: " 107 107 << error << " code: " << c; 108 throw std::runtime_error(error_msg.str().c_str() );108 NV_THROW( std::runtime_error, error_msg.str().c_str() ); 109 109 } 110 110 … … 124 124 << "r.pos.x: " << r.pos.x << " code: " 125 125 << c; 126 throw std::runtime_error(error_msg.str().c_str() );126 NV_THROW( std::runtime_error, error_msg.str().c_str() ); 127 127 } 128 128 r.size.x -= 1; -
trunk/src/library.cc
r14 r64 75 75 if ( m_handle == NULL ) 76 76 { 77 throw library_error("Can't load library!", name );77 NV_THROW( library_error, "Can't load library!", name ); 78 78 } 79 79 NV_LOG( LOG_NOTICE, "library : '" + name + "' loaded." ); … … 85 85 if ( !result ) 86 86 { 87 throw library_error("Can't find symbol " + symbol + "!", m_name );87 NV_THROW( library_error, "Can't find symbol " + symbol + "!", m_name ); 88 88 } 89 89 return result; -
trunk/src/logger.cc
r48 r64 5 5 #include "nv/logger.hh" 6 6 7 #include "nv/common.hh" 7 8 #include <iostream> 8 9 #include <utility> … … 208 209 { 209 210 // throw if not open 210 throw runtime_error("Could not open file \""+file_name+"\" for logging!" );211 NV_THROW( runtime_error, "Could not open file \""+file_name+"\" for logging!" ); 211 212 } 212 213 -
trunk/src/object.cc
r57 r64 7 7 #include "nv/object.hh" 8 8 9 #include "nv/root.hh" 9 10 #include "nv/types.hh" 10 11 … … 12 13 13 14 object::object() 14 : m_ id(), m_name(), m_uid(0), m_lua_index(-2), m_parent( nullptr ), m_children(), m_child_count(0)15 : m_root( nullptr ), m_id(), m_name(), m_uid(0), m_lua_index(-2), m_parent( nullptr ), m_children(), m_child_count(0) 15 16 { 16 17 // m_uid = uid_store::get_free_uid(); … … 18 19 } 19 20 20 object::object( stringaid, uid auid )21 : m_ id(aid), m_name(), m_uid( auid ), m_lua_index(-2), m_parent( nullptr ), m_children(), m_child_count(0)21 object::object( root* aroot, const string& aid, uid auid ) 22 : m_root( aroot ), m_id(aid), m_name(), m_uid( auid ), m_lua_index(-2), m_parent( nullptr ), m_children(), m_child_count(0) 22 23 { 23 24 // uid_store::register_object( this, auid );
Note: See TracChangeset
for help on using the changeset viewer.