├── .gitignore ├── LICENSE ├── README.md ├── app ├── .gitignore ├── build.gradle ├── proguard-rules.pro └── src │ ├── androidTest │ └── java │ │ └── com │ │ └── man │ │ └── manchesterunitedplayer │ │ └── ExampleInstrumentedTest.java │ ├── main │ ├── AndroidManifest.xml │ ├── cpp │ │ ├── CMakeLists.txt │ │ ├── FFDecode.cpp │ │ ├── FFDecode.h │ │ ├── FFDemux.cpp │ │ ├── FFDemux.h │ │ ├── FFPlayBuilder.cpp │ │ ├── FFPlayBuilder.h │ │ ├── FFResample.cpp │ │ ├── FFResample.h │ │ ├── Filter.cpp │ │ ├── Filter.h │ │ ├── FragmentShader.h │ │ ├── GLVideoView.cpp │ │ ├── GLVideoView.h │ │ ├── GrayFilter.cpp │ │ ├── GrayFilter.h │ │ ├── IAudioPlay.cpp │ │ ├── IAudioPlay.h │ │ ├── IDecode.cpp │ │ ├── IDecode.h │ │ ├── IDemux.cpp │ │ ├── IDemux.h │ │ ├── IObserver.cpp │ │ ├── IObserver.h │ │ ├── IPlayBuilder.cpp │ │ ├── IPlayBuilder.h │ │ ├── IPlayer.cpp │ │ ├── IPlayer.h │ │ ├── IPlayerProxy.cpp │ │ ├── IPlayerProxy.h │ │ ├── IResample.cpp │ │ ├── IResample.h │ │ ├── IVideoView.cpp │ │ ├── IVideoView.h │ │ ├── NoneFilter.cpp │ │ ├── NoneFilter.h │ │ ├── OppoFilter.cpp │ │ ├── OppoFilter.h │ │ ├── SLAudioPlay.cpp │ │ ├── SLAudioPlay.h │ │ ├── ScaleFilter.cpp │ │ ├── ScaleFilter.h │ │ ├── ShaderHandler.cpp │ │ ├── ShaderHandler.h │ │ ├── ShakeFilter.cpp │ │ ├── ShakeFilter.h │ │ ├── SoulFilter.cpp │ │ ├── SoulFilter.h │ │ ├── SplashFilter.cpp │ │ ├── SplashFilter.h │ │ ├── TextureHandler.cpp │ │ ├── TextureHandler.h │ │ ├── XData.cpp │ │ ├── XData.h │ │ ├── XEGL.cpp │ │ ├── XEGL.h │ │ ├── XLog.cpp │ │ ├── XLog.h │ │ ├── XParameter.cpp │ │ ├── XParameter.h │ │ ├── XThread.cpp │ │ ├── XThread.h │ │ ├── glm │ │ │ ├── CMakeLists.txt │ │ │ ├── CTestConfig.cmake │ │ │ ├── cmake │ │ │ │ └── GNUInstallDirs.cmake │ │ │ ├── copying.txt │ │ │ ├── doc │ │ │ │ ├── api │ │ │ │ │ ├── a00001.html │ │ │ │ │ ├── a00001_source.html │ │ │ │ │ ├── a00002.html │ │ │ │ │ ├── a00002_source.html │ │ │ │ │ ├── a00003.html │ │ │ │ │ ├── a00003_source.html │ │ │ │ │ ├── a00004.html │ │ │ │ │ ├── a00004_source.html │ │ │ │ │ ├── a00005.html │ │ │ │ │ ├── a00005_source.html │ │ │ │ │ ├── a00006.html │ │ │ │ │ ├── a00006_source.html │ │ │ │ │ ├── a00007.html │ │ │ │ │ ├── a00007_source.html │ │ │ │ │ ├── a00008.html │ │ │ │ │ ├── a00008_source.html │ │ │ │ │ ├── a00009.html │ │ │ │ │ ├── a00009_source.html │ │ │ │ │ ├── a00010.html │ │ │ │ │ ├── a00010_source.html │ │ │ │ │ ├── a00011.html │ │ │ │ │ ├── a00011_source.html │ │ │ │ │ ├── a00012.html │ │ │ │ │ ├── a00012_source.html │ │ │ │ │ ├── a00013.html │ │ │ │ │ ├── a00013_source.html │ │ │ │ │ ├── a00014.html │ │ │ │ │ ├── a00014_source.html │ │ │ │ │ ├── a00015.html │ │ │ │ │ ├── a00015_source.html │ │ │ │ │ ├── a00016.html │ │ │ │ │ ├── a00016_source.html │ │ │ │ │ ├── a00017.html │ │ │ │ │ ├── a00017_source.html │ │ │ │ │ ├── a00018.html │ │ │ │ │ ├── a00018_source.html │ │ │ │ │ ├── a00019.html │ │ │ │ │ ├── a00019_source.html │ │ │ │ │ ├── a00020.html │ │ │ │ │ ├── a00020_source.html │ │ │ │ │ ├── a00021.html │ │ │ │ │ ├── a00021_source.html │ │ │ │ │ ├── a00022_source.html │ │ │ │ │ ├── a00023.html │ │ │ │ │ ├── a00023_source.html │ │ │ │ │ ├── a00024.html │ │ │ │ │ ├── a00024_source.html │ │ │ │ │ ├── a00025.html │ │ │ │ │ ├── a00025_source.html │ │ │ │ │ ├── a00026.html │ │ │ │ │ ├── a00026_source.html │ │ │ │ │ ├── a00027.html │ │ │ │ │ ├── a00027_source.html │ │ │ │ │ ├── a00028.html │ │ │ │ │ ├── a00028_source.html │ │ │ │ │ ├── a00029.html │ │ │ │ │ ├── a00029_source.html │ │ │ │ │ ├── a00030.html │ │ │ │ │ ├── a00030_source.html │ │ │ │ │ ├── a00031.html │ │ │ │ │ ├── a00031_source.html │ │ │ │ │ ├── a00032.html │ │ │ │ │ ├── a00032_source.html │ │ │ │ │ ├── a00033.html │ │ │ │ │ ├── a00033_source.html │ │ │ │ │ ├── a00034.html │ │ │ │ │ ├── a00034_source.html │ │ │ │ │ ├── a00035.html │ │ │ │ │ ├── a00035_source.html │ │ │ │ │ ├── a00036.html │ │ │ │ │ ├── a00036_source.html │ │ │ │ │ ├── a00037.html │ │ │ │ │ ├── a00037_source.html │ │ │ │ │ ├── a00038.html │ │ │ │ │ ├── a00038_source.html │ │ │ │ │ ├── a00039.html │ │ │ │ │ ├── a00039_source.html │ │ │ │ │ ├── a00040.html │ │ │ │ │ ├── a00040_source.html │ │ │ │ │ ├── a00041.html │ │ │ │ │ ├── a00041_source.html │ │ │ │ │ ├── a00042.html │ │ │ │ │ ├── a00042_source.html │ │ │ │ │ ├── a00043.html │ │ │ │ │ ├── a00043_source.html │ │ │ │ │ ├── a00044.html │ │ │ │ │ ├── a00044_source.html │ │ │ │ │ ├── a00045.html │ │ │ │ │ ├── a00045_source.html │ │ │ │ │ ├── a00046.html │ │ │ │ │ ├── a00046_source.html │ │ │ │ │ ├── a00047.html │ │ │ │ │ ├── a00047_source.html │ │ │ │ │ ├── a00048.html │ │ │ │ │ ├── a00048_source.html │ │ │ │ │ ├── a00049.html │ │ │ │ │ ├── a00049_source.html │ │ │ │ │ ├── a00050_source.html │ │ │ │ │ ├── a00051.html │ │ │ │ │ ├── a00051_source.html │ │ │ │ │ ├── a00052.html │ │ │ │ │ ├── a00052_source.html │ │ │ │ │ ├── a00053.html │ │ │ │ │ ├── a00053_source.html │ │ │ │ │ ├── a00054.html │ │ │ │ │ ├── a00054_source.html │ │ │ │ │ ├── a00055_source.html │ │ │ │ │ ├── a00056.html │ │ │ │ │ ├── a00056_source.html │ │ │ │ │ ├── a00057.html │ │ │ │ │ ├── a00057_source.html │ │ │ │ │ ├── a00058.html │ │ │ │ │ ├── a00058_source.html │ │ │ │ │ ├── a00059.html │ │ │ │ │ ├── a00059_source.html │ │ │ │ │ ├── a00060.html │ │ │ │ │ ├── a00060_source.html │ │ │ │ │ ├── a00061.html │ │ │ │ │ ├── a00061_source.html │ │ │ │ │ ├── a00062.html │ │ │ │ │ ├── a00062_source.html │ │ │ │ │ ├── a00063_source.html │ │ │ │ │ ├── a00064.html │ │ │ │ │ ├── a00064_source.html │ │ │ │ │ ├── a00065.html │ │ │ │ │ ├── a00065_source.html │ │ │ │ │ ├── a00066.html │ │ │ │ │ ├── a00066_source.html │ │ │ │ │ ├── a00067.html │ │ │ │ │ ├── a00067_source.html │ │ │ │ │ ├── a00068.html │ │ │ │ │ ├── a00068_source.html │ │ │ │ │ ├── a00069.html │ │ │ │ │ ├── a00069_source.html │ │ │ │ │ ├── a00070.html │ │ │ │ │ ├── a00070_source.html │ │ │ │ │ ├── a00071.html │ │ │ │ │ ├── a00071_source.html │ │ │ │ │ ├── a00072.html │ │ │ │ │ ├── a00072_source.html │ │ │ │ │ ├── a00073.html │ │ │ │ │ ├── a00073_source.html │ │ │ │ │ ├── a00074.html │ │ │ │ │ ├── a00074_source.html │ │ │ │ │ ├── a00075.html │ │ │ │ │ ├── a00075_source.html │ │ │ │ │ ├── a00076.html │ │ │ │ │ ├── a00076_source.html │ │ │ │ │ ├── a00077.html │ │ │ │ │ ├── a00077_source.html │ │ │ │ │ ├── a00078.html │ │ │ │ │ ├── a00078_source.html │ │ │ │ │ ├── a00079.html │ │ │ │ │ ├── a00079_source.html │ │ │ │ │ ├── a00080.html │ │ │ │ │ ├── a00080_source.html │ │ │ │ │ ├── a00081.html │ │ │ │ │ ├── a00081_source.html │ │ │ │ │ ├── a00082.html │ │ │ │ │ ├── a00082_source.html │ │ │ │ │ ├── a00083.html │ │ │ │ │ ├── a00083_source.html │ │ │ │ │ ├── a00084.html │ │ │ │ │ ├── a00084_source.html │ │ │ │ │ ├── a00085.html │ │ │ │ │ ├── a00085_source.html │ │ │ │ │ ├── a00086.html │ │ │ │ │ ├── a00086_source.html │ │ │ │ │ ├── a00087.html │ │ │ │ │ ├── a00087_source.html │ │ │ │ │ ├── a00088_source.html │ │ │ │ │ ├── a00089.html │ │ │ │ │ ├── a00089_source.html │ │ │ │ │ ├── a00090.html │ │ │ │ │ ├── a00090_source.html │ │ │ │ │ ├── a00091.html │ │ │ │ │ ├── a00091_source.html │ │ │ │ │ ├── a00092.html │ │ │ │ │ ├── a00092_source.html │ │ │ │ │ ├── a00093.html │ │ │ │ │ ├── a00093_source.html │ │ │ │ │ ├── a00094.html │ │ │ │ │ ├── a00094_source.html │ │ │ │ │ ├── a00095.html │ │ │ │ │ ├── a00095_source.html │ │ │ │ │ ├── a00096.html │ │ │ │ │ ├── a00096_source.html │ │ │ │ │ ├── a00097.html │ │ │ │ │ ├── a00097_source.html │ │ │ │ │ ├── a00098.html │ │ │ │ │ ├── a00098_source.html │ │ │ │ │ ├── a00099.html │ │ │ │ │ ├── a00099_source.html │ │ │ │ │ ├── a00100.html │ │ │ │ │ ├── a00100_source.html │ │ │ │ │ ├── a00101.html │ │ │ │ │ ├── a00101_source.html │ │ │ │ │ ├── a00102.html │ │ │ │ │ ├── a00102_source.html │ │ │ │ │ ├── a00103.html │ │ │ │ │ ├── a00103_source.html │ │ │ │ │ ├── a00104.html │ │ │ │ │ ├── a00104_source.html │ │ │ │ │ ├── a00105.html │ │ │ │ │ ├── a00105_source.html │ │ │ │ │ ├── a00106.html │ │ │ │ │ ├── a00106_source.html │ │ │ │ │ ├── a00107.html │ │ │ │ │ ├── a00107_source.html │ │ │ │ │ ├── a00108.html │ │ │ │ │ ├── a00108_source.html │ │ │ │ │ ├── a00109.html │ │ │ │ │ ├── a00109_source.html │ │ │ │ │ ├── a00110.html │ │ │ │ │ ├── a00110_source.html │ │ │ │ │ ├── a00111.html │ │ │ │ │ ├── a00111_source.html │ │ │ │ │ ├── a00112.html │ │ │ │ │ ├── a00112_source.html │ │ │ │ │ ├── a00113.html │ │ │ │ │ ├── a00113_source.html │ │ │ │ │ ├── a00114.html │ │ │ │ │ ├── a00114_source.html │ │ │ │ │ ├── a00115.html │ │ │ │ │ ├── a00115_source.html │ │ │ │ │ ├── a00116.html │ │ │ │ │ ├── a00116_source.html │ │ │ │ │ ├── a00117.html │ │ │ │ │ ├── a00117_source.html │ │ │ │ │ ├── a00118.html │ │ │ │ │ ├── a00118_source.html │ │ │ │ │ ├── a00119.html │ │ │ │ │ ├── a00119_source.html │ │ │ │ │ ├── a00120.html │ │ │ │ │ ├── a00120_source.html │ │ │ │ │ ├── a00121.html │ │ │ │ │ ├── a00121_source.html │ │ │ │ │ ├── a00122.html │ │ │ │ │ ├── a00122_source.html │ │ │ │ │ ├── a00123.html │ │ │ │ │ ├── a00123_source.html │ │ │ │ │ ├── a00124.html │ │ │ │ │ ├── a00124_source.html │ │ │ │ │ ├── a00125.html │ │ │ │ │ ├── a00125_source.html │ │ │ │ │ ├── a00126.html │ │ │ │ │ ├── a00126_source.html │ │ │ │ │ ├── a00127.html │ │ │ │ │ ├── a00127_source.html │ │ │ │ │ ├── a00128.html │ │ │ │ │ ├── a00128_source.html │ │ │ │ │ ├── a00129.html │ │ │ │ │ ├── a00129_source.html │ │ │ │ │ ├── a00130.html │ │ │ │ │ ├── a00130_source.html │ │ │ │ │ ├── a00131.html │ │ │ │ │ ├── a00131_source.html │ │ │ │ │ ├── a00132.html │ │ │ │ │ ├── a00132_source.html │ │ │ │ │ ├── a00133.html │ │ │ │ │ ├── a00133_source.html │ │ │ │ │ ├── a00134.html │ │ │ │ │ ├── a00134_source.html │ │ │ │ │ ├── a00135.html │ │ │ │ │ ├── a00135_source.html │ │ │ │ │ ├── a00136.html │ │ │ │ │ ├── a00136_source.html │ │ │ │ │ ├── a00137.html │ │ │ │ │ ├── a00137_source.html │ │ │ │ │ ├── a00138.html │ │ │ │ │ ├── a00138_source.html │ │ │ │ │ ├── a00139.html │ │ │ │ │ ├── a00139_source.html │ │ │ │ │ ├── a00140.html │ │ │ │ │ ├── a00140_source.html │ │ │ │ │ ├── a00141.html │ │ │ │ │ ├── a00141_source.html │ │ │ │ │ ├── a00142.html │ │ │ │ │ ├── a00142_source.html │ │ │ │ │ ├── a00143.html │ │ │ │ │ ├── a00143_source.html │ │ │ │ │ ├── a00144.html │ │ │ │ │ ├── a00144_source.html │ │ │ │ │ ├── a00149.html │ │ │ │ │ ├── a00150.html │ │ │ │ │ ├── a00151.html │ │ │ │ │ ├── a00152.html │ │ │ │ │ ├── a00153.html │ │ │ │ │ ├── a00154.html │ │ │ │ │ ├── a00155.html │ │ │ │ │ ├── a00156.html │ │ │ │ │ ├── a00157.html │ │ │ │ │ ├── a00158.html │ │ │ │ │ ├── a00159.html │ │ │ │ │ ├── a00160.html │ │ │ │ │ ├── a00161.html │ │ │ │ │ ├── a00162.html │ │ │ │ │ ├── a00163.html │ │ │ │ │ ├── a00164.html │ │ │ │ │ ├── a00165.html │ │ │ │ │ ├── a00166.html │ │ │ │ │ ├── a00167.html │ │ │ │ │ ├── a00168.html │ │ │ │ │ ├── a00169.html │ │ │ │ │ ├── a00170.html │ │ │ │ │ ├── a00171.html │ │ │ │ │ ├── a00172.html │ │ │ │ │ ├── a00173.html │ │ │ │ │ ├── a00174.html │ │ │ │ │ ├── a00175.html │ │ │ │ │ ├── a00176.html │ │ │ │ │ ├── a00177.html │ │ │ │ │ ├── a00178.html │ │ │ │ │ ├── a00179.html │ │ │ │ │ ├── a00180.html │ │ │ │ │ ├── a00181.html │ │ │ │ │ ├── a00182.html │ │ │ │ │ ├── a00183.html │ │ │ │ │ ├── a00184.html │ │ │ │ │ ├── a00185.html │ │ │ │ │ ├── a00186.html │ │ │ │ │ ├── a00187.html │ │ │ │ │ ├── a00188.html │ │ │ │ │ ├── a00189.html │ │ │ │ │ ├── a00190.html │ │ │ │ │ ├── a00191.html │ │ │ │ │ ├── a00192.html │ │ │ │ │ ├── a00193.html │ │ │ │ │ ├── a00194.html │ │ │ │ │ ├── a00195.html │ │ │ │ │ ├── a00196.html │ │ │ │ │ ├── a00197.html │ │ │ │ │ ├── a00198.html │ │ │ │ │ ├── a00199.html │ │ │ │ │ ├── a00200.html │ │ │ │ │ ├── a00201.html │ │ │ │ │ ├── a00202.html │ │ │ │ │ ├── a00203.html │ │ │ │ │ ├── a00204.html │ │ │ │ │ ├── a00205.html │ │ │ │ │ ├── a00206.html │ │ │ │ │ ├── a00207.html │ │ │ │ │ ├── a00208.html │ │ │ │ │ ├── a00209.html │ │ │ │ │ ├── a00210.html │ │ │ │ │ ├── a00211.html │ │ │ │ │ ├── a00212.html │ │ │ │ │ ├── a00213.html │ │ │ │ │ ├── a00214.html │ │ │ │ │ ├── a00215.html │ │ │ │ │ ├── a00216.html │ │ │ │ │ ├── a00217.html │ │ │ │ │ ├── a00218.html │ │ │ │ │ ├── a00219.html │ │ │ │ │ ├── a00220.html │ │ │ │ │ ├── a00221.html │ │ │ │ │ ├── a00222.html │ │ │ │ │ ├── a00223.html │ │ │ │ │ ├── a00224.html │ │ │ │ │ ├── a00225.html │ │ │ │ │ ├── a00226.html │ │ │ │ │ ├── a00227.html │ │ │ │ │ ├── a00228.html │ │ │ │ │ ├── a00229.html │ │ │ │ │ ├── a00230.html │ │ │ │ │ ├── a00231.html │ │ │ │ │ ├── a00232.html │ │ │ │ │ ├── a00233.html │ │ │ │ │ ├── a00234.html │ │ │ │ │ ├── a00235.html │ │ │ │ │ ├── a00236.html │ │ │ │ │ ├── a00237.html │ │ │ │ │ ├── a00238.html │ │ │ │ │ ├── bc_s.png │ │ │ │ │ ├── bdwn.png │ │ │ │ │ ├── closed.png │ │ │ │ │ ├── dir_0c6652232a835be54bedd6cfd7502504.html │ │ │ │ │ ├── dir_153b03dd71a7bff437c38ec53cb2e014.html │ │ │ │ │ ├── dir_5cf96241cdcf6779b80e104875f9716f.html │ │ │ │ │ ├── dir_5d3642ea3c7f2dae4a957f2cf472c9ae.html │ │ │ │ │ ├── dir_885cc87fac2d91e269af0a5a959fa5f6.html │ │ │ │ │ ├── dir_8aa733b201d3a9f98631fbccc86ae6c7.html │ │ │ │ │ ├── dir_9b22c367036d391e575f56d067c9855b.html │ │ │ │ │ ├── dir_e2c7faa62a52820b5be8795affd6e495.html │ │ │ │ │ ├── dir_e6d11964c5662039c68343b35ca5648c.html │ │ │ │ │ ├── doxygen.css │ │ │ │ │ ├── doxygen.png │ │ │ │ │ ├── dynsections.js │ │ │ │ │ ├── files.html │ │ │ │ │ ├── ftv2blank.png │ │ │ │ │ ├── ftv2doc.png │ │ │ │ │ ├── ftv2folderclosed.png │ │ │ │ │ ├── ftv2folderopen.png │ │ │ │ │ ├── ftv2lastnode.png │ │ │ │ │ ├── ftv2link.png │ │ │ │ │ ├── ftv2mlastnode.png │ │ │ │ │ ├── ftv2mnode.png │ │ │ │ │ ├── ftv2node.png │ │ │ │ │ ├── ftv2plastnode.png │ │ │ │ │ ├── ftv2pnode.png │ │ │ │ │ ├── ftv2splitbar.png │ │ │ │ │ ├── ftv2vertline.png │ │ │ │ │ ├── index.html │ │ │ │ │ ├── jquery.js │ │ │ │ │ ├── logo.png │ │ │ │ │ ├── modules.html │ │ │ │ │ ├── nav_f.png │ │ │ │ │ ├── nav_g.png │ │ │ │ │ ├── nav_h.png │ │ │ │ │ ├── open.png │ │ │ │ │ ├── sync_off.png │ │ │ │ │ ├── sync_on.png │ │ │ │ │ ├── tab_a.png │ │ │ │ │ ├── tab_b.png │ │ │ │ │ ├── tab_h.png │ │ │ │ │ ├── tab_s.png │ │ │ │ │ └── tabs.css │ │ │ │ ├── glm.docx │ │ │ │ ├── glm.pdf │ │ │ │ ├── logo.png │ │ │ │ ├── man.doxy │ │ │ │ ├── pages.doxy │ │ │ │ └── theme │ │ │ │ │ ├── doxygen.css │ │ │ │ │ └── tabs.css │ │ │ ├── glm │ │ │ │ ├── CMakeLists.txt │ │ │ │ ├── common.hpp │ │ │ │ ├── detail │ │ │ │ │ ├── _features.hpp │ │ │ │ │ ├── _fixes.hpp │ │ │ │ │ ├── _noise.hpp │ │ │ │ │ ├── _swizzle.hpp │ │ │ │ │ ├── _swizzle_func.hpp │ │ │ │ │ ├── _vectorize.hpp │ │ │ │ │ ├── dummy.cpp │ │ │ │ │ ├── func_common.hpp │ │ │ │ │ ├── func_common.inl │ │ │ │ │ ├── func_exponential.hpp │ │ │ │ │ ├── func_exponential.inl │ │ │ │ │ ├── func_geometric.hpp │ │ │ │ │ ├── func_geometric.inl │ │ │ │ │ ├── func_integer.hpp │ │ │ │ │ ├── func_integer.inl │ │ │ │ │ ├── func_matrix.hpp │ │ │ │ │ ├── func_matrix.inl │ │ │ │ │ ├── func_noise.hpp │ │ │ │ │ ├── func_noise.inl │ │ │ │ │ ├── func_packing.hpp │ │ │ │ │ ├── func_packing.inl │ │ │ │ │ ├── func_trigonometric.hpp │ │ │ │ │ ├── func_trigonometric.inl │ │ │ │ │ ├── func_vector_relational.hpp │ │ │ │ │ ├── func_vector_relational.inl │ │ │ │ │ ├── glm.cpp │ │ │ │ │ ├── intrinsic_common.hpp │ │ │ │ │ ├── intrinsic_common.inl │ │ │ │ │ ├── intrinsic_exponential.hpp │ │ │ │ │ ├── intrinsic_exponential.inl │ │ │ │ │ ├── intrinsic_geometric.hpp │ │ │ │ │ ├── intrinsic_geometric.inl │ │ │ │ │ ├── intrinsic_integer.hpp │ │ │ │ │ ├── intrinsic_integer.inl │ │ │ │ │ ├── intrinsic_matrix.hpp │ │ │ │ │ ├── intrinsic_matrix.inl │ │ │ │ │ ├── intrinsic_trigonometric.hpp │ │ │ │ │ ├── intrinsic_trigonometric.inl │ │ │ │ │ ├── intrinsic_vector_relational.hpp │ │ │ │ │ ├── intrinsic_vector_relational.inl │ │ │ │ │ ├── precision.hpp │ │ │ │ │ ├── setup.hpp │ │ │ │ │ ├── type_float.hpp │ │ │ │ │ ├── type_gentype.hpp │ │ │ │ │ ├── type_gentype.inl │ │ │ │ │ ├── type_half.hpp │ │ │ │ │ ├── type_half.inl │ │ │ │ │ ├── type_int.hpp │ │ │ │ │ ├── type_mat.hpp │ │ │ │ │ ├── type_mat.inl │ │ │ │ │ ├── type_mat2x2.hpp │ │ │ │ │ ├── type_mat2x2.inl │ │ │ │ │ ├── type_mat2x3.hpp │ │ │ │ │ ├── type_mat2x3.inl │ │ │ │ │ ├── type_mat2x4.hpp │ │ │ │ │ ├── type_mat2x4.inl │ │ │ │ │ ├── type_mat3x2.hpp │ │ │ │ │ ├── type_mat3x2.inl │ │ │ │ │ ├── type_mat3x3.hpp │ │ │ │ │ ├── type_mat3x3.inl │ │ │ │ │ ├── type_mat3x4.hpp │ │ │ │ │ ├── type_mat3x4.inl │ │ │ │ │ ├── type_mat4x2.hpp │ │ │ │ │ ├── type_mat4x2.inl │ │ │ │ │ ├── type_mat4x3.hpp │ │ │ │ │ ├── type_mat4x3.inl │ │ │ │ │ ├── type_mat4x4.hpp │ │ │ │ │ ├── type_mat4x4.inl │ │ │ │ │ ├── type_vec.hpp │ │ │ │ │ ├── type_vec.inl │ │ │ │ │ ├── type_vec1.hpp │ │ │ │ │ ├── type_vec1.inl │ │ │ │ │ ├── type_vec2.hpp │ │ │ │ │ ├── type_vec2.inl │ │ │ │ │ ├── type_vec3.hpp │ │ │ │ │ ├── type_vec3.inl │ │ │ │ │ ├── type_vec4.hpp │ │ │ │ │ ├── type_vec4.inl │ │ │ │ │ ├── type_vec4_avx.inl │ │ │ │ │ ├── type_vec4_avx2.inl │ │ │ │ │ └── type_vec4_sse2.inl │ │ │ │ ├── exponential.hpp │ │ │ │ ├── ext.hpp │ │ │ │ ├── fwd.hpp │ │ │ │ ├── geometric.hpp │ │ │ │ ├── glm.hpp │ │ │ │ ├── gtc │ │ │ │ │ ├── bitfield.hpp │ │ │ │ │ ├── bitfield.inl │ │ │ │ │ ├── constants.hpp │ │ │ │ │ ├── constants.inl │ │ │ │ │ ├── epsilon.hpp │ │ │ │ │ ├── epsilon.inl │ │ │ │ │ ├── integer.hpp │ │ │ │ │ ├── integer.inl │ │ │ │ │ ├── matrix_access.hpp │ │ │ │ │ ├── matrix_access.inl │ │ │ │ │ ├── matrix_integer.hpp │ │ │ │ │ ├── matrix_inverse.hpp │ │ │ │ │ ├── matrix_inverse.inl │ │ │ │ │ ├── matrix_transform.hpp │ │ │ │ │ ├── matrix_transform.inl │ │ │ │ │ ├── noise.hpp │ │ │ │ │ ├── noise.inl │ │ │ │ │ ├── packing.hpp │ │ │ │ │ ├── packing.inl │ │ │ │ │ ├── quaternion.hpp │ │ │ │ │ ├── quaternion.inl │ │ │ │ │ ├── random.hpp │ │ │ │ │ ├── random.inl │ │ │ │ │ ├── reciprocal.hpp │ │ │ │ │ ├── reciprocal.inl │ │ │ │ │ ├── round.hpp │ │ │ │ │ ├── round.inl │ │ │ │ │ ├── type_precision.hpp │ │ │ │ │ ├── type_precision.inl │ │ │ │ │ ├── type_ptr.hpp │ │ │ │ │ ├── type_ptr.inl │ │ │ │ │ ├── ulp.hpp │ │ │ │ │ ├── ulp.inl │ │ │ │ │ ├── vec1.hpp │ │ │ │ │ └── vec1.inl │ │ │ │ ├── gtx │ │ │ │ │ ├── associated_min_max.hpp │ │ │ │ │ ├── associated_min_max.inl │ │ │ │ │ ├── bit.hpp │ │ │ │ │ ├── bit.inl │ │ │ │ │ ├── closest_point.hpp │ │ │ │ │ ├── closest_point.inl │ │ │ │ │ ├── color_space.hpp │ │ │ │ │ ├── color_space.inl │ │ │ │ │ ├── color_space_YCoCg.hpp │ │ │ │ │ ├── color_space_YCoCg.inl │ │ │ │ │ ├── common.hpp │ │ │ │ │ ├── common.inl │ │ │ │ │ ├── compatibility.hpp │ │ │ │ │ ├── compatibility.inl │ │ │ │ │ ├── component_wise.hpp │ │ │ │ │ ├── component_wise.inl │ │ │ │ │ ├── dual_quaternion.hpp │ │ │ │ │ ├── dual_quaternion.inl │ │ │ │ │ ├── euler_angles.hpp │ │ │ │ │ ├── euler_angles.inl │ │ │ │ │ ├── extend.hpp │ │ │ │ │ ├── extend.inl │ │ │ │ │ ├── extented_min_max.hpp │ │ │ │ │ ├── extented_min_max.inl │ │ │ │ │ ├── fast_exponential.hpp │ │ │ │ │ ├── fast_exponential.inl │ │ │ │ │ ├── fast_square_root.hpp │ │ │ │ │ ├── fast_square_root.inl │ │ │ │ │ ├── fast_trigonometry.hpp │ │ │ │ │ ├── fast_trigonometry.inl │ │ │ │ │ ├── gradient_paint.hpp │ │ │ │ │ ├── gradient_paint.inl │ │ │ │ │ ├── handed_coordinate_space.hpp │ │ │ │ │ ├── handed_coordinate_space.inl │ │ │ │ │ ├── integer.hpp │ │ │ │ │ ├── integer.inl │ │ │ │ │ ├── intersect.hpp │ │ │ │ │ ├── intersect.inl │ │ │ │ │ ├── io.hpp │ │ │ │ │ ├── io.inl │ │ │ │ │ ├── log_base.hpp │ │ │ │ │ ├── log_base.inl │ │ │ │ │ ├── matrix_cross_product.hpp │ │ │ │ │ ├── matrix_cross_product.inl │ │ │ │ │ ├── matrix_decompose.hpp │ │ │ │ │ ├── matrix_decompose.inl │ │ │ │ │ ├── matrix_interpolation.hpp │ │ │ │ │ ├── matrix_interpolation.inl │ │ │ │ │ ├── matrix_major_storage.hpp │ │ │ │ │ ├── matrix_major_storage.inl │ │ │ │ │ ├── matrix_operation.hpp │ │ │ │ │ ├── matrix_operation.inl │ │ │ │ │ ├── matrix_query.hpp │ │ │ │ │ ├── matrix_query.inl │ │ │ │ │ ├── matrix_transform_2d.hpp │ │ │ │ │ ├── matrix_transform_2d.inl │ │ │ │ │ ├── mixed_product.hpp │ │ │ │ │ ├── mixed_product.inl │ │ │ │ │ ├── multiple.hpp │ │ │ │ │ ├── multiple.inl │ │ │ │ │ ├── norm.hpp │ │ │ │ │ ├── norm.inl │ │ │ │ │ ├── normal.hpp │ │ │ │ │ ├── normal.inl │ │ │ │ │ ├── normalize_dot.hpp │ │ │ │ │ ├── normalize_dot.inl │ │ │ │ │ ├── number_precision.hpp │ │ │ │ │ ├── number_precision.inl │ │ │ │ │ ├── optimum_pow.hpp │ │ │ │ │ ├── optimum_pow.inl │ │ │ │ │ ├── orthonormalize.hpp │ │ │ │ │ ├── orthonormalize.inl │ │ │ │ │ ├── perpendicular.hpp │ │ │ │ │ ├── perpendicular.inl │ │ │ │ │ ├── polar_coordinates.hpp │ │ │ │ │ ├── polar_coordinates.inl │ │ │ │ │ ├── projection.hpp │ │ │ │ │ ├── projection.inl │ │ │ │ │ ├── quaternion.hpp │ │ │ │ │ ├── quaternion.inl │ │ │ │ │ ├── range.hpp │ │ │ │ │ ├── raw_data.hpp │ │ │ │ │ ├── raw_data.inl │ │ │ │ │ ├── rotate_normalized_axis.hpp │ │ │ │ │ ├── rotate_normalized_axis.inl │ │ │ │ │ ├── rotate_vector.hpp │ │ │ │ │ ├── rotate_vector.inl │ │ │ │ │ ├── scalar_multiplication.hpp │ │ │ │ │ ├── scalar_relational.hpp │ │ │ │ │ ├── scalar_relational.inl │ │ │ │ │ ├── simd_mat4.hpp │ │ │ │ │ ├── simd_mat4.inl │ │ │ │ │ ├── simd_quat.hpp │ │ │ │ │ ├── simd_quat.inl │ │ │ │ │ ├── simd_vec4.hpp │ │ │ │ │ ├── simd_vec4.inl │ │ │ │ │ ├── spline.hpp │ │ │ │ │ ├── spline.inl │ │ │ │ │ ├── std_based_type.hpp │ │ │ │ │ ├── std_based_type.inl │ │ │ │ │ ├── string_cast.hpp │ │ │ │ │ ├── string_cast.inl │ │ │ │ │ ├── transform.hpp │ │ │ │ │ ├── transform.inl │ │ │ │ │ ├── transform2.hpp │ │ │ │ │ ├── transform2.inl │ │ │ │ │ ├── type_aligned.hpp │ │ │ │ │ ├── type_aligned.inl │ │ │ │ │ ├── vector_angle.hpp │ │ │ │ │ ├── vector_angle.inl │ │ │ │ │ ├── vector_query.hpp │ │ │ │ │ ├── vector_query.inl │ │ │ │ │ ├── wrap.hpp │ │ │ │ │ └── wrap.inl │ │ │ │ ├── integer.hpp │ │ │ │ ├── mat2x2.hpp │ │ │ │ ├── mat2x3.hpp │ │ │ │ ├── mat2x4.hpp │ │ │ │ ├── mat3x2.hpp │ │ │ │ ├── mat3x3.hpp │ │ │ │ ├── mat3x4.hpp │ │ │ │ ├── mat4x2.hpp │ │ │ │ ├── mat4x3.hpp │ │ │ │ ├── mat4x4.hpp │ │ │ │ ├── matrix.hpp │ │ │ │ ├── packing.hpp │ │ │ │ ├── trigonometric.hpp │ │ │ │ ├── vec2.hpp │ │ │ │ ├── vec3.hpp │ │ │ │ ├── vec4.hpp │ │ │ │ └── vector_relational.hpp │ │ │ ├── readme.txt │ │ │ ├── test │ │ │ │ ├── CMakeLists.txt │ │ │ │ ├── bug │ │ │ │ │ └── CMakeLists.txt │ │ │ │ ├── core │ │ │ │ │ ├── CMakeLists.txt │ │ │ │ │ ├── core_func_common.cpp │ │ │ │ │ ├── core_func_exponential.cpp │ │ │ │ │ ├── core_func_geometric.cpp │ │ │ │ │ ├── core_func_integer.cpp │ │ │ │ │ ├── core_func_integer_bit_count.cpp │ │ │ │ │ ├── core_func_integer_find_lsb.cpp │ │ │ │ │ ├── core_func_integer_find_msb.cpp │ │ │ │ │ ├── core_func_matrix.cpp │ │ │ │ │ ├── core_func_noise.cpp │ │ │ │ │ ├── core_func_packing.cpp │ │ │ │ │ ├── core_func_swizzle.cpp │ │ │ │ │ ├── core_func_trigonometric.cpp │ │ │ │ │ ├── core_func_vector_relational.cpp │ │ │ │ │ ├── core_setup_force_cxx98.cpp │ │ │ │ │ ├── core_setup_message.cpp │ │ │ │ │ ├── core_setup_precision.cpp │ │ │ │ │ ├── core_type_cast.cpp │ │ │ │ │ ├── core_type_float.cpp │ │ │ │ │ ├── core_type_int.cpp │ │ │ │ │ ├── core_type_length.cpp │ │ │ │ │ ├── core_type_length_size.cpp │ │ │ │ │ ├── core_type_mat2x2.cpp │ │ │ │ │ ├── core_type_mat2x3.cpp │ │ │ │ │ ├── core_type_mat2x4.cpp │ │ │ │ │ ├── core_type_mat3x2.cpp │ │ │ │ │ ├── core_type_mat3x3.cpp │ │ │ │ │ ├── core_type_mat3x4.cpp │ │ │ │ │ ├── core_type_mat4x2.cpp │ │ │ │ │ ├── core_type_mat4x3.cpp │ │ │ │ │ ├── core_type_mat4x4.cpp │ │ │ │ │ ├── core_type_vec1.cpp │ │ │ │ │ ├── core_type_vec2.cpp │ │ │ │ │ ├── core_type_vec3.cpp │ │ │ │ │ └── core_type_vec4.cpp │ │ │ │ ├── external │ │ │ │ │ └── gli │ │ │ │ │ │ ├── CMakeLists.txt │ │ │ │ │ │ ├── core │ │ │ │ │ │ ├── dummy.cpp │ │ │ │ │ │ ├── generate_mipmaps.hpp │ │ │ │ │ │ ├── generate_mipmaps.inl │ │ │ │ │ │ ├── image2d.hpp │ │ │ │ │ │ ├── image2d.inl │ │ │ │ │ │ ├── operation.hpp │ │ │ │ │ │ ├── operation.inl │ │ │ │ │ │ ├── operator.hpp │ │ │ │ │ │ ├── operator.inl │ │ │ │ │ │ ├── shared_array.hpp │ │ │ │ │ │ ├── shared_array.inl │ │ │ │ │ │ ├── shared_ptr.hpp │ │ │ │ │ │ ├── shared_ptr.inl │ │ │ │ │ │ ├── size.hpp │ │ │ │ │ │ ├── size.inl │ │ │ │ │ │ ├── texture2d.hpp │ │ │ │ │ │ ├── texture2d.inl │ │ │ │ │ │ ├── texture2d_array.hpp │ │ │ │ │ │ ├── texture2d_array.inl │ │ │ │ │ │ ├── texture_cube.hpp │ │ │ │ │ │ ├── texture_cube.inl │ │ │ │ │ │ ├── texture_cube_array.hpp │ │ │ │ │ │ └── texture_cube_array.inl │ │ │ │ │ │ ├── gli.hpp │ │ │ │ │ │ └── gtx │ │ │ │ │ │ ├── compression.hpp │ │ │ │ │ │ ├── compression.inl │ │ │ │ │ │ ├── fetch.hpp │ │ │ │ │ │ ├── fetch.inl │ │ │ │ │ │ ├── gl_texture2d.hpp │ │ │ │ │ │ ├── gl_texture2d.inl │ │ │ │ │ │ ├── gradient.hpp │ │ │ │ │ │ ├── gradient.inl │ │ │ │ │ │ ├── loader.hpp │ │ │ │ │ │ ├── loader.inl │ │ │ │ │ │ ├── loader_dds10.hpp │ │ │ │ │ │ ├── loader_dds10.inl │ │ │ │ │ │ ├── loader_dds9.hpp │ │ │ │ │ │ ├── loader_dds9.inl │ │ │ │ │ │ ├── loader_tga.hpp │ │ │ │ │ │ ├── loader_tga.inl │ │ │ │ │ │ ├── wavelet.hpp │ │ │ │ │ │ └── wavelet.inl │ │ │ │ ├── glm.cppcheck │ │ │ │ ├── gtc │ │ │ │ │ ├── CMakeLists.txt │ │ │ │ │ ├── gtc_bitfield.cpp │ │ │ │ │ ├── gtc_constants.cpp │ │ │ │ │ ├── gtc_epsilon.cpp │ │ │ │ │ ├── gtc_integer.cpp │ │ │ │ │ ├── gtc_matrix_access.cpp │ │ │ │ │ ├── gtc_matrix_integer.cpp │ │ │ │ │ ├── gtc_matrix_inverse.cpp │ │ │ │ │ ├── gtc_matrix_transform.cpp │ │ │ │ │ ├── gtc_noise.cpp │ │ │ │ │ ├── gtc_packing.cpp │ │ │ │ │ ├── gtc_quaternion.cpp │ │ │ │ │ ├── gtc_random.cpp │ │ │ │ │ ├── gtc_reciprocal.cpp │ │ │ │ │ ├── gtc_round.cpp │ │ │ │ │ ├── gtc_type_precision.cpp │ │ │ │ │ ├── gtc_type_ptr.cpp │ │ │ │ │ ├── gtc_ulp.cpp │ │ │ │ │ ├── gtc_user_defined_types.cpp │ │ │ │ │ └── gtc_vec1.cpp │ │ │ │ └── gtx │ │ │ │ │ ├── CMakeLists.txt │ │ │ │ │ ├── gtx_associated_min_max.cpp │ │ │ │ │ ├── gtx_closest_point.cpp │ │ │ │ │ ├── gtx_color_space.cpp │ │ │ │ │ ├── gtx_color_space_YCoCg.cpp │ │ │ │ │ ├── gtx_common.cpp │ │ │ │ │ ├── gtx_compatibility.cpp │ │ │ │ │ ├── gtx_component_wise.cpp │ │ │ │ │ ├── gtx_dual_quaternion.cpp │ │ │ │ │ ├── gtx_euler_angle.cpp │ │ │ │ │ ├── gtx_extend.cpp │ │ │ │ │ ├── gtx_extented_min_max.cpp │ │ │ │ │ ├── gtx_fast_exponential.cpp │ │ │ │ │ ├── gtx_fast_square_root.cpp │ │ │ │ │ ├── gtx_fast_trigonometry.cpp │ │ │ │ │ ├── gtx_gradient_paint.cpp │ │ │ │ │ ├── gtx_handed_coordinate_space.cpp │ │ │ │ │ ├── gtx_int_10_10_10_2.cpp │ │ │ │ │ ├── gtx_integer.cpp │ │ │ │ │ ├── gtx_intersect.cpp │ │ │ │ │ ├── gtx_io.cpp │ │ │ │ │ ├── gtx_log_base.cpp │ │ │ │ │ ├── gtx_matrix_cross_product.cpp │ │ │ │ │ ├── gtx_matrix_decompose.cpp │ │ │ │ │ ├── gtx_matrix_interpolation.cpp │ │ │ │ │ ├── gtx_matrix_major_storage.cpp │ │ │ │ │ ├── gtx_matrix_operation.cpp │ │ │ │ │ ├── gtx_matrix_query.cpp │ │ │ │ │ ├── gtx_matrix_transform_2d.cpp │ │ │ │ │ ├── gtx_mixed_product.cpp │ │ │ │ │ ├── gtx_multiple.cpp │ │ │ │ │ ├── gtx_norm.cpp │ │ │ │ │ ├── gtx_normal.cpp │ │ │ │ │ ├── gtx_normalize_dot.cpp │ │ │ │ │ ├── gtx_number_precision.cpp │ │ │ │ │ ├── gtx_optimum_pow.cpp │ │ │ │ │ ├── gtx_orthonormalize.cpp │ │ │ │ │ ├── gtx_perpendicular.cpp │ │ │ │ │ ├── gtx_polar_coordinates.cpp │ │ │ │ │ ├── gtx_projection.cpp │ │ │ │ │ ├── gtx_quaternion.cpp │ │ │ │ │ ├── gtx_random.cpp │ │ │ │ │ ├── gtx_range.cpp │ │ │ │ │ ├── gtx_rotate_normalized_axis.cpp │ │ │ │ │ ├── gtx_rotate_vector.cpp │ │ │ │ │ ├── gtx_scalar_multiplication.cpp │ │ │ │ │ ├── gtx_scalar_relational.cpp │ │ │ │ │ ├── gtx_simd_mat4.cpp │ │ │ │ │ ├── gtx_simd_vec4.cpp │ │ │ │ │ ├── gtx_spline.cpp │ │ │ │ │ ├── gtx_string_cast.cpp │ │ │ │ │ ├── gtx_type_aligned.cpp │ │ │ │ │ ├── gtx_vector_angle.cpp │ │ │ │ │ └── gtx_vector_query.cpp │ │ │ └── util │ │ │ │ ├── CMakeLists.txt │ │ │ │ ├── FindGLM.cmake │ │ │ │ ├── autoexp.txt │ │ │ │ ├── autoexp.vc2010.dat │ │ │ │ ├── glm.natvis │ │ │ │ └── usertype.dat │ │ ├── include │ │ │ ├── libavcodec │ │ │ │ ├── avcodec.h │ │ │ │ ├── avdct.h │ │ │ │ ├── avfft.h │ │ │ │ ├── d3d11va.h │ │ │ │ ├── dirac.h │ │ │ │ ├── dv_profile.h │ │ │ │ ├── dxva2.h │ │ │ │ ├── jni.h │ │ │ │ ├── mediacodec.h │ │ │ │ ├── qsv.h │ │ │ │ ├── vaapi.h │ │ │ │ ├── vda.h │ │ │ │ ├── vdpau.h │ │ │ │ ├── version.h │ │ │ │ ├── videotoolbox.h │ │ │ │ ├── vorbis_parser.h │ │ │ │ └── xvmc.h │ │ │ ├── libavfilter │ │ │ │ ├── avfilter.h │ │ │ │ ├── avfiltergraph.h │ │ │ │ ├── buffersink.h │ │ │ │ ├── buffersrc.h │ │ │ │ └── version.h │ │ │ ├── libavformat │ │ │ │ ├── avformat.h │ │ │ │ ├── avio.h │ │ │ │ └── version.h │ │ │ ├── libavutil │ │ │ │ ├── adler32.h │ │ │ │ ├── aes.h │ │ │ │ ├── aes_ctr.h │ │ │ │ ├── attributes.h │ │ │ │ ├── audio_fifo.h │ │ │ │ ├── avassert.h │ │ │ │ ├── avconfig.h │ │ │ │ ├── avstring.h │ │ │ │ ├── avutil.h │ │ │ │ ├── base64.h │ │ │ │ ├── blowfish.h │ │ │ │ ├── bprint.h │ │ │ │ ├── bswap.h │ │ │ │ ├── buffer.h │ │ │ │ ├── camellia.h │ │ │ │ ├── cast5.h │ │ │ │ ├── channel_layout.h │ │ │ │ ├── common.h │ │ │ │ ├── cpu.h │ │ │ │ ├── crc.h │ │ │ │ ├── des.h │ │ │ │ ├── dict.h │ │ │ │ ├── display.h │ │ │ │ ├── downmix_info.h │ │ │ │ ├── error.h │ │ │ │ ├── eval.h │ │ │ │ ├── ffversion.h │ │ │ │ ├── fifo.h │ │ │ │ ├── file.h │ │ │ │ ├── frame.h │ │ │ │ ├── hash.h │ │ │ │ ├── hmac.h │ │ │ │ ├── hwcontext.h │ │ │ │ ├── hwcontext_cuda.h │ │ │ │ ├── hwcontext_d3d11va.h │ │ │ │ ├── hwcontext_drm.h │ │ │ │ ├── hwcontext_dxva2.h │ │ │ │ ├── hwcontext_qsv.h │ │ │ │ ├── hwcontext_vaapi.h │ │ │ │ ├── hwcontext_vdpau.h │ │ │ │ ├── hwcontext_videotoolbox.h │ │ │ │ ├── imgutils.h │ │ │ │ ├── intfloat.h │ │ │ │ ├── intreadwrite.h │ │ │ │ ├── lfg.h │ │ │ │ ├── log.h │ │ │ │ ├── lzo.h │ │ │ │ ├── macros.h │ │ │ │ ├── mastering_display_metadata.h │ │ │ │ ├── mathematics.h │ │ │ │ ├── md5.h │ │ │ │ ├── mem.h │ │ │ │ ├── motion_vector.h │ │ │ │ ├── murmur3.h │ │ │ │ ├── opt.h │ │ │ │ ├── parseutils.h │ │ │ │ ├── pixdesc.h │ │ │ │ ├── pixelutils.h │ │ │ │ ├── pixfmt.h │ │ │ │ ├── random_seed.h │ │ │ │ ├── rational.h │ │ │ │ ├── rc4.h │ │ │ │ ├── replaygain.h │ │ │ │ ├── ripemd.h │ │ │ │ ├── samplefmt.h │ │ │ │ ├── sha.h │ │ │ │ ├── sha512.h │ │ │ │ ├── spherical.h │ │ │ │ ├── stereo3d.h │ │ │ │ ├── tea.h │ │ │ │ ├── threadmessage.h │ │ │ │ ├── time.h │ │ │ │ ├── timecode.h │ │ │ │ ├── timestamp.h │ │ │ │ ├── tree.h │ │ │ │ ├── twofish.h │ │ │ │ ├── version.h │ │ │ │ └── xtea.h │ │ │ ├── libswresample │ │ │ │ ├── swresample.h │ │ │ │ └── version.h │ │ │ └── libswscale │ │ │ │ ├── swscale.h │ │ │ │ └── version.h │ │ ├── libs │ │ │ └── armeabi-v7a │ │ │ │ ├── libavcodec.so │ │ │ │ ├── libavfilter.so │ │ │ │ ├── libavformat.so │ │ │ │ ├── libavutil.so │ │ │ │ ├── libswresample.so │ │ │ │ └── libswscale.so │ │ └── native-lib.cpp │ ├── java │ │ └── com │ │ │ └── man │ │ │ └── manchesterunitedplayer │ │ │ ├── FilterAdapter.kt │ │ │ ├── FilterType.kt │ │ │ ├── Key.kt │ │ │ ├── MainActivity.java │ │ │ ├── ManchesterPlayer.java │ │ │ ├── PlayActivity.java │ │ │ ├── bean │ │ │ └── FilterBean.kt │ │ │ ├── playlist │ │ │ ├── PlayListActivity.kt │ │ │ ├── PlayListAdapter.kt │ │ │ └── VideoBean.kt │ │ │ └── util │ │ │ └── MachineUtil.kt │ └── res │ │ ├── drawable-v24 │ │ └── ic_launcher_foreground.xml │ │ ├── drawable │ │ ├── bg_filter_btn.xml │ │ ├── bg_pause_btn.xml │ │ └── ic_launcher_background.xml │ │ ├── layout │ │ ├── activity_main.xml │ │ ├── activity_play.xml │ │ ├── activity_play_list.xml │ │ ├── item_filter_list.xml │ │ ├── item_play_list.xml │ │ └── openurl.xml │ │ ├── mipmap-anydpi-v26 │ │ ├── ic_launcher.xml │ │ └── ic_launcher_round.xml │ │ ├── mipmap-hdpi │ │ ├── ic_launcher.png │ │ └── ic_launcher_round.png │ │ ├── mipmap-mdpi │ │ ├── ic_launcher.png │ │ └── ic_launcher_round.png │ │ ├── mipmap-xhdpi │ │ ├── ic_launcher.png │ │ └── ic_launcher_round.png │ │ ├── mipmap-xxhdpi │ │ ├── ic_defualt_video.jpg │ │ ├── ic_launcher.png │ │ └── ic_launcher_round.png │ │ ├── mipmap-xxxhdpi │ │ ├── ic_launcher.png │ │ └── ic_launcher_round.png │ │ └── values │ │ ├── colors.xml │ │ ├── strings.xml │ │ └── styles.xml │ └── test │ └── java │ └── com │ └── man │ └── manchesterunitedplayer │ └── ExampleUnitTest.java ├── build.gradle ├── gif ├── gray.gif ├── oppoColor.gif ├── play.jpg ├── playProgress.jpg ├── record.jpg ├── scale.gif ├── shake.gif ├── soul.gif └── splash.gif ├── gradle.properties ├── gradle └── wrapper │ ├── gradle-wrapper.jar │ └── gradle-wrapper.properties ├── gradlew ├── gradlew.bat ├── record ├── .gitignore ├── CMakeLists.txt ├── build.gradle ├── consumer-rules.pro ├── proguard-rules.pro └── src │ ├── androidTest │ └── java │ │ └── com │ │ └── haha │ │ └── record │ │ └── ExampleInstrumentedTest.kt │ ├── main │ ├── AndroidManifest.xml │ ├── cpp │ │ ├── AudioRecorder.cpp │ │ ├── RecordBuffer.cpp │ │ └── RecordBuffer.h │ ├── java │ │ └── com │ │ │ └── haha │ │ │ └── record │ │ │ ├── Config.kt │ │ │ ├── RecordActivity.java │ │ │ ├── camera │ │ │ ├── CameraPreviewView.kt │ │ │ ├── CameraRender.kt │ │ │ └── CustomCamera.kt │ │ │ ├── egl │ │ │ ├── CustomGlSurfaceView.kt │ │ │ └── EglHelper.kt │ │ │ ├── encodec │ │ │ ├── BaseMediaEncoder.kt │ │ │ ├── MediaEncodeRender.kt │ │ │ └── MediaEncoder.kt │ │ │ ├── opengl │ │ │ ├── FboRender.java │ │ │ └── ShaderUtil.java │ │ │ └── util │ │ │ └── DisplayUtil.java │ └── res │ │ ├── layout │ │ └── activity_video.xml │ │ ├── raw │ │ ├── fragment_shader.glsl │ │ ├── fragment_shader1.glsl │ │ ├── fragment_shader2.glsl │ │ ├── fragment_shader3.glsl │ │ ├── fragment_shader_screen.glsl │ │ ├── fragment_shader_yuv.glsl │ │ ├── vertex_shader.glsl │ │ ├── vertex_shader_screen.glsl │ │ └── vertex_shader_yuv.glsl │ │ └── values │ │ ├── colors.xml │ │ ├── strings.xml │ │ └── styles.xml │ └── test │ └── java │ └── com │ └── haha │ └── record │ └── ExampleUnitTest.kt ├── settings.gradle └── v1080.mp4 /.gitignore: -------------------------------------------------------------------------------- 1 | *.iml 2 | .gradle 3 | /local.properties 4 | /.idea 5 | /.idea/caches 6 | /.idea/libraries 7 | /.idea/modules.xml 8 | /.idea/workspace.xml 9 | /.idea/navEditor.xml 10 | /.idea/assetWizardSettings.xml 11 | .DS_Store 12 | /build 13 | /captures 14 | .externalNativeBuild 15 | .cxx 16 | trace.txt -------------------------------------------------------------------------------- /app/.gitignore: -------------------------------------------------------------------------------- 1 | /build 2 | -------------------------------------------------------------------------------- /app/proguard-rules.pro: -------------------------------------------------------------------------------- 1 | # Add project specific ProGuard rules here. 2 | # You can control the set of applied configuration files using the 3 | # proguardFiles setting in build.gradle. 4 | # 5 | # For more details, see 6 | # http://developer.android.com/guide/developing/tools/proguard.html 7 | 8 | # If your project uses WebView with JS, uncomment the following 9 | # and specify the fully qualified class name to the JavaScript interface 10 | # class: 11 | #-keepclassmembers class fqcn.of.javascript.interface.for.webview { 12 | # public *; 13 | #} 14 | 15 | # Uncomment this to preserve the line number information for 16 | # debugging stack traces. 17 | #-keepattributes SourceFile,LineNumberTable 18 | 19 | # If you keep the line number information, uncomment this to 20 | # hide the original source file name. 21 | #-renamesourcefileattribute SourceFile 22 | -------------------------------------------------------------------------------- /app/src/androidTest/java/com/man/manchesterunitedplayer/ExampleInstrumentedTest.java: -------------------------------------------------------------------------------- 1 | package com.man.manchesterunitedplayer; 2 | 3 | import android.content.Context; 4 | 5 | import androidx.test.platform.app.InstrumentationRegistry; 6 | import androidx.test.ext.junit.runners.AndroidJUnit4; 7 | 8 | import org.junit.Test; 9 | import org.junit.runner.RunWith; 10 | 11 | import static org.junit.Assert.*; 12 | 13 | /** 14 | * Instrumented test, which will execute on an Android device. 15 | * 16 | * @see Testing documentation 17 | */ 18 | @RunWith(AndroidJUnit4.class) 19 | public class ExampleInstrumentedTest { 20 | @Test 21 | public void useAppContext() { 22 | // Context of the app under test. 23 | Context appContext = InstrumentationRegistry.getInstrumentation().getTargetContext(); 24 | 25 | assertEquals("com.man.manchesterunitedplayer", appContext.getPackageName()); 26 | } 27 | } 28 | -------------------------------------------------------------------------------- /app/src/main/AndroidManifest.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 6 | 7 | 8 | 9 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | -------------------------------------------------------------------------------- /app/src/main/cpp/FFDecode.h: -------------------------------------------------------------------------------- 1 | // 2 | // Created by yanxi on 2019/9/1. 3 | // 4 | 5 | #ifndef MANCHESTERUNITEDPLAYER_FFDECODE_H 6 | #define MANCHESTERUNITEDPLAYER_FFDECODE_H 7 | 8 | 9 | #include "XParameter.h" 10 | #include "IDecode.h" 11 | 12 | struct AVCodecContext; 13 | struct AVFrame; 14 | 15 | class FFDecode : public IDecode { 16 | public: 17 | //注册硬解码 18 | static void InitHard(void *vm); 19 | 20 | //打开解码器 21 | virtual bool Open(XParameter xParameter, bool isHard); 22 | 23 | virtual void Close(); 24 | 25 | //Future模式 26 | virtual bool SendPacket(XData pkt); 27 | 28 | //从线程中获取解码结果,再次调用会复用上次内存空间,线程不安全 29 | virtual XData RecvFrame(); 30 | 31 | //清空ffmpeg内部的解码缓冲队列 32 | virtual void Clear(); 33 | 34 | FFDecode(); 35 | 36 | protected: 37 | AVCodecContext *codecContext = 0; 38 | AVFrame *avFrame = 0; 39 | std::mutex mutex1; 40 | }; 41 | 42 | 43 | #endif //MANCHESTERUNITEDPLAYER_FFDECODE_H 44 | -------------------------------------------------------------------------------- /app/src/main/cpp/FFDemux.h: -------------------------------------------------------------------------------- 1 | // 2 | // Created by yanxi on 2019/8/25. 3 | // 4 | 5 | #ifndef MANCHESTERUNITEDPLAYER_FFDEMUX_H 6 | #define MANCHESTERUNITEDPLAYER_FFDEMUX_H 7 | 8 | 9 | #include "XData.h" 10 | #include "IDemux.h" 11 | 12 | struct AVFormatContext; 13 | 14 | class FFDemux : public IDemux { 15 | 16 | public: 17 | //打开文件或者流媒体 rmtp rtsp http 18 | virtual bool Open(const char *url); 19 | 20 | virtual void Close(); 21 | 22 | //获取视频参数 23 | virtual XParameter GetVideoParameter(); 24 | 25 | //获取音频参数 26 | virtual XParameter GetAudioParameter(); 27 | 28 | //读取一帧数据(注意防止内存泄漏) 29 | virtual XData Read(); 30 | 31 | virtual bool Seek(double position); 32 | 33 | FFDemux(); 34 | 35 | private: 36 | //整个音视频文件的信息 37 | AVFormatContext *ic = 0; 38 | std::mutex mux; 39 | int audioStreamIndex = 1; 40 | int videoStreamIndex = 0; 41 | }; 42 | 43 | 44 | #endif //MANCHESTERUNITEDPLAYER_FFDEMUX_H 45 | -------------------------------------------------------------------------------- /app/src/main/cpp/FFPlayBuilder.cpp: -------------------------------------------------------------------------------- 1 | // 2 | // Created by yanxi on 2019/10/28. 3 | // 4 | 5 | #include "FFPlayBuilder.h" 6 | #include "FFDemux.h" 7 | #include "FFDecode.h" 8 | #include "FFResample.h" 9 | #include "GLVideoView.h" 10 | #include "SLAudioPlay.h" 11 | 12 | IDemux *FFPlayBuilder::CreateDemux() { 13 | return new FFDemux(); 14 | } 15 | 16 | IDecode *FFPlayBuilder::CreateDecode() { 17 | return new FFDecode(); 18 | } 19 | 20 | IResample *FFPlayBuilder::CreateResample() { 21 | return new FFResample(); 22 | } 23 | 24 | IVideoView *FFPlayBuilder::CreateVideoView() { 25 | return new GLVideoView(); 26 | } 27 | 28 | IAudioPlay *FFPlayBuilder::CreateAudioPlay() { 29 | return new SLAudioPlay(); 30 | } 31 | 32 | IPlayer *FFPlayBuilder::CreatePalyer(unsigned int index) { 33 | return IPlayer::Get(index); 34 | } 35 | 36 | void FFPlayBuilder::InitHard(void *vm) { 37 | FFDecode::InitHard(vm); 38 | } 39 | -------------------------------------------------------------------------------- /app/src/main/cpp/FFPlayBuilder.h: -------------------------------------------------------------------------------- 1 | // 2 | // Created by yanxi on 2019/10/28. 3 | // 4 | 5 | #ifndef MANCHESTERUNITEDPLAYER_FFPLAYBUILDER_H 6 | #define MANCHESTERUNITEDPLAYER_FFPLAYBUILDER_H 7 | 8 | 9 | #include "IPlayer.h" 10 | #include "IPlayBuilder.h" 11 | 12 | class FFPlayBuilder :public IPlayBuilder{ 13 | public: 14 | static void InitHard(void *vm); 15 | 16 | static FFPlayBuilder *Get() { 17 | static FFPlayBuilder ffPlayBuilder; 18 | return &ffPlayBuilder; 19 | } 20 | 21 | protected: 22 | FFPlayBuilder() {} 23 | 24 | virtual IDemux *CreateDemux(); 25 | 26 | virtual IDecode *CreateDecode(); 27 | 28 | virtual IResample *CreateResample(); 29 | 30 | virtual IVideoView *CreateVideoView(); 31 | 32 | virtual IAudioPlay *CreateAudioPlay(); 33 | 34 | virtual IPlayer *CreatePalyer(unsigned int index); 35 | 36 | }; 37 | 38 | 39 | #endif //MANCHESTERUNITEDPLAYER_FFPLAYBUILDER_H 40 | -------------------------------------------------------------------------------- /app/src/main/cpp/FFResample.h: -------------------------------------------------------------------------------- 1 | // 2 | // Created by yanxi on 2019/10/19. 3 | // 4 | 5 | #ifndef MANCHESTERUNITEDPLAYER_FFRESAMPLE_H 6 | #define MANCHESTERUNITEDPLAYER_FFRESAMPLE_H 7 | 8 | 9 | #include "IResample.h" 10 | //todo 这样子定义的目的是? 11 | struct SwrContext; 12 | class FFResample : public IResample{ 13 | public: 14 | virtual bool Open(XParameter in, XParameter out = XParameter()); 15 | virtual void Close(); 16 | virtual XData Resample(XData xData); 17 | 18 | FFResample(); 19 | protected: 20 | SwrContext *swrContext = 0; 21 | std::mutex mutex1; 22 | }; 23 | 24 | 25 | #endif //MANCHESTERUNITEDPLAYER_FFRESAMPLE_H 26 | -------------------------------------------------------------------------------- /app/src/main/cpp/Filter.h: -------------------------------------------------------------------------------- 1 | // 2 | // Created by yanyinan on 2020/1/20. 3 | // 4 | 5 | #ifndef MANCHESTERUNITEDPLAYER_FILTER_H 6 | #define MANCHESTERUNITEDPLAYER_FILTER_H 7 | 8 | 9 | #include 10 | 11 | 12 | class Filter { 13 | public: 14 | /** 15 | * 供外部获取片段着色器 16 | * @param shaderType 17 | * @return 18 | */ 19 | virtual GLuint getFragmentShader(int shaderType); 20 | 21 | 22 | /** 23 | * 绘制的时候当前滤镜需要处理的逻辑 24 | */ 25 | virtual void onDraw(int pts) = 0; 26 | 27 | /** 28 | * 在纹理坐标加载之后(例如获取片段着色器的属性location) 29 | */ 30 | virtual void onShaderDataLoad(unsigned int program) = 0; 31 | 32 | /** 33 | * 得到具体的片段着色器代码(子类具体实现) 34 | * @return 35 | */ 36 | virtual const char *getSpecifiedFragShader(int yuvType) = 0; 37 | 38 | private: 39 | //片段着色器id 40 | GLuint fsh = 0; 41 | 42 | //针对不同的yuv格式获取不同的片段着色器 43 | void getShaderForYuv420p(); 44 | 45 | void getShaderForNV21(); 46 | 47 | void getShaderForNV12(); 48 | 49 | /** 50 | * 加载片段着色器 51 | * @param source 52 | * @param type 53 | * @return 54 | */ 55 | GLuint initFragShader(const char *source); 56 | }; 57 | 58 | 59 | #endif //MANCHESTERUNITEDPLAYER_FILTER_H 60 | -------------------------------------------------------------------------------- /app/src/main/cpp/GLVideoView.cpp: -------------------------------------------------------------------------------- 1 | // 2 | // Created by yanxi on 2019/9/15. 3 | // 4 | 5 | #include "GLVideoView.h" 6 | #include "TextureHandler.h" 7 | #include "XLog.h" 8 | 9 | void GLVideoView::Render(XData xData) { 10 | LOGE("Render start"); 11 | if (!view) { 12 | return; 13 | } 14 | if (!xTexture) { 15 | xTexture = TextureHandler::Create(); 16 | xTexture->Init(view, static_cast(xData.format), filterType); 17 | } 18 | xTexture->Draw(xData.datas, xData.width, xData.height, xData.pts, screenWidth, screenHeight); 19 | LOG_VIDEO_DIMENSION("xData.width:%d, xData.height:%d", xData.width, xData.height); 20 | } 21 | 22 | void GLVideoView::SetRender(void *win) { 23 | view = win; 24 | LOGE("SetRender"); 25 | } 26 | 27 | void GLVideoView::Close() { 28 | const std::lock_guard lock(mutex1); 29 | if (xTexture) { 30 | xTexture->Drop(); 31 | xTexture = nullptr; 32 | } 33 | } 34 | 35 | void GLVideoView::setFilterType(int filterType) { 36 | this->filterType = filterType; 37 | } 38 | 39 | void GLVideoView::setScreenDimension(int width, int height) { 40 | this->screenWidth = width; 41 | this->screenHeight = height; 42 | } 43 | 44 | GLVideoView::GLVideoView() { 45 | threadName = "GLVideo"; 46 | } 47 | -------------------------------------------------------------------------------- /app/src/main/cpp/GLVideoView.h: -------------------------------------------------------------------------------- 1 | // 2 | // Created by yanxi on 2019/9/15. 3 | // 4 | 5 | #ifndef MANCHESTERUNITEDPLAYER_GLVIDEOVIEW_H 6 | #define MANCHESTERUNITEDPLAYER_GLVIDEOVIEW_H 7 | 8 | 9 | #include "XData.h" 10 | #include "IVideoView.h" 11 | 12 | class TextureHandler; 13 | 14 | class GLVideoView : public IVideoView { 15 | public: 16 | virtual void SetRender(void *win); 17 | 18 | virtual void Render(XData xData); 19 | 20 | virtual void Close(); 21 | 22 | virtual void setFilterType(int filterType); 23 | 24 | virtual void setScreenDimension(int width,int height); 25 | 26 | GLVideoView(); 27 | 28 | 29 | protected: 30 | void *view = 0; 31 | TextureHandler *xTexture = 0; 32 | std::mutex mutex1; 33 | int filterType = -1; 34 | int screenWidth = 0; 35 | int screenHeight = 0; 36 | }; 37 | 38 | 39 | #endif //MANCHESTERUNITEDPLAYER_GLVIDEOVIEW_H 40 | -------------------------------------------------------------------------------- /app/src/main/cpp/GrayFilter.cpp: -------------------------------------------------------------------------------- 1 | // 2 | // Created by yanyinan on 2020/1/21. 3 | // 4 | 5 | #include "GrayFilter.h" 6 | #include "FragmentShader.h" 7 | 8 | const char *GrayFilter::getSpecifiedFragShader(int yuvType) { 9 | switch (yuvType) { 10 | case SHADER_YUV420P: 11 | default: 12 | return fragYUV420PGray; 13 | case SHADER_NV12: 14 | return fragNV12Gray; 15 | case SHADER_NV21: 16 | return fragNV21Gray; 17 | } 18 | } 19 | 20 | void GrayFilter::onDraw(int pts) { 21 | //绘制矩形图像 22 | glDrawArrays(GL_TRIANGLE_STRIP, 0, 4); 23 | } 24 | 25 | void GrayFilter::onShaderDataLoad(unsigned int i) { 26 | 27 | } 28 | -------------------------------------------------------------------------------- /app/src/main/cpp/GrayFilter.h: -------------------------------------------------------------------------------- 1 | // 2 | // Created by yanyinan on 2020/1/21. 3 | // 4 | 5 | #ifndef MANCHESTERUNITEDPLAYER_GRAYFILTER_H 6 | #define MANCHESTERUNITEDPLAYER_GRAYFILTER_H 7 | 8 | 9 | #include "ShaderHandler.h" 10 | #include "Filter.h" 11 | /** 12 | * 灰度滤镜 13 | */ 14 | class GrayFilter: public Filter { 15 | 16 | virtual const char *getSpecifiedFragShader(int yuvType); 17 | 18 | virtual void onDraw(int i); 19 | 20 | virtual void onShaderDataLoad(unsigned int i); 21 | }; 22 | 23 | 24 | #endif //MANCHESTERUNITEDPLAYER_GRAYFILTER_H 25 | -------------------------------------------------------------------------------- /app/src/main/cpp/IAudioPlay.h: -------------------------------------------------------------------------------- 1 | // 2 | // Created by yanxi on 2019/10/20. 3 | // 4 | 5 | #ifndef MANCHESTERUNITEDPLAYER_IAUDIOPLAY_H 6 | #define MANCHESTERUNITEDPLAYER_IAUDIOPLAY_H 7 | 8 | 9 | #include 10 | #include "IObserver.h" 11 | #include "XParameter.h" 12 | 13 | class IAudioPlay : public IObserver { 14 | public: 15 | //缓冲满后阻塞 16 | virtual void Update(XData xData); 17 | 18 | virtual bool StartPlay(XParameter out) = 0; 19 | 20 | virtual void Close() = 0; 21 | 22 | //清理缓冲队列 23 | virtual void Clear(); 24 | 25 | //获取缓冲数据,如没有则阻塞 26 | virtual XData GetData(); 27 | 28 | int maxFrame = 100; 29 | int pst = 0; 30 | protected: 31 | std::list framelist; 32 | std::mutex frameMutex; 33 | }; 34 | 35 | 36 | #endif //MANCHESTERUNITEDPLAYER_IAUDIOPLAY_H 37 | -------------------------------------------------------------------------------- /app/src/main/cpp/IDecode.h: -------------------------------------------------------------------------------- 1 | // 2 | // Created by yanxi on 2019/9/1. 3 | // 4 | 5 | #ifndef MANCHESTERUNITEDPLAYER_IDECODE_H 6 | #define MANCHESTERUNITEDPLAYER_IDECODE_H 7 | 8 | 9 | #include "XParameter.h" 10 | #include "IObserver.h" 11 | #include 12 | 13 | /** 14 | * 负责解码的模块,具体的解码逻辑在子类 15 | */ 16 | class IDecode : public IObserver { 17 | public: 18 | //打开解码器.isHard:视频是否需要硬解码 19 | virtual bool Open(XParameter xParameter, bool isHard = false) = 0; 20 | 21 | virtual void Close() = 0; 22 | //清理缓冲队列和一些成员参数 23 | virtual void Clear(); 24 | 25 | //Future模式 26 | virtual bool SendPacket(XData pkt) = 0; 27 | 28 | //从线程中获取解码结果 29 | virtual XData RecvFrame() = 0; 30 | 31 | // 32 | virtual void Update(XData pkt); 33 | 34 | //当前解码器是音频还是视频 35 | bool isAudio = false; 36 | //缓冲队列最大数量 37 | int packMaxCount = 100; 38 | //当前播放的音频帧pts 39 | int synPts = 0; 40 | //当前解码出来的一帧的pts 41 | int pts = 0; 42 | 43 | protected: 44 | virtual void Main(); 45 | 46 | //存储缓冲帧 47 | std::list packList; 48 | //读取队列的互斥变量 49 | std::mutex packsMutex; 50 | }; 51 | 52 | 53 | #endif //MANCHESTERUNITEDPLAYER_IDECODE_H 54 | -------------------------------------------------------------------------------- /app/src/main/cpp/IDemux.cpp: -------------------------------------------------------------------------------- 1 | // 2 | // Created by yanxi on 2019/8/25. 3 | // 4 | 5 | #include "IDemux.h" 6 | #include "XLog.h" 7 | 8 | void IDemux::Main() { 9 | 10 | while (!isExit) { 11 | if (IsPause()){ 12 | Sleep(2); 13 | continue; 14 | } 15 | XData data = Read(); 16 | // LOGI("IDemux Read %d:",data.size); 17 | if (data.size > 0){ 18 | notify(data); 19 | } else{ 20 | Sleep(10); 21 | } 22 | 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /app/src/main/cpp/IDemux.h: -------------------------------------------------------------------------------- 1 | // 2 | // Created by yanxi on 2019/8/25. 3 | // 4 | 5 | #ifndef MANCHESTERUNITEDPLAYER_IDEMUX_H 6 | #define MANCHESTERUNITEDPLAYER_IDEMUX_H 7 | 8 | #include "XData.h" 9 | #include "XThread.h" 10 | #include "IObserver.h" 11 | #include "XParameter.h" 12 | 13 | //解封装接口类 14 | class IDemux : public IObserver { 15 | 16 | public:// 17 | //打开文件或者流媒体 rmtp rtsp http 18 | virtual bool Open(const char *url) = 0; 19 | 20 | virtual void Close() = 0; 21 | 22 | //获取视频参数 23 | virtual XParameter GetVideoParameter() = 0; 24 | 25 | //获取音频参数 26 | virtual XParameter GetAudioParameter() = 0; 27 | 28 | //读取一帧数据(注意防止内存泄漏) 29 | virtual XData Read() = 0; 30 | //seek范围0.0--1.0 31 | virtual bool Seek(double position) = 0; 32 | 33 | //总时长(单位time_base) 34 | int totalMs = 0; 35 | 36 | protected: 37 | virtual void Main(); 38 | }; 39 | 40 | 41 | #endif //MANCHESTERUNITEDPLAYER_IDEMUX_H 42 | -------------------------------------------------------------------------------- /app/src/main/cpp/IObserver.cpp: -------------------------------------------------------------------------------- 1 | // 2 | // Created by yanxi on 2019/9/1. 3 | // 4 | 5 | #include "IObserver.h" 6 | #include "XLog.h" 7 | 8 | void IObserver::AddOberver(IObserver *observer) { 9 | if (!observer) { 10 | return; 11 | } 12 | //mutex.lock(); 13 | const std::lock_guard lock(mutex); 14 | obervers.push_back(observer); 15 | // mutex.unlock(); 16 | } 17 | 18 | void IObserver::notify(XData data) { 19 | // mutex.lock(); 20 | LOGLOCK("notify lock() start"); 21 | const std::lock_guard lock(mutex); 22 | LOGLOCK("notify lock() end"); 23 | 24 | for (int i = 0; i < obervers.size(); ++i) { 25 | obervers[i]->Update(data); 26 | } 27 | // mutex.unlock(); 28 | LOGLOCK("notify unlock()3"); 29 | 30 | } -------------------------------------------------------------------------------- /app/src/main/cpp/IObserver.h: -------------------------------------------------------------------------------- 1 | // 2 | // Created by yanxi on 2019/9/1. 3 | // 4 | 5 | #ifndef MANCHESTERUNITEDPLAYER_IOBSERVER_H 6 | #define MANCHESTERUNITEDPLAYER_IOBSERVER_H 7 | 8 | #include "XData.h" 9 | #include "XThread.h" 10 | #include 11 | #include 12 | 13 | /** 14 | * 既是观察者又是被观察者 15 | */ 16 | class IObserver :public XThread{ 17 | public: 18 | virtual void Update(XData data){} 19 | 20 | void AddOberver(IObserver *observer); 21 | 22 | void notify(XData data); 23 | 24 | private: 25 | std::vector obervers; 26 | std::mutex mutex; 27 | }; 28 | 29 | 30 | #endif //MANCHESTERUNITEDPLAYER_IOBSERVER_H 31 | -------------------------------------------------------------------------------- /app/src/main/cpp/IPlayBuilder.cpp: -------------------------------------------------------------------------------- 1 | // 2 | // Created by yanxi on 2019/10/28. 3 | // 4 | 5 | #include "IPlayBuilder.h" 6 | #include "IPlayer.h" 7 | #include "IDemux.h" 8 | #include "XLog.h" 9 | #include "IDecode.h" 10 | #include "IResample.h" 11 | #include "IAudioPlay.h" 12 | #include "IVideoView.h" 13 | 14 | IPlayer *IPlayBuilder::BuildPlayer(unsigned int index) { 15 | IPlayer *play = CreatePalyer(index); 16 | IDemux *iDemux = CreateDemux(); 17 | IDecode *audioDecode = CreateDecode(); 18 | IDecode *videoDecode = CreateDecode(); 19 | //解复用一帧之后,通知解码器 20 | iDemux->AddOberver(audioDecode); 21 | iDemux->AddOberver(videoDecode); 22 | IVideoView *iVideoView = CreateVideoView(); 23 | //解码一帧之后,通知显示模块 24 | videoDecode->AddOberver(iVideoView); 25 | IResample *resample = CreateResample(); 26 | audioDecode->AddOberver(resample); 27 | IAudioPlay *audioPlay = CreateAudioPlay(); 28 | resample->AddOberver(audioPlay); 29 | 30 | play->iDemux = iDemux; 31 | play->audioPlay = audioPlay; 32 | play->audioDecode = audioDecode; 33 | play->videoDecode = videoDecode; 34 | play->resample = resample; 35 | play->videoView = iVideoView; 36 | return play; 37 | } 38 | -------------------------------------------------------------------------------- /app/src/main/cpp/IPlayBuilder.h: -------------------------------------------------------------------------------- 1 | // 2 | // Created by yanxi on 2019/10/28. 3 | // 4 | 5 | #ifndef MANCHESTERUNITEDPLAYER_IPLAYBUILDER_H 6 | #define MANCHESTERUNITEDPLAYER_IPLAYBUILDER_H 7 | 8 | 9 | #include "IPlayer.h" 10 | 11 | class IPlayBuilder { 12 | public: 13 | virtual IPlayer *BuildPlayer(unsigned int index = 0); 14 | 15 | protected: 16 | virtual IDemux *CreateDemux() = 0; 17 | 18 | virtual IDecode *CreateDecode() = 0; 19 | 20 | virtual IResample *CreateResample() = 0; 21 | 22 | virtual IVideoView *CreateVideoView() = 0; 23 | 24 | virtual IAudioPlay *CreateAudioPlay() = 0; 25 | 26 | virtual IPlayer *CreatePalyer(unsigned int index) = 0; 27 | 28 | }; 29 | 30 | 31 | #endif //MANCHESTERUNITEDPLAYER_IPLAYBUILDER_H 32 | -------------------------------------------------------------------------------- /app/src/main/cpp/IPlayer.h: -------------------------------------------------------------------------------- 1 | // 2 | // Created by yanxi on 2019/10/26. 3 | // 4 | 5 | #ifndef MANCHESTERUNITEDPLAYER_IPLAYER_H 6 | #define MANCHESTERUNITEDPLAYER_IPLAYER_H 7 | 8 | #include 9 | #include "XThread.h" 10 | #include "XParameter.h" 11 | 12 | //不引用头文件,这样子可以使得外部调用者使用当前类的以下成员时候只需要引入当前类的头文件? 13 | //而不需要引入下面类的头文件? 14 | class IDemux; 15 | 16 | class IDecode; 17 | 18 | class IResample; 19 | 20 | class IVideoView; 21 | 22 | class IAudioPlay; 23 | //todo 为什么这里给其他类使用会链接失败??? 24 | //int videoPts = 0; 25 | 26 | /** 27 | * 整个播放器的入口类,屏蔽内部具体技术实现 28 | */ 29 | class IPlayer : public XThread { 30 | public: 31 | //index为窗口索引 32 | static IPlayer *Get(unsigned int index = 0); 33 | 34 | virtual bool Open(const char *path); 35 | 36 | virtual void Close(); 37 | 38 | virtual bool Start(); 39 | 40 | virtual bool InitView(void *win, int filterType,int screenWidth, int screenHeight); 41 | 42 | //获取当前进度(0.0--1.0) 43 | virtual double GetPlayPose(); 44 | 45 | virtual bool Seek(double position); 46 | 47 | virtual void SetPause(bool isP); 48 | 49 | virtual void setFilterType(int filterType); 50 | 51 | //protected: 52 | IDemux *iDemux = 0; 53 | IDecode *videoDecode = 0; 54 | IDecode *audioDecode = 0; 55 | IResample *resample = 0; 56 | IVideoView *videoView = 0; 57 | IAudioPlay *audioPlay = 0; 58 | //音频输出参数 59 | XParameter outPara; 60 | 61 | bool isHardDecode = true; 62 | 63 | protected: 64 | //用作音视频同步 65 | void Main(); 66 | 67 | std::mutex mutex; 68 | 69 | IPlayer(); 70 | }; 71 | 72 | 73 | #endif //MANCHESTERUNITEDPLAYER_IPLAYER_H 74 | -------------------------------------------------------------------------------- /app/src/main/cpp/IPlayerProxy.h: -------------------------------------------------------------------------------- 1 | // 2 | // Created by yanxi on 2019/10/29. 3 | // 4 | 5 | #ifndef MANCHESTERUNITEDPLAYER_IPLAYERPROXY_H 6 | #define MANCHESTERUNITEDPLAYER_IPLAYERPROXY_H 7 | 8 | 9 | #include 10 | #include "IPlayer.h" 11 | 12 | class IPlayerProxy : public IPlayer { 13 | public: 14 | static IPlayerProxy *Get(); 15 | 16 | void Init(void *vm = 0); 17 | 18 | virtual bool Open(const char *path); 19 | 20 | virtual void Close(); 21 | 22 | virtual bool Start(); 23 | 24 | virtual bool InitView(void *win, int filterType,int screenWidth, int screenHeight); 25 | 26 | virtual double GetPlayPose(); 27 | 28 | virtual bool Seek(double position); 29 | 30 | virtual void SetPause(bool isP); 31 | 32 | virtual bool IsPause(); 33 | 34 | virtual void setFilterType(int filterType); 35 | 36 | 37 | protected: 38 | IPlayerProxy(); 39 | 40 | IPlayer *player = 0; 41 | std::mutex mutexProxy; 42 | 43 | }; 44 | 45 | 46 | #endif //MANCHESTERUNITEDPLAYER_IPLAYERPROXY_H 47 | -------------------------------------------------------------------------------- /app/src/main/cpp/IResample.cpp: -------------------------------------------------------------------------------- 1 | // 2 | // Created by yanxi on 2019/10/19. 3 | // 4 | 5 | #include "IResample.h" 6 | 7 | void IResample::Update(XData data) { 8 | XData xData = this->Resample(data); 9 | if (xData.size >0){ 10 | this->notify(xData); 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /app/src/main/cpp/IResample.h: -------------------------------------------------------------------------------- 1 | // 2 | // Created by yanxi on 2019/10/19. 3 | // 4 | 5 | #ifndef MANCHESTERUNITEDPLAYER_IRESAMPLE_H 6 | #define MANCHESTERUNITEDPLAYER_IRESAMPLE_H 7 | 8 | 9 | #include "IObserver.h" 10 | #include "XParameter.h" 11 | 12 | class IResample : public IObserver { 13 | public: 14 | int outChannels = 2; 15 | int outFormat = 1; 16 | 17 | virtual bool Open(XParameter in, XParameter out = XParameter()) = 0; 18 | 19 | virtual void Close() = 0; 20 | 21 | virtual XData Resample(XData inData) = 0; 22 | 23 | virtual void Update(XData data); 24 | }; 25 | 26 | 27 | #endif //MANCHESTERUNITEDPLAYER_IRESAMPLE_H 28 | -------------------------------------------------------------------------------- /app/src/main/cpp/IVideoView.cpp: -------------------------------------------------------------------------------- 1 | // 2 | // Created by yanxi on 2019/9/15. 3 | // 4 | 5 | #include "IVideoView.h" 6 | #include "XLog.h" 7 | 8 | void IVideoView::Update(XData xData) { 9 | LOGE("IVideoView Update"); 10 | this->Render(xData); 11 | } 12 | -------------------------------------------------------------------------------- /app/src/main/cpp/IVideoView.h: -------------------------------------------------------------------------------- 1 | // 2 | // Created by yanxi on 2019/9/15. 3 | // 4 | 5 | #ifndef MANCHESTERUNITEDPLAYER_IVIDEOVIEW_H 6 | #define MANCHESTERUNITEDPLAYER_IVIDEOVIEW_H 7 | 8 | 9 | #include "XData.h" 10 | #include "IObserver.h" 11 | 12 | class IVideoView :public IObserver{ 13 | public: 14 | virtual void SetRender(void *win) = 0; 15 | virtual void Render(XData xData) = 0; 16 | virtual void Update(XData xData); 17 | virtual void Close() = 0; 18 | virtual void setFilterType(int surfaceType) = 0; 19 | virtual void setScreenDimension(int width,int height) = 0; 20 | }; 21 | 22 | 23 | #endif //MANCHESTERUNITEDPLAYER_IVIDEOVIEW_H 24 | -------------------------------------------------------------------------------- /app/src/main/cpp/NoneFilter.cpp: -------------------------------------------------------------------------------- 1 | // 2 | // Created by yanyinan on 2020/1/21. 3 | // 4 | 5 | #include "NoneFilter.h" 6 | #include "FragmentShader.h" 7 | #include "ShaderHandler.h" 8 | #include "XLog.h" 9 | 10 | void NoneFilter::onDraw(int pts) { 11 | //绘制矩形图像 12 | glDrawArrays(GL_TRIANGLE_STRIP, 0, 4); 13 | } 14 | 15 | const char *NoneFilter::getSpecifiedFragShader(int yuvType) { 16 | switch (yuvType) { 17 | case SHADER_YUV420P: 18 | default: 19 | return fragYUV420P; 20 | case SHADER_NV12: 21 | LOGDSHADER("getSpecifiedFragShader SHADER_NV12"); 22 | return fragNV12; 23 | case SHADER_NV21: 24 | return fragNV21; 25 | } 26 | } 27 | 28 | void NoneFilter::onShaderDataLoad(unsigned int i) { 29 | 30 | } 31 | -------------------------------------------------------------------------------- /app/src/main/cpp/NoneFilter.h: -------------------------------------------------------------------------------- 1 | // 2 | // Created by yanyinan on 2020/1/21. 3 | // 4 | 5 | #ifndef MANCHESTERUNITEDPLAYER_NONEFILTER_H 6 | #define MANCHESTERUNITEDPLAYER_NONEFILTER_H 7 | 8 | 9 | #include "Filter.h" 10 | /** 11 | * 不带滤镜效果 12 | */ 13 | class NoneFilter : public Filter { 14 | 15 | virtual void onDraw(int i); 16 | 17 | virtual const char *getSpecifiedFragShader(int yuvType); 18 | 19 | virtual void onShaderDataLoad(unsigned int i); 20 | }; 21 | 22 | 23 | #endif //MANCHESTERUNITEDPLAYER_NONEFILTER_H 24 | -------------------------------------------------------------------------------- /app/src/main/cpp/OppoFilter.cpp: -------------------------------------------------------------------------------- 1 | // 2 | // Created by yanyinan on 2020/1/21. 3 | // 4 | 5 | #include "OppoFilter.h" 6 | #include "FragmentShader.h" 7 | #include "ShaderHandler.h" 8 | 9 | const char *OppoFilter::getSpecifiedFragShader(int yuvType) { 10 | switch (yuvType) { 11 | case SHADER_YUV420P: 12 | default: 13 | return fragYUV420POppositeColor; 14 | case SHADER_NV12: 15 | return fragNV12OppoColor; 16 | case SHADER_NV21: 17 | return fragNV21OppoColor; 18 | } 19 | 20 | } 21 | 22 | void OppoFilter::onDraw(int pts) { 23 | //绘制矩形图像 24 | glDrawArrays(GL_TRIANGLE_STRIP, 0, 4); 25 | } 26 | 27 | void OppoFilter::onShaderDataLoad(unsigned int i) { 28 | 29 | } 30 | 31 | 32 | -------------------------------------------------------------------------------- /app/src/main/cpp/OppoFilter.h: -------------------------------------------------------------------------------- 1 | // 2 | // Created by yanyinan on 2020/1/21. 3 | // 4 | 5 | #ifndef MANCHESTERUNITEDPLAYER_OPPOFILTER_H 6 | #define MANCHESTERUNITEDPLAYER_OPPOFILTER_H 7 | 8 | #include "Filter.h" 9 | 10 | /** 11 | * 反色滤镜 12 | */ 13 | class OppoFilter : public Filter { 14 | 15 | virtual const char *getSpecifiedFragShader(int yuvType); 16 | 17 | virtual void onDraw(int i); 18 | 19 | virtual void onShaderDataLoad(unsigned int i); 20 | 21 | }; 22 | 23 | 24 | #endif //MANCHESTERUNITEDPLAYER_OPPOFILTER_H 25 | -------------------------------------------------------------------------------- /app/src/main/cpp/SLAudioPlay.h: -------------------------------------------------------------------------------- 1 | // 2 | // Created by yanxi on 2019/10/20. 3 | // 4 | 5 | #ifndef MANCHESTERUNITEDPLAYER_SLAUDIOPLAY_H 6 | #define MANCHESTERUNITEDPLAYER_SLAUDIOPLAY_H 7 | 8 | 9 | #include 10 | #include "IAudioPlay.h" 11 | 12 | class SLAudioPlay : public IAudioPlay { 13 | public: 14 | virtual bool StartPlay(XParameter out); 15 | 16 | virtual void PlayCall(void *bufq); 17 | 18 | virtual void Close(); 19 | 20 | SLAudioPlay(); 21 | 22 | virtual ~SLAudioPlay(); 23 | 24 | protected: 25 | unsigned char *buf = 0; 26 | std::mutex mutex1; 27 | }; 28 | 29 | 30 | #endif //MANCHESTERUNITEDPLAYER_SLAUDIOPLAY_H 31 | -------------------------------------------------------------------------------- /app/src/main/cpp/ScaleFilter.h: -------------------------------------------------------------------------------- 1 | // 2 | // Created by yanyinan on 2020/1/22. 3 | // 4 | 5 | #ifndef MANCHESTERUNITEDPLAYER_SCALEFILTER_H 6 | #define MANCHESTERUNITEDPLAYER_SCALEFILTER_H 7 | 8 | 9 | #include "Filter.h" 10 | #include "glm/glm/gtc/matrix_transform.hpp" 11 | #include "glm/glm/ext.hpp" 12 | #include "glm/glm/detail/_noise.hpp" 13 | #include "glm/gtx/transform.hpp" 14 | 15 | using namespace glm; 16 | 17 | #define SCALE_DURATION 600 18 | #define SKIP_DURATION 100 19 | #define MAX_DIFF_SCALE 3.0F 20 | 21 | class ScaleFilter : public Filter { 22 | virtual const char *getSpecifiedFragShader(int yuvType); 23 | 24 | virtual void onDraw(int i); 25 | 26 | virtual void onShaderDataLoad(unsigned int i); 27 | 28 | private: 29 | int uScaleMatrixLocation; 30 | int uTimeLocation; 31 | }; 32 | 33 | 34 | #endif //MANCHESTERUNITEDPLAYER_SCALEFILTER_H 35 | -------------------------------------------------------------------------------- /app/src/main/cpp/ShaderHandler.h: -------------------------------------------------------------------------------- 1 | // 2 | // Created by yanxi on 2019/9/15. 3 | // 4 | 5 | #ifndef MANCHESTERUNITEDPLAYER_SHADERHANDLER_H 6 | #define MANCHESTERUNITEDPLAYER_SHADERHANDLER_H 7 | 8 | #include 9 | #include "Filter.h" 10 | 11 | //为了使和XTexture不关联 12 | enum YuvType { 13 | SHADER_YUV420P = 0,//每4个像素Y4 U1 V1 14 | SHADER_NV12 = 25, //每4个像素Y4 UV1 15 | SHADER_NV21 = 26 //每4个像素Y4 VU1 16 | }; 17 | /** 18 | * 滤镜类型 19 | */ 20 | enum FilterType { 21 | OPPOSITE_COLOR = 1,//反色 22 | GRAY = 2, //灰度图 23 | SPLASH = 3, //闪白 24 | SCALE = 4, //闪白 25 | SOUL = 5, //灵魂出窍 26 | SHAKE = 6, //抖动 27 | }; 28 | /** 29 | * 着色器处理器 30 | */ 31 | class ShaderHandler { 32 | public: 33 | virtual bool Init(YuvType yuvType, int i); 34 | 35 | virtual void Close(); 36 | 37 | //初始化绑定纹理 isA表示是否有透明通道(NV12,NV21) 38 | virtual void 39 | loadTexture(unsigned int index, int width, int height, unsigned char *buf, bool isAlpha = false); 40 | 41 | virtual void Draw(int i); 42 | 43 | //着色器Id 44 | unsigned int vsh = 0; 45 | GLuint fsh = 0; 46 | //着色器程序id 47 | unsigned int program = 0; 48 | //100层的纹理id数组 49 | unsigned int textures[100] = {0}; 50 | std::mutex mutex; 51 | //todo 动态滤镜的时间参数 52 | int uTimeLocation = 0; 53 | int uScaleMatrixLocation; 54 | int filterType = -1; 55 | 56 | private: 57 | Filter *filter = nullptr; 58 | }; 59 | 60 | 61 | #endif //MANCHESTERUNITEDPLAYER_SHADERHANDLER_H 62 | -------------------------------------------------------------------------------- /app/src/main/cpp/ShakeFilter.h: -------------------------------------------------------------------------------- 1 | // 2 | // Created by yanyinan on 2020/1/23. 3 | // 4 | 5 | #ifndef MANCHESTERUNITEDPLAYER_SHAKEFILTER_H 6 | #define MANCHESTERUNITEDPLAYER_SHAKEFILTER_H 7 | 8 | 9 | #include "Filter.h" 10 | #include "glm/glm/gtc/matrix_transform.hpp" 11 | #include "glm/glm/ext.hpp" 12 | #include "glm/glm/detail/_noise.hpp" 13 | #include "glm/gtx/transform.hpp" 14 | 15 | #define SCALE_DURATION 600 16 | #define SKIP_DURATION 150 17 | #define MAX_DIFF_SCALE 0.2F 18 | 19 | using namespace glm; 20 | /** 21 | * 抖动效果 22 | */ 23 | class ShakeFilter : public Filter { 24 | 25 | virtual void onDraw(int pts); 26 | 27 | virtual const char *getSpecifiedFragShader(int yuvType); 28 | 29 | virtual void onShaderDataLoad(unsigned int program); 30 | 31 | private: 32 | int uScaleMatrixLocation; 33 | int uTextureCoordOffsetLocation; 34 | 35 | }; 36 | 37 | 38 | #endif //MANCHESTERUNITEDPLAYER_SHAKEFILTER_H 39 | -------------------------------------------------------------------------------- /app/src/main/cpp/SoulFilter.h: -------------------------------------------------------------------------------- 1 | // 2 | // Created by yanyinan on 2020/1/22. 3 | // 4 | 5 | #ifndef MANCHESTERUNITEDPLAYER_SOULFILTER_H 6 | #define MANCHESTERUNITEDPLAYER_SOULFILTER_H 7 | 8 | 9 | #include "Filter.h" 10 | 11 | #define SCALE_DURATION 1000 12 | #define MAX_DIFF_SCALE 1.0F 13 | #define SKIP_DURATION 150 14 | 15 | using namespace glm; 16 | /** 17 | * 灵魂出窍效果 18 | */ 19 | class SoulFilter : public Filter{ 20 | virtual const char *getSpecifiedFragShader(int yuvType); 21 | 22 | virtual void onDraw(int i); 23 | 24 | virtual void onShaderDataLoad(unsigned int i); 25 | 26 | private: 27 | int uScaleLocation; 28 | int uTimeLocation; 29 | int uAlphaLocation = 0; 30 | int uFrontAlphaLocation = 0; 31 | 32 | }; 33 | 34 | 35 | #endif //MANCHESTERUNITEDPLAYER_SOULFILTER_H 36 | -------------------------------------------------------------------------------- /app/src/main/cpp/SplashFilter.cpp: -------------------------------------------------------------------------------- 1 | // 2 | // Created by yanyinan on 2020/1/22. 3 | // 4 | 5 | #include "SplashFilter.h" 6 | #include "ShaderHandler.h" 7 | #include "FragmentShader.h" 8 | #include "XLog.h" 9 | 10 | void SplashFilter::onDraw(int pts) { 11 | //绘制矩形图像 12 | glDrawArrays(GL_TRIANGLE_STRIP, 0, 4); 13 | } 14 | 15 | const char *SplashFilter::getSpecifiedFragShader(int yuvType) { 16 | switch (yuvType) { 17 | case SHADER_YUV420P: 18 | default: 19 | return fragYUV420PSplash; 20 | case SHADER_NV12: 21 | LOGDSHADER("getSpecifiedFragShader SHADER_NV12"); 22 | return fragNV12Splash; 23 | case SHADER_NV21: 24 | return fragNV21; 25 | } 26 | } 27 | 28 | void SplashFilter::onShaderDataLoad(unsigned int i) { 29 | 30 | } 31 | -------------------------------------------------------------------------------- /app/src/main/cpp/SplashFilter.h: -------------------------------------------------------------------------------- 1 | // 2 | // Created by yanyinan on 2020/1/22. 3 | // 4 | 5 | #ifndef MANCHESTERUNITEDPLAYER_SPLASHFILTER_H 6 | #define MANCHESTERUNITEDPLAYER_SPLASHFILTER_H 7 | 8 | 9 | #include "Filter.h" 10 | /** 11 | * 闪白效果 12 | */ 13 | class SplashFilter: public Filter { 14 | virtual void onDraw(int i); 15 | 16 | virtual const char *getSpecifiedFragShader(int yuvType); 17 | 18 | virtual void onShaderDataLoad(unsigned int program); 19 | }; 20 | 21 | 22 | #endif //MANCHESTERUNITEDPLAYER_SPLASHFILTER_H 23 | -------------------------------------------------------------------------------- /app/src/main/cpp/TextureHandler.h: -------------------------------------------------------------------------------- 1 | // 2 | // Created by yanxi on 2019/9/15. 3 | // 4 | 5 | #ifndef MANCHESTERUNITEDPLAYER_TEXTUREHANDLER_H 6 | #define MANCHESTERUNITEDPLAYER_TEXTUREHANDLER_H 7 | 8 | enum XTextureType { 9 | XTEXTURE_YUV420P = 0,//每4个像素Y4 U1 V1 (测试中是软解码结果的格式) 10 | XTEXTURE_NV12 = 25, //每4个像素Y4 UV1 (测试中是硬解码解码结果的格式) 11 | XTEXTURE_NV21 = 26 //每4个像素Y4 VU1 12 | }; 13 | 14 | class TextureHandler { 15 | public: 16 | static TextureHandler *Create(); 17 | 18 | virtual bool Init(void *win, XTextureType textureType, int i) = 0; 19 | 20 | virtual void Draw(unsigned char *data[], int videoWidth, int videoHeight, int filterType, int screenWidth, int screenHeight) = 0; 21 | 22 | virtual void Drop() = 0; 23 | //todo 这里使用virtual是因为父类指针delete的时候没有virtual是调用不到该析构函数的 24 | virtual ~TextureHandler(){}; 25 | 26 | virtual void adjustVideoDimension(int videoWidth, int videoHeight, int screenWidth, int screenHeight) = 0; 27 | 28 | protected: 29 | TextureHandler(){}; 30 | }; 31 | 32 | 33 | #endif //MANCHESTERUNITEDPLAYER_TEXTUREHANDLER_H 34 | -------------------------------------------------------------------------------- /app/src/main/cpp/XData.cpp: -------------------------------------------------------------------------------- 1 | // 2 | // Created by yanxi on 2019/8/25. 3 | // 4 | extern "C" { 5 | #include 6 | } 7 | 8 | #include "XData.h" 9 | 10 | void XData::Drop() { 11 | if (!data) { 12 | return; 13 | } 14 | if (type == AVPACKET_TYPE) { 15 | //这里是把AVPacket本身内存释放掉 av_packet_unref只是释放对真正的音视频数据的引用,只释放真正的音视频数据 16 | //1.解引用数据data 17 | //2.销毁AVPacket本身对象 18 | //3.AVPacket的指针指向NULL 19 | av_packet_free(reinterpret_cast(&data)); 20 | } else { 21 | //其他类型通过delete释放内存 22 | delete data; 23 | } 24 | 25 | data = nullptr; 26 | size = 0; 27 | } 28 | 29 | bool XData::Alloc(int size, const char *d) { 30 | Drop(); 31 | type = UCHAR_TYPE; 32 | if (size < 0) { 33 | return false; 34 | } 35 | this->data = new unsigned char[size]; 36 | if (d) { 37 | memcpy(this->data, d, size); 38 | } 39 | this->size = size; 40 | return true; 41 | } 42 | -------------------------------------------------------------------------------- /app/src/main/cpp/XData.h: -------------------------------------------------------------------------------- 1 | // 2 | // Created by yanxi on 2019/8/25. 3 | // 4 | 5 | #ifndef MANCHESTERUNITEDPLAYER_XDATA_H 6 | #define MANCHESTERUNITEDPLAYER_XDATA_H 7 | /** 8 | * 区分数据类型 9 | */ 10 | enum XDataType{ 11 | AVPACKET_TYPE = 0, 12 | //非AcPacket类 13 | UCHAR_TYPE = 1 14 | }; 15 | /** 16 | * 解复用解码不同模块间传递用得的封装数据类 17 | */ 18 | struct XData { 19 | int type = 0; 20 | unsigned char *data = 0; 21 | unsigned char *datas[8] = {0}; 22 | int pts = 0; 23 | int size = 0; 24 | bool isAudio = false; 25 | int width; 26 | int height; 27 | //区分视频帧格式(yuv420p,nv12,nv21) 28 | int format = 0; 29 | void Drop(); 30 | bool Alloc(int size, const char *data = 0); 31 | }; 32 | 33 | 34 | #endif //MANCHESTERUNITEDPLAYER_XDATA_H 35 | -------------------------------------------------------------------------------- /app/src/main/cpp/XEGL.h: -------------------------------------------------------------------------------- 1 | // 2 | // Created by yanxi on 2019/9/15. 3 | // 4 | 5 | #ifndef MANCHESTERUNITEDPLAYER_XEGL_H 6 | #define MANCHESTERUNITEDPLAYER_XEGL_H 7 | 8 | 9 | class XEGL { 10 | public: 11 | virtual bool Init(void* win) = 0; 12 | virtual void Close() = 0; 13 | static XEGL *Get(); 14 | 15 | virtual void Draw()= 0; 16 | 17 | protected: 18 | XEGL(){} 19 | }; 20 | 21 | 22 | #endif //MANCHESTERUNITEDPLAYER_XEGL_H 23 | -------------------------------------------------------------------------------- /app/src/main/cpp/XLog.cpp: -------------------------------------------------------------------------------- 1 | // 2 | // Created by yanxi on 2019/8/25. 3 | // 4 | 5 | #include "XLog.h" 6 | -------------------------------------------------------------------------------- /app/src/main/cpp/XLog.h: -------------------------------------------------------------------------------- 1 | // 2 | // Created by yanxi on 2019/8/25. 3 | // 4 | 5 | #ifndef MANCHESTERUNITEDPLAYER_XLOG_H 6 | #define MANCHESTERUNITEDPLAYER_XLOG_H 7 | 8 | 9 | /** 10 | * 日志打印器接口类 11 | */ 12 | class XLog { 13 | 14 | }; 15 | #ifdef ANDROID 16 | #include 17 | //#define LOGD(...) __android_log_print(ANDROID_LOG_DEBUG,"ManchesterUnitedPlayerDemo",__VA_ARGS__) 18 | //#define LOGDT(...) __android_log_print(ANDROID_LOG_DEBUG,"texture",__VA_ARGS__) 19 | #define LOGDSHADER(...) __android_log_print(ANDROID_LOG_DEBUG,"shader",__VA_ARGS__) 20 | //#define LOGI(...) __android_log_print(ANDROID_LOG_INFO,"ManchesterUnitedPlayerDemo",__VA_ARGS__) 21 | #define LOGE(...) __android_log_print(ANDROID_LOG_ERROR,"ManchesterUnitedPlayerDemo",__VA_ARGS__) 22 | #define LOGAudioPlayer(...) __android_log_print(ANDROID_LOG_ERROR,"AudioPlayer",__VA_ARGS__) 23 | #define LOGXThread(...) __android_log_print(ANDROID_LOG_ERROR,"XThread",__VA_ARGS__) 24 | //#define LOGA(...) __android_log_print(ANDROID_LOG_ERROR,"SLAudioPlay",__VA_ARGS__) 25 | //#define LOGS(...) __android_log_print(ANDROID_LOG_ERROR,"seek debug",__VA_ARGS__) 26 | //#define LOGLOCK(...) __android_log_print(ANDROID_LOG_ERROR,"lock debug",__VA_ARGS__) 27 | 28 | #define LOGD(...) "" 29 | #define LOGDT(...) "" 30 | #define LOGI(...) "" 31 | //#define LOGE(...) "" 32 | #define LOGA(...) "" 33 | #define LOGS(...) "" 34 | #define LOGLOCK(...) "" 35 | //#define LOGDSHADER(...) "" 36 | //#define LOG_VIDEO_DIMENSION(...) __android_log_print(ANDROID_LOG_INFO,"VIDEO_DIMENSION",__VA_ARGS__) 37 | #define LOG_VIDEO_DIMENSION(...) "" 38 | //#define LOGLOCK(...) "" 39 | #define LOGDemux(...) __android_log_print(ANDROID_LOG_ERROR,"Demux",__VA_ARGS__) 40 | #define LOGDecode(...) __android_log_print(ANDROID_LOG_ERROR,"Decode",__VA_ARGS__) 41 | #else 42 | 43 | #endif 44 | 45 | 46 | #endif //MANCHESTERUNITEDPLAYER_XLOG_H 47 | -------------------------------------------------------------------------------- /app/src/main/cpp/XParameter.cpp: -------------------------------------------------------------------------------- 1 | // 2 | // Created by yanxi on 2019/9/1. 3 | // 4 | 5 | #include "XParameter.h" 6 | -------------------------------------------------------------------------------- /app/src/main/cpp/XParameter.h: -------------------------------------------------------------------------------- 1 | // 2 | // Created by yanxi on 2019/9/1. 3 | // 4 | 5 | #ifndef MANCHESTERUNITEDPLAYER_XPARAMETER_H 6 | #define MANCHESTERUNITEDPLAYER_XPARAMETER_H 7 | 8 | //todo 为什么不引用头文件而这样写? 9 | struct AVCodecParameters; 10 | 11 | class XParameter { 12 | public: 13 | //描述一个编码流的属性信息 14 | AVCodecParameters *parameters = 0; 15 | int channels = 2; 16 | int sample_rate = 44100; 17 | }; 18 | 19 | 20 | #endif //MANCHESTERUNITEDPLAYER_XPARAMETER_H 21 | -------------------------------------------------------------------------------- /app/src/main/cpp/XThread.cpp: -------------------------------------------------------------------------------- 1 | // 2 | // Created by yanxi on 2019/8/31. 3 | // 4 | 5 | #include "XThread.h" 6 | #include "XLog.h" 7 | #include 8 | 9 | using namespace std; 10 | 11 | /** 12 | * 延时,本质为释放cpu资源,让cpu休息 13 | * @param mis 14 | */ 15 | void Sleep(int mis) { 16 | chrono::microseconds du(mis); 17 | this_thread::sleep_for(du); 18 | } 19 | 20 | //启动线程 21 | bool XThread::Start() { 22 | //创建线程 23 | isExit = false; 24 | isPause = false; 25 | thread th(&XThread::ThreadMain, this); 26 | //当前线程成为守护线程 27 | th.detach(); 28 | return true; 29 | } 30 | 31 | //停止线程,通过标志位(不一定成功) 32 | void XThread::Stop() { 33 | isExit = true; 34 | //200毫秒的退出超时时间 35 | for (int i = 0; i < 200; ++i) { 36 | if (!isRunnig){ 37 | return; 38 | } 39 | Sleep(1); 40 | } 41 | LOGD("stop线程超时!"); 42 | } 43 | 44 | //入口主函数 45 | void XThread::ThreadMain() { 46 | isRunnig = true; 47 | LOGI("线程函数进入"); 48 | Main(); 49 | LOGI("线程函数退出"); 50 | isRunnig = false; 51 | } 52 | 53 | void XThread::SetPause(bool pause) { 54 | //todo 这里c++是否存在多线程的可见性问题呢? 55 | LOGXThread("SetPause pause:%d,threadName:%s",pause,threadName); 56 | isPause = pause; 57 | } 58 | 59 | bool XThread::IsPause() { 60 | return isPause; 61 | } 62 | -------------------------------------------------------------------------------- /app/src/main/cpp/XThread.h: -------------------------------------------------------------------------------- 1 | // 2 | // Created by yanxi on 2019/8/31. 3 | // 4 | 5 | #ifndef MANCHESTERUNITEDPLAYER_XTHREAD_H 6 | #define MANCHESTERUNITEDPLAYER_XTHREAD_H 7 | 8 | #include 9 | 10 | //线程sleep毫秒 11 | void Sleep(int mis); 12 | 13 | class XThread { 14 | public: 15 | //启动线程 16 | virtual bool Start(); 17 | 18 | //停止线程,通过标志位(不一定成功) 19 | virtual void Stop(); 20 | 21 | virtual void SetPause(bool isPause); 22 | 23 | //入口主函数 24 | virtual void Main() {} 25 | 26 | virtual bool IsPause(); 27 | 28 | 29 | protected: 30 | char *threadName = nullptr; 31 | bool isExit = false; 32 | bool isRunnig = false; 33 | bool isPause = true; 34 | bool isPausing = false; 35 | private: 36 | void ThreadMain(); 37 | }; 38 | 39 | 40 | #endif //MANCHESTERUNITEDPLAYER_XTHREAD_H 41 | -------------------------------------------------------------------------------- /app/src/main/cpp/glm/CTestConfig.cmake: -------------------------------------------------------------------------------- 1 | ## This file should be placed in the root directory of your project. 2 | ## Then modify the CMakeLists.txt file in the root directory of your 3 | ## project to incorporate the testing dashboard. 4 | ## # The following are required to uses Dart and the Cdash dashboard 5 | ## ENABLE_TESTING() 6 | ## INCLUDE(CTest) 7 | set(CTEST_PROJECT_NAME "GLM") 8 | set(CTEST_NIGHTLY_START_TIME "00:00:00 EST") 9 | 10 | set(CTEST_DROP_METHOD "http") 11 | set(CTEST_DROP_SITE "my.cdash.org") 12 | set(CTEST_DROP_LOCATION "/submit.php?project=GLM") 13 | set(CTEST_DROP_SITE_CDASH TRUE) 14 | -------------------------------------------------------------------------------- /app/src/main/cpp/glm/doc/api/bc_s.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yishuinanfeng/UnitedPlayer/83bb11db7603633c5b634d49eafa1d05957fbb11/app/src/main/cpp/glm/doc/api/bc_s.png -------------------------------------------------------------------------------- /app/src/main/cpp/glm/doc/api/bdwn.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yishuinanfeng/UnitedPlayer/83bb11db7603633c5b634d49eafa1d05957fbb11/app/src/main/cpp/glm/doc/api/bdwn.png -------------------------------------------------------------------------------- /app/src/main/cpp/glm/doc/api/closed.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yishuinanfeng/UnitedPlayer/83bb11db7603633c5b634d49eafa1d05957fbb11/app/src/main/cpp/glm/doc/api/closed.png -------------------------------------------------------------------------------- /app/src/main/cpp/glm/doc/api/doxygen.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yishuinanfeng/UnitedPlayer/83bb11db7603633c5b634d49eafa1d05957fbb11/app/src/main/cpp/glm/doc/api/doxygen.png -------------------------------------------------------------------------------- /app/src/main/cpp/glm/doc/api/ftv2blank.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yishuinanfeng/UnitedPlayer/83bb11db7603633c5b634d49eafa1d05957fbb11/app/src/main/cpp/glm/doc/api/ftv2blank.png -------------------------------------------------------------------------------- /app/src/main/cpp/glm/doc/api/ftv2doc.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yishuinanfeng/UnitedPlayer/83bb11db7603633c5b634d49eafa1d05957fbb11/app/src/main/cpp/glm/doc/api/ftv2doc.png -------------------------------------------------------------------------------- /app/src/main/cpp/glm/doc/api/ftv2folderclosed.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yishuinanfeng/UnitedPlayer/83bb11db7603633c5b634d49eafa1d05957fbb11/app/src/main/cpp/glm/doc/api/ftv2folderclosed.png -------------------------------------------------------------------------------- /app/src/main/cpp/glm/doc/api/ftv2folderopen.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yishuinanfeng/UnitedPlayer/83bb11db7603633c5b634d49eafa1d05957fbb11/app/src/main/cpp/glm/doc/api/ftv2folderopen.png -------------------------------------------------------------------------------- /app/src/main/cpp/glm/doc/api/ftv2lastnode.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yishuinanfeng/UnitedPlayer/83bb11db7603633c5b634d49eafa1d05957fbb11/app/src/main/cpp/glm/doc/api/ftv2lastnode.png -------------------------------------------------------------------------------- /app/src/main/cpp/glm/doc/api/ftv2link.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yishuinanfeng/UnitedPlayer/83bb11db7603633c5b634d49eafa1d05957fbb11/app/src/main/cpp/glm/doc/api/ftv2link.png -------------------------------------------------------------------------------- /app/src/main/cpp/glm/doc/api/ftv2mlastnode.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yishuinanfeng/UnitedPlayer/83bb11db7603633c5b634d49eafa1d05957fbb11/app/src/main/cpp/glm/doc/api/ftv2mlastnode.png -------------------------------------------------------------------------------- /app/src/main/cpp/glm/doc/api/ftv2mnode.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yishuinanfeng/UnitedPlayer/83bb11db7603633c5b634d49eafa1d05957fbb11/app/src/main/cpp/glm/doc/api/ftv2mnode.png -------------------------------------------------------------------------------- /app/src/main/cpp/glm/doc/api/ftv2node.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yishuinanfeng/UnitedPlayer/83bb11db7603633c5b634d49eafa1d05957fbb11/app/src/main/cpp/glm/doc/api/ftv2node.png -------------------------------------------------------------------------------- /app/src/main/cpp/glm/doc/api/ftv2plastnode.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yishuinanfeng/UnitedPlayer/83bb11db7603633c5b634d49eafa1d05957fbb11/app/src/main/cpp/glm/doc/api/ftv2plastnode.png -------------------------------------------------------------------------------- /app/src/main/cpp/glm/doc/api/ftv2pnode.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yishuinanfeng/UnitedPlayer/83bb11db7603633c5b634d49eafa1d05957fbb11/app/src/main/cpp/glm/doc/api/ftv2pnode.png -------------------------------------------------------------------------------- /app/src/main/cpp/glm/doc/api/ftv2splitbar.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yishuinanfeng/UnitedPlayer/83bb11db7603633c5b634d49eafa1d05957fbb11/app/src/main/cpp/glm/doc/api/ftv2splitbar.png -------------------------------------------------------------------------------- /app/src/main/cpp/glm/doc/api/ftv2vertline.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yishuinanfeng/UnitedPlayer/83bb11db7603633c5b634d49eafa1d05957fbb11/app/src/main/cpp/glm/doc/api/ftv2vertline.png -------------------------------------------------------------------------------- /app/src/main/cpp/glm/doc/api/logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yishuinanfeng/UnitedPlayer/83bb11db7603633c5b634d49eafa1d05957fbb11/app/src/main/cpp/glm/doc/api/logo.png -------------------------------------------------------------------------------- /app/src/main/cpp/glm/doc/api/nav_f.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yishuinanfeng/UnitedPlayer/83bb11db7603633c5b634d49eafa1d05957fbb11/app/src/main/cpp/glm/doc/api/nav_f.png -------------------------------------------------------------------------------- /app/src/main/cpp/glm/doc/api/nav_g.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yishuinanfeng/UnitedPlayer/83bb11db7603633c5b634d49eafa1d05957fbb11/app/src/main/cpp/glm/doc/api/nav_g.png -------------------------------------------------------------------------------- /app/src/main/cpp/glm/doc/api/nav_h.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yishuinanfeng/UnitedPlayer/83bb11db7603633c5b634d49eafa1d05957fbb11/app/src/main/cpp/glm/doc/api/nav_h.png -------------------------------------------------------------------------------- /app/src/main/cpp/glm/doc/api/open.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yishuinanfeng/UnitedPlayer/83bb11db7603633c5b634d49eafa1d05957fbb11/app/src/main/cpp/glm/doc/api/open.png -------------------------------------------------------------------------------- /app/src/main/cpp/glm/doc/api/sync_off.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yishuinanfeng/UnitedPlayer/83bb11db7603633c5b634d49eafa1d05957fbb11/app/src/main/cpp/glm/doc/api/sync_off.png -------------------------------------------------------------------------------- /app/src/main/cpp/glm/doc/api/sync_on.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yishuinanfeng/UnitedPlayer/83bb11db7603633c5b634d49eafa1d05957fbb11/app/src/main/cpp/glm/doc/api/sync_on.png -------------------------------------------------------------------------------- /app/src/main/cpp/glm/doc/api/tab_a.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yishuinanfeng/UnitedPlayer/83bb11db7603633c5b634d49eafa1d05957fbb11/app/src/main/cpp/glm/doc/api/tab_a.png -------------------------------------------------------------------------------- /app/src/main/cpp/glm/doc/api/tab_b.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yishuinanfeng/UnitedPlayer/83bb11db7603633c5b634d49eafa1d05957fbb11/app/src/main/cpp/glm/doc/api/tab_b.png -------------------------------------------------------------------------------- /app/src/main/cpp/glm/doc/api/tab_h.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yishuinanfeng/UnitedPlayer/83bb11db7603633c5b634d49eafa1d05957fbb11/app/src/main/cpp/glm/doc/api/tab_h.png -------------------------------------------------------------------------------- /app/src/main/cpp/glm/doc/api/tab_s.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yishuinanfeng/UnitedPlayer/83bb11db7603633c5b634d49eafa1d05957fbb11/app/src/main/cpp/glm/doc/api/tab_s.png -------------------------------------------------------------------------------- /app/src/main/cpp/glm/doc/glm.docx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yishuinanfeng/UnitedPlayer/83bb11db7603633c5b634d49eafa1d05957fbb11/app/src/main/cpp/glm/doc/glm.docx -------------------------------------------------------------------------------- /app/src/main/cpp/glm/doc/glm.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yishuinanfeng/UnitedPlayer/83bb11db7603633c5b634d49eafa1d05957fbb11/app/src/main/cpp/glm/doc/glm.pdf -------------------------------------------------------------------------------- /app/src/main/cpp/glm/doc/logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yishuinanfeng/UnitedPlayer/83bb11db7603633c5b634d49eafa1d05957fbb11/app/src/main/cpp/glm/doc/logo.png -------------------------------------------------------------------------------- /app/src/main/cpp/glm/glm/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | set(NAME glm_dummy) 2 | 3 | file(GLOB ROOT_SOURCE *.cpp) 4 | file(GLOB ROOT_INLINE *.inl) 5 | file(GLOB ROOT_HEADER *.hpp) 6 | file(GLOB ROOT_TEXT ../*.txt) 7 | file(GLOB ROOT_NAT ../util/glm.natvis) 8 | 9 | file(GLOB_RECURSE CORE_SOURCE ./detail/*.cpp) 10 | file(GLOB_RECURSE CORE_INLINE ./detail/*.inl) 11 | file(GLOB_RECURSE CORE_HEADER ./detail/*.hpp) 12 | 13 | file(GLOB_RECURSE GTC_SOURCE ./gtc/*.cpp) 14 | file(GLOB_RECURSE GTC_INLINE ./gtc/*.inl) 15 | file(GLOB_RECURSE GTC_HEADER ./gtc/*.hpp) 16 | 17 | file(GLOB_RECURSE GTX_SOURCE ./gtx/*.cpp) 18 | file(GLOB_RECURSE GTX_INLINE ./gtx/*.inl) 19 | file(GLOB_RECURSE GTX_HEADER ./gtx/*.hpp) 20 | 21 | source_group("Text Files" FILES ${ROOT_TEXT}) 22 | source_group("Core Files" FILES ${CORE_SOURCE}) 23 | source_group("Core Files" FILES ${CORE_INLINE}) 24 | source_group("Core Files" FILES ${CORE_HEADER}) 25 | source_group("GTC Files" FILES ${GTC_SOURCE}) 26 | source_group("GTC Files" FILES ${GTC_INLINE}) 27 | source_group("GTC Files" FILES ${GTC_HEADER}) 28 | source_group("GTX Files" FILES ${GTX_SOURCE}) 29 | source_group("GTX Files" FILES ${GTX_INLINE}) 30 | source_group("GTX Files" FILES ${GTX_HEADER}) 31 | 32 | include_directories(${CMAKE_CURRENT_SOURCE_DIR}/..) 33 | 34 | if(GLM_TEST_ENABLE) 35 | add_executable(${NAME} ${ROOT_TEXT} ${ROOT_NAT} 36 | ${ROOT_SOURCE} ${ROOT_INLINE} ${ROOT_HEADER} 37 | ${CORE_SOURCE} ${CORE_INLINE} ${CORE_HEADER} 38 | ${GTC_SOURCE} ${GTC_INLINE} ${GTC_HEADER} 39 | ${GTX_SOURCE} ${GTX_INLINE} ${GTX_HEADER}) 40 | endif(GLM_TEST_ENABLE) 41 | 42 | #add_library(glm STATIC glm.cpp) 43 | #add_library(glm_shared SHARED glm.cpp) 44 | -------------------------------------------------------------------------------- /app/src/main/cpp/glm/glm/common.hpp: -------------------------------------------------------------------------------- 1 | /////////////////////////////////////////////////////////////////////////////////// 2 | /// OpenGL Mathematics (glm.g-truc.net) 3 | /// 4 | /// Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net) 5 | /// Permission is hereby granted, free of charge, to any person obtaining a copy 6 | /// of this software and associated documentation files (the "Software"), to deal 7 | /// in the Software without restriction, including without limitation the rights 8 | /// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | /// copies of the Software, and to permit persons to whom the Software is 10 | /// furnished to do so, subject to the following conditions: 11 | /// 12 | /// The above copyright notice and this permission notice shall be included in 13 | /// all copies or substantial portions of the Software. 14 | /// 15 | /// Restrictions: 16 | /// By making use of the Software for military purposes, you choose to make 17 | /// a Bunny unhappy. 18 | /// 19 | /// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 20 | /// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 21 | /// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 22 | /// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 23 | /// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 24 | /// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 25 | /// THE SOFTWARE. 26 | /// 27 | /// @ref core 28 | /// @file glm/common.hpp 29 | /// @date 2013-12-24 / 2013-12-24 30 | /// @author Christophe Riccio 31 | /////////////////////////////////////////////////////////////////////////////////// 32 | 33 | #pragma once 34 | 35 | #include "detail/func_common.hpp" 36 | -------------------------------------------------------------------------------- /app/src/main/cpp/glm/glm/detail/intrinsic_exponential.inl: -------------------------------------------------------------------------------- 1 | /////////////////////////////////////////////////////////////////////////////////// 2 | /// OpenGL Mathematics (glm.g-truc.net) 3 | /// 4 | /// Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net) 5 | /// Permission is hereby granted, free of charge, to any person obtaining a copy 6 | /// of this software and associated documentation files (the "Software"), to deal 7 | /// in the Software without restriction, including without limitation the rights 8 | /// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | /// copies of the Software, and to permit persons to whom the Software is 10 | /// furnished to do so, subject to the following conditions: 11 | /// 12 | /// The above copyright notice and this permission notice shall be included in 13 | /// all copies or substantial portions of the Software. 14 | /// 15 | /// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | /// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | /// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | /// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | /// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | /// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 21 | /// THE SOFTWARE. 22 | /// 23 | /// @ref core 24 | /// @file glm/detail/intrinsic_exponential.inl 25 | /// @date 2011-06-15 / 2011-06-15 26 | /// @author Christophe Riccio 27 | /////////////////////////////////////////////////////////////////////////////////// 28 | -------------------------------------------------------------------------------- /app/src/main/cpp/glm/glm/detail/intrinsic_trigonometric.inl: -------------------------------------------------------------------------------- 1 | /////////////////////////////////////////////////////////////////////////////////// 2 | /// OpenGL Mathematics (glm.g-truc.net) 3 | /// 4 | /// Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net) 5 | /// Permission is hereby granted, free of charge, to any person obtaining a copy 6 | /// of this software and associated documentation files (the "Software"), to deal 7 | /// in the Software without restriction, including without limitation the rights 8 | /// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | /// copies of the Software, and to permit persons to whom the Software is 10 | /// furnished to do so, subject to the following conditions: 11 | /// 12 | /// The above copyright notice and this permission notice shall be included in 13 | /// all copies or substantial portions of the Software. 14 | /// 15 | /// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | /// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | /// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | /// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | /// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | /// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 21 | /// THE SOFTWARE. 22 | /// 23 | /// @ref core 24 | /// @file glm/detail/intrinsic_trigonometric.inl 25 | /// @date 2011-06-15 / 2011-06-15 26 | /// @author Christophe Riccio 27 | /////////////////////////////////////////////////////////////////////////////////// 28 | -------------------------------------------------------------------------------- /app/src/main/cpp/glm/glm/detail/type_mat.inl: -------------------------------------------------------------------------------- 1 | /////////////////////////////////////////////////////////////////////////////////// 2 | /// OpenGL Mathematics (glm.g-truc.net) 3 | /// 4 | /// Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net) 5 | /// Permission is hereby granted, free of charge, to any person obtaining a copy 6 | /// of this software and associated documentation files (the "Software"), to deal 7 | /// in the Software without restriction, including without limitation the rights 8 | /// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | /// copies of the Software, and to permit persons to whom the Software is 10 | /// furnished to do so, subject to the following conditions: 11 | /// 12 | /// The above copyright notice and this permission notice shall be included in 13 | /// all copies or substantial portions of the Software. 14 | /// 15 | /// Restrictions: 16 | /// By making use of the Software for military purposes, you choose to make 17 | /// a Bunny unhappy. 18 | /// 19 | /// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 20 | /// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 21 | /// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 22 | /// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 23 | /// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 24 | /// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 25 | /// THE SOFTWARE. 26 | /// 27 | /// @ref core 28 | /// @file glm/detail/type_mat.inl 29 | /// @date 2011-06-15 / 2011-06-15 30 | /// @author Christophe Riccio 31 | /////////////////////////////////////////////////////////////////////////////////// 32 | 33 | -------------------------------------------------------------------------------- /app/src/main/cpp/glm/glm/detail/type_vec.inl: -------------------------------------------------------------------------------- 1 | /////////////////////////////////////////////////////////////////////////////////// 2 | /// OpenGL Mathematics (glm.g-truc.net) 3 | /// 4 | /// Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net) 5 | /// Permission is hereby granted, free of charge, to any person obtaining a copy 6 | /// of this software and associated documentation files (the "Software"), to deal 7 | /// in the Software without restriction, including without limitation the rights 8 | /// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | /// copies of the Software, and to permit persons to whom the Software is 10 | /// furnished to do so, subject to the following conditions: 11 | /// 12 | /// The above copyright notice and this permission notice shall be included in 13 | /// all copies or substantial portions of the Software. 14 | /// 15 | /// Restrictions: 16 | /// By making use of the Software for military purposes, you choose to make 17 | /// a Bunny unhappy. 18 | /// 19 | /// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 20 | /// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 21 | /// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 22 | /// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 23 | /// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 24 | /// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 25 | /// THE SOFTWARE. 26 | /// 27 | /// @ref core 28 | /// @file glm/detail/type_vec.inl 29 | /// @date 2011-06-15 / 2011-06-15 30 | /// @author Christophe Riccio 31 | /////////////////////////////////////////////////////////////////////////////////// 32 | -------------------------------------------------------------------------------- /app/src/main/cpp/glm/glm/exponential.hpp: -------------------------------------------------------------------------------- 1 | /////////////////////////////////////////////////////////////////////////////////// 2 | /// OpenGL Mathematics (glm.g-truc.net) 3 | /// 4 | /// Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net) 5 | /// Permission is hereby granted, free of charge, to any person obtaining a copy 6 | /// of this software and associated documentation files (the "Software"), to deal 7 | /// in the Software without restriction, including without limitation the rights 8 | /// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | /// copies of the Software, and to permit persons to whom the Software is 10 | /// furnished to do so, subject to the following conditions: 11 | /// 12 | /// The above copyright notice and this permission notice shall be included in 13 | /// all copies or substantial portions of the Software. 14 | /// 15 | /// Restrictions: 16 | /// By making use of the Software for military purposes, you choose to make 17 | /// a Bunny unhappy. 18 | /// 19 | /// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 20 | /// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 21 | /// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 22 | /// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 23 | /// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 24 | /// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 25 | /// THE SOFTWARE. 26 | /// 27 | /// @ref core 28 | /// @file glm/exponential.hpp 29 | /// @date 2013-12-24 / 2013-12-24 30 | /// @author Christophe Riccio 31 | /////////////////////////////////////////////////////////////////////////////////// 32 | 33 | #pragma once 34 | 35 | #include "detail/func_exponential.hpp" 36 | -------------------------------------------------------------------------------- /app/src/main/cpp/glm/glm/geometric.hpp: -------------------------------------------------------------------------------- 1 | /////////////////////////////////////////////////////////////////////////////////// 2 | /// OpenGL Mathematics (glm.g-truc.net) 3 | /// 4 | /// Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net) 5 | /// Permission is hereby granted, free of charge, to any person obtaining a copy 6 | /// of this software and associated documentation files (the "Software"), to deal 7 | /// in the Software without restriction, including without limitation the rights 8 | /// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | /// copies of the Software, and to permit persons to whom the Software is 10 | /// furnished to do so, subject to the following conditions: 11 | /// 12 | /// The above copyright notice and this permission notice shall be included in 13 | /// all copies or substantial portions of the Software. 14 | /// 15 | /// Restrictions: 16 | /// By making use of the Software for military purposes, you choose to make 17 | /// a Bunny unhappy. 18 | /// 19 | /// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 20 | /// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 21 | /// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 22 | /// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 23 | /// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 24 | /// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 25 | /// THE SOFTWARE. 26 | /// 27 | /// @ref core 28 | /// @file glm/geometric.hpp 29 | /// @date 2013-12-24 / 2013-12-24 30 | /// @author Christophe Riccio 31 | /////////////////////////////////////////////////////////////////////////////////// 32 | 33 | #pragma once 34 | 35 | #include "detail/func_geometric.hpp" 36 | -------------------------------------------------------------------------------- /app/src/main/cpp/glm/glm/gtc/type_precision.inl: -------------------------------------------------------------------------------- 1 | /////////////////////////////////////////////////////////////////////////////////// 2 | /// OpenGL Mathematics (glm.g-truc.net) 3 | /// 4 | /// Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net) 5 | /// Permission is hereby granted, free of charge, to any person obtaining a copy 6 | /// of this software and associated documentation files (the "Software"), to deal 7 | /// in the Software without restriction, including without limitation the rights 8 | /// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | /// copies of the Software, and to permit persons to whom the Software is 10 | /// furnished to do so, subject to the following conditions: 11 | /// 12 | /// The above copyright notice and this permission notice shall be included in 13 | /// all copies or substantial portions of the Software. 14 | /// 15 | /// Restrictions: 16 | /// By making use of the Software for military purposes, you choose to make 17 | /// a Bunny unhappy. 18 | /// 19 | /// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 20 | /// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 21 | /// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 22 | /// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 23 | /// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 24 | /// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 25 | /// THE SOFTWARE. 26 | /// 27 | /// @ref gtc_swizzle 28 | /// @file glm/gtc/swizzle.inl 29 | /// @date 2009-06-14 / 2011-06-15 30 | /// @author Christophe Riccio 31 | /////////////////////////////////////////////////////////////////////////////////// 32 | 33 | namespace glm 34 | { 35 | 36 | } 37 | -------------------------------------------------------------------------------- /app/src/main/cpp/glm/glm/gtc/vec1.inl: -------------------------------------------------------------------------------- 1 | /////////////////////////////////////////////////////////////////////////////////// 2 | /// OpenGL Mathematics (glm.g-truc.net) 3 | /// 4 | /// Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net) 5 | /// Permission is hereby granted, free of charge, to any person obtaining a copy 6 | /// of this software and associated documentation files (the "Software"), to deal 7 | /// in the Software without restriction, including without limitation the rights 8 | /// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | /// copies of the Software, and to permit persons to whom the Software is 10 | /// furnished to do so, subject to the following conditions: 11 | /// 12 | /// The above copyright notice and this permission notice shall be included in 13 | /// all copies or substantial portions of the Software. 14 | /// 15 | /// Restrictions: 16 | /// By making use of the Software for military purposes, you choose to make 17 | /// a Bunny unhappy. 18 | /// 19 | /// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 20 | /// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 21 | /// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 22 | /// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 23 | /// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 24 | /// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 25 | /// THE SOFTWARE. 26 | /// 27 | /// @ref gtc_vec1 28 | /// @file glm/gtc/vec1.inl 29 | /// @date 2013-03-16 / 2013-03-16 30 | /// @author Christophe Riccio 31 | /////////////////////////////////////////////////////////////////////////////////// 32 | -------------------------------------------------------------------------------- /app/src/main/cpp/glm/glm/gtx/number_precision.inl: -------------------------------------------------------------------------------- 1 | /////////////////////////////////////////////////////////////////////////////////// 2 | /// OpenGL Mathematics (glm.g-truc.net) 3 | /// 4 | /// Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net) 5 | /// Permission is hereby granted, free of charge, to any person obtaining a copy 6 | /// of this software and associated documentation files (the "Software"), to deal 7 | /// in the Software without restriction, including without limitation the rights 8 | /// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | /// copies of the Software, and to permit persons to whom the Software is 10 | /// furnished to do so, subject to the following conditions: 11 | /// 12 | /// The above copyright notice and this permission notice shall be included in 13 | /// all copies or substantial portions of the Software. 14 | /// 15 | /// Restrictions: 16 | /// By making use of the Software for military purposes, you choose to make 17 | /// a Bunny unhappy. 18 | /// 19 | /// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 20 | /// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 21 | /// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 22 | /// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 23 | /// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 24 | /// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 25 | /// THE SOFTWARE. 26 | /// 27 | /// @ref gtx_number_precision 28 | /// @file glm/gtx/number_precision.inl 29 | /// @date 2007-05-10 / 2011-06-07 30 | /// @author Christophe Riccio 31 | /////////////////////////////////////////////////////////////////////////////////// 32 | 33 | namespace glm 34 | { 35 | 36 | } 37 | -------------------------------------------------------------------------------- /app/src/main/cpp/glm/glm/gtx/raw_data.inl: -------------------------------------------------------------------------------- 1 | /////////////////////////////////////////////////////////////////////////////////// 2 | /// OpenGL Mathematics (glm.g-truc.net) 3 | /// 4 | /// Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net) 5 | /// Permission is hereby granted, free of charge, to any person obtaining a copy 6 | /// of this software and associated documentation files (the "Software"), to deal 7 | /// in the Software without restriction, including without limitation the rights 8 | /// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | /// copies of the Software, and to permit persons to whom the Software is 10 | /// furnished to do so, subject to the following conditions: 11 | /// 12 | /// The above copyright notice and this permission notice shall be included in 13 | /// all copies or substantial portions of the Software. 14 | /// 15 | /// Restrictions: 16 | /// By making use of the Software for military purposes, you choose to make 17 | /// a Bunny unhappy. 18 | /// 19 | /// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 20 | /// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 21 | /// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 22 | /// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 23 | /// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 24 | /// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 25 | /// THE SOFTWARE. 26 | /// 27 | /// @ref gtx_raw_data 28 | /// @file glm/gtx/raw_data.inl 29 | /// @date 2008-11-19 / 2011-06-07 30 | /// @author Christophe Riccio 31 | /////////////////////////////////////////////////////////////////////////////////// 32 | -------------------------------------------------------------------------------- /app/src/main/cpp/glm/glm/gtx/std_based_type.inl: -------------------------------------------------------------------------------- 1 | /////////////////////////////////////////////////////////////////////////////////// 2 | /// OpenGL Mathematics (glm.g-truc.net) 3 | /// 4 | /// Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net) 5 | /// Permission is hereby granted, free of charge, to any person obtaining a copy 6 | /// of this software and associated documentation files (the "Software"), to deal 7 | /// in the Software without restriction, including without limitation the rights 8 | /// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | /// copies of the Software, and to permit persons to whom the Software is 10 | /// furnished to do so, subject to the following conditions: 11 | /// 12 | /// The above copyright notice and this permission notice shall be included in 13 | /// all copies or substantial portions of the Software. 14 | /// 15 | /// Restrictions: 16 | /// By making use of the Software for military purposes, you choose to make 17 | /// a Bunny unhappy. 18 | /// 19 | /// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 20 | /// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 21 | /// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 22 | /// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 23 | /// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 24 | /// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 25 | /// THE SOFTWARE. 26 | /// 27 | /// @ref gtx_std_based_type 28 | /// @file glm/gtx/std_based_type.inl 29 | /// @date 2008-06-08 / 2011-06-07 30 | /// @author Christophe Riccio 31 | /////////////////////////////////////////////////////////////////////////////////// 32 | 33 | namespace glm 34 | { 35 | 36 | } 37 | -------------------------------------------------------------------------------- /app/src/main/cpp/glm/glm/gtx/type_aligned.inl: -------------------------------------------------------------------------------- 1 | /////////////////////////////////////////////////////////////////////////////////// 2 | /// OpenGL Mathematics (glm.g-truc.net) 3 | /// 4 | /// Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net) 5 | /// Permission is hereby granted, free of charge, to any person obtaining a copy 6 | /// of this software and associated documentation files (the "Software"), to deal 7 | /// in the Software without restriction, including without limitation the rights 8 | /// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | /// copies of the Software, and to permit persons to whom the Software is 10 | /// furnished to do so, subject to the following conditions: 11 | /// 12 | /// The above copyright notice and this permission notice shall be included in 13 | /// all copies or substantial portions of the Software. 14 | /// 15 | /// Restrictions: 16 | /// By making use of the Software for military purposes, you choose to make 17 | /// a Bunny unhappy. 18 | /// 19 | /// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 20 | /// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 21 | /// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 22 | /// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 23 | /// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 24 | /// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 25 | /// THE SOFTWARE. 26 | /// 27 | /// @ref gtc_type_aligned 28 | /// @file glm/gtc/type_aligned.inl 29 | /// @date 2014-11-23 / 2014-11-23 30 | /// @author Christophe Riccio 31 | /////////////////////////////////////////////////////////////////////////////////// 32 | 33 | namespace glm 34 | { 35 | 36 | } 37 | -------------------------------------------------------------------------------- /app/src/main/cpp/glm/glm/integer.hpp: -------------------------------------------------------------------------------- 1 | /////////////////////////////////////////////////////////////////////////////////// 2 | /// OpenGL Mathematics (glm.g-truc.net) 3 | /// 4 | /// Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net) 5 | /// Permission is hereby granted, free of charge, to any person obtaining a copy 6 | /// of this software and associated documentation files (the "Software"), to deal 7 | /// in the Software without restriction, including without limitation the rights 8 | /// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | /// copies of the Software, and to permit persons to whom the Software is 10 | /// furnished to do so, subject to the following conditions: 11 | /// 12 | /// The above copyright notice and this permission notice shall be included in 13 | /// all copies or substantial portions of the Software. 14 | /// 15 | /// Restrictions: 16 | /// By making use of the Software for military purposes, you choose to make 17 | /// a Bunny unhappy. 18 | /// 19 | /// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 20 | /// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 21 | /// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 22 | /// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 23 | /// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 24 | /// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 25 | /// THE SOFTWARE. 26 | /// 27 | /// @ref core 28 | /// @file glm/integer.hpp 29 | /// @date 2013-12-24 / 2013-12-24 30 | /// @author Christophe Riccio 31 | /////////////////////////////////////////////////////////////////////////////////// 32 | 33 | #pragma once 34 | 35 | #include "detail/func_integer.hpp" 36 | -------------------------------------------------------------------------------- /app/src/main/cpp/glm/glm/matrix.hpp: -------------------------------------------------------------------------------- 1 | /////////////////////////////////////////////////////////////////////////////////// 2 | /// OpenGL Mathematics (glm.g-truc.net) 3 | /// 4 | /// Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net) 5 | /// Permission is hereby granted, free of charge, to any person obtaining a copy 6 | /// of this software and associated documentation files (the "Software"), to deal 7 | /// in the Software without restriction, including without limitation the rights 8 | /// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | /// copies of the Software, and to permit persons to whom the Software is 10 | /// furnished to do so, subject to the following conditions: 11 | /// 12 | /// The above copyright notice and this permission notice shall be included in 13 | /// all copies or substantial portions of the Software. 14 | /// 15 | /// Restrictions: 16 | /// By making use of the Software for military purposes, you choose to make 17 | /// a Bunny unhappy. 18 | /// 19 | /// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 20 | /// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 21 | /// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 22 | /// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 23 | /// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 24 | /// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 25 | /// THE SOFTWARE. 26 | /// 27 | /// @ref core 28 | /// @file glm/matrix.hpp 29 | /// @date 2013-12-24 / 2013-12-24 30 | /// @author Christophe Riccio 31 | /////////////////////////////////////////////////////////////////////////////////// 32 | 33 | #pragma once 34 | 35 | #include "detail/func_matrix.hpp" 36 | -------------------------------------------------------------------------------- /app/src/main/cpp/glm/glm/packing.hpp: -------------------------------------------------------------------------------- 1 | /////////////////////////////////////////////////////////////////////////////////// 2 | /// OpenGL Mathematics (glm.g-truc.net) 3 | /// 4 | /// Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net) 5 | /// Permission is hereby granted, free of charge, to any person obtaining a copy 6 | /// of this software and associated documentation files (the "Software"), to deal 7 | /// in the Software without restriction, including without limitation the rights 8 | /// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | /// copies of the Software, and to permit persons to whom the Software is 10 | /// furnished to do so, subject to the following conditions: 11 | /// 12 | /// The above copyright notice and this permission notice shall be included in 13 | /// all copies or substantial portions of the Software. 14 | /// 15 | /// Restrictions: 16 | /// By making use of the Software for military purposes, you choose to make 17 | /// a Bunny unhappy. 18 | /// 19 | /// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 20 | /// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 21 | /// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 22 | /// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 23 | /// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 24 | /// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 25 | /// THE SOFTWARE. 26 | /// 27 | /// @ref core 28 | /// @file glm/packing.hpp 29 | /// @date 2013-12-24 / 2013-12-24 30 | /// @author Christophe Riccio 31 | /////////////////////////////////////////////////////////////////////////////////// 32 | 33 | #pragma once 34 | 35 | #include "detail/func_packing.hpp" 36 | -------------------------------------------------------------------------------- /app/src/main/cpp/glm/glm/trigonometric.hpp: -------------------------------------------------------------------------------- 1 | /////////////////////////////////////////////////////////////////////////////////// 2 | /// OpenGL Mathematics (glm.g-truc.net) 3 | /// 4 | /// Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net) 5 | /// Permission is hereby granted, free of charge, to any person obtaining a copy 6 | /// of this software and associated documentation files (the "Software"), to deal 7 | /// in the Software without restriction, including without limitation the rights 8 | /// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | /// copies of the Software, and to permit persons to whom the Software is 10 | /// furnished to do so, subject to the following conditions: 11 | /// 12 | /// The above copyright notice and this permission notice shall be included in 13 | /// all copies or substantial portions of the Software. 14 | /// 15 | /// Restrictions: 16 | /// By making use of the Software for military purposes, you choose to make 17 | /// a Bunny unhappy. 18 | /// 19 | /// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 20 | /// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 21 | /// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 22 | /// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 23 | /// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 24 | /// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 25 | /// THE SOFTWARE. 26 | /// 27 | /// @ref core 28 | /// @file glm/trigonometric.hpp 29 | /// @date 2013-12-24 / 2013-12-24 30 | /// @author Christophe Riccio 31 | /////////////////////////////////////////////////////////////////////////////////// 32 | 33 | #pragma once 34 | 35 | #include "detail/func_trigonometric.hpp" 36 | -------------------------------------------------------------------------------- /app/src/main/cpp/glm/glm/vec2.hpp: -------------------------------------------------------------------------------- 1 | /////////////////////////////////////////////////////////////////////////////////// 2 | /// OpenGL Mathematics (glm.g-truc.net) 3 | /// 4 | /// Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net) 5 | /// Permission is hereby granted, free of charge, to any person obtaining a copy 6 | /// of this software and associated documentation files (the "Software"), to deal 7 | /// in the Software without restriction, including without limitation the rights 8 | /// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | /// copies of the Software, and to permit persons to whom the Software is 10 | /// furnished to do so, subject to the following conditions: 11 | /// 12 | /// The above copyright notice and this permission notice shall be included in 13 | /// all copies or substantial portions of the Software. 14 | /// 15 | /// Restrictions: 16 | /// By making use of the Software for military purposes, you choose to make 17 | /// a Bunny unhappy. 18 | /// 19 | /// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 20 | /// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 21 | /// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 22 | /// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 23 | /// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 24 | /// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 25 | /// THE SOFTWARE. 26 | /// 27 | /// @ref core 28 | /// @file glm/vec2.hpp 29 | /// @date 2013-12-24 / 2013-12-24 30 | /// @author Christophe Riccio 31 | /////////////////////////////////////////////////////////////////////////////////// 32 | 33 | #pragma once 34 | 35 | #include "detail/type_vec2.hpp" 36 | -------------------------------------------------------------------------------- /app/src/main/cpp/glm/glm/vec3.hpp: -------------------------------------------------------------------------------- 1 | /////////////////////////////////////////////////////////////////////////////////// 2 | /// OpenGL Mathematics (glm.g-truc.net) 3 | /// 4 | /// Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net) 5 | /// Permission is hereby granted, free of charge, to any person obtaining a copy 6 | /// of this software and associated documentation files (the "Software"), to deal 7 | /// in the Software without restriction, including without limitation the rights 8 | /// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | /// copies of the Software, and to permit persons to whom the Software is 10 | /// furnished to do so, subject to the following conditions: 11 | /// 12 | /// The above copyright notice and this permission notice shall be included in 13 | /// all copies or substantial portions of the Software. 14 | /// 15 | /// Restrictions: 16 | /// By making use of the Software for military purposes, you choose to make 17 | /// a Bunny unhappy. 18 | /// 19 | /// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 20 | /// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 21 | /// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 22 | /// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 23 | /// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 24 | /// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 25 | /// THE SOFTWARE. 26 | /// 27 | /// @ref core 28 | /// @file glm/vec3.hpp 29 | /// @date 2013-12-24 / 2013-12-24 30 | /// @author Christophe Riccio 31 | /////////////////////////////////////////////////////////////////////////////////// 32 | 33 | #pragma once 34 | 35 | #include "detail/type_vec3.hpp" 36 | -------------------------------------------------------------------------------- /app/src/main/cpp/glm/glm/vec4.hpp: -------------------------------------------------------------------------------- 1 | /////////////////////////////////////////////////////////////////////////////////// 2 | /// OpenGL Mathematics (glm.g-truc.net) 3 | /// 4 | /// Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net) 5 | /// Permission is hereby granted, free of charge, to any person obtaining a copy 6 | /// of this software and associated documentation files (the "Software"), to deal 7 | /// in the Software without restriction, including without limitation the rights 8 | /// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | /// copies of the Software, and to permit persons to whom the Software is 10 | /// furnished to do so, subject to the following conditions: 11 | /// 12 | /// The above copyright notice and this permission notice shall be included in 13 | /// all copies or substantial portions of the Software. 14 | /// 15 | /// Restrictions: 16 | /// By making use of the Software for military purposes, you choose to make 17 | /// a Bunny unhappy. 18 | /// 19 | /// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 20 | /// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 21 | /// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 22 | /// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 23 | /// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 24 | /// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 25 | /// THE SOFTWARE. 26 | /// 27 | /// @ref core 28 | /// @file glm/vec4.hpp 29 | /// @date 2013-12-24 / 2013-12-24 30 | /// @author Christophe Riccio 31 | /////////////////////////////////////////////////////////////////////////////////// 32 | 33 | #pragma once 34 | 35 | #include "detail/type_vec4.hpp" 36 | -------------------------------------------------------------------------------- /app/src/main/cpp/glm/glm/vector_relational.hpp: -------------------------------------------------------------------------------- 1 | /////////////////////////////////////////////////////////////////////////////////// 2 | /// OpenGL Mathematics (glm.g-truc.net) 3 | /// 4 | /// Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net) 5 | /// Permission is hereby granted, free of charge, to any person obtaining a copy 6 | /// of this software and associated documentation files (the "Software"), to deal 7 | /// in the Software without restriction, including without limitation the rights 8 | /// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | /// copies of the Software, and to permit persons to whom the Software is 10 | /// furnished to do so, subject to the following conditions: 11 | /// 12 | /// The above copyright notice and this permission notice shall be included in 13 | /// all copies or substantial portions of the Software. 14 | /// 15 | /// Restrictions: 16 | /// By making use of the Software for military purposes, you choose to make 17 | /// a Bunny unhappy. 18 | /// 19 | /// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 20 | /// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 21 | /// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 22 | /// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 23 | /// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 24 | /// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 25 | /// THE SOFTWARE. 26 | /// 27 | /// @ref core 28 | /// @file glm/vector_relational.hpp 29 | /// @date 2013-12-24 / 2013-12-24 30 | /// @author Christophe Riccio 31 | /////////////////////////////////////////////////////////////////////////////////// 32 | 33 | #pragma once 34 | 35 | #include "detail/func_vector_relational.hpp" 36 | -------------------------------------------------------------------------------- /app/src/main/cpp/glm/test/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | function(glmCreateTestGTC NAME) 2 | if(GLM_TEST_ENABLE) 3 | set(SAMPLE_NAME test-${NAME}) 4 | add_executable(${SAMPLE_NAME} ${NAME}.cpp) 5 | 6 | add_test( 7 | NAME ${SAMPLE_NAME} 8 | COMMAND $ ) 9 | endif(GLM_TEST_ENABLE) 10 | endfunction() 11 | 12 | add_subdirectory(bug) 13 | add_subdirectory(core) 14 | add_subdirectory(gtc) 15 | add_subdirectory(gtx) 16 | 17 | 18 | -------------------------------------------------------------------------------- /app/src/main/cpp/glm/test/bug/CMakeLists.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yishuinanfeng/UnitedPlayer/83bb11db7603633c5b634d49eafa1d05957fbb11/app/src/main/cpp/glm/test/bug/CMakeLists.txt -------------------------------------------------------------------------------- /app/src/main/cpp/glm/test/core/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | glmCreateTestGTC(core_type_cast) 2 | glmCreateTestGTC(core_type_float) 3 | glmCreateTestGTC(core_type_int) 4 | glmCreateTestGTC(core_type_length) 5 | glmCreateTestGTC(core_type_length_size) 6 | glmCreateTestGTC(core_type_mat2x2) 7 | glmCreateTestGTC(core_type_mat2x3) 8 | glmCreateTestGTC(core_type_mat2x4) 9 | glmCreateTestGTC(core_type_mat3x2) 10 | glmCreateTestGTC(core_type_mat3x3) 11 | glmCreateTestGTC(core_type_mat3x4) 12 | glmCreateTestGTC(core_type_mat4x2) 13 | glmCreateTestGTC(core_type_mat4x3) 14 | glmCreateTestGTC(core_type_mat4x4) 15 | glmCreateTestGTC(core_type_vec1) 16 | glmCreateTestGTC(core_type_vec2) 17 | glmCreateTestGTC(core_type_vec3) 18 | glmCreateTestGTC(core_type_vec4) 19 | glmCreateTestGTC(core_func_common) 20 | glmCreateTestGTC(core_func_exponential) 21 | glmCreateTestGTC(core_func_geometric) 22 | glmCreateTestGTC(core_func_integer) 23 | glmCreateTestGTC(core_func_integer_bit_count) 24 | glmCreateTestGTC(core_func_integer_find_lsb) 25 | glmCreateTestGTC(core_func_integer_find_msb) 26 | glmCreateTestGTC(core_func_matrix) 27 | glmCreateTestGTC(core_func_noise) 28 | glmCreateTestGTC(core_func_packing) 29 | glmCreateTestGTC(core_func_trigonometric) 30 | glmCreateTestGTC(core_func_vector_relational) 31 | glmCreateTestGTC(core_func_swizzle) 32 | glmCreateTestGTC(core_setup_force_cxx98) 33 | glmCreateTestGTC(core_setup_message) 34 | glmCreateTestGTC(core_setup_precision) 35 | 36 | 37 | 38 | -------------------------------------------------------------------------------- /app/src/main/cpp/glm/test/core/core_func_noise.cpp: -------------------------------------------------------------------------------- 1 | /////////////////////////////////////////////////////////////////////////////////// 2 | /// OpenGL Mathematics (glm.g-truc.net) 3 | /// 4 | /// Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net) 5 | /// Permission is hereby granted, free of charge, to any person obtaining a copy 6 | /// of this software and associated documentation files (the "Software"), to deal 7 | /// in the Software without restriction, including without limitation the rights 8 | /// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | /// copies of the Software, and to permit persons to whom the Software is 10 | /// furnished to do so, subject to the following conditions: 11 | /// 12 | /// The above copyright notice and this permission notice shall be included in 13 | /// all copies or substantial portions of the Software. 14 | /// 15 | /// Restrictions: 16 | /// By making use of the Software for military purposes, you choose to make 17 | /// a Bunny unhappy. 18 | /// 19 | /// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 20 | /// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 21 | /// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 22 | /// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 23 | /// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 24 | /// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 25 | /// THE SOFTWARE. 26 | /// 27 | /// @file test/core/func_noise.cpp 28 | /// @date 2011-01-15 / 2011-09-13 29 | /// @author Christophe Riccio 30 | /////////////////////////////////////////////////////////////////////////////////// 31 | 32 | int main() 33 | { 34 | int Failed = 0; 35 | 36 | return Failed; 37 | } 38 | 39 | -------------------------------------------------------------------------------- /app/src/main/cpp/glm/test/external/gli/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | set(NAME gli) 2 | 3 | file(GLOB ROOT_SOURCE *.cpp) 4 | file(GLOB ROOT_INLINE *.inl) 5 | file(GLOB ROOT_HEADER *.hpp) 6 | 7 | file(GLOB_RECURSE CORE_SOURCE ./core/*.cpp) 8 | file(GLOB_RECURSE CORE_INLINE ./core/*.inl) 9 | file(GLOB_RECURSE CORE_HEADER ./core/*.hpp) 10 | 11 | file(GLOB_RECURSE GTX_SOURCE ./gtx/*.cpp) 12 | file(GLOB_RECURSE GTX_INLINE ./gtx/*.inl) 13 | file(GLOB_RECURSE GTX_HEADER ./gtx/*.hpp) 14 | 15 | source_group("Core Files" FILES ${CORE_SOURCE}) 16 | source_group("Core Files" FILES ${CORE_INLINE}) 17 | source_group("Core Files" FILES ${CORE_HEADER}) 18 | source_group("GTX Files" FILES ${GTX_SOURCE}) 19 | source_group("GTX Files" FILES ${GTX_INLINE}) 20 | source_group("GTX Files" FILES ${GTX_HEADER}) 21 | 22 | include_directories(${CMAKE_CURRENT_SOURCE_DIR}/..) 23 | 24 | add_executable(${NAME} 25 | ${ROOT_SOURCE} ${ROOT_INLINE} ${ROOT_HEADER} 26 | ${CORE_SOURCE} ${CORE_INLINE} ${CORE_HEADER} 27 | ${GTX_SOURCE} ${GTX_INLINE} ${GTX_HEADER} ) 28 | -------------------------------------------------------------------------------- /app/src/main/cpp/glm/test/external/gli/core/dummy.cpp: -------------------------------------------------------------------------------- 1 | int main() 2 | { 3 | 4 | } 5 | -------------------------------------------------------------------------------- /app/src/main/cpp/glm/test/external/gli/core/generate_mipmaps.hpp: -------------------------------------------------------------------------------- 1 | /////////////////////////////////////////////////////////////////////////////////////////////////// 2 | // OpenGL Image Copyright (c) 2008 - 2011 G-Truc Creation (www.g-truc.net) 3 | /////////////////////////////////////////////////////////////////////////////////////////////////// 4 | // Created : 2010-09-27 5 | // Updated : 2010-09-27 6 | // Licence : This source is under MIT License 7 | // File : gli/core/generate_mipmaps.hpp 8 | /////////////////////////////////////////////////////////////////////////////////////////////////// 9 | 10 | #ifndef GLI_GENERATE_MIPMAPS_INCLUDED 11 | #define GLI_GENERATE_MIPMAPS_INCLUDED 12 | 13 | #include "texture2d.hpp" 14 | 15 | namespace gli 16 | { 17 | texture2D generateMipmaps( 18 | texture2D const & Texture, 19 | texture2D::level_type const & BaseLevel); 20 | 21 | }//namespace gli 22 | 23 | #include "generate_mipmaps.inl" 24 | 25 | #endif//GLI_GENERATE_MIPMAPS_INCLUDED 26 | -------------------------------------------------------------------------------- /app/src/main/cpp/glm/test/external/gli/core/operator.hpp: -------------------------------------------------------------------------------- 1 | /////////////////////////////////////////////////////////////////////////////////////////////////// 2 | // OpenGL Image Copyright (c) 2008 - 2011 G-Truc Creation (www.g-truc.net) 3 | /////////////////////////////////////////////////////////////////////////////////////////////////// 4 | // Created : 2010-01-19 5 | // Updated : 2010-01-19 6 | // Licence : This source is under MIT License 7 | // File : gli/core/operator.hpp 8 | /////////////////////////////////////////////////////////////////////////////////////////////////// 9 | 10 | #ifndef GLI_OPERATOR_INCLUDED 11 | #define GLI_OPERATOR_INCLUDED 12 | 13 | #include "texture2d.hpp" 14 | 15 | namespace gli{ 16 | namespace detail 17 | { 18 | 19 | }//namespace detail 20 | 21 | texture2D operator+(texture2D const & TextureA, texture2D const & TextureB); 22 | texture2D operator-(texture2D const & TextureA, texture2D const & TextureB); 23 | 24 | }//namespace gli 25 | 26 | #include "operator.inl" 27 | 28 | #endif//GLI_OPERATOR_INCLUDED 29 | -------------------------------------------------------------------------------- /app/src/main/cpp/glm/test/external/gli/core/shared_array.hpp: -------------------------------------------------------------------------------- 1 | /////////////////////////////////////////////////////////////////////////////////////////////////// 2 | // OpenGL Image Copyright (c) 2008 - 2011 G-Truc Creation (www.g-truc.net) 3 | /////////////////////////////////////////////////////////////////////////////////////////////////// 4 | // Created : 2008-12-19 5 | // Updated : 2005-06-13 6 | // Licence : This source is under MIT License 7 | // File : gli/shared_array.hpp 8 | /////////////////////////////////////////////////////////////////////////////////////////////////// 9 | 10 | #ifndef GLI_SHARED_ARRAY_INCLUDED 11 | #define GLI_SHARED_ARRAY_INCLUDED 12 | 13 | namespace gli 14 | { 15 | template 16 | class shared_array 17 | { 18 | public: 19 | 20 | shared_array(); 21 | shared_array(shared_array const & SharedArray); 22 | shared_array(T * Pointer); 23 | virtual ~shared_array(); 24 | 25 | void reset(); 26 | void reset(T * Pointer); 27 | 28 | T & operator*(); 29 | T * operator->(); 30 | T const & operator*() const; 31 | T const * const operator->() const; 32 | 33 | T * get(); 34 | T const * const get() const; 35 | 36 | shared_array & operator=(shared_array const & SharedArray); 37 | bool operator==(shared_array const & SharedArray) const; 38 | bool operator!=(shared_array const & SharedArray) const; 39 | 40 | private: 41 | int * Counter; 42 | T * Pointer; 43 | }; 44 | }//namespace gli 45 | 46 | #include "shared_array.inl" 47 | 48 | #endif //GLI_SHARED_ARRAY_INCLUDED 49 | -------------------------------------------------------------------------------- /app/src/main/cpp/glm/test/external/gli/core/shared_ptr.hpp: -------------------------------------------------------------------------------- 1 | /////////////////////////////////////////////////////////////////////////////////////////////////// 2 | // OpenGL Image Copyright (c) 2008 - 2011 G-Truc Creation (www.g-truc.net) 3 | /////////////////////////////////////////////////////////////////////////////////////////////////// 4 | // Created : 2008-12-19 5 | // Updated : 2005-06-13 6 | // Licence : This source is under MIT License 7 | // File : gli/fetch.hpp 8 | /////////////////////////////////////////////////////////////////////////////////////////////////// 9 | 10 | #ifndef GLI_SHARED_PTR_INCLUDED 11 | #define GLI_SHARED_PTR_INCLUDED 12 | 13 | namespace gli 14 | { 15 | template 16 | class shared_ptr 17 | { 18 | public: 19 | shared_ptr(); 20 | shared_ptr(shared_ptr const & SmartPtr); 21 | shared_ptr(T* pPointer); 22 | ~shared_ptr(); 23 | 24 | T& operator*(); 25 | T* operator->(); 26 | const T& operator*() const; 27 | const T* operator->() const; 28 | shared_ptr& operator=(shared_ptr const & SmartPtr); 29 | shared_ptr& operator=(T* pPointer); 30 | bool operator==(shared_ptr const & SmartPtr) const; 31 | bool operator!=(shared_ptr const & SmartPtr) const; 32 | 33 | private: 34 | int* m_pReference; 35 | T* m_pPointer; 36 | }; 37 | }//namespace gli 38 | 39 | #include "shared_ptr.inl" 40 | 41 | #endif //GLI_SHARED_PTR_INCLUDED 42 | -------------------------------------------------------------------------------- /app/src/main/cpp/glm/test/external/gli/core/size.hpp: -------------------------------------------------------------------------------- 1 | /////////////////////////////////////////////////////////////////////////////////////////////////// 2 | // OpenGL Image Copyright (c) 2008 - 2011 G-Truc Creation (www.g-truc.net) 3 | /////////////////////////////////////////////////////////////////////////////////////////////////// 4 | // Created : 2010-09-08 5 | // Updated : 2010-09-08 6 | // Licence : This source is under MIT License 7 | // File : gli/core/size.hpp 8 | /////////////////////////////////////////////////////////////////////////////////////////////////// 9 | 10 | #ifndef GLI_CORE_SIZE_INCLUDED 11 | #define GLI_CORE_SIZE_INCLUDED 12 | 13 | #include "texture2d.hpp" 14 | 15 | namespace gli 16 | { 17 | //template 18 | image2D::size_type size( 19 | image2D const & Image, 20 | image2D::size_type const & SizeType); 21 | 22 | //template 23 | texture2D::size_type size( 24 | texture2D const & Texture, 25 | texture2D::size_type const & SizeType); 26 | 27 | }//namespace gli 28 | 29 | #include "size.inl" 30 | 31 | #endif//GLI_CORE_SIZE_INCLUDED 32 | -------------------------------------------------------------------------------- /app/src/main/cpp/glm/test/external/gli/core/size.inl: -------------------------------------------------------------------------------- 1 | /////////////////////////////////////////////////////////////////////////////////////////////////// 2 | // OpenGL Image Copyright (c) 2008 - 2011 G-Truc Creation (www.g-truc.net) 3 | /////////////////////////////////////////////////////////////////////////////////////////////////// 4 | // Created : 2008-12-19 5 | // Updated : 2010-09-08 6 | // Licence : This source is under MIT License 7 | // File : gli/core/size.inl 8 | /////////////////////////////////////////////////////////////////////////////////////////////////// 9 | 10 | namespace gli 11 | { 12 | inline image2D::size_type size 13 | ( 14 | image2D const & Image, 15 | image2D::size_type const & SizeType 16 | ) 17 | { 18 | switch(SizeType) 19 | { 20 | case LINEAR_SIZE: 21 | return detail::sizeLinear(Image); 22 | case BLOCK_SIZE: 23 | return detail::sizeBlock(Image.format()); 24 | case BIT_PER_PIXEL: 25 | return detail::sizeBitPerPixel(Image.format()); 26 | case COMPONENT: 27 | return detail::sizeComponent(Image.format()); 28 | default: 29 | assert(0); 30 | return 0; 31 | }; 32 | } 33 | 34 | inline texture2D::size_type size 35 | ( 36 | texture2D const & Texture, 37 | texture2D::size_type const & SizeType 38 | ) 39 | { 40 | texture2D::size_type Size = 0; 41 | for(texture2D::level_type Level = 0; Level < Texture.levels(); ++Level) 42 | Size += size(Texture[Level], SizeType); 43 | 44 | return Size; 45 | } 46 | 47 | }//namespace 48 | -------------------------------------------------------------------------------- /app/src/main/cpp/glm/test/external/gli/gli.hpp: -------------------------------------------------------------------------------- 1 | /////////////////////////////////////////////////////////////////////////////////////////////////// 2 | // OpenGL Image Copyright (c) 2008 - 2011 G-Truc Creation (www.g-truc.net) 3 | /////////////////////////////////////////////////////////////////////////////////////////////////// 4 | // Created : 2008-12-19 5 | // Updated : 2010-09-29 6 | // Licence : This source is under MIT License 7 | // File : gli/gli.hpp 8 | /////////////////////////////////////////////////////////////////////////////////////////////////// 9 | 10 | /*! \mainpage OpenGL Image 11 | * 12 | */ 13 | 14 | #ifndef GLI_GLI_INCLUDED 15 | #define GLI_GLI_INCLUDED 16 | 17 | #define GLI_VERSION 31 18 | #define GLI_VERSION_MAJOR 0 19 | #define GLI_VERSION_MINOR 3 20 | #define GLI_VERSION_PATCH 1 21 | #define GLI_VERSION_REVISION 0 22 | 23 | #include "./core/texture2d.hpp" 24 | #include "./core/texture2d_array.hpp" 25 | #include "./core/texture_cube.hpp" 26 | #include "./core/texture_cube_array.hpp" 27 | #include "./core/size.hpp" 28 | #include "./core/operation.hpp" 29 | #include "./core/generate_mipmaps.hpp" 30 | 31 | #endif//GLI_GLI_INCLUDED 32 | -------------------------------------------------------------------------------- /app/src/main/cpp/glm/test/external/gli/gtx/compression.hpp: -------------------------------------------------------------------------------- 1 | /////////////////////////////////////////////////////////////////////////////////////////////////// 2 | // OpenGL Image Copyright (c) 2008 - 2011 G-Truc Creation (www.g-truc.net) 3 | /////////////////////////////////////////////////////////////////////////////////////////////////// 4 | // Created : 2008-12-19 5 | // Updated : 2010-01-09 6 | // Licence : This source is under MIT License 7 | // File : gli/gtx/compression.hpp 8 | /////////////////////////////////////////////////////////////////////////////////////////////////// 9 | 10 | #ifndef GLI_GTX_COMPRESSION_INCLUDED 11 | #define GLI_GTX_COMPRESSION_INCLUDED 12 | 13 | namespace gli{ 14 | namespace gtx{ 15 | namespace compression 16 | { 17 | 18 | 19 | }//namespace compression 20 | }//namespace gtx 21 | }//namespace gli 22 | 23 | namespace gli{using namespace gtx::compression;} 24 | 25 | #include "compression.inl" 26 | 27 | #endif//GLI_GTX_COMPRESSION_INCLUDED 28 | -------------------------------------------------------------------------------- /app/src/main/cpp/glm/test/external/gli/gtx/compression.inl: -------------------------------------------------------------------------------- 1 | /////////////////////////////////////////////////////////////////////////////////////////////////// 2 | // OpenGL Image Copyright (c) 2008 - 2011 G-Truc Creation (www.g-truc.net) 3 | /////////////////////////////////////////////////////////////////////////////////////////////////// 4 | // Created : 2008-12-19 5 | // Updated : 2010-01-09 6 | // Licence : This source is under MIT License 7 | // File : gli/gtx/compression.inl 8 | /////////////////////////////////////////////////////////////////////////////////////////////////// 9 | -------------------------------------------------------------------------------- /app/src/main/cpp/glm/test/external/gli/gtx/fetch.hpp: -------------------------------------------------------------------------------- 1 | /////////////////////////////////////////////////////////////////////////////////////////////////// 2 | // OpenGL Image Copyright (c) 2008 - 2011 G-Truc Creation (www.g-truc.net) 3 | /////////////////////////////////////////////////////////////////////////////////////////////////// 4 | // Created : 2008-12-19 5 | // Updated : 2010-09-27 6 | // Licence : This source is under MIT License 7 | // File : gli/gtx/fetch.hpp 8 | /////////////////////////////////////////////////////////////////////////////////////////////////// 9 | 10 | #ifndef GLI_GTX_FETCH_INCLUDED 11 | #define GLI_GTX_FETCH_INCLUDED 12 | 13 | #include "../gli.hpp" 14 | 15 | namespace gli{ 16 | namespace gtx{ 17 | namespace fetch 18 | { 19 | template 20 | genType texelFetch( 21 | texture2D const & Texture, 22 | texture2D::dimensions_type const & Texcoord, 23 | texture2D::level_type const & Level); 24 | 25 | template 26 | genType textureLod( 27 | texture2D const & Texture, 28 | texture2D::texcoord_type const & Texcoord, 29 | texture2D::level_type const & Level); 30 | 31 | template 32 | void texelWrite( 33 | texture2D & Texture, 34 | texture2D::dimensions_type const & Texcoord, 35 | texture2D::level_type const & Level, 36 | genType const & Color); 37 | 38 | }//namespace fetch 39 | }//namespace gtx 40 | }//namespace gli 41 | 42 | namespace gli{using namespace gtx::fetch;} 43 | 44 | #include "fetch.inl" 45 | 46 | #endif//GLI_GTX_FETCH_INCLUDED 47 | -------------------------------------------------------------------------------- /app/src/main/cpp/glm/test/external/gli/gtx/gl_texture2d.hpp: -------------------------------------------------------------------------------- 1 | /////////////////////////////////////////////////////////////////////////////////////////////////// 2 | // OpenGL Image Copyright (c) 2008 - 2011 G-Truc Creation (www.g-truc.net) 3 | /////////////////////////////////////////////////////////////////////////////////////////////////// 4 | // Created : 2010-09-27 5 | // Updated : 2010-10-01 6 | // Licence : This source is under MIT License 7 | // File : gli/gtx/gl_texture2d.hpp 8 | /////////////////////////////////////////////////////////////////////////////////////////////////// 9 | 10 | #ifndef GLI_GTX_GL_TEXTURE2D_INCLUDED 11 | #define GLI_GTX_GL_TEXTURE2D_INCLUDED 12 | 13 | #include "../gli.hpp" 14 | #include "../gtx/loader.hpp" 15 | 16 | #ifndef GL_VERSION_1_1 17 | #error "ERROR: OpenGL must be included before GLI_GTX_gl_texture2d" 18 | #endif//GL_VERSION_1_1 19 | 20 | namespace gli{ 21 | namespace gtx{ 22 | namespace gl_texture2d 23 | { 24 | GLuint createTexture2D(std::string const & Filename); 25 | }//namespace gl_texture2d 26 | }//namespace gtx 27 | }//namespace gli 28 | 29 | namespace gli{using namespace gtx::gl_texture2d;} 30 | 31 | #include "gl_texture2d.inl" 32 | 33 | #endif//GLI_GTX_GL_TEXTURE2D_INCLUDED 34 | -------------------------------------------------------------------------------- /app/src/main/cpp/glm/test/external/gli/gtx/gradient.hpp: -------------------------------------------------------------------------------- 1 | /////////////////////////////////////////////////////////////////////////////////////////////////// 2 | // OpenGL Image Copyright (c) 2008 - 2011 G-Truc Creation (www.g-truc.net) 3 | /////////////////////////////////////////////////////////////////////////////////////////////////// 4 | // Created : 2008-12-19 5 | // Updated : 2010-01-09 6 | // Licence : This source is under MIT License 7 | // File : gli/gtx/gradient.hpp 8 | /////////////////////////////////////////////////////////////////////////////////////////////////// 9 | 10 | #ifndef GLI_GTX_GRADIENT_INCLUDED 11 | #define GLI_GTX_GRADIENT_INCLUDED 12 | 13 | #include "../gli.hpp" 14 | 15 | namespace gli{ 16 | namespace gtx{ 17 | namespace gradient 18 | { 19 | texture2D radial( 20 | texture2D::dimensions_type const & Size, 21 | texture2D::texcoord_type const & Center, 22 | float const & Radius, 23 | texture2D::texcoord_type const & Focal); 24 | 25 | texture2D linear( 26 | texture2D::dimensions_type const & Size, 27 | texture2D::texcoord_type const & Point0, 28 | texture2D::texcoord_type const & Point1); 29 | 30 | }//namespace gradient 31 | }//namespace gtx 32 | }//namespace gli 33 | 34 | namespace gli{using namespace gtx::gradient;} 35 | 36 | #include "gradient.inl" 37 | 38 | #endif//GLI_GTX_GRADIENT_INCLUDED 39 | -------------------------------------------------------------------------------- /app/src/main/cpp/glm/test/external/gli/gtx/loader.hpp: -------------------------------------------------------------------------------- 1 | /////////////////////////////////////////////////////////////////////////////////////////////////// 2 | // OpenGL Image Copyright (c) 2008 - 2011 G-Truc Creation (www.g-truc.net) 3 | /////////////////////////////////////////////////////////////////////////////////////////////////// 4 | // Created : 2010-09-08 5 | // Updated : 2010-09-27 6 | // Licence : This source is under MIT License 7 | // File : gli/gtx/loader.hpp 8 | /////////////////////////////////////////////////////////////////////////////////////////////////// 9 | 10 | #ifndef GLI_GTX_LOADER_INCLUDED 11 | #define GLI_GTX_LOADER_INCLUDED 12 | 13 | #include "../gli.hpp" 14 | #include "../gtx/loader_dds9.hpp" 15 | #include "../gtx/loader_dds10.hpp" 16 | #include "../gtx/loader_tga.hpp" 17 | 18 | namespace gli{ 19 | namespace gtx{ 20 | namespace loader 21 | { 22 | inline texture2D load( 23 | std::string const & Filename); 24 | 25 | inline void save( 26 | texture2D const & Image, 27 | std::string const & Filename); 28 | 29 | }//namespace loader 30 | }//namespace gtx 31 | }//namespace gli 32 | 33 | namespace gli{using namespace gtx::loader;} 34 | 35 | #include "loader.inl" 36 | 37 | #endif//GLI_GTX_LOADER_INCLUDED 38 | -------------------------------------------------------------------------------- /app/src/main/cpp/glm/test/external/gli/gtx/loader.inl: -------------------------------------------------------------------------------- 1 | /////////////////////////////////////////////////////////////////////////////////////////////////// 2 | // OpenGL Image Copyright (c) 2008 - 2011 G-Truc Creation (www.g-truc.net) 3 | /////////////////////////////////////////////////////////////////////////////////////////////////// 4 | // Created : 2010-09-08 5 | // Updated : 2010-09-27 6 | // Licence : This source is under MIT License 7 | // File : gli/gtx/loader.inl 8 | /////////////////////////////////////////////////////////////////////////////////////////////////// 9 | 10 | namespace gli{ 11 | namespace gtx{ 12 | namespace loader 13 | { 14 | inline texture2D load 15 | ( 16 | std::string const & Filename 17 | ) 18 | { 19 | if(Filename.find(".dds") != std::string::npos) 20 | return loadDDS10(Filename); 21 | else if(Filename.find(".tga") != std::string::npos) 22 | return loadTGA(Filename); 23 | else 24 | { 25 | assert(0); // File format not supported 26 | return texture2D(); 27 | } 28 | } 29 | 30 | inline void save 31 | ( 32 | texture2D const & Image, 33 | std::string const & Filename 34 | ) 35 | { 36 | if(Filename.find(".dds") != std::string::npos) 37 | saveDDS10(Image, Filename); 38 | else if(Filename.find(".tga") != std::string::npos) 39 | saveTGA(Image, Filename); 40 | else 41 | assert(0); // File format not supported 42 | } 43 | 44 | }//namespace loader 45 | }//namespace gtx 46 | }//namespace gli 47 | -------------------------------------------------------------------------------- /app/src/main/cpp/glm/test/external/gli/gtx/loader_dds10.hpp: -------------------------------------------------------------------------------- 1 | /////////////////////////////////////////////////////////////////////////////////////////////////// 2 | // OpenGL Image Copyright (c) 2008 - 2011 G-Truc Creation (www.g-truc.net) 3 | /////////////////////////////////////////////////////////////////////////////////////////////////// 4 | // Created : 2010-09-26 5 | // Updated : 2010-09-27 6 | // Licence : This source is under MIT License 7 | // File : gli/gtx/loader_dds10.hpp 8 | /////////////////////////////////////////////////////////////////////////////////////////////////// 9 | 10 | #ifndef GLI_GTX_LOADER_DDS10_INCLUDED 11 | #define GLI_GTX_LOADER_DDS10_INCLUDED 12 | 13 | #include "../gli.hpp" 14 | #include 15 | 16 | namespace gli{ 17 | namespace gtx{ 18 | namespace loader_dds10 19 | { 20 | texture2D loadDDS10( 21 | std::string const & Filename); 22 | 23 | void saveDDS10( 24 | texture2D const & Image, 25 | std::string const & Filename); 26 | 27 | }//namespace loader_dds10 28 | }//namespace gtx 29 | }//namespace gli 30 | 31 | namespace gli{using namespace gtx::loader_dds10;} 32 | 33 | #include "loader_dds10.inl" 34 | 35 | #endif//GLI_GTX_LOADER_DDS10_INCLUDED 36 | -------------------------------------------------------------------------------- /app/src/main/cpp/glm/test/external/gli/gtx/loader_dds9.hpp: -------------------------------------------------------------------------------- 1 | /////////////////////////////////////////////////////////////////////////////////////////////////// 2 | // OpenGL Image Copyright (c) 2008 - 2011 G-Truc Creation (www.g-truc.net) 3 | /////////////////////////////////////////////////////////////////////////////////////////////////// 4 | // Created : 2010-09-08 5 | // Updated : 2010-09-27 6 | // Licence : This source is under MIT License 7 | // File : gli/gtx/loader_dds9.hpp 8 | /////////////////////////////////////////////////////////////////////////////////////////////////// 9 | 10 | #ifndef GLI_GTX_LOADER_DDS9_INCLUDED 11 | #define GLI_GTX_LOADER_DDS9_INCLUDED 12 | 13 | #include "../gli.hpp" 14 | #include 15 | 16 | namespace gli{ 17 | namespace gtx{ 18 | namespace loader_dds9 19 | { 20 | texture2D loadDDS9( 21 | std::string const & Filename); 22 | 23 | void saveDDS9( 24 | texture2D const & Texture, 25 | std::string const & Filename); 26 | 27 | void saveTextureCubeDDS9( 28 | textureCube const & Texture, 29 | std::string const & Filename); 30 | 31 | }//namespace loader_dds9 32 | }//namespace gtx 33 | }//namespace gli 34 | 35 | namespace gli{using namespace gtx::loader_dds9;} 36 | 37 | #include "loader_dds9.inl" 38 | 39 | #endif//GLI_GTX_LOADER_DDS9_INCLUDED 40 | -------------------------------------------------------------------------------- /app/src/main/cpp/glm/test/external/gli/gtx/loader_tga.hpp: -------------------------------------------------------------------------------- 1 | /////////////////////////////////////////////////////////////////////////////////////////////////// 2 | // OpenGL Image Copyright (c) 2008 - 2011 G-Truc Creation (www.g-truc.net) 3 | /////////////////////////////////////////////////////////////////////////////////////////////////// 4 | // Created : 2010-09-08 5 | // Updated : 2010-09-27 6 | // Licence : This source is under MIT License 7 | // File : gli/gtx/loader_tga.hpp 8 | /////////////////////////////////////////////////////////////////////////////////////////////////// 9 | 10 | #ifndef GLI_GTX_LOADER_TGA_INCLUDED 11 | #define GLI_GTX_LOADER_TGA_INCLUDED 12 | 13 | #include "../gli.hpp" 14 | #include 15 | #include 16 | 17 | namespace gli{ 18 | namespace gtx{ 19 | namespace loader_tga 20 | { 21 | texture2D loadTGA( 22 | std::string const & Filename); 23 | 24 | void saveTGA( 25 | texture2D const & Image, 26 | std::string const & Filename); 27 | 28 | }//namespace loader_tga 29 | }//namespace gtx 30 | }//namespace gli 31 | 32 | namespace gli{using namespace gtx::loader_tga;} 33 | 34 | #include "loader_tga.inl" 35 | 36 | #endif//GLI_GTX_LOADER_TGA_INCLUDED 37 | -------------------------------------------------------------------------------- /app/src/main/cpp/glm/test/external/gli/gtx/wavelet.hpp: -------------------------------------------------------------------------------- 1 | /////////////////////////////////////////////////////////////////////////////////////////////////// 2 | // OpenGL Image Copyright (c) 2008 - 2011 G-Truc Creation (www.g-truc.net) 3 | /////////////////////////////////////////////////////////////////////////////////////////////////// 4 | // Created : 2010-01-09 5 | // Updated : 2010-01-09 6 | // Licence : This source is under MIT License 7 | // File : gli/gtx/wavelet.hpp 8 | /////////////////////////////////////////////////////////////////////////////////////////////////// 9 | 10 | #ifndef GLI_GTX_WAVELET_INCLUDED 11 | #define GLI_GTX_WAVELET_INCLUDED 12 | 13 | namespace gli{ 14 | namespace gtx{ 15 | namespace wavelet 16 | { 17 | 18 | 19 | }//namespace wavelet 20 | }//namespace gtx 21 | }//namespace gli 22 | 23 | namespace gli{using namespace gtx::wavelet;} 24 | 25 | #include "wavelet.inl" 26 | 27 | #endif//GLI_GTX_WAVELET_INCLUDED 28 | -------------------------------------------------------------------------------- /app/src/main/cpp/glm/test/external/gli/gtx/wavelet.inl: -------------------------------------------------------------------------------- 1 | /////////////////////////////////////////////////////////////////////////////////////////////////// 2 | // OpenGL Image Copyright (c) 2008 - 2011 G-Truc Creation (www.g-truc.net) 3 | /////////////////////////////////////////////////////////////////////////////////////////////////// 4 | // Created : 2010-01-09 5 | // Updated : 2010-01-09 6 | // Licence : This source is under MIT License 7 | // File : gli/gtx/wavelet.inl 8 | /////////////////////////////////////////////////////////////////////////////////////////////////// 9 | -------------------------------------------------------------------------------- /app/src/main/cpp/glm/test/glm.cppcheck: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /app/src/main/cpp/glm/test/gtc/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | glmCreateTestGTC(gtc_bitfield) 2 | glmCreateTestGTC(gtc_constants) 3 | glmCreateTestGTC(gtc_epsilon) 4 | glmCreateTestGTC(gtc_integer) 5 | glmCreateTestGTC(gtc_matrix_access) 6 | glmCreateTestGTC(gtc_matrix_integer) 7 | glmCreateTestGTC(gtc_matrix_inverse) 8 | glmCreateTestGTC(gtc_matrix_transform) 9 | glmCreateTestGTC(gtc_noise) 10 | glmCreateTestGTC(gtc_packing) 11 | glmCreateTestGTC(gtc_quaternion) 12 | glmCreateTestGTC(gtc_random) 13 | glmCreateTestGTC(gtc_round) 14 | glmCreateTestGTC(gtc_reciprocal) 15 | glmCreateTestGTC(gtc_type_precision) 16 | glmCreateTestGTC(gtc_type_ptr) 17 | glmCreateTestGTC(gtc_ulp) 18 | glmCreateTestGTC(gtc_vec1) 19 | -------------------------------------------------------------------------------- /app/src/main/cpp/glm/test/gtc/gtc_matrix_integer.cpp: -------------------------------------------------------------------------------- 1 | /////////////////////////////////////////////////////////////////////////////////// 2 | /// OpenGL Mathematics (glm.g-truc.net) 3 | /// 4 | /// Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net) 5 | /// Permission is hereby granted, free of charge, to any person obtaining a copy 6 | /// of this software and associated documentation files (the "Software"), to deal 7 | /// in the Software without restriction, including without limitation the rights 8 | /// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | /// copies of the Software, and to permit persons to whom the Software is 10 | /// furnished to do so, subject to the following conditions: 11 | /// 12 | /// The above copyright notice and this permission notice shall be included in 13 | /// all copies or substantial portions of the Software. 14 | /// 15 | /// Restrictions: 16 | /// By making use of the Software for military purposes, you choose to make 17 | /// a Bunny unhappy. 18 | /// 19 | /// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 20 | /// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 21 | /// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 22 | /// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 23 | /// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 24 | /// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 25 | /// THE SOFTWARE. 26 | /// 27 | /// @file test/gtc/gtc_matrix_integer.cpp 28 | /// @date 2010-09-16 / 2014-11-25 29 | /// @author Christophe Riccio 30 | /////////////////////////////////////////////////////////////////////////////////// 31 | 32 | #include 33 | 34 | int main() 35 | { 36 | int Error = 0; 37 | 38 | return Error; 39 | } 40 | -------------------------------------------------------------------------------- /app/src/main/cpp/glm/test/gtc/gtc_matrix_inverse.cpp: -------------------------------------------------------------------------------- 1 | /////////////////////////////////////////////////////////////////////////////////// 2 | /// OpenGL Mathematics (glm.g-truc.net) 3 | /// 4 | /// Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net) 5 | /// Permission is hereby granted, free of charge, to any person obtaining a copy 6 | /// of this software and associated documentation files (the "Software"), to deal 7 | /// in the Software without restriction, including without limitation the rights 8 | /// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | /// copies of the Software, and to permit persons to whom the Software is 10 | /// furnished to do so, subject to the following conditions: 11 | /// 12 | /// The above copyright notice and this permission notice shall be included in 13 | /// all copies or substantial portions of the Software. 14 | /// 15 | /// Restrictions: 16 | /// By making use of the Software for military purposes, you choose to make 17 | /// a Bunny unhappy. 18 | /// 19 | /// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 20 | /// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 21 | /// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 22 | /// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 23 | /// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 24 | /// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 25 | /// THE SOFTWARE. 26 | /// 27 | /// @file test/gtc/gtc_matrix_inverse.cpp 28 | /// @date 2010-09-16 / 2014-11-25 29 | /// @author Christophe Riccio 30 | /////////////////////////////////////////////////////////////////////////////////// 31 | 32 | #include 33 | 34 | int main() 35 | { 36 | int Error = 0; 37 | 38 | return Error; 39 | } 40 | -------------------------------------------------------------------------------- /app/src/main/cpp/glm/test/gtc/gtc_quaternion.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yishuinanfeng/UnitedPlayer/83bb11db7603633c5b634d49eafa1d05957fbb11/app/src/main/cpp/glm/test/gtc/gtc_quaternion.cpp -------------------------------------------------------------------------------- /app/src/main/cpp/glm/test/gtc/gtc_reciprocal.cpp: -------------------------------------------------------------------------------- 1 | /////////////////////////////////////////////////////////////////////////////////// 2 | /// OpenGL Mathematics (glm.g-truc.net) 3 | /// 4 | /// Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net) 5 | /// Permission is hereby granted, free of charge, to any person obtaining a copy 6 | /// of this software and associated documentation files (the "Software"), to deal 7 | /// in the Software without restriction, including without limitation the rights 8 | /// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | /// copies of the Software, and to permit persons to whom the Software is 10 | /// furnished to do so, subject to the following conditions: 11 | /// 12 | /// The above copyright notice and this permission notice shall be included in 13 | /// all copies or substantial portions of the Software. 14 | /// 15 | /// Restrictions: 16 | /// By making use of the Software for military purposes, you choose to make 17 | /// a Bunny unhappy. 18 | /// 19 | /// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 20 | /// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 21 | /// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 22 | /// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 23 | /// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 24 | /// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 25 | /// THE SOFTWARE. 26 | /// 27 | /// @file test/gtc/gtc_reciprocal.cpp 28 | /// @date 2012-09-19 / 2014-11-25 29 | /// @author Christophe Riccio 30 | /////////////////////////////////////////////////////////////////////////////////// 31 | 32 | #include 33 | #include 34 | 35 | int main() 36 | { 37 | return 0; 38 | } 39 | 40 | -------------------------------------------------------------------------------- /app/src/main/cpp/glm/test/gtc/gtc_user_defined_types.cpp: -------------------------------------------------------------------------------- 1 | /////////////////////////////////////////////////////////////////////////////////////////////////// 2 | // OpenGL Mathematics Copyright (c) 2005 - 2014 G-Truc Creation (www.g-truc.net) 3 | /////////////////////////////////////////////////////////////////////////////////////////////////// 4 | // Created : 2010-09-16 5 | // Updated : 2011-05-27 6 | // Licence : This source is under MIT licence 7 | // File : test/gtc/type_ptr.cpp 8 | /////////////////////////////////////////////////////////////////////////////////////////////////// 9 | 10 | #define GLM_FORCE_RADIANS 11 | #include 12 | 13 | int test_make_pointer_vec() 14 | { 15 | int Error = 0; 16 | 17 | glm::func(); 18 | //func(); 19 | 20 | return Error; 21 | } 22 | 23 | int main() 24 | { 25 | int Error = 0; 26 | 27 | Error += test_make_pointer_vec(); 28 | 29 | return Error; 30 | } 31 | -------------------------------------------------------------------------------- /app/src/main/cpp/glm/test/gtc/gtc_vec1.cpp: -------------------------------------------------------------------------------- 1 | /////////////////////////////////////////////////////////////////////////////////// 2 | /// OpenGL Mathematics (glm.g-truc.net) 3 | /// 4 | /// Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net) 5 | /// Permission is hereby granted, free of charge, to any person obtaining a copy 6 | /// of this software and associated documentation files (the "Software"), to deal 7 | /// in the Software without restriction, including without limitation the rights 8 | /// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | /// copies of the Software, and to permit persons to whom the Software is 10 | /// furnished to do so, subject to the following conditions: 11 | /// 12 | /// The above copyright notice and this permission notice shall be included in 13 | /// all copies or substantial portions of the Software. 14 | /// 15 | /// Restrictions: 16 | /// By making use of the Software for military purposes, you choose to make 17 | /// a Bunny unhappy. 18 | /// 19 | /// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 20 | /// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 21 | /// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 22 | /// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 23 | /// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 24 | /// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 25 | /// THE SOFTWARE. 26 | /// 27 | /// @file test/gtc/gtc_vec1.cpp 28 | /// @date 2014-10-11 / 2014-11-25 29 | /// @author Christophe Riccio 30 | /////////////////////////////////////////////////////////////////////////////////// 31 | 32 | #include 33 | 34 | int main() 35 | { 36 | int Error = 0; 37 | 38 | return Error; 39 | } 40 | -------------------------------------------------------------------------------- /app/src/main/cpp/glm/test/gtx/gtx_closest_point.cpp: -------------------------------------------------------------------------------- 1 | /////////////////////////////////////////////////////////////////////////////////// 2 | /// OpenGL Mathematics (glm.g-truc.net) 3 | /// 4 | /// Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net) 5 | /// Permission is hereby granted, free of charge, to any person obtaining a copy 6 | /// of this software and associated documentation files (the "Software"), to deal 7 | /// in the Software without restriction, including without limitation the rights 8 | /// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | /// copies of the Software, and to permit persons to whom the Software is 10 | /// furnished to do so, subject to the following conditions: 11 | /// 12 | /// The above copyright notice and this permission notice shall be included in 13 | /// all copies or substantial portions of the Software. 14 | /// 15 | /// Restrictions: 16 | /// By making use of the Software for military purposes, you choose to make 17 | /// a Bunny unhappy. 18 | /// 19 | /// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 20 | /// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 21 | /// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 22 | /// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 23 | /// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 24 | /// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 25 | /// THE SOFTWARE. 26 | /// 27 | /// @file test/gtx/gtx_closest_point.cpp 28 | /// @date 2013-10-25 / 2014-11-25 29 | /// @author Christophe Riccio 30 | /////////////////////////////////////////////////////////////////////////////////// 31 | 32 | #include 33 | 34 | int main() 35 | { 36 | int Error(0); 37 | 38 | return Error; 39 | } 40 | -------------------------------------------------------------------------------- /app/src/main/cpp/glm/test/gtx/gtx_compatibility.cpp: -------------------------------------------------------------------------------- 1 | /////////////////////////////////////////////////////////////////////////////////// 2 | /// OpenGL Mathematics (glm.g-truc.net) 3 | /// 4 | /// Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net) 5 | /// Permission is hereby granted, free of charge, to any person obtaining a copy 6 | /// of this software and associated documentation files (the "Software"), to deal 7 | /// in the Software without restriction, including without limitation the rights 8 | /// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | /// copies of the Software, and to permit persons to whom the Software is 10 | /// furnished to do so, subject to the following conditions: 11 | /// 12 | /// The above copyright notice and this permission notice shall be included in 13 | /// all copies or substantial portions of the Software. 14 | /// 15 | /// Restrictions: 16 | /// By making use of the Software for military purposes, you choose to make 17 | /// a Bunny unhappy. 18 | /// 19 | /// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 20 | /// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 21 | /// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 22 | /// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 23 | /// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 24 | /// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 25 | /// THE SOFTWARE. 26 | /// 27 | /// @file test/gtx/gtx_compatibility.cpp 28 | /// @date 2014-09-08 / 2014-11-25 29 | /// @author Christophe Riccio 30 | /////////////////////////////////////////////////////////////////////////////////// 31 | 32 | #include 33 | 34 | int main() 35 | { 36 | int Error(0); 37 | 38 | return Error; 39 | } 40 | -------------------------------------------------------------------------------- /app/src/main/cpp/glm/test/gtx/gtx_component_wise.cpp: -------------------------------------------------------------------------------- 1 | /////////////////////////////////////////////////////////////////////////////////// 2 | /// OpenGL Mathematics (glm.g-truc.net) 3 | /// 4 | /// Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net) 5 | /// Permission is hereby granted, free of charge, to any person obtaining a copy 6 | /// of this software and associated documentation files (the "Software"), to deal 7 | /// in the Software without restriction, including without limitation the rights 8 | /// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | /// copies of the Software, and to permit persons to whom the Software is 10 | /// furnished to do so, subject to the following conditions: 11 | /// 12 | /// The above copyright notice and this permission notice shall be included in 13 | /// all copies or substantial portions of the Software. 14 | /// 15 | /// Restrictions: 16 | /// By making use of the Software for military purposes, you choose to make 17 | /// a Bunny unhappy. 18 | /// 19 | /// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 20 | /// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 21 | /// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 22 | /// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 23 | /// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 24 | /// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 25 | /// THE SOFTWARE. 26 | /// 27 | /// @file test/gtx/gtx_component_wise.cpp 28 | /// @date 2013-10-25 / 2014-11-25 29 | /// @author Christophe Riccio 30 | /////////////////////////////////////////////////////////////////////////////////// 31 | 32 | #include 33 | 34 | int main() 35 | { 36 | int Error(0); 37 | 38 | return Error; 39 | } 40 | -------------------------------------------------------------------------------- /app/src/main/cpp/glm/test/gtx/gtx_extend.cpp: -------------------------------------------------------------------------------- 1 | /////////////////////////////////////////////////////////////////////////////////// 2 | /// OpenGL Mathematics (glm.g-truc.net) 3 | /// 4 | /// Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net) 5 | /// Permission is hereby granted, free of charge, to any person obtaining a copy 6 | /// of this software and associated documentation files (the "Software"), to deal 7 | /// in the Software without restriction, including without limitation the rights 8 | /// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | /// copies of the Software, and to permit persons to whom the Software is 10 | /// furnished to do so, subject to the following conditions: 11 | /// 12 | /// The above copyright notice and this permission notice shall be included in 13 | /// all copies or substantial portions of the Software. 14 | /// 15 | /// Restrictions: 16 | /// By making use of the Software for military purposes, you choose to make 17 | /// a Bunny unhappy. 18 | /// 19 | /// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 20 | /// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 21 | /// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 22 | /// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 23 | /// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 24 | /// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 25 | /// THE SOFTWARE. 26 | /// 27 | /// @file test/gtx/gtx_extend.cpp 28 | /// @date 2013-10-25 / 2014-11-25 29 | /// @author Christophe Riccio 30 | /////////////////////////////////////////////////////////////////////////////////// 31 | 32 | #include 33 | 34 | int main() 35 | { 36 | int Error(0); 37 | 38 | return Error; 39 | } 40 | -------------------------------------------------------------------------------- /app/src/main/cpp/glm/test/gtx/gtx_extented_min_max.cpp: -------------------------------------------------------------------------------- 1 | /////////////////////////////////////////////////////////////////////////////////// 2 | /// OpenGL Mathematics (glm.g-truc.net) 3 | /// 4 | /// Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net) 5 | /// Permission is hereby granted, free of charge, to any person obtaining a copy 6 | /// of this software and associated documentation files (the "Software"), to deal 7 | /// in the Software without restriction, including without limitation the rights 8 | /// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | /// copies of the Software, and to permit persons to whom the Software is 10 | /// furnished to do so, subject to the following conditions: 11 | /// 12 | /// The above copyright notice and this permission notice shall be included in 13 | /// all copies or substantial portions of the Software. 14 | /// 15 | /// Restrictions: 16 | /// By making use of the Software for military purposes, you choose to make 17 | /// a Bunny unhappy. 18 | /// 19 | /// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 20 | /// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 21 | /// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 22 | /// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 23 | /// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 24 | /// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 25 | /// THE SOFTWARE. 26 | /// 27 | /// @file test/gtx/gtx_extented_min_max.cpp 28 | /// @date 2013-10-25 / 2014-11-25 29 | /// @author Christophe Riccio 30 | /////////////////////////////////////////////////////////////////////////////////// 31 | 32 | #include 33 | 34 | int main() 35 | { 36 | int Error(0); 37 | 38 | return Error; 39 | } 40 | -------------------------------------------------------------------------------- /app/src/main/cpp/glm/test/gtx/gtx_fast_exponential.cpp: -------------------------------------------------------------------------------- 1 | /////////////////////////////////////////////////////////////////////////////////// 2 | /// OpenGL Mathematics (glm.g-truc.net) 3 | /// 4 | /// Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net) 5 | /// Permission is hereby granted, free of charge, to any person obtaining a copy 6 | /// of this software and associated documentation files (the "Software"), to deal 7 | /// in the Software without restriction, including without limitation the rights 8 | /// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | /// copies of the Software, and to permit persons to whom the Software is 10 | /// furnished to do so, subject to the following conditions: 11 | /// 12 | /// The above copyright notice and this permission notice shall be included in 13 | /// all copies or substantial portions of the Software. 14 | /// 15 | /// Restrictions: 16 | /// By making use of the Software for military purposes, you choose to make 17 | /// a Bunny unhappy. 18 | /// 19 | /// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 20 | /// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 21 | /// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 22 | /// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 23 | /// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 24 | /// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 25 | /// THE SOFTWARE. 26 | /// 27 | /// @file test/gtx/gtx_fast_exponential.cpp 28 | /// @date 2013-10-25 / 2014-11-25 29 | /// @author Christophe Riccio 30 | /////////////////////////////////////////////////////////////////////////////////// 31 | 32 | #include 33 | 34 | int main() 35 | { 36 | int Error(0); 37 | 38 | return Error; 39 | } 40 | -------------------------------------------------------------------------------- /app/src/main/cpp/glm/test/gtx/gtx_int_10_10_10_2.cpp: -------------------------------------------------------------------------------- 1 | /////////////////////////////////////////////////////////////////////////////////////////////////// 2 | // OpenGL Mathematics Copyright (c) 2005 - 2013 G-Truc Creation (www.g-truc.net) 3 | /////////////////////////////////////////////////////////////////////////////////////////////////// 4 | // Created : 2013-10-25 5 | // Updated : 2013-10-25 6 | // Licence : This source is under MIT licence 7 | // File : test/gtx/associated_min_max.cpp 8 | /////////////////////////////////////////////////////////////////////////////////////////////////// 9 | 10 | #include 11 | #include 12 | 13 | int main() 14 | { 15 | int Error(0); 16 | 17 | return Error; 18 | } 19 | -------------------------------------------------------------------------------- /app/src/main/cpp/glm/test/gtx/gtx_intersect.cpp: -------------------------------------------------------------------------------- 1 | /////////////////////////////////////////////////////////////////////////////////// 2 | /// OpenGL Mathematics (glm.g-truc.net) 3 | /// 4 | /// Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net) 5 | /// Permission is hereby granted, free of charge, to any person obtaining a copy 6 | /// of this software and associated documentation files (the "Software"), to deal 7 | /// in the Software without restriction, including without limitation the rights 8 | /// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | /// copies of the Software, and to permit persons to whom the Software is 10 | /// furnished to do so, subject to the following conditions: 11 | /// 12 | /// The above copyright notice and this permission notice shall be included in 13 | /// all copies or substantial portions of the Software. 14 | /// 15 | /// Restrictions: 16 | /// By making use of the Software for military purposes, you choose to make 17 | /// a Bunny unhappy. 18 | /// 19 | /// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 20 | /// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 21 | /// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 22 | /// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 23 | /// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 24 | /// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 25 | /// THE SOFTWARE. 26 | /// 27 | /// @file test/gtx/gtx_intersect.cpp 28 | /// @date 2013-10-25 / 2014-11-25 29 | /// @author Christophe Riccio 30 | /////////////////////////////////////////////////////////////////////////////////// 31 | 32 | #include 33 | 34 | int main() 35 | { 36 | int Error(0); 37 | 38 | return Error; 39 | } 40 | -------------------------------------------------------------------------------- /app/src/main/cpp/glm/test/gtx/gtx_log_base.cpp: -------------------------------------------------------------------------------- 1 | /////////////////////////////////////////////////////////////////////////////////// 2 | /// OpenGL Mathematics (glm.g-truc.net) 3 | /// 4 | /// Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net) 5 | /// Permission is hereby granted, free of charge, to any person obtaining a copy 6 | /// of this software and associated documentation files (the "Software"), to deal 7 | /// in the Software without restriction, including without limitation the rights 8 | /// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | /// copies of the Software, and to permit persons to whom the Software is 10 | /// furnished to do so, subject to the following conditions: 11 | /// 12 | /// The above copyright notice and this permission notice shall be included in 13 | /// all copies or substantial portions of the Software. 14 | /// 15 | /// Restrictions: 16 | /// By making use of the Software for military purposes, you choose to make 17 | /// a Bunny unhappy. 18 | /// 19 | /// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 20 | /// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 21 | /// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 22 | /// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 23 | /// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 24 | /// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 25 | /// THE SOFTWARE. 26 | /// 27 | /// @file test/gtx/gtx_log_base.cpp 28 | /// @date 2013-10-25 / 2014-11-25 29 | /// @author Christophe Riccio 30 | /////////////////////////////////////////////////////////////////////////////////// 31 | 32 | #include 33 | 34 | int main() 35 | { 36 | int Error(0); 37 | 38 | return Error; 39 | } 40 | -------------------------------------------------------------------------------- /app/src/main/cpp/glm/test/gtx/gtx_matrix_decompose.cpp: -------------------------------------------------------------------------------- 1 | /////////////////////////////////////////////////////////////////////////////////// 2 | /// OpenGL Mathematics (glm.g-truc.net) 3 | /// 4 | /// Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net) 5 | /// Permission is hereby granted, free of charge, to any person obtaining a copy 6 | /// of this software and associated documentation files (the "Software"), to deal 7 | /// in the Software without restriction, including without limitation the rights 8 | /// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | /// copies of the Software, and to permit persons to whom the Software is 10 | /// furnished to do so, subject to the following conditions: 11 | /// 12 | /// The above copyright notice and this permission notice shall be included in 13 | /// all copies or substantial portions of the Software. 14 | /// 15 | /// Restrictions: 16 | /// By making use of the Software for military purposes, you choose to make 17 | /// a Bunny unhappy. 18 | /// 19 | /// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 20 | /// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 21 | /// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 22 | /// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 23 | /// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 24 | /// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 25 | /// THE SOFTWARE. 26 | /// 27 | /// @file test/gtx/gtx_decomposition.cpp 28 | /// @date 2014-08-31 / 2014-11-25 29 | /// @author Christophe Riccio 30 | /////////////////////////////////////////////////////////////////////////////////// 31 | 32 | #include 33 | 34 | int main() 35 | { 36 | int Error(0); 37 | 38 | return Error; 39 | } 40 | -------------------------------------------------------------------------------- /app/src/main/cpp/glm/test/gtx/gtx_matrix_operation.cpp: -------------------------------------------------------------------------------- 1 | /////////////////////////////////////////////////////////////////////////////////// 2 | /// OpenGL Mathematics (glm.g-truc.net) 3 | /// 4 | /// Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net) 5 | /// Permission is hereby granted, free of charge, to any person obtaining a copy 6 | /// of this software and associated documentation files (the "Software"), to deal 7 | /// in the Software without restriction, including without limitation the rights 8 | /// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | /// copies of the Software, and to permit persons to whom the Software is 10 | /// furnished to do so, subject to the following conditions: 11 | /// 12 | /// The above copyright notice and this permission notice shall be included in 13 | /// all copies or substantial portions of the Software. 14 | /// 15 | /// Restrictions: 16 | /// By making use of the Software for military purposes, you choose to make 17 | /// a Bunny unhappy. 18 | /// 19 | /// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 20 | /// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 21 | /// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 22 | /// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 23 | /// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 24 | /// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 25 | /// THE SOFTWARE. 26 | /// 27 | /// @file test/gtx/gtx_matrix_operation.cpp 28 | /// @date 2013-10-25 / 2014-11-25 29 | /// @author Christophe Riccio 30 | /////////////////////////////////////////////////////////////////////////////////// 31 | 32 | #include 33 | 34 | int main() 35 | { 36 | int Error(0); 37 | 38 | return Error; 39 | } 40 | -------------------------------------------------------------------------------- /app/src/main/cpp/glm/test/gtx/gtx_mixed_product.cpp: -------------------------------------------------------------------------------- 1 | /////////////////////////////////////////////////////////////////////////////////////////////////// 2 | // OpenGL Mathematics Copyright (c) 2005 - 2013 G-Truc Creation (www.g-truc.net) 3 | /////////////////////////////////////////////////////////////////////////////////////////////////// 4 | // Created : 2013-10-25 5 | // Updated : 2013-10-25 6 | // Licence : This source is under MIT licence 7 | // File : test/gtx/associated_min_max.cpp 8 | /////////////////////////////////////////////////////////////////////////////////////////////////// 9 | 10 | #include 11 | #include 12 | 13 | int main() 14 | { 15 | int Error(0); 16 | 17 | return Error; 18 | } 19 | -------------------------------------------------------------------------------- /app/src/main/cpp/glm/test/gtx/gtx_norm.cpp: -------------------------------------------------------------------------------- 1 | /////////////////////////////////////////////////////////////////////////////////// 2 | /// OpenGL Mathematics (glm.g-truc.net) 3 | /// 4 | /// Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net) 5 | /// Permission is hereby granted, free of charge, to any person obtaining a copy 6 | /// of this software and associated documentation files (the "Software"), to deal 7 | /// in the Software without restriction, including without limitation the rights 8 | /// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | /// copies of the Software, and to permit persons to whom the Software is 10 | /// furnished to do so, subject to the following conditions: 11 | /// 12 | /// The above copyright notice and this permission notice shall be included in 13 | /// all copies or substantial portions of the Software. 14 | /// 15 | /// Restrictions: 16 | /// By making use of the Software for military purposes, you choose to make 17 | /// a Bunny unhappy. 18 | /// 19 | /// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 20 | /// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 21 | /// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 22 | /// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 23 | /// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 24 | /// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 25 | /// THE SOFTWARE. 26 | /// 27 | /// @file test/gtx/gtx_norm.cpp 28 | /// @date 2013-10-25 / 2014-11-25 29 | /// @author Christophe Riccio 30 | /////////////////////////////////////////////////////////////////////////////////// 31 | 32 | #include 33 | 34 | int main() 35 | { 36 | int Error(0); 37 | 38 | return Error; 39 | } 40 | -------------------------------------------------------------------------------- /app/src/main/cpp/glm/test/gtx/gtx_normal.cpp: -------------------------------------------------------------------------------- 1 | /////////////////////////////////////////////////////////////////////////////////// 2 | /// OpenGL Mathematics (glm.g-truc.net) 3 | /// 4 | /// Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net) 5 | /// Permission is hereby granted, free of charge, to any person obtaining a copy 6 | /// of this software and associated documentation files (the "Software"), to deal 7 | /// in the Software without restriction, including without limitation the rights 8 | /// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | /// copies of the Software, and to permit persons to whom the Software is 10 | /// furnished to do so, subject to the following conditions: 11 | /// 12 | /// The above copyright notice and this permission notice shall be included in 13 | /// all copies or substantial portions of the Software. 14 | /// 15 | /// Restrictions: 16 | /// By making use of the Software for military purposes, you choose to make 17 | /// a Bunny unhappy. 18 | /// 19 | /// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 20 | /// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 21 | /// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 22 | /// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 23 | /// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 24 | /// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 25 | /// THE SOFTWARE. 26 | /// 27 | /// @file test/gtx/gtx_normal.cpp 28 | /// @date 2013-10-25 / 2014-11-25 29 | /// @author Christophe Riccio 30 | /////////////////////////////////////////////////////////////////////////////////// 31 | 32 | #include 33 | 34 | int main() 35 | { 36 | int Error(0); 37 | 38 | return Error; 39 | } 40 | -------------------------------------------------------------------------------- /app/src/main/cpp/glm/test/gtx/gtx_normalize_dot.cpp: -------------------------------------------------------------------------------- 1 | /////////////////////////////////////////////////////////////////////////////////// 2 | /// OpenGL Mathematics (glm.g-truc.net) 3 | /// 4 | /// Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net) 5 | /// Permission is hereby granted, free of charge, to any person obtaining a copy 6 | /// of this software and associated documentation files (the "Software"), to deal 7 | /// in the Software without restriction, including without limitation the rights 8 | /// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | /// copies of the Software, and to permit persons to whom the Software is 10 | /// furnished to do so, subject to the following conditions: 11 | /// 12 | /// The above copyright notice and this permission notice shall be included in 13 | /// all copies or substantial portions of the Software. 14 | /// 15 | /// Restrictions: 16 | /// By making use of the Software for military purposes, you choose to make 17 | /// a Bunny unhappy. 18 | /// 19 | /// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 20 | /// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 21 | /// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 22 | /// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 23 | /// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 24 | /// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 25 | /// THE SOFTWARE. 26 | /// 27 | /// @file test/gtx/gtx_normalize_dot.cpp 28 | /// @date 2013-10-25 / 2014-11-25 29 | /// @author Christophe Riccio 30 | /////////////////////////////////////////////////////////////////////////////////// 31 | 32 | #include 33 | 34 | int main() 35 | { 36 | int Error(0); 37 | 38 | return Error; 39 | } 40 | -------------------------------------------------------------------------------- /app/src/main/cpp/glm/test/gtx/gtx_optimum_pow.cpp: -------------------------------------------------------------------------------- 1 | /////////////////////////////////////////////////////////////////////////////////// 2 | /// OpenGL Mathematics (glm.g-truc.net) 3 | /// 4 | /// Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net) 5 | /// Permission is hereby granted, free of charge, to any person obtaining a copy 6 | /// of this software and associated documentation files (the "Software"), to deal 7 | /// in the Software without restriction, including without limitation the rights 8 | /// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | /// copies of the Software, and to permit persons to whom the Software is 10 | /// furnished to do so, subject to the following conditions: 11 | /// 12 | /// The above copyright notice and this permission notice shall be included in 13 | /// all copies or substantial portions of the Software. 14 | /// 15 | /// Restrictions: 16 | /// By making use of the Software for military purposes, you choose to make 17 | /// a Bunny unhappy. 18 | /// 19 | /// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 20 | /// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 21 | /// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 22 | /// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 23 | /// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 24 | /// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 25 | /// THE SOFTWARE. 26 | /// 27 | /// @file test/gtx/gtx_optimum_pow.cpp 28 | /// @date 2013-10-25 / 2014-11-25 29 | /// @author Christophe Riccio 30 | /////////////////////////////////////////////////////////////////////////////////// 31 | 32 | #include 33 | 34 | int main() 35 | { 36 | int Error(0); 37 | 38 | return Error; 39 | } 40 | -------------------------------------------------------------------------------- /app/src/main/cpp/glm/test/gtx/gtx_orthonormalize.cpp: -------------------------------------------------------------------------------- 1 | /////////////////////////////////////////////////////////////////////////////////// 2 | /// OpenGL Mathematics (glm.g-truc.net) 3 | /// 4 | /// Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net) 5 | /// Permission is hereby granted, free of charge, to any person obtaining a copy 6 | /// of this software and associated documentation files (the "Software"), to deal 7 | /// in the Software without restriction, including without limitation the rights 8 | /// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | /// copies of the Software, and to permit persons to whom the Software is 10 | /// furnished to do so, subject to the following conditions: 11 | /// 12 | /// The above copyright notice and this permission notice shall be included in 13 | /// all copies or substantial portions of the Software. 14 | /// 15 | /// Restrictions: 16 | /// By making use of the Software for military purposes, you choose to make 17 | /// a Bunny unhappy. 18 | /// 19 | /// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 20 | /// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 21 | /// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 22 | /// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 23 | /// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 24 | /// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 25 | /// THE SOFTWARE. 26 | /// 27 | /// @file test/gtx/gtx_orthonormalize.cpp 28 | /// @date 2013-10-25 / 2014-11-25 29 | /// @author Christophe Riccio 30 | /////////////////////////////////////////////////////////////////////////////////// 31 | 32 | #include 33 | 34 | int main() 35 | { 36 | int Error(0); 37 | 38 | return Error; 39 | } 40 | -------------------------------------------------------------------------------- /app/src/main/cpp/glm/test/gtx/gtx_perpendicular.cpp: -------------------------------------------------------------------------------- 1 | /////////////////////////////////////////////////////////////////////////////////// 2 | /// OpenGL Mathematics (glm.g-truc.net) 3 | /// 4 | /// Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net) 5 | /// Permission is hereby granted, free of charge, to any person obtaining a copy 6 | /// of this software and associated documentation files (the "Software"), to deal 7 | /// in the Software without restriction, including without limitation the rights 8 | /// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | /// copies of the Software, and to permit persons to whom the Software is 10 | /// furnished to do so, subject to the following conditions: 11 | /// 12 | /// The above copyright notice and this permission notice shall be included in 13 | /// all copies or substantial portions of the Software. 14 | /// 15 | /// Restrictions: 16 | /// By making use of the Software for military purposes, you choose to make 17 | /// a Bunny unhappy. 18 | /// 19 | /// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 20 | /// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 21 | /// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 22 | /// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 23 | /// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 24 | /// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 25 | /// THE SOFTWARE. 26 | /// 27 | /// @file test/gtx/gtx_perpendicular.cpp 28 | /// @date 2013-10-25 / 2014-11-25 29 | /// @author Christophe Riccio 30 | /////////////////////////////////////////////////////////////////////////////////// 31 | 32 | #include 33 | 34 | int main() 35 | { 36 | int Error(0); 37 | 38 | return Error; 39 | } 40 | -------------------------------------------------------------------------------- /app/src/main/cpp/glm/test/gtx/gtx_projection.cpp: -------------------------------------------------------------------------------- 1 | /////////////////////////////////////////////////////////////////////////////////// 2 | /// OpenGL Mathematics (glm.g-truc.net) 3 | /// 4 | /// Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net) 5 | /// Permission is hereby granted, free of charge, to any person obtaining a copy 6 | /// of this software and associated documentation files (the "Software"), to deal 7 | /// in the Software without restriction, including without limitation the rights 8 | /// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | /// copies of the Software, and to permit persons to whom the Software is 10 | /// furnished to do so, subject to the following conditions: 11 | /// 12 | /// The above copyright notice and this permission notice shall be included in 13 | /// all copies or substantial portions of the Software. 14 | /// 15 | /// Restrictions: 16 | /// By making use of the Software for military purposes, you choose to make 17 | /// a Bunny unhappy. 18 | /// 19 | /// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 20 | /// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 21 | /// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 22 | /// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 23 | /// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 24 | /// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 25 | /// THE SOFTWARE. 26 | /// 27 | /// @file test/gtx/gtx_projection.cpp 28 | /// @date 2013-10-25 / 2014-11-25 29 | /// @author Christophe Riccio 30 | /////////////////////////////////////////////////////////////////////////////////// 31 | 32 | #include 33 | 34 | int main() 35 | { 36 | int Error(0); 37 | 38 | return Error; 39 | } 40 | -------------------------------------------------------------------------------- /app/src/main/cpp/glm/util/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | install(FILES ${CMAKE_CURRENT_SOURCE_DIR}/FindGLM.cmake 2 | DESTINATION ${CMAKE_INSTALL_FULL_LIBDIR}/cmake) 3 | 4 | -------------------------------------------------------------------------------- /app/src/main/cpp/glm/util/autoexp.txt: -------------------------------------------------------------------------------- 1 | [Visualizer] 2 | 3 | glm::detail::tvec2<*>{ 4 | preview ( 5 | #(#($c.x,$c.y)) 6 | ) 7 | children ( 8 | #([x]: $c.x,[y]: $c.y) 9 | ) 10 | } 11 | 12 | glm::detail::tvec3<*>{ 13 | preview ( 14 | #($e.x,$e.y,$e.z) 15 | ) 16 | children ( 17 | #([x]: $e.x,[y]: $e.y,[z]: $e.z) 18 | ) 19 | } 20 | 21 | glm::detail::tvec4<*>{ 22 | preview ( 23 | #($c.x,$c.y,$c.z,$c.w) 24 | ) 25 | children ( 26 | #([x]: $e.x,[y]: $e.y,[z]: $e.z, #([w]: $e.w)) 27 | ) 28 | } 29 | -------------------------------------------------------------------------------- /app/src/main/cpp/include/libavcodec/jni.h: -------------------------------------------------------------------------------- 1 | /* 2 | * JNI public API functions 3 | * 4 | * Copyright (c) 2015-2016 Matthieu Bouron 5 | * 6 | * This file is part of FFmpeg. 7 | * 8 | * FFmpeg is free software; you can redistribute it and/or 9 | * modify it under the terms of the GNU Lesser General Public 10 | * License as published by the Free Software Foundation; either 11 | * version 2.1 of the License, or (at your option) any later version. 12 | * 13 | * FFmpeg is distributed in the hope that it will be useful, 14 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 15 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 16 | * Lesser General Public License for more details. 17 | * 18 | * You should have received a copy of the GNU Lesser General Public 19 | * License along with FFmpeg; if not, write to the Free Software 20 | * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA 21 | */ 22 | 23 | #ifndef AVCODEC_JNI_H 24 | #define AVCODEC_JNI_H 25 | 26 | /* 27 | * Manually set a Java virtual machine which will be used to retrieve the JNI 28 | * environment. Once a Java VM is set it cannot be changed afterwards, meaning 29 | * you can call multiple times av_jni_set_java_vm with the same Java VM pointer 30 | * however it will error out if you try to set a different Java VM. 31 | * 32 | * @param vm Java virtual machine 33 | * @param log_ctx context used for logging, can be NULL 34 | * @return 0 on success, < 0 otherwise 35 | */ 36 | int av_jni_set_java_vm(void *vm, void *log_ctx); 37 | 38 | /* 39 | * Get the Java virtual machine which has been set with av_jni_set_java_vm. 40 | * 41 | * @param vm Java virtual machine 42 | * @return a pointer to the Java virtual machine 43 | */ 44 | void *av_jni_get_java_vm(void *log_ctx); 45 | 46 | #endif /* AVCODEC_JNI_H */ 47 | -------------------------------------------------------------------------------- /app/src/main/cpp/include/libavfilter/avfiltergraph.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Filter graphs 3 | * copyright (c) 2007 Bobby Bingham 4 | * 5 | * This file is part of FFmpeg. 6 | * 7 | * FFmpeg is free software; you can redistribute it and/or 8 | * modify it under the terms of the GNU Lesser General Public 9 | * License as published by the Free Software Foundation; either 10 | * version 2.1 of the License, or (at your option) any later version. 11 | * 12 | * FFmpeg is distributed in the hope that it will be useful, 13 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 14 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 15 | * Lesser General Public License for more details. 16 | * 17 | * You should have received a copy of the GNU Lesser General Public 18 | * License along with FFmpeg; if not, write to the Free Software 19 | * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA 20 | */ 21 | 22 | #ifndef AVFILTER_AVFILTERGRAPH_H 23 | #define AVFILTER_AVFILTERGRAPH_H 24 | 25 | #include "avfilter.h" 26 | #include "libavutil/log.h" 27 | 28 | #endif /* AVFILTER_AVFILTERGRAPH_H */ 29 | -------------------------------------------------------------------------------- /app/src/main/cpp/include/libavutil/avconfig.h: -------------------------------------------------------------------------------- 1 | /* Generated by ffconf */ 2 | #ifndef AVUTIL_AVCONFIG_H 3 | #define AVUTIL_AVCONFIG_H 4 | #define AV_HAVE_BIGENDIAN 0 5 | #define AV_HAVE_FAST_UNALIGNED 1 6 | #endif /* AVUTIL_AVCONFIG_H */ 7 | -------------------------------------------------------------------------------- /app/src/main/cpp/include/libavutil/ffversion.h: -------------------------------------------------------------------------------- 1 | /* Automatically generated by version.sh, do not manually edit! */ 2 | #ifndef AVUTIL_FFVERSION_H 3 | #define AVUTIL_FFVERSION_H 4 | #define FFMPEG_VERSION "3.4" 5 | #endif /* AVUTIL_FFVERSION_H */ 6 | -------------------------------------------------------------------------------- /app/src/main/cpp/include/libavutil/hwcontext_cuda.h: -------------------------------------------------------------------------------- 1 | /* 2 | * This file is part of FFmpeg. 3 | * 4 | * FFmpeg is free software; you can redistribute it and/or 5 | * modify it under the terms of the GNU Lesser General Public 6 | * License as published by the Free Software Foundation; either 7 | * version 2.1 of the License, or (at your option) any later version. 8 | * 9 | * FFmpeg is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 12 | * Lesser General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU Lesser General Public 15 | * License along with FFmpeg; if not, write to the Free Software 16 | * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA 17 | */ 18 | 19 | 20 | #ifndef AVUTIL_HWCONTEXT_CUDA_H 21 | #define AVUTIL_HWCONTEXT_CUDA_H 22 | 23 | #ifndef CUDA_VERSION 24 | #include 25 | #endif 26 | 27 | #include "pixfmt.h" 28 | 29 | /** 30 | * @file 31 | * An API-specific header for AV_HWDEVICE_TYPE_CUDA. 32 | * 33 | * This API supports dynamic frame pools. AVHWFramesContext.pool must return 34 | * AVBufferRefs whose data pointer is a CUdeviceptr. 35 | */ 36 | 37 | typedef struct AVCUDADeviceContextInternal AVCUDADeviceContextInternal; 38 | 39 | /** 40 | * This struct is allocated as AVHWDeviceContext.hwctx 41 | */ 42 | typedef struct AVCUDADeviceContext { 43 | CUcontext cuda_ctx; 44 | AVCUDADeviceContextInternal *internal; 45 | } AVCUDADeviceContext; 46 | 47 | /** 48 | * AVHWFramesContext.hwctx is currently not used 49 | */ 50 | 51 | #endif /* AVUTIL_HWCONTEXT_CUDA_H */ 52 | -------------------------------------------------------------------------------- /app/src/main/cpp/include/libavutil/hwcontext_qsv.h: -------------------------------------------------------------------------------- 1 | /* 2 | * This file is part of FFmpeg. 3 | * 4 | * FFmpeg is free software; you can redistribute it and/or 5 | * modify it under the terms of the GNU Lesser General Public 6 | * License as published by the Free Software Foundation; either 7 | * version 2.1 of the License, or (at your option) any later version. 8 | * 9 | * FFmpeg is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 12 | * Lesser General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU Lesser General Public 15 | * License along with FFmpeg; if not, write to the Free Software 16 | * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA 17 | */ 18 | 19 | #ifndef AVUTIL_HWCONTEXT_QSV_H 20 | #define AVUTIL_HWCONTEXT_QSV_H 21 | 22 | #include 23 | 24 | /** 25 | * @file 26 | * An API-specific header for AV_HWDEVICE_TYPE_QSV. 27 | * 28 | * This API does not support dynamic frame pools. AVHWFramesContext.pool must 29 | * contain AVBufferRefs whose data pointer points to an mfxFrameSurface1 struct. 30 | */ 31 | 32 | /** 33 | * This struct is allocated as AVHWDeviceContext.hwctx 34 | */ 35 | typedef struct AVQSVDeviceContext { 36 | mfxSession session; 37 | } AVQSVDeviceContext; 38 | 39 | /** 40 | * This struct is allocated as AVHWFramesContext.hwctx 41 | */ 42 | typedef struct AVQSVFramesContext { 43 | mfxFrameSurface1 *surfaces; 44 | int nb_surfaces; 45 | 46 | /** 47 | * A combination of MFX_MEMTYPE_* describing the frame pool. 48 | */ 49 | int frame_type; 50 | } AVQSVFramesContext; 51 | 52 | #endif /* AVUTIL_HWCONTEXT_QSV_H */ 53 | 54 | -------------------------------------------------------------------------------- /app/src/main/cpp/include/libavutil/hwcontext_vdpau.h: -------------------------------------------------------------------------------- 1 | /* 2 | * This file is part of FFmpeg. 3 | * 4 | * FFmpeg is free software; you can redistribute it and/or 5 | * modify it under the terms of the GNU Lesser General Public 6 | * License as published by the Free Software Foundation; either 7 | * version 2.1 of the License, or (at your option) any later version. 8 | * 9 | * FFmpeg is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 12 | * Lesser General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU Lesser General Public 15 | * License along with FFmpeg; if not, write to the Free Software 16 | * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA 17 | */ 18 | 19 | #ifndef AVUTIL_HWCONTEXT_VDPAU_H 20 | #define AVUTIL_HWCONTEXT_VDPAU_H 21 | 22 | #include 23 | 24 | /** 25 | * @file 26 | * An API-specific header for AV_HWDEVICE_TYPE_VDPAU. 27 | * 28 | * This API supports dynamic frame pools. AVHWFramesContext.pool must return 29 | * AVBufferRefs whose data pointer is a VdpVideoSurface. 30 | */ 31 | 32 | /** 33 | * This struct is allocated as AVHWDeviceContext.hwctx 34 | */ 35 | typedef struct AVVDPAUDeviceContext { 36 | VdpDevice device; 37 | VdpGetProcAddress *get_proc_address; 38 | } AVVDPAUDeviceContext; 39 | 40 | /** 41 | * AVHWFramesContext.hwctx is currently not used 42 | */ 43 | 44 | #endif /* AVUTIL_HWCONTEXT_VDPAU_H */ 45 | -------------------------------------------------------------------------------- /app/src/main/cpp/include/libavutil/macros.h: -------------------------------------------------------------------------------- 1 | /* 2 | * This file is part of FFmpeg. 3 | * 4 | * FFmpeg is free software; you can redistribute it and/or 5 | * modify it under the terms of the GNU Lesser General Public 6 | * License as published by the Free Software Foundation; either 7 | * version 2.1 of the License, or (at your option) any later version. 8 | * 9 | * FFmpeg is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 12 | * Lesser General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU Lesser General Public 15 | * License along with FFmpeg; if not, write to the Free Software 16 | * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA 17 | */ 18 | 19 | /** 20 | * @file 21 | * @ingroup lavu 22 | * Utility Preprocessor macros 23 | */ 24 | 25 | #ifndef AVUTIL_MACROS_H 26 | #define AVUTIL_MACROS_H 27 | 28 | /** 29 | * @addtogroup preproc_misc Preprocessor String Macros 30 | * 31 | * String manipulation macros 32 | * 33 | * @{ 34 | */ 35 | 36 | #define AV_STRINGIFY(s) AV_TOSTRING(s) 37 | #define AV_TOSTRING(s) #s 38 | 39 | #define AV_GLUE(a, b) a ## b 40 | #define AV_JOIN(a, b) AV_GLUE(a, b) 41 | 42 | /** 43 | * @} 44 | */ 45 | 46 | #define AV_PRAGMA(s) _Pragma(#s) 47 | 48 | #define FFALIGN(x, a) (((x)+(a)-1)&~((a)-1)) 49 | 50 | #endif /* AVUTIL_MACROS_H */ 51 | -------------------------------------------------------------------------------- /app/src/main/cpp/include/libavutil/random_seed.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2009 Baptiste Coudurier 3 | * 4 | * This file is part of FFmpeg. 5 | * 6 | * FFmpeg is free software; you can redistribute it and/or 7 | * modify it under the terms of the GNU Lesser General Public 8 | * License as published by the Free Software Foundation; either 9 | * version 2.1 of the License, or (at your option) any later version. 10 | * 11 | * FFmpeg is distributed in the hope that it will be useful, 12 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 14 | * Lesser General Public License for more details. 15 | * 16 | * You should have received a copy of the GNU Lesser General Public 17 | * License along with FFmpeg; if not, write to the Free Software 18 | * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA 19 | */ 20 | 21 | #ifndef AVUTIL_RANDOM_SEED_H 22 | #define AVUTIL_RANDOM_SEED_H 23 | 24 | #include 25 | /** 26 | * @addtogroup lavu_crypto 27 | * @{ 28 | */ 29 | 30 | /** 31 | * Get a seed to use in conjunction with random functions. 32 | * This function tries to provide a good seed at a best effort bases. 33 | * Its possible to call this function multiple times if more bits are needed. 34 | * It can be quite slow, which is why it should only be used as seed for a faster 35 | * PRNG. The quality of the seed depends on the platform. 36 | */ 37 | uint32_t av_get_random_seed(void); 38 | 39 | /** 40 | * @} 41 | */ 42 | 43 | #endif /* AVUTIL_RANDOM_SEED_H */ 44 | -------------------------------------------------------------------------------- /app/src/main/cpp/include/libavutil/replaygain.h: -------------------------------------------------------------------------------- 1 | /* 2 | * This file is part of FFmpeg. 3 | * 4 | * FFmpeg is free software; you can redistribute it and/or 5 | * modify it under the terms of the GNU Lesser General Public 6 | * License as published by the Free Software Foundation; either 7 | * version 2.1 of the License, or (at your option) any later version. 8 | * 9 | * FFmpeg is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 12 | * Lesser General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU Lesser General Public 15 | * License along with FFmpeg; if not, write to the Free Software 16 | * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA 17 | */ 18 | 19 | #ifndef AVUTIL_REPLAYGAIN_H 20 | #define AVUTIL_REPLAYGAIN_H 21 | 22 | #include 23 | 24 | /** 25 | * ReplayGain information (see 26 | * http://wiki.hydrogenaudio.org/index.php?title=ReplayGain_1.0_specification). 27 | * The size of this struct is a part of the public ABI. 28 | */ 29 | typedef struct AVReplayGain { 30 | /** 31 | * Track replay gain in microbels (divide by 100000 to get the value in dB). 32 | * Should be set to INT32_MIN when unknown. 33 | */ 34 | int32_t track_gain; 35 | /** 36 | * Peak track amplitude, with 100000 representing full scale (but values 37 | * may overflow). 0 when unknown. 38 | */ 39 | uint32_t track_peak; 40 | /** 41 | * Same as track_gain, but for the whole album. 42 | */ 43 | int32_t album_gain; 44 | /** 45 | * Same as track_peak, but for the whole album, 46 | */ 47 | uint32_t album_peak; 48 | } AVReplayGain; 49 | 50 | #endif /* AVUTIL_REPLAYGAIN_H */ 51 | -------------------------------------------------------------------------------- /app/src/main/cpp/libs/armeabi-v7a/libavcodec.so: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yishuinanfeng/UnitedPlayer/83bb11db7603633c5b634d49eafa1d05957fbb11/app/src/main/cpp/libs/armeabi-v7a/libavcodec.so -------------------------------------------------------------------------------- /app/src/main/cpp/libs/armeabi-v7a/libavfilter.so: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yishuinanfeng/UnitedPlayer/83bb11db7603633c5b634d49eafa1d05957fbb11/app/src/main/cpp/libs/armeabi-v7a/libavfilter.so -------------------------------------------------------------------------------- /app/src/main/cpp/libs/armeabi-v7a/libavformat.so: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yishuinanfeng/UnitedPlayer/83bb11db7603633c5b634d49eafa1d05957fbb11/app/src/main/cpp/libs/armeabi-v7a/libavformat.so -------------------------------------------------------------------------------- /app/src/main/cpp/libs/armeabi-v7a/libavutil.so: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yishuinanfeng/UnitedPlayer/83bb11db7603633c5b634d49eafa1d05957fbb11/app/src/main/cpp/libs/armeabi-v7a/libavutil.so -------------------------------------------------------------------------------- /app/src/main/cpp/libs/armeabi-v7a/libswresample.so: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yishuinanfeng/UnitedPlayer/83bb11db7603633c5b634d49eafa1d05957fbb11/app/src/main/cpp/libs/armeabi-v7a/libswresample.so -------------------------------------------------------------------------------- /app/src/main/cpp/libs/armeabi-v7a/libswscale.so: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yishuinanfeng/UnitedPlayer/83bb11db7603633c5b634d49eafa1d05957fbb11/app/src/main/cpp/libs/armeabi-v7a/libswscale.so -------------------------------------------------------------------------------- /app/src/main/java/com/man/manchesterunitedplayer/FilterAdapter.kt: -------------------------------------------------------------------------------- 1 | package com.man.manchesterunitedplayer 2 | 3 | import android.content.Context 4 | import android.view.LayoutInflater 5 | import android.view.View 6 | import android.view.ViewGroup 7 | import android.widget.TextView 8 | import androidx.recyclerview.widget.RecyclerView 9 | import com.man.manchesterunitedplayer.bean.FilterBean 10 | 11 | class FilterAdapter(val context: Context, val filterList: List, val onFilterSelect: (Int) -> Unit) : RecyclerView.Adapter() { 12 | 13 | override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): FilterViewHolder { 14 | val view = LayoutInflater.from(context).inflate(R.layout.item_filter_list, parent, false) 15 | return FilterViewHolder(view) 16 | } 17 | 18 | override fun getItemCount(): Int { 19 | return filterList.size 20 | } 21 | 22 | override fun onBindViewHolder(holder: FilterViewHolder, position: Int) { 23 | holder.tvFilter.text = filterList[position].filterName 24 | holder.itemView.setOnClickListener { 25 | onFilterSelect.invoke(position) 26 | } 27 | } 28 | 29 | 30 | class FilterViewHolder(view: View) : RecyclerView.ViewHolder(view) { 31 | val tvFilter = view.findViewById(R.id.tv_filter) 32 | 33 | } 34 | } -------------------------------------------------------------------------------- /app/src/main/java/com/man/manchesterunitedplayer/FilterType.kt: -------------------------------------------------------------------------------- 1 | package com.man.manchesterunitedplayer 2 | 3 | const val OPPOSITE_COLOR = 1//反色 4 | const val GRAY = 2 //灰度图 5 | const val SPLASH = 3//闪白 6 | const val SCALE = 4 //闪白 7 | const val SOUL = 5 //灵魂出窍 8 | const val SHAKE = 6 //抖动 -------------------------------------------------------------------------------- /app/src/main/java/com/man/manchesterunitedplayer/Key.kt: -------------------------------------------------------------------------------- 1 | package com.man.manchesterunitedplayer 2 | 3 | const val KEY_INTENT_VIDEO_PATH= "video_path" -------------------------------------------------------------------------------- /app/src/main/java/com/man/manchesterunitedplayer/bean/FilterBean.kt: -------------------------------------------------------------------------------- 1 | package com.man.manchesterunitedplayer.bean 2 | 3 | data class FilterBean(val filterType:Int,val filterName:String) -------------------------------------------------------------------------------- /app/src/main/java/com/man/manchesterunitedplayer/playlist/PlayListAdapter.kt: -------------------------------------------------------------------------------- 1 | package com.man.manchesterunitedplayer.playlist 2 | 3 | import android.content.Intent 4 | import android.view.View 5 | import android.view.ViewGroup 6 | import androidx.recyclerview.widget.RecyclerView 7 | import android.view.LayoutInflater 8 | import android.widget.ImageView 9 | import android.widget.TextView 10 | import com.man.manchesterunitedplayer.R 11 | 12 | /** 13 | * 播放列表Adapter 14 | */ 15 | class PlayListAdapter(private val videoList: List, private val onItemClick: ((String) -> Unit)? = null) : RecyclerView.Adapter() { 16 | 17 | override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): PlayVideoHolder { 18 | val view = LayoutInflater.from(parent.context).inflate(R.layout.item_play_list, parent, false) 19 | return PlayVideoHolder(view) 20 | } 21 | 22 | override fun getItemCount(): Int { 23 | return videoList.size 24 | } 25 | 26 | override fun onBindViewHolder(holder: PlayVideoHolder, position: Int) { 27 | val videoBean = videoList[position] 28 | holder.imgVideoThumb.setImageBitmap(videoBean.videoThumb) 29 | holder.tvVideoName.text = videoBean.videoName 30 | holder.itemView.setOnClickListener { 31 | onItemClick?.invoke(videoBean.filePath) 32 | } 33 | } 34 | 35 | class PlayVideoHolder(val view: View) : RecyclerView.ViewHolder(view) { 36 | 37 | val tvVideoName = view.findViewById(R.id.tv_video_name) 38 | val imgVideoThumb = view.findViewById(R.id.video_thumb) 39 | 40 | } 41 | } 42 | 43 | -------------------------------------------------------------------------------- /app/src/main/java/com/man/manchesterunitedplayer/playlist/VideoBean.kt: -------------------------------------------------------------------------------- 1 | package com.man.manchesterunitedplayer.playlist 2 | 3 | import android.graphics.Bitmap 4 | 5 | data class VideoBean(val filePath: String, val videoThumb: Bitmap, val videoName: String) 6 | -------------------------------------------------------------------------------- /app/src/main/java/com/man/manchesterunitedplayer/util/MachineUtil.kt: -------------------------------------------------------------------------------- 1 | package com.man.manchesterunitedplayer.util 2 | 3 | import android.content.Context 4 | import android.graphics.Point 5 | import android.view.WindowManager 6 | import kotlin.math.roundToInt 7 | 8 | /** 9 | * @return 设备高度 10 | */ 11 | fun getScreenHeight(context: Context): Int { 12 | val manager = context.getSystemService(Context.WINDOW_SERVICE) as WindowManager 13 | val display = manager.defaultDisplay 14 | val p = Point() 15 | display.getRealSize(p) 16 | return p.y 17 | } 18 | 19 | /** 20 | * @return 设备宽度 21 | */ 22 | fun getScreenWidth(context: Context): Int { 23 | val manager = context.getSystemService(Context.WINDOW_SERVICE) as WindowManager 24 | val display = manager.defaultDisplay 25 | val p = Point() 26 | display.getRealSize(p) 27 | return p.x 28 | } 29 | 30 | /** 31 | * dp to px 32 | */ 33 | fun dp2px(context: Context,dp: Float): Int { 34 | return (context.resources.displayMetrics.density * dp).roundToInt() 35 | } -------------------------------------------------------------------------------- /app/src/main/res/drawable/bg_filter_btn.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/bg_pause_btn.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 6 | 7 | -------------------------------------------------------------------------------- /app/src/main/res/layout/activity_main.xml: -------------------------------------------------------------------------------- 1 | 2 | 7 | 8 | 19 | 20 | 31 | 32 | -------------------------------------------------------------------------------- /app/src/main/res/layout/activity_play_list.xml: -------------------------------------------------------------------------------- 1 | 2 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 23 | 24 | -------------------------------------------------------------------------------- /app/src/main/res/layout/item_filter_list.xml: -------------------------------------------------------------------------------- 1 | 2 | 8 | 9 | 18 | 19 | -------------------------------------------------------------------------------- /app/src/main/res/layout/item_play_list.xml: -------------------------------------------------------------------------------- 1 | 2 | 8 | 9 | 17 | 18 | 28 | 29 | -------------------------------------------------------------------------------- /app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /app/src/main/res/mipmap-hdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yishuinanfeng/UnitedPlayer/83bb11db7603633c5b634d49eafa1d05957fbb11/app/src/main/res/mipmap-hdpi/ic_launcher.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-hdpi/ic_launcher_round.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yishuinanfeng/UnitedPlayer/83bb11db7603633c5b634d49eafa1d05957fbb11/app/src/main/res/mipmap-hdpi/ic_launcher_round.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-mdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yishuinanfeng/UnitedPlayer/83bb11db7603633c5b634d49eafa1d05957fbb11/app/src/main/res/mipmap-mdpi/ic_launcher.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-mdpi/ic_launcher_round.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yishuinanfeng/UnitedPlayer/83bb11db7603633c5b634d49eafa1d05957fbb11/app/src/main/res/mipmap-mdpi/ic_launcher_round.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-xhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yishuinanfeng/UnitedPlayer/83bb11db7603633c5b634d49eafa1d05957fbb11/app/src/main/res/mipmap-xhdpi/ic_launcher.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-xhdpi/ic_launcher_round.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yishuinanfeng/UnitedPlayer/83bb11db7603633c5b634d49eafa1d05957fbb11/app/src/main/res/mipmap-xhdpi/ic_launcher_round.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-xxhdpi/ic_defualt_video.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yishuinanfeng/UnitedPlayer/83bb11db7603633c5b634d49eafa1d05957fbb11/app/src/main/res/mipmap-xxhdpi/ic_defualt_video.jpg -------------------------------------------------------------------------------- /app/src/main/res/mipmap-xxhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yishuinanfeng/UnitedPlayer/83bb11db7603633c5b634d49eafa1d05957fbb11/app/src/main/res/mipmap-xxhdpi/ic_launcher.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-xxhdpi/ic_launcher_round.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yishuinanfeng/UnitedPlayer/83bb11db7603633c5b634d49eafa1d05957fbb11/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-xxxhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yishuinanfeng/UnitedPlayer/83bb11db7603633c5b634d49eafa1d05957fbb11/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yishuinanfeng/UnitedPlayer/83bb11db7603633c5b634d49eafa1d05957fbb11/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png -------------------------------------------------------------------------------- /app/src/main/res/values/colors.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | #008577 4 | #00574B 5 | #D81B60 6 | 7 | -------------------------------------------------------------------------------- /app/src/main/res/values/strings.xml: -------------------------------------------------------------------------------- 1 | 2 | ManchesterUnitedPlayer 3 | 4 | -------------------------------------------------------------------------------- /app/src/main/res/values/styles.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /app/src/test/java/com/man/manchesterunitedplayer/ExampleUnitTest.java: -------------------------------------------------------------------------------- 1 | package com.man.manchesterunitedplayer; 2 | 3 | import org.junit.Test; 4 | 5 | import static org.junit.Assert.*; 6 | 7 | /** 8 | * Example local unit test, which will execute on the development machine (host). 9 | * 10 | * @see Testing documentation 11 | */ 12 | public class ExampleUnitTest { 13 | @Test 14 | public void addition_isCorrect() { 15 | assertEquals(4, 2 + 2); 16 | } 17 | } -------------------------------------------------------------------------------- /gif/gray.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yishuinanfeng/UnitedPlayer/83bb11db7603633c5b634d49eafa1d05957fbb11/gif/gray.gif -------------------------------------------------------------------------------- /gif/oppoColor.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yishuinanfeng/UnitedPlayer/83bb11db7603633c5b634d49eafa1d05957fbb11/gif/oppoColor.gif -------------------------------------------------------------------------------- /gif/play.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yishuinanfeng/UnitedPlayer/83bb11db7603633c5b634d49eafa1d05957fbb11/gif/play.jpg -------------------------------------------------------------------------------- /gif/playProgress.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yishuinanfeng/UnitedPlayer/83bb11db7603633c5b634d49eafa1d05957fbb11/gif/playProgress.jpg -------------------------------------------------------------------------------- /gif/record.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yishuinanfeng/UnitedPlayer/83bb11db7603633c5b634d49eafa1d05957fbb11/gif/record.jpg -------------------------------------------------------------------------------- /gif/scale.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yishuinanfeng/UnitedPlayer/83bb11db7603633c5b634d49eafa1d05957fbb11/gif/scale.gif -------------------------------------------------------------------------------- /gif/shake.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yishuinanfeng/UnitedPlayer/83bb11db7603633c5b634d49eafa1d05957fbb11/gif/shake.gif -------------------------------------------------------------------------------- /gif/soul.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yishuinanfeng/UnitedPlayer/83bb11db7603633c5b634d49eafa1d05957fbb11/gif/soul.gif -------------------------------------------------------------------------------- /gif/splash.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yishuinanfeng/UnitedPlayer/83bb11db7603633c5b634d49eafa1d05957fbb11/gif/splash.gif -------------------------------------------------------------------------------- /gradle.properties: -------------------------------------------------------------------------------- 1 | # Project-wide Gradle settings. 2 | # IDE (e.g. Android Studio) users: 3 | # Gradle settings configured through the IDE *will override* 4 | # any settings specified in this file. 5 | # For more details on how to configure your build environment visit 6 | # http://www.gradle.org/docs/current/userguide/build_environment.html 7 | # Specifies the JVM arguments used for the daemon process. 8 | # The setting is particularly useful for tweaking memory settings. 9 | org.gradle.jvmargs=-Xmx1536m 10 | # When configured, Gradle will run in incubating parallel mode. 11 | # This option should only be used with decoupled projects. More details, visit 12 | # http://www.gradle.org/docs/current/userguide/multi_project_builds.html#sec:decoupled_projects 13 | # org.gradle.parallel=true 14 | # AndroidX package structure to make it clearer which packages are bundled with the 15 | # Android operating system, and which are packaged with your app's APK 16 | # https://developer.android.com/topic/libraries/support-library/androidx-rn 17 | android.useAndroidX=true 18 | # Automatically convert third-party libraries to use AndroidX 19 | android.enableJetifier=true 20 | 21 | -------------------------------------------------------------------------------- /gradle/wrapper/gradle-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yishuinanfeng/UnitedPlayer/83bb11db7603633c5b634d49eafa1d05957fbb11/gradle/wrapper/gradle-wrapper.jar -------------------------------------------------------------------------------- /gradle/wrapper/gradle-wrapper.properties: -------------------------------------------------------------------------------- 1 | #Sat Aug 24 17:57:09 CST 2019 2 | distributionBase=GRADLE_USER_HOME 3 | distributionPath=wrapper/dists 4 | zipStoreBase=GRADLE_USER_HOME 5 | zipStorePath=wrapper/dists 6 | distributionUrl=https\://services.gradle.org/distributions/gradle-5.4.1-all.zip 7 | -------------------------------------------------------------------------------- /record/.gitignore: -------------------------------------------------------------------------------- 1 | /build 2 | -------------------------------------------------------------------------------- /record/build.gradle: -------------------------------------------------------------------------------- 1 | apply plugin: 'com.android.library' 2 | apply plugin: 'kotlin-android' 3 | apply plugin: 'kotlin-android-extensions' 4 | android { 5 | compileSdkVersion 28 6 | 7 | defaultConfig { 8 | minSdkVersion 19 9 | targetSdkVersion 28 10 | versionCode 1 11 | versionName "1.0" 12 | 13 | testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" 14 | consumerProguardFiles 'consumer-rules.pro' 15 | 16 | } 17 | 18 | buildTypes { 19 | release { 20 | minifyEnabled false 21 | proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro' 22 | } 23 | } 24 | externalNativeBuild { 25 | cmake { 26 | path file('CMakeLists.txt') 27 | } 28 | } 29 | 30 | } 31 | 32 | dependencies { 33 | implementation fileTree(dir: 'libs', include: ['*.jar']) 34 | implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version" 35 | implementation 'com.android.support:appcompat-v7:26.0.0' 36 | implementation 'ywl.ywl5320:libmusic:1.2.0' 37 | testImplementation 'junit:junit:4.12' 38 | androidTestImplementation 'androidx.test.ext:junit:1.1.1' 39 | androidTestImplementation 'androidx.test.espresso:espresso-core:3.2.0' 40 | } 41 | -------------------------------------------------------------------------------- /record/consumer-rules.pro: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yishuinanfeng/UnitedPlayer/83bb11db7603633c5b634d49eafa1d05957fbb11/record/consumer-rules.pro -------------------------------------------------------------------------------- /record/proguard-rules.pro: -------------------------------------------------------------------------------- 1 | # Add project specific ProGuard rules here. 2 | # You can control the set of applied configuration files using the 3 | # proguardFiles setting in build.gradle. 4 | # 5 | # For more details, see 6 | # http://developer.android.com/guide/developing/tools/proguard.html 7 | 8 | # If your project uses WebView with JS, uncomment the following 9 | # and specify the fully qualified class name to the JavaScript interface 10 | # class: 11 | #-keepclassmembers class fqcn.of.javascript.interface.for.webview { 12 | # public *; 13 | #} 14 | 15 | # Uncomment this to preserve the line number information for 16 | # debugging stack traces. 17 | #-keepattributes SourceFile,LineNumberTable 18 | 19 | # If you keep the line number information, uncomment this to 20 | # hide the original source file name. 21 | #-renamesourcefileattribute SourceFile 22 | -------------------------------------------------------------------------------- /record/src/androidTest/java/com/haha/record/ExampleInstrumentedTest.kt: -------------------------------------------------------------------------------- 1 | package com.haha.record 2 | 3 | import androidx.test.platform.app.InstrumentationRegistry 4 | import androidx.test.ext.junit.runners.AndroidJUnit4 5 | 6 | import org.junit.Test 7 | import org.junit.runner.RunWith 8 | 9 | import org.junit.Assert.* 10 | 11 | /** 12 | * Instrumented test, which will execute on an Android device. 13 | * 14 | * See [testing documentation](http://d.android.com/tools/testing). 15 | */ 16 | @RunWith(AndroidJUnit4::class) 17 | class ExampleInstrumentedTest { 18 | @Test 19 | fun useAppContext() { 20 | // Context of the app under test. 21 | val appContext = InstrumentationRegistry.getInstrumentation().targetContext 22 | assertEquals("com.haha.record.test", appContext.packageName) 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /record/src/main/AndroidManifest.xml: -------------------------------------------------------------------------------- 1 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /record/src/main/cpp/RecordBuffer.cpp: -------------------------------------------------------------------------------- 1 | // 2 | // Created by yanxi on 2019/12/14. 3 | // 4 | 5 | #include "RecordBuffer.h" 6 | 7 | RecordBuffer::RecordBuffer(int bufferSize) { 8 | //两个Buffer,一个用来显示声音,一个用来处理数据 9 | buffer = new short *[2]; 10 | for (int i = 0; i < 2; ++i) { 11 | buffer[i] = new short[bufferSize]; 12 | } 13 | } 14 | 15 | RecordBuffer::~RecordBuffer() { 16 | for (int i = 0; i < 2; ++i) { 17 | delete buffer[i]; 18 | } 19 | } 20 | 21 | short *RecordBuffer::getRecordBuffer() { 22 | index++; 23 | if (index > 1) { 24 | index = 1; 25 | } 26 | return buffer[index]; 27 | } 28 | 29 | short *RecordBuffer::getNowBuffer() { 30 | return buffer[index]; 31 | } 32 | -------------------------------------------------------------------------------- /record/src/main/cpp/RecordBuffer.h: -------------------------------------------------------------------------------- 1 | // 2 | // Created by yanxi on 2019/12/14. 3 | // 4 | 5 | #ifndef OPENSLRECORDER_RECORDBUFFER_H 6 | #define OPENSLRECORDER_RECORDBUFFER_H 7 | 8 | 9 | class RecordBuffer { 10 | 11 | public: 12 | short **buffer; 13 | int index = -1; 14 | 15 | RecordBuffer(int bufferSize); 16 | ~RecordBuffer(); 17 | 18 | short *getRecordBuffer(); 19 | 20 | short *getNowBuffer(); 21 | }; 22 | 23 | 24 | #endif //OPENSLRECORDER_RECORDBUFFER_H 25 | -------------------------------------------------------------------------------- /record/src/main/java/com/haha/record/Config.kt: -------------------------------------------------------------------------------- 1 | package com.haha.record 2 | 3 | import android.os.Environment 4 | 5 | fun getVideoParentPath(): String? { 6 | if (Environment.getExternalStorageState() != Environment.MEDIA_MOUNTED) { 7 | return null 8 | } 9 | return "${Environment.getExternalStorageDirectory().path}/unitedPlayer" 10 | } -------------------------------------------------------------------------------- /record/src/main/java/com/haha/record/encodec/MediaEncoder.kt: -------------------------------------------------------------------------------- 1 | package com.haha.record.encodec 2 | 3 | import android.content.Context 4 | 5 | class MediaEncoder(context: Context,textureId:Int): BaseMediaEncoder(context) { 6 | 7 | private val mediaEncodeRender: MediaEncodeRender = MediaEncodeRender(context,textureId) 8 | 9 | init { 10 | setRender(mediaEncodeRender) 11 | setRenderMode(RENDERMODE_CONTINUOUSLY) 12 | } 13 | } -------------------------------------------------------------------------------- /record/src/main/java/com/haha/record/util/DisplayUtil.java: -------------------------------------------------------------------------------- 1 | package com.haha.record.util; 2 | 3 | import android.content.Context; 4 | import android.util.DisplayMetrics; 5 | 6 | public class DisplayUtil { 7 | 8 | public static int getScreenWidth(Context context) 9 | { 10 | DisplayMetrics metric = context.getResources().getDisplayMetrics(); 11 | return metric.widthPixels; 12 | } 13 | 14 | public static int getScreenHeight(Context context) 15 | { 16 | DisplayMetrics metric = context.getResources().getDisplayMetrics(); 17 | return metric.heightPixels; 18 | } 19 | 20 | } 21 | -------------------------------------------------------------------------------- /record/src/main/res/layout/activity_video.xml: -------------------------------------------------------------------------------- 1 | 2 | 5 | 6 | 10 | 11 |