├── .DS_Store ├── Metal学习 ├── .DS_Store ├── Images │ ├── .DS_Store │ ├── CAMetalLayer.png │ ├── CPU&GPU pipelining.png │ ├── CPU&GPU.png │ ├── MetalDevice.png │ ├── MetalTriangle.png │ ├── Metal绘制三角形.gliffy │ ├── OpenGL绘制三角形.png │ ├── opengl&metal性能对比.png │ └── 三角形.png ├── MetalTriangle │ ├── .DS_Store │ ├── MetalTriangle.xcodeproj │ │ ├── project.pbxproj │ │ ├── project.xcworkspace │ │ │ ├── contents.xcworkspacedata │ │ │ └── xcuserdata │ │ │ │ └── tomxiang.xcuserdatad │ │ │ │ └── UserInterfaceState.xcuserstate │ │ └── xcuserdata │ │ │ └── tomxiang.xcuserdatad │ │ │ └── xcschemes │ │ │ ├── MetalTriangle.xcscheme │ │ │ └── xcschememanagement.plist │ ├── MetalTriangle │ │ ├── AppDelegate.h │ │ ├── AppDelegate.m │ │ ├── Assets.xcassets │ │ │ └── AppIcon.appiconset │ │ │ │ └── Contents.json │ │ ├── Base.lproj │ │ │ ├── LaunchScreen.storyboard │ │ │ └── Main.storyboard │ │ ├── Info.plist │ │ ├── Shaders.metal │ │ ├── ViewController.h │ │ ├── ViewController.m │ │ └── main.m │ ├── MetalTriangleTests │ │ ├── Info.plist │ │ └── MetalTriangleTests.m │ └── MetalTriangleUITests │ │ ├── Info.plist │ │ └── MetalTriangleUITests.m ├── Metal学习.md └── PDF │ ├── .DS_Store │ ├── 602_adopting_metal_part_1.pdf │ └── 604_working_with_metal_fundamentals.pdf ├── Note ├── .DS_Store ├── 1环境搭建 │ ├── .DS_Store │ ├── Images │ │ ├── 1.png │ │ ├── 2.png │ │ ├── 3.png │ │ ├── 4.png │ │ ├── 5.png │ │ ├── 6.png │ │ ├── 7.png │ │ └── 8.png │ └── Mac+OpenGL环境搭建.md ├── 2窗口绘制 │ ├── .DS_Store │ ├── 1.hellowindow │ │ ├── .DS_Store │ │ ├── testHelloworld.xcodeproj │ │ │ ├── project.pbxproj │ │ │ ├── project.xcworkspace │ │ │ │ ├── contents.xcworkspacedata │ │ │ │ └── xcuserdata │ │ │ │ │ └── tomxiang.xcuserdatad │ │ │ │ │ └── UserInterfaceState.xcuserstate │ │ │ └── xcuserdata │ │ │ │ └── tomxiang.xcuserdatad │ │ │ │ ├── xcdebugger │ │ │ │ └── Breakpoints_v2.xcbkptlist │ │ │ │ └── xcschemes │ │ │ │ ├── testHelloworld.xcscheme │ │ │ │ └── xcschememanagement.plist │ │ └── testHelloworld │ │ │ └── main.cpp │ ├── Images │ │ └── .DS_Store │ └── 窗口绘制.md └── 3.绘制三角形 │ ├── .DS_Store │ ├── Images │ ├── .DS_Store │ ├── 1.png │ └── 2.png │ ├── 绘制三角形.md │ ├── 绘制流程图.gliffy │ └── 绘制流程图.png ├── PDF ├── OpenGL Insights.pdf └── learnopengl-cn.pdf ├── README.md ├── glm ├── .DS_Store ├── .appveyor.yml ├── .gitignore ├── .travis.yml ├── CMakeLists.txt ├── cmake │ ├── glm.pc.in │ ├── glmBuildConfig.cmake.in │ └── glmConfig.cmake.in ├── 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.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.html │ │ ├── a00055_source.html │ │ ├── a00056.html │ │ ├── a00056_source.html │ │ ├── a00057.html │ │ ├── a00057_source.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.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_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.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 │ │ ├── a00146.html │ │ ├── a00147.html │ │ ├── a00148.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 │ │ ├── arrowdown.png │ │ ├── arrowright.png │ │ ├── bc_s.png │ │ ├── bdwn.png │ │ ├── closed.png │ │ ├── dir_1f76e953200861345293ade84ac7fb6c.html │ │ ├── dir_275089585c7fc1b5fd5d7d42c69cb1da.html │ │ ├── dir_577c788b67d63fb3b3b5752bd495d0f2.html │ │ ├── dir_5ce58d942b2d0776e17a9a58abc01e04.html │ │ ├── dir_7b98f88bffbed4b390b5f8f520d9c08e.html │ │ ├── dir_8d176b5b7dd0ae42ea6876078f2bde49.html │ │ ├── dir_9440d7c11b99dcd7e5d369c7cf9802fe.html │ │ ├── dir_e29b03b892e0e25920d021a614d4db9b.html │ │ ├── dir_e529a619cfdec1fa4c331fb042fd332f.html │ │ ├── doc.png │ │ ├── doxygen.css │ │ ├── doxygen.png │ │ ├── dynsections.js │ │ ├── files.html │ │ ├── folderclosed.png │ │ ├── folderopen.png │ │ ├── index.html │ │ ├── jquery.js │ │ ├── logo.png │ │ ├── modules.html │ │ ├── nav_f.png │ │ ├── nav_g.png │ │ ├── nav_h.png │ │ ├── open.png │ │ ├── splitbar.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_common_simd.inl │ │ ├── func_exponential.hpp │ │ ├── func_exponential.inl │ │ ├── func_exponential_simd.inl │ │ ├── func_geometric.hpp │ │ ├── func_geometric.inl │ │ ├── func_geometric_simd.inl │ │ ├── func_integer.hpp │ │ ├── func_integer.inl │ │ ├── func_integer_simd.inl │ │ ├── func_matrix.hpp │ │ ├── func_matrix.inl │ │ ├── func_matrix_simd.inl │ │ ├── func_packing.hpp │ │ ├── func_packing.inl │ │ ├── func_packing_simd.inl │ │ ├── func_trigonometric.hpp │ │ ├── func_trigonometric.inl │ │ ├── func_trigonometric_simd.inl │ │ ├── func_vector_relational.hpp │ │ ├── func_vector_relational.inl │ │ ├── func_vector_relational_simd.inl │ │ ├── glm.cpp │ │ ├── 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_mat4x4_simd.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_simd.inl │ ├── exponential.hpp │ ├── ext.hpp │ ├── fwd.hpp │ ├── geometric.hpp │ ├── glm.hpp │ ├── gtc │ │ ├── bitfield.hpp │ │ ├── bitfield.inl │ │ ├── color_encoding.inl │ │ ├── color_space.hpp │ │ ├── color_space.inl │ │ ├── constants.hpp │ │ ├── constants.inl │ │ ├── epsilon.hpp │ │ ├── epsilon.inl │ │ ├── functions.hpp │ │ ├── functions.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 │ │ ├── quaternion_simd.inl │ │ ├── random.hpp │ │ ├── random.inl │ │ ├── reciprocal.hpp │ │ ├── reciprocal.inl │ │ ├── round.hpp │ │ ├── round.inl │ │ ├── type_aligned.hpp │ │ ├── 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 │ │ ├── extended_min_max.hpp │ │ ├── extended_min_max.inl │ │ ├── fast_exponential.hpp │ │ ├── fast_exponential.inl │ │ ├── fast_square_root.hpp │ │ ├── fast_square_root.inl │ │ ├── fast_trigonometry.hpp │ │ ├── fast_trigonometry.inl │ │ ├── float_notmalize.inl │ │ ├── gradient_paint.hpp │ │ ├── gradient_paint.inl │ │ ├── handed_coordinate_space.hpp │ │ ├── handed_coordinate_space.inl │ │ ├── hash.hpp │ │ ├── hash.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 │ │ ├── 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 │ │ ├── type_trait.hpp │ │ ├── type_trait.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 │ ├── simd │ │ ├── common.h │ │ ├── exponential.h │ │ ├── geometric.h │ │ ├── integer.h │ │ ├── matrix.h │ │ ├── packing.h │ │ ├── platform.h │ │ ├── trigonometric.h │ │ └── vector_relational.h │ ├── trigonometric.hpp │ ├── vec2.hpp │ ├── vec3.hpp │ ├── vec4.hpp │ └── vector_relational.hpp ├── readme.md ├── test │ ├── .DS_Store │ ├── CMakeLists.txt │ ├── bug │ │ ├── CMakeLists.txt │ │ └── bug_ms_vec_static.cpp │ ├── core │ │ ├── CMakeLists.txt │ │ ├── core_force_pure.cpp │ │ ├── core_force_unrestricted_gentype.cpp │ │ ├── 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_aligned.cpp │ │ ├── core_type_cast.cpp │ │ ├── core_type_ctor.cpp │ │ ├── core_type_float.cpp │ │ ├── core_type_int.cpp │ │ ├── core_type_length.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 │ │ ├── .DS_Store │ │ └── 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_color_space.cpp │ │ ├── gtc_constants.cpp │ │ ├── gtc_epsilon.cpp │ │ ├── gtc_functions.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_aligned.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_extended_min_max.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_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_type_trait.cpp │ │ ├── gtx_vector_angle.cpp │ │ ├── gtx_vector_query.cpp │ │ └── gtx_wrap.cpp └── util │ ├── autoexp.txt │ ├── autoexp.vc2010.dat │ ├── glm.natvis │ └── usertype.dat └── xcode源码 ├── .DS_Store ├── LearnOpenGLWorkSpace.xcworkspace ├── contents.xcworkspacedata ├── xcshareddata │ └── LearnOpenGLWorkSpace.xcscmblueprint └── xcuserdata │ └── tomxiang.xcuserdatad │ ├── UserInterfaceState.xcuserstate │ └── xcdebugger │ └── Breakpoints_v2.xcbkptlist ├── LearnOpenGLXcodeWorkSpace ├── .DS_Store ├── 1.1hellowindow │ ├── 1.1hellowindow.xcodeproj │ │ ├── project.pbxproj │ │ └── xcuserdata │ │ │ └── tomxiang.xcuserdatad │ │ │ └── xcschemes │ │ │ ├── 1.1hellowindow.xcscheme │ │ │ └── xcschememanagement.plist │ └── 1.1hellowindow │ │ └── main.cpp ├── 1.2home01 │ ├── 1.2home01.xcodeproj │ │ ├── project.pbxproj │ │ └── xcuserdata │ │ │ └── tomxiang.xcuserdatad │ │ │ └── xcschemes │ │ │ ├── 1.2home01.xcscheme │ │ │ └── xcschememanagement.plist │ └── 1.2home01 │ │ └── main.cpp ├── 1.2home02 │ ├── 1.2home02.xcodeproj │ │ ├── project.pbxproj │ │ └── xcuserdata │ │ │ └── tomxiang.xcuserdatad │ │ │ └── xcschemes │ │ │ ├── 1.2home02.xcscheme │ │ │ └── xcschememanagement.plist │ └── 1.2home02 │ │ └── main.cpp ├── 1.2home03 │ ├── .DS_Store │ ├── 1.2home03.xcodeproj │ │ ├── project.pbxproj │ │ └── xcuserdata │ │ │ └── tomxiang.xcuserdatad │ │ │ └── xcschemes │ │ │ ├── 1.3home03.xcscheme │ │ │ └── xcschememanagement.plist │ └── 1.2home03 │ │ └── main.cpp ├── 1.2rect │ ├── 1.2rect.xcodeproj │ │ ├── project.pbxproj │ │ └── xcuserdata │ │ │ └── tomxiang.xcuserdatad │ │ │ └── xcschemes │ │ │ ├── 1.2rect.xcscheme │ │ │ └── xcschememanagement.plist │ └── 1.2rect │ │ └── main.cpp ├── 1.2traiangle │ ├── 1.2traiangle.xcodeproj │ │ ├── project.pbxproj │ │ └── xcuserdata │ │ │ └── tomxiang.xcuserdatad │ │ │ └── xcschemes │ │ │ ├── 1.2traiangle.xcscheme │ │ │ └── xcschememanagement.plist │ └── 1.2traiangle │ │ └── main.cpp ├── 1.3shaders │ ├── 1.3shaders.xcodeproj │ │ ├── project.pbxproj │ │ └── xcuserdata │ │ │ └── tomxiang.xcuserdatad │ │ │ └── xcschemes │ │ │ ├── 1.3shaders.xcscheme │ │ │ └── xcschememanagement.plist │ └── 1.3shaders │ │ └── main.cpp ├── 1.3shadershome01 │ ├── .DS_Store │ ├── 1.3shadershome01.xcodeproj │ │ ├── project.pbxproj │ │ └── xcuserdata │ │ │ └── tomxiang.xcuserdatad │ │ │ └── xcschemes │ │ │ ├── 1.3shadershome01.xcscheme │ │ │ └── xcschememanagement.plist │ └── 1.3shadershome01 │ │ ├── basic.frag │ │ ├── basic.vs │ │ ├── main.cpp │ │ └── shader.h ├── 1.3shadershome03 │ ├── .DS_Store │ ├── 1.3shadershome03.xcodeproj │ │ ├── project.pbxproj │ │ └── xcuserdata │ │ │ └── tomxiang.xcuserdatad │ │ │ └── xcschemes │ │ │ ├── 1.3shadershome03.xcscheme │ │ │ └── xcschememanagement.plist │ └── 1.3shadershome03 │ │ ├── basic.frag │ │ ├── basic.vs │ │ ├── main.cpp │ │ └── shader.h ├── 1.3shadersmanager │ ├── .DS_Store │ ├── 1.3shadersmanager.xcodeproj │ │ ├── project.pbxproj │ │ └── xcuserdata │ │ │ └── tomxiang.xcuserdatad │ │ │ └── xcschemes │ │ │ ├── 1.3shadersmanager.xcscheme │ │ │ └── xcschememanagement.plist │ └── 1.3shadersmanager │ │ ├── .DS_Store │ │ ├── basic.frag │ │ ├── basic.vs │ │ ├── main.cpp │ │ └── shader.h ├── 1.3shadersmulticolor │ ├── 1.3shadersmulticolor.xcodeproj │ │ ├── project.pbxproj │ │ └── xcuserdata │ │ │ └── tomxiang.xcuserdatad │ │ │ └── xcschemes │ │ │ ├── 1.3shadersmulticolor.xcscheme │ │ │ └── xcschememanagement.plist │ └── 1.3shadersmulticolor │ │ └── main.cpp ├── 1.4home01 │ ├── .DS_Store │ ├── 1.4home01.xcodeproj │ │ ├── project.pbxproj │ │ └── xcuserdata │ │ │ └── tomxiang.xcuserdatad │ │ │ └── xcschemes │ │ │ ├── 1.4home01.xcscheme │ │ │ └── xcschememanagement.plist │ └── 1.4home01 │ │ ├── basic.frag │ │ ├── basic.vs │ │ ├── main.cpp │ │ └── shader.h ├── 1.4home02 │ ├── .DS_Store │ ├── 1.4home02.xcodeproj │ │ ├── project.pbxproj │ │ └── xcuserdata │ │ │ └── tomxiang.xcuserdatad │ │ │ └── xcschemes │ │ │ ├── 1.4home02.xcscheme │ │ │ └── xcschememanagement.plist │ └── 1.4home02 │ │ ├── basic.frag │ │ ├── basic.vs │ │ ├── main.cpp │ │ └── shader.h ├── 1.4home03 │ ├── .DS_Store │ ├── 1.4home03.xcodeproj │ │ ├── project.pbxproj │ │ └── xcuserdata │ │ │ └── tomxiang.xcuserdatad │ │ │ └── xcschemes │ │ │ ├── 1.4home03.xcscheme │ │ │ └── xcschememanagement.plist │ └── 1.4home03 │ │ ├── basic.frag │ │ ├── basic.vs │ │ ├── main.cpp │ │ └── shader.h ├── 1.4textures │ ├── .DS_Store │ ├── 1.4textures.xcodeproj │ │ ├── project.pbxproj │ │ └── xcuserdata │ │ │ └── tomxiang.xcuserdatad │ │ │ └── xcschemes │ │ │ ├── 1.4textures.xcscheme │ │ │ └── xcschememanagement.plist │ └── 1.4textures │ │ ├── basic.frag │ │ ├── basic.vs │ │ ├── main.cpp │ │ └── shader.h ├── 1.4texturesmulti │ ├── .DS_Store │ ├── 1.4texturesmulti.xcodeproj │ │ ├── project.pbxproj │ │ └── xcuserdata │ │ │ └── tomxiang.xcuserdatad │ │ │ └── xcschemes │ │ │ ├── 1.4texturesmulti.xcscheme │ │ │ └── xcschememanagement.plist │ └── 1.4texturesmulti │ │ ├── basic.frag │ │ ├── basic.vs │ │ ├── main.cpp │ │ └── shader.h └── 1.5transformations │ ├── .DS_Store │ ├── 1.5transformations.xcodeproj │ ├── project.pbxproj │ └── xcuserdata │ │ └── tomxiang.xcuserdatad │ │ └── xcschemes │ │ ├── 1.5transformations.xcscheme │ │ └── xcschememanagement.plist │ └── 1.5transformations │ ├── .DS_Store │ ├── basic.frag │ ├── basic.vs │ ├── glm │ ├── .DS_Store │ ├── 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_common_simd.inl │ │ ├── func_exponential.hpp │ │ ├── func_exponential.inl │ │ ├── func_exponential_simd.inl │ │ ├── func_geometric.hpp │ │ ├── func_geometric.inl │ │ ├── func_geometric_simd.inl │ │ ├── func_integer.hpp │ │ ├── func_integer.inl │ │ ├── func_integer_simd.inl │ │ ├── func_matrix.hpp │ │ ├── func_matrix.inl │ │ ├── func_matrix_simd.inl │ │ ├── func_packing.hpp │ │ ├── func_packing.inl │ │ ├── func_packing_simd.inl │ │ ├── func_trigonometric.hpp │ │ ├── func_trigonometric.inl │ │ ├── func_trigonometric_simd.inl │ │ ├── func_vector_relational.hpp │ │ ├── func_vector_relational.inl │ │ ├── func_vector_relational_simd.inl │ │ ├── glm.cpp │ │ ├── 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_mat4x4_simd.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_simd.inl │ ├── exponential.hpp │ ├── ext.hpp │ ├── fwd.hpp │ ├── geometric.hpp │ ├── glm.hpp │ ├── gtc │ │ ├── bitfield.hpp │ │ ├── bitfield.inl │ │ ├── color_encoding.inl │ │ ├── color_space.hpp │ │ ├── color_space.inl │ │ ├── constants.hpp │ │ ├── constants.inl │ │ ├── epsilon.hpp │ │ ├── epsilon.inl │ │ ├── functions.hpp │ │ ├── functions.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 │ │ ├── quaternion_simd.inl │ │ ├── random.hpp │ │ ├── random.inl │ │ ├── reciprocal.hpp │ │ ├── reciprocal.inl │ │ ├── round.hpp │ │ ├── round.inl │ │ ├── type_aligned.hpp │ │ ├── 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 │ │ ├── extended_min_max.hpp │ │ ├── extended_min_max.inl │ │ ├── fast_exponential.hpp │ │ ├── fast_exponential.inl │ │ ├── fast_square_root.hpp │ │ ├── fast_square_root.inl │ │ ├── fast_trigonometry.hpp │ │ ├── fast_trigonometry.inl │ │ ├── float_notmalize.inl │ │ ├── gradient_paint.hpp │ │ ├── gradient_paint.inl │ │ ├── handed_coordinate_space.hpp │ │ ├── handed_coordinate_space.inl │ │ ├── hash.hpp │ │ ├── hash.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 │ │ ├── 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 │ │ ├── type_trait.hpp │ │ ├── type_trait.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 │ ├── simd │ │ ├── common.h │ │ ├── exponential.h │ │ ├── geometric.h │ │ ├── integer.h │ │ ├── matrix.h │ │ ├── packing.h │ │ ├── platform.h │ │ ├── trigonometric.h │ │ └── vector_relational.h │ ├── trigonometric.hpp │ ├── vec2.hpp │ ├── vec3.hpp │ ├── vec4.hpp │ └── vector_relational.hpp │ ├── main.cpp │ └── shader.h └── resources ├── .DS_Store ├── objects ├── .DS_Store ├── nanosuit │ ├── arm_dif.png │ ├── arm_showroom_ddn.png │ ├── arm_showroom_refl.png │ ├── arm_showroom_spec.png │ ├── back.jpg │ ├── body_dif.png │ ├── body_showroom_ddn.png │ ├── body_showroom_refl.png │ ├── body_showroom_spec.png │ ├── cell_arm_alpha.png │ ├── cell_body_alpha.png │ ├── cell_ddn.png │ ├── cell_hand_alpha.png │ ├── cell_helmet_alpha.png │ ├── cell_leg_alpha.png │ ├── front.jpg │ ├── glass_ddn.png │ ├── glass_dif.png │ ├── glass_refl.png │ ├── hand_dif.png │ ├── hand_showroom_ddn.png │ ├── hand_showroom_refl.png │ ├── hand_showroom_spec.png │ ├── helmet_diff.png │ ├── helmet_showroom_ddn.png │ ├── helmet_showroom_refl.png │ ├── helmet_showroom_spec.png │ ├── leg_dif.png │ ├── leg_showroom_ddn.png │ ├── leg_showroom_refl.png │ ├── leg_showroom_spec.png │ ├── nanosuit.mtl │ └── nanosuit.obj ├── planet │ ├── planet.mtl │ ├── planet.obj │ └── planet_Quom1200.png └── rock │ ├── Rock-Texture-Surface.jpg │ ├── rock.mtl │ └── rock.obj └── textures ├── .DS_Store ├── awesomeface.png ├── container.jpg ├── container2.png ├── container2_specular.png ├── grass.png ├── marble.jpg ├── metal.png ├── skybox ├── back.jpg ├── bottom.jpg ├── front.jpg ├── left.jpg ├── right.jpg └── top.jpg ├── window.png └── wood.png /.DS_Store: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xcysuccess/LearnOpenGLNote/0dc03002531eef4a3f294ea5ba236d34fde4449b/.DS_Store -------------------------------------------------------------------------------- /Metal学习/.DS_Store: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xcysuccess/LearnOpenGLNote/0dc03002531eef4a3f294ea5ba236d34fde4449b/Metal学习/.DS_Store -------------------------------------------------------------------------------- /Metal学习/Images/.DS_Store: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xcysuccess/LearnOpenGLNote/0dc03002531eef4a3f294ea5ba236d34fde4449b/Metal学习/Images/.DS_Store -------------------------------------------------------------------------------- /Metal学习/Images/CAMetalLayer.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xcysuccess/LearnOpenGLNote/0dc03002531eef4a3f294ea5ba236d34fde4449b/Metal学习/Images/CAMetalLayer.png -------------------------------------------------------------------------------- /Metal学习/Images/CPU&GPU pipelining.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xcysuccess/LearnOpenGLNote/0dc03002531eef4a3f294ea5ba236d34fde4449b/Metal学习/Images/CPU&GPU pipelining.png -------------------------------------------------------------------------------- /Metal学习/Images/CPU&GPU.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xcysuccess/LearnOpenGLNote/0dc03002531eef4a3f294ea5ba236d34fde4449b/Metal学习/Images/CPU&GPU.png -------------------------------------------------------------------------------- /Metal学习/Images/MetalDevice.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xcysuccess/LearnOpenGLNote/0dc03002531eef4a3f294ea5ba236d34fde4449b/Metal学习/Images/MetalDevice.png -------------------------------------------------------------------------------- /Metal学习/Images/MetalTriangle.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xcysuccess/LearnOpenGLNote/0dc03002531eef4a3f294ea5ba236d34fde4449b/Metal学习/Images/MetalTriangle.png -------------------------------------------------------------------------------- /Metal学习/Images/OpenGL绘制三角形.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xcysuccess/LearnOpenGLNote/0dc03002531eef4a3f294ea5ba236d34fde4449b/Metal学习/Images/OpenGL绘制三角形.png -------------------------------------------------------------------------------- /Metal学习/Images/opengl&metal性能对比.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xcysuccess/LearnOpenGLNote/0dc03002531eef4a3f294ea5ba236d34fde4449b/Metal学习/Images/opengl&metal性能对比.png -------------------------------------------------------------------------------- /Metal学习/Images/三角形.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xcysuccess/LearnOpenGLNote/0dc03002531eef4a3f294ea5ba236d34fde4449b/Metal学习/Images/三角形.png -------------------------------------------------------------------------------- /Metal学习/MetalTriangle/.DS_Store: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xcysuccess/LearnOpenGLNote/0dc03002531eef4a3f294ea5ba236d34fde4449b/Metal学习/MetalTriangle/.DS_Store -------------------------------------------------------------------------------- /Metal学习/MetalTriangle/MetalTriangle.xcodeproj/project.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /Metal学习/MetalTriangle/MetalTriangle.xcodeproj/project.xcworkspace/xcuserdata/tomxiang.xcuserdatad/UserInterfaceState.xcuserstate: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xcysuccess/LearnOpenGLNote/0dc03002531eef4a3f294ea5ba236d34fde4449b/Metal学习/MetalTriangle/MetalTriangle.xcodeproj/project.xcworkspace/xcuserdata/tomxiang.xcuserdatad/UserInterfaceState.xcuserstate -------------------------------------------------------------------------------- /Metal学习/MetalTriangle/MetalTriangle.xcodeproj/xcuserdata/tomxiang.xcuserdatad/xcschemes/xcschememanagement.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | SchemeUserState 6 | 7 | MetalTriangle.xcscheme 8 | 9 | orderHint 10 | 0 11 | 12 | 13 | SuppressBuildableAutocreation 14 | 15 | 9AFBC9E21EC49EB1005A15F5 16 | 17 | primary 18 | 19 | 20 | 9AFBC9FB1EC49EB1005A15F5 21 | 22 | primary 23 | 24 | 25 | 9AFBCA061EC49EB1005A15F5 26 | 27 | primary 28 | 29 | 30 | 31 | 32 | 33 | -------------------------------------------------------------------------------- /Metal学习/MetalTriangle/MetalTriangle/AppDelegate.h: -------------------------------------------------------------------------------- 1 | // 2 | // AppDelegate.h 3 | // MetalTriangle 4 | // 5 | // Created by tomxiang on 2017/5/11. 6 | // Copyright © 2017年 tomxiang. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @interface AppDelegate : UIResponder 12 | 13 | @property (strong, nonatomic) UIWindow *window; 14 | 15 | 16 | @end 17 | 18 | -------------------------------------------------------------------------------- /Metal学习/MetalTriangle/MetalTriangle/Assets.xcassets/AppIcon.appiconset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "iphone", 5 | "size" : "29x29", 6 | "scale" : "2x" 7 | }, 8 | { 9 | "idiom" : "iphone", 10 | "size" : "29x29", 11 | "scale" : "3x" 12 | }, 13 | { 14 | "idiom" : "iphone", 15 | "size" : "40x40", 16 | "scale" : "2x" 17 | }, 18 | { 19 | "idiom" : "iphone", 20 | "size" : "40x40", 21 | "scale" : "3x" 22 | }, 23 | { 24 | "idiom" : "iphone", 25 | "size" : "60x60", 26 | "scale" : "2x" 27 | }, 28 | { 29 | "idiom" : "iphone", 30 | "size" : "60x60", 31 | "scale" : "3x" 32 | }, 33 | { 34 | "idiom" : "ipad", 35 | "size" : "29x29", 36 | "scale" : "1x" 37 | }, 38 | { 39 | "idiom" : "ipad", 40 | "size" : "29x29", 41 | "scale" : "2x" 42 | }, 43 | { 44 | "idiom" : "ipad", 45 | "size" : "40x40", 46 | "scale" : "1x" 47 | }, 48 | { 49 | "idiom" : "ipad", 50 | "size" : "40x40", 51 | "scale" : "2x" 52 | }, 53 | { 54 | "idiom" : "ipad", 55 | "size" : "76x76", 56 | "scale" : "1x" 57 | }, 58 | { 59 | "idiom" : "ipad", 60 | "size" : "76x76", 61 | "scale" : "2x" 62 | } 63 | ], 64 | "info" : { 65 | "version" : 1, 66 | "author" : "xcode" 67 | } 68 | } -------------------------------------------------------------------------------- /Metal学习/MetalTriangle/MetalTriangle/Shaders.metal: -------------------------------------------------------------------------------- 1 | // 2 | // Shaders.metal 3 | // HelloMetal 4 | // 5 | // Created by Andriy K. on 11/12/16. 6 | // Copyright © 2016 razeware. All rights reserved. 7 | // 8 | 9 | // 一个vertex shader被每个顶点调用,它的工作是接受顶点的信息(如:位置和颜色、纹理坐标),返回一个潜在的修正位置(可能还有别的相关信息) 10 | #include 11 | using namespace metal; 12 | /** 13 | * 1、所有的vertex shaders必须以关键字vertex开头。函数必须至少返回顶点的最终位置——你通过指定float4(一个元素为4个浮点数的向量)。然后你给一个名字给vetex shader,以后你将用这个名字来访问这个vertex shader。 14 | * 2、vertex shader会接受一个名叫vertex_id的属性的特定参数,它意味着它会被vertex数组里特定的顶点所装入。 15 | * 3、一个指向一个元素为packed_float4(一个向量包含4个浮点数)的数组的指针,如:每个顶点的位置。这个 [[ ... ]] 语法被用在声明那些能被用作特定额外信息的属性,像是资源位置,shader输入,内建变量。这里你把这个参数用 [[ buffer(0) ]] 标记,来指明这个参数将会被在你代码中你发送到你的vertex shader的第一块buffer data所遍历。 16 | * 4、基于vertex id来检索vertex数组中对应位置的vertex并把它返回。向量必须为一个float4类型 17 | */ 18 | vertex float4 basic_vertex( // 1 19 | const device packed_float3* vertex_array [[ buffer(0) ]], // 2 20 | unsigned int vid [[ vertex_id ]]) { // 3 21 | return float4(vertex_array[vid], 1.0); // 4 22 | } 23 | 24 | /* 25 | 1. 所有fragment shaders必须以fragment关键字开始。这个函数必须至少返回fragment的最终颜色——你通过指定half4(一个颜色的RGBA值)来完成这个任务。注意,half4比float4在内存上更有效率,因为,你写入了更少的GPU内存。 26 | 2. 这里你返回(0.6,0.6,0.6,0.6)的颜色,也就是灰色。 27 | */ 28 | fragment half4 basic_fragment() { 29 | return half4(0, 1, 0, 1); 30 | } 31 | -------------------------------------------------------------------------------- /Metal学习/MetalTriangle/MetalTriangle/ViewController.h: -------------------------------------------------------------------------------- 1 | // 2 | // ViewController.h 3 | // MetalTriangle 4 | // 5 | // Created by tomxiang on 2017/5/11. 6 | // Copyright © 2017年 tomxiang. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @interface ViewController : UIViewController 12 | 13 | 14 | @end 15 | 16 | -------------------------------------------------------------------------------- /Metal学习/MetalTriangle/MetalTriangle/main.m: -------------------------------------------------------------------------------- 1 | // 2 | // main.m 3 | // MetalTriangle 4 | // 5 | // Created by tomxiang on 2017/5/11. 6 | // Copyright © 2017年 tomxiang. All rights reserved. 7 | // 8 | 9 | #import 10 | #import "AppDelegate.h" 11 | 12 | int main(int argc, char * argv[]) { 13 | @autoreleasepool { 14 | return UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class])); 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /Metal学习/MetalTriangle/MetalTriangleTests/Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | en 7 | CFBundleExecutable 8 | $(EXECUTABLE_NAME) 9 | CFBundleIdentifier 10 | $(PRODUCT_BUNDLE_IDENTIFIER) 11 | CFBundleInfoDictionaryVersion 12 | 6.0 13 | CFBundleName 14 | $(PRODUCT_NAME) 15 | CFBundlePackageType 16 | BNDL 17 | CFBundleShortVersionString 18 | 1.0 19 | CFBundleVersion 20 | 1 21 | 22 | 23 | -------------------------------------------------------------------------------- /Metal学习/MetalTriangle/MetalTriangleTests/MetalTriangleTests.m: -------------------------------------------------------------------------------- 1 | // 2 | // MetalTriangleTests.m 3 | // MetalTriangleTests 4 | // 5 | // Created by tomxiang on 2017/5/11. 6 | // Copyright © 2017年 tomxiang. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @interface MetalTriangleTests : XCTestCase 12 | 13 | @end 14 | 15 | @implementation MetalTriangleTests 16 | 17 | - (void)setUp { 18 | [super setUp]; 19 | // Put setup code here. This method is called before the invocation of each test method in the class. 20 | } 21 | 22 | - (void)tearDown { 23 | // Put teardown code here. This method is called after the invocation of each test method in the class. 24 | [super tearDown]; 25 | } 26 | 27 | - (void)testExample { 28 | // This is an example of a functional test case. 29 | // Use XCTAssert and related functions to verify your tests produce the correct results. 30 | } 31 | 32 | - (void)testPerformanceExample { 33 | // This is an example of a performance test case. 34 | [self measureBlock:^{ 35 | // Put the code you want to measure the time of here. 36 | }]; 37 | } 38 | 39 | @end 40 | -------------------------------------------------------------------------------- /Metal学习/MetalTriangle/MetalTriangleUITests/Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | en 7 | CFBundleExecutable 8 | $(EXECUTABLE_NAME) 9 | CFBundleIdentifier 10 | $(PRODUCT_BUNDLE_IDENTIFIER) 11 | CFBundleInfoDictionaryVersion 12 | 6.0 13 | CFBundleName 14 | $(PRODUCT_NAME) 15 | CFBundlePackageType 16 | BNDL 17 | CFBundleShortVersionString 18 | 1.0 19 | CFBundleVersion 20 | 1 21 | 22 | 23 | -------------------------------------------------------------------------------- /Metal学习/MetalTriangle/MetalTriangleUITests/MetalTriangleUITests.m: -------------------------------------------------------------------------------- 1 | // 2 | // MetalTriangleUITests.m 3 | // MetalTriangleUITests 4 | // 5 | // Created by tomxiang on 2017/5/11. 6 | // Copyright © 2017年 tomxiang. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @interface MetalTriangleUITests : XCTestCase 12 | 13 | @end 14 | 15 | @implementation MetalTriangleUITests 16 | 17 | - (void)setUp { 18 | [super setUp]; 19 | 20 | // Put setup code here. This method is called before the invocation of each test method in the class. 21 | 22 | // In UI tests it is usually best to stop immediately when a failure occurs. 23 | self.continueAfterFailure = NO; 24 | // UI tests must launch the application that they test. Doing this in setup will make sure it happens for each test method. 25 | [[[XCUIApplication alloc] init] launch]; 26 | 27 | // In UI tests it’s important to set the initial state - such as interface orientation - required for your tests before they run. The setUp method is a good place to do this. 28 | } 29 | 30 | - (void)tearDown { 31 | // Put teardown code here. This method is called after the invocation of each test method in the class. 32 | [super tearDown]; 33 | } 34 | 35 | - (void)testExample { 36 | // Use recording to get started writing UI tests. 37 | // Use XCTAssert and related functions to verify your tests produce the correct results. 38 | } 39 | 40 | @end 41 | -------------------------------------------------------------------------------- /Metal学习/PDF/.DS_Store: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xcysuccess/LearnOpenGLNote/0dc03002531eef4a3f294ea5ba236d34fde4449b/Metal学习/PDF/.DS_Store -------------------------------------------------------------------------------- /Metal学习/PDF/602_adopting_metal_part_1.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xcysuccess/LearnOpenGLNote/0dc03002531eef4a3f294ea5ba236d34fde4449b/Metal学习/PDF/602_adopting_metal_part_1.pdf -------------------------------------------------------------------------------- /Metal学习/PDF/604_working_with_metal_fundamentals.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xcysuccess/LearnOpenGLNote/0dc03002531eef4a3f294ea5ba236d34fde4449b/Metal学习/PDF/604_working_with_metal_fundamentals.pdf -------------------------------------------------------------------------------- /Note/.DS_Store: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xcysuccess/LearnOpenGLNote/0dc03002531eef4a3f294ea5ba236d34fde4449b/Note/.DS_Store -------------------------------------------------------------------------------- /Note/1环境搭建/.DS_Store: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xcysuccess/LearnOpenGLNote/0dc03002531eef4a3f294ea5ba236d34fde4449b/Note/1环境搭建/.DS_Store -------------------------------------------------------------------------------- /Note/1环境搭建/Images/1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xcysuccess/LearnOpenGLNote/0dc03002531eef4a3f294ea5ba236d34fde4449b/Note/1环境搭建/Images/1.png -------------------------------------------------------------------------------- /Note/1环境搭建/Images/2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xcysuccess/LearnOpenGLNote/0dc03002531eef4a3f294ea5ba236d34fde4449b/Note/1环境搭建/Images/2.png -------------------------------------------------------------------------------- /Note/1环境搭建/Images/3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xcysuccess/LearnOpenGLNote/0dc03002531eef4a3f294ea5ba236d34fde4449b/Note/1环境搭建/Images/3.png -------------------------------------------------------------------------------- /Note/1环境搭建/Images/4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xcysuccess/LearnOpenGLNote/0dc03002531eef4a3f294ea5ba236d34fde4449b/Note/1环境搭建/Images/4.png -------------------------------------------------------------------------------- /Note/1环境搭建/Images/5.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xcysuccess/LearnOpenGLNote/0dc03002531eef4a3f294ea5ba236d34fde4449b/Note/1环境搭建/Images/5.png -------------------------------------------------------------------------------- /Note/1环境搭建/Images/6.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xcysuccess/LearnOpenGLNote/0dc03002531eef4a3f294ea5ba236d34fde4449b/Note/1环境搭建/Images/6.png -------------------------------------------------------------------------------- /Note/1环境搭建/Images/7.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xcysuccess/LearnOpenGLNote/0dc03002531eef4a3f294ea5ba236d34fde4449b/Note/1环境搭建/Images/7.png -------------------------------------------------------------------------------- /Note/1环境搭建/Images/8.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xcysuccess/LearnOpenGLNote/0dc03002531eef4a3f294ea5ba236d34fde4449b/Note/1环境搭建/Images/8.png -------------------------------------------------------------------------------- /Note/2窗口绘制/.DS_Store: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xcysuccess/LearnOpenGLNote/0dc03002531eef4a3f294ea5ba236d34fde4449b/Note/2窗口绘制/.DS_Store -------------------------------------------------------------------------------- /Note/2窗口绘制/1.hellowindow/.DS_Store: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xcysuccess/LearnOpenGLNote/0dc03002531eef4a3f294ea5ba236d34fde4449b/Note/2窗口绘制/1.hellowindow/.DS_Store -------------------------------------------------------------------------------- /Note/2窗口绘制/1.hellowindow/testHelloworld.xcodeproj/project.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /Note/2窗口绘制/1.hellowindow/testHelloworld.xcodeproj/project.xcworkspace/xcuserdata/tomxiang.xcuserdatad/UserInterfaceState.xcuserstate: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xcysuccess/LearnOpenGLNote/0dc03002531eef4a3f294ea5ba236d34fde4449b/Note/2窗口绘制/1.hellowindow/testHelloworld.xcodeproj/project.xcworkspace/xcuserdata/tomxiang.xcuserdatad/UserInterfaceState.xcuserstate -------------------------------------------------------------------------------- /Note/2窗口绘制/1.hellowindow/testHelloworld.xcodeproj/xcuserdata/tomxiang.xcuserdatad/xcdebugger/Breakpoints_v2.xcbkptlist: -------------------------------------------------------------------------------- 1 | 2 | 5 | 6 | -------------------------------------------------------------------------------- /Note/2窗口绘制/1.hellowindow/testHelloworld.xcodeproj/xcuserdata/tomxiang.xcuserdatad/xcschemes/xcschememanagement.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | SchemeUserState 6 | 7 | testHelloworld.xcscheme 8 | 9 | orderHint 10 | 0 11 | 12 | 13 | SuppressBuildableAutocreation 14 | 15 | 9AB9ACD01EB199C700F5D39C 16 | 17 | primary 18 | 19 | 20 | 21 | 22 | 23 | -------------------------------------------------------------------------------- /Note/2窗口绘制/Images/.DS_Store: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xcysuccess/LearnOpenGLNote/0dc03002531eef4a3f294ea5ba236d34fde4449b/Note/2窗口绘制/Images/.DS_Store -------------------------------------------------------------------------------- /Note/3.绘制三角形/.DS_Store: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xcysuccess/LearnOpenGLNote/0dc03002531eef4a3f294ea5ba236d34fde4449b/Note/3.绘制三角形/.DS_Store -------------------------------------------------------------------------------- /Note/3.绘制三角形/Images/.DS_Store: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xcysuccess/LearnOpenGLNote/0dc03002531eef4a3f294ea5ba236d34fde4449b/Note/3.绘制三角形/Images/.DS_Store -------------------------------------------------------------------------------- /Note/3.绘制三角形/Images/1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xcysuccess/LearnOpenGLNote/0dc03002531eef4a3f294ea5ba236d34fde4449b/Note/3.绘制三角形/Images/1.png -------------------------------------------------------------------------------- /Note/3.绘制三角形/Images/2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xcysuccess/LearnOpenGLNote/0dc03002531eef4a3f294ea5ba236d34fde4449b/Note/3.绘制三角形/Images/2.png -------------------------------------------------------------------------------- /Note/3.绘制三角形/绘制流程图.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xcysuccess/LearnOpenGLNote/0dc03002531eef4a3f294ea5ba236d34fde4449b/Note/3.绘制三角形/绘制流程图.png -------------------------------------------------------------------------------- /PDF/OpenGL Insights.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xcysuccess/LearnOpenGLNote/0dc03002531eef4a3f294ea5ba236d34fde4449b/PDF/OpenGL Insights.pdf -------------------------------------------------------------------------------- /PDF/learnopengl-cn.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xcysuccess/LearnOpenGLNote/0dc03002531eef4a3f294ea5ba236d34fde4449b/PDF/learnopengl-cn.pdf -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # LearnOpenGLNote 2 | 3 | 4 | [源码github](https://github.com/JoeyDeVries/LearnOpenGL) -------------------------------------------------------------------------------- /glm/.DS_Store: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xcysuccess/LearnOpenGLNote/0dc03002531eef4a3f294ea5ba236d34fde4449b/glm/.DS_Store -------------------------------------------------------------------------------- /glm/.appveyor.yml: -------------------------------------------------------------------------------- 1 | clone_folder: c:\dev\glm-cmake 2 | 3 | os: 4 | - Visual Studio 2013 5 | 6 | platform: 7 | - x86 8 | - x86_64 9 | 10 | build_script: 11 | - md build_pure_11 12 | - cd build_pure_11 13 | - cmake -DCMAKE_CXX_COMPILER=$COMPILER -DGLM_TEST_ENABLE=ON -DGLM_TEST_ENABLE_LANG_EXTENSIONS=ON -DGLM_TEST_FORCE_PURE=ON .. 14 | - cmake --build . --config Debug 15 | - cmake --build . --config Release 16 | - cd .. 17 | - md build_simd_11 18 | - cd build_simd_11 19 | - cmake -DCMAKE_CXX_COMPILER=$COMPILER -DGLM_TEST_ENABLE=ON -DGLM_TEST_ENABLE_LANG_EXTENSIONS=ON .. 20 | - cmake --build . --config Debug 21 | - cmake --build . --config Release 22 | - cd .. 23 | - md build_pure_98 24 | - cd build_pure_98 25 | - cmake -DCMAKE_CXX_COMPILER=$COMPILER -DGLM_TEST_ENABLE=ON -DGLM_TEST_ENABLE_CXX_98=ON -DGLM_TEST_FORCE_PURE=ON .. 26 | - cmake --build . --config Debug 27 | - cmake --build . --config Release 28 | - cd .. 29 | - md build_simd_98 30 | - cd build_simd_98 31 | - cmake -DCMAKE_CXX_COMPILER=$COMPILER -DGLM_TEST_ENABLE=ON -DGLM_TEST_ENABLE_CXX_98=ON .. 32 | - cmake --build . --config Debug 33 | - cmake --build . --config Release 34 | - cd .. 35 | -------------------------------------------------------------------------------- /glm/.gitignore: -------------------------------------------------------------------------------- 1 | # Compiled Object files 2 | *.slo 3 | *.lo 4 | *.o 5 | *.obj 6 | 7 | # Precompiled Headers 8 | *.gch 9 | *.pch 10 | 11 | # Compiled Dynamic libraries 12 | *.so 13 | *.dylib 14 | *.dll 15 | 16 | # Fortran module files 17 | *.mod 18 | 19 | # Compiled Static libraries 20 | *.lai 21 | *.la 22 | *.a 23 | *.lib 24 | 25 | # Executables 26 | *.exe 27 | *.out 28 | *.app 29 | 30 | # CMake 31 | CMakeCache.txt 32 | CMakeFiles 33 | cmake_install.cmake 34 | install_manifest.txt 35 | *.cmake 36 | # ^ May need to add future .cmake files as exceptions 37 | 38 | # Test logs 39 | Testing/* 40 | 41 | # Test input 42 | test/gtc/*.dds 43 | 44 | # Project Files 45 | Makefile 46 | *.cbp 47 | *.user 48 | 49 | # Misc. 50 | *.log 51 | 52 | # local build(s) 53 | build* 54 | 55 | -------------------------------------------------------------------------------- /glm/cmake/glm.pc.in: -------------------------------------------------------------------------------- 1 | prefix=@CMAKE_INSTALL_PREFIX@ 2 | includedir=${prefix}/include 3 | 4 | Name: GLM 5 | Description: OpenGL Mathematics 6 | Version: @GLM_VERSION@ 7 | Cflags: -I${includedir} 8 | -------------------------------------------------------------------------------- /glm/cmake/glmBuildConfig.cmake.in: -------------------------------------------------------------------------------- 1 | set(GLM_VERSION "@GLM_VERSION@") 2 | set(GLM_INCLUDE_DIRS "@CMAKE_CURRENT_SOURCE_DIR@") 3 | 4 | if (NOT CMAKE_VERSION VERSION_LESS "3.0") 5 | include("${CMAKE_CURRENT_LIST_DIR}/glmTargets.cmake") 6 | endif() 7 | -------------------------------------------------------------------------------- /glm/cmake/glmConfig.cmake.in: -------------------------------------------------------------------------------- 1 | set(GLM_VERSION "@GLM_VERSION@") 2 | 3 | @PACKAGE_INIT@ 4 | 5 | set_and_check(GLM_INCLUDE_DIRS "@PACKAGE_CMAKE_INSTALL_INCLUDEDIR@") 6 | 7 | if (NOT CMAKE_VERSION VERSION_LESS "3.0") 8 | include("${CMAKE_CURRENT_LIST_DIR}/glmTargets.cmake") 9 | endif() 10 | -------------------------------------------------------------------------------- /glm/doc/api/arrowdown.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xcysuccess/LearnOpenGLNote/0dc03002531eef4a3f294ea5ba236d34fde4449b/glm/doc/api/arrowdown.png -------------------------------------------------------------------------------- /glm/doc/api/arrowright.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xcysuccess/LearnOpenGLNote/0dc03002531eef4a3f294ea5ba236d34fde4449b/glm/doc/api/arrowright.png -------------------------------------------------------------------------------- /glm/doc/api/bc_s.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xcysuccess/LearnOpenGLNote/0dc03002531eef4a3f294ea5ba236d34fde4449b/glm/doc/api/bc_s.png -------------------------------------------------------------------------------- /glm/doc/api/bdwn.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xcysuccess/LearnOpenGLNote/0dc03002531eef4a3f294ea5ba236d34fde4449b/glm/doc/api/bdwn.png -------------------------------------------------------------------------------- /glm/doc/api/closed.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xcysuccess/LearnOpenGLNote/0dc03002531eef4a3f294ea5ba236d34fde4449b/glm/doc/api/closed.png -------------------------------------------------------------------------------- /glm/doc/api/doc.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xcysuccess/LearnOpenGLNote/0dc03002531eef4a3f294ea5ba236d34fde4449b/glm/doc/api/doc.png -------------------------------------------------------------------------------- /glm/doc/api/doxygen.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xcysuccess/LearnOpenGLNote/0dc03002531eef4a3f294ea5ba236d34fde4449b/glm/doc/api/doxygen.png -------------------------------------------------------------------------------- /glm/doc/api/folderclosed.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xcysuccess/LearnOpenGLNote/0dc03002531eef4a3f294ea5ba236d34fde4449b/glm/doc/api/folderclosed.png -------------------------------------------------------------------------------- /glm/doc/api/folderopen.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xcysuccess/LearnOpenGLNote/0dc03002531eef4a3f294ea5ba236d34fde4449b/glm/doc/api/folderopen.png -------------------------------------------------------------------------------- /glm/doc/api/logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xcysuccess/LearnOpenGLNote/0dc03002531eef4a3f294ea5ba236d34fde4449b/glm/doc/api/logo.png -------------------------------------------------------------------------------- /glm/doc/api/nav_f.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xcysuccess/LearnOpenGLNote/0dc03002531eef4a3f294ea5ba236d34fde4449b/glm/doc/api/nav_f.png -------------------------------------------------------------------------------- /glm/doc/api/nav_g.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xcysuccess/LearnOpenGLNote/0dc03002531eef4a3f294ea5ba236d34fde4449b/glm/doc/api/nav_g.png -------------------------------------------------------------------------------- /glm/doc/api/nav_h.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xcysuccess/LearnOpenGLNote/0dc03002531eef4a3f294ea5ba236d34fde4449b/glm/doc/api/nav_h.png -------------------------------------------------------------------------------- /glm/doc/api/open.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xcysuccess/LearnOpenGLNote/0dc03002531eef4a3f294ea5ba236d34fde4449b/glm/doc/api/open.png -------------------------------------------------------------------------------- /glm/doc/api/splitbar.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xcysuccess/LearnOpenGLNote/0dc03002531eef4a3f294ea5ba236d34fde4449b/glm/doc/api/splitbar.png -------------------------------------------------------------------------------- /glm/doc/api/sync_off.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xcysuccess/LearnOpenGLNote/0dc03002531eef4a3f294ea5ba236d34fde4449b/glm/doc/api/sync_off.png -------------------------------------------------------------------------------- /glm/doc/api/sync_on.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xcysuccess/LearnOpenGLNote/0dc03002531eef4a3f294ea5ba236d34fde4449b/glm/doc/api/sync_on.png -------------------------------------------------------------------------------- /glm/doc/api/tab_a.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xcysuccess/LearnOpenGLNote/0dc03002531eef4a3f294ea5ba236d34fde4449b/glm/doc/api/tab_a.png -------------------------------------------------------------------------------- /glm/doc/api/tab_b.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xcysuccess/LearnOpenGLNote/0dc03002531eef4a3f294ea5ba236d34fde4449b/glm/doc/api/tab_b.png -------------------------------------------------------------------------------- /glm/doc/api/tab_h.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xcysuccess/LearnOpenGLNote/0dc03002531eef4a3f294ea5ba236d34fde4449b/glm/doc/api/tab_h.png -------------------------------------------------------------------------------- /glm/doc/api/tab_s.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xcysuccess/LearnOpenGLNote/0dc03002531eef4a3f294ea5ba236d34fde4449b/glm/doc/api/tab_s.png -------------------------------------------------------------------------------- /glm/doc/glm.docx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xcysuccess/LearnOpenGLNote/0dc03002531eef4a3f294ea5ba236d34fde4449b/glm/doc/glm.docx -------------------------------------------------------------------------------- /glm/doc/glm.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xcysuccess/LearnOpenGLNote/0dc03002531eef4a3f294ea5ba236d34fde4449b/glm/doc/glm.pdf -------------------------------------------------------------------------------- /glm/doc/logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xcysuccess/LearnOpenGLNote/0dc03002531eef4a3f294ea5ba236d34fde4449b/glm/doc/logo.png -------------------------------------------------------------------------------- /glm/glm/common.hpp: -------------------------------------------------------------------------------- 1 | /// @ref core 2 | /// @file glm/common.hpp 3 | 4 | #pragma once 5 | 6 | #include "detail/func_common.hpp" 7 | -------------------------------------------------------------------------------- /glm/glm/detail/_fixes.hpp: -------------------------------------------------------------------------------- 1 | /// @ref core 2 | /// @file glm/detail/_fixes.hpp 3 | 4 | #include 5 | 6 | //! Workaround for compatibility with other libraries 7 | #ifdef max 8 | #undef max 9 | #endif 10 | 11 | //! Workaround for compatibility with other libraries 12 | #ifdef min 13 | #undef min 14 | #endif 15 | 16 | //! Workaround for Android 17 | #ifdef isnan 18 | #undef isnan 19 | #endif 20 | 21 | //! Workaround for Android 22 | #ifdef isinf 23 | #undef isinf 24 | #endif 25 | 26 | //! Workaround for Chrone Native Client 27 | #ifdef log2 28 | #undef log2 29 | #endif 30 | 31 | -------------------------------------------------------------------------------- /glm/glm/detail/func_exponential_simd.inl: -------------------------------------------------------------------------------- 1 | /// @ref core 2 | /// @file glm/detail/func_exponential_simd.inl 3 | 4 | #include "../simd/exponential.h" 5 | 6 | #if GLM_ARCH & GLM_ARCH_SSE2_BIT 7 | 8 | namespace glm{ 9 | namespace detail 10 | { 11 | template 12 | struct compute_sqrt 13 | { 14 | GLM_FUNC_QUALIFIER static tvec4 call(tvec4 const & v) 15 | { 16 | tvec4 result(uninitialize); 17 | result.data = _mm_sqrt_ps(v.data); 18 | return result; 19 | } 20 | }; 21 | 22 | template <> 23 | struct compute_sqrt 24 | { 25 | GLM_FUNC_QUALIFIER static tvec4 call(tvec4 const & v) 26 | { 27 | tvec4 result(uninitialize); 28 | result.data = glm_vec4_sqrt_lowp(v.data); 29 | return result; 30 | } 31 | }; 32 | }//namespace detail 33 | }//namespace glm 34 | 35 | #endif//GLM_ARCH & GLM_ARCH_SSE2_BIT 36 | -------------------------------------------------------------------------------- /glm/glm/detail/func_packing_simd.inl: -------------------------------------------------------------------------------- 1 | /// @ref core 2 | /// @file glm/detail/func_packing_simd.inl 3 | 4 | namespace glm{ 5 | namespace detail 6 | { 7 | 8 | }//namespace detail 9 | }//namespace glm 10 | -------------------------------------------------------------------------------- /glm/glm/detail/func_trigonometric_simd.inl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xcysuccess/LearnOpenGLNote/0dc03002531eef4a3f294ea5ba236d34fde4449b/glm/glm/detail/func_trigonometric_simd.inl -------------------------------------------------------------------------------- /glm/glm/detail/func_vector_relational_simd.inl: -------------------------------------------------------------------------------- 1 | /// @ref core 2 | /// @file glm/detail/func_vector_relational_simd.inl 3 | 4 | namespace glm{ 5 | namespace detail 6 | { 7 | 8 | }//namespace detail 9 | }//namespace glm 10 | -------------------------------------------------------------------------------- /glm/glm/detail/precision.hpp: -------------------------------------------------------------------------------- 1 | /// @ref core 2 | /// @file glm/detail/precision.hpp 3 | 4 | #pragma once 5 | 6 | #include "setup.hpp" 7 | 8 | namespace glm 9 | { 10 | enum precision 11 | { 12 | packed_highp, 13 | packed_mediump, 14 | packed_lowp, 15 | 16 | # if GLM_HAS_ALIGNED_TYPE 17 | aligned_highp, 18 | aligned_mediump, 19 | aligned_lowp, 20 | aligned = aligned_highp, 21 | # endif 22 | 23 | highp = packed_highp, 24 | mediump = packed_mediump, 25 | lowp = packed_lowp, 26 | packed = packed_highp, 27 | 28 | # if GLM_HAS_ALIGNED_TYPE && defined(GLM_FORCE_ALIGNED) 29 | defaultp = aligned_highp 30 | # else 31 | defaultp = highp 32 | # endif 33 | }; 34 | 35 | namespace detail 36 | { 37 | template 38 | struct is_aligned 39 | { 40 | static const bool value = false; 41 | }; 42 | 43 | # if GLM_HAS_ALIGNED_TYPE 44 | template<> 45 | struct is_aligned 46 | { 47 | static const bool value = true; 48 | }; 49 | 50 | template<> 51 | struct is_aligned 52 | { 53 | static const bool value = true; 54 | }; 55 | 56 | template<> 57 | struct is_aligned 58 | { 59 | static const bool value = true; 60 | }; 61 | # endif 62 | }//namespace detail 63 | }//namespace glm 64 | -------------------------------------------------------------------------------- /glm/glm/detail/type_half.hpp: -------------------------------------------------------------------------------- 1 | /// @ref core 2 | /// @file glm/detail/type_half.hpp 3 | 4 | #pragma once 5 | 6 | #include "setup.hpp" 7 | 8 | namespace glm{ 9 | namespace detail 10 | { 11 | typedef short hdata; 12 | 13 | GLM_FUNC_DECL float toFloat32(hdata value); 14 | GLM_FUNC_DECL hdata toFloat16(float const & value); 15 | 16 | }//namespace detail 17 | }//namespace glm 18 | 19 | #include "type_half.inl" 20 | -------------------------------------------------------------------------------- /glm/glm/detail/type_mat.inl: -------------------------------------------------------------------------------- 1 | /// @ref core 2 | /// @file glm/detail/type_mat.inl 3 | 4 | -------------------------------------------------------------------------------- /glm/glm/detail/type_mat4x4_simd.inl: -------------------------------------------------------------------------------- 1 | /// @ref core 2 | /// @file glm/detail/type_mat4x4_sse2.inl 3 | 4 | namespace glm 5 | { 6 | 7 | }//namespace glm 8 | -------------------------------------------------------------------------------- /glm/glm/detail/type_vec.inl: -------------------------------------------------------------------------------- 1 | /// @ref core 2 | /// @file glm/detail/type_vec.inl 3 | -------------------------------------------------------------------------------- /glm/glm/exponential.hpp: -------------------------------------------------------------------------------- 1 | /// @ref core 2 | /// @file glm/exponential.hpp 3 | 4 | #pragma once 5 | 6 | #include "detail/func_exponential.hpp" 7 | -------------------------------------------------------------------------------- /glm/glm/geometric.hpp: -------------------------------------------------------------------------------- 1 | /// @ref core 2 | /// @file glm/geometric.hpp 3 | 4 | #pragma once 5 | 6 | #include "detail/func_geometric.hpp" 7 | -------------------------------------------------------------------------------- /glm/glm/gtc/functions.hpp: -------------------------------------------------------------------------------- 1 | /// @ref gtc_functions 2 | /// @file glm/gtc/functions.hpp 3 | /// 4 | /// @see core (dependence) 5 | /// @see gtc_half_float (dependence) 6 | /// @see gtc_quaternion (dependence) 7 | /// 8 | /// @defgroup gtc_functions GLM_GTC_functions 9 | /// @ingroup gtc 10 | /// 11 | /// @brief List of useful common functions. 12 | /// 13 | /// need to be included to use these functionalities. 14 | 15 | #pragma once 16 | 17 | // Dependencies 18 | #include "../detail/setup.hpp" 19 | #include "../detail/precision.hpp" 20 | #include "../detail/type_vec2.hpp" 21 | 22 | #if GLM_MESSAGES == GLM_MESSAGES_ENABLED && !defined(GLM_EXT_INCLUDED) 23 | # pragma message("GLM: GLM_GTC_functions extension included") 24 | #endif 25 | 26 | namespace glm 27 | { 28 | /// @addtogroup gtc_functions 29 | /// @{ 30 | 31 | /// 1D gauss function 32 | /// 33 | /// @see gtc_epsilon 34 | template 35 | GLM_FUNC_DECL T gauss( 36 | T x, 37 | T ExpectedValue, 38 | T StandardDeviation); 39 | 40 | /// 2D gauss function 41 | /// 42 | /// @see gtc_epsilon 43 | template 44 | GLM_FUNC_DECL T gauss( 45 | tvec2 const& Coord, 46 | tvec2 const& ExpectedValue, 47 | tvec2 const& StandardDeviation); 48 | 49 | /// @} 50 | }//namespace glm 51 | 52 | #include "functions.inl" 53 | 54 | -------------------------------------------------------------------------------- /glm/glm/gtc/functions.inl: -------------------------------------------------------------------------------- 1 | /// @ref gtc_functions 2 | /// @file glm/gtc/functions.inl 3 | 4 | #include "../detail/func_exponential.hpp" 5 | 6 | namespace glm 7 | { 8 | template 9 | GLM_FUNC_QUALIFIER T gauss 10 | ( 11 | T x, 12 | T ExpectedValue, 13 | T StandardDeviation 14 | ) 15 | { 16 | return exp(-((x - ExpectedValue) * (x - ExpectedValue)) / (static_cast(2) * StandardDeviation * StandardDeviation)) / (StandardDeviation * sqrt(static_cast(6.28318530717958647692528676655900576))); 17 | } 18 | 19 | template 20 | GLM_FUNC_QUALIFIER T gauss 21 | ( 22 | tvec2 const& Coord, 23 | tvec2 const& ExpectedValue, 24 | tvec2 const& StandardDeviation 25 | ) 26 | { 27 | tvec2 const Squared = ((Coord - ExpectedValue) * (Coord - ExpectedValue)) / (static_cast(2) * StandardDeviation * StandardDeviation); 28 | return exp(-(Squared.x + Squared.y)); 29 | } 30 | }//namespace glm 31 | 32 | -------------------------------------------------------------------------------- /glm/glm/gtc/type_precision.inl: -------------------------------------------------------------------------------- 1 | /// @ref gtc_swizzle 2 | /// @file glm/gtc/swizzle.inl 3 | 4 | namespace glm 5 | { 6 | 7 | } 8 | -------------------------------------------------------------------------------- /glm/glm/gtc/vec1.inl: -------------------------------------------------------------------------------- 1 | /// @ref gtc_vec1 2 | /// @file glm/gtc/vec1.inl 3 | -------------------------------------------------------------------------------- /glm/glm/gtx/closest_point.hpp: -------------------------------------------------------------------------------- 1 | /// @ref gtx_closest_point 2 | /// @file glm/gtx/closest_point.hpp 3 | /// 4 | /// @see core (dependence) 5 | /// 6 | /// @defgroup gtx_closest_point GLM_GTX_closest_point 7 | /// @ingroup gtx 8 | /// 9 | /// @brief Find the point on a straight line which is the closet of a point. 10 | /// 11 | /// need to be included to use these functionalities. 12 | 13 | #pragma once 14 | 15 | // Dependency: 16 | #include "../glm.hpp" 17 | 18 | #if GLM_MESSAGES == GLM_MESSAGES_ENABLED && !defined(GLM_EXT_INCLUDED) 19 | # pragma message("GLM: GLM_GTX_closest_point extension included") 20 | #endif 21 | 22 | namespace glm 23 | { 24 | /// @addtogroup gtx_closest_point 25 | /// @{ 26 | 27 | /// Find the point on a straight line which is the closet of a point. 28 | /// @see gtx_closest_point 29 | template 30 | GLM_FUNC_DECL tvec3 closestPointOnLine( 31 | tvec3 const & point, 32 | tvec3 const & a, 33 | tvec3 const & b); 34 | 35 | /// 2d lines work as well 36 | template 37 | GLM_FUNC_DECL tvec2 closestPointOnLine( 38 | tvec2 const & point, 39 | tvec2 const & a, 40 | tvec2 const & b); 41 | 42 | /// @} 43 | }// namespace glm 44 | 45 | #include "closest_point.inl" 46 | -------------------------------------------------------------------------------- /glm/glm/gtx/closest_point.inl: -------------------------------------------------------------------------------- 1 | /// @ref gtx_closest_point 2 | /// @file glm/gtx/closest_point.inl 3 | 4 | namespace glm 5 | { 6 | template 7 | GLM_FUNC_QUALIFIER tvec3 closestPointOnLine 8 | ( 9 | tvec3 const & point, 10 | tvec3 const & a, 11 | tvec3 const & b 12 | ) 13 | { 14 | T LineLength = distance(a, b); 15 | tvec3 Vector = point - a; 16 | tvec3 LineDirection = (b - a) / LineLength; 17 | 18 | // Project Vector to LineDirection to get the distance of point from a 19 | T Distance = dot(Vector, LineDirection); 20 | 21 | if(Distance <= T(0)) return a; 22 | if(Distance >= LineLength) return b; 23 | return a + LineDirection * Distance; 24 | } 25 | 26 | template 27 | GLM_FUNC_QUALIFIER tvec2 closestPointOnLine 28 | ( 29 | tvec2 const & point, 30 | tvec2 const & a, 31 | tvec2 const & b 32 | ) 33 | { 34 | T LineLength = distance(a, b); 35 | tvec2 Vector = point - a; 36 | tvec2 LineDirection = (b - a) / LineLength; 37 | 38 | // Project Vector to LineDirection to get the distance of point from a 39 | T Distance = dot(Vector, LineDirection); 40 | 41 | if(Distance <= T(0)) return a; 42 | if(Distance >= LineLength) return b; 43 | return a + LineDirection * Distance; 44 | } 45 | 46 | }//namespace glm 47 | -------------------------------------------------------------------------------- /glm/glm/gtx/extend.hpp: -------------------------------------------------------------------------------- 1 | /// @ref gtx_extend 2 | /// @file glm/gtx/extend.hpp 3 | /// 4 | /// @see core (dependence) 5 | /// 6 | /// @defgroup gtx_extend GLM_GTX_extend 7 | /// @ingroup gtx 8 | /// 9 | /// @brief Extend a position from a source to a position at a defined length. 10 | /// 11 | /// need to be included to use these functionalities. 12 | 13 | #pragma once 14 | 15 | // Dependency: 16 | #include "../glm.hpp" 17 | 18 | #if GLM_MESSAGES == GLM_MESSAGES_ENABLED && !defined(GLM_EXT_INCLUDED) 19 | # pragma message("GLM: GLM_GTX_extend extension included") 20 | #endif 21 | 22 | namespace glm 23 | { 24 | /// @addtogroup gtx_extend 25 | /// @{ 26 | 27 | /// Extends of Length the Origin position using the (Source - Origin) direction. 28 | /// @see gtx_extend 29 | template 30 | GLM_FUNC_DECL genType extend( 31 | genType const & Origin, 32 | genType const & Source, 33 | typename genType::value_type const Length); 34 | 35 | /// @} 36 | }//namespace glm 37 | 38 | #include "extend.inl" 39 | -------------------------------------------------------------------------------- /glm/glm/gtx/extend.inl: -------------------------------------------------------------------------------- 1 | /// @ref gtx_extend 2 | /// @file glm/gtx/extend.inl 3 | 4 | namespace glm 5 | { 6 | template 7 | GLM_FUNC_QUALIFIER genType extend 8 | ( 9 | genType const & Origin, 10 | genType const & Source, 11 | genType const & Distance 12 | ) 13 | { 14 | return Origin + (Source - Origin) * Distance; 15 | } 16 | 17 | template 18 | GLM_FUNC_QUALIFIER tvec2 extend 19 | ( 20 | tvec2 const & Origin, 21 | tvec2 const & Source, 22 | T const & Distance 23 | ) 24 | { 25 | return Origin + (Source - Origin) * Distance; 26 | } 27 | 28 | template 29 | GLM_FUNC_QUALIFIER tvec3 extend 30 | ( 31 | tvec3 const & Origin, 32 | tvec3 const & Source, 33 | T const & Distance 34 | ) 35 | { 36 | return Origin + (Source - Origin) * Distance; 37 | } 38 | 39 | template 40 | GLM_FUNC_QUALIFIER tvec4 extend 41 | ( 42 | tvec4 const & Origin, 43 | tvec4 const & Source, 44 | T const & Distance 45 | ) 46 | { 47 | return Origin + (Source - Origin) * Distance; 48 | } 49 | }//namespace glm 50 | -------------------------------------------------------------------------------- /glm/glm/gtx/float_notmalize.inl: -------------------------------------------------------------------------------- 1 | /// @ref gtx_float_normalize 2 | /// @file glm/gtx/float_normalize.inl 3 | 4 | #include 5 | 6 | namespace glm 7 | { 8 | template class vecType> 9 | GLM_FUNC_QUALIFIER vecType floatNormalize(vecType const & v) 10 | { 11 | return vecType(v) / static_cast(std::numeric_limits::max()); 12 | } 13 | 14 | }//namespace glm 15 | -------------------------------------------------------------------------------- /glm/glm/gtx/gradient_paint.inl: -------------------------------------------------------------------------------- 1 | /// @ref gtx_gradient_paint 2 | /// @file glm/gtx/gradient_paint.inl 3 | 4 | namespace glm 5 | { 6 | template 7 | GLM_FUNC_QUALIFIER T radialGradient 8 | ( 9 | tvec2 const & Center, 10 | T const & Radius, 11 | tvec2 const & Focal, 12 | tvec2 const & Position 13 | ) 14 | { 15 | tvec2 F = Focal - Center; 16 | tvec2 D = Position - Focal; 17 | T Radius2 = pow2(Radius); 18 | T Fx2 = pow2(F.x); 19 | T Fy2 = pow2(F.y); 20 | 21 | T Numerator = (D.x * F.x + D.y * F.y) + sqrt(Radius2 * (pow2(D.x) + pow2(D.y)) - pow2(D.x * F.y - D.y * F.x)); 22 | T Denominator = Radius2 - (Fx2 + Fy2); 23 | return Numerator / Denominator; 24 | } 25 | 26 | template 27 | GLM_FUNC_QUALIFIER T linearGradient 28 | ( 29 | tvec2 const & Point0, 30 | tvec2 const & Point1, 31 | tvec2 const & Position 32 | ) 33 | { 34 | tvec2 Dist = Point1 - Point0; 35 | return (Dist.x * (Position.x - Point0.x) + Dist.y * (Position.y - Point0.y)) / glm::dot(Dist, Dist); 36 | } 37 | }//namespace glm 38 | -------------------------------------------------------------------------------- /glm/glm/gtx/handed_coordinate_space.inl: -------------------------------------------------------------------------------- 1 | /// @ref gtx_handed_coordinate_space 2 | /// @file glm/gtx/handed_coordinate_space.inl 3 | 4 | namespace glm 5 | { 6 | template 7 | GLM_FUNC_QUALIFIER bool rightHanded 8 | ( 9 | tvec3 const & tangent, 10 | tvec3 const & binormal, 11 | tvec3 const & normal 12 | ) 13 | { 14 | return dot(cross(normal, tangent), binormal) > T(0); 15 | } 16 | 17 | template 18 | GLM_FUNC_QUALIFIER bool leftHanded 19 | ( 20 | tvec3 const & tangent, 21 | tvec3 const & binormal, 22 | tvec3 const & normal 23 | ) 24 | { 25 | return dot(cross(normal, tangent), binormal) < T(0); 26 | } 27 | }//namespace glm 28 | -------------------------------------------------------------------------------- /glm/glm/gtx/log_base.hpp: -------------------------------------------------------------------------------- 1 | /// @ref gtx_log_base 2 | /// @file glm/gtx/log_base.hpp 3 | /// 4 | /// @see core (dependence) 5 | /// 6 | /// @defgroup gtx_log_base GLM_GTX_log_base 7 | /// @ingroup gtx 8 | /// 9 | /// @brief Logarithm for any base. base can be a vector or a scalar. 10 | /// 11 | /// need to be included to use these functionalities. 12 | 13 | #pragma once 14 | 15 | // Dependency: 16 | #include "../glm.hpp" 17 | 18 | #if GLM_MESSAGES == GLM_MESSAGES_ENABLED && !defined(GLM_EXT_INCLUDED) 19 | # pragma message("GLM: GLM_GTX_log_base extension included") 20 | #endif 21 | 22 | namespace glm 23 | { 24 | /// @addtogroup gtx_log_base 25 | /// @{ 26 | 27 | /// Logarithm for any base. 28 | /// From GLM_GTX_log_base. 29 | template 30 | GLM_FUNC_DECL genType log( 31 | genType const & x, 32 | genType const & base); 33 | 34 | /// Logarithm for any base. 35 | /// From GLM_GTX_log_base. 36 | template class vecType> 37 | GLM_FUNC_DECL vecType sign( 38 | vecType const & x, 39 | vecType const & base); 40 | 41 | /// @} 42 | }//namespace glm 43 | 44 | #include "log_base.inl" 45 | -------------------------------------------------------------------------------- /glm/glm/gtx/log_base.inl: -------------------------------------------------------------------------------- 1 | /// @ref gtx_log_base 2 | /// @file glm/gtx/log_base.inl 3 | 4 | namespace glm 5 | { 6 | template 7 | GLM_FUNC_QUALIFIER genType log(genType const & x, genType const & base) 8 | { 9 | assert(x != genType(0)); 10 | return glm::log(x) / glm::log(base); 11 | } 12 | 13 | template class vecType> 14 | GLM_FUNC_QUALIFIER vecType log(vecType const & x, vecType const & base) 15 | { 16 | return glm::log(x) / glm::log(base); 17 | } 18 | }//namespace glm 19 | -------------------------------------------------------------------------------- /glm/glm/gtx/matrix_cross_product.hpp: -------------------------------------------------------------------------------- 1 | /// @ref gtx_matrix_cross_product 2 | /// @file glm/gtx/matrix_cross_product.hpp 3 | /// 4 | /// @see core (dependence) 5 | /// @see gtx_extented_min_max (dependence) 6 | /// 7 | /// @defgroup gtx_matrix_cross_product GLM_GTX_matrix_cross_product 8 | /// @ingroup gtx 9 | /// 10 | /// @brief Build cross product matrices 11 | /// 12 | /// need to be included to use these functionalities. 13 | 14 | #pragma once 15 | 16 | // Dependency: 17 | #include "../glm.hpp" 18 | 19 | #if GLM_MESSAGES == GLM_MESSAGES_ENABLED && !defined(GLM_EXT_INCLUDED) 20 | # pragma message("GLM: GLM_GTX_matrix_cross_product extension included") 21 | #endif 22 | 23 | namespace glm 24 | { 25 | /// @addtogroup gtx_matrix_cross_product 26 | /// @{ 27 | 28 | //! Build a cross product matrix. 29 | //! From GLM_GTX_matrix_cross_product extension. 30 | template 31 | GLM_FUNC_DECL tmat3x3 matrixCross3( 32 | tvec3 const & x); 33 | 34 | //! Build a cross product matrix. 35 | //! From GLM_GTX_matrix_cross_product extension. 36 | template 37 | GLM_FUNC_DECL tmat4x4 matrixCross4( 38 | tvec3 const & x); 39 | 40 | /// @} 41 | }//namespace glm 42 | 43 | #include "matrix_cross_product.inl" 44 | -------------------------------------------------------------------------------- /glm/glm/gtx/matrix_cross_product.inl: -------------------------------------------------------------------------------- 1 | /// @ref gtx_matrix_cross_product 2 | /// @file glm/gtx/matrix_cross_product.inl 3 | 4 | namespace glm 5 | { 6 | template 7 | GLM_FUNC_QUALIFIER tmat3x3 matrixCross3 8 | ( 9 | tvec3 const & x 10 | ) 11 | { 12 | tmat3x3 Result(T(0)); 13 | Result[0][1] = x.z; 14 | Result[1][0] = -x.z; 15 | Result[0][2] = -x.y; 16 | Result[2][0] = x.y; 17 | Result[1][2] = x.x; 18 | Result[2][1] = -x.x; 19 | return Result; 20 | } 21 | 22 | template 23 | GLM_FUNC_QUALIFIER tmat4x4 matrixCross4 24 | ( 25 | tvec3 const & x 26 | ) 27 | { 28 | tmat4x4 Result(T(0)); 29 | Result[0][1] = x.z; 30 | Result[1][0] = -x.z; 31 | Result[0][2] = -x.y; 32 | Result[2][0] = x.y; 33 | Result[1][2] = x.x; 34 | Result[2][1] = -x.x; 35 | return Result; 36 | } 37 | 38 | }//namespace glm 39 | -------------------------------------------------------------------------------- /glm/glm/gtx/matrix_decompose.hpp: -------------------------------------------------------------------------------- 1 | /// @ref gtx_matrix_decompose 2 | /// @file glm/gtx/matrix_decompose.hpp 3 | /// 4 | /// @see core (dependence) 5 | /// 6 | /// @defgroup gtx_matrix_decompose GLM_GTX_matrix_decompose 7 | /// @ingroup gtx 8 | /// 9 | /// @brief Decomposes a model matrix to translations, rotation and scale components 10 | /// 11 | /// need to be included to use these functionalities. 12 | 13 | #pragma once 14 | 15 | // Dependencies 16 | #include "../mat4x4.hpp" 17 | #include "../vec3.hpp" 18 | #include "../vec4.hpp" 19 | #include "../geometric.hpp" 20 | #include "../gtc/quaternion.hpp" 21 | #include "../gtc/matrix_transform.hpp" 22 | 23 | #if GLM_MESSAGES == GLM_MESSAGES_ENABLED && !defined(GLM_EXT_INCLUDED) 24 | # pragma message("GLM: GLM_GTX_matrix_decompose extension included") 25 | #endif 26 | 27 | namespace glm 28 | { 29 | /// @addtogroup gtx_matrix_decompose 30 | /// @{ 31 | 32 | /// Decomposes a model matrix to translations, rotation and scale components 33 | /// @see gtx_matrix_decompose 34 | template 35 | GLM_FUNC_DECL bool decompose( 36 | tmat4x4 const & modelMatrix, 37 | tvec3 & scale, tquat & orientation, tvec3 & translation, tvec3 & skew, tvec4 & perspective); 38 | 39 | /// @} 40 | }//namespace glm 41 | 42 | #include "matrix_decompose.inl" 43 | -------------------------------------------------------------------------------- /glm/glm/gtx/mixed_product.hpp: -------------------------------------------------------------------------------- 1 | /// @ref gtx_mixed_product 2 | /// @file glm/gtx/mixed_product.hpp 3 | /// 4 | /// @see core (dependence) 5 | /// 6 | /// @defgroup gtx_mixed_product GLM_GTX_mixed_producte 7 | /// @ingroup gtx 8 | /// 9 | /// @brief Mixed product of 3 vectors. 10 | /// 11 | /// need to be included to use these functionalities. 12 | 13 | #pragma once 14 | 15 | // Dependency: 16 | #include "../glm.hpp" 17 | 18 | #if GLM_MESSAGES == GLM_MESSAGES_ENABLED && !defined(GLM_EXT_INCLUDED) 19 | # pragma message("GLM: GLM_GTX_mixed_product extension included") 20 | #endif 21 | 22 | namespace glm 23 | { 24 | /// @addtogroup gtx_mixed_product 25 | /// @{ 26 | 27 | /// @brief Mixed product of 3 vectors (from GLM_GTX_mixed_product extension) 28 | template 29 | GLM_FUNC_DECL T mixedProduct( 30 | tvec3 const & v1, 31 | tvec3 const & v2, 32 | tvec3 const & v3); 33 | 34 | /// @} 35 | }// namespace glm 36 | 37 | #include "mixed_product.inl" 38 | -------------------------------------------------------------------------------- /glm/glm/gtx/mixed_product.inl: -------------------------------------------------------------------------------- 1 | /// @ref gtx_mixed_product 2 | /// @file glm/gtx/mixed_product.inl 3 | 4 | namespace glm 5 | { 6 | template 7 | GLM_FUNC_QUALIFIER T mixedProduct 8 | ( 9 | tvec3 const & v1, 10 | tvec3 const & v2, 11 | tvec3 const & v3 12 | ) 13 | { 14 | return dot(cross(v1, v2), v3); 15 | } 16 | }//namespace glm 17 | -------------------------------------------------------------------------------- /glm/glm/gtx/normal.hpp: -------------------------------------------------------------------------------- 1 | /// @ref gtx_normal 2 | /// @file glm/gtx/normal.hpp 3 | /// 4 | /// @see core (dependence) 5 | /// @see gtx_extented_min_max (dependence) 6 | /// 7 | /// @defgroup gtx_normal GLM_GTX_normal 8 | /// @ingroup gtx 9 | /// 10 | /// @brief Compute the normal of a triangle. 11 | /// 12 | /// need to be included to use these functionalities. 13 | 14 | #pragma once 15 | 16 | // Dependency: 17 | #include "../glm.hpp" 18 | 19 | #if GLM_MESSAGES == GLM_MESSAGES_ENABLED && !defined(GLM_EXT_INCLUDED) 20 | # pragma message("GLM: GLM_GTX_normal extension included") 21 | #endif 22 | 23 | namespace glm 24 | { 25 | /// @addtogroup gtx_normal 26 | /// @{ 27 | 28 | //! Computes triangle normal from triangle points. 29 | //! From GLM_GTX_normal extension. 30 | template 31 | GLM_FUNC_DECL tvec3 triangleNormal( 32 | tvec3 const & p1, 33 | tvec3 const & p2, 34 | tvec3 const & p3); 35 | 36 | /// @} 37 | }//namespace glm 38 | 39 | #include "normal.inl" 40 | -------------------------------------------------------------------------------- /glm/glm/gtx/normal.inl: -------------------------------------------------------------------------------- 1 | /// @ref gtx_normal 2 | /// @file glm/gtx/normal.inl 3 | 4 | namespace glm 5 | { 6 | template 7 | GLM_FUNC_QUALIFIER tvec3 triangleNormal 8 | ( 9 | tvec3 const & p1, 10 | tvec3 const & p2, 11 | tvec3 const & p3 12 | ) 13 | { 14 | return normalize(cross(p1 - p2, p1 - p3)); 15 | } 16 | }//namespace glm 17 | -------------------------------------------------------------------------------- /glm/glm/gtx/normalize_dot.inl: -------------------------------------------------------------------------------- 1 | /// @ref gtx_normalize_dot 2 | /// @file glm/gtx/normalize_dot.inl 3 | 4 | namespace glm 5 | { 6 | template class vecType> 7 | GLM_FUNC_QUALIFIER T normalizeDot(vecType const & x, vecType const & y) 8 | { 9 | return glm::dot(x, y) * glm::inversesqrt(glm::dot(x, x) * glm::dot(y, y)); 10 | } 11 | 12 | template class vecType> 13 | GLM_FUNC_QUALIFIER T fastNormalizeDot(vecType const & x, vecType const & y) 14 | { 15 | return glm::dot(x, y) * glm::fastInverseSqrt(glm::dot(x, x) * glm::dot(y, y)); 16 | } 17 | }//namespace glm 18 | -------------------------------------------------------------------------------- /glm/glm/gtx/number_precision.inl: -------------------------------------------------------------------------------- 1 | /// @ref gtx_number_precision 2 | /// @file glm/gtx/number_precision.inl 3 | 4 | namespace glm 5 | { 6 | 7 | } 8 | -------------------------------------------------------------------------------- /glm/glm/gtx/optimum_pow.hpp: -------------------------------------------------------------------------------- 1 | /// @ref gtx_optimum_pow 2 | /// @file glm/gtx/optimum_pow.hpp 3 | /// 4 | /// @see core (dependence) 5 | /// 6 | /// @defgroup gtx_optimum_pow GLM_GTX_optimum_pow 7 | /// @ingroup gtx 8 | /// 9 | /// @brief Integer exponentiation of power functions. 10 | /// 11 | /// need to be included to use these functionalities. 12 | 13 | #pragma once 14 | 15 | // Dependency: 16 | #include "../glm.hpp" 17 | 18 | #if GLM_MESSAGES == GLM_MESSAGES_ENABLED && !defined(GLM_EXT_INCLUDED) 19 | # pragma message("GLM: GLM_GTX_optimum_pow extension included") 20 | #endif 21 | 22 | namespace glm{ 23 | namespace gtx 24 | { 25 | /// @addtogroup gtx_optimum_pow 26 | /// @{ 27 | 28 | /// Returns x raised to the power of 2. 29 | /// 30 | /// @see gtx_optimum_pow 31 | template 32 | GLM_FUNC_DECL genType pow2(genType const & x); 33 | 34 | /// Returns x raised to the power of 3. 35 | /// 36 | /// @see gtx_optimum_pow 37 | template 38 | GLM_FUNC_DECL genType pow3(genType const & x); 39 | 40 | /// Returns x raised to the power of 4. 41 | /// 42 | /// @see gtx_optimum_pow 43 | template 44 | GLM_FUNC_DECL genType pow4(genType const & x); 45 | 46 | /// @} 47 | }//namespace gtx 48 | }//namespace glm 49 | 50 | #include "optimum_pow.inl" 51 | -------------------------------------------------------------------------------- /glm/glm/gtx/optimum_pow.inl: -------------------------------------------------------------------------------- 1 | /// @ref gtx_optimum_pow 2 | /// @file glm/gtx/optimum_pow.inl 3 | 4 | namespace glm 5 | { 6 | template 7 | GLM_FUNC_QUALIFIER genType pow2(genType const & x) 8 | { 9 | return x * x; 10 | } 11 | 12 | template 13 | GLM_FUNC_QUALIFIER genType pow3(genType const & x) 14 | { 15 | return x * x * x; 16 | } 17 | 18 | template 19 | GLM_FUNC_QUALIFIER genType pow4(genType const & x) 20 | { 21 | return (x * x) * (x * x); 22 | } 23 | }//namespace glm 24 | -------------------------------------------------------------------------------- /glm/glm/gtx/orthonormalize.hpp: -------------------------------------------------------------------------------- 1 | /// @ref gtx_orthonormalize 2 | /// @file glm/gtx/orthonormalize.hpp 3 | /// 4 | /// @see core (dependence) 5 | /// @see gtx_extented_min_max (dependence) 6 | /// 7 | /// @defgroup gtx_orthonormalize GLM_GTX_orthonormalize 8 | /// @ingroup gtx 9 | /// 10 | /// @brief Orthonormalize matrices. 11 | /// 12 | /// need to be included to use these functionalities. 13 | 14 | #pragma once 15 | 16 | // Dependency: 17 | #include "../vec3.hpp" 18 | #include "../mat3x3.hpp" 19 | #include "../geometric.hpp" 20 | 21 | #if GLM_MESSAGES == GLM_MESSAGES_ENABLED && !defined(GLM_EXT_INCLUDED) 22 | # pragma message("GLM: GLM_GTX_orthonormalize extension included") 23 | #endif 24 | 25 | namespace glm 26 | { 27 | /// @addtogroup gtx_orthonormalize 28 | /// @{ 29 | 30 | /// Returns the orthonormalized matrix of m. 31 | /// 32 | /// @see gtx_orthonormalize 33 | template 34 | GLM_FUNC_DECL tmat3x3 orthonormalize(tmat3x3 const & m); 35 | 36 | /// Orthonormalizes x according y. 37 | /// 38 | /// @see gtx_orthonormalize 39 | template 40 | GLM_FUNC_DECL tvec3 orthonormalize(tvec3 const & x, tvec3 const & y); 41 | 42 | /// @} 43 | }//namespace glm 44 | 45 | #include "orthonormalize.inl" 46 | -------------------------------------------------------------------------------- /glm/glm/gtx/orthonormalize.inl: -------------------------------------------------------------------------------- 1 | /// @ref gtx_orthonormalize 2 | /// @file glm/gtx/orthonormalize.inl 3 | 4 | namespace glm 5 | { 6 | template 7 | GLM_FUNC_QUALIFIER tmat3x3 orthonormalize(tmat3x3 const & m) 8 | { 9 | tmat3x3 r = m; 10 | 11 | r[0] = normalize(r[0]); 12 | 13 | T d0 = dot(r[0], r[1]); 14 | r[1] -= r[0] * d0; 15 | r[1] = normalize(r[1]); 16 | 17 | T d1 = dot(r[1], r[2]); 18 | d0 = dot(r[0], r[2]); 19 | r[2] -= r[0] * d0 + r[1] * d1; 20 | r[2] = normalize(r[2]); 21 | 22 | return r; 23 | } 24 | 25 | template 26 | GLM_FUNC_QUALIFIER tvec3 orthonormalize(tvec3 const & x, tvec3 const & y) 27 | { 28 | return normalize(x - y * dot(y, x)); 29 | } 30 | }//namespace glm 31 | -------------------------------------------------------------------------------- /glm/glm/gtx/perpendicular.hpp: -------------------------------------------------------------------------------- 1 | /// @ref gtx_perpendicular 2 | /// @file glm/gtx/perpendicular.hpp 3 | /// 4 | /// @see core (dependence) 5 | /// @see gtx_projection (dependence) 6 | /// 7 | /// @defgroup gtx_perpendicular GLM_GTX_perpendicular 8 | /// @ingroup gtx 9 | /// 10 | /// @brief Perpendicular of a vector from other one 11 | /// 12 | /// need to be included to use these functionalities. 13 | 14 | #pragma once 15 | 16 | // Dependency: 17 | #include "../glm.hpp" 18 | #include "../gtx/projection.hpp" 19 | 20 | #if GLM_MESSAGES == GLM_MESSAGES_ENABLED && !defined(GLM_EXT_INCLUDED) 21 | # pragma message("GLM: GLM_GTX_perpendicular extension included") 22 | #endif 23 | 24 | namespace glm 25 | { 26 | /// @addtogroup gtx_perpendicular 27 | /// @{ 28 | 29 | //! Projects x a perpendicular axis of Normal. 30 | //! From GLM_GTX_perpendicular extension. 31 | template 32 | GLM_FUNC_DECL vecType perp( 33 | vecType const & x, 34 | vecType const & Normal); 35 | 36 | /// @} 37 | }//namespace glm 38 | 39 | #include "perpendicular.inl" 40 | -------------------------------------------------------------------------------- /glm/glm/gtx/perpendicular.inl: -------------------------------------------------------------------------------- 1 | /// @ref gtx_perpendicular 2 | /// @file glm/gtx/perpendicular.inl 3 | 4 | namespace glm 5 | { 6 | template 7 | GLM_FUNC_QUALIFIER vecType perp 8 | ( 9 | vecType const & x, 10 | vecType const & Normal 11 | ) 12 | { 13 | return x - proj(x, Normal); 14 | } 15 | }//namespace glm 16 | -------------------------------------------------------------------------------- /glm/glm/gtx/polar_coordinates.hpp: -------------------------------------------------------------------------------- 1 | /// @ref gtx_polar_coordinates 2 | /// @file glm/gtx/polar_coordinates.hpp 3 | /// 4 | /// @see core (dependence) 5 | /// 6 | /// @defgroup gtx_polar_coordinates GLM_GTX_polar_coordinates 7 | /// @ingroup gtx 8 | /// 9 | /// @brief Conversion from Euclidean space to polar space and revert. 10 | /// 11 | /// need to be included to use these functionalities. 12 | 13 | #pragma once 14 | 15 | // Dependency: 16 | #include "../glm.hpp" 17 | 18 | #if GLM_MESSAGES == GLM_MESSAGES_ENABLED && !defined(GLM_EXT_INCLUDED) 19 | # pragma message("GLM: GLM_GTX_polar_coordinates extension included") 20 | #endif 21 | 22 | namespace glm 23 | { 24 | /// @addtogroup gtx_polar_coordinates 25 | /// @{ 26 | 27 | /// Convert Euclidean to Polar coordinates, x is the xz distance, y, the latitude and z the longitude. 28 | /// 29 | /// @see gtx_polar_coordinates 30 | template 31 | GLM_FUNC_DECL tvec3 polar( 32 | tvec3 const & euclidean); 33 | 34 | /// Convert Polar to Euclidean coordinates. 35 | /// 36 | /// @see gtx_polar_coordinates 37 | template 38 | GLM_FUNC_DECL tvec3 euclidean( 39 | tvec2 const & polar); 40 | 41 | /// @} 42 | }//namespace glm 43 | 44 | #include "polar_coordinates.inl" 45 | -------------------------------------------------------------------------------- /glm/glm/gtx/polar_coordinates.inl: -------------------------------------------------------------------------------- 1 | /// @ref gtx_polar_coordinates 2 | /// @file glm/gtx/polar_coordinates.inl 3 | 4 | namespace glm 5 | { 6 | template 7 | GLM_FUNC_QUALIFIER tvec3 polar 8 | ( 9 | tvec3 const & euclidean 10 | ) 11 | { 12 | T const Length(length(euclidean)); 13 | tvec3 const tmp(euclidean / Length); 14 | T const xz_dist(sqrt(tmp.x * tmp.x + tmp.z * tmp.z)); 15 | 16 | return tvec3( 17 | asin(tmp.y), // latitude 18 | atan(tmp.x, tmp.z), // longitude 19 | xz_dist); // xz distance 20 | } 21 | 22 | template 23 | GLM_FUNC_QUALIFIER tvec3 euclidean 24 | ( 25 | tvec2 const & polar 26 | ) 27 | { 28 | T const latitude(polar.x); 29 | T const longitude(polar.y); 30 | 31 | return tvec3( 32 | cos(latitude) * sin(longitude), 33 | sin(latitude), 34 | cos(latitude) * cos(longitude)); 35 | } 36 | 37 | }//namespace glm 38 | -------------------------------------------------------------------------------- /glm/glm/gtx/projection.hpp: -------------------------------------------------------------------------------- 1 | /// @ref gtx_projection 2 | /// @file glm/gtx/projection.hpp 3 | /// 4 | /// @see core (dependence) 5 | /// 6 | /// @defgroup gtx_projection GLM_GTX_projection 7 | /// @ingroup gtx 8 | /// 9 | /// @brief Projection of a vector to other one 10 | /// 11 | /// need to be included to use these functionalities. 12 | 13 | #pragma once 14 | 15 | // Dependency: 16 | #include "../geometric.hpp" 17 | 18 | #if GLM_MESSAGES == GLM_MESSAGES_ENABLED && !defined(GLM_EXT_INCLUDED) 19 | # pragma message("GLM: GLM_GTX_projection extension included") 20 | #endif 21 | 22 | namespace glm 23 | { 24 | /// @addtogroup gtx_projection 25 | /// @{ 26 | 27 | /// Projects x on Normal. 28 | /// 29 | /// @see gtx_projection 30 | template 31 | GLM_FUNC_DECL vecType proj(vecType const & x, vecType const & Normal); 32 | 33 | /// @} 34 | }//namespace glm 35 | 36 | #include "projection.inl" 37 | -------------------------------------------------------------------------------- /glm/glm/gtx/projection.inl: -------------------------------------------------------------------------------- 1 | /// @ref gtx_projection 2 | /// @file glm/gtx/projection.inl 3 | 4 | namespace glm 5 | { 6 | template 7 | GLM_FUNC_QUALIFIER vecType proj(vecType const & x, vecType const & Normal) 8 | { 9 | return glm::dot(x, Normal) / glm::dot(Normal, Normal) * Normal; 10 | } 11 | }//namespace glm 12 | -------------------------------------------------------------------------------- /glm/glm/gtx/raw_data.hpp: -------------------------------------------------------------------------------- 1 | /// @ref gtx_raw_data 2 | /// @file glm/gtx/raw_data.hpp 3 | /// 4 | /// @see core (dependence) 5 | /// 6 | /// @defgroup gtx_raw_data GLM_GTX_raw_data 7 | /// @ingroup gtx 8 | /// 9 | /// @brief Projection of a vector to other one 10 | /// 11 | /// need to be included to use these functionalities. 12 | 13 | #pragma once 14 | 15 | // Dependencies 16 | #include "../detail/setup.hpp" 17 | #include "../detail/type_int.hpp" 18 | 19 | #if GLM_MESSAGES == GLM_MESSAGES_ENABLED && !defined(GLM_EXT_INCLUDED) 20 | # pragma message("GLM: GLM_GTX_raw_data extension included") 21 | #endif 22 | 23 | namespace glm 24 | { 25 | /// @addtogroup gtx_raw_data 26 | /// @{ 27 | 28 | //! Type for byte numbers. 29 | //! From GLM_GTX_raw_data extension. 30 | typedef detail::uint8 byte; 31 | 32 | //! Type for word numbers. 33 | //! From GLM_GTX_raw_data extension. 34 | typedef detail::uint16 word; 35 | 36 | //! Type for dword numbers. 37 | //! From GLM_GTX_raw_data extension. 38 | typedef detail::uint32 dword; 39 | 40 | //! Type for qword numbers. 41 | //! From GLM_GTX_raw_data extension. 42 | typedef detail::uint64 qword; 43 | 44 | /// @} 45 | }// namespace glm 46 | 47 | #include "raw_data.inl" 48 | -------------------------------------------------------------------------------- /glm/glm/gtx/raw_data.inl: -------------------------------------------------------------------------------- 1 | /// @ref gtx_raw_data 2 | /// @file glm/gtx/raw_data.inl 3 | -------------------------------------------------------------------------------- /glm/glm/gtx/scalar_relational.hpp: -------------------------------------------------------------------------------- 1 | /// @ref gtx_scalar_relational 2 | /// @file glm/gtx/scalar_relational.hpp 3 | /// 4 | /// @see core (dependence) 5 | /// 6 | /// @defgroup gtx_scalar_relational GLM_GTX_scalar_relational 7 | /// @ingroup gtx 8 | /// 9 | /// @brief Extend a position from a source to a position at a defined length. 10 | /// 11 | /// need to be included to use these functionalities. 12 | 13 | #pragma once 14 | 15 | // Dependency: 16 | #include "../glm.hpp" 17 | 18 | #if GLM_MESSAGES == GLM_MESSAGES_ENABLED && !defined(GLM_EXT_INCLUDED) 19 | # pragma message("GLM: GLM_GTX_extend extension included") 20 | #endif 21 | 22 | namespace glm 23 | { 24 | /// @addtogroup gtx_scalar_relational 25 | /// @{ 26 | 27 | 28 | 29 | /// @} 30 | }//namespace glm 31 | 32 | #include "scalar_relational.inl" 33 | -------------------------------------------------------------------------------- /glm/glm/gtx/std_based_type.inl: -------------------------------------------------------------------------------- 1 | /// @ref gtx_std_based_type 2 | /// @file glm/gtx/std_based_type.inl 3 | 4 | namespace glm 5 | { 6 | 7 | } 8 | -------------------------------------------------------------------------------- /glm/glm/gtx/transform.inl: -------------------------------------------------------------------------------- 1 | /// @ref gtx_transform 2 | /// @file glm/gtx/transform.inl 3 | 4 | namespace glm 5 | { 6 | template 7 | GLM_FUNC_QUALIFIER tmat4x4 translate(tvec3 const & v) 8 | { 9 | return translate(tmat4x4(static_cast(1)), v); 10 | } 11 | 12 | template 13 | GLM_FUNC_QUALIFIER tmat4x4 rotate(T angle, tvec3 const & v) 14 | { 15 | return rotate(tmat4x4(static_cast(1)), angle, v); 16 | } 17 | 18 | template 19 | GLM_FUNC_QUALIFIER tmat4x4 scale(tvec3 const & v) 20 | { 21 | return scale(tmat4x4(static_cast(1)), v); 22 | } 23 | 24 | }//namespace glm 25 | -------------------------------------------------------------------------------- /glm/glm/gtx/type_aligned.inl: -------------------------------------------------------------------------------- 1 | /// @ref gtc_type_aligned 2 | /// @file glm/gtc/type_aligned.inl 3 | 4 | namespace glm 5 | { 6 | 7 | } 8 | -------------------------------------------------------------------------------- /glm/glm/gtx/type_trait.inl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xcysuccess/LearnOpenGLNote/0dc03002531eef4a3f294ea5ba236d34fde4449b/glm/glm/gtx/type_trait.inl -------------------------------------------------------------------------------- /glm/glm/integer.hpp: -------------------------------------------------------------------------------- 1 | /// @ref core 2 | /// @file glm/integer.hpp 3 | 4 | #pragma once 5 | 6 | #include "detail/func_integer.hpp" 7 | -------------------------------------------------------------------------------- /glm/glm/matrix.hpp: -------------------------------------------------------------------------------- 1 | /// @ref core 2 | /// @file glm/matrix.hpp 3 | 4 | #pragma once 5 | 6 | #include "detail/func_matrix.hpp" 7 | -------------------------------------------------------------------------------- /glm/glm/packing.hpp: -------------------------------------------------------------------------------- 1 | /// @ref core 2 | /// @file glm/packing.hpp 3 | 4 | #pragma once 5 | 6 | #include "detail/func_packing.hpp" 7 | -------------------------------------------------------------------------------- /glm/glm/simd/exponential.h: -------------------------------------------------------------------------------- 1 | /// @ref simd 2 | /// @file glm/simd/experimental.h 3 | 4 | #pragma once 5 | 6 | #include "platform.h" 7 | 8 | #if GLM_ARCH & GLM_ARCH_SSE2_BIT 9 | 10 | GLM_FUNC_QUALIFIER glm_vec4 glm_vec1_sqrt_lowp(glm_vec4 x) 11 | { 12 | return _mm_mul_ss(_mm_rsqrt_ss(x), x); 13 | } 14 | 15 | GLM_FUNC_QUALIFIER glm_vec4 glm_vec4_sqrt_lowp(glm_vec4 x) 16 | { 17 | return _mm_mul_ps(_mm_rsqrt_ps(x), x); 18 | } 19 | 20 | #endif//GLM_ARCH & GLM_ARCH_SSE2_BIT 21 | -------------------------------------------------------------------------------- /glm/glm/simd/packing.h: -------------------------------------------------------------------------------- 1 | /// @ref simd 2 | /// @file glm/simd/packing.h 3 | 4 | #pragma once 5 | 6 | #if GLM_ARCH & GLM_ARCH_SSE2_BIT 7 | 8 | #endif//GLM_ARCH & GLM_ARCH_SSE2_BIT 9 | -------------------------------------------------------------------------------- /glm/glm/simd/trigonometric.h: -------------------------------------------------------------------------------- 1 | /// @ref simd 2 | /// @file glm/simd/trigonometric.h 3 | 4 | #pragma once 5 | 6 | #if GLM_ARCH & GLM_ARCH_SSE2_BIT 7 | 8 | #endif//GLM_ARCH & GLM_ARCH_SSE2_BIT 9 | 10 | -------------------------------------------------------------------------------- /glm/glm/simd/vector_relational.h: -------------------------------------------------------------------------------- 1 | /// @ref simd 2 | /// @file glm/simd/vector_relational.h 3 | 4 | #pragma once 5 | 6 | #if GLM_ARCH & GLM_ARCH_SSE2_BIT 7 | 8 | #endif//GLM_ARCH & GLM_ARCH_SSE2_BIT 9 | -------------------------------------------------------------------------------- /glm/glm/trigonometric.hpp: -------------------------------------------------------------------------------- 1 | /// @ref core 2 | /// @file glm/trigonometric.hpp 3 | 4 | #pragma once 5 | 6 | #include "detail/func_trigonometric.hpp" 7 | -------------------------------------------------------------------------------- /glm/glm/vec2.hpp: -------------------------------------------------------------------------------- 1 | /// @ref core 2 | /// @file glm/vec2.hpp 3 | 4 | #pragma once 5 | 6 | #include "detail/type_vec2.hpp" 7 | -------------------------------------------------------------------------------- /glm/glm/vec3.hpp: -------------------------------------------------------------------------------- 1 | /// @ref core 2 | /// @file glm/vec3.hpp 3 | 4 | #pragma once 5 | 6 | #include "detail/type_vec3.hpp" 7 | -------------------------------------------------------------------------------- /glm/glm/vec4.hpp: -------------------------------------------------------------------------------- 1 | /// @ref core 2 | /// @file glm/vec4.hpp 3 | 4 | #pragma once 5 | 6 | #include "detail/type_vec4.hpp" 7 | -------------------------------------------------------------------------------- /glm/glm/vector_relational.hpp: -------------------------------------------------------------------------------- 1 | /// @ref core 2 | /// @file glm/vector_relational.hpp 3 | 4 | #pragma once 5 | 6 | #include "detail/func_vector_relational.hpp" 7 | -------------------------------------------------------------------------------- /glm/test/.DS_Store: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xcysuccess/LearnOpenGLNote/0dc03002531eef4a3f294ea5ba236d34fde4449b/glm/test/.DS_Store -------------------------------------------------------------------------------- /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 | -------------------------------------------------------------------------------- /glm/test/bug/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | glmCreateTestGTC(bug_ms_vec_static) 2 | -------------------------------------------------------------------------------- /glm/test/bug/bug_ms_vec_static.cpp: -------------------------------------------------------------------------------- 1 | #define GLM_FORCE_SWIZZLE 2 | #include 3 | 4 | struct Foo 5 | { 6 | static glm::vec2 Bar; 7 | }; 8 | 9 | glm::vec2 Foo::Bar = glm::vec2(1.f, 1.f); 10 | 11 | int main() 12 | { 13 | return 0; 14 | } 15 | -------------------------------------------------------------------------------- /glm/test/core/core_force_unrestricted_gentype.cpp: -------------------------------------------------------------------------------- 1 | #define GLM_FORCE_UNRESTRICTED_GENTYPE 2 | 3 | #include 4 | 5 | int main() 6 | { 7 | int Error = 0; 8 | 9 | return Error; 10 | } 11 | 12 | -------------------------------------------------------------------------------- /glm/test/core/core_func_noise.cpp: -------------------------------------------------------------------------------- 1 | struct vec4 2 | { 3 | static int length(); 4 | }; 5 | 6 | int vec4::length() 7 | { 8 | return 4; 9 | } 10 | 11 | int main() 12 | { 13 | int Failed = 0; 14 | 15 | vec4 V; 16 | 17 | int LengthA = V.length(); 18 | int LengthB = vec4::length(); 19 | 20 | return Failed; 21 | } 22 | 23 | -------------------------------------------------------------------------------- /glm/test/core/core_func_trigonometric.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | 3 | int main() 4 | { 5 | int Error = 0; 6 | 7 | 8 | return Error; 9 | } 10 | 11 | -------------------------------------------------------------------------------- /glm/test/core/core_func_vector_relational.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | #include 4 | #include 5 | #include 6 | 7 | int test_not() 8 | { 9 | int Error(0); 10 | 11 | { 12 | glm::bvec1 v(false); 13 | Error += glm::all(glm::not_(v)) ? 0 : 1; 14 | } 15 | 16 | { 17 | glm::bvec2 v(false); 18 | Error += glm::all(glm::not_(v)) ? 0 : 1; 19 | } 20 | 21 | { 22 | glm::bvec3 v(false); 23 | Error += glm::all(glm::not_(v)) ? 0 : 1; 24 | } 25 | 26 | { 27 | glm::bvec4 v(false); 28 | Error += glm::all(glm::not_(v)) ? 0 : 1; 29 | } 30 | 31 | return Error; 32 | } 33 | 34 | int main() 35 | { 36 | int Error(0); 37 | 38 | Error += test_not(); 39 | 40 | return Error; 41 | } 42 | 43 | -------------------------------------------------------------------------------- /glm/test/core/core_setup_force_cxx98.cpp: -------------------------------------------------------------------------------- 1 | #define GLM_FORCE_CXX98 2 | #include 3 | #include 4 | 5 | int main() 6 | { 7 | int Error = 0; 8 | 9 | return Error; 10 | } 11 | -------------------------------------------------------------------------------- /glm/test/core/core_type_float.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | 3 | int test_float_size() 4 | { 5 | return 6 | sizeof(glm::float_t) != sizeof(glm::lowp_float) && 7 | sizeof(glm::float_t) != sizeof(glm::mediump_float) && 8 | sizeof(glm::float_t) != sizeof(glm::highp_float); 9 | } 10 | 11 | int test_float_precision() 12 | { 13 | return ( 14 | sizeof(glm::lowp_float) <= sizeof(glm::mediump_float) && 15 | sizeof(glm::mediump_float) <= sizeof(glm::highp_float)) ? 0 : 1; 16 | } 17 | 18 | int test_vec2() 19 | { 20 | return 0; 21 | } 22 | 23 | int main() 24 | { 25 | int Error = 0; 26 | 27 | Error += test_float_size(); 28 | Error += test_float_precision(); 29 | 30 | return Error; 31 | } 32 | -------------------------------------------------------------------------------- /glm/test/core/core_type_int.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | 3 | int test_int_size() 4 | { 5 | return 6 | sizeof(glm::int_t) != sizeof(glm::lowp_int) && 7 | sizeof(glm::int_t) != sizeof(glm::mediump_int) && 8 | sizeof(glm::int_t) != sizeof(glm::highp_int); 9 | } 10 | 11 | int test_uint_size() 12 | { 13 | return 14 | sizeof(glm::uint_t) != sizeof(glm::lowp_uint) && 15 | sizeof(glm::uint_t) != sizeof(glm::mediump_uint) && 16 | sizeof(glm::uint_t) != sizeof(glm::highp_uint); 17 | } 18 | 19 | int test_int_precision() 20 | { 21 | return ( 22 | sizeof(glm::lowp_int) <= sizeof(glm::mediump_int) && 23 | sizeof(glm::mediump_int) <= sizeof(glm::highp_int)) ? 0 : 1; 24 | } 25 | 26 | int test_uint_precision() 27 | { 28 | return ( 29 | sizeof(glm::lowp_uint) <= sizeof(glm::mediump_uint) && 30 | sizeof(glm::mediump_uint) <= sizeof(glm::highp_uint)) ? 0 : 1; 31 | } 32 | 33 | int main() 34 | { 35 | int Error = 0; 36 | 37 | Error += test_int_size(); 38 | Error += test_int_precision(); 39 | Error += test_uint_size(); 40 | Error += test_uint_precision(); 41 | 42 | return Error; 43 | } 44 | -------------------------------------------------------------------------------- /glm/test/external/.DS_Store: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xcysuccess/LearnOpenGLNote/0dc03002531eef4a3f294ea5ba236d34fde4449b/glm/test/external/.DS_Store -------------------------------------------------------------------------------- /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 | -------------------------------------------------------------------------------- /glm/test/external/gli/core/dummy.cpp: -------------------------------------------------------------------------------- 1 | int main() 2 | { 3 | 4 | } 5 | -------------------------------------------------------------------------------- /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 | -------------------------------------------------------------------------------- /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 | -------------------------------------------------------------------------------- /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 | -------------------------------------------------------------------------------- /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 | -------------------------------------------------------------------------------- /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 | -------------------------------------------------------------------------------- /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 | -------------------------------------------------------------------------------- /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 | -------------------------------------------------------------------------------- /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 | -------------------------------------------------------------------------------- /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 | -------------------------------------------------------------------------------- /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 | -------------------------------------------------------------------------------- /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 | -------------------------------------------------------------------------------- /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 | -------------------------------------------------------------------------------- /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 | -------------------------------------------------------------------------------- /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 | -------------------------------------------------------------------------------- /glm/test/glm.cppcheck: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /glm/test/gtc/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | glmCreateTestGTC(gtc_bitfield) 2 | glmCreateTestGTC(gtc_color_space) 3 | glmCreateTestGTC(gtc_constants) 4 | glmCreateTestGTC(gtc_epsilon) 5 | glmCreateTestGTC(gtc_functions) 6 | glmCreateTestGTC(gtc_integer) 7 | glmCreateTestGTC(gtc_matrix_access) 8 | glmCreateTestGTC(gtc_matrix_integer) 9 | glmCreateTestGTC(gtc_matrix_inverse) 10 | glmCreateTestGTC(gtc_matrix_transform) 11 | glmCreateTestGTC(gtc_noise) 12 | glmCreateTestGTC(gtc_packing) 13 | glmCreateTestGTC(gtc_quaternion) 14 | glmCreateTestGTC(gtc_random) 15 | glmCreateTestGTC(gtc_round) 16 | glmCreateTestGTC(gtc_reciprocal) 17 | glmCreateTestGTC(gtc_type_aligned) 18 | glmCreateTestGTC(gtc_type_precision) 19 | glmCreateTestGTC(gtc_type_ptr) 20 | glmCreateTestGTC(gtc_ulp) 21 | glmCreateTestGTC(gtc_vec1) 22 | -------------------------------------------------------------------------------- /glm/test/gtc/gtc_constants.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | 3 | int test_epsilon() 4 | { 5 | int Error(0); 6 | 7 | { 8 | float Test = glm::epsilon(); 9 | } 10 | 11 | { 12 | double Test = glm::epsilon(); 13 | } 14 | 15 | return Error; 16 | } 17 | 18 | int main() 19 | { 20 | int Error(0); 21 | 22 | //float MinHalf = 0.0f; 23 | //while (glm::half(MinHalf) == glm::half(0.0f)) 24 | // MinHalf += std::numeric_limits::epsilon(); 25 | Error += test_epsilon(); 26 | 27 | return Error; 28 | } 29 | -------------------------------------------------------------------------------- /glm/test/gtc/gtc_functions.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | 4 | int test_gauss_1d() 5 | { 6 | int Error = 0; 7 | 8 | std::vector Result(20); 9 | for(std::size_t i = 0, n = Result.size(); i < n; ++i) 10 | Result[i] = glm::gauss(static_cast(i) * 0.1f, 0.0f, 1.0f); 11 | 12 | return Error; 13 | } 14 | 15 | int test_gauss_2d() 16 | { 17 | int Error = 0; 18 | 19 | std::vector Result(20); 20 | for(std::size_t i = 0, n = Result.size(); i < n; ++i) 21 | Result[i] = glm::gauss(glm::vec2(i) * 0.1f, glm::vec2(0.0f), glm::vec2(1.0f)); 22 | 23 | return Error; 24 | } 25 | 26 | int main() 27 | { 28 | int Error = 0; 29 | 30 | Error += test_gauss_1d(); 31 | Error += test_gauss_2d(); 32 | 33 | return Error; 34 | } 35 | 36 | -------------------------------------------------------------------------------- /glm/test/gtc/gtc_matrix_integer.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | 3 | int main() 4 | { 5 | int Error = 0; 6 | 7 | return Error; 8 | } 9 | -------------------------------------------------------------------------------- /glm/test/gtc/gtc_matrix_inverse.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | 4 | int test_affine() 5 | { 6 | int Error = 0; 7 | 8 | { 9 | glm::mat3 const M( 10 | 2.f, 0.f, 0.f, 11 | 0.f, 2.f, 0.f, 12 | 0.f, 0.f, 1.f); 13 | glm::mat3 const A = glm::affineInverse(M); 14 | glm::mat3 const I = glm::inverse(M); 15 | glm::mat3 const R = glm::affineInverse(A); 16 | 17 | for(glm::length_t i = 0; i < A.length(); ++i) 18 | { 19 | Error += glm::all(glm::epsilonEqual(M[i], R[i], 0.01f)) ? 0 : 1; 20 | Error += glm::all(glm::epsilonEqual(A[i], I[i], 0.01f)) ? 0 : 1; 21 | } 22 | } 23 | 24 | { 25 | glm::mat4 const M( 26 | 2.f, 0.f, 0.f, 0.f, 27 | 0.f, 2.f, 0.f, 0.f, 28 | 0.f, 0.f, 2.f, 0.f, 29 | 0.f, 0.f, 0.f, 1.f); 30 | glm::mat4 const A = glm::affineInverse(M); 31 | glm::mat4 const I = glm::inverse(M); 32 | glm::mat4 const R = glm::affineInverse(A); 33 | 34 | for(glm::length_t i = 0; i < A.length(); ++i) 35 | { 36 | Error += glm::all(glm::epsilonEqual(M[i], R[i], 0.01f)) ? 0 : 1; 37 | Error += glm::all(glm::epsilonEqual(A[i], I[i], 0.01f)) ? 0 : 1; 38 | } 39 | } 40 | 41 | return Error; 42 | } 43 | 44 | int main() 45 | { 46 | int Error = 0; 47 | 48 | Error += test_affine(); 49 | 50 | return Error; 51 | } 52 | -------------------------------------------------------------------------------- /glm/test/gtc/gtc_matrix_transform.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | 4 | int test_perspective() 5 | { 6 | int Error = 0; 7 | 8 | glm::mat4 Projection = glm::perspective(glm::pi() * 0.25f, 4.0f / 3.0f, 0.1f, 100.0f); 9 | 10 | return Error; 11 | } 12 | 13 | int test_pick() 14 | { 15 | int Error = 0; 16 | 17 | glm::mat4 Pick = glm::pickMatrix(glm::vec2(1, 2), glm::vec2(3, 4), glm::ivec4(0, 0, 320, 240)); 18 | 19 | return Error; 20 | } 21 | 22 | int test_tweakedInfinitePerspective() 23 | { 24 | int Error = 0; 25 | 26 | glm::mat4 ProjectionA = glm::tweakedInfinitePerspective(45.f, 640.f/480.f, 1.0f); 27 | glm::mat4 ProjectionB = glm::tweakedInfinitePerspective(45.f, 640.f/480.f, 1.0f, 0.001f); 28 | 29 | 30 | return Error; 31 | } 32 | 33 | int test_translate() 34 | { 35 | int Error = 0; 36 | 37 | glm::lowp_vec3 v(1.0); 38 | glm::lowp_mat4 m(0); 39 | glm::lowp_mat4 t = glm::translate(m, v); 40 | 41 | return Error; 42 | } 43 | 44 | int main() 45 | { 46 | int Error = 0; 47 | 48 | Error += test_translate(); 49 | Error += test_tweakedInfinitePerspective(); 50 | Error += test_pick(); 51 | Error += test_perspective(); 52 | 53 | return Error; 54 | } 55 | -------------------------------------------------------------------------------- /glm/test/gtc/gtc_quaternion.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xcysuccess/LearnOpenGLNote/0dc03002531eef4a3f294ea5ba236d34fde4449b/glm/test/gtc/gtc_quaternion.cpp -------------------------------------------------------------------------------- /glm/test/gtc/gtc_reciprocal.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | 4 | int main() 5 | { 6 | return 0; 7 | } 8 | 9 | -------------------------------------------------------------------------------- /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 | -------------------------------------------------------------------------------- /glm/test/gtc/gtc_vec1.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | 3 | int main() 4 | { 5 | int Error = 0; 6 | 7 | return Error; 8 | } 9 | -------------------------------------------------------------------------------- /glm/test/gtx/gtx_associated_min_max.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | 4 | int main() 5 | { 6 | int Error(0); 7 | 8 | return Error; 9 | } 10 | -------------------------------------------------------------------------------- /glm/test/gtx/gtx_closest_point.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | 3 | int main() 4 | { 5 | int Error(0); 6 | 7 | return Error; 8 | } 9 | -------------------------------------------------------------------------------- /glm/test/gtx/gtx_color_space.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | 3 | int test_saturation() 4 | { 5 | int Error(0); 6 | 7 | glm::vec4 Color = glm::saturation(1.0f, glm::vec4(1.0, 0.5, 0.0, 1.0)); 8 | 9 | return Error; 10 | } 11 | 12 | int main() 13 | { 14 | int Error(0); 15 | 16 | Error += test_saturation(); 17 | 18 | return Error; 19 | } 20 | -------------------------------------------------------------------------------- /glm/test/gtx/gtx_color_space_YCoCg.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | 3 | int main() 4 | { 5 | int Error(0); 6 | 7 | return Error; 8 | } 9 | -------------------------------------------------------------------------------- /glm/test/gtx/gtx_compatibility.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | 3 | int main() 4 | { 5 | int Error(0); 6 | 7 | Error += glm::isfinite(1.0f) ? 0 : 1; 8 | Error += glm::isfinite(1.0) ? 0 : 1; 9 | Error += glm::isfinite(-1.0f) ? 0 : 1; 10 | Error += glm::isfinite(-1.0) ? 0 : 1; 11 | 12 | Error += glm::all(glm::isfinite(glm::vec4(1.0f))) ? 0 : 1; 13 | Error += glm::all(glm::isfinite(glm::dvec4(1.0))) ? 0 : 1; 14 | Error += glm::all(glm::isfinite(glm::vec4(-1.0f))) ? 0 : 1; 15 | Error += glm::all(glm::isfinite(glm::dvec4(-1.0))) ? 0 : 1; 16 | 17 | return Error; 18 | } 19 | -------------------------------------------------------------------------------- /glm/test/gtx/gtx_extend.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | 3 | int main() 4 | { 5 | int Error(0); 6 | 7 | return Error; 8 | } 9 | -------------------------------------------------------------------------------- /glm/test/gtx/gtx_extended_min_max.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | 3 | int main() 4 | { 5 | int Error(0); 6 | 7 | return Error; 8 | } 9 | -------------------------------------------------------------------------------- /glm/test/gtx/gtx_fast_exponential.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | 3 | int main() 4 | { 5 | int Error(0); 6 | 7 | return Error; 8 | } 9 | -------------------------------------------------------------------------------- /glm/test/gtx/gtx_gradient_paint.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | 3 | int test_radialGradient() 4 | { 5 | int Error = 0; 6 | 7 | float Gradient = glm::radialGradient(glm::vec2(0), 1.0f, glm::vec2(1), glm::vec2(0.5)); 8 | Error += Gradient != 0.0f ? 0 : 1; 9 | 10 | return Error; 11 | } 12 | 13 | int test_linearGradient() 14 | { 15 | int Error = 0; 16 | 17 | float Gradient = glm::linearGradient(glm::vec2(0), glm::vec2(1), glm::vec2(0.5)); 18 | Error += Gradient != 0.0f ? 0 : 1; 19 | 20 | return Error; 21 | } 22 | 23 | int main() 24 | { 25 | int Error = 0; 26 | 27 | Error += test_radialGradient(); 28 | Error += test_linearGradient(); 29 | 30 | return Error; 31 | } 32 | 33 | 34 | -------------------------------------------------------------------------------- /glm/test/gtx/gtx_handed_coordinate_space.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | 3 | int main() 4 | { 5 | int Error(0); 6 | 7 | return Error; 8 | } 9 | -------------------------------------------------------------------------------- /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 | -------------------------------------------------------------------------------- /glm/test/gtx/gtx_intersect.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | 3 | int main() 4 | { 5 | int Error(0); 6 | 7 | return Error; 8 | } 9 | -------------------------------------------------------------------------------- /glm/test/gtx/gtx_matrix_cross_product.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | 3 | int main() 4 | { 5 | int Error(0); 6 | 7 | return Error; 8 | } 9 | -------------------------------------------------------------------------------- /glm/test/gtx/gtx_matrix_decompose.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | 3 | int main() 4 | { 5 | int Error(0); 6 | 7 | glm::mat4 Matrix(1); 8 | 9 | glm::vec3 Scale; 10 | glm::quat Orientation; 11 | glm::vec3 Translation; 12 | glm::vec3 Skew(1); 13 | glm::vec4 Perspective(1); 14 | 15 | glm::decompose(Matrix, Scale, Orientation, Translation, Skew, Perspective); 16 | 17 | return Error; 18 | } 19 | -------------------------------------------------------------------------------- /glm/test/gtx/gtx_matrix_interpolation.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | 3 | int main() 4 | { 5 | int Error(0); 6 | 7 | return Error; 8 | } 9 | 10 | 11 | -------------------------------------------------------------------------------- /glm/test/gtx/gtx_matrix_major_storage.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | 3 | int main() 4 | { 5 | int Error(0); 6 | 7 | return Error; 8 | } 9 | -------------------------------------------------------------------------------- /glm/test/gtx/gtx_matrix_operation.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | 3 | int main() 4 | { 5 | int Error(0); 6 | 7 | return Error; 8 | } 9 | -------------------------------------------------------------------------------- /glm/test/gtx/gtx_matrix_query.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | 3 | int test_isNull() 4 | { 5 | int Error(0); 6 | 7 | bool TestA = glm::isNull(glm::mat4(0), 0.00001f); 8 | Error += TestA ? 0 : 1; 9 | 10 | return Error; 11 | } 12 | 13 | int test_isIdentity() 14 | { 15 | int Error(0); 16 | 17 | { 18 | bool TestA = glm::isIdentity(glm::mat2(1), 0.00001f); 19 | Error += TestA ? 0 : 1; 20 | } 21 | { 22 | bool TestA = glm::isIdentity(glm::mat3(1), 0.00001f); 23 | Error += TestA ? 0 : 1; 24 | } 25 | { 26 | bool TestA = glm::isIdentity(glm::mat4(1), 0.00001f); 27 | Error += TestA ? 0 : 1; 28 | } 29 | 30 | return Error; 31 | } 32 | 33 | int test_isNormalized() 34 | { 35 | int Error(0); 36 | 37 | bool TestA = glm::isNormalized(glm::mat4(1), 0.00001f); 38 | Error += TestA ? 0 : 1; 39 | 40 | return Error; 41 | } 42 | 43 | int test_isOrthogonal() 44 | { 45 | int Error(0); 46 | 47 | bool TestA = glm::isOrthogonal(glm::mat4(1), 0.00001f); 48 | Error += TestA ? 0 : 1; 49 | 50 | return Error; 51 | } 52 | 53 | int main() 54 | { 55 | int Error(0); 56 | 57 | Error += test_isNull(); 58 | Error += test_isIdentity(); 59 | Error += test_isNormalized(); 60 | Error += test_isOrthogonal(); 61 | 62 | return Error; 63 | } 64 | 65 | 66 | -------------------------------------------------------------------------------- /glm/test/gtx/gtx_matrix_transform_2d.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | 3 | int main() 4 | { 5 | int Error(0); 6 | 7 | return Error; 8 | } 9 | -------------------------------------------------------------------------------- /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 | -------------------------------------------------------------------------------- /glm/test/gtx/gtx_norm.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | 3 | int main() 4 | { 5 | int Error(0); 6 | 7 | return Error; 8 | } 9 | -------------------------------------------------------------------------------- /glm/test/gtx/gtx_normal.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | 3 | int main() 4 | { 5 | int Error(0); 6 | 7 | return Error; 8 | } 9 | -------------------------------------------------------------------------------- /glm/test/gtx/gtx_normalize_dot.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | 3 | int main() 4 | { 5 | int Error(0); 6 | 7 | return Error; 8 | } 9 | -------------------------------------------------------------------------------- /glm/test/gtx/gtx_number_precision.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | 3 | int main() 4 | { 5 | int Error(0); 6 | 7 | return Error; 8 | } 9 | -------------------------------------------------------------------------------- /glm/test/gtx/gtx_optimum_pow.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | 3 | int main() 4 | { 5 | int Error(0); 6 | 7 | return Error; 8 | } 9 | -------------------------------------------------------------------------------- /glm/test/gtx/gtx_orthonormalize.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | 3 | int main() 4 | { 5 | int Error(0); 6 | 7 | return Error; 8 | } 9 | -------------------------------------------------------------------------------- /glm/test/gtx/gtx_perpendicular.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | 3 | int main() 4 | { 5 | int Error(0); 6 | 7 | return Error; 8 | } 9 | -------------------------------------------------------------------------------- /glm/test/gtx/gtx_polar_coordinates.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | 3 | int main() 4 | { 5 | int Error(0); 6 | 7 | return Error; 8 | } 9 | -------------------------------------------------------------------------------- /glm/test/gtx/gtx_projection.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | 3 | int main() 4 | { 5 | int Error(0); 6 | 7 | return Error; 8 | } 9 | -------------------------------------------------------------------------------- /glm/test/gtx/gtx_range.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | 4 | #if GLM_HAS_RANGE_FOR 5 | 6 | #include 7 | 8 | int testVec() 9 | { 10 | int Error(0); 11 | glm::vec3 v(1, 2, 3); 12 | 13 | int count = 0; 14 | for(float x : v){ count++; } 15 | Error += count == 3 ? 0 : 1; 16 | 17 | for(float& x : v){ x = 0; } 18 | Error += glm::all(glm::equal(v, glm::vec3(0, 0, 0))) ? 0 : 1; 19 | return Error; 20 | } 21 | 22 | int testMat() 23 | { 24 | int Error(0); 25 | glm::mat4x3 m(1); 26 | 27 | int count = 0; 28 | for(float x : m){ count++; } 29 | Error += count == 12 ? 0 : 1; 30 | 31 | for(float& x : m){ x = 0; } 32 | glm::vec4 v(1, 1, 1, 1); 33 | Error += glm::all(glm::equal(m*v, glm::vec3(0, 0, 0))) ? 0 : 1; 34 | return Error; 35 | } 36 | 37 | int main() 38 | { 39 | int Error(0); 40 | Error += testVec(); 41 | Error += testMat(); 42 | return Error; 43 | } 44 | 45 | #else 46 | 47 | int main() 48 | { 49 | return 0; 50 | } 51 | 52 | #endif//GLM_HAS_RANGE_FOR 53 | -------------------------------------------------------------------------------- /glm/test/gtx/gtx_rotate_normalized_axis.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | 3 | int main() 4 | { 5 | int Error(0); 6 | 7 | return Error; 8 | } 9 | -------------------------------------------------------------------------------- /glm/test/gtx/gtx_scalar_multiplication.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | 3 | #if GLM_HAS_TEMPLATE_ALIASES && !(GLM_COMPILER & GLM_COMPILER_GCC) 4 | #include 5 | 6 | int main() 7 | { 8 | int Error(0); 9 | glm::vec3 v(0.5, 3.1, -9.1); 10 | 11 | Error += glm::all(glm::equal(v, 1.0 * v)) ? 0 : 1; 12 | Error += glm::all(glm::equal(v, 1 * v)) ? 0 : 1; 13 | Error += glm::all(glm::equal(v, 1u * v)) ? 0 : 1; 14 | 15 | glm::mat3 m(1, 2, 3, 4, 5, 6, 7, 8, 9); 16 | glm::vec3 w = 0.5f * m * v; 17 | 18 | Error += glm::all(glm::equal((m*v)/2, w)) ? 0 : 1; 19 | Error += glm::all(glm::equal(m*(v/2), w)) ? 0 : 1; 20 | Error += glm::all(glm::equal((m/2)*v, w)) ? 0 : 1; 21 | Error += glm::all(glm::equal((0.5*m)*v, w)) ? 0 : 1; 22 | Error += glm::all(glm::equal(0.5*(m*v), w)) ? 0 : 1; 23 | 24 | return Error; 25 | } 26 | 27 | #else 28 | 29 | int main() 30 | { 31 | return 0; 32 | } 33 | 34 | #endif 35 | -------------------------------------------------------------------------------- /glm/test/gtx/gtx_type_trait.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | 4 | int main() 5 | { 6 | int Error = 0; 7 | 8 | 9 | 10 | return Error; 11 | } 12 | 13 | -------------------------------------------------------------------------------- /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 | -------------------------------------------------------------------------------- /xcode源码/.DS_Store: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xcysuccess/LearnOpenGLNote/0dc03002531eef4a3f294ea5ba236d34fde4449b/xcode源码/.DS_Store -------------------------------------------------------------------------------- /xcode源码/LearnOpenGLWorkSpace.xcworkspace/xcuserdata/tomxiang.xcuserdatad/UserInterfaceState.xcuserstate: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xcysuccess/LearnOpenGLNote/0dc03002531eef4a3f294ea5ba236d34fde4449b/xcode源码/LearnOpenGLWorkSpace.xcworkspace/xcuserdata/tomxiang.xcuserdatad/UserInterfaceState.xcuserstate -------------------------------------------------------------------------------- /xcode源码/LearnOpenGLWorkSpace.xcworkspace/xcuserdata/tomxiang.xcuserdatad/xcdebugger/Breakpoints_v2.xcbkptlist: -------------------------------------------------------------------------------- 1 | 2 | 5 | 6 | 8 | 20 | 21 | 22 | 23 | 24 | -------------------------------------------------------------------------------- /xcode源码/LearnOpenGLXcodeWorkSpace/.DS_Store: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xcysuccess/LearnOpenGLNote/0dc03002531eef4a3f294ea5ba236d34fde4449b/xcode源码/LearnOpenGLXcodeWorkSpace/.DS_Store -------------------------------------------------------------------------------- /xcode源码/LearnOpenGLXcodeWorkSpace/1.1hellowindow/1.1hellowindow.xcodeproj/xcuserdata/tomxiang.xcuserdatad/xcschemes/xcschememanagement.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | SchemeUserState 6 | 7 | 1.1hellowindow.xcscheme 8 | 9 | orderHint 10 | 0 11 | 12 | 13 | SuppressBuildableAutocreation 14 | 15 | 9A9402FF1EB323B20081A960 16 | 17 | primary 18 | 19 | 20 | 21 | 22 | 23 | -------------------------------------------------------------------------------- /xcode源码/LearnOpenGLXcodeWorkSpace/1.2home01/1.2home01.xcodeproj/xcuserdata/tomxiang.xcuserdatad/xcschemes/xcschememanagement.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | SchemeUserState 6 | 7 | 1.2home01.xcscheme 8 | 9 | orderHint 10 | 3 11 | 12 | 13 | SuppressBuildableAutocreation 14 | 15 | 9A94034D1EB327450081A960 16 | 17 | primary 18 | 19 | 20 | 21 | 22 | 23 | -------------------------------------------------------------------------------- /xcode源码/LearnOpenGLXcodeWorkSpace/1.2home02/1.2home02.xcodeproj/xcuserdata/tomxiang.xcuserdatad/xcschemes/xcschememanagement.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | SchemeUserState 6 | 7 | 1.2home02.xcscheme 8 | 9 | orderHint 10 | 4 11 | 12 | 13 | SuppressBuildableAutocreation 14 | 15 | 9A9403671EB327AB0081A960 16 | 17 | primary 18 | 19 | 20 | 21 | 22 | 23 | -------------------------------------------------------------------------------- /xcode源码/LearnOpenGLXcodeWorkSpace/1.2home03/.DS_Store: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xcysuccess/LearnOpenGLNote/0dc03002531eef4a3f294ea5ba236d34fde4449b/xcode源码/LearnOpenGLXcodeWorkSpace/1.2home03/.DS_Store -------------------------------------------------------------------------------- /xcode源码/LearnOpenGLXcodeWorkSpace/1.2home03/1.2home03.xcodeproj/xcuserdata/tomxiang.xcuserdatad/xcschemes/xcschememanagement.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | SchemeUserState 6 | 7 | 1.3home03.xcscheme 8 | 9 | orderHint 10 | 5 11 | 12 | 13 | SuppressBuildableAutocreation 14 | 15 | 9A9403811EB329050081A960 16 | 17 | primary 18 | 19 | 20 | 21 | 22 | 23 | -------------------------------------------------------------------------------- /xcode源码/LearnOpenGLXcodeWorkSpace/1.2rect/1.2rect.xcodeproj/xcuserdata/tomxiang.xcuserdatad/xcschemes/xcschememanagement.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | SchemeUserState 6 | 7 | 1.2rect.xcscheme 8 | 9 | orderHint 10 | 2 11 | 12 | 13 | SuppressBuildableAutocreation 14 | 15 | 9A9403331EB325F60081A960 16 | 17 | primary 18 | 19 | 20 | 21 | 22 | 23 | -------------------------------------------------------------------------------- /xcode源码/LearnOpenGLXcodeWorkSpace/1.2traiangle/1.2traiangle.xcodeproj/xcuserdata/tomxiang.xcuserdatad/xcschemes/xcschememanagement.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | SchemeUserState 6 | 7 | 1.2traiangle.xcscheme 8 | 9 | orderHint 10 | 1 11 | 12 | 13 | SuppressBuildableAutocreation 14 | 15 | 9A9403191EB3249B0081A960 16 | 17 | primary 18 | 19 | 20 | 21 | 22 | 23 | -------------------------------------------------------------------------------- /xcode源码/LearnOpenGLXcodeWorkSpace/1.3shaders/1.3shaders.xcodeproj/xcuserdata/tomxiang.xcuserdatad/xcschemes/xcschememanagement.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | SchemeUserState 6 | 7 | 1.3shaders.xcscheme 8 | 9 | orderHint 10 | 6 11 | 12 | 13 | SuppressBuildableAutocreation 14 | 15 | 9A9E37F61EB5C39400DE2C38 16 | 17 | primary 18 | 19 | 20 | 21 | 22 | 23 | -------------------------------------------------------------------------------- /xcode源码/LearnOpenGLXcodeWorkSpace/1.3shadershome01/.DS_Store: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xcysuccess/LearnOpenGLNote/0dc03002531eef4a3f294ea5ba236d34fde4449b/xcode源码/LearnOpenGLXcodeWorkSpace/1.3shadershome01/.DS_Store -------------------------------------------------------------------------------- /xcode源码/LearnOpenGLXcodeWorkSpace/1.3shadershome01/1.3shadershome01.xcodeproj/xcuserdata/tomxiang.xcuserdatad/xcschemes/xcschememanagement.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | SchemeUserState 6 | 7 | 1.3shadershome01.xcscheme 8 | 9 | orderHint 10 | 9 11 | 12 | 13 | SuppressBuildableAutocreation 14 | 15 | 9A9E386E1EB5DB6300DE2C38 16 | 17 | primary 18 | 19 | 20 | 21 | 22 | 23 | -------------------------------------------------------------------------------- /xcode源码/LearnOpenGLXcodeWorkSpace/1.3shadershome01/1.3shadershome01/basic.frag: -------------------------------------------------------------------------------- 1 | #version 330 core 2 | in vec3 ourColor; 3 | 4 | out vec4 color; 5 | 6 | void main() 7 | { 8 | color = vec4(ourColor, 1.0f); 9 | } 10 | -------------------------------------------------------------------------------- /xcode源码/LearnOpenGLXcodeWorkSpace/1.3shadershome01/1.3shadershome01/basic.vs: -------------------------------------------------------------------------------- 1 | #version 330 core 2 | layout (location = 0) in vec3 position; 3 | layout (location = 1) in vec3 color; 4 | 5 | out vec3 ourColor; 6 | uniform float xOffset; 7 | 8 | void main() 9 | { 10 | // gl_Position = vec4(position, 1.0f); 11 | gl_Position = vec4(position.x+xOffset, position.y, position.z, 1.0f); // Just add a - to the y position 12 | 13 | ourColor = color; 14 | } 15 | -------------------------------------------------------------------------------- /xcode源码/LearnOpenGLXcodeWorkSpace/1.3shadershome03/.DS_Store: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xcysuccess/LearnOpenGLNote/0dc03002531eef4a3f294ea5ba236d34fde4449b/xcode源码/LearnOpenGLXcodeWorkSpace/1.3shadershome03/.DS_Store -------------------------------------------------------------------------------- /xcode源码/LearnOpenGLXcodeWorkSpace/1.3shadershome03/1.3shadershome03.xcodeproj/xcuserdata/tomxiang.xcuserdatad/xcschemes/xcschememanagement.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | SchemeUserState 6 | 7 | 1.3shadershome03.xcscheme 8 | 9 | orderHint 10 | 10 11 | 12 | 13 | SuppressBuildableAutocreation 14 | 15 | 9A9E388B1EB5E21400DE2C38 16 | 17 | primary 18 | 19 | 20 | 21 | 22 | 23 | -------------------------------------------------------------------------------- /xcode源码/LearnOpenGLXcodeWorkSpace/1.3shadershome03/1.3shadershome03/basic.frag: -------------------------------------------------------------------------------- 1 | #version 330 core 2 | in vec3 ourColor; 3 | in vec3 ourPosition; 4 | 5 | out vec4 color; 6 | 7 | void main() 8 | { 9 | color = vec4(ourPosition, 1.0f); 10 | } 11 | -------------------------------------------------------------------------------- /xcode源码/LearnOpenGLXcodeWorkSpace/1.3shadershome03/1.3shadershome03/basic.vs: -------------------------------------------------------------------------------- 1 | #version 330 core 2 | layout (location = 0) in vec3 position; 3 | layout (location = 1) in vec3 color; 4 | 5 | out vec3 ourPosition; 6 | 7 | void main() 8 | { 9 | ourPosition = position; 10 | gl_Position = vec4(position.x, position.y, position.z, 1.0f); // Just add a - to the y position 11 | } 12 | -------------------------------------------------------------------------------- /xcode源码/LearnOpenGLXcodeWorkSpace/1.3shadersmanager/.DS_Store: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xcysuccess/LearnOpenGLNote/0dc03002531eef4a3f294ea5ba236d34fde4449b/xcode源码/LearnOpenGLXcodeWorkSpace/1.3shadersmanager/.DS_Store -------------------------------------------------------------------------------- /xcode源码/LearnOpenGLXcodeWorkSpace/1.3shadersmanager/1.3shadersmanager.xcodeproj/xcuserdata/tomxiang.xcuserdatad/xcschemes/xcschememanagement.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | SchemeUserState 6 | 7 | 1.3shadersmanager.xcscheme 8 | 9 | orderHint 10 | 8 11 | 12 | 13 | SuppressBuildableAutocreation 14 | 15 | 9A9E38321EB5CC6B00DE2C38 16 | 17 | primary 18 | 19 | 20 | 21 | 22 | 23 | -------------------------------------------------------------------------------- /xcode源码/LearnOpenGLXcodeWorkSpace/1.3shadersmanager/1.3shadersmanager/.DS_Store: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xcysuccess/LearnOpenGLNote/0dc03002531eef4a3f294ea5ba236d34fde4449b/xcode源码/LearnOpenGLXcodeWorkSpace/1.3shadersmanager/1.3shadersmanager/.DS_Store -------------------------------------------------------------------------------- /xcode源码/LearnOpenGLXcodeWorkSpace/1.3shadersmanager/1.3shadersmanager/basic.frag: -------------------------------------------------------------------------------- 1 | #version 330 core 2 | in vec3 ourColor; 3 | 4 | out vec4 color; 5 | 6 | void main() 7 | { 8 | color = vec4(ourColor, 1.0f); 9 | } 10 | -------------------------------------------------------------------------------- /xcode源码/LearnOpenGLXcodeWorkSpace/1.3shadersmanager/1.3shadersmanager/basic.vs: -------------------------------------------------------------------------------- 1 | #version 330 core 2 | layout (location = 0) in vec3 position; 3 | layout (location = 1) in vec3 color; 4 | 5 | out vec3 ourColor; 6 | 7 | void main() 8 | { 9 | gl_Position = vec4(position, 1.0f); 10 | ourColor = color; 11 | } 12 | -------------------------------------------------------------------------------- /xcode源码/LearnOpenGLXcodeWorkSpace/1.3shadersmulticolor/1.3shadersmulticolor.xcodeproj/xcuserdata/tomxiang.xcuserdatad/xcschemes/xcschememanagement.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | SchemeUserState 6 | 7 | 1.3shadersmulticolor.xcscheme 8 | 9 | orderHint 10 | 7 11 | 12 | 13 | SuppressBuildableAutocreation 14 | 15 | 9A9E38181EB5C97E00DE2C38 16 | 17 | primary 18 | 19 | 20 | 21 | 22 | 23 | -------------------------------------------------------------------------------- /xcode源码/LearnOpenGLXcodeWorkSpace/1.4home01/.DS_Store: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xcysuccess/LearnOpenGLNote/0dc03002531eef4a3f294ea5ba236d34fde4449b/xcode源码/LearnOpenGLXcodeWorkSpace/1.4home01/.DS_Store -------------------------------------------------------------------------------- /xcode源码/LearnOpenGLXcodeWorkSpace/1.4home01/1.4home01.xcodeproj/xcuserdata/tomxiang.xcuserdatad/xcschemes/xcschememanagement.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | SchemeUserState 6 | 7 | 1.4home01.xcscheme 8 | 9 | orderHint 10 | 13 11 | 12 | 13 | SuppressBuildableAutocreation 14 | 15 | 9A82E98D1EB8B08700667DA8 16 | 17 | primary 18 | 19 | 20 | 21 | 22 | 23 | -------------------------------------------------------------------------------- /xcode源码/LearnOpenGLXcodeWorkSpace/1.4home01/1.4home01/basic.frag: -------------------------------------------------------------------------------- 1 | #version 330 core 2 | in vec3 ourColor; 3 | in vec2 TexCoord; 4 | 5 | out vec4 color; 6 | 7 | // Texture samplers 8 | uniform sampler2D ourTexture1; 9 | uniform sampler2D ourTexture2; 10 | 11 | void main() 12 | { 13 | // Linearly interpolate between both textures (second texture is only slightly combined) 14 | color = mix(texture(ourTexture1, TexCoord), texture(ourTexture2, TexCoord), 0.2); 15 | // color = mix(texture(ourTexture1, TexCoord), texture(ourTexture2,vec2(1-TexCoord.x, TexCoord.y)), 0.2); 16 | 17 | } 18 | -------------------------------------------------------------------------------- /xcode源码/LearnOpenGLXcodeWorkSpace/1.4home01/1.4home01/basic.vs: -------------------------------------------------------------------------------- 1 | #version 330 core 2 | layout (location = 0) in vec3 position; 3 | layout (location = 1) in vec3 color; 4 | layout (location = 2) in vec2 texCoord; 5 | 6 | out vec3 ourColor; 7 | out vec2 TexCoord; 8 | 9 | void main() 10 | { 11 | gl_Position = vec4(position, 1.0f); 12 | ourColor = color; 13 | // We swap the y-axis by substracing our coordinates from 1. This is done because most images have the top y-axis inversed with OpenGL's top y-axis. 14 | // TexCoord = texCoord; 15 | TexCoord = vec2(texCoord.x, 1.0 - texCoord.y); 16 | } 17 | -------------------------------------------------------------------------------- /xcode源码/LearnOpenGLXcodeWorkSpace/1.4home02/.DS_Store: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xcysuccess/LearnOpenGLNote/0dc03002531eef4a3f294ea5ba236d34fde4449b/xcode源码/LearnOpenGLXcodeWorkSpace/1.4home02/.DS_Store -------------------------------------------------------------------------------- /xcode源码/LearnOpenGLXcodeWorkSpace/1.4home02/1.4home02.xcodeproj/xcuserdata/tomxiang.xcuserdatad/xcschemes/xcschememanagement.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | SchemeUserState 6 | 7 | 1.4home02.xcscheme 8 | 9 | orderHint 10 | 14 11 | 12 | 13 | SuppressBuildableAutocreation 14 | 15 | 9A41D89E1EBDB352001AF19A 16 | 17 | primary 18 | 19 | 20 | 21 | 22 | 23 | -------------------------------------------------------------------------------- /xcode源码/LearnOpenGLXcodeWorkSpace/1.4home02/1.4home02/basic.frag: -------------------------------------------------------------------------------- 1 | #version 330 core 2 | in vec3 ourColor; 3 | in vec2 TexCoord; 4 | 5 | out vec4 color; 6 | 7 | // Texture samplers 8 | uniform sampler2D ourTexture1; 9 | uniform sampler2D ourTexture2; 10 | 11 | void main() 12 | { 13 | // Linearly interpolate between both textures (second texture is only slightly combined) 14 | color = mix(texture(ourTexture1, TexCoord), texture(ourTexture2, TexCoord), 0.2); 15 | // color = mix(texture(ourTexture1, TexCoord), texture(ourTexture2,vec2(1-TexCoord.x, TexCoord.y)), 0.2); 16 | 17 | } 18 | -------------------------------------------------------------------------------- /xcode源码/LearnOpenGLXcodeWorkSpace/1.4home02/1.4home02/basic.vs: -------------------------------------------------------------------------------- 1 | #version 330 core 2 | layout (location = 0) in vec3 position; 3 | layout (location = 1) in vec3 color; 4 | layout (location = 2) in vec2 texCoord; 5 | 6 | out vec3 ourColor; 7 | out vec2 TexCoord; 8 | 9 | void main() 10 | { 11 | gl_Position = vec4(position, 1.0f); 12 | ourColor = color; 13 | // We swap the y-axis by substracing our coordinates from 1. This is done because most images have the top y-axis inversed with OpenGL's top y-axis. 14 | // TexCoord = texCoord; 15 | TexCoord = vec2(texCoord.x, 1.0 - texCoord.y); 16 | } 17 | -------------------------------------------------------------------------------- /xcode源码/LearnOpenGLXcodeWorkSpace/1.4home03/.DS_Store: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xcysuccess/LearnOpenGLNote/0dc03002531eef4a3f294ea5ba236d34fde4449b/xcode源码/LearnOpenGLXcodeWorkSpace/1.4home03/.DS_Store -------------------------------------------------------------------------------- /xcode源码/LearnOpenGLXcodeWorkSpace/1.4home03/1.4home03.xcodeproj/xcuserdata/tomxiang.xcuserdatad/xcschemes/xcschememanagement.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | SchemeUserState 6 | 7 | 1.4home03.xcscheme 8 | 9 | orderHint 10 | 15 11 | 12 | 13 | SuppressBuildableAutocreation 14 | 15 | 9A41D8BD1EBDB729001AF19A 16 | 17 | primary 18 | 19 | 20 | 21 | 22 | 23 | -------------------------------------------------------------------------------- /xcode源码/LearnOpenGLXcodeWorkSpace/1.4home03/1.4home03/basic.frag: -------------------------------------------------------------------------------- 1 | #version 330 core 2 | in vec3 ourColor; 3 | in vec2 TexCoord; 4 | 5 | out vec4 color; 6 | 7 | // Texture samplers 8 | uniform sampler2D ourTexture1; 9 | uniform sampler2D ourTexture2; 10 | 11 | uniform float mixValue; 12 | 13 | void main() 14 | { 15 | // Linearly interpolate between both textures (second texture is only slightly combined) 16 | color = mix(texture(ourTexture1, TexCoord), texture(ourTexture2, TexCoord), mixValue); 17 | // color = mix(texture(ourTexture1, TexCoord), texture(ourTexture2,vec2(1-TexCoord.x, TexCoord.y)), 0.2); 18 | 19 | } 20 | -------------------------------------------------------------------------------- /xcode源码/LearnOpenGLXcodeWorkSpace/1.4home03/1.4home03/basic.vs: -------------------------------------------------------------------------------- 1 | #version 330 core 2 | layout (location = 0) in vec3 position; 3 | layout (location = 1) in vec3 color; 4 | layout (location = 2) in vec2 texCoord; 5 | 6 | out vec3 ourColor; 7 | out vec2 TexCoord; 8 | 9 | void main() 10 | { 11 | gl_Position = vec4(position, 1.0f); 12 | ourColor = color; 13 | // We swap the y-axis by substracing our coordinates from 1. This is done because most images have the top y-axis inversed with OpenGL's top y-axis. 14 | // TexCoord = texCoord; 15 | TexCoord = vec2(texCoord.x, 1.0 - texCoord.y); 16 | } 17 | -------------------------------------------------------------------------------- /xcode源码/LearnOpenGLXcodeWorkSpace/1.4textures/.DS_Store: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xcysuccess/LearnOpenGLNote/0dc03002531eef4a3f294ea5ba236d34fde4449b/xcode源码/LearnOpenGLXcodeWorkSpace/1.4textures/.DS_Store -------------------------------------------------------------------------------- /xcode源码/LearnOpenGLXcodeWorkSpace/1.4textures/1.4textures.xcodeproj/xcuserdata/tomxiang.xcuserdatad/xcschemes/xcschememanagement.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | SchemeUserState 6 | 7 | 1.4textures.xcscheme 8 | 9 | orderHint 10 | 11 11 | 12 | 13 | SuppressBuildableAutocreation 14 | 15 | 9A9134781EB7259100D6B15F 16 | 17 | primary 18 | 19 | 20 | 21 | 22 | 23 | -------------------------------------------------------------------------------- /xcode源码/LearnOpenGLXcodeWorkSpace/1.4textures/1.4textures/basic.frag: -------------------------------------------------------------------------------- 1 | #version 330 core 2 | in vec3 ourColor; 3 | in vec2 TexCoord; 4 | 5 | out vec4 color; 6 | 7 | uniform sampler2D ourTexture; 8 | 9 | void main() 10 | { 11 | // color = texture(ourTexture, TexCoord); //纹理采样器,纹理坐标 12 | color = texture(ourTexture, TexCoord) * vec4(ourColor, 1.0f); 13 | } 14 | -------------------------------------------------------------------------------- /xcode源码/LearnOpenGLXcodeWorkSpace/1.4textures/1.4textures/basic.vs: -------------------------------------------------------------------------------- 1 | #version 330 core 2 | layout (location = 0) in vec3 position; 3 | layout (location = 1) in vec3 color; 4 | layout (location = 2) in vec2 texCoord; 5 | 6 | out vec3 ourColor; 7 | out vec2 TexCoord; 8 | 9 | void main() 10 | { 11 | gl_Position = vec4(position, 1.0f); 12 | ourColor = color; 13 | TexCoord = texCoord; 14 | } 15 | -------------------------------------------------------------------------------- /xcode源码/LearnOpenGLXcodeWorkSpace/1.4texturesmulti/.DS_Store: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xcysuccess/LearnOpenGLNote/0dc03002531eef4a3f294ea5ba236d34fde4449b/xcode源码/LearnOpenGLXcodeWorkSpace/1.4texturesmulti/.DS_Store -------------------------------------------------------------------------------- /xcode源码/LearnOpenGLXcodeWorkSpace/1.4texturesmulti/1.4texturesmulti.xcodeproj/xcuserdata/tomxiang.xcuserdatad/xcschemes/xcschememanagement.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | SchemeUserState 6 | 7 | 1.4texturesmulti.xcscheme 8 | 9 | orderHint 10 | 12 11 | 12 | 13 | SuppressBuildableAutocreation 14 | 15 | 9A9134991EB735E600D6B15F 16 | 17 | primary 18 | 19 | 20 | 21 | 22 | 23 | -------------------------------------------------------------------------------- /xcode源码/LearnOpenGLXcodeWorkSpace/1.4texturesmulti/1.4texturesmulti/basic.frag: -------------------------------------------------------------------------------- 1 | #version 330 core 2 | in vec3 ourColor; 3 | in vec2 TexCoord; 4 | 5 | out vec4 color; 6 | 7 | // Texture samplers 8 | uniform sampler2D ourTexture1; 9 | uniform sampler2D ourTexture2; 10 | 11 | void main() 12 | { 13 | // Linearly interpolate between both textures (second texture is only slightly combined) 14 | // color = mix(texture(ourTexture1, TexCoord), texture(ourTexture2, TexCoord), 0.2); 15 | color = mix(texture(ourTexture1, TexCoord), texture(ourTexture2,vec2(1-TexCoord.x, TexCoord.y)), 0.2); 16 | 17 | } 18 | -------------------------------------------------------------------------------- /xcode源码/LearnOpenGLXcodeWorkSpace/1.4texturesmulti/1.4texturesmulti/basic.vs: -------------------------------------------------------------------------------- 1 | #version 330 core 2 | layout (location = 0) in vec3 position; 3 | layout (location = 1) in vec3 color; 4 | layout (location = 2) in vec2 texCoord; 5 | 6 | out vec3 ourColor; 7 | out vec2 TexCoord; 8 | 9 | void main() 10 | { 11 | gl_Position = vec4(position, 1.0f); 12 | ourColor = color; 13 | // We swap the y-axis by substracing our coordinates from 1. This is done because most images have the top y-axis inversed with OpenGL's top y-axis. 14 | // TexCoord = texCoord; 15 | TexCoord = vec2(texCoord.x, 1.0 - texCoord.y); 16 | } 17 | -------------------------------------------------------------------------------- /xcode源码/LearnOpenGLXcodeWorkSpace/1.5transformations/.DS_Store: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xcysuccess/LearnOpenGLNote/0dc03002531eef4a3f294ea5ba236d34fde4449b/xcode源码/LearnOpenGLXcodeWorkSpace/1.5transformations/.DS_Store -------------------------------------------------------------------------------- /xcode源码/LearnOpenGLXcodeWorkSpace/1.5transformations/1.5transformations.xcodeproj/xcuserdata/tomxiang.xcuserdatad/xcschemes/xcschememanagement.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | SchemeUserState 6 | 7 | 1.5transformations.xcscheme 8 | 9 | orderHint 10 | 16 11 | 12 | 13 | SuppressBuildableAutocreation 14 | 15 | 9A41D8DC1EBDCFE1001AF19A 16 | 17 | primary 18 | 19 | 20 | 21 | 22 | 23 | -------------------------------------------------------------------------------- /xcode源码/LearnOpenGLXcodeWorkSpace/1.5transformations/1.5transformations/.DS_Store: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xcysuccess/LearnOpenGLNote/0dc03002531eef4a3f294ea5ba236d34fde4449b/xcode源码/LearnOpenGLXcodeWorkSpace/1.5transformations/1.5transformations/.DS_Store -------------------------------------------------------------------------------- /xcode源码/LearnOpenGLXcodeWorkSpace/1.5transformations/1.5transformations/basic.frag: -------------------------------------------------------------------------------- 1 | #version 330 core 2 | in vec3 ourColor; 3 | in vec2 TexCoord; 4 | 5 | out vec4 color; 6 | 7 | // Texture samplers 8 | uniform sampler2D ourTexture1; 9 | uniform sampler2D ourTexture2; 10 | 11 | uniform float mixValue; 12 | 13 | void main() 14 | { 15 | // Linearly interpolate between both textures (second texture is only slightly combined) 16 | color = mix(texture(ourTexture1, TexCoord), texture(ourTexture2, TexCoord), mixValue); 17 | // color = mix(texture(ourTexture1, TexCoord), texture(ourTexture2,vec2(1-TexCoord.x, TexCoord.y)), 0.2); 18 | 19 | } 20 | -------------------------------------------------------------------------------- /xcode源码/LearnOpenGLXcodeWorkSpace/1.5transformations/1.5transformations/basic.vs: -------------------------------------------------------------------------------- 1 | #version 330 core 2 | layout (location = 0) in vec3 position; 3 | layout (location = 1) in vec3 color; 4 | layout (location = 2) in vec2 texCoord; 5 | 6 | out vec3 ourColor; 7 | out vec2 TexCoord; 8 | 9 | uniform mat4 transform; 10 | 11 | void main() 12 | { 13 | gl_Position = transform * vec4(position, 1.0f); 14 | ourColor = color; 15 | // We swap the y-axis by substracing our coordinates from 1. This is done because most images have the top y-axis inversed with OpenGL's top y-axis. 16 | // TexCoord = texCoord; 17 | TexCoord = vec2(texCoord.x, 1.0 - texCoord.y); 18 | } 19 | -------------------------------------------------------------------------------- /xcode源码/LearnOpenGLXcodeWorkSpace/1.5transformations/1.5transformations/glm/.DS_Store: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xcysuccess/LearnOpenGLNote/0dc03002531eef4a3f294ea5ba236d34fde4449b/xcode源码/LearnOpenGLXcodeWorkSpace/1.5transformations/1.5transformations/glm/.DS_Store -------------------------------------------------------------------------------- /xcode源码/LearnOpenGLXcodeWorkSpace/1.5transformations/1.5transformations/glm/common.hpp: -------------------------------------------------------------------------------- 1 | /// @ref core 2 | /// @file glm/common.hpp 3 | 4 | #pragma once 5 | 6 | #include "detail/func_common.hpp" 7 | -------------------------------------------------------------------------------- /xcode源码/LearnOpenGLXcodeWorkSpace/1.5transformations/1.5transformations/glm/detail/_fixes.hpp: -------------------------------------------------------------------------------- 1 | /// @ref core 2 | /// @file glm/detail/_fixes.hpp 3 | 4 | #include 5 | 6 | //! Workaround for compatibility with other libraries 7 | #ifdef max 8 | #undef max 9 | #endif 10 | 11 | //! Workaround for compatibility with other libraries 12 | #ifdef min 13 | #undef min 14 | #endif 15 | 16 | //! Workaround for Android 17 | #ifdef isnan 18 | #undef isnan 19 | #endif 20 | 21 | //! Workaround for Android 22 | #ifdef isinf 23 | #undef isinf 24 | #endif 25 | 26 | //! Workaround for Chrone Native Client 27 | #ifdef log2 28 | #undef log2 29 | #endif 30 | 31 | -------------------------------------------------------------------------------- /xcode源码/LearnOpenGLXcodeWorkSpace/1.5transformations/1.5transformations/glm/detail/func_exponential_simd.inl: -------------------------------------------------------------------------------- 1 | /// @ref core 2 | /// @file glm/detail/func_exponential_simd.inl 3 | 4 | #include "../simd/exponential.h" 5 | 6 | #if GLM_ARCH & GLM_ARCH_SSE2_BIT 7 | 8 | namespace glm{ 9 | namespace detail 10 | { 11 | template 12 | struct compute_sqrt 13 | { 14 | GLM_FUNC_QUALIFIER static tvec4 call(tvec4 const & v) 15 | { 16 | tvec4 result(uninitialize); 17 | result.data = _mm_sqrt_ps(v.data); 18 | return result; 19 | } 20 | }; 21 | 22 | template <> 23 | struct compute_sqrt 24 | { 25 | GLM_FUNC_QUALIFIER static tvec4 call(tvec4 const & v) 26 | { 27 | tvec4 result(uninitialize); 28 | result.data = glm_vec4_sqrt_lowp(v.data); 29 | return result; 30 | } 31 | }; 32 | }//namespace detail 33 | }//namespace glm 34 | 35 | #endif//GLM_ARCH & GLM_ARCH_SSE2_BIT 36 | -------------------------------------------------------------------------------- /xcode源码/LearnOpenGLXcodeWorkSpace/1.5transformations/1.5transformations/glm/detail/func_packing_simd.inl: -------------------------------------------------------------------------------- 1 | /// @ref core 2 | /// @file glm/detail/func_packing_simd.inl 3 | 4 | namespace glm{ 5 | namespace detail 6 | { 7 | 8 | }//namespace detail 9 | }//namespace glm 10 | -------------------------------------------------------------------------------- /xcode源码/LearnOpenGLXcodeWorkSpace/1.5transformations/1.5transformations/glm/detail/func_trigonometric_simd.inl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xcysuccess/LearnOpenGLNote/0dc03002531eef4a3f294ea5ba236d34fde4449b/xcode源码/LearnOpenGLXcodeWorkSpace/1.5transformations/1.5transformations/glm/detail/func_trigonometric_simd.inl -------------------------------------------------------------------------------- /xcode源码/LearnOpenGLXcodeWorkSpace/1.5transformations/1.5transformations/glm/detail/func_vector_relational_simd.inl: -------------------------------------------------------------------------------- 1 | /// @ref core 2 | /// @file glm/detail/func_vector_relational_simd.inl 3 | 4 | namespace glm{ 5 | namespace detail 6 | { 7 | 8 | }//namespace detail 9 | }//namespace glm 10 | -------------------------------------------------------------------------------- /xcode源码/LearnOpenGLXcodeWorkSpace/1.5transformations/1.5transformations/glm/detail/precision.hpp: -------------------------------------------------------------------------------- 1 | /// @ref core 2 | /// @file glm/detail/precision.hpp 3 | 4 | #pragma once 5 | 6 | #include "setup.hpp" 7 | 8 | namespace glm 9 | { 10 | enum precision 11 | { 12 | packed_highp, 13 | packed_mediump, 14 | packed_lowp, 15 | 16 | # if GLM_HAS_ALIGNED_TYPE 17 | aligned_highp, 18 | aligned_mediump, 19 | aligned_lowp, 20 | aligned = aligned_highp, 21 | # endif 22 | 23 | highp = packed_highp, 24 | mediump = packed_mediump, 25 | lowp = packed_lowp, 26 | packed = packed_highp, 27 | 28 | # if GLM_HAS_ALIGNED_TYPE && defined(GLM_FORCE_ALIGNED) 29 | defaultp = aligned_highp 30 | # else 31 | defaultp = highp 32 | # endif 33 | }; 34 | 35 | namespace detail 36 | { 37 | template 38 | struct is_aligned 39 | { 40 | static const bool value = false; 41 | }; 42 | 43 | # if GLM_HAS_ALIGNED_TYPE 44 | template<> 45 | struct is_aligned 46 | { 47 | static const bool value = true; 48 | }; 49 | 50 | template<> 51 | struct is_aligned 52 | { 53 | static const bool value = true; 54 | }; 55 | 56 | template<> 57 | struct is_aligned 58 | { 59 | static const bool value = true; 60 | }; 61 | # endif 62 | }//namespace detail 63 | }//namespace glm 64 | -------------------------------------------------------------------------------- /xcode源码/LearnOpenGLXcodeWorkSpace/1.5transformations/1.5transformations/glm/detail/type_half.hpp: -------------------------------------------------------------------------------- 1 | /// @ref core 2 | /// @file glm/detail/type_half.hpp 3 | 4 | #pragma once 5 | 6 | #include "setup.hpp" 7 | 8 | namespace glm{ 9 | namespace detail 10 | { 11 | typedef short hdata; 12 | 13 | GLM_FUNC_DECL float toFloat32(hdata value); 14 | GLM_FUNC_DECL hdata toFloat16(float const & value); 15 | 16 | }//namespace detail 17 | }//namespace glm 18 | 19 | #include "type_half.inl" 20 | -------------------------------------------------------------------------------- /xcode源码/LearnOpenGLXcodeWorkSpace/1.5transformations/1.5transformations/glm/detail/type_mat.inl: -------------------------------------------------------------------------------- 1 | /// @ref core 2 | /// @file glm/detail/type_mat.inl 3 | 4 | -------------------------------------------------------------------------------- /xcode源码/LearnOpenGLXcodeWorkSpace/1.5transformations/1.5transformations/glm/detail/type_mat4x4_simd.inl: -------------------------------------------------------------------------------- 1 | /// @ref core 2 | /// @file glm/detail/type_mat4x4_sse2.inl 3 | 4 | namespace glm 5 | { 6 | 7 | }//namespace glm 8 | -------------------------------------------------------------------------------- /xcode源码/LearnOpenGLXcodeWorkSpace/1.5transformations/1.5transformations/glm/detail/type_vec.inl: -------------------------------------------------------------------------------- 1 | /// @ref core 2 | /// @file glm/detail/type_vec.inl 3 | -------------------------------------------------------------------------------- /xcode源码/LearnOpenGLXcodeWorkSpace/1.5transformations/1.5transformations/glm/exponential.hpp: -------------------------------------------------------------------------------- 1 | /// @ref core 2 | /// @file glm/exponential.hpp 3 | 4 | #pragma once 5 | 6 | #include "detail/func_exponential.hpp" 7 | -------------------------------------------------------------------------------- /xcode源码/LearnOpenGLXcodeWorkSpace/1.5transformations/1.5transformations/glm/geometric.hpp: -------------------------------------------------------------------------------- 1 | /// @ref core 2 | /// @file glm/geometric.hpp 3 | 4 | #pragma once 5 | 6 | #include "detail/func_geometric.hpp" 7 | -------------------------------------------------------------------------------- /xcode源码/LearnOpenGLXcodeWorkSpace/1.5transformations/1.5transformations/glm/gtc/functions.hpp: -------------------------------------------------------------------------------- 1 | /// @ref gtc_functions 2 | /// @file glm/gtc/functions.hpp 3 | /// 4 | /// @see core (dependence) 5 | /// @see gtc_half_float (dependence) 6 | /// @see gtc_quaternion (dependence) 7 | /// 8 | /// @defgroup gtc_functions GLM_GTC_functions 9 | /// @ingroup gtc 10 | /// 11 | /// @brief List of useful common functions. 12 | /// 13 | /// need to be included to use these functionalities. 14 | 15 | #pragma once 16 | 17 | // Dependencies 18 | #include "../detail/setup.hpp" 19 | #include "../detail/precision.hpp" 20 | #include "../detail/type_vec2.hpp" 21 | 22 | #if GLM_MESSAGES == GLM_MESSAGES_ENABLED && !defined(GLM_EXT_INCLUDED) 23 | # pragma message("GLM: GLM_GTC_functions extension included") 24 | #endif 25 | 26 | namespace glm 27 | { 28 | /// @addtogroup gtc_functions 29 | /// @{ 30 | 31 | /// 1D gauss function 32 | /// 33 | /// @see gtc_epsilon 34 | template 35 | GLM_FUNC_DECL T gauss( 36 | T x, 37 | T ExpectedValue, 38 | T StandardDeviation); 39 | 40 | /// 2D gauss function 41 | /// 42 | /// @see gtc_epsilon 43 | template 44 | GLM_FUNC_DECL T gauss( 45 | tvec2 const& Coord, 46 | tvec2 const& ExpectedValue, 47 | tvec2 const& StandardDeviation); 48 | 49 | /// @} 50 | }//namespace glm 51 | 52 | #include "functions.inl" 53 | 54 | -------------------------------------------------------------------------------- /xcode源码/LearnOpenGLXcodeWorkSpace/1.5transformations/1.5transformations/glm/gtc/functions.inl: -------------------------------------------------------------------------------- 1 | /// @ref gtc_functions 2 | /// @file glm/gtc/functions.inl 3 | 4 | #include "../detail/func_exponential.hpp" 5 | 6 | namespace glm 7 | { 8 | template 9 | GLM_FUNC_QUALIFIER T gauss 10 | ( 11 | T x, 12 | T ExpectedValue, 13 | T StandardDeviation 14 | ) 15 | { 16 | return exp(-((x - ExpectedValue) * (x - ExpectedValue)) / (static_cast(2) * StandardDeviation * StandardDeviation)) / (StandardDeviation * sqrt(static_cast(6.28318530717958647692528676655900576))); 17 | } 18 | 19 | template 20 | GLM_FUNC_QUALIFIER T gauss 21 | ( 22 | tvec2 const& Coord, 23 | tvec2 const& ExpectedValue, 24 | tvec2 const& StandardDeviation 25 | ) 26 | { 27 | tvec2 const Squared = ((Coord - ExpectedValue) * (Coord - ExpectedValue)) / (static_cast(2) * StandardDeviation * StandardDeviation); 28 | return exp(-(Squared.x + Squared.y)); 29 | } 30 | }//namespace glm 31 | 32 | -------------------------------------------------------------------------------- /xcode源码/LearnOpenGLXcodeWorkSpace/1.5transformations/1.5transformations/glm/gtc/type_precision.inl: -------------------------------------------------------------------------------- 1 | /// @ref gtc_swizzle 2 | /// @file glm/gtc/swizzle.inl 3 | 4 | namespace glm 5 | { 6 | 7 | } 8 | -------------------------------------------------------------------------------- /xcode源码/LearnOpenGLXcodeWorkSpace/1.5transformations/1.5transformations/glm/gtc/vec1.inl: -------------------------------------------------------------------------------- 1 | /// @ref gtc_vec1 2 | /// @file glm/gtc/vec1.inl 3 | -------------------------------------------------------------------------------- /xcode源码/LearnOpenGLXcodeWorkSpace/1.5transformations/1.5transformations/glm/gtx/closest_point.hpp: -------------------------------------------------------------------------------- 1 | /// @ref gtx_closest_point 2 | /// @file glm/gtx/closest_point.hpp 3 | /// 4 | /// @see core (dependence) 5 | /// 6 | /// @defgroup gtx_closest_point GLM_GTX_closest_point 7 | /// @ingroup gtx 8 | /// 9 | /// @brief Find the point on a straight line which is the closet of a point. 10 | /// 11 | /// need to be included to use these functionalities. 12 | 13 | #pragma once 14 | 15 | // Dependency: 16 | #include "../glm.hpp" 17 | 18 | #if GLM_MESSAGES == GLM_MESSAGES_ENABLED && !defined(GLM_EXT_INCLUDED) 19 | # pragma message("GLM: GLM_GTX_closest_point extension included") 20 | #endif 21 | 22 | namespace glm 23 | { 24 | /// @addtogroup gtx_closest_point 25 | /// @{ 26 | 27 | /// Find the point on a straight line which is the closet of a point. 28 | /// @see gtx_closest_point 29 | template 30 | GLM_FUNC_DECL tvec3 closestPointOnLine( 31 | tvec3 const & point, 32 | tvec3 const & a, 33 | tvec3 const & b); 34 | 35 | /// 2d lines work as well 36 | template 37 | GLM_FUNC_DECL tvec2 closestPointOnLine( 38 | tvec2 const & point, 39 | tvec2 const & a, 40 | tvec2 const & b); 41 | 42 | /// @} 43 | }// namespace glm 44 | 45 | #include "closest_point.inl" 46 | -------------------------------------------------------------------------------- /xcode源码/LearnOpenGLXcodeWorkSpace/1.5transformations/1.5transformations/glm/gtx/extend.hpp: -------------------------------------------------------------------------------- 1 | /// @ref gtx_extend 2 | /// @file glm/gtx/extend.hpp 3 | /// 4 | /// @see core (dependence) 5 | /// 6 | /// @defgroup gtx_extend GLM_GTX_extend 7 | /// @ingroup gtx 8 | /// 9 | /// @brief Extend a position from a source to a position at a defined length. 10 | /// 11 | /// need to be included to use these functionalities. 12 | 13 | #pragma once 14 | 15 | // Dependency: 16 | #include "../glm.hpp" 17 | 18 | #if GLM_MESSAGES == GLM_MESSAGES_ENABLED && !defined(GLM_EXT_INCLUDED) 19 | # pragma message("GLM: GLM_GTX_extend extension included") 20 | #endif 21 | 22 | namespace glm 23 | { 24 | /// @addtogroup gtx_extend 25 | /// @{ 26 | 27 | /// Extends of Length the Origin position using the (Source - Origin) direction. 28 | /// @see gtx_extend 29 | template 30 | GLM_FUNC_DECL genType extend( 31 | genType const & Origin, 32 | genType const & Source, 33 | typename genType::value_type const Length); 34 | 35 | /// @} 36 | }//namespace glm 37 | 38 | #include "extend.inl" 39 | -------------------------------------------------------------------------------- /xcode源码/LearnOpenGLXcodeWorkSpace/1.5transformations/1.5transformations/glm/gtx/extend.inl: -------------------------------------------------------------------------------- 1 | /// @ref gtx_extend 2 | /// @file glm/gtx/extend.inl 3 | 4 | namespace glm 5 | { 6 | template 7 | GLM_FUNC_QUALIFIER genType extend 8 | ( 9 | genType const & Origin, 10 | genType const & Source, 11 | genType const & Distance 12 | ) 13 | { 14 | return Origin + (Source - Origin) * Distance; 15 | } 16 | 17 | template 18 | GLM_FUNC_QUALIFIER tvec2 extend 19 | ( 20 | tvec2 const & Origin, 21 | tvec2 const & Source, 22 | T const & Distance 23 | ) 24 | { 25 | return Origin + (Source - Origin) * Distance; 26 | } 27 | 28 | template 29 | GLM_FUNC_QUALIFIER tvec3 extend 30 | ( 31 | tvec3 const & Origin, 32 | tvec3 const & Source, 33 | T const & Distance 34 | ) 35 | { 36 | return Origin + (Source - Origin) * Distance; 37 | } 38 | 39 | template 40 | GLM_FUNC_QUALIFIER tvec4 extend 41 | ( 42 | tvec4 const & Origin, 43 | tvec4 const & Source, 44 | T const & Distance 45 | ) 46 | { 47 | return Origin + (Source - Origin) * Distance; 48 | } 49 | }//namespace glm 50 | -------------------------------------------------------------------------------- /xcode源码/LearnOpenGLXcodeWorkSpace/1.5transformations/1.5transformations/glm/gtx/float_notmalize.inl: -------------------------------------------------------------------------------- 1 | /// @ref gtx_float_normalize 2 | /// @file glm/gtx/float_normalize.inl 3 | 4 | #include 5 | 6 | namespace glm 7 | { 8 | template class vecType> 9 | GLM_FUNC_QUALIFIER vecType floatNormalize(vecType const & v) 10 | { 11 | return vecType(v) / static_cast(std::numeric_limits::max()); 12 | } 13 | 14 | }//namespace glm 15 | -------------------------------------------------------------------------------- /xcode源码/LearnOpenGLXcodeWorkSpace/1.5transformations/1.5transformations/glm/gtx/gradient_paint.inl: -------------------------------------------------------------------------------- 1 | /// @ref gtx_gradient_paint 2 | /// @file glm/gtx/gradient_paint.inl 3 | 4 | namespace glm 5 | { 6 | template 7 | GLM_FUNC_QUALIFIER T radialGradient 8 | ( 9 | tvec2 const & Center, 10 | T const & Radius, 11 | tvec2 const & Focal, 12 | tvec2 const & Position 13 | ) 14 | { 15 | tvec2 F = Focal - Center; 16 | tvec2 D = Position - Focal; 17 | T Radius2 = pow2(Radius); 18 | T Fx2 = pow2(F.x); 19 | T Fy2 = pow2(F.y); 20 | 21 | T Numerator = (D.x * F.x + D.y * F.y) + sqrt(Radius2 * (pow2(D.x) + pow2(D.y)) - pow2(D.x * F.y - D.y * F.x)); 22 | T Denominator = Radius2 - (Fx2 + Fy2); 23 | return Numerator / Denominator; 24 | } 25 | 26 | template 27 | GLM_FUNC_QUALIFIER T linearGradient 28 | ( 29 | tvec2 const & Point0, 30 | tvec2 const & Point1, 31 | tvec2 const & Position 32 | ) 33 | { 34 | tvec2 Dist = Point1 - Point0; 35 | return (Dist.x * (Position.x - Point0.x) + Dist.y * (Position.y - Point0.y)) / glm::dot(Dist, Dist); 36 | } 37 | }//namespace glm 38 | -------------------------------------------------------------------------------- /xcode源码/LearnOpenGLXcodeWorkSpace/1.5transformations/1.5transformations/glm/gtx/handed_coordinate_space.inl: -------------------------------------------------------------------------------- 1 | /// @ref gtx_handed_coordinate_space 2 | /// @file glm/gtx/handed_coordinate_space.inl 3 | 4 | namespace glm 5 | { 6 | template 7 | GLM_FUNC_QUALIFIER bool rightHanded 8 | ( 9 | tvec3 const & tangent, 10 | tvec3 const & binormal, 11 | tvec3 const & normal 12 | ) 13 | { 14 | return dot(cross(normal, tangent), binormal) > T(0); 15 | } 16 | 17 | template 18 | GLM_FUNC_QUALIFIER bool leftHanded 19 | ( 20 | tvec3 const & tangent, 21 | tvec3 const & binormal, 22 | tvec3 const & normal 23 | ) 24 | { 25 | return dot(cross(normal, tangent), binormal) < T(0); 26 | } 27 | }//namespace glm 28 | -------------------------------------------------------------------------------- /xcode源码/LearnOpenGLXcodeWorkSpace/1.5transformations/1.5transformations/glm/gtx/log_base.hpp: -------------------------------------------------------------------------------- 1 | /// @ref gtx_log_base 2 | /// @file glm/gtx/log_base.hpp 3 | /// 4 | /// @see core (dependence) 5 | /// 6 | /// @defgroup gtx_log_base GLM_GTX_log_base 7 | /// @ingroup gtx 8 | /// 9 | /// @brief Logarithm for any base. base can be a vector or a scalar. 10 | /// 11 | /// need to be included to use these functionalities. 12 | 13 | #pragma once 14 | 15 | // Dependency: 16 | #include "../glm.hpp" 17 | 18 | #if GLM_MESSAGES == GLM_MESSAGES_ENABLED && !defined(GLM_EXT_INCLUDED) 19 | # pragma message("GLM: GLM_GTX_log_base extension included") 20 | #endif 21 | 22 | namespace glm 23 | { 24 | /// @addtogroup gtx_log_base 25 | /// @{ 26 | 27 | /// Logarithm for any base. 28 | /// From GLM_GTX_log_base. 29 | template 30 | GLM_FUNC_DECL genType log( 31 | genType const & x, 32 | genType const & base); 33 | 34 | /// Logarithm for any base. 35 | /// From GLM_GTX_log_base. 36 | template class vecType> 37 | GLM_FUNC_DECL vecType sign( 38 | vecType const & x, 39 | vecType const & base); 40 | 41 | /// @} 42 | }//namespace glm 43 | 44 | #include "log_base.inl" 45 | -------------------------------------------------------------------------------- /xcode源码/LearnOpenGLXcodeWorkSpace/1.5transformations/1.5transformations/glm/gtx/log_base.inl: -------------------------------------------------------------------------------- 1 | /// @ref gtx_log_base 2 | /// @file glm/gtx/log_base.inl 3 | 4 | namespace glm 5 | { 6 | template 7 | GLM_FUNC_QUALIFIER genType log(genType const & x, genType const & base) 8 | { 9 | assert(x != genType(0)); 10 | return glm::log(x) / glm::log(base); 11 | } 12 | 13 | template class vecType> 14 | GLM_FUNC_QUALIFIER vecType log(vecType const & x, vecType const & base) 15 | { 16 | return glm::log(x) / glm::log(base); 17 | } 18 | }//namespace glm 19 | -------------------------------------------------------------------------------- /xcode源码/LearnOpenGLXcodeWorkSpace/1.5transformations/1.5transformations/glm/gtx/matrix_cross_product.hpp: -------------------------------------------------------------------------------- 1 | /// @ref gtx_matrix_cross_product 2 | /// @file glm/gtx/matrix_cross_product.hpp 3 | /// 4 | /// @see core (dependence) 5 | /// @see gtx_extented_min_max (dependence) 6 | /// 7 | /// @defgroup gtx_matrix_cross_product GLM_GTX_matrix_cross_product 8 | /// @ingroup gtx 9 | /// 10 | /// @brief Build cross product matrices 11 | /// 12 | /// need to be included to use these functionalities. 13 | 14 | #pragma once 15 | 16 | // Dependency: 17 | #include "../glm.hpp" 18 | 19 | #if GLM_MESSAGES == GLM_MESSAGES_ENABLED && !defined(GLM_EXT_INCLUDED) 20 | # pragma message("GLM: GLM_GTX_matrix_cross_product extension included") 21 | #endif 22 | 23 | namespace glm 24 | { 25 | /// @addtogroup gtx_matrix_cross_product 26 | /// @{ 27 | 28 | //! Build a cross product matrix. 29 | //! From GLM_GTX_matrix_cross_product extension. 30 | template 31 | GLM_FUNC_DECL tmat3x3 matrixCross3( 32 | tvec3 const & x); 33 | 34 | //! Build a cross product matrix. 35 | //! From GLM_GTX_matrix_cross_product extension. 36 | template 37 | GLM_FUNC_DECL tmat4x4 matrixCross4( 38 | tvec3 const & x); 39 | 40 | /// @} 41 | }//namespace glm 42 | 43 | #include "matrix_cross_product.inl" 44 | -------------------------------------------------------------------------------- /xcode源码/LearnOpenGLXcodeWorkSpace/1.5transformations/1.5transformations/glm/gtx/matrix_cross_product.inl: -------------------------------------------------------------------------------- 1 | /// @ref gtx_matrix_cross_product 2 | /// @file glm/gtx/matrix_cross_product.inl 3 | 4 | namespace glm 5 | { 6 | template 7 | GLM_FUNC_QUALIFIER tmat3x3 matrixCross3 8 | ( 9 | tvec3 const & x 10 | ) 11 | { 12 | tmat3x3 Result(T(0)); 13 | Result[0][1] = x.z; 14 | Result[1][0] = -x.z; 15 | Result[0][2] = -x.y; 16 | Result[2][0] = x.y; 17 | Result[1][2] = x.x; 18 | Result[2][1] = -x.x; 19 | return Result; 20 | } 21 | 22 | template 23 | GLM_FUNC_QUALIFIER tmat4x4 matrixCross4 24 | ( 25 | tvec3 const & x 26 | ) 27 | { 28 | tmat4x4 Result(T(0)); 29 | Result[0][1] = x.z; 30 | Result[1][0] = -x.z; 31 | Result[0][2] = -x.y; 32 | Result[2][0] = x.y; 33 | Result[1][2] = x.x; 34 | Result[2][1] = -x.x; 35 | return Result; 36 | } 37 | 38 | }//namespace glm 39 | -------------------------------------------------------------------------------- /xcode源码/LearnOpenGLXcodeWorkSpace/1.5transformations/1.5transformations/glm/gtx/mixed_product.hpp: -------------------------------------------------------------------------------- 1 | /// @ref gtx_mixed_product 2 | /// @file glm/gtx/mixed_product.hpp 3 | /// 4 | /// @see core (dependence) 5 | /// 6 | /// @defgroup gtx_mixed_product GLM_GTX_mixed_producte 7 | /// @ingroup gtx 8 | /// 9 | /// @brief Mixed product of 3 vectors. 10 | /// 11 | /// need to be included to use these functionalities. 12 | 13 | #pragma once 14 | 15 | // Dependency: 16 | #include "../glm.hpp" 17 | 18 | #if GLM_MESSAGES == GLM_MESSAGES_ENABLED && !defined(GLM_EXT_INCLUDED) 19 | # pragma message("GLM: GLM_GTX_mixed_product extension included") 20 | #endif 21 | 22 | namespace glm 23 | { 24 | /// @addtogroup gtx_mixed_product 25 | /// @{ 26 | 27 | /// @brief Mixed product of 3 vectors (from GLM_GTX_mixed_product extension) 28 | template 29 | GLM_FUNC_DECL T mixedProduct( 30 | tvec3 const & v1, 31 | tvec3 const & v2, 32 | tvec3 const & v3); 33 | 34 | /// @} 35 | }// namespace glm 36 | 37 | #include "mixed_product.inl" 38 | -------------------------------------------------------------------------------- /xcode源码/LearnOpenGLXcodeWorkSpace/1.5transformations/1.5transformations/glm/gtx/mixed_product.inl: -------------------------------------------------------------------------------- 1 | /// @ref gtx_mixed_product 2 | /// @file glm/gtx/mixed_product.inl 3 | 4 | namespace glm 5 | { 6 | template 7 | GLM_FUNC_QUALIFIER T mixedProduct 8 | ( 9 | tvec3 const & v1, 10 | tvec3 const & v2, 11 | tvec3 const & v3 12 | ) 13 | { 14 | return dot(cross(v1, v2), v3); 15 | } 16 | }//namespace glm 17 | -------------------------------------------------------------------------------- /xcode源码/LearnOpenGLXcodeWorkSpace/1.5transformations/1.5transformations/glm/gtx/normal.hpp: -------------------------------------------------------------------------------- 1 | /// @ref gtx_normal 2 | /// @file glm/gtx/normal.hpp 3 | /// 4 | /// @see core (dependence) 5 | /// @see gtx_extented_min_max (dependence) 6 | /// 7 | /// @defgroup gtx_normal GLM_GTX_normal 8 | /// @ingroup gtx 9 | /// 10 | /// @brief Compute the normal of a triangle. 11 | /// 12 | /// need to be included to use these functionalities. 13 | 14 | #pragma once 15 | 16 | // Dependency: 17 | #include "../glm.hpp" 18 | 19 | #if GLM_MESSAGES == GLM_MESSAGES_ENABLED && !defined(GLM_EXT_INCLUDED) 20 | # pragma message("GLM: GLM_GTX_normal extension included") 21 | #endif 22 | 23 | namespace glm 24 | { 25 | /// @addtogroup gtx_normal 26 | /// @{ 27 | 28 | //! Computes triangle normal from triangle points. 29 | //! From GLM_GTX_normal extension. 30 | template 31 | GLM_FUNC_DECL tvec3 triangleNormal( 32 | tvec3 const & p1, 33 | tvec3 const & p2, 34 | tvec3 const & p3); 35 | 36 | /// @} 37 | }//namespace glm 38 | 39 | #include "normal.inl" 40 | -------------------------------------------------------------------------------- /xcode源码/LearnOpenGLXcodeWorkSpace/1.5transformations/1.5transformations/glm/gtx/normal.inl: -------------------------------------------------------------------------------- 1 | /// @ref gtx_normal 2 | /// @file glm/gtx/normal.inl 3 | 4 | namespace glm 5 | { 6 | template 7 | GLM_FUNC_QUALIFIER tvec3 triangleNormal 8 | ( 9 | tvec3 const & p1, 10 | tvec3 const & p2, 11 | tvec3 const & p3 12 | ) 13 | { 14 | return normalize(cross(p1 - p2, p1 - p3)); 15 | } 16 | }//namespace glm 17 | -------------------------------------------------------------------------------- /xcode源码/LearnOpenGLXcodeWorkSpace/1.5transformations/1.5transformations/glm/gtx/normalize_dot.inl: -------------------------------------------------------------------------------- 1 | /// @ref gtx_normalize_dot 2 | /// @file glm/gtx/normalize_dot.inl 3 | 4 | namespace glm 5 | { 6 | template class vecType> 7 | GLM_FUNC_QUALIFIER T normalizeDot(vecType const & x, vecType const & y) 8 | { 9 | return glm::dot(x, y) * glm::inversesqrt(glm::dot(x, x) * glm::dot(y, y)); 10 | } 11 | 12 | template class vecType> 13 | GLM_FUNC_QUALIFIER T fastNormalizeDot(vecType const & x, vecType const & y) 14 | { 15 | return glm::dot(x, y) * glm::fastInverseSqrt(glm::dot(x, x) * glm::dot(y, y)); 16 | } 17 | }//namespace glm 18 | -------------------------------------------------------------------------------- /xcode源码/LearnOpenGLXcodeWorkSpace/1.5transformations/1.5transformations/glm/gtx/number_precision.inl: -------------------------------------------------------------------------------- 1 | /// @ref gtx_number_precision 2 | /// @file glm/gtx/number_precision.inl 3 | 4 | namespace glm 5 | { 6 | 7 | } 8 | -------------------------------------------------------------------------------- /xcode源码/LearnOpenGLXcodeWorkSpace/1.5transformations/1.5transformations/glm/gtx/optimum_pow.hpp: -------------------------------------------------------------------------------- 1 | /// @ref gtx_optimum_pow 2 | /// @file glm/gtx/optimum_pow.hpp 3 | /// 4 | /// @see core (dependence) 5 | /// 6 | /// @defgroup gtx_optimum_pow GLM_GTX_optimum_pow 7 | /// @ingroup gtx 8 | /// 9 | /// @brief Integer exponentiation of power functions. 10 | /// 11 | /// need to be included to use these functionalities. 12 | 13 | #pragma once 14 | 15 | // Dependency: 16 | #include "../glm.hpp" 17 | 18 | #if GLM_MESSAGES == GLM_MESSAGES_ENABLED && !defined(GLM_EXT_INCLUDED) 19 | # pragma message("GLM: GLM_GTX_optimum_pow extension included") 20 | #endif 21 | 22 | namespace glm{ 23 | namespace gtx 24 | { 25 | /// @addtogroup gtx_optimum_pow 26 | /// @{ 27 | 28 | /// Returns x raised to the power of 2. 29 | /// 30 | /// @see gtx_optimum_pow 31 | template 32 | GLM_FUNC_DECL genType pow2(genType const & x); 33 | 34 | /// Returns x raised to the power of 3. 35 | /// 36 | /// @see gtx_optimum_pow 37 | template 38 | GLM_FUNC_DECL genType pow3(genType const & x); 39 | 40 | /// Returns x raised to the power of 4. 41 | /// 42 | /// @see gtx_optimum_pow 43 | template 44 | GLM_FUNC_DECL genType pow4(genType const & x); 45 | 46 | /// @} 47 | }//namespace gtx 48 | }//namespace glm 49 | 50 | #include "optimum_pow.inl" 51 | -------------------------------------------------------------------------------- /xcode源码/LearnOpenGLXcodeWorkSpace/1.5transformations/1.5transformations/glm/gtx/optimum_pow.inl: -------------------------------------------------------------------------------- 1 | /// @ref gtx_optimum_pow 2 | /// @file glm/gtx/optimum_pow.inl 3 | 4 | namespace glm 5 | { 6 | template 7 | GLM_FUNC_QUALIFIER genType pow2(genType const & x) 8 | { 9 | return x * x; 10 | } 11 | 12 | template 13 | GLM_FUNC_QUALIFIER genType pow3(genType const & x) 14 | { 15 | return x * x * x; 16 | } 17 | 18 | template 19 | GLM_FUNC_QUALIFIER genType pow4(genType const & x) 20 | { 21 | return (x * x) * (x * x); 22 | } 23 | }//namespace glm 24 | -------------------------------------------------------------------------------- /xcode源码/LearnOpenGLXcodeWorkSpace/1.5transformations/1.5transformations/glm/gtx/orthonormalize.hpp: -------------------------------------------------------------------------------- 1 | /// @ref gtx_orthonormalize 2 | /// @file glm/gtx/orthonormalize.hpp 3 | /// 4 | /// @see core (dependence) 5 | /// @see gtx_extented_min_max (dependence) 6 | /// 7 | /// @defgroup gtx_orthonormalize GLM_GTX_orthonormalize 8 | /// @ingroup gtx 9 | /// 10 | /// @brief Orthonormalize matrices. 11 | /// 12 | /// need to be included to use these functionalities. 13 | 14 | #pragma once 15 | 16 | // Dependency: 17 | #include "../vec3.hpp" 18 | #include "../mat3x3.hpp" 19 | #include "../geometric.hpp" 20 | 21 | #if GLM_MESSAGES == GLM_MESSAGES_ENABLED && !defined(GLM_EXT_INCLUDED) 22 | # pragma message("GLM: GLM_GTX_orthonormalize extension included") 23 | #endif 24 | 25 | namespace glm 26 | { 27 | /// @addtogroup gtx_orthonormalize 28 | /// @{ 29 | 30 | /// Returns the orthonormalized matrix of m. 31 | /// 32 | /// @see gtx_orthonormalize 33 | template 34 | GLM_FUNC_DECL tmat3x3 orthonormalize(tmat3x3 const & m); 35 | 36 | /// Orthonormalizes x according y. 37 | /// 38 | /// @see gtx_orthonormalize 39 | template 40 | GLM_FUNC_DECL tvec3 orthonormalize(tvec3 const & x, tvec3 const & y); 41 | 42 | /// @} 43 | }//namespace glm 44 | 45 | #include "orthonormalize.inl" 46 | -------------------------------------------------------------------------------- /xcode源码/LearnOpenGLXcodeWorkSpace/1.5transformations/1.5transformations/glm/gtx/orthonormalize.inl: -------------------------------------------------------------------------------- 1 | /// @ref gtx_orthonormalize 2 | /// @file glm/gtx/orthonormalize.inl 3 | 4 | namespace glm 5 | { 6 | template 7 | GLM_FUNC_QUALIFIER tmat3x3 orthonormalize(tmat3x3 const & m) 8 | { 9 | tmat3x3 r = m; 10 | 11 | r[0] = normalize(r[0]); 12 | 13 | T d0 = dot(r[0], r[1]); 14 | r[1] -= r[0] * d0; 15 | r[1] = normalize(r[1]); 16 | 17 | T d1 = dot(r[1], r[2]); 18 | d0 = dot(r[0], r[2]); 19 | r[2] -= r[0] * d0 + r[1] * d1; 20 | r[2] = normalize(r[2]); 21 | 22 | return r; 23 | } 24 | 25 | template 26 | GLM_FUNC_QUALIFIER tvec3 orthonormalize(tvec3 const & x, tvec3 const & y) 27 | { 28 | return normalize(x - y * dot(y, x)); 29 | } 30 | }//namespace glm 31 | -------------------------------------------------------------------------------- /xcode源码/LearnOpenGLXcodeWorkSpace/1.5transformations/1.5transformations/glm/gtx/perpendicular.hpp: -------------------------------------------------------------------------------- 1 | /// @ref gtx_perpendicular 2 | /// @file glm/gtx/perpendicular.hpp 3 | /// 4 | /// @see core (dependence) 5 | /// @see gtx_projection (dependence) 6 | /// 7 | /// @defgroup gtx_perpendicular GLM_GTX_perpendicular 8 | /// @ingroup gtx 9 | /// 10 | /// @brief Perpendicular of a vector from other one 11 | /// 12 | /// need to be included to use these functionalities. 13 | 14 | #pragma once 15 | 16 | // Dependency: 17 | #include "../glm.hpp" 18 | #include "../gtx/projection.hpp" 19 | 20 | #if GLM_MESSAGES == GLM_MESSAGES_ENABLED && !defined(GLM_EXT_INCLUDED) 21 | # pragma message("GLM: GLM_GTX_perpendicular extension included") 22 | #endif 23 | 24 | namespace glm 25 | { 26 | /// @addtogroup gtx_perpendicular 27 | /// @{ 28 | 29 | //! Projects x a perpendicular axis of Normal. 30 | //! From GLM_GTX_perpendicular extension. 31 | template 32 | GLM_FUNC_DECL vecType perp( 33 | vecType const & x, 34 | vecType const & Normal); 35 | 36 | /// @} 37 | }//namespace glm 38 | 39 | #include "perpendicular.inl" 40 | -------------------------------------------------------------------------------- /xcode源码/LearnOpenGLXcodeWorkSpace/1.5transformations/1.5transformations/glm/gtx/perpendicular.inl: -------------------------------------------------------------------------------- 1 | /// @ref gtx_perpendicular 2 | /// @file glm/gtx/perpendicular.inl 3 | 4 | namespace glm 5 | { 6 | template 7 | GLM_FUNC_QUALIFIER vecType perp 8 | ( 9 | vecType const & x, 10 | vecType const & Normal 11 | ) 12 | { 13 | return x - proj(x, Normal); 14 | } 15 | }//namespace glm 16 | -------------------------------------------------------------------------------- /xcode源码/LearnOpenGLXcodeWorkSpace/1.5transformations/1.5transformations/glm/gtx/polar_coordinates.hpp: -------------------------------------------------------------------------------- 1 | /// @ref gtx_polar_coordinates 2 | /// @file glm/gtx/polar_coordinates.hpp 3 | /// 4 | /// @see core (dependence) 5 | /// 6 | /// @defgroup gtx_polar_coordinates GLM_GTX_polar_coordinates 7 | /// @ingroup gtx 8 | /// 9 | /// @brief Conversion from Euclidean space to polar space and revert. 10 | /// 11 | /// need to be included to use these functionalities. 12 | 13 | #pragma once 14 | 15 | // Dependency: 16 | #include "../glm.hpp" 17 | 18 | #if GLM_MESSAGES == GLM_MESSAGES_ENABLED && !defined(GLM_EXT_INCLUDED) 19 | # pragma message("GLM: GLM_GTX_polar_coordinates extension included") 20 | #endif 21 | 22 | namespace glm 23 | { 24 | /// @addtogroup gtx_polar_coordinates 25 | /// @{ 26 | 27 | /// Convert Euclidean to Polar coordinates, x is the xz distance, y, the latitude and z the longitude. 28 | /// 29 | /// @see gtx_polar_coordinates 30 | template 31 | GLM_FUNC_DECL tvec3 polar( 32 | tvec3 const & euclidean); 33 | 34 | /// Convert Polar to Euclidean coordinates. 35 | /// 36 | /// @see gtx_polar_coordinates 37 | template 38 | GLM_FUNC_DECL tvec3 euclidean( 39 | tvec2 const & polar); 40 | 41 | /// @} 42 | }//namespace glm 43 | 44 | #include "polar_coordinates.inl" 45 | -------------------------------------------------------------------------------- /xcode源码/LearnOpenGLXcodeWorkSpace/1.5transformations/1.5transformations/glm/gtx/polar_coordinates.inl: -------------------------------------------------------------------------------- 1 | /// @ref gtx_polar_coordinates 2 | /// @file glm/gtx/polar_coordinates.inl 3 | 4 | namespace glm 5 | { 6 | template 7 | GLM_FUNC_QUALIFIER tvec3 polar 8 | ( 9 | tvec3 const & euclidean 10 | ) 11 | { 12 | T const Length(length(euclidean)); 13 | tvec3 const tmp(euclidean / Length); 14 | T const xz_dist(sqrt(tmp.x * tmp.x + tmp.z * tmp.z)); 15 | 16 | return tvec3( 17 | asin(tmp.y), // latitude 18 | atan(tmp.x, tmp.z), // longitude 19 | xz_dist); // xz distance 20 | } 21 | 22 | template 23 | GLM_FUNC_QUALIFIER tvec3 euclidean 24 | ( 25 | tvec2 const & polar 26 | ) 27 | { 28 | T const latitude(polar.x); 29 | T const longitude(polar.y); 30 | 31 | return tvec3( 32 | cos(latitude) * sin(longitude), 33 | sin(latitude), 34 | cos(latitude) * cos(longitude)); 35 | } 36 | 37 | }//namespace glm 38 | -------------------------------------------------------------------------------- /xcode源码/LearnOpenGLXcodeWorkSpace/1.5transformations/1.5transformations/glm/gtx/projection.hpp: -------------------------------------------------------------------------------- 1 | /// @ref gtx_projection 2 | /// @file glm/gtx/projection.hpp 3 | /// 4 | /// @see core (dependence) 5 | /// 6 | /// @defgroup gtx_projection GLM_GTX_projection 7 | /// @ingroup gtx 8 | /// 9 | /// @brief Projection of a vector to other one 10 | /// 11 | /// need to be included to use these functionalities. 12 | 13 | #pragma once 14 | 15 | // Dependency: 16 | #include "../geometric.hpp" 17 | 18 | #if GLM_MESSAGES == GLM_MESSAGES_ENABLED && !defined(GLM_EXT_INCLUDED) 19 | # pragma message("GLM: GLM_GTX_projection extension included") 20 | #endif 21 | 22 | namespace glm 23 | { 24 | /// @addtogroup gtx_projection 25 | /// @{ 26 | 27 | /// Projects x on Normal. 28 | /// 29 | /// @see gtx_projection 30 | template 31 | GLM_FUNC_DECL vecType proj(vecType const & x, vecType const & Normal); 32 | 33 | /// @} 34 | }//namespace glm 35 | 36 | #include "projection.inl" 37 | -------------------------------------------------------------------------------- /xcode源码/LearnOpenGLXcodeWorkSpace/1.5transformations/1.5transformations/glm/gtx/projection.inl: -------------------------------------------------------------------------------- 1 | /// @ref gtx_projection 2 | /// @file glm/gtx/projection.inl 3 | 4 | namespace glm 5 | { 6 | template 7 | GLM_FUNC_QUALIFIER vecType proj(vecType const & x, vecType const & Normal) 8 | { 9 | return glm::dot(x, Normal) / glm::dot(Normal, Normal) * Normal; 10 | } 11 | }//namespace glm 12 | -------------------------------------------------------------------------------- /xcode源码/LearnOpenGLXcodeWorkSpace/1.5transformations/1.5transformations/glm/gtx/raw_data.hpp: -------------------------------------------------------------------------------- 1 | /// @ref gtx_raw_data 2 | /// @file glm/gtx/raw_data.hpp 3 | /// 4 | /// @see core (dependence) 5 | /// 6 | /// @defgroup gtx_raw_data GLM_GTX_raw_data 7 | /// @ingroup gtx 8 | /// 9 | /// @brief Projection of a vector to other one 10 | /// 11 | /// need to be included to use these functionalities. 12 | 13 | #pragma once 14 | 15 | // Dependencies 16 | #include "../detail/setup.hpp" 17 | #include "../detail/type_int.hpp" 18 | 19 | #if GLM_MESSAGES == GLM_MESSAGES_ENABLED && !defined(GLM_EXT_INCLUDED) 20 | # pragma message("GLM: GLM_GTX_raw_data extension included") 21 | #endif 22 | 23 | namespace glm 24 | { 25 | /// @addtogroup gtx_raw_data 26 | /// @{ 27 | 28 | //! Type for byte numbers. 29 | //! From GLM_GTX_raw_data extension. 30 | typedef detail::uint8 byte; 31 | 32 | //! Type for word numbers. 33 | //! From GLM_GTX_raw_data extension. 34 | typedef detail::uint16 word; 35 | 36 | //! Type for dword numbers. 37 | //! From GLM_GTX_raw_data extension. 38 | typedef detail::uint32 dword; 39 | 40 | //! Type for qword numbers. 41 | //! From GLM_GTX_raw_data extension. 42 | typedef detail::uint64 qword; 43 | 44 | /// @} 45 | }// namespace glm 46 | 47 | #include "raw_data.inl" 48 | -------------------------------------------------------------------------------- /xcode源码/LearnOpenGLXcodeWorkSpace/1.5transformations/1.5transformations/glm/gtx/raw_data.inl: -------------------------------------------------------------------------------- 1 | /// @ref gtx_raw_data 2 | /// @file glm/gtx/raw_data.inl 3 | -------------------------------------------------------------------------------- /xcode源码/LearnOpenGLXcodeWorkSpace/1.5transformations/1.5transformations/glm/gtx/scalar_relational.hpp: -------------------------------------------------------------------------------- 1 | /// @ref gtx_scalar_relational 2 | /// @file glm/gtx/scalar_relational.hpp 3 | /// 4 | /// @see core (dependence) 5 | /// 6 | /// @defgroup gtx_scalar_relational GLM_GTX_scalar_relational 7 | /// @ingroup gtx 8 | /// 9 | /// @brief Extend a position from a source to a position at a defined length. 10 | /// 11 | /// need to be included to use these functionalities. 12 | 13 | #pragma once 14 | 15 | // Dependency: 16 | #include "../glm.hpp" 17 | 18 | #if GLM_MESSAGES == GLM_MESSAGES_ENABLED && !defined(GLM_EXT_INCLUDED) 19 | # pragma message("GLM: GLM_GTX_extend extension included") 20 | #endif 21 | 22 | namespace glm 23 | { 24 | /// @addtogroup gtx_scalar_relational 25 | /// @{ 26 | 27 | 28 | 29 | /// @} 30 | }//namespace glm 31 | 32 | #include "scalar_relational.inl" 33 | -------------------------------------------------------------------------------- /xcode源码/LearnOpenGLXcodeWorkSpace/1.5transformations/1.5transformations/glm/gtx/std_based_type.inl: -------------------------------------------------------------------------------- 1 | /// @ref gtx_std_based_type 2 | /// @file glm/gtx/std_based_type.inl 3 | 4 | namespace glm 5 | { 6 | 7 | } 8 | -------------------------------------------------------------------------------- /xcode源码/LearnOpenGLXcodeWorkSpace/1.5transformations/1.5transformations/glm/gtx/transform.inl: -------------------------------------------------------------------------------- 1 | /// @ref gtx_transform 2 | /// @file glm/gtx/transform.inl 3 | 4 | namespace glm 5 | { 6 | template 7 | GLM_FUNC_QUALIFIER tmat4x4 translate(tvec3 const & v) 8 | { 9 | return translate(tmat4x4(static_cast(1)), v); 10 | } 11 | 12 | template 13 | GLM_FUNC_QUALIFIER tmat4x4 rotate(T angle, tvec3 const & v) 14 | { 15 | return rotate(tmat4x4(static_cast(1)), angle, v); 16 | } 17 | 18 | template 19 | GLM_FUNC_QUALIFIER tmat4x4 scale(tvec3 const & v) 20 | { 21 | return scale(tmat4x4(static_cast(1)), v); 22 | } 23 | 24 | }//namespace glm 25 | -------------------------------------------------------------------------------- /xcode源码/LearnOpenGLXcodeWorkSpace/1.5transformations/1.5transformations/glm/gtx/type_aligned.inl: -------------------------------------------------------------------------------- 1 | /// @ref gtc_type_aligned 2 | /// @file glm/gtc/type_aligned.inl 3 | 4 | namespace glm 5 | { 6 | 7 | } 8 | -------------------------------------------------------------------------------- /xcode源码/LearnOpenGLXcodeWorkSpace/1.5transformations/1.5transformations/glm/gtx/type_trait.inl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xcysuccess/LearnOpenGLNote/0dc03002531eef4a3f294ea5ba236d34fde4449b/xcode源码/LearnOpenGLXcodeWorkSpace/1.5transformations/1.5transformations/glm/gtx/type_trait.inl -------------------------------------------------------------------------------- /xcode源码/LearnOpenGLXcodeWorkSpace/1.5transformations/1.5transformations/glm/integer.hpp: -------------------------------------------------------------------------------- 1 | /// @ref core 2 | /// @file glm/integer.hpp 3 | 4 | #pragma once 5 | 6 | #include "detail/func_integer.hpp" 7 | -------------------------------------------------------------------------------- /xcode源码/LearnOpenGLXcodeWorkSpace/1.5transformations/1.5transformations/glm/matrix.hpp: -------------------------------------------------------------------------------- 1 | /// @ref core 2 | /// @file glm/matrix.hpp 3 | 4 | #pragma once 5 | 6 | #include "detail/func_matrix.hpp" 7 | -------------------------------------------------------------------------------- /xcode源码/LearnOpenGLXcodeWorkSpace/1.5transformations/1.5transformations/glm/packing.hpp: -------------------------------------------------------------------------------- 1 | /// @ref core 2 | /// @file glm/packing.hpp 3 | 4 | #pragma once 5 | 6 | #include "detail/func_packing.hpp" 7 | -------------------------------------------------------------------------------- /xcode源码/LearnOpenGLXcodeWorkSpace/1.5transformations/1.5transformations/glm/simd/exponential.h: -------------------------------------------------------------------------------- 1 | /// @ref simd 2 | /// @file glm/simd/experimental.h 3 | 4 | #pragma once 5 | 6 | #include "platform.h" 7 | 8 | #if GLM_ARCH & GLM_ARCH_SSE2_BIT 9 | 10 | GLM_FUNC_QUALIFIER glm_vec4 glm_vec1_sqrt_lowp(glm_vec4 x) 11 | { 12 | return _mm_mul_ss(_mm_rsqrt_ss(x), x); 13 | } 14 | 15 | GLM_FUNC_QUALIFIER glm_vec4 glm_vec4_sqrt_lowp(glm_vec4 x) 16 | { 17 | return _mm_mul_ps(_mm_rsqrt_ps(x), x); 18 | } 19 | 20 | #endif//GLM_ARCH & GLM_ARCH_SSE2_BIT 21 | -------------------------------------------------------------------------------- /xcode源码/LearnOpenGLXcodeWorkSpace/1.5transformations/1.5transformations/glm/simd/packing.h: -------------------------------------------------------------------------------- 1 | /// @ref simd 2 | /// @file glm/simd/packing.h 3 | 4 | #pragma once 5 | 6 | #if GLM_ARCH & GLM_ARCH_SSE2_BIT 7 | 8 | #endif//GLM_ARCH & GLM_ARCH_SSE2_BIT 9 | -------------------------------------------------------------------------------- /xcode源码/LearnOpenGLXcodeWorkSpace/1.5transformations/1.5transformations/glm/simd/trigonometric.h: -------------------------------------------------------------------------------- 1 | /// @ref simd 2 | /// @file glm/simd/trigonometric.h 3 | 4 | #pragma once 5 | 6 | #if GLM_ARCH & GLM_ARCH_SSE2_BIT 7 | 8 | #endif//GLM_ARCH & GLM_ARCH_SSE2_BIT 9 | 10 | -------------------------------------------------------------------------------- /xcode源码/LearnOpenGLXcodeWorkSpace/1.5transformations/1.5transformations/glm/simd/vector_relational.h: -------------------------------------------------------------------------------- 1 | /// @ref simd 2 | /// @file glm/simd/vector_relational.h 3 | 4 | #pragma once 5 | 6 | #if GLM_ARCH & GLM_ARCH_SSE2_BIT 7 | 8 | #endif//GLM_ARCH & GLM_ARCH_SSE2_BIT 9 | -------------------------------------------------------------------------------- /xcode源码/LearnOpenGLXcodeWorkSpace/1.5transformations/1.5transformations/glm/trigonometric.hpp: -------------------------------------------------------------------------------- 1 | /// @ref core 2 | /// @file glm/trigonometric.hpp 3 | 4 | #pragma once 5 | 6 | #include "detail/func_trigonometric.hpp" 7 | -------------------------------------------------------------------------------- /xcode源码/LearnOpenGLXcodeWorkSpace/1.5transformations/1.5transformations/glm/vec2.hpp: -------------------------------------------------------------------------------- 1 | /// @ref core 2 | /// @file glm/vec2.hpp 3 | 4 | #pragma once 5 | 6 | #include "detail/type_vec2.hpp" 7 | -------------------------------------------------------------------------------- /xcode源码/LearnOpenGLXcodeWorkSpace/1.5transformations/1.5transformations/glm/vec3.hpp: -------------------------------------------------------------------------------- 1 | /// @ref core 2 | /// @file glm/vec3.hpp 3 | 4 | #pragma once 5 | 6 | #include "detail/type_vec3.hpp" 7 | -------------------------------------------------------------------------------- /xcode源码/LearnOpenGLXcodeWorkSpace/1.5transformations/1.5transformations/glm/vec4.hpp: -------------------------------------------------------------------------------- 1 | /// @ref core 2 | /// @file glm/vec4.hpp 3 | 4 | #pragma once 5 | 6 | #include "detail/type_vec4.hpp" 7 | -------------------------------------------------------------------------------- /xcode源码/LearnOpenGLXcodeWorkSpace/1.5transformations/1.5transformations/glm/vector_relational.hpp: -------------------------------------------------------------------------------- 1 | /// @ref core 2 | /// @file glm/vector_relational.hpp 3 | 4 | #pragma once 5 | 6 | #include "detail/func_vector_relational.hpp" 7 | -------------------------------------------------------------------------------- /xcode源码/resources/.DS_Store: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xcysuccess/LearnOpenGLNote/0dc03002531eef4a3f294ea5ba236d34fde4449b/xcode源码/resources/.DS_Store -------------------------------------------------------------------------------- /xcode源码/resources/objects/.DS_Store: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xcysuccess/LearnOpenGLNote/0dc03002531eef4a3f294ea5ba236d34fde4449b/xcode源码/resources/objects/.DS_Store -------------------------------------------------------------------------------- /xcode源码/resources/objects/nanosuit/arm_dif.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xcysuccess/LearnOpenGLNote/0dc03002531eef4a3f294ea5ba236d34fde4449b/xcode源码/resources/objects/nanosuit/arm_dif.png -------------------------------------------------------------------------------- /xcode源码/resources/objects/nanosuit/arm_showroom_ddn.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xcysuccess/LearnOpenGLNote/0dc03002531eef4a3f294ea5ba236d34fde4449b/xcode源码/resources/objects/nanosuit/arm_showroom_ddn.png -------------------------------------------------------------------------------- /xcode源码/resources/objects/nanosuit/arm_showroom_refl.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xcysuccess/LearnOpenGLNote/0dc03002531eef4a3f294ea5ba236d34fde4449b/xcode源码/resources/objects/nanosuit/arm_showroom_refl.png -------------------------------------------------------------------------------- /xcode源码/resources/objects/nanosuit/arm_showroom_spec.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xcysuccess/LearnOpenGLNote/0dc03002531eef4a3f294ea5ba236d34fde4449b/xcode源码/resources/objects/nanosuit/arm_showroom_spec.png -------------------------------------------------------------------------------- /xcode源码/resources/objects/nanosuit/back.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xcysuccess/LearnOpenGLNote/0dc03002531eef4a3f294ea5ba236d34fde4449b/xcode源码/resources/objects/nanosuit/back.jpg -------------------------------------------------------------------------------- /xcode源码/resources/objects/nanosuit/body_dif.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xcysuccess/LearnOpenGLNote/0dc03002531eef4a3f294ea5ba236d34fde4449b/xcode源码/resources/objects/nanosuit/body_dif.png -------------------------------------------------------------------------------- /xcode源码/resources/objects/nanosuit/body_showroom_ddn.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xcysuccess/LearnOpenGLNote/0dc03002531eef4a3f294ea5ba236d34fde4449b/xcode源码/resources/objects/nanosuit/body_showroom_ddn.png -------------------------------------------------------------------------------- /xcode源码/resources/objects/nanosuit/body_showroom_refl.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xcysuccess/LearnOpenGLNote/0dc03002531eef4a3f294ea5ba236d34fde4449b/xcode源码/resources/objects/nanosuit/body_showroom_refl.png -------------------------------------------------------------------------------- /xcode源码/resources/objects/nanosuit/body_showroom_spec.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xcysuccess/LearnOpenGLNote/0dc03002531eef4a3f294ea5ba236d34fde4449b/xcode源码/resources/objects/nanosuit/body_showroom_spec.png -------------------------------------------------------------------------------- /xcode源码/resources/objects/nanosuit/cell_arm_alpha.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xcysuccess/LearnOpenGLNote/0dc03002531eef4a3f294ea5ba236d34fde4449b/xcode源码/resources/objects/nanosuit/cell_arm_alpha.png -------------------------------------------------------------------------------- /xcode源码/resources/objects/nanosuit/cell_body_alpha.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xcysuccess/LearnOpenGLNote/0dc03002531eef4a3f294ea5ba236d34fde4449b/xcode源码/resources/objects/nanosuit/cell_body_alpha.png -------------------------------------------------------------------------------- /xcode源码/resources/objects/nanosuit/cell_ddn.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xcysuccess/LearnOpenGLNote/0dc03002531eef4a3f294ea5ba236d34fde4449b/xcode源码/resources/objects/nanosuit/cell_ddn.png -------------------------------------------------------------------------------- /xcode源码/resources/objects/nanosuit/cell_hand_alpha.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xcysuccess/LearnOpenGLNote/0dc03002531eef4a3f294ea5ba236d34fde4449b/xcode源码/resources/objects/nanosuit/cell_hand_alpha.png -------------------------------------------------------------------------------- /xcode源码/resources/objects/nanosuit/cell_helmet_alpha.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xcysuccess/LearnOpenGLNote/0dc03002531eef4a3f294ea5ba236d34fde4449b/xcode源码/resources/objects/nanosuit/cell_helmet_alpha.png -------------------------------------------------------------------------------- /xcode源码/resources/objects/nanosuit/cell_leg_alpha.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xcysuccess/LearnOpenGLNote/0dc03002531eef4a3f294ea5ba236d34fde4449b/xcode源码/resources/objects/nanosuit/cell_leg_alpha.png -------------------------------------------------------------------------------- /xcode源码/resources/objects/nanosuit/front.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xcysuccess/LearnOpenGLNote/0dc03002531eef4a3f294ea5ba236d34fde4449b/xcode源码/resources/objects/nanosuit/front.jpg -------------------------------------------------------------------------------- /xcode源码/resources/objects/nanosuit/glass_ddn.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xcysuccess/LearnOpenGLNote/0dc03002531eef4a3f294ea5ba236d34fde4449b/xcode源码/resources/objects/nanosuit/glass_ddn.png -------------------------------------------------------------------------------- /xcode源码/resources/objects/nanosuit/glass_dif.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xcysuccess/LearnOpenGLNote/0dc03002531eef4a3f294ea5ba236d34fde4449b/xcode源码/resources/objects/nanosuit/glass_dif.png -------------------------------------------------------------------------------- /xcode源码/resources/objects/nanosuit/glass_refl.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xcysuccess/LearnOpenGLNote/0dc03002531eef4a3f294ea5ba236d34fde4449b/xcode源码/resources/objects/nanosuit/glass_refl.png -------------------------------------------------------------------------------- /xcode源码/resources/objects/nanosuit/hand_dif.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xcysuccess/LearnOpenGLNote/0dc03002531eef4a3f294ea5ba236d34fde4449b/xcode源码/resources/objects/nanosuit/hand_dif.png -------------------------------------------------------------------------------- /xcode源码/resources/objects/nanosuit/hand_showroom_ddn.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xcysuccess/LearnOpenGLNote/0dc03002531eef4a3f294ea5ba236d34fde4449b/xcode源码/resources/objects/nanosuit/hand_showroom_ddn.png -------------------------------------------------------------------------------- /xcode源码/resources/objects/nanosuit/hand_showroom_refl.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xcysuccess/LearnOpenGLNote/0dc03002531eef4a3f294ea5ba236d34fde4449b/xcode源码/resources/objects/nanosuit/hand_showroom_refl.png -------------------------------------------------------------------------------- /xcode源码/resources/objects/nanosuit/hand_showroom_spec.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xcysuccess/LearnOpenGLNote/0dc03002531eef4a3f294ea5ba236d34fde4449b/xcode源码/resources/objects/nanosuit/hand_showroom_spec.png -------------------------------------------------------------------------------- /xcode源码/resources/objects/nanosuit/helmet_diff.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xcysuccess/LearnOpenGLNote/0dc03002531eef4a3f294ea5ba236d34fde4449b/xcode源码/resources/objects/nanosuit/helmet_diff.png -------------------------------------------------------------------------------- /xcode源码/resources/objects/nanosuit/helmet_showroom_ddn.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xcysuccess/LearnOpenGLNote/0dc03002531eef4a3f294ea5ba236d34fde4449b/xcode源码/resources/objects/nanosuit/helmet_showroom_ddn.png -------------------------------------------------------------------------------- /xcode源码/resources/objects/nanosuit/helmet_showroom_refl.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xcysuccess/LearnOpenGLNote/0dc03002531eef4a3f294ea5ba236d34fde4449b/xcode源码/resources/objects/nanosuit/helmet_showroom_refl.png -------------------------------------------------------------------------------- /xcode源码/resources/objects/nanosuit/helmet_showroom_spec.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xcysuccess/LearnOpenGLNote/0dc03002531eef4a3f294ea5ba236d34fde4449b/xcode源码/resources/objects/nanosuit/helmet_showroom_spec.png -------------------------------------------------------------------------------- /xcode源码/resources/objects/nanosuit/leg_dif.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xcysuccess/LearnOpenGLNote/0dc03002531eef4a3f294ea5ba236d34fde4449b/xcode源码/resources/objects/nanosuit/leg_dif.png -------------------------------------------------------------------------------- /xcode源码/resources/objects/nanosuit/leg_showroom_ddn.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xcysuccess/LearnOpenGLNote/0dc03002531eef4a3f294ea5ba236d34fde4449b/xcode源码/resources/objects/nanosuit/leg_showroom_ddn.png -------------------------------------------------------------------------------- /xcode源码/resources/objects/nanosuit/leg_showroom_refl.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xcysuccess/LearnOpenGLNote/0dc03002531eef4a3f294ea5ba236d34fde4449b/xcode源码/resources/objects/nanosuit/leg_showroom_refl.png -------------------------------------------------------------------------------- /xcode源码/resources/objects/nanosuit/leg_showroom_spec.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xcysuccess/LearnOpenGLNote/0dc03002531eef4a3f294ea5ba236d34fde4449b/xcode源码/resources/objects/nanosuit/leg_showroom_spec.png -------------------------------------------------------------------------------- /xcode源码/resources/objects/planet/planet.mtl: -------------------------------------------------------------------------------- 1 | # Blender MTL 2 | # Material Count: 1 3 | 4 | newmtl Material.001 5 | Ns 96.078431 6 | Ka 0.000000 0.000000 0.000000 7 | Kd 0.640000 0.640000 0.640000 8 | Ks 0.087302 0.087302 0.087302 9 | Ni 1.000000 10 | d 1.000000 11 | illum 2 12 | map_Kd planet_Quom1200.png 13 | map_Bump planet_Quom1200.png 14 | -------------------------------------------------------------------------------- /xcode源码/resources/objects/planet/planet_Quom1200.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xcysuccess/LearnOpenGLNote/0dc03002531eef4a3f294ea5ba236d34fde4449b/xcode源码/resources/objects/planet/planet_Quom1200.png -------------------------------------------------------------------------------- /xcode源码/resources/objects/rock/Rock-Texture-Surface.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xcysuccess/LearnOpenGLNote/0dc03002531eef4a3f294ea5ba236d34fde4449b/xcode源码/resources/objects/rock/Rock-Texture-Surface.jpg -------------------------------------------------------------------------------- /xcode源码/resources/objects/rock/rock.mtl: -------------------------------------------------------------------------------- 1 | # Blender MTL File: 'Rock1.blend' 2 | # Material Count: 1 3 | 4 | newmtl Material 5 | Ns 13.725490 6 | Ka 0.000000 0.000000 0.000000 7 | Kd 0.640000 0.640000 0.640000 8 | Ks 0.007937 0.007937 0.007937 9 | Ni 1.000000 10 | d 1.000000 11 | illum 2 12 | map_Bump Rock-Texture-Surface.jpg 13 | map_Kd Rock-Texture-Surface.jpg 14 | -------------------------------------------------------------------------------- /xcode源码/resources/textures/.DS_Store: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xcysuccess/LearnOpenGLNote/0dc03002531eef4a3f294ea5ba236d34fde4449b/xcode源码/resources/textures/.DS_Store -------------------------------------------------------------------------------- /xcode源码/resources/textures/awesomeface.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xcysuccess/LearnOpenGLNote/0dc03002531eef4a3f294ea5ba236d34fde4449b/xcode源码/resources/textures/awesomeface.png -------------------------------------------------------------------------------- /xcode源码/resources/textures/container.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xcysuccess/LearnOpenGLNote/0dc03002531eef4a3f294ea5ba236d34fde4449b/xcode源码/resources/textures/container.jpg -------------------------------------------------------------------------------- /xcode源码/resources/textures/container2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xcysuccess/LearnOpenGLNote/0dc03002531eef4a3f294ea5ba236d34fde4449b/xcode源码/resources/textures/container2.png -------------------------------------------------------------------------------- /xcode源码/resources/textures/container2_specular.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xcysuccess/LearnOpenGLNote/0dc03002531eef4a3f294ea5ba236d34fde4449b/xcode源码/resources/textures/container2_specular.png -------------------------------------------------------------------------------- /xcode源码/resources/textures/grass.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xcysuccess/LearnOpenGLNote/0dc03002531eef4a3f294ea5ba236d34fde4449b/xcode源码/resources/textures/grass.png -------------------------------------------------------------------------------- /xcode源码/resources/textures/marble.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xcysuccess/LearnOpenGLNote/0dc03002531eef4a3f294ea5ba236d34fde4449b/xcode源码/resources/textures/marble.jpg -------------------------------------------------------------------------------- /xcode源码/resources/textures/metal.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xcysuccess/LearnOpenGLNote/0dc03002531eef4a3f294ea5ba236d34fde4449b/xcode源码/resources/textures/metal.png -------------------------------------------------------------------------------- /xcode源码/resources/textures/skybox/back.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xcysuccess/LearnOpenGLNote/0dc03002531eef4a3f294ea5ba236d34fde4449b/xcode源码/resources/textures/skybox/back.jpg -------------------------------------------------------------------------------- /xcode源码/resources/textures/skybox/bottom.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xcysuccess/LearnOpenGLNote/0dc03002531eef4a3f294ea5ba236d34fde4449b/xcode源码/resources/textures/skybox/bottom.jpg -------------------------------------------------------------------------------- /xcode源码/resources/textures/skybox/front.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xcysuccess/LearnOpenGLNote/0dc03002531eef4a3f294ea5ba236d34fde4449b/xcode源码/resources/textures/skybox/front.jpg -------------------------------------------------------------------------------- /xcode源码/resources/textures/skybox/left.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xcysuccess/LearnOpenGLNote/0dc03002531eef4a3f294ea5ba236d34fde4449b/xcode源码/resources/textures/skybox/left.jpg -------------------------------------------------------------------------------- /xcode源码/resources/textures/skybox/right.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xcysuccess/LearnOpenGLNote/0dc03002531eef4a3f294ea5ba236d34fde4449b/xcode源码/resources/textures/skybox/right.jpg -------------------------------------------------------------------------------- /xcode源码/resources/textures/skybox/top.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xcysuccess/LearnOpenGLNote/0dc03002531eef4a3f294ea5ba236d34fde4449b/xcode源码/resources/textures/skybox/top.jpg -------------------------------------------------------------------------------- /xcode源码/resources/textures/window.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xcysuccess/LearnOpenGLNote/0dc03002531eef4a3f294ea5ba236d34fde4449b/xcode源码/resources/textures/window.png -------------------------------------------------------------------------------- /xcode源码/resources/textures/wood.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xcysuccess/LearnOpenGLNote/0dc03002531eef4a3f294ea5ba236d34fde4449b/xcode源码/resources/textures/wood.png --------------------------------------------------------------------------------