void GeometryProcessor::handleGeometry( RenderBackend::Mesh *geo ) { OSRE_ASSERT( nullptr != geo ); if ( nullptr == geo ) { return; } ui32 offsetPos( 0 ), stride( 0 ); switch ( geo->m_vertextype ) { case VertexType::RenderVertex: offsetPos = 0; stride = sizeof( RenderVert ); break; case VertexType::ColorVertex: offsetPos = 0; stride = sizeof( ColorVert ); break; default: break; } BufferData *data = geo->m_vb; if ( nullptr == data || 0 == data->getSize() ) { return; } ui32 offset( 0 ); const ui32 numVertices = (ui32) data->getSize() / stride; for ( ui32 i = 0; i < numVertices; i++ ) { glm::vec3 pos; uc8 *ptr = (uc8*) data->getData(); ::memcpy( &pos.x, &ptr[offset], sizeof( glm::vec3 ) ); offset += stride; m_aabb.merge( pos.x, pos.y, pos.z ); } }
int nme_buffer_offset(int inPtr) { BufferData *data = (BufferData *)inPtr; //data->verify("nme_buffer_offset"); return (int)data->getData(); }