Changeset 435 for trunk/src


Ignore:
Timestamp:
07/22/15 21:00:30 (10 years ago)
Author:
epyon
Message:
  • short_string implementation - first usages
Location:
trunk/src
Files:
4 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/gui/gui_gfx_renderer.cc

    r433 r435  
    147147        size_t wsize = m_atlas.get_depth() * 4 * 4;
    148148        uint8* wfill = new uint8[m_atlas.get_depth() * 4 * 4];
    149         std::fill( wfill, wfill + wsize, 255 );
     149        raw_fill( wfill, wfill + wsize, 255 );
    150150        white.pos = ivec2();
    151151        m_atlas.set_region( white, wfill );
     
    189189nv::size_t gfx_renderer::load_font( const string_view& filename, nv::size_t size )
    190190{
    191         std::string id_name( filename.data(), filename.size() );
    192         char buffer[8]; size_t len = nv::sint32_to_buffer( sint32( size ), buffer );
    193         id_name.append( std::string( buffer, len ) );
    194         string_view id( id_name.c_str(), id_name.size() );
     191        string128 id( filename );
     192        id.append( size );
    195193        auto i = m_font_names.find( id );
    196194        if ( i != m_font_names.end() )
  • trunk/src/lua/lua_path.cc

    r399 r435  
    8888                {
    8989                        *current++ = '[';
    90                         current += uint32_to_buffer( e.value, current );
     90                        current += uint32_to_buffer( array_ref< char >( current, current - start ), e.value );
    9191                        *current++ = ']';
    9292                        dot = false;
  • trunk/src/lua/lua_raw.cc

    r406 r435  
    2626        default : break;
    2727        }
    28         char buffer[64];
     28        char buffer_data[64];
     29        nv::array_ref< char > buffer( buffer_data, 64 );
    2930        if ( type == LUA_TLIGHTUSERDATA || type == LUA_TUSERDATA )
    3031        {
    31                 size_t l = nv::uint64_to_buffer( nv::uint64( lua_touserdata( L, idx ) ), buffer );
    32                 return std::string( buffer, l );
     32                size_t l = nv::uint64_to_buffer( buffer, nv::uint64( lua_touserdata( L, idx ) ) );
     33                return std::string( buffer_data, l );
    3334        }
    3435        else if ( type == LUA_TNUMBER )
    3536        {
    36                 size_t l = nv::f64_to_buffer( lua_tonumber( L, idx ), buffer );
    37                 return std::string( buffer, l );
     37                size_t l = nv::f64_to_buffer( buffer, lua_tonumber( L, idx ) );
     38                return std::string( buffer_data, l );
    3839        }
    3940        return "UNKNOWN!";
  • trunk/src/stl/string.cc

    r402 r435  
    3737}
    3838
    39 nv::size_t nv::sint32_to_buffer( sint32 n, char* str )
    40 {
    41         char* s = str;
    42         uint32 abs = static_cast< uint32 >( n < 0 ? -n : n );
    43         do
    44         {
     39nv::size_t nv::sint32_to_buffer( array_ref< char > buffer, sint32 n )
     40{
     41        if ( buffer.size() < 2 ) return 0;
     42        char* last = buffer.end() - 1;
     43        char* s = buffer.begin();
     44        uint32 abs = static_cast<uint32>( n < 0 ? -n : n );
     45        do
     46        {
     47                if ( s == last ) { *buffer.begin() = '\0'; return 0;  }
    4548                *s++ = static_cast<char>( '0' + ( abs % 10 ) );
    4649                abs /= 10;
    4750        } while ( abs > 0 );
    48         if ( n < 0 ) *s++ = '-';
    49         *s = '\0';
    50         string_reverse( str, s - 1 );
    51         return static_cast<nv::size_t>( s - str );
    52 }
    53 
    54 nv::size_t nv::sint64_to_buffer( sint64 n, char* str )
    55 {
    56         char* s = str;
    57         uint64 abs = static_cast< uint64 >( n < 0 ? -n : n );
    58         do
    59         {
     51        if ( n < 0 )
     52        {
     53                if ( s == last ) { *buffer.begin() = '\0'; return 0; }
     54                *s++ = '-';
     55        }
     56        *s = '\0';
     57        string_reverse( buffer.begin(), s - 1 );
     58        return static_cast<nv::size_t>( s - buffer.begin() );
     59}
     60
     61nv::size_t nv::sint64_to_buffer( array_ref< char > buffer, sint64 n )
     62{
     63        if ( buffer.size() < 2 ) return 0;
     64        char* last = buffer.end() - 1;
     65        char* s = buffer.begin();
     66        uint64 abs = static_cast<uint64>( n < 0 ? -n : n );
     67        do
     68        {
     69                if ( s == last ) { *buffer.begin() = '\0'; return 0; }
    6070                *s++ = static_cast<char>( '0' + ( abs % 10 ) );
    6171                abs /= 10;
    6272        } while ( abs > 0 );
    63         if ( n < 0 ) *s++ = '-';
    64         *s = '\0';
    65         string_reverse( str, s - 1 );
    66         return static_cast<nv::size_t>( s - str );
    67 }
    68 
    69 nv::size_t nv::uint32_to_buffer( uint32 n, char* str )
    70 {
    71         char* s = str;
    72         do
    73         {
     73        if ( n < 0 )
     74        {
     75                if ( s == last ) { *buffer.begin() = '\0'; return 0; }
     76                *s++ = '-';
     77        }
     78        *s = '\0';
     79        string_reverse( buffer.begin(), s - 1 );
     80        return static_cast<nv::size_t>( s - buffer.begin() );
     81}
     82
     83nv::size_t nv::uint32_to_buffer( array_ref< char > buffer, uint32 n )
     84{
     85        if ( buffer.size() < 2 ) return 0;
     86        char* last = buffer.end() - 1;
     87        char* s = buffer.begin();
     88        do
     89        {
     90                if ( s == last ) { *buffer.begin() = '\0'; return 0; }
    7491                *s++ = static_cast<char>( '0' + ( n % 10 ) );
    7592                n /= 10;
    7693        } while ( n > 0 );
    7794        *s = '\0';
    78         string_reverse( str, s - 1 );
    79         return static_cast<nv::size_t>( s - str );
    80 }
    81 
    82 nv::size_t nv::uint64_to_buffer( uint64 n, char* str )
    83 {
    84         char* s = str;
    85         do
    86         {
     95        string_reverse( buffer.begin(), s - 1 );
     96        return static_cast<nv::size_t>( s - buffer.begin() );
     97}
     98
     99nv::size_t nv::uint64_to_buffer( array_ref< char > buffer, uint64 n )
     100{
     101        if ( buffer.size() < 2 ) return 0;
     102        char* last = buffer.end() - 1;
     103        char* s = buffer.begin();
     104        do
     105        {
     106                if ( s == last ) { *buffer.begin() = '\0'; return 0; }
    87107                *s++ = static_cast<char>( '0' + ( n % 10 ) );
    88108                n /= 10;
    89109        } while ( n > 0 );
    90110        *s = '\0';
    91         string_reverse( str, s - 1 );
    92         return static_cast<nv::size_t>( s - str );
    93 }
    94 
    95 nv::size_t nv::f32_to_buffer( f32 n, char* str )
     111        string_reverse( buffer.begin(), s - 1 );
     112        return static_cast<nv::size_t>( s - buffer.begin() );
     113}
     114
     115nv::size_t nv::f32_to_buffer( array_ref< char > buffer, f32 n )
    96116{
    97117#if NV_COMPILER == NV_MSVC
    98         int result = sprintf_s( str, 64, "%.*g", 6, n );
     118        int result = sprintf_s( buffer.data(), buffer.size(), "%.*g", 6, n );
    99119#else
    100         int result = snprintf( str, 64, "%.*g", 6, n );
     120        int result = snprintf( buffer.data(), buffer.size(), "%.*g", 6, n );
    101121#endif
    102122        return static_cast<nv::size_t>( result > 0 ? result : 0 );
    103123}
    104124
    105 nv::size_t nv::f64_to_buffer( f64 n, char* str )
     125nv::size_t nv::f64_to_buffer( array_ref< char > buffer, f64 n )
    106126{
    107127#if NV_COMPILER == NV_MSVC
    108         int result = sprintf_s( str, 64, "%.*g", 6, n );
     128        int result = sprintf_s( buffer.data(), buffer.size(), "%.*g", 6, n );
    109129#else
    110         int result = snprintf( str, 64, "%.*g", 6, n );
     130        int result = snprintf( buffer.data(), buffer.size(), "%.*g", 6, n );
    111131#endif
    112132        return static_cast<nv::size_t>( result > 0 ? result : 0 );
Note: See TracChangeset for help on using the changeset viewer.