Changeset 520 for trunk/src/gfx
- Timestamp:
- 10/03/16 17:45:46 (9 years ago)
- Location:
- trunk/src/gfx
- Files:
-
- 4 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/gfx/debug_draw.cc
r509 r520 101 101 } 102 102 103 void nv::debug_data::push_wire_capsule( const transform& tr, float radius, float height ) 104 { 105 vec3 p = tr.get_position(); 106 quat o = tr.get_orientation(); 107 vec3 dir = o * vec3( 0, 1, 0 ); 108 vec3 ldir = o * vec3( 1, 0, 0 ); 109 vec3 h1dir = o * normalize( vec3( 1, -1, 0 ) ); 110 vec3 h2dir = o * normalize( vec3( 1, 1, 0 ) ); 111 vec3 sp1[12]; 112 vec3 sp2[12]; 113 vec3 hsp1[12]; 114 vec3 hsp2[12]; 115 for ( uint32 i = 0; i < 12; ++i ) 116 { 117 sp1[i] = nv::math::rotate( ldir * radius, ( float( i ) / 12.0f ) * math::two_pi<float>(), dir ); 118 hsp1[i] = nv::math::rotate( h1dir * radius, ( float( i ) / 12.0f ) * math::two_pi<float>(), dir ); 119 } 120 for ( uint32 i = 0; i < 12; ++i ) 121 { 122 sp2[i] = nv::math::rotate( ldir * radius + height * dir, ( float( i ) / 12.0f ) * math::two_pi<float>(), dir ); 123 hsp2[i] = nv::math::rotate( h2dir * radius + height * dir, ( float( i ) / 12.0f ) * math::two_pi<float>(), dir ); 124 } 125 126 for ( uint32 i = 0; i < 12; ++i ) 127 { 128 push_line( p + sp1[i], p + sp1[( i + 1 ) % 12], vec3( 1.0f, 0.0f, 0.0f ) ); 129 push_line( p + sp2[i], p + sp2[( i + 1 ) % 12], vec3( 0.0f, 1.0f, 0.0f ) ); 130 push_line( p + sp1[i], p + sp2[i], vec3( 0.0f, 0.0f, 1.0f ) ); 131 132 push_line( p + hsp1[i], p + sp1[i], vec3( 0.0f, 0.0f, 1.0f ) ); 133 push_line( p + hsp1[i], p + hsp1[( i + 1 ) % 12], vec3( 1.0f, 0.0f, 0.0f ) ); 134 push_line( p + hsp2[i], p + sp2[i], vec3( 0.0f, 0.0f, 1.0f ) ); 135 push_line( p + hsp2[i], p + hsp2[( i + 1 ) % 12], vec3( 0.0f, 1.0f, 0.0f ) ); 136 137 push_line( p + hsp1[i], p - radius * dir, vec3( 0.0f, 0.0f, 1.0f ) ); 138 push_line( p + hsp2[i], p + ( height + radius ) * dir, vec3( 0.0f, 0.0f, 1.0f ) ); 139 140 } 141 142 143 } 144 145 103 146 nv::debug_data::~debug_data() 104 147 { -
trunk/src/gfx/gfx_terminal.cc
r514 r520 84 84 fgcolor = fg.get_argb32(); 85 85 bgcolor = bg.get_argb32(); 86 gylph = uint32( ch ); 87 NV_LOG_INFO( uint32( 88 ( fgcolor & uint32( 0x00FF0000 ) ) >> 16 ), "-", uint32( ( fgcolor & uint32( 0x0000FF00 ) ) >> 8 ),"-" , uint32( fgcolor & uint32( 0x000000FF ) ) ); 86 gylph = uint32( uint8(ch) ); 89 87 } 90 88 }; … … 139 137 m_dc.p = m_context->create_program( nv_gfx_terminal_vs, nv_gfx_terminal_fs ); 140 138 141 m_data->buffer = m_context->create_buffer( nv::UNIFORM_BUFFER, nv:: DYNAMIC_DRAW, tsize.x * tsize.y * sizeof( gfx_terminal_uniform_block ), m_data->data );139 m_data->buffer = m_context->create_buffer( nv::UNIFORM_BUFFER, nv::STREAM_DRAW, tsize.x * tsize.y * sizeof( gfx_terminal_uniform_block ), m_data->data ); 142 140 m_context->bind( m_data->buffer, 7 ); 143 141 m_context->get_device()->set_opt_uniform( m_dc.p, "term_size", vec2( tsize ) ); … … 151 149 void gfx_terminal::update() 152 150 { 153 m_context->bind( m_data->buffer, 7 ); 154 m_context->update( m_data->buffer, m_data->data, 0, m_data->size.x * m_data->size.y * sizeof( gfx_terminal_uniform_block ) ); 155 m_update_needed = false; 151 if ( m_update_needed ) 152 { 153 m_context->bind( m_data->buffer, 7 ); 154 m_context->update( m_data->buffer, m_data->data, 0, m_data->size.x * m_data->size.y * sizeof( gfx_terminal_uniform_block ) ); 155 m_update_needed = false; 156 } 156 157 } 157 158 -
trunk/src/gfx/mesh_creator.cc
r503 r520 87 87 } 88 88 89 90 nv::aabb nv::mesh_data_creator::calculate_aabb() 91 { 92 NV_ASSERT_ALWAYS( m_pos_channel, "No position channel found!" ); 93 vec3 minv; 94 vec3 maxv; 95 96 if ( m_pos_channel->size() > 0 ) 97 { 98 minv = *reinterpret_cast<const vec3*>( m_pos_channel->raw_data() + m_pos_offset ); 99 maxv = minv; 100 } 101 102 for ( uint32 c = 0; c < m_pos_channel->size(); ++c ) 103 { 104 vec3 v = *reinterpret_cast<const vec3*>( m_pos_channel->raw_data() + c*m_pos_channel->element_size() + m_pos_offset ); 105 minv = nv::math::min( minv, v ); 106 maxv = nv::math::max( maxv, v ); 107 } 108 vec3 extents = maxv - minv; 109 vec3 hextents = extents * 0.5f; 110 vec3 halfv = minv + hextents; 111 return aabb( nv::transform( halfv ), hextents ); 112 } 89 113 90 114 void nv::mesh_data_creator::transform( const vec3& pos, const mat3& r33, float scale /*= 1.0f */ ) -
trunk/src/gfx/skeleton_instance.cc
r486 r520 182 182 } 183 183 184 void nv::skeleton_transforms::delocalize_rec( const data_node_tree& node_data, uint32 id, const transform& parent, const array_view< bool >& mask ) 185 { 186 transform global_mat = parent; 187 bool b = mask[id]; 188 if ( !b ) 189 global_mat = m_transforms[id]; 190 else 191 { 192 global_mat *= m_transforms[id]; 193 m_transforms[id] = global_mat; 194 } 195 for ( auto child : node_data.children( id ) ) 196 { 197 delocalize_rec( node_data, child, global_mat, mask ); 198 } 199 } 200
Note: See TracChangeset
for help on using the changeset viewer.