| 1582 | } |
| 1583 | |
| 1584 | bool Renderer::drawLines2D(PxU32 nbVerts, const PxReal* vertices, const RendererColor& color) |
| 1585 | { |
| 1586 | RendererMaterial* screenquadMaterial; |
| 1587 | RendererMaterialInstance* screenquadMaterialInstance; |
| 1588 | screenquadMaterial = m_screenquadOpaqueMaterial; |
| 1589 | screenquadMaterialInstance = m_screenquadOpaqueMaterialInstance; |
| 1590 | if(!screenquadMaterialInstance || !screenquadMaterial) |
| 1591 | return false; |
| 1592 | |
| 1593 | screenquadMaterial->bind(RendererMaterial::PASS_UNLIT, screenquadMaterialInstance, false); |
| 1594 | if(!m_useShadersForTextRendering) |
| 1595 | screenquadMaterial->unbind(); |
| 1596 | |
| 1597 | setupScreenquadRenderStates(); |
| 1598 | |
| 1599 | TextVertex* verts = new TextVertex[nbVerts]; |
| 1600 | |
| 1601 | PxU32 renderWidth, renderHeight; |
| 1602 | getWindowSize(renderWidth, renderHeight); |
| 1603 | const PxReal xCoeff = PxReal(renderWidth); |
| 1604 | const PxReal yCoeff = PxReal(renderHeight); |
| 1605 | |
| 1606 | const PxU32 convertedColor = convertColor(color); |
| 1607 | |
| 1608 | for(PxU32 i=0;i<nbVerts;i++) |
| 1609 | { |
| 1610 | verts[i].p.x = vertices[i*2+0] * xCoeff; |
| 1611 | verts[i].p.y = vertices[i*2+1] * yCoeff; |
| 1612 | verts[i].p.z = 0.0f; |
| 1613 | verts[i].rhw = 1.0f; |
| 1614 | verts[i].color = convertedColor; |
| 1615 | verts[i].u = 0.0f; |
| 1616 | verts[i].v = 0.0f; |
| 1617 | } |
| 1618 | |
| 1619 | renderLines2D(verts, nbVerts); |
| 1620 | |
| 1621 | DELETEARRAY(verts); |
| 1622 | |
| 1623 | resetScreenquadRenderStates(); |
| 1624 | if(m_useShadersForTextRendering) |
| 1625 | screenquadMaterial->unbind(); |
| 1626 | |
| 1627 | return true; |
| 1628 | } |
| 1629 | |
| 1630 | bool Renderer::drawLines2D(PxU32 nbVerts, const PxReal* vertices, const RendererColor* colors) |
| 1631 | { |
no test coverage detected