├── .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 |
18 |
19 |
--------------------------------------------------------------------------------
/record/src/main/res/raw/fragment_shader.glsl:
--------------------------------------------------------------------------------
1 | #extension GL_OES_EGL_image_external : require
2 | precision mediump float;
3 | varying vec2 v_texPo;
4 | uniform samplerExternalOES sTexture;
5 | void main() {
6 | gl_FragColor=texture2D(sTexture, v_texPo);
7 | }
8 |
--------------------------------------------------------------------------------
/record/src/main/res/raw/fragment_shader1.glsl:
--------------------------------------------------------------------------------
1 | precision mediump float;
2 | varying vec2 v_texPo;
3 | uniform sampler2D sTexture;
4 | void main() {
5 | gl_FragColor = vec4(vec3(1.0 - texture2D(sTexture, v_texPo)), 1.0);
6 | }
7 |
--------------------------------------------------------------------------------
/record/src/main/res/raw/fragment_shader2.glsl:
--------------------------------------------------------------------------------
1 | precision mediump float;
2 | varying vec2 v_texPo;
3 | uniform sampler2D sTexture;
4 | void main() {
5 | lowp vec4 textureColor = texture2D(sTexture, v_texPo);
6 | float gray = textureColor.r * 0.2125 + textureColor.g * 0.7154 + textureColor.b * 0.0721;
7 | gl_FragColor = vec4(gray, gray, gray, textureColor.w);
8 | }
9 |
--------------------------------------------------------------------------------
/record/src/main/res/raw/fragment_shader3.glsl:
--------------------------------------------------------------------------------
1 | precision mediump float;
2 | varying vec2 v_texPo;
3 | uniform sampler2D sTexture;
4 | void main() {
5 | lowp vec4 textureColor = texture2D(sTexture, v_texPo);
6 | gl_FragColor = vec4((textureColor.rgb + vec3(-0.5f)), textureColor.w);
7 | }
8 |
--------------------------------------------------------------------------------
/record/src/main/res/raw/fragment_shader_screen.glsl:
--------------------------------------------------------------------------------
1 | precision mediump float;
2 | varying vec2 v_texPo;
3 | uniform sampler2D sTexture;
4 | void main() {
5 | gl_FragColor=texture2D(sTexture, v_texPo);
6 | }
7 |
--------------------------------------------------------------------------------
/record/src/main/res/raw/fragment_shader_yuv.glsl:
--------------------------------------------------------------------------------
1 | precision mediump float;
2 | varying vec2 v_texPo;
3 | uniform sampler2D sampler_y;
4 | uniform sampler2D sampler_u;
5 | uniform sampler2D sampler_v;
6 | void main() {
7 | float y,u,v;
8 | //因为这里sampler_y是单通道(灰度)的,所以得到的结果vec的xyz都是一样的值?
9 | y = texture2D(sampler_y,v_texPo).x;
10 | u = texture2D(sampler_u,v_texPo).x- 128./255.;
11 | v = texture2D(sampler_v,v_texPo).x- 128./255.;
12 |
13 | vec3 rgb;
14 | rgb.r = y + 1.403 * v;
15 | rgb.g = y - 0.344 * u - 0.714 * v;
16 | rgb.b = y + 1.770 * u;
17 |
18 | gl_FragColor = vec4(rgb,1);
19 | }
20 |
21 |
--------------------------------------------------------------------------------
/record/src/main/res/raw/vertex_shader.glsl:
--------------------------------------------------------------------------------
1 | attribute vec4 av_Position;//顶点坐标
2 | attribute vec2 af_Position;//纹理坐标
3 | varying vec2 v_texPo;//用于把纹理坐标传到fragment
4 | uniform mat4 u_Matrix;
5 | void main(){
6 | gl_Position = av_Position*u_Matrix;
7 | v_texPo = af_Position;
8 |
9 | }
--------------------------------------------------------------------------------
/record/src/main/res/raw/vertex_shader_screen.glsl:
--------------------------------------------------------------------------------
1 | attribute vec4 av_Position;//顶点坐标
2 | attribute vec2 af_Position;//纹理坐标
3 | varying vec2 v_texPo;//用于把纹理坐标传到fragment
4 | uniform mat4 u_Matrix;
5 | void main(){
6 | gl_Position = av_Position;
7 | v_texPo = af_Position;
8 | }
--------------------------------------------------------------------------------
/record/src/main/res/raw/vertex_shader_yuv.glsl:
--------------------------------------------------------------------------------
1 | attribute vec4 av_Position;//顶点坐标
2 | attribute vec2 af_Position;//纹理坐标
3 | varying vec2 v_texPo;//用于把纹理坐标传到fragment
4 | uniform mat4 u_Matrix;
5 | void main(){
6 | gl_Position = av_Position*u_Matrix;
7 | v_texPo = af_Position;
8 | }
--------------------------------------------------------------------------------
/record/src/main/res/values/colors.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 | #008577
4 | #00574B
5 | #D81B60
6 |
7 |
--------------------------------------------------------------------------------
/record/src/main/res/values/strings.xml:
--------------------------------------------------------------------------------
1 |
2 | Record
3 |
4 |
--------------------------------------------------------------------------------
/record/src/main/res/values/styles.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
10 |
11 |
19 |
20 |
21 |
--------------------------------------------------------------------------------
/record/src/test/java/com/haha/record/ExampleUnitTest.kt:
--------------------------------------------------------------------------------
1 | package com.haha.record
2 |
3 | import org.junit.Test
4 |
5 | import org.junit.Assert.*
6 |
7 | /**
8 | * Example local unit test, which will execute on the development machine (host).
9 | *
10 | * See [testing documentation](http://d.android.com/tools/testing).
11 | */
12 | class ExampleUnitTest {
13 | @Test
14 | fun addition_isCorrect() {
15 | assertEquals(4, 2 + 2)
16 | }
17 | }
18 |
--------------------------------------------------------------------------------
/settings.gradle:
--------------------------------------------------------------------------------
1 | include ':app', ':record'
2 | rootProject.name='ManchesterUnitedPlayer'
3 |
--------------------------------------------------------------------------------
/v1080.mp4:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yishuinanfeng/UnitedPlayer/83bb11db7603633c5b634d49eafa1d05957fbb11/v1080.mp4
--------------------------------------------------------------------------------