Replace hardcoded portrait-only texture coordinate rotation with SurfaceTexture.getTransformMatrix(), so the camera preview and capture re-orient correctly when the device rotates. Also drive Preview/ImageCapture targetRotation from the live display rotation, fix the crop-to-fill aspect math to swap effective camera dimensions between portrait and landscape, and make the slider control panel scroll if it doesn't fit the shorter landscape height. Bump to 1.1.6. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
22 lines
649 B
GLSL
22 lines
649 B
GLSL
// Vertex shader for tilt-shift effect.
|
|
//
|
|
// uTexMatrix: applied to texcoords. For the passthrough pass it carries the
|
|
// SurfaceTexture transform (sensor → display rotation, plus Y-flip). For the
|
|
// blur passes it is identity.
|
|
// uMirrorX: 1.0 to horizontally mirror texcoords (front-camera selfie view),
|
|
// 0.0 otherwise. Applied AFTER uTexMatrix.
|
|
|
|
attribute vec4 aPosition;
|
|
attribute vec2 aTexCoord;
|
|
|
|
uniform mat4 uTexMatrix;
|
|
uniform float uMirrorX;
|
|
|
|
varying vec2 vTexCoord;
|
|
|
|
void main() {
|
|
gl_Position = aPosition;
|
|
vec2 tc = (uTexMatrix * vec4(aTexCoord, 0.0, 1.0)).xy;
|
|
if (uMirrorX > 0.5) tc.x = 1.0 - tc.x;
|
|
vTexCoord = tc;
|
|
}
|