Bug 12 - Cannot click to move or interact with objects on MacOS 10.7.4 with GeForce 7300GT card
: Cannot click to move or interact with objects on MacOS 10.7.4 with GeForce 73...
Status: RESOLVED DUPLICATE of bug 211
Product: Salem
Classification: Unclassified
Component: Client
: unspecified
: Macintosh Mac OS
: --- normal
Assigned To: loftar
Depends on:
Blocks:
  Show dependency treegraph
 
Reported: 2012-07-12 00:36 CEST by Andorn
Modified: 2014-03-14 08:20 CET (History)
0 users

See Also:


Attachments
MapView patch for image output (854 bytes, patch)
2012-08-19 02:01 CEST, loftar
Details

Note You need to log in before you can comment on or make changes to this bug.
Description Andorn 2012-07-12 00:36:42 CEST
When running the client on a Mac Pro with a GeForce 7300 GT card, I cannot left-click the ground to move, and I cannot click objects on the ground to interact with them. The 2d UI still works.

I *think* I've narrowed the issue down to some unexpected results coming out of MapView.checkmapclick(), which depends on MapMesh.drawFlat(). When clicking the ground or objects, no hit is detected. The coordinates found appear to be incorrect.

When I change the camera angle using the mouse wheel to zoom all the way out, I see a slight improvement in the hit detection. At a certain zoom level (zoom all the way out, then zoom in about 4 - 5 clicks of the scroll wheel), I observe the values for "tile = new Coord(hitcol.getRed() - 1, hitcol.getGreen() - 1);" suddenly change.

I observe this only on my Mac Pro. I do not observe this on my mac laptop.
The Mac Pro is running 10.7.4, with a GeForce 7300GT.
The Macbook is running 10.6.x.


Affects the stock client, Ender's client, or BD client.
I have compiled and run the stock client and Ender's client from source (cloned from github July 10, 2012) to check for recent fixes.
Comment 1 loftar 2012-07-13 05:26:33 CEST
It's a bit weird, though. Even if it gets the coordinates wrong, it shouldn't mean that no hit whatever is detected (since all colors are valid). What values are you, in fact, getting in the various phases?
Comment 2 Andorn 2012-07-17 22:28:20 CEST
I'm getting tile hit color values outside of the valid [0 - 25) range.

Stand in the new player area, after getting a body.

With the camera zoomed in to about 45 degrees, 
Click the top center of the clothes chest.
The player does not move.
Zoom the camera out all the way out to 90 degrees, looking straight down.
Clock the top center of the clothes chest, same spot.
The player moves to the chest.


I added some debugging statements to the code. In the log below, the first mousedown happens with the camera at 45 deg, the second with the camera at 90 deg:

 MapView mousedown button 1
 Running HitTest
 colorAtPixel= java.awt.Color[r=144,g=0,b=0]
 hit mesh=haven.MapMesh@1510e56
 tile hitcolor = java.awt.Color[r=74,g=8,b=0] coord = (73, 7)rl.limit.sz = (25, 25)
 colorAtPixel= java.awt.Color[r=240,g=240,b=0]
 nohit
 MapView mousedown button 1
 Running HitTest
 colorAtPixel= java.awt.Color[r=144,g=0,b=0]
 hit mesh=haven.MapMesh@1510e56
 tile hitcolor = java.awt.Color[r=3,g=18,b=0] coord = (2, 17)rl.limit.sz = (25, 25)
 pixel hitcolor = java.awt.Color[r=110,g=70,b=0]
 colorAtPixel= java.awt.Color[r=240,g=240,b=0]


Let me know if you want a dump of the code that generated this output.
Comment 3 loftar 2012-08-19 02:00:29 CEST
Since you know how to modify the client, you may want to use the new getimage() function of GOut to capture a screenshot of the image output when the click-test scene has been drawn, to see what it looks like.
Comment 4 loftar 2012-08-19 02:01:28 CEST
Created attachment 5 [details]
MapView patch for image output

Example patch for MapView.java for using getimage() to help with debugging.
Comment 5 loftar 2014-03-14 08:20:10 CET
Made a new, more descriptive report for the general case of this particular problem.

*** This bug has been marked as a duplicate of bug 211 ***