diff --git a/PROJ1_WIN/565Raytracer.sdf b/PROJ1_WIN/565Raytracer.sdf new file mode 100644 index 0000000..1e72363 Binary files /dev/null and b/PROJ1_WIN/565Raytracer.sdf differ diff --git a/PROJ1_WIN/565Raytracer/565Raytracer.vcxproj b/PROJ1_WIN/565Raytracer/565Raytracer.vcxproj index fcc853d..2aeb5c4 100755 --- a/PROJ1_WIN/565Raytracer/565Raytracer.vcxproj +++ b/PROJ1_WIN/565Raytracer/565Raytracer.vcxproj @@ -36,6 +36,10 @@ + + + + {FF21CA49-522E-4E86-B508-EE515B248FC4} Win32Proj diff --git a/PROJ1_WIN/565Raytracer/565Raytracer.vcxproj.filters b/PROJ1_WIN/565Raytracer/565Raytracer.vcxproj.filters index d49ad9c..f8b47d8 100755 --- a/PROJ1_WIN/565Raytracer/565Raytracer.vcxproj.filters +++ b/PROJ1_WIN/565Raytracer/565Raytracer.vcxproj.filters @@ -39,4 +39,8 @@ {011aa553-95e8-4e59-b7ff-1bb89aebe21d} + + + + \ No newline at end of file diff --git a/PROJ1_WIN/565Raytracer/565Raytracer.vcxproj.user b/PROJ1_WIN/565Raytracer/565Raytracer.vcxproj.user index d7ca222..19379b4 100755 --- a/PROJ1_WIN/565Raytracer/565Raytracer.vcxproj.user +++ b/PROJ1_WIN/565Raytracer/565Raytracer.vcxproj.user @@ -1,7 +1,11 @@  - scene="../../scenes/sampleScene.txt" + scene="../../scenes/scene1.txt" + WindowsLocalDebugger + + + ../../scenes/scene1.txt WindowsLocalDebugger \ No newline at end of file diff --git a/PROJ1_WIN/565Raytracer/Debug/565Raytracer.exe.embed.manifest b/PROJ1_WIN/565Raytracer/Debug/565Raytracer.exe.embed.manifest new file mode 100644 index 0000000..e693382 --- /dev/null +++ b/PROJ1_WIN/565Raytracer/Debug/565Raytracer.exe.embed.manifest @@ -0,0 +1,10 @@ + + + + + + + + + + \ No newline at end of file diff --git a/PROJ1_WIN/565Raytracer/Debug/565Raytracer.exe.embed.manifest.res b/PROJ1_WIN/565Raytracer/Debug/565Raytracer.exe.embed.manifest.res new file mode 100644 index 0000000..9c8df0e Binary files /dev/null and b/PROJ1_WIN/565Raytracer/Debug/565Raytracer.exe.embed.manifest.res differ diff --git a/PROJ1_WIN/565Raytracer/Debug/565Raytracer.exe.intermediate.manifest b/PROJ1_WIN/565Raytracer/Debug/565Raytracer.exe.intermediate.manifest new file mode 100644 index 0000000..1c06b61 --- /dev/null +++ b/PROJ1_WIN/565Raytracer/Debug/565Raytracer.exe.intermediate.manifest @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/PROJ1_WIN/565Raytracer/Debug/565Raytracer.lastbuildstate b/PROJ1_WIN/565Raytracer/Debug/565Raytracer.lastbuildstate new file mode 100644 index 0000000..0d7f34e --- /dev/null +++ b/PROJ1_WIN/565Raytracer/Debug/565Raytracer.lastbuildstate @@ -0,0 +1,2 @@ +#v4.0:v100 +Debug|Win32|C:\Users\Yuanhui\Desktop\Project1-Raytracer\PROJ1_WIN\| diff --git a/PROJ1_WIN/565Raytracer/Debug/565Raytracer.log b/PROJ1_WIN/565Raytracer/Debug/565Raytracer.log new file mode 100644 index 0000000..c085d7b --- /dev/null +++ b/PROJ1_WIN/565Raytracer/Debug/565Raytracer.log @@ -0,0 +1,48 @@ +Build started 9/30/2012 11:50:37 PM. + 1>Project "C:\Users\Yuanhui\Desktop\Project1-Raytracer\PROJ1_WIN\565Raytracer\565Raytracer.vcxproj" on node 2 (build target(s)). + 1>InitializeBuildStatus: + Creating "Debug\565Raytracer.unsuccessfulbuild" because "AlwaysCreate" was specified. + AddCudaCompileDeps: + Skipping target "AddCudaCompileDeps" because all output files are up-to-date with respect to the input files. + AddCudaCompilePropsDeps: + Skipping target "AddCudaCompilePropsDeps" because all output files are up-to-date with respect to the input files. + CudaBuild: + Skipping target "CudaBuild" because all output files are up-to-date with respect to the input files. + ClCompile: + c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\bin\CL.exe /c /I"C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v4.0\include" /I"C:\ProgramData\NVIDIA Corporation\NVIDIA GPU Computing SDK 4.0\C\common\inc" /I../shared/glew/include /I../shared/freeglut/include /I"C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v4.0\include" /ZI /nologo /W3 /WX- /Od /Oy- /D WIN32 /D _DEBUG /D _CONSOLE /D _UNICODE /D UNICODE /Gm /EHsc /RTC1 /MDd /GS /fp:precise /Zc:wchar_t /Zc:forScope /Fo"Debug\\" /Fd"Debug\vc100.pdb" /Gd /TP /analyze- /errorReport:prompt ..\..\src\main.cpp + main.cpp + Note: including lib: glut32.lib + + 1>c:\users\yuanhui\desktop\project1-raytracer\src\main.cpp(130): warning C4018: '<' : signed/unsigned mismatch + 1>c:\users\yuanhui\desktop\project1-raytracer\src\main.cpp(139): warning C4018: '<' : signed/unsigned mismatch + 1>c:\users\yuanhui\desktop\project1-raytracer\src\main.cpp(142): warning C4018: '<' : signed/unsigned mismatch + 1>c:\users\yuanhui\desktop\project1-raytracer\src\main.cpp(145): warning C4018: '<' : signed/unsigned mismatch + 1>c:\users\yuanhui\desktop\project1-raytracer\src\main.cpp(532): warning C4018: '<' : signed/unsigned mismatch + 1>c:\users\yuanhui\desktop\project1-raytracer\src\main.cpp(540): warning C4018: '<' : signed/unsigned mismatch + All outputs are up-to-date. + ManifestResourceCompile: + All outputs are up-to-date. + Link: + c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\bin\link.exe /ERRORREPORT:PROMPT /OUT:"C:\Users\Yuanhui\Desktop\Project1-Raytracer\PROJ1_WIN\Debug\565Raytracer.exe" /INCREMENTAL /NOLOGO /LIBPATH:../shared/glew/lib /LIBPATH:../shared/freeglut/lib /LIBPATH:"C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v4.0\lib\Win32" cudart.lib glew32.lib glu32.lib opengl32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /MANIFEST /ManifestFile:"Debug\565Raytracer.exe.intermediate.manifest" /MANIFESTUAC:"level='asInvoker' uiAccess='false'" /DEBUG /PDB:"C:\Users\Yuanhui\Desktop\Project1-Raytracer\PROJ1_WIN\Debug\565Raytracer.pdb" /SUBSYSTEM:CONSOLE /TLBID:1 /ENTRY:"mainCRTStartup" /DYNAMICBASE /NXCOMPAT /IMPLIB:"C:\Users\Yuanhui\Desktop\Project1-Raytracer\PROJ1_WIN\Debug\565Raytracer.lib" /MACHINE:X86 "C:\Users\Yuanhui\Desktop\Project1-Raytracer\PROJ1_WIN\565Raytracer\Win32/Debug/raytraceKernel.cu.obj" + Debug\565Raytracer.exe.embed.manifest.res + Debug\glslUtility.obj + Debug\image.obj + Debug\main.obj + Debug\scene.obj + Debug\stb_image.obj + Debug\stb_image_write.obj + Debug\utilities.obj + Manifest: + C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\bin\mt.exe /nologo /verbose /out:"Debug\565Raytracer.exe.embed.manifest" /manifest Debug\565Raytracer.exe.intermediate.manifest + All outputs are up-to-date. + LinkEmbedManifest: + All outputs are up-to-date. + 565Raytracer.vcxproj -> C:\Users\Yuanhui\Desktop\Project1-Raytracer\PROJ1_WIN\Debug\565Raytracer.exe + FinalizeBuildStatus: + Deleting file "Debug\565Raytracer.unsuccessfulbuild". + Touching "Debug\565Raytracer.lastbuildstate". + 1>Done Building Project "C:\Users\Yuanhui\Desktop\Project1-Raytracer\PROJ1_WIN\565Raytracer\565Raytracer.vcxproj" (build target(s)). + +Build succeeded. + +Time Elapsed 00:00:02.16 diff --git a/PROJ1_WIN/565Raytracer/Debug/565Raytracer_manifest.rc b/PROJ1_WIN/565Raytracer/Debug/565Raytracer_manifest.rc new file mode 100644 index 0000000..6745e86 Binary files /dev/null and b/PROJ1_WIN/565Raytracer/Debug/565Raytracer_manifest.rc differ diff --git a/PROJ1_WIN/565Raytracer/Debug/CL.read.1.tlog b/PROJ1_WIN/565Raytracer/Debug/CL.read.1.tlog new file mode 100644 index 0000000..3992852 Binary files /dev/null and b/PROJ1_WIN/565Raytracer/Debug/CL.read.1.tlog differ diff --git a/PROJ1_WIN/565Raytracer/Debug/CL.write.1.tlog b/PROJ1_WIN/565Raytracer/Debug/CL.write.1.tlog new file mode 100644 index 0000000..a064a9b Binary files /dev/null and b/PROJ1_WIN/565Raytracer/Debug/CL.write.1.tlog differ diff --git a/PROJ1_WIN/565Raytracer/Debug/cl.command.1.tlog b/PROJ1_WIN/565Raytracer/Debug/cl.command.1.tlog new file mode 100644 index 0000000..5c75f39 Binary files /dev/null and b/PROJ1_WIN/565Raytracer/Debug/cl.command.1.tlog differ diff --git a/PROJ1_WIN/565Raytracer/Debug/glslUtility.obj b/PROJ1_WIN/565Raytracer/Debug/glslUtility.obj new file mode 100644 index 0000000..43a9a11 Binary files /dev/null and b/PROJ1_WIN/565Raytracer/Debug/glslUtility.obj differ diff --git a/PROJ1_WIN/565Raytracer/Debug/image.obj b/PROJ1_WIN/565Raytracer/Debug/image.obj new file mode 100644 index 0000000..11d6248 Binary files /dev/null and b/PROJ1_WIN/565Raytracer/Debug/image.obj differ diff --git a/PROJ1_WIN/565Raytracer/Debug/link-cvtres.read.1.tlog b/PROJ1_WIN/565Raytracer/Debug/link-cvtres.read.1.tlog new file mode 100644 index 0000000..46b134b --- /dev/null +++ b/PROJ1_WIN/565Raytracer/Debug/link-cvtres.read.1.tlog @@ -0,0 +1 @@ +ÿþ \ No newline at end of file diff --git a/PROJ1_WIN/565Raytracer/Debug/link-cvtres.write.1.tlog b/PROJ1_WIN/565Raytracer/Debug/link-cvtres.write.1.tlog new file mode 100644 index 0000000..46b134b --- /dev/null +++ b/PROJ1_WIN/565Raytracer/Debug/link-cvtres.write.1.tlog @@ -0,0 +1 @@ +ÿþ \ No newline at end of file diff --git a/PROJ1_WIN/565Raytracer/Debug/link.1460-cvtres.read.1.tlog b/PROJ1_WIN/565Raytracer/Debug/link.1460-cvtres.read.1.tlog new file mode 100644 index 0000000..46b134b --- /dev/null +++ b/PROJ1_WIN/565Raytracer/Debug/link.1460-cvtres.read.1.tlog @@ -0,0 +1 @@ +ÿþ \ No newline at end of file diff --git a/PROJ1_WIN/565Raytracer/Debug/link.1460-cvtres.write.1.tlog b/PROJ1_WIN/565Raytracer/Debug/link.1460-cvtres.write.1.tlog new file mode 100644 index 0000000..46b134b --- /dev/null +++ b/PROJ1_WIN/565Raytracer/Debug/link.1460-cvtres.write.1.tlog @@ -0,0 +1 @@ +ÿþ \ No newline at end of file diff --git a/PROJ1_WIN/565Raytracer/Debug/link.1460.read.1.tlog b/PROJ1_WIN/565Raytracer/Debug/link.1460.read.1.tlog new file mode 100644 index 0000000..46b134b --- /dev/null +++ b/PROJ1_WIN/565Raytracer/Debug/link.1460.read.1.tlog @@ -0,0 +1 @@ +ÿþ \ No newline at end of file diff --git a/PROJ1_WIN/565Raytracer/Debug/link.1460.write.1.tlog b/PROJ1_WIN/565Raytracer/Debug/link.1460.write.1.tlog new file mode 100644 index 0000000..46b134b --- /dev/null +++ b/PROJ1_WIN/565Raytracer/Debug/link.1460.write.1.tlog @@ -0,0 +1 @@ +ÿþ \ No newline at end of file diff --git a/PROJ1_WIN/565Raytracer/Debug/link.1572-cvtres.read.1.tlog b/PROJ1_WIN/565Raytracer/Debug/link.1572-cvtres.read.1.tlog new file mode 100644 index 0000000..46b134b --- /dev/null +++ b/PROJ1_WIN/565Raytracer/Debug/link.1572-cvtres.read.1.tlog @@ -0,0 +1 @@ +ÿþ \ No newline at end of file diff --git a/PROJ1_WIN/565Raytracer/Debug/link.1572-cvtres.write.1.tlog b/PROJ1_WIN/565Raytracer/Debug/link.1572-cvtres.write.1.tlog new file mode 100644 index 0000000..46b134b --- /dev/null +++ b/PROJ1_WIN/565Raytracer/Debug/link.1572-cvtres.write.1.tlog @@ -0,0 +1 @@ +ÿþ \ No newline at end of file diff --git a/PROJ1_WIN/565Raytracer/Debug/link.1572.read.1.tlog b/PROJ1_WIN/565Raytracer/Debug/link.1572.read.1.tlog new file mode 100644 index 0000000..46b134b --- /dev/null +++ b/PROJ1_WIN/565Raytracer/Debug/link.1572.read.1.tlog @@ -0,0 +1 @@ +ÿþ \ No newline at end of file diff --git a/PROJ1_WIN/565Raytracer/Debug/link.1572.write.1.tlog b/PROJ1_WIN/565Raytracer/Debug/link.1572.write.1.tlog new file mode 100644 index 0000000..46b134b --- /dev/null +++ b/PROJ1_WIN/565Raytracer/Debug/link.1572.write.1.tlog @@ -0,0 +1 @@ +ÿþ \ No newline at end of file diff --git a/PROJ1_WIN/565Raytracer/Debug/link.2124-cvtres.read.1.tlog b/PROJ1_WIN/565Raytracer/Debug/link.2124-cvtres.read.1.tlog new file mode 100644 index 0000000..46b134b --- /dev/null +++ b/PROJ1_WIN/565Raytracer/Debug/link.2124-cvtres.read.1.tlog @@ -0,0 +1 @@ +ÿþ \ No newline at end of file diff --git a/PROJ1_WIN/565Raytracer/Debug/link.2124-cvtres.write.1.tlog b/PROJ1_WIN/565Raytracer/Debug/link.2124-cvtres.write.1.tlog new file mode 100644 index 0000000..46b134b --- /dev/null +++ b/PROJ1_WIN/565Raytracer/Debug/link.2124-cvtres.write.1.tlog @@ -0,0 +1 @@ +ÿþ \ No newline at end of file diff --git a/PROJ1_WIN/565Raytracer/Debug/link.2124.read.1.tlog b/PROJ1_WIN/565Raytracer/Debug/link.2124.read.1.tlog new file mode 100644 index 0000000..46b134b --- /dev/null +++ b/PROJ1_WIN/565Raytracer/Debug/link.2124.read.1.tlog @@ -0,0 +1 @@ +ÿþ \ No newline at end of file diff --git a/PROJ1_WIN/565Raytracer/Debug/link.2124.write.1.tlog b/PROJ1_WIN/565Raytracer/Debug/link.2124.write.1.tlog new file mode 100644 index 0000000..46b134b --- /dev/null +++ b/PROJ1_WIN/565Raytracer/Debug/link.2124.write.1.tlog @@ -0,0 +1 @@ +ÿþ \ No newline at end of file diff --git a/PROJ1_WIN/565Raytracer/Debug/link.2236-cvtres.read.1.tlog b/PROJ1_WIN/565Raytracer/Debug/link.2236-cvtres.read.1.tlog new file mode 100644 index 0000000..46b134b --- /dev/null +++ b/PROJ1_WIN/565Raytracer/Debug/link.2236-cvtres.read.1.tlog @@ -0,0 +1 @@ +ÿþ \ No newline at end of file diff --git a/PROJ1_WIN/565Raytracer/Debug/link.2236-cvtres.write.1.tlog b/PROJ1_WIN/565Raytracer/Debug/link.2236-cvtres.write.1.tlog new file mode 100644 index 0000000..46b134b --- /dev/null +++ b/PROJ1_WIN/565Raytracer/Debug/link.2236-cvtres.write.1.tlog @@ -0,0 +1 @@ +ÿþ \ No newline at end of file diff --git a/PROJ1_WIN/565Raytracer/Debug/link.2236.read.1.tlog b/PROJ1_WIN/565Raytracer/Debug/link.2236.read.1.tlog new file mode 100644 index 0000000..46b134b --- /dev/null +++ b/PROJ1_WIN/565Raytracer/Debug/link.2236.read.1.tlog @@ -0,0 +1 @@ +ÿþ \ No newline at end of file diff --git a/PROJ1_WIN/565Raytracer/Debug/link.2236.write.1.tlog b/PROJ1_WIN/565Raytracer/Debug/link.2236.write.1.tlog new file mode 100644 index 0000000..46b134b --- /dev/null +++ b/PROJ1_WIN/565Raytracer/Debug/link.2236.write.1.tlog @@ -0,0 +1 @@ +ÿþ \ No newline at end of file diff --git a/PROJ1_WIN/565Raytracer/Debug/link.3144-cvtres.read.1.tlog b/PROJ1_WIN/565Raytracer/Debug/link.3144-cvtres.read.1.tlog new file mode 100644 index 0000000..46b134b --- /dev/null +++ b/PROJ1_WIN/565Raytracer/Debug/link.3144-cvtres.read.1.tlog @@ -0,0 +1 @@ +ÿþ \ No newline at end of file diff --git a/PROJ1_WIN/565Raytracer/Debug/link.3144-cvtres.write.1.tlog b/PROJ1_WIN/565Raytracer/Debug/link.3144-cvtres.write.1.tlog new file mode 100644 index 0000000..46b134b --- /dev/null +++ b/PROJ1_WIN/565Raytracer/Debug/link.3144-cvtres.write.1.tlog @@ -0,0 +1 @@ +ÿþ \ No newline at end of file diff --git a/PROJ1_WIN/565Raytracer/Debug/link.3144.read.1.tlog b/PROJ1_WIN/565Raytracer/Debug/link.3144.read.1.tlog new file mode 100644 index 0000000..46b134b --- /dev/null +++ b/PROJ1_WIN/565Raytracer/Debug/link.3144.read.1.tlog @@ -0,0 +1 @@ +ÿþ \ No newline at end of file diff --git a/PROJ1_WIN/565Raytracer/Debug/link.3144.write.1.tlog b/PROJ1_WIN/565Raytracer/Debug/link.3144.write.1.tlog new file mode 100644 index 0000000..46b134b --- /dev/null +++ b/PROJ1_WIN/565Raytracer/Debug/link.3144.write.1.tlog @@ -0,0 +1 @@ +ÿþ \ No newline at end of file diff --git a/PROJ1_WIN/565Raytracer/Debug/link.3512-cvtres.read.1.tlog b/PROJ1_WIN/565Raytracer/Debug/link.3512-cvtres.read.1.tlog new file mode 100644 index 0000000..46b134b --- /dev/null +++ b/PROJ1_WIN/565Raytracer/Debug/link.3512-cvtres.read.1.tlog @@ -0,0 +1 @@ +ÿþ \ No newline at end of file diff --git a/PROJ1_WIN/565Raytracer/Debug/link.3512-cvtres.write.1.tlog b/PROJ1_WIN/565Raytracer/Debug/link.3512-cvtres.write.1.tlog new file mode 100644 index 0000000..46b134b --- /dev/null +++ b/PROJ1_WIN/565Raytracer/Debug/link.3512-cvtres.write.1.tlog @@ -0,0 +1 @@ +ÿþ \ No newline at end of file diff --git a/PROJ1_WIN/565Raytracer/Debug/link.3512.read.1.tlog b/PROJ1_WIN/565Raytracer/Debug/link.3512.read.1.tlog new file mode 100644 index 0000000..46b134b --- /dev/null +++ b/PROJ1_WIN/565Raytracer/Debug/link.3512.read.1.tlog @@ -0,0 +1 @@ +ÿþ \ No newline at end of file diff --git a/PROJ1_WIN/565Raytracer/Debug/link.3512.write.1.tlog b/PROJ1_WIN/565Raytracer/Debug/link.3512.write.1.tlog new file mode 100644 index 0000000..46b134b --- /dev/null +++ b/PROJ1_WIN/565Raytracer/Debug/link.3512.write.1.tlog @@ -0,0 +1 @@ +ÿþ \ No newline at end of file diff --git a/PROJ1_WIN/565Raytracer/Debug/link.560-cvtres.read.1.tlog b/PROJ1_WIN/565Raytracer/Debug/link.560-cvtres.read.1.tlog new file mode 100644 index 0000000..46b134b --- /dev/null +++ b/PROJ1_WIN/565Raytracer/Debug/link.560-cvtres.read.1.tlog @@ -0,0 +1 @@ +ÿþ \ No newline at end of file diff --git a/PROJ1_WIN/565Raytracer/Debug/link.560-cvtres.write.1.tlog b/PROJ1_WIN/565Raytracer/Debug/link.560-cvtres.write.1.tlog new file mode 100644 index 0000000..46b134b --- /dev/null +++ b/PROJ1_WIN/565Raytracer/Debug/link.560-cvtres.write.1.tlog @@ -0,0 +1 @@ +ÿþ \ No newline at end of file diff --git a/PROJ1_WIN/565Raytracer/Debug/link.560.read.1.tlog b/PROJ1_WIN/565Raytracer/Debug/link.560.read.1.tlog new file mode 100644 index 0000000..46b134b --- /dev/null +++ b/PROJ1_WIN/565Raytracer/Debug/link.560.read.1.tlog @@ -0,0 +1 @@ +ÿþ \ No newline at end of file diff --git a/PROJ1_WIN/565Raytracer/Debug/link.560.write.1.tlog b/PROJ1_WIN/565Raytracer/Debug/link.560.write.1.tlog new file mode 100644 index 0000000..46b134b --- /dev/null +++ b/PROJ1_WIN/565Raytracer/Debug/link.560.write.1.tlog @@ -0,0 +1 @@ +ÿþ \ No newline at end of file diff --git a/PROJ1_WIN/565Raytracer/Debug/link.5636-cvtres.read.1.tlog b/PROJ1_WIN/565Raytracer/Debug/link.5636-cvtres.read.1.tlog new file mode 100644 index 0000000..46b134b --- /dev/null +++ b/PROJ1_WIN/565Raytracer/Debug/link.5636-cvtres.read.1.tlog @@ -0,0 +1 @@ +ÿþ \ No newline at end of file diff --git a/PROJ1_WIN/565Raytracer/Debug/link.5636-cvtres.write.1.tlog b/PROJ1_WIN/565Raytracer/Debug/link.5636-cvtres.write.1.tlog new file mode 100644 index 0000000..46b134b --- /dev/null +++ b/PROJ1_WIN/565Raytracer/Debug/link.5636-cvtres.write.1.tlog @@ -0,0 +1 @@ +ÿþ \ No newline at end of file diff --git a/PROJ1_WIN/565Raytracer/Debug/link.5636.read.1.tlog b/PROJ1_WIN/565Raytracer/Debug/link.5636.read.1.tlog new file mode 100644 index 0000000..46b134b --- /dev/null +++ b/PROJ1_WIN/565Raytracer/Debug/link.5636.read.1.tlog @@ -0,0 +1 @@ +ÿþ \ No newline at end of file diff --git a/PROJ1_WIN/565Raytracer/Debug/link.5636.write.1.tlog b/PROJ1_WIN/565Raytracer/Debug/link.5636.write.1.tlog new file mode 100644 index 0000000..46b134b --- /dev/null +++ b/PROJ1_WIN/565Raytracer/Debug/link.5636.write.1.tlog @@ -0,0 +1 @@ +ÿþ \ No newline at end of file diff --git a/PROJ1_WIN/565Raytracer/Debug/link.5756-cvtres.read.1.tlog b/PROJ1_WIN/565Raytracer/Debug/link.5756-cvtres.read.1.tlog new file mode 100644 index 0000000..46b134b --- /dev/null +++ b/PROJ1_WIN/565Raytracer/Debug/link.5756-cvtres.read.1.tlog @@ -0,0 +1 @@ +ÿþ \ No newline at end of file diff --git a/PROJ1_WIN/565Raytracer/Debug/link.5756-cvtres.write.1.tlog b/PROJ1_WIN/565Raytracer/Debug/link.5756-cvtres.write.1.tlog new file mode 100644 index 0000000..46b134b --- /dev/null +++ b/PROJ1_WIN/565Raytracer/Debug/link.5756-cvtres.write.1.tlog @@ -0,0 +1 @@ +ÿþ \ No newline at end of file diff --git a/PROJ1_WIN/565Raytracer/Debug/link.5756.read.1.tlog b/PROJ1_WIN/565Raytracer/Debug/link.5756.read.1.tlog new file mode 100644 index 0000000..46b134b --- /dev/null +++ b/PROJ1_WIN/565Raytracer/Debug/link.5756.read.1.tlog @@ -0,0 +1 @@ +ÿþ \ No newline at end of file diff --git a/PROJ1_WIN/565Raytracer/Debug/link.5756.write.1.tlog b/PROJ1_WIN/565Raytracer/Debug/link.5756.write.1.tlog new file mode 100644 index 0000000..46b134b --- /dev/null +++ b/PROJ1_WIN/565Raytracer/Debug/link.5756.write.1.tlog @@ -0,0 +1 @@ +ÿþ \ No newline at end of file diff --git a/PROJ1_WIN/565Raytracer/Debug/link.5796-cvtres.read.1.tlog b/PROJ1_WIN/565Raytracer/Debug/link.5796-cvtres.read.1.tlog new file mode 100644 index 0000000..46b134b --- /dev/null +++ b/PROJ1_WIN/565Raytracer/Debug/link.5796-cvtres.read.1.tlog @@ -0,0 +1 @@ +ÿþ \ No newline at end of file diff --git a/PROJ1_WIN/565Raytracer/Debug/link.5796-cvtres.write.1.tlog b/PROJ1_WIN/565Raytracer/Debug/link.5796-cvtres.write.1.tlog new file mode 100644 index 0000000..46b134b --- /dev/null +++ b/PROJ1_WIN/565Raytracer/Debug/link.5796-cvtres.write.1.tlog @@ -0,0 +1 @@ +ÿþ \ No newline at end of file diff --git a/PROJ1_WIN/565Raytracer/Debug/link.5796.read.1.tlog b/PROJ1_WIN/565Raytracer/Debug/link.5796.read.1.tlog new file mode 100644 index 0000000..46b134b --- /dev/null +++ b/PROJ1_WIN/565Raytracer/Debug/link.5796.read.1.tlog @@ -0,0 +1 @@ +ÿþ \ No newline at end of file diff --git a/PROJ1_WIN/565Raytracer/Debug/link.5796.write.1.tlog b/PROJ1_WIN/565Raytracer/Debug/link.5796.write.1.tlog new file mode 100644 index 0000000..46b134b --- /dev/null +++ b/PROJ1_WIN/565Raytracer/Debug/link.5796.write.1.tlog @@ -0,0 +1 @@ +ÿþ \ No newline at end of file diff --git a/PROJ1_WIN/565Raytracer/Debug/link.5852-cvtres.read.1.tlog b/PROJ1_WIN/565Raytracer/Debug/link.5852-cvtres.read.1.tlog new file mode 100644 index 0000000..46b134b --- /dev/null +++ b/PROJ1_WIN/565Raytracer/Debug/link.5852-cvtres.read.1.tlog @@ -0,0 +1 @@ +ÿþ \ No newline at end of file diff --git a/PROJ1_WIN/565Raytracer/Debug/link.5852-cvtres.write.1.tlog b/PROJ1_WIN/565Raytracer/Debug/link.5852-cvtres.write.1.tlog new file mode 100644 index 0000000..46b134b --- /dev/null +++ b/PROJ1_WIN/565Raytracer/Debug/link.5852-cvtres.write.1.tlog @@ -0,0 +1 @@ +ÿþ \ No newline at end of file diff --git a/PROJ1_WIN/565Raytracer/Debug/link.5852.read.1.tlog b/PROJ1_WIN/565Raytracer/Debug/link.5852.read.1.tlog new file mode 100644 index 0000000..46b134b --- /dev/null +++ b/PROJ1_WIN/565Raytracer/Debug/link.5852.read.1.tlog @@ -0,0 +1 @@ +ÿþ \ No newline at end of file diff --git a/PROJ1_WIN/565Raytracer/Debug/link.5852.write.1.tlog b/PROJ1_WIN/565Raytracer/Debug/link.5852.write.1.tlog new file mode 100644 index 0000000..46b134b --- /dev/null +++ b/PROJ1_WIN/565Raytracer/Debug/link.5852.write.1.tlog @@ -0,0 +1 @@ +ÿþ \ No newline at end of file diff --git a/PROJ1_WIN/565Raytracer/Debug/link.6232-cvtres.read.1.tlog b/PROJ1_WIN/565Raytracer/Debug/link.6232-cvtres.read.1.tlog new file mode 100644 index 0000000..46b134b --- /dev/null +++ b/PROJ1_WIN/565Raytracer/Debug/link.6232-cvtres.read.1.tlog @@ -0,0 +1 @@ +ÿþ \ No newline at end of file diff --git a/PROJ1_WIN/565Raytracer/Debug/link.6232-cvtres.write.1.tlog b/PROJ1_WIN/565Raytracer/Debug/link.6232-cvtres.write.1.tlog new file mode 100644 index 0000000..46b134b --- /dev/null +++ b/PROJ1_WIN/565Raytracer/Debug/link.6232-cvtres.write.1.tlog @@ -0,0 +1 @@ +ÿþ \ No newline at end of file diff --git a/PROJ1_WIN/565Raytracer/Debug/link.6232.read.1.tlog b/PROJ1_WIN/565Raytracer/Debug/link.6232.read.1.tlog new file mode 100644 index 0000000..46b134b --- /dev/null +++ b/PROJ1_WIN/565Raytracer/Debug/link.6232.read.1.tlog @@ -0,0 +1 @@ +ÿþ \ No newline at end of file diff --git a/PROJ1_WIN/565Raytracer/Debug/link.6232.write.1.tlog b/PROJ1_WIN/565Raytracer/Debug/link.6232.write.1.tlog new file mode 100644 index 0000000..46b134b --- /dev/null +++ b/PROJ1_WIN/565Raytracer/Debug/link.6232.write.1.tlog @@ -0,0 +1 @@ +ÿþ \ No newline at end of file diff --git a/PROJ1_WIN/565Raytracer/Debug/link.6536-cvtres.read.1.tlog b/PROJ1_WIN/565Raytracer/Debug/link.6536-cvtres.read.1.tlog new file mode 100644 index 0000000..46b134b --- /dev/null +++ b/PROJ1_WIN/565Raytracer/Debug/link.6536-cvtres.read.1.tlog @@ -0,0 +1 @@ +ÿþ \ No newline at end of file diff --git a/PROJ1_WIN/565Raytracer/Debug/link.6536-cvtres.write.1.tlog b/PROJ1_WIN/565Raytracer/Debug/link.6536-cvtres.write.1.tlog new file mode 100644 index 0000000..46b134b --- /dev/null +++ b/PROJ1_WIN/565Raytracer/Debug/link.6536-cvtres.write.1.tlog @@ -0,0 +1 @@ +ÿþ \ No newline at end of file diff --git a/PROJ1_WIN/565Raytracer/Debug/link.6536.read.1.tlog b/PROJ1_WIN/565Raytracer/Debug/link.6536.read.1.tlog new file mode 100644 index 0000000..46b134b --- /dev/null +++ b/PROJ1_WIN/565Raytracer/Debug/link.6536.read.1.tlog @@ -0,0 +1 @@ +ÿþ \ No newline at end of file diff --git a/PROJ1_WIN/565Raytracer/Debug/link.6536.write.1.tlog b/PROJ1_WIN/565Raytracer/Debug/link.6536.write.1.tlog new file mode 100644 index 0000000..46b134b --- /dev/null +++ b/PROJ1_WIN/565Raytracer/Debug/link.6536.write.1.tlog @@ -0,0 +1 @@ +ÿþ \ No newline at end of file diff --git a/PROJ1_WIN/565Raytracer/Debug/link.6668-cvtres.read.1.tlog b/PROJ1_WIN/565Raytracer/Debug/link.6668-cvtres.read.1.tlog new file mode 100644 index 0000000..46b134b --- /dev/null +++ b/PROJ1_WIN/565Raytracer/Debug/link.6668-cvtres.read.1.tlog @@ -0,0 +1 @@ +ÿþ \ No newline at end of file diff --git a/PROJ1_WIN/565Raytracer/Debug/link.6668-cvtres.write.1.tlog b/PROJ1_WIN/565Raytracer/Debug/link.6668-cvtres.write.1.tlog new file mode 100644 index 0000000..46b134b --- /dev/null +++ b/PROJ1_WIN/565Raytracer/Debug/link.6668-cvtres.write.1.tlog @@ -0,0 +1 @@ +ÿþ \ No newline at end of file diff --git a/PROJ1_WIN/565Raytracer/Debug/link.6668.read.1.tlog b/PROJ1_WIN/565Raytracer/Debug/link.6668.read.1.tlog new file mode 100644 index 0000000..46b134b --- /dev/null +++ b/PROJ1_WIN/565Raytracer/Debug/link.6668.read.1.tlog @@ -0,0 +1 @@ +ÿþ \ No newline at end of file diff --git a/PROJ1_WIN/565Raytracer/Debug/link.6668.write.1.tlog b/PROJ1_WIN/565Raytracer/Debug/link.6668.write.1.tlog new file mode 100644 index 0000000..46b134b --- /dev/null +++ b/PROJ1_WIN/565Raytracer/Debug/link.6668.write.1.tlog @@ -0,0 +1 @@ +ÿþ \ No newline at end of file diff --git a/PROJ1_WIN/565Raytracer/Debug/link.6880-cvtres.read.1.tlog b/PROJ1_WIN/565Raytracer/Debug/link.6880-cvtres.read.1.tlog new file mode 100644 index 0000000..46b134b --- /dev/null +++ b/PROJ1_WIN/565Raytracer/Debug/link.6880-cvtres.read.1.tlog @@ -0,0 +1 @@ +ÿþ \ No newline at end of file diff --git a/PROJ1_WIN/565Raytracer/Debug/link.6880-cvtres.write.1.tlog b/PROJ1_WIN/565Raytracer/Debug/link.6880-cvtres.write.1.tlog new file mode 100644 index 0000000..46b134b --- /dev/null +++ b/PROJ1_WIN/565Raytracer/Debug/link.6880-cvtres.write.1.tlog @@ -0,0 +1 @@ +ÿþ \ No newline at end of file diff --git a/PROJ1_WIN/565Raytracer/Debug/link.6880.read.1.tlog b/PROJ1_WIN/565Raytracer/Debug/link.6880.read.1.tlog new file mode 100644 index 0000000..46b134b --- /dev/null +++ b/PROJ1_WIN/565Raytracer/Debug/link.6880.read.1.tlog @@ -0,0 +1 @@ +ÿþ \ No newline at end of file diff --git a/PROJ1_WIN/565Raytracer/Debug/link.6880.write.1.tlog b/PROJ1_WIN/565Raytracer/Debug/link.6880.write.1.tlog new file mode 100644 index 0000000..46b134b --- /dev/null +++ b/PROJ1_WIN/565Raytracer/Debug/link.6880.write.1.tlog @@ -0,0 +1 @@ +ÿþ \ No newline at end of file diff --git a/PROJ1_WIN/565Raytracer/Debug/link.7076-cvtres.read.1.tlog b/PROJ1_WIN/565Raytracer/Debug/link.7076-cvtres.read.1.tlog new file mode 100644 index 0000000..46b134b --- /dev/null +++ b/PROJ1_WIN/565Raytracer/Debug/link.7076-cvtres.read.1.tlog @@ -0,0 +1 @@ +ÿþ \ No newline at end of file diff --git a/PROJ1_WIN/565Raytracer/Debug/link.7076-cvtres.write.1.tlog b/PROJ1_WIN/565Raytracer/Debug/link.7076-cvtres.write.1.tlog new file mode 100644 index 0000000..46b134b --- /dev/null +++ b/PROJ1_WIN/565Raytracer/Debug/link.7076-cvtres.write.1.tlog @@ -0,0 +1 @@ +ÿþ \ No newline at end of file diff --git a/PROJ1_WIN/565Raytracer/Debug/link.7076.read.1.tlog b/PROJ1_WIN/565Raytracer/Debug/link.7076.read.1.tlog new file mode 100644 index 0000000..46b134b --- /dev/null +++ b/PROJ1_WIN/565Raytracer/Debug/link.7076.read.1.tlog @@ -0,0 +1 @@ +ÿþ \ No newline at end of file diff --git a/PROJ1_WIN/565Raytracer/Debug/link.7076.write.1.tlog b/PROJ1_WIN/565Raytracer/Debug/link.7076.write.1.tlog new file mode 100644 index 0000000..46b134b --- /dev/null +++ b/PROJ1_WIN/565Raytracer/Debug/link.7076.write.1.tlog @@ -0,0 +1 @@ +ÿþ \ No newline at end of file diff --git a/PROJ1_WIN/565Raytracer/Debug/link.7112-cvtres.read.1.tlog b/PROJ1_WIN/565Raytracer/Debug/link.7112-cvtres.read.1.tlog new file mode 100644 index 0000000..46b134b --- /dev/null +++ b/PROJ1_WIN/565Raytracer/Debug/link.7112-cvtres.read.1.tlog @@ -0,0 +1 @@ +ÿþ \ No newline at end of file diff --git a/PROJ1_WIN/565Raytracer/Debug/link.7112-cvtres.write.1.tlog b/PROJ1_WIN/565Raytracer/Debug/link.7112-cvtres.write.1.tlog new file mode 100644 index 0000000..46b134b --- /dev/null +++ b/PROJ1_WIN/565Raytracer/Debug/link.7112-cvtres.write.1.tlog @@ -0,0 +1 @@ +ÿþ \ No newline at end of file diff --git a/PROJ1_WIN/565Raytracer/Debug/link.7112.read.1.tlog b/PROJ1_WIN/565Raytracer/Debug/link.7112.read.1.tlog new file mode 100644 index 0000000..46b134b --- /dev/null +++ b/PROJ1_WIN/565Raytracer/Debug/link.7112.read.1.tlog @@ -0,0 +1 @@ +ÿþ \ No newline at end of file diff --git a/PROJ1_WIN/565Raytracer/Debug/link.7112.write.1.tlog b/PROJ1_WIN/565Raytracer/Debug/link.7112.write.1.tlog new file mode 100644 index 0000000..46b134b --- /dev/null +++ b/PROJ1_WIN/565Raytracer/Debug/link.7112.write.1.tlog @@ -0,0 +1 @@ +ÿþ \ No newline at end of file diff --git a/PROJ1_WIN/565Raytracer/Debug/link.7116-cvtres.read.1.tlog b/PROJ1_WIN/565Raytracer/Debug/link.7116-cvtres.read.1.tlog new file mode 100644 index 0000000..46b134b --- /dev/null +++ b/PROJ1_WIN/565Raytracer/Debug/link.7116-cvtres.read.1.tlog @@ -0,0 +1 @@ +ÿþ \ No newline at end of file diff --git a/PROJ1_WIN/565Raytracer/Debug/link.7116-cvtres.write.1.tlog b/PROJ1_WIN/565Raytracer/Debug/link.7116-cvtres.write.1.tlog new file mode 100644 index 0000000..46b134b --- /dev/null +++ b/PROJ1_WIN/565Raytracer/Debug/link.7116-cvtres.write.1.tlog @@ -0,0 +1 @@ +ÿþ \ No newline at end of file diff --git a/PROJ1_WIN/565Raytracer/Debug/link.7116.read.1.tlog b/PROJ1_WIN/565Raytracer/Debug/link.7116.read.1.tlog new file mode 100644 index 0000000..46b134b --- /dev/null +++ b/PROJ1_WIN/565Raytracer/Debug/link.7116.read.1.tlog @@ -0,0 +1 @@ +ÿþ \ No newline at end of file diff --git a/PROJ1_WIN/565Raytracer/Debug/link.7116.write.1.tlog b/PROJ1_WIN/565Raytracer/Debug/link.7116.write.1.tlog new file mode 100644 index 0000000..46b134b --- /dev/null +++ b/PROJ1_WIN/565Raytracer/Debug/link.7116.write.1.tlog @@ -0,0 +1 @@ +ÿþ \ No newline at end of file diff --git a/PROJ1_WIN/565Raytracer/Debug/link.7264-cvtres.read.1.tlog b/PROJ1_WIN/565Raytracer/Debug/link.7264-cvtres.read.1.tlog new file mode 100644 index 0000000..46b134b --- /dev/null +++ b/PROJ1_WIN/565Raytracer/Debug/link.7264-cvtres.read.1.tlog @@ -0,0 +1 @@ +ÿþ \ No newline at end of file diff --git a/PROJ1_WIN/565Raytracer/Debug/link.7264-cvtres.write.1.tlog b/PROJ1_WIN/565Raytracer/Debug/link.7264-cvtres.write.1.tlog new file mode 100644 index 0000000..46b134b --- /dev/null +++ b/PROJ1_WIN/565Raytracer/Debug/link.7264-cvtres.write.1.tlog @@ -0,0 +1 @@ +ÿþ \ No newline at end of file diff --git a/PROJ1_WIN/565Raytracer/Debug/link.7264.read.1.tlog b/PROJ1_WIN/565Raytracer/Debug/link.7264.read.1.tlog new file mode 100644 index 0000000..46b134b --- /dev/null +++ b/PROJ1_WIN/565Raytracer/Debug/link.7264.read.1.tlog @@ -0,0 +1 @@ +ÿþ \ No newline at end of file diff --git a/PROJ1_WIN/565Raytracer/Debug/link.7264.write.1.tlog b/PROJ1_WIN/565Raytracer/Debug/link.7264.write.1.tlog new file mode 100644 index 0000000..46b134b --- /dev/null +++ b/PROJ1_WIN/565Raytracer/Debug/link.7264.write.1.tlog @@ -0,0 +1 @@ +ÿþ \ No newline at end of file diff --git a/PROJ1_WIN/565Raytracer/Debug/link.7432-cvtres.read.1.tlog b/PROJ1_WIN/565Raytracer/Debug/link.7432-cvtres.read.1.tlog new file mode 100644 index 0000000..46b134b --- /dev/null +++ b/PROJ1_WIN/565Raytracer/Debug/link.7432-cvtres.read.1.tlog @@ -0,0 +1 @@ +ÿþ \ No newline at end of file diff --git a/PROJ1_WIN/565Raytracer/Debug/link.7432-cvtres.write.1.tlog b/PROJ1_WIN/565Raytracer/Debug/link.7432-cvtres.write.1.tlog new file mode 100644 index 0000000..46b134b --- /dev/null +++ b/PROJ1_WIN/565Raytracer/Debug/link.7432-cvtres.write.1.tlog @@ -0,0 +1 @@ +ÿþ \ No newline at end of file diff --git a/PROJ1_WIN/565Raytracer/Debug/link.7432.read.1.tlog b/PROJ1_WIN/565Raytracer/Debug/link.7432.read.1.tlog new file mode 100644 index 0000000..46b134b --- /dev/null +++ b/PROJ1_WIN/565Raytracer/Debug/link.7432.read.1.tlog @@ -0,0 +1 @@ +ÿþ \ No newline at end of file diff --git a/PROJ1_WIN/565Raytracer/Debug/link.7432.write.1.tlog b/PROJ1_WIN/565Raytracer/Debug/link.7432.write.1.tlog new file mode 100644 index 0000000..46b134b --- /dev/null +++ b/PROJ1_WIN/565Raytracer/Debug/link.7432.write.1.tlog @@ -0,0 +1 @@ +ÿþ \ No newline at end of file diff --git a/PROJ1_WIN/565Raytracer/Debug/link.7656-cvtres.read.1.tlog b/PROJ1_WIN/565Raytracer/Debug/link.7656-cvtres.read.1.tlog new file mode 100644 index 0000000..46b134b --- /dev/null +++ b/PROJ1_WIN/565Raytracer/Debug/link.7656-cvtres.read.1.tlog @@ -0,0 +1 @@ +ÿþ \ No newline at end of file diff --git a/PROJ1_WIN/565Raytracer/Debug/link.7656-cvtres.write.1.tlog b/PROJ1_WIN/565Raytracer/Debug/link.7656-cvtres.write.1.tlog new file mode 100644 index 0000000..46b134b --- /dev/null +++ b/PROJ1_WIN/565Raytracer/Debug/link.7656-cvtres.write.1.tlog @@ -0,0 +1 @@ +ÿþ \ No newline at end of file diff --git a/PROJ1_WIN/565Raytracer/Debug/link.7656.read.1.tlog b/PROJ1_WIN/565Raytracer/Debug/link.7656.read.1.tlog new file mode 100644 index 0000000..46b134b --- /dev/null +++ b/PROJ1_WIN/565Raytracer/Debug/link.7656.read.1.tlog @@ -0,0 +1 @@ +ÿþ \ No newline at end of file diff --git a/PROJ1_WIN/565Raytracer/Debug/link.7656.write.1.tlog b/PROJ1_WIN/565Raytracer/Debug/link.7656.write.1.tlog new file mode 100644 index 0000000..46b134b --- /dev/null +++ b/PROJ1_WIN/565Raytracer/Debug/link.7656.write.1.tlog @@ -0,0 +1 @@ +ÿþ \ No newline at end of file diff --git a/PROJ1_WIN/565Raytracer/Debug/link.7748-cvtres.read.1.tlog b/PROJ1_WIN/565Raytracer/Debug/link.7748-cvtres.read.1.tlog new file mode 100644 index 0000000..46b134b --- /dev/null +++ b/PROJ1_WIN/565Raytracer/Debug/link.7748-cvtres.read.1.tlog @@ -0,0 +1 @@ +ÿþ \ No newline at end of file diff --git a/PROJ1_WIN/565Raytracer/Debug/link.7748-cvtres.write.1.tlog b/PROJ1_WIN/565Raytracer/Debug/link.7748-cvtres.write.1.tlog new file mode 100644 index 0000000..46b134b --- /dev/null +++ b/PROJ1_WIN/565Raytracer/Debug/link.7748-cvtres.write.1.tlog @@ -0,0 +1 @@ +ÿþ \ No newline at end of file diff --git a/PROJ1_WIN/565Raytracer/Debug/link.7748.read.1.tlog b/PROJ1_WIN/565Raytracer/Debug/link.7748.read.1.tlog new file mode 100644 index 0000000..46b134b --- /dev/null +++ b/PROJ1_WIN/565Raytracer/Debug/link.7748.read.1.tlog @@ -0,0 +1 @@ +ÿþ \ No newline at end of file diff --git a/PROJ1_WIN/565Raytracer/Debug/link.7748.write.1.tlog b/PROJ1_WIN/565Raytracer/Debug/link.7748.write.1.tlog new file mode 100644 index 0000000..46b134b --- /dev/null +++ b/PROJ1_WIN/565Raytracer/Debug/link.7748.write.1.tlog @@ -0,0 +1 @@ +ÿþ \ No newline at end of file diff --git a/PROJ1_WIN/565Raytracer/Debug/link.7860-cvtres.read.1.tlog b/PROJ1_WIN/565Raytracer/Debug/link.7860-cvtres.read.1.tlog new file mode 100644 index 0000000..46b134b --- /dev/null +++ b/PROJ1_WIN/565Raytracer/Debug/link.7860-cvtres.read.1.tlog @@ -0,0 +1 @@ +ÿþ \ No newline at end of file diff --git a/PROJ1_WIN/565Raytracer/Debug/link.7860-cvtres.write.1.tlog b/PROJ1_WIN/565Raytracer/Debug/link.7860-cvtres.write.1.tlog new file mode 100644 index 0000000..46b134b --- /dev/null +++ b/PROJ1_WIN/565Raytracer/Debug/link.7860-cvtres.write.1.tlog @@ -0,0 +1 @@ +ÿþ \ No newline at end of file diff --git a/PROJ1_WIN/565Raytracer/Debug/link.7860.read.1.tlog b/PROJ1_WIN/565Raytracer/Debug/link.7860.read.1.tlog new file mode 100644 index 0000000..46b134b --- /dev/null +++ b/PROJ1_WIN/565Raytracer/Debug/link.7860.read.1.tlog @@ -0,0 +1 @@ +ÿþ \ No newline at end of file diff --git a/PROJ1_WIN/565Raytracer/Debug/link.7860.write.1.tlog b/PROJ1_WIN/565Raytracer/Debug/link.7860.write.1.tlog new file mode 100644 index 0000000..46b134b --- /dev/null +++ b/PROJ1_WIN/565Raytracer/Debug/link.7860.write.1.tlog @@ -0,0 +1 @@ +ÿþ \ No newline at end of file diff --git a/PROJ1_WIN/565Raytracer/Debug/link.796-cvtres.read.1.tlog b/PROJ1_WIN/565Raytracer/Debug/link.796-cvtres.read.1.tlog new file mode 100644 index 0000000..46b134b --- /dev/null +++ b/PROJ1_WIN/565Raytracer/Debug/link.796-cvtres.read.1.tlog @@ -0,0 +1 @@ +ÿþ \ No newline at end of file diff --git a/PROJ1_WIN/565Raytracer/Debug/link.796-cvtres.write.1.tlog b/PROJ1_WIN/565Raytracer/Debug/link.796-cvtres.write.1.tlog new file mode 100644 index 0000000..46b134b --- /dev/null +++ b/PROJ1_WIN/565Raytracer/Debug/link.796-cvtres.write.1.tlog @@ -0,0 +1 @@ +ÿþ \ No newline at end of file diff --git a/PROJ1_WIN/565Raytracer/Debug/link.796.read.1.tlog b/PROJ1_WIN/565Raytracer/Debug/link.796.read.1.tlog new file mode 100644 index 0000000..46b134b --- /dev/null +++ b/PROJ1_WIN/565Raytracer/Debug/link.796.read.1.tlog @@ -0,0 +1 @@ +ÿþ \ No newline at end of file diff --git a/PROJ1_WIN/565Raytracer/Debug/link.796.write.1.tlog b/PROJ1_WIN/565Raytracer/Debug/link.796.write.1.tlog new file mode 100644 index 0000000..46b134b --- /dev/null +++ b/PROJ1_WIN/565Raytracer/Debug/link.796.write.1.tlog @@ -0,0 +1 @@ +ÿþ \ No newline at end of file diff --git a/PROJ1_WIN/565Raytracer/Debug/link.864-cvtres.read.1.tlog b/PROJ1_WIN/565Raytracer/Debug/link.864-cvtres.read.1.tlog new file mode 100644 index 0000000..46b134b --- /dev/null +++ b/PROJ1_WIN/565Raytracer/Debug/link.864-cvtres.read.1.tlog @@ -0,0 +1 @@ +ÿþ \ No newline at end of file diff --git a/PROJ1_WIN/565Raytracer/Debug/link.864-cvtres.write.1.tlog b/PROJ1_WIN/565Raytracer/Debug/link.864-cvtres.write.1.tlog new file mode 100644 index 0000000..46b134b --- /dev/null +++ b/PROJ1_WIN/565Raytracer/Debug/link.864-cvtres.write.1.tlog @@ -0,0 +1 @@ +ÿþ \ No newline at end of file diff --git a/PROJ1_WIN/565Raytracer/Debug/link.864.read.1.tlog b/PROJ1_WIN/565Raytracer/Debug/link.864.read.1.tlog new file mode 100644 index 0000000..46b134b --- /dev/null +++ b/PROJ1_WIN/565Raytracer/Debug/link.864.read.1.tlog @@ -0,0 +1 @@ +ÿþ \ No newline at end of file diff --git a/PROJ1_WIN/565Raytracer/Debug/link.864.write.1.tlog b/PROJ1_WIN/565Raytracer/Debug/link.864.write.1.tlog new file mode 100644 index 0000000..46b134b --- /dev/null +++ b/PROJ1_WIN/565Raytracer/Debug/link.864.write.1.tlog @@ -0,0 +1 @@ +ÿþ \ No newline at end of file diff --git a/PROJ1_WIN/565Raytracer/Debug/link.command.1.tlog b/PROJ1_WIN/565Raytracer/Debug/link.command.1.tlog new file mode 100644 index 0000000..b714649 Binary files /dev/null and b/PROJ1_WIN/565Raytracer/Debug/link.command.1.tlog differ diff --git a/PROJ1_WIN/565Raytracer/Debug/link.read.1.tlog b/PROJ1_WIN/565Raytracer/Debug/link.read.1.tlog new file mode 100644 index 0000000..940daa9 Binary files /dev/null and b/PROJ1_WIN/565Raytracer/Debug/link.read.1.tlog differ diff --git a/PROJ1_WIN/565Raytracer/Debug/link.write.1.tlog b/PROJ1_WIN/565Raytracer/Debug/link.write.1.tlog new file mode 100644 index 0000000..a1adc9b Binary files /dev/null and b/PROJ1_WIN/565Raytracer/Debug/link.write.1.tlog differ diff --git a/PROJ1_WIN/565Raytracer/Debug/main.obj b/PROJ1_WIN/565Raytracer/Debug/main.obj new file mode 100644 index 0000000..66def8b Binary files /dev/null and b/PROJ1_WIN/565Raytracer/Debug/main.obj differ diff --git a/PROJ1_WIN/565Raytracer/Debug/mt.command.1.tlog b/PROJ1_WIN/565Raytracer/Debug/mt.command.1.tlog new file mode 100644 index 0000000..056a37e Binary files /dev/null and b/PROJ1_WIN/565Raytracer/Debug/mt.command.1.tlog differ diff --git a/PROJ1_WIN/565Raytracer/Debug/mt.read.1.tlog b/PROJ1_WIN/565Raytracer/Debug/mt.read.1.tlog new file mode 100644 index 0000000..73dbf98 Binary files /dev/null and b/PROJ1_WIN/565Raytracer/Debug/mt.read.1.tlog differ diff --git a/PROJ1_WIN/565Raytracer/Debug/mt.write.1.tlog b/PROJ1_WIN/565Raytracer/Debug/mt.write.1.tlog new file mode 100644 index 0000000..6dd81ed Binary files /dev/null and b/PROJ1_WIN/565Raytracer/Debug/mt.write.1.tlog differ diff --git a/PROJ1_WIN/565Raytracer/Debug/raytraceKernel.cu.cache b/PROJ1_WIN/565Raytracer/Debug/raytraceKernel.cu.cache new file mode 100644 index 0000000..955b203 --- /dev/null +++ b/PROJ1_WIN/565Raytracer/Debug/raytraceKernel.cu.cache @@ -0,0 +1,26 @@ +Identity=..\..\src\raytraceKernel.cu +AdditionalDeps= +AdditionalOptions= +CInterleavedPTX=false +CodeGeneration=compute_10,sm_10 +CompileOut=C:\Users\Yuanhui\Desktop\Project1-Raytracer\PROJ1_WIN\565Raytracer\Win32/Debug/raytraceKernel.cu.obj +CudaToolkitCustomDir= +Defines= +Emulation=false +FastMath=false +GPUDebugInfo=true +HostDebugInfo=true +Include=C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v4.0\include;C:/ProgramData/NVIDIA Corporation/NVIDIA GPU Computing SDK 4.0/C/common/inc;../shared/glew/includes;../shared/freeglut/includes +Keep=false +KeepDir=Debug +MaxRegCount=0 +NvccCompilation=compile +NvccPath= +Optimization=Od +PtxAsOptionV=false +RequiredIncludes= +Runtime=MDd +RuntimeChecks=Default +TargetMachinePlatform=32 +TypeInfo=false +Warning=W3 diff --git a/PROJ1_WIN/565Raytracer/Debug/raytraceKernel.cu.deps b/PROJ1_WIN/565Raytracer/Debug/raytraceKernel.cu.deps new file mode 100644 index 0000000..919df3e --- /dev/null +++ b/PROJ1_WIN/565Raytracer/Debug/raytraceKernel.cu.deps @@ -0,0 +1,424 @@ +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v4.0\include\cuda_runtime.h +c:\program files\nvidia gpu computing toolkit\cuda\v4.0\include\host_config.h +c:\program files\nvidia gpu computing toolkit\cuda\v4.0\include\builtin_types.h +c:\program files\nvidia gpu computing toolkit\cuda\v4.0\include\device_types.h +c:\program files\nvidia gpu computing toolkit\cuda\v4.0\include\driver_types.h +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\limits.h +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\crtdefs.h +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\sal.h +c:\program files (x86)\microsoft visual studio 10.0\vc\include\codeanalysis\sourceannotations.h +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\vadefs.h +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\stddef.h +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\crtdefs.h +c:\program files\nvidia gpu computing toolkit\cuda\v4.0\include\surface_types.h +c:\program files\nvidia gpu computing toolkit\cuda\v4.0\include\driver_types.h +c:\program files\nvidia gpu computing toolkit\cuda\v4.0\include\texture_types.h +c:\program files\nvidia gpu computing toolkit\cuda\v4.0\include\driver_types.h +c:\program files\nvidia gpu computing toolkit\cuda\v4.0\include\vector_types.h +c:\program files\nvidia gpu computing toolkit\cuda\v4.0\include\builtin_types.h +c:\program files\nvidia gpu computing toolkit\cuda\v4.0\include\device_types.h +c:\program files\nvidia gpu computing toolkit\cuda\v4.0\include\driver_types.h +c:\program files\nvidia gpu computing toolkit\cuda\v4.0\include\surface_types.h +c:\program files\nvidia gpu computing toolkit\cuda\v4.0\include\texture_types.h +c:\program files\nvidia gpu computing toolkit\cuda\v4.0\include\vector_types.h +c:\program files\nvidia gpu computing toolkit\cuda\v4.0\include\host_defines.h +c:\program files\nvidia gpu computing toolkit\cuda\v4.0\include\channel_descriptor.h +c:\program files\nvidia gpu computing toolkit\cuda\v4.0\include\driver_types.h +c:\program files\nvidia gpu computing toolkit\cuda\v4.0\include\cuda_runtime_api.h +c:\program files\nvidia gpu computing toolkit\cuda\v4.0\include\host_defines.h +c:\program files\nvidia gpu computing toolkit\cuda\v4.0\include\builtin_types.h +c:\program files\nvidia gpu computing toolkit\cuda\v4.0\include\device_types.h +c:\program files\nvidia gpu computing toolkit\cuda\v4.0\include\driver_types.h +c:\program files\nvidia gpu computing toolkit\cuda\v4.0\include\surface_types.h +c:\program files\nvidia gpu computing toolkit\cuda\v4.0\include\texture_types.h +c:\program files\nvidia gpu computing toolkit\cuda\v4.0\include\vector_types.h +c:\program files\nvidia gpu computing toolkit\cuda\v4.0\include\host_defines.h +c:\program files\nvidia gpu computing toolkit\cuda\v4.0\include\vector_types.h +c:\program files\nvidia gpu computing toolkit\cuda\v4.0\include\cuda_runtime_api.h +c:\program files\nvidia gpu computing toolkit\cuda\v4.0\include\driver_functions.h +c:\program files\nvidia gpu computing toolkit\cuda\v4.0\include\builtin_types.h +c:\program files\nvidia gpu computing toolkit\cuda\v4.0\include\device_types.h +c:\program files\nvidia gpu computing toolkit\cuda\v4.0\include\driver_types.h +c:\program files\nvidia gpu computing toolkit\cuda\v4.0\include\surface_types.h +c:\program files\nvidia gpu computing toolkit\cuda\v4.0\include\texture_types.h +c:\program files\nvidia gpu computing toolkit\cuda\v4.0\include\vector_types.h +c:\program files\nvidia gpu computing toolkit\cuda\v4.0\include\host_defines.h +c:\program files\nvidia gpu computing toolkit\cuda\v4.0\include\driver_types.h +c:\program files\nvidia gpu computing toolkit\cuda\v4.0\include\host_defines.h +c:\program files\nvidia gpu computing toolkit\cuda\v4.0\include\vector_functions.h +c:\program files\nvidia gpu computing toolkit\cuda\v4.0\include\builtin_types.h +c:\program files\nvidia gpu computing toolkit\cuda\v4.0\include\device_types.h +c:\program files\nvidia gpu computing toolkit\cuda\v4.0\include\driver_types.h +c:\program files\nvidia gpu computing toolkit\cuda\v4.0\include\surface_types.h +c:\program files\nvidia gpu computing toolkit\cuda\v4.0\include\texture_types.h +c:\program files\nvidia gpu computing toolkit\cuda\v4.0\include\vector_types.h +c:\program files\nvidia gpu computing toolkit\cuda\v4.0\include\host_defines.h +c:\program files\nvidia gpu computing toolkit\cuda\v4.0\include\vector_types.h +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\stdio.h +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\crtdefs.h +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\swprintf.inl +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v4.0\include\cuda.h +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\stdlib.h +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\crtdefs.h +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\cmath +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\yvals.h +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\crtdefs.h +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\use_ansi.h +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\math.h +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\crtdefs.h +c:\users\yuanhui\desktop\project1-raytracer\src\sceneStructs.h +c:\users\yuanhui\desktop\project1-raytracer\src\glm/glm.hpp +c:\users\yuanhui\desktop\project1-raytracer\src\glm\core/_fixes.hpp +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\climits +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\cfloat +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\float.h +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\crtdefs.h +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\crtwrn.h +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\crtdefs.h +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\limits +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\ymath.h +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\cwchar +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\wchar.h +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\crtdefs.h +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\wtime.inl +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xstddef +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\cstddef +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\cstdio +c:\users\yuanhui\desktop\project1-raytracer\src\glm\core/setup.hpp +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\pmmintrin.h +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\emmintrin.h +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xmmintrin.h +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\mmintrin.h +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\crtdefs.h +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\malloc.h +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\crtdefs.h +c:\users\yuanhui\desktop\project1-raytracer\src\glm\./core/_detail.hpp +c:\users\yuanhui\desktop\project1-raytracer\src\glm\core\setup.hpp +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\cassert +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\assert.h +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\crtdefs.h +c:\users\yuanhui\desktop\project1-raytracer\src\glm\./core/type.hpp +c:\users\yuanhui\desktop\project1-raytracer\src\glm\core\type_half.hpp +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\cstdlib +c:\users\yuanhui\desktop\project1-raytracer\src\glm\core\type_half.inl +c:\users\yuanhui\desktop\project1-raytracer\src\glm\core\_detail.hpp +c:\users\yuanhui\desktop\project1-raytracer\src\glm\core\type_float.hpp +c:\users\yuanhui\desktop\project1-raytracer\src\glm\core\type_half.hpp +c:\users\yuanhui\desktop\project1-raytracer\src\glm\core\setup.hpp +c:\users\yuanhui\desktop\project1-raytracer\src\glm\core\type_int.hpp +c:\users\yuanhui\desktop\project1-raytracer\src\glm\core\setup.hpp +c:\users\yuanhui\desktop\project1-raytracer\src\glm\core\_detail.hpp +c:\users\yuanhui\desktop\project1-raytracer\src\glm\core\type_gentype.hpp +c:\users\yuanhui\desktop\project1-raytracer\src\glm\core\type_size.hpp +c:\users\yuanhui\desktop\project1-raytracer\src\glm\core\type_vec1.hpp +c:\users\yuanhui\desktop\project1-raytracer\src\glm\core\type_vec.hpp +c:\users\yuanhui\desktop\project1-raytracer\src\glm\core\type_gentype.hpp +c:\users\yuanhui\desktop\project1-raytracer\src\glm\core\type_float.hpp +c:\users\yuanhui\desktop\project1-raytracer\src\glm\core\type_int.hpp +c:\users\yuanhui\desktop\project1-raytracer\src\glm\core\type_size.hpp +c:\users\yuanhui\desktop\project1-raytracer\src\glm\core\_swizzle.hpp +c:\users\yuanhui\desktop\project1-raytracer\src\glm\core\_swizzle_func.hpp +c:\users\yuanhui\desktop\project1-raytracer\src\glm\core\type_vec1.inl +c:\users\yuanhui\desktop\project1-raytracer\src\glm\core\type_vec2.hpp +c:\users\yuanhui\desktop\project1-raytracer\src\glm\core\type_vec.hpp +c:\users\yuanhui\desktop\project1-raytracer\src\glm\core\type_float.hpp +c:\users\yuanhui\desktop\project1-raytracer\src\glm\core\type_int.hpp +c:\users\yuanhui\desktop\project1-raytracer\src\glm\core\type_size.hpp +c:\users\yuanhui\desktop\project1-raytracer\src\glm\core\_swizzle.hpp +c:\users\yuanhui\desktop\project1-raytracer\src\glm\core\type_vec2.inl +c:\users\yuanhui\desktop\project1-raytracer\src\glm\core\type_vec3.hpp +c:\users\yuanhui\desktop\project1-raytracer\src\glm\core\type_vec.hpp +c:\users\yuanhui\desktop\project1-raytracer\src\glm\core\type_float.hpp +c:\users\yuanhui\desktop\project1-raytracer\src\glm\core\type_int.hpp +c:\users\yuanhui\desktop\project1-raytracer\src\glm\core\type_size.hpp +c:\users\yuanhui\desktop\project1-raytracer\src\glm\core\_swizzle.hpp +c:\users\yuanhui\desktop\project1-raytracer\src\glm\core\type_vec3.inl +c:\users\yuanhui\desktop\project1-raytracer\src\glm\core\type_vec4.hpp +c:\users\yuanhui\desktop\project1-raytracer\src\glm\core\type_vec.hpp +c:\users\yuanhui\desktop\project1-raytracer\src\glm\core\type_float.hpp +c:\users\yuanhui\desktop\project1-raytracer\src\glm\core\type_int.hpp +c:\users\yuanhui\desktop\project1-raytracer\src\glm\core\type_size.hpp +c:\users\yuanhui\desktop\project1-raytracer\src\glm\core\_swizzle.hpp +c:\users\yuanhui\desktop\project1-raytracer\src\glm\core\type_vec4.inl +c:\users\yuanhui\desktop\project1-raytracer\src\glm\core\type_mat2x2.hpp +c:\users\yuanhui\desktop\project1-raytracer\src\glm\core\type_mat.hpp +c:\users\yuanhui\desktop\project1-raytracer\src\glm\core\type_gentype.hpp +c:\users\yuanhui\desktop\project1-raytracer\src\glm\core\type_mat2x2.inl +c:\users\yuanhui\desktop\project1-raytracer\src\glm\core\type_mat2x3.hpp +c:\users\yuanhui\desktop\project1-raytracer\src\glm\core\type_mat.hpp +c:\users\yuanhui\desktop\project1-raytracer\src\glm\core\type_mat2x3.inl +c:\users\yuanhui\desktop\project1-raytracer\src\glm\core\type_mat2x4.hpp +c:\users\yuanhui\desktop\project1-raytracer\src\glm\core\type_mat.hpp +c:\users\yuanhui\desktop\project1-raytracer\src\glm\core\type_mat2x4.inl +c:\users\yuanhui\desktop\project1-raytracer\src\glm\core\type_mat3x2.hpp +c:\users\yuanhui\desktop\project1-raytracer\src\glm\core\type_mat.hpp +c:\users\yuanhui\desktop\project1-raytracer\src\glm\core\type_mat3x2.inl +c:\users\yuanhui\desktop\project1-raytracer\src\glm\core\type_mat3x3.hpp +c:\users\yuanhui\desktop\project1-raytracer\src\glm\core\type_mat.hpp +c:\users\yuanhui\desktop\project1-raytracer\src\glm\core\type_mat3x3.inl +c:\users\yuanhui\desktop\project1-raytracer\src\glm\core\type_mat3x4.hpp +c:\users\yuanhui\desktop\project1-raytracer\src\glm\core\type_mat.hpp +c:\users\yuanhui\desktop\project1-raytracer\src\glm\core\type_mat3x4.inl +c:\users\yuanhui\desktop\project1-raytracer\src\glm\core\type_mat4x2.hpp +c:\users\yuanhui\desktop\project1-raytracer\src\glm\core\type_mat.hpp +c:\users\yuanhui\desktop\project1-raytracer\src\glm\core\type_mat4x2.inl +c:\users\yuanhui\desktop\project1-raytracer\src\glm\core\type_mat4x3.hpp +c:\users\yuanhui\desktop\project1-raytracer\src\glm\core\type_mat.hpp +c:\users\yuanhui\desktop\project1-raytracer\src\glm\core\type_mat4x3.inl +c:\users\yuanhui\desktop\project1-raytracer\src\glm\core\type_mat4x4.hpp +c:\users\yuanhui\desktop\project1-raytracer\src\glm\core\type_mat.hpp +c:\users\yuanhui\desktop\project1-raytracer\src\glm\core\type_mat4x4.inl +c:\users\yuanhui\desktop\project1-raytracer\src\glm\./core/func_trigonometric.hpp +c:\users\yuanhui\desktop\project1-raytracer\src\glm\core\func_trigonometric.inl +c:\users\yuanhui\desktop\project1-raytracer\src\glm\core\_vectorize.hpp +c:\users\yuanhui\desktop\project1-raytracer\src\glm\./core/func_exponential.hpp +c:\users\yuanhui\desktop\project1-raytracer\src\glm\core\func_exponential.inl +c:\users\yuanhui\desktop\project1-raytracer\src\glm\core\_vectorize.hpp +c:\users\yuanhui\desktop\project1-raytracer\src\glm\./core/func_common.hpp +c:\users\yuanhui\desktop\project1-raytracer\src\glm\core\_fixes.hpp +c:\users\yuanhui\desktop\project1-raytracer\src\glm\core\func_common.inl +c:\users\yuanhui\desktop\project1-raytracer\src\glm\core\_vectorize.hpp +c:\users\yuanhui\desktop\project1-raytracer\src\glm\./core/func_packing.hpp +c:\users\yuanhui\desktop\project1-raytracer\src\glm\core\func_packing.inl +c:\users\yuanhui\desktop\project1-raytracer\src\glm\./core/func_geometric.hpp +c:\users\yuanhui\desktop\project1-raytracer\src\glm\core\func_geometric.inl +c:\users\yuanhui\desktop\project1-raytracer\src\glm\core\_vectorize.hpp +c:\users\yuanhui\desktop\project1-raytracer\src\glm\./core/func_matrix.hpp +c:\users\yuanhui\desktop\project1-raytracer\src\glm\core\func_matrix.inl +c:\users\yuanhui\desktop\project1-raytracer\src\glm\core\_vectorize.hpp +c:\users\yuanhui\desktop\project1-raytracer\src\glm\./core/func_vector_relational.hpp +c:\users\yuanhui\desktop\project1-raytracer\src\glm\core\_detail.hpp +c:\users\yuanhui\desktop\project1-raytracer\src\glm\core\func_vector_relational.inl +c:\users\yuanhui\desktop\project1-raytracer\src\glm\./core/func_integer.hpp +c:\users\yuanhui\desktop\project1-raytracer\src\glm\core\func_integer.inl +c:\users\yuanhui\desktop\project1-raytracer\src\glm\core\_vectorize.hpp +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\intrin.h +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\crtdefs.h +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\setjmp.h +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\crtdefs.h +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\immintrin.h +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\wmmintrin.h +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\nmmintrin.h +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\smmintrin.h +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\tmmintrin.h +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\mm3dnow.h +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\crtdefs.h +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\mmintrin.h +c:\users\yuanhui\desktop\project1-raytracer\src\glm\./core/func_noise.hpp +c:\users\yuanhui\desktop\project1-raytracer\src\glm\core\func_noise.inl +c:\users\yuanhui\desktop\project1-raytracer\src\glm\./core/_swizzle.hpp +c:\users\yuanhui\desktop\project1-raytracer\src\cudaMat4.h +c:\users\yuanhui\desktop\project1-raytracer\src\glm/glm.hpp +c:\users\yuanhui\desktop\project1-raytracer\src\glm\core/_fixes.hpp +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v4.0\include\cuda_runtime.h +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v4.0\include\cuda_runtime.h +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\string +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\istream +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\ostream +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\ios +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xlocnum +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\streambuf +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xiosbase +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xlocale +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\cstring +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\string.h +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\crtdefs.h +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\stdexcept +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\exception +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\eh.h +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\crtdefs.h +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xstring +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xmemory +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\new +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xutility +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\utility +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\iosfwd +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\crtdbg.h +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\crtdefs.h +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\type_traits +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xtr1common +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap1 +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxtype_traits +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap1 +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxtype_traits +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap1 +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxtype_traits +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap1 +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxtype_traits +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap1 +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxtype_traits +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap1 +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxtype_traits +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap1 +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxtype_traits +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap1 +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxtype_traits +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap1 +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxtype_traits +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap1 +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxtype_traits +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap1 +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxtype_traits +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\typeinfo +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xlocinfo +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xlocinfo.h +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\ctype.h +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\crtdefs.h +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\locale.h +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\crtdefs.h +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xdebug +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\system_error +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\cerrno +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\errno.h +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\crtdefs.h +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\share.h +C:/ProgramData/NVIDIA Corporation/NVIDIA GPU Computing SDK 4.0/C/common/inc\cutil_math.h +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v4.0\include\cuda_runtime.h +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\math.h +c:\users\yuanhui\desktop\project1-raytracer\src\glm/glm.hpp +c:\users\yuanhui\desktop\project1-raytracer\src\glm\core/_fixes.hpp +c:\users\yuanhui\desktop\project1-raytracer\src\utilities.h +c:\users\yuanhui\desktop\project1-raytracer\src\glm/glm.hpp +c:\users\yuanhui\desktop\project1-raytracer\src\glm\core/_fixes.hpp +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\algorithm +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\memory +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap1 +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxshared +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap1 +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxshared +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap1 +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxshared +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap1 +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxshared +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap1 +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxshared +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap1 +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxshared +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap1 +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxshared +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap1 +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxshared +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap1 +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxshared +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap1 +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxshared +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap1 +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxshared +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap1 +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxshared +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap1 +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxshared +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap1 +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxshared +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap1 +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxshared +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap1 +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxshared +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap1 +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxshared +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap1 +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxshared +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap1 +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxshared +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap1 +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxshared +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap1 +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxshared +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap1 +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxshared +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap1 +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxshared +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap1 +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxshared +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap1 +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxshared +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap1 +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxshared +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap1 +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxshared +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap1 +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxshared +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap1 +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxshared +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap1 +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxshared +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap1 +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxshared +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap1 +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxshared +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap1 +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxshared +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\iterator +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\sstream +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\vector +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfunctional +c:\users\yuanhui\desktop\project1-raytracer\src\cudaMat4.h +c:\users\yuanhui\desktop\project1-raytracer\src\raytraceKernel.h +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v4.0\include\thrust/random.h +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v4.0\include\thrust/detail/config.h +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v4.0\include\thrust/detail/config/config.h +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v4.0\include\thrust/detail/config/simple_defines.h +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v4.0\include\thrust/detail/config/compiler.h +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v4.0\include\thrust/detail/config/device_backend.h +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v4.0\include\thrust/detail/config/host_device.h +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v4.0\include\host_defines.h +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v4.0\include\thrust/detail/config/debug.h +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v4.0\include\thrust/detail/cstdint.h +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v4.0\include\thrust/random/discard_block_engine.h +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\iostream +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v4.0\include\thrust/random/detail/random_core_access.h +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v4.0\include\thrust/random/detail/discard_block_engine.inl +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v4.0\include\thrust/random/linear_congruential_engine.h +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v4.0\include\thrust/random/detail/linear_congruential_engine_discard.h +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v4.0\include\thrust/random/detail/mod.h +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v4.0\include\thrust/random/detail/linear_congruential_engine.inl +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v4.0\include\thrust/random/linear_feedback_shift_engine.h +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v4.0\include\thrust/random/detail/linear_feedback_shift_engine_wordmask.h +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v4.0\include\thrust/random/detail/linear_feedback_shift_engine.inl +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v4.0\include\thrust/random/subtract_with_carry_engine.h +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v4.0\include\thrust/random/detail/subtract_with_carry_engine.inl +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v4.0\include\thrust/random/xor_combine_engine.h +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v4.0\include\thrust/detail/type_traits.h +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v4.0\include\thrust/detail/type_traits/has_trivial_assign.h +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v4.0\include\thrust/random/detail/xor_combine_engine_max.h +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v4.0\include\thrust/detail/mpl/math.h +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v4.0\include\thrust/random/detail/xor_combine_engine.inl +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v4.0\include\thrust/random/uniform_int_distribution.h +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v4.0\include\thrust/pair.h +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v4.0\include\thrust/detail/pair.inl +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v4.0\include\thrust/detail/integer_traits.h +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v4.0\include\thrust/random/detail/uniform_int_distribution.inl +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v4.0\include\thrust/random/uniform_real_distribution.h +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v4.0\include\thrust/random/detail/uniform_real_distribution.inl +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v4.0\include\thrust/random/normal_distribution.h +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v4.0\include\thrust/random/detail/normal_distribution.inl +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\time.h +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\crtdefs.h +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\time.inl +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v4.0\include\cuda.h +c:\users\yuanhui\desktop\project1-raytracer\src\sceneStructs.h +C:/ProgramData/NVIDIA Corporation/NVIDIA GPU Computing SDK 4.0/C/common/inc\cutil_math.h +C:/ProgramData/NVIDIA Corporation/NVIDIA GPU Computing SDK 4.0/C/common/inc\cutil_inline.h +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v4.0\include\cuda.h +C:/ProgramData/NVIDIA Corporation/NVIDIA GPU Computing SDK 4.0/C/common/inc\cutil.h +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v4.0\include\cuda_runtime_api.h +C:/ProgramData/NVIDIA Corporation/NVIDIA GPU Computing SDK 4.0/C/common/inc\cutil_inline_bankchecker.h +C:/ProgramData/NVIDIA Corporation/NVIDIA GPU Computing SDK 4.0/C/common/inc\cutil_inline_runtime.h +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v4.0\include\cufft.h +c:\program files\nvidia gpu computing toolkit\cuda\v4.0\include\cuComplex.h +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\math.h +c:\program files\nvidia gpu computing toolkit\cuda\v4.0\include\vector_types.h +c:\program files\nvidia gpu computing toolkit\cuda\v4.0\include\driver_types.h +C:/ProgramData/NVIDIA Corporation/NVIDIA GPU Computing SDK 4.0/C/common/inc\cutil_inline_drvapi.h +c:\users\yuanhui\desktop\project1-raytracer\src\intersections.h +c:\users\yuanhui\desktop\project1-raytracer\src\sceneStructs.h +c:\users\yuanhui\desktop\project1-raytracer\src\cudaMat4.h +c:\users\yuanhui\desktop\project1-raytracer\src\glm/glm.hpp +c:\users\yuanhui\desktop\project1-raytracer\src\glm\core/_fixes.hpp +c:\users\yuanhui\desktop\project1-raytracer\src\utilities.h +c:\users\yuanhui\desktop\project1-raytracer\src\interactions.h +c:\users\yuanhui\desktop\project1-raytracer\src\intersections.h diff --git a/PROJ1_WIN/565Raytracer/Debug/rc.command.1.tlog b/PROJ1_WIN/565Raytracer/Debug/rc.command.1.tlog new file mode 100644 index 0000000..28543b5 Binary files /dev/null and b/PROJ1_WIN/565Raytracer/Debug/rc.command.1.tlog differ diff --git a/PROJ1_WIN/565Raytracer/Debug/rc.read.1.tlog b/PROJ1_WIN/565Raytracer/Debug/rc.read.1.tlog new file mode 100644 index 0000000..71c2128 Binary files /dev/null and b/PROJ1_WIN/565Raytracer/Debug/rc.read.1.tlog differ diff --git a/PROJ1_WIN/565Raytracer/Debug/rc.write.1.tlog b/PROJ1_WIN/565Raytracer/Debug/rc.write.1.tlog new file mode 100644 index 0000000..d788a35 Binary files /dev/null and b/PROJ1_WIN/565Raytracer/Debug/rc.write.1.tlog differ diff --git a/PROJ1_WIN/565Raytracer/Debug/scene.obj b/PROJ1_WIN/565Raytracer/Debug/scene.obj new file mode 100644 index 0000000..fef9d70 Binary files /dev/null and b/PROJ1_WIN/565Raytracer/Debug/scene.obj differ diff --git a/PROJ1_WIN/565Raytracer/Debug/stb_image.obj b/PROJ1_WIN/565Raytracer/Debug/stb_image.obj new file mode 100644 index 0000000..5a585e0 Binary files /dev/null and b/PROJ1_WIN/565Raytracer/Debug/stb_image.obj differ diff --git a/PROJ1_WIN/565Raytracer/Debug/stb_image_write.obj b/PROJ1_WIN/565Raytracer/Debug/stb_image_write.obj new file mode 100644 index 0000000..f02fcd4 Binary files /dev/null and b/PROJ1_WIN/565Raytracer/Debug/stb_image_write.obj differ diff --git a/PROJ1_WIN/565Raytracer/Debug/utilities.obj b/PROJ1_WIN/565Raytracer/Debug/utilities.obj new file mode 100644 index 0000000..0026f87 Binary files /dev/null and b/PROJ1_WIN/565Raytracer/Debug/utilities.obj differ diff --git a/PROJ1_WIN/565Raytracer/Debug/vc100.idb b/PROJ1_WIN/565Raytracer/Debug/vc100.idb new file mode 100644 index 0000000..c2a0cec Binary files /dev/null and b/PROJ1_WIN/565Raytracer/Debug/vc100.idb differ diff --git a/PROJ1_WIN/565Raytracer/Debug/vc100.pdb b/PROJ1_WIN/565Raytracer/Debug/vc100.pdb new file mode 100644 index 0000000..5c2278d Binary files /dev/null and b/PROJ1_WIN/565Raytracer/Debug/vc100.pdb differ diff --git a/PROJ1_WIN/565Raytracer/Release/565Raytracer.exe.intermediate.manifest b/PROJ1_WIN/565Raytracer/Release/565Raytracer.exe.intermediate.manifest new file mode 100644 index 0000000..1c06b61 --- /dev/null +++ b/PROJ1_WIN/565Raytracer/Release/565Raytracer.exe.intermediate.manifest @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/PROJ1_WIN/565Raytracer/Release/565Raytracer.lastbuildstate b/PROJ1_WIN/565Raytracer/Release/565Raytracer.lastbuildstate new file mode 100644 index 0000000..d83dc62 --- /dev/null +++ b/PROJ1_WIN/565Raytracer/Release/565Raytracer.lastbuildstate @@ -0,0 +1,2 @@ +#v4.0:v100 +Release|Win32|C:\Users\Yuanhui\Desktop\Project1-Raytracer\PROJ1_WIN\| diff --git a/PROJ1_WIN/565Raytracer/Release/565Raytracer.log b/PROJ1_WIN/565Raytracer/Release/565Raytracer.log new file mode 100644 index 0000000..09b5246 --- /dev/null +++ b/PROJ1_WIN/565Raytracer/Release/565Raytracer.log @@ -0,0 +1,105 @@ +Build started 9/30/2012 11:29:40 PM. + 1>Project "C:\Users\Yuanhui\Desktop\Project1-Raytracer\PROJ1_WIN\565Raytracer\565Raytracer.vcxproj" on node 2 (build target(s)). + 1>PrepareForBuild: + Creating directory "C:\Users\Yuanhui\Desktop\Project1-Raytracer\PROJ1_WIN\Release\". + InitializeBuildStatus: + Creating "Release\565Raytracer.unsuccessfulbuild" because "AlwaysCreate" was specified. + AddCudaCompileDeps: + c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\bin\cl.exe /E /nologo /showIncludes /TP /I"C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v4.0\include" /I"C:/ProgramData/NVIDIA Corporation/NVIDIA GPU Computing SDK 4.0/C/common/inc" /I../shared/glew/includes /I../shared/freeglut/includes /I"C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v4.0\bin" /I"C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v4.0\include" /I. /FIcuda_runtime.h /c C:\Users\Yuanhui\Desktop\Project1-Raytracer\src\raytraceKernel.cu + AddCudaCompilePropsDeps: + Found "CudaToolkitCustomDir". + Found "AdditionalDeps". + Found "CompileOut". + Found "Include". + Found "Keep". + Found "KeepDir". + Found "NvccCompilation". + Found "NvccPath". + Found "RequiredIncludes". + Found "TargetMachinePlatform". + Found "CInterleavedPTX". + Found "CodeGeneration". + Found "GPUDebugInfo". + Found "MaxRegCount". + Found "PtxAsOptionV". + Found "Defines". + Found "Emulation". + Found "HostDebugInfo". + Found "FastMath". + Found "Optimization". + Found "Runtime". + Found "RuntimeChecks". + Found "TypeInfo". + Found "Warning". + Found "AdditionalOptions". + Found "CommandLineTemplate". + CudaBuild: + Compiling CUDA source file ..\..\src\raytraceKernel.cu... + Creating directory "C:\Users\Yuanhui\Desktop\Project1-Raytracer\PROJ1_WIN\565Raytracer\Win32\Release". + cmd.exe /C "C:\Users\Yuanhui\AppData\Local\Temp\9bcf5198287b4658be8f3ca78cb401d3.cmd" + "C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v4.0\bin\nvcc.exe" -gencode=arch=compute_10,code=\"sm_10,compute_10\" --use-local-env --cl-version 2010 -ccbin "c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\bin" -I"C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v4.0\include" -I"C:/ProgramData/NVIDIA Corporation/NVIDIA GPU Computing SDK 4.0/C/common/inc" -I"../shared/glew/includes" -I"../shared/freeglut/includes" -I"C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v4.0\include" --keep-dir "Release" -maxrregcount=0 --machine 32 --compile -Xcompiler "/EHsc /nologo /Od /Zi /MD " -o "C:\Users\Yuanhui\Desktop\Project1-Raytracer\PROJ1_WIN\565Raytracer\Win32/Release/raytraceKernel.cu.obj" "C:\Users\Yuanhui\Desktop\Project1-Raytracer\src\raytraceKernel.cu" + + C:\Users\Yuanhui\Desktop\Project1-Raytracer\PROJ1_WIN\565Raytracer>"C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v4.0\bin\nvcc.exe" -gencode=arch=compute_10,code=\"sm_10,compute_10\" --use-local-env --cl-version 2010 -ccbin "c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\bin" -I"C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v4.0\include" -I"C:/ProgramData/NVIDIA Corporation/NVIDIA GPU Computing SDK 4.0/C/common/inc" -I"../shared/glew/includes" -I"../shared/freeglut/includes" -I"C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v4.0\include" --keep-dir "Release" -maxrregcount=0 --machine 32 --compile -Xcompiler "/EHsc /nologo /Od /Zi /MD " -o "C:\Users\Yuanhui\Desktop\Project1-Raytracer\PROJ1_WIN\565Raytracer\Win32/Release/raytraceKernel.cu.obj" "C:\Users\Yuanhui\Desktop\Project1-Raytracer\src\raytraceKernel.cu" + raytraceKernel.cu + 1>C:/Users/Yuanhui/Desktop/Project1-Raytracer/src/raytraceKernel.cu(138): warning : variable "hasblock" was declared but never referenced + + tmpxft_00001b40_00000000-0_raytraceKernel.cudafe1.gpu + tmpxft_00001b40_00000000-5_raytraceKernel.cudafe2.gpu + raytraceKernel.cu + 1>c:\users\yuanhui\desktop\project1-raytracer\src\glm\core\_swizzle.hpp(194): warning : missing return statement at end of non-void function "glm::detail::_swizzle_base2::operator=(const glm::detail::_swizzle_base2::Stub &)" + + 1>C:/Users/Yuanhui/Desktop/Project1-Raytracer/src/raytraceKernel.cu(138): warning : variable "hasblock" was declared but never referenced + + 1>ptxas C : /Users/Yuanhui/AppData/Local/Temp/tmpxft_00001b40_00000000-1_raytraceKernel.ptx, line 136; warning : Double is not supported. Demoting to float + tmpxft_00001b40_00000000-0_raytraceKernel.cudafe1.cpp + tmpxft_00001b40_00000000-11_raytraceKernel.ii + ClCompile: + c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\bin\CL.exe /c /I"C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v4.0\include" /I"C:\ProgramData\NVIDIA Corporation\NVIDIA GPU Computing SDK 4.0\C\common\inc" /I../shared/glew/include /I../shared/freeglut/include /I"C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v4.0\include" /Zi /nologo /W3 /WX- /O2 /Oi /Oy- /GL /D WIN32 /D NDEBUG /D _CONSOLE /D _UNICODE /D UNICODE /Gm- /EHsc /MD /GS /Gy /fp:precise /Zc:wchar_t /Zc:forScope /Fo"Release\\" /Fd"Release\vc100.pdb" /Gd /TP /analyze- /errorReport:prompt ..\..\src\glslUtility.cpp ..\..\src\image.cpp ..\..\src\main.cpp ..\..\src\scene.cpp ..\..\src\utilities.cpp + glslUtility.cpp + image.cpp + main.cpp + Note: including lib: glut32.lib + + 1>..\..\src\main.cpp(125): warning C4018: '<' : signed/unsigned mismatch + 1>..\..\src\main.cpp(134): warning C4018: '<' : signed/unsigned mismatch + 1>..\..\src\main.cpp(137): warning C4018: '<' : signed/unsigned mismatch + 1>..\..\src\main.cpp(140): warning C4018: '<' : signed/unsigned mismatch + 1>..\..\src\main.cpp(527): warning C4018: '<' : signed/unsigned mismatch + 1>..\..\src\main.cpp(535): warning C4018: '<' : signed/unsigned mismatch + scene.cpp + 1>..\..\src\scene.cpp(176): warning C4244: '=' : conversion from 'double' to 'float', possible loss of data + 1>..\..\src\scene.cpp(245): warning C4244: 'initializing' : conversion from 'double' to 'float', possible loss of data + 1>..\..\src\scene.cpp(247): warning C4244: 'initializing' : conversion from 'double' to 'float', possible loss of data + 1>..\..\src\scene.cpp(281): warning C4244: '=' : conversion from 'double' to 'float', possible loss of data + 1>..\..\src\scene.cpp(286): warning C4244: '=' : conversion from 'double' to 'float', possible loss of data + 1>..\..\src\scene.cpp(288): warning C4244: '=' : conversion from 'double' to 'float', possible loss of data + 1>..\..\src\scene.cpp(290): warning C4244: '=' : conversion from 'double' to 'float', possible loss of data + 1>..\..\src\scene.cpp(292): warning C4244: '=' : conversion from 'double' to 'float', possible loss of data + 1>..\..\src\scene.cpp(297): warning C4244: '=' : conversion from 'double' to 'float', possible loss of data + 1>..\..\src\scene.cpp(299): warning C4244: '=' : conversion from 'double' to 'float', possible loss of data + utilities.cpp + c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\bin\CL.exe /c /I"C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v4.0\include" /I"C:\ProgramData\NVIDIA Corporation\NVIDIA GPU Computing SDK 4.0\C\common\inc" /I../shared/glew/include /I../shared/freeglut/include /I"C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v4.0\include" /Zi /nologo /W3 /WX- /O2 /Oi /Oy- /GL /D WIN32 /D NDEBUG /D _CONSOLE /D _UNICODE /D UNICODE /Gm- /EHsc /MD /GS /Gy /fp:precise /Zc:wchar_t /Zc:forScope /Fo"Release\\" /Fd"Release\vc100.pdb" /Gd /TC /analyze- /errorReport:prompt ..\..\src\stb_image\stb_image.c ..\..\src\stb_image\stb_image_write.c + stb_image.c + stb_image_write.c + Link: + c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\bin\link.exe /ERRORREPORT:PROMPT /OUT:"C:\Users\Yuanhui\Desktop\Project1-Raytracer\PROJ1_WIN\Release\565Raytracer.exe" /INCREMENTAL:NO /NOLOGO /LIBPATH:../shared/glew/lib /LIBPATH:../shared/freeglut/lib /LIBPATH:"C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v4.0\lib\Win32" cudart.lib glew32.lib glu32.lib opengl32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /MANIFEST /ManifestFile:"Release\565Raytracer.exe.intermediate.manifest" /MANIFESTUAC:"level='asInvoker' uiAccess='false'" /DEBUG /PDB:"C:\Users\Yuanhui\Desktop\Project1-Raytracer\PROJ1_WIN\Release\565Raytracer.pdb" /SUBSYSTEM:CONSOLE /OPT:REF /OPT:ICF /LTCG /TLBID:1 /ENTRY:"mainCRTStartup" /DYNAMICBASE /NXCOMPAT /IMPLIB:"C:\Users\Yuanhui\Desktop\Project1-Raytracer\PROJ1_WIN\Release\565Raytracer.lib" /MACHINE:X86 "C:\Users\Yuanhui\Desktop\Project1-Raytracer\PROJ1_WIN\565Raytracer\Win32/Release/raytraceKernel.cu.obj" + Release\glslUtility.obj + Release\image.obj + Release\main.obj + Release\scene.obj + Release\stb_image.obj + Release\stb_image_write.obj + Release\utilities.obj + Generating code + Finished generating code + 565Raytracer.vcxproj -> C:\Users\Yuanhui\Desktop\Project1-Raytracer\PROJ1_WIN\Release\565Raytracer.exe + Manifest: + C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\bin\mt.exe /nologo /verbose /outputresource:"C:\Users\Yuanhui\Desktop\Project1-Raytracer\PROJ1_WIN\Release\565Raytracer.exe;#1" /manifest Release\565Raytracer.exe.intermediate.manifest + FinalizeBuildStatus: + Deleting file "Release\565Raytracer.unsuccessfulbuild". + Touching "Release\565Raytracer.lastbuildstate". + 1>Done Building Project "C:\Users\Yuanhui\Desktop\Project1-Raytracer\PROJ1_WIN\565Raytracer\565Raytracer.vcxproj" (build target(s)). + +Build succeeded. + +Time Elapsed 00:00:33.16 diff --git a/PROJ1_WIN/565Raytracer/Release/CL.read.1.tlog b/PROJ1_WIN/565Raytracer/Release/CL.read.1.tlog new file mode 100644 index 0000000..aa5bb63 Binary files /dev/null and b/PROJ1_WIN/565Raytracer/Release/CL.read.1.tlog differ diff --git a/PROJ1_WIN/565Raytracer/Release/CL.write.1.tlog b/PROJ1_WIN/565Raytracer/Release/CL.write.1.tlog new file mode 100644 index 0000000..26f0177 Binary files /dev/null and b/PROJ1_WIN/565Raytracer/Release/CL.write.1.tlog differ diff --git a/PROJ1_WIN/565Raytracer/Release/cl.command.1.tlog b/PROJ1_WIN/565Raytracer/Release/cl.command.1.tlog new file mode 100644 index 0000000..ee10578 Binary files /dev/null and b/PROJ1_WIN/565Raytracer/Release/cl.command.1.tlog differ diff --git a/PROJ1_WIN/565Raytracer/Release/glslUtility.obj b/PROJ1_WIN/565Raytracer/Release/glslUtility.obj new file mode 100644 index 0000000..f6babd4 Binary files /dev/null and b/PROJ1_WIN/565Raytracer/Release/glslUtility.obj differ diff --git a/PROJ1_WIN/565Raytracer/Release/image.obj b/PROJ1_WIN/565Raytracer/Release/image.obj new file mode 100644 index 0000000..a41e692 Binary files /dev/null and b/PROJ1_WIN/565Raytracer/Release/image.obj differ diff --git a/PROJ1_WIN/565Raytracer/Release/link.command.1.tlog b/PROJ1_WIN/565Raytracer/Release/link.command.1.tlog new file mode 100644 index 0000000..d9ff147 Binary files /dev/null and b/PROJ1_WIN/565Raytracer/Release/link.command.1.tlog differ diff --git a/PROJ1_WIN/565Raytracer/Release/link.read.1.tlog b/PROJ1_WIN/565Raytracer/Release/link.read.1.tlog new file mode 100644 index 0000000..637ff6a Binary files /dev/null and b/PROJ1_WIN/565Raytracer/Release/link.read.1.tlog differ diff --git a/PROJ1_WIN/565Raytracer/Release/link.write.1.tlog b/PROJ1_WIN/565Raytracer/Release/link.write.1.tlog new file mode 100644 index 0000000..1a1b8d3 Binary files /dev/null and b/PROJ1_WIN/565Raytracer/Release/link.write.1.tlog differ diff --git a/PROJ1_WIN/565Raytracer/Release/main.obj b/PROJ1_WIN/565Raytracer/Release/main.obj new file mode 100644 index 0000000..bb9caee Binary files /dev/null and b/PROJ1_WIN/565Raytracer/Release/main.obj differ diff --git a/PROJ1_WIN/565Raytracer/Release/mt.command.1.tlog b/PROJ1_WIN/565Raytracer/Release/mt.command.1.tlog new file mode 100644 index 0000000..6b241d5 Binary files /dev/null and b/PROJ1_WIN/565Raytracer/Release/mt.command.1.tlog differ diff --git a/PROJ1_WIN/565Raytracer/Release/mt.read.1.tlog b/PROJ1_WIN/565Raytracer/Release/mt.read.1.tlog new file mode 100644 index 0000000..8b5763d Binary files /dev/null and b/PROJ1_WIN/565Raytracer/Release/mt.read.1.tlog differ diff --git a/PROJ1_WIN/565Raytracer/Release/mt.write.1.tlog b/PROJ1_WIN/565Raytracer/Release/mt.write.1.tlog new file mode 100644 index 0000000..fa9a91b Binary files /dev/null and b/PROJ1_WIN/565Raytracer/Release/mt.write.1.tlog differ diff --git a/PROJ1_WIN/565Raytracer/Release/raytraceKernel.cu.cache b/PROJ1_WIN/565Raytracer/Release/raytraceKernel.cu.cache new file mode 100644 index 0000000..ce05d1d --- /dev/null +++ b/PROJ1_WIN/565Raytracer/Release/raytraceKernel.cu.cache @@ -0,0 +1,26 @@ +Identity=..\..\src\raytraceKernel.cu +AdditionalDeps= +AdditionalOptions= +CInterleavedPTX=false +CodeGeneration=compute_10,sm_10 +CompileOut=C:\Users\Yuanhui\Desktop\Project1-Raytracer\PROJ1_WIN\565Raytracer\Win32/Release/raytraceKernel.cu.obj +CudaToolkitCustomDir= +Defines= +Emulation=false +FastMath=false +GPUDebugInfo=false +HostDebugInfo=false +Include=C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v4.0\include;C:/ProgramData/NVIDIA Corporation/NVIDIA GPU Computing SDK 4.0/C/common/inc;../shared/glew/includes;../shared/freeglut/includes +Keep=false +KeepDir=Release +MaxRegCount=0 +NvccCompilation=compile +NvccPath= +Optimization=Od +PtxAsOptionV=false +RequiredIncludes= +Runtime=MD +RuntimeChecks=Default +TargetMachinePlatform=32 +TypeInfo=false +Warning=W3 diff --git a/PROJ1_WIN/565Raytracer/Release/raytraceKernel.cu.deps b/PROJ1_WIN/565Raytracer/Release/raytraceKernel.cu.deps new file mode 100644 index 0000000..919df3e --- /dev/null +++ b/PROJ1_WIN/565Raytracer/Release/raytraceKernel.cu.deps @@ -0,0 +1,424 @@ +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v4.0\include\cuda_runtime.h +c:\program files\nvidia gpu computing toolkit\cuda\v4.0\include\host_config.h +c:\program files\nvidia gpu computing toolkit\cuda\v4.0\include\builtin_types.h +c:\program files\nvidia gpu computing toolkit\cuda\v4.0\include\device_types.h +c:\program files\nvidia gpu computing toolkit\cuda\v4.0\include\driver_types.h +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\limits.h +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\crtdefs.h +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\sal.h +c:\program files (x86)\microsoft visual studio 10.0\vc\include\codeanalysis\sourceannotations.h +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\vadefs.h +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\stddef.h +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\crtdefs.h +c:\program files\nvidia gpu computing toolkit\cuda\v4.0\include\surface_types.h +c:\program files\nvidia gpu computing toolkit\cuda\v4.0\include\driver_types.h +c:\program files\nvidia gpu computing toolkit\cuda\v4.0\include\texture_types.h +c:\program files\nvidia gpu computing toolkit\cuda\v4.0\include\driver_types.h +c:\program files\nvidia gpu computing toolkit\cuda\v4.0\include\vector_types.h +c:\program files\nvidia gpu computing toolkit\cuda\v4.0\include\builtin_types.h +c:\program files\nvidia gpu computing toolkit\cuda\v4.0\include\device_types.h +c:\program files\nvidia gpu computing toolkit\cuda\v4.0\include\driver_types.h +c:\program files\nvidia gpu computing toolkit\cuda\v4.0\include\surface_types.h +c:\program files\nvidia gpu computing toolkit\cuda\v4.0\include\texture_types.h +c:\program files\nvidia gpu computing toolkit\cuda\v4.0\include\vector_types.h +c:\program files\nvidia gpu computing toolkit\cuda\v4.0\include\host_defines.h +c:\program files\nvidia gpu computing toolkit\cuda\v4.0\include\channel_descriptor.h +c:\program files\nvidia gpu computing toolkit\cuda\v4.0\include\driver_types.h +c:\program files\nvidia gpu computing toolkit\cuda\v4.0\include\cuda_runtime_api.h +c:\program files\nvidia gpu computing toolkit\cuda\v4.0\include\host_defines.h +c:\program files\nvidia gpu computing toolkit\cuda\v4.0\include\builtin_types.h +c:\program files\nvidia gpu computing toolkit\cuda\v4.0\include\device_types.h +c:\program files\nvidia gpu computing toolkit\cuda\v4.0\include\driver_types.h +c:\program files\nvidia gpu computing toolkit\cuda\v4.0\include\surface_types.h +c:\program files\nvidia gpu computing toolkit\cuda\v4.0\include\texture_types.h +c:\program files\nvidia gpu computing toolkit\cuda\v4.0\include\vector_types.h +c:\program files\nvidia gpu computing toolkit\cuda\v4.0\include\host_defines.h +c:\program files\nvidia gpu computing toolkit\cuda\v4.0\include\vector_types.h +c:\program files\nvidia gpu computing toolkit\cuda\v4.0\include\cuda_runtime_api.h +c:\program files\nvidia gpu computing toolkit\cuda\v4.0\include\driver_functions.h +c:\program files\nvidia gpu computing toolkit\cuda\v4.0\include\builtin_types.h +c:\program files\nvidia gpu computing toolkit\cuda\v4.0\include\device_types.h +c:\program files\nvidia gpu computing toolkit\cuda\v4.0\include\driver_types.h +c:\program files\nvidia gpu computing toolkit\cuda\v4.0\include\surface_types.h +c:\program files\nvidia gpu computing toolkit\cuda\v4.0\include\texture_types.h +c:\program files\nvidia gpu computing toolkit\cuda\v4.0\include\vector_types.h +c:\program files\nvidia gpu computing toolkit\cuda\v4.0\include\host_defines.h +c:\program files\nvidia gpu computing toolkit\cuda\v4.0\include\driver_types.h +c:\program files\nvidia gpu computing toolkit\cuda\v4.0\include\host_defines.h +c:\program files\nvidia gpu computing toolkit\cuda\v4.0\include\vector_functions.h +c:\program files\nvidia gpu computing toolkit\cuda\v4.0\include\builtin_types.h +c:\program files\nvidia gpu computing toolkit\cuda\v4.0\include\device_types.h +c:\program files\nvidia gpu computing toolkit\cuda\v4.0\include\driver_types.h +c:\program files\nvidia gpu computing toolkit\cuda\v4.0\include\surface_types.h +c:\program files\nvidia gpu computing toolkit\cuda\v4.0\include\texture_types.h +c:\program files\nvidia gpu computing toolkit\cuda\v4.0\include\vector_types.h +c:\program files\nvidia gpu computing toolkit\cuda\v4.0\include\host_defines.h +c:\program files\nvidia gpu computing toolkit\cuda\v4.0\include\vector_types.h +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\stdio.h +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\crtdefs.h +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\swprintf.inl +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v4.0\include\cuda.h +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\stdlib.h +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\crtdefs.h +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\cmath +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\yvals.h +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\crtdefs.h +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\use_ansi.h +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\math.h +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\crtdefs.h +c:\users\yuanhui\desktop\project1-raytracer\src\sceneStructs.h +c:\users\yuanhui\desktop\project1-raytracer\src\glm/glm.hpp +c:\users\yuanhui\desktop\project1-raytracer\src\glm\core/_fixes.hpp +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\climits +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\cfloat +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\float.h +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\crtdefs.h +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\crtwrn.h +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\crtdefs.h +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\limits +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\ymath.h +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\cwchar +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\wchar.h +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\crtdefs.h +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\wtime.inl +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xstddef +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\cstddef +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\cstdio +c:\users\yuanhui\desktop\project1-raytracer\src\glm\core/setup.hpp +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\pmmintrin.h +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\emmintrin.h +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xmmintrin.h +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\mmintrin.h +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\crtdefs.h +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\malloc.h +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\crtdefs.h +c:\users\yuanhui\desktop\project1-raytracer\src\glm\./core/_detail.hpp +c:\users\yuanhui\desktop\project1-raytracer\src\glm\core\setup.hpp +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\cassert +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\assert.h +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\crtdefs.h +c:\users\yuanhui\desktop\project1-raytracer\src\glm\./core/type.hpp +c:\users\yuanhui\desktop\project1-raytracer\src\glm\core\type_half.hpp +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\cstdlib +c:\users\yuanhui\desktop\project1-raytracer\src\glm\core\type_half.inl +c:\users\yuanhui\desktop\project1-raytracer\src\glm\core\_detail.hpp +c:\users\yuanhui\desktop\project1-raytracer\src\glm\core\type_float.hpp +c:\users\yuanhui\desktop\project1-raytracer\src\glm\core\type_half.hpp +c:\users\yuanhui\desktop\project1-raytracer\src\glm\core\setup.hpp +c:\users\yuanhui\desktop\project1-raytracer\src\glm\core\type_int.hpp +c:\users\yuanhui\desktop\project1-raytracer\src\glm\core\setup.hpp +c:\users\yuanhui\desktop\project1-raytracer\src\glm\core\_detail.hpp +c:\users\yuanhui\desktop\project1-raytracer\src\glm\core\type_gentype.hpp +c:\users\yuanhui\desktop\project1-raytracer\src\glm\core\type_size.hpp +c:\users\yuanhui\desktop\project1-raytracer\src\glm\core\type_vec1.hpp +c:\users\yuanhui\desktop\project1-raytracer\src\glm\core\type_vec.hpp +c:\users\yuanhui\desktop\project1-raytracer\src\glm\core\type_gentype.hpp +c:\users\yuanhui\desktop\project1-raytracer\src\glm\core\type_float.hpp +c:\users\yuanhui\desktop\project1-raytracer\src\glm\core\type_int.hpp +c:\users\yuanhui\desktop\project1-raytracer\src\glm\core\type_size.hpp +c:\users\yuanhui\desktop\project1-raytracer\src\glm\core\_swizzle.hpp +c:\users\yuanhui\desktop\project1-raytracer\src\glm\core\_swizzle_func.hpp +c:\users\yuanhui\desktop\project1-raytracer\src\glm\core\type_vec1.inl +c:\users\yuanhui\desktop\project1-raytracer\src\glm\core\type_vec2.hpp +c:\users\yuanhui\desktop\project1-raytracer\src\glm\core\type_vec.hpp +c:\users\yuanhui\desktop\project1-raytracer\src\glm\core\type_float.hpp +c:\users\yuanhui\desktop\project1-raytracer\src\glm\core\type_int.hpp +c:\users\yuanhui\desktop\project1-raytracer\src\glm\core\type_size.hpp +c:\users\yuanhui\desktop\project1-raytracer\src\glm\core\_swizzle.hpp +c:\users\yuanhui\desktop\project1-raytracer\src\glm\core\type_vec2.inl +c:\users\yuanhui\desktop\project1-raytracer\src\glm\core\type_vec3.hpp +c:\users\yuanhui\desktop\project1-raytracer\src\glm\core\type_vec.hpp +c:\users\yuanhui\desktop\project1-raytracer\src\glm\core\type_float.hpp +c:\users\yuanhui\desktop\project1-raytracer\src\glm\core\type_int.hpp +c:\users\yuanhui\desktop\project1-raytracer\src\glm\core\type_size.hpp +c:\users\yuanhui\desktop\project1-raytracer\src\glm\core\_swizzle.hpp +c:\users\yuanhui\desktop\project1-raytracer\src\glm\core\type_vec3.inl +c:\users\yuanhui\desktop\project1-raytracer\src\glm\core\type_vec4.hpp +c:\users\yuanhui\desktop\project1-raytracer\src\glm\core\type_vec.hpp +c:\users\yuanhui\desktop\project1-raytracer\src\glm\core\type_float.hpp +c:\users\yuanhui\desktop\project1-raytracer\src\glm\core\type_int.hpp +c:\users\yuanhui\desktop\project1-raytracer\src\glm\core\type_size.hpp +c:\users\yuanhui\desktop\project1-raytracer\src\glm\core\_swizzle.hpp +c:\users\yuanhui\desktop\project1-raytracer\src\glm\core\type_vec4.inl +c:\users\yuanhui\desktop\project1-raytracer\src\glm\core\type_mat2x2.hpp +c:\users\yuanhui\desktop\project1-raytracer\src\glm\core\type_mat.hpp +c:\users\yuanhui\desktop\project1-raytracer\src\glm\core\type_gentype.hpp +c:\users\yuanhui\desktop\project1-raytracer\src\glm\core\type_mat2x2.inl +c:\users\yuanhui\desktop\project1-raytracer\src\glm\core\type_mat2x3.hpp +c:\users\yuanhui\desktop\project1-raytracer\src\glm\core\type_mat.hpp +c:\users\yuanhui\desktop\project1-raytracer\src\glm\core\type_mat2x3.inl +c:\users\yuanhui\desktop\project1-raytracer\src\glm\core\type_mat2x4.hpp +c:\users\yuanhui\desktop\project1-raytracer\src\glm\core\type_mat.hpp +c:\users\yuanhui\desktop\project1-raytracer\src\glm\core\type_mat2x4.inl +c:\users\yuanhui\desktop\project1-raytracer\src\glm\core\type_mat3x2.hpp +c:\users\yuanhui\desktop\project1-raytracer\src\glm\core\type_mat.hpp +c:\users\yuanhui\desktop\project1-raytracer\src\glm\core\type_mat3x2.inl +c:\users\yuanhui\desktop\project1-raytracer\src\glm\core\type_mat3x3.hpp +c:\users\yuanhui\desktop\project1-raytracer\src\glm\core\type_mat.hpp +c:\users\yuanhui\desktop\project1-raytracer\src\glm\core\type_mat3x3.inl +c:\users\yuanhui\desktop\project1-raytracer\src\glm\core\type_mat3x4.hpp +c:\users\yuanhui\desktop\project1-raytracer\src\glm\core\type_mat.hpp +c:\users\yuanhui\desktop\project1-raytracer\src\glm\core\type_mat3x4.inl +c:\users\yuanhui\desktop\project1-raytracer\src\glm\core\type_mat4x2.hpp +c:\users\yuanhui\desktop\project1-raytracer\src\glm\core\type_mat.hpp +c:\users\yuanhui\desktop\project1-raytracer\src\glm\core\type_mat4x2.inl +c:\users\yuanhui\desktop\project1-raytracer\src\glm\core\type_mat4x3.hpp +c:\users\yuanhui\desktop\project1-raytracer\src\glm\core\type_mat.hpp +c:\users\yuanhui\desktop\project1-raytracer\src\glm\core\type_mat4x3.inl +c:\users\yuanhui\desktop\project1-raytracer\src\glm\core\type_mat4x4.hpp +c:\users\yuanhui\desktop\project1-raytracer\src\glm\core\type_mat.hpp +c:\users\yuanhui\desktop\project1-raytracer\src\glm\core\type_mat4x4.inl +c:\users\yuanhui\desktop\project1-raytracer\src\glm\./core/func_trigonometric.hpp +c:\users\yuanhui\desktop\project1-raytracer\src\glm\core\func_trigonometric.inl +c:\users\yuanhui\desktop\project1-raytracer\src\glm\core\_vectorize.hpp +c:\users\yuanhui\desktop\project1-raytracer\src\glm\./core/func_exponential.hpp +c:\users\yuanhui\desktop\project1-raytracer\src\glm\core\func_exponential.inl +c:\users\yuanhui\desktop\project1-raytracer\src\glm\core\_vectorize.hpp +c:\users\yuanhui\desktop\project1-raytracer\src\glm\./core/func_common.hpp +c:\users\yuanhui\desktop\project1-raytracer\src\glm\core\_fixes.hpp +c:\users\yuanhui\desktop\project1-raytracer\src\glm\core\func_common.inl +c:\users\yuanhui\desktop\project1-raytracer\src\glm\core\_vectorize.hpp +c:\users\yuanhui\desktop\project1-raytracer\src\glm\./core/func_packing.hpp +c:\users\yuanhui\desktop\project1-raytracer\src\glm\core\func_packing.inl +c:\users\yuanhui\desktop\project1-raytracer\src\glm\./core/func_geometric.hpp +c:\users\yuanhui\desktop\project1-raytracer\src\glm\core\func_geometric.inl +c:\users\yuanhui\desktop\project1-raytracer\src\glm\core\_vectorize.hpp +c:\users\yuanhui\desktop\project1-raytracer\src\glm\./core/func_matrix.hpp +c:\users\yuanhui\desktop\project1-raytracer\src\glm\core\func_matrix.inl +c:\users\yuanhui\desktop\project1-raytracer\src\glm\core\_vectorize.hpp +c:\users\yuanhui\desktop\project1-raytracer\src\glm\./core/func_vector_relational.hpp +c:\users\yuanhui\desktop\project1-raytracer\src\glm\core\_detail.hpp +c:\users\yuanhui\desktop\project1-raytracer\src\glm\core\func_vector_relational.inl +c:\users\yuanhui\desktop\project1-raytracer\src\glm\./core/func_integer.hpp +c:\users\yuanhui\desktop\project1-raytracer\src\glm\core\func_integer.inl +c:\users\yuanhui\desktop\project1-raytracer\src\glm\core\_vectorize.hpp +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\intrin.h +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\crtdefs.h +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\setjmp.h +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\crtdefs.h +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\immintrin.h +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\wmmintrin.h +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\nmmintrin.h +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\smmintrin.h +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\tmmintrin.h +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\mm3dnow.h +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\crtdefs.h +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\mmintrin.h +c:\users\yuanhui\desktop\project1-raytracer\src\glm\./core/func_noise.hpp +c:\users\yuanhui\desktop\project1-raytracer\src\glm\core\func_noise.inl +c:\users\yuanhui\desktop\project1-raytracer\src\glm\./core/_swizzle.hpp +c:\users\yuanhui\desktop\project1-raytracer\src\cudaMat4.h +c:\users\yuanhui\desktop\project1-raytracer\src\glm/glm.hpp +c:\users\yuanhui\desktop\project1-raytracer\src\glm\core/_fixes.hpp +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v4.0\include\cuda_runtime.h +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v4.0\include\cuda_runtime.h +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\string +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\istream +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\ostream +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\ios +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xlocnum +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\streambuf +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xiosbase +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xlocale +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\cstring +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\string.h +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\crtdefs.h +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\stdexcept +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\exception +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\eh.h +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\crtdefs.h +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xstring +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xmemory +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\new +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xutility +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\utility +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\iosfwd +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\crtdbg.h +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\crtdefs.h +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\type_traits +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xtr1common +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap1 +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxtype_traits +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap1 +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxtype_traits +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap1 +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxtype_traits +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap1 +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxtype_traits +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap1 +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxtype_traits +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap1 +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxtype_traits +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap1 +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxtype_traits +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap1 +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxtype_traits +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap1 +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxtype_traits +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap1 +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxtype_traits +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap1 +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxtype_traits +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\typeinfo +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xlocinfo +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xlocinfo.h +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\ctype.h +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\crtdefs.h +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\locale.h +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\crtdefs.h +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xdebug +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\system_error +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\cerrno +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\errno.h +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\crtdefs.h +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\share.h +C:/ProgramData/NVIDIA Corporation/NVIDIA GPU Computing SDK 4.0/C/common/inc\cutil_math.h +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v4.0\include\cuda_runtime.h +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\math.h +c:\users\yuanhui\desktop\project1-raytracer\src\glm/glm.hpp +c:\users\yuanhui\desktop\project1-raytracer\src\glm\core/_fixes.hpp +c:\users\yuanhui\desktop\project1-raytracer\src\utilities.h +c:\users\yuanhui\desktop\project1-raytracer\src\glm/glm.hpp +c:\users\yuanhui\desktop\project1-raytracer\src\glm\core/_fixes.hpp +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\algorithm +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\memory +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap1 +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxshared +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap1 +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxshared +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap1 +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxshared +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap1 +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxshared +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap1 +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxshared +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap1 +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxshared +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap1 +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxshared +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap1 +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxshared +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap1 +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxshared +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap1 +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxshared +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap1 +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxshared +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap1 +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxshared +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap1 +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxshared +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap1 +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxshared +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap1 +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxshared +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap1 +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxshared +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap1 +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxshared +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap1 +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxshared +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap1 +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxshared +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap1 +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxshared +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap1 +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxshared +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap1 +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxshared +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap1 +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxshared +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap1 +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxshared +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap1 +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxshared +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap1 +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxshared +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap1 +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxshared +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap1 +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxshared +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap1 +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxshared +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap1 +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxshared +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap1 +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxshared +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap1 +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxshared +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap1 +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxshared +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\iterator +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\sstream +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\vector +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfunctional +c:\users\yuanhui\desktop\project1-raytracer\src\cudaMat4.h +c:\users\yuanhui\desktop\project1-raytracer\src\raytraceKernel.h +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v4.0\include\thrust/random.h +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v4.0\include\thrust/detail/config.h +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v4.0\include\thrust/detail/config/config.h +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v4.0\include\thrust/detail/config/simple_defines.h +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v4.0\include\thrust/detail/config/compiler.h +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v4.0\include\thrust/detail/config/device_backend.h +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v4.0\include\thrust/detail/config/host_device.h +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v4.0\include\host_defines.h +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v4.0\include\thrust/detail/config/debug.h +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v4.0\include\thrust/detail/cstdint.h +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v4.0\include\thrust/random/discard_block_engine.h +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\iostream +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v4.0\include\thrust/random/detail/random_core_access.h +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v4.0\include\thrust/random/detail/discard_block_engine.inl +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v4.0\include\thrust/random/linear_congruential_engine.h +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v4.0\include\thrust/random/detail/linear_congruential_engine_discard.h +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v4.0\include\thrust/random/detail/mod.h +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v4.0\include\thrust/random/detail/linear_congruential_engine.inl +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v4.0\include\thrust/random/linear_feedback_shift_engine.h +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v4.0\include\thrust/random/detail/linear_feedback_shift_engine_wordmask.h +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v4.0\include\thrust/random/detail/linear_feedback_shift_engine.inl +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v4.0\include\thrust/random/subtract_with_carry_engine.h +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v4.0\include\thrust/random/detail/subtract_with_carry_engine.inl +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v4.0\include\thrust/random/xor_combine_engine.h +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v4.0\include\thrust/detail/type_traits.h +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v4.0\include\thrust/detail/type_traits/has_trivial_assign.h +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v4.0\include\thrust/random/detail/xor_combine_engine_max.h +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v4.0\include\thrust/detail/mpl/math.h +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v4.0\include\thrust/random/detail/xor_combine_engine.inl +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v4.0\include\thrust/random/uniform_int_distribution.h +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v4.0\include\thrust/pair.h +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v4.0\include\thrust/detail/pair.inl +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v4.0\include\thrust/detail/integer_traits.h +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v4.0\include\thrust/random/detail/uniform_int_distribution.inl +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v4.0\include\thrust/random/uniform_real_distribution.h +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v4.0\include\thrust/random/detail/uniform_real_distribution.inl +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v4.0\include\thrust/random/normal_distribution.h +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v4.0\include\thrust/random/detail/normal_distribution.inl +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\time.h +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\crtdefs.h +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\time.inl +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v4.0\include\cuda.h +c:\users\yuanhui\desktop\project1-raytracer\src\sceneStructs.h +C:/ProgramData/NVIDIA Corporation/NVIDIA GPU Computing SDK 4.0/C/common/inc\cutil_math.h +C:/ProgramData/NVIDIA Corporation/NVIDIA GPU Computing SDK 4.0/C/common/inc\cutil_inline.h +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v4.0\include\cuda.h +C:/ProgramData/NVIDIA Corporation/NVIDIA GPU Computing SDK 4.0/C/common/inc\cutil.h +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v4.0\include\cuda_runtime_api.h +C:/ProgramData/NVIDIA Corporation/NVIDIA GPU Computing SDK 4.0/C/common/inc\cutil_inline_bankchecker.h +C:/ProgramData/NVIDIA Corporation/NVIDIA GPU Computing SDK 4.0/C/common/inc\cutil_inline_runtime.h +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v4.0\include\cufft.h +c:\program files\nvidia gpu computing toolkit\cuda\v4.0\include\cuComplex.h +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\math.h +c:\program files\nvidia gpu computing toolkit\cuda\v4.0\include\vector_types.h +c:\program files\nvidia gpu computing toolkit\cuda\v4.0\include\driver_types.h +C:/ProgramData/NVIDIA Corporation/NVIDIA GPU Computing SDK 4.0/C/common/inc\cutil_inline_drvapi.h +c:\users\yuanhui\desktop\project1-raytracer\src\intersections.h +c:\users\yuanhui\desktop\project1-raytracer\src\sceneStructs.h +c:\users\yuanhui\desktop\project1-raytracer\src\cudaMat4.h +c:\users\yuanhui\desktop\project1-raytracer\src\glm/glm.hpp +c:\users\yuanhui\desktop\project1-raytracer\src\glm\core/_fixes.hpp +c:\users\yuanhui\desktop\project1-raytracer\src\utilities.h +c:\users\yuanhui\desktop\project1-raytracer\src\interactions.h +c:\users\yuanhui\desktop\project1-raytracer\src\intersections.h diff --git a/PROJ1_WIN/565Raytracer/Release/scene.obj b/PROJ1_WIN/565Raytracer/Release/scene.obj new file mode 100644 index 0000000..4fd69cb Binary files /dev/null and b/PROJ1_WIN/565Raytracer/Release/scene.obj differ diff --git a/PROJ1_WIN/565Raytracer/Release/stb_image.obj b/PROJ1_WIN/565Raytracer/Release/stb_image.obj new file mode 100644 index 0000000..f656a63 Binary files /dev/null and b/PROJ1_WIN/565Raytracer/Release/stb_image.obj differ diff --git a/PROJ1_WIN/565Raytracer/Release/stb_image_write.obj b/PROJ1_WIN/565Raytracer/Release/stb_image_write.obj new file mode 100644 index 0000000..53f75f5 Binary files /dev/null and b/PROJ1_WIN/565Raytracer/Release/stb_image_write.obj differ diff --git a/PROJ1_WIN/565Raytracer/Release/utilities.obj b/PROJ1_WIN/565Raytracer/Release/utilities.obj new file mode 100644 index 0000000..307c243 Binary files /dev/null and b/PROJ1_WIN/565Raytracer/Release/utilities.obj differ diff --git a/PROJ1_WIN/565Raytracer/Release/vc100.pdb b/PROJ1_WIN/565Raytracer/Release/vc100.pdb new file mode 100644 index 0000000..b9777f4 Binary files /dev/null and b/PROJ1_WIN/565Raytracer/Release/vc100.pdb differ diff --git a/PROJ1_WIN/565Raytracer/Win32/Debug/raytraceKernel.cu.obj b/PROJ1_WIN/565Raytracer/Win32/Debug/raytraceKernel.cu.obj new file mode 100644 index 0000000..535fa35 Binary files /dev/null and b/PROJ1_WIN/565Raytracer/Win32/Debug/raytraceKernel.cu.obj differ diff --git a/PROJ1_WIN/565Raytracer/Win32/Release/raytraceKernel.cu.obj b/PROJ1_WIN/565Raytracer/Win32/Release/raytraceKernel.cu.obj new file mode 100644 index 0000000..68e101e Binary files /dev/null and b/PROJ1_WIN/565Raytracer/Win32/Release/raytraceKernel.cu.obj differ diff --git a/PROJ1_WIN/565Raytracer/scene.txt b/PROJ1_WIN/565Raytracer/scene.txt new file mode 100644 index 0000000..a6192db --- /dev/null +++ b/PROJ1_WIN/565Raytracer/scene.txt @@ -0,0 +1,231 @@ +MAP 0 +FILE ../../textures/checker.jpg + +MAP 1 +FILE ../../textures/angrybird.jpg + +MAP 2 +FILE ../../textures/yoyo.jpg + +MATERIAL 0 //floor +RGB 0.2 0.2 0.9 +SPECEX 0 +SPECRGB 1 1 1 +REFL 1 +REFR 0 +REFRIOR 0 +SCATTER 0 +ABSCOEFF 0 0 0 +RSCTCOEFF 0 +EMITTANCE 0 + +MATERIAL 1 //diffuse sphere texture +RGB .2 .7 .5 +SPECEX 40 +SPECRGB 1 1 1 +REFL 0 +REFR 0 +REFRIOR 0 +SCATTER 0 +ABSCOEFF 0 0 0 +RSCTCOEFF 0 +EMITTANCE 0 + +MATERIAL 2 //specular sphere texture +RGB .15 .48 .1 +SPECEX 20 +SPECRGB 1 1 1 +REFL 1 +REFR 0 +REFRIOR 0 +SCATTER 0 +ABSCOEFF 0 0 0 +RSCTCOEFF 0 +EMITTANCE 0 + +MATERIAL 3 //red specular +RGB .63 .3 .1 +SPECEX 20 +SPECRGB 1 1 1 +REFL 0 +REFR 0 +REFRIOR 2 +SCATTER 0 +ABSCOEFF 0 0 0 +RSCTCOEFF 0 +EMITTANCE 0 + +MATERIAL 4 //white glossy +RGB 0.0 0.0 0.0 +SPECEX 40 +SPECRGB 1 1 1 +REFL 0 +REFR 1 +REFRIOR 2.2 +SCATTER 0 +ABSCOEFF 0 0 0 +RSCTCOEFF 0 +EMITTANCE 0 + +MATERIAL 5 //glass +RGB 0 0 0 +SPECEX 0 +SPECRGB 1 1 1 +REFL 0 +REFR 1 +REFRIOR 2.2 +SCATTER 0 +ABSCOEFF .02 5.1 5.7 +RSCTCOEFF 13 +EMITTANCE 0 + +MATERIAL 6 //green glossy +RGB .15 .48 .1 +SPECEX 0 +SPECRGB 1 1 1 +REFL 0 +REFR 0 +REFRIOR 2.6 +SCATTER 0 +ABSCOEFF 0 0 0 +RSCTCOEFF 0 +EMITTANCE 0 + +MATERIAL 7 //light +RGB 1 1 1 +SPECEX 0 +SPECRGB 0 0 0 +REFL 0 +REFR 0 +REFRIOR 0 +SCATTER 0 +ABSCOEFF 0 0 0 +RSCTCOEFF 0 +EMITTANCE 1 + +MATERIAL 8 //light +RGB 1 1 1 +SPECEX 0 +SPECRGB 0 0 0 +REFL 0 +REFR 0 +REFRIOR 0 +SCATTER 0 +ABSCOEFF 0 0 0 +RSCTCOEFF 0 +EMITTANCE 15 + +CAMERA +RES 800 800 +FOVY 25 +ITERATIONS 5000 +FILE renders/sampleScene.bmp +frame 0 +EYE 20 20 20 +VIEW -1 -1 -1 +UP -1 1 -1 +frame 1 +EYE 20 20 20 +VIEW -1 -1 -1 +UP -1 1 -1 + +OBJECT 0 +cube +material 0 +noramlmap +texturemap 0 +frame 0 +TRANS 0 0 0 +ROTAT 0 0 90 +SCALE .01 100 100 +frame 1 +TRANS 0 0 0 +ROTAT 0 0 90 +SCALE .01 100 100 + + + +OBJECT 1 +sphere +material 8 +noramlmap +texturemap +frame 0 +TRANS 30 30 30 +ROTAT 0 0 0 +SCALE 0.5 0.5 0.5 +frame 1 +TRANS 30 30 30 +ROTAT 0 0 0 +SCALE 0.5 0.5 0.5 + + +OBJECT 2 +sphere +material 1 +noramlmap +texturemap +frame 0 +TRANS -4 2 0 +ROTAT 0 180 0 +SCALE 3 3 3 +frame 1 +TRANS -4 2 0 +ROTAT 0 180 0 +SCALE 3 3 3 + +OBJECT 3 +cube +material 1 +noramlmap +texturemap 1 +frame 0 +TRANS 4 2 0 +ROTAT 0 0 0 +SCALE 3 3 3 +frame 1 +TRANS 4 2 0 +ROTAT 0 0 0 +SCALE 3 3 3 + +OBJECT 4 +cube +material 1 +noramlmap 1 +texturemap +frame 0 +TRANS 4 5 0 +ROTAT 0 0 0 +SCALE 3 3 3 +frame 1 +TRANS 4 5 0 +ROTAT 0 0 0 +SCALE 3 3 3 + +OBJECT 5 +sphere +material 2 +noramlmap +texturemap +frame 0 +TRANS 0 6 0 +ROTAT 0 0 0 +SCALE 3 3 3 +frame 1 +TRANS 0 6 0 +ROTAT 0 0 0 +SCALE 3 3 3 + +OBJECT 6 +sphere +material 3 +noramlmap 2 +texturemap +frame 0 +TRANS -4 2 4 +ROTAT 0 235 0 +SCALE 3 3 3 +frame 1 +TRANS -4 2 4 +ROTAT 0 235 0 +SCALE 3 3 3 diff --git a/PROJ1_WIN/565Raytracer/vc100.pdb b/PROJ1_WIN/565Raytracer/vc100.pdb new file mode 100644 index 0000000..a2efb86 Binary files /dev/null and b/PROJ1_WIN/565Raytracer/vc100.pdb differ diff --git a/PROJ1_WIN/Debug/565Raytracer.exe b/PROJ1_WIN/Debug/565Raytracer.exe new file mode 100644 index 0000000..37251e9 Binary files /dev/null and b/PROJ1_WIN/Debug/565Raytracer.exe differ diff --git a/PROJ1_WIN/Debug/565Raytracer.ilk b/PROJ1_WIN/Debug/565Raytracer.ilk new file mode 100644 index 0000000..0399225 Binary files /dev/null and b/PROJ1_WIN/Debug/565Raytracer.ilk differ diff --git a/PROJ1_WIN/Debug/565Raytracer.pdb b/PROJ1_WIN/Debug/565Raytracer.pdb new file mode 100644 index 0000000..cffcfab Binary files /dev/null and b/PROJ1_WIN/Debug/565Raytracer.pdb differ diff --git a/PROJ1_WIN/Debug/glut32.dll b/PROJ1_WIN/Debug/glut32.dll new file mode 100644 index 0000000..b141eb4 Binary files /dev/null and b/PROJ1_WIN/Debug/glut32.dll differ diff --git a/PROJ1_WIN/Release/565Raytracer.exe b/PROJ1_WIN/Release/565Raytracer.exe new file mode 100644 index 0000000..72e6963 Binary files /dev/null and b/PROJ1_WIN/Release/565Raytracer.exe differ diff --git a/PROJ1_WIN/Release/565Raytracer.pdb b/PROJ1_WIN/Release/565Raytracer.pdb new file mode 100644 index 0000000..1e62aba Binary files /dev/null and b/PROJ1_WIN/Release/565Raytracer.pdb differ diff --git a/PROJ1_WIN/ipch/565raytracer-31c1509f/565raytracer-19509b53.ipch b/PROJ1_WIN/ipch/565raytracer-31c1509f/565raytracer-19509b53.ipch new file mode 100644 index 0000000..c1c5f5b Binary files /dev/null and b/PROJ1_WIN/ipch/565raytracer-31c1509f/565raytracer-19509b53.ipch differ diff --git a/PROJ1_WIN/ipch/565raytracer-31c1509f/565raytracer-6cd7f319.ipch b/PROJ1_WIN/ipch/565raytracer-31c1509f/565raytracer-6cd7f319.ipch new file mode 100644 index 0000000..9756b11 Binary files /dev/null and b/PROJ1_WIN/ipch/565raytracer-31c1509f/565raytracer-6cd7f319.ipch differ diff --git a/PROJ1_WIN/shared/freeglut/freeglut.dll b/PROJ1_WIN/shared/freeglut/freeglut.dll index 4ec8893..c2bc13f 100755 Binary files a/PROJ1_WIN/shared/freeglut/freeglut.dll and b/PROJ1_WIN/shared/freeglut/freeglut.dll differ diff --git a/PROJ1_WIN/shared/freeglut/glut32.dll b/PROJ1_WIN/shared/freeglut/glut32.dll new file mode 100644 index 0000000..b141eb4 Binary files /dev/null and b/PROJ1_WIN/shared/freeglut/glut32.dll differ diff --git a/PROJ1_WIN/shared/freeglut/include/GL/freeglut.h b/PROJ1_WIN/shared/freeglut/include/GL/freeglut.h index 241b7fc..0e6f8c6 100755 --- a/PROJ1_WIN/shared/freeglut/include/GL/freeglut.h +++ b/PROJ1_WIN/shared/freeglut/include/GL/freeglut.h @@ -1,22 +1,22 @@ -#ifndef __FREEGLUT_H__ -#define __FREEGLUT_H__ - -/* - * freeglut.h - * - * The freeglut library include file - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS - * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL - * PAWEL W. OLSZTA BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER - * IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN - * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - */ - -#include "freeglut_std.h" -#include "freeglut_ext.h" - -/*** END OF FILE ***/ - -#endif /* __FREEGLUT_H__ */ +#ifndef __FREEGLUT_H__ +#define __FREEGLUT_H__ + +/* + * freeglut.h + * + * The freeglut library include file + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL + * PAWEL W. OLSZTA BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER + * IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN + * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + */ + +#include "freeglut_std.h" +#include "freeglut_ext.h" + +/*** END OF FILE ***/ + +#endif /* __FREEGLUT_H__ */ diff --git a/PROJ1_WIN/shared/freeglut/include/GL/freeglut_ext.h b/PROJ1_WIN/shared/freeglut/include/GL/freeglut_ext.h index 30d852c..6bf84b8 100755 --- a/PROJ1_WIN/shared/freeglut/include/GL/freeglut_ext.h +++ b/PROJ1_WIN/shared/freeglut/include/GL/freeglut_ext.h @@ -1,212 +1,236 @@ -#ifndef __FREEGLUT_EXT_H__ -#define __FREEGLUT_EXT_H__ - -/* - * freeglut_ext.h - * - * The non-GLUT-compatible extensions to the freeglut library include file - * - * Copyright (c) 1999-2000 Pawel W. Olszta. All Rights Reserved. - * Written by Pawel W. Olszta, - * Creation date: Thu Dec 2 1999 - * - * Permission is hereby granted, free of charge, to any person obtaining a - * copy of this software and associated documentation files (the "Software"), - * to deal in the Software without restriction, including without limitation - * the rights to use, copy, modify, merge, publish, distribute, sublicense, - * and/or sell copies of the Software, and to permit persons to whom the - * Software is furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included - * in all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS - * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL - * PAWEL W. OLSZTA BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER - * IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN - * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - */ - -#ifdef __cplusplus - extern "C" { -#endif - -/* - * Additional GLUT Key definitions for the Special key function - */ -#define GLUT_KEY_NUM_LOCK 0x006D -#define GLUT_KEY_BEGIN 0x006E -#define GLUT_KEY_DELETE 0x006F - -/* - * GLUT API Extension macro definitions -- behaviour when the user clicks on an "x" to close a window - */ -#define GLUT_ACTION_EXIT 0 -#define GLUT_ACTION_GLUTMAINLOOP_RETURNS 1 -#define GLUT_ACTION_CONTINUE_EXECUTION 2 - -/* - * Create a new rendering context when the user opens a new window? - */ -#define GLUT_CREATE_NEW_CONTEXT 0 -#define GLUT_USE_CURRENT_CONTEXT 1 - -/* - * Direct/Indirect rendering context options (has meaning only in Unix/X11) - */ -#define GLUT_FORCE_INDIRECT_CONTEXT 0 -#define GLUT_ALLOW_DIRECT_CONTEXT 1 -#define GLUT_TRY_DIRECT_CONTEXT 2 -#define GLUT_FORCE_DIRECT_CONTEXT 3 - -/* - * GLUT API Extension macro definitions -- the glutGet parameters - */ -#define GLUT_INIT_STATE 0x007C - -#define GLUT_ACTION_ON_WINDOW_CLOSE 0x01F9 - -#define GLUT_WINDOW_BORDER_WIDTH 0x01FA -#define GLUT_WINDOW_HEADER_HEIGHT 0x01FB - -#define GLUT_VERSION 0x01FC - -#define GLUT_RENDERING_CONTEXT 0x01FD -#define GLUT_DIRECT_RENDERING 0x01FE - -#define GLUT_FULL_SCREEN 0x01FF - -/* - * New tokens for glutInitDisplayMode. - * Only one GLUT_AUXn bit may be used at a time. - * Value 0x0400 is defined in OpenGLUT. - */ -#define GLUT_AUX 0x1000 - -#define GLUT_AUX1 0x1000 -#define GLUT_AUX2 0x2000 -#define GLUT_AUX3 0x4000 -#define GLUT_AUX4 0x8000 - -/* - * Context-related flags, see freeglut_state.c - */ -#define GLUT_INIT_MAJOR_VERSION 0x0200 -#define GLUT_INIT_MINOR_VERSION 0x0201 -#define GLUT_INIT_FLAGS 0x0202 -#define GLUT_INIT_PROFILE 0x0203 - -/* - * Flags for glutInitContextFlags, see freeglut_init.c - */ -#define GLUT_DEBUG 0x0001 -#define GLUT_FORWARD_COMPATIBLE 0x0002 - - -/* - * Flags for glutInitContextProfile, see freeglut_init.c - */ -#define GLUT_CORE_PROFILE 0x0001 -#define GLUT_COMPATIBILITY_PROFILE 0x0002 - -/* - * Process loop function, see freeglut_main.c - */ -FGAPI void FGAPIENTRY glutMainLoopEvent( void ); -FGAPI void FGAPIENTRY glutLeaveMainLoop( void ); -FGAPI void FGAPIENTRY glutExit ( void ); - -/* - * Window management functions, see freeglut_window.c - */ -FGAPI void FGAPIENTRY glutFullScreenToggle( void ); - -/* - * Window-specific callback functions, see freeglut_callbacks.c - */ -FGAPI void FGAPIENTRY glutMouseWheelFunc( void (* callback)( int, int, int, int ) ); -FGAPI void FGAPIENTRY glutCloseFunc( void (* callback)( void ) ); -FGAPI void FGAPIENTRY glutWMCloseFunc( void (* callback)( void ) ); -/* A. Donev: Also a destruction callback for menus */ -FGAPI void FGAPIENTRY glutMenuDestroyFunc( void (* callback)( void ) ); - -/* - * State setting and retrieval functions, see freeglut_state.c - */ -FGAPI void FGAPIENTRY glutSetOption ( GLenum option_flag, int value ); -FGAPI int * FGAPIENTRY glutGetModeValues(GLenum mode, int * size); -/* A.Donev: User-data manipulation */ -FGAPI void* FGAPIENTRY glutGetWindowData( void ); -FGAPI void FGAPIENTRY glutSetWindowData(void* data); -FGAPI void* FGAPIENTRY glutGetMenuData( void ); -FGAPI void FGAPIENTRY glutSetMenuData(void* data); - -/* - * Font stuff, see freeglut_font.c - */ -FGAPI int FGAPIENTRY glutBitmapHeight( void* font ); -FGAPI GLfloat FGAPIENTRY glutStrokeHeight( void* font ); -FGAPI void FGAPIENTRY glutBitmapString( void* font, const unsigned char *string ); -FGAPI void FGAPIENTRY glutStrokeString( void* font, const unsigned char *string ); - -/* - * Geometry functions, see freeglut_geometry.c - */ -FGAPI void FGAPIENTRY glutWireRhombicDodecahedron( void ); -FGAPI void FGAPIENTRY glutSolidRhombicDodecahedron( void ); -FGAPI void FGAPIENTRY glutWireSierpinskiSponge ( int num_levels, GLdouble offset[3], GLdouble scale ); -FGAPI void FGAPIENTRY glutSolidSierpinskiSponge ( int num_levels, GLdouble offset[3], GLdouble scale ); -FGAPI void FGAPIENTRY glutWireCylinder( GLdouble radius, GLdouble height, GLint slices, GLint stacks); -FGAPI void FGAPIENTRY glutSolidCylinder( GLdouble radius, GLdouble height, GLint slices, GLint stacks); - -/* - * Extension functions, see freeglut_ext.c - */ -typedef void (*GLUTproc)(); -FGAPI GLUTproc FGAPIENTRY glutGetProcAddress( const char *procName ); - -/* - * Joystick functions, see freeglut_joystick.c - */ -/* USE OF THESE FUNCTIONS IS DEPRECATED !!!!! */ -/* If you have a serious need for these functions in your application, please either - * contact the "freeglut" developer community at freeglut-developer@lists.sourceforge.net, - * switch to the OpenGLUT library, or else port your joystick functionality over to PLIB's - * "js" library. - */ -int glutJoystickGetNumAxes( int ident ); -int glutJoystickGetNumButtons( int ident ); -int glutJoystickNotWorking( int ident ); -float glutJoystickGetDeadBand( int ident, int axis ); -void glutJoystickSetDeadBand( int ident, int axis, float db ); -float glutJoystickGetSaturation( int ident, int axis ); -void glutJoystickSetSaturation( int ident, int axis, float st ); -void glutJoystickSetMinRange( int ident, float *axes ); -void glutJoystickSetMaxRange( int ident, float *axes ); -void glutJoystickSetCenter( int ident, float *axes ); -void glutJoystickGetMinRange( int ident, float *axes ); -void glutJoystickGetMaxRange( int ident, float *axes ); -void glutJoystickGetCenter( int ident, float *axes ); - -/* - * Initialization functions, see freeglut_init.c - */ -FGAPI void FGAPIENTRY glutInitContextVersion( int majorVersion, int minorVersion ); -FGAPI void FGAPIENTRY glutInitContextFlags( int flags ); -FGAPI void FGAPIENTRY glutInitContextProfile( int profile ); - -/* - * GLUT API macro definitions -- the display mode definitions - */ -#define GLUT_CAPTIONLESS 0x0400 -#define GLUT_BORDERLESS 0x0800 -#define GLUT_SRGB 0x1000 - -#ifdef __cplusplus - } -#endif - -/*** END OF FILE ***/ - -#endif /* __FREEGLUT_EXT_H__ */ +#ifndef __FREEGLUT_EXT_H__ +#define __FREEGLUT_EXT_H__ + +/* + * freeglut_ext.h + * + * The non-GLUT-compatible extensions to the freeglut library include file + * + * Copyright (c) 1999-2000 Pawel W. Olszta. All Rights Reserved. + * Written by Pawel W. Olszta, + * Creation date: Thu Dec 2 1999 + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included + * in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL + * PAWEL W. OLSZTA BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER + * IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN + * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + */ + +#ifdef __cplusplus + extern "C" { +#endif + +/* + * Additional GLUT Key definitions for the Special key function + */ +#define GLUT_KEY_NUM_LOCK 0x006D +#define GLUT_KEY_BEGIN 0x006E +#define GLUT_KEY_DELETE 0x006F +#define GLUT_KEY_SHIFT_L 0x0070 +#define GLUT_KEY_SHIFT_R 0x0071 +#define GLUT_KEY_CTRL_L 0x0072 +#define GLUT_KEY_CTRL_R 0x0073 +#define GLUT_KEY_ALT_L 0x0074 +#define GLUT_KEY_ALT_R 0x0075 + +/* + * GLUT API Extension macro definitions -- behaviour when the user clicks on an "x" to close a window + */ +#define GLUT_ACTION_EXIT 0 +#define GLUT_ACTION_GLUTMAINLOOP_RETURNS 1 +#define GLUT_ACTION_CONTINUE_EXECUTION 2 + +/* + * Create a new rendering context when the user opens a new window? + */ +#define GLUT_CREATE_NEW_CONTEXT 0 +#define GLUT_USE_CURRENT_CONTEXT 1 + +/* + * Direct/Indirect rendering context options (has meaning only in Unix/X11) + */ +#define GLUT_FORCE_INDIRECT_CONTEXT 0 +#define GLUT_ALLOW_DIRECT_CONTEXT 1 +#define GLUT_TRY_DIRECT_CONTEXT 2 +#define GLUT_FORCE_DIRECT_CONTEXT 3 + +/* + * GLUT API Extension macro definitions -- the glutGet parameters + */ +#define GLUT_INIT_STATE 0x007C + +#define GLUT_ACTION_ON_WINDOW_CLOSE 0x01F9 + +#define GLUT_WINDOW_BORDER_WIDTH 0x01FA +#define GLUT_WINDOW_HEADER_HEIGHT 0x01FB + +#define GLUT_VERSION 0x01FC + +#define GLUT_RENDERING_CONTEXT 0x01FD +#define GLUT_DIRECT_RENDERING 0x01FE + +#define GLUT_FULL_SCREEN 0x01FF + +/* + * New tokens for glutInitDisplayMode. + * Only one GLUT_AUXn bit may be used at a time. + * Value 0x0400 is defined in OpenGLUT. + */ +#define GLUT_AUX 0x1000 + +#define GLUT_AUX1 0x1000 +#define GLUT_AUX2 0x2000 +#define GLUT_AUX3 0x4000 +#define GLUT_AUX4 0x8000 + +/* + * Context-related flags, see freeglut_state.c + */ +#define GLUT_INIT_MAJOR_VERSION 0x0200 +#define GLUT_INIT_MINOR_VERSION 0x0201 +#define GLUT_INIT_FLAGS 0x0202 +#define GLUT_INIT_PROFILE 0x0203 + +/* + * Flags for glutInitContextFlags, see freeglut_init.c + */ +#define GLUT_DEBUG 0x0001 +#define GLUT_FORWARD_COMPATIBLE 0x0002 + + +/* + * Flags for glutInitContextProfile, see freeglut_init.c + */ +#define GLUT_CORE_PROFILE 0x0001 +#define GLUT_COMPATIBILITY_PROFILE 0x0002 + +/* + * Process loop function, see freeglut_main.c + */ +FGAPI void FGAPIENTRY glutMainLoopEvent( void ); +FGAPI void FGAPIENTRY glutLeaveMainLoop( void ); +FGAPI void FGAPIENTRY glutExit ( void ); + +/* + * Window management functions, see freeglut_window.c + */ +FGAPI void FGAPIENTRY glutFullScreenToggle( void ); +FGAPI void FGAPIENTRY glutLeaveFullScreen( void ); + +/* + * Window-specific callback functions, see freeglut_callbacks.c + */ +FGAPI void FGAPIENTRY glutMouseWheelFunc( void (* callback)( int, int, int, int ) ); +FGAPI void FGAPIENTRY glutCloseFunc( void (* callback)( void ) ); +FGAPI void FGAPIENTRY glutWMCloseFunc( void (* callback)( void ) ); +/* A. Donev: Also a destruction callback for menus */ +FGAPI void FGAPIENTRY glutMenuDestroyFunc( void (* callback)( void ) ); + +/* + * State setting and retrieval functions, see freeglut_state.c + */ +FGAPI void FGAPIENTRY glutSetOption ( GLenum option_flag, int value ); +FGAPI int * FGAPIENTRY glutGetModeValues(GLenum mode, int * size); +/* A.Donev: User-data manipulation */ +FGAPI void* FGAPIENTRY glutGetWindowData( void ); +FGAPI void FGAPIENTRY glutSetWindowData(void* data); +FGAPI void* FGAPIENTRY glutGetMenuData( void ); +FGAPI void FGAPIENTRY glutSetMenuData(void* data); + +/* + * Font stuff, see freeglut_font.c + */ +FGAPI int FGAPIENTRY glutBitmapHeight( void* font ); +FGAPI GLfloat FGAPIENTRY glutStrokeHeight( void* font ); +FGAPI void FGAPIENTRY glutBitmapString( void* font, const unsigned char *string ); +FGAPI void FGAPIENTRY glutStrokeString( void* font, const unsigned char *string ); + +/* + * Geometry functions, see freeglut_geometry.c + */ +FGAPI void FGAPIENTRY glutWireRhombicDodecahedron( void ); +FGAPI void FGAPIENTRY glutSolidRhombicDodecahedron( void ); +FGAPI void FGAPIENTRY glutWireSierpinskiSponge ( int num_levels, GLdouble offset[3], GLdouble scale ); +FGAPI void FGAPIENTRY glutSolidSierpinskiSponge ( int num_levels, GLdouble offset[3], GLdouble scale ); +FGAPI void FGAPIENTRY glutWireCylinder( GLdouble radius, GLdouble height, GLint slices, GLint stacks); +FGAPI void FGAPIENTRY glutSolidCylinder( GLdouble radius, GLdouble height, GLint slices, GLint stacks); + +/* + * Extension functions, see freeglut_ext.c + */ +typedef void (*GLUTproc)(); +FGAPI GLUTproc FGAPIENTRY glutGetProcAddress( const char *procName ); + +/* + * Multi-touch/multi-pointer extensions + */ + +#define GLUT_HAS_MULTI 1 + +FGAPI void FGAPIENTRY glutMultiEntryFunc( void (* callback)( int, int ) ); +FGAPI void FGAPIENTRY glutMultiButtonFunc( void (* callback)( int, int, int, int, int ) ); +FGAPI void FGAPIENTRY glutMultiMotionFunc( void (* callback)( int, int, int ) ); +FGAPI void FGAPIENTRY glutMultiPassiveFunc( void (* callback)( int, int, int ) ); + +/* + * Joystick functions, see freeglut_joystick.c + */ +/* USE OF THESE FUNCTIONS IS DEPRECATED !!!!! */ +/* If you have a serious need for these functions in your application, please either + * contact the "freeglut" developer community at freeglut-developer@lists.sourceforge.net, + * switch to the OpenGLUT library, or else port your joystick functionality over to PLIB's + * "js" library. + */ +int glutJoystickGetNumAxes( int ident ); +int glutJoystickGetNumButtons( int ident ); +int glutJoystickNotWorking( int ident ); +float glutJoystickGetDeadBand( int ident, int axis ); +void glutJoystickSetDeadBand( int ident, int axis, float db ); +float glutJoystickGetSaturation( int ident, int axis ); +void glutJoystickSetSaturation( int ident, int axis, float st ); +void glutJoystickSetMinRange( int ident, float *axes ); +void glutJoystickSetMaxRange( int ident, float *axes ); +void glutJoystickSetCenter( int ident, float *axes ); +void glutJoystickGetMinRange( int ident, float *axes ); +void glutJoystickGetMaxRange( int ident, float *axes ); +void glutJoystickGetCenter( int ident, float *axes ); + +/* + * Initialization functions, see freeglut_init.c + */ +FGAPI void FGAPIENTRY glutInitContextVersion( int majorVersion, int minorVersion ); +FGAPI void FGAPIENTRY glutInitContextFlags( int flags ); +FGAPI void FGAPIENTRY glutInitContextProfile( int profile ); + +/* to get the typedef for va_list */ +#include + +FGAPI void FGAPIENTRY glutInitErrorFunc( void (* vError)( const char *fmt, va_list ap ) ); +FGAPI void FGAPIENTRY glutInitWarningFunc( void (* vWarning)( const char *fmt, va_list ap ) ); + +/* + * GLUT API macro definitions -- the display mode definitions + */ +#define GLUT_CAPTIONLESS 0x0400 +#define GLUT_BORDERLESS 0x0800 +#define GLUT_SRGB 0x1000 + +#ifdef __cplusplus + } +#endif + +/*** END OF FILE ***/ + +#endif /* __FREEGLUT_EXT_H__ */ diff --git a/PROJ1_WIN/shared/freeglut/include/GL/freeglut_std.h b/PROJ1_WIN/shared/freeglut/include/GL/freeglut_std.h index 1b396f4..ba1b716 100755 --- a/PROJ1_WIN/shared/freeglut/include/GL/freeglut_std.h +++ b/PROJ1_WIN/shared/freeglut/include/GL/freeglut_std.h @@ -1,626 +1,628 @@ -#ifndef __FREEGLUT_STD_H__ -#define __FREEGLUT_STD_H__ - -/* - * freeglut_std.h - * - * The GLUT-compatible part of the freeglut library include file - * - * Copyright (c) 1999-2000 Pawel W. Olszta. All Rights Reserved. - * Written by Pawel W. Olszta, - * Creation date: Thu Dec 2 1999 - * - * Permission is hereby granted, free of charge, to any person obtaining a - * copy of this software and associated documentation files (the "Software"), - * to deal in the Software without restriction, including without limitation - * the rights to use, copy, modify, merge, publish, distribute, sublicense, - * and/or sell copies of the Software, and to permit persons to whom the - * Software is furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included - * in all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS - * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL - * PAWEL W. OLSZTA BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER - * IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN - * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - */ - -#ifdef __cplusplus - extern "C" { -#endif - -/* - * Under windows, we have to differentiate between static and dynamic libraries - */ -#ifdef _WIN32 -/* #pragma may not be supported by some compilers. - * Discussion by FreeGLUT developers suggests that - * Visual C++ specific code involving pragmas may - * need to move to a separate header. 24th Dec 2003 - */ - -/* Define FREEGLUT_LIB_PRAGMAS to 1 to include library - * pragmas or to 1 to exclude library pragmas. - * The default behavior depends on the compiler/platform. - */ -# ifndef FREEGLUT_LIB_PRAGMAS -# if ( defined(_MSC_VER) || defined(__WATCOMC__) ) && !defined(_WIN32_WCE) -# define FREEGLUT_LIB_PRAGMAS 1 -# else -# define FREEGLUT_LIB_PRAGMAS 0 -# endif -# endif - -# ifndef WIN32_LEAN_AND_MEAN -# define WIN32_LEAN_AND_MEAN 1 -# endif -# define NOMINMAX -# include - -/* Windows static library */ -# ifdef FREEGLUT_STATIC - -# define FGAPI -# define FGAPIENTRY - - /* Link with Win32 static freeglut lib */ -# if FREEGLUT_LIB_PRAGMAS -# pragma comment (lib, "freeglut_static.lib") -# endif - -/* Windows shared library (DLL) */ -# else - -# define FGAPIENTRY __stdcall -# if defined(FREEGLUT_EXPORTS) -# define FGAPI __declspec(dllexport) -# else -# define FGAPI __declspec(dllimport) - - /* Link with Win32 shared freeglut lib */ -# if FREEGLUT_LIB_PRAGMAS -# pragma comment (lib, "freeglut.lib") -# endif - -# endif - -# endif - -/* Drag in other Windows libraries as required by FreeGLUT */ -# if FREEGLUT_LIB_PRAGMAS -# pragma comment (lib, "glu32.lib") /* link OpenGL Utility lib */ -# pragma comment (lib, "opengl32.lib") /* link Microsoft OpenGL lib */ -# pragma comment (lib, "gdi32.lib") /* link Windows GDI lib */ -# pragma comment (lib, "winmm.lib") /* link Windows MultiMedia lib */ -# pragma comment (lib, "user32.lib") /* link Windows user lib */ -# endif - -#else - -/* Non-Windows definition of FGAPI and FGAPIENTRY */ -# define FGAPI -# define FGAPIENTRY - -#endif - -/* - * The freeglut and GLUT API versions - */ -#define FREEGLUT 1 -#define GLUT_API_VERSION 4 -#define FREEGLUT_VERSION_2_0 1 -#define GLUT_XLIB_IMPLEMENTATION 13 - -/* - * Always include OpenGL and GLU headers - */ -#include -#include - -/* - * GLUT API macro definitions -- the special key codes: - */ -#define GLUT_KEY_F1 0x0001 -#define GLUT_KEY_F2 0x0002 -#define GLUT_KEY_F3 0x0003 -#define GLUT_KEY_F4 0x0004 -#define GLUT_KEY_F5 0x0005 -#define GLUT_KEY_F6 0x0006 -#define GLUT_KEY_F7 0x0007 -#define GLUT_KEY_F8 0x0008 -#define GLUT_KEY_F9 0x0009 -#define GLUT_KEY_F10 0x000A -#define GLUT_KEY_F11 0x000B -#define GLUT_KEY_F12 0x000C -#define GLUT_KEY_LEFT 0x0064 -#define GLUT_KEY_UP 0x0065 -#define GLUT_KEY_RIGHT 0x0066 -#define GLUT_KEY_DOWN 0x0067 -#define GLUT_KEY_PAGE_UP 0x0068 -#define GLUT_KEY_PAGE_DOWN 0x0069 -#define GLUT_KEY_HOME 0x006A -#define GLUT_KEY_END 0x006B -#define GLUT_KEY_INSERT 0x006C - -/* - * GLUT API macro definitions -- mouse state definitions - */ -#define GLUT_LEFT_BUTTON 0x0000 -#define GLUT_MIDDLE_BUTTON 0x0001 -#define GLUT_RIGHT_BUTTON 0x0002 -#define GLUT_DOWN 0x0000 -#define GLUT_UP 0x0001 -#define GLUT_LEFT 0x0000 -#define GLUT_ENTERED 0x0001 - -/* - * GLUT API macro definitions -- the display mode definitions - */ -#define GLUT_RGB 0x0000 -#define GLUT_RGBA 0x0000 -#define GLUT_INDEX 0x0001 -#define GLUT_SINGLE 0x0000 -#define GLUT_DOUBLE 0x0002 -#define GLUT_ACCUM 0x0004 -#define GLUT_ALPHA 0x0008 -#define GLUT_DEPTH 0x0010 -#define GLUT_STENCIL 0x0020 -#define GLUT_MULTISAMPLE 0x0080 -#define GLUT_STEREO 0x0100 -#define GLUT_LUMINANCE 0x0200 - -/* - * GLUT API macro definitions -- windows and menu related definitions - */ -#define GLUT_MENU_NOT_IN_USE 0x0000 -#define GLUT_MENU_IN_USE 0x0001 -#define GLUT_NOT_VISIBLE 0x0000 -#define GLUT_VISIBLE 0x0001 -#define GLUT_HIDDEN 0x0000 -#define GLUT_FULLY_RETAINED 0x0001 -#define GLUT_PARTIALLY_RETAINED 0x0002 -#define GLUT_FULLY_COVERED 0x0003 - -/* - * GLUT API macro definitions -- fonts definitions - * - * Steve Baker suggested to make it binary compatible with GLUT: - */ -#if defined(_MSC_VER) || defined(__CYGWIN__) || defined(__MINGW32__) || defined(__WATCOMC__) -# define GLUT_STROKE_ROMAN ((void *)0x0000) -# define GLUT_STROKE_MONO_ROMAN ((void *)0x0001) -# define GLUT_BITMAP_9_BY_15 ((void *)0x0002) -# define GLUT_BITMAP_8_BY_13 ((void *)0x0003) -# define GLUT_BITMAP_TIMES_ROMAN_10 ((void *)0x0004) -# define GLUT_BITMAP_TIMES_ROMAN_24 ((void *)0x0005) -# define GLUT_BITMAP_HELVETICA_10 ((void *)0x0006) -# define GLUT_BITMAP_HELVETICA_12 ((void *)0x0007) -# define GLUT_BITMAP_HELVETICA_18 ((void *)0x0008) -#else - /* - * I don't really know if it's a good idea... But here it goes: - */ - extern void* glutStrokeRoman; - extern void* glutStrokeMonoRoman; - extern void* glutBitmap9By15; - extern void* glutBitmap8By13; - extern void* glutBitmapTimesRoman10; - extern void* glutBitmapTimesRoman24; - extern void* glutBitmapHelvetica10; - extern void* glutBitmapHelvetica12; - extern void* glutBitmapHelvetica18; - - /* - * Those pointers will be used by following definitions: - */ -# define GLUT_STROKE_ROMAN ((void *) &glutStrokeRoman) -# define GLUT_STROKE_MONO_ROMAN ((void *) &glutStrokeMonoRoman) -# define GLUT_BITMAP_9_BY_15 ((void *) &glutBitmap9By15) -# define GLUT_BITMAP_8_BY_13 ((void *) &glutBitmap8By13) -# define GLUT_BITMAP_TIMES_ROMAN_10 ((void *) &glutBitmapTimesRoman10) -# define GLUT_BITMAP_TIMES_ROMAN_24 ((void *) &glutBitmapTimesRoman24) -# define GLUT_BITMAP_HELVETICA_10 ((void *) &glutBitmapHelvetica10) -# define GLUT_BITMAP_HELVETICA_12 ((void *) &glutBitmapHelvetica12) -# define GLUT_BITMAP_HELVETICA_18 ((void *) &glutBitmapHelvetica18) -#endif - -/* - * GLUT API macro definitions -- the glutGet parameters - */ -#define GLUT_WINDOW_X 0x0064 -#define GLUT_WINDOW_Y 0x0065 -#define GLUT_WINDOW_WIDTH 0x0066 -#define GLUT_WINDOW_HEIGHT 0x0067 -#define GLUT_WINDOW_BUFFER_SIZE 0x0068 -#define GLUT_WINDOW_STENCIL_SIZE 0x0069 -#define GLUT_WINDOW_DEPTH_SIZE 0x006A -#define GLUT_WINDOW_RED_SIZE 0x006B -#define GLUT_WINDOW_GREEN_SIZE 0x006C -#define GLUT_WINDOW_BLUE_SIZE 0x006D -#define GLUT_WINDOW_ALPHA_SIZE 0x006E -#define GLUT_WINDOW_ACCUM_RED_SIZE 0x006F -#define GLUT_WINDOW_ACCUM_GREEN_SIZE 0x0070 -#define GLUT_WINDOW_ACCUM_BLUE_SIZE 0x0071 -#define GLUT_WINDOW_ACCUM_ALPHA_SIZE 0x0072 -#define GLUT_WINDOW_DOUBLEBUFFER 0x0073 -#define GLUT_WINDOW_RGBA 0x0074 -#define GLUT_WINDOW_PARENT 0x0075 -#define GLUT_WINDOW_NUM_CHILDREN 0x0076 -#define GLUT_WINDOW_COLORMAP_SIZE 0x0077 -#define GLUT_WINDOW_NUM_SAMPLES 0x0078 -#define GLUT_WINDOW_STEREO 0x0079 -#define GLUT_WINDOW_CURSOR 0x007A - -#define GLUT_SCREEN_WIDTH 0x00C8 -#define GLUT_SCREEN_HEIGHT 0x00C9 -#define GLUT_SCREEN_WIDTH_MM 0x00CA -#define GLUT_SCREEN_HEIGHT_MM 0x00CB -#define GLUT_MENU_NUM_ITEMS 0x012C -#define GLUT_DISPLAY_MODE_POSSIBLE 0x0190 -#define GLUT_INIT_WINDOW_X 0x01F4 -#define GLUT_INIT_WINDOW_Y 0x01F5 -#define GLUT_INIT_WINDOW_WIDTH 0x01F6 -#define GLUT_INIT_WINDOW_HEIGHT 0x01F7 -#define GLUT_INIT_DISPLAY_MODE 0x01F8 -#define GLUT_ELAPSED_TIME 0x02BC -#define GLUT_WINDOW_FORMAT_ID 0x007B - -/* - * GLUT API macro definitions -- the glutDeviceGet parameters - */ -#define GLUT_HAS_KEYBOARD 0x0258 -#define GLUT_HAS_MOUSE 0x0259 -#define GLUT_HAS_SPACEBALL 0x025A -#define GLUT_HAS_DIAL_AND_BUTTON_BOX 0x025B -#define GLUT_HAS_TABLET 0x025C -#define GLUT_NUM_MOUSE_BUTTONS 0x025D -#define GLUT_NUM_SPACEBALL_BUTTONS 0x025E -#define GLUT_NUM_BUTTON_BOX_BUTTONS 0x025F -#define GLUT_NUM_DIALS 0x0260 -#define GLUT_NUM_TABLET_BUTTONS 0x0261 -#define GLUT_DEVICE_IGNORE_KEY_REPEAT 0x0262 -#define GLUT_DEVICE_KEY_REPEAT 0x0263 -#define GLUT_HAS_JOYSTICK 0x0264 -#define GLUT_OWNS_JOYSTICK 0x0265 -#define GLUT_JOYSTICK_BUTTONS 0x0266 -#define GLUT_JOYSTICK_AXES 0x0267 -#define GLUT_JOYSTICK_POLL_RATE 0x0268 - -/* - * GLUT API macro definitions -- the glutLayerGet parameters - */ -#define GLUT_OVERLAY_POSSIBLE 0x0320 -#define GLUT_LAYER_IN_USE 0x0321 -#define GLUT_HAS_OVERLAY 0x0322 -#define GLUT_TRANSPARENT_INDEX 0x0323 -#define GLUT_NORMAL_DAMAGED 0x0324 -#define GLUT_OVERLAY_DAMAGED 0x0325 - -/* - * GLUT API macro definitions -- the glutVideoResizeGet parameters - */ -#define GLUT_VIDEO_RESIZE_POSSIBLE 0x0384 -#define GLUT_VIDEO_RESIZE_IN_USE 0x0385 -#define GLUT_VIDEO_RESIZE_X_DELTA 0x0386 -#define GLUT_VIDEO_RESIZE_Y_DELTA 0x0387 -#define GLUT_VIDEO_RESIZE_WIDTH_DELTA 0x0388 -#define GLUT_VIDEO_RESIZE_HEIGHT_DELTA 0x0389 -#define GLUT_VIDEO_RESIZE_X 0x038A -#define GLUT_VIDEO_RESIZE_Y 0x038B -#define GLUT_VIDEO_RESIZE_WIDTH 0x038C -#define GLUT_VIDEO_RESIZE_HEIGHT 0x038D - -/* - * GLUT API macro definitions -- the glutUseLayer parameters - */ -#define GLUT_NORMAL 0x0000 -#define GLUT_OVERLAY 0x0001 - -/* - * GLUT API macro definitions -- the glutGetModifiers parameters - */ -#define GLUT_ACTIVE_SHIFT 0x0001 -#define GLUT_ACTIVE_CTRL 0x0002 -#define GLUT_ACTIVE_ALT 0x0004 - -/* - * GLUT API macro definitions -- the glutSetCursor parameters - */ -#define GLUT_CURSOR_RIGHT_ARROW 0x0000 -#define GLUT_CURSOR_LEFT_ARROW 0x0001 -#define GLUT_CURSOR_INFO 0x0002 -#define GLUT_CURSOR_DESTROY 0x0003 -#define GLUT_CURSOR_HELP 0x0004 -#define GLUT_CURSOR_CYCLE 0x0005 -#define GLUT_CURSOR_SPRAY 0x0006 -#define GLUT_CURSOR_WAIT 0x0007 -#define GLUT_CURSOR_TEXT 0x0008 -#define GLUT_CURSOR_CROSSHAIR 0x0009 -#define GLUT_CURSOR_UP_DOWN 0x000A -#define GLUT_CURSOR_LEFT_RIGHT 0x000B -#define GLUT_CURSOR_TOP_SIDE 0x000C -#define GLUT_CURSOR_BOTTOM_SIDE 0x000D -#define GLUT_CURSOR_LEFT_SIDE 0x000E -#define GLUT_CURSOR_RIGHT_SIDE 0x000F -#define GLUT_CURSOR_TOP_LEFT_CORNER 0x0010 -#define GLUT_CURSOR_TOP_RIGHT_CORNER 0x0011 -#define GLUT_CURSOR_BOTTOM_RIGHT_CORNER 0x0012 -#define GLUT_CURSOR_BOTTOM_LEFT_CORNER 0x0013 -#define GLUT_CURSOR_INHERIT 0x0064 -#define GLUT_CURSOR_NONE 0x0065 -#define GLUT_CURSOR_FULL_CROSSHAIR 0x0066 - -/* - * GLUT API macro definitions -- RGB color component specification definitions - */ -#define GLUT_RED 0x0000 -#define GLUT_GREEN 0x0001 -#define GLUT_BLUE 0x0002 - -/* - * GLUT API macro definitions -- additional keyboard and joystick definitions - */ -#define GLUT_KEY_REPEAT_OFF 0x0000 -#define GLUT_KEY_REPEAT_ON 0x0001 -#define GLUT_KEY_REPEAT_DEFAULT 0x0002 - -#define GLUT_JOYSTICK_BUTTON_A 0x0001 -#define GLUT_JOYSTICK_BUTTON_B 0x0002 -#define GLUT_JOYSTICK_BUTTON_C 0x0004 -#define GLUT_JOYSTICK_BUTTON_D 0x0008 - -/* - * GLUT API macro definitions -- game mode definitions - */ -#define GLUT_GAME_MODE_ACTIVE 0x0000 -#define GLUT_GAME_MODE_POSSIBLE 0x0001 -#define GLUT_GAME_MODE_WIDTH 0x0002 -#define GLUT_GAME_MODE_HEIGHT 0x0003 -#define GLUT_GAME_MODE_PIXEL_DEPTH 0x0004 -#define GLUT_GAME_MODE_REFRESH_RATE 0x0005 -#define GLUT_GAME_MODE_DISPLAY_CHANGED 0x0006 - -/* - * Initialization functions, see fglut_init.c - */ -FGAPI void FGAPIENTRY glutInit( int* pargc, char** argv ); -FGAPI void FGAPIENTRY glutInitWindowPosition( int x, int y ); -FGAPI void FGAPIENTRY glutInitWindowSize( int width, int height ); -FGAPI void FGAPIENTRY glutInitDisplayMode( unsigned int displayMode ); -FGAPI void FGAPIENTRY glutInitDisplayString( const char* displayMode ); - -/* - * Process loop function, see freeglut_main.c - */ -FGAPI void FGAPIENTRY glutMainLoop( void ); - -/* - * Window management functions, see freeglut_window.c - */ -FGAPI int FGAPIENTRY glutCreateWindow( const char* title ); -FGAPI int FGAPIENTRY glutCreateSubWindow( int window, int x, int y, int width, int height ); -FGAPI void FGAPIENTRY glutDestroyWindow( int window ); -FGAPI void FGAPIENTRY glutSetWindow( int window ); -FGAPI int FGAPIENTRY glutGetWindow( void ); -FGAPI void FGAPIENTRY glutSetWindowTitle( const char* title ); -FGAPI void FGAPIENTRY glutSetIconTitle( const char* title ); -FGAPI void FGAPIENTRY glutReshapeWindow( int width, int height ); -FGAPI void FGAPIENTRY glutPositionWindow( int x, int y ); -FGAPI void FGAPIENTRY glutShowWindow( void ); -FGAPI void FGAPIENTRY glutHideWindow( void ); -FGAPI void FGAPIENTRY glutIconifyWindow( void ); -FGAPI void FGAPIENTRY glutPushWindow( void ); -FGAPI void FGAPIENTRY glutPopWindow( void ); -FGAPI void FGAPIENTRY glutFullScreen( void ); - -/* - * Display-connected functions, see freeglut_display.c - */ -FGAPI void FGAPIENTRY glutPostWindowRedisplay( int window ); -FGAPI void FGAPIENTRY glutPostRedisplay( void ); -FGAPI void FGAPIENTRY glutSwapBuffers( void ); - -/* - * Mouse cursor functions, see freeglut_cursor.c - */ -FGAPI void FGAPIENTRY glutWarpPointer( int x, int y ); -FGAPI void FGAPIENTRY glutSetCursor( int cursor ); - -/* - * Overlay stuff, see freeglut_overlay.c - */ -FGAPI void FGAPIENTRY glutEstablishOverlay( void ); -FGAPI void FGAPIENTRY glutRemoveOverlay( void ); -FGAPI void FGAPIENTRY glutUseLayer( GLenum layer ); -FGAPI void FGAPIENTRY glutPostOverlayRedisplay( void ); -FGAPI void FGAPIENTRY glutPostWindowOverlayRedisplay( int window ); -FGAPI void FGAPIENTRY glutShowOverlay( void ); -FGAPI void FGAPIENTRY glutHideOverlay( void ); - -/* - * Menu stuff, see freeglut_menu.c - */ -FGAPI int FGAPIENTRY glutCreateMenu( void (* callback)( int menu ) ); -FGAPI void FGAPIENTRY glutDestroyMenu( int menu ); -FGAPI int FGAPIENTRY glutGetMenu( void ); -FGAPI void FGAPIENTRY glutSetMenu( int menu ); -FGAPI void FGAPIENTRY glutAddMenuEntry( const char* label, int value ); -FGAPI void FGAPIENTRY glutAddSubMenu( const char* label, int subMenu ); -FGAPI void FGAPIENTRY glutChangeToMenuEntry( int item, const char* label, int value ); -FGAPI void FGAPIENTRY glutChangeToSubMenu( int item, const char* label, int value ); -FGAPI void FGAPIENTRY glutRemoveMenuItem( int item ); -FGAPI void FGAPIENTRY glutAttachMenu( int button ); -FGAPI void FGAPIENTRY glutDetachMenu( int button ); - -/* - * Global callback functions, see freeglut_callbacks.c - */ -FGAPI void FGAPIENTRY glutTimerFunc( unsigned int time, void (* callback)( int ), int value ); -FGAPI void FGAPIENTRY glutIdleFunc( void (* callback)( void ) ); - -/* - * Window-specific callback functions, see freeglut_callbacks.c - */ -FGAPI void FGAPIENTRY glutKeyboardFunc( void (* callback)( unsigned char, int, int ) ); -FGAPI void FGAPIENTRY glutSpecialFunc( void (* callback)( int, int, int ) ); -FGAPI void FGAPIENTRY glutReshapeFunc( void (* callback)( int, int ) ); -FGAPI void FGAPIENTRY glutVisibilityFunc( void (* callback)( int ) ); -FGAPI void FGAPIENTRY glutDisplayFunc( void (* callback)( void ) ); -FGAPI void FGAPIENTRY glutMouseFunc( void (* callback)( int, int, int, int ) ); -FGAPI void FGAPIENTRY glutMotionFunc( void (* callback)( int, int ) ); -FGAPI void FGAPIENTRY glutPassiveMotionFunc( void (* callback)( int, int ) ); -FGAPI void FGAPIENTRY glutEntryFunc( void (* callback)( int ) ); - -FGAPI void FGAPIENTRY glutKeyboardUpFunc( void (* callback)( unsigned char, int, int ) ); -FGAPI void FGAPIENTRY glutSpecialUpFunc( void (* callback)( int, int, int ) ); -FGAPI void FGAPIENTRY glutJoystickFunc( void (* callback)( unsigned int, int, int, int ), int pollInterval ); -FGAPI void FGAPIENTRY glutMenuStateFunc( void (* callback)( int ) ); -FGAPI void FGAPIENTRY glutMenuStatusFunc( void (* callback)( int, int, int ) ); -FGAPI void FGAPIENTRY glutOverlayDisplayFunc( void (* callback)( void ) ); -FGAPI void FGAPIENTRY glutWindowStatusFunc( void (* callback)( int ) ); - -FGAPI void FGAPIENTRY glutSpaceballMotionFunc( void (* callback)( int, int, int ) ); -FGAPI void FGAPIENTRY glutSpaceballRotateFunc( void (* callback)( int, int, int ) ); -FGAPI void FGAPIENTRY glutSpaceballButtonFunc( void (* callback)( int, int ) ); -FGAPI void FGAPIENTRY glutButtonBoxFunc( void (* callback)( int, int ) ); -FGAPI void FGAPIENTRY glutDialsFunc( void (* callback)( int, int ) ); -FGAPI void FGAPIENTRY glutTabletMotionFunc( void (* callback)( int, int ) ); -FGAPI void FGAPIENTRY glutTabletButtonFunc( void (* callback)( int, int, int, int ) ); - -/* - * State setting and retrieval functions, see freeglut_state.c - */ -FGAPI int FGAPIENTRY glutGet( GLenum query ); -FGAPI int FGAPIENTRY glutDeviceGet( GLenum query ); -FGAPI int FGAPIENTRY glutGetModifiers( void ); -FGAPI int FGAPIENTRY glutLayerGet( GLenum query ); - -/* - * Font stuff, see freeglut_font.c - */ -FGAPI void FGAPIENTRY glutBitmapCharacter( void* font, int character ); -FGAPI int FGAPIENTRY glutBitmapWidth( void* font, int character ); -FGAPI void FGAPIENTRY glutStrokeCharacter( void* font, int character ); -FGAPI int FGAPIENTRY glutStrokeWidth( void* font, int character ); -FGAPI int FGAPIENTRY glutBitmapLength( void* font, const unsigned char* string ); -FGAPI int FGAPIENTRY glutStrokeLength( void* font, const unsigned char* string ); - -/* - * Geometry functions, see freeglut_geometry.c - */ -FGAPI void FGAPIENTRY glutWireCube( GLdouble size ); -FGAPI void FGAPIENTRY glutSolidCube( GLdouble size ); -FGAPI void FGAPIENTRY glutWireSphere( GLdouble radius, GLint slices, GLint stacks ); -FGAPI void FGAPIENTRY glutSolidSphere( GLdouble radius, GLint slices, GLint stacks ); -FGAPI void FGAPIENTRY glutWireCone( GLdouble base, GLdouble height, GLint slices, GLint stacks ); -FGAPI void FGAPIENTRY glutSolidCone( GLdouble base, GLdouble height, GLint slices, GLint stacks ); - -FGAPI void FGAPIENTRY glutWireTorus( GLdouble innerRadius, GLdouble outerRadius, GLint sides, GLint rings ); -FGAPI void FGAPIENTRY glutSolidTorus( GLdouble innerRadius, GLdouble outerRadius, GLint sides, GLint rings ); -FGAPI void FGAPIENTRY glutWireDodecahedron( void ); -FGAPI void FGAPIENTRY glutSolidDodecahedron( void ); -FGAPI void FGAPIENTRY glutWireOctahedron( void ); -FGAPI void FGAPIENTRY glutSolidOctahedron( void ); -FGAPI void FGAPIENTRY glutWireTetrahedron( void ); -FGAPI void FGAPIENTRY glutSolidTetrahedron( void ); -FGAPI void FGAPIENTRY glutWireIcosahedron( void ); -FGAPI void FGAPIENTRY glutSolidIcosahedron( void ); - -/* - * Teapot rendering functions, found in freeglut_teapot.c - */ -FGAPI void FGAPIENTRY glutWireTeapot( GLdouble size ); -FGAPI void FGAPIENTRY glutSolidTeapot( GLdouble size ); - -/* - * Game mode functions, see freeglut_gamemode.c - */ -FGAPI void FGAPIENTRY glutGameModeString( const char* string ); -FGAPI int FGAPIENTRY glutEnterGameMode( void ); -FGAPI void FGAPIENTRY glutLeaveGameMode( void ); -FGAPI int FGAPIENTRY glutGameModeGet( GLenum query ); - -/* - * Video resize functions, see freeglut_videoresize.c - */ -FGAPI int FGAPIENTRY glutVideoResizeGet( GLenum query ); -FGAPI void FGAPIENTRY glutSetupVideoResizing( void ); -FGAPI void FGAPIENTRY glutStopVideoResizing( void ); -FGAPI void FGAPIENTRY glutVideoResize( int x, int y, int width, int height ); -FGAPI void FGAPIENTRY glutVideoPan( int x, int y, int width, int height ); - -/* - * Colormap functions, see freeglut_misc.c - */ -FGAPI void FGAPIENTRY glutSetColor( int color, GLfloat red, GLfloat green, GLfloat blue ); -FGAPI GLfloat FGAPIENTRY glutGetColor( int color, int component ); -FGAPI void FGAPIENTRY glutCopyColormap( int window ); - -/* - * Misc keyboard and joystick functions, see freeglut_misc.c - */ -FGAPI void FGAPIENTRY glutIgnoreKeyRepeat( int ignore ); -FGAPI void FGAPIENTRY glutSetKeyRepeat( int repeatMode ); -FGAPI void FGAPIENTRY glutForceJoystickFunc( void ); - -/* - * Misc functions, see freeglut_misc.c - */ -FGAPI int FGAPIENTRY glutExtensionSupported( const char* extension ); -FGAPI void FGAPIENTRY glutReportErrors( void ); - -/* Comment from glut.h of classic GLUT: - - Win32 has an annoying issue where there are multiple C run-time - libraries (CRTs). If the executable is linked with a different CRT - from the GLUT DLL, the GLUT DLL will not share the same CRT static - data seen by the executable. In particular, atexit callbacks registered - in the executable will not be called if GLUT calls its (different) - exit routine). GLUT is typically built with the - "/MD" option (the CRT with multithreading DLL support), but the Visual - C++ linker default is "/ML" (the single threaded CRT). - - One workaround to this issue is requiring users to always link with - the same CRT as GLUT is compiled with. That requires users supply a - non-standard option. GLUT 3.7 has its own built-in workaround where - the executable's "exit" function pointer is covertly passed to GLUT. - GLUT then calls the executable's exit function pointer to ensure that - any "atexit" calls registered by the application are called if GLUT - needs to exit. - - Note that the __glut*WithExit routines should NEVER be called directly. - To avoid the atexit workaround, #define GLUT_DISABLE_ATEXIT_HACK. */ - -/* to get the prototype for exit() */ -#include - -#if defined(_WIN32) && !defined(GLUT_DISABLE_ATEXIT_HACK) && !defined(__WATCOMC__) -FGAPI void FGAPIENTRY __glutInitWithExit(int *argcp, char **argv, void (__cdecl *exitfunc)(int)); -FGAPI int FGAPIENTRY __glutCreateWindowWithExit(const char *title, void (__cdecl *exitfunc)(int)); -FGAPI int FGAPIENTRY __glutCreateMenuWithExit(void (* func)(int), void (__cdecl *exitfunc)(int)); -#ifndef FREEGLUT_BUILDING_LIB -#if defined(__GNUC__) -#define FGUNUSED __attribute__((unused)) -#else -#define FGUNUSED -#endif -static void FGAPIENTRY FGUNUSED glutInit_ATEXIT_HACK(int *argcp, char **argv) { __glutInitWithExit(argcp, argv, exit); } -#define glutInit glutInit_ATEXIT_HACK -static int FGAPIENTRY FGUNUSED glutCreateWindow_ATEXIT_HACK(const char *title) { return __glutCreateWindowWithExit(title, exit); } -#define glutCreateWindow glutCreateWindow_ATEXIT_HACK -static int FGAPIENTRY FGUNUSED glutCreateMenu_ATEXIT_HACK(void (* func)(int)) { return __glutCreateMenuWithExit(func, exit); } -#define glutCreateMenu glutCreateMenu_ATEXIT_HACK -#endif -#endif - -#ifdef __cplusplus - } -#endif - -/*** END OF FILE ***/ - -#endif /* __FREEGLUT_STD_H__ */ - +#ifndef __FREEGLUT_STD_H__ +#define __FREEGLUT_STD_H__ + +/* + * freeglut_std.h + * + * The GLUT-compatible part of the freeglut library include file + * + * Copyright (c) 1999-2000 Pawel W. Olszta. All Rights Reserved. + * Written by Pawel W. Olszta, + * Creation date: Thu Dec 2 1999 + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included + * in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL + * PAWEL W. OLSZTA BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER + * IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN + * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + */ + +#ifdef __cplusplus + extern "C" { +#endif + +/* + * Under windows, we have to differentiate between static and dynamic libraries + */ +#ifdef _WIN32 +/* #pragma may not be supported by some compilers. + * Discussion by FreeGLUT developers suggests that + * Visual C++ specific code involving pragmas may + * need to move to a separate header. 24th Dec 2003 + */ + +/* Define FREEGLUT_LIB_PRAGMAS to 1 to include library + * pragmas or to 0 to exclude library pragmas. + * The default behavior depends on the compiler/platform. + */ +# ifndef FREEGLUT_LIB_PRAGMAS +# if ( defined(_MSC_VER) || defined(__WATCOMC__) ) && !defined(_WIN32_WCE) +# define FREEGLUT_LIB_PRAGMAS 1 +# else +# define FREEGLUT_LIB_PRAGMAS 0 +# endif +# endif + +# ifndef WIN32_LEAN_AND_MEAN +# define WIN32_LEAN_AND_MEAN 1 +# endif +# ifndef NOMINMAX +# define NOMINMAX +# endif +# include + +/* Windows static library */ +# ifdef FREEGLUT_STATIC + +# define FGAPI +# define FGAPIENTRY + + /* Link with Win32 static freeglut lib */ +# if FREEGLUT_LIB_PRAGMAS +# pragma comment (lib, "freeglut_static.lib") +# endif + +/* Windows shared library (DLL) */ +# else + +# define FGAPIENTRY __stdcall +# if defined(FREEGLUT_EXPORTS) +# define FGAPI __declspec(dllexport) +# else +# define FGAPI __declspec(dllimport) + + /* Link with Win32 shared freeglut lib */ +# if FREEGLUT_LIB_PRAGMAS +# pragma comment (lib, "freeglut.lib") +# endif + +# endif + +# endif + +/* Drag in other Windows libraries as required by FreeGLUT */ +# if FREEGLUT_LIB_PRAGMAS +# pragma comment (lib, "glu32.lib") /* link OpenGL Utility lib */ +# pragma comment (lib, "opengl32.lib") /* link Microsoft OpenGL lib */ +# pragma comment (lib, "gdi32.lib") /* link Windows GDI lib */ +# pragma comment (lib, "winmm.lib") /* link Windows MultiMedia lib */ +# pragma comment (lib, "user32.lib") /* link Windows user lib */ +# endif + +#else + +/* Non-Windows definition of FGAPI and FGAPIENTRY */ +# define FGAPI +# define FGAPIENTRY + +#endif + +/* + * The freeglut and GLUT API versions + */ +#define FREEGLUT 1 +#define GLUT_API_VERSION 4 +#define FREEGLUT_VERSION_2_0 1 +#define GLUT_XLIB_IMPLEMENTATION 13 + +/* + * Always include OpenGL and GLU headers + */ +#include +#include + +/* + * GLUT API macro definitions -- the special key codes: + */ +#define GLUT_KEY_F1 0x0001 +#define GLUT_KEY_F2 0x0002 +#define GLUT_KEY_F3 0x0003 +#define GLUT_KEY_F4 0x0004 +#define GLUT_KEY_F5 0x0005 +#define GLUT_KEY_F6 0x0006 +#define GLUT_KEY_F7 0x0007 +#define GLUT_KEY_F8 0x0008 +#define GLUT_KEY_F9 0x0009 +#define GLUT_KEY_F10 0x000A +#define GLUT_KEY_F11 0x000B +#define GLUT_KEY_F12 0x000C +#define GLUT_KEY_LEFT 0x0064 +#define GLUT_KEY_UP 0x0065 +#define GLUT_KEY_RIGHT 0x0066 +#define GLUT_KEY_DOWN 0x0067 +#define GLUT_KEY_PAGE_UP 0x0068 +#define GLUT_KEY_PAGE_DOWN 0x0069 +#define GLUT_KEY_HOME 0x006A +#define GLUT_KEY_END 0x006B +#define GLUT_KEY_INSERT 0x006C + +/* + * GLUT API macro definitions -- mouse state definitions + */ +#define GLUT_LEFT_BUTTON 0x0000 +#define GLUT_MIDDLE_BUTTON 0x0001 +#define GLUT_RIGHT_BUTTON 0x0002 +#define GLUT_DOWN 0x0000 +#define GLUT_UP 0x0001 +#define GLUT_LEFT 0x0000 +#define GLUT_ENTERED 0x0001 + +/* + * GLUT API macro definitions -- the display mode definitions + */ +#define GLUT_RGB 0x0000 +#define GLUT_RGBA 0x0000 +#define GLUT_INDEX 0x0001 +#define GLUT_SINGLE 0x0000 +#define GLUT_DOUBLE 0x0002 +#define GLUT_ACCUM 0x0004 +#define GLUT_ALPHA 0x0008 +#define GLUT_DEPTH 0x0010 +#define GLUT_STENCIL 0x0020 +#define GLUT_MULTISAMPLE 0x0080 +#define GLUT_STEREO 0x0100 +#define GLUT_LUMINANCE 0x0200 + +/* + * GLUT API macro definitions -- windows and menu related definitions + */ +#define GLUT_MENU_NOT_IN_USE 0x0000 +#define GLUT_MENU_IN_USE 0x0001 +#define GLUT_NOT_VISIBLE 0x0000 +#define GLUT_VISIBLE 0x0001 +#define GLUT_HIDDEN 0x0000 +#define GLUT_FULLY_RETAINED 0x0001 +#define GLUT_PARTIALLY_RETAINED 0x0002 +#define GLUT_FULLY_COVERED 0x0003 + +/* + * GLUT API macro definitions -- fonts definitions + * + * Steve Baker suggested to make it binary compatible with GLUT: + */ +#if defined(_MSC_VER) || defined(__CYGWIN__) || defined(__MINGW32__) || defined(__WATCOMC__) +# define GLUT_STROKE_ROMAN ((void *)0x0000) +# define GLUT_STROKE_MONO_ROMAN ((void *)0x0001) +# define GLUT_BITMAP_9_BY_15 ((void *)0x0002) +# define GLUT_BITMAP_8_BY_13 ((void *)0x0003) +# define GLUT_BITMAP_TIMES_ROMAN_10 ((void *)0x0004) +# define GLUT_BITMAP_TIMES_ROMAN_24 ((void *)0x0005) +# define GLUT_BITMAP_HELVETICA_10 ((void *)0x0006) +# define GLUT_BITMAP_HELVETICA_12 ((void *)0x0007) +# define GLUT_BITMAP_HELVETICA_18 ((void *)0x0008) +#else + /* + * I don't really know if it's a good idea... But here it goes: + */ + extern void* glutStrokeRoman; + extern void* glutStrokeMonoRoman; + extern void* glutBitmap9By15; + extern void* glutBitmap8By13; + extern void* glutBitmapTimesRoman10; + extern void* glutBitmapTimesRoman24; + extern void* glutBitmapHelvetica10; + extern void* glutBitmapHelvetica12; + extern void* glutBitmapHelvetica18; + + /* + * Those pointers will be used by following definitions: + */ +# define GLUT_STROKE_ROMAN ((void *) &glutStrokeRoman) +# define GLUT_STROKE_MONO_ROMAN ((void *) &glutStrokeMonoRoman) +# define GLUT_BITMAP_9_BY_15 ((void *) &glutBitmap9By15) +# define GLUT_BITMAP_8_BY_13 ((void *) &glutBitmap8By13) +# define GLUT_BITMAP_TIMES_ROMAN_10 ((void *) &glutBitmapTimesRoman10) +# define GLUT_BITMAP_TIMES_ROMAN_24 ((void *) &glutBitmapTimesRoman24) +# define GLUT_BITMAP_HELVETICA_10 ((void *) &glutBitmapHelvetica10) +# define GLUT_BITMAP_HELVETICA_12 ((void *) &glutBitmapHelvetica12) +# define GLUT_BITMAP_HELVETICA_18 ((void *) &glutBitmapHelvetica18) +#endif + +/* + * GLUT API macro definitions -- the glutGet parameters + */ +#define GLUT_WINDOW_X 0x0064 +#define GLUT_WINDOW_Y 0x0065 +#define GLUT_WINDOW_WIDTH 0x0066 +#define GLUT_WINDOW_HEIGHT 0x0067 +#define GLUT_WINDOW_BUFFER_SIZE 0x0068 +#define GLUT_WINDOW_STENCIL_SIZE 0x0069 +#define GLUT_WINDOW_DEPTH_SIZE 0x006A +#define GLUT_WINDOW_RED_SIZE 0x006B +#define GLUT_WINDOW_GREEN_SIZE 0x006C +#define GLUT_WINDOW_BLUE_SIZE 0x006D +#define GLUT_WINDOW_ALPHA_SIZE 0x006E +#define GLUT_WINDOW_ACCUM_RED_SIZE 0x006F +#define GLUT_WINDOW_ACCUM_GREEN_SIZE 0x0070 +#define GLUT_WINDOW_ACCUM_BLUE_SIZE 0x0071 +#define GLUT_WINDOW_ACCUM_ALPHA_SIZE 0x0072 +#define GLUT_WINDOW_DOUBLEBUFFER 0x0073 +#define GLUT_WINDOW_RGBA 0x0074 +#define GLUT_WINDOW_PARENT 0x0075 +#define GLUT_WINDOW_NUM_CHILDREN 0x0076 +#define GLUT_WINDOW_COLORMAP_SIZE 0x0077 +#define GLUT_WINDOW_NUM_SAMPLES 0x0078 +#define GLUT_WINDOW_STEREO 0x0079 +#define GLUT_WINDOW_CURSOR 0x007A + +#define GLUT_SCREEN_WIDTH 0x00C8 +#define GLUT_SCREEN_HEIGHT 0x00C9 +#define GLUT_SCREEN_WIDTH_MM 0x00CA +#define GLUT_SCREEN_HEIGHT_MM 0x00CB +#define GLUT_MENU_NUM_ITEMS 0x012C +#define GLUT_DISPLAY_MODE_POSSIBLE 0x0190 +#define GLUT_INIT_WINDOW_X 0x01F4 +#define GLUT_INIT_WINDOW_Y 0x01F5 +#define GLUT_INIT_WINDOW_WIDTH 0x01F6 +#define GLUT_INIT_WINDOW_HEIGHT 0x01F7 +#define GLUT_INIT_DISPLAY_MODE 0x01F8 +#define GLUT_ELAPSED_TIME 0x02BC +#define GLUT_WINDOW_FORMAT_ID 0x007B + +/* + * GLUT API macro definitions -- the glutDeviceGet parameters + */ +#define GLUT_HAS_KEYBOARD 0x0258 +#define GLUT_HAS_MOUSE 0x0259 +#define GLUT_HAS_SPACEBALL 0x025A +#define GLUT_HAS_DIAL_AND_BUTTON_BOX 0x025B +#define GLUT_HAS_TABLET 0x025C +#define GLUT_NUM_MOUSE_BUTTONS 0x025D +#define GLUT_NUM_SPACEBALL_BUTTONS 0x025E +#define GLUT_NUM_BUTTON_BOX_BUTTONS 0x025F +#define GLUT_NUM_DIALS 0x0260 +#define GLUT_NUM_TABLET_BUTTONS 0x0261 +#define GLUT_DEVICE_IGNORE_KEY_REPEAT 0x0262 +#define GLUT_DEVICE_KEY_REPEAT 0x0263 +#define GLUT_HAS_JOYSTICK 0x0264 +#define GLUT_OWNS_JOYSTICK 0x0265 +#define GLUT_JOYSTICK_BUTTONS 0x0266 +#define GLUT_JOYSTICK_AXES 0x0267 +#define GLUT_JOYSTICK_POLL_RATE 0x0268 + +/* + * GLUT API macro definitions -- the glutLayerGet parameters + */ +#define GLUT_OVERLAY_POSSIBLE 0x0320 +#define GLUT_LAYER_IN_USE 0x0321 +#define GLUT_HAS_OVERLAY 0x0322 +#define GLUT_TRANSPARENT_INDEX 0x0323 +#define GLUT_NORMAL_DAMAGED 0x0324 +#define GLUT_OVERLAY_DAMAGED 0x0325 + +/* + * GLUT API macro definitions -- the glutVideoResizeGet parameters + */ +#define GLUT_VIDEO_RESIZE_POSSIBLE 0x0384 +#define GLUT_VIDEO_RESIZE_IN_USE 0x0385 +#define GLUT_VIDEO_RESIZE_X_DELTA 0x0386 +#define GLUT_VIDEO_RESIZE_Y_DELTA 0x0387 +#define GLUT_VIDEO_RESIZE_WIDTH_DELTA 0x0388 +#define GLUT_VIDEO_RESIZE_HEIGHT_DELTA 0x0389 +#define GLUT_VIDEO_RESIZE_X 0x038A +#define GLUT_VIDEO_RESIZE_Y 0x038B +#define GLUT_VIDEO_RESIZE_WIDTH 0x038C +#define GLUT_VIDEO_RESIZE_HEIGHT 0x038D + +/* + * GLUT API macro definitions -- the glutUseLayer parameters + */ +#define GLUT_NORMAL 0x0000 +#define GLUT_OVERLAY 0x0001 + +/* + * GLUT API macro definitions -- the glutGetModifiers parameters + */ +#define GLUT_ACTIVE_SHIFT 0x0001 +#define GLUT_ACTIVE_CTRL 0x0002 +#define GLUT_ACTIVE_ALT 0x0004 + +/* + * GLUT API macro definitions -- the glutSetCursor parameters + */ +#define GLUT_CURSOR_RIGHT_ARROW 0x0000 +#define GLUT_CURSOR_LEFT_ARROW 0x0001 +#define GLUT_CURSOR_INFO 0x0002 +#define GLUT_CURSOR_DESTROY 0x0003 +#define GLUT_CURSOR_HELP 0x0004 +#define GLUT_CURSOR_CYCLE 0x0005 +#define GLUT_CURSOR_SPRAY 0x0006 +#define GLUT_CURSOR_WAIT 0x0007 +#define GLUT_CURSOR_TEXT 0x0008 +#define GLUT_CURSOR_CROSSHAIR 0x0009 +#define GLUT_CURSOR_UP_DOWN 0x000A +#define GLUT_CURSOR_LEFT_RIGHT 0x000B +#define GLUT_CURSOR_TOP_SIDE 0x000C +#define GLUT_CURSOR_BOTTOM_SIDE 0x000D +#define GLUT_CURSOR_LEFT_SIDE 0x000E +#define GLUT_CURSOR_RIGHT_SIDE 0x000F +#define GLUT_CURSOR_TOP_LEFT_CORNER 0x0010 +#define GLUT_CURSOR_TOP_RIGHT_CORNER 0x0011 +#define GLUT_CURSOR_BOTTOM_RIGHT_CORNER 0x0012 +#define GLUT_CURSOR_BOTTOM_LEFT_CORNER 0x0013 +#define GLUT_CURSOR_INHERIT 0x0064 +#define GLUT_CURSOR_NONE 0x0065 +#define GLUT_CURSOR_FULL_CROSSHAIR 0x0066 + +/* + * GLUT API macro definitions -- RGB color component specification definitions + */ +#define GLUT_RED 0x0000 +#define GLUT_GREEN 0x0001 +#define GLUT_BLUE 0x0002 + +/* + * GLUT API macro definitions -- additional keyboard and joystick definitions + */ +#define GLUT_KEY_REPEAT_OFF 0x0000 +#define GLUT_KEY_REPEAT_ON 0x0001 +#define GLUT_KEY_REPEAT_DEFAULT 0x0002 + +#define GLUT_JOYSTICK_BUTTON_A 0x0001 +#define GLUT_JOYSTICK_BUTTON_B 0x0002 +#define GLUT_JOYSTICK_BUTTON_C 0x0004 +#define GLUT_JOYSTICK_BUTTON_D 0x0008 + +/* + * GLUT API macro definitions -- game mode definitions + */ +#define GLUT_GAME_MODE_ACTIVE 0x0000 +#define GLUT_GAME_MODE_POSSIBLE 0x0001 +#define GLUT_GAME_MODE_WIDTH 0x0002 +#define GLUT_GAME_MODE_HEIGHT 0x0003 +#define GLUT_GAME_MODE_PIXEL_DEPTH 0x0004 +#define GLUT_GAME_MODE_REFRESH_RATE 0x0005 +#define GLUT_GAME_MODE_DISPLAY_CHANGED 0x0006 + +/* + * Initialization functions, see fglut_init.c + */ +FGAPI void FGAPIENTRY glutInit( int* pargc, char** argv ); +FGAPI void FGAPIENTRY glutInitWindowPosition( int x, int y ); +FGAPI void FGAPIENTRY glutInitWindowSize( int width, int height ); +FGAPI void FGAPIENTRY glutInitDisplayMode( unsigned int displayMode ); +FGAPI void FGAPIENTRY glutInitDisplayString( const char* displayMode ); + +/* + * Process loop function, see freeglut_main.c + */ +FGAPI void FGAPIENTRY glutMainLoop( void ); + +/* + * Window management functions, see freeglut_window.c + */ +FGAPI int FGAPIENTRY glutCreateWindow( const char* title ); +FGAPI int FGAPIENTRY glutCreateSubWindow( int window, int x, int y, int width, int height ); +FGAPI void FGAPIENTRY glutDestroyWindow( int window ); +FGAPI void FGAPIENTRY glutSetWindow( int window ); +FGAPI int FGAPIENTRY glutGetWindow( void ); +FGAPI void FGAPIENTRY glutSetWindowTitle( const char* title ); +FGAPI void FGAPIENTRY glutSetIconTitle( const char* title ); +FGAPI void FGAPIENTRY glutReshapeWindow( int width, int height ); +FGAPI void FGAPIENTRY glutPositionWindow( int x, int y ); +FGAPI void FGAPIENTRY glutShowWindow( void ); +FGAPI void FGAPIENTRY glutHideWindow( void ); +FGAPI void FGAPIENTRY glutIconifyWindow( void ); +FGAPI void FGAPIENTRY glutPushWindow( void ); +FGAPI void FGAPIENTRY glutPopWindow( void ); +FGAPI void FGAPIENTRY glutFullScreen( void ); + +/* + * Display-connected functions, see freeglut_display.c + */ +FGAPI void FGAPIENTRY glutPostWindowRedisplay( int window ); +FGAPI void FGAPIENTRY glutPostRedisplay( void ); +FGAPI void FGAPIENTRY glutSwapBuffers( void ); + +/* + * Mouse cursor functions, see freeglut_cursor.c + */ +FGAPI void FGAPIENTRY glutWarpPointer( int x, int y ); +FGAPI void FGAPIENTRY glutSetCursor( int cursor ); + +/* + * Overlay stuff, see freeglut_overlay.c + */ +FGAPI void FGAPIENTRY glutEstablishOverlay( void ); +FGAPI void FGAPIENTRY glutRemoveOverlay( void ); +FGAPI void FGAPIENTRY glutUseLayer( GLenum layer ); +FGAPI void FGAPIENTRY glutPostOverlayRedisplay( void ); +FGAPI void FGAPIENTRY glutPostWindowOverlayRedisplay( int window ); +FGAPI void FGAPIENTRY glutShowOverlay( void ); +FGAPI void FGAPIENTRY glutHideOverlay( void ); + +/* + * Menu stuff, see freeglut_menu.c + */ +FGAPI int FGAPIENTRY glutCreateMenu( void (* callback)( int menu ) ); +FGAPI void FGAPIENTRY glutDestroyMenu( int menu ); +FGAPI int FGAPIENTRY glutGetMenu( void ); +FGAPI void FGAPIENTRY glutSetMenu( int menu ); +FGAPI void FGAPIENTRY glutAddMenuEntry( const char* label, int value ); +FGAPI void FGAPIENTRY glutAddSubMenu( const char* label, int subMenu ); +FGAPI void FGAPIENTRY glutChangeToMenuEntry( int item, const char* label, int value ); +FGAPI void FGAPIENTRY glutChangeToSubMenu( int item, const char* label, int value ); +FGAPI void FGAPIENTRY glutRemoveMenuItem( int item ); +FGAPI void FGAPIENTRY glutAttachMenu( int button ); +FGAPI void FGAPIENTRY glutDetachMenu( int button ); + +/* + * Global callback functions, see freeglut_callbacks.c + */ +FGAPI void FGAPIENTRY glutTimerFunc( unsigned int time, void (* callback)( int ), int value ); +FGAPI void FGAPIENTRY glutIdleFunc( void (* callback)( void ) ); + +/* + * Window-specific callback functions, see freeglut_callbacks.c + */ +FGAPI void FGAPIENTRY glutKeyboardFunc( void (* callback)( unsigned char, int, int ) ); +FGAPI void FGAPIENTRY glutSpecialFunc( void (* callback)( int, int, int ) ); +FGAPI void FGAPIENTRY glutReshapeFunc( void (* callback)( int, int ) ); +FGAPI void FGAPIENTRY glutVisibilityFunc( void (* callback)( int ) ); +FGAPI void FGAPIENTRY glutDisplayFunc( void (* callback)( void ) ); +FGAPI void FGAPIENTRY glutMouseFunc( void (* callback)( int, int, int, int ) ); +FGAPI void FGAPIENTRY glutMotionFunc( void (* callback)( int, int ) ); +FGAPI void FGAPIENTRY glutPassiveMotionFunc( void (* callback)( int, int ) ); +FGAPI void FGAPIENTRY glutEntryFunc( void (* callback)( int ) ); + +FGAPI void FGAPIENTRY glutKeyboardUpFunc( void (* callback)( unsigned char, int, int ) ); +FGAPI void FGAPIENTRY glutSpecialUpFunc( void (* callback)( int, int, int ) ); +FGAPI void FGAPIENTRY glutJoystickFunc( void (* callback)( unsigned int, int, int, int ), int pollInterval ); +FGAPI void FGAPIENTRY glutMenuStateFunc( void (* callback)( int ) ); +FGAPI void FGAPIENTRY glutMenuStatusFunc( void (* callback)( int, int, int ) ); +FGAPI void FGAPIENTRY glutOverlayDisplayFunc( void (* callback)( void ) ); +FGAPI void FGAPIENTRY glutWindowStatusFunc( void (* callback)( int ) ); + +FGAPI void FGAPIENTRY glutSpaceballMotionFunc( void (* callback)( int, int, int ) ); +FGAPI void FGAPIENTRY glutSpaceballRotateFunc( void (* callback)( int, int, int ) ); +FGAPI void FGAPIENTRY glutSpaceballButtonFunc( void (* callback)( int, int ) ); +FGAPI void FGAPIENTRY glutButtonBoxFunc( void (* callback)( int, int ) ); +FGAPI void FGAPIENTRY glutDialsFunc( void (* callback)( int, int ) ); +FGAPI void FGAPIENTRY glutTabletMotionFunc( void (* callback)( int, int ) ); +FGAPI void FGAPIENTRY glutTabletButtonFunc( void (* callback)( int, int, int, int ) ); + +/* + * State setting and retrieval functions, see freeglut_state.c + */ +FGAPI int FGAPIENTRY glutGet( GLenum query ); +FGAPI int FGAPIENTRY glutDeviceGet( GLenum query ); +FGAPI int FGAPIENTRY glutGetModifiers( void ); +FGAPI int FGAPIENTRY glutLayerGet( GLenum query ); + +/* + * Font stuff, see freeglut_font.c + */ +FGAPI void FGAPIENTRY glutBitmapCharacter( void* font, int character ); +FGAPI int FGAPIENTRY glutBitmapWidth( void* font, int character ); +FGAPI void FGAPIENTRY glutStrokeCharacter( void* font, int character ); +FGAPI int FGAPIENTRY glutStrokeWidth( void* font, int character ); +FGAPI int FGAPIENTRY glutBitmapLength( void* font, const unsigned char* string ); +FGAPI int FGAPIENTRY glutStrokeLength( void* font, const unsigned char* string ); + +/* + * Geometry functions, see freeglut_geometry.c + */ +FGAPI void FGAPIENTRY glutWireCube( GLdouble size ); +FGAPI void FGAPIENTRY glutSolidCube( GLdouble size ); +FGAPI void FGAPIENTRY glutWireSphere( GLdouble radius, GLint slices, GLint stacks ); +FGAPI void FGAPIENTRY glutSolidSphere( GLdouble radius, GLint slices, GLint stacks ); +FGAPI void FGAPIENTRY glutWireCone( GLdouble base, GLdouble height, GLint slices, GLint stacks ); +FGAPI void FGAPIENTRY glutSolidCone( GLdouble base, GLdouble height, GLint slices, GLint stacks ); + +FGAPI void FGAPIENTRY glutWireTorus( GLdouble innerRadius, GLdouble outerRadius, GLint sides, GLint rings ); +FGAPI void FGAPIENTRY glutSolidTorus( GLdouble innerRadius, GLdouble outerRadius, GLint sides, GLint rings ); +FGAPI void FGAPIENTRY glutWireDodecahedron( void ); +FGAPI void FGAPIENTRY glutSolidDodecahedron( void ); +FGAPI void FGAPIENTRY glutWireOctahedron( void ); +FGAPI void FGAPIENTRY glutSolidOctahedron( void ); +FGAPI void FGAPIENTRY glutWireTetrahedron( void ); +FGAPI void FGAPIENTRY glutSolidTetrahedron( void ); +FGAPI void FGAPIENTRY glutWireIcosahedron( void ); +FGAPI void FGAPIENTRY glutSolidIcosahedron( void ); + +/* + * Teapot rendering functions, found in freeglut_teapot.c + */ +FGAPI void FGAPIENTRY glutWireTeapot( GLdouble size ); +FGAPI void FGAPIENTRY glutSolidTeapot( GLdouble size ); + +/* + * Game mode functions, see freeglut_gamemode.c + */ +FGAPI void FGAPIENTRY glutGameModeString( const char* string ); +FGAPI int FGAPIENTRY glutEnterGameMode( void ); +FGAPI void FGAPIENTRY glutLeaveGameMode( void ); +FGAPI int FGAPIENTRY glutGameModeGet( GLenum query ); + +/* + * Video resize functions, see freeglut_videoresize.c + */ +FGAPI int FGAPIENTRY glutVideoResizeGet( GLenum query ); +FGAPI void FGAPIENTRY glutSetupVideoResizing( void ); +FGAPI void FGAPIENTRY glutStopVideoResizing( void ); +FGAPI void FGAPIENTRY glutVideoResize( int x, int y, int width, int height ); +FGAPI void FGAPIENTRY glutVideoPan( int x, int y, int width, int height ); + +/* + * Colormap functions, see freeglut_misc.c + */ +FGAPI void FGAPIENTRY glutSetColor( int color, GLfloat red, GLfloat green, GLfloat blue ); +FGAPI GLfloat FGAPIENTRY glutGetColor( int color, int component ); +FGAPI void FGAPIENTRY glutCopyColormap( int window ); + +/* + * Misc keyboard and joystick functions, see freeglut_misc.c + */ +FGAPI void FGAPIENTRY glutIgnoreKeyRepeat( int ignore ); +FGAPI void FGAPIENTRY glutSetKeyRepeat( int repeatMode ); +FGAPI void FGAPIENTRY glutForceJoystickFunc( void ); + +/* + * Misc functions, see freeglut_misc.c + */ +FGAPI int FGAPIENTRY glutExtensionSupported( const char* extension ); +FGAPI void FGAPIENTRY glutReportErrors( void ); + +/* Comment from glut.h of classic GLUT: + + Win32 has an annoying issue where there are multiple C run-time + libraries (CRTs). If the executable is linked with a different CRT + from the GLUT DLL, the GLUT DLL will not share the same CRT static + data seen by the executable. In particular, atexit callbacks registered + in the executable will not be called if GLUT calls its (different) + exit routine). GLUT is typically built with the + "/MD" option (the CRT with multithreading DLL support), but the Visual + C++ linker default is "/ML" (the single threaded CRT). + + One workaround to this issue is requiring users to always link with + the same CRT as GLUT is compiled with. That requires users supply a + non-standard option. GLUT 3.7 has its own built-in workaround where + the executable's "exit" function pointer is covertly passed to GLUT. + GLUT then calls the executable's exit function pointer to ensure that + any "atexit" calls registered by the application are called if GLUT + needs to exit. + + Note that the __glut*WithExit routines should NEVER be called directly. + To avoid the atexit workaround, #define GLUT_DISABLE_ATEXIT_HACK. */ + +/* to get the prototype for exit() */ +#include + +#if defined(_WIN32) && !defined(GLUT_DISABLE_ATEXIT_HACK) && !defined(__WATCOMC__) +FGAPI void FGAPIENTRY __glutInitWithExit(int *argcp, char **argv, void (__cdecl *exitfunc)(int)); +FGAPI int FGAPIENTRY __glutCreateWindowWithExit(const char *title, void (__cdecl *exitfunc)(int)); +FGAPI int FGAPIENTRY __glutCreateMenuWithExit(void (* func)(int), void (__cdecl *exitfunc)(int)); +#ifndef FREEGLUT_BUILDING_LIB +#if defined(__GNUC__) +#define FGUNUSED __attribute__((unused)) +#else +#define FGUNUSED +#endif +static void FGAPIENTRY FGUNUSED glutInit_ATEXIT_HACK(int *argcp, char **argv) { __glutInitWithExit(argcp, argv, exit); } +#define glutInit glutInit_ATEXIT_HACK +static int FGAPIENTRY FGUNUSED glutCreateWindow_ATEXIT_HACK(const char *title) { return __glutCreateWindowWithExit(title, exit); } +#define glutCreateWindow glutCreateWindow_ATEXIT_HACK +static int FGAPIENTRY FGUNUSED glutCreateMenu_ATEXIT_HACK(void (* func)(int)) { return __glutCreateMenuWithExit(func, exit); } +#define glutCreateMenu glutCreateMenu_ATEXIT_HACK +#endif +#endif + +#ifdef __cplusplus + } +#endif + +/*** END OF FILE ***/ + +#endif /* __FREEGLUT_STD_H__ */ + diff --git a/PROJ1_WIN/shared/freeglut/include/GL/glut.h b/PROJ1_WIN/shared/freeglut/include/GL/glut.h index aa7428f..6191f77 100755 --- a/PROJ1_WIN/shared/freeglut/include/GL/glut.h +++ b/PROJ1_WIN/shared/freeglut/include/GL/glut.h @@ -1,716 +1,21 @@ -#ifndef __glut_h__ -#define __glut_h__ - -/* Copyright (c) Mark J. Kilgard, 1994, 1995, 1996, 1998. */ - -/* This program is freely distributable without licensing fees and is - provided without guarantee or warrantee expressed or implied. This - program is -not- in the public domain. */ - -#if defined(_WIN32) - -/* GLUT 3.7 now tries to avoid including - to avoid name space pollution, but Win32's - needs APIENTRY and WINGDIAPI defined properly. */ -# if 0 - /* This would put tons of macros and crap in our clean name space. */ -# define WIN32_LEAN_AND_MEAN -# include -# else - /* XXX This is from Win32's */ -# ifndef APIENTRY -# define GLUT_APIENTRY_DEFINED -# if (_MSC_VER >= 800) || defined(_STDCALL_SUPPORTED) || defined(__BORLANDC__) || defined(__LCC__) -# define APIENTRY __stdcall -# else -# define APIENTRY -# endif -# endif - /* XXX This is from Win32's */ -# ifndef CALLBACK -# if (defined(_M_MRX000) || defined(_M_IX86) || defined(_M_ALPHA) || defined(_M_PPC)) && !defined(MIDL_PASS) || defined(__LCC__) -# define CALLBACK __stdcall -# else -# define CALLBACK -# endif -# endif - /* XXX Hack for lcc compiler. It doesn't support __declspec(dllimport), just __stdcall. */ -# if defined( __LCC__ ) -# undef WINGDIAPI -# define WINGDIAPI __stdcall -# else - /* XXX This is from Win32's and */ -# ifndef WINGDIAPI -# define GLUT_WINGDIAPI_DEFINED -# define WINGDIAPI __declspec(dllimport) -# endif -# endif - /* XXX This is from Win32's */ -# ifndef _WCHAR_T_DEFINED -typedef unsigned short wchar_t; -# define _WCHAR_T_DEFINED -# endif -# endif - -/* To disable automatic library usage for GLUT, define GLUT_NO_LIB_PRAGMA - in your compile preprocessor options. */ -# if !defined(GLUT_BUILDING_LIB) && !defined(GLUT_NO_LIB_PRAGMA) -# pragma comment (lib, "winmm.lib") /* link with Windows MultiMedia lib */ -/* To enable automatic SGI OpenGL for Windows library usage for GLUT, - define GLUT_USE_SGI_OPENGL in your compile preprocessor options. */ -# ifdef GLUT_USE_SGI_OPENGL -# pragma comment (lib, "opengl.lib") /* link with SGI OpenGL for Windows lib */ -# pragma comment (lib, "glu.lib") /* link with SGI OpenGL Utility lib */ -# pragma comment (lib, "glut.lib") /* link with Win32 GLUT for SGI OpenGL lib */ -# else -# pragma comment (lib, "opengl32.lib") /* link with Microsoft OpenGL lib */ -# pragma comment (lib, "glu32.lib") /* link with Microsoft OpenGL Utility lib */ -# pragma comment (lib, "glut32.lib") /* link with Win32 GLUT lib */ -# endif -# endif - -/* To disable supression of annoying warnings about floats being promoted - to doubles, define GLUT_NO_WARNING_DISABLE in your compile preprocessor - options. */ -# ifndef GLUT_NO_WARNING_DISABLE -# pragma warning (disable:4244) /* Disable bogus VC++ 4.2 conversion warnings. */ -# pragma warning (disable:4305) /* VC++ 5.0 version of above warning. */ -# endif - -/* Win32 has an annoying issue where there are multiple C run-time - libraries (CRTs). If the executable is linked with a different CRT - from the GLUT DLL, the GLUT DLL will not share the same CRT static - data seen by the executable. In particular, atexit callbacks registered - in the executable will not be called if GLUT calls its (different) - exit routine). GLUT is typically built with the - "/MD" option (the CRT with multithreading DLL support), but the Visual - C++ linker default is "/ML" (the single threaded CRT). - - One workaround to this issue is requiring users to always link with - the same CRT as GLUT is compiled with. That requires users supply a - non-standard option. GLUT 3.7 has its own built-in workaround where - the executable's "exit" function pointer is covertly passed to GLUT. - GLUT then calls the executable's exit function pointer to ensure that - any "atexit" calls registered by the application are called if GLUT - needs to exit. - - Note that the __glut*WithExit routines should NEVER be called directly. - To avoid the atexit workaround, #define GLUT_DISABLE_ATEXIT_HACK. */ - -/* XXX This is from Win32's */ -# if !defined(_MSC_VER) && !defined(__cdecl) - /* Define __cdecl for non-Microsoft compilers. */ -# define __cdecl -# define GLUT_DEFINED___CDECL -# endif -# ifndef _CRTIMP -# ifdef _NTSDK - /* Definition compatible with NT SDK */ -# define _CRTIMP -# else - /* Current definition */ -# ifdef _DLL -# define _CRTIMP __declspec(dllimport) -# else -# define _CRTIMP -# endif -# endif -# define GLUT_DEFINED__CRTIMP -# endif - -/* GLUT API entry point declarations for Win32. */ -# ifdef GLUT_BUILDING_LIB -# define GLUTAPI __declspec(dllexport) -# else -# ifdef _DLL -# define GLUTAPI __declspec(dllimport) -# else -# define GLUTAPI extern -# endif -# endif - -/* GLUT callback calling convention for Win32. */ -# define GLUTCALLBACK __cdecl - -#endif /* _WIN32 */ - -#include -#include - -#ifdef __cplusplus -extern "C" { -#endif - -#if defined(_WIN32) -# ifndef GLUT_BUILDING_LIB -extern _CRTIMP void __cdecl exit(int); -# endif -#else -/* non-Win32 case. */ -/* Define APIENTRY and CALLBACK to nothing if we aren't on Win32. */ -# define APIENTRY -# define GLUT_APIENTRY_DEFINED -# define CALLBACK -/* Define GLUTAPI and GLUTCALLBACK as below if we aren't on Win32. */ -# define GLUTAPI extern -# define GLUTCALLBACK -/* Prototype exit for the non-Win32 case (see above). */ -extern void exit(int); -#endif - -/** - GLUT API revision history: - - GLUT_API_VERSION is updated to reflect incompatible GLUT - API changes (interface changes, semantic changes, deletions, - or additions). - - GLUT_API_VERSION=1 First public release of GLUT. 11/29/94 - - GLUT_API_VERSION=2 Added support for OpenGL/GLX multisampling, - extension. Supports new input devices like tablet, dial and button - box, and Spaceball. Easy to query OpenGL extensions. - - GLUT_API_VERSION=3 glutMenuStatus added. - - GLUT_API_VERSION=4 glutInitDisplayString, glutWarpPointer, - glutBitmapLength, glutStrokeLength, glutWindowStatusFunc, dynamic - video resize subAPI, glutPostWindowRedisplay, glutKeyboardUpFunc, - glutSpecialUpFunc, glutIgnoreKeyRepeat, glutSetKeyRepeat, - glutJoystickFunc, glutForceJoystickFunc (NOT FINALIZED!). -**/ -#ifndef GLUT_API_VERSION /* allow this to be overriden */ -#define GLUT_API_VERSION 3 -#endif - -/** - GLUT implementation revision history: - - GLUT_XLIB_IMPLEMENTATION is updated to reflect both GLUT - API revisions and implementation revisions (ie, bug fixes). - - GLUT_XLIB_IMPLEMENTATION=1 mjk's first public release of - GLUT Xlib-based implementation. 11/29/94 - - GLUT_XLIB_IMPLEMENTATION=2 mjk's second public release of - GLUT Xlib-based implementation providing GLUT version 2 - interfaces. - - GLUT_XLIB_IMPLEMENTATION=3 mjk's GLUT 2.2 images. 4/17/95 - - GLUT_XLIB_IMPLEMENTATION=4 mjk's GLUT 2.3 images. 6/?/95 - - GLUT_XLIB_IMPLEMENTATION=5 mjk's GLUT 3.0 images. 10/?/95 - - GLUT_XLIB_IMPLEMENTATION=7 mjk's GLUT 3.1+ with glutWarpPoitner. 7/24/96 - - GLUT_XLIB_IMPLEMENTATION=8 mjk's GLUT 3.1+ with glutWarpPoitner - and video resize. 1/3/97 - - GLUT_XLIB_IMPLEMENTATION=9 mjk's GLUT 3.4 release with early GLUT 4 routines. - - GLUT_XLIB_IMPLEMENTATION=11 Mesa 2.5's GLUT 3.6 release. - - GLUT_XLIB_IMPLEMENTATION=12 mjk's GLUT 3.6 release with early GLUT 4 routines + signal handling. - - GLUT_XLIB_IMPLEMENTATION=13 mjk's GLUT 3.7 beta with GameGLUT support. - - GLUT_XLIB_IMPLEMENTATION=14 mjk's GLUT 3.7 beta with f90gl friend interface. - - GLUT_XLIB_IMPLEMENTATION=15 mjk's GLUT 3.7 beta sync'ed with Mesa -**/ -#ifndef GLUT_XLIB_IMPLEMENTATION /* Allow this to be overriden. */ -#define GLUT_XLIB_IMPLEMENTATION 15 -#endif - -/* Display mode bit masks. */ -#define GLUT_RGB 0 -#define GLUT_RGBA GLUT_RGB -#define GLUT_INDEX 1 -#define GLUT_SINGLE 0 -#define GLUT_DOUBLE 2 -#define GLUT_ACCUM 4 -#define GLUT_ALPHA 8 -#define GLUT_DEPTH 16 -#define GLUT_STENCIL 32 -#if (GLUT_API_VERSION >= 2) -#define GLUT_MULTISAMPLE 128 -#define GLUT_STEREO 256 -#endif -#if (GLUT_API_VERSION >= 3) -#define GLUT_LUMINANCE 512 -#endif - -/* Mouse buttons. */ -#define GLUT_LEFT_BUTTON 0 -#define GLUT_MIDDLE_BUTTON 1 -#define GLUT_RIGHT_BUTTON 2 - -/* Mouse button state. */ -#define GLUT_DOWN 0 -#define GLUT_UP 1 - -#if (GLUT_API_VERSION >= 2) -/* function keys */ -#define GLUT_KEY_F1 1 -#define GLUT_KEY_F2 2 -#define GLUT_KEY_F3 3 -#define GLUT_KEY_F4 4 -#define GLUT_KEY_F5 5 -#define GLUT_KEY_F6 6 -#define GLUT_KEY_F7 7 -#define GLUT_KEY_F8 8 -#define GLUT_KEY_F9 9 -#define GLUT_KEY_F10 10 -#define GLUT_KEY_F11 11 -#define GLUT_KEY_F12 12 -/* directional keys */ -#define GLUT_KEY_LEFT 100 -#define GLUT_KEY_UP 101 -#define GLUT_KEY_RIGHT 102 -#define GLUT_KEY_DOWN 103 -#define GLUT_KEY_PAGE_UP 104 -#define GLUT_KEY_PAGE_DOWN 105 -#define GLUT_KEY_HOME 106 -#define GLUT_KEY_END 107 -#define GLUT_KEY_INSERT 108 -#endif - -/* Entry/exit state. */ -#define GLUT_LEFT 0 -#define GLUT_ENTERED 1 - -/* Menu usage state. */ -#define GLUT_MENU_NOT_IN_USE 0 -#define GLUT_MENU_IN_USE 1 - -/* Visibility state. */ -#define GLUT_NOT_VISIBLE 0 -#define GLUT_VISIBLE 1 - -/* Window status state. */ -#define GLUT_HIDDEN 0 -#define GLUT_FULLY_RETAINED 1 -#define GLUT_PARTIALLY_RETAINED 2 -#define GLUT_FULLY_COVERED 3 - -/* Color index component selection values. */ -#define GLUT_RED 0 -#define GLUT_GREEN 1 -#define GLUT_BLUE 2 - -#if defined(_WIN32) -/* Stroke font constants (use these in GLUT program). */ -#define GLUT_STROKE_ROMAN ((void*)0) -#define GLUT_STROKE_MONO_ROMAN ((void*)1) - -/* Bitmap font constants (use these in GLUT program). */ -#define GLUT_BITMAP_9_BY_15 ((void*)2) -#define GLUT_BITMAP_8_BY_13 ((void*)3) -#define GLUT_BITMAP_TIMES_ROMAN_10 ((void*)4) -#define GLUT_BITMAP_TIMES_ROMAN_24 ((void*)5) -#if (GLUT_API_VERSION >= 3) -#define GLUT_BITMAP_HELVETICA_10 ((void*)6) -#define GLUT_BITMAP_HELVETICA_12 ((void*)7) -#define GLUT_BITMAP_HELVETICA_18 ((void*)8) -#endif -#else -/* Stroke font opaque addresses (use constants instead in source code). */ -GLUTAPI void *glutStrokeRoman; -GLUTAPI void *glutStrokeMonoRoman; - -/* Stroke font constants (use these in GLUT program). */ -#define GLUT_STROKE_ROMAN (&glutStrokeRoman) -#define GLUT_STROKE_MONO_ROMAN (&glutStrokeMonoRoman) - -/* Bitmap font opaque addresses (use constants instead in source code). */ -GLUTAPI void *glutBitmap9By15; -GLUTAPI void *glutBitmap8By13; -GLUTAPI void *glutBitmapTimesRoman10; -GLUTAPI void *glutBitmapTimesRoman24; -GLUTAPI void *glutBitmapHelvetica10; -GLUTAPI void *glutBitmapHelvetica12; -GLUTAPI void *glutBitmapHelvetica18; - -/* Bitmap font constants (use these in GLUT program). */ -#define GLUT_BITMAP_9_BY_15 (&glutBitmap9By15) -#define GLUT_BITMAP_8_BY_13 (&glutBitmap8By13) -#define GLUT_BITMAP_TIMES_ROMAN_10 (&glutBitmapTimesRoman10) -#define GLUT_BITMAP_TIMES_ROMAN_24 (&glutBitmapTimesRoman24) -#if (GLUT_API_VERSION >= 3) -#define GLUT_BITMAP_HELVETICA_10 (&glutBitmapHelvetica10) -#define GLUT_BITMAP_HELVETICA_12 (&glutBitmapHelvetica12) -#define GLUT_BITMAP_HELVETICA_18 (&glutBitmapHelvetica18) -#endif -#endif - -/* glutGet parameters. */ -#define GLUT_WINDOW_X ((GLenum) 100) -#define GLUT_WINDOW_Y ((GLenum) 101) -#define GLUT_WINDOW_WIDTH ((GLenum) 102) -#define GLUT_WINDOW_HEIGHT ((GLenum) 103) -#define GLUT_WINDOW_BUFFER_SIZE ((GLenum) 104) -#define GLUT_WINDOW_STENCIL_SIZE ((GLenum) 105) -#define GLUT_WINDOW_DEPTH_SIZE ((GLenum) 106) -#define GLUT_WINDOW_RED_SIZE ((GLenum) 107) -#define GLUT_WINDOW_GREEN_SIZE ((GLenum) 108) -#define GLUT_WINDOW_BLUE_SIZE ((GLenum) 109) -#define GLUT_WINDOW_ALPHA_SIZE ((GLenum) 110) -#define GLUT_WINDOW_ACCUM_RED_SIZE ((GLenum) 111) -#define GLUT_WINDOW_ACCUM_GREEN_SIZE ((GLenum) 112) -#define GLUT_WINDOW_ACCUM_BLUE_SIZE ((GLenum) 113) -#define GLUT_WINDOW_ACCUM_ALPHA_SIZE ((GLenum) 114) -#define GLUT_WINDOW_DOUBLEBUFFER ((GLenum) 115) -#define GLUT_WINDOW_RGBA ((GLenum) 116) -#define GLUT_WINDOW_PARENT ((GLenum) 117) -#define GLUT_WINDOW_NUM_CHILDREN ((GLenum) 118) -#define GLUT_WINDOW_COLORMAP_SIZE ((GLenum) 119) -#if (GLUT_API_VERSION >= 2) -#define GLUT_WINDOW_NUM_SAMPLES ((GLenum) 120) -#define GLUT_WINDOW_STEREO ((GLenum) 121) -#endif -#if (GLUT_API_VERSION >= 3) -#define GLUT_WINDOW_CURSOR ((GLenum) 122) -#endif -#define GLUT_SCREEN_WIDTH ((GLenum) 200) -#define GLUT_SCREEN_HEIGHT ((GLenum) 201) -#define GLUT_SCREEN_WIDTH_MM ((GLenum) 202) -#define GLUT_SCREEN_HEIGHT_MM ((GLenum) 203) -#define GLUT_MENU_NUM_ITEMS ((GLenum) 300) -#define GLUT_DISPLAY_MODE_POSSIBLE ((GLenum) 400) -#define GLUT_INIT_WINDOW_X ((GLenum) 500) -#define GLUT_INIT_WINDOW_Y ((GLenum) 501) -#define GLUT_INIT_WINDOW_WIDTH ((GLenum) 502) -#define GLUT_INIT_WINDOW_HEIGHT ((GLenum) 503) -#define GLUT_INIT_DISPLAY_MODE ((GLenum) 504) -#if (GLUT_API_VERSION >= 2) -#define GLUT_ELAPSED_TIME ((GLenum) 700) -#endif -#if (GLUT_API_VERSION >= 4 || GLUT_XLIB_IMPLEMENTATION >= 13) -#define GLUT_WINDOW_FORMAT_ID ((GLenum) 123) -#endif - -#if (GLUT_API_VERSION >= 2) -/* glutDeviceGet parameters. */ -#define GLUT_HAS_KEYBOARD ((GLenum) 600) -#define GLUT_HAS_MOUSE ((GLenum) 601) -#define GLUT_HAS_SPACEBALL ((GLenum) 602) -#define GLUT_HAS_DIAL_AND_BUTTON_BOX ((GLenum) 603) -#define GLUT_HAS_TABLET ((GLenum) 604) -#define GLUT_NUM_MOUSE_BUTTONS ((GLenum) 605) -#define GLUT_NUM_SPACEBALL_BUTTONS ((GLenum) 606) -#define GLUT_NUM_BUTTON_BOX_BUTTONS ((GLenum) 607) -#define GLUT_NUM_DIALS ((GLenum) 608) -#define GLUT_NUM_TABLET_BUTTONS ((GLenum) 609) -#endif -#if (GLUT_API_VERSION >= 4 || GLUT_XLIB_IMPLEMENTATION >= 13) -#define GLUT_DEVICE_IGNORE_KEY_REPEAT ((GLenum) 610) -#define GLUT_DEVICE_KEY_REPEAT ((GLenum) 611) -#define GLUT_HAS_JOYSTICK ((GLenum) 612) -#define GLUT_OWNS_JOYSTICK ((GLenum) 613) -#define GLUT_JOYSTICK_BUTTONS ((GLenum) 614) -#define GLUT_JOYSTICK_AXES ((GLenum) 615) -#define GLUT_JOYSTICK_POLL_RATE ((GLenum) 616) -#endif - -#if (GLUT_API_VERSION >= 3) -/* glutLayerGet parameters. */ -#define GLUT_OVERLAY_POSSIBLE ((GLenum) 800) -#define GLUT_LAYER_IN_USE ((GLenum) 801) -#define GLUT_HAS_OVERLAY ((GLenum) 802) -#define GLUT_TRANSPARENT_INDEX ((GLenum) 803) -#define GLUT_NORMAL_DAMAGED ((GLenum) 804) -#define GLUT_OVERLAY_DAMAGED ((GLenum) 805) - -#if (GLUT_API_VERSION >= 4 || GLUT_XLIB_IMPLEMENTATION >= 9) -/* glutVideoResizeGet parameters. */ -#define GLUT_VIDEO_RESIZE_POSSIBLE ((GLenum) 900) -#define GLUT_VIDEO_RESIZE_IN_USE ((GLenum) 901) -#define GLUT_VIDEO_RESIZE_X_DELTA ((GLenum) 902) -#define GLUT_VIDEO_RESIZE_Y_DELTA ((GLenum) 903) -#define GLUT_VIDEO_RESIZE_WIDTH_DELTA ((GLenum) 904) -#define GLUT_VIDEO_RESIZE_HEIGHT_DELTA ((GLenum) 905) -#define GLUT_VIDEO_RESIZE_X ((GLenum) 906) -#define GLUT_VIDEO_RESIZE_Y ((GLenum) 907) -#define GLUT_VIDEO_RESIZE_WIDTH ((GLenum) 908) -#define GLUT_VIDEO_RESIZE_HEIGHT ((GLenum) 909) -#endif - -/* glutUseLayer parameters. */ -#define GLUT_NORMAL ((GLenum) 0) -#define GLUT_OVERLAY ((GLenum) 1) - -/* glutGetModifiers return mask. */ -#define GLUT_ACTIVE_SHIFT 1 -#define GLUT_ACTIVE_CTRL 2 -#define GLUT_ACTIVE_ALT 4 - -/* glutSetCursor parameters. */ -/* Basic arrows. */ -#define GLUT_CURSOR_RIGHT_ARROW 0 -#define GLUT_CURSOR_LEFT_ARROW 1 -/* Symbolic cursor shapes. */ -#define GLUT_CURSOR_INFO 2 -#define GLUT_CURSOR_DESTROY 3 -#define GLUT_CURSOR_HELP 4 -#define GLUT_CURSOR_CYCLE 5 -#define GLUT_CURSOR_SPRAY 6 -#define GLUT_CURSOR_WAIT 7 -#define GLUT_CURSOR_TEXT 8 -#define GLUT_CURSOR_CROSSHAIR 9 -/* Directional cursors. */ -#define GLUT_CURSOR_UP_DOWN 10 -#define GLUT_CURSOR_LEFT_RIGHT 11 -/* Sizing cursors. */ -#define GLUT_CURSOR_TOP_SIDE 12 -#define GLUT_CURSOR_BOTTOM_SIDE 13 -#define GLUT_CURSOR_LEFT_SIDE 14 -#define GLUT_CURSOR_RIGHT_SIDE 15 -#define GLUT_CURSOR_TOP_LEFT_CORNER 16 -#define GLUT_CURSOR_TOP_RIGHT_CORNER 17 -#define GLUT_CURSOR_BOTTOM_RIGHT_CORNER 18 -#define GLUT_CURSOR_BOTTOM_LEFT_CORNER 19 -/* Inherit from parent window. */ -#define GLUT_CURSOR_INHERIT 100 -/* Blank cursor. */ -#define GLUT_CURSOR_NONE 101 -/* Fullscreen crosshair (if available). */ -#define GLUT_CURSOR_FULL_CROSSHAIR 102 -#endif - -/* GLUT initialization sub-API. */ -GLUTAPI void APIENTRY glutInit(int *argcp, char **argv); -#if defined(_WIN32) && !defined(GLUT_DISABLE_ATEXIT_HACK) -GLUTAPI void APIENTRY __glutInitWithExit(int *argcp, char **argv, void (__cdecl *exitfunc)(int)); -#ifndef GLUT_BUILDING_LIB -static void APIENTRY glutInit_ATEXIT_HACK(int *argcp, char **argv) { __glutInitWithExit(argcp, argv, exit); } -#define glutInit glutInit_ATEXIT_HACK -#endif -#endif -GLUTAPI void APIENTRY glutInitDisplayMode(unsigned int mode); -#if (GLUT_API_VERSION >= 4 || GLUT_XLIB_IMPLEMENTATION >= 9) -GLUTAPI void APIENTRY glutInitDisplayString(const char *string); -#endif -GLUTAPI void APIENTRY glutInitWindowPosition(int x, int y); -GLUTAPI void APIENTRY glutInitWindowSize(int width, int height); -GLUTAPI void APIENTRY glutMainLoop(void); - -/* GLUT window sub-API. */ -GLUTAPI int APIENTRY glutCreateWindow(const char *title); -#if defined(_WIN32) && !defined(GLUT_DISABLE_ATEXIT_HACK) -GLUTAPI int APIENTRY __glutCreateWindowWithExit(const char *title, void (__cdecl *exitfunc)(int)); -#ifndef GLUT_BUILDING_LIB -static int APIENTRY glutCreateWindow_ATEXIT_HACK(const char *title) { return __glutCreateWindowWithExit(title, exit); } -#define glutCreateWindow glutCreateWindow_ATEXIT_HACK -#endif -#endif -GLUTAPI int APIENTRY glutCreateSubWindow(int win, int x, int y, int width, int height); -GLUTAPI void APIENTRY glutDestroyWindow(int win); -GLUTAPI void APIENTRY glutPostRedisplay(void); -#if (GLUT_API_VERSION >= 4 || GLUT_XLIB_IMPLEMENTATION >= 11) -GLUTAPI void APIENTRY glutPostWindowRedisplay(int win); -#endif -GLUTAPI void APIENTRY glutSwapBuffers(void); -GLUTAPI int APIENTRY glutGetWindow(void); -GLUTAPI void APIENTRY glutSetWindow(int win); -GLUTAPI void APIENTRY glutSetWindowTitle(const char *title); -GLUTAPI void APIENTRY glutSetIconTitle(const char *title); -GLUTAPI void APIENTRY glutPositionWindow(int x, int y); -GLUTAPI void APIENTRY glutReshapeWindow(int width, int height); -GLUTAPI void APIENTRY glutPopWindow(void); -GLUTAPI void APIENTRY glutPushWindow(void); -GLUTAPI void APIENTRY glutIconifyWindow(void); -GLUTAPI void APIENTRY glutShowWindow(void); -GLUTAPI void APIENTRY glutHideWindow(void); -#if (GLUT_API_VERSION >= 3) -GLUTAPI void APIENTRY glutFullScreen(void); -GLUTAPI void APIENTRY glutSetCursor(int cursor); -#if (GLUT_API_VERSION >= 4 || GLUT_XLIB_IMPLEMENTATION >= 9) -GLUTAPI void APIENTRY glutWarpPointer(int x, int y); -#endif - -/* GLUT overlay sub-API. */ -GLUTAPI void APIENTRY glutEstablishOverlay(void); -GLUTAPI void APIENTRY glutRemoveOverlay(void); -GLUTAPI void APIENTRY glutUseLayer(GLenum layer); -GLUTAPI void APIENTRY glutPostOverlayRedisplay(void); -#if (GLUT_API_VERSION >= 4 || GLUT_XLIB_IMPLEMENTATION >= 11) -GLUTAPI void APIENTRY glutPostWindowOverlayRedisplay(int win); -#endif -GLUTAPI void APIENTRY glutShowOverlay(void); -GLUTAPI void APIENTRY glutHideOverlay(void); -#endif - -/* GLUT menu sub-API. */ -GLUTAPI int APIENTRY glutCreateMenu(void (GLUTCALLBACK *func)(int)); -#if defined(_WIN32) && !defined(GLUT_DISABLE_ATEXIT_HACK) -GLUTAPI int APIENTRY __glutCreateMenuWithExit(void (GLUTCALLBACK *func)(int), void (__cdecl *exitfunc)(int)); -#ifndef GLUT_BUILDING_LIB -static int APIENTRY glutCreateMenu_ATEXIT_HACK(void (GLUTCALLBACK *func)(int)) { return __glutCreateMenuWithExit(func, exit); } -#define glutCreateMenu glutCreateMenu_ATEXIT_HACK -#endif -#endif -GLUTAPI void APIENTRY glutDestroyMenu(int menu); -GLUTAPI int APIENTRY glutGetMenu(void); -GLUTAPI void APIENTRY glutSetMenu(int menu); -GLUTAPI void APIENTRY glutAddMenuEntry(const char *label, int value); -GLUTAPI void APIENTRY glutAddSubMenu(const char *label, int submenu); -GLUTAPI void APIENTRY glutChangeToMenuEntry(int item, const char *label, int value); -GLUTAPI void APIENTRY glutChangeToSubMenu(int item, const char *label, int submenu); -GLUTAPI void APIENTRY glutRemoveMenuItem(int item); -GLUTAPI void APIENTRY glutAttachMenu(int button); -GLUTAPI void APIENTRY glutDetachMenu(int button); - -/* GLUT window callback sub-API. */ -GLUTAPI void APIENTRY glutDisplayFunc(void (GLUTCALLBACK *func)(void)); -GLUTAPI void APIENTRY glutReshapeFunc(void (GLUTCALLBACK *func)(int width, int height)); -GLUTAPI void APIENTRY glutKeyboardFunc(void (GLUTCALLBACK *func)(unsigned char key, int x, int y)); -GLUTAPI void APIENTRY glutMouseFunc(void (GLUTCALLBACK *func)(int button, int state, int x, int y)); -GLUTAPI void APIENTRY glutMotionFunc(void (GLUTCALLBACK *func)(int x, int y)); -GLUTAPI void APIENTRY glutPassiveMotionFunc(void (GLUTCALLBACK *func)(int x, int y)); -GLUTAPI void APIENTRY glutEntryFunc(void (GLUTCALLBACK *func)(int state)); -GLUTAPI void APIENTRY glutVisibilityFunc(void (GLUTCALLBACK *func)(int state)); -GLUTAPI void APIENTRY glutIdleFunc(void (GLUTCALLBACK *func)(void)); -GLUTAPI void APIENTRY glutTimerFunc(unsigned int millis, void (GLUTCALLBACK *func)(int value), int value); -GLUTAPI void APIENTRY glutMenuStateFunc(void (GLUTCALLBACK *func)(int state)); -#if (GLUT_API_VERSION >= 2) -GLUTAPI void APIENTRY glutSpecialFunc(void (GLUTCALLBACK *func)(int key, int x, int y)); -GLUTAPI void APIENTRY glutSpaceballMotionFunc(void (GLUTCALLBACK *func)(int x, int y, int z)); -GLUTAPI void APIENTRY glutSpaceballRotateFunc(void (GLUTCALLBACK *func)(int x, int y, int z)); -GLUTAPI void APIENTRY glutSpaceballButtonFunc(void (GLUTCALLBACK *func)(int button, int state)); -GLUTAPI void APIENTRY glutButtonBoxFunc(void (GLUTCALLBACK *func)(int button, int state)); -GLUTAPI void APIENTRY glutDialsFunc(void (GLUTCALLBACK *func)(int dial, int value)); -GLUTAPI void APIENTRY glutTabletMotionFunc(void (GLUTCALLBACK *func)(int x, int y)); -GLUTAPI void APIENTRY glutTabletButtonFunc(void (GLUTCALLBACK *func)(int button, int state, int x, int y)); -#if (GLUT_API_VERSION >= 3) -GLUTAPI void APIENTRY glutMenuStatusFunc(void (GLUTCALLBACK *func)(int status, int x, int y)); -GLUTAPI void APIENTRY glutOverlayDisplayFunc(void (GLUTCALLBACK *func)(void)); -#if (GLUT_API_VERSION >= 4 || GLUT_XLIB_IMPLEMENTATION >= 9) -GLUTAPI void APIENTRY glutWindowStatusFunc(void (GLUTCALLBACK *func)(int state)); -#endif -#if (GLUT_API_VERSION >= 4 || GLUT_XLIB_IMPLEMENTATION >= 13) -GLUTAPI void APIENTRY glutKeyboardUpFunc(void (GLUTCALLBACK *func)(unsigned char key, int x, int y)); -GLUTAPI void APIENTRY glutSpecialUpFunc(void (GLUTCALLBACK *func)(int key, int x, int y)); -GLUTAPI void APIENTRY glutJoystickFunc(void (GLUTCALLBACK *func)(unsigned int buttonMask, int x, int y, int z), int pollInterval); -#endif -#endif -#endif - -/* GLUT color index sub-API. */ -GLUTAPI void APIENTRY glutSetColor(int, GLfloat red, GLfloat green, GLfloat blue); -GLUTAPI GLfloat APIENTRY glutGetColor(int ndx, int component); -GLUTAPI void APIENTRY glutCopyColormap(int win); - -/* GLUT state retrieval sub-API. */ -GLUTAPI int APIENTRY glutGet(GLenum type); -GLUTAPI int APIENTRY glutDeviceGet(GLenum type); -#if (GLUT_API_VERSION >= 2) -/* GLUT extension support sub-API */ -GLUTAPI int APIENTRY glutExtensionSupported(const char *name); -#endif -#if (GLUT_API_VERSION >= 3) -GLUTAPI int APIENTRY glutGetModifiers(void); -GLUTAPI int APIENTRY glutLayerGet(GLenum type); -#endif - -/* GLUT font sub-API */ -GLUTAPI void APIENTRY glutBitmapCharacter(void *font, int character); -GLUTAPI int APIENTRY glutBitmapWidth(void *font, int character); -GLUTAPI void APIENTRY glutStrokeCharacter(void *font, int character); -GLUTAPI int APIENTRY glutStrokeWidth(void *font, int character); -#if (GLUT_API_VERSION >= 4 || GLUT_XLIB_IMPLEMENTATION >= 9) -GLUTAPI int APIENTRY glutBitmapLength(void *font, const unsigned char *string); -GLUTAPI int APIENTRY glutStrokeLength(void *font, const unsigned char *string); -#endif - -/* GLUT pre-built models sub-API */ -GLUTAPI void APIENTRY glutWireSphere(GLdouble radius, GLint slices, GLint stacks); -GLUTAPI void APIENTRY glutSolidSphere(GLdouble radius, GLint slices, GLint stacks); -GLUTAPI void APIENTRY glutWireCone(GLdouble base, GLdouble height, GLint slices, GLint stacks); -GLUTAPI void APIENTRY glutSolidCone(GLdouble base, GLdouble height, GLint slices, GLint stacks); -GLUTAPI void APIENTRY glutWireCube(GLdouble size); -GLUTAPI void APIENTRY glutSolidCube(GLdouble size); -GLUTAPI void APIENTRY glutWireTorus(GLdouble innerRadius, GLdouble outerRadius, GLint sides, GLint rings); -GLUTAPI void APIENTRY glutSolidTorus(GLdouble innerRadius, GLdouble outerRadius, GLint sides, GLint rings); -GLUTAPI void APIENTRY glutWireDodecahedron(void); -GLUTAPI void APIENTRY glutSolidDodecahedron(void); -GLUTAPI void APIENTRY glutWireTeapot(GLdouble size); -GLUTAPI void APIENTRY glutSolidTeapot(GLdouble size); -GLUTAPI void APIENTRY glutWireOctahedron(void); -GLUTAPI void APIENTRY glutSolidOctahedron(void); -GLUTAPI void APIENTRY glutWireTetrahedron(void); -GLUTAPI void APIENTRY glutSolidTetrahedron(void); -GLUTAPI void APIENTRY glutWireIcosahedron(void); -GLUTAPI void APIENTRY glutSolidIcosahedron(void); - -#if (GLUT_API_VERSION >= 4 || GLUT_XLIB_IMPLEMENTATION >= 9) -/* GLUT video resize sub-API. */ -GLUTAPI int APIENTRY glutVideoResizeGet(GLenum param); -GLUTAPI void APIENTRY glutSetupVideoResizing(void); -GLUTAPI void APIENTRY glutStopVideoResizing(void); -GLUTAPI void APIENTRY glutVideoResize(int x, int y, int width, int height); -GLUTAPI void APIENTRY glutVideoPan(int x, int y, int width, int height); - -/* GLUT debugging sub-API. */ -GLUTAPI void APIENTRY glutReportErrors(void); -#endif - -#if (GLUT_API_VERSION >= 4 || GLUT_XLIB_IMPLEMENTATION >= 13) -/* GLUT device control sub-API. */ -/* glutSetKeyRepeat modes. */ -#define GLUT_KEY_REPEAT_OFF 0 -#define GLUT_KEY_REPEAT_ON 1 -#define GLUT_KEY_REPEAT_DEFAULT 2 - -/* Joystick button masks. */ -#define GLUT_JOYSTICK_BUTTON_A 1 -#define GLUT_JOYSTICK_BUTTON_B 2 -#define GLUT_JOYSTICK_BUTTON_C 4 -#define GLUT_JOYSTICK_BUTTON_D 8 - -GLUTAPI void APIENTRY glutIgnoreKeyRepeat(int ignore); -GLUTAPI void APIENTRY glutSetKeyRepeat(int repeatMode); -GLUTAPI void APIENTRY glutForceJoystickFunc(void); - -/* GLUT game mode sub-API. */ -/* glutGameModeGet. */ -#define GLUT_GAME_MODE_ACTIVE ((GLenum) 0) -#define GLUT_GAME_MODE_POSSIBLE ((GLenum) 1) -#define GLUT_GAME_MODE_WIDTH ((GLenum) 2) -#define GLUT_GAME_MODE_HEIGHT ((GLenum) 3) -#define GLUT_GAME_MODE_PIXEL_DEPTH ((GLenum) 4) -#define GLUT_GAME_MODE_REFRESH_RATE ((GLenum) 5) -#define GLUT_GAME_MODE_DISPLAY_CHANGED ((GLenum) 6) - -GLUTAPI void APIENTRY glutGameModeString(const char *string); -GLUTAPI int APIENTRY glutEnterGameMode(void); -GLUTAPI void APIENTRY glutLeaveGameMode(void); -GLUTAPI int APIENTRY glutGameModeGet(GLenum mode); -#endif - -#ifdef __cplusplus -} - -#endif - -#ifdef GLUT_APIENTRY_DEFINED -# undef GLUT_APIENTRY_DEFINED -# undef APIENTRY -#endif - -#ifdef GLUT_WINGDIAPI_DEFINED -# undef GLUT_WINGDIAPI_DEFINED -# undef WINGDIAPI -#endif - -#ifdef GLUT_DEFINED___CDECL -# undef GLUT_DEFINED___CDECL -# undef __cdecl -#endif - -#ifdef GLUT_DEFINED__CRTIMP -# undef GLUT_DEFINED__CRTIMP -# undef _CRTIMP -#endif - -#endif /* __glut_h__ */ +#ifndef __GLUT_H__ +#define __GLUT_H__ + +/* + * glut.h + * + * The freeglut library include file + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL + * PAWEL W. OLSZTA BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER + * IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN + * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + */ + +#include "freeglut_std.h" + +/*** END OF FILE ***/ + +#endif /* __GLUT_H__ */ diff --git a/PROJ1_WIN/shared/freeglut/lib/freeglut.lib b/PROJ1_WIN/shared/freeglut/lib/freeglut.lib index 20b9efe..9ce1021 100755 Binary files a/PROJ1_WIN/shared/freeglut/lib/freeglut.lib and b/PROJ1_WIN/shared/freeglut/lib/freeglut.lib differ diff --git a/README.md b/README.md index 5982ee8..df9e6fa 100644 --- a/README.md +++ b/README.md @@ -1,148 +1,25 @@ -------------------------------------------------------------------------------- -CIS565: Project 1: CUDA Raytracer -------------------------------------------------------------------------------- -Fall 2012 -------------------------------------------------------------------------------- -Due Tuesday, 09/25/2012 -------------------------------------------------------------------------------- - -------------------------------------------------------------------------------- -NOTE: -------------------------------------------------------------------------------- -This project requires an NVIDIA graphics card with CUDA capability! Any card after the Geforce 8xxx series will work. If you do not have an NVIDIA graphics card in the machine you are working on, feel free to use any machine in the SIG Lab or in Moore100 labs. All machines in the SIG Lab and Moore100 are equipped with CUDA capable NVIDIA graphics cards. If this too proves to be a problem, please contact Patrick or Karl as soon as possible. - -------------------------------------------------------------------------------- -INTRODUCTION: -------------------------------------------------------------------------------- -In this project, you will implement a CUDA based raytracer capable of generating raytraced rendered images extremely quickly. For those of you who have taken CIS460/560, building a raytracer should not be anything new to you from a conceptual point of you. For those of you that have not taken CIS460/560, raytracing is a technique for generating images by tracing rays of light through pixels in an image plane out into a scene and following the way the rays of light bounce and interact with objects in the scene. More information can be found here: http://en.wikipedia.org/wiki/Ray_tracing_(graphics). - -The ultimate purpose of this project is to serve as the foundation for your next project: a full CUDA based global illumination pathtracer. Raytracing can be thought of as a way to generate an isolated version of the direct light contribution in a global illumination scenario. - -Since in this class we are concerned with working in generating actual images and less so with mundane tasks like file I/O, this project includes basecode for loading a scene description file format, described below, and various other things that generally make up the render "harness" that takes care of everything up to the rendering itself. The core renderer is left for you to implement. -Finally, note that while this basecode is meant to serve as a strong starting point for a CUDA raytracer, you are not required to use this basecode if you wish, and you may also change any part of the basecode specification as you please, so long as the final rendered result is correct. - -------------------------------------------------------------------------------- -CONTENTS: -------------------------------------------------------------------------------- -The Project1 root directory contains the following subdirectories: - -* src/ contains the source code for the project. Both the Windows Visual Studio solution and the OSX makefile reference this folder for all source; the base source code compiles on OSX and Windows without modification. -* scenes/ contains an example scene description file. -* renders/ contains an example render of the given example scene file. -* PROJ1_WIN/ contains a Windows Visual Studio 2010 project and all dependencies needed for building and running on Windows 7. -* PROJ1_OSX/ contains a OSX makefile, run script, and all dependencies needed for building and running on Mac OSX 10.8. - -The Windows and OSX versions of the project build and run exactly the same way as in Project0. - -------------------------------------------------------------------------------- -REQUIREMENTS: -------------------------------------------------------------------------------- -In this project, you are given code for: - -* Loading, reading, and storing the TAKUAscene scene description format -* Example functions that can run on both the CPU and GPU for generating random numbers, spherical intersection testing, and surface point sampling on cubes -* A class for handling image operations and saving images -* Working code for CUDA-GL interop - -You will need to implement the following features: - -* Raycasting from a camera into a scene through a pixel grid -* Phong lighting for one point light source -* Diffuse lambertian surfaces -* Raytraced shadows -* Cube intersection testing -* Sphere surface point sampling - -You are also required to implement at least 2 of the following features: - -* Specular reflection -* Soft shadows and area lights -* Texture mapping -* Bump mapping -* Depth of field -* Supersampled antialiasing -* Refraction, i.e. glass -* OBJ Mesh loading and renderin -* Interactive camera - -------------------------------------------------------------------------------- -BASE CODE TOUR: -------------------------------------------------------------------------------- -You will be working in three files: raytraceKernel.cu, intersections.h, and interactions.h. Within these files, areas that you need to complete are marked with a TODO comment. Areas that are useful to and serve as hints for optional features are marked with TODO (Optional). Functions that are useful for reference are marked with the comment LOOK. - -* raytraceKernel.cu contains the core raytracing CUDA kernel. You will need to complete: - * cudaRaytraceCore() handles kernel launches and memory management; this function already contains example code for launching kernels, transferring geometry and cameras from the host to the device, and transferring image buffers from the host to the device and back. You will have to complete this function to support passing materials and lights to CUDA. - * raycastFromCameraKernel() is a function that you need to implement. This function once correctly implemented should handle camera raycasting. - * raytraceRay() is the core raytracing CUDA kernel; all of your raytracing logic should be implemented in this CUDA kernel. raytraceRay() should take in a camera, image buffer, geometry, materials, and lights, and should trace a ray through the scene and write the resultant color to a pixel in the image buffer. - -* intersections.h contains functions for geometry intersection testing and point generation. You will need to complete: - * boxIntersectionTest(), which takes in a box and a ray and performs an intersection test. This function should work in the same way as sphereIntersectionTest(). - * getRandomPointOnSphere(), which takes in a sphere and returns a random point on the surface of the sphere with an even probability distribution. This function should work in the same way as getRandomPointOnCube(). - -* interactions.h contains functions for ray-object interactions that define how rays behave upon hitting materials and objects. You will need to complete: - * getRandomDirectionInSphere(), which generates a random direction in a sphere with a uniform probability. This function works in a fashion similar to that of calculateRandomDirectionInHemisphere(), which generates a random cosine-weighted direction in a hemisphere. - * calculateBSDF(), which takes in an incoming ray, normal, material, and other information, and returns an outgoing ray. You can either implement this function for ray-surface interactions, or you can replace it with your own function(s). - -You will also want to familiarize yourself with: - -* sceneStructs.h, which contains definitions for how geometry, materials, lights, cameras, and animation frames are stored in the renderer. -* utilities.h, which serves as a kitchen-sink of useful functions - -------------------------------------------------------------------------------- -NOTES ON GLM: -------------------------------------------------------------------------------- -This project uses GLM, the GL Math library, for linear algebra. You need to know two important points on how GLM is used in this project: - -* In this project, indices in GLM vectors (such as vec3, vec4), are accessed via swizzling. So, instead of v[0], v.x is used, and instead of v[1], v.y is used, and so on and so forth. -* GLM Matrix operations work fine on NVIDIA Fermi cards and later, but pre-Fermi cards do not play nice with GLM matrices. As such, in this project, GLM matrices are replaced with a custom matrix struct, called a cudaMat4, found in cudaMat4.h. A custom function for multiplying glm::vec4s and cudaMat4s is provided as multiplyMV() in intersections.h. - -------------------------------------------------------------------------------- -TAKUAscene FORMAT: -------------------------------------------------------------------------------- -This project uses a custom scene description format, called TAKUAscene. TAKUAscene files are flat text files that describe all geometry, materials, lights, cameras, render settings, and animation frames inside of the scene. Items in the format are delimited by new lines, and comments can be added at the end of each line preceded with a double-slash. - -Materials are defined in the following fashion: - -* MATERIAL (material ID) //material header -* RGB (float r) (float g) (float b) //diffuse color -* SPECX (float specx) //specular exponent -* SPECRGB (float r) (float g) (float b) //specular color -* REFL (bool refl) //reflectivity flag, 0 for no, 1 for yes -* REFR (bool refr) //refractivity flag, 0 for no, 1 for yes -* REFRIOR (float ior) //index of refraction for Fresnel effects -* SCATTER (float scatter) //scatter flag, 0 for no, 1 for yes -* ABSCOEFF (float r) (float b) (float g) //absorption coefficient for scattering -* RSCTCOEFF (float rsctcoeff) //reduced scattering coefficient -* EMITTANCE (float emittance) //the emittance of the material. Anything >0 makes the material a light source. - -Cameras are defined in the following fashion: - -* CAMERA //camera header -* RES (float x) (float y) //resolution -* FOVY (float fovy) //vertical field of view half-angle. the horizonal angle is calculated from this and the reslution -* ITERATIONS (float interations) //how many iterations to refine the image, only relevant for supersampled antialiasing, depth of field, area lights, and other distributed raytracing applications -* FILE (string filename) //file to output render to upon completion -* frame (frame number) //start of a frame -* EYE (float x) (float y) (float z) //camera's position in worldspace -* VIEW (float x) (float y) (float z) //camera's view direction -* UP (float x) (float y) (float z) //camera's up vector - -Objects are defined in the following fashion: -* OBJECT (object ID) //object header -* (cube OR sphere OR mesh) //type of object, can be either "cube", "sphere", or "mesh". Note that cubes and spheres are unit sized and centered at the origin. -* material (material ID) //material to assign this object -* frame (frame number) //start of a frame -* TRANS (float transx) (float transy) (float transz) //translation -* ROTAT (float rotationx) (float rotationy) (float rotationz) //rotation -* SCALE (float scalex) (float scaley) (float scalez) //scale - -An example TAKUAscene file setting up two frames inside of a Cornell Box can be found in the scenes/ directory. - -------------------------------------------------------------------------------- -SUBMISSION -------------------------------------------------------------------------------- -As with the previous project, you should fork this project and work inside of your fork. Upon completion, commit your finished project back to your fork. DO NOT make a pull request to merge back to the master version. -You should include a README file detailing what features you implemented, any difficulties you had, and so on and so forth. - - - + +Features that are down. + +* Raycasting from a camera into a scene through a pixel grid +* Phong lighting for one point light source +* Diffuse lambertian surfaces +* Raytraced shadows +* Cube intersection testing +* Sphere surface point sampling + + +* Specular reflection +* Texture mapping +* Bump mapping +* Interactive camera +* Little refraction, just trace refraction rays. + +I include two sample scenes in the scenes file. I choose the format of input scene and add texture map and bump map. Declare textures at first and then +link them to object in the object description. + +http://tinyworld-demi.blogspot.com/ + + +Run Program +In the debug mode, RUN, input the file scene file name. I put the files in the scenes file.. \ No newline at end of file diff --git a/scenes/scene1.txt b/scenes/scene1.txt new file mode 100644 index 0000000..a6192db --- /dev/null +++ b/scenes/scene1.txt @@ -0,0 +1,231 @@ +MAP 0 +FILE ../../textures/checker.jpg + +MAP 1 +FILE ../../textures/angrybird.jpg + +MAP 2 +FILE ../../textures/yoyo.jpg + +MATERIAL 0 //floor +RGB 0.2 0.2 0.9 +SPECEX 0 +SPECRGB 1 1 1 +REFL 1 +REFR 0 +REFRIOR 0 +SCATTER 0 +ABSCOEFF 0 0 0 +RSCTCOEFF 0 +EMITTANCE 0 + +MATERIAL 1 //diffuse sphere texture +RGB .2 .7 .5 +SPECEX 40 +SPECRGB 1 1 1 +REFL 0 +REFR 0 +REFRIOR 0 +SCATTER 0 +ABSCOEFF 0 0 0 +RSCTCOEFF 0 +EMITTANCE 0 + +MATERIAL 2 //specular sphere texture +RGB .15 .48 .1 +SPECEX 20 +SPECRGB 1 1 1 +REFL 1 +REFR 0 +REFRIOR 0 +SCATTER 0 +ABSCOEFF 0 0 0 +RSCTCOEFF 0 +EMITTANCE 0 + +MATERIAL 3 //red specular +RGB .63 .3 .1 +SPECEX 20 +SPECRGB 1 1 1 +REFL 0 +REFR 0 +REFRIOR 2 +SCATTER 0 +ABSCOEFF 0 0 0 +RSCTCOEFF 0 +EMITTANCE 0 + +MATERIAL 4 //white glossy +RGB 0.0 0.0 0.0 +SPECEX 40 +SPECRGB 1 1 1 +REFL 0 +REFR 1 +REFRIOR 2.2 +SCATTER 0 +ABSCOEFF 0 0 0 +RSCTCOEFF 0 +EMITTANCE 0 + +MATERIAL 5 //glass +RGB 0 0 0 +SPECEX 0 +SPECRGB 1 1 1 +REFL 0 +REFR 1 +REFRIOR 2.2 +SCATTER 0 +ABSCOEFF .02 5.1 5.7 +RSCTCOEFF 13 +EMITTANCE 0 + +MATERIAL 6 //green glossy +RGB .15 .48 .1 +SPECEX 0 +SPECRGB 1 1 1 +REFL 0 +REFR 0 +REFRIOR 2.6 +SCATTER 0 +ABSCOEFF 0 0 0 +RSCTCOEFF 0 +EMITTANCE 0 + +MATERIAL 7 //light +RGB 1 1 1 +SPECEX 0 +SPECRGB 0 0 0 +REFL 0 +REFR 0 +REFRIOR 0 +SCATTER 0 +ABSCOEFF 0 0 0 +RSCTCOEFF 0 +EMITTANCE 1 + +MATERIAL 8 //light +RGB 1 1 1 +SPECEX 0 +SPECRGB 0 0 0 +REFL 0 +REFR 0 +REFRIOR 0 +SCATTER 0 +ABSCOEFF 0 0 0 +RSCTCOEFF 0 +EMITTANCE 15 + +CAMERA +RES 800 800 +FOVY 25 +ITERATIONS 5000 +FILE renders/sampleScene.bmp +frame 0 +EYE 20 20 20 +VIEW -1 -1 -1 +UP -1 1 -1 +frame 1 +EYE 20 20 20 +VIEW -1 -1 -1 +UP -1 1 -1 + +OBJECT 0 +cube +material 0 +noramlmap +texturemap 0 +frame 0 +TRANS 0 0 0 +ROTAT 0 0 90 +SCALE .01 100 100 +frame 1 +TRANS 0 0 0 +ROTAT 0 0 90 +SCALE .01 100 100 + + + +OBJECT 1 +sphere +material 8 +noramlmap +texturemap +frame 0 +TRANS 30 30 30 +ROTAT 0 0 0 +SCALE 0.5 0.5 0.5 +frame 1 +TRANS 30 30 30 +ROTAT 0 0 0 +SCALE 0.5 0.5 0.5 + + +OBJECT 2 +sphere +material 1 +noramlmap +texturemap +frame 0 +TRANS -4 2 0 +ROTAT 0 180 0 +SCALE 3 3 3 +frame 1 +TRANS -4 2 0 +ROTAT 0 180 0 +SCALE 3 3 3 + +OBJECT 3 +cube +material 1 +noramlmap +texturemap 1 +frame 0 +TRANS 4 2 0 +ROTAT 0 0 0 +SCALE 3 3 3 +frame 1 +TRANS 4 2 0 +ROTAT 0 0 0 +SCALE 3 3 3 + +OBJECT 4 +cube +material 1 +noramlmap 1 +texturemap +frame 0 +TRANS 4 5 0 +ROTAT 0 0 0 +SCALE 3 3 3 +frame 1 +TRANS 4 5 0 +ROTAT 0 0 0 +SCALE 3 3 3 + +OBJECT 5 +sphere +material 2 +noramlmap +texturemap +frame 0 +TRANS 0 6 0 +ROTAT 0 0 0 +SCALE 3 3 3 +frame 1 +TRANS 0 6 0 +ROTAT 0 0 0 +SCALE 3 3 3 + +OBJECT 6 +sphere +material 3 +noramlmap 2 +texturemap +frame 0 +TRANS -4 2 4 +ROTAT 0 235 0 +SCALE 3 3 3 +frame 1 +TRANS -4 2 4 +ROTAT 0 235 0 +SCALE 3 3 3 diff --git a/scenes/sampleScene.txt b/scenes/scene2.txt old mode 100755 new mode 100644 similarity index 86% rename from scenes/sampleScene.txt rename to scenes/scene2.txt index 936135b..78a8b4a --- a/scenes/sampleScene.txt +++ b/scenes/scene2.txt @@ -1,229 +1,247 @@ -MATERIAL 0 //white diffuse -RGB 1 1 1 -SPECEX 0 -SPECRGB 1 1 1 -REFL 0 -REFR 0 -REFRIOR 0 -SCATTER 0 -ABSCOEFF 0 0 0 -RSCTCOEFF 0 -EMITTANCE 0 - -MATERIAL 1 //red diffuse -RGB .63 .06 .04 -SPECEX 0 -SPECRGB 1 1 1 -REFL 0 -REFR 0 -REFRIOR 0 -SCATTER 0 -ABSCOEFF 0 0 0 -RSCTCOEFF 0 -EMITTANCE 0 - -MATERIAL 2 //green diffuse -RGB .15 .48 .09 -SPECEX 0 -SPECRGB 1 1 1 -REFL 0 -REFR 0 -REFRIOR 0 -SCATTER 0 -ABSCOEFF 0 0 0 -RSCTCOEFF 0 -EMITTANCE 0 - -MATERIAL 3 //red glossy -RGB .63 .06 .04 -SPECEX 0 -SPECRGB 1 1 1 -REFL 0 -REFR 0 -REFRIOR 2 -SCATTER 0 -ABSCOEFF 0 0 0 -RSCTCOEFF 0 -EMITTANCE 0 - -MATERIAL 4 //white glossy -RGB 1 1 1 -SPECEX 0 -SPECRGB 1 1 1 -REFL 0 -REFR 0 -REFRIOR 2 -SCATTER 0 -ABSCOEFF 0 0 0 -RSCTCOEFF 0 -EMITTANCE 0 - -MATERIAL 5 //glass -RGB 0 0 0 -SPECEX 0 -SPECRGB 1 1 1 -REFL 0 -REFR 1 -REFRIOR 2.2 -SCATTER 0 -ABSCOEFF .02 5.1 5.7 -RSCTCOEFF 13 -EMITTANCE 0 - -MATERIAL 6 //green glossy -RGB .15 .48 .09 -SPECEX 0 -SPECRGB 1 1 1 -REFL 0 -REFR 0 -REFRIOR 2.6 -SCATTER 0 -ABSCOEFF 0 0 0 -RSCTCOEFF 0 -EMITTANCE 0 - -MATERIAL 7 //light -RGB 1 1 1 -SPECEX 0 -SPECRGB 0 0 0 -REFL 0 -REFR 0 -REFRIOR 0 -SCATTER 0 -ABSCOEFF 0 0 0 -RSCTCOEFF 0 -EMITTANCE 1 - -MATERIAL 8 //light -RGB 1 1 1 -SPECEX 0 -SPECRGB 0 0 0 -REFL 0 -REFR 0 -REFRIOR 0 -SCATTER 0 -ABSCOEFF 0 0 0 -RSCTCOEFF 0 -EMITTANCE 15 - -CAMERA -RES 800 800 -FOVY 25 -ITERATIONS 5000 -FILE renders/sampleScene.bmp -frame 0 -EYE 0 4.5 12 -VIEW 0 0 -1 -UP 0 1 0 -frame 1 -EYE 0 4.5 12 -VIEW 0 0 -1 -UP 0 1 0 - -OBJECT 0 -cube -material 0 -frame 0 -TRANS 0 0 0 -ROTAT 0 0 90 -SCALE .01 10 10 -frame 1 -TRANS 0 0 0 -ROTAT 0 0 90 -SCALE .01 10 10 - -OBJECT 1 -cube -material 0 -frame 0 -TRANS 0 5 -5 -ROTAT 0 90 0 -SCALE .01 10 10 -frame 1 -TRANS 0 5 -5 -ROTAT 0 90 0 -SCALE .01 10 10 - -OBJECT 2 -cube -material 0 -frame 0 -TRANS 0 10 0 -ROTAT 0 0 90 -SCALE .01 10 10 -frame 1 -TRANS 0 10 0 -ROTAT 0 0 90 -SCALE .01 10 10 - -OBJECT 3 -cube -material 1 -frame 0 -TRANS -5 5 0 -ROTAT 0 0 0 -SCALE .01 10 10 -frame 1 -TRANS -5 5 0 -ROTAT 0 0 0 -SCALE .01 10 10 - -OBJECT 4 -cube -material 2 -frame 0 -TRANS 5 5 0 -ROTAT 0 0 0 -SCALE .01 10 10 -frame 1 -TRANS 5 5 0 -ROTAT 0 0 0 -SCALE .01 10 10 - -OBJECT 5 -sphere -material 4 -frame 0 -TRANS 0 2 0 -ROTAT 0 180 0 -SCALE 3 3 3 -frame 1 -TRANS 0 2 0 -ROTAT 0 180 0 -SCALE 3 3 3 - -OBJECT 6 -sphere -material 3 -frame 0 -TRANS 2 5 2 -ROTAT 0 180 0 -SCALE 2.5 2.5 2.5 -frame 1 -TRANS 2 5 2 -ROTAT 0 180 0 -SCALE 2.5 2.5 2.5 - -OBJECT 7 -sphere -material 6 -frame 0 -TRANS -2 5 -2 -ROTAT 0 180 0 -SCALE 3 3 3 -frame 1 -TRANS -2 5 -2 -ROTAT 0 180 0 -SCALE 3 3 3 - -OBJECT 8 -cube -material 8 -frame 0 -TRANS 0 10 0 -ROTAT 0 0 90 -SCALE .3 3 3 -frame 1 -TRANS 0 10 0 -ROTAT 0 0 90 -SCALE .3 3 3 \ No newline at end of file +MATERIAL 0 //white diffuse +RGB 1 1 1 +SPECEX 0 +SPECRGB 1 1 1 +REFL 0 +REFR 0 +REFRIOR 0 +SCATTER 0 +ABSCOEFF 0 0 0 +RSCTCOEFF 0 +EMITTANCE 0 + +MATERIAL 1 //red reflective +RGB .63 .06 .04 +SPECEX 0 +SPECRGB 1 1 1 +REFL 0 +REFR 0 +REFRIOR 0 +SCATTER 0 +ABSCOEFF 0 0 0 +RSCTCOEFF 0 +EMITTANCE 0 + +MATERIAL 2 //green diffuse +RGB .15 .48 .09 +SPECEX 0 +SPECRGB 1 1 1 +REFL 0 +REFR 0 +REFRIOR 0 +SCATTER 0 +ABSCOEFF 0 0 0 +RSCTCOEFF 0 +EMITTANCE 0 + +MATERIAL 3 //red reflect +RGB .63 .06 .04 +SPECEX 20 +SPECRGB 1 1 1 +REFL 1 +REFR 0 +REFRIOR 2 +SCATTER 0 +ABSCOEFF 0 0 0 +RSCTCOEFF 0 +EMITTANCE 0 + +MATERIAL 4 //white glossy +RGB 1 1 1 +SPECEX 0 +SPECRGB 1 1 1 +REFL 0 +REFR 0 +REFRIOR 2 +SCATTER 0 +ABSCOEFF 0 0 0 +RSCTCOEFF 0 +EMITTANCE 0 + +MATERIAL 5 //glass +RGB 0 0 0 +SPECEX 0 +SPECRGB 1 1 1 +REFL 0 +REFR 1 +REFRIOR 2.2 +SCATTER 0 +ABSCOEFF .02 5.1 5.7 +RSCTCOEFF 13 +EMITTANCE 0 + +MATERIAL 6 //green glossy +RGB .15 .48 .09 +SPECEX 0 +SPECRGB 1 1 1 +REFL 0 +REFR 0 +REFRIOR 2.6 +SCATTER 0 +ABSCOEFF 0 0 0 +RSCTCOEFF 0 +EMITTANCE 0 + +MATERIAL 7 //light +RGB 1 1 1 +SPECEX 0 +SPECRGB 0 0 0 +REFL 0 +REFR 0 +REFRIOR 0 +SCATTER 0 +ABSCOEFF 0 0 0 +RSCTCOEFF 0 +EMITTANCE 1 + +MATERIAL 8 //light +RGB 1 1 1 +SPECEX 0 +SPECRGB 0 0 0 +REFL 0 +REFR 0 +REFRIOR 0 +SCATTER 0 +ABSCOEFF 0 0 0 +RSCTCOEFF 0 +EMITTANCE 15 + +CAMERA +RES 800 800 +FOVY 25 +ITERATIONS 5000 +FILE renders/sampleScene.bmp +frame 0 +EYE 0 4.5 12 +VIEW 0 0 -1 +UP 0 1 0 +frame 1 +EYE 0 4.5 12 +VIEW 0 0 -1 +UP 0 1 0 + +OBJECT 0 +cube +material 0 +noramlmap +texturemap +frame 0 +TRANS 0 0 0 +ROTAT 0 0 90 +SCALE .01 10 10 +frame 1 +TRANS 0 0 0 +ROTAT 0 0 90 +SCALE .01 10 10 + +OBJECT 1 +cube +material 0 +noramlmap +texturemap +frame 0 +TRANS 0 5 -5 +ROTAT 0 90 0 +SCALE .01 10 10 +frame 1 +TRANS 0 5 -5 +ROTAT 0 90 0 +SCALE .01 10 10 + +OBJECT 2 +cube +material 0 +noramlmap +texturemap +frame 0 +TRANS 0 10 0 +ROTAT 0 0 90 +SCALE .01 10 10 +frame 1 +TRANS 0 10 0 +ROTAT 0 0 90 +SCALE .01 10 10 + +OBJECT 3 +cube +material 1 +noramlmap +texturemap +frame 0 +TRANS -5 5 0 +ROTAT 0 0 0 +SCALE .01 10 10 +frame 1 +TRANS -5 5 0 +ROTAT 0 0 0 +SCALE .01 10 10 + +OBJECT 4 +cube +material 2 +noramlmap +texturemap +frame 0 +TRANS 5 5 0 +ROTAT 0 0 0 +SCALE .01 10 10 +frame 1 +TRANS 5 5 0 +ROTAT 0 0 0 +SCALE .01 10 10 + +OBJECT 5 +cube +material 8 +noramlmap +texturemap +frame 0 +TRANS 0 10 0 +ROTAT 0 0 90 +SCALE .3 3 3 +frame 1 +TRANS 0 10 0 +ROTAT 0 0 90 +SCALE .3 3 3 + +OBJECT 6 +sphere +material 3 +noramlmap +texturemap +frame 0 +TRANS 0 2 0 +ROTAT 0 180 0 +SCALE 3 3 3 +frame 1 +TRANS 0 2 0 +ROTAT 0 180 0 +SCALE 3 3 3 + +OBJECT 7 +sphere +material 5 +noramlmap +texturemap +frame 0 +TRANS 2 5 2 +ROTAT 0 180 0 +SCALE 2.5 2.5 2.5 +frame 1 +TRANS 2 5 2 +ROTAT 0 180 0 +SCALE 2.5 2.5 2.5 + +OBJECT 8 +sphere +material 6 +noramlmap +texturemap +frame 0 +TRANS -2 5 -2 +ROTAT 0 180 0 +SCALE 3 3 3 +frame 1 +TRANS -2 5 -2 +ROTAT 0 180 0 +SCALE 3 3 3 diff --git a/src/interactions.h b/src/interactions.h index e18cfff..a01bab7 100755 --- a/src/interactions.h +++ b/src/interactions.h @@ -40,21 +40,52 @@ __host__ __device__ bool calculateScatterAndAbsorption(ray& r, float& depth, Ab //TODO (OPTIONAL): IMPLEMENT THIS FUNCTION __host__ __device__ glm::vec3 calculateTransmissionDirection(glm::vec3 normal, glm::vec3 incident, float incidentIOR, float transmittedIOR) { - return glm::vec3(0,0,0); + + return glm::normalize(incident - 2 * glm::dot(incident, normal) * normal); } //TODO (OPTIONAL): IMPLEMENT THIS FUNCTION __host__ __device__ glm::vec3 calculateReflectionDirection(glm::vec3 normal, glm::vec3 incident) { //nothing fancy here - return glm::vec3(0,0,0); + + return glm::normalize(incident - 2 * glm::dot(incident, normal) * normal); } //TODO (OPTIONAL): IMPLEMENT THIS FUNCTION -__host__ __device__ Fresnel calculateFresnel(glm::vec3 normal, glm::vec3 incident, float incidentIOR, float transmittedIOR, glm::vec3 reflectionDirection, glm::vec3 transmissionDirection) { +__host__ __device__ Fresnel calculateFresnel(glm::vec3 normal, glm::vec3 incident, float index, glm::vec3 & transmissionDirection) { Fresnel fresnel; - - fresnel.reflectionCoefficient = 1; - fresnel.transmissionCoefficient = 0; + bool fullReflect = false; + + + float r0 = 1.0 - 2.0 / (1.0 + index); + r0 *= r0; + float cosI = - glm::dot(incident,normal); + float sinT2 = index * index * (1.0 - cosI * cosI); + if(index > 1) + { + + if(sinT2 > 1.0) + fullReflect = true; + cosI = sqrt(1.0 - sinT2); + } + + if(fullReflect) + { + fresnel.reflectionCoefficient = 1.0; + fresnel.transmissionCoefficient = 0.0; + transmissionDirection = glm::vec3(0,0,0); + + } + else + { + + float x = 1.0 - cosI; + fresnel.reflectionCoefficient = r0 + (1.0 - r0) * x * x * x * x * x; + fresnel.transmissionCoefficient = 1.0 - fresnel.reflectionCoefficient; + cosI = - glm::dot(incident,normal); + transmissionDirection = glm::normalize(index * incident + float(index * cosI - sqrt(1.0 - sinT2) ) * normal); + + } return fresnel; } @@ -90,7 +121,12 @@ __host__ __device__ glm::vec3 calculateRandomDirectionInHemisphere(glm::vec3 nor //Now that you know how cosine weighted direction generation works, try implementing non-cosine (uniform) weighted random direction generation. //This should be much easier than if you had to implement calculateRandomDirectionInHemisphere. __host__ __device__ glm::vec3 getRandomDirectionInSphere(float xi1, float xi2) { - return glm::vec3(0,0,0); + + glm::vec3 dir = glm::vec3(0,0,0); + dir.y = glm::cos(xi1); + dir.x = glm::sin(xi1) * glm::cos(xi2); + dir.z = glm::sin(xi1) * glm::sin(xi2); + return dir; } //TODO (PARTIALLY OPTIONAL): IMPLEMENT THIS FUNCTION diff --git a/src/intersections.h b/src/intersections.h index 2d9dcc8..fc59f54 100755 --- a/src/intersections.h +++ b/src/intersections.h @@ -11,7 +11,9 @@ #include "glm/glm.hpp" #include "utilities.h" #include - +#define ANGTORAD 0.01745329251994 +#define boxEpsilon 0.0005 +#define sphereEpsilon 0.0001 //Some forward declarations __host__ __device__ glm::vec3 getPointOnRay(ray r, float t); __host__ __device__ glm::vec3 multiplyMV(cudaMat4 m, glm::vec4 v); @@ -43,7 +45,7 @@ __host__ __device__ bool epsilonCheck(float a, float b){ //Self explanatory __host__ __device__ glm::vec3 getPointOnRay(ray r, float t){ - return r.origin + float(t-.0001)*glm::normalize(r.direction); + return r.origin + float(t - 0.0005)*glm::normalize(r.direction); } //LOOK: This is a custom function for multiplying cudaMat4 4x4 matrixes with vectors. @@ -72,7 +74,211 @@ __host__ __device__ glm::vec3 getSignOfRay(ray r){ //Cube intersection test, return -1 if no intersection, otherwise, distance to intersection __host__ __device__ float boxIntersectionTest(staticGeom box, ray r, glm::vec3& intersectionPoint, glm::vec3& normal){ - return -1; + //size = 1.0 + glm::vec3 ro = multiplyMV(box.inverseTransform, glm::vec4(r.origin, 1.0f)); + glm::vec3 rd = glm::normalize(multiplyMV(box.inverseTransform, glm::vec4(r.direction, 0.0f))); + ray rt; rt.origin = ro; rt.direction = rd; + + + int trace_min = -1, trace_max = -1; // 0 x-0.5 1 x0.5 2 y-0.5 3 y0.5 4 z-0.5 5 z0.5 + float min = -1000000, max = 10000000; + float tmpmin, tmpmax; + //x planes + + if(epsilonCheck(rd.x, 0)) + { + if(ro.x < -0.5 || ro.x > 0.5) + return -1; + } + else + { + float tmp1 = (-0.5 - ro.x) / (rd.x); + float tmp2 = (0.5 - ro.x ) / (rd.x); + + + + float tmp_trace_min = 0; + tmpmin = tmp1; + if(tmpmin > tmp2) + { + tmp_trace_min = 1; + tmpmin = tmp2; + } + + float tmp_trace_max = 1; + tmpmax = tmp2; + if(tmpmax < tmp1) + { + tmp_trace_max = 0; + tmpmax = tmp1; + } + + + if(tmpmax < float(boxEpsilon)) + return -1; + //if(tmpmin > max || tmpmax < min) + //return -1; + + if(min < tmpmin) + { + trace_min = tmp_trace_min; + min = glm::max(tmpmin,0.0f); + } + + if(max > tmpmax) + { + trace_max = tmp_trace_max; + max = tmpmax; + } + + } + + + + if(epsilonCheck(rd.y, 0)) + { + if(ro.y < -0.5 || ro.y > 0.5) + return -1; + } + else + { + + float tmp1 = (-0.5 - ro.y) / (rd.y); + float tmp2 = (0.5 - ro.y) / (rd.y); + + float tmp_trace_min = 2; + tmpmin = tmp1; + if(tmpmin > tmp2) + { + tmp_trace_min = 3; + tmpmin = tmp2; + } + + float tmp_trace_max = 3; + tmpmax = tmp2; + if(tmpmax < tmp1) + { + tmp_trace_max = 2; + tmpmax = tmp1; + } + + if(tmpmax < float(boxEpsilon)) + return -1; + + if(tmpmin > max || tmpmax < min) + return -1; + + if(min < tmpmin) + { + trace_min = tmp_trace_min; + min = glm::max(tmpmin,0.0f); + } + + if(max > tmpmax) + { + trace_max = tmp_trace_max; + max = tmpmax; + } + + } + + + if(epsilonCheck(rd.z,0)) + { + if(ro.z < -0.5 || ro.z > 0.5) + return -1; + } + else + { + + float tmp1 = (-0.5 - ro.z) / (rd.z); + float tmp2 = (0.5 - ro.z) / (rd.z); + + + + float tmp_trace_min = 4; + tmpmin = tmp1; + if(tmpmin > tmp2) + { + tmp_trace_min = 5; + tmpmin = tmp2; + } + + float tmp_trace_max = 5; + tmpmax = tmp2; + if(tmpmax < tmp1) + { + tmp_trace_max = 4; + tmpmax = tmp1; + } + + if(tmpmax < float(boxEpsilon)) + return -1; + + if(tmpmin > max || tmpmax < min) + return -1; + + if(min < tmpmin) + { + trace_min = tmp_trace_min; + min = glm::max(tmpmin,0.0f); + } + + if(max > tmpmax) + { + trace_max = tmp_trace_max; + max = tmpmax; + } + + } + + + int t; + if(min >= 0) + { + intersectionPoint = getPointOnRay(rt, min); + t = trace_min; + + } + else + { + t = trace_max; + intersectionPoint = getPointOnRay(rt, max); + + } + + switch(t) + { + case 0: normal = glm::vec3(-1,0,0); + break; + case 1: normal = glm::vec3(1,0,0); + break; + case 2: normal = glm::vec3(0,-1,0); + break; + case 3: normal = glm::vec3(0,1,0); + break; + case 4: normal = glm::vec3(0,0,-1); + break; + case 5: normal = glm::vec3(0,0,1); + break; + } + + + //value[index] = normal; + + + if(min < 0) + normal *= -1; + + glm::vec3 realIntersectionPoint = multiplyMV(box.transform, glm::vec4(intersectionPoint, 1.0)); + intersectionPoint = realIntersectionPoint; + normal = multiplyMV(box.transform, glm::vec4(normal,0.0)); + normal = glm::normalize(normal); + + return glm::length(r.origin - realIntersectionPoint); + + + } //LOOK: Here's an intersection test example from a sphere. Now you just need to figure out cube and, optionally, triangle. @@ -88,7 +294,7 @@ __host__ __device__ float sphereIntersectionTest(staticGeom sphere, ray r, glm: float vDotDirection = glm::dot(rt.origin, rt.direction); float radicand = vDotDirection * vDotDirection - (glm::dot(rt.origin, rt.origin) - pow(radius, 2)); - if (radicand < 0){ + if (radicand < float(sphereEpsilon)){ return -1; } @@ -115,6 +321,92 @@ __host__ __device__ float sphereIntersectionTest(staticGeom sphere, ray r, glm: return glm::length(r.origin - realIntersectionPoint); } + +__host__ __device__ glm::vec2 sphereTextureMap(staticGeom& sphere, glm::vec3& intersectionPoint) +{ + + glm::vec3 localintersect = multiplyMV(sphere.inverseTransform, glm::vec4(intersectionPoint,1.0f)); + glm::vec2 uv; + glm::vec3 N = glm::normalize(localintersect); + + glm::vec3 up = glm::vec3(0, 1.0 ,0); + glm::vec3 forward = glm::vec3(0,0,1); + + float phi = max(acos(glm::dot(up,N)),0.0f); + uv.y = phi / PI; + + float tmp = glm::dot(N,forward) / sin(phi); + tmp = tmp > 1.0 ? 1.0 : tmp; + tmp = tmp < -1.0 ? -1.0 : tmp; + + float theta = acos(tmp) / (2.0 * PI); + theta = theta > 1.0 ? 1.0 : theta; + + if(glm::dot(glm::cross(up, forward), N) > 0.0) + uv.x= theta; + else + uv.x= 1.0 -theta; + + return uv; + + /*glm::vec3 localintersect = multiplyMV(sphere.inverseTransform, glm::vec4(intersectionPoint,1.0f)); + glm::vec2 uv; + glm::vec4 N = glm::vec4(localintersect, 0); + glm::vec4 up = glm::vec4(0, 1.0 ,0,0); + glm::vec4 forward = glm::vec4(0,0,1,0); + + float phi = acos(glm::dot(up,N)); + uv.y = phi / PI; + + float tmp = glm::dot(N,forward) / sin(phi); + tmp = tmp > 1.0 ? 1.0 : tmp; + tmp = tmp < -1.0 ? -1.0 : tmp; + + float theta = acos(tmp) / (2.0 * PI); + theta = theta > 1.0 ? 1.0 : theta; + + if(glm::dot(glm::cross(glm::vec3(up),glm::vec3(forward)), glm::vec3(N)) > 0.0) + uv.x= theta; + else + uv.x= 1.0 -theta; + + return uv;*/ +} + +__host__ __device__ glm::vec2 boxTextureMap(staticGeom& box, glm::vec3 & intersectionPoint) +{ + glm::vec3 localintersect = multiplyMV(box.inverseTransform, glm::vec4(intersectionPoint,1.0f)); + glm::vec2 uv; + + if(fabs(localintersect.x + 0.5f) < 0.01 || fabs(localintersect.x - .5f) < 0.01) + { + uv.x = glm::max(localintersect.y + 0.5f, 0.0f); + uv.x = glm::min(uv.x,0.99999f); + uv.y = glm::max(localintersect.z + 0.5f, 0.0f); + uv.y = glm::min(uv.y,0.99999f); + } + + if(fabs(localintersect.y + 0.5f) < 0.01 || fabs(localintersect.y - .5f) < 0.01) + { + uv.x = glm::max(localintersect.x + 0.5f, 0.0f); + uv.x = glm::min(uv.x,0.99999f); + uv.y = glm::max(localintersect.z + 0.5f, 0.0f); + uv.y = glm::min(uv.y,0.99999f); + } + + if(fabs(localintersect.z + 0.5f) < 0.01 || fabs(localintersect.z - .5f) < 0.01) + { + uv.x = glm::max(localintersect.x + 0.5f, 0.0f); + uv.x = glm::min(uv.x,0.99999f); + uv.y = glm::max(0.5f -localintersect.y , 0.0f); + uv.y = glm::min(uv.y,0.99999f); + + } + + + return uv; +} + //returns x,y,z half-dimensions of tightest bounding box __host__ __device__ glm::vec3 getRadiuses(staticGeom geom){ glm::vec3 origin = multiplyMV(geom.transform, glm::vec4(0,0,0,1)); @@ -177,6 +469,8 @@ __host__ __device__ glm::vec3 getRandomPointOnCube(staticGeom cube, float random //Generates a random point on a given sphere __host__ __device__ glm::vec3 getRandomPointOnSphere(staticGeom sphere, float randomSeed){ + + return glm::vec3(0,0,0); } diff --git a/src/main.cpp b/src/main.cpp index 4e94892..cff7e48 100755 --- a/src/main.cpp +++ b/src/main.cpp @@ -6,7 +6,6 @@ // Yining Karl Li's TAKUA Render, a massively parallel pathtracing renderer: http://www.yiningkarlli.com #include "main.h" - //------------------------------- //-------------MAIN-------------- //------------------------------- @@ -22,14 +21,31 @@ int main(int argc, char** argv){ #endif // Set up pathtracer stuff + + + + + bool loadedScene = false; finishedRender = false; targetFrame = 0; singleFrameMode = false; + string header; + cout<<"please input configure file name"<>header; + + renderScene = new scene(header); + loadedScene = true; + /***************************************************************************/ + +/****************************************************************************/ + + + // Load scene file - for(int i=1; iobjects.size()]; material* materials = new material[renderScene->materials.size()]; - + Map * maps = new Map[renderScene->maps.size()]; for(int i=0; iobjects.size(); i++){ geoms[i] = renderScene->objects[i]; } for(int i=0; imaterials.size(); i++){ materials[i] = renderScene->materials[i]; } + for(int i = 0; i < renderScene->maps.size(); i++){ + maps[i] = renderScene->maps[i]; + } - + // execute the kernel - cudaRaytraceCore(dptr, renderCam, targetFrame, iterations, materials, renderScene->materials.size(), geoms, renderScene->objects.size() ); - + + cudaRaytraceCore(dptr,renderCam, targetFrame, iterations, materials, renderScene->materials.size(), geoms, renderScene->objects.size(),maps,renderScene->maps.size() ); + // unmap buffer object cudaGLUnmapBufferObject(pbo); }else{ @@ -213,19 +239,161 @@ void runCuda(){ // VAO, shader program, and texture already bound glDrawElements(GL_TRIANGLES, 6, GL_UNSIGNED_SHORT, 0); - + glutPostRedisplay(); glutSwapBuffers(); } + + void motion(int x, int y) + { + if(rotating) + { + float rotX = (x - currentX) * rotateSpeed; + glm::clamp(rotX, minAngle,maxAngle); + float rotY = (y - currentY) * rotateSpeed; + glm::clamp(rotY, minAngle,maxAngle); + for(int i = 0; i < renderCam->frames; i++) + { + glm::mat4 rotationX(1.0),rotationY(1.0); + glm::vec3 right = glm::cross(renderCam->ups[i],renderCam->views[i]); + rotationY = glm::rotate(rotationY,rotY, right); + renderCam->ups[i] = glm::vec3(rotationY * glm::vec4(renderCam->ups[i],0)); + renderCam->views[i] = glm::vec3(rotationY * glm::vec4(renderCam->views[i],0)); + rotationX = glm::rotate(rotationX,rotX,renderCam->ups[i]); + renderCam->views[i] = glm::vec3(rotationX * glm::vec4(renderCam->views[i],0)); + + } + generateRayMap(renderCam,0); + iterations = 0; + clearImage(); + } + + + if(dragging) + { + float dragX =( x - currentX ) * dragspeed; + float dragY = (y - currentY ) * dragspeed; + + for(int i = 0; i < renderCam->frames; i++) + { + glm::vec3 right = glm::cross(renderCam->ups[i],renderCam->views[i]); + glm::mat4 dragR(1.0), dragUp(1.0); + dragR = glm::translate(dragR,dragX * right); + dragR = glm::translate(dragR, dragY * renderCam->ups[i]); + + renderCam->positions[i] = glm::vec3(dragR * glm::vec4(renderCam->positions[i], 1.0f)); + } + + generateRayMap(renderCam,0); + iterations = 0; + clearImage(); + } + currentX = x; + currentY = y; + } + void processSpecialKeys(int key, int xx, int yy) + { + + glm::mat4 dragMatrix(1.0); + switch (key) { + case GLUT_KEY_LEFT : + for(int i = 0 ; i < renderCam->frames; i++) + { + glm::vec3 right = glm::cross(renderCam->ups[i],renderCam->views[i]); + dragMatrix = glm::translate(dragMatrix,-dragspeed * right); + renderCam->positions[i] = glm::vec3(dragMatrix * glm::vec4(renderCam->positions[i], 1.0f)); + } + generateRayMap(renderCam,0); + iterations = 0; + clearImage(); + break; + case GLUT_KEY_RIGHT : + for(int i = 0 ; i < renderCam->frames; i++) + { + glm::vec3 right = glm::cross(renderCam->ups[i],renderCam->views[i]); + dragMatrix = glm::translate(dragMatrix,dragspeed * right); + renderCam->positions[i] = glm::vec3(dragMatrix * glm::vec4(renderCam->positions[i], 1.0f)); + } + generateRayMap(renderCam,0); + iterations = 0; + clearImage(); + break; + case GLUT_KEY_UP : + for(int i = 0 ; i < renderCam->frames; i++) + { + dragMatrix = glm::translate(dragMatrix,dragspeed * renderCam->ups[i]); + renderCam->positions[i] = glm::vec3(dragMatrix * glm::vec4(renderCam->positions[i], 1.0f)); + } + generateRayMap(renderCam,0); + iterations = 0; + clearImage(); + break; + case GLUT_KEY_DOWN : + for(int i = 0 ; i < renderCam->frames; i++) + { + dragMatrix = glm::translate(dragMatrix,-dragspeed * renderCam->ups[i]); + renderCam->positions[i] = glm::vec3(dragMatrix * glm::vec4(renderCam->positions[i], 1.0f)); + } + generateRayMap(renderCam,0); + iterations = 0; + clearImage(); + break; + } + } + void mouse(int button, int state, int x, int y) + { + if(glutGetModifiers() == GLUT_ACTIVE_ALT && button == GLUT_LEFT_BUTTON && state == GLUT_DOWN ) + { + currentX = x; + currentY = y; + dragging = true; + return; + } + + if(button == GLUT_LEFT_BUTTON && state == GLUT_DOWN) + { + currentX = x; + currentY = y; + rotating = true; + return; + } + + dragging = false; + rotating = false; + } + void keyboard(unsigned char key, int x, int y) { + glm::mat4 dragMatrix(1.0); std::cout << key << std::endl; switch (key) { case(27): exit(1); break; + case('w'): + + for(int i = 0 ; i < renderCam->frames; i++) + { + dragMatrix = glm::translate(dragMatrix,dragspeed * renderCam->views[i]); + renderCam->positions[i] = glm::vec3(dragMatrix * glm::vec4(renderCam->positions[i], 1.0f)); + } + generateRayMap(renderCam,0); + iterations = 0; + clearImage(); + break; + case ('s'): + + for(int i = 0 ; i < renderCam->frames; i++) + { + dragMatrix = glm::translate(dragMatrix,-1.0f * dragspeed * renderCam->views[i]); + renderCam->positions[i] = glm::vec3(dragMatrix * glm::vec4(renderCam->positions[i], 1.0f)); + } + generateRayMap(renderCam,0); + iterations = 0; + clearImage(); + break; } } @@ -299,6 +467,12 @@ void initCuda(){ initPBO(&pbo); + + effectiveRayMap =new int[(int)renderCam->resolution.x *(int)renderCam->resolution.y]; + bMap = new float[(int)renderCam->resolution.x *(int)renderCam->resolution.y]; + initialRayMap = new ray[(int)renderCam->resolution.x * (int)renderCam->resolution.y]; + + generateRayMap(renderCam, targetFrame); // Clean up on program exit atexit(cleanupCuda); @@ -312,6 +486,8 @@ void initTextures(){ glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST); glTexImage2D( GL_TEXTURE_2D, 0, GL_RGBA8, width, height, 0, GL_BGRA, GL_UNSIGNED_BYTE, NULL); + + } void initVAO(void){ @@ -350,6 +526,30 @@ void initVAO(void){ glBufferData(GL_ELEMENT_ARRAY_BUFFER, sizeof(indices), indices, GL_STATIC_DRAW); } +void initMaps() +{ + int count = 0; + for(int i = 0; i < renderScene->maps.size();i++) + { + count+= renderScene->maps[i].depth * renderScene->maps[i].height * renderScene->maps[i].width; + } + + allmaps = new unsigned char[count]; + mapsize = count; + count =0; + for(int i = 0; i < renderScene->maps.size();i++) + { + int total = renderScene->maps[i].depth * renderScene->maps[i].height * renderScene->maps[i].width; + for(int j = 0; j < total; j++) + { + allmaps[count] = renderScene->maps[i].mapptr[j]; + count++; + } + + delete renderScene->maps[i].mapptr; + renderScene->maps[i].mapptr = NULL; + } +} GLuint initShader(const char *vertexShaderPath, const char *fragmentShaderPath){ GLuint program = glslUtility::createProgram(vertexShaderPath, fragmentShaderPath, attributeLocations, 2); GLint location; @@ -373,6 +573,15 @@ void cleanupCuda(){ if(displayImage) deleteTexture(&displayImage); } +void clearImage() +{ + int resolution = renderCam->resolution.x * renderCam->resolution.y; + for(int i = 0; i < resolution; i++) + { + renderCam->image[i] = glm::vec3(0,0,0); + } +} + void deletePBO(GLuint* pbo){ if (pbo) { // unregister this buffer object with CUDA diff --git a/src/main.h b/src/main.h index 55daf50..7cb7ece 100755 --- a/src/main.h +++ b/src/main.h @@ -15,6 +15,9 @@ #include #endif + +//#include + #include #include #include @@ -27,16 +30,34 @@ #include "glslUtility.h" #include "sceneStructs.h" #include "glm/glm.hpp" +#include "glm/gtc/matrix_transform.hpp" #include "image.h" #include "raytraceKernel.h" #include "utilities.h" #include "scene.h" + + using namespace std; +//INTERACTION +int currentX = 0; +int currentY = 0; +float rotateSpeed = 0.02; +float maxAngle = 40; +float minAngle = -40; +bool dragging = false; +bool rotating = false; +float dragspeed = 0.05; + //------------------------------- //----------PATHTRACER----------- //------------------------------- +int * effectiveRayMap = NULL; +ray * initialRayMap = NULL; +float * bMap = NULL; +unsigned char * allmaps = NULL; +int mapsize = 0; scene* renderScene; camera* renderCam; @@ -54,7 +75,6 @@ GLuint texcoordsLocation = 1; const char *attributeLocations[] = { "Position", "Tex" }; GLuint pbo = (GLuint)NULL; GLuint displayImage; - //------------------------------- //----------CUDA STUFF----------- //------------------------------- @@ -78,6 +98,10 @@ void runCuda(); #else void display(); void keyboard(unsigned char key, int x, int y); + void processSpecialKeys(int key, int x, int y); + void mouse(int button, int state, int x, int y); + void motion(int x, int y); + void mousewheel(int wheel, int direction, int x, int y); #endif //------------------------------- @@ -94,6 +118,8 @@ void initPBO(GLuint* pbo); void initCuda(); void initTextures(); void initVAO(); +void initMaps(); +void clearImage(); GLuint initShader(const char *vertexShaderPath, const char *fragmentShaderPath); //------------------------------- diff --git a/src/raytraceKernel.cu b/src/raytraceKernel.cu index dae7b03..9f8acc8 100755 --- a/src/raytraceKernel.cu +++ b/src/raytraceKernel.cu @@ -17,151 +17,691 @@ #include "interactions.h" #include + void checkCUDAError(const char *msg) { - cudaError_t err = cudaGetLastError(); - if( cudaSuccess != err) { - fprintf(stderr, "Cuda error: %s: %s.\n", msg, cudaGetErrorString( err) ); - exit(EXIT_FAILURE); - } + cudaError_t err = cudaGetLastError(); + if( cudaSuccess != err) { + fprintf(stderr, "Cuda error: %s: %s.\n", msg, cudaGetErrorString( err) ); + exit(EXIT_FAILURE); + } } //LOOK: This function demonstrates how to use thrust for random number generation on the GPU! //Function that generates static. __host__ __device__ glm::vec3 generateRandomNumberFromThread(glm::vec2 resolution, float time, int x, int y){ - int index = x + (y * resolution.x); - - thrust::default_random_engine rng(hash(index*time)); - thrust::uniform_real_distribution u01(0,1); + int index = x + (y * resolution.x); + + thrust::default_random_engine rng(hash(index*time)); + thrust::uniform_real_distribution u01(0,1); - return glm::vec3((float) u01(rng), (float) u01(rng), (float) u01(rng)); + return glm::vec3((float) u01(rng), (float) u01(rng), (float) u01(rng)); } //TODO: IMPLEMENT THIS FUNCTION //Function that does the initial raycast from the camera -__host__ __device__ ray raycastFromCameraKernel(glm::vec2 resolution, float time, int x, int y, glm::vec3 eye, glm::vec3 view, glm::vec3 up, glm::vec2 fov){ - ray r; - r.origin = glm::vec3(0,0,0); - r.direction = glm::vec3(0,0,-1); - return r; +__global__ void raycastFromCameraKernel(cameraData cam, ray * rayMap, int * effectiveMap, float * bMap){ + + + int x = (blockIdx.x * blockDim.x) + threadIdx.x; + int y = (blockIdx.y * blockDim.y) + threadIdx.y; + int index = x + (y * cam.resolution.x); + + ray r; + + + glm::vec3 horizontal = glm::normalize(glm::cross(cam.view,cam.up)); + + // arrayv[index] = horizontal; + + glm::vec3 vertical = -1.0f * glm::normalize(glm::cross(horizontal, cam.view)); + //arrayv[index] = vertical; + + float depth = 0.5 * cam.resolution.y / tan( ANGTORAD * cam.fov.y); + float depthX = 0.5 * cam.resolution.x / tan( ANGTORAD * cam.fov.x); + + if(depthX > depth) + depth = depthX; + + glm::vec3 hitPoint = cam.position + depth * cam.view + (x - 0.5f * cam.resolution.x) * horizontal + (y - 0.5f * cam.resolution.y) * vertical; + r.origin = cam.position; + r.direction = glm::normalize((hitPoint - cam.position)); + r.inside = false; + rayMap[index] = r; + effectiveMap[index] = 1; + bMap[index] = 1; + } //Kernel that blacks out a given image buffer __global__ void clearImage(glm::vec2 resolution, glm::vec3* image){ - int x = (blockIdx.x * blockDim.x) + threadIdx.x; - int y = (blockIdx.y * blockDim.y) + threadIdx.y; - int index = x + (y * resolution.x); - if(x<=resolution.x && y<=resolution.y){ - image[index] = glm::vec3(0,0,0); - } + int x = (blockIdx.x * blockDim.x) + threadIdx.x; + int y = (blockIdx.y * blockDim.y) + threadIdx.y; + int index = x + (y * resolution.x); + if(x<=resolution.x && y<=resolution.y){ + image[index] = glm::vec3(0,0,0); + } } //Kernel that writes the image to the OpenGL PBO directly. -__global__ void sendImageToPBO(uchar4* PBOpos, glm::vec2 resolution, glm::vec3* image){ - - int x = (blockIdx.x * blockDim.x) + threadIdx.x; - int y = (blockIdx.y * blockDim.y) + threadIdx.y; - int index = x + (y * resolution.x); - - if(x<=resolution.x && y<=resolution.y){ - - glm::vec3 color; - color.x = image[index].x*255.0; - color.y = image[index].x*255.0; - color.z = image[index].x*255.0; - - if(color.x>255){ - color.x = 255; - } - - if(color.y>255){ - color.y = 255; - } - - if(color.z>255){ - color.z = 255; - } - - // Each thread writes one pixel location in the texture (textel) - PBOpos[index].w = 0; - PBOpos[index].x = color.x; - PBOpos[index].y = color.y; - PBOpos[index].z = color.z; - } +__global__ void sendImageToPBO(uchar4* PBOpos, glm::vec2 resolution, glm::vec3* image,int iterations){ + + int x = (blockIdx.x * blockDim.x) + threadIdx.x; + int y = (blockIdx.y * blockDim.y) + threadIdx.y; + int index = x + (y * resolution.x); + + float inverseIterations = 1.0f / float(iterations); + if(x<=resolution.x && y<=resolution.y){ + + glm::vec3 color; + color.x = image[index].x*255.0 * inverseIterations; + color.y = image[index].y*255.0 * inverseIterations; + color.z = image[index].z*255.0 * inverseIterations; + + //color.x = image[index].x*255.0; + //color.y = image[index].y*255.0; + //color.z = image[index].z*255.0; + + if(color.x>255){ + color.x = 255; + } + + if(color.y>255){ + color.y = 255; + } + + if(color.z>255){ + color.z = 255; + } + + // Each thread writes one pixel location in the texture (textel) + PBOpos[index].w = 0; + PBOpos[index].x = color.x; + PBOpos[index].y = color.y; + PBOpos[index].z = color.z; + } +} + + +__host__ __device__ bool testBlock(staticGeom * geoms, int lightNo, int numberOfGeoms, ray shootRay, float & attenuation, material * mats) +{ + + + + float distance = -1; + int objid = -1; + attenuation = 1.0; + + glm::vec3 intersect; + glm::vec3 tmpPoint; + glm::vec3 tmpNorm; + + bool hasblock = false; + + for(int i = 0; i < numberOfGeoms; i++) + { + + float tmpDis = -1; + switch(geoms[i].type) + { + case SPHERE: + { + + tmpDis = sphereIntersectionTest(geoms[i],shootRay,tmpPoint, tmpNorm); + + break; + } + case CUBE: + tmpDis = boxIntersectionTest(geoms[i],shootRay,tmpPoint, tmpNorm); + // raysvalue[index] = shootRay.direction; + break; + + } + + if(tmpDis != -1 ) + { + + if((tmpDis < distance || distance == -1 )) + { + distance = tmpDis; + objid = i; + intersect = tmpPoint; + + if(mats[geoms[i].materialid].hasRefractive) + attenuation *= 0.9; + + } + } + } + + //colors[index].x = objid; + //colors[index].y = lightNo; + ///colors[index].z = distance; + if(objid != lightNo && objid != -1) + { + if(!(mats[geoms[objid].materialid].hasRefractive)) + attenuation = 0.0; + return true; + } + else + return false; + + + /*attenuation = 1.0; + + glm::vec3 intersect; + glm::vec3 tmpPoint; + glm::vec3 tmpNorm; + + float distance = -1; + float light_dis = glm::length(geoms[lightNo].translation - shootRay.origin); + for(int i = 0; i < numberOfGeoms; i++) + { + + float tmpDis = -1; + switch(geoms[i].type) + { + case SPHERE: + { + + tmpDis = sphereIntersectionTest(geoms[i],shootRay,tmpPoint, tmpNorm); + + break; + } + case CUBE: + tmpDis = boxIntersectionTest(geoms[i],shootRay,tmpPoint, tmpNorm); + // raysvalue[index] = shootRay.direction; + break; + + } + + if(tmpDis != -1 ) + { + + if(i != lightNo && tmpDis + 0.007f < light_dis && !mats[geoms[i].materialid].hasRefractive) + { + attenuation = 0; + return true; + } + if(mats[i].hasRefractive) + attenuation *= 0.9; + + } + } + + return false;*/ + +} + +__device__ bool ChooseReflect(glm::vec2 resolution, float time, int x, int y) +{ + int index = x + (y * resolution.x); + + thrust::default_random_engine rng(hash(index*time)); + thrust::uniform_real_distribution u01(0,1); + + if(u01(rng) > 0.5) + return true; + else + return false; +} +/*__device__ float ChooseReflect(glm::vec2 resolution, float time, int x, int y) +{ + int index = x + (y * resolution.x); + + thrust::default_random_engine rng(hash(index*time)); + thrust::uniform_real_distribution u01(-1,1); + return u01(rng); + +}*/ +__device__ glm::vec3 ReadMapTexture(int mapid,staticGeom & intersectObj,glm::vec3 & intersectPoint, Map * maps, unsigned char * mapdata) +{ + glm::vec3 value; + + switch(intersectObj.type) + { + case SPHERE: + { + int shift = 0; + for(int i = 0; i < mapid; i++) + shift += maps[i].depth * maps[i].height * maps[i].width; + Map map = maps[mapid]; + glm::vec2 uv = sphereTextureMap(intersectObj, intersectPoint); + int xx = (int)(uv.x * map.width); + int yy = (int)(uv.y * map.height); + int index = shift + (xx + yy * map.width) * map.depth; + //intersectMaterial.color = glm::vec3(float(map.mapptr[colorIndex]) / 255.0,(float)(map.mapptr[colorIndex + 1]) / 255.0,(float)map.mapptr[colorIndex + 2] / 255.0); + value.x = (float)(mapdata[index]) / 255.0; + value.y = (float)(mapdata[index + 1]) / 255.0; + value.z = (float)mapdata[index + 2] / 255.0; + + break; + } + case CUBE: + { + int shift = 0; + for(int i = 0; i < mapid; i++) + shift += maps[i].depth * maps[i].height * maps[i].width; + Map map = maps[mapid]; + glm::vec2 uv = boxTextureMap(intersectObj, intersectPoint); + int xx = (int)(uv.x * map.width); + int yy = (int)(uv.y * map.height); + int index = shift + (xx + yy * map.width) * map.depth; + //intersectMaterial.color = glm::vec3(float(map.mapptr[colorIndex]) / 255.0,(float)(map.mapptr[colorIndex + 1]) / 255.0,(float)map.mapptr[colorIndex + 2] / 255.0); + value.x = (float)(mapdata[index]) / 255.0; + value.y = (float)(mapdata[index + 1]) / 255.0; + value.z = (float)mapdata[index + 2] / 255.0; + + } + + } + + return value; +} +__device__ glm::vec3 ReadMapNormal(int mapid,staticGeom & intersectObj,glm::vec3 & intersectPoint, Map * maps, unsigned char * mapdata) +{ + glm::vec3 value; + + switch(intersectObj.type) + { + case SPHERE: + { + int shift = 0; + for(int i = 0; i < mapid; i++) + shift += maps[i].depth * maps[i].height * maps[i].width; + Map map = maps[mapid]; + glm::vec2 uv = sphereTextureMap(intersectObj, intersectPoint); + int xx = (int)(uv.x * map.width); + int yy = (int)(uv.y * map.height); + int center = shift + (xx + yy * map.width) * map.depth; + int left = glm::max(center - map.depth, 0); + int top = glm::max(center - map.width * map.depth, 0); + + value.x = (float)(mapdata[center] - mapdata[top]) / 255.0; + value.y = (float)(mapdata[center] - mapdata[left]) / 255.0; + value.z = 0.2; + break; + } + case CUBE: + { + int shift = 0; + for(int i = 0; i < mapid; i++) + shift += maps[i].depth * maps[i].height * maps[i].width; + Map map = maps[mapid]; + glm::vec2 uv = boxTextureMap(intersectObj, intersectPoint); + int xx = (int)(uv.x * map.width); + int yy = (int)(uv.y * map.height); + int center = shift + (xx + yy * map.width) * map.depth; + int left = glm::clamp(center - map.depth, 0, shift + (map.width*map.height-1) * map.depth); + int top = glm::clamp(center - map.width * map.depth, 0, shift + (map.width*map.height-1) * map.depth); + + value.x = (float)(mapdata[center] - mapdata[top]) / 255.0; + value.y = (float)(mapdata[center] - mapdata[left]) / 255.0; + value.z = 0.2; + + break; + } + + } + + return value; } //TODO: IMPLEMENT THIS FUNCTION //Core raytracer kernel -__global__ void raytraceRay(glm::vec2 resolution, float time, cameraData cam, int rayDepth, glm::vec3* colors, - staticGeom* geoms, int numberOfGeoms){ +__global__ void raytraceRay(ray * rayMap, glm::vec2 resolution, float time, cameraData cam, int rayDepth, glm::vec3* colors, + staticGeom* geoms, int numberOfGeoms, material * materials, Map * cudatextmap, unsigned char * cudatextmapdata, float * bMap, int * effectMap,int seed, int currentDepth){ + + int x = (blockIdx.x * blockDim.x) + threadIdx.x; + int y = (blockIdx.y * blockDim.y) + threadIdx.y; + + + int index = x + (y * resolution.x); + + //int tmpindex = index; + //initiallize bMatrix - int x = (blockIdx.x * blockDim.x) + threadIdx.x; - int y = (blockIdx.y * blockDim.y) + threadIdx.y; - int index = x + (y * resolution.x); - if((x<=resolution.x && y<=resolution.y)){ + if(effectMap[index] == 0) + return; + ray shootRay = rayMap[index]; + glm::vec3 intersectPoint(0,0,0); + glm::vec3 intersectNorm(0,0,0); - colors[index] = generateRandomNumberFromThread(resolution, time, x, y); - } + int objid; + + float distance = -1; + for(int i = 0; i < numberOfGeoms; i++) + { + float tmpDis = -1; + glm::vec3 tmpPoint; + glm::vec3 tmpNorm; + switch(geoms[i].type) + { + case SPHERE: + { + + tmpDis = sphereIntersectionTest(geoms[i],shootRay,tmpPoint, tmpNorm); + + } + break; + case CUBE: + tmpDis = boxIntersectionTest(geoms[i],shootRay,tmpPoint, tmpNorm); + break; + + } + + if(tmpDis != -1 && (tmpDis < distance || distance == -1 )) + { + distance = tmpDis; + intersectPoint = tmpPoint; + intersectNorm = tmpNorm; + objid = i; + } + } + + + //if have no intersection + if(distance == -1) + { + int parelleltolight = -1; + for(int i = 0; i < numberOfGeoms; i++) + { + + if(materials[geoms[i].materialid].emittance > 0) + { + glm::vec3 lightdir = glm::normalize(geoms[i].translation - shootRay.origin); + if(glm::dot(lightdir,shootRay.direction) > 0.99) + { + parelleltolight = i; + } + } + } + + if(parelleltolight != -1) + { + colors[index] += materials[geoms[parelleltolight].materialid].color * bMap[index]; + effectMap[index] = 0; + } + + return; + } + + + material intersectMaterial; + staticGeom intersectObj = geoms[objid]; + intersectMaterial = materials[intersectObj.materialid]; + + if(intersectObj.texturemapid != -1) + intersectMaterial.color = ReadMapTexture(intersectObj.texturemapid,intersectObj, intersectPoint, cudatextmap, cudatextmapdata); + if(intersectObj.normalmapid != -1) + { + intersectNorm += 2.0f * glm::normalize(ReadMapNormal(intersectObj.normalmapid,intersectObj, intersectPoint, cudatextmap, cudatextmapdata)); + //intersectNorm += ReadMapNormal(intersectObj.normalmapid,intersectObj, intersectPoint, cudatextmap, cudatextmapdata); + intersectNorm = glm::normalize(intersectNorm); + //intersectNorm = glm::normalize(ReadMapNormal(intersectObj.normalmapid,intersectObj, intersectPoint, cudatextmap, cudatextmapdata)); + } + float b = bMap[index]; + + //colors[index].y = 1; + + //if Hit Light + if(intersectMaterial.emittance > 0) + { + colors[index] += b * intersectMaterial.color; + effectMap[index] = 0; + return; + } + + //normal condition + ray lightray; + glm::vec3 outcolor = glm::vec3(0,0,0); + +for(int i = 0; i < numberOfGeoms; i++) + { + //test block + material lightMaterial = materials[geoms[i].materialid]; + if(lightMaterial.emittance > 0) + { + + + glm::vec3 tmpPoint, tmpNorm; + lightray.direction = glm::normalize(geoms[i].translation - intersectPoint); + lightray.origin = intersectPoint; + float attenuation = 1.0; + //if block or light ray cannot reach + testBlock(geoms, i, numberOfGeoms,lightray,attenuation,materials); + + + float tmpdotvalue = max(glm::dot(intersectNorm, lightray.direction),0.0001); + //lambert diffuse + outcolor += attenuation * lightMaterial.color * ( intersectMaterial.color * tmpdotvalue); + + //specular + if(intersectMaterial.hasReflective) + { + tmpdotvalue = max(glm::dot( calculateReflectionDirection(intersectNorm,-1.0f * lightray.direction), -1.0f * shootRay.direction), 0.0); + outcolor += attenuation*glm::pow(tmpdotvalue,intersectMaterial.specularExponent) * lightMaterial.color * intersectMaterial.color; + } + + } + } + + + + colors[index] += b * outcolor; + + + //decide next ray + + ray reflectRay, refractRay; + + Fresnel fresnel; + + + if(intersectMaterial.hasRefractive || intersectMaterial.hasReflective) + { + + + effectMap[index] = 1; + + if(intersectMaterial.hasRefractive) + { + if(shootRay.inside) + { + reflectRay.direction = calculateReflectionDirection(-1.0f * intersectNorm,shootRay.direction); + fresnel = calculateFresnel(-1.0f * intersectNorm, shootRay.direction, intersectMaterial.indexOfRefraction, refractRay.direction); + } + else + { + + reflectRay.direction = calculateReflectionDirection(intersectNorm,shootRay.direction); + fresnel = calculateFresnel(intersectNorm, shootRay.direction, 1.0f / intersectMaterial.indexOfRefraction, refractRay.direction); + } + + + refractRay.origin = intersectPoint + 0.005f * refractRay.direction; + refractRay.inside = !shootRay.inside; + reflectRay.inside = shootRay.inside; + reflectRay.origin = intersectPoint; + + + + if(fresnel.reflectionCoefficient == 1 ) + { + b *= fresnel.reflectionCoefficient; + rayMap[index] = reflectRay; + // colors[index] = glm::vec3(1.0, 0.0, 0.0); + //effectMap[index] = 0; + } + else + { + + b *= fresnel.transmissionCoefficient; + rayMap[index] = refractRay; + } + } + else + { + reflectRay.direction = calculateReflectionDirection(intersectNorm,shootRay.direction); + reflectRay.origin = intersectPoint; + reflectRay.inside = shootRay.inside; + b *= 0.3; + rayMap[index] = reflectRay; + + } + + } + else + { + + effectMap[index] = 0; + } + //colors[index] = time * generateRandomNumberFromThread(resolution, time, x, y); + bMap[index] = b; + } //TODO: FINISH THIS FUNCTION // Wrapper for the __global__ call that sets up the kernel calls and does a ton of memory management -void cudaRaytraceCore(uchar4* PBOpos, camera* renderCam, int frame, int iterations, material* materials, int numberOfMaterials, geom* geoms, int numberOfGeoms){ - - int traceDepth = 1; //determines how many bounces the raytracer traces - - // set up crucial magic - int tileSize = 8; - dim3 threadsPerBlock(tileSize, tileSize); - dim3 fullBlocksPerGrid((int)ceil(float(renderCam->resolution.x)/float(tileSize)), (int)ceil(float(renderCam->resolution.y)/float(tileSize))); - - //send image to GPU - glm::vec3* cudaimage = NULL; - cudaMalloc((void**)&cudaimage, (int)renderCam->resolution.x*(int)renderCam->resolution.y*sizeof(glm::vec3)); - cudaMemcpy( cudaimage, renderCam->image, (int)renderCam->resolution.x*(int)renderCam->resolution.y*sizeof(glm::vec3), cudaMemcpyHostToDevice); - - //package geometry and materials and sent to GPU - staticGeom* geomList = new staticGeom[numberOfGeoms]; - for(int i=0; iresolution; - cam.position = renderCam->positions[frame]; - cam.view = renderCam->views[frame]; - cam.up = renderCam->ups[frame]; - cam.fov = renderCam->fov; - - //kernel launches - raytraceRay<<>>(renderCam->resolution, (float)iterations, cam, traceDepth, cudaimage, cudageoms, numberOfGeoms); - - sendImageToPBO<<>>(PBOpos, renderCam->resolution, cudaimage); - - //retrieve image from GPU - cudaMemcpy( renderCam->image, cudaimage, (int)renderCam->resolution.x*(int)renderCam->resolution.y*sizeof(glm::vec3), cudaMemcpyDeviceToHost); - - //free up stuff, or else we'll leak memory like a madman - cudaFree( cudaimage ); - cudaFree( cudageoms ); - delete geomList; - - // make certain the kernel has completed - cudaThreadSynchronize(); - - checkCUDAError("Kernel failed!"); +void cudaRaytraceCore(uchar4* PBOpos, camera* renderCam, int frame, int iterations, material* materials, int numberOfMaterials, geom* geoms, int numberOfGeoms,Map * maps, int numberOfMaps){ + + int traceDepth = 5; //determines how many bounces the raytracer traces + // set up crucial magic + int tileSize = 8; + dim3 threadsPerBlock(tileSize, tileSize); + dim3 fullBlocksPerGrid((int)ceil(float(renderCam->resolution.x)/float(tileSize)), (int)ceil(float(renderCam->resolution.y)/float(tileSize))); + + //send image to GPU + glm::vec3* cudaimage = NULL; + cudaMalloc((void**)&cudaimage, (int)renderCam->resolution.x*(int)renderCam->resolution.y*sizeof(glm::vec3)); + cudaMemcpy( cudaimage, renderCam->image, (int)renderCam->resolution.x*(int)renderCam->resolution.y*sizeof(glm::vec3), cudaMemcpyHostToDevice); + + //package geometry and materials and sent to GPU + staticGeom* geomList = new staticGeom[numberOfGeoms]; + for(int i=0; iresolution; + cam.position = renderCam->positions[frame]; + cam.view = renderCam->views[frame]; + cam.up = renderCam->ups[frame]; + cam.fov = renderCam->fov; + + //package maps + + //package bMap + + float * cudabMap = NULL; + cudaMalloc((void **) & cudabMap, (int)renderCam->resolution.x * (int)renderCam->resolution.y * sizeof(float)); + cudaMemcpy(cudabMap, bMap,(int)renderCam->resolution.x * (int)renderCam->resolution.y * sizeof(float), cudaMemcpyHostToDevice); + + //package rayMap + ray * cudaRayMap; + cudaMalloc((void **) & cudaRayMap,(int)renderCam->resolution.x * (int)renderCam->resolution.y * sizeof(ray)); + cudaMemcpy(cudaRayMap, initialRayMap,(int)renderCam->resolution.x * (int)renderCam->resolution.y * sizeof(ray), cudaMemcpyHostToDevice); + + + //package effectiveRayMap + int * cudaEffective; + cudaMalloc((void **) & cudaEffective,(int)renderCam->resolution.x * (int)renderCam->resolution.y * sizeof(int)); + cudaMemcpy(cudaEffective,effectiveRayMap, (int)renderCam->resolution.x * (int)renderCam->resolution.y * sizeof(int), cudaMemcpyHostToDevice); + //kernel launches + + //package mapsdata + unsigned char * cudatextmapdata = NULL; + if(mapsize != 0) + { + cudaMalloc((void **) & cudatextmapdata, mapsize * sizeof(unsigned char)); + cudaMemcpy(cudatextmapdata, allmaps, mapsize * sizeof(unsigned char),cudaMemcpyHostToDevice); + } + //package maps + Map * cudatextmap = NULL; + if(numberOfMaps != 0) + { + cudaMalloc((void **) & cudatextmap, numberOfMaps * sizeof(Map)); + cudaMemcpy(cudatextmap, maps,numberOfMaps * sizeof(Map) , cudaMemcpyHostToDevice); + } + + for(int i = 0; i <= traceDepth; i++) + { + raytraceRay<<>>(cudaRayMap, renderCam->resolution, (float)iterations, cam, traceDepth, cudaimage, cudageoms, numberOfGeoms, cudamaters, cudatextmap, cudatextmapdata,cudabMap,cudaEffective,time(NULL), i); + } + + sendImageToPBO<<>>(PBOpos, renderCam->resolution, cudaimage, iterations); + + //retrieve image from GPU + cudaMemcpy( renderCam->image, cudaimage, (int)renderCam->resolution.x*(int)renderCam->resolution.y*sizeof(glm::vec3), cudaMemcpyDeviceToHost); + cudaFree( cudaimage ); + cudaFree( cudageoms ); + cudaFree(cudamaters); + cudaFree(cudabMap); + cudaFree(cudaRayMap); + cudaFree(cudaEffective); + cudaFree(cudatextmapdata); + cudaFree(cudatextmap); + delete geomList; + + // make certain the kernel has completed + cudaThreadSynchronize(); + + checkCUDAError("Kernel failed!"); +} + +void generateRayMap(camera* renderCam,int frame) +{ + + int tileSize = 8; + dim3 threadsPerBlock(tileSize, tileSize); + dim3 fullBlocksPerGrid((int)ceil(float(renderCam->resolution.x)/float(tileSize)), (int)ceil(float(renderCam->resolution.y)/float(tileSize))); + + cameraData cam; + cam.resolution = renderCam->resolution; + cam.position = renderCam->positions[frame]; + cam.view = renderCam->views[frame]; + cam.up = renderCam->ups[frame]; + cam.fov = renderCam->fov; + + + + ray * cudaRayMap; + cudaMalloc((void **) & cudaRayMap, (int)renderCam->resolution.x * (int)renderCam->resolution.y * sizeof(ray)); + float * cudabMap; + cudaMalloc((void **) & cudabMap,(int)renderCam->resolution.x * (int)renderCam->resolution.y * sizeof(float)); + int * cudaeffectMap; + cudaMalloc((void **) & cudaeffectMap, (int)renderCam->resolution.x * (int)renderCam->resolution.y * sizeof(int)); + raycastFromCameraKernel<<>>(cam, cudaRayMap, cudaeffectMap, cudabMap); + + cudaMemcpy(initialRayMap, cudaRayMap, (int)renderCam->resolution.x * (int)renderCam->resolution.y * sizeof(ray), cudaMemcpyDeviceToHost); + cudaMemcpy(effectiveRayMap,cudaeffectMap, (int)renderCam->resolution.x * (int)renderCam->resolution.y * sizeof(int), cudaMemcpyDeviceToHost); + cudaMemcpy(bMap, cudabMap,(int)renderCam->resolution.x * (int)renderCam->resolution.y * sizeof(float), cudaMemcpyDeviceToHost); + + cudaThreadSynchronize(); + cudaFree(cudaRayMap); + cudaFree(cudabMap); + cudaFree(cudaeffectMap); } + diff --git a/src/raytraceKernel.h b/src/raytraceKernel.h index 331e5ce..749557d 100755 --- a/src/raytraceKernel.h +++ b/src/raytraceKernel.h @@ -10,11 +10,24 @@ #include #include +#include +#include #include #include #include "sceneStructs.h" #include +#include -void cudaRaytraceCore(uchar4* pos, camera* renderCam, int frame, int iterations, material* materials, int numberOfMaterials, geom* geoms, int numberOfGeoms); + +void cudaRaytraceCore(uchar4* pos, camera* renderCam, int frame, int iterations, material* materials, int numberOfMaterials, geom* geoms, int numberOfGeoms, Map * maps, int numberOfMaps); +void generateRayMap(camera* renderCam,int frame); + + +extern ray * initialRayMap; +extern float * bMap; +extern int * effectiveRayMap; +extern float * effective; +extern unsigned char * allmaps; +extern int mapsize; #endif diff --git a/src/scene.cpp b/src/scene.cpp index f0384b2..78aa3d2 100755 --- a/src/scene.cpp +++ b/src/scene.cpp @@ -26,6 +26,9 @@ scene::scene(string filename){ }else if(strcmp(tokens[0].c_str(), "CAMERA")==0){ loadCamera(); cout << " " << endl; + }else if(strcmp(tokens[0].c_str(), "MAP") == 0){ + loadMap(tokens[1]); + cout << " " << endl; } } } @@ -76,9 +79,34 @@ int scene::loadObject(string objectid){ newObject.materialid = atoi(tokens[1].c_str()); cout << "Connecting Object " << objectid << " to Material " << newObject.materialid << "..." << endl; } - + //link normal map + getline(fp_in, line); + if(!line.empty() && fp_in.good()){ + vector tokens = utilityCore::tokenizeString(line); + if(tokens.size() > 1) + { + newObject.noramlmapId = atoi(tokens[1].c_str()); + cout << "Connecting Object " << objectid << " to NormalMap " << newObject.materialid << "..." << endl; + } + else + newObject.noramlmapId = -1; + } + + //link Texture Map + getline(fp_in, line); + if(!line.empty() && fp_in.good()){ + vector tokens = utilityCore::tokenizeString(line); + if(tokens.size() > 1) + { + newObject.texturemapId = atoi(tokens[1].c_str()); + cout << "Connecting Object " << objectid << " to NormalMap " << newObject.texturemapId << "..." << endl; + } + else + newObject.texturemapId = -1; + } + //load frames - int frameCount = 0; + int frameCount = 0; getline(fp_in,line); vector translations; vector scales; @@ -160,6 +188,8 @@ int scene::loadCamera(){ vector positions; vector views; vector ups; + vector normalMaps; + vector textureMaps; while (!line.empty() && fp_in.good()){ //check frame number @@ -181,6 +211,19 @@ int scene::loadCamera(){ }else if(strcmp(tokens[0].c_str(), "UP")==0){ ups.push_back(glm::vec3(atof(tokens[1].c_str()), atof(tokens[2].c_str()), atof(tokens[3].c_str()))); } + else if(strcmp(tokens[0].c_str(), "NORMALMAP") == 0){ + if(tokens.size() > 1) + { + Map tmpMap; + tmpMap.mapptr = stbi_load(tokens[1].c_str(),&tmpMap.width, &tmpMap.height,&tmpMap.depth,0); + normalMaps.push_back(tmpMap); + } + } + else if(strcmp(tokens[0].c_str(), "TEXTUREMAP") == 0){ + Map tmpMap; + tmpMap.mapptr = stbi_load(tokens[1].c_str(),&tmpMap.width, &tmpMap.height,&tmpMap.depth,0); + textureMaps.push_back(tmpMap); + } } frameCount++; @@ -261,3 +304,27 @@ int scene::loadMaterial(string materialid){ return 1; } } + +int scene::loadMap(string mapid) +{ + int id = atoi(mapid.c_str()); + if(id!=maps.size()){ + cout << "ERROR: MATERIAL ID does not match expected number of materials" << endl; + return -1; + }else{ + cout << "Loading Map " << id << "..." << endl; + Map newMap; + + //load static properties + + string line; + getline(fp_in,line); + vector tokens = utilityCore::tokenizeString(line); + if(strcmp(tokens[0].c_str(), "FILE")==0){ + newMap.mapptr = stbi_load(tokens[1].c_str(),&newMap.width, &newMap.height,&newMap.depth,0); + } + + maps.push_back(newMap); + return 1; + } +} \ No newline at end of file diff --git a/src/scene.h b/src/scene.h index 9bfa71f..f5a5ad9 100755 --- a/src/scene.h +++ b/src/scene.h @@ -13,7 +13,7 @@ #include #include #include - +#include "stb_image/stb_image.h" using namespace std; class scene{ @@ -22,12 +22,14 @@ class scene{ int loadMaterial(string materialid); int loadObject(string objectid); int loadCamera(); + int loadMap(string mapid); public: scene(string filename); ~scene(); vector objects; vector materials; + vector maps; camera renderCam; }; diff --git a/src/sceneStructs.h b/src/sceneStructs.h index b10f1cf..74cd383 100755 --- a/src/sceneStructs.h +++ b/src/sceneStructs.h @@ -16,6 +16,14 @@ enum GEOMTYPE{ SPHERE, CUBE, MESH }; struct ray { glm::vec3 origin; glm::vec3 direction; + bool inside; +}; + +struct Map{ + unsigned char * mapptr; + int width; + int height; + int depth; }; struct geom { @@ -27,11 +35,15 @@ struct geom { glm::vec3* scales; cudaMat4* transforms; cudaMat4* inverseTransforms; + int noramlmapId; + int texturemapId; }; struct staticGeom { enum GEOMTYPE type; int materialid; + int normalmapid; + int texturemapid; glm::vec3 translation; glm::vec3 rotation; glm::vec3 scale; diff --git a/textures/angrybird.jpg b/textures/angrybird.jpg new file mode 100644 index 0000000..9025922 Binary files /dev/null and b/textures/angrybird.jpg differ diff --git a/textures/checker.jpg b/textures/checker.jpg new file mode 100644 index 0000000..4d0f89e Binary files /dev/null and b/textures/checker.jpg differ diff --git a/textures/yoyo.jpg b/textures/yoyo.jpg new file mode 100644 index 0000000..6ca9bab Binary files /dev/null and b/textures/yoyo.jpg differ