TODO:
1. more levels? opengl has many combinations. d2d has 4 levels
2. move setupQuality() to handlePaintEvent()
3. gdi+, xv
4. text quality api
5. keep last renderer's quality when renderer changed
6. MIPMAP?
TODO:
1. needUpdateBackground() not virtual. use widget_holder &&
widget_hoder.rect() etc.
2. needDrawFrame() not pure, always !data.isEmpty()
3. handlePaintEvent() parameter can be empty
4. mutex scope. d2d need a larger scope
developers may create a subclass of existing VideoRenderer, for example,
Direct2DRenderer, want to reimplement drawXXX functions. Then private
class may be used.
TODO: how to make sure binary compatible
subclass the existing renderer. logic is clear
TODO:
0. add constructor for with private class parameter
1. what if QPainter is needed
2. unifine the painting logic logic
3. set as pure virtual when other renderers done(gl, graphicsitem)
4. add final vo template
The headers are from https://github.com/2of1/d2d1headers
But many compile error even simply include d2d1.h. So now that project
is not a submodule of QtAV.
have not compared the performance
TODO:
1. how to update bitmap when setSource called and size changes
2. change base class from ImageRenderer to VideoRenderer to avoid QImage
constructing