Changeset 328 for trunk/src/gui/gui_renderer.cc
- Timestamp:
- 09/02/14 03:38:18 (11 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/gui/gui_renderer.cc
r322 r328 38 38 "}\n"; 39 39 40 40 41 using namespace nv; 41 42 using namespace nv::gui; 43 44 const ivec2 atlas_size = ivec2( 1024, 1024 ); 42 45 43 46 struct gui_quad … … 121 124 : m_window(w) 122 125 , m_style() 123 , m_atlas( glm::ivec2( 1024, 1024 ), 4 )126 , m_atlas( atlas_size, 4 ) 124 127 , m_reupload( true ) 125 128 { … … 164 167 } 165 168 166 nv::vec4renderer::get_image( size_t name ) const167 { 168 if ( name >= m_images.size() ) return n v::vec4();169 return m_images[ name ];169 const image_info* renderer::get_image( size_t name ) const 170 { 171 if ( name >= m_images.size() ) return nullptr; 172 return &m_images[ name ]; 170 173 } 171 174 … … 201 204 region r = m_atlas.get_region( data->get_size() ); 202 205 m_atlas.set_region( r, data->get_data() ); 206 m_images.emplace_back( vec2( r.pos ) / vec2( atlas_size ), vec2( r.size + r.pos ) / vec2( atlas_size ), r.size ); 203 207 delete data; 204 208 m_reupload = true; … … 228 232 if ( e->m_absolute != m_area ) 229 233 { 230 int border ;234 int border = 0; 231 235 vec4 color; 232 236 std::string path; 233 237 std::string text; 234 if ( m_style.get( e, "border", border ) && m_style.get( e, "border_color", color ) ) 238 239 if ( m_style.get( e, "skin", path ) ) 235 240 { 236 rectangle inner = abs.shrinked( border ); 237 qvec.emplace_back( abs.ul, inner.ul, inner.ur(), abs.ur(), color ); 238 qvec.emplace_back( abs.ul, abs.ll(), inner.ll(), inner.ul, color ); 239 qvec.emplace_back( inner.ur(), inner.lr, abs.lr, abs.ur(), color ); 240 qvec.emplace_back( inner.ll(), abs.ll(), abs.lr, inner.lr, color ); 241 abs = inner; 241 size_t image_id = load_image( path ); 242 const image_info* image = get_image( image_id ); 243 if ( image ) 244 { 245 color = vec4( 2, 2, 2, 1 ); 246 ivec2 isize3 = image->size / 3; 247 ivec2 isize3x = ivec2( isize3.x, 0 ); 248 ivec2 isize3y = ivec2( 0, isize3.y ); 249 vec2 tsize = ( image->t2 - image->t1 ); 250 vec2 tsize3 = ( image->t2 - image->t1 ) / 3.0f; 251 vec2 tsize32 = ( image->t2 - image->t1 ) * ( 2.0f / 3.0f ); 252 vec2 tsizex = vec2( tsize.x, 0.0f ); 253 vec2 tsizey = vec2( 0.0f, tsize.y ); 254 vec2 tsize3x = vec2( tsize3.x, 0.0f ); 255 vec2 tsize3y = vec2( 0.0f, tsize3.y ); 256 vec2 tsize3x2 = vec2( tsize32.x, 0.0f ); 257 vec2 tsize3y2 = vec2( 0.0f, tsize32.y ); 258 259 rectangle inner = abs.shrinked( isize3 ); 260 qvec.emplace_back( abs.ul, inner.ul, color, image->t1, image->t1+tsize3 ); 261 qvec.emplace_back( abs.ul+isize3x, inner.ur(), color, image->t1+tsize3x, image->t1+tsize3x2+tsize3y); 262 qvec.emplace_back( abs.ur()-isize3x, inner.ur()+isize3x, color, image->t1+tsize3x2, image->t1+tsizex+tsize3y ); 263 264 qvec.emplace_back( abs.ul+isize3y, inner.ll(), color, image->t1+tsize3y, image->t1+tsize3y2+tsize3x ); 265 qvec.emplace_back( inner.ul, inner.lr, color, image->t1+tsize3, image->t1+tsize32 ); 266 qvec.emplace_back( inner.ur(), inner.lr+isize3x, color, image->t1+tsize3+tsize3x, image->t1+tsize32+tsize3x ); 267 268 269 qvec.emplace_back( abs.ll()-isize3y, inner.ll()+isize3y, color, image->t1+tsize3y2, image->t1+tsize3y2+tsize3 ); 270 qvec.emplace_back( inner.ll(), abs.lr-isize3x, color, image->t1+tsize3y2+tsize3x, image->t1+tsize32+tsize3y ); 271 qvec.emplace_back( inner.lr, abs.lr, color, image->t1+tsize32, image->t1+tsize ); 272 273 274 // qvec.emplace_back( abs.ul, abs.ll(), inner.ll(), inner.ul, color ); 275 // qvec.emplace_back( inner.ur(), inner.lr, abs.lr, abs.ur(), color ); 276 // qvec.emplace_back( inner.ll(), abs.ll(), abs.lr, inner.lr, color ); 277 abs = inner; 278 279 } 280 242 281 } 243 244 if ( m_style.get( e, "background_color", color ) ) 282 else 245 283 { 246 qvec.emplace_back( abs.ul, abs.lr, color ); 284 285 if ( m_style.get( e, "border", border ) && m_style.get( e, "border_color", color ) ) 286 { 287 rectangle inner = abs.shrinked( border ); 288 qvec.emplace_back( abs.ul, inner.ul, inner.ur(), abs.ur(), color ); 289 qvec.emplace_back( abs.ul, abs.ll(), inner.ll(), inner.ul, color ); 290 qvec.emplace_back( inner.ur(), inner.lr, abs.lr, abs.ur(), color ); 291 qvec.emplace_back( inner.ll(), abs.ll(), abs.lr, inner.lr, color ); 292 abs = inner; 293 } 294 295 if ( m_style.get( e, "background_color", color ) ) 296 { 297 qvec.emplace_back( abs.ul, abs.lr, color ); 298 } 247 299 } 248 300
Note: See TracChangeset
for help on using the changeset viewer.