Skip to content

Commit

Permalink
OpenGLVideo: Cleanup and refactor stage 2
Browse files Browse the repository at this point in the history
- 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
mark-kendall committed Jan 30, 2019
1 parent 0193007 commit 3582884
Show file tree
Hide file tree
Showing 6 changed files with 420 additions and 785 deletions.

0 comments on commit 3582884

Please sign in to comment.