[libcamera-devel,v6,0/4] qcam: accelerate format conversion by OpenGL shader
mbox series

Message ID 20200911085514.30021-1-show.liu@linaro.org
Headers show
Series
  • qcam: accelerate format conversion by OpenGL shader
Related show

Message

Show Liu Sept. 11, 2020, 8:55 a.m. UTC
Hi Laurent,

  This is patch set v6 for qcam accelerated format conversion by OpenGL shader.
  
The changes mainly based on your comments on v5, including:
  * New coordinates matrix for vertex and texture mapping 
  * Move the NV 3 planes fragment shader into one file, and the YUV420 and YVU420 format 
    use the same one.
  * And this version is always renew the fragment shader when set format to avoid
    if the format changed.
  * And of course refine some parts you mentioned.

Please let me know if I still lose something.

Known issue:
  * The on/off issue is still there, not fixed yet.

Thanks,
Show 

Show Liu (4):
  qcam: add OpenGL shader code as Qt resource
  qcam: new viewfinder hierarchy
  qcam: add viewfinderGL class to accelerate the format convert
  qcam: add additional command line option to select the render type

 meson.build                                   |   1 +
 src/qcam/assets/shader/NV_2_planes_UV_f.glsl  |  32 ++
 src/qcam/assets/shader/NV_2_planes_VU_f.glsl  |  32 ++
 src/qcam/assets/shader/NV_3_planes_f.glsl     |  33 ++
 src/qcam/assets/shader/NV_vertex_shader.glsl  |  16 +
 src/qcam/assets/shader/shaders.qrc            |   9 +
 src/qcam/main.cpp                             |   3 +
 src/qcam/main_window.cpp                      |  31 +-
 src/qcam/main_window.h                        |   3 +
 src/qcam/meson.build                          |  20 +-
 src/qcam/viewfinder.h                         |  57 +--
 src/qcam/viewfinder_gl.cpp                    | 456 ++++++++++++++++++
 src/qcam/viewfinder_gl.h                      |  96 ++++
 .../{viewfinder.cpp => viewfinder_qt.cpp}     |  24 +-
 src/qcam/viewfinder_qt.h                      |  64 +++
 15 files changed, 812 insertions(+), 65 deletions(-)
 create mode 100644 src/qcam/assets/shader/NV_2_planes_UV_f.glsl
 create mode 100644 src/qcam/assets/shader/NV_2_planes_VU_f.glsl
 create mode 100644 src/qcam/assets/shader/NV_3_planes_f.glsl
 create mode 100644 src/qcam/assets/shader/NV_vertex_shader.glsl
 create mode 100644 src/qcam/assets/shader/shaders.qrc
 create mode 100644 src/qcam/viewfinder_gl.cpp
 create mode 100644 src/qcam/viewfinder_gl.h
 rename src/qcam/{viewfinder.cpp => viewfinder_qt.cpp} (86%)
 create mode 100644 src/qcam/viewfinder_qt.h