SurfaceTexture 클래스
정의
중요
일부 정보는 릴리스되기 전에 상당 부분 수정될 수 있는 시험판 제품과 관련이 있습니다. Microsoft는 여기에 제공된 정보에 대해 어떠한 명시적이거나 묵시적인 보증도 하지 않습니다.
이미지 스트림의 프레임을 OpenGL ES 텍스처로 캡처합니다.
[Android.Runtime.Register("android/graphics/SurfaceTexture", DoNotGenerateAcw=true)]
public class SurfaceTexture : Java.Lang.Object
[<Android.Runtime.Register("android/graphics/SurfaceTexture", DoNotGenerateAcw=true)>]
type SurfaceTexture = class
inherit Object
- 상속
- 특성
설명
이미지 스트림의 프레임을 OpenGL ES 텍스처로 캡처합니다.
이미지 스트림은 카메라 미리 보기 또는 비디오 디코딩에서 올 수 있습니다. SurfaceTexture에서 만든 API android.view.Surface
는 , android.media.MediaCodec
android.media.MediaPlayer
및 android.renderscript.Allocation
API의 android.hardware.camera2
출력 대상으로 사용할 수 있습니다. #updateTexImage
호출되면 SurfaceTexture를 만들 때 지정된 질감 개체의 내용이 이미지 스트림의 최신 이미지를 포함하도록 업데이트됩니다. 이로 인해 스트림의 일부 프레임을 건너뛸 수 있습니다.
이전 android.hardware.Camera
API의 출력 대상을 지정할 때 SurfaceHolder 대신 SurfaceTexture를 사용할 수도 있습니다. 이렇게 하면 이미지 스트림의 모든 프레임이 디바이스의 디스플레이가 아닌 SurfaceTexture 개체로 전송됩니다.
텍스처에서 샘플링하는 경우 먼저 을 통해 #getTransformMatrix(float[])
쿼리된 행렬을 사용하여 텍스처 좌표를 변환해야 합니다. 변환 행렬은 호출될 때마다 #updateTexImage
변경될 수 있으므로 텍스처 이미지가 업데이트될 때마다 다시 쿼리해야 합니다. 이 행렬은 포괄 간격 [0, 1]에 있는 폼의 기존 2D OpenGL ES 텍스처 좌표 열 벡터(s, t, 0, 1)를 스트리밍된 텍스처의 적절한 샘플링 위치로 변환합니다. 이 변환은 기존 OpenGL ES 텍스처와 다르게 표시되도록 하는 이미지 스트림 원본의 속성을 보정합니다. 예를 들어, 이미지의 왼쪽 아래 모서리에서 샘플링은 쿼리된 행렬을 사용하여 열 벡터(0, 0, 0, 1)를 변환하여 수행할 수 있으며, 이미지의 오른쪽 위 모서리에서 샘플링은 변환(1, 1, 0, 1)으로 수행할 수 있습니다.
텍스처 개체는 GL_OES_EGL_image_external OpenGL ES 확장에 의해 정의된 GL_TEXTURE_EXTERNAL_OES 텍스처 대상을 사용합니다. 이렇게 하면 텍스처 사용 방법이 제한됩니다. 텍스처가 바인딩될 때마다 GL_TEXTURE_2D 대상이 아닌 GL_TEXTURE_EXTERNAL_OES 대상에 바인딩되어야 합니다. 또한 텍스처에서 샘플링하는 OpenGL ES 2.0 셰이더는 "#extension GL_OES_EGL_image_external : require" 지시문을 사용하여 이 확장의 사용을 선언해야 합니다. 또한 이러한 셰이더는 samplerExternalOES GLSL 샘플러 유형을 사용하여 텍스처에 액세스해야 합니다.
SurfaceTexture 개체는 모든 스레드에서 만들 수 있습니다. #updateTexImage
는 텍스처 개체를 포함하는 OpenGL ES 컨텍스트를 사용하여 스레드에서만 호출될 수 있습니다. 프레임 사용 가능한 콜백은 임의의 스레드에서 호출되므로 특별한 주의가 수행 #updateTexImage
되지 않는 한 콜백에서 직접 호출해서는 안됩니다.
에 대한 android.graphics.SurfaceTexture
Java 설명서
이 페이지의 일부는 Android 오픈 소스 프로젝트에서 만들고 공유하고 Creative Commons 2.5 특성 라이선스에 설명된 용어에 따라 사용되는 작업을 기반으로 하는 수정 사항입니다.
생성자
SurfaceTexture(Boolean) |
이미지를 지정된 OpenGL 텍스처로 스트리밍하는 새 SurfaceTexture를 생성합니다. |
SurfaceTexture(Int32, Boolean) |
이미지를 지정된 OpenGL 텍스처로 스트리밍하는 새 SurfaceTexture를 생성합니다. |
SurfaceTexture(Int32) |
이미지를 지정된 OpenGL 텍스처로 스트리밍하는 새 SurfaceTexture를 생성합니다. |
SurfaceTexture(IntPtr, JniHandleOwnership) |
JNI 개체의 관리되는 표현을 만들 때 사용되는 생성자입니다. 런타임에서 호출합니다. |
속성
Class |
이 |
DataSpace |
텍스처 이미지와 연결된 데이터 영역을 검색합니다. |
Handle |
기본 Android 인스턴스에 대한 핸들입니다. (다음에서 상속됨 Object) |
IsReleased |
SurfaceTexture가 해제되었는지를 반환 |
JniIdentityHashCode |
이미지 스트림의 프레임을 OpenGL ES 텍스처로 캡처합니다. (다음에서 상속됨 Object) |
JniPeerMembers |
이미지 스트림의 프레임을 OpenGL ES 텍스처로 캡처합니다. |
PeerReference |
이미지 스트림의 프레임을 OpenGL ES 텍스처로 캡처합니다. (다음에서 상속됨 Object) |
ThresholdClass |
이 API는 Android용 Mono 인프라를 지원하며 코드에서 직접 사용할 수 없습니다. |
ThresholdType |
이 API는 Android용 Mono 인프라를 지원하며 코드에서 직접 사용할 수 없습니다. |
Timestamp |
가장 최근 호출에 의해 설정된 텍스처 이미지와 연결된 타임스탬프를 검색합니다 |
메서드
AttachToGLContext(Int32) |
SurfaceTexture를 호출 스레드의 현재 OpenGL ES 컨텍스트에 연결합니다. |
Clone() |
이 개체의 복사본을 만들고 반환합니다. (다음에서 상속됨 Object) |
DetachFromGLContext() |
OpenGL ES 텍스처 개체를 소유하는 OpenGL ES 컨텍스트에서 SurfaceTexture를 분리합니다. |
Dispose() |
이미지 스트림의 프레임을 OpenGL ES 텍스처로 캡처합니다. (다음에서 상속됨 Object) |
Dispose(Boolean) |
이미지 스트림의 프레임을 OpenGL ES 텍스처로 캡처합니다. (다음에서 상속됨 Object) |
Equals(Object) |
다른 개체가 이 개체와 "같음"인지 여부를 나타냅니다. (다음에서 상속됨 Object) |
GetHashCode() |
개체에 대한 해시 코드 값을 반환합니다. (다음에서 상속됨 Object) |
GetTransformMatrix(Single[]) |
가장 최근 호출에서 설정한 텍스처 이미지와 연결된 4x4 텍스처 좌표 변환 행렬을 검색합니다 |
JavaFinalize() |
가비지 수집에서 개체에 대한 참조가 더 이상 없다고 판단할 때 개체의 가비지 수집기에서 호출됩니다. (다음에서 상속됨 Object) |
Notify() |
이 개체의 모니터에서 대기 중인 단일 스레드를 해제합니다. (다음에서 상속됨 Object) |
NotifyAll() |
이 개체의 모니터에서 대기 중인 모든 스레드를 해제합니다. (다음에서 상속됨 Object) |
Release() |
|
ReleaseTexImage() |
텍스처 콘텐츠를 해제합니다. |
SetDefaultBufferSize(Int32, Int32) |
이미지 버퍼의 기본 크기를 설정합니다. |
SetHandle(IntPtr, JniHandleOwnership) |
Handle 속성을 설정합니다. (다음에서 상속됨 Object) |
SetOnFrameAvailableListener(SurfaceTexture+IOnFrameAvailableListener, Handler) |
SurfaceTexture에서 새 이미지 프레임을 사용할 수 있게 되면 호출할 콜백을 등록합니다. |
SetOnFrameAvailableListener(SurfaceTexture+IOnFrameAvailableListener) |
SurfaceTexture에서 새 이미지 프레임을 사용할 수 있게 되면 호출할 콜백을 등록합니다. |
ToArray<T>() |
이미지 스트림의 프레임을 OpenGL ES 텍스처로 캡처합니다. (다음에서 상속됨 Object) |
ToString() |
개체의 문자열 표현을 반환합니다. (다음에서 상속됨 Object) |
UnregisterFromRuntime() |
이미지 스트림의 프레임을 OpenGL ES 텍스처로 캡처합니다. (다음에서 상속됨 Object) |
UpdateTexImage() |
이미지 스트림에서 가장 최근 프레임으로 텍스처 이미지를 업데이트합니다. |
Wait() |
현재 스레드가 각성될 때까지 대기하게 하며, 일반적으로 <알림을 받<>거나 <><중단/종료>합니다.> (다음에서 상속됨 Object) |
Wait(Int64, Int32) |
현재 스레드가 각성될 때까지 대기하게 하며, 일반적으로 <>알림을 받<거나 <중단/>종료><>하거나 일정량의 실시간 경과가 발생할 때까지 대기합니다. (다음에서 상속됨 Object) |
Wait(Int64) |
현재 스레드가 각성될 때까지 대기하게 하며, 일반적으로 <>알림을 받<거나 <중단/>종료><>하거나 일정량의 실시간 경과가 발생할 때까지 대기합니다. (다음에서 상속됨 Object) |
이벤트
FrameAvailable |
이미지 스트림의 프레임을 OpenGL ES 텍스처로 캡처합니다. |
명시적 인터페이스 구현
IJavaPeerable.Disposed() |
이미지 스트림의 프레임을 OpenGL ES 텍스처로 캡처합니다. (다음에서 상속됨 Object) |
IJavaPeerable.DisposeUnlessReferenced() |
이미지 스트림의 프레임을 OpenGL ES 텍스처로 캡처합니다. (다음에서 상속됨 Object) |
IJavaPeerable.Finalized() |
이미지 스트림의 프레임을 OpenGL ES 텍스처로 캡처합니다. (다음에서 상속됨 Object) |
IJavaPeerable.JniManagedPeerState |
이미지 스트림의 프레임을 OpenGL ES 텍스처로 캡처합니다. (다음에서 상속됨 Object) |
IJavaPeerable.SetJniIdentityHashCode(Int32) |
이미지 스트림의 프레임을 OpenGL ES 텍스처로 캡처합니다. (다음에서 상속됨 Object) |
IJavaPeerable.SetJniManagedPeerState(JniManagedPeerStates) |
이미지 스트림의 프레임을 OpenGL ES 텍스처로 캡처합니다. (다음에서 상속됨 Object) |
IJavaPeerable.SetPeerReference(JniObjectReference) |
이미지 스트림의 프레임을 OpenGL ES 텍스처로 캡처합니다. (다음에서 상속됨 Object) |
확장 메서드
JavaCast<TResult>(IJavaObject) |
Android 런타임 확인 형식 변환을 수행합니다. |
JavaCast<TResult>(IJavaObject) |
이미지 스트림의 프레임을 OpenGL ES 텍스처로 캡처합니다. |
GetJniTypeName(IJavaPeerable) |
이미지 스트림의 프레임을 OpenGL ES 텍스처로 캡처합니다. |