diff --git a/.gitignore b/.gitignore index aa03dca4ec0..b6c32a00ab7 100644 --- a/.gitignore +++ b/.gitignore @@ -66,360 +66,3 @@ src/mixxx.rc.include src/mixxx.res src/test/**/*.actual res/qrc_mixxx.cc -src/rendergraph/examples/build/cmake_install.cmake -src/rendergraph/examples/build/CMakeCache.txt -src/rendergraph/examples/build/Makefile -src/rendergraph/examples/build/CMakeFiles/cmake.check_cache -src/rendergraph/examples/build/CMakeFiles/CMakeConfigureLog.yaml -src/rendergraph/examples/build/CMakeFiles/CMakeDirectoryInformation.cmake -src/rendergraph/examples/build/CMakeFiles/CMakeRuleHashes.txt -src/rendergraph/examples/build/CMakeFiles/Makefile.cmake -src/rendergraph/examples/build/CMakeFiles/Makefile2 -src/rendergraph/examples/build/CMakeFiles/progress.marks -src/rendergraph/examples/build/CMakeFiles/TargetDirectories.txt -src/rendergraph/examples/build/CMakeFiles/3.26.1/CMakeCXXCompiler.cmake -src/rendergraph/examples/build/CMakeFiles/3.26.1/CMakeDetermineCompilerABI_CXX.bin -src/rendergraph/examples/build/CMakeFiles/3.26.1/CMakeSystem.cmake -src/rendergraph/examples/build/CMakeFiles/3.26.1/CompilerIdCXX/a.out -src/rendergraph/examples/build/CMakeFiles/3.26.1/CompilerIdCXX/CMakeCXXCompilerId.cpp -src/rendergraph/examples/build/gl_example/cmake_install.cmake -src/rendergraph/examples/build/gl_example/gl_example -src/rendergraph/examples/build/gl_example/Makefile -src/rendergraph/examples/build/gl_example/.rcc/gl_example.qrc -src/rendergraph/examples/build/gl_example/.rcc/qrc_gl_example.cpp -src/rendergraph/examples/build/gl_example/CMakeFiles/CMakeDirectoryInformation.cmake -src/rendergraph/examples/build/gl_example/CMakeFiles/progress.marks -src/rendergraph/examples/build/gl_example/CMakeFiles/gl_example.dir/build.make -src/rendergraph/examples/build/gl_example/CMakeFiles/gl_example.dir/cmake_clean.cmake -src/rendergraph/examples/build/gl_example/CMakeFiles/gl_example.dir/compiler_depend.make -src/rendergraph/examples/build/gl_example/CMakeFiles/gl_example.dir/compiler_depend.ts -src/rendergraph/examples/build/gl_example/CMakeFiles/gl_example.dir/depend.make -src/rendergraph/examples/build/gl_example/CMakeFiles/gl_example.dir/DependInfo.cmake -src/rendergraph/examples/build/gl_example/CMakeFiles/gl_example.dir/flags.make -src/rendergraph/examples/build/gl_example/CMakeFiles/gl_example.dir/link.txt -src/rendergraph/examples/build/gl_example/CMakeFiles/gl_example.dir/main.cpp.o -src/rendergraph/examples/build/gl_example/CMakeFiles/gl_example.dir/main.cpp.o.d -src/rendergraph/examples/build/gl_example/CMakeFiles/gl_example.dir/progress.make -src/rendergraph/examples/build/gl_example/CMakeFiles/gl_example.dir/window.cpp.o -src/rendergraph/examples/build/gl_example/CMakeFiles/gl_example.dir/window.cpp.o.d -src/rendergraph/examples/build/gl_example/CMakeFiles/gl_example.dir/.rcc/qrc_gl_example.cpp.o -src/rendergraph/examples/build/gl_example/CMakeFiles/gl_example.dir/.rcc/qrc_gl_example.cpp.o.d -src/rendergraph/examples/build/gl_example/CMakeFiles/gl_example.dir/__/common/examplenodes.cpp.o -src/rendergraph/examples/build/gl_example/CMakeFiles/gl_example.dir/__/common/examplenodes.cpp.o.d -src/rendergraph/examples/build/gl_example/CMakeFiles/gl_example_other_files.dir/build.make -src/rendergraph/examples/build/gl_example/CMakeFiles/gl_example_other_files.dir/cmake_clean.cmake -src/rendergraph/examples/build/gl_example/CMakeFiles/gl_example_other_files.dir/compiler_depend.make -src/rendergraph/examples/build/gl_example/CMakeFiles/gl_example_other_files.dir/compiler_depend.ts -src/rendergraph/examples/build/gl_example/CMakeFiles/gl_example_other_files.dir/DependInfo.cmake -src/rendergraph/examples/build/gl_example/CMakeFiles/gl_example_other_files.dir/progress.make -src/rendergraph/examples/build/rendergraph/cmake_install.cmake -src/rendergraph/examples/build/rendergraph/Makefile -src/rendergraph/examples/build/rendergraph/CMakeFiles/CMakeDirectoryInformation.cmake -src/rendergraph/examples/build/rendergraph/CMakeFiles/progress.marks -src/rendergraph/examples/build/rendergraph/opengl/cmake_install.cmake -src/rendergraph/examples/build/rendergraph/opengl/librendergraph_gl.a -src/rendergraph/examples/build/rendergraph/opengl/Makefile -src/rendergraph/examples/build/rendergraph/opengl/CMakeFiles/CMakeDirectoryInformation.cmake -src/rendergraph/examples/build/rendergraph/opengl/CMakeFiles/progress.marks -src/rendergraph/examples/build/rendergraph/opengl/CMakeFiles/rendergraph_gl.dir/build.make -src/rendergraph/examples/build/rendergraph/opengl/CMakeFiles/rendergraph_gl.dir/cmake_clean_target.cmake -src/rendergraph/examples/build/rendergraph/opengl/CMakeFiles/rendergraph_gl.dir/cmake_clean.cmake -src/rendergraph/examples/build/rendergraph/opengl/CMakeFiles/rendergraph_gl.dir/compiler_depend.internal -src/rendergraph/examples/build/rendergraph/opengl/CMakeFiles/rendergraph_gl.dir/compiler_depend.make -src/rendergraph/examples/build/rendergraph/opengl/CMakeFiles/rendergraph_gl.dir/compiler_depend.ts -src/rendergraph/examples/build/rendergraph/opengl/CMakeFiles/rendergraph_gl.dir/depend.make -src/rendergraph/examples/build/rendergraph/opengl/CMakeFiles/rendergraph_gl.dir/DependInfo.cmake -src/rendergraph/examples/build/rendergraph/opengl/CMakeFiles/rendergraph_gl.dir/engine.cpp.o -src/rendergraph/examples/build/rendergraph/opengl/CMakeFiles/rendergraph_gl.dir/engine.cpp.o.d -src/rendergraph/examples/build/rendergraph/opengl/CMakeFiles/rendergraph_gl.dir/flags.make -src/rendergraph/examples/build/rendergraph/opengl/CMakeFiles/rendergraph_gl.dir/geometry.cpp.o -src/rendergraph/examples/build/rendergraph/opengl/CMakeFiles/rendergraph_gl.dir/geometry.cpp.o.d -src/rendergraph/examples/build/rendergraph/opengl/CMakeFiles/rendergraph_gl.dir/geometrynode.cpp.o -src/rendergraph/examples/build/rendergraph/opengl/CMakeFiles/rendergraph_gl.dir/geometrynode.cpp.o.d -src/rendergraph/examples/build/rendergraph/opengl/CMakeFiles/rendergraph_gl.dir/link.txt -src/rendergraph/examples/build/rendergraph/opengl/CMakeFiles/rendergraph_gl.dir/material.cpp.o -src/rendergraph/examples/build/rendergraph/opengl/CMakeFiles/rendergraph_gl.dir/material.cpp.o.d -src/rendergraph/examples/build/rendergraph/opengl/CMakeFiles/rendergraph_gl.dir/materialshader.cpp.o -src/rendergraph/examples/build/rendergraph/opengl/CMakeFiles/rendergraph_gl.dir/materialshader.cpp.o.d -src/rendergraph/examples/build/rendergraph/opengl/CMakeFiles/rendergraph_gl.dir/openglnode.cpp.o -src/rendergraph/examples/build/rendergraph/opengl/CMakeFiles/rendergraph_gl.dir/openglnode.cpp.o.d -src/rendergraph/examples/build/rendergraph/opengl/CMakeFiles/rendergraph_gl.dir/progress.make -src/rendergraph/examples/build/rendergraph/opengl/CMakeFiles/rendergraph_gl.dir/texture.cpp.o -src/rendergraph/examples/build/rendergraph/opengl/CMakeFiles/rendergraph_gl.dir/texture.cpp.o.d -src/rendergraph/examples/build/rendergraph/opengl/CMakeFiles/rendergraph_gl.dir/treenode.cpp.o -src/rendergraph/examples/build/rendergraph/opengl/CMakeFiles/rendergraph_gl.dir/treenode.cpp.o.d -src/rendergraph/examples/build/rendergraph/opengl/CMakeFiles/rendergraph_gl.dir/backend/baseattributeset.cpp.o -src/rendergraph/examples/build/rendergraph/opengl/CMakeFiles/rendergraph_gl.dir/backend/baseattributeset.cpp.o.d -src/rendergraph/examples/build/rendergraph/opengl/CMakeFiles/rendergraph_gl.dir/backend/basegeometry.cpp.o -src/rendergraph/examples/build/rendergraph/opengl/CMakeFiles/rendergraph_gl.dir/backend/basegeometry.cpp.o.d -src/rendergraph/examples/build/rendergraph/opengl/CMakeFiles/rendergraph_gl.dir/backend/basegeometrynode.cpp.o -src/rendergraph/examples/build/rendergraph/opengl/CMakeFiles/rendergraph_gl.dir/backend/basegeometrynode.cpp.o.d -src/rendergraph/examples/build/rendergraph/opengl/CMakeFiles/rendergraph_gl.dir/backend/basematerial.cpp.o -src/rendergraph/examples/build/rendergraph/opengl/CMakeFiles/rendergraph_gl.dir/backend/basematerial.cpp.o.d -src/rendergraph/examples/build/rendergraph/opengl/CMakeFiles/rendergraph_gl.dir/backend/basematerialshader.cpp.o -src/rendergraph/examples/build/rendergraph/opengl/CMakeFiles/rendergraph_gl.dir/backend/basematerialshader.cpp.o.d -src/rendergraph/examples/build/rendergraph/opengl/CMakeFiles/rendergraph_gl.dir/backend/baseopenglnode.cpp.o -src/rendergraph/examples/build/rendergraph/opengl/CMakeFiles/rendergraph_gl.dir/backend/baseopenglnode.cpp.o.d -src/rendergraph/examples/build/rendergraph/opengl/CMakeFiles/rendergraph_gl.dir/home/antoine/dev/mixxx/src/rendergraph/common/attributeset.cpp.o -src/rendergraph/examples/build/rendergraph/opengl/CMakeFiles/rendergraph_gl.dir/home/antoine/dev/mixxx/src/rendergraph/common/attributeset.cpp.o.d -src/rendergraph/examples/build/rendergraph/opengl/CMakeFiles/rendergraph_gl.dir/home/antoine/dev/mixxx/src/rendergraph/common/node.cpp.o -src/rendergraph/examples/build/rendergraph/opengl/CMakeFiles/rendergraph_gl.dir/home/antoine/dev/mixxx/src/rendergraph/common/node.cpp.o.d -src/rendergraph/examples/build/rendergraph/opengl/CMakeFiles/rendergraph_gl.dir/home/antoine/dev/mixxx/src/rendergraph/common/opacitynode.cpp.o -src/rendergraph/examples/build/rendergraph/opengl/CMakeFiles/rendergraph_gl.dir/home/antoine/dev/mixxx/src/rendergraph/common/opacitynode.cpp.o.d -src/rendergraph/examples/build/rendergraph/opengl/CMakeFiles/rendergraph_gl.dir/home/antoine/dev/mixxx/src/rendergraph/common/treenode.cpp.o -src/rendergraph/examples/build/rendergraph/opengl/CMakeFiles/rendergraph_gl.dir/home/antoine/dev/mixxx/src/rendergraph/common/treenode.cpp.o.d -src/rendergraph/examples/build/rendergraph/opengl/CMakeFiles/rendergraph_gl.dir/home/antoine/dev/mixxx/src/rendergraph/common/types.cpp.o -src/rendergraph/examples/build/rendergraph/opengl/CMakeFiles/rendergraph_gl.dir/home/antoine/dev/mixxx/src/rendergraph/common/types.cpp.o.d -src/rendergraph/examples/build/rendergraph/opengl/CMakeFiles/rendergraph_gl.dir/home/antoine/dev/mixxx/src/rendergraph/common/rendergraph/uniformscache.cpp.o -src/rendergraph/examples/build/rendergraph/opengl/CMakeFiles/rendergraph_gl.dir/home/antoine/dev/mixxx/src/rendergraph/common/rendergraph/uniformscache.cpp.o.d -src/rendergraph/examples/build/rendergraph/opengl/CMakeFiles/rendergraph_gl.dir/home/antoine/dev/mixxx/src/rendergraph/common/rendergraph/uniformset.cpp.o -src/rendergraph/examples/build/rendergraph/opengl/CMakeFiles/rendergraph_gl.dir/home/antoine/dev/mixxx/src/rendergraph/common/rendergraph/uniformset.cpp.o.d -src/rendergraph/examples/build/rendergraph/opengl/CMakeFiles/rendergraph_gl.dir/home/antoine/dev/mixxx/src/rendergraph/common/rendergraph/material/endoftrackmaterial.cpp.o -src/rendergraph/examples/build/rendergraph/opengl/CMakeFiles/rendergraph_gl.dir/home/antoine/dev/mixxx/src/rendergraph/common/rendergraph/material/endoftrackmaterial.cpp.o.d -src/rendergraph/examples/build/rendergraph/opengl/CMakeFiles/rendergraph_gl.dir/home/antoine/dev/mixxx/src/rendergraph/common/rendergraph/material/patternmaterial.cpp.o -src/rendergraph/examples/build/rendergraph/opengl/CMakeFiles/rendergraph_gl.dir/home/antoine/dev/mixxx/src/rendergraph/common/rendergraph/material/patternmaterial.cpp.o.d -src/rendergraph/examples/build/rendergraph/opengl/CMakeFiles/rendergraph_gl.dir/home/antoine/dev/mixxx/src/rendergraph/common/rendergraph/material/rgbamaterial.cpp.o -src/rendergraph/examples/build/rendergraph/opengl/CMakeFiles/rendergraph_gl.dir/home/antoine/dev/mixxx/src/rendergraph/common/rendergraph/material/rgbamaterial.cpp.o.d -src/rendergraph/examples/build/rendergraph/opengl/CMakeFiles/rendergraph_gl.dir/home/antoine/dev/mixxx/src/rendergraph/common/rendergraph/material/rgbmaterial.cpp.o -src/rendergraph/examples/build/rendergraph/opengl/CMakeFiles/rendergraph_gl.dir/home/antoine/dev/mixxx/src/rendergraph/common/rendergraph/material/rgbmaterial.cpp.o.d -src/rendergraph/examples/build/rendergraph/opengl/CMakeFiles/rendergraph_gl.dir/home/antoine/dev/mixxx/src/rendergraph/common/rendergraph/material/texturematerial.cpp.o -src/rendergraph/examples/build/rendergraph/opengl/CMakeFiles/rendergraph_gl.dir/home/antoine/dev/mixxx/src/rendergraph/common/rendergraph/material/texturematerial.cpp.o.d -src/rendergraph/examples/build/rendergraph/opengl/CMakeFiles/rendergraph_gl.dir/home/antoine/dev/mixxx/src/rendergraph/common/rendergraph/material/unicolormaterial.cpp.o -src/rendergraph/examples/build/rendergraph/opengl/CMakeFiles/rendergraph_gl.dir/home/antoine/dev/mixxx/src/rendergraph/common/rendergraph/material/unicolormaterial.cpp.o.d -src/rendergraph/examples/build/rendergraph/scenegraph/cmake_install.cmake -src/rendergraph/examples/build/rendergraph/scenegraph/librendergraph_sg.a -src/rendergraph/examples/build/rendergraph/scenegraph/Makefile -src/rendergraph/examples/build/rendergraph/scenegraph/CMakeFiles/CMakeDirectoryInformation.cmake -src/rendergraph/examples/build/rendergraph/scenegraph/CMakeFiles/progress.marks -src/rendergraph/examples/build/rendergraph/scenegraph/CMakeFiles/rendergraph_sg.dir/build.make -src/rendergraph/examples/build/rendergraph/scenegraph/CMakeFiles/rendergraph_sg.dir/cmake_clean_target.cmake -src/rendergraph/examples/build/rendergraph/scenegraph/CMakeFiles/rendergraph_sg.dir/cmake_clean.cmake -src/rendergraph/examples/build/rendergraph/scenegraph/CMakeFiles/rendergraph_sg.dir/compiler_depend.make -src/rendergraph/examples/build/rendergraph/scenegraph/CMakeFiles/rendergraph_sg.dir/compiler_depend.ts -src/rendergraph/examples/build/rendergraph/scenegraph/CMakeFiles/rendergraph_sg.dir/context.cpp.o -src/rendergraph/examples/build/rendergraph/scenegraph/CMakeFiles/rendergraph_sg.dir/context.cpp.o.d -src/rendergraph/examples/build/rendergraph/scenegraph/CMakeFiles/rendergraph_sg.dir/depend.make -src/rendergraph/examples/build/rendergraph/scenegraph/CMakeFiles/rendergraph_sg.dir/DependInfo.cmake -src/rendergraph/examples/build/rendergraph/scenegraph/CMakeFiles/rendergraph_sg.dir/flags.make -src/rendergraph/examples/build/rendergraph/scenegraph/CMakeFiles/rendergraph_sg.dir/geometry.cpp.o -src/rendergraph/examples/build/rendergraph/scenegraph/CMakeFiles/rendergraph_sg.dir/geometry.cpp.o.d -src/rendergraph/examples/build/rendergraph/scenegraph/CMakeFiles/rendergraph_sg.dir/geometrynode.cpp.o -src/rendergraph/examples/build/rendergraph/scenegraph/CMakeFiles/rendergraph_sg.dir/geometrynode.cpp.o.d -src/rendergraph/examples/build/rendergraph/scenegraph/CMakeFiles/rendergraph_sg.dir/link.txt -src/rendergraph/examples/build/rendergraph/scenegraph/CMakeFiles/rendergraph_sg.dir/material.cpp.o -src/rendergraph/examples/build/rendergraph/scenegraph/CMakeFiles/rendergraph_sg.dir/material.cpp.o.d -src/rendergraph/examples/build/rendergraph/scenegraph/CMakeFiles/rendergraph_sg.dir/materialshader.cpp.o -src/rendergraph/examples/build/rendergraph/scenegraph/CMakeFiles/rendergraph_sg.dir/materialshader.cpp.o.d -src/rendergraph/examples/build/rendergraph/scenegraph/CMakeFiles/rendergraph_sg.dir/progress.make -src/rendergraph/examples/build/rendergraph/scenegraph/CMakeFiles/rendergraph_sg.dir/texture.cpp.o -src/rendergraph/examples/build/rendergraph/scenegraph/CMakeFiles/rendergraph_sg.dir/texture.cpp.o.d -src/rendergraph/examples/build/rendergraph/scenegraph/CMakeFiles/rendergraph_sg.dir/treenode.cpp.o -src/rendergraph/examples/build/rendergraph/scenegraph/CMakeFiles/rendergraph_sg.dir/treenode.cpp.o.d -src/rendergraph/examples/build/rendergraph/scenegraph/CMakeFiles/rendergraph_sg.dir/backend/baseattributeset.cpp.o -src/rendergraph/examples/build/rendergraph/scenegraph/CMakeFiles/rendergraph_sg.dir/backend/baseattributeset.cpp.o.d -src/rendergraph/examples/build/rendergraph/scenegraph/CMakeFiles/rendergraph_sg.dir/backend/basematerial.cpp.o -src/rendergraph/examples/build/rendergraph/scenegraph/CMakeFiles/rendergraph_sg.dir/backend/basematerial.cpp.o.d -src/rendergraph/examples/build/rendergraph/scenegraph/CMakeFiles/rendergraph_sg.dir/backend/basematerialshader.cpp.o -src/rendergraph/examples/build/rendergraph/scenegraph/CMakeFiles/rendergraph_sg.dir/backend/basematerialshader.cpp.o.d -src/rendergraph/examples/build/rendergraph/scenegraph/CMakeFiles/rendergraph_sg.dir/home/antoine/dev/mixxx/src/rendergraph/common/attributeset.cpp.o -src/rendergraph/examples/build/rendergraph/scenegraph/CMakeFiles/rendergraph_sg.dir/home/antoine/dev/mixxx/src/rendergraph/common/attributeset.cpp.o.d -src/rendergraph/examples/build/rendergraph/scenegraph/CMakeFiles/rendergraph_sg.dir/home/antoine/dev/mixxx/src/rendergraph/common/node.cpp.o -src/rendergraph/examples/build/rendergraph/scenegraph/CMakeFiles/rendergraph_sg.dir/home/antoine/dev/mixxx/src/rendergraph/common/node.cpp.o.d -src/rendergraph/examples/build/rendergraph/scenegraph/CMakeFiles/rendergraph_sg.dir/home/antoine/dev/mixxx/src/rendergraph/common/opacitynode.cpp.o -src/rendergraph/examples/build/rendergraph/scenegraph/CMakeFiles/rendergraph_sg.dir/home/antoine/dev/mixxx/src/rendergraph/common/opacitynode.cpp.o.d -src/rendergraph/examples/build/rendergraph/scenegraph/CMakeFiles/rendergraph_sg.dir/home/antoine/dev/mixxx/src/rendergraph/common/treenode.cpp.o -src/rendergraph/examples/build/rendergraph/scenegraph/CMakeFiles/rendergraph_sg.dir/home/antoine/dev/mixxx/src/rendergraph/common/treenode.cpp.o.d -src/rendergraph/examples/build/rendergraph/scenegraph/CMakeFiles/rendergraph_sg.dir/home/antoine/dev/mixxx/src/rendergraph/common/types.cpp.o -src/rendergraph/examples/build/rendergraph/scenegraph/CMakeFiles/rendergraph_sg.dir/home/antoine/dev/mixxx/src/rendergraph/common/types.cpp.o.d -src/rendergraph/examples/build/rendergraph/scenegraph/CMakeFiles/rendergraph_sg.dir/home/antoine/dev/mixxx/src/rendergraph/common/rendergraph/uniformscache.cpp.o -src/rendergraph/examples/build/rendergraph/scenegraph/CMakeFiles/rendergraph_sg.dir/home/antoine/dev/mixxx/src/rendergraph/common/rendergraph/uniformscache.cpp.o.d -src/rendergraph/examples/build/rendergraph/scenegraph/CMakeFiles/rendergraph_sg.dir/home/antoine/dev/mixxx/src/rendergraph/common/rendergraph/uniformset.cpp.o -src/rendergraph/examples/build/rendergraph/scenegraph/CMakeFiles/rendergraph_sg.dir/home/antoine/dev/mixxx/src/rendergraph/common/rendergraph/uniformset.cpp.o.d -src/rendergraph/examples/build/rendergraph/scenegraph/CMakeFiles/rendergraph_sg.dir/home/antoine/dev/mixxx/src/rendergraph/common/rendergraph/material/endoftrackmaterial.cpp.o -src/rendergraph/examples/build/rendergraph/scenegraph/CMakeFiles/rendergraph_sg.dir/home/antoine/dev/mixxx/src/rendergraph/common/rendergraph/material/endoftrackmaterial.cpp.o.d -src/rendergraph/examples/build/rendergraph/scenegraph/CMakeFiles/rendergraph_sg.dir/home/antoine/dev/mixxx/src/rendergraph/common/rendergraph/material/patternmaterial.cpp.o -src/rendergraph/examples/build/rendergraph/scenegraph/CMakeFiles/rendergraph_sg.dir/home/antoine/dev/mixxx/src/rendergraph/common/rendergraph/material/patternmaterial.cpp.o.d -src/rendergraph/examples/build/rendergraph/scenegraph/CMakeFiles/rendergraph_sg.dir/home/antoine/dev/mixxx/src/rendergraph/common/rendergraph/material/rgbamaterial.cpp.o -src/rendergraph/examples/build/rendergraph/scenegraph/CMakeFiles/rendergraph_sg.dir/home/antoine/dev/mixxx/src/rendergraph/common/rendergraph/material/rgbamaterial.cpp.o.d -src/rendergraph/examples/build/rendergraph/scenegraph/CMakeFiles/rendergraph_sg.dir/home/antoine/dev/mixxx/src/rendergraph/common/rendergraph/material/rgbmaterial.cpp.o -src/rendergraph/examples/build/rendergraph/scenegraph/CMakeFiles/rendergraph_sg.dir/home/antoine/dev/mixxx/src/rendergraph/common/rendergraph/material/rgbmaterial.cpp.o.d -src/rendergraph/examples/build/rendergraph/scenegraph/CMakeFiles/rendergraph_sg.dir/home/antoine/dev/mixxx/src/rendergraph/common/rendergraph/material/texturematerial.cpp.o -src/rendergraph/examples/build/rendergraph/scenegraph/CMakeFiles/rendergraph_sg.dir/home/antoine/dev/mixxx/src/rendergraph/common/rendergraph/material/texturematerial.cpp.o.d -src/rendergraph/examples/build/rendergraph/scenegraph/CMakeFiles/rendergraph_sg.dir/home/antoine/dev/mixxx/src/rendergraph/common/rendergraph/material/unicolormaterial.cpp.o -src/rendergraph/examples/build/rendergraph/scenegraph/CMakeFiles/rendergraph_sg.dir/home/antoine/dev/mixxx/src/rendergraph/common/rendergraph/material/unicolormaterial.cpp.o.d -src/rendergraph/examples/build/rendergraph/shaders/cmake_install.cmake -src/rendergraph/examples/build/rendergraph/shaders/Makefile -src/rendergraph/examples/build/rendergraph/shaders/.qsb/endoftrack.frag.qsb -src/rendergraph/examples/build/rendergraph/shaders/.qsb/endoftrack.vert.qsb -src/rendergraph/examples/build/rendergraph/shaders/.qsb/pattern.frag.qsb -src/rendergraph/examples/build/rendergraph/shaders/.qsb/pattern.vert.qsb -src/rendergraph/examples/build/rendergraph/shaders/.qsb/rgb.frag.qsb -src/rendergraph/examples/build/rendergraph/shaders/.qsb/rgb.vert.qsb -src/rendergraph/examples/build/rendergraph/shaders/.qsb/rgba.frag.qsb -src/rendergraph/examples/build/rendergraph/shaders/.qsb/rgba.vert.qsb -src/rendergraph/examples/build/rendergraph/shaders/.qsb/texture.frag.qsb -src/rendergraph/examples/build/rendergraph/shaders/.qsb/texture.vert.qsb -src/rendergraph/examples/build/rendergraph/shaders/.qsb/unicolor.frag.qsb -src/rendergraph/examples/build/rendergraph/shaders/.qsb/unicolor.vert.qsb -src/rendergraph/examples/build/rendergraph/shaders/.rcc/qrc_shaders-gl.cpp -src/rendergraph/examples/build/rendergraph/shaders/.rcc/qrc_shaders-qsb.cpp -src/rendergraph/examples/build/rendergraph/shaders/.rcc/shaders-gl.qrc -src/rendergraph/examples/build/rendergraph/shaders/.rcc/shaders-qsb.qrc -src/rendergraph/examples/build/rendergraph/shaders/CMakeFiles/CMakeDirectoryInformation.cmake -src/rendergraph/examples/build/rendergraph/shaders/CMakeFiles/progress.marks -src/rendergraph/examples/build/rendergraph/shaders/CMakeFiles/rendergraph_gl_other_files.dir/build.make -src/rendergraph/examples/build/rendergraph/shaders/CMakeFiles/rendergraph_gl_other_files.dir/cmake_clean.cmake -src/rendergraph/examples/build/rendergraph/shaders/CMakeFiles/rendergraph_gl_other_files.dir/compiler_depend.make -src/rendergraph/examples/build/rendergraph/shaders/CMakeFiles/rendergraph_gl_other_files.dir/compiler_depend.ts -src/rendergraph/examples/build/rendergraph/shaders/CMakeFiles/rendergraph_gl_other_files.dir/DependInfo.cmake -src/rendergraph/examples/build/rendergraph/shaders/CMakeFiles/rendergraph_gl_other_files.dir/progress.make -src/rendergraph/examples/build/rendergraph/shaders/CMakeFiles/rendergraph_gl_resources_1.dir/build.make -src/rendergraph/examples/build/rendergraph/shaders/CMakeFiles/rendergraph_gl_resources_1.dir/cmake_clean.cmake -src/rendergraph/examples/build/rendergraph/shaders/CMakeFiles/rendergraph_gl_resources_1.dir/compiler_depend.make -src/rendergraph/examples/build/rendergraph/shaders/CMakeFiles/rendergraph_gl_resources_1.dir/compiler_depend.ts -src/rendergraph/examples/build/rendergraph/shaders/CMakeFiles/rendergraph_gl_resources_1.dir/depend.make -src/rendergraph/examples/build/rendergraph/shaders/CMakeFiles/rendergraph_gl_resources_1.dir/DependInfo.cmake -src/rendergraph/examples/build/rendergraph/shaders/CMakeFiles/rendergraph_gl_resources_1.dir/flags.make -src/rendergraph/examples/build/rendergraph/shaders/CMakeFiles/rendergraph_gl_resources_1.dir/progress.make -src/rendergraph/examples/build/rendergraph/shaders/CMakeFiles/rendergraph_gl_resources_1.dir/.rcc/qrc_shaders-gl.cpp.o -src/rendergraph/examples/build/rendergraph/shaders/CMakeFiles/rendergraph_gl_resources_1.dir/.rcc/qrc_shaders-gl.cpp.o.d -src/rendergraph/examples/build/rendergraph/shaders/CMakeFiles/rendergraph_gl_shaders-gl.dir/build.make -src/rendergraph/examples/build/rendergraph/shaders/CMakeFiles/rendergraph_gl_shaders-gl.dir/cmake_clean.cmake -src/rendergraph/examples/build/rendergraph/shaders/CMakeFiles/rendergraph_gl_shaders-gl.dir/compiler_depend.make -src/rendergraph/examples/build/rendergraph/shaders/CMakeFiles/rendergraph_gl_shaders-gl.dir/compiler_depend.ts -src/rendergraph/examples/build/rendergraph/shaders/CMakeFiles/rendergraph_gl_shaders-gl.dir/DependInfo.cmake -src/rendergraph/examples/build/rendergraph/shaders/CMakeFiles/rendergraph_gl_shaders-gl.dir/progress.make -src/rendergraph/examples/build/rendergraph/shaders/CMakeFiles/rendergraph_sg_other_files.dir/build.make -src/rendergraph/examples/build/rendergraph/shaders/CMakeFiles/rendergraph_sg_other_files.dir/cmake_clean.cmake -src/rendergraph/examples/build/rendergraph/shaders/CMakeFiles/rendergraph_sg_other_files.dir/compiler_depend.make -src/rendergraph/examples/build/rendergraph/shaders/CMakeFiles/rendergraph_sg_other_files.dir/compiler_depend.ts -src/rendergraph/examples/build/rendergraph/shaders/CMakeFiles/rendergraph_sg_other_files.dir/DependInfo.cmake -src/rendergraph/examples/build/rendergraph/shaders/CMakeFiles/rendergraph_sg_other_files.dir/progress.make -src/rendergraph/examples/build/rendergraph/shaders/CMakeFiles/rendergraph_sg_resources_1.dir/build.make -src/rendergraph/examples/build/rendergraph/shaders/CMakeFiles/rendergraph_sg_resources_1.dir/cmake_clean.cmake -src/rendergraph/examples/build/rendergraph/shaders/CMakeFiles/rendergraph_sg_resources_1.dir/compiler_depend.make -src/rendergraph/examples/build/rendergraph/shaders/CMakeFiles/rendergraph_sg_resources_1.dir/compiler_depend.ts -src/rendergraph/examples/build/rendergraph/shaders/CMakeFiles/rendergraph_sg_resources_1.dir/depend.make -src/rendergraph/examples/build/rendergraph/shaders/CMakeFiles/rendergraph_sg_resources_1.dir/DependInfo.cmake -src/rendergraph/examples/build/rendergraph/shaders/CMakeFiles/rendergraph_sg_resources_1.dir/flags.make -src/rendergraph/examples/build/rendergraph/shaders/CMakeFiles/rendergraph_sg_resources_1.dir/progress.make -src/rendergraph/examples/build/rendergraph/shaders/CMakeFiles/rendergraph_sg_resources_1.dir/.rcc/qrc_shaders-qsb.cpp.o -src/rendergraph/examples/build/rendergraph/shaders/CMakeFiles/rendergraph_sg_resources_1.dir/.rcc/qrc_shaders-qsb.cpp.o.d -src/rendergraph/examples/build/rendergraph/shaders/CMakeFiles/rendergraph_sg_shaders-qsb.dir/build.make -src/rendergraph/examples/build/rendergraph/shaders/CMakeFiles/rendergraph_sg_shaders-qsb.dir/cmake_clean.cmake -src/rendergraph/examples/build/rendergraph/shaders/CMakeFiles/rendergraph_sg_shaders-qsb.dir/compiler_depend.make -src/rendergraph/examples/build/rendergraph/shaders/CMakeFiles/rendergraph_sg_shaders-qsb.dir/compiler_depend.ts -src/rendergraph/examples/build/rendergraph/shaders/CMakeFiles/rendergraph_sg_shaders-qsb.dir/DependInfo.cmake -src/rendergraph/examples/build/rendergraph/shaders/CMakeFiles/rendergraph_sg_shaders-qsb.dir/progress.make -src/rendergraph/examples/build/sg_example/cmake_install.cmake -src/rendergraph/examples/build/sg_example/Makefile -src/rendergraph/examples/build/sg_example/sg_example -src/rendergraph/examples/build/sg_example/sg_example_qmltyperegistrations.cpp -src/rendergraph/examples/build/sg_example/.generated/sg_example.qmltypes -src/rendergraph/examples/build/sg_example/.rcc/qmake_RenderGraph_copy.qrc -src/rendergraph/examples/build/sg_example/.rcc/qmake_RenderGraph.qrc -src/rendergraph/examples/build/sg_example/.rcc/qrc_qmake_RenderGraph_copy.cpp -src/rendergraph/examples/build/sg_example/.rcc/qrc_qmake_RenderGraph.cpp -src/rendergraph/examples/build/sg_example/.rcc/qrc_sg_example_raw_qml_0.cpp -src/rendergraph/examples/build/sg_example/.rcc/sg_example_raw_qml_0.qrc -src/rendergraph/examples/build/sg_example/.rcc/qmlcache/sg_example_qml_loader_file_list.rsp -src/rendergraph/examples/build/sg_example/.rcc/qmlcache/sg_example_qmlcache_loader.cpp -src/rendergraph/examples/build/sg_example/.rcc/qmlcache/sg_example_qml/main_qml.cpp -src/rendergraph/examples/build/sg_example/CMakeFiles/CMakeDirectoryInformation.cmake -src/rendergraph/examples/build/sg_example/CMakeFiles/progress.marks -src/rendergraph/examples/build/sg_example/CMakeFiles/all_qmllint.dir/build.make -src/rendergraph/examples/build/sg_example/CMakeFiles/all_qmllint.dir/cmake_clean.cmake -src/rendergraph/examples/build/sg_example/CMakeFiles/all_qmllint.dir/compiler_depend.make -src/rendergraph/examples/build/sg_example/CMakeFiles/all_qmllint.dir/compiler_depend.ts -src/rendergraph/examples/build/sg_example/CMakeFiles/all_qmllint.dir/DependInfo.cmake -src/rendergraph/examples/build/sg_example/CMakeFiles/all_qmllint.dir/progress.make -src/rendergraph/examples/build/sg_example/CMakeFiles/all_qmltyperegistrations.dir/build.make -src/rendergraph/examples/build/sg_example/CMakeFiles/all_qmltyperegistrations.dir/cmake_clean.cmake -src/rendergraph/examples/build/sg_example/CMakeFiles/all_qmltyperegistrations.dir/compiler_depend.make -src/rendergraph/examples/build/sg_example/CMakeFiles/all_qmltyperegistrations.dir/compiler_depend.ts -src/rendergraph/examples/build/sg_example/CMakeFiles/all_qmltyperegistrations.dir/DependInfo.cmake -src/rendergraph/examples/build/sg_example/CMakeFiles/all_qmltyperegistrations.dir/progress.make -src/rendergraph/examples/build/sg_example/CMakeFiles/sg_example.dir/build.make -src/rendergraph/examples/build/sg_example/CMakeFiles/sg_example.dir/cmake_clean.cmake -src/rendergraph/examples/build/sg_example/CMakeFiles/sg_example.dir/compiler_depend.internal -src/rendergraph/examples/build/sg_example/CMakeFiles/sg_example.dir/compiler_depend.make -src/rendergraph/examples/build/sg_example/CMakeFiles/sg_example.dir/compiler_depend.ts -src/rendergraph/examples/build/sg_example/CMakeFiles/sg_example.dir/customitem.cpp.o -src/rendergraph/examples/build/sg_example/CMakeFiles/sg_example.dir/customitem.cpp.o.d -src/rendergraph/examples/build/sg_example/CMakeFiles/sg_example.dir/depend.make -src/rendergraph/examples/build/sg_example/CMakeFiles/sg_example.dir/DependInfo.cmake -src/rendergraph/examples/build/sg_example/CMakeFiles/sg_example.dir/flags.make -src/rendergraph/examples/build/sg_example/CMakeFiles/sg_example.dir/link.txt -src/rendergraph/examples/build/sg_example/CMakeFiles/sg_example.dir/main.cpp.o -src/rendergraph/examples/build/sg_example/CMakeFiles/sg_example.dir/main.cpp.o.d -src/rendergraph/examples/build/sg_example/CMakeFiles/sg_example.dir/progress.make -src/rendergraph/examples/build/sg_example/CMakeFiles/sg_example.dir/sg_example_qmltyperegistrations.cpp.o -src/rendergraph/examples/build/sg_example/CMakeFiles/sg_example.dir/sg_example_qmltyperegistrations.cpp.o.d -src/rendergraph/examples/build/sg_example/CMakeFiles/sg_example.dir/.rcc/qrc_qmake_RenderGraph_copy.cpp.o -src/rendergraph/examples/build/sg_example/CMakeFiles/sg_example.dir/.rcc/qrc_qmake_RenderGraph_copy.cpp.o.d -src/rendergraph/examples/build/sg_example/CMakeFiles/sg_example.dir/.rcc/qrc_qmake_RenderGraph.cpp.o -src/rendergraph/examples/build/sg_example/CMakeFiles/sg_example.dir/.rcc/qrc_qmake_RenderGraph.cpp.o.d -src/rendergraph/examples/build/sg_example/CMakeFiles/sg_example.dir/.rcc/qrc_sg_example_raw_qml_0.cpp.o -src/rendergraph/examples/build/sg_example/CMakeFiles/sg_example.dir/.rcc/qrc_sg_example_raw_qml_0.cpp.o.d -src/rendergraph/examples/build/sg_example/CMakeFiles/sg_example.dir/.rcc/qmlcache/sg_example_qmlcache_loader.cpp.o -src/rendergraph/examples/build/sg_example/CMakeFiles/sg_example.dir/.rcc/qmlcache/sg_example_qmlcache_loader.cpp.o.d -src/rendergraph/examples/build/sg_example/CMakeFiles/sg_example.dir/.rcc/qmlcache/sg_example_qml/main_qml.cpp.o -src/rendergraph/examples/build/sg_example/CMakeFiles/sg_example.dir/.rcc/qmlcache/sg_example_qml/main_qml.cpp.o.d -src/rendergraph/examples/build/sg_example/CMakeFiles/sg_example.dir/__/common/examplenodes.cpp.o -src/rendergraph/examples/build/sg_example/CMakeFiles/sg_example.dir/__/common/examplenodes.cpp.o.d -src/rendergraph/examples/build/sg_example/CMakeFiles/sg_example.dir/sg_example_autogen/mocs_compilation.cpp.o -src/rendergraph/examples/build/sg_example/CMakeFiles/sg_example.dir/sg_example_autogen/mocs_compilation.cpp.o.d -src/rendergraph/examples/build/sg_example/CMakeFiles/sg_example_autogen.dir/AutogenInfo.json -src/rendergraph/examples/build/sg_example/CMakeFiles/sg_example_autogen.dir/AutogenUsed.txt -src/rendergraph/examples/build/sg_example/CMakeFiles/sg_example_autogen.dir/build.make -src/rendergraph/examples/build/sg_example/CMakeFiles/sg_example_autogen.dir/cmake_clean.cmake -src/rendergraph/examples/build/sg_example/CMakeFiles/sg_example_autogen.dir/compiler_depend.make -src/rendergraph/examples/build/sg_example/CMakeFiles/sg_example_autogen.dir/compiler_depend.ts -src/rendergraph/examples/build/sg_example/CMakeFiles/sg_example_autogen.dir/DependInfo.cmake -src/rendergraph/examples/build/sg_example/CMakeFiles/sg_example_autogen.dir/ParseCache.txt -src/rendergraph/examples/build/sg_example/CMakeFiles/sg_example_autogen.dir/progress.make -src/rendergraph/examples/build/sg_example/CMakeFiles/sg_example_automoc_json_extraction.dir/build.make -src/rendergraph/examples/build/sg_example/CMakeFiles/sg_example_automoc_json_extraction.dir/cmake_clean.cmake -src/rendergraph/examples/build/sg_example/CMakeFiles/sg_example_automoc_json_extraction.dir/compiler_depend.make -src/rendergraph/examples/build/sg_example/CMakeFiles/sg_example_automoc_json_extraction.dir/compiler_depend.ts -src/rendergraph/examples/build/sg_example/CMakeFiles/sg_example_automoc_json_extraction.dir/DependInfo.cmake -src/rendergraph/examples/build/sg_example/CMakeFiles/sg_example_automoc_json_extraction.dir/progress.make -src/rendergraph/examples/build/sg_example/CMakeFiles/sg_example_other_files.dir/build.make -src/rendergraph/examples/build/sg_example/CMakeFiles/sg_example_other_files.dir/cmake_clean.cmake -src/rendergraph/examples/build/sg_example/CMakeFiles/sg_example_other_files.dir/compiler_depend.make -src/rendergraph/examples/build/sg_example/CMakeFiles/sg_example_other_files.dir/compiler_depend.ts -src/rendergraph/examples/build/sg_example/CMakeFiles/sg_example_other_files.dir/DependInfo.cmake -src/rendergraph/examples/build/sg_example/CMakeFiles/sg_example_other_files.dir/progress.make -src/rendergraph/examples/build/sg_example/CMakeFiles/sg_example_qmllint.dir/build.make -src/rendergraph/examples/build/sg_example/CMakeFiles/sg_example_qmllint.dir/cmake_clean.cmake -src/rendergraph/examples/build/sg_example/CMakeFiles/sg_example_qmllint.dir/compiler_depend.make -src/rendergraph/examples/build/sg_example/CMakeFiles/sg_example_qmllint.dir/compiler_depend.ts -src/rendergraph/examples/build/sg_example/CMakeFiles/sg_example_qmllint.dir/DependInfo.cmake -src/rendergraph/examples/build/sg_example/CMakeFiles/sg_example_qmllint.dir/progress.make -src/rendergraph/examples/build/sg_example/CMakeFiles/sg_example_qmltyperegistration.dir/build.make -src/rendergraph/examples/build/sg_example/CMakeFiles/sg_example_qmltyperegistration.dir/cmake_clean.cmake -src/rendergraph/examples/build/sg_example/CMakeFiles/sg_example_qmltyperegistration.dir/compiler_depend.make -src/rendergraph/examples/build/sg_example/CMakeFiles/sg_example_qmltyperegistration.dir/compiler_depend.ts -src/rendergraph/examples/build/sg_example/CMakeFiles/sg_example_qmltyperegistration.dir/DependInfo.cmake -src/rendergraph/examples/build/sg_example/CMakeFiles/sg_example_qmltyperegistration.dir/progress.make -src/rendergraph/examples/build/sg_example/CMakeFiles/sg_example_tooling.dir/build.make -src/rendergraph/examples/build/sg_example/CMakeFiles/sg_example_tooling.dir/cmake_clean.cmake -src/rendergraph/examples/build/sg_example/CMakeFiles/sg_example_tooling.dir/compiler_depend.make -src/rendergraph/examples/build/sg_example/CMakeFiles/sg_example_tooling.dir/compiler_depend.ts -src/rendergraph/examples/build/sg_example/CMakeFiles/sg_example_tooling.dir/DependInfo.cmake -src/rendergraph/examples/build/sg_example/CMakeFiles/sg_example_tooling.dir/progress.make -src/rendergraph/examples/build/sg_example/RenderGraph/qmldir -src/rendergraph/examples/build/sg_example/RenderGraph/sg_example.qmltypes -src/rendergraph/examples/build/sg_example/RenderGraph/images/test.png -src/rendergraph/examples/build/sg_example/RenderGraph/qml/main.qml -src/rendergraph/examples/build/sg_example/meta_types/qt6sg_example_metatypes.json -src/rendergraph/examples/build/sg_example/meta_types/qt6sg_example_metatypes.json.gen -src/rendergraph/examples/build/sg_example/meta_types/sg_example_json_file_list.txt -src/rendergraph/examples/build/sg_example/meta_types/sg_example_json_file_list.txt.timestamp -src/rendergraph/examples/build/sg_example/qmltypes/sg_example_foreign_types.txt -src/rendergraph/examples/build/sg_example/qmltypes/sg_example_qmltyperegistrations.cpp.d -src/rendergraph/examples/build/sg_example/sg_example_autogen/moc_predefs.h -src/rendergraph/examples/build/sg_example/sg_example_autogen/mocs_compilation.cpp -src/rendergraph/examples/build/sg_example/sg_example_autogen/EWIEGA46WW/moc_customitem.cpp -src/rendergraph/examples/build/sg_example/sg_example_autogen/EWIEGA46WW/moc_customitem.cpp.d -src/rendergraph/examples/build/sg_example/sg_example_autogen/EWIEGA46WW/moc_customitem.cpp.json diff --git a/CMakeLists.txt b/CMakeLists.txt index 362b2973da7..6871d5713ad 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1502,6 +1502,7 @@ else() ) endif() if(QOPENGL) + target_compile_definitions(mixxx-lib PRIVATE __RENDERGRAPH_IS_OPENGL) target_sources(mixxx-lib PRIVATE src/shaders/endoftrackshader.cpp src/shaders/slipmodeshader.cpp @@ -2770,6 +2771,7 @@ if(QML) ) target_link_libraries(mixxx-qml-lib PRIVATE mixxx-qml-mixxxcontrolsplugin) + target_compile_definitions(mixxx-qml-lib PRIVATE __RENDERGRAPH_IS_SCENEGRAPH) target_sources(mixxx-qml-lib PRIVATE src/qml/asyncimageprovider.cpp src/qml/qmlapplication.cpp @@ -2792,21 +2794,20 @@ if(QML) src/qml/qmlwaveformdisplay.cpp src/qml/qmlwaveformrenderer.cpp src/waveform/renderers/waveformdisplayrange.cpp - src/waveform/renderers/allshader/digitsrenderer.cpp src/waveform/renderers/allshader/waveformrenderbeat.cpp src/waveform/renderers/allshader/waveformrenderer.cpp src/waveform/renderers/allshader/waveformrendererendoftrack.cpp - # FIXME depends on rendergraph/openglnode.h - # src/waveform/renderers/allshader/waveformrendererslipmode.cpp - # src/waveform/renderers/allshader/waveformrendererfiltered.cpp - # src/waveform/renderers/allshader/waveformrendererhsv.cpp src/waveform/renderers/allshader/waveformrendererpreroll.cpp src/waveform/renderers/allshader/waveformrendererrgb.cpp src/waveform/renderers/allshader/waveformrenderersignalbase.cpp - # src/waveform/renderers/allshader/waveformrenderersimple.cpp src/waveform/renderers/allshader/waveformrendermark.cpp src/waveform/renderers/allshader/waveformrendermarkrange.cpp + # FIXME depends on rendergraph/openglnode.h + # src/waveform/renderers/allshader/waveformrendererslipmode.cpp + # src/waveform/renderers/allshader/waveformrendererfiltered.cpp + # src/waveform/renderers/allshader/waveformrendererhsv.cpp + # src/waveform/renderers/allshader/waveformrenderersimple.cpp # The following sources need to be in this target to get QML_ELEMENT properly interpreted src/control/controlmodel.cpp src/control/controlsortfiltermodel.cpp @@ -3835,7 +3836,6 @@ add_subdirectory(src/rendergraph/opengl) add_subdirectory(res/shaders/rendergraph) target_link_libraries(mixxx-lib PUBLIC rendergraph_gl) target_compile_definitions(mixxx-lib PRIVATE rendergraph=rendergraph_gl) -target_compile_definitions(mixxx-lib PRIVATE __RENDERGRAPH_OPENGL__) target_compile_definitions(mixxx-lib PRIVATE allshader=allshader_gl) if(QML) add_subdirectory(src/rendergraph/scenegraph) diff --git a/res/qml/WaveformDisplay.qml b/res/qml/WaveformDisplay.qml index 16ad9afd99b..7eb409bcf5d 100644 --- a/res/qml/WaveformDisplay.qml +++ b/res/qml/WaveformDisplay.qml @@ -18,6 +18,8 @@ Item { MixxxControls.WaveformDisplay { anchors.fill: parent group: root.group + zoom: zoomControl.value + backgroundColor: "#5e000000" Mixxx.WaveformRendererEndOfTrack { color: 'blue' @@ -28,36 +30,34 @@ Item { } Mixxx.WaveformRendererMarkRange { - // // + // Mixxx.WaveformMarkRange { startControl: "loop_start_position" endControl: "loop_end_position" enabledControl: "loop_enabled" - color: 'LoopColor' + color: '#00b400' opacity: 0.7 disabledColor: '#FFFFFF' disabledOpacity: 0.6 } - // // - // Mixxx.WaveformMarkRange { - // startControl: "intro_start_position" - // endControl: "intro_end_position" - // // visibilityControl: '[Skin],show_intro_outro_cues' - // color: 'IntroOutroColor' - // opacity: 0.6 - // durationTextColor: '#ffffff' - // durationTextLocation: 'after' - // } - // // - // Mixxx.WaveformMarkRange { - // startControl: "outro_start_position" - // endControl: "outro_end_position" - // // visibilityControl: '[Skin],show_intro_outro_cues' - // color: 'IntroOutroColor' - // opacity: 0.6 - // durationTextColor: '#ffffff' - // durationTextLocation: 'before' - // } + // + Mixxx.WaveformMarkRange { + startControl: "intro_start_position" + endControl: "intro_end_position" + color: '#2c5c9a' + opacity: 0.6 + durationTextColor: '#ffffff' + durationTextLocation: 'after' + } + // + Mixxx.WaveformMarkRange { + startControl: "outro_start_position" + endControl: "outro_end_position" + color: '#2c5c9a' + opacity: 0.6 + durationTextColor: '#ffffff' + durationTextLocation: 'before' + } } Mixxx.WaveformRendererRGB { @@ -80,6 +80,12 @@ Item { textColor: "#FFFFFF" text: " %1 " } + + untilMark.showTime: true + untilMark.showBeats: true + untilMark.align: WaveformUntilMark.AlignTop + untilMark.textSize: 20 + Mixxx.WaveformMark { control: "cue_point" text: 'C' @@ -89,30 +95,25 @@ Item { } Mixxx.WaveformMark { control: "loop_start_position" - text: '↻;' + text: '↻' align: 'top|left' color: 'green' textColor: '#FFFFFF' } Mixxx.WaveformMark { control: "loop_end_position" - // visibilityControl: ' #include #include +#include #include #include "config.h" @@ -20,6 +21,7 @@ #include "waveform/guitick.h" #include "waveform/visualsmanager.h" #include "waveform/waveformwidgetfactory.h" +#include "mixer/playermanager.h" #endif #include "mixxxmainwindow.h" #if defined(__WINDOWS__) @@ -60,17 +62,28 @@ int runMixxx(MixxxApplication* pApp, const CmdlineArgs& args) { int exitCode; #ifdef MIXXX_USE_QML if (args.isQml()) { - auto tick = new GuiTick(); - auto visuals = new VisualsManager(); + auto pTick = std::make_unique(); + auto pVisuals = std::make_unique(); WaveformWidgetFactory::createInstance(); // takes a long time WaveformWidgetFactory::instance()->setConfig(pCoreServices->getSettings()); - WaveformWidgetFactory::instance()->startVSync(tick, visuals); + WaveformWidgetFactory::instance()->startVSync(pTick.get(), pVisuals.get()); mixxx::qml::QmlApplication qmlApplication(pApp, pCoreServices); - visuals->addDeck("[Channel1]"); - visuals->addDeck("[Channel2]"); - visuals->addDeck("[Channel3]"); - visuals->addDeck("[Channel4]"); + + const QStringList visualGroups = pCoreServices->getPlayerManager()->getVisualPlayerGroups(); + for (const QString& group : visualGroups) { + pVisuals->addDeck(group); + } + pCoreServices->getPlayerManager()->connect(pCoreServices->getPlayerManager().get(), + &PlayerManager::numberOfDecksChanged, + &qmlApplication, + [&pVisuals](int decks) { + for (int i = 0; i < decks; ++i) { + QString group = PlayerManager::groupForDeck(i); + pVisuals->addDeckIfNotExist(group); + } + }); exitCode = pApp->exec(); + WaveformWidgetFactory::destroy(); } else #endif { diff --git a/src/qml/qmlwaveformdisplay.cpp b/src/qml/qmlwaveformdisplay.cpp index a48c7089b7a..ccd70a6ed0a 100644 --- a/src/qml/qmlwaveformdisplay.cpp +++ b/src/qml/qmlwaveformdisplay.cpp @@ -19,20 +19,8 @@ #include "qml/qmlplayerproxy.h" #include "rendergraph/context.h" #include "rendergraph/node.h" -#include "rendergraph/opacitynode.h" -#include "waveform/renderers/allshader/waveformrenderbeat.h" -#include "waveform/renderers/allshader/waveformrendererendoftrack.h" -// #include "waveform/renderers/allshader/waveformrendererfiltered.h" -// #include "waveform/renderers/allshader/waveformrendererhsv.h" -#include "waveform/renderers/allshader/waveformrendererpreroll.h" -#include "waveform/renderers/allshader/waveformrendererrgb.h" -// #include "waveform/renderers/allshader/waveformrenderersimple.h" -// #include "waveform/renderers/allshader/waveformrendererslipmode.h" -// #include "waveform/renderers/allshader/waveformrendererstem.h" -// #include "waveform/renderers/allshader/waveformrenderertextured.h" #include "waveform/renderers/allshader/waveformrendermark.h" #include "waveform/renderers/allshader/waveformrendermarkrange.h" -#include "waveform/renderers/waveformdisplayrange.h" using namespace allshader; @@ -42,18 +30,11 @@ namespace qml { QmlWaveformDisplay::QmlWaveformDisplay(QQuickItem* parent) : QQuickItem(parent), - WaveformWidgetRenderer("[Channel1]"), - m_pPlayer(nullptr), - m_pZoom(std::make_unique(getGroup(), - "waveform_zoom", - this, - ControlFlag::NoAssertIfMissing)) { + WaveformWidgetRenderer(), + m_pPlayer(nullptr) { setFlag(QQuickItem::ItemHasContents, true); connect(this, &QmlWaveformDisplay::windowChanged, this, &QmlWaveformDisplay::slotWindowChanged, Qt::DirectConnection); - m_pZoom->connectValueChanged(this, [this](double zoom) { - setZoom(zoom); - }); } QmlWaveformDisplay::~QmlWaveformDisplay() { @@ -68,12 +49,12 @@ void QmlWaveformDisplay::componentComplete() { } void QmlWaveformDisplay::slotWindowChanged(QQuickWindow* window) { - qDebug() << "WINDOWS CHANGED!!"; - m_rendererStack.clear(); m_dirtyFlag |= DirtyFlag::Window; - connect(window, &QQuickWindow::frameSwapped, this, &QmlWaveformDisplay::slotFrameSwapped); + if (window) { + connect(window, &QQuickWindow::frameSwapped, this, &QmlWaveformDisplay::slotFrameSwapped); + } m_timer.restart(); } @@ -88,6 +69,7 @@ int QmlWaveformDisplay::fromTimerToNextSyncMicros(const PerformanceTimer& timer) void QmlWaveformDisplay::slotFrameSwapped() { m_timer.restart(); + // continuous redraw update(); } @@ -98,60 +80,19 @@ void QmlWaveformDisplay::geometryChange(const QRectF& newGeometry, const QRectF& QQuickItem::geometryChange(newGeometry, oldGeometry); } -// QSGNode* QmlWaveformDisplay::updatePaintNode(QSGNode* node, UpdatePaintNodeData*) { -// // TODO the flag is not set when the position changes, -// // but only when the size changes. Until we found a way -// // to detect position changed, call setRect always -// // (we check internally if the rect changed anyway) -// // -// // if (m_dirtyFlag.testFlag(DirtyFlag::Geometry)) { -// // m_dirtyFlag.setFlag(DirtyFlag::Geometry, false); -// // setRect(mapRectToScene(boundingRect())); -// //} -// setRect(mapRectToScene(boundingRect())); -// setViewport(window()->size()); -// setDevicePixelRatio(window()->devicePixelRatio()); - -// // Will recalculate the matrix if any of the above changed. -// // Nodes can use getMatrixChanged() to check if the matrix -// // has changed and take appropriate action. -// updateMatrix(); - -// auto* bgNode = dynamic_cast(node); -// if (!bgNode) { -// static int k = 0; -// k++; -// bgNode = new QSGSimpleRectNode(); -// bgNode->setRect(boundingRect()); -// bgNode->setColor(QColor((k & 1) ? 64 : 0, (k & 4) ? 64 : 0, (k & 2) ? 64 : 0, 255)); - -// auto pEndOfTrackNode = -// std::make_unique( -// this, QColor("yellow")); -// pEndOfTrackNode->init(); -// bgNode->appendChildNode(pEndOfTrackNode->backendNode()); - -// m_pEngine = std::make_unique(std::move(pEndOfTrackNode)); -// m_pEngine->initialize(); -// } - -// return bgNode; -// } - QSGNode* QmlWaveformDisplay::updatePaintNode(QSGNode* node, UpdatePaintNodeData*) { - setRect(mapRectToScene(boundingRect())); - setViewport(window()->size()); - setDevicePixelRatio(window()->devicePixelRatio()); auto* bgNode = dynamic_cast(node); static rendergraph::GeometryNode* pPreRoll; - // updateMatrix(); - - if (!bgNode || m_dirtyFlag.testFlag(DirtyFlag::Window)) { - if (bgNode) { - delete bgNode; - m_dirtyFlag.setFlag(DirtyFlag::Window, false); + if (m_dirtyFlag.testFlag(DirtyFlag::Window)) { + delete bgNode; + auto *pContext = getContext(); + if (pContext){ + delete pContext; } + m_dirtyFlag.setFlag(DirtyFlag::Window, false); + } + if (!bgNode) { bgNode = new QSGSimpleRectNode(); bgNode->setRect(boundingRect()); @@ -160,38 +101,41 @@ QSGNode* QmlWaveformDisplay::updatePaintNode(QSGNode* node, UpdatePaintNodeData* } setContext(new rendergraph::Context(window())); m_pTopNode = new rendergraph::Node; - // auto pOpacityNode = std::make_unique(); m_rendererStack.clear(); for (auto* pQmlRenderer : m_waveformRenderers) { auto renderer = pQmlRenderer->create(this); addRenderer(renderer.renderer); - // appendChildTo(pOpacityNode, renderer.node); m_pTopNode->appendChildNode(std::unique_ptr(renderer.node)); - auto waveformRenderMark = + auto *pWaveformRenderMark = dynamic_cast( renderer.renderer); - if (waveformRenderMark) { - m_waveformRenderMark = waveformRenderMark; + if (pWaveformRenderMark) { + m_waveformRenderMark = pWaveformRenderMark; } - auto waveformRenderMarkRange = + auto *pWaveformRenderMarkRange = dynamic_cast( renderer.renderer); - if (waveformRenderMarkRange) { - m_waveformRenderMarkRange = waveformRenderMarkRange; + if (pWaveformRenderMarkRange) { + m_waveformRenderMarkRange = pWaveformRenderMarkRange; } } - // pTopNode->appendChildNode(std::move(pOpacityNode)); bgNode->appendChildNode(m_pTopNode->backendNode()); - - bgNode->setColor(QColor(0, 0, 0, 255)); init(); } + if (m_dirtyFlag.testFlag(DirtyFlag::Background)) { + m_dirtyFlag.setFlag(DirtyFlag::Background, false); + bgNode->setColor(m_backgroundColor); + } + if (m_dirtyFlag.testFlag(DirtyFlag::Geometry)) { m_dirtyFlag.setFlag(DirtyFlag::Geometry, false); + setRect(mapRectToScene(boundingRect())); + setViewport(window()->size()); + setDevicePixelRatio(window()->devicePixelRatio()); bgNode->setRect(boundingRect()); auto rect = QRectF(boundingRect().x() + @@ -246,23 +190,12 @@ void QmlWaveformDisplay::setPlayer(QmlPlayerProxy* pPlayer) { } void QmlWaveformDisplay::setGroup(const QString& group) { - // TODO update group in parent class if (getGroup() == group) { return; } WaveformWidgetRenderer::setGroup(group); - m_pZoom = std::make_unique( - getGroup(), "waveform_zoom", this, ControlFlag::NoAssertIfMissing); - m_pZoom->connectValueChanged(this, [this](double zoom) { - setZoom(zoom); - }); emit groupChanged(group); - - // TODO m0dB unique_ptr ? - // delete m_pWaveformDisplayRange; - // m_pWaveformDisplayRange = new WaveformDisplayRange(m_group); - // m_pWaveformDisplayRange->init(); } void QmlWaveformDisplay::slotTrackLoaded(TrackPointer pTrack) { @@ -283,17 +216,17 @@ void QmlWaveformDisplay::slotTrackUnloaded() { } void QmlWaveformDisplay::setCurrentTrack(TrackPointer pTrack) { + auto pCurrentTrack = getTrackInfo(); // TODO: Check if this is actually possible - if (m_pCurrentTrack == pTrack) { + if (pCurrentTrack == pTrack) { return; } - setTrack(pTrack); - if (m_pCurrentTrack != nullptr) { - disconnect(m_pCurrentTrack.get(), nullptr, this, nullptr); + if (pCurrentTrack != nullptr) { + disconnect(pCurrentTrack.get(), nullptr, this, nullptr); } - m_pCurrentTrack = pTrack; + setTrack(pTrack); if (pTrack != nullptr) { connect(pTrack.get(), &Track::waveformSummaryUpdated, @@ -301,10 +234,6 @@ void QmlWaveformDisplay::setCurrentTrack(TrackPointer pTrack) { &QmlWaveformDisplay::slotWaveformUpdated); } slotWaveformUpdated(); - - // if (m_pWaveformDisplayRange) { - // m_pWaveformDisplayRange->setTrack(m_pCurrentTrack); - // } } void QmlWaveformDisplay::slotWaveformUpdated() { diff --git a/src/qml/qmlwaveformdisplay.h b/src/qml/qmlwaveformdisplay.h index 9edd97247fd..ca467c966bc 100644 --- a/src/qml/qmlwaveformdisplay.h +++ b/src/qml/qmlwaveformdisplay.h @@ -40,6 +40,8 @@ class QmlWaveformDisplay : public QQuickItem, ISyncTimeProvider, public Waveform NOTIFY playerChanged REQUIRED) Q_PROPERTY(QString group READ getGroup WRITE setGroup NOTIFY groupChanged REQUIRED) Q_PROPERTY(QQmlListProperty renderers READ renderers) + Q_PROPERTY(double zoom READ getZoom WRITE setZoom NOTIFY zoomChanged) + Q_PROPERTY(QColor backgroundColor READ getBackgroundColor WRITE setBackgroundColor NOTIFY backgroundColorChanged) Q_CLASSINFO("DefaultProperty", "renderers") QML_NAMED_ELEMENT(WaveformDisplay) @@ -50,7 +52,20 @@ class QmlWaveformDisplay : public QQuickItem, ISyncTimeProvider, public Waveform void setPlayer(QmlPlayerProxy* player); QmlPlayerProxy* getPlayer() const; + QColor getBackgroundColor() const { + return m_backgroundColor; + } + void setBackgroundColor(QColor color) { + m_backgroundColor = color; + m_dirtyFlag.setFlag(DirtyFlag::Background, true); + emit backgroundColorChanged(); + } + void setGroup(const QString& group) override; + void setZoom(double zoom) { + WaveformWidgetRenderer::setZoom(zoom); + emit zoomChanged(); + } int fromTimerToNextSyncMicros(const PerformanceTimer& timer) override; int getSyncIntervalTimeMicros() const override { @@ -74,35 +89,37 @@ class QmlWaveformDisplay : public QQuickItem, ISyncTimeProvider, public Waveform void slotWindowChanged(QQuickWindow* window); signals: void playerChanged(); + void zoomChanged(); void groupChanged(const QString& group); + void backgroundColorChanged(); private: void setCurrentTrack(TrackPointer pTrack); + // Properties QPointer m_pPlayer; - TrackPointer m_pCurrentTrack; + QColor m_backgroundColor{QColor(0, 0, 0, 255)}; PerformanceTimer m_timer; - int m_syncIntervalTimeMicros{1000000 / 60}; // TODO don't hardcode + int m_syncIntervalTimeMicros{1000000 / 10}; // TODO don't hardcode enum class DirtyFlag : int { None = 0x0, Geometry = 0x1, Window = 0x2, + Background = 0x4, }; Q_DECLARE_FLAGS(DirtyFlags, DirtyFlag) DirtyFlags m_dirtyFlag{DirtyFlag::None}; QList m_waveformRenderers; - allshader::WaveformRenderMark* m_waveformRenderMark; - allshader::WaveformRenderMarkRange* m_waveformRenderMarkRange; // Owned by the QML scene? rendergraph::Node* m_pTopNode; - - std::unique_ptr m_pZoom; + allshader::WaveformRenderMark* m_waveformRenderMark; + allshader::WaveformRenderMarkRange* m_waveformRenderMarkRange; }; } // namespace qml diff --git a/src/qml/qmlwaveformrenderer.cpp b/src/qml/qmlwaveformrenderer.cpp index 4e005c57abd..c8ec29261e5 100644 --- a/src/qml/qmlwaveformrenderer.cpp +++ b/src/qml/qmlwaveformrenderer.cpp @@ -1,6 +1,8 @@ #include "qml/qmlwaveformrenderer.h" +#include #include "moc_qmlwaveformrenderer.cpp" +#include "util/assert.h" #include "waveform/renderers/allshader/waveformrenderbeat.h" #include "waveform/renderers/allshader/waveformrendererendoftrack.h" #include "waveform/renderers/allshader/waveformrendererpreroll.h" @@ -36,7 +38,7 @@ QmlWaveformRendererMarkRange::QmlWaveformRendererMarkRange() { // } QmlWaveformRendererMark::QmlWaveformRendererMark() - : m_defaultMark(nullptr) { + : m_defaultMark(nullptr), m_untilMark(std::make_unique()) { } QmlWaveformRendererFactory::Renderer QmlWaveformRendererEndOfTrack::create( @@ -109,9 +111,16 @@ QmlWaveformRendererFactory::Renderer QmlWaveformRendererMarkRange::create( QmlWaveformRendererFactory::Renderer QmlWaveformRendererMark::create( WaveformWidgetRenderer* waveformWidget) const { + VERIFY_OR_DEBUG_ASSERT(!!m_untilMark){ + return QmlWaveformRendererFactory::Renderer{}; + } auto* renderer = new WaveformRenderMark(waveformWidget, m_playMarkerColor, m_playMarkerBackground, + m_untilMark->showTime(), + m_untilMark->showBeats(), + static_cast(m_untilMark->align()), + m_untilMark->textSize(), ::WaveformRendererAbstract::Play); int priority = 0; for (auto* pMark : m_marks) { diff --git a/src/qml/qmlwaveformrenderer.h b/src/qml/qmlwaveformrenderer.h index 7a6b6331c78..5af9860fd0e 100644 --- a/src/qml/qmlwaveformrenderer.h +++ b/src/qml/qmlwaveformrenderer.h @@ -1,14 +1,17 @@ #pragma once +#include #include -#include "rendergraph/context.h" -#include "rendergraph/treenode.h" #include "waveform/renderers/waveformrendererabstract.h" #include "waveform/renderers/waveformwidgetrenderer.h" class WaveformWidgetRenderer; +namespace rendergraph { +class TreeNode; +} // namespace rendergraph + namespace allshaders { class WaveformRendererEndOfTrack; class WaveformRendererPreroll; @@ -167,11 +170,11 @@ class QmlWaveformRendererBeat class QmlWaveformMarkRange : public QObject { Q_OBJECT - Q_PROPERTY(QString color READ color WRITE setColor) - Q_PROPERTY(QString disabledColor READ disabledColor WRITE setDisabledColor) + Q_PROPERTY(QColor color READ color WRITE setColor) + Q_PROPERTY(QColor disabledColor READ disabledColor WRITE setDisabledColor) Q_PROPERTY(double opacity READ opacity WRITE setOpacity) Q_PROPERTY(double disabledOpacity READ disabledOpacity WRITE setDisabledOpacity) - Q_PROPERTY(QString durationTextColor READ durationTextColor WRITE setDurationTextColor) + Q_PROPERTY(QColor durationTextColor READ durationTextColor WRITE setDurationTextColor) Q_PROPERTY(QString startControl READ startControl WRITE setStartControl) Q_PROPERTY(QString endControl READ endControl WRITE setEndControl) Q_PROPERTY(QString enabledControl READ enabledControl WRITE setEnabledControl) @@ -180,19 +183,19 @@ class QmlWaveformMarkRange : public QObject { QML_NAMED_ELEMENT(WaveformMarkRange) public: - QString color() const { + QColor color() const { return m_color; } - void setColor(const QString& value) { + void setColor(const QColor& value) { m_color = value; } - QString disabledColor() const { + QColor disabledColor() const { return m_disabledColor; } - void setDisabledColor(const QString& value) { + void setDisabledColor(const QColor& value) { m_disabledColor = value; } @@ -212,11 +215,11 @@ class QmlWaveformMarkRange : public QObject { m_disabledOpacity = value; } - QString durationTextColor() const { + QColor durationTextColor() const { return m_durationTextColor; } - void setDurationTextColor(const QString& value) { + void setDurationTextColor(const QColor& value) { m_durationTextColor = value; } @@ -263,9 +266,9 @@ class QmlWaveformMarkRange : public QObject { private: double m_opacity{0.5}; double m_disabledOpacity{0.5}; - QString m_color; - QString m_disabledColor; - QString m_durationTextColor; + QColor m_color; + QColor m_disabledColor; + QColor m_durationTextColor; QString m_startControl; QString m_endControl; QString m_enabledControl; @@ -345,6 +348,52 @@ class QmlWaveformMark : public QObject { QString m_icon; }; +class QmlWaveformUntilMark : public QObject { + Q_OBJECT + Q_PROPERTY(bool showTime READ showTime WRITE setShowTime) + Q_PROPERTY(bool showBeats READ showBeats WRITE setShowBeats) + Q_PROPERTY(HAlignment align READ align WRITE setAlign) + Q_PROPERTY(int textSize READ textSize WRITE setTextSize) + + QML_NAMED_ELEMENT(WaveformUntilMark) + public: + enum HAlignment { AlignTop = Qt::AlignTop, + AlignCenter = Qt::AlignCenter, + AlignBottom = Qt::AlignBottom }; + Q_ENUM(HAlignment) + + bool showTime() const { + return m_showTime; + } + void setShowTime(bool showTime) { + m_showTime = showTime; + } + bool showBeats() const { + return m_showBeats; + } + void setShowBeats(bool showBeats) { + m_showBeats = showBeats; + } + HAlignment align() const { + return m_align; + } + void setAlign(HAlignment align) { + m_align = align; + } + int textSize() const { + return m_textSize; + } + void setTextSize(int textSize) { + m_textSize = textSize; + } + + private: + bool m_showTime; + bool m_showBeats; + HAlignment m_align; + int m_textSize; +}; + class QmlWaveformRendererMarkRange : public QmlWaveformRendererFactory { Q_OBJECT @@ -401,6 +450,7 @@ class QmlWaveformRendererMark Q_PROPERTY(QColor playMarkerColor READ playMarkerColor WRITE setPlayMarkerColor) Q_PROPERTY(QColor playMarkerBackground READ playMarkerBackground WRITE setPlayMarkerBackground) Q_PROPERTY(QmlWaveformMark* defaultMark READ defaultMark WRITE setDefaultMark) + Q_PROPERTY(QmlWaveformUntilMark* untilMark READ untilMark FINAL) Q_CLASSINFO("DefaultProperty", "marks") QML_NAMED_ELEMENT(WaveformRendererMark) @@ -410,6 +460,10 @@ class QmlWaveformRendererMark QmlWaveformMark* defaultMark() const { return m_defaultMark; } + + QmlWaveformUntilMark* untilMark() const { + return m_untilMark.get(); + } void setDefaultMark(QmlWaveformMark* defaultMark) { m_defaultMark = defaultMark; } @@ -439,6 +493,7 @@ class QmlWaveformRendererMark QColor m_playMarkerBackground; QList m_marks; QmlWaveformMark* m_defaultMark; + std::unique_ptr m_untilMark; }; } // namespace qml diff --git a/src/waveform/renderers/allshader/waveformrendermark.cpp b/src/waveform/renderers/allshader/waveformrendermark.cpp index 88e0080c8a2..a09f4584335 100644 --- a/src/waveform/renderers/allshader/waveformrendermark.cpp +++ b/src/waveform/renderers/allshader/waveformrendermark.cpp @@ -73,18 +73,26 @@ QString timeSecToString(double timeSec) { allshader::WaveformRenderMark::WaveformRenderMark( WaveformWidgetRenderer* waveformWidget, -#ifndef __RENDERGRAPH_OPENGL__ +#ifdef __RENDERGRAPH_IS_SCENEGRAPH QColor fgPlayColor, QColor bgPlayColor, + bool untilMarkShowBeats, + bool untilMarkShowTime, + Qt::Alignment untilMarkAlign, + int untilMarkTextSize, #endif ::WaveformRendererAbstract::PositionSource type) : ::WaveformRenderMarkBase(waveformWidget, false), m_beatsUntilMark(0), m_timeUntilMark(0.0), m_pTimeRemainingControl(nullptr), -#ifndef __RENDERGRAPH_OPENGL__ +#ifdef __RENDERGRAPH_IS_SCENEGRAPH m_fgPlayColor(fgPlayColor), m_bgPlayColor(bgPlayColor), + m_untilMarkShowBeats(untilMarkShowBeats), + m_untilMarkShowTime(untilMarkShowTime), + m_untilMarkAlign(untilMarkAlign), + m_untilMarkTextSize(untilMarkTextSize), #endif m_isSlipRenderer(type == ::WaveformRendererAbstract::Slip), m_playPosHeight(0.f), @@ -315,20 +323,32 @@ void allshader::WaveformRenderMark::update() { {1.f, 1.f}); } +#ifdef __RENDERGRAPH_IS_SCENEGRAPH + if (m_untilMarkShowBeats || m_untilMarkShowTime ) +#else if (WaveformWidgetFactory::instance()->getUntilMarkShowBeats() || - WaveformWidgetFactory::instance()->getUntilMarkShowTime()) { + WaveformWidgetFactory::instance()->getUntilMarkShowTime()) +#endif + { updateUntilMark(playPosition, nextMarkPosition); drawUntilMark(currentMarkPoint + 20); } } void allshader::WaveformRenderMark::drawUntilMark(float x) { +#ifdef __RENDERGRAPH_IS_SCENEGRAPH + const bool untilMarkShowBeats = m_untilMarkShowBeats; + const bool untilMarkShowTime = m_untilMarkShowTime; + const auto untilMarkAlign = m_untilMarkAlign; + const auto untilMarkTextPointSize = m_untilMarkTextSize; +#else const bool untilMarkShowBeats = WaveformWidgetFactory::instance()->getUntilMarkShowBeats(); const bool untilMarkShowTime = WaveformWidgetFactory::instance()->getUntilMarkShowTime(); const auto untilMarkAlign = WaveformWidgetFactory::instance()->getUntilMarkAlign(); const auto untilMarkTextPointSize = WaveformWidgetFactory::instance()->getUntilMarkTextPointSize(); +#endif m_pDigitsRenderNode->updateTexture(m_waveformRenderer->getContext(), untilMarkTextPointSize, getMaxHeightForText(), @@ -401,15 +421,13 @@ void allshader::WaveformRenderMark::updatePlayPosMarkTexture(rendergraph::Contex painter.setWorldMatrixEnabled(false); -#ifdef __RENDERGRAPH_OPENGL__ +#ifdef __RENDERGRAPH_IS_OPENGL const QColor fgColor{m_waveformRenderer->getWaveformSignalColors()->getPlayPosColor()}; const QColor bgColor{m_waveformRenderer->getWaveformSignalColors()->getBgColor()}; #else const QColor& fgColor = m_fgPlayColor; const QColor& bgColor = m_bgPlayColor; #endif - qDebug() << "COOOLOOOOR" << fgColor; - qDebug() << "COOOLOOOOR" << bgColor; // draw dim outlines to increase playpos/waveform contrast painter.setPen(bgColor); diff --git a/src/waveform/renderers/allshader/waveformrendermark.h b/src/waveform/renderers/allshader/waveformrendermark.h index b15b59b27d4..ad8ac716d56 100644 --- a/src/waveform/renderers/allshader/waveformrendermark.h +++ b/src/waveform/renderers/allshader/waveformrendermark.h @@ -25,9 +25,13 @@ class allshader::WaveformRenderMark : public ::WaveformRenderMarkBase, public rendergraph::Node { public: explicit WaveformRenderMark(WaveformWidgetRenderer* waveformWidget, -#ifndef __RENDERGRAPH_OPENGL__ +#ifdef __RENDERGRAPH_IS_SCENEGRAPH QColor fgPlayColor, QColor bgPlayColor, + bool untilMarkShowBeats, + bool untilMarkShowTime, + Qt::Alignment untilMarkAlign, + int untilMarkTextSize, #endif ::WaveformRendererAbstract::PositionSource type = ::WaveformRendererAbstract::Play); @@ -76,9 +80,14 @@ class allshader::WaveformRenderMark : public ::WaveformRenderMarkBase, DigitsRenderNode* m_pDigitsRenderNode{}; -#ifndef __RENDERGRAPH_OPENGL__ +#ifdef __RENDERGRAPH_IS_SCENEGRAPH QColor m_fgPlayColor; QColor m_bgPlayColor; + + bool m_untilMarkShowBeats; + bool m_untilMarkShowTime; + Qt::Alignment m_untilMarkAlign; + int m_untilMarkTextSize; #endif DISALLOW_COPY_AND_ASSIGN(WaveformRenderMark); diff --git a/src/waveform/renderers/waveformwidgetrenderer.cpp b/src/waveform/renderers/waveformwidgetrenderer.cpp index 9e7cab3a7ae..c6509668ed2 100644 --- a/src/waveform/renderers/waveformwidgetrenderer.cpp +++ b/src/waveform/renderers/waveformwidgetrenderer.cpp @@ -5,6 +5,7 @@ #include "control/controlproxy.h" #include "track/track.h" +#include "util/assert.h" #include "util/math.h" #include "waveform/isynctimeprovider.h" #include "waveform/renderers/waveformrendererabstract.h" @@ -101,6 +102,10 @@ bool WaveformWidgetRenderer::init() { m_truePosSample[type] = -1.0; } + VERIFY_OR_DEBUG_ASSERT(!m_group.isEmpty()){ + return false; + } + m_visualPlayPosition = VisualPlayPosition::getVisualPlayPosition(m_group); m_pRateRatioCO = std::make_unique( diff --git a/src/waveform/renderers/waveformwidgetrenderer.h b/src/waveform/renderers/waveformwidgetrenderer.h index 471a28a3e4e..96f6ef3e8a8 100644 --- a/src/waveform/renderers/waveformwidgetrenderer.h +++ b/src/waveform/renderers/waveformwidgetrenderer.h @@ -34,7 +34,7 @@ class WaveformWidgetRenderer { }; public: - explicit WaveformWidgetRenderer(const QString& group); + explicit WaveformWidgetRenderer(const QString& group = {}); virtual ~WaveformWidgetRenderer(); bool init(); @@ -120,7 +120,7 @@ class WaveformWidgetRenderer { int getTotalVSample() const { return m_totalVSamples; } - double getZoomFactor() const { + double getZoom() const { return m_zoomFactor; } double getGain(bool applyCompensation) const { diff --git a/src/waveform/visualplayposition.cpp b/src/waveform/visualplayposition.cpp index 19fa476376c..41e15a8992c 100644 --- a/src/waveform/visualplayposition.cpp +++ b/src/waveform/visualplayposition.cpp @@ -60,18 +60,8 @@ void VisualPlayPosition::set( double VisualPlayPosition::calcOffsetAtNextVSync( ISyncTimeProvider* pSyncTimeProvider, const VisualPlayPositionData& data) { if (data.m_audioBufferMicroS != 0.0) { - int refToVSync; - int syncIntervalTimeMicros; -#ifdef MIXXX_USE_QML - if (CmdlineArgs::Instance().isQml()) { - refToVSync = 0; - syncIntervalTimeMicros = 0; - } else -#endif - { - refToVSync = pSyncTimeProvider->fromTimerToNextSyncMicros(data.m_referenceTime); - syncIntervalTimeMicros = pSyncTimeProvider->getSyncIntervalTimeMicros(); - } + int refToVSync = pSyncTimeProvider->fromTimerToNextSyncMicros(data.m_referenceTime); + int syncIntervalTimeMicros = pSyncTimeProvider->getSyncIntervalTimeMicros(); // The positive offset is limited to the audio buffer + 2 x waveform sync interval // This should be sufficient to compensate jitter, but does not continue // in case of underflows. diff --git a/src/waveform/visualsmanager.h b/src/waveform/visualsmanager.h index ddb18b863c0..c71357e50a2 100644 --- a/src/waveform/visualsmanager.h +++ b/src/waveform/visualsmanager.h @@ -13,7 +13,7 @@ class VisualPlayPosition; namespace { // Rate at which the playpos slider is updated -constexpr int kUpdateRate = 60; // updates per second +constexpr int kUpdateRate = 15; // updates per second // Number of kiUpdateRates that go by before we update BPM. constexpr int kSlowUpdateDivider = 4; // kUpdateRate / kSlowUpdateDivider = 3.75 updates per sec diff --git a/src/waveform/vsyncthread.h b/src/waveform/vsyncthread.h index 60b8fbfaa51..fd89dd58b30 100644 --- a/src/waveform/vsyncthread.h +++ b/src/waveform/vsyncthread.h @@ -34,18 +34,17 @@ class VSyncThread : public QThread, public ISyncTimeProvider { void setSyncIntervalTimeMicros(int usSyncTimer); int droppedFrames(); void setSwapWait(int sw); - // ISyncTimerProvider int fromTimerToNextSyncMicros(const PerformanceTimer& timer) override; - int getSyncIntervalTimeMicros() const override { - return m_syncIntervalTimeMicros; - } - void vsyncSlotFinished(); void getAvailableVSyncTypes(QList>* list); void setupSync(WGLWidget* glw, int index); void waitUntilSwap(WGLWidget* glw); mixxx::Duration sinceLastSwap() const; + // ISyncTimerProvider + int getSyncIntervalTimeMicros() const override { + return m_syncIntervalTimeMicros; + } void updatePLL(); bool pllInitializing() const; VSyncMode vsyncMode() const { diff --git a/src/waveform/waveformwidgetfactory.cpp b/src/waveform/waveformwidgetfactory.cpp index e83aecf86d6..56c0d8b30ff 100644 --- a/src/waveform/waveformwidgetfactory.cpp +++ b/src/waveform/waveformwidgetfactory.cpp @@ -605,7 +605,7 @@ bool WaveformWidgetFactory::setWidgetTypeFromHandle(int handleIndex, bool force) WaveformWidgetAbstract* previousWidget = holder.m_waveformWidget; TrackPointer pTrack = previousWidget->getTrackInfo(); //previousWidget->hold(); - double previousZoom = previousWidget->getZoomFactor(); + double previousZoom = previousWidget->getZoom(); double previousPlayMarkerPosition = previousWidget->getPlayMarkerPosition(); int previousbeatgridAlpha = previousWidget->getBeatGridAlpha(); delete previousWidget; @@ -652,7 +652,7 @@ void WaveformWidgetFactory::setZoomSync(bool sync) { return; } - double refZoom = m_waveformWidgetHolders[0].m_waveformWidget->getZoomFactor(); + double refZoom = m_waveformWidgetHolders[0].m_waveformWidget->getZoom(); for (const auto& holder : std::as_const(m_waveformWidgetHolders)) { holder.m_waveformViewer->setZoom(refZoom); } @@ -707,7 +707,7 @@ void WaveformWidgetFactory::notifyZoomChange(WWaveformViewer* viewer) { if (pWaveformWidget == nullptr || !isZoomSync()) { return; } - double refZoom = pWaveformWidget->getZoomFactor(); + double refZoom = pWaveformWidget->getZoom(); for (const auto& holder : std::as_const(m_waveformWidgetHolders)) { if (holder.m_waveformViewer != viewer) { diff --git a/src/waveform/widgets/waveformwidgetabstract.cpp b/src/waveform/widgets/waveformwidgetabstract.cpp index 94b525aa54a..796c04f0b94 100644 --- a/src/waveform/widgets/waveformwidgetabstract.cpp +++ b/src/waveform/widgets/waveformwidgetabstract.cpp @@ -38,6 +38,7 @@ mixxx::Duration WaveformWidgetAbstract::render() { return mixxx::Duration(); } /* + void WaveformWidgetAbstract::resize(int width, int height) { qreal devicePixelRatio = 1.0; if (m_widget) { diff --git a/src/widget/wwaveformviewer.cpp b/src/widget/wwaveformviewer.cpp index d27464f9bda..265550bcaa6 100644 --- a/src/widget/wwaveformviewer.cpp +++ b/src/widget/wwaveformviewer.cpp @@ -198,9 +198,9 @@ void WWaveformViewer::mouseReleaseEvent(QMouseEvent* /*event*/) { void WWaveformViewer::wheelEvent(QWheelEvent* event) { if (m_waveformWidget) { if (event->angleDelta().y() > 0) { - onZoomChange(m_waveformWidget->getZoomFactor() / 1.05); + onZoomChange(m_waveformWidget->getZoom() / 1.05); } else if (event->angleDelta().y() < 0) { - onZoomChange(m_waveformWidget->getZoomFactor() * 1.05); + onZoomChange(m_waveformWidget->getZoom() * 1.05); } } }