Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
OpenGLVideo: Cleanup and refactor stage 2
- remove the whole concept of filters and filter stages - just create the requisite shaders and decide dynamically whether to add in a render-to-texture stage - explicitly lay out the rendering for each of the 2 possible stages - this greatly reduces the complexity of the code and makes it far easier to see what is happening - paves the way for 'interlaced' shaders that will handle the interlaced chroma conversion properly - but don't actually deinterlace - the entire class is now pretty dynamic and only really needs further work to handle re-creation of textures in the event the video size changes - but currently the video class just deletes and recreates. - to improve the decision making around when to add a render to texture stage, the concept of shader cost is added. This helps the code guess whether it is cheaper to render directly to screen or to render-to- texture and then to screen. - for example, when displaying an interlaced, standard definition frame on a high definition display, it should always be cheaper to deinterlace via the render-to-texture route and then render that texture to screen as the total number of texture samples will be much lower.
- Loading branch information