├── .gitignore ├── Android ├── .gitignore ├── app │ ├── .gitignore │ ├── build.gradle │ ├── proguard-rules.pro │ └── src │ │ └── main │ │ ├── AndroidManifest.xml │ │ ├── java │ │ └── mgf │ │ │ └── android │ │ │ └── GXActivity.java │ │ └── res │ │ ├── mipmap-hdpi │ │ └── ic_launcher.png │ │ ├── mipmap-mdpi │ │ └── ic_launcher.png │ │ ├── mipmap-xhdpi │ │ └── ic_launcher.png │ │ ├── mipmap-xxhdpi │ │ └── ic_launcher.png │ │ ├── mipmap-xxxhdpi │ │ └── ic_launcher.png │ │ └── values │ │ ├── colors.xml │ │ ├── strings.xml │ │ └── styles.xml ├── build.gradle ├── gradle.properties ├── gradlew ├── gradlew.bat └── settings.gradle ├── CMakeLists.txt ├── Core ├── CMakeLists.txt ├── Config │ ├── Engine.Config.h │ ├── Engine.Version.h │ ├── Main.cpp │ └── STL.Config.h ├── Java │ ├── Java.cpp │ ├── JavaArray.h │ ├── JavaClass.h │ ├── JavaEnvironment.h │ ├── JavaMethod.h │ ├── JavaMethodType.h │ ├── JavaString.h │ └── JavaTypeInfo.h ├── Physics │ ├── Algorithms │ │ ├── AcceleratedMotion.h │ │ ├── Astrophysics.h │ │ └── Astrophysics_Orbit.h │ ├── Common │ │ ├── Common.h │ │ └── Main.cpp │ ├── CompileTime │ │ ├── GenType.h │ │ └── PhysTypeInfo.h │ ├── Core.Physics.h │ └── Dimensions │ │ ├── AstrophysicsConstants.h │ │ ├── DefaultTypes.h │ │ ├── PhysicsConstants.h │ │ ├── PhysicsDimension.h │ │ ├── PhysicsValue.h │ │ ├── PhysicsValueMath.h │ │ ├── PhysicsValueUtils.h │ │ ├── PhysicsValueVec.h │ │ └── PhysicsValueVecI.h ├── README.md ├── STL │ ├── Algorithms │ │ ├── ArrayUtils.h │ │ ├── Comparators.h │ │ ├── Crypt │ │ │ └── SimpleCrypt.h │ │ ├── Enum.h │ │ ├── FileAddress.cpp │ │ ├── FileAddress.h │ │ ├── Filters │ │ │ └── GaussianFilter.h │ │ ├── Hash.h │ │ ├── InvokeWithVariant.h │ │ ├── Range.h │ │ ├── Sorts.h │ │ ├── StringParser.cpp │ │ ├── StringParser.h │ │ ├── StringUtils.h │ │ └── Swap.h │ ├── Common │ │ ├── AllFunc.h │ │ ├── Cast.h │ │ ├── Compilers │ │ │ ├── CompilerClang.h │ │ │ ├── CompilerGCC.h │ │ │ └── CompilerMSVC.h │ │ ├── Init.h │ │ ├── Main.cpp │ │ ├── Platforms.h │ │ ├── TypeId.h │ │ ├── Types.h │ │ ├── UMax.h │ │ └── Uninitialized.h │ ├── CompileTime │ │ ├── CompileTimeChecks.h │ │ ├── CompileTimeDebug.h │ │ ├── CompileTimeTypes.h │ │ ├── DeferredTemplates.h │ │ ├── FunctionInfo.h │ │ ├── Map.h │ │ ├── NearType.h │ │ ├── NewTypeInfo.h │ │ ├── OldTypeInfo.h │ │ ├── PlainOldDataType.h │ │ ├── Runtime │ │ │ └── TypeIdList.h │ │ ├── Sequence.h │ │ ├── StaticFloat.h │ │ ├── StaticFractional.h │ │ ├── StaticInteger.h │ │ ├── StringToID.h │ │ ├── TemplateMath.h │ │ ├── TemplateUtils.h │ │ ├── TypeInfoFunc.h │ │ ├── TypeList.h │ │ ├── TypeListHelpers.h │ │ ├── TypeListUtils.h │ │ ├── TypeQualifier.h │ │ └── TypeTraits.h │ ├── Compression │ │ ├── Compression.h │ │ ├── LZ4Compression.h │ │ └── MiniZCompression.h │ ├── Containers │ │ ├── Adaptors.h │ │ ├── AppendableAdaptor.h │ │ ├── Array.h │ │ ├── ArrayRef.h │ │ ├── CircularQueue.h │ │ ├── CopyStrategy.h │ │ ├── Deque.h │ │ ├── ErasableAdaptor.h │ │ ├── HashMap.h │ │ ├── HashSet.h │ │ ├── IndexedArray.h │ │ ├── IndexedIterator.h │ │ ├── Map.h │ │ ├── MapUtils.h │ │ ├── Pair.h │ │ ├── Queue.h │ │ ├── Set.h │ │ ├── Stack.h │ │ ├── StaticArray.h │ │ ├── StaticBitArray.h │ │ ├── String.h │ │ ├── StringRef.h │ │ ├── Tuple.h │ │ └── UniBuffer.h │ ├── Core.STL.h │ ├── DataBase │ │ ├── SimpleDB.h │ │ ├── Utf8StringUtils.cpp │ │ └── Utf8StringUtils.h │ ├── Defines │ │ ├── AuxiliaryDefines.h │ │ ├── CtorHelpers.h │ │ ├── Defines.h │ │ ├── EnumHelpers.h │ │ ├── Errors.h │ │ ├── MemberDetector.h │ │ ├── OperatorHelpers.h │ │ └── PublicMacro.h │ ├── Dimensions │ │ ├── ByteAndBit.h │ │ ├── Percentage.h │ │ ├── PowerOfTwoValue.h │ │ └── RadiansAndDegrees.h │ ├── Files │ │ ├── BaseFile.h │ │ ├── CryptFile.h │ │ ├── HDDFile.h │ │ ├── LzmaFile.h │ │ ├── MemFile.h │ │ ├── SubFile.h │ │ └── ZipFile.h │ ├── Log │ │ ├── ELog.h │ │ ├── Logger.cpp │ │ ├── Logger.h │ │ └── ToString.h │ ├── Math │ │ ├── 2D │ │ │ ├── Circle.h │ │ │ ├── Line2.h │ │ │ ├── MathTypes2D.h │ │ │ ├── OrientedRectangle.h │ │ │ └── Rectangle.h │ │ ├── 3D │ │ │ ├── AxisAlignedBox.h │ │ │ ├── CoordTransform3.h │ │ │ ├── Frustum.h │ │ │ ├── Line3.h │ │ │ ├── MathTypes3D.h │ │ │ ├── PerspectiveCamera.h │ │ │ ├── Plane.h │ │ │ ├── Transform.h │ │ │ └── Triangle.h │ │ ├── Algebra.h │ │ ├── BinaryMath.h │ │ ├── Color │ │ │ ├── Color.h │ │ │ ├── ColorFormats.h │ │ │ ├── Half.h │ │ │ ├── TR11G11B10F.h │ │ │ └── TRGB9_E5.h │ │ ├── FastMath.h │ │ ├── Image │ │ │ └── ImageUtils.h │ │ ├── Interpolations.h │ │ ├── MathConstants.h │ │ ├── MathFunc.h │ │ ├── MathTypeCast.h │ │ ├── MathTypes.h │ │ ├── Mathematics.h │ │ ├── Matrix.h │ │ ├── Matrix2.h │ │ ├── Matrix3.h │ │ ├── Matrix4.h │ │ ├── MatrixCR.h │ │ ├── MatrixUtils.h │ │ ├── OverflowCheck.h │ │ ├── Quaternion.h │ │ ├── Rand │ │ │ ├── NormalDistribution.h │ │ │ ├── Pseudorandom.h │ │ │ ├── RandEngine.h │ │ │ ├── Random.h │ │ │ └── RandomWithChance.h │ │ ├── Spline │ │ │ └── Spline.h │ │ ├── Trigonometry.h │ │ ├── Vec.h │ │ └── VecI.h │ ├── Memory │ │ ├── Allocators.h │ │ ├── MemFunc.h │ │ ├── MemoryContainer.h │ │ ├── MemoryViewer.h │ │ └── PlacementNew.h │ ├── OS │ │ ├── Android │ │ │ └── OSAndroid.h │ │ ├── Base │ │ │ ├── BaseFileSystem.cpp │ │ │ ├── BaseFileSystem.h │ │ │ ├── Common.h │ │ │ ├── ConditionVariableEmulation.h │ │ │ ├── Date.cpp │ │ │ ├── Date.h │ │ │ ├── Endianes.h │ │ │ ├── ReadWriteSyncEmulation.h │ │ │ ├── ScopeLock.h │ │ │ ├── SemaphoreEmulator.h │ │ │ └── SyncEventEmulation.h │ │ ├── OSLowLevel.h │ │ ├── Posix │ │ │ ├── OSPosix.h │ │ │ ├── PosixFileSystem.cpp │ │ │ ├── PosixFileSystem.h │ │ │ ├── PosixHeader.h │ │ │ ├── PosixLibrary.cpp │ │ │ ├── PosixLibrary.h │ │ │ ├── PosixPlatformUtils.h │ │ │ ├── PosixRandDevice.cpp │ │ │ ├── PosixRandDevice.h │ │ │ ├── PosixSyncPrimitives.cpp │ │ │ ├── PosixSyncPrimitives.h │ │ │ ├── PosixThread.cpp │ │ │ ├── PosixThread.h │ │ │ ├── PosixTimer.cpp │ │ │ └── PosixTimer.h │ │ ├── SDL │ │ │ ├── OS_SDL.h │ │ │ ├── SDLFileSystem.h │ │ │ ├── SDLLibrary.cpp │ │ │ ├── SDLLibrary.h │ │ │ ├── SDLPlatformUtils.cpp │ │ │ ├── SDLPlatformUtils.h │ │ │ ├── SDLRandDevice.h │ │ │ ├── SDLSyncPrimitives.cpp │ │ │ ├── SDLSyncPrimitives.h │ │ │ ├── SDLThread.cpp │ │ │ ├── SDLThread.h │ │ │ └── SDLTimer.h │ │ ├── STD │ │ │ ├── STDSyncPrimitives.h │ │ │ ├── STDThread.cpp │ │ │ ├── STDThread.h │ │ │ └── STDTimer.h │ │ └── Windows │ │ │ ├── OSWindows.h │ │ │ ├── WinFileSystem.cpp │ │ │ ├── WinFileSystem.h │ │ │ ├── WinHeader.h │ │ │ ├── WinLibrary.cpp │ │ │ ├── WinLibrary.h │ │ │ ├── WinPlatformUtils.cpp │ │ │ ├── WinPlatformUtils.h │ │ │ ├── WinRandDevice.cpp │ │ │ ├── WinRandDevice.h │ │ │ ├── WinSyncPrimitives.cpp │ │ │ ├── WinSyncPrimitives.h │ │ │ ├── WinThread.cpp │ │ │ ├── WinThread.h │ │ │ ├── WinTimer.cpp │ │ │ └── WinTimer.h │ ├── ThreadSafe │ │ ├── Atomic.h │ │ ├── AtomicBitfield.h │ │ ├── AtomicCounter.h │ │ ├── AtomicFlag.h │ │ ├── MtFile.h │ │ ├── MtQueue.h │ │ └── Singleton.h │ ├── Time │ │ ├── FloatTimeImpl.h │ │ ├── IntTimeImpl.h │ │ ├── Time.h │ │ └── TimeProfiler.h │ └── Types │ │ ├── Bitfield.h │ │ ├── Bool.h │ │ ├── DefferedType.h │ │ ├── Delegate.h │ │ ├── Function.h │ │ ├── Limit.h │ │ ├── Noncopyable.h │ │ ├── Noninstancable.h │ │ ├── Optional.h │ │ ├── Ptr.h │ │ ├── RefCountedObject.h │ │ ├── RefCounter.h │ │ ├── ScopeSetter.h │ │ ├── SharedPointer.h │ │ ├── StaticLimit.h │ │ ├── StaticRefCountedObject.h │ │ ├── Union.h │ │ ├── UniquePtr.h │ │ ├── UntypedKey.h │ │ ├── VariantCRef.h │ │ ├── VariantInterface.h │ │ ├── VariantRef.h │ │ ├── VariantRefIndexedContainer.h │ │ └── WeakPointer.h ├── Script │ ├── Bindings │ │ ├── BindScalarMath.cpp │ │ ├── BindString.cpp │ │ ├── BindVectorMath.cpp │ │ └── DefaultBindings.h │ ├── Core.Script.h │ └── Impl │ │ ├── ClassBinder.h │ │ ├── EnumBinder.h │ │ ├── ScriptBinder.cpp │ │ ├── ScriptEngine.cpp │ │ ├── ScriptEngine.h │ │ ├── ScriptEngine.inl.h │ │ ├── ScriptModule.cpp │ │ ├── ScriptModule.h │ │ └── ScriptTypes.h └── compilers.cmake ├── CoreTests ├── Physics │ ├── Common.h │ ├── Main.cpp │ ├── Test_Algorithms_Orbit.cpp │ └── Test_Dimensions_PhysicsValue.cpp ├── STL │ ├── Common.h │ ├── Debug.h │ ├── Main.cpp │ ├── Test_Algorithms_InvokeWithVariant.cpp │ ├── Test_Algorithms_Range.cpp │ ├── Test_CompileTime_MainType.cpp │ ├── Test_CompileTime_Map.cpp │ ├── Test_CompileTime_Sequence.cpp │ ├── Test_CompileTime_StaticFloat.cpp │ ├── Test_CompileTime_StringToID.cpp │ ├── Test_CompileTime_TemplateMath.cpp │ ├── Test_CompileTime_TypeInfo.cpp │ ├── Test_CompileTime_TypeList.cpp │ ├── Test_CompileTime_TypeQualifier.cpp │ ├── Test_CompileTime_TypeTraits.cpp │ ├── Test_Containers_Adaptors.cpp │ ├── Test_Containers_Array.cpp │ ├── Test_Containers_CircularQueue.cpp │ ├── Test_Containers_Deque.cpp │ ├── Test_Containers_HashSet.cpp │ ├── Test_Containers_IndexedArray.cpp │ ├── Test_Containers_List.cpp │ ├── Test_Containers_Map.cpp │ ├── Test_Containers_Queue.cpp │ ├── Test_Containers_Set.cpp │ ├── Test_Containers_String.cpp │ ├── Test_Containers_Tuple.cpp │ ├── Test_Math_Abs.cpp │ ├── Test_Math_Bit.cpp │ ├── Test_Math_Clamp_Wrap.cpp │ ├── Test_Math_Color.cpp │ ├── Test_Math_ColorFormat.cpp │ ├── Test_Math_Factorial.cpp │ ├── Test_Math_FloorCeilTruncRoundFract.cpp │ ├── Test_Math_Frustum.cpp │ ├── Test_Math_ImageUtils.cpp │ ├── Test_Math_Matrix.cpp │ ├── Test_Math_OverflowCheck.cpp │ ├── Test_Math_Plane.cpp │ ├── Test_Math_Transform.cpp │ ├── Test_OS_Atomic.cpp │ ├── Test_OS_Date.cpp │ ├── Test_OS_FileSystem.cpp │ ├── Test_Runtime_VirtualTypelist.cpp │ ├── Test_Temp.cpp │ ├── Test_Type_Optional.cpp │ ├── Test_Types_Cast.cpp │ ├── Test_Types_FileAddress.cpp │ ├── Test_Types_Function.cpp │ ├── Test_Types_StringParser.cpp │ ├── Test_Types_Time.cpp │ └── Test_Types_Union.cpp └── Script │ ├── Common.h │ ├── Main.cpp │ ├── Test_Eval.cpp │ ├── Test_ScriptClass.cpp │ ├── Test_ScriptScalarMath.cpp │ ├── Test_ScriptString.cpp │ └── Test_ScriptVectorMath.cpp ├── Engine ├── Base │ ├── Common │ │ ├── BaseObject.h │ │ ├── Common.h │ │ ├── Defines.h │ │ ├── EModuleGroup.h │ │ ├── EngineSubSystems.h │ │ ├── Enums.h │ │ ├── IDs.h │ │ └── ThreadID.h │ ├── DataProvider │ │ ├── BuiltinStorageDataProvider.cpp │ │ ├── DataMessages.h │ │ ├── DataProviderManager.cpp │ │ ├── DataProviderObjectsConstructor.cpp │ │ ├── DataProviderObjectsConstructor.h │ │ ├── FileDataInput.cpp │ │ ├── FileDataOutput.cpp │ │ ├── FileInputStream.cpp │ │ ├── FileOutputStream.cpp │ │ ├── InMemoryDataProvider.cpp │ │ ├── InternetDataProvider.cpp │ │ └── LocalStorageDataProvider.cpp │ ├── Engine.Base.h │ ├── Main │ │ ├── MainSystem.cpp │ │ └── MainSystem.h │ ├── Modules │ │ ├── MessageCache.h │ │ ├── MessageHandler.cpp │ │ ├── MessageHandler.h │ │ ├── MessageHelpers.h │ │ ├── Module.Send.inl.h │ │ ├── Module.cpp │ │ ├── Module.h │ │ ├── Module.inl.h │ │ ├── ModuleAsyncTasks.h │ │ ├── ModuleUtils.h │ │ ├── ModulesFactory.cpp │ │ └── ModulesFactory.h │ ├── Public │ │ ├── AsyncMessage.h │ │ ├── CreateInfo.h │ │ ├── DataProvider.h │ │ ├── ModuleMessages.h │ │ ├── ParallelThread.h │ │ ├── ProfilingMessages.h │ │ └── TaskModule.h │ ├── Tasks │ │ ├── AsyncTask.h │ │ ├── TaskManager.cpp │ │ ├── TaskManager.h │ │ └── TaskModule.cpp │ └── Threads │ │ ├── ParallelThreadImpl.cpp │ │ ├── ParallelThreadImpl.h │ │ ├── ThreadManager.cpp │ │ └── ThreadManager.h ├── CMakeLists.txt ├── Graphics │ ├── Engine.Graphics.h │ ├── Impl │ │ ├── AsyncCommandBuffer.cpp │ │ ├── BatchRenderer.cpp │ │ ├── CommandBufferManager.cpp │ │ ├── Font.cpp │ │ ├── FontManager.cpp │ │ ├── GraphicsBaseModule.cpp │ │ ├── GraphicsBaseModule.h │ │ ├── GraphicsObjectsConstructor.h │ │ ├── Main.cpp │ │ └── TextureLineAtlas.h │ └── Public │ │ ├── BatchRenderer.h │ │ ├── Commands.h │ │ ├── Common.h │ │ ├── Font.h │ │ ├── IDs.h │ │ ├── Primitives.h │ │ └── Vertices.h ├── ImportExport │ ├── Engine.ImportExport.h │ ├── Impl │ │ ├── GX_ImageFormat.h │ │ ├── GX_ImageLoader.cpp │ │ ├── GX_ImageSaver.cpp │ │ ├── ImportExportObjectsConstructor.h │ │ └── Main.cpp │ ├── Public │ │ ├── Common.h │ │ ├── IDs.h │ │ └── Image.h │ └── README.md ├── PipelineCompiler │ ├── Common │ │ ├── ArraySize.h │ │ ├── Common.h │ │ ├── Packing.h │ │ ├── ShaderEnums.h │ │ └── ToGLSL.h │ ├── Pipelines │ │ ├── BasePipeline.cpp │ │ ├── BasePipeline.h │ │ ├── BasePipeline_Pass1.cpp │ │ ├── BasePipeline_Pass2.cpp │ │ ├── ComputePipeline.cpp │ │ ├── ComputePipeline.h │ │ ├── GraphicsPipeline.cpp │ │ ├── GraphicsPipeline.h │ │ ├── PipelineManager.cpp │ │ └── PipelineManager.h │ ├── README.md │ ├── Serializers │ │ ├── AngelScriptSerializer.cpp │ │ ├── AngelScriptSerializer.h │ │ ├── CppSerializer.cpp │ │ ├── CppSerializer.h │ │ └── ISerializer.h │ ├── Shaders │ │ ├── DeserializedShader.cpp │ │ ├── DeserializedShader.h │ │ ├── ShaderCompiler.cpp │ │ ├── ShaderCompiler.h │ │ ├── ShaderCompiler_CLCompiler.cpp │ │ ├── ShaderCompiler_CLTranslator.cpp │ │ ├── ShaderCompiler_CPPTranslator.cpp │ │ ├── ShaderCompiler_GLCompiler.cpp │ │ ├── ShaderCompiler_GLParser.cpp │ │ ├── ShaderCompiler_GLSLTranslator.cpp │ │ ├── ShaderCompiler_HLSLCompiler.cpp │ │ ├── ShaderCompiler_HLSLTranslator.cpp │ │ ├── ShaderCompiler_Includer.cpp │ │ ├── ShaderCompiler_Includer.h │ │ ├── ShaderCompiler_NameValidator.cpp │ │ ├── ShaderCompiler_NameValidator.h │ │ ├── ShaderCompiler_ReplaceTypes.cpp │ │ ├── ShaderCompiler_Translator.cpp │ │ ├── ShaderCompiler_Translator.h │ │ ├── ShaderCompiler_Utils.h │ │ ├── ShaderCompiler_VkCompiler.cpp │ │ └── glslang_Include.h │ ├── cl │ │ ├── cl_source_vfs.cpp │ │ ├── cl_source_vfs.h │ │ ├── funcs.cpp │ │ ├── matrix.cpp │ │ └── vload.cpp │ ├── glsl │ │ ├── AABBox.cpp │ │ ├── Billow.cpp │ │ ├── BitMath.cpp │ │ ├── Blur.cpp │ │ ├── Cellular.cpp │ │ ├── Cmp.cpp │ │ ├── Color.cpp │ │ ├── Colors.cpp │ │ ├── DHash.cpp │ │ ├── DefaultSDF.cpp │ │ ├── Defines.cpp │ │ ├── Emitters.cpp │ │ ├── FBM.cpp │ │ ├── Gabor.cpp │ │ ├── GlobalIndex.cpp │ │ ├── Gravity.cpp │ │ ├── Hash.cpp │ │ ├── Hash2.cpp │ │ ├── IHash.cpp │ │ ├── Line2.cpp │ │ ├── Line3.cpp │ │ ├── Magnetism.cpp │ │ ├── Math.cpp │ │ ├── MathDef.cpp │ │ ├── Matrix.cpp │ │ ├── Perlin.cpp │ │ ├── Plane.cpp │ │ ├── Quaternion.cpp │ │ ├── Ray.cpp │ │ ├── Rect.cpp │ │ ├── Simplex.cpp │ │ ├── Turbulence.cpp │ │ ├── TypeInfo.cpp │ │ ├── Utils.cpp │ │ ├── Voronoi.cpp │ │ ├── VoronoiLines.cpp │ │ ├── VoronoiNoise.cpp │ │ ├── _NoiseUtils.cpp │ │ ├── glsl_source_vfs.cpp │ │ └── glsl_source_vfs.h │ └── hlsl │ │ ├── hlsl_source_vfs.cpp │ │ ├── hlsl_source_vfs.h │ │ └── vload.cpp ├── Platforms │ ├── Engine.Platforms.h │ ├── Impl │ │ ├── Main.cpp │ │ └── PipelineTemplate.cpp │ ├── Input │ │ ├── InputManager.cpp │ │ ├── InputManager.h │ │ └── InputThread.cpp │ ├── OpenCL │ │ ├── 120 │ │ │ ├── CL1BaseModule.cpp │ │ │ ├── CL1BaseModule.h │ │ │ ├── CL1Buffer.cpp │ │ │ ├── CL1CommandBuffer.cpp │ │ │ ├── CL1CommandBuilder.cpp │ │ │ ├── CL1CommandQueue.cpp │ │ │ ├── CL1Device.cpp │ │ │ ├── CL1Device.h │ │ │ ├── CL1Emulator.cpp │ │ │ ├── CL1Emulator.h │ │ │ ├── CL1Enums.h │ │ │ ├── CL1Image.cpp │ │ │ ├── CL1Messages.h │ │ │ ├── CL1Pipeline.cpp │ │ │ ├── CL1PipelineResourceTable.cpp │ │ │ ├── CL1ResourceCache.h │ │ │ ├── CL1Sampler.cpp │ │ │ ├── CL1SamplerCache.h │ │ │ ├── CL1SyncManager.cpp │ │ │ ├── cl2.cpp │ │ │ └── cl2.h │ │ ├── OpenCLContext.cpp │ │ ├── OpenCLObjectsConstructor.h │ │ └── OpenCLThread.cpp │ ├── OpenGL │ │ ├── 450 │ │ │ ├── GL4BaseModule.cpp │ │ │ ├── GL4BaseModule.h │ │ │ ├── GL4Buffer.cpp │ │ │ ├── GL4CommandBuffer.cpp │ │ │ ├── GL4CommandBuilder.cpp │ │ │ ├── GL4CommandQueue.cpp │ │ │ ├── GL4Device.cpp │ │ │ ├── GL4Device.h │ │ │ ├── GL4Emulator.h │ │ │ ├── GL4Enums.h │ │ │ ├── GL4FlippedSystemFramebuffer.h │ │ │ ├── GL4Framebuffer.cpp │ │ │ ├── GL4Image.cpp │ │ │ ├── GL4Memory.cpp │ │ │ ├── GL4Messages.h │ │ │ ├── GL4Pipeline.cpp │ │ │ ├── GL4PipelineResourceTable.cpp │ │ │ ├── GL4QueryPool.cpp │ │ │ ├── GL4RenderPass.cpp │ │ │ ├── GL4ResourceCache.h │ │ │ ├── GL4Sampler.cpp │ │ │ ├── GL4SamplerCache.h │ │ │ ├── GL4SyncManager.cpp │ │ │ ├── GL4SystemFramebuffer.h │ │ │ ├── gl4.cpp │ │ │ └── gl4.h │ │ ├── 300es │ │ │ ├── gles3.cpp │ │ │ └── gles3.h │ │ ├── EGL │ │ │ ├── EGLRenderContext.cpp │ │ │ └── EGLRenderContext.h │ │ ├── Linux │ │ │ ├── GLX11Context.cpp │ │ │ ├── GLX11Context.h │ │ │ ├── GLX11Library.cpp │ │ │ └── GLX11Library.h │ │ ├── OpenGLContext.cpp │ │ ├── OpenGLObjectsConstructor.h │ │ ├── OpenGLThread.cpp │ │ └── Windows │ │ │ ├── GLWinContext.cpp │ │ │ ├── GLWinContext.h │ │ │ ├── GLWinLibrary.cpp │ │ │ └── GLWinLibrary.h │ ├── Public │ │ ├── Common.h │ │ ├── GPU │ │ │ ├── Buffer.h │ │ │ ├── BufferEnums.h │ │ │ ├── CommandBuffer.h │ │ │ ├── CommandEnums.h │ │ │ ├── CommandQueue.h │ │ │ ├── Context.cpp │ │ │ ├── Context.h │ │ │ ├── Enums.ToString.h │ │ │ ├── FragmentOutputState.h │ │ │ ├── Framebuffer.cpp │ │ │ ├── Framebuffer.h │ │ │ ├── IDs.h │ │ │ ├── Image.cpp │ │ │ ├── Image.h │ │ │ ├── ImageEnums.h │ │ │ ├── ImageLayer.h │ │ │ ├── ImageSwizzle.h │ │ │ ├── Memory.h │ │ │ ├── MemoryEnums.h │ │ │ ├── MipmapLevel.h │ │ │ ├── MultiSamples.h │ │ │ ├── ObjectEnums.h │ │ │ ├── Pipeline.cpp │ │ │ ├── Pipeline.h │ │ │ ├── PipelineLayout.cpp │ │ │ ├── PipelineLayout.h │ │ │ ├── PixelFormatEnums.h │ │ │ ├── Query.h │ │ │ ├── QueryEnums.h │ │ │ ├── RenderPass.cpp │ │ │ ├── RenderPass.h │ │ │ ├── RenderPassEnums.h │ │ │ ├── RenderState.cpp │ │ │ ├── RenderState.h │ │ │ ├── RenderStateEnums.h │ │ │ ├── Sampler.cpp │ │ │ ├── Sampler.h │ │ │ ├── SamplerEnums.h │ │ │ ├── ShaderEnums.h │ │ │ ├── Sync.h │ │ │ ├── Thread.h │ │ │ ├── VR.h │ │ │ ├── VertexAttribs.h │ │ │ ├── VertexDescr.h │ │ │ ├── VertexEnums.h │ │ │ ├── VertexInputState.cpp │ │ │ └── VertexInputState.h │ │ ├── OS │ │ │ ├── Display.h │ │ │ ├── IDs.h │ │ │ ├── Input.h │ │ │ ├── OSEnums.h │ │ │ ├── Platform.h │ │ │ ├── ScreenCoords.h │ │ │ └── Window.h │ │ └── Tools │ │ │ ├── AsyncCommandsEmulator.h │ │ │ ├── GPUThreadHelper.cpp │ │ │ ├── GPUThreadHelper.h │ │ │ ├── ImageUtils.cpp │ │ │ ├── ImageUtils.h │ │ │ ├── ImageViewHashMap.h │ │ │ ├── MemoryMapperHelper.cpp │ │ │ ├── MemoryMapperHelper.h │ │ │ ├── SamplerUtils.cpp │ │ │ ├── SamplerUtils.h │ │ │ ├── WindowHelper.cpp │ │ │ └── WindowHelper.h │ ├── SDL │ │ ├── SDLDisplay.cpp │ │ ├── SDLDisplay.h │ │ ├── SDLKeyInput.cpp │ │ ├── SDLMessages.h │ │ ├── SDLMouseInput.cpp │ │ ├── SDLObjectsConstructor.h │ │ ├── SDLPlatform.cpp │ │ └── SDLWindow.cpp │ ├── Soft │ │ ├── Android │ │ │ ├── SwAndSurface.cpp │ │ │ └── SwAndSurface.h │ │ ├── Impl │ │ │ ├── SWBaseModule.cpp │ │ │ ├── SWBaseModule.h │ │ │ ├── SWBuffer.cpp │ │ │ ├── SWCommandBuffer.cpp │ │ │ ├── SWCommandBuilder.cpp │ │ │ ├── SWCommandQueue.cpp │ │ │ ├── SWDevice.cpp │ │ │ ├── SWDevice.h │ │ │ ├── SWDeviceProperties.h │ │ │ ├── SWEnums.h │ │ │ ├── SWImage.cpp │ │ │ ├── SWMemory.cpp │ │ │ ├── SWMessages.h │ │ │ ├── SWPipeline.cpp │ │ │ ├── SWPipelineResourceTable.cpp │ │ │ ├── SWSampler.cpp │ │ │ ├── SWSamplerCache.h │ │ │ ├── SWShaderModel.cpp │ │ │ ├── SWShaderModel.h │ │ │ ├── SWSyncManager.cpp │ │ │ └── SWSyncObjects.h │ │ ├── ShaderLang │ │ │ ├── SWLang.h │ │ │ ├── SWLangArray.h │ │ │ ├── SWLangBarrier.h │ │ │ ├── SWLangBuffer.h │ │ │ ├── SWLangCommon.h │ │ │ ├── SWLangGLM.h │ │ │ ├── SWLangImage.cpp │ │ │ ├── SWLangImage.h │ │ │ ├── SWLangShared.h │ │ │ ├── SWLangTexture.cpp │ │ │ ├── SWLangTexture.h │ │ │ ├── SWLangTexture2D.h │ │ │ ├── SWShaderHelper.h │ │ │ ├── gen_Image.h │ │ │ └── gen_Texture.h │ │ ├── SoftRendererContext.cpp │ │ ├── SoftRendererObjectsConstructor.h │ │ ├── SoftRendererThread.cpp │ │ └── Windows │ │ │ ├── SwWinSurface.cpp │ │ │ └── SwWinSurface.h │ ├── VR │ │ ├── Emulator │ │ │ └── EmulatorVRThread.cpp │ │ ├── VRObjectsConstructor.cpp │ │ └── VRObjectsConstructor.h │ ├── Vulkan │ │ ├── 110 │ │ │ ├── Vk1BaseModule.cpp │ │ │ ├── Vk1BaseModule.h │ │ │ ├── Vk1BaseObject.h │ │ │ ├── Vk1Buffer.cpp │ │ │ ├── Vk1CommandBuffer.cpp │ │ │ ├── Vk1CommandBuilder.cpp │ │ │ ├── Vk1CommandQueue.cpp │ │ │ ├── Vk1Device.cpp │ │ │ ├── Vk1Device.h │ │ │ ├── Vk1Enums.h │ │ │ ├── Vk1Framebuffer.cpp │ │ │ ├── Vk1Image.cpp │ │ │ ├── Vk1Library.h │ │ │ ├── Vk1ManagedMemory.cpp │ │ │ ├── Vk1MemoryManager.cpp │ │ │ ├── Vk1Messages.h │ │ │ ├── Vk1Pipeline.cpp │ │ │ ├── Vk1PipelineCache.cpp │ │ │ ├── Vk1PipelineCache.h │ │ │ ├── Vk1PipelineLayout.cpp │ │ │ ├── Vk1PipelineLayout.h │ │ │ ├── Vk1PipelineResourceTable.cpp │ │ │ ├── Vk1QueryPool.cpp │ │ │ ├── Vk1RenderPass.cpp │ │ │ ├── Vk1RenderPassCache.h │ │ │ ├── Vk1ResourceCache.h │ │ │ ├── Vk1Sampler.cpp │ │ │ ├── Vk1SamplerCache.h │ │ │ ├── Vk1SwapchainImage.h │ │ │ ├── Vk1SyncManager.cpp │ │ │ ├── vulkan1.cpp │ │ │ ├── vulkan1.h │ │ │ ├── vulkan1_platform.cpp │ │ │ ├── vulkan1_platform.h │ │ │ └── vulkan1_utils.h │ │ ├── Android │ │ │ ├── VkAndSurface.cpp │ │ │ └── VkAndSurface.h │ │ ├── Linux │ │ │ ├── VkLinuxSurface.cpp │ │ │ └── VkLinuxSurface.h │ │ ├── VulkanContext.cpp │ │ ├── VulkanObjectsConstructor.h │ │ ├── VulkanThread.cpp │ │ └── Windows │ │ │ ├── VkWinSurface.cpp │ │ │ └── VkWinSurface.h │ └── Windows │ │ ├── WinDisplay.cpp │ │ ├── WinDisplay.h │ │ ├── WinKeyInput.cpp │ │ ├── WinMessages.h │ │ ├── WinMouseInput.cpp │ │ ├── WinObjectsConstructor.h │ │ ├── WinPlatform.cpp │ │ └── WinWindow.cpp ├── Profilers │ ├── Engine.Profilers.h │ ├── Impl │ │ ├── FPSCounter.cpp │ │ ├── Main.cpp │ │ └── ProfilerObjectsConstructor.h │ └── Public │ │ ├── Common.h │ │ ├── GpuStatistic.h │ │ └── IDs.h ├── README.md ├── ResourcePacker │ ├── FilePacker │ │ ├── BinaryFilePacker.cpp │ │ ├── BinaryFilePacker.h │ │ ├── CppFileSystemPacker.cpp │ │ ├── CppFileSystemPacker.h │ │ └── IFileSystemPacker.h │ ├── Images │ │ ├── DevILConverter.cpp │ │ ├── ImageConverter.cpp │ │ └── ImageConverter.h │ ├── Main.cpp │ ├── Packer │ │ ├── Common.h │ │ ├── ResourcePacker.cpp │ │ ├── ResourcePacker.h │ │ └── ScriptHelper.cpp │ └── Pipelines │ │ ├── PipelineConverter.cpp │ │ ├── PipelineConverter.h │ │ ├── ScriptComputePipeline.cpp │ │ ├── ScriptComputePipeline.h │ │ ├── ScriptGraphicsPipeline.cpp │ │ ├── ScriptGraphicsPipeline.h │ │ ├── ScriptPipeline.cpp │ │ └── ScriptPipeline.h └── Scene │ ├── Camera │ ├── FreeCamera.cpp │ └── FreeVRCamera.cpp │ ├── Engine.Scene.h │ ├── Impl │ ├── BaseSceneModule.cpp │ ├── BaseSceneModule.h │ ├── Main.cpp │ ├── SceneMainThread.cpp │ ├── SceneManager.cpp │ └── SceneObjectConstructor.h │ ├── Logic │ └── SceneLogicMainThread.cpp │ ├── Physics │ └── ScenePhysicsMainThread.cpp │ ├── Public │ ├── Camera.h │ ├── Common.h │ ├── IDs.h │ ├── Scene.h │ └── Surface.h │ ├── Renderer │ └── SceneRendererMainThread.cpp │ └── Surface │ ├── OffscreenSurface.cpp │ ├── VRSurface.cpp │ ├── VideoRecorderSurface.cpp │ └── WindowSurface.cpp ├── EngineTests ├── Base │ ├── Common.h │ ├── Graphics │ │ ├── GApp.cpp │ │ ├── GApp.h │ │ └── Test.GWindow.cpp │ ├── Main.cpp │ ├── Pipelines │ │ ├── Default.ppln │ │ ├── Default2.ppln │ │ ├── all_pipelines.h │ │ ├── default.cpp │ │ ├── default2.cpp │ │ ├── resources.as │ │ └── shared_types.h │ └── Window │ │ └── Test.Window.cpp ├── Graphics │ ├── GApp.cpp │ ├── GApp.h │ ├── Main.cpp │ └── Pipelines │ │ ├── Default3.ppln │ │ ├── all_pipelines.h │ │ ├── default3.cpp │ │ ├── resources.as │ │ └── shared_types.h └── Platforms.GAPI │ ├── Common.h │ ├── Compiler │ ├── PApp.cpp │ ├── PApp.h │ ├── PApp_AtomicAdd.cpp │ ├── PApp_FindLSB.cpp │ ├── PApp_FindMSB.cpp │ ├── PApp_GlobalToLocal.cpp │ ├── PApp_Include.cpp │ ├── PApp_InlineAll.cpp │ ├── PApp_UnnamedBuffer.cpp │ ├── PApp_VecSwizzle.cpp │ ├── Pipelines │ │ ├── AtomicAdd.ppln │ │ ├── FindLSB.ppln │ │ ├── FindMSB.ppln │ │ ├── GlobalToLocal.ppln │ │ ├── Include.ppln │ │ ├── InlineAll.ppln │ │ ├── UnnamedBuffer.ppln │ │ ├── VecSwizzle.ppln │ │ ├── all_pipelines.h │ │ ├── atomicadd.cpp │ │ ├── findlsb.cpp │ │ ├── findmsb.cpp │ │ ├── globaltolocal.cpp │ │ ├── include.cpp │ │ ├── inlineall.cpp │ │ ├── shared_types.h │ │ ├── unnamedbuffer.cpp │ │ └── vecswizzle.cpp │ └── Test.PipelineCompiler.cpp │ ├── Compute │ ├── CApp.cpp │ ├── CApp.h │ ├── CApp_BufferAlign.cpp │ ├── CApp_BufferRange.cpp │ ├── CApp_ClearBuffer.cpp │ ├── CApp_ConvertFloatImage2D.cpp │ ├── CApp_CopyBuffer.cpp │ ├── CApp_CopyBufferToImage2D.cpp │ ├── CApp_CopyImage2D.cpp │ ├── CApp_CopyImage2DToBuffer.cpp │ ├── CApp_DynamicBuffer.cpp │ ├── CApp_ExplicitMemoryObjectSharing.cpp │ ├── CApp_Image2DBilinearFilter.cpp │ ├── CApp_Image2DNearestFilter.cpp │ ├── CApp_ShaderBarrier.cpp │ ├── CApp_UpdateBuffer.cpp │ ├── Pipelines │ │ ├── BufferAlign.ppln │ │ ├── CopyFloatImage2D.ppln │ │ ├── DynamicBuffer.ppln │ │ ├── Image2DBilinearFilter.ppln │ │ ├── Image2DNearestFilter.ppln │ │ ├── ShaderBarrier.ppln │ │ ├── all_pipelines.h │ │ ├── bufferalign.cpp │ │ ├── copyfloatimage2d.cpp │ │ ├── dynamicbuffer.cpp │ │ ├── image2dbilinearfilter.cpp │ │ ├── image2dnearestfilter.cpp │ │ ├── shaderbarrier.cpp │ │ └── shared_types.h │ └── Test.ComputeApi.cpp │ ├── Graphics │ ├── GApp.cpp │ ├── GApp.h │ ├── GApp_Texture2DBilinearFilter.cpp │ ├── GApp_Texture2DNearestFilter.cpp │ ├── Pipelines │ │ ├── Texture2DBilinearFilter.ppln │ │ ├── Texture2DNearestFilter.ppln │ │ ├── all_pipelines.h │ │ ├── shared_types.h │ │ ├── texture2dbilinearfilter.cpp │ │ └── texture2dnearestfilter.cpp │ └── Test.GraphicsApi.cpp │ ├── Main.cpp │ ├── MultiGPU │ └── Test.MultiGPU.cpp │ ├── Sharing │ ├── SApp.cpp │ ├── SApp.h │ ├── SApp_BufferSharing.cpp │ ├── SApp_ImageSharing.cpp │ └── Test.Sharing.cpp │ ├── Window │ ├── Test.Window.cpp │ └── Window1.h │ └── resources.as ├── External ├── README.md ├── cmake │ ├── AngelScript │ │ ├── CMakeLists.txt │ │ └── build.cmake │ ├── CMakeLists.txt │ ├── DevIL │ │ ├── build.cmake │ │ └── main.cpp │ ├── DirectX │ │ └── dx11.cmake │ ├── FreeImage │ │ └── build.cmake │ ├── SDL2 │ │ └── build.cmake │ ├── download.cmake │ ├── glslang │ │ ├── build.cmake │ │ └── build_internal.cmake │ ├── lodepng │ │ └── build.cmake │ ├── lz4 │ │ ├── CMakeLists.txt │ │ └── build.cmake │ ├── miniz │ │ ├── CMakeLists.txt │ │ └── build.cmake │ └── options.cmake ├── downloaded │ ├── AngelScript │ │ └── sdk │ │ │ └── angelscript │ │ │ └── projects │ │ │ └── cmake │ │ │ └── CMakeLists.txt │ ├── SDL2 │ │ └── CMakeLists.txt │ └── glslang │ │ └── CMakeLists.txt ├── opencl │ ├── cl_platform.h │ ├── opencl11_core.h │ ├── opencl11_gl.h │ ├── opencl12_core.h │ ├── opencl12_gl.h │ ├── opencl20_core.h │ ├── opencl20_gl.h │ ├── opencl21_core.h │ ├── opencl21_gl.h │ ├── opencl22_core.h │ ├── opencl22_gl.h │ └── origin │ │ ├── opencl10 │ │ └── CL │ │ │ ├── cl.h │ │ │ ├── cl_d3d10.h │ │ │ ├── cl_ext.h │ │ │ ├── cl_gl.h │ │ │ ├── cl_gl_ext.h │ │ │ ├── cl_platform.h │ │ │ └── opencl.h │ │ ├── opencl11 │ │ └── CL │ │ │ ├── cl.h │ │ │ ├── cl_d3d10.h │ │ │ ├── cl_ext.h │ │ │ ├── cl_gl.h │ │ │ ├── cl_gl_ext.h │ │ │ ├── cl_platform.h │ │ │ └── opencl.h │ │ ├── opencl12 │ │ └── CL │ │ │ ├── cl.h │ │ │ ├── cl_d3d10.h │ │ │ ├── cl_d3d11.h │ │ │ ├── cl_dx9_media_sharing.h │ │ │ ├── cl_dx9_media_sharing_intel.h │ │ │ ├── cl_egl.h │ │ │ ├── cl_ext.h │ │ │ ├── cl_ext_intel.h │ │ │ ├── cl_gl.h │ │ │ ├── cl_gl_ext.h │ │ │ ├── cl_platform.h │ │ │ ├── cl_va_api_media_sharing_intel.h │ │ │ └── opencl.h │ │ ├── opencl20 │ │ └── CL │ │ │ ├── cl.h │ │ │ ├── cl_d3d10.h │ │ │ ├── cl_d3d11.h │ │ │ ├── cl_dx9_media_sharing.h │ │ │ ├── cl_dx9_media_sharing_intel.h │ │ │ ├── cl_egl.h │ │ │ ├── cl_ext.h │ │ │ ├── cl_ext_intel.h │ │ │ ├── cl_gl.h │ │ │ ├── cl_gl_ext.h │ │ │ ├── cl_platform.h │ │ │ ├── cl_va_api_media_sharing_intel.h │ │ │ └── opencl.h │ │ ├── opencl21 │ │ └── CL │ │ │ ├── cl.h │ │ │ ├── cl_d3d10.h │ │ │ ├── cl_d3d11.h │ │ │ ├── cl_dx9_media_sharing.h │ │ │ ├── cl_dx9_media_sharing_intel.h │ │ │ ├── cl_egl.h │ │ │ ├── cl_ext.h │ │ │ ├── cl_ext_intel.h │ │ │ ├── cl_gl.h │ │ │ ├── cl_gl_ext.h │ │ │ ├── cl_platform.h │ │ │ ├── cl_va_api_media_sharing_intel.h │ │ │ └── opencl.h │ │ └── opencl22 │ │ └── CL │ │ ├── cl.h │ │ ├── cl_d3d10.h │ │ ├── cl_d3d11.h │ │ ├── cl_dx9_media_sharing.h │ │ ├── cl_dx9_media_sharing_intel.h │ │ ├── cl_egl.h │ │ ├── cl_ext.h │ │ ├── cl_ext_intel.h │ │ ├── cl_gl.h │ │ ├── cl_gl_ext.h │ │ ├── cl_platform.h │ │ ├── cl_va_api_media_sharing_intel.h │ │ └── opencl.h ├── opengl │ ├── glxext.h │ ├── opengl44_core.h │ ├── opengl45_core.h │ ├── opengl46_core.h │ ├── origin │ │ ├── glcorearb44.h │ │ ├── glcorearb45.h │ │ └── glcorearb46.h │ └── wglext.h ├── opengles │ ├── opengles32.h │ └── origin │ │ ├── gl32.h │ │ └── gl3platform.h └── vulkan │ ├── gen_vulkan_1.h │ ├── gen_vulkan_1_and.h │ ├── gen_vulkan_1_mir.h │ ├── gen_vulkan_1_wayland.h │ ├── gen_vulkan_1_win.h │ ├── gen_vulkan_1_xcb.h │ ├── gen_vulkan_1_xlib.h │ ├── origin │ ├── vk_icd.h │ ├── vk_layer.h │ ├── vk_platform.h │ ├── vk_sdk_platform.h │ ├── vulkan.h │ ├── vulkan_android.h │ ├── vulkan_core.h │ ├── vulkan_ios.h │ ├── vulkan_macos.h │ ├── vulkan_mir.h │ ├── vulkan_vi.h │ ├── vulkan_wayland.h │ ├── vulkan_win32.h │ ├── vulkan_xcb.h │ ├── vulkan_xlib.h │ └── vulkan_xlib_xrandr.h │ └── vulkan_api_1.h ├── LICENSE ├── Projects └── ShaderEditor │ ├── CMakeLists.txt │ ├── Common.h │ ├── Pipelines │ ├── DrawTexturedQuad.ppln │ ├── Experimental.ppln │ ├── Glowballs.ppln │ ├── ShaderToy.tmpl │ ├── ShaderToyComp.tmpl │ ├── SirenianDawn1.ppln │ ├── SirenianDawn2.ppln │ ├── Skyline.ppln │ ├── VoronnoiRecursion.ppln │ ├── all_pipelines.h │ ├── drawtexturedquad.cpp │ ├── experimental.cpp │ ├── glowballs.cpp │ ├── shared_types.h │ ├── sireniandawn1.cpp │ ├── sireniandawn2.cpp │ ├── skyline.cpp │ └── voronnoirecursion.cpp │ ├── README.md │ ├── Renderer.cpp │ ├── Renderer.h │ ├── ShaderEditorApp.cpp │ ├── ShaderEditorApp.h │ ├── ShaderEditorApp_Samples.cpp │ ├── images │ ├── greynoise.cpp │ ├── vfs_images_main.cpp │ └── vfs_images_main.h │ ├── res │ ├── greynoise.png │ └── old │ │ ├── img.png │ │ └── img1.png │ └── resources.as ├── README.md └── Utils ├── CMake ├── Builder │ ├── CMakeBuilder.cpp │ ├── CMakeBuilder.h │ ├── CMakeBuilder_Compiler.cpp │ ├── CMakeBuilder_ExternalProjects.cpp │ ├── CMakeBuilder_Project.cpp │ ├── ClangConstants.h │ ├── GccConstants.h │ └── MSVisualStudioConstants.h └── Proj │ ├── GenCompilers.cpp │ ├── GenCore.cpp │ ├── GenEngine.cpp │ ├── GenShaderEditor.cpp │ ├── GenUtils.cpp │ ├── Main.cpp │ └── PipelineBuilding.h └── CMakeLists.txt /.gitignore: -------------------------------------------------------------------------------- 1 | *.obj 2 | *.tlog 3 | *.lib 4 | *.ilk 5 | *.log 6 | *.pdb 7 | *.exe 8 | *.db 9 | *.suo 10 | *.html 11 | *.db-wal 12 | *.db-shm 13 | *.opendb 14 | *.ipch 15 | *.idb 16 | *.exp 17 | *.tmp 18 | *.dll 19 | *.iobj 20 | *.ipdb 21 | /build 22 | /Tests/PipelineCompiler/out 23 | /External/FreeImage 24 | /External/glm 25 | /External/OculusSDK -------------------------------------------------------------------------------- /Android/.gitignore: -------------------------------------------------------------------------------- 1 | *.idea 2 | *.iml 3 | .gradle 4 | /local.properties 5 | /.idea/workspace.xml 6 | /.idea/libraries 7 | .DS_Store 8 | /build 9 | /captures 10 | .externalNativeBuild 11 | -------------------------------------------------------------------------------- /Android/app/.gitignore: -------------------------------------------------------------------------------- 1 | /build 2 | -------------------------------------------------------------------------------- /Android/app/proguard-rules.pro: -------------------------------------------------------------------------------- 1 | # Add project specific ProGuard rules here. 2 | # By default, the flags in this file are appended to flags specified 3 | # in /Users/user/Library/Android/sdk/tools/proguard/proguard-android.txt 4 | # You can edit the include path and order by changing the proguardFiles 5 | # directive in build.gradle. 6 | # 7 | # For more details, see 8 | # http://developer.android.com/guide/developing/tools/proguard.html 9 | 10 | # Add any project specific keep options here: 11 | 12 | # If your project uses WebView with JS, uncomment the following 13 | # and specify the fully qualified class name to the JavaScript interface 14 | # class: 15 | #-keepclassmembers class fqcn.of.javascript.interface.for.webview { 16 | # public *; 17 | #} 18 | -------------------------------------------------------------------------------- /Android/app/src/main/java/mgf/android/GXActivity.java: -------------------------------------------------------------------------------- 1 | // Copyright (c) Zhirnov Andrey. For more information see 'LICENSE.txt' 2 | /* 3 | */ 4 | 5 | package mgf.android; 6 | 7 | import android.app.NativeActivity; 8 | import android.content.Intent; 9 | import android.os.Bundle; 10 | import android.util.Log; 11 | import android.view.KeyEvent; 12 | 13 | public class GXActivity extends NativeActivity { 14 | 15 | static { 16 | System.loadLibrary( "ModularGraphicsFramework" ); 17 | } 18 | 19 | 20 | public GXActivity() { 21 | super(); 22 | } 23 | 24 | @Override 25 | public void onCreate(Bundle savedInstanceState) { 26 | super.onCreate(savedInstanceState); 27 | } 28 | 29 | @Override 30 | public void onStart() { 31 | super.onStart(); 32 | } 33 | 34 | @Override 35 | public void onDestroy() { 36 | super.onDestroy(); 37 | } 38 | 39 | @Override 40 | public boolean dispatchKeyEvent(KeyEvent event) { 41 | 42 | return super.dispatchKeyEvent(event); 43 | } 44 | 45 | @Override 46 | protected void onActivityResult(int requestCode, int resultCode, Intent data) { 47 | super.onActivityResult(requestCode, resultCode, data); 48 | } 49 | 50 | @Override 51 | public void onStop() { 52 | super.onStop(); 53 | } 54 | } 55 | 56 | -------------------------------------------------------------------------------- /Android/app/src/main/res/mipmap-hdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/azhirnov/ModularGraphicsFramework/348be601f1991f102defa0c99250529f5e44c4d3/Android/app/src/main/res/mipmap-hdpi/ic_launcher.png -------------------------------------------------------------------------------- /Android/app/src/main/res/mipmap-mdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/azhirnov/ModularGraphicsFramework/348be601f1991f102defa0c99250529f5e44c4d3/Android/app/src/main/res/mipmap-mdpi/ic_launcher.png -------------------------------------------------------------------------------- /Android/app/src/main/res/mipmap-xhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/azhirnov/ModularGraphicsFramework/348be601f1991f102defa0c99250529f5e44c4d3/Android/app/src/main/res/mipmap-xhdpi/ic_launcher.png -------------------------------------------------------------------------------- /Android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/azhirnov/ModularGraphicsFramework/348be601f1991f102defa0c99250529f5e44c4d3/Android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png -------------------------------------------------------------------------------- /Android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/azhirnov/ModularGraphicsFramework/348be601f1991f102defa0c99250529f5e44c4d3/Android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png -------------------------------------------------------------------------------- /Android/app/src/main/res/values/colors.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /Android/app/src/main/res/values/strings.xml: -------------------------------------------------------------------------------- 1 | 2 | ModularGraphicsFramework Android Sample 3 | 4 | -------------------------------------------------------------------------------- /Android/app/src/main/res/values/styles.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /Android/build.gradle: -------------------------------------------------------------------------------- 1 | // Top-level build file where you can add configuration options common to all sub-projects/modules. 2 | 3 | buildscript { 4 | repositories { 5 | jcenter() 6 | google() 7 | } 8 | dependencies { 9 | classpath 'com.android.tools.build:gradle:3.1.0' 10 | 11 | // NOTE: Do not place your application dependencies here; they belong 12 | // in the individual module build.gradle files 13 | } 14 | } 15 | 16 | allprojects { 17 | repositories { 18 | jcenter() 19 | flatDir { 20 | dirs 'libs' 21 | } 22 | google() 23 | } 24 | } 25 | 26 | task clean(type: Delete) { 27 | delete rootProject.buildDir 28 | } 29 | -------------------------------------------------------------------------------- /Android/gradle.properties: -------------------------------------------------------------------------------- 1 | # Project-wide Gradle settings. 2 | 3 | # IDE (e.g. Android Studio) users: 4 | # Gradle settings configured through the IDE *will override* 5 | # any settings specified in this file. 6 | 7 | # For more details on how to configure your build environment visit 8 | # http://www.gradle.org/docs/current/userguide/build_environment.html 9 | 10 | # Specifies the JVM arguments used for the daemon process. 11 | # The setting is particularly useful for tweaking memory settings. 12 | org.gradle.jvmargs=-Xmx1536m 13 | 14 | # When configured, Gradle will run in incubating parallel mode. 15 | # This option should only be used with decoupled projects. More details, visit 16 | # http://www.gradle.org/docs/current/userguide/multi_project_builds.html#sec:decoupled_projects 17 | # org.gradle.parallel=true 18 | -------------------------------------------------------------------------------- /Android/settings.gradle: -------------------------------------------------------------------------------- 1 | include ':app' -------------------------------------------------------------------------------- /Core/Config/Engine.Version.h: -------------------------------------------------------------------------------- 1 | // Copyright (c) Zhirnov Andrey. For more information see 'LICENSE.txt' 2 | 3 | #pragma once 4 | 5 | namespace Engine 6 | { 7 | static const char ENGINE_NAME[] = "ModularGraphicsFramework"; 8 | static const char ENGINE_BUILD_DATE[] = __DATE__ " " __TIME__; 9 | static const int _ENGINE_VERSION_MAJ = 0; 10 | static const int _ENGINE_VERSION_MIN = 300; 11 | static const int ENGINE_VERSION = _ENGINE_VERSION_MAJ * 1000 + _ENGINE_VERSION_MIN; 12 | 13 | 14 | } // Engine -------------------------------------------------------------------------------- /Core/Config/Main.cpp: -------------------------------------------------------------------------------- 1 | // empty file to create lib -------------------------------------------------------------------------------- /Core/Physics/Algorithms/AcceleratedMotion.h: -------------------------------------------------------------------------------- 1 | // Copyright (c) Zhirnov Andrey. For more information see 'LICENSE.txt' 2 | 3 | #pragma once 4 | 5 | #include "Core/Physics/Dimensions/PhysicsValueMath.h" 6 | #include "Core/Physics/CompileTime/PhysTypeInfo.h" 7 | #include "Core/Physics/CompileTime/GenType.h" 8 | 9 | namespace GXPhysics 10 | { 11 | 12 | /* 13 | ================================================= 14 | UniformlyAcceleratedMotion 15 | ================================================= 16 | */ 17 | template 18 | inline void UniformlyAcceleratedMotion (INOUT Pos &pos, INOUT Vel &vel, const Accel accel, const Time dt) 19 | { 20 | STATIC_ASSERT( IsTimeUnits