| 644 | } |
| 645 | |
| 646 | void LineRenderer::pushRect(PosColorVertex verts[4]) { |
| 647 | uint64_t state = BGFX_STATE_WRITE_RGB | BGFX_STATE_WRITE_A | BGFX_STATE_PT_LINESTRIP | BlendFunc::Default.toValue(); |
| 648 | if (state != _lastState) { |
| 649 | render(); |
| 650 | } |
| 651 | _lastState = state; |
| 652 | if (!_vertices.empty()) { |
| 653 | _vertices.reserve(_vertices.size() + 6); |
| 654 | _vertices.push_back(_vertices.back()); |
| 655 | _vertices.back().abgr = 0; |
| 656 | _vertices.push_back(verts[0]); |
| 657 | _vertices.back().abgr = 0; |
| 658 | } else { |
| 659 | _vertices.reserve(_vertices.size() + 4); |
| 660 | } |
| 661 | _vertices.push_back(verts[0]); |
| 662 | _vertices.push_back(verts[1]); |
| 663 | _vertices.push_back(verts[2]); |
| 664 | _vertices.push_back(verts[3]); |
| 665 | _vertices.push_back(verts[0]); |
| 666 | } |
| 667 | |
| 668 | void LineRenderer::pushSegment(PosColorVertex verts[2]) { |
| 669 | uint64_t state = BGFX_STATE_WRITE_RGB | BGFX_STATE_WRITE_A | BGFX_STATE_PT_LINESTRIP | BlendFunc::Default.toValue(); |