From 66e5f8e9dcd11d136b707d13c7597019c99c54b8 Mon Sep 17 00:00:00 2001 From: Jonathan Liu Date: Tue, 25 Feb 2014 23:37:06 +1100 Subject: [PATCH] eglfs: Improve cursors and hotspots Improvements * Cursor atlas has been recreated using 32x32 cursors which avoids artifacts introduced from downscaling of the busy cursor * A white outline has been added to the cursors to improve visibility on black backgrounds * Hot spot positions have been tweaked; in particular, Qt::PointingHandCursor now has a correct hot spot at the tip of the index finger instead of the center The assert which checks that the number of hot spots equals the number of cursors had an off-by-one error as the first cursor is Qt::ArrowCursor which has an enum value of 0. To determine the number of cursors, 1 needs to be added to Qt::LastCursor. Change-Id: I266b6d4cc47d42219854aa5b7e2d8344eb3a920a Reviewed-by: Laszlo Agocs --- .../eglconvenience/qeglplatformcursor.cpp | 4 +- src/plugins/platforms/eglfs/cursor-atlas.png | Bin 2735 -> 2928 bytes src/plugins/platforms/eglfs/cursor.json | 42 +++++++++--------- 3 files changed, 23 insertions(+), 23 deletions(-) mode change 100644 => 100755 src/plugins/platforms/eglfs/cursor-atlas.png diff --git a/src/platformsupport/eglconvenience/qeglplatformcursor.cpp b/src/platformsupport/eglconvenience/qeglplatformcursor.cpp index 1c87e1d27d..70e7c4e4db 100644 --- a/src/platformsupport/eglconvenience/qeglplatformcursor.cpp +++ b/src/platformsupport/eglconvenience/qeglplatformcursor.cpp @@ -210,7 +210,7 @@ void QEGLPlatformCursor::initCursorAtlas() m_cursorAtlas.cursorsPerRow = cursorsPerRow; const QJsonArray hotSpots = object.value(QLatin1String("hotSpots")).toArray(); - Q_ASSERT(hotSpots.count() == Qt::LastCursor); + Q_ASSERT(hotSpots.count() == Qt::LastCursor + 1); for (int i = 0; i < hotSpots.count(); i++) { QPoint hotSpot(hotSpots[i].toArray()[0].toDouble(), hotSpots[i].toArray()[1].toDouble()); m_cursorAtlas.hotSpots << hotSpot; @@ -218,7 +218,7 @@ void QEGLPlatformCursor::initCursorAtlas() QImage image = QImage(atlas).convertToFormat(QImage::Format_ARGB32_Premultiplied); m_cursorAtlas.cursorWidth = image.width() / m_cursorAtlas.cursorsPerRow; - m_cursorAtlas.cursorHeight = image.height() / ((Qt::LastCursor + cursorsPerRow - 1) / cursorsPerRow); + m_cursorAtlas.cursorHeight = image.height() / ((Qt::LastCursor + cursorsPerRow) / cursorsPerRow); m_cursorAtlas.width = image.width(); m_cursorAtlas.height = image.height(); m_cursorAtlas.image = image; diff --git a/src/plugins/platforms/eglfs/cursor-atlas.png b/src/plugins/platforms/eglfs/cursor-atlas.png old mode 100644 new mode 100755 index 8d89a7ab863fbffd64e53539753ca7aedb2b63e1..4ddb7708e19cda8df7ca7783dd31ada14351c02b GIT binary patch literal 2928 zcmeHJ`#;lr82@}{a~aF^a7eX^n%f$OxwE-Txpq)4O{z^HvfL`Zl&0iQno}b>Y=l#5%i=OVz7_f|fEqg=`a@WBZ+9QD5dO;sd{(5i#Va5a z<+49Ud~;s^aL9VtpDzYA=#Kt$pA$#vaUmy<0MC%HNIKr#aUVAJ7rY7H(9l_6X9|F1 zgR291UwrUFX@(uoLe61QWLx(7a&OkbJbT#{Vl6|-c8O&i_O@+}e=6n@sMJWlIH0Zi-9(H1@$toTy!UZul3MliOEMPLOt^f3@^9cY%4V`4G0n;8(u`Kim+I;M??Pv@ z3dj-_l@v@aPpvNeL+@F)b#g`|xtOOwsevmieRB?zl5)+pwad+tGrZ~b#)v6&0k^TY z(R6XVuY71~o8C!hMK3oFn&kyn*!TnZ5oy>@U20+P6rw=TqS5|4BI1%eTx*u2N~^tR z*m>}dY4gCAx0b*Db-F+{XCKu{8(xXLe>eY{o84(YQ};po1EX-HOQH)}VL#zeX)>?o zQ(oUVb=tK|zT`>x*&;7ENV#ko*UHSqjwIzRMJFka40;<(aCf(DI6!C}c7+{M8c14_ z#Mj}|7iO?2BPH8Un|If(#8`7b<_}wZ$CT8_KR{TkwuKT?DO1^b8}FL5jxIYaK4zlZ z9pm-jb#JMOvbSnKGZmjn5N*ovGV?A^J5YYN&84T>h7B^o(oel@HI<^R|h>d)ddo~NSXXEPP< z)TI7N`$VK>`ykkt5iJ@O%CJbz1`n8oA*Eqlthx>)tT_{WFt{prd00q0u}!Uto?FDa zmfnswK$!WC)u1$@Y1i4VU3tPL_V#tbw0&#jsw>na%=Fy4$e-jHL_9Rgs4TCLUo~Dg zmxMMi8ZuV8tL{M)qB=pS6BPM40A#jL8^FDzf2opq5ec$Y{J#^H42E{hry)s<=;Br8 zQpr>cX7vK#caF5wPRSgj`$fL3s2iv_| z_IwwE#*&r3mjhp`S^KQ<8!}TeOUDBPLH2X`9JlxRJel`VMQRq|NZfQvw*xX!D=_?( zCk>S@@GE|&Q==u#dmf@kQkh?$TV9S-fzj+(xilvj*O{W(m_-vXv1HZ$rI4RgU=*!p znlP!b=LjJX;7GCqt8L&iL+w_!Zq>sg+`TN$QCU<;hw^Wgk}H!$a)BQ9A;ngpL~3xJ z)i7`3Bj97uZJCz%Lz*d%U=({M`$@m`D-Q`jhOC{mbK@G)5uAT6rEI!2t%=x2mqhl{ z)pPEuOe(7*V=1pfLyk5C&E`qM3Jm7G!5q+LT8bvf>8~SHC!Lr*9&LIZ+*(^;&1rZX zZs|UV6JfK4DN$c4S z)0#6e*!zA@pU}Yu>z^0QQUcPcdA;Yx(?4$JjbRg^k{cMc%l4-nm{dNN)4DaFXL!#* zi<(qxwNFCu{?fO~!Fp0J?cwX4F$k4&&8#cu>UPdHf5s*2!tIZObXhLmDpmE%H<#1FYAg(fuhCX+;7GeR#~Q&FQhfSp<~g} zxgj5d;nd+xjd`h06(XuU$HP1>6Y)rP1=n}d^mA;f+ z$W5xn&ty0v(Or!vDqmv|3Izj0ubmr7BUK{%lXt#5LnHN~j_L?h47W z=2ec@2V({;yK0hjW>>Pt*5u;?ni3dsOB3ihe7^0Q*)lJ1|9Ni^%Ix<#FlcI*TtbG| j`2U`bwjcERba#J;WCyD>vAY@BKRzB;M|X!NJ4)(5GYn{R literal 2735 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 pfdoMykRS*I5(I%jf*=qL#sBDY`d*