| 1401 | } |
| 1402 | |
| 1403 | void ImDrawListSplitter::SetCurrentChannel(ImDrawList* draw_list, int idx) |
| 1404 | { |
| 1405 | IM_ASSERT(idx >= 0 && idx < _Count); |
| 1406 | if (_Current == idx) |
| 1407 | return; |
| 1408 | // Overwrite ImVector (12/16 bytes), four times. This is merely a silly optimization instead of doing .swap() |
| 1409 | memcpy(&_Channels.Data[_Current]._CmdBuffer, &draw_list->CmdBuffer, sizeof(draw_list->CmdBuffer)); |
| 1410 | memcpy(&_Channels.Data[_Current]._IdxBuffer, &draw_list->IdxBuffer, sizeof(draw_list->IdxBuffer)); |
| 1411 | _Current = idx; |
| 1412 | memcpy(&draw_list->CmdBuffer, &_Channels.Data[idx]._CmdBuffer, sizeof(draw_list->CmdBuffer)); |
| 1413 | memcpy(&draw_list->IdxBuffer, &_Channels.Data[idx]._IdxBuffer, sizeof(draw_list->IdxBuffer)); |
| 1414 | draw_list->_IdxWritePtr = draw_list->IdxBuffer.Data + draw_list->IdxBuffer.Size; |
| 1415 | } |
| 1416 | |
| 1417 | //----------------------------------------------------------------------------- |
| 1418 | // [SECTION] ImDrawData |
no test coverage detected