mirror of
				https://github.com/ciphervance/supercell-wx.git
				synced 2025-10-31 10:10:05 +00:00 
			
		
		
		
	Fix x/y pixel offsets of placefile icons
This commit is contained in:
		
							parent
							
								
									eaf5089526
								
							
						
					
					
						commit
						e66c202edf
					
				
					 2 changed files with 18 additions and 15 deletions
				
			
		|  | @ -37,6 +37,6 @@ void main() | |||
|    vec2 p = latLngToScreenCoordinate(aLatLong) - uMapScreenCoord; | ||||
| 
 | ||||
|    // Transform the position to screen coordinates | ||||
|    gl_Position = uMapMatrix * vec4(p, 0.0f, 1.0f) - | ||||
|    gl_Position = uMapMatrix * vec4(p, 0.0f, 1.0f) + | ||||
|                  uMVPMatrix * vec4(aXYOffset, 0.0f, 0.0f); | ||||
| } | ||||
|  |  | |||
|  | @ -311,16 +311,19 @@ void PlacefileIcons::Impl::Update() | |||
|          const float x = static_cast<float>(di->x_); | ||||
|          const float y = static_cast<float>(di->y_); | ||||
| 
 | ||||
|          // Half icon size
 | ||||
|          const float hw = static_cast<float>(icon.iconFile_->iconWidth_) * 0.5f; | ||||
|          const float hh = | ||||
|             static_cast<float>(icon.iconFile_->iconHeight_) * 0.5f; | ||||
|          // Icon size
 | ||||
|          const float iw = static_cast<float>(icon.iconFile_->iconWidth_); | ||||
|          const float ih = static_cast<float>(icon.iconFile_->iconHeight_); | ||||
| 
 | ||||
|          // Hot X/Y (zero-based icon center)
 | ||||
|          const float hx = static_cast<float>(icon.iconFile_->hotX_); | ||||
|          const float hy = static_cast<float>(icon.iconFile_->hotY_); | ||||
| 
 | ||||
|          // Final X/Y offsets in pixels
 | ||||
|          const float lx = std::roundf(x - hw); | ||||
|          const float rx = std::roundf(x + hw); | ||||
|          const float by = std::roundf(y - hh); | ||||
|          const float ty = std::roundf(y + hh); | ||||
|          const float lx = std::roundf(x - hx); | ||||
|          const float rx = std::roundf(lx + iw); | ||||
|          const float ty = std::roundf(y + hy); | ||||
|          const float by = std::roundf(ty - ih); | ||||
| 
 | ||||
|          // Angle in degrees
 | ||||
|          // TODO: Properly convert
 | ||||
|  | @ -347,12 +350,12 @@ void PlacefileIcons::Impl::Update() | |||
|          buffer.insert(buffer.end(), | ||||
|                        { | ||||
|                           // Icon
 | ||||
|                           lat, lon, lx, by, rs, tt, mc0, mc1, mc2, mc3, a, // BL
 | ||||
|                           lat, lon, lx, ty, rs, bt, mc0, mc1, mc2, mc3, a, // TL
 | ||||
|                           lat, lon, rx, by, ls, tt, mc0, mc1, mc2, mc3, a, // BR
 | ||||
|                           lat, lon, rx, by, ls, tt, mc0, mc1, mc2, mc3, a, // BR
 | ||||
|                           lat, lon, rx, ty, ls, bt, mc0, mc1, mc2, mc3, a, // TR
 | ||||
|                           lat, lon, lx, ty, rs, bt, mc0, mc1, mc2, mc3, a  // TL
 | ||||
|                           lat, lon, lx, by, ls, bt, mc0, mc1, mc2, mc3, a, // BL
 | ||||
|                           lat, lon, lx, ty, ls, tt, mc0, mc1, mc2, mc3, a, // TL
 | ||||
|                           lat, lon, rx, by, rs, bt, mc0, mc1, mc2, mc3, a, // BR
 | ||||
|                           lat, lon, rx, by, rs, bt, mc0, mc1, mc2, mc3, a, // BR
 | ||||
|                           lat, lon, rx, ty, rs, tt, mc0, mc1, mc2, mc3, a, // TR
 | ||||
|                           lat, lon, lx, ty, ls, tt, mc0, mc1, mc2, mc3, a  // TL
 | ||||
|                        }); | ||||
| 
 | ||||
|          numVertices_ += 6; | ||||
|  |  | |||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue
	
	 Dan Paulat
						Dan Paulat