├── .clang-format ├── .github ├── .codespellignore ├── issue_template.md └── workflows │ ├── build-apple.yml │ ├── build-emscripten.yml │ ├── build-linux.yml │ ├── build-windows.yml │ └── msvc_analysis.yml ├── .gitignore ├── .gitmodules ├── .ignore ├── AssetLoader ├── CMakeLists.txt ├── README.md ├── interface │ ├── DXSDKMeshLoader.hpp │ ├── GLTFBuilder.hpp │ ├── GLTFLoader.hpp │ └── GLTFResourceManager.hpp ├── media │ └── flight_helmet.jpg └── src │ ├── DXSDKMeshLoader.cpp │ ├── GLTFBuilder.cpp │ ├── GLTFLoader.cpp │ └── GLTFResourceManager.cpp ├── BuildTools ├── FormatValidation │ ├── validate_format_linux.sh │ ├── validate_format_mac.sh │ └── validate_format_win.bat └── Scripts │ ├── appveyor │ └── run_tests.bat │ └── travis │ └── run_tests.sh ├── CMakeLists.txt ├── CODEOWNERS ├── HLSL2GLSLConverter ├── CMakeLists.txt ├── src │ ├── HLSL2GLSLConverterApp.cpp │ ├── HLSL2GLSLConverterApp.h │ ├── HLSL2GLSLConverterAppLinux.cpp │ ├── HLSL2GLSLConverterAppMacOS.cpp │ └── HLSL2GLSLConverterAppWin32.cpp └── testshaders │ ├── ConverterTest.fx │ ├── IncludeDir1 │ └── CommonShaderStructs.h │ ├── IncludeDir2 │ └── TestInclude.h │ ├── IncludeTest.fxh │ ├── SelectArraySlice.gsh │ ├── TessTestDX.dsh │ ├── TessTestDX.hsh │ ├── TessTestTriDX.dsh │ └── TessTestTriDX.hsh ├── Imgui ├── CMakeLists.txt ├── interface │ ├── ImGuiDiligentRenderer.hpp │ ├── ImGuiImplAndroid.hpp │ ├── ImGuiImplDiligent.hpp │ ├── ImGuiImplEmscripten.hpp │ ├── ImGuiImplIOS.hpp │ ├── ImGuiImplLinuxX11.hpp │ ├── ImGuiImplLinuxXCB.hpp │ ├── ImGuiImplMacOS.hpp │ ├── ImGuiImplSDL.hpp │ ├── ImGuiImplTVOS.hpp │ ├── ImGuiImplUWP.hpp │ ├── ImGuiImplWin32.hpp │ └── ImGuiUtils.hpp └── src │ ├── ImGuiDiligentRenderer.cpp │ ├── ImGuiImplAndroid.cpp │ ├── ImGuiImplDiligent.cpp │ ├── ImGuiImplEmscripten.cpp │ ├── ImGuiImplIOS.mm │ ├── ImGuiImplLinuxX11.cpp │ ├── ImGuiImplLinuxXCB.cpp │ ├── ImGuiImplMacOS.mm │ ├── ImGuiImplSDL.cpp │ ├── ImGuiImplTVOS.mm │ ├── ImGuiImplUWP.cpp │ ├── ImGuiImplWin32.cpp │ └── ImGuiUtils.cpp ├── License.txt ├── NativeApp ├── Android │ ├── .gitignore │ ├── CMakeLists.txt │ ├── android_common.gradle │ ├── arcore_sdk │ │ └── include │ │ │ └── arcore_c_api.h │ ├── build.gradle │ ├── ndk_helper │ │ ├── CMakeLists.txt │ │ ├── include │ │ │ ├── GLContext.h │ │ │ ├── JNIHelper.h │ │ │ ├── NDKHelper.h │ │ │ ├── gestureDetector.h │ │ │ ├── gl3stub.h │ │ │ ├── interpolator.h │ │ │ ├── perfMonitor.h │ │ │ ├── sensorManager.h │ │ │ ├── tapCamera.h │ │ │ └── vecmath.h │ │ └── src │ │ │ ├── GLContext.cpp │ │ │ ├── JNIHelper.cpp │ │ │ ├── gestureDetector.cpp │ │ │ ├── gl3stub.c │ │ │ ├── gl3stub.cpp │ │ │ ├── interpolator.cpp │ │ │ ├── java │ │ │ └── com │ │ │ │ └── android │ │ │ │ └── helper │ │ │ │ └── NDKHelper.java │ │ │ ├── perfMonitor.cpp │ │ │ ├── sensorManager.cpp │ │ │ ├── tapCamera.cpp │ │ │ └── vecmath.cpp │ └── src │ │ └── main │ │ ├── AndroidManifest.xml │ │ ├── java │ │ └── com │ │ │ └── diligentengine │ │ │ └── android │ │ │ └── common │ │ │ ├── DiligentApplicationBase.java │ │ │ └── NativeActivityBase.java │ │ └── res │ │ ├── layout │ │ └── widgets.xml │ │ ├── mipmap-hdpi │ │ └── ic_launcher.png │ │ ├── mipmap-mdpi │ │ └── ic_launcher.png │ │ ├── mipmap-xhdpi │ │ └── ic_launcher.png │ │ ├── mipmap-xxhdpi │ │ └── ic_launcher.png │ │ ├── values-v11 │ │ └── styles.xml │ │ ├── values-v14 │ │ └── styles.xml │ │ └── values │ │ ├── strings.xml │ │ └── styles.xml ├── Apple │ ├── Data │ │ ├── OSX │ │ │ ├── Base.lproj │ │ │ │ └── Main.storyboard │ │ │ ├── Images.xcassets │ │ │ │ ├── AppIcon.appiconset │ │ │ │ │ └── dg.icns │ │ │ │ ├── metal-logo.png │ │ │ │ ├── opengl-logo.png │ │ │ │ └── vulkan-logo.png │ │ │ └── Info.plist │ │ ├── iOS │ │ │ ├── Base.lproj │ │ │ │ ├── LaunchScreen.xib │ │ │ │ └── Main.storyboard │ │ │ ├── Images.xcassets │ │ │ │ ├── AppIcon.appiconset │ │ │ │ │ └── dg-icon.png │ │ │ │ ├── metal-logo.png │ │ │ │ ├── opengles-logo.png │ │ │ │ └── vulkan-logo.png │ │ │ └── info.plist │ │ └── tvOS │ │ │ ├── Base.lproj │ │ │ └── Main.storyboard │ │ │ └── Info.plist │ ├── LICENSE.txt │ └── Source │ │ ├── Classes │ │ ├── OSX │ │ │ ├── AppDelegate.h │ │ │ ├── AppDelegate.m │ │ │ ├── FullscreenWindow.h │ │ │ ├── FullscreenWindow.m │ │ │ ├── GLView.h │ │ │ ├── GLView.mm │ │ │ ├── MVKView.h │ │ │ ├── MVKView.mm │ │ │ ├── MetalView.h │ │ │ ├── MetalView.mm │ │ │ ├── ModeSelectionViewController.h │ │ │ ├── ModeSelectionViewController.mm │ │ │ ├── ViewBase.h │ │ │ ├── ViewBase.mm │ │ │ ├── ViewController.h │ │ │ ├── ViewController.mm │ │ │ ├── WindowController.h │ │ │ └── WindowController.mm │ │ ├── iOS │ │ │ ├── AppDelegate.h │ │ │ ├── AppDelegate.m │ │ │ ├── AppViewBase.h │ │ │ ├── AppViewBase.mm │ │ │ ├── BaseView.h │ │ │ ├── BaseView.mm │ │ │ ├── EAGLView.h │ │ │ ├── EAGLView.mm │ │ │ ├── MVKView.h │ │ │ ├── MVKView.mm │ │ │ ├── MetalView.h │ │ │ ├── MetalView.mm │ │ │ ├── ModeSelectionViewController.h │ │ │ └── ModeSelectionViewController.mm │ │ └── tvOS │ │ │ ├── AppDelegate.h │ │ │ ├── AppDelegate.mm │ │ │ ├── MainUIView.h │ │ │ ├── MainUIView.mm │ │ │ ├── MetalView.h │ │ │ ├── MetalView.mm │ │ │ ├── MetalViewController.h │ │ │ └── MetalViewController.mm │ │ └── main.m ├── CMakeLists.txt ├── Linux │ ├── CMakeLists.txt │ └── xcb_keysyms │ │ ├── xcb_keysyms.c │ │ └── xcb_keysyms.h ├── include │ ├── Android │ │ └── AndroidAppBase.hpp │ ├── AppBase.hpp │ ├── CommandLineParser.hpp │ ├── Emscripten │ │ └── EmscriptenAppBase.hpp │ ├── IOS │ │ └── IOSAppBase.hpp │ ├── Linux │ │ └── LinuxAppBase.hpp │ ├── MacOS │ │ └── MacOSAppBase.hpp │ ├── NativeAppBase.hpp │ ├── TVOS │ │ └── TVOSAppBase.hpp │ ├── UWP │ │ └── UWPAppBase.hpp │ └── Win32 │ │ └── Win32AppBase.hpp └── src │ ├── Android │ ├── AndroidAppBase.cpp │ └── AndroidMain.cpp │ ├── Emscripten │ ├── EmscriptenAppBase.cpp │ └── EmscriptenMain.cpp │ ├── IOS │ └── IOSAppBase.cpp │ ├── Linux │ └── LinuxMain.cpp │ ├── MacOS │ └── MacOSAppBase.cpp │ ├── TVOS │ └── TVOSAppBase.cpp │ ├── UWP │ ├── App.cpp │ ├── App.h │ ├── Common │ │ ├── DeviceResources.cpp │ │ ├── DeviceResources.h │ │ ├── DirectXHelper.h │ │ └── StepTimer.h │ ├── UWPAppBase.cpp │ └── dummy.cpp │ └── Win32 │ ├── WinMain.cpp │ └── main.cpp ├── README.md ├── RenderStateNotation ├── CMakeLists.txt ├── include │ ├── RenderStateNotationLoaderImpl.hpp │ ├── RenderStateNotationParserImpl.hpp │ └── pch.h ├── interface │ ├── RenderStateNotationLoader.h │ └── RenderStateNotationParser.h ├── scripts │ ├── cxx_builder.py │ ├── cxx_config.py │ ├── cxx_generator.py │ ├── cxx_parser.py │ └── cxx_template.py └── src │ ├── RenderStateNotationLoaderImpl.cpp │ └── RenderStateNotationParserImpl.cpp ├── RenderStatePackager ├── CMakeLists.txt ├── README.md ├── include │ ├── ParsingEnvironment.hpp │ └── RenderStatePackager.hpp └── src │ ├── ParsingEnvironment.cpp │ ├── RenderStatePackager.cpp │ └── main.cpp ├── Tests ├── CMakeLists.txt ├── DiligentToolsGPUTest │ ├── CMakeLists.txt │ ├── assets │ │ ├── RenderStates │ │ │ ├── IgnoreSignature.json │ │ │ ├── PSO.json │ │ │ ├── PSO_Sign.json │ │ │ ├── Reload │ │ │ │ └── PSO.json │ │ │ └── Signature.json │ │ └── Shaders │ │ │ ├── GeometryOpaque.hlsl │ │ │ └── Reload │ │ │ └── GeometryOpaque.hlsl │ └── src │ │ ├── RenderStateNotationLoaderTest.cpp │ │ └── RenderStatePackagerGPUTest.cpp ├── DiligentToolsTest │ ├── CMakeLists.txt │ ├── assets │ │ ├── RenderStatePackagerConfig.json │ │ ├── RenderStates │ │ │ ├── BlendState │ │ │ │ ├── BlendStateDesc.json │ │ │ │ └── RenderTargetBlendDesc.json │ │ │ ├── DepthStencilState │ │ │ │ ├── DepthStencilStateDesc.json │ │ │ │ └── StencilOpDesc.json │ │ │ ├── GraphicsTypes │ │ │ │ ├── AdapterMemoryInfo.json │ │ │ │ ├── BufferProperties.json │ │ │ │ ├── CommandQueueInfo.json │ │ │ │ ├── ComputeShaderProperties.json │ │ │ │ ├── DeviceFeatures.json │ │ │ │ ├── DrawCommandProperties.json │ │ │ │ ├── GraphicsAdapterInfo.json │ │ │ │ ├── MeshShaderProperties.json │ │ │ │ ├── NDCAttribs.json │ │ │ │ ├── RayTracingProperties.json │ │ │ │ ├── RenderDeviceInfo.json │ │ │ │ ├── SamplerProperties.json │ │ │ │ ├── ShadingRateMode.json │ │ │ │ ├── ShadingRateProperties.json │ │ │ │ ├── SparseResourceProperties.json │ │ │ │ ├── TextureProperties.json │ │ │ │ ├── Version.json │ │ │ │ └── WaveOpProperties.json │ │ │ ├── InputLayout │ │ │ │ ├── InputLayoutDesc.json │ │ │ │ └── LayoutElement.json │ │ │ ├── PipelineResourceSignature │ │ │ │ ├── ImmutableSamplerDesc.json │ │ │ │ ├── PipelineResourceDesc.json │ │ │ │ └── PipelineResourceSignatureDesc.json │ │ │ ├── PipelineState │ │ │ │ ├── GraphicsPipelineDesc.json │ │ │ │ ├── PipelineResourceLayoutDesc.json │ │ │ │ ├── PipelineStateDesc.json │ │ │ │ ├── RayTracingPipelineDesc.json │ │ │ │ ├── SampleDesc.json │ │ │ │ ├── ShaderResourceVariableDesc.json │ │ │ │ └── TilePipelineDesc.json │ │ │ ├── RasterizerState │ │ │ │ └── RasterizerStateDesc.json │ │ │ ├── RenderPass │ │ │ │ ├── AttachmentReference.json │ │ │ │ ├── RenderPassAttachmentDesc.json │ │ │ │ ├── RenderPassDesc.json │ │ │ │ ├── ShadingRateAttachment.json │ │ │ │ ├── SubpassDependencyDesc.json │ │ │ │ └── SubpassDesc.json │ │ │ ├── RenderStateNotationParser │ │ │ │ ├── ComputePipelineNotation.json │ │ │ │ ├── DefaultPipelineStates.json │ │ │ │ ├── DuplicationResources.json │ │ │ │ ├── GraphicsPipelineNotation.json │ │ │ │ ├── ImplicitPipelineStates.json │ │ │ │ ├── InlinePipelineStates.json │ │ │ │ ├── InvalidEnum.json │ │ │ │ ├── InvalidJson.json │ │ │ │ ├── InvalidKey.json │ │ │ │ ├── InvalidTypeBase.json │ │ │ │ ├── InvalidTypeBitfield.json │ │ │ │ ├── InvalidTypeConstArray.json │ │ │ │ ├── PipelineStates.json │ │ │ │ ├── RayTracingPipelineNotation.json │ │ │ │ ├── RedefinitionRenderPass.json │ │ │ │ ├── RedefinitionResourceSignature.json │ │ │ │ ├── RedefinitionShader.json │ │ │ │ ├── Reload │ │ │ │ │ └── GraphicsPipelineNotation.json │ │ │ │ ├── RenderPasses.json │ │ │ │ ├── RenderStatesLibrary.json │ │ │ │ ├── ResourceSignatures.json │ │ │ │ ├── Shaders.json │ │ │ │ └── TilePipelineNotation.json │ │ │ ├── RenderStatePackager │ │ │ │ ├── ComputePrimitives.json │ │ │ │ ├── GraphicsPrimitives.json │ │ │ │ ├── GraphicsPrimitivesDump.json │ │ │ │ ├── IgnoredSignatures.json │ │ │ │ ├── Import0.json │ │ │ │ ├── Import1.json │ │ │ │ ├── InvalidResources.json │ │ │ │ ├── MissingRenderPass.json │ │ │ │ ├── MissingResourceSignature.json │ │ │ │ ├── MissingShader.json │ │ │ │ ├── RenderStatesLibrary.json │ │ │ │ └── ResourceSignature.json │ │ │ ├── Sampler │ │ │ │ └── SamplerDesc.json │ │ │ └── Shader │ │ │ │ ├── ShaderCreateInfo.json │ │ │ │ ├── ShaderDesc.json │ │ │ │ ├── ShaderMacro.json │ │ │ │ └── ShaderResourceDesc.json │ │ └── Shaders │ │ │ ├── BrokenShader.hlsl │ │ │ ├── Common.hlsli │ │ │ ├── ComputePrimitives.hlsl │ │ │ └── GraphicsPrimitives.hlsl │ ├── include │ │ └── DRSNLoader.hpp │ └── src │ │ ├── CommandLineParserTest.cpp │ │ ├── JPEGCodecTest.cpp │ │ ├── PNGCodecTest.cpp │ │ ├── RenderStateNotationParser │ │ ├── BlendStateParserTest.cpp │ │ ├── DepthStencilStateParserTest.cpp │ │ ├── GraphicsTypesParserTest.cpp │ │ ├── InputLayoutParserTest.cpp │ │ ├── PipelineResourceSignatureParserTest.cpp │ │ ├── PipelineStateParserTest.cpp │ │ ├── RasterizerStateParserTest.cpp │ │ ├── RenderPassParserTest.cpp │ │ ├── RenderStateNotationParserTest.cpp │ │ ├── SamplerParserTest.cpp │ │ └── ShaderParserTest.cpp │ │ ├── RenderStatePackager │ │ └── RenderStatePackagerTest.cpp │ │ └── TextureUtilitiesTest.cpp └── IncludeTest │ ├── BaseStructAlignmentTest.cpp │ ├── CMakeLists.txt │ ├── RenderStateNotation │ ├── RenderStateNotationLoaderH_test.c │ ├── RenderStateNotationLoaderH_test.cpp │ ├── RenderStateNotationParserH_test.c │ └── RenderStateNotationParserH_test.cpp │ └── TextureLoader │ ├── BCToolsH_test.c │ ├── BCToolsH_test.cpp │ ├── ImageH_test.cpp │ ├── TextureLoaderH_test.c │ ├── TextureLoaderH_test.cpp │ ├── TextureUtilitiesH_test.c │ └── TextureUtilitiesH_test.cpp ├── TextureLoader ├── CMakeLists.txt ├── include │ ├── TextureLoaderImpl.hpp │ ├── dxgiformat.h │ └── pch.h ├── interface │ ├── BCTools.h │ ├── Image.h │ ├── JPEGCodec.h │ ├── PNGCodec.h │ ├── SGILoader.h │ ├── TextureLoader.h │ └── TextureUtilities.h └── src │ ├── BCTools.cpp │ ├── DDSLoader.cpp │ ├── Image.cpp │ ├── JPEGCodec.c │ ├── KTXLoader.cpp │ ├── PNGCodec.c │ ├── SGILoader.cpp │ ├── STBImpl.cpp │ ├── TextureLoaderImpl.cpp │ └── TextureUtilities.cpp ├── ThirdParty ├── CMakeLists.txt ├── imGuIZMO.quat │ ├── imGuIZMO.cpp │ ├── imGuIZMO.h │ └── license.txt ├── imgui_v1.85 │ ├── imgui_impl_osx_v1.85.h │ └── imgui_impl_osx_v1.85.mm ├── libjpeg-9e │ ├── CMakeLists.txt │ ├── Makefile.am │ ├── Makefile.in │ ├── README │ ├── aclocal.m4 │ ├── ar-lib │ ├── cderror.h │ ├── cdjpeg.c │ ├── cdjpeg.h │ ├── cjpeg.1 │ ├── cjpeg.c │ ├── ckconfig.c │ ├── coderules.txt │ ├── compile │ ├── config.guess │ ├── config.sub │ ├── configure │ ├── configure.ac │ ├── depcomp │ ├── djpeg.1 │ ├── djpeg.c │ ├── example.c │ ├── filelist.txt │ ├── install-sh │ ├── install.txt │ ├── jaricom.c │ ├── jcapimin.c │ ├── jcapistd.c │ ├── jcarith.c │ ├── jccoefct.c │ ├── jccolor.c │ ├── jcdctmgr.c │ ├── jchuff.c │ ├── jcinit.c │ ├── jcmainct.c │ ├── jcmarker.c │ ├── jcmaster.c │ ├── jcomapi.c │ ├── jconfig.bcc │ ├── jconfig.cfg │ ├── jconfig.dj │ ├── jconfig.h │ ├── jconfig.mac │ ├── jconfig.manx │ ├── jconfig.mc6 │ ├── jconfig.sas │ ├── jconfig.st │ ├── jconfig.txt │ ├── jconfig.vms │ ├── jconfig.wat │ ├── jcparam.c │ ├── jcprepct.c │ ├── jcsample.c │ ├── jctrans.c │ ├── jdapimin.c │ ├── jdapistd.c │ ├── jdarith.c │ ├── jdatadst.c │ ├── jdatasrc.c │ ├── jdcoefct.c │ ├── jdcolor.c │ ├── jdct.h │ ├── jddctmgr.c │ ├── jdhuff.c │ ├── jdinput.c │ ├── jdmainct.c │ ├── jdmarker.c │ ├── jdmaster.c │ ├── jdmerge.c │ ├── jdosaobj.txt │ ├── jdpostct.c │ ├── jdsample.c │ ├── jdtrans.c │ ├── jerror.c │ ├── jerror.h │ ├── jfdctflt.c │ ├── jfdctfst.c │ ├── jfdctint.c │ ├── jidctflt.c │ ├── jidctfst.c │ ├── jidctint.c │ ├── jinclude.h │ ├── jmemansi.c │ ├── jmemdos.c │ ├── jmemdosa.asm │ ├── jmemmac.c │ ├── jmemmgr.c │ ├── jmemname.c │ ├── jmemnobs.c │ ├── jmemsys.h │ ├── jmorecfg.h │ ├── jpegint.h │ ├── jpeglib.h │ ├── jpegtran.1 │ ├── jpegtran.c │ ├── jquant1.c │ ├── jquant2.c │ ├── jutils.c │ ├── jversion.h │ ├── libjpeg.map │ ├── libjpeg.txt │ ├── ltmain.sh │ ├── makcjpeg.st │ ├── makdjpeg.st │ ├── makeadsw.vc6 │ ├── makecdep.vc6 │ ├── makecdsp.vc6 │ ├── makecfil.v16 │ ├── makecmak.vc6 │ ├── makeddep.vc6 │ ├── makeddsp.vc6 │ ├── makedfil.v16 │ ├── makedmak.vc6 │ ├── makefile.ansi │ ├── makefile.bcc │ ├── makefile.dj │ ├── makefile.manx │ ├── makefile.mc6 │ ├── makefile.mms │ ├── makefile.sas │ ├── makefile.unix │ ├── makefile.vc │ ├── makefile.vms │ ├── makefile.wat │ ├── makejdep.vc6 │ ├── makejdsp.vc6 │ ├── makejdsw.vc6 │ ├── makejmak.vc6 │ ├── makeproj.mac │ ├── makerdep.vc6 │ ├── makerdsp.vc6 │ ├── makerfil.v16 │ ├── makermak.vc6 │ ├── maketdep.vc6 │ ├── maketdsp.vc6 │ ├── maketfil.v16 │ ├── maketmak.vc6 │ ├── makewdep.vc6 │ ├── makewdsp.vc6 │ ├── makewfil.v16 │ ├── makewmak.vc6 │ ├── makljpeg.st │ ├── maktjpeg.st │ ├── makvms.opt │ ├── missing │ ├── rdbmp.c │ ├── rdcolmap.c │ ├── rdgif.c │ ├── rdjpgcom.1 │ ├── rdjpgcom.c │ ├── rdppm.c │ ├── rdrle.c │ ├── rdswitch.c │ ├── rdtarga.c │ ├── readme.dos │ ├── structure.txt │ ├── testimg.bmp │ ├── testimg.jpg │ ├── testimg.ppm │ ├── testimgp.jpg │ ├── testorig.jpg │ ├── testprog.jpg │ ├── transupp.c │ ├── transupp.h │ ├── usage.txt │ ├── wizard.txt │ ├── wrbmp.c │ ├── wrgif.c │ ├── wrjpgcom.1 │ ├── wrjpgcom.c │ ├── wrppm.c │ ├── wrrle.c │ └── wrtarga.c ├── libtiff │ ├── CMakeLists.txt │ ├── COPYRIGHT │ ├── Makefile.am │ ├── Makefile.in │ ├── Makefile.lcc │ ├── Makefile.vc │ ├── SConstruct │ ├── VERSION.txt │ ├── libtiff.def │ ├── libtiff.map │ ├── libtiffxx.map │ ├── mkg3states.c │ ├── mkspans.c │ ├── t4.h │ ├── tif_aux.c │ ├── tif_close.c │ ├── tif_codec.c │ ├── tif_color.c │ ├── tif_compress.c │ ├── tif_config.android.h │ ├── tif_config.h │ ├── tif_config.h-vms │ ├── tif_config.h.cmake.in │ ├── tif_config.h.in │ ├── tif_config.linux.h │ ├── tif_config.vc.h │ ├── tif_config.wince.h │ ├── tif_dir.c │ ├── tif_dir.h │ ├── tif_dirinfo.c │ ├── tif_dirread.c │ ├── tif_dirwrite.c │ ├── tif_dumpmode.c │ ├── tif_error.c │ ├── tif_extension.c │ ├── tif_fax3.c │ ├── tif_fax3.h │ ├── tif_fax3sm.c │ ├── tif_flush.c │ ├── tif_getimage.c │ ├── tif_jbig.c │ ├── tif_jpeg.c │ ├── tif_jpeg_12.c │ ├── tif_lerc.c │ ├── tif_luv.c │ ├── tif_lzma.c │ ├── tif_lzw.c │ ├── tif_next.c │ ├── tif_ojpeg.c │ ├── tif_open.c │ ├── tif_packbits.c │ ├── tif_pixarlog.c │ ├── tif_predict.c │ ├── tif_predict.h │ ├── tif_print.c │ ├── tif_read.c │ ├── tif_stream.cxx │ ├── tif_strip.c │ ├── tif_swab.c │ ├── tif_thunder.c │ ├── tif_tile.c │ ├── tif_unix.c │ ├── tif_version.c │ ├── tif_vms.c │ ├── tif_warning.c │ ├── tif_webp.c │ ├── tif_win32.c │ ├── tif_wince.c │ ├── tif_write.c │ ├── tif_zip.c │ ├── tif_zstd.c │ ├── tiff.h │ ├── tiffconf.h │ ├── tiffconf.h-vms │ ├── tiffconf.h.cmake.in │ ├── tiffconf.h.in │ ├── tiffconf.linux.h │ ├── tiffconf.vc.h │ ├── tiffconf.wince.h │ ├── tiffio.h │ ├── tiffio.hxx │ ├── tiffiop.h │ ├── tiffvers.h │ ├── tiffvers.h.in │ └── uvcode.h ├── tinygltf │ ├── LICENSE │ └── tiny_gltf.h └── zlib.cmake └── appveyor.yml /.github/.codespellignore: -------------------------------------------------------------------------------- 1 | inout 2 | complies 3 | thirdparty 4 | -------------------------------------------------------------------------------- /.github/issue_template.md: -------------------------------------------------------------------------------- 1 | (Click "Preview" to turn any URL into a clickable link) 2 | 3 | If you have build or run problems, please read [troubleshooting](https://github.com/DiligentGraphics/DiligentEngine/blob/master/Troubleshooting.md) first. 4 | 5 | Please double-check that your [code is up-to-date, including all submodules](https://github.com/DiligentGraphics/DiligentEngine#cloning-the-repository). 6 | 7 | If you have a question that does not require creating an issue, you may ask it on [discord](https://discord.gg/t7HGBK7). 8 | 9 | For performance issues, please make sure you are running release builds. Debug builds may be significantly slower, especially on Windows. 10 | 11 | For GPU-related problems, please make sure you have up-to-date drivers. 12 | 13 | Please provide the following information: 14 | 15 | - OS and version you are running (e.g. Windows 10.0.18362, MacOS Catalina 10.15, etc.) 16 | - Build tools and configuration you used to build the engine (e.g. Visual Studio 2017 Debug x64 + CMake 3.15.4) 17 | - GPU and driver version you have installed on your system 18 | - Debug output, especially messages from Diligent 19 | - Call stack (if available) 20 | - If you experience a problem with one back-end, please try running other back-ends and see if the same issue arises 21 | -------------------------------------------------------------------------------- /.github/workflows/build-emscripten.yml: -------------------------------------------------------------------------------- 1 | name: Emscripten build 2 | 3 | on: [push, pull_request] 4 | 5 | jobs: 6 | build: 7 | strategy: 8 | matrix: 9 | os: [windows-latest, ubuntu-24.04, macos-14] 10 | build_type: [Debug, Release] 11 | 12 | exclude: 13 | # Exclude MacOS-Release 14 | - os: macos-14 15 | build_type: Release 16 | 17 | include: 18 | - os: windows-latest 19 | host_name: Win10 20 | 21 | - os: ubuntu-24.04 22 | host_name: Linux 23 | 24 | - os: macos-14 25 | host_name: MacOS 26 | 27 | runs-on: ${{ matrix.os }} 28 | name: ${{ matrix.host_name }} -> Emscripten, ${{ matrix.build_type }} 29 | 30 | steps: 31 | - name: Checkout 32 | uses: DiligentGraphics/github-action/checkout@v7 33 | 34 | - name: Set up build environment 35 | if: success() 36 | uses: DiligentGraphics/github-action/setup-build-env@v7 37 | with: 38 | platform: Web 39 | 40 | - name: Configure CMake 41 | if: success() 42 | uses: DiligentGraphics/github-action/configure-cmake@v7 43 | with: 44 | build-type: ${{ matrix.build_type }} 45 | cmake-args: "-DDILIGENT_BUILD_TOOLS_INCLUDE_TEST=ON" 46 | 47 | - name: Build 48 | if: success() 49 | uses: DiligentGraphics/github-action/build@v7 50 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | .vs 2 | build 3 | 4 | # Python 5 | __pycache__/ 6 | *.py[cod] 7 | *$py.class 8 | 9 | .DS_Store 10 | -------------------------------------------------------------------------------- /.gitmodules: -------------------------------------------------------------------------------- 1 | [submodule "ThirdParty/imgui"] 2 | path = ThirdParty/imgui 3 | url = https://github.com/DiligentGraphics/imgui 4 | [submodule "ThirdParty/args"] 5 | path = ThirdParty/args 6 | url = https://github.com/DiligentGraphics/args 7 | [submodule "ThirdParty/zlib"] 8 | path = ThirdParty/zlib 9 | url = https://github.com/DiligentGraphics/zlib 10 | [submodule "ThirdParty/libpng"] 11 | path = ThirdParty/libpng 12 | url = https://github.com/DiligentGraphics/libpng 13 | [submodule "ThirdParty/stb"] 14 | path = ThirdParty/stb 15 | url = https://github.com/DiligentGraphics/stb.git 16 | [submodule "ThirdParty/json"] 17 | path = ThirdParty/json 18 | url = https://github.com/DiligentGraphics/json.git 19 | -------------------------------------------------------------------------------- /.ignore: -------------------------------------------------------------------------------- 1 | ThirdParty/ 2 | -------------------------------------------------------------------------------- /AssetLoader/media/flight_helmet.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DiligentGraphics/DiligentTools/f8cc33e02de468f39325de715c5ad91e4373a66a/AssetLoader/media/flight_helmet.jpg -------------------------------------------------------------------------------- /BuildTools/FormatValidation/validate_format_linux.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | source ../../../DiligentCore/BuildTools/FormatValidation/validate_format_linux_implementation.sh 4 | 5 | validate_format ../../AssetLoader ../../Imgui ../../NativeApp/include ../../NativeApp/src ../../TextureLoader ../../Tests \ 6 | ../../RenderStateNotation ../../RenderStatePackager \ 7 | --exclude ../../Imgui/interface/ImGuiImplMacOS.h \ 8 | --exclude ../../Imgui/interface/ImGuiImplIOS.h \ 9 | --exclude ../../NativeApp/src/UWP \ 10 | --exclude ../../NativeApp/include/UWP 11 | -------------------------------------------------------------------------------- /BuildTools/FormatValidation/validate_format_mac.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | python3 ../../../DiligentCore/BuildTools/FormatValidation/clang-format-validate.py \ 3 | --clang-format-executable ../../../DiligentCore/BuildTools/FormatValidation/clang-format_mac_10.0.0 \ 4 | -r ../../AssetLoader ../../Imgui ../../NativeApp/include ../../NativeApp/src ../../TextureLoader ../../Tests \ 5 | ../../RenderStateNotation ../../RenderStatePackager \ 6 | --exclude ../../Imgui/interface/ImGuiImplMacOS.h \ 7 | --exclude ../../Imgui/interface/ImGuiImplIOS.h \ 8 | --exclude ../../NativeApp/src/UWP \ 9 | --exclude ../../NativeApp/include/UWP 10 | -------------------------------------------------------------------------------- /BuildTools/FormatValidation/validate_format_win.bat: -------------------------------------------------------------------------------- 1 | python ../../../DiligentCore/BuildTools/FormatValidation/clang-format-validate.py --color never ^ 2 | --clang-format-executable ../../../DiligentCore/BuildTools/FormatValidation/clang-format_10.0.0.exe ^ 3 | -r ../../AssetLoader ../../Imgui ../../NativeApp/include ../../NativeApp/src ../../TextureLoader ../../Tests ^ 4 | ../../RenderStateNotation ../../RenderStatePackager ^ 5 | --exclude ../../Imgui/interface/ImGuiImplMacOS.h ^ 6 | --exclude ../../Imgui/interface/ImGuiImplIOS.h ^ 7 | --exclude ../../NativeApp/src/UWP ^ 8 | --exclude ../../NativeApp/include/UWP 9 | -------------------------------------------------------------------------------- /BuildTools/Scripts/appveyor/run_tests.bat: -------------------------------------------------------------------------------- 1 | rem @echo off 2 | 3 | set ERROR=0 4 | 5 | if "%PLATFORM_NAME%"=="Windows" ( 6 | "%1\Tests\DiligentToolsTest\%CONFIGURATION%\DiligentToolsTest.exe" || set ERROR=1 7 | ) 8 | 9 | exit /B %ERROR% REM use /B to exit the current batch script context, and not the command prompt process 10 | -------------------------------------------------------------------------------- /BuildTools/Scripts/travis/run_tests.sh: -------------------------------------------------------------------------------- 1 | if [ "$TRAVIS_OS_NAME" = "linux" ]; then 2 | $1/Tests/DiligentToolsTest/DiligentToolsTest || return 3 | fi 4 | 5 | if [ "$TRAVIS_OS_NAME" = "osx" ]; then 6 | if [ "$IOS" = "false" ]; then 7 | $1/Tests/DiligentToolsTest/$CONFIG/DiligentToolsTest || return 8 | fi 9 | fi 10 | -------------------------------------------------------------------------------- /CODEOWNERS: -------------------------------------------------------------------------------- 1 | * @TheMostDiligent 2 | 3 | /RenderStateNotationParser/ @MikhailGorobets 4 | /RenderStatePackager/ @MikhailGorobets 5 | /Tests/DiligentToolsTest/src/RenderStateNotationParser/ @MikhailGorobets 6 | -------------------------------------------------------------------------------- /HLSL2GLSLConverter/testshaders/IncludeDir1/CommonShaderStructs.h: -------------------------------------------------------------------------------- 1 | 2 | struct QuadVSOut 3 | { 4 | float2 m_f2UV : UV; 5 | uint m_uiInstID : InstID; 6 | float4 m_f4Pos : SV_Position; 7 | }; 8 | -------------------------------------------------------------------------------- /HLSL2GLSLConverter/testshaders/IncludeDir2/TestInclude.h: -------------------------------------------------------------------------------- 1 | 2 | struct TestStruct 3 | { 4 | float4 f4Pos; 5 | float2 f2UV; 6 | }; 7 | -------------------------------------------------------------------------------- /HLSL2GLSLConverter/testshaders/SelectArraySlice.gsh: -------------------------------------------------------------------------------- 1 | #include "CommonShaderStructs.shinc" 2 | 3 | struct SelectArraySliceGSOut 4 | { 5 | QuadVSOut VSOutput; 6 | int RenderTargetIndex : SV_RenderTargetArrayIndex; 7 | }; 8 | 9 | cbuffer cbTileAttribs 10 | { 11 | int g_TileArrayIndex[4]; 12 | } 13 | 14 | [maxvertexcount(3)] 15 | void SelectArraySliceGS(triangle QuadVSOut In[3], 16 | inout TriangleStream triStream ) 17 | { 18 | uint InstID = In[0].m_uiInstID; 19 | int RTIndex = g_TileArrayIndex[InstID]; 20 | for(int i=0; i<3; i++) 21 | { 22 | SelectArraySliceGSOut Out; 23 | Out.VSOutput = In[i]; 24 | Out.RenderTargetIndex = RTIndex; 25 | triStream.Append( Out ); 26 | } 27 | } 28 | -------------------------------------------------------------------------------- /HLSL2GLSLConverter/testshaders/TessTestDX.dsh: -------------------------------------------------------------------------------- 1 | #include "CommonShaderStructs.h" 2 | #include "TestInclude.h" 3 | 4 | struct DSOutput 5 | { 6 | float4 f4Position : SV_Position; 7 | }; 8 | 9 | struct HS_CONSTANT_DATA_OUTPUT 10 | { 11 | float Edges[4] : SV_TessFactor; 12 | float Inside[2] : SV_InsideTessFactor; 13 | }; 14 | 15 | struct HSOutput 16 | { 17 | float4 Position : POS; 18 | float3 Color : COL; 19 | }; 20 | 21 | [domain("quad")] 22 | /* partitioning = fractional_even, outputtopology = triangle_cw */ 23 | float3 main( HS_CONSTANT_DATA_OUTPUT input, 24 | float2 QuadUV : SV_DomainLocation, 25 | OutputPatch QuadPatch, 26 | out DSOutput Out ): COLOR 27 | { 28 | Out.f4Position.xy = QuadPatch[0].Position.xy + QuadUV.xy * 0.1; 29 | Out.f4Position.zw = QuadPatch[0].Position.zw; 30 | return frac( (QuadPatch[0].Color + float3(QuadUV.xy, 1.0)) * float3(4121.35f, 8232.25f, 9124.42f) ); 31 | } 32 | -------------------------------------------------------------------------------- /HLSL2GLSLConverter/testshaders/TessTestDX.hsh: -------------------------------------------------------------------------------- 1 | 2 | struct VSOutput 3 | { 4 | float4 f4Position : SV_Position; 5 | float3 f3Color : COLOR; 6 | }; 7 | 8 | // Output patch constant data. 9 | struct HS_CONSTANT_DATA_OUTPUT 10 | { 11 | float Edges[4] : SV_TessFactor; 12 | }; 13 | 14 | HS_CONSTANT_DATA_OUTPUT ConstantHS( InputPatch p, 15 | out float Inside[1+1] : SV_InsideTessFactor, 16 | uint BlockID : SV_PrimitiveID) 17 | { 18 | HS_CONSTANT_DATA_OUTPUT Factors; 19 | Factors.Edges[0] = 2.5; 20 | Factors.Edges[1] = 4.5; 21 | Factors.Edges[2] = 5.5; 22 | Factors.Edges[3] = 7.5; 23 | Inside[0] = 6.2; 24 | Inside[1] = 7.3; 25 | return Factors; 26 | } 27 | 28 | 29 | struct HSOutput 30 | { 31 | float4 Position : SV_Position; 32 | float3 Color : COL; 33 | }; 34 | 35 | [domain("quad")] 36 | [partitioning("fractional_even")] 37 | [outputtopology("triangle_cw")] 38 | [outputcontrolpoints(2)] 39 | [patchconstantfunc("ConstantHS")] 40 | [maxtessfactor( (float)(32.f+2.f) )] 41 | HSOutput main(InputPatch inputPatch, uint uCPID : SV_OutputControlPointID) 42 | { 43 | HSOutput Out; 44 | Out.Position = inputPatch[uCPID].f4Position; 45 | Out.Color = inputPatch[uCPID].f3Color; 46 | return Out; 47 | } -------------------------------------------------------------------------------- /HLSL2GLSLConverter/testshaders/TessTestTriDX.dsh: -------------------------------------------------------------------------------- 1 | 2 | struct DSOutput 3 | { 4 | float4 f4Position : SV_Position; 5 | float3 f3Color : COLOR; 6 | }; 7 | 8 | 9 | struct HS_CONSTANT_DATA_OUTPUT 10 | { 11 | float Edges[3] : SV_TessFactor; 12 | float Inside : SV_InsideTessFactor; 13 | }; 14 | 15 | struct HSOutput 16 | { 17 | float4 Position : POS; 18 | float3 Color : COL; 19 | }; 20 | 21 | [domain("tri")] 22 | /* partitioning = fractional_odd , 23 | outputtopology = triangle_cw */ 24 | void main( HS_CONSTANT_DATA_OUTPUT Input, 25 | float3 QuadUV : SV_DomainLocation, 26 | OutputPatch QuadPatch, 27 | out DSOutput Out) 28 | { 29 | Out.f4Position.xy = QuadPatch[0].Position.xy + QuadUV.x * float2(-0.15, 0.0) + QuadUV.y * float2(0.0, 0.15) + QuadUV.z * float2(+0.15, 0.0); 30 | Out.f4Position.zw = QuadPatch[0].Position.zw; 31 | Out.f3Color = frac( (QuadPatch[0].Color + QuadUV.xyz * float3(4121.35f, 8232.25f, 9124.42f) ) ); 32 | } 33 | -------------------------------------------------------------------------------- /HLSL2GLSLConverter/testshaders/TessTestTriDX.hsh: -------------------------------------------------------------------------------- 1 | 2 | struct VSOutput 3 | { 4 | float4 f4Position : SV_Position; 5 | float3 f3Color : COLOR; 6 | }; 7 | 8 | // Output patch constant data. 9 | struct HS_CONSTANT_DATA_OUTPUT 10 | { 11 | float Edges[3] : SV_TessFactor; 12 | }; 13 | 14 | HS_CONSTANT_DATA_OUTPUT ConstantHS( InputPatch p, 15 | uint BlockID : SV_PrimitiveID, 16 | out float Inside : SV_InsideTessFactor) 17 | { 18 | HS_CONSTANT_DATA_OUTPUT Factors; 19 | Factors.Edges[0] = 2.5 + float(BlockID); 20 | Factors.Edges[1] = 4.5 + p[0].f4Position.x * 1.53; 21 | Factors.Edges[2] = 5.5 - p[0].f4Position.y * 2.53; 22 | Inside = 6.2 + p[0].f4Position.x * 1.53; 23 | return Factors; 24 | } 25 | 26 | struct HSOutput 27 | { 28 | float4 Position : POS; 29 | float3 Color : COL; 30 | }; 31 | 32 | [domain("tri")] 33 | [partitioning("fractional_odd")] 34 | [outputtopology("triangle_cw")] 35 | [outputcontrolpoints(1)] 36 | [patchconstantfunc("ConstantHS")] 37 | [maxtessfactor( (float)(32.f+2.f) )] 38 | HSOutput main(InputPatch inputPatch, uint uCPID : SV_OutputControlPointID) 39 | { 40 | HSOutput Out; 41 | Out.Position = inputPatch[uCPID].f4Position; 42 | Out.Color = inputPatch[uCPID].f3Color; 43 | return Out; 44 | } -------------------------------------------------------------------------------- /NativeApp/Android/.gitignore: -------------------------------------------------------------------------------- 1 | /build 2 | /.externalNativeBuild 3 | *.iml 4 | .cxx 5 | -------------------------------------------------------------------------------- /NativeApp/Android/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | cmake_minimum_required (VERSION 3.10) 2 | 3 | add_library(native_app_glue ${ANDROID_NDK}/sources/android/native_app_glue/android_native_app_glue.c) 4 | target_link_libraries(native_app_glue log) 5 | target_include_directories(native_app_glue INTERFACE ${ANDROID_NDK}/sources/android/native_app_glue) 6 | set_common_target_properties(native_app_glue) 7 | 8 | add_subdirectory(ndk_helper) 9 | -------------------------------------------------------------------------------- /NativeApp/Android/android_common.gradle: -------------------------------------------------------------------------------- 1 | android { 2 | compileSdk 31 3 | 4 | defaultConfig { 5 | minSdkVersion 28 6 | targetSdkVersion 31 7 | versionCode 1 8 | versionName "1.0" 9 | 10 | testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner" 11 | } 12 | 13 | ndkVersion '27.0.12077973' 14 | } 15 | 16 | buildDir "${project.rootDir}/../../build/Android/${project.name}" 17 | -------------------------------------------------------------------------------- /NativeApp/Android/ndk_helper/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | cmake_minimum_required (VERSION 3.10) 2 | 3 | project(NDKHelper CXX) 4 | 5 | set(SOURCE 6 | src/gestureDetector.cpp 7 | src/JNIHelper.cpp 8 | src/perfMonitor.cpp 9 | src/sensorManager.cpp 10 | src/tapCamera.cpp 11 | src/vecmath.cpp 12 | ) 13 | 14 | set(INCLUDE 15 | include/gestureDetector.h 16 | include/JNIHelper.h 17 | include/perfMonitor.h 18 | include/sensorManager.h 19 | include/tapCamera.h 20 | ) 21 | 22 | add_library(NDKHelper STATIC ${SOURCE} ${INCLUDE}) 23 | set_common_target_properties(NDKHelper) 24 | 25 | target_include_directories(NDKHelper 26 | PUBLIC 27 | include 28 | ) 29 | 30 | target_link_libraries(NDKHelper 31 | PRIVATE 32 | Diligent-BuildSettings 33 | PUBLIC 34 | native_app_glue 35 | ) 36 | 37 | if (CMAKE_CXX_COMPILER_ID MATCHES "Clang") 38 | # WARNING: set_source_files_properties() does not append 39 | # properties, but overwrites them! 40 | # NOTE: target_compile_options() adds the option before -Werror, which has no effect 41 | set_property(SOURCE ${SOURCE} 42 | APPEND_STRING PROPERTY 43 | COMPILE_FLAGS " -Wno-deprecated-copy" 44 | ) 45 | endif() 46 | 47 | source_group("src" FILES ${SOURCE}) 48 | source_group("include" FILES ${INCLUDE}) 49 | 50 | set_target_properties(NDKHelper PROPERTIES 51 | FOLDER Core/External 52 | ) 53 | -------------------------------------------------------------------------------- /NativeApp/Android/ndk_helper/include/NDKHelper.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2013 The Android Open Source Project 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | #ifndef _NDKSUPPORT_H 18 | #define _NDKSUPPORT_H 19 | 20 | #define NDK_HELPER_VERSION "0.90" 21 | 22 | #pragma clang diagnostic push 23 | #pragma clang diagnostic ignored "-Wdeprecated-copy" 24 | 25 | /****************************************************************** 26 | * NDK support helpers 27 | * Utility module to provide misc functionalities that is used widely in native 28 | * applications, 29 | * such as gesture detection, jni bridge, openGL context etc. 30 | * 31 | * The purpose of this module is, 32 | * - Provide best practices using NDK 33 | * - Provide handy utility functions for NDK development 34 | * - Make NDK samples more simpler and readable 35 | */ 36 | #include "gl3stub.h" // GLES3 stubs 37 | #include "GLContext.h" // EGL & OpenGL manager 38 | #include "vecmath.h" // Vector math support, C++ implementation n current version 39 | #include "tapCamera.h" // Tap/Pinch camera control 40 | #include "JNIHelper.h" // JNI support 41 | #include "gestureDetector.h" // Tap/Doubletap/Pinch detector 42 | #include "perfMonitor.h" // FPS counter 43 | #include "sensorManager.h" // SensorManager 44 | #include "interpolator.h" // Interpolator 45 | 46 | #pragma clang diagnostic pop 47 | 48 | #endif 49 | -------------------------------------------------------------------------------- /NativeApp/Android/ndk_helper/include/perfMonitor.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2013 The Android Open Source Project 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | #ifndef PERFMONITOR_H_ 18 | #define PERFMONITOR_H_ 19 | 20 | #include 21 | #include 22 | #include 23 | #include "JNIHelper.h" 24 | 25 | namespace ndk_helper { 26 | 27 | const int32_t kNumSamples = 100; 28 | 29 | /****************************************************************** 30 | * Helper class for a performance monitoring and get current tick time 31 | */ 32 | class PerfMonitor { 33 | private: 34 | float current_FPS_; 35 | time_t tv_last_sec_; 36 | 37 | double last_tick_; 38 | int32_t tickindex_; 39 | double ticksum_; 40 | double ticklist_[kNumSamples]; 41 | 42 | double UpdateTick(double current_tick); 43 | 44 | public: 45 | PerfMonitor(); 46 | virtual ~PerfMonitor(); 47 | 48 | bool Update(float &fFPS); 49 | 50 | static double GetCurrentTime() { 51 | struct timeval time; 52 | gettimeofday(&time, NULL); 53 | double ret = time.tv_sec + time.tv_usec * 1.0 / 1000000.0; 54 | return ret; 55 | } 56 | }; 57 | 58 | } // namespace ndkHelper 59 | #endif /* PERFMONITOR_H_ */ 60 | -------------------------------------------------------------------------------- /NativeApp/Android/ndk_helper/src/perfMonitor.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2013 The Android Open Source Project 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | #include "perfMonitor.h" 18 | 19 | namespace ndk_helper { 20 | 21 | PerfMonitor::PerfMonitor() 22 | : current_FPS_(0), 23 | tv_last_sec_(0), 24 | last_tick_(0.f), 25 | tickindex_(0), 26 | ticksum_(0) { 27 | for (int32_t i = 0; i < kNumSamples; ++i) ticklist_[i] = 0; 28 | } 29 | 30 | PerfMonitor::~PerfMonitor() {} 31 | 32 | double PerfMonitor::UpdateTick(double currentTick) { 33 | ticksum_ -= ticklist_[tickindex_]; 34 | ticksum_ += currentTick; 35 | ticklist_[tickindex_] = currentTick; 36 | tickindex_ = (tickindex_ + 1) % kNumSamples; 37 | 38 | return ((double)ticksum_ / kNumSamples); 39 | } 40 | 41 | bool PerfMonitor::Update(float &fFPS) { 42 | struct timeval Time; 43 | gettimeofday(&Time, NULL); 44 | 45 | double time = Time.tv_sec + Time.tv_usec * 1.0 / 1000000.0; 46 | double tick = time - last_tick_; 47 | double d = UpdateTick(tick); 48 | last_tick_ = time; 49 | 50 | if (Time.tv_sec - tv_last_sec_ >= 1) { 51 | current_FPS_ = 1.f / d; 52 | tv_last_sec_ = Time.tv_sec; 53 | fFPS = current_FPS_; 54 | return true; 55 | } else { 56 | fFPS = current_FPS_; 57 | return false; 58 | } 59 | } 60 | 61 | } // namespace ndkHelper 62 | -------------------------------------------------------------------------------- /NativeApp/Android/src/main/AndroidManifest.xml: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /NativeApp/Android/src/main/java/com/diligentengine/android/common/DiligentApplicationBase.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2013 The Android Open Source Project 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | package com.diligentengine.android.common; 18 | 19 | import android.app.Application; 20 | import android.content.pm.ApplicationInfo; 21 | import android.content.pm.PackageManager; 22 | import android.content.pm.PackageManager.NameNotFoundException; 23 | import android.util.Log; 24 | import android.widget.Toast; 25 | 26 | public class DiligentApplicationBase extends Application { 27 | public void onCreate(){ 28 | super.onCreate(); 29 | Log.w("native-activity", "onCreate"); 30 | 31 | final PackageManager pm = getApplicationContext().getPackageManager(); 32 | ApplicationInfo ai; 33 | try { 34 | ai = pm.getApplicationInfo( this.getPackageName(), 0); 35 | } catch (final NameNotFoundException e) { 36 | ai = null; 37 | } 38 | final String applicationName = (String) (ai != null ? pm.getApplicationLabel(ai) : "(unknown)"); 39 | Toast.makeText(this, applicationName, Toast.LENGTH_SHORT).show(); 40 | } 41 | } 42 | -------------------------------------------------------------------------------- /NativeApp/Android/src/main/res/layout/widgets.xml: -------------------------------------------------------------------------------- 1 | 2 | 7 | 8 | 16 | 17 | -------------------------------------------------------------------------------- /NativeApp/Android/src/main/res/mipmap-hdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DiligentGraphics/DiligentTools/f8cc33e02de468f39325de715c5ad91e4373a66a/NativeApp/Android/src/main/res/mipmap-hdpi/ic_launcher.png -------------------------------------------------------------------------------- /NativeApp/Android/src/main/res/mipmap-mdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DiligentGraphics/DiligentTools/f8cc33e02de468f39325de715c5ad91e4373a66a/NativeApp/Android/src/main/res/mipmap-mdpi/ic_launcher.png -------------------------------------------------------------------------------- /NativeApp/Android/src/main/res/mipmap-xhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DiligentGraphics/DiligentTools/f8cc33e02de468f39325de715c5ad91e4373a66a/NativeApp/Android/src/main/res/mipmap-xhdpi/ic_launcher.png -------------------------------------------------------------------------------- /NativeApp/Android/src/main/res/mipmap-xxhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DiligentGraphics/DiligentTools/f8cc33e02de468f39325de715c5ad91e4373a66a/NativeApp/Android/src/main/res/mipmap-xxhdpi/ic_launcher.png -------------------------------------------------------------------------------- /NativeApp/Android/src/main/res/values-v11/styles.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 7 | 10 | 11 | -------------------------------------------------------------------------------- /NativeApp/Android/src/main/res/values-v14/styles.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 8 | 11 | 12 | -------------------------------------------------------------------------------- /NativeApp/Android/src/main/res/values/strings.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 0.0 FPS 4 | 5 | -------------------------------------------------------------------------------- /NativeApp/Android/src/main/res/values/styles.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 7 | 14 | 15 | 16 | 19 | 20 | -------------------------------------------------------------------------------- /NativeApp/Apple/Data/OSX/Images.xcassets/AppIcon.appiconset/dg.icns: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DiligentGraphics/DiligentTools/f8cc33e02de468f39325de715c5ad91e4373a66a/NativeApp/Apple/Data/OSX/Images.xcassets/AppIcon.appiconset/dg.icns -------------------------------------------------------------------------------- /NativeApp/Apple/Data/OSX/Images.xcassets/metal-logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DiligentGraphics/DiligentTools/f8cc33e02de468f39325de715c5ad91e4373a66a/NativeApp/Apple/Data/OSX/Images.xcassets/metal-logo.png -------------------------------------------------------------------------------- /NativeApp/Apple/Data/OSX/Images.xcassets/opengl-logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DiligentGraphics/DiligentTools/f8cc33e02de468f39325de715c5ad91e4373a66a/NativeApp/Apple/Data/OSX/Images.xcassets/opengl-logo.png -------------------------------------------------------------------------------- /NativeApp/Apple/Data/OSX/Images.xcassets/vulkan-logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DiligentGraphics/DiligentTools/f8cc33e02de468f39325de715c5ad91e4373a66a/NativeApp/Apple/Data/OSX/Images.xcassets/vulkan-logo.png -------------------------------------------------------------------------------- /NativeApp/Apple/Data/OSX/Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | en 7 | CFBundleExecutable 8 | $(EXECUTABLE_NAME) 9 | CFBundleIconFile 10 | dg.icns 11 | CFBundleIdentifier 12 | $(PRODUCT_BUNDLE_IDENTIFIER) 13 | CFBundleInfoDictionaryVersion 14 | 6.0 15 | CFBundleName 16 | $(PRODUCT_NAME) 17 | CFBundlePackageType 18 | APPL 19 | CFBundleShortVersionString 20 | 2.4 21 | CFBundleSignature 22 | ???? 23 | LSMinimumSystemVersion 24 | $(MACOSX_DEPLOYMENT_TARGET) 25 | NSMainStoryboardFile 26 | Main 27 | NSPrincipalClass 28 | NSApplication 29 | 30 | 31 | -------------------------------------------------------------------------------- /NativeApp/Apple/Data/iOS/Images.xcassets/AppIcon.appiconset/dg-icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DiligentGraphics/DiligentTools/f8cc33e02de468f39325de715c5ad91e4373a66a/NativeApp/Apple/Data/iOS/Images.xcassets/AppIcon.appiconset/dg-icon.png -------------------------------------------------------------------------------- /NativeApp/Apple/Data/iOS/Images.xcassets/metal-logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DiligentGraphics/DiligentTools/f8cc33e02de468f39325de715c5ad91e4373a66a/NativeApp/Apple/Data/iOS/Images.xcassets/metal-logo.png -------------------------------------------------------------------------------- /NativeApp/Apple/Data/iOS/Images.xcassets/opengles-logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DiligentGraphics/DiligentTools/f8cc33e02de468f39325de715c5ad91e4373a66a/NativeApp/Apple/Data/iOS/Images.xcassets/opengles-logo.png -------------------------------------------------------------------------------- /NativeApp/Apple/Data/iOS/Images.xcassets/vulkan-logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DiligentGraphics/DiligentTools/f8cc33e02de468f39325de715c5ad91e4373a66a/NativeApp/Apple/Data/iOS/Images.xcassets/vulkan-logo.png -------------------------------------------------------------------------------- /NativeApp/Apple/Data/iOS/info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | en 7 | CFBundleExecutable 8 | $(EXECUTABLE_NAME) 9 | CFBundleIdentifier 10 | $(PRODUCT_BUNDLE_IDENTIFIER) 11 | CFBundleInfoDictionaryVersion 12 | 6.0 13 | CFBundleName 14 | $(PRODUCT_NAME) 15 | CFBundlePackageType 16 | APPL 17 | CFBundleShortVersionString 18 | 2.4 19 | CFBundleVersion 20 | 2.4 21 | CFBundleSignature 22 | ???? 23 | CFBundleIconFile 24 | dg-icon.png 25 | LSRequiresIPhoneOS 26 | 27 | UILaunchStoryboardName 28 | LaunchScreen 29 | UIMainStoryboardFile 30 | Main 31 | UIRequiredDeviceCapabilities 32 | 33 | armv7 34 | 35 | UISupportedInterfaceOrientations 36 | 37 | UIInterfaceOrientationPortrait 38 | UIInterfaceOrientationLandscapeLeft 39 | UIInterfaceOrientationLandscapeRight 40 | 41 | UISupportedInterfaceOrientations~ipad 42 | 43 | UIInterfaceOrientationPortrait 44 | UIInterfaceOrientationPortraitUpsideDown 45 | UIInterfaceOrientationLandscapeLeft 46 | UIInterfaceOrientationLandscapeRight 47 | 48 | 49 | 50 | -------------------------------------------------------------------------------- /NativeApp/Apple/Data/tvOS/Base.lproj/Main.storyboard: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | -------------------------------------------------------------------------------- /NativeApp/Apple/Data/tvOS/Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | en 7 | CFBundleExecutable 8 | $(EXECUTABLE_NAME) 9 | CFBundleIdentifier 10 | $(PRODUCT_BUNDLE_IDENTIFIER) 11 | CFBundleInfoDictionaryVersion 12 | 6.0 13 | CFBundleName 14 | $(PRODUCT_NAME) 15 | CFBundlePackageType 16 | APPL 17 | CFBundleShortVersionString 18 | 1.0 19 | CFBundleSignature 20 | ???? 21 | CFBundleVersion 22 | 1 23 | LSRequiresIPhoneOS 24 | 25 | UIMainStoryboardFile 26 | Main 27 | UIRequiredDeviceCapabilities 28 | 29 | metal 30 | armv7 31 | 32 | UIUserInterfaceStyle 33 | Automatic 34 | 35 | 36 | -------------------------------------------------------------------------------- /NativeApp/Apple/Source/Classes/OSX/AppDelegate.h: -------------------------------------------------------------------------------- 1 | /* 2 | Copyright (C) 2015 Apple Inc. All Rights Reserved. 3 | See LICENSE.txt for this sample’s licensing information 4 | 5 | Abstract: 6 | The Application Delegate. 7 | */ 8 | 9 | #import 10 | 11 | @interface AppDelegate : NSObject 12 | 13 | 14 | @end 15 | 16 | -------------------------------------------------------------------------------- /NativeApp/Apple/Source/Classes/OSX/AppDelegate.m: -------------------------------------------------------------------------------- 1 | /* 2 | Copyright (C) 2015 Apple Inc. All Rights Reserved. 3 | See LICENSE.txt for this sample’s licensing information 4 | 5 | Abstract: 6 | The Application Delegate. 7 | */ 8 | 9 | #import "AppDelegate.h" 10 | 11 | @interface AppDelegate () 12 | 13 | @end 14 | 15 | @implementation AppDelegate 16 | 17 | - (void)applicationDidFinishLaunching:(NSNotification *)aNotification { 18 | NSWindow* mainWindow = [[NSApplication sharedApplication]mainWindow]; 19 | [mainWindow setAcceptsMouseMovedEvents:YES]; 20 | } 21 | 22 | - (void)applicationWillTerminate:(NSNotification *)aNotification { 23 | // Insert code here to tear down your application 24 | } 25 | 26 | - (BOOL)applicationShouldTerminateAfterLastWindowClosed:(NSApplication *)theApplication { 27 | return YES; 28 | } 29 | 30 | @end 31 | -------------------------------------------------------------------------------- /NativeApp/Apple/Source/Classes/OSX/FullscreenWindow.h: -------------------------------------------------------------------------------- 1 | /* 2 | Copyright (C) 2015 Apple Inc. All Rights Reserved. 3 | See LICENSE.txt for this sample’s licensing information 4 | 5 | Abstract: 6 | Fullscreen window class. 7 | All logic here could have been done in the window controller except that, by default, borderless windows cannot be made key and input cannot go to them. 8 | Therefore, this class exists to override canBecomeKeyWindow allowing this borderless window to accept inputs. 9 | This class is not part of the NIB and entirely managed in code by the window controller. 10 | */ 11 | #import 12 | 13 | @interface FullscreenWindow : NSWindow 14 | 15 | @end 16 | -------------------------------------------------------------------------------- /NativeApp/Apple/Source/Classes/OSX/FullscreenWindow.m: -------------------------------------------------------------------------------- 1 | /* 2 | Copyright (C) 2015 Apple Inc. All Rights Reserved. 3 | See LICENSE.txt for this sample’s licensing information 4 | 5 | Abstract: 6 | Fullscreen window class. 7 | All logic here could have been done in the window controller except that, by default, borderless windows cannot be made key and input cannot go to them. 8 | Therefore, this class exists to override canBecomeKeyWindow allowing this borderless window to accept inputs. 9 | This class is not part of the NIB and entirely managed in code by the window controller. 10 | */ 11 | 12 | #import "FullscreenWindow.h" 13 | 14 | @implementation FullscreenWindow 15 | 16 | -(instancetype)init 17 | { 18 | // Create a screen-sized window on the display you want to take over 19 | NSRect screenRect = [[NSScreen mainScreen] frame]; 20 | 21 | // Initialize the window making it size of the screen and borderless 22 | self = [super initWithContentRect:screenRect 23 | styleMask:NSWindowStyleMaskBorderless 24 | backing:NSBackingStoreBuffered 25 | defer:YES]; 26 | 27 | // Set the window level to be above the menu bar to cover everything else 28 | [self setLevel:NSMainMenuWindowLevel+1]; 29 | 30 | // Set opaque 31 | [self setOpaque:YES]; 32 | 33 | // Hide this when user switches to another window (or app) 34 | [self setHidesOnDeactivate:YES]; 35 | 36 | return self; 37 | } 38 | 39 | -(BOOL)canBecomeKeyWindow 40 | { 41 | // Return yes so that this borderless window can receive input 42 | return YES; 43 | } 44 | 45 | - (void)keyDown:(NSEvent *)event 46 | { 47 | // Implement keyDown since controller will not get [ESC] key event which 48 | // the controller uses to kill fullscreen 49 | [[self windowController] keyDown:event]; 50 | } 51 | 52 | @end 53 | -------------------------------------------------------------------------------- /NativeApp/Apple/Source/Classes/OSX/GLView.h: -------------------------------------------------------------------------------- 1 | /* 2 | Copyright (C) 2015 Apple Inc. All Rights Reserved. 3 | See LICENSE.txt for this sample’s licensing information 4 | 5 | Abstract: 6 | OpenGL view subclass. 7 | */ 8 | 9 | 10 | #import 11 | #import "ViewBase.h" 12 | 13 | @interface GLView : ViewBase 14 | 15 | @end 16 | -------------------------------------------------------------------------------- /NativeApp/Apple/Source/Classes/OSX/MVKView.h: -------------------------------------------------------------------------------- 1 | /* Copyright 2015-2019 Egor Yusov 2 | * 3 | * Licensed under the Apache License, Version 2.0 (the "License"); 4 | * you may not use this file except in compliance with the License. 5 | * You may obtain a copy of the License at 6 | * 7 | * http://www.apache.org/licenses/LICENSE-2.0 8 | * 9 | * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 10 | * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 11 | * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF ANY PROPRIETARY RIGHTS. 12 | * 13 | * In no event and under no legal theory, whether in tort (including negligence), 14 | * contract, or otherwise, unless required by applicable law (such as deliberate 15 | * and grossly negligent acts) or agreed to in writing, shall any Contributor be 16 | * liable for any damages, including any direct, indirect, special, incidental, 17 | * or consequential damages of any character arising as a result of this License or 18 | * out of the use or inability to use the software (including but not limited to damages 19 | * for loss of goodwill, work stoppage, computer failure or malfunction, or any and 20 | * all other commercial damages or losses), even if such Contributor has been advised 21 | * of the possibility of such damages. 22 | */ 23 | 24 | #include "MetalView.h" 25 | 26 | @interface MVKView : MetalView 27 | 28 | @end 29 | -------------------------------------------------------------------------------- /NativeApp/Apple/Source/Classes/OSX/MVKView.mm: -------------------------------------------------------------------------------- 1 | /* Copyright 2015-2019 Egor Yusov 2 | * 3 | * Licensed under the Apache License, Version 2.0 (the "License"); 4 | * you may not use this file except in compliance with the License. 5 | * You may obtain a copy of the License at 6 | * 7 | * http://www.apache.org/licenses/LICENSE-2.0 8 | * 9 | * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 10 | * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 11 | * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF ANY PROPRIETARY RIGHTS. 12 | * 13 | * In no event and under no legal theory, whether in tort (including negligence), 14 | * contract, or otherwise, unless required by applicable law (such as deliberate 15 | * and grossly negligent acts) or agreed to in writing, shall any Contributor be 16 | * liable for any damages, including any direct, indirect, special, incidental, 17 | * or consequential damages of any character arising as a result of this License or 18 | * out of the use or inability to use the software (including but not limited to damages 19 | * for loss of goodwill, work stoppage, computer failure or malfunction, or any and 20 | * all other commercial damages or losses), even if such Contributor has been advised 21 | * of the possibility of such damages. 22 | */ 23 | 24 | #import "MVKView.h" 25 | 26 | @implementation MVKView 27 | { 28 | } 29 | 30 | - (id)initWithFrame:(CGRect)frame 31 | { 32 | self = [super initWithFrame:frame]; 33 | if (self) 34 | { 35 | self.renderMode = Diligent::MacOSAppBase::RenderMode::MoltenVK; 36 | } 37 | return self; 38 | } 39 | 40 | - (id)initWithCoder:(NSCoder*)coder 41 | { 42 | self = [super initWithCoder:coder]; 43 | if (self) 44 | { 45 | self.renderMode = Diligent::MacOSAppBase::RenderMode::MoltenVK; 46 | } 47 | return self; 48 | } 49 | 50 | @end 51 | -------------------------------------------------------------------------------- /NativeApp/Apple/Source/Classes/OSX/MetalView.h: -------------------------------------------------------------------------------- 1 | /* Copyright 2015-2019 Egor Yusov 2 | * 3 | * Licensed under the Apache License, Version 2.0 (the "License"); 4 | * you may not use this file except in compliance with the License. 5 | * You may obtain a copy of the License at 6 | * 7 | * http://www.apache.org/licenses/LICENSE-2.0 8 | * 9 | * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 10 | * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 11 | * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF ANY PROPRIETARY RIGHTS. 12 | * 13 | * In no event and under no legal theory, whether in tort (including negligence), 14 | * contract, or otherwise, unless required by applicable law (such as deliberate 15 | * and grossly negligent acts) or agreed to in writing, shall any Contributor be 16 | * liable for any damages, including any direct, indirect, special, incidental, 17 | * or consequential damages of any character arising as a result of this License or 18 | * out of the use or inability to use the software (including but not limited to damages 19 | * for loss of goodwill, work stoppage, computer failure or malfunction, or any and 20 | * all other commercial damages or losses), even if such Contributor has been advised 21 | * of the possibility of such damages. 22 | */ 23 | 24 | #import 25 | 26 | #include "ViewBase.h" 27 | 28 | @interface MetalView : ViewBase 29 | 30 | @end 31 | -------------------------------------------------------------------------------- /NativeApp/Apple/Source/Classes/OSX/ModeSelectionViewController.h: -------------------------------------------------------------------------------- 1 | /* Copyright 2015-2019 Egor Yusov 2 | * 3 | * Licensed under the Apache License, Version 2.0 (the "License"); 4 | * you may not use this file except in compliance with the License. 5 | * You may obtain a copy of the License at 6 | * 7 | * http://www.apache.org/licenses/LICENSE-2.0 8 | * 9 | * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 10 | * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 11 | * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF ANY PROPRIETARY RIGHTS. 12 | * 13 | * In no event and under no legal theory, whether in tort (including negligence), 14 | * contract, or otherwise, unless required by applicable law (such as deliberate 15 | * and grossly negligent acts) or agreed to in writing, shall any Contributor be 16 | * liable for any damages, including any direct, indirect, special, incidental, 17 | * or consequential damages of any character arising as a result of this License or 18 | * out of the use or inability to use the software (including but not limited to damages 19 | * for loss of goodwill, work stoppage, computer failure or malfunction, or any and 20 | * all other commercial damages or losses), even if such Contributor has been advised 21 | * of the possibility of such damages. 22 | */ 23 | 24 | 25 | #import 26 | 27 | @interface ModeSelectionViewController : NSViewController 28 | { 29 | } 30 | @end 31 | -------------------------------------------------------------------------------- /NativeApp/Apple/Source/Classes/OSX/ViewController.h: -------------------------------------------------------------------------------- 1 | /* Copyright 2015-2019 Egor Yusov 2 | * 3 | * Licensed under the Apache License, Version 2.0 (the "License"); 4 | * you may not use this file except in compliance with the License. 5 | * You may obtain a copy of the License at 6 | * 7 | * http://www.apache.org/licenses/LICENSE-2.0 8 | * 9 | * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 10 | * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 11 | * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF ANY PROPRIETARY RIGHTS. 12 | * 13 | * In no event and under no legal theory, whether in tort (including negligence), 14 | * contract, or otherwise, unless required by applicable law (such as deliberate 15 | * and grossly negligent acts) or agreed to in writing, shall any Contributor be 16 | * liable for any damages, including any direct, indirect, special, incidental, 17 | * or consequential damages of any character arising as a result of this License or 18 | * out of the use or inability to use the software (including but not limited to damages 19 | * for loss of goodwill, work stoppage, computer failure or malfunction, or any and 20 | * all other commercial damages or losses), even if such Contributor has been advised 21 | * of the possibility of such damages. 22 | */ 23 | 24 | 25 | #import 26 | #include "NativeAppBase.hpp" 27 | 28 | @interface ViewController : NSViewController 29 | 30 | @end 31 | -------------------------------------------------------------------------------- /NativeApp/Apple/Source/Classes/OSX/WindowController.h: -------------------------------------------------------------------------------- 1 | /* 2 | Copyright (C) 2015 Apple Inc. All Rights Reserved. 3 | See LICENSE.txt for this sample’s licensing information 4 | 5 | Abstract: 6 | Window controller subclass. 7 | */ 8 | 9 | 10 | #import 11 | 12 | @interface WindowController : NSWindowController 13 | 14 | @end 15 | -------------------------------------------------------------------------------- /NativeApp/Apple/Source/Classes/iOS/AppDelegate.h: -------------------------------------------------------------------------------- 1 | /* 2 | Copyright (C) 2015 Apple Inc. All Rights Reserved. 3 | See LICENSE.txt for this sample’s licensing information 4 | 5 | Abstract: 6 | The application delegate 7 | */ 8 | 9 | 10 | #import 11 | 12 | @interface AppDelegate : NSObject { 13 | } 14 | 15 | @property (nonatomic, retain) UIWindow *window; 16 | 17 | @end 18 | 19 | -------------------------------------------------------------------------------- /NativeApp/Apple/Source/Classes/iOS/AppViewBase.h: -------------------------------------------------------------------------------- 1 | 2 | #import 3 | #import "BaseView.h" 4 | 5 | @interface AppViewBase : BaseView 6 | 7 | @property (nonatomic) NSInteger preferredFramesPerSecond; 8 | 9 | - (void) initApp:(int)deviceType; 10 | - (void) startAnimation; 11 | - (void) stopAnimation; 12 | - (void) terminate; 13 | - (void) render; 14 | - (NSString*)getError; 15 | 16 | @end 17 | -------------------------------------------------------------------------------- /NativeApp/Apple/Source/Classes/iOS/BaseView.h: -------------------------------------------------------------------------------- 1 | 2 | #import 3 | 4 | @interface BaseView : UIView 5 | 6 | @property (readonly, nonatomic, getter=isAnimating) BOOL animating; 7 | 8 | - (void) startAnimation; 9 | - (void) stopAnimation; 10 | - (void) terminate; 11 | 12 | @end 13 | -------------------------------------------------------------------------------- /NativeApp/Apple/Source/Classes/iOS/BaseView.mm: -------------------------------------------------------------------------------- 1 | 2 | #import "BaseView.h" 3 | 4 | @implementation BaseView 5 | 6 | - (void) startAnimation 7 | { 8 | _animating = TRUE; 9 | } 10 | 11 | - (void)stopAnimation 12 | { 13 | _animating = FALSE; 14 | } 15 | 16 | - (void) terminate 17 | { 18 | 19 | } 20 | 21 | @end 22 | -------------------------------------------------------------------------------- /NativeApp/Apple/Source/Classes/iOS/EAGLView.h: -------------------------------------------------------------------------------- 1 | /* 2 | Copyright (C) 2015 Apple Inc. All Rights Reserved. 3 | See LICENSE.txt for this sample’s licensing information 4 | 5 | Abstract: 6 | The EAGLView class is a UIView subclass that renders OpenGL scene. 7 | */ 8 | 9 | #import "AppViewBase.h" 10 | 11 | // This class wraps the CAEAGLLayer from CoreAnimation into a convenient UIView subclass. 12 | // The view content is basically an EAGL surface you render your OpenGL scene into. 13 | // Note that setting the view non-opaque will only work if the EAGL surface has an alpha channel. 14 | @interface EAGLView : AppViewBase 15 | 16 | - (void) drawView:(id)sender; 17 | 18 | @end 19 | -------------------------------------------------------------------------------- /NativeApp/Apple/Source/Classes/iOS/MVKView.h: -------------------------------------------------------------------------------- 1 | #import "AppViewBase.h" 2 | 3 | @interface MVKView : AppViewBase 4 | 5 | - (void) drawView:(id)sender; 6 | 7 | @end 8 | -------------------------------------------------------------------------------- /NativeApp/Apple/Source/Classes/iOS/MVKView.mm: -------------------------------------------------------------------------------- 1 | #import "MVKView.h" 2 | 3 | #import 4 | 5 | #include "GraphicsTypes.h" 6 | 7 | @implementation MVKView 8 | 9 | + (Class) layerClass 10 | { 11 | return [CAMetalLayer class]; 12 | } 13 | 14 | - (instancetype) initWithCoder:(NSCoder*)coder 15 | { 16 | if ((self = [super initWithCoder:coder])) 17 | { 18 | [self initApp:(int)Diligent::RENDER_DEVICE_TYPE_VULKAN]; 19 | } 20 | 21 | return self; 22 | } 23 | 24 | - (void) drawView:(id)sender 25 | { 26 | // There is no autorelease pool when this method is called 27 | // because it will be called from a background thread. 28 | // It's important to create one or app can leak objects. 29 | @autoreleasepool 30 | { 31 | [self render]; 32 | } 33 | } 34 | 35 | - (void) dealloc 36 | { 37 | [self terminate]; 38 | [super dealloc]; 39 | } 40 | 41 | @end 42 | -------------------------------------------------------------------------------- /NativeApp/Apple/Source/Classes/iOS/MetalView.h: -------------------------------------------------------------------------------- 1 | #import "AppViewBase.h" 2 | 3 | @interface MetalView : AppViewBase 4 | 5 | - (void) drawView:(id)sender; 6 | 7 | @end 8 | -------------------------------------------------------------------------------- /NativeApp/Apple/Source/Classes/iOS/MetalView.mm: -------------------------------------------------------------------------------- 1 | #import "MetalView.h" 2 | 3 | #import 4 | 5 | #include "GraphicsTypes.h" 6 | 7 | @implementation MetalView 8 | 9 | + (Class) layerClass 10 | { 11 | return [CAMetalLayer class]; 12 | } 13 | 14 | - (instancetype) initWithCoder:(NSCoder*)coder 15 | { 16 | if ((self = [super initWithCoder:coder])) 17 | { 18 | [self initApp:(int)Diligent::RENDER_DEVICE_TYPE_METAL]; 19 | } 20 | 21 | return self; 22 | } 23 | 24 | - (void) drawView:(id)sender 25 | { 26 | // There is no autorelease pool when this method is called 27 | // because it will be called from a background thread. 28 | // It's important to create one or app can leak objects. 29 | @autoreleasepool 30 | { 31 | [self render]; 32 | } 33 | } 34 | 35 | - (void) dealloc 36 | { 37 | [self terminate]; 38 | [super dealloc]; 39 | } 40 | 41 | @end 42 | -------------------------------------------------------------------------------- /NativeApp/Apple/Source/Classes/iOS/ModeSelectionViewController.h: -------------------------------------------------------------------------------- 1 | /* Copyright 2015-2019 Egor Yusov 2 | * 3 | * Licensed under the Apache License, Version 2.0 (the "License"); 4 | * you may not use this file except in compliance with the License. 5 | * You may obtain a copy of the License at 6 | * 7 | * http://www.apache.org/licenses/LICENSE-2.0 8 | * 9 | * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 10 | * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 11 | * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF ANY PROPRIETARY RIGHTS. 12 | * 13 | * In no event and under no legal theory, whether in tort (including negligence), 14 | * contract, or otherwise, unless required by applicable law (such as deliberate 15 | * and grossly negligent acts) or agreed to in writing, shall any Contributor be 16 | * liable for any damages, including any direct, indirect, special, incidental, 17 | * or consequential damages of any character arising as a result of this License or 18 | * out of the use or inability to use the software (including but not limited to damages 19 | * for loss of goodwill, work stoppage, computer failure or malfunction, or any and 20 | * all other commercial damages or losses), even if such Contributor has been advised 21 | * of the possibility of such damages. 22 | */ 23 | 24 | #import 25 | 26 | @interface ModeSelectionViewController : UIViewController 27 | { 28 | } 29 | @end 30 | -------------------------------------------------------------------------------- /NativeApp/Apple/Source/Classes/tvOS/AppDelegate.h: -------------------------------------------------------------------------------- 1 | /* 2 | See LICENSE folder for this sample’s licensing information. 3 | 4 | Abstract: 5 | Application delegate for Metal Sample Code 6 | */ 7 | 8 | #import 9 | 10 | @interface AppDelegate : UIResponder 11 | 12 | @property (strong, nonatomic) UIWindow *window; 13 | 14 | @end 15 | -------------------------------------------------------------------------------- /NativeApp/Apple/Source/Classes/tvOS/AppDelegate.mm: -------------------------------------------------------------------------------- 1 | /* 2 | See LICENSE folder for this sample’s licensing information. 3 | 4 | Abstract: 5 | Application delegate for Metal Sample Code 6 | */ 7 | 8 | #import "AppDelegate.h" 9 | 10 | @implementation AppDelegate 11 | 12 | @end 13 | -------------------------------------------------------------------------------- /NativeApp/Apple/Source/Classes/tvOS/MainUIView.h: -------------------------------------------------------------------------------- 1 | /* 2 | See LICENSE folder for this sample’s licensing information. 3 | */ 4 | 5 | #import "MetalView.h" 6 | 7 | @interface MainUIView : MetalView 8 | 9 | @end 10 | -------------------------------------------------------------------------------- /NativeApp/Apple/Source/Classes/tvOS/MetalView.h: -------------------------------------------------------------------------------- 1 | /* 2 | See LICENSE folder for this sample’s licensing information. 3 | */ 4 | 5 | #import 6 | #import 7 | #import 8 | 9 | // Protocol to provide resize and redraw callbacks to a delegate 10 | @protocol MetalViewDelegate 11 | 12 | - (void)drawableResize:(CGSize)size; 13 | 14 | - (void)renderToMetalLayer:(nonnull CAMetalLayer *)metalLayer; 15 | 16 | @end 17 | 18 | // Metal view base class 19 | @interface MetalView : UIView 20 | 21 | @property (nonatomic, nonnull, readonly) CAMetalLayer *metalLayer; 22 | 23 | @property (nonatomic, getter=isPaused) BOOL paused; 24 | 25 | @property (nonatomic, nullable, retain) id delegate; 26 | 27 | - (void)initCommon; 28 | 29 | - (void)resizeDrawable:(CGFloat)scaleFactor; 30 | - (void)stopRenderLoop; 31 | - (void)render; 32 | 33 | @end 34 | -------------------------------------------------------------------------------- /NativeApp/Apple/Source/Classes/tvOS/MetalView.mm: -------------------------------------------------------------------------------- 1 | /* 2 | See LICENSE folder for this sample’s licensing information. 3 | */ 4 | 5 | #import "MetalView.h" 6 | 7 | @implementation MetalView 8 | 9 | - (instancetype) initWithFrame:(CGRect)frame 10 | { 11 | self = [super initWithFrame:frame]; 12 | if(self) 13 | { 14 | [self initCommon]; 15 | } 16 | return self; 17 | } 18 | 19 | - (instancetype) initWithCoder:(NSCoder *)aDecoder 20 | { 21 | self = [super initWithCoder:aDecoder]; 22 | if(self) 23 | { 24 | [self initCommon]; 25 | } 26 | return self; 27 | } 28 | 29 | - (void)initCommon 30 | { 31 | _metalLayer = (CAMetalLayer*) self.layer; 32 | 33 | self.layer.delegate = self; 34 | } 35 | 36 | 37 | - (void)stopRenderLoop 38 | { 39 | // Stubbed out method. Subclasses need to implement this method. 40 | } 41 | 42 | - (void)dealloc 43 | { 44 | [self stopRenderLoop]; 45 | [super dealloc]; 46 | } 47 | 48 | 49 | - (void)resizeDrawable:(CGFloat)scaleFactor 50 | { 51 | CGSize newSize = self.bounds.size; 52 | newSize.width *= scaleFactor; 53 | newSize.height *= scaleFactor; 54 | 55 | if(newSize.width <= 0 || newSize.width <= 0) 56 | { 57 | return; 58 | } 59 | 60 | if(newSize.width == _metalLayer.drawableSize.width && 61 | newSize.height == _metalLayer.drawableSize.height) 62 | { 63 | return; 64 | } 65 | 66 | _metalLayer.drawableSize = newSize; 67 | 68 | [_delegate drawableResize:newSize]; 69 | } 70 | 71 | 72 | - (void)render 73 | { 74 | [_delegate renderToMetalLayer:_metalLayer]; 75 | } 76 | 77 | @end 78 | -------------------------------------------------------------------------------- /NativeApp/Apple/Source/Classes/tvOS/MetalViewController.h: -------------------------------------------------------------------------------- 1 | /* 2 | See LICENSE folder for this sample’s licensing information. 3 | */ 4 | 5 | #import 6 | #import "MetalView.h" 7 | 8 | @interface MetalViewController : UIViewController 9 | 10 | @end 11 | -------------------------------------------------------------------------------- /NativeApp/Apple/Source/Classes/tvOS/MetalViewController.mm: -------------------------------------------------------------------------------- 1 | /* 2 | See LICENSE folder for this sample’s licensing information. 3 | */ 4 | 5 | #import "MetalViewController.h" 6 | #import "MainUIView.h" 7 | 8 | #include "NativeAppBase.hpp" 9 | #include "GraphicsTypes.h" 10 | 11 | #import 12 | 13 | #include 14 | 15 | @implementation MetalViewController 16 | { 17 | std::unique_ptr _theApp; 18 | } 19 | 20 | - (void)viewDidLoad 21 | { 22 | [super viewDidLoad]; 23 | 24 | MetalView *view = (MetalView *)self.view; 25 | 26 | // Set this class as the delegate to receive resize and render callbacks. 27 | view.delegate = self; 28 | 29 | _theApp.reset(Diligent::CreateApplication()); 30 | 31 | // Init the application. 32 | try 33 | { 34 | Diligent::RENDER_DEVICE_TYPE DeviceType = Diligent::RENDER_DEVICE_TYPE_UNDEFINED; 35 | #if METAL_SUPPORTED 36 | DeviceType = Diligent::RENDER_DEVICE_TYPE_METAL; 37 | #elif VULKAN_SUPPORTED 38 | DeviceType = Diligent::RENDER_DEVICE_TYPE_VULKAN; 39 | #else 40 | #error No supported API 41 | #endif 42 | _theApp->Initialize(DeviceType, (__bridge void*)view.metalLayer); 43 | } 44 | catch(std::runtime_error &err) 45 | { 46 | _theApp.reset(); 47 | } 48 | } 49 | 50 | - (void)drawableResize:(CGSize)size 51 | { 52 | if (_theApp) 53 | { 54 | _theApp->WindowResize(size.width, size.height); 55 | } 56 | } 57 | 58 | - (void)renderToMetalLayer:(nonnull CAMetalLayer *)layer 59 | { 60 | if (_theApp) 61 | { 62 | _theApp->Update(); 63 | _theApp->Render(); 64 | _theApp->Present(); 65 | } 66 | } 67 | 68 | @end 69 | -------------------------------------------------------------------------------- /NativeApp/Apple/Source/main.m: -------------------------------------------------------------------------------- 1 | /* 2 | Copyright (C) 2015 Apple Inc. All Rights Reserved. 3 | See LICENSE.txt for this sample’s licensing information 4 | 5 | Abstract: 6 | Standard AppKit entry point. 7 | */ 8 | 9 | #if PLATFORM_IOS || PLATFORM_TVOS 10 | #import "AppDelegate.h" 11 | #else // OS X 12 | #import 13 | #endif 14 | 15 | int main(int argc, char * argv[]) { 16 | 17 | #if PLATFORM_IOS || PLATFORM_TVOS 18 | @autoreleasepool { 19 | return UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class])); 20 | } 21 | #else 22 | return NSApplicationMain(argc, (const char**)argv); 23 | #endif 24 | } 25 | -------------------------------------------------------------------------------- /NativeApp/Linux/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | cmake_minimum_required (VERSION 3.10) 2 | 3 | project(XCBKeySyms C) 4 | 5 | set(INTERFACE 6 | xcb_keysyms/xcb_keysyms.h 7 | ) 8 | 9 | set(SOURCE 10 | xcb_keysyms/xcb_keysyms.c 11 | ) 12 | 13 | add_library(XCBKeySyms STATIC ${SOURCE} ${INTERFACE}) 14 | set_common_target_properties(XCBKeySyms) 15 | 16 | target_include_directories(XCBKeySyms PUBLIC .) 17 | 18 | source_group("source" FILES ${SOURCE}) 19 | source_group("interface" FILES ${INTERFACE}) 20 | 21 | find_library(XCB_LIBRARY xcb) 22 | target_link_libraries(XCBKeySyms 23 | PRIVATE 24 | Diligent-BuildSettings 25 | ${XCB_LIBRARY} 26 | ) 27 | 28 | set_target_properties(XCBKeySyms PROPERTIES 29 | FOLDER Common 30 | ) 31 | 32 | -------------------------------------------------------------------------------- /NativeApp/include/IOS/IOSAppBase.hpp: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2019-2022 Diligent Graphics LLC 3 | * Copyright 2015-2019 Egor Yusov 4 | * 5 | * Licensed under the Apache License, Version 2.0 (the "License"); 6 | * you may not use this file except in compliance with the License. 7 | * You may obtain a copy of the License at 8 | * 9 | * http://www.apache.org/licenses/LICENSE-2.0 10 | * 11 | * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 12 | * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 13 | * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF ANY PROPRIETARY RIGHTS. 14 | * 15 | * In no event and under no legal theory, whether in tort (including negligence), 16 | * contract, or otherwise, unless required by applicable law (such as deliberate 17 | * and grossly negligent acts) or agreed to in writing, shall any Contributor be 18 | * liable for any damages, including any direct, indirect, special, incidental, 19 | * or consequential damages of any character arising as a result of this License or 20 | * out of the use or inability to use the software (including but not limited to damages 21 | * for loss of goodwill, work stoppage, computer failure or malfunction, or any and 22 | * all other commercial damages or losses), even if such Contributor has been advised 23 | * of the possibility of such damages. 24 | */ 25 | 26 | #pragma once 27 | 28 | #include "AppBase.hpp" 29 | #include "Timer.hpp" 30 | 31 | namespace Diligent 32 | { 33 | 34 | /// Base class for iOS applications. 35 | class IOSAppBase : public AppBase 36 | { 37 | public: 38 | using AppBase::Update; 39 | void Update(); 40 | virtual void Initialize(int deviceType, void* layer) = 0; 41 | virtual void OnTouchBegan(float x, float y) {} 42 | virtual void OnTouchMoved(float x, float y) {} 43 | virtual void OnTouchEnded(float x, float y) {} 44 | 45 | protected: 46 | Timer timer; 47 | double PrevTime = 0.0; 48 | }; 49 | 50 | } // namespace Diligent 51 | -------------------------------------------------------------------------------- /NativeApp/include/TVOS/TVOSAppBase.hpp: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2019-2022 Diligent Graphics LLC 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 11 | * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 12 | * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF ANY PROPRIETARY RIGHTS. 13 | * 14 | * In no event and under no legal theory, whether in tort (including negligence), 15 | * contract, or otherwise, unless required by applicable law (such as deliberate 16 | * and grossly negligent acts) or agreed to in writing, shall any Contributor be 17 | * liable for any damages, including any direct, indirect, special, incidental, 18 | * or consequential damages of any character arising as a result of this License or 19 | * out of the use or inability to use the software (including but not limited to damages 20 | * for loss of goodwill, work stoppage, computer failure or malfunction, or any and 21 | * all other commercial damages or losses), even if such Contributor has been advised 22 | * of the possibility of such damages. 23 | */ 24 | 25 | #pragma once 26 | 27 | #include "AppBase.hpp" 28 | #include "Timer.hpp" 29 | 30 | namespace Diligent 31 | { 32 | 33 | /// Base class for tvOS applications. 34 | class TVOSAppBase : public AppBase 35 | { 36 | public: 37 | using AppBase::Update; 38 | void Update(); 39 | virtual void Initialize(int deviceType, void* layer) = 0; 40 | 41 | protected: 42 | Timer timer; 43 | double PrevTime = 0.0; 44 | }; 45 | 46 | } // namespace Diligent 47 | -------------------------------------------------------------------------------- /NativeApp/src/Emscripten/EmscriptenAppBase.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2024 Diligent Graphics LLC 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 11 | * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 12 | * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF ANY PROPRIETARY RIGHTS. 13 | * 14 | * In no event and under no legal theory, whether in tort (including negligence), 15 | * contract, or otherwise, unless required by applicable law (such as deliberate 16 | * and grossly negligent acts) or agreed to in writing, shall any Contributor be 17 | * liable for any damages, including any direct, indirect, special, incidental, 18 | * or consequential damages of any character arising as a result of this License or 19 | * out of the use or inability to use the software (including but not limited to damages 20 | * for loss of goodwill, work stoppage, computer failure or malfunction, or any and 21 | * all other commercial damages or losses), even if such Contributor has been advised 22 | * of the possibility of such damages. 23 | */ 24 | 25 | #include "EmscriptenAppBase.hpp" 26 | 27 | void Diligent::EmscriptenAppBase::Update() 28 | { 29 | auto CurrTime = m_Timer.GetElapsedTime(); 30 | auto ElapsedTime = CurrTime - m_PrevTime; 31 | m_PrevTime = CurrTime; 32 | Update(CurrTime, ElapsedTime); 33 | } 34 | -------------------------------------------------------------------------------- /NativeApp/src/IOS/IOSAppBase.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2019-2022 Diligent Graphics LLC 3 | * Copyright 2015-2019 Egor Yusov 4 | * 5 | * Licensed under the Apache License, Version 2.0 (the "License"); 6 | * you may not use this file except in compliance with the License. 7 | * You may obtain a copy of the License at 8 | * 9 | * http://www.apache.org/licenses/LICENSE-2.0 10 | * 11 | * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 12 | * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 13 | * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF ANY PROPRIETARY RIGHTS. 14 | * 15 | * In no event and under no legal theory, whether in tort (including negligence), 16 | * contract, or otherwise, unless required by applicable law (such as deliberate 17 | * and grossly negligent acts) or agreed to in writing, shall any Contributor be 18 | * liable for any damages, including any direct, indirect, special, incidental, 19 | * or consequential damages of any character arising as a result of this License or 20 | * out of the use or inability to use the software (including but not limited to damages 21 | * for loss of goodwill, work stoppage, computer failure or malfunction, or any and 22 | * all other commercial damages or losses), even if such Contributor has been advised 23 | * of the possibility of such damages. 24 | */ 25 | 26 | #include "IOSAppBase.hpp" 27 | 28 | namespace Diligent 29 | { 30 | 31 | void IOSAppBase::Update() 32 | { 33 | // Render the scene 34 | auto CurrTime = timer.GetElapsedTime(); 35 | auto ElapsedTime = CurrTime - PrevTime; 36 | PrevTime = CurrTime; 37 | Update(CurrTime, ElapsedTime); 38 | } 39 | 40 | } // namespace Diligent 41 | -------------------------------------------------------------------------------- /NativeApp/src/MacOS/MacOSAppBase.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2019-2022 Diligent Graphics LLC 3 | * Copyright 2015-2019 Egor Yusov 4 | * 5 | * Licensed under the Apache License, Version 2.0 (the "License"); 6 | * you may not use this file except in compliance with the License. 7 | * You may obtain a copy of the License at 8 | * 9 | * http://www.apache.org/licenses/LICENSE-2.0 10 | * 11 | * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 12 | * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 13 | * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF ANY PROPRIETARY RIGHTS. 14 | * 15 | * In no event and under no legal theory, whether in tort (including negligence), 16 | * contract, or otherwise, unless required by applicable law (such as deliberate 17 | * and grossly negligent acts) or agreed to in writing, shall any Contributor be 18 | * liable for any damages, including any direct, indirect, special, incidental, 19 | * or consequential damages of any character arising as a result of this License or 20 | * out of the use or inability to use the software (including but not limited to damages 21 | * for loss of goodwill, work stoppage, computer failure or malfunction, or any and 22 | * all other commercial damages or losses), even if such Contributor has been advised 23 | * of the possibility of such damages. 24 | */ 25 | 26 | #include "MacOSAppBase.hpp" 27 | 28 | namespace Diligent 29 | { 30 | 31 | void MacOSAppBase::Update() 32 | { 33 | // Render the scene 34 | auto CurrTime = timer.GetElapsedTime(); 35 | auto ElapsedTime = CurrTime - PrevTime; 36 | PrevTime = CurrTime; 37 | Update(CurrTime, ElapsedTime); 38 | } 39 | 40 | } // namespace Diligent 41 | -------------------------------------------------------------------------------- /NativeApp/src/TVOS/TVOSAppBase.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2019-2022 Diligent Graphics LLC 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 11 | * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 12 | * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF ANY PROPRIETARY RIGHTS. 13 | * 14 | * In no event and under no legal theory, whether in tort (including negligence), 15 | * contract, or otherwise, unless required by applicable law (such as deliberate 16 | * and grossly negligent acts) or agreed to in writing, shall any Contributor be 17 | * liable for any damages, including any direct, indirect, special, incidental, 18 | * or consequential damages of any character arising as a result of this License or 19 | * out of the use or inability to use the software (including but not limited to damages 20 | * for loss of goodwill, work stoppage, computer failure or malfunction, or any and 21 | * all other commercial damages or losses), even if such Contributor has been advised 22 | * of the possibility of such damages. 23 | */ 24 | 25 | #include "TVOSAppBase.hpp" 26 | 27 | namespace Diligent 28 | { 29 | 30 | void TVOSAppBase::Update() 31 | { 32 | // Render the scene 33 | auto CurrTime = timer.GetElapsedTime(); 34 | auto ElapsedTime = CurrTime - PrevTime; 35 | PrevTime = CurrTime; 36 | Update(CurrTime, ElapsedTime); 37 | } 38 | 39 | } // namespace Diligent 40 | -------------------------------------------------------------------------------- /NativeApp/src/UWP/dummy.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2019-2022 Diligent Graphics LLC 3 | * Copyright 2015-2019 Egor Yusov 4 | * 5 | * Licensed under the Apache License, Version 2.0 (the "License"); 6 | * you may not use this file except in compliance with the License. 7 | * You may obtain a copy of the License at 8 | * 9 | * http://www.apache.org/licenses/LICENSE-2.0 10 | * 11 | * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 12 | * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 13 | * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF ANY PROPRIETARY RIGHTS. 14 | * 15 | * In no event and under no legal theory, whether in tort (including negligence), 16 | * contract, or otherwise, unless required by applicable law (such as deliberate 17 | * and grossly negligent acts) or agreed to in writing, shall any Contributor be 18 | * liable for any damages, including any direct, indirect, special, incidental, 19 | * or consequential damages of any character arising as a result of this License or 20 | * out of the use or inability to use the software (including but not limited to damages 21 | * for loss of goodwill, work stoppage, computer failure or malfunction, or any and 22 | * all other commercial damages or losses), even if such Contributor has been advised 23 | * of the possibility of such damages. 24 | */ 25 | 26 | #include "AppBase.hpp" 27 | 28 | // This dummy file is only required for the NativeAppBase.lib to be created, 29 | // which is required to avoid linker error 30 | 31 | // We cannot add real source to this library because Windows Runtime types cannot 32 | // be included into static libraries 33 | -------------------------------------------------------------------------------- /NativeApp/src/Win32/main.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2025 Diligent Graphics LLC 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | * 16 | * In no event and under no legal theory, whether in tort (including negligence), 17 | * contract, or otherwise, unless required by applicable law (such as deliberate 18 | * and grossly negligent acts) or agreed to in writing, shall any Contributor be 19 | * liable for any damages, including any direct, indirect, special, incidental, 20 | * or consequential damages of any character arising as a result of this License or 21 | * out of the use or inability to use the software (including but not limited to damages 22 | * for loss of goodwill, work stoppage, computer failure or malfunction, or any and 23 | * all other commercial damages or losses), even if such Contributor has been advised 24 | * of the possibility of such damages. 25 | */ 26 | 27 | #include 28 | 29 | int WINAPI WinMain(_In_ HINSTANCE hInstance, 30 | _In_opt_ HINSTANCE hPrevInstance, 31 | _In_ LPSTR lpCmdLine, 32 | _In_ int nShowCmd); 33 | 34 | int main(int argc, char* argv[]) 35 | { 36 | return WinMain(GetModuleHandle(nullptr), nullptr, GetCommandLineA(), SW_SHOWDEFAULT); 37 | } 38 | -------------------------------------------------------------------------------- /RenderStatePackager/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | cmake_minimum_required (VERSION 3.10) 2 | 3 | project(Diligent-RenderStatePackager CXX) 4 | 5 | set(INCLUDE 6 | include/ParsingEnvironment.hpp 7 | include/RenderStatePackager.hpp 8 | ) 9 | set(SOURCE 10 | src/ParsingEnvironment.cpp 11 | src/RenderStatePackager.cpp 12 | ) 13 | 14 | source_group("include" FILES ${INCLUDE}) 15 | source_group("src" FILES ${SOURCE}) 16 | 17 | add_library(Diligent-RenderStatePackagerLib STATIC 18 | ${INCLUDE} 19 | ${SOURCE} 20 | ) 21 | 22 | target_include_directories(Diligent-RenderStatePackagerLib 23 | PUBLIC 24 | include 25 | ) 26 | 27 | target_link_libraries(Diligent-RenderStatePackagerLib 28 | PRIVATE 29 | Diligent-BuildSettings 30 | Diligent-GraphicsAccessories 31 | PUBLIC 32 | Diligent-Archiver-static 33 | Diligent-RenderStateNotation 34 | ) 35 | 36 | set_common_target_properties(Diligent-RenderStatePackagerLib) 37 | 38 | add_executable(Diligent-RenderStatePackager 39 | src/main.cpp 40 | README.md 41 | ) 42 | set_common_target_properties(Diligent-RenderStatePackager) 43 | 44 | target_link_libraries(Diligent-RenderStatePackager 45 | PRIVATE 46 | Diligent-BuildSettings 47 | Diligent-Common 48 | Diligent-RenderStatePackagerLib 49 | ) 50 | target_include_directories(Diligent-RenderStatePackager 51 | PRIVATE 52 | include 53 | ${DILIGENT_ARGS_DIR} 54 | ) 55 | 56 | if (DILIGENT_INSTALL_TOOLS) 57 | install(TARGETS Diligent-RenderStatePackager RUNTIME DESTINATION "${CMAKE_INSTALL_BINDIR}/${DILIGENT_TOOLS_DIR}/$" OPTIONAL) 58 | endif() 59 | 60 | 61 | set_target_properties(Diligent-RenderStatePackagerLib Diligent-RenderStatePackager PROPERTIES 62 | FOLDER DiligentTools 63 | ) 64 | -------------------------------------------------------------------------------- /Tests/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | cmake_minimum_required (VERSION 3.10) 2 | 3 | if(TARGET gtest) 4 | if(DILIGENT_BUILD_TOOLS_TESTS) 5 | add_subdirectory(DiligentToolsTest) 6 | add_subdirectory(DiligentToolsGPUTest) 7 | endif() 8 | endif() 9 | 10 | if(DILIGENT_BUILD_TOOLS_INCLUDE_TEST) 11 | add_subdirectory(IncludeTest) 12 | endif() 13 | -------------------------------------------------------------------------------- /Tests/DiligentToolsGPUTest/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | cmake_minimum_required (VERSION 3.10) 2 | 3 | project(DiligentToolsGPUTest) 4 | 5 | file(GLOB_RECURSE INCLUDE include/*.*) 6 | file(GLOB_RECURSE SOURCE src/*.*) 7 | set(MAIN_CPP ../../../DiligentCore/Tests/DiligentCoreAPITest/src/main.cpp) 8 | file(GLOB_RECURSE SHADERS assets/Shaders/*.*) 9 | file(GLOB_RECURSE RENDER_STATES assets/RenderStates/*.*) 10 | 11 | set_source_files_properties(${RENDER_STATES} PROPERTIES VS_TOOL_OVERRIDE "None") 12 | set_source_files_properties(${SHADERS} PROPERTIES VS_TOOL_OVERRIDE "None") 13 | 14 | add_executable(DiligentToolsGPUTest ${SOURCE} ${MAIN_CPP} ${INCLUDE} ${SHADERS} ${RENDER_STATES}) 15 | set_common_target_properties(DiligentToolsGPUTest) 16 | 17 | target_link_libraries(DiligentToolsGPUTest 18 | PRIVATE 19 | Diligent-BuildSettings 20 | Diligent-TargetPlatform 21 | Diligent-Common 22 | Diligent-GraphicsEngine 23 | Diligent-RenderStateNotation 24 | Diligent-GraphicsTools 25 | Diligent-GPUTestFramework 26 | ) 27 | 28 | if (TARGET Diligent-RenderStatePackagerLib) 29 | target_link_libraries(DiligentToolsGPUTest 30 | PRIVATE 31 | Diligent-RenderStatePackagerLib 32 | ) 33 | endif() 34 | 35 | source_group(TREE ${CMAKE_CURRENT_SOURCE_DIR} FILES ${SOURCE} ${INCLUDE} ${SHADERS} ${RENDER_STATES}) 36 | source_group("DiligentCoreAPITest" FILES ${MAIN_CPP}) 37 | 38 | set_target_properties(DiligentToolsGPUTest 39 | PROPERTIES 40 | VS_DEBUGGER_WORKING_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}/assets" 41 | XCODE_SCHEME_WORKING_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}/assets" 42 | ) 43 | 44 | set_target_properties(DiligentToolsGPUTest PROPERTIES 45 | FOLDER "DiligentTools/Tests" 46 | ) 47 | 48 | if(PLATFORM_WIN32) 49 | copy_required_dlls(DiligentToolsGPUTest) 50 | endif() 51 | -------------------------------------------------------------------------------- /Tests/DiligentToolsGPUTest/assets/RenderStates/IgnoreSignature.json: -------------------------------------------------------------------------------- 1 | { 2 | "Ignore": { 3 | "Signatures" : [ 4 | "TestSignature" 5 | ] 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /Tests/DiligentToolsGPUTest/assets/RenderStates/PSO.json: -------------------------------------------------------------------------------- 1 | { 2 | "Defaults": { 3 | "Shader": { 4 | "SourceLanguage": "HLSL", 5 | "Desc": { 6 | "UseCombinedTextureSamplers": true 7 | } 8 | } 9 | }, 10 | "Pipelines": [ 11 | { 12 | "GraphicsPipeline": { 13 | "DepthStencilDesc": { 14 | "DepthEnable": true, 15 | "DepthWriteEnable": true, 16 | "DepthFunc": "LESS" 17 | }, 18 | "RasterizerDesc": { 19 | "FillMode": "SOLID", 20 | "CullMode": "BACK", 21 | "FrontCounterClockwise": true, 22 | "DepthClipEnable": true 23 | }, 24 | "RTVFormats": { 25 | "0": "RGBA8_UNORM_SRGB" 26 | }, 27 | "DSVFormat": "D32_FLOAT", 28 | "PrimitiveTopology": "TRIANGLE_LIST" 29 | 30 | }, 31 | "PSODesc": { 32 | "Name": "GeometryOpaque", 33 | "PipelineType": "GRAPHICS" 34 | }, 35 | "pVS": { 36 | "Desc": { 37 | "Name": "GeometryOpaque-VS" 38 | }, 39 | "FilePath": "GeometryOpaque.hlsl", 40 | "EntryPoint": "VSMain" 41 | }, 42 | "pPS": { 43 | "Desc": { 44 | "Name": "GeometryOpaque-PS" 45 | }, 46 | "FilePath": "GeometryOpaque.hlsl", 47 | "EntryPoint": "PSMain" 48 | } 49 | } 50 | ] 51 | } 52 | -------------------------------------------------------------------------------- /Tests/DiligentToolsGPUTest/assets/RenderStates/Reload/PSO.json: -------------------------------------------------------------------------------- 1 | { 2 | "Defaults": { 3 | "Shader": { 4 | "SourceLanguage": "HLSL", 5 | "Desc": { 6 | "UseCombinedTextureSamplers": true 7 | } 8 | } 9 | }, 10 | "Pipelines": [ 11 | { 12 | "GraphicsPipeline": { 13 | "DepthStencilDesc": { 14 | "DepthEnable": true, 15 | "DepthWriteEnable": true, 16 | "DepthFunc": "LESS_EQUAL" 17 | }, 18 | "RasterizerDesc": { 19 | "FillMode": "SOLID", 20 | "CullMode": "NONE", 21 | "FrontCounterClockwise": true, 22 | "DepthClipEnable": true 23 | }, 24 | "RTVFormats": { 25 | "0": "RGBA8_UNORM_SRGB", 26 | "1": "RGBA32_FLOAT" 27 | }, 28 | "DSVFormat": "D32_FLOAT", 29 | "PrimitiveTopology": "TRIANGLE_STRIP" 30 | 31 | }, 32 | "PSODesc": { 33 | "Name": "GeometryOpaque", 34 | "PipelineType": "GRAPHICS" 35 | }, 36 | "pVS": { 37 | "Desc": { 38 | "Name": "GeometryOpaque-VS" 39 | }, 40 | "FilePath": "GeometryOpaque.hlsl", 41 | "EntryPoint": "VSMain" 42 | }, 43 | "pPS": { 44 | "Desc": { 45 | "Name": "GeometryOpaque-PS" 46 | }, 47 | "FilePath": "GeometryOpaque.hlsl", 48 | "EntryPoint": "PSMain" 49 | } 50 | } 51 | ] 52 | } 53 | -------------------------------------------------------------------------------- /Tests/DiligentToolsGPUTest/assets/RenderStates/Signature.json: -------------------------------------------------------------------------------- 1 | { 2 | "ResourceSignatures": [ 3 | { 4 | "Name": "TestSignature", 5 | "UseCombinedTextureSamplers": true, 6 | "Resources": [ 7 | { 8 | "Name": "g_Tex", 9 | "ShaderStages": [ "VERTEX", "PIXEL" ], 10 | "VarType": "MUTABLE", 11 | "ResourceType": "TEXTURE_SRV" 12 | }, 13 | { 14 | "Name": "g_Tex_sampler", 15 | "ShaderStages": [ "VERTEX", "PIXEL" ], 16 | "VarType": "MUTABLE", 17 | "ResourceType": "SAMPLER" 18 | } 19 | ] 20 | } 21 | ] 22 | } 23 | -------------------------------------------------------------------------------- /Tests/DiligentToolsGPUTest/assets/Shaders/GeometryOpaque.hlsl: -------------------------------------------------------------------------------- 1 | Texture2D g_Tex; 2 | SamplerState g_Tex_sampler; 3 | 4 | void VSMain(uint VertexID : SV_VertexID, 5 | uint InstanceID : SV_InstanceID, 6 | out float4 Position : SV_Position, 7 | out float4 Color : VERTCOLOR, 8 | out float2 TexCoord : TEXCOORD) 9 | { 10 | float2 VertexPositions[] = { float2(-0.5, -0.5), float2(+0.5, -0.5), float2(+0.0, +0.5) }; 11 | 12 | float4 VertexColors[] = { float4(1.0, 0.0, 0.0, 1.0), float4(0.0, 1.0, 0.0, 1.0), float4(0.0, 0.0, 1.0, 1.0) }; 13 | float2 InstancePositionOffsets[] = { float2(.0, 0.0), float2(0.5, 0.5), float2(-0.5, -0.5), float2(-0.5, 0.5), float2(0.5, -0.5) }; 14 | 15 | Color = VertexColors[VertexID]; 16 | Position = float4(VertexPositions[VertexID] + InstancePositionOffsets[InstanceID], 0.8, 1.0f); 17 | TexCoord = VertexPositions[VertexID] + float2(0.5, 0.5); 18 | } 19 | 20 | float4 PSMain(float4 Position : SV_Position, 21 | float4 Color : VERTCOLOR, 22 | float2 TexCoord : TEXCOORD): SV_Target 23 | { 24 | return Color * g_Tex.Sample(g_Tex_sampler, TexCoord); 25 | } 26 | -------------------------------------------------------------------------------- /Tests/DiligentToolsGPUTest/assets/Shaders/Reload/GeometryOpaque.hlsl: -------------------------------------------------------------------------------- 1 | Texture2D g_Tex; 2 | SamplerState g_Tex_sampler; 3 | 4 | void VSMain(uint VertexID : SV_VertexID, 5 | uint InstanceID : SV_InstanceID, 6 | out float4 Position : SV_Position, 7 | out float4 Color : VERTCOLOR, 8 | out float2 TexCoord : TEXCOORD) 9 | { 10 | float2 VertexPositions[] = { float2(-0.5, -0.5), float2(+0.5, -0.5), float2(+0.0, +0.5) }; 11 | 12 | float4 VertexColors[] = { float4(1.0, 0.0, 0.0, 1.0), float4(0.0, 1.0, 0.0, 1.0), float4(0.0, 0.0, 1.0, 1.0) }; 13 | float2 InstancePositionOffsets[] = { float2(.0, 0.0), float2(0.5, 0.5), float2(-0.5, -0.5), float2(-0.5, 0.5), float2(0.5, -0.5) }; 14 | 15 | Color = VertexColors[VertexID]; 16 | Position = float4(VertexPositions[VertexID] + InstancePositionOffsets[InstanceID], 0.8, 1.0f); 17 | TexCoord = VertexPositions[VertexID] + float2(0.5, 0.5); 18 | } 19 | 20 | void PSMain(in float4 Position : SV_Position, 21 | in float4 Color : VERTCOLOR, 22 | in float2 TexCoord : TEXCOORD, 23 | out float4 Color0 : SV_Target0, 24 | out float4 Color1 : SV_Target1) 25 | { 26 | Color0 = Color; 27 | Color1 = g_Tex.Sample(g_Tex_sampler, TexCoord); 28 | } 29 | -------------------------------------------------------------------------------- /Tests/DiligentToolsTest/assets/RenderStatePackagerConfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "Metal": { 3 | "DumpDirectory": "./PackagerBytecodeTemp" 4 | } 5 | } 6 | -------------------------------------------------------------------------------- /Tests/DiligentToolsTest/assets/RenderStates/BlendState/BlendStateDesc.json: -------------------------------------------------------------------------------- 1 | { 2 | "AlphaToCoverageEnable": true, 3 | "IndependentBlendEnable": true, 4 | "RenderTargets": { 5 | "0": { 6 | "DestBlend": "INV_DEST_ALPHA", 7 | "LogicOp": "AND_REVERSE" 8 | }, 9 | "1": { 10 | "BlendEnable": true, 11 | "SrcBlend": "DEST_ALPHA" 12 | }, 13 | "2": { 14 | "RenderTargetWriteMask": "RED" 15 | } 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /Tests/DiligentToolsTest/assets/RenderStates/BlendState/RenderTargetBlendDesc.json: -------------------------------------------------------------------------------- 1 | { 2 | "DestBlend": "INV_DEST_ALPHA", 3 | "LogicOp": "AND_REVERSE" 4 | } 5 | -------------------------------------------------------------------------------- /Tests/DiligentToolsTest/assets/RenderStates/DepthStencilState/DepthStencilStateDesc.json: -------------------------------------------------------------------------------- 1 | { 2 | "DepthEnable": false, 3 | "DepthWriteEnable": false, 4 | "DepthFunc": "GREATER", 5 | "StencilEnable": true, 6 | "StencilReadMask": 15, 7 | "StencilWriteMask": 7, 8 | "FrontFace": { 9 | "StencilFunc": "NEVER" 10 | }, 11 | "BackFace": { 12 | "StencilFunc": "NOT_EQUAL" 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /Tests/DiligentToolsTest/assets/RenderStates/DepthStencilState/StencilOpDesc.json: -------------------------------------------------------------------------------- 1 | { 2 | "StencilFailOp": "ZERO", 3 | "StencilDepthFailOp": "DECR_WRAP", 4 | "StencilPassOp": "INCR_SAT", 5 | "StencilFunc": "LESS_EQUAL" 6 | } 7 | -------------------------------------------------------------------------------- /Tests/DiligentToolsTest/assets/RenderStates/GraphicsTypes/AdapterMemoryInfo.json: -------------------------------------------------------------------------------- 1 | { 2 | "HostVisibleMemory": 256, 3 | "LocalMemory": 8192, 4 | "MaxMemoryAllocation": 1024, 5 | "MemorylessTextureBindFlags": [ 6 | "SHADER_RESOURCE", 7 | "RENDER_TARGET" 8 | ], 9 | "UnifiedMemory": 16364, 10 | "UnifiedMemoryCPUAccess": [ 11 | "READ", 12 | "WRITE" 13 | ] 14 | } 15 | -------------------------------------------------------------------------------- /Tests/DiligentToolsTest/assets/RenderStates/GraphicsTypes/BufferProperties.json: -------------------------------------------------------------------------------- 1 | { 2 | "ConstantBufferOffsetAlignment": 64, 3 | "StructuredBufferOffsetAlignment": 128 4 | } 5 | -------------------------------------------------------------------------------- /Tests/DiligentToolsTest/assets/RenderStates/GraphicsTypes/CommandQueueInfo.json: -------------------------------------------------------------------------------- 1 | { 2 | "MaxDeviceContexts": 16, 3 | "QueueType": "GRAPHICS", 4 | "TextureCopyGranularity": [ 4, 8, 16 ] 5 | } 6 | -------------------------------------------------------------------------------- /Tests/DiligentToolsTest/assets/RenderStates/GraphicsTypes/ComputeShaderProperties.json: -------------------------------------------------------------------------------- 1 | { 2 | "MaxThreadGroupCountX": 256, 3 | "MaxThreadGroupCountY": 512, 4 | "MaxThreadGroupCountZ": 64, 5 | "MaxThreadGroupSizeX": 4, 6 | "MaxThreadGroupSizeY": 8, 7 | "MaxThreadGroupSizeZ": 16, 8 | "SharedMemorySize": 1024 9 | } 10 | -------------------------------------------------------------------------------- /Tests/DiligentToolsTest/assets/RenderStates/GraphicsTypes/DeviceFeatures.json: -------------------------------------------------------------------------------- 1 | { 2 | "BinaryOcclusionQueries": "ENABLED", 3 | "BindlessResources": "ENABLED", 4 | "ComputeShaders": "ENABLED", 5 | "DepthBiasClamp": "ENABLED", 6 | "DepthClamp": "ENABLED", 7 | "DualSourceBlend": "ENABLED", 8 | "IndependentBlend": "ENABLED", 9 | "InstanceDataStepRate": "ENABLED", 10 | "MeshShaders": "ENABLED", 11 | "MultiViewport": "ENABLED", 12 | "MultithreadedResourceCreation": "ENABLED", 13 | "NativeFence": "ENABLED", 14 | "OcclusionQueries": "ENABLED", 15 | "PipelineStatisticsQueries": "ENABLED", 16 | "PixelUAVWritesAndAtomics": "ENABLED", 17 | "RayTracing": "ENABLED", 18 | "ResourceBuffer16BitAccess": "ENABLED", 19 | "ResourceBuffer8BitAccess": "ENABLED", 20 | "SeparablePrograms": "ENABLED", 21 | "ShaderFloat16": "ENABLED", 22 | "ShaderInputOutput16": "ENABLED", 23 | "ShaderInt8": "ENABLED", 24 | "ShaderResourceQueries": "ENABLED", 25 | "ShaderResourceStaticArrays": "OPTIONAL", 26 | "ShaderResourceRuntimeArrays": "ENABLED", 27 | "SparseResources": "ENABLED", 28 | "Tessellation": "ENABLED", 29 | "TextureCompressionBC": "ENABLED", 30 | "TextureCompressionETC2": "ENABLED", 31 | "TextureUAVExtendedFormats": "ENABLED", 32 | "TileShaders": "ENABLED", 33 | "TimestampQueries": "ENABLED", 34 | "TransferQueueTimestampQueries": "ENABLED", 35 | "UniformBuffer16BitAccess": "ENABLED", 36 | "UniformBuffer8BitAccess": "ENABLED", 37 | "VariableRateShading": "ENABLED", 38 | "VertexPipelineUAVWritesAndAtomics": "ENABLED", 39 | "WaveOp": "ENABLED", 40 | "WireframeFill": "ENABLED", 41 | "SubpassFramebufferFetch": "OPTIONAL", 42 | "TextureComponentSwizzle": "OPTIONAL", 43 | "TextureSubresourceViews": "ENABLED", 44 | "NativeMultiDraw": "OPTIONAL", 45 | "AsyncShaderCompilation": "ENABLED", 46 | "FormattedBuffers": "OPTIONAL" 47 | } 48 | -------------------------------------------------------------------------------- /Tests/DiligentToolsTest/assets/RenderStates/GraphicsTypes/DrawCommandProperties.json: -------------------------------------------------------------------------------- 1 | { 2 | "CapFlags": [ 3 | "DRAW_INDIRECT", 4 | "NATIVE_MULTI_DRAW_INDIRECT" 5 | ], 6 | "MaxDrawIndirectCount": 2048, 7 | "MaxIndexValue": 1024 8 | } 9 | -------------------------------------------------------------------------------- /Tests/DiligentToolsTest/assets/RenderStates/GraphicsTypes/GraphicsAdapterInfo.json: -------------------------------------------------------------------------------- 1 | { 2 | "Description": "NVIDIA: RTX 2080", 3 | "Buffer": { 4 | "ConstantBufferOffsetAlignment": 64 5 | }, 6 | "ComputeShader": { 7 | "SharedMemorySize": 1024 8 | }, 9 | "DeviceId": 128, 10 | "DrawCommand": { 11 | "MaxDrawIndirectCount": 4 12 | }, 13 | "Features": { 14 | "GeometryShaders": "ENABLED" 15 | }, 16 | "Memory": { 17 | "LocalMemory": 256 18 | }, 19 | "MeshShader": { 20 | "MaxThreadGroupCountX": 10, 21 | "MaxThreadGroupCountY": 20, 22 | "MaxThreadGroupCountZ": 30, 23 | "MaxThreadGroupTotalCount": 100 24 | }, 25 | "NumOutputs": 1, 26 | "NumQueues": 2, 27 | "Queues": { 28 | "0": { 29 | "QueueType": "COMPUTE" 30 | }, 31 | "1": { 32 | "QueueType": "GRAPHICS" 33 | } 34 | }, 35 | "RayTracing": { 36 | "BoxBufferAlignment": 64 37 | }, 38 | "Sampler": { 39 | "MaxAnisotropy": 8 40 | }, 41 | "ShadingRate": { 42 | "Combiners": "OVERRIDE" 43 | }, 44 | "SparseResources": { 45 | "AddressSpaceSize": 64 46 | }, 47 | "Texture": { 48 | "CubemapArraysSupported": true 49 | }, 50 | "Type": "DISCRETE", 51 | "Vendor": "NVIDIA", 52 | "VendorId": 8, 53 | "WaveOp": { 54 | "MinSize": 1 55 | } 56 | } 57 | -------------------------------------------------------------------------------- /Tests/DiligentToolsTest/assets/RenderStates/GraphicsTypes/MeshShaderProperties.json: -------------------------------------------------------------------------------- 1 | { 2 | "MaxThreadGroupCountX": 4, 3 | "MaxThreadGroupCountY": 8, 4 | "MaxThreadGroupCountZ": 12, 5 | "MaxThreadGroupTotalCount" : 32 6 | } 7 | -------------------------------------------------------------------------------- /Tests/DiligentToolsTest/assets/RenderStates/GraphicsTypes/NDCAttribs.json: -------------------------------------------------------------------------------- 1 | { 2 | "MinZ": 0.5, 3 | "YtoVScale": 1.0, 4 | "ZtoDepthScale": 0.25 5 | } 6 | -------------------------------------------------------------------------------- /Tests/DiligentToolsTest/assets/RenderStates/GraphicsTypes/RayTracingProperties.json: -------------------------------------------------------------------------------- 1 | { 2 | "IndexBufferAlignment": 4, 3 | "InstanceBufferAlignment": 8, 4 | "VertexBufferAlignment": 16, 5 | "BoxBufferAlignment": 32, 6 | "ScratchBufferAlignment": 64, 7 | "ShaderGroupBaseAlignment": 128, 8 | "TransformBufferAlignment": 256, 9 | 10 | "MaxInstancesPerTLAS": 512, 11 | "MaxPrimitivesPerBLAS": 1024, 12 | "MaxGeometriesPerBLAS": 2048, 13 | 14 | "MaxRayGenThreads": 64, 15 | "MaxRecursionDepth": 16, 16 | "MaxShaderRecordStride": 32, 17 | "ShaderGroupHandleSize": 4, 18 | "CapFlags": [ 19 | "INLINE_RAY_TRACING", 20 | "INDIRECT_RAY_TRACING" 21 | ] 22 | } 23 | -------------------------------------------------------------------------------- /Tests/DiligentToolsTest/assets/RenderStates/GraphicsTypes/RenderDeviceInfo.json: -------------------------------------------------------------------------------- 1 | { 2 | "APIVersion": { 3 | "Major": 1, 4 | "Minor": 2 5 | }, 6 | "Features": { 7 | "BinaryOcclusionQueries": "ENABLED" 8 | }, 9 | "NDC": { 10 | "MinZ": -1.0 11 | }, 12 | "Type": "VULKAN", 13 | "MaxShaderVersion": { 14 | "HLSL": { 15 | "Major": 3, 16 | "Minor": 4 17 | }, 18 | "GLSL": { 19 | "Major": 5, 20 | "Minor": 6 21 | }, 22 | "GLESSL": { 23 | "Major": 7, 24 | "Minor": 8 25 | }, 26 | "MSL": { 27 | "Major": 9, 28 | "Minor": 10 29 | } 30 | } 31 | } 32 | -------------------------------------------------------------------------------- /Tests/DiligentToolsTest/assets/RenderStates/GraphicsTypes/SamplerProperties.json: -------------------------------------------------------------------------------- 1 | { 2 | "MaxAnisotropy": 16, 3 | "BorderSamplingModeSupported": true, 4 | "LODBiasSupported": true 5 | } 6 | -------------------------------------------------------------------------------- /Tests/DiligentToolsTest/assets/RenderStates/GraphicsTypes/ShadingRateMode.json: -------------------------------------------------------------------------------- 1 | { 2 | "Rate": "2X4", 3 | "SampleBits": [ 4 | "4", 5 | "16" 6 | ] 7 | } 8 | -------------------------------------------------------------------------------- /Tests/DiligentToolsTest/assets/RenderStates/GraphicsTypes/ShadingRateProperties.json: -------------------------------------------------------------------------------- 1 | { 2 | "BindFlags": [ "SHADER_RESOURCE", "UNORDERED_ACCESS" ], 3 | "CapFlags": [ "PER_DRAW", "PER_PRIMITIVE" ], 4 | "Combiners": [ "MIN", "MUL"], 5 | "Format": "COL_ROW_FP32", 6 | "MaxSabsampledArraySlices": 4, 7 | "MinTileSize": [ 2, 4], 8 | "MaxTileSize": [ 8, 16 ], 9 | "NumShadingRates": 8, 10 | "ShadingRateTextureAccess": "ON_SET_RTV" 11 | } 12 | -------------------------------------------------------------------------------- /Tests/DiligentToolsTest/assets/RenderStates/GraphicsTypes/SparseResourceProperties.json: -------------------------------------------------------------------------------- 1 | { 2 | "AddressSpaceSize": 2048, 3 | "BufferBindFlags": [ 4 | "SHADER_RESOURCE", 5 | "UNORDERED_ACCESS" 6 | ], 7 | "CapFlags": [ 8 | "BUFFER", 9 | "ALIASED" 10 | ], 11 | "ResourceSpaceSize": 1024, 12 | "StandardBlockSize": 64 13 | } 14 | -------------------------------------------------------------------------------- /Tests/DiligentToolsTest/assets/RenderStates/GraphicsTypes/TextureProperties.json: -------------------------------------------------------------------------------- 1 | { 2 | "CubemapArraysSupported": true, 3 | "MaxTexture1DArraySlices": 512, 4 | "MaxTexture1DDimension": 2048, 5 | "MaxTexture2DArraySlices": 8, 6 | "MaxTexture2DDimension": 512, 7 | "MaxTexture3DDimension": 64, 8 | "MaxTextureCubeDimension": 8, 9 | "Texture2DMSArraySupported": true, 10 | "Texture2DMSSupported": true, 11 | "TextureView2DOn3DSupported": true, 12 | "TextureViewSupported": true 13 | } 14 | -------------------------------------------------------------------------------- /Tests/DiligentToolsTest/assets/RenderStates/GraphicsTypes/Version.json: -------------------------------------------------------------------------------- 1 | { 2 | "Major": 1, 3 | "Minor": 2 4 | } 5 | -------------------------------------------------------------------------------- /Tests/DiligentToolsTest/assets/RenderStates/GraphicsTypes/WaveOpProperties.json: -------------------------------------------------------------------------------- 1 | { 2 | "Features": [ 3 | "BALLOUT", 4 | "QUAD" 5 | ], 6 | "MaxSize": 64, 7 | "MinSize": 1, 8 | "SupportedStages": [ 9 | "VERTEX", 10 | "PIXEL" 11 | ] 12 | } 13 | -------------------------------------------------------------------------------- /Tests/DiligentToolsTest/assets/RenderStates/InputLayout/InputLayoutDesc.json: -------------------------------------------------------------------------------- 1 | { 2 | "LayoutElements": [ 3 | { 4 | "InputIndex": 0, 5 | "BufferSlot": 0, 6 | "NumComponents": 3, 7 | "ValueType": "FLOAT32", 8 | "IsNormalized": false 9 | }, 10 | { 11 | "InputIndex": 1, 12 | "BufferSlot": 1, 13 | "NumComponents": 4, 14 | "ValueType": "FLOAT32", 15 | "IsNormalized": false 16 | }, 17 | { 18 | "InputIndex": 2, 19 | "BufferSlot": 2, 20 | "NumComponents": 3, 21 | "ValueType": "FLOAT16" 22 | } 23 | ] 24 | } 25 | -------------------------------------------------------------------------------- /Tests/DiligentToolsTest/assets/RenderStates/InputLayout/LayoutElement.json: -------------------------------------------------------------------------------- 1 | { 2 | "InputIndex": 1, 3 | "BufferSlot": 1, 4 | "NumComponents": 3, 5 | "ValueType": "FLOAT32", 6 | "IsNormalized": false, 7 | "HLSLSemantic": "TestSemantic0", 8 | "Frequency": "PER_INSTANCE", 9 | "RelativeOffset": 16, 10 | "Stride": 8, 11 | "InstanceDataStepRate": 12 12 | } 13 | -------------------------------------------------------------------------------- /Tests/DiligentToolsTest/assets/RenderStates/PipelineResourceSignature/ImmutableSamplerDesc.json: -------------------------------------------------------------------------------- 1 | { 2 | "ShaderStages": [ "VERTEX", "PIXEL" ], 3 | "SamplerOrTextureName": "TestName", 4 | "Desc": { 5 | "Flags": "SUBSAMPLED" 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /Tests/DiligentToolsTest/assets/RenderStates/PipelineResourceSignature/PipelineResourceDesc.json: -------------------------------------------------------------------------------- 1 | { 2 | "Name": "TestName", 3 | "ShaderStages": [ "VERTEX", "PIXEL" ], 4 | "VarType": "DYNAMIC", 5 | "ResourceType": "CONSTANT_BUFFER", 6 | "ArraySize": 16, 7 | "Flags": "RUNTIME_ARRAY" 8 | } 9 | -------------------------------------------------------------------------------- /Tests/DiligentToolsTest/assets/RenderStates/PipelineResourceSignature/PipelineResourceSignatureDesc.json: -------------------------------------------------------------------------------- 1 | { 2 | "Name": "TestName0", 3 | "Resources": [ 4 | { 5 | "Name": "TestName0", 6 | "ResourceType": "BUFFER_UAV", 7 | "ShaderStages": "VERTEX", 8 | "ArraySize": 1 9 | }, 10 | { 11 | "Name": "TestName1", 12 | "ResourceType": "TEXTURE_SRV", 13 | "ShaderStages": "ALL_MESH", 14 | "ArraySize": 2 15 | }, 16 | { 17 | "Name": "TestName2", 18 | "ResourceType": "INPUT_ATTACHMENT", 19 | "ShaderStages": "ALL_GRAPHICS", 20 | "ArraySize": 3 21 | } 22 | ], 23 | "ImmutableSamplers": [ 24 | { 25 | "SamplerOrTextureName": "TestName0", 26 | "ShaderStages": "ALL_RAY_TRACING" 27 | }, 28 | { 29 | "SamplerOrTextureName": "TestName1", 30 | "ShaderStages": "PIXEL" 31 | } 32 | ], 33 | "BindingIndex": 1, 34 | "UseCombinedTextureSamplers": true, 35 | "CombinedSamplerSuffix": "_sampler_test", 36 | "SRBAllocationGranularity": 16 37 | } 38 | -------------------------------------------------------------------------------- /Tests/DiligentToolsTest/assets/RenderStates/PipelineState/GraphicsPipelineDesc.json: -------------------------------------------------------------------------------- 1 | { 2 | "DepthStencilDesc": { 3 | "DepthEnable": false 4 | }, 5 | "RasterizerDesc": { 6 | "CullMode": "FRONT" 7 | }, 8 | "BlendDesc": { 9 | "RenderTargets": { 10 | "0": { "BlendEnable": true } 11 | } 12 | }, 13 | "InputLayout": { 14 | "LayoutElements": [ 15 | { 16 | "InputIndex": 0, 17 | "NumComponents": 3 18 | }, 19 | { 20 | "InputIndex": 1, 21 | "NumComponents": 4 22 | } 23 | ] 24 | }, 25 | "SampleMask": 1245678, 26 | "PrimitiveTopology": "POINT_LIST", 27 | "NumRenderTargets": 2, 28 | "NumViewports": 2, 29 | "SubpassIndex": 1, 30 | "NodeMask": 1, 31 | "ShadingRateFlags": [ "PER_PRIMITIVE", "TEXTURE_BASED" ], 32 | "DSVFormat": "D32_FLOAT", 33 | "RTVFormats": { 34 | "0": "RGBA8_UNORM", 35 | "1": "RG16_FLOAT" 36 | }, 37 | "SmplDesc": { 38 | "Count": 4, 39 | "Quality": 1 40 | } 41 | } 42 | -------------------------------------------------------------------------------- /Tests/DiligentToolsTest/assets/RenderStates/PipelineState/PipelineResourceLayoutDesc.json: -------------------------------------------------------------------------------- 1 | { 2 | "DefaultVariableMergeStages": "ALL_GRAPHICS", 3 | "DefaultVariableType": "MUTABLE", 4 | "Variables": [ 5 | { 6 | "ShaderStages": [ "VERTEX", "PIXEL" ], 7 | "Name": "TestName0", 8 | "Type": "STATIC" 9 | }, 10 | { 11 | "ShaderStages": [ "VERTEX", "PIXEL" ], 12 | "Name": "TestName1", 13 | "Type": "DYNAMIC" 14 | } 15 | ], 16 | "ImmutableSamplers": [ 17 | { 18 | "SamplerOrTextureName": "TestName0", 19 | "ShaderStages": "ALL_RAY_TRACING", 20 | "Desc": { 21 | "MinFilter": "POINT", 22 | "MagFilter": "MAXIMUM_POINT", 23 | "MipFilter": "ANISOTROPIC" 24 | } 25 | }, 26 | { 27 | "SamplerOrTextureName": "TestName1", 28 | "ShaderStages": "PIXEL", 29 | "Desc": { 30 | "MinFilter": "COMPARISON_POINT", 31 | "MagFilter": "COMPARISON_LINEAR", 32 | "MipFilter": "COMPARISON_ANISOTROPIC" 33 | } 34 | } 35 | ] 36 | } 37 | -------------------------------------------------------------------------------- /Tests/DiligentToolsTest/assets/RenderStates/PipelineState/PipelineStateDesc.json: -------------------------------------------------------------------------------- 1 | { 2 | "PipelineType": "COMPUTE", 3 | "Name": "TestName", 4 | "SRBAllocationGranularity": 16, 5 | "ImmediateContextMask": 1, 6 | "ResourceLayout": { "DefaultVariableType": "DYNAMIC" } 7 | } 8 | -------------------------------------------------------------------------------- /Tests/DiligentToolsTest/assets/RenderStates/PipelineState/RayTracingPipelineDesc.json: -------------------------------------------------------------------------------- 1 | { 2 | "MaxRecursionDepth": 7, 3 | "ShaderRecordSize": 4096 4 | } 5 | -------------------------------------------------------------------------------- /Tests/DiligentToolsTest/assets/RenderStates/PipelineState/SampleDesc.json: -------------------------------------------------------------------------------- 1 | { 2 | "Count": 4, 3 | "Quality": 1 4 | } 5 | -------------------------------------------------------------------------------- /Tests/DiligentToolsTest/assets/RenderStates/PipelineState/ShaderResourceVariableDesc.json: -------------------------------------------------------------------------------- 1 | { 2 | "Name": "TestName", 3 | "Type": "DYNAMIC", 4 | "ShaderStages": [ "VERTEX", "PIXEL" ], 5 | "Flags": [ "NO_DYNAMIC_BUFFERS", "GENERAL_INPUT_ATTACHMENT_VK" ] 6 | } 7 | -------------------------------------------------------------------------------- /Tests/DiligentToolsTest/assets/RenderStates/PipelineState/TilePipelineDesc.json: -------------------------------------------------------------------------------- 1 | { 2 | "NumRenderTargets": 2, 3 | "SampleCount": 4, 4 | "RTVFormats": { 5 | "0": "RGBA8_UNORM", 6 | "1": "RG16_FLOAT" 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /Tests/DiligentToolsTest/assets/RenderStates/RasterizerState/RasterizerStateDesc.json: -------------------------------------------------------------------------------- 1 | { 2 | "FillMode": "WIREFRAME", 3 | "CullMode": "FRONT", 4 | "FrontCounterClockwise": true, 5 | "DepthClipEnable": true, 6 | "ScissorEnable": true, 7 | "AntialiasedLineEnable": true, 8 | "DepthBias": 1, 9 | "DepthBiasClamp": 0.25, 10 | "SlopeScaledDepthBias": 0.75 11 | } 12 | -------------------------------------------------------------------------------- /Tests/DiligentToolsTest/assets/RenderStates/RenderPass/AttachmentReference.json: -------------------------------------------------------------------------------- 1 | { 2 | "AttachmentIndex": 1, 3 | "State": "RENDER_TARGET" 4 | } 5 | -------------------------------------------------------------------------------- /Tests/DiligentToolsTest/assets/RenderStates/RenderPass/RenderPassAttachmentDesc.json: -------------------------------------------------------------------------------- 1 | { 2 | "Format": "RGBA8_UNORM", 3 | "SampleCount": 4, 4 | "LoadOp": "CLEAR", 5 | "StoreOp": "DISCARD", 6 | "StencilLoadOp": "LOAD", 7 | "StencilStoreOp": "STORE", 8 | "InitialState": "SHADER_RESOURCE", 9 | "FinalState": "RENDER_TARGET" 10 | } 11 | -------------------------------------------------------------------------------- /Tests/DiligentToolsTest/assets/RenderStates/RenderPass/RenderPassDesc.json: -------------------------------------------------------------------------------- 1 | { 2 | "Name": "TestName", 3 | "pAttachments": [ 4 | { "Format": "RGBA8_UNORM" }, 5 | { "Format": "R32_FLOAT" }, 6 | { "Format": "D32_FLOAT" }, 7 | { "Format": "RGBA8_UNORM" } 8 | ], 9 | "pSubpasses": [ 10 | { 11 | "pRenderTargetAttachments": [ 12 | { 13 | "AttachmentIndex": 0, 14 | "State": "RENDER_TARGET" 15 | }, 16 | { 17 | "AttachmentIndex": 1, 18 | "State": "RENDER_TARGET" 19 | } 20 | ], 21 | "pDepthStencilAttachment": { 22 | "AttachmentIndex": 2, 23 | "State": "DEPTH_WRITE" 24 | } 25 | }, 26 | { 27 | "pInputAttachments": [ 28 | { 29 | "AttachmentIndex": 0, 30 | "State": "INPUT_ATTACHMENT" 31 | }, 32 | { 33 | "AttachmentIndex": 1, 34 | "State": "INPUT_ATTACHMENT" 35 | } 36 | ], 37 | 38 | "pRenderTargetAttachments": [ 39 | { 40 | "AttachmentIndex": 3, 41 | "State": "RENDER_TARGET" 42 | } 43 | ], 44 | "pDepthStencilAttachment": { 45 | "AttachmentIndex": 2, 46 | "State": "DEPTH_WRITE" 47 | } 48 | } 49 | ], 50 | 51 | "pDependencies": [ 52 | { 53 | "SrcSubpass": 0, 54 | "DstSubpass": 1 55 | } 56 | ] 57 | } 58 | -------------------------------------------------------------------------------- /Tests/DiligentToolsTest/assets/RenderStates/RenderPass/ShadingRateAttachment.json: -------------------------------------------------------------------------------- 1 | { 2 | "Attachment": { 3 | "AttachmentIndex": 0, 4 | "State": "SHADING_RATE" 5 | }, 6 | "TileSize": [ 8, 16 ] 7 | } 8 | -------------------------------------------------------------------------------- /Tests/DiligentToolsTest/assets/RenderStates/RenderPass/SubpassDependencyDesc.json: -------------------------------------------------------------------------------- 1 | { 2 | "SrcSubpass": 0, 3 | "DstSubpass": 1, 4 | "SrcAccessMask": [ "MEMORY_READ", "MEMORY_WRITE" ], 5 | "SrcStageMask": "BOTTOM_OF_PIPE", 6 | "DstAccessMask": "MEMORY_READ", 7 | "DstStageMask": [ "EARLY_FRAGMENT_TESTS", "PIXEL_SHADER" ] 8 | } 9 | -------------------------------------------------------------------------------- /Tests/DiligentToolsTest/assets/RenderStates/RenderPass/SubpassDesc.json: -------------------------------------------------------------------------------- 1 | { 2 | "pInputAttachments": [ 3 | { 4 | "AttachmentIndex": 0, 5 | "State": "INPUT_ATTACHMENT" 6 | }, 7 | { 8 | "AttachmentIndex": 1, 9 | "State": "INPUT_ATTACHMENT" 10 | } 11 | ], 12 | "pRenderTargetAttachments": [ 13 | { 14 | "AttachmentIndex": 2, 15 | "State": "RENDER_TARGET" 16 | } 17 | ], 18 | "pResolveAttachments": [ 19 | { 20 | "AttachmentIndex": 2, 21 | "State": "RESOLVE_SOURCE" 22 | } 23 | ], 24 | "pPreserveAttachments": [ 2, 4 ], 25 | "pShadingRateAttachment": { 26 | "Attachment": { 27 | "AttachmentIndex": 3, 28 | "State": "SHADING_RATE" 29 | }, 30 | "TileSize": [ 4, 8 ] 31 | }, 32 | "pDepthStencilAttachment": { 33 | "AttachmentIndex": 2, 34 | "State": "DEPTH_WRITE" 35 | } 36 | } 37 | -------------------------------------------------------------------------------- /Tests/DiligentToolsTest/assets/RenderStates/RenderStateNotationParser/ComputePipelineNotation.json: -------------------------------------------------------------------------------- 1 | { 2 | "Pipelines": [ 3 | { 4 | "PSODesc": { 5 | "Name": "TestName", 6 | "PipelineType": "COMPUTE" 7 | }, 8 | "ppResourceSignatures": [ 9 | "TestName0" 10 | ], 11 | "pCS": "Shader-CS" 12 | } 13 | ] 14 | } 15 | -------------------------------------------------------------------------------- /Tests/DiligentToolsTest/assets/RenderStates/RenderStateNotationParser/DefaultPipelineStates.json: -------------------------------------------------------------------------------- 1 | { 2 | "Defaults": { 3 | "Shader": { 4 | "SourceLanguage": "HLSL", 5 | "Desc": { 6 | "UseCombinedTextureSamplers": true 7 | } 8 | }, 9 | "ResourceSignature": { 10 | "CombinedSamplerSuffix": "TestSuffix", 11 | "UseCombinedTextureSamplers": true 12 | }, 13 | "RenderPass": { 14 | "pAttachments": [ 15 | { 16 | "Format": "RGBA16_FLOAT" 17 | } 18 | ] 19 | }, 20 | "Pipeline": { 21 | "Flags": "IGNORE_MISSING_VARIABLES", 22 | "ppResourceSignatures": [ 23 | { 24 | "Name": "Signature0" 25 | } 26 | ] 27 | } 28 | }, 29 | "Pipelines": [ 30 | { 31 | "PSODesc": { 32 | "Name": "Graphics-TestName" 33 | }, 34 | "GraphicsPipeline": { 35 | "PrimitiveTopology": "TRIANGLE_LIST", 36 | "pRenderPass": { 37 | "Name": "RenderPass0" 38 | } 39 | }, 40 | "pVS": { 41 | "Desc": { 42 | "Name": "Shader0-VS" 43 | } 44 | }, 45 | "pPS": { 46 | "Desc": { 47 | "Name": "Shader0-PS" 48 | } 49 | } 50 | } 51 | ] 52 | } 53 | -------------------------------------------------------------------------------- /Tests/DiligentToolsTest/assets/RenderStates/RenderStateNotationParser/DuplicationResources.json: -------------------------------------------------------------------------------- 1 | { 2 | "Shaders": [ 3 | { 4 | "Desc": { 5 | "Name": "TestName", 6 | "ShaderType": "VERTEX", 7 | "UseCombinedTextureSamplers": true 8 | }, 9 | "SourceLanguage": "HLSL", 10 | "FilePath": "TestPath0.hlsl", 11 | "EntryPoint": "VSMain" 12 | }, 13 | { 14 | "Desc": { 15 | "Name": "TestName", 16 | "ShaderType": "VERTEX", 17 | "UseCombinedTextureSamplers": true 18 | }, 19 | "SourceLanguage": "HLSL", 20 | "FilePath": "TestPath0.hlsl", 21 | "EntryPoint": "VSMain" 22 | } 23 | ], 24 | "RenderPasses": [ 25 | { 26 | "Name": "TestName" 27 | }, 28 | { 29 | "Name": "TestName" 30 | } 31 | ], 32 | "ResourceSignatures": [ 33 | { 34 | "Name": "TestName", 35 | "BindingIndex": 0, 36 | "Resources": [ 37 | { 38 | "Name": "TestResource", 39 | "ShaderStages": [ "VERTEX", "PIXEL" ], 40 | "VarType": "STATIC", 41 | "ResourceType": "CONSTANT_BUFFER" 42 | } 43 | ] 44 | }, 45 | { 46 | "Name": "TestName", 47 | "BindingIndex": 0, 48 | "Resources": [ 49 | { 50 | "Name": "TestResource", 51 | "ShaderStages": [ "VERTEX", "PIXEL" ], 52 | "VarType": "STATIC", 53 | "ResourceType": "CONSTANT_BUFFER" 54 | } 55 | ] 56 | } 57 | ] 58 | } 59 | -------------------------------------------------------------------------------- /Tests/DiligentToolsTest/assets/RenderStates/RenderStateNotationParser/GraphicsPipelineNotation.json: -------------------------------------------------------------------------------- 1 | { 2 | "Pipelines": [ 3 | { 4 | "GraphicsPipeline": { 5 | "PrimitiveTopology": "TRIANGLE_LIST", 6 | "pRenderPass": "RenderPassTest", 7 | "RTVFormats": { 8 | "0": "RGBA8_UNORM", 9 | "1": "RG16_FLOAT" 10 | } 11 | }, 12 | "PSODesc": { 13 | "Name": "TestName", 14 | "PipelineType": "MESH" 15 | }, 16 | "Flags": "IGNORE_MISSING_VARIABLES", 17 | "ppResourceSignatures": [ 18 | "TestName0", 19 | "TestName1" 20 | ], 21 | "pVS": "Shader-VS", 22 | "pPS": "Shader-PS", 23 | "pDS": "Shader-DS", 24 | "pHS": "Shader-HS", 25 | "pGS": "Shader-GS", 26 | "pAS": "Shader-AS", 27 | "pMS": "Shader-MS" 28 | } 29 | ] 30 | } 31 | -------------------------------------------------------------------------------- /Tests/DiligentToolsTest/assets/RenderStates/RenderStateNotationParser/InvalidEnum.json: -------------------------------------------------------------------------------- 1 | { 2 | "Pipelines": [ 3 | { 4 | "PSODesc": { 5 | "Name": "TestName", 6 | "PipelineType": "TEST_TYPE" 7 | }, 8 | "ppResourceSignatures": [ 9 | "TestName0" 10 | ], 11 | "pCS": "Shader-CS" 12 | } 13 | ] 14 | } 15 | -------------------------------------------------------------------------------- /Tests/DiligentToolsTest/assets/RenderStates/RenderStateNotationParser/InvalidJson.json: -------------------------------------------------------------------------------- 1 | { 2 | "Pipelines": [ 3 | { 4 | "PSODesc": { 5 | "Name": "TestName", 6 | "PipelineType": "COMPUTE" 7 | }, 8 | "ppResourceSignatures": [ 9 | "TestName0" 10 | ], 11 | "pCS": "Shader-CS 12 | } 13 | ] 14 | } 15 | -------------------------------------------------------------------------------- /Tests/DiligentToolsTest/assets/RenderStates/RenderStateNotationParser/InvalidKey.json: -------------------------------------------------------------------------------- 1 | { 2 | "Pipelines": [ 3 | { 4 | "PSODesc": { 5 | "Name": "TestName", 6 | "TestKey": "COMPUTE" 7 | }, 8 | "ppResourceSignatures": [ 9 | "TestName0" 10 | ], 11 | "pCS": "Shader-CS" 12 | } 13 | ] 14 | } 15 | -------------------------------------------------------------------------------- /Tests/DiligentToolsTest/assets/RenderStates/RenderStateNotationParser/InvalidTypeBase.json: -------------------------------------------------------------------------------- 1 | { 2 | "Pipelines": [ 3 | { 4 | "PSODesc": { 5 | "Name": "TestName", 6 | "PipelineType": 0 7 | }, 8 | "ppResourceSignatures": [ 9 | "TestName0" 10 | ], 11 | "pCS": "Shader-CS" 12 | } 13 | ] 14 | } 15 | -------------------------------------------------------------------------------- /Tests/DiligentToolsTest/assets/RenderStates/RenderStateNotationParser/InvalidTypeBitfield.json: -------------------------------------------------------------------------------- 1 | { 2 | "ResourceSignatures": [ 3 | { 4 | "Name": "TestName0", 5 | "Resources": [ 6 | { 7 | "Name": "TestName0", 8 | "ResourceType": "BUFFER_UAV", 9 | "ShaderStages": { 10 | "Stage0": "VERTEX", 11 | "Stage1": "PIXEL" 12 | }, 13 | "ArraySize": 1 14 | } 15 | ] 16 | } 17 | ] 18 | } 19 | -------------------------------------------------------------------------------- /Tests/DiligentToolsTest/assets/RenderStates/RenderStateNotationParser/InvalidTypeConstArray.json: -------------------------------------------------------------------------------- 1 | { 2 | "Pipelines": [ 3 | { 4 | "GraphicsPipeline": { 5 | "DepthStencilDesc": { 6 | "DepthEnable": false 7 | }, 8 | "RasterizerDesc": { 9 | "FillMode": "SOLID", 10 | "CullMode": "NONE" 11 | }, 12 | "NumRenderTargets": 1, 13 | "RTVFormats": [ 14 | "RGBA8_UNORM_SRGB" 15 | ], 16 | "PrimitiveTopology": "TRIANGLE_LIST" 17 | }, 18 | "PSODesc": { 19 | "Name": "Graphics-Pipeline0", 20 | "PipelineType": "GRAPHICS" 21 | }, 22 | "ppResourceSignatures": [ 23 | "TestName0" 24 | ], 25 | "pVS": "Shader0-VS", 26 | "pPS": "Shader0-PS" 27 | } 28 | ] 29 | } 30 | -------------------------------------------------------------------------------- /Tests/DiligentToolsTest/assets/RenderStates/RenderStateNotationParser/RedefinitionRenderPass.json: -------------------------------------------------------------------------------- 1 | { 2 | "RenderPasses": [ 3 | { 4 | "Name": "TestName" 5 | }, 6 | { 7 | "Name": "TestName", 8 | "pAttachments": [ 9 | { "Format": "RGBA8_UNORM" } 10 | ] 11 | } 12 | ] 13 | } 14 | -------------------------------------------------------------------------------- /Tests/DiligentToolsTest/assets/RenderStates/RenderStateNotationParser/RedefinitionResourceSignature.json: -------------------------------------------------------------------------------- 1 | { 2 | "ResourceSignatures": [ 3 | { 4 | "Name": "TestName", 5 | "BindingIndex": 0, 6 | "Resources": [ 7 | { 8 | "Name": "TestResource", 9 | "ShaderStages": [ "VERTEX", "PIXEL" ], 10 | "VarType": "STATIC", 11 | "ResourceType": "CONSTANT_BUFFER" 12 | } 13 | ] 14 | }, 15 | { 16 | "Name": "TestName", 17 | "BindingIndex": 1, 18 | "Resources": [ 19 | { 20 | "Name": "TestResource", 21 | "ShaderStages": [ "VERTEX", "PIXEL" ], 22 | "VarType": "STATIC", 23 | "ResourceType": "CONSTANT_BUFFER" 24 | } 25 | ] 26 | } 27 | ] 28 | } 29 | -------------------------------------------------------------------------------- /Tests/DiligentToolsTest/assets/RenderStates/RenderStateNotationParser/RedefinitionShader.json: -------------------------------------------------------------------------------- 1 | { 2 | "Shaders": [ 3 | { 4 | "Desc": { 5 | "Name": "TestName", 6 | "ShaderType": "VERTEX", 7 | "UseCombinedTextureSamplers": true 8 | }, 9 | "SourceLanguage": "HLSL", 10 | "FilePath": "TestPath0.hlsl", 11 | "EntryPoint": "VSMain" 12 | }, 13 | { 14 | "Desc": { 15 | "Name": "TestName", 16 | "ShaderType": "VERTEX", 17 | "UseCombinedTextureSamplers": true 18 | }, 19 | "SourceLanguage": "HLSL", 20 | "FilePath": "TestPath0.hlsl", 21 | "EntryPoint": "VSMain", 22 | "Macros": [ 23 | { 24 | "Name": "TestName", 25 | "Definition": "Definition0" 26 | } 27 | ] 28 | } 29 | ] 30 | } 31 | -------------------------------------------------------------------------------- /Tests/DiligentToolsTest/assets/RenderStates/RenderStateNotationParser/Reload/GraphicsPipelineNotation.json: -------------------------------------------------------------------------------- 1 | { 2 | "Pipelines": [ 3 | { 4 | "GraphicsPipeline": { 5 | "PrimitiveTopology": "TRIANGLE_STRIP", 6 | "pRenderPass": "RenderPassTest2", 7 | "RTVFormats": { 8 | "0": "RGBA8_UNORM_SRGB", 9 | "1": "RGBA32_FLOAT", 10 | "2": "R8_SINT" 11 | } 12 | }, 13 | "PSODesc": { 14 | "Name": "TestName", 15 | "PipelineType": "GRAPHICS" 16 | }, 17 | "Flags": "IGNORE_MISSING_VARIABLES", 18 | "ppResourceSignatures": [ 19 | "TestNameA", 20 | "TestNameB", 21 | "TestNameC" 22 | ], 23 | "pVS": "Shader2-VS", 24 | "pPS": "Shader2-PS", 25 | "pDS": "Shader2-DS", 26 | "pHS": "Shader2-HS", 27 | "pGS": "Shader2-GS" 28 | } 29 | ] 30 | } 31 | -------------------------------------------------------------------------------- /Tests/DiligentToolsTest/assets/RenderStates/RenderStateNotationParser/RenderPasses.json: -------------------------------------------------------------------------------- 1 | { 2 | "RenderPasses": [ 3 | { 4 | "Name": "TestName0" 5 | }, 6 | { 7 | "Name": "TestName1" 8 | }, 9 | { 10 | "Name": "TestName2" 11 | }, 12 | { 13 | "Name": "TestName3" 14 | } 15 | ] 16 | } 17 | -------------------------------------------------------------------------------- /Tests/DiligentToolsTest/assets/RenderStates/RenderStateNotationParser/RenderStatesLibrary.json: -------------------------------------------------------------------------------- 1 | { 2 | "Imports": [ 3 | "Shaders.json", 4 | "ResourceSignatures.json", 5 | "RenderPasses.json", 6 | "PipelineStates.json" 7 | ] 8 | } 9 | -------------------------------------------------------------------------------- /Tests/DiligentToolsTest/assets/RenderStates/RenderStateNotationParser/ResourceSignatures.json: -------------------------------------------------------------------------------- 1 | { 2 | 3 | "ResourceSignatures": [ 4 | { 5 | "Name": "TestName0" 6 | }, 7 | { 8 | "Name": "TestName1" 9 | } 10 | ] 11 | } 12 | -------------------------------------------------------------------------------- /Tests/DiligentToolsTest/assets/RenderStates/RenderStateNotationParser/Shaders.json: -------------------------------------------------------------------------------- 1 | { 2 | "Shaders": [ 3 | { 4 | "Desc": { 5 | "Name": "Shader0-VS", 6 | "ShaderType": "VERTEX", 7 | "UseCombinedTextureSamplers": true 8 | }, 9 | "SourceLanguage": "HLSL", 10 | "FilePath": "TestPath0.hlsl", 11 | "EntryPoint": "VSMain" 12 | }, 13 | { 14 | "Desc": { 15 | "Name": "Shader0-PS", 16 | "ShaderType": "PIXEL", 17 | "UseCombinedTextureSamplers": true 18 | }, 19 | "SourceLanguage": "HLSL", 20 | "FilePath": "TestPath0.hlsl", 21 | "EntryPoint": "PSMain" 22 | }, 23 | { 24 | "Desc": { 25 | "Name": "Shader1-CS", 26 | "ShaderType": "COMPUTE", 27 | "UseCombinedTextureSamplers": true 28 | }, 29 | "SourceLanguage": "HLSL", 30 | "FilePath": "TestPath01.hlsl", 31 | "EntryPoint": "CSMain" 32 | } 33 | ] 34 | } 35 | -------------------------------------------------------------------------------- /Tests/DiligentToolsTest/assets/RenderStates/RenderStateNotationParser/TilePipelineNotation.json: -------------------------------------------------------------------------------- 1 | { 2 | "Pipelines": [ 3 | { 4 | "PSODesc": { 5 | "Name": "TestName", 6 | "PipelineType": "TILE" 7 | }, 8 | "pTS": "Shader-TS" 9 | } 10 | ] 11 | } 12 | -------------------------------------------------------------------------------- /Tests/DiligentToolsTest/assets/RenderStates/RenderStatePackager/IgnoredSignatures.json: -------------------------------------------------------------------------------- 1 | { 2 | "Ignore": { 3 | "Signatures" : [ 4 | "IgnoredSignature1", 5 | "IgnoredSignature2", 6 | "IgnoredSignature3" 7 | ] 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /Tests/DiligentToolsTest/assets/RenderStates/RenderStatePackager/Import0.json: -------------------------------------------------------------------------------- 1 | { 2 | "Imports": [ 3 | "ResourceSignature.json" 4 | ] 5 | } 6 | -------------------------------------------------------------------------------- /Tests/DiligentToolsTest/assets/RenderStates/RenderStatePackager/Import1.json: -------------------------------------------------------------------------------- 1 | { 2 | "Imports": [ 3 | "ResourceSignature.json" 4 | ] 5 | } 6 | -------------------------------------------------------------------------------- /Tests/DiligentToolsTest/assets/RenderStates/RenderStatePackager/InvalidResources.json: -------------------------------------------------------------------------------- 1 | { 2 | "Pipelines": [ 3 | { 4 | "PSODesc": { 5 | "Name": "BrokenDraw", 6 | "PipelineType": "GRAPHICS" 7 | }, 8 | "pVS": { 9 | "Desc": { 10 | "Name": "BrokenShader-VS", 11 | "ShaderType": "VERTEX", 12 | "UseCombinedTextureSamplers": true 13 | }, 14 | "SourceLanguage": "HLSL", 15 | "FilePath": "BrokenShader.hlsl", 16 | "EntryPoint": "BrokenShaderVS" 17 | } 18 | } 19 | ] 20 | } 21 | -------------------------------------------------------------------------------- /Tests/DiligentToolsTest/assets/RenderStates/RenderStatePackager/MissingRenderPass.json: -------------------------------------------------------------------------------- 1 | { 2 | "Shaders": [ 3 | { 4 | "Desc": { 5 | "Name": "BlitTexture-VS", 6 | "ShaderType": "VERTEX", 7 | "UseCombinedTextureSamplers": true 8 | }, 9 | "SourceLanguage": "HLSL", 10 | "FilePath": "GraphicsPrimitives.hlsl", 11 | "EntryPoint": "VSBlitTexture" 12 | }, 13 | { 14 | "Desc": { 15 | "Name": "BlitTexture-PS", 16 | "ShaderType": "PIXEL", 17 | "UseCombinedTextureSamplers": true 18 | }, 19 | "SourceLanguage": "HLSL", 20 | "FilePath": "GraphicsPrimitives.hlsl", 21 | "EntryPoint": "PSBlitTexture" 22 | } 23 | ], 24 | 25 | "Pipelines": [ 26 | { 27 | "GraphicsPipeline": { 28 | "PrimitiveTopology": "TRIANGLE_LIST", 29 | "pRenderPass": "TestRenderPass" 30 | }, 31 | "PSODesc": { 32 | "Name": "BlitTexture", 33 | "PipelineType": "GRAPHICS" 34 | }, 35 | "pVS": "BlitTexture-VS", 36 | "pPS": "BlitTexture-PS" 37 | } 38 | ] 39 | } 40 | -------------------------------------------------------------------------------- /Tests/DiligentToolsTest/assets/RenderStates/RenderStatePackager/MissingResourceSignature.json: -------------------------------------------------------------------------------- 1 | { 2 | "Shaders": [ 3 | { 4 | "Desc": { 5 | "Name": "BlitTexture-VS", 6 | "ShaderType": "VERTEX", 7 | "UseCombinedTextureSamplers": true 8 | }, 9 | "SourceLanguage": "HLSL", 10 | "FilePath": "GraphicsPrimitives.hlsl", 11 | "EntryPoint": "VSBlitTexture" 12 | }, 13 | { 14 | "Desc": { 15 | "Name": "BlitTexture-PS", 16 | "ShaderType": "PIXEL", 17 | "UseCombinedTextureSamplers": true 18 | }, 19 | "SourceLanguage": "HLSL", 20 | "FilePath": "GraphicsPrimitives.hlsl", 21 | "EntryPoint": "PSBlitTexture" 22 | } 23 | ], 24 | 25 | "Pipelines": [ 26 | { 27 | "PSODesc": { 28 | "Name": "BlitTexture", 29 | "PipelineType": "GRAPHICS" 30 | }, 31 | "ppResourceSignatures": [ "TestResourceSignature" ], 32 | "pVS": "BlitTexture-VS", 33 | "pPS": "BlitTexture-PS" 34 | } 35 | ] 36 | } 37 | -------------------------------------------------------------------------------- /Tests/DiligentToolsTest/assets/RenderStates/RenderStatePackager/MissingShader.json: -------------------------------------------------------------------------------- 1 | { 2 | "Pipelines": [ 3 | { 4 | "PSODesc": { 5 | "Name": "ClearUnorderedAccessViewUint", 6 | "PipelineType": "COMPUTE", 7 | "ResourceLayout": { 8 | "DefaultVariableMergeStages": "COMPUTE", 9 | "Variables": [ 10 | { 11 | "ShaderStages": [ "COMPUTE" ], 12 | "Name": "TextureUAV", 13 | "Type": "DYNAMIC" 14 | } 15 | ] 16 | } 17 | }, 18 | "pCS": "ClearUnorderedAccessViewUint-CS" 19 | } 20 | ] 21 | } 22 | -------------------------------------------------------------------------------- /Tests/DiligentToolsTest/assets/RenderStates/RenderStatePackager/RenderStatesLibrary.json: -------------------------------------------------------------------------------- 1 | { 2 | "Imports": [ 3 | "GraphicsPrimitives.json", 4 | "ComputePrimitives.json" 5 | ] 6 | } 7 | -------------------------------------------------------------------------------- /Tests/DiligentToolsTest/assets/RenderStates/RenderStatePackager/ResourceSignature.json: -------------------------------------------------------------------------------- 1 | { 2 | "ResourceSignatures": [ 3 | { 4 | "Name": "TestName", 5 | "BindingIndex": 0, 6 | "Resources": [ 7 | { 8 | "Name": "TestResource", 9 | "ShaderStages": [ "VERTEX", "PIXEL" ], 10 | "VarType": "STATIC", 11 | "ResourceType": "CONSTANT_BUFFER" 12 | } 13 | ] 14 | } 15 | ] 16 | } 17 | -------------------------------------------------------------------------------- /Tests/DiligentToolsTest/assets/RenderStates/Sampler/SamplerDesc.json: -------------------------------------------------------------------------------- 1 | { 2 | "Name": "TestName", 3 | "MinFilter": "ANISOTROPIC", 4 | "MagFilter": "MAXIMUM_POINT", 5 | "MipFilter": "POINT", 6 | 7 | "AddressU": "MIRROR", 8 | "AddressV": "MIRROR_ONCE", 9 | "AddressW": "BORDER", 10 | "ComparisonFunc": "GREATER", 11 | "Flags": [ "SUBSAMPLED", "SUBSAMPLED_COARSE_RECONSTRUCTION" ], 12 | "UnnormalizedCoords": true, 13 | "BorderColor": [ 0.125, 0.5, 0.75, 1.0 ], 14 | "MipLODBias": 1.5, 15 | "MinLOD": 1.0, 16 | "MaxLOD": 4.0, 17 | "MaxAnisotropy": 16 18 | } 19 | -------------------------------------------------------------------------------- /Tests/DiligentToolsTest/assets/RenderStates/Shader/ShaderCreateInfo.json: -------------------------------------------------------------------------------- 1 | { 2 | "Desc": { 3 | "Name": "TestName", 4 | "ShaderType": "PIXEL", 5 | "UseCombinedTextureSamplers": true, 6 | "CombinedSamplerSuffix": "test" 7 | }, 8 | "FilePath": "TestPath", 9 | "EntryPoint": "TestEntryPoint", 10 | "SourceLanguage": "HLSL", 11 | "Macros": [ 12 | { 13 | "Name": "TestName0", 14 | "Definition": "TestDefenition0" 15 | }, 16 | { 17 | "Name": "TestName1", 18 | "Definition": "TestDefenition1" 19 | } 20 | ] 21 | } 22 | -------------------------------------------------------------------------------- /Tests/DiligentToolsTest/assets/RenderStates/Shader/ShaderDesc.json: -------------------------------------------------------------------------------- 1 | { 2 | "Name": "TestName", 3 | "ShaderType": "VERTEX", 4 | "UseCombinedTextureSamplers": true, 5 | "CombinedSamplerSuffix": "test" 6 | } 7 | -------------------------------------------------------------------------------- /Tests/DiligentToolsTest/assets/RenderStates/Shader/ShaderMacro.json: -------------------------------------------------------------------------------- 1 | { 2 | "Name": "TestName", 3 | "Definition": "TestDefinition" 4 | } 5 | -------------------------------------------------------------------------------- /Tests/DiligentToolsTest/assets/RenderStates/Shader/ShaderResourceDesc.json: -------------------------------------------------------------------------------- 1 | { 2 | "Name": "TestName", 3 | "Type": "BUFFER_UAV", 4 | "ArraySize": 2 5 | } 6 | -------------------------------------------------------------------------------- /Tests/DiligentToolsTest/assets/Shaders/BrokenShader.hlsl: -------------------------------------------------------------------------------- 1 | #include "Common.hlsli" 2 | 3 | void BrokenShaderVS() { 4 | error; 5 | } 6 | -------------------------------------------------------------------------------- /Tests/DiligentToolsTest/assets/Shaders/Common.hlsli: -------------------------------------------------------------------------------- 1 | #define TEXTURE_FLOAT_CLEAR 0.1234 2 | #define BUFFER_UINT_CLEAR 0 3 | 4 | uint PackColor(float4 Color) 5 | { 6 | return (uint(Color.r * 255) << 24) | (uint(Color.g * 255) << 16) | (uint(Color.b * 255) << 8) | uint(Color.a * 255); 7 | } 8 | 9 | float4 UnpackColor(uint Color) 10 | { 11 | float4 Result; 12 | Result.r = float((Color >> 24) & 0x000000FF) / 255.0f; 13 | Result.g = float((Color >> 16) & 0x000000FF) / 255.0f; 14 | Result.b = float((Color >> 8) & 0x000000FF) / 255.0f; 15 | Result.a = float((Color >> 0) & 0x000000FF) / 255.0f; 16 | return saturate(Result); 17 | } 18 | -------------------------------------------------------------------------------- /Tests/DiligentToolsTest/assets/Shaders/ComputePrimitives.hlsl: -------------------------------------------------------------------------------- 1 | #include "Common.hlsli" 2 | 3 | RWTexture2D TextureUAV; 4 | RWBuffer BufferUAV; 5 | 6 | [numthreads(8, 8, 1)] 7 | void CSClearUnorderedAccessViewUint(uint3 Id: SV_DispatchThreadID) 8 | { 9 | TextureUAV[Id.xy] = TEXTURE_FLOAT_CLEAR; 10 | } 11 | 12 | [numthreads(1, 1, 1)] 13 | void CSClearBufferCounter(uint3 Id: SV_DispatchThreadID) 14 | { 15 | BufferUAV[0] = BUFFER_UINT_CLEAR; 16 | } 17 | -------------------------------------------------------------------------------- /Tests/DiligentToolsTest/assets/Shaders/GraphicsPrimitives.hlsl: -------------------------------------------------------------------------------- 1 | #include "Common.hlsli" 2 | 3 | Texture2D TextureSRV; 4 | SamplerState TextureSRV_sampler; 5 | 6 | void VSBlitTexture(uint Id: SV_VertexID, out float4 Position: SV_Position, out float2 Texcoord: TEXCOORD) 7 | { 8 | Texcoord = float2((Id << 1) & 2, Id & 2); 9 | Position = float4(Texcoord * float2(2, -2) + float2(-1, 1), 1, 1); 10 | } 11 | 12 | float4 PSBlitTexture(float4 Position: SV_Position, float2 Texcoord: TEXCOORD): SV_TARGET0 13 | { 14 | return TextureSRV.Sample(TextureSRV_sampler, Texcoord); 15 | } 16 | 17 | -------------------------------------------------------------------------------- /Tests/IncludeTest/BaseStructAlignmentTest.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2019-2022 Diligent Graphics LLC 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | * 16 | * In no event and under no legal theory, whether in tort (including negligence), 17 | * contract, or otherwise, unless required by applicable law (such as deliberate 18 | * and grossly negligent acts) or agreed to in writing, shall any Contributor be 19 | * liable for any damages, including any direct, indirect, special, incidental, 20 | * or consequential damages of any character arising as a result of this License or 21 | * out of the use or inability to use the software (including but not limited to damages 22 | * for loss of goodwill, work stoppage, computer failure or malfunction, or any and 23 | * all other commercial damages or losses), even if such Contributor has been advised 24 | * of the possibility of such damages. 25 | */ 26 | 27 | #include "../../../DiligentCore/Primitives/interface/CheckBaseStructAlignment.hpp" 28 | #include "RenderStateNotation/interface/RenderStateNotationParser.h" 29 | 30 | namespace Diligent 31 | { 32 | 33 | namespace 34 | { 35 | 36 | CHECK_BASE_STRUCT_ALIGNMENT(PipelineStateNotation); 37 | 38 | } // namespace 39 | 40 | } // namespace Diligent 41 | -------------------------------------------------------------------------------- /Tests/IncludeTest/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | cmake_minimum_required (VERSION 3.10) 2 | 3 | project(DiligentTools-IncludeTest) 4 | 5 | file(GLOB_RECURSE SOURCE LIST_DIRECTORIES false *.cpp *.c) 6 | 7 | add_library(DiligentTools-IncludeTest ${SOURCE}) 8 | 9 | target_include_directories(DiligentTools-IncludeTest PRIVATE ../..) 10 | target_link_libraries(DiligentTools-IncludeTest PRIVATE Diligent-BuildSettings) 11 | set_common_target_properties(DiligentTools-IncludeTest) 12 | 13 | if(MSVC) 14 | set_target_properties(DiligentTools-IncludeTest PROPERTIES 15 | STATIC_LIBRARY_FLAGS "/IGNORE:4221" 16 | ) 17 | endif() 18 | 19 | source_group(TREE ${CMAKE_CURRENT_SOURCE_DIR} FILES ${SOURCE}) 20 | 21 | set_target_properties(DiligentTools-IncludeTest PROPERTIES 22 | FOLDER "DiligentTools/Tests" 23 | ) 24 | -------------------------------------------------------------------------------- /Tests/IncludeTest/RenderStateNotation/RenderStateNotationLoaderH_test.c: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2019-2022 Diligent Graphics LLC 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | * 16 | * In no event and under no legal theory, whether in tort (including negligence), 17 | * contract, or otherwise, unless required by applicable law (such as deliberate 18 | * and grossly negligent acts) or agreed to in writing, shall any Contributor be 19 | * liable for any damages, including any direct, indirect, special, incidental, 20 | * or consequential damages of any character arising as a result of this License or 21 | * out of the use or inability to use the software (including but not limited to damages 22 | * for loss of goodwill, work stoppage, computer failure or malfunction, or any and 23 | * all other commercial damages or losses), even if such Contributor has been advised 24 | * of the possibility of such damages. 25 | */ 26 | 27 | #include "RenderStateNotation/interface/RenderStateNotationLoader.h" 28 | -------------------------------------------------------------------------------- /Tests/IncludeTest/RenderStateNotation/RenderStateNotationLoaderH_test.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2019-2022 Diligent Graphics LLC 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | * 16 | * In no event and under no legal theory, whether in tort (including negligence), 17 | * contract, or otherwise, unless required by applicable law (such as deliberate 18 | * and grossly negligent acts) or agreed to in writing, shall any Contributor be 19 | * liable for any damages, including any direct, indirect, special, incidental, 20 | * or consequential damages of any character arising as a result of this License or 21 | * out of the use or inability to use the software (including but not limited to damages 22 | * for loss of goodwill, work stoppage, computer failure or malfunction, or any and 23 | * all other commercial damages or losses), even if such Contributor has been advised 24 | * of the possibility of such damages. 25 | */ 26 | 27 | #include "RenderStateNotation/interface/RenderStateNotationLoader.h" 28 | -------------------------------------------------------------------------------- /Tests/IncludeTest/RenderStateNotation/RenderStateNotationParserH_test.c: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2019-2022 Diligent Graphics LLC 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | * 16 | * In no event and under no legal theory, whether in tort (including negligence), 17 | * contract, or otherwise, unless required by applicable law (such as deliberate 18 | * and grossly negligent acts) or agreed to in writing, shall any Contributor be 19 | * liable for any damages, including any direct, indirect, special, incidental, 20 | * or consequential damages of any character arising as a result of this License or 21 | * out of the use or inability to use the software (including but not limited to damages 22 | * for loss of goodwill, work stoppage, computer failure or malfunction, or any and 23 | * all other commercial damages or losses), even if such Contributor has been advised 24 | * of the possibility of such damages. 25 | */ 26 | 27 | #include "RenderStateNotation/interface/RenderStateNotationParser.h" 28 | -------------------------------------------------------------------------------- /Tests/IncludeTest/RenderStateNotation/RenderStateNotationParserH_test.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2019-2022 Diligent Graphics LLC 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | * 16 | * In no event and under no legal theory, whether in tort (including negligence), 17 | * contract, or otherwise, unless required by applicable law (such as deliberate 18 | * and grossly negligent acts) or agreed to in writing, shall any Contributor be 19 | * liable for any damages, including any direct, indirect, special, incidental, 20 | * or consequential damages of any character arising as a result of this License or 21 | * out of the use or inability to use the software (including but not limited to damages 22 | * for loss of goodwill, work stoppage, computer failure or malfunction, or any and 23 | * all other commercial damages or losses), even if such Contributor has been advised 24 | * of the possibility of such damages. 25 | */ 26 | 27 | #include "RenderStateNotation/interface/RenderStateNotationParser.h" 28 | -------------------------------------------------------------------------------- /Tests/IncludeTest/TextureLoader/BCToolsH_test.c: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2019-2022 Diligent Graphics LLC 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | * 16 | * In no event and under no legal theory, whether in tort (including negligence), 17 | * contract, or otherwise, unless required by applicable law (such as deliberate 18 | * and grossly negligent acts) or agreed to in writing, shall any Contributor be 19 | * liable for any damages, including any direct, indirect, special, incidental, 20 | * or consequential damages of any character arising as a result of this License or 21 | * out of the use or inability to use the software (including but not limited to damages 22 | * for loss of goodwill, work stoppage, computer failure or malfunction, or any and 23 | * all other commercial damages or losses), even if such Contributor has been advised 24 | * of the possibility of such damages. 25 | */ 26 | 27 | #include "TextureLoader/interface/BCTools.h" 28 | -------------------------------------------------------------------------------- /Tests/IncludeTest/TextureLoader/BCToolsH_test.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2019-2022 Diligent Graphics LLC 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | * 16 | * In no event and under no legal theory, whether in tort (including negligence), 17 | * contract, or otherwise, unless required by applicable law (such as deliberate 18 | * and grossly negligent acts) or agreed to in writing, shall any Contributor be 19 | * liable for any damages, including any direct, indirect, special, incidental, 20 | * or consequential damages of any character arising as a result of this License or 21 | * out of the use or inability to use the software (including but not limited to damages 22 | * for loss of goodwill, work stoppage, computer failure or malfunction, or any and 23 | * all other commercial damages or losses), even if such Contributor has been advised 24 | * of the possibility of such damages. 25 | */ 26 | 27 | #include "TextureLoader/interface/BCTools.h" 28 | -------------------------------------------------------------------------------- /Tests/IncludeTest/TextureLoader/ImageH_test.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2019-2022 Diligent Graphics LLC 3 | * Copyright 2015-2019 Egor Yusov 4 | * 5 | * Licensed under the Apache License, Version 2.0 (the "License"); 6 | * you may not use this file except in compliance with the License. 7 | * You may obtain a copy of the License at 8 | * 9 | * http://www.apache.org/licenses/LICENSE-2.0 10 | * 11 | * Unless required by applicable law or agreed to in writing, software 12 | * distributed under the License is distributed on an "AS IS" BASIS, 13 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 | * See the License for the specific language governing permissions and 15 | * limitations under the License. 16 | * 17 | * In no event and under no legal theory, whether in tort (including negligence), 18 | * contract, or otherwise, unless required by applicable law (such as deliberate 19 | * and grossly negligent acts) or agreed to in writing, shall any Contributor be 20 | * liable for any damages, including any direct, indirect, special, incidental, 21 | * or consequential damages of any character arising as a result of this License or 22 | * out of the use or inability to use the software (including but not limited to damages 23 | * for loss of goodwill, work stoppage, computer failure or malfunction, or any and 24 | * all other commercial damages or losses), even if such Contributor has been advised 25 | * of the possibility of such damages. 26 | */ 27 | 28 | #include "TextureLoader/interface/Image.h" 29 | -------------------------------------------------------------------------------- /Tests/IncludeTest/TextureLoader/TextureLoaderH_test.c: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2019-2022 Diligent Graphics LLC 3 | * Copyright 2015-2019 Egor Yusov 4 | * 5 | * Licensed under the Apache License, Version 2.0 (the "License"); 6 | * you may not use this file except in compliance with the License. 7 | * You may obtain a copy of the License at 8 | * 9 | * http://www.apache.org/licenses/LICENSE-2.0 10 | * 11 | * Unless required by applicable law or agreed to in writing, software 12 | * distributed under the License is distributed on an "AS IS" BASIS, 13 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 | * See the License for the specific language governing permissions and 15 | * limitations under the License. 16 | * 17 | * In no event and under no legal theory, whether in tort (including negligence), 18 | * contract, or otherwise, unless required by applicable law (such as deliberate 19 | * and grossly negligent acts) or agreed to in writing, shall any Contributor be 20 | * liable for any damages, including any direct, indirect, special, incidental, 21 | * or consequential damages of any character arising as a result of this License or 22 | * out of the use or inability to use the software (including but not limited to damages 23 | * for loss of goodwill, work stoppage, computer failure or malfunction, or any and 24 | * all other commercial damages or losses), even if such Contributor has been advised 25 | * of the possibility of such damages. 26 | */ 27 | 28 | #include "TextureLoader/interface/TextureLoader.h" 29 | -------------------------------------------------------------------------------- /Tests/IncludeTest/TextureLoader/TextureLoaderH_test.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2019-2022 Diligent Graphics LLC 3 | * Copyright 2015-2019 Egor Yusov 4 | * 5 | * Licensed under the Apache License, Version 2.0 (the "License"); 6 | * you may not use this file except in compliance with the License. 7 | * You may obtain a copy of the License at 8 | * 9 | * http://www.apache.org/licenses/LICENSE-2.0 10 | * 11 | * Unless required by applicable law or agreed to in writing, software 12 | * distributed under the License is distributed on an "AS IS" BASIS, 13 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 | * See the License for the specific language governing permissions and 15 | * limitations under the License. 16 | * 17 | * In no event and under no legal theory, whether in tort (including negligence), 18 | * contract, or otherwise, unless required by applicable law (such as deliberate 19 | * and grossly negligent acts) or agreed to in writing, shall any Contributor be 20 | * liable for any damages, including any direct, indirect, special, incidental, 21 | * or consequential damages of any character arising as a result of this License or 22 | * out of the use or inability to use the software (including but not limited to damages 23 | * for loss of goodwill, work stoppage, computer failure or malfunction, or any and 24 | * all other commercial damages or losses), even if such Contributor has been advised 25 | * of the possibility of such damages. 26 | */ 27 | 28 | #include "TextureLoader/interface/TextureLoader.h" 29 | -------------------------------------------------------------------------------- /Tests/IncludeTest/TextureLoader/TextureUtilitiesH_test.c: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2019-2022 Diligent Graphics LLC 3 | * Copyright 2015-2019 Egor Yusov 4 | * 5 | * Licensed under the Apache License, Version 2.0 (the "License"); 6 | * you may not use this file except in compliance with the License. 7 | * You may obtain a copy of the License at 8 | * 9 | * http://www.apache.org/licenses/LICENSE-2.0 10 | * 11 | * Unless required by applicable law or agreed to in writing, software 12 | * distributed under the License is distributed on an "AS IS" BASIS, 13 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 | * See the License for the specific language governing permissions and 15 | * limitations under the License. 16 | * 17 | * In no event and under no legal theory, whether in tort (including negligence), 18 | * contract, or otherwise, unless required by applicable law (such as deliberate 19 | * and grossly negligent acts) or agreed to in writing, shall any Contributor be 20 | * liable for any damages, including any direct, indirect, special, incidental, 21 | * or consequential damages of any character arising as a result of this License or 22 | * out of the use or inability to use the software (including but not limited to damages 23 | * for loss of goodwill, work stoppage, computer failure or malfunction, or any and 24 | * all other commercial damages or losses), even if such Contributor has been advised 25 | * of the possibility of such damages. 26 | */ 27 | 28 | #include "TextureLoader/interface/TextureUtilities.h" 29 | -------------------------------------------------------------------------------- /Tests/IncludeTest/TextureLoader/TextureUtilitiesH_test.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2019-2022 Diligent Graphics LLC 3 | * Copyright 2015-2019 Egor Yusov 4 | * 5 | * Licensed under the Apache License, Version 2.0 (the "License"); 6 | * you may not use this file except in compliance with the License. 7 | * You may obtain a copy of the License at 8 | * 9 | * http://www.apache.org/licenses/LICENSE-2.0 10 | * 11 | * Unless required by applicable law or agreed to in writing, software 12 | * distributed under the License is distributed on an "AS IS" BASIS, 13 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 | * See the License for the specific language governing permissions and 15 | * limitations under the License. 16 | * 17 | * In no event and under no legal theory, whether in tort (including negligence), 18 | * contract, or otherwise, unless required by applicable law (such as deliberate 19 | * and grossly negligent acts) or agreed to in writing, shall any Contributor be 20 | * liable for any damages, including any direct, indirect, special, incidental, 21 | * or consequential damages of any character arising as a result of this License or 22 | * out of the use or inability to use the software (including but not limited to damages 23 | * for loss of goodwill, work stoppage, computer failure or malfunction, or any and 24 | * all other commercial damages or losses), even if such Contributor has been advised 25 | * of the possibility of such damages. 26 | */ 27 | 28 | #include "TextureLoader/interface/TextureUtilities.h" 29 | -------------------------------------------------------------------------------- /TextureLoader/include/pch.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2019-2022 Diligent Graphics LLC 3 | * Copyright 2015-2019 Egor Yusov 4 | * 5 | * Licensed under the Apache License, Version 2.0 (the "License"); 6 | * you may not use this file except in compliance with the License. 7 | * You may obtain a copy of the License at 8 | * 9 | * http://www.apache.org/licenses/LICENSE-2.0 10 | * 11 | * Unless required by applicable law or agreed to in writing, software 12 | * distributed under the License is distributed on an "AS IS" BASIS, 13 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 | * See the License for the specific language governing permissions and 15 | * limitations under the License. 16 | * 17 | * In no event and under no legal theory, whether in tort (including negligence), 18 | * contract, or otherwise, unless required by applicable law (such as deliberate 19 | * and grossly negligent acts) or agreed to in writing, shall any Contributor be 20 | * liable for any damages, including any direct, indirect, special, incidental, 21 | * or consequential damages of any character arising as a result of this License or 22 | * out of the use or inability to use the software (including but not limited to damages 23 | * for loss of goodwill, work stoppage, computer failure or malfunction, or any and 24 | * all other commercial damages or losses), even if such Contributor has been advised 25 | * of the possibility of such damages. 26 | */ 27 | 28 | #pragma once 29 | 30 | #include "BasicTypes.h" 31 | #include "RenderDevice.h" 32 | #include "DeviceContext.h" 33 | #include "Errors.hpp" 34 | #include "DebugUtilities.hpp" 35 | -------------------------------------------------------------------------------- /TextureLoader/src/STBImpl.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2019-2024 Diligent Graphics LLC 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | * 16 | * In no event and under no legal theory, whether in tort (including negligence), 17 | * contract, or otherwise, unless required by applicable law (such as deliberate 18 | * and grossly negligent acts) or agreed to in writing, shall any Contributor be 19 | * liable for any damages, including any direct, indirect, special, incidental, 20 | * or consequential damages of any character arising as a result of this License or 21 | * out of the use or inability to use the software (including but not limited to damages 22 | * for loss of goodwill, work stoppage, computer failure or malfunction, or any and 23 | * all other commercial damages or losses), even if such Contributor has been advised 24 | * of the possibility of such damages. 25 | */ 26 | 27 | #include 28 | #define STB_DXT_IMPLEMENTATION 29 | #include "../../ThirdParty/stb/stb_dxt.h" 30 | -------------------------------------------------------------------------------- /ThirdParty/imGuIZMO.quat/license.txt: -------------------------------------------------------------------------------- 1 | BSD 2-Clause License 2 | 3 | Copyright (c) 2018 Michele Morrone 4 | All rights reserved. 5 | 6 | Redistribution and use in source and binary forms, with or without 7 | modification, are permitted provided that the following conditions are met: 8 | 9 | 1. Redistributions of source code must retain the above copyright notice, this 10 | list of conditions and the following disclaimer. 11 | 12 | 2. Redistributions in binary form must reproduce the above copyright notice, 13 | this list of conditions and the following disclaimer in the documentation 14 | and/or other materials provided with the distribution. 15 | 16 | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" 17 | AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 18 | IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE 19 | DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE 20 | FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 21 | DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR 22 | SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER 23 | CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, 24 | OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 25 | OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -------------------------------------------------------------------------------- /ThirdParty/imgui_v1.85/imgui_impl_osx_v1.85.h: -------------------------------------------------------------------------------- 1 | // dear imgui: Platform Backend for OSX / Cocoa 2 | // This needs to be used along with a Renderer (e.g. OpenGL2, OpenGL3, Vulkan, Metal..) 3 | // [ALPHA] Early backend, not well tested. If you want a portable application, prefer using the GLFW or SDL platform Backends on Mac. 4 | 5 | // Implemented features: 6 | // [X] Platform: Mouse cursor shape and visibility. Disable with 'io.ConfigFlags |= ImGuiConfigFlags_NoMouseCursorChange'. 7 | // [X] Platform: OSX clipboard is supported within core Dear ImGui (no specific code in this backend). 8 | // Issues: 9 | // [ ] Platform: Keys are all generally very broken. Best using [event keycode] and not [event characters].. 10 | 11 | // You can use unmodified imgui_impl_* files in your project. See examples/ folder for examples of using this. 12 | // Prefer including the entire imgui/ repository into your project (either as a copy or as a submodule), and only build the backends you need. 13 | // If you are new to Dear ImGui, read documentation from the docs/ folder + read the top of imgui.cpp. 14 | // Read online: https://github.com/ocornut/imgui/tree/master/docs 15 | 16 | #include "imgui.h" // IMGUI_IMPL_API 17 | 18 | @class NSEvent; 19 | @class NSView; 20 | 21 | IMGUI_IMPL_API bool ImGui_ImplOSX_Init(); 22 | IMGUI_IMPL_API void ImGui_ImplOSX_Shutdown(); 23 | IMGUI_IMPL_API void ImGui_ImplOSX_NewFrame(NSView* _Nullable view); 24 | IMGUI_IMPL_API bool ImGui_ImplOSX_HandleEvent(NSEvent* _Nonnull event, NSView* _Nullable view); 25 | -------------------------------------------------------------------------------- /ThirdParty/libjpeg-9e/jconfig.bcc: -------------------------------------------------------------------------------- 1 | /* jconfig.bcc --- jconfig.h for Borland C (Turbo C) on MS-DOS or OS/2. */ 2 | /* see jconfig.txt for explanations */ 3 | 4 | #define HAVE_PROTOTYPES 5 | #define HAVE_UNSIGNED_CHAR 6 | #define HAVE_UNSIGNED_SHORT 7 | /* #define void char */ 8 | /* #define const */ 9 | #undef CHAR_IS_UNSIGNED 10 | #define HAVE_STDDEF_H 11 | #define HAVE_STDLIB_H 12 | #undef NEED_BSD_STRINGS 13 | #undef NEED_SYS_TYPES_H 14 | #ifdef __MSDOS__ 15 | #define NEED_FAR_POINTERS /* for small or medium memory model */ 16 | #endif 17 | #undef NEED_SHORT_EXTERNAL_NAMES 18 | #undef INCOMPLETE_TYPES_BROKEN /* this assumes you have -w-stu in CFLAGS */ 19 | 20 | #ifdef JPEG_INTERNALS 21 | 22 | #undef RIGHT_SHIFT_IS_UNSIGNED 23 | 24 | #ifdef __MSDOS__ 25 | #define USE_MSDOS_MEMMGR /* Define this if you use jmemdos.c */ 26 | #define MAX_ALLOC_CHUNK 65520L /* Maximum request to malloc() */ 27 | #define USE_FMEM /* Borland has _fmemcpy() and _fmemset() */ 28 | #endif 29 | 30 | #endif /* JPEG_INTERNALS */ 31 | 32 | #ifdef JPEG_CJPEG_DJPEG 33 | 34 | #define BMP_SUPPORTED /* BMP image file format */ 35 | #define GIF_SUPPORTED /* GIF image file format */ 36 | #define PPM_SUPPORTED /* PBMPLUS PPM/PGM image file format */ 37 | #undef RLE_SUPPORTED /* Utah RLE image file format */ 38 | #define TARGA_SUPPORTED /* Targa image file format */ 39 | 40 | #define TWO_FILE_COMMANDLINE 41 | #define USE_SETMODE /* Borland has setmode() */ 42 | #ifdef __MSDOS__ 43 | #define NEED_SIGNAL_CATCHER /* Define this if you use jmemdos.c */ 44 | #endif 45 | #undef DONT_USE_B_MODE 46 | #undef PROGRESS_REPORT /* optional */ 47 | 48 | #endif /* JPEG_CJPEG_DJPEG */ 49 | -------------------------------------------------------------------------------- /ThirdParty/libjpeg-9e/jconfig.cfg: -------------------------------------------------------------------------------- 1 | /* jconfig.cfg --- source file edited by configure script */ 2 | /* see jconfig.txt for explanations */ 3 | 4 | #undef HAVE_PROTOTYPES 5 | #undef HAVE_UNSIGNED_CHAR 6 | #undef HAVE_UNSIGNED_SHORT 7 | #undef void 8 | #undef const 9 | #undef CHAR_IS_UNSIGNED 10 | #undef HAVE_STDDEF_H 11 | #undef HAVE_STDLIB_H 12 | #undef HAVE_LOCALE_H 13 | #undef NEED_BSD_STRINGS 14 | #undef NEED_SYS_TYPES_H 15 | #undef NEED_FAR_POINTERS 16 | #undef NEED_SHORT_EXTERNAL_NAMES 17 | /* Define this if you get warnings about undefined structures. */ 18 | #undef INCOMPLETE_TYPES_BROKEN 19 | 20 | /* Define "boolean" as unsigned char, not enum, on Windows systems. */ 21 | #ifdef _WIN32 22 | #ifndef __RPCNDR_H__ /* don't conflict if rpcndr.h already read */ 23 | typedef unsigned char boolean; 24 | #endif 25 | #ifndef FALSE /* in case these macros already exist */ 26 | #define FALSE 0 /* values of boolean */ 27 | #endif 28 | #ifndef TRUE 29 | #define TRUE 1 30 | #endif 31 | #define HAVE_BOOLEAN /* prevent jmorecfg.h from redefining it */ 32 | #endif 33 | 34 | #ifdef JPEG_INTERNALS 35 | 36 | #undef RIGHT_SHIFT_IS_UNSIGNED 37 | #undef INLINE 38 | /* These are for configuring the JPEG memory manager. */ 39 | #undef DEFAULT_MAX_MEM 40 | #undef NO_MKTEMP 41 | 42 | #endif /* JPEG_INTERNALS */ 43 | 44 | #ifdef JPEG_CJPEG_DJPEG 45 | 46 | #define BMP_SUPPORTED /* BMP image file format */ 47 | #define GIF_SUPPORTED /* GIF image file format */ 48 | #define PPM_SUPPORTED /* PBMPLUS PPM/PGM image file format */ 49 | #undef RLE_SUPPORTED /* Utah RLE image file format */ 50 | #define TARGA_SUPPORTED /* Targa image file format */ 51 | 52 | #undef TWO_FILE_COMMANDLINE 53 | #undef NEED_SIGNAL_CATCHER 54 | #undef DONT_USE_B_MODE 55 | 56 | /* Define this if you want percent-done progress reports from cjpeg/djpeg. */ 57 | #undef PROGRESS_REPORT 58 | 59 | #endif /* JPEG_CJPEG_DJPEG */ 60 | -------------------------------------------------------------------------------- /ThirdParty/libjpeg-9e/jconfig.dj: -------------------------------------------------------------------------------- 1 | /* jconfig.dj --- jconfig.h for DJGPP (Delorie's GNU C port) on MS-DOS. */ 2 | /* see jconfig.txt for explanations */ 3 | 4 | #define HAVE_PROTOTYPES 5 | #define HAVE_UNSIGNED_CHAR 6 | #define HAVE_UNSIGNED_SHORT 7 | /* #define void char */ 8 | /* #define const */ 9 | #undef CHAR_IS_UNSIGNED 10 | #define HAVE_STDDEF_H 11 | #define HAVE_STDLIB_H 12 | #undef NEED_BSD_STRINGS 13 | #undef NEED_SYS_TYPES_H 14 | #undef NEED_FAR_POINTERS /* DJGPP uses flat 32-bit addressing */ 15 | #undef NEED_SHORT_EXTERNAL_NAMES 16 | #undef INCOMPLETE_TYPES_BROKEN 17 | 18 | #ifdef JPEG_INTERNALS 19 | 20 | #undef RIGHT_SHIFT_IS_UNSIGNED 21 | 22 | #endif /* JPEG_INTERNALS */ 23 | 24 | #ifdef JPEG_CJPEG_DJPEG 25 | 26 | #define BMP_SUPPORTED /* BMP image file format */ 27 | #define GIF_SUPPORTED /* GIF image file format */ 28 | #define PPM_SUPPORTED /* PBMPLUS PPM/PGM image file format */ 29 | #undef RLE_SUPPORTED /* Utah RLE image file format */ 30 | #define TARGA_SUPPORTED /* Targa image file format */ 31 | 32 | #undef TWO_FILE_COMMANDLINE /* optional */ 33 | #define USE_SETMODE /* Needed to make one-file style work in DJGPP */ 34 | #undef NEED_SIGNAL_CATCHER /* Define this if you use jmemname.c */ 35 | #undef DONT_USE_B_MODE 36 | #undef PROGRESS_REPORT /* optional */ 37 | 38 | #endif /* JPEG_CJPEG_DJPEG */ 39 | -------------------------------------------------------------------------------- /ThirdParty/libjpeg-9e/jconfig.h: -------------------------------------------------------------------------------- 1 | /* jconfig.vc --- jconfig.h for Microsoft Visual C++ on Windows 95 or NT. */ 2 | /* see jconfig.txt for explanations */ 3 | 4 | #define HAVE_PROTOTYPES 5 | #define HAVE_UNSIGNED_CHAR 6 | #define HAVE_UNSIGNED_SHORT 7 | /* #define void char */ 8 | /* #define const */ 9 | #undef CHAR_IS_UNSIGNED 10 | #define HAVE_STDDEF_H 11 | #define HAVE_STDLIB_H 12 | #undef NEED_BSD_STRINGS 13 | #undef NEED_SYS_TYPES_H 14 | #undef NEED_FAR_POINTERS /* we presume a 32-bit flat memory model */ 15 | #undef NEED_SHORT_EXTERNAL_NAMES 16 | #undef INCOMPLETE_TYPES_BROKEN 17 | 18 | /* Define "boolean" as unsigned char, not enum, per Windows custom */ 19 | #ifndef __RPCNDR_H__ /* don't conflict if rpcndr.h already read */ 20 | typedef unsigned char boolean; 21 | #endif 22 | #ifndef FALSE /* in case these macros already exist */ 23 | #define FALSE 0 /* values of boolean */ 24 | #endif 25 | #ifndef TRUE 26 | #define TRUE 1 27 | #endif 28 | #define HAVE_BOOLEAN /* prevent jmorecfg.h from redefining it */ 29 | 30 | 31 | #ifdef JPEG_INTERNALS 32 | 33 | #undef RIGHT_SHIFT_IS_UNSIGNED 34 | 35 | #endif /* JPEG_INTERNALS */ 36 | 37 | #ifdef JPEG_CJPEG_DJPEG 38 | 39 | #define BMP_SUPPORTED /* BMP image file format */ 40 | #define GIF_SUPPORTED /* GIF image file format */ 41 | #define PPM_SUPPORTED /* PBMPLUS PPM/PGM image file format */ 42 | #undef RLE_SUPPORTED /* Utah RLE image file format */ 43 | #define TARGA_SUPPORTED /* Targa image file format */ 44 | 45 | #define TWO_FILE_COMMANDLINE /* optional */ 46 | #define USE_SETMODE /* Microsoft has setmode() */ 47 | #undef NEED_SIGNAL_CATCHER 48 | #undef DONT_USE_B_MODE 49 | #undef PROGRESS_REPORT /* optional */ 50 | 51 | #endif /* JPEG_CJPEG_DJPEG */ 52 | -------------------------------------------------------------------------------- /ThirdParty/libjpeg-9e/jconfig.mac: -------------------------------------------------------------------------------- 1 | /* jconfig.mac --- jconfig.h for CodeWarrior on Apple Macintosh */ 2 | /* see jconfig.txt for explanations */ 3 | 4 | #define HAVE_PROTOTYPES 5 | #define HAVE_UNSIGNED_CHAR 6 | #define HAVE_UNSIGNED_SHORT 7 | /* #define void char */ 8 | /* #define const */ 9 | #undef CHAR_IS_UNSIGNED 10 | #define HAVE_STDDEF_H 11 | #define HAVE_STDLIB_H 12 | #undef NEED_BSD_STRINGS 13 | #undef NEED_SYS_TYPES_H 14 | #undef NEED_FAR_POINTERS 15 | #undef NEED_SHORT_EXTERNAL_NAMES 16 | #undef INCOMPLETE_TYPES_BROKEN 17 | 18 | #ifdef JPEG_INTERNALS 19 | 20 | #undef RIGHT_SHIFT_IS_UNSIGNED 21 | 22 | #define USE_MAC_MEMMGR /* Define this if you use jmemmac.c */ 23 | 24 | #define ALIGN_TYPE long /* Needed for 680x0 Macs */ 25 | 26 | #endif /* JPEG_INTERNALS */ 27 | 28 | #ifdef JPEG_CJPEG_DJPEG 29 | 30 | #define BMP_SUPPORTED /* BMP image file format */ 31 | #define GIF_SUPPORTED /* GIF image file format */ 32 | #define PPM_SUPPORTED /* PBMPLUS PPM/PGM image file format */ 33 | #undef RLE_SUPPORTED /* Utah RLE image file format */ 34 | #define TARGA_SUPPORTED /* Targa image file format */ 35 | 36 | #define USE_CCOMMAND /* Command line reader for Macintosh */ 37 | #define TWO_FILE_COMMANDLINE /* Binary I/O thru stdin/stdout doesn't work */ 38 | 39 | #undef NEED_SIGNAL_CATCHER 40 | #undef DONT_USE_B_MODE 41 | #undef PROGRESS_REPORT /* optional */ 42 | 43 | #endif /* JPEG_CJPEG_DJPEG */ 44 | -------------------------------------------------------------------------------- /ThirdParty/libjpeg-9e/jconfig.manx: -------------------------------------------------------------------------------- 1 | /* jconfig.manx --- jconfig.h for Amiga systems using Manx Aztec C ver 5.x. */ 2 | /* see jconfig.txt for explanations */ 3 | 4 | #define HAVE_PROTOTYPES 5 | #define HAVE_UNSIGNED_CHAR 6 | #define HAVE_UNSIGNED_SHORT 7 | /* #define void char */ 8 | /* #define const */ 9 | #undef CHAR_IS_UNSIGNED 10 | #define HAVE_STDDEF_H 11 | #define HAVE_STDLIB_H 12 | #undef NEED_BSD_STRINGS 13 | #undef NEED_SYS_TYPES_H 14 | #undef NEED_FAR_POINTERS 15 | #undef NEED_SHORT_EXTERNAL_NAMES 16 | #undef INCOMPLETE_TYPES_BROKEN 17 | 18 | #ifdef JPEG_INTERNALS 19 | 20 | #undef RIGHT_SHIFT_IS_UNSIGNED 21 | 22 | #define TEMP_DIRECTORY "JPEGTMP:" /* recommended setting for Amiga */ 23 | 24 | #define SHORTxSHORT_32 /* produces better DCT code with Aztec C */ 25 | 26 | #endif /* JPEG_INTERNALS */ 27 | 28 | #ifdef JPEG_CJPEG_DJPEG 29 | 30 | #define BMP_SUPPORTED /* BMP image file format */ 31 | #define GIF_SUPPORTED /* GIF image file format */ 32 | #define PPM_SUPPORTED /* PBMPLUS PPM/PGM image file format */ 33 | #undef RLE_SUPPORTED /* Utah RLE image file format */ 34 | #define TARGA_SUPPORTED /* Targa image file format */ 35 | 36 | #define TWO_FILE_COMMANDLINE 37 | #define NEED_SIGNAL_CATCHER 38 | #undef DONT_USE_B_MODE 39 | #undef PROGRESS_REPORT /* optional */ 40 | 41 | #define signal_catcher _abort /* hack for Aztec C naming requirements */ 42 | 43 | #endif /* JPEG_CJPEG_DJPEG */ 44 | -------------------------------------------------------------------------------- /ThirdParty/libjpeg-9e/jconfig.mc6: -------------------------------------------------------------------------------- 1 | /* jconfig.mc6 --- jconfig.h for Microsoft C on MS-DOS, version 6.00A & up. */ 2 | /* see jconfig.txt for explanations */ 3 | 4 | #define HAVE_PROTOTYPES 5 | #define HAVE_UNSIGNED_CHAR 6 | #define HAVE_UNSIGNED_SHORT 7 | /* #define void char */ 8 | /* #define const */ 9 | #undef CHAR_IS_UNSIGNED 10 | #define HAVE_STDDEF_H 11 | #define HAVE_STDLIB_H 12 | #undef NEED_BSD_STRINGS 13 | #undef NEED_SYS_TYPES_H 14 | #define NEED_FAR_POINTERS /* for small or medium memory model */ 15 | #undef NEED_SHORT_EXTERNAL_NAMES 16 | #undef INCOMPLETE_TYPES_BROKEN 17 | 18 | #ifdef JPEG_INTERNALS 19 | 20 | #undef RIGHT_SHIFT_IS_UNSIGNED 21 | 22 | #define USE_MSDOS_MEMMGR /* Define this if you use jmemdos.c */ 23 | 24 | #define MAX_ALLOC_CHUNK 65520L /* Maximum request to malloc() */ 25 | 26 | #define USE_FMEM /* Microsoft has _fmemcpy() and _fmemset() */ 27 | 28 | #define NEED_FHEAPMIN /* far heap management routines are broken */ 29 | 30 | #define SHORTxLCONST_32 /* enable compiler-specific DCT optimization */ 31 | /* Note: the above define is known to improve the code with Microsoft C 6.00A. 32 | * I do not know whether it is good for later compiler versions. 33 | * Please report any info on this point to jpeg-info@jpegclub.org. 34 | */ 35 | 36 | #endif /* JPEG_INTERNALS */ 37 | 38 | #ifdef JPEG_CJPEG_DJPEG 39 | 40 | #define BMP_SUPPORTED /* BMP image file format */ 41 | #define GIF_SUPPORTED /* GIF image file format */ 42 | #define PPM_SUPPORTED /* PBMPLUS PPM/PGM image file format */ 43 | #undef RLE_SUPPORTED /* Utah RLE image file format */ 44 | #define TARGA_SUPPORTED /* Targa image file format */ 45 | 46 | #define TWO_FILE_COMMANDLINE 47 | #define USE_SETMODE /* Microsoft has setmode() */ 48 | #define NEED_SIGNAL_CATCHER /* Define this if you use jmemdos.c */ 49 | #undef DONT_USE_B_MODE 50 | #undef PROGRESS_REPORT /* optional */ 51 | 52 | #endif /* JPEG_CJPEG_DJPEG */ 53 | -------------------------------------------------------------------------------- /ThirdParty/libjpeg-9e/jconfig.sas: -------------------------------------------------------------------------------- 1 | /* jconfig.sas --- jconfig.h for Amiga systems using SAS C 6.0 and up. */ 2 | /* see jconfig.txt for explanations */ 3 | 4 | #define HAVE_PROTOTYPES 5 | #define HAVE_UNSIGNED_CHAR 6 | #define HAVE_UNSIGNED_SHORT 7 | /* #define void char */ 8 | /* #define const */ 9 | #undef CHAR_IS_UNSIGNED 10 | #define HAVE_STDDEF_H 11 | #define HAVE_STDLIB_H 12 | #undef NEED_BSD_STRINGS 13 | #undef NEED_SYS_TYPES_H 14 | #undef NEED_FAR_POINTERS 15 | #undef NEED_SHORT_EXTERNAL_NAMES 16 | #undef INCOMPLETE_TYPES_BROKEN 17 | 18 | #ifdef JPEG_INTERNALS 19 | 20 | #undef RIGHT_SHIFT_IS_UNSIGNED 21 | 22 | #define TEMP_DIRECTORY "JPEGTMP:" /* recommended setting for Amiga */ 23 | 24 | #define NO_MKTEMP /* SAS C doesn't have mktemp() */ 25 | 26 | #define SHORTxSHORT_32 /* produces better DCT code with SAS C */ 27 | 28 | #endif /* JPEG_INTERNALS */ 29 | 30 | #ifdef JPEG_CJPEG_DJPEG 31 | 32 | #define BMP_SUPPORTED /* BMP image file format */ 33 | #define GIF_SUPPORTED /* GIF image file format */ 34 | #define PPM_SUPPORTED /* PBMPLUS PPM/PGM image file format */ 35 | #undef RLE_SUPPORTED /* Utah RLE image file format */ 36 | #define TARGA_SUPPORTED /* Targa image file format */ 37 | 38 | #define TWO_FILE_COMMANDLINE 39 | #define NEED_SIGNAL_CATCHER 40 | #undef DONT_USE_B_MODE 41 | #undef PROGRESS_REPORT /* optional */ 42 | 43 | #endif /* JPEG_CJPEG_DJPEG */ 44 | -------------------------------------------------------------------------------- /ThirdParty/libjpeg-9e/jconfig.st: -------------------------------------------------------------------------------- 1 | /* jconfig.st --- jconfig.h for Atari ST/STE/TT using Pure C or Turbo C. */ 2 | /* see jconfig.txt for explanations */ 3 | 4 | #define HAVE_PROTOTYPES 5 | #define HAVE_UNSIGNED_CHAR 6 | #define HAVE_UNSIGNED_SHORT 7 | /* #define void char */ 8 | /* #define const */ 9 | #undef CHAR_IS_UNSIGNED 10 | #define HAVE_STDDEF_H 11 | #define HAVE_STDLIB_H 12 | #undef NEED_BSD_STRINGS 13 | #undef NEED_SYS_TYPES_H 14 | #undef NEED_FAR_POINTERS 15 | #undef NEED_SHORT_EXTERNAL_NAMES 16 | #define INCOMPLETE_TYPES_BROKEN /* suppress undefined-structure warnings */ 17 | 18 | #ifdef JPEG_INTERNALS 19 | 20 | #undef RIGHT_SHIFT_IS_UNSIGNED 21 | 22 | #define ALIGN_TYPE long /* apparently double is a weird size? */ 23 | 24 | #endif /* JPEG_INTERNALS */ 25 | 26 | #ifdef JPEG_CJPEG_DJPEG 27 | 28 | #define BMP_SUPPORTED /* BMP image file format */ 29 | #define GIF_SUPPORTED /* GIF image file format */ 30 | #define PPM_SUPPORTED /* PBMPLUS PPM/PGM image file format */ 31 | #undef RLE_SUPPORTED /* Utah RLE image file format */ 32 | #define TARGA_SUPPORTED /* Targa image file format */ 33 | 34 | #define TWO_FILE_COMMANDLINE /* optional -- undef if you like Unix style */ 35 | /* Note: if you undef TWO_FILE_COMMANDLINE, you may need to define 36 | * USE_SETMODE. Some Atari compilers require it, some do not. 37 | */ 38 | #define NEED_SIGNAL_CATCHER /* needed if you use jmemname.c */ 39 | #undef DONT_USE_B_MODE 40 | #undef PROGRESS_REPORT /* optional */ 41 | 42 | #endif /* JPEG_CJPEG_DJPEG */ 43 | -------------------------------------------------------------------------------- /ThirdParty/libjpeg-9e/jconfig.vms: -------------------------------------------------------------------------------- 1 | /* jconfig.vms --- jconfig.h for use on Digital VMS. */ 2 | /* see jconfig.txt for explanations */ 3 | 4 | #define HAVE_PROTOTYPES 5 | #define HAVE_UNSIGNED_CHAR 6 | #define HAVE_UNSIGNED_SHORT 7 | /* #define void char */ 8 | /* #define const */ 9 | #undef CHAR_IS_UNSIGNED 10 | #define HAVE_STDDEF_H 11 | #define HAVE_STDLIB_H 12 | #undef NEED_BSD_STRINGS 13 | #undef NEED_SYS_TYPES_H 14 | #undef NEED_FAR_POINTERS 15 | #undef NEED_SHORT_EXTERNAL_NAMES 16 | #undef INCOMPLETE_TYPES_BROKEN 17 | 18 | #ifdef JPEG_INTERNALS 19 | 20 | #undef RIGHT_SHIFT_IS_UNSIGNED 21 | 22 | #endif /* JPEG_INTERNALS */ 23 | 24 | #ifdef JPEG_CJPEG_DJPEG 25 | 26 | #define BMP_SUPPORTED /* BMP image file format */ 27 | #define GIF_SUPPORTED /* GIF image file format */ 28 | #define PPM_SUPPORTED /* PBMPLUS PPM/PGM image file format */ 29 | #undef RLE_SUPPORTED /* Utah RLE image file format */ 30 | #define TARGA_SUPPORTED /* Targa image file format */ 31 | 32 | #define TWO_FILE_COMMANDLINE /* Needed on VMS */ 33 | #undef NEED_SIGNAL_CATCHER 34 | #undef DONT_USE_B_MODE 35 | #undef PROGRESS_REPORT /* optional */ 36 | 37 | #endif /* JPEG_CJPEG_DJPEG */ 38 | -------------------------------------------------------------------------------- /ThirdParty/libjpeg-9e/jconfig.wat: -------------------------------------------------------------------------------- 1 | /* jconfig.wat --- jconfig.h for Watcom C/C++ on MS-DOS or OS/2. */ 2 | /* see jconfig.txt for explanations */ 3 | 4 | #define HAVE_PROTOTYPES 5 | #define HAVE_UNSIGNED_CHAR 6 | #define HAVE_UNSIGNED_SHORT 7 | /* #define void char */ 8 | /* #define const */ 9 | #define CHAR_IS_UNSIGNED 10 | #define HAVE_STDDEF_H 11 | #define HAVE_STDLIB_H 12 | #undef NEED_BSD_STRINGS 13 | #undef NEED_SYS_TYPES_H 14 | #undef NEED_FAR_POINTERS /* Watcom uses flat 32-bit addressing */ 15 | #undef NEED_SHORT_EXTERNAL_NAMES 16 | #undef INCOMPLETE_TYPES_BROKEN 17 | 18 | #ifdef JPEG_INTERNALS 19 | 20 | #undef RIGHT_SHIFT_IS_UNSIGNED 21 | 22 | #endif /* JPEG_INTERNALS */ 23 | 24 | #ifdef JPEG_CJPEG_DJPEG 25 | 26 | #define BMP_SUPPORTED /* BMP image file format */ 27 | #define GIF_SUPPORTED /* GIF image file format */ 28 | #define PPM_SUPPORTED /* PBMPLUS PPM/PGM image file format */ 29 | #undef RLE_SUPPORTED /* Utah RLE image file format */ 30 | #define TARGA_SUPPORTED /* Targa image file format */ 31 | 32 | #undef TWO_FILE_COMMANDLINE /* optional */ 33 | #define USE_SETMODE /* Needed to make one-file style work in Watcom */ 34 | #undef NEED_SIGNAL_CATCHER /* Define this if you use jmemname.c */ 35 | #undef DONT_USE_B_MODE 36 | #undef PROGRESS_REPORT /* optional */ 37 | 38 | #endif /* JPEG_CJPEG_DJPEG */ 39 | -------------------------------------------------------------------------------- /ThirdParty/libjpeg-9e/jdosaobj.txt: -------------------------------------------------------------------------------- 1 | This archive contains already-assembled object files for JMEMDOSA.ASM 2 | of the Independent JPEG Group's JPEG package. These files will be helpful 3 | if you want to compile the IJG code for DOS, but don't have an assembler. 4 | 5 | These files were prepared from the 3/13/1992 version of JMEMDOSA.ASM, 6 | which is still unchanged as of mid-1998. You can use these files with 7 | releases 3 through 6 of the IJG code, and probably future releases too. 8 | 9 | To use these files, copy the proper version to JMEMDOSA.OBJ. Make sure 10 | this file has a newer date than JMEMDOSA.ASM. Then compile the code as 11 | usual. 12 | 13 | Object files included: 14 | 15 | JDOSAMSC.OBJ For Microsoft C version 5 or later. 16 | JDOSABCC.OBJ For Borland C version 3.0 or later. 17 | -------------------------------------------------------------------------------- /ThirdParty/libjpeg-9e/jversion.h: -------------------------------------------------------------------------------- 1 | /* 2 | * jversion.h 3 | * 4 | * Copyright (C) 1991-2022, Thomas G. Lane, Guido Vollbeding. 5 | * This file is part of the Independent JPEG Group's software. 6 | * For conditions of distribution and use, see the accompanying README file. 7 | * 8 | * This file contains software version identification. 9 | */ 10 | 11 | 12 | #define JVERSION "9e 16-Jan-2022" 13 | 14 | #define JCOPYRIGHT "Copyright (C) 2022, Thomas G. Lane, Guido Vollbeding" 15 | -------------------------------------------------------------------------------- /ThirdParty/libjpeg-9e/libjpeg.map: -------------------------------------------------------------------------------- 1 | LIBJPEG_9.0 { 2 | global: 3 | *; 4 | }; 5 | -------------------------------------------------------------------------------- /ThirdParty/libjpeg-9e/makcjpeg.st: -------------------------------------------------------------------------------- 1 | ; Project file for Independent JPEG Group's software 2 | ; 3 | ; This project file is for Atari ST/STE/TT systems using Pure C or Turbo C. 4 | ; Thanks to Frank Moehle, B. Setzepfandt, and Guido Vollbeding. 5 | ; 6 | ; To use this file, rename it to cjpeg.prj. 7 | ; If you are using Turbo C, change filenames beginning with "pc..." to "tc..." 8 | ; Read installation instructions before trying to make the program! 9 | ; 10 | ; 11 | ; * * * Output file * * * 12 | cjpeg.ttp 13 | ; 14 | ; * * * COMPILER OPTIONS * * * 15 | .C[-P] ; absolute calls 16 | .C[-M] ; and no string merging, folks 17 | .C[-w-cln] ; no "constant is long" warnings 18 | .C[-w-par] ; no "parameter xxxx unused" 19 | .C[-w-rch] ; no "unreachable code" 20 | .C[-wsig] ; warn if significant digits may be lost 21 | = 22 | ; * * * * List of modules * * * * 23 | pcstart.o 24 | cjpeg.c (cdjpeg.h,jinclude.h,jconfig.h,jpeglib.h,jmorecfg.h,jerror.h,cderror.h,jversion.h) 25 | cdjpeg.c (cdjpeg.h,jinclude.h,jconfig.h,jpeglib.h,jmorecfg.h,jerror.h,cderror.h) 26 | rdswitch.c (cdjpeg.h,jinclude.h,jconfig.h,jpeglib.h,jmorecfg.h,jerror.h,cderror.h) 27 | rdppm.c (cdjpeg.h,jinclude.h,jconfig.h,jpeglib.h,jmorecfg.h,jerror.h,cderror.h) 28 | rdgif.c (cdjpeg.h,jinclude.h,jconfig.h,jpeglib.h,jmorecfg.h,jerror.h,cderror.h) 29 | rdtarga.c (cdjpeg.h,jinclude.h,jconfig.h,jpeglib.h,jmorecfg.h,jerror.h,cderror.h) 30 | rdbmp.c (cdjpeg.h,jinclude.h,jconfig.h,jpeglib.h,jmorecfg.h,jerror.h,cderror.h) 31 | rdrle.c (cdjpeg.h,jinclude.h,jconfig.h,jpeglib.h,jmorecfg.h,jerror.h,cderror.h) 32 | libjpeg.lib ; built by libjpeg.prj 33 | pcfltlib.lib ; floating point library 34 | ; the float library can be omitted if you've turned off DCT_FLOAT_SUPPORTED 35 | pcstdlib.lib ; standard library 36 | pcextlib.lib ; extended library 37 | -------------------------------------------------------------------------------- /ThirdParty/libjpeg-9e/makdjpeg.st: -------------------------------------------------------------------------------- 1 | ; Project file for Independent JPEG Group's software 2 | ; 3 | ; This project file is for Atari ST/STE/TT systems using Pure C or Turbo C. 4 | ; Thanks to Frank Moehle, B. Setzepfandt, and Guido Vollbeding. 5 | ; 6 | ; To use this file, rename it to djpeg.prj. 7 | ; If you are using Turbo C, change filenames beginning with "pc..." to "tc..." 8 | ; Read installation instructions before trying to make the program! 9 | ; 10 | ; 11 | ; * * * Output file * * * 12 | djpeg.ttp 13 | ; 14 | ; * * * COMPILER OPTIONS * * * 15 | .C[-P] ; absolute calls 16 | .C[-M] ; and no string merging, folks 17 | .C[-w-cln] ; no "constant is long" warnings 18 | .C[-w-par] ; no "parameter xxxx unused" 19 | .C[-w-rch] ; no "unreachable code" 20 | .C[-wsig] ; warn if significant digits may be lost 21 | = 22 | ; * * * * List of modules * * * * 23 | pcstart.o 24 | djpeg.c (cdjpeg.h,jinclude.h,jconfig.h,jpeglib.h,jmorecfg.h,jerror.h,cderror.h,jversion.h) 25 | cdjpeg.c (cdjpeg.h,jinclude.h,jconfig.h,jpeglib.h,jmorecfg.h,jerror.h,cderror.h) 26 | rdcolmap.c (cdjpeg.h,jinclude.h,jconfig.h,jpeglib.h,jmorecfg.h,jerror.h,cderror.h) 27 | wrppm.c (cdjpeg.h,jinclude.h,jconfig.h,jpeglib.h,jmorecfg.h,jerror.h,cderror.h) 28 | wrgif.c (cdjpeg.h,jinclude.h,jconfig.h,jpeglib.h,jmorecfg.h,jerror.h,cderror.h) 29 | wrtarga.c (cdjpeg.h,jinclude.h,jconfig.h,jpeglib.h,jmorecfg.h,jerror.h,cderror.h) 30 | wrbmp.c (cdjpeg.h,jinclude.h,jconfig.h,jpeglib.h,jmorecfg.h,jerror.h,cderror.h) 31 | wrrle.c (cdjpeg.h,jinclude.h,jconfig.h,jpeglib.h,jmorecfg.h,jerror.h,cderror.h) 32 | libjpeg.lib ; built by libjpeg.prj 33 | pcfltlib.lib ; floating point library 34 | ; the float library can be omitted if you've turned off DCT_FLOAT_SUPPORTED 35 | pcstdlib.lib ; standard library 36 | pcextlib.lib ; extended library 37 | -------------------------------------------------------------------------------- /ThirdParty/libjpeg-9e/makeadsw.vc6: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DiligentGraphics/DiligentTools/f8cc33e02de468f39325de715c5ad91e4373a66a/ThirdParty/libjpeg-9e/makeadsw.vc6 -------------------------------------------------------------------------------- /ThirdParty/libjpeg-9e/makecdep.vc6: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DiligentGraphics/DiligentTools/f8cc33e02de468f39325de715c5ad91e4373a66a/ThirdParty/libjpeg-9e/makecdep.vc6 -------------------------------------------------------------------------------- /ThirdParty/libjpeg-9e/makecdsp.vc6: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DiligentGraphics/DiligentTools/f8cc33e02de468f39325de715c5ad91e4373a66a/ThirdParty/libjpeg-9e/makecdsp.vc6 -------------------------------------------------------------------------------- /ThirdParty/libjpeg-9e/makecmak.vc6: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DiligentGraphics/DiligentTools/f8cc33e02de468f39325de715c5ad91e4373a66a/ThirdParty/libjpeg-9e/makecmak.vc6 -------------------------------------------------------------------------------- /ThirdParty/libjpeg-9e/makeddep.vc6: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DiligentGraphics/DiligentTools/f8cc33e02de468f39325de715c5ad91e4373a66a/ThirdParty/libjpeg-9e/makeddep.vc6 -------------------------------------------------------------------------------- /ThirdParty/libjpeg-9e/makeddsp.vc6: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DiligentGraphics/DiligentTools/f8cc33e02de468f39325de715c5ad91e4373a66a/ThirdParty/libjpeg-9e/makeddsp.vc6 -------------------------------------------------------------------------------- /ThirdParty/libjpeg-9e/makedmak.vc6: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DiligentGraphics/DiligentTools/f8cc33e02de468f39325de715c5ad91e4373a66a/ThirdParty/libjpeg-9e/makedmak.vc6 -------------------------------------------------------------------------------- /ThirdParty/libjpeg-9e/makejdep.vc6: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DiligentGraphics/DiligentTools/f8cc33e02de468f39325de715c5ad91e4373a66a/ThirdParty/libjpeg-9e/makejdep.vc6 -------------------------------------------------------------------------------- /ThirdParty/libjpeg-9e/makejdsp.vc6: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DiligentGraphics/DiligentTools/f8cc33e02de468f39325de715c5ad91e4373a66a/ThirdParty/libjpeg-9e/makejdsp.vc6 -------------------------------------------------------------------------------- /ThirdParty/libjpeg-9e/makejdsw.vc6: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DiligentGraphics/DiligentTools/f8cc33e02de468f39325de715c5ad91e4373a66a/ThirdParty/libjpeg-9e/makejdsw.vc6 -------------------------------------------------------------------------------- /ThirdParty/libjpeg-9e/makejmak.vc6: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DiligentGraphics/DiligentTools/f8cc33e02de468f39325de715c5ad91e4373a66a/ThirdParty/libjpeg-9e/makejmak.vc6 -------------------------------------------------------------------------------- /ThirdParty/libjpeg-9e/makerdep.vc6: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DiligentGraphics/DiligentTools/f8cc33e02de468f39325de715c5ad91e4373a66a/ThirdParty/libjpeg-9e/makerdep.vc6 -------------------------------------------------------------------------------- /ThirdParty/libjpeg-9e/makerdsp.vc6: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DiligentGraphics/DiligentTools/f8cc33e02de468f39325de715c5ad91e4373a66a/ThirdParty/libjpeg-9e/makerdsp.vc6 -------------------------------------------------------------------------------- /ThirdParty/libjpeg-9e/makerfil.v16: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | {4FC737F1-C7A5-4376-A066-2A32D752A2FF} 6 | cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx 7 | 8 | 9 | {93995380-89BD-4b04-88EB-625FBE52EBFB} 10 | h;hpp;hxx;hm;inl;inc;xsd 11 | 12 | 13 | {67DA6AB6-F800-4c08-8B7A-83BB121AAD01} 14 | rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms 15 | 16 | 17 | 18 | 19 | Header Files 20 | 21 | 22 | Header Files 23 | 24 | 25 | 26 | 27 | Source Files 28 | 29 | 30 | -------------------------------------------------------------------------------- /ThirdParty/libjpeg-9e/makermak.vc6: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DiligentGraphics/DiligentTools/f8cc33e02de468f39325de715c5ad91e4373a66a/ThirdParty/libjpeg-9e/makermak.vc6 -------------------------------------------------------------------------------- /ThirdParty/libjpeg-9e/maketdep.vc6: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DiligentGraphics/DiligentTools/f8cc33e02de468f39325de715c5ad91e4373a66a/ThirdParty/libjpeg-9e/maketdep.vc6 -------------------------------------------------------------------------------- /ThirdParty/libjpeg-9e/maketdsp.vc6: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DiligentGraphics/DiligentTools/f8cc33e02de468f39325de715c5ad91e4373a66a/ThirdParty/libjpeg-9e/maketdsp.vc6 -------------------------------------------------------------------------------- /ThirdParty/libjpeg-9e/maketmak.vc6: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DiligentGraphics/DiligentTools/f8cc33e02de468f39325de715c5ad91e4373a66a/ThirdParty/libjpeg-9e/maketmak.vc6 -------------------------------------------------------------------------------- /ThirdParty/libjpeg-9e/makewdep.vc6: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DiligentGraphics/DiligentTools/f8cc33e02de468f39325de715c5ad91e4373a66a/ThirdParty/libjpeg-9e/makewdep.vc6 -------------------------------------------------------------------------------- /ThirdParty/libjpeg-9e/makewdsp.vc6: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DiligentGraphics/DiligentTools/f8cc33e02de468f39325de715c5ad91e4373a66a/ThirdParty/libjpeg-9e/makewdsp.vc6 -------------------------------------------------------------------------------- /ThirdParty/libjpeg-9e/makewfil.v16: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | {4FC737F1-C7A5-4376-A066-2A32D752A2FF} 6 | cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx 7 | 8 | 9 | {93995380-89BD-4b04-88EB-625FBE52EBFB} 10 | h;hpp;hxx;hm;inl;inc;xsd 11 | 12 | 13 | {67DA6AB6-F800-4c08-8B7A-83BB121AAD01} 14 | rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms 15 | 16 | 17 | 18 | 19 | Header Files 20 | 21 | 22 | Header Files 23 | 24 | 25 | 26 | 27 | Source Files 28 | 29 | 30 | -------------------------------------------------------------------------------- /ThirdParty/libjpeg-9e/makewmak.vc6: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DiligentGraphics/DiligentTools/f8cc33e02de468f39325de715c5ad91e4373a66a/ThirdParty/libjpeg-9e/makewmak.vc6 -------------------------------------------------------------------------------- /ThirdParty/libjpeg-9e/maktjpeg.st: -------------------------------------------------------------------------------- 1 | ; Project file for Independent JPEG Group's software 2 | ; 3 | ; This project file is for Atari ST/STE/TT systems using Pure C or Turbo C. 4 | ; Thanks to Frank Moehle, B. Setzepfandt, and Guido Vollbeding. 5 | ; 6 | ; To use this file, rename it to jpegtran.prj. 7 | ; If you are using Turbo C, change filenames beginning with "pc..." to "tc..." 8 | ; Read installation instructions before trying to make the program! 9 | ; 10 | ; 11 | ; * * * Output file * * * 12 | jpegtran.ttp 13 | ; 14 | ; * * * COMPILER OPTIONS * * * 15 | .C[-P] ; absolute calls 16 | .C[-M] ; and no string merging, folks 17 | .C[-w-cln] ; no "constant is long" warnings 18 | .C[-w-par] ; no "parameter xxxx unused" 19 | .C[-w-rch] ; no "unreachable code" 20 | .C[-wsig] ; warn if significant digits may be lost 21 | = 22 | ; * * * * List of modules * * * * 23 | pcstart.o 24 | jpegtran.c (cdjpeg.h,jinclude.h,jconfig.h,jpeglib.h,jmorecfg.h,jerror.h,cderror.h,transupp.h,jversion.h) 25 | cdjpeg.c (cdjpeg.h,jinclude.h,jconfig.h,jpeglib.h,jmorecfg.h,jerror.h,cderror.h) 26 | rdswitch.c (cdjpeg.h,jinclude.h,jconfig.h,jpeglib.h,jmorecfg.h,jerror.h,cderror.h) 27 | transupp.c (jinclude.h,jconfig.h,jpeglib.h,jmorecfg.h,jpegint.h,jerror.h,transupp.h) 28 | libjpeg.lib ; built by libjpeg.prj 29 | pcstdlib.lib ; standard library 30 | pcextlib.lib ; extended library 31 | -------------------------------------------------------------------------------- /ThirdParty/libjpeg-9e/makvms.opt: -------------------------------------------------------------------------------- 1 | ! A pointer to the VAX/VMS C Run-Time Shareable Library. 2 | ! This file is needed by makefile.mms and makefile.vms, 3 | ! but only for the older VAX C compiler. DEC C does not need it. 4 | Sys$Library:VAXCRTL.EXE /Share 5 | -------------------------------------------------------------------------------- /ThirdParty/libjpeg-9e/rdjpgcom.1: -------------------------------------------------------------------------------- 1 | .TH RDJPGCOM 1 "13 September 2013" 2 | .SH NAME 3 | rdjpgcom \- display text comments from a JPEG file 4 | .SH SYNOPSIS 5 | .B rdjpgcom 6 | [ 7 | .B \-raw 8 | ] 9 | [ 10 | .B \-verbose 11 | ] 12 | [ 13 | .I filename 14 | ] 15 | .LP 16 | .SH DESCRIPTION 17 | .LP 18 | .B rdjpgcom 19 | reads the named JPEG/JFIF file, or the standard input if no file is named, 20 | and prints any text comments found in the file on the standard output. 21 | .PP 22 | The JPEG standard allows "comment" (COM) blocks to occur within a JPEG file. 23 | Although the standard doesn't actually define what COM blocks are for, they 24 | are widely used to hold user-supplied text strings. This lets you add 25 | annotations, titles, index terms, etc to your JPEG files, and later retrieve 26 | them as text. COM blocks do not interfere with the image stored in the JPEG 27 | file. The maximum size of a COM block is 64K, but you can have as many of 28 | them as you like in one JPEG file. 29 | .SH OPTIONS 30 | .TP 31 | .B \-raw 32 | Normally 33 | .B rdjpgcom 34 | escapes non-printable characters in comments, for security reasons. 35 | This option avoids that. 36 | .PP 37 | .B \-verbose 38 | Causes 39 | .B rdjpgcom 40 | to also display the JPEG image dimensions. 41 | .PP 42 | Switch names may be abbreviated, and are not case sensitive. 43 | .SH HINTS 44 | .B rdjpgcom 45 | does not depend on the IJG JPEG library. Its source code is intended as an 46 | illustration of the minimum amount of code required to parse a JPEG file 47 | header correctly. 48 | .PP 49 | In 50 | .B \-verbose 51 | mode, 52 | .B rdjpgcom 53 | will also attempt to print the contents of any "APP12" markers as text. 54 | Some digital cameras produce APP12 markers containing useful textual 55 | information. If you like, you can modify the source code to print 56 | other APPn marker types as well. 57 | .SH SEE ALSO 58 | .BR cjpeg (1), 59 | .BR djpeg (1), 60 | .BR jpegtran (1), 61 | .BR wrjpgcom (1) 62 | .SH AUTHOR 63 | Independent JPEG Group 64 | -------------------------------------------------------------------------------- /ThirdParty/libjpeg-9e/readme.dos: -------------------------------------------------------------------------------- 1 | This archive contains a DOS-friendly version of the Independent JPEG Group's 2 | source code. It differs from the normal distribution in that: 3 | 4 | 1. The archive format is zip rather than tar+gzip. You should be able to 5 | unpack it with PKUNZIP (2.04g or later) or Info-Zip's unzip or 7-Zip. 6 | 7 | 2. Newlines have been converted from Unix (LF) to DOS (CR/LF) style in all 8 | text files, but not in the binary files (test*.*). 9 | 10 | 3. Object files have been included for jmemdosa.asm. See jdosaobj.txt. 11 | 12 | Please see the main README file for the primary documentation. 13 | 14 | If you'd rather have a non-DOSified archive, see the ARCHIVE LOCATIONS section 15 | of README. 16 | -------------------------------------------------------------------------------- /ThirdParty/libjpeg-9e/testimg.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DiligentGraphics/DiligentTools/f8cc33e02de468f39325de715c5ad91e4373a66a/ThirdParty/libjpeg-9e/testimg.bmp -------------------------------------------------------------------------------- /ThirdParty/libjpeg-9e/testimg.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DiligentGraphics/DiligentTools/f8cc33e02de468f39325de715c5ad91e4373a66a/ThirdParty/libjpeg-9e/testimg.jpg -------------------------------------------------------------------------------- /ThirdParty/libjpeg-9e/testimg.ppm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DiligentGraphics/DiligentTools/f8cc33e02de468f39325de715c5ad91e4373a66a/ThirdParty/libjpeg-9e/testimg.ppm -------------------------------------------------------------------------------- /ThirdParty/libjpeg-9e/testimgp.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DiligentGraphics/DiligentTools/f8cc33e02de468f39325de715c5ad91e4373a66a/ThirdParty/libjpeg-9e/testimgp.jpg -------------------------------------------------------------------------------- /ThirdParty/libjpeg-9e/testorig.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DiligentGraphics/DiligentTools/f8cc33e02de468f39325de715c5ad91e4373a66a/ThirdParty/libjpeg-9e/testorig.jpg -------------------------------------------------------------------------------- /ThirdParty/libjpeg-9e/testprog.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DiligentGraphics/DiligentTools/f8cc33e02de468f39325de715c5ad91e4373a66a/ThirdParty/libjpeg-9e/testprog.jpg -------------------------------------------------------------------------------- /ThirdParty/libtiff/COPYRIGHT: -------------------------------------------------------------------------------- 1 | Copyright (c) 1988-1997 Sam Leffler 2 | Copyright (c) 1991-1997 Silicon Graphics, Inc. 3 | 4 | Permission to use, copy, modify, distribute, and sell this software and 5 | its documentation for any purpose is hereby granted without fee, provided 6 | that (i) the above copyright notices and this permission notice appear in 7 | all copies of the software and related documentation, and (ii) the names of 8 | Sam Leffler and Silicon Graphics may not be used in any advertising or 9 | publicity relating to the software without the specific, prior written 10 | permission of Sam Leffler and Silicon Graphics. 11 | 12 | THE SOFTWARE IS PROVIDED "AS-IS" AND WITHOUT WARRANTY OF ANY KIND, 13 | EXPRESS, IMPLIED OR OTHERWISE, INCLUDING WITHOUT LIMITATION, ANY 14 | WARRANTY OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. 15 | 16 | IN NO EVENT SHALL SAM LEFFLER OR SILICON GRAPHICS BE LIABLE FOR 17 | ANY SPECIAL, INCIDENTAL, INDIRECT OR CONSEQUENTIAL DAMAGES OF ANY KIND, 18 | OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, 19 | WHETHER OR NOT ADVISED OF THE POSSIBILITY OF DAMAGE, AND ON ANY THEORY OF 20 | LIABILITY, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE 21 | OF THIS SOFTWARE. 22 | -------------------------------------------------------------------------------- /ThirdParty/libtiff/VERSION.txt: -------------------------------------------------------------------------------- 1 | 4.0.10 2 | Note that VERSION without extensions causes build error on Android because insane toolchain has #include somewhere -------------------------------------------------------------------------------- /ThirdParty/libtiff/libtiff.map: -------------------------------------------------------------------------------- 1 | LIBTIFF_4.0 { 2 | global: 3 | *; 4 | }; 5 | -------------------------------------------------------------------------------- /ThirdParty/libtiff/libtiffxx.map: -------------------------------------------------------------------------------- 1 | LIBTIFFXX_4.0 { 2 | global: 3 | *; 4 | }; 5 | -------------------------------------------------------------------------------- /ThirdParty/libtiff/tif_config.h: -------------------------------------------------------------------------------- 1 | #if PLATFORM_WIN32 || PLATFORM_UNIVERSAL_WINDOWS 2 | 3 | # ifdef _MSC_VER 4 | # include "tif_config.vc.h" 5 | # else // MinGW 6 | # include "tif_config.linux.h" 7 | # endif 8 | 9 | #elif PLATFORM_ANDROID 10 | 11 | # include "tif_config.android.h" 12 | 13 | #elif PLATFORM_LINUX || PLATFORM_MACOS || PLATFORM_IOS || PLATFORM_TVOS || PLATFORM_WEB 14 | 15 | # include "tif_config.linux.h" 16 | 17 | #else 18 | 19 | # error "Unknown platform" 20 | 21 | #endif 22 | -------------------------------------------------------------------------------- /ThirdParty/libtiff/tif_config.h-vms: -------------------------------------------------------------------------------- 1 | /* Define to 1 if you have the header file. */ 2 | #define HAVE_ASSERT_H 1 3 | 4 | /* Define to 1 if you have the header file. */ 5 | #define HAVE_FCNTL_H 1 6 | 7 | /* Define as 0 or 1 according to the floating point format suported by the 8 | machine */ 9 | #define HAVE_IEEEFP 1 10 | 11 | #define HAVE_UNISTD_H 1 12 | 13 | #define HAVE_STRING_H 1 14 | /* Define to 1 if you have the header file. */ 15 | #define HAVE_SYS_TYPES_H 1 16 | 17 | /* Define to 1 if you have the header file. */ 18 | //#define HAVE_IO_H 1 19 | 20 | /* Define to 1 if you have the header file. */ 21 | //#define HAVE_SEARCH_H 1 22 | 23 | /* The size of a `int', as computed by sizeof. */ 24 | #define SIZEOF_INT 4 25 | 26 | /* The size of a `long', as computed by sizeof. */ 27 | #define SIZEOF_LONG 4 28 | 29 | /* Set the native cpu bit order */ 30 | #define HOST_FILLORDER FILLORDER_LSB2MSB 31 | 32 | /* Define to 1 if your processor stores words with the most significant byte 33 | first (like Motorola and SPARC, unlike Intel and VAX). */ 34 | /* #undef WORDS_BIGENDIAN */ 35 | 36 | /* Define to `__inline__' or `__inline' if that's what the C compiler 37 | calls it, or to nothing if 'inline' is not supported under any name. */ 38 | /* 39 | #ifndef __cplusplus 40 | # ifndef inline 41 | # define inline __inline 42 | # endif 43 | #endif 44 | */ 45 | 46 | // #define lfind _lfind 47 | -------------------------------------------------------------------------------- /ThirdParty/libtiff/tif_jpeg_12.c: -------------------------------------------------------------------------------- 1 | 2 | #include "tiffiop.h" 3 | 4 | #if defined(JPEG_DUAL_MODE_8_12) 5 | 6 | #define FROM_TIF_JPEG_12 7 | 8 | #ifdef TIFFInitJPEG 9 | #undef TIFFInitJPEG 10 | #endif 11 | #define TIFFInitJPEG TIFFInitJPEG_12 12 | 13 | #ifdef TIFFJPEGIsFullStripRequired 14 | #undef TIFFJPEGIsFullStripRequired 15 | #endif 16 | #define TIFFJPEGIsFullStripRequired TIFFJPEGIsFullStripRequired_12 17 | 18 | int TIFFInitJPEG_12(TIFF *tif, int scheme); 19 | 20 | #include LIBJPEG_12_PATH 21 | 22 | #include "tif_jpeg.c" 23 | 24 | int TIFFReInitJPEG_12(TIFF *tif, const JPEGOtherSettings *otherSettings, 25 | int scheme, int is_encode) { 26 | JPEGState *sp; 27 | uint8_t *new_tif_data; 28 | 29 | (void)scheme; 30 | assert(scheme == COMPRESSION_JPEG); 31 | 32 | new_tif_data = (uint8_t *)_TIFFrealloc(tif->tif_data, sizeof(JPEGState)); 33 | 34 | if (new_tif_data == NULL) { 35 | TIFFErrorExt(tif->tif_clientdata, "TIFFReInitJPEG_12", 36 | "No space for JPEG state block"); 37 | return 0; 38 | } 39 | 40 | tif->tif_data = new_tif_data; 41 | _TIFFmemset(tif->tif_data, 0, sizeof(JPEGState)); 42 | 43 | TIFFInitJPEGCommon(tif); 44 | 45 | sp = JState(tif); 46 | sp->otherSettings = *otherSettings; 47 | 48 | if (is_encode) 49 | return JPEGSetupEncode(tif); 50 | else 51 | return JPEGSetupDecode(tif); 52 | } 53 | 54 | #endif /* defined(JPEG_DUAL_MODE_8_12) */ 55 | 56 | /* 57 | * Local Variables: 58 | * mode: c 59 | * c-basic-offset: 8 60 | * fill-column: 78 61 | * End: 62 | */ 63 | -------------------------------------------------------------------------------- /ThirdParty/libtiff/tif_version.c: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 1992-1997 Sam Leffler 3 | * Copyright (c) 1992-1997 Silicon Graphics, Inc. 4 | * 5 | * Permission to use, copy, modify, distribute, and sell this software and 6 | * its documentation for any purpose is hereby granted without fee, provided 7 | * that (i) the above copyright notices and this permission notice appear in 8 | * all copies of the software and related documentation, and (ii) the names of 9 | * Sam Leffler and Silicon Graphics may not be used in any advertising or 10 | * publicity relating to the software without the specific, prior written 11 | * permission of Sam Leffler and Silicon Graphics. 12 | * 13 | * THE SOFTWARE IS PROVIDED "AS-IS" AND WITHOUT WARRANTY OF ANY KIND, 14 | * EXPRESS, IMPLIED OR OTHERWISE, INCLUDING WITHOUT LIMITATION, ANY 15 | * WARRANTY OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. 16 | * 17 | * IN NO EVENT SHALL SAM LEFFLER OR SILICON GRAPHICS BE LIABLE FOR 18 | * ANY SPECIAL, INCIDENTAL, INDIRECT OR CONSEQUENTIAL DAMAGES OF ANY KIND, 19 | * OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, 20 | * WHETHER OR NOT ADVISED OF THE POSSIBILITY OF DAMAGE, AND ON ANY THEORY OF 21 | * LIABILITY, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE 22 | * OF THIS SOFTWARE. 23 | */ 24 | #include "tiffiop.h" 25 | 26 | static const char TIFFVersion[] = TIFFLIB_VERSION_STR; 27 | 28 | const char* 29 | TIFFGetVersion(void) 30 | { 31 | return (TIFFVersion); 32 | } 33 | /* 34 | * Local Variables: 35 | * mode: c 36 | * c-basic-offset: 8 37 | * fill-column: 78 38 | * End: 39 | */ 40 | -------------------------------------------------------------------------------- /ThirdParty/libtiff/tiffconf.h: -------------------------------------------------------------------------------- 1 | #if PLATFORM_WIN32 || PLATFORM_UNIVERSAL_WINDOWS 2 | 3 | # ifdef _MSC_VER 4 | # include "tiffconf.vc.h" 5 | # else // MinGW 6 | # include "tiffconf.linux.h" 7 | # endif 8 | 9 | #elif PLATFORM_ANDROID || PLATFORM_LINUX || PLATFORM_MACOS || PLATFORM_IOS || PLATFORM_TVOS || PLATFORM_WEB 10 | 11 | # include "tiffconf.linux.h" 12 | 13 | #else 14 | 15 | # error Unsupported platform 16 | 17 | #endif 18 | -------------------------------------------------------------------------------- /ThirdParty/libtiff/tiffio.hxx: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 1988-1997 Sam Leffler 3 | * Copyright (c) 1991-1997 Silicon Graphics, Inc. 4 | * 5 | * Permission to use, copy, modify, distribute, and sell this software and 6 | * its documentation for any purpose is hereby granted without fee, provided 7 | * that (i) the above copyright notices and this permission notice appear in 8 | * all copies of the software and related documentation, and (ii) the names of 9 | * Sam Leffler and Silicon Graphics may not be used in any advertising or 10 | * publicity relating to the software without the specific, prior written 11 | * permission of Sam Leffler and Silicon Graphics. 12 | * 13 | * THE SOFTWARE IS PROVIDED "AS-IS" AND WITHOUT WARRANTY OF ANY KIND, 14 | * EXPRESS, IMPLIED OR OTHERWISE, INCLUDING WITHOUT LIMITATION, ANY 15 | * WARRANTY OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. 16 | * 17 | * IN NO EVENT SHALL SAM LEFFLER OR SILICON GRAPHICS BE LIABLE FOR 18 | * ANY SPECIAL, INCIDENTAL, INDIRECT OR CONSEQUENTIAL DAMAGES OF ANY KIND, 19 | * OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, 20 | * WHETHER OR NOT ADVISED OF THE POSSIBILITY OF DAMAGE, AND ON ANY THEORY OF 21 | * LIABILITY, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE 22 | * OF THIS SOFTWARE. 23 | */ 24 | 25 | #ifndef _TIFFIO_HXX_ 26 | #define _TIFFIO_HXX_ 27 | 28 | /* 29 | * TIFF I/O library definitions which provide C++ streams API. 30 | */ 31 | 32 | #include 33 | #include "tiff.h" 34 | #include "tiffio.h" 35 | 36 | extern TIFF* TIFFStreamOpen(const char*, std::ostream *); 37 | extern TIFF* TIFFStreamOpen(const char*, std::istream *); 38 | 39 | #endif /* _TIFFIO_HXX_ */ 40 | 41 | /* vim: set ts=8 sts=8 sw=8 noet: */ 42 | /* 43 | * Local Variables: 44 | * mode: c++ 45 | * c-basic-offset: 8 46 | * fill-column: 78 47 | * End: 48 | */ 49 | -------------------------------------------------------------------------------- /ThirdParty/libtiff/tiffvers.h: -------------------------------------------------------------------------------- 1 | #define TIFFLIB_VERSION_STR "LIBTIFF, Version 4.4.0\nCopyright (c) 1988-1996 Sam Leffler\nCopyright (c) 1991-1996 Silicon Graphics, Inc." 2 | /* 3 | * This define can be used in code that requires 4 | * compilation-related definitions specific to a 5 | * version or versions of the library. Runtime 6 | * version checking should be done based on the 7 | * string returned by TIFFGetVersion. 8 | */ 9 | #define TIFFLIB_VERSION 20220520 10 | -------------------------------------------------------------------------------- /ThirdParty/libtiff/tiffvers.h.in: -------------------------------------------------------------------------------- 1 | #define TIFFLIB_VERSION_STR "LIBTIFF, Version LIBTIFF_VERSION\nCopyright (c) 1988-1996 Sam Leffler\nCopyright (c) 1991-1996 Silicon Graphics, Inc." 2 | /* 3 | * This define can be used in code that requires 4 | * compilation-related definitions specific to a 5 | * version or versions of the library. Runtime 6 | * version checking should be done based on the 7 | * string returned by TIFFGetVersion. 8 | */ 9 | #define TIFFLIB_VERSION LIBTIFF_RELEASE_DATE 10 | -------------------------------------------------------------------------------- /ThirdParty/tinygltf/LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2017 Syoyo Fujita, Aurélien Chatelain and many contributors 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /appveyor.yml: -------------------------------------------------------------------------------- 1 | version: '2.5.{build}' 2 | 3 | # branches to build 4 | branches: 5 | # whitelist 6 | only: 7 | - master 8 | 9 | image: 10 | - Visual Studio 2019 11 | 12 | environment: 13 | matrix: 14 | - platform: x64 15 | configuration: Debug 16 | platform_name: Windows 17 | 18 | - platform: x64 19 | configuration: Release 20 | platform_name: Windows 21 | 22 | # clone directory 23 | clone_folder: c:\projects\DiligentTools 24 | 25 | install: 26 | # clone submodules 27 | - git submodule update --init --recursive 28 | - git clone https://github.com/DiligentGraphics/DiligentCore.git ../DiligentCore --recursive 29 | - ps: ..\DiligentCore\BuildTools\Scripts\appveyor\install.ps1 30 | 31 | before_build: 32 | - cd c:\projects\DiligentTools\BuildTools\FormatValidation 33 | - validate_format_win.bat 34 | - cd c:\projects 35 | - echo cmake_minimum_required(VERSION 3.10) > CMakeLists.txt 36 | - echo Project(DiligentTools_Test) >> CMakeLists.txt 37 | - echo add_subdirectory(DiligentCore) >> CMakeLists.txt 38 | - echo add_subdirectory(DiligentTools) >> CMakeLists.txt 39 | - echo %PLATFORM% 40 | - cmake -S . -B ./build -D DILIGENT_BUILD_TOOLS_TESTS=TRUE -D DILIGENT_MSVC_COMPILE_OPTIONS="/WX" -D DILIGENT_MSVC_RELEASE_COMPILE_OPTIONS="/arch:AVX2" -G "Visual Studio 16 2019" -A %PLATFORM% 41 | 42 | build: 43 | project: c:\projects\build\DiligentTools_Test.sln 44 | verbosity: minimal 45 | parallel: true 46 | 47 | test_script: 48 | - 'cd %APPVEYOR_BUILD_FOLDER%\Tests\DiligentToolsTest\assets' 49 | - '%APPVEYOR_BUILD_FOLDER%\BuildTools\Scripts\appveyor\run_tests.bat c:\projects\build\DiligentTools' 50 | --------------------------------------------------------------------------------