Drawable Viewshed Kernel
Single-pass GPU dispatch for earth.worldwind.shape.ViewshedSightline's visibility kernel. Uploads the elevation grid as R32F, runs the per-fragment Amanatides–Woo walk via ViewshedKernelShaderProgram into an externally-owned RGBA8 outputTexture, and signals completion via callback. The texture lives on the GPU and is sampled directly by SurfaceImage on its own draw — no CPU readback, no PBO, no fence.
NOT pool-managed; the renderable holds a single instance and re-enqueues it per dispatch. recycle is a deliberate no-op. width/height are settable per-dispatch — the same drawable instance survives samplesPerSide changes; only the outputTexture reference is swapped out by the renderable.
Bails (no callback fired) when Kgl.supportsSizedTextureFormats is false (WebGL1 / GLES2); the kernel needs R32F and texelFetch.
Properties
Invoked on the GL thread once the kernel has rendered into outputTexture.
If true, draw drains texturesToRelease, calls release on this drawable's own GPU resources, and returns without rendering. The renderable sets this from dispose(); one final enqueue gets all resources off the GL.
Source elevations in row-major south-up order (matching Globe.getElevationGrid).
RGBA8 render target attached to GL_COLOR_ATTACHMENT0. Owned by the renderable.
Shader program acquired via RenderContext.getShaderProgram before enqueue.
Functions
Free this drawable's GPU resources. Must run on the GL thread (i.e. from within draw).