DescriptionObjC: Add interface for injecting custom shaders in video views
This CL adds a way for external clients to inject their own OpenGL(ES)
shaders to RTCEAGLVideoView/RTCNSGLVideoView. The shader interface
takes textures as arguments, and not RTCVideoFrame, so that
implementations only has to deal with actual OpenGL rendering, and not
converting frames into textures.
This CL also moves the internal shader code around a bit. The current
RTCShader interface with the implementations RTCI420Shader and
RTCNativeNV12Shader are removed. RTCEAGLVideoView and RTCNSGLVideoView
will be responsible for uploading the frames to textures instead
using the helper classes RTCI420TextureCache and RTCNV12TextureCache.
They then call the shader implementation with these textures. The
rendering code that used to be in RTCI420Shader and RTCNativeNV12Shader
have been merged into one RTCDefaultShaderDelegate class.
BUG=webrtc:7473
Review-Url: https://codereview.webrtc.org/2869143002
Cr-Commit-Position: refs/heads/master@{#18326}
Committed: https://chromium.googlesource.com/external/webrtc/+/13941912b16b522d37c643e0c4413ce378c817f8
Patch Set 1 : Clean #
Total comments: 8
Patch Set 2 : Address comments. #
Total comments: 16
Patch Set 3 : Address comments #Patch Set 4 : Simplify previous delegate protocol #
Total comments: 4
Patch Set 5 : Change name from RTCVideoViewShader to RTCVideoViewShading and remove Delegate naming #Patch Set 6 : Rebase #Messages
Total messages: 52 (37 generated)
|