Surface3DProjection Shader Program OES
OES external-texture variant of Surface3DProjectionShaderProgram used when the source texture has target = GL_TEXTURE_EXTERNAL_OES (Android MediaPlayer -> SurfaceTexture path). Identical 3D camera-frustum projection shader; only the fragment-stage sampler type changes:
#extension GL_OES_EGL_image_external : requireat the top of the fragment source, andsamplerExternalOESin place ofsampler2DfortexSampler.
Both edits are derived from the parent's source at construction so the kernel stays the single source of truth: touch Surface3DProjectionShaderProgram's shader strings and the OES variant follows automatically.
Properties
Functions
Soft-edge fade margin in normalised UV units (0..0.5). 0 (default) renders a hard cutoff at the unit-square boundary - the cheapest path, since the shader's uniform-controlled branch then skips the fade math entirely. Non-zero values ramp alpha 0..1 across the inner 0..fadeMargin strip on each side, blending the projection into surrounding terrain.
Tile-local image projection: world-ECEF imageProjection premultiplied by a translation to the current terrain tile's vertex origin. Recomputed per tile by the drawable so per-vertex math stays float-precise. Skips the upload when the matrix matches the previously uploaded value - common for static photos and paused video that re-bind the same surface drawable every render frame.
Frees any resources associated with this instance. After this method returns the rendering resource is invalid, and any associated GL object is deleted.