void CMouseHandler::DrawCursor() { assert(activeCursorIdx != -1); if (guihandler != nullptr) guihandler->DrawCentroidCursor(); if (locked) { if (crossSize > 0.0f) { const float xscale = (crossSize / globalRendering->viewSizeX); const float yscale = (crossSize / globalRendering->viewSizeY); glPushMatrix(); glTranslatef(0.5f - globalRendering->pixelX * 0.5f, 0.5f - globalRendering->pixelY * 0.5f, 0.f); glScalef(xscale, yscale, 1.f); if (gu->fpsMode) { DrawFPSCursor(); } else { DrawScrollCursor(); } glPopMatrix(); } glEnable(GL_TEXTURE_2D); return; } if (hide) return; if (hardwareCursor && loadedCursors[activeCursorIdx].IsHWValid()) return; // draw the 'software' cursor if (cursorScale >= 0.0f) { loadedCursors[activeCursorIdx].Draw(lastx, lasty, cursorScale); return; } // hovered minimap, show default cursor and draw `special` cursor scaled-down bottom right of the default one const size_t normalCursorIndex = cursorFileMap["cursornormal"]; if (normalCursorIndex == 0) { loadedCursors[activeCursorIdx].Draw(lastx, lasty, -cursorScale); return; } CMouseCursor& normalCursor = loadedCursors[normalCursorIndex]; normalCursor.Draw(lastx, lasty, 1.0f); if (activeCursorIdx == normalCursorIndex) return; loadedCursors[activeCursorIdx].Draw(lastx + normalCursor.GetMaxSizeX(), lasty + normalCursor.GetMaxSizeY(), -cursorScale); }
void CMouseHandler::DrawCursor() { assert(currentCursor); if (guihandler) guihandler->DrawCentroidCursor(); if (locked) { if (crossSize > 0.0f) { const float xscale = (crossSize / globalRendering->viewSizeX); const float yscale = (crossSize / globalRendering->viewSizeY); glPushMatrix(); glTranslatef(0.5f - globalRendering->pixelX * 0.5f, 0.5f - globalRendering->pixelY * 0.5f, 0.f); glScalef(xscale, yscale, 1.f); if (gu->fpsMode) { DrawFPSCursor(); } else { DrawScrollCursor(); } glPopMatrix(); } glEnable(GL_TEXTURE_2D); return; } if (hide) return; if (hardwareCursor && currentCursor->hwValid) return; // draw the 'software' cursor if (cursorScale >= 0.0f) { currentCursor->Draw(lastx, lasty, cursorScale); } else { // hovered minimap, show default cursor and draw `special` cursor scaled-down bottom right of the default one CMouseCursor* nc = cursorFileMap["cursornormal"]; if (nc == NULL) { currentCursor->Draw(lastx, lasty, -cursorScale); } else { nc->Draw(lastx, lasty, 1.0f); if (currentCursor != nc) { currentCursor->Draw(lastx + nc->GetMaxSizeX(), lasty + nc->GetMaxSizeY(), -cursorScale); } } } }