mirror of
https://github.com/bilawalsidhu/gods-eye-view.git
synced 2026-11-05 19:04:02 +00:00
Release God's Eye View as open source
This commit is contained in:
1 parent
a5aaea7e16
commit
880a672b5e
433 files changed
+219893
-23
No files matched your search
@@ -0,0 +1,44 @@
|
||||
/**
|
||||
* Lazily create the shared white contact pip used by aircraft layers while the
|
||||
* first-person cockpit is active. Cesium multiplies this white texture by the
|
||||
* billboard color, so civilian and military owners retain their provenance
|
||||
* colors without maintaining separate image assets.
|
||||
*
|
||||
* @returns {string} One stable data-URL identity shared by every billboard.
|
||||
*/
|
||||
export function cockpitContactDotImage() {
|
||||
if (cockpitContactDotImage._dataUrl) return cockpitContactDotImage._dataUrl;
|
||||
|
||||
const canvas = document.createElement('canvas');
|
||||
canvas.width = 16;
|
||||
canvas.height = 16;
|
||||
const ctx = canvas.getContext('2d');
|
||||
ctx.clearRect(0, 0, 16, 16);
|
||||
|
||||
// Match the visor's fine-line symbology: a restrained luminous ring with a
|
||||
// crisp center fix, rather than a solid map-marker blob. The layer tint
|
||||
// supplies civilian cyan-white or military amber provenance.
|
||||
ctx.save();
|
||||
ctx.shadowBlur = 2.5;
|
||||
ctx.shadowColor = 'rgba(255, 255, 255, 0.55)';
|
||||
ctx.beginPath();
|
||||
ctx.arc(8, 8, 4.25, 0, Math.PI * 2);
|
||||
ctx.lineWidth = 1.25;
|
||||
ctx.strokeStyle = 'rgba(255, 255, 255, 0.82)';
|
||||
ctx.stroke();
|
||||
ctx.shadowBlur = 1.5;
|
||||
ctx.beginPath();
|
||||
ctx.arc(8, 8, 1.55, 0, Math.PI * 2);
|
||||
ctx.fillStyle = 'rgba(255, 255, 255, 0.98)';
|
||||
ctx.fill();
|
||||
ctx.restore();
|
||||
|
||||
// Billboard.image assigns a fresh texture-atlas id to non-string sources.
|
||||
// Returning the same canvas for hundreds of contacts therefore still made
|
||||
// Cesium upload/repack hundreds of identical textures at cockpit entry.
|
||||
// A stable URL is keyed once and shared by the entire fleet.
|
||||
cockpitContactDotImage._dataUrl = canvas.toDataURL('image/png');
|
||||
return cockpitContactDotImage._dataUrl;
|
||||
}
|
||||
|
||||
cockpitContactDotImage._dataUrl = null;
|
||||
Reference in new issue
Block a user